diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
index 97999b7b9..849c37521 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.json
@@ -14,8 +14,7 @@
"imports": {
"@deno/vite-plugin": "npm:@deno/vite-plugin@^1.0.0",
"@ebay/nice-modal-react": "npm:@ebay/nice-modal-react@^1.2.13",
- "@preact-icons/bs": "jsr:@preact-icons/bs@^1.0.12",
- "@preact-icons/ri": "jsr:@preact-icons/ri@^1.0.12",
+ "@heroicons/react": "npm:@heroicons/react@^2.2.0",
"@rjsf/core": "npm:@rjsf/core@^5.23.2",
"@rjsf/validator-ajv6": "npm:@rjsf/validator-ajv6@^5.23.2",
"@types/react": "npm:@types/react@^18.3.12",
@@ -28,7 +27,7 @@
"postcss": "npm:postcss@^8.4.49",
"prop-types": "npm:prop-types@^15.8.1",
"react": "https://esm.sh/react@18.2.0",
- "react-dom": "https://esm.sh/react-dom@18.2.0",
+ "react-dom": "https://esm.sh/react-dom@18.2.0",
"react-router-dom": "npm:react-router-dom@^7.0.2",
"react-select-async-paginate": "npm:react-select-async-paginate@^0.7.7",
"reflect-metadata": "npm:reflect-metadata@^0.2.2",
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
index 5b1c7331f..8f474f5f0 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/deno.lock
@@ -1,13 +1,11 @@
{
"version": "4",
"specifiers": {
- "jsr:@preact-icons/bs@^1.0.12": "1.0.12",
- "jsr:@preact-icons/common@^1.0.12": "1.0.12",
- "jsr:@preact-icons/ri@^1.0.12": "1.0.12",
"jsr:@std/path@1": "1.0.8",
"jsr:@udibo/esbuild-plugin-postcss@~0.1.3": "0.1.3",
"npm:@deno/vite-plugin@1": "1.0.2_vite@6.0.5",
"npm:@ebay/nice-modal-react@^1.2.13": "1.2.13_react@18.3.1_react-dom@19.0.0__react@19.0.0",
+ "npm:@heroicons/react@^2.2.0": "2.2.0_react@18.3.1",
"npm:@rjsf/core@^5.23.2": "5.23.2_@rjsf+utils@5.23.2__react@18.3.1_react@18.3.1",
"npm:@rjsf/validator-ajv6@^5.23.2": "5.23.2_@rjsf+utils@5.23.2__react@18.3.1_react@18.3.1",
"npm:@types/react-dom@^18.3.1": "18.3.5_@types+react@18.3.18",
@@ -36,28 +34,6 @@
"npm:vite@^6.0.5": "6.0.5"
},
"jsr": {
- "@preact-icons/bs@1.0.12": {
- "integrity": "52282f0e2ffc73b2828f0bdb508dec14c4867f99f9f37fc4094b39f0467d9b1f",
- "dependencies": [
- "jsr:@preact-icons/common",
- "npm:preact@10.22.1"
- ]
- },
- "@preact-icons/common@1.0.12": {
- "integrity": "f7d7329d55c2753b0162438b120b638e5058fa406f49fe6b422e3b0694f6e0c1",
- "dependencies": [
- "npm:@types/react",
- "npm:preact@^10.22.1",
- "npm:react"
- ]
- },
- "@preact-icons/ri@1.0.12": {
- "integrity": "cd014a2a4bf9aea652d554d620365ea4695d4613aef1eb3833c71cad53415435",
- "dependencies": [
- "jsr:@preact-icons/common",
- "npm:preact@10.22.1"
- ]
- },
"@std/path@1.0.8": {
"integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be"
},
@@ -349,6 +325,12 @@
"@floating-ui/utils@0.2.8": {
"integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig=="
},
+ "@heroicons/react@2.2.0_react@18.3.1": {
+ "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==",
+ "dependencies": [
+ "react@18.3.1"
+ ]
+ },
"@isaacs/cliui@8.0.2": {
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dependencies": [
@@ -1847,11 +1829,10 @@
},
"workspace": {
"dependencies": [
- "jsr:@preact-icons/bs@^1.0.12",
- "jsr:@preact-icons/ri@^1.0.12",
"jsr:@udibo/esbuild-plugin-postcss@~0.1.3",
"npm:@deno/vite-plugin@1",
"npm:@ebay/nice-modal-react@^1.2.13",
+ "npm:@heroicons/react@^2.2.0",
"npm:@rjsf/core@^5.23.2",
"npm:@rjsf/validator-ajv6@^5.23.2",
"npm:@types/react-dom@^18.3.1",
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
index a47d7fedb..e21be4a35 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/base/Button.tsx
@@ -1,16 +1,33 @@
-import { RiDeleteBin2Line, RiSaveFill } from "@preact-icons/ri"
-import { BsXCircle, BsPlus, BsPencil } from "@preact-icons/bs"
import { Button as BaseButton } from "flowbite-react"
import React from 'react'
const Button = ({ type , variant , onClick }) => {
return (
- { type == 1 && }
- { type == 2 && }
- { type == 3 && }
- { type == 4 && }
- { type == 5 && }
+ { type == 1 &&
+
+ }
+ { type == 2 &&
+
+ }
+ { type == 3 &&
+
+ }
+ { type == 4 &&
+
+ }
+ { type == 5 &&
+ }
);
};
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
index 0ad7b94ee..63787d7dd 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/button/ButtonComponent.tsx
@@ -4,7 +4,6 @@ import OrderService from '../../services/order'
import { Component } from 'react'
import {debounceTime} from "rxjs"
import {Order} from "../../model/order"
-import { RiSaveFill, RiPrinterFill } from "@preact-icons/ri"
import { Button } from "flowbite-react"
import React from 'react'
@@ -54,10 +53,14 @@ class ButtonComponent extends Component<{loadOrder},{disabled: boolean}> {
return (
)
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
index c784d050e..c20a8d0d4 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/positions/PositionsComponent.tsx
@@ -7,7 +7,7 @@ import {useEffect, useState} from "react"
import {Pos} from "../../model/pos"
import Order from "../../model/order"
import OrderState from "../../state/order"
-
+import {container} from "tsyringe-neo"
const PositionsComponent = ({order, shop, updateOrder}) => {
const orderState = container.resolve(OrderState)
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
index 3d37db6c7..85c076182 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/modules/shop/ShopSelectComponent.tsx
@@ -10,11 +10,8 @@ const ShopSelectComponent = (props) => {
const orderState = container.resolve(OrderState)
const shop_service = container.resolve(ShopService)
- const token_service = container.resolve(Token)
-
const loadOptions = async (searchQuery, loadedOptions) => {
- console.log(token_service)
const data = await shop_service.getShops()
return {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
index 96080a451..36027f277 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/account.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo";
-import { Token } from "./token";
+import {inject, autoInjectable, singleton} from "tsyringe-neo";
+import Token from "./token";
import axios from 'axios';
import { Account } from "../model/account";
import { Shop } from "../model/shop";
@@ -7,7 +7,9 @@ import { Shop } from "../model/shop";
@singleton()
@autoInjectable()
class AccountService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getAccounts(shop: Shop): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
index c51a80b90..035aaeeb1 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/address.ts
@@ -1,12 +1,14 @@
-import {autoInjectable, singleton} from "tsyringe-neo"
-import { Token } from "./token"
+import {inject, autoInjectable, singleton} from "tsyringe-neo"
+import Token from "./token"
import axios from 'axios'
import { Address } from "../model/address"
@singleton()
@autoInjectable()
class AddressService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async create(address: Address): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
index c5284c0b6..40d2fc795 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/contact.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo";
-import { Token } from "./token";
+import {inject, autoInjectable, singleton} from "tsyringe-neo";
+import Token from "./token";
import axios from 'axios';
import { Contact } from "../model/contact";
import { Address } from "../model/address";
@@ -8,7 +8,9 @@ import { Shop } from "../model/shop";
@singleton()
@autoInjectable()
class ContactService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async createContact(contact: Contact): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
index 6ef5391d2..689faf5ec 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/order.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo";
-import { Token } from "./token";
+import {inject, autoInjectable, singleton} from "tsyringe-neo";
+import Token from "./token";
import axios from 'axios';
import Order from "../model/order";
@@ -7,7 +7,9 @@ import Order from "../model/order";
@autoInjectable()
class OrderService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getOrder(uuid: String): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
index ed290c493..58a6139bd 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/payment.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo"
-import { Token } from "./token"
+import {inject, autoInjectable, singleton} from "tsyringe-neo"
+import Token from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
import {Payment} from "../model/payment"
@@ -7,7 +7,9 @@ import {Payment} from "../model/payment"
@singleton()
@autoInjectable()
class PaymentService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getPayments(shop: Shop): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
index 669c2cdc5..6da1a09d3 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/product.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo";
-import { Token } from "./token";
+import {inject, autoInjectable, singleton} from "tsyringe-neo";
+import Token from "./token";
import axios from 'axios';
import { Shop } from "../model/shop";
import {ProductGroup} from "../model/productGroup";
@@ -9,7 +9,9 @@ import {JSONSchema7} from "json-schema";
@singleton()
@autoInjectable()
class ProductService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getProductsByTerm(term: string, shop: Shop): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
index 80ba7f37b..34392989d 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/productgroup.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo";
-import { Token } from "./token";
+import {inject, autoInjectable, singleton} from "tsyringe-neo";
+import Token from "./token";
import axios from 'axios';
import { Shop } from "../model/shop";
import {ProductGroup} from "../model/productGroup";
@@ -7,7 +7,9 @@ import {ProductGroup} from "../model/productGroup";
@singleton()
@autoInjectable()
class ProductGroupService {
- constructor(private token?: Token) {}
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getProductGroups(searchQuery: String, shop: Shop): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
index 6edcf0e23..9a252f517 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shipping.ts
@@ -1,5 +1,5 @@
-import {autoInjectable, singleton} from "tsyringe-neo"
-import { Token } from "./token"
+import {inject, autoInjectable, singleton} from "tsyringe-neo"
+import Token from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
import {Shipping} from "../model/shipping"
@@ -7,8 +7,9 @@ import {Shipping} from "../model/shipping"
@singleton()
@autoInjectable()
class ShippingService {
- constructor(private token?: Token) {}
-
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
+ }
async getShipping(shop: Shop): Promise {
return await axios.get('/apps/api/shipping/by/shop/' + shop.uuid, {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
index e41c412b6..0e7f11ed6 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/shop.ts
@@ -1,13 +1,14 @@
-import {autoInjectable, singleton} from "tsyringe-neo"
-import { Token } from "./token"
+import {autoInjectable, inject, singleton} from "tsyringe-neo"
+import Token from "./token"
import axios from 'axios'
import { Shop } from "../model/shop"
@singleton()
@autoInjectable()
class ShopService {
- constructor(token?: Token) {
- console.log(token)
+
+ constructor(@inject(Token) token?: Token) {
+ this.token = token
}
async getShops(): Promise {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
index f9dede8cb..eb7c9813f 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/src/services/token.ts
@@ -1,5 +1,5 @@
import axios from "axios"
-import {singleton} from "tsyringe-neo"
+import {singleton, injectable} from "tsyringe-neo"
@singleton()
class Token {
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json
index f0a235055..c6e1b2203 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.app.json
@@ -1,6 +1,8 @@
{
"compilerOptions": {
"target": "ES2020",
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
diff --git a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json
index 0d3d71446..fd4178ee4 100644
--- a/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json
+++ b/src/new/var/plugins/System/PSC/Invoice/InvoiceTS/tsconfig.node.json
@@ -4,7 +4,8 @@
"lib": ["ES2023"],
"module": "ESNext",
"skipLibCheck": true,
-
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
diff --git a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css
index 7c8c417a8..5f2bfa738 100644
--- a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css
+++ b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.css
@@ -1251,6 +1251,10 @@ input[type="range"]::-ms-fill-lower {
.hidden {
display: none;
}
+.size-6 {
+ width: 1.5rem;
+ height: 1.5rem;
+}
.h-0\.5 {
height: 0.125rem;
}
diff --git a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
index b8935d589..62e7f2219 100644
--- a/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
+++ b/src/new/var/plugins/System/PSC/Invoice/Resources/public/invoicets/assets/index.js
@@ -1,52 +1,6 @@
-var __create = Object.create;
var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
-var __typeError = (msg) => {
- throw TypeError(msg);
-};
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
-var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
-var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
-var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
-var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
-var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
-var __runInitializers = (array, flags, self2, value) => {
- for (var i2 = 0, fns = array[flags >> 1], n2 = fns && fns.length; i2 < n2; i2++) flags & 1 ? fns[i2].call(self2) : value = fns[i2].call(self2, value);
- return value;
-};
-var __decorateElement = (array, flags, name, decorators, target, extra) => {
- var fn, it2, done, ctx, access, k2 = flags & 7, s2 = !!(flags & 8), p2 = !!(flags & 16);
- var j2 = k2 > 3 ? array.length + 1 : k2 ? s2 ? 1 : 2 : 0, key = __decoratorStrings[k2 + 5];
- var initializers = k2 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
- var desc = k2 && (!p2 && !s2 && (target = target.prototype), k2 < 5 && (k2 > 3 || !p2) && __getOwnPropDesc(k2 < 4 ? target : { get [name]() {
- return __privateGet(this, extra);
- }, set [name](x2) {
- return __privateSet(this, extra, x2);
- } }, name));
- k2 ? p2 && k2 < 4 && __name(extra, (k2 > 2 ? "set " : k2 > 1 ? "get " : "") + name) : __name(target, name);
- for (var i2 = decorators.length - 1; i2 >= 0; i2--) {
- ctx = __decoratorContext(k2, name, done = {}, array[3], extraInitializers);
- if (k2) {
- ctx.static = s2, ctx.private = p2, access = ctx.access = { has: p2 ? (x2) => __privateIn(target, x2) : (x2) => name in x2 };
- if (k2 ^ 3) access.get = p2 ? (x2) => (k2 ^ 1 ? __privateGet : __privateMethod)(x2, target, k2 ^ 4 ? extra : desc.get) : (x2) => x2[name];
- if (k2 > 2) access.set = p2 ? (x2, y2) => __privateSet(x2, target, y2, k2 ^ 4 ? extra : desc.set) : (x2, y2) => x2[name] = y2;
- }
- it2 = (0, decorators[i2])(k2 ? k2 < 4 ? p2 ? extra : desc[key] : k2 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
- if (k2 ^ 4 || it2 === void 0) __expectFn(it2) && (k2 > 4 ? initializers.unshift(it2) : k2 ? p2 ? extra = it2 : desc[key] = it2 : target = it2);
- else if (typeof it2 !== "object" || it2 === null) __typeError("Object expected");
- else __expectFn(fn = it2.get) && (desc.get = fn), __expectFn(fn = it2.set) && (desc.set = fn), __expectFn(fn = it2.init) && initializers.unshift(fn);
- }
- return k2 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p2 ? k2 ^ 4 ? extra : desc : target;
-};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
-var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
-var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
-var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
-var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
-var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
-var _Token_decorators, _init, _a, _ContactService_decorators, _init2, _OrderState_decorators, _init3, _CountryService_decorators, _init4, _AddressService_decorators, _init5, _AccountService_decorators, _init6, _ShopService_decorators, _init7, _OrderService_decorators, _init8, _ProductGroupService_decorators, _init9, _ProductService_decorators, _init10, _PaymentService_decorators, _init11, _ShippingService_decorators, _init12;
function _mergeNamespaces(n2, m2) {
for (var i2 = 0; i2 < m2.length; i2++) {
const e2 = m2[i2];
@@ -420,8 +374,8 @@ function require_Reflect() {
keys.push(key);
}
}
- for (var _a2 = 0, parentKeys_1 = parentKeys; _a2 < parentKeys_1.length; _a2++) {
- var key = parentKeys_1[_a2];
+ for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
+ var key = parentKeys_1[_a];
var hasKey = set2.has(key);
if (!hasKey) {
set2.add(key);
@@ -4046,6 +4000,13 @@ function getParamInfo(target) {
});
return params;
}
+function defineInjectionTokenMetadata(data2, transform2) {
+ return function(target, _propertyKey, parameterIndex) {
+ const descriptors2 = Reflect.getOwnMetadata(INJECTION_TOKEN_METADATA_KEY, target) || {};
+ descriptors2[parameterIndex] = data2;
+ Reflect.defineMetadata(INJECTION_TOKEN_METADATA_KEY, descriptors2, target);
+ };
+}
class Registry extends RegistryBase {
}
class ResolutionContext {
@@ -4302,9 +4263,9 @@ class InternalDependencyContainer {
return this._registry.tokens();
}
isRegistered(token2, recursive = false) {
- var _a2;
+ var _a;
this.ensureNotDisposed();
- return this._registry.has(token2) || ((recursive && ((_a2 = this.parent) == null ? void 0 : _a2.isRegistered(token2, true))) ?? false);
+ return this._registry.has(token2) || ((recursive && ((_a = this.parent) == null ? void 0 : _a.isRegistered(token2, true))) ?? false);
}
reset() {
this.ensureNotDisposed();
@@ -4518,6 +4479,9 @@ function autoInjectable() {
};
};
}
+function inject(token2) {
+ return defineInjectionTokenMetadata(token2);
+}
function injectable() {
return function(target) {
const paramInfo = getParamInfo(target);
@@ -4535,7 +4499,17 @@ if (typeof Reflect === "undefined" || !Reflect.getMetadata) {
`tsyringe-neo requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`
);
}
-let Token$1 = (_Token_decorators = [singleton()], _a = class {
+var __defProp$c = Object.defineProperty;
+var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
+var __decorateClass$b = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$c(target, key, result);
+ return result;
+};
+let Token = class {
constructor() {
__publicField(this, "currentToken");
}
@@ -4553,7 +4527,11 @@ let Token$1 = (_Token_decorators = [singleton()], _a = class {
this.currentToken = response.data.token;
});
}
-}, _init = __decoratorStart(null), _a = __decorateElement(_init, 0, "Token", _Token_decorators, _a), __runInitializers(_init, 1, _a), _a);
+};
+Token = __decorateClass$b([
+ singleton()
+], Token);
+const Token$1 = Token;
var client = {};
var reactDom$1 = { exports: {} };
var reactDom_production_min = {};
@@ -11258,10 +11236,10 @@ function requireClient() {
var clientExports = requireClient();
const ReactDOM = /* @__PURE__ */ getDefaultExportFromCjs(clientExports);
var reactExports = requireReact$1();
-const React$1 = /* @__PURE__ */ getDefaultExportFromCjs(reactExports);
-const React$2 = /* @__PURE__ */ _mergeNamespaces({
+const React = /* @__PURE__ */ getDefaultExportFromCjs(reactExports);
+const React$1 = /* @__PURE__ */ _mergeNamespaces({
__proto__: null,
- default: React$1
+ default: React
}, [reactExports]);
var __assign$1 = function() {
__assign$1 = Object.assign || function(t2) {
@@ -11287,8 +11265,8 @@ var __rest = function(s2, e2) {
};
var symModalId = Symbol("NiceModalId");
var initialState = {};
-var NiceModalContext = React$1.createContext(initialState);
-var NiceModalIdContext = React$1.createContext(null);
+var NiceModalContext = React.createContext(initialState);
+var NiceModalIdContext = React.createContext(null);
var MODAL_REGISTRY = {};
var ALREADY_MOUNTED = {};
var uidSeed = 0;
@@ -11299,14 +11277,14 @@ var getUid = function() {
return "_nice_modal_" + uidSeed++;
};
var reducer = function(state, action) {
- var _a2, _b, _c;
+ var _a, _b, _c;
if (state === void 0) {
state = initialState;
}
switch (action.type) {
case "nice-modal/show": {
var _d = action.payload, modalId = _d.modalId, args = _d.args;
- return __assign$1(__assign$1({}, state), (_a2 = {}, _a2[modalId] = __assign$1(__assign$1({}, state[modalId]), {
+ return __assign$1(__assign$1({}, state), (_a = {}, _a[modalId] = __assign$1(__assign$1({}, state[modalId]), {
id: modalId,
args,
// If modal is not mounted, mount it first then make it visible.
@@ -11314,7 +11292,7 @@ var reducer = function(state, action) {
// This mechanism ensures the entering transition.
visible: !!ALREADY_MOUNTED[modalId],
delayVisible: !ALREADY_MOUNTED[modalId]
- }), _a2));
+ }), _a));
}
case "nice-modal/hide": {
var modalId = action.payload.modalId;
@@ -11337,8 +11315,8 @@ var reducer = function(state, action) {
}
};
function getModal(modalId) {
- var _a2;
- return (_a2 = MODAL_REGISTRY[modalId]) === null || _a2 === void 0 ? void 0 : _a2.comp;
+ var _a;
+ return (_a = MODAL_REGISTRY[modalId]) === null || _a === void 0 ? void 0 : _a.comp;
}
function showModal(modalId, args) {
return {
@@ -11462,18 +11440,18 @@ function useModal(modal, args) {
return remove(mid);
}, [mid]);
var resolveCallback = reactExports.useCallback(function(args2) {
- var _a2;
- (_a2 = modalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.resolve(args2);
+ var _a;
+ (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args2);
delete modalCallbacks[mid];
}, [mid]);
var rejectCallback = reactExports.useCallback(function(args2) {
- var _a2;
- (_a2 = modalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.reject(args2);
+ var _a;
+ (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.reject(args2);
delete modalCallbacks[mid];
}, [mid]);
var resolveHide = reactExports.useCallback(function(args2) {
- var _a2;
- (_a2 = hideModalCallbacks[mid]) === null || _a2 === void 0 ? void 0 : _a2.resolve(args2);
+ var _a;
+ (_a = hideModalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args2);
delete hideModalCallbacks[mid];
}, [mid]);
return reactExports.useMemo(function() {
@@ -11503,9 +11481,9 @@ function useModal(modal, args) {
]);
}
var create = function(Comp) {
- return function(_a2) {
+ return function(_a) {
var _b;
- var defaultVisible = _a2.defaultVisible, keepMounted = _a2.keepMounted, id = _a2.id, props = __rest(_a2, ["defaultVisible", "keepMounted", "id"]);
+ var defaultVisible = _a.defaultVisible, keepMounted = _a.keepMounted, id = _a.id, props = __rest(_a, ["defaultVisible", "keepMounted", "id"]);
var _c = useModal(id), args = _c.args, show2 = _c.show;
var modals = reactExports.useContext(NiceModalContext);
var shouldMount = !!modals[id];
@@ -11530,10 +11508,10 @@ var create = function(Comp) {
}, [delayVisible, args, show2]);
if (!shouldMount)
return null;
- return React$1.createElement(
+ return React.createElement(
NiceModalIdContext.Provider,
{ value: id },
- React$1.createElement(Comp, __assign$1({}, props, args))
+ React.createElement(Comp, __assign$1({}, props, args))
);
};
};
@@ -11563,37 +11541,37 @@ var NiceModalPlaceholder = function() {
}).map(function(id) {
return __assign$1({ id }, MODAL_REGISTRY[id]);
});
- return React$1.createElement(React$1.Fragment, null, toRender.map(function(t2) {
- return React$1.createElement(t2.comp, __assign$1({ key: t2.id, id: t2.id }, t2.props));
+ return React.createElement(React.Fragment, null, toRender.map(function(t2) {
+ return React.createElement(t2.comp, __assign$1({ key: t2.id, id: t2.id }, t2.props));
}));
};
-var InnerContextProvider = function(_a2) {
- var children = _a2.children;
+var InnerContextProvider = function(_a) {
+ var children = _a.children;
var arr = reactExports.useReducer(reducer, initialState);
var modals = arr[0];
dispatch = arr[1];
- return React$1.createElement(
+ return React.createElement(
NiceModalContext.Provider,
{ value: modals },
children,
- React$1.createElement(NiceModalPlaceholder, null)
+ React.createElement(NiceModalPlaceholder, null)
);
};
-var Provider = function(_a2) {
- var children = _a2.children, givenDispatch = _a2.dispatch, givenModals = _a2.modals;
+var Provider = function(_a) {
+ var children = _a.children, givenDispatch = _a.dispatch, givenModals = _a.modals;
if (!givenDispatch || !givenModals) {
- return React$1.createElement(InnerContextProvider, null, children);
+ return React.createElement(InnerContextProvider, null, children);
}
dispatch = givenDispatch;
- return React$1.createElement(
+ return React.createElement(
NiceModalContext.Provider,
{ value: givenModals },
children,
- React$1.createElement(NiceModalPlaceholder, null)
+ React.createElement(NiceModalPlaceholder, null)
);
};
-var ModalDef = function(_a2) {
- var id = _a2.id, component = _a2.component;
+var ModalDef = function(_a) {
+ var id = _a.id, component = _a.component;
reactExports.useEffect(function() {
register(id, component);
return function() {
@@ -11602,9 +11580,9 @@ var ModalDef = function(_a2) {
}, [id, component]);
return null;
};
-var ModalHolder = function(_a2) {
+var ModalHolder = function(_a) {
var _b;
- var modal = _a2.modal, _c = _a2.handler, handler = _c === void 0 ? {} : _c, restProps = __rest(_a2, ["modal", "handler"]);
+ var modal = _a.modal, _c = _a.handler, handler = _c === void 0 ? {} : _c, restProps = __rest(_a, ["modal", "handler"]);
var mid = reactExports.useMemo(function() {
return getUid();
}, []);
@@ -11621,7 +11599,7 @@ var ModalHolder = function(_a2) {
handler.hide = reactExports.useCallback(function() {
return hide$2(mid);
}, [mid]);
- return React$1.createElement(ModalComp, __assign$1({ id: mid }, restProps));
+ return React.createElement(ModalComp, __assign$1({ id: mid }, restProps));
};
var antdModal = function(modal) {
return {
@@ -12777,10 +12755,10 @@ var createCache = function createCache2(options2) {
}
var stylisPlugins = options2.stylisPlugins || defaultStylisPlugins;
var inserted = {};
- var container2;
+ var container;
var nodesToHydrate = [];
{
- container2 = options2.container || document.head;
+ container = options2.container || document.head;
Array.prototype.forEach.call(
// this means we will ignore elements which don't have a space in them which
// means that the style elements we're looking at are only Emotion 11 server-rendered style elements
@@ -12817,7 +12795,7 @@ var createCache = function createCache2(options2) {
key,
sheet: new StyleSheet({
key,
- container: container2,
+ container,
nonce: options2.nonce,
speedy: options2.speedy,
prepend: options2.prepend,
@@ -13334,7 +13312,7 @@ function serializeStyles(args, registered, mergedProps) {
var syncFallback = function syncFallback2(create2) {
return create2();
};
-var useInsertionEffect$1 = React$2["useInsertionEffect"] ? React$2["useInsertionEffect"] : false;
+var useInsertionEffect$1 = React$1["useInsertionEffect"] ? React$1["useInsertionEffect"] : false;
var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect$1 || syncFallback;
var useInsertionEffectWithLayoutFallback = useInsertionEffect$1 || reactExports.useLayoutEffect;
var isDevelopment = false;
@@ -14150,11 +14128,11 @@ function requireReactDom_production() {
return "use-credentials" === input ? input : "";
}
reactDom_production.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals;
- reactDom_production.createPortal = function(children, container2) {
+ reactDom_production.createPortal = function(children, container) {
var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
- if (!container2 || 1 !== container2.nodeType && 9 !== container2.nodeType && 11 !== container2.nodeType)
+ if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType)
throw Error(formatProdErrorMessage(299));
- return createPortal$1(children, container2, null, key);
+ return createPortal$1(children, container, null, key);
};
reactDom_production.flushSync = function(fn) {
var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
@@ -16206,10 +16184,10 @@ var options = {
return passiveOptionAccessed = true;
}
};
-var w$3 = typeof window !== "undefined" ? window : {};
-if (w$3.addEventListener && w$3.removeEventListener) {
- w$3.addEventListener("p", noop$1, options);
- w$3.removeEventListener("p", noop$1, false);
+var w$2 = typeof window !== "undefined" ? window : {};
+if (w$2.addEventListener && w$2.removeEventListener) {
+ w$2.addEventListener("p", noop$1, options);
+ w$2.removeEventListener("p", noop$1, false);
}
var supportsPassiveEvents = passiveOptionAccessed;
function notNullish(item) {
@@ -17524,10 +17502,10 @@ var anyDiacritic = new RegExp("[" + diacritics.map(function(d2) {
return d2.letters;
}).join("") + "]", "g");
var diacriticToBase = {};
-for (var i$3 = 0; i$3 < diacritics.length; i$3++) {
- var diacritic = diacritics[i$3];
- for (var j$3 = 0; j$3 < diacritic.letters.length; j$3++) {
- diacriticToBase[diacritic.letters[j$3]] = diacritic.base;
+for (var i$2 = 0; i$2 < diacritics.length; i$2++) {
+ var diacritic = diacritics[i$2];
+ for (var j$2 = 0; j$2 < diacritic.letters.length; j$2++) {
+ diacriticToBase[diacritic.letters[j$2]] = diacritic.base;
}
}
var stripDiacritics = function stripDiacritics2(str) {
@@ -19401,7 +19379,7 @@ function useIsMountedRef() {
return isMountedRef;
}
var useLatest = function useLatest2(value) {
- var ref2 = React$1.useRef(value);
+ var ref2 = React.useRef(value);
index$2(function() {
ref2.current = value;
});
@@ -19536,14 +19514,14 @@ function getResult(promise) {
(err) => Err(err)
);
}
-var e$1 = setTimeout;
+var e = setTimeout;
function t$1(t2, n2) {
- var u2 = n2.useCachedSetTimeout ? e$1 : setTimeout;
+ var u2 = n2.useCachedSetTimeout ? e : setTimeout;
return new Promise(function(e2) {
u2(e2, t2);
});
}
-function n$2(e2) {
+function n$1(e2) {
var n2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, u2 = n2.useCachedSetTimeout, r2 = t$1(e2, { useCachedSetTimeout: u2 });
function o2(e3) {
return r2.then(function() {
@@ -19676,7 +19654,7 @@ var requestOptions = async (caller, paramsRef, optionsCacheRef, debounceTimeout,
})
);
if (debounceTimeout > 0 && caller === "input-change") {
- await n$2(debounceTimeout);
+ await n$1(debounceTimeout);
const newInputValue = paramsRef.current.inputValue;
if (currentInputValue !== newInputValue) {
setOptionsCache((prevOptionsCache) => {
@@ -20033,36 +20011,46 @@ class Contact {
}
}
}
-_ContactService_decorators = [singleton(), autoInjectable()];
-class ContactService {
+var __defProp$b = Object.defineProperty;
+var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
+var __decorateClass$a = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$b(target, key, result);
+ return result;
+};
+var __decorateParam$8 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let ContactService = class {
constructor(token2) {
this.token = token2;
}
async createContact(contact) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/contact/create", { "contact": contact }, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async updateContact(contact) {
- var _a2;
+ var _a;
return await axios.put("/apps/api/contact/update/" + contact.uuid, { "contact": contact }, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async getContacts(searchQuery, page, shop) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/contact/allbyshop/" + shop.uuid + "?term=" + searchQuery + "&page=" + page, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -20072,10 +20060,13 @@ class ContactService {
});
});
}
-}
-_init2 = __decoratorStart(null);
-ContactService = __decorateElement(_init2, 0, "ContactService", _ContactService_decorators, ContactService);
-__runInitializers(_init2, 1, ContactService);
+};
+ContactService = __decorateClass$a([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$8(0, inject(Token$1))
+], ContactService);
+const ContactService$1 = ContactService;
const byteToHex = [];
for (let i2 = 0; i2 < 256; ++i2) {
byteToHex.push((i2 + 256).toString(16).slice(1));
@@ -20420,7 +20411,7 @@ var Subscription = function() {
this._finalizers = null;
}
Subscription2.prototype.unsubscribe = function() {
- var e_1, _a2, e_2, _b;
+ var e_1, _a, e_2, _b;
var errors;
if (!this.closed) {
this.closed = true;
@@ -20437,7 +20428,7 @@ var Subscription = function() {
e_1 = { error: e_1_1 };
} finally {
try {
- if (_parentage_1_1 && !_parentage_1_1.done && (_a2 = _parentage_1.return)) _a2.call(_parentage_1);
+ if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
} finally {
if (e_1) throw e_1.error;
}
@@ -20487,7 +20478,7 @@ var Subscription = function() {
}
};
Subscription2.prototype.add = function(teardown) {
- var _a2;
+ var _a;
if (teardown && teardown !== this) {
if (this.closed) {
execFinalizer(teardown);
@@ -20498,7 +20489,7 @@ var Subscription = function() {
}
teardown._addParent(this);
}
- (this._finalizers = (_a2 = this._finalizers) !== null && _a2 !== void 0 ? _a2 : []).push(teardown);
+ (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
}
}
};
@@ -20764,7 +20755,7 @@ var Observable = function() {
var _this = this;
var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
errorContext(function() {
- var _a2 = _this, operator = _a2.operator, source = _a2.source;
+ var _a = _this, operator = _a.operator, source = _a.source;
subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber));
});
return subscriber;
@@ -20796,8 +20787,8 @@ var Observable = function() {
});
};
Observable2.prototype._subscribe = function(subscriber) {
- var _a2;
- return (_a2 = this.source) === null || _a2 === void 0 ? void 0 : _a2.subscribe(subscriber);
+ var _a;
+ return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
};
Observable2.prototype[observable] = function() {
return this;
@@ -20829,8 +20820,8 @@ var Observable = function() {
return Observable2;
}();
function getPromiseCtor(promiseCtor) {
- var _a2;
- return (_a2 = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a2 !== void 0 ? _a2 : Promise;
+ var _a;
+ return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
}
function isObserver(value) {
return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
@@ -20892,11 +20883,11 @@ var OperatorSubscriber = function(_super) {
return _this;
}
OperatorSubscriber2.prototype.unsubscribe = function() {
- var _a2;
+ var _a;
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
var closed_1 = this.closed;
_super.prototype.unsubscribe.call(this);
- !closed_1 && ((_a2 = this.onFinalize) === null || _a2 === void 0 ? void 0 : _a2.call(this));
+ !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
}
};
return OperatorSubscriber2;
@@ -20933,7 +20924,7 @@ var Subject = function(_super) {
Subject2.prototype.next = function(value) {
var _this = this;
errorContext(function() {
- var e_1, _a2;
+ var e_1, _a;
_this._throwIfClosed();
if (!_this.isStopped) {
if (!_this.currentObservers) {
@@ -20948,7 +20939,7 @@ var Subject = function(_super) {
e_1 = { error: e_1_1 };
} finally {
try {
- if (_c && !_c.done && (_a2 = _b.return)) _a2.call(_b);
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
} finally {
if (e_1) throw e_1.error;
}
@@ -20989,8 +20980,8 @@ var Subject = function(_super) {
};
Object.defineProperty(Subject2.prototype, "observed", {
get: function() {
- var _a2;
- return ((_a2 = this.observers) === null || _a2 === void 0 ? void 0 : _a2.length) > 0;
+ var _a;
+ return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
},
enumerable: false,
configurable: true
@@ -21006,7 +20997,7 @@ var Subject = function(_super) {
};
Subject2.prototype._innerSubscribe = function(subscriber) {
var _this = this;
- var _a2 = this, hasError = _a2.hasError, isStopped = _a2.isStopped, observers = _a2.observers;
+ var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;
if (hasError || isStopped) {
return EMPTY_SUBSCRIPTION;
}
@@ -21018,7 +21009,7 @@ var Subject = function(_super) {
});
};
Subject2.prototype._checkFinalizedStatuses = function(subscriber) {
- var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, isStopped = _a2.isStopped;
+ var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;
if (hasError) {
subscriber.error(thrownError);
} else if (isStopped) {
@@ -21044,20 +21035,20 @@ var AnonymousSubject = function(_super) {
return _this;
}
AnonymousSubject2.prototype.next = function(value) {
- var _a2, _b;
- (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.next) === null || _b === void 0 ? void 0 : _b.call(_a2, value);
+ var _a, _b;
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
};
AnonymousSubject2.prototype.error = function(err) {
- var _a2, _b;
- (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.error) === null || _b === void 0 ? void 0 : _b.call(_a2, err);
+ var _a, _b;
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
};
AnonymousSubject2.prototype.complete = function() {
- var _a2, _b;
- (_b = (_a2 = this.destination) === null || _a2 === void 0 ? void 0 : _a2.complete) === null || _b === void 0 ? void 0 : _b.call(_a2);
+ var _a, _b;
+ (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
};
AnonymousSubject2.prototype._subscribe = function(subscriber) {
- var _a2, _b;
- return (_b = (_a2 = this.source) === null || _a2 === void 0 ? void 0 : _a2.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
+ var _a, _b;
+ return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
};
return AnonymousSubject2;
}(Subject);
@@ -21081,7 +21072,7 @@ var BehaviorSubject = function(_super) {
return subscription;
};
BehaviorSubject2.prototype.getValue = function() {
- var _a2 = this, hasError = _a2.hasError, thrownError = _a2.thrownError, _value = _a2._value;
+ var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
if (hasError) {
throw thrownError;
}
@@ -21132,7 +21123,7 @@ var AsyncAction = function(_super) {
return _this;
}
AsyncAction2.prototype.schedule = function(state, delay) {
- var _a2;
+ var _a;
if (delay === void 0) {
delay = 0;
}
@@ -21147,7 +21138,7 @@ var AsyncAction = function(_super) {
}
this.pending = true;
this.delay = delay;
- this.id = (_a2 = this.id) !== null && _a2 !== void 0 ? _a2 : this.requestAsyncId(scheduler2, this.id, delay);
+ this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler2, this.id, delay);
return this;
};
AsyncAction2.prototype.requestAsyncId = function(scheduler2, _id, delay) {
@@ -21196,7 +21187,7 @@ var AsyncAction = function(_super) {
};
AsyncAction2.prototype.unsubscribe = function() {
if (!this.closed) {
- var _a2 = this, id = _a2.id, scheduler2 = _a2.scheduler;
+ var _a = this, id = _a.id, scheduler2 = _a.scheduler;
var actions = scheduler2.actions;
this.work = this.state = this.scheduler = null;
this.pending = false;
@@ -21304,8 +21295,17 @@ function debounceTime(dueTime, scheduler2) {
}));
});
}
-_OrderState_decorators = [singleton()];
-class OrderState {
+var __defProp$a = Object.defineProperty;
+var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
+var __decorateClass$9 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$a(target, key, result);
+ return result;
+};
+let OrderState = class {
constructor() {
__publicField(this, "orders");
__publicField(this, "currentOrder");
@@ -21323,353 +21323,11 @@ class OrderState {
updateOrder(order) {
this.orders.push(order);
}
-}
-_init3 = __decoratorStart(null);
-OrderState = __decorateElement(_init3, 0, "OrderState", _OrderState_decorators, OrderState);
-__runInitializers(_init3, 1, OrderState);
-var n$1, l$1, u$1, i$2, r$1, o$1, e, f$2, c$2, s$1, a$2, h$1, p$1 = {}, v$2 = [], y$2 = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i, d$1 = Array.isArray;
-function w$2(n2, l2) {
- for (var u2 in l2) n2[u2] = l2[u2];
- return n2;
-}
-function _$2(n2) {
- n2 && n2.parentNode && n2.parentNode.removeChild(n2);
-}
-function g$2(l2, u2, t2) {
- var i2, r2, o2, e2 = {};
- for (o2 in u2) "key" == o2 ? i2 = u2[o2] : "ref" == o2 ? r2 = u2[o2] : e2[o2] = u2[o2];
- if (arguments.length > 2 && (e2.children = arguments.length > 3 ? n$1.call(arguments, 2) : t2), "function" == typeof l2 && null != l2.defaultProps) for (o2 in l2.defaultProps) void 0 === e2[o2] && (e2[o2] = l2.defaultProps[o2]);
- return m$2(l2, e2, i2, r2, null);
-}
-function m$2(n2, t2, i2, r2, o2) {
- var e2 = { type: n2, props: t2, key: i2, ref: r2, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: null == o2 ? ++u$1 : o2, __i: -1, __u: 0 };
- return null == o2 && null != l$1.vnode && l$1.vnode(e2), e2;
-}
-function k$2(n2) {
- return n2.children;
-}
-function x$2(n2, l2) {
- this.props = n2, this.context = l2;
-}
-function C$2(n2, l2) {
- if (null == l2) return n2.__ ? C$2(n2.__, n2.__i + 1) : null;
- for (var u2; l2 < n2.__k.length; l2++) if (null != (u2 = n2.__k[l2]) && null != u2.__e) return u2.__e;
- return "function" == typeof n2.type ? C$2(n2) : null;
-}
-function S$2(n2) {
- var l2, u2;
- if (null != (n2 = n2.__) && null != n2.__c) {
- for (n2.__e = n2.__c.base = null, l2 = 0; l2 < n2.__k.length; l2++) if (null != (u2 = n2.__k[l2]) && null != u2.__e) {
- n2.__e = n2.__c.base = u2.__e;
- break;
- }
- return S$2(n2);
- }
-}
-function M$2(n2) {
- (!n2.__d && (n2.__d = true) && i$2.push(n2) && !P$1.__r++ || r$1 !== l$1.debounceRendering) && ((r$1 = l$1.debounceRendering) || o$1)(P$1);
-}
-function P$1() {
- var n2, u2, t2, r2, o2, f2, c2, s2;
- for (i$2.sort(e); n2 = i$2.shift(); ) n2.__d && (u2 = i$2.length, r2 = void 0, f2 = (o2 = (t2 = n2).__v).__e, c2 = [], s2 = [], t2.__P && ((r2 = w$2({}, o2)).__v = o2.__v + 1, l$1.vnode && l$1.vnode(r2), j$2(t2.__P, r2, o2, t2.__n, t2.__P.namespaceURI, 32 & o2.__u ? [f2] : null, c2, null == f2 ? C$2(o2) : f2, !!(32 & o2.__u), s2), r2.__v = o2.__v, r2.__.__k[r2.__i] = r2, z$2(c2, r2, s2), r2.__e != f2 && S$2(r2)), i$2.length > u2 && i$2.sort(e));
- P$1.__r = 0;
-}
-function $$2(n2, l2, u2, t2, i2, r2, o2, e2, f2, c2, s2) {
- var a2, h2, y2, d2, w2, _2, g2 = t2 && t2.__k || v$2, m2 = l2.length;
- for (f2 = I$2(u2, l2, g2, f2, m2), a2 = 0; a2 < m2; a2++) null != (y2 = u2.__k[a2]) && (h2 = -1 === y2.__i ? p$1 : g2[y2.__i] || p$1, y2.__i = a2, _2 = j$2(n2, y2, h2, i2, r2, o2, e2, f2, c2, s2), d2 = y2.__e, y2.ref && h2.ref != y2.ref && (h2.ref && V$2(h2.ref, null, y2), s2.push(y2.ref, y2.__c || d2, y2)), null == w2 && null != d2 && (w2 = d2), 4 & y2.__u || h2.__k === y2.__k ? f2 = A$2(y2, f2, n2) : "function" == typeof y2.type && void 0 !== _2 ? f2 = _2 : d2 && (f2 = d2.nextSibling), y2.__u &= -7);
- return u2.__e = w2, f2;
-}
-function I$2(n2, l2, u2, t2, i2) {
- var r2, o2, e2, f2, c2, s2 = u2.length, a2 = s2, h2 = 0;
- for (n2.__k = new Array(i2), r2 = 0; r2 < i2; r2++) null != (o2 = l2[r2]) && "boolean" != typeof o2 && "function" != typeof o2 ? (f2 = r2 + h2, (o2 = n2.__k[r2] = "string" == typeof o2 || "number" == typeof o2 || "bigint" == typeof o2 || o2.constructor == String ? m$2(null, o2, null, null, null) : d$1(o2) ? m$2(k$2, { children: o2 }, null, null, null) : void 0 === o2.constructor && o2.__b > 0 ? m$2(o2.type, o2.props, o2.key, o2.ref ? o2.ref : null, o2.__v) : o2).__ = n2, o2.__b = n2.__b + 1, e2 = null, -1 !== (c2 = o2.__i = L$2(o2, u2, f2, a2)) && (a2--, (e2 = u2[c2]) && (e2.__u |= 2)), null == e2 || null === e2.__v ? (-1 == c2 && h2--, "function" != typeof o2.type && (o2.__u |= 4)) : c2 != f2 && (c2 == f2 - 1 ? h2-- : c2 == f2 + 1 ? h2++ : (c2 > f2 ? h2-- : h2++, o2.__u |= 4))) : n2.__k[r2] = null;
- if (a2) for (r2 = 0; r2 < s2; r2++) null != (e2 = u2[r2]) && 0 == (2 & e2.__u) && (e2.__e == t2 && (t2 = C$2(e2)), q$2(e2, e2));
- return t2;
-}
-function A$2(n2, l2, u2) {
- var t2, i2;
- if ("function" == typeof n2.type) {
- for (t2 = n2.__k, i2 = 0; t2 && i2 < t2.length; i2++) t2[i2] && (t2[i2].__ = n2, l2 = A$2(t2[i2], l2, u2));
- return l2;
- }
- n2.__e != l2 && (l2 && n2.type && !u2.contains(l2) && (l2 = C$2(n2)), u2.insertBefore(n2.__e, l2 || null), l2 = n2.__e);
- do {
- l2 = l2 && l2.nextSibling;
- } while (null != l2 && 8 == l2.nodeType);
- return l2;
-}
-function L$2(n2, l2, u2, t2) {
- var i2, r2, o2 = n2.key, e2 = n2.type, f2 = l2[u2];
- if (null === f2 || f2 && o2 == f2.key && e2 === f2.type && 0 == (2 & f2.__u)) return u2;
- if (t2 > (null != f2 && 0 == (2 & f2.__u) ? 1 : 0)) for (i2 = u2 - 1, r2 = u2 + 1; i2 >= 0 || r2 < l2.length; ) {
- if (i2 >= 0) {
- if ((f2 = l2[i2]) && 0 == (2 & f2.__u) && o2 == f2.key && e2 === f2.type) return i2;
- i2--;
- }
- if (r2 < l2.length) {
- if ((f2 = l2[r2]) && 0 == (2 & f2.__u) && o2 == f2.key && e2 === f2.type) return r2;
- r2++;
- }
- }
- return -1;
-}
-function T$2(n2, l2, u2) {
- "-" == l2[0] ? n2.setProperty(l2, null == u2 ? "" : u2) : n2[l2] = null == u2 ? "" : "number" != typeof u2 || y$2.test(l2) ? u2 : u2 + "px";
-}
-function F$2(n2, l2, u2, t2, i2) {
- var r2;
- n: if ("style" == l2) if ("string" == typeof u2) n2.style.cssText = u2;
- else {
- if ("string" == typeof t2 && (n2.style.cssText = t2 = ""), t2) for (l2 in t2) u2 && l2 in u2 || T$2(n2.style, l2, "");
- if (u2) for (l2 in u2) t2 && u2[l2] === t2[l2] || T$2(n2.style, l2, u2[l2]);
- }
- else if ("o" == l2[0] && "n" == l2[1]) r2 = l2 != (l2 = l2.replace(f$2, "$1")), l2 = l2.toLowerCase() in n2 || "onFocusOut" == l2 || "onFocusIn" == l2 ? l2.toLowerCase().slice(2) : l2.slice(2), n2.l || (n2.l = {}), n2.l[l2 + r2] = u2, u2 ? t2 ? u2.u = t2.u : (u2.u = c$2, n2.addEventListener(l2, r2 ? a$2 : s$1, r2)) : n2.removeEventListener(l2, r2 ? a$2 : s$1, r2);
- else {
- if ("http://www.w3.org/2000/svg" == i2) l2 = l2.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
- else if ("width" != l2 && "height" != l2 && "href" != l2 && "list" != l2 && "form" != l2 && "tabIndex" != l2 && "download" != l2 && "rowSpan" != l2 && "colSpan" != l2 && "role" != l2 && "popover" != l2 && l2 in n2) try {
- n2[l2] = null == u2 ? "" : u2;
- break n;
- } catch (n3) {
- }
- "function" == typeof u2 || (null == u2 || false === u2 && "-" != l2[4] ? n2.removeAttribute(l2) : n2.setAttribute(l2, "popover" == l2 && 1 == u2 ? "" : u2));
- }
-}
-function O$2(n2) {
- return function(u2) {
- if (this.l) {
- var t2 = this.l[u2.type + n2];
- if (null == u2.t) u2.t = c$2++;
- else if (u2.t < t2.u) return;
- return t2(l$1.event ? l$1.event(u2) : u2);
- }
- };
-}
-function j$2(n2, u2, t2, i2, r2, o2, e2, f2, c2, s2) {
- var a2, h2, p2, v2, y2, g2, m2, b2, C2, S2, M2, P2, I2, A2, H2, L2, T2, F2 = u2.type;
- if (void 0 !== u2.constructor) return null;
- 128 & t2.__u && (c2 = !!(32 & t2.__u), o2 = [f2 = u2.__e = t2.__e]), (a2 = l$1.__b) && a2(u2);
- n: if ("function" == typeof F2) try {
- if (b2 = u2.props, C2 = "prototype" in F2 && F2.prototype.render, S2 = (a2 = F2.contextType) && i2[a2.__c], M2 = a2 ? S2 ? S2.props.value : a2.__ : i2, t2.__c ? m2 = (h2 = u2.__c = t2.__c).__ = h2.__E : (C2 ? u2.__c = h2 = new F2(b2, M2) : (u2.__c = h2 = new x$2(b2, M2), h2.constructor = F2, h2.render = B$2), S2 && S2.sub(h2), h2.props = b2, h2.state || (h2.state = {}), h2.context = M2, h2.__n = i2, p2 = h2.__d = true, h2.__h = [], h2._sb = []), C2 && null == h2.__s && (h2.__s = h2.state), C2 && null != F2.getDerivedStateFromProps && (h2.__s == h2.state && (h2.__s = w$2({}, h2.__s)), w$2(h2.__s, F2.getDerivedStateFromProps(b2, h2.__s))), v2 = h2.props, y2 = h2.state, h2.__v = u2, p2) C2 && null == F2.getDerivedStateFromProps && null != h2.componentWillMount && h2.componentWillMount(), C2 && null != h2.componentDidMount && h2.__h.push(h2.componentDidMount);
- else {
- if (C2 && null == F2.getDerivedStateFromProps && b2 !== v2 && null != h2.componentWillReceiveProps && h2.componentWillReceiveProps(b2, M2), !h2.__e && (null != h2.shouldComponentUpdate && false === h2.shouldComponentUpdate(b2, h2.__s, M2) || u2.__v == t2.__v)) {
- for (u2.__v != t2.__v && (h2.props = b2, h2.state = h2.__s, h2.__d = false), u2.__e = t2.__e, u2.__k = t2.__k, u2.__k.some(function(n3) {
- n3 && (n3.__ = u2);
- }), P2 = 0; P2 < h2._sb.length; P2++) h2.__h.push(h2._sb[P2]);
- h2._sb = [], h2.__h.length && e2.push(h2);
- break n;
- }
- null != h2.componentWillUpdate && h2.componentWillUpdate(b2, h2.__s, M2), C2 && null != h2.componentDidUpdate && h2.__h.push(function() {
- h2.componentDidUpdate(v2, y2, g2);
- });
- }
- if (h2.context = M2, h2.props = b2, h2.__P = n2, h2.__e = false, I2 = l$1.__r, A2 = 0, C2) {
- for (h2.state = h2.__s, h2.__d = false, I2 && I2(u2), a2 = h2.render(h2.props, h2.state, h2.context), H2 = 0; H2 < h2._sb.length; H2++) h2.__h.push(h2._sb[H2]);
- h2._sb = [];
- } else do {
- h2.__d = false, I2 && I2(u2), a2 = h2.render(h2.props, h2.state, h2.context), h2.state = h2.__s;
- } while (h2.__d && ++A2 < 25);
- h2.state = h2.__s, null != h2.getChildContext && (i2 = w$2(w$2({}, i2), h2.getChildContext())), C2 && !p2 && null != h2.getSnapshotBeforeUpdate && (g2 = h2.getSnapshotBeforeUpdate(v2, y2)), f2 = $$2(n2, d$1(L2 = null != a2 && a2.type === k$2 && null == a2.key ? a2.props.children : a2) ? L2 : [L2], u2, t2, i2, r2, o2, e2, f2, c2, s2), h2.base = u2.__e, u2.__u &= -161, h2.__h.length && e2.push(h2), m2 && (h2.__E = h2.__ = null);
- } catch (n3) {
- if (u2.__v = null, c2 || null != o2) if (n3.then) {
- for (u2.__u |= c2 ? 160 : 128; f2 && 8 == f2.nodeType && f2.nextSibling; ) f2 = f2.nextSibling;
- o2[o2.indexOf(f2)] = null, u2.__e = f2;
- } else for (T2 = o2.length; T2--; ) _$2(o2[T2]);
- else u2.__e = t2.__e, u2.__k = t2.__k;
- l$1.__e(n3, u2, t2);
- }
- else null == o2 && u2.__v == t2.__v ? (u2.__k = t2.__k, u2.__e = t2.__e) : f2 = u2.__e = N$1(t2.__e, u2, t2, i2, r2, o2, e2, c2, s2);
- return (a2 = l$1.diffed) && a2(u2), 128 & u2.__u ? void 0 : f2;
-}
-function z$2(n2, u2, t2) {
- for (var i2 = 0; i2 < t2.length; i2++) V$2(t2[i2], t2[++i2], t2[++i2]);
- l$1.__c && l$1.__c(u2, n2), n2.some(function(u3) {
- try {
- n2 = u3.__h, u3.__h = [], n2.some(function(n3) {
- n3.call(u3);
- });
- } catch (n3) {
- l$1.__e(n3, u3.__v);
- }
- });
-}
-function N$1(u2, t2, i2, r2, o2, e2, f2, c2, s2) {
- var a2, h2, v2, y2, w2, g2, m2, b2 = i2.props, k2 = t2.props, x2 = t2.type;
- if ("svg" == x2 ? o2 = "http://www.w3.org/2000/svg" : "math" == x2 ? o2 = "http://www.w3.org/1998/Math/MathML" : o2 || (o2 = "http://www.w3.org/1999/xhtml"), null != e2) {
- for (a2 = 0; a2 < e2.length; a2++) if ((w2 = e2[a2]) && "setAttribute" in w2 == !!x2 && (x2 ? w2.localName == x2 : 3 == w2.nodeType)) {
- u2 = w2, e2[a2] = null;
- break;
- }
- }
- if (null == u2) {
- if (null == x2) return document.createTextNode(k2);
- u2 = document.createElementNS(o2, x2, k2.is && k2), c2 && (l$1.__m && l$1.__m(t2, e2), c2 = false), e2 = null;
- }
- if (null === x2) b2 === k2 || c2 && u2.data === k2 || (u2.data = k2);
- else {
- if (e2 = e2 && n$1.call(u2.childNodes), b2 = i2.props || p$1, !c2 && null != e2) for (b2 = {}, a2 = 0; a2 < u2.attributes.length; a2++) b2[(w2 = u2.attributes[a2]).name] = w2.value;
- for (a2 in b2) if (w2 = b2[a2], "children" == a2) ;
- else if ("dangerouslySetInnerHTML" == a2) v2 = w2;
- else if (!(a2 in k2)) {
- if ("value" == a2 && "defaultValue" in k2 || "checked" == a2 && "defaultChecked" in k2) continue;
- F$2(u2, a2, null, w2, o2);
- }
- for (a2 in k2) w2 = k2[a2], "children" == a2 ? y2 = w2 : "dangerouslySetInnerHTML" == a2 ? h2 = w2 : "value" == a2 ? g2 = w2 : "checked" == a2 ? m2 = w2 : c2 && "function" != typeof w2 || b2[a2] === w2 || F$2(u2, a2, w2, b2[a2], o2);
- if (h2) c2 || v2 && (h2.__html === v2.__html || h2.__html === u2.innerHTML) || (u2.innerHTML = h2.__html), t2.__k = [];
- else if (v2 && (u2.innerHTML = ""), $$2(u2, d$1(y2) ? y2 : [y2], t2, i2, r2, "foreignObject" == x2 ? "http://www.w3.org/1999/xhtml" : o2, e2, f2, e2 ? e2[0] : i2.__k && C$2(i2, 0), c2, s2), null != e2) for (a2 = e2.length; a2--; ) _$2(e2[a2]);
- c2 || (a2 = "value", "progress" == x2 && null == g2 ? u2.removeAttribute("value") : void 0 !== g2 && (g2 !== u2[a2] || "progress" == x2 && !g2 || "option" == x2 && g2 !== b2[a2]) && F$2(u2, a2, g2, b2[a2], o2), a2 = "checked", void 0 !== m2 && m2 !== u2[a2] && F$2(u2, a2, m2, b2[a2], o2));
- }
- return u2;
-}
-function V$2(n2, u2, t2) {
- try {
- if ("function" == typeof n2) {
- var i2 = "function" == typeof n2.__u;
- i2 && n2.__u(), i2 && null == u2 || (n2.__u = n2(u2));
- } else n2.current = u2;
- } catch (n3) {
- l$1.__e(n3, t2);
- }
-}
-function q$2(n2, u2, t2) {
- var i2, r2;
- if (l$1.unmount && l$1.unmount(n2), (i2 = n2.ref) && (i2.current && i2.current !== n2.__e || V$2(i2, null, u2)), null != (i2 = n2.__c)) {
- if (i2.componentWillUnmount) try {
- i2.componentWillUnmount();
- } catch (n3) {
- l$1.__e(n3, u2);
- }
- i2.base = i2.__P = null;
- }
- if (i2 = n2.__k) for (r2 = 0; r2 < i2.length; r2++) i2[r2] && q$2(i2[r2], u2, t2 || "function" != typeof n2.type);
- t2 || _$2(n2.__e), n2.__c = n2.__ = n2.__e = void 0;
-}
-function B$2(n2, l2, u2) {
- return this.constructor(n2, u2);
-}
-function J$2(n2, l2) {
- var u2 = { __c: l2 = "__cC" + h$1++, __: n2, Consumer: function(n3, l3) {
- return n3.children(l3);
- }, Provider: function(n3) {
- var u3, t2;
- return this.getChildContext || (u3 = /* @__PURE__ */ new Set(), (t2 = {})[l2] = this, this.getChildContext = function() {
- return t2;
- }, this.componentWillUnmount = function() {
- u3 = null;
- }, this.shouldComponentUpdate = function(n4) {
- this.props.value !== n4.value && u3.forEach(function(n5) {
- n5.__e = true, M$2(n5);
- });
- }, this.sub = function(n4) {
- u3.add(n4);
- var l3 = n4.componentWillUnmount;
- n4.componentWillUnmount = function() {
- u3 && u3.delete(n4), l3 && l3.call(n4);
- };
- }), n3.children;
- } };
- return u2.Provider.__ = u2.Consumer.contextType = u2;
-}
-n$1 = v$2.slice, l$1 = { __e: function(n2, l2, u2, t2) {
- for (var i2, r2, o2; l2 = l2.__; ) if ((i2 = l2.__c) && !i2.__) try {
- if ((r2 = i2.constructor) && null != r2.getDerivedStateFromError && (i2.setState(r2.getDerivedStateFromError(n2)), o2 = i2.__d), null != i2.componentDidCatch && (i2.componentDidCatch(n2, t2 || {}), o2 = i2.__d), o2) return i2.__E = i2;
- } catch (l3) {
- n2 = l3;
- }
- throw n2;
-} }, u$1 = 0, x$2.prototype.setState = function(n2, l2) {
- var u2;
- u2 = null != this.__s && this.__s !== this.state ? this.__s : this.__s = w$2({}, this.state), "function" == typeof n2 && (n2 = n2(w$2({}, u2), this.props)), n2 && w$2(u2, n2), null != n2 && this.__v && (l2 && this._sb.push(l2), M$2(this));
-}, x$2.prototype.forceUpdate = function(n2) {
- this.__v && (this.__e = true, n2 && this.__h.push(n2), M$2(this));
-}, x$2.prototype.render = k$2, i$2 = [], o$1 = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, e = function(n2, l2) {
- return n2.__v.__b - l2.__v.__b;
-}, P$1.__r = 0, f$2 = /(PointerCapture)$|Capture$/i, c$2 = 0, s$1 = O$2(false), a$2 = O$2(true), h$1 = 0;
-const defaultContext = {
- color: void 0,
- size: void 0,
- class: void 0,
- style: void 0,
- attr: void 0
};
-const defaultIconContext = J$2 && J$2(defaultContext);
-const CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;
-const CAMEL_REPLACE = /[A-Z0-9]/g;
-function filterKebabCase(attrs) {
- const newAttrs = {};
- for (const key in attrs) {
- if (key.indexOf("-") === -1 && CAMEL_PROPS.test(key))
- newAttrs[key.replace(CAMEL_REPLACE, "-$&").toLowerCase()] = attrs[key];
- else
- newAttrs[key] = attrs[key];
- }
- return newAttrs;
-}
-function Tree2Element$1(tree) {
- return tree && tree.map(
- (node2, i2) => g$2(
- node2.tag,
- { key: i2, ...filterKebabCase(node2.attr) },
- Tree2Element$1(node2.child || [])
- )
- );
-}
-function GenIcon$1(data2) {
- return (props) => /* @__PURE__ */ React.createElement(IconBase$1, { attr: { ...data2.attr }, ...props }, Tree2Element$1(data2.child || []));
-}
-function IconBase$1(props) {
- const elem = (conf) => {
- const { attr: attr2, size: size2, title: title2, ...svgProps } = props;
- let clazz = props.class || "";
- const computedSize = size2 || conf.size || "1em";
- if (conf.class) {
- if (clazz)
- clazz = `${clazz} ${conf.class}`;
- else
- clazz = conf.class;
- }
- let attrs = {
- stroke: conf.stroke || "currentColor",
- fill: conf.fill || "currentColor",
- strokeWidth: conf.strokeWidth || 0,
- class: clazz,
- ...conf.attr,
- ...attr2,
- ...svgProps,
- height: computedSize,
- width: computedSize
- };
- attrs = filterKebabCase(attrs);
- return /* @__PURE__ */ React.createElement(
- "svg",
- {
- ...attrs,
- style: filterKebabCase({
- color: props.color || conf.color,
- ...conf.style,
- ...props.style
- }),
- xmlns: "http://www.w3.org/2000/svg"
- },
- title2 && /* @__PURE__ */ React.createElement("title", null, title2),
- props.children
- );
- };
- return defaultIconContext !== void 0 ? /* @__PURE__ */ React.createElement(defaultIconContext.Consumer, null, (conf) => elem(conf)) : elem(defaultIconContext);
-}
-function RiDeleteBin2Line(props) {
- return GenIcon$1({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "currentColor" }, child: [{ tag: "path", attr: { d: "M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM18 8H6V20H18V8ZM13.4142 13.9997L15.182 15.7675L13.7678 17.1817L12 15.4139L10.2322 17.1817L8.81802 15.7675L10.5858 13.9997L8.81802 12.232L10.2322 10.8178L12 12.5855L13.7678 10.8178L15.182 12.232L13.4142 13.9997ZM9 4V6H15V4H9Z" } }] })(props);
-}
-function RiSaveFill(props) {
- return GenIcon$1({ tag: "svg", attr: { viewBox: "0 0 24 24", fill: "currentColor" }, child: [{ tag: "path", attr: { d: "M18 21V13H6V21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H17L21 7V20C21 20.5523 20.5523 21 20 21H18ZM16 21H8V15H16V21Z" } }] })(props);
-}
-function BsPencil(props) {
- return GenIcon$1({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325" } }] })(props);
-}
-function BsPlus(props) {
- return GenIcon$1({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4" } }] })(props);
-}
-function BsXCircle(props) {
- return GenIcon$1({ tag: "svg", attr: { fill: "currentColor", viewBox: "0 0 16 16" }, child: [{ tag: "path", attr: { d: "M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16" } }, { tag: "path", attr: { d: "M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708" }, child: [] }] })(props);
-}
+OrderState = __decorateClass$9([
+ singleton()
+], OrderState);
+const OrderState$1 = OrderState;
var DefaultContext = {
color: void 0,
size: void 0,
@@ -21677,7 +21335,7 @@ var DefaultContext = {
style: void 0,
attr: void 0
};
-var IconContext = React$1.createContext && /* @__PURE__ */ React$1.createContext(DefaultContext);
+var IconContext = React.createContext && /* @__PURE__ */ React.createContext(DefaultContext);
var _excluded = ["attr", "size", "title"];
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
@@ -21764,12 +21422,12 @@ function _toPrimitive(t2, r2) {
return ("string" === r2 ? String : Number)(t2);
}
function Tree2Element(tree) {
- return tree && tree.map((node2, i2) => /* @__PURE__ */ React$1.createElement(node2.tag, _objectSpread({
+ return tree && tree.map((node2, i2) => /* @__PURE__ */ React.createElement(node2.tag, _objectSpread({
key: i2
}, node2.attr), Tree2Element(node2.child)));
}
function GenIcon(data2) {
- return (props) => /* @__PURE__ */ React$1.createElement(IconBase, _extends$2({
+ return (props) => /* @__PURE__ */ React.createElement(IconBase, _extends$2({
attr: _objectSpread({}, data2.attr)
}, props), Tree2Element(data2.child));
}
@@ -21784,7 +21442,7 @@ function IconBase(props) {
var className;
if (conf.className) className = conf.className;
if (props.className) className = (className ? className + " " : "") + props.className;
- return /* @__PURE__ */ React$1.createElement("svg", _extends$2({
+ return /* @__PURE__ */ React.createElement("svg", _extends$2({
stroke: "currentColor",
fill: "currentColor",
strokeWidth: "0"
@@ -21796,9 +21454,9 @@ function IconBase(props) {
height: computedSize,
width: computedSize,
xmlns: "http://www.w3.org/2000/svg"
- }), title2 && /* @__PURE__ */ React$1.createElement("title", null, title2), props.children);
+ }), title2 && /* @__PURE__ */ React.createElement("title", null, title2), props.children);
};
- return IconContext !== void 0 ? /* @__PURE__ */ React$1.createElement(IconContext.Consumer, null, (conf) => elem(conf)) : elem(DefaultContext);
+ return IconContext !== void 0 ? /* @__PURE__ */ React.createElement(IconContext.Consumer, null, (conf) => elem(conf)) : elem(DefaultContext);
}
function HiArrowLeft(props) {
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 20 20", "fill": "currentColor", "aria-hidden": "true" }, "child": [{ "tag": "path", "attr": { "fillRule": "evenodd", "d": "M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z", "clipRule": "evenodd" }, "child": [] }] })(props);
@@ -21866,7 +21524,7 @@ function createClassGroupUtils(config2) {
};
}
function getGroupRecursive(classParts, classPartObject) {
- var _a2;
+ var _a;
if (classParts.length === 0) {
return classPartObject.classGroupId;
}
@@ -21880,9 +21538,9 @@ function getGroupRecursive(classParts, classPartObject) {
return void 0;
}
const classRest = classParts.join(CLASS_PART_SEPARATOR);
- return (_a2 = classPartObject.validators.find(({
+ return (_a = classPartObject.validators.find(({
validator: validator2
- }) => validator2(classRest))) == null ? void 0 : _a2.classGroupId;
+ }) => validator2(classRest))) == null ? void 0 : _a.classGroupId;
}
const arbitraryPropertyRegex = /^\[(.+)\]$/;
function getGroupIdForArbitraryProperty(className) {
@@ -26460,8 +26118,8 @@ function requireDebounce() {
}
var debounceExports = /* @__PURE__ */ requireDebounce();
const debounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
-var __defProp2 = Object.defineProperty;
-var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __defProp$9 = Object.defineProperty;
+var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value);
const SCROLL_END_DEBOUNCE = 300;
const LEFT_BUTTON = 0;
@@ -26485,8 +26143,8 @@ class ScrollContainer extends reactExports.PureComponent {
}
});
__publicField2(this, "onScroll", () => {
- const container2 = this.container.current;
- if (container2.scrollLeft !== this.scrollLeft || container2.scrollTop !== this.scrollTop) {
+ const container = this.container.current;
+ if (container.scrollLeft !== this.scrollLeft || container.scrollTop !== this.scrollTop) {
this.scrolling = true;
this.processScroll();
this.onEndScroll();
@@ -26532,10 +26190,10 @@ class ScrollContainer extends reactExports.PureComponent {
}
});
__publicField2(this, "onMouseDown", (e2) => {
- var _a2, _b;
+ var _a, _b;
if (this.isDraggable(e2.target) && this.isScrollable()) {
this.internal = true;
- if (((_b = (_a2 = this.props) == null ? void 0 : _a2.buttons) == null ? void 0 : _b.indexOf(e2.button)) !== -1) {
+ if (((_b = (_a = this.props) == null ? void 0 : _a.buttons) == null ? void 0 : _b.indexOf(e2.button)) !== -1) {
this.processClick(e2.clientX, e2.clientY);
e2.preventDefault();
if (this.props.stopPropagation) {
@@ -26571,7 +26229,7 @@ class ScrollContainer extends reactExports.PureComponent {
}
}
});
- this.container = React$1.createRef();
+ this.container = React.createRef();
this.onEndScroll = debounce(this.onEndScroll, SCROLL_END_DEBOUNCE);
this.scrolling = false;
this.started = false;
@@ -26581,15 +26239,15 @@ class ScrollContainer extends reactExports.PureComponent {
}
componentDidMount() {
const { nativeMobileScroll } = this.props;
- const container2 = this.container.current;
+ const container = this.container.current;
window.addEventListener("mouseup", this.onMouseUp);
window.addEventListener("mousemove", this.onMouseMove);
window.addEventListener("touchmove", this.onTouchMove, { passive: false });
window.addEventListener("touchend", this.onTouchEnd);
- container2.addEventListener("touchstart", this.onTouchStart, {
+ container.addEventListener("touchstart", this.onTouchStart, {
passive: false
});
- container2.addEventListener("mousedown", this.onMouseDown, {
+ container.addEventListener("mousedown", this.onMouseDown, {
passive: false
});
if (nativeMobileScroll) {
@@ -26621,13 +26279,13 @@ class ScrollContainer extends reactExports.PureComponent {
}
}
isScrollable() {
- const container2 = this.container.current;
- return container2 && (container2.scrollWidth > container2.clientWidth || container2.scrollHeight > container2.clientHeight);
+ const container = this.container.current;
+ return container && (container.scrollWidth > container.clientWidth || container.scrollHeight > container.clientHeight);
}
processClick(clientX, clientY) {
- const container2 = this.container.current;
- this.scrollLeft = container2 == null ? void 0 : container2.scrollLeft;
- this.scrollTop = container2 == null ? void 0 : container2.scrollTop;
+ const container = this.container.current;
+ this.scrollLeft = container == null ? void 0 : container.scrollLeft;
+ this.scrollTop = container == null ? void 0 : container.scrollTop;
this.clientX = clientX;
this.clientY = clientY;
this.pressed = true;
@@ -26661,7 +26319,7 @@ class ScrollContainer extends reactExports.PureComponent {
// Process non-native scroll
processMove(newClientX, newClientY) {
const { horizontal, vertical, activationDistance, onScroll } = this.props;
- const container2 = this.container.current;
+ const container = this.container.current;
if (!this.started) {
if (horizontal && Math.abs(newClientX - this.clientX) > activationDistance || vertical && Math.abs(newClientY - this.clientY) > activationDistance) {
this.clientX = newClientX;
@@ -26670,24 +26328,24 @@ class ScrollContainer extends reactExports.PureComponent {
}
} else {
if (horizontal) {
- container2.scrollLeft -= newClientX - this.clientX;
+ container.scrollLeft -= newClientX - this.clientX;
}
if (vertical) {
- container2.scrollTop -= newClientY - this.clientY;
+ container.scrollTop -= newClientY - this.clientY;
}
if (onScroll) {
onScroll({ external: !this.internal });
}
this.clientX = newClientX;
this.clientY = newClientY;
- this.scrollLeft = container2.scrollLeft;
- this.scrollTop = container2.scrollTop;
+ this.scrollLeft = container.scrollLeft;
+ this.scrollTop = container.scrollTop;
}
}
processEnd() {
const { onEndScroll } = this.props;
- const container2 = this.container.current;
- if (container2 && onEndScroll) {
+ const container = this.container.current;
+ if (container && onEndScroll) {
onEndScroll({
external: !this.internal
});
@@ -27155,18 +26813,18 @@ var sortByOrder = function sortByOrder2(candidates) {
return acc;
}, []).concat(regularTabbables);
};
-var tabbable = function tabbable2(container2, options2) {
+var tabbable = function tabbable2(container, options2) {
options2 = options2 || {};
var candidates;
if (options2.getShadowRoot) {
- candidates = getCandidatesIteratively([container2], options2.includeContainer, {
+ candidates = getCandidatesIteratively([container], options2.includeContainer, {
filter: isNodeMatchingSelectorTabbable.bind(null, options2),
flatten: false,
getShadowRoot: options2.getShadowRoot,
shadowRootFilter: isValidShadowRootTabbable
});
} else {
- candidates = getCandidates(container2, options2.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options2));
+ candidates = getCandidates(container, options2.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options2));
}
return sortByOrder(candidates);
};
@@ -27465,7 +27123,7 @@ function useMergeRefs(refs) {
}, refs);
}
const SafeReact = {
- ...React$2
+ ...React$1
};
const useInsertionEffect = SafeReact.useInsertionEffect;
const useSafeInsertionEffect = useInsertionEffect || ((fn) => fn());
@@ -28347,12 +28005,12 @@ const getTabbableOptions = () => ({
typeof ResizeObserver === "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
)
});
-function getTabbableIn(container2, direction) {
- const allTabbable = tabbable(container2, getTabbableOptions());
+function getTabbableIn(container, direction) {
+ const allTabbable = tabbable(container, getTabbableOptions());
if (direction === "prev") {
allTabbable.reverse();
}
- const activeIndex = allTabbable.indexOf(activeElement(getDocument(container2)));
+ const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));
const nextTabbableElements = allTabbable.slice(activeIndex + 1);
return nextTabbableElements[0];
}
@@ -28362,20 +28020,20 @@ function getNextTabbable() {
function getPreviousTabbable() {
return getTabbableIn(document.body, "prev");
}
-function isOutsideEvent(event, container2) {
- const containerElement = container2 || event.currentTarget;
+function isOutsideEvent(event, container) {
+ const containerElement = container || event.currentTarget;
const relatedTarget = event.relatedTarget;
return !relatedTarget || !contains$1(containerElement, relatedTarget);
}
-function disableFocusInside(container2) {
- const tabbableElements = tabbable(container2, getTabbableOptions());
+function disableFocusInside(container) {
+ const tabbableElements = tabbable(container, getTabbableOptions());
tabbableElements.forEach((element) => {
element.dataset.tabindex = element.getAttribute("tabindex") || "";
element.setAttribute("tabindex", "-1");
});
}
-function enableFocusInside(container2) {
- const elements = container2.querySelectorAll("[data-tabindex]");
+function enableFocusInside(container) {
+ const elements = container.querySelectorAll("[data-tabindex]");
elements.forEach((element) => {
const tabindex = element.dataset.tabindex;
delete element.dataset.tabindex;
@@ -28487,20 +28145,20 @@ function useFloatingPortalNode(props) {
index(() => {
if (!uniqueId) return;
if (portalNodeRef.current) return;
- let container2 = root || (portalContext == null ? void 0 : portalContext.portalNode);
- if (container2 && !isElement(container2)) container2 = container2.current;
- container2 = container2 || document.body;
+ let container = root || (portalContext == null ? void 0 : portalContext.portalNode);
+ if (container && !isElement(container)) container = container.current;
+ container = container || document.body;
let idWrapper = null;
if (id) {
idWrapper = document.createElement("div");
idWrapper.id = id;
- container2.appendChild(idWrapper);
+ container.appendChild(idWrapper);
}
const subRoot = document.createElement("div");
subRoot.id = uniqueId;
subRoot.setAttribute(attr, "");
- container2 = idWrapper || container2;
- container2.appendChild(subRoot);
+ container = idWrapper || container;
+ container.appendChild(subRoot);
portalNodeRef.current = subRoot;
setPortalNode(subRoot);
}, [id, root, uniqueId, portalContext]);
@@ -28659,14 +28317,14 @@ function FloatingFocusManager(props) {
const isInsidePortal = portalContext != null;
const firstElementChild = floating == null ? void 0 : floating.firstElementChild;
const floatingFocusNode = (firstElementChild == null ? void 0 : firstElementChild.id) === floatingId ? firstElementChild : floating;
- const getTabbableContent = useEffectEvent(function(container2) {
- if (container2 === void 0) {
- container2 = floatingFocusNode;
+ const getTabbableContent = useEffectEvent(function(container) {
+ if (container === void 0) {
+ container = floatingFocusNode;
}
- return container2 ? tabbable(container2, getTabbableOptions()) : [];
+ return container ? tabbable(container, getTabbableOptions()) : [];
});
- const getTabbableElements = useEffectEvent((container2) => {
- const content = getTabbableContent(container2);
+ const getTabbableElements = useEffectEvent((container) => {
+ const content = getTabbableContent(container);
return orderRef.current.map((type2) => {
if (domReference && type2 === "reference") {
return domReference;
@@ -30752,9 +30410,9 @@ function FaQuoteRight(props) {
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z" }, "child": [] }] })(props);
}
const copyToClipboard = (valueToCopy, setIsJustCopied) => {
- var _a2;
+ var _a;
setIsJustCopied(true);
- (_a2 = navigator == null ? void 0 : navigator.clipboard) == null ? void 0 : _a2.writeText(valueToCopy).then(() => {
+ (_a = navigator == null ? void 0 : navigator.clipboard) == null ? void 0 : _a.writeText(valueToCopy).then(() => {
console.log("Copy Successfull");
}).catch((error) => {
console.error("Failed to Copy text: ", error);
@@ -31187,8 +30845,8 @@ const DatepickerRender = ({
};
reactExports.useImperativeHandle(ref2, () => ({
focus() {
- var _a2;
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
+ var _a;
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
},
clear() {
clearDate();
@@ -31247,8 +30905,8 @@ const DatepickerRender = ({
};
reactExports.useEffect(() => {
const handleClickOutside = (event) => {
- var _a2, _b;
- const clickedInsideDatepicker = (_a2 = datepickerRef == null ? void 0 : datepickerRef.current) == null ? void 0 : _a2.contains(event.target);
+ var _a, _b;
+ const clickedInsideDatepicker = (_a = datepickerRef == null ? void 0 : datepickerRef.current) == null ? void 0 : _a.contains(event.target);
const clickedInsideInput = (_b = inputRef == null ? void 0 : inputRef.current) == null ? void 0 : _b.contains(event.target);
if (!clickedInsideDatepicker && !clickedInsideInput) {
setIsOpen(false);
@@ -31843,7 +31501,7 @@ const FooterComponent = ({
bgDark = false,
children,
className,
- container: container2 = false,
+ container = false,
theme: customTheme = {},
...props
}) => {
@@ -31852,7 +31510,7 @@ const FooterComponent = ({
"footer",
{
"data-testid": "flowbite-footer",
- className: twMerge(theme2.root.base, bgDark && theme2.root.bgDark, container2 && theme2.root.container, className),
+ className: twMerge(theme2.root.base, bgDark && theme2.root.bgDark, container && theme2.root.container, className),
...props,
children
}
@@ -32192,13 +31850,13 @@ const MegaMenuDropdown = ({
const id = reactExports.useId();
const ref2 = reactExports.useRef(null);
reactExports.useEffect(() => {
- var _a2;
+ var _a;
const findToggle = function() {
- var _a3;
- const megaMenu = (_a3 = ref2.current) == null ? void 0 : _a3.closest("nav");
+ var _a2;
+ const megaMenu = (_a2 = ref2.current) == null ? void 0 : _a2.closest("nav");
return megaMenu == null ? void 0 : megaMenu.querySelector('[aria-haspopup="menu"]');
};
- setLabelledBy((_a2 = findToggle()) == null ? void 0 : _a2.id);
+ setLabelledBy((_a = findToggle()) == null ? void 0 : _a.id);
}, []);
return /* @__PURE__ */ jsxRuntimeExports.jsx(
"div",
@@ -32226,13 +31884,13 @@ const MegaMenuDropdownToggle = ({
const [isExpanded, setExpanded] = reactExports.useState(void 0);
const theme2 = mergeDeep(getTheme2().megaMenu.dropdownToggle, customTheme);
const findDropdown = function() {
- var _a2;
- const megaMenu = (_a2 = ref2.current) == null ? void 0 : _a2.closest("nav");
+ var _a;
+ const megaMenu = (_a = ref2.current) == null ? void 0 : _a.closest("nav");
return megaMenu == null ? void 0 : megaMenu.querySelector('[role="menu"]');
};
const onClick = function() {
- var _a2;
- (_a2 = findDropdown()) == null ? void 0 : _a2.classList.toggle("hidden");
+ var _a;
+ (_a = findDropdown()) == null ? void 0 : _a.classList.toggle("hidden");
setExpanded(!isExpanded);
};
reactExports.useEffect(() => {
@@ -32729,7 +32387,7 @@ const SidebarItem = reactExports.forwardRef(
theme: customTheme = {},
...props
}, ref2) => {
- var _a2, _b, _c, _d;
+ var _a, _b, _c, _d;
const id = reactExports.useId();
const { theme: rootTheme, isCollapsed } = useSidebarContext();
const { isInsideCollapse } = useSidebarItemContext();
@@ -32742,7 +32400,7 @@ const SidebarItem = reactExports.forwardRef(
className: twMerge(
theme2.base,
isActive && theme2.active,
- !isCollapsed && isInsideCollapse && ((_a2 = theme2.collapsed) == null ? void 0 : _a2.insideCollapse),
+ !isCollapsed && isInsideCollapse && ((_a = theme2.collapsed) == null ? void 0 : _a.insideCollapse),
className
),
...props,
@@ -32972,8 +32630,8 @@ const TabsComponent = reactExports.forwardRef(
const tabItemStyle = theme2.tablist.tabitem.variant[variant];
const tabItemContainerStyle = theme2.tabitemcontainer.variant[variant];
reactExports.useEffect(() => {
- var _a2;
- (_a2 = tabRefs.current[focusedTab]) == null ? void 0 : _a2.focus();
+ var _a;
+ (_a = tabRefs.current[focusedTab]) == null ? void 0 : _a.focus();
}, [focusedTab]);
reactExports.useImperativeHandle(ref2, () => ({
setActiveTab: setActiveTabWithCallback
@@ -33338,11 +32996,11 @@ const ToggleSwitch = reactExports.forwardRef(
ToggleSwitch.displayName = "ToggleSwitch";
const Button = ({ type: type2, variant, onClick }) => {
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { color: variant, pill: true, onClick, children: [
- type2 == 1 && /* @__PURE__ */ jsxRuntimeExports.jsx(BsPlus, {}),
- type2 == 2 && /* @__PURE__ */ jsxRuntimeExports.jsx(BsPencil, {}),
- type2 == 3 && /* @__PURE__ */ jsxRuntimeExports.jsx(RiSaveFill, {}),
- type2 == 4 && /* @__PURE__ */ jsxRuntimeExports.jsx(BsXCircle, {}),
- type2 == 5 && /* @__PURE__ */ jsxRuntimeExports.jsx(RiDeleteBin2Line, {})
+ type2 == 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", class: "size-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 4.5v15m7.5-7.5h-15" }) }),
+ type2 == 2 && /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", class: "size-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125" }) }),
+ type2 == 3 && /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", fill: "none", class: "size-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M6 20.25h12A2.25 2.25 0 0 0 20.25 18V7.5L16.5 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25zm9.75-16.5v5h-9.5v-5zM13 5.5V7m-6.75 4.25h11.5v6.5H6.25Z" }) }),
+ type2 == 4 && /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", class: "size-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }) }),
+ type2 == 5 && /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", class: "size-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }) })
] });
};
function isObject$1(thing) {
@@ -36779,7 +36437,7 @@ function requireTimes() {
var timesExports = requireTimes();
const times = /* @__PURE__ */ getDefaultExportFromCjs(timesExports);
function getOptionMatchingSimpleDiscriminator(formData, options2, discriminatorField) {
- var _a2;
+ var _a;
if (formData && discriminatorField) {
const value = _get(formData, discriminatorField);
if (value === void 0) {
@@ -36794,7 +36452,7 @@ function getOptionMatchingSimpleDiscriminator(formData, options2, discriminatorF
if (discriminator.const === value) {
return i2;
}
- if ((_a2 = discriminator.enum) === null || _a2 === void 0 ? void 0 : _a2.includes(value)) {
+ if ((_a = discriminator.enum) === null || _a === void 0 ? void 0 : _a.includes(value)) {
return i2;
}
}
@@ -38946,7 +38604,7 @@ function retrieveSchemaInternal(validator2, schema, rootSchema, rawFormData, exp
}
const resolvedSchemas = resolveSchema(validator2, schema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);
return resolvedSchemas.flatMap((s2) => {
- var _a2;
+ var _a;
let resolvedSchema = s2;
if (IF_KEY in resolvedSchema) {
return resolveCondition(validator2, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData, experimental_customMergeAllOf);
@@ -38959,7 +38617,7 @@ function retrieveSchemaInternal(validator2, schema, rootSchema, rawFormData, exp
try {
const withContainsSchemas = [];
const withoutContainsSchemas = [];
- (_a2 = resolvedSchema.allOf) === null || _a2 === void 0 ? void 0 : _a2.forEach((s3) => {
+ (_a = resolvedSchema.allOf) === null || _a === void 0 ? void 0 : _a.forEach((s3) => {
if (typeof s3 === "object" && s3.contains) {
withContainsSchemas.push(s3);
} else {
@@ -39378,7 +39036,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
const retrievedSchema = (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.allOf) === "populateDefaults" && ALL_OF_KEY in schema ? retrieveSchema(validator2, schema, rootSchema, formData, experimental_customMergeAllOf) : schema;
const parentConst = retrievedSchema[CONST_KEY];
const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce((acc, key) => {
- var _a2;
+ var _a;
const propertySchema = _get(retrievedSchema, [PROPERTIES_KEY, key]);
const hasParentConst = isObject$1(parentConst) && parentConst[key] !== void 0;
const hasConst = (isObject$1(propertySchema) && CONST_KEY in propertySchema || hasParentConst) && (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.constAsDefaults) !== "never";
@@ -39390,7 +39048,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
includeUndefinedValues: includeUndefinedValues === true,
parentDefaults: _get(defaults2, [key]),
rawFormData: _get(formData, [key]),
- required: (_a2 = retrievedSchema.required) === null || _a2 === void 0 ? void 0 : _a2.includes(key)
+ required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key)
});
maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, required2, retrievedSchema.required, experimental_defaultFormStateBehavior, hasConst);
return acc;
@@ -39407,7 +39065,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
formDataRequired.push(key);
});
keys.forEach((key) => {
- var _a2;
+ var _a;
const computedDefault = computeDefaults(validator2, additionalPropertiesSchema, {
rootSchema,
_recurseList,
@@ -39416,7 +39074,7 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
includeUndefinedValues: includeUndefinedValues === true,
parentDefaults: _get(defaults2, [key]),
rawFormData: _get(formData, [key]),
- required: (_a2 = retrievedSchema.required) === null || _a2 === void 0 ? void 0 : _a2.includes(key)
+ required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key)
});
maybeAddDefaultToObject(objectDefaults, key, computedDefault, includeUndefinedValues, required2, formDataRequired);
});
@@ -39425,9 +39083,9 @@ function getObjectDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}
}
}
function getArrayDefaults(validator2, rawSchema, { rawFormData, rootSchema = {}, _recurseList = [], experimental_defaultFormStateBehavior = void 0, experimental_customMergeAllOf = void 0, required: required2 } = {}, defaults2) {
- var _a2, _b;
+ var _a, _b;
const schema = rawSchema;
- const arrayMinItemsStateBehavior = (_a2 = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) !== null && _a2 !== void 0 ? _a2 : {};
+ const arrayMinItemsStateBehavior = (_a = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) !== null && _a !== void 0 ? _a : {};
const { populate: arrayMinItemsPopulate, mergeExtraDefaults: arrayMergeExtraDefaults } = arrayMinItemsStateBehavior;
const neverPopulate = arrayMinItemsPopulate === "never";
const ignoreMinItemsFlagSet = arrayMinItemsPopulate === "requiredOnly";
@@ -39963,7 +39621,7 @@ function createSchemaUtils(validator2, rootSchema, experimental_defaultFormState
return new SchemaUtils(validator2, rootSchema, experimental_defaultFormStateBehavior, experimental_customMergeAllOf);
}
function dataURItoBlob(dataURILike) {
- var _a2;
+ var _a;
if (dataURILike.indexOf("data:") === -1) {
throw new Error("File is invalid: URI must be a dataURI");
}
@@ -39978,7 +39636,7 @@ function dataURItoBlob(dataURILike) {
const name = decodeURI(
// parse the parameters into key-value pairs, find a key, and extract a value
// if no key is found, then the name is unknown
- ((_a2 = mediaparams.map((param) => param.split("=")).find(([key]) => key === "name")) === null || _a2 === void 0 ? void 0 : _a2[1]) || "unknown"
+ ((_a = mediaparams.map((param) => param.split("=")).find(([key]) => key === "name")) === null || _a === void 0 ? void 0 : _a[1]) || "unknown"
);
try {
const binary = atob(base64);
@@ -46973,11 +46631,11 @@ class AJV6Validator {
* @param rootSchema - The root schema used to provide $ref resolutions
*/
handleSchemaUpdate(rootSchema) {
- var _a2;
+ var _a;
const rootSchemaId = ROOT_SCHEMA_PREFIX;
if (this.ajv.getSchema(ROOT_SCHEMA_PREFIX) === void 0) {
this.ajv.addSchema(rootSchema, ROOT_SCHEMA_PREFIX);
- } else if (!deepEquals(rootSchema, (_a2 = this.ajv.getSchema(ROOT_SCHEMA_PREFIX)) === null || _a2 === void 0 ? void 0 : _a2.schema)) {
+ } else if (!deepEquals(rootSchema, (_a = this.ajv.getSchema(ROOT_SCHEMA_PREFIX)) === null || _a === void 0 ? void 0 : _a.schema)) {
this.ajv.removeSchema(rootSchemaId);
this.ajv.addSchema(rootSchema, rootSchemaId);
}
@@ -47413,38 +47071,38 @@ class ArrayField extends reactExports.Component {
/** Renders an array using the custom widget provided by the user in the `uiSchema`
*/
renderCustomWidget() {
- var _a2;
+ var _a;
const { schema, idSchema, uiSchema, disabled = false, readonly = false, autofocus = false, required: required2 = false, hideError, placeholder, onBlur, onFocus: onFocus2, formData: items2 = [], registry, rawErrors, name } = this.props;
const { widgets: widgets2, formContext, globalUiOptions, schemaUtils } = registry;
const { widget, title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
+ const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, options: options2, schema, uiSchema, registry, value: items2, disabled, readonly, hideError, required: required2, label, hideLabel: !displayLabel, placeholder, formContext, autofocus, rawErrors });
}
/** Renders an array as a set of checkboxes
*/
renderMultiSelect() {
- var _a2;
+ var _a;
const { schema, idSchema, uiSchema, formData: items2 = [], disabled = false, readonly = false, autofocus = false, required: required2 = false, placeholder, onBlur, onFocus: onFocus2, registry, rawErrors, name } = this.props;
const { widgets: widgets2, schemaUtils, formContext, globalUiOptions } = registry;
const itemsSchema = schemaUtils.retrieveSchema(schema.items, items2);
const enumOptions = optionsList(itemsSchema, uiSchema);
const { widget = "select", title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
+ const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, options: { ...options2, enumOptions }, schema, uiSchema, registry, value: items2, disabled, readonly, required: required2, label, hideLabel: !displayLabel, placeholder, formContext, autofocus, rawErrors });
}
/** Renders an array of files using the `FileWidget`
*/
renderFiles() {
- var _a2;
+ var _a;
const { schema, uiSchema, idSchema, name, disabled = false, readonly = false, autofocus = false, required: required2 = false, onBlur, onFocus: onFocus2, registry, formData: items2 = [], rawErrors } = this.props;
const { widgets: widgets2, formContext, globalUiOptions, schemaUtils } = registry;
const { widget = "files", title: uiTitle, ...options2 } = getUiOptions(uiSchema, globalUiOptions);
const Widget = getWidget(schema, widget, widgets2);
- const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a2 !== void 0 ? _a2 : name;
+ const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
return jsxRuntimeExports.jsx(Widget, { options: options2, id: idSchema.$id, name, multiple: true, onChange: this.onSelectChange, onBlur, onFocus: onFocus2, schema, uiSchema, value: items2, disabled, readonly, required: required2, registry, formContext, autofocus, rawErrors, label, hideLabel: !displayLabel });
}
@@ -47559,7 +47217,7 @@ class ArrayField extends reactExports.Component {
}
}
function BooleanField(props) {
- var _a2, _b, _c;
+ var _a, _b, _c;
const { schema, name, uiSchema, idSchema, formData, registry, required: required2, disabled, readonly, hideError, autofocus, title: title2, onChange: onChange2, onFocus: onFocus2, onBlur, rawErrors } = props;
const { title: schemaTitle } = schema;
const { widgets: widgets2, formContext, translateString, globalUiOptions } = registry;
@@ -47574,7 +47232,7 @@ function BooleanField(props) {
const yes = translateString(TranslatableString.YesLabel);
const no = translateString(TranslatableString.NoLabel);
let enumOptions;
- const label = (_b = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schemaTitle) !== null && _a2 !== void 0 ? _a2 : title2) !== null && _b !== void 0 ? _b : name;
+ const label = (_b = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schemaTitle) !== null && _a !== void 0 ? _a : title2) !== null && _b !== void 0 ? _b : name;
if (Array.isArray(schema.oneOf)) {
enumOptions = optionsList({
oneOf: schema.oneOf.map((option) => {
@@ -48129,7 +47787,7 @@ class ObjectField extends reactExports.Component {
};
};
this.handleAddClick = (schema) => () => {
- var _a2;
+ var _a;
if (!schema.additionalProperties) {
return;
}
@@ -48155,7 +47813,7 @@ class ObjectField extends reactExports.Component {
}
}
const newKey = this.getAvailableKey("newKey", newFormData);
- const newValue = (_a2 = constValue !== null && constValue !== void 0 ? constValue : defaultValue) !== null && _a2 !== void 0 ? _a2 : this.getDefaultValue(type2);
+ const newValue = (_a = constValue !== null && constValue !== void 0 ? constValue : defaultValue) !== null && _a !== void 0 ? _a : this.getDefaultValue(type2);
set(newFormData, newKey, newValue);
onChange2(newFormData);
};
@@ -48194,14 +47852,14 @@ class ObjectField extends reactExports.Component {
/** Renders the `ObjectField` from the given props
*/
render() {
- var _a2, _b, _c, _d;
+ var _a, _b, _c, _d;
const { schema: rawSchema, uiSchema = {}, formData, errorSchema, idSchema, name, required: required2 = false, disabled, readonly, hideError, idPrefix, idSeparator, onBlur, onFocus: onFocus2, registry, title: title2 } = this.props;
const { fields: fields2, formContext, schemaUtils, translateString, globalUiOptions } = registry;
const { SchemaField: SchemaField2 } = fields2;
const schema = schemaUtils.retrieveSchema(rawSchema, formData);
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
const { properties: schemaProperties = {} } = schema;
- const templateTitle = (_c = (_b = (_a2 = uiOptions.title) !== null && _a2 !== void 0 ? _a2 : schema.title) !== null && _b !== void 0 ? _b : title2) !== null && _c !== void 0 ? _c : name;
+ const templateTitle = (_c = (_b = (_a = uiOptions.title) !== null && _a !== void 0 ? _a : schema.title) !== null && _b !== void 0 ? _b : title2) !== null && _c !== void 0 ? _c : name;
const description2 = (_d = uiOptions.description) !== null && _d !== void 0 ? _d : schema.description;
let orderedProperties;
try {
@@ -48277,7 +47935,7 @@ function getFieldComponent(schema, uiOptions, idSchema, registry) {
};
}
function SchemaFieldRender(props) {
- var _a2, _b, _c;
+ var _a, _b, _c;
const { schema: _schema, idSchema: _idSchema, uiSchema, formData, errorSchema, idPrefix, idSeparator, name, onChange: onChange2, onKeyChange, onDropPropertyClick, required: required2, registry, wasPropertyKeyModified = false } = props;
const { formContext, schemaUtils, globalUiOptions } = registry;
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
@@ -48293,7 +47951,7 @@ function SchemaFieldRender(props) {
return onChange2(formData2, newErrorSchema, theId);
}, [fieldId, onChange2]);
const FieldComponent = getFieldComponent(schema, uiOptions, idSchema, registry);
- const disabled = Boolean((_a2 = uiOptions.disabled) !== null && _a2 !== void 0 ? _a2 : props.disabled);
+ const disabled = Boolean((_a = uiOptions.disabled) !== null && _a !== void 0 ? _a : props.disabled);
const readonly = Boolean((_b = uiOptions.readonly) !== null && _b !== void 0 ? _b : props.readonly || props.schema.readOnly || schema.readOnly);
const uiSchemaHideError = uiOptions.hideError;
const hideError = uiSchemaHideError === void 0 ? props.hideError : Boolean(uiSchemaHideError);
@@ -48371,7 +48029,7 @@ class SchemaField extends reactExports.Component {
}
}
function StringField(props) {
- var _a2;
+ var _a;
const { schema, name, uiSchema, idSchema, formData, required: required2, disabled = false, readonly = false, autofocus = false, onChange: onChange2, onBlur, onFocus: onFocus2, registry, rawErrors, hideError } = props;
const { title: title2, format: format2 } = schema;
const { widgets: widgets2, formContext, schemaUtils, globalUiOptions } = registry;
@@ -48382,7 +48040,7 @@ function StringField(props) {
}
const { widget = defaultWidget, placeholder = "", title: uiTitle, ...options2 } = getUiOptions(uiSchema);
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);
- const label = (_a2 = uiTitle !== null && uiTitle !== void 0 ? uiTitle : title2) !== null && _a2 !== void 0 ? _a2 : name;
+ const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : title2) !== null && _a !== void 0 ? _a : name;
const Widget = getWidget(schema, widget, widgets2);
return jsxRuntimeExports.jsx(Widget, { options: { ...options2, enumOptions }, schema, uiSchema, id: idSchema.$id, name, label, hideLabel: !displayLabel, hideError, value: formData, onChange: onChange2, onBlur, onFocus: onFocus2, required: required2, disabled, readonly, formContext, autofocus, registry, placeholder, rawErrors });
}
@@ -48701,13 +48359,13 @@ function AltDateTimeWidget({ time = true, ...props }) {
return jsxRuntimeExports.jsx(AltDateWidget2, { time, ...props });
}
function CheckboxWidget({ schema, uiSchema, options: options2, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus: onFocus2, onChange: onChange2, registry }) {
- var _a2;
+ var _a;
const DescriptionFieldTemplate = getTemplate("DescriptionFieldTemplate", registry, options2);
const required2 = schemaRequiresTrueValue(schema);
const handleChange = reactExports.useCallback((event) => onChange2(event.target.checked), [onChange2]);
const handleBlur = reactExports.useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);
const handleFocus = reactExports.useCallback((event) => onFocus2(id, event.target.checked), [onFocus2, id]);
- const description2 = (_a2 = options2.description) !== null && _a2 !== void 0 ? _a2 : schema.description;
+ const description2 = (_a = options2.description) !== null && _a !== void 0 ? _a : schema.description;
return jsxRuntimeExports.jsxs("div", { className: `checkbox ${disabled || readonly ? "disabled" : ""}`, children: [!hideLabel && !!description2 && jsxRuntimeExports.jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description2, schema, uiSchema, registry }), jsxRuntimeExports.jsxs("label", { children: [jsxRuntimeExports.jsx("input", { type: "checkbox", id, name: id, checked: typeof value === "undefined" ? false : value, required: required2, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, "aria-describedby": ariaDescribedByIds(id) }), labelValue(jsxRuntimeExports.jsx("span", { children: label }), hideLabel)] })] });
}
function CheckboxesWidget({ id, disabled, options: { inline: inline2 = false, enumOptions, enumDisabled, emptyValue }, value, autofocus = false, readonly, onChange: onChange2, onBlur, onFocus: onFocus2 }) {
@@ -48762,8 +48420,8 @@ function processFile(file) {
const reader = new window.FileReader();
reader.onerror = reject;
reader.onload = (event) => {
- var _a2;
- if (typeof ((_a2 = event.target) === null || _a2 === void 0 ? void 0 : _a2.result) === "string") {
+ var _a;
+ if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) === "string") {
resolve({
dataURL: addNameToDataURL(event.target.result, name),
name,
@@ -49257,7 +48915,7 @@ let Form$1 = class Form extends reactExports.Component {
* @returns - The new state for the `Form`
*/
getStateFromProps(props, inputFormData, retrievedSchema, isSchemaChanged = false) {
- var _a2;
+ var _a;
const state = this.state || {};
const schema = "schema" in props ? props.schema : this.props.schema;
const uiSchema = ("uiSchema" in props ? props.uiSchema : this.props.uiSchema) || {};
@@ -49297,7 +48955,7 @@ let Form$1 = class Form extends reactExports.Component {
if (retrievedSchema === void 0) {
errorSchema = schemaValidation.errorSchema;
} else {
- errorSchema = mergeObjects((_a2 = this.state) === null || _a2 === void 0 ? void 0 : _a2.errorSchema, schemaValidation.errorSchema, "preventDuplicates");
+ errorSchema = mergeObjects((_a = this.state) === null || _a === void 0 ? void 0 : _a.errorSchema, schemaValidation.errorSchema, "preventDuplicates");
}
schemaValidationErrors = errors;
schemaValidationErrorSchema = errorSchema;
@@ -49384,7 +49042,7 @@ let Form$1 = class Form extends reactExports.Component {
}
/** Returns the registry for the form */
getRegistry() {
- var _a2;
+ var _a;
const { translateString: customTranslateString, uiSchema = {} } = this.props;
const { schemaUtils } = this.state;
const { fields: fields2, templates: templates2, widgets: widgets2, formContext, translateString } = getDefaultRegistry();
@@ -49395,7 +49053,7 @@ let Form$1 = class Form extends reactExports.Component {
...this.props.templates,
ButtonTemplates: {
...templates2.ButtonTemplates,
- ...(_a2 = this.props.templates) === null || _a2 === void 0 ? void 0 : _a2.ButtonTemplates
+ ...(_a = this.props.templates) === null || _a === void 0 ? void 0 : _a.ButtonTemplates
}
},
widgets: { ...widgets2, ...this.props.widgets },
@@ -49482,8 +49140,17 @@ class Country {
this.useVatWithoutUstId = item.useVatWithoutUstId;
}
}
-_CountryService_decorators = [singleton(), autoInjectable()];
-class CountryService {
+var __defProp$8 = Object.defineProperty;
+var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
+var __decorateClass$8 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$8(target, key, result);
+ return result;
+};
+let CountryService = class {
async getCountry(shop) {
return await axios.get("/apps/api/country/by/shop/" + shop.uuid).then((response) => {
return response.data.data.map((item) => {
@@ -49493,13 +49160,15 @@ class CountryService {
});
});
}
-}
-_init4 = __decoratorStart(null);
-CountryService = __decorateElement(_init4, 0, "CountryService", _CountryService_decorators, CountryService);
-__runInitializers(_init4, 1, CountryService);
+};
+CountryService = __decorateClass$8([
+ singleton(),
+ autoInjectable()
+], CountryService);
+const CountryService$1 = CountryService;
const ContactModal = NiceModal.create(
({ title: title2, action, contact, shop }) => {
- const country_api = new CountryService();
+ const country_api = new CountryService$1();
const modal = useModal();
const [formData, setFormData] = reactExports.useState({});
const [schema, setSchema] = reactExports.useState({});
@@ -49602,36 +49271,46 @@ const ContactModal = NiceModal.create(
] });
}
);
-_AddressService_decorators = [singleton(), autoInjectable()];
-class AddressService {
+var __defProp$7 = Object.defineProperty;
+var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
+var __decorateClass$7 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$7(target, key, result);
+ return result;
+};
+var __decorateParam$7 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let AddressService = class {
constructor(token2) {
this.token = token2;
}
async create(address) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/contact/address/create", { "address": address }, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async update(address) {
- var _a2;
+ var _a;
return await axios.put("/apps/api/contact/address/update/" + address.uuid, { "address": address }, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async getContactAddress(contact, type2) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/contact/address/getallfortype/" + contact + "/" + type2, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -49652,10 +49331,13 @@ class AddressService {
});
});
}
-}
-_init5 = __decoratorStart(null);
-AddressService = __decorateElement(_init5, 0, "AddressService", _AddressService_decorators, AddressService);
-__runInitializers(_init5, 1, AddressService);
+};
+AddressService = __decorateClass$7([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$7(0, inject(Token$1))
+], AddressService);
+const AddressService$1 = AddressService;
const ContactModalComponent = ({ shop, handleAdd, handleEdit, contact }) => {
const contactModal = useModal(ContactModal);
const showAddModal = reactExports.useCallback(() => {
@@ -49671,7 +49353,7 @@ const ContactModalComponent = ({ shop, handleAdd, handleEdit, contact }) => {
});
}, [contactModal]);
const updateContact = (contact2) => {
- const contact_api = new ContactService();
+ const contact_api = new ContactService$1();
contact_api.updateContact(contact2).then((e2) => {
handleEdit(contact2);
});
@@ -49679,14 +49361,14 @@ const ContactModalComponent = ({ shop, handleAdd, handleEdit, contact }) => {
const addContact = (formData) => {
var contact2 = new Contact();
contact2.parseFromFormData(formData, shop);
- const contact_api = new ContactService();
+ const contact_api = new ContactService$1();
contact_api.createContact(contact2).then((e2) => {
contact2.parseFromJson(e2);
var address = new Address();
address.parseFromFormData(formData);
address.contact.uuid = contact2.uuid;
address.type = 1;
- const address_api = new AddressService();
+ const address_api = new AddressService$1();
address_api.create(address);
address.type = 2;
address_api.create(address);
@@ -50654,9 +50336,9 @@ function Fe(e2) {
return t3.name || he(15), M(e3, t3.name);
}, F).toString() : "", p2;
}
-var Me = new ke(), ze = Fe(), $e = React$1.createContext({ shouldForwardProp: void 0, styleSheet: Me, stylis: ze });
+var Me = new ke(), ze = Fe(), $e = React.createContext({ shouldForwardProp: void 0, styleSheet: Me, stylis: ze });
$e.Consumer;
-React$1.createContext(void 0);
+React.createContext(void 0);
function Ge() {
return reactExports.useContext($e);
}
@@ -50746,7 +50428,7 @@ var Ke = z(v), Qe = function() {
}
return o2;
}, e2;
-}(), et = React$1.createContext(void 0);
+}(), et = React.createContext(void 0);
et.Consumer;
var rt = {};
function it(e2, r2, s2) {
@@ -50770,7 +50452,7 @@ function it(e2, r2, s2) {
var N2 = new Qe(s2, g2, i2 ? a2.componentStyle : void 0);
function O2(e3, r3) {
return function(e4, r4, s3) {
- var i3 = e4.attrs, a3 = e4.componentStyle, c3 = e4.defaultProps, p3 = e4.foldedComponentIds, d3 = e4.styledComponentId, h3 = e4.target, f3 = React$1.useContext(et), m3 = Ge(), y3 = e4.shouldForwardProp || m3.shouldForwardProp;
+ var i3 = e4.attrs, a3 = e4.componentStyle, c3 = e4.defaultProps, p3 = e4.foldedComponentIds, d3 = e4.styledComponentId, h3 = e4.target, f3 = React.useContext(et), m3 = Ge(), y3 = e4.shouldForwardProp || m3.shouldForwardProp;
var v2 = I(r4, f3, c3) || C, g3 = function(e5, n2, o2) {
for (var r5, s4 = __assign(__assign({}, n2), { className: void 0, theme: o2 }), i4 = 0; i4 < e5.length; i4 += 1) {
var a4 = re(r5 = e5[i4]) ? r5(s4) : r5;
@@ -50788,7 +50470,7 @@ function it(e2, r2, s2) {
}(D2, e3, r3);
}
O2.displayName = y2;
- var D2 = React$1.forwardRef(O2);
+ var D2 = React.forwardRef(O2);
return D2.attrs = S2, D2.componentStyle = N2, D2.displayName = y2, D2.shouldForwardProp = w2, D2.foldedComponentIds = i2 ? ie(a2.foldedComponentIds, a2.styledComponentId) : "", D2.styledComponentId = g2, D2.target = i2 ? a2.target : e2, Object.defineProperty(D2, "defaultProps", { get: function() {
return this._foldedDefaultProps;
}, set: function(e3) {
@@ -55537,8 +55219,8 @@ const Label = dt.label`
`;
const ContactSelect = ({ order, shop, onChange: onChange2 }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
- const orderState = instance.resolve(OrderState);
- const contact_api = new ContactService();
+ const orderState = instance.resolve(OrderState$1);
+ const contact_api = new ContactService$1();
reactExports.useEffect(() => {
setShopUuid(shop.uuid);
}, [shop]);
@@ -55597,7 +55279,7 @@ ContactSelect.propTypes = {
};
const Addressdiv = NiceModal.create(
({ title: title2, action, address, shop }) => {
- const country_api = new CountryService();
+ const country_api = new CountryService$1();
const modal = useModal();
const [formData, setFormData] = reactExports.useState({});
const [schema, setSchema] = reactExports.useState({});
@@ -55759,8 +55441,8 @@ AddressDetail.propTypes = {
const AddressSelect = ({ address, contact, type: type2, changeAddress, name, shop }) => {
const [contactUuid, setContactUuid] = reactExports.useState(null);
const [localAddress, setLocalAddress] = reactExports.useState(null);
- const address_service = new AddressService();
- instance.resolve(OrderState);
+ const address_service = new AddressService$1();
+ instance.resolve(OrderState$1);
reactExports.useEffect(() => {
if (contact.uuid != "") {
setContactUuid(contact.uuid);
@@ -55769,7 +55451,7 @@ const AddressSelect = ({ address, contact, type: type2, changeAddress, name, sho
reactExports.useEffect(() => {
setLocalAddress(address);
}, [address]);
- instance.resolve(OrderState);
+ instance.resolve(OrderState$1);
const loadOptions = async (searchQuery, loadedOptions) => {
const data2 = await address_service.getContactAddress(contact.uuid, type2);
return {
@@ -55830,16 +55512,26 @@ AddressSelect.propTypes = {
changeAddress: propTypesExports.func,
name: propTypesExports.string
};
-_AccountService_decorators = [singleton(), autoInjectable()];
-class AccountService {
+var __defProp$6 = Object.defineProperty;
+var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
+var __decorateClass$6 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$6(target, key, result);
+ return result;
+};
+var __decorateParam$6 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let AccountService = class {
constructor(token2) {
this.token = token2;
}
async getAccounts(shop) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/account/allbyshop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -55852,19 +55544,22 @@ class AccountService {
});
});
}
-}
-_init6 = __decoratorStart(null);
-AccountService = __decorateElement(_init6, 0, "AccountService", _AccountService_decorators, AccountService);
-__runInitializers(_init6, 1, AccountService);
+};
+AccountService = __decorateClass$6([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$6(0, inject(Token$1))
+], AccountService);
+const AccountService$1 = AccountService;
const AccountSelectComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
const [account, setAccount] = reactExports.useState(0);
reactExports.useEffect(() => {
setShopUuid(shop.uuid);
}, [shop.uuid]);
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const loadOptions = async (searchQuery, loadedOptions) => {
- const account_service = new AccountService();
+ const account_service = new AccountService$1();
const data2 = await account_service.getAccounts(shop);
return {
options: data2,
@@ -55904,7 +55599,7 @@ AccountSelectComponent.propTypes = {
order: propTypesExports.instanceOf(Order)
};
const ContactComponent = ({ order, shop }) => {
- let orderState = instance.resolve(OrderState);
+ let orderState = instance.resolve(OrderState$1);
const [contact, setContact] = reactExports.useState(new Contact());
const changeAddress = (address, type2) => {
if (type2 == 1) {
@@ -55981,7 +55676,7 @@ ContactComponent.propTypes = {
};
const TypeSelectComponent = ({ order }) => {
const [type2, setType] = reactExports.useState(0);
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const options2 = [
{ value: 1, label: "Auftrag" },
{ value: 2, label: "Angebot" },
@@ -56014,10 +55709,20 @@ const TypeSelectComponent = ({ order }) => {
}
) });
};
-_ShopService_decorators = [singleton(), autoInjectable()];
-class ShopService {
+var __defProp$5 = Object.defineProperty;
+var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
+var __decorateClass$5 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$5(target, key, result);
+ return result;
+};
+var __decorateParam$5 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let ShopService = class {
constructor(token2) {
- console.log(token2);
+ this.token = token2;
}
async getShops() {
return await axios.get("/apps/api/shops", {
@@ -56032,16 +55737,17 @@ class ShopService {
});
});
}
-}
-_init7 = __decoratorStart(null);
-ShopService = __decorateElement(_init7, 0, "ShopService", _ShopService_decorators, ShopService);
-__runInitializers(_init7, 1, ShopService);
+};
+ShopService = __decorateClass$5([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$5(0, inject(Token$1))
+], ShopService);
+const ShopService$1 = ShopService;
const ShopSelectComponent = (props) => {
- const orderState = instance.resolve(OrderState);
- const shop_service = instance.resolve(ShopService);
- const token_service = instance.resolve(Token);
+ const orderState = instance.resolve(OrderState$1);
+ const shop_service = instance.resolve(ShopService$1);
const loadOptions = async (searchQuery, loadedOptions) => {
- console.log(token_service);
const data2 = await shop_service.getShops();
return {
options: data2,
@@ -56070,7 +55776,7 @@ const ShopSelectComponent = (props) => {
};
const DraftComponent = ({ order }) => {
const [draft, setDraft] = reactExports.useState(true);
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const onChange2 = (option) => {
let orderObj = orderState.getCurrentOrder().value;
orderObj.draft = !draft;
@@ -56086,16 +55792,26 @@ const DraftComponent = ({ order }) => {
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "ms-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Entwurf" })
] }) });
};
-_OrderService_decorators = [singleton(), autoInjectable()];
-class OrderService {
+var __defProp$4 = Object.defineProperty;
+var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
+var __decorateClass$4 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$4(target, key, result);
+ return result;
+};
+var __decorateParam$4 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let OrderService = class {
constructor(token2) {
this.token = token2;
}
async getOrder(uuid) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/order/getonebyuuid", { uuid }, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
let order = new Order();
@@ -56104,36 +55820,39 @@ class OrderService {
});
}
async saveOrder(order) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/order/create", order, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async calcOrder(order) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/order/calc", order, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
-}
-_init8 = __decoratorStart(null);
-OrderService = __decorateElement(_init8, 0, "OrderService", _OrderService_decorators, OrderService);
-__runInitializers(_init8, 1, OrderService);
+};
+OrderService = __decorateClass$4([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$4(0, inject(Token$1))
+], OrderService);
+const OrderService$1 = OrderService;
const Currency = ({ price }) => {
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: Intl.NumberFormat("de-DE", {
style: "currency",
currency: "EUR"
}).format(price / 100) });
};
-class CalcComponent extends React$1.Component {
+class CalcComponent extends React.Component {
constructor(props) {
super(props);
__publicField(this, "orderState");
@@ -56141,8 +55860,8 @@ class CalcComponent extends React$1.Component {
__publicField(this, "state", {
order: new Order()
});
- this.orderState = instance.resolve(OrderState);
- this.orderService = instance.resolve(OrderService);
+ this.orderState = instance.resolve(OrderState$1);
+ this.orderService = instance.resolve(OrderService$1);
}
componentDidMount() {
this.orderState.getCurrentOrder().pipe(debounceTime(2e3)).subscribe((e2) => this.calc(e2));
@@ -56188,8 +55907,18 @@ class ProductGroup {
}
//options: ProductGroup[] = []
}
-_ProductGroupService_decorators = [singleton(), autoInjectable()];
-class ProductGroupService {
+var __defProp$3 = Object.defineProperty;
+var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
+var __decorateClass$3 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$3(target, key, result);
+ return result;
+};
+var __decorateParam$3 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let ProductGroupService = class {
constructor(token2) {
this.token = token2;
}
@@ -56218,10 +55947,13 @@ class ProductGroupService {
return temp;
});
}
-}
-_init9 = __decoratorStart(null);
-ProductGroupService = __decorateElement(_init9, 0, "ProductGroupService", _ProductGroupService_decorators, ProductGroupService);
-__runInitializers(_init9, 1, ProductGroupService);
+};
+ProductGroupService = __decorateClass$3([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$3(0, inject(Token$1))
+], ProductGroupService);
+const ProductGroupService$1 = ProductGroupService;
var reactSelectAsync_cjs = { exports: {} };
var reactSelectAsync_cjs_prod = {};
var useAsyncBe659a57_cjs_prod = {};
@@ -56405,9 +56137,9 @@ function requireReactSelectAsync_cjs_default() {
}
var reactSelectAsync_cjs_defaultExports = requireReactSelectAsync_cjs_default();
const ProductGroupSelect = (props) => {
- instance.resolve(OrderState);
+ instance.resolve(OrderState$1);
const loadOptions = async (searchQuery) => {
- const productgroup_api = new ProductGroupService();
+ const productgroup_api = new ProductGroupService$1();
return await productgroup_api.getProductGroups(searchQuery, props.shop);
};
const onChange2 = (option) => {
@@ -56433,16 +56165,26 @@ ProductGroupSelect.propTypes = {
value: propTypesExports.instanceOf(ProductGroup),
onChange: propTypesExports.func
};
-_ProductService_decorators = [singleton(), autoInjectable()];
-class ProductService {
+var __defProp$2 = Object.defineProperty;
+var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
+var __decorateClass$2 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$2(target, key, result);
+ return result;
+};
+var __decorateParam$2 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let ProductService = class {
constructor(token2) {
this.token = token2;
}
async getProductsByTerm(term, shop) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/product/getallbyterm/" + shop.uuid + "/" + term, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56456,10 +56198,10 @@ class ProductService {
});
}
async getProducts(productGroup) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/product/getallbyproductgroup/" + productGroup.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56473,29 +56215,32 @@ class ProductService {
});
}
async getAddProductSchema(product, formData) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/product/get/form/json/" + product.uuid, formData, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
async calcProduct(product, formData) {
- var _a2;
+ var _a;
return await axios.post("/apps/api/product/get/form/json/" + product.uuid, formData, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data;
});
}
-}
-_init10 = __decoratorStart(null);
-ProductService = __decorateElement(_init10, 0, "ProductService", _ProductService_decorators, ProductService);
-__runInitializers(_init10, 1, ProductService);
+};
+ProductService = __decorateClass$2([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$2(0, inject(Token$1))
+], ProductService);
+const ProductService$1 = ProductService;
function c(e2, u2, c2) {
var i2 = this, a2 = reactExports.useRef(null), o2 = reactExports.useRef(0), f2 = reactExports.useRef(null), l2 = reactExports.useRef([]), v2 = reactExports.useRef(), m2 = reactExports.useRef(), d2 = reactExports.useRef(e2), g2 = reactExports.useRef(true);
d2.current = e2;
@@ -56557,12 +56302,12 @@ function a(n2, t2, a2) {
return o2(m2.current, n2) || (v2(n2), m2.current = n2), [f2.current, v2];
}
const ProductSelect = (props) => {
- instance.resolve(OrderState);
+ instance.resolve(OrderState$1);
const loadOptions = async (searchQuery) => {
if (searchQuery == "" && props.productGroup.uuid == "") {
return [];
}
- const product_api = new ProductService();
+ const product_api = new ProductService$1();
if (searchQuery != "") {
return await product_api.getProductsByTerm(searchQuery, props.shop);
} else {
@@ -56596,7 +56341,7 @@ ProductSelect.propTypes = {
onChange: propTypesExports.func
};
const ProductForm = ({ shop, pos, handleClose, handleChange }) => {
- const product_api = new ProductService();
+ const product_api = new ProductService$1();
const [schema, setSchema] = reactExports.useState({});
const [uiSchema, setUiSchema] = reactExports.useState({});
const [formData, setFormData] = reactExports.useState({});
@@ -56829,7 +56574,7 @@ ItemsComponent.propTypes = {
shop: propTypesExports.instanceOf(Shop)
};
const PositionsComponent = ({ order, shop, updateOrder }) => {
- const orderState = container.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const [positions, setPositions] = reactExports.useState(order.positions);
const addPos = (posObj) => {
setPositions([...positions, posObj]);
@@ -56863,16 +56608,26 @@ PositionsComponent.propTypes = {
order: propTypesExports.instanceOf(Order),
updateOrder: propTypesExports.func
};
-_PaymentService_decorators = [singleton(), autoInjectable()];
-class PaymentService {
+var __defProp$1 = Object.defineProperty;
+var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
+var __decorateClass$1 = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp$1(target, key, result);
+ return result;
+};
+var __decorateParam$1 = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let PaymentService = class {
constructor(token2) {
this.token = token2;
}
async getPayments(shop) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/payment/by/shop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56884,15 +56639,18 @@ class PaymentService {
});
});
}
-}
-_init11 = __decoratorStart(null);
-PaymentService = __decorateElement(_init11, 0, "PaymentService", _PaymentService_decorators, PaymentService);
-__runInitializers(_init11, 1, PaymentService);
+};
+PaymentService = __decorateClass$1([
+ singleton(),
+ autoInjectable(),
+ __decorateParam$1(0, inject(Token$1))
+], PaymentService);
+const PaymentService$1 = PaymentService;
const PaymentComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const [payment, setPayment] = reactExports.useState(0);
- const payment_service = new PaymentService();
+ const payment_service = new PaymentService$1();
const loadOptions = async (searchQuery, loadedOptions) => {
const data2 = await payment_service.getPayments(shop);
return {
@@ -56935,16 +56693,26 @@ PaymentComponent.propTypes = {
shop: propTypesExports.instanceOf(Shop),
order: propTypesExports.instanceOf(Order)
};
-_ShippingService_decorators = [singleton(), autoInjectable()];
-class ShippingService {
+var __defProp2 = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __decorateClass = (decorators, target, key, kind) => {
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
+ if (decorator = decorators[i2])
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
+ if (kind && result) __defProp2(target, key, result);
+ return result;
+};
+var __decorateParam = (index2, decorator) => (target, key) => decorator(target, key, index2);
+let ShippingService = class {
constructor(token2) {
this.token = token2;
}
async getShipping(shop) {
- var _a2;
+ var _a;
return await axios.get("/apps/api/shipping/by/shop/" + shop.uuid, {
headers: {
- "Authorization": "Bearer " + ((_a2 = this.token) == null ? void 0 : _a2.currentToken)
+ "Authorization": "Bearer " + ((_a = this.token) == null ? void 0 : _a.currentToken)
}
}).then((response) => {
return response.data.data.map((item) => {
@@ -56956,15 +56724,18 @@ class ShippingService {
});
});
}
-}
-_init12 = __decoratorStart(null);
-ShippingService = __decorateElement(_init12, 0, "ShippingService", _ShippingService_decorators, ShippingService);
-__runInitializers(_init12, 1, ShippingService);
+};
+ShippingService = __decorateClass([
+ singleton(),
+ autoInjectable(),
+ __decorateParam(0, inject(Token$1))
+], ShippingService);
+const ShippingService$1 = ShippingService;
const ShippingComponent = ({ shop, order }) => {
const [shopUuid, setShopUuid] = reactExports.useState(null);
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
const [shipping, setShipping] = reactExports.useState(0);
- const shipping_service = new ShippingService();
+ const shipping_service = new ShippingService$1();
const loadOptions = async (searchQuery, loadedOptions) => {
const data2 = await shipping_service.getShipping(shop);
return {
@@ -57012,8 +56783,8 @@ class ButtonComponent extends reactExports.Component {
super(props);
__publicField(this, "orderState");
__publicField(this, "orderService");
- this.orderState = instance.resolve(OrderState);
- this.orderService = instance.resolve(OrderService);
+ this.orderState = instance.resolve(OrderState$1);
+ this.orderService = instance.resolve(OrderService$1);
this.state = { disabled: true };
}
componentDidMount() {
@@ -57037,11 +56808,11 @@ class ButtonComponent extends reactExports.Component {
render() {
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-3", children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { size: "xs", color: "info", disabled: this.state.disabled, onClick: (e2) => this.handleSave(e2), children: [
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mr-2 h-5 w-5" }),
+ /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", fill: "none", class: "mr-2 h-5 w-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M6 20.25h12A2.25 2.25 0 0 0 20.25 18V7.5L16.5 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25zm9.75-16.5v5h-9.5v-5zM13 5.5V7m-6.75 4.25h11.5v6.5H6.25Z" }) }),
" Speichern"
] }),
/* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { size: "xs", color: "success", disabled: !this.orderState.getCurrentOrder().value.saved, onClick: (e2) => this.handlePrint(e2), children: [
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mr-2 h-5 w-5" }),
+ /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon", class: "mr-2 h-5 w-5", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M6.72 13.829c-.24.03-.48.062-.72.096m.72-.096a42.415 42.415 0 0 1 10.56 0m-10.56 0L6.34 18m10.94-4.171c.24.03.48.062.72.096m-.72-.096L17.66 18m0 0 .229 2.523a1.125 1.125 0 0 1-1.12 1.227H7.231c-.662 0-1.18-.568-1.12-1.227L6.34 18m11.318 0h1.091A2.25 2.25 0 0 0 21 15.75V9.456c0-1.081-.768-2.015-1.837-2.175a48.055 48.055 0 0 0-1.913-.247M6.34 18H5.25A2.25 2.25 0 0 1 3 15.75V9.456c0-1.081.768-2.015 1.837-2.175a48.041 48.041 0 0 1 1.913-.247m10.5 0a48.536 48.536 0 0 0-10.5 0m10.5 0V3.375c0-.621-.504-1.125-1.125-1.125h-8.25c-.621 0-1.125.504-1.125 1.125v3.659M18 10.5h.008v.008H18V10.5Zm-3 0h.008v.008H15V10.5Z" }) }),
" Drucken"
] })
] });
@@ -57490,8 +57261,8 @@ function flattenRoutes(routes, branches = [], parentsMeta = [], parentPath = "")
});
};
routes.forEach((route, index2) => {
- var _a2;
- if (route.path === "" || !((_a2 = route.path) == null ? void 0 : _a2.includes("?"))) {
+ var _a;
+ if (route.path === "" || !((_a = route.path) == null ? void 0 : _a.includes("?"))) {
flattenRoute(route, index2);
} else {
for (let exploded of explodeOptionalSegments(route.path)) {
@@ -57941,7 +57712,7 @@ function useRoutes(routes, locationArg) {
return useRoutesImpl(routes, locationArg);
}
function useRoutesImpl(routes, locationArg, dataRouterState, future) {
- var _a2;
+ var _a;
invariant(
useInRouterContext(),
// TODO: This error is probably because they somehow have 2 versions of the
@@ -57970,7 +57741,7 @@ Please change the parent to \` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${parentPathnameBase}" but pathname "${parsedLocationArg.pathname}" was given in the \`location\` prop.`
);
location = parsedLocationArg;
@@ -58255,7 +58026,7 @@ function useRouteId() {
);
}
function useRouteError() {
- var _a2;
+ var _a;
let error = reactExports.useContext(RouteErrorContext);
let state = useDataRouterState(
"useRouteError"
@@ -58268,7 +58039,7 @@ function useRouteError() {
if (error !== void 0) {
return error;
}
- return (_a2 = state.errors) == null ? void 0 : _a2[routeId];
+ return (_a = state.errors) == null ? void 0 : _a[routeId];
}
function useNavigateStable() {
let { router } = useDataRouterContext(
@@ -58597,12 +58368,12 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
return match2.route.id !== currentMatches[index2].route.id;
};
let matchPathChanged = (match2, index2) => {
- var _a2;
+ var _a;
return (
// param change, /users/123 -> /users/456
currentMatches[index2].pathname !== match2.pathname || // splat param changed, which is not present in match.path
// e.g. /files/images/avatar.jpg -> files/finances.xls
- ((_a2 = currentMatches[index2].route.path) == null ? void 0 : _a2.endsWith("*")) && currentMatches[index2].params["*"] !== match2.params["*"]
+ ((_a = currentMatches[index2].route.path) == null ? void 0 : _a.endsWith("*")) && currentMatches[index2].params["*"] !== match2.params["*"]
);
};
if (mode === "assets") {
@@ -58612,7 +58383,7 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
}
if (mode === "data") {
return nextMatches.filter((match2, index2) => {
- var _a2;
+ var _a;
let manifestRoute = manifest.routes[match2.route.id];
if (!manifestRoute || !manifestRoute.hasLoader) {
return false;
@@ -58626,7 +58397,7 @@ function getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, loca
location.pathname + location.search + location.hash,
window.origin
),
- currentParams: ((_a2 = currentMatches[0]) == null ? void 0 : _a2.params) || {},
+ currentParams: ((_a = currentMatches[0]) == null ? void 0 : _a.params) || {},
nextUrl: new URL(page, window.origin),
nextParams: match2.params,
defaultShouldRevalidate: true
@@ -58851,12 +58622,12 @@ function PrefetchPageLinksImpl({
let routesParams = /* @__PURE__ */ new Set();
let foundOptOutRoute = false;
nextMatches.forEach((m2) => {
- var _a2;
+ var _a;
let manifestRoute = manifest.routes[m2.route.id];
if (!manifestRoute || !manifestRoute.hasLoader) {
return;
}
- if (!newMatchesForData.some((m22) => m22.route.id === m2.route.id) && m2.route.id in loaderData && ((_a2 = routeModules[m2.route.id]) == null ? void 0 : _a2.shouldRevalidate)) {
+ if (!newMatchesForData.some((m22) => m22.route.id === m2.route.id) && m2.route.id in loaderData && ((_a = routeModules[m2.route.id]) == null ? void 0 : _a.shouldRevalidate)) {
foundOptOutRoute = true;
} else if (manifestRoute.hasClientLoader) {
foundOptOutRoute = true;
@@ -59276,7 +59047,7 @@ new TextEncoder();
const InfoFieldComponent = ({ shop, order }) => {
const [basketField1, setBasketField1] = reactExports.useState("");
const [basketField2, setBasketField2] = reactExports.useState("");
- const orderState = instance.resolve(OrderState);
+ const orderState = instance.resolve(OrderState$1);
reactExports.useEffect(() => {
setBasketField1(order.basketField1);
setBasketField2(order.basketField1);
@@ -59320,8 +59091,8 @@ OrderAliasComponent.propTypes = {
const BaseComponent = (props) => {
const [shop, setShop] = reactExports.useState(new Shop());
const [order, setOrder] = reactExports.useState(new Order());
- const order_state = instance.resolve(OrderState);
- const orderService = instance.resolve(OrderService);
+ const order_state = instance.resolve(OrderState$1);
+ const orderService = instance.resolve(OrderService$1);
const loadOrder = async (uuid) => {
orderService.getOrder(uuid).then((orderObj) => {
order_state.setCurrentOrder(orderObj);
@@ -59335,7 +59106,7 @@ const BaseComponent = (props) => {
loadOrder(params.uuid);
}
}, []);
- return /* @__PURE__ */ jsxRuntimeExports.jsx(React$1.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ml-1 mt-1 mr-1", children: [
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(React.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "ml-1 mt-1 mr-1", children: [
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-1 mt-1 mb-1", children: [
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(OrderAliasComponent, { order }) }),
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ButtonComponent, { loadOrder }) })
@@ -59377,4 +59148,4 @@ class App {
let app = new App(jwt_token);
app.init();
app.run();
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVmbGVjdC1tZXRhZGF0YUAwLjIuMi9ub2RlX21vZHVsZXMvcmVmbGVjdC1tZXRhZGF0YS9SZWZsZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdEAxOC4zLjEvbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3RAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3RAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0QDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9iaW5kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL3V0aWxzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3NFcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL251bGwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b0Zvcm1EYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvQXhpb3NVUkxTZWFyY2hQYXJhbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9idWlsZFVSTC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL0ludGVyY2VwdG9yTWFuYWdlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9kZWZhdWx0cy90cmFuc2l0aW9uYWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL1VSTFNlYXJjaFBhcmFtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9icm93c2VyL2NsYXNzZXMvRm9ybURhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9jbGFzc2VzL0Jsb2IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vYnJvd3Nlci9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9wbGF0Zm9ybS9jb21tb24vdXRpbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvcGxhdGZvcm0vaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy90b1VSTEVuY29kZWRGb3JtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvZGVmYXVsdHMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9wYXJzZUhlYWRlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS9BeGlvc0hlYWRlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY29yZS90cmFuc2Zvcm1EYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NhbmNlbC9pc0NhbmNlbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jYW5jZWwvQ2FuY2VsZWRFcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL3NldHRsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3BhcnNlUHJvdG9jb2wuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9zcGVlZG9tZXRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3Rocm90dGxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcHJvZ3Jlc3NFdmVudFJlZHVjZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9pc1VSTFNhbWVPcmlnaW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb29raWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBYnNvbHV0ZVVSTC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL2NvbWJpbmVVUkxzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvYnVpbGRGdWxsUGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9jb3JlL21lcmdlQ29uZmlnLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvcmVzb2x2ZUNvbmZpZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9hZGFwdGVycy94aHIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvaGVscGVycy9jb21wb3NlU2lnbmFscy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYXhpb3NAMS43Ljkvbm9kZV9tb2R1bGVzL2F4aW9zL2xpYi9oZWxwZXJzL3RyYWNrU3RyZWFtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2ZldGNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvZGlzcGF0Y2hSZXF1ZXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2Vudi9kYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvdmFsaWRhdG9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2NvcmUvQXhpb3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvY2FuY2VsL0NhbmNlbFRva2VuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvc3ByZWFkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvaXNBeGlvc0Vycm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9heGlvc0AxLjcuOS9ub2RlX21vZHVsZXMvYXhpb3MvbGliL2hlbHBlcnMvSHR0cFN0YXR1c0NvZGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2F4aW9zQDEuNy45L25vZGVfbW9kdWxlcy9heGlvcy9saWIvYXhpb3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RzeXJpbmdlLW5lb0A1LjEuMC9ub2RlX21vZHVsZXMvdHN5cmluZ2UtbmVvL2Rpc3QvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy90b2tlbi50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc2NoZWR1bGVyQDAuMjMuMi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3NjaGVkdWxlckAwLjIzLjIvbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtZG9tQDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWRvbUAxOC4zLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtZG9tQDE4LjMuMS9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGViYXkrbmljZS1tb2RhbC1yZWFjdEAxLjIuMTMvbm9kZV9tb2R1bGVzL0BlYmF5L25pY2UtbW9kYWwtcmVhY3QvbGliL2VzbS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvc2hvcC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcHJvcC10eXBlc0AxNS44LjEvbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9wcm9wLXR5cGVzQDE1LjguMS9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3Byb3AtdHlwZXNAMTUuOC4xL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1ByaW1pdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b1Byb3BlcnR5S2V5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVJlc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbitzaGVldEAxLjQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vc2hlZXQvZGlzdC9lbW90aW9uLXNoZWV0LmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMi4wL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL0VudW0uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjIuMC9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9VdGlsaXR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVG9rZW5pemVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvUGFyc2VyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4yLjAvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvU2VyaWFsaXplci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMi4wL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL01pZGRsZXdhcmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3dlYWstbWVtb2l6ZUAwLjQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vd2Vhay1tZW1vaXplL2Rpc3QvZW1vdGlvbi13ZWFrLW1lbW9pemUuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbittZW1vaXplQDAuOS4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9tZW1vaXplL2Rpc3QvZW1vdGlvbi1tZW1vaXplLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rY2FjaGVAMTEuMTQuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vY2FjaGUvZGlzdC9lbW90aW9uLWNhY2hlLmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pc0AxNi4xMy4xL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWlzQDE2LjEzLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9ob2lzdC1ub24tcmVhY3Qtc3RhdGljc0AzLjMuMi9ub2RlX21vZHVsZXMvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MvZGlzdC9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy5janMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3JlYWN0QDExLjE0LjAvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3JlYWN0L19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5icm93c2VyLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rdXRpbHNAMS40LjIvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3V0aWxzL2Rpc3QvZW1vdGlvbi11dGlscy5icm93c2VyLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24raGFzaEAwLjkuMi9ub2RlX21vZHVsZXMvQGVtb3Rpb24vaGFzaC9kaXN0L2Vtb3Rpb24taGFzaC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3VuaXRsZXNzQDAuMTAuMC9ub2RlX21vZHVsZXMvQGVtb3Rpb24vdW5pdGxlc3MvZGlzdC9lbW90aW9uLXVuaXRsZXNzLmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGVtb3Rpb24rc2VyaWFsaXplQDEuMy4zL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9zZXJpYWxpemUvZGlzdC9lbW90aW9uLXNlcmlhbGl6ZS5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3VzZS1pbnNlcnRpb24tZWZmZWN0LXdpdGgtZmFsbGJhY2tzQDEuMi4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi91c2UtaW5zZXJ0aW9uLWVmZmVjdC13aXRoLWZhbGxiYWNrcy9kaXN0L2Vtb3Rpb24tdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MuYnJvd3Nlci5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3JlYWN0QDExLjE0LjAvbm9kZV9tb2R1bGVzL0BlbW90aW9uL3JlYWN0L2Rpc3QvZW1vdGlvbi1lbGVtZW50LWYwZGU5NjhlLmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZW1vdGlvbityZWFjdEAxMS4xNC4wL25vZGVfbW9kdWxlcy9AZW1vdGlvbi9yZWFjdC9kaXN0L2Vtb3Rpb24tcmVhY3QuYnJvd3Nlci5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdGFnZ2VkVGVtcGxhdGVMaXRlcmFsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdEAxOS4wLjAvbm9kZV9tb2R1bGVzL3JlYWN0L2Nqcy9yZWFjdC5wcm9kdWN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdEAxOS4wLjAvbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1kb21AMTkuMC4wL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1kb21AMTkuMC4wL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BmbG9hdGluZy11aSt1dGlsc0AwLjIuOC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3V0aWxzL2Rpc3QvZmxvYXRpbmctdWkudXRpbHMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrY29yZUAxLjYuNi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2NvcmUvZGlzdC9mbG9hdGluZy11aS5jb3JlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK3V0aWxzQDAuMi44L25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrZG9tQDEuNi4xMi9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2RvbS9kaXN0L2Zsb2F0aW5nLXVpLmRvbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3RAMS4yLjAvbm9kZV9tb2R1bGVzL3VzZS1pc29tb3JwaGljLWxheW91dC1lZmZlY3QvZGlzdC91c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0LmJyb3dzZXIuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L2luZGV4LTY0MWVlNWI4LmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbWVtb2l6ZS1vbmVANi4wLjAvbm9kZV9tb2R1bGVzL21lbW9pemUtb25lL2Rpc3QvbWVtb2l6ZS1vbmUuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L1NlbGVjdC1hYWIwMjdmMy5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvcmVhY3Qtc2VsZWN0LmVzbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHZ0YWl0cyt1c2UtbGF6eS1yZWZAMC4xLjMvbm9kZV9tb2R1bGVzL0B2dGFpdHMvdXNlLWxhenktcmVmL2Rpc3QvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3VzZS1pcy1tb3VudGVkLXJlZkAxLjUuMC9ub2RlX21vZHVsZXMvdXNlLWlzLW1vdW50ZWQtcmVmL2Rpc3QvdXNlLWlzLW1vdW50ZWQtcmVmLmVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91c2UtbGF0ZXN0QDEuMy4wL25vZGVfbW9kdWxlcy91c2UtbGF0ZXN0L2Rpc3QvdXNlLWxhdGVzdC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2tydXN0eWtyYWJAMS4xLjAvbm9kZV9tb2R1bGVzL2tydXN0eWtyYWIvZGlzdC9pbmRleC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3NsZWVwLXByb21pc2VAOS4xLjAvbm9kZV9tb2R1bGVzL3NsZWVwLXByb21pc2UvYnVpbGQvZXNtLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHNlem5hbStjb21wb3NlLXJlYWN0LXJlZnNAMS4wLjYvbm9kZV9tb2R1bGVzL0BzZXpuYW0vY29tcG9zZS1yZWFjdC1yZWZzL2NvbXBvc2VSZWZzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3QtYXN5bmMtcGFnaW5hdGVAMC43Ljcvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC1hc3luYy1wYWdpbmF0ZS9kaXN0L2VzbS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvY29udGFjdC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvY29udGFjdC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXVpZEAxMS4wLjMvbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9zdHJpbmdpZnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3V1aWRAMTEuMC4zL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLWJyb3dzZXIvcm5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91dWlkQDExLjAuMy9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1icm93c2VyL25hdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXVpZEAxMS4wLjMvbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci92NC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvYWNjb3VudC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvYWRkcmVzcy50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvcHJvZHVjdC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvcHJpY2UudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL3Bvcy50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvcGF5bWVudC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvc2hpcHBpbmcudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL29yZGVyLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90c2xpYkAyLjguMS9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9pc0Z1bmN0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvVW5zdWJzY3JpcHRpb25FcnJvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9hcnJSZW1vdmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL1N1YnNjcmlwdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvY29uZmlnLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL25vb3AuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvZXJyb3JDb250ZXh0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9TdWJzY3JpYmVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvdXRpbC9waXBlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9PYnNlcnZhYmxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC91dGlsL2xpZnQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL1N1YmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL0JlaGF2aW9yU3ViamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc2NoZWR1bGVyL2RhdGVUaW1lc3RhbXBQcm92aWRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc2NoZWR1bGVyL0FjdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvc2NoZWR1bGVyL2ludGVydmFsUHJvdmlkZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvU2NoZWR1bGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yeGpzQDcuOC4xL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvZXNtNS9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3J4anNANy44LjEvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9lc201L2ludGVybmFsL3NjaGVkdWxlci9hc3luYy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcnhqc0A3LjguMS9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2VzbTUvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlVGltZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc3RhdGUvb3JkZXIudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3ByZWFjdEAxMC4yNS4zL25vZGVfbW9kdWxlcy9wcmVhY3QvZGlzdC9wcmVhY3QubW9kdWxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pY29uc0A1LjIuMS9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvbGliL2ljb25Db250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaWNvbnNANS4yLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWljb25zL2xpYi9pY29uQmFzZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWljb25zQDUuMi4xL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9oaS9pbmRleC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3RhaWx3aW5kLW1lcmdlQDIuNC4wL25vZGVfbW9kdWxlcy90YWlsd2luZC1tZXJnZS9kaXN0L2J1bmRsZS1tanMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2hlbHBlcnMvaXMtb2JqZWN0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9oZWxwZXJzL2Nsb25lLWRlZXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQWNjb3JkaW9uL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FsZXJ0L3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0F2YXRhci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CYWRnZS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CbG9ja3F1b3RlL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0JyZWFkY3J1bWIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQnV0dG9uL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NhcmQvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2Fyb3VzZWwvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2hlY2tib3gvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2xpcGJvYXJkL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhcmtUaGVtZVRvZ2dsZS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RyYXdlci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ecm9wZG93bi90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9GaWxlSW5wdXQvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRmxvYXRpbmdMYWJlbC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Gb290ZXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSGVscGVyVGV4dC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9IUi90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9LYmQvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGFiZWwvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTGlzdC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9MaXN0R3JvdXAvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTmF2YmFyL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01lZ2FNZW51L3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01vZGFsL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1BhZ2luYXRpb24vdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUG9wb3Zlci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Qcm9ncmVzcy90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYWRpby90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYW5nZVNsaWRlci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYXRpbmcvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2VsZWN0L3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NpZGViYXIvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU3Bpbm5lci90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJzL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RleHRhcmVhL3RoZW1lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RleHRJbnB1dC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2FzdC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2dnbGVTd2l0Y2gvdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVG9vbHRpcC90aGVtZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vdGhlbWUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25QYW5lbENvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvbkNvbnRlbnQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvblBhbmVsLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb25UaXRsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BY2NvcmRpb24vQWNjb3JkaW9uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0F2YXRhci9BdmF0YXJHcm91cC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9BdmF0YXIvQXZhdGFyR3JvdXBDb3VudGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0F2YXRhci9BdmF0YXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQmFkZ2UvQmFkZ2UubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0J1dHRvbi9CdXR0b25CYXNlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0J1dHRvbi9CdXR0b25Hcm91cC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Jhbm5lci9CYW5uZXJDb2xsYXBzZUJ1dHRvbi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9CYW5uZXIvQmFubmVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0JyZWFkY3J1bWIvQnJlYWRjcnVtYkl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQnJlYWRjcnVtYi9CcmVhZGNydW1iLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vY2xhc3NuYW1lc0AyLjUuMS9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZGVib3VuY2VAMi4xLjAvbm9kZV9tb2R1bGVzL2RlYm91bmNlL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2hlbHBlcnMvZHJhZy1zY3JvbGwvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrcmVhY3RAMC4yNi4yMS9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3JlYWN0L2Rpc3QvZmxvYXRpbmctdWkucmVhY3QudXRpbHMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby90YWJiYWJsZUA2LjIuMC9ub2RlX21vZHVsZXMvdGFiYmFibGUvZGlzdC9pbmRleC5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BmbG9hdGluZy11aStyZWFjdC1kb21AMi4xLjIvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9yZWFjdC1kb20vZGlzdC9mbG9hdGluZy11aS5yZWFjdC1kb20ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AZmxvYXRpbmctdWkrcmVhY3RAMC4yNi4yMS9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3JlYWN0L2Rpc3QvZmxvYXRpbmctdWkucmVhY3QubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRmxvYXRpbmcvaGVscGVycy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vaG9va3MvdXNlLWZsb2F0aW5nLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zsb2F0aW5nL0Zsb2F0aW5nLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1Rvb2x0aXAvVG9vbHRpcC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LWljb25zQDUuMi4xL25vZGVfbW9kdWxlcy9yZWFjdC1pY29ucy9mYTYvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2xpcGJvYXJkL2hlbHBlcnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2xpcGJvYXJkL0NsaXBib2FyZFdpdGhJY29uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0NsaXBib2FyZC9DbGlwYm9hcmRXaXRoSWNvblRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvQ2xpcGJvYXJkL0NsaXBib2FyZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9IZWxwZXJUZXh0L0hlbHBlclRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGV4dElucHV0L1RleHRJbnB1dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL0RhdGVwaWNrZXJDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhdGVwaWNrZXIvaGVscGVycy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9EYXRlcGlja2VyL1ZpZXdzL0RheXMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRGF0ZXBpY2tlci9WaWV3cy9EZWNhZGVzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhdGVwaWNrZXIvVmlld3MvTW9udGhzLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RhdGVwaWNrZXIvVmlld3MvWWVhcnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRGF0ZXBpY2tlci9EYXRlcGlja2VyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RyYXdlci9EcmF3ZXJDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaWNvbnNANS4yLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWljb25zL21kL2luZGV4Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RyYXdlci9EcmF3ZXJIZWFkZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJhd2VyL0RyYXdlckl0ZW1zLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0RyYXdlci9EcmF3ZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd25Db250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Ryb3Bkb3duL0Ryb3Bkb3duRGl2aWRlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bkhlYWRlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bkl0ZW0ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRHJvcGRvd24vRHJvcGRvd24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRmlsZUlucHV0L0ZpbGVJbnB1dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9GbG9hdGluZ0xhYmVsL0Zsb2F0aW5nTGFiZWwubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlckJyYW5kLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0Zvb3Rlci9Gb290ZXJDb3B5cmlnaHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlckRpdmlkZXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlckljb24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlckxpbmsubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3RlckxpbmtHcm91cC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Gb290ZXIvRm9vdGVyVGl0bGUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvRm9vdGVyL0Zvb3Rlci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9IUi9IUkljb24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSFIvSFJTcXVhcmUubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvSFIvSFJUZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0hSL0hSVHJpbW1lZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9IUi9IUi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9MaXN0L0xpc3RJdGVtLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL0xpc3QvTGlzdC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9MaXN0R3JvdXAvTGlzdEdyb3VwSXRlbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9MaXN0R3JvdXAvTGlzdEdyb3VwLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL05hdmJhci9OYXZiYXJDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL05hdmJhci9OYXZiYXJCcmFuZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9OYXZiYXIvTmF2YmFyQ29sbGFwc2UubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTmF2YmFyL05hdmJhckxpbmsubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pY29uc0A1LjIuMS9ub2RlX21vZHVsZXMvcmVhY3QtaWNvbnMvZmEvaW5kZXgubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTmF2YmFyL05hdmJhclRvZ2dsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9OYXZiYXIvTmF2YmFyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01lZ2FNZW51L01lZ2FNZW51RHJvcGRvd24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTWVnYU1lbnUvTWVnYU1lbnVEcm9wZG93blRvZ2dsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9NZWdhTWVudS9NZWdhTWVudS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Nb2RhbC9Nb2RhbENvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvTW9kYWwvTW9kYWxCb2R5Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01vZGFsL01vZGFsRm9vdGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01vZGFsL01vZGFsSGVhZGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL01vZGFsL01vZGFsLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1BhZ2luYXRpb24vaGVscGVycy5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9QYWdpbmF0aW9uL1BhZ2luYXRpb25CdXR0b24ubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1JhZGlvL1JhZGlvLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1JhbmdlU2xpZGVyL1JhbmdlU2xpZGVyLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1JhdGluZy9SYXRpbmdBZHZhbmNlZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYXRpbmcvUmF0aW5nQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYXRpbmcvUmF0aW5nU3Rhci5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9SYXRpbmcvUmF0aW5nLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3QubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFyQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL1NpZGViYXJJdGVtQ29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL1NpZGViYXJDb2xsYXBzZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL1NpZGViYXJDVEEubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFySXRlbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL1NpZGViYXJJdGVtR3JvdXAubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFySXRlbXMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvU2lkZWJhci9TaWRlYmFyTG9nby5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9TaWRlYmFyL1NpZGViYXIubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvVGFibGVCb2R5Q29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZUNvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGFibGUvVGFibGVCb2R5Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlQ2VsbC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZUhlYWRDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlSGVhZC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJsZS9UYWJsZUhlYWRDZWxsLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlUm93Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYmxlL1RhYmxlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RhYnMvVGFiSXRlbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UYWJzL1RhYnMubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGV4dGFyZWEvVGV4dGFyZWEubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVDb250ZW50Q29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZUJvZHkubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVDb250ZXh0Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lSXRlbUNvbnRleHQubWpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mbG93Yml0ZS1yZWFjdEAwLjEwLjIvbm9kZV9tb2R1bGVzL2Zsb3diaXRlLXJlYWN0L2Rpc3QvZXNtL2NvbXBvbmVudHMvVGltZWxpbmUvVGltZWxpbmVDb250ZW50Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lSXRlbS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZVBvaW50Lm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lVGltZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZVRpdGxlLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RpbWVsaW5lL1RpbWVsaW5lLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vZmxvd2JpdGUtcmVhY3RAMC4xMC4yL25vZGVfbW9kdWxlcy9mbG93Yml0ZS1yZWFjdC9kaXN0L2VzbS9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGV4dC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2FzdC9Ub2FzdFRvZ2dsZS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zsb3diaXRlLXJlYWN0QDAuMTAuMi9ub2RlX21vZHVsZXMvZmxvd2JpdGUtcmVhY3QvZGlzdC9lc20vY29tcG9uZW50cy9Ub2dnbGVTd2l0Y2gvVG9nZ2xlU3dpdGNoLm1qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9iYXNlL0J1dHRvbi50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2lzT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9hbGxvd0FkZGl0aW9uYWxJdGVtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvYXNOdW1iZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2NvbnN0YW50cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZ2V0VWlPcHRpb25zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9jYW5FeHBhbmQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2ZyZWVHbG9iYWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3Jvb3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1N5bWJvbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fb3ZlckFyZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UHJvdG90eXBlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0TGlrZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1BsYWluT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9jcmVhdGVFcnJvckhhbmRsZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUNsZWFyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2VxLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NvY0luZGV4T2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZURlbGV0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlR2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVIYXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZVNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fTGlzdENhY2hlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0NsZWFyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0RlbGV0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tHZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRnVuY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NvcmVKc0RhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzTWFza2VkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL190b1NvdXJjZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTmF0aXZlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRWYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TmF0aXZlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19NYXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUNyZWF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaENsZWFyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoRGVsZXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoR2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19IYXNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUNsZWFyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleWFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldE1hcERhdGEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVIYXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19NYXBDYWNoZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tTZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1N0YWNrLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zZXRDYWNoZUFkZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVIYXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1NldENhY2hlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVNvbWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NhY2hlSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbEFycmF5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fVWludDhBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0VG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZXF1YWxCeVRhZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlQdXNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRBbGxLZXlzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheUZpbHRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFN5bWJvbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUaW1lcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzQXJndW1lbnRzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3N0dWJGYWxzZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0J1ZmZlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNJbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0xlbmd0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVVuYXJ5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19ub2RlVXRpbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1R5cGVkQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5TGlrZUtleXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzUHJvdG90eXBlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVLZXlzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9rZXlzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRBbGxLZXlzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbE9iamVjdHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0RhdGFWaWV3LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19Qcm9taXNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19TZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1dlYWtNYXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFRhZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWxEZWVwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNFcXVhbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0VxdWFsV2l0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZGVlcEVxdWFscy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1N5bWJvbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNLZXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvbWVtb2l6ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWVtb2l6ZUNhcHBlZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RyaW5nVG9QYXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheU1hcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRvU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0UGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fdG9LZXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRW1wdHkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb25wb2ludGVyQDUuMC4xL25vZGVfbW9kdWxlcy9qc29ucG9pbnRlci9qc29ucG9pbnRlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlFYWNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnblZhbHVlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25WYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weU9iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbmF0aXZlS2V5c0luLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlS2V5c0luLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2tleXNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUFzc2lnbkluLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZUJ1ZmZlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29weUFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5U3ltYm9scy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0U3ltYm9sc0luLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jb3B5U3ltYm9sc0luLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRBbGxLZXlzSW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2luaXRDbG9uZUFycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZUFycmF5QnVmZmVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZURhdGFWaWV3LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jbG9uZVJlZ0V4cC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY2xvbmVTeW1ib2wuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nsb25lVHlwZWRBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9faW5pdENsb25lQnlUYWcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VDcmVhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2luaXRDbG9uZU9iamVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTWFwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTWFwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXNTZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VDbG9uZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9sYXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2xpY2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3BhcmVudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVVuc2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jdXN0b21PbWl0Q2xvbmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzRmxhdHRlbmFibGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGbGF0dGVuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2ZsYXR0ZW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FwcGx5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19vdmVyUmVzdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9jb25zdGFudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pZGVudGl0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNldFRvU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zaG9ydE91dC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0VG9TdHJpbmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2ZsYXRSZXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL29taXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2ZpbmRTY2hlbWFEZWZpbml0aW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSGFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNQYXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2hhcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc051bWJlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc1N0cmluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlSZWR1Y2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUJhc2VGb3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VGb3JPd24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2NyZWF0ZUJhc2VFYWNoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlRWFjaC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTWF0Y2guanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzU3RyaWN0Q29tcGFyYWJsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TWF0Y2hEYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hdGNoZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VIYXNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9oYXNJbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hdGNoZXNQcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVByb3BlcnR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUHJvcGVydHlEZWVwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3Byb3BlcnR5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSXRlcmF0ZWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VSZWR1Y2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvcmVkdWNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0RnVuY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RyaW1tZWRFbmRJbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVRyaW0uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9GaW5pdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9JbnRlZ2VyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RpbWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXRPcHRpb25NYXRjaGluZ1NpbXBsZURpc2NyaW1pbmF0b3IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9nZXRNYXRjaGluZ09wdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL2dldEZpcnN0TWF0Y2hpbmdPcHRpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNFcXVhbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9zZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdHJhbnNmb3JtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NpZ25NZXJnZVZhbHVlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXlMaWtlT2JqZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zYWZlR2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvUGxhaW5PYmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNZXJnZURlZXAuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VNZXJnZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVJlc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzSXRlcmF0ZWVDYWxsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19jcmVhdGVBc3NpZ25lci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9tZXJnZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9mbGF0dGVuRGVlcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUZpbmRJbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzTmFOLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdHJpY3RJbmRleE9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlSW5kZXhPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlJbmNsdWRlcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlJbmNsdWRlc1dpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvbm9vcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3JlYXRlU2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVW5pcS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC91bmlxLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2Nsb25lRGVlcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZU1hcC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVNvcnRCeS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29tcGFyZUFzY2VuZGluZy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29tcGFyZU11bHRpcGxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlT3JkZXJCeS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9zb3J0QnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvdW5pcVdpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVmYXVsdHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJbnRlcnNlY3Rpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Nhc3RBcnJheUxpa2VPYmplY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaW50ZXJzZWN0aW9uV2l0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0Jvb2xlYW4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb24tc2NoZW1hLWNvbXBhcmVAMC4yLjIvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLWNvbXBhcmUvc3JjL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby92YWxpZGF0ZS5pby1hcnJheUAxLjAuNi9ub2RlX21vZHVsZXMvdmFsaWRhdGUuaW8tYXJyYXkvbGliL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby92YWxpZGF0ZS5pby1udW1iZXJAMS4wLjMvbm9kZV9tb2R1bGVzL3ZhbGlkYXRlLmlvLW51bWJlci9saWIvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3ZhbGlkYXRlLmlvLWludGVnZXJAMS4wLjUvbm9kZV9tb2R1bGVzL3ZhbGlkYXRlLmlvLWludGVnZXIvbGliL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby92YWxpZGF0ZS5pby1pbnRlZ2VyLWFycmF5QDEuMC4wL25vZGVfbW9kdWxlcy92YWxpZGF0ZS5pby1pbnRlZ2VyLWFycmF5L2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdmFsaWRhdGUuaW8tZnVuY3Rpb25AMS4wLjIvbm9kZV9tb2R1bGVzL3ZhbGlkYXRlLmlvLWZ1bmN0aW9uL2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vY29tcHV0ZS1nY2RAMS4yLjEvbm9kZV9tb2R1bGVzL2NvbXB1dGUtZ2NkL2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vY29tcHV0ZS1sY21AMS4xLjIvbm9kZV9tb2R1bGVzL2NvbXB1dGUtbGNtL2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY3VzdG9tRGVmYXVsdHNNZXJnZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9tZXJnZVdpdGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVmYXVsdHNEZWVwLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2ludGVyc2VjdGlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUluZGV4T2ZXaXRoLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlUHVsbEFsbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9wdWxsQWxsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL2ZvckVhY2guanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VEaWZmZXJlbmNlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3dpdGhvdXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb24tc2NoZW1hLW1lcmdlLWFsbG9mQDAuOC4xL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZi9zcmMvY29tbW9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZkAwLjguMS9ub2RlX21vZHVsZXMvanNvbi1zY2hlbWEtbWVyZ2UtYWxsb2Yvc3JjL2NvbXBsZXgtcmVzb2x2ZXJzL3Byb3BlcnRpZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb24tc2NoZW1hLW1lcmdlLWFsbG9mQDAuOC4xL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZi9zcmMvY29tcGxleC1yZXNvbHZlcnMvaXRlbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2pzb24tc2NoZW1hLW1lcmdlLWFsbG9mQDAuOC4xL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS1tZXJnZS1hbGxvZi9zcmMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldERpc2NyaW1pbmF0b3JGaWVsZEZyb21TY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2d1ZXNzVHlwZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC91bmlvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZ2V0U2NoZW1hVHlwZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvbWVyZ2VTY2hlbWFzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvcmV0cmlldmVTY2hlbWEuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9nZXRDbG9zZXN0TWF0Y2hpbmdPcHRpb24uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2lzRml4ZWRJdGVtcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvbWVyZ2VEZWZhdWx0c1dpdGhGb3JtRGF0YS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvbWVyZ2VPYmplY3RzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9pc0NvbnN0YW50LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvaXNTZWxlY3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9pc011bHRpU2VsZWN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvZ2V0RGVmYXVsdEZvcm1TdGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvaXNDdXN0b21XaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9pc0ZpbGVzQXJyYXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9nZXREaXNwbGF5TGFiZWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3NjaGVtYS9tZXJnZVZhbGlkYXRpb25EYXRhLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvc2FuaXRpemVEYXRhRm9yTmV3U2NoZW1hLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWEvdG9JZFNjaGVtYS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2NoZW1hL3RvUGF0aFNjaGVtYS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvY3JlYXRlU2NoZW1hVXRpbHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2RhdGFVUkl0b0Jsb2IuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3BhZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZGF0ZVJhbmdlT3B0aW9ucy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvcmVwbGFjZVN0cmluZ1BhcmFtZXRlcnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2VuZ2xpc2hTdHJpbmdUcmFuc2xhdG9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbnVtT3B0aW9uc1ZhbHVlRm9ySW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2VudW1PcHRpb25zRGVzZWxlY3RWYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZW51bU9wdGlvbnNJc1NlbGVjdGVkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9lbnVtT3B0aW9uc0luZGV4Rm9yVmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNOaWwuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2VudW1PcHRpb25zU2VsZWN0VmFsdWUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvc2V0V2l0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvRXJyb3JTY2hlbWFCdWlsZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9nZXREYXRlRWxlbWVudFByb3BzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9yYW5nZVNwZWMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldElucHV0UHJvcHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldFN1Ym1pdEJ1dHRvbk9wdGlvbnMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2dldFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1pc0AxOC4zLjEvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3QtaXNAMTguMy4xL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvZ2V0V2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9oYXNXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2lkR2VuZXJhdG9ycy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvbGFiZWxWYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvbG9jYWxUb1VUQy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdG9Db25zdGFudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvb3B0aW9uc0xpc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL29yZGVyUHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvcGFyc2VEYXRlU3RyaW5nLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi9zY2hlbWFSZXF1aXJlc1RydWVWYWx1ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvc2hvdWxkUmVuZGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi90b0RhdGVTdHJpbmcuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL3RvRXJyb3JMaXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3RvUGF0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdG9FcnJvclNjaGVtYS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdXRpbHNANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi91dGlscy9saWIvdW53cmFwRXJyb3JIYW5kbGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi91dGNUb0xvY2FsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi92YWxpZGF0aW9uRGF0YU1lcmdlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit1dGlsc0A1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3V0aWxzL2xpYi93aXRoSWRSZWZQcmVmaXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3V0aWxzQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdXRpbHMvbGliL2VudW1zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby91cmktanNANC40LjEvbm9kZV9tb2R1bGVzL3VyaS1qcy9kaXN0L2VzNS91cmkuYWxsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9mYXN0LWRlZXAtZXF1YWxAMy4xLjMvbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL3VjczJsZW5ndGguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvY29tcGlsZS91dGlsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvc2NoZW1hX29iai5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vanNvbi1zY2hlbWEtdHJhdmVyc2VAMC40LjEvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLXRyYXZlcnNlL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvcmVzb2x2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2Vycm9yX2NsYXNzZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2Zhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5QDIuMS4wL25vZGVfbW9kdWxlcy9mYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy92YWxpZGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NhY2hlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvZm9ybWF0cy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9yZWYuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvYWxsT2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvYW55T2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvY29tbWVudC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9jb25zdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9jb250YWlucy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9kZXBlbmRlbmNpZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvZW51bS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9mb3JtYXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvaWYuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvaXRlbXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvX2xpbWl0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL19saW1pdEl0ZW1zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL19saW1pdExlbmd0aC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9fbGltaXRQcm9wZXJ0aWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL211bHRpcGxlT2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvbm90LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL29uZU9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3BhdHRlcm4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZG90anMvcHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kb3Rqcy9wcm9wZXJ0eU5hbWVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3JlcXVpcmVkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL3VuaXF1ZUl0ZW1zLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2luZGV4LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2NvbXBpbGUvcnVsZXMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2FqdkA2LjEyLjYvbm9kZV9tb2R1bGVzL2Fqdi9saWIvZGF0YS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9jb21waWxlL2FzeW5jLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2RvdGpzL2N1c3RvbS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9kZWZpbml0aW9uX3NjaGVtYS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vYWp2QDYuMTIuNi9ub2RlX21vZHVsZXMvYWp2L2xpYi9rZXl3b3JkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9hanZANi4xMi42L25vZGVfbW9kdWxlcy9hanYvbGliL2Fqdi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdmFsaWRhdG9yLWFqdjZANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi92YWxpZGF0b3ItYWp2Ni9saWIvY3JlYXRlQWp2SW5zdGFuY2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK3ZhbGlkYXRvci1hanY2QDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvdmFsaWRhdG9yLWFqdjYvbGliL3ZhbGlkYXRvci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrdmFsaWRhdG9yLWFqdjZANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi92YWxpZGF0b3ItYWp2Ni9saWIvY3VzdG9taXplVmFsaWRhdG9yLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZit2YWxpZGF0b3ItYWp2NkA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL3ZhbGlkYXRvci1hanY2L2xpYi9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVBpY2tCeS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbG9kYXNoQDQuMTcuMjEvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZVBpY2suanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL2xvZGFzaEA0LjE3LjIxL25vZGVfbW9kdWxlcy9sb2Rhc2gvcGljay5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vbmFub2lkQDMuMy44L25vZGVfbW9kdWxlcy9uYW5vaWQvaW5kZXguYnJvd3Nlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL0FycmF5RmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9Cb29sZWFuRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9NdWx0aVNjaGVtYUZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvTnVtYmVyRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL21hcmtkb3duLXRvLWpzeEA3LjcuMi9ub2RlX21vZHVsZXMvbWFya2Rvd24tdG8tanN4L2Rpc3QvaW5kZXgubW9kZXJuLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9sb2Rhc2hANC4xNy4yMS9ub2RlX21vZHVsZXMvbG9kYXNoL3Vuc2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvT2JqZWN0RmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9TY2hlbWFGaWVsZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvZmllbGRzL1N0cmluZ0ZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvTnVsbEZpZWxkLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy9maWVsZHMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9BcnJheUZpZWxkRGVzY3JpcHRpb25UZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0FycmF5RmllbGRJdGVtVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9BcnJheUZpZWxkVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9BcnJheUZpZWxkVGl0bGVUZW1wbGF0ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0Jhc2VJbnB1dFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvQnV0dG9uVGVtcGxhdGVzL1N1Ym1pdEJ1dHRvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlcy9JY29uQnV0dG9uLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvQnV0dG9uVGVtcGxhdGVzL0FkZEJ1dHRvbi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL0Rlc2NyaXB0aW9uRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9FcnJvckxpc3QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9GaWVsZFRlbXBsYXRlL0xhYmVsLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvRmllbGRUZW1wbGF0ZS9GaWVsZFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvRmllbGRFcnJvclRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvRmllbGRIZWxwVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9PYmplY3RGaWVsZFRlbXBsYXRlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvVGl0bGVGaWVsZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL1Vuc3VwcG9ydGVkRmllbGQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9XcmFwSWZBZGRpdGlvbmFsVGVtcGxhdGUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9BbHREYXRlV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0FsdERhdGVUaW1lV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0NoZWNrYm94V2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0NoZWNrYm94ZXNXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvQ29sb3JXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvRGF0ZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9EYXRlVGltZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9FbWFpbFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9GaWxlV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL0hpZGRlbldpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9QYXNzd29yZFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9SYWRpb1dpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9SYW5nZVdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9TZWxlY3RXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvVGV4dGFyZWFXaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvVGV4dFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9UaW1lV2lkZ2V0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AcmpzZitjb3JlQDUuMjMuMi9ub2RlX21vZHVsZXMvQHJqc2YvY29yZS9saWIvY29tcG9uZW50cy93aWRnZXRzL1VSTFdpZGdldC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQHJqc2YrY29yZUA1LjIzLjIvbm9kZV9tb2R1bGVzL0ByanNmL2NvcmUvbGliL2NvbXBvbmVudHMvd2lkZ2V0cy9VcERvd25XaWRnZXQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL3dpZGdldHMvaW5kZXguanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9nZXREZWZhdWx0UmVnaXN0cnkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0ByanNmK2NvcmVANS4yMy4yL25vZGVfbW9kdWxlcy9AcmpzZi9jb3JlL2xpYi9jb21wb25lbnRzL0Zvcm0uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZGVsL2NvdW50cnkudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL2NvdW50cnkudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY29udGFjdC9Db250YWN0TW9kYWwudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy9hZGRyZXNzLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQ29udGFjdE1vZGFsQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdHNsaWJAMi42LjIvbm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3N0eWxpc0A0LjMuMi9ub2RlX21vZHVsZXMvc3R5bGlzL3NyYy9FbnVtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4zLjIvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvVXRpbGl0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1Rva2VuaXplci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1BhcnNlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL1ByZWZpeGVyLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsaXNANC4zLjIvbm9kZV9tb2R1bGVzL3N0eWxpcy9zcmMvU2VyaWFsaXplci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vc3R5bGlzQDQuMy4yL25vZGVfbW9kdWxlcy9zdHlsaXMvc3JjL01pZGRsZXdhcmUuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BlbW90aW9uK3VuaXRsZXNzQDAuOC4xL25vZGVfbW9kdWxlcy9AZW1vdGlvbi91bml0bGVzcy9kaXN0L2Vtb3Rpb24tdW5pdGxlc3MuZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9zdHlsZWQtY29tcG9uZW50c0A2LjEuMTMvbm9kZV9tb2R1bGVzL3N0eWxlZC1jb21wb25lbnRzL2Rpc3Qvc3R5bGVkLWNvbXBvbmVudHMuYnJvd3Nlci5lc20uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1ByaW1pdGl2ZS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJvcGVydHlLZXkuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZDIuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlMaWtlVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC91c2VTdGF0ZU1hbmFnZXItY2UyMzA2MWMuY2pzLnByb2QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVTdXBlci5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9AYmFiZWwrcnVudGltZUA3LjI2LjAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVTcHJlYWQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL0BiYWJlbCtydW50aW1lQDcuMjYuMC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheS5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGJhYmVsK3J1bnRpbWVANy4yNi4wL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vQGZsb2F0aW5nLXVpK2RvbUAxLjYuMTIvbm9kZV9tb2R1bGVzL0BmbG9hdGluZy11aS9kb20vZGlzdC9mbG9hdGluZy11aS5kb20uZXNtLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L2luZGV4LTY2NWM0ZWQ4LmNqcy5wcm9kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9kaXN0L1NlbGVjdC0zNmQxNWY5My5janMucHJvZC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9yZWFjdC1zZWxlY3QuY2pzLnByb2QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvcmVhY3Qtc2VsZWN0LmNqcy5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtc2VsZWN0QDUuOS4wL25vZGVfbW9kdWxlcy9yZWFjdC1zZWxlY3QvZGlzdC9yZWFjdC1zZWxlY3QuY2pzLmRlZmF1bHQuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvYmFzZS9TZWxlY3RMYWJlbC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY29udGFjdC9Db250YWN0U2VsZWN0LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9jb250YWN0L0FkZHJlc3NNb2RhbC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY29udGFjdC9BZGRyZXNzTW9kYWxDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQWRkcmVzc0RldGFpbC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY29udGFjdC9BZGRyZXNzU2VsZWN0LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvYWNjb3VudC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9hY2NvdW50L0FjY291bnRTZWxlY3RDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2NvbnRhY3QvQ29udGFjdENvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvdHlwZS9UeXBlU2VsZWN0Q29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvc2hvcC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9zaG9wL1Nob3BTZWxlY3RDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2RyYWZ0L0RyYWZ0Q29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvb3JkZXIudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvYmFzZS9DdXJyZW5jeS50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvY2FsYy9DYWxjQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy90b3BiYXIvVG9wQmFyQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kZWwvcHJvZHVjdEdyb3VwLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy9wcm9kdWN0Z3JvdXAudHMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2Rpc3QvdXNlQXN5bmMtYmU2NTlhNTcuY2pzLnByb2QuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2FzeW5jL2Rpc3QvcmVhY3Qtc2VsZWN0LWFzeW5jLmNqcy5wcm9kLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL25vZGVfbW9kdWxlcy8uZGVuby9yZWFjdC1zZWxlY3RANS45LjAvbm9kZV9tb2R1bGVzL3JlYWN0LXNlbGVjdC9hc3luYy9kaXN0L3JlYWN0LXNlbGVjdC1hc3luYy5janMuanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvbm9kZV9tb2R1bGVzLy5kZW5vL3JlYWN0LXNlbGVjdEA1LjkuMC9ub2RlX21vZHVsZXMvcmVhY3Qtc2VsZWN0L2FzeW5jL2Rpc3QvcmVhY3Qtc2VsZWN0LWFzeW5jLmNqcy5kZWZhdWx0LmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3Byb2R1Y3QvUHJvZHVjdEdyb3VwU2VsZWN0LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvc2VydmljZXMvcHJvZHVjdC50cyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vdXNlLWRlYm91bmNlQDEwLjAuNC9ub2RlX21vZHVsZXMvdXNlLWRlYm91bmNlL2Rpc3QvaW5kZXgubW9kdWxlLmpzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3Byb2R1Y3QvUHJvZHVjdFNlbGVjdC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvcHJvZHVjdC9Qcm9kdWN0Rm9ybS50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvcG9zaXRpb25zL0FkZFBvc2l0aW9uQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wb3NpdGlvbnMvRWRpdFBvc2l0aW9uQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wb3NpdGlvbnMvUG9zQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9wb3NpdGlvbnMvSXRlbXNDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3Bvc2l0aW9ucy9Qb3NpdGlvbnNDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9zZXJ2aWNlcy9wYXltZW50LnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3BheW1lbnQvUGF5bWVudENvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL3NlcnZpY2VzL3NoaXBwaW5nLnRzIiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL3NoaXBwaW5nL1NoaXBwaW5nQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9zcmMvbW9kdWxlcy9idXR0b24vQnV0dG9uQ29tcG9uZW50LnRzeCIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vY29va2llQDEuMC4yL25vZGVfbW9kdWxlcy9jb29raWUvZGlzdC9pbmRleC5qcyIsIi4uLy4uLy4uLy4uL0ludm9pY2VUUy9ub2RlX21vZHVsZXMvLmRlbm8vcmVhY3Qtcm91dGVyQDcuMS4wL25vZGVfbW9kdWxlcy9yZWFjdC1yb3V0ZXIvZGlzdC9kZXZlbG9wbWVudC9jaHVuay1XM0haSkxVUS5tanMiLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL21vZHVsZXMvaW5mby9JbmZvRmllbGRDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL29yZGVyL09yZGVyQWxpYXNDb21wb25lbnQudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tb2R1bGVzL2Jhc2UvQmFzZUNvbXBvbmVudC50c3giLCIuLi8uLi8uLi8uLi9JbnZvaWNlVFMvc3JjL2FwcC9hcHAudHN4IiwiLi4vLi4vLi4vLi4vSW52b2ljZVRTL3NyYy9tYWluLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoQykgTWljcm9zb2Z0LiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXG50aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZVxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVEhJUyBDT0RFIElTIFBST1ZJREVEIE9OIEFOICpBUyBJUyogQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcbk1FUkNIQU5UQUJMSVRZIE9SIE5PTi1JTkZSSU5HRU1FTlQuXG5cblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbnZhciBSZWZsZWN0O1xuKGZ1bmN0aW9uIChSZWZsZWN0KSB7XG4gICAgLy8gTWV0YWRhdGEgUHJvcG9zYWxcbiAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhL1xuICAgIChmdW5jdGlvbiAoZmFjdG9yeSkge1xuICAgICAgICB2YXIgcm9vdCA9IHR5cGVvZiBnbG9iYWxUaGlzID09PSBcIm9iamVjdFwiID8gZ2xvYmFsVGhpcyA6XG4gICAgICAgICAgICB0eXBlb2YgZ2xvYmFsID09PSBcIm9iamVjdFwiID8gZ2xvYmFsIDpcbiAgICAgICAgICAgICAgICB0eXBlb2Ygc2VsZiA9PT0gXCJvYmplY3RcIiA/IHNlbGYgOlxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcyA9PT0gXCJvYmplY3RcIiA/IHRoaXMgOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2xvcHB5TW9kZVRoaXMoKTtcbiAgICAgICAgdmFyIGV4cG9ydGVyID0gbWFrZUV4cG9ydGVyKFJlZmxlY3QpO1xuICAgICAgICBpZiAodHlwZW9mIHJvb3QuUmVmbGVjdCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgZXhwb3J0ZXIgPSBtYWtlRXhwb3J0ZXIocm9vdC5SZWZsZWN0LCBleHBvcnRlcik7XG4gICAgICAgIH1cbiAgICAgICAgZmFjdG9yeShleHBvcnRlciwgcm9vdCk7XG4gICAgICAgIGlmICh0eXBlb2Ygcm9vdC5SZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByb290LlJlZmxlY3QgPSBSZWZsZWN0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIG1ha2VFeHBvcnRlcih0YXJnZXQsIHByZXZpb3VzKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHsgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91cylcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGZ1bmN0aW9uVGhpcygpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uKFwicmV0dXJuIHRoaXM7XCIpKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoXykgeyB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaW5kaXJlY3RFdmFsVGhpcygpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh2b2lkIDAsIGV2YWwpKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSkoKVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChfKSB7IH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzbG9wcHlNb2RlVGhpcygpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvblRoaXMoKSB8fCBpbmRpcmVjdEV2YWxUaGlzKCk7XG4gICAgICAgIH1cbiAgICB9KShmdW5jdGlvbiAoZXhwb3J0ZXIsIHJvb3QpIHtcbiAgICAgICAgdmFyIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgICAgIC8vIGZlYXR1cmUgdGVzdCBmb3IgU3ltYm9sIHN1cHBvcnRcbiAgICAgICAgdmFyIHN1cHBvcnRzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICB2YXIgdG9QcmltaXRpdmVTeW1ib2wgPSBzdXBwb3J0c1N5bWJvbCAmJiB0eXBlb2YgU3ltYm9sLnRvUHJpbWl0aXZlICE9PSBcInVuZGVmaW5lZFwiID8gU3ltYm9sLnRvUHJpbWl0aXZlIDogXCJAQHRvUHJpbWl0aXZlXCI7XG4gICAgICAgIHZhciBpdGVyYXRvclN5bWJvbCA9IHN1cHBvcnRzU3ltYm9sICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgIT09IFwidW5kZWZpbmVkXCIgPyBTeW1ib2wuaXRlcmF0b3IgOiBcIkBAaXRlcmF0b3JcIjtcbiAgICAgICAgdmFyIHN1cHBvcnRzQ3JlYXRlID0gdHlwZW9mIE9iamVjdC5jcmVhdGUgPT09IFwiZnVuY3Rpb25cIjsgLy8gZmVhdHVyZSB0ZXN0IGZvciBPYmplY3QuY3JlYXRlIHN1cHBvcnRcbiAgICAgICAgdmFyIHN1cHBvcnRzUHJvdG8gPSB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5OyAvLyBmZWF0dXJlIHRlc3QgZm9yIF9fcHJvdG9fXyBzdXBwb3J0XG4gICAgICAgIHZhciBkb3duTGV2ZWwgPSAhc3VwcG9ydHNDcmVhdGUgJiYgIXN1cHBvcnRzUHJvdG87XG4gICAgICAgIHZhciBIYXNoTWFwID0ge1xuICAgICAgICAgICAgLy8gY3JlYXRlIGFuIG9iamVjdCBpbiBkaWN0aW9uYXJ5IG1vZGUgKGEuay5hLiBcInNsb3dcIiBtb2RlIGluIHY4KVxuICAgICAgICAgICAgY3JlYXRlOiBzdXBwb3J0c0NyZWF0ZVxuICAgICAgICAgICAgICAgID8gZnVuY3Rpb24gKCkgeyByZXR1cm4gTWFrZURpY3Rpb25hcnkoT2JqZWN0LmNyZWF0ZShudWxsKSk7IH1cbiAgICAgICAgICAgICAgICA6IHN1cHBvcnRzUHJvdG9cbiAgICAgICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAoKSB7IHJldHVybiBNYWtlRGljdGlvbmFyeSh7IF9fcHJvdG9fXzogbnVsbCB9KTsgfVxuICAgICAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIE1ha2VEaWN0aW9uYXJ5KHt9KTsgfSxcbiAgICAgICAgICAgIGhhczogZG93bkxldmVsXG4gICAgICAgICAgICAgICAgPyBmdW5jdGlvbiAobWFwLCBrZXkpIHsgcmV0dXJuIGhhc093bi5jYWxsKG1hcCwga2V5KTsgfVxuICAgICAgICAgICAgICAgIDogZnVuY3Rpb24gKG1hcCwga2V5KSB7IHJldHVybiBrZXkgaW4gbWFwOyB9LFxuICAgICAgICAgICAgZ2V0OiBkb3duTGV2ZWxcbiAgICAgICAgICAgICAgICA/IGZ1bmN0aW9uIChtYXAsIGtleSkgeyByZXR1cm4gaGFzT3duLmNhbGwobWFwLCBrZXkpID8gbWFwW2tleV0gOiB1bmRlZmluZWQ7IH1cbiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uIChtYXAsIGtleSkgeyByZXR1cm4gbWFwW2tleV07IH0sXG4gICAgICAgIH07XG4gICAgICAgIC8vIExvYWQgZ2xvYmFsIG9yIHNoaW0gdmVyc2lvbnMgb2YgTWFwLCBTZXQsIGFuZCBXZWFrTWFwXG4gICAgICAgIHZhciBmdW5jdGlvblByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihGdW5jdGlvbik7XG4gICAgICAgIHZhciBfTWFwID0gdHlwZW9mIE1hcCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBNYXAucHJvdG90eXBlLmVudHJpZXMgPT09IFwiZnVuY3Rpb25cIiA/IE1hcCA6IENyZWF0ZU1hcFBvbHlmaWxsKCk7XG4gICAgICAgIHZhciBfU2V0ID0gdHlwZW9mIFNldCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTZXQucHJvdG90eXBlLmVudHJpZXMgPT09IFwiZnVuY3Rpb25cIiA/IFNldCA6IENyZWF0ZVNldFBvbHlmaWxsKCk7XG4gICAgICAgIHZhciBfV2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSBcImZ1bmN0aW9uXCIgPyBXZWFrTWFwIDogQ3JlYXRlV2Vha01hcFBvbHlmaWxsKCk7XG4gICAgICAgIHZhciByZWdpc3RyeVN5bWJvbCA9IHN1cHBvcnRzU3ltYm9sID8gU3ltYm9sLmZvcihcIkByZWZsZWN0LW1ldGFkYXRhOnJlZ2lzdHJ5XCIpIDogdW5kZWZpbmVkO1xuICAgICAgICB2YXIgbWV0YWRhdGFSZWdpc3RyeSA9IEdldE9yQ3JlYXRlTWV0YWRhdGFSZWdpc3RyeSgpO1xuICAgICAgICB2YXIgbWV0YWRhdGFQcm92aWRlciA9IENyZWF0ZU1ldGFkYXRhUHJvdmlkZXIobWV0YWRhdGFSZWdpc3RyeSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBcHBsaWVzIGEgc2V0IG9mIGRlY29yYXRvcnMgdG8gYSBwcm9wZXJ0eSBvZiBhIHRhcmdldCBvYmplY3QuXG4gICAgICAgICAqIEBwYXJhbSBkZWNvcmF0b3JzIEFuIGFycmF5IG9mIGRlY29yYXRvcnMuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3QuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgdG8gZGVjb3JhdGUuXG4gICAgICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzIChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSB0YXJnZXQga2V5LlxuICAgICAgICAgKiBAcmVtYXJrcyBEZWNvcmF0b3JzIGFyZSBhcHBsaWVkIGluIHJldmVyc2Ugb3JkZXIuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIEV4YW1wbGUgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnNBcnJheSwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnNBcnJheSwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnNBcnJheSwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIsXG4gICAgICAgICAqICAgICAgICAgUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzQXJyYXksIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIsXG4gICAgICAgICAqICAgICAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIikpKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiLFxuICAgICAgICAgKiAgICAgICAgIFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9yc0FycmF5LCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIixcbiAgICAgICAgICogICAgICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIikpKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwgcHJvcGVydHlLZXksIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFJc0FycmF5KGRlY29yYXRvcnMpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFJc09iamVjdChhdHRyaWJ1dGVzKSAmJiAhSXNVbmRlZmluZWQoYXR0cmlidXRlcykgJiYgIUlzTnVsbChhdHRyaWJ1dGVzKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmIChJc051bGwoYXR0cmlidXRlcykpXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gRGVjb3JhdGVQcm9wZXJ0eShkZWNvcmF0b3JzLCB0YXJnZXQsIHByb3BlcnR5S2V5LCBhdHRyaWJ1dGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghSXNBcnJheShkZWNvcmF0b3JzKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIGlmICghSXNDb25zdHJ1Y3Rvcih0YXJnZXQpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIERlY29yYXRlQ29uc3RydWN0b3IoZGVjb3JhdG9ycywgdGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImRlY29yYXRlXCIsIGRlY29yYXRlKTtcbiAgICAgICAgLy8gNC4xLjIgUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSlcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jcmVmbGVjdC5tZXRhZGF0YVxuICAgICAgICAvKipcbiAgICAgICAgICogQSBkZWZhdWx0IG1ldGFkYXRhIGRlY29yYXRvciBmYWN0b3J5IHRoYXQgY2FuIGJlIHVzZWQgb24gYSBjbGFzcywgY2xhc3MgbWVtYmVyLCBvciBwYXJhbWV0ZXIuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YUtleSBUaGUga2V5IGZvciB0aGUgbWV0YWRhdGEgZW50cnkuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YVZhbHVlIFRoZSB2YWx1ZSBmb3IgdGhlIG1ldGFkYXRhIGVudHJ5LlxuICAgICAgICAgKiBAcmV0dXJucyBBIGRlY29yYXRvciBmdW5jdGlvbi5cbiAgICAgICAgICogQHJlbWFya3NcbiAgICAgICAgICogSWYgYG1ldGFkYXRhS2V5YCBpcyBhbHJlYWR5IGRlZmluZWQgZm9yIHRoZSB0YXJnZXQgYW5kIHRhcmdldCBrZXksIHRoZVxuICAgICAgICAgKiBtZXRhZGF0YVZhbHVlIGZvciB0aGF0IGtleSB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIEBSZWZsZWN0Lm1ldGFkYXRhKGtleSwgdmFsdWUpXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvciwgVHlwZVNjcmlwdCBvbmx5KVxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgQFJlZmxlY3QubWV0YWRhdGEoa2V5LCB2YWx1ZSlcbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlLCBUeXBlU2NyaXB0IG9ubHkpXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgICAgIHByb3BlcnR5O1xuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIEBSZWZsZWN0Lm1ldGFkYXRhKGtleSwgdmFsdWUpXG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZCgpIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICBAUmVmbGVjdC5tZXRhZGF0YShrZXksIHZhbHVlKVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZCgpIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGRlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkgJiYgIUlzUHJvcGVydHlLZXkocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGVjb3JhdG9yO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwibWV0YWRhdGFcIiwgbWV0YWRhdGEpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVmaW5lIGEgdW5pcXVlIG1ldGFkYXRhIGVudHJ5IG9uIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YUtleSBBIGtleSB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIG1ldGFkYXRhVmFsdWUgQSB2YWx1ZSB0aGF0IGNvbnRhaW5zIGF0dGFjaGVkIG1ldGFkYXRhLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRvIGRlZmluZSBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIHByb3BlcnR5S2V5IChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGtleSBmb3IgdGhlIHRhcmdldC5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBvcHRpb25zLCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIG9wdGlvbnMsIEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGRlY29yYXRvciBmYWN0b3J5IGFzIG1ldGFkYXRhLXByb2R1Y2luZyBhbm5vdGF0aW9uLlxuICAgICAgICAgKiAgICAgZnVuY3Rpb24gTXlBbm5vdGF0aW9uKG9wdGlvbnMpOiBEZWNvcmF0b3Ige1xuICAgICAgICAgKiAgICAgICAgIHJldHVybiAodGFyZ2V0LCBrZXk/KSA9PiBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgb3B0aW9ucywgdGFyZ2V0LCBrZXkpO1xuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gZGVmaW5lTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiZGVmaW5lTWV0YWRhdGFcIiwgZGVmaW5lTWV0YWRhdGEpO1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgdGFyZ2V0IG9iamVjdCBvciBpdHMgcHJvdG90eXBlIGNoYWluIGhhcyB0aGUgcHJvdmlkZWQgbWV0YWRhdGEga2V5IGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YUtleSBBIGtleSB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0aGUgbWV0YWRhdGEgaXMgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIHByb3BlcnR5S2V5IChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGtleSBmb3IgdGhlIHRhcmdldC5cbiAgICAgICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBtZXRhZGF0YSBrZXkgd2FzIGRlZmluZWQgb24gdGhlIHRhcmdldCBvYmplY3Qgb3IgaXRzIHByb3RvdHlwZSBjaGFpbjsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc01ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc01ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNQcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc01ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5oYXNNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc01ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZS5wcm90b3R5cGUsIFwibWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgZnVuY3Rpb24gaGFzTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICAgICAgICAgIGlmICghSXNPYmplY3QodGFyZ2V0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3BlcnR5S2V5KSlcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eUtleSA9IFRvUHJvcGVydHlLZXkocHJvcGVydHlLZXkpO1xuICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5SGFzTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydGVyKFwiaGFzTWV0YWRhdGFcIiwgaGFzTWV0YWRhdGEpO1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgdGFyZ2V0IG9iamVjdCBoYXMgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWV0YWRhdGEga2V5IHdhcyBkZWZpbmVkIG9uIHRoZSB0YXJnZXQgb2JqZWN0OyBvdGhlcndpc2UsIGBmYWxzZWAuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0Lmhhc093bk1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuaGFzT3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBoYXNPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlIYXNPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJoYXNPd25NZXRhZGF0YVwiLCBoYXNPd25NZXRhZGF0YSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIG1ldGFkYXRhIGtleSBvbiB0aGUgdGFyZ2V0IG9iamVjdCBvciBpdHMgcHJvdG90eXBlIGNoYWluLlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIFRoZSBtZXRhZGF0YSB2YWx1ZSBmb3IgdGhlIG1ldGFkYXRhIGtleSBpZiBmb3VuZDsgb3RoZXJ3aXNlLCBgdW5kZWZpbmVkYC5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldE1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUdldE1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImdldE1ldGFkYXRhXCIsIGdldE1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIG1ldGFkYXRhIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgbWV0YWRhdGEga2V5IG9uIHRoZSB0YXJnZXQgb2JqZWN0LlxuICAgICAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIFRoZSBtZXRhZGF0YSB2YWx1ZSBmb3IgdGhlIG1ldGFkYXRhIGtleSBpZiBmb3VuZDsgb3RoZXJ3aXNlLCBgdW5kZWZpbmVkYC5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY01ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcImN1c3RvbTphbm5vdGF0aW9uXCIsIEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldE93bk1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUdldE93bk1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImdldE93bk1ldGFkYXRhXCIsIGdldE93bk1ldGFkYXRhKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIG1ldGFkYXRhIGtleXMgZGVmaW5lZCBvbiB0aGUgdGFyZ2V0IG9iamVjdCBvciBpdHMgcHJvdG90eXBlIGNoYWluLlxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgKE9wdGlvbmFsKSBUaGUgcHJvcGVydHkga2V5IGZvciB0aGUgdGFyZ2V0LlxuICAgICAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB1bmlxdWUgbWV0YWRhdGEga2V5cy5cbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNsYXNzIEV4YW1wbGUge1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBhcnQgb2YgRVM2LCB0aG91Z2ggdGhleSBhcmUgdmFsaWQgaW4gVHlwZVNjcmlwdDpcbiAgICAgICAgICogICAgICAgICAvLyBzdGF0aWMgc3RhdGljUHJvcGVydHk7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAgICAgY29uc3RydWN0b3IocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgc3RhdGljIHN0YXRpY01ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgICAgICBtZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICB9XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBjb25zdHJ1Y3RvclxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRNZXRhZGF0YUtleXMoRXhhbXBsZSk7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzKEV4YW1wbGUucHJvdG90eXBlLCBcInByb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzKEV4YW1wbGUsIFwic3RhdGljTWV0aG9kXCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gbWV0aG9kIChvbiBwcm90b3R5cGUpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE1ldGFkYXRhS2V5cyhFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBnZXRNZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlNZXRhZGF0YUtleXModGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0ZXIoXCJnZXRNZXRhZGF0YUtleXNcIiwgZ2V0TWV0YWRhdGFLZXlzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIHVuaXF1ZSBtZXRhZGF0YSBrZXlzIGRlZmluZWQgb24gdGhlIHRhcmdldCBvYmplY3QuXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdGhlIG1ldGFkYXRhIGlzIGRlZmluZWQuXG4gICAgICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAoT3B0aW9uYWwpIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHVuaXF1ZSBtZXRhZGF0YSBrZXlzLlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY2xhc3MgRXhhbXBsZSB7XG4gICAgICAgICAqICAgICAgICAgLy8gcHJvcGVydHkgZGVjbGFyYXRpb25zIGFyZSBub3QgcGFydCBvZiBFUzYsIHRob3VnaCB0aGV5IGFyZSB2YWxpZCBpbiBUeXBlU2NyaXB0OlxuICAgICAgICAgKiAgICAgICAgIC8vIHN0YXRpYyBzdGF0aWNQcm9wZXJ0eTtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgICAgICBjb25zdHJ1Y3RvcihwKSB7IH1cbiAgICAgICAgICogICAgICAgICBzdGF0aWMgc3RhdGljTWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIG1ldGhvZChwKSB7IH1cbiAgICAgICAgICogICAgIH1cbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIGNvbnN0cnVjdG9yXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cyhFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUsIFwic3RhdGljUHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBwcm9wZXJ0eSAob24gcHJvdG90eXBlKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YUtleXMoRXhhbXBsZS5wcm90b3R5cGUsIFwicHJvcGVydHlcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIGNvbnN0cnVjdG9yKVxuICAgICAgICAgKiAgICAgcmVzdWx0ID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YUtleXMoRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzKEV4YW1wbGUucHJvdG90eXBlLCBcIm1ldGhvZFwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIGdldE93bk1ldGFkYXRhS2V5cyh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImdldE93bk1ldGFkYXRhS2V5c1wiLCBnZXRPd25NZXRhZGF0YUtleXMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVsZXRlcyB0aGUgbWV0YWRhdGEgZW50cnkgZnJvbSB0aGUgdGFyZ2V0IG9iamVjdCB3aXRoIHRoZSBwcm92aWRlZCBrZXkuXG4gICAgICAgICAqIEBwYXJhbSBtZXRhZGF0YUtleSBBIGtleSB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YS5cbiAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0aGUgbWV0YWRhdGEgaXMgZGVmaW5lZC5cbiAgICAgICAgICogQHBhcmFtIHByb3BlcnR5S2V5IChPcHRpb25hbCkgVGhlIHByb3BlcnR5IGtleSBmb3IgdGhlIHRhcmdldC5cbiAgICAgICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBtZXRhZGF0YSBlbnRyeSB3YXMgZm91bmQgYW5kIGRlbGV0ZWQ7IG90aGVyd2lzZSwgZmFsc2UuXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjbGFzcyBFeGFtcGxlIHtcbiAgICAgICAgICogICAgICAgICAvLyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIEVTNiwgdGhvdWdoIHRoZXkgYXJlIHZhbGlkIGluIFR5cGVTY3JpcHQ6XG4gICAgICAgICAqICAgICAgICAgLy8gc3RhdGljIHN0YXRpY1Byb3BlcnR5O1xuICAgICAgICAgKiAgICAgICAgIC8vIHByb3BlcnR5O1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgICAgIGNvbnN0cnVjdG9yKHApIHsgfVxuICAgICAgICAgKiAgICAgICAgIHN0YXRpYyBzdGF0aWNNZXRob2QocCkgeyB9XG4gICAgICAgICAqICAgICAgICAgbWV0aG9kKHApIHsgfVxuICAgICAgICAgKiAgICAgfVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZGVsZXRlTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIHByb3BlcnR5IChvbiBjb25zdHJ1Y3RvcilcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZGVsZXRlTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLCBcInN0YXRpY1Byb3BlcnR5XCIpO1xuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgLy8gcHJvcGVydHkgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZGVsZXRlTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJwcm9wZXJ0eVwiKTtcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIC8vIG1ldGhvZCAob24gY29uc3RydWN0b3IpXG4gICAgICAgICAqICAgICByZXN1bHQgPSBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhKFwiY3VzdG9tOmFubm90YXRpb25cIiwgRXhhbXBsZSwgXCJzdGF0aWNNZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICAvLyBtZXRob2QgKG9uIHByb3RvdHlwZSlcbiAgICAgICAgICogICAgIHJlc3VsdCA9IFJlZmxlY3QuZGVsZXRlTWV0YWRhdGEoXCJjdXN0b206YW5ub3RhdGlvblwiLCBFeGFtcGxlLnByb3RvdHlwZSwgXCJtZXRob2RcIik7XG4gICAgICAgICAqXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiBkZWxldGVNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgaWYgKCFJc09iamVjdCh0YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocHJvcGVydHlLZXkpKVxuICAgICAgICAgICAgICAgIHByb3BlcnR5S2V5ID0gVG9Qcm9wZXJ0eUtleShwcm9wZXJ0eUtleSk7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KHRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm9wZXJ0eUtleSkpXG4gICAgICAgICAgICAgICAgcHJvcGVydHlLZXkgPSBUb1Byb3BlcnR5S2V5KHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IEdldE1ldGFkYXRhUHJvdmlkZXIodGFyZ2V0LCBwcm9wZXJ0eUtleSwgLypDcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQocHJvdmlkZXIpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBwcm92aWRlci5PcmRpbmFyeURlbGV0ZU1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgfVxuICAgICAgICBleHBvcnRlcihcImRlbGV0ZU1ldGFkYXRhXCIsIGRlbGV0ZU1ldGFkYXRhKTtcbiAgICAgICAgZnVuY3Rpb24gRGVjb3JhdGVDb25zdHJ1Y3RvcihkZWNvcmF0b3JzLCB0YXJnZXQpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRvciA9IGRlY29yYXRvcnNbaV07XG4gICAgICAgICAgICAgICAgdmFyIGRlY29yYXRlZCA9IGRlY29yYXRvcih0YXJnZXQpO1xuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoZGVjb3JhdGVkKSAmJiAhSXNOdWxsKGRlY29yYXRlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFJc0NvbnN0cnVjdG9yKGRlY29yYXRlZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IGRlY29yYXRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIERlY29yYXRlUHJvcGVydHkoZGVjb3JhdG9ycywgdGFyZ2V0LCBwcm9wZXJ0eUtleSwgZGVzY3JpcHRvcikge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGVjb3JhdG9yID0gZGVjb3JhdG9yc1tpXTtcbiAgICAgICAgICAgICAgICB2YXIgZGVjb3JhdGVkID0gZGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHlLZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoZGVjb3JhdGVkKSAmJiAhSXNOdWxsKGRlY29yYXRlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFJc09iamVjdChkZWNvcmF0ZWQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yID0gZGVjb3JhdGVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS4xLjEgT3JkaW5hcnlIYXNNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnloYXNtZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUhhc01ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgaGFzT3duID0gT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gICAgICAgICAgICBpZiAoaGFzT3duKVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgdmFyIHBhcmVudCA9IE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTyk7XG4gICAgICAgICAgICBpZiAoIUlzTnVsbChwYXJlbnQpKVxuICAgICAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeUhhc01ldGFkYXRhKE1ldGFkYXRhS2V5LCBwYXJlbnQsIFApO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS4yLjEgT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnloYXNvd25tZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUhhc093bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBHZXRNZXRhZGF0YVByb3ZpZGVyKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHByb3ZpZGVyKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gVG9Cb29sZWFuKHByb3ZpZGVyLk9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuMy4xIE9yZGluYXJ5R2V0TWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5Z2V0bWV0YWRhdGFcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlHZXRNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgdmFyIGhhc093biA9IE9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApO1xuICAgICAgICAgICAgaWYgKGhhc093bilcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gT3JkaW5hcnlHZXRQcm90b3R5cGVPZihPKTtcbiAgICAgICAgICAgIGlmICghSXNOdWxsKHBhcmVudCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZGluYXJ5R2V0TWV0YWRhdGEoTWV0YWRhdGFLZXksIHBhcmVudCwgUCk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS40LjEgT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnlnZXRvd25tZXRhZGF0YVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeUdldE93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBHZXRNZXRhZGF0YVByb3ZpZGVyKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHByb3ZpZGVyKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICByZXR1cm4gcHJvdmlkZXIuT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMy4xLjUuMSBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlLCBPLCBQKVxuICAgICAgICAvLyBodHRwczovL3JidWNrdG9uLmdpdGh1Yi5pby9yZWZsZWN0LW1ldGFkYXRhLyNvcmRpbmFyeWRlZmluZW93bm1ldGFkYXRhXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE1ldGFkYXRhVmFsdWUsIE8sIFApIHtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IEdldE1ldGFkYXRhUHJvdmlkZXIoTywgUCwgLypDcmVhdGUqLyB0cnVlKTtcbiAgICAgICAgICAgIHByb3ZpZGVyLk9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE1ldGFkYXRhVmFsdWUsIE8sIFApO1xuICAgICAgICB9XG4gICAgICAgIC8vIDMuMS42LjEgT3JkaW5hcnlNZXRhZGF0YUtleXMoTywgUClcbiAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnltZXRhZGF0YWtleXNcbiAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlNZXRhZGF0YUtleXMoTywgUCkge1xuICAgICAgICAgICAgdmFyIG93bktleXMgPSBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKTtcbiAgICAgICAgICAgIHZhciBwYXJlbnQgPSBPcmRpbmFyeUdldFByb3RvdHlwZU9mKE8pO1xuICAgICAgICAgICAgaWYgKHBhcmVudCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gb3duS2V5cztcbiAgICAgICAgICAgIHZhciBwYXJlbnRLZXlzID0gT3JkaW5hcnlNZXRhZGF0YUtleXMocGFyZW50LCBQKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnRLZXlzLmxlbmd0aCA8PSAwKVxuICAgICAgICAgICAgICAgIHJldHVybiBvd25LZXlzO1xuICAgICAgICAgICAgaWYgKG93bktleXMubGVuZ3RoIDw9IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudEtleXM7XG4gICAgICAgICAgICB2YXIgc2V0ID0gbmV3IF9TZXQoKTtcbiAgICAgICAgICAgIHZhciBrZXlzID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIG93bktleXNfMSA9IG93bktleXM7IF9pIDwgb3duS2V5c18xLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBvd25LZXlzXzFbX2ldO1xuICAgICAgICAgICAgICAgIHZhciBoYXNLZXkgPSBzZXQuaGFzKGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChrZXkpO1xuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBfYSA9IDAsIHBhcmVudEtleXNfMSA9IHBhcmVudEtleXM7IF9hIDwgcGFyZW50S2V5c18xLmxlbmd0aDsgX2ErKykge1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBwYXJlbnRLZXlzXzFbX2FdO1xuICAgICAgICAgICAgICAgIHZhciBoYXNLZXkgPSBzZXQuaGFzKGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChrZXkpO1xuICAgICAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5cztcbiAgICAgICAgfVxuICAgICAgICAvLyAzLjEuNy4xIE9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKE8sIFApXG4gICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5b3dubWV0YWRhdGFrZXlzXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKE8sIFApIHtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IEdldE1ldGFkYXRhUHJvdmlkZXIoTywgUCwgLypjcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoIXByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyLk9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKE8sIFApO1xuICAgICAgICB9XG4gICAgICAgIC8vIDYgRUNNQVNjcmlwdCBEYXRhIFR5cGVzIGFuZCBWYWx1ZXNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZWNtYXNjcmlwdC1kYXRhLXR5cGVzLWFuZC12YWx1ZXNcbiAgICAgICAgZnVuY3Rpb24gVHlwZSh4KSB7XG4gICAgICAgICAgICBpZiAoeCA9PT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gMSAvKiBOdWxsICovO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgeCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjogcmV0dXJuIDAgLyogVW5kZWZpbmVkICovO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6IHJldHVybiAyIC8qIEJvb2xlYW4gKi87XG4gICAgICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOiByZXR1cm4gMyAvKiBTdHJpbmcgKi87XG4gICAgICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOiByZXR1cm4gNCAvKiBTeW1ib2wgKi87XG4gICAgICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOiByZXR1cm4gNSAvKiBOdW1iZXIgKi87XG4gICAgICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOiByZXR1cm4geCA9PT0gbnVsbCA/IDEgLyogTnVsbCAqLyA6IDYgLyogT2JqZWN0ICovO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiA2IC8qIE9iamVjdCAqLztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuMSBUaGUgVW5kZWZpbmVkIFR5cGVcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcy11bmRlZmluZWQtdHlwZVxuICAgICAgICBmdW5jdGlvbiBJc1VuZGVmaW5lZCh4KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PT0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIDYuMS4yIFRoZSBOdWxsIFR5cGVcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcy1udWxsLXR5cGVcbiAgICAgICAgZnVuY3Rpb24gSXNOdWxsKHgpIHtcbiAgICAgICAgICAgIHJldHVybiB4ID09PSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vIDYuMS41IFRoZSBTeW1ib2wgVHlwZVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzLXN5bWJvbC10eXBlXG4gICAgICAgIGZ1bmN0aW9uIElzU3ltYm9sKHgpIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJzeW1ib2xcIjtcbiAgICAgICAgfVxuICAgICAgICAvLyA2LjEuNyBUaGUgT2JqZWN0IFR5cGVcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LXR5cGVcbiAgICAgICAgZnVuY3Rpb24gSXNPYmplY3QoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiID8geCAhPT0gbnVsbCA6IHR5cGVvZiB4ID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4xIFR5cGUgQ29udmVyc2lvblxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10eXBlLWNvbnZlcnNpb25cbiAgICAgICAgLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG4gICAgICAgIGZ1bmN0aW9uIFRvUHJpbWl0aXZlKGlucHV0LCBQcmVmZXJyZWRUeXBlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKFR5cGUoaW5wdXQpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwIC8qIFVuZGVmaW5lZCAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgMSAvKiBOdWxsICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICAgICAgY2FzZSAyIC8qIEJvb2xlYW4gKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgICAgICBjYXNlIDMgLyogU3RyaW5nICovOiByZXR1cm4gaW5wdXQ7XG4gICAgICAgICAgICAgICAgY2FzZSA0IC8qIFN5bWJvbCAqLzogcmV0dXJuIGlucHV0O1xuICAgICAgICAgICAgICAgIGNhc2UgNSAvKiBOdW1iZXIgKi86IHJldHVybiBpbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBoaW50ID0gUHJlZmVycmVkVHlwZSA9PT0gMyAvKiBTdHJpbmcgKi8gPyBcInN0cmluZ1wiIDogUHJlZmVycmVkVHlwZSA9PT0gNSAvKiBOdW1iZXIgKi8gPyBcIm51bWJlclwiIDogXCJkZWZhdWx0XCI7XG4gICAgICAgICAgICB2YXIgZXhvdGljVG9QcmltID0gR2V0TWV0aG9kKGlucHV0LCB0b1ByaW1pdGl2ZVN5bWJvbCk7XG4gICAgICAgICAgICBpZiAoZXhvdGljVG9QcmltICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gZXhvdGljVG9QcmltLmNhbGwoaW5wdXQsIGhpbnQpO1xuICAgICAgICAgICAgICAgIGlmIChJc09iamVjdChyZXN1bHQpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBPcmRpbmFyeVRvUHJpbWl0aXZlKGlucHV0LCBoaW50ID09PSBcImRlZmF1bHRcIiA/IFwibnVtYmVyXCIgOiBoaW50KTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMS4xIE9yZGluYXJ5VG9QcmltaXRpdmUoTywgaGludClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3JkaW5hcnl0b3ByaW1pdGl2ZVxuICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeVRvUHJpbWl0aXZlKE8sIGhpbnQpIHtcbiAgICAgICAgICAgIGlmIChoaW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRvU3RyaW5nXzEgPSBPLnRvU3RyaW5nO1xuICAgICAgICAgICAgICAgIGlmIChJc0NhbGxhYmxlKHRvU3RyaW5nXzEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0b1N0cmluZ18xLmNhbGwoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZU9mID0gTy52YWx1ZU9mO1xuICAgICAgICAgICAgICAgIGlmIChJc0NhbGxhYmxlKHZhbHVlT2YpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZU9mLmNhbGwoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlT2YgPSBPLnZhbHVlT2Y7XG4gICAgICAgICAgICAgICAgaWYgKElzQ2FsbGFibGUodmFsdWVPZikpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHZhbHVlT2YuY2FsbChPKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFJc09iamVjdChyZXN1bHQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHRvU3RyaW5nXzIgPSBPLnRvU3RyaW5nO1xuICAgICAgICAgICAgICAgIGlmIChJc0NhbGxhYmxlKHRvU3RyaW5nXzIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0b1N0cmluZ18yLmNhbGwoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNPYmplY3QocmVzdWx0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMS4yIFRvQm9vbGVhbihhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLzIwMTYvI3NlYy10b2Jvb2xlYW5cbiAgICAgICAgZnVuY3Rpb24gVG9Cb29sZWFuKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gISFhcmd1bWVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjEuMTIgVG9TdHJpbmcoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvc3RyaW5nXG4gICAgICAgIGZ1bmN0aW9uIFRvU3RyaW5nKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIiArIGFyZ3VtZW50O1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMS4xNCBUb1Byb3BlcnR5S2V5KGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3Byb3BlcnR5a2V5XG4gICAgICAgIGZ1bmN0aW9uIFRvUHJvcGVydHlLZXkoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBUb1ByaW1pdGl2ZShhcmd1bWVudCwgMyAvKiBTdHJpbmcgKi8pO1xuICAgICAgICAgICAgaWYgKElzU3ltYm9sKGtleSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgIHJldHVybiBUb1N0cmluZyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIDcuMiBUZXN0aW5nIGFuZCBDb21wYXJpc29uIE9wZXJhdGlvbnNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdGVzdGluZy1hbmQtY29tcGFyaXNvbi1vcGVyYXRpb25zXG4gICAgICAgIC8vIDcuMi4yIElzQXJyYXkoYXJndW1lbnQpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWlzYXJyYXlcbiAgICAgICAgZnVuY3Rpb24gSXNBcnJheShhcmd1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXlcbiAgICAgICAgICAgICAgICA/IEFycmF5LmlzQXJyYXkoYXJndW1lbnQpXG4gICAgICAgICAgICAgICAgOiBhcmd1bWVudCBpbnN0YW5jZW9mIE9iamVjdFxuICAgICAgICAgICAgICAgICAgICA/IGFyZ3VtZW50IGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgOiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpID09PSBcIltvYmplY3QgQXJyYXldXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4yLjMgSXNDYWxsYWJsZShhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxuICAgICAgICBmdW5jdGlvbiBJc0NhbGxhYmxlKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBUaGlzIGlzIGFuIGFwcHJveGltYXRpb24gYXMgd2UgY2Fubm90IGNoZWNrIGZvciBbW0NhbGxdXSBpbnRlcm5hbCBtZXRob2QuXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50ID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4yLjQgSXNDb25zdHJ1Y3Rvcihhcmd1bWVudClcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNjb25zdHJ1Y3RvclxuICAgICAgICBmdW5jdGlvbiBJc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICAvLyBOT1RFOiBUaGlzIGlzIGFuIGFwcHJveGltYXRpb24gYXMgd2UgY2Fubm90IGNoZWNrIGZvciBbW0NvbnN0cnVjdF1dIGludGVybmFsIG1ldGhvZC5cbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgYXJndW1lbnQgPT09IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjIuNyBJc1Byb3BlcnR5S2V5KGFyZ3VtZW50KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pc3Byb3BlcnR5a2V5XG4gICAgICAgIGZ1bmN0aW9uIElzUHJvcGVydHlLZXkoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoVHlwZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDMgLyogU3RyaW5nICovOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDQgLyogU3ltYm9sICovOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gU2FtZVZhbHVlWmVybyh4LCB5KSB7XG4gICAgICAgICAgICByZXR1cm4geCA9PT0geSB8fCB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy4zIE9wZXJhdGlvbnMgb24gT2JqZWN0c1xuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vcGVyYXRpb25zLW9uLW9iamVjdHNcbiAgICAgICAgLy8gNy4zLjkgR2V0TWV0aG9kKFYsIFApXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWdldG1ldGhvZFxuICAgICAgICBmdW5jdGlvbiBHZXRNZXRob2QoViwgUCkge1xuICAgICAgICAgICAgdmFyIGZ1bmMgPSBWW1BdO1xuICAgICAgICAgICAgaWYgKGZ1bmMgPT09IHVuZGVmaW5lZCB8fCBmdW5jID09PSBudWxsKVxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoIUlzQ2FsbGFibGUoZnVuYykpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40IE9wZXJhdGlvbnMgb24gSXRlcmF0b3IgT2JqZWN0c1xuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vcGVyYXRpb25zLW9uLWl0ZXJhdG9yLW9iamVjdHNcbiAgICAgICAgZnVuY3Rpb24gR2V0SXRlcmF0b3Iob2JqKSB7XG4gICAgICAgICAgICB2YXIgbWV0aG9kID0gR2V0TWV0aG9kKG9iaiwgaXRlcmF0b3JTeW1ib2wpO1xuICAgICAgICAgICAgaWYgKCFJc0NhbGxhYmxlKG1ldGhvZCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpOyAvLyBmcm9tIENhbGxcbiAgICAgICAgICAgIHZhciBpdGVyYXRvciA9IG1ldGhvZC5jYWxsKG9iaik7XG4gICAgICAgICAgICBpZiAoIUlzT2JqZWN0KGl0ZXJhdG9yKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCk7XG4gICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gNy40LjQgSXRlcmF0b3JWYWx1ZShpdGVyUmVzdWx0KVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvMjAxNi8jc2VjLWl0ZXJhdG9ydmFsdWVcbiAgICAgICAgZnVuY3Rpb24gSXRlcmF0b3JWYWx1ZShpdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlclJlc3VsdC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjQuNSBJdGVyYXRvclN0ZXAoaXRlcmF0b3IpXG4gICAgICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWl0ZXJhdG9yc3RlcFxuICAgICAgICBmdW5jdGlvbiBJdGVyYXRvclN0ZXAoaXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmRvbmUgPyBmYWxzZSA6IHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICAvLyA3LjQuNiBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yLCBjb21wbGV0aW9uKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pdGVyYXRvcmNsb3NlXG4gICAgICAgIGZ1bmN0aW9uIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IpIHtcbiAgICAgICAgICAgIHZhciBmID0gaXRlcmF0b3JbXCJyZXR1cm5cIl07XG4gICAgICAgICAgICBpZiAoZilcbiAgICAgICAgICAgICAgICBmLmNhbGwoaXRlcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIC8vIDkuMSBPcmRpbmFyeSBPYmplY3QgSW50ZXJuYWwgTWV0aG9kcyBhbmQgSW50ZXJuYWwgU2xvdHNcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb3JkaW5hcnktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFsLXNsb3RzXG4gICAgICAgIC8vIDkuMS4xLjEgT3JkaW5hcnlHZXRQcm90b3R5cGVPZihPKVxuICAgICAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vcmRpbmFyeWdldHByb3RvdHlwZW9mXG4gICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5R2V0UHJvdG90eXBlT2YoTykge1xuICAgICAgICAgICAgdmFyIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBPICE9PSBcImZ1bmN0aW9uXCIgfHwgTyA9PT0gZnVuY3Rpb25Qcm90b3R5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCBkb2Vzbid0IHNldCBfX3Byb3RvX18gaW4gRVM1LCBhcyBpdCdzIG5vbi1zdGFuZGFyZC5cbiAgICAgICAgICAgIC8vIFRyeSB0byBkZXRlcm1pbmUgdGhlIHN1cGVyY2xhc3MgY29uc3RydWN0b3IuIENvbXBhdGlibGUgaW1wbGVtZW50YXRpb25zXG4gICAgICAgICAgICAvLyBtdXN0IGVpdGhlciBzZXQgX19wcm90b19fIG9uIGEgc3ViY2xhc3MgY29uc3RydWN0b3IgdG8gdGhlIHN1cGVyY2xhc3MgY29uc3RydWN0b3IsXG4gICAgICAgICAgICAvLyBvciBlbnN1cmUgZWFjaCBjbGFzcyBoYXMgYSB2YWxpZCBgY29uc3RydWN0b3JgIHByb3BlcnR5IG9uIGl0cyBwcm90b3R5cGUgdGhhdFxuICAgICAgICAgICAgLy8gcG9pbnRzIGJhY2sgdG8gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIHNhbWUgYXMgRnVuY3Rpb24uW1tQcm90b3R5cGVdXSwgdGhlbiB0aGlzIGlzIGRlZmluYXRlbHkgaW5oZXJpdGVkLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY2FzZSB3aGVuIGluIEVTNiBvciB3aGVuIHVzaW5nIF9fcHJvdG9fXyBpbiBhIGNvbXBhdGlibGUgYnJvd3Nlci5cbiAgICAgICAgICAgIGlmIChwcm90byAhPT0gZnVuY3Rpb25Qcm90b3R5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gSWYgdGhlIHN1cGVyIHByb3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlLCBudWxsLCBvciB1bmRlZmluZWQsIHRoZW4gd2UgY2Fubm90IGRldGVybWluZSB0aGUgaGVyaXRhZ2UuXG4gICAgICAgICAgICB2YXIgcHJvdG90eXBlID0gTy5wcm90b3R5cGU7XG4gICAgICAgICAgICB2YXIgcHJvdG90eXBlUHJvdG8gPSBwcm90b3R5cGUgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvdHlwZSk7XG4gICAgICAgICAgICBpZiAocHJvdG90eXBlUHJvdG8gPT0gbnVsbCB8fCBwcm90b3R5cGVQcm90byA9PT0gT2JqZWN0LnByb3RvdHlwZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvdG87XG4gICAgICAgICAgICAvLyBJZiB0aGUgY29uc3RydWN0b3Igd2FzIG5vdCBhIGZ1bmN0aW9uLCB0aGVuIHdlIGNhbm5vdCBkZXRlcm1pbmUgdGhlIGhlcml0YWdlLlxuICAgICAgICAgICAgdmFyIGNvbnN0cnVjdG9yID0gcHJvdG90eXBlUHJvdG8uY29uc3RydWN0b3I7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnN0cnVjdG9yICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBzb21lIGtpbmQgb2Ygc2VsZi1yZWZlcmVuY2UsIHRoZW4gd2UgY2Fubm90IGRldGVybWluZSB0aGUgaGVyaXRhZ2UuXG4gICAgICAgICAgICBpZiAoY29uc3RydWN0b3IgPT09IE8pXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3RvO1xuICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIHByZXR0eSBnb29kIGd1ZXNzIGF0IHRoZSBoZXJpdGFnZS5cbiAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBHbG9iYWwgbWV0YWRhdGEgcmVnaXN0cnlcbiAgICAgICAgLy8gLSBBbGxvd3MgYGltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcImAgYW5kIGBpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhL25vLWNvbmZsaWN0XCJgIHRvIGludGVyb3BlcmF0ZS5cbiAgICAgICAgLy8gLSBVc2VzIGlzb2xhdGVkIG1ldGFkYXRhIGlmIGBSZWZsZWN0YCBpcyBmcm96ZW4gYmVmb3JlIHRoZSByZWdpc3RyeSBjYW4gYmUgaW5zdGFsbGVkLlxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlcyBhIHJlZ2lzdHJ5IHVzZWQgdG8gYWxsb3cgbXVsdGlwbGUgYHJlZmxlY3QtbWV0YWRhdGFgIHByb3ZpZGVycy5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIENyZWF0ZU1ldGFkYXRhUmVnaXN0cnkoKSB7XG4gICAgICAgICAgICB2YXIgZmFsbGJhY2s7XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHJlZ2lzdHJ5U3ltYm9sKSAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiByb290LlJlZmxlY3QgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgICAgICAgICAgICAhKHJlZ2lzdHJ5U3ltYm9sIGluIHJvb3QuUmVmbGVjdCkgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2Ygcm9vdC5SZWZsZWN0LmRlZmluZU1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBpbnRlcm9wZXJhdGUgd2l0aCBvbGRlciB2ZXJzaW9uIG9mIGByZWZsZWN0LW1ldGFkYXRhYCB0aGF0IGRpZCBub3Qgc3VwcG9ydCBhIHJlZ2lzdHJ5LlxuICAgICAgICAgICAgICAgIGZhbGxiYWNrID0gQ3JlYXRlRmFsbGJhY2tQcm92aWRlcihyb290LlJlZmxlY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGZpcnN0O1xuICAgICAgICAgICAgdmFyIHNlY29uZDtcbiAgICAgICAgICAgIHZhciByZXN0O1xuICAgICAgICAgICAgdmFyIHRhcmdldFByb3ZpZGVyTWFwID0gbmV3IF9XZWFrTWFwKCk7XG4gICAgICAgICAgICB2YXIgcmVnaXN0cnkgPSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJQcm92aWRlcjogcmVnaXN0ZXJQcm92aWRlcixcbiAgICAgICAgICAgICAgICBnZXRQcm92aWRlcjogZ2V0UHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgc2V0UHJvdmlkZXI6IHNldFByb3ZpZGVyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZWdpc3RyeTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pc0V4dGVuc2libGUocmVnaXN0cnkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBhZGQgcHJvdmlkZXIgdG8gYSBmcm96ZW4gcmVnaXN0cnkuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxsYmFjayA9PT0gcHJvdmlkZXI6IGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIElzVW5kZWZpbmVkKGZpcnN0KTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gcHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBmaXJzdCA9PT0gcHJvdmlkZXI6IGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIElzVW5kZWZpbmVkKHNlY29uZCk6XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQgPSBwcm92aWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIHNlY29uZCA9PT0gcHJvdmlkZXI6IGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0ID0gbmV3IF9TZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3QuYWRkKHByb3ZpZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldFByb3ZpZGVyTm9DYWNoZShPLCBQKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChmaXJzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0LmlzUHJvdmlkZXJGb3IoTywgUCkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoc2Vjb25kKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY29uZC5pc1Byb3ZpZGVyRm9yKE8sIFApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocmVzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlcmF0b3IgPSBHZXRJdGVyYXRvcihyZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IEl0ZXJhdG9yU3RlcChpdGVyYXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBJdGVyYXRvclZhbHVlKG5leHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvdmlkZXIuaXNQcm92aWRlckZvcihPLCBQKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3JDbG9zZShpdGVyYXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChmYWxsYmFjaykgJiYgZmFsbGJhY2suaXNQcm92aWRlckZvcihPLCBQKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRQcm92aWRlcihPLCBQKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3ZpZGVyTWFwID0gdGFyZ2V0UHJvdmlkZXJNYXAuZ2V0KE8pO1xuICAgICAgICAgICAgICAgIHZhciBwcm92aWRlcjtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3ZpZGVyTWFwKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlciA9IHByb3ZpZGVyTWFwLmdldChQKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChwcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcm92aWRlciA9IGdldFByb3ZpZGVyTm9DYWNoZShPLCBQKTtcbiAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHByb3ZpZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQocHJvdmlkZXJNYXApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlck1hcCA9IG5ldyBfTWFwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm92aWRlck1hcC5zZXQoTywgcHJvdmlkZXJNYXApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyTWFwLnNldChQLCBwcm92aWRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwcm92aWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIGhhc1Byb3ZpZGVyKHByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKHByb3ZpZGVyKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaXJzdCA9PT0gcHJvdmlkZXIgfHwgc2Vjb25kID09PSBwcm92aWRlciB8fCAhSXNVbmRlZmluZWQocmVzdCkgJiYgcmVzdC5oYXMocHJvdmlkZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gc2V0UHJvdmlkZXIoTywgUCwgcHJvdmlkZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1Byb3ZpZGVyKHByb3ZpZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRhZGF0YSBwcm92aWRlciBub3QgcmVnaXN0ZXJlZC5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ1Byb3ZpZGVyID0gZ2V0UHJvdmlkZXIoTywgUCk7XG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nUHJvdmlkZXIgIT09IHByb3ZpZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQoZXhpc3RpbmdQcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgcHJvdmlkZXJNYXAgPSB0YXJnZXRQcm92aWRlck1hcC5nZXQoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChwcm92aWRlck1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyTWFwID0gbmV3IF9NYXAoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFByb3ZpZGVyTWFwLnNldChPLCBwcm92aWRlck1hcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJNYXAuc2V0KFAsIHByb3ZpZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgb3IgY3JlYXRlcyB0aGUgc2hhcmVkIHJlZ2lzdHJ5IG9mIG1ldGFkYXRhIHByb3ZpZGVycy5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIEdldE9yQ3JlYXRlTWV0YWRhdGFSZWdpc3RyeSgpIHtcbiAgICAgICAgICAgIHZhciBtZXRhZGF0YVJlZ2lzdHJ5O1xuICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZChyZWdpc3RyeVN5bWJvbCkgJiYgSXNPYmplY3Qocm9vdC5SZWZsZWN0KSAmJiBPYmplY3QuaXNFeHRlbnNpYmxlKHJvb3QuUmVmbGVjdCkpIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YVJlZ2lzdHJ5ID0gcm9vdC5SZWZsZWN0W3JlZ2lzdHJ5U3ltYm9sXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YVJlZ2lzdHJ5KSkge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhUmVnaXN0cnkgPSBDcmVhdGVNZXRhZGF0YVJlZ2lzdHJ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKHJlZ2lzdHJ5U3ltYm9sKSAmJiBJc09iamVjdChyb290LlJlZmxlY3QpICYmIE9iamVjdC5pc0V4dGVuc2libGUocm9vdC5SZWZsZWN0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyb290LlJlZmxlY3QsIHJlZ2lzdHJ5U3ltYm9sLCB7XG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBtZXRhZGF0YVJlZ2lzdHJ5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWV0YWRhdGFSZWdpc3RyeTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBDcmVhdGVNZXRhZGF0YVByb3ZpZGVyKHJlZ2lzdHJ5KSB7XG4gICAgICAgICAgICAvLyBbW01ldGFkYXRhXV0gaW50ZXJuYWwgc2xvdFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnktb2JqZWN0LWludGVybmFsLW1ldGhvZHMtYW5kLWludGVybmFsLXNsb3RzXG4gICAgICAgICAgICB2YXIgbWV0YWRhdGEgPSBuZXcgX1dlYWtNYXAoKTtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IHtcbiAgICAgICAgICAgICAgICBpc1Byb3ZpZGVyRm9yOiBmdW5jdGlvbiAoTywgUCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0TWV0YWRhdGEgPSBtZXRhZGF0YS5nZXQoTyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZCh0YXJnZXRNZXRhZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRNZXRhZGF0YS5oYXMoUCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhOiBPcmRpbmFyeURlZmluZU93bk1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5SGFzT3duTWV0YWRhdGE6IE9yZGluYXJ5SGFzT3duTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgT3JkaW5hcnlHZXRPd25NZXRhZGF0YTogT3JkaW5hcnlHZXRPd25NZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBPcmRpbmFyeU93bk1ldGFkYXRhS2V5czogT3JkaW5hcnlPd25NZXRhZGF0YUtleXMsXG4gICAgICAgICAgICAgICAgT3JkaW5hcnlEZWxldGVNZXRhZGF0YTogT3JkaW5hcnlEZWxldGVNZXRhZGF0YSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBtZXRhZGF0YVJlZ2lzdHJ5LnJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICAgICAgZnVuY3Rpb24gR2V0T3JDcmVhdGVNZXRhZGF0YU1hcChPLCBQLCBDcmVhdGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0TWV0YWRhdGEgPSBtZXRhZGF0YS5nZXQoTyk7XG4gICAgICAgICAgICAgICAgdmFyIGNyZWF0ZWRUYXJnZXRNZXRhZGF0YSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZCh0YXJnZXRNZXRhZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFDcmVhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZXRhZGF0YSA9IG5ldyBfTWFwKCk7XG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnNldChPLCB0YXJnZXRNZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRUYXJnZXRNZXRhZGF0YSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBtZXRhZGF0YU1hcCA9IHRhcmdldE1ldGFkYXRhLmdldChQKTtcbiAgICAgICAgICAgICAgICBpZiAoSXNVbmRlZmluZWQobWV0YWRhdGFNYXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghQ3JlYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFNYXAgPSBuZXcgX01hcCgpO1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZXRhZGF0YS5zZXQoUCwgbWV0YWRhdGFNYXApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZ2lzdHJ5LnNldFByb3ZpZGVyKE8sIFAsIHByb3ZpZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWV0YWRhdGEuZGVsZXRlKFApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNyZWF0ZWRUYXJnZXRNZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRlbGV0ZShPKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIldyb25nIHByb3ZpZGVyIGZvciB0YXJnZXQuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBtZXRhZGF0YU1hcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIDMuMS4yLjEgT3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUClcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5aGFzb3dubWV0YWRhdGFcbiAgICAgICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gVG9Cb29sZWFuKG1ldGFkYXRhTWFwLmhhcyhNZXRhZGF0YUtleSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gMy4xLjQuMSBPcmRpbmFyeUdldE93bk1ldGFkYXRhKE1ldGFkYXRhS2V5LCBPLCBQKVxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9yYnVja3Rvbi5naXRodWIuaW8vcmVmbGVjdC1tZXRhZGF0YS8jb3JkaW5hcnlnZXRvd25tZXRhZGF0YVxuICAgICAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgICAgIHZhciBtZXRhZGF0YU1hcCA9IEdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgLypDcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhTWFwKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWV0YWRhdGFNYXAuZ2V0KE1ldGFkYXRhS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIDMuMS41LjEgT3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSwgTywgUClcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5ZGVmaW5lb3dubWV0YWRhdGFcbiAgICAgICAgICAgIGZ1bmN0aW9uIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE1ldGFkYXRhVmFsdWUsIE8sIFApIHtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGFNYXAuc2V0KE1ldGFkYXRhS2V5LCBNZXRhZGF0YVZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIDMuMS43LjEgT3JkaW5hcnlPd25NZXRhZGF0YUtleXMoTywgUClcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vcmJ1Y2t0b24uZ2l0aHViLmlvL3JlZmxlY3QtbWV0YWRhdGEvI29yZGluYXJ5b3dubWV0YWRhdGFrZXlzXG4gICAgICAgICAgICBmdW5jdGlvbiBPcmRpbmFyeU93bk1ldGFkYXRhS2V5cyhPLCBQKSB7XG4gICAgICAgICAgICAgICAgdmFyIGtleXMgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFNYXAgPSBHZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIC8qQ3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChJc1VuZGVmaW5lZChtZXRhZGF0YU1hcCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlzO1xuICAgICAgICAgICAgICAgIHZhciBrZXlzT2JqID0gbWV0YWRhdGFNYXAua2V5cygpO1xuICAgICAgICAgICAgICAgIHZhciBpdGVyYXRvciA9IEdldEl0ZXJhdG9yKGtleXNPYmopO1xuICAgICAgICAgICAgICAgIHZhciBrID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IEl0ZXJhdG9yU3RlcChpdGVyYXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5cy5sZW5ndGggPSBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHRWYWx1ZSA9IEl0ZXJhdG9yVmFsdWUobmV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzW2tdID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBrKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gT3JkaW5hcnlEZWxldGVNZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCkge1xuICAgICAgICAgICAgICAgIHZhciBtZXRhZGF0YU1hcCA9IEdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgLypDcmVhdGUqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhTWFwKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghbWV0YWRhdGFNYXAuZGVsZXRlKE1ldGFkYXRhS2V5KSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YU1hcC5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRNZXRhZGF0YSA9IG1ldGFkYXRhLmdldChPKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFJc1VuZGVmaW5lZCh0YXJnZXRNZXRhZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldE1ldGFkYXRhLmRlbGV0ZShQKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRNZXRhZGF0YS5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZGVsZXRlKHRhcmdldE1ldGFkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBDcmVhdGVGYWxsYmFja1Byb3ZpZGVyKHJlZmxlY3QpIHtcbiAgICAgICAgICAgIHZhciBkZWZpbmVNZXRhZGF0YSA9IHJlZmxlY3QuZGVmaW5lTWV0YWRhdGEsIGhhc093bk1ldGFkYXRhID0gcmVmbGVjdC5oYXNPd25NZXRhZGF0YSwgZ2V0T3duTWV0YWRhdGEgPSByZWZsZWN0LmdldE93bk1ldGFkYXRhLCBnZXRPd25NZXRhZGF0YUtleXMgPSByZWZsZWN0LmdldE93bk1ldGFkYXRhS2V5cywgZGVsZXRlTWV0YWRhdGEgPSByZWZsZWN0LmRlbGV0ZU1ldGFkYXRhO1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhT3duZXIgPSBuZXcgX1dlYWtNYXAoKTtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IHtcbiAgICAgICAgICAgICAgICBpc1Byb3ZpZGVyRm9yOiBmdW5jdGlvbiAoTywgUCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWV0YWRhdGFQcm9wZXJ0eVNldCA9IG1ldGFkYXRhT3duZXIuZ2V0KE8pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUlzVW5kZWZpbmVkKG1ldGFkYXRhUHJvcGVydHlTZXQpICYmIG1ldGFkYXRhUHJvcGVydHlTZXQuaGFzKFApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3duTWV0YWRhdGFLZXlzKE8sIFApLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKElzVW5kZWZpbmVkKG1ldGFkYXRhUHJvcGVydHlTZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFQcm9wZXJ0eVNldCA9IG5ldyBfU2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGFPd25lci5zZXQoTywgbWV0YWRhdGFQcm9wZXJ0eVNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVByb3BlcnR5U2V0LmFkZChQKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGE6IGRlZmluZU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5SGFzT3duTWV0YWRhdGE6IGhhc093bk1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5R2V0T3duTWV0YWRhdGE6IGdldE93bk1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIE9yZGluYXJ5T3duTWV0YWRhdGFLZXlzOiBnZXRPd25NZXRhZGF0YUtleXMsXG4gICAgICAgICAgICAgICAgT3JkaW5hcnlEZWxldGVNZXRhZGF0YTogZGVsZXRlTWV0YWRhdGEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHByb3ZpZGVyO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBtZXRhZGF0YSBwcm92aWRlciBmb3IgYW4gb2JqZWN0LiBJZiB0aGUgb2JqZWN0IGhhcyBubyBtZXRhZGF0YSBwcm92aWRlciBhbmQgdGhpcyBpcyBmb3IgYSBjcmVhdGUgb3BlcmF0aW9uLFxuICAgICAgICAgKiB0aGVuIHRoaXMgbW9kdWxlJ3MgbWV0YWRhdGEgcHJvdmlkZXIgaXMgYXNzaWduZWQgdG8gdGhlIG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIEdldE1ldGFkYXRhUHJvdmlkZXIoTywgUCwgQ3JlYXRlKSB7XG4gICAgICAgICAgICB2YXIgcmVnaXN0ZXJlZFByb3ZpZGVyID0gbWV0YWRhdGFSZWdpc3RyeS5nZXRQcm92aWRlcihPLCBQKTtcbiAgICAgICAgICAgIGlmICghSXNVbmRlZmluZWQocmVnaXN0ZXJlZFByb3ZpZGVyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWdpc3RlcmVkUHJvdmlkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoQ3JlYXRlKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1ldGFkYXRhUmVnaXN0cnkuc2V0UHJvdmlkZXIoTywgUCwgbWV0YWRhdGFQcm92aWRlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhUHJvdmlkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIklsbGVnYWwgc3RhdGUuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBuYWl2ZSBNYXAgc2hpbVxuICAgICAgICBmdW5jdGlvbiBDcmVhdGVNYXBQb2x5ZmlsbCgpIHtcbiAgICAgICAgICAgIHZhciBjYWNoZVNlbnRpbmVsID0ge307XG4gICAgICAgICAgICB2YXIgYXJyYXlTZW50aW5lbCA9IFtdO1xuICAgICAgICAgICAgdmFyIE1hcEl0ZXJhdG9yID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIE1hcEl0ZXJhdG9yKGtleXMsIHZhbHVlcywgc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzID0ga2V5cztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gdmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBNYXBJdGVyYXRvci5wcm90b3R5cGVbXCJAQGl0ZXJhdG9yXCJdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcbiAgICAgICAgICAgICAgICBNYXBJdGVyYXRvci5wcm90b3R5cGVbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcbiAgICAgICAgICAgICAgICBNYXBJdGVyYXRvci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5faW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5fa2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9zZWxlY3Rvcih0aGlzLl9rZXlzW2luZGV4XSwgdGhpcy5fdmFsdWVzW2luZGV4XSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggKyAxID49IHRoaXMuX2tleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBhcnJheVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXgrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiByZXN1bHQsIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlLnRocm93ID0gZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IGFycmF5U2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBhcnJheVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgTWFwSXRlcmF0b3IucHJvdG90eXBlLnJldHVybiA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5kZXggPSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMgPSBhcnJheVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gYXJyYXlTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogdmFsdWUsIGRvbmU6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXBJdGVyYXRvcjtcbiAgICAgICAgICAgIH0oKSk7XG4gICAgICAgICAgICB2YXIgTWFwID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIE1hcCgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVLZXkgPSBjYWNoZVNlbnRpbmVsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gLTI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNYXAucHJvdG90eXBlLCBcInNpemVcIiwge1xuICAgICAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX2tleXMubGVuZ3RoOyB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuIHRoaXMuX2ZpbmQoa2V5LCAvKmluc2VydCovIGZhbHNlKSA+PSAwOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9maW5kKGtleSwgLyppbnNlcnQqLyBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCA+PSAwID8gdGhpcy5fdmFsdWVzW2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZChrZXksIC8qaW5zZXJ0Ki8gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlc1tpbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmRlbGV0ZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZChrZXksIC8qaW5zZXJ0Ki8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNpemUgPSB0aGlzLl9rZXlzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSBpbmRleCArIDE7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzW2kgLSAxXSA9IHRoaXMuX2tleXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzW2kgLSAxXSA9IHRoaXMuX3ZhbHVlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMubGVuZ3RoLS07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXMubGVuZ3RoLS07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoU2FtZVZhbHVlWmVybyhrZXksIHRoaXMuX2NhY2hlS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlS2V5ID0gY2FjaGVTZW50aW5lbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gLTI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUtleSA9IGNhY2hlU2VudGluZWw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlSW5kZXggPSAtMjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBNYXBJdGVyYXRvcih0aGlzLl9rZXlzLCB0aGlzLl92YWx1ZXMsIGdldEtleSk7IH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS52YWx1ZXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgTWFwSXRlcmF0b3IodGhpcy5fa2V5cywgdGhpcy5fdmFsdWVzLCBnZXRWYWx1ZSk7IH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZS5lbnRyaWVzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IE1hcEl0ZXJhdG9yKHRoaXMuX2tleXMsIHRoaXMuX3ZhbHVlcywgZ2V0RW50cnkpOyB9O1xuICAgICAgICAgICAgICAgIE1hcC5wcm90b3R5cGVbXCJAQGl0ZXJhdG9yXCJdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzKCk7IH07XG4gICAgICAgICAgICAgICAgTWFwLnByb3RvdHlwZVtpdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmVudHJpZXMoKTsgfTtcbiAgICAgICAgICAgICAgICBNYXAucHJvdG90eXBlLl9maW5kID0gZnVuY3Rpb24gKGtleSwgaW5zZXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghU2FtZVZhbHVlWmVybyh0aGlzLl9jYWNoZUtleSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9rZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNhbWVWYWx1ZVplcm8odGhpcy5fa2V5c1tpXSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jYWNoZUluZGV4IDwgMCAmJiBpbnNlcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlSW5kZXggPSB0aGlzLl9rZXlzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleXMucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVzLnB1c2godW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FjaGVJbmRleDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXA7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICAgICAgcmV0dXJuIE1hcDtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldEtleShrZXksIF8pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VmFsdWUoXywgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBnZXRFbnRyeShrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtrZXksIHZhbHVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBuYWl2ZSBTZXQgc2hpbVxuICAgICAgICBmdW5jdGlvbiBDcmVhdGVTZXRQb2x5ZmlsbCgpIHtcbiAgICAgICAgICAgIHZhciBTZXQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gU2V0KCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAgPSBuZXcgX01hcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2V0LnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9tYXAuc2l6ZTsgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIHRoaXMuX21hcC5oYXModmFsdWUpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHZhbHVlKSB7IHJldHVybiB0aGlzLl9tYXAuc2V0KHZhbHVlLCB2YWx1ZSksIHRoaXM7IH07XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIHRoaXMuX21hcC5kZWxldGUodmFsdWUpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7IHRoaXMuX21hcC5jbGVhcigpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX21hcC5rZXlzKCk7IH07XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZS52YWx1ZXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9tYXAua2V5cygpOyB9O1xuICAgICAgICAgICAgICAgIFNldC5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX21hcC5lbnRyaWVzKCk7IH07XG4gICAgICAgICAgICAgICAgU2V0LnByb3RvdHlwZVtcIkBAaXRlcmF0b3JcIl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLmtleXMoKTsgfTtcbiAgICAgICAgICAgICAgICBTZXQucHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMua2V5cygpOyB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBTZXQ7XG4gICAgICAgICAgICB9KCkpO1xuICAgICAgICAgICAgcmV0dXJuIFNldDtcbiAgICAgICAgfVxuICAgICAgICAvLyBuYWl2ZSBXZWFrTWFwIHNoaW1cbiAgICAgICAgZnVuY3Rpb24gQ3JlYXRlV2Vha01hcFBvbHlmaWxsKCkge1xuICAgICAgICAgICAgdmFyIFVVSURfU0laRSA9IDE2O1xuICAgICAgICAgICAgdmFyIGtleXMgPSBIYXNoTWFwLmNyZWF0ZSgpO1xuICAgICAgICAgICAgdmFyIHJvb3RLZXkgPSBDcmVhdGVVbmlxdWVLZXkoKTtcbiAgICAgICAgICAgIHJldHVybiAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gV2Vha01hcCgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fa2V5ID0gQ3JlYXRlVW5pcXVlS2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFdlYWtNYXAucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gR2V0T3JDcmVhdGVXZWFrTWFwVGFibGUodGFyZ2V0LCAvKmNyZWF0ZSovIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlICE9PSB1bmRlZmluZWQgPyBIYXNoTWFwLmhhcyh0YWJsZSwgdGhpcy5fa2V5KSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgV2Vha01hcC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFibGUgPSBHZXRPckNyZWF0ZVdlYWtNYXBUYWJsZSh0YXJnZXQsIC8qY3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUgIT09IHVuZGVmaW5lZCA/IEhhc2hNYXAuZ2V0KHRhYmxlLCB0aGlzLl9rZXkpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgV2Vha01hcC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKHRhcmdldCwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gR2V0T3JDcmVhdGVXZWFrTWFwVGFibGUodGFyZ2V0LCAvKmNyZWF0ZSovIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0YWJsZVt0aGlzLl9rZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgV2Vha01hcC5wcm90b3R5cGUuZGVsZXRlID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFibGUgPSBHZXRPckNyZWF0ZVdlYWtNYXBUYWJsZSh0YXJnZXQsIC8qY3JlYXRlKi8gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGUgIT09IHVuZGVmaW5lZCA/IGRlbGV0ZSB0YWJsZVt0aGlzLl9rZXldIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBXZWFrTWFwLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogbm90IGEgcmVhbCBjbGVhciwganVzdCBtYWtlcyB0aGUgcHJldmlvdXMgZGF0YSB1bnJlYWNoYWJsZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXkgPSBDcmVhdGVVbmlxdWVLZXkoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBXZWFrTWFwO1xuICAgICAgICAgICAgfSgpKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIENyZWF0ZVVuaXF1ZUtleSgpIHtcbiAgICAgICAgICAgICAgICB2YXIga2V5O1xuICAgICAgICAgICAgICAgIGRvXG4gICAgICAgICAgICAgICAgICAgIGtleSA9IFwiQEBXZWFrTWFwQEBcIiArIENyZWF0ZVVVSUQoKTtcbiAgICAgICAgICAgICAgICB3aGlsZSAoSGFzaE1hcC5oYXMoa2V5cywga2V5KSk7XG4gICAgICAgICAgICAgICAga2V5c1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gR2V0T3JDcmVhdGVXZWFrTWFwVGFibGUodGFyZ2V0LCBjcmVhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc093bi5jYWxsKHRhcmdldCwgcm9vdEtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjcmVhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCByb290S2V5LCB7IHZhbHVlOiBIYXNoTWFwLmNyZWF0ZSgpIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3Jvb3RLZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gRmlsbFJhbmRvbUJ5dGVzKGJ1ZmZlciwgc2l6ZSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgKytpKVxuICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0gPSBNYXRoLnJhbmRvbSgpICogMHhmZiB8IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIEdlblJhbmRvbUJ5dGVzKHNpemUpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjcnlwdG8gIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBtc0NyeXB0byAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGxSYW5kb21CeXRlcyhhcnJheSwgc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gRmlsbFJhbmRvbUJ5dGVzKG5ldyBBcnJheShzaXplKSwgc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBDcmVhdGVVVUlEKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRhID0gR2VuUmFuZG9tQnl0ZXMoVVVJRF9TSVpFKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIHJhbmRvbSAtIFJGQyA0MTIyIMKnIDQuNFxuICAgICAgICAgICAgICAgIGRhdGFbNl0gPSBkYXRhWzZdICYgMHg0ZiB8IDB4NDA7XG4gICAgICAgICAgICAgICAgZGF0YVs4XSA9IGRhdGFbOF0gJiAweGJmIHwgMHg4MDtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBvZmZzZXQgPSAwOyBvZmZzZXQgPCBVVUlEX1NJWkU7ICsrb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBieXRlID0gZGF0YVtvZmZzZXRdO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09PSA0IHx8IG9mZnNldCA9PT0gNiB8fCBvZmZzZXQgPT09IDgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCItXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChieXRlIDwgMTYpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gXCIwXCI7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBieXRlLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVzZXMgYSBoZXVyaXN0aWMgdXNlZCBieSB2OCBhbmQgY2hha3JhIHRvIGZvcmNlIGFuIG9iamVjdCBpbnRvIGRpY3Rpb25hcnkgbW9kZS5cbiAgICAgICAgZnVuY3Rpb24gTWFrZURpY3Rpb25hcnkob2JqKSB7XG4gICAgICAgICAgICBvYmouX18gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBkZWxldGUgb2JqLl9fO1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuICAgIH0pO1xufSkoUmVmbGVjdCB8fCAoUmVmbGVjdCA9IHt9KSk7XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGw9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksbj1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLHA9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLHE9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLHI9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLHQ9U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpLHU9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksdj1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksdz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIikseD1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSx5PVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLHo9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEEoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPXomJmFbel18fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1cbnZhciBCPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxDPU9iamVjdC5hc3NpZ24sRD17fTtmdW5jdGlvbiBFKGEsYixlKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUQ7dGhpcy51cGRhdGVyPWV8fEJ9RS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTtcbkUucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGEsYil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmbnVsbCE9YSl0aHJvdyBFcnJvcihcInNldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLlwiKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsYSxiLFwic2V0U3RhdGVcIil9O0UucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGEpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxhLFwiZm9yY2VVcGRhdGVcIil9O2Z1bmN0aW9uIEYoKXt9Ri5wcm90b3R5cGU9RS5wcm90b3R5cGU7ZnVuY3Rpb24gRyhhLGIsZSl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1EO3RoaXMudXBkYXRlcj1lfHxCfXZhciBIPUcucHJvdG90eXBlPW5ldyBGO1xuSC5jb25zdHJ1Y3Rvcj1HO0MoSCxFLnByb3RvdHlwZSk7SC5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgST1BcnJheS5pc0FycmF5LEo9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxLPXtjdXJyZW50Om51bGx9LEw9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIE0oYSxiLGUpe3ZhciBkLGM9e30saz1udWxsLGg9bnVsbDtpZihudWxsIT1iKWZvcihkIGluIHZvaWQgMCE9PWIucmVmJiYoaD1iLnJlZiksdm9pZCAwIT09Yi5rZXkmJihrPVwiXCIrYi5rZXkpLGIpSi5jYWxsKGIsZCkmJiFMLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1iW2RdKTt2YXIgZz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWcpYy5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxnKXtmb3IodmFyIGY9QXJyYXkoZyksbT0wO208ZzttKyspZlttXT1hcmd1bWVudHNbbSsyXTtjLmNoaWxkcmVuPWZ9aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKGQgaW4gZz1hLmRlZmF1bHRQcm9wcyxnKXZvaWQgMD09PWNbZF0mJihjW2RdPWdbZF0pO3JldHVybnskJHR5cGVvZjpsLHR5cGU6YSxrZXk6ayxyZWY6aCxwcm9wczpjLF9vd25lcjpLLmN1cnJlbnR9fVxuZnVuY3Rpb24gTihhLGIpe3JldHVybnskJHR5cGVvZjpsLHR5cGU6YS50eXBlLGtleTpiLHJlZjphLnJlZixwcm9wczphLnByb3BzLF9vd25lcjphLl9vd25lcn19ZnVuY3Rpb24gTyhhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09bH1mdW5jdGlvbiBlc2NhcGUoYSl7dmFyIGI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9O3JldHVyblwiJFwiK2EucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfSl9dmFyIFA9L1xcLysvZztmdW5jdGlvbiBRKGEsYil7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmbnVsbCE9YS5rZXk/ZXNjYXBlKFwiXCIrYS5rZXkpOmIudG9TdHJpbmcoMzYpfVxuZnVuY3Rpb24gUihhLGIsZSxkLGMpe3ZhciBrPXR5cGVvZiBhO2lmKFwidW5kZWZpbmVkXCI9PT1rfHxcImJvb2xlYW5cIj09PWspYT1udWxsO3ZhciBoPSExO2lmKG51bGw9PT1hKWg9ITA7ZWxzZSBzd2l0Y2goayl7Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJudW1iZXJcIjpoPSEwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBsOmNhc2UgbjpoPSEwfX1pZihoKXJldHVybiBoPWEsYz1jKGgpLGE9XCJcIj09PWQ/XCIuXCIrUShoLDApOmQsSShjKT8oZT1cIlwiLG51bGwhPWEmJihlPWEucmVwbGFjZShQLFwiJCYvXCIpK1wiL1wiKSxSKGMsYixlLFwiXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KSk6bnVsbCE9YyYmKE8oYykmJihjPU4oYyxlKyghYy5rZXl8fGgmJmgua2V5PT09Yy5rZXk/XCJcIjooXCJcIitjLmtleSkucmVwbGFjZShQLFwiJCYvXCIpK1wiL1wiKSthKSksYi5wdXNoKGMpKSwxO2g9MDtkPVwiXCI9PT1kP1wiLlwiOmQrXCI6XCI7aWYoSShhKSlmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyl7az1cbmFbZ107dmFyIGY9ZCtRKGssZyk7aCs9UihrLGIsZSxmLGMpfWVsc2UgaWYoZj1BKGEpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmKWZvcihhPWYuY2FsbChhKSxnPTA7IShrPWEubmV4dCgpKS5kb25lOylrPWsudmFsdWUsZj1kK1EoayxnKyspLGgrPVIoayxiLGUsZixjKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1rKXRocm93IGI9U3RyaW5nKGEpLEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PWI/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhhKS5qb2luKFwiLCBcIikrXCJ9XCI6YikrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpO3JldHVybiBofVxuZnVuY3Rpb24gUyhhLGIsZSl7aWYobnVsbD09YSlyZXR1cm4gYTt2YXIgZD1bXSxjPTA7UihhLGQsXCJcIixcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBiLmNhbGwoZSxhLGMrKyl9KTtyZXR1cm4gZH1mdW5jdGlvbiBUKGEpe2lmKC0xPT09YS5fc3RhdHVzKXt2YXIgYj1hLl9yZXN1bHQ7Yj1iKCk7Yi50aGVuKGZ1bmN0aW9uKGIpe2lmKDA9PT1hLl9zdGF0dXN8fC0xPT09YS5fc3RhdHVzKWEuX3N0YXR1cz0xLGEuX3Jlc3VsdD1ifSxmdW5jdGlvbihiKXtpZigwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cylhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yn0pOy0xPT09YS5fc3RhdHVzJiYoYS5fc3RhdHVzPTAsYS5fcmVzdWx0PWIpfWlmKDE9PT1hLl9zdGF0dXMpcmV0dXJuIGEuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGEuX3Jlc3VsdDt9XG52YXIgVT17Y3VycmVudDpudWxsfSxWPXt0cmFuc2l0aW9uOm51bGx9LFc9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6VSxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzpWLFJlYWN0Q3VycmVudE93bmVyOkt9O2Z1bmN0aW9uIFgoKXt0aHJvdyBFcnJvcihcImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuXCIpO31cbmV4cG9ydHMuQ2hpbGRyZW49e21hcDpTLGZvckVhY2g6ZnVuY3Rpb24oYSxiLGUpe1MoYSxmdW5jdGlvbigpe2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlKX0sY291bnQ6ZnVuY3Rpb24oYSl7dmFyIGI9MDtTKGEsZnVuY3Rpb24oKXtiKyt9KTtyZXR1cm4gYn0sdG9BcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gUyhhLGZ1bmN0aW9uKGEpe3JldHVybiBhfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGEpe2lmKCFPKGEpKXRocm93IEVycm9yKFwiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuXCIpO3JldHVybiBhfX07ZXhwb3J0cy5Db21wb25lbnQ9RTtleHBvcnRzLkZyYWdtZW50PXA7ZXhwb3J0cy5Qcm9maWxlcj1yO2V4cG9ydHMuUHVyZUNvbXBvbmVudD1HO2V4cG9ydHMuU3RyaWN0TW9kZT1xO2V4cG9ydHMuU3VzcGVuc2U9dztcbmV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9VztleHBvcnRzLmFjdD1YO1xuZXhwb3J0cy5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oYSxiLGUpe2lmKG51bGw9PT1hfHx2b2lkIDA9PT1hKXRocm93IEVycm9yKFwiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIrYStcIi5cIik7dmFyIGQ9Qyh7fSxhLnByb3BzKSxjPWEua2V5LGs9YS5yZWYsaD1hLl9vd25lcjtpZihudWxsIT1iKXt2b2lkIDAhPT1iLnJlZiYmKGs9Yi5yZWYsaD1LLmN1cnJlbnQpO3ZvaWQgMCE9PWIua2V5JiYoYz1cIlwiK2Iua2V5KTtpZihhLnR5cGUmJmEudHlwZS5kZWZhdWx0UHJvcHMpdmFyIGc9YS50eXBlLmRlZmF1bHRQcm9wcztmb3IoZiBpbiBiKUouY2FsbChiLGYpJiYhTC5oYXNPd25Qcm9wZXJ0eShmKSYmKGRbZl09dm9pZCAwPT09YltmXSYmdm9pZCAwIT09Zz9nW2ZdOmJbZl0pfXZhciBmPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09ZilkLmNoaWxkcmVuPWU7ZWxzZSBpZigxPGYpe2c9QXJyYXkoZik7XG5mb3IodmFyIG09MDttPGY7bSsrKWdbbV09YXJndW1lbnRzW20rMl07ZC5jaGlsZHJlbj1nfXJldHVybnskJHR5cGVvZjpsLHR5cGU6YS50eXBlLGtleTpjLHJlZjprLHByb3BzOmQsX293bmVyOmh9fTtleHBvcnRzLmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oYSl7YT17JCR0eXBlb2Y6dSxfY3VycmVudFZhbHVlOmEsX2N1cnJlbnRWYWx1ZTI6YSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2RlZmF1bHRWYWx1ZTpudWxsLF9nbG9iYWxOYW1lOm51bGx9O2EuUHJvdmlkZXI9eyQkdHlwZW9mOnQsX2NvbnRleHQ6YX07cmV0dXJuIGEuQ29uc3VtZXI9YX07ZXhwb3J0cy5jcmVhdGVFbGVtZW50PU07ZXhwb3J0cy5jcmVhdGVGYWN0b3J5PWZ1bmN0aW9uKGEpe3ZhciBiPU0uYmluZChudWxsLGEpO2IudHlwZT1hO3JldHVybiBifTtleHBvcnRzLmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fTtcbmV4cG9ydHMuZm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6dixyZW5kZXI6YX19O2V4cG9ydHMuaXNWYWxpZEVsZW1lbnQ9TztleHBvcnRzLmxhenk9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnksX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDphfSxfaW5pdDpUfX07ZXhwb3J0cy5tZW1vPWZ1bmN0aW9uKGEsYil7cmV0dXJueyQkdHlwZW9mOngsdHlwZTphLGNvbXBhcmU6dm9pZCAwPT09Yj9udWxsOmJ9fTtleHBvcnRzLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihhKXt2YXIgYj1WLnRyYW5zaXRpb247Vi50cmFuc2l0aW9uPXt9O3RyeXthKCl9ZmluYWxseXtWLnRyYW5zaXRpb249Yn19O2V4cG9ydHMudW5zdGFibGVfYWN0PVg7ZXhwb3J0cy51c2VDYWxsYmFjaz1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlQ2FsbGJhY2soYSxiKX07ZXhwb3J0cy51c2VDb250ZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlQ29udGV4dChhKX07XG5leHBvcnRzLnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9O2V4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZURlZmVycmVkVmFsdWUoYSl9O2V4cG9ydHMudXNlRWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VFZmZlY3QoYSxiKX07ZXhwb3J0cy51c2VJZD1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlSWQoKX07ZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGEsYixlKXtyZXR1cm4gVS5jdXJyZW50LnVzZUltcGVyYXRpdmVIYW5kbGUoYSxiLGUpfTtleHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlSW5zZXJ0aW9uRWZmZWN0KGEsYil9O2V4cG9ydHMudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFUuY3VycmVudC51c2VMYXlvdXRFZmZlY3QoYSxiKX07XG5leHBvcnRzLnVzZU1lbW89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZU1lbW8oYSxiKX07ZXhwb3J0cy51c2VSZWR1Y2VyPWZ1bmN0aW9uKGEsYixlKXtyZXR1cm4gVS5jdXJyZW50LnVzZVJlZHVjZXIoYSxiLGUpfTtleHBvcnRzLnVzZVJlZj1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZVJlZihhKX07ZXhwb3J0cy51c2VTdGF0ZT1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZVN0YXRlKGEpfTtleHBvcnRzLnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGEsYixlKXtyZXR1cm4gVS5jdXJyZW50LnVzZVN5bmNFeHRlcm5hbFN0b3JlKGEsYixlKX07ZXhwb3J0cy51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIFUuY3VycmVudC51c2VUcmFuc2l0aW9uKCl9O2V4cG9ydHMudmVyc2lvbj1cIjE4LjMuMVwiO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGY9cmVxdWlyZShcInJlYWN0XCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksbD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LG49Zi5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lcixwPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07XG5mdW5jdGlvbiBxKGMsYSxnKXt2YXIgYixkPXt9LGU9bnVsbCxoPW51bGw7dm9pZCAwIT09ZyYmKGU9XCJcIitnKTt2b2lkIDAhPT1hLmtleSYmKGU9XCJcIithLmtleSk7dm9pZCAwIT09YS5yZWYmJihoPWEucmVmKTtmb3IoYiBpbiBhKW0uY2FsbChhLGIpJiYhcC5oYXNPd25Qcm9wZXJ0eShiKSYmKGRbYl09YVtiXSk7aWYoYyYmYy5kZWZhdWx0UHJvcHMpZm9yKGIgaW4gYT1jLmRlZmF1bHRQcm9wcyxhKXZvaWQgMD09PWRbYl0mJihkW2JdPWFbYl0pO3JldHVybnskJHR5cGVvZjprLHR5cGU6YyxrZXk6ZSxyZWY6aCxwcm9wczpkLF9vd25lcjpuLmN1cnJlbnR9fWV4cG9ydHMuRnJhZ21lbnQ9bDtleHBvcnRzLmpzeD1xO2V4cG9ydHMuanN4cz1xO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGJpbmQoZm4sIHRoaXNBcmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHdyYXAoKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXNBcmcsIGFyZ3VtZW50cyk7XG4gIH07XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBiaW5kIGZyb20gJy4vaGVscGVycy9iaW5kLmpzJztcblxuLy8gdXRpbHMgaXMgYSBsaWJyYXJ5IG9mIGdlbmVyaWMgaGVscGVyIGZ1bmN0aW9ucyBub24tc3BlY2lmaWMgdG8gYXhpb3NcblxuY29uc3Qge3RvU3RyaW5nfSA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCB7Z2V0UHJvdG90eXBlT2Z9ID0gT2JqZWN0O1xuXG5jb25zdCBraW5kT2YgPSAoY2FjaGUgPT4gdGhpbmcgPT4ge1xuICAgIGNvbnN0IHN0ciA9IHRvU3RyaW5nLmNhbGwodGhpbmcpO1xuICAgIHJldHVybiBjYWNoZVtzdHJdIHx8IChjYWNoZVtzdHJdID0gc3RyLnNsaWNlKDgsIC0xKS50b0xvd2VyQ2FzZSgpKTtcbn0pKE9iamVjdC5jcmVhdGUobnVsbCkpO1xuXG5jb25zdCBraW5kT2ZUZXN0ID0gKHR5cGUpID0+IHtcbiAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuICh0aGluZykgPT4ga2luZE9mKHRoaW5nKSA9PT0gdHlwZVxufVxuXG5jb25zdCB0eXBlT2ZUZXN0ID0gdHlwZSA9PiB0aGluZyA9PiB0eXBlb2YgdGhpbmcgPT09IHR5cGU7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYW4gQXJyYXlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXksIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCB7aXNBcnJheX0gPSBBcnJheTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB1bmRlZmluZWQsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1VuZGVmaW5lZCA9IHR5cGVPZlRlc3QoJ3VuZGVmaW5lZCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQnVmZmVyXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJ1ZmZlciwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmICFpc1VuZGVmaW5lZCh2YWwpICYmIHZhbC5jb25zdHJ1Y3RvciAhPT0gbnVsbCAmJiAhaXNVbmRlZmluZWQodmFsLmNvbnN0cnVjdG9yKVxuICAgICYmIGlzRnVuY3Rpb24odmFsLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSAmJiB2YWwuY29uc3RydWN0b3IuaXNCdWZmZXIodmFsKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYW4gQXJyYXlCdWZmZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0FycmF5QnVmZmVyID0ga2luZE9mVGVzdCgnQXJyYXlCdWZmZXInKTtcblxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgdmlldyBvbiBhbiBBcnJheUJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSB2aWV3IG9uIGFuIEFycmF5QnVmZmVyLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUJ1ZmZlclZpZXcodmFsKSB7XG4gIGxldCByZXN1bHQ7XG4gIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJykgJiYgKEFycmF5QnVmZmVyLmlzVmlldykpIHtcbiAgICByZXN1bHQgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSAodmFsKSAmJiAodmFsLmJ1ZmZlcikgJiYgKGlzQXJyYXlCdWZmZXIodmFsLmJ1ZmZlcikpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBTdHJpbmdcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgU3RyaW5nLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNTdHJpbmcgPSB0eXBlT2ZUZXN0KCdzdHJpbmcnKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRnVuY3Rpb24sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Z1bmN0aW9uID0gdHlwZU9mVGVzdCgnZnVuY3Rpb24nKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIE51bWJlclxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBOdW1iZXIsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc051bWJlciA9IHR5cGVPZlRlc3QoJ251bWJlcicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGFuIE9iamVjdFxuICpcbiAqIEBwYXJhbSB7Kn0gdGhpbmcgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhbiBPYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc09iamVjdCA9ICh0aGluZykgPT4gdGhpbmcgIT09IG51bGwgJiYgdHlwZW9mIHRoaW5nID09PSAnb2JqZWN0JztcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEJvb2xlYW5cbiAqXG4gKiBAcGFyYW0geyp9IHRoaW5nIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIEJvb2xlYW4sIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc0Jvb2xlYW4gPSB0aGluZyA9PiB0aGluZyA9PT0gdHJ1ZSB8fCB0aGluZyA9PT0gZmFsc2U7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBPYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgcGxhaW4gT2JqZWN0LCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNQbGFpbk9iamVjdCA9ICh2YWwpID0+IHtcbiAgaWYgKGtpbmRPZih2YWwpICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKHZhbCk7XG4gIHJldHVybiAocHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG90eXBlKSA9PT0gbnVsbCkgJiYgIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gdmFsKSAmJiAhKFN5bWJvbC5pdGVyYXRvciBpbiB2YWwpO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRGF0ZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBEYXRlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNEYXRlID0ga2luZE9mVGVzdCgnRGF0ZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZVxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBGaWxlLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGaWxlID0ga2luZE9mVGVzdCgnRmlsZScpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgQmxvYlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdmFsdWUgaXMgYSBCbG9iLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNCbG9iID0ga2luZE9mVGVzdCgnQmxvYicpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgRmlsZUxpc3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgRmlsZSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzRmlsZUxpc3QgPSBraW5kT2ZUZXN0KCdGaWxlTGlzdCcpO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHZhbHVlIGlzIGEgU3RyZWFtXG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFN0cmVhbSwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzU3RyZWFtID0gKHZhbCkgPT4gaXNPYmplY3QodmFsKSAmJiBpc0Z1bmN0aW9uKHZhbC5waXBlKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIEZvcm1EYXRhXG4gKlxuICogQHBhcmFtIHsqfSB0aGluZyBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGFuIEZvcm1EYXRhLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuY29uc3QgaXNGb3JtRGF0YSA9ICh0aGluZykgPT4ge1xuICBsZXQga2luZDtcbiAgcmV0dXJuIHRoaW5nICYmIChcbiAgICAodHlwZW9mIEZvcm1EYXRhID09PSAnZnVuY3Rpb24nICYmIHRoaW5nIGluc3RhbmNlb2YgRm9ybURhdGEpIHx8IChcbiAgICAgIGlzRnVuY3Rpb24odGhpbmcuYXBwZW5kKSAmJiAoXG4gICAgICAgIChraW5kID0ga2luZE9mKHRoaW5nKSkgPT09ICdmb3JtZGF0YScgfHxcbiAgICAgICAgLy8gZGV0ZWN0IGZvcm0tZGF0YSBpbnN0YW5jZVxuICAgICAgICAoa2luZCA9PT0gJ29iamVjdCcgJiYgaXNGdW5jdGlvbih0aGluZy50b1N0cmluZykgJiYgdGhpbmcudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgRm9ybURhdGFdJylcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3RcbiAqXG4gKiBAcGFyYW0geyp9IHZhbCBUaGUgdmFsdWUgdG8gdGVzdFxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZhbHVlIGlzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCwgb3RoZXJ3aXNlIGZhbHNlXG4gKi9cbmNvbnN0IGlzVVJMU2VhcmNoUGFyYW1zID0ga2luZE9mVGVzdCgnVVJMU2VhcmNoUGFyYW1zJyk7XG5cbmNvbnN0IFtpc1JlYWRhYmxlU3RyZWFtLCBpc1JlcXVlc3QsIGlzUmVzcG9uc2UsIGlzSGVhZGVyc10gPSBbJ1JlYWRhYmxlU3RyZWFtJywgJ1JlcXVlc3QnLCAnUmVzcG9uc2UnLCAnSGVhZGVycyddLm1hcChraW5kT2ZUZXN0KTtcblxuLyoqXG4gKiBUcmltIGV4Y2VzcyB3aGl0ZXNwYWNlIG9mZiB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgYSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBTdHJpbmcgdG8gdHJpbVxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBTdHJpbmcgZnJlZWQgb2YgZXhjZXNzIHdoaXRlc3BhY2VcbiAqL1xuY29uc3QgdHJpbSA9IChzdHIpID0+IHN0ci50cmltID9cbiAgc3RyLnRyaW0oKSA6IHN0ci5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywgJycpO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBhbiBBcnJheSBvciBhbiBPYmplY3QgaW52b2tpbmcgYSBmdW5jdGlvbiBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmIGBvYmpgIGlzIGFuIEFycmF5IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHBhc3NpbmdcbiAqIHRoZSB2YWx1ZSwgaW5kZXgsIGFuZCBjb21wbGV0ZSBhcnJheSBmb3IgZWFjaCBpdGVtLlxuICpcbiAqIElmICdvYmonIGlzIGFuIE9iamVjdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBwYXNzaW5nXG4gKiB0aGUgdmFsdWUsIGtleSwgYW5kIGNvbXBsZXRlIG9iamVjdCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdHxBcnJheX0gb2JqIFRoZSBvYmplY3QgdG8gaXRlcmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGNhbGxiYWNrIHRvIGludm9rZSBmb3IgZWFjaCBpdGVtXG4gKlxuICogQHBhcmFtIHtCb29sZWFufSBbYWxsT3duS2V5cyA9IGZhbHNlXVxuICogQHJldHVybnMge2FueX1cbiAqL1xuZnVuY3Rpb24gZm9yRWFjaChvYmosIGZuLCB7YWxsT3duS2V5cyA9IGZhbHNlfSA9IHt9KSB7XG4gIC8vIERvbid0IGJvdGhlciBpZiBubyB2YWx1ZSBwcm92aWRlZFxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGk7XG4gIGxldCBsO1xuXG4gIC8vIEZvcmNlIGFuIGFycmF5IGlmIG5vdCBhbHJlYWR5IHNvbWV0aGluZyBpdGVyYWJsZVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgICBvYmogPSBbb2JqXTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KG9iaikpIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgYXJyYXkgdmFsdWVzXG4gICAgZm9yIChpID0gMCwgbCA9IG9iai5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGZuLmNhbGwobnVsbCwgb2JqW2ldLCBpLCBvYmopO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBJdGVyYXRlIG92ZXIgb2JqZWN0IGtleXNcbiAgICBjb25zdCBrZXlzID0gYWxsT3duS2V5cyA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikgOiBPYmplY3Qua2V5cyhvYmopO1xuICAgIGNvbnN0IGxlbiA9IGtleXMubGVuZ3RoO1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICBmbi5jYWxsKG51bGwsIG9ialtrZXldLCBrZXksIG9iaik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmRLZXkob2JqLCBrZXkpIHtcbiAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBsZXQgaSA9IGtleXMubGVuZ3RoO1xuICBsZXQgX2tleTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBfa2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoa2V5ID09PSBfa2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiBfa2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuY29uc3QgX2dsb2JhbCA9ICgoKSA9PiB7XG4gIC8qZXNsaW50IG5vLXVuZGVmOjAqL1xuICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBnbG9iYWxUaGlzO1xuICByZXR1cm4gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogZ2xvYmFsKVxufSkoKTtcblxuY29uc3QgaXNDb250ZXh0RGVmaW5lZCA9IChjb250ZXh0KSA9PiAhaXNVbmRlZmluZWQoY29udGV4dCkgJiYgY29udGV4dCAhPT0gX2dsb2JhbDtcblxuLyoqXG4gKiBBY2NlcHRzIHZhcmFyZ3MgZXhwZWN0aW5nIGVhY2ggYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0LCB0aGVuXG4gKiBpbW11dGFibHkgbWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIG9mIGVhY2ggb2JqZWN0IGFuZCByZXR1cm5zIHJlc3VsdC5cbiAqXG4gKiBXaGVuIG11bHRpcGxlIG9iamVjdHMgY29udGFpbiB0aGUgc2FtZSBrZXkgdGhlIGxhdGVyIG9iamVjdCBpblxuICogdGhlIGFyZ3VtZW50cyBsaXN0IHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBganNcbiAqIHZhciByZXN1bHQgPSBtZXJnZSh7Zm9vOiAxMjN9LCB7Zm9vOiA0NTZ9KTtcbiAqIGNvbnNvbGUubG9nKHJlc3VsdC5mb28pOyAvLyBvdXRwdXRzIDQ1NlxuICogYGBgXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iajEgT2JqZWN0IHRvIG1lcmdlXG4gKlxuICogQHJldHVybnMge09iamVjdH0gUmVzdWx0IG9mIGFsbCBtZXJnZSBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlKC8qIG9iajEsIG9iajIsIG9iajMsIC4uLiAqLykge1xuICBjb25zdCB7Y2FzZWxlc3N9ID0gaXNDb250ZXh0RGVmaW5lZCh0aGlzKSAmJiB0aGlzIHx8IHt9O1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgY29uc3QgYXNzaWduVmFsdWUgPSAodmFsLCBrZXkpID0+IHtcbiAgICBjb25zdCB0YXJnZXRLZXkgPSBjYXNlbGVzcyAmJiBmaW5kS2V5KHJlc3VsdCwga2V5KSB8fCBrZXk7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QocmVzdWx0W3RhcmdldEtleV0pICYmIGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZShyZXN1bHRbdGFyZ2V0S2V5XSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSBtZXJnZSh7fSwgdmFsKTtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWwuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W3RhcmdldEtleV0gPSB2YWw7XG4gICAgfVxuICB9XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYXJndW1lbnRzW2ldICYmIGZvckVhY2goYXJndW1lbnRzW2ldLCBhc3NpZ25WYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBFeHRlbmRzIG9iamVjdCBhIGJ5IG11dGFibHkgYWRkaW5nIHRvIGl0IHRoZSBwcm9wZXJ0aWVzIG9mIG9iamVjdCBiLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBhIFRoZSBvYmplY3QgdG8gYmUgZXh0ZW5kZWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBiIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb21cbiAqIEBwYXJhbSB7T2JqZWN0fSB0aGlzQXJnIFRoZSBvYmplY3QgdG8gYmluZCBmdW5jdGlvbiB0b1xuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW2FsbE93bktleXNdXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIHZhbHVlIG9mIG9iamVjdCBhXG4gKi9cbmNvbnN0IGV4dGVuZCA9IChhLCBiLCB0aGlzQXJnLCB7YWxsT3duS2V5c309IHt9KSA9PiB7XG4gIGZvckVhY2goYiwgKHZhbCwga2V5KSA9PiB7XG4gICAgaWYgKHRoaXNBcmcgJiYgaXNGdW5jdGlvbih2YWwpKSB7XG4gICAgICBhW2tleV0gPSBiaW5kKHZhbCwgdGhpc0FyZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFba2V5XSA9IHZhbDtcbiAgICB9XG4gIH0sIHthbGxPd25LZXlzfSk7XG4gIHJldHVybiBhO1xufVxuXG4vKipcbiAqIFJlbW92ZSBieXRlIG9yZGVyIG1hcmtlci4gVGhpcyBjYXRjaGVzIEVGIEJCIEJGICh0aGUgVVRGLTggQk9NKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50IHdpdGggQk9NXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gY29udGVudCB2YWx1ZSB3aXRob3V0IEJPTVxuICovXG5jb25zdCBzdHJpcEJPTSA9IChjb250ZW50KSA9PiB7XG4gIGlmIChjb250ZW50LmNoYXJDb2RlQXQoMCkgPT09IDB4RkVGRikge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKipcbiAqIEluaGVyaXQgdGhlIHByb3RvdHlwZSBtZXRob2RzIGZyb20gb25lIGNvbnN0cnVjdG9yIGludG8gYW5vdGhlclxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHN1cGVyQ29uc3RydWN0b3JcbiAqIEBwYXJhbSB7b2JqZWN0fSBbcHJvcHNdXG4gKiBAcGFyYW0ge29iamVjdH0gW2Rlc2NyaXB0b3JzXVxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5jb25zdCBpbmhlcml0cyA9IChjb25zdHJ1Y3Rvciwgc3VwZXJDb25zdHJ1Y3RvciwgcHJvcHMsIGRlc2NyaXB0b3JzKSA9PiB7XG4gIGNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIGRlc2NyaXB0b3JzKTtcbiAgY29uc3RydWN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zdHJ1Y3RvciwgJ3N1cGVyJywge1xuICAgIHZhbHVlOiBzdXBlckNvbnN0cnVjdG9yLnByb3RvdHlwZVxuICB9KTtcbiAgcHJvcHMgJiYgT2JqZWN0LmFzc2lnbihjb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3BzKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIG9iamVjdCB3aXRoIGRlZXAgcHJvdG90eXBlIGNoYWluIHRvIGEgZmxhdCBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2VPYmogc291cmNlIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IFtkZXN0T2JqXVxuICogQHBhcmFtIHtGdW5jdGlvbnxCb29sZWFufSBbZmlsdGVyXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW3Byb3BGaWx0ZXJdXG4gKlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuY29uc3QgdG9GbGF0T2JqZWN0ID0gKHNvdXJjZU9iaiwgZGVzdE9iaiwgZmlsdGVyLCBwcm9wRmlsdGVyKSA9PiB7XG4gIGxldCBwcm9wcztcbiAgbGV0IGk7XG4gIGxldCBwcm9wO1xuICBjb25zdCBtZXJnZWQgPSB7fTtcblxuICBkZXN0T2JqID0gZGVzdE9iaiB8fCB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gIGlmIChzb3VyY2VPYmogPT0gbnVsbCkgcmV0dXJuIGRlc3RPYmo7XG5cbiAgZG8ge1xuICAgIHByb3BzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc291cmNlT2JqKTtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICBwcm9wID0gcHJvcHNbaV07XG4gICAgICBpZiAoKCFwcm9wRmlsdGVyIHx8IHByb3BGaWx0ZXIocHJvcCwgc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgIW1lcmdlZFtwcm9wXSkge1xuICAgICAgICBkZXN0T2JqW3Byb3BdID0gc291cmNlT2JqW3Byb3BdO1xuICAgICAgICBtZXJnZWRbcHJvcF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3VyY2VPYmogPSBmaWx0ZXIgIT09IGZhbHNlICYmIGdldFByb3RvdHlwZU9mKHNvdXJjZU9iaik7XG4gIH0gd2hpbGUgKHNvdXJjZU9iaiAmJiAoIWZpbHRlciB8fCBmaWx0ZXIoc291cmNlT2JqLCBkZXN0T2JqKSkgJiYgc291cmNlT2JqICE9PSBPYmplY3QucHJvdG90eXBlKTtcblxuICByZXR1cm4gZGVzdE9iajtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBjaGFyYWN0ZXJzIG9mIGEgc3BlY2lmaWVkIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hTdHJpbmdcbiAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb249IDBdXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGVuZHNXaXRoID0gKHN0ciwgc2VhcmNoU3RyaW5nLCBwb3NpdGlvbikgPT4ge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgcG9zaXRpb24gPiBzdHIubGVuZ3RoKSB7XG4gICAgcG9zaXRpb24gPSBzdHIubGVuZ3RoO1xuICB9XG4gIHBvc2l0aW9uIC09IHNlYXJjaFN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHN0ci5pbmRleE9mKHNlYXJjaFN0cmluZywgcG9zaXRpb24pO1xuICByZXR1cm4gbGFzdEluZGV4ICE9PSAtMSAmJiBsYXN0SW5kZXggPT09IHBvc2l0aW9uO1xufVxuXG5cbi8qKlxuICogUmV0dXJucyBuZXcgYXJyYXkgZnJvbSBhcnJheSBsaWtlIG9iamVjdCBvciBudWxsIGlmIGZhaWxlZFxuICpcbiAqIEBwYXJhbSB7Kn0gW3RoaW5nXVxuICpcbiAqIEByZXR1cm5zIHs/QXJyYXl9XG4gKi9cbmNvbnN0IHRvQXJyYXkgPSAodGhpbmcpID0+IHtcbiAgaWYgKCF0aGluZykgcmV0dXJuIG51bGw7XG4gIGlmIChpc0FycmF5KHRoaW5nKSkgcmV0dXJuIHRoaW5nO1xuICBsZXQgaSA9IHRoaW5nLmxlbmd0aDtcbiAgaWYgKCFpc051bWJlcihpKSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IGFyciA9IG5ldyBBcnJheShpKTtcbiAgd2hpbGUgKGktLSA+IDApIHtcbiAgICBhcnJbaV0gPSB0aGluZ1tpXTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuXG4vKipcbiAqIENoZWNraW5nIGlmIHRoZSBVaW50OEFycmF5IGV4aXN0cyBhbmQgaWYgaXQgZG9lcywgaXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIHRoZVxuICogdGhpbmcgcGFzc2VkIGluIGlzIGFuIGluc3RhbmNlIG9mIFVpbnQ4QXJyYXlcbiAqXG4gKiBAcGFyYW0ge1R5cGVkQXJyYXl9XG4gKlxuICogQHJldHVybnMge0FycmF5fVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuY29uc3QgaXNUeXBlZEFycmF5ID0gKFR5cGVkQXJyYXkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICByZXR1cm4gdGhpbmcgPT4ge1xuICAgIHJldHVybiBUeXBlZEFycmF5ICYmIHRoaW5nIGluc3RhbmNlb2YgVHlwZWRBcnJheTtcbiAgfTtcbn0pKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyAmJiBnZXRQcm90b3R5cGVPZihVaW50OEFycmF5KSk7XG5cbi8qKlxuICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIG9iamVjdCwgY2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB0aGUga2V5IGFuZCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdDxhbnksIGFueT59IG9iaiAtIFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBmb3IgZWFjaCBlbnRyeS5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuY29uc3QgZm9yRWFjaEVudHJ5ID0gKG9iaiwgZm4pID0+IHtcbiAgY29uc3QgZ2VuZXJhdG9yID0gb2JqICYmIG9ialtTeW1ib2wuaXRlcmF0b3JdO1xuXG4gIGNvbnN0IGl0ZXJhdG9yID0gZ2VuZXJhdG9yLmNhbGwob2JqKTtcblxuICBsZXQgcmVzdWx0O1xuXG4gIHdoaWxlICgocmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpKSAmJiAhcmVzdWx0LmRvbmUpIHtcbiAgICBjb25zdCBwYWlyID0gcmVzdWx0LnZhbHVlO1xuICAgIGZuLmNhbGwob2JqLCBwYWlyWzBdLCBwYWlyWzFdKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0IHRha2VzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZCBhIHN0cmluZywgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYWxsIHRoZSBtYXRjaGVzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlZ0V4cCAtIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggYWdhaW5zdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIHNlYXJjaC5cbiAqXG4gKiBAcmV0dXJucyB7QXJyYXk8Ym9vbGVhbj59XG4gKi9cbmNvbnN0IG1hdGNoQWxsID0gKHJlZ0V4cCwgc3RyKSA9PiB7XG4gIGxldCBtYXRjaGVzO1xuICBjb25zdCBhcnIgPSBbXTtcblxuICB3aGlsZSAoKG1hdGNoZXMgPSByZWdFeHAuZXhlYyhzdHIpKSAhPT0gbnVsbCkge1xuICAgIGFyci5wdXNoKG1hdGNoZXMpO1xuICB9XG5cbiAgcmV0dXJuIGFycjtcbn1cblxuLyogQ2hlY2tpbmcgaWYgdGhlIGtpbmRPZlRlc3QgZnVuY3Rpb24gcmV0dXJucyB0cnVlIHdoZW4gcGFzc2VkIGFuIEhUTUxGb3JtRWxlbWVudC4gKi9cbmNvbnN0IGlzSFRNTEZvcm0gPSBraW5kT2ZUZXN0KCdIVE1MRm9ybUVsZW1lbnQnKTtcblxuY29uc3QgdG9DYW1lbENhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxcbiAgICBmdW5jdGlvbiByZXBsYWNlcihtLCBwMSwgcDIpIHtcbiAgICAgIHJldHVybiBwMS50b1VwcGVyQ2FzZSgpICsgcDI7XG4gICAgfVxuICApO1xufTtcblxuLyogQ3JlYXRpbmcgYSBmdW5jdGlvbiB0aGF0IHdpbGwgY2hlY2sgaWYgYW4gb2JqZWN0IGhhcyBhIHByb3BlcnR5LiAqL1xuY29uc3QgaGFzT3duUHJvcGVydHkgPSAoKHtoYXNPd25Qcm9wZXJ0eX0pID0+IChvYmosIHByb3ApID0+IGhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkoT2JqZWN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgdmFsdWUgaXMgYSBSZWdFeHAgb2JqZWN0XG4gKlxuICogQHBhcmFtIHsqfSB2YWwgVGhlIHZhbHVlIHRvIHRlc3RcbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB2YWx1ZSBpcyBhIFJlZ0V4cCBvYmplY3QsIG90aGVyd2lzZSBmYWxzZVxuICovXG5jb25zdCBpc1JlZ0V4cCA9IGtpbmRPZlRlc3QoJ1JlZ0V4cCcpO1xuXG5jb25zdCByZWR1Y2VEZXNjcmlwdG9ycyA9IChvYmosIHJlZHVjZXIpID0+IHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvYmopO1xuICBjb25zdCByZWR1Y2VkRGVzY3JpcHRvcnMgPSB7fTtcblxuICBmb3JFYWNoKGRlc2NyaXB0b3JzLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIGxldCByZXQ7XG4gICAgaWYgKChyZXQgPSByZWR1Y2VyKGRlc2NyaXB0b3IsIG5hbWUsIG9iaikpICE9PSBmYWxzZSkge1xuICAgICAgcmVkdWNlZERlc2NyaXB0b3JzW25hbWVdID0gcmV0IHx8IGRlc2NyaXB0b3I7XG4gICAgfVxuICB9KTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvYmosIHJlZHVjZWREZXNjcmlwdG9ycyk7XG59XG5cbi8qKlxuICogTWFrZXMgYWxsIG1ldGhvZHMgcmVhZC1vbmx5XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKi9cblxuY29uc3QgZnJlZXplTWV0aG9kcyA9IChvYmopID0+IHtcbiAgcmVkdWNlRGVzY3JpcHRvcnMob2JqLCAoZGVzY3JpcHRvciwgbmFtZSkgPT4ge1xuICAgIC8vIHNraXAgcmVzdHJpY3RlZCBwcm9wcyBpbiBzdHJpY3QgbW9kZVxuICAgIGlmIChpc0Z1bmN0aW9uKG9iaikgJiYgWydhcmd1bWVudHMnLCAnY2FsbGVyJywgJ2NhbGxlZSddLmluZGV4T2YobmFtZSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBvYmpbbmFtZV07XG5cbiAgICBpZiAoIWlzRnVuY3Rpb24odmFsdWUpKSByZXR1cm47XG5cbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBmYWxzZTtcblxuICAgIGlmICgnd3JpdGFibGUnIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgIGRlc2NyaXB0b3Iud3JpdGFibGUgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWRlc2NyaXB0b3Iuc2V0KSB7XG4gICAgICBkZXNjcmlwdG9yLnNldCA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0NhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFxcJycgKyBuYW1lICsgJ1xcJycpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCB0b09iamVjdFNldCA9IChhcnJheU9yU3RyaW5nLCBkZWxpbWl0ZXIpID0+IHtcbiAgY29uc3Qgb2JqID0ge307XG5cbiAgY29uc3QgZGVmaW5lID0gKGFycikgPT4ge1xuICAgIGFyci5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgIG9ialt2YWx1ZV0gPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgaXNBcnJheShhcnJheU9yU3RyaW5nKSA/IGRlZmluZShhcnJheU9yU3RyaW5nKSA6IGRlZmluZShTdHJpbmcoYXJyYXlPclN0cmluZykuc3BsaXQoZGVsaW1pdGVyKSk7XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbmNvbnN0IHRvRmluaXRlTnVtYmVyID0gKHZhbHVlLCBkZWZhdWx0VmFsdWUpID0+IHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlID0gK3ZhbHVlKSA/IHZhbHVlIDogZGVmYXVsdFZhbHVlO1xufVxuXG5jb25zdCBBTFBIQSA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidcblxuY29uc3QgRElHSVQgPSAnMDEyMzQ1Njc4OSc7XG5cbmNvbnN0IEFMUEhBQkVUID0ge1xuICBESUdJVCxcbiAgQUxQSEEsXG4gIEFMUEhBX0RJR0lUOiBBTFBIQSArIEFMUEhBLnRvVXBwZXJDYXNlKCkgKyBESUdJVFxufVxuXG5jb25zdCBnZW5lcmF0ZVN0cmluZyA9IChzaXplID0gMTYsIGFscGhhYmV0ID0gQUxQSEFCRVQuQUxQSEFfRElHSVQpID0+IHtcbiAgbGV0IHN0ciA9ICcnO1xuICBjb25zdCB7bGVuZ3RofSA9IGFscGhhYmV0O1xuICB3aGlsZSAoc2l6ZS0tKSB7XG4gICAgc3RyICs9IGFscGhhYmV0W01hdGgucmFuZG9tKCkgKiBsZW5ndGh8MF1cbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogSWYgdGhlIHRoaW5nIGlzIGEgRm9ybURhdGEgb2JqZWN0LCByZXR1cm4gdHJ1ZSwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cbiAqXG4gKiBAcGFyYW0ge3Vua25vd259IHRoaW5nIC0gVGhlIHRoaW5nIHRvIGNoZWNrLlxuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc1NwZWNDb21wbGlhbnRGb3JtKHRoaW5nKSB7XG4gIHJldHVybiAhISh0aGluZyAmJiBpc0Z1bmN0aW9uKHRoaW5nLmFwcGVuZCkgJiYgdGhpbmdbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gJ0Zvcm1EYXRhJyAmJiB0aGluZ1tTeW1ib2wuaXRlcmF0b3JdKTtcbn1cblxuY29uc3QgdG9KU09OT2JqZWN0ID0gKG9iaikgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBBcnJheSgxMCk7XG5cbiAgY29uc3QgdmlzaXQgPSAoc291cmNlLCBpKSA9PiB7XG5cbiAgICBpZiAoaXNPYmplY3Qoc291cmNlKSkge1xuICAgICAgaWYgKHN0YWNrLmluZGV4T2Yoc291cmNlKSA+PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYoISgndG9KU09OJyBpbiBzb3VyY2UpKSB7XG4gICAgICAgIHN0YWNrW2ldID0gc291cmNlO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBpc0FycmF5KHNvdXJjZSkgPyBbXSA6IHt9O1xuXG4gICAgICAgIGZvckVhY2goc291cmNlLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlZHVjZWRWYWx1ZSA9IHZpc2l0KHZhbHVlLCBpICsgMSk7XG4gICAgICAgICAgIWlzVW5kZWZpbmVkKHJlZHVjZWRWYWx1ZSkgJiYgKHRhcmdldFtrZXldID0gcmVkdWNlZFZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RhY2tbaV0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlO1xuICB9XG5cbiAgcmV0dXJuIHZpc2l0KG9iaiwgMCk7XG59XG5cbmNvbnN0IGlzQXN5bmNGbiA9IGtpbmRPZlRlc3QoJ0FzeW5jRnVuY3Rpb24nKTtcblxuY29uc3QgaXNUaGVuYWJsZSA9ICh0aGluZykgPT5cbiAgdGhpbmcgJiYgKGlzT2JqZWN0KHRoaW5nKSB8fCBpc0Z1bmN0aW9uKHRoaW5nKSkgJiYgaXNGdW5jdGlvbih0aGluZy50aGVuKSAmJiBpc0Z1bmN0aW9uKHRoaW5nLmNhdGNoKTtcblxuLy8gb3JpZ2luYWwgY29kZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0RpZ2l0YWxCcmFpbkpTL0F4aW9zUHJvbWlzZS9ibG9iLzE2ZGVhYjEzNzEwZWMwOTc3OTkyMjEzMWYzZmE1OTU0MzIwZjgzYWIvbGliL3V0aWxzLmpzI0wxMS1MMzRcblxuY29uc3QgX3NldEltbWVkaWF0ZSA9ICgoc2V0SW1tZWRpYXRlU3VwcG9ydGVkLCBwb3N0TWVzc2FnZVN1cHBvcnRlZCkgPT4ge1xuICBpZiAoc2V0SW1tZWRpYXRlU3VwcG9ydGVkKSB7XG4gICAgcmV0dXJuIHNldEltbWVkaWF0ZTtcbiAgfVxuXG4gIHJldHVybiBwb3N0TWVzc2FnZVN1cHBvcnRlZCA/ICgodG9rZW4sIGNhbGxiYWNrcykgPT4ge1xuICAgIF9nbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHtzb3VyY2UsIGRhdGF9KSA9PiB7XG4gICAgICBpZiAoc291cmNlID09PSBfZ2xvYmFsICYmIGRhdGEgPT09IHRva2VuKSB7XG4gICAgICAgIGNhbGxiYWNrcy5sZW5ndGggJiYgY2FsbGJhY2tzLnNoaWZ0KCkoKTtcbiAgICAgIH1cbiAgICB9LCBmYWxzZSk7XG5cbiAgICByZXR1cm4gKGNiKSA9PiB7XG4gICAgICBjYWxsYmFja3MucHVzaChjYik7XG4gICAgICBfZ2xvYmFsLnBvc3RNZXNzYWdlKHRva2VuLCBcIipcIik7XG4gICAgfVxuICB9KShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsIFtdKSA6IChjYikgPT4gc2V0VGltZW91dChjYik7XG59KShcbiAgdHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgaXNGdW5jdGlvbihfZ2xvYmFsLnBvc3RNZXNzYWdlKVxuKTtcblxuY29uc3QgYXNhcCA9IHR5cGVvZiBxdWV1ZU1pY3JvdGFzayAhPT0gJ3VuZGVmaW5lZCcgP1xuICBxdWV1ZU1pY3JvdGFzay5iaW5kKF9nbG9iYWwpIDogKCB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvY2Vzcy5uZXh0VGljayB8fCBfc2V0SW1tZWRpYXRlKTtcblxuLy8gKioqKioqKioqKioqKioqKioqKioqXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaXNBcnJheSxcbiAgaXNBcnJheUJ1ZmZlcixcbiAgaXNCdWZmZXIsXG4gIGlzRm9ybURhdGEsXG4gIGlzQXJyYXlCdWZmZXJWaWV3LFxuICBpc1N0cmluZyxcbiAgaXNOdW1iZXIsXG4gIGlzQm9vbGVhbixcbiAgaXNPYmplY3QsXG4gIGlzUGxhaW5PYmplY3QsXG4gIGlzUmVhZGFibGVTdHJlYW0sXG4gIGlzUmVxdWVzdCxcbiAgaXNSZXNwb25zZSxcbiAgaXNIZWFkZXJzLFxuICBpc1VuZGVmaW5lZCxcbiAgaXNEYXRlLFxuICBpc0ZpbGUsXG4gIGlzQmxvYixcbiAgaXNSZWdFeHAsXG4gIGlzRnVuY3Rpb24sXG4gIGlzU3RyZWFtLFxuICBpc1VSTFNlYXJjaFBhcmFtcyxcbiAgaXNUeXBlZEFycmF5LFxuICBpc0ZpbGVMaXN0LFxuICBmb3JFYWNoLFxuICBtZXJnZSxcbiAgZXh0ZW5kLFxuICB0cmltLFxuICBzdHJpcEJPTSxcbiAgaW5oZXJpdHMsXG4gIHRvRmxhdE9iamVjdCxcbiAga2luZE9mLFxuICBraW5kT2ZUZXN0LFxuICBlbmRzV2l0aCxcbiAgdG9BcnJheSxcbiAgZm9yRWFjaEVudHJ5LFxuICBtYXRjaEFsbCxcbiAgaXNIVE1MRm9ybSxcbiAgaGFzT3duUHJvcGVydHksXG4gIGhhc093blByb3A6IGhhc093blByb3BlcnR5LCAvLyBhbiBhbGlhcyB0byBhdm9pZCBFU0xpbnQgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIGRldGVjdGlvblxuICByZWR1Y2VEZXNjcmlwdG9ycyxcbiAgZnJlZXplTWV0aG9kcyxcbiAgdG9PYmplY3RTZXQsXG4gIHRvQ2FtZWxDYXNlLFxuICBub29wLFxuICB0b0Zpbml0ZU51bWJlcixcbiAgZmluZEtleSxcbiAgZ2xvYmFsOiBfZ2xvYmFsLFxuICBpc0NvbnRleHREZWZpbmVkLFxuICBBTFBIQUJFVCxcbiAgZ2VuZXJhdGVTdHJpbmcsXG4gIGlzU3BlY0NvbXBsaWFudEZvcm0sXG4gIHRvSlNPTk9iamVjdCxcbiAgaXNBc3luY0ZuLFxuICBpc1RoZW5hYmxlLFxuICBzZXRJbW1lZGlhdGU6IF9zZXRJbW1lZGlhdGUsXG4gIGFzYXBcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGFuIEVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBtZXNzYWdlLCBjb25maWcsIGVycm9yIGNvZGUsIHJlcXVlc3QgYW5kIHJlc3BvbnNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2RlXSBUaGUgZXJyb3IgY29kZSAoZm9yIGV4YW1wbGUsICdFQ09OTkFCT1JURUQnKS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbY29uZmlnXSBUaGUgY29uZmlnLlxuICogQHBhcmFtIHtPYmplY3R9IFtyZXF1ZXN0XSBUaGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzcG9uc2VdIFRoZSByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJucyB7RXJyb3J9IFRoZSBjcmVhdGVkIGVycm9yLlxuICovXG5mdW5jdGlvbiBBeGlvc0Vycm9yKG1lc3NhZ2UsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UpIHtcbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHtcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjaztcbiAgfVxuXG4gIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gIHRoaXMubmFtZSA9ICdBeGlvc0Vycm9yJztcbiAgY29kZSAmJiAodGhpcy5jb2RlID0gY29kZSk7XG4gIGNvbmZpZyAmJiAodGhpcy5jb25maWcgPSBjb25maWcpO1xuICByZXF1ZXN0ICYmICh0aGlzLnJlcXVlc3QgPSByZXF1ZXN0KTtcbiAgaWYgKHJlc3BvbnNlKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgIHRoaXMuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzID8gcmVzcG9uc2Uuc3RhdHVzIDogbnVsbDtcbiAgfVxufVxuXG51dGlscy5pbmhlcml0cyhBeGlvc0Vycm9yLCBFcnJvciwge1xuICB0b0pTT046IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gU3RhbmRhcmRcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIC8vIE1pY3Jvc29mdFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBudW1iZXI6IHRoaXMubnVtYmVyLFxuICAgICAgLy8gTW96aWxsYVxuICAgICAgZmlsZU5hbWU6IHRoaXMuZmlsZU5hbWUsXG4gICAgICBsaW5lTnVtYmVyOiB0aGlzLmxpbmVOdW1iZXIsXG4gICAgICBjb2x1bW5OdW1iZXI6IHRoaXMuY29sdW1uTnVtYmVyLFxuICAgICAgc3RhY2s6IHRoaXMuc3RhY2ssXG4gICAgICAvLyBBeGlvc1xuICAgICAgY29uZmlnOiB1dGlscy50b0pTT05PYmplY3QodGhpcy5jb25maWcpLFxuICAgICAgY29kZTogdGhpcy5jb2RlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1c1xuICAgIH07XG4gIH1cbn0pO1xuXG5jb25zdCBwcm90b3R5cGUgPSBBeGlvc0Vycm9yLnByb3RvdHlwZTtcbmNvbnN0IGRlc2NyaXB0b3JzID0ge307XG5cbltcbiAgJ0VSUl9CQURfT1BUSU9OX1ZBTFVFJyxcbiAgJ0VSUl9CQURfT1BUSU9OJyxcbiAgJ0VDT05OQUJPUlRFRCcsXG4gICdFVElNRURPVVQnLFxuICAnRVJSX05FVFdPUksnLFxuICAnRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUycsXG4gICdFUlJfREVQUkVDQVRFRCcsXG4gICdFUlJfQkFEX1JFU1BPTlNFJyxcbiAgJ0VSUl9CQURfUkVRVUVTVCcsXG4gICdFUlJfQ0FOQ0VMRUQnLFxuICAnRVJSX05PVF9TVVBQT1JUJyxcbiAgJ0VSUl9JTlZBTElEX1VSTCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5dLmZvckVhY2goY29kZSA9PiB7XG4gIGRlc2NyaXB0b3JzW2NvZGVdID0ge3ZhbHVlOiBjb2RlfTtcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhBeGlvc0Vycm9yLCBkZXNjcmlwdG9ycyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnaXNBeGlvc0Vycm9yJywge3ZhbHVlOiB0cnVlfSk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5BeGlvc0Vycm9yLmZyb20gPSAoZXJyb3IsIGNvZGUsIGNvbmZpZywgcmVxdWVzdCwgcmVzcG9uc2UsIGN1c3RvbVByb3BzKSA9PiB7XG4gIGNvbnN0IGF4aW9zRXJyb3IgPSBPYmplY3QuY3JlYXRlKHByb3RvdHlwZSk7XG5cbiAgdXRpbHMudG9GbGF0T2JqZWN0KGVycm9yLCBheGlvc0Vycm9yLCBmdW5jdGlvbiBmaWx0ZXIob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAhPT0gRXJyb3IucHJvdG90eXBlO1xuICB9LCBwcm9wID0+IHtcbiAgICByZXR1cm4gcHJvcCAhPT0gJ2lzQXhpb3NFcnJvcic7XG4gIH0pO1xuXG4gIEF4aW9zRXJyb3IuY2FsbChheGlvc0Vycm9yLCBlcnJvci5tZXNzYWdlLCBjb2RlLCBjb25maWcsIHJlcXVlc3QsIHJlc3BvbnNlKTtcblxuICBheGlvc0Vycm9yLmNhdXNlID0gZXJyb3I7XG5cbiAgYXhpb3NFcnJvci5uYW1lID0gZXJyb3IubmFtZTtcblxuICBjdXN0b21Qcm9wcyAmJiBPYmplY3QuYXNzaWduKGF4aW9zRXJyb3IsIGN1c3RvbVByb3BzKTtcblxuICByZXR1cm4gYXhpb3NFcnJvcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF4aW9zRXJyb3I7XG4iLCIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc3RyaWN0XG5leHBvcnQgZGVmYXVsdCBudWxsO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbi8vIHRlbXBvcmFyeSBob3RmaXggdG8gYXZvaWQgY2lyY3VsYXIgcmVmZXJlbmNlcyB1bnRpbCBBeGlvc1VSTFNlYXJjaFBhcmFtcyBpcyByZWZhY3RvcmVkXG5pbXBvcnQgUGxhdGZvcm1Gb3JtRGF0YSBmcm9tICcuLi9wbGF0Zm9ybS9ub2RlL2NsYXNzZXMvRm9ybURhdGEuanMnO1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHRoaW5nIGlzIGEgYXJyYXkgb3IganMgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0aGluZyAtIFRoZSBvYmplY3Qgb3IgYXJyYXkgdG8gYmUgdmlzaXRlZC5cbiAqXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNWaXNpdGFibGUodGhpbmcpIHtcbiAgcmV0dXJuIHV0aWxzLmlzUGxhaW5PYmplY3QodGhpbmcpIHx8IHV0aWxzLmlzQXJyYXkodGhpbmcpO1xufVxuXG4vKipcbiAqIEl0IHJlbW92ZXMgdGhlIGJyYWNrZXRzIGZyb20gdGhlIGVuZCBvZiBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBwYXJhbWV0ZXIuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGtleSB3aXRob3V0IHRoZSBicmFja2V0cy5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQnJhY2tldHMoa2V5KSB7XG4gIHJldHVybiB1dGlscy5lbmRzV2l0aChrZXksICdbXScpID8ga2V5LnNsaWNlKDAsIC0yKSA6IGtleTtcbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIHBhdGgsIGEga2V5LCBhbmQgYSBib29sZWFuLCBhbmQgcmV0dXJucyBhIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGN1cnJlbnQga2V5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IGJlaW5nIGl0ZXJhdGVkIG92ZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gZG90cyAtIElmIHRydWUsIHRoZSBrZXkgd2lsbCBiZSByZW5kZXJlZCB3aXRoIGRvdHMgaW5zdGVhZCBvZiBicmFja2V0cy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGF0aCB0byB0aGUgY3VycmVudCBrZXkuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlcktleShwYXRoLCBrZXksIGRvdHMpIHtcbiAgaWYgKCFwYXRoKSByZXR1cm4ga2V5O1xuICByZXR1cm4gcGF0aC5jb25jYXQoa2V5KS5tYXAoZnVuY3Rpb24gZWFjaCh0b2tlbiwgaSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHRva2VuID0gcmVtb3ZlQnJhY2tldHModG9rZW4pO1xuICAgIHJldHVybiAhZG90cyAmJiBpID8gJ1snICsgdG9rZW4gKyAnXScgOiB0b2tlbjtcbiAgfSkuam9pbihkb3RzID8gJy4nIDogJycpO1xufVxuXG4vKipcbiAqIElmIHRoZSBhcnJheSBpcyBhbiBhcnJheSBhbmQgbm9uZSBvZiBpdHMgZWxlbWVudHMgYXJlIHZpc2l0YWJsZSwgdGhlbiBpdCdzIGEgZmxhdCBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PGFueT59IGFyciAtIFRoZSBhcnJheSB0byBjaGVja1xuICpcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBpc0ZsYXRBcnJheShhcnIpIHtcbiAgcmV0dXJuIHV0aWxzLmlzQXJyYXkoYXJyKSAmJiAhYXJyLnNvbWUoaXNWaXNpdGFibGUpO1xufVxuXG5jb25zdCBwcmVkaWNhdGVzID0gdXRpbHMudG9GbGF0T2JqZWN0KHV0aWxzLCB7fSwgbnVsbCwgZnVuY3Rpb24gZmlsdGVyKHByb3ApIHtcbiAgcmV0dXJuIC9eaXNbQS1aXS8udGVzdChwcm9wKTtcbn0pO1xuXG4vKipcbiAqIENvbnZlcnQgYSBkYXRhIG9iamVjdCB0byBGb3JtRGF0YVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEBwYXJhbSB7P09iamVjdH0gW2Zvcm1EYXRhXVxuICogQHBhcmFtIHs/T2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLnZpc2l0b3JdXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRpb25zLm1ldGFUb2tlbnMgPSB0cnVlXVxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5kb3RzID0gZmFsc2VdXG4gKiBAcGFyYW0gez9Cb29sZWFufSBbb3B0aW9ucy5pbmRleGVzID0gZmFsc2VdXG4gKlxuICogQHJldHVybnMge09iamVjdH1cbiAqKi9cblxuLyoqXG4gKiBJdCBjb252ZXJ0cyBhbiBvYmplY3QgaW50byBhIEZvcm1EYXRhIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0PGFueSwgYW55Pn0gb2JqIC0gVGhlIG9iamVjdCB0byBjb252ZXJ0IHRvIGZvcm0gZGF0YS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtRGF0YSAtIFRoZSBGb3JtRGF0YSBvYmplY3QgdG8gYXBwZW5kIHRvLlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBvcHRpb25zXG4gKlxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gdG9Gb3JtRGF0YShvYmosIGZvcm1EYXRhLCBvcHRpb25zKSB7XG4gIGlmICghdXRpbHMuaXNPYmplY3Qob2JqKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3RhcmdldCBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIGZvcm1EYXRhID0gZm9ybURhdGEgfHwgbmV3IChQbGF0Zm9ybUZvcm1EYXRhIHx8IEZvcm1EYXRhKSgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBvcHRpb25zID0gdXRpbHMudG9GbGF0T2JqZWN0KG9wdGlvbnMsIHtcbiAgICBtZXRhVG9rZW5zOiB0cnVlLFxuICAgIGRvdHM6IGZhbHNlLFxuICAgIGluZGV4ZXM6IGZhbHNlXG4gIH0sIGZhbHNlLCBmdW5jdGlvbiBkZWZpbmVkKG9wdGlvbiwgc291cmNlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVxLW51bGwsZXFlcWVxXG4gICAgcmV0dXJuICF1dGlscy5pc1VuZGVmaW5lZChzb3VyY2Vbb3B0aW9uXSk7XG4gIH0pO1xuXG4gIGNvbnN0IG1ldGFUb2tlbnMgPSBvcHRpb25zLm1ldGFUb2tlbnM7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuICBjb25zdCB2aXNpdG9yID0gb3B0aW9ucy52aXNpdG9yIHx8IGRlZmF1bHRWaXNpdG9yO1xuICBjb25zdCBkb3RzID0gb3B0aW9ucy5kb3RzO1xuICBjb25zdCBpbmRleGVzID0gb3B0aW9ucy5pbmRleGVzO1xuICBjb25zdCBfQmxvYiA9IG9wdGlvbnMuQmxvYiB8fCB0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgQmxvYjtcbiAgY29uc3QgdXNlQmxvYiA9IF9CbG9iICYmIHV0aWxzLmlzU3BlY0NvbXBsaWFudEZvcm0oZm9ybURhdGEpO1xuXG4gIGlmICghdXRpbHMuaXNGdW5jdGlvbih2aXNpdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Zpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBmdW5jdGlvbiBjb252ZXJ0VmFsdWUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnJztcblxuICAgIGlmICh1dGlscy5pc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9JU09TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIXVzZUJsb2IgJiYgdXRpbHMuaXNCbG9iKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ0Jsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXIodmFsdWUpIHx8IHV0aWxzLmlzVHlwZWRBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB1c2VCbG9iICYmIHR5cGVvZiBCbG9iID09PSAnZnVuY3Rpb24nID8gbmV3IEJsb2IoW3ZhbHVlXSkgOiBCdWZmZXIuZnJvbSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmlzaXRvci5cbiAgICpcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IGtleVxuICAgKiBAcGFyYW0ge0FycmF5PFN0cmluZ3xOdW1iZXI+fSBwYXRoXG4gICAqIEB0aGlzIHtGb3JtRGF0YX1cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHJldHVybiB0cnVlIHRvIHZpc2l0IHRoZSBlYWNoIHByb3Agb2YgdGhlIHZhbHVlIHJlY3Vyc2l2ZWx5XG4gICAqL1xuICBmdW5jdGlvbiBkZWZhdWx0VmlzaXRvcih2YWx1ZSwga2V5LCBwYXRoKSB7XG4gICAgbGV0IGFyciA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICYmICFwYXRoICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmICh1dGlscy5lbmRzV2l0aChrZXksICd7fScpKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBrZXkgPSBtZXRhVG9rZW5zID8ga2V5IDoga2V5LnNsaWNlKDAsIC0yKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgKHV0aWxzLmlzQXJyYXkodmFsdWUpICYmIGlzRmxhdEFycmF5KHZhbHVlKSkgfHxcbiAgICAgICAgKCh1dGlscy5pc0ZpbGVMaXN0KHZhbHVlKSB8fCB1dGlscy5lbmRzV2l0aChrZXksICdbXScpKSAmJiAoYXJyID0gdXRpbHMudG9BcnJheSh2YWx1ZSkpXG4gICAgICAgICkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIGtleSA9IHJlbW92ZUJyYWNrZXRzKGtleSk7XG5cbiAgICAgICAgYXJyLmZvckVhY2goZnVuY3Rpb24gZWFjaChlbCwgaW5kZXgpIHtcbiAgICAgICAgICAhKHV0aWxzLmlzVW5kZWZpbmVkKGVsKSB8fCBlbCA9PT0gbnVsbCkgJiYgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgICAgICBpbmRleGVzID09PSB0cnVlID8gcmVuZGVyS2V5KFtrZXldLCBpbmRleCwgZG90cykgOiAoaW5kZXhlcyA9PT0gbnVsbCA/IGtleSA6IGtleSArICdbXScpLFxuICAgICAgICAgICAgY29udmVydFZhbHVlKGVsKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzVmlzaXRhYmxlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZm9ybURhdGEuYXBwZW5kKHJlbmRlcktleShwYXRoLCBrZXksIGRvdHMpLCBjb252ZXJ0VmFsdWUodmFsdWUpKTtcblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHN0YWNrID0gW107XG5cbiAgY29uc3QgZXhwb3NlZEhlbHBlcnMgPSBPYmplY3QuYXNzaWduKHByZWRpY2F0ZXMsIHtcbiAgICBkZWZhdWx0VmlzaXRvcixcbiAgICBjb252ZXJ0VmFsdWUsXG4gICAgaXNWaXNpdGFibGVcbiAgfSk7XG5cbiAgZnVuY3Rpb24gYnVpbGQodmFsdWUsIHBhdGgpIHtcbiAgICBpZiAodXRpbHMuaXNVbmRlZmluZWQodmFsdWUpKSByZXR1cm47XG5cbiAgICBpZiAoc3RhY2suaW5kZXhPZih2YWx1ZSkgIT09IC0xKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICcgKyBwYXRoLmpvaW4oJy4nKSk7XG4gICAgfVxuXG4gICAgc3RhY2sucHVzaCh2YWx1ZSk7XG5cbiAgICB1dGlscy5mb3JFYWNoKHZhbHVlLCBmdW5jdGlvbiBlYWNoKGVsLCBrZXkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9ICEodXRpbHMuaXNVbmRlZmluZWQoZWwpIHx8IGVsID09PSBudWxsKSAmJiB2aXNpdG9yLmNhbGwoXG4gICAgICAgIGZvcm1EYXRhLCBlbCwgdXRpbHMuaXNTdHJpbmcoa2V5KSA/IGtleS50cmltKCkgOiBrZXksIHBhdGgsIGV4cG9zZWRIZWxwZXJzXG4gICAgICApO1xuXG4gICAgICBpZiAocmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgIGJ1aWxkKGVsLCBwYXRoID8gcGF0aC5jb25jYXQoa2V5KSA6IFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHN0YWNrLnBvcCgpO1xuICB9XG5cbiAgaWYgKCF1dGlscy5pc09iamVjdChvYmopKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF0YSBtdXN0IGJlIGFuIG9iamVjdCcpO1xuICB9XG5cbiAgYnVpbGQob2JqKTtcblxuICByZXR1cm4gZm9ybURhdGE7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvRm9ybURhdGE7XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB0b0Zvcm1EYXRhIGZyb20gJy4vdG9Gb3JtRGF0YS5qcyc7XG5cbi8qKlxuICogSXQgZW5jb2RlcyBhIHN0cmluZyBieSByZXBsYWNpbmcgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGluIHRoZSB1bnJlc2VydmVkIHNldCB3aXRoXG4gKiB0aGVpciBwZXJjZW50LWVuY29kZWQgZXF1aXZhbGVudHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBlbmNvZGUuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGVuY29kZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlbmNvZGUoc3RyKSB7XG4gIGNvbnN0IGNoYXJNYXAgPSB7XG4gICAgJyEnOiAnJTIxJyxcbiAgICBcIidcIjogJyUyNycsXG4gICAgJygnOiAnJTI4JyxcbiAgICAnKSc6ICclMjknLFxuICAgICd+JzogJyU3RScsXG4gICAgJyUyMCc6ICcrJyxcbiAgICAnJTAwJzogJ1xceDAwJ1xuICB9O1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csIGZ1bmN0aW9uIHJlcGxhY2VyKG1hdGNoKSB7XG4gICAgcmV0dXJuIGNoYXJNYXBbbWF0Y2hdO1xuICB9KTtcbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIHBhcmFtcyBvYmplY3QgYW5kIGNvbnZlcnRzIGl0IHRvIGEgRm9ybURhdGEgb2JqZWN0XG4gKlxuICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyB0byBiZSBjb252ZXJ0ZWQgdG8gYSBGb3JtRGF0YSBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdDxzdHJpbmcsIGFueT59IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QgcGFzc2VkIHRvIHRoZSBBeGlvcyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gQXhpb3NVUkxTZWFyY2hQYXJhbXMocGFyYW1zLCBvcHRpb25zKSB7XG4gIHRoaXMuX3BhaXJzID0gW107XG5cbiAgcGFyYW1zICYmIHRvRm9ybURhdGEocGFyYW1zLCB0aGlzLCBvcHRpb25zKTtcbn1cblxuY29uc3QgcHJvdG90eXBlID0gQXhpb3NVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlO1xuXG5wcm90b3R5cGUuYXBwZW5kID0gZnVuY3Rpb24gYXBwZW5kKG5hbWUsIHZhbHVlKSB7XG4gIHRoaXMuX3BhaXJzLnB1c2goW25hbWUsIHZhbHVlXSk7XG59O1xuXG5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhlbmNvZGVyKSB7XG4gIGNvbnN0IF9lbmNvZGUgPSBlbmNvZGVyID8gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZW5jb2Rlci5jYWxsKHRoaXMsIHZhbHVlLCBlbmNvZGUpO1xuICB9IDogZW5jb2RlO1xuXG4gIHJldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24gZWFjaChwYWlyKSB7XG4gICAgcmV0dXJuIF9lbmNvZGUocGFpclswXSkgKyAnPScgKyBfZW5jb2RlKHBhaXJbMV0pO1xuICB9LCAnJykuam9pbignJicpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQXhpb3NVUkxTZWFyY2hQYXJhbXM7XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgQXhpb3NVUkxTZWFyY2hQYXJhbXMgZnJvbSAnLi4vaGVscGVycy9BeGlvc1VSTFNlYXJjaFBhcmFtcy5qcyc7XG5cbi8qKlxuICogSXQgcmVwbGFjZXMgYWxsIGluc3RhbmNlcyBvZiB0aGUgY2hhcmFjdGVycyBgOmAsIGAkYCwgYCxgLCBgK2AsIGBbYCwgYW5kIGBdYCB3aXRoIHRoZWlyXG4gKiBVUkkgZW5jb2RlZCBjb3VudGVycGFydHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsIFRoZSB2YWx1ZSB0byBiZSBlbmNvZGVkLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlbmNvZGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBlbmNvZGUodmFsKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsKS5cbiAgICByZXBsYWNlKC8lM0EvZ2ksICc6JykuXG4gICAgcmVwbGFjZSgvJTI0L2csICckJykuXG4gICAgcmVwbGFjZSgvJTJDL2dpLCAnLCcpLlxuICAgIHJlcGxhY2UoLyUyMC9nLCAnKycpLlxuICAgIHJlcGxhY2UoLyU1Qi9naSwgJ1snKS5cbiAgICByZXBsYWNlKC8lNUQvZ2ksICddJyk7XG59XG5cbi8qKlxuICogQnVpbGQgYSBVUkwgYnkgYXBwZW5kaW5nIHBhcmFtcyB0byB0aGUgZW5kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybCBUaGUgYmFzZSBvZiB0aGUgdXJsIChlLmcuLCBodHRwOi8vd3d3Lmdvb2dsZS5jb20pXG4gKiBAcGFyYW0ge29iamVjdH0gW3BhcmFtc10gVGhlIHBhcmFtcyB0byBiZSBhcHBlbmRlZFxuICogQHBhcmFtIHs/KG9iamVjdHxGdW5jdGlvbil9IG9wdGlvbnNcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHVybFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBidWlsZFVSTCh1cmwsIHBhcmFtcywgb3B0aW9ucykge1xuICAvKmVzbGludCBuby1wYXJhbS1yZWFzc2lnbjowKi9cbiAgaWYgKCFwYXJhbXMpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG4gIFxuICBjb25zdCBfZW5jb2RlID0gb3B0aW9ucyAmJiBvcHRpb25zLmVuY29kZSB8fCBlbmNvZGU7XG5cbiAgaWYgKHV0aWxzLmlzRnVuY3Rpb24ob3B0aW9ucykpIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgc2VyaWFsaXplOiBvcHRpb25zXG4gICAgfTtcbiAgfSBcblxuICBjb25zdCBzZXJpYWxpemVGbiA9IG9wdGlvbnMgJiYgb3B0aW9ucy5zZXJpYWxpemU7XG5cbiAgbGV0IHNlcmlhbGl6ZWRQYXJhbXM7XG5cbiAgaWYgKHNlcmlhbGl6ZUZuKSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHNlcmlhbGl6ZUZuKHBhcmFtcywgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgc2VyaWFsaXplZFBhcmFtcyA9IHV0aWxzLmlzVVJMU2VhcmNoUGFyYW1zKHBhcmFtcykgP1xuICAgICAgcGFyYW1zLnRvU3RyaW5nKCkgOlxuICAgICAgbmV3IEF4aW9zVVJMU2VhcmNoUGFyYW1zKHBhcmFtcywgb3B0aW9ucykudG9TdHJpbmcoX2VuY29kZSk7XG4gIH1cblxuICBpZiAoc2VyaWFsaXplZFBhcmFtcykge1xuICAgIGNvbnN0IGhhc2htYXJrSW5kZXggPSB1cmwuaW5kZXhPZihcIiNcIik7XG5cbiAgICBpZiAoaGFzaG1hcmtJbmRleCAhPT0gLTEpIHtcbiAgICAgIHVybCA9IHVybC5zbGljZSgwLCBoYXNobWFya0luZGV4KTtcbiAgICB9XG4gICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyBzZXJpYWxpemVkUGFyYW1zO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuXG5jbGFzcyBJbnRlcmNlcHRvck1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhhbmRsZXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGludGVyY2VwdG9yIHRvIHRoZSBzdGFja1xuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdWxmaWxsZWQgVGhlIGZ1bmN0aW9uIHRvIGhhbmRsZSBgdGhlbmAgZm9yIGEgYFByb21pc2VgXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHJlamVjdGVkIFRoZSBmdW5jdGlvbiB0byBoYW5kbGUgYHJlamVjdGAgZm9yIGEgYFByb21pc2VgXG4gICAqXG4gICAqIEByZXR1cm4ge051bWJlcn0gQW4gSUQgdXNlZCB0byByZW1vdmUgaW50ZXJjZXB0b3IgbGF0ZXJcbiAgICovXG4gIHVzZShmdWxmaWxsZWQsIHJlamVjdGVkLCBvcHRpb25zKSB7XG4gICAgdGhpcy5oYW5kbGVycy5wdXNoKHtcbiAgICAgIGZ1bGZpbGxlZCxcbiAgICAgIHJlamVjdGVkLFxuICAgICAgc3luY2hyb25vdXM6IG9wdGlvbnMgPyBvcHRpb25zLnN5bmNocm9ub3VzIDogZmFsc2UsXG4gICAgICBydW5XaGVuOiBvcHRpb25zID8gb3B0aW9ucy5ydW5XaGVuIDogbnVsbFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmhhbmRsZXJzLmxlbmd0aCAtIDE7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGludGVyY2VwdG9yIGZyb20gdGhlIHN0YWNrXG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBpZCBUaGUgSUQgdGhhdCB3YXMgcmV0dXJuZWQgYnkgYHVzZWBcbiAgICpcbiAgICogQHJldHVybnMge0Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaW50ZXJjZXB0b3Igd2FzIHJlbW92ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBlamVjdChpZCkge1xuICAgIGlmICh0aGlzLmhhbmRsZXJzW2lkXSkge1xuICAgICAgdGhpcy5oYW5kbGVyc1tpZF0gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgaW50ZXJjZXB0b3JzIGZyb20gdGhlIHN0YWNrXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMuaGFuZGxlcnMpIHtcbiAgICAgIHRoaXMuaGFuZGxlcnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXRlcmF0ZSBvdmVyIGFsbCB0aGUgcmVnaXN0ZXJlZCBpbnRlcmNlcHRvcnNcbiAgICpcbiAgICogVGhpcyBtZXRob2QgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3Igc2tpcHBpbmcgb3ZlciBhbnlcbiAgICogaW50ZXJjZXB0b3JzIHRoYXQgbWF5IGhhdmUgYmVjb21lIGBudWxsYCBjYWxsaW5nIGBlamVjdGAuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjYWxsIGZvciBlYWNoIGludGVyY2VwdG9yXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZm9yRWFjaChmbikge1xuICAgIHV0aWxzLmZvckVhY2godGhpcy5oYW5kbGVycywgZnVuY3Rpb24gZm9yRWFjaEhhbmRsZXIoaCkge1xuICAgICAgaWYgKGggIT09IG51bGwpIHtcbiAgICAgICAgZm4oaCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW50ZXJjZXB0b3JNYW5hZ2VyO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNpbGVudEpTT05QYXJzaW5nOiB0cnVlLFxuICBmb3JjZWRKU09OUGFyc2luZzogdHJ1ZSxcbiAgY2xhcmlmeVRpbWVvdXRFcnJvcjogZmFsc2Vcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBBeGlvc1VSTFNlYXJjaFBhcmFtcyBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL0F4aW9zVVJMU2VhcmNoUGFyYW1zLmpzJztcbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBVUkxTZWFyY2hQYXJhbXMgIT09ICd1bmRlZmluZWQnID8gVVJMU2VhcmNoUGFyYW1zIDogQXhpb3NVUkxTZWFyY2hQYXJhbXM7XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgPyBGb3JtRGF0YSA6IG51bGw7XG4iLCIndXNlIHN0cmljdCdcblxuZXhwb3J0IGRlZmF1bHQgdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnID8gQmxvYiA6IG51bGxcbiIsImltcG9ydCBVUkxTZWFyY2hQYXJhbXMgZnJvbSAnLi9jbGFzc2VzL1VSTFNlYXJjaFBhcmFtcy5qcydcbmltcG9ydCBGb3JtRGF0YSBmcm9tICcuL2NsYXNzZXMvRm9ybURhdGEuanMnXG5pbXBvcnQgQmxvYiBmcm9tICcuL2NsYXNzZXMvQmxvYi5qcydcblxuZXhwb3J0IGRlZmF1bHQge1xuICBpc0Jyb3dzZXI6IHRydWUsXG4gIGNsYXNzZXM6IHtcbiAgICBVUkxTZWFyY2hQYXJhbXMsXG4gICAgRm9ybURhdGEsXG4gICAgQmxvYlxuICB9LFxuICBwcm90b2NvbHM6IFsnaHR0cCcsICdodHRwcycsICdmaWxlJywgJ2Jsb2InLCAndXJsJywgJ2RhdGEnXVxufTtcbiIsImNvbnN0IGhhc0Jyb3dzZXJFbnYgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuXG5jb25zdCBfbmF2aWdhdG9yID0gdHlwZW9mIG5hdmlnYXRvciA9PT0gJ29iamVjdCcgJiYgbmF2aWdhdG9yIHx8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgd2UncmUgcnVubmluZyBpbiBhIHN0YW5kYXJkIGJyb3dzZXIgZW52aXJvbm1lbnRcbiAqXG4gKiBUaGlzIGFsbG93cyBheGlvcyB0byBydW4gaW4gYSB3ZWIgd29ya2VyLCBhbmQgcmVhY3QtbmF0aXZlLlxuICogQm90aCBlbnZpcm9ubWVudHMgc3VwcG9ydCBYTUxIdHRwUmVxdWVzdCwgYnV0IG5vdCBmdWxseSBzdGFuZGFyZCBnbG9iYWxzLlxuICpcbiAqIHdlYiB3b3JrZXJzOlxuICogIHR5cGVvZiB3aW5kb3cgLT4gdW5kZWZpbmVkXG4gKiAgdHlwZW9mIGRvY3VtZW50IC0+IHVuZGVmaW5lZFxuICpcbiAqIHJlYWN0LW5hdGl2ZTpcbiAqICBuYXZpZ2F0b3IucHJvZHVjdCAtPiAnUmVhY3ROYXRpdmUnXG4gKiBuYXRpdmVzY3JpcHRcbiAqICBuYXZpZ2F0b3IucHJvZHVjdCAtPiAnTmF0aXZlU2NyaXB0JyBvciAnTlMnXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmNvbnN0IGhhc1N0YW5kYXJkQnJvd3NlckVudiA9IGhhc0Jyb3dzZXJFbnYgJiZcbiAgKCFfbmF2aWdhdG9yIHx8IFsnUmVhY3ROYXRpdmUnLCAnTmF0aXZlU2NyaXB0JywgJ05TJ10uaW5kZXhPZihfbmF2aWdhdG9yLnByb2R1Y3QpIDwgMCk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSBzdGFuZGFyZCBicm93c2VyIHdlYldvcmtlciBlbnZpcm9ubWVudFxuICpcbiAqIEFsdGhvdWdoIHRoZSBgaXNTdGFuZGFyZEJyb3dzZXJFbnZgIG1ldGhvZCBpbmRpY2F0ZXMgdGhhdFxuICogYGFsbG93cyBheGlvcyB0byBydW4gaW4gYSB3ZWIgd29ya2VyYCwgdGhlIFdlYldvcmtlciB3aWxsIHN0aWxsIGJlXG4gKiBmaWx0ZXJlZCBvdXQgZHVlIHRvIGl0cyBqdWRnbWVudCBzdGFuZGFyZFxuICogYHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCdgLlxuICogVGhpcyBsZWFkcyB0byBhIHByb2JsZW0gd2hlbiBheGlvcyBwb3N0IGBGb3JtRGF0YWAgaW4gd2ViV29ya2VyXG4gKi9cbmNvbnN0IGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudiA9ICgoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIHNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSAmJlxuICAgIHR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHMgPT09ICdmdW5jdGlvbidcbiAgKTtcbn0pKCk7XG5cbmNvbnN0IG9yaWdpbiA9IGhhc0Jyb3dzZXJFbnYgJiYgd2luZG93LmxvY2F0aW9uLmhyZWYgfHwgJ2h0dHA6Ly9sb2NhbGhvc3QnO1xuXG5leHBvcnQge1xuICBoYXNCcm93c2VyRW52LFxuICBoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYsXG4gIGhhc1N0YW5kYXJkQnJvd3NlckVudixcbiAgX25hdmlnYXRvciBhcyBuYXZpZ2F0b3IsXG4gIG9yaWdpblxufVxuIiwiaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4vbm9kZS9pbmRleC5qcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL2NvbW1vbi91dGlscy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLi4udXRpbHMsXG4gIC4uLnBsYXRmb3JtXG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgdG9Gb3JtRGF0YSBmcm9tICcuL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9VUkxFbmNvZGVkRm9ybShkYXRhLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b0Zvcm1EYXRhKGRhdGEsIG5ldyBwbGF0Zm9ybS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcygpLCBPYmplY3QuYXNzaWduKHtcbiAgICB2aXNpdG9yOiBmdW5jdGlvbih2YWx1ZSwga2V5LCBwYXRoLCBoZWxwZXJzKSB7XG4gICAgICBpZiAocGxhdGZvcm0uaXNOb2RlICYmIHV0aWxzLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhlbHBlcnMuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH0sIG9wdGlvbnMpKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcblxuLyoqXG4gKiBJdCB0YWtlcyBhIHN0cmluZyBsaWtlIGBmb29beF1beV1bel1gIGFuZCByZXR1cm5zIGFuIGFycmF5IGxpa2UgYFsnZm9vJywgJ3gnLCAneScsICd6J11cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKlxuICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqL1xuZnVuY3Rpb24gcGFyc2VQcm9wUGF0aChuYW1lKSB7XG4gIC8vIGZvb1t4XVt5XVt6XVxuICAvLyBmb28ueC55LnpcbiAgLy8gZm9vLXgteS16XG4gIC8vIGZvbyB4IHkgelxuICByZXR1cm4gdXRpbHMubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLCBuYW1lKS5tYXAobWF0Y2ggPT4ge1xuICAgIHJldHVybiBtYXRjaFswXSA9PT0gJ1tdJyA/ICcnIDogbWF0Y2hbMV0gfHwgbWF0Y2hbMF07XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYW4gYXJyYXkgdG8gYW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7QXJyYXk8YW55Pn0gYXJyIC0gVGhlIGFycmF5IHRvIGNvbnZlcnQgdG8gYW4gb2JqZWN0LlxuICpcbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSBzYW1lIGtleXMgYW5kIHZhbHVlcyBhcyB0aGUgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5VG9PYmplY3QoYXJyKSB7XG4gIGNvbnN0IG9iaiA9IHt9O1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJyKTtcbiAgbGV0IGk7XG4gIGNvbnN0IGxlbiA9IGtleXMubGVuZ3RoO1xuICBsZXQga2V5O1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIG9ialtrZXldID0gYXJyW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBJdCB0YWtlcyBhIEZvcm1EYXRhIG9iamVjdCBhbmQgcmV0dXJucyBhIEphdmFTY3JpcHQgb2JqZWN0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZvcm1EYXRhIFRoZSBGb3JtRGF0YSBvYmplY3QgdG8gY29udmVydCB0byBKU09OLlxuICpcbiAqIEByZXR1cm5zIHtPYmplY3Q8c3RyaW5nLCBhbnk+IHwgbnVsbH0gVGhlIGNvbnZlcnRlZCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGZvcm1EYXRhVG9KU09OKGZvcm1EYXRhKSB7XG4gIGZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoLCB2YWx1ZSwgdGFyZ2V0LCBpbmRleCkge1xuICAgIGxldCBuYW1lID0gcGF0aFtpbmRleCsrXTtcblxuICAgIGlmIChuYW1lID09PSAnX19wcm90b19fJykgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBpc051bWVyaWNLZXkgPSBOdW1iZXIuaXNGaW5pdGUoK25hbWUpO1xuICAgIGNvbnN0IGlzTGFzdCA9IGluZGV4ID49IHBhdGgubGVuZ3RoO1xuICAgIG5hbWUgPSAhbmFtZSAmJiB1dGlscy5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQubGVuZ3RoIDogbmFtZTtcblxuICAgIGlmIChpc0xhc3QpIHtcbiAgICAgIGlmICh1dGlscy5oYXNPd25Qcm9wKHRhcmdldCwgbmFtZSkpIHtcbiAgICAgICAgdGFyZ2V0W25hbWVdID0gW3RhcmdldFtuYW1lXSwgdmFsdWVdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0W25hbWVdID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhaXNOdW1lcmljS2V5O1xuICAgIH1cblxuICAgIGlmICghdGFyZ2V0W25hbWVdIHx8ICF1dGlscy5pc09iamVjdCh0YXJnZXRbbmFtZV0pKSB7XG4gICAgICB0YXJnZXRbbmFtZV0gPSBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBidWlsZFBhdGgocGF0aCwgdmFsdWUsIHRhcmdldFtuYW1lXSwgaW5kZXgpO1xuXG4gICAgaWYgKHJlc3VsdCAmJiB1dGlscy5pc0FycmF5KHRhcmdldFtuYW1lXSkpIHtcbiAgICAgIHRhcmdldFtuYW1lXSA9IGFycmF5VG9PYmplY3QodGFyZ2V0W25hbWVdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWlzTnVtZXJpY0tleTtcbiAgfVxuXG4gIGlmICh1dGlscy5pc0Zvcm1EYXRhKGZvcm1EYXRhKSAmJiB1dGlscy5pc0Z1bmN0aW9uKGZvcm1EYXRhLmVudHJpZXMpKSB7XG4gICAgY29uc3Qgb2JqID0ge307XG5cbiAgICB1dGlscy5mb3JFYWNoRW50cnkoZm9ybURhdGEsIChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgYnVpbGRQYXRoKHBhcnNlUHJvcFBhdGgobmFtZSksIHZhbHVlLCBvYmosIDApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmb3JtRGF0YVRvSlNPTjtcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBBeGlvc0Vycm9yIGZyb20gJy4uL2NvcmUvQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgdHJhbnNpdGlvbmFsRGVmYXVsdHMgZnJvbSAnLi90cmFuc2l0aW9uYWwuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi4vaGVscGVycy90b0Zvcm1EYXRhLmpzJztcbmltcG9ydCB0b1VSTEVuY29kZWRGb3JtIGZyb20gJy4uL2hlbHBlcnMvdG9VUkxFbmNvZGVkRm9ybS5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuaW1wb3J0IGZvcm1EYXRhVG9KU09OIGZyb20gJy4uL2hlbHBlcnMvZm9ybURhdGFUb0pTT04uanMnO1xuXG4vKipcbiAqIEl0IHRha2VzIGEgc3RyaW5nLCB0cmllcyB0byBwYXJzZSBpdCwgYW5kIGlmIGl0IGZhaWxzLCBpdCByZXR1cm5zIHRoZSBzdHJpbmdpZmllZCB2ZXJzaW9uXG4gKiBvZiB0aGUgaW5wdXRcbiAqXG4gKiBAcGFyYW0ge2FueX0gcmF3VmFsdWUgLSBUaGUgdmFsdWUgdG8gYmUgc3RyaW5naWZpZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJzZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcGFyc2VzIGEgc3RyaW5nIGludG8gYSBKYXZhU2NyaXB0IG9iamVjdC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVuY29kZXIgLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBhbmQgcmV0dXJucyBhIHN0cmluZy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZ2lmaWVkIHZlcnNpb24gb2YgdGhlIHJhd1ZhbHVlLlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlTYWZlbHkocmF3VmFsdWUsIHBhcnNlciwgZW5jb2Rlcikge1xuICBpZiAodXRpbHMuaXNTdHJpbmcocmF3VmFsdWUpKSB7XG4gICAgdHJ5IHtcbiAgICAgIChwYXJzZXIgfHwgSlNPTi5wYXJzZSkocmF3VmFsdWUpO1xuICAgICAgcmV0dXJuIHV0aWxzLnRyaW0ocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm5hbWUgIT09ICdTeW50YXhFcnJvcicpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKGVuY29kZXIgfHwgSlNPTi5zdHJpbmdpZnkpKHJhd1ZhbHVlKTtcbn1cblxuY29uc3QgZGVmYXVsdHMgPSB7XG5cbiAgdHJhbnNpdGlvbmFsOiB0cmFuc2l0aW9uYWxEZWZhdWx0cyxcblxuICBhZGFwdGVyOiBbJ3hocicsICdodHRwJywgJ2ZldGNoJ10sXG5cbiAgdHJhbnNmb3JtUmVxdWVzdDogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlcXVlc3QoZGF0YSwgaGVhZGVycykge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gaGVhZGVycy5nZXRDb250ZW50VHlwZSgpIHx8ICcnO1xuICAgIGNvbnN0IGhhc0pTT05Db250ZW50VHlwZSA9IGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA+IC0xO1xuICAgIGNvbnN0IGlzT2JqZWN0UGF5bG9hZCA9IHV0aWxzLmlzT2JqZWN0KGRhdGEpO1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCAmJiB1dGlscy5pc0hUTUxGb3JtKGRhdGEpKSB7XG4gICAgICBkYXRhID0gbmV3IEZvcm1EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzRm9ybURhdGEgPSB1dGlscy5pc0Zvcm1EYXRhKGRhdGEpO1xuXG4gICAgaWYgKGlzRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiBoYXNKU09OQ29udGVudFR5cGUgPyBKU09OLnN0cmluZ2lmeShmb3JtRGF0YVRvSlNPTihkYXRhKSkgOiBkYXRhO1xuICAgIH1cblxuICAgIGlmICh1dGlscy5pc0FycmF5QnVmZmVyKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc0J1ZmZlcihkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNTdHJlYW0oZGF0YSkgfHxcbiAgICAgIHV0aWxzLmlzRmlsZShkYXRhKSB8fFxuICAgICAgdXRpbHMuaXNCbG9iKGRhdGEpIHx8XG4gICAgICB1dGlscy5pc1JlYWRhYmxlU3RyZWFtKGRhdGEpXG4gICAgKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgaWYgKHV0aWxzLmlzQXJyYXlCdWZmZXJWaWV3KGRhdGEpKSB7XG4gICAgICByZXR1cm4gZGF0YS5idWZmZXI7XG4gICAgfVxuICAgIGlmICh1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhkYXRhKSkge1xuICAgICAgaGVhZGVycy5zZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgnLCBmYWxzZSk7XG4gICAgICByZXR1cm4gZGF0YS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGxldCBpc0ZpbGVMaXN0O1xuXG4gICAgaWYgKGlzT2JqZWN0UGF5bG9hZCkge1xuICAgICAgaWYgKGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRvVVJMRW5jb2RlZEZvcm0oZGF0YSwgdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKChpc0ZpbGVMaXN0ID0gdXRpbHMuaXNGaWxlTGlzdChkYXRhKSkgfHwgY29udGVudFR5cGUuaW5kZXhPZignbXVsdGlwYXJ0L2Zvcm0tZGF0YScpID4gLTEpIHtcbiAgICAgICAgY29uc3QgX0Zvcm1EYXRhID0gdGhpcy5lbnYgJiYgdGhpcy5lbnYuRm9ybURhdGE7XG5cbiAgICAgICAgcmV0dXJuIHRvRm9ybURhdGEoXG4gICAgICAgICAgaXNGaWxlTGlzdCA/IHsnZmlsZXNbXSc6IGRhdGF9IDogZGF0YSxcbiAgICAgICAgICBfRm9ybURhdGEgJiYgbmV3IF9Gb3JtRGF0YSgpLFxuICAgICAgICAgIHRoaXMuZm9ybVNlcmlhbGl6ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNPYmplY3RQYXlsb2FkIHx8IGhhc0pTT05Db250ZW50VHlwZSApIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoJ2FwcGxpY2F0aW9uL2pzb24nLCBmYWxzZSk7XG4gICAgICByZXR1cm4gc3RyaW5naWZ5U2FmZWx5KGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XSxcblxuICB0cmFuc2Zvcm1SZXNwb25zZTogW2Z1bmN0aW9uIHRyYW5zZm9ybVJlc3BvbnNlKGRhdGEpIHtcbiAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSB0aGlzLnRyYW5zaXRpb25hbCB8fCBkZWZhdWx0cy50cmFuc2l0aW9uYWw7XG4gICAgY29uc3QgZm9yY2VkSlNPTlBhcnNpbmcgPSB0cmFuc2l0aW9uYWwgJiYgdHJhbnNpdGlvbmFsLmZvcmNlZEpTT05QYXJzaW5nO1xuICAgIGNvbnN0IEpTT05SZXF1ZXN0ZWQgPSB0aGlzLnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nO1xuXG4gICAgaWYgKHV0aWxzLmlzUmVzcG9uc2UoZGF0YSkgfHwgdXRpbHMuaXNSZWFkYWJsZVN0cmVhbShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgdXRpbHMuaXNTdHJpbmcoZGF0YSkgJiYgKChmb3JjZWRKU09OUGFyc2luZyAmJiAhdGhpcy5yZXNwb25zZVR5cGUpIHx8IEpTT05SZXF1ZXN0ZWQpKSB7XG4gICAgICBjb25zdCBzaWxlbnRKU09OUGFyc2luZyA9IHRyYW5zaXRpb25hbCAmJiB0cmFuc2l0aW9uYWwuc2lsZW50SlNPTlBhcnNpbmc7XG4gICAgICBjb25zdCBzdHJpY3RKU09OUGFyc2luZyA9ICFzaWxlbnRKU09OUGFyc2luZyAmJiBKU09OUmVxdWVzdGVkO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKHN0cmljdEpTT05QYXJzaW5nKSB7XG4gICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ1N5bnRheEVycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgQXhpb3NFcnJvci5mcm9tKGUsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVNQT05TRSwgdGhpcywgbnVsbCwgdGhpcy5yZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfV0sXG5cbiAgLyoqXG4gICAqIEEgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgdG8gYWJvcnQgYSByZXF1ZXN0LiBJZiBzZXQgdG8gMCAoZGVmYXVsdCkgYVxuICAgKiB0aW1lb3V0IGlzIG5vdCBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dDogMCxcblxuICB4c3JmQ29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxuICB4c3JmSGVhZGVyTmFtZTogJ1gtWFNSRi1UT0tFTicsXG5cbiAgbWF4Q29udGVudExlbmd0aDogLTEsXG4gIG1heEJvZHlMZW5ndGg6IC0xLFxuXG4gIGVudjoge1xuICAgIEZvcm1EYXRhOiBwbGF0Zm9ybS5jbGFzc2VzLkZvcm1EYXRhLFxuICAgIEJsb2I6IHBsYXRmb3JtLmNsYXNzZXMuQmxvYlxuICB9LFxuXG4gIHZhbGlkYXRlU3RhdHVzOiBmdW5jdGlvbiB2YWxpZGF0ZVN0YXR1cyhzdGF0dXMpIHtcbiAgICByZXR1cm4gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDA7XG4gIH0sXG5cbiAgaGVhZGVyczoge1xuICAgIGNvbW1vbjoge1xuICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyonLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxufTtcblxudXRpbHMuZm9yRWFjaChbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCddLCAobWV0aG9kKSA9PiB7XG4gIGRlZmF1bHRzLmhlYWRlcnNbbWV0aG9kXSA9IHt9O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHRzO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5cbi8vIFJhd0F4aW9zSGVhZGVycyB3aG9zZSBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkIGJ5IG5vZGVcbi8vIGMuZi4gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9odHRwLmh0bWwjaHR0cF9tZXNzYWdlX2hlYWRlcnNcbmNvbnN0IGlnbm9yZUR1cGxpY2F0ZU9mID0gdXRpbHMudG9PYmplY3RTZXQoW1xuICAnYWdlJywgJ2F1dGhvcml6YXRpb24nLCAnY29udGVudC1sZW5ndGgnLCAnY29udGVudC10eXBlJywgJ2V0YWcnLFxuICAnZXhwaXJlcycsICdmcm9tJywgJ2hvc3QnLCAnaWYtbW9kaWZpZWQtc2luY2UnLCAnaWYtdW5tb2RpZmllZC1zaW5jZScsXG4gICdsYXN0LW1vZGlmaWVkJywgJ2xvY2F0aW9uJywgJ21heC1mb3J3YXJkcycsICdwcm94eS1hdXRob3JpemF0aW9uJyxcbiAgJ3JlZmVyZXInLCAncmV0cnktYWZ0ZXInLCAndXNlci1hZ2VudCdcbl0pO1xuXG4vKipcbiAqIFBhcnNlIGhlYWRlcnMgaW50byBhbiBvYmplY3RcbiAqXG4gKiBgYGBcbiAqIERhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMDg6NTg6NDkgR01UXG4gKiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25cbiAqIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAqIFRyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmF3SGVhZGVycyBIZWFkZXJzIG5lZWRpbmcgdG8gYmUgcGFyc2VkXG4gKlxuICogQHJldHVybnMge09iamVjdH0gSGVhZGVycyBwYXJzZWQgaW50byBhbiBvYmplY3RcbiAqL1xuZXhwb3J0IGRlZmF1bHQgcmF3SGVhZGVycyA9PiB7XG4gIGNvbnN0IHBhcnNlZCA9IHt9O1xuICBsZXQga2V5O1xuICBsZXQgdmFsO1xuICBsZXQgaTtcblxuICByYXdIZWFkZXJzICYmIHJhd0hlYWRlcnMuc3BsaXQoJ1xcbicpLmZvckVhY2goZnVuY3Rpb24gcGFyc2VyKGxpbmUpIHtcbiAgICBpID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgaSkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gbGluZS5zdWJzdHJpbmcoaSArIDEpLnRyaW0oKTtcblxuICAgIGlmICgha2V5IHx8IChwYXJzZWRba2V5XSAmJiBpZ25vcmVEdXBsaWNhdGVPZltrZXldKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgaWYgKHBhcnNlZFtrZXldKSB7XG4gICAgICAgIHBhcnNlZFtrZXldLnB1c2godmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZFtrZXldID0gW3ZhbF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlZFtrZXldID0gcGFyc2VkW2tleV0gPyBwYXJzZWRba2V5XSArICcsICcgKyB2YWwgOiB2YWw7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcGFyc2VkO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzLmpzJztcbmltcG9ydCBwYXJzZUhlYWRlcnMgZnJvbSAnLi4vaGVscGVycy9wYXJzZUhlYWRlcnMuanMnO1xuXG5jb25zdCAkaW50ZXJuYWxzID0gU3ltYm9sKCdpbnRlcm5hbHMnKTtcblxuZnVuY3Rpb24gbm9ybWFsaXplSGVhZGVyKGhlYWRlcikge1xuICByZXR1cm4gaGVhZGVyICYmIFN0cmluZyhoZWFkZXIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gdXRpbHMuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5tYXAobm9ybWFsaXplVmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VUb2tlbnMoc3RyKSB7XG4gIGNvbnN0IHRva2VucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGNvbnN0IHRva2Vuc1JFID0gLyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZztcbiAgbGV0IG1hdGNoO1xuXG4gIHdoaWxlICgobWF0Y2ggPSB0b2tlbnNSRS5leGVjKHN0cikpKSB7XG4gICAgdG9rZW5zW21hdGNoWzFdXSA9IG1hdGNoWzJdO1xuICB9XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cblxuY29uc3QgaXNWYWxpZEhlYWRlck5hbWUgPSAoc3RyKSA9PiAvXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KHN0ci50cmltKCkpO1xuXG5mdW5jdGlvbiBtYXRjaEhlYWRlclZhbHVlKGNvbnRleHQsIHZhbHVlLCBoZWFkZXIsIGZpbHRlciwgaXNIZWFkZXJOYW1lRmlsdGVyKSB7XG4gIGlmICh1dGlscy5pc0Z1bmN0aW9uKGZpbHRlcikpIHtcbiAgICByZXR1cm4gZmlsdGVyLmNhbGwodGhpcywgdmFsdWUsIGhlYWRlcik7XG4gIH1cblxuICBpZiAoaXNIZWFkZXJOYW1lRmlsdGVyKSB7XG4gICAgdmFsdWUgPSBoZWFkZXI7XG4gIH1cblxuICBpZiAoIXV0aWxzLmlzU3RyaW5nKHZhbHVlKSkgcmV0dXJuO1xuXG4gIGlmICh1dGlscy5pc1N0cmluZyhmaWx0ZXIpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XG4gIH1cblxuICBpZiAodXRpbHMuaXNSZWdFeHAoZmlsdGVyKSkge1xuICAgIHJldHVybiBmaWx0ZXIudGVzdCh2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9ybWF0SGVhZGVyKGhlYWRlcikge1xuICByZXR1cm4gaGVhZGVyLnRyaW0oKVxuICAgIC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywgKHcsIGNoYXIsIHN0cikgPT4ge1xuICAgICAgcmV0dXJuIGNoYXIudG9VcHBlckNhc2UoKSArIHN0cjtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBY2Nlc3NvcnMob2JqLCBoZWFkZXIpIHtcbiAgY29uc3QgYWNjZXNzb3JOYW1lID0gdXRpbHMudG9DYW1lbENhc2UoJyAnICsgaGVhZGVyKTtcblxuICBbJ2dldCcsICdzZXQnLCAnaGFzJ10uZm9yRWFjaChtZXRob2ROYW1lID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBtZXRob2ROYW1lICsgYWNjZXNzb3JOYW1lLCB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24oYXJnMSwgYXJnMiwgYXJnMykge1xuICAgICAgICByZXR1cm4gdGhpc1ttZXRob2ROYW1lXS5jYWxsKHRoaXMsIGhlYWRlciwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gICAgICB9LFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0pO1xufVxuXG5jbGFzcyBBeGlvc0hlYWRlcnMge1xuICBjb25zdHJ1Y3RvcihoZWFkZXJzKSB7XG4gICAgaGVhZGVycyAmJiB0aGlzLnNldChoZWFkZXJzKTtcbiAgfVxuXG4gIHNldChoZWFkZXIsIHZhbHVlT3JSZXdyaXRlLCByZXdyaXRlKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBzZXRIZWFkZXIoX3ZhbHVlLCBfaGVhZGVyLCBfcmV3cml0ZSkge1xuICAgICAgY29uc3QgbEhlYWRlciA9IG5vcm1hbGl6ZUhlYWRlcihfaGVhZGVyKTtcblxuICAgICAgaWYgKCFsSGVhZGVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleShzZWxmLCBsSGVhZGVyKTtcblxuICAgICAgaWYoIWtleSB8fCBzZWxmW2tleV0gPT09IHVuZGVmaW5lZCB8fCBfcmV3cml0ZSA9PT0gdHJ1ZSB8fCAoX3Jld3JpdGUgPT09IHVuZGVmaW5lZCAmJiBzZWxmW2tleV0gIT09IGZhbHNlKSkge1xuICAgICAgICBzZWxmW2tleSB8fCBfaGVhZGVyXSA9IG5vcm1hbGl6ZVZhbHVlKF92YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2V0SGVhZGVycyA9IChoZWFkZXJzLCBfcmV3cml0ZSkgPT5cbiAgICAgIHV0aWxzLmZvckVhY2goaGVhZGVycywgKF92YWx1ZSwgX2hlYWRlcikgPT4gc2V0SGVhZGVyKF92YWx1ZSwgX2hlYWRlciwgX3Jld3JpdGUpKTtcblxuICAgIGlmICh1dGlscy5pc1BsYWluT2JqZWN0KGhlYWRlcikgfHwgaGVhZGVyIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcikge1xuICAgICAgc2V0SGVhZGVycyhoZWFkZXIsIHZhbHVlT3JSZXdyaXRlKVxuICAgIH0gZWxzZSBpZih1dGlscy5pc1N0cmluZyhoZWFkZXIpICYmIChoZWFkZXIgPSBoZWFkZXIudHJpbSgpKSAmJiAhaXNWYWxpZEhlYWRlck5hbWUoaGVhZGVyKSkge1xuICAgICAgc2V0SGVhZGVycyhwYXJzZUhlYWRlcnMoaGVhZGVyKSwgdmFsdWVPclJld3JpdGUpO1xuICAgIH0gZWxzZSBpZiAodXRpbHMuaXNIZWFkZXJzKGhlYWRlcikpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhlYWRlci5lbnRyaWVzKCkpIHtcbiAgICAgICAgc2V0SGVhZGVyKHZhbHVlLCBrZXksIHJld3JpdGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXIgIT0gbnVsbCAmJiBzZXRIZWFkZXIodmFsdWVPclJld3JpdGUsIGhlYWRlciwgcmV3cml0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQoaGVhZGVyLCBwYXJzZXIpIHtcbiAgICBoZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoaGVhZGVyKTtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkodGhpcywgaGVhZGVyKTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXNba2V5XTtcblxuICAgICAgICBpZiAoIXBhcnNlcikge1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZXIgPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VUb2tlbnModmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHV0aWxzLmlzRnVuY3Rpb24ocGFyc2VyKSkge1xuICAgICAgICAgIHJldHVybiBwYXJzZXIuY2FsbCh0aGlzLCB2YWx1ZSwga2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1dGlscy5pc1JlZ0V4cChwYXJzZXIpKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlci5leGVjKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3BhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFzKGhlYWRlciwgbWF0Y2hlcikge1xuICAgIGhlYWRlciA9IG5vcm1hbGl6ZUhlYWRlcihoZWFkZXIpO1xuXG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgY29uc3Qga2V5ID0gdXRpbHMuZmluZEtleSh0aGlzLCBoZWFkZXIpO1xuXG4gICAgICByZXR1cm4gISEoa2V5ICYmIHRoaXNba2V5XSAhPT0gdW5kZWZpbmVkICYmICghbWF0Y2hlciB8fCBtYXRjaEhlYWRlclZhbHVlKHRoaXMsIHRoaXNba2V5XSwga2V5LCBtYXRjaGVyKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGRlbGV0ZShoZWFkZXIsIG1hdGNoZXIpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBsZXQgZGVsZXRlZCA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gZGVsZXRlSGVhZGVyKF9oZWFkZXIpIHtcbiAgICAgIF9oZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoX2hlYWRlcik7XG5cbiAgICAgIGlmIChfaGVhZGVyKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHV0aWxzLmZpbmRLZXkoc2VsZiwgX2hlYWRlcik7XG5cbiAgICAgICAgaWYgKGtleSAmJiAoIW1hdGNoZXIgfHwgbWF0Y2hIZWFkZXJWYWx1ZShzZWxmLCBzZWxmW2tleV0sIGtleSwgbWF0Y2hlcikpKSB7XG4gICAgICAgICAgZGVsZXRlIHNlbGZba2V5XTtcblxuICAgICAgICAgIGRlbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHV0aWxzLmlzQXJyYXkoaGVhZGVyKSkge1xuICAgICAgaGVhZGVyLmZvckVhY2goZGVsZXRlSGVhZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlSGVhZGVyKGhlYWRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XG4gIH1cblxuICBjbGVhcihtYXRjaGVyKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMpO1xuICAgIGxldCBpID0ga2V5cy5sZW5ndGg7XG4gICAgbGV0IGRlbGV0ZWQgPSBmYWxzZTtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICBpZighbWF0Y2hlciB8fCBtYXRjaEhlYWRlclZhbHVlKHRoaXMsIHRoaXNba2V5XSwga2V5LCBtYXRjaGVyLCB0cnVlKSkge1xuICAgICAgICBkZWxldGUgdGhpc1trZXldO1xuICAgICAgICBkZWxldGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZXRlZDtcbiAgfVxuXG4gIG5vcm1hbGl6ZShmb3JtYXQpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBoZWFkZXJzID0ge307XG5cbiAgICB1dGlscy5mb3JFYWNoKHRoaXMsICh2YWx1ZSwgaGVhZGVyKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSB1dGlscy5maW5kS2V5KGhlYWRlcnMsIGhlYWRlcik7XG5cbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgc2VsZltrZXldID0gbm9ybWFsaXplVmFsdWUodmFsdWUpO1xuICAgICAgICBkZWxldGUgc2VsZltoZWFkZXJdO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBmb3JtYXQgPyBmb3JtYXRIZWFkZXIoaGVhZGVyKSA6IFN0cmluZyhoZWFkZXIpLnRyaW0oKTtcblxuICAgICAgaWYgKG5vcm1hbGl6ZWQgIT09IGhlYWRlcikge1xuICAgICAgICBkZWxldGUgc2VsZltoZWFkZXJdO1xuICAgICAgfVxuXG4gICAgICBzZWxmW25vcm1hbGl6ZWRdID0gbm9ybWFsaXplVmFsdWUodmFsdWUpO1xuXG4gICAgICBoZWFkZXJzW25vcm1hbGl6ZWRdID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29uY2F0KC4uLnRhcmdldHMpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywgLi4udGFyZ2V0cyk7XG4gIH1cblxuICB0b0pTT04oYXNTdHJpbmdzKSB7XG4gICAgY29uc3Qgb2JqID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIHV0aWxzLmZvckVhY2godGhpcywgKHZhbHVlLCBoZWFkZXIpID0+IHtcbiAgICAgIHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09IGZhbHNlICYmIChvYmpbaGVhZGVyXSA9IGFzU3RyaW5ncyAmJiB1dGlscy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJywgJykgOiB2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgfVxuXG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtoZWFkZXIsIHZhbHVlXSkgPT4gaGVhZGVyICsgJzogJyArIHZhbHVlKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIGdldCBbU3ltYm9sLnRvU3RyaW5nVGFnXSgpIHtcbiAgICByZXR1cm4gJ0F4aW9zSGVhZGVycyc7XG4gIH1cblxuICBzdGF0aWMgZnJvbSh0aGluZykge1xuICAgIHJldHVybiB0aGluZyBpbnN0YW5jZW9mIHRoaXMgPyB0aGluZyA6IG5ldyB0aGlzKHRoaW5nKTtcbiAgfVxuXG4gIHN0YXRpYyBjb25jYXQoZmlyc3QsIC4uLnRhcmdldHMpIHtcbiAgICBjb25zdCBjb21wdXRlZCA9IG5ldyB0aGlzKGZpcnN0KTtcblxuICAgIHRhcmdldHMuZm9yRWFjaCgodGFyZ2V0KSA9PiBjb21wdXRlZC5zZXQodGFyZ2V0KSk7XG5cbiAgICByZXR1cm4gY29tcHV0ZWQ7XG4gIH1cblxuICBzdGF0aWMgYWNjZXNzb3IoaGVhZGVyKSB7XG4gICAgY29uc3QgaW50ZXJuYWxzID0gdGhpc1skaW50ZXJuYWxzXSA9ICh0aGlzWyRpbnRlcm5hbHNdID0ge1xuICAgICAgYWNjZXNzb3JzOiB7fVxuICAgIH0pO1xuXG4gICAgY29uc3QgYWNjZXNzb3JzID0gaW50ZXJuYWxzLmFjY2Vzc29ycztcbiAgICBjb25zdCBwcm90b3R5cGUgPSB0aGlzLnByb3RvdHlwZTtcblxuICAgIGZ1bmN0aW9uIGRlZmluZUFjY2Vzc29yKF9oZWFkZXIpIHtcbiAgICAgIGNvbnN0IGxIZWFkZXIgPSBub3JtYWxpemVIZWFkZXIoX2hlYWRlcik7XG5cbiAgICAgIGlmICghYWNjZXNzb3JzW2xIZWFkZXJdKSB7XG4gICAgICAgIGJ1aWxkQWNjZXNzb3JzKHByb3RvdHlwZSwgX2hlYWRlcik7XG4gICAgICAgIGFjY2Vzc29yc1tsSGVhZGVyXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXRpbHMuaXNBcnJheShoZWFkZXIpID8gaGVhZGVyLmZvckVhY2goZGVmaW5lQWNjZXNzb3IpIDogZGVmaW5lQWNjZXNzb3IoaGVhZGVyKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5cbkF4aW9zSGVhZGVycy5hY2Nlc3NvcihbJ0NvbnRlbnQtVHlwZScsICdDb250ZW50LUxlbmd0aCcsICdBY2NlcHQnLCAnQWNjZXB0LUVuY29kaW5nJywgJ1VzZXItQWdlbnQnLCAnQXV0aG9yaXphdGlvbiddKTtcblxuLy8gcmVzZXJ2ZWQgbmFtZXMgaG90Zml4XG51dGlscy5yZWR1Y2VEZXNjcmlwdG9ycyhBeGlvc0hlYWRlcnMucHJvdG90eXBlLCAoe3ZhbHVlfSwga2V5KSA9PiB7XG4gIGxldCBtYXBwZWQgPSBrZXlbMF0udG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKTsgLy8gbWFwIGBzZXRgID0+IGBTZXRgXG4gIHJldHVybiB7XG4gICAgZ2V0OiAoKSA9PiB2YWx1ZSxcbiAgICBzZXQoaGVhZGVyVmFsdWUpIHtcbiAgICAgIHRoaXNbbWFwcGVkXSA9IGhlYWRlclZhbHVlO1xuICAgIH1cbiAgfVxufSk7XG5cbnV0aWxzLmZyZWV6ZU1ldGhvZHMoQXhpb3NIZWFkZXJzKTtcblxuZXhwb3J0IGRlZmF1bHQgQXhpb3NIZWFkZXJzO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi8uLi91dGlscy5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMvaW5kZXguanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBkYXRhIGZvciBhIHJlcXVlc3Qgb3IgYSByZXNwb25zZVxuICpcbiAqIEBwYXJhbSB7QXJyYXl8RnVuY3Rpb259IGZucyBBIHNpbmdsZSBmdW5jdGlvbiBvciBBcnJheSBvZiBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7P09iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIG9iamVjdFxuICpcbiAqIEByZXR1cm5zIHsqfSBUaGUgcmVzdWx0aW5nIHRyYW5zZm9ybWVkIGRhdGFcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJhbnNmb3JtRGF0YShmbnMsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IGNvbmZpZyA9IHRoaXMgfHwgZGVmYXVsdHM7XG4gIGNvbnN0IGNvbnRleHQgPSByZXNwb25zZSB8fCBjb25maWc7XG4gIGNvbnN0IGhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShjb250ZXh0LmhlYWRlcnMpO1xuICBsZXQgZGF0YSA9IGNvbnRleHQuZGF0YTtcblxuICB1dGlscy5mb3JFYWNoKGZucywgZnVuY3Rpb24gdHJhbnNmb3JtKGZuKSB7XG4gICAgZGF0YSA9IGZuLmNhbGwoY29uZmlnLCBkYXRhLCBoZWFkZXJzLm5vcm1hbGl6ZSgpLCByZXNwb25zZSA/IHJlc3BvbnNlLnN0YXR1cyA6IHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGhlYWRlcnMubm9ybWFsaXplKCk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzQ2FuY2VsKHZhbHVlKSB7XG4gIHJldHVybiAhISh2YWx1ZSAmJiB2YWx1ZS5fX0NBTkNFTF9fKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5cbi8qKlxuICogQSBgQ2FuY2VsZWRFcnJvcmAgaXMgYW4gb2JqZWN0IHRoYXQgaXMgdGhyb3duIHdoZW4gYW4gb3BlcmF0aW9uIGlzIGNhbmNlbGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nPX0gbWVzc2FnZSBUaGUgbWVzc2FnZS5cbiAqIEBwYXJhbSB7T2JqZWN0PX0gY29uZmlnIFRoZSBjb25maWcuXG4gKiBAcGFyYW0ge09iamVjdD19IHJlcXVlc3QgVGhlIHJlcXVlc3QuXG4gKlxuICogQHJldHVybnMge0NhbmNlbGVkRXJyb3J9IFRoZSBjcmVhdGVkIGVycm9yLlxuICovXG5mdW5jdGlvbiBDYW5jZWxlZEVycm9yKG1lc3NhZ2UsIGNvbmZpZywgcmVxdWVzdCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXEtbnVsbCxlcWVxZXFcbiAgQXhpb3NFcnJvci5jYWxsKHRoaXMsIG1lc3NhZ2UgPT0gbnVsbCA/ICdjYW5jZWxlZCcgOiBtZXNzYWdlLCBBeGlvc0Vycm9yLkVSUl9DQU5DRUxFRCwgY29uZmlnLCByZXF1ZXN0KTtcbiAgdGhpcy5uYW1lID0gJ0NhbmNlbGVkRXJyb3InO1xufVxuXG51dGlscy5pbmhlcml0cyhDYW5jZWxlZEVycm9yLCBBeGlvc0Vycm9yLCB7XG4gIF9fQ0FOQ0VMX186IHRydWVcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBDYW5jZWxlZEVycm9yO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tICcuL0F4aW9zRXJyb3IuanMnO1xuXG4vKipcbiAqIFJlc29sdmUgb3IgcmVqZWN0IGEgUHJvbWlzZSBiYXNlZCBvbiByZXNwb25zZSBzdGF0dXMuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcmVzb2x2ZSBBIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWplY3QgQSBmdW5jdGlvbiB0aGF0IHJlamVjdHMgdGhlIHByb21pc2UuXG4gKiBAcGFyYW0ge29iamVjdH0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgcmVzcG9uc2UpIHtcbiAgY29uc3QgdmFsaWRhdGVTdGF0dXMgPSByZXNwb25zZS5jb25maWcudmFsaWRhdGVTdGF0dXM7XG4gIGlmICghcmVzcG9uc2Uuc3RhdHVzIHx8ICF2YWxpZGF0ZVN0YXR1cyB8fCB2YWxpZGF0ZVN0YXR1cyhyZXNwb25zZS5zdGF0dXMpKSB7XG4gICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gIH0gZWxzZSB7XG4gICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKFxuICAgICAgJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJyArIHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIFtBeGlvc0Vycm9yLkVSUl9CQURfUkVRVUVTVCwgQXhpb3NFcnJvci5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKHJlc3BvbnNlLnN0YXR1cyAvIDEwMCkgLSA0XSxcbiAgICAgIHJlc3BvbnNlLmNvbmZpZyxcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QsXG4gICAgICByZXNwb25zZVxuICAgICkpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2wodXJsKSB7XG4gIGNvbnN0IG1hdGNoID0gL14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWModXJsKTtcbiAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENhbGN1bGF0ZSBkYXRhIG1heFJhdGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBbc2FtcGxlc0NvdW50PSAxMF1cbiAqIEBwYXJhbSB7TnVtYmVyfSBbbWluPSAxMDAwXVxuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBzcGVlZG9tZXRlcihzYW1wbGVzQ291bnQsIG1pbikge1xuICBzYW1wbGVzQ291bnQgPSBzYW1wbGVzQ291bnQgfHwgMTA7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IEFycmF5KHNhbXBsZXNDb3VudCk7XG4gIGNvbnN0IHRpbWVzdGFtcHMgPSBuZXcgQXJyYXkoc2FtcGxlc0NvdW50KTtcbiAgbGV0IGhlYWQgPSAwO1xuICBsZXQgdGFpbCA9IDA7XG4gIGxldCBmaXJzdFNhbXBsZVRTO1xuXG4gIG1pbiA9IG1pbiAhPT0gdW5kZWZpbmVkID8gbWluIDogMTAwMDtcblxuICByZXR1cm4gZnVuY3Rpb24gcHVzaChjaHVua0xlbmd0aCkge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBzdGFydGVkQXQgPSB0aW1lc3RhbXBzW3RhaWxdO1xuXG4gICAgaWYgKCFmaXJzdFNhbXBsZVRTKSB7XG4gICAgICBmaXJzdFNhbXBsZVRTID0gbm93O1xuICAgIH1cblxuICAgIGJ5dGVzW2hlYWRdID0gY2h1bmtMZW5ndGg7XG4gICAgdGltZXN0YW1wc1toZWFkXSA9IG5vdztcblxuICAgIGxldCBpID0gdGFpbDtcbiAgICBsZXQgYnl0ZXNDb3VudCA9IDA7XG5cbiAgICB3aGlsZSAoaSAhPT0gaGVhZCkge1xuICAgICAgYnl0ZXNDb3VudCArPSBieXRlc1tpKytdO1xuICAgICAgaSA9IGkgJSBzYW1wbGVzQ291bnQ7XG4gICAgfVxuXG4gICAgaGVhZCA9IChoZWFkICsgMSkgJSBzYW1wbGVzQ291bnQ7XG5cbiAgICBpZiAoaGVhZCA9PT0gdGFpbCkge1xuICAgICAgdGFpbCA9ICh0YWlsICsgMSkgJSBzYW1wbGVzQ291bnQ7XG4gICAgfVxuXG4gICAgaWYgKG5vdyAtIGZpcnN0U2FtcGxlVFMgPCBtaW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXNzZWQgPSBzdGFydGVkQXQgJiYgbm93IC0gc3RhcnRlZEF0O1xuXG4gICAgcmV0dXJuIHBhc3NlZCA/IE1hdGgucm91bmQoYnl0ZXNDb3VudCAqIDEwMDAgLyBwYXNzZWQpIDogdW5kZWZpbmVkO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzcGVlZG9tZXRlcjtcbiIsIi8qKlxuICogVGhyb3R0bGUgZGVjb3JhdG9yXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHBhcmFtIHtOdW1iZXJ9IGZyZXFcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiB0aHJvdHRsZShmbiwgZnJlcSkge1xuICBsZXQgdGltZXN0YW1wID0gMDtcbiAgbGV0IHRocmVzaG9sZCA9IDEwMDAgLyBmcmVxO1xuICBsZXQgbGFzdEFyZ3M7XG4gIGxldCB0aW1lcjtcblxuICBjb25zdCBpbnZva2UgPSAoYXJncywgbm93ID0gRGF0ZS5ub3coKSkgPT4ge1xuICAgIHRpbWVzdGFtcCA9IG5vdztcbiAgICBsYXN0QXJncyA9IG51bGw7XG4gICAgaWYgKHRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgdGltZXIgPSBudWxsO1xuICAgIH1cbiAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcbiAgfVxuXG4gIGNvbnN0IHRocm90dGxlZCA9ICguLi5hcmdzKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBwYXNzZWQgPSBub3cgLSB0aW1lc3RhbXA7XG4gICAgaWYgKCBwYXNzZWQgPj0gdGhyZXNob2xkKSB7XG4gICAgICBpbnZva2UoYXJncywgbm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgICAgaWYgKCF0aW1lcikge1xuICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgICAgICBpbnZva2UobGFzdEFyZ3MpXG4gICAgICAgIH0sIHRocmVzaG9sZCAtIHBhc3NlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZmx1c2ggPSAoKSA9PiBsYXN0QXJncyAmJiBpbnZva2UobGFzdEFyZ3MpO1xuXG4gIHJldHVybiBbdGhyb3R0bGVkLCBmbHVzaF07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRocm90dGxlO1xuIiwiaW1wb3J0IHNwZWVkb21ldGVyIGZyb20gXCIuL3NwZWVkb21ldGVyLmpzXCI7XG5pbXBvcnQgdGhyb3R0bGUgZnJvbSBcIi4vdGhyb3R0bGUuanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNvbnN0IHByb2dyZXNzRXZlbnRSZWR1Y2VyID0gKGxpc3RlbmVyLCBpc0Rvd25sb2FkU3RyZWFtLCBmcmVxID0gMykgPT4ge1xuICBsZXQgYnl0ZXNOb3RpZmllZCA9IDA7XG4gIGNvbnN0IF9zcGVlZG9tZXRlciA9IHNwZWVkb21ldGVyKDUwLCAyNTApO1xuXG4gIHJldHVybiB0aHJvdHRsZShlID0+IHtcbiAgICBjb25zdCBsb2FkZWQgPSBlLmxvYWRlZDtcbiAgICBjb25zdCB0b3RhbCA9IGUubGVuZ3RoQ29tcHV0YWJsZSA/IGUudG90YWwgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcHJvZ3Jlc3NCeXRlcyA9IGxvYWRlZCAtIGJ5dGVzTm90aWZpZWQ7XG4gICAgY29uc3QgcmF0ZSA9IF9zcGVlZG9tZXRlcihwcm9ncmVzc0J5dGVzKTtcbiAgICBjb25zdCBpblJhbmdlID0gbG9hZGVkIDw9IHRvdGFsO1xuXG4gICAgYnl0ZXNOb3RpZmllZCA9IGxvYWRlZDtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBsb2FkZWQsXG4gICAgICB0b3RhbCxcbiAgICAgIHByb2dyZXNzOiB0b3RhbCA/IChsb2FkZWQgLyB0b3RhbCkgOiB1bmRlZmluZWQsXG4gICAgICBieXRlczogcHJvZ3Jlc3NCeXRlcyxcbiAgICAgIHJhdGU6IHJhdGUgPyByYXRlIDogdW5kZWZpbmVkLFxuICAgICAgZXN0aW1hdGVkOiByYXRlICYmIHRvdGFsICYmIGluUmFuZ2UgPyAodG90YWwgLSBsb2FkZWQpIC8gcmF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgIGV2ZW50OiBlLFxuICAgICAgbGVuZ3RoQ29tcHV0YWJsZTogdG90YWwgIT0gbnVsbCxcbiAgICAgIFtpc0Rvd25sb2FkU3RyZWFtID8gJ2Rvd25sb2FkJyA6ICd1cGxvYWQnXTogdHJ1ZVxuICAgIH07XG5cbiAgICBsaXN0ZW5lcihkYXRhKTtcbiAgfSwgZnJlcSk7XG59XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yID0gKHRvdGFsLCB0aHJvdHRsZWQpID0+IHtcbiAgY29uc3QgbGVuZ3RoQ29tcHV0YWJsZSA9IHRvdGFsICE9IG51bGw7XG5cbiAgcmV0dXJuIFsobG9hZGVkKSA9PiB0aHJvdHRsZWRbMF0oe1xuICAgIGxlbmd0aENvbXB1dGFibGUsXG4gICAgdG90YWwsXG4gICAgbG9hZGVkXG4gIH0pLCB0aHJvdHRsZWRbMV1dO1xufVxuXG5leHBvcnQgY29uc3QgYXN5bmNEZWNvcmF0b3IgPSAoZm4pID0+ICguLi5hcmdzKSA9PiB1dGlscy5hc2FwKCgpID0+IGZuKC4uLmFyZ3MpKTtcbiIsImltcG9ydCBwbGF0Zm9ybSBmcm9tICcuLi9wbGF0Zm9ybS9pbmRleC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudiA/ICgob3JpZ2luLCBpc01TSUUpID0+ICh1cmwpID0+IHtcbiAgdXJsID0gbmV3IFVSTCh1cmwsIHBsYXRmb3JtLm9yaWdpbik7XG5cbiAgcmV0dXJuIChcbiAgICBvcmlnaW4ucHJvdG9jb2wgPT09IHVybC5wcm90b2NvbCAmJlxuICAgIG9yaWdpbi5ob3N0ID09PSB1cmwuaG9zdCAmJlxuICAgIChpc01TSUUgfHwgb3JpZ2luLnBvcnQgPT09IHVybC5wb3J0KVxuICApO1xufSkoXG4gIG5ldyBVUkwocGxhdGZvcm0ub3JpZ2luKSxcbiAgcGxhdGZvcm0ubmF2aWdhdG9yICYmIC8obXNpZXx0cmlkZW50KS9pLnRlc3QocGxhdGZvcm0ubmF2aWdhdG9yLnVzZXJBZ2VudClcbikgOiAoKSA9PiB0cnVlO1xuIiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuaW1wb3J0IHBsYXRmb3JtIGZyb20gJy4uL3BsYXRmb3JtL2luZGV4LmpzJztcblxuZXhwb3J0IGRlZmF1bHQgcGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyRW52ID9cblxuICAvLyBTdGFuZGFyZCBicm93c2VyIGVudnMgc3VwcG9ydCBkb2N1bWVudC5jb29raWVcbiAge1xuICAgIHdyaXRlKG5hbWUsIHZhbHVlLCBleHBpcmVzLCBwYXRoLCBkb21haW4sIHNlY3VyZSkge1xuICAgICAgY29uc3QgY29va2llID0gW25hbWUgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpXTtcblxuICAgICAgdXRpbHMuaXNOdW1iZXIoZXhwaXJlcykgJiYgY29va2llLnB1c2goJ2V4cGlyZXM9JyArIG5ldyBEYXRlKGV4cGlyZXMpLnRvR01UU3RyaW5nKCkpO1xuXG4gICAgICB1dGlscy5pc1N0cmluZyhwYXRoKSAmJiBjb29raWUucHVzaCgncGF0aD0nICsgcGF0aCk7XG5cbiAgICAgIHV0aWxzLmlzU3RyaW5nKGRvbWFpbikgJiYgY29va2llLnB1c2goJ2RvbWFpbj0nICsgZG9tYWluKTtcblxuICAgICAgc2VjdXJlID09PSB0cnVlICYmIGNvb2tpZS5wdXNoKCdzZWN1cmUnKTtcblxuICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llLmpvaW4oJzsgJyk7XG4gICAgfSxcblxuICAgIHJlYWQobmFtZSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58O1xcXFxzKikoJyArIG5hbWUgKyAnKT0oW147XSopJykpO1xuICAgICAgcmV0dXJuIChtYXRjaCA/IGRlY29kZVVSSUNvbXBvbmVudChtYXRjaFszXSkgOiBudWxsKTtcbiAgICB9LFxuXG4gICAgcmVtb3ZlKG5hbWUpIHtcbiAgICAgIHRoaXMud3JpdGUobmFtZSwgJycsIERhdGUubm93KCkgLSA4NjQwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgOlxuXG4gIC8vIE5vbi1zdGFuZGFyZCBicm93c2VyIGVudiAod2ViIHdvcmtlcnMsIHJlYWN0LW5hdGl2ZSkgbGFjayBuZWVkZWQgc3VwcG9ydC5cbiAge1xuICAgIHdyaXRlKCkge30sXG4gICAgcmVhZCgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgcmVtb3ZlKCkge31cbiAgfTtcblxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIFVSTCBpcyBhYnNvbHV0ZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgVGhlIFVSTCB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHNwZWNpZmllZCBVUkwgaXMgYWJzb2x1dGUsIG90aGVyd2lzZSBmYWxzZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0Fic29sdXRlVVJMKHVybCkge1xuICAvLyBBIFVSTCBpcyBjb25zaWRlcmVkIGFic29sdXRlIGlmIGl0IGJlZ2lucyB3aXRoIFwiPHNjaGVtZT46Ly9cIiBvciBcIi8vXCIgKHByb3RvY29sLXJlbGF0aXZlIFVSTCkuXG4gIC8vIFJGQyAzOTg2IGRlZmluZXMgc2NoZW1lIG5hbWUgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIGJlZ2lubmluZyB3aXRoIGEgbGV0dGVyIGFuZCBmb2xsb3dlZFxuICAvLyBieSBhbnkgY29tYmluYXRpb24gb2YgbGV0dGVycywgZGlnaXRzLCBwbHVzLCBwZXJpb2QsIG9yIGh5cGhlbi5cbiAgcmV0dXJuIC9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KHVybCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBVUkwgYnkgY29tYmluaW5nIHRoZSBzcGVjaWZpZWQgVVJMc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVVJMIFRoZSBiYXNlIFVSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlbGF0aXZlVVJMIFRoZSByZWxhdGl2ZSBVUkxcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tYmluZWQgVVJMXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbWJpbmVVUkxzKGJhc2VVUkwsIHJlbGF0aXZlVVJMKSB7XG4gIHJldHVybiByZWxhdGl2ZVVSTFxuICAgID8gYmFzZVVSTC5yZXBsYWNlKC9cXC8/XFwvJC8sICcnKSArICcvJyArIHJlbGF0aXZlVVJMLnJlcGxhY2UoL15cXC8rLywgJycpXG4gICAgOiBiYXNlVVJMO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgaXNBYnNvbHV0ZVVSTCBmcm9tICcuLi9oZWxwZXJzL2lzQWJzb2x1dGVVUkwuanMnO1xuaW1wb3J0IGNvbWJpbmVVUkxzIGZyb20gJy4uL2hlbHBlcnMvY29tYmluZVVSTHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMIGJ5IGNvbWJpbmluZyB0aGUgYmFzZVVSTCB3aXRoIHRoZSByZXF1ZXN0ZWRVUkwsXG4gKiBvbmx5IHdoZW4gdGhlIHJlcXVlc3RlZFVSTCBpcyBub3QgYWxyZWFkeSBhbiBhYnNvbHV0ZSBVUkwuXG4gKiBJZiB0aGUgcmVxdWVzdFVSTCBpcyBhYnNvbHV0ZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXF1ZXN0ZWRVUkwgdW50b3VjaGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVVJMIFRoZSBiYXNlIFVSTFxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3RlZFVSTCBBYnNvbHV0ZSBvciByZWxhdGl2ZSBVUkwgdG8gY29tYmluZVxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21iaW5lZCBmdWxsIHBhdGhcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYnVpbGRGdWxsUGF0aChiYXNlVVJMLCByZXF1ZXN0ZWRVUkwpIHtcbiAgaWYgKGJhc2VVUkwgJiYgIWlzQWJzb2x1dGVVUkwocmVxdWVzdGVkVVJMKSkge1xuICAgIHJldHVybiBjb21iaW5lVVJMcyhiYXNlVVJMLCByZXF1ZXN0ZWRVUkwpO1xuICB9XG4gIHJldHVybiByZXF1ZXN0ZWRVUkw7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscy5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gXCIuL0F4aW9zSGVhZGVycy5qc1wiO1xuXG5jb25zdCBoZWFkZXJzVG9PYmplY3QgPSAodGhpbmcpID0+IHRoaW5nIGluc3RhbmNlb2YgQXhpb3NIZWFkZXJzID8geyAuLi50aGluZyB9IDogdGhpbmc7XG5cbi8qKlxuICogQ29uZmlnLXNwZWNpZmljIG1lcmdlLWZ1bmN0aW9uIHdoaWNoIGNyZWF0ZXMgYSBuZXcgY29uZmlnLW9iamVjdFxuICogYnkgbWVyZ2luZyB0d28gY29uZmlndXJhdGlvbiBvYmplY3RzIHRvZ2V0aGVyLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcxXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnMlxuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IE5ldyBvYmplY3QgcmVzdWx0aW5nIGZyb20gbWVyZ2luZyBjb25maWcyIHRvIGNvbmZpZzFcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWVyZ2VDb25maWcoY29uZmlnMSwgY29uZmlnMikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgY29uZmlnMiA9IGNvbmZpZzIgfHwge307XG4gIGNvbnN0IGNvbmZpZyA9IHt9O1xuXG4gIGZ1bmN0aW9uIGdldE1lcmdlZFZhbHVlKHRhcmdldCwgc291cmNlLCBwcm9wLCBjYXNlbGVzcykge1xuICAgIGlmICh1dGlscy5pc1BsYWluT2JqZWN0KHRhcmdldCkgJiYgdXRpbHMuaXNQbGFpbk9iamVjdChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdXRpbHMubWVyZ2UuY2FsbCh7Y2FzZWxlc3N9LCB0YXJnZXQsIHNvdXJjZSk7XG4gICAgfSBlbHNlIGlmICh1dGlscy5pc1BsYWluT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgIHJldHVybiB1dGlscy5tZXJnZSh7fSwgc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKHV0aWxzLmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgcmV0dXJuIHNvdXJjZS5zbGljZSgpO1xuICAgIH1cbiAgICByZXR1cm4gc291cmNlO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gIGZ1bmN0aW9uIG1lcmdlRGVlcFByb3BlcnRpZXMoYSwgYiwgcHJvcCAsIGNhc2VsZXNzKSB7XG4gICAgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChiKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKGEsIGIsIHByb3AgLCBjYXNlbGVzcyk7XG4gICAgfSBlbHNlIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYSkpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGEsIHByb3AgLCBjYXNlbGVzcyk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gIGZ1bmN0aW9uIHZhbHVlRnJvbUNvbmZpZzIoYSwgYikge1xuICAgIGlmICghdXRpbHMuaXNVbmRlZmluZWQoYikpIHtcbiAgICAgIHJldHVybiBnZXRNZXJnZWRWYWx1ZSh1bmRlZmluZWQsIGIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICBmdW5jdGlvbiBkZWZhdWx0VG9Db25maWcyKGEsIGIpIHtcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKGIpKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBiKTtcbiAgICB9IGVsc2UgaWYgKCF1dGlscy5pc1VuZGVmaW5lZChhKSkge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKHVuZGVmaW5lZCwgYSk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gIGZ1bmN0aW9uIG1lcmdlRGlyZWN0S2V5cyhhLCBiLCBwcm9wKSB7XG4gICAgaWYgKHByb3AgaW4gY29uZmlnMikge1xuICAgICAgcmV0dXJuIGdldE1lcmdlZFZhbHVlKGEsIGIpO1xuICAgIH0gZWxzZSBpZiAocHJvcCBpbiBjb25maWcxKSB7XG4gICAgICByZXR1cm4gZ2V0TWVyZ2VkVmFsdWUodW5kZWZpbmVkLCBhKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBtZXJnZU1hcCA9IHtcbiAgICB1cmw6IHZhbHVlRnJvbUNvbmZpZzIsXG4gICAgbWV0aG9kOiB2YWx1ZUZyb21Db25maWcyLFxuICAgIGRhdGE6IHZhbHVlRnJvbUNvbmZpZzIsXG4gICAgYmFzZVVSTDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0cmFuc2Zvcm1SZXF1ZXN0OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHRyYW5zZm9ybVJlc3BvbnNlOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHBhcmFtc1NlcmlhbGl6ZXI6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgdGltZW91dDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0aW1lb3V0TWVzc2FnZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB3aXRoQ3JlZGVudGlhbHM6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgd2l0aFhTUkZUb2tlbjogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBhZGFwdGVyOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHJlc3BvbnNlVHlwZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB4c3JmQ29va2llTmFtZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB4c3JmSGVhZGVyTmFtZTogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBvblVwbG9hZFByb2dyZXNzOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIG9uRG93bmxvYWRQcm9ncmVzczogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBkZWNvbXByZXNzOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIG1heENvbnRlbnRMZW5ndGg6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgbWF4Qm9keUxlbmd0aDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICBiZWZvcmVSZWRpcmVjdDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICB0cmFuc3BvcnQ6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgaHR0cEFnZW50OiBkZWZhdWx0VG9Db25maWcyLFxuICAgIGh0dHBzQWdlbnQ6IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgY2FuY2VsVG9rZW46IGRlZmF1bHRUb0NvbmZpZzIsXG4gICAgc29ja2V0UGF0aDogZGVmYXVsdFRvQ29uZmlnMixcbiAgICByZXNwb25zZUVuY29kaW5nOiBkZWZhdWx0VG9Db25maWcyLFxuICAgIHZhbGlkYXRlU3RhdHVzOiBtZXJnZURpcmVjdEtleXMsXG4gICAgaGVhZGVyczogKGEsIGIgLCBwcm9wKSA9PiBtZXJnZURlZXBQcm9wZXJ0aWVzKGhlYWRlcnNUb09iamVjdChhKSwgaGVhZGVyc1RvT2JqZWN0KGIpLHByb3AsIHRydWUpXG4gIH07XG5cbiAgdXRpbHMuZm9yRWFjaChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCBjb25maWcxLCBjb25maWcyKSksIGZ1bmN0aW9uIGNvbXB1dGVDb25maWdWYWx1ZShwcm9wKSB7XG4gICAgY29uc3QgbWVyZ2UgPSBtZXJnZU1hcFtwcm9wXSB8fCBtZXJnZURlZXBQcm9wZXJ0aWVzO1xuICAgIGNvbnN0IGNvbmZpZ1ZhbHVlID0gbWVyZ2UoY29uZmlnMVtwcm9wXSwgY29uZmlnMltwcm9wXSwgcHJvcCk7XG4gICAgKHV0aWxzLmlzVW5kZWZpbmVkKGNvbmZpZ1ZhbHVlKSAmJiBtZXJnZSAhPT0gbWVyZ2VEaXJlY3RLZXlzKSB8fCAoY29uZmlnW3Byb3BdID0gY29uZmlnVmFsdWUpO1xuICB9KTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuIiwiaW1wb3J0IHBsYXRmb3JtIGZyb20gXCIuLi9wbGF0Zm9ybS9pbmRleC5qc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlscy5qc1wiO1xuaW1wb3J0IGlzVVJMU2FtZU9yaWdpbiBmcm9tIFwiLi9pc1VSTFNhbWVPcmlnaW4uanNcIjtcbmltcG9ydCBjb29raWVzIGZyb20gXCIuL2Nvb2tpZXMuanNcIjtcbmltcG9ydCBidWlsZEZ1bGxQYXRoIGZyb20gXCIuLi9jb3JlL2J1aWxkRnVsbFBhdGguanNcIjtcbmltcG9ydCBtZXJnZUNvbmZpZyBmcm9tIFwiLi4vY29yZS9tZXJnZUNvbmZpZy5qc1wiO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tIFwiLi4vY29yZS9BeGlvc0hlYWRlcnMuanNcIjtcbmltcG9ydCBidWlsZFVSTCBmcm9tIFwiLi9idWlsZFVSTC5qc1wiO1xuXG5leHBvcnQgZGVmYXVsdCAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IG5ld0NvbmZpZyA9IG1lcmdlQ29uZmlnKHt9LCBjb25maWcpO1xuXG4gIGxldCB7ZGF0YSwgd2l0aFhTUkZUb2tlbiwgeHNyZkhlYWRlck5hbWUsIHhzcmZDb29raWVOYW1lLCBoZWFkZXJzLCBhdXRofSA9IG5ld0NvbmZpZztcblxuICBuZXdDb25maWcuaGVhZGVycyA9IGhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShoZWFkZXJzKTtcblxuICBuZXdDb25maWcudXJsID0gYnVpbGRVUkwoYnVpbGRGdWxsUGF0aChuZXdDb25maWcuYmFzZVVSTCwgbmV3Q29uZmlnLnVybCksIGNvbmZpZy5wYXJhbXMsIGNvbmZpZy5wYXJhbXNTZXJpYWxpemVyKTtcblxuICAvLyBIVFRQIGJhc2ljIGF1dGhlbnRpY2F0aW9uXG4gIGlmIChhdXRoKSB7XG4gICAgaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArXG4gICAgICBidG9hKChhdXRoLnVzZXJuYW1lIHx8ICcnKSArICc6JyArIChhdXRoLnBhc3N3b3JkID8gdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgucGFzc3dvcmQpKSA6ICcnKSlcbiAgICApO1xuICB9XG5cbiAgbGV0IGNvbnRlbnRUeXBlO1xuXG4gIGlmICh1dGlscy5pc0Zvcm1EYXRhKGRhdGEpKSB7XG4gICAgaWYgKHBsYXRmb3JtLmhhc1N0YW5kYXJkQnJvd3NlckVudiB8fCBwbGF0Zm9ybS5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpIHtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUodW5kZWZpbmVkKTsgLy8gTGV0IHRoZSBicm93c2VyIHNldCBpdFxuICAgIH0gZWxzZSBpZiAoKGNvbnRlbnRUeXBlID0gaGVhZGVycy5nZXRDb250ZW50VHlwZSgpKSAhPT0gZmFsc2UpIHtcbiAgICAgIC8vIGZpeCBzZW1pY29sb24gZHVwbGljYXRpb24gaXNzdWUgZm9yIFJlYWN0TmF0aXZlIEZvcm1EYXRhIGltcGxlbWVudGF0aW9uXG4gICAgICBjb25zdCBbdHlwZSwgLi4udG9rZW5zXSA9IGNvbnRlbnRUeXBlID8gY29udGVudFR5cGUuc3BsaXQoJzsnKS5tYXAodG9rZW4gPT4gdG9rZW4udHJpbSgpKS5maWx0ZXIoQm9vbGVhbikgOiBbXTtcbiAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoW3R5cGUgfHwgJ211bHRpcGFydC9mb3JtLWRhdGEnLCAuLi50b2tlbnNdLmpvaW4oJzsgJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB4c3JmIGhlYWRlclxuICAvLyBUaGlzIGlzIG9ubHkgZG9uZSBpZiBydW5uaW5nIGluIGEgc3RhbmRhcmQgYnJvd3NlciBlbnZpcm9ubWVudC5cbiAgLy8gU3BlY2lmaWNhbGx5IG5vdCBpZiB3ZSdyZSBpbiBhIHdlYiB3b3JrZXIsIG9yIHJlYWN0LW5hdGl2ZS5cblxuICBpZiAocGxhdGZvcm0uaGFzU3RhbmRhcmRCcm93c2VyRW52KSB7XG4gICAgd2l0aFhTUkZUb2tlbiAmJiB1dGlscy5pc0Z1bmN0aW9uKHdpdGhYU1JGVG9rZW4pICYmICh3aXRoWFNSRlRva2VuID0gd2l0aFhTUkZUb2tlbihuZXdDb25maWcpKTtcblxuICAgIGlmICh3aXRoWFNSRlRva2VuIHx8ICh3aXRoWFNSRlRva2VuICE9PSBmYWxzZSAmJiBpc1VSTFNhbWVPcmlnaW4obmV3Q29uZmlnLnVybCkpKSB7XG4gICAgICAvLyBBZGQgeHNyZiBoZWFkZXJcbiAgICAgIGNvbnN0IHhzcmZWYWx1ZSA9IHhzcmZIZWFkZXJOYW1lICYmIHhzcmZDb29raWVOYW1lICYmIGNvb2tpZXMucmVhZCh4c3JmQ29va2llTmFtZSk7XG5cbiAgICAgIGlmICh4c3JmVmFsdWUpIHtcbiAgICAgICAgaGVhZGVycy5zZXQoeHNyZkhlYWRlck5hbWUsIHhzcmZWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0NvbmZpZztcbn1cblxuIiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vLi4vdXRpbHMuanMnO1xuaW1wb3J0IHNldHRsZSBmcm9tICcuLy4uL2NvcmUvc2V0dGxlLmpzJztcbmltcG9ydCB0cmFuc2l0aW9uYWxEZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cy90cmFuc2l0aW9uYWwuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzJztcbmltcG9ydCBwYXJzZVByb3RvY29sIGZyb20gJy4uL2hlbHBlcnMvcGFyc2VQcm90b2NvbC5qcyc7XG5pbXBvcnQgcGxhdGZvcm0gZnJvbSAnLi4vcGxhdGZvcm0vaW5kZXguanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5pbXBvcnQge3Byb2dyZXNzRXZlbnRSZWR1Y2VyfSBmcm9tICcuLi9oZWxwZXJzL3Byb2dyZXNzRXZlbnRSZWR1Y2VyLmpzJztcbmltcG9ydCByZXNvbHZlQ29uZmlnIGZyb20gXCIuLi9oZWxwZXJzL3Jlc29sdmVDb25maWcuanNcIjtcblxuY29uc3QgaXNYSFJBZGFwdGVyU3VwcG9ydGVkID0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJztcblxuZXhwb3J0IGRlZmF1bHQgaXNYSFJBZGFwdGVyU3VwcG9ydGVkICYmIGZ1bmN0aW9uIChjb25maWcpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIGRpc3BhdGNoWGhyUmVxdWVzdChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBjb25zdCBfY29uZmlnID0gcmVzb2x2ZUNvbmZpZyhjb25maWcpO1xuICAgIGxldCByZXF1ZXN0RGF0YSA9IF9jb25maWcuZGF0YTtcbiAgICBjb25zdCByZXF1ZXN0SGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKF9jb25maWcuaGVhZGVycykubm9ybWFsaXplKCk7XG4gICAgbGV0IHtyZXNwb25zZVR5cGUsIG9uVXBsb2FkUHJvZ3Jlc3MsIG9uRG93bmxvYWRQcm9ncmVzc30gPSBfY29uZmlnO1xuICAgIGxldCBvbkNhbmNlbGVkO1xuICAgIGxldCB1cGxvYWRUaHJvdHRsZWQsIGRvd25sb2FkVGhyb3R0bGVkO1xuICAgIGxldCBmbHVzaFVwbG9hZCwgZmx1c2hEb3dubG9hZDtcblxuICAgIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgICBmbHVzaFVwbG9hZCAmJiBmbHVzaFVwbG9hZCgpOyAvLyBmbHVzaCBldmVudHNcbiAgICAgIGZsdXNoRG93bmxvYWQgJiYgZmx1c2hEb3dubG9hZCgpOyAvLyBmbHVzaCBldmVudHNcblxuICAgICAgX2NvbmZpZy5jYW5jZWxUb2tlbiAmJiBfY29uZmlnLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG9uQ2FuY2VsZWQpO1xuXG4gICAgICBfY29uZmlnLnNpZ25hbCAmJiBfY29uZmlnLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQ2FuY2VsZWQpO1xuICAgIH1cblxuICAgIGxldCByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICByZXF1ZXN0Lm9wZW4oX2NvbmZpZy5tZXRob2QudG9VcHBlckNhc2UoKSwgX2NvbmZpZy51cmwsIHRydWUpO1xuXG4gICAgLy8gU2V0IHRoZSByZXF1ZXN0IHRpbWVvdXQgaW4gTVNcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSBfY29uZmlnLnRpbWVvdXQ7XG5cbiAgICBmdW5jdGlvbiBvbmxvYWRlbmQoKSB7XG4gICAgICBpZiAoIXJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gUHJlcGFyZSB0aGUgcmVzcG9uc2VcbiAgICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKFxuICAgICAgICAnZ2V0QWxsUmVzcG9uc2VIZWFkZXJzJyBpbiByZXF1ZXN0ICYmIHJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSAhcmVzcG9uc2VUeXBlIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nID9cbiAgICAgICAgcmVxdWVzdC5yZXNwb25zZVRleHQgOiByZXF1ZXN0LnJlc3BvbnNlO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YSxcbiAgICAgICAgc3RhdHVzOiByZXF1ZXN0LnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgc2V0dGxlKGZ1bmN0aW9uIF9yZXNvbHZlKHZhbHVlKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICBkb25lKCk7XG4gICAgICB9LCBmdW5jdGlvbiBfcmVqZWN0KGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSwgcmVzcG9uc2UpO1xuXG4gICAgICAvLyBDbGVhbiB1cCByZXF1ZXN0XG4gICAgICByZXF1ZXN0ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoJ29ubG9hZGVuZCcgaW4gcmVxdWVzdCkge1xuICAgICAgLy8gVXNlIG9ubG9hZGVuZCBpZiBhdmFpbGFibGVcbiAgICAgIHJlcXVlc3Qub25sb2FkZW5kID0gb25sb2FkZW5kO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMaXN0ZW4gZm9yIHJlYWR5IHN0YXRlIHRvIGVtdWxhdGUgb25sb2FkZW5kXG4gICAgICByZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUxvYWQoKSB7XG4gICAgICAgIGlmICghcmVxdWVzdCB8fCByZXF1ZXN0LnJlYWR5U3RhdGUgIT09IDQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgcmVxdWVzdCBlcnJvcmVkIG91dCBhbmQgd2UgZGlkbid0IGdldCBhIHJlc3BvbnNlLCB0aGlzIHdpbGwgYmVcbiAgICAgICAgLy8gaGFuZGxlZCBieSBvbmVycm9yIGluc3RlYWRcbiAgICAgICAgLy8gV2l0aCBvbmUgZXhjZXB0aW9uOiByZXF1ZXN0IHRoYXQgdXNpbmcgZmlsZTogcHJvdG9jb2wsIG1vc3QgYnJvd3NlcnNcbiAgICAgICAgLy8gd2lsbCByZXR1cm4gc3RhdHVzIGFzIDAgZXZlbiB0aG91Z2ggaXQncyBhIHN1Y2Nlc3NmdWwgcmVxdWVzdFxuICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDAgJiYgIShyZXF1ZXN0LnJlc3BvbnNlVVJMICYmIHJlcXVlc3QucmVzcG9uc2VVUkwuaW5kZXhPZignZmlsZTonKSA9PT0gMCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVhZHlzdGF0ZSBoYW5kbGVyIGlzIGNhbGxpbmcgYmVmb3JlIG9uZXJyb3Igb3Igb250aW1lb3V0IGhhbmRsZXJzLFxuICAgICAgICAvLyBzbyB3ZSBzaG91bGQgY2FsbCBvbmxvYWRlbmQgb24gdGhlIG5leHQgJ3RpY2snXG4gICAgICAgIHNldFRpbWVvdXQob25sb2FkZW5kKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGJyb3dzZXIgcmVxdWVzdCBjYW5jZWxsYXRpb24gKGFzIG9wcG9zZWQgdG8gYSBtYW51YWwgY2FuY2VsbGF0aW9uKVxuICAgIHJlcXVlc3Qub25hYm9ydCA9IGZ1bmN0aW9uIGhhbmRsZUFib3J0KCkge1xuICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdSZXF1ZXN0IGFib3J0ZWQnLCBBeGlvc0Vycm9yLkVDT05OQUJPUlRFRCwgY29uZmlnLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgbG93IGxldmVsIG5ldHdvcmsgZXJyb3JzXG4gICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gaGFuZGxlRXJyb3IoKSB7XG4gICAgICAvLyBSZWFsIGVycm9ycyBhcmUgaGlkZGVuIGZyb20gdXMgYnkgdGhlIGJyb3dzZXJcbiAgICAgIC8vIG9uZXJyb3Igc2hvdWxkIG9ubHkgZmlyZSBpZiBpdCdzIGEgbmV0d29yayBlcnJvclxuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdOZXR3b3JrIEVycm9yJywgQXhpb3NFcnJvci5FUlJfTkVUV09SSywgY29uZmlnLCByZXF1ZXN0KSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHJlcXVlc3RcbiAgICAgIHJlcXVlc3QgPSBudWxsO1xuICAgIH07XG5cbiAgICAvLyBIYW5kbGUgdGltZW91dFxuICAgIHJlcXVlc3Qub250aW1lb3V0ID0gZnVuY3Rpb24gaGFuZGxlVGltZW91dCgpIHtcbiAgICAgIGxldCB0aW1lb3V0RXJyb3JNZXNzYWdlID0gX2NvbmZpZy50aW1lb3V0ID8gJ3RpbWVvdXQgb2YgJyArIF9jb25maWcudGltZW91dCArICdtcyBleGNlZWRlZCcgOiAndGltZW91dCBleGNlZWRlZCc7XG4gICAgICBjb25zdCB0cmFuc2l0aW9uYWwgPSBfY29uZmlnLnRyYW5zaXRpb25hbCB8fCB0cmFuc2l0aW9uYWxEZWZhdWx0cztcbiAgICAgIGlmIChfY29uZmlnLnRpbWVvdXRFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSA9IF9jb25maWcudGltZW91dEVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJlamVjdChuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgdGltZW91dEVycm9yTWVzc2FnZSxcbiAgICAgICAgdHJhbnNpdGlvbmFsLmNsYXJpZnlUaW1lb3V0RXJyb3IgPyBBeGlvc0Vycm9yLkVUSU1FRE9VVCA6IEF4aW9zRXJyb3IuRUNPTk5BQk9SVEVELFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlcXVlc3QpKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgcmVxdWVzdFxuICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgfTtcblxuICAgIC8vIFJlbW92ZSBDb250ZW50LVR5cGUgaWYgZGF0YSBpcyB1bmRlZmluZWRcbiAgICByZXF1ZXN0RGF0YSA9PT0gdW5kZWZpbmVkICYmIHJlcXVlc3RIZWFkZXJzLnNldENvbnRlbnRUeXBlKG51bGwpO1xuXG4gICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcbiAgICBpZiAoJ3NldFJlcXVlc3RIZWFkZXInIGluIHJlcXVlc3QpIHtcbiAgICAgIHV0aWxzLmZvckVhY2gocmVxdWVzdEhlYWRlcnMudG9KU09OKCksIGZ1bmN0aW9uIHNldFJlcXVlc3RIZWFkZXIodmFsLCBrZXkpIHtcbiAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgdmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEFkZCB3aXRoQ3JlZGVudGlhbHMgdG8gcmVxdWVzdCBpZiBuZWVkZWRcbiAgICBpZiAoIXV0aWxzLmlzVW5kZWZpbmVkKF9jb25maWcud2l0aENyZWRlbnRpYWxzKSkge1xuICAgICAgcmVxdWVzdC53aXRoQ3JlZGVudGlhbHMgPSAhIV9jb25maWcud2l0aENyZWRlbnRpYWxzO1xuICAgIH1cblxuICAgIC8vIEFkZCByZXNwb25zZVR5cGUgdG8gcmVxdWVzdCBpZiBuZWVkZWRcbiAgICBpZiAocmVzcG9uc2VUeXBlICYmIHJlc3BvbnNlVHlwZSAhPT0gJ2pzb24nKSB7XG4gICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSA9IF9jb25maWcucmVzcG9uc2VUeXBlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBwcm9ncmVzcyBpZiBuZWVkZWRcbiAgICBpZiAob25Eb3dubG9hZFByb2dyZXNzKSB7XG4gICAgICAoW2Rvd25sb2FkVGhyb3R0bGVkLCBmbHVzaERvd25sb2FkXSA9IHByb2dyZXNzRXZlbnRSZWR1Y2VyKG9uRG93bmxvYWRQcm9ncmVzcywgdHJ1ZSkpO1xuICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGRvd25sb2FkVGhyb3R0bGVkKTtcbiAgICB9XG5cbiAgICAvLyBOb3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgdXBsb2FkIGV2ZW50c1xuICAgIGlmIChvblVwbG9hZFByb2dyZXNzICYmIHJlcXVlc3QudXBsb2FkKSB7XG4gICAgICAoW3VwbG9hZFRocm90dGxlZCwgZmx1c2hVcGxvYWRdID0gcHJvZ3Jlc3NFdmVudFJlZHVjZXIob25VcGxvYWRQcm9ncmVzcykpO1xuXG4gICAgICByZXF1ZXN0LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIHVwbG9hZFRocm90dGxlZCk7XG5cbiAgICAgIHJlcXVlc3QudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBmbHVzaFVwbG9hZCk7XG4gICAgfVxuXG4gICAgaWYgKF9jb25maWcuY2FuY2VsVG9rZW4gfHwgX2NvbmZpZy5zaWduYWwpIHtcbiAgICAgIC8vIEhhbmRsZSBjYW5jZWxsYXRpb25cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgICBvbkNhbmNlbGVkID0gY2FuY2VsID0+IHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdCghY2FuY2VsIHx8IGNhbmNlbC50eXBlID8gbmV3IENhbmNlbGVkRXJyb3IobnVsbCwgY29uZmlnLCByZXF1ZXN0KSA6IGNhbmNlbCk7XG4gICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcbiAgICAgICAgcmVxdWVzdCA9IG51bGw7XG4gICAgICB9O1xuXG4gICAgICBfY29uZmlnLmNhbmNlbFRva2VuICYmIF9jb25maWcuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKG9uQ2FuY2VsZWQpO1xuICAgICAgaWYgKF9jb25maWcuc2lnbmFsKSB7XG4gICAgICAgIF9jb25maWcuc2lnbmFsLmFib3J0ZWQgPyBvbkNhbmNlbGVkKCkgOiBfY29uZmlnLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQ2FuY2VsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb3RvY29sID0gcGFyc2VQcm90b2NvbChfY29uZmlnLnVybCk7XG5cbiAgICBpZiAocHJvdG9jb2wgJiYgcGxhdGZvcm0ucHJvdG9jb2xzLmluZGV4T2YocHJvdG9jb2wpID09PSAtMSkge1xuICAgICAgcmVqZWN0KG5ldyBBeGlvc0Vycm9yKCdVbnN1cHBvcnRlZCBwcm90b2NvbCAnICsgcHJvdG9jb2wgKyAnOicsIEF4aW9zRXJyb3IuRVJSX0JBRF9SRVFVRVNULCBjb25maWcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cblxuICAgIC8vIFNlbmQgdGhlIHJlcXVlc3RcbiAgICByZXF1ZXN0LnNlbmQocmVxdWVzdERhdGEgfHwgbnVsbCk7XG4gIH0pO1xufVxuIiwiaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSBcIi4uL2NhbmNlbC9DYW5jZWxlZEVycm9yLmpzXCI7XG5pbXBvcnQgQXhpb3NFcnJvciBmcm9tIFwiLi4vY29yZS9BeGlvc0Vycm9yLmpzXCI7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuXG5jb25zdCBjb21wb3NlU2lnbmFscyA9IChzaWduYWxzLCB0aW1lb3V0KSA9PiB7XG4gIGNvbnN0IHtsZW5ndGh9ID0gKHNpZ25hbHMgPSBzaWduYWxzID8gc2lnbmFscy5maWx0ZXIoQm9vbGVhbikgOiBbXSk7XG5cbiAgaWYgKHRpbWVvdXQgfHwgbGVuZ3RoKSB7XG4gICAgbGV0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBsZXQgYWJvcnRlZDtcblxuICAgIGNvbnN0IG9uYWJvcnQgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICBpZiAoIWFib3J0ZWQpIHtcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG4gICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGNvbnN0IGVyciA9IHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uIDogdGhpcy5yZWFzb247XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQoZXJyIGluc3RhbmNlb2YgQXhpb3NFcnJvciA/IGVyciA6IG5ldyBDYW5jZWxlZEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnIpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGltZXIgPSB0aW1lb3V0ICYmIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGltZXIgPSBudWxsO1xuICAgICAgb25hYm9ydChuZXcgQXhpb3NFcnJvcihgdGltZW91dCAke3RpbWVvdXR9IG9mIG1zIGV4Y2VlZGVkYCwgQXhpb3NFcnJvci5FVElNRURPVVQpKVxuICAgIH0sIHRpbWVvdXQpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9ICgpID0+IHtcbiAgICAgIGlmIChzaWduYWxzKSB7XG4gICAgICAgIHRpbWVyICYmIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgIHRpbWVyID0gbnVsbDtcbiAgICAgICAgc2lnbmFscy5mb3JFYWNoKHNpZ25hbCA9PiB7XG4gICAgICAgICAgc2lnbmFsLnVuc3Vic2NyaWJlID8gc2lnbmFsLnVuc3Vic2NyaWJlKG9uYWJvcnQpIDogc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzaWduYWxzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzaWduYWxzLmZvckVhY2goKHNpZ25hbCkgPT4gc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25hYm9ydCkpO1xuXG4gICAgY29uc3Qge3NpZ25hbH0gPSBjb250cm9sbGVyO1xuXG4gICAgc2lnbmFsLnVuc3Vic2NyaWJlID0gKCkgPT4gdXRpbHMuYXNhcCh1bnN1YnNjcmliZSk7XG5cbiAgICByZXR1cm4gc2lnbmFsO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvc2VTaWduYWxzO1xuIiwiXG5leHBvcnQgY29uc3Qgc3RyZWFtQ2h1bmsgPSBmdW5jdGlvbiogKGNodW5rLCBjaHVua1NpemUpIHtcbiAgbGV0IGxlbiA9IGNodW5rLmJ5dGVMZW5ndGg7XG5cbiAgaWYgKCFjaHVua1NpemUgfHwgbGVuIDwgY2h1bmtTaXplKSB7XG4gICAgeWllbGQgY2h1bms7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHBvcyA9IDA7XG4gIGxldCBlbmQ7XG5cbiAgd2hpbGUgKHBvcyA8IGxlbikge1xuICAgIGVuZCA9IHBvcyArIGNodW5rU2l6ZTtcbiAgICB5aWVsZCBjaHVuay5zbGljZShwb3MsIGVuZCk7XG4gICAgcG9zID0gZW5kO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZWFkQnl0ZXMgPSBhc3luYyBmdW5jdGlvbiogKGl0ZXJhYmxlLCBjaHVua1NpemUpIHtcbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiByZWFkU3RyZWFtKGl0ZXJhYmxlKSkge1xuICAgIHlpZWxkKiBzdHJlYW1DaHVuayhjaHVuaywgY2h1bmtTaXplKTtcbiAgfVxufVxuXG5jb25zdCByZWFkU3RyZWFtID0gYXN5bmMgZnVuY3Rpb24qIChzdHJlYW0pIHtcbiAgaWYgKHN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pIHtcbiAgICB5aWVsZCogc3RyZWFtO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgdHJ5IHtcbiAgICBmb3IgKDs7KSB7XG4gICAgICBjb25zdCB7ZG9uZSwgdmFsdWV9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgIGlmIChkb25lKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgeWllbGQgdmFsdWU7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJlYWRlci5jYW5jZWwoKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdHJhY2tTdHJlYW0gPSAoc3RyZWFtLCBjaHVua1NpemUsIG9uUHJvZ3Jlc3MsIG9uRmluaXNoKSA9PiB7XG4gIGNvbnN0IGl0ZXJhdG9yID0gcmVhZEJ5dGVzKHN0cmVhbSwgY2h1bmtTaXplKTtcblxuICBsZXQgYnl0ZXMgPSAwO1xuICBsZXQgZG9uZTtcbiAgbGV0IF9vbkZpbmlzaCA9IChlKSA9PiB7XG4gICAgaWYgKCFkb25lKSB7XG4gICAgICBkb25lID0gdHJ1ZTtcbiAgICAgIG9uRmluaXNoICYmIG9uRmluaXNoKGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qge2RvbmUsIHZhbHVlfSA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcblxuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgX29uRmluaXNoKCk7XG4gICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsZW4gPSB2YWx1ZS5ieXRlTGVuZ3RoO1xuICAgICAgICBpZiAob25Qcm9ncmVzcykge1xuICAgICAgICAgIGxldCBsb2FkZWRCeXRlcyA9IGJ5dGVzICs9IGxlbjtcbiAgICAgICAgICBvblByb2dyZXNzKGxvYWRlZEJ5dGVzKTtcbiAgICAgICAgfVxuICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkodmFsdWUpKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfb25GaW5pc2goZXJyKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH0sXG4gICAgY2FuY2VsKHJlYXNvbikge1xuICAgICAgX29uRmluaXNoKHJlYXNvbik7XG4gICAgICByZXR1cm4gaXRlcmF0b3IucmV0dXJuKCk7XG4gICAgfVxuICB9LCB7XG4gICAgaGlnaFdhdGVyTWFyazogMlxuICB9KVxufVxuIiwiaW1wb3J0IHBsYXRmb3JtIGZyb20gXCIuLi9wbGF0Zm9ybS9pbmRleC5qc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlscy5qc1wiO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSBcIi4uL2NvcmUvQXhpb3NFcnJvci5qc1wiO1xuaW1wb3J0IGNvbXBvc2VTaWduYWxzIGZyb20gXCIuLi9oZWxwZXJzL2NvbXBvc2VTaWduYWxzLmpzXCI7XG5pbXBvcnQge3RyYWNrU3RyZWFtfSBmcm9tIFwiLi4vaGVscGVycy90cmFja1N0cmVhbS5qc1wiO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tIFwiLi4vY29yZS9BeGlvc0hlYWRlcnMuanNcIjtcbmltcG9ydCB7cHJvZ3Jlc3NFdmVudFJlZHVjZXIsIHByb2dyZXNzRXZlbnREZWNvcmF0b3IsIGFzeW5jRGVjb3JhdG9yfSBmcm9tIFwiLi4vaGVscGVycy9wcm9ncmVzc0V2ZW50UmVkdWNlci5qc1wiO1xuaW1wb3J0IHJlc29sdmVDb25maWcgZnJvbSBcIi4uL2hlbHBlcnMvcmVzb2x2ZUNvbmZpZy5qc1wiO1xuaW1wb3J0IHNldHRsZSBmcm9tIFwiLi4vY29yZS9zZXR0bGUuanNcIjtcblxuY29uc3QgaXNGZXRjaFN1cHBvcnRlZCA9IHR5cGVvZiBmZXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgUmVxdWVzdCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgUmVzcG9uc2UgPT09ICdmdW5jdGlvbic7XG5jb25zdCBpc1JlYWRhYmxlU3RyZWFtU3VwcG9ydGVkID0gaXNGZXRjaFN1cHBvcnRlZCAmJiB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09ICdmdW5jdGlvbic7XG5cbi8vIHVzZWQgb25seSBpbnNpZGUgdGhlIGZldGNoIGFkYXB0ZXJcbmNvbnN0IGVuY29kZVRleHQgPSBpc0ZldGNoU3VwcG9ydGVkICYmICh0eXBlb2YgVGV4dEVuY29kZXIgPT09ICdmdW5jdGlvbicgP1xuICAgICgoZW5jb2RlcikgPT4gKHN0cikgPT4gZW5jb2Rlci5lbmNvZGUoc3RyKSkobmV3IFRleHRFbmNvZGVyKCkpIDpcbiAgICBhc3luYyAoc3RyKSA9PiBuZXcgVWludDhBcnJheShhd2FpdCBuZXcgUmVzcG9uc2Uoc3RyKS5hcnJheUJ1ZmZlcigpKVxuKTtcblxuY29uc3QgdGVzdCA9IChmbiwgLi4uYXJncykgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiAhIWZuKC4uLmFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuY29uc3Qgc3VwcG9ydHNSZXF1ZXN0U3RyZWFtID0gaXNSZWFkYWJsZVN0cmVhbVN1cHBvcnRlZCAmJiB0ZXN0KCgpID0+IHtcbiAgbGV0IGR1cGxleEFjY2Vzc2VkID0gZmFsc2U7XG5cbiAgY29uc3QgaGFzQ29udGVudFR5cGUgPSBuZXcgUmVxdWVzdChwbGF0Zm9ybS5vcmlnaW4sIHtcbiAgICBib2R5OiBuZXcgUmVhZGFibGVTdHJlYW0oKSxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBnZXQgZHVwbGV4KCkge1xuICAgICAgZHVwbGV4QWNjZXNzZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuICdoYWxmJztcbiAgICB9LFxuICB9KS5oZWFkZXJzLmhhcygnQ29udGVudC1UeXBlJyk7XG5cbiAgcmV0dXJuIGR1cGxleEFjY2Vzc2VkICYmICFoYXNDb250ZW50VHlwZTtcbn0pO1xuXG5jb25zdCBERUZBVUxUX0NIVU5LX1NJWkUgPSA2NCAqIDEwMjQ7XG5cbmNvbnN0IHN1cHBvcnRzUmVzcG9uc2VTdHJlYW0gPSBpc1JlYWRhYmxlU3RyZWFtU3VwcG9ydGVkICYmXG4gIHRlc3QoKCkgPT4gdXRpbHMuaXNSZWFkYWJsZVN0cmVhbShuZXcgUmVzcG9uc2UoJycpLmJvZHkpKTtcblxuXG5jb25zdCByZXNvbHZlcnMgPSB7XG4gIHN0cmVhbTogc3VwcG9ydHNSZXNwb25zZVN0cmVhbSAmJiAoKHJlcykgPT4gcmVzLmJvZHkpXG59O1xuXG5pc0ZldGNoU3VwcG9ydGVkICYmICgoKHJlcykgPT4ge1xuICBbJ3RleHQnLCAnYXJyYXlCdWZmZXInLCAnYmxvYicsICdmb3JtRGF0YScsICdzdHJlYW0nXS5mb3JFYWNoKHR5cGUgPT4ge1xuICAgICFyZXNvbHZlcnNbdHlwZV0gJiYgKHJlc29sdmVyc1t0eXBlXSA9IHV0aWxzLmlzRnVuY3Rpb24ocmVzW3R5cGVdKSA/IChyZXMpID0+IHJlc1t0eXBlXSgpIDpcbiAgICAgIChfLCBjb25maWcpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoYFJlc3BvbnNlIHR5cGUgJyR7dHlwZX0nIGlzIG5vdCBzdXBwb3J0ZWRgLCBBeGlvc0Vycm9yLkVSUl9OT1RfU1VQUE9SVCwgY29uZmlnKTtcbiAgICAgIH0pXG4gIH0pO1xufSkobmV3IFJlc3BvbnNlKSk7XG5cbmNvbnN0IGdldEJvZHlMZW5ndGggPSBhc3luYyAoYm9keSkgPT4ge1xuICBpZiAoYm9keSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZih1dGlscy5pc0Jsb2IoYm9keSkpIHtcbiAgICByZXR1cm4gYm9keS5zaXplO1xuICB9XG5cbiAgaWYodXRpbHMuaXNTcGVjQ29tcGxpYW50Rm9ybShib2R5KSkge1xuICAgIGNvbnN0IF9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QocGxhdGZvcm0ub3JpZ2luLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gICAgcmV0dXJuIChhd2FpdCBfcmVxdWVzdC5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO1xuICB9XG5cbiAgaWYodXRpbHMuaXNBcnJheUJ1ZmZlclZpZXcoYm9keSkgfHwgdXRpbHMuaXNBcnJheUJ1ZmZlcihib2R5KSkge1xuICAgIHJldHVybiBib2R5LmJ5dGVMZW5ndGg7XG4gIH1cblxuICBpZih1dGlscy5pc1VSTFNlYXJjaFBhcmFtcyhib2R5KSkge1xuICAgIGJvZHkgPSBib2R5ICsgJyc7XG4gIH1cblxuICBpZih1dGlscy5pc1N0cmluZyhib2R5KSkge1xuICAgIHJldHVybiAoYXdhaXQgZW5jb2RlVGV4dChib2R5KSkuYnl0ZUxlbmd0aDtcbiAgfVxufVxuXG5jb25zdCByZXNvbHZlQm9keUxlbmd0aCA9IGFzeW5jIChoZWFkZXJzLCBib2R5KSA9PiB7XG4gIGNvbnN0IGxlbmd0aCA9IHV0aWxzLnRvRmluaXRlTnVtYmVyKGhlYWRlcnMuZ2V0Q29udGVudExlbmd0aCgpKTtcblxuICByZXR1cm4gbGVuZ3RoID09IG51bGwgPyBnZXRCb2R5TGVuZ3RoKGJvZHkpIDogbGVuZ3RoO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0ZldGNoU3VwcG9ydGVkICYmIChhc3luYyAoY29uZmlnKSA9PiB7XG4gIGxldCB7XG4gICAgdXJsLFxuICAgIG1ldGhvZCxcbiAgICBkYXRhLFxuICAgIHNpZ25hbCxcbiAgICBjYW5jZWxUb2tlbixcbiAgICB0aW1lb3V0LFxuICAgIG9uRG93bmxvYWRQcm9ncmVzcyxcbiAgICBvblVwbG9hZFByb2dyZXNzLFxuICAgIHJlc3BvbnNlVHlwZSxcbiAgICBoZWFkZXJzLFxuICAgIHdpdGhDcmVkZW50aWFscyA9ICdzYW1lLW9yaWdpbicsXG4gICAgZmV0Y2hPcHRpb25zXG4gIH0gPSByZXNvbHZlQ29uZmlnKGNvbmZpZyk7XG5cbiAgcmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlID8gKHJlc3BvbnNlVHlwZSArICcnKS50b0xvd2VyQ2FzZSgpIDogJ3RleHQnO1xuXG4gIGxldCBjb21wb3NlZFNpZ25hbCA9IGNvbXBvc2VTaWduYWxzKFtzaWduYWwsIGNhbmNlbFRva2VuICYmIGNhbmNlbFRva2VuLnRvQWJvcnRTaWduYWwoKV0sIHRpbWVvdXQpO1xuXG4gIGxldCByZXF1ZXN0O1xuXG4gIGNvbnN0IHVuc3Vic2NyaWJlID0gY29tcG9zZWRTaWduYWwgJiYgY29tcG9zZWRTaWduYWwudW5zdWJzY3JpYmUgJiYgKCgpID0+IHtcbiAgICAgIGNvbXBvc2VkU2lnbmFsLnVuc3Vic2NyaWJlKCk7XG4gIH0pO1xuXG4gIGxldCByZXF1ZXN0Q29udGVudExlbmd0aDtcblxuICB0cnkge1xuICAgIGlmIChcbiAgICAgIG9uVXBsb2FkUHJvZ3Jlc3MgJiYgc3VwcG9ydHNSZXF1ZXN0U3RyZWFtICYmIG1ldGhvZCAhPT0gJ2dldCcgJiYgbWV0aG9kICE9PSAnaGVhZCcgJiZcbiAgICAgIChyZXF1ZXN0Q29udGVudExlbmd0aCA9IGF3YWl0IHJlc29sdmVCb2R5TGVuZ3RoKGhlYWRlcnMsIGRhdGEpKSAhPT0gMFxuICAgICkge1xuICAgICAgbGV0IF9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBkYXRhLFxuICAgICAgICBkdXBsZXg6IFwiaGFsZlwiXG4gICAgICB9KTtcblxuICAgICAgbGV0IGNvbnRlbnRUeXBlSGVhZGVyO1xuXG4gICAgICBpZiAodXRpbHMuaXNGb3JtRGF0YShkYXRhKSAmJiAoY29udGVudFR5cGVIZWFkZXIgPSBfcmVxdWVzdC5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykpKSB7XG4gICAgICAgIGhlYWRlcnMuc2V0Q29udGVudFR5cGUoY29udGVudFR5cGVIZWFkZXIpXG4gICAgICB9XG5cbiAgICAgIGlmIChfcmVxdWVzdC5ib2R5KSB7XG4gICAgICAgIGNvbnN0IFtvblByb2dyZXNzLCBmbHVzaF0gPSBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yKFxuICAgICAgICAgIHJlcXVlc3RDb250ZW50TGVuZ3RoLFxuICAgICAgICAgIHByb2dyZXNzRXZlbnRSZWR1Y2VyKGFzeW5jRGVjb3JhdG9yKG9uVXBsb2FkUHJvZ3Jlc3MpKVxuICAgICAgICApO1xuXG4gICAgICAgIGRhdGEgPSB0cmFja1N0cmVhbShfcmVxdWVzdC5ib2R5LCBERUZBVUxUX0NIVU5LX1NJWkUsIG9uUHJvZ3Jlc3MsIGZsdXNoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXV0aWxzLmlzU3RyaW5nKHdpdGhDcmVkZW50aWFscykpIHtcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFscyA/ICdpbmNsdWRlJyA6ICdvbWl0JztcbiAgICB9XG5cbiAgICAvLyBDbG91ZGZsYXJlIFdvcmtlcnMgdGhyb3dzIHdoZW4gY3JlZGVudGlhbHMgYXJlIGRlZmluZWRcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkZmxhcmUvd29ya2VyZC9pc3N1ZXMvOTAyXG4gICAgY29uc3QgaXNDcmVkZW50aWFsc1N1cHBvcnRlZCA9IFwiY3JlZGVudGlhbHNcIiBpbiBSZXF1ZXN0LnByb3RvdHlwZTtcbiAgICByZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCB7XG4gICAgICAuLi5mZXRjaE9wdGlvbnMsXG4gICAgICBzaWduYWw6IGNvbXBvc2VkU2lnbmFsLFxuICAgICAgbWV0aG9kOiBtZXRob2QudG9VcHBlckNhc2UoKSxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMubm9ybWFsaXplKCkudG9KU09OKCksXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgZHVwbGV4OiBcImhhbGZcIixcbiAgICAgIGNyZWRlbnRpYWxzOiBpc0NyZWRlbnRpYWxzU3VwcG9ydGVkID8gd2l0aENyZWRlbnRpYWxzIDogdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXF1ZXN0KTtcblxuICAgIGNvbnN0IGlzU3RyZWFtUmVzcG9uc2UgPSBzdXBwb3J0c1Jlc3BvbnNlU3RyZWFtICYmIChyZXNwb25zZVR5cGUgPT09ICdzdHJlYW0nIHx8IHJlc3BvbnNlVHlwZSA9PT0gJ3Jlc3BvbnNlJyk7XG5cbiAgICBpZiAoc3VwcG9ydHNSZXNwb25zZVN0cmVhbSAmJiAob25Eb3dubG9hZFByb2dyZXNzIHx8IChpc1N0cmVhbVJlc3BvbnNlICYmIHVuc3Vic2NyaWJlKSkpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcblxuICAgICAgWydzdGF0dXMnLCAnc3RhdHVzVGV4dCcsICdoZWFkZXJzJ10uZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgb3B0aW9uc1twcm9wXSA9IHJlc3BvbnNlW3Byb3BdO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlQ29udGVudExlbmd0aCA9IHV0aWxzLnRvRmluaXRlTnVtYmVyKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LWxlbmd0aCcpKTtcblxuICAgICAgY29uc3QgW29uUHJvZ3Jlc3MsIGZsdXNoXSA9IG9uRG93bmxvYWRQcm9ncmVzcyAmJiBwcm9ncmVzc0V2ZW50RGVjb3JhdG9yKFxuICAgICAgICByZXNwb25zZUNvbnRlbnRMZW5ndGgsXG4gICAgICAgIHByb2dyZXNzRXZlbnRSZWR1Y2VyKGFzeW5jRGVjb3JhdG9yKG9uRG93bmxvYWRQcm9ncmVzcyksIHRydWUpXG4gICAgICApIHx8IFtdO1xuXG4gICAgICByZXNwb25zZSA9IG5ldyBSZXNwb25zZShcbiAgICAgICAgdHJhY2tTdHJlYW0ocmVzcG9uc2UuYm9keSwgREVGQVVMVF9DSFVOS19TSVpFLCBvblByb2dyZXNzLCAoKSA9PiB7XG4gICAgICAgICAgZmx1c2ggJiYgZmx1c2goKTtcbiAgICAgICAgICB1bnN1YnNjcmliZSAmJiB1bnN1YnNjcmliZSgpO1xuICAgICAgICB9KSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGUgfHwgJ3RleHQnO1xuXG4gICAgbGV0IHJlc3BvbnNlRGF0YSA9IGF3YWl0IHJlc29sdmVyc1t1dGlscy5maW5kS2V5KHJlc29sdmVycywgcmVzcG9uc2VUeXBlKSB8fCAndGV4dCddKHJlc3BvbnNlLCBjb25maWcpO1xuXG4gICAgIWlzU3RyZWFtUmVzcG9uc2UgJiYgdW5zdWJzY3JpYmUgJiYgdW5zdWJzY3JpYmUoKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB7XG4gICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YSxcbiAgICAgICAgaGVhZGVyczogQXhpb3NIZWFkZXJzLmZyb20ocmVzcG9uc2UuaGVhZGVycyksXG4gICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlcXVlc3RcbiAgICAgIH0pXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdW5zdWJzY3JpYmUgJiYgdW5zdWJzY3JpYmUoKTtcblxuICAgIGlmIChlcnIgJiYgZXJyLm5hbWUgPT09ICdUeXBlRXJyb3InICYmIC9mZXRjaC9pLnRlc3QoZXJyLm1lc3NhZ2UpKSB7XG4gICAgICB0aHJvdyBPYmplY3QuYXNzaWduKFxuICAgICAgICBuZXcgQXhpb3NFcnJvcignTmV0d29yayBFcnJvcicsIEF4aW9zRXJyb3IuRVJSX05FVFdPUkssIGNvbmZpZywgcmVxdWVzdCksXG4gICAgICAgIHtcbiAgICAgICAgICBjYXVzZTogZXJyLmNhdXNlIHx8IGVyclxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuXG4gICAgdGhyb3cgQXhpb3NFcnJvci5mcm9tKGVyciwgZXJyICYmIGVyci5jb2RlLCBjb25maWcsIHJlcXVlc3QpO1xuICB9XG59KTtcblxuXG4iLCJpbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMuanMnO1xuaW1wb3J0IGh0dHBBZGFwdGVyIGZyb20gJy4vaHR0cC5qcyc7XG5pbXBvcnQgeGhyQWRhcHRlciBmcm9tICcuL3hoci5qcyc7XG5pbXBvcnQgZmV0Y2hBZGFwdGVyIGZyb20gJy4vZmV0Y2guanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSBcIi4uL2NvcmUvQXhpb3NFcnJvci5qc1wiO1xuXG5jb25zdCBrbm93bkFkYXB0ZXJzID0ge1xuICBodHRwOiBodHRwQWRhcHRlcixcbiAgeGhyOiB4aHJBZGFwdGVyLFxuICBmZXRjaDogZmV0Y2hBZGFwdGVyXG59XG5cbnV0aWxzLmZvckVhY2goa25vd25BZGFwdGVycywgKGZuLCB2YWx1ZSkgPT4ge1xuICBpZiAoZm4pIHtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCAnbmFtZScsIHt2YWx1ZX0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4sICdhZGFwdGVyTmFtZScsIHt2YWx1ZX0pO1xuICB9XG59KTtcblxuY29uc3QgcmVuZGVyUmVhc29uID0gKHJlYXNvbikgPT4gYC0gJHtyZWFzb259YDtcblxuY29uc3QgaXNSZXNvbHZlZEhhbmRsZSA9IChhZGFwdGVyKSA9PiB1dGlscy5pc0Z1bmN0aW9uKGFkYXB0ZXIpIHx8IGFkYXB0ZXIgPT09IG51bGwgfHwgYWRhcHRlciA9PT0gZmFsc2U7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZ2V0QWRhcHRlcjogKGFkYXB0ZXJzKSA9PiB7XG4gICAgYWRhcHRlcnMgPSB1dGlscy5pc0FycmF5KGFkYXB0ZXJzKSA/IGFkYXB0ZXJzIDogW2FkYXB0ZXJzXTtcblxuICAgIGNvbnN0IHtsZW5ndGh9ID0gYWRhcHRlcnM7XG4gICAgbGV0IG5hbWVPckFkYXB0ZXI7XG4gICAgbGV0IGFkYXB0ZXI7XG5cbiAgICBjb25zdCByZWplY3RlZFJlYXNvbnMgPSB7fTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIG5hbWVPckFkYXB0ZXIgPSBhZGFwdGVyc1tpXTtcbiAgICAgIGxldCBpZDtcblxuICAgICAgYWRhcHRlciA9IG5hbWVPckFkYXB0ZXI7XG5cbiAgICAgIGlmICghaXNSZXNvbHZlZEhhbmRsZShuYW1lT3JBZGFwdGVyKSkge1xuICAgICAgICBhZGFwdGVyID0ga25vd25BZGFwdGVyc1soaWQgPSBTdHJpbmcobmFtZU9yQWRhcHRlcikpLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgICAgIGlmIChhZGFwdGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihgVW5rbm93biBhZGFwdGVyICcke2lkfSdgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWRhcHRlcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmVqZWN0ZWRSZWFzb25zW2lkIHx8ICcjJyArIGldID0gYWRhcHRlcjtcbiAgICB9XG5cbiAgICBpZiAoIWFkYXB0ZXIpIHtcblxuICAgICAgY29uc3QgcmVhc29ucyA9IE9iamVjdC5lbnRyaWVzKHJlamVjdGVkUmVhc29ucylcbiAgICAgICAgLm1hcCgoW2lkLCBzdGF0ZV0pID0+IGBhZGFwdGVyICR7aWR9IGAgK1xuICAgICAgICAgIChzdGF0ZSA9PT0gZmFsc2UgPyAnaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQnIDogJ2lzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkJylcbiAgICAgICAgKTtcblxuICAgICAgbGV0IHMgPSBsZW5ndGggP1xuICAgICAgICAocmVhc29ucy5sZW5ndGggPiAxID8gJ3NpbmNlIDpcXG4nICsgcmVhc29ucy5tYXAocmVuZGVyUmVhc29uKS5qb2luKCdcXG4nKSA6ICcgJyArIHJlbmRlclJlYXNvbihyZWFzb25zWzBdKSkgOlxuICAgICAgICAnYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQnO1xuXG4gICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcihcbiAgICAgICAgYFRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgYCArIHMsXG4gICAgICAgICdFUlJfTk9UX1NVUFBPUlQnXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhZGFwdGVyO1xuICB9LFxuICBhZGFwdGVyczoga25vd25BZGFwdGVyc1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHJhbnNmb3JtRGF0YSBmcm9tICcuL3RyYW5zZm9ybURhdGEuanMnO1xuaW1wb3J0IGlzQ2FuY2VsIGZyb20gJy4uL2NhbmNlbC9pc0NhbmNlbC5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMvaW5kZXguanMnO1xuaW1wb3J0IENhbmNlbGVkRXJyb3IgZnJvbSAnLi4vY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMnO1xuaW1wb3J0IEF4aW9zSGVhZGVycyBmcm9tICcuLi9jb3JlL0F4aW9zSGVhZGVycy5qcyc7XG5pbXBvcnQgYWRhcHRlcnMgZnJvbSBcIi4uL2FkYXB0ZXJzL2FkYXB0ZXJzLmpzXCI7XG5cbi8qKlxuICogVGhyb3dzIGEgYENhbmNlbGVkRXJyb3JgIGlmIGNhbmNlbGxhdGlvbiBoYXMgYmVlbiByZXF1ZXN0ZWQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyBUaGUgY29uZmlnIHRoYXQgaXMgdG8gYmUgdXNlZCBmb3IgdGhlIHJlcXVlc3RcbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpIHtcbiAgaWYgKGNvbmZpZy5jYW5jZWxUb2tlbikge1xuICAgIGNvbmZpZy5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCk7XG4gIH1cblxuICBpZiAoY29uZmlnLnNpZ25hbCAmJiBjb25maWcuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQ2FuY2VsZWRFcnJvcihudWxsLCBjb25maWcpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggYSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgdXNpbmcgdGhlIGNvbmZpZ3VyZWQgYWRhcHRlci5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIFRoZSBjb25maWcgdGhhdCBpcyB0byBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdFxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlfSBUaGUgUHJvbWlzZSB0byBiZSBmdWxmaWxsZWRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGlzcGF0Y2hSZXF1ZXN0KGNvbmZpZykge1xuICB0aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKGNvbmZpZyk7XG5cbiAgY29uZmlnLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuZnJvbShjb25maWcuaGVhZGVycyk7XG5cbiAgLy8gVHJhbnNmb3JtIHJlcXVlc3QgZGF0YVxuICBjb25maWcuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICBjb25maWcsXG4gICAgY29uZmlnLnRyYW5zZm9ybVJlcXVlc3RcbiAgKTtcblxuICBpZiAoWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLmluZGV4T2YoY29uZmlnLm1ldGhvZCkgIT09IC0xKSB7XG4gICAgY29uZmlnLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsIGZhbHNlKTtcbiAgfVxuXG4gIGNvbnN0IGFkYXB0ZXIgPSBhZGFwdGVycy5nZXRBZGFwdGVyKGNvbmZpZy5hZGFwdGVyIHx8IGRlZmF1bHRzLmFkYXB0ZXIpO1xuXG4gIHJldHVybiBhZGFwdGVyKGNvbmZpZykudGhlbihmdW5jdGlvbiBvbkFkYXB0ZXJSZXNvbHV0aW9uKHJlc3BvbnNlKSB7XG4gICAgdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZChjb25maWcpO1xuXG4gICAgLy8gVHJhbnNmb3JtIHJlc3BvbnNlIGRhdGFcbiAgICByZXNwb25zZS5kYXRhID0gdHJhbnNmb3JtRGF0YS5jYWxsKFxuICAgICAgY29uZmlnLFxuICAgICAgY29uZmlnLnRyYW5zZm9ybVJlc3BvbnNlLFxuICAgICAgcmVzcG9uc2VcbiAgICApO1xuXG4gICAgcmVzcG9uc2UuaGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKHJlc3BvbnNlLmhlYWRlcnMpO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9LCBmdW5jdGlvbiBvbkFkYXB0ZXJSZWplY3Rpb24ocmVhc29uKSB7XG4gICAgaWYgKCFpc0NhbmNlbChyZWFzb24pKSB7XG4gICAgICB0aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKGNvbmZpZyk7XG5cbiAgICAgIC8vIFRyYW5zZm9ybSByZXNwb25zZSBkYXRhXG4gICAgICBpZiAocmVhc29uICYmIHJlYXNvbi5yZXNwb25zZSkge1xuICAgICAgICByZWFzb24ucmVzcG9uc2UuZGF0YSA9IHRyYW5zZm9ybURhdGEuY2FsbChcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgY29uZmlnLnRyYW5zZm9ybVJlc3BvbnNlLFxuICAgICAgICAgIHJlYXNvbi5yZXNwb25zZVxuICAgICAgICApO1xuICAgICAgICByZWFzb24ucmVzcG9uc2UuaGVhZGVycyA9IEF4aW9zSGVhZGVycy5mcm9tKHJlYXNvbi5yZXNwb25zZS5oZWFkZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QocmVhc29uKTtcbiAgfSk7XG59XG4iLCJleHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiMS43LjlcIjsiLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7VkVSU0lPTn0gZnJvbSAnLi4vZW52L2RhdGEuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi4vY29yZS9BeGlvc0Vycm9yLmpzJztcblxuY29uc3QgdmFsaWRhdG9ycyA9IHt9O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuWydvYmplY3QnLCAnYm9vbGVhbicsICdudW1iZXInLCAnZnVuY3Rpb24nLCAnc3RyaW5nJywgJ3N5bWJvbCddLmZvckVhY2goKHR5cGUsIGkpID0+IHtcbiAgdmFsaWRhdG9yc1t0eXBlXSA9IGZ1bmN0aW9uIHZhbGlkYXRvcih0aGluZykge1xuICAgIHJldHVybiB0eXBlb2YgdGhpbmcgPT09IHR5cGUgfHwgJ2EnICsgKGkgPCAxID8gJ24gJyA6ICcgJykgKyB0eXBlO1xuICB9O1xufSk7XG5cbmNvbnN0IGRlcHJlY2F0ZWRXYXJuaW5ncyA9IHt9O1xuXG4vKipcbiAqIFRyYW5zaXRpb25hbCBvcHRpb24gdmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbnxib29sZWFuP30gdmFsaWRhdG9yIC0gc2V0IHRvIGZhbHNlIGlmIHRoZSB0cmFuc2l0aW9uYWwgb3B0aW9uIGhhcyBiZWVuIHJlbW92ZWRcbiAqIEBwYXJhbSB7c3RyaW5nP30gdmVyc2lvbiAtIGRlcHJlY2F0ZWQgdmVyc2lvbiAvIHJlbW92ZWQgc2luY2UgdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmc/fSBtZXNzYWdlIC0gc29tZSBtZXNzYWdlIHdpdGggYWRkaXRpb25hbCBpbmZvXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufVxuICovXG52YWxpZGF0b3JzLnRyYW5zaXRpb25hbCA9IGZ1bmN0aW9uIHRyYW5zaXRpb25hbCh2YWxpZGF0b3IsIHZlcnNpb24sIG1lc3NhZ2UpIHtcbiAgZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShvcHQsIGRlc2MpIHtcbiAgICByZXR1cm4gJ1tBeGlvcyB2JyArIFZFUlNJT04gKyAnXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFxcJycgKyBvcHQgKyAnXFwnJyArIGRlc2MgKyAobWVzc2FnZSA/ICcuICcgKyBtZXNzYWdlIDogJycpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgcmV0dXJuICh2YWx1ZSwgb3B0LCBvcHRzKSA9PiB7XG4gICAgaWYgKHZhbGlkYXRvciA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBBeGlvc0Vycm9yKFxuICAgICAgICBmb3JtYXRNZXNzYWdlKG9wdCwgJyBoYXMgYmVlbiByZW1vdmVkJyArICh2ZXJzaW9uID8gJyBpbiAnICsgdmVyc2lvbiA6ICcnKSksXG4gICAgICAgIEF4aW9zRXJyb3IuRVJSX0RFUFJFQ0FURURcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZlcnNpb24gJiYgIWRlcHJlY2F0ZWRXYXJuaW5nc1tvcHRdKSB7XG4gICAgICBkZXByZWNhdGVkV2FybmluZ3Nbb3B0XSA9IHRydWU7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBmb3JtYXRNZXNzYWdlKFxuICAgICAgICAgIG9wdCxcbiAgICAgICAgICAnIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdicgKyB2ZXJzaW9uICsgJyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSdcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yID8gdmFsaWRhdG9yKHZhbHVlLCBvcHQsIG9wdHMpIDogdHJ1ZTtcbiAgfTtcbn07XG5cbnZhbGlkYXRvcnMuc3BlbGxpbmcgPSBmdW5jdGlvbiBzcGVsbGluZyhjb3JyZWN0U3BlbGxpbmcpIHtcbiAgcmV0dXJuICh2YWx1ZSwgb3B0KSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLndhcm4oYCR7b3B0fSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2NvcnJlY3RTcGVsbGluZ31gKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuLyoqXG4gKiBBc3NlcnQgb2JqZWN0J3MgcHJvcGVydGllcyB0eXBlXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY2hlbWFcbiAqIEBwYXJhbSB7Ym9vbGVhbj99IGFsbG93VW5rbm93blxuICpcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cblxuZnVuY3Rpb24gYXNzZXJ0T3B0aW9ucyhvcHRpb25zLCBzY2hlbWEsIGFsbG93VW5rbm93bikge1xuICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ29wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QnLCBBeGlvc0Vycm9yLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtcbiAgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyk7XG4gIGxldCBpID0ga2V5cy5sZW5ndGg7XG4gIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgY29uc3Qgb3B0ID0ga2V5c1tpXTtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSBzY2hlbWFbb3B0XTtcbiAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbnNbb3B0XTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsaWRhdG9yKHZhbHVlLCBvcHQsIG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgQXhpb3NFcnJvcignb3B0aW9uICcgKyBvcHQgKyAnIG11c3QgYmUgJyArIHJlc3VsdCwgQXhpb3NFcnJvci5FUlJfQkFEX09QVElPTl9WQUxVRSk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGFsbG93VW5rbm93biAhPT0gdHJ1ZSkge1xuICAgICAgdGhyb3cgbmV3IEF4aW9zRXJyb3IoJ1Vua25vd24gb3B0aW9uICcgKyBvcHQsIEF4aW9zRXJyb3IuRVJSX0JBRF9PUFRJT04pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFzc2VydE9wdGlvbnMsXG4gIHZhbGlkYXRvcnNcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcbmltcG9ydCBidWlsZFVSTCBmcm9tICcuLi9oZWxwZXJzL2J1aWxkVVJMLmpzJztcbmltcG9ydCBJbnRlcmNlcHRvck1hbmFnZXIgZnJvbSAnLi9JbnRlcmNlcHRvck1hbmFnZXIuanMnO1xuaW1wb3J0IGRpc3BhdGNoUmVxdWVzdCBmcm9tICcuL2Rpc3BhdGNoUmVxdWVzdC5qcyc7XG5pbXBvcnQgbWVyZ2VDb25maWcgZnJvbSAnLi9tZXJnZUNvbmZpZy5qcyc7XG5pbXBvcnQgYnVpbGRGdWxsUGF0aCBmcm9tICcuL2J1aWxkRnVsbFBhdGguanMnO1xuaW1wb3J0IHZhbGlkYXRvciBmcm9tICcuLi9oZWxwZXJzL3ZhbGlkYXRvci5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gJy4vQXhpb3NIZWFkZXJzLmpzJztcblxuY29uc3QgdmFsaWRhdG9ycyA9IHZhbGlkYXRvci52YWxpZGF0b3JzO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBpbnN0YW5jZUNvbmZpZyBUaGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm4ge0F4aW9zfSBBIG5ldyBpbnN0YW5jZSBvZiBBeGlvc1xuICovXG5jbGFzcyBBeGlvcyB7XG4gIGNvbnN0cnVjdG9yKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgdGhpcy5kZWZhdWx0cyA9IGluc3RhbmNlQ29uZmlnO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzID0ge1xuICAgICAgcmVxdWVzdDogbmV3IEludGVyY2VwdG9yTWFuYWdlcigpLFxuICAgICAgcmVzcG9uc2U6IG5ldyBJbnRlcmNlcHRvck1hbmFnZXIoKVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2ggYSByZXF1ZXN0XG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gY29uZmlnT3JVcmwgVGhlIGNvbmZpZyBzcGVjaWZpYyBmb3IgdGhpcyByZXF1ZXN0IChtZXJnZWQgd2l0aCB0aGlzLmRlZmF1bHRzKVxuICAgKiBAcGFyYW0gez9PYmplY3R9IGNvbmZpZ1xuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gVGhlIFByb21pc2UgdG8gYmUgZnVsZmlsbGVkXG4gICAqL1xuICBhc3luYyByZXF1ZXN0KGNvbmZpZ09yVXJsLCBjb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoY29uZmlnT3JVcmwsIGNvbmZpZyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgbGV0IGR1bW15ID0ge307XG5cbiAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgPyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShkdW1teSkgOiAoZHVtbXkgPSBuZXcgRXJyb3IoKSk7XG5cbiAgICAgICAgLy8gc2xpY2Ugb2ZmIHRoZSBFcnJvcjogLi4uIGxpbmVcbiAgICAgICAgY29uc3Qgc3RhY2sgPSBkdW1teS5zdGFjayA/IGR1bW15LnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sICcnKSA6ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghZXJyLnN0YWNrKSB7XG4gICAgICAgICAgICBlcnIuc3RhY2sgPSBzdGFjaztcbiAgICAgICAgICAgIC8vIG1hdGNoIHdpdGhvdXQgdGhlIDIgdG9wIHN0YWNrIGxpbmVzXG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFjayAmJiAhU3RyaW5nKGVyci5zdGFjaykuZW5kc1dpdGgoc3RhY2sucmVwbGFjZSgvXi4rXFxuLitcXG4vLCAnJykpKSB7XG4gICAgICAgICAgICBlcnIuc3RhY2sgKz0gJ1xcbicgKyBzdGFja1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGlnbm9yZSB0aGUgY2FzZSB3aGVyZSBcInN0YWNrXCIgaXMgYW4gdW4td3JpdGFibGUgcHJvcGVydHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgX3JlcXVlc3QoY29uZmlnT3JVcmwsIGNvbmZpZykge1xuICAgIC8qZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAqL1xuICAgIC8vIEFsbG93IGZvciBheGlvcygnZXhhbXBsZS91cmwnWywgY29uZmlnXSkgYSBsYSBmZXRjaCBBUElcbiAgICBpZiAodHlwZW9mIGNvbmZpZ09yVXJsID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgICAgY29uZmlnLnVybCA9IGNvbmZpZ09yVXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSBjb25maWdPclVybCB8fCB7fTtcbiAgICB9XG5cbiAgICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuXG4gICAgY29uc3Qge3RyYW5zaXRpb25hbCwgcGFyYW1zU2VyaWFsaXplciwgaGVhZGVyc30gPSBjb25maWc7XG5cbiAgICBpZiAodHJhbnNpdGlvbmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbGlkYXRvci5hc3NlcnRPcHRpb25zKHRyYW5zaXRpb25hbCwge1xuICAgICAgICBzaWxlbnRKU09OUGFyc2luZzogdmFsaWRhdG9ycy50cmFuc2l0aW9uYWwodmFsaWRhdG9ycy5ib29sZWFuKSxcbiAgICAgICAgZm9yY2VkSlNPTlBhcnNpbmc6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbiksXG4gICAgICAgIGNsYXJpZnlUaW1lb3V0RXJyb3I6IHZhbGlkYXRvcnMudHJhbnNpdGlvbmFsKHZhbGlkYXRvcnMuYm9vbGVhbilcbiAgICAgIH0sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zU2VyaWFsaXplciAhPSBudWxsKSB7XG4gICAgICBpZiAodXRpbHMuaXNGdW5jdGlvbihwYXJhbXNTZXJpYWxpemVyKSkge1xuICAgICAgICBjb25maWcucGFyYW1zU2VyaWFsaXplciA9IHtcbiAgICAgICAgICBzZXJpYWxpemU6IHBhcmFtc1NlcmlhbGl6ZXJcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsaWRhdG9yLmFzc2VydE9wdGlvbnMocGFyYW1zU2VyaWFsaXplciwge1xuICAgICAgICAgIGVuY29kZTogdmFsaWRhdG9ycy5mdW5jdGlvbixcbiAgICAgICAgICBzZXJpYWxpemU6IHZhbGlkYXRvcnMuZnVuY3Rpb25cbiAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdG9yLmFzc2VydE9wdGlvbnMoY29uZmlnLCB7XG4gICAgICBiYXNlVXJsOiB2YWxpZGF0b3JzLnNwZWxsaW5nKCdiYXNlVVJMJyksXG4gICAgICB3aXRoWHNyZlRva2VuOiB2YWxpZGF0b3JzLnNwZWxsaW5nKCd3aXRoWFNSRlRva2VuJylcbiAgICB9LCB0cnVlKTtcblxuICAgIC8vIFNldCBjb25maWcubWV0aG9kXG4gICAgY29uZmlnLm1ldGhvZCA9IChjb25maWcubWV0aG9kIHx8IHRoaXMuZGVmYXVsdHMubWV0aG9kIHx8ICdnZXQnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgLy8gRmxhdHRlbiBoZWFkZXJzXG4gICAgbGV0IGNvbnRleHRIZWFkZXJzID0gaGVhZGVycyAmJiB1dGlscy5tZXJnZShcbiAgICAgIGhlYWRlcnMuY29tbW9uLFxuICAgICAgaGVhZGVyc1tjb25maWcubWV0aG9kXVxuICAgICk7XG5cbiAgICBoZWFkZXJzICYmIHV0aWxzLmZvckVhY2goXG4gICAgICBbJ2RlbGV0ZScsICdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCcsICdjb21tb24nXSxcbiAgICAgIChtZXRob2QpID0+IHtcbiAgICAgICAgZGVsZXRlIGhlYWRlcnNbbWV0aG9kXTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uZmlnLmhlYWRlcnMgPSBBeGlvc0hlYWRlcnMuY29uY2F0KGNvbnRleHRIZWFkZXJzLCBoZWFkZXJzKTtcblxuICAgIC8vIGZpbHRlciBvdXQgc2tpcHBlZCBpbnRlcmNlcHRvcnNcbiAgICBjb25zdCByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbiA9IFtdO1xuICAgIGxldCBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgPSB0cnVlO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbiB1bnNoaWZ0UmVxdWVzdEludGVyY2VwdG9ycyhpbnRlcmNlcHRvcikge1xuICAgICAgaWYgKHR5cGVvZiBpbnRlcmNlcHRvci5ydW5XaGVuID09PSAnZnVuY3Rpb24nICYmIGludGVyY2VwdG9yLnJ1bldoZW4oY29uZmlnKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgPSBzeW5jaHJvbm91c1JlcXVlc3RJbnRlcmNlcHRvcnMgJiYgaW50ZXJjZXB0b3Iuc3luY2hyb25vdXM7XG5cbiAgICAgIHJlcXVlc3RJbnRlcmNlcHRvckNoYWluLnVuc2hpZnQoaW50ZXJjZXB0b3IuZnVsZmlsbGVkLCBpbnRlcmNlcHRvci5yZWplY3RlZCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4gPSBbXTtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uIHB1c2hSZXNwb25zZUludGVyY2VwdG9ycyhpbnRlcmNlcHRvcikge1xuICAgICAgcmVzcG9uc2VJbnRlcmNlcHRvckNoYWluLnB1c2goaW50ZXJjZXB0b3IuZnVsZmlsbGVkLCBpbnRlcmNlcHRvci5yZWplY3RlZCk7XG4gICAgfSk7XG5cbiAgICBsZXQgcHJvbWlzZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGxlbjtcblxuICAgIGlmICghc3luY2hyb25vdXNSZXF1ZXN0SW50ZXJjZXB0b3JzKSB7XG4gICAgICBjb25zdCBjaGFpbiA9IFtkaXNwYXRjaFJlcXVlc3QuYmluZCh0aGlzKSwgdW5kZWZpbmVkXTtcbiAgICAgIGNoYWluLnVuc2hpZnQuYXBwbHkoY2hhaW4sIHJlcXVlc3RJbnRlcmNlcHRvckNoYWluKTtcbiAgICAgIGNoYWluLnB1c2guYXBwbHkoY2hhaW4sIHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbik7XG4gICAgICBsZW4gPSBjaGFpbi5sZW5ndGg7XG5cbiAgICAgIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoY29uZmlnKTtcblxuICAgICAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbihjaGFpbltpKytdLCBjaGFpbltpKytdKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuXG4gICAgbGVuID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoO1xuXG4gICAgbGV0IG5ld0NvbmZpZyA9IGNvbmZpZztcblxuICAgIGkgPSAwO1xuXG4gICAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICAgIGNvbnN0IG9uRnVsZmlsbGVkID0gcmVxdWVzdEludGVyY2VwdG9yQ2hhaW5baSsrXTtcbiAgICAgIGNvbnN0IG9uUmVqZWN0ZWQgPSByZXF1ZXN0SW50ZXJjZXB0b3JDaGFpbltpKytdO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbmV3Q29uZmlnID0gb25GdWxmaWxsZWQobmV3Q29uZmlnKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG9uUmVqZWN0ZWQuY2FsbCh0aGlzLCBlcnJvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBwcm9taXNlID0gZGlzcGF0Y2hSZXF1ZXN0LmNhbGwodGhpcywgbmV3Q29uZmlnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9XG5cbiAgICBpID0gMDtcbiAgICBsZW4gPSByZXNwb25zZUludGVyY2VwdG9yQ2hhaW4ubGVuZ3RoO1xuXG4gICAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4ocmVzcG9uc2VJbnRlcmNlcHRvckNoYWluW2krK10sIHJlc3BvbnNlSW50ZXJjZXB0b3JDaGFpbltpKytdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIGdldFVyaShjb25maWcpIHtcbiAgICBjb25maWcgPSBtZXJnZUNvbmZpZyh0aGlzLmRlZmF1bHRzLCBjb25maWcpO1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYnVpbGRGdWxsUGF0aChjb25maWcuYmFzZVVSTCwgY29uZmlnLnVybCk7XG4gICAgcmV0dXJuIGJ1aWxkVVJMKGZ1bGxQYXRoLCBjb25maWcucGFyYW1zLCBjb25maWcucGFyYW1zU2VyaWFsaXplcik7XG4gIH1cbn1cblxuLy8gUHJvdmlkZSBhbGlhc2VzIGZvciBzdXBwb3J0ZWQgcmVxdWVzdCBtZXRob2RzXG51dGlscy5mb3JFYWNoKFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ29wdGlvbnMnXSwgZnVuY3Rpb24gZm9yRWFjaE1ldGhvZE5vRGF0YShtZXRob2QpIHtcbiAgLyplc2xpbnQgZnVuYy1uYW1lczowKi9cbiAgQXhpb3MucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbih1cmwsIGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QobWVyZ2VDb25maWcoY29uZmlnIHx8IHt9LCB7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBkYXRhOiAoY29uZmlnIHx8IHt9KS5kYXRhXG4gICAgfSkpO1xuICB9O1xufSk7XG5cbnV0aWxzLmZvckVhY2goWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLCBmdW5jdGlvbiBmb3JFYWNoTWV0aG9kV2l0aERhdGEobWV0aG9kKSB7XG4gIC8qZXNsaW50IGZ1bmMtbmFtZXM6MCovXG5cbiAgZnVuY3Rpb24gZ2VuZXJhdGVIVFRQTWV0aG9kKGlzRm9ybSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBodHRwTWV0aG9kKHVybCwgZGF0YSwgY29uZmlnKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KG1lcmdlQ29uZmlnKGNvbmZpZyB8fCB7fSwge1xuICAgICAgICBtZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IGlzRm9ybSA/IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnXG4gICAgICAgIH0gOiB7fSxcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhXG4gICAgICB9KSk7XG4gICAgfTtcbiAgfVxuXG4gIEF4aW9zLnByb3RvdHlwZVttZXRob2RdID0gZ2VuZXJhdGVIVFRQTWV0aG9kKCk7XG5cbiAgQXhpb3MucHJvdG90eXBlW21ldGhvZCArICdGb3JtJ10gPSBnZW5lcmF0ZUhUVFBNZXRob2QodHJ1ZSk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQXhpb3M7XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4vQ2FuY2VsZWRFcnJvci5qcyc7XG5cbi8qKlxuICogQSBgQ2FuY2VsVG9rZW5gIGlzIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcXVlc3QgY2FuY2VsbGF0aW9uIG9mIGFuIG9wZXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBleGVjdXRvciBUaGUgZXhlY3V0b3IgZnVuY3Rpb24uXG4gKlxuICogQHJldHVybnMge0NhbmNlbFRva2VufVxuICovXG5jbGFzcyBDYW5jZWxUb2tlbiB7XG4gIGNvbnN0cnVjdG9yKGV4ZWN1dG9yKSB7XG4gICAgaWYgKHR5cGVvZiBleGVjdXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLicpO1xuICAgIH1cblxuICAgIGxldCByZXNvbHZlUHJvbWlzZTtcblxuICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIHByb21pc2VFeGVjdXRvcihyZXNvbHZlKSB7XG4gICAgICByZXNvbHZlUHJvbWlzZSA9IHJlc29sdmU7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b2tlbiA9IHRoaXM7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIHRoaXMucHJvbWlzZS50aGVuKGNhbmNlbCA9PiB7XG4gICAgICBpZiAoIXRva2VuLl9saXN0ZW5lcnMpIHJldHVybjtcblxuICAgICAgbGV0IGkgPSB0b2tlbi5fbGlzdGVuZXJzLmxlbmd0aDtcblxuICAgICAgd2hpbGUgKGktLSA+IDApIHtcbiAgICAgICAgdG9rZW4uX2xpc3RlbmVyc1tpXShjYW5jZWwpO1xuICAgICAgfVxuICAgICAgdG9rZW4uX2xpc3RlbmVycyA9IG51bGw7XG4gICAgfSk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xuICAgIHRoaXMucHJvbWlzZS50aGVuID0gb25mdWxmaWxsZWQgPT4ge1xuICAgICAgbGV0IF9yZXNvbHZlO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgdG9rZW4uc3Vic2NyaWJlKHJlc29sdmUpO1xuICAgICAgICBfcmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICB9KS50aGVuKG9uZnVsZmlsbGVkKTtcblxuICAgICAgcHJvbWlzZS5jYW5jZWwgPSBmdW5jdGlvbiByZWplY3QoKSB7XG4gICAgICAgIHRva2VuLnVuc3Vic2NyaWJlKF9yZXNvbHZlKTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBleGVjdXRvcihmdW5jdGlvbiBjYW5jZWwobWVzc2FnZSwgY29uZmlnLCByZXF1ZXN0KSB7XG4gICAgICBpZiAodG9rZW4ucmVhc29uKSB7XG4gICAgICAgIC8vIENhbmNlbGxhdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHJlcXVlc3RlZFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRva2VuLnJlYXNvbiA9IG5ldyBDYW5jZWxlZEVycm9yKG1lc3NhZ2UsIGNvbmZpZywgcmVxdWVzdCk7XG4gICAgICByZXNvbHZlUHJvbWlzZSh0b2tlbi5yZWFzb24pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhIGBDYW5jZWxlZEVycm9yYCBpZiBjYW5jZWxsYXRpb24gaGFzIGJlZW4gcmVxdWVzdGVkLlxuICAgKi9cbiAgdGhyb3dJZlJlcXVlc3RlZCgpIHtcbiAgICBpZiAodGhpcy5yZWFzb24pIHtcbiAgICAgIHRocm93IHRoaXMucmVhc29uO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gdGhlIGNhbmNlbCBzaWduYWxcbiAgICovXG5cbiAgc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKHRoaXMucmVhc29uKSB7XG4gICAgICBsaXN0ZW5lcih0aGlzLnJlYXNvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xpc3RlbmVycykge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0ZW5lcnMgPSBbbGlzdGVuZXJdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSBmcm9tIHRoZSBjYW5jZWwgc2lnbmFsXG4gICAqL1xuXG4gIHVuc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgdG9BYm9ydFNpZ25hbCgpIHtcbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgY29uc3QgYWJvcnQgPSAoZXJyKSA9PiB7XG4gICAgICBjb250cm9sbGVyLmFib3J0KGVycik7XG4gICAgfTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKGFib3J0KTtcblxuICAgIGNvbnRyb2xsZXIuc2lnbmFsLnVuc3Vic2NyaWJlID0gKCkgPT4gdGhpcy51bnN1YnNjcmliZShhYm9ydCk7XG5cbiAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIG5ldyBgQ2FuY2VsVG9rZW5gIGFuZCBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLFxuICAgKiBjYW5jZWxzIHRoZSBgQ2FuY2VsVG9rZW5gLlxuICAgKi9cbiAgc3RhdGljIHNvdXJjZSgpIHtcbiAgICBsZXQgY2FuY2VsO1xuICAgIGNvbnN0IHRva2VuID0gbmV3IENhbmNlbFRva2VuKGZ1bmN0aW9uIGV4ZWN1dG9yKGMpIHtcbiAgICAgIGNhbmNlbCA9IGM7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgY2FuY2VsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDYW5jZWxUb2tlbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBTeW50YWN0aWMgc3VnYXIgZm9yIGludm9raW5nIGEgZnVuY3Rpb24gYW5kIGV4cGFuZGluZyBhbiBhcnJheSBmb3IgYXJndW1lbnRzLlxuICpcbiAqIENvbW1vbiB1c2UgY2FzZSB3b3VsZCBiZSB0byB1c2UgYEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseWAuXG4gKlxuICogIGBgYGpzXG4gKiAgZnVuY3Rpb24gZih4LCB5LCB6KSB7fVxuICogIHZhciBhcmdzID0gWzEsIDIsIDNdO1xuICogIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gKiAgYGBgXG4gKlxuICogV2l0aCBgc3ByZWFkYCB0aGlzIGV4YW1wbGUgY2FuIGJlIHJlLXdyaXR0ZW4uXG4gKlxuICogIGBgYGpzXG4gKiAgc3ByZWFkKGZ1bmN0aW9uKHgsIHksIHopIHt9KShbMSwgMiwgM10pO1xuICogIGBgYFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKlxuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzcHJlYWQoY2FsbGJhY2spIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHdyYXAoYXJyKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrLmFwcGx5KG51bGwsIGFycik7XG4gIH07XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuLy4uL3V0aWxzLmpzJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zXG4gKlxuICogQHBhcmFtIHsqfSBwYXlsb2FkIFRoZSB2YWx1ZSB0byB0ZXN0XG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIHBheWxvYWQgaXMgYW4gZXJyb3IgdGhyb3duIGJ5IEF4aW9zLCBvdGhlcndpc2UgZmFsc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNBeGlvc0Vycm9yKHBheWxvYWQpIHtcbiAgcmV0dXJuIHV0aWxzLmlzT2JqZWN0KHBheWxvYWQpICYmIChwYXlsb2FkLmlzQXhpb3NFcnJvciA9PT0gdHJ1ZSk7XG59XG4iLCJjb25zdCBIdHRwU3RhdHVzQ29kZSA9IHtcbiAgQ29udGludWU6IDEwMCxcbiAgU3dpdGNoaW5nUHJvdG9jb2xzOiAxMDEsXG4gIFByb2Nlc3Npbmc6IDEwMixcbiAgRWFybHlIaW50czogMTAzLFxuICBPazogMjAwLFxuICBDcmVhdGVkOiAyMDEsXG4gIEFjY2VwdGVkOiAyMDIsXG4gIE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjogMjAzLFxuICBOb0NvbnRlbnQ6IDIwNCxcbiAgUmVzZXRDb250ZW50OiAyMDUsXG4gIFBhcnRpYWxDb250ZW50OiAyMDYsXG4gIE11bHRpU3RhdHVzOiAyMDcsXG4gIEFscmVhZHlSZXBvcnRlZDogMjA4LFxuICBJbVVzZWQ6IDIyNixcbiAgTXVsdGlwbGVDaG9pY2VzOiAzMDAsXG4gIE1vdmVkUGVybWFuZW50bHk6IDMwMSxcbiAgRm91bmQ6IDMwMixcbiAgU2VlT3RoZXI6IDMwMyxcbiAgTm90TW9kaWZpZWQ6IDMwNCxcbiAgVXNlUHJveHk6IDMwNSxcbiAgVW51c2VkOiAzMDYsXG4gIFRlbXBvcmFyeVJlZGlyZWN0OiAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0OiAzMDgsXG4gIEJhZFJlcXVlc3Q6IDQwMCxcbiAgVW5hdXRob3JpemVkOiA0MDEsXG4gIFBheW1lbnRSZXF1aXJlZDogNDAyLFxuICBGb3JiaWRkZW46IDQwMyxcbiAgTm90Rm91bmQ6IDQwNCxcbiAgTWV0aG9kTm90QWxsb3dlZDogNDA1LFxuICBOb3RBY2NlcHRhYmxlOiA0MDYsXG4gIFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDogNDA3LFxuICBSZXF1ZXN0VGltZW91dDogNDA4LFxuICBDb25mbGljdDogNDA5LFxuICBHb25lOiA0MTAsXG4gIExlbmd0aFJlcXVpcmVkOiA0MTEsXG4gIFByZWNvbmRpdGlvbkZhaWxlZDogNDEyLFxuICBQYXlsb2FkVG9vTGFyZ2U6IDQxMyxcbiAgVXJpVG9vTG9uZzogNDE0LFxuICBVbnN1cHBvcnRlZE1lZGlhVHlwZTogNDE1LFxuICBSYW5nZU5vdFNhdGlzZmlhYmxlOiA0MTYsXG4gIEV4cGVjdGF0aW9uRmFpbGVkOiA0MTcsXG4gIEltQVRlYXBvdDogNDE4LFxuICBNaXNkaXJlY3RlZFJlcXVlc3Q6IDQyMSxcbiAgVW5wcm9jZXNzYWJsZUVudGl0eTogNDIyLFxuICBMb2NrZWQ6IDQyMyxcbiAgRmFpbGVkRGVwZW5kZW5jeTogNDI0LFxuICBUb29FYXJseTogNDI1LFxuICBVcGdyYWRlUmVxdWlyZWQ6IDQyNixcbiAgUHJlY29uZGl0aW9uUmVxdWlyZWQ6IDQyOCxcbiAgVG9vTWFueVJlcXVlc3RzOiA0MjksXG4gIFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTogNDMxLFxuICBVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczogNDUxLFxuICBJbnRlcm5hbFNlcnZlckVycm9yOiA1MDAsXG4gIE5vdEltcGxlbWVudGVkOiA1MDEsXG4gIEJhZEdhdGV3YXk6IDUwMixcbiAgU2VydmljZVVuYXZhaWxhYmxlOiA1MDMsXG4gIEdhdGV3YXlUaW1lb3V0OiA1MDQsXG4gIEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOiA1MDUsXG4gIFZhcmlhbnRBbHNvTmVnb3RpYXRlczogNTA2LFxuICBJbnN1ZmZpY2llbnRTdG9yYWdlOiA1MDcsXG4gIExvb3BEZXRlY3RlZDogNTA4LFxuICBOb3RFeHRlbmRlZDogNTEwLFxuICBOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDogNTExLFxufTtcblxuT2JqZWN0LmVudHJpZXMoSHR0cFN0YXR1c0NvZGUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICBIdHRwU3RhdHVzQ29kZVt2YWx1ZV0gPSBrZXk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgSHR0cFN0YXR1c0NvZGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzLmpzJztcbmltcG9ydCBiaW5kIGZyb20gJy4vaGVscGVycy9iaW5kLmpzJztcbmltcG9ydCBBeGlvcyBmcm9tICcuL2NvcmUvQXhpb3MuanMnO1xuaW1wb3J0IG1lcmdlQ29uZmlnIGZyb20gJy4vY29yZS9tZXJnZUNvbmZpZy5qcyc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cy9pbmRleC5qcyc7XG5pbXBvcnQgZm9ybURhdGFUb0pTT04gZnJvbSAnLi9oZWxwZXJzL2Zvcm1EYXRhVG9KU09OLmpzJztcbmltcG9ydCBDYW5jZWxlZEVycm9yIGZyb20gJy4vY2FuY2VsL0NhbmNlbGVkRXJyb3IuanMnO1xuaW1wb3J0IENhbmNlbFRva2VuIGZyb20gJy4vY2FuY2VsL0NhbmNlbFRva2VuLmpzJztcbmltcG9ydCBpc0NhbmNlbCBmcm9tICcuL2NhbmNlbC9pc0NhbmNlbC5qcyc7XG5pbXBvcnQge1ZFUlNJT059IGZyb20gJy4vZW52L2RhdGEuanMnO1xuaW1wb3J0IHRvRm9ybURhdGEgZnJvbSAnLi9oZWxwZXJzL3RvRm9ybURhdGEuanMnO1xuaW1wb3J0IEF4aW9zRXJyb3IgZnJvbSAnLi9jb3JlL0F4aW9zRXJyb3IuanMnO1xuaW1wb3J0IHNwcmVhZCBmcm9tICcuL2hlbHBlcnMvc3ByZWFkLmpzJztcbmltcG9ydCBpc0F4aW9zRXJyb3IgZnJvbSAnLi9oZWxwZXJzL2lzQXhpb3NFcnJvci5qcyc7XG5pbXBvcnQgQXhpb3NIZWFkZXJzIGZyb20gXCIuL2NvcmUvQXhpb3NIZWFkZXJzLmpzXCI7XG5pbXBvcnQgYWRhcHRlcnMgZnJvbSAnLi9hZGFwdGVycy9hZGFwdGVycy5qcyc7XG5pbXBvcnQgSHR0cFN0YXR1c0NvZGUgZnJvbSAnLi9oZWxwZXJzL0h0dHBTdGF0dXNDb2RlLmpzJztcblxuLyoqXG4gKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgQXhpb3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gZGVmYXVsdENvbmZpZyBUaGUgZGVmYXVsdCBjb25maWcgZm9yIHRoZSBpbnN0YW5jZVxuICpcbiAqIEByZXR1cm5zIHtBeGlvc30gQSBuZXcgaW5zdGFuY2Ugb2YgQXhpb3NcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2UoZGVmYXVsdENvbmZpZykge1xuICBjb25zdCBjb250ZXh0ID0gbmV3IEF4aW9zKGRlZmF1bHRDb25maWcpO1xuICBjb25zdCBpbnN0YW5jZSA9IGJpbmQoQXhpb3MucHJvdG90eXBlLnJlcXVlc3QsIGNvbnRleHQpO1xuXG4gIC8vIENvcHkgYXhpb3MucHJvdG90eXBlIHRvIGluc3RhbmNlXG4gIHV0aWxzLmV4dGVuZChpbnN0YW5jZSwgQXhpb3MucHJvdG90eXBlLCBjb250ZXh0LCB7YWxsT3duS2V5czogdHJ1ZX0pO1xuXG4gIC8vIENvcHkgY29udGV4dCB0byBpbnN0YW5jZVxuICB1dGlscy5leHRlbmQoaW5zdGFuY2UsIGNvbnRleHQsIG51bGwsIHthbGxPd25LZXlzOiB0cnVlfSk7XG5cbiAgLy8gRmFjdG9yeSBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICBpbnN0YW5jZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoaW5zdGFuY2VDb25maWcpIHtcbiAgICByZXR1cm4gY3JlYXRlSW5zdGFuY2UobWVyZ2VDb25maWcoZGVmYXVsdENvbmZpZywgaW5zdGFuY2VDb25maWcpKTtcbiAgfTtcblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8vIENyZWF0ZSB0aGUgZGVmYXVsdCBpbnN0YW5jZSB0byBiZSBleHBvcnRlZFxuY29uc3QgYXhpb3MgPSBjcmVhdGVJbnN0YW5jZShkZWZhdWx0cyk7XG5cbi8vIEV4cG9zZSBBeGlvcyBjbGFzcyB0byBhbGxvdyBjbGFzcyBpbmhlcml0YW5jZVxuYXhpb3MuQXhpb3MgPSBBeGlvcztcblxuLy8gRXhwb3NlIENhbmNlbCAmIENhbmNlbFRva2VuXG5heGlvcy5DYW5jZWxlZEVycm9yID0gQ2FuY2VsZWRFcnJvcjtcbmF4aW9zLkNhbmNlbFRva2VuID0gQ2FuY2VsVG9rZW47XG5heGlvcy5pc0NhbmNlbCA9IGlzQ2FuY2VsO1xuYXhpb3MuVkVSU0lPTiA9IFZFUlNJT047XG5heGlvcy50b0Zvcm1EYXRhID0gdG9Gb3JtRGF0YTtcblxuLy8gRXhwb3NlIEF4aW9zRXJyb3IgY2xhc3NcbmF4aW9zLkF4aW9zRXJyb3IgPSBBeGlvc0Vycm9yO1xuXG4vLyBhbGlhcyBmb3IgQ2FuY2VsZWRFcnJvciBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuYXhpb3MuQ2FuY2VsID0gYXhpb3MuQ2FuY2VsZWRFcnJvcjtcblxuLy8gRXhwb3NlIGFsbC9zcHJlYWRcbmF4aW9zLmFsbCA9IGZ1bmN0aW9uIGFsbChwcm9taXNlcykge1xuICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufTtcblxuYXhpb3Muc3ByZWFkID0gc3ByZWFkO1xuXG4vLyBFeHBvc2UgaXNBeGlvc0Vycm9yXG5heGlvcy5pc0F4aW9zRXJyb3IgPSBpc0F4aW9zRXJyb3I7XG5cbi8vIEV4cG9zZSBtZXJnZUNvbmZpZ1xuYXhpb3MubWVyZ2VDb25maWcgPSBtZXJnZUNvbmZpZztcblxuYXhpb3MuQXhpb3NIZWFkZXJzID0gQXhpb3NIZWFkZXJzO1xuXG5heGlvcy5mb3JtVG9KU09OID0gdGhpbmcgPT4gZm9ybURhdGFUb0pTT04odXRpbHMuaXNIVE1MRm9ybSh0aGluZykgPyBuZXcgRm9ybURhdGEodGhpbmcpIDogdGhpbmcpO1xuXG5heGlvcy5nZXRBZGFwdGVyID0gYWRhcHRlcnMuZ2V0QWRhcHRlcjtcblxuYXhpb3MuSHR0cFN0YXR1c0NvZGUgPSBIdHRwU3RhdHVzQ29kZTtcblxuYXhpb3MuZGVmYXVsdCA9IGF4aW9zO1xuXG4vLyB0aGlzIG1vZHVsZSBzaG91bGQgb25seSBoYXZlIGEgZGVmYXVsdCBleHBvcnRcbmV4cG9ydCBkZWZhdWx0IGF4aW9zXG4iLCJmdW5jdGlvbiBmb3JtYXREZXBlbmRlbmN5KHBhcmFtcywgaWR4KSB7XG4gIGlmIChwYXJhbXMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gYGF0IHBvc2l0aW9uICMke2lkeH1gO1xuICB9XG4gIGNvbnN0IGFyZ05hbWUgPSBwYXJhbXMuc3BsaXQoXCIsXCIpW2lkeF0udHJpbSgpO1xuICByZXR1cm4gYFwiJHthcmdOYW1lfVwiIGF0IHBvc2l0aW9uICMke2lkeH1gO1xufVxuZnVuY3Rpb24gY29tcG9zZUVycm9yTWVzc2FnZShtc2csIGUsIGluZGVudCA9IFwiICAgIFwiKSB7XG4gIHJldHVybiBbbXNnLCAuLi5lLm1lc3NhZ2Uuc3BsaXQoXCJcXG5cIikubWFwKChsKSA9PiBpbmRlbnQgKyBsKV0uam9pbihcIlxcblwiKTtcbn1cbmZ1bmN0aW9uIGZvcm1hdEVycm9yQ3RvcihjdG9yLCBwYXJhbUlkeCwgZXJyb3IpIHtcbiAgY29uc3QgWywgcGFyYW1zID0gbnVsbF0gPSBjdG9yLnRvU3RyaW5nKCkubWF0Y2goL2NvbnN0cnVjdG9yXFwoKFtcXHcsIF0rKVxcKS8pIHx8IFtdO1xuICBjb25zdCBkZXAgPSBmb3JtYXREZXBlbmRlbmN5KHBhcmFtcywgcGFyYW1JZHgpO1xuICByZXR1cm4gY29tcG9zZUVycm9yTWVzc2FnZShcbiAgICBgQ2Fubm90IGluamVjdCB0aGUgZGVwZW5kZW5jeSAke2RlcH0gb2YgXCIke2N0b3IubmFtZX1cIiBjb25zdHJ1Y3Rvci4gUmVhc29uOmAsXG4gICAgZXJyb3JcbiAgKTtcbn1cblxuY2xhc3MgUmVnaXN0cnlCYXNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fcmVnaXN0cnlNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICB9XG4gIHRva2VucygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9yZWdpc3RyeU1hcC5rZXlzKCkpO1xuICB9XG4gIGVudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5TWFwLmVudHJpZXMoKTtcbiAgfVxuICBnZXRBbGwoa2V5KSB7XG4gICAgdGhpcy5lbnN1cmUoa2V5KTtcbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnlNYXAuZ2V0KGtleSk7XG4gIH1cbiAgZ2V0KGtleSkge1xuICAgIHRoaXMuZW5zdXJlKGtleSk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9yZWdpc3RyeU1hcC5nZXQoa2V5KTtcbiAgICByZXR1cm4gdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0gfHwgbnVsbDtcbiAgfVxuICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgIHRoaXMuZW5zdXJlKGtleSk7XG4gICAgdGhpcy5fcmVnaXN0cnlNYXAuZ2V0KGtleSkucHVzaCh2YWx1ZSk7XG4gIH1cbiAgc2V0QWxsKGtleSwgdmFsdWUpIHtcbiAgICB0aGlzLl9yZWdpc3RyeU1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gIH1cbiAgaGFzKGtleSkge1xuICAgIHRoaXMuZW5zdXJlKGtleSk7XG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5TWFwLmdldChrZXkpLmxlbmd0aCA+IDA7XG4gIH1cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5fcmVnaXN0cnlNYXAuY2xlYXIoKTtcbiAgfVxuICBkZWxldGUoa2V5KSB7XG4gICAgdGhpcy5fcmVnaXN0cnlNYXAuZGVsZXRlKGtleSk7XG4gIH1cbiAgZW5zdXJlKGtleSkge1xuICAgIGlmICghdGhpcy5fcmVnaXN0cnlNYXAuaGFzKGtleSkpIHtcbiAgICAgIHRoaXMuX3JlZ2lzdHJ5TWFwLnNldChrZXksIFtdKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgUG9zdFJlZ2lzdHJhdGlvbkludGVyY2VwdG9ycyBleHRlbmRzIFJlZ2lzdHJ5QmFzZSB7XG59XG5jbGFzcyBQcmVSZXNvbHV0aW9uSW50ZXJjZXB0b3JzIGV4dGVuZHMgUmVnaXN0cnlCYXNlIHtcbn1cbmNsYXNzIFBvc3RSZXNvbHV0aW9uSW50ZXJjZXB0b3JzIGV4dGVuZHMgUmVnaXN0cnlCYXNlIHtcbn1cbmNsYXNzIEludGVyY2VwdG9ycyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucG9zdFJlZ2lzdHJhdGlvbiA9IG5ldyBQb3N0UmVnaXN0cmF0aW9uSW50ZXJjZXB0b3JzKCk7XG4gICAgdGhpcy5wcmVSZXNvbHV0aW9uID0gbmV3IFByZVJlc29sdXRpb25JbnRlcmNlcHRvcnMoKTtcbiAgICB0aGlzLnBvc3RSZXNvbHV0aW9uID0gbmV3IFBvc3RSZXNvbHV0aW9uSW50ZXJjZXB0b3JzKCk7XG4gIH1cbn1cblxuY2xhc3MgRGVsYXllZENvbnN0cnVjdG9yIHtcbiAgY29uc3RydWN0b3Iod3JhcCkge1xuICAgIHRoaXMud3JhcCA9IHdyYXA7XG4gICAgdGhpcy5yZWZsZWN0TWV0aG9kcyA9IFtcbiAgICAgIFwiZ2V0XCIsXG4gICAgICBcImdldFByb3RvdHlwZU9mXCIsXG4gICAgICBcInNldFByb3RvdHlwZU9mXCIsXG4gICAgICBcImdldE93blByb3BlcnR5RGVzY3JpcHRvclwiLFxuICAgICAgXCJkZWZpbmVQcm9wZXJ0eVwiLFxuICAgICAgXCJoYXNcIixcbiAgICAgIFwic2V0XCIsXG4gICAgICBcImRlbGV0ZVByb3BlcnR5XCIsXG4gICAgICBcImFwcGx5XCIsXG4gICAgICBcImNvbnN0cnVjdFwiLFxuICAgICAgXCJvd25LZXlzXCJcbiAgICBdO1xuICB9XG4gIGNyZWF0ZVByb3h5KGNyZWF0ZU9iamVjdCkge1xuICAgIGNvbnN0IHRhcmdldCA9IHt9O1xuICAgIGxldCBpbml0ID0gZmFsc2U7XG4gICAgbGV0IHZhbHVlO1xuICAgIGNvbnN0IGRlbGF5ZWRPYmplY3QgPSAoKSA9PiB7XG4gICAgICBpZiAoIWluaXQpIHtcbiAgICAgICAgdmFsdWUgPSBjcmVhdGVPYmplY3QodGhpcy53cmFwKCkpO1xuICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgUHJveHkodGFyZ2V0LCB0aGlzLmNyZWF0ZUhhbmRsZXIoZGVsYXllZE9iamVjdCkpO1xuICB9XG4gIGNyZWF0ZUhhbmRsZXIoZGVsYXllZE9iamVjdCkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB7fTtcbiAgICBjb25zdCBpbnN0YWxsID0gKG5hbWUpID0+IHtcbiAgICAgIGhhbmRsZXJbbmFtZV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICBhcmdzWzBdID0gZGVsYXllZE9iamVjdCgpO1xuICAgICAgICBjb25zdCBtZXRob2QgPSBSZWZsZWN0W25hbWVdO1xuICAgICAgICByZXR1cm4gbWV0aG9kKC4uLmFyZ3MpO1xuICAgICAgfTtcbiAgICB9O1xuICAgIHRoaXMucmVmbGVjdE1ldGhvZHMuZm9yRWFjaChpbnN0YWxsKTtcbiAgICByZXR1cm4gaGFuZGxlcjtcbiAgfVxufVxuZnVuY3Rpb24gZGVsYXkod3JhcHBlZENvbnN0cnVjdG9yKSB7XG4gIGlmICh0eXBlb2Ygd3JhcHBlZENvbnN0cnVjdG9yID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIFwiQXR0ZW1wdCB0byBgZGVsYXlgIHVuZGVmaW5lZC4gQ29uc3RydWN0b3IgbXVzdCBiZSB3cmFwcGVkIGluIGEgY2FsbGJhY2tcIlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG5ldyBEZWxheWVkQ29uc3RydWN0b3Iod3JhcHBlZENvbnN0cnVjdG9yKTtcbn1cblxuZnVuY3Rpb24gaXNDbGFzc1Byb3ZpZGVyKHByb3ZpZGVyKSB7XG4gIHJldHVybiBCb29sZWFuKHByb3ZpZGVyLnVzZUNsYXNzKTtcbn1cblxuZnVuY3Rpb24gaXNGYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgcmV0dXJuIEJvb2xlYW4ocHJvdmlkZXIudXNlRmFjdG9yeSk7XG59XG5cbmZ1bmN0aW9uIGlzTm9ybWFsVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIHR5cGVvZiB0b2tlbiA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdG9rZW4gPT09IFwic3ltYm9sXCI7XG59XG5mdW5jdGlvbiBpc1Rva2VuRGVzY3JpcHRvcihkZXNjcmlwdG9yKSB7XG4gIHJldHVybiB0eXBlb2YgZGVzY3JpcHRvciA9PT0gXCJvYmplY3RcIiAmJiBcInRva2VuXCIgaW4gZGVzY3JpcHRvciAmJiBcIm11bHRpcGxlXCIgaW4gZGVzY3JpcHRvcjtcbn1cbmZ1bmN0aW9uIGlzVHJhbnNmb3JtRGVzY3JpcHRvcihkZXNjcmlwdG9yKSB7XG4gIHJldHVybiB0eXBlb2YgZGVzY3JpcHRvciA9PT0gXCJvYmplY3RcIiAmJiBcInRva2VuXCIgaW4gZGVzY3JpcHRvciAmJiBcInRyYW5zZm9ybVwiIGluIGRlc2NyaXB0b3I7XG59XG5mdW5jdGlvbiBpc0NvbnN0cnVjdG9yVG9rZW4odG9rZW4pIHtcbiAgcmV0dXJuIHR5cGVvZiB0b2tlbiA9PT0gXCJmdW5jdGlvblwiIHx8IHRva2VuIGluc3RhbmNlb2YgRGVsYXllZENvbnN0cnVjdG9yO1xufVxuXG5mdW5jdGlvbiBpc1Rva2VuUHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgcmV0dXJuIEJvb2xlYW4ocHJvdmlkZXIudXNlVG9rZW4pO1xufVxuXG5mdW5jdGlvbiBpc1ZhbHVlUHJvdmlkZXIocHJvdmlkZXIpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm92aWRlciwgXCJ1c2VWYWx1ZVwiKTtcbn1cblxuZnVuY3Rpb24gaXNQcm92aWRlcihwcm92aWRlcikge1xuICByZXR1cm4gaXNDbGFzc1Byb3ZpZGVyKHByb3ZpZGVyKSB8fCBpc1ZhbHVlUHJvdmlkZXIocHJvdmlkZXIpIHx8IGlzVG9rZW5Qcm92aWRlcihwcm92aWRlcikgfHwgaXNGYWN0b3J5UHJvdmlkZXIocHJvdmlkZXIpO1xufVxuXG5jb25zdCBJTkpFQ1RJT05fVE9LRU5fTUVUQURBVEFfS0VZID0gXCJpbmplY3Rpb25Ub2tlbnNcIjtcbmNvbnN0IFBBUkFNX0lORk9TX01FVEFEQVRBX0tFWSA9IFwicGFyYW1JbmZvc1wiO1xuZnVuY3Rpb24gZ2V0UGFyYW1JbmZvKHRhcmdldCkge1xuICBjb25zdCBwYXJhbXMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShJTkpFQ1RJT05fVE9LRU5fTUVUQURBVEFfS0VZLCB0YXJnZXQpIHx8IHt9O1xuICBPYmplY3Qua2V5cyhpbmplY3Rpb25Ub2tlbnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIHBhcmFtc1tOdW1iZXIoa2V5KV0gPSBpbmplY3Rpb25Ub2tlbnNba2V5XTtcbiAgfSk7XG4gIHJldHVybiBwYXJhbXM7XG59XG5mdW5jdGlvbiBkZWZpbmVJbmplY3Rpb25Ub2tlbk1ldGFkYXRhKGRhdGEsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBfcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KSB7XG4gICAgY29uc3QgZGVzY3JpcHRvcnMgPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhKElOSkVDVElPTl9UT0tFTl9NRVRBREFUQV9LRVksIHRhcmdldCkgfHwge307XG4gICAgZGVzY3JpcHRvcnNbcGFyYW1ldGVySW5kZXhdID0gdHJhbnNmb3JtID8ge1xuICAgICAgdG9rZW46IGRhdGEsXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybS50cmFuc2Zvcm1Ub2tlbixcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgICB0cmFuc2Zvcm1BcmdzOiB0cmFuc2Zvcm0uYXJncyA/PyBbXVxuICAgIH0gOiBkYXRhO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoSU5KRUNUSU9OX1RPS0VOX01FVEFEQVRBX0tFWSwgZGVzY3JpcHRvcnMsIHRhcmdldCk7XG4gIH07XG59XG5cbmNsYXNzIFJlZ2lzdHJ5IGV4dGVuZHMgUmVnaXN0cnlCYXNlIHtcbn1cblxuY2xhc3MgUmVzb2x1dGlvbkNvbnRleHQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNjb3BlZFJlc29sdXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0Rpc3Bvc2FibGUodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIShcImRpc3Bvc2VcIiBpbiB2YWx1ZSkpIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZS5kaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgZGlzcG9zZUZuID0gdmFsdWUuZGlzcG9zZTtcbiAgaWYgKGRpc3Bvc2VGbi5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG52YXIgTGlmZWN5Y2xlID0gLyogQF9fUFVSRV9fICovICgoTGlmZWN5Y2xlMikgPT4ge1xuICBMaWZlY3ljbGUyW0xpZmVjeWNsZTJbXCJUcmFuc2llbnRcIl0gPSAwXSA9IFwiVHJhbnNpZW50XCI7XG4gIExpZmVjeWNsZTJbTGlmZWN5Y2xlMltcIlNpbmdsZXRvblwiXSA9IDFdID0gXCJTaW5nbGV0b25cIjtcbiAgTGlmZWN5Y2xlMltMaWZlY3ljbGUyW1wiUmVzb2x1dGlvblNjb3BlZFwiXSA9IDJdID0gXCJSZXNvbHV0aW9uU2NvcGVkXCI7XG4gIExpZmVjeWNsZTJbTGlmZWN5Y2xlMltcIkNvbnRhaW5lclNjb3BlZFwiXSA9IDNdID0gXCJDb250YWluZXJTY29wZWRcIjtcbiAgcmV0dXJuIExpZmVjeWNsZTI7XG59KShMaWZlY3ljbGUgfHwge30pO1xuXG5jbGFzcyBJbnRlcm5hbERlcGVuZGVuY3lDb250YWluZXIge1xuICBjb25zdHJ1Y3RvcihwYXJlbnQpIHtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBSZWdpc3RyeSgpO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzID0gbmV3IEludGVyY2VwdG9ycygpO1xuICAgIHRoaXMuZGlzcG9zZWQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3Bvc2FibGVzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgfVxuICByZWdpc3Rlcih0b2tlbiwgcHJvdmlkZXJPckNvbnN0cnVjdG9yLCBvcHRpb25zID0geyBsaWZlY3ljbGU6IExpZmVjeWNsZS5UcmFuc2llbnQgfSkge1xuICAgIHRoaXMuZW5zdXJlTm90RGlzcG9zZWQoKTtcbiAgICBsZXQgcHJvdmlkZXI7XG4gICAgaWYgKCFpc1Byb3ZpZGVyKHByb3ZpZGVyT3JDb25zdHJ1Y3RvcikpIHtcbiAgICAgIHByb3ZpZGVyID0geyB1c2VDbGFzczogcHJvdmlkZXJPckNvbnN0cnVjdG9yIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb3ZpZGVyID0gcHJvdmlkZXJPckNvbnN0cnVjdG9yO1xuICAgIH1cbiAgICBpZiAoaXNUb2tlblByb3ZpZGVyKHByb3ZpZGVyKSkge1xuICAgICAgY29uc3QgcGF0aCA9IFt0b2tlbl07XG4gICAgICBsZXQgdG9rZW5Qcm92aWRlciA9IHByb3ZpZGVyO1xuICAgICAgd2hpbGUgKHRva2VuUHJvdmlkZXIgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjdXJyZW50VG9rZW4gPSB0b2tlblByb3ZpZGVyLnVzZVRva2VuO1xuICAgICAgICBpZiAocGF0aC5pbmNsdWRlcyhjdXJyZW50VG9rZW4pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRva2VuIHJlZ2lzdHJhdGlvbiBjeWNsZSBkZXRlY3RlZCEgJHtbLi4ucGF0aCwgY3VycmVudFRva2VuXS5qb2luKFxuICAgICAgICAgICAgICBcIiAtPiBcIlxuICAgICAgICAgICAgKX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwYXRoLnB1c2goY3VycmVudFRva2VuKTtcbiAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5fcmVnaXN0cnkuZ2V0KGN1cnJlbnRUb2tlbik7XG4gICAgICAgIGlmIChyZWdpc3RyYXRpb24gJiYgaXNUb2tlblByb3ZpZGVyKHJlZ2lzdHJhdGlvbi5wcm92aWRlcikpIHtcbiAgICAgICAgICB0b2tlblByb3ZpZGVyID0gcmVnaXN0cmF0aW9uLnByb3ZpZGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRva2VuUHJvdmlkZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICgob3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5TaW5nbGV0b24gfHwgb3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5Db250YWluZXJTY29wZWQgfHwgb3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5SZXNvbHV0aW9uU2NvcGVkKSAmJiAoaXNWYWx1ZVByb3ZpZGVyKHByb3ZpZGVyKSB8fCBpc0ZhY3RvcnlQcm92aWRlcihwcm92aWRlcikpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgdXNlIGxpZmVjeWNsZSBcIiR7TGlmZWN5Y2xlW29wdGlvbnMubGlmZWN5Y2xlXX1cIiB3aXRoIFZhbHVlUHJvdmlkZXJzIG9yIEZhY3RvcnlQcm92aWRlcnNgXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9yZWdpc3RyeS5zZXQodG9rZW4sIHsgcHJvdmlkZXIsIG9wdGlvbnMgfSk7XG4gICAgdGhpcy5leGVjdXRlUG9zdFJlZ2lzdHJhdGlvbkludGVyY2VwdG9yKHRva2VuKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZWdpc3RlclR5cGUoZnJvbSwgdG8pIHtcbiAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgaWYgKGlzTm9ybWFsVG9rZW4odG8pKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWdpc3Rlcihmcm9tLCB7XG4gICAgICAgIHVzZVRva2VuOiB0b1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKGZyb20sIHtcbiAgICAgIHVzZUNsYXNzOiB0b1xuICAgIH0pO1xuICB9XG4gIHJlZ2lzdGVySW5zdGFuY2UodG9rZW4sIGluc3RhbmNlMikge1xuICAgIHRoaXMuZW5zdXJlTm90RGlzcG9zZWQoKTtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3Rlcih0b2tlbiwge1xuICAgICAgdXNlVmFsdWU6IGluc3RhbmNlMlxuICAgIH0pO1xuICB9XG4gIHJlZ2lzdGVyU2luZ2xldG9uKGZyb20sIHRvKSB7XG4gICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgIGlmIChpc05vcm1hbFRva2VuKGZyb20pKSB7XG4gICAgICBpZiAoaXNOb3JtYWxUb2tlbih0bykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIoXG4gICAgICAgICAgZnJvbSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB1c2VUb2tlbjogdG9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbGlmZWN5Y2xlOiBMaWZlY3ljbGUuU2luZ2xldG9uIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0bykge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWdpc3RlcihcbiAgICAgICAgICBmcm9tLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHVzZUNsYXNzOiB0b1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBsaWZlY3ljbGU6IExpZmVjeWNsZS5TaW5nbGV0b24gfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHJlZ2lzdGVyIGEgdHlwZSBuYW1lIGFzIGEgc2luZ2xldG9uIHdpdGhvdXQgYSBcInRvXCIgdG9rZW4nXG4gICAgICApO1xuICAgIH1cbiAgICBsZXQgdXNlQ2xhc3MgPSBmcm9tO1xuICAgIGlmICh0byAmJiAhaXNOb3JtYWxUb2tlbih0bykpIHtcbiAgICAgIHVzZUNsYXNzID0gdG87XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyKFxuICAgICAgZnJvbSxcbiAgICAgIHtcbiAgICAgICAgdXNlQ2xhc3NcbiAgICAgIH0sXG4gICAgICB7IGxpZmVjeWNsZTogTGlmZWN5Y2xlLlNpbmdsZXRvbiB9XG4gICAgKTtcbiAgfVxuICByZXNvbHZlKHRva2VuLCBjb250ZXh0ID0gbmV3IFJlc29sdXRpb25Db250ZXh0KCkpIHtcbiAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5nZXRSZWdpc3RyYXRpb24odG9rZW4pO1xuICAgIGlmICghcmVnaXN0cmF0aW9uICYmIGlzTm9ybWFsVG9rZW4odG9rZW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSB1bnJlZ2lzdGVyZWQgZGVwZW5kZW5jeSB0b2tlbjogXCIke3Rva2VuLnRvU3RyaW5nKCl9XCJgXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmV4ZWN1dGVQcmVSZXNvbHV0aW9uSW50ZXJjZXB0b3IodG9rZW4sIFwiU2luZ2xlXCIpO1xuICAgIGlmIChyZWdpc3RyYXRpb24pIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucmVzb2x2ZVJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24sIGNvbnRleHQpO1xuICAgICAgdGhpcy5leGVjdXRlUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzdWx0LCBcIlNpbmdsZVwiKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChpc0NvbnN0cnVjdG9yVG9rZW4odG9rZW4pKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNvbnN0cnVjdCh0b2tlbiwgY29udGV4dCk7XG4gICAgICB0aGlzLmV4ZWN1dGVQb3N0UmVzb2x1dGlvbkludGVyY2VwdG9yKHRva2VuLCByZXN1bHQsIFwiU2luZ2xlXCIpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IGFuIHVuZGVmaW5lZCBjb25zdHJ1Y3Rvci4gQ291bGQgbWVhbiBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgcHJvYmxlbS4gVHJ5IHVzaW5nIGBkZWxheWAgZnVuY3Rpb24uXCJcbiAgICApO1xuICB9XG4gIGV4ZWN1dGVQb3N0UmVnaXN0cmF0aW9uSW50ZXJjZXB0b3IodG9rZW4pIHtcbiAgICBpZiAodGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlZ2lzdHJhdGlvbi5oYXModG9rZW4pKSB7XG4gICAgICBjb25zdCByZW1haW5pbmdJbnRlcmNlcHRvcnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgaW50ZXJjZXB0b3Igb2YgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlZ2lzdHJhdGlvbi5nZXRBbGwodG9rZW4pKSB7XG4gICAgICAgIGlmIChpbnRlcmNlcHRvci5vcHRpb25zLmZyZXF1ZW5jeSAhPT0gXCJPbmNlXCIpIHtcbiAgICAgICAgICByZW1haW5pbmdJbnRlcmNlcHRvcnMucHVzaChpbnRlcmNlcHRvcik7XG4gICAgICAgIH1cbiAgICAgICAgaW50ZXJjZXB0b3IuY2FsbGJhY2sodG9rZW4pO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlZ2lzdHJhdGlvbi5zZXRBbGwodG9rZW4sIHJlbWFpbmluZ0ludGVyY2VwdG9ycyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmludGVyY2VwdG9ycy5wb3N0QW55UmVnaXN0cmF0aW9uKSB7XG4gICAgICB0aGlzLmludGVyY2VwdG9ycy5wb3N0QW55UmVnaXN0cmF0aW9uKHRva2VuKTtcbiAgICB9XG4gIH1cbiAgZXhlY3V0ZVByZVJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzb2x1dGlvblR5cGUpIHtcbiAgICBpZiAodGhpcy5pbnRlcmNlcHRvcnMucHJlUmVzb2x1dGlvbi5oYXModG9rZW4pKSB7XG4gICAgICBjb25zdCByZW1haW5pbmdJbnRlcmNlcHRvcnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgaW50ZXJjZXB0b3Igb2YgdGhpcy5pbnRlcmNlcHRvcnMucHJlUmVzb2x1dGlvbi5nZXRBbGwodG9rZW4pKSB7XG4gICAgICAgIGlmIChpbnRlcmNlcHRvci5vcHRpb25zLmZyZXF1ZW5jeSAhPT0gXCJPbmNlXCIpIHtcbiAgICAgICAgICByZW1haW5pbmdJbnRlcmNlcHRvcnMucHVzaChpbnRlcmNlcHRvcik7XG4gICAgICAgIH1cbiAgICAgICAgaW50ZXJjZXB0b3IuY2FsbGJhY2sodG9rZW4sIHJlc29sdXRpb25UeXBlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uc2V0QWxsKHRva2VuLCByZW1haW5pbmdJbnRlcmNlcHRvcnMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbnRlcmNlcHRvcnMucHJlQW55UmVzb2x1dGlvbikge1xuICAgICAgdGhpcy5pbnRlcmNlcHRvcnMucHJlQW55UmVzb2x1dGlvbih0b2tlbiwgcmVzb2x1dGlvblR5cGUpO1xuICAgIH1cbiAgfVxuICBleGVjdXRlUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzdWx0LCByZXNvbHV0aW9uVHlwZSkge1xuICAgIGlmICh0aGlzLmludGVyY2VwdG9ycy5wb3N0UmVzb2x1dGlvbi5oYXModG9rZW4pKSB7XG4gICAgICBjb25zdCByZW1haW5pbmdJbnRlcmNlcHRvcnMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgaW50ZXJjZXB0b3Igb2YgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlc29sdXRpb24uZ2V0QWxsKFxuICAgICAgICB0b2tlblxuICAgICAgKSkge1xuICAgICAgICBpZiAoaW50ZXJjZXB0b3Iub3B0aW9ucy5mcmVxdWVuY3kgIT09IFwiT25jZVwiKSB7XG4gICAgICAgICAgcmVtYWluaW5nSW50ZXJjZXB0b3JzLnB1c2goaW50ZXJjZXB0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGludGVyY2VwdG9yLmNhbGxiYWNrKHRva2VuLCByZXN1bHQsIHJlc29sdXRpb25UeXBlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RSZXNvbHV0aW9uLnNldEFsbCh0b2tlbiwgcmVtYWluaW5nSW50ZXJjZXB0b3JzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RBbnlSZXNvbHV0aW9uKSB7XG4gICAgICB0aGlzLmludGVyY2VwdG9ycy5wb3N0QW55UmVzb2x1dGlvbih0b2tlbiwgcmVzdWx0LCByZXNvbHV0aW9uVHlwZSk7XG4gICAgfVxuICB9XG4gIHJlc29sdmVSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uLCBjb250ZXh0KSB7XG4gICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgIGlmIChyZWdpc3RyYXRpb24ub3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5SZXNvbHV0aW9uU2NvcGVkICYmIGNvbnRleHQuc2NvcGVkUmVzb2x1dGlvbnMuaGFzKHJlZ2lzdHJhdGlvbikpIHtcbiAgICAgIHJldHVybiBjb250ZXh0LnNjb3BlZFJlc29sdXRpb25zLmdldChyZWdpc3RyYXRpb24pO1xuICAgIH1cbiAgICBjb25zdCBpc1NpbmdsZXRvbiA9IHJlZ2lzdHJhdGlvbi5vcHRpb25zLmxpZmVjeWNsZSA9PT0gTGlmZWN5Y2xlLlNpbmdsZXRvbjtcbiAgICBjb25zdCBpc0NvbnRhaW5lclNjb3BlZCA9IHJlZ2lzdHJhdGlvbi5vcHRpb25zLmxpZmVjeWNsZSA9PT0gTGlmZWN5Y2xlLkNvbnRhaW5lclNjb3BlZDtcbiAgICBjb25zdCByZXR1cm5JbnN0YW5jZSA9IGlzU2luZ2xldG9uIHx8IGlzQ29udGFpbmVyU2NvcGVkO1xuICAgIGxldCBuZXdSZXNvbHV0aW9uID0gdHJ1ZTtcbiAgICBsZXQgcmVzb2x2ZWQ7XG4gICAgaWYgKGlzVmFsdWVQcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICByZXNvbHZlZCA9IHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9rZW5Qcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICBuZXdSZXNvbHV0aW9uID0gcmV0dXJuSW5zdGFuY2U7XG4gICAgICByZXNvbHZlZCA9IHJldHVybkluc3RhbmNlID8gcmVnaXN0cmF0aW9uLmluc3RhbmNlIHx8IChyZWdpc3RyYXRpb24uaW5zdGFuY2UgPSB0aGlzLnJlc29sdmUoXG4gICAgICAgIHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VUb2tlbixcbiAgICAgICAgY29udGV4dFxuICAgICAgKSkgOiB0aGlzLnJlc29sdmUocmVnaXN0cmF0aW9uLnByb3ZpZGVyLnVzZVRva2VuLCBjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKGlzQ2xhc3NQcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICBuZXdSZXNvbHV0aW9uID0gcmV0dXJuSW5zdGFuY2U7XG4gICAgICByZXNvbHZlZCA9IHJldHVybkluc3RhbmNlID8gcmVnaXN0cmF0aW9uLmluc3RhbmNlIHx8IChyZWdpc3RyYXRpb24uaW5zdGFuY2UgPSB0aGlzLmNvbnN0cnVjdChcbiAgICAgICAgcmVnaXN0cmF0aW9uLnByb3ZpZGVyLnVzZUNsYXNzLFxuICAgICAgICBjb250ZXh0XG4gICAgICApKSA6IHRoaXMuY29uc3RydWN0KHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VDbGFzcywgY29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChpc0ZhY3RvcnlQcm92aWRlcihyZWdpc3RyYXRpb24ucHJvdmlkZXIpKSB7XG4gICAgICByZXNvbHZlZCA9IHJlZ2lzdHJhdGlvbi5wcm92aWRlci51c2VGYWN0b3J5KHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdSZXNvbHV0aW9uID0gZmFsc2U7XG4gICAgICByZXNvbHZlZCA9IHRoaXMuY29uc3RydWN0KHJlZ2lzdHJhdGlvbi5wcm92aWRlciwgY29udGV4dCk7XG4gICAgfVxuICAgIGlmIChyZWdpc3RyYXRpb24ub3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5SZXNvbHV0aW9uU2NvcGVkKSB7XG4gICAgICBjb250ZXh0LnNjb3BlZFJlc29sdXRpb25zLnNldChyZWdpc3RyYXRpb24sIHJlc29sdmVkKTtcbiAgICB9XG4gICAgaWYgKG5ld1Jlc29sdXRpb24gJiYgaXNEaXNwb3NhYmxlKHJlc29sdmVkKSkge1xuICAgICAgdGhpcy5kaXNwb3NhYmxlcy5hZGQocmVzb2x2ZWQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH1cbiAgcmVzb2x2ZUFsbCh0b2tlbiwgY29udGV4dCA9IG5ldyBSZXNvbHV0aW9uQ29udGV4dCgpKSB7XG4gICAgdGhpcy5lbnN1cmVOb3REaXNwb3NlZCgpO1xuICAgIGNvbnN0IHJlZ2lzdHJhdGlvbnMgPSB0aGlzLmdldEFsbFJlZ2lzdHJhdGlvbnModG9rZW4pO1xuICAgIGlmICghcmVnaXN0cmF0aW9ucyAmJiBpc05vcm1hbFRva2VuKHRva2VuKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgdW5yZWdpc3RlcmVkIGRlcGVuZGVuY3kgdG9rZW46IFwiJHt0b2tlbi50b1N0cmluZygpfVwiYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5leGVjdXRlUHJlUmVzb2x1dGlvbkludGVyY2VwdG9yKHRva2VuLCBcIkFsbFwiKTtcbiAgICBpZiAocmVnaXN0cmF0aW9ucykge1xuICAgICAgY29uc3QgcmVzdWx0MiA9IHJlZ2lzdHJhdGlvbnMubWFwKFxuICAgICAgICAoaXRlbSkgPT4gdGhpcy5yZXNvbHZlUmVnaXN0cmF0aW9uKGl0ZW0sIGNvbnRleHQpXG4gICAgICApO1xuICAgICAgdGhpcy5leGVjdXRlUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzdWx0MiwgXCJBbGxcIik7XG4gICAgICByZXR1cm4gcmVzdWx0MjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gW3RoaXMuY29uc3RydWN0KHRva2VuLCBjb250ZXh0KV07XG4gICAgdGhpcy5leGVjdXRlUG9zdFJlc29sdXRpb25JbnRlcmNlcHRvcih0b2tlbiwgcmVzdWx0LCBcIkFsbFwiKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJlZ2lzdGVyZWRUb2tlbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5LnRva2VucygpO1xuICB9XG4gIGlzUmVnaXN0ZXJlZCh0b2tlbiwgcmVjdXJzaXZlID0gZmFsc2UpIHtcbiAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5Lmhhcyh0b2tlbikgfHwgKChyZWN1cnNpdmUgJiYgdGhpcy5wYXJlbnQ/LmlzUmVnaXN0ZXJlZCh0b2tlbiwgdHJ1ZSkpID8/IGZhbHNlKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgdGhpcy5fcmVnaXN0cnkuY2xlYXIoKTtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5wcmVSZXNvbHV0aW9uLmNsZWFyKCk7XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucG9zdFJlc29sdXRpb24uY2xlYXIoKTtcbiAgfVxuICB1bnJlZ2lzdGVyQWxsKCkge1xuICAgIHRoaXMuX3JlZ2lzdHJ5LmNsZWFyKCk7XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucHJlUmVzb2x1dGlvbi5jbGVhcigpO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RSZXNvbHV0aW9uLmNsZWFyKCk7XG4gIH1cbiAgdW5yZWdpc3Rlcih0b2tlbikge1xuICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IHRoaXMuZ2V0UmVnaXN0cmF0aW9uKHRva2VuKTtcbiAgICBpZiAoIXJlZ2lzdHJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIGRlbGV0ZSB1bnJlZ2lzdGVyZWQgZGVwZW5kZW5jeSB0b2tlbjogXCIke3Rva2VuLnRvU3RyaW5nKCl9XCJgXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLl9yZWdpc3RyeS5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnByZVJlc29sdXRpb24uZGVsZXRlKHRva2VuKTtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5wb3N0UmVzb2x1dGlvbi5kZWxldGUodG9rZW4pO1xuICB9XG4gIGNsZWFySW5zdGFuY2VzKCkge1xuICAgIHRoaXMuZW5zdXJlTm90RGlzcG9zZWQoKTtcbiAgICBmb3IgKGNvbnN0IFt0b2tlbiwgcmVnaXN0cmF0aW9uc10gb2YgdGhpcy5fcmVnaXN0cnkuZW50cmllcygpKSB7XG4gICAgICB0aGlzLl9yZWdpc3RyeS5zZXRBbGwoXG4gICAgICAgIHRva2VuLFxuICAgICAgICByZWdpc3RyYXRpb25zLmZpbHRlcigocmVnaXN0cmF0aW9uKSA9PiAhaXNWYWx1ZVByb3ZpZGVyKHJlZ2lzdHJhdGlvbi5wcm92aWRlcikpLm1hcCgocmVnaXN0cmF0aW9uKSA9PiB7XG4gICAgICAgICAgcmVnaXN0cmF0aW9uLmluc3RhbmNlID0gdm9pZCAwO1xuICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBjcmVhdGVDaGlsZENvbnRhaW5lcigpIHtcbiAgICB0aGlzLmVuc3VyZU5vdERpc3Bvc2VkKCk7XG4gICAgY29uc3QgY2hpbGRDb250YWluZXIgPSBuZXcgSW50ZXJuYWxEZXBlbmRlbmN5Q29udGFpbmVyKHRoaXMpO1xuICAgIGZvciAoY29uc3QgW3Rva2VuLCByZWdpc3RyYXRpb25zXSBvZiB0aGlzLl9yZWdpc3RyeS5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChyZWdpc3RyYXRpb25zLnNvbWUoXG4gICAgICAgICh7IG9wdGlvbnMgfSkgPT4gb3B0aW9ucy5saWZlY3ljbGUgPT09IExpZmVjeWNsZS5Db250YWluZXJTY29wZWRcbiAgICAgICkpIHtcbiAgICAgICAgY2hpbGRDb250YWluZXIuX3JlZ2lzdHJ5LnNldEFsbChcbiAgICAgICAgICB0b2tlbixcbiAgICAgICAgICByZWdpc3RyYXRpb25zLm1hcCgocmVnaXN0cmF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uLm9wdGlvbnMubGlmZWN5Y2xlID09PSBMaWZlY3ljbGUuQ29udGFpbmVyU2NvcGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZXI6IHJlZ2lzdHJhdGlvbi5wcm92aWRlcixcbiAgICAgICAgICAgICAgICBvcHRpb25zOiByZWdpc3RyYXRpb24ub3B0aW9uc1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbjtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hpbGRDb250YWluZXI7XG4gIH1cbiAgYWZ0ZXJSZWdpc3RyYXRpb24odG9rZW4sIGNhbGxiYWNrLCBvcHRpb25zID0geyBmcmVxdWVuY3k6IFwiQWx3YXlzXCIgfSkge1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RSZWdpc3RyYXRpb24uc2V0KHRva2VuLCB7XG4gICAgICBjYWxsYmFjayxcbiAgICAgIG9wdGlvbnNcbiAgICB9KTtcbiAgfVxuICBhZnRlckFueVJlZ2lzdHJhdGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RBbnlSZWdpc3RyYXRpb24gPSBjYWxsYmFjaztcbiAgfVxuICBiZWZvcmVSZXNvbHV0aW9uKHRva2VuLCBjYWxsYmFjaywgb3B0aW9ucyA9IHsgZnJlcXVlbmN5OiBcIkFsd2F5c1wiIH0pIHtcbiAgICB0aGlzLmludGVyY2VwdG9ycy5wcmVSZXNvbHV0aW9uLnNldCh0b2tlbiwge1xuICAgICAgY2FsbGJhY2ssXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG4gIH1cbiAgYmVmb3JlQW55UmVzb2x1dGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnByZUFueVJlc29sdXRpb24gPSBjYWxsYmFjaztcbiAgfVxuICBhZnRlclJlc29sdXRpb24odG9rZW4sIGNhbGxiYWNrLCBvcHRpb25zID0geyBmcmVxdWVuY3k6IFwiQWx3YXlzXCIgfSkge1xuICAgIHRoaXMuaW50ZXJjZXB0b3JzLnBvc3RSZXNvbHV0aW9uLnNldCh0b2tlbiwge1xuICAgICAgY2FsbGJhY2ssXG4gICAgICBvcHRpb25zXG4gICAgfSk7XG4gIH1cbiAgYWZ0ZXJBbnlSZXNvbHV0aW9uKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5pbnRlcmNlcHRvcnMucG9zdEFueVJlc29sdXRpb24gPSBjYWxsYmFjaztcbiAgfVxuICBhc3luYyBkaXNwb3NlKCkge1xuICAgIHRoaXMuZGlzcG9zZWQgPSB0cnVlO1xuICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgdGhpcy5kaXNwb3NhYmxlcy5mb3JFYWNoKChkaXNwb3NhYmxlKSA9PiB7XG4gICAgICBjb25zdCBtYXliZVByb21pc2UgPSBkaXNwb3NhYmxlLmRpc3Bvc2UoKTtcbiAgICAgIGlmIChtYXliZVByb21pc2UpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaChtYXliZVByb21pc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgfVxuICBnZXRSZWdpc3RyYXRpb24odG9rZW4pIHtcbiAgICBpZiAodGhpcy5pc1JlZ2lzdGVyZWQodG9rZW4pKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnkuZ2V0KHRva2VuKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0UmVnaXN0cmF0aW9uKHRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0QWxsUmVnaXN0cmF0aW9ucyh0b2tlbikge1xuICAgIGlmICh0aGlzLmlzUmVnaXN0ZXJlZCh0b2tlbikpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZWdpc3RyeS5nZXRBbGwodG9rZW4pO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRBbGxSZWdpc3RyYXRpb25zKHRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3RydWN0KGN0b3IsIGNvbnRleHQpIHtcbiAgICBpZiAoY3RvciBpbnN0YW5jZW9mIERlbGF5ZWRDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIGN0b3IuY3JlYXRlUHJveHkoXG4gICAgICAgICh0YXJnZXQpID0+IHRoaXMucmVzb2x2ZSh0YXJnZXQsIGNvbnRleHQpXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBpbnN0YW5jZTIgPSAoKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1JbmZvID0gUmVmbGVjdC5nZXRNZXRhZGF0YShQQVJBTV9JTkZPU19NRVRBREFUQV9LRVksIGN0b3IpO1xuICAgICAgaWYgKCFwYXJhbUluZm8gfHwgcGFyYW1JbmZvLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAoY3Rvci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gbmV3IGN0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGVJbmZvIG5vdCBrbm93biBmb3IgXCIke2N0b3IubmFtZX1cImApO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFyYW1zID0gcGFyYW1JbmZvLm1hcCh0aGlzLnJlc29sdmVQYXJhbXMoY29udGV4dCwgY3RvcikpO1xuICAgICAgcmV0dXJuIG5ldyBjdG9yKC4uLnBhcmFtcyk7XG4gICAgfSkoKTtcbiAgICBpZiAoaXNEaXNwb3NhYmxlKGluc3RhbmNlMikpIHtcbiAgICAgIHRoaXMuZGlzcG9zYWJsZXMuYWRkKGluc3RhbmNlMik7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTI7XG4gIH1cbiAgcmVzb2x2ZVBhcmFtcyhjb250ZXh0LCBjdG9yKSB7XG4gICAgcmV0dXJuIChwYXJhbSwgaWR4KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoaXNUb2tlbkRlc2NyaXB0b3IocGFyYW0pKSB7XG4gICAgICAgICAgaWYgKGlzVHJhbnNmb3JtRGVzY3JpcHRvcihwYXJhbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbS5tdWx0aXBsZSA/IHRoaXMucmVzb2x2ZShwYXJhbS50cmFuc2Zvcm0pLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlQWxsKHBhcmFtLnRva2VuKSxcbiAgICAgICAgICAgICAgLi4ucGFyYW0udHJhbnNmb3JtQXJnc1xuICAgICAgICAgICAgKSA6IHRoaXMucmVzb2x2ZShwYXJhbS50cmFuc2Zvcm0pLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlKHBhcmFtLnRva2VuLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgLi4ucGFyYW0udHJhbnNmb3JtQXJnc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLm11bHRpcGxlID8gdGhpcy5yZXNvbHZlQWxsKHBhcmFtLnRva2VuKSA6IHRoaXMucmVzb2x2ZShwYXJhbS50b2tlbiwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVHJhbnNmb3JtRGVzY3JpcHRvcihwYXJhbSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlKHBhcmFtLnRyYW5zZm9ybSwgY29udGV4dCkudHJhbnNmb3JtKFxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlKHBhcmFtLnRva2VuLCBjb250ZXh0KSxcbiAgICAgICAgICAgIC4uLnBhcmFtLnRyYW5zZm9ybUFyZ3NcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmUocGFyYW0sIGNvbnRleHQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdEVycm9yQ3RvcihjdG9yLCBpZHgsIGVycm9yKSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICBlbnN1cmVOb3REaXNwb3NlZCgpIHtcbiAgICBpZiAodGhpcy5kaXNwb3NlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoaXMgY29udGFpbmVyIGhhcyBiZWVuIGRpc3Bvc2VkLCB5b3UgY2Fubm90IGludGVyYWN0IHdpdGggYSBkaXNwb3NlZCBjb250YWluZXJcIlxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbmNvbnN0IGluc3RhbmNlID0gbmV3IEludGVybmFsRGVwZW5kZW5jeUNvbnRhaW5lcigpO1xuXG5mdW5jdGlvbiBhdXRvSW5qZWN0YWJsZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgIGNvbnN0IHBhcmFtSW5mbyA9IGdldFBhcmFtSW5mbyh0YXJnZXQpO1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIHRhcmdldCB7XG4gICAgICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgIC4uLmFyZ3MuY29uY2F0KFxuICAgICAgICAgICAgcGFyYW1JbmZvLnNsaWNlKGFyZ3MubGVuZ3RoKS5tYXAoKHR5cGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzVG9rZW5EZXNjcmlwdG9yKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoaXNUcmFuc2Zvcm1EZXNjcmlwdG9yKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLm11bHRpcGxlID8gaW5zdGFuY2UucmVzb2x2ZSh0eXBlLnRyYW5zZm9ybSkudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnJlc29sdmVBbGwodHlwZS50b2tlbiksXG4gICAgICAgICAgICAgICAgICAgICAgLi4udHlwZS50cmFuc2Zvcm1BcmdzXG4gICAgICAgICAgICAgICAgICAgICkgOiBpbnN0YW5jZS5yZXNvbHZlKHR5cGUudHJhbnNmb3JtKS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UucmVzb2x2ZSh0eXBlLnRva2VuKSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi50eXBlLnRyYW5zZm9ybUFyZ3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLm11bHRpcGxlID8gaW5zdGFuY2UucmVzb2x2ZUFsbCh0eXBlLnRva2VuKSA6IGluc3RhbmNlLnJlc29sdmUodHlwZS50b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc1RyYW5zZm9ybURlc2NyaXB0b3IodHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS5yZXNvbHZlKHR5cGUudHJhbnNmb3JtKS50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLnJlc29sdmUodHlwZS50b2tlbiksXG4gICAgICAgICAgICAgICAgICAgIC4uLnR5cGUudHJhbnNmb3JtQXJnc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc29sdmUodHlwZSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJnSW5kZXggPSBpbmRleCArIGFyZ3MubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGZvcm1hdEVycm9yQ3Rvcih0YXJnZXQsIGFyZ0luZGV4LCBlcnJvcilcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBpbmplY3QodG9rZW4pIHtcbiAgcmV0dXJuIGRlZmluZUluamVjdGlvblRva2VuTWV0YWRhdGEodG9rZW4pO1xufVxuXG5mdW5jdGlvbiBpbmplY3RBbGwodG9rZW4pIHtcbiAgY29uc3QgZGF0YSA9IHsgdG9rZW4sIG11bHRpcGxlOiB0cnVlIH07XG4gIHJldHVybiBkZWZpbmVJbmplY3Rpb25Ub2tlbk1ldGFkYXRhKGRhdGEpO1xufVxuXG5mdW5jdGlvbiBpbmplY3RBbGxXaXRoVHJhbnNmb3JtKHRva2VuLCB0cmFuc2Zvcm1lciwgLi4uYXJncykge1xuICBjb25zdCBkYXRhID0ge1xuICAgIHRva2VuLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtZXIsXG4gICAgdHJhbnNmb3JtQXJnczogYXJnc1xuICB9O1xuICByZXR1cm4gZGVmaW5lSW5qZWN0aW9uVG9rZW5NZXRhZGF0YShkYXRhKTtcbn1cblxuZnVuY3Rpb24gaW5qZWN0V2l0aFRyYW5zZm9ybSh0b2tlbiwgdHJhbnNmb3JtZXIsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIGRlZmluZUluamVjdGlvblRva2VuTWV0YWRhdGEodG9rZW4sIHtcbiAgICB0cmFuc2Zvcm1Ub2tlbjogdHJhbnNmb3JtZXIsXG4gICAgYXJnc1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaW5qZWN0YWJsZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgIGNvbnN0IHBhcmFtSW5mbyA9IGdldFBhcmFtSW5mbyh0YXJnZXQpO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoUEFSQU1fSU5GT1NfTUVUQURBVEFfS0VZLCBwYXJhbUluZm8sIHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdHJ5KHJlZ2lzdHJhdGlvbnMgPSBbXSkge1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0KSB7XG4gICAgcmVnaXN0cmF0aW9ucy5mb3JFYWNoKFxuICAgICAgKHsgdG9rZW4sIG9wdGlvbnMsIC4uLnByb3ZpZGVyIH0pID0+IGluc3RhbmNlLnJlZ2lzdGVyKHRva2VuLCBwcm92aWRlciwgb3B0aW9ucylcbiAgICApO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNjb3BlZChsaWZlY3ljbGUsIHRva2VuKSB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICBpbmplY3RhYmxlKCkodGFyZ2V0KTtcbiAgICBpbnN0YW5jZS5yZWdpc3Rlcih0b2tlbiB8fCB0YXJnZXQsIHRhcmdldCwge1xuICAgICAgbGlmZWN5Y2xlXG4gICAgfSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNpbmdsZXRvbigpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgIGluamVjdGFibGUoKSh0YXJnZXQpO1xuICAgIGluc3RhbmNlLnJlZ2lzdGVyU2luZ2xldG9uKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlQ2FjaGluZ0ZhY3RvcnkoZmFjdG9yeUZ1bmMpIHtcbiAgbGV0IGluc3RhbmNlO1xuICByZXR1cm4gKGRlcGVuZGVuY3lDb250YWluZXIpID0+IHtcbiAgICBpZiAoaW5zdGFuY2UgPT0gbnVsbCkge1xuICAgICAgaW5zdGFuY2UgPSBmYWN0b3J5RnVuYyhkZXBlbmRlbmN5Q29udGFpbmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpbnN0YW5jZVBlckNvbnRhaW5lckNhY2hpbmdGYWN0b3J5KGZhY3RvcnlGdW5jKSB7XG4gIGNvbnN0IGNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG4gIHJldHVybiAoZGVwZW5kZW5jeUNvbnRhaW5lcikgPT4ge1xuICAgIGxldCBpbnN0YW5jZSA9IGNhY2hlLmdldChkZXBlbmRlbmN5Q29udGFpbmVyKTtcbiAgICBpZiAoaW5zdGFuY2UgPT0gbnVsbCkge1xuICAgICAgaW5zdGFuY2UgPSBmYWN0b3J5RnVuYyhkZXBlbmRlbmN5Q29udGFpbmVyKTtcbiAgICAgIGNhY2hlLnNldChkZXBlbmRlbmN5Q29udGFpbmVyLCBpbnN0YW5jZSk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHJlZGljYXRlQXdhcmVDbGFzc0ZhY3RvcnkocHJlZGljYXRlLCB0cnVlQ29uc3RydWN0b3IsIGZhbHNlQ29uc3RydWN0b3IsIHVzZUNhY2hpbmcgPSB0cnVlKSB7XG4gIGxldCBpbnN0YW5jZTtcbiAgbGV0IHByZXZpb3VzUHJlZGljYXRlO1xuICByZXR1cm4gKGRlcGVuZGVuY3lDb250YWluZXIpID0+IHtcbiAgICBjb25zdCBjdXJyZW50UHJlZGljYXRlID0gcHJlZGljYXRlKGRlcGVuZGVuY3lDb250YWluZXIpO1xuICAgIGlmICghdXNlQ2FjaGluZyB8fCBwcmV2aW91c1ByZWRpY2F0ZSAhPT0gY3VycmVudFByZWRpY2F0ZSkge1xuICAgICAgaWYgKHByZXZpb3VzUHJlZGljYXRlID0gY3VycmVudFByZWRpY2F0ZSkge1xuICAgICAgICBpbnN0YW5jZSA9IGRlcGVuZGVuY3lDb250YWluZXIucmVzb2x2ZSh0cnVlQ29uc3RydWN0b3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZXBlbmRlbmN5Q29udGFpbmVyLnJlc29sdmUoZmFsc2VDb25zdHJ1Y3Rvcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcbn1cblxuaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmdldE1ldGFkYXRhKSB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgdHN5cmluZ2UtbmVvIHJlcXVpcmVzIGEgcmVmbGVjdCBwb2x5ZmlsbC4gUGxlYXNlIGFkZCAnaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiJyB0byB0aGUgdG9wIG9mIHlvdXIgZW50cnkgcG9pbnQuYFxuICApO1xufVxuXG5leHBvcnQgeyBMaWZlY3ljbGUsIGF1dG9JbmplY3RhYmxlLCBpbnN0YW5jZSBhcyBjb250YWluZXIsIGRlbGF5LCBpbmplY3QsIGluamVjdEFsbCwgaW5qZWN0QWxsV2l0aFRyYW5zZm9ybSwgaW5qZWN0V2l0aFRyYW5zZm9ybSwgaW5qZWN0YWJsZSwgaW5zdGFuY2VDYWNoaW5nRmFjdG9yeSwgaW5zdGFuY2VQZXJDb250YWluZXJDYWNoaW5nRmFjdG9yeSwgaXNDbGFzc1Byb3ZpZGVyLCBpc0ZhY3RvcnlQcm92aWRlciwgaXNOb3JtYWxUb2tlbiwgaXNUb2tlblByb3ZpZGVyLCBpc1ZhbHVlUHJvdmlkZXIsIHByZWRpY2F0ZUF3YXJlQ2xhc3NGYWN0b3J5LCByZWdpc3RyeSwgc2NvcGVkLCBzaW5nbGV0b24gfTtcbiIsImltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIlxuaW1wb3J0IHtzaW5nbGV0b259IGZyb20gXCJ0c3lyaW5nZS1uZW9cIlxuXG5Ac2luZ2xldG9uKClcbmNsYXNzIFRva2VuIHtcbiAgICBwdWJsaWMgY3VycmVudFRva2VuOlN0cmluZ1xuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKVxuICAgICAgICB9LCAyKjYwKjEwMDApXG4gICAgfVxuICAgIHJlZnJlc2hUb2tlbigpOiB2b2lkIHtcbiAgICAgICAgYXhpb3MuZ2V0KCcvYXBwcy9hcGkvY29udGFjdC9yZWZyZXNoJywge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy5jdXJyZW50VG9rZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigoIHJlc3BvbnNlICkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4gPSByZXNwb25zZS5kYXRhLnRva2VuXG4gICAgICAgIH0pXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUb2tlblxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbid1c2Ugc3RyaWN0JztmdW5jdGlvbiBmKGEsYil7dmFyIGM9YS5sZW5ndGg7YS5wdXNoKGIpO2E6Zm9yKDswPGM7KXt2YXIgZD1jLTE+Pj4xLGU9YVtkXTtpZigwPGcoZSxiKSlhW2RdPWIsYVtjXT1lLGM9ZDtlbHNlIGJyZWFrIGF9fWZ1bmN0aW9uIGgoYSl7cmV0dXJuIDA9PT1hLmxlbmd0aD9udWxsOmFbMF19ZnVuY3Rpb24gayhhKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGI9YVswXSxjPWEucG9wKCk7aWYoYyE9PWIpe2FbMF09YzthOmZvcih2YXIgZD0wLGU9YS5sZW5ndGgsdz1lPj4+MTtkPHc7KXt2YXIgbT0yKihkKzEpLTEsQz1hW21dLG49bSsxLHg9YVtuXTtpZigwPmcoQyxjKSluPGUmJjA+Zyh4LEMpPyhhW2RdPXgsYVtuXT1jLGQ9bik6KGFbZF09QyxhW21dPWMsZD1tKTtlbHNlIGlmKG48ZSYmMD5nKHgsYykpYVtkXT14LGFbbl09YyxkPW47ZWxzZSBicmVhayBhfX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGcoYSxiKXt2YXIgYz1hLnNvcnRJbmRleC1iLnNvcnRJbmRleDtyZXR1cm4gMCE9PWM/YzphLmlkLWIuaWR9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHBlcmZvcm1hbmNlLm5vdyl7dmFyIGw9cGVyZm9ybWFuY2U7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gbC5ub3coKX19ZWxzZXt2YXIgcD1EYXRlLHE9cC5ub3coKTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBwLm5vdygpLXF9fXZhciByPVtdLHQ9W10sdT0xLHY9bnVsbCx5PTMsej0hMSxBPSExLEI9ITEsRD1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsRT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLEY9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7XG5cInVuZGVmaW5lZFwiIT09dHlwZW9mIG5hdmlnYXRvciYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcmJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nJiZuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKTtmdW5jdGlvbiBHKGEpe2Zvcih2YXIgYj1oKHQpO251bGwhPT1iOyl7aWYobnVsbD09PWIuY2FsbGJhY2spayh0KTtlbHNlIGlmKGIuc3RhcnRUaW1lPD1hKWsodCksYi5zb3J0SW5kZXg9Yi5leHBpcmF0aW9uVGltZSxmKHIsYik7ZWxzZSBicmVhaztiPWgodCl9fWZ1bmN0aW9uIEgoYSl7Qj0hMTtHKGEpO2lmKCFBKWlmKG51bGwhPT1oKHIpKUE9ITAsSShKKTtlbHNle3ZhciBiPWgodCk7bnVsbCE9PWImJksoSCxiLnN0YXJ0VGltZS1hKX19XG5mdW5jdGlvbiBKKGEsYil7QT0hMTtCJiYoQj0hMSxFKEwpLEw9LTEpO3o9ITA7dmFyIGM9eTt0cnl7RyhiKTtmb3Iodj1oKHIpO251bGwhPT12JiYoISh2LmV4cGlyYXRpb25UaW1lPmIpfHxhJiYhTSgpKTspe3ZhciBkPXYuY2FsbGJhY2s7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3YuY2FsbGJhY2s9bnVsbDt5PXYucHJpb3JpdHlMZXZlbDt2YXIgZT1kKHYuZXhwaXJhdGlvblRpbWU8PWIpO2I9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZT92LmNhbGxiYWNrPWU6dj09PWgocikmJmsocik7RyhiKX1lbHNlIGsocik7dj1oKHIpfWlmKG51bGwhPT12KXZhciB3PSEwO2Vsc2V7dmFyIG09aCh0KTtudWxsIT09bSYmSyhILG0uc3RhcnRUaW1lLWIpO3c9ITF9cmV0dXJuIHd9ZmluYWxseXt2PW51bGwseT1jLHo9ITF9fXZhciBOPSExLE89bnVsbCxMPS0xLFA9NSxRPS0xO1xuZnVuY3Rpb24gTSgpe3JldHVybiBleHBvcnRzLnVuc3RhYmxlX25vdygpLVE8UD8hMTohMH1mdW5jdGlvbiBSKCl7aWYobnVsbCE9PU8pe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7UT1hO3ZhciBiPSEwO3RyeXtiPU8oITAsYSl9ZmluYWxseXtiP1MoKTooTj0hMSxPPW51bGwpfX1lbHNlIE49ITF9dmFyIFM7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIEYpUz1mdW5jdGlvbigpe0YoUil9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIFQ9bmV3IE1lc3NhZ2VDaGFubmVsLFU9VC5wb3J0MjtULnBvcnQxLm9ubWVzc2FnZT1SO1M9ZnVuY3Rpb24oKXtVLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIFM9ZnVuY3Rpb24oKXtEKFIsMCl9O2Z1bmN0aW9uIEkoYSl7Tz1hO058fChOPSEwLFMoKSl9ZnVuY3Rpb24gSyhhLGIpe0w9RChmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfVxuZXhwb3J0cy51bnN0YWJsZV9JZGxlUHJpb3JpdHk9NTtleHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Mb3dQcmlvcml0eT00O2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZz1udWxsO2V4cG9ydHMudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk9MjtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe2EuY2FsbGJhY2s9bnVsbH07ZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbj1mdW5jdGlvbigpe0F8fHp8fChBPSEwLEkoSikpfTtcbmV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oYSl7MD5hfHwxMjU8YT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOlA9MDxhP01hdGguZmxvb3IoMUUzL2EpOjV9O2V4cG9ydHMudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4geX07ZXhwb3J0cy51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiBoKHIpfTtleHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKHkpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPXl9dmFyIGM9eTt5PWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXt5PWN9fTtleHBvcnRzLnVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7fTtcbmV4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50PWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6YT0zfXZhciBjPXk7eT1hO3RyeXtyZXR1cm4gYigpfWZpbmFsbHl7eT1jfX07XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yz8oYz1jLmRlbGF5LGM9XCJudW1iZXJcIj09PXR5cGVvZiBjJiYwPGM/ZCtjOmQpOmM9ZDtzd2l0Y2goYSl7Y2FzZSAxOnZhciBlPS0xO2JyZWFrO2Nhc2UgMjplPTI1MDticmVhaztjYXNlIDU6ZT0xMDczNzQxODIzO2JyZWFrO2Nhc2UgNDplPTFFNDticmVhaztkZWZhdWx0OmU9NUUzfWU9YytlO2E9e2lkOnUrKyxjYWxsYmFjazpiLHByaW9yaXR5TGV2ZWw6YSxzdGFydFRpbWU6YyxleHBpcmF0aW9uVGltZTplLHNvcnRJbmRleDotMX07Yz5kPyhhLnNvcnRJbmRleD1jLGYodCxhKSxudWxsPT09aChyKSYmYT09PWgodCkmJihCPyhFKEwpLEw9LTEpOkI9ITAsSyhILGMtZCkpKTooYS5zb3J0SW5kZXg9ZSxmKHIsYSksQXx8enx8KEE9ITAsSShKKSkpO3JldHVybiBhfTtcbmV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQ9TTtleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj15O3JldHVybiBmdW5jdGlvbigpe3ZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXt5PWN9fX07XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuJ3VzZSBzdHJpY3QnO3ZhciBhYT1yZXF1aXJlKFwicmVhY3RcIiksY2E9cmVxdWlyZShcInNjaGVkdWxlclwiKTtmdW5jdGlvbiBwKGEpe2Zvcih2YXIgYj1cImh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9lcnJvci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PVwiK2EsYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspYis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbY10pO3JldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2ErXCI7IHZpc2l0IFwiK2IrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifXZhciBkYT1uZXcgU2V0LGVhPXt9O2Z1bmN0aW9uIGZhKGEsYil7aGEoYSxiKTtoYShhK1wiQ2FwdHVyZVwiLGIpfVxuZnVuY3Rpb24gaGEoYSxiKXtlYVthXT1iO2ZvcihhPTA7YTxiLmxlbmd0aDthKyspZGEuYWRkKGJbYV0pfVxudmFyIGlhPSEoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3d8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KSxqYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGthPS9eWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokLyxsYT1cbnt9LG1hPXt9O2Z1bmN0aW9uIG9hKGEpe2lmKGphLmNhbGwobWEsYSkpcmV0dXJuITA7aWYoamEuY2FsbChsYSxhKSlyZXR1cm4hMTtpZihrYS50ZXN0KGEpKXJldHVybiBtYVthXT0hMDtsYVthXT0hMDtyZXR1cm4hMX1mdW5jdGlvbiBwYShhLGIsYyxkKXtpZihudWxsIT09YyYmMD09PWMudHlwZSlyZXR1cm4hMTtzd2l0Y2godHlwZW9mIGIpe2Nhc2UgXCJmdW5jdGlvblwiOmNhc2UgXCJzeW1ib2xcIjpyZXR1cm4hMDtjYXNlIFwiYm9vbGVhblwiOmlmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpcmV0dXJuIWMuYWNjZXB0c0Jvb2xlYW5zO2E9YS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7cmV0dXJuXCJkYXRhLVwiIT09YSYmXCJhcmlhLVwiIT09YTtkZWZhdWx0OnJldHVybiExfX1cbmZ1bmN0aW9uIHFhKGEsYixjLGQpe2lmKG51bGw9PT1ifHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIGJ8fHBhKGEsYixjLGQpKXJldHVybiEwO2lmKGQpcmV0dXJuITE7aWYobnVsbCE9PWMpc3dpdGNoKGMudHlwZSl7Y2FzZSAzOnJldHVybiFiO2Nhc2UgNDpyZXR1cm4hMT09PWI7Y2FzZSA1OnJldHVybiBpc05hTihiKTtjYXNlIDY6cmV0dXJuIGlzTmFOKGIpfHwxPmJ9cmV0dXJuITF9ZnVuY3Rpb24gdihhLGIsYyxkLGUsZixnKXt0aGlzLmFjY2VwdHNCb29sZWFucz0yPT09Ynx8Mz09PWJ8fDQ9PT1iO3RoaXMuYXR0cmlidXRlTmFtZT1kO3RoaXMuYXR0cmlidXRlTmFtZXNwYWNlPWU7dGhpcy5tdXN0VXNlUHJvcGVydHk9Yzt0aGlzLnByb3BlcnR5TmFtZT1hO3RoaXMudHlwZT1iO3RoaXMuc2FuaXRpemVVUkw9Zjt0aGlzLnJlbW92ZUVtcHR5U3RyaW5nPWd9dmFyIHo9e307XG5cImNoaWxkcmVuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIGRlZmF1bHRWYWx1ZSBkZWZhdWx0Q2hlY2tlZCBpbm5lckhUTUwgc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZyBzdHlsZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwwLCExLGEsbnVsbCwhMSwhMSl9KTtbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiY2xhc3NOYW1lXCIsXCJjbGFzc1wiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWFbMF07eltiXT1uZXcgdihiLDEsITEsYVsxXSxudWxsLCExLCExKX0pO1tcImNvbnRlbnRFZGl0YWJsZVwiLFwiZHJhZ2dhYmxlXCIsXCJzcGVsbENoZWNrXCIsXCJ2YWx1ZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwyLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuW1wiYXV0b1JldmVyc2VcIixcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIixcImZvY3VzYWJsZVwiLFwicHJlc2VydmVBbHBoYVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwyLCExLGEsbnVsbCwhMSwhMSl9KTtcImFsbG93RnVsbFNjcmVlbiBhc3luYyBhdXRvRm9jdXMgYXV0b1BsYXkgY29udHJvbHMgZGVmYXVsdCBkZWZlciBkaXNhYmxlZCBkaXNhYmxlUGljdHVyZUluUGljdHVyZSBkaXNhYmxlUmVtb3RlUGxheWJhY2sgZm9ybU5vVmFsaWRhdGUgaGlkZGVuIGxvb3Agbm9Nb2R1bGUgbm9WYWxpZGF0ZSBvcGVuIHBsYXlzSW5saW5lIHJlYWRPbmx5IHJlcXVpcmVkIHJldmVyc2VkIHNjb3BlZCBzZWFtbGVzcyBpdGVtU2NvcGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMywhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImNoZWNrZWRcIixcIm11bHRpcGxlXCIsXCJtdXRlZFwiLFwic2VsZWN0ZWRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMywhMCxhLG51bGwsITEsITEpfSk7W1wiY2FwdHVyZVwiLFwiZG93bmxvYWRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNCwhMSxhLG51bGwsITEsITEpfSk7W1wiY29sc1wiLFwicm93c1wiLFwic2l6ZVwiLFwic3BhblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw2LCExLGEsbnVsbCwhMSwhMSl9KTtbXCJyb3dTcGFuXCIsXCJzdGFydFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw1LCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO3ZhciByYT0vW1xcLTpdKFthLXpdKS9nO2Z1bmN0aW9uIHNhKGEpe3JldHVybiBhWzFdLnRvVXBwZXJDYXNlKCl9XG5cImFjY2VudC1oZWlnaHQgYWxpZ25tZW50LWJhc2VsaW5lIGFyYWJpYy1mb3JtIGJhc2VsaW5lLXNoaWZ0IGNhcC1oZWlnaHQgY2xpcC1wYXRoIGNsaXAtcnVsZSBjb2xvci1pbnRlcnBvbGF0aW9uIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyBjb2xvci1wcm9maWxlIGNvbG9yLXJlbmRlcmluZyBkb21pbmFudC1iYXNlbGluZSBlbmFibGUtYmFja2dyb3VuZCBmaWxsLW9wYWNpdHkgZmlsbC1ydWxlIGZsb29kLWNvbG9yIGZsb29kLW9wYWNpdHkgZm9udC1mYW1pbHkgZm9udC1zaXplIGZvbnQtc2l6ZS1hZGp1c3QgZm9udC1zdHJldGNoIGZvbnQtc3R5bGUgZm9udC12YXJpYW50IGZvbnQtd2VpZ2h0IGdseXBoLW5hbWUgZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCBnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCBob3Jpei1hZHYteCBob3Jpei1vcmlnaW4teCBpbWFnZS1yZW5kZXJpbmcgbGV0dGVyLXNwYWNpbmcgbGlnaHRpbmctY29sb3IgbWFya2VyLWVuZCBtYXJrZXItbWlkIG1hcmtlci1zdGFydCBvdmVybGluZS1wb3NpdGlvbiBvdmVybGluZS10aGlja25lc3MgcGFpbnQtb3JkZXIgcGFub3NlLTEgcG9pbnRlci1ldmVudHMgcmVuZGVyaW5nLWludGVudCBzaGFwZS1yZW5kZXJpbmcgc3RvcC1jb2xvciBzdG9wLW9wYWNpdHkgc3RyaWtldGhyb3VnaC1wb3NpdGlvbiBzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcyBzdHJva2UtZGFzaGFycmF5IHN0cm9rZS1kYXNob2Zmc2V0IHN0cm9rZS1saW5lY2FwIHN0cm9rZS1saW5lam9pbiBzdHJva2UtbWl0ZXJsaW1pdCBzdHJva2Utb3BhY2l0eSBzdHJva2Utd2lkdGggdGV4dC1hbmNob3IgdGV4dC1kZWNvcmF0aW9uIHRleHQtcmVuZGVyaW5nIHVuZGVybGluZS1wb3NpdGlvbiB1bmRlcmxpbmUtdGhpY2tuZXNzIHVuaWNvZGUtYmlkaSB1bmljb2RlLXJhbmdlIHVuaXRzLXBlci1lbSB2LWFscGhhYmV0aWMgdi1oYW5naW5nIHYtaWRlb2dyYXBoaWMgdi1tYXRoZW1hdGljYWwgdmVjdG9yLWVmZmVjdCB2ZXJ0LWFkdi15IHZlcnQtb3JpZ2luLXggdmVydC1vcmlnaW4teSB3b3JkLXNwYWNpbmcgd3JpdGluZy1tb2RlIHhtbG5zOnhsaW5rIHgtaGVpZ2h0XCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHJhLFxuc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsbnVsbCwhMSwhMSl9KTtcInhsaW5rOmFjdHVhdGUgeGxpbms6YXJjcm9sZSB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxzYSk7eltiXT1uZXcgdihiLDEsITEsYSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMSwhMSl9KTtbXCJ4bWw6YmFzZVwiLFwieG1sOmxhbmdcIixcInhtbDpzcGFjZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxzYSk7eltiXT1uZXcgdihiLDEsITEsYSxcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLCExLCExKX0pO1tcInRhYkluZGV4XCIsXCJjcm9zc09yaWdpblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwxLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuei54bGlua0hyZWY9bmV3IHYoXCJ4bGlua0hyZWZcIiwxLCExLFwieGxpbms6aHJlZlwiLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCEwLCExKTtbXCJzcmNcIixcImhyZWZcIixcImFjdGlvblwiLFwiZm9ybUFjdGlvblwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwxLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCEwLCEwKX0pO1xuZnVuY3Rpb24gdGEoYSxiLGMsZCl7dmFyIGU9ei5oYXNPd25Qcm9wZXJ0eShiKT96W2JdOm51bGw7aWYobnVsbCE9PWU/MCE9PWUudHlwZTpkfHwhKDI8Yi5sZW5ndGgpfHxcIm9cIiE9PWJbMF0mJlwiT1wiIT09YlswXXx8XCJuXCIhPT1iWzFdJiZcIk5cIiE9PWJbMV0pcWEoYixjLGUsZCkmJihjPW51bGwpLGR8fG51bGw9PT1lP29hKGIpJiYobnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6YS5zZXRBdHRyaWJ1dGUoYixcIlwiK2MpKTplLm11c3RVc2VQcm9wZXJ0eT9hW2UucHJvcGVydHlOYW1lXT1udWxsPT09Yz8zPT09ZS50eXBlPyExOlwiXCI6YzooYj1lLmF0dHJpYnV0ZU5hbWUsZD1lLmF0dHJpYnV0ZU5hbWVzcGFjZSxudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTooZT1lLnR5cGUsYz0zPT09ZXx8ND09PWUmJiEwPT09Yz9cIlwiOlwiXCIrYyxkP2Euc2V0QXR0cmlidXRlTlMoZCxiLGMpOmEuc2V0QXR0cmlidXRlKGIsYykpKX1cbnZhciB1YT1hYS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCx2YT1TeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSx3YT1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLHlhPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx6YT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksQWE9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLEJhPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKSxDYT1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxEYT1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksRWE9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLEZhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLEdhPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLEhhPVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTtTeW1ib2wuZm9yKFwicmVhY3QuZGVidWdfdHJhY2VfbW9kZVwiKTtcbnZhciBJYT1TeW1ib2wuZm9yKFwicmVhY3Qub2Zmc2NyZWVuXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5sZWdhY3lfaGlkZGVuXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5jYWNoZVwiKTtTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7dmFyIEphPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBLYShhKXtpZihudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBhKXJldHVybiBudWxsO2E9SmEmJmFbSmFdfHxhW1wiQEBpdGVyYXRvclwiXTtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYT9hOm51bGx9dmFyIEE9T2JqZWN0LmFzc2lnbixMYTtmdW5jdGlvbiBNYShhKXtpZih2b2lkIDA9PT1MYSl0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2goYyl7dmFyIGI9Yy5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtMYT1iJiZiWzFdfHxcIlwifXJldHVyblwiXFxuXCIrTGErYX12YXIgTmE9ITE7XG5mdW5jdGlvbiBPYShhLGIpe2lmKCFhfHxOYSlyZXR1cm5cIlwiO05hPSEwO3ZhciBjPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7aWYoYilpZihiPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fX0pLFwib2JqZWN0XCI9PT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChiLFtdKX1jYXRjaChsKXt2YXIgZD1sfVJlZmxlY3QuY29uc3RydWN0KGEsW10sYil9ZWxzZXt0cnl7Yi5jYWxsKCl9Y2F0Y2gobCl7ZD1sfWEuY2FsbChiLnByb3RvdHlwZSl9ZWxzZXt0cnl7dGhyb3cgRXJyb3IoKTt9Y2F0Y2gobCl7ZD1sfWEoKX19Y2F0Y2gobCl7aWYobCYmZCYmXCJzdHJpbmdcIj09PXR5cGVvZiBsLnN0YWNrKXtmb3IodmFyIGU9bC5zdGFjay5zcGxpdChcIlxcblwiKSxcbmY9ZC5zdGFjay5zcGxpdChcIlxcblwiKSxnPWUubGVuZ3RoLTEsaD1mLmxlbmd0aC0xOzE8PWcmJjA8PWgmJmVbZ10hPT1mW2hdOyloLS07Zm9yKDsxPD1nJiYwPD1oO2ctLSxoLS0paWYoZVtnXSE9PWZbaF0pe2lmKDEhPT1nfHwxIT09aCl7ZG8gaWYoZy0tLGgtLSwwPmh8fGVbZ10hPT1mW2hdKXt2YXIgaz1cIlxcblwiK2VbZ10ucmVwbGFjZShcIiBhdCBuZXcgXCIsXCIgYXQgXCIpO2EuZGlzcGxheU5hbWUmJmsuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSYmKGs9ay5yZXBsYWNlKFwiPGFub255bW91cz5cIixhLmRpc3BsYXlOYW1lKSk7cmV0dXJuIGt9d2hpbGUoMTw9ZyYmMDw9aCl9YnJlYWt9fX1maW5hbGx5e05hPSExLEVycm9yLnByZXBhcmVTdGFja1RyYWNlPWN9cmV0dXJuKGE9YT9hLmRpc3BsYXlOYW1lfHxhLm5hbWU6XCJcIik/TWEoYSk6XCJcIn1cbmZ1bmN0aW9uIFBhKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnJldHVybiBNYShhLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIE1hKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBNYShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIE1hKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDI6Y2FzZSAxNTpyZXR1cm4gYT1PYShhLnR5cGUsITEpLGE7Y2FzZSAxMTpyZXR1cm4gYT1PYShhLnR5cGUucmVuZGVyLCExKSxhO2Nhc2UgMTpyZXR1cm4gYT1PYShhLnR5cGUsITApLGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1cbmZ1bmN0aW9uIFFhKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGEuZGlzcGxheU5hbWV8fGEubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpcmV0dXJuIGE7c3dpdGNoKGEpe2Nhc2UgeWE6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2Ugd2E6cmV0dXJuXCJQb3J0YWxcIjtjYXNlIEFhOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIHphOnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgRWE6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgRmE6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIn1pZihcIm9iamVjdFwiPT09dHlwZW9mIGEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgQ2E6cmV0dXJuKGEuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgQmE6cmV0dXJuKGEuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Qcm92aWRlclwiO2Nhc2UgRGE6dmFyIGI9YS5yZW5kZXI7YT1hLmRpc3BsYXlOYW1lO2F8fChhPWIuZGlzcGxheU5hbWV8fFxuYi5uYW1lfHxcIlwiLGE9XCJcIiE9PWE/XCJGb3J3YXJkUmVmKFwiK2ErXCIpXCI6XCJGb3J3YXJkUmVmXCIpO3JldHVybiBhO2Nhc2UgR2E6cmV0dXJuIGI9YS5kaXNwbGF5TmFtZXx8bnVsbCxudWxsIT09Yj9iOlFhKGEudHlwZSl8fFwiTWVtb1wiO2Nhc2UgSGE6Yj1hLl9wYXlsb2FkO2E9YS5faW5pdDt0cnl7cmV0dXJuIFFhKGEoYikpfWNhdGNoKGMpe319cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBSYShhKXt2YXIgYj1hLnR5cGU7c3dpdGNoKGEudGFnKXtjYXNlIDI0OnJldHVyblwiQ2FjaGVcIjtjYXNlIDk6cmV0dXJuKGIuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgMTA6cmV0dXJuKGIuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Qcm92aWRlclwiO2Nhc2UgMTg6cmV0dXJuXCJEZWh5ZHJhdGVkRnJhZ21lbnRcIjtjYXNlIDExOnJldHVybiBhPWIucmVuZGVyLGE9YS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxcIlwiLGIuZGlzcGxheU5hbWV8fChcIlwiIT09YT9cIkZvcndhcmRSZWYoXCIrYStcIilcIjpcIkZvcndhcmRSZWZcIik7Y2FzZSA3OnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIDU6cmV0dXJuIGI7Y2FzZSA0OnJldHVyblwiUG9ydGFsXCI7Y2FzZSAzOnJldHVyblwiUm9vdFwiO2Nhc2UgNjpyZXR1cm5cIlRleHRcIjtjYXNlIDE2OnJldHVybiBRYShiKTtjYXNlIDg6cmV0dXJuIGI9PT16YT9cIlN0cmljdE1vZGVcIjpcIk1vZGVcIjtjYXNlIDIyOnJldHVyblwiT2Zmc2NyZWVuXCI7XG5jYXNlIDEyOnJldHVyblwiUHJvZmlsZXJcIjtjYXNlIDIxOnJldHVyblwiU2NvcGVcIjtjYXNlIDEzOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIDE5OnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSAyNTpyZXR1cm5cIlRyYWNpbmdNYXJrZXJcIjtjYXNlIDE6Y2FzZSAwOmNhc2UgMTc6Y2FzZSAyOmNhc2UgMTQ6Y2FzZSAxNTppZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYi5kaXNwbGF5TmFtZXx8Yi5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYilyZXR1cm4gYn1yZXR1cm4gbnVsbH1mdW5jdGlvbiBTYShhKXtzd2l0Y2godHlwZW9mIGEpe2Nhc2UgXCJib29sZWFuXCI6Y2FzZSBcIm51bWJlclwiOmNhc2UgXCJzdHJpbmdcIjpjYXNlIFwidW5kZWZpbmVkXCI6cmV0dXJuIGE7Y2FzZSBcIm9iamVjdFwiOnJldHVybiBhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBUYShhKXt2YXIgYj1hLnR5cGU7cmV0dXJuKGE9YS5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWEudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWJ8fFwicmFkaW9cIj09PWIpfVxuZnVuY3Rpb24gVWEoYSl7dmFyIGI9VGEoYSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiLGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxiKSxkPVwiXCIrYVtiXTtpZighYS5oYXNPd25Qcm9wZXJ0eShiKSYmXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5nZXQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnNldCl7dmFyIGU9Yy5nZXQsZj1jLnNldDtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGEpe2Q9XCJcIithO2YuY2FsbCh0aGlzLGEpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2VudW1lcmFibGU6Yy5lbnVtZXJhYmxlfSk7cmV0dXJue2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LHNldFZhbHVlOmZ1bmN0aW9uKGEpe2Q9XCJcIithfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXthLl92YWx1ZVRyYWNrZXI9XG5udWxsO2RlbGV0ZSBhW2JdfX19fWZ1bmN0aW9uIFZhKGEpe2EuX3ZhbHVlVHJhY2tlcnx8KGEuX3ZhbHVlVHJhY2tlcj1VYShhKSl9ZnVuY3Rpb24gV2EoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9YS5fdmFsdWVUcmFja2VyO2lmKCFiKXJldHVybiEwO3ZhciBjPWIuZ2V0VmFsdWUoKTt2YXIgZD1cIlwiO2EmJihkPVRhKGEpP2EuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6YS52YWx1ZSk7YT1kO3JldHVybiBhIT09Yz8oYi5zZXRWYWx1ZShhKSwhMCk6ITF9ZnVuY3Rpb24gWGEoYSl7YT1hfHwoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGEuYWN0aXZlRWxlbWVudHx8YS5ib2R5fWNhdGNoKGIpe3JldHVybiBhLmJvZHl9fVxuZnVuY3Rpb24gWWEoYSxiKXt2YXIgYz1iLmNoZWNrZWQ7cmV0dXJuIEEoe30sYix7ZGVmYXVsdENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6dm9pZCAwLGNoZWNrZWQ6bnVsbCE9Yz9jOmEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZH0pfWZ1bmN0aW9uIFphKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/XCJcIjpiLmRlZmF1bHRWYWx1ZSxkPW51bGwhPWIuY2hlY2tlZD9iLmNoZWNrZWQ6Yi5kZWZhdWx0Q2hlY2tlZDtjPVNhKG51bGwhPWIudmFsdWU/Yi52YWx1ZTpjKTthLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOmQsaW5pdGlhbFZhbHVlOmMsY29udHJvbGxlZDpcImNoZWNrYm94XCI9PT1iLnR5cGV8fFwicmFkaW9cIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gYWIoYSxiKXtiPWIuY2hlY2tlZDtudWxsIT1iJiZ0YShhLFwiY2hlY2tlZFwiLGIsITEpfVxuZnVuY3Rpb24gYmIoYSxiKXthYihhLGIpO3ZhciBjPVNhKGIudmFsdWUpLGQ9Yi50eXBlO2lmKG51bGwhPWMpaWYoXCJudW1iZXJcIj09PWQpe2lmKDA9PT1jJiZcIlwiPT09YS52YWx1ZXx8YS52YWx1ZSE9YylhLnZhbHVlPVwiXCIrY31lbHNlIGEudmFsdWUhPT1cIlwiK2MmJihhLnZhbHVlPVwiXCIrYyk7ZWxzZSBpZihcInN1Ym1pdFwiPT09ZHx8XCJyZXNldFwiPT09ZCl7YS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP2NiKGEsYi50eXBlLGMpOmIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJmNiKGEsYi50eXBlLFNhKGIuZGVmYXVsdFZhbHVlKSk7bnVsbD09Yi5jaGVja2VkJiZudWxsIT1iLmRlZmF1bHRDaGVja2VkJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWIuZGVmYXVsdENoZWNrZWQpfVxuZnVuY3Rpb24gZGIoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIGQ9Yi50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PWQmJlwicmVzZXRcIiE9PWR8fHZvaWQgMCE9PWIudmFsdWUmJm51bGwhPT1iLnZhbHVlKSlyZXR1cm47Yj1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7Y3x8Yj09PWEudmFsdWV8fChhLnZhbHVlPWIpO2EuZGVmYXVsdFZhbHVlPWJ9Yz1hLm5hbWU7XCJcIiE9PWMmJihhLm5hbWU9XCJcIik7YS5kZWZhdWx0Q2hlY2tlZD0hIWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcIlwiIT09YyYmKGEubmFtZT1jKX1cbmZ1bmN0aW9uIGNiKGEsYixjKXtpZihcIm51bWJlclwiIT09Ynx8WGEoYS5vd25lckRvY3VtZW50KSE9PWEpbnVsbD09Yz9hLmRlZmF1bHRWYWx1ZT1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT1cIlwiK2MmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2MpfXZhciBlYj1BcnJheS5pc0FycmF5O1xuZnVuY3Rpb24gZmIoYSxiLGMsZCl7YT1hLm9wdGlvbnM7aWYoYil7Yj17fTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyliW1wiJFwiK2NbZV1dPSEwO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspZT1iLmhhc093blByb3BlcnR5KFwiJFwiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Yz1cIlwiK1NhKGMpO2I9bnVsbDtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKXtpZihhW2VdLnZhbHVlPT09Yyl7YVtlXS5zZWxlY3RlZD0hMDtkJiYoYVtlXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09Ynx8YVtlXS5kaXNhYmxlZHx8KGI9YVtlXSl9bnVsbCE9PWImJihiLnNlbGVjdGVkPSEwKX19XG5mdW5jdGlvbiBnYihhLGIpe2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgRXJyb3IocCg5MSkpO3JldHVybiBBKHt9LGIse3ZhbHVlOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLGNoaWxkcmVuOlwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIGhiKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtjPWIuY2hpbGRyZW47Yj1iLmRlZmF1bHRWYWx1ZTtpZihudWxsIT1jKXtpZihudWxsIT1iKXRocm93IEVycm9yKHAoOTIpKTtpZihlYihjKSl7aWYoMTxjLmxlbmd0aCl0aHJvdyBFcnJvcihwKDkzKSk7Yz1jWzBdfWI9Y31udWxsPT1iJiYoYj1cIlwiKTtjPWJ9YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsVmFsdWU6U2EoYyl9fVxuZnVuY3Rpb24gaWIoYSxiKXt2YXIgYz1TYShiLnZhbHVlKSxkPVNhKGIuZGVmYXVsdFZhbHVlKTtudWxsIT1jJiYoYz1cIlwiK2MsYyE9PWEudmFsdWUmJihhLnZhbHVlPWMpLG51bGw9PWIuZGVmYXVsdFZhbHVlJiZhLmRlZmF1bHRWYWx1ZSE9PWMmJihhLmRlZmF1bHRWYWx1ZT1jKSk7bnVsbCE9ZCYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrZCl9ZnVuY3Rpb24gamIoYSl7dmFyIGI9YS50ZXh0Q29udGVudDtiPT09YS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSYmXCJcIiE9PWImJm51bGwhPT1iJiYoYS52YWx1ZT1iKX1mdW5jdGlvbiBrYihhKXtzd2l0Y2goYSl7Y2FzZSBcInN2Z1wiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtjYXNlIFwibWF0aFwiOnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiO2RlZmF1bHQ6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCJ9fVxuZnVuY3Rpb24gbGIoYSxiKXtyZXR1cm4gbnVsbD09YXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP2tiKGIpOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj09PWEmJlwiZm9yZWlnbk9iamVjdFwiPT09Yj9cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjphfVxudmFyIG1iLG5iPWZ1bmN0aW9uKGEpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgTVNBcHAmJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKGIsYyxkLGUpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIGEoYixjLGQsZSl9KX06YX0oZnVuY3Rpb24oYSxiKXtpZihcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIhPT1hLm5hbWVzcGFjZVVSSXx8XCJpbm5lckhUTUxcImluIGEpYS5pbm5lckhUTUw9YjtlbHNle21iPW1ifHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO21iLmlubmVySFRNTD1cIjxzdmc+XCIrYi52YWx1ZU9mKCkudG9TdHJpbmcoKStcIjwvc3ZnPlwiO2ZvcihiPW1iLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtiLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQoYi5maXJzdENoaWxkKX19KTtcbmZ1bmN0aW9uIG9iKGEsYil7aWYoYil7dmFyIGM9YS5maXJzdENoaWxkO2lmKGMmJmM9PT1hLmxhc3RDaGlsZCYmMz09PWMubm9kZVR5cGUpe2Mubm9kZVZhbHVlPWI7cmV0dXJufX1hLnRleHRDb250ZW50PWJ9XG52YXIgcGI9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCxcbnpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0scWI9W1wiV2Via2l0XCIsXCJtc1wiLFwiTW96XCIsXCJPXCJdO09iamVjdC5rZXlzKHBiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3FiLmZvckVhY2goZnVuY3Rpb24oYil7Yj1iK2EuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSk7cGJbYl09cGJbYV19KX0pO2Z1bmN0aW9uIHJiKGEsYixjKXtyZXR1cm4gbnVsbD09Ynx8XCJib29sZWFuXCI9PT10eXBlb2YgYnx8XCJcIj09PWI/XCJcIjpjfHxcIm51bWJlclwiIT09dHlwZW9mIGJ8fDA9PT1ifHxwYi5oYXNPd25Qcm9wZXJ0eShhKSYmcGJbYV0/KFwiXCIrYikudHJpbSgpOmIrXCJweFwifVxuZnVuY3Rpb24gc2IoYSxiKXthPWEuc3R5bGU7Zm9yKHZhciBjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9MD09PWMuaW5kZXhPZihcIi0tXCIpLGU9cmIoYyxiW2NdLGQpO1wiZmxvYXRcIj09PWMmJihjPVwiY3NzRmxvYXRcIik7ZD9hLnNldFByb3BlcnR5KGMsZSk6YVtjXT1lfX12YXIgdGI9QSh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtcbmZ1bmN0aW9uIHViKGEsYil7aWYoYil7aWYodGJbYV0mJihudWxsIT1iLmNoaWxkcmVufHxudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDEzNyxhKSk7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl7aWYobnVsbCE9Yi5jaGlsZHJlbil0aHJvdyBFcnJvcihwKDYwKSk7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwhKFwiX19odG1sXCJpbiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyBFcnJvcihwKDYxKSk7fWlmKG51bGwhPWIuc3R5bGUmJlwib2JqZWN0XCIhPT10eXBlb2YgYi5zdHlsZSl0aHJvdyBFcnJvcihwKDYyKSk7fX1cbmZ1bmN0aW9uIHZiKGEsYil7aWYoLTE9PT1hLmluZGV4T2YoXCItXCIpKXJldHVyblwic3RyaW5nXCI9PT10eXBlb2YgYi5pcztzd2l0Y2goYSl7Y2FzZSBcImFubm90YXRpb24teG1sXCI6Y2FzZSBcImNvbG9yLXByb2ZpbGVcIjpjYXNlIFwiZm9udC1mYWNlXCI6Y2FzZSBcImZvbnQtZmFjZS1zcmNcIjpjYXNlIFwiZm9udC1mYWNlLXVyaVwiOmNhc2UgXCJmb250LWZhY2UtZm9ybWF0XCI6Y2FzZSBcImZvbnQtZmFjZS1uYW1lXCI6Y2FzZSBcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgd2I9bnVsbDtmdW5jdGlvbiB4YihhKXthPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnR8fHdpbmRvdzthLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoYT1hLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KTtyZXR1cm4gMz09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmF9dmFyIHliPW51bGwsemI9bnVsbCxBYj1udWxsO1xuZnVuY3Rpb24gQmIoYSl7aWYoYT1DYihhKSl7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIHliKXRocm93IEVycm9yKHAoMjgwKSk7dmFyIGI9YS5zdGF0ZU5vZGU7YiYmKGI9RGIoYikseWIoYS5zdGF0ZU5vZGUsYS50eXBlLGIpKX19ZnVuY3Rpb24gRWIoYSl7emI/QWI/QWIucHVzaChhKTpBYj1bYV06emI9YX1mdW5jdGlvbiBGYigpe2lmKHpiKXt2YXIgYT16YixiPUFiO0FiPXpiPW51bGw7QmIoYSk7aWYoYilmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKUJiKGJbYV0pfX1mdW5jdGlvbiBHYihhLGIpe3JldHVybiBhKGIpfWZ1bmN0aW9uIEhiKCl7fXZhciBJYj0hMTtmdW5jdGlvbiBKYihhLGIsYyl7aWYoSWIpcmV0dXJuIGEoYixjKTtJYj0hMDt0cnl7cmV0dXJuIEdiKGEsYixjKX1maW5hbGx5e2lmKEliPSExLG51bGwhPT16Ynx8bnVsbCE9PUFiKUhiKCksRmIoKX19XG5mdW5jdGlvbiBLYihhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO2lmKG51bGw9PT1jKXJldHVybiBudWxsO3ZhciBkPURiKGMpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2M9ZFtiXTthOnN3aXRjaChiKXtjYXNlIFwib25DbGlja1wiOmNhc2UgXCJvbkNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VEb3duXCI6Y2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlTW92ZVwiOmNhc2UgXCJvbk1vdXNlTW92ZUNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZVVwXCI6Y2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlIFwib25Nb3VzZUVudGVyXCI6KGQ9IWQuZGlzYWJsZWQpfHwoYT1hLnR5cGUsZD0hKFwiYnV0dG9uXCI9PT1hfHxcImlucHV0XCI9PT1hfHxcInNlbGVjdFwiPT09YXx8XCJ0ZXh0YXJlYVwiPT09YSkpO2E9IWQ7YnJlYWsgYTtkZWZhdWx0OmE9ITF9aWYoYSlyZXR1cm4gbnVsbDtpZihjJiZcImZ1bmN0aW9uXCIhPT1cbnR5cGVvZiBjKXRocm93IEVycm9yKHAoMjMxLGIsdHlwZW9mIGMpKTtyZXR1cm4gY312YXIgTGI9ITE7aWYoaWEpdHJ5e3ZhciBNYj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoTWIsXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe0xiPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLE1iLE1iKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIixNYixNYil9Y2F0Y2goYSl7TGI9ITF9ZnVuY3Rpb24gTmIoYSxiLGMsZCxlLGYsZyxoLGspe3ZhciBsPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTt0cnl7Yi5hcHBseShjLGwpfWNhdGNoKG0pe3RoaXMub25FcnJvcihtKX19dmFyIE9iPSExLFBiPW51bGwsUWI9ITEsUmI9bnVsbCxTYj17b25FcnJvcjpmdW5jdGlvbihhKXtPYj0hMDtQYj1hfX07ZnVuY3Rpb24gVGIoYSxiLGMsZCxlLGYsZyxoLGspe09iPSExO1BiPW51bGw7TmIuYXBwbHkoU2IsYXJndW1lbnRzKX1cbmZ1bmN0aW9uIFViKGEsYixjLGQsZSxmLGcsaCxrKXtUYi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoT2Ipe2lmKE9iKXt2YXIgbD1QYjtPYj0hMTtQYj1udWxsfWVsc2UgdGhyb3cgRXJyb3IocCgxOTgpKTtRYnx8KFFiPSEwLFJiPWwpfX1mdW5jdGlvbiBWYihhKXt2YXIgYj1hLGM9YTtpZihhLmFsdGVybmF0ZSlmb3IoO2IucmV0dXJuOyliPWIucmV0dXJuO2Vsc2V7YT1iO2RvIGI9YSwwIT09KGIuZmxhZ3MmNDA5OCkmJihjPWIucmV0dXJuKSxhPWIucmV0dXJuO3doaWxlKGEpfXJldHVybiAzPT09Yi50YWc/YzpudWxsfWZ1bmN0aW9uIFdiKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09YiYmKGE9YS5hbHRlcm5hdGUsbnVsbCE9PWEmJihiPWEubWVtb2l6ZWRTdGF0ZSkpO2lmKG51bGwhPT1iKXJldHVybiBiLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gWGIoYSl7aWYoVmIoYSkhPT1hKXRocm93IEVycm9yKHAoMTg4KSk7fVxuZnVuY3Rpb24gWWIoYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2I9VmIoYSk7aWYobnVsbD09PWIpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gYiE9PWE/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7ZD1lLnJldHVybjtpZihudWxsIT09ZCl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gWGIoZSksYTtpZihmPT09ZClyZXR1cm4gWGIoZSksYjtmPWYuc2libGluZ310aHJvdyBFcnJvcihwKDE4OCkpO31pZihjLnJldHVybiE9PWQucmV0dXJuKWM9ZSxkPWY7ZWxzZXtmb3IodmFyIGc9ITEsaD1lLmNoaWxkO2g7KXtpZihoPT09Yyl7Zz0hMDtjPWU7ZD1mO2JyZWFrfWlmKGg9PT1kKXtnPSEwO2Q9ZTtjPWY7YnJlYWt9aD1oLnNpYmxpbmd9aWYoIWcpe2ZvcihoPWYuY2hpbGQ7aDspe2lmKGg9PT1cbmMpe2c9ITA7Yz1mO2Q9ZTticmVha31pZihoPT09ZCl7Zz0hMDtkPWY7Yz1lO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXRocm93IEVycm9yKHAoMTg5KSk7fX1pZihjLmFsdGVybmF0ZSE9PWQpdGhyb3cgRXJyb3IocCgxOTApKTt9aWYoMyE9PWMudGFnKXRocm93IEVycm9yKHAoMTg4KSk7cmV0dXJuIGMuc3RhdGVOb2RlLmN1cnJlbnQ9PT1jP2E6Yn1mdW5jdGlvbiBaYihhKXthPVliKGEpO3JldHVybiBudWxsIT09YT8kYihhKTpudWxsfWZ1bmN0aW9uICRiKGEpe2lmKDU9PT1hLnRhZ3x8Nj09PWEudGFnKXJldHVybiBhO2ZvcihhPWEuY2hpbGQ7bnVsbCE9PWE7KXt2YXIgYj0kYihhKTtpZihudWxsIT09YilyZXR1cm4gYjthPWEuc2libGluZ31yZXR1cm4gbnVsbH1cbnZhciBhYz1jYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGJjPWNhLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGNjPWNhLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGRjPWNhLnVuc3RhYmxlX3JlcXVlc3RQYWludCxCPWNhLnVuc3RhYmxlX25vdyxlYz1jYS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxmYz1jYS51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxnYz1jYS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxoYz1jYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxpYz1jYS51bnN0YWJsZV9Mb3dQcmlvcml0eSxqYz1jYS51bnN0YWJsZV9JZGxlUHJpb3JpdHksa2M9bnVsbCxsYz1udWxsO2Z1bmN0aW9uIG1jKGEpe2lmKGxjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbGMub25Db21taXRGaWJlclJvb3QpdHJ5e2xjLm9uQ29tbWl0RmliZXJSb290KGtjLGEsdm9pZCAwLDEyOD09PShhLmN1cnJlbnQuZmxhZ3MmMTI4KSl9Y2F0Y2goYil7fX1cbnZhciBvYz1NYXRoLmNsejMyP01hdGguY2x6MzI6bmMscGM9TWF0aC5sb2cscWM9TWF0aC5MTjI7ZnVuY3Rpb24gbmMoYSl7YT4+Pj0wO3JldHVybiAwPT09YT8zMjozMS0ocGMoYSkvcWN8MCl8MH12YXIgcmM9NjQsc2M9NDE5NDMwNDtcbmZ1bmN0aW9uIHRjKGEpe3N3aXRjaChhJi1hKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gYSY0MTk0MjQwO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuIGEmMTMwMDIzNDI0O2Nhc2UgMTM0MjE3NzI4OnJldHVybiAxMzQyMTc3Mjg7Y2FzZSAyNjg0MzU0NTY6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlIDUzNjg3MDkxMjpyZXR1cm4gNTM2ODcwOTEyO2Nhc2UgMTA3Mzc0MTgyNDpyZXR1cm4gMTA3Mzc0MTgyNDtcbmRlZmF1bHQ6cmV0dXJuIGF9fWZ1bmN0aW9uIHVjKGEsYil7dmFyIGM9YS5wZW5kaW5nTGFuZXM7aWYoMD09PWMpcmV0dXJuIDA7dmFyIGQ9MCxlPWEuc3VzcGVuZGVkTGFuZXMsZj1hLnBpbmdlZExhbmVzLGc9YyYyNjg0MzU0NTU7aWYoMCE9PWcpe3ZhciBoPWcmfmU7MCE9PWg/ZD10YyhoKTooZiY9ZywwIT09ZiYmKGQ9dGMoZikpKX1lbHNlIGc9YyZ+ZSwwIT09Zz9kPXRjKGcpOjAhPT1mJiYoZD10YyhmKSk7aWYoMD09PWQpcmV0dXJuIDA7aWYoMCE9PWImJmIhPT1kJiYwPT09KGImZSkmJihlPWQmLWQsZj1iJi1iLGU+PWZ8fDE2PT09ZSYmMCE9PShmJjQxOTQyNDApKSlyZXR1cm4gYjswIT09KGQmNCkmJihkfD1jJjE2KTtiPWEuZW50YW5nbGVkTGFuZXM7aWYoMCE9PWIpZm9yKGE9YS5lbnRhbmdsZW1lbnRzLGImPWQ7MDxiOyljPTMxLW9jKGIpLGU9MTw8YyxkfD1hW2NdLGImPX5lO3JldHVybiBkfVxuZnVuY3Rpb24gdmMoYSxiKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIGIrMjUwO2Nhc2UgODpjYXNlIDE2OmNhc2UgMzI6Y2FzZSA2NDpjYXNlIDEyODpjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gYis1RTM7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4tMTtjYXNlIDEzNDIxNzcyODpjYXNlIDI2ODQzNTQ1NjpjYXNlIDUzNjg3MDkxMjpjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuLTE7ZGVmYXVsdDpyZXR1cm4tMX19XG5mdW5jdGlvbiB3YyhhLGIpe2Zvcih2YXIgYz1hLnN1c3BlbmRlZExhbmVzLGQ9YS5waW5nZWRMYW5lcyxlPWEuZXhwaXJhdGlvblRpbWVzLGY9YS5wZW5kaW5nTGFuZXM7MDxmOyl7dmFyIGc9MzEtb2MoZiksaD0xPDxnLGs9ZVtnXTtpZigtMT09PWspe2lmKDA9PT0oaCZjKXx8MCE9PShoJmQpKWVbZ109dmMoaCxiKX1lbHNlIGs8PWImJihhLmV4cGlyZWRMYW5lc3w9aCk7ZiY9fmh9fWZ1bmN0aW9uIHhjKGEpe2E9YS5wZW5kaW5nTGFuZXMmLTEwNzM3NDE4MjU7cmV0dXJuIDAhPT1hP2E6YSYxMDczNzQxODI0PzEwNzM3NDE4MjQ6MH1mdW5jdGlvbiB5Yygpe3ZhciBhPXJjO3JjPDw9MTswPT09KHJjJjQxOTQyNDApJiYocmM9NjQpO3JldHVybiBhfWZ1bmN0aW9uIHpjKGEpe2Zvcih2YXIgYj1bXSxjPTA7MzE+YztjKyspYi5wdXNoKGEpO3JldHVybiBifVxuZnVuY3Rpb24gQWMoYSxiLGMpe2EucGVuZGluZ0xhbmVzfD1iOzUzNjg3MDkxMiE9PWImJihhLnN1c3BlbmRlZExhbmVzPTAsYS5waW5nZWRMYW5lcz0wKTthPWEuZXZlbnRUaW1lcztiPTMxLW9jKGIpO2FbYl09Y31mdW5jdGlvbiBCYyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzJn5iO2EucGVuZGluZ0xhbmVzPWI7YS5zdXNwZW5kZWRMYW5lcz0wO2EucGluZ2VkTGFuZXM9MDthLmV4cGlyZWRMYW5lcyY9YjthLm11dGFibGVSZWFkTGFuZXMmPWI7YS5lbnRhbmdsZWRMYW5lcyY9YjtiPWEuZW50YW5nbGVtZW50czt2YXIgZD1hLmV2ZW50VGltZXM7Zm9yKGE9YS5leHBpcmF0aW9uVGltZXM7MDxjOyl7dmFyIGU9MzEtb2MoYyksZj0xPDxlO2JbZV09MDtkW2VdPS0xO2FbZV09LTE7YyY9fmZ9fVxuZnVuY3Rpb24gQ2MoYSxiKXt2YXIgYz1hLmVudGFuZ2xlZExhbmVzfD1iO2ZvcihhPWEuZW50YW5nbGVtZW50cztjOyl7dmFyIGQ9MzEtb2MoYyksZT0xPDxkO2UmYnxhW2RdJmImJihhW2RdfD1iKTtjJj1+ZX19dmFyIEM9MDtmdW5jdGlvbiBEYyhhKXthJj0tYTtyZXR1cm4gMTxhPzQ8YT8wIT09KGEmMjY4NDM1NDU1KT8xNjo1MzY4NzA5MTI6NDoxfXZhciBFYyxGYyxHYyxIYyxJYyxKYz0hMSxLYz1bXSxMYz1udWxsLE1jPW51bGwsTmM9bnVsbCxPYz1uZXcgTWFwLFBjPW5ldyBNYXAsUWM9W10sUmM9XCJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXQgc3VibWl0XCIuc3BsaXQoXCIgXCIpO1xuZnVuY3Rpb24gU2MoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjpMYz1udWxsO2JyZWFrO2Nhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6TWM9bnVsbDticmVhaztjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcIm1vdXNlb3V0XCI6TmM9bnVsbDticmVhaztjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcm91dFwiOk9jLmRlbGV0ZShiLnBvaW50ZXJJZCk7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOlBjLmRlbGV0ZShiLnBvaW50ZXJJZCl9fVxuZnVuY3Rpb24gVGMoYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hfHxhLm5hdGl2ZUV2ZW50IT09ZilyZXR1cm4gYT17YmxvY2tlZE9uOmIsZG9tRXZlbnROYW1lOmMsZXZlbnRTeXN0ZW1GbGFnczpkLG5hdGl2ZUV2ZW50OmYsdGFyZ2V0Q29udGFpbmVyczpbZV19LG51bGwhPT1iJiYoYj1DYihiKSxudWxsIT09YiYmRmMoYikpLGE7YS5ldmVudFN5c3RlbUZsYWdzfD1kO2I9YS50YXJnZXRDb250YWluZXJzO251bGwhPT1lJiYtMT09PWIuaW5kZXhPZihlKSYmYi5wdXNoKGUpO3JldHVybiBhfVxuZnVuY3Rpb24gVWMoYSxiLGMsZCxlKXtzd2l0Y2goYil7Y2FzZSBcImZvY3VzaW5cIjpyZXR1cm4gTGM9VGMoTGMsYSxiLGMsZCxlKSwhMDtjYXNlIFwiZHJhZ2VudGVyXCI6cmV0dXJuIE1jPVRjKE1jLGEsYixjLGQsZSksITA7Y2FzZSBcIm1vdXNlb3ZlclwiOnJldHVybiBOYz1UYyhOYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJwb2ludGVyb3ZlclwiOnZhciBmPWUucG9pbnRlcklkO09jLnNldChmLFRjKE9jLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKTtyZXR1cm4hMDtjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpyZXR1cm4gZj1lLnBvaW50ZXJJZCxQYy5zZXQoZixUYyhQYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSksITB9cmV0dXJuITF9XG5mdW5jdGlvbiBWYyhhKXt2YXIgYj1XYyhhLnRhcmdldCk7aWYobnVsbCE9PWIpe3ZhciBjPVZiKGIpO2lmKG51bGwhPT1jKWlmKGI9Yy50YWcsMTM9PT1iKXtpZihiPVdiKGMpLG51bGwhPT1iKXthLmJsb2NrZWRPbj1iO0ljKGEucHJpb3JpdHksZnVuY3Rpb24oKXtHYyhjKX0pO3JldHVybn19ZWxzZSBpZigzPT09YiYmYy5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7YS5ibG9ja2VkT249Mz09PWMudGFnP2Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtyZXR1cm59fWEuYmxvY2tlZE9uPW51bGx9XG5mdW5jdGlvbiBYYyhhKXtpZihudWxsIT09YS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciBiPWEudGFyZ2V0Q29udGFpbmVyczswPGIubGVuZ3RoOyl7dmFyIGM9WWMoYS5kb21FdmVudE5hbWUsYS5ldmVudFN5c3RlbUZsYWdzLGJbMF0sYS5uYXRpdmVFdmVudCk7aWYobnVsbD09PWMpe2M9YS5uYXRpdmVFdmVudDt2YXIgZD1uZXcgYy5jb25zdHJ1Y3RvcihjLnR5cGUsYyk7d2I9ZDtjLnRhcmdldC5kaXNwYXRjaEV2ZW50KGQpO3diPW51bGx9ZWxzZSByZXR1cm4gYj1DYihjKSxudWxsIT09YiYmRmMoYiksYS5ibG9ja2VkT249YywhMTtiLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gWmMoYSxiLGMpe1hjKGEpJiZjLmRlbGV0ZShiKX1mdW5jdGlvbiAkYygpe0pjPSExO251bGwhPT1MYyYmWGMoTGMpJiYoTGM9bnVsbCk7bnVsbCE9PU1jJiZYYyhNYykmJihNYz1udWxsKTtudWxsIT09TmMmJlhjKE5jKSYmKE5jPW51bGwpO09jLmZvckVhY2goWmMpO1BjLmZvckVhY2goWmMpfVxuZnVuY3Rpb24gYWQoYSxiKXthLmJsb2NrZWRPbj09PWImJihhLmJsb2NrZWRPbj1udWxsLEpjfHwoSmM9ITAsY2EudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhjYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSwkYykpKX1cbmZ1bmN0aW9uIGJkKGEpe2Z1bmN0aW9uIGIoYil7cmV0dXJuIGFkKGIsYSl9aWYoMDxLYy5sZW5ndGgpe2FkKEtjWzBdLGEpO2Zvcih2YXIgYz0xO2M8S2MubGVuZ3RoO2MrKyl7dmFyIGQ9S2NbY107ZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCl9fW51bGwhPT1MYyYmYWQoTGMsYSk7bnVsbCE9PU1jJiZhZChNYyxhKTtudWxsIT09TmMmJmFkKE5jLGEpO09jLmZvckVhY2goYik7UGMuZm9yRWFjaChiKTtmb3IoYz0wO2M8UWMubGVuZ3RoO2MrKylkPVFjW2NdLGQuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpO2Zvcig7MDxRYy5sZW5ndGgmJihjPVFjWzBdLG51bGw9PT1jLmJsb2NrZWRPbik7KVZjKGMpLG51bGw9PT1jLmJsb2NrZWRPbiYmUWMuc2hpZnQoKX12YXIgY2Q9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsZGQ9ITA7XG5mdW5jdGlvbiBlZChhLGIsYyxkKXt2YXIgZT1DLGY9Y2QudHJhbnNpdGlvbjtjZC50cmFuc2l0aW9uPW51bGw7dHJ5e0M9MSxmZChhLGIsYyxkKX1maW5hbGx5e0M9ZSxjZC50cmFuc2l0aW9uPWZ9fWZ1bmN0aW9uIGdkKGEsYixjLGQpe3ZhciBlPUMsZj1jZC50cmFuc2l0aW9uO2NkLnRyYW5zaXRpb249bnVsbDt0cnl7Qz00LGZkKGEsYixjLGQpfWZpbmFsbHl7Qz1lLGNkLnRyYW5zaXRpb249Zn19XG5mdW5jdGlvbiBmZChhLGIsYyxkKXtpZihkZCl7dmFyIGU9WWMoYSxiLGMsZCk7aWYobnVsbD09PWUpaGQoYSxiLGQsaWQsYyksU2MoYSxkKTtlbHNlIGlmKFVjKGUsYSxiLGMsZCkpZC5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKFNjKGEsZCksYiY0JiYtMTxSYy5pbmRleE9mKGEpKXtmb3IoO251bGwhPT1lOyl7dmFyIGY9Q2IoZSk7bnVsbCE9PWYmJkVjKGYpO2Y9WWMoYSxiLGMsZCk7bnVsbD09PWYmJmhkKGEsYixkLGlkLGMpO2lmKGY9PT1lKWJyZWFrO2U9Zn1udWxsIT09ZSYmZC5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIGhkKGEsYixkLG51bGwsYyl9fXZhciBpZD1udWxsO1xuZnVuY3Rpb24gWWMoYSxiLGMsZCl7aWQ9bnVsbDthPXhiKGQpO2E9V2MoYSk7aWYobnVsbCE9PWEpaWYoYj1WYihhKSxudWxsPT09YilhPW51bGw7ZWxzZSBpZihjPWIudGFnLDEzPT09Yyl7YT1XYihiKTtpZihudWxsIT09YSlyZXR1cm4gYTthPW51bGx9ZWxzZSBpZigzPT09Yyl7aWYoYi5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PWIudGFnP2Iuc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDthPW51bGx9ZWxzZSBiIT09YSYmKGE9bnVsbCk7aWQ9YTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIGpkKGEpe3N3aXRjaChhKXtjYXNlIFwiY2FuY2VsXCI6Y2FzZSBcImNsaWNrXCI6Y2FzZSBcImNsb3NlXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjpjYXNlIFwiZm9jdXNpblwiOmNhc2UgXCJmb2N1c291dFwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJpbnZhbGlkXCI6Y2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5cHJlc3NcIjpjYXNlIFwia2V5dXBcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwicGFzdGVcIjpjYXNlIFwicGF1c2VcIjpjYXNlIFwicGxheVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOmNhc2UgXCJyYXRlY2hhbmdlXCI6Y2FzZSBcInJlc2V0XCI6Y2FzZSBcInJlc2l6ZVwiOmNhc2UgXCJzZWVrZWRcIjpjYXNlIFwic3VibWl0XCI6Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjpjYXNlIFwidm9sdW1lY2hhbmdlXCI6Y2FzZSBcImNoYW5nZVwiOmNhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjpjYXNlIFwidGV4dElucHV0XCI6Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjpjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpjYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlIFwiYmVmb3JlYmx1clwiOmNhc2UgXCJhZnRlcmJsdXJcIjpjYXNlIFwiYmVmb3JlaW5wdXRcIjpjYXNlIFwiYmx1clwiOmNhc2UgXCJmdWxsc2NyZWVuY2hhbmdlXCI6Y2FzZSBcImZvY3VzXCI6Y2FzZSBcImhhc2hjaGFuZ2VcIjpjYXNlIFwicG9wc3RhdGVcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInNlbGVjdHN0YXJ0XCI6cmV0dXJuIDE7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwic2Nyb2xsXCI6Y2FzZSBcInRvZ2dsZVwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwid2hlZWxcIjpjYXNlIFwibW91c2VlbnRlclwiOmNhc2UgXCJtb3VzZWxlYXZlXCI6Y2FzZSBcInBvaW50ZXJlbnRlclwiOmNhc2UgXCJwb2ludGVybGVhdmVcIjpyZXR1cm4gNDtcbmNhc2UgXCJtZXNzYWdlXCI6c3dpdGNoKGVjKCkpe2Nhc2UgZmM6cmV0dXJuIDE7Y2FzZSBnYzpyZXR1cm4gNDtjYXNlIGhjOmNhc2UgaWM6cmV0dXJuIDE2O2Nhc2UgamM6cmV0dXJuIDUzNjg3MDkxMjtkZWZhdWx0OnJldHVybiAxNn1kZWZhdWx0OnJldHVybiAxNn19dmFyIGtkPW51bGwsbGQ9bnVsbCxtZD1udWxsO2Z1bmN0aW9uIG5kKCl7aWYobWQpcmV0dXJuIG1kO3ZhciBhLGI9bGQsYz1iLmxlbmd0aCxkLGU9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsZj1lLmxlbmd0aDtmb3IoYT0wO2E8YyYmYlthXT09PWVbYV07YSsrKTt2YXIgZz1jLWE7Zm9yKGQ9MTtkPD1nJiZiW2MtZF09PT1lW2YtZF07ZCsrKTtyZXR1cm4gbWQ9ZS5zbGljZShhLDE8ZD8xLWQ6dm9pZCAwKX1cbmZ1bmN0aW9uIG9kKGEpe3ZhciBiPWEua2V5Q29kZTtcImNoYXJDb2RlXCJpbiBhPyhhPWEuY2hhckNvZGUsMD09PWEmJjEzPT09YiYmKGE9MTMpKTphPWI7MTA9PT1hJiYoYT0xMyk7cmV0dXJuIDMyPD1hfHwxMz09PWE/YTowfWZ1bmN0aW9uIHBkKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWQoKXtyZXR1cm4hMX1cbmZ1bmN0aW9uIHJkKGEpe2Z1bmN0aW9uIGIoYixkLGUsZixnKXt0aGlzLl9yZWFjdE5hbWU9Yjt0aGlzLl90YXJnZXRJbnN0PWU7dGhpcy50eXBlPWQ7dGhpcy5uYXRpdmVFdmVudD1mO3RoaXMudGFyZ2V0PWc7dGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKGI9YVtjXSx0aGlzW2NdPWI/YihmKTpmW2NdKTt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9Zi5kZWZhdWx0UHJldmVudGVkP2YuZGVmYXVsdFByZXZlbnRlZDohMT09PWYucmV0dXJuVmFsdWUpP3BkOnFkO3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cWQ7cmV0dXJuIHRoaXN9QShiLnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5yZXR1cm5WYWx1ZSYmXG4oYS5yZXR1cm5WYWx1ZT0hMSksdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGQpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnN0b3BQcm9wYWdhdGlvbj9hLnN0b3BQcm9wYWdhdGlvbigpOlwidW5rbm93blwiIT09dHlwZW9mIGEuY2FuY2VsQnViYmxlJiYoYS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9cGQpfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6cGR9KTtyZXR1cm4gYn1cbnZhciBzZD17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0ZD1yZChzZCksdWQ9QSh7fSxzZCx7dmlldzowLGRldGFpbDowfSksdmQ9cmQodWQpLHdkLHhkLHlkLEFkPUEoe30sdWQse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6emQsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQgMD09PWEucmVsYXRlZFRhcmdldD9hLmZyb21FbGVtZW50PT09YS5zcmNFbGVtZW50P2EudG9FbGVtZW50OmEuZnJvbUVsZW1lbnQ6YS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oYSl7aWYoXCJtb3ZlbWVudFhcImluXG5hKXJldHVybiBhLm1vdmVtZW50WDthIT09eWQmJih5ZCYmXCJtb3VzZW1vdmVcIj09PWEudHlwZT8od2Q9YS5zY3JlZW5YLXlkLnNjcmVlblgseGQ9YS5zY3JlZW5ZLXlkLnNjcmVlblkpOnhkPXdkPTAseWQ9YSk7cmV0dXJuIHdkfSxtb3ZlbWVudFk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGE/YS5tb3ZlbWVudFk6eGR9fSksQmQ9cmQoQWQpLENkPUEoe30sQWQse2RhdGFUcmFuc2ZlcjowfSksRGQ9cmQoQ2QpLEVkPUEoe30sdWQse3JlbGF0ZWRUYXJnZXQ6MH0pLEZkPXJkKEVkKSxHZD1BKHt9LHNkLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxIZD1yZChHZCksSWQ9QSh7fSxzZCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGE/YS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLEpkPXJkKElkKSxLZD1BKHt9LHNkLHtkYXRhOjB9KSxMZD1yZChLZCksTWQ9e0VzYzpcIkVzY2FwZVwiLFxuU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sTmQ9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsXG4xMTk6XCJGOFwiLDEyMDpcIkY5XCIsMTIxOlwiRjEwXCIsMTIyOlwiRjExXCIsMTIzOlwiRjEyXCIsMTQ0OlwiTnVtTG9ja1wiLDE0NTpcIlNjcm9sbExvY2tcIiwyMjQ6XCJNZXRhXCJ9LE9kPXtBbHQ6XCJhbHRLZXlcIixDb250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBQZChhKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBiLmdldE1vZGlmaWVyU3RhdGU/Yi5nZXRNb2RpZmllclN0YXRlKGEpOihhPU9kW2FdKT8hIWJbYV06ITF9ZnVuY3Rpb24gemQoKXtyZXR1cm4gUGR9XG52YXIgUWQ9QSh7fSx1ZCx7a2V5OmZ1bmN0aW9uKGEpe2lmKGEua2V5KXt2YXIgYj1NZFthLmtleV18fGEua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1iKXJldHVybiBifXJldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT8oYT1vZChhKSwxMz09PWE/XCJFbnRlclwiOlN0cmluZy5mcm9tQ2hhckNvZGUoYSkpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/TmRbYS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxjaGFyQ29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/b2QoYSk6MH0sa2V5Q29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1cbmEudHlwZT9vZChhKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfX0pLFJkPXJkKFFkKSxTZD1BKHt9LEFkLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLFRkPXJkKFNkKSxVZD1BKHt9LHVkLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6emR9KSxWZD1yZChVZCksV2Q9QSh7fSxzZCx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxYZD1yZChXZCksWWQ9QSh7fSxBZCx7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFYXCJpbiBhP2EuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluIGE/LWEud2hlZWxEZWx0YVg6MH0sXG5kZWx0YVk6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVlcImluIGE/YS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gYT8tYS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGE/LWEud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLFpkPXJkKFlkKSwkZD1bOSwxMywyNywzMl0sYWU9aWEmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LGJlPW51bGw7aWEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKGJlPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGNlPWlhJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhYmUsZGU9aWEmJighYWV8fGJlJiY4PGJlJiYxMT49YmUpLGVlPVN0cmluZy5mcm9tQ2hhckNvZGUoMzIpLGZlPSExO1xuZnVuY3Rpb24gZ2UoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImtleXVwXCI6cmV0dXJuLTEhPT0kZC5pbmRleE9mKGIua2V5Q29kZSk7Y2FzZSBcImtleWRvd25cIjpyZXR1cm4gMjI5IT09Yi5rZXlDb2RlO2Nhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBoZShhKXthPWEuZGV0YWlsO3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmXCJkYXRhXCJpbiBhP2EuZGF0YTpudWxsfXZhciBpZT0hMTtmdW5jdGlvbiBqZShhLGIpe3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gaGUoYik7Y2FzZSBcImtleXByZXNzXCI6aWYoMzIhPT1iLndoaWNoKXJldHVybiBudWxsO2ZlPSEwO3JldHVybiBlZTtjYXNlIFwidGV4dElucHV0XCI6cmV0dXJuIGE9Yi5kYXRhLGE9PT1lZSYmZmU/bnVsbDphO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxuZnVuY3Rpb24ga2UoYSxiKXtpZihpZSlyZXR1cm5cImNvbXBvc2l0aW9uZW5kXCI9PT1hfHwhYWUmJmdlKGEsYik/KGE9bmQoKSxtZD1sZD1rZD1udWxsLGllPSExLGEpOm51bGw7c3dpdGNoKGEpe2Nhc2UgXCJwYXN0ZVwiOnJldHVybiBudWxsO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKCEoYi5jdHJsS2V5fHxiLmFsdEtleXx8Yi5tZXRhS2V5KXx8Yi5jdHJsS2V5JiZiLmFsdEtleSl7aWYoYi5jaGFyJiYxPGIuY2hhci5sZW5ndGgpcmV0dXJuIGIuY2hhcjtpZihiLndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGIud2hpY2gpfXJldHVybiBudWxsO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBkZSYmXCJrb1wiIT09Yi5sb2NhbGU/bnVsbDpiLmRhdGE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG52YXIgbGU9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbWUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWI/ISFsZVthLnR5cGVdOlwidGV4dGFyZWFcIj09PWI/ITA6ITF9ZnVuY3Rpb24gbmUoYSxiLGMsZCl7RWIoZCk7Yj1vZShiLFwib25DaGFuZ2VcIik7MDxiLmxlbmd0aCYmKGM9bmV3IHRkKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsYyxkKSxhLnB1c2goe2V2ZW50OmMsbGlzdGVuZXJzOmJ9KSl9dmFyIHBlPW51bGwscWU9bnVsbDtmdW5jdGlvbiByZShhKXtzZShhLDApfWZ1bmN0aW9uIHRlKGEpe3ZhciBiPXVlKGEpO2lmKFdhKGIpKXJldHVybiBhfVxuZnVuY3Rpb24gdmUoYSxiKXtpZihcImNoYW5nZVwiPT09YSlyZXR1cm4gYn12YXIgd2U9ITE7aWYoaWEpe3ZhciB4ZTtpZihpYSl7dmFyIHllPVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIXllKXt2YXIgemU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt6ZS5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpO3llPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB6ZS5vbmlucHV0fXhlPXllfWVsc2UgeGU9ITE7d2U9eGUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gQWUoKXtwZSYmKHBlLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSxxZT1wZT1udWxsKX1mdW5jdGlvbiBCZShhKXtpZihcInZhbHVlXCI9PT1hLnByb3BlcnR5TmFtZSYmdGUocWUpKXt2YXIgYj1bXTtuZShiLHFlLGEseGIoYSkpO0piKHJlLGIpfX1cbmZ1bmN0aW9uIENlKGEsYixjKXtcImZvY3VzaW5cIj09PWE/KEFlKCkscGU9YixxZT1jLHBlLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLEJlKSk6XCJmb2N1c291dFwiPT09YSYmQWUoKX1mdW5jdGlvbiBEZShhKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09YXx8XCJrZXl1cFwiPT09YXx8XCJrZXlkb3duXCI9PT1hKXJldHVybiB0ZShxZSl9ZnVuY3Rpb24gRWUoYSxiKXtpZihcImNsaWNrXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBGZShhLGIpe2lmKFwiaW5wdXRcIj09PWF8fFwiY2hhbmdlXCI9PT1hKXJldHVybiB0ZShiKX1mdW5jdGlvbiBHZShhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIEhlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOkdlO1xuZnVuY3Rpb24gSWUoYSxiKXtpZihIZShhLGIpKXJldHVybiEwO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYXx8bnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYnx8bnVsbD09PWIpcmV0dXJuITE7dmFyIGM9T2JqZWN0LmtleXMoYSksZD1PYmplY3Qua2V5cyhiKTtpZihjLmxlbmd0aCE9PWQubGVuZ3RoKXJldHVybiExO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF07aWYoIWphLmNhbGwoYixlKXx8IUhlKGFbZV0sYltlXSkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gSmUoYSl7Zm9yKDthJiZhLmZpcnN0Q2hpbGQ7KWE9YS5maXJzdENoaWxkO3JldHVybiBhfVxuZnVuY3Rpb24gS2UoYSxiKXt2YXIgYz1KZShhKTthPTA7Zm9yKHZhciBkO2M7KXtpZigzPT09Yy5ub2RlVHlwZSl7ZD1hK2MudGV4dENvbnRlbnQubGVuZ3RoO2lmKGE8PWImJmQ+PWIpcmV0dXJue25vZGU6YyxvZmZzZXQ6Yi1hfTthPWR9YTp7Zm9yKDtjOyl7aWYoYy5uZXh0U2libGluZyl7Yz1jLm5leHRTaWJsaW5nO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGV9Yz12b2lkIDB9Yz1KZShjKX19ZnVuY3Rpb24gTGUoYSxiKXtyZXR1cm4gYSYmYj9hPT09Yj8hMDphJiYzPT09YS5ub2RlVHlwZT8hMTpiJiYzPT09Yi5ub2RlVHlwZT9MZShhLGIucGFyZW50Tm9kZSk6XCJjb250YWluc1wiaW4gYT9hLmNvbnRhaW5zKGIpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik6ITE6ITF9XG5mdW5jdGlvbiBNZSgpe2Zvcih2YXIgYT13aW5kb3csYj1YYSgpO2IgaW5zdGFuY2VvZiBhLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBjPVwic3RyaW5nXCI9PT10eXBlb2YgYi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZCl7Yz0hMX1pZihjKWE9Yi5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7Yj1YYShhLmRvY3VtZW50KX1yZXR1cm4gYn1mdW5jdGlvbiBOZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGImJihcImlucHV0XCI9PT1iJiYoXCJ0ZXh0XCI9PT1hLnR5cGV8fFwic2VhcmNoXCI9PT1hLnR5cGV8fFwidGVsXCI9PT1hLnR5cGV8fFwidXJsXCI9PT1hLnR5cGV8fFwicGFzc3dvcmRcIj09PWEudHlwZSl8fFwidGV4dGFyZWFcIj09PWJ8fFwidHJ1ZVwiPT09YS5jb250ZW50RWRpdGFibGUpfVxuZnVuY3Rpb24gT2UoYSl7dmFyIGI9TWUoKSxjPWEuZm9jdXNlZEVsZW0sZD1hLnNlbGVjdGlvblJhbmdlO2lmKGIhPT1jJiZjJiZjLm93bmVyRG9jdW1lbnQmJkxlKGMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYykpe2lmKG51bGwhPT1kJiZOZShjKSlpZihiPWQuc3RhcnQsYT1kLmVuZCx2b2lkIDA9PT1hJiYoYT1iKSxcInNlbGVjdGlvblN0YXJ0XCJpbiBjKWMuc2VsZWN0aW9uU3RhcnQ9YixjLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihhLGMudmFsdWUubGVuZ3RoKTtlbHNlIGlmKGE9KGI9Yy5vd25lckRvY3VtZW50fHxkb2N1bWVudCkmJmIuZGVmYXVsdFZpZXd8fHdpbmRvdyxhLmdldFNlbGVjdGlvbil7YT1hLmdldFNlbGVjdGlvbigpO3ZhciBlPWMudGV4dENvbnRlbnQubGVuZ3RoLGY9TWF0aC5taW4oZC5zdGFydCxlKTtkPXZvaWQgMD09PWQuZW5kP2Y6TWF0aC5taW4oZC5lbmQsZSk7IWEuZXh0ZW5kJiZmPmQmJihlPWQsZD1mLGY9ZSk7ZT1LZShjLGYpO3ZhciBnPUtlKGMsXG5kKTtlJiZnJiYoMSE9PWEucmFuZ2VDb3VudHx8YS5hbmNob3JOb2RlIT09ZS5ub2RlfHxhLmFuY2hvck9mZnNldCE9PWUub2Zmc2V0fHxhLmZvY3VzTm9kZSE9PWcubm9kZXx8YS5mb2N1c09mZnNldCE9PWcub2Zmc2V0KSYmKGI9Yi5jcmVhdGVSYW5nZSgpLGIuc2V0U3RhcnQoZS5ub2RlLGUub2Zmc2V0KSxhLnJlbW92ZUFsbFJhbmdlcygpLGY+ZD8oYS5hZGRSYW5nZShiKSxhLmV4dGVuZChnLm5vZGUsZy5vZmZzZXQpKTooYi5zZXRFbmQoZy5ub2RlLGcub2Zmc2V0KSxhLmFkZFJhbmdlKGIpKSl9Yj1bXTtmb3IoYT1jO2E9YS5wYXJlbnROb2RlOykxPT09YS5ub2RlVHlwZSYmYi5wdXNoKHtlbGVtZW50OmEsbGVmdDphLnNjcm9sbExlZnQsdG9wOmEuc2Nyb2xsVG9wfSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGMuZm9jdXMmJmMuZm9jdXMoKTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWE9YltjXSxhLmVsZW1lbnQuc2Nyb2xsTGVmdD1hLmxlZnQsYS5lbGVtZW50LnNjcm9sbFRvcD1hLnRvcH19XG52YXIgUGU9aWEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxRZT1udWxsLFJlPW51bGwsU2U9bnVsbCxUZT0hMTtcbmZ1bmN0aW9uIFVlKGEsYixjKXt2YXIgZD1jLndpbmRvdz09PWM/Yy5kb2N1bWVudDo5PT09Yy5ub2RlVHlwZT9jOmMub3duZXJEb2N1bWVudDtUZXx8bnVsbD09UWV8fFFlIT09WGEoZCl8fChkPVFlLFwic2VsZWN0aW9uU3RhcnRcImluIGQmJk5lKGQpP2Q9e3N0YXJ0OmQuc2VsZWN0aW9uU3RhcnQsZW5kOmQuc2VsZWN0aW9uRW5kfTooZD0oZC5vd25lckRvY3VtZW50JiZkLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCksZD17YW5jaG9yTm9kZTpkLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OmQuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpkLmZvY3VzTm9kZSxmb2N1c09mZnNldDpkLmZvY3VzT2Zmc2V0fSksU2UmJkllKFNlLGQpfHwoU2U9ZCxkPW9lKFJlLFwib25TZWxlY3RcIiksMDxkLmxlbmd0aCYmKGI9bmV3IHRkKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsYixjKSxhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmR9KSxiLnRhcmdldD1RZSkpKX1cbmZ1bmN0aW9uIFZlKGEsYil7dmFyIGM9e307Y1thLnRvTG93ZXJDYXNlKCldPWIudG9Mb3dlckNhc2UoKTtjW1wiV2Via2l0XCIrYV09XCJ3ZWJraXRcIitiO2NbXCJNb3pcIithXT1cIm1velwiK2I7cmV0dXJuIGN9dmFyIFdlPXthbmltYXRpb25lbmQ6VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpWZShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbmVuZDpWZShcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25FbmRcIil9LFhlPXt9LFllPXt9O1xuaWEmJihZZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlLFwiQW5pbWF0aW9uRXZlbnRcImluIHdpbmRvd3x8KGRlbGV0ZSBXZS5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBXZS5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBXZS5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLFwiVHJhbnNpdGlvbkV2ZW50XCJpbiB3aW5kb3d8fGRlbGV0ZSBXZS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pO2Z1bmN0aW9uIFplKGEpe2lmKFhlW2FdKXJldHVybiBYZVthXTtpZighV2VbYV0pcmV0dXJuIGE7dmFyIGI9V2VbYV0sYztmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmMgaW4gWWUpcmV0dXJuIFhlW2FdPWJbY107cmV0dXJuIGF9dmFyICRlPVplKFwiYW5pbWF0aW9uZW5kXCIpLGFmPVplKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLGJmPVplKFwiYW5pbWF0aW9uc3RhcnRcIiksY2Y9WmUoXCJ0cmFuc2l0aW9uZW5kXCIpLGRmPW5ldyBNYXAsZWY9XCJhYm9ydCBhdXhDbGljayBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIGZmKGEsYil7ZGYuc2V0KGEsYik7ZmEoYixbYV0pfWZvcih2YXIgZ2Y9MDtnZjxlZi5sZW5ndGg7Z2YrKyl7dmFyIGhmPWVmW2dmXSxqZj1oZi50b0xvd2VyQ2FzZSgpLGtmPWhmWzBdLnRvVXBwZXJDYXNlKCkraGYuc2xpY2UoMSk7ZmYoamYsXCJvblwiK2tmKX1mZigkZSxcIm9uQW5pbWF0aW9uRW5kXCIpO2ZmKGFmLFwib25BbmltYXRpb25JdGVyYXRpb25cIik7ZmYoYmYsXCJvbkFuaW1hdGlvblN0YXJ0XCIpO2ZmKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIik7ZmYoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpO2ZmKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKTtmZihjZixcIm9uVHJhbnNpdGlvbkVuZFwiKTtoYShcIm9uTW91c2VFbnRlclwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO2hhKFwib25Nb3VzZUxlYXZlXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSk7aGEoXCJvblBvaW50ZXJFbnRlclwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKTtcbmhhKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7ZmEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2ZhKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSk7ZmEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKTtmYShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtmYShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7XG5mYShcIm9uQ29tcG9zaXRpb25VcGRhdGVcIixcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTt2YXIgbGY9XCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFwiIFwiKSxtZj1uZXcgU2V0KFwiY2FuY2VsIGNsb3NlIGludmFsaWQgbG9hZCBzY3JvbGwgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChsZikpO1xuZnVuY3Rpb24gbmYoYSxiLGMpe3ZhciBkPWEudHlwZXx8XCJ1bmtub3duLWV2ZW50XCI7YS5jdXJyZW50VGFyZ2V0PWM7VWIoZCxiLHZvaWQgMCxhKTthLmN1cnJlbnRUYXJnZXQ9bnVsbH1cbmZ1bmN0aW9uIHNlKGEsYil7Yj0wIT09KGImNCk7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPWFbY10sZT1kLmV2ZW50O2Q9ZC5saXN0ZW5lcnM7YTp7dmFyIGY9dm9pZCAwO2lmKGIpZm9yKHZhciBnPWQubGVuZ3RoLTE7MDw9ZztnLS0pe3ZhciBoPWRbZ10saz1oLmluc3RhbmNlLGw9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7bmYoZSxoLGwpO2Y9a31lbHNlIGZvcihnPTA7ZzxkLmxlbmd0aDtnKyspe2g9ZFtnXTtrPWguaW5zdGFuY2U7bD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtuZihlLGgsbCk7Zj1rfX19aWYoUWIpdGhyb3cgYT1SYixRYj0hMSxSYj1udWxsLGE7fVxuZnVuY3Rpb24gRChhLGIpe3ZhciBjPWJbb2ZdO3ZvaWQgMD09PWMmJihjPWJbb2ZdPW5ldyBTZXQpO3ZhciBkPWErXCJfX2J1YmJsZVwiO2MuaGFzKGQpfHwocGYoYixhLDIsITEpLGMuYWRkKGQpKX1mdW5jdGlvbiBxZihhLGIsYyl7dmFyIGQ9MDtiJiYoZHw9NCk7cGYoYyxhLGQsYil9dmFyIHJmPVwiX3JlYWN0TGlzdGVuaW5nXCIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gc2YoYSl7aWYoIWFbcmZdKXthW3JmXT0hMDtkYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe1wic2VsZWN0aW9uY2hhbmdlXCIhPT1iJiYobWYuaGFzKGIpfHxxZihiLCExLGEpLHFmKGIsITAsYSkpfSk7dmFyIGI9OT09PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnQ7bnVsbD09PWJ8fGJbcmZdfHwoYltyZl09ITAscWYoXCJzZWxlY3Rpb25jaGFuZ2VcIiwhMSxiKSl9fVxuZnVuY3Rpb24gcGYoYSxiLGMsZCl7c3dpdGNoKGpkKGIpKXtjYXNlIDE6dmFyIGU9ZWQ7YnJlYWs7Y2FzZSA0OmU9Z2Q7YnJlYWs7ZGVmYXVsdDplPWZkfWM9ZS5iaW5kKG51bGwsYixjLGEpO2U9dm9pZCAwOyFMYnx8XCJ0b3VjaHN0YXJ0XCIhPT1iJiZcInRvdWNobW92ZVwiIT09YiYmXCJ3aGVlbFwiIT09Ynx8KGU9ITApO2Q/dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtjYXB0dXJlOiEwLHBhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITApOnZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7cGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSl9XG5mdW5jdGlvbiBoZChhLGIsYyxkLGUpe3ZhciBmPWQ7aWYoMD09PShiJjEpJiYwPT09KGImMikmJm51bGwhPT1kKWE6Zm9yKDs7KXtpZihudWxsPT09ZClyZXR1cm47dmFyIGc9ZC50YWc7aWYoMz09PWd8fDQ9PT1nKXt2YXIgaD1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2lmKGg9PT1lfHw4PT09aC5ub2RlVHlwZSYmaC5wYXJlbnROb2RlPT09ZSlicmVhaztpZig0PT09Zylmb3IoZz1kLnJldHVybjtudWxsIT09Zzspe3ZhciBrPWcudGFnO2lmKDM9PT1rfHw0PT09aylpZihrPWcuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8saz09PWV8fDg9PT1rLm5vZGVUeXBlJiZrLnBhcmVudE5vZGU9PT1lKXJldHVybjtnPWcucmV0dXJufWZvcig7bnVsbCE9PWg7KXtnPVdjKGgpO2lmKG51bGw9PT1nKXJldHVybjtrPWcudGFnO2lmKDU9PT1rfHw2PT09ayl7ZD1mPWc7Y29udGludWUgYX1oPWgucGFyZW50Tm9kZX19ZD1kLnJldHVybn1KYihmdW5jdGlvbigpe3ZhciBkPWYsZT14YihjKSxnPVtdO1xuYTp7dmFyIGg9ZGYuZ2V0KGEpO2lmKHZvaWQgMCE9PWgpe3ZhciBrPXRkLG49YTtzd2l0Y2goYSl7Y2FzZSBcImtleXByZXNzXCI6aWYoMD09PW9kKGMpKWJyZWFrIGE7Y2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5dXBcIjprPVJkO2JyZWFrO2Nhc2UgXCJmb2N1c2luXCI6bj1cImZvY3VzXCI7az1GZDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpuPVwiYmx1clwiO2s9RmQ7YnJlYWs7Y2FzZSBcImJlZm9yZWJsdXJcIjpjYXNlIFwiYWZ0ZXJibHVyXCI6az1GZDticmVhaztjYXNlIFwiY2xpY2tcIjppZigyPT09Yy5idXR0b24pYnJlYWsgYTtjYXNlIFwiYXV4Y2xpY2tcIjpjYXNlIFwiZGJsY2xpY2tcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcIm1vdXNlbW92ZVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJjb250ZXh0bWVudVwiOms9QmQ7YnJlYWs7Y2FzZSBcImRyYWdcIjpjYXNlIFwiZHJhZ2VuZFwiOmNhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2V4aXRcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6Y2FzZSBcImRyYWdvdmVyXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6az1cbkRkO2JyZWFrO2Nhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaG1vdmVcIjpjYXNlIFwidG91Y2hzdGFydFwiOms9VmQ7YnJlYWs7Y2FzZSAkZTpjYXNlIGFmOmNhc2UgYmY6az1IZDticmVhaztjYXNlIGNmOms9WGQ7YnJlYWs7Y2FzZSBcInNjcm9sbFwiOms9dmQ7YnJlYWs7Y2FzZSBcIndoZWVsXCI6az1aZDticmVhaztjYXNlIFwiY29weVwiOmNhc2UgXCJjdXRcIjpjYXNlIFwicGFzdGVcIjprPUpkO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJ1cFwiOms9VGR9dmFyIHQ9MCE9PShiJjQpLEo9IXQmJlwic2Nyb2xsXCI9PT1hLHg9dD9udWxsIT09aD9oK1wiQ2FwdHVyZVwiOm51bGw6aDt0PVtdO2Zvcih2YXIgdz1kLHU7bnVsbCE9PVxudzspe3U9dzt2YXIgRj11LnN0YXRlTm9kZTs1PT09dS50YWcmJm51bGwhPT1GJiYodT1GLG51bGwhPT14JiYoRj1LYih3LHgpLG51bGwhPUYmJnQucHVzaCh0Zih3LEYsdSkpKSk7aWYoSilicmVhazt3PXcucmV0dXJufTA8dC5sZW5ndGgmJihoPW5ldyBrKGgsbixudWxsLGMsZSksZy5wdXNoKHtldmVudDpoLGxpc3RlbmVyczp0fSkpfX1pZigwPT09KGImNykpe2E6e2g9XCJtb3VzZW92ZXJcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWE7az1cIm1vdXNlb3V0XCI9PT1hfHxcInBvaW50ZXJvdXRcIj09PWE7aWYoaCYmYyE9PXdiJiYobj1jLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpJiYoV2Mobil8fG5bdWZdKSlicmVhayBhO2lmKGt8fGgpe2g9ZS53aW5kb3c9PT1lP2U6KGg9ZS5vd25lckRvY3VtZW50KT9oLmRlZmF1bHRWaWV3fHxoLnBhcmVudFdpbmRvdzp3aW5kb3c7aWYoayl7aWYobj1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50LGs9ZCxuPW4/V2Mobik6bnVsbCxudWxsIT09XG5uJiYoSj1WYihuKSxuIT09Snx8NSE9PW4udGFnJiY2IT09bi50YWcpKW49bnVsbH1lbHNlIGs9bnVsbCxuPWQ7aWYoayE9PW4pe3Q9QmQ7Rj1cIm9uTW91c2VMZWF2ZVwiO3g9XCJvbk1vdXNlRW50ZXJcIjt3PVwibW91c2VcIjtpZihcInBvaW50ZXJvdXRcIj09PWF8fFwicG9pbnRlcm92ZXJcIj09PWEpdD1UZCxGPVwib25Qb2ludGVyTGVhdmVcIix4PVwib25Qb2ludGVyRW50ZXJcIix3PVwicG9pbnRlclwiO0o9bnVsbD09az9oOnVlKGspO3U9bnVsbD09bj9oOnVlKG4pO2g9bmV3IHQoRix3K1wibGVhdmVcIixrLGMsZSk7aC50YXJnZXQ9SjtoLnJlbGF0ZWRUYXJnZXQ9dTtGPW51bGw7V2MoZSk9PT1kJiYodD1uZXcgdCh4LHcrXCJlbnRlclwiLG4sYyxlKSx0LnRhcmdldD11LHQucmVsYXRlZFRhcmdldD1KLEY9dCk7Sj1GO2lmKGsmJm4pYjp7dD1rO3g9bjt3PTA7Zm9yKHU9dDt1O3U9dmYodSkpdysrO3U9MDtmb3IoRj14O0Y7Rj12ZihGKSl1Kys7Zm9yKDswPHctdTspdD12Zih0KSx3LS07Zm9yKDswPHUtdzspeD1cbnZmKHgpLHUtLTtmb3IoO3ctLTspe2lmKHQ9PT14fHxudWxsIT09eCYmdD09PXguYWx0ZXJuYXRlKWJyZWFrIGI7dD12Zih0KTt4PXZmKHgpfXQ9bnVsbH1lbHNlIHQ9bnVsbDtudWxsIT09ayYmd2YoZyxoLGssdCwhMSk7bnVsbCE9PW4mJm51bGwhPT1KJiZ3ZihnLEosbix0LCEwKX19fWE6e2g9ZD91ZShkKTp3aW5kb3c7az1oLm5vZGVOYW1lJiZoLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoXCJzZWxlY3RcIj09PWt8fFwiaW5wdXRcIj09PWsmJlwiZmlsZVwiPT09aC50eXBlKXZhciBuYT12ZTtlbHNlIGlmKG1lKGgpKWlmKHdlKW5hPUZlO2Vsc2V7bmE9RGU7dmFyIHhhPUNlfWVsc2Uoaz1oLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09ay50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09aC50eXBlfHxcInJhZGlvXCI9PT1oLnR5cGUpJiYobmE9RWUpO2lmKG5hJiYobmE9bmEoYSxkKSkpe25lKGcsbmEsYyxlKTticmVhayBhfXhhJiZ4YShhLGgsZCk7XCJmb2N1c291dFwiPT09YSYmKHhhPWguX3dyYXBwZXJTdGF0ZSkmJlxueGEuY29udHJvbGxlZCYmXCJudW1iZXJcIj09PWgudHlwZSYmY2IoaCxcIm51bWJlclwiLGgudmFsdWUpfXhhPWQ/dWUoZCk6d2luZG93O3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmlmKG1lKHhhKXx8XCJ0cnVlXCI9PT14YS5jb250ZW50RWRpdGFibGUpUWU9eGEsUmU9ZCxTZT1udWxsO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOlNlPVJlPVFlPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlZG93blwiOlRlPSEwO2JyZWFrO2Nhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcImRyYWdlbmRcIjpUZT0hMTtVZShnLGMsZSk7YnJlYWs7Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmlmKFBlKWJyZWFrO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6VWUoZyxjLGUpfXZhciAkYTtpZihhZSliOntzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgYmE9XCJvbkNvbXBvc2l0aW9uU3RhcnRcIjticmVhayBiO2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOmJhPVwib25Db21wb3NpdGlvbkVuZFwiO1xuYnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpiYT1cIm9uQ29tcG9zaXRpb25VcGRhdGVcIjticmVhayBifWJhPXZvaWQgMH1lbHNlIGllP2dlKGEsYykmJihiYT1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1hJiYyMjk9PT1jLmtleUNvZGUmJihiYT1cIm9uQ29tcG9zaXRpb25TdGFydFwiKTtiYSYmKGRlJiZcImtvXCIhPT1jLmxvY2FsZSYmKGllfHxcIm9uQ29tcG9zaXRpb25TdGFydFwiIT09YmE/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT1iYSYmaWUmJigkYT1uZCgpKTooa2Q9ZSxsZD1cInZhbHVlXCJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxpZT0hMCkpLHhhPW9lKGQsYmEpLDA8eGEubGVuZ3RoJiYoYmE9bmV3IExkKGJhLGEsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6YmEsbGlzdGVuZXJzOnhhfSksJGE/YmEuZGF0YT0kYTooJGE9aGUoYyksbnVsbCE9PSRhJiYoYmEuZGF0YT0kYSkpKSk7aWYoJGE9Y2U/amUoYSxjKTprZShhLGMpKWQ9b2UoZCxcIm9uQmVmb3JlSW5wdXRcIiksXG4wPGQubGVuZ3RoJiYoZT1uZXcgTGQoXCJvbkJlZm9yZUlucHV0XCIsXCJiZWZvcmVpbnB1dFwiLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmUsbGlzdGVuZXJzOmR9KSxlLmRhdGE9JGEpfXNlKGcsYil9KX1mdW5jdGlvbiB0ZihhLGIsYyl7cmV0dXJue2luc3RhbmNlOmEsbGlzdGVuZXI6YixjdXJyZW50VGFyZ2V0OmN9fWZ1bmN0aW9uIG9lKGEsYil7Zm9yKHZhciBjPWIrXCJDYXB0dXJlXCIsZD1bXTtudWxsIT09YTspe3ZhciBlPWEsZj1lLnN0YXRlTm9kZTs1PT09ZS50YWcmJm51bGwhPT1mJiYoZT1mLGY9S2IoYSxjKSxudWxsIT1mJiZkLnVuc2hpZnQodGYoYSxmLGUpKSxmPUtiKGEsYiksbnVsbCE9ZiYmZC5wdXNoKHRmKGEsZixlKSkpO2E9YS5yZXR1cm59cmV0dXJuIGR9ZnVuY3Rpb24gdmYoYSl7aWYobnVsbD09PWEpcmV0dXJuIG51bGw7ZG8gYT1hLnJldHVybjt3aGlsZShhJiY1IT09YS50YWcpO3JldHVybiBhP2E6bnVsbH1cbmZ1bmN0aW9uIHdmKGEsYixjLGQsZSl7Zm9yKHZhciBmPWIuX3JlYWN0TmFtZSxnPVtdO251bGwhPT1jJiZjIT09ZDspe3ZhciBoPWMsaz1oLmFsdGVybmF0ZSxsPWguc3RhdGVOb2RlO2lmKG51bGwhPT1rJiZrPT09ZClicmVhazs1PT09aC50YWcmJm51bGwhPT1sJiYoaD1sLGU/KGs9S2IoYyxmKSxudWxsIT1rJiZnLnVuc2hpZnQodGYoYyxrLGgpKSk6ZXx8KGs9S2IoYyxmKSxudWxsIT1rJiZnLnB1c2godGYoYyxrLGgpKSkpO2M9Yy5yZXR1cm59MCE9PWcubGVuZ3RoJiZhLnB1c2goe2V2ZW50OmIsbGlzdGVuZXJzOmd9KX12YXIgeGY9L1xcclxcbj8vZyx5Zj0vXFx1MDAwMHxcXHVGRkZEL2c7ZnVuY3Rpb24gemYoYSl7cmV0dXJuKFwic3RyaW5nXCI9PT10eXBlb2YgYT9hOlwiXCIrYSkucmVwbGFjZSh4ZixcIlxcblwiKS5yZXBsYWNlKHlmLFwiXCIpfWZ1bmN0aW9uIEFmKGEsYixjKXtiPXpmKGIpO2lmKHpmKGEpIT09YiYmYyl0aHJvdyBFcnJvcihwKDQyNSkpO31mdW5jdGlvbiBCZigpe31cbnZhciBDZj1udWxsLERmPW51bGw7ZnVuY3Rpb24gRWYoYSxiKXtyZXR1cm5cInRleHRhcmVhXCI9PT1hfHxcIm5vc2NyaXB0XCI9PT1hfHxcInN0cmluZ1wiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9XG52YXIgRmY9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDp2b2lkIDAsR2Y9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLEhmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBQcm9taXNlP1Byb21pc2U6dm9pZCAwLEpmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz9xdWV1ZU1pY3JvdGFzazpcInVuZGVmaW5lZFwiIT09dHlwZW9mIEhmP2Z1bmN0aW9uKGEpe3JldHVybiBIZi5yZXNvbHZlKG51bGwpLnRoZW4oYSkuY2F0Y2goSWYpfTpGZjtmdW5jdGlvbiBJZihhKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYTt9KX1cbmZ1bmN0aW9uIEtmKGEsYil7dmFyIGM9YixkPTA7ZG97dmFyIGU9Yy5uZXh0U2libGluZzthLnJlbW92ZUNoaWxkKGMpO2lmKGUmJjg9PT1lLm5vZGVUeXBlKWlmKGM9ZS5kYXRhLFwiLyRcIj09PWMpe2lmKDA9PT1kKXthLnJlbW92ZUNoaWxkKGUpO2JkKGIpO3JldHVybn1kLS19ZWxzZVwiJFwiIT09YyYmXCIkP1wiIT09YyYmXCIkIVwiIT09Y3x8ZCsrO2M9ZX13aGlsZShjKTtiZChiKX1mdW5jdGlvbiBMZihhKXtmb3IoO251bGwhPWE7YT1hLm5leHRTaWJsaW5nKXt2YXIgYj1hLm5vZGVUeXBlO2lmKDE9PT1ifHwzPT09YilicmVhaztpZig4PT09Yil7Yj1hLmRhdGE7aWYoXCIkXCI9PT1ifHxcIiQhXCI9PT1ifHxcIiQ/XCI9PT1iKWJyZWFrO2lmKFwiLyRcIj09PWIpcmV0dXJuIG51bGx9fXJldHVybiBhfVxuZnVuY3Rpb24gTWYoYSl7YT1hLnByZXZpb3VzU2libGluZztmb3IodmFyIGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIiRcIj09PWN8fFwiJCFcIj09PWN8fFwiJD9cIj09PWMpe2lmKDA9PT1iKXJldHVybiBhO2ItLX1lbHNlXCIvJFwiPT09YyYmYisrfWE9YS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE5mPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLE9mPVwiX19yZWFjdEZpYmVyJFwiK05mLFBmPVwiX19yZWFjdFByb3BzJFwiK05mLHVmPVwiX19yZWFjdENvbnRhaW5lciRcIitOZixvZj1cIl9fcmVhY3RFdmVudHMkXCIrTmYsUWY9XCJfX3JlYWN0TGlzdGVuZXJzJFwiK05mLFJmPVwiX19yZWFjdEhhbmRsZXMkXCIrTmY7XG5mdW5jdGlvbiBXYyhhKXt2YXIgYj1hW09mXTtpZihiKXJldHVybiBiO2Zvcih2YXIgYz1hLnBhcmVudE5vZGU7Yzspe2lmKGI9Y1t1Zl18fGNbT2ZdKXtjPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1iLmNoaWxkfHxudWxsIT09YyYmbnVsbCE9PWMuY2hpbGQpZm9yKGE9TWYoYSk7bnVsbCE9PWE7KXtpZihjPWFbT2ZdKXJldHVybiBjO2E9TWYoYSl9cmV0dXJuIGJ9YT1jO2M9YS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIENiKGEpe2E9YVtPZl18fGFbdWZdO3JldHVybiFhfHw1IT09YS50YWcmJjYhPT1hLnRhZyYmMTMhPT1hLnRhZyYmMyE9PWEudGFnP251bGw6YX1mdW5jdGlvbiB1ZShhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IocCgzMykpO31mdW5jdGlvbiBEYihhKXtyZXR1cm4gYVtQZl18fG51bGx9dmFyIFNmPVtdLFRmPS0xO2Z1bmN0aW9uIFVmKGEpe3JldHVybntjdXJyZW50OmF9fVxuZnVuY3Rpb24gRShhKXswPlRmfHwoYS5jdXJyZW50PVNmW1RmXSxTZltUZl09bnVsbCxUZi0tKX1mdW5jdGlvbiBHKGEsYil7VGYrKztTZltUZl09YS5jdXJyZW50O2EuY3VycmVudD1ifXZhciBWZj17fSxIPVVmKFZmKSxXZj1VZighMSksWGY9VmY7ZnVuY3Rpb24gWWYoYSxiKXt2YXIgYz1hLnR5cGUuY29udGV4dFR5cGVzO2lmKCFjKXJldHVybiBWZjt2YXIgZD1hLnN0YXRlTm9kZTtpZihkJiZkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9PT1iKXJldHVybiBkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O3ZhciBlPXt9LGY7Zm9yKGYgaW4gYyllW2ZdPWJbZl07ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWIsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1lKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIFpmKGEpe2E9YS5jaGlsZENvbnRleHRUeXBlcztyZXR1cm4gbnVsbCE9PWEmJnZvaWQgMCE9PWF9ZnVuY3Rpb24gJGYoKXtFKFdmKTtFKEgpfWZ1bmN0aW9uIGFnKGEsYixjKXtpZihILmN1cnJlbnQhPT1WZil0aHJvdyBFcnJvcihwKDE2OCkpO0coSCxiKTtHKFdmLGMpfWZ1bmN0aW9uIGJnKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtiPWIuY2hpbGRDb250ZXh0VHlwZXM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGQuZ2V0Q2hpbGRDb250ZXh0KXJldHVybiBjO2Q9ZC5nZXRDaGlsZENvbnRleHQoKTtmb3IodmFyIGUgaW4gZClpZighKGUgaW4gYikpdGhyb3cgRXJyb3IocCgxMDgsUmEoYSl8fFwiVW5rbm93blwiLGUpKTtyZXR1cm4gQSh7fSxjLGQpfVxuZnVuY3Rpb24gY2coYSl7YT0oYT1hLnN0YXRlTm9kZSkmJmEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fFZmO1hmPUguY3VycmVudDtHKEgsYSk7RyhXZixXZi5jdXJyZW50KTtyZXR1cm4hMH1mdW5jdGlvbiBkZyhhLGIsYyl7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoIWQpdGhyb3cgRXJyb3IocCgxNjkpKTtjPyhhPWJnKGEsYixYZiksZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dD1hLEUoV2YpLEUoSCksRyhILGEpKTpFKFdmKTtHKFdmLGMpfXZhciBlZz1udWxsLGZnPSExLGdnPSExO2Z1bmN0aW9uIGhnKGEpe251bGw9PT1lZz9lZz1bYV06ZWcucHVzaChhKX1mdW5jdGlvbiBpZyhhKXtmZz0hMDtoZyhhKX1cbmZ1bmN0aW9uIGpnKCl7aWYoIWdnJiZudWxsIT09ZWcpe2dnPSEwO3ZhciBhPTAsYj1DO3RyeXt2YXIgYz1lZztmb3IoQz0xO2E8Yy5sZW5ndGg7YSsrKXt2YXIgZD1jW2FdO2RvIGQ9ZCghMCk7d2hpbGUobnVsbCE9PWQpfWVnPW51bGw7Zmc9ITF9Y2F0Y2goZSl7dGhyb3cgbnVsbCE9PWVnJiYoZWc9ZWcuc2xpY2UoYSsxKSksYWMoZmMsamcpLGU7fWZpbmFsbHl7Qz1iLGdnPSExfX1yZXR1cm4gbnVsbH12YXIga2c9W10sbGc9MCxtZz1udWxsLG5nPTAsb2c9W10scGc9MCxxZz1udWxsLHJnPTEsc2c9XCJcIjtmdW5jdGlvbiB0ZyhhLGIpe2tnW2xnKytdPW5nO2tnW2xnKytdPW1nO21nPWE7bmc9Yn1cbmZ1bmN0aW9uIHVnKGEsYixjKXtvZ1twZysrXT1yZztvZ1twZysrXT1zZztvZ1twZysrXT1xZztxZz1hO3ZhciBkPXJnO2E9c2c7dmFyIGU9MzItb2MoZCktMTtkJj1+KDE8PGUpO2MrPTE7dmFyIGY9MzItb2MoYikrZTtpZigzMDxmKXt2YXIgZz1lLWUlNTtmPShkJigxPDxnKS0xKS50b1N0cmluZygzMik7ZD4+PWc7ZS09ZztyZz0xPDwzMi1vYyhiKStlfGM8PGV8ZDtzZz1mK2F9ZWxzZSByZz0xPDxmfGM8PGV8ZCxzZz1hfWZ1bmN0aW9uIHZnKGEpe251bGwhPT1hLnJldHVybiYmKHRnKGEsMSksdWcoYSwxLDApKX1mdW5jdGlvbiB3ZyhhKXtmb3IoO2E9PT1tZzspbWc9a2dbLS1sZ10sa2dbbGddPW51bGwsbmc9a2dbLS1sZ10sa2dbbGddPW51bGw7Zm9yKDthPT09cWc7KXFnPW9nWy0tcGddLG9nW3BnXT1udWxsLHNnPW9nWy0tcGddLG9nW3BnXT1udWxsLHJnPW9nWy0tcGddLG9nW3BnXT1udWxsfXZhciB4Zz1udWxsLHlnPW51bGwsST0hMSx6Zz1udWxsO1xuZnVuY3Rpb24gQWcoYSxiKXt2YXIgYz1CZyg1LG51bGwsbnVsbCwwKTtjLmVsZW1lbnRUeXBlPVwiREVMRVRFRFwiO2Muc3RhdGVOb2RlPWI7Yy5yZXR1cm49YTtiPWEuZGVsZXRpb25zO251bGw9PT1iPyhhLmRlbGV0aW9ucz1bY10sYS5mbGFnc3w9MTYpOmIucHVzaChjKX1cbmZ1bmN0aW9uIENnKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO2I9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmI7cmV0dXJuIG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLHhnPWEseWc9TGYoYi5maXJzdENoaWxkKSwhMCk6ITE7Y2FzZSA2OnJldHVybiBiPVwiXCI9PT1hLnBlbmRpbmdQcm9wc3x8MyE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLHhnPWEseWc9bnVsbCwhMCk6ITE7Y2FzZSAxMzpyZXR1cm4gYj04IT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGM9bnVsbCE9PXFnP3tpZDpyZyxvdmVyZmxvdzpzZ306bnVsbCxhLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6Yix0cmVlQ29udGV4dDpjLHJldHJ5TGFuZToxMDczNzQxODI0fSxjPUJnKDE4LG51bGwsbnVsbCwwKSxjLnN0YXRlTm9kZT1iLGMucmV0dXJuPWEsYS5jaGlsZD1jLHhnPWEseWc9XG5udWxsLCEwKTohMTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBEZyhhKXtyZXR1cm4gMCE9PShhLm1vZGUmMSkmJjA9PT0oYS5mbGFncyYxMjgpfWZ1bmN0aW9uIEVnKGEpe2lmKEkpe3ZhciBiPXlnO2lmKGIpe3ZhciBjPWI7aWYoIUNnKGEsYikpe2lmKERnKGEpKXRocm93IEVycm9yKHAoNDE4KSk7Yj1MZihjLm5leHRTaWJsaW5nKTt2YXIgZD14ZztiJiZDZyhhLGIpP0FnKGQsYyk6KGEuZmxhZ3M9YS5mbGFncyYtNDA5N3wyLEk9ITEseGc9YSl9fWVsc2V7aWYoRGcoYSkpdGhyb3cgRXJyb3IocCg0MTgpKTthLmZsYWdzPWEuZmxhZ3MmLTQwOTd8MjtJPSExO3hnPWF9fX1mdW5jdGlvbiBGZyhhKXtmb3IoYT1hLnJldHVybjtudWxsIT09YSYmNSE9PWEudGFnJiYzIT09YS50YWcmJjEzIT09YS50YWc7KWE9YS5yZXR1cm47eGc9YX1cbmZ1bmN0aW9uIEdnKGEpe2lmKGEhPT14ZylyZXR1cm4hMTtpZighSSlyZXR1cm4gRmcoYSksST0hMCwhMTt2YXIgYjsoYj0zIT09YS50YWcpJiYhKGI9NSE9PWEudGFnKSYmKGI9YS50eXBlLGI9XCJoZWFkXCIhPT1iJiZcImJvZHlcIiE9PWImJiFFZihhLnR5cGUsYS5tZW1vaXplZFByb3BzKSk7aWYoYiYmKGI9eWcpKXtpZihEZyhhKSl0aHJvdyBIZygpLEVycm9yKHAoNDE4KSk7Zm9yKDtiOylBZyhhLGIpLGI9TGYoYi5uZXh0U2libGluZyl9RmcoYSk7aWYoMTM9PT1hLnRhZyl7YT1hLm1lbW9pemVkU3RhdGU7YT1udWxsIT09YT9hLmRlaHlkcmF0ZWQ6bnVsbDtpZighYSl0aHJvdyBFcnJvcihwKDMxNykpO2E6e2E9YS5uZXh0U2libGluZztmb3IoYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKFwiLyRcIj09PWMpe2lmKDA9PT1iKXt5Zz1MZihhLm5leHRTaWJsaW5nKTticmVhayBhfWItLX1lbHNlXCIkXCIhPT1jJiZcIiQhXCIhPT1jJiZcIiQ/XCIhPT1jfHxiKyt9YT1hLm5leHRTaWJsaW5nfXlnPVxubnVsbH19ZWxzZSB5Zz14Zz9MZihhLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiBIZygpe2Zvcih2YXIgYT15ZzthOylhPUxmKGEubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIElnKCl7eWc9eGc9bnVsbDtJPSExfWZ1bmN0aW9uIEpnKGEpe251bGw9PT16Zz96Zz1bYV06emcucHVzaChhKX12YXIgS2c9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7XG5mdW5jdGlvbiBMZyhhLGIsYyl7YT1jLnJlZjtpZihudWxsIT09YSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGEmJlwib2JqZWN0XCIhPT10eXBlb2YgYSl7aWYoYy5fb3duZXIpe2M9Yy5fb3duZXI7aWYoYyl7aWYoMSE9PWMudGFnKXRocm93IEVycm9yKHAoMzA5KSk7dmFyIGQ9Yy5zdGF0ZU5vZGV9aWYoIWQpdGhyb3cgRXJyb3IocCgxNDcsYSkpO3ZhciBlPWQsZj1cIlwiK2E7aWYobnVsbCE9PWImJm51bGwhPT1iLnJlZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIucmVmJiZiLnJlZi5fc3RyaW5nUmVmPT09ZilyZXR1cm4gYi5yZWY7Yj1mdW5jdGlvbihhKXt2YXIgYj1lLnJlZnM7bnVsbD09PWE/ZGVsZXRlIGJbZl06YltmXT1hfTtiLl9zdHJpbmdSZWY9ZjtyZXR1cm4gYn1pZihcInN0cmluZ1wiIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IocCgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IocCgyOTAsYSkpO31yZXR1cm4gYX1cbmZ1bmN0aW9uIE1nKGEsYil7YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYik7dGhyb3cgRXJyb3IocCgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09YT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjphKSk7fWZ1bmN0aW9uIE5nKGEpe3ZhciBiPWEuX2luaXQ7cmV0dXJuIGIoYS5fcGF5bG9hZCl9XG5mdW5jdGlvbiBPZyhhKXtmdW5jdGlvbiBiKGIsYyl7aWYoYSl7dmFyIGQ9Yi5kZWxldGlvbnM7bnVsbD09PWQ/KGIuZGVsZXRpb25zPVtjXSxiLmZsYWdzfD0xNik6ZC5wdXNoKGMpfX1mdW5jdGlvbiBjKGMsZCl7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09ZDspYihjLGQpLGQ9ZC5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQoYSxiKXtmb3IoYT1uZXcgTWFwO251bGwhPT1iOyludWxsIT09Yi5rZXk/YS5zZXQoYi5rZXksYik6YS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7YT1QZyhhLGIpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGIuZmxhZ3N8PTEwNDg1NzYsYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmZsYWdzfD0yLGMpOmQ7Yi5mbGFnc3w9MjtyZXR1cm4gY31mdW5jdGlvbiBnKGIpe2EmJlxubnVsbD09PWIuYWx0ZXJuYXRlJiYoYi5mbGFnc3w9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gaChhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPVFnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7dmFyIGY9Yy50eXBlO2lmKGY9PT15YSlyZXR1cm4gbShhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGMua2V5KTtpZihudWxsIT09YiYmKGIuZWxlbWVudFR5cGU9PT1mfHxcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLiQkdHlwZW9mPT09SGEmJk5nKGYpPT09Yi50eXBlKSlyZXR1cm4gZD1lKGIsYy5wcm9wcyksZC5yZWY9TGcoYSxiLGMpLGQucmV0dXJuPWEsZDtkPVJnKGMudHlwZSxjLmtleSxjLnByb3BzLG51bGwsYS5tb2RlLGQpO2QucmVmPUxnKGEsYixjKTtkLnJldHVybj1hO3JldHVybiBkfWZ1bmN0aW9uIGwoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDQhPT1iLnRhZ3x8XG5iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9U2coYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMuY2hpbGRyZW58fFtdKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIG0oYSxiLGMsZCxmKXtpZihudWxsPT09Ynx8NyE9PWIudGFnKXJldHVybiBiPVRnKGMsYS5tb2RlLGQsZiksYi5yZXR1cm49YSxiO2I9ZShiLGMpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBiJiZcIlwiIT09Ynx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPVFnKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjPVJnKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLFxuYy5yZWY9TGcoYSxudWxsLGIpLGMucmV0dXJuPWEsYztjYXNlIHdhOnJldHVybiBiPVNnKGIsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtjYXNlIEhhOnZhciBkPWIuX2luaXQ7cmV0dXJuIHEoYSxkKGIuX3BheWxvYWQpLGMpfWlmKGViKGIpfHxLYShiKSlyZXR1cm4gYj1UZyhiLGEubW9kZSxjLG51bGwpLGIucmV0dXJuPWEsYjtNZyhhLGIpfXJldHVybiBudWxsfWZ1bmN0aW9uIHIoYSxiLGMsZCl7dmFyIGU9bnVsbCE9PWI/Yi5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGMmJlwiXCIhPT1jfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6aChhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjLmtleT09PWU/ayhhLGIsYyxkKTpudWxsO2Nhc2Ugd2E6cmV0dXJuIGMua2V5PT09ZT9sKGEsYixjLGQpOm51bGw7Y2FzZSBIYTpyZXR1cm4gZT1jLl9pbml0LHIoYSxcbmIsZShjLl9wYXlsb2FkKSxkKX1pZihlYihjKXx8S2EoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bShhLGIsYyxkLG51bGwpO01nKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShhLGIsYyxkLGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZCYmXCJcIiE9PWR8fFwibnVtYmVyXCI9PT10eXBlb2YgZClyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxoKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGsoYixhLGQsZSk7Y2FzZSB3YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsbChiLGEsZCxlKTtjYXNlIEhhOnZhciBmPWQuX2luaXQ7cmV0dXJuIHkoYSxiLGMsZihkLl9wYXlsb2FkKSxlKX1pZihlYihkKXx8S2EoZCkpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsbShiLGEsZCxlLG51bGwpO01nKGIsZCl9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBuKGUsZyxoLGspe2Zvcih2YXIgbD1udWxsLG09bnVsbCx1PWcsdz1nPTAseD1udWxsO251bGwhPT11JiZ3PGgubGVuZ3RoO3crKyl7dS5pbmRleD53Pyh4PXUsdT1udWxsKTp4PXUuc2libGluZzt2YXIgbj1yKGUsdSxoW3ddLGspO2lmKG51bGw9PT1uKXtudWxsPT09dSYmKHU9eCk7YnJlYWt9YSYmdSYmbnVsbD09PW4uYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKG4sZyx3KTtudWxsPT09bT9sPW46bS5zaWJsaW5nPW47bT1uO3U9eH1pZih3PT09aC5sZW5ndGgpcmV0dXJuIGMoZSx1KSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PXUpe2Zvcig7dzxoLmxlbmd0aDt3KyspdT1xKGUsaFt3XSxrKSxudWxsIT09dSYmKGc9Zih1LGcsdyksbnVsbD09PW0/bD11Om0uc2libGluZz11LG09dSk7SSYmdGcoZSx3KTtyZXR1cm4gbH1mb3IodT1kKGUsdSk7dzxoLmxlbmd0aDt3KyspeD15KHUsZSx3LGhbd10sayksbnVsbCE9PXgmJihhJiZudWxsIT09eC5hbHRlcm5hdGUmJnUuZGVsZXRlKG51bGw9PT1cbngua2V5P3c6eC5rZXkpLGc9Zih4LGcsdyksbnVsbD09PW0/bD14Om0uc2libGluZz14LG09eCk7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZ1bmN0aW9uIHQoZSxnLGgsayl7dmFyIGw9S2EoaCk7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IocCgxNTApKTtoPWwuY2FsbChoKTtpZihudWxsPT1oKXRocm93IEVycm9yKHAoMTUxKSk7Zm9yKHZhciB1PWw9bnVsbCxtPWcsdz1nPTAseD1udWxsLG49aC5uZXh0KCk7bnVsbCE9PW0mJiFuLmRvbmU7dysrLG49aC5uZXh0KCkpe20uaW5kZXg+dz8oeD1tLG09bnVsbCk6eD1tLnNpYmxpbmc7dmFyIHQ9cihlLG0sbi52YWx1ZSxrKTtpZihudWxsPT09dCl7bnVsbD09PW0mJihtPXgpO2JyZWFrfWEmJm0mJm51bGw9PT10LmFsdGVybmF0ZSYmYihlLG0pO2c9Zih0LGcsdyk7bnVsbD09PXU/bD10OnUuc2libGluZz10O3U9dDttPXh9aWYobi5kb25lKXJldHVybiBjKGUsXG5tKSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PW0pe2Zvcig7IW4uZG9uZTt3Kyssbj1oLm5leHQoKSluPXEoZSxuLnZhbHVlLGspLG51bGwhPT1uJiYoZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZvcihtPWQoZSxtKTshbi5kb25lO3crKyxuPWgubmV4dCgpKW49eShtLGUsdyxuLnZhbHVlLGspLG51bGwhPT1uJiYoYSYmbnVsbCE9PW4uYWx0ZXJuYXRlJiZtLmRlbGV0ZShudWxsPT09bi5rZXk/dzpuLmtleSksZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTthJiZtLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO0kmJnRnKGUsdyk7cmV0dXJuIGx9ZnVuY3Rpb24gSihhLGQsZixoKXtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT15YSYmbnVsbD09PWYua2V5JiYoZj1mLnByb3BzLmNoaWxkcmVuKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mKXtzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSB2YTphOntmb3IodmFyIGs9XG5mLmtleSxsPWQ7bnVsbCE9PWw7KXtpZihsLmtleT09PWspe2s9Zi50eXBlO2lmKGs9PT15YSl7aWYoNz09PWwudGFnKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzLmNoaWxkcmVuKTtkLnJldHVybj1hO2E9ZDticmVhayBhfX1lbHNlIGlmKGwuZWxlbWVudFR5cGU9PT1rfHxcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rJiZrLiQkdHlwZW9mPT09SGEmJk5nKGspPT09bC50eXBlKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzKTtkLnJlZj1MZyhhLGwsZik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1jKGEsbCk7YnJlYWt9ZWxzZSBiKGEsbCk7bD1sLnNpYmxpbmd9Zi50eXBlPT09eWE/KGQ9VGcoZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsaCxmLmtleSksZC5yZXR1cm49YSxhPWQpOihoPVJnKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGgpLGgucmVmPUxnKGEsZCxmKSxoLnJldHVybj1hLGE9aCl9cmV0dXJuIGcoYSk7Y2FzZSB3YTphOntmb3IobD1mLmtleTtudWxsIT09XG5kOyl7aWYoZC5rZXk9PT1sKWlmKDQ9PT1kLnRhZyYmZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtjKGEsZC5zaWJsaW5nKTtkPWUoZCxmLmNoaWxkcmVufHxbXSk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1lbHNle2MoYSxkKTticmVha31lbHNlIGIoYSxkKTtkPWQuc2libGluZ31kPVNnKGYsYS5tb2RlLGgpO2QucmV0dXJuPWE7YT1kfXJldHVybiBnKGEpO2Nhc2UgSGE6cmV0dXJuIGw9Zi5faW5pdCxKKGEsZCxsKGYuX3BheWxvYWQpLGgpfWlmKGViKGYpKXJldHVybiBuKGEsZCxmLGgpO2lmKEthKGYpKXJldHVybiB0KGEsZCxmLGgpO01nKGEsZil9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBmJiZcIlwiIT09Znx8XCJudW1iZXJcIj09PXR5cGVvZiBmPyhmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmKSxkLnJldHVybj1hLGE9ZCk6XG4oYyhhLGQpLGQ9UWcoZixhLm1vZGUsaCksZC5yZXR1cm49YSxhPWQpLGcoYSkpOmMoYSxkKX1yZXR1cm4gSn12YXIgVWc9T2coITApLFZnPU9nKCExKSxXZz1VZihudWxsKSxYZz1udWxsLFlnPW51bGwsWmc9bnVsbDtmdW5jdGlvbiAkZygpe1pnPVlnPVhnPW51bGx9ZnVuY3Rpb24gYWgoYSl7dmFyIGI9V2cuY3VycmVudDtFKFdnKTthLl9jdXJyZW50VmFsdWU9Yn1mdW5jdGlvbiBiaChhLGIsYyl7Zm9yKDtudWxsIT09YTspe3ZhciBkPWEuYWx0ZXJuYXRlOyhhLmNoaWxkTGFuZXMmYikhPT1iPyhhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWQmJihkLmNoaWxkTGFuZXN8PWIpKTpudWxsIT09ZCYmKGQuY2hpbGRMYW5lcyZiKSE9PWImJihkLmNoaWxkTGFuZXN8PWIpO2lmKGE9PT1jKWJyZWFrO2E9YS5yZXR1cm59fVxuZnVuY3Rpb24gY2goYSxiKXtYZz1hO1pnPVlnPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoMCE9PShhLmxhbmVzJmIpJiYoZGg9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIGVoKGEpe3ZhciBiPWEuX2N1cnJlbnRWYWx1ZTtpZihaZyE9PWEpaWYoYT17Y29udGV4dDphLG1lbW9pemVkVmFsdWU6YixuZXh0Om51bGx9LG51bGw9PT1ZZyl7aWYobnVsbD09PVhnKXRocm93IEVycm9yKHAoMzA4KSk7WWc9YTtYZy5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmF9fWVsc2UgWWc9WWcubmV4dD1hO3JldHVybiBifXZhciBmaD1udWxsO2Z1bmN0aW9uIGdoKGEpe251bGw9PT1maD9maD1bYV06ZmgucHVzaChhKX1cbmZ1bmN0aW9uIGhoKGEsYixjLGQpe3ZhciBlPWIuaW50ZXJsZWF2ZWQ7bnVsbD09PWU/KGMubmV4dD1jLGdoKGIpKTooYy5uZXh0PWUubmV4dCxlLm5leHQ9Yyk7Yi5pbnRlcmxlYXZlZD1jO3JldHVybiBpaChhLGQpfWZ1bmN0aW9uIGloKGEsYil7YS5sYW5lc3w9Yjt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmKGMubGFuZXN8PWIpO2M9YTtmb3IoYT1hLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD1iLGM9YS5hbHRlcm5hdGUsbnVsbCE9PWMmJihjLmNoaWxkTGFuZXN8PWIpLGM9YSxhPWEucmV0dXJuO3JldHVybiAzPT09Yy50YWc/Yy5zdGF0ZU5vZGU6bnVsbH12YXIgamg9ITE7ZnVuY3Rpb24ga2goYSl7YS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1cbmZ1bmN0aW9uIGxoKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIG1oKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fVxuZnVuY3Rpb24gbmgoYSxiLGMpe3ZhciBkPWEudXBkYXRlUXVldWU7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7ZD1kLnNoYXJlZDtpZigwIT09KEsmMikpe3ZhciBlPWQucGVuZGluZztudWxsPT09ZT9iLm5leHQ9YjooYi5uZXh0PWUubmV4dCxlLm5leHQ9Yik7ZC5wZW5kaW5nPWI7cmV0dXJuIGloKGEsYyl9ZT1kLmludGVybGVhdmVkO251bGw9PT1lPyhiLm5leHQ9YixnaChkKSk6KGIubmV4dD1lLm5leHQsZS5uZXh0PWIpO2QuaW50ZXJsZWF2ZWQ9YjtyZXR1cm4gaWgoYSxjKX1mdW5jdGlvbiBvaChhLGIsYyl7Yj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iJiYoYj1iLnNoYXJlZCwwIT09KGMmNDE5NDI0MCkpKXt2YXIgZD1iLmxhbmVzO2QmPWEucGVuZGluZ0xhbmVzO2N8PWQ7Yi5sYW5lcz1jO0NjKGEsYyl9fVxuZnVuY3Rpb24gcGgoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJihkPWQudXBkYXRlUXVldWUsYz09PWQpKXt2YXIgZT1udWxsLGY9bnVsbDtjPWMuZmlyc3RCYXNlVXBkYXRlO2lmKG51bGwhPT1jKXtkb3t2YXIgZz17ZXZlbnRUaW1lOmMuZXZlbnRUaW1lLGxhbmU6Yy5sYW5lLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpjLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/ZT1mPWc6Zj1mLm5leHQ9ZztjPWMubmV4dH13aGlsZShudWxsIT09Yyk7bnVsbD09PWY/ZT1mPWI6Zj1mLm5leHQ9Yn1lbHNlIGU9Zj1iO2M9e2Jhc2VTdGF0ZTpkLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZSxsYXN0QmFzZVVwZGF0ZTpmLHNoYXJlZDpkLnNoYXJlZCxlZmZlY3RzOmQuZWZmZWN0c307YS51cGRhdGVRdWV1ZT1jO3JldHVybn1hPWMubGFzdEJhc2VVcGRhdGU7bnVsbD09PWE/Yy5maXJzdEJhc2VVcGRhdGU9YjphLm5leHQ9XG5iO2MubGFzdEJhc2VVcGRhdGU9Yn1cbmZ1bmN0aW9uIHFoKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7amg9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGw7bnVsbD09PWc/Zj1sOmcubmV4dD1sO2c9azt2YXIgbT1hLmFsdGVybmF0ZTtudWxsIT09bSYmKG09bS51cGRhdGVRdWV1ZSxoPW0ubGFzdEJhc2VVcGRhdGUsaCE9PWcmJihudWxsPT09aD9tLmZpcnN0QmFzZVVwZGF0ZT1sOmgubmV4dD1sLG0ubGFzdEJhc2VVcGRhdGU9aykpfWlmKG51bGwhPT1mKXt2YXIgcT1lLmJhc2VTdGF0ZTtnPTA7bT1sPWs9bnVsbDtoPWY7ZG97dmFyIHI9aC5sYW5lLHk9aC5ldmVudFRpbWU7aWYoKGQmcik9PT1yKXtudWxsIT09bSYmKG09bS5uZXh0PXtldmVudFRpbWU6eSxsYW5lOjAsdGFnOmgudGFnLHBheWxvYWQ6aC5wYXlsb2FkLGNhbGxiYWNrOmguY2FsbGJhY2ssXG5uZXh0Om51bGx9KTthOnt2YXIgbj1hLHQ9aDtyPWI7eT1jO3N3aXRjaCh0LnRhZyl7Y2FzZSAxOm49dC5wYXlsb2FkO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuKXtxPW4uY2FsbCh5LHEscik7YnJlYWsgYX1xPW47YnJlYWsgYTtjYXNlIDM6bi5mbGFncz1uLmZsYWdzJi02NTUzN3wxMjg7Y2FzZSAwOm49dC5wYXlsb2FkO3I9XCJmdW5jdGlvblwiPT09dHlwZW9mIG4/bi5jYWxsKHkscSxyKTpuO2lmKG51bGw9PT1yfHx2b2lkIDA9PT1yKWJyZWFrIGE7cT1BKHt9LHEscik7YnJlYWsgYTtjYXNlIDI6amg9ITB9fW51bGwhPT1oLmNhbGxiYWNrJiYwIT09aC5sYW5lJiYoYS5mbGFnc3w9NjQscj1lLmVmZmVjdHMsbnVsbD09PXI/ZS5lZmZlY3RzPVtoXTpyLnB1c2goaCkpfWVsc2UgeT17ZXZlbnRUaW1lOnksbGFuZTpyLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW0/KGw9bT15LGs9cSk6bT1tLm5leHQ9eSxnfD1yO1xuaD1oLm5leHQ7aWYobnVsbD09PWgpaWYoaD1lLnNoYXJlZC5wZW5kaW5nLG51bGw9PT1oKWJyZWFrO2Vsc2Ugcj1oLGg9ci5uZXh0LHIubmV4dD1udWxsLGUubGFzdEJhc2VVcGRhdGU9cixlLnNoYXJlZC5wZW5kaW5nPW51bGx9d2hpbGUoMSk7bnVsbD09PW0mJihrPXEpO2UuYmFzZVN0YXRlPWs7ZS5maXJzdEJhc2VVcGRhdGU9bDtlLmxhc3RCYXNlVXBkYXRlPW07Yj1lLnNoYXJlZC5pbnRlcmxlYXZlZDtpZihudWxsIT09Yil7ZT1iO2RvIGd8PWUubGFuZSxlPWUubmV4dDt3aGlsZShlIT09Yil9ZWxzZSBudWxsPT09ZiYmKGUuc2hhcmVkLmxhbmVzPTApO3JofD1nO2EubGFuZXM9ZzthLm1lbW9pemVkU3RhdGU9cX19XG5mdW5jdGlvbiBzaChhLGIsYyl7YT1iLmVmZmVjdHM7Yi5lZmZlY3RzPW51bGw7aWYobnVsbCE9PWEpZm9yKGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGQ9YVtiXSxlPWQuY2FsbGJhY2s7aWYobnVsbCE9PWUpe2QuY2FsbGJhY2s9bnVsbDtkPWM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpdGhyb3cgRXJyb3IocCgxOTEsZSkpO2UuY2FsbChkKX19fXZhciB0aD17fSx1aD1VZih0aCksdmg9VWYodGgpLHdoPVVmKHRoKTtmdW5jdGlvbiB4aChhKXtpZihhPT09dGgpdGhyb3cgRXJyb3IocCgxNzQpKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHloKGEsYil7Ryh3aCxiKTtHKHZoLGEpO0codWgsdGgpO2E9Yi5ub2RlVHlwZTtzd2l0Y2goYSl7Y2FzZSA5OmNhc2UgMTE6Yj0oYj1iLmRvY3VtZW50RWxlbWVudCk/Yi5uYW1lc3BhY2VVUkk6bGIobnVsbCxcIlwiKTticmVhaztkZWZhdWx0OmE9OD09PWE/Yi5wYXJlbnROb2RlOmIsYj1hLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPWxiKGIsYSl9RSh1aCk7Ryh1aCxiKX1mdW5jdGlvbiB6aCgpe0UodWgpO0UodmgpO0Uod2gpfWZ1bmN0aW9uIEFoKGEpe3hoKHdoLmN1cnJlbnQpO3ZhciBiPXhoKHVoLmN1cnJlbnQpO3ZhciBjPWxiKGIsYS50eXBlKTtiIT09YyYmKEcodmgsYSksRyh1aCxjKSl9ZnVuY3Rpb24gQmgoYSl7dmguY3VycmVudD09PWEmJihFKHVoKSxFKHZoKSl9dmFyIEw9VWYoMCk7XG5mdW5jdGlvbiBDaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGw9PT1jfHxcIiQ/XCI9PT1jLmRhdGF8fFwiJCFcIj09PWMuZGF0YSkpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5mbGFncyYxMjgpKXJldHVybiBifWVsc2UgaWYobnVsbCE9PWIuY2hpbGQpe2IuY2hpbGQucmV0dXJuPWI7Yj1iLmNoaWxkO2NvbnRpbnVlfWlmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiBudWxsO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ31yZXR1cm4gbnVsbH12YXIgRGg9W107XG5mdW5jdGlvbiBFaCgpe2Zvcih2YXIgYT0wO2E8RGgubGVuZ3RoO2ErKylEaFthXS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1udWxsO0RoLmxlbmd0aD0wfXZhciBGaD11YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLEdoPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLEhoPTAsTT1udWxsLE49bnVsbCxPPW51bGwsSWg9ITEsSmg9ITEsS2g9MCxMaD0wO2Z1bmN0aW9uIFAoKXt0aHJvdyBFcnJvcihwKDMyMSkpO31mdW5jdGlvbiBNaChhLGIpe2lmKG51bGw9PT1iKXJldHVybiExO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgmJmM8YS5sZW5ndGg7YysrKWlmKCFIZShhW2NdLGJbY10pKXJldHVybiExO3JldHVybiEwfVxuZnVuY3Rpb24gTmgoYSxiLGMsZCxlLGYpe0hoPWY7TT1iO2IubWVtb2l6ZWRTdGF0ZT1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtiLmxhbmVzPTA7RmguY3VycmVudD1udWxsPT09YXx8bnVsbD09PWEubWVtb2l6ZWRTdGF0ZT9PaDpQaDthPWMoZCxlKTtpZihKaCl7Zj0wO2Rve0poPSExO0toPTA7aWYoMjU8PWYpdGhyb3cgRXJyb3IocCgzMDEpKTtmKz0xO089Tj1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtGaC5jdXJyZW50PVFoO2E9YyhkLGUpfXdoaWxlKEpoKX1GaC5jdXJyZW50PVJoO2I9bnVsbCE9PU4mJm51bGwhPT1OLm5leHQ7SGg9MDtPPU49TT1udWxsO0loPSExO2lmKGIpdGhyb3cgRXJyb3IocCgzMDApKTtyZXR1cm4gYX1mdW5jdGlvbiBTaCgpe3ZhciBhPTAhPT1LaDtLaD0wO3JldHVybiBhfVxuZnVuY3Rpb24gVGgoKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtudWxsPT09Tz9NLm1lbW9pemVkU3RhdGU9Tz1hOk89Ty5uZXh0PWE7cmV0dXJuIE99ZnVuY3Rpb24gVWgoKXtpZihudWxsPT09Til7dmFyIGE9TS5hbHRlcm5hdGU7YT1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGE9Ti5uZXh0O3ZhciBiPW51bGw9PT1PP00ubWVtb2l6ZWRTdGF0ZTpPLm5leHQ7aWYobnVsbCE9PWIpTz1iLE49YTtlbHNle2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzEwKSk7Tj1hO2E9e21lbW9pemVkU3RhdGU6Ti5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpOLmJhc2VTdGF0ZSxiYXNlUXVldWU6Ti5iYXNlUXVldWUscXVldWU6Ti5xdWV1ZSxuZXh0Om51bGx9O251bGw9PT1PP00ubWVtb2l6ZWRTdGF0ZT1PPWE6Tz1PLm5leHQ9YX1yZXR1cm4gT31cbmZ1bmN0aW9uIFZoKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gV2goYSl7dmFyIGI9VWgoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IocCgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1OLGU9ZC5iYXNlUXVldWUsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe2lmKG51bGwhPT1lKXt2YXIgZz1lLm5leHQ7ZS5uZXh0PWYubmV4dDtmLm5leHQ9Z31kLmJhc2VRdWV1ZT1lPWY7Yy5wZW5kaW5nPW51bGx9aWYobnVsbCE9PWUpe2Y9ZS5uZXh0O2Q9ZC5iYXNlU3RhdGU7dmFyIGg9Zz1udWxsLGs9bnVsbCxsPWY7ZG97dmFyIG09bC5sYW5lO2lmKChIaCZtKT09PW0pbnVsbCE9PWsmJihrPWsubmV4dD17bGFuZTowLGFjdGlvbjpsLmFjdGlvbixoYXNFYWdlclN0YXRlOmwuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmwuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxkPWwuaGFzRWFnZXJTdGF0ZT9sLmVhZ2VyU3RhdGU6YShkLGwuYWN0aW9uKTtlbHNle3ZhciBxPXtsYW5lOm0sYWN0aW9uOmwuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bC5oYXNFYWdlclN0YXRlLFxuZWFnZXJTdGF0ZTpsLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09az8oaD1rPXEsZz1kKTprPWsubmV4dD1xO00ubGFuZXN8PW07cmh8PW19bD1sLm5leHR9d2hpbGUobnVsbCE9PWwmJmwhPT1mKTtudWxsPT09az9nPWQ6ay5uZXh0PWg7SGUoZCxiLm1lbW9pemVkU3RhdGUpfHwoZGg9ITApO2IubWVtb2l6ZWRTdGF0ZT1kO2IuYmFzZVN0YXRlPWc7Yi5iYXNlUXVldWU9aztjLmxhc3RSZW5kZXJlZFN0YXRlPWR9YT1jLmludGVybGVhdmVkO2lmKG51bGwhPT1hKXtlPWE7ZG8gZj1lLmxhbmUsTS5sYW5lc3w9ZixyaHw9ZixlPWUubmV4dDt3aGlsZShlIT09YSl9ZWxzZSBudWxsPT09ZSYmKGMubGFuZXM9MCk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIFhoKGEpe3ZhciBiPVVoKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHAoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9Yy5kaXNwYXRjaCxlPWMucGVuZGluZyxmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSl7Yy5wZW5kaW5nPW51bGw7dmFyIGc9ZT1lLm5leHQ7ZG8gZj1hKGYsZy5hY3Rpb24pLGc9Zy5uZXh0O3doaWxlKGchPT1lKTtIZShmLGIubWVtb2l6ZWRTdGF0ZSl8fChkaD0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7bnVsbD09PWIuYmFzZVF1ZXVlJiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltmLGRdfWZ1bmN0aW9uIFloKCl7fVxuZnVuY3Rpb24gWmgoYSxiKXt2YXIgYz1NLGQ9VWgoKSxlPWIoKSxmPSFIZShkLm1lbW9pemVkU3RhdGUsZSk7ZiYmKGQubWVtb2l6ZWRTdGF0ZT1lLGRoPSEwKTtkPWQucXVldWU7JGgoYWkuYmluZChudWxsLGMsZCxhKSxbYV0pO2lmKGQuZ2V0U25hcHNob3QhPT1ifHxmfHxudWxsIT09TyYmTy5tZW1vaXplZFN0YXRlLnRhZyYxKXtjLmZsYWdzfD0yMDQ4O2JpKDksY2kuYmluZChudWxsLGMsZCxlLGIpLHZvaWQgMCxudWxsKTtpZihudWxsPT09USl0aHJvdyBFcnJvcihwKDM0OSkpOzAhPT0oSGgmMzApfHxkaShjLGIsZSl9cmV0dXJuIGV9ZnVuY3Rpb24gZGkoYSxiLGMpe2EuZmxhZ3N8PTE2Mzg0O2E9e2dldFNuYXBzaG90OmIsdmFsdWU6Y307Yj1NLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE0udXBkYXRlUXVldWU9YixiLnN0b3Jlcz1bYV0pOihjPWIuc3RvcmVzLG51bGw9PT1jP2Iuc3RvcmVzPVthXTpjLnB1c2goYSkpfVxuZnVuY3Rpb24gY2koYSxiLGMsZCl7Yi52YWx1ZT1jO2IuZ2V0U25hcHNob3Q9ZDtlaShiKSYmZmkoYSl9ZnVuY3Rpb24gYWkoYSxiLGMpe3JldHVybiBjKGZ1bmN0aW9uKCl7ZWkoYikmJmZpKGEpfSl9ZnVuY3Rpb24gZWkoYSl7dmFyIGI9YS5nZXRTbmFwc2hvdDthPWEudmFsdWU7dHJ5e3ZhciBjPWIoKTtyZXR1cm4hSGUoYSxjKX1jYXRjaChkKXtyZXR1cm4hMH19ZnVuY3Rpb24gZmkoYSl7dmFyIGI9aWgoYSwxKTtudWxsIT09YiYmZ2koYixhLDEsLTEpfVxuZnVuY3Rpb24gaGkoYSl7dmFyIGI9VGgoKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpWaCxsYXN0UmVuZGVyZWRTdGF0ZTphfTtiLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPWlpLmJpbmQobnVsbCxNLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19XG5mdW5jdGlvbiBiaShhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07Yj1NLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE0udXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihjPWIubGFzdEVmZmVjdCxudWxsPT09Yz9iLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGQ9Yy5uZXh0LGMubmV4dD1hLGEubmV4dD1kLGIubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gamkoKXtyZXR1cm4gVWgoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGtpKGEsYixjLGQpe3ZhciBlPVRoKCk7TS5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9YmkoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1cbmZ1bmN0aW9uIGxpKGEsYixjLGQpe3ZhciBlPVVoKCk7ZD12b2lkIDA9PT1kP251bGw6ZDt2YXIgZj12b2lkIDA7aWYobnVsbCE9PU4pe3ZhciBnPU4ubWVtb2l6ZWRTdGF0ZTtmPWcuZGVzdHJveTtpZihudWxsIT09ZCYmTWgoZCxnLmRlcHMpKXtlLm1lbW9pemVkU3RhdGU9YmkoYixjLGYsZCk7cmV0dXJufX1NLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1iaSgxfGIsYyxmLGQpfWZ1bmN0aW9uIG1pKGEsYil7cmV0dXJuIGtpKDgzOTA2NTYsOCxhLGIpfWZ1bmN0aW9uICRoKGEsYil7cmV0dXJuIGxpKDIwNDgsOCxhLGIpfWZ1bmN0aW9uIG5pKGEsYil7cmV0dXJuIGxpKDQsMixhLGIpfWZ1bmN0aW9uIG9pKGEsYil7cmV0dXJuIGxpKDQsNCxhLGIpfVxuZnVuY3Rpb24gcGkoYSxiKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYT1hKCksYihhKSxmdW5jdGlvbigpe2IobnVsbCl9O2lmKG51bGwhPT1iJiZ2b2lkIDAhPT1iKXJldHVybiBhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfX1mdW5jdGlvbiBxaShhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIGxpKDQsNCxwaS5iaW5kKG51bGwsYixhKSxjKX1mdW5jdGlvbiByaSgpe31mdW5jdGlvbiBzaShhLGIpe3ZhciBjPVVoKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZNaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHRpKGEsYil7dmFyIGM9VWgoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJk1oKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfWZ1bmN0aW9uIHVpKGEsYixjKXtpZigwPT09KEhoJjIxKSlyZXR1cm4gYS5iYXNlU3RhdGUmJihhLmJhc2VTdGF0ZT0hMSxkaD0hMCksYS5tZW1vaXplZFN0YXRlPWM7SGUoYyxiKXx8KGM9eWMoKSxNLmxhbmVzfD1jLHJofD1jLGEuYmFzZVN0YXRlPSEwKTtyZXR1cm4gYn1mdW5jdGlvbiB2aShhLGIpe3ZhciBjPUM7Qz0wIT09YyYmND5jP2M6NDthKCEwKTt2YXIgZD1HaC50cmFuc2l0aW9uO0doLnRyYW5zaXRpb249e307dHJ5e2EoITEpLGIoKX1maW5hbGx5e0M9YyxHaC50cmFuc2l0aW9uPWR9fWZ1bmN0aW9uIHdpKCl7cmV0dXJuIFVoKCkubWVtb2l6ZWRTdGF0ZX1cbmZ1bmN0aW9uIHhpKGEsYixjKXt2YXIgZD15aShhKTtjPXtsYW5lOmQsYWN0aW9uOmMsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZih6aShhKSlBaShiLGMpO2Vsc2UgaWYoYz1oaChhLGIsYyxkKSxudWxsIT09Yyl7dmFyIGU9UigpO2dpKGMsYSxkLGUpO0JpKGMsYixkKX19XG5mdW5jdGlvbiBpaShhLGIsYyl7dmFyIGQ9eWkoYSksZT17bGFuZTpkLGFjdGlvbjpjLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoemkoYSkpQWkoYixlKTtlbHNle3ZhciBmPWEuYWx0ZXJuYXRlO2lmKDA9PT1hLmxhbmVzJiYobnVsbD09PWZ8fDA9PT1mLmxhbmVzKSYmKGY9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyLG51bGwhPT1mKSl0cnl7dmFyIGc9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxoPWYoZyxjKTtlLmhhc0VhZ2VyU3RhdGU9ITA7ZS5lYWdlclN0YXRlPWg7aWYoSGUoaCxnKSl7dmFyIGs9Yi5pbnRlcmxlYXZlZDtudWxsPT09az8oZS5uZXh0PWUsZ2goYikpOihlLm5leHQ9ay5uZXh0LGsubmV4dD1lKTtiLmludGVybGVhdmVkPWU7cmV0dXJufX1jYXRjaChsKXt9ZmluYWxseXt9Yz1oaChhLGIsZSxkKTtudWxsIT09YyYmKGU9UigpLGdpKGMsYSxkLGUpLEJpKGMsYixkKSl9fVxuZnVuY3Rpb24gemkoYSl7dmFyIGI9YS5hbHRlcm5hdGU7cmV0dXJuIGE9PT1NfHxudWxsIT09YiYmYj09PU19ZnVuY3Rpb24gQWkoYSxiKXtKaD1JaD0hMDt2YXIgYz1hLnBlbmRpbmc7bnVsbD09PWM/Yi5uZXh0PWI6KGIubmV4dD1jLm5leHQsYy5uZXh0PWIpO2EucGVuZGluZz1ifWZ1bmN0aW9uIEJpKGEsYixjKXtpZigwIT09KGMmNDE5NDI0MCkpe3ZhciBkPWIubGFuZXM7ZCY9YS5wZW5kaW5nTGFuZXM7Y3w9ZDtiLmxhbmVzPWM7Q2MoYSxjKX19XG52YXIgUmg9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOlAsdXNlQ29udGV4dDpQLHVzZUVmZmVjdDpQLHVzZUltcGVyYXRpdmVIYW5kbGU6UCx1c2VJbnNlcnRpb25FZmZlY3Q6UCx1c2VMYXlvdXRFZmZlY3Q6UCx1c2VNZW1vOlAsdXNlUmVkdWNlcjpQLHVzZVJlZjpQLHVzZVN0YXRlOlAsdXNlRGVidWdWYWx1ZTpQLHVzZURlZmVycmVkVmFsdWU6UCx1c2VUcmFuc2l0aW9uOlAsdXNlTXV0YWJsZVNvdXJjZTpQLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlAsdXNlSWQ6UCx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LE9oPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpmdW5jdGlvbihhLGIpe1RoKCkubWVtb2l6ZWRTdGF0ZT1bYSx2b2lkIDA9PT1iP251bGw6Yl07cmV0dXJuIGF9LHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0Om1pLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBraSg0MTk0MzA4LFxuNCxwaS5iaW5kKG51bGwsYixhKSxjKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGtpKDQxOTQzMDgsNCxhLGIpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4ga2koNCwyLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1UaCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1UaCgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTtkLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPXhpLmJpbmQobnVsbCxNLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXt2YXIgYj1cblRoKCk7YT17Y3VycmVudDphfTtyZXR1cm4gYi5tZW1vaXplZFN0YXRlPWF9LHVzZVN0YXRlOmhpLHVzZURlYnVnVmFsdWU6cmksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gVGgoKS5tZW1vaXplZFN0YXRlPWF9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1oaSghMSksYj1hWzBdO2E9dmkuYmluZChudWxsLGFbMV0pO1RoKCkubWVtb2l6ZWRTdGF0ZT1hO3JldHVybltiLGFdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9TSxlPVRoKCk7aWYoSSl7aWYodm9pZCAwPT09Yyl0aHJvdyBFcnJvcihwKDQwNykpO2M9YygpfWVsc2V7Yz1iKCk7aWYobnVsbD09PVEpdGhyb3cgRXJyb3IocCgzNDkpKTswIT09KEhoJjMwKXx8ZGkoZCxiLGMpfWUubWVtb2l6ZWRTdGF0ZT1jO3ZhciBmPXt2YWx1ZTpjLGdldFNuYXBzaG90OmJ9O2UucXVldWU9ZjttaShhaS5iaW5kKG51bGwsZCxcbmYsYSksW2FdKTtkLmZsYWdzfD0yMDQ4O2JpKDksY2kuYmluZChudWxsLGQsZixjLGIpLHZvaWQgMCxudWxsKTtyZXR1cm4gY30sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgYT1UaCgpLGI9US5pZGVudGlmaWVyUHJlZml4O2lmKEkpe3ZhciBjPXNnO3ZhciBkPXJnO2M9KGQmfigxPDwzMi1vYyhkKS0xKSkudG9TdHJpbmcoMzIpK2M7Yj1cIjpcIitiK1wiUlwiK2M7Yz1LaCsrOzA8YyYmKGIrPVwiSFwiK2MudG9TdHJpbmcoMzIpKTtiKz1cIjpcIn1lbHNlIGM9TGgrKyxiPVwiOlwiK2IrXCJyXCIrYy50b1N0cmluZygzMikrXCI6XCI7cmV0dXJuIGEubWVtb2l6ZWRTdGF0ZT1ifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFBoPXtyZWFkQ29udGV4dDplaCx1c2VDYWxsYmFjazpzaSx1c2VDb250ZXh0OmVoLHVzZUVmZmVjdDokaCx1c2VJbXBlcmF0aXZlSGFuZGxlOnFpLHVzZUluc2VydGlvbkVmZmVjdDpuaSx1c2VMYXlvdXRFZmZlY3Q6b2ksdXNlTWVtbzp0aSx1c2VSZWR1Y2VyOldoLHVzZVJlZjpqaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBXaChWaCl9LFxudXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPVVoKCk7cmV0dXJuIHVpKGIsTi5tZW1vaXplZFN0YXRlLGEpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9V2goVmgpWzBdLGI9VWgoKS5tZW1vaXplZFN0YXRlO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOlloLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlpoLHVzZUlkOndpLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sUWg9e3JlYWRDb250ZXh0OmVoLHVzZUNhbGxiYWNrOnNpLHVzZUNvbnRleHQ6ZWgsdXNlRWZmZWN0OiRoLHVzZUltcGVyYXRpdmVIYW5kbGU6cWksdXNlSW5zZXJ0aW9uRWZmZWN0Om5pLHVzZUxheW91dEVmZmVjdDpvaSx1c2VNZW1vOnRpLHVzZVJlZHVjZXI6WGgsdXNlUmVmOmppLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFhoKFZoKX0sdXNlRGVidWdWYWx1ZTpyaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPVVoKCk7cmV0dXJuIG51bGw9PT1cbk4/Yi5tZW1vaXplZFN0YXRlPWE6dWkoYixOLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1YaChWaClbMF0sYj1VaCgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW2EsYl19LHVzZU11dGFibGVTb3VyY2U6WWgsdXNlU3luY0V4dGVybmFsU3RvcmU6WmgsdXNlSWQ6d2ksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBDaShhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPUEoe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKTtyZXR1cm4gYn1yZXR1cm4gYn1mdW5jdGlvbiBEaShhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6QSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jOzA9PT1hLmxhbmVzJiYoYS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9Yyl9XG52YXIgRWk9e2lzTW91bnRlZDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLl9yZWFjdEludGVybmFscyk/VmIoYSk9PT1hOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9UigpLGU9eWkoYSksZj1taChkLGUpO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtiPW5oKGEsZixlKTtudWxsIT09YiYmKGdpKGIsYSxlLGQpLG9oKGIsYSxlKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9UigpLGU9eWkoYSksZj1taChkLGUpO2YudGFnPTE7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO2I9bmgoYSxmLGUpO251bGwhPT1iJiYoZ2koYixhLGUsZCksb2goYixhLGUpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1SKCksZD1cbnlpKGEpLGU9bWgoYyxkKTtlLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZS5jYWxsYmFjaz1iKTtiPW5oKGEsZSxkKTtudWxsIT09YiYmKGdpKGIsYSxkLGMpLG9oKGIsYSxkKSl9fTtmdW5jdGlvbiBGaShhLGIsYyxkLGUsZixnKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsZyk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFJZShjLGQpfHwhSWUoZSxmKTohMH1cbmZ1bmN0aW9uIEdpKGEsYixjKXt2YXIgZD0hMSxlPVZmO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPWVoKGYpOihlPVpmKGIpP1hmOkguY3VycmVudCxkPWIuY29udGV4dFR5cGVzLGY9KGQ9bnVsbCE9PWQmJnZvaWQgMCE9PWQpP1lmKGEsZSk6VmYpO2I9bmV3IGIoYyxmKTthLm1lbW9pemVkU3RhdGU9bnVsbCE9PWIuc3RhdGUmJnZvaWQgMCE9PWIuc3RhdGU/Yi5zdGF0ZTpudWxsO2IudXBkYXRlcj1FaTthLnN0YXRlTm9kZT1iO2IuX3JlYWN0SW50ZXJuYWxzPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEhpKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZFaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIElpKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9e307a2goYSk7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD1laChmKTooZj1aZihiKT9YZjpILmN1cnJlbnQsZS5jb250ZXh0PVlmKGEsZikpO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2Y9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJihEaShhLGIsZixjKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHwoYj1lLnN0YXRlLFxuXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGIhPT1lLnN0YXRlJiZFaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKSxxaChhLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50RGlkTW91bnQmJihhLmZsYWdzfD00MTk0MzA4KX1mdW5jdGlvbiBKaShhLGIpe3RyeXt2YXIgYz1cIlwiLGQ9YjtkbyBjKz1QYShkKSxkPWQucmV0dXJuO3doaWxlKGQpO3ZhciBlPWN9Y2F0Y2goZil7ZT1cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2YubWVzc2FnZStcIlxcblwiK2Yuc3RhY2t9cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6ZSxkaWdlc3Q6bnVsbH19XG5mdW5jdGlvbiBLaShhLGIsYyl7cmV0dXJue3ZhbHVlOmEsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9Yz9jOm51bGwsZGlnZXN0Om51bGwhPWI/YjpudWxsfX1mdW5jdGlvbiBMaShhLGIpe3RyeXtjb25zb2xlLmVycm9yKGIudmFsdWUpfWNhdGNoKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBjO30pfX12YXIgTWk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gTmkoYSxiLGMpe2M9bWgoLTEsYyk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7T2l8fChPaT0hMCxQaT1kKTtMaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIFFpKGEsYixjKXtjPW1oKC0xLGMpO2MudGFnPTM7dmFyIGQ9YS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGU9Yi52YWx1ZTtjLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZChlKX07Yy5jYWxsYmFjaz1mdW5jdGlvbigpe0xpKGEsYil9fXZhciBmPWEuc3RhdGVOb2RlO251bGwhPT1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtMaShhLGIpO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PVJpP1JpPW5ldyBTZXQoW3RoaXNdKTpSaS5hZGQodGhpcykpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOlwiXCJ9KX0pO3JldHVybiBjfVxuZnVuY3Rpb24gU2koYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO2lmKG51bGw9PT1kKXtkPWEucGluZ0NhY2hlPW5ldyBNaTt2YXIgZT1uZXcgU2V0O2Quc2V0KGIsZSl9ZWxzZSBlPWQuZ2V0KGIpLHZvaWQgMD09PWUmJihlPW5ldyBTZXQsZC5zZXQoYixlKSk7ZS5oYXMoYyl8fChlLmFkZChjKSxhPVRpLmJpbmQobnVsbCxhLGIsYyksYi50aGVuKGEsYSkpfWZ1bmN0aW9uIFVpKGEpe2Rve3ZhciBiO2lmKGI9MTM9PT1hLnRhZyliPWEubWVtb2l6ZWRTdGF0ZSxiPW51bGwhPT1iP251bGwhPT1iLmRlaHlkcmF0ZWQ/ITA6ITE6ITA7aWYoYilyZXR1cm4gYTthPWEucmV0dXJufXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFZpKGEsYixjLGQsZSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIGE9PT1iP2EuZmxhZ3N8PTY1NTM2OihhLmZsYWdzfD0xMjgsYy5mbGFnc3w9MTMxMDcyLGMuZmxhZ3MmPS01MjgwNSwxPT09Yy50YWcmJihudWxsPT09Yy5hbHRlcm5hdGU/Yy50YWc9MTc6KGI9bWgoLTEsMSksYi50YWc9MixuaChjLGIsMSkpKSxjLmxhbmVzfD0xKSxhO2EuZmxhZ3N8PTY1NTM2O2EubGFuZXM9ZTtyZXR1cm4gYX12YXIgV2k9dWEuUmVhY3RDdXJyZW50T3duZXIsZGg9ITE7ZnVuY3Rpb24gWGkoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT9WZyhiLG51bGwsYyxkKTpVZyhiLGEuY2hpbGQsYyxkKX1cbmZ1bmN0aW9uIFlpKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjtjaChiLGUpO2Q9TmgoYSxiLGMsZCxmLGUpO2M9U2goKTtpZihudWxsIT09YSYmIWRoKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsWmkoYSxiLGUpO0kmJmMmJnZnKGIpO2IuZmxhZ3N8PTE7WGkoYSxiLGQsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiAkaShhLGIsYyxkLGUpe2lmKG51bGw9PT1hKXt2YXIgZj1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJiFhaihmKSYmdm9pZCAwPT09Zi5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9ZixiaihhLGIsZixkLGUpO2E9UmcoYy50eXBlLG51bGwsZCxiLGIubW9kZSxlKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9Zj1hLmNoaWxkO2lmKDA9PT0oYS5sYW5lcyZlKSl7dmFyIGc9Zi5tZW1vaXplZFByb3BzO2M9Yy5jb21wYXJlO2M9bnVsbCE9PWM/YzpJZTtpZihjKGcsZCkmJmEucmVmPT09Yi5yZWYpcmV0dXJuIFppKGEsYixlKX1iLmZsYWdzfD0xO2E9UGcoZixkKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBiaihhLGIsYyxkLGUpe2lmKG51bGwhPT1hKXt2YXIgZj1hLm1lbW9pemVkUHJvcHM7aWYoSWUoZixkKSYmYS5yZWY9PT1iLnJlZilpZihkaD0hMSxiLnBlbmRpbmdQcm9wcz1kPWYsMCE9PShhLmxhbmVzJmUpKTAhPT0oYS5mbGFncyYxMzEwNzIpJiYoZGg9ITApO2Vsc2UgcmV0dXJuIGIubGFuZXM9YS5sYW5lcyxaaShhLGIsZSl9cmV0dXJuIGNqKGEsYixjLGQsZSl9XG5mdW5jdGlvbiBkaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1kLmNoaWxkcmVuLGY9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGw7aWYoXCJoaWRkZW5cIj09PWQubW9kZSlpZigwPT09KGIubW9kZSYxKSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LEcoZWosZmopLGZqfD1jO2Vsc2V7aWYoMD09PShjJjEwNzM3NDE4MjQpKXJldHVybiBhPW51bGwhPT1mP2YuYmFzZUxhbmVzfGM6YyxiLmxhbmVzPWIuY2hpbGRMYW5lcz0xMDczNzQxODI0LGIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sYi51cGRhdGVRdWV1ZT1udWxsLEcoZWosZmopLGZqfD1hLG51bGw7Yi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfTtkPW51bGwhPT1mP2YuYmFzZUxhbmVzOmM7Ryhlaixmaik7Zmp8PWR9ZWxzZSBudWxsIT09XG5mPyhkPWYuYmFzZUxhbmVzfGMsYi5tZW1vaXplZFN0YXRlPW51bGwpOmQ9YyxHKGVqLGZqKSxmanw9ZDtYaShhLGIsZSxjKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBnaihhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mn1mdW5jdGlvbiBjaihhLGIsYyxkLGUpe3ZhciBmPVpmKGMpP1hmOkguY3VycmVudDtmPVlmKGIsZik7Y2goYixlKTtjPU5oKGEsYixjLGQsZixlKTtkPVNoKCk7aWYobnVsbCE9PWEmJiFkaClyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS0yMDUzLGEubGFuZXMmPX5lLFppKGEsYixlKTtJJiZkJiZ2ZyhiKTtiLmZsYWdzfD0xO1hpKGEsYixjLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gaGooYSxiLGMsZCxlKXtpZihaZihjKSl7dmFyIGY9ITA7Y2coYil9ZWxzZSBmPSExO2NoKGIsZSk7aWYobnVsbD09PWIuc3RhdGVOb2RlKWlqKGEsYiksR2koYixjLGQpLElpKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGc9Yi5zdGF0ZU5vZGUsaD1iLm1lbW9pemVkUHJvcHM7Zy5wcm9wcz1oO3ZhciBrPWcuY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPWVoKGwpOihsPVpmKGMpP1hmOkguY3VycmVudCxsPVlmKGIsbCkpO3ZhciBtPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLHE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG18fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlO3F8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHxcbihoIT09ZHx8ayE9PWwpJiZIaShiLGcsZCxsKTtqaD0hMTt2YXIgcj1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1yO3FoKGIsZCxnLGUpO2s9Yi5tZW1vaXplZFN0YXRlO2ghPT1kfHxyIT09a3x8V2YuY3VycmVudHx8amg/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBtJiYoRGkoYixjLG0sZCksaz1iLm1lbW9pemVkU3RhdGUpLChoPWpofHxGaShiLGMsaCxkLHIsayxsKSk/KHF8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudHx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudCYmZy5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSk6XG4oXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9ayksZy5wcm9wcz1kLGcuc3RhdGU9ayxnLmNvbnRleHQ9bCxkPWgpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQxOTQzMDgpLGQ9ITEpfWVsc2V7Zz1iLnN0YXRlTm9kZTtsaChhLGIpO2g9Yi5tZW1vaXplZFByb3BzO2w9Yi50eXBlPT09Yi5lbGVtZW50VHlwZT9oOkNpKGIudHlwZSxoKTtnLnByb3BzPWw7cT1iLnBlbmRpbmdQcm9wcztyPWcuY29udGV4dDtrPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBrJiZudWxsIT09az9rPWVoKGspOihrPVpmKGMpP1hmOkguY3VycmVudCxrPVlmKGIsaykpO3ZhciB5PWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhtPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB5fHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09cXx8ciE9PWspJiZIaShiLGcsZCxrKTtqaD0hMTtyPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXI7cWgoYixkLGcsZSk7dmFyIG49Yi5tZW1vaXplZFN0YXRlO2ghPT1xfHxyIT09bnx8V2YuY3VycmVudHx8amg/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB5JiYoRGkoYixjLHksZCksbj1iLm1lbW9pemVkU3RhdGUpLChsPWpofHxGaShiLGMsbCxkLHIsbixrKXx8ITEpPyhtfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGUmJmcuY29tcG9uZW50V2lsbFVwZGF0ZShkLG4sayksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlxuZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShkLG4saykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZSYmKGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5mbGFnc3w9MTAyNCkpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTEwMjQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1uKSxnLnByb3BzPWQsZy5zdGF0ZT1uLGcuY29udGV4dD1rLGQ9bCk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PVxuYS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0xMDI0KSxkPSExKX1yZXR1cm4gamooYSxiLGMsZCxmLGUpfVxuZnVuY3Rpb24gamooYSxiLGMsZCxlLGYpe2dqKGEsYik7dmFyIGc9MCE9PShiLmZsYWdzJjEyOCk7aWYoIWQmJiFnKXJldHVybiBlJiZkZyhiLGMsITEpLFppKGEsYixmKTtkPWIuc3RhdGVOb2RlO1dpLmN1cnJlbnQ9Yjt2YXIgaD1nJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDpkLnJlbmRlcigpO2IuZmxhZ3N8PTE7bnVsbCE9PWEmJmc/KGIuY2hpbGQ9VWcoYixhLmNoaWxkLG51bGwsZiksYi5jaGlsZD1VZyhiLG51bGwsaCxmKSk6WGkoYSxiLGgsZik7Yi5tZW1vaXplZFN0YXRlPWQuc3RhdGU7ZSYmZGcoYixjLCEwKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBraihhKXt2YXIgYj1hLnN0YXRlTm9kZTtiLnBlbmRpbmdDb250ZXh0P2FnKGEsYi5wZW5kaW5nQ29udGV4dCxiLnBlbmRpbmdDb250ZXh0IT09Yi5jb250ZXh0KTpiLmNvbnRleHQmJmFnKGEsYi5jb250ZXh0LCExKTt5aChhLGIuY29udGFpbmVySW5mbyl9XG5mdW5jdGlvbiBsaihhLGIsYyxkLGUpe0lnKCk7SmcoZSk7Yi5mbGFnc3w9MjU2O1hpKGEsYixjLGQpO3JldHVybiBiLmNoaWxkfXZhciBtaj17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjB9O2Z1bmN0aW9uIG5qKGEpe3JldHVybntiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfX1cbmZ1bmN0aW9uIG9qKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPUwuY3VycmVudCxmPSExLGc9MCE9PShiLmZsYWdzJjEyOCksaDsoaD1nKXx8KGg9bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGU/ITE6MCE9PShlJjIpKTtpZihoKWY9ITAsYi5mbGFncyY9LTEyOTtlbHNlIGlmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlKWV8PTE7RyhMLGUmMSk7aWYobnVsbD09PWEpe0VnKGIpO2E9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiYoYT1hLmRlaHlkcmF0ZWQsbnVsbCE9PWEpKXJldHVybiAwPT09KGIubW9kZSYxKT9iLmxhbmVzPTE6XCIkIVwiPT09YS5kYXRhP2IubGFuZXM9ODpiLmxhbmVzPTEwNzM3NDE4MjQsbnVsbDtnPWQuY2hpbGRyZW47YT1kLmZhbGxiYWNrO3JldHVybiBmPyhkPWIubW9kZSxmPWIuY2hpbGQsZz17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmd9LDA9PT0oZCYxKSYmbnVsbCE9PWY/KGYuY2hpbGRMYW5lcz0wLGYucGVuZGluZ1Byb3BzPVxuZyk6Zj1waihnLGQsMCxudWxsKSxhPVRnKGEsZCxjLG51bGwpLGYucmV0dXJuPWIsYS5yZXR1cm49YixmLnNpYmxpbmc9YSxiLmNoaWxkPWYsYi5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKGMpLGIubWVtb2l6ZWRTdGF0ZT1taixhKTpxaihiLGcpfWU9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lJiYoaD1lLmRlaHlkcmF0ZWQsbnVsbCE9PWgpKXJldHVybiByaihhLGIsZyxkLGgsZSxjKTtpZihmKXtmPWQuZmFsbGJhY2s7Zz1iLm1vZGU7ZT1hLmNoaWxkO2g9ZS5zaWJsaW5nO3ZhciBrPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn07MD09PShnJjEpJiZiLmNoaWxkIT09ZT8oZD1iLmNoaWxkLGQuY2hpbGRMYW5lcz0wLGQucGVuZGluZ1Byb3BzPWssYi5kZWxldGlvbnM9bnVsbCk6KGQ9UGcoZSxrKSxkLnN1YnRyZWVGbGFncz1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCk7bnVsbCE9PWg/Zj1QZyhoLGYpOihmPVRnKGYsZyxjLG51bGwpLGYuZmxhZ3N8PTIpO2YucmV0dXJuPVxuYjtkLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDtkPWY7Zj1iLmNoaWxkO2c9YS5jaGlsZC5tZW1vaXplZFN0YXRlO2c9bnVsbD09PWc/bmooYyk6e2Jhc2VMYW5lczpnLmJhc2VMYW5lc3xjLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOmcudHJhbnNpdGlvbnN9O2YubWVtb2l6ZWRTdGF0ZT1nO2YuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMmfmM7Yi5tZW1vaXplZFN0YXRlPW1qO3JldHVybiBkfWY9YS5jaGlsZDthPWYuc2libGluZztkPVBnKGYse21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn0pOzA9PT0oYi5tb2RlJjEpJiYoZC5sYW5lcz1jKTtkLnJldHVybj1iO2Quc2libGluZz1udWxsO251bGwhPT1hJiYoYz1iLmRlbGV0aW9ucyxudWxsPT09Yz8oYi5kZWxldGlvbnM9W2FdLGIuZmxhZ3N8PTE2KTpjLnB1c2goYSkpO2IuY2hpbGQ9ZDtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gZH1cbmZ1bmN0aW9uIHFqKGEsYil7Yj1waih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpifSxhLm1vZGUsMCxudWxsKTtiLnJldHVybj1hO3JldHVybiBhLmNoaWxkPWJ9ZnVuY3Rpb24gc2ooYSxiLGMsZCl7bnVsbCE9PWQmJkpnKGQpO1VnKGIsYS5jaGlsZCxudWxsLGMpO2E9cWooYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbik7YS5mbGFnc3w9MjtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gYX1cbmZ1bmN0aW9uIHJqKGEsYixjLGQsZSxmLGcpe2lmKGMpe2lmKGIuZmxhZ3MmMjU2KXJldHVybiBiLmZsYWdzJj0tMjU3LGQ9S2koRXJyb3IocCg0MjIpKSksc2ooYSxiLGcsZCk7aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gYi5jaGlsZD1hLmNoaWxkLGIuZmxhZ3N8PTEyOCxudWxsO2Y9ZC5mYWxsYmFjaztlPWIubW9kZTtkPXBqKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmQuY2hpbGRyZW59LGUsMCxudWxsKTtmPVRnKGYsZSxnLG51bGwpO2YuZmxhZ3N8PTI7ZC5yZXR1cm49YjtmLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDswIT09KGIubW9kZSYxKSYmVWcoYixhLmNoaWxkLG51bGwsZyk7Yi5jaGlsZC5tZW1vaXplZFN0YXRlPW5qKGcpO2IubWVtb2l6ZWRTdGF0ZT1tajtyZXR1cm4gZn1pZigwPT09KGIubW9kZSYxKSlyZXR1cm4gc2ooYSxiLGcsbnVsbCk7aWYoXCIkIVwiPT09ZS5kYXRhKXtkPWUubmV4dFNpYmxpbmcmJmUubmV4dFNpYmxpbmcuZGF0YXNldDtcbmlmKGQpdmFyIGg9ZC5kZ3N0O2Q9aDtmPUVycm9yKHAoNDE5KSk7ZD1LaShmLGQsdm9pZCAwKTtyZXR1cm4gc2ooYSxiLGcsZCl9aD0wIT09KGcmYS5jaGlsZExhbmVzKTtpZihkaHx8aCl7ZD1RO2lmKG51bGwhPT1kKXtzd2l0Y2goZyYtZyl7Y2FzZSA0OmU9MjticmVhaztjYXNlIDE2OmU9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6ZT0zMjticmVhaztjYXNlIDUzNjg3MDkxMjplPTI2ODQzNTQ1NjticmVhaztkZWZhdWx0OmU9MH1lPTAhPT0oZSYoZC5zdXNwZW5kZWRMYW5lc3xnKSk/MDplO1xuMCE9PWUmJmUhPT1mLnJldHJ5TGFuZSYmKGYucmV0cnlMYW5lPWUsaWgoYSxlKSxnaShkLGEsZSwtMSkpfXRqKCk7ZD1LaShFcnJvcihwKDQyMSkpKTtyZXR1cm4gc2ooYSxiLGcsZCl9aWYoXCIkP1wiPT09ZS5kYXRhKXJldHVybiBiLmZsYWdzfD0xMjgsYi5jaGlsZD1hLmNoaWxkLGI9dWouYmluZChudWxsLGEpLGUuX3JlYWN0UmV0cnk9YixudWxsO2E9Zi50cmVlQ29udGV4dDt5Zz1MZihlLm5leHRTaWJsaW5nKTt4Zz1iO0k9ITA7emc9bnVsbDtudWxsIT09YSYmKG9nW3BnKytdPXJnLG9nW3BnKytdPXNnLG9nW3BnKytdPXFnLHJnPWEuaWQsc2c9YS5vdmVyZmxvdyxxZz1iKTtiPXFqKGIsZC5jaGlsZHJlbik7Yi5mbGFnc3w9NDA5NjtyZXR1cm4gYn1mdW5jdGlvbiB2aihhLGIsYyl7YS5sYW5lc3w9Yjt2YXIgZD1hLmFsdGVybmF0ZTtudWxsIT09ZCYmKGQubGFuZXN8PWIpO2JoKGEucmV0dXJuLGIsYyl9XG5mdW5jdGlvbiB3aihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplfTooZi5pc0JhY2t3YXJkcz1iLGYucmVuZGVyaW5nPW51bGwsZi5yZW5kZXJpbmdTdGFydFRpbWU9MCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxNb2RlPWUpfVxuZnVuY3Rpb24geGooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtYaShhLGIsZC5jaGlsZHJlbixjKTtkPUwuY3VycmVudDtpZigwIT09KGQmMikpZD1kJjF8MixiLmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmZsYWdzJjEyOCkpYTpmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7aWYoMTM9PT1hLnRhZyludWxsIT09YS5tZW1vaXplZFN0YXRlJiZ2aihhLGMsYik7ZWxzZSBpZigxOT09PWEudGFnKXZqKGEsYyxiKTtlbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPTF9RyhMLGQpO2lmKDA9PT0oYi5tb2RlJjEpKWIubWVtb2l6ZWRTdGF0ZT1cbm51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWE9Yy5hbHRlcm5hdGUsbnVsbCE9PWEmJm51bGw9PT1DaChhKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO3dqKGIsITEsZSxjLGYpO2JyZWFrO2Nhc2UgXCJiYWNrd2FyZHNcIjpjPW51bGw7ZT1iLmNoaWxkO2ZvcihiLmNoaWxkPW51bGw7bnVsbCE9PWU7KXthPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1hJiZudWxsPT09Q2goYSkpe2IuY2hpbGQ9ZTticmVha31hPWUuc2libGluZztlLnNpYmxpbmc9YztjPWU7ZT1hfXdqKGIsITAsYyxudWxsLGYpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOndqKGIsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGlqKGEsYil7MD09PShiLm1vZGUmMSkmJm51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpfWZ1bmN0aW9uIFppKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtyaHw9Yi5sYW5lcztpZigwPT09KGMmYi5jaGlsZExhbmVzKSlyZXR1cm4gbnVsbDtpZihudWxsIT09YSYmYi5jaGlsZCE9PWEuY2hpbGQpdGhyb3cgRXJyb3IocCgxNTMpKTtpZihudWxsIT09Yi5jaGlsZCl7YT1iLmNoaWxkO2M9UGcoYSxhLnBlbmRpbmdQcm9wcyk7Yi5jaGlsZD1jO2ZvcihjLnJldHVybj1iO251bGwhPT1hLnNpYmxpbmc7KWE9YS5zaWJsaW5nLGM9Yy5zaWJsaW5nPVBnKGEsYS5wZW5kaW5nUHJvcHMpLGMucmV0dXJuPWI7Yy5zaWJsaW5nPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiB5aihhLGIsYyl7c3dpdGNoKGIudGFnKXtjYXNlIDM6a2ooYik7SWcoKTticmVhaztjYXNlIDU6QWgoYik7YnJlYWs7Y2FzZSAxOlpmKGIudHlwZSkmJmNnKGIpO2JyZWFrO2Nhc2UgNDp5aChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6dmFyIGQ9Yi50eXBlLl9jb250ZXh0LGU9Yi5tZW1vaXplZFByb3BzLnZhbHVlO0coV2csZC5fY3VycmVudFZhbHVlKTtkLl9jdXJyZW50VmFsdWU9ZTticmVhaztjYXNlIDEzOmQ9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kKXtpZihudWxsIT09ZC5kZWh5ZHJhdGVkKXJldHVybiBHKEwsTC5jdXJyZW50JjEpLGIuZmxhZ3N8PTEyOCxudWxsO2lmKDAhPT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiBvaihhLGIsYyk7RyhMLEwuY3VycmVudCYxKTthPVppKGEsYixjKTtyZXR1cm4gbnVsbCE9PWE/YS5zaWJsaW5nOm51bGx9RyhMLEwuY3VycmVudCYxKTticmVhaztjYXNlIDE5OmQ9MCE9PShjJlxuYi5jaGlsZExhbmVzKTtpZigwIT09KGEuZmxhZ3MmMTI4KSl7aWYoZClyZXR1cm4geGooYSxiLGMpO2IuZmxhZ3N8PTEyOH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwsZS5sYXN0RWZmZWN0PW51bGwpO0coTCxMLmN1cnJlbnQpO2lmKGQpYnJlYWs7ZWxzZSByZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGIubGFuZXM9MCxkaihhLGIsYyl9cmV0dXJuIFppKGEsYixjKX12YXIgemosQWosQmosQ2o7XG56aj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX07QWo9ZnVuY3Rpb24oKXt9O1xuQmo9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5tZW1vaXplZFByb3BzO2lmKGUhPT1kKXthPWIuc3RhdGVOb2RlO3hoKHVoLmN1cnJlbnQpO3ZhciBmPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmU9WWEoYSxlKTtkPVlhKGEsZCk7Zj1bXTticmVhaztjYXNlIFwic2VsZWN0XCI6ZT1BKHt9LGUse3ZhbHVlOnZvaWQgMH0pO2Q9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtmPVtdO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmU9Z2IoYSxlKTtkPWdiKGEsZCk7Zj1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfXViKGMsZCk7dmFyIGc7Yz1udWxsO2ZvcihsIGluIGUpaWYoIWQuaGFzT3duUHJvcGVydHkobCkmJmUuaGFzT3duUHJvcGVydHkobCkmJm51bGwhPWVbbF0paWYoXCJzdHlsZVwiPT09bCl7dmFyIGg9ZVtsXTtmb3IoZyBpbiBoKWguaGFzT3duUHJvcGVydHkoZykmJlxuKGN8fChjPXt9KSxjW2ddPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1sJiZcImNoaWxkcmVuXCIhPT1sJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJlwiYXV0b0ZvY3VzXCIhPT1sJiYoZWEuaGFzT3duUHJvcGVydHkobCk/Znx8KGY9W10pOihmPWZ8fFtdKS5wdXNoKGwsbnVsbCkpO2ZvcihsIGluIGQpe3ZhciBrPWRbbF07aD1udWxsIT1lP2VbbF06dm9pZCAwO2lmKGQuaGFzT3duUHJvcGVydHkobCkmJmshPT1oJiYobnVsbCE9a3x8bnVsbCE9aCkpaWYoXCJzdHlsZVwiPT09bClpZihoKXtmb3IoZyBpbiBoKSFoLmhhc093blByb3BlcnR5KGcpfHxrJiZrLmhhc093blByb3BlcnR5KGcpfHwoY3x8KGM9e30pLGNbZ109XCJcIik7Zm9yKGcgaW4gaylrLmhhc093blByb3BlcnR5KGcpJiZoW2ddIT09a1tnXSYmKGN8fChjPXt9KSxjW2ddPWtbZ10pfWVsc2UgY3x8KGZ8fChmPVtdKSxmLnB1c2gobCxcbmMpKSxjPWs7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWw/KGs9az9rLl9faHRtbDp2b2lkIDAsaD1oP2guX19odG1sOnZvaWQgMCxudWxsIT1rJiZoIT09ayYmKGY9Znx8W10pLnB1c2gobCxrKSk6XCJjaGlsZHJlblwiPT09bD9cInN0cmluZ1wiIT09dHlwZW9mIGsmJlwibnVtYmVyXCIhPT10eXBlb2Yga3x8KGY9Znx8W10pLnB1c2gobCxcIlwiK2spOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmKGVhLmhhc093blByb3BlcnR5KGwpPyhudWxsIT1rJiZcIm9uU2Nyb2xsXCI9PT1sJiZEKFwic2Nyb2xsXCIsYSksZnx8aD09PWt8fChmPVtdKSk6KGY9Znx8W10pLnB1c2gobCxrKSl9YyYmKGY9Znx8W10pLnB1c2goXCJzdHlsZVwiLGMpO3ZhciBsPWY7aWYoYi51cGRhdGVRdWV1ZT1sKWIuZmxhZ3N8PTR9fTtDaj1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmKGIuZmxhZ3N8PTQpfTtcbmZ1bmN0aW9uIERqKGEsYil7aWYoIUkpc3dpdGNoKGEudGFpbE1vZGUpe2Nhc2UgXCJoaWRkZW5cIjpiPWEudGFpbDtmb3IodmFyIGM9bnVsbDtudWxsIT09YjspbnVsbCE9PWIuYWx0ZXJuYXRlJiYoYz1iKSxiPWIuc2libGluZztudWxsPT09Yz9hLnRhaWw9bnVsbDpjLnNpYmxpbmc9bnVsbDticmVhaztjYXNlIFwiY29sbGFwc2VkXCI6Yz1hLnRhaWw7Zm9yKHZhciBkPW51bGw7bnVsbCE9PWM7KW51bGwhPT1jLmFsdGVybmF0ZSYmKGQ9YyksYz1jLnNpYmxpbmc7bnVsbD09PWQ/Ynx8bnVsbD09PWEudGFpbD9hLnRhaWw9bnVsbDphLnRhaWwuc2libGluZz1udWxsOmQuc2libGluZz1udWxsfX1cbmZ1bmN0aW9uIFMoYSl7dmFyIGI9bnVsbCE9PWEuYWx0ZXJuYXRlJiZhLmFsdGVybmF0ZS5jaGlsZD09PWEuY2hpbGQsYz0wLGQ9MDtpZihiKWZvcih2YXIgZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCxkfD1lLmZsYWdzJjE0NjgwMDY0LGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7ZWxzZSBmb3IoZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyxkfD1lLmZsYWdzLGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7YS5zdWJ0cmVlRmxhZ3N8PWQ7YS5jaGlsZExhbmVzPWM7cmV0dXJuIGJ9XG5mdW5jdGlvbiBFaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHM7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gUyhiKSxudWxsO2Nhc2UgMTpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxTKGIpLG51bGw7Y2FzZSAzOmQ9Yi5zdGF0ZU5vZGU7emgoKTtFKFdmKTtFKEgpO0VoKCk7ZC5wZW5kaW5nQ29udGV4dCYmKGQuY29udGV4dD1kLnBlbmRpbmdDb250ZXh0LGQucGVuZGluZ0NvbnRleHQ9bnVsbCk7aWYobnVsbD09PWF8fG51bGw9PT1hLmNoaWxkKUdnKGIpP2IuZmxhZ3N8PTQ6bnVsbD09PWF8fGEubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PT0oYi5mbGFncyYyNTYpfHwoYi5mbGFnc3w9MTAyNCxudWxsIT09emcmJihGaih6Zyksemc9bnVsbCkpO0FqKGEsYik7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDU6QmgoYik7dmFyIGU9eGgod2guY3VycmVudCk7XG5jPWIudHlwZTtpZihudWxsIT09YSYmbnVsbCE9Yi5zdGF0ZU5vZGUpQmooYSxiLGMsZCxlKSxhLnJlZiE9PWIucmVmJiYoYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTIpO2Vsc2V7aWYoIWQpe2lmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO1MoYik7cmV0dXJuIG51bGx9YT14aCh1aC5jdXJyZW50KTtpZihHZyhiKSl7ZD1iLnN0YXRlTm9kZTtjPWIudHlwZTt2YXIgZj1iLm1lbW9pemVkUHJvcHM7ZFtPZl09YjtkW1BmXT1mO2E9MCE9PShiLm1vZGUmMSk7c3dpdGNoKGMpe2Nhc2UgXCJkaWFsb2dcIjpEKFwiY2FuY2VsXCIsZCk7RChcImNsb3NlXCIsZCk7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxsZi5sZW5ndGg7ZSsrKUQobGZbZV0sZCk7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkQoXCJlcnJvclwiLGQpO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuZCk7RChcImxvYWRcIixkKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkQoXCJ0b2dnbGVcIixkKTticmVhaztjYXNlIFwiaW5wdXRcIjpaYShkLGYpO0QoXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmQuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFmLm11bHRpcGxlfTtEKFwiaW52YWxpZFwiLGQpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGQsZiksRChcImludmFsaWRcIixkKX11YihjLGYpO2U9bnVsbDtmb3IodmFyIGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO1wiY2hpbGRyZW5cIj09PWc/XCJzdHJpbmdcIj09PXR5cGVvZiBoP2QudGV4dENvbnRlbnQhPT1oJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxoLGEpLGU9W1wiY2hpbGRyZW5cIixoXSk6XCJudW1iZXJcIj09PXR5cGVvZiBoJiZkLnRleHRDb250ZW50IT09XCJcIitoJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxcbmgsYSksZT1bXCJjaGlsZHJlblwiLFwiXCIraF0pOmVhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1oJiZcIm9uU2Nyb2xsXCI9PT1nJiZEKFwic2Nyb2xsXCIsZCl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGQpO2RiKGQsZiwhMCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6VmEoZCk7amIoZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJvcHRpb25cIjpicmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLm9uQ2xpY2smJihkLm9uY2xpY2s9QmYpfWQ9ZTtiLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJihiLmZsYWdzfD00KX1lbHNle2c9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hJiYoYT1rYihjKSk7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP1wic2NyaXB0XCI9PT1jPyhhPWcuY3JlYXRlRWxlbWVudChcImRpdlwiKSxhLmlubmVySFRNTD1cIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpKTpcblwic3RyaW5nXCI9PT10eXBlb2YgZC5pcz9hPWcuY3JlYXRlRWxlbWVudChjLHtpczpkLmlzfSk6KGE9Zy5jcmVhdGVFbGVtZW50KGMpLFwic2VsZWN0XCI9PT1jJiYoZz1hLGQubXVsdGlwbGU/Zy5tdWx0aXBsZT0hMDpkLnNpemUmJihnLnNpemU9ZC5zaXplKSkpOmE9Zy5jcmVhdGVFbGVtZW50TlMoYSxjKTthW09mXT1iO2FbUGZdPWQ7emooYSxiLCExLCExKTtiLnN0YXRlTm9kZT1hO2E6e2c9dmIoYyxkKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkQoXCJjYW5jZWxcIixhKTtEKFwiY2xvc2VcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZT0wO2U8bGYubGVuZ3RoO2UrKylEKGxmW2VdLGEpO2U9ZDticmVhaztjYXNlIFwic291cmNlXCI6RChcImVycm9yXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuYSk7RChcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpEKFwidG9nZ2xlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGEsZCk7ZT1ZYShhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmU9ZDticmVhaztjYXNlIFwic2VsZWN0XCI6YS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWQubXVsdGlwbGV9O2U9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtEKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGEsZCk7ZT1nYihhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7ZGVmYXVsdDplPWR9dWIoYyxlKTtoPWU7Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpKXt2YXIgaz1oW2ZdO1wic3R5bGVcIj09PWY/c2IoYSxrKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1mPyhrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJm5iKGEsaykpOlwiY2hpbGRyZW5cIj09PWY/XCJzdHJpbmdcIj09PXR5cGVvZiBrPyhcInRleHRhcmVhXCIhPT1cbmN8fFwiXCIhPT1rKSYmb2IoYSxrKTpcIm51bWJlclwiPT09dHlwZW9mIGsmJm9iKGEsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09ZiYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWYmJlwiYXV0b0ZvY3VzXCIhPT1mJiYoZWEuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmXCJvblNjcm9sbFwiPT09ZiYmRChcInNjcm9sbFwiLGEpOm51bGwhPWsmJnRhKGEsZixrLGcpKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoYSk7ZGIoYSxkLCExKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShhKTtqYihhKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZC52YWx1ZSYmYS5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrU2EoZC52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLm11bHRpcGxlPSEhZC5tdWx0aXBsZTtmPWQudmFsdWU7bnVsbCE9Zj9mYihhLCEhZC5tdWx0aXBsZSxmLCExKTpudWxsIT1kLmRlZmF1bHRWYWx1ZSYmZmIoYSwhIWQubXVsdGlwbGUsZC5kZWZhdWx0VmFsdWUsXG4hMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vbkNsaWNrJiYoYS5vbmNsaWNrPUJmKX1zd2l0Y2goYyl7Y2FzZSBcImJ1dHRvblwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJzZWxlY3RcIjpjYXNlIFwidGV4dGFyZWFcIjpkPSEhZC5hdXRvRm9jdXM7YnJlYWsgYTtjYXNlIFwiaW1nXCI6ZD0hMDticmVhayBhO2RlZmF1bHQ6ZD0hMX19ZCYmKGIuZmxhZ3N8PTQpfW51bGwhPT1iLnJlZiYmKGIuZmxhZ3N8PTUxMixiLmZsYWdzfD0yMDk3MTUyKX1TKGIpO3JldHVybiBudWxsO2Nhc2UgNjppZihhJiZudWxsIT1iLnN0YXRlTm9kZSlDaihhLGIsYS5tZW1vaXplZFByb3BzLGQpO2Vsc2V7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBkJiZudWxsPT09Yi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IocCgxNjYpKTtjPXhoKHdoLmN1cnJlbnQpO3hoKHVoLmN1cnJlbnQpO2lmKEdnKGIpKXtkPWIuc3RhdGVOb2RlO2M9Yi5tZW1vaXplZFByb3BzO2RbT2ZdPWI7aWYoZj1kLm5vZGVWYWx1ZSE9PWMpaWYoYT1cbnhnLG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpO2JyZWFrO2Nhc2UgNTohMCE9PWEubWVtb2l6ZWRQcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpfWYmJihiLmZsYWdzfD00KX1lbHNlIGQ9KDk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShkKSxkW09mXT1iLGIuc3RhdGVOb2RlPWR9UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDEzOkUoTCk7ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYoSSYmbnVsbCE9PXlnJiYwIT09KGIubW9kZSYxKSYmMD09PShiLmZsYWdzJjEyOCkpSGcoKSxJZygpLGIuZmxhZ3N8PTk4NTYwLGY9ITE7ZWxzZSBpZihmPUdnKGIpLG51bGwhPT1kJiZudWxsIT09ZC5kZWh5ZHJhdGVkKXtpZihudWxsPT09XG5hKXtpZighZil0aHJvdyBFcnJvcihwKDMxOCkpO2Y9Yi5tZW1vaXplZFN0YXRlO2Y9bnVsbCE9PWY/Zi5kZWh5ZHJhdGVkOm51bGw7aWYoIWYpdGhyb3cgRXJyb3IocCgzMTcpKTtmW09mXT1ifWVsc2UgSWcoKSwwPT09KGIuZmxhZ3MmMTI4KSYmKGIubWVtb2l6ZWRTdGF0ZT1udWxsKSxiLmZsYWdzfD00O1MoYik7Zj0hMX1lbHNlIG51bGwhPT16ZyYmKEZqKHpnKSx6Zz1udWxsKSxmPSEwO2lmKCFmKXJldHVybiBiLmZsYWdzJjY1NTM2P2I6bnVsbH1pZigwIT09KGIuZmxhZ3MmMTI4KSlyZXR1cm4gYi5sYW5lcz1jLGI7ZD1udWxsIT09ZDtkIT09KG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlKSYmZCYmKGIuY2hpbGQuZmxhZ3N8PTgxOTIsMCE9PShiLm1vZGUmMSkmJihudWxsPT09YXx8MCE9PShMLmN1cnJlbnQmMSk/MD09PVQmJihUPTMpOnRqKCkpKTtudWxsIT09Yi51cGRhdGVRdWV1ZSYmKGIuZmxhZ3N8PTQpO1MoYik7cmV0dXJuIG51bGw7Y2FzZSA0OnJldHVybiB6aCgpLFxuQWooYSxiKSxudWxsPT09YSYmc2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksUyhiKSxudWxsO2Nhc2UgMTA6cmV0dXJuIGFoKGIudHlwZS5fY29udGV4dCksUyhiKSxudWxsO2Nhc2UgMTc6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksUyhiKSxudWxsO2Nhc2UgMTk6RShMKTtmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09ZilyZXR1cm4gUyhiKSxudWxsO2Q9MCE9PShiLmZsYWdzJjEyOCk7Zz1mLnJlbmRlcmluZztpZihudWxsPT09ZylpZihkKURqKGYsITEpO2Vsc2V7aWYoMCE9PVR8fG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmMTI4KSlmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7Zz1DaChhKTtpZihudWxsIT09Zyl7Yi5mbGFnc3w9MTI4O0RqKGYsITEpO2Q9Zy51cGRhdGVRdWV1ZTtudWxsIT09ZCYmKGIudXBkYXRlUXVldWU9ZCxiLmZsYWdzfD00KTtiLnN1YnRyZWVGbGFncz0wO2Q9Yztmb3IoYz1iLmNoaWxkO251bGwhPT1jOylmPWMsYT1kLGYuZmxhZ3MmPTE0NjgwMDY2LFxuZz1mLmFsdGVybmF0ZSxudWxsPT09Zz8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLnN1YnRyZWVGbGFncz0wLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5zdWJ0cmVlRmxhZ3M9MCxmLmRlbGV0aW9ucz1udWxsLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLGYuZGVwZW5kZW5jaWVzPW51bGw9PT1hP251bGw6e2xhbmVzOmEubGFuZXMsZmlyc3RDb250ZXh0OmEuZmlyc3RDb250ZXh0fSksYz1jLnNpYmxpbmc7RyhMLEwuY3VycmVudCYxfDIpO3JldHVybiBiLmNoaWxkfWE9XG5hLnNpYmxpbmd9bnVsbCE9PWYudGFpbCYmQigpPkdqJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRGooZiwhMSksYi5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFkKWlmKGE9Q2goZyksbnVsbCE9PWEpe2lmKGIuZmxhZ3N8PTEyOCxkPSEwLGM9YS51cGRhdGVRdWV1ZSxudWxsIT09YyYmKGIudXBkYXRlUXVldWU9YyxiLmZsYWdzfD00KSxEaihmLCEwKSxudWxsPT09Zi50YWlsJiZcImhpZGRlblwiPT09Zi50YWlsTW9kZSYmIWcuYWx0ZXJuYXRlJiYhSSlyZXR1cm4gUyhiKSxudWxsfWVsc2UgMipCKCktZi5yZW5kZXJpbmdTdGFydFRpbWU+R2omJjEwNzM3NDE4MjQhPT1jJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRGooZiwhMSksYi5sYW5lcz00MTk0MzA0KTtmLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9Yi5jaGlsZCxiLmNoaWxkPWcpOihjPWYubGFzdCxudWxsIT09Yz9jLnNpYmxpbmc9ZzpiLmNoaWxkPWcsZi5sYXN0PWcpfWlmKG51bGwhPT1mLnRhaWwpcmV0dXJuIGI9Zi50YWlsLGYucmVuZGVyaW5nPVxuYixmLnRhaWw9Yi5zaWJsaW5nLGYucmVuZGVyaW5nU3RhcnRUaW1lPUIoKSxiLnNpYmxpbmc9bnVsbCxjPUwuY3VycmVudCxHKEwsZD9jJjF8MjpjJjEpLGI7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEhqKCksZD1udWxsIT09Yi5tZW1vaXplZFN0YXRlLG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlIT09ZCYmKGIuZmxhZ3N8PTgxOTIpLGQmJjAhPT0oYi5tb2RlJjEpPzAhPT0oZmomMTA3Mzc0MTgyNCkmJihTKGIpLGIuc3VidHJlZUZsYWdzJjYmJihiLmZsYWdzfD04MTkyKSk6UyhiKSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO31cbmZ1bmN0aW9uIElqKGEsYil7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDE6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksYT1iLmZsYWdzLGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAzOnJldHVybiB6aCgpLEUoV2YpLEUoSCksRWgoKSxhPWIuZmxhZ3MsMCE9PShhJjY1NTM2KSYmMD09PShhJjEyOCk/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSA1OnJldHVybiBCaChiKSxudWxsO2Nhc2UgMTM6RShMKTthPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YSYmbnVsbCE9PWEuZGVoeWRyYXRlZCl7aWYobnVsbD09PWIuYWx0ZXJuYXRlKXRocm93IEVycm9yKHAoMzQwKSk7SWcoKX1hPWIuZmxhZ3M7cmV0dXJuIGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAxOTpyZXR1cm4gRShMKSxudWxsO2Nhc2UgNDpyZXR1cm4gemgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIGFoKGIudHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEhqKCksXG5udWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIEpqPSExLFU9ITEsS2o9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsVj1udWxsO2Z1bmN0aW9uIExqKGEsYil7dmFyIGM9YS5yZWY7aWYobnVsbCE9PWMpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMpdHJ5e2MobnVsbCl9Y2F0Y2goZCl7VyhhLGIsZCl9ZWxzZSBjLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBNaihhLGIsYyl7dHJ5e2MoKX1jYXRjaChkKXtXKGEsYixkKX19dmFyIE5qPSExO1xuZnVuY3Rpb24gT2ooYSxiKXtDZj1kZDthPU1lKCk7aWYoTmUoYSkpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGEpdmFyIGM9e3N0YXJ0OmEuc2VsZWN0aW9uU3RhcnQsZW5kOmEuc2VsZWN0aW9uRW5kfTtlbHNlIGE6e2M9KGM9YS5vd25lckRvY3VtZW50KSYmYy5kZWZhdWx0Vmlld3x8d2luZG93O3ZhciBkPWMuZ2V0U2VsZWN0aW9uJiZjLmdldFNlbGVjdGlvbigpO2lmKGQmJjAhPT1kLnJhbmdlQ291bnQpe2M9ZC5hbmNob3JOb2RlO3ZhciBlPWQuYW5jaG9yT2Zmc2V0LGY9ZC5mb2N1c05vZGU7ZD1kLmZvY3VzT2Zmc2V0O3RyeXtjLm5vZGVUeXBlLGYubm9kZVR5cGV9Y2F0Y2goRil7Yz1udWxsO2JyZWFrIGF9dmFyIGc9MCxoPS0xLGs9LTEsbD0wLG09MCxxPWEscj1udWxsO2I6Zm9yKDs7KXtmb3IodmFyIHk7Oyl7cSE9PWN8fDAhPT1lJiYzIT09cS5ub2RlVHlwZXx8KGg9ZytlKTtxIT09Znx8MCE9PWQmJjMhPT1xLm5vZGVUeXBlfHwoaz1nK2QpOzM9PT1xLm5vZGVUeXBlJiYoZys9XG5xLm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0oeT1xLmZpcnN0Q2hpbGQpKWJyZWFrO3I9cTtxPXl9Zm9yKDs7KXtpZihxPT09YSlicmVhayBiO3I9PT1jJiYrK2w9PT1lJiYoaD1nKTtyPT09ZiYmKyttPT09ZCYmKGs9Zyk7aWYobnVsbCE9PSh5PXEubmV4dFNpYmxpbmcpKWJyZWFrO3E9cjtyPXEucGFyZW50Tm9kZX1xPXl9Yz0tMT09PWh8fC0xPT09az9udWxsOntzdGFydDpoLGVuZDprfX1lbHNlIGM9bnVsbH1jPWN8fHtzdGFydDowLGVuZDowfX1lbHNlIGM9bnVsbDtEZj17Zm9jdXNlZEVsZW06YSxzZWxlY3Rpb25SYW5nZTpjfTtkZD0hMTtmb3IoVj1iO251bGwhPT1WOylpZihiPVYsYT1iLmNoaWxkLDAhPT0oYi5zdWJ0cmVlRmxhZ3MmMTAyOCkmJm51bGwhPT1hKWEucmV0dXJuPWIsVj1hO2Vsc2UgZm9yKDtudWxsIT09Vjspe2I9Vjt0cnl7dmFyIG49Yi5hbHRlcm5hdGU7aWYoMCE9PShiLmZsYWdzJjEwMjQpKXN3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpicmVhaztcbmNhc2UgMTppZihudWxsIT09bil7dmFyIHQ9bi5tZW1vaXplZFByb3BzLEo9bi5tZW1vaXplZFN0YXRlLHg9Yi5zdGF0ZU5vZGUsdz14LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGIuZWxlbWVudFR5cGU9PT1iLnR5cGU/dDpDaShiLnR5cGUsdCksSik7eC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT13fWJyZWFrO2Nhc2UgMzp2YXIgdT1iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOzE9PT11Lm5vZGVUeXBlP3UudGV4dENvbnRlbnQ9XCJcIjo5PT09dS5ub2RlVHlwZSYmdS5kb2N1bWVudEVsZW1lbnQmJnUucmVtb3ZlQ2hpbGQodS5kb2N1bWVudEVsZW1lbnQpO2JyZWFrO2Nhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MykpO319Y2F0Y2goRil7VyhiLGIucmV0dXJuLEYpfWE9Yi5zaWJsaW5nO2lmKG51bGwhPT1hKXthLnJldHVybj1iLnJldHVybjtWPWE7YnJlYWt9Vj1iLnJldHVybn1uPU5qO05qPSExO3JldHVybiBufVxuZnVuY3Rpb24gUGooYSxiLGMpe3ZhciBkPWIudXBkYXRlUXVldWU7ZD1udWxsIT09ZD9kLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09ZCl7dmFyIGU9ZD1kLm5leHQ7ZG97aWYoKGUudGFnJmEpPT09YSl7dmFyIGY9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDA7dm9pZCAwIT09ZiYmTWooYixjLGYpfWU9ZS5uZXh0fXdoaWxlKGUhPT1kKX19ZnVuY3Rpb24gUWooYSxiKXtiPWIudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7dmFyIGM9Yj1iLm5leHQ7ZG97aWYoKGMudGFnJmEpPT09YSl7dmFyIGQ9Yy5jcmVhdGU7Yy5kZXN0cm95PWQoKX1jPWMubmV4dH13aGlsZShjIT09Yil9fWZ1bmN0aW9uIFJqKGEpe3ZhciBiPWEucmVmO2lmKG51bGwhPT1iKXt2YXIgYz1hLnN0YXRlTm9kZTtzd2l0Y2goYS50YWcpe2Nhc2UgNTphPWM7YnJlYWs7ZGVmYXVsdDphPWN9XCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpiLmN1cnJlbnQ9YX19XG5mdW5jdGlvbiBTaihhKXt2YXIgYj1hLmFsdGVybmF0ZTtudWxsIT09YiYmKGEuYWx0ZXJuYXRlPW51bGwsU2ooYikpO2EuY2hpbGQ9bnVsbDthLmRlbGV0aW9ucz1udWxsO2Euc2libGluZz1udWxsOzU9PT1hLnRhZyYmKGI9YS5zdGF0ZU5vZGUsbnVsbCE9PWImJihkZWxldGUgYltPZl0sZGVsZXRlIGJbUGZdLGRlbGV0ZSBiW29mXSxkZWxldGUgYltRZl0sZGVsZXRlIGJbUmZdKSk7YS5zdGF0ZU5vZGU9bnVsbDthLnJldHVybj1udWxsO2EuZGVwZW5kZW5jaWVzPW51bGw7YS5tZW1vaXplZFByb3BzPW51bGw7YS5tZW1vaXplZFN0YXRlPW51bGw7YS5wZW5kaW5nUHJvcHM9bnVsbDthLnN0YXRlTm9kZT1udWxsO2EudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBUaihhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIFVqKGEpe2E6Zm9yKDs7KXtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fFRqKGEucmV0dXJuKSlyZXR1cm4gbnVsbDthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm47Zm9yKGE9YS5zaWJsaW5nOzUhPT1hLnRhZyYmNiE9PWEudGFnJiYxOCE9PWEudGFnOyl7aWYoYS5mbGFncyYyKWNvbnRpbnVlIGE7aWYobnVsbD09PWEuY2hpbGR8fDQ9PT1hLnRhZyljb250aW51ZSBhO2Vsc2UgYS5jaGlsZC5yZXR1cm49YSxhPWEuY2hpbGR9aWYoIShhLmZsYWdzJjIpKXJldHVybiBhLnN0YXRlTm9kZX19XG5mdW5jdGlvbiBWaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj84PT09Yy5ub2RlVHlwZT9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYik6Yy5pbnNlcnRCZWZvcmUoYSxiKTooOD09PWMubm9kZVR5cGU/KGI9Yy5wYXJlbnROb2RlLGIuaW5zZXJ0QmVmb3JlKGEsYykpOihiPWMsYi5hcHBlbmRDaGlsZChhKSksYz1jLl9yZWFjdFJvb3RDb250YWluZXIsbnVsbCE9PWMmJnZvaWQgMCE9PWN8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9QmYpKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoVmooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylWaihhLGIsYyksYT1hLnNpYmxpbmd9XG5mdW5jdGlvbiBXaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj9jLmluc2VydEJlZm9yZShhLGIpOmMuYXBwZW5kQ2hpbGQoYSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKFdqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspV2ooYSxiLGMpLGE9YS5zaWJsaW5nfXZhciBYPW51bGwsWGo9ITE7ZnVuY3Rpb24gWWooYSxiLGMpe2ZvcihjPWMuY2hpbGQ7bnVsbCE9PWM7KVpqKGEsYixjKSxjPWMuc2libGluZ31cbmZ1bmN0aW9uIFpqKGEsYixjKXtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtsYy5vbkNvbW1pdEZpYmVyVW5tb3VudChrYyxjKX1jYXRjaChoKXt9c3dpdGNoKGMudGFnKXtjYXNlIDU6VXx8TGooYyxiKTtjYXNlIDY6dmFyIGQ9WCxlPVhqO1g9bnVsbDtZaihhLGIsYyk7WD1kO1hqPWU7bnVsbCE9PVgmJihYaj8oYT1YLGM9Yy5zdGF0ZU5vZGUsOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpOmEucmVtb3ZlQ2hpbGQoYykpOlgucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4Om51bGwhPT1YJiYoWGo/KGE9WCxjPWMuc3RhdGVOb2RlLDg9PT1hLm5vZGVUeXBlP0tmKGEucGFyZW50Tm9kZSxjKToxPT09YS5ub2RlVHlwZSYmS2YoYSxjKSxiZChhKSk6S2YoWCxjLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpkPVg7ZT1YajtYPWMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87WGo9ITA7XG5ZaihhLGIsYyk7WD1kO1hqPWU7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFVJiYoZD1jLnVwZGF0ZVF1ZXVlLG51bGwhPT1kJiYoZD1kLmxhc3RFZmZlY3QsbnVsbCE9PWQpKSl7ZT1kPWQubmV4dDtkb3t2YXIgZj1lLGc9Zi5kZXN0cm95O2Y9Zi50YWc7dm9pZCAwIT09ZyYmKDAhPT0oZiYyKT9NaihjLGIsZyk6MCE9PShmJjQpJiZNaihjLGIsZykpO2U9ZS5uZXh0fXdoaWxlKGUhPT1kKX1ZaihhLGIsYyk7YnJlYWs7Y2FzZSAxOmlmKCFVJiYoTGooYyxiKSxkPWMuc3RhdGVOb2RlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudFdpbGxVbm1vdW50KSl0cnl7ZC5wcm9wcz1jLm1lbW9pemVkUHJvcHMsZC5zdGF0ZT1jLm1lbW9pemVkU3RhdGUsZC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKGgpe1coYyxiLGgpfVlqKGEsYixjKTticmVhaztjYXNlIDIxOllqKGEsYixjKTticmVhaztjYXNlIDIyOmMubW9kZSYxPyhVPShkPVUpfHxudWxsIT09XG5jLm1lbW9pemVkU3RhdGUsWWooYSxiLGMpLFU9ZCk6WWooYSxiLGMpO2JyZWFrO2RlZmF1bHQ6WWooYSxiLGMpfX1mdW5jdGlvbiBhayhhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBLaik7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWJrLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fVxuZnVuY3Rpb24gY2soYSxiKXt2YXIgYz1iLmRlbGV0aW9ucztpZihudWxsIT09Yylmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTt0cnl7dmFyIGY9YSxnPWIsaD1nO2E6Zm9yKDtudWxsIT09aDspe3N3aXRjaChoLnRhZyl7Y2FzZSA1Olg9aC5zdGF0ZU5vZGU7WGo9ITE7YnJlYWsgYTtjYXNlIDM6WD1oLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1hqPSEwO2JyZWFrIGE7Y2FzZSA0Olg9aC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztYaj0hMDticmVhayBhfWg9aC5yZXR1cm59aWYobnVsbD09PVgpdGhyb3cgRXJyb3IocCgxNjApKTtaaihmLGcsZSk7WD1udWxsO1hqPSExO3ZhciBrPWUuYWx0ZXJuYXRlO251bGwhPT1rJiYoay5yZXR1cm49bnVsbCk7ZS5yZXR1cm49bnVsbH1jYXRjaChsKXtXKGUsYixsKX19aWYoYi5zdWJ0cmVlRmxhZ3MmMTI4NTQpZm9yKGI9Yi5jaGlsZDtudWxsIT09YjspZGsoYixhKSxiPWIuc2libGluZ31cbmZ1bmN0aW9uIGRrKGEsYil7dmFyIGM9YS5hbHRlcm5hdGUsZD1hLmZsYWdzO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmNrKGIsYSk7ZWsoYSk7aWYoZCY0KXt0cnl7UGooMyxhLGEucmV0dXJuKSxRaigzLGEpfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX10cnl7UGooNSxhLGEucmV0dXJuKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMTpjayhiLGEpO2VrKGEpO2QmNTEyJiZudWxsIT09YyYmTGooYyxjLnJldHVybik7YnJlYWs7Y2FzZSA1OmNrKGIsYSk7ZWsoYSk7ZCY1MTImJm51bGwhPT1jJiZMaihjLGMucmV0dXJuKTtpZihhLmZsYWdzJjMyKXt2YXIgZT1hLnN0YXRlTm9kZTt0cnl7b2IoZSxcIlwiKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWlmKGQmNCYmKGU9YS5zdGF0ZU5vZGUsbnVsbCE9ZSkpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcyxnPW51bGwhPT1jP2MubWVtb2l6ZWRQcm9wczpmLGg9YS50eXBlLGs9YS51cGRhdGVRdWV1ZTtcbmEudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09ayl0cnl7XCJpbnB1dFwiPT09aCYmXCJyYWRpb1wiPT09Zi50eXBlJiZudWxsIT1mLm5hbWUmJmFiKGUsZik7dmIoaCxnKTt2YXIgbD12YihoLGYpO2ZvcihnPTA7ZzxrLmxlbmd0aDtnKz0yKXt2YXIgbT1rW2ddLHE9a1tnKzFdO1wic3R5bGVcIj09PW0/c2IoZSxxKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1tP25iKGUscSk6XCJjaGlsZHJlblwiPT09bT9vYihlLHEpOnRhKGUsbSxxLGwpfXN3aXRjaChoKXtjYXNlIFwiaW5wdXRcIjpiYihlLGYpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGUsZik7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOnZhciByPWUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtlLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFmLm11bHRpcGxlO3ZhciB5PWYudmFsdWU7bnVsbCE9eT9mYihlLCEhZi5tdWx0aXBsZSx5LCExKTpyIT09ISFmLm11bHRpcGxlJiYobnVsbCE9Zi5kZWZhdWx0VmFsdWU/ZmIoZSwhIWYubXVsdGlwbGUsXG5mLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoZSwhIWYubXVsdGlwbGUsZi5tdWx0aXBsZT9bXTpcIlwiLCExKSl9ZVtQZl09Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgNjpjayhiLGEpO2VrKGEpO2lmKGQmNCl7aWYobnVsbD09PWEuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTYyKSk7ZT1hLnN0YXRlTm9kZTtmPWEubWVtb2l6ZWRQcm9wczt0cnl7ZS5ub2RlVmFsdWU9Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMzpjayhiLGEpO2VrKGEpO2lmKGQmNCYmbnVsbCE9PWMmJmMubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2JkKGIuY29udGFpbmVySW5mbyl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfWJyZWFrO2Nhc2UgNDpjayhiLGEpO2VrKGEpO2JyZWFrO2Nhc2UgMTM6Y2soYixhKTtlayhhKTtlPWEuY2hpbGQ7ZS5mbGFncyY4MTkyJiYoZj1udWxsIT09ZS5tZW1vaXplZFN0YXRlLGUuc3RhdGVOb2RlLmlzSGlkZGVuPWYsIWZ8fFxubnVsbCE9PWUuYWx0ZXJuYXRlJiZudWxsIT09ZS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZXx8KGZrPUIoKSkpO2QmNCYmYWsoYSk7YnJlYWs7Y2FzZSAyMjptPW51bGwhPT1jJiZudWxsIT09Yy5tZW1vaXplZFN0YXRlO2EubW9kZSYxPyhVPShsPVUpfHxtLGNrKGIsYSksVT1sKTpjayhiLGEpO2VrKGEpO2lmKGQmODE5Mil7bD1udWxsIT09YS5tZW1vaXplZFN0YXRlO2lmKChhLnN0YXRlTm9kZS5pc0hpZGRlbj1sKSYmIW0mJjAhPT0oYS5tb2RlJjEpKWZvcihWPWEsbT1hLmNoaWxkO251bGwhPT1tOyl7Zm9yKHE9Vj1tO251bGwhPT1WOyl7cj1WO3k9ci5jaGlsZDtzd2l0Y2goci50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpQaig0LHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpMaihyLHIucmV0dXJuKTt2YXIgbj1yLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5jb21wb25lbnRXaWxsVW5tb3VudCl7ZD1yO2M9ci5yZXR1cm47dHJ5e2I9ZCxuLnByb3BzPVxuYi5tZW1vaXplZFByb3BzLG4uc3RhdGU9Yi5tZW1vaXplZFN0YXRlLG4uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh0KXtXKGQsYyx0KX19YnJlYWs7Y2FzZSA1OkxqKHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMjI6aWYobnVsbCE9PXIubWVtb2l6ZWRTdGF0ZSl7Z2socSk7Y29udGludWV9fW51bGwhPT15Pyh5LnJldHVybj1yLFY9eSk6Z2socSl9bT1tLnNpYmxpbmd9YTpmb3IobT1udWxsLHE9YTs7KXtpZig1PT09cS50YWcpe2lmKG51bGw9PT1tKXttPXE7dHJ5e2U9cS5zdGF0ZU5vZGUsbD8oZj1lLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLnNldFByb3BlcnR5P2Yuc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6Zi5kaXNwbGF5PVwibm9uZVwiKTooaD1xLnN0YXRlTm9kZSxrPXEubWVtb2l6ZWRQcm9wcy5zdHlsZSxnPXZvaWQgMCE9PWsmJm51bGwhPT1rJiZrLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9rLmRpc3BsYXk6bnVsbCxoLnN0eWxlLmRpc3BsYXk9XG5yYihcImRpc3BsYXlcIixnKSl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX19ZWxzZSBpZig2PT09cS50YWcpe2lmKG51bGw9PT1tKXRyeXtxLnN0YXRlTm9kZS5ub2RlVmFsdWU9bD9cIlwiOnEubWVtb2l6ZWRQcm9wc31jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWVsc2UgaWYoKDIyIT09cS50YWcmJjIzIT09cS50YWd8fG51bGw9PT1xLm1lbW9pemVkU3RhdGV8fHE9PT1hKSYmbnVsbCE9PXEuY2hpbGQpe3EuY2hpbGQucmV0dXJuPXE7cT1xLmNoaWxkO2NvbnRpbnVlfWlmKHE9PT1hKWJyZWFrIGE7Zm9yKDtudWxsPT09cS5zaWJsaW5nOyl7aWYobnVsbD09PXEucmV0dXJufHxxLnJldHVybj09PWEpYnJlYWsgYTttPT09cSYmKG09bnVsbCk7cT1xLnJldHVybn1tPT09cSYmKG09bnVsbCk7cS5zaWJsaW5nLnJldHVybj1xLnJldHVybjtxPXEuc2libGluZ319YnJlYWs7Y2FzZSAxOTpjayhiLGEpO2VrKGEpO2QmNCYmYWsoYSk7YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OmNrKGIsXG5hKSxlayhhKX19ZnVuY3Rpb24gZWsoYSl7dmFyIGI9YS5mbGFncztpZihiJjIpe3RyeXthOntmb3IodmFyIGM9YS5yZXR1cm47bnVsbCE9PWM7KXtpZihUaihjKSl7dmFyIGQ9YzticmVhayBhfWM9Yy5yZXR1cm59dGhyb3cgRXJyb3IocCgxNjApKTt9c3dpdGNoKGQudGFnKXtjYXNlIDU6dmFyIGU9ZC5zdGF0ZU5vZGU7ZC5mbGFncyYzMiYmKG9iKGUsXCJcIiksZC5mbGFncyY9LTMzKTt2YXIgZj1VaihhKTtXaihhLGYsZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZz1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGg9VWooYSk7VmooYSxoLGcpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjEpKTt9fWNhdGNoKGspe1coYSxhLnJldHVybixrKX1hLmZsYWdzJj0tM31iJjQwOTYmJihhLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gaGsoYSxiLGMpe1Y9YTtpayhhLGIsYyl9XG5mdW5jdGlvbiBpayhhLGIsYyl7Zm9yKHZhciBkPTAhPT0oYS5tb2RlJjEpO251bGwhPT1WOyl7dmFyIGU9VixmPWUuY2hpbGQ7aWYoMjI9PT1lLnRhZyYmZCl7dmFyIGc9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZXx8Smo7aWYoIWcpe3ZhciBoPWUuYWx0ZXJuYXRlLGs9bnVsbCE9PWgmJm51bGwhPT1oLm1lbW9pemVkU3RhdGV8fFU7aD1Kajt2YXIgbD1VO0pqPWc7aWYoKFU9aykmJiFsKWZvcihWPWU7bnVsbCE9PVY7KWc9VixrPWcuY2hpbGQsMjI9PT1nLnRhZyYmbnVsbCE9PWcubWVtb2l6ZWRTdGF0ZT9qayhlKTpudWxsIT09az8oay5yZXR1cm49ZyxWPWspOmprKGUpO2Zvcig7bnVsbCE9PWY7KVY9ZixpayhmLGIsYyksZj1mLnNpYmxpbmc7Vj1lO0pqPWg7VT1sfWtrKGEsYixjKX1lbHNlIDAhPT0oZS5zdWJ0cmVlRmxhZ3MmODc3MikmJm51bGwhPT1mPyhmLnJldHVybj1lLFY9Zik6a2soYSxiLGMpfX1cbmZ1bmN0aW9uIGtrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKDAhPT0oYi5mbGFncyY4NzcyKSl7dmFyIGM9Yi5hbHRlcm5hdGU7dHJ5e2lmKDAhPT0oYi5mbGFncyY4NzcyKSlzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6VXx8UWooNSxiKTticmVhaztjYXNlIDE6dmFyIGQ9Yi5zdGF0ZU5vZGU7aWYoYi5mbGFncyY0JiYhVSlpZihudWxsPT09YylkLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgZT1iLmVsZW1lbnRUeXBlPT09Yi50eXBlP2MubWVtb2l6ZWRQcm9wczpDaShiLnR5cGUsYy5tZW1vaXplZFByb3BzKTtkLmNvbXBvbmVudERpZFVwZGF0ZShlLGMubWVtb2l6ZWRTdGF0ZSxkLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgZj1iLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiZzaChiLGYsZCk7YnJlYWs7Y2FzZSAzOnZhciBnPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWcpe2M9bnVsbDtpZihudWxsIT09Yi5jaGlsZClzd2l0Y2goYi5jaGlsZC50YWcpe2Nhc2UgNTpjPVxuYi5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOmM9Yi5jaGlsZC5zdGF0ZU5vZGV9c2goYixnLGMpfWJyZWFrO2Nhc2UgNTp2YXIgaD1iLnN0YXRlTm9kZTtpZihudWxsPT09YyYmYi5mbGFncyY0KXtjPWg7dmFyIGs9Yi5tZW1vaXplZFByb3BzO3N3aXRjaChiLnR5cGUpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6ay5hdXRvRm9jdXMmJmMuZm9jdXMoKTticmVhaztjYXNlIFwiaW1nXCI6ay5zcmMmJihjLnNyYz1rLnNyYyl9fWJyZWFrO2Nhc2UgNjpicmVhaztjYXNlIDQ6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmlmKG51bGw9PT1iLm1lbW9pemVkU3RhdGUpe3ZhciBsPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1sKXt2YXIgbT1sLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW0pe3ZhciBxPW0uZGVoeWRyYXRlZDtudWxsIT09cSYmYmQocSl9fX1icmVhaztjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNTpicmVhaztcbmRlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKTt9VXx8Yi5mbGFncyY1MTImJlJqKGIpfWNhdGNoKHIpe1coYixiLnJldHVybixyKX19aWYoYj09PWEpe1Y9bnVsbDticmVha31jPWIuc2libGluZztpZihudWxsIT09Yyl7Yy5yZXR1cm49Yi5yZXR1cm47Vj1jO2JyZWFrfVY9Yi5yZXR1cm59fWZ1bmN0aW9uIGdrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKGI9PT1hKXtWPW51bGw7YnJlYWt9dmFyIGM9Yi5zaWJsaW5nO2lmKG51bGwhPT1jKXtjLnJldHVybj1iLnJldHVybjtWPWM7YnJlYWt9Vj1iLnJldHVybn19XG5mdW5jdGlvbiBqayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9Vjt0cnl7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciBjPWIucmV0dXJuO3RyeXtRaig0LGIpfWNhdGNoKGspe1coYixjLGspfWJyZWFrO2Nhc2UgMTp2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRNb3VudCl7dmFyIGU9Yi5yZXR1cm47dHJ5e2QuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChrKXtXKGIsZSxrKX19dmFyIGY9Yi5yZXR1cm47dHJ5e1JqKGIpfWNhdGNoKGspe1coYixmLGspfWJyZWFrO2Nhc2UgNTp2YXIgZz1iLnJldHVybjt0cnl7UmooYil9Y2F0Y2goayl7VyhiLGcsayl9fX1jYXRjaChrKXtXKGIsYi5yZXR1cm4sayl9aWYoYj09PWEpe1Y9bnVsbDticmVha312YXIgaD1iLnNpYmxpbmc7aWYobnVsbCE9PWgpe2gucmV0dXJuPWIucmV0dXJuO1Y9aDticmVha31WPWIucmV0dXJufX1cbnZhciBsaz1NYXRoLmNlaWwsbWs9dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixuaz11YS5SZWFjdEN1cnJlbnRPd25lcixvaz11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxLPTAsUT1udWxsLFk9bnVsbCxaPTAsZmo9MCxlaj1VZigwKSxUPTAscGs9bnVsbCxyaD0wLHFrPTAscms9MCxzaz1udWxsLHRrPW51bGwsZms9MCxHaj1JbmZpbml0eSx1az1udWxsLE9pPSExLFBpPW51bGwsUmk9bnVsbCx2az0hMSx3az1udWxsLHhrPTAseWs9MCx6az1udWxsLEFrPS0xLEJrPTA7ZnVuY3Rpb24gUigpe3JldHVybiAwIT09KEsmNik/QigpOi0xIT09QWs/QWs6QWs9QigpfVxuZnVuY3Rpb24geWkoYSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIDE7aWYoMCE9PShLJjIpJiYwIT09WilyZXR1cm4gWiYtWjtpZihudWxsIT09S2cudHJhbnNpdGlvbilyZXR1cm4gMD09PUJrJiYoQms9eWMoKSksQms7YT1DO2lmKDAhPT1hKXJldHVybiBhO2E9d2luZG93LmV2ZW50O2E9dm9pZCAwPT09YT8xNjpqZChhLnR5cGUpO3JldHVybiBhfWZ1bmN0aW9uIGdpKGEsYixjLGQpe2lmKDUwPHlrKXRocm93IHlrPTAsems9bnVsbCxFcnJvcihwKDE4NSkpO0FjKGEsYyxkKTtpZigwPT09KEsmMil8fGEhPT1RKWE9PT1RJiYoMD09PShLJjIpJiYocWt8PWMpLDQ9PT1UJiZDayhhLFopKSxEayhhLGQpLDE9PT1jJiYwPT09SyYmMD09PShiLm1vZGUmMSkmJihHaj1CKCkrNTAwLGZnJiZqZygpKX1cbmZ1bmN0aW9uIERrKGEsYil7dmFyIGM9YS5jYWxsYmFja05vZGU7d2MoYSxiKTt2YXIgZD11YyhhLGE9PT1RP1o6MCk7aWYoMD09PWQpbnVsbCE9PWMmJmJjKGMpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihiPWQmLWQsYS5jYWxsYmFja1ByaW9yaXR5IT09Yil7bnVsbCE9YyYmYmMoYyk7aWYoMT09PWIpMD09PWEudGFnP2lnKEVrLmJpbmQobnVsbCxhKSk6aGcoRWsuYmluZChudWxsLGEpKSxKZihmdW5jdGlvbigpezA9PT0oSyY2KSYmamcoKX0pLGM9bnVsbDtlbHNle3N3aXRjaChEYyhkKSl7Y2FzZSAxOmM9ZmM7YnJlYWs7Y2FzZSA0OmM9Z2M7YnJlYWs7Y2FzZSAxNjpjPWhjO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmM9amM7YnJlYWs7ZGVmYXVsdDpjPWhjfWM9RmsoYyxHay5iaW5kKG51bGwsYSkpfWEuY2FsbGJhY2tQcmlvcml0eT1iO2EuY2FsbGJhY2tOb2RlPWN9fVxuZnVuY3Rpb24gR2soYSxiKXtBaz0tMTtCaz0wO2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMyNykpO3ZhciBjPWEuY2FsbGJhY2tOb2RlO2lmKEhrKCkmJmEuY2FsbGJhY2tOb2RlIT09YylyZXR1cm4gbnVsbDt2YXIgZD11YyhhLGE9PT1RP1o6MCk7aWYoMD09PWQpcmV0dXJuIG51bGw7aWYoMCE9PShkJjMwKXx8MCE9PShkJmEuZXhwaXJlZExhbmVzKXx8YiliPUlrKGEsZCk7ZWxzZXtiPWQ7dmFyIGU9SztLfD0yO3ZhciBmPUprKCk7aWYoUSE9PWF8fFohPT1iKXVrPW51bGwsR2o9QigpKzUwMCxLayhhLGIpO2RvIHRyeXtMaygpO2JyZWFrfWNhdGNoKGgpe01rKGEsaCl9d2hpbGUoMSk7JGcoKTttay5jdXJyZW50PWY7Sz1lO251bGwhPT1ZP2I9MDooUT1udWxsLFo9MCxiPVQpfWlmKDAhPT1iKXsyPT09YiYmKGU9eGMoYSksMCE9PWUmJihkPWUsYj1OayhhLGUpKSk7aWYoMT09PWIpdGhyb3cgYz1wayxLayhhLDApLENrKGEsZCksRGsoYSxCKCkpLGM7aWYoNj09PWIpQ2soYSxkKTtcbmVsc2V7ZT1hLmN1cnJlbnQuYWx0ZXJuYXRlO2lmKDA9PT0oZCYzMCkmJiFPayhlKSYmKGI9SWsoYSxkKSwyPT09YiYmKGY9eGMoYSksMCE9PWYmJihkPWYsYj1OayhhLGYpKSksMT09PWIpKXRocm93IGM9cGssS2soYSwwKSxDayhhLGQpLERrKGEsQigpKSxjO2EuZmluaXNoZWRXb3JrPWU7YS5maW5pc2hlZExhbmVzPWQ7c3dpdGNoKGIpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocCgzNDUpKTtjYXNlIDI6UGsoYSx0ayx1ayk7YnJlYWs7Y2FzZSAzOkNrKGEsZCk7aWYoKGQmMTMwMDIzNDI0KT09PWQmJihiPWZrKzUwMC1CKCksMTA8Yikpe2lmKDAhPT11YyhhLDApKWJyZWFrO2U9YS5zdXNwZW5kZWRMYW5lcztpZigoZSZkKSE9PWQpe1IoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmU7YnJlYWt9YS50aW1lb3V0SGFuZGxlPUZmKFBrLmJpbmQobnVsbCxhLHRrLHVrKSxiKTticmVha31QayhhLHRrLHVrKTticmVhaztjYXNlIDQ6Q2soYSxkKTtpZigoZCY0MTk0MjQwKT09PVxuZClicmVhaztiPWEuZXZlbnRUaW1lcztmb3IoZT0tMTswPGQ7KXt2YXIgZz0zMS1vYyhkKTtmPTE8PGc7Zz1iW2ddO2c+ZSYmKGU9Zyk7ZCY9fmZ9ZD1lO2Q9QigpLWQ7ZD0oMTIwPmQ/MTIwOjQ4MD5kPzQ4MDoxMDgwPmQ/MTA4MDoxOTIwPmQ/MTkyMDozRTM+ZD8zRTM6NDMyMD5kPzQzMjA6MTk2MCpsayhkLzE5NjApKS1kO2lmKDEwPGQpe2EudGltZW91dEhhbmRsZT1GZihQay5iaW5kKG51bGwsYSx0ayx1ayksZCk7YnJlYWt9UGsoYSx0ayx1ayk7YnJlYWs7Y2FzZSA1OlBrKGEsdGssdWspO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgzMjkpKTt9fX1EayhhLEIoKSk7cmV0dXJuIGEuY2FsbGJhY2tOb2RlPT09Yz9Hay5iaW5kKG51bGwsYSk6bnVsbH1cbmZ1bmN0aW9uIE5rKGEsYil7dmFyIGM9c2s7YS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoS2soYSxiKS5mbGFnc3w9MjU2KTthPUlrKGEsYik7MiE9PWEmJihiPXRrLHRrPWMsbnVsbCE9PWImJkZqKGIpKTtyZXR1cm4gYX1mdW5jdGlvbiBGaihhKXtudWxsPT09dGs/dGs9YTp0ay5wdXNoLmFwcGx5KHRrLGEpfVxuZnVuY3Rpb24gT2soYSl7Zm9yKHZhciBiPWE7Oyl7aWYoYi5mbGFncyYxNjM4NCl7dmFyIGM9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YyYmKGM9Yy5zdG9yZXMsbnVsbCE9PWMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLGY9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e2lmKCFIZShmKCksZSkpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuITF9fX1jPWIuY2hpbGQ7aWYoYi5zdWJ0cmVlRmxhZ3MmMTYzODQmJm51bGwhPT1jKWMucmV0dXJuPWIsYj1jO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuITA7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4hMH1cbmZ1bmN0aW9uIENrKGEsYil7YiY9fnJrO2ImPX5xazthLnN1c3BlbmRlZExhbmVzfD1iO2EucGluZ2VkTGFuZXMmPX5iO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yjspe3ZhciBjPTMxLW9jKGIpLGQ9MTw8YzthW2NdPS0xO2ImPX5kfX1mdW5jdGlvbiBFayhhKXtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtIaygpO3ZhciBiPXVjKGEsMCk7aWYoMD09PShiJjEpKXJldHVybiBEayhhLEIoKSksbnVsbDt2YXIgYz1JayhhLGIpO2lmKDAhPT1hLnRhZyYmMj09PWMpe3ZhciBkPXhjKGEpOzAhPT1kJiYoYj1kLGM9TmsoYSxkKSl9aWYoMT09PWMpdGhyb3cgYz1wayxLayhhLDApLENrKGEsYiksRGsoYSxCKCkpLGM7aWYoNj09PWMpdGhyb3cgRXJyb3IocCgzNDUpKTthLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlO2EuZmluaXNoZWRMYW5lcz1iO1BrKGEsdGssdWspO0RrKGEsQigpKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFFrKGEsYil7dmFyIGM9SztLfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e0s9YywwPT09SyYmKEdqPUIoKSs1MDAsZmcmJmpnKCkpfX1mdW5jdGlvbiBSayhhKXtudWxsIT09d2smJjA9PT13ay50YWcmJjA9PT0oSyY2KSYmSGsoKTt2YXIgYj1LO0t8PTE7dmFyIGM9b2sudHJhbnNpdGlvbixkPUM7dHJ5e2lmKG9rLnRyYW5zaXRpb249bnVsbCxDPTEsYSlyZXR1cm4gYSgpfWZpbmFsbHl7Qz1kLG9rLnRyYW5zaXRpb249YyxLPWIsMD09PShLJjYpJiZqZygpfX1mdW5jdGlvbiBIaigpe2ZqPWVqLmN1cnJlbnQ7RShlail9XG5mdW5jdGlvbiBLayhhLGIpe2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7dmFyIGM9YS50aW1lb3V0SGFuZGxlOy0xIT09YyYmKGEudGltZW91dEhhbmRsZT0tMSxHZihjKSk7aWYobnVsbCE9PVkpZm9yKGM9WS5yZXR1cm47bnVsbCE9PWM7KXt2YXIgZD1jO3dnKGQpO3N3aXRjaChkLnRhZyl7Y2FzZSAxOmQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1kJiZ2b2lkIDAhPT1kJiYkZigpO2JyZWFrO2Nhc2UgMzp6aCgpO0UoV2YpO0UoSCk7RWgoKTticmVhaztjYXNlIDU6QmgoZCk7YnJlYWs7Y2FzZSA0OnpoKCk7YnJlYWs7Y2FzZSAxMzpFKEwpO2JyZWFrO2Nhc2UgMTk6RShMKTticmVhaztjYXNlIDEwOmFoKGQudHlwZS5fY29udGV4dCk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOkhqKCl9Yz1jLnJldHVybn1RPWE7WT1hPVBnKGEuY3VycmVudCxudWxsKTtaPWZqPWI7VD0wO3BrPW51bGw7cms9cWs9cmg9MDt0az1zaz1udWxsO2lmKG51bGwhPT1maCl7Zm9yKGI9XG4wO2I8ZmgubGVuZ3RoO2IrKylpZihjPWZoW2JdLGQ9Yy5pbnRlcmxlYXZlZCxudWxsIT09ZCl7Yy5pbnRlcmxlYXZlZD1udWxsO3ZhciBlPWQubmV4dCxmPWMucGVuZGluZztpZihudWxsIT09Zil7dmFyIGc9Zi5uZXh0O2YubmV4dD1lO2QubmV4dD1nfWMucGVuZGluZz1kfWZoPW51bGx9cmV0dXJuIGF9XG5mdW5jdGlvbiBNayhhLGIpe2Rve3ZhciBjPVk7dHJ5eyRnKCk7RmguY3VycmVudD1SaDtpZihJaCl7Zm9yKHZhciBkPU0ubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCk7ZD1kLm5leHR9SWg9ITF9SGg9MDtPPU49TT1udWxsO0poPSExO0toPTA7bmsuY3VycmVudD1udWxsO2lmKG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Q9MTtwaz1iO1k9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtiPVo7aC5mbGFnc3w9MzI3Njg7aWYobnVsbCE9PWsmJlwib2JqZWN0XCI9PT10eXBlb2YgayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGsudGhlbil7dmFyIGw9ayxtPWgscT1tLnRhZztpZigwPT09KG0ubW9kZSYxKSYmKDA9PT1xfHwxMT09PXF8fDE1PT09cSkpe3ZhciByPW0uYWx0ZXJuYXRlO3I/KG0udXBkYXRlUXVldWU9ci51cGRhdGVRdWV1ZSxtLm1lbW9pemVkU3RhdGU9ci5tZW1vaXplZFN0YXRlLFxubS5sYW5lcz1yLmxhbmVzKToobS51cGRhdGVRdWV1ZT1udWxsLG0ubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgeT1VaShnKTtpZihudWxsIT09eSl7eS5mbGFncyY9LTI1NztWaSh5LGcsaCxmLGIpO3kubW9kZSYxJiZTaShmLGwsYik7Yj15O2s9bDt2YXIgbj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1uKXt2YXIgdD1uZXcgU2V0O3QuYWRkKGspO2IudXBkYXRlUXVldWU9dH1lbHNlIG4uYWRkKGspO2JyZWFrIGF9ZWxzZXtpZigwPT09KGImMSkpe1NpKGYsbCxiKTt0aigpO2JyZWFrIGF9az1FcnJvcihwKDQyNikpfX1lbHNlIGlmKEkmJmgubW9kZSYxKXt2YXIgSj1VaShnKTtpZihudWxsIT09Sil7MD09PShKLmZsYWdzJjY1NTM2KSYmKEouZmxhZ3N8PTI1Nik7VmkoSixnLGgsZixiKTtKZyhKaShrLGgpKTticmVhayBhfX1mPWs9SmkoayxoKTs0IT09VCYmKFQ9Mik7bnVsbD09PXNrP3NrPVtmXTpzay5wdXNoKGYpO2Y9Zztkb3tzd2l0Y2goZi50YWcpe2Nhc2UgMzpmLmZsYWdzfD02NTUzNjtcbmImPS1iO2YubGFuZXN8PWI7dmFyIHg9TmkoZixrLGIpO3BoKGYseCk7YnJlYWsgYTtjYXNlIDE6aD1rO3ZhciB3PWYudHlwZSx1PWYuc3RhdGVOb2RlO2lmKDA9PT0oZi5mbGFncyYxMjgpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHcuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09dSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHUuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09Uml8fCFSaS5oYXModSkpKSl7Zi5mbGFnc3w9NjU1MzY7YiY9LWI7Zi5sYW5lc3w9Yjt2YXIgRj1RaShmLGgsYik7cGgoZixGKTticmVhayBhfX1mPWYucmV0dXJufXdoaWxlKG51bGwhPT1mKX1TayhjKX1jYXRjaChuYSl7Yj1uYTtZPT09YyYmbnVsbCE9PWMmJihZPWM9Yy5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfWZ1bmN0aW9uIEprKCl7dmFyIGE9bWsuY3VycmVudDttay5jdXJyZW50PVJoO3JldHVybiBudWxsPT09YT9SaDphfVxuZnVuY3Rpb24gdGooKXtpZigwPT09VHx8Mz09PVR8fDI9PT1UKVQ9NDtudWxsPT09UXx8MD09PShyaCYyNjg0MzU0NTUpJiYwPT09KHFrJjI2ODQzNTQ1NSl8fENrKFEsWil9ZnVuY3Rpb24gSWsoYSxiKXt2YXIgYz1LO0t8PTI7dmFyIGQ9SmsoKTtpZihRIT09YXx8WiE9PWIpdWs9bnVsbCxLayhhLGIpO2RvIHRyeXtUaygpO2JyZWFrfWNhdGNoKGUpe01rKGEsZSl9d2hpbGUoMSk7JGcoKTtLPWM7bWsuY3VycmVudD1kO2lmKG51bGwhPT1ZKXRocm93IEVycm9yKHAoMjYxKSk7UT1udWxsO1o9MDtyZXR1cm4gVH1mdW5jdGlvbiBUaygpe2Zvcig7bnVsbCE9PVk7KVVrKFkpfWZ1bmN0aW9uIExrKCl7Zm9yKDtudWxsIT09WSYmIWNjKCk7KVVrKFkpfWZ1bmN0aW9uIFVrKGEpe3ZhciBiPVZrKGEuYWx0ZXJuYXRlLGEsZmopO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09Yj9TayhhKTpZPWI7bmsuY3VycmVudD1udWxsfVxuZnVuY3Rpb24gU2soYSl7dmFyIGI9YTtkb3t2YXIgYz1iLmFsdGVybmF0ZTthPWIucmV0dXJuO2lmKDA9PT0oYi5mbGFncyYzMjc2OCkpe2lmKGM9RWooYyxiLGZqKSxudWxsIT09Yyl7WT1jO3JldHVybn19ZWxzZXtjPUlqKGMsYik7aWYobnVsbCE9PWMpe2MuZmxhZ3MmPTMyNzY3O1k9YztyZXR1cm59aWYobnVsbCE9PWEpYS5mbGFnc3w9MzI3NjgsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsO2Vsc2V7VD02O1k9bnVsbDtyZXR1cm59fWI9Yi5zaWJsaW5nO2lmKG51bGwhPT1iKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09VCYmKFQ9NSl9ZnVuY3Rpb24gUGsoYSxiLGMpe3ZhciBkPUMsZT1vay50cmFuc2l0aW9uO3RyeXtvay50cmFuc2l0aW9uPW51bGwsQz0xLFdrKGEsYixjLGQpfWZpbmFsbHl7b2sudHJhbnNpdGlvbj1lLEM9ZH1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFdrKGEsYixjLGQpe2RvIEhrKCk7d2hpbGUobnVsbCE9PXdrKTtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtjPWEuZmluaXNoZWRXb3JrO3ZhciBlPWEuZmluaXNoZWRMYW5lcztpZihudWxsPT09YylyZXR1cm4gbnVsbDthLmZpbmlzaGVkV29yaz1udWxsO2EuZmluaXNoZWRMYW5lcz0wO2lmKGM9PT1hLmN1cnJlbnQpdGhyb3cgRXJyb3IocCgxNzcpKTthLmNhbGxiYWNrTm9kZT1udWxsO2EuY2FsbGJhY2tQcmlvcml0eT0wO3ZhciBmPWMubGFuZXN8Yy5jaGlsZExhbmVzO0JjKGEsZik7YT09PVEmJihZPVE9bnVsbCxaPTApOzA9PT0oYy5zdWJ0cmVlRmxhZ3MmMjA2NCkmJjA9PT0oYy5mbGFncyYyMDY0KXx8dmt8fCh2az0hMCxGayhoYyxmdW5jdGlvbigpe0hrKCk7cmV0dXJuIG51bGx9KSk7Zj0wIT09KGMuZmxhZ3MmMTU5OTApO2lmKDAhPT0oYy5zdWJ0cmVlRmxhZ3MmMTU5OTApfHxmKXtmPW9rLnRyYW5zaXRpb247b2sudHJhbnNpdGlvbj1udWxsO1xudmFyIGc9QztDPTE7dmFyIGg9SztLfD00O25rLmN1cnJlbnQ9bnVsbDtPaihhLGMpO2RrKGMsYSk7T2UoRGYpO2RkPSEhQ2Y7RGY9Q2Y9bnVsbDthLmN1cnJlbnQ9YztoayhjLGEsZSk7ZGMoKTtLPWg7Qz1nO29rLnRyYW5zaXRpb249Zn1lbHNlIGEuY3VycmVudD1jO3ZrJiYodms9ITEsd2s9YSx4az1lKTtmPWEucGVuZGluZ0xhbmVzOzA9PT1mJiYoUmk9bnVsbCk7bWMoYy5zdGF0ZU5vZGUsZCk7RGsoYSxCKCkpO2lmKG51bGwhPT1iKWZvcihkPWEub25SZWNvdmVyYWJsZUVycm9yLGM9MDtjPGIubGVuZ3RoO2MrKyllPWJbY10sZChlLnZhbHVlLHtjb21wb25lbnRTdGFjazplLnN0YWNrLGRpZ2VzdDplLmRpZ2VzdH0pO2lmKE9pKXRocm93IE9pPSExLGE9UGksUGk9bnVsbCxhOzAhPT0oeGsmMSkmJjAhPT1hLnRhZyYmSGsoKTtmPWEucGVuZGluZ0xhbmVzOzAhPT0oZiYxKT9hPT09ems/eWsrKzooeWs9MCx6az1hKTp5az0wO2pnKCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBIaygpe2lmKG51bGwhPT13ayl7dmFyIGE9RGMoeGspLGI9b2sudHJhbnNpdGlvbixjPUM7dHJ5e29rLnRyYW5zaXRpb249bnVsbDtDPTE2PmE/MTY6YTtpZihudWxsPT09d2spdmFyIGQ9ITE7ZWxzZXthPXdrO3drPW51bGw7eGs9MDtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMzEpKTt2YXIgZT1LO0t8PTQ7Zm9yKFY9YS5jdXJyZW50O251bGwhPT1WOyl7dmFyIGY9VixnPWYuY2hpbGQ7aWYoMCE9PShWLmZsYWdzJjE2KSl7dmFyIGg9Zi5kZWxldGlvbnM7aWYobnVsbCE9PWgpe2Zvcih2YXIgaz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbD1oW2tdO2ZvcihWPWw7bnVsbCE9PVY7KXt2YXIgbT1WO3N3aXRjaChtLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpQaig4LG0sZil9dmFyIHE9bS5jaGlsZDtpZihudWxsIT09cSlxLnJldHVybj1tLFY9cTtlbHNlIGZvcig7bnVsbCE9PVY7KXttPVY7dmFyIHI9bS5zaWJsaW5nLHk9bS5yZXR1cm47U2oobSk7aWYobT09PVxubCl7Vj1udWxsO2JyZWFrfWlmKG51bGwhPT1yKXtyLnJldHVybj15O1Y9cjticmVha31WPXl9fX12YXIgbj1mLmFsdGVybmF0ZTtpZihudWxsIT09bil7dmFyIHQ9bi5jaGlsZDtpZihudWxsIT09dCl7bi5jaGlsZD1udWxsO2Rve3ZhciBKPXQuc2libGluZzt0LnNpYmxpbmc9bnVsbDt0PUp9d2hpbGUobnVsbCE9PXQpfX1WPWZ9fWlmKDAhPT0oZi5zdWJ0cmVlRmxhZ3MmMjA2NCkmJm51bGwhPT1nKWcucmV0dXJuPWYsVj1nO2Vsc2UgYjpmb3IoO251bGwhPT1WOyl7Zj1WO2lmKDAhPT0oZi5mbGFncyYyMDQ4KSlzd2l0Y2goZi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UGooOSxmLGYucmV0dXJuKX12YXIgeD1mLnNpYmxpbmc7aWYobnVsbCE9PXgpe3gucmV0dXJuPWYucmV0dXJuO1Y9eDticmVhayBifVY9Zi5yZXR1cm59fXZhciB3PWEuY3VycmVudDtmb3IoVj13O251bGwhPT1WOyl7Zz1WO3ZhciB1PWcuY2hpbGQ7aWYoMCE9PShnLnN1YnRyZWVGbGFncyYyMDY0KSYmbnVsbCE9PVxudSl1LnJldHVybj1nLFY9dTtlbHNlIGI6Zm9yKGc9dztudWxsIT09Vjspe2g9VjtpZigwIT09KGguZmxhZ3MmMjA0OCkpdHJ5e3N3aXRjaChoLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpRaig5LGgpfX1jYXRjaChuYSl7VyhoLGgucmV0dXJuLG5hKX1pZihoPT09Zyl7Vj1udWxsO2JyZWFrIGJ9dmFyIEY9aC5zaWJsaW5nO2lmKG51bGwhPT1GKXtGLnJldHVybj1oLnJldHVybjtWPUY7YnJlYWsgYn1WPWgucmV0dXJufX1LPWU7amcoKTtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7bGMub25Qb3N0Q29tbWl0RmliZXJSb290KGtjLGEpfWNhdGNoKG5hKXt9ZD0hMH1yZXR1cm4gZH1maW5hbGx5e0M9Yyxvay50cmFuc2l0aW9uPWJ9fXJldHVybiExfWZ1bmN0aW9uIFhrKGEsYixjKXtiPUppKGMsYik7Yj1OaShhLGIsMSk7YT1uaChhLGIsMSk7Yj1SKCk7bnVsbCE9PWEmJihBYyhhLDEsYiksRGsoYSxiKSl9XG5mdW5jdGlvbiBXKGEsYixjKXtpZigzPT09YS50YWcpWGsoYSxhLGMpO2Vsc2UgZm9yKDtudWxsIT09Yjspe2lmKDM9PT1iLnRhZyl7WGsoYixhLGMpO2JyZWFrfWVsc2UgaWYoMT09PWIudGFnKXt2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09Uml8fCFSaS5oYXMoZCkpKXthPUppKGMsYSk7YT1RaShiLGEsMSk7Yj1uaChiLGEsMSk7YT1SKCk7bnVsbCE9PWImJihBYyhiLDEsYSksRGsoYixhKSk7YnJlYWt9fWI9Yi5yZXR1cm59fVxuZnVuY3Rpb24gVGkoYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtiPVIoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmM7UT09PWEmJihaJmMpPT09YyYmKDQ9PT1UfHwzPT09VCYmKFomMTMwMDIzNDI0KT09PVomJjUwMD5CKCktZms/S2soYSwwKTpya3w9Yyk7RGsoYSxiKX1mdW5jdGlvbiBZayhhLGIpezA9PT1iJiYoMD09PShhLm1vZGUmMSk/Yj0xOihiPXNjLHNjPDw9MSwwPT09KHNjJjEzMDAyMzQyNCkmJihzYz00MTk0MzA0KSkpO3ZhciBjPVIoKTthPWloKGEsYik7bnVsbCE9PWEmJihBYyhhLGIsYyksRGsoYSxjKSl9ZnVuY3Rpb24gdWooYSl7dmFyIGI9YS5tZW1vaXplZFN0YXRlLGM9MDtudWxsIT09YiYmKGM9Yi5yZXRyeUxhbmUpO1lrKGEsYyl9XG5mdW5jdGlvbiBiayhhLGIpe3ZhciBjPTA7c3dpdGNoKGEudGFnKXtjYXNlIDEzOnZhciBkPWEuc3RhdGVOb2RlO3ZhciBlPWEubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGM9ZS5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6ZD1hLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzE0KSk7fW51bGwhPT1kJiZkLmRlbGV0ZShiKTtZayhhLGMpfXZhciBWaztcblZrPWZ1bmN0aW9uKGEsYixjKXtpZihudWxsIT09YSlpZihhLm1lbW9pemVkUHJvcHMhPT1iLnBlbmRpbmdQcm9wc3x8V2YuY3VycmVudClkaD0hMDtlbHNle2lmKDA9PT0oYS5sYW5lcyZjKSYmMD09PShiLmZsYWdzJjEyOCkpcmV0dXJuIGRoPSExLHlqKGEsYixjKTtkaD0wIT09KGEuZmxhZ3MmMTMxMDcyKT8hMDohMX1lbHNlIGRoPSExLEkmJjAhPT0oYi5mbGFncyYxMDQ4NTc2KSYmdWcoYixuZyxiLmluZGV4KTtiLmxhbmVzPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6dmFyIGQ9Yi50eXBlO2lqKGEsYik7YT1iLnBlbmRpbmdQcm9wczt2YXIgZT1ZZihiLEguY3VycmVudCk7Y2goYixjKTtlPU5oKG51bGwsYixkLGEsZSxjKTt2YXIgZj1TaCgpO2IuZmxhZ3N8PTE7XCJvYmplY3RcIj09PXR5cGVvZiBlJiZudWxsIT09ZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGUucmVuZGVyJiZ2b2lkIDA9PT1lLiQkdHlwZW9mPyhiLnRhZz0xLGIubWVtb2l6ZWRTdGF0ZT1udWxsLGIudXBkYXRlUXVldWU9XG5udWxsLFpmKGQpPyhmPSEwLGNnKGIpKTpmPSExLGIubWVtb2l6ZWRTdGF0ZT1udWxsIT09ZS5zdGF0ZSYmdm9pZCAwIT09ZS5zdGF0ZT9lLnN0YXRlOm51bGwsa2goYiksZS51cGRhdGVyPUVpLGIuc3RhdGVOb2RlPWUsZS5fcmVhY3RJbnRlcm5hbHM9YixJaShiLGQsYSxjKSxiPWpqKG51bGwsYixkLCEwLGYsYykpOihiLnRhZz0wLEkmJmYmJnZnKGIpLFhpKG51bGwsYixlLGMpLGI9Yi5jaGlsZCk7cmV0dXJuIGI7Y2FzZSAxNjpkPWIuZWxlbWVudFR5cGU7YTp7aWooYSxiKTthPWIucGVuZGluZ1Byb3BzO2U9ZC5faW5pdDtkPWUoZC5fcGF5bG9hZCk7Yi50eXBlPWQ7ZT1iLnRhZz1aayhkKTthPUNpKGQsYSk7c3dpdGNoKGUpe2Nhc2UgMDpiPWNqKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE6Yj1oaihudWxsLGIsZCxhLGMpO2JyZWFrIGE7Y2FzZSAxMTpiPVlpKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE0OmI9JGkobnVsbCxiLGQsQ2koZC50eXBlLGEpLGMpO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgzMDYsXG5kLFwiXCIpKTt9cmV0dXJuIGI7Y2FzZSAwOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLGNqKGEsYixkLGUsYyk7Y2FzZSAxOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLGhqKGEsYixkLGUsYyk7Y2FzZSAzOmE6e2tqKGIpO2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzg3KSk7ZD1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRTdGF0ZTtlPWYuZWxlbWVudDtsaChhLGIpO3FoKGIsZCxudWxsLGMpO3ZhciBnPWIubWVtb2l6ZWRTdGF0ZTtkPWcuZWxlbWVudDtpZihmLmlzRGVoeWRyYXRlZClpZihmPXtlbGVtZW50OmQsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOmcuY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpnLnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6Zy50cmFuc2l0aW9uc30sYi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9XG5mLGIubWVtb2l6ZWRTdGF0ZT1mLGIuZmxhZ3MmMjU2KXtlPUppKEVycm9yKHAoNDIzKSksYik7Yj1saihhLGIsZCxjLGUpO2JyZWFrIGF9ZWxzZSBpZihkIT09ZSl7ZT1KaShFcnJvcihwKDQyNCkpLGIpO2I9bGooYSxiLGQsYyxlKTticmVhayBhfWVsc2UgZm9yKHlnPUxmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCkseGc9YixJPSEwLHpnPW51bGwsYz1WZyhiLG51bGwsZCxjKSxiLmNoaWxkPWM7YzspYy5mbGFncz1jLmZsYWdzJi0zfDQwOTYsYz1jLnNpYmxpbmc7ZWxzZXtJZygpO2lmKGQ9PT1lKXtiPVppKGEsYixjKTticmVhayBhfVhpKGEsYixkLGMpfWI9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDU6cmV0dXJuIEFoKGIpLG51bGw9PT1hJiZFZyhiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsZz1lLmNoaWxkcmVuLEVmKGQsZSk/Zz1udWxsOm51bGwhPT1mJiZFZihkLGYpJiYoYi5mbGFnc3w9MzIpLFxuZ2ooYSxiKSxYaShhLGIsZyxjKSxiLmNoaWxkO2Nhc2UgNjpyZXR1cm4gbnVsbD09PWEmJkVnKGIpLG51bGw7Y2FzZSAxMzpyZXR1cm4gb2ooYSxiLGMpO2Nhc2UgNDpyZXR1cm4geWgoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkPWIucGVuZGluZ1Byb3BzLG51bGw9PT1hP2IuY2hpbGQ9VWcoYixudWxsLGQsYyk6WGkoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDExOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpDaShkLGUpLFlpKGEsYixkLGUsYyk7Y2FzZSA3OnJldHVybiBYaShhLGIsYi5wZW5kaW5nUHJvcHMsYyksYi5jaGlsZDtjYXNlIDg6cmV0dXJuIFhpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIFhpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRQcm9wcztcbmc9ZS52YWx1ZTtHKFdnLGQuX2N1cnJlbnRWYWx1ZSk7ZC5fY3VycmVudFZhbHVlPWc7aWYobnVsbCE9PWYpaWYoSGUoZi52YWx1ZSxnKSl7aWYoZi5jaGlsZHJlbj09PWUuY2hpbGRyZW4mJiFXZi5jdXJyZW50KXtiPVppKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihmPWIuY2hpbGQsbnVsbCE9PWYmJihmLnJldHVybj1iKTtudWxsIT09Zjspe3ZhciBoPWYuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1oKXtnPWYuY2hpbGQ7Zm9yKHZhciBrPWguZmlyc3RDb250ZXh0O251bGwhPT1rOyl7aWYoay5jb250ZXh0PT09ZCl7aWYoMT09PWYudGFnKXtrPW1oKC0xLGMmLWMpO2sudGFnPTI7dmFyIGw9Zi51cGRhdGVRdWV1ZTtpZihudWxsIT09bCl7bD1sLnNoYXJlZDt2YXIgbT1sLnBlbmRpbmc7bnVsbD09PW0/ay5uZXh0PWs6KGsubmV4dD1tLm5leHQsbS5uZXh0PWspO2wucGVuZGluZz1rfX1mLmxhbmVzfD1jO2s9Zi5hbHRlcm5hdGU7bnVsbCE9PWsmJihrLmxhbmVzfD1jKTtiaChmLnJldHVybixcbmMsYik7aC5sYW5lc3w9YzticmVha31rPWsubmV4dH19ZWxzZSBpZigxMD09PWYudGFnKWc9Zi50eXBlPT09Yi50eXBlP251bGw6Zi5jaGlsZDtlbHNlIGlmKDE4PT09Zi50YWcpe2c9Zi5yZXR1cm47aWYobnVsbD09PWcpdGhyb3cgRXJyb3IocCgzNDEpKTtnLmxhbmVzfD1jO2g9Zy5hbHRlcm5hdGU7bnVsbCE9PWgmJihoLmxhbmVzfD1jKTtiaChnLGMsYik7Zz1mLnNpYmxpbmd9ZWxzZSBnPWYuY2hpbGQ7aWYobnVsbCE9PWcpZy5yZXR1cm49ZjtlbHNlIGZvcihnPWY7bnVsbCE9PWc7KXtpZihnPT09Yil7Zz1udWxsO2JyZWFrfWY9Zy5zaWJsaW5nO2lmKG51bGwhPT1mKXtmLnJldHVybj1nLnJldHVybjtnPWY7YnJlYWt9Zz1nLnJldHVybn1mPWd9WGkoYSxiLGUuY2hpbGRyZW4sYyk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgOTpyZXR1cm4gZT1iLnR5cGUsZD1iLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjaChiLGMpLGU9ZWgoZSksZD1kKGUpLGIuZmxhZ3N8PTEsWGkoYSxiLGQsYyksXG5iLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGQ9Yi50eXBlLGU9Q2koZCxiLnBlbmRpbmdQcm9wcyksZT1DaShkLnR5cGUsZSksJGkoYSxiLGQsZSxjKTtjYXNlIDE1OnJldHVybiBiaihhLGIsYi50eXBlLGIucGVuZGluZ1Byb3BzLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkNpKGQsZSksaWooYSxiKSxiLnRhZz0xLFpmKGQpPyhhPSEwLGNnKGIpKTphPSExLGNoKGIsYyksR2koYixkLGUpLElpKGIsZCxlLGMpLGpqKG51bGwsYixkLCEwLGEsYyk7Y2FzZSAxOTpyZXR1cm4geGooYSxiLGMpO2Nhc2UgMjI6cmV0dXJuIGRqKGEsYixjKX10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO307ZnVuY3Rpb24gRmsoYSxiKXtyZXR1cm4gYWMoYSxiKX1cbmZ1bmN0aW9uICRrKGEsYixjLGQpe3RoaXMudGFnPWE7dGhpcy5rZXk9Yzt0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsO3RoaXMuaW5kZXg9MDt0aGlzLnJlZj1udWxsO3RoaXMucGVuZGluZ1Byb3BzPWI7dGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGw7dGhpcy5tb2RlPWQ7dGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wO3RoaXMuZGVsZXRpb25zPW51bGw7dGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MDt0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEJnKGEsYixjLGQpe3JldHVybiBuZXcgJGsoYSxiLGMsZCl9ZnVuY3Rpb24gYWooYSl7YT1hLnByb3RvdHlwZTtyZXR1cm4hKCFhfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1cbmZ1bmN0aW9uIFprKGEpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhaihhKT8xOjA7aWYodm9pZCAwIT09YSYmbnVsbCE9PWEpe2E9YS4kJHR5cGVvZjtpZihhPT09RGEpcmV0dXJuIDExO2lmKGE9PT1HYSlyZXR1cm4gMTR9cmV0dXJuIDJ9XG5mdW5jdGlvbiBQZyhhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO251bGw9PT1jPyhjPUJnKGEudGFnLGIsYS5rZXksYS5tb2RlKSxjLmVsZW1lbnRUeXBlPWEuZWxlbWVudFR5cGUsYy50eXBlPWEudHlwZSxjLnN0YXRlTm9kZT1hLnN0YXRlTm9kZSxjLmFsdGVybmF0ZT1hLGEuYWx0ZXJuYXRlPWMpOihjLnBlbmRpbmdQcm9wcz1iLGMudHlwZT1hLnR5cGUsYy5mbGFncz0wLGMuc3VidHJlZUZsYWdzPTAsYy5kZWxldGlvbnM9bnVsbCk7Yy5mbGFncz1hLmZsYWdzJjE0NjgwMDY0O2MuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXM7Yy5sYW5lcz1hLmxhbmVzO2MuY2hpbGQ9YS5jaGlsZDtjLm1lbW9pemVkUHJvcHM9YS5tZW1vaXplZFByb3BzO2MubWVtb2l6ZWRTdGF0ZT1hLm1lbW9pemVkU3RhdGU7Yy51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlO2I9YS5kZXBlbmRlbmNpZXM7Yy5kZXBlbmRlbmNpZXM9bnVsbD09PWI/bnVsbDp7bGFuZXM6Yi5sYW5lcyxmaXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHR9O1xuYy5zaWJsaW5nPWEuc2libGluZztjLmluZGV4PWEuaW5kZXg7Yy5yZWY9YS5yZWY7cmV0dXJuIGN9XG5mdW5jdGlvbiBSZyhhLGIsYyxkLGUsZil7dmFyIGc9MjtkPWE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpYWooYSkmJihnPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKWc9NTtlbHNlIGE6c3dpdGNoKGEpe2Nhc2UgeWE6cmV0dXJuIFRnKGMuY2hpbGRyZW4sZSxmLGIpO2Nhc2UgemE6Zz04O2V8PTg7YnJlYWs7Y2FzZSBBYTpyZXR1cm4gYT1CZygxMixjLGIsZXwyKSxhLmVsZW1lbnRUeXBlPUFhLGEubGFuZXM9ZixhO2Nhc2UgRWE6cmV0dXJuIGE9QmcoMTMsYyxiLGUpLGEuZWxlbWVudFR5cGU9RWEsYS5sYW5lcz1mLGE7Y2FzZSBGYTpyZXR1cm4gYT1CZygxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1GYSxhLmxhbmVzPWYsYTtjYXNlIElhOnJldHVybiBwaihjLGUsZixiKTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgQmE6Zz0xMDticmVhayBhO2Nhc2UgQ2E6Zz05O2JyZWFrIGE7Y2FzZSBEYTpnPTExO1xuYnJlYWsgYTtjYXNlIEdhOmc9MTQ7YnJlYWsgYTtjYXNlIEhhOmc9MTY7ZD1udWxsO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgxMzAsbnVsbD09YT9hOnR5cGVvZiBhLFwiXCIpKTt9Yj1CZyhnLGMsYixlKTtiLmVsZW1lbnRUeXBlPWE7Yi50eXBlPWQ7Yi5sYW5lcz1mO3JldHVybiBifWZ1bmN0aW9uIFRnKGEsYixjLGQpe2E9QmcoNyxhLGQsYik7YS5sYW5lcz1jO3JldHVybiBhfWZ1bmN0aW9uIHBqKGEsYixjLGQpe2E9QmcoMjIsYSxkLGIpO2EuZWxlbWVudFR5cGU9SWE7YS5sYW5lcz1jO2Euc3RhdGVOb2RlPXtpc0hpZGRlbjohMX07cmV0dXJuIGF9ZnVuY3Rpb24gUWcoYSxiLGMpe2E9QmcoNixhLG51bGwsYik7YS5sYW5lcz1jO3JldHVybiBhfVxuZnVuY3Rpb24gU2coYSxiLGMpe2I9QmcoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IubGFuZXM9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiBhbChhLGIsYyxkLGUpe3RoaXMudGFnPWI7dGhpcy5jb250YWluZXJJbmZvPWE7dGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGw7dGhpcy50aW1lb3V0SGFuZGxlPS0xO3RoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGw7dGhpcy5jYWxsYmFja1ByaW9yaXR5PTA7dGhpcy5ldmVudFRpbWVzPXpjKDApO3RoaXMuZXhwaXJhdGlvblRpbWVzPXpjKC0xKTt0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTA7dGhpcy5lbnRhbmdsZW1lbnRzPXpjKDApO3RoaXMuaWRlbnRpZmllclByZWZpeD1kO3RoaXMub25SZWNvdmVyYWJsZUVycm9yPWU7dGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVxubnVsbH1mdW5jdGlvbiBibChhLGIsYyxkLGUsZixnLGgsayl7YT1uZXcgYWwoYSxiLGMsaCxrKTsxPT09Yj8oYj0xLCEwPT09ZiYmKGJ8PTgpKTpiPTA7Zj1CZygzLG51bGwsbnVsbCxiKTthLmN1cnJlbnQ9ZjtmLnN0YXRlTm9kZT1hO2YubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpkLGlzRGVoeWRyYXRlZDpjLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9O2toKGYpO3JldHVybiBhfWZ1bmN0aW9uIGNsKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6d2Esa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5mdW5jdGlvbiBkbChhKXtpZighYSlyZXR1cm4gVmY7YT1hLl9yZWFjdEludGVybmFsczthOntpZihWYihhKSE9PWF8fDEhPT1hLnRhZyl0aHJvdyBFcnJvcihwKDE3MCkpO3ZhciBiPWE7ZG97c3dpdGNoKGIudGFnKXtjYXNlIDM6Yj1iLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGE7Y2FzZSAxOmlmKFpmKGIudHlwZSkpe2I9Yi5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYX19Yj1iLnJldHVybn13aGlsZShudWxsIT09Yik7dGhyb3cgRXJyb3IocCgxNzEpKTt9aWYoMT09PWEudGFnKXt2YXIgYz1hLnR5cGU7aWYoWmYoYykpcmV0dXJuIGJnKGEsYyxiKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGVsKGEsYixjLGQsZSxmLGcsaCxrKXthPWJsKGMsZCwhMCxhLGUsZixnLGgsayk7YS5jb250ZXh0PWRsKG51bGwpO2M9YS5jdXJyZW50O2Q9UigpO2U9eWkoYyk7Zj1taChkLGUpO2YuY2FsbGJhY2s9dm9pZCAwIT09YiYmbnVsbCE9PWI/YjpudWxsO25oKGMsZixlKTthLmN1cnJlbnQubGFuZXM9ZTtBYyhhLGUsZCk7RGsoYSxkKTtyZXR1cm4gYX1mdW5jdGlvbiBmbChhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1SKCksZz15aShlKTtjPWRsKGMpO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9bWgoZixnKTtiLnBheWxvYWQ9e2VsZW1lbnQ6YX07ZD12b2lkIDA9PT1kP251bGw6ZDtudWxsIT09ZCYmKGIuY2FsbGJhY2s9ZCk7YT1uaChlLGIsZyk7bnVsbCE9PWEmJihnaShhLGUsZyxmKSxvaChhLGUsZykpO3JldHVybiBnfVxuZnVuY3Rpb24gZ2woYSl7YT1hLmN1cnJlbnQ7aWYoIWEuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGEuY2hpbGQudGFnKXtjYXNlIDU6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlO2RlZmF1bHQ6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlfX1mdW5jdGlvbiBobChhLGIpe2E9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXt2YXIgYz1hLnJldHJ5TGFuZTthLnJldHJ5TGFuZT0wIT09YyYmYzxiP2M6Yn19ZnVuY3Rpb24gaWwoYSxiKXtobChhLGIpOyhhPWEuYWx0ZXJuYXRlKSYmaGwoYSxiKX1mdW5jdGlvbiBqbCgpe3JldHVybiBudWxsfXZhciBrbD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oYSl7Y29uc29sZS5lcnJvcihhKX07ZnVuY3Rpb24gbGwoYSl7dGhpcy5faW50ZXJuYWxSb290PWF9XG5tbC5wcm90b3R5cGUucmVuZGVyPWxsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGw9PT1iKXRocm93IEVycm9yKHAoNDA5KSk7ZmwoYSxiLG51bGwsbnVsbCl9O21sLnByb3RvdHlwZS51bm1vdW50PWxsLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGwhPT1hKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgYj1hLmNvbnRhaW5lckluZm87UmsoZnVuY3Rpb24oKXtmbChudWxsLGEsbnVsbCxudWxsKX0pO2JbdWZdPW51bGx9fTtmdW5jdGlvbiBtbChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1cbm1sLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1IYygpO2E9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDphLHByaW9yaXR5OmJ9O2Zvcih2YXIgYz0wO2M8UWMubGVuZ3RoJiYwIT09YiYmYjxRY1tjXS5wcmlvcml0eTtjKyspO1FjLnNwbGljZShjLDAsYSk7MD09PWMmJlZjKGEpfX07ZnVuY3Rpb24gbmwoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUpfWZ1bmN0aW9uIG9sKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlJiYoOCE9PWEubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09YS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBwbCgpe31cbmZ1bmN0aW9uIHFsKGEsYixjLGQsZSl7aWYoZSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBmPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWdsKGcpO2YuY2FsbChhKX19dmFyIGc9ZWwoYixkLGEsMCxudWxsLCExLCExLFwiXCIscGwpO2EuX3JlYWN0Um9vdENvbnRhaW5lcj1nO2FbdWZdPWcuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7UmsoKTtyZXR1cm4gZ31mb3IoO2U9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoZSk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBoPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWdsKGspO2guY2FsbChhKX19dmFyIGs9YmwoYSwwLCExLG51bGwsbnVsbCwhMSwhMSxcIlwiLHBsKTthLl9yZWFjdFJvb3RDb250YWluZXI9azthW3VmXT1rLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO1JrKGZ1bmN0aW9uKCl7ZmwoYixrLGMsZCl9KTtyZXR1cm4ga31cbmZ1bmN0aW9uIHJsKGEsYixjLGQsZSl7dmFyIGY9Yy5fcmVhY3RSb290Q29udGFpbmVyO2lmKGYpe3ZhciBnPWY7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBoPWU7ZT1mdW5jdGlvbigpe3ZhciBhPWdsKGcpO2guY2FsbChhKX19ZmwoYixnLGEsZSl9ZWxzZSBnPXFsKGMsYixhLGUsZCk7cmV0dXJuIGdsKGcpfUVjPWZ1bmN0aW9uKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAzOnZhciBiPWEuc3RhdGVOb2RlO2lmKGIuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dmFyIGM9dGMoYi5wZW5kaW5nTGFuZXMpOzAhPT1jJiYoQ2MoYixjfDEpLERrKGIsQigpKSwwPT09KEsmNikmJihHaj1CKCkrNTAwLGpnKCkpKX1icmVhaztjYXNlIDEzOlJrKGZ1bmN0aW9uKCl7dmFyIGI9aWgoYSwxKTtpZihudWxsIT09Yil7dmFyIGM9UigpO2dpKGIsYSwxLGMpfX0pLGlsKGEsMSl9fTtcbkZjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPWloKGEsMTM0MjE3NzI4KTtpZihudWxsIT09Yil7dmFyIGM9UigpO2dpKGIsYSwxMzQyMTc3MjgsYyl9aWwoYSwxMzQyMTc3MjgpfX07R2M9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9eWkoYSksYz1paChhLGIpO2lmKG51bGwhPT1jKXt2YXIgZD1SKCk7Z2koYyxhLGIsZCl9aWwoYSxiKX19O0hjPWZ1bmN0aW9uKCl7cmV0dXJuIEN9O0ljPWZ1bmN0aW9uKGEsYil7dmFyIGM9Qzt0cnl7cmV0dXJuIEM9YSxiKCl9ZmluYWxseXtDPWN9fTtcbnliPWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYil7Y2FzZSBcImlucHV0XCI6YmIoYSxjKTtiPWMubmFtZTtpZihcInJhZGlvXCI9PT1jLnR5cGUmJm51bGwhPWIpe2ZvcihjPWE7Yy5wYXJlbnROb2RlOyljPWMucGFyZW50Tm9kZTtjPWMucXVlcnlTZWxlY3RvckFsbChcImlucHV0W25hbWU9XCIrSlNPTi5zdHJpbmdpZnkoXCJcIitiKSsnXVt0eXBlPVwicmFkaW9cIl0nKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdO2lmKGQhPT1hJiZkLmZvcm09PT1hLmZvcm0pe3ZhciBlPURiKGQpO2lmKCFlKXRocm93IEVycm9yKHAoOTApKTtXYShkKTtiYihkLGUpfX19YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aWIoYSxjKTticmVhaztjYXNlIFwic2VsZWN0XCI6Yj1jLnZhbHVlLG51bGwhPWImJmZiKGEsISFjLm11bHRpcGxlLGIsITEpfX07R2I9UWs7SGI9Ums7XG52YXIgc2w9e3VzaW5nQ2xpZW50RW50cnlQb2ludDohMSxFdmVudHM6W0NiLHVlLERiLEViLEZiLFFrXX0sdGw9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOldjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTguMy4xXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifTtcbnZhciB1bD17YnVuZGxlVHlwZTp0bC5idW5kbGVUeXBlLHZlcnNpb246dGwudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOnRsLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6dGwucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldEVycm9ySGFuZGxlcjpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPVpiKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp0bC5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8XG5qbCxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsLHJlY29uY2lsZXJWZXJzaW9uOlwiMTguMy4xLW5leHQtZjEzMzhmODA4MC0yMDI0MDQyNlwifTtpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyl7dmFyIHZsPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZighdmwuaXNEaXNhYmxlZCYmdmwuc3VwcG9ydHNGaWJlcil0cnl7a2M9dmwuaW5qZWN0KHVsKSxsYz12bH1jYXRjaChhKXt9fWV4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9c2w7XG5leHBvcnRzLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihhLGIpe3ZhciBjPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFubChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBjbChhLGIsbnVsbCxjKX07ZXhwb3J0cy5jcmVhdGVSb290PWZ1bmN0aW9uKGEsYil7aWYoIW5sKGEpKXRocm93IEVycm9yKHAoMjk5KSk7dmFyIGM9ITEsZD1cIlwiLGU9a2w7bnVsbCE9PWImJnZvaWQgMCE9PWImJighMD09PWIudW5zdGFibGVfc3RyaWN0TW9kZSYmKGM9ITApLHZvaWQgMCE9PWIuaWRlbnRpZmllclByZWZpeCYmKGQ9Yi5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1iLm9uUmVjb3ZlcmFibGVFcnJvciYmKGU9Yi5vblJlY292ZXJhYmxlRXJyb3IpKTtiPWJsKGEsMSwhMSxudWxsLG51bGwsYywhMSxkLGUpO2FbdWZdPWIuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7cmV0dXJuIG5ldyBsbChiKX07XG5leHBvcnRzLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGEpe2lmKG51bGw9PWEpcmV0dXJuIG51bGw7aWYoMT09PWEubm9kZVR5cGUpcmV0dXJuIGE7dmFyIGI9YS5fcmVhY3RJbnRlcm5hbHM7aWYodm9pZCAwPT09Yil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEucmVuZGVyKXRocm93IEVycm9yKHAoMTg4KSk7YT1PYmplY3Qua2V5cyhhKS5qb2luKFwiLFwiKTt0aHJvdyBFcnJvcihwKDI2OCxhKSk7fWE9WmIoYik7YT1udWxsPT09YT9udWxsOmEuc3RhdGVOb2RlO3JldHVybiBhfTtleHBvcnRzLmZsdXNoU3luYz1mdW5jdGlvbihhKXtyZXR1cm4gUmsoYSl9O2V4cG9ydHMuaHlkcmF0ZT1mdW5jdGlvbihhLGIsYyl7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwsYSxiLCEwLGMpfTtcbmV4cG9ydHMuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oYSxiLGMpe2lmKCFubChhKSl0aHJvdyBFcnJvcihwKDQwNSkpO3ZhciBkPW51bGwhPWMmJmMuaHlkcmF0ZWRTb3VyY2VzfHxudWxsLGU9ITEsZj1cIlwiLGc9a2w7bnVsbCE9PWMmJnZvaWQgMCE9PWMmJighMD09PWMudW5zdGFibGVfc3RyaWN0TW9kZSYmKGU9ITApLHZvaWQgMCE9PWMuaWRlbnRpZmllclByZWZpeCYmKGY9Yy5pZGVudGlmaWVyUHJlZml4KSx2b2lkIDAhPT1jLm9uUmVjb3ZlcmFibGVFcnJvciYmKGc9Yy5vblJlY292ZXJhYmxlRXJyb3IpKTtiPWVsKGIsbnVsbCxhLDEsbnVsbCE9Yz9jOm51bGwsZSwhMSxmLGcpO2FbdWZdPWIuY3VycmVudDtzZihhKTtpZihkKWZvcihhPTA7YTxkLmxlbmd0aDthKyspYz1kW2FdLGU9Yy5fZ2V0VmVyc2lvbixlPWUoYy5fc291cmNlKSxudWxsPT1iLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE/Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVtjLGVdOmIubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YS5wdXNoKGMsXG5lKTtyZXR1cm4gbmV3IG1sKGIpfTtleHBvcnRzLnJlbmRlcj1mdW5jdGlvbihhLGIsYyl7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIHJsKG51bGwsYSxiLCExLGMpfTtleHBvcnRzLnVubW91bnRDb21wb25lbnRBdE5vZGU9ZnVuY3Rpb24oYSl7aWYoIW9sKGEpKXRocm93IEVycm9yKHAoNDApKTtyZXR1cm4gYS5fcmVhY3RSb290Q29udGFpbmVyPyhSayhmdW5jdGlvbigpe3JsKG51bGwsbnVsbCxhLCExLGZ1bmN0aW9uKCl7YS5fcmVhY3RSb290Q29udGFpbmVyPW51bGw7YVt1Zl09bnVsbH0pfSksITApOiExfTtleHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPVFrO1xuZXhwb3J0cy51bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcj1mdW5jdGlvbihhLGIsYyxkKXtpZighb2woYykpdGhyb3cgRXJyb3IocCgyMDApKTtpZihudWxsPT1hfHx2b2lkIDA9PT1hLl9yZWFjdEludGVybmFscyl0aHJvdyBFcnJvcihwKDM4KSk7cmV0dXJuIHJsKGEsYixjLCExLGQpfTtleHBvcnRzLnZlcnNpb249XCIxOC4zLjEtbmV4dC1mMTMzOGY4MDgwLTIwMjQwNDI2XCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBtID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBtLmNyZWF0ZVJvb3Q7XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBtLmh5ZHJhdGVSb290O1xufSBlbHNlIHtcbiAgdmFyIGkgPSBtLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBmdW5jdGlvbihjLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5jcmVhdGVSb290KGMsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIGgsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmh5ZHJhdGVSb290KGMsIGgsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbn1cbiIsIi8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IDIwMjEgZUJheSBJbmMuXG5cbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZVxuICogbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIG9yIGF0XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVC5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyoqXG4gKiBAbW9kdWxlIE5pY2VNb2RhbFxuICogKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VSZWR1Y2VyLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xudmFyIHN5bU1vZGFsSWQgPSBTeW1ib2woJ05pY2VNb2RhbElkJyk7XG52YXIgaW5pdGlhbFN0YXRlID0ge307XG5leHBvcnQgdmFyIE5pY2VNb2RhbENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KGluaXRpYWxTdGF0ZSk7XG52YXIgTmljZU1vZGFsSWRDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbnZhciBNT0RBTF9SRUdJU1RSWSA9IHt9O1xudmFyIEFMUkVBRFlfTU9VTlRFRCA9IHt9O1xudmFyIHVpZFNlZWQgPSAwO1xudmFyIGRpc3BhdGNoID0gZnVuY3Rpb24gKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gZGlzcGF0Y2ggbWV0aG9kIGRldGVjdGVkLCBkaWQgeW91IGVtYmVkIHlvdXIgYXBwIHdpdGggTmljZU1vZGFsLlByb3ZpZGVyPycpO1xufTtcbnZhciBnZXRVaWQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBcIl9uaWNlX21vZGFsX1wiICsgdWlkU2VlZCsrOyB9O1xuLy8gTW9kYWwgcmVkdWNlciB1c2VkIGluIHVzZVJlZHVjZXIgaG9vay5cbmV4cG9ydCB2YXIgcmVkdWNlciA9IGZ1bmN0aW9uIChzdGF0ZSwgYWN0aW9uKSB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgaWYgKHN0YXRlID09PSB2b2lkIDApIHsgc3RhdGUgPSBpbml0aWFsU3RhdGU7IH1cbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ25pY2UtbW9kYWwvc2hvdyc6IHtcbiAgICAgICAgICAgIHZhciBfZCA9IGFjdGlvbi5wYXlsb2FkLCBtb2RhbElkID0gX2QubW9kYWxJZCwgYXJncyA9IF9kLmFyZ3M7XG4gICAgICAgICAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgKF9hID0ge30sIF9hW21vZGFsSWRdID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlW21vZGFsSWRdKSwgeyBpZDogbW9kYWxJZCwgYXJnczogYXJncywgXG4gICAgICAgICAgICAgICAgLy8gSWYgbW9kYWwgaXMgbm90IG1vdW50ZWQsIG1vdW50IGl0IGZpcnN0IHRoZW4gbWFrZSBpdCB2aXNpYmxlLlxuICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGxvZ2ljIGluc2lkZSBIT0Mgd3JhcHBlciB0byBtYWtlIGl0IHZpc2libGUgYWZ0ZXIgaXRzIGZpcnN0IG1vdW50LlxuICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVjaGFuaXNtIGVuc3VyZXMgdGhlIGVudGVyaW5nIHRyYW5zaXRpb24uXG4gICAgICAgICAgICAgICAgdmlzaWJsZTogISFBTFJFQURZX01PVU5URURbbW9kYWxJZF0sIGRlbGF5VmlzaWJsZTogIUFMUkVBRFlfTU9VTlRFRFttb2RhbElkXSB9KSwgX2EpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICduaWNlLW1vZGFsL2hpZGUnOiB7XG4gICAgICAgICAgICB2YXIgbW9kYWxJZCA9IGFjdGlvbi5wYXlsb2FkLm1vZGFsSWQ7XG4gICAgICAgICAgICBpZiAoIXN0YXRlW21vZGFsSWRdKVxuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGUpLCAoX2IgPSB7fSwgX2JbbW9kYWxJZF0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGVbbW9kYWxJZF0pLCB7IHZpc2libGU6IGZhbHNlIH0pLCBfYikpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ25pY2UtbW9kYWwvcmVtb3ZlJzoge1xuICAgICAgICAgICAgdmFyIG1vZGFsSWQgPSBhY3Rpb24ucGF5bG9hZC5tb2RhbElkO1xuICAgICAgICAgICAgdmFyIG5ld1N0YXRlID0gX19hc3NpZ24oe30sIHN0YXRlKTtcbiAgICAgICAgICAgIGRlbGV0ZSBuZXdTdGF0ZVttb2RhbElkXTtcbiAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICduaWNlLW1vZGFsL3NldC1mbGFncyc6IHtcbiAgICAgICAgICAgIHZhciBfZSA9IGFjdGlvbi5wYXlsb2FkLCBtb2RhbElkID0gX2UubW9kYWxJZCwgZmxhZ3MgPSBfZS5mbGFncztcbiAgICAgICAgICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGUpLCAoX2MgPSB7fSwgX2NbbW9kYWxJZF0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc3RhdGVbbW9kYWxJZF0pLCBmbGFncyksIF9jKSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG59O1xuLy8gR2V0IG1vZGFsIGNvbXBvbmVudCBieSBtb2RhbCBpZFxuZnVuY3Rpb24gZ2V0TW9kYWwobW9kYWxJZCkge1xuICAgIHZhciBfYTtcbiAgICByZXR1cm4gKF9hID0gTU9EQUxfUkVHSVNUUllbbW9kYWxJZF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb21wO1xufVxuLy8gYWN0aW9uIGNyZWF0b3IgdG8gc2hvdyBhIG1vZGFsXG5mdW5jdGlvbiBzaG93TW9kYWwobW9kYWxJZCwgYXJncykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICduaWNlLW1vZGFsL3Nob3cnLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBtb2RhbElkOiBtb2RhbElkLFxuICAgICAgICAgICAgYXJnczogYXJncyxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuLy8gYWN0aW9uIGNyZWF0b3IgdG8gc2V0IGZsYWdzIG9mIGEgbW9kYWxcbmZ1bmN0aW9uIHNldE1vZGFsRmxhZ3MobW9kYWxJZCwgZmxhZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnbmljZS1tb2RhbC9zZXQtZmxhZ3MnLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICBtb2RhbElkOiBtb2RhbElkLFxuICAgICAgICAgICAgZmxhZ3M6IGZsYWdzLFxuICAgICAgICB9LFxuICAgIH07XG59XG4vLyBhY3Rpb24gY3JlYXRvciB0byBoaWRlIGEgbW9kYWxcbmZ1bmN0aW9uIGhpZGVNb2RhbChtb2RhbElkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ25pY2UtbW9kYWwvaGlkZScsXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIG1vZGFsSWQ6IG1vZGFsSWQsXG4gICAgICAgIH0sXG4gICAgfTtcbn1cbi8vIGFjdGlvbiBjcmVhdG9yIHRvIHJlbW92ZSBhIG1vZGFsXG5mdW5jdGlvbiByZW1vdmVNb2RhbChtb2RhbElkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ25pY2UtbW9kYWwvcmVtb3ZlJyxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgbW9kYWxJZDogbW9kYWxJZCxcbiAgICAgICAgfSxcbiAgICB9O1xufVxudmFyIG1vZGFsQ2FsbGJhY2tzID0ge307XG52YXIgaGlkZU1vZGFsQ2FsbGJhY2tzID0ge307XG52YXIgZ2V0TW9kYWxJZCA9IGZ1bmN0aW9uIChtb2RhbCkge1xuICAgIGlmICh0eXBlb2YgbW9kYWwgPT09ICdzdHJpbmcnKVxuICAgICAgICByZXR1cm4gbW9kYWw7XG4gICAgaWYgKCFtb2RhbFtzeW1Nb2RhbElkXSkge1xuICAgICAgICBtb2RhbFtzeW1Nb2RhbElkXSA9IGdldFVpZCgpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kYWxbc3ltTW9kYWxJZF07XG59O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXNcbmV4cG9ydCBmdW5jdGlvbiBzaG93KG1vZGFsLCBhcmdzKSB7XG4gICAgdmFyIG1vZGFsSWQgPSBnZXRNb2RhbElkKG1vZGFsKTtcbiAgICBpZiAodHlwZW9mIG1vZGFsICE9PSAnc3RyaW5nJyAmJiAhTU9EQUxfUkVHSVNUUllbbW9kYWxJZF0pIHtcbiAgICAgICAgcmVnaXN0ZXIobW9kYWxJZCwgbW9kYWwpO1xuICAgIH1cbiAgICBkaXNwYXRjaChzaG93TW9kYWwobW9kYWxJZCwgYXJncykpO1xuICAgIGlmICghbW9kYWxDYWxsYmFja3NbbW9kYWxJZF0pIHtcbiAgICAgICAgLy8gYCFgIHRlbGwgdHMgdGhhdCB0aGVSZXNvbHZlIHdpbGwgYmUgd3JpdHRlbiBiZWZvcmUgaXQgaXMgdXNlZFxuICAgICAgICB2YXIgdGhlUmVzb2x2ZV8xO1xuICAgICAgICAvLyBgIWAgdGVsbCB0cyB0aGF0IHRoZVJlc29sdmUgd2lsbCBiZSB3cml0dGVuIGJlZm9yZSBpdCBpcyB1c2VkXG4gICAgICAgIHZhciB0aGVSZWplY3RfMTtcbiAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB0aGVSZXNvbHZlXzEgPSByZXNvbHZlO1xuICAgICAgICAgICAgdGhlUmVqZWN0XzEgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBtb2RhbENhbGxiYWNrc1ttb2RhbElkXSA9IHtcbiAgICAgICAgICAgIHJlc29sdmU6IHRoZVJlc29sdmVfMSxcbiAgICAgICAgICAgIHJlamVjdDogdGhlUmVqZWN0XzEsXG4gICAgICAgICAgICBwcm9taXNlOiBwcm9taXNlLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbW9kYWxDYWxsYmFja3NbbW9kYWxJZF0ucHJvbWlzZTtcbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gaGlkZShtb2RhbCkge1xuICAgIHZhciBtb2RhbElkID0gZ2V0TW9kYWxJZChtb2RhbCk7XG4gICAgZGlzcGF0Y2goaGlkZU1vZGFsKG1vZGFsSWQpKTtcbiAgICAvLyBTaG91bGQgYWxzbyBkZWxldGUgdGhlIGNhbGxiYWNrIGZvciBtb2RhbC5yZXNvbHZlICMzNVxuICAgIGRlbGV0ZSBtb2RhbENhbGxiYWNrc1ttb2RhbElkXTtcbiAgICBpZiAoIWhpZGVNb2RhbENhbGxiYWNrc1ttb2RhbElkXSkge1xuICAgICAgICAvLyBgIWAgdGVsbCB0cyB0aGF0IHRoZVJlc29sdmUgd2lsbCBiZSB3cml0dGVuIGJlZm9yZSBpdCBpcyB1c2VkXG4gICAgICAgIHZhciB0aGVSZXNvbHZlXzI7XG4gICAgICAgIC8vIGAhYCB0ZWxsIHRzIHRoYXQgdGhlUmVzb2x2ZSB3aWxsIGJlIHdyaXR0ZW4gYmVmb3JlIGl0IGlzIHVzZWRcbiAgICAgICAgdmFyIHRoZVJlamVjdF8yO1xuICAgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHRoZVJlc29sdmVfMiA9IHJlc29sdmU7XG4gICAgICAgICAgICB0aGVSZWplY3RfMiA9IHJlamVjdDtcbiAgICAgICAgfSk7XG4gICAgICAgIGhpZGVNb2RhbENhbGxiYWNrc1ttb2RhbElkXSA9IHtcbiAgICAgICAgICAgIHJlc29sdmU6IHRoZVJlc29sdmVfMixcbiAgICAgICAgICAgIHJlamVjdDogdGhlUmVqZWN0XzIsXG4gICAgICAgICAgICBwcm9taXNlOiBwcm9taXNlLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaGlkZU1vZGFsQ2FsbGJhY2tzW21vZGFsSWRdLnByb21pc2U7XG59XG5leHBvcnQgdmFyIHJlbW92ZSA9IGZ1bmN0aW9uIChtb2RhbCkge1xuICAgIHZhciBtb2RhbElkID0gZ2V0TW9kYWxJZChtb2RhbCk7XG4gICAgZGlzcGF0Y2gocmVtb3ZlTW9kYWwobW9kYWxJZCkpO1xuICAgIGRlbGV0ZSBtb2RhbENhbGxiYWNrc1ttb2RhbElkXTtcbiAgICBkZWxldGUgaGlkZU1vZGFsQ2FsbGJhY2tzW21vZGFsSWRdO1xufTtcbnZhciBzZXRGbGFncyA9IGZ1bmN0aW9uIChtb2RhbElkLCBmbGFncykge1xuICAgIGRpc3BhdGNoKHNldE1vZGFsRmxhZ3MobW9kYWxJZCwgZmxhZ3MpKTtcbn07XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vZGFsKG1vZGFsLCBhcmdzKSB7XG4gICAgdmFyIG1vZGFscyA9IHVzZUNvbnRleHQoTmljZU1vZGFsQ29udGV4dCk7XG4gICAgdmFyIGNvbnRleHRNb2RhbElkID0gdXNlQ29udGV4dChOaWNlTW9kYWxJZENvbnRleHQpO1xuICAgIHZhciBtb2RhbElkID0gbnVsbDtcbiAgICB2YXIgaXNVc2VDb21wb25lbnQgPSBtb2RhbCAmJiB0eXBlb2YgbW9kYWwgIT09ICdzdHJpbmcnO1xuICAgIGlmICghbW9kYWwpIHtcbiAgICAgICAgbW9kYWxJZCA9IGNvbnRleHRNb2RhbElkO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbW9kYWxJZCA9IGdldE1vZGFsSWQobW9kYWwpO1xuICAgIH1cbiAgICAvLyBPbmx5IGlmIGNvbnRleHRNb2RhbElkIGRvZXNuJ3QgZXhpc3RcbiAgICBpZiAoIW1vZGFsSWQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gbW9kYWwgaWQgZm91bmQgaW4gTmljZU1vZGFsLnVzZU1vZGFsLicpO1xuICAgIHZhciBtaWQgPSBtb2RhbElkO1xuICAgIC8vIElmIHVzZSBhIGNvbXBvbmVudCBkaXJlY3RseSwgcmVnaXN0ZXIgaXQuXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKGlzVXNlQ29tcG9uZW50ICYmICFNT0RBTF9SRUdJU1RSWVttaWRdKSB7XG4gICAgICAgICAgICByZWdpc3RlcihtaWQsIG1vZGFsLCBhcmdzKTtcbiAgICAgICAgfVxuICAgIH0sIFtpc1VzZUNvbXBvbmVudCwgbWlkLCBtb2RhbCwgYXJnc10pO1xuICAgIHZhciBtb2RhbEluZm8gPSBtb2RhbHNbbWlkXTtcbiAgICB2YXIgc2hvd0NhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGFyZ3MpIHsgcmV0dXJuIHNob3cobWlkLCBhcmdzKTsgfSwgW21pZF0pO1xuICAgIHZhciBoaWRlQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7IHJldHVybiBoaWRlKG1pZCk7IH0sIFttaWRdKTtcbiAgICB2YXIgcmVtb3ZlQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7IHJldHVybiByZW1vdmUobWlkKTsgfSwgW21pZF0pO1xuICAgIHZhciByZXNvbHZlQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoYXJncykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIChfYSA9IG1vZGFsQ2FsbGJhY2tzW21pZF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNvbHZlKGFyZ3MpO1xuICAgICAgICBkZWxldGUgbW9kYWxDYWxsYmFja3NbbWlkXTtcbiAgICB9LCBbbWlkXSk7XG4gICAgdmFyIHJlamVjdENhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBtb2RhbENhbGxiYWNrc1ttaWRdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVqZWN0KGFyZ3MpO1xuICAgICAgICBkZWxldGUgbW9kYWxDYWxsYmFja3NbbWlkXTtcbiAgICB9LCBbbWlkXSk7XG4gICAgdmFyIHJlc29sdmVIaWRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAoX2EgPSBoaWRlTW9kYWxDYWxsYmFja3NbbWlkXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc29sdmUoYXJncyk7XG4gICAgICAgIGRlbGV0ZSBoaWRlTW9kYWxDYWxsYmFja3NbbWlkXTtcbiAgICB9LCBbbWlkXSk7XG4gICAgcmV0dXJuIHVzZU1lbW8oZnVuY3Rpb24gKCkgeyByZXR1cm4gKHtcbiAgICAgICAgaWQ6IG1pZCxcbiAgICAgICAgYXJnczogbW9kYWxJbmZvID09PSBudWxsIHx8IG1vZGFsSW5mbyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9kYWxJbmZvLmFyZ3MsXG4gICAgICAgIHZpc2libGU6ICEhKG1vZGFsSW5mbyA9PT0gbnVsbCB8fCBtb2RhbEluZm8gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsSW5mby52aXNpYmxlKSxcbiAgICAgICAga2VlcE1vdW50ZWQ6ICEhKG1vZGFsSW5mbyA9PT0gbnVsbCB8fCBtb2RhbEluZm8gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsSW5mby5rZWVwTW91bnRlZCksXG4gICAgICAgIHNob3c6IHNob3dDYWxsYmFjayxcbiAgICAgICAgaGlkZTogaGlkZUNhbGxiYWNrLFxuICAgICAgICByZW1vdmU6IHJlbW92ZUNhbGxiYWNrLFxuICAgICAgICByZXNvbHZlOiByZXNvbHZlQ2FsbGJhY2ssXG4gICAgICAgIHJlamVjdDogcmVqZWN0Q2FsbGJhY2ssXG4gICAgICAgIHJlc29sdmVIaWRlOiByZXNvbHZlSGlkZSxcbiAgICB9KTsgfSwgW1xuICAgICAgICBtaWQsXG4gICAgICAgIG1vZGFsSW5mbyA9PT0gbnVsbCB8fCBtb2RhbEluZm8gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1vZGFsSW5mby5hcmdzLFxuICAgICAgICBtb2RhbEluZm8gPT09IG51bGwgfHwgbW9kYWxJbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2RhbEluZm8udmlzaWJsZSxcbiAgICAgICAgbW9kYWxJbmZvID09PSBudWxsIHx8IG1vZGFsSW5mbyA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9kYWxJbmZvLmtlZXBNb3VudGVkLFxuICAgICAgICBzaG93Q2FsbGJhY2ssXG4gICAgICAgIGhpZGVDYWxsYmFjayxcbiAgICAgICAgcmVtb3ZlQ2FsbGJhY2ssXG4gICAgICAgIHJlc29sdmVDYWxsYmFjayxcbiAgICAgICAgcmVqZWN0Q2FsbGJhY2ssXG4gICAgICAgIHJlc29sdmVIaWRlLFxuICAgIF0pO1xufVxuZXhwb3J0IHZhciBjcmVhdGUgPSBmdW5jdGlvbiAoQ29tcCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgdmFyIF9iO1xuICAgICAgICB2YXIgZGVmYXVsdFZpc2libGUgPSBfYS5kZWZhdWx0VmlzaWJsZSwga2VlcE1vdW50ZWQgPSBfYS5rZWVwTW91bnRlZCwgaWQgPSBfYS5pZCwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImRlZmF1bHRWaXNpYmxlXCIsIFwia2VlcE1vdW50ZWRcIiwgXCJpZFwiXSk7XG4gICAgICAgIHZhciBfYyA9IHVzZU1vZGFsKGlkKSwgYXJncyA9IF9jLmFyZ3MsIHNob3cgPSBfYy5zaG93O1xuICAgICAgICAvLyBJZiB0aGVyZSdzIG1vZGFsIHN0YXRlLCB0aGVuIHNob3VsZCBtb3VudCBpdC5cbiAgICAgICAgdmFyIG1vZGFscyA9IHVzZUNvbnRleHQoTmljZU1vZGFsQ29udGV4dCk7XG4gICAgICAgIHZhciBzaG91bGRNb3VudCA9ICEhbW9kYWxzW2lkXTtcbiAgICAgICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIElmIGRlZmF1bHRWaXNpYmxlLCBzaG93IGl0IGFmdGVyIG1vdW50ZWQuXG4gICAgICAgICAgICBpZiAoZGVmYXVsdFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBBTFJFQURZX01PVU5URURbaWRdID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIEFMUkVBRFlfTU9VTlRFRFtpZF07XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbaWQsIHNob3csIGRlZmF1bHRWaXNpYmxlXSk7XG4gICAgICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoa2VlcE1vdW50ZWQpXG4gICAgICAgICAgICAgICAgc2V0RmxhZ3MoaWQsIHsga2VlcE1vdW50ZWQ6IHRydWUgfSk7XG4gICAgICAgIH0sIFtpZCwga2VlcE1vdW50ZWRdKTtcbiAgICAgICAgdmFyIGRlbGF5VmlzaWJsZSA9IChfYiA9IG1vZGFsc1tpZF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZWxheVZpc2libGU7XG4gICAgICAgIC8vIElmIG1vZGFsLnNob3cgaXMgY2FsbGVkXG4gICAgICAgIC8vICAxLiBJZiBtb2RhbCB3YXMgbW91bnRlZCwgc2hvdWxkIG1ha2UgaXQgdmlzaWJsZSBkaXJlY3RseVxuICAgICAgICAvLyAgMi4gSWYgbW9kYWwgaGFzIG5vdCBiZWVuIG1vdW50ZWQsIHNob3VsZCBtb3VudCBpdCBmaXJzdCwgdGhlbiBtYWtlIGl0IHZpc2libGVcbiAgICAgICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChkZWxheVZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWxheVZpc2libGU6IGZhbHNlID0+IHRydWUsIGl0IG1lYW5zIHRoZSBtb2RhbC5zaG93KCkgaXMgY2FsbGVkLCBzaG91bGQgc2hvdyBpdC5cbiAgICAgICAgICAgICAgICBzaG93KGFyZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbZGVsYXlWaXNpYmxlLCBhcmdzLCBzaG93XSk7XG4gICAgICAgIGlmICghc2hvdWxkTW91bnQpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE5pY2VNb2RhbElkQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogaWQgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcCwgX19hc3NpZ24oe30sIHByb3BzLCBhcmdzKSkpKTtcbiAgICB9O1xufTtcbi8vIEFsbCByZWdpc3RlcmVkIG1vZGFscyB3aWxsIGJlIHJlbmRlcmVkIGluIG1vZGFsIHBsYWNlaG9sZGVyXG5leHBvcnQgdmFyIHJlZ2lzdGVyID0gZnVuY3Rpb24gKGlkLCBjb21wLCBwcm9wcykge1xuICAgIGlmICghTU9EQUxfUkVHSVNUUllbaWRdKSB7XG4gICAgICAgIE1PREFMX1JFR0lTVFJZW2lkXSA9IHsgY29tcDogY29tcCwgcHJvcHM6IHByb3BzIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBNT0RBTF9SRUdJU1RSWVtpZF0ucHJvcHMgPSBwcm9wcztcbiAgICB9XG59O1xuLyoqXG4gKiBVbnJlZ2lzdGVyIGEgbW9kYWwuXG4gKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIG1vZGFsLlxuICovXG5leHBvcnQgdmFyIHVucmVnaXN0ZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICBkZWxldGUgTU9EQUxfUkVHSVNUUllbaWRdO1xufTtcbi8vIFRoZSBwbGFjZWhvbGRlciBjb21wb25lbnQgaXMgdXNlZCB0byBhdXRvIHJlbmRlciBtb2RhbHMgd2hlbiBjYWxsIG1vZGFsLnNob3coKVxuLy8gV2hlbiBtb2RhbC5zaG93KCkgaXMgY2FsbGVkLCBpdCBtZWFucyB0aGVyZSd2ZSBiZWVuIG1vZGFsIGluZm9cbnZhciBOaWNlTW9kYWxQbGFjZWhvbGRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbW9kYWxzID0gdXNlQ29udGV4dChOaWNlTW9kYWxDb250ZXh0KTtcbiAgICB2YXIgdmlzaWJsZU1vZGFsSWRzID0gT2JqZWN0LmtleXMobW9kYWxzKS5maWx0ZXIoZnVuY3Rpb24gKGlkKSB7IHJldHVybiAhIW1vZGFsc1tpZF07IH0pO1xuICAgIHZpc2libGVNb2RhbElkcy5mb3JFYWNoKGZ1bmN0aW9uIChpZCkge1xuICAgICAgICBpZiAoIU1PREFMX1JFR0lTVFJZW2lkXSAmJiAhQUxSRUFEWV9NT1VOVEVEW2lkXSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiTm8gbW9kYWwgZm91bmQgZm9yIGlkOiBcIiArIGlkICsgXCIuIFBsZWFzZSBjaGVjayB0aGUgaWQgb3IgaWYgaXQgaXMgcmVnaXN0ZXJlZCBvciBkZWNsYXJlZCB2aWEgSlNYLlwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHZhciB0b1JlbmRlciA9IHZpc2libGVNb2RhbElkc1xuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gTU9EQUxfUkVHSVNUUllbaWRdOyB9KVxuICAgICAgICAubWFwKGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gKF9fYXNzaWduKHsgaWQ6IGlkIH0sIE1PREFMX1JFR0lTVFJZW2lkXSkpOyB9KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIHRvUmVuZGVyLm1hcChmdW5jdGlvbiAodCkgeyByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQodC5jb21wLCBfX2Fzc2lnbih7IGtleTogdC5pZCwgaWQ6IHQuaWQgfSwgdC5wcm9wcykpKTsgfSkpKTtcbn07XG52YXIgSW5uZXJDb250ZXh0UHJvdmlkZXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbjtcbiAgICB2YXIgYXJyID0gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xuICAgIHZhciBtb2RhbHMgPSBhcnJbMF07XG4gICAgZGlzcGF0Y2ggPSBhcnJbMV07XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE5pY2VNb2RhbENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IG1vZGFscyB9LFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChOaWNlTW9kYWxQbGFjZWhvbGRlciwgbnVsbCkpKTtcbn07XG5leHBvcnQgdmFyIFByb3ZpZGVyID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIGdpdmVuRGlzcGF0Y2ggPSBfYS5kaXNwYXRjaCwgZ2l2ZW5Nb2RhbHMgPSBfYS5tb2RhbHM7XG4gICAgaWYgKCFnaXZlbkRpc3BhdGNoIHx8ICFnaXZlbk1vZGFscykge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChJbm5lckNvbnRleHRQcm92aWRlciwgbnVsbCwgY2hpbGRyZW4pO1xuICAgIH1cbiAgICBkaXNwYXRjaCA9IGdpdmVuRGlzcGF0Y2g7XG4gICAgcmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KE5pY2VNb2RhbENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGdpdmVuTW9kYWxzIH0sXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE5pY2VNb2RhbFBsYWNlaG9sZGVyLCBudWxsKSkpO1xufTtcbi8qKlxuICogRGVjbGFyYXRpdmUgd2F5IHRvIHJlZ2lzdGVyIGEgbW9kYWwuXG4gKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIG1vZGFsLlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBtb2RhbCBDb21wb25lbnQuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgdmFyIE1vZGFsRGVmID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGlkID0gX2EuaWQsIGNvbXBvbmVudCA9IF9hLmNvbXBvbmVudDtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICByZWdpc3RlcihpZCwgY29tcG9uZW50KTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHVucmVnaXN0ZXIoaWQpO1xuICAgICAgICB9O1xuICAgIH0sIFtpZCwgY29tcG9uZW50XSk7XG4gICAgcmV0dXJuIG51bGw7XG59O1xuLyoqXG4gKiBBIHBsYWNlIGhvbGRlciBhbGxvd3MgdG8gYmluZCBwcm9wcyB0byBhIG1vZGFsLlxuICogSXQgYXNzaWducyBzaG93L2hpZGUgbWV0aG9kcyB0byBoYW5kbGVyIG9iamVjdCB0byBzaG93L2hpZGUgdGhlIG1vZGFsLlxuICpcbiAqIENvbXBhcmluZyB0byB1c2UgdGhlIDxNeU5pY2VNb2RhbCBpZD0uLi8+IGRpcmVjdGx5LCB0aGlzIGFwcHJvYWNoIGFsbG93cyB1c2UgcmVnaXN0ZXJlZCBtb2RhbCBpZCB0byBmaW5kIHRoZSBtb2RhbCBjb21wb25lbnQuXG4gKiBBbHNvIGl0IGF2b2lkcyB0byBjcmVhdGUgdW5pcXVlIGlkIGZvciBNeU5pY2VNb2RhbC5cbiAqXG4gKiBAcGFyYW0gbW9kYWwgLSBUaGUgbW9kYWwgaWQgcmVnaXN0ZXJlZCBvciBhIG1vZGFsIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBoYW5kbGVyIC0gVGhlIGhhbmRsZXIgb2JqZWN0IHRvIGNvbnRyb2wgdGhlIG1vZGFsLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IHZhciBNb2RhbEhvbGRlciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBfYjtcbiAgICB2YXIgbW9kYWwgPSBfYS5tb2RhbCwgX2MgPSBfYS5oYW5kbGVyLCBoYW5kbGVyID0gX2MgPT09IHZvaWQgMCA/IHt9IDogX2MsIHJlc3RQcm9wcyA9IF9fcmVzdChfYSwgW1wibW9kYWxcIiwgXCJoYW5kbGVyXCJdKTtcbiAgICB2YXIgbWlkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBnZXRVaWQoKTsgfSwgW10pO1xuICAgIHZhciBNb2RhbENvbXAgPSB0eXBlb2YgbW9kYWwgPT09ICdzdHJpbmcnID8gKF9iID0gTU9EQUxfUkVHSVNUUllbbW9kYWxdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29tcCA6IG1vZGFsO1xuICAgIGlmICghaGFuZGxlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGhhbmRsZXIgZm91bmQgaW4gTmljZU1vZGFsLk1vZGFsSG9sZGVyLicpO1xuICAgIH1cbiAgICBpZiAoIU1vZGFsQ29tcCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBtb2RhbCBmb3VuZCBmb3IgaWQ6IFwiICsgbW9kYWwgKyBcIiBpbiBOaWNlTW9kYWwuTW9kYWxIb2xkZXIuXCIpO1xuICAgIH1cbiAgICBoYW5kbGVyLnNob3cgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoYXJncykgeyByZXR1cm4gc2hvdyhtaWQsIGFyZ3MpOyB9LCBbbWlkXSk7XG4gICAgaGFuZGxlci5oaWRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkgeyByZXR1cm4gaGlkZShtaWQpOyB9LCBbbWlkXSk7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTW9kYWxDb21wLCBfX2Fzc2lnbih7IGlkOiBtaWQgfSwgcmVzdFByb3BzKSk7XG59O1xuZXhwb3J0IHZhciBhbnRkTW9kYWwgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB2aXNpYmxlOiBtb2RhbC52aXNpYmxlLFxuICAgICAgICBvbk9rOiBmdW5jdGlvbiAoKSB7IHJldHVybiBtb2RhbC5oaWRlKCk7IH0sXG4gICAgICAgIG9uQ2FuY2VsOiBmdW5jdGlvbiAoKSB7IHJldHVybiBtb2RhbC5oaWRlKCk7IH0sXG4gICAgICAgIGFmdGVyQ2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gcmVzb2x2ZSBiZWZvcmUgcmVtb3ZlXG4gICAgICAgICAgICBtb2RhbC5yZXNvbHZlSGlkZSgpO1xuICAgICAgICAgICAgaWYgKCFtb2RhbC5rZWVwTW91bnRlZClcbiAgICAgICAgICAgICAgICBtb2RhbC5yZW1vdmUoKTtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCB2YXIgYW50ZE1vZGFsVjUgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICB2YXIgX2EgPSBhbnRkTW9kYWwobW9kYWwpLCBvbk9rID0gX2Eub25Paywgb25DYW5jZWwgPSBfYS5vbkNhbmNlbCwgYWZ0ZXJDbG9zZSA9IF9hLmFmdGVyQ2xvc2U7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlbjogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25Pazogb25PayxcbiAgICAgICAgb25DYW5jZWw6IG9uQ2FuY2VsLFxuICAgICAgICBhZnRlckNsb3NlOiBhZnRlckNsb3NlLFxuICAgIH07XG59O1xuZXhwb3J0IHZhciBhbnRkRHJhd2VyID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmlzaWJsZTogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBhZnRlclZpc2libGVDaGFuZ2U6IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICBpZiAoIXYpIHtcbiAgICAgICAgICAgICAgICBtb2RhbC5yZXNvbHZlSGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgIXYgJiYgIW1vZGFsLmtlZXBNb3VudGVkICYmIG1vZGFsLnJlbW92ZSgpO1xuICAgICAgICB9LFxuICAgIH07XG59O1xuZXhwb3J0IHZhciBhbnRkRHJhd2VyVjUgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICB2YXIgX2EgPSBhbnRkRHJhd2VyKG1vZGFsKSwgb25DbG9zZSA9IF9hLm9uQ2xvc2UsIGFmdGVyT3BlbkNoYW5nZSA9IF9hLmFmdGVyVmlzaWJsZUNoYW5nZTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVuOiBtb2RhbC52aXNpYmxlLFxuICAgICAgICBvbkNsb3NlOiBvbkNsb3NlLFxuICAgICAgICBhZnRlck9wZW5DaGFuZ2U6IGFmdGVyT3BlbkNoYW5nZSxcbiAgICB9O1xufTtcbmV4cG9ydCB2YXIgbXVpRGlhbG9nID0gZnVuY3Rpb24gKG1vZGFsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlbjogbW9kYWwudmlzaWJsZSxcbiAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBvbkV4aXRlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbW9kYWwucmVzb2x2ZUhpZGUoKTtcbiAgICAgICAgICAgICFtb2RhbC5rZWVwTW91bnRlZCAmJiBtb2RhbC5yZW1vdmUoKTtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbmV4cG9ydCB2YXIgbXVpRGlhbG9nVjUgPSBmdW5jdGlvbiAobW9kYWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVuOiBtb2RhbC52aXNpYmxlLFxuICAgICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7IHJldHVybiBtb2RhbC5oaWRlKCk7IH0sXG4gICAgICAgIFRyYW5zaXRpb25Qcm9wczoge1xuICAgICAgICAgICAgb25FeGl0ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBtb2RhbC5yZXNvbHZlSGlkZSgpO1xuICAgICAgICAgICAgICAgICFtb2RhbC5rZWVwTW91bnRlZCAmJiBtb2RhbC5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5leHBvcnQgdmFyIGJvb3RzdHJhcERpYWxvZyA9IGZ1bmN0aW9uIChtb2RhbCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNob3c6IG1vZGFsLnZpc2libGUsXG4gICAgICAgIG9uSGlkZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gbW9kYWwuaGlkZSgpOyB9LFxuICAgICAgICBvbkV4aXRlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbW9kYWwucmVzb2x2ZUhpZGUoKTtcbiAgICAgICAgICAgICFtb2RhbC5rZWVwTW91bnRlZCAmJiBtb2RhbC5yZW1vdmUoKTtcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbnZhciBOaWNlTW9kYWwgPSB7XG4gICAgUHJvdmlkZXI6IFByb3ZpZGVyLFxuICAgIE1vZGFsRGVmOiBNb2RhbERlZixcbiAgICBNb2RhbEhvbGRlcjogTW9kYWxIb2xkZXIsXG4gICAgTmljZU1vZGFsQ29udGV4dDogTmljZU1vZGFsQ29udGV4dCxcbiAgICBjcmVhdGU6IGNyZWF0ZSxcbiAgICByZWdpc3RlcjogcmVnaXN0ZXIsXG4gICAgZ2V0TW9kYWw6IGdldE1vZGFsLFxuICAgIHNob3c6IHNob3csXG4gICAgaGlkZTogaGlkZSxcbiAgICByZW1vdmU6IHJlbW92ZSxcbiAgICB1c2VNb2RhbDogdXNlTW9kYWwsXG4gICAgcmVkdWNlcjogcmVkdWNlcixcbiAgICBhbnRkTW9kYWw6IGFudGRNb2RhbCxcbiAgICBhbnRkRHJhd2VyOiBhbnRkRHJhd2VyLFxuICAgIG11aURpYWxvZzogbXVpRGlhbG9nLFxuICAgIGJvb3RzdHJhcERpYWxvZzogYm9vdHN0cmFwRGlhbG9nLFxufTtcbmV4cG9ydCBkZWZhdWx0IE5pY2VNb2RhbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsIlxuZXhwb3J0IGNsYXNzIFNob3Age1xuICAgIGlkOiBudW1iZXIgPSAwXG4gICAgbmFtZTogc3RyaW5nID0gXCJcIlxuICAgIHV1aWQ6IHN0cmluZyA9IFwiXCJcbiAgICBiYXNrZXRGaWVsZDE6IHN0cmluZyA9IFwiXCJcbiAgICBiYXNrZXRGaWVsZDI6IHN0cmluZyA9IFwiXCJcbiAgICBiYXNrZXRQb3NGaWVsZDE6IHN0cmluZyA9IFwiXCJcbiAgICBiYXNrZXRQb3NGaWVsZDI6IHN0cmluZyA9IFwiXCJcblxuICAgIHBhcnNlRnJvbUpzb24oaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMuaWQgPSBpdGVtLnNob3AuaWRcbiAgICAgICAgdGhpcy5uYW1lID0gaXRlbS5zaG9wLm5hbWVcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS5zaG9wLnV1aWRcbiAgICAgICAgdGhpcy5iYXNrZXRGaWVsZDEgPSBpdGVtLnNob3AuYmFza2V0RmllbGQxXG4gICAgICAgIHRoaXMuYmFza2V0RmllbGQyID0gaXRlbS5zaG9wLmJhc2tldEZpZWxkMlxuICAgICAgICB0aGlzLmJhc2tldFBvc0ZpZWxkMSA9IGl0ZW0uc2hvcC5iYXNrZXRQb3NGaWVsZDFcbiAgICAgICAgdGhpcy5iYXNrZXRQb3NGaWVsZDIgPSBpdGVtLnNob3AuYmFza2V0UG9zRmllbGQyXG4gICAgfVxufSIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSAnU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRUQnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzU2VjcmV0O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IHJlcXVpcmUoJy4vbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0Jyk7XG5cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb24oKSB7fVxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbldpdGhSZXNldCgpIHt9XG5lbXB0eUZ1bmN0aW9uV2l0aFJlc2V0LnJlc2V0V2FybmluZ0NhY2hlID0gZW1wdHlGdW5jdGlvbjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAnVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gJyArXG4gICAgICAnUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlcydcbiAgICApO1xuICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIHRocm93IGVycjtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJpZ2ludDogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIiwiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gX3R5cGVvZiA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA/IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvO1xuICB9IDogZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gbyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgbyAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2YgbztcbiAgfSwgX3R5cGVvZihvKTtcbn1cbmV4cG9ydCB7IF90eXBlb2YgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCIuL3R5cGVvZi5qc1wiO1xuZnVuY3Rpb24gdG9QcmltaXRpdmUodCwgcikge1xuICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKHQpIHx8ICF0KSByZXR1cm4gdDtcbiAgdmFyIGUgPSB0W1N5bWJvbC50b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbmV4cG9ydCB7IHRvUHJpbWl0aXZlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCB0b1ByaW1pdGl2ZSBmcm9tIFwiLi90b1ByaW1pdGl2ZS5qc1wiO1xuZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7XG4gIHJldHVybiBcInN5bWJvbFwiID09IF90eXBlb2YoaSkgPyBpIDogaSArIFwiXCI7XG59XG5leHBvcnQgeyB0b1Byb3BlcnR5S2V5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgdG9Qcm9wZXJ0eUtleSBmcm9tIFwiLi90b1Byb3BlcnR5S2V5LmpzXCI7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIHtcbiAgICB2YWx1ZTogdCxcbiAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICBjb25maWd1cmFibGU6ICEwLFxuICAgIHdyaXRhYmxlOiAhMFxuICB9KSA6IGVbcl0gPSB0LCBlO1xufVxuZXhwb3J0IHsgX2RlZmluZVByb3BlcnR5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSBcIi4vZGVmaW5lUHJvcGVydHkuanNcIjtcbmZ1bmN0aW9uIG93bktleXMoZSwgcikge1xuICB2YXIgdCA9IE9iamVjdC5rZXlzKGUpO1xuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBvID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtcbiAgICByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHIpLmVudW1lcmFibGU7XG4gICAgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7XG4gIH1cbiAgcmV0dXJuIHQ7XG59XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkMihlKSB7XG4gIGZvciAodmFyIHIgPSAxOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKSB7XG4gICAgdmFyIHQgPSBudWxsICE9IGFyZ3VtZW50c1tyXSA/IGFyZ3VtZW50c1tyXSA6IHt9O1xuICAgIHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eShlLCByLCB0W3JdKTtcbiAgICB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIHIpKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZTtcbn1cbmV4cG9ydCB7IF9vYmplY3RTcHJlYWQyIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMocikge1xuICBpZiAoQXJyYXkuaXNBcnJheShyKSkgcmV0dXJuIHI7XG59XG5leHBvcnQgeyBfYXJyYXlXaXRoSG9sZXMgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBsKSB7XG4gIHZhciB0ID0gbnVsbCA9PSByID8gbnVsbCA6IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIFN5bWJvbCAmJiByW1N5bWJvbC5pdGVyYXRvcl0gfHwgcltcIkBAaXRlcmF0b3JcIl07XG4gIGlmIChudWxsICE9IHQpIHtcbiAgICB2YXIgZSxcbiAgICAgIG4sXG4gICAgICBpLFxuICAgICAgdSxcbiAgICAgIGEgPSBbXSxcbiAgICAgIGYgPSAhMCxcbiAgICAgIG8gPSAhMTtcbiAgICB0cnkge1xuICAgICAgaWYgKGkgPSAodCA9IHQuY2FsbChyKSkubmV4dCwgMCA9PT0gbCkge1xuICAgICAgICBpZiAoT2JqZWN0KHQpICE9PSB0KSByZXR1cm47XG4gICAgICAgIGYgPSAhMTtcbiAgICAgIH0gZWxzZSBmb3IgKDsgIShmID0gKGUgPSBpLmNhbGwodCkpLmRvbmUpICYmIChhLnB1c2goZS52YWx1ZSksIGEubGVuZ3RoICE9PSBsKTsgZiA9ICEwKTtcbiAgICB9IGNhdGNoIChyKSB7XG4gICAgICBvID0gITAsIG4gPSByO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIWYgJiYgbnVsbCAhPSB0W1wicmV0dXJuXCJdICYmICh1ID0gdFtcInJldHVyblwiXSgpLCBPYmplY3QodSkgIT09IHUpKSByZXR1cm47XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAobykgdGhyb3cgbjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cbn1cbmV4cG9ydCB7IF9pdGVyYWJsZVRvQXJyYXlMaW1pdCBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkociwgYSkge1xuICAobnVsbCA9PSBhIHx8IGEgPiByLmxlbmd0aCkgJiYgKGEgPSByLmxlbmd0aCk7XG4gIGZvciAodmFyIGUgPSAwLCBuID0gQXJyYXkoYSk7IGUgPCBhOyBlKyspIG5bZV0gPSByW2VdO1xuICByZXR1cm4gbjtcbn1cbmV4cG9ydCB7IF9hcnJheUxpa2VUb0FycmF5IGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgYSkge1xuICBpZiAocikge1xuICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiByKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyLCBhKTtcbiAgICB2YXIgdCA9IHt9LnRvU3RyaW5nLmNhbGwocikuc2xpY2UoOCwgLTEpO1xuICAgIHJldHVybiBcIk9iamVjdFwiID09PSB0ICYmIHIuY29uc3RydWN0b3IgJiYgKHQgPSByLmNvbnN0cnVjdG9yLm5hbWUpLCBcIk1hcFwiID09PSB0IHx8IFwiU2V0XCIgPT09IHQgPyBBcnJheS5mcm9tKHIpIDogXCJBcmd1bWVudHNcIiA9PT0gdCB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSA/IGFycmF5TGlrZVRvQXJyYXkociwgYSkgOiB2b2lkIDA7XG4gIH1cbn1cbmV4cG9ydCB7IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cbmV4cG9ydCB7IF9ub25JdGVyYWJsZVJlc3QgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBhcnJheVdpdGhIb2xlcyBmcm9tIFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiO1xuaW1wb3J0IGl0ZXJhYmxlVG9BcnJheUxpbWl0IGZyb20gXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVJlc3QgZnJvbSBcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCI7XG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShyLCBlKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChyLCBlKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyLCBlKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn1cbmV4cG9ydCB7IF9zbGljZWRUb0FycmF5IGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShyLCBlKSB7XG4gIGlmIChudWxsID09IHIpIHJldHVybiB7fTtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgbiBpbiByKSBpZiAoe30uaGFzT3duUHJvcGVydHkuY2FsbChyLCBuKSkge1xuICAgIGlmIChlLmluY2x1ZGVzKG4pKSBjb250aW51ZTtcbiAgICB0W25dID0gcltuXTtcbiAgfVxuICByZXR1cm4gdDtcbn1cbmV4cG9ydCB7IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoZSwgdCkge1xuICBpZiAobnVsbCA9PSBlKSByZXR1cm4ge307XG4gIHZhciBvLFxuICAgIHIsXG4gICAgaSA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoZSwgdCk7XG4gIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgdmFyIHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO1xuICAgIGZvciAociA9IDA7IHIgPCBzLmxlbmd0aDsgcisrKSBvID0gc1tyXSwgdC5pbmNsdWRlcyhvKSB8fCB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsIG8pICYmIChpW29dID0gZVtvXSk7XG4gIH1cbiAgcmV0dXJuIGk7XG59XG5leHBvcnQgeyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXknO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJkZWZhdWx0SW5wdXRWYWx1ZVwiLCBcImRlZmF1bHRNZW51SXNPcGVuXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwiaW5wdXRWYWx1ZVwiLCBcIm1lbnVJc09wZW5cIiwgXCJvbkNoYW5nZVwiLCBcIm9uSW5wdXRDaGFuZ2VcIiwgXCJvbk1lbnVDbG9zZVwiLCBcIm9uTWVudU9wZW5cIiwgXCJ2YWx1ZVwiXTtcbmZ1bmN0aW9uIHVzZVN0YXRlTWFuYWdlcihfcmVmKSB7XG4gIHZhciBfcmVmJGRlZmF1bHRJbnB1dFZhbHUgPSBfcmVmLmRlZmF1bHRJbnB1dFZhbHVlLFxuICAgIGRlZmF1bHRJbnB1dFZhbHVlID0gX3JlZiRkZWZhdWx0SW5wdXRWYWx1ID09PSB2b2lkIDAgPyAnJyA6IF9yZWYkZGVmYXVsdElucHV0VmFsdSxcbiAgICBfcmVmJGRlZmF1bHRNZW51SXNPcGUgPSBfcmVmLmRlZmF1bHRNZW51SXNPcGVuLFxuICAgIGRlZmF1bHRNZW51SXNPcGVuID0gX3JlZiRkZWZhdWx0TWVudUlzT3BlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYkZGVmYXVsdE1lbnVJc09wZSxcbiAgICBfcmVmJGRlZmF1bHRWYWx1ZSA9IF9yZWYuZGVmYXVsdFZhbHVlLFxuICAgIGRlZmF1bHRWYWx1ZSA9IF9yZWYkZGVmYXVsdFZhbHVlID09PSB2b2lkIDAgPyBudWxsIDogX3JlZiRkZWZhdWx0VmFsdWUsXG4gICAgcHJvcHNJbnB1dFZhbHVlID0gX3JlZi5pbnB1dFZhbHVlLFxuICAgIHByb3BzTWVudUlzT3BlbiA9IF9yZWYubWVudUlzT3BlbixcbiAgICBwcm9wc09uQ2hhbmdlID0gX3JlZi5vbkNoYW5nZSxcbiAgICBwcm9wc09uSW5wdXRDaGFuZ2UgPSBfcmVmLm9uSW5wdXRDaGFuZ2UsXG4gICAgcHJvcHNPbk1lbnVDbG9zZSA9IF9yZWYub25NZW51Q2xvc2UsXG4gICAgcHJvcHNPbk1lbnVPcGVuID0gX3JlZi5vbk1lbnVPcGVuLFxuICAgIHByb3BzVmFsdWUgPSBfcmVmLnZhbHVlLFxuICAgIHJlc3RTZWxlY3RQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBfZXhjbHVkZWQpO1xuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUocHJvcHNJbnB1dFZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm9wc0lucHV0VmFsdWUgOiBkZWZhdWx0SW5wdXRWYWx1ZSksXG4gICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgc3RhdGVJbnB1dFZhbHVlID0gX3VzZVN0YXRlMlswXSxcbiAgICBzZXRTdGF0ZUlucHV0VmFsdWUgPSBfdXNlU3RhdGUyWzFdO1xuICB2YXIgX3VzZVN0YXRlMyA9IHVzZVN0YXRlKHByb3BzTWVudUlzT3BlbiAhPT0gdW5kZWZpbmVkID8gcHJvcHNNZW51SXNPcGVuIDogZGVmYXVsdE1lbnVJc09wZW4pLFxuICAgIF91c2VTdGF0ZTQgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUzLCAyKSxcbiAgICBzdGF0ZU1lbnVJc09wZW4gPSBfdXNlU3RhdGU0WzBdLFxuICAgIHNldFN0YXRlTWVudUlzT3BlbiA9IF91c2VTdGF0ZTRbMV07XG4gIHZhciBfdXNlU3RhdGU1ID0gdXNlU3RhdGUocHJvcHNWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvcHNWYWx1ZSA6IGRlZmF1bHRWYWx1ZSksXG4gICAgX3VzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTUsIDIpLFxuICAgIHN0YXRlVmFsdWUgPSBfdXNlU3RhdGU2WzBdLFxuICAgIHNldFN0YXRlVmFsdWUgPSBfdXNlU3RhdGU2WzFdO1xuICB2YXIgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAodmFsdWUsIGFjdGlvbk1ldGEpIHtcbiAgICBpZiAodHlwZW9mIHByb3BzT25DaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByb3BzT25DaGFuZ2UodmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIH1cbiAgICBzZXRTdGF0ZVZhbHVlKHZhbHVlKTtcbiAgfSwgW3Byb3BzT25DaGFuZ2VdKTtcbiAgdmFyIG9uSW5wdXRDaGFuZ2UgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAodmFsdWUsIGFjdGlvbk1ldGEpIHtcbiAgICB2YXIgbmV3VmFsdWU7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uSW5wdXRDaGFuZ2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG5ld1ZhbHVlID0gcHJvcHNPbklucHV0Q2hhbmdlKHZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9XG4gICAgc2V0U3RhdGVJbnB1dFZhbHVlKG5ld1ZhbHVlICE9PSB1bmRlZmluZWQgPyBuZXdWYWx1ZSA6IHZhbHVlKTtcbiAgfSwgW3Byb3BzT25JbnB1dENoYW5nZV0pO1xuICB2YXIgb25NZW51T3BlbiA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodHlwZW9mIHByb3BzT25NZW51T3BlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvcHNPbk1lbnVPcGVuKCk7XG4gICAgfVxuICAgIHNldFN0YXRlTWVudUlzT3Blbih0cnVlKTtcbiAgfSwgW3Byb3BzT25NZW51T3Blbl0pO1xuICB2YXIgb25NZW51Q2xvc2UgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wc09uTWVudUNsb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wc09uTWVudUNsb3NlKCk7XG4gICAgfVxuICAgIHNldFN0YXRlTWVudUlzT3BlbihmYWxzZSk7XG4gIH0sIFtwcm9wc09uTWVudUNsb3NlXSk7XG4gIHZhciBpbnB1dFZhbHVlID0gcHJvcHNJbnB1dFZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm9wc0lucHV0VmFsdWUgOiBzdGF0ZUlucHV0VmFsdWU7XG4gIHZhciBtZW51SXNPcGVuID0gcHJvcHNNZW51SXNPcGVuICE9PSB1bmRlZmluZWQgPyBwcm9wc01lbnVJc09wZW4gOiBzdGF0ZU1lbnVJc09wZW47XG4gIHZhciB2YWx1ZSA9IHByb3BzVmFsdWUgIT09IHVuZGVmaW5lZCA/IHByb3BzVmFsdWUgOiBzdGF0ZVZhbHVlO1xuICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0U2VsZWN0UHJvcHMpLCB7fSwge1xuICAgIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsXG4gICAgbWVudUlzT3BlbjogbWVudUlzT3BlbixcbiAgICBvbkNoYW5nZTogb25DaGFuZ2UsXG4gICAgb25JbnB1dENoYW5nZTogb25JbnB1dENoYW5nZSxcbiAgICBvbk1lbnVDbG9zZTogb25NZW51Q2xvc2UsXG4gICAgb25NZW51T3Blbjogb25NZW51T3BlbixcbiAgICB2YWx1ZTogdmFsdWVcbiAgfSk7XG59XG5cbmV4cG9ydCB7IHVzZVN0YXRlTWFuYWdlciBhcyB1IH07XG4iLCJmdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgcmV0dXJuIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKG4pIHtcbiAgICBmb3IgKHZhciBlID0gMTsgZSA8IGFyZ3VtZW50cy5sZW5ndGg7IGUrKykge1xuICAgICAgdmFyIHQgPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciByIGluIHQpICh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LCByKSAmJiAobltyXSA9IHRbcl0pO1xuICAgIH1cbiAgICByZXR1cm4gbjtcbiAgfSwgX2V4dGVuZHMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbn1cbmV4cG9ydCB7IF9leHRlbmRzIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5leHBvcnQgeyBfY2xhc3NDYWxsQ2hlY2sgYXMgZGVmYXVsdCB9OyIsImltcG9ydCB0b1Byb3BlcnR5S2V5IGZyb20gXCIuL3RvUHJvcGVydHlLZXkuanNcIjtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsIHIpIHtcbiAgZm9yICh2YXIgdCA9IDA7IHQgPCByLmxlbmd0aDsgdCsrKSB7XG4gICAgdmFyIG8gPSByW3RdO1xuICAgIG8uZW51bWVyYWJsZSA9IG8uZW51bWVyYWJsZSB8fCAhMSwgby5jb25maWd1cmFibGUgPSAhMCwgXCJ2YWx1ZVwiIGluIG8gJiYgKG8ud3JpdGFibGUgPSAhMCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0b1Byb3BlcnR5S2V5KG8ua2V5KSwgbyk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhlLCByLCB0KSB7XG4gIHJldHVybiByICYmIF9kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLCByKSwgdCAmJiBfZGVmaW5lUHJvcGVydGllcyhlLCB0KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogITFcbiAgfSksIGU7XG59XG5leHBvcnQgeyBfY3JlYXRlQ2xhc3MgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZih0LCBlKSB7XG4gIHJldHVybiBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpIDogZnVuY3Rpb24gKHQsIGUpIHtcbiAgICByZXR1cm4gdC5fX3Byb3RvX18gPSBlLCB0O1xuICB9LCBfc2V0UHJvdG90eXBlT2YodCwgZSk7XG59XG5leHBvcnQgeyBfc2V0UHJvdG90eXBlT2YgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZnVuY3Rpb24gX2luaGVyaXRzKHQsIGUpIHtcbiAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShlICYmIGUucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiB0LFxuICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH1cbiAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlICYmIHNldFByb3RvdHlwZU9mKHQsIGUpO1xufVxuZXhwb3J0IHsgX2luaGVyaXRzIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YodCkge1xuICByZXR1cm4gX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtcbiAgfSwgX2dldFByb3RvdHlwZU9mKHQpO1xufVxuZXhwb3J0IHsgX2dldFByb3RvdHlwZU9mIGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICB0cnkge1xuICAgIHZhciB0ID0gIUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTtcbiAgfSBjYXRjaCAodCkge31cbiAgcmV0dXJuIChfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgICByZXR1cm4gISF0O1xuICB9KSgpO1xufVxuZXhwb3J0IHsgX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5leHBvcnQgeyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiLi90eXBlb2YuanNcIjtcbmltcG9ydCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSBcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCI7XG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0LCBlKSB7XG4gIGlmIChlICYmIChcIm9iamVjdFwiID09IF90eXBlb2YoZSkgfHwgXCJmdW5jdGlvblwiID09IHR5cGVvZiBlKSkgcmV0dXJuIGU7XG4gIGlmICh2b2lkIDAgIT09IGUpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZFwiKTtcbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZCh0KTtcbn1cbmV4cG9ydCB7IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgZ2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vZ2V0UHJvdG90eXBlT2YuanNcIjtcbmltcG9ydCBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgZnJvbSBcIi4vaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzXCI7XG5pbXBvcnQgcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tIFwiLi9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzXCI7XG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIodCkge1xuICB2YXIgciA9IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBlLFxuICAgICAgbyA9IGdldFByb3RvdHlwZU9mKHQpO1xuICAgIGlmIChyKSB7XG4gICAgICB2YXIgcyA9IGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICAgICAgZSA9IFJlZmxlY3QuY29uc3RydWN0KG8sIGFyZ3VtZW50cywgcyk7XG4gICAgfSBlbHNlIGUgPSBvLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgcmV0dXJuIHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgZSk7XG4gIH07XG59XG5leHBvcnQgeyBfY3JlYXRlU3VwZXIgYXMgZGVmYXVsdCB9OyIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyKTtcbn1cbmV4cG9ydCB7IF9hcnJheVdpdGhvdXRIb2xlcyBhcyBkZWZhdWx0IH07IiwiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheShyKSB7XG4gIGlmIChcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBTeW1ib2wgJiYgbnVsbCAhPSByW1N5bWJvbC5pdGVyYXRvcl0gfHwgbnVsbCAhPSByW1wiQEBpdGVyYXRvclwiXSkgcmV0dXJuIEFycmF5LmZyb20ocik7XG59XG5leHBvcnQgeyBfaXRlcmFibGVUb0FycmF5IGFzIGRlZmF1bHQgfTsiLCJmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuZXhwb3J0IHsgX25vbkl0ZXJhYmxlU3ByZWFkIGFzIGRlZmF1bHQgfTsiLCJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KHIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aG91dEhvbGVzKHIpIHx8IGl0ZXJhYmxlVG9BcnJheShyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShyKSB8fCBub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuZXhwb3J0IHsgX3RvQ29uc3VtYWJsZUFycmF5IGFzIGRlZmF1bHQgfTsiLCJ2YXIgaXNEZXZlbG9wbWVudCA9IGZhbHNlO1xuXG4vKlxuXG5CYXNlZCBvZmYgZ2xhbW9yJ3MgU3R5bGVTaGVldCwgdGhhbmtzIFN1bmlsIOKdpO+4j1xuXG5oaWdoIHBlcmZvcm1hbmNlIFN0eWxlU2hlZXQgZm9yIGNzcy1pbi1qcyBzeXN0ZW1zXG5cbi0gdXNlcyBtdWx0aXBsZSBzdHlsZSB0YWdzIGJlaGluZCB0aGUgc2NlbmVzIGZvciBtaWxsaW9ucyBvZiBydWxlc1xuLSB1c2VzIGBpbnNlcnRSdWxlYCBmb3IgYXBwZW5kaW5nIGluIHByb2R1Y3Rpb24gZm9yICptdWNoKiBmYXN0ZXIgcGVyZm9ybWFuY2VcblxuLy8gdXNhZ2VcblxuaW1wb3J0IHsgU3R5bGVTaGVldCB9IGZyb20gJ0BlbW90aW9uL3NoZWV0J1xuXG5sZXQgc3R5bGVTaGVldCA9IG5ldyBTdHlsZVNoZWV0KHsga2V5OiAnJywgY29udGFpbmVyOiBkb2N1bWVudC5oZWFkIH0pXG5cbnN0eWxlU2hlZXQuaW5zZXJ0KCcjYm94IHsgYm9yZGVyOiAxcHggc29saWQgcmVkOyB9Jylcbi0gYXBwZW5kcyBhIGNzcyBydWxlIGludG8gdGhlIHN0eWxlc2hlZXRcblxuc3R5bGVTaGVldC5mbHVzaCgpXG4tIGVtcHRpZXMgdGhlIHN0eWxlc2hlZXQgb2YgYWxsIGl0cyBjb250ZW50c1xuXG4qL1xuXG5mdW5jdGlvbiBzaGVldEZvclRhZyh0YWcpIHtcbiAgaWYgKHRhZy5zaGVldCkge1xuICAgIHJldHVybiB0YWcuc2hlZXQ7XG4gIH0gLy8gdGhpcyB3ZWlyZG5lc3MgYnJvdWdodCB0byB5b3UgYnkgZmlyZWZveFxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGRvY3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGRvY3VtZW50LnN0eWxlU2hlZXRzW2ldLm93bmVyTm9kZSA9PT0gdGFnKSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnQuc3R5bGVTaGVldHNbaV07XG4gICAgfVxuICB9IC8vIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsd2F5cyByZXR1cm4gd2l0aCBhIHZhbHVlXG4gIC8vIFRTIGNhbid0IHVuZGVyc3RhbmQgaXQgdGhvdWdoIHNvIHdlIG1ha2UgaXQgc3RvcCBjb21wbGFpbmluZyBoZXJlXG5cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgdGFnLnNldEF0dHJpYnV0ZSgnZGF0YS1lbW90aW9uJywgb3B0aW9ucy5rZXkpO1xuXG4gIGlmIChvcHRpb25zLm5vbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIG9wdGlvbnMubm9uY2UpO1xuICB9XG5cbiAgdGFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKSk7XG4gIHRhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtcycsICcnKTtcbiAgcmV0dXJuIHRhZztcbn1cblxudmFyIFN0eWxlU2hlZXQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICAvLyBVc2luZyBOb2RlIGluc3RlYWQgb2YgSFRNTEVsZW1lbnQgc2luY2UgY29udGFpbmVyIG1heSBiZSBhIFNoYWRvd1Jvb3RcbiAgZnVuY3Rpb24gU3R5bGVTaGVldChvcHRpb25zKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIHRoaXMuX2luc2VydFRhZyA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgIHZhciBiZWZvcmU7XG5cbiAgICAgIGlmIChfdGhpcy50YWdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAoX3RoaXMuaW5zZXJ0aW9uUG9pbnQpIHtcbiAgICAgICAgICBiZWZvcmUgPSBfdGhpcy5pbnNlcnRpb25Qb2ludC5uZXh0U2libGluZztcbiAgICAgICAgfSBlbHNlIGlmIChfdGhpcy5wcmVwZW5kKSB7XG4gICAgICAgICAgYmVmb3JlID0gX3RoaXMuY29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmVmb3JlID0gX3RoaXMuYmVmb3JlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZWZvcmUgPSBfdGhpcy50YWdzW190aGlzLnRhZ3MubGVuZ3RoIC0gMV0ubmV4dFNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUodGFnLCBiZWZvcmUpO1xuXG4gICAgICBfdGhpcy50YWdzLnB1c2godGFnKTtcbiAgICB9O1xuXG4gICAgdGhpcy5pc1NwZWVkeSA9IG9wdGlvbnMuc3BlZWR5ID09PSB1bmRlZmluZWQgPyAhaXNEZXZlbG9wbWVudCA6IG9wdGlvbnMuc3BlZWR5O1xuICAgIHRoaXMudGFncyA9IFtdO1xuICAgIHRoaXMuY3RyID0gMDtcbiAgICB0aGlzLm5vbmNlID0gb3B0aW9ucy5ub25jZTsgLy8ga2V5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgZGF0YS1lbW90aW9uIGF0dHJpYnV0ZSwgaXQncyB1c2VkIHRvIGlkZW50aWZ5IGRpZmZlcmVudCBzaGVldHNcblxuICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXk7XG4gICAgdGhpcy5jb250YWluZXIgPSBvcHRpb25zLmNvbnRhaW5lcjtcbiAgICB0aGlzLnByZXBlbmQgPSBvcHRpb25zLnByZXBlbmQ7XG4gICAgdGhpcy5pbnNlcnRpb25Qb2ludCA9IG9wdGlvbnMuaW5zZXJ0aW9uUG9pbnQ7XG4gICAgdGhpcy5iZWZvcmUgPSBudWxsO1xuICB9XG5cbiAgdmFyIF9wcm90byA9IFN0eWxlU2hlZXQucHJvdG90eXBlO1xuXG4gIF9wcm90by5oeWRyYXRlID0gZnVuY3Rpb24gaHlkcmF0ZShub2Rlcykge1xuICAgIG5vZGVzLmZvckVhY2godGhpcy5faW5zZXJ0VGFnKTtcbiAgfTtcblxuICBfcHJvdG8uaW5zZXJ0ID0gZnVuY3Rpb24gaW5zZXJ0KHJ1bGUpIHtcbiAgICAvLyB0aGUgbWF4IGxlbmd0aCBpcyBob3cgbWFueSBydWxlcyB3ZSBoYXZlIHBlciBzdHlsZSB0YWcsIGl0J3MgNjUwMDAgaW4gc3BlZWR5IG1vZGVcbiAgICAvLyBpdCdzIDEgaW4gZGV2IGJlY2F1c2Ugd2UgaW5zZXJ0IHNvdXJjZSBtYXBzIHRoYXQgbWFwIGEgc2luZ2xlIHJ1bGUgdG8gYSBsb2NhdGlvblxuICAgIC8vIGFuZCB5b3UgY2FuIG9ubHkgaGF2ZSBvbmUgc291cmNlIG1hcCBwZXIgc3R5bGUgdGFnXG4gICAgaWYgKHRoaXMuY3RyICUgKHRoaXMuaXNTcGVlZHkgPyA2NTAwMCA6IDEpID09PSAwKSB7XG4gICAgICB0aGlzLl9pbnNlcnRUYWcoY3JlYXRlU3R5bGVFbGVtZW50KHRoaXMpKTtcbiAgICB9XG5cbiAgICB2YXIgdGFnID0gdGhpcy50YWdzW3RoaXMudGFncy5sZW5ndGggLSAxXTtcblxuICAgIGlmICh0aGlzLmlzU3BlZWR5KSB7XG4gICAgICB2YXIgc2hlZXQgPSBzaGVldEZvclRhZyh0YWcpO1xuXG4gICAgICB0cnkge1xuICAgICAgICAvLyB0aGlzIGlzIHRoZSB1bHRyYWZhc3QgdmVyc2lvbiwgd29ya3MgYWNyb3NzIGJyb3dzZXJzXG4gICAgICAgIC8vIHRoZSBiaWcgZHJhd2JhY2sgaXMgdGhhdCB0aGUgY3NzIHdvbid0IGJlIGVkaXRhYmxlIGluIGRldnRvb2xzXG4gICAgICAgIHNoZWV0Lmluc2VydFJ1bGUocnVsZSwgc2hlZXQuY3NzUnVsZXMubGVuZ3RoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJ1bGUpKTtcbiAgICB9XG5cbiAgICB0aGlzLmN0cisrO1xuICB9O1xuXG4gIF9wcm90by5mbHVzaCA9IGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIHRoaXMudGFncy5mb3JFYWNoKGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgIHZhciBfdGFnJHBhcmVudE5vZGU7XG5cbiAgICAgIHJldHVybiAoX3RhZyRwYXJlbnROb2RlID0gdGFnLnBhcmVudE5vZGUpID09IG51bGwgPyB2b2lkIDAgOiBfdGFnJHBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGFnKTtcbiAgICB9KTtcbiAgICB0aGlzLnRhZ3MgPSBbXTtcbiAgICB0aGlzLmN0ciA9IDA7XG4gIH07XG5cbiAgcmV0dXJuIFN0eWxlU2hlZXQ7XG59KCk7XG5cbmV4cG9ydCB7IFN0eWxlU2hlZXQgfTtcbiIsImV4cG9ydCB2YXIgTVMgPSAnLW1zLSdcbmV4cG9ydCB2YXIgTU9aID0gJy1tb3otJ1xuZXhwb3J0IHZhciBXRUJLSVQgPSAnLXdlYmtpdC0nXG5cbmV4cG9ydCB2YXIgQ09NTUVOVCA9ICdjb21tJ1xuZXhwb3J0IHZhciBSVUxFU0VUID0gJ3J1bGUnXG5leHBvcnQgdmFyIERFQ0xBUkFUSU9OID0gJ2RlY2wnXG5cbmV4cG9ydCB2YXIgUEFHRSA9ICdAcGFnZSdcbmV4cG9ydCB2YXIgTUVESUEgPSAnQG1lZGlhJ1xuZXhwb3J0IHZhciBJTVBPUlQgPSAnQGltcG9ydCdcbmV4cG9ydCB2YXIgQ0hBUlNFVCA9ICdAY2hhcnNldCdcbmV4cG9ydCB2YXIgVklFV1BPUlQgPSAnQHZpZXdwb3J0J1xuZXhwb3J0IHZhciBTVVBQT1JUUyA9ICdAc3VwcG9ydHMnXG5leHBvcnQgdmFyIERPQ1VNRU5UID0gJ0Bkb2N1bWVudCdcbmV4cG9ydCB2YXIgTkFNRVNQQUNFID0gJ0BuYW1lc3BhY2UnXG5leHBvcnQgdmFyIEtFWUZSQU1FUyA9ICdAa2V5ZnJhbWVzJ1xuZXhwb3J0IHZhciBGT05UX0ZBQ0UgPSAnQGZvbnQtZmFjZSdcbmV4cG9ydCB2YXIgQ09VTlRFUl9TVFlMRSA9ICdAY291bnRlci1zdHlsZSdcbmV4cG9ydCB2YXIgRk9OVF9GRUFUVVJFX1ZBTFVFUyA9ICdAZm9udC1mZWF0dXJlLXZhbHVlcydcbmV4cG9ydCB2YXIgTEFZRVIgPSAnQGxheWVyJ1xuIiwiLyoqXG4gKiBAcGFyYW0ge251bWJlcn1cbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IHZhciBhYnMgPSBNYXRoLmFic1xuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgdmFyIGZyb20gPSBTdHJpbmcuZnJvbUNoYXJDb2RlXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9XG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCB2YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnblxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaCAodmFsdWUsIGxlbmd0aCkge1xuXHRyZXR1cm4gY2hhcmF0KHZhbHVlLCAwKSBeIDQ1ID8gKCgoKCgoKGxlbmd0aCA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMCkpIDw8IDIpIF4gY2hhcmF0KHZhbHVlLCAxKSkgPDwgMikgXiBjaGFyYXQodmFsdWUsIDIpKSA8PCAyKSBeIGNoYXJhdCh2YWx1ZSwgMykgOiAwXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUudHJpbSgpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcGF0dGVyblxuICogQHJldHVybiB7c3RyaW5nP31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoICh2YWx1ZSwgcGF0dGVybikge1xuXHRyZXR1cm4gKHZhbHVlID0gcGF0dGVybi5leGVjKHZhbHVlKSkgPyB2YWx1ZVswXSA6IHZhbHVlXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0geyhzdHJpbmd8UmVnRXhwKX0gcGF0dGVyblxuICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlICh2YWx1ZSwgcGF0dGVybiwgcmVwbGFjZW1lbnQpIHtcblx0cmV0dXJuIHZhbHVlLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmRleG9mICh2YWx1ZSwgc2VhcmNoKSB7XG5cdHJldHVybiB2YWx1ZS5pbmRleE9mKHNlYXJjaClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhcmF0ICh2YWx1ZSwgaW5kZXgpIHtcblx0cmV0dXJuIHZhbHVlLmNoYXJDb2RlQXQoaW5kZXgpIHwgMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtudW1iZXJ9IGJlZ2luXG4gKiBAcGFyYW0ge251bWJlcn0gZW5kXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdHIgKHZhbHVlLCBiZWdpbiwgZW5kKSB7XG5cdHJldHVybiB2YWx1ZS5zbGljZShiZWdpbiwgZW5kKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RybGVuICh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUubGVuZ3RoXG59XG5cbi8qKlxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpemVvZiAodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLmxlbmd0aFxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHBhcmFtIHthbnlbXX0gYXJyYXlcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZCAodmFsdWUsIGFycmF5KSB7XG5cdHJldHVybiBhcnJheS5wdXNoKHZhbHVlKSwgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheVxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmUgKGFycmF5LCBjYWxsYmFjaykge1xuXHRyZXR1cm4gYXJyYXkubWFwKGNhbGxiYWNrKS5qb2luKCcnKVxufVxuIiwiaW1wb3J0IHtmcm9tLCB0cmltLCBjaGFyYXQsIHN0cmxlbiwgc3Vic3RyLCBhcHBlbmQsIGFzc2lnbn0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuXG5leHBvcnQgdmFyIGxpbmUgPSAxXG5leHBvcnQgdmFyIGNvbHVtbiA9IDFcbmV4cG9ydCB2YXIgbGVuZ3RoID0gMFxuZXhwb3J0IHZhciBwb3NpdGlvbiA9IDBcbmV4cG9ydCB2YXIgY2hhcmFjdGVyID0gMFxuZXhwb3J0IHZhciBjaGFyYWN0ZXJzID0gJydcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0IHwgbnVsbH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3QgfCBudWxsfSBwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ1tdIHwgc3RyaW5nfSBwcm9wc1xuICogQHBhcmFtIHtvYmplY3RbXSB8IHN0cmluZ30gY2hpbGRyZW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vZGUgKHZhbHVlLCByb290LCBwYXJlbnQsIHR5cGUsIHByb3BzLCBjaGlsZHJlbiwgbGVuZ3RoKSB7XG5cdHJldHVybiB7dmFsdWU6IHZhbHVlLCByb290OiByb290LCBwYXJlbnQ6IHBhcmVudCwgdHlwZTogdHlwZSwgcHJvcHM6IHByb3BzLCBjaGlsZHJlbjogY2hpbGRyZW4sIGxpbmU6IGxpbmUsIGNvbHVtbjogY29sdW1uLCBsZW5ndGg6IGxlbmd0aCwgcmV0dXJuOiAnJ31cbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5IChyb290LCBwcm9wcykge1xuXHRyZXR1cm4gYXNzaWduKG5vZGUoJycsIG51bGwsIG51bGwsICcnLCBudWxsLCBudWxsLCAwKSwgcm9vdCwge2xlbmd0aDogLXJvb3QubGVuZ3RofSwgcHJvcHMpXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhciAoKSB7XG5cdHJldHVybiBjaGFyYWN0ZXJcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV2ICgpIHtcblx0Y2hhcmFjdGVyID0gcG9zaXRpb24gPiAwID8gY2hhcmF0KGNoYXJhY3RlcnMsIC0tcG9zaXRpb24pIDogMFxuXG5cdGlmIChjb2x1bW4tLSwgY2hhcmFjdGVyID09PSAxMClcblx0XHRjb2x1bW4gPSAxLCBsaW5lLS1cblxuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dCAoKSB7XG5cdGNoYXJhY3RlciA9IHBvc2l0aW9uIDwgbGVuZ3RoID8gY2hhcmF0KGNoYXJhY3RlcnMsIHBvc2l0aW9uKyspIDogMFxuXG5cdGlmIChjb2x1bW4rKywgY2hhcmFjdGVyID09PSAxMClcblx0XHRjb2x1bW4gPSAxLCBsaW5lKytcblxuXHRyZXR1cm4gY2hhcmFjdGVyXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGVlayAoKSB7XG5cdHJldHVybiBjaGFyYXQoY2hhcmFjdGVycywgcG9zaXRpb24pXG59XG5cbi8qKlxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FyZXQgKCkge1xuXHRyZXR1cm4gcG9zaXRpb25cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gYmVnaW5cbiAqIEBwYXJhbSB7bnVtYmVyfSBlbmRcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsaWNlIChiZWdpbiwgZW5kKSB7XG5cdHJldHVybiBzdWJzdHIoY2hhcmFjdGVycywgYmVnaW4sIGVuZClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW4gKHR5cGUpIHtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Ly8gXFwwIFxcdCBcXG4gXFxyIFxccyB3aGl0ZXNwYWNlIHRva2VuXG5cdFx0Y2FzZSAwOiBjYXNlIDk6IGNhc2UgMTA6IGNhc2UgMTM6IGNhc2UgMzI6XG5cdFx0XHRyZXR1cm4gNVxuXHRcdC8vICEgKyAsIC8gPiBAIH4gaXNvbGF0ZSB0b2tlblxuXHRcdGNhc2UgMzM6IGNhc2UgNDM6IGNhc2UgNDQ6IGNhc2UgNDc6IGNhc2UgNjI6IGNhc2UgNjQ6IGNhc2UgMTI2OlxuXHRcdC8vIDsgeyB9IGJyZWFrcG9pbnQgdG9rZW5cblx0XHRjYXNlIDU5OiBjYXNlIDEyMzogY2FzZSAxMjU6XG5cdFx0XHRyZXR1cm4gNFxuXHRcdC8vIDogYWNjb21wYW5pZWQgdG9rZW5cblx0XHRjYXNlIDU4OlxuXHRcdFx0cmV0dXJuIDNcblx0XHQvLyBcIiAnICggWyBvcGVuaW5nIGRlbGltaXQgdG9rZW5cblx0XHRjYXNlIDM0OiBjYXNlIDM5OiBjYXNlIDQwOiBjYXNlIDkxOlxuXHRcdFx0cmV0dXJuIDJcblx0XHQvLyApIF0gY2xvc2luZyBkZWxpbWl0IHRva2VuXG5cdFx0Y2FzZSA0MTogY2FzZSA5Mzpcblx0XHRcdHJldHVybiAxXG5cdH1cblxuXHRyZXR1cm4gMFxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvYyAodmFsdWUpIHtcblx0cmV0dXJuIGxpbmUgPSBjb2x1bW4gPSAxLCBsZW5ndGggPSBzdHJsZW4oY2hhcmFjdGVycyA9IHZhbHVlKSwgcG9zaXRpb24gPSAwLCBbXVxufVxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHJldHVybiB7YW55fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVhbGxvYyAodmFsdWUpIHtcblx0cmV0dXJuIGNoYXJhY3RlcnMgPSAnJywgdmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsaW1pdCAodHlwZSkge1xuXHRyZXR1cm4gdHJpbShzbGljZShwb3NpdGlvbiAtIDEsIGRlbGltaXRlcih0eXBlID09PSA5MSA/IHR5cGUgKyAyIDogdHlwZSA9PT0gNDAgPyB0eXBlICsgMSA6IHR5cGUpKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9rZW5pemUgKHZhbHVlKSB7XG5cdHJldHVybiBkZWFsbG9jKHRva2VuaXplcihhbGxvYyh2YWx1ZSkpKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSB0eXBlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGl0ZXNwYWNlICh0eXBlKSB7XG5cdHdoaWxlIChjaGFyYWN0ZXIgPSBwZWVrKCkpXG5cdFx0aWYgKGNoYXJhY3RlciA8IDMzKVxuXHRcdFx0bmV4dCgpXG5cdFx0ZWxzZVxuXHRcdFx0YnJlYWtcblxuXHRyZXR1cm4gdG9rZW4odHlwZSkgPiAyIHx8IHRva2VuKGNoYXJhY3RlcikgPiAzID8gJycgOiAnICdcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBjaGlsZHJlblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2tlbml6ZXIgKGNoaWxkcmVuKSB7XG5cdHdoaWxlIChuZXh0KCkpXG5cdFx0c3dpdGNoICh0b2tlbihjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjYXNlIDA6IGFwcGVuZChpZGVudGlmaWVyKHBvc2l0aW9uIC0gMSksIGNoaWxkcmVuKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOiBhcHBlbmQoZGVsaW1pdChjaGFyYWN0ZXIpLCBjaGlsZHJlbilcblx0XHRcdFx0YnJlYWtcblx0XHRcdGRlZmF1bHQ6IGFwcGVuZChmcm9tKGNoYXJhY3RlciksIGNoaWxkcmVuKVxuXHRcdH1cblxuXHRyZXR1cm4gY2hpbGRyZW5cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBpbmcgKGluZGV4LCBjb3VudCkge1xuXHR3aGlsZSAoLS1jb3VudCAmJiBuZXh0KCkpXG5cdFx0Ly8gbm90IDAtOSBBLUYgYS1mXG5cdFx0aWYgKGNoYXJhY3RlciA8IDQ4IHx8IGNoYXJhY3RlciA+IDEwMiB8fCAoY2hhcmFjdGVyID4gNTcgJiYgY2hhcmFjdGVyIDwgNjUpIHx8IChjaGFyYWN0ZXIgPiA3MCAmJiBjaGFyYWN0ZXIgPCA5NykpXG5cdFx0XHRicmVha1xuXG5cdHJldHVybiBzbGljZShpbmRleCwgY2FyZXQoKSArIChjb3VudCA8IDYgJiYgcGVlaygpID09IDMyICYmIG5leHQoKSA9PSAzMikpXG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IHR5cGVcbiAqIEByZXR1cm4ge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGltaXRlciAodHlwZSkge1xuXHR3aGlsZSAobmV4dCgpKVxuXHRcdHN3aXRjaCAoY2hhcmFjdGVyKSB7XG5cdFx0XHQvLyBdICkgXCIgJ1xuXHRcdFx0Y2FzZSB0eXBlOlxuXHRcdFx0XHRyZXR1cm4gcG9zaXRpb25cblx0XHRcdC8vIFwiICdcblx0XHRcdGNhc2UgMzQ6IGNhc2UgMzk6XG5cdFx0XHRcdGlmICh0eXBlICE9PSAzNCAmJiB0eXBlICE9PSAzOSlcblx0XHRcdFx0XHRkZWxpbWl0ZXIoY2hhcmFjdGVyKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gKFxuXHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0aWYgKHR5cGUgPT09IDQxKVxuXHRcdFx0XHRcdGRlbGltaXRlcih0eXBlKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gXFxcblx0XHRcdGNhc2UgOTI6XG5cdFx0XHRcdG5leHQoKVxuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRyZXR1cm4gcG9zaXRpb25cbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdHlwZVxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21tZW50ZXIgKHR5cGUsIGluZGV4KSB7XG5cdHdoaWxlIChuZXh0KCkpXG5cdFx0Ly8gLy9cblx0XHRpZiAodHlwZSArIGNoYXJhY3RlciA9PT0gNDcgKyAxMClcblx0XHRcdGJyZWFrXG5cdFx0Ly8gLypcblx0XHRlbHNlIGlmICh0eXBlICsgY2hhcmFjdGVyID09PSA0MiArIDQyICYmIHBlZWsoKSA9PT0gNDcpXG5cdFx0XHRicmVha1xuXG5cdHJldHVybiAnLyonICsgc2xpY2UoaW5kZXgsIHBvc2l0aW9uIC0gMSkgKyAnKicgKyBmcm9tKHR5cGUgPT09IDQ3ID8gdHlwZSA6IG5leHQoKSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlkZW50aWZpZXIgKGluZGV4KSB7XG5cdHdoaWxlICghdG9rZW4ocGVlaygpKSlcblx0XHRuZXh0KClcblxuXHRyZXR1cm4gc2xpY2UoaW5kZXgsIHBvc2l0aW9uKVxufVxuIiwiaW1wb3J0IHtDT01NRU5ULCBSVUxFU0VULCBERUNMQVJBVElPTn0gZnJvbSAnLi9FbnVtLmpzJ1xuaW1wb3J0IHthYnMsIGNoYXJhdCwgdHJpbSwgZnJvbSwgc2l6ZW9mLCBzdHJsZW4sIHN1YnN0ciwgYXBwZW5kLCByZXBsYWNlLCBpbmRleG9mfSBmcm9tICcuL1V0aWxpdHkuanMnXG5pbXBvcnQge25vZGUsIGNoYXIsIHByZXYsIG5leHQsIHBlZWssIGNhcmV0LCBhbGxvYywgZGVhbGxvYywgZGVsaW1pdCwgd2hpdGVzcGFjZSwgZXNjYXBpbmcsIGlkZW50aWZpZXIsIGNvbW1lbnRlcn0gZnJvbSAnLi9Ub2tlbml6ZXIuanMnXG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtvYmplY3RbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUgKHZhbHVlKSB7XG5cdHJldHVybiBkZWFsbG9jKHBhcnNlKCcnLCBudWxsLCBudWxsLCBudWxsLCBbJyddLCB2YWx1ZSA9IGFsbG9jKHZhbHVlKSwgMCwgWzBdLCB2YWx1ZSkpXG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcGFyYW0ge29iamVjdH0gcm9vdFxuICogQHBhcmFtIHtvYmplY3Q/fSBwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IHJ1bGVzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBydWxlc2V0c1xuICogQHBhcmFtIHtudW1iZXJbXX0gcHNldWRvXG4gKiBAcGFyYW0ge251bWJlcltdfSBwb2ludHNcbiAqIEBwYXJhbSB7c3RyaW5nW119IGRlY2xhcmF0aW9uc1xuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UgKHZhbHVlLCByb290LCBwYXJlbnQsIHJ1bGUsIHJ1bGVzLCBydWxlc2V0cywgcHNldWRvLCBwb2ludHMsIGRlY2xhcmF0aW9ucykge1xuXHR2YXIgaW5kZXggPSAwXG5cdHZhciBvZmZzZXQgPSAwXG5cdHZhciBsZW5ndGggPSBwc2V1ZG9cblx0dmFyIGF0cnVsZSA9IDBcblx0dmFyIHByb3BlcnR5ID0gMFxuXHR2YXIgcHJldmlvdXMgPSAwXG5cdHZhciB2YXJpYWJsZSA9IDFcblx0dmFyIHNjYW5uaW5nID0gMVxuXHR2YXIgYW1wZXJzYW5kID0gMVxuXHR2YXIgY2hhcmFjdGVyID0gMFxuXHR2YXIgdHlwZSA9ICcnXG5cdHZhciBwcm9wcyA9IHJ1bGVzXG5cdHZhciBjaGlsZHJlbiA9IHJ1bGVzZXRzXG5cdHZhciByZWZlcmVuY2UgPSBydWxlXG5cdHZhciBjaGFyYWN0ZXJzID0gdHlwZVxuXG5cdHdoaWxlIChzY2FubmluZylcblx0XHRzd2l0Y2ggKHByZXZpb3VzID0gY2hhcmFjdGVyLCBjaGFyYWN0ZXIgPSBuZXh0KCkpIHtcblx0XHRcdC8vIChcblx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdGlmIChwcmV2aW91cyAhPSAxMDggJiYgY2hhcmF0KGNoYXJhY3RlcnMsIGxlbmd0aCAtIDEpID09IDU4KSB7XG5cdFx0XHRcdFx0aWYgKGluZGV4b2YoY2hhcmFjdGVycyArPSByZXBsYWNlKGRlbGltaXQoY2hhcmFjdGVyKSwgJyYnLCAnJlxcZicpLCAnJlxcZicpICE9IC0xKVxuXHRcdFx0XHRcdFx0YW1wZXJzYW5kID0gLTFcblx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHR9XG5cdFx0XHQvLyBcIiAnIFtcblx0XHRcdGNhc2UgMzQ6IGNhc2UgMzk6IGNhc2UgOTE6XG5cdFx0XHRcdGNoYXJhY3RlcnMgKz0gZGVsaW1pdChjaGFyYWN0ZXIpXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHQvLyBcXHQgXFxuIFxcciBcXHNcblx0XHRcdGNhc2UgOTogY2FzZSAxMDogY2FzZSAxMzogY2FzZSAzMjpcblx0XHRcdFx0Y2hhcmFjdGVycyArPSB3aGl0ZXNwYWNlKHByZXZpb3VzKVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8gXFxcblx0XHRcdGNhc2UgOTI6XG5cdFx0XHRcdGNoYXJhY3RlcnMgKz0gZXNjYXBpbmcoY2FyZXQoKSAtIDEsIDcpXG5cdFx0XHRcdGNvbnRpbnVlXG5cdFx0XHQvLyAvXG5cdFx0XHRjYXNlIDQ3OlxuXHRcdFx0XHRzd2l0Y2ggKHBlZWsoKSkge1xuXHRcdFx0XHRcdGNhc2UgNDI6IGNhc2UgNDc6XG5cdFx0XHRcdFx0XHRhcHBlbmQoY29tbWVudChjb21tZW50ZXIobmV4dCgpLCBjYXJldCgpKSwgcm9vdCwgcGFyZW50KSwgZGVjbGFyYXRpb25zKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0Y2hhcmFjdGVycyArPSAnLydcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVha1xuXHRcdFx0Ly8ge1xuXHRcdFx0Y2FzZSAxMjMgKiB2YXJpYWJsZTpcblx0XHRcdFx0cG9pbnRzW2luZGV4KytdID0gc3RybGVuKGNoYXJhY3RlcnMpICogYW1wZXJzYW5kXG5cdFx0XHQvLyB9IDsgXFwwXG5cdFx0XHRjYXNlIDEyNSAqIHZhcmlhYmxlOiBjYXNlIDU5OiBjYXNlIDA6XG5cdFx0XHRcdHN3aXRjaCAoY2hhcmFjdGVyKSB7XG5cdFx0XHRcdFx0Ly8gXFwwIH1cblx0XHRcdFx0XHRjYXNlIDA6IGNhc2UgMTI1OiBzY2FubmluZyA9IDBcblx0XHRcdFx0XHQvLyA7XG5cdFx0XHRcdFx0Y2FzZSA1OSArIG9mZnNldDogaWYgKGFtcGVyc2FuZCA9PSAtMSkgY2hhcmFjdGVycyA9IHJlcGxhY2UoY2hhcmFjdGVycywgL1xcZi9nLCAnJylcblx0XHRcdFx0XHRcdGlmIChwcm9wZXJ0eSA+IDAgJiYgKHN0cmxlbihjaGFyYWN0ZXJzKSAtIGxlbmd0aCkpXG5cdFx0XHRcdFx0XHRcdGFwcGVuZChwcm9wZXJ0eSA+IDMyID8gZGVjbGFyYXRpb24oY2hhcmFjdGVycyArICc7JywgcnVsZSwgcGFyZW50LCBsZW5ndGggLSAxKSA6IGRlY2xhcmF0aW9uKHJlcGxhY2UoY2hhcmFjdGVycywgJyAnLCAnJykgKyAnOycsIHJ1bGUsIHBhcmVudCwgbGVuZ3RoIC0gMiksIGRlY2xhcmF0aW9ucylcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gQCA7XG5cdFx0XHRcdFx0Y2FzZSA1OTogY2hhcmFjdGVycyArPSAnOydcblx0XHRcdFx0XHQvLyB7IHJ1bGUvYXQtcnVsZVxuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRhcHBlbmQocmVmZXJlbmNlID0gcnVsZXNldChjaGFyYWN0ZXJzLCByb290LCBwYXJlbnQsIGluZGV4LCBvZmZzZXQsIHJ1bGVzLCBwb2ludHMsIHR5cGUsIHByb3BzID0gW10sIGNoaWxkcmVuID0gW10sIGxlbmd0aCksIHJ1bGVzZXRzKVxuXG5cdFx0XHRcdFx0XHRpZiAoY2hhcmFjdGVyID09PSAxMjMpXG5cdFx0XHRcdFx0XHRcdGlmIChvZmZzZXQgPT09IDApXG5cdFx0XHRcdFx0XHRcdFx0cGFyc2UoY2hhcmFjdGVycywgcm9vdCwgcmVmZXJlbmNlLCByZWZlcmVuY2UsIHByb3BzLCBydWxlc2V0cywgbGVuZ3RoLCBwb2ludHMsIGNoaWxkcmVuKVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0c3dpdGNoIChhdHJ1bGUgPT09IDk5ICYmIGNoYXJhdChjaGFyYWN0ZXJzLCAzKSA9PT0gMTEwID8gMTAwIDogYXRydWxlKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBkIGwgbSBzXG5cdFx0XHRcdFx0XHRcdFx0XHRjYXNlIDEwMDogY2FzZSAxMDg6IGNhc2UgMTA5OiBjYXNlIDExNTpcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFyc2UodmFsdWUsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCBydWxlICYmIGFwcGVuZChydWxlc2V0KHZhbHVlLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgMCwgMCwgcnVsZXMsIHBvaW50cywgdHlwZSwgcnVsZXMsIHByb3BzID0gW10sIGxlbmd0aCksIGNoaWxkcmVuKSwgcnVsZXMsIGNoaWxkcmVuLCBsZW5ndGgsIHBvaW50cywgcnVsZSA/IHByb3BzIDogY2hpbGRyZW4pXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXJzZShjaGFyYWN0ZXJzLCByZWZlcmVuY2UsIHJlZmVyZW5jZSwgcmVmZXJlbmNlLCBbJyddLCBjaGlsZHJlbiwgMCwgcG9pbnRzLCBjaGlsZHJlbilcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbmRleCA9IG9mZnNldCA9IHByb3BlcnR5ID0gMCwgdmFyaWFibGUgPSBhbXBlcnNhbmQgPSAxLCB0eXBlID0gY2hhcmFjdGVycyA9ICcnLCBsZW5ndGggPSBwc2V1ZG9cblx0XHRcdFx0YnJlYWtcblx0XHRcdC8vIDpcblx0XHRcdGNhc2UgNTg6XG5cdFx0XHRcdGxlbmd0aCA9IDEgKyBzdHJsZW4oY2hhcmFjdGVycyksIHByb3BlcnR5ID0gcHJldmlvdXNcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGlmICh2YXJpYWJsZSA8IDEpXG5cdFx0XHRcdFx0aWYgKGNoYXJhY3RlciA9PSAxMjMpXG5cdFx0XHRcdFx0XHQtLXZhcmlhYmxlXG5cdFx0XHRcdFx0ZWxzZSBpZiAoY2hhcmFjdGVyID09IDEyNSAmJiB2YXJpYWJsZSsrID09IDAgJiYgcHJldigpID09IDEyNSlcblx0XHRcdFx0XHRcdGNvbnRpbnVlXG5cblx0XHRcdFx0c3dpdGNoIChjaGFyYWN0ZXJzICs9IGZyb20oY2hhcmFjdGVyKSwgY2hhcmFjdGVyICogdmFyaWFibGUpIHtcblx0XHRcdFx0XHQvLyAmXG5cdFx0XHRcdFx0Y2FzZSAzODpcblx0XHRcdFx0XHRcdGFtcGVyc2FuZCA9IG9mZnNldCA+IDAgPyAxIDogKGNoYXJhY3RlcnMgKz0gJ1xcZicsIC0xKVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyAsXG5cdFx0XHRcdFx0Y2FzZSA0NDpcblx0XHRcdFx0XHRcdHBvaW50c1tpbmRleCsrXSA9IChzdHJsZW4oY2hhcmFjdGVycykgLSAxKSAqIGFtcGVyc2FuZCwgYW1wZXJzYW5kID0gMVxuXHRcdFx0XHRcdFx0YnJlYWtcblx0XHRcdFx0XHQvLyBAXG5cdFx0XHRcdFx0Y2FzZSA2NDpcblx0XHRcdFx0XHRcdC8vIC1cblx0XHRcdFx0XHRcdGlmIChwZWVrKCkgPT09IDQ1KVxuXHRcdFx0XHRcdFx0XHRjaGFyYWN0ZXJzICs9IGRlbGltaXQobmV4dCgpKVxuXG5cdFx0XHRcdFx0XHRhdHJ1bGUgPSBwZWVrKCksIG9mZnNldCA9IGxlbmd0aCA9IHN0cmxlbih0eXBlID0gY2hhcmFjdGVycyArPSBpZGVudGlmaWVyKGNhcmV0KCkpKSwgY2hhcmFjdGVyKytcblx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0Ly8gLVxuXHRcdFx0XHRcdGNhc2UgNDU6XG5cdFx0XHRcdFx0XHRpZiAocHJldmlvdXMgPT09IDQ1ICYmIHN0cmxlbihjaGFyYWN0ZXJzKSA9PSAyKVxuXHRcdFx0XHRcdFx0XHR2YXJpYWJsZSA9IDBcblx0XHRcdFx0fVxuXHRcdH1cblxuXHRyZXR1cm4gcnVsZXNldHNcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XG4gKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0XG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBydWxlc1xuICogQHBhcmFtIHtudW1iZXJbXX0gcG9pbnRzXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nW119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydWxlc2V0ICh2YWx1ZSwgcm9vdCwgcGFyZW50LCBpbmRleCwgb2Zmc2V0LCBydWxlcywgcG9pbnRzLCB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aCkge1xuXHR2YXIgcG9zdCA9IG9mZnNldCAtIDFcblx0dmFyIHJ1bGUgPSBvZmZzZXQgPT09IDAgPyBydWxlcyA6IFsnJ11cblx0dmFyIHNpemUgPSBzaXplb2YocnVsZSlcblxuXHRmb3IgKHZhciBpID0gMCwgaiA9IDAsIGsgPSAwOyBpIDwgaW5kZXg7ICsraSlcblx0XHRmb3IgKHZhciB4ID0gMCwgeSA9IHN1YnN0cih2YWx1ZSwgcG9zdCArIDEsIHBvc3QgPSBhYnMoaiA9IHBvaW50c1tpXSkpLCB6ID0gdmFsdWU7IHggPCBzaXplOyArK3gpXG5cdFx0XHRpZiAoeiA9IHRyaW0oaiA+IDAgPyBydWxlW3hdICsgJyAnICsgeSA6IHJlcGxhY2UoeSwgLyZcXGYvZywgcnVsZVt4XSkpKVxuXHRcdFx0XHRwcm9wc1trKytdID0gelxuXG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIG9mZnNldCA9PT0gMCA/IFJVTEVTRVQgOiB0eXBlLCBwcm9wcywgY2hpbGRyZW4sIGxlbmd0aClcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEBwYXJhbSB7b2JqZWN0fSByb290XG4gKiBAcGFyYW0ge29iamVjdD99IHBhcmVudFxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWVudCAodmFsdWUsIHJvb3QsIHBhcmVudCkge1xuXHRyZXR1cm4gbm9kZSh2YWx1ZSwgcm9vdCwgcGFyZW50LCBDT01NRU5ULCBmcm9tKGNoYXIoKSksIHN1YnN0cih2YWx1ZSwgMiwgLTIpLCAwKVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtvYmplY3R9IHJvb3RcbiAqIEBwYXJhbSB7b2JqZWN0P30gcGFyZW50XG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoXG4gKiBAcmV0dXJuIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNsYXJhdGlvbiAodmFsdWUsIHJvb3QsIHBhcmVudCwgbGVuZ3RoKSB7XG5cdHJldHVybiBub2RlKHZhbHVlLCByb290LCBwYXJlbnQsIERFQ0xBUkFUSU9OLCBzdWJzdHIodmFsdWUsIDAsIGxlbmd0aCksIHN1YnN0cih2YWx1ZSwgbGVuZ3RoICsgMSwgLTEpLCBsZW5ndGgpXG59XG4iLCJpbXBvcnQge0lNUE9SVCwgTEFZRVIsIENPTU1FTlQsIFJVTEVTRVQsIERFQ0xBUkFUSU9OLCBLRVlGUkFNRVN9IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7c3RybGVuLCBzaXplb2Z9IGZyb20gJy4vVXRpbGl0eS5qcydcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdFtdfSBjaGlsZHJlblxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZSAoY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHZhciBvdXRwdXQgPSAnJ1xuXHR2YXIgbGVuZ3RoID0gc2l6ZW9mKGNoaWxkcmVuKVxuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXG5cdFx0b3V0cHV0ICs9IGNhbGxiYWNrKGNoaWxkcmVuW2ldLCBpLCBjaGlsZHJlbiwgY2FsbGJhY2spIHx8ICcnXG5cblx0cmV0dXJuIG91dHB1dFxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5IChlbGVtZW50LCBpbmRleCwgY2hpbGRyZW4sIGNhbGxiYWNrKSB7XG5cdHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG5cdFx0Y2FzZSBMQVlFUjogaWYgKGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSBicmVha1xuXHRcdGNhc2UgSU1QT1JUOiBjYXNlIERFQ0xBUkFUSU9OOiByZXR1cm4gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnJldHVybiB8fCBlbGVtZW50LnZhbHVlXG5cdFx0Y2FzZSBDT01NRU5UOiByZXR1cm4gJydcblx0XHRjYXNlIEtFWUZSQU1FUzogcmV0dXJuIGVsZW1lbnQucmV0dXJuID0gZWxlbWVudC52YWx1ZSArICd7JyArIHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykgKyAnfSdcblx0XHRjYXNlIFJVTEVTRVQ6IGVsZW1lbnQudmFsdWUgPSBlbGVtZW50LnByb3BzLmpvaW4oJywnKVxuXHR9XG5cblx0cmV0dXJuIHN0cmxlbihjaGlsZHJlbiA9IHNlcmlhbGl6ZShlbGVtZW50LmNoaWxkcmVuLCBjYWxsYmFjaykpID8gZWxlbWVudC5yZXR1cm4gPSBlbGVtZW50LnZhbHVlICsgJ3snICsgY2hpbGRyZW4gKyAnfScgOiAnJ1xufVxuIiwiaW1wb3J0IHtNUywgTU9aLCBXRUJLSVQsIFJVTEVTRVQsIEtFWUZSQU1FUywgREVDTEFSQVRJT059IGZyb20gJy4vRW51bS5qcydcbmltcG9ydCB7bWF0Y2gsIGNoYXJhdCwgc3Vic3RyLCBzdHJsZW4sIHNpemVvZiwgcmVwbGFjZSwgY29tYmluZX0gZnJvbSAnLi9VdGlsaXR5LmpzJ1xuaW1wb3J0IHtjb3B5LCB0b2tlbml6ZX0gZnJvbSAnLi9Ub2tlbml6ZXIuanMnXG5pbXBvcnQge3NlcmlhbGl6ZX0gZnJvbSAnLi9TZXJpYWxpemVyLmpzJ1xuaW1wb3J0IHtwcmVmaXh9IGZyb20gJy4vUHJlZml4ZXIuanMnXG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbltdfSBjb2xsZWN0aW9uXG4gKiBAcmV0dXJuIHtmdW5jdGlvbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUgKGNvbGxlY3Rpb24pIHtcblx0dmFyIGxlbmd0aCA9IHNpemVvZihjb2xsZWN0aW9uKVxuXG5cdHJldHVybiBmdW5jdGlvbiAoZWxlbWVudCwgaW5kZXgsIGNoaWxkcmVuLCBjYWxsYmFjaykge1xuXHRcdHZhciBvdXRwdXQgPSAnJ1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKylcblx0XHRcdG91dHB1dCArPSBjb2xsZWN0aW9uW2ldKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHx8ICcnXG5cblx0XHRyZXR1cm4gb3V0cHV0XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydWxlc2hlZXQgKGNhbGxiYWNrKSB7XG5cdHJldHVybiBmdW5jdGlvbiAoZWxlbWVudCkge1xuXHRcdGlmICghZWxlbWVudC5yb290KVxuXHRcdFx0aWYgKGVsZW1lbnQgPSBlbGVtZW50LnJldHVybilcblx0XHRcdFx0Y2FsbGJhY2soZWxlbWVudClcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcbiAqIEBwYXJhbSB7b2JqZWN0W119IGNoaWxkcmVuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4ZXIgKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcblx0aWYgKGVsZW1lbnQubGVuZ3RoID4gLTEpXG5cdFx0aWYgKCFlbGVtZW50LnJldHVybilcblx0XHRcdHN3aXRjaCAoZWxlbWVudC50eXBlKSB7XG5cdFx0XHRcdGNhc2UgREVDTEFSQVRJT046IGVsZW1lbnQucmV0dXJuID0gcHJlZml4KGVsZW1lbnQudmFsdWUsIGVsZW1lbnQubGVuZ3RoLCBjaGlsZHJlbilcblx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0Y2FzZSBLRVlGUkFNRVM6XG5cdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7dmFsdWU6IHJlcGxhY2UoZWxlbWVudC52YWx1ZSwgJ0AnLCAnQCcgKyBXRUJLSVQpfSldLCBjYWxsYmFjaylcblx0XHRcdFx0Y2FzZSBSVUxFU0VUOlxuXHRcdFx0XHRcdGlmIChlbGVtZW50Lmxlbmd0aClcblx0XHRcdFx0XHRcdHJldHVybiBjb21iaW5lKGVsZW1lbnQucHJvcHMsIGZ1bmN0aW9uICh2YWx1ZSkge1xuXHRcdFx0XHRcdFx0XHRzd2l0Y2ggKG1hdGNoKHZhbHVlLCAvKDo6cGxhY1xcdyt8OnJlYWQtXFx3KykvKSkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIDpyZWFkLShvbmx5fHdyaXRlKVxuXHRcdFx0XHRcdFx0XHRcdGNhc2UgJzpyZWFkLW9ubHknOiBjYXNlICc6cmVhZC13cml0ZSc6XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gc2VyaWFsaXplKFtjb3B5KGVsZW1lbnQsIHtwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHJlYWQtXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV19KV0sIGNhbGxiYWNrKVxuXHRcdFx0XHRcdFx0XHRcdC8vIDpwbGFjZWhvbGRlclxuXHRcdFx0XHRcdFx0XHRcdGNhc2UgJzo6cGxhY2Vob2xkZXInOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNlcmlhbGl6ZShbXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgV0VCS0lUICsgJ2lucHV0LSQxJyldfSksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgJzonICsgTU9aICsgJyQxJyldfSksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvcHkoZWxlbWVudCwge3Byb3BzOiBbcmVwbGFjZSh2YWx1ZSwgLzoocGxhY1xcdyspLywgTVMgKyAnaW5wdXQtJDEnKV19KVxuXHRcdFx0XHRcdFx0XHRcdFx0XSwgY2FsbGJhY2spXG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gJydcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxuICogQHBhcmFtIHtvYmplY3RbXX0gY2hpbGRyZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZSAoZWxlbWVudCkge1xuXHRzd2l0Y2ggKGVsZW1lbnQudHlwZSkge1xuXHRcdGNhc2UgUlVMRVNFVDpcblx0XHRcdGVsZW1lbnQucHJvcHMgPSBlbGVtZW50LnByb3BzLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuIGNvbWJpbmUodG9rZW5pemUodmFsdWUpLCBmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBjaGlsZHJlbikge1xuXHRcdFx0XHRcdHN3aXRjaCAoY2hhcmF0KHZhbHVlLCAwKSkge1xuXHRcdFx0XHRcdFx0Ly8gXFxmXG5cdFx0XHRcdFx0XHRjYXNlIDEyOlxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gc3Vic3RyKHZhbHVlLCAxLCBzdHJsZW4odmFsdWUpKVxuXHRcdFx0XHRcdFx0Ly8gXFwwICggKyA+IH5cblx0XHRcdFx0XHRcdGNhc2UgMDogY2FzZSA0MDogY2FzZSA0MzogY2FzZSA2MjogY2FzZSAxMjY6XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZVxuXHRcdFx0XHRcdFx0Ly8gOlxuXHRcdFx0XHRcdFx0Y2FzZSA1ODpcblx0XHRcdFx0XHRcdFx0aWYgKGNoaWxkcmVuWysraW5kZXhdID09PSAnZ2xvYmFsJylcblx0XHRcdFx0XHRcdFx0XHRjaGlsZHJlbltpbmRleF0gPSAnJywgY2hpbGRyZW5bKytpbmRleF0gPSAnXFxmJyArIHN1YnN0cihjaGlsZHJlbltpbmRleF0sIGluZGV4ID0gMSwgLTEpXG5cdFx0XHRcdFx0XHQvLyBcXHNcblx0XHRcdFx0XHRcdGNhc2UgMzI6XG5cdFx0XHRcdFx0XHRcdHJldHVybiBpbmRleCA9PT0gMSA/ICcnIDogdmFsdWVcblx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAoaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0XHRjYXNlIDA6IGVsZW1lbnQgPSB2YWx1ZVxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNpemVvZihjaGlsZHJlbikgPiAxID8gJycgOiB2YWx1ZVxuXHRcdFx0XHRcdFx0XHRcdGNhc2UgaW5kZXggPSBzaXplb2YoY2hpbGRyZW4pIC0gMTogY2FzZSAyOlxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGluZGV4ID09PSAyID8gdmFsdWUgKyBlbGVtZW50ICsgZWxlbWVudCA6IHZhbHVlICsgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWVcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH0pXG5cdH1cbn1cbiIsInZhciB3ZWFrTWVtb2l6ZSA9IGZ1bmN0aW9uIHdlYWtNZW1vaXplKGZ1bmMpIHtcbiAgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICBpZiAoY2FjaGUuaGFzKGFyZykpIHtcbiAgICAgIC8vIFVzZSBub24tbnVsbCBhc3NlcnRpb24gYmVjYXVzZSB3ZSBqdXN0IGNoZWNrZWQgdGhhdCB0aGUgY2FjaGUgYGhhc2AgaXRcbiAgICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBgdW5kZWZpbmVkYCBmcm9tIHRoZSByZXR1cm4gdmFsdWVcbiAgICAgIHJldHVybiBjYWNoZS5nZXQoYXJnKTtcbiAgICB9XG5cbiAgICB2YXIgcmV0ID0gZnVuYyhhcmcpO1xuICAgIGNhY2hlLnNldChhcmcsIHJldCk7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcbn07XG5cbmV4cG9ydCB7IHdlYWtNZW1vaXplIGFzIGRlZmF1bHQgfTtcbiIsImZ1bmN0aW9uIG1lbW9pemUoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICBpZiAoY2FjaGVbYXJnXSA9PT0gdW5kZWZpbmVkKSBjYWNoZVthcmddID0gZm4oYXJnKTtcbiAgICByZXR1cm4gY2FjaGVbYXJnXTtcbiAgfTtcbn1cblxuZXhwb3J0IHsgbWVtb2l6ZSBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgeyBTdHlsZVNoZWV0IH0gZnJvbSAnQGVtb3Rpb24vc2hlZXQnO1xuaW1wb3J0IHsgZGVhbGxvYywgYWxsb2MsIG5leHQsIHRva2VuLCBmcm9tLCBwZWVrLCBkZWxpbWl0LCBzbGljZSwgcG9zaXRpb24sIFJVTEVTRVQsIGNvbWJpbmUsIG1hdGNoLCBzZXJpYWxpemUsIGNvcHksIHJlcGxhY2UsIFdFQktJVCwgTU9aLCBNUywgS0VZRlJBTUVTLCBERUNMQVJBVElPTiwgaGFzaCwgY2hhcmF0LCBzdHJsZW4sIGluZGV4b2YsIHN0cmluZ2lmeSwgcnVsZXNoZWV0LCBtaWRkbGV3YXJlLCBjb21waWxlIH0gZnJvbSAnc3R5bGlzJztcbmltcG9ydCAnQGVtb3Rpb24vd2Vhay1tZW1vaXplJztcbmltcG9ydCAnQGVtb3Rpb24vbWVtb2l6ZSc7XG5cbnZhciBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcgPSBmdW5jdGlvbiBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcoYmVnaW4sIHBvaW50cywgaW5kZXgpIHtcbiAgdmFyIHByZXZpb3VzID0gMDtcbiAgdmFyIGNoYXJhY3RlciA9IDA7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBwcmV2aW91cyA9IGNoYXJhY3RlcjtcbiAgICBjaGFyYWN0ZXIgPSBwZWVrKCk7IC8vICZcXGZcblxuICAgIGlmIChwcmV2aW91cyA9PT0gMzggJiYgY2hhcmFjdGVyID09PSAxMikge1xuICAgICAgcG9pbnRzW2luZGV4XSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHRva2VuKGNoYXJhY3RlcikpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIG5leHQoKTtcbiAgfVxuXG4gIHJldHVybiBzbGljZShiZWdpbiwgcG9zaXRpb24pO1xufTtcblxudmFyIHRvUnVsZXMgPSBmdW5jdGlvbiB0b1J1bGVzKHBhcnNlZCwgcG9pbnRzKSB7XG4gIC8vIHByZXRlbmQgd2UndmUgc3RhcnRlZCB3aXRoIGEgY29tbWFcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBjaGFyYWN0ZXIgPSA0NDtcblxuICBkbyB7XG4gICAgc3dpdGNoICh0b2tlbihjaGFyYWN0ZXIpKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIC8vICZcXGZcbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gMzggJiYgcGVlaygpID09PSAxMikge1xuICAgICAgICAgIC8vIHRoaXMgaXMgbm90IDEwMCUgY29ycmVjdCwgd2UgZG9uJ3QgYWNjb3VudCBmb3IgbGl0ZXJhbCBzZXF1ZW5jZXMgaGVyZSAtIGxpa2UgZm9yIGV4YW1wbGUgcXVvdGVkIHN0cmluZ3NcbiAgICAgICAgICAvLyBzdHlsaXMgaW5zZXJ0cyBcXGYgYWZ0ZXIgJiB0byBrbm93IHdoZW4gJiB3aGVyZSBpdCBzaG91bGQgcmVwbGFjZSB0aGlzIHNlcXVlbmNlIHdpdGggdGhlIGNvbnRleHQgc2VsZWN0b3JcbiAgICAgICAgICAvLyBhbmQgd2hlbiBpdCBzaG91bGQganVzdCBjb25jYXRlbmF0ZSB0aGUgb3V0ZXIgYW5kIGlubmVyIHNlbGVjdG9yc1xuICAgICAgICAgIC8vIGl0J3MgdmVyeSB1bmxpa2VseSBmb3IgdGhpcyBzZXF1ZW5jZSB0byBhY3R1YWxseSBhcHBlYXIgaW4gYSBkaWZmZXJlbnQgY29udGV4dCwgc28gd2UganVzdCBsZXZlcmFnZSB0aGlzIGZhY3QgaGVyZVxuICAgICAgICAgIHBvaW50c1tpbmRleF0gPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyc2VkW2luZGV4XSArPSBpZGVudGlmaWVyV2l0aFBvaW50VHJhY2tpbmcocG9zaXRpb24gLSAxLCBwb2ludHMsIGluZGV4KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcGFyc2VkW2luZGV4XSArPSBkZWxpbWl0KGNoYXJhY3Rlcik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIDQ6XG4gICAgICAgIC8vIGNvbW1hXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IDQ0KSB7XG4gICAgICAgICAgLy8gY29sb25cbiAgICAgICAgICBwYXJzZWRbKytpbmRleF0gPSBwZWVrKCkgPT09IDU4ID8gJyZcXGYnIDogJyc7XG4gICAgICAgICAgcG9pbnRzW2luZGV4XSA9IHBhcnNlZFtpbmRleF0ubGVuZ3RoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIC8vIGZhbGx0aHJvdWdoXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHBhcnNlZFtpbmRleF0gKz0gZnJvbShjaGFyYWN0ZXIpO1xuICAgIH1cbiAgfSB3aGlsZSAoY2hhcmFjdGVyID0gbmV4dCgpKTtcblxuICByZXR1cm4gcGFyc2VkO1xufTtcblxudmFyIGdldFJ1bGVzID0gZnVuY3Rpb24gZ2V0UnVsZXModmFsdWUsIHBvaW50cykge1xuICByZXR1cm4gZGVhbGxvYyh0b1J1bGVzKGFsbG9jKHZhbHVlKSwgcG9pbnRzKSk7XG59OyAvLyBXZWFrU2V0IHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUsIGJ1dCBvbmx5IFdlYWtNYXAgaXMgc3VwcG9ydGVkIGluIElFMTFcblxuXG52YXIgZml4ZWRFbGVtZW50cyA9IC8qICNfX1BVUkVfXyAqL25ldyBXZWFrTWFwKCk7XG52YXIgY29tcGF0ID0gZnVuY3Rpb24gY29tcGF0KGVsZW1lbnQpIHtcbiAgaWYgKGVsZW1lbnQudHlwZSAhPT0gJ3J1bGUnIHx8ICFlbGVtZW50LnBhcmVudCB8fCAvLyBwb3NpdGl2ZSAubGVuZ3RoIGluZGljYXRlcyB0aGF0IHRoaXMgcnVsZSBjb250YWlucyBwc2V1ZG9cbiAgLy8gbmVnYXRpdmUgLmxlbmd0aCBpbmRpY2F0ZXMgdGhhdCB0aGlzIHJ1bGUgaGFzIGJlZW4gYWxyZWFkeSBwcmVmaXhlZFxuICBlbGVtZW50Lmxlbmd0aCA8IDEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgdmFsdWUgPSBlbGVtZW50LnZhbHVlO1xuICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnQ7XG4gIHZhciBpc0ltcGxpY2l0UnVsZSA9IGVsZW1lbnQuY29sdW1uID09PSBwYXJlbnQuY29sdW1uICYmIGVsZW1lbnQubGluZSA9PT0gcGFyZW50LmxpbmU7XG5cbiAgd2hpbGUgKHBhcmVudC50eXBlICE9PSAncnVsZScpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICAgIGlmICghcGFyZW50KSByZXR1cm47XG4gIH0gLy8gc2hvcnQtY2lyY3VpdCBmb3IgdGhlIHNpbXBsZXN0IGNhc2VcblxuXG4gIGlmIChlbGVtZW50LnByb3BzLmxlbmd0aCA9PT0gMSAmJiB2YWx1ZS5jaGFyQ29kZUF0KDApICE9PSA1OFxuICAvKiBjb2xvbiAqL1xuICAmJiAhZml4ZWRFbGVtZW50cy5nZXQocGFyZW50KSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBpZiB0aGlzIGlzIGFuIGltcGxpY2l0bHkgaW5zZXJ0ZWQgcnVsZSAodGhlIG9uZSBlYWdlcmx5IGluc2VydGVkIGF0IHRoZSBlYWNoIG5ldyBuZXN0ZWQgbGV2ZWwpXG4gIC8vIHRoZW4gdGhlIHByb3BzIGhhcyBhbHJlYWR5IGJlZW4gbWFuaXB1bGF0ZWQgYmVmb3JlaGFuZCBhcyB0aGV5IHRoYXQgYXJyYXkgaXMgc2hhcmVkIGJldHdlZW4gaXQgYW5kIGl0cyBcInJ1bGUgcGFyZW50XCJcblxuXG4gIGlmIChpc0ltcGxpY2l0UnVsZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZpeGVkRWxlbWVudHMuc2V0KGVsZW1lbnQsIHRydWUpO1xuICB2YXIgcG9pbnRzID0gW107XG4gIHZhciBydWxlcyA9IGdldFJ1bGVzKHZhbHVlLCBwb2ludHMpO1xuICB2YXIgcGFyZW50UnVsZXMgPSBwYXJlbnQucHJvcHM7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGsgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBhcmVudFJ1bGVzLmxlbmd0aDsgaisrLCBrKyspIHtcbiAgICAgIGVsZW1lbnQucHJvcHNba10gPSBwb2ludHNbaV0gPyBydWxlc1tpXS5yZXBsYWNlKC8mXFxmL2csIHBhcmVudFJ1bGVzW2pdKSA6IHBhcmVudFJ1bGVzW2pdICsgXCIgXCIgKyBydWxlc1tpXTtcbiAgICB9XG4gIH1cbn07XG52YXIgcmVtb3ZlTGFiZWwgPSBmdW5jdGlvbiByZW1vdmVMYWJlbChlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50LnR5cGUgPT09ICdkZWNsJykge1xuICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7XG5cbiAgICBpZiAoIC8vIGNoYXJjb2RlIGZvciBsXG4gICAgdmFsdWUuY2hhckNvZGVBdCgwKSA9PT0gMTA4ICYmIC8vIGNoYXJjb2RlIGZvciBiXG4gICAgdmFsdWUuY2hhckNvZGVBdCgyKSA9PT0gOTgpIHtcbiAgICAgIC8vIHRoaXMgaWdub3JlcyBsYWJlbFxuICAgICAgZWxlbWVudFtcInJldHVyblwiXSA9ICcnO1xuICAgICAgZWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxufTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tZmFsbHRocm91Z2ggKi9cblxuZnVuY3Rpb24gcHJlZml4KHZhbHVlLCBsZW5ndGgpIHtcbiAgc3dpdGNoIChoYXNoKHZhbHVlLCBsZW5ndGgpKSB7XG4gICAgLy8gY29sb3ItYWRqdXN0XG4gICAgY2FzZSA1MTAzOlxuICAgICAgcmV0dXJuIFdFQktJVCArICdwcmludC0nICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBhbmltYXRpb24sIGFuaW1hdGlvbi0oZGVsYXl8ZGlyZWN0aW9ufGR1cmF0aW9ufGZpbGwtbW9kZXxpdGVyYXRpb24tY291bnR8bmFtZXxwbGF5LXN0YXRlfHRpbWluZy1mdW5jdGlvbilcblxuICAgIGNhc2UgNTczNzpcbiAgICBjYXNlIDQyMDE6XG4gICAgY2FzZSAzMTc3OlxuICAgIGNhc2UgMzQzMzpcbiAgICBjYXNlIDE2NDE6XG4gICAgY2FzZSA0NDU3OlxuICAgIGNhc2UgMjkyMTogLy8gdGV4dC1kZWNvcmF0aW9uLCBmaWx0ZXIsIGNsaXAtcGF0aCwgYmFja2ZhY2UtdmlzaWJpbGl0eSwgY29sdW1uLCBib3gtZGVjb3JhdGlvbi1icmVha1xuXG4gICAgY2FzZSA1NTcyOlxuICAgIGNhc2UgNjM1NjpcbiAgICBjYXNlIDU4NDQ6XG4gICAgY2FzZSAzMTkxOlxuICAgIGNhc2UgNjY0NTpcbiAgICBjYXNlIDMwMDU6IC8vIG1hc2ssIG1hc2staW1hZ2UsIG1hc2stKG1vZGV8Y2xpcHxzaXplKSwgbWFzay0ocmVwZWF0fG9yaWdpbiksIG1hc2stcG9zaXRpb24sIG1hc2stY29tcG9zaXRlLFxuXG4gICAgY2FzZSA2MzkxOlxuICAgIGNhc2UgNTg3OTpcbiAgICBjYXNlIDU2MjM6XG4gICAgY2FzZSA2MTM1OlxuICAgIGNhc2UgNDU5OTpcbiAgICBjYXNlIDQ4NTU6IC8vIGJhY2tncm91bmQtY2xpcCwgY29sdW1ucywgY29sdW1uLShjb3VudHxmaWxsfGdhcHxydWxlfHJ1bGUtY29sb3J8cnVsZS1zdHlsZXxydWxlLXdpZHRofHNwYW58d2lkdGgpXG5cbiAgICBjYXNlIDQyMTU6XG4gICAgY2FzZSA2Mzg5OlxuICAgIGNhc2UgNTEwOTpcbiAgICBjYXNlIDUzNjU6XG4gICAgY2FzZSA1NjIxOlxuICAgIGNhc2UgMzgyOTpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIHZhbHVlO1xuICAgIC8vIGFwcGVhcmFuY2UsIHVzZXItc2VsZWN0LCB0cmFuc2Zvcm0sIGh5cGhlbnMsIHRleHQtc2l6ZS1hZGp1c3RcblxuICAgIGNhc2UgNTM0OTpcbiAgICBjYXNlIDQyNDY6XG4gICAgY2FzZSA0ODEwOlxuICAgIGNhc2UgNjk2ODpcbiAgICBjYXNlIDI3NTY6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNT1ogKyB2YWx1ZSArIE1TICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LCBmbGV4LWRpcmVjdGlvblxuXG4gICAgY2FzZSA2ODI4OlxuICAgIGNhc2UgNDI2ODpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBvcmRlclxuXG4gICAgY2FzZSA2MTY1OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyAnZmxleC0nICsgdmFsdWUgKyB2YWx1ZTtcbiAgICAvLyBhbGlnbi1pdGVtc1xuXG4gICAgY2FzZSA1MTg3OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgcmVwbGFjZSh2YWx1ZSwgLyhcXHcrKS4rKDpbXl0rKS8sIFdFQktJVCArICdib3gtJDEkMicgKyBNUyArICdmbGV4LSQxJDInKSArIHZhbHVlO1xuICAgIC8vIGFsaWduLXNlbGZcblxuICAgIGNhc2UgNTQ0MzpcbiAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgJ2ZsZXgtaXRlbS0nICsgcmVwbGFjZSh2YWx1ZSwgL2ZsZXgtfC1zZWxmLywgJycpICsgdmFsdWU7XG4gICAgLy8gYWxpZ24tY29udGVudFxuXG4gICAgY2FzZSA0Njc1OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyAnZmxleC1saW5lLXBhY2snICsgcmVwbGFjZSh2YWx1ZSwgL2FsaWduLWNvbnRlbnR8ZmxleC18LXNlbGYvLCAnJykgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LXNocmlua1xuXG4gICAgY2FzZSA1NTQ4OlxuICAgICAgcmV0dXJuIFdFQktJVCArIHZhbHVlICsgTVMgKyByZXBsYWNlKHZhbHVlLCAnc2hyaW5rJywgJ25lZ2F0aXZlJykgKyB2YWx1ZTtcbiAgICAvLyBmbGV4LWJhc2lzXG5cbiAgICBjYXNlIDUyOTI6XG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsICdiYXNpcycsICdwcmVmZXJyZWQtc2l6ZScpICsgdmFsdWU7XG4gICAgLy8gZmxleC1ncm93XG5cbiAgICBjYXNlIDYwNjA6XG4gICAgICByZXR1cm4gV0VCS0lUICsgJ2JveC0nICsgcmVwbGFjZSh2YWx1ZSwgJy1ncm93JywgJycpICsgV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsICdncm93JywgJ3Bvc2l0aXZlJykgKyB2YWx1ZTtcbiAgICAvLyB0cmFuc2l0aW9uXG5cbiAgICBjYXNlIDQ1NTQ6XG4gICAgICByZXR1cm4gV0VCS0lUICsgcmVwbGFjZSh2YWx1ZSwgLyhbXi1dKSh0cmFuc2Zvcm0pL2csICckMScgKyBXRUJLSVQgKyAnJDInKSArIHZhbHVlO1xuICAgIC8vIGN1cnNvclxuXG4gICAgY2FzZSA2MTg3OlxuICAgICAgcmV0dXJuIHJlcGxhY2UocmVwbGFjZShyZXBsYWNlKHZhbHVlLCAvKHpvb20tfGdyYWIpLywgV0VCS0lUICsgJyQxJyksIC8oaW1hZ2Utc2V0KS8sIFdFQktJVCArICckMScpLCB2YWx1ZSwgJycpICsgdmFsdWU7XG4gICAgLy8gYmFja2dyb3VuZCwgYmFja2dyb3VuZC1pbWFnZVxuXG4gICAgY2FzZSA1NDk1OlxuICAgIGNhc2UgMzk1OTpcbiAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKGltYWdlLXNldFxcKFteXSopLywgV0VCS0lUICsgJyQxJyArICckYCQxJyk7XG4gICAgLy8ganVzdGlmeS1jb250ZW50XG5cbiAgICBjYXNlIDQ5Njg6XG4gICAgICByZXR1cm4gcmVwbGFjZShyZXBsYWNlKHZhbHVlLCAvKC4rOikoZmxleC0pPyguKikvLCBXRUJLSVQgKyAnYm94LXBhY2s6JDMnICsgTVMgKyAnZmxleC1wYWNrOiQzJyksIC9zListYlteO10rLywgJ2p1c3RpZnknKSArIFdFQktJVCArIHZhbHVlICsgdmFsdWU7XG4gICAgLy8gKG1hcmdpbnxwYWRkaW5nKS1pbmxpbmUtKHN0YXJ0fGVuZClcblxuICAgIGNhc2UgNDA5NTpcbiAgICBjYXNlIDM1ODM6XG4gICAgY2FzZSA0MDY4OlxuICAgIGNhc2UgMjUzMjpcbiAgICAgIHJldHVybiByZXBsYWNlKHZhbHVlLCAvKC4rKS1pbmxpbmUoLispLywgV0VCS0lUICsgJyQxJDInKSArIHZhbHVlO1xuICAgIC8vIChtaW58bWF4KT8od2lkdGh8aGVpZ2h0fGlubGluZS1zaXplfGJsb2NrLXNpemUpXG5cbiAgICBjYXNlIDgxMTY6XG4gICAgY2FzZSA3MDU5OlxuICAgIGNhc2UgNTc1MzpcbiAgICBjYXNlIDU1MzU6XG4gICAgY2FzZSA1NDQ1OlxuICAgIGNhc2UgNTcwMTpcbiAgICBjYXNlIDQ5MzM6XG4gICAgY2FzZSA0Njc3OlxuICAgIGNhc2UgNTUzMzpcbiAgICBjYXNlIDU3ODk6XG4gICAgY2FzZSA1MDIxOlxuICAgIGNhc2UgNDc2NTpcbiAgICAgIC8vIHN0cmV0Y2gsIG1heC1jb250ZW50LCBtaW4tY29udGVudCwgZmlsbC1hdmFpbGFibGVcbiAgICAgIGlmIChzdHJsZW4odmFsdWUpIC0gMSAtIGxlbmd0aCA+IDYpIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxKSkge1xuICAgICAgICAvLyAobSlheC1jb250ZW50LCAobSlpbi1jb250ZW50XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIC8vIC1cbiAgICAgICAgICBpZiAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyA0KSAhPT0gNDUpIGJyZWFrO1xuICAgICAgICAvLyAoZilpbGwtYXZhaWxhYmxlLCAoZilpdC1jb250ZW50XG5cbiAgICAgICAgY2FzZSAxMDI6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLis6KSguKyktKFteXSspLywgJyQxJyArIFdFQktJVCArICckMi0kMycgKyAnJDEnICsgTU9aICsgKGNoYXJhdCh2YWx1ZSwgbGVuZ3RoICsgMykgPT0gMTA4ID8gJyQzJyA6ICckMi0kMycpKSArIHZhbHVlO1xuICAgICAgICAvLyAocyl0cmV0Y2hcblxuICAgICAgICBjYXNlIDExNTpcbiAgICAgICAgICByZXR1cm4gfmluZGV4b2YodmFsdWUsICdzdHJldGNoJykgPyBwcmVmaXgocmVwbGFjZSh2YWx1ZSwgJ3N0cmV0Y2gnLCAnZmlsbC1hdmFpbGFibGUnKSwgbGVuZ3RoKSArIHZhbHVlIDogdmFsdWU7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAvLyBwb3NpdGlvbjogc3RpY2t5XG5cbiAgICBjYXNlIDQ5NDk6XG4gICAgICAvLyAocyl0aWNreT9cbiAgICAgIGlmIChjaGFyYXQodmFsdWUsIGxlbmd0aCArIDEpICE9PSAxMTUpIGJyZWFrO1xuICAgIC8vIGRpc3BsYXk6IChmbGV4fGlubGluZS1mbGV4KVxuXG4gICAgY2FzZSA2NDQ0OlxuICAgICAgc3dpdGNoIChjaGFyYXQodmFsdWUsIHN0cmxlbih2YWx1ZSkgLSAzIC0gKH5pbmRleG9mKHZhbHVlLCAnIWltcG9ydGFudCcpICYmIDEwKSkpIHtcbiAgICAgICAgLy8gc3RpYyhrKXlcbiAgICAgICAgY2FzZSAxMDc6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsICc6JywgJzonICsgV0VCS0lUKSArIHZhbHVlO1xuICAgICAgICAvLyAoaW5saW5lLSk/ZmwoZSl4XG5cbiAgICAgICAgY2FzZSAxMDE6XG4gICAgICAgICAgcmV0dXJuIHJlcGxhY2UodmFsdWUsIC8oLis6KShbXjshXSspKDt8IS4rKT8vLCAnJDEnICsgV0VCS0lUICsgKGNoYXJhdCh2YWx1ZSwgMTQpID09PSA0NSA/ICdpbmxpbmUtJyA6ICcnKSArICdib3gkMycgKyAnJDEnICsgV0VCS0lUICsgJyQyJDMnICsgJyQxJyArIE1TICsgJyQyYm94JDMnKSArIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICAvLyB3cml0aW5nLW1vZGVcblxuICAgIGNhc2UgNTkzNjpcbiAgICAgIHN3aXRjaCAoY2hhcmF0KHZhbHVlLCBsZW5ndGggKyAxMSkpIHtcbiAgICAgICAgLy8gdmVydGljYWwtbChyKVxuICAgICAgICBjYXNlIDExNDpcbiAgICAgICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHJlcGxhY2UodmFsdWUsIC9bc3ZoXVxcdystW3RibHJdezJ9LywgJ3RiJykgKyB2YWx1ZTtcbiAgICAgICAgLy8gdmVydGljYWwtcihsKVxuXG4gICAgICAgIGNhc2UgMTA4OlxuICAgICAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgL1tzdmhdXFx3Ky1bdGJscl17Mn0vLCAndGItcmwnKSArIHZhbHVlO1xuICAgICAgICAvLyBob3Jpem9udGFsKC0pdGJcblxuICAgICAgICBjYXNlIDQ1OlxuICAgICAgICAgIHJldHVybiBXRUJLSVQgKyB2YWx1ZSArIE1TICsgcmVwbGFjZSh2YWx1ZSwgL1tzdmhdXFx3Ky1bdGJscl17Mn0vLCAnbHInKSArIHZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gV0VCS0lUICsgdmFsdWUgKyBNUyArIHZhbHVlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbnZhciBwcmVmaXhlciA9IGZ1bmN0aW9uIHByZWZpeGVyKGVsZW1lbnQsIGluZGV4LCBjaGlsZHJlbiwgY2FsbGJhY2spIHtcbiAgaWYgKGVsZW1lbnQubGVuZ3RoID4gLTEpIGlmICghZWxlbWVudFtcInJldHVyblwiXSkgc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICBjYXNlIERFQ0xBUkFUSU9OOlxuICAgICAgZWxlbWVudFtcInJldHVyblwiXSA9IHByZWZpeChlbGVtZW50LnZhbHVlLCBlbGVtZW50Lmxlbmd0aCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgS0VZRlJBTUVTOlxuICAgICAgcmV0dXJuIHNlcmlhbGl6ZShbY29weShlbGVtZW50LCB7XG4gICAgICAgIHZhbHVlOiByZXBsYWNlKGVsZW1lbnQudmFsdWUsICdAJywgJ0AnICsgV0VCS0lUKVxuICAgICAgfSldLCBjYWxsYmFjayk7XG5cbiAgICBjYXNlIFJVTEVTRVQ6XG4gICAgICBpZiAoZWxlbWVudC5sZW5ndGgpIHJldHVybiBjb21iaW5lKGVsZW1lbnQucHJvcHMsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKG1hdGNoKHZhbHVlLCAvKDo6cGxhY1xcdyt8OnJlYWQtXFx3KykvKSkge1xuICAgICAgICAgIC8vIDpyZWFkLShvbmx5fHdyaXRlKVxuICAgICAgICAgIGNhc2UgJzpyZWFkLW9ubHknOlxuICAgICAgICAgIGNhc2UgJzpyZWFkLXdyaXRlJzpcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemUoW2NvcHkoZWxlbWVudCwge1xuICAgICAgICAgICAgICBwcm9wczogW3JlcGxhY2UodmFsdWUsIC86KHJlYWQtXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV1cbiAgICAgICAgICAgIH0pXSwgY2FsbGJhY2spO1xuICAgICAgICAgIC8vIDpwbGFjZWhvbGRlclxuXG4gICAgICAgICAgY2FzZSAnOjpwbGFjZWhvbGRlcic6XG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplKFtjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCAnOicgKyBXRUJLSVQgKyAnaW5wdXQtJDEnKV1cbiAgICAgICAgICAgIH0pLCBjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCAnOicgKyBNT1ogKyAnJDEnKV1cbiAgICAgICAgICAgIH0pLCBjb3B5KGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAgcHJvcHM6IFtyZXBsYWNlKHZhbHVlLCAvOihwbGFjXFx3KykvLCBNUyArICdpbnB1dC0kMScpXVxuICAgICAgICAgICAgfSldLCBjYWxsYmFjayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9KTtcbiAgfVxufTtcblxudmFyIGRlZmF1bHRTdHlsaXNQbHVnaW5zID0gW3ByZWZpeGVyXTtcblxudmFyIGNyZWF0ZUNhY2hlID0gZnVuY3Rpb24gY3JlYXRlQ2FjaGUob3B0aW9ucykge1xuICB2YXIga2V5ID0gb3B0aW9ucy5rZXk7XG5cbiAgaWYgKGtleSA9PT0gJ2NzcycpIHtcbiAgICB2YXIgc3NyU3R5bGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInN0eWxlW2RhdGEtZW1vdGlvbl06bm90KFtkYXRhLXNdKVwiKTsgLy8gZ2V0IFNTUmVkIHN0eWxlcyBvdXQgb2YgdGhlIHdheSBvZiBSZWFjdCdzIGh5ZHJhdGlvblxuICAgIC8vIGRvY3VtZW50LmhlYWQgaXMgYSBzYWZlIHBsYWNlIHRvIG1vdmUgdGhlbSB0byh0aG91Z2ggbm90ZSBkb2N1bWVudC5oZWFkIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgbGFzdCBwbGFjZSB0aGV5IHdpbGwgYmUpXG4gICAgLy8gbm90ZSB0aGlzIHZlcnkgdmVyeSBpbnRlbnRpb25hbGx5IHRhcmdldHMgYWxsIHN0eWxlIGVsZW1lbnRzIHJlZ2FyZGxlc3Mgb2YgdGhlIGtleSB0byBlbnN1cmVcbiAgICAvLyB0aGF0IGNyZWF0aW5nIGEgY2FjaGUgd29ya3MgaW5zaWRlIG9mIHJlbmRlciBvZiBhIFJlYWN0IGNvbXBvbmVudFxuXG4gICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChzc3JTdHlsZXMsIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAvLyB3ZSB3YW50IHRvIG9ubHkgbW92ZSBlbGVtZW50cyB3aGljaCBoYXZlIGEgc3BhY2UgaW4gdGhlIGRhdGEtZW1vdGlvbiBhdHRyaWJ1dGUgdmFsdWVcbiAgICAgIC8vIGJlY2F1c2UgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBhbiBFbW90aW9uIDExIHNlcnZlci1zaWRlIHJlbmRlcmVkIHN0eWxlIGVsZW1lbnRzXG4gICAgICAvLyB3aGlsZSB3ZSB3aWxsIGFscmVhZHkgaWdub3JlIEVtb3Rpb24gMTEgY2xpZW50LXNpZGUgaW5zZXJ0ZWQgc3R5bGVzIGJlY2F1c2Ugb2YgdGhlIDpub3QoW2RhdGEtc10pIHBhcnQgaW4gdGhlIHNlbGVjdG9yXG4gICAgICAvLyBFbW90aW9uIDEwIGNsaWVudC1zaWRlIGluc2VydGVkIHN0eWxlcyBkaWQgbm90IGhhdmUgZGF0YS1zIChidXQgaW1wb3J0YW50bHkgZGlkIG5vdCBoYXZlIGEgc3BhY2UgaW4gdGhlaXIgZGF0YS1lbW90aW9uIGF0dHJpYnV0ZXMpXG4gICAgICAvLyBzbyBjaGVja2luZyBmb3IgdGhlIHNwYWNlIGVuc3VyZXMgdGhhdCBsb2FkaW5nIEVtb3Rpb24gMTEgYWZ0ZXIgRW1vdGlvbiAxMCBoYXMgaW5zZXJ0ZWQgc29tZSBzdHlsZXNcbiAgICAgIC8vIHdpbGwgbm90IHJlc3VsdCBpbiB0aGUgRW1vdGlvbiAxMCBzdHlsZXMgYmVpbmcgZGVzdHJveWVkXG4gICAgICB2YXIgZGF0YUVtb3Rpb25BdHRyaWJ1dGUgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1lbW90aW9uJyk7XG5cbiAgICAgIGlmIChkYXRhRW1vdGlvbkF0dHJpYnV0ZS5pbmRleE9mKCcgJykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdkYXRhLXMnLCAnJyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgc3R5bGlzUGx1Z2lucyA9IG9wdGlvbnMuc3R5bGlzUGx1Z2lucyB8fCBkZWZhdWx0U3R5bGlzUGx1Z2lucztcblxuICB2YXIgaW5zZXJ0ZWQgPSB7fTtcbiAgdmFyIGNvbnRhaW5lcjtcbiAgdmFyIG5vZGVzVG9IeWRyYXRlID0gW107XG5cbiAge1xuICAgIGNvbnRhaW5lciA9IG9wdGlvbnMuY29udGFpbmVyIHx8IGRvY3VtZW50LmhlYWQ7XG4gICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCggLy8gdGhpcyBtZWFucyB3ZSB3aWxsIGlnbm9yZSBlbGVtZW50cyB3aGljaCBkb24ndCBoYXZlIGEgc3BhY2UgaW4gdGhlbSB3aGljaFxuICAgIC8vIG1lYW5zIHRoYXQgdGhlIHN0eWxlIGVsZW1lbnRzIHdlJ3JlIGxvb2tpbmcgYXQgYXJlIG9ubHkgRW1vdGlvbiAxMSBzZXJ2ZXItcmVuZGVyZWQgc3R5bGUgZWxlbWVudHNcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwic3R5bGVbZGF0YS1lbW90aW9uXj1cXFwiXCIgKyBrZXkgKyBcIiBcXFwiXVwiKSwgZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHZhciBhdHRyaWIgPSBub2RlLmdldEF0dHJpYnV0ZShcImRhdGEtZW1vdGlvblwiKS5zcGxpdCgnICcpO1xuXG4gICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGF0dHJpYi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpbnNlcnRlZFthdHRyaWJbaV1dID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbm9kZXNUb0h5ZHJhdGUucHVzaChub2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBfaW5zZXJ0O1xuXG4gIHZhciBvbW5pcHJlc2VudFBsdWdpbnMgPSBbY29tcGF0LCByZW1vdmVMYWJlbF07XG5cbiAge1xuICAgIHZhciBjdXJyZW50U2hlZXQ7XG4gICAgdmFyIGZpbmFsaXppbmdQbHVnaW5zID0gW3N0cmluZ2lmeSwgcnVsZXNoZWV0KGZ1bmN0aW9uIChydWxlKSB7XG4gICAgICBjdXJyZW50U2hlZXQuaW5zZXJ0KHJ1bGUpO1xuICAgIH0pXTtcbiAgICB2YXIgc2VyaWFsaXplciA9IG1pZGRsZXdhcmUob21uaXByZXNlbnRQbHVnaW5zLmNvbmNhdChzdHlsaXNQbHVnaW5zLCBmaW5hbGl6aW5nUGx1Z2lucykpO1xuXG4gICAgdmFyIHN0eWxpcyA9IGZ1bmN0aW9uIHN0eWxpcyhzdHlsZXMpIHtcbiAgICAgIHJldHVybiBzZXJpYWxpemUoY29tcGlsZShzdHlsZXMpLCBzZXJpYWxpemVyKTtcbiAgICB9O1xuXG4gICAgX2luc2VydCA9IGZ1bmN0aW9uIGluc2VydChzZWxlY3Rvciwgc2VyaWFsaXplZCwgc2hlZXQsIHNob3VsZENhY2hlKSB7XG4gICAgICBjdXJyZW50U2hlZXQgPSBzaGVldDtcblxuICAgICAgc3R5bGlzKHNlbGVjdG9yID8gc2VsZWN0b3IgKyBcIntcIiArIHNlcmlhbGl6ZWQuc3R5bGVzICsgXCJ9XCIgOiBzZXJpYWxpemVkLnN0eWxlcyk7XG5cbiAgICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgICBjYWNoZS5pbnNlcnRlZFtzZXJpYWxpemVkLm5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgdmFyIGNhY2hlID0ge1xuICAgIGtleToga2V5LFxuICAgIHNoZWV0OiBuZXcgU3R5bGVTaGVldCh7XG4gICAgICBrZXk6IGtleSxcbiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyLFxuICAgICAgbm9uY2U6IG9wdGlvbnMubm9uY2UsXG4gICAgICBzcGVlZHk6IG9wdGlvbnMuc3BlZWR5LFxuICAgICAgcHJlcGVuZDogb3B0aW9ucy5wcmVwZW5kLFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IG9wdGlvbnMuaW5zZXJ0aW9uUG9pbnRcbiAgICB9KSxcbiAgICBub25jZTogb3B0aW9ucy5ub25jZSxcbiAgICBpbnNlcnRlZDogaW5zZXJ0ZWQsXG4gICAgcmVnaXN0ZXJlZDoge30sXG4gICAgaW5zZXJ0OiBfaW5zZXJ0XG4gIH07XG4gIGNhY2hlLnNoZWV0Lmh5ZHJhdGUobm9kZXNUb0h5ZHJhdGUpO1xuICByZXR1cm4gY2FjaGU7XG59O1xuXG5leHBvcnQgeyBjcmVhdGVDYWNoZSBhcyBkZWZhdWx0IH07XG4iLCIvKiogQGxpY2Vuc2UgUmVhY3QgdjE2LjEzLjFcbiAqIHJlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO3ZhciBiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IsYz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLGQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LGU9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsZj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxnPWI/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LGg9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksaz1iP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLGw9Yj9TeW1ib2wuZm9yKFwicmVhY3QuYXN5bmNfbW9kZVwiKTo2MDExMSxtPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbmN1cnJlbnRfbW9kZVwiKTo2MDExMSxuPWI/U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpOjYwMTEyLHA9Yj9TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIik6NjAxMTMscT1iP1xuU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIik6NjAxMjAscj1iP1N5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpOjYwMTE1LHQ9Yj9TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTo2MDExNix2PWI/U3ltYm9sLmZvcihcInJlYWN0LmJsb2NrXCIpOjYwMTIxLHc9Yj9TeW1ib2wuZm9yKFwicmVhY3QuZnVuZGFtZW50YWxcIik6NjAxMTcseD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5yZXNwb25kZXJcIik6NjAxMTgseT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTo2MDExOTtcbmZ1bmN0aW9uIHooYSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSl7dmFyIHU9YS4kJHR5cGVvZjtzd2l0Y2godSl7Y2FzZSBjOnN3aXRjaChhPWEudHlwZSxhKXtjYXNlIGw6Y2FzZSBtOmNhc2UgZTpjYXNlIGc6Y2FzZSBmOmNhc2UgcDpyZXR1cm4gYTtkZWZhdWx0OnN3aXRjaChhPWEmJmEuJCR0eXBlb2YsYSl7Y2FzZSBrOmNhc2UgbjpjYXNlIHQ6Y2FzZSByOmNhc2UgaDpyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB1fX1jYXNlIGQ6cmV0dXJuIHV9fX1mdW5jdGlvbiBBKGEpe3JldHVybiB6KGEpPT09bX1leHBvcnRzLkFzeW5jTW9kZT1sO2V4cG9ydHMuQ29uY3VycmVudE1vZGU9bTtleHBvcnRzLkNvbnRleHRDb25zdW1lcj1rO2V4cG9ydHMuQ29udGV4dFByb3ZpZGVyPWg7ZXhwb3J0cy5FbGVtZW50PWM7ZXhwb3J0cy5Gb3J3YXJkUmVmPW47ZXhwb3J0cy5GcmFnbWVudD1lO2V4cG9ydHMuTGF6eT10O2V4cG9ydHMuTWVtbz1yO2V4cG9ydHMuUG9ydGFsPWQ7XG5leHBvcnRzLlByb2ZpbGVyPWc7ZXhwb3J0cy5TdHJpY3RNb2RlPWY7ZXhwb3J0cy5TdXNwZW5zZT1wO2V4cG9ydHMuaXNBc3luY01vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIEEoYSl8fHooYSk9PT1sfTtleHBvcnRzLmlzQ29uY3VycmVudE1vZGU9QTtleHBvcnRzLmlzQ29udGV4dENvbnN1bWVyPWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09a307ZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlcj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWh9O2V4cG9ydHMuaXNFbGVtZW50PWZ1bmN0aW9uKGEpe3JldHVyblwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1jfTtleHBvcnRzLmlzRm9yd2FyZFJlZj1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PW59O2V4cG9ydHMuaXNGcmFnbWVudD1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWV9O2V4cG9ydHMuaXNMYXp5PWZ1bmN0aW9uKGEpe3JldHVybiB6KGEpPT09dH07XG5leHBvcnRzLmlzTWVtbz1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXJ9O2V4cG9ydHMuaXNQb3J0YWw9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1kfTtleHBvcnRzLmlzUHJvZmlsZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIHooYSk9PT1nfTtleHBvcnRzLmlzU3RyaWN0TW9kZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PWZ9O2V4cG9ydHMuaXNTdXNwZW5zZT1mdW5jdGlvbihhKXtyZXR1cm4geihhKT09PXB9O1xuZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGU9ZnVuY3Rpb24oYSl7cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYXx8YT09PWV8fGE9PT1tfHxhPT09Z3x8YT09PWZ8fGE9PT1wfHxhPT09cXx8XCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmKGEuJCR0eXBlb2Y9PT10fHxhLiQkdHlwZW9mPT09cnx8YS4kJHR5cGVvZj09PWh8fGEuJCR0eXBlb2Y9PT1rfHxhLiQkdHlwZW9mPT09bnx8YS4kJHR5cGVvZj09PXd8fGEuJCR0eXBlb2Y9PT14fHxhLiQkdHlwZW9mPT09eXx8YS4kJHR5cGVvZj09PXYpfTtleHBvcnRzLnR5cGVPZj16O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciByZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSwgWWFob28hIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xudmFyIFJFQUNUX1NUQVRJQ1MgPSB7XG4gIGNoaWxkQ29udGV4dFR5cGVzOiB0cnVlLFxuICBjb250ZXh0VHlwZTogdHJ1ZSxcbiAgY29udGV4dFR5cGVzOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBnZXREZWZhdWx0UHJvcHM6IHRydWUsXG4gIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOiB0cnVlLFxuICBtaXhpbnM6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBLTk9XTl9TVEFUSUNTID0ge1xuICBuYW1lOiB0cnVlLFxuICBsZW5ndGg6IHRydWUsXG4gIHByb3RvdHlwZTogdHJ1ZSxcbiAgY2FsbGVyOiB0cnVlLFxuICBjYWxsZWU6IHRydWUsXG4gIGFyZ3VtZW50czogdHJ1ZSxcbiAgYXJpdHk6IHRydWVcbn07XG52YXIgRk9SV0FSRF9SRUZfU1RBVElDUyA9IHtcbiAgJyQkdHlwZW9mJzogdHJ1ZSxcbiAgcmVuZGVyOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWVcbn07XG52YXIgTUVNT19TVEFUSUNTID0ge1xuICAnJCR0eXBlb2YnOiB0cnVlLFxuICBjb21wYXJlOiB0cnVlLFxuICBkZWZhdWx0UHJvcHM6IHRydWUsXG4gIGRpc3BsYXlOYW1lOiB0cnVlLFxuICBwcm9wVHlwZXM6IHRydWUsXG4gIHR5cGU6IHRydWVcbn07XG52YXIgVFlQRV9TVEFUSUNTID0ge307XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5Gb3J3YXJkUmVmXSA9IEZPUldBUkRfUkVGX1NUQVRJQ1M7XG5UWVBFX1NUQVRJQ1NbcmVhY3RJcy5NZW1vXSA9IE1FTU9fU1RBVElDUztcblxuZnVuY3Rpb24gZ2V0U3RhdGljcyhjb21wb25lbnQpIHtcbiAgLy8gUmVhY3QgdjE2LjExIGFuZCBiZWxvd1xuICBpZiAocmVhY3RJcy5pc01lbW8oY29tcG9uZW50KSkge1xuICAgIHJldHVybiBNRU1PX1NUQVRJQ1M7XG4gIH0gLy8gUmVhY3QgdjE2LjEyIGFuZCBhYm92ZVxuXG5cbiAgcmV0dXJuIFRZUEVfU1RBVElDU1tjb21wb25lbnRbJyQkdHlwZW9mJ11dIHx8IFJFQUNUX1NUQVRJQ1M7XG59XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIGdldFByb3RvdHlwZU9mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIG9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5mdW5jdGlvbiBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIHNvdXJjZUNvbXBvbmVudCwgYmxhY2tsaXN0KSB7XG4gIGlmICh0eXBlb2Ygc291cmNlQ29tcG9uZW50ICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGRvbid0IGhvaXN0IG92ZXIgc3RyaW5nIChodG1sKSBjb21wb25lbnRzXG4gICAgaWYgKG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgdmFyIGluaGVyaXRlZENvbXBvbmVudCA9IGdldFByb3RvdHlwZU9mKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICAgIGlmIChpbmhlcml0ZWRDb21wb25lbnQgJiYgaW5oZXJpdGVkQ29tcG9uZW50ICE9PSBvYmplY3RQcm90b3R5cGUpIHtcbiAgICAgICAgaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBpbmhlcml0ZWRDb21wb25lbnQsIGJsYWNrbGlzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICBpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gICAgICBrZXlzID0ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZUNvbXBvbmVudCkpO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXRTdGF0aWNzID0gZ2V0U3RhdGljcyh0YXJnZXRDb21wb25lbnQpO1xuICAgIHZhciBzb3VyY2VTdGF0aWNzID0gZ2V0U3RhdGljcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKCFLTk9XTl9TVEFUSUNTW2tleV0gJiYgIShibGFja2xpc3QgJiYgYmxhY2tsaXN0W2tleV0pICYmICEoc291cmNlU3RhdGljcyAmJiBzb3VyY2VTdGF0aWNzW2tleV0pICYmICEodGFyZ2V0U3RhdGljcyAmJiB0YXJnZXRTdGF0aWNzW2tleV0pKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZUNvbXBvbmVudCwga2V5KTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEF2b2lkIGZhaWx1cmVzIGZyb20gcmVhZC1vbmx5IHByb3BlcnRpZXNcbiAgICAgICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXRDb21wb25lbnQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldENvbXBvbmVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBob2lzdE5vblJlYWN0U3RhdGljcztcbiIsImltcG9ydCBob2lzdE5vblJlYWN0U3RhdGljcyQxIGZyb20gJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJztcblxuLy8gdGhpcyBmaWxlIGlzb2xhdGVzIHRoaXMgcGFja2FnZSB0aGF0IGlzIG5vdCB0cmVlLXNoYWtlYWJsZVxuLy8gYW5kIGlmIHRoaXMgbW9kdWxlIGRvZXNuJ3QgYWN0dWFsbHkgY29udGFpbiBhbnkgbG9naWMgb2YgaXRzIG93blxuLy8gdGhlbiBSb2xsdXAganVzdCB1c2UgJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJyBkaXJlY3RseSBpbiBvdGhlciBjaHVua3NcblxudmFyIGhvaXN0Tm9uUmVhY3RTdGF0aWNzID0gKGZ1bmN0aW9uICh0YXJnZXRDb21wb25lbnQsIHNvdXJjZUNvbXBvbmVudCkge1xuICByZXR1cm4gaG9pc3ROb25SZWFjdFN0YXRpY3MkMSh0YXJnZXRDb21wb25lbnQsIHNvdXJjZUNvbXBvbmVudCk7XG59KTtcblxuZXhwb3J0IHsgaG9pc3ROb25SZWFjdFN0YXRpY3MgYXMgZGVmYXVsdCB9O1xuIiwidmFyIGlzQnJvd3NlciA9IHRydWU7XG5cbmZ1bmN0aW9uIGdldFJlZ2lzdGVyZWRTdHlsZXMocmVnaXN0ZXJlZCwgcmVnaXN0ZXJlZFN0eWxlcywgY2xhc3NOYW1lcykge1xuICB2YXIgcmF3Q2xhc3NOYW1lID0gJyc7XG4gIGNsYXNzTmFtZXMuc3BsaXQoJyAnKS5mb3JFYWNoKGZ1bmN0aW9uIChjbGFzc05hbWUpIHtcbiAgICBpZiAocmVnaXN0ZXJlZFtjbGFzc05hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlZ2lzdGVyZWRTdHlsZXMucHVzaChyZWdpc3RlcmVkW2NsYXNzTmFtZV0gKyBcIjtcIik7XG4gICAgfSBlbHNlIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIHJhd0NsYXNzTmFtZSArPSBjbGFzc05hbWUgKyBcIiBcIjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmF3Q2xhc3NOYW1lO1xufVxudmFyIHJlZ2lzdGVyU3R5bGVzID0gZnVuY3Rpb24gcmVnaXN0ZXJTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKSB7XG4gIHZhciBjbGFzc05hbWUgPSBjYWNoZS5rZXkgKyBcIi1cIiArIHNlcmlhbGl6ZWQubmFtZTtcblxuICBpZiAoIC8vIHdlIG9ubHkgbmVlZCB0byBhZGQgdGhlIHN0eWxlcyB0byB0aGUgcmVnaXN0ZXJlZCBjYWNoZSBpZiB0aGVcbiAgLy8gY2xhc3MgbmFtZSBjb3VsZCBiZSB1c2VkIGZ1cnRoZXIgZG93blxuICAvLyB0aGUgdHJlZSBidXQgaWYgaXQncyBhIHN0cmluZyB0YWcsIHdlIGtub3cgaXQgd29uJ3RcbiAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byBhZGQgaXQgdG8gcmVnaXN0ZXJlZCBjYWNoZS5cbiAgLy8gdGhpcyBpbXByb3ZlcyBtZW1vcnkgdXNhZ2Ugc2luY2Ugd2UgY2FuIGF2b2lkIHN0b3JpbmcgdGhlIHdob2xlIHN0eWxlIHN0cmluZ1xuICAoaXNTdHJpbmdUYWcgPT09IGZhbHNlIHx8IC8vIHdlIG5lZWQgdG8gYWx3YXlzIHN0b3JlIGl0IGlmIHdlJ3JlIGluIGNvbXBhdCBtb2RlIGFuZFxuICAvLyBpbiBub2RlIHNpbmNlIGVtb3Rpb24tc2VydmVyIHJlbGllcyBvbiB3aGV0aGVyIGEgc3R5bGUgaXMgaW5cbiAgLy8gdGhlIHJlZ2lzdGVyZWQgY2FjaGUgdG8ga25vdyB3aGV0aGVyIGEgc3R5bGUgaXMgZ2xvYmFsIG9yIG5vdFxuICAvLyBhbHNvLCBub3RlIHRoYXQgdGhpcyBjaGVjayB3aWxsIGJlIGRlYWQgY29kZSBlbGltaW5hdGVkIGluIHRoZSBicm93c2VyXG4gIGlzQnJvd3NlciA9PT0gZmFsc2UgKSAmJiBjYWNoZS5yZWdpc3RlcmVkW2NsYXNzTmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgIGNhY2hlLnJlZ2lzdGVyZWRbY2xhc3NOYW1lXSA9IHNlcmlhbGl6ZWQuc3R5bGVzO1xuICB9XG59O1xudmFyIGluc2VydFN0eWxlcyA9IGZ1bmN0aW9uIGluc2VydFN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpIHtcbiAgcmVnaXN0ZXJTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKTtcbiAgdmFyIGNsYXNzTmFtZSA9IGNhY2hlLmtleSArIFwiLVwiICsgc2VyaWFsaXplZC5uYW1lO1xuXG4gIGlmIChjYWNoZS5pbnNlcnRlZFtzZXJpYWxpemVkLm5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgY3VycmVudCA9IHNlcmlhbGl6ZWQ7XG5cbiAgICBkbyB7XG4gICAgICBjYWNoZS5pbnNlcnQoc2VyaWFsaXplZCA9PT0gY3VycmVudCA/IFwiLlwiICsgY2xhc3NOYW1lIDogJycsIGN1cnJlbnQsIGNhY2hlLnNoZWV0LCB0cnVlKTtcblxuICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgICB9IHdoaWxlIChjdXJyZW50ICE9PSB1bmRlZmluZWQpO1xuICB9XG59O1xuXG5leHBvcnQgeyBnZXRSZWdpc3RlcmVkU3R5bGVzLCBpbnNlcnRTdHlsZXMsIHJlZ2lzdGVyU3R5bGVzIH07XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2dhcnljb3VydC9tdXJtdXJoYXNoLWpzXG4vLyBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYWFwcGxlYnkvc21oYXNoZXIvYmxvYi82MWEwNTMwZjI4Mjc3ZjJlODUwYmZjMzk2MDBjZTYxZDAyYjUxOGRlL3NyYy9NdXJtdXJIYXNoMi5jcHAjTDM3LUw4NlxuZnVuY3Rpb24gbXVybXVyMihzdHIpIHtcbiAgLy8gJ20nIGFuZCAncicgYXJlIG1peGluZyBjb25zdGFudHMgZ2VuZXJhdGVkIG9mZmxpbmUuXG4gIC8vIFRoZXkncmUgbm90IHJlYWxseSAnbWFnaWMnLCB0aGV5IGp1c3QgaGFwcGVuIHRvIHdvcmsgd2VsbC5cbiAgLy8gY29uc3QgbSA9IDB4NWJkMWU5OTU7XG4gIC8vIGNvbnN0IHIgPSAyNDtcbiAgLy8gSW5pdGlhbGl6ZSB0aGUgaGFzaFxuICB2YXIgaCA9IDA7IC8vIE1peCA0IGJ5dGVzIGF0IGEgdGltZSBpbnRvIHRoZSBoYXNoXG5cbiAgdmFyIGssXG4gICAgICBpID0gMCxcbiAgICAgIGxlbiA9IHN0ci5sZW5ndGg7XG5cbiAgZm9yICg7IGxlbiA+PSA0OyArK2ksIGxlbiAtPSA0KSB7XG4gICAgayA9IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZiB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgOCB8IChzdHIuY2hhckNvZGVBdCgrK2kpICYgMHhmZikgPDwgMTYgfCAoc3RyLmNoYXJDb2RlQXQoKytpKSAmIDB4ZmYpIDw8IDI0O1xuICAgIGsgPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpO1xuICAgIGsgXj1cbiAgICAvKiBrID4+PiByOiAqL1xuICAgIGsgPj4+IDI0O1xuICAgIGggPVxuICAgIC8qIE1hdGguaW11bChrLCBtKTogKi9cbiAgICAoayAmIDB4ZmZmZikgKiAweDViZDFlOTk1ICsgKChrID4+PiAxNikgKiAweGU5OTUgPDwgMTYpIF5cbiAgICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBIYW5kbGUgdGhlIGxhc3QgZmV3IGJ5dGVzIG9mIHRoZSBpbnB1dCBhcnJheVxuXG5cbiAgc3dpdGNoIChsZW4pIHtcbiAgICBjYXNlIDM6XG4gICAgICBoIF49IChzdHIuY2hhckNvZGVBdChpICsgMikgJiAweGZmKSA8PCAxNjtcblxuICAgIGNhc2UgMjpcbiAgICAgIGggXj0gKHN0ci5jaGFyQ29kZUF0KGkgKyAxKSAmIDB4ZmYpIDw8IDg7XG5cbiAgICBjYXNlIDE6XG4gICAgICBoIF49IHN0ci5jaGFyQ29kZUF0KGkpICYgMHhmZjtcbiAgICAgIGggPVxuICAgICAgLyogTWF0aC5pbXVsKGgsIG0pOiAqL1xuICAgICAgKGggJiAweGZmZmYpICogMHg1YmQxZTk5NSArICgoaCA+Pj4gMTYpICogMHhlOTk1IDw8IDE2KTtcbiAgfSAvLyBEbyBhIGZldyBmaW5hbCBtaXhlcyBvZiB0aGUgaGFzaCB0byBlbnN1cmUgdGhlIGxhc3QgZmV3XG4gIC8vIGJ5dGVzIGFyZSB3ZWxsLWluY29ycG9yYXRlZC5cblxuXG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPVxuICAvKiBNYXRoLmltdWwoaCwgbSk6ICovXG4gIChoICYgMHhmZmZmKSAqIDB4NWJkMWU5OTUgKyAoKGggPj4+IDE2KSAqIDB4ZTk5NSA8PCAxNik7XG4gIHJldHVybiAoKGggXiBoID4+PiAxNSkgPj4+IDApLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IHsgbXVybXVyMiBhcyBkZWZhdWx0IH07XG4iLCJ2YXIgdW5pdGxlc3NLZXlzID0ge1xuICBhbmltYXRpb25JdGVyYXRpb25Db3VudDogMSxcbiAgYXNwZWN0UmF0aW86IDEsXG4gIGJvcmRlckltYWdlT3V0c2V0OiAxLFxuICBib3JkZXJJbWFnZVNsaWNlOiAxLFxuICBib3JkZXJJbWFnZVdpZHRoOiAxLFxuICBib3hGbGV4OiAxLFxuICBib3hGbGV4R3JvdXA6IDEsXG4gIGJveE9yZGluYWxHcm91cDogMSxcbiAgY29sdW1uQ291bnQ6IDEsXG4gIGNvbHVtbnM6IDEsXG4gIGZsZXg6IDEsXG4gIGZsZXhHcm93OiAxLFxuICBmbGV4UG9zaXRpdmU6IDEsXG4gIGZsZXhTaHJpbms6IDEsXG4gIGZsZXhOZWdhdGl2ZTogMSxcbiAgZmxleE9yZGVyOiAxLFxuICBncmlkUm93OiAxLFxuICBncmlkUm93RW5kOiAxLFxuICBncmlkUm93U3BhbjogMSxcbiAgZ3JpZFJvd1N0YXJ0OiAxLFxuICBncmlkQ29sdW1uOiAxLFxuICBncmlkQ29sdW1uRW5kOiAxLFxuICBncmlkQ29sdW1uU3BhbjogMSxcbiAgZ3JpZENvbHVtblN0YXJ0OiAxLFxuICBtc0dyaWRSb3c6IDEsXG4gIG1zR3JpZFJvd1NwYW46IDEsXG4gIG1zR3JpZENvbHVtbjogMSxcbiAgbXNHcmlkQ29sdW1uU3BhbjogMSxcbiAgZm9udFdlaWdodDogMSxcbiAgbGluZUhlaWdodDogMSxcbiAgb3BhY2l0eTogMSxcbiAgb3JkZXI6IDEsXG4gIG9ycGhhbnM6IDEsXG4gIHNjYWxlOiAxLFxuICB0YWJTaXplOiAxLFxuICB3aWRvd3M6IDEsXG4gIHpJbmRleDogMSxcbiAgem9vbTogMSxcbiAgV2Via2l0TGluZUNsYW1wOiAxLFxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiAxLFxuICBmbG9vZE9wYWNpdHk6IDEsXG4gIHN0b3BPcGFjaXR5OiAxLFxuICBzdHJva2VEYXNoYXJyYXk6IDEsXG4gIHN0cm9rZURhc2hvZmZzZXQ6IDEsXG4gIHN0cm9rZU1pdGVybGltaXQ6IDEsXG4gIHN0cm9rZU9wYWNpdHk6IDEsXG4gIHN0cm9rZVdpZHRoOiAxXG59O1xuXG5leHBvcnQgeyB1bml0bGVzc0tleXMgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IGhhc2hTdHJpbmcgZnJvbSAnQGVtb3Rpb24vaGFzaCc7XG5pbXBvcnQgdW5pdGxlc3MgZnJvbSAnQGVtb3Rpb24vdW5pdGxlc3MnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnQGVtb3Rpb24vbWVtb2l6ZSc7XG5cbnZhciBpc0RldmVsb3BtZW50ID0gZmFsc2U7XG5cbnZhciBoeXBoZW5hdGVSZWdleCA9IC9bQS1aXXxebXMvZztcbnZhciBhbmltYXRpb25SZWdleCA9IC9fRU1PXyhbXl9dKz8pXyhbXl0qPylfRU1PXy9nO1xuXG52YXIgaXNDdXN0b21Qcm9wZXJ0eSA9IGZ1bmN0aW9uIGlzQ3VzdG9tUHJvcGVydHkocHJvcGVydHkpIHtcbiAgcmV0dXJuIHByb3BlcnR5LmNoYXJDb2RlQXQoMSkgPT09IDQ1O1xufTtcblxudmFyIGlzUHJvY2Vzc2FibGVWYWx1ZSA9IGZ1bmN0aW9uIGlzUHJvY2Vzc2FibGVWYWx1ZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJztcbn07XG5cbnZhciBwcm9jZXNzU3R5bGVOYW1lID0gLyogI19fUFVSRV9fICovbWVtb2l6ZShmdW5jdGlvbiAoc3R5bGVOYW1lKSB7XG4gIHJldHVybiBpc0N1c3RvbVByb3BlcnR5KHN0eWxlTmFtZSkgPyBzdHlsZU5hbWUgOiBzdHlsZU5hbWUucmVwbGFjZShoeXBoZW5hdGVSZWdleCwgJy0kJicpLnRvTG93ZXJDYXNlKCk7XG59KTtcblxudmFyIHByb2Nlc3NTdHlsZVZhbHVlID0gZnVuY3Rpb24gcHJvY2Vzc1N0eWxlVmFsdWUoa2V5LCB2YWx1ZSkge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgJ2FuaW1hdGlvbic6XG4gICAgY2FzZSAnYW5pbWF0aW9uTmFtZSc6XG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoYW5pbWF0aW9uUmVnZXgsIGZ1bmN0aW9uIChtYXRjaCwgcDEsIHAyKSB7XG4gICAgICAgICAgICBjdXJzb3IgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHAxLFxuICAgICAgICAgICAgICBzdHlsZXM6IHAyLFxuICAgICAgICAgICAgICBuZXh0OiBjdXJzb3JcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcDE7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgfVxuXG4gIGlmICh1bml0bGVzc1trZXldICE9PSAxICYmICFpc0N1c3RvbVByb3BlcnR5KGtleSkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuXG52YXIgbm9Db21wb25lbnRTZWxlY3Rvck1lc3NhZ2UgPSAnQ29tcG9uZW50IHNlbGVjdG9ycyBjYW4gb25seSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggJyArICdAZW1vdGlvbi9iYWJlbC1wbHVnaW4sIHRoZSBzd2MgRW1vdGlvbiBwbHVnaW4sIG9yIGFub3RoZXIgRW1vdGlvbi1hd2FyZSAnICsgJ2NvbXBpbGVyIHRyYW5zZm9ybS4nO1xuXG5mdW5jdGlvbiBoYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLCByZWdpc3RlcmVkLCBpbnRlcnBvbGF0aW9uKSB7XG4gIGlmIChpbnRlcnBvbGF0aW9uID09IG51bGwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB2YXIgY29tcG9uZW50U2VsZWN0b3IgPSBpbnRlcnBvbGF0aW9uO1xuXG4gIGlmIChjb21wb25lbnRTZWxlY3Rvci5fX2Vtb3Rpb25fc3R5bGVzICE9PSB1bmRlZmluZWQpIHtcblxuICAgIHJldHVybiBjb21wb25lbnRTZWxlY3RvcjtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIGludGVycG9sYXRpb24pIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIHtcbiAgICAgICAgdmFyIGtleWZyYW1lcyA9IGludGVycG9sYXRpb247XG5cbiAgICAgICAgaWYgKGtleWZyYW1lcy5hbmltID09PSAxKSB7XG4gICAgICAgICAgY3Vyc29yID0ge1xuICAgICAgICAgICAgbmFtZToga2V5ZnJhbWVzLm5hbWUsXG4gICAgICAgICAgICBzdHlsZXM6IGtleWZyYW1lcy5zdHlsZXMsXG4gICAgICAgICAgICBuZXh0OiBjdXJzb3JcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBrZXlmcmFtZXMubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZXJpYWxpemVkU3R5bGVzID0gaW50ZXJwb2xhdGlvbjtcblxuICAgICAgICBpZiAoc2VyaWFsaXplZFN0eWxlcy5zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHZhciBuZXh0ID0gc2VyaWFsaXplZFN0eWxlcy5uZXh0O1xuXG4gICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gbm90IHRoZSBtb3N0IGVmZmljaWVudCB0aGluZyBldmVyIGJ1dCB0aGlzIGlzIGEgcHJldHR5IHJhcmUgY2FzZVxuICAgICAgICAgICAgLy8gYW5kIHRoZXJlIHdpbGwgYmUgdmVyeSBmZXcgaXRlcmF0aW9ucyBvZiB0aGlzIGdlbmVyYWxseVxuICAgICAgICAgICAgd2hpbGUgKG5leHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBjdXJzb3IgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogbmV4dC5uYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlczogbmV4dC5zdHlsZXMsXG4gICAgICAgICAgICAgICAgbmV4dDogY3Vyc29yXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIG5leHQgPSBuZXh0Lm5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHN0eWxlcyA9IHNlcmlhbGl6ZWRTdHlsZXMuc3R5bGVzICsgXCI7XCI7XG4gICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjcmVhdGVTdHJpbmdGcm9tT2JqZWN0KG1lcmdlZFByb3BzLCByZWdpc3RlcmVkLCBpbnRlcnBvbGF0aW9uKTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIHtcbiAgICAgICAgaWYgKG1lcmdlZFByb3BzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2YXIgcHJldmlvdXNDdXJzb3IgPSBjdXJzb3I7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGludGVycG9sYXRpb24obWVyZ2VkUHJvcHMpO1xuICAgICAgICAgIGN1cnNvciA9IHByZXZpb3VzQ3Vyc29yO1xuICAgICAgICAgIHJldHVybiBoYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLCByZWdpc3RlcmVkLCByZXN1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH0gLy8gZmluYWxpemUgc3RyaW5nIHZhbHVlcyAocmVndWxhciBzdHJpbmdzIGFuZCBmdW5jdGlvbnMgaW50ZXJwb2xhdGVkIGludG8gY3NzIGNhbGxzKVxuXG5cbiAgdmFyIGFzU3RyaW5nID0gaW50ZXJwb2xhdGlvbjtcblxuICBpZiAocmVnaXN0ZXJlZCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGFzU3RyaW5nO1xuICB9XG5cbiAgdmFyIGNhY2hlZCA9IHJlZ2lzdGVyZWRbYXNTdHJpbmddO1xuICByZXR1cm4gY2FjaGVkICE9PSB1bmRlZmluZWQgPyBjYWNoZWQgOiBhc1N0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3RyaW5nRnJvbU9iamVjdChtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgb2JqKSB7XG4gIHZhciBzdHJpbmcgPSAnJztcblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgIHN0cmluZyArPSBoYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLCByZWdpc3RlcmVkLCBvYmpbaV0pICsgXCI7XCI7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgIHZhciB2YWx1ZSA9IG9ialtrZXldO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICB2YXIgYXNTdHJpbmcgPSB2YWx1ZTtcblxuICAgICAgICBpZiAocmVnaXN0ZXJlZCAhPSBudWxsICYmIHJlZ2lzdGVyZWRbYXNTdHJpbmddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzdHJpbmcgKz0ga2V5ICsgXCJ7XCIgKyByZWdpc3RlcmVkW2FzU3RyaW5nXSArIFwifVwiO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUHJvY2Vzc2FibGVWYWx1ZShhc1N0cmluZykpIHtcbiAgICAgICAgICBzdHJpbmcgKz0gcHJvY2Vzc1N0eWxlTmFtZShrZXkpICsgXCI6XCIgKyBwcm9jZXNzU3R5bGVWYWx1ZShrZXksIGFzU3RyaW5nKSArIFwiO1wiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoa2V5ID09PSAnTk9fQ09NUE9ORU5UX1NFTEVDVE9SJyAmJiBpc0RldmVsb3BtZW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG5vQ29tcG9uZW50U2VsZWN0b3JNZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB0eXBlb2YgdmFsdWVbMF0gPT09ICdzdHJpbmcnICYmIChyZWdpc3RlcmVkID09IG51bGwgfHwgcmVnaXN0ZXJlZFt2YWx1ZVswXV0gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgdmFsdWUubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBpZiAoaXNQcm9jZXNzYWJsZVZhbHVlKHZhbHVlW19pXSkpIHtcbiAgICAgICAgICAgICAgc3RyaW5nICs9IHByb2Nlc3NTdHlsZU5hbWUoa2V5KSArIFwiOlwiICsgcHJvY2Vzc1N0eWxlVmFsdWUoa2V5LCB2YWx1ZVtfaV0pICsgXCI7XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBpbnRlcnBvbGF0ZWQgPSBoYW5kbGVJbnRlcnBvbGF0aW9uKG1lcmdlZFByb3BzLCByZWdpc3RlcmVkLCB2YWx1ZSk7XG5cbiAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnYW5pbWF0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ2FuaW1hdGlvbk5hbWUnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3RyaW5nICs9IHByb2Nlc3NTdHlsZU5hbWUoa2V5KSArIFwiOlwiICsgaW50ZXJwb2xhdGVkICsgXCI7XCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgc3RyaW5nICs9IGtleSArIFwie1wiICsgaW50ZXJwb2xhdGVkICsgXCJ9XCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG52YXIgbGFiZWxQYXR0ZXJuID0gL2xhYmVsOlxccyooW15cXHM7e10rKVxccyooO3wkKS9nOyAvLyB0aGlzIGlzIHRoZSBjdXJzb3IgZm9yIGtleWZyYW1lc1xuLy8ga2V5ZnJhbWVzIGFyZSBzdG9yZWQgb24gdGhlIFNlcmlhbGl6ZWRTdHlsZXMgb2JqZWN0IGFzIGEgbGlua2VkIGxpc3RcblxudmFyIGN1cnNvcjtcbmZ1bmN0aW9uIHNlcmlhbGl6ZVN0eWxlcyhhcmdzLCByZWdpc3RlcmVkLCBtZXJnZWRQcm9wcykge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICdvYmplY3QnICYmIGFyZ3NbMF0gIT09IG51bGwgJiYgYXJnc1swXS5zdHlsZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBhcmdzWzBdO1xuICB9XG5cbiAgdmFyIHN0cmluZ01vZGUgPSB0cnVlO1xuICB2YXIgc3R5bGVzID0gJyc7XG4gIGN1cnNvciA9IHVuZGVmaW5lZDtcbiAgdmFyIHN0cmluZ3MgPSBhcmdzWzBdO1xuXG4gIGlmIChzdHJpbmdzID09IG51bGwgfHwgc3RyaW5ncy5yYXcgPT09IHVuZGVmaW5lZCkge1xuICAgIHN0cmluZ01vZGUgPSBmYWxzZTtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgc3RyaW5ncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGFzVGVtcGxhdGVTdHJpbmdzQXJyID0gc3RyaW5ncztcblxuICAgIHN0eWxlcyArPSBhc1RlbXBsYXRlU3RyaW5nc0FyclswXTtcbiAgfSAvLyB3ZSBzdGFydCBhdCAxIHNpbmNlIHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCB0aGUgZmlyc3QgYXJnXG5cblxuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBzdHlsZXMgKz0gaGFuZGxlSW50ZXJwb2xhdGlvbihtZXJnZWRQcm9wcywgcmVnaXN0ZXJlZCwgYXJnc1tpXSk7XG5cbiAgICBpZiAoc3RyaW5nTW9kZSkge1xuICAgICAgdmFyIHRlbXBsYXRlU3RyaW5nc0FyciA9IHN0cmluZ3M7XG5cbiAgICAgIHN0eWxlcyArPSB0ZW1wbGF0ZVN0cmluZ3NBcnJbaV07XG4gICAgfVxuICB9IC8vIHVzaW5nIGEgZ2xvYmFsIHJlZ2V4IHdpdGggLmV4ZWMgaXMgc3RhdGVmdWwgc28gbGFzdEluZGV4IGhhcyB0byBiZSByZXNldCBlYWNoIHRpbWVcblxuXG4gIGxhYmVsUGF0dGVybi5sYXN0SW5kZXggPSAwO1xuICB2YXIgaWRlbnRpZmllck5hbWUgPSAnJztcbiAgdmFyIG1hdGNoOyAvLyBodHRwczovL2VzYmVuY2guY29tL2JlbmNoLzViODA5YzJjZjI5NDk4MDBhMGY2MWZiNVxuXG4gIHdoaWxlICgobWF0Y2ggPSBsYWJlbFBhdHRlcm4uZXhlYyhzdHlsZXMpKSAhPT0gbnVsbCkge1xuICAgIGlkZW50aWZpZXJOYW1lICs9ICctJyArIG1hdGNoWzFdO1xuICB9XG5cbiAgdmFyIG5hbWUgPSBoYXNoU3RyaW5nKHN0eWxlcykgKyBpZGVudGlmaWVyTmFtZTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IG5hbWUsXG4gICAgc3R5bGVzOiBzdHlsZXMsXG4gICAgbmV4dDogY3Vyc29yXG4gIH07XG59XG5cbmV4cG9ydCB7IHNlcmlhbGl6ZVN0eWxlcyB9O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG52YXIgc3luY0ZhbGxiYWNrID0gZnVuY3Rpb24gc3luY0ZhbGxiYWNrKGNyZWF0ZSkge1xuICByZXR1cm4gY3JlYXRlKCk7XG59O1xuXG52YXIgdXNlSW5zZXJ0aW9uRWZmZWN0ID0gUmVhY3RbJ3VzZUluc2VydGlvbicgKyAnRWZmZWN0J10gPyBSZWFjdFsndXNlSW5zZXJ0aW9uJyArICdFZmZlY3QnXSA6IGZhbHNlO1xudmFyIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2sgPSB1c2VJbnNlcnRpb25FZmZlY3QgfHwgc3luY0ZhbGxiYWNrO1xudmFyIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayA9IHVzZUluc2VydGlvbkVmZmVjdCB8fCBSZWFjdC51c2VMYXlvdXRFZmZlY3Q7XG5cbmV4cG9ydCB7IHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2ssIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayB9O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjcmVhdGVDYWNoZSBmcm9tICdAZW1vdGlvbi9jYWNoZSc7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcyc7XG5pbXBvcnQgd2Vha01lbW9pemUgZnJvbSAnQGVtb3Rpb24vd2Vhay1tZW1vaXplJztcbmltcG9ydCBob2lzdE5vblJlYWN0U3RhdGljcyBmcm9tICcuLi9faXNvbGF0ZWQtaG5ycy9kaXN0L2Vtb3Rpb24tcmVhY3QtX2lzb2xhdGVkLWhucnMuYnJvd3Nlci5lc20uanMnO1xuaW1wb3J0IHsgZ2V0UmVnaXN0ZXJlZFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGluc2VydFN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3V0aWxzJztcbmltcG9ydCB7IHNlcmlhbGl6ZVN0eWxlcyB9IGZyb20gJ0BlbW90aW9uL3NlcmlhbGl6ZSc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RBbHdheXNXaXRoU3luY0ZhbGxiYWNrIH0gZnJvbSAnQGVtb3Rpb24vdXNlLWluc2VydGlvbi1lZmZlY3Qtd2l0aC1mYWxsYmFja3MnO1xuXG52YXIgaXNEZXZlbG9wbWVudCA9IGZhbHNlO1xuXG52YXIgRW1vdGlvbkNhY2hlQ29udGV4dCA9IC8qICNfX1BVUkVfXyAqL1JlYWN0LmNyZWF0ZUNvbnRleHQoIC8vIHdlJ3JlIGRvaW5nIHRoaXMgdG8gYXZvaWQgcHJlY29uc3RydWN0J3MgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIGluIHRoaXMgb25lIGNhc2Vcbi8vIGJlY2F1c2UgdGhpcyBtb2R1bGUgaXMgcHJpbWFyaWx5IGludGVuZGVkIGZvciB0aGUgYnJvd3NlciBhbmQgbm9kZVxuLy8gYnV0IGl0J3MgYWxzbyByZXF1aXJlZCBpbiByZWFjdCBuYXRpdmUgYW5kIHNpbWlsYXIgZW52aXJvbm1lbnRzIHNvbWV0aW1lc1xuLy8gYW5kIHdlIGNvdWxkIGhhdmUgYSBzcGVjaWFsIGJ1aWxkIGp1c3QgZm9yIHRoYXRcbi8vIGJ1dCB0aGlzIGlzIG11Y2ggZWFzaWVyIGFuZCB0aGUgbmF0aXZlIHBhY2thZ2VzXG4vLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgdGhlbWUgY29udGV4dCBpbiB0aGUgZnV0dXJlIGFueXdheVxudHlwZW9mIEhUTUxFbGVtZW50ICE9PSAndW5kZWZpbmVkJyA/IC8qICNfX1BVUkVfXyAqL2NyZWF0ZUNhY2hlKHtcbiAga2V5OiAnY3NzJ1xufSkgOiBudWxsKTtcblxudmFyIENhY2hlUHJvdmlkZXIgPSBFbW90aW9uQ2FjaGVDb250ZXh0LlByb3ZpZGVyO1xudmFyIF9fdW5zYWZlX3VzZUVtb3Rpb25DYWNoZSA9IGZ1bmN0aW9uIHVzZUVtb3Rpb25DYWNoZSgpIHtcbiAgcmV0dXJuIHVzZUNvbnRleHQoRW1vdGlvbkNhY2hlQ29udGV4dCk7XG59O1xuXG52YXIgd2l0aEVtb3Rpb25DYWNoZSA9IGZ1bmN0aW9uIHdpdGhFbW90aW9uQ2FjaGUoZnVuYykge1xuICByZXR1cm4gLyojX19QVVJFX18qL2ZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICAvLyB0aGUgY2FjaGUgd2lsbCBuZXZlciBiZSBudWxsIGluIHRoZSBicm93c2VyXG4gICAgdmFyIGNhY2hlID0gdXNlQ29udGV4dChFbW90aW9uQ2FjaGVDb250ZXh0KTtcbiAgICByZXR1cm4gZnVuYyhwcm9wcywgY2FjaGUsIHJlZik7XG4gIH0pO1xufTtcblxudmFyIFRoZW1lQ29udGV4dCA9IC8qICNfX1BVUkVfXyAqL1JlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuXG52YXIgdXNlVGhlbWUgPSBmdW5jdGlvbiB1c2VUaGVtZSgpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbn07XG5cbnZhciBnZXRUaGVtZSA9IGZ1bmN0aW9uIGdldFRoZW1lKG91dGVyVGhlbWUsIHRoZW1lKSB7XG4gIGlmICh0eXBlb2YgdGhlbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgbWVyZ2VkVGhlbWUgPSB0aGVtZShvdXRlclRoZW1lKTtcblxuICAgIHJldHVybiBtZXJnZWRUaGVtZTtcbiAgfVxuXG4gIHJldHVybiBfZXh0ZW5kcyh7fSwgb3V0ZXJUaGVtZSwgdGhlbWUpO1xufTtcblxudmFyIGNyZWF0ZUNhY2hlV2l0aFRoZW1lID0gLyogI19fUFVSRV9fICovd2Vha01lbW9pemUoZnVuY3Rpb24gKG91dGVyVGhlbWUpIHtcbiAgcmV0dXJuIHdlYWtNZW1vaXplKGZ1bmN0aW9uICh0aGVtZSkge1xuICAgIHJldHVybiBnZXRUaGVtZShvdXRlclRoZW1lLCB0aGVtZSk7XG4gIH0pO1xufSk7XG52YXIgVGhlbWVQcm92aWRlciA9IGZ1bmN0aW9uIFRoZW1lUHJvdmlkZXIocHJvcHMpIHtcbiAgdmFyIHRoZW1lID0gUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpO1xuXG4gIGlmIChwcm9wcy50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICB0aGVtZSA9IGNyZWF0ZUNhY2hlV2l0aFRoZW1lKHRoZW1lKShwcm9wcy50aGVtZSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVGhlbWVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHRoZW1lXG4gIH0sIHByb3BzLmNoaWxkcmVuKTtcbn07XG5mdW5jdGlvbiB3aXRoVGhlbWUoQ29tcG9uZW50KSB7XG4gIHZhciBjb21wb25lbnROYW1lID0gQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnO1xuICB2YXIgV2l0aFRoZW1lID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gcmVuZGVyKHByb3BzLCByZWYpIHtcbiAgICB2YXIgdGhlbWUgPSBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe1xuICAgICAgdGhlbWU6IHRoZW1lLFxuICAgICAgcmVmOiByZWZcbiAgICB9LCBwcm9wcykpO1xuICB9KTtcbiAgV2l0aFRoZW1lLmRpc3BsYXlOYW1lID0gXCJXaXRoVGhlbWUoXCIgKyBjb21wb25lbnROYW1lICsgXCIpXCI7XG4gIHJldHVybiBob2lzdE5vblJlYWN0U3RhdGljcyhXaXRoVGhlbWUsIENvbXBvbmVudCk7XG59XG5cbnZhciBoYXNPd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIHR5cGVQcm9wTmFtZSA9ICdfX0VNT1RJT05fVFlQRV9QTEVBU0VfRE9fTk9UX1VTRV9fJztcbnZhciBjcmVhdGVFbW90aW9uUHJvcHMgPSBmdW5jdGlvbiBjcmVhdGVFbW90aW9uUHJvcHModHlwZSwgcHJvcHMpIHtcblxuICB2YXIgbmV3UHJvcHMgPSB7fTtcblxuICBmb3IgKHZhciBfa2V5IGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093bi5jYWxsKHByb3BzLCBfa2V5KSkge1xuICAgICAgbmV3UHJvcHNbX2tleV0gPSBwcm9wc1tfa2V5XTtcbiAgICB9XG4gIH1cblxuICBuZXdQcm9wc1t0eXBlUHJvcE5hbWVdID0gdHlwZTsgLy8gUnVudGltZSBsYWJlbGluZyBpcyBhbiBvcHQtaW4gZmVhdHVyZSBiZWNhdXNlOlxuXG4gIHJldHVybiBuZXdQcm9wcztcbn07XG5cbnZhciBJbnNlcnRpb24gPSBmdW5jdGlvbiBJbnNlcnRpb24oX3JlZikge1xuICB2YXIgY2FjaGUgPSBfcmVmLmNhY2hlLFxuICAgICAgc2VyaWFsaXplZCA9IF9yZWYuc2VyaWFsaXplZCxcbiAgICAgIGlzU3RyaW5nVGFnID0gX3JlZi5pc1N0cmluZ1RhZztcbiAgcmVnaXN0ZXJTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGlzU3RyaW5nVGFnKTtcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGluc2VydFN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZCwgaXNTdHJpbmdUYWcpO1xuICB9KTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbnZhciBFbW90aW9uID0gLyogI19fUFVSRV9fICovd2l0aEVtb3Rpb25DYWNoZShmdW5jdGlvbiAocHJvcHMsIGNhY2hlLCByZWYpIHtcbiAgdmFyIGNzc1Byb3AgPSBwcm9wcy5jc3M7IC8vIHNvIHRoYXQgdXNpbmcgYGNzc2AgZnJvbSBgZW1vdGlvbmAgYW5kIHBhc3NpbmcgdGhlIHJlc3VsdCB0byB0aGUgY3NzIHByb3Agd29ya3NcbiAgLy8gbm90IHBhc3NpbmcgdGhlIHJlZ2lzdGVyZWQgY2FjaGUgdG8gc2VyaWFsaXplU3R5bGVzIGJlY2F1c2UgaXQgd291bGRcbiAgLy8gbWFrZSBjZXJ0YWluIGJhYmVsIG9wdGltaXNhdGlvbnMgbm90IHBvc3NpYmxlXG5cbiAgaWYgKHR5cGVvZiBjc3NQcm9wID09PSAnc3RyaW5nJyAmJiBjYWNoZS5yZWdpc3RlcmVkW2Nzc1Byb3BdICE9PSB1bmRlZmluZWQpIHtcbiAgICBjc3NQcm9wID0gY2FjaGUucmVnaXN0ZXJlZFtjc3NQcm9wXTtcbiAgfVxuXG4gIHZhciBXcmFwcGVkQ29tcG9uZW50ID0gcHJvcHNbdHlwZVByb3BOYW1lXTtcbiAgdmFyIHJlZ2lzdGVyZWRTdHlsZXMgPSBbY3NzUHJvcF07XG4gIHZhciBjbGFzc05hbWUgPSAnJztcblxuICBpZiAodHlwZW9mIHByb3BzLmNsYXNzTmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjbGFzc05hbWUgPSBnZXRSZWdpc3RlcmVkU3R5bGVzKGNhY2hlLnJlZ2lzdGVyZWQsIHJlZ2lzdGVyZWRTdHlsZXMsIHByb3BzLmNsYXNzTmFtZSk7XG4gIH0gZWxzZSBpZiAocHJvcHMuY2xhc3NOYW1lICE9IG51bGwpIHtcbiAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUgKyBcIiBcIjtcbiAgfVxuXG4gIHZhciBzZXJpYWxpemVkID0gc2VyaWFsaXplU3R5bGVzKHJlZ2lzdGVyZWRTdHlsZXMsIHVuZGVmaW5lZCwgUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpKTtcblxuICBjbGFzc05hbWUgKz0gY2FjaGUua2V5ICsgXCItXCIgKyBzZXJpYWxpemVkLm5hbWU7XG4gIHZhciBuZXdQcm9wcyA9IHt9O1xuXG4gIGZvciAodmFyIF9rZXkyIGluIHByb3BzKSB7XG4gICAgaWYgKGhhc093bi5jYWxsKHByb3BzLCBfa2V5MikgJiYgX2tleTIgIT09ICdjc3MnICYmIF9rZXkyICE9PSB0eXBlUHJvcE5hbWUgJiYgKCFpc0RldmVsb3BtZW50ICkpIHtcbiAgICAgIG5ld1Byb3BzW19rZXkyXSA9IHByb3BzW19rZXkyXTtcbiAgICB9XG4gIH1cblxuICBuZXdQcm9wcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG5cbiAgaWYgKHJlZikge1xuICAgIG5ld1Byb3BzLnJlZiA9IHJlZjtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSW5zZXJ0aW9uLCB7XG4gICAgY2FjaGU6IGNhY2hlLFxuICAgIHNlcmlhbGl6ZWQ6IHNlcmlhbGl6ZWQsXG4gICAgaXNTdHJpbmdUYWc6IHR5cGVvZiBXcmFwcGVkQ29tcG9uZW50ID09PSAnc3RyaW5nJ1xuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoV3JhcHBlZENvbXBvbmVudCwgbmV3UHJvcHMpKTtcbn0pO1xuXG52YXIgRW1vdGlvbiQxID0gRW1vdGlvbjtcblxuZXhwb3J0IHsgQ2FjaGVQcm92aWRlciBhcyBDLCBFbW90aW9uJDEgYXMgRSwgVGhlbWVDb250ZXh0IGFzIFQsIF9fdW5zYWZlX3VzZUVtb3Rpb25DYWNoZSBhcyBfLCBUaGVtZVByb3ZpZGVyIGFzIGEsIHdpdGhUaGVtZSBhcyBiLCBjcmVhdGVFbW90aW9uUHJvcHMgYXMgYywgaGFzT3duIGFzIGgsIGlzRGV2ZWxvcG1lbnQgYXMgaSwgdXNlVGhlbWUgYXMgdSwgd2l0aEVtb3Rpb25DYWNoZSBhcyB3IH07XG4iLCJpbXBvcnQgeyBoIGFzIGhhc093biwgRSBhcyBFbW90aW9uLCBjIGFzIGNyZWF0ZUVtb3Rpb25Qcm9wcywgdyBhcyB3aXRoRW1vdGlvbkNhY2hlLCBUIGFzIFRoZW1lQ29udGV4dCwgaSBhcyBpc0RldmVsb3BtZW50IH0gZnJvbSAnLi9lbW90aW9uLWVsZW1lbnQtZjBkZTk2OGUuYnJvd3Nlci5lc20uanMnO1xuZXhwb3J0IHsgQyBhcyBDYWNoZVByb3ZpZGVyLCBUIGFzIFRoZW1lQ29udGV4dCwgYSBhcyBUaGVtZVByb3ZpZGVyLCBfIGFzIF9fdW5zYWZlX3VzZUVtb3Rpb25DYWNoZSwgdSBhcyB1c2VUaGVtZSwgdyBhcyB3aXRoRW1vdGlvbkNhY2hlLCBiIGFzIHdpdGhUaGVtZSB9IGZyb20gJy4vZW1vdGlvbi1lbGVtZW50LWYwZGU5NjhlLmJyb3dzZXIuZXNtLmpzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc2VydFN0eWxlcywgcmVnaXN0ZXJTdHlsZXMsIGdldFJlZ2lzdGVyZWRTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi91dGlscyc7XG5pbXBvcnQgeyB1c2VJbnNlcnRpb25FZmZlY3RXaXRoTGF5b3V0RmFsbGJhY2ssIHVzZUluc2VydGlvbkVmZmVjdEFsd2F5c1dpdGhTeW5jRmFsbGJhY2sgfSBmcm9tICdAZW1vdGlvbi91c2UtaW5zZXJ0aW9uLWVmZmVjdC13aXRoLWZhbGxiYWNrcyc7XG5pbXBvcnQgeyBzZXJpYWxpemVTdHlsZXMgfSBmcm9tICdAZW1vdGlvbi9zZXJpYWxpemUnO1xuaW1wb3J0ICdAZW1vdGlvbi9jYWNoZSc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgJ0BlbW90aW9uL3dlYWstbWVtb2l6ZSc7XG5pbXBvcnQgJy4uL19pc29sYXRlZC1obnJzL2Rpc3QvZW1vdGlvbi1yZWFjdC1faXNvbGF0ZWQtaG5ycy5icm93c2VyLmVzbS5qcyc7XG5pbXBvcnQgJ2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzJztcblxudmFyIGpzeCA9IGZ1bmN0aW9uIGpzeCh0eXBlLCBwcm9wcykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuXG4gIGlmIChwcm9wcyA9PSBudWxsIHx8ICFoYXNPd24uY2FsbChwcm9wcywgJ2NzcycpKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgfVxuXG4gIHZhciBhcmdzTGVuZ3RoID0gYXJncy5sZW5ndGg7XG4gIHZhciBjcmVhdGVFbGVtZW50QXJnQXJyYXkgPSBuZXcgQXJyYXkoYXJnc0xlbmd0aCk7XG4gIGNyZWF0ZUVsZW1lbnRBcmdBcnJheVswXSA9IEVtb3Rpb247XG4gIGNyZWF0ZUVsZW1lbnRBcmdBcnJheVsxXSA9IGNyZWF0ZUVtb3Rpb25Qcm9wcyh0eXBlLCBwcm9wcyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmdzTGVuZ3RoOyBpKyspIHtcbiAgICBjcmVhdGVFbGVtZW50QXJnQXJyYXlbaV0gPSBhcmdzW2ldO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQuYXBwbHkobnVsbCwgY3JlYXRlRWxlbWVudEFyZ0FycmF5KTtcbn07XG5cbihmdW5jdGlvbiAoX2pzeCkge1xuICB2YXIgSlNYO1xuXG4gIChmdW5jdGlvbiAoX0pTWCkge30pKEpTWCB8fCAoSlNYID0gX2pzeC5KU1ggfHwgKF9qc3guSlNYID0ge30pKSk7XG59KShqc3ggfHwgKGpzeCA9IHt9KSk7XG5cbi8vIGluaXRpYWwgcmVuZGVyIGZyb20gYnJvd3NlciwgaW5zZXJ0QmVmb3JlIGNvbnRleHQuc2hlZXQudGFnc1swXSBvciBpZiBhIHN0eWxlIGhhc24ndCBiZWVuIGluc2VydGVkIHRoZXJlIHlldCwgYXBwZW5kQ2hpbGRcbi8vIGluaXRpYWwgY2xpZW50LXNpZGUgcmVuZGVyIGZyb20gU1NSLCB1c2UgcGxhY2Ugb2YgaHlkcmF0aW5nIHRhZ1xuXG52YXIgR2xvYmFsID0gLyogI19fUFVSRV9fICovd2l0aEVtb3Rpb25DYWNoZShmdW5jdGlvbiAocHJvcHMsIGNhY2hlKSB7XG5cbiAgdmFyIHN0eWxlcyA9IHByb3BzLnN0eWxlcztcbiAgdmFyIHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTdHlsZXMoW3N0eWxlc10sIHVuZGVmaW5lZCwgUmVhY3QudXNlQ29udGV4dChUaGVtZUNvbnRleHQpKTtcbiAgLy8gYnV0IGl0IGlzIGJhc2VkIG9uIGEgY29uc3RhbnQgdGhhdCB3aWxsIG5ldmVyIGNoYW5nZSBhdCBydW50aW1lXG4gIC8vIGl0J3MgZWZmZWN0aXZlbHkgbGlrZSBoYXZpbmcgdHdvIGltcGxlbWVudGF0aW9ucyBhbmQgc3dpdGNoaW5nIHRoZW0gb3V0XG4gIC8vIHNvIGl0J3Mgbm90IGFjdHVhbGx5IGJyZWFraW5nIGFueXRoaW5nXG5cblxuICB2YXIgc2hlZXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0V2l0aExheW91dEZhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIga2V5ID0gY2FjaGUua2V5ICsgXCItZ2xvYmFsXCI7IC8vIHVzZSBjYXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9lbW90aW9uLWpzL2Vtb3Rpb24vaXNzdWVzLzI2NzVcblxuICAgIHZhciBzaGVldCA9IG5ldyBjYWNoZS5zaGVldC5jb25zdHJ1Y3Rvcih7XG4gICAgICBrZXk6IGtleSxcbiAgICAgIG5vbmNlOiBjYWNoZS5zaGVldC5ub25jZSxcbiAgICAgIGNvbnRhaW5lcjogY2FjaGUuc2hlZXQuY29udGFpbmVyLFxuICAgICAgc3BlZWR5OiBjYWNoZS5zaGVldC5pc1NwZWVkeVxuICAgIH0pO1xuICAgIHZhciByZWh5ZHJhdGluZyA9IGZhbHNlO1xuICAgIHZhciBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcInN0eWxlW2RhdGEtZW1vdGlvbj1cXFwiXCIgKyBrZXkgKyBcIiBcIiArIHNlcmlhbGl6ZWQubmFtZSArIFwiXFxcIl1cIik7XG5cbiAgICBpZiAoY2FjaGUuc2hlZXQudGFncy5sZW5ndGgpIHtcbiAgICAgIHNoZWV0LmJlZm9yZSA9IGNhY2hlLnNoZWV0LnRhZ3NbMF07XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIHJlaHlkcmF0aW5nID0gdHJ1ZTsgLy8gY2xlYXIgdGhlIGhhc2ggc28gdGhpcyBub2RlIHdvbid0IGJlIHJlY29nbml6YWJsZSBhcyByZWh5ZHJhdGFibGUgYnkgb3RoZXIgPEdsb2JhbC8+c1xuXG4gICAgICBub2RlLnNldEF0dHJpYnV0ZSgnZGF0YS1lbW90aW9uJywga2V5KTtcbiAgICAgIHNoZWV0Lmh5ZHJhdGUoW25vZGVdKTtcbiAgICB9XG5cbiAgICBzaGVldFJlZi5jdXJyZW50ID0gW3NoZWV0LCByZWh5ZHJhdGluZ107XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNoZWV0LmZsdXNoKCk7XG4gICAgfTtcbiAgfSwgW2NhY2hlXSk7XG4gIHVzZUluc2VydGlvbkVmZmVjdFdpdGhMYXlvdXRGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNoZWV0UmVmQ3VycmVudCA9IHNoZWV0UmVmLmN1cnJlbnQ7XG4gICAgdmFyIHNoZWV0ID0gc2hlZXRSZWZDdXJyZW50WzBdLFxuICAgICAgICByZWh5ZHJhdGluZyA9IHNoZWV0UmVmQ3VycmVudFsxXTtcblxuICAgIGlmIChyZWh5ZHJhdGluZykge1xuICAgICAgc2hlZXRSZWZDdXJyZW50WzFdID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHNlcmlhbGl6ZWQubmV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBpbnNlcnQga2V5ZnJhbWVzXG4gICAgICBpbnNlcnRTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQubmV4dCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHNoZWV0LnRhZ3MubGVuZ3RoKSB7XG4gICAgICAvLyBpZiB0aGlzIGRvZXNuJ3QgZXhpc3QgdGhlbiBpdCB3aWxsIGJlIG51bGwgc28gdGhlIHN0eWxlIGVsZW1lbnQgd2lsbCBiZSBhcHBlbmRlZFxuICAgICAgdmFyIGVsZW1lbnQgPSBzaGVldC50YWdzW3NoZWV0LnRhZ3MubGVuZ3RoIC0gMV0ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgc2hlZXQuYmVmb3JlID0gZWxlbWVudDtcbiAgICAgIHNoZWV0LmZsdXNoKCk7XG4gICAgfVxuXG4gICAgY2FjaGUuaW5zZXJ0KFwiXCIsIHNlcmlhbGl6ZWQsIHNoZWV0LCBmYWxzZSk7XG4gIH0sIFtjYWNoZSwgc2VyaWFsaXplZC5uYW1lXSk7XG4gIHJldHVybiBudWxsO1xufSk7XG5cbmZ1bmN0aW9uIGNzcygpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBzZXJpYWxpemVTdHlsZXMoYXJncyk7XG59XG5cbmZ1bmN0aW9uIGtleWZyYW1lcygpIHtcbiAgdmFyIGluc2VydGFibGUgPSBjc3MuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpO1xuICB2YXIgbmFtZSA9IFwiYW5pbWF0aW9uLVwiICsgaW5zZXJ0YWJsZS5uYW1lO1xuICByZXR1cm4ge1xuICAgIG5hbWU6IG5hbWUsXG4gICAgc3R5bGVzOiBcIkBrZXlmcmFtZXMgXCIgKyBuYW1lICsgXCJ7XCIgKyBpbnNlcnRhYmxlLnN0eWxlcyArIFwifVwiLFxuICAgIGFuaW06IDEsXG4gICAgdG9TdHJpbmc6IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuIFwiX0VNT19cIiArIHRoaXMubmFtZSArIFwiX1wiICsgdGhpcy5zdHlsZXMgKyBcIl9FTU9fXCI7XG4gICAgfVxuICB9O1xufVxuXG52YXIgY2xhc3NuYW1lcyA9IGZ1bmN0aW9uIGNsYXNzbmFtZXMoYXJncykge1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIGNscyA9ICcnO1xuXG4gIGZvciAoOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09IG51bGwpIGNvbnRpbnVlO1xuICAgIHZhciB0b0FkZCA9IHZvaWQgMDtcblxuICAgIHN3aXRjaCAodHlwZW9mIGFyZykge1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICAgICAgdG9BZGQgPSBjbGFzc25hbWVzKGFyZyk7XG4gICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgdG9BZGQgPSAnJztcblxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBhcmcpIHtcbiAgICAgICAgICAgICAgaWYgKGFyZ1trXSAmJiBrKSB7XG4gICAgICAgICAgICAgICAgdG9BZGQgJiYgKHRvQWRkICs9ICcgJyk7XG4gICAgICAgICAgICAgICAgdG9BZGQgKz0gaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHtcbiAgICAgICAgICB0b0FkZCA9IGFyZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0b0FkZCkge1xuICAgICAgY2xzICYmIChjbHMgKz0gJyAnKTtcbiAgICAgIGNscyArPSB0b0FkZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY2xzO1xufTtcblxuZnVuY3Rpb24gbWVyZ2UocmVnaXN0ZXJlZCwgY3NzLCBjbGFzc05hbWUpIHtcbiAgdmFyIHJlZ2lzdGVyZWRTdHlsZXMgPSBbXTtcbiAgdmFyIHJhd0NsYXNzTmFtZSA9IGdldFJlZ2lzdGVyZWRTdHlsZXMocmVnaXN0ZXJlZCwgcmVnaXN0ZXJlZFN0eWxlcywgY2xhc3NOYW1lKTtcblxuICBpZiAocmVnaXN0ZXJlZFN0eWxlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgfVxuXG4gIHJldHVybiByYXdDbGFzc05hbWUgKyBjc3MocmVnaXN0ZXJlZFN0eWxlcyk7XG59XG5cbnZhciBJbnNlcnRpb24gPSBmdW5jdGlvbiBJbnNlcnRpb24oX3JlZikge1xuICB2YXIgY2FjaGUgPSBfcmVmLmNhY2hlLFxuICAgICAgc2VyaWFsaXplZEFyciA9IF9yZWYuc2VyaWFsaXplZEFycjtcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0QWx3YXlzV2l0aFN5bmNGYWxsYmFjayhmdW5jdGlvbiAoKSB7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmlhbGl6ZWRBcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGluc2VydFN0eWxlcyhjYWNoZSwgc2VyaWFsaXplZEFycltpXSwgZmFsc2UpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG52YXIgQ2xhc3NOYW1lcyA9IC8qICNfX1BVUkVfXyAqL3dpdGhFbW90aW9uQ2FjaGUoZnVuY3Rpb24gKHByb3BzLCBjYWNoZSkge1xuICB2YXIgaGFzUmVuZGVyZWQgPSBmYWxzZTtcbiAgdmFyIHNlcmlhbGl6ZWRBcnIgPSBbXTtcblxuICB2YXIgY3NzID0gZnVuY3Rpb24gY3NzKCkge1xuICAgIGlmIChoYXNSZW5kZXJlZCAmJiBpc0RldmVsb3BtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NzcyBjYW4gb25seSBiZSB1c2VkIGR1cmluZyByZW5kZXInKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgdmFyIHNlcmlhbGl6ZWQgPSBzZXJpYWxpemVTdHlsZXMoYXJncywgY2FjaGUucmVnaXN0ZXJlZCk7XG4gICAgc2VyaWFsaXplZEFyci5wdXNoKHNlcmlhbGl6ZWQpOyAvLyByZWdpc3RyYXRpb24gaGFzIHRvIGhhcHBlbiBoZXJlIGFzIHRoZSByZXN1bHQgb2YgdGhpcyBtaWdodCBnZXQgY29uc3VtZWQgYnkgYGN4YFxuXG4gICAgcmVnaXN0ZXJTdHlsZXMoY2FjaGUsIHNlcmlhbGl6ZWQsIGZhbHNlKTtcbiAgICByZXR1cm4gY2FjaGUua2V5ICsgXCItXCIgKyBzZXJpYWxpemVkLm5hbWU7XG4gIH07XG5cbiAgdmFyIGN4ID0gZnVuY3Rpb24gY3goKSB7XG4gICAgaWYgKGhhc1JlbmRlcmVkICYmIGlzRGV2ZWxvcG1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY3ggY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgcmVuZGVyJyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlKGNhY2hlLnJlZ2lzdGVyZWQsIGNzcywgY2xhc3NuYW1lcyhhcmdzKSk7XG4gIH07XG5cbiAgdmFyIGNvbnRlbnQgPSB7XG4gICAgY3NzOiBjc3MsXG4gICAgY3g6IGN4LFxuICAgIHRoZW1lOiBSZWFjdC51c2VDb250ZXh0KFRoZW1lQ29udGV4dClcbiAgfTtcbiAgdmFyIGVsZSA9IHByb3BzLmNoaWxkcmVuKGNvbnRlbnQpO1xuICBoYXNSZW5kZXJlZCA9IHRydWU7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSW5zZXJ0aW9uLCB7XG4gICAgY2FjaGU6IGNhY2hlLFxuICAgIHNlcmlhbGl6ZWRBcnI6IHNlcmlhbGl6ZWRBcnJcbiAgfSksIGVsZSk7XG59KTtcblxuZXhwb3J0IHsgQ2xhc3NOYW1lcywgR2xvYmFsLCBqc3ggYXMgY3JlYXRlRWxlbWVudCwgY3NzLCBqc3gsIGtleWZyYW1lcyB9O1xuIiwiZnVuY3Rpb24gX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbChlLCB0KSB7XG4gIHJldHVybiB0IHx8ICh0ID0gZS5zbGljZSgwKSksIE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwge1xuICAgIHJhdzoge1xuICAgICAgdmFsdWU6IE9iamVjdC5mcmVlemUodClcbiAgICB9XG4gIH0pKTtcbn1cbmV4cG9ydCB7IF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwgYXMgZGVmYXVsdCB9OyIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LnByb2R1Y3Rpb24uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLFxuICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLFxuICBSRUFDVF9DT05TVU1FUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLFxuICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxcbiAgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksXG4gIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG51bGwgPT09IG1heWJlSXRlcmFibGUgfHwgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG1heWJlSXRlcmFibGUpIHJldHVybiBudWxsO1xuICBtYXliZUl0ZXJhYmxlID1cbiAgICAoTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSkgfHxcbiAgICBtYXliZUl0ZXJhYmxlW1wiQEBpdGVyYXRvclwiXTtcbiAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1heWJlSXRlcmFibGUgPyBtYXliZUl0ZXJhYmxlIDogbnVsbDtcbn1cbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHtcbiAgICBpc01vdW50ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAhMTtcbiAgICB9LFxuICAgIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKCkge30sXG4gICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKCkge30sXG4gICAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAoKSB7fVxuICB9LFxuICBhc3NpZ24gPSBPYmplY3QuYXNzaWduLFxuICBlbXB0eU9iamVjdCA9IHt9O1xuZnVuY3Rpb24gQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG59XG5Db21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbkNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAocGFydGlhbFN0YXRlLCBjYWxsYmFjaykge1xuICBpZiAoXG4gICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIHBhcnRpYWxTdGF0ZSAmJlxuICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHBhcnRpYWxTdGF0ZSAmJlxuICAgIG51bGwgIT0gcGFydGlhbFN0YXRlXG4gIClcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIFwidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCJcbiAgICApO1xuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsIHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2ssIFwic2V0U3RhdGVcIik7XG59O1xuQ29tcG9uZW50LnByb3RvdHlwZS5mb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsIGNhbGxiYWNrLCBcImZvcmNlVXBkYXRlXCIpO1xufTtcbmZ1bmN0aW9uIENvbXBvbmVudER1bW15KCkge31cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG5mdW5jdGlvbiBQdXJlQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIHRoaXMudXBkYXRlciA9IHVwZGF0ZXIgfHwgUmVhY3ROb29wVXBkYXRlUXVldWU7XG59XG52YXIgcHVyZUNvbXBvbmVudFByb3RvdHlwZSA9IChQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpKTtcbnB1cmVDb21wb25lbnRQcm90b3R5cGUuY29uc3RydWN0b3IgPSBQdXJlQ29tcG9uZW50O1xuYXNzaWduKHB1cmVDb21wb25lbnRQcm90b3R5cGUsIENvbXBvbmVudC5wcm90b3R5cGUpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCA9ICEwO1xudmFyIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheSxcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSB7IEg6IG51bGwsIEE6IG51bGwsIFQ6IG51bGwsIFM6IG51bGwgfSxcbiAgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgc2VsZiA9IHByb3BzLnJlZjtcbiAgcmV0dXJuIHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAga2V5OiBrZXksXG4gICAgcmVmOiB2b2lkIDAgIT09IHNlbGYgPyBzZWxmIDogbnVsbCxcbiAgICBwcm9wczogcHJvcHNcbiAgfTtcbn1cbmZ1bmN0aW9uIGNsb25lQW5kUmVwbGFjZUtleShvbGRFbGVtZW50LCBuZXdLZXkpIHtcbiAgcmV0dXJuIFJlYWN0RWxlbWVudChcbiAgICBvbGRFbGVtZW50LnR5cGUsXG4gICAgbmV3S2V5LFxuICAgIHZvaWQgMCxcbiAgICB2b2lkIDAsXG4gICAgdm9pZCAwLFxuICAgIG9sZEVsZW1lbnQucHJvcHNcbiAgKTtcbn1cbmZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICByZXR1cm4gKFxuICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvYmplY3QgJiZcbiAgICBudWxsICE9PSBvYmplY3QgJiZcbiAgICBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICApO1xufVxuZnVuY3Rpb24gZXNjYXBlKGtleSkge1xuICB2YXIgZXNjYXBlckxvb2t1cCA9IHsgXCI9XCI6IFwiPTBcIiwgXCI6XCI6IFwiPTJcIiB9O1xuICByZXR1cm4gKFxuICAgIFwiJFwiICtcbiAgICBrZXkucmVwbGFjZSgvWz06XS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiBlc2NhcGVyTG9va3VwW21hdGNoXTtcbiAgICB9KVxuICApO1xufVxudmFyIHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4ID0gL1xcLysvZztcbmZ1bmN0aW9uIGdldEVsZW1lbnRLZXkoZWxlbWVudCwgaW5kZXgpIHtcbiAgcmV0dXJuIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlbGVtZW50ICYmIG51bGwgIT09IGVsZW1lbnQgJiYgbnVsbCAhPSBlbGVtZW50LmtleVxuICAgID8gZXNjYXBlKFwiXCIgKyBlbGVtZW50LmtleSlcbiAgICA6IGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cbmZ1bmN0aW9uIG5vb3AkMSgpIHt9XG5mdW5jdGlvbiByZXNvbHZlVGhlbmFibGUodGhlbmFibGUpIHtcbiAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICByZXR1cm4gdGhlbmFibGUudmFsdWU7XG4gICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247XG4gICAgZGVmYXVsdDpcbiAgICAgIHN3aXRjaCAoXG4gICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgdGhlbmFibGUuc3RhdHVzXG4gICAgICAgICAgPyB0aGVuYWJsZS50aGVuKG5vb3AkMSwgbm9vcCQxKVxuICAgICAgICAgIDogKCh0aGVuYWJsZS5zdGF0dXMgPSBcInBlbmRpbmdcIiksXG4gICAgICAgICAgICB0aGVuYWJsZS50aGVuKFxuICAgICAgICAgICAgICBmdW5jdGlvbiAoZnVsZmlsbGVkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBcInBlbmRpbmdcIiA9PT0gdGhlbmFibGUuc3RhdHVzICYmXG4gICAgICAgICAgICAgICAgICAoKHRoZW5hYmxlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgICAgICAgKHRoZW5hYmxlLnZhbHVlID0gZnVsZmlsbGVkVmFsdWUpKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgXCJwZW5kaW5nXCIgPT09IHRoZW5hYmxlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAgICAgKCh0aGVuYWJsZS5zdGF0dXMgPSBcInJlamVjdGVkXCIpLCAodGhlbmFibGUucmVhc29uID0gZXJyb3IpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSksXG4gICAgICAgIHRoZW5hYmxlLnN0YXR1cylcbiAgICAgICkge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmV0dXJuIHRoZW5hYmxlLnZhbHVlO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247XG4gICAgICB9XG4gIH1cbiAgdGhyb3cgdGhlbmFibGU7XG59XG5mdW5jdGlvbiBtYXBJbnRvQXJyYXkoY2hpbGRyZW4sIGFycmF5LCBlc2NhcGVkUHJlZml4LCBuYW1lU29GYXIsIGNhbGxiYWNrKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIGNoaWxkcmVuO1xuICBpZiAoXCJ1bmRlZmluZWRcIiA9PT0gdHlwZSB8fCBcImJvb2xlYW5cIiA9PT0gdHlwZSkgY2hpbGRyZW4gPSBudWxsO1xuICB2YXIgaW52b2tlQ2FsbGJhY2sgPSAhMTtcbiAgaWYgKG51bGwgPT09IGNoaWxkcmVuKSBpbnZva2VDYWxsYmFjayA9ICEwO1xuICBlbHNlXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChpbnZva2VDYWxsYmFjayA9IGNoaWxkcmVuLl9pbml0KSxcbiAgICAgICAgICAgICAgbWFwSW50b0FycmF5KFxuICAgICAgICAgICAgICAgIGludm9rZUNhbGxiYWNrKGNoaWxkcmVuLl9wYXlsb2FkKSxcbiAgICAgICAgICAgICAgICBhcnJheSxcbiAgICAgICAgICAgICAgICBlc2NhcGVkUHJlZml4LFxuICAgICAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICBpZiAoaW52b2tlQ2FsbGJhY2spXG4gICAgcmV0dXJuIChcbiAgICAgIChjYWxsYmFjayA9IGNhbGxiYWNrKGNoaWxkcmVuKSksXG4gICAgICAoaW52b2tlQ2FsbGJhY2sgPVxuICAgICAgICBcIlwiID09PSBuYW1lU29GYXIgPyBcIi5cIiArIGdldEVsZW1lbnRLZXkoY2hpbGRyZW4sIDApIDogbmFtZVNvRmFyKSxcbiAgICAgIGlzQXJyYXlJbXBsKGNhbGxiYWNrKVxuICAgICAgICA/ICgoZXNjYXBlZFByZWZpeCA9IFwiXCIpLFxuICAgICAgICAgIG51bGwgIT0gaW52b2tlQ2FsbGJhY2sgJiZcbiAgICAgICAgICAgIChlc2NhcGVkUHJlZml4ID1cbiAgICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2sucmVwbGFjZSh1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCwgXCIkJi9cIikgKyBcIi9cIiksXG4gICAgICAgICAgbWFwSW50b0FycmF5KGNhbGxiYWNrLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgXCJcIiwgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgIH0pKVxuICAgICAgICA6IG51bGwgIT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAoaXNWYWxpZEVsZW1lbnQoY2FsbGJhY2spICYmXG4gICAgICAgICAgICAoY2FsbGJhY2sgPSBjbG9uZUFuZFJlcGxhY2VLZXkoXG4gICAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgICBlc2NhcGVkUHJlZml4ICtcbiAgICAgICAgICAgICAgICAobnVsbCA9PSBjYWxsYmFjay5rZXkgfHxcbiAgICAgICAgICAgICAgICAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ua2V5ID09PSBjYWxsYmFjay5rZXkpXG4gICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgIDogKFwiXCIgKyBjYWxsYmFjay5rZXkpLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsXG4gICAgICAgICAgICAgICAgICAgICAgXCIkJi9cIlxuICAgICAgICAgICAgICAgICAgICApICsgXCIvXCIpICtcbiAgICAgICAgICAgICAgICBpbnZva2VDYWxsYmFja1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgYXJyYXkucHVzaChjYWxsYmFjaykpLFxuICAgICAgMVxuICAgICk7XG4gIGludm9rZUNhbGxiYWNrID0gMDtcbiAgdmFyIG5leHROYW1lUHJlZml4ID0gXCJcIiA9PT0gbmFtZVNvRmFyID8gXCIuXCIgOiBuYW1lU29GYXIgKyBcIjpcIjtcbiAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSlcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxuICAgICAgKG5hbWVTb0ZhciA9IGNoaWxkcmVuW2ldKSxcbiAgICAgICAgKHR5cGUgPSBuZXh0TmFtZVByZWZpeCArIGdldEVsZW1lbnRLZXkobmFtZVNvRmFyLCBpKSksXG4gICAgICAgIChpbnZva2VDYWxsYmFjayArPSBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgbmFtZVNvRmFyLFxuICAgICAgICAgIGFycmF5LFxuICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApKTtcbiAgZWxzZSBpZiAoKChpID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbikpLCBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpKSlcbiAgICBmb3IgKFxuICAgICAgY2hpbGRyZW4gPSBpLmNhbGwoY2hpbGRyZW4pLCBpID0gMDtcbiAgICAgICEobmFtZVNvRmFyID0gY2hpbGRyZW4ubmV4dCgpKS5kb25lO1xuXG4gICAgKVxuICAgICAgKG5hbWVTb0ZhciA9IG5hbWVTb0Zhci52YWx1ZSksXG4gICAgICAgICh0eXBlID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KG5hbWVTb0ZhciwgaSsrKSksXG4gICAgICAgIChpbnZva2VDYWxsYmFjayArPSBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgbmFtZVNvRmFyLFxuICAgICAgICAgIGFycmF5LFxuICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApKTtcbiAgZWxzZSBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZSkge1xuICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjaGlsZHJlbi50aGVuKVxuICAgICAgcmV0dXJuIG1hcEludG9BcnJheShcbiAgICAgICAgcmVzb2x2ZVRoZW5hYmxlKGNoaWxkcmVuKSxcbiAgICAgICAgYXJyYXksXG4gICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgICk7XG4gICAgYXJyYXkgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgIHRocm93IEVycm9yKFxuICAgICAgXCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6IFwiICtcbiAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IGFycmF5XG4gICAgICAgICAgPyBcIm9iamVjdCB3aXRoIGtleXMge1wiICsgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmpvaW4oXCIsIFwiKSArIFwifVwiXG4gICAgICAgICAgOiBhcnJheSkgK1xuICAgICAgICBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGludm9rZUNhbGxiYWNrO1xufVxuZnVuY3Rpb24gbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmMsIGNvbnRleHQpIHtcbiAgaWYgKG51bGwgPT0gY2hpbGRyZW4pIHJldHVybiBjaGlsZHJlbjtcbiAgdmFyIHJlc3VsdCA9IFtdLFxuICAgIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsIFwiXCIsIFwiXCIsIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBmdW5jLmNhbGwoY29udGV4dCwgY2hpbGQsIGNvdW50KyspO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmICgtMSA9PT0gcGF5bG9hZC5fc3RhdHVzKSB7XG4gICAgdmFyIGN0b3IgPSBwYXlsb2FkLl9yZXN1bHQ7XG4gICAgY3RvciA9IGN0b3IoKTtcbiAgICBjdG9yLnRoZW4oXG4gICAgICBmdW5jdGlvbiAobW9kdWxlT2JqZWN0KSB7XG4gICAgICAgIGlmICgwID09PSBwYXlsb2FkLl9zdGF0dXMgfHwgLTEgPT09IHBheWxvYWQuX3N0YXR1cylcbiAgICAgICAgICAocGF5bG9hZC5fc3RhdHVzID0gMSksIChwYXlsb2FkLl9yZXN1bHQgPSBtb2R1bGVPYmplY3QpO1xuICAgICAgfSxcbiAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICBpZiAoMCA9PT0gcGF5bG9hZC5fc3RhdHVzIHx8IC0xID09PSBwYXlsb2FkLl9zdGF0dXMpXG4gICAgICAgICAgKHBheWxvYWQuX3N0YXR1cyA9IDIpLCAocGF5bG9hZC5fcmVzdWx0ID0gZXJyb3IpO1xuICAgICAgfVxuICAgICk7XG4gICAgLTEgPT09IHBheWxvYWQuX3N0YXR1cyAmJiAoKHBheWxvYWQuX3N0YXR1cyA9IDApLCAocGF5bG9hZC5fcmVzdWx0ID0gY3RvcikpO1xuICB9XG4gIGlmICgxID09PSBwYXlsb2FkLl9zdGF0dXMpIHJldHVybiBwYXlsb2FkLl9yZXN1bHQuZGVmYXVsdDtcbiAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xufVxudmFyIHJlcG9ydEdsb2JhbEVycm9yID1cbiAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVwb3J0RXJyb3JcbiAgICA/IHJlcG9ydEVycm9yXG4gICAgOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiB3aW5kb3cgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudFxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgZXZlbnQgPSBuZXcgd2luZG93LkVycm9yRXZlbnQoXCJlcnJvclwiLCB7XG4gICAgICAgICAgICBidWJibGVzOiAhMCxcbiAgICAgICAgICAgIGNhbmNlbGFibGU6ICEwLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVycm9yICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGVycm9yICYmXG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBlcnJvci5tZXNzYWdlXG4gICAgICAgICAgICAgICAgPyBTdHJpbmcoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICAgICAgICA6IFN0cmluZyhlcnJvciksXG4gICAgICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2ZW50KSkgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBwcm9jZXNzICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcHJvY2Vzcy5lbWl0XG4gICAgICAgICkge1xuICAgICAgICAgIHByb2Nlc3MuZW1pdChcInVuY2F1Z2h0RXhjZXB0aW9uXCIsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9O1xuZnVuY3Rpb24gbm9vcCgpIHt9XG5leHBvcnRzLkNoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmdW5jdGlvbiAoY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICAgIG1hcENoaWxkcmVuKFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9LFxuICAgICAgZm9yRWFjaENvbnRleHRcbiAgICApO1xuICB9LFxuICBjb3VudDogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgdmFyIG4gPSAwO1xuICAgIG1hcENoaWxkcmVuKGNoaWxkcmVuLCBmdW5jdGlvbiAoKSB7XG4gICAgICBuKys7XG4gICAgfSk7XG4gICAgcmV0dXJuIG47XG4gIH0sXG4gIHRvQXJyYXk6IGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgIHJldHVybiAoXG4gICAgICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH0pIHx8IFtdXG4gICAgKTtcbiAgfSxcbiAgb25seTogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpXG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC5cIlxuICAgICAgKTtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbn07XG5leHBvcnRzLkNvbXBvbmVudCA9IENvbXBvbmVudDtcbmV4cG9ydHMuRnJhZ21lbnQgPSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xuZXhwb3J0cy5Qcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG5leHBvcnRzLlB1cmVDb21wb25lbnQgPSBQdXJlQ29tcG9uZW50O1xuZXhwb3J0cy5TdHJpY3RNb2RlID0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbmV4cG9ydHMuU3VzcGVuc2UgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuZXhwb3J0cy5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUgPVxuICBSZWFjdFNoYXJlZEludGVybmFscztcbmV4cG9ydHMuYWN0ID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBFcnJvcihcImFjdCguLi4pIGlzIG5vdCBzdXBwb3J0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgb2YgUmVhY3QuXCIpO1xufTtcbmV4cG9ydHMuY2FjaGUgPSBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50LCBjb25maWcsIGNoaWxkcmVuKSB7XG4gIGlmIChudWxsID09PSBlbGVtZW50IHx8IHZvaWQgMCA9PT0gZWxlbWVudClcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIFwiVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBSZWFjdCBlbGVtZW50LCBidXQgeW91IHBhc3NlZCBcIiArIGVsZW1lbnQgKyBcIi5cIlxuICAgICk7XG4gIHZhciBwcm9wcyA9IGFzc2lnbih7fSwgZWxlbWVudC5wcm9wcyksXG4gICAga2V5ID0gZWxlbWVudC5rZXksXG4gICAgb3duZXIgPSB2b2lkIDA7XG4gIGlmIChudWxsICE9IGNvbmZpZylcbiAgICBmb3IgKHByb3BOYW1lIGluICh2b2lkIDAgIT09IGNvbmZpZy5yZWYgJiYgKG93bmVyID0gdm9pZCAwKSxcbiAgICB2b2lkIDAgIT09IGNvbmZpZy5rZXkgJiYgKGtleSA9IFwiXCIgKyBjb25maWcua2V5KSxcbiAgICBjb25maWcpKVxuICAgICAgIWhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgfHxcbiAgICAgICAgXCJrZXlcIiA9PT0gcHJvcE5hbWUgfHxcbiAgICAgICAgXCJfX3NlbGZcIiA9PT0gcHJvcE5hbWUgfHxcbiAgICAgICAgXCJfX3NvdXJjZVwiID09PSBwcm9wTmFtZSB8fFxuICAgICAgICAoXCJyZWZcIiA9PT0gcHJvcE5hbWUgJiYgdm9pZCAwID09PSBjb25maWcucmVmKSB8fFxuICAgICAgICAocHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXSk7XG4gIHZhciBwcm9wTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuICBpZiAoMSA9PT0gcHJvcE5hbWUpIHByb3BzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIGVsc2UgaWYgKDEgPCBwcm9wTmFtZSkge1xuICAgIGZvciAodmFyIGNoaWxkQXJyYXkgPSBBcnJheShwcm9wTmFtZSksIGkgPSAwOyBpIDwgcHJvcE5hbWU7IGkrKylcbiAgICAgIGNoaWxkQXJyYXlbaV0gPSBhcmd1bWVudHNbaSArIDJdO1xuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRBcnJheTtcbiAgfVxuICByZXR1cm4gUmVhY3RFbGVtZW50KGVsZW1lbnQudHlwZSwga2V5LCB2b2lkIDAsIHZvaWQgMCwgb3duZXIsIHByb3BzKTtcbn07XG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBmdW5jdGlvbiAoZGVmYXVsdFZhbHVlKSB7XG4gIGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OVEVYVF9UWVBFLFxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbFxuICB9O1xuICBkZWZhdWx0VmFsdWUuUHJvdmlkZXIgPSBkZWZhdWx0VmFsdWU7XG4gIGRlZmF1bHRWYWx1ZS5Db25zdW1lciA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfQ09OU1VNRVJfVFlQRSxcbiAgICBfY29udGV4dDogZGVmYXVsdFZhbHVlXG4gIH07XG4gIHJldHVybiBkZWZhdWx0VmFsdWU7XG59O1xuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24gKHR5cGUsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgdmFyIHByb3BOYW1lLFxuICAgIHByb3BzID0ge30sXG4gICAga2V5ID0gbnVsbDtcbiAgaWYgKG51bGwgIT0gY29uZmlnKVxuICAgIGZvciAocHJvcE5hbWUgaW4gKHZvaWQgMCAhPT0gY29uZmlnLmtleSAmJiAoa2V5ID0gXCJcIiArIGNvbmZpZy5rZXkpLCBjb25maWcpKVxuICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIHByb3BOYW1lKSAmJlxuICAgICAgICBcImtleVwiICE9PSBwcm9wTmFtZSAmJlxuICAgICAgICBcIl9fc2VsZlwiICE9PSBwcm9wTmFtZSAmJlxuICAgICAgICBcIl9fc291cmNlXCIgIT09IHByb3BOYW1lICYmXG4gICAgICAgIChwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG4gIGlmICgxID09PSBjaGlsZHJlbkxlbmd0aCkgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgZWxzZSBpZiAoMSA8IGNoaWxkcmVuTGVuZ3RoKSB7XG4gICAgZm9yICh2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKSwgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKVxuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICB9XG4gIGlmICh0eXBlICYmIHR5cGUuZGVmYXVsdFByb3BzKVxuICAgIGZvciAocHJvcE5hbWUgaW4gKChjaGlsZHJlbkxlbmd0aCA9IHR5cGUuZGVmYXVsdFByb3BzKSwgY2hpbGRyZW5MZW5ndGgpKVxuICAgICAgdm9pZCAwID09PSBwcm9wc1twcm9wTmFtZV0gJiZcbiAgICAgICAgKHByb3BzW3Byb3BOYW1lXSA9IGNoaWxkcmVuTGVuZ3RoW3Byb3BOYW1lXSk7XG4gIHJldHVybiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCB2b2lkIDAsIHZvaWQgMCwgbnVsbCwgcHJvcHMpO1xufTtcbmV4cG9ydHMuY3JlYXRlUmVmID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4geyBjdXJyZW50OiBudWxsIH07XG59O1xuZXhwb3J0cy5mb3J3YXJkUmVmID0gZnVuY3Rpb24gKHJlbmRlcikge1xuICByZXR1cm4geyAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSwgcmVuZGVyOiByZW5kZXIgfTtcbn07XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5leHBvcnRzLmxhenkgPSBmdW5jdGlvbiAoY3Rvcikge1xuICByZXR1cm4ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgX3BheWxvYWQ6IHsgX3N0YXR1czogLTEsIF9yZXN1bHQ6IGN0b3IgfSxcbiAgICBfaW5pdDogbGF6eUluaXRpYWxpemVyXG4gIH07XG59O1xuZXhwb3J0cy5tZW1vID0gZnVuY3Rpb24gKHR5cGUsIGNvbXBhcmUpIHtcbiAgcmV0dXJuIHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogdm9pZCAwID09PSBjb21wYXJlID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcbn07XG5leHBvcnRzLnN0YXJ0VHJhbnNpdGlvbiA9IGZ1bmN0aW9uIChzY29wZSkge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5ULFxuICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBjdXJyZW50VHJhbnNpdGlvbjtcbiAgdHJ5IHtcbiAgICB2YXIgcmV0dXJuVmFsdWUgPSBzY29wZSgpLFxuICAgICAgb25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TO1xuICAgIG51bGwgIT09IG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoICYmXG4gICAgICBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaChjdXJyZW50VHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpO1xuICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZSAmJlxuICAgICAgbnVsbCAhPT0gcmV0dXJuVmFsdWUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlLnRoZW4gJiZcbiAgICAgIHJldHVyblZhbHVlLnRoZW4obm9vcCwgcmVwb3J0R2xvYmFsRXJyb3IpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcG9ydEdsb2JhbEVycm9yKGVycm9yKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb247XG4gIH1cbn07XG5leHBvcnRzLnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlQ2FjaGVSZWZyZXNoKCk7XG59O1xuZXhwb3J0cy51c2UgPSBmdW5jdGlvbiAodXNhYmxlKSB7XG4gIHJldHVybiBSZWFjdFNoYXJlZEludGVybmFscy5ILnVzZSh1c2FibGUpO1xufTtcbmV4cG9ydHMudXNlQWN0aW9uU3RhdGUgPSBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykge1xuICByZXR1cm4gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSC51c2VBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKTtcbn07XG5leHBvcnRzLnVzZUNhbGxiYWNrID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gIHJldHVybiBSZWFjdFNoYXJlZEludGVybmFscy5ILnVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbn07XG5leHBvcnRzLnVzZUNvbnRleHQgPSBmdW5jdGlvbiAoQ29udGV4dCkge1xuICByZXR1cm4gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSC51c2VDb250ZXh0KENvbnRleHQpO1xufTtcbmV4cG9ydHMudXNlRGVidWdWYWx1ZSA9IGZ1bmN0aW9uICgpIHt9O1xuZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbn07XG5leHBvcnRzLnVzZUVmZmVjdCA9IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG59O1xuZXhwb3J0cy51c2VJZCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlSWQoKTtcbn07XG5leHBvcnRzLnVzZUltcGVyYXRpdmVIYW5kbGUgPSBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG59O1xuZXhwb3J0cy51c2VJbnNlcnRpb25FZmZlY3QgPSBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiBSZWFjdFNoYXJlZEludGVybmFscy5ILnVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpO1xufTtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICByZXR1cm4gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSC51c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn07XG5leHBvcnRzLnVzZU1lbW8gPSBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiBSZWFjdFNoYXJlZEludGVybmFscy5ILnVzZU1lbW8oY3JlYXRlLCBkZXBzKTtcbn07XG5leHBvcnRzLnVzZU9wdGltaXN0aWMgPSBmdW5jdGlvbiAocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcik7XG59O1xuZXhwb3J0cy51c2VSZWR1Y2VyID0gZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbn07XG5leHBvcnRzLnVzZVJlZiA9IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlUmVmKGluaXRpYWxWYWx1ZSk7XG59O1xuZXhwb3J0cy51c2VTdGF0ZSA9IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbn07XG5leHBvcnRzLnVzZVN5bmNFeHRlcm5hbFN0b3JlID0gZnVuY3Rpb24gKFxuICBzdWJzY3JpYmUsXG4gIGdldFNuYXBzaG90LFxuICBnZXRTZXJ2ZXJTbmFwc2hvdFxuKSB7XG4gIHJldHVybiBSZWFjdFNoYXJlZEludGVybmFscy5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgIHN1YnNjcmliZSxcbiAgICBnZXRTbmFwc2hvdCxcbiAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICApO1xufTtcbmV4cG9ydHMudXNlVHJhbnNpdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlVHJhbnNpdGlvbigpO1xufTtcbmV4cG9ydHMudmVyc2lvbiA9IFwiMTkuMC4wXCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xudmFyIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuZnVuY3Rpb24gZm9ybWF0UHJvZEVycm9yTWVzc2FnZShjb2RlKSB7XG4gIHZhciB1cmwgPSBcImh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy9cIiArIGNvZGU7XG4gIGlmICgxIDwgYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIHVybCArPSBcIj9hcmdzW109XCIgKyBlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzWzFdKTtcbiAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcbiAgICAgIHVybCArPSBcIiZhcmdzW109XCIgKyBlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2ldKTtcbiAgfVxuICByZXR1cm4gKFxuICAgIFwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiICtcbiAgICBjb2RlICtcbiAgICBcIjsgdmlzaXQgXCIgK1xuICAgIHVybCArXG4gICAgXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwiXG4gICk7XG59XG5mdW5jdGlvbiBub29wKCkge31cbnZhciBJbnRlcm5hbHMgPSB7XG4gICAgZDoge1xuICAgICAgZjogbm9vcCxcbiAgICAgIHI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSg1MjIpKTtcbiAgICAgIH0sXG4gICAgICBEOiBub29wLFxuICAgICAgQzogbm9vcCxcbiAgICAgIEw6IG5vb3AsXG4gICAgICBtOiBub29wLFxuICAgICAgWDogbm9vcCxcbiAgICAgIFM6IG5vb3AsXG4gICAgICBNOiBub29wXG4gICAgfSxcbiAgICBwOiAwLFxuICAgIGZpbmRET01Ob2RlOiBudWxsXG4gIH0sXG4gIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVBvcnRhbCQxKGNoaWxkcmVuLCBjb250YWluZXJJbmZvLCBpbXBsZW1lbnRhdGlvbikge1xuICB2YXIga2V5ID1cbiAgICAzIDwgYXJndW1lbnRzLmxlbmd0aCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1szXSA/IGFyZ3VtZW50c1szXSA6IG51bGw7XG4gIHJldHVybiB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX1BPUlRBTF9UWVBFLFxuICAgIGtleTogbnVsbCA9PSBrZXkgPyBudWxsIDogXCJcIiArIGtleSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgY29udGFpbmVySW5mbzogY29udGFpbmVySW5mbyxcbiAgICBpbXBsZW1lbnRhdGlvbjogaW1wbGVtZW50YXRpb25cbiAgfTtcbn1cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtcbmZ1bmN0aW9uIGdldENyb3NzT3JpZ2luU3RyaW5nQXMoYXMsIGlucHV0KSB7XG4gIGlmIChcImZvbnRcIiA9PT0gYXMpIHJldHVybiBcIlwiO1xuICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGlucHV0KVxuICAgIHJldHVybiBcInVzZS1jcmVkZW50aWFsc1wiID09PSBpbnB1dCA/IGlucHV0IDogXCJcIjtcbn1cbmV4cG9ydHMuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID1cbiAgSW50ZXJuYWxzO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBmdW5jdGlvbiAoY2hpbGRyZW4sIGNvbnRhaW5lcikge1xuICB2YXIga2V5ID1cbiAgICAyIDwgYXJndW1lbnRzLmxlbmd0aCAmJiB2b2lkIDAgIT09IGFyZ3VtZW50c1syXSA/IGFyZ3VtZW50c1syXSA6IG51bGw7XG4gIGlmIChcbiAgICAhY29udGFpbmVyIHx8XG4gICAgKDEgIT09IGNvbnRhaW5lci5ub2RlVHlwZSAmJlxuICAgICAgOSAhPT0gY29udGFpbmVyLm5vZGVUeXBlICYmXG4gICAgICAxMSAhPT0gY29udGFpbmVyLm5vZGVUeXBlKVxuICApXG4gICAgdGhyb3cgRXJyb3IoZm9ybWF0UHJvZEVycm9yTWVzc2FnZSgyOTkpKTtcbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCQxKGNoaWxkcmVuLCBjb250YWluZXIsIG51bGwsIGtleSk7XG59O1xuZXhwb3J0cy5mbHVzaFN5bmMgPSBmdW5jdGlvbiAoZm4pIHtcbiAgdmFyIHByZXZpb3VzVHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgcHJldmlvdXNVcGRhdGVQcmlvcml0eSA9IEludGVybmFscy5wO1xuICB0cnkge1xuICAgIGlmICgoKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsKSwgKEludGVybmFscy5wID0gMiksIGZuKSkgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2aW91c1RyYW5zaXRpb24pLFxuICAgICAgKEludGVybmFscy5wID0gcHJldmlvdXNVcGRhdGVQcmlvcml0eSksXG4gICAgICBJbnRlcm5hbHMuZC5mKCk7XG4gIH1cbn07XG5leHBvcnRzLnByZWNvbm5lY3QgPSBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJlxuICAgIChvcHRpb25zXG4gICAgICA/ICgob3B0aW9ucyA9IG9wdGlvbnMuY3Jvc3NPcmlnaW4pLFxuICAgICAgICAob3B0aW9ucyA9XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnNcbiAgICAgICAgICAgID8gXCJ1c2UtY3JlZGVudGlhbHNcIiA9PT0gb3B0aW9uc1xuICAgICAgICAgICAgICA/IG9wdGlvbnNcbiAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICA6IHZvaWQgMCkpXG4gICAgICA6IChvcHRpb25zID0gbnVsbCksXG4gICAgSW50ZXJuYWxzLmQuQyhocmVmLCBvcHRpb25zKSk7XG59O1xuZXhwb3J0cy5wcmVmZXRjaEROUyA9IGZ1bmN0aW9uIChocmVmKSB7XG4gIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIEludGVybmFscy5kLkQoaHJlZik7XG59O1xuZXhwb3J0cy5wcmVpbml0ID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmIG9wdGlvbnMgJiYgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXMpIHtcbiAgICB2YXIgYXMgPSBvcHRpb25zLmFzLFxuICAgICAgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKGFzLCBvcHRpb25zLmNyb3NzT3JpZ2luKSxcbiAgICAgIGludGVncml0eSA9XG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdm9pZCAwLFxuICAgICAgZmV0Y2hQcmlvcml0eSA9XG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmZldGNoUHJpb3JpdHlcbiAgICAgICAgICA/IG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgIDogdm9pZCAwO1xuICAgIFwic3R5bGVcIiA9PT0gYXNcbiAgICAgID8gSW50ZXJuYWxzLmQuUyhcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLnByZWNlZGVuY2UgPyBvcHRpb25zLnByZWNlZGVuY2UgOiB2b2lkIDAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgICAgICAgaW50ZWdyaXR5OiBpbnRlZ3JpdHksXG4gICAgICAgICAgICBmZXRjaFByaW9yaXR5OiBmZXRjaFByaW9yaXR5XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICA6IFwic2NyaXB0XCIgPT09IGFzICYmXG4gICAgICAgIEludGVybmFscy5kLlgoaHJlZiwge1xuICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICBpbnRlZ3JpdHk6IGludGVncml0eSxcbiAgICAgICAgICBmZXRjaFByaW9yaXR5OiBmZXRjaFByaW9yaXR5LFxuICAgICAgICAgIG5vbmNlOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDBcbiAgICAgICAgfSk7XG4gIH1cbn07XG5leHBvcnRzLnByZWluaXRNb2R1bGUgPSBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYpXG4gICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBvcHRpb25zICYmIG51bGwgIT09IG9wdGlvbnMpIHtcbiAgICAgIGlmIChudWxsID09IG9wdGlvbnMuYXMgfHwgXCJzY3JpcHRcIiA9PT0gb3B0aW9ucy5hcykge1xuICAgICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKFxuICAgICAgICAgIG9wdGlvbnMuYXMsXG4gICAgICAgICAgb3B0aW9ucy5jcm9zc09yaWdpblxuICAgICAgICApO1xuICAgICAgICBJbnRlcm5hbHMuZC5NKGhyZWYsIHtcbiAgICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgaW50ZWdyaXR5OlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuaW50ZWdyaXR5ID8gb3B0aW9ucy5pbnRlZ3JpdHkgOiB2b2lkIDAsXG4gICAgICAgICAgbm9uY2U6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm5vbmNlID8gb3B0aW9ucy5ub25jZSA6IHZvaWQgMFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgbnVsbCA9PSBvcHRpb25zICYmIEludGVybmFscy5kLk0oaHJlZik7XG59O1xuZXhwb3J0cy5wcmVsb2FkID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgaWYgKFxuICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmXG4gICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9wdGlvbnMgJiZcbiAgICBudWxsICE9PSBvcHRpb25zICYmXG4gICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXNcbiAgKSB7XG4gICAgdmFyIGFzID0gb3B0aW9ucy5hcyxcbiAgICAgIGNyb3NzT3JpZ2luID0gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhhcywgb3B0aW9ucy5jcm9zc09yaWdpbik7XG4gICAgSW50ZXJuYWxzLmQuTChocmVmLCBhcywge1xuICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgaW50ZWdyaXR5OlxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHkgPyBvcHRpb25zLmludGVncml0eSA6IHZvaWQgMCxcbiAgICAgIG5vbmNlOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDAsXG4gICAgICB0eXBlOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy50eXBlID8gb3B0aW9ucy50eXBlIDogdm9pZCAwLFxuICAgICAgZmV0Y2hQcmlvcml0eTpcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgID8gb3B0aW9ucy5mZXRjaFByaW9yaXR5XG4gICAgICAgICAgOiB2b2lkIDAsXG4gICAgICByZWZlcnJlclBvbGljeTpcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMucmVmZXJyZXJQb2xpY3lcbiAgICAgICAgICA/IG9wdGlvbnMucmVmZXJyZXJQb2xpY3lcbiAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgIGltYWdlU3JjU2V0OlxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNyY1NldCA/IG9wdGlvbnMuaW1hZ2VTcmNTZXQgOiB2b2lkIDAsXG4gICAgICBpbWFnZVNpemVzOlxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbWFnZVNpemVzID8gb3B0aW9ucy5pbWFnZVNpemVzIDogdm9pZCAwLFxuICAgICAgbWVkaWE6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLm1lZGlhID8gb3B0aW9ucy5tZWRpYSA6IHZvaWQgMFxuICAgIH0pO1xuICB9XG59O1xuZXhwb3J0cy5wcmVsb2FkTW9kdWxlID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmKVxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB2YXIgY3Jvc3NPcmlnaW4gPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKG9wdGlvbnMuYXMsIG9wdGlvbnMuY3Jvc3NPcmlnaW4pO1xuICAgICAgSW50ZXJuYWxzLmQubShocmVmLCB7XG4gICAgICAgIGFzOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmFzICYmIFwic2NyaXB0XCIgIT09IG9wdGlvbnMuYXNcbiAgICAgICAgICAgID8gb3B0aW9ucy5hc1xuICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgaW50ZWdyaXR5OlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdm9pZCAwXG4gICAgICB9KTtcbiAgICB9IGVsc2UgSW50ZXJuYWxzLmQubShocmVmKTtcbn07XG5leHBvcnRzLnJlcXVlc3RGb3JtUmVzZXQgPSBmdW5jdGlvbiAoZm9ybSkge1xuICBJbnRlcm5hbHMuZC5yKGZvcm0pO1xufTtcbmV4cG9ydHMudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMgPSBmdW5jdGlvbiAoZm4sIGEpIHtcbiAgcmV0dXJuIGZuKGEpO1xufTtcbmV4cG9ydHMudXNlRm9ybVN0YXRlID0gZnVuY3Rpb24gKGFjdGlvbiwgaW5pdGlhbFN0YXRlLCBwZXJtYWxpbmspIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlRm9ybVN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlLCBwZXJtYWxpbmspO1xufTtcbmV4cG9ydHMudXNlRm9ybVN0YXR1cyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKTtcbn07XG5leHBvcnRzLnZlcnNpb24gPSBcIjE5LjAuMFwiO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBjaGVja0RDRSgpIHtcbiAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuICBpZiAoXG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZFxuICAgIC8vIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgY29uZGl0aW9uIGlzIHRydWUgb25seSBpbiBkZXZlbG9wbWVudC5cbiAgICAvLyBUaGVyZWZvcmUgaWYgdGhlIGJyYW5jaCBpcyBzdGlsbCBoZXJlLCBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2Fzbid0XG4gICAgLy8gcHJvcGVybHkgYXBwbGllZC5cbiAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIG1lc3NhZ2UuIFJlYWN0IERldlRvb2xzIHJlbGllcyBvbiBpdC4gQWxzbyBtYWtlIHN1cmVcbiAgICAvLyB0aGlzIG1lc3NhZ2UgZG9lc24ndCBvY2N1ciBlbHNld2hlcmUgaW4gdGhpcyBmdW5jdGlvbiwgb3IgaXQgd2lsbCBjYXVzZVxuICAgIC8vIGEgZmFsc2UgcG9zaXRpdmUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdeX14nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb2RlIGFib3ZlIGhhcyBiZWVuIGRlYWQgY29kZSBlbGltaW5hdGVkIChEQ0UnZCkuXG4gICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gRGV2VG9vbHMgc2hvdWxkbid0IGNyYXNoIFJlYWN0LCBubyBtYXR0ZXIgd2hhdC5cbiAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVwb3J0IGluIGNhc2Ugd2UgYnJlYWsgdGhpcyBjb2RlLlxuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAvLyBEQ0UgY2hlY2sgc2hvdWxkIGhhcHBlbiBiZWZvcmUgUmVhY3RET00gYnVuZGxlIGV4ZWN1dGVzIHNvIHRoYXRcbiAgLy8gRGV2VG9vbHMgY2FuIHJlcG9ydCBiYWQgbWluaWZpY2F0aW9uIGR1cmluZyBpbmplY3Rpb24uXG4gIGNoZWNrRENFKCk7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEN1c3RvbSBwb3NpdGlvbmluZyByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy92aXJ0dWFsLWVsZW1lbnRzXG4gKi9cblxuY29uc3Qgc2lkZXMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddO1xuY29uc3QgYWxpZ25tZW50cyA9IFsnc3RhcnQnLCAnZW5kJ107XG5jb25zdCBwbGFjZW1lbnRzID0gLyojX19QVVJFX18qL3NpZGVzLnJlZHVjZSgoYWNjLCBzaWRlKSA9PiBhY2MuY29uY2F0KHNpZGUsIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMF0sIHNpZGUgKyBcIi1cIiArIGFsaWdubWVudHNbMV0pLCBbXSk7XG5jb25zdCBtaW4gPSBNYXRoLm1pbjtcbmNvbnN0IG1heCA9IE1hdGgubWF4O1xuY29uc3Qgcm91bmQgPSBNYXRoLnJvdW5kO1xuY29uc3QgZmxvb3IgPSBNYXRoLmZsb29yO1xuY29uc3QgY3JlYXRlQ29vcmRzID0gdiA9PiAoe1xuICB4OiB2LFxuICB5OiB2XG59KTtcbmNvbnN0IG9wcG9zaXRlU2lkZU1hcCA9IHtcbiAgbGVmdDogJ3JpZ2h0JyxcbiAgcmlnaHQ6ICdsZWZ0JyxcbiAgYm90dG9tOiAndG9wJyxcbiAgdG9wOiAnYm90dG9tJ1xufTtcbmNvbnN0IG9wcG9zaXRlQWxpZ25tZW50TWFwID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmZ1bmN0aW9uIGNsYW1wKHN0YXJ0LCB2YWx1ZSwgZW5kKSB7XG4gIHJldHVybiBtYXgoc3RhcnQsIG1pbih2YWx1ZSwgZW5kKSk7XG59XG5mdW5jdGlvbiBldmFsdWF0ZSh2YWx1ZSwgcGFyYW0pIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlKHBhcmFtKSA6IHZhbHVlO1xufVxuZnVuY3Rpb24gZ2V0U2lkZShwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUF4aXMoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3gnID8gJ3knIDogJ3gnO1xufVxuZnVuY3Rpb24gZ2V0QXhpc0xlbmd0aChheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG59XG5mdW5jdGlvbiBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIFsndG9wJywgJ2JvdHRvbSddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSkgPyAneScgOiAneCc7XG59XG5mdW5jdGlvbiBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCkge1xuICByZXR1cm4gZ2V0T3Bwb3NpdGVBeGlzKGdldFNpZGVBeGlzKHBsYWNlbWVudCkpO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50U2lkZXMocGxhY2VtZW50LCByZWN0cywgcnRsKSB7XG4gIGlmIChydGwgPT09IHZvaWQgMCkge1xuICAgIHJ0bCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBjb25zdCBhbGlnbm1lbnRBeGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICBjb25zdCBsZW5ndGggPSBnZXRBeGlzTGVuZ3RoKGFsaWdubWVudEF4aXMpO1xuICBsZXQgbWFpbkFsaWdubWVudFNpZGUgPSBhbGlnbm1lbnRBeGlzID09PSAneCcgPyBhbGlnbm1lbnQgPT09IChydGwgPyAnZW5kJyA6ICdzdGFydCcpID8gJ3JpZ2h0JyA6ICdsZWZ0JyA6IGFsaWdubWVudCA9PT0gJ3N0YXJ0JyA/ICdib3R0b20nIDogJ3RvcCc7XG4gIGlmIChyZWN0cy5yZWZlcmVuY2VbbGVuZ3RoXSA+IHJlY3RzLmZsb2F0aW5nW2xlbmd0aF0pIHtcbiAgICBtYWluQWxpZ25tZW50U2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5BbGlnbm1lbnRTaWRlKTtcbiAgfVxuICByZXR1cm4gW21haW5BbGlnbm1lbnRTaWRlLCBnZXRPcHBvc2l0ZVBsYWNlbWVudChtYWluQWxpZ25tZW50U2lkZSldO1xufVxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBjb25zdCBvcHBvc2l0ZVBsYWNlbWVudCA9IGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHJldHVybiBbZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSwgb3Bwb3NpdGVQbGFjZW1lbnQsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KG9wcG9zaXRlUGxhY2VtZW50KV07XG59XG5mdW5jdGlvbiBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9zdGFydHxlbmQvZywgYWxpZ25tZW50ID0+IG9wcG9zaXRlQWxpZ25tZW50TWFwW2FsaWdubWVudF0pO1xufVxuZnVuY3Rpb24gZ2V0U2lkZUxpc3Qoc2lkZSwgaXNTdGFydCwgcnRsKSB7XG4gIGNvbnN0IGxyID0gWydsZWZ0JywgJ3JpZ2h0J107XG4gIGNvbnN0IHJsID0gWydyaWdodCcsICdsZWZ0J107XG4gIGNvbnN0IHRiID0gWyd0b3AnLCAnYm90dG9tJ107XG4gIGNvbnN0IGJ0ID0gWydib3R0b20nLCAndG9wJ107XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGlmIChydGwpIHJldHVybiBpc1N0YXJ0ID8gcmwgOiBscjtcbiAgICAgIHJldHVybiBpc1N0YXJ0ID8gbHIgOiBybDtcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gaXNTdGFydCA/IHRiIDogYnQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBbXTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cyhwbGFjZW1lbnQsIGZsaXBBbGlnbm1lbnQsIGRpcmVjdGlvbiwgcnRsKSB7XG4gIGNvbnN0IGFsaWdubWVudCA9IGdldEFsaWdubWVudChwbGFjZW1lbnQpO1xuICBsZXQgbGlzdCA9IGdldFNpZGVMaXN0KGdldFNpZGUocGxhY2VtZW50KSwgZGlyZWN0aW9uID09PSAnc3RhcnQnLCBydGwpO1xuICBpZiAoYWxpZ25tZW50KSB7XG4gICAgbGlzdCA9IGxpc3QubWFwKHNpZGUgPT4gc2lkZSArIFwiLVwiICsgYWxpZ25tZW50KTtcbiAgICBpZiAoZmxpcEFsaWdubWVudCkge1xuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KGxpc3QubWFwKGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsaXN0O1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csIHNpZGUgPT4gb3Bwb3NpdGVTaWRlTWFwW3NpZGVdKTtcbn1cbmZ1bmN0aW9uIGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykge1xuICByZXR1cm4ge1xuICAgIHRvcDogMCxcbiAgICByaWdodDogMCxcbiAgICBib3R0b206IDAsXG4gICAgbGVmdDogMCxcbiAgICAuLi5wYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IGV4cGFuZFBhZGRpbmdPYmplY3QocGFkZGluZykgOiB7XG4gICAgdG9wOiBwYWRkaW5nLFxuICAgIHJpZ2h0OiBwYWRkaW5nLFxuICAgIGJvdHRvbTogcGFkZGluZyxcbiAgICBsZWZ0OiBwYWRkaW5nXG4gIH07XG59XG5mdW5jdGlvbiByZWN0VG9DbGllbnRSZWN0KHJlY3QpIHtcbiAgY29uc3Qge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSA9IHJlY3Q7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHRvcDogeSxcbiAgICBsZWZ0OiB4LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5leHBvcnQgeyBhbGlnbm1lbnRzLCBjbGFtcCwgY3JlYXRlQ29vcmRzLCBldmFsdWF0ZSwgZXhwYW5kUGFkZGluZ09iamVjdCwgZmxvb3IsIGdldEFsaWdubWVudCwgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldEF4aXNMZW5ndGgsIGdldEV4cGFuZGVkUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQsIGdldE9wcG9zaXRlQXhpcywgZ2V0T3Bwb3NpdGVBeGlzUGxhY2VtZW50cywgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQsIGdldFBhZGRpbmdPYmplY3QsIGdldFNpZGUsIGdldFNpZGVBeGlzLCBtYXgsIG1pbiwgcGxhY2VtZW50cywgcmVjdFRvQ2xpZW50UmVjdCwgcm91bmQsIHNpZGVzIH07XG4iLCJpbXBvcnQgeyBnZXRTaWRlQXhpcywgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QXhpc0xlbmd0aCwgZ2V0U2lkZSwgZ2V0QWxpZ25tZW50LCBldmFsdWF0ZSwgZ2V0UGFkZGluZ09iamVjdCwgcmVjdFRvQ2xpZW50UmVjdCwgbWluLCBjbGFtcCwgcGxhY2VtZW50cywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBzaWRlcywgbWF4LCBnZXRPcHBvc2l0ZUF4aXMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuZXhwb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWduTGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IHNpZGVBeGlzID09PSAneSc7XG4gIGNvbnN0IGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBmbG9hdGluZy53aWR0aCAvIDI7XG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbYWxpZ25MZW5ndGhdIC8gMiAtIGZsb2F0aW5nW2FsaWduTGVuZ3RoXSAvIDI7XG4gIGxldCBjb29yZHM7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZmxvYXRpbmcuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSBnaXZlbiByZWZlcmVuY2UgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSBhc3luYyAocmVmZXJlbmNlLCBmbG9hdGluZywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IHZhbGlkTWlkZGxld2FyZSA9IG1pZGRsZXdhcmUuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XG4gIGxldCByZWN0cyA9IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIHN0cmF0ZWd5XG4gIH0pO1xuICBsZXQge1xuICAgIHgsXG4gICAgeVxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcbiAgbGV0IHN0YXRlZnVsUGxhY2VtZW50ID0gcGxhY2VtZW50O1xuICBsZXQgbWlkZGxld2FyZURhdGEgPSB7fTtcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbGlkTWlkZGxld2FyZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBmblxuICAgIH0gPSB2YWxpZE1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcbiAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLFxuICAgICAgW25hbWVdOiB7XG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxuICAgICAgICAuLi5kYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAocmVzZXQgJiYgcmVzZXRDb3VudCA8PSA1MCkge1xuICAgICAgcmVzZXRDb3VudCsrO1xuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNldC5yZWN0cykge1xuICAgICAgICAgIHJlY3RzID0gcmVzZXQucmVjdHMgPT09IHRydWUgPyBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgZmxvYXRpbmcsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XG4gICAgICAgIH1cbiAgICAgICAgKHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHlcbiAgICAgICAgfSA9IGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KHJlY3RzLCBzdGF0ZWZ1bFBsYWNlbWVudCwgcnRsKSk7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgc3RyYXRlZ3ksXG4gICAgbWlkZGxld2FyZURhdGFcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhdGZvcm0sXG4gICAgcmVjdHMsXG4gICAgZWxlbWVudHMsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IHN0YXRlO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCByZWN0ID0gZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0cy5mbG9hdGluZy53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxuICB9IDogcmVjdHMucmVmZXJlbmNlO1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH0gOiB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCA/IGF3YWl0IHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9KSA6IHJlY3QpO1xuICByZXR1cm4ge1xuICAgIHRvcDogKGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGxlZnQ6IChjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQpIC8gb2Zmc2V0U2NhbGUueCxcbiAgICByaWdodDogKGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCkgLyBvZmZzZXRTY2FsZS54XG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gb3B0aW9ucyA9PiAoe1xuICBuYW1lOiAnYXJyb3cnLFxuICBvcHRpb25zLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbWlkZGxld2FyZURhdGFcbiAgICB9ID0gc3RhdGU7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZGRpbmcgPSAwXG4gICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKSB8fCB7fTtcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgIHgsXG4gICAgICB5XG4gICAgfTtcbiAgICBjb25zdCBheGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYXhpcyk7XG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcbiAgICBjb25zdCBpc1lBeGlzID0gYXhpcyA9PT0gJ3knO1xuICAgIGNvbnN0IG1pblByb3AgPSBpc1lBeGlzID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgY2xpZW50UHJvcCA9IGlzWUF4aXMgPyAnY2xpZW50SGVpZ2h0JyA6ICdjbGllbnRXaWR0aCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBhcnJvd09mZnNldFBhcmVudFtjbGllbnRQcm9wXSA6IDA7XG5cbiAgICAvLyBET00gcGxhdGZvcm0gY2FuIHJldHVybiBgd2luZG93YCBhcyB0aGUgYG9mZnNldFBhcmVudGAuXG4gICAgaWYgKCFjbGllbnRTaXplIHx8ICEoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGFycm93T2Zmc2V0UGFyZW50KSkpKSB7XG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7XG5cbiAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBsYXJnZSBlbm91Z2ggdGhhdCBpdCBjYXVzZXMgdGhlIGFycm93IHRvIG5vIGxvbmdlciBiZVxuICAgIC8vIGNlbnRlcmVkLCBtb2RpZnkgdGhlIHBhZGRpbmcgc28gdGhhdCBpdCBpcyBjZW50ZXJlZC5cbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xuICAgIGNvbnN0IG1pblBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttaW5Qcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XG4gICAgY29uc3QgbWF4UGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21heFByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpZiB0aGUgY2VudGVyXG4gICAgLy8gcG9pbnQgaXMgb3V0c2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCdzIGJvdW5kcy5cbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gbWF4UGFkZGluZztcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XG5cbiAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBhcnJvdydzIHBhZGRpbmcgY2F1c2VzIGl0IHRvXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgaXRzZWxmLiBUbyBlbnN1cmUgYHNoaWZ0KClgIGNvbnRpbnVlcyB0byB0YWtlIGFjdGlvbixcbiAgICAvLyBhIHNpbmdsZSByZXNldCBpcyBwZXJmb3JtZWQgd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcbiAgICBjb25zdCBhbGlnbm1lbnRPZmZzZXQgPSBzaG91bGRBZGRPZmZzZXQgPyBjZW50ZXIgPCBtaW4kMSA/IGNlbnRlciAtIG1pbiQxIDogY2VudGVyIC0gbWF4IDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtheGlzXTogb2Zmc2V0LFxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcbiAgICAgICAgLi4uKHNob3VsZEFkZE9mZnNldCAmJiB7XG4gICAgICAgICAgYWxpZ25tZW50T2Zmc2V0XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgcmVzZXQ6IHNob3VsZEFkZE9mZnNldFxuICAgIH07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRMaXN0KGFsaWdubWVudCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIHtcbiAgY29uc3QgYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudCA9IGFsaWdubWVudCA/IFsuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQpLCAuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9PSBhbGlnbm1lbnQpXSA6IGFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0U2lkZShwbGFjZW1lbnQpID09PSBwbGFjZW1lbnQpO1xuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCB8fCAoYXV0b0FsaWdubWVudCA/IGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkgIT09IHBsYWNlbWVudCA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMsXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICgoX21pZGRsZXdhcmVEYXRhJGF1dG9QID0gbWlkZGxld2FyZURhdGEuYXV0b1BsYWNlbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRhdXRvUC5pbmRleCkgfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgYWxpZ25tZW50U2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhjdXJyZW50UGxhY2VtZW50LCByZWN0cywgYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKTtcblxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgICBpZiAocGxhY2VtZW50ICE9PSBjdXJyZW50UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50cyQxWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMF1dLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1sxXV1dO1xuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xuICAgICAgICBwbGFjZW1lbnQ6IGN1cnJlbnRQbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93czogY3VycmVudE92ZXJmbG93c1xuICAgICAgfV07XG4gICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50cyQxW2N1cnJlbnRJbmRleCArIDFdO1xuXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxuICAgICAgaWYgKG5leHRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4ICsgMSxcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KGQucGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIFtkLnBsYWNlbWVudCwgYWxpZ25tZW50ICYmIGNyb3NzQXhpcyA/XG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgZC5vdmVyZmxvd3Muc2xpY2UoMCwgMikucmVkdWNlKChhY2MsIHYpID0+IGFjYyArIHYsIDApIDpcbiAgICAgICAgLy8gQ2hlY2sgb25seSB0aGUgbWFpbkF4aXMuXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XG4gICAgICB9KS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGUgPSBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UuZmlsdGVyKGQgPT4gZFsyXS5zbGljZSgwLFxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXG4gICAgICAvLyBzaWRlLlxuICAgICAgZ2V0QWxpZ25tZW50KGRbMF0pID8gMiA6IDMpLmV2ZXJ5KHYgPT4gdiA8PSAwKSk7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XG4gICAgICBpZiAocmVzZXRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmbGlwJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGFycm93LCBfbWlkZGxld2FyZURhdGEkZmxpcDtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxuICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneSA9ICdiZXN0Rml0JyxcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcbiAgICAgICAgZmxpcEFsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcblxuICAgICAgLy8gSWYgYSByZXNldCBieSB0aGUgYXJyb3cgd2FzIGNhdXNlZCBkdWUgdG8gYW4gYWxpZ25tZW50IG9mZnNldCBiZWluZ1xuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcbiAgICAgIC8vIHdvcmsuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI1NDkjaXNzdWVjb21tZW50LTE3MTk2MDE2NDNcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaW5pdGlhbFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoaW5pdGlhbFBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBnZXRTaWRlKGluaXRpYWxQbGFjZW1lbnQpID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gPSBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uICE9PSAnbm9uZSc7XG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50cy5wdXNoKC4uLmdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiwgcnRsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dzID0gW107XG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCk7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcbiAgICAgIH1cbiAgICAgIG92ZXJmbG93c0RhdGEgPSBbLi4ub3ZlcmZsb3dzRGF0YSwge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93c1xuICAgICAgfV07XG5cbiAgICAgIC8vIE9uZSBvciBtb3JlIHNpZGVzIGlzIG92ZXJmbG93aW5nLlxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKCgoX21pZGRsZXdhcmVEYXRhJGZsaXAyID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwMi5pbmRleCkgfHwgMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICAgIC8vIFRyeSBuZXh0IHBsYWNlbWVudCBhbmQgcmUtcnVuIHRoZSBsaWZlY3ljbGUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dzOiBvdmVyZmxvd3NEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0LCBmaW5kIHRoZSBjYW5kaWRhdGVzIHRoYXQgZml0IG9uIHRoZSBtYWluQXhpcyBzaWRlIG9mIG92ZXJmbG93LFxuICAgICAgICAvLyB0aGVuIGZpbmQgdGhlIHBsYWNlbWVudCB0aGF0IGZpdHMgdGhlIGJlc3Qgb24gdGhlIG1haW4gY3Jvc3NBeGlzIHNpZGUuXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcblxuICAgICAgICAvLyBPdGhlcndpc2UgZmFsbGJhY2suXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlc3RGaXQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjI7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlcjIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlQXhpcyA9IGdldFNpZGVBeGlzKGQucGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTaWRlQXhpcyA9PT0gaW5pdGlhbFNpZGVBeGlzIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZyBkaXJlY3Rpb25zIGZhdm9yaW5nIGdyZWF0ZXIgd2lkdGguXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTaWRlQXhpcyA9PT0gJ3knO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSkubWFwKGQgPT4gW2QucGxhY2VtZW50LCBkLm92ZXJmbG93cy5maWx0ZXIob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPiAwKS5yZWR1Y2UoKGFjYywgb3ZlcmZsb3cpID0+IGFjYyArIG92ZXJmbG93LCAwKV0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vdmVyZmxvd3NEYXRhJGZpbHRlcjJbMF07XG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsUGxhY2VtZW50JzpcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudCAhPT0gcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQsXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoXG4gIH07XG59XG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIHNpZGVzLnNvbWUoc2lkZSA9PiBvdmVyZmxvd1tzaWRlXSA+PSAwKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlY3RzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAncmVmZXJlbmNlSGlkZGVuJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgZXNjYXBlZDogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdSZWN0KHJlY3RzKSB7XG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gIGNvbnN0IG1pblkgPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC50b3ApKTtcbiAgY29uc3QgbWF4WCA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcbiAgcmV0dXJuIHtcbiAgICB4OiBtaW5YLFxuICAgIHk6IG1pblksXG4gICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgIGhlaWdodDogbWF4WSAtIG1pbllcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFJlY3RzQnlMaW5lKHJlY3RzKSB7XG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xuICBjb25zdCBncm91cHMgPSBbXTtcbiAgbGV0IHByZXZSZWN0ID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJlY3QgPSBzb3J0ZWRSZWN0c1tpXTtcbiAgICBpZiAoIXByZXZSZWN0IHx8IHJlY3QueSAtIHByZXZSZWN0LnkgPiBwcmV2UmVjdC5oZWlnaHQgLyAyKSB7XG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cHNbZ3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gocmVjdCk7XG4gICAgfVxuICAgIHByZXZSZWN0ID0gcmVjdDtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XG59XG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2lubGluZScsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIGVsZW1lbnRzLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFkZGluZyA9IDIsXG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gZ2V0UmVjdHNCeUxpbmUobmF0aXZlQ2xpZW50UmVjdHMpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSByZWN0VG9DbGllbnRSZWN0KGdldEJvdW5kaW5nUmVjdChuYXRpdmVDbGllbnRSZWN0cykpO1xuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgICBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcmVjdHMgYW5kIHRoZXkgYXJlIGRpc2pvaW5lZC5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHJlY3QgaW4gd2hpY2ggdGhlIHBvaW50IGlzIGZ1bGx5IGluc2lkZS5cbiAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSB8fCBmYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZXJlIGFyZSAyIG9yIG1vcmUgY29ubmVjdGVkIHJlY3RzLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICBpZiAoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXNMZWZ0U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ2xlZnQnO1xuICAgICAgICAgIGNvbnN0IG1heFJpZ2h0ID0gbWF4KC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xuICAgICAgICAgIGNvbnN0IG1lYXN1cmVSZWN0cyA9IGNsaWVudFJlY3RzLmZpbHRlcihyZWN0ID0+IGlzTGVmdFNpZGUgPyByZWN0LmxlZnQgPT09IG1pbkxlZnQgOiByZWN0LnJpZ2h0ID09PSBtYXhSaWdodCk7XG4gICAgICAgICAgY29uc3QgdG9wID0gbWVhc3VyZVJlY3RzWzBdLnRvcDtcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gbWluTGVmdDtcbiAgICAgICAgICBjb25zdCByaWdodCA9IG1heFJpZ2h0O1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB4OiBsZWZ0LFxuICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlY3RzLnJlZmVyZW5jZS54ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS54IHx8IHJlY3RzLnJlZmVyZW5jZS55ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS55IHx8IHJlY3RzLnJlZmVyZW5jZS53aWR0aCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2Uud2lkdGggfHwgcmVjdHMucmVmZXJlbmNlLmhlaWdodCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2UuaGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHJlY3RzOiByZXNldFJlY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIEZvciB0eXBlIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LCB0aGUgYE9mZnNldE9wdGlvbnNgIHR5cGUgd2FzIGFsc29cbi8vIERlcml2YWJsZS5cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50c1xuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGlzVmVydGljYWwgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gIGNvbnN0IG1haW5BeGlzTXVsdGkgPSBbJ2xlZnQnLCAndG9wJ10uaW5jbHVkZXMoc2lkZSkgPyAtMSA6IDE7XG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XG4gIGNvbnN0IHJhd1ZhbHVlID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogMCxcbiAgICBjcm9zc0F4aXM6IDAsXG4gICAgYWxpZ25tZW50QXhpczogbnVsbCxcbiAgICAuLi5yYXdWYWx1ZVxuICB9O1xuICBpZiAoYWxpZ25tZW50ICYmIHR5cGVvZiBhbGlnbm1lbnRBeGlzID09PSAnbnVtYmVyJykge1xuICAgIGNyb3NzQXhpcyA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyBhbGlnbm1lbnRBeGlzICogLTEgOiBhbGlnbm1lbnRBeGlzO1xuICB9XG4gIHJldHVybiBpc1ZlcnRpY2FsID8ge1xuICAgIHg6IGNyb3NzQXhpcyAqIGNyb3NzQXhpc011bHRpLFxuICAgIHk6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aVxuICB9IDoge1xuICAgIHg6IG1haW5BeGlzICogbWFpbkF4aXNNdWx0aSxcbiAgICB5OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aVxuICB9O1xufVxuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwbGFjZW1lbnQgYnkgdHJhbnNsYXRpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYWxvbmcgdGhlXG4gKiBzcGVjaWZpZWQgYXhlcy5cbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cbiAqIG9iamVjdCBtYXkgYmUgcGFzc2VkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5jb25zdCBvZmZzZXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IDA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnb2Zmc2V0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJG9mZnNlLCBfbWlkZGxld2FyZURhdGEkYXJyb3c7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IGRpZmZDb29yZHMgPSBhd2FpdCBjb252ZXJ0VmFsdWVUb0Nvb3JkcyhzdGF0ZSwgb3B0aW9ucyk7XG5cbiAgICAgIC8vIElmIHRoZSBwbGFjZW1lbnQgaXMgdGhlIHNhbWUgYW5kIHRoZSBhcnJvdyBjYXVzZWQgYW4gYWxpZ25tZW50IG9mZnNldFxuICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgcG9zaXRpb25pbmcgY29vcmRpbmF0ZXMuXG4gICAgICBpZiAocGxhY2VtZW50ID09PSAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZS5wbGFjZW1lbnQpICYmIChfbWlkZGxld2FyZURhdGEkYXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdykgIT0gbnVsbCAmJiBfbWlkZGxld2FyZURhdGEkYXJyb3cuYWxpZ25tZW50T2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHggKyBkaWZmQ29vcmRzLngsXG4gICAgICAgIHk6IHkgKyBkaWZmQ29vcmRzLnksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5kaWZmQ29vcmRzLFxuICAgICAgICAgIHBsYWNlbWVudFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXG4gKiBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93IHRoZSBjbGlwcGluZyBib3VuZGFyeS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxuICovXG5jb25zdCBzaGlmdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnc2hpZnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1haW5BeGlzOiBjaGVja01haW5BeGlzID0gdHJ1ZSxcbiAgICAgICAgY3Jvc3NBeGlzOiBjaGVja0Nyb3NzQXhpcyA9IGZhbHNlLFxuICAgICAgICBsaW1pdGVyID0ge1xuICAgICAgICAgIGZuOiBfcmVmID0+IHtcbiAgICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH0gPSBfcmVmO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBjcm9zc0F4aXMgPSBnZXRTaWRlQXhpcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgY29uc3QgbWFpbkF4aXMgPSBnZXRPcHBvc2l0ZUF4aXMoY3Jvc3NBeGlzKTtcbiAgICAgIGxldCBtYWluQXhpc0Nvb3JkID0gY29vcmRzW21haW5BeGlzXTtcbiAgICAgIGxldCBjcm9zc0F4aXNDb29yZCA9IGNvb3Jkc1tjcm9zc0F4aXNdO1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbWluU2lkZSA9IG1haW5BeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IG1haW5BeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IG1haW5BeGlzQ29vcmQgKyBvdmVyZmxvd1ttaW5TaWRlXTtcbiAgICAgICAgY29uc3QgbWF4ID0gbWFpbkF4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBtYWluQXhpc0Nvb3JkID0gY2xhbXAobWluLCBtYWluQXhpc0Nvb3JkLCBtYXgpO1xuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBjcm9zc0F4aXMgPT09ICd5JyA/ICd0b3AnIDogJ2xlZnQnO1xuICAgICAgICBjb25zdCBtYXhTaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgICAgIGNvbnN0IG1pbiA9IGNyb3NzQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IGNyb3NzQXhpc0Nvb3JkIC0gb3ZlcmZsb3dbbWF4U2lkZV07XG4gICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gY2xhbXAobWluLCBjcm9zc0F4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbWl0ZWRDb29yZHMgPSBsaW1pdGVyLmZuKHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5saW1pdGVkQ29vcmRzLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgeDogbGltaXRlZENvb3Jkcy54IC0geCxcbiAgICAgICAgICB5OiBsaW1pdGVkQ29vcmRzLnkgLSB5XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3QgY29vcmRzID0ge1xuICAgICAgICB4LFxuICAgICAgICB5XG4gICAgICB9O1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGNvbnN0IHJhd09mZnNldCA9IGV2YWx1YXRlKG9mZnNldCwgc3RhdGUpO1xuICAgICAgY29uc3QgY29tcHV0ZWRPZmZzZXQgPSB0eXBlb2YgcmF3T2Zmc2V0ID09PSAnbnVtYmVyJyA/IHtcbiAgICAgICAgbWFpbkF4aXM6IHJhd09mZnNldCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwXG4gICAgICB9IDoge1xuICAgICAgICBtYWluQXhpczogMCxcbiAgICAgICAgY3Jvc3NBeGlzOiAwLFxuICAgICAgICAuLi5yYXdPZmZzZXRcbiAgICAgIH07XG4gICAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgICBjb25zdCBsZW4gPSBtYWluQXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW21haW5BeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dIC0gY29tcHV0ZWRPZmZzZXQubWFpbkF4aXM7XG4gICAgICAgIGlmIChtYWluQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBtYWluQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAobWFpbkF4aXNDb29yZCA+IGxpbWl0TWF4KSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tDcm9zc0F4aXMpIHtcbiAgICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJG9mZnNlMjtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgY29uc3QgaXNPcmlnaW5TaWRlID0gWyd0b3AnLCAnbGVmdCddLmluY2x1ZGVzKGdldFNpZGUocGxhY2VtZW50KSk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWluID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gLSByZWN0cy5mbG9hdGluZ1tsZW5dICsgKGlzT3JpZ2luU2lkZSA/ICgoX21pZGRsZXdhcmVEYXRhJG9mZnNlID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlW2Nyb3NzQXhpc10pIHx8IDAgOiAwKSArIChpc09yaWdpblNpZGUgPyAwIDogY29tcHV0ZWRPZmZzZXQuY3Jvc3NBeGlzKTtcbiAgICAgICAgY29uc3QgbGltaXRNYXggPSByZWN0cy5yZWZlcmVuY2VbY3Jvc3NBeGlzXSArIHJlY3RzLnJlZmVyZW5jZVtsZW5dICsgKGlzT3JpZ2luU2lkZSA/IDAgOiAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZTIgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UyW2Nyb3NzQXhpc10pIHx8IDApIC0gKGlzT3JpZ2luU2lkZSA/IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyA6IDApO1xuICAgICAgICBpZiAoY3Jvc3NBeGlzQ29vcmQgPCBsaW1pdE1pbikge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNaW47XG4gICAgICAgIH0gZWxzZSBpZiAoY3Jvc3NBeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIGNyb3NzQXhpc0Nvb3JkID0gbGltaXRNYXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFttYWluQXhpc106IG1haW5BeGlzQ29vcmQsXG4gICAgICAgIFtjcm9zc0F4aXNdOiBjcm9zc0F4aXNDb29yZFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcbiAqIGZvciBpbnN0YW5jZSwgcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGVcbiAqIHdpZHRoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NpemUnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIGVsZW1lbnRzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFwcGx5ID0gKCkgPT4ge30sXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc1lBeGlzID0gZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knO1xuICAgICAgY29uc3Qge1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgICB9ID0gcmVjdHMuZmxvYXRpbmc7XG4gICAgICBsZXQgaGVpZ2h0U2lkZTtcbiAgICAgIGxldCB3aWR0aFNpZGU7XG4gICAgICBpZiAoc2lkZSA9PT0gJ3RvcCcgfHwgc2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgaGVpZ2h0U2lkZSA9IHNpZGU7XG4gICAgICAgIHdpZHRoU2lkZSA9IGFsaWdubWVudCA9PT0gKChhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGVsZW1lbnRzLmZsb2F0aW5nKSkpID8gJ3N0YXJ0JyA6ICdlbmQnKSA/ICdsZWZ0JyA6ICdyaWdodCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aWR0aFNpZGUgPSBzaWRlO1xuICAgICAgICBoZWlnaHRTaWRlID0gYWxpZ25tZW50ID09PSAnZW5kJyA/ICd0b3AnIDogJ2JvdHRvbSc7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQgPSBoZWlnaHQgLSBvdmVyZmxvdy50b3AgLSBvdmVyZmxvdy5ib3R0b207XG4gICAgICBjb25zdCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCA9IHdpZHRoIC0gb3ZlcmZsb3cubGVmdCAtIG92ZXJmbG93LnJpZ2h0O1xuICAgICAgY29uc3Qgb3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQgPSBtaW4oaGVpZ2h0IC0gb3ZlcmZsb3dbaGVpZ2h0U2lkZV0sIG1heGltdW1DbGlwcGluZ0hlaWdodCk7XG4gICAgICBjb25zdCBvdmVyZmxvd0F2YWlsYWJsZVdpZHRoID0gbWluKHdpZHRoIC0gb3ZlcmZsb3dbd2lkdGhTaWRlXSwgbWF4aW11bUNsaXBwaW5nV2lkdGgpO1xuICAgICAgY29uc3Qgbm9TaGlmdCA9ICFzdGF0ZS5taWRkbGV3YXJlRGF0YS5zaGlmdDtcbiAgICAgIGxldCBhdmFpbGFibGVIZWlnaHQgPSBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodDtcbiAgICAgIGxldCBhdmFpbGFibGVXaWR0aCA9IG92ZXJmbG93QXZhaWxhYmxlV2lkdGg7XG4gICAgICBpZiAoaXNZQXhpcykge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCA9IGFsaWdubWVudCB8fCBub1NoaWZ0ID8gbWluKG92ZXJmbG93QXZhaWxhYmxlV2lkdGgsIG1heGltdW1DbGlwcGluZ1dpZHRoKSA6IG1heGltdW1DbGlwcGluZ1dpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gYWxpZ25tZW50IHx8IG5vU2hpZnQgPyBtaW4ob3ZlcmZsb3dBdmFpbGFibGVIZWlnaHQsIG1heGltdW1DbGlwcGluZ0hlaWdodCkgOiBtYXhpbXVtQ2xpcHBpbmdIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAobm9TaGlmdCAmJiAhYWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnN0IHhNaW4gPSBtYXgob3ZlcmZsb3cubGVmdCwgMCk7XG4gICAgICAgIGNvbnN0IHhNYXggPSBtYXgob3ZlcmZsb3cucmlnaHQsIDApO1xuICAgICAgICBjb25zdCB5TWluID0gbWF4KG92ZXJmbG93LnRvcCwgMCk7XG4gICAgICAgIGNvbnN0IHlNYXggPSBtYXgob3ZlcmZsb3cuYm90dG9tLCAwKTtcbiAgICAgICAgaWYgKGlzWUF4aXMpIHtcbiAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9IHdpZHRoIC0gMiAqICh4TWluICE9PSAwIHx8IHhNYXggIT09IDAgPyB4TWluICsgeE1heCA6IG1heChvdmVyZmxvdy5sZWZ0LCBvdmVyZmxvdy5yaWdodCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF2YWlsYWJsZUhlaWdodCA9IGhlaWdodCAtIDIgKiAoeU1pbiAhPT0gMCB8fCB5TWF4ICE9PSAwID8geU1pbiArIHlNYXggOiBtYXgob3ZlcmZsb3cudG9wLCBvdmVyZmxvdy5ib3R0b20pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXdhaXQgYXBwbHkoe1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYXZhaWxhYmxlV2lkdGgsXG4gICAgICAgIGF2YWlsYWJsZUhlaWdodFxuICAgICAgfSk7XG4gICAgICBjb25zdCBuZXh0RGltZW5zaW9ucyA9IGF3YWl0IHBsYXRmb3JtLmdldERpbWVuc2lvbnMoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgICAgaWYgKHdpZHRoICE9PSBuZXh0RGltZW5zaW9ucy53aWR0aCB8fCBoZWlnaHQgIT09IG5leHREaW1lbnNpb25zLmhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICByZWN0czogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplIH07XG4iLCJmdW5jdGlvbiBoYXNXaW5kb3coKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbn1cbmZ1bmN0aW9uIGdldE5vZGVOYW1lKG5vZGUpIHtcbiAgaWYgKGlzTm9kZShub2RlKSkge1xuICAgIHJldHVybiAobm9kZS5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuICAvLyBNb2NrZWQgbm9kZXMgaW4gdGVzdGluZyBlbnZpcm9ubWVudHMgbWF5IG5vdCBiZSBpbnN0YW5jZXMgb2YgTm9kZS4gQnlcbiAgLy8gcmV0dXJuaW5nIGAjZG9jdW1lbnRgIGFuIGluZmluaXRlIGxvb3Agd29uJ3Qgb2NjdXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjMxN1xuICByZXR1cm4gJyNkb2N1bWVudCc7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDtcbiAgcmV0dXJuIChub2RlID09IG51bGwgfHwgKF9ub2RlJG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG59XG5mdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQobm9kZSkge1xuICB2YXIgX3JlZjtcbiAgcmV0dXJuIChfcmVmID0gKGlzTm9kZShub2RlKSA/IG5vZGUub3duZXJEb2N1bWVudCA6IG5vZGUuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZWYuZG9jdW1lbnRFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNOb2RlKHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgTm9kZSB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuTm9kZTtcbn1cbmZ1bmN0aW9uIGlzRWxlbWVudCh2YWx1ZSkge1xuICBpZiAoIWhhc1dpbmRvdygpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc0hUTUxFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLkhUTUxFbGVtZW50O1xufVxuZnVuY3Rpb24gaXNTaGFkb3dSb290KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkgfHwgdHlwZW9mIFNoYWRvd1Jvb3QgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgfHwgdmFsdWUgaW5zdGFuY2VvZiBnZXRXaW5kb3codmFsdWUpLlNoYWRvd1Jvb3Q7XG59XG5mdW5jdGlvbiBpc092ZXJmbG93RWxlbWVudChlbGVtZW50KSB7XG4gIGNvbnN0IHtcbiAgICBvdmVyZmxvdyxcbiAgICBvdmVyZmxvd1gsXG4gICAgb3ZlcmZsb3dZLFxuICAgIGRpc3BsYXlcbiAgfSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIHJldHVybiAvYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCkgJiYgIVsnaW5saW5lJywgJ2NvbnRlbnRzJ10uaW5jbHVkZXMoZGlzcGxheSk7XG59XG5mdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpO1xufVxuZnVuY3Rpb24gaXNUb3BMYXllcihlbGVtZW50KSB7XG4gIHJldHVybiBbJzpwb3BvdmVyLW9wZW4nLCAnOm1vZGFsJ10uc29tZShzZWxlY3RvciA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBlbGVtZW50Lm1hdGNoZXMoc2VsZWN0b3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gaXNDb250YWluaW5nQmxvY2soZWxlbWVudE9yQ3NzKSB7XG4gIGNvbnN0IHdlYmtpdCA9IGlzV2ViS2l0KCk7XG4gIGNvbnN0IGNzcyA9IGlzRWxlbWVudChlbGVtZW50T3JDc3MpID8gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50T3JDc3MpIDogZWxlbWVudE9yQ3NzO1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHJldHVybiBjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgKGNzcy5jb250YWluZXJUeXBlID8gY3NzLmNvbnRhaW5lclR5cGUgIT09ICdub3JtYWwnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5iYWNrZHJvcEZpbHRlciA/IGNzcy5iYWNrZHJvcEZpbHRlciAhPT0gJ25vbmUnIDogZmFsc2UpIHx8ICF3ZWJraXQgJiYgKGNzcy5maWx0ZXIgPyBjc3MuZmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnLCAnZmlsdGVyJ10uc29tZSh2YWx1ZSA9PiAoY3NzLndpbGxDaGFuZ2UgfHwgJycpLmluY2x1ZGVzKHZhbHVlKSkgfHwgWydwYWludCcsICdsYXlvdXQnLCAnc3RyaWN0JywgJ2NvbnRlbnQnXS5zb21lKHZhbHVlID0+IChjc3MuY29udGFpbiB8fCAnJykuaW5jbHVkZXModmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGlmIChpc0NvbnRhaW5pbmdCbG9jayhjdXJyZW50Tm9kZSkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2UgaWYgKGlzVG9wTGF5ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGN1cnJlbnROb2RlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzV2ViS2l0KCkge1xuICBpZiAodHlwZW9mIENTUyA9PT0gJ3VuZGVmaW5lZCcgfHwgIUNTUy5zdXBwb3J0cykgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gQ1NTLnN1cHBvcnRzKCctd2Via2l0LWJhY2tkcm9wLWZpbHRlcicsICdub25lJyk7XG59XG5mdW5jdGlvbiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUobm9kZSkge1xuICByZXR1cm4gWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5jbHVkZXMoZ2V0Tm9kZU5hbWUobm9kZSkpO1xufVxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gIHJldHVybiBnZXRXaW5kb3coZWxlbWVudCkuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmZ1bmN0aW9uIGdldE5vZGVTY3JvbGwoZWxlbWVudCkge1xuICBpZiAoaXNFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxYLFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxZXG4gIH07XG59XG5mdW5jdGlvbiBnZXRQYXJlbnROb2RlKG5vZGUpIHtcbiAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuICBjb25zdCByZXN1bHQgPVxuICAvLyBTdGVwIGludG8gdGhlIHNoYWRvdyBET00gb2YgdGhlIHBhcmVudCBvZiBhIHNsb3R0ZWQgbm9kZS5cbiAgbm9kZS5hc3NpZ25lZFNsb3QgfHxcbiAgLy8gRE9NIEVsZW1lbnQgZGV0ZWN0ZWQuXG4gIG5vZGUucGFyZW50Tm9kZSB8fFxuICAvLyBTaGFkb3dSb290IGRldGVjdGVkLlxuICBpc1NoYWRvd1Jvb3Qobm9kZSkgJiYgbm9kZS5ob3N0IHx8XG4gIC8vIEZhbGxiYWNrLlxuICBnZXREb2N1bWVudEVsZW1lbnQobm9kZSk7XG4gIHJldHVybiBpc1NoYWRvd1Jvb3QocmVzdWx0KSA/IHJlc3VsdC5ob3N0IDogcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShub2RlKTtcbiAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgPyBub2RlLm93bmVyRG9jdW1lbnQuYm9keSA6IG5vZGUuYm9keTtcbiAgfVxuICBpZiAoaXNIVE1MRWxlbWVudChwYXJlbnROb2RlKSAmJiBpc092ZXJmbG93RWxlbWVudChwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG4gIHJldHVybiBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3RvcihwYXJlbnROb2RlKTtcbn1cbmZ1bmN0aW9uIGdldE92ZXJmbG93QW5jZXN0b3JzKG5vZGUsIGxpc3QsIHRyYXZlcnNlSWZyYW1lcykge1xuICB2YXIgX25vZGUkb3duZXJEb2N1bWVudDI7XG4gIGlmIChsaXN0ID09PSB2b2lkIDApIHtcbiAgICBsaXN0ID0gW107XG4gIH1cbiAgaWYgKHRyYXZlcnNlSWZyYW1lcyA9PT0gdm9pZCAwKSB7XG4gICAgdHJhdmVyc2VJZnJhbWVzID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBzY3JvbGxhYmxlQW5jZXN0b3IgPSBnZXROZWFyZXN0T3ZlcmZsb3dBbmNlc3Rvcihub2RlKTtcbiAgY29uc3QgaXNCb2R5ID0gc2Nyb2xsYWJsZUFuY2VzdG9yID09PSAoKF9ub2RlJG93bmVyRG9jdW1lbnQyID0gbm9kZS5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkb3duZXJEb2N1bWVudDIuYm9keSk7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhzY3JvbGxhYmxlQW5jZXN0b3IpO1xuICBpZiAoaXNCb2R5KSB7XG4gICAgY29uc3QgZnJhbWVFbGVtZW50ID0gZ2V0RnJhbWVFbGVtZW50KHdpbik7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KHdpbiwgd2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc092ZXJmbG93RWxlbWVudChzY3JvbGxhYmxlQW5jZXN0b3IpID8gc2Nyb2xsYWJsZUFuY2VzdG9yIDogW10sIGZyYW1lRWxlbWVudCAmJiB0cmF2ZXJzZUlmcmFtZXMgPyBnZXRPdmVyZmxvd0FuY2VzdG9ycyhmcmFtZUVsZW1lbnQpIDogW10pO1xuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChzY3JvbGxhYmxlQW5jZXN0b3IsIGdldE92ZXJmbG93QW5jZXN0b3JzKHNjcm9sbGFibGVBbmNlc3RvciwgW10sIHRyYXZlcnNlSWZyYW1lcykpO1xufVxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KHdpbikge1xuICByZXR1cm4gd2luLnBhcmVudCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yod2luLnBhcmVudCkgPyB3aW4uZnJhbWVFbGVtZW50IDogbnVsbDtcbn1cblxuZXhwb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgZ2V0Q29udGFpbmluZ0Jsb2NrLCBnZXREb2N1bWVudEVsZW1lbnQsIGdldEZyYW1lRWxlbWVudCwgZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IsIGdldE5vZGVOYW1lLCBnZXROb2RlU2Nyb2xsLCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgZ2V0V2luZG93LCBpc0NvbnRhaW5pbmdCbG9jaywgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGlzTm9kZSwgaXNPdmVyZmxvd0VsZW1lbnQsIGlzU2hhZG93Um9vdCwgaXNUYWJsZUVsZW1lbnQsIGlzVG9wTGF5ZXIsIGlzV2ViS2l0IH07XG4iLCJpbXBvcnQgeyByZWN0VG9DbGllbnRSZWN0LCBkZXRlY3RPdmVyZmxvdyBhcyBkZXRlY3RPdmVyZmxvdyQxLCBvZmZzZXQgYXMgb2Zmc2V0JDEsIGF1dG9QbGFjZW1lbnQgYXMgYXV0b1BsYWNlbWVudCQxLCBzaGlmdCBhcyBzaGlmdCQxLCBmbGlwIGFzIGZsaXAkMSwgc2l6ZSBhcyBzaXplJDEsIGhpZGUgYXMgaGlkZSQxLCBhcnJvdyBhcyBhcnJvdyQxLCBpbmxpbmUgYXMgaW5saW5lJDEsIGxpbWl0U2hpZnQgYXMgbGltaXRTaGlmdCQxLCBjb21wdXRlUG9zaXRpb24gYXMgY29tcHV0ZVBvc2l0aW9uJDEgfSBmcm9tICdAZmxvYXRpbmctdWkvY29yZSc7XG5pbXBvcnQgeyByb3VuZCwgY3JlYXRlQ29vcmRzLCBtYXgsIG1pbiwgZmxvb3IgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgaXNIVE1MRWxlbWVudCwgaXNFbGVtZW50LCBnZXRXaW5kb3csIGlzV2ViS2l0LCBnZXRGcmFtZUVsZW1lbnQsIGdldE5vZGVTY3JvbGwsIGdldERvY3VtZW50RWxlbWVudCwgaXNUb3BMYXllciwgZ2V0Tm9kZU5hbWUsIGlzT3ZlcmZsb3dFbGVtZW50LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgZ2V0UGFyZW50Tm9kZSwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc0NvbnRhaW5pbmdCbG9jaywgaXNUYWJsZUVsZW1lbnQsIGdldENvbnRhaW5pbmdCbG9jayB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuZXhwb3J0IHsgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcblxuZnVuY3Rpb24gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KSB7XG4gIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIC8vIEluIHRlc3RpbmcgZW52aXJvbm1lbnRzLCB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBhcmUgZW1wdHlcbiAgLy8gc3RyaW5ncyBmb3IgU1ZHIGVsZW1lbnRzLCByZXR1cm5pbmcgTmFOLiBGYWxsYmFjayB0byBgMGAgaW4gdGhpcyBjYXNlLlxuICBsZXQgd2lkdGggPSBwYXJzZUZsb2F0KGNzcy53aWR0aCkgfHwgMDtcbiAgbGV0IGhlaWdodCA9IHBhcnNlRmxvYXQoY3NzLmhlaWdodCkgfHwgMDtcbiAgY29uc3QgaGFzT2Zmc2V0ID0gaXNIVE1MRWxlbWVudChlbGVtZW50KTtcbiAgY29uc3Qgb2Zmc2V0V2lkdGggPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldFdpZHRoIDogd2lkdGg7XG4gIGNvbnN0IG9mZnNldEhlaWdodCA9IGhhc09mZnNldCA/IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDogaGVpZ2h0O1xuICBjb25zdCBzaG91bGRGYWxsYmFjayA9IHJvdW5kKHdpZHRoKSAhPT0gb2Zmc2V0V2lkdGggfHwgcm91bmQoaGVpZ2h0KSAhPT0gb2Zmc2V0SGVpZ2h0O1xuICBpZiAoc2hvdWxkRmFsbGJhY2spIHtcbiAgICB3aWR0aCA9IG9mZnNldFdpZHRoO1xuICAgIGhlaWdodCA9IG9mZnNldEhlaWdodDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkOiBzaG91bGRGYWxsYmFja1xuICB9O1xufVxuXG5mdW5jdGlvbiB1bndyYXBFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuICFpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50LmNvbnRleHRFbGVtZW50IDogZWxlbWVudDtcbn1cblxuZnVuY3Rpb24gZ2V0U2NhbGUoZWxlbWVudCkge1xuICBjb25zdCBkb21FbGVtZW50ID0gdW53cmFwRWxlbWVudChlbGVtZW50KTtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGRvbUVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvb3JkcygxKTtcbiAgfVxuICBjb25zdCByZWN0ID0gZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICAkXG4gIH0gPSBnZXRDc3NEaW1lbnNpb25zKGRvbUVsZW1lbnQpO1xuICBsZXQgeCA9ICgkID8gcm91bmQocmVjdC53aWR0aCkgOiByZWN0LndpZHRoKSAvIHdpZHRoO1xuICBsZXQgeSA9ICgkID8gcm91bmQocmVjdC5oZWlnaHQpIDogcmVjdC5oZWlnaHQpIC8gaGVpZ2h0O1xuXG4gIC8vIDAsIE5hTiwgb3IgSW5maW5pdHkgc2hvdWxkIGFsd2F5cyBmYWxsYmFjayB0byAxLlxuXG4gIGlmICgheCB8fCAhTnVtYmVyLmlzRmluaXRlKHgpKSB7XG4gICAgeCA9IDE7XG4gIH1cbiAgaWYgKCF5IHx8ICFOdW1iZXIuaXNGaW5pdGUoeSkpIHtcbiAgICB5ID0gMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5jb25zdCBub09mZnNldHMgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29vcmRzKDApO1xuZnVuY3Rpb24gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgaWYgKCFpc1dlYktpdCgpIHx8ICF3aW4udmlzdWFsVmlld3BvcnQpIHtcbiAgICByZXR1cm4gbm9PZmZzZXRzO1xuICB9XG4gIHJldHVybiB7XG4gICAgeDogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQsXG4gICAgeTogd2luLnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcFxuICB9O1xufVxuZnVuY3Rpb24gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhlbGVtZW50LCBpc0ZpeGVkLCBmbG9hdGluZ09mZnNldFBhcmVudCkge1xuICBpZiAoaXNGaXhlZCA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZCA9IGZhbHNlO1xuICB9XG4gIGlmICghZmxvYXRpbmdPZmZzZXRQYXJlbnQgfHwgaXNGaXhlZCAmJiBmbG9hdGluZ09mZnNldFBhcmVudCAhPT0gZ2V0V2luZG93KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBpc0ZpeGVkO1xufVxuXG5mdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgaW5jbHVkZVNjYWxlLCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkU3RyYXRlZ3kgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBjbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcbiAgaWYgKGluY2x1ZGVTY2FsZSkge1xuICAgIGlmIChvZmZzZXRQYXJlbnQpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjYWxlID0gZ2V0U2NhbGUoZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHZpc3VhbE9mZnNldHMgPSBzaG91bGRBZGRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQsIGlzRml4ZWRTdHJhdGVneSwgb2Zmc2V0UGFyZW50KSA/IGdldFZpc3VhbE9mZnNldHMoZG9tRWxlbWVudCkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIGxldCB4ID0gKGNsaWVudFJlY3QubGVmdCArIHZpc3VhbE9mZnNldHMueCkgLyBzY2FsZS54O1xuICBsZXQgeSA9IChjbGllbnRSZWN0LnRvcCArIHZpc3VhbE9mZnNldHMueSkgLyBzY2FsZS55O1xuICBsZXQgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoIC8gc2NhbGUueDtcbiAgbGV0IGhlaWdodCA9IGNsaWVudFJlY3QuaGVpZ2h0IC8gc2NhbGUueTtcbiAgaWYgKGRvbUVsZW1lbnQpIHtcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZG9tRWxlbWVudCk7XG4gICAgY29uc3Qgb2Zmc2V0V2luID0gb2Zmc2V0UGFyZW50ICYmIGlzRWxlbWVudChvZmZzZXRQYXJlbnQpID8gZ2V0V2luZG93KG9mZnNldFBhcmVudCkgOiBvZmZzZXRQYXJlbnQ7XG4gICAgbGV0IGN1cnJlbnRXaW4gPSB3aW47XG4gICAgbGV0IGN1cnJlbnRJRnJhbWUgPSBnZXRGcmFtZUVsZW1lbnQoY3VycmVudFdpbik7XG4gICAgd2hpbGUgKGN1cnJlbnRJRnJhbWUgJiYgb2Zmc2V0UGFyZW50ICYmIG9mZnNldFdpbiAhPT0gY3VycmVudFdpbikge1xuICAgICAgY29uc3QgaWZyYW1lU2NhbGUgPSBnZXRTY2FsZShjdXJyZW50SUZyYW1lKTtcbiAgICAgIGNvbnN0IGlmcmFtZVJlY3QgPSBjdXJyZW50SUZyYW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50SUZyYW1lKTtcbiAgICAgIGNvbnN0IGxlZnQgPSBpZnJhbWVSZWN0LmxlZnQgKyAoY3VycmVudElGcmFtZS5jbGllbnRMZWZ0ICsgcGFyc2VGbG9hdChjc3MucGFkZGluZ0xlZnQpKSAqIGlmcmFtZVNjYWxlLng7XG4gICAgICBjb25zdCB0b3AgPSBpZnJhbWVSZWN0LnRvcCArIChjdXJyZW50SUZyYW1lLmNsaWVudFRvcCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdUb3ApKSAqIGlmcmFtZVNjYWxlLnk7XG4gICAgICB4ICo9IGlmcmFtZVNjYWxlLng7XG4gICAgICB5ICo9IGlmcmFtZVNjYWxlLnk7XG4gICAgICB3aWR0aCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgaGVpZ2h0ICo9IGlmcmFtZVNjYWxlLnk7XG4gICAgICB4ICs9IGxlZnQ7XG4gICAgICB5ICs9IHRvcDtcbiAgICAgIGN1cnJlbnRXaW4gPSBnZXRXaW5kb3coY3VycmVudElGcmFtZSk7XG4gICAgICBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdCh7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9KTtcbn1cblxuLy8gSWYgPGh0bWw+IGhhcyBhIENTUyB3aWR0aCBncmVhdGVyIHRoYW4gdGhlIHZpZXdwb3J0LCB0aGVuIHRoaXMgd2lsbCBiZVxuLy8gaW5jb3JyZWN0IGZvciBSVEwuXG5mdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQsIHJlY3QpIHtcbiAgY29uc3QgbGVmdFNjcm9sbCA9IGdldE5vZGVTY3JvbGwoZWxlbWVudCkuc2Nyb2xsTGVmdDtcbiAgaWYgKCFyZWN0KSB7XG4gICAgcmV0dXJuIGdldEJvdW5kaW5nQ2xpZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpLmxlZnQgKyBsZWZ0U2Nyb2xsO1xuICB9XG4gIHJldHVybiByZWN0LmxlZnQgKyBsZWZ0U2Nyb2xsO1xufVxuXG5mdW5jdGlvbiBnZXRIVE1MT2Zmc2V0KGRvY3VtZW50RWxlbWVudCwgc2Nyb2xsLCBpZ25vcmVTY3JvbGxiYXJYKSB7XG4gIGlmIChpZ25vcmVTY3JvbGxiYXJYID09PSB2b2lkIDApIHtcbiAgICBpZ25vcmVTY3JvbGxiYXJYID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgaHRtbFJlY3QgPSBkb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHggPSBodG1sUmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSAoaWdub3JlU2Nyb2xsYmFyWCA/IDAgOlxuICAvLyBSVEwgPGJvZHk+IHNjcm9sbGJhci5cbiAgZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQsIGh0bWxSZWN0KSk7XG4gIGNvbnN0IHkgPSBodG1sUmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wO1xuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdChfcmVmKSB7XG4gIGxldCB7XG4gICAgZWxlbWVudHMsXG4gICAgcmVjdCxcbiAgICBvZmZzZXRQYXJlbnQsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGlzRml4ZWQgPSBzdHJhdGVneSA9PT0gJ2ZpeGVkJztcbiAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IHRvcExheWVyID0gZWxlbWVudHMgPyBpc1RvcExheWVyKGVsZW1lbnRzLmZsb2F0aW5nKSA6IGZhbHNlO1xuICBpZiAob2Zmc2V0UGFyZW50ID09PSBkb2N1bWVudEVsZW1lbnQgfHwgdG9wTGF5ZXIgJiYgaXNGaXhlZCkge1xuICAgIHJldHVybiByZWN0O1xuICB9XG4gIGxldCBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgbGV0IHNjYWxlID0gY3JlYXRlQ29vcmRzKDEpO1xuICBjb25zdCBvZmZzZXRzID0gY3JlYXRlQ29vcmRzKDApO1xuICBjb25zdCBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgaXNPdmVyZmxvd0VsZW1lbnQoZG9jdW1lbnRFbGVtZW50KSkge1xuICAgICAgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChvZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCk7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKG9mZnNldFBhcmVudCk7XG4gICAgICBvZmZzZXRzLnggPSBvZmZzZXRSZWN0LnggKyBvZmZzZXRQYXJlbnQuY2xpZW50TGVmdDtcbiAgICAgIG9mZnNldHMueSA9IG9mZnNldFJlY3QueSArIG9mZnNldFBhcmVudC5jbGllbnRUb3A7XG4gICAgfVxuICB9XG4gIGNvbnN0IGh0bWxPZmZzZXQgPSBkb2N1bWVudEVsZW1lbnQgJiYgIWlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ICYmICFpc0ZpeGVkID8gZ2V0SFRNTE9mZnNldChkb2N1bWVudEVsZW1lbnQsIHNjcm9sbCwgdHJ1ZSkgOiBjcmVhdGVDb29yZHMoMCk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHJlY3Qud2lkdGggKiBzY2FsZS54LFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHQgKiBzY2FsZS55LFxuICAgIHg6IHJlY3QueCAqIHNjYWxlLnggLSBzY3JvbGwuc2Nyb2xsTGVmdCAqIHNjYWxlLnggKyBvZmZzZXRzLnggKyBodG1sT2Zmc2V0LngsXG4gICAgeTogcmVjdC55ICogc2NhbGUueSAtIHNjcm9sbC5zY3JvbGxUb3AgKiBzY2FsZS55ICsgb2Zmc2V0cy55ICsgaHRtbE9mZnNldC55XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RzKGVsZW1lbnQpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oZWxlbWVudC5nZXRDbGllbnRSZWN0cygpKTtcbn1cblxuLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZS5cbmZ1bmN0aW9uIGdldERvY3VtZW50UmVjdChlbGVtZW50KSB7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHNjcm9sbCA9IGdldE5vZGVTY3JvbGwoZWxlbWVudCk7XG4gIGNvbnN0IGJvZHkgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYm9keTtcbiAgY29uc3Qgd2lkdGggPSBtYXgoaHRtbC5zY3JvbGxXaWR0aCwgaHRtbC5jbGllbnRXaWR0aCwgYm9keS5zY3JvbGxXaWR0aCwgYm9keS5jbGllbnRXaWR0aCk7XG4gIGNvbnN0IGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkuc2Nyb2xsSGVpZ2h0LCBib2R5LmNsaWVudEhlaWdodCk7XG4gIGxldCB4ID0gLXNjcm9sbC5zY3JvbGxMZWZ0ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KTtcbiAgY29uc3QgeSA9IC1zY3JvbGwuc2Nyb2xsVG9wO1xuICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShib2R5KS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keS5jbGllbnRXaWR0aCkgLSB3aWR0aDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IHdpbiA9IGdldFdpbmRvdyhlbGVtZW50KTtcbiAgY29uc3QgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgY29uc3QgdmlzdWFsVmlld3BvcnQgPSB3aW4udmlzdWFsVmlld3BvcnQ7XG4gIGxldCB3aWR0aCA9IGh0bWwuY2xpZW50V2lkdGg7XG4gIGxldCBoZWlnaHQgPSBodG1sLmNsaWVudEhlaWdodDtcbiAgbGV0IHggPSAwO1xuICBsZXQgeSA9IDA7XG4gIGlmICh2aXN1YWxWaWV3cG9ydCkge1xuICAgIHdpZHRoID0gdmlzdWFsVmlld3BvcnQud2lkdGg7XG4gICAgaGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0O1xuICAgIGNvbnN0IHZpc3VhbFZpZXdwb3J0QmFzZWQgPSBpc1dlYktpdCgpO1xuICAgIGlmICghdmlzdWFsVmlld3BvcnRCYXNlZCB8fCB2aXN1YWxWaWV3cG9ydEJhc2VkICYmIHN0cmF0ZWd5ID09PSAnZml4ZWQnKSB7XG4gICAgICB4ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdDtcbiAgICAgIHkgPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3A7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuXG4vLyBSZXR1cm5zIHRoZSBpbm5lciBjbGllbnQgcmVjdCwgc3VidHJhY3Rpbmcgc2Nyb2xsYmFycyBpZiBwcmVzZW50LlxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgY29uc3QgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCB0cnVlLCBzdHJhdGVneSA9PT0gJ2ZpeGVkJyk7XG4gIGNvbnN0IHRvcCA9IGNsaWVudFJlY3QudG9wICsgZWxlbWVudC5jbGllbnRUb3A7XG4gIGNvbnN0IGxlZnQgPSBjbGllbnRSZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIGNvbnN0IHNjYWxlID0gaXNIVE1MRWxlbWVudChlbGVtZW50KSA/IGdldFNjYWxlKGVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDEpO1xuICBjb25zdCB3aWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGggKiBzY2FsZS54O1xuICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LmNsaWVudEhlaWdodCAqIHNjYWxlLnk7XG4gIGNvbnN0IHggPSBsZWZ0ICogc2NhbGUueDtcbiAgY29uc3QgeSA9IHRvcCAqIHNjYWxlLnk7XG4gIHJldHVybiB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIHgsXG4gICAgeVxuICB9O1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSB7XG4gIGxldCByZWN0O1xuICBpZiAoY2xpcHBpbmdBbmNlc3RvciA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgIHJlY3QgPSBnZXRWaWV3cG9ydFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpO1xuICB9IGVsc2UgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICdkb2N1bWVudCcpIHtcbiAgICByZWN0ID0gZ2V0RG9jdW1lbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSk7XG4gIH0gZWxzZSBpZiAoaXNFbGVtZW50KGNsaXBwaW5nQW5jZXN0b3IpKSB7XG4gICAgcmVjdCA9IGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2aXN1YWxPZmZzZXRzID0gZ2V0VmlzdWFsT2Zmc2V0cyhlbGVtZW50KTtcbiAgICByZWN0ID0ge1xuICAgICAgeDogY2xpcHBpbmdBbmNlc3Rvci54IC0gdmlzdWFsT2Zmc2V0cy54LFxuICAgICAgeTogY2xpcHBpbmdBbmNlc3Rvci55IC0gdmlzdWFsT2Zmc2V0cy55LFxuICAgICAgd2lkdGg6IGNsaXBwaW5nQW5jZXN0b3Iud2lkdGgsXG4gICAgICBoZWlnaHQ6IGNsaXBwaW5nQW5jZXN0b3IuaGVpZ2h0XG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmVjdFRvQ2xpZW50UmVjdChyZWN0KTtcbn1cbmZ1bmN0aW9uIGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihlbGVtZW50LCBzdG9wTm9kZSkge1xuICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgaWYgKHBhcmVudE5vZGUgPT09IHN0b3BOb2RlIHx8ICFpc0VsZW1lbnQocGFyZW50Tm9kZSkgfHwgaXNMYXN0VHJhdmVyc2FibGVOb2RlKHBhcmVudE5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHBhcmVudE5vZGUpLnBvc2l0aW9uID09PSAnZml4ZWQnIHx8IGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihwYXJlbnROb2RlLCBzdG9wTm9kZSk7XG59XG5cbi8vIEEgXCJjbGlwcGluZyBhbmNlc3RvclwiIGlzIGFuIGBvdmVyZmxvd2AgZWxlbWVudCB3aXRoIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZlxuLy8gY2xpcHBpbmcgKG9yIGhpZGluZykgY2hpbGQgZWxlbWVudHMuIFRoaXMgcmV0dXJucyBhbGwgY2xpcHBpbmcgYW5jZXN0b3JzXG4vLyBvZiB0aGUgZ2l2ZW4gZWxlbWVudCB1cCB0aGUgdHJlZS5cbmZ1bmN0aW9uIGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyhlbGVtZW50LCBjYWNoZSkge1xuICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZS5nZXQoZWxlbWVudCk7XG4gIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICB9XG4gIGxldCByZXN1bHQgPSBnZXRPdmVyZmxvd0FuY2VzdG9ycyhlbGVtZW50LCBbXSwgZmFsc2UpLmZpbHRlcihlbCA9PiBpc0VsZW1lbnQoZWwpICYmIGdldE5vZGVOYW1lKGVsKSAhPT0gJ2JvZHknKTtcbiAgbGV0IGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gbnVsbDtcbiAgY29uc3QgZWxlbWVudElzRml4ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnO1xuICBsZXQgY3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/IGdldFBhcmVudE5vZGUoZWxlbWVudCkgOiBlbGVtZW50O1xuXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG4gIHdoaWxlIChpc0VsZW1lbnQoY3VycmVudE5vZGUpICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoY3VycmVudE5vZGUpKSB7XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpO1xuICAgIGNvbnN0IGN1cnJlbnROb2RlSXNDb250YWluaW5nID0gaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpO1xuICAgIGlmICghY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBudWxsO1xuICAgIH1cbiAgICBjb25zdCBzaG91bGREcm9wQ3VycmVudE5vZGUgPSBlbGVtZW50SXNGaXhlZCA/ICFjdXJyZW50Tm9kZUlzQ29udGFpbmluZyAmJiAhY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgOiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgY29tcHV0ZWRTdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycgJiYgISFjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSAmJiBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5jbHVkZXMoY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUucG9zaXRpb24pIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgaGFzRml4ZWRQb3NpdGlvbkFuY2VzdG9yKGVsZW1lbnQsIGN1cnJlbnROb2RlKTtcbiAgICBpZiAoc2hvdWxkRHJvcEN1cnJlbnROb2RlKSB7XG4gICAgICAvLyBEcm9wIG5vbi1jb250YWluaW5nIGJsb2Nrcy5cbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoYW5jZXN0b3IgPT4gYW5jZXN0b3IgIT09IGN1cnJlbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVjb3JkIGxhc3QgY29udGFpbmluZyBibG9jayBmb3IgbmV4dCBpdGVyYXRpb24uXG4gICAgICBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGU7XG4gICAgfVxuICAgIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSk7XG4gIH1cbiAgY2FjaGUuc2V0KGVsZW1lbnQsIHJlc3VsdCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEdldHMgdGhlIG1heGltdW0gYXJlYSB0aGF0IHRoZSBlbGVtZW50IGlzIHZpc2libGUgaW4gZHVlIHRvIGFueSBudW1iZXIgb2Zcbi8vIGNsaXBwaW5nIGFuY2VzdG9ycy5cbmZ1bmN0aW9uIGdldENsaXBwaW5nUmVjdChfcmVmKSB7XG4gIGxldCB7XG4gICAgZWxlbWVudCxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSA9IF9yZWY7XG4gIGNvbnN0IGVsZW1lbnRDbGlwcGluZ0FuY2VzdG9ycyA9IGJvdW5kYXJ5ID09PSAnY2xpcHBpbmdBbmNlc3RvcnMnID8gaXNUb3BMYXllcihlbGVtZW50KSA/IFtdIDogZ2V0Q2xpcHBpbmdFbGVtZW50QW5jZXN0b3JzKGVsZW1lbnQsIHRoaXMuX2MpIDogW10uY29uY2F0KGJvdW5kYXJ5KTtcbiAgY29uc3QgY2xpcHBpbmdBbmNlc3RvcnMgPSBbLi4uZWxlbWVudENsaXBwaW5nQW5jZXN0b3JzLCByb290Qm91bmRhcnldO1xuICBjb25zdCBmaXJzdENsaXBwaW5nQW5jZXN0b3IgPSBjbGlwcGluZ0FuY2VzdG9yc1swXTtcbiAgY29uc3QgY2xpcHBpbmdSZWN0ID0gY2xpcHBpbmdBbmNlc3RvcnMucmVkdWNlKChhY2NSZWN0LCBjbGlwcGluZ0FuY2VzdG9yKSA9PiB7XG4gICAgY29uc3QgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gICAgYWNjUmVjdC50b3AgPSBtYXgocmVjdC50b3AsIGFjY1JlY3QudG9wKTtcbiAgICBhY2NSZWN0LnJpZ2h0ID0gbWluKHJlY3QucmlnaHQsIGFjY1JlY3QucmlnaHQpO1xuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XG4gICAgYWNjUmVjdC5sZWZ0ID0gbWF4KHJlY3QubGVmdCwgYWNjUmVjdC5sZWZ0KTtcbiAgICByZXR1cm4gYWNjUmVjdDtcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21DbGlwcGluZ0FuY2VzdG9yKGVsZW1lbnQsIGZpcnN0Q2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpKTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQsXG4gICAgaGVpZ2h0OiBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcCxcbiAgICB4OiBjbGlwcGluZ1JlY3QubGVmdCxcbiAgICB5OiBjbGlwcGluZ1JlY3QudG9wXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldERpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH0gPSBnZXRDc3NEaW1lbnNpb25zKGVsZW1lbnQpO1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudChlbGVtZW50LCBvZmZzZXRQYXJlbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50ID0gaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBnZXREb2N1bWVudEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgaXNGaXhlZCA9IHN0cmF0ZWd5ID09PSAnZml4ZWQnO1xuICBjb25zdCByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHRydWUsIGlzRml4ZWQsIG9mZnNldFBhcmVudCk7XG4gIGxldCBzY3JvbGwgPSB7XG4gICAgc2Nyb2xsTGVmdDogMCxcbiAgICBzY3JvbGxUb3A6IDBcbiAgfTtcbiAgY29uc3Qgb2Zmc2V0cyA9IGNyZWF0ZUNvb3JkcygwKTtcbiAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50IHx8ICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCkge1xuICAgIGlmIChnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpICE9PSAnYm9keScgfHwgaXNPdmVyZmxvd0VsZW1lbnQoZG9jdW1lbnRFbGVtZW50KSkge1xuICAgICAgc2Nyb2xsID0gZ2V0Tm9kZVNjcm9sbChvZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICBpZiAoaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IG9mZnNldFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qob2Zmc2V0UGFyZW50LCB0cnVlLCBpc0ZpeGVkLCBvZmZzZXRQYXJlbnQpO1xuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgPSBvZmZzZXRSZWN0LnkgKyBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAvLyBJZiB0aGUgPGJvZHk+IHNjcm9sbGJhciBhcHBlYXJzIG9uIHRoZSBsZWZ0IChlLmcuIFJUTCBzeXN0ZW1zKS4gVXNlXG4gICAgICAvLyBGaXJlZm94IHdpdGggbGF5b3V0LnNjcm9sbGJhci5zaWRlID0gMyBpbiBhYm91dDpjb25maWcgdG8gdGVzdCB0aGlzLlxuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCBodG1sT2Zmc2V0ID0gZG9jdW1lbnRFbGVtZW50ICYmICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCA/IGdldEhUTUxPZmZzZXQoZG9jdW1lbnRFbGVtZW50LCBzY3JvbGwpIDogY3JlYXRlQ29vcmRzKDApO1xuICBjb25zdCB4ID0gcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLnggLSBodG1sT2Zmc2V0Lng7XG4gIGNvbnN0IHkgPSByZWN0LnRvcCArIHNjcm9sbC5zY3JvbGxUb3AgLSBvZmZzZXRzLnkgLSBodG1sT2Zmc2V0Lnk7XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNQb3NpdGlvbmVkKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnO1xufVxuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKSB7XG4gIGlmICghaXNIVE1MRWxlbWVudChlbGVtZW50KSB8fCBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHBvbHlmaWxsKSB7XG4gICAgcmV0dXJuIHBvbHlmaWxsKGVsZW1lbnQpO1xuICB9XG4gIGxldCByYXdPZmZzZXRQYXJlbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDtcblxuICAvLyBGaXJlZm94IHJldHVybnMgdGhlIDxodG1sPiBlbGVtZW50IGFzIHRoZSBvZmZzZXRQYXJlbnQgaWYgaXQncyBub24tc3RhdGljLFxuICAvLyB3aGlsZSBDaHJvbWUgYW5kIFNhZmFyaSByZXR1cm4gdGhlIDxib2R5PiBlbGVtZW50LiBUaGUgPGJvZHk+IGVsZW1lbnQgbXVzdFxuICAvLyBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlIGNvcnJlY3QgY2FsY3VsYXRpb25zIGV2ZW4gaWYgdGhlIDxodG1sPiBlbGVtZW50IGlzXG4gIC8vIG5vbi1zdGF0aWMuXG4gIGlmIChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkgPT09IHJhd09mZnNldFBhcmVudCkge1xuICAgIHJhd09mZnNldFBhcmVudCA9IHJhd09mZnNldFBhcmVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cbiAgcmV0dXJuIHJhd09mZnNldFBhcmVudDtcbn1cblxuLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cbmZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmIChpc1RvcExheWVyKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICBsZXQgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcbiAgICB3aGlsZSAoc3ZnT2Zmc2V0UGFyZW50ICYmICFpc0xhc3RUcmF2ZXJzYWJsZU5vZGUoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgaWYgKGlzRWxlbWVudChzdmdPZmZzZXRQYXJlbnQpICYmICFpc1N0YXRpY1Bvc2l0aW9uZWQoc3ZnT2Zmc2V0UGFyZW50KSkge1xuICAgICAgICByZXR1cm4gc3ZnT2Zmc2V0UGFyZW50O1xuICAgICAgfVxuICAgICAgc3ZnT2Zmc2V0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZShzdmdPZmZzZXRQYXJlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG4gIGxldCBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQsIHBvbHlmaWxsKTtcbiAgd2hpbGUgKG9mZnNldFBhcmVudCAmJiBpc1RhYmxlRWxlbWVudChvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQsIHBvbHlmaWxsKTtcbiAgfVxuICBpZiAob2Zmc2V0UGFyZW50ICYmIGlzTGFzdFRyYXZlcnNhYmxlTm9kZShvZmZzZXRQYXJlbnQpICYmIGlzU3RhdGljUG9zaXRpb25lZChvZmZzZXRQYXJlbnQpICYmICFpc0NvbnRhaW5pbmdCbG9jayhvZmZzZXRQYXJlbnQpKSB7XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW47XG59XG5cbmNvbnN0IGdldEVsZW1lbnRSZWN0cyA9IGFzeW5jIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGNvbnN0IGdldE9mZnNldFBhcmVudEZuID0gdGhpcy5nZXRPZmZzZXRQYXJlbnQgfHwgZ2V0T2Zmc2V0UGFyZW50O1xuICBjb25zdCBnZXREaW1lbnNpb25zRm4gPSB0aGlzLmdldERpbWVuc2lvbnM7XG4gIGNvbnN0IGZsb2F0aW5nRGltZW5zaW9ucyA9IGF3YWl0IGdldERpbWVuc2lvbnNGbihkYXRhLmZsb2F0aW5nKTtcbiAgcmV0dXJuIHtcbiAgICByZWZlcmVuY2U6IGdldFJlY3RSZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGRhdGEucmVmZXJlbmNlLCBhd2FpdCBnZXRPZmZzZXRQYXJlbnRGbihkYXRhLmZsb2F0aW5nKSwgZGF0YS5zdHJhdGVneSksXG4gICAgZmxvYXRpbmc6IHtcbiAgICAgIHg6IDAsXG4gICAgICB5OiAwLFxuICAgICAgd2lkdGg6IGZsb2F0aW5nRGltZW5zaW9ucy53aWR0aCxcbiAgICAgIGhlaWdodDogZmxvYXRpbmdEaW1lbnNpb25zLmhlaWdodFxuICAgIH1cbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzUlRMKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZGlyZWN0aW9uID09PSAncnRsJztcbn1cblxuY29uc3QgcGxhdGZvcm0gPSB7XG4gIGNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0LFxuICBnZXREb2N1bWVudEVsZW1lbnQsXG4gIGdldENsaXBwaW5nUmVjdCxcbiAgZ2V0T2Zmc2V0UGFyZW50LFxuICBnZXRFbGVtZW50UmVjdHMsXG4gIGdldENsaWVudFJlY3RzLFxuICBnZXREaW1lbnNpb25zLFxuICBnZXRTY2FsZSxcbiAgaXNFbGVtZW50LFxuICBpc1JUTFxufTtcblxuLy8gaHR0cHM6Ly9zYW10aG9yLmF1LzIwMjEvb2JzZXJ2aW5nLWRvbS9cbmZ1bmN0aW9uIG9ic2VydmVNb3ZlKGVsZW1lbnQsIG9uTW92ZSkge1xuICBsZXQgaW8gPSBudWxsO1xuICBsZXQgdGltZW91dElkO1xuICBjb25zdCByb290ID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIHZhciBfaW87XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgKF9pbyA9IGlvKSA9PSBudWxsIHx8IF9pby5kaXNjb25uZWN0KCk7XG4gICAgaW8gPSBudWxsO1xuICB9XG4gIGZ1bmN0aW9uIHJlZnJlc2goc2tpcCwgdGhyZXNob2xkKSB7XG4gICAgaWYgKHNraXAgPT09IHZvaWQgMCkge1xuICAgICAgc2tpcCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhyZXNob2xkID09PSB2b2lkIDApIHtcbiAgICAgIHRocmVzaG9sZCA9IDE7XG4gICAgfVxuICAgIGNsZWFudXAoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXNraXApIHtcbiAgICAgIG9uTW92ZSgpO1xuICAgIH1cbiAgICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaW5zZXRUb3AgPSBmbG9vcih0b3ApO1xuICAgIGNvbnN0IGluc2V0UmlnaHQgPSBmbG9vcihyb290LmNsaWVudFdpZHRoIC0gKGxlZnQgKyB3aWR0aCkpO1xuICAgIGNvbnN0IGluc2V0Qm90dG9tID0gZmxvb3Iocm9vdC5jbGllbnRIZWlnaHQgLSAodG9wICsgaGVpZ2h0KSk7XG4gICAgY29uc3QgaW5zZXRMZWZ0ID0gZmxvb3IobGVmdCk7XG4gICAgY29uc3Qgcm9vdE1hcmdpbiA9IC1pbnNldFRvcCArIFwicHggXCIgKyAtaW5zZXRSaWdodCArIFwicHggXCIgKyAtaW5zZXRCb3R0b20gKyBcInB4IFwiICsgLWluc2V0TGVmdCArIFwicHhcIjtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdE1hcmdpbixcbiAgICAgIHRocmVzaG9sZDogbWF4KDAsIG1pbigxLCB0aHJlc2hvbGQpKSB8fCAxXG4gICAgfTtcbiAgICBsZXQgaXNGaXJzdFVwZGF0ZSA9IHRydWU7XG4gICAgZnVuY3Rpb24gaGFuZGxlT2JzZXJ2ZShlbnRyaWVzKSB7XG4gICAgICBjb25zdCByYXRpbyA9IGVudHJpZXNbMF0uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgICBpZiAocmF0aW8gIT09IHRocmVzaG9sZCkge1xuICAgICAgICBpZiAoIWlzRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmF0aW8pIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGNsaXBwZWQsIHRoZSByYXRpbyBpcyAwLiBUaHJvdHRsZSB0aGUgcmVmcmVzaFxuICAgICAgICAgIC8vIHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcCBvZiB1cGRhdGVzLlxuICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaChmYWxzZSwgMWUtNyk7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmcmVzaChmYWxzZSwgcmF0aW8pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT2xkZXIgYnJvd3NlcnMgZG9uJ3Qgc3VwcG9ydCBhIGBkb2N1bWVudGAgYXMgdGhlIHJvb3QgYW5kIHdpbGwgdGhyb3cgYW5cbiAgICAvLyBlcnJvci5cbiAgICB0cnkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAvLyBIYW5kbGUgPGlmcmFtZT5zXG4gICAgICAgIHJvb3Q6IHJvb3Qub3duZXJEb2N1bWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlT2JzZXJ2ZSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIGlvLm9ic2VydmUoZWxlbWVudCk7XG4gIH1cbiAgcmVmcmVzaCh0cnVlKTtcbiAgcmV0dXJuIGNsZWFudXA7XG59XG5cbi8qKlxuICogQXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIG5lY2Vzc2FyeS5cbiAqIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG1vdW50ZWQgb24gdGhlIERPTSBvclxuICogdmlzaWJsZSBvbiB0aGUgc2NyZWVuLlxuICogQHJldHVybnMgY2xlYW51cCBmdW5jdGlvbiB0aGF0IHNob3VsZCBiZSBpbnZva2VkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXNcbiAqIHJlbW92ZWQgZnJvbSB0aGUgRE9NIG9yIGhpZGRlbiBmcm9tIHRoZSBzY3JlZW4uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1VwZGF0ZVxuICovXG5mdW5jdGlvbiBhdXRvVXBkYXRlKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhbmNlc3RvclNjcm9sbCA9IHRydWUsXG4gICAgYW5jZXN0b3JSZXNpemUgPSB0cnVlLFxuICAgIGVsZW1lbnRSZXNpemUgPSB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgbGF5b3V0U2hpZnQgPSB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicsXG4gICAgYW5pbWF0aW9uRnJhbWUgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVmZXJlbmNlRWwgPSB1bndyYXBFbGVtZW50KHJlZmVyZW5jZSk7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IGFuY2VzdG9yU2Nyb2xsIHx8IGFuY2VzdG9yUmVzaXplID8gWy4uLihyZWZlcmVuY2VFbCA/IGdldE92ZXJmbG93QW5jZXN0b3JzKHJlZmVyZW5jZUVsKSA6IFtdKSwgLi4uZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZmxvYXRpbmcpXSA6IFtdO1xuICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgYW5jZXN0b3JTY3JvbGwgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlXG4gICAgfSk7XG4gICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgfSk7XG4gIGNvbnN0IGNsZWFudXBJbyA9IHJlZmVyZW5jZUVsICYmIGxheW91dFNoaWZ0ID8gb2JzZXJ2ZU1vdmUocmVmZXJlbmNlRWwsIHVwZGF0ZSkgOiBudWxsO1xuICBsZXQgcmVvYnNlcnZlRnJhbWUgPSAtMTtcbiAgbGV0IHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgaWYgKGVsZW1lbnRSZXNpemUpIHtcbiAgICByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihfcmVmID0+IHtcbiAgICAgIGxldCBbZmlyc3RFbnRyeV0gPSBfcmVmO1xuICAgICAgaWYgKGZpcnN0RW50cnkgJiYgZmlyc3RFbnRyeS50YXJnZXQgPT09IHJlZmVyZW5jZUVsICYmIHJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIC8vIFByZXZlbnQgdXBkYXRlIGxvb3BzIHdoZW4gdXNpbmcgdGhlIGBzaXplYCBtaWRkbGV3YXJlLlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzE3NDBcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmVvYnNlcnZlRnJhbWUpO1xuICAgICAgICByZW9ic2VydmVGcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9yZXNpemVPYnNlcnZlcjtcbiAgICAgICAgICAoX3Jlc2l6ZU9ic2VydmVyID0gcmVzaXplT2JzZXJ2ZXIpID09IG51bGwgfHwgX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiAhYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUocmVmZXJlbmNlRWwpO1xuICAgIH1cbiAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGZsb2F0aW5nKTtcbiAgfVxuICBsZXQgZnJhbWVJZDtcbiAgbGV0IHByZXZSZWZSZWN0ID0gYW5pbWF0aW9uRnJhbWUgPyBnZXRCb3VuZGluZ0NsaWVudFJlY3QocmVmZXJlbmNlKSA6IG51bGw7XG4gIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgIGZyYW1lTG9vcCgpO1xuICB9XG4gIGZ1bmN0aW9uIGZyYW1lTG9vcCgpIHtcbiAgICBjb25zdCBuZXh0UmVmUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpO1xuICAgIGlmIChwcmV2UmVmUmVjdCAmJiAobmV4dFJlZlJlY3QueCAhPT0gcHJldlJlZlJlY3QueCB8fCBuZXh0UmVmUmVjdC55ICE9PSBwcmV2UmVmUmVjdC55IHx8IG5leHRSZWZSZWN0LndpZHRoICE9PSBwcmV2UmVmUmVjdC53aWR0aCB8fCBuZXh0UmVmUmVjdC5oZWlnaHQgIT09IHByZXZSZWZSZWN0LmhlaWdodCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiIsImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxudmFyIGluZGV4ID0gdXNlTGF5b3V0RWZmZWN0IDtcblxuZXhwb3J0IHsgaW5kZXggYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMic7XG5pbXBvcnQgX2V4dGVuZHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kcyc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcywgY3NzIGFzIGNzcyQyIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXknO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX3R5cGVvZiBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YnO1xuaW1wb3J0IF90YWdnZWRUZW1wbGF0ZUxpdGVyYWwgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdGFnZ2VkVGVtcGxhdGVMaXRlcmFsJztcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssIGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHVzZUxheW91dEVmZmVjdCBmcm9tICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIF9leGNsdWRlZCQ0ID0gW1wiY2xhc3NOYW1lXCIsIFwiY2xlYXJWYWx1ZVwiLCBcImN4XCIsIFwiZ2V0U3R5bGVzXCIsIFwiZ2V0Q2xhc3NOYW1lc1wiLCBcImdldFZhbHVlXCIsIFwiaGFzVmFsdWVcIiwgXCJpc011bHRpXCIsIFwiaXNSdGxcIiwgXCJvcHRpb25zXCIsIFwic2VsZWN0T3B0aW9uXCIsIFwic2VsZWN0UHJvcHNcIiwgXCJzZXRWYWx1ZVwiLCBcInRoZW1lXCJdO1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOTyBPUFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBub29wID0gZnVuY3Rpb24gbm9vcCgpIHt9O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENsYXNzIE5hbWUgUHJlZml4ZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgY29tcG9uZW50IHN0YXRlIGZvciBzdHlsaW5nIHdpdGggY2xhc3MgbmFtZXMuXG5cbiBFeHBlY3RzIGFuIGFycmF5IG9mIHN0cmluZ3MgT1IgYSBzdHJpbmcvb2JqZWN0IHBhaXI6XG4gLSBjbGFzc05hbWUoWydjb21wJywgJ2NvbXAtYXJnJywgJ2NvbXAtYXJnLTInXSlcbiAgIEByZXR1cm5zICdyZWFjdC1zZWxlY3RfX2NvbXAgcmVhY3Qtc2VsZWN0X19jb21wLWFyZyByZWFjdC1zZWxlY3RfX2NvbXAtYXJnLTInXG4gLSBjbGFzc05hbWUoJ2NvbXAnLCB7IHNvbWU6IHRydWUsIHN0YXRlOiBmYWxzZSB9KVxuICAgQHJldHVybnMgJ3JlYWN0LXNlbGVjdF9fY29tcCByZWFjdC1zZWxlY3RfX2NvbXAtLXNvbWUnXG4qL1xuZnVuY3Rpb24gYXBwbHlQcmVmaXhUb05hbWUocHJlZml4LCBuYW1lKSB7XG4gIGlmICghbmFtZSkge1xuICAgIHJldHVybiBwcmVmaXg7XG4gIH0gZWxzZSBpZiAobmFtZVswXSA9PT0gJy0nKSB7XG4gICAgcmV0dXJuIHByZWZpeCArIG5hbWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHByZWZpeCArICdfXycgKyBuYW1lO1xuICB9XG59XG5mdW5jdGlvbiBjbGFzc05hbWVzKHByZWZpeCwgc3RhdGUpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGNsYXNzTmFtZUxpc3QgPSBuZXcgQXJyYXkoX2xlbiA+IDIgPyBfbGVuIC0gMiA6IDApLCBfa2V5ID0gMjsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGNsYXNzTmFtZUxpc3RbX2tleSAtIDJdID0gYXJndW1lbnRzW19rZXldO1xuICB9XG4gIHZhciBhcnIgPSBbXS5jb25jYXQoY2xhc3NOYW1lTGlzdCk7XG4gIGlmIChzdGF0ZSAmJiBwcmVmaXgpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gc3RhdGUpIHtcbiAgICAgIGlmIChzdGF0ZS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHN0YXRlW2tleV0pIHtcbiAgICAgICAgYXJyLnB1c2goXCJcIi5jb25jYXQoYXBwbHlQcmVmaXhUb05hbWUocHJlZml4LCBrZXkpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnIuZmlsdGVyKGZ1bmN0aW9uIChpKSB7XG4gICAgcmV0dXJuIGk7XG4gIH0pLm1hcChmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBTdHJpbmcoaSkudHJpbSgpO1xuICB9KS5qb2luKCcgJyk7XG59XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENsZWFuIFZhbHVlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGNsZWFuVmFsdWUgPSBmdW5jdGlvbiBjbGVhblZhbHVlKHZhbHVlKSB7XG4gIGlmIChpc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKF90eXBlb2YodmFsdWUpID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkgcmV0dXJuIFt2YWx1ZV07XG4gIHJldHVybiBbXTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ2xlYW4gQ29tbW9uIFByb3BzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGNsZWFuQ29tbW9uUHJvcHMgPSBmdW5jdGlvbiBjbGVhbkNvbW1vblByb3BzKHByb3BzKSB7XG4gIC8vY2xhc3NOYW1lXG4gIHByb3BzLmNsYXNzTmFtZTtcbiAgICBwcm9wcy5jbGVhclZhbHVlO1xuICAgIHByb3BzLmN4O1xuICAgIHByb3BzLmdldFN0eWxlcztcbiAgICBwcm9wcy5nZXRDbGFzc05hbWVzO1xuICAgIHByb3BzLmdldFZhbHVlO1xuICAgIHByb3BzLmhhc1ZhbHVlO1xuICAgIHByb3BzLmlzTXVsdGk7XG4gICAgcHJvcHMuaXNSdGw7XG4gICAgcHJvcHMub3B0aW9ucztcbiAgICBwcm9wcy5zZWxlY3RPcHRpb247XG4gICAgcHJvcHMuc2VsZWN0UHJvcHM7XG4gICAgcHJvcHMuc2V0VmFsdWU7XG4gICAgcHJvcHMudGhlbWU7XG4gICAgdmFyIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIF9leGNsdWRlZCQ0KTtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe30sIGlubmVyUHJvcHMpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZXQgU3R5bGUgUHJvcHNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgZ2V0U3R5bGVQcm9wcyA9IGZ1bmN0aW9uIGdldFN0eWxlUHJvcHMocHJvcHMsIG5hbWUsIGNsYXNzTmFtZXNTdGF0ZSkge1xuICB2YXIgY3ggPSBwcm9wcy5jeCxcbiAgICBnZXRTdHlsZXMgPSBwcm9wcy5nZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lcyA9IHByb3BzLmdldENsYXNzTmFtZXMsXG4gICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICByZXR1cm4ge1xuICAgIGNzczogZ2V0U3R5bGVzKG5hbWUsIHByb3BzKSxcbiAgICBjbGFzc05hbWU6IGN4KGNsYXNzTmFtZXNTdGF0ZSAhPT0gbnVsbCAmJiBjbGFzc05hbWVzU3RhdGUgIT09IHZvaWQgMCA/IGNsYXNzTmFtZXNTdGF0ZSA6IHt9LCBnZXRDbGFzc05hbWVzKG5hbWUsIHByb3BzKSwgY2xhc3NOYW1lKVxuICB9O1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIYW5kbGUgSW5wdXQgQ2hhbmdlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gaGFuZGxlSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSwgb25JbnB1dENoYW5nZSkge1xuICBpZiAob25JbnB1dENoYW5nZSkge1xuICAgIHZhciBfbmV3VmFsdWUgPSBvbklucHV0Q2hhbmdlKGlucHV0VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIGlmICh0eXBlb2YgX25ld1ZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIF9uZXdWYWx1ZTtcbiAgfVxuICByZXR1cm4gaW5wdXRWYWx1ZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTY3JvbGwgSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzRG9jdW1lbnRFbGVtZW50KGVsKSB7XG4gIHJldHVybiBbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBkb2N1bWVudC5ib2R5LCB3aW5kb3ddLmluZGV4T2YoZWwpID4gLTE7XG59XG5cbi8vIE5vcm1hbGl6ZWQgU2Nyb2xsIFRvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZWRIZWlnaHQoZWwpIHtcbiAgaWYgKGlzRG9jdW1lbnRFbGVtZW50KGVsKSkge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIGVsLmNsaWVudEhlaWdodDtcbn1cblxuLy8gTm9ybWFsaXplZCBzY3JvbGxUbyAmIHNjcm9sbFRvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGdldFNjcm9sbFRvcChlbCkge1xuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgfVxuICByZXR1cm4gZWwuc2Nyb2xsVG9wO1xufVxuZnVuY3Rpb24gc2Nyb2xsVG8oZWwsIHRvcCkge1xuICAvLyB3aXRoIGEgc2Nyb2xsIGRpc3RhbmNlLCB3ZSBwZXJmb3JtIHNjcm9sbCBvbiB0aGUgZWxlbWVudFxuICBpZiAoaXNEb2N1bWVudEVsZW1lbnQoZWwpKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIHRvcCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGVsLnNjcm9sbFRvcCA9IHRvcDtcbn1cblxuLy8gR2V0IFNjcm9sbCBQYXJlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICB2YXIgZXhjbHVkZVN0YXRpY1BhcmVudCA9IHN0eWxlLnBvc2l0aW9uID09PSAnYWJzb2x1dGUnO1xuICB2YXIgb3ZlcmZsb3dSeCA9IC8oYXV0b3xzY3JvbGwpLztcbiAgaWYgKHN0eWxlLnBvc2l0aW9uID09PSAnZml4ZWQnKSByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICBmb3IgKHZhciBwYXJlbnQgPSBlbGVtZW50OyBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDspIHtcbiAgICBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBpZiAoZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBzdHlsZS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAob3ZlcmZsb3dSeC50ZXN0KHN0eWxlLm92ZXJmbG93ICsgc3R5bGUub3ZlcmZsb3dZICsgc3R5bGUub3ZlcmZsb3dYKSkge1xuICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbn1cblxuLy8gQW5pbWF0ZWQgU2Nyb2xsIFRvXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gIEBwYXJhbSB0OiB0aW1lIChlbGFwc2VkKVxuICBAcGFyYW0gYjogaW5pdGlhbCB2YWx1ZVxuICBAcGFyYW0gYzogYW1vdW50IG9mIGNoYW5nZVxuICBAcGFyYW0gZDogZHVyYXRpb25cbiovXG5mdW5jdGlvbiBlYXNlT3V0Q3ViaWModCwgYiwgYywgZCkge1xuICByZXR1cm4gYyAqICgodCA9IHQgLyBkIC0gMSkgKiB0ICogdCArIDEpICsgYjtcbn1cbmZ1bmN0aW9uIGFuaW1hdGVkU2Nyb2xsVG8oZWxlbWVudCwgdG8pIHtcbiAgdmFyIGR1cmF0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAyMDA7XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogbm9vcDtcbiAgdmFyIHN0YXJ0ID0gZ2V0U2Nyb2xsVG9wKGVsZW1lbnQpO1xuICB2YXIgY2hhbmdlID0gdG8gLSBzdGFydDtcbiAgdmFyIGluY3JlbWVudCA9IDEwO1xuICB2YXIgY3VycmVudFRpbWUgPSAwO1xuICBmdW5jdGlvbiBhbmltYXRlU2Nyb2xsKCkge1xuICAgIGN1cnJlbnRUaW1lICs9IGluY3JlbWVudDtcbiAgICB2YXIgdmFsID0gZWFzZU91dEN1YmljKGN1cnJlbnRUaW1lLCBzdGFydCwgY2hhbmdlLCBkdXJhdGlvbik7XG4gICAgc2Nyb2xsVG8oZWxlbWVudCwgdmFsKTtcbiAgICBpZiAoY3VycmVudFRpbWUgPCBkdXJhdGlvbikge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlU2Nyb2xsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soZWxlbWVudCk7XG4gICAgfVxuICB9XG4gIGFuaW1hdGVTY3JvbGwoKTtcbn1cblxuLy8gU2Nyb2xsIEludG8gVmlld1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIHNjcm9sbEludG9WaWV3KG1lbnVFbCwgZm9jdXNlZEVsKSB7XG4gIHZhciBtZW51UmVjdCA9IG1lbnVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIGZvY3VzZWRSZWN0ID0gZm9jdXNlZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgb3ZlclNjcm9sbCA9IGZvY3VzZWRFbC5vZmZzZXRIZWlnaHQgLyAzO1xuICBpZiAoZm9jdXNlZFJlY3QuYm90dG9tICsgb3ZlclNjcm9sbCA+IG1lbnVSZWN0LmJvdHRvbSkge1xuICAgIHNjcm9sbFRvKG1lbnVFbCwgTWF0aC5taW4oZm9jdXNlZEVsLm9mZnNldFRvcCArIGZvY3VzZWRFbC5jbGllbnRIZWlnaHQgLSBtZW51RWwub2Zmc2V0SGVpZ2h0ICsgb3ZlclNjcm9sbCwgbWVudUVsLnNjcm9sbEhlaWdodCkpO1xuICB9IGVsc2UgaWYgKGZvY3VzZWRSZWN0LnRvcCAtIG92ZXJTY3JvbGwgPCBtZW51UmVjdC50b3ApIHtcbiAgICBzY3JvbGxUbyhtZW51RWwsIE1hdGgubWF4KGZvY3VzZWRFbC5vZmZzZXRUb3AgLSBvdmVyU2Nyb2xsLCAwKSk7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZXQgYm91bmRpbmcgY2xpZW50IG9iamVjdFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIGNhbm5vdCBnZXQga2V5cyB1c2luZyBhcnJheSBub3RhdGlvbiB3aXRoIERPTVJlY3RcbmZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50T2JqKGVsZW1lbnQpIHtcbiAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICByZXR1cm4ge1xuICAgIGJvdHRvbTogcmVjdC5ib3R0b20sXG4gICAgaGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICBsZWZ0OiByZWN0LmxlZnQsXG4gICAgcmlnaHQ6IHJlY3QucmlnaHQsXG4gICAgdG9wOiByZWN0LnRvcCxcbiAgICB3aWR0aDogcmVjdC53aWR0aFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRvdWNoIENhcGFiaWxpdHkgRGV0ZWN0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBpc1RvdWNoQ2FwYWJsZSgpIHtcbiAgdHJ5IHtcbiAgICBkb2N1bWVudC5jcmVhdGVFdmVudCgnVG91Y2hFdmVudCcpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTW9iaWxlIERldmljZSBEZXRlY3RvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGlzTW9iaWxlRGV2aWNlKCkge1xuICB0cnkge1xuICAgIHJldHVybiAvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQYXNzaXZlIEV2ZW50IERldGVjdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZmdyYXBoL2RldGVjdC1pdC9ibG9iL21haW4vc3JjL2luZGV4LnRzI0wxOS1MMzZcbnZhciBwYXNzaXZlT3B0aW9uQWNjZXNzZWQgPSBmYWxzZTtcbnZhciBvcHRpb25zID0ge1xuICBnZXQgcGFzc2l2ZSgpIHtcbiAgICByZXR1cm4gcGFzc2l2ZU9wdGlvbkFjY2Vzc2VkID0gdHJ1ZTtcbiAgfVxufTtcbi8vIGNoZWNrIGZvciBTU1JcbnZhciB3ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fTtcbmlmICh3LmFkZEV2ZW50TGlzdGVuZXIgJiYgdy5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gIHcuYWRkRXZlbnRMaXN0ZW5lcigncCcsIG5vb3AsIG9wdGlvbnMpO1xuICB3LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3AnLCBub29wLCBmYWxzZSk7XG59XG52YXIgc3VwcG9ydHNQYXNzaXZlRXZlbnRzID0gcGFzc2l2ZU9wdGlvbkFjY2Vzc2VkO1xuZnVuY3Rpb24gbm90TnVsbGlzaChpdGVtKSB7XG4gIHJldHVybiBpdGVtICE9IG51bGw7XG59XG5mdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcmcpO1xufVxuZnVuY3Rpb24gdmFsdWVUZXJuYXJ5KGlzTXVsdGksIG11bHRpVmFsdWUsIHNpbmdsZVZhbHVlKSB7XG4gIHJldHVybiBpc011bHRpID8gbXVsdGlWYWx1ZSA6IHNpbmdsZVZhbHVlO1xufVxuZnVuY3Rpb24gc2luZ2xlVmFsdWVBc1ZhbHVlKHNpbmdsZVZhbHVlKSB7XG4gIHJldHVybiBzaW5nbGVWYWx1ZTtcbn1cbmZ1bmN0aW9uIG11bHRpVmFsdWVBc1ZhbHVlKG11bHRpVmFsdWUpIHtcbiAgcmV0dXJuIG11bHRpVmFsdWU7XG59XG52YXIgcmVtb3ZlUHJvcHMgPSBmdW5jdGlvbiByZW1vdmVQcm9wcyhwcm9wc09iaikge1xuICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIHByb3BlcnRpZXMgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgIHByb3BlcnRpZXNbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cbiAgdmFyIHByb3BzTWFwID0gT2JqZWN0LmVudHJpZXMocHJvcHNPYmopLmZpbHRlcihmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBfcmVmMiA9IF9zbGljZWRUb0FycmF5KF9yZWYsIDEpLFxuICAgICAga2V5ID0gX3JlZjJbMF07XG4gICAgcmV0dXJuICFwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSk7XG4gIH0pO1xuICByZXR1cm4gcHJvcHNNYXAucmVkdWNlKGZ1bmN0aW9uIChuZXdQcm9wcywgX3JlZjMpIHtcbiAgICB2YXIgX3JlZjQgPSBfc2xpY2VkVG9BcnJheShfcmVmMywgMiksXG4gICAgICBrZXkgPSBfcmVmNFswXSxcbiAgICAgIHZhbCA9IF9yZWY0WzFdO1xuICAgIG5ld1Byb3BzW2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIG5ld1Byb3BzO1xuICB9LCB7fSk7XG59O1xuXG52YXIgX2V4Y2x1ZGVkJDMgPSBbXCJjaGlsZHJlblwiLCBcImlubmVyUHJvcHNcIl0sXG4gIF9leGNsdWRlZDIkMSA9IFtcImNoaWxkcmVuXCIsIFwiaW5uZXJQcm9wc1wiXTtcbmZ1bmN0aW9uIGdldE1lbnVQbGFjZW1lbnQoX3JlZikge1xuICB2YXIgcHJlZmVycmVkTWF4SGVpZ2h0ID0gX3JlZi5tYXhIZWlnaHQsXG4gICAgbWVudUVsID0gX3JlZi5tZW51RWwsXG4gICAgbWluSGVpZ2h0ID0gX3JlZi5taW5IZWlnaHQsXG4gICAgcHJlZmVycmVkUGxhY2VtZW50ID0gX3JlZi5wbGFjZW1lbnQsXG4gICAgc2hvdWxkU2Nyb2xsID0gX3JlZi5zaG91bGRTY3JvbGwsXG4gICAgaXNGaXhlZFBvc2l0aW9uID0gX3JlZi5pc0ZpeGVkUG9zaXRpb24sXG4gICAgY29udHJvbEhlaWdodCA9IF9yZWYuY29udHJvbEhlaWdodDtcbiAgdmFyIHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChtZW51RWwpO1xuICB2YXIgZGVmYXVsdFN0YXRlID0ge1xuICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgfTtcblxuICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZywgcmV0dXJuIGRlZmF1bHQgc3RhdGVcbiAgaWYgKCFtZW51RWwgfHwgIW1lbnVFbC5vZmZzZXRQYXJlbnQpIHJldHVybiBkZWZhdWx0U3RhdGU7XG5cbiAgLy8gd2UgY2FuJ3QgdHJ1c3QgYHNjcm9sbFBhcmVudC5zY3JvbGxIZWlnaHRgIC0tPiBpdCBtYXkgaW5jcmVhc2Ugd2hlblxuICAvLyB0aGUgbWVudSBpcyByZW5kZXJlZFxuICB2YXIgX3Njcm9sbFBhcmVudCRnZXRCb3VuID0gc2Nyb2xsUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxQYXJlbnQkZ2V0Qm91bi5oZWlnaHQ7XG4gIHZhciBfbWVudUVsJGdldEJvdW5kaW5nQ2wgPSBtZW51RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgbWVudUJvdHRvbSA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC5ib3R0b20sXG4gICAgbWVudUhlaWdodCA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC5oZWlnaHQsXG4gICAgbWVudVRvcCA9IF9tZW51RWwkZ2V0Qm91bmRpbmdDbC50b3A7XG4gIHZhciBfbWVudUVsJG9mZnNldFBhcmVudCQgPSBtZW51RWwub2Zmc2V0UGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIGNvbnRhaW5lclRvcCA9IF9tZW51RWwkb2Zmc2V0UGFyZW50JC50b3A7XG4gIHZhciB2aWV3SGVpZ2h0ID0gaXNGaXhlZFBvc2l0aW9uID8gd2luZG93LmlubmVySGVpZ2h0IDogbm9ybWFsaXplZEhlaWdodChzY3JvbGxQYXJlbnQpO1xuICB2YXIgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsVG9wKHNjcm9sbFBhcmVudCk7XG4gIHZhciBtYXJnaW5Cb3R0b20gPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKG1lbnVFbCkubWFyZ2luQm90dG9tLCAxMCk7XG4gIHZhciBtYXJnaW5Ub3AgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKG1lbnVFbCkubWFyZ2luVG9wLCAxMCk7XG4gIHZhciB2aWV3U3BhY2VBYm92ZSA9IGNvbnRhaW5lclRvcCAtIG1hcmdpblRvcDtcbiAgdmFyIHZpZXdTcGFjZUJlbG93ID0gdmlld0hlaWdodCAtIG1lbnVUb3A7XG4gIHZhciBzY3JvbGxTcGFjZUFib3ZlID0gdmlld1NwYWNlQWJvdmUgKyBzY3JvbGxUb3A7XG4gIHZhciBzY3JvbGxTcGFjZUJlbG93ID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gbWVudVRvcDtcbiAgdmFyIHNjcm9sbERvd24gPSBtZW51Qm90dG9tIC0gdmlld0hlaWdodCArIHNjcm9sbFRvcCArIG1hcmdpbkJvdHRvbTtcbiAgdmFyIHNjcm9sbFVwID0gc2Nyb2xsVG9wICsgbWVudVRvcCAtIG1hcmdpblRvcDtcbiAgdmFyIHNjcm9sbER1cmF0aW9uID0gMTYwO1xuICBzd2l0Y2ggKHByZWZlcnJlZFBsYWNlbWVudCkge1xuICAgIGNhc2UgJ2F1dG8nOlxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAvLyAxOiB0aGUgbWVudSB3aWxsIGZpdCwgZG8gbm90aGluZ1xuICAgICAgaWYgKHZpZXdTcGFjZUJlbG93ID49IG1lbnVIZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDI6IHRoZSBtZW51IHdpbGwgZml0LCBpZiBzY3JvbGxlZFxuICAgICAgaWYgKHNjcm9sbFNwYWNlQmVsb3cgPj0gbWVudUhlaWdodCAmJiAhaXNGaXhlZFBvc2l0aW9uKSB7XG4gICAgICAgIGlmIChzaG91bGRTY3JvbGwpIHtcbiAgICAgICAgICBhbmltYXRlZFNjcm9sbFRvKHNjcm9sbFBhcmVudCwgc2Nyb2xsRG93biwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAzOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgY29uc3RyYWluZWRcbiAgICAgIGlmICghaXNGaXhlZFBvc2l0aW9uICYmIHNjcm9sbFNwYWNlQmVsb3cgPj0gbWluSGVpZ2h0IHx8IGlzRml4ZWRQb3NpdGlvbiAmJiB2aWV3U3BhY2VCZWxvdyA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxEb3duLCBzY3JvbGxEdXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZSB3YW50IHRvIHByb3ZpZGUgYXMgbXVjaCBvZiB0aGUgbWVudSBhcyBwb3NzaWJsZSB0byB0aGUgdXNlcixcbiAgICAgICAgLy8gc28gZ2l2ZSB0aGVtIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBiZWxvdyByYXRoZXIgdGhhbiB0aGUgbWluSGVpZ2h0LlxuICAgICAgICB2YXIgY29uc3RyYWluZWRIZWlnaHQgPSBpc0ZpeGVkUG9zaXRpb24gPyB2aWV3U3BhY2VCZWxvdyAtIG1hcmdpbkJvdHRvbSA6IHNjcm9sbFNwYWNlQmVsb3cgLSBtYXJnaW5Cb3R0b207XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IGNvbnN0cmFpbmVkSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIDQuIEZvcmtlZCBiZXZpb3VyIHdoZW4gdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGJlbG93XG5cbiAgICAgIC8vIEFVVE86IGZsaXAgdGhlIG1lbnUsIHJlbmRlciBhYm92ZVxuICAgICAgaWYgKHByZWZlcnJlZFBsYWNlbWVudCA9PT0gJ2F1dG8nIHx8IGlzRml4ZWRQb3NpdGlvbikge1xuICAgICAgICAvLyBtYXkgbmVlZCB0byBiZSBjb25zdHJhaW5lZCBhZnRlciBmbGlwcGluZ1xuICAgICAgICB2YXIgX2NvbnN0cmFpbmVkSGVpZ2h0ID0gcHJlZmVycmVkTWF4SGVpZ2h0O1xuICAgICAgICB2YXIgc3BhY2VBYm92ZSA9IGlzRml4ZWRQb3NpdGlvbiA/IHZpZXdTcGFjZUFib3ZlIDogc2Nyb2xsU3BhY2VBYm92ZTtcbiAgICAgICAgaWYgKHNwYWNlQWJvdmUgPj0gbWluSGVpZ2h0KSB7XG4gICAgICAgICAgX2NvbnN0cmFpbmVkSGVpZ2h0ID0gTWF0aC5taW4oc3BhY2VBYm92ZSAtIG1hcmdpbkJvdHRvbSAtIGNvbnRyb2xIZWlnaHQsIHByZWZlcnJlZE1heEhlaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgIG1heEhlaWdodDogX2NvbnN0cmFpbmVkSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEJPVFRPTTogYWxsb3cgYnJvd3NlciB0byBpbmNyZWFzZSBzY3JvbGxhYmxlIGFyZWEgYW5kIGltbWVkaWF0ZWx5IHNldCBzY3JvbGxcbiAgICAgIGlmIChwcmVmZXJyZWRQbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGlmIChzaG91bGRTY3JvbGwpIHtcbiAgICAgICAgICBzY3JvbGxUbyhzY3JvbGxQYXJlbnQsIHNjcm9sbERvd24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIC8vIDE6IHRoZSBtZW51IHdpbGwgZml0LCBkbyBub3RoaW5nXG4gICAgICBpZiAodmlld1NwYWNlQWJvdmUgPj0gbWVudUhlaWdodCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgICAgbWF4SGVpZ2h0OiBwcmVmZXJyZWRNYXhIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gMjogdGhlIG1lbnUgd2lsbCBmaXQsIGlmIHNjcm9sbGVkXG4gICAgICBpZiAoc2Nyb2xsU3BhY2VBYm92ZSA+PSBtZW51SGVpZ2h0ICYmICFpc0ZpeGVkUG9zaXRpb24pIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxVcCwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHByZWZlcnJlZE1heEhlaWdodFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyAzOiB0aGUgbWVudSB3aWxsIGZpdCwgaWYgY29uc3RyYWluZWRcbiAgICAgIGlmICghaXNGaXhlZFBvc2l0aW9uICYmIHNjcm9sbFNwYWNlQWJvdmUgPj0gbWluSGVpZ2h0IHx8IGlzRml4ZWRQb3NpdGlvbiAmJiB2aWV3U3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQpIHtcbiAgICAgICAgdmFyIF9jb25zdHJhaW5lZEhlaWdodDIgPSBwcmVmZXJyZWRNYXhIZWlnaHQ7XG5cbiAgICAgICAgLy8gd2Ugd2FudCB0byBwcm92aWRlIGFzIG11Y2ggb2YgdGhlIG1lbnUgYXMgcG9zc2libGUgdG8gdGhlIHVzZXIsXG4gICAgICAgIC8vIHNvIGdpdmUgdGhlbSB3aGF0ZXZlciBpcyBhdmFpbGFibGUgYmVsb3cgcmF0aGVyIHRoYW4gdGhlIG1pbkhlaWdodC5cbiAgICAgICAgaWYgKCFpc0ZpeGVkUG9zaXRpb24gJiYgc2Nyb2xsU3BhY2VBYm92ZSA+PSBtaW5IZWlnaHQgfHwgaXNGaXhlZFBvc2l0aW9uICYmIHZpZXdTcGFjZUFib3ZlID49IG1pbkhlaWdodCkge1xuICAgICAgICAgIF9jb25zdHJhaW5lZEhlaWdodDIgPSBpc0ZpeGVkUG9zaXRpb24gPyB2aWV3U3BhY2VBYm92ZSAtIG1hcmdpblRvcCA6IHNjcm9sbFNwYWNlQWJvdmUgLSBtYXJnaW5Ub3A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCkge1xuICAgICAgICAgIGFuaW1hdGVkU2Nyb2xsVG8oc2Nyb2xsUGFyZW50LCBzY3JvbGxVcCwgc2Nyb2xsRHVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IF9jb25zdHJhaW5lZEhlaWdodDJcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gNC4gbm90IGVub3VnaCBzcGFjZSwgdGhlIGJyb3dzZXIgV0lMTCBOT1QgaW5jcmVhc2Ugc2Nyb2xsYWJsZSBhcmVhIHdoZW5cbiAgICAgIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZCBlbGVtZW50IHJlbmRlcmVkIGFib3ZlIHRoZSB2aWV3cG9ydCAob25seSBiZWxvdykuXG4gICAgICAvLyBGbGlwIHRoZSBtZW51LCByZW5kZXIgYmVsb3dcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICAgIG1heEhlaWdodDogcHJlZmVycmVkTWF4SGVpZ2h0XG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHBsYWNlbWVudCBwcm92aWRlZCBcXFwiXCIuY29uY2F0KHByZWZlcnJlZFBsYWNlbWVudCwgXCJcXFwiLlwiKSk7XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRTdGF0ZTtcbn1cblxuLy8gTWVudSBDb21wb25lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBhbGlnblRvQ29udHJvbChwbGFjZW1lbnQpIHtcbiAgdmFyIHBsYWNlbWVudFRvQ1NTUHJvcCA9IHtcbiAgICBib3R0b206ICd0b3AnLFxuICAgIHRvcDogJ2JvdHRvbSdcbiAgfTtcbiAgcmV0dXJuIHBsYWNlbWVudCA/IHBsYWNlbWVudFRvQ1NTUHJvcFtwbGFjZW1lbnRdIDogJ2JvdHRvbSc7XG59XG52YXIgY29lcmNlUGxhY2VtZW50ID0gZnVuY3Rpb24gY29lcmNlUGxhY2VtZW50KHApIHtcbiAgcmV0dXJuIHAgPT09ICdhdXRvJyA/ICdib3R0b20nIDogcDtcbn07XG52YXIgbWVudUNTUyA9IGZ1bmN0aW9uIG1lbnVDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfb2JqZWN0U3ByZWFkMjtcbiAgdmFyIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYyJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBzcGFjaW5nID0gX3JlZjIkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmMiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKChfb2JqZWN0U3ByZWFkMiA9IHtcbiAgICBsYWJlbDogJ21lbnUnXG4gIH0sIF9kZWZpbmVQcm9wZXJ0eShfb2JqZWN0U3ByZWFkMiwgYWxpZ25Ub0NvbnRyb2wocGxhY2VtZW50KSwgJzEwMCUnKSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBcInBvc2l0aW9uXCIsICdhYnNvbHV0ZScpLCBfZGVmaW5lUHJvcGVydHkoX29iamVjdFNwcmVhZDIsIFwid2lkdGhcIiwgJzEwMCUnKSwgX2RlZmluZVByb3BlcnR5KF9vYmplY3RTcHJlYWQyLCBcInpJbmRleFwiLCAxKSwgX29iamVjdFNwcmVhZDIpLCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLm5ldXRyYWwwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICAgIGJveFNoYWRvdzogJzAgMCAwIDFweCBoc2xhKDAsIDAlLCAwJSwgMC4xKSwgMCA0cHggMTFweCBoc2xhKDAsIDAlLCAwJSwgMC4xKScsXG4gICAgbWFyZ2luQm90dG9tOiBzcGFjaW5nLm1lbnVHdXR0ZXIsXG4gICAgbWFyZ2luVG9wOiBzcGFjaW5nLm1lbnVHdXR0ZXJcbiAgfSk7XG59O1xudmFyIFBvcnRhbFBsYWNlbWVudENvbnRleHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29udGV4dChudWxsKTtcblxuLy8gTk9URTogaW50ZXJuYWwgb25seVxudmFyIE1lbnVQbGFjZXIgPSBmdW5jdGlvbiBNZW51UGxhY2VyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIG1pbk1lbnVIZWlnaHQgPSBwcm9wcy5taW5NZW51SGVpZ2h0LFxuICAgIG1heE1lbnVIZWlnaHQgPSBwcm9wcy5tYXhNZW51SGVpZ2h0LFxuICAgIG1lbnVQbGFjZW1lbnQgPSBwcm9wcy5tZW51UGxhY2VtZW50LFxuICAgIG1lbnVQb3NpdGlvbiA9IHByb3BzLm1lbnVQb3NpdGlvbixcbiAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBwcm9wcy5tZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcsXG4gICAgdGhlbWUgPSBwcm9wcy50aGVtZTtcbiAgdmFyIF9yZWYzID0gdXNlQ29udGV4dChQb3J0YWxQbGFjZW1lbnRDb250ZXh0KSB8fCB7fSxcbiAgICBzZXRQb3J0YWxQbGFjZW1lbnQgPSBfcmVmMy5zZXRQb3J0YWxQbGFjZW1lbnQ7XG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShtYXhNZW51SGVpZ2h0KSxcbiAgICBfdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlLCAyKSxcbiAgICBtYXhIZWlnaHQgPSBfdXNlU3RhdGUyWzBdLFxuICAgIHNldE1heEhlaWdodCA9IF91c2VTdGF0ZTJbMV07XG4gIHZhciBfdXNlU3RhdGUzID0gdXNlU3RhdGUobnVsbCksXG4gICAgX3VzZVN0YXRlNCA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTMsIDIpLFxuICAgIHBsYWNlbWVudCA9IF91c2VTdGF0ZTRbMF0sXG4gICAgc2V0UGxhY2VtZW50ID0gX3VzZVN0YXRlNFsxXTtcbiAgdmFyIGNvbnRyb2xIZWlnaHQgPSB0aGVtZS5zcGFjaW5nLmNvbnRyb2xIZWlnaHQ7XG4gIHVzZUxheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG1lbnVFbCA9IHJlZi5jdXJyZW50O1xuICAgIGlmICghbWVudUVsKSByZXR1cm47XG5cbiAgICAvLyBETyBOT1Qgc2Nyb2xsIGlmIHBvc2l0aW9uIGlzIGZpeGVkXG4gICAgdmFyIGlzRml4ZWRQb3NpdGlvbiA9IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJztcbiAgICB2YXIgc2hvdWxkU2Nyb2xsID0gbWVudVNob3VsZFNjcm9sbEludG9WaWV3ICYmICFpc0ZpeGVkUG9zaXRpb247XG4gICAgdmFyIHN0YXRlID0gZ2V0TWVudVBsYWNlbWVudCh7XG4gICAgICBtYXhIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICBtZW51RWw6IG1lbnVFbCxcbiAgICAgIG1pbkhlaWdodDogbWluTWVudUhlaWdodCxcbiAgICAgIHBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgIHNob3VsZFNjcm9sbDogc2hvdWxkU2Nyb2xsLFxuICAgICAgaXNGaXhlZFBvc2l0aW9uOiBpc0ZpeGVkUG9zaXRpb24sXG4gICAgICBjb250cm9sSGVpZ2h0OiBjb250cm9sSGVpZ2h0XG4gICAgfSk7XG4gICAgc2V0TWF4SGVpZ2h0KHN0YXRlLm1heEhlaWdodCk7XG4gICAgc2V0UGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gICAgc2V0UG9ydGFsUGxhY2VtZW50ID09PSBudWxsIHx8IHNldFBvcnRhbFBsYWNlbWVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2V0UG9ydGFsUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIH0sIFttYXhNZW51SGVpZ2h0LCBtZW51UGxhY2VtZW50LCBtZW51UG9zaXRpb24sIG1lbnVTaG91bGRTY3JvbGxJbnRvVmlldywgbWluTWVudUhlaWdodCwgc2V0UG9ydGFsUGxhY2VtZW50LCBjb250cm9sSGVpZ2h0XSk7XG4gIHJldHVybiBjaGlsZHJlbih7XG4gICAgcmVmOiByZWYsXG4gICAgcGxhY2VyUHJvcHM6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCB7fSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQgfHwgY29lcmNlUGxhY2VtZW50KG1lbnVQbGFjZW1lbnQpLFxuICAgICAgbWF4SGVpZ2h0OiBtYXhIZWlnaHRcbiAgICB9KVxuICB9KTtcbn07XG52YXIgTWVudSA9IGZ1bmN0aW9uIE1lbnUocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ21lbnUnLCB7XG4gICAgbWVudTogdHJ1ZVxuICB9KSwge1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgTWVudSQxID0gTWVudTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW51IExpc3Rcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbWVudUxpc3RDU1MgPSBmdW5jdGlvbiBtZW51TGlzdENTUyhfcmVmNCwgdW5zdHlsZWQpIHtcbiAgdmFyIG1heEhlaWdodCA9IF9yZWY0Lm1heEhlaWdodCxcbiAgICBiYXNlVW5pdCA9IF9yZWY0LnRoZW1lLnNwYWNpbmcuYmFzZVVuaXQ7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAvLyByZXF1aXJlZCBmb3Igb2Zmc2V0W0hlaWdodCwgVG9wXSA+IGtleWJvYXJkIHNjcm9sbFxuICAgIFdlYmtpdE92ZXJmbG93U2Nyb2xsaW5nOiAndG91Y2gnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgcGFkZGluZ0JvdHRvbTogYmFzZVVuaXQsXG4gICAgcGFkZGluZ1RvcDogYmFzZVVuaXRcbiAgfSk7XG59O1xudmFyIE1lbnVMaXN0ID0gZnVuY3Rpb24gTWVudUxpc3QocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaW5uZXJSZWYgPSBwcm9wcy5pbm5lclJlZixcbiAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ21lbnVMaXN0Jywge1xuICAgICdtZW51LWxpc3QnOiB0cnVlLFxuICAgICdtZW51LWxpc3QtLWlzLW11bHRpJzogaXNNdWx0aVxuICB9KSwge1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSBOb3RpY2VzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIG5vdGljZUNTUyA9IGZ1bmN0aW9uIG5vdGljZUNTUyhfcmVmNSwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWY1JHRoZW1lID0gX3JlZjUudGhlbWUsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0LFxuICAgIGNvbG9ycyA9IF9yZWY1JHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIHRleHRBbGlnbjogJ2NlbnRlcidcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw0MCxcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChiYXNlVW5pdCAqIDIsIFwicHggXCIpLmNvbmNhdChiYXNlVW5pdCAqIDMsIFwicHhcIilcbiAgfSk7XG59O1xudmFyIG5vT3B0aW9uc01lc3NhZ2VDU1MgPSBub3RpY2VDU1M7XG52YXIgbG9hZGluZ01lc3NhZ2VDU1MgPSBub3RpY2VDU1M7XG52YXIgTm9PcHRpb25zTWVzc2FnZSA9IGZ1bmN0aW9uIE5vT3B0aW9uc01lc3NhZ2UoX3JlZjYpIHtcbiAgdmFyIF9yZWY2JGNoaWxkcmVuID0gX3JlZjYuY2hpbGRyZW4sXG4gICAgY2hpbGRyZW4gPSBfcmVmNiRjaGlsZHJlbiA9PT0gdm9pZCAwID8gJ05vIG9wdGlvbnMnIDogX3JlZjYkY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY2LmlubmVyUHJvcHMsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY2LCBfZXhjbHVkZWQkMyk7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCByZXN0UHJvcHMpLCB7fSwge1xuICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICBpbm5lclByb3BzOiBpbm5lclByb3BzXG4gIH0pLCAnbm9PcHRpb25zTWVzc2FnZScsIHtcbiAgICAnbWVudS1ub3RpY2UnOiB0cnVlLFxuICAgICdtZW51LW5vdGljZS0tbm8tb3B0aW9ucyc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIExvYWRpbmdNZXNzYWdlID0gZnVuY3Rpb24gTG9hZGluZ01lc3NhZ2UoX3JlZjcpIHtcbiAgdmFyIF9yZWY3JGNoaWxkcmVuID0gX3JlZjcuY2hpbGRyZW4sXG4gICAgY2hpbGRyZW4gPSBfcmVmNyRjaGlsZHJlbiA9PT0gdm9pZCAwID8gJ0xvYWRpbmcuLi4nIDogX3JlZjckY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IF9yZWY3LmlubmVyUHJvcHMsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY3LCBfZXhjbHVkZWQyJDEpO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcmVzdFByb3BzKSwge30sIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wczogaW5uZXJQcm9wc1xuICB9KSwgJ2xvYWRpbmdNZXNzYWdlJywge1xuICAgICdtZW51LW5vdGljZSc6IHRydWUsXG4gICAgJ21lbnUtbm90aWNlLS1sb2FkaW5nJzogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSBQb3J0YWxcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbWVudVBvcnRhbENTUyA9IGZ1bmN0aW9uIG1lbnVQb3J0YWxDU1MoX3JlZjgpIHtcbiAgdmFyIHJlY3QgPSBfcmVmOC5yZWN0LFxuICAgIG9mZnNldCA9IF9yZWY4Lm9mZnNldCxcbiAgICBwb3NpdGlvbiA9IF9yZWY4LnBvc2l0aW9uO1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IHJlY3QubGVmdCxcbiAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgdG9wOiBvZmZzZXQsXG4gICAgd2lkdGg6IHJlY3Qud2lkdGgsXG4gICAgekluZGV4OiAxXG4gIH07XG59O1xudmFyIE1lbnVQb3J0YWwgPSBmdW5jdGlvbiBNZW51UG9ydGFsKHByb3BzKSB7XG4gIHZhciBhcHBlbmRUbyA9IHByb3BzLmFwcGVuZFRvLFxuICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY29udHJvbEVsZW1lbnQgPSBwcm9wcy5jb250cm9sRWxlbWVudCxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBtZW51UGxhY2VtZW50ID0gcHJvcHMubWVudVBsYWNlbWVudCxcbiAgICBtZW51UG9zaXRpb24gPSBwcm9wcy5tZW51UG9zaXRpb247XG4gIHZhciBtZW51UG9ydGFsUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgY2xlYW51cFJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIF91c2VTdGF0ZTUgPSB1c2VTdGF0ZShjb2VyY2VQbGFjZW1lbnQobWVudVBsYWNlbWVudCkpLFxuICAgIF91c2VTdGF0ZTYgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU1LCAyKSxcbiAgICBwbGFjZW1lbnQgPSBfdXNlU3RhdGU2WzBdLFxuICAgIHNldFBvcnRhbFBsYWNlbWVudCA9IF91c2VTdGF0ZTZbMV07XG4gIHZhciBwb3J0YWxQbGFjZW1lbnRDb250ZXh0ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFBvcnRhbFBsYWNlbWVudDogc2V0UG9ydGFsUGxhY2VtZW50XG4gICAgfTtcbiAgfSwgW10pO1xuICB2YXIgX3VzZVN0YXRlNyA9IHVzZVN0YXRlKG51bGwpLFxuICAgIF91c2VTdGF0ZTggPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGU3LCAyKSxcbiAgICBjb21wdXRlZFBvc2l0aW9uID0gX3VzZVN0YXRlOFswXSxcbiAgICBzZXRDb21wdXRlZFBvc2l0aW9uID0gX3VzZVN0YXRlOFsxXTtcbiAgdmFyIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb24gPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFjb250cm9sRWxlbWVudCkgcmV0dXJuO1xuICAgIHZhciByZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRPYmooY29udHJvbEVsZW1lbnQpO1xuICAgIHZhciBzY3JvbGxEaXN0YW5jZSA9IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IDAgOiB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgdmFyIG9mZnNldCA9IHJlY3RbcGxhY2VtZW50XSArIHNjcm9sbERpc3RhbmNlO1xuICAgIGlmIChvZmZzZXQgIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0KSB8fCByZWN0LmxlZnQgIT09IChjb21wdXRlZFBvc2l0aW9uID09PSBudWxsIHx8IGNvbXB1dGVkUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbXB1dGVkUG9zaXRpb24ucmVjdC5sZWZ0KSB8fCByZWN0LndpZHRoICE9PSAoY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3Qud2lkdGgpKSB7XG4gICAgICBzZXRDb21wdXRlZFBvc2l0aW9uKHtcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIHJlY3Q6IHJlY3RcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2NvbnRyb2xFbGVtZW50LCBtZW51UG9zaXRpb24sIHBsYWNlbWVudCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLm9mZnNldCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3QubGVmdCwgY29tcHV0ZWRQb3NpdGlvbiA9PT0gbnVsbCB8fCBjb21wdXRlZFBvc2l0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb21wdXRlZFBvc2l0aW9uLnJlY3Qud2lkdGhdKTtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB1cGRhdGVDb21wdXRlZFBvc2l0aW9uKCk7XG4gIH0sIFt1cGRhdGVDb21wdXRlZFBvc2l0aW9uXSk7XG4gIHZhciBydW5BdXRvVXBkYXRlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKCkge1xuICAgIGlmICh0eXBlb2YgY2xlYW51cFJlZi5jdXJyZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjbGVhbnVwUmVmLmN1cnJlbnQoKTtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChjb250cm9sRWxlbWVudCAmJiBtZW51UG9ydGFsUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFudXBSZWYuY3VycmVudCA9IGF1dG9VcGRhdGUoY29udHJvbEVsZW1lbnQsIG1lbnVQb3J0YWxSZWYuY3VycmVudCwgdXBkYXRlQ29tcHV0ZWRQb3NpdGlvbiwge1xuICAgICAgICBlbGVtZW50UmVzaXplOiAnUmVzaXplT2JzZXJ2ZXInIGluIHdpbmRvd1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbY29udHJvbEVsZW1lbnQsIHVwZGF0ZUNvbXB1dGVkUG9zaXRpb25dKTtcbiAgdXNlTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBydW5BdXRvVXBkYXRlKCk7XG4gIH0sIFtydW5BdXRvVXBkYXRlXSk7XG4gIHZhciBzZXRNZW51UG9ydGFsRWxlbWVudCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChtZW51UG9ydGFsRWxlbWVudCkge1xuICAgIG1lbnVQb3J0YWxSZWYuY3VycmVudCA9IG1lbnVQb3J0YWxFbGVtZW50O1xuICAgIHJ1bkF1dG9VcGRhdGUoKTtcbiAgfSwgW3J1bkF1dG9VcGRhdGVdKTtcblxuICAvLyBiYWlsIGVhcmx5IGlmIHJlcXVpcmVkIGVsZW1lbnRzIGFyZW4ndCBwcmVzZW50XG4gIGlmICghYXBwZW5kVG8gJiYgbWVudVBvc2l0aW9uICE9PSAnZml4ZWQnIHx8ICFjb21wdXRlZFBvc2l0aW9uKSByZXR1cm4gbnVsbDtcblxuICAvLyBzYW1lIHdyYXBwZXIgZWxlbWVudCB3aGV0aGVyIGZpeGVkIG9yIHBvcnRhbGxlZFxuICB2YXIgbWVudVdyYXBwZXIgPSBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgIHJlZjogc2V0TWVudVBvcnRhbEVsZW1lbnRcbiAgfSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHByb3BzKSwge30sIHtcbiAgICBvZmZzZXQ6IGNvbXB1dGVkUG9zaXRpb24ub2Zmc2V0LFxuICAgIHBvc2l0aW9uOiBtZW51UG9zaXRpb24sXG4gICAgcmVjdDogY29tcHV0ZWRQb3NpdGlvbi5yZWN0XG4gIH0pLCAnbWVudVBvcnRhbCcsIHtcbiAgICAnbWVudS1wb3J0YWwnOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xuICByZXR1cm4ganN4KFBvcnRhbFBsYWNlbWVudENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogcG9ydGFsUGxhY2VtZW50Q29udGV4dFxuICB9LCBhcHBlbmRUbyA/IC8qI19fUFVSRV9fKi9jcmVhdGVQb3J0YWwobWVudVdyYXBwZXIsIGFwcGVuZFRvKSA6IG1lbnVXcmFwcGVyKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUm9vdCBDb250YWluZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgY29udGFpbmVyQ1NTID0gZnVuY3Rpb24gY29udGFpbmVyQ1NTKF9yZWYpIHtcbiAgdmFyIGlzRGlzYWJsZWQgPSBfcmVmLmlzRGlzYWJsZWQsXG4gICAgaXNSdGwgPSBfcmVmLmlzUnRsO1xuICByZXR1cm4ge1xuICAgIGxhYmVsOiAnY29udGFpbmVyJyxcbiAgICBkaXJlY3Rpb246IGlzUnRsID8gJ3J0bCcgOiB1bmRlZmluZWQsXG4gICAgcG9pbnRlckV2ZW50czogaXNEaXNhYmxlZCA/ICdub25lJyA6IHVuZGVmaW5lZCxcbiAgICAvLyBjYW5jZWwgbW91c2UgZXZlbnRzIHdoZW4gZGlzYWJsZWRcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJ1xuICB9O1xufTtcbnZhciBTZWxlY3RDb250YWluZXIgPSBmdW5jdGlvbiBTZWxlY3RDb250YWluZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHMsXG4gICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgaXNSdGwgPSBwcm9wcy5pc1J0bDtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NvbnRhaW5lcicsIHtcbiAgICAnLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJy0taXMtcnRsJzogaXNSdGxcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhbHVlIENvbnRhaW5lclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciB2YWx1ZUNvbnRhaW5lckNTUyA9IGZ1bmN0aW9uIHZhbHVlQ29udGFpbmVyQ1NTKF9yZWYyLCB1bnN0eWxlZCkge1xuICB2YXIgc3BhY2luZyA9IF9yZWYyLnRoZW1lLnNwYWNpbmcsXG4gICAgaXNNdWx0aSA9IF9yZWYyLmlzTXVsdGksXG4gICAgaGFzVmFsdWUgPSBfcmVmMi5oYXNWYWx1ZSxcbiAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfcmVmMi5zZWxlY3RQcm9wcy5jb250cm9sU2hvdWxkUmVuZGVyVmFsdWU7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiBpc011bHRpICYmIGhhc1ZhbHVlICYmIGNvbnRyb2xTaG91bGRSZW5kZXJWYWx1ZSA/ICdmbGV4JyA6ICdncmlkJyxcbiAgICBmbGV4OiAxLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgV2Via2l0T3ZlcmZsb3dTY3JvbGxpbmc6ICd0b3VjaCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgcGFkZGluZzogXCJcIi5jb25jYXQoc3BhY2luZy5iYXNlVW5pdCAvIDIsIFwicHggXCIpLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMiwgXCJweFwiKVxuICB9KTtcbn07XG52YXIgVmFsdWVDb250YWluZXIgPSBmdW5jdGlvbiBWYWx1ZUNvbnRhaW5lcihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aSxcbiAgICBoYXNWYWx1ZSA9IHByb3BzLmhhc1ZhbHVlO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAndmFsdWVDb250YWluZXInLCB7XG4gICAgJ3ZhbHVlLWNvbnRhaW5lcic6IHRydWUsXG4gICAgJ3ZhbHVlLWNvbnRhaW5lci0taXMtbXVsdGknOiBpc011bHRpLFxuICAgICd2YWx1ZS1jb250YWluZXItLWhhcy12YWx1ZSc6IGhhc1ZhbHVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbmRpY2F0b3IgQ29udGFpbmVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudmFyIGluZGljYXRvcnNDb250YWluZXJDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JzQ29udGFpbmVyQ1NTKCkge1xuICByZXR1cm4ge1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4U2hyaW5rOiAwXG4gIH07XG59O1xudmFyIEluZGljYXRvcnNDb250YWluZXIgPSBmdW5jdGlvbiBJbmRpY2F0b3JzQ29udGFpbmVyKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yc0NvbnRhaW5lcicsIHtcbiAgICBpbmRpY2F0b3JzOiB0cnVlXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcblxudmFyIF90ZW1wbGF0ZU9iamVjdDtcbnZhciBfZXhjbHVkZWQkMiA9IFtcInNpemVcIl0sXG4gIF9leGNsdWRlZDIgPSBbXCJpbm5lclByb3BzXCIsIFwiaXNSdGxcIiwgXCJzaXplXCJdO1xuZnVuY3Rpb24gX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX18oKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxudmFyIF9yZWYyID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjhtbWtjZ1wiLFxuICBzdHlsZXM6IFwiZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7bGluZS1oZWlnaHQ6MTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDowXCJcbn0gOiB7XG4gIG5hbWU6IFwidGo1YmRlLVN2Z1wiLFxuICBzdHlsZXM6IFwiZGlzcGxheTppbmxpbmUtYmxvY2s7ZmlsbDpjdXJyZW50Q29sb3I7bGluZS1oZWlnaHQ6MTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDowO2xhYmVsOlN2ZztcIixcbiAgbWFwOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVhsQ1NTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldGamRFNXZaR1VnZlNCbWNtOXRJQ2R5WldGamRDYzdYRzVwYlhCdmNuUWdleUJxYzNnc0lHdGxlV1p5WVcxbGN5QjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwzSmxZV04wSnp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUTI5dGJXOXVVSEp2Y0hOQmJtUkRiR0Z6YzA1aGJXVXNYRzRnSUVOVFUwOWlhbVZqZEZkcGRHaE1ZV0psYkN4Y2JpQWdSM0p2ZFhCQ1lYTmxMRnh1ZlNCbWNtOXRJQ2N1TGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCblpYUlRkSGxzWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmk4dklFUnliM0JrYjNkdUlDWWdRMnhsWVhJZ1NXTnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1amIyNXpkQ0JUZG1jZ1BTQW9lMXh1SUNCemFYcGxMRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVG9nYm5WdFltVnlJSDBwSUQwK0lDaGNiaUFnUEhOMloxeHVJQ0FnSUdobGFXZG9kRDE3YzJsNlpYMWNiaUFnSUNCM2FXUjBhRDE3YzJsNlpYMWNiaUFnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3SURJd1hDSmNiaUFnSUNCaGNtbGhMV2hwWkdSbGJqMWNJblJ5ZFdWY0lseHVJQ0FnSUdadlkzVnpZV0pzWlQxY0ltWmhiSE5sWENKY2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnWm1sc2JEb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCc2FXNWxTR1ZwWjJoME9pQXhMRnh1SUNBZ0lDQWdjM1J5YjJ0bE9pQW5ZM1Z5Y21WdWRFTnZiRzl5Snl4Y2JpQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXdMRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EzSnZjM05KWTI5dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1EzSnZjM05KWTI5dUlEMGdLSEJ5YjNCek9pQkRjbTl6YzBsamIyNVFjbTl3Y3lrZ1BUNGdLRnh1SUNBOFUzWm5JSE5wZW1VOWV6SXdmU0I3TGk0dWNISnZjSE45UGx4dUlDQWdJRHh3WVhSb0lHUTlYQ0pOTVRRdU16UTRJREUwTGpnME9XTXRNQzQwTmprZ01DNDBOamt0TVM0eU1qa2dNQzQwTmprdE1TNDJPVGNnTUd3dE1pNDJOVEV0TXk0d016QXRNaTQyTlRFZ015NHdNamxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQXRNQzQwTmprdE1DNDBOamt0TUM0ME5qa3RNUzR5TWprZ01DMHhMalk1TjJ3eUxqYzFPQzB6TGpFMUxUSXVOelU1TFRNdU1UVXlZeTB3TGpRMk9TMHdMalEyT1Mwd0xqUTJPUzB4TGpJeU9DQXdMVEV1TmprM2N6RXVNakk0TFRBdU5EWTVJREV1TmprM0lEQnNNaTQyTlRJZ015NHdNekVnTWk0Mk5URXRNeTR3TXpGak1DNDBOamt0TUM0ME5qa2dNUzR5TWpndE1DNDBOamtnTVM0Mk9UY2dNSE13TGpRMk9TQXhMakl5T1NBd0lERXVOamszYkMweUxqYzFPQ0F6TGpFMU1pQXlMamMxT0NBekxqRTFZekF1TkRZNUlEQXVORFk1SURBdU5EWTVJREV1TWpJNUlEQWdNUzQyT1RoNlhDSWdMejVjYmlBZ1BDOVRkbWMrWEc0cE8xeHVaWGh3YjNKMElIUjVjR1VnUkc5M2JrTm9aWFp5YjI1UWNtOXdjeUE5SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VL09pQnVkVzFpWlhJZ2ZUdGNibVY0Y0c5eWRDQmpiMjV6ZENCRWIzZHVRMmhsZG5KdmJpQTlJQ2h3Y205d2N6b2dSRzkzYmtOb1pYWnliMjVRY205d2N5a2dQVDRnS0Z4dUlDQThVM1puSUhOcGVtVTllekl3ZlNCN0xpNHVjSEp2Y0hOOVBseHVJQ0FnSUR4d1lYUm9JR1E5WENKTk5DNDFNVFlnTnk0MU5EaGpNQzQwTXpZdE1DNDBORFlnTVM0d05ETXRNQzQwT0RFZ01TNDFOellnTUd3ekxqa3dPQ0F6TGpjME55QXpMamt3T0MwekxqYzBOMk13TGpVek15MHdMalE0TVNBeExqRTBNUzB3TGpRME5pQXhMalUzTkNBd0lEQXVORE0ySURBdU5EUTFJREF1TkRBNElERXVNVGszSURBZ01TNDJNVFV0TUM0ME1EWWdNQzQwTVRndE5DNDJPVFVnTkM0MU1ESXROQzQyT1RVZ05DNDFNREl0TUM0eU1UY2dNQzR5TWpNdE1DNDFNRElnTUM0ek16VXRNQzQzT0RjZ01DNHpNelZ6TFRBdU5UY3RNQzR4TVRJdE1DNDNPRGt0TUM0ek16VmpNQ0F3TFRRdU1qZzNMVFF1TURnMExUUXVOamsxTFRRdU5UQXljeTB3TGpRek5pMHhMakUzSURBdE1TNDJNVFY2WENJZ0x6NWNiaUFnUEM5VGRtYytYRzRwTzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRVJ5YjNCa2IzZHVJQ1lnUTJ4bFlYSWdRblYwZEc5dWMxeHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSSEp2Y0dSdmQyNUpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlVhR1VnWTJocGJHUnlaVzRnZEc4Z1ltVWdjbVZ1WkdWeVpXUWdhVzV6YVdSbElIUm9aU0JwYm1ScFkyRjBiM0l1SUNvdlhHNGdJR05vYVd4a2NtVnVQem9nVW1WaFkzUk9iMlJsTzF4dUlDQXZLaW9nVUhKdmNITWdkR2hoZENCM2FXeHNJR0psSUhCaGMzTmxaQ0J2YmlCMGJ5QjBhR1VnWTJocGJHUnlaVzR1SUNvdlhHNGdJR2x1Ym1WeVVISnZjSE02SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25aR2wySjEwN1hHNGdJQzhxS2lCVWFHVWdabTlqZFhObFpDQnpkR0YwWlNCdlppQjBhR1VnYzJWc1pXTjBMaUFxTDF4dUlDQnBjMFp2WTNWelpXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJHbHpZV0pzWldRNklHSnZiMnhsWVc0N1hHNTlYRzVjYm1OdmJuTjBJR0poYzJWRFUxTWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9YRzRnSUh0Y2JpQWdJQ0JwYzBadlkzVnpaV1FzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lITndZV05wYm1jNklIc2dZbUZ6WlZWdWFYUWdmU3hjYmlBZ0lDQWdJR052Ykc5eWN5eGNiaUFnSUNCOUxGeHVJQ0I5T2x4dUlDQWdJSHdnUkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pRY205d2N6eFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGx4dUlDQWdJSHdnUTJ4bFlYSkpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMmx1WkdsallYUnZja052Ym5SaGFXNWxjaWNzWEc0Z0lHUnBjM0JzWVhrNklDZG1iR1Y0Snl4Y2JpQWdkSEpoYm5OcGRHbHZiam9nSjJOdmJHOXlJREUxTUcxekp5eGNiaUFnTGk0dUtIVnVjM1I1YkdWa1hHNGdJQ0FnUHlCN2ZWeHVJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ2FYTkdiMk4xYzJWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3Mk1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ0p6cG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dhWE5HYjJOMWMyVmtJRDhnWTI5c2IzSnpMbTVsZFhSeVlXdzRNQ0E2SUdOdmJHOXljeTV1WlhWMGNtRnNOREFzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtTeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pEVTFNZ1BTQmlZWE5sUTFOVE8xeHVaWGh3YjNKMElHTnZibk4wSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQndjbTl3Y3pvZ1JISnZjR1J2ZDI1SmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblpISnZjR1J2ZDI1SmJtUnBZMkYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJR2x1WkdsallYUnZjam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdKMlJ5YjNCa2IzZHVMV2x1WkdsallYUnZjaWM2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYmlCOGZDQThSRzkzYmtOb1pYWnliMjRnTHo1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkpibVJwWTJGMGIzSkRVMU1nUFNCaVlYTmxRMU5UTzF4dVpYaHdiM0owSUdOdmJuTjBJRU5zWldGeVNXNWthV05oZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dRMnhsWVhKSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblkyeGxZWEpKYm1ScFkyRjBiM0luTENCN1hHNGdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0oyTnNaV0Z5TFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJpQjhmQ0E4UTNKdmMzTkpZMjl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QlRaWEJoY21GMGIzSmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ2FYTkVhWE5oWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBibTVsY2xCeWIzQnpQem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBibVJwWTJGMGIzSlRaWEJoY21GMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwUnBjMkZpYkdWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUb2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0luTEZ4dUlDQmhiR2xuYmxObGJHWTZJQ2R6ZEhKbGRHTm9KeXhjYmlBZ2QybGtkR2c2SURFc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lCcGMwUnBjMkZpYkdWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3eE1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ1ltRnpaVlZ1YVhRZ0tpQXlMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNVViM0E2SUdKaGMyVlZibWwwSUNvZ01peGNiaUFnSUNBZ0lIMHBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJZ1BTQThYRzRnSUU5d2RHbHZiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0b1hHNGdJSEJ5YjNCek9pQkpibVJwWTJGMGIzSlRaWEJoY21GMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQbHh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSHNnYVc1dVpYSlFjbTl3Y3lCOUlEMGdjSEp2Y0hNN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BITndZVzVjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb2NISnZjSE1zSUNkcGJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJQ2RwYm1ScFkyRjBiM0l0YzJWd1lYSmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJSDBwZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5TzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRXh2WVdScGJtZGNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVqYjI1emRDQnNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjeUE5SUd0bGVXWnlZVzFsYzJCY2JpQWdNQ1VzSURnd0pTd2dNVEF3SlNCN0lHOXdZV05wZEhrNklEQTdJSDFjYmlBZ05EQWxJSHNnYjNCaFkybDBlVG9nTVRzZ2ZWeHVZRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdScGJtZEpibVJwWTJGMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwWnZZM1Z6WldRc1hHNGdJQ0FnYzJsNlpTeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnWTI5c2IzSnpMRnh1SUNBZ0lDQWdjM0JoWTJsdVp6b2dleUJpWVhObFZXNXBkQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lIUnlZVzV6YVhScGIyNDZJQ2RqYjJ4dmNpQXhOVEJ0Y3ljc1hHNGdJR0ZzYVdkdVUyVnNaam9nSjJObGJuUmxjaWNzWEc0Z0lHWnZiblJUYVhwbE9pQnphWHBsTEZ4dUlDQnNhVzVsU0dWcFoyaDBPaUF4TEZ4dUlDQnRZWEpuYVc1U2FXZG9kRG9nYzJsNlpTeGNiaUFnZEdWNGRFRnNhV2R1T2lBblkyVnVkR1Z5Snl4Y2JpQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0oyMXBaR1JzWlNjc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzTmpBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRJd0xGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1cGJuUmxjbVpoWTJVZ1RHOWhaR2x1WjBSdmRGQnliM0J6SUh0Y2JpQWdaR1ZzWVhrNklHNTFiV0psY2p0Y2JpQWdiMlptYzJWME9pQmliMjlzWldGdU8xeHVmVnh1WTI5dWMzUWdURzloWkdsdVowUnZkQ0E5SUNoN0lHUmxiR0Y1TENCdlptWnpaWFFnZlRvZ1RHOWhaR2x1WjBSdmRGQnliM0J6S1NBOVBpQW9YRzRnSUR4emNHRnVYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUdBa2UyeHZZV1JwYm1kRWIzUkJibWx0WVhScGIyNXpmU0F4Y3lCbFlYTmxMV2x1TFc5MWRDQWtlMlJsYkdGNWZXMXpJR2x1Wm1sdWFYUmxPMkFzWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ1ltOXlaR1Z5VW1Ga2FYVnpPaUFuTVdWdEp5eGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ2IyWm1jMlYwSUQ4Z0p6RmxiU2NnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUNjeFpXMG5MRnh1SUNBZ0lDQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0ozUnZjQ2NzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dKekZsYlNjc1hHNGdJQ0FnZlgxY2JpQWdMejVjYmlrN1hHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdURzloWkdsdVowbHVaR2xqWVhSdmNsQnliM0J6UEZ4dUlDQlBjSFJwYjI0Z1BTQjFibXR1YjNkdUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpQTlJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNGdQU0JIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGlCbGVIUmxibVJ6SUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0lIdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1SUNBdktpb2dVMlYwSUhOcGVtVWdiMllnZEdobElHTnZiblJoYVc1bGNpNGdLaTljYmlBZ2MybDZaVG9nYm5WdFltVnlPMXh1ZlZ4dVpYaHdiM0owSUdOdmJuTjBJRXh2WVdScGJtZEpibVJwWTJGMGIzSWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9lMXh1SUNCcGJtNWxjbEJ5YjNCekxGeHVJQ0JwYzFKMGJDeGNiaUFnYzJsNlpTQTlJRFFzWEc0Z0lDNHVMbkpsYzNSUWNtOXdjMXh1ZlRvZ1RHOWhaR2x1WjBsdVpHbGpZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0tTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRseHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb1hHNGdJQ0FnSUNBZ0lIc2dMaTR1Y21WemRGQnliM0J6TENCcGJtNWxjbEJ5YjNCekxDQnBjMUowYkN3Z2MybDZaU0I5TEZ4dUlDQWdJQ0FnSUNBbmJHOWhaR2x1WjBsdVpHbGpZWFJ2Y2ljc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSjJ4dllXUnBibWN0YVc1a2FXTmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeE1iMkZrYVc1blJHOTBJR1JsYkdGNVBYc3dmU0J2Wm1aelpYUTllMmx6VW5Sc2ZTQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllekUyTUgwZ2IyWm1jMlYwSUM4K1hHNGdJQ0FnSUNBOFRHOWhaR2x1WjBSdmRDQmtaV3hoZVQxN016SXdmU0J2Wm1aelpYUTlleUZwYzFKMGJIMGdMejVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfX1xufTtcbnZhciBTdmcgPSBmdW5jdGlvbiBTdmcoX3JlZikge1xuICB2YXIgc2l6ZSA9IF9yZWYuc2l6ZSxcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBfZXhjbHVkZWQkMik7XG4gIHJldHVybiBqc3goXCJzdmdcIiwgX2V4dGVuZHMoe1xuICAgIGhlaWdodDogc2l6ZSxcbiAgICB3aWR0aDogc2l6ZSxcbiAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgZm9jdXNhYmxlOiBcImZhbHNlXCIsXG4gICAgY3NzOiBfcmVmMlxuICB9LCBwcm9wcykpO1xufTtcbnZhciBDcm9zc0ljb24gPSBmdW5jdGlvbiBDcm9zc0ljb24ocHJvcHMpIHtcbiAgcmV0dXJuIGpzeChTdmcsIF9leHRlbmRzKHtcbiAgICBzaXplOiAyMFxuICB9LCBwcm9wcyksIGpzeChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiXG4gIH0pKTtcbn07XG52YXIgRG93bkNoZXZyb24gPSBmdW5jdGlvbiBEb3duQ2hldnJvbihwcm9wcykge1xuICByZXR1cm4ganN4KFN2ZywgX2V4dGVuZHMoe1xuICAgIHNpemU6IDIwXG4gIH0sIHByb3BzKSwganN4KFwicGF0aFwiLCB7XG4gICAgZDogXCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCJcbiAgfSkpO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgYmFzZUNTUyA9IGZ1bmN0aW9uIGJhc2VDU1MoX3JlZjMsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmMy5pc0ZvY3VzZWQsXG4gICAgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBiYXNlVW5pdCA9IF9yZWYzJHRoZW1lLnNwYWNpbmcuYmFzZVVuaXQsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgICAnOmhvdmVyJzoge1xuICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwXG4gICAgfVxuICB9KTtcbn07XG52YXIgZHJvcGRvd25JbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIERyb3Bkb3duSW5kaWNhdG9yID0gZnVuY3Rpb24gRHJvcGRvd25JbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdkcm9wZG93bkluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2Ryb3Bkb3duLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goRG93bkNoZXZyb24sIG51bGwpKTtcbn07XG52YXIgY2xlYXJJbmRpY2F0b3JDU1MgPSBiYXNlQ1NTO1xudmFyIENsZWFySW5kaWNhdG9yID0gZnVuY3Rpb24gQ2xlYXJJbmRpY2F0b3IocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjbGVhckluZGljYXRvcicsIHtcbiAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBjaGlsZHJlbiB8fCBqc3goQ3Jvc3NJY29uLCBudWxsKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlcGFyYXRvclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbnZhciBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSBmdW5jdGlvbiBpbmRpY2F0b3JTZXBhcmF0b3JDU1MoX3JlZjQsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZjQuaXNEaXNhYmxlZCxcbiAgICBfcmVmNCR0aGVtZSA9IF9yZWY0LnRoZW1lLFxuICAgIGJhc2VVbml0ID0gX3JlZjQkdGhlbWUuc3BhY2luZy5iYXNlVW5pdCxcbiAgICBjb2xvcnMgPSBfcmVmNCR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gICAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gICAgd2lkdGg6IDFcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMlxuICB9KTtcbn07XG52YXIgSW5kaWNhdG9yU2VwYXJhdG9yID0gZnVuY3Rpb24gSW5kaWNhdG9yU2VwYXJhdG9yKHByb3BzKSB7XG4gIHZhciBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwgX2V4dGVuZHMoe30sIGlubmVyUHJvcHMsIGdldFN0eWxlUHJvcHMocHJvcHMsICdpbmRpY2F0b3JTZXBhcmF0b3InLCB7XG4gICAgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlXG4gIH0pKSk7XG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvYWRpbmdcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG52YXIgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXMoX3RlbXBsYXRlT2JqZWN0IHx8IChfdGVtcGxhdGVPYmplY3QgPSBfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsKFtcIlxcbiAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDA7IH1cXG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cXG5cIl0pKSk7XG52YXIgbG9hZGluZ0luZGljYXRvckNTUyA9IGZ1bmN0aW9uIGxvYWRpbmdJbmRpY2F0b3JDU1MoX3JlZjUsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0ZvY3VzZWQgPSBfcmVmNS5pc0ZvY3VzZWQsXG4gICAgc2l6ZSA9IF9yZWY1LnNpemUsXG4gICAgX3JlZjUkdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICBjb2xvcnMgPSBfcmVmNSR0aGVtZS5jb2xvcnMsXG4gICAgYmFzZVVuaXQgPSBfcmVmNSR0aGVtZS5zcGFjaW5nLmJhc2VVbml0O1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICAgIGZvbnRTaXplOiBzaXplLFxuICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDJcbiAgfSk7XG59O1xudmFyIExvYWRpbmdEb3QgPSBmdW5jdGlvbiBMb2FkaW5nRG90KF9yZWY2KSB7XG4gIHZhciBkZWxheSA9IF9yZWY2LmRlbGF5LFxuICAgIG9mZnNldCA9IF9yZWY2Lm9mZnNldDtcbiAgcmV0dXJuIGpzeChcInNwYW5cIiwge1xuICAgIGNzczogLyojX19QVVJFX18qL2NzcyQyKHtcbiAgICAgIGFuaW1hdGlvbjogXCJcIi5jb25jYXQobG9hZGluZ0RvdEFuaW1hdGlvbnMsIFwiIDFzIGVhc2UtaW4tb3V0IFwiKS5jb25jYXQoZGVsYXksIFwibXMgaW5maW5pdGU7XCIpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkxvYWRpbmdEb3Q7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltbHVaR2xqWVhSdmNuTXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVcxUlNTSXNJbVpwYkdVaU9pSnBibVJwWTJGMGIzSnpMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldGamRFNXZaR1VnZlNCbWNtOXRJQ2R5WldGamRDYzdYRzVwYlhCdmNuUWdleUJxYzNnc0lHdGxlV1p5WVcxbGN5QjlJR1p5YjIwZ0owQmxiVzkwYVc5dUwzSmxZV04wSnp0Y2JseHVhVzF3YjNKMElIdGNiaUFnUTI5dGJXOXVVSEp2Y0hOQmJtUkRiR0Z6YzA1aGJXVXNYRzRnSUVOVFUwOWlhbVZqZEZkcGRHaE1ZV0psYkN4Y2JpQWdSM0p2ZFhCQ1lYTmxMRnh1ZlNCbWNtOXRJQ2N1TGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZXlCblpYUlRkSGxzWlZCeWIzQnpJSDBnWm5KdmJTQW5MaTR2ZFhScGJITW5PMXh1WEc0dkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmk4dklFUnliM0JrYjNkdUlDWWdRMnhsWVhJZ1NXTnZibk5jYmk4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVnh1WEc1amIyNXpkQ0JUZG1jZ1BTQW9lMXh1SUNCemFYcGxMRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkemRtY25YU0FtSUhzZ2MybDZaVG9nYm5WdFltVnlJSDBwSUQwK0lDaGNiaUFnUEhOMloxeHVJQ0FnSUdobGFXZG9kRDE3YzJsNlpYMWNiaUFnSUNCM2FXUjBhRDE3YzJsNlpYMWNiaUFnSUNCMmFXVjNRbTk0UFZ3aU1DQXdJREl3SURJd1hDSmNiaUFnSUNCaGNtbGhMV2hwWkdSbGJqMWNJblJ5ZFdWY0lseHVJQ0FnSUdadlkzVnpZV0pzWlQxY0ltWmhiSE5sWENKY2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnWm1sc2JEb2dKMk4xY25KbGJuUkRiMnh2Y2ljc1hHNGdJQ0FnSUNCc2FXNWxTR1ZwWjJoME9pQXhMRnh1SUNBZ0lDQWdjM1J5YjJ0bE9pQW5ZM1Z5Y21WdWRFTnZiRzl5Snl4Y2JpQWdJQ0FnSUhOMGNtOXJaVmRwWkhSb09pQXdMRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EzSnZjM05KWTI5dVVISnZjSE1nUFNCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKM04yWnlkZElDWWdleUJ6YVhwbFB6b2diblZ0WW1WeUlIMDdYRzVsZUhCdmNuUWdZMjl1YzNRZ1EzSnZjM05KWTI5dUlEMGdLSEJ5YjNCek9pQkRjbTl6YzBsamIyNVFjbTl3Y3lrZ1BUNGdLRnh1SUNBOFUzWm5JSE5wZW1VOWV6SXdmU0I3TGk0dWNISnZjSE45UGx4dUlDQWdJRHh3WVhSb0lHUTlYQ0pOTVRRdU16UTRJREUwTGpnME9XTXRNQzQwTmprZ01DNDBOamt0TVM0eU1qa2dNQzQwTmprdE1TNDJPVGNnTUd3dE1pNDJOVEV0TXk0d016QXRNaTQyTlRFZ015NHdNamxqTFRBdU5EWTVJREF1TkRZNUxURXVNakk1SURBdU5EWTVMVEV1TmprM0lEQXRNQzQwTmprdE1DNDBOamt0TUM0ME5qa3RNUzR5TWprZ01DMHhMalk1TjJ3eUxqYzFPQzB6TGpFMUxUSXVOelU1TFRNdU1UVXlZeTB3TGpRMk9TMHdMalEyT1Mwd0xqUTJPUzB4TGpJeU9DQXdMVEV1TmprM2N6RXVNakk0TFRBdU5EWTVJREV1TmprM0lEQnNNaTQyTlRJZ015NHdNekVnTWk0Mk5URXRNeTR3TXpGak1DNDBOamt0TUM0ME5qa2dNUzR5TWpndE1DNDBOamtnTVM0Mk9UY2dNSE13TGpRMk9TQXhMakl5T1NBd0lERXVOamszYkMweUxqYzFPQ0F6TGpFMU1pQXlMamMxT0NBekxqRTFZekF1TkRZNUlEQXVORFk1SURBdU5EWTVJREV1TWpJNUlEQWdNUzQyT1RoNlhDSWdMejVjYmlBZ1BDOVRkbWMrWEc0cE8xeHVaWGh3YjNKMElIUjVjR1VnUkc5M2JrTm9aWFp5YjI1UWNtOXdjeUE5SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25jM1puSjEwZ0ppQjdJSE5wZW1VL09pQnVkVzFpWlhJZ2ZUdGNibVY0Y0c5eWRDQmpiMjV6ZENCRWIzZHVRMmhsZG5KdmJpQTlJQ2h3Y205d2N6b2dSRzkzYmtOb1pYWnliMjVRY205d2N5a2dQVDRnS0Z4dUlDQThVM1puSUhOcGVtVTllekl3ZlNCN0xpNHVjSEp2Y0hOOVBseHVJQ0FnSUR4d1lYUm9JR1E5WENKTk5DNDFNVFlnTnk0MU5EaGpNQzQwTXpZdE1DNDBORFlnTVM0d05ETXRNQzQwT0RFZ01TNDFOellnTUd3ekxqa3dPQ0F6TGpjME55QXpMamt3T0MwekxqYzBOMk13TGpVek15MHdMalE0TVNBeExqRTBNUzB3TGpRME5pQXhMalUzTkNBd0lEQXVORE0ySURBdU5EUTFJREF1TkRBNElERXVNVGszSURBZ01TNDJNVFV0TUM0ME1EWWdNQzQwTVRndE5DNDJPVFVnTkM0MU1ESXROQzQyT1RVZ05DNDFNREl0TUM0eU1UY2dNQzR5TWpNdE1DNDFNRElnTUM0ek16VXRNQzQzT0RjZ01DNHpNelZ6TFRBdU5UY3RNQzR4TVRJdE1DNDNPRGt0TUM0ek16VmpNQ0F3TFRRdU1qZzNMVFF1TURnMExUUXVOamsxTFRRdU5UQXljeTB3TGpRek5pMHhMakUzSURBdE1TNDJNVFY2WENJZ0x6NWNiaUFnUEM5VGRtYytYRzRwTzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRVJ5YjNCa2IzZHVJQ1lnUTJ4bFlYSWdRblYwZEc5dWMxeHVMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdSSEp2Y0dSdmQyNUpibVJwWTJGMGIzSlFjbTl3Y3p4Y2JpQWdUM0IwYVc5dUlEMGdkVzVyYm05M2JpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNGdQU0JpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtJRDBnUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0Z1pYaDBaVzVrY3lCRGIyMXRiMjVRY205d2MwRnVaRU5zWVhOelRtRnRaVHhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BpQjdYRzRnSUM4cUtpQlVhR1VnWTJocGJHUnlaVzRnZEc4Z1ltVWdjbVZ1WkdWeVpXUWdhVzV6YVdSbElIUm9aU0JwYm1ScFkyRjBiM0l1SUNvdlhHNGdJR05vYVd4a2NtVnVQem9nVW1WaFkzUk9iMlJsTzF4dUlDQXZLaW9nVUhKdmNITWdkR2hoZENCM2FXeHNJR0psSUhCaGMzTmxaQ0J2YmlCMGJ5QjBhR1VnWTJocGJHUnlaVzR1SUNvdlhHNGdJR2x1Ym1WeVVISnZjSE02SUVwVFdDNUpiblJ5YVc1emFXTkZiR1Z0Wlc1MGMxc25aR2wySjEwN1hHNGdJQzhxS2lCVWFHVWdabTlqZFhObFpDQnpkR0YwWlNCdlppQjBhR1VnYzJWc1pXTjBMaUFxTDF4dUlDQnBjMFp2WTNWelpXUTZJR0p2YjJ4bFlXNDdYRzRnSUdselJHbHpZV0pzWldRNklHSnZiMnhsWVc0N1hHNTlYRzVjYm1OdmJuTjBJR0poYzJWRFUxTWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9YRzRnSUh0Y2JpQWdJQ0JwYzBadlkzVnpaV1FzWEc0Z0lDQWdkR2hsYldVNklIdGNiaUFnSUNBZ0lITndZV05wYm1jNklIc2dZbUZ6WlZWdWFYUWdmU3hjYmlBZ0lDQWdJR052Ykc5eWN5eGNiaUFnSUNCOUxGeHVJQ0I5T2x4dUlDQWdJSHdnUkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pRY205d2N6eFBjSFJwYjI0c0lFbHpUWFZzZEdrc0lFZHliM1Z3UGx4dUlDQWdJSHdnUTJ4bFlYSkpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMmx1WkdsallYUnZja052Ym5SaGFXNWxjaWNzWEc0Z0lHUnBjM0JzWVhrNklDZG1iR1Y0Snl4Y2JpQWdkSEpoYm5OcGRHbHZiam9nSjJOdmJHOXlJREUxTUcxekp5eGNiaUFnTGk0dUtIVnVjM1I1YkdWa1hHNGdJQ0FnUHlCN2ZWeHVJQ0FnSURvZ2UxeHVJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ2FYTkdiMk4xYzJWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3Mk1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJR0poYzJWVmJtbDBJQ29nTWl4Y2JpQWdJQ0FnSUNBZ0p6cG9iM1psY2ljNklIdGNiaUFnSUNBZ0lDQWdJQ0JqYjJ4dmNqb2dhWE5HYjJOMWMyVmtJRDhnWTI5c2IzSnpMbTVsZFhSeVlXdzRNQ0E2SUdOdmJHOXljeTV1WlhWMGNtRnNOREFzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtTeGNibjBwTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWkhKdmNHUnZkMjVKYm1ScFkyRjBiM0pEVTFNZ1BTQmlZWE5sUTFOVE8xeHVaWGh3YjNKMElHTnZibk4wSUVSeWIzQmtiM2R1U1c1a2FXTmhkRzl5SUQwZ1BGeHVJQ0JQY0hScGIyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVMRnh1SUNCSGNtOTFjQ0JsZUhSbGJtUnpJRWR5YjNWd1FtRnpaVHhQY0hScGIyNCtYRzQrS0Z4dUlDQndjbTl3Y3pvZ1JISnZjR1J2ZDI1SmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblpISnZjR1J2ZDI1SmJtUnBZMkYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJR2x1WkdsallYUnZjam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdKMlJ5YjNCa2IzZHVMV2x1WkdsallYUnZjaWM2SUhSeWRXVXNYRzRnSUNBZ0lDQjlLWDFjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUQ1Y2JpQWdJQ0FnSUh0amFHbHNaSEpsYmlCOGZDQThSRzkzYmtOb1pYWnliMjRnTHo1OVhHNGdJQ0FnUEM5a2FYWStYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOc1pXRnlTVzVrYVdOaGRHOXlVSEp2Y0hNOFhHNGdJRTl3ZEdsdmJpQTlJSFZ1YTI1dmQyNHNYRzRnSUVselRYVnNkR2tnWlhoMFpXNWtjeUJpYjI5c1pXRnVJRDBnWW05dmJHVmhiaXhjYmlBZ1IzSnZkWEFnWlhoMFpXNWtjeUJIY205MWNFSmhjMlU4VDNCMGFXOXVQaUE5SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0lHVjRkR1Z1WkhNZ1EyOXRiVzl1VUhKdmNITkJibVJEYkdGemMwNWhiV1U4VDNCMGFXOXVMQ0JKYzAxMWJIUnBMQ0JIY205MWNENGdlMXh1SUNBdktpb2dWR2hsSUdOb2FXeGtjbVZ1SUhSdklHSmxJSEpsYm1SbGNtVmtJR2x1YzJsa1pTQjBhR1VnYVc1a2FXTmhkRzl5TGlBcUwxeHVJQ0JqYUdsc1pISmxiajg2SUZKbFlXTjBUbTlrWlR0Y2JpQWdMeW9xSUZCeWIzQnpJSFJvWVhRZ2QybHNiQ0JpWlNCd1lYTnpaV1FnYjI0Z2RHOGdkR2hsSUdOb2FXeGtjbVZ1TGlBcUwxeHVJQ0JwYm01bGNsQnliM0J6T2lCS1UxZ3VTVzUwY21sdWMybGpSV3hsYldWdWRITmJKMlJwZGlkZE8xeHVJQ0F2S2lvZ1ZHaGxJR1p2WTNWelpXUWdjM1JoZEdVZ2IyWWdkR2hsSUhObGJHVmpkQzRnS2k5Y2JpQWdhWE5HYjJOMWMyVmtPaUJpYjI5c1pXRnVPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTJ4bFlYSkpibVJwWTJGMGIzSkRVMU1nUFNCaVlYTmxRMU5UTzF4dVpYaHdiM0owSUdOdmJuTjBJRU5zWldGeVNXNWthV05oZEc5eUlEMGdQRnh1SUNCUGNIUnBiMjRzWEc0Z0lFbHpUWFZzZEdrZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1TEZ4dUlDQkhjbTkxY0NCbGVIUmxibVJ6SUVkeWIzVndRbUZ6WlR4UGNIUnBiMjQrWEc0K0tGeHVJQ0J3Y205d2N6b2dRMnhsWVhKSmJtUnBZMkYwYjNKUWNtOXdjenhQY0hScGIyNHNJRWx6VFhWc2RHa3NJRWR5YjNWd1BseHVLU0E5UGlCN1hHNGdJR052Ym5OMElIc2dZMmhwYkdSeVpXNHNJR2x1Ym1WeVVISnZjSE1nZlNBOUlIQnliM0J6TzF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4a2FYWmNiaUFnSUNBZ0lIc3VMaTVuWlhSVGRIbHNaVkJ5YjNCektIQnliM0J6TENBblkyeGxZWEpKYm1ScFkyRjBiM0luTENCN1hHNGdJQ0FnSUNBZ0lHbHVaR2xqWVhSdmNqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ0oyTnNaV0Z5TFdsdVpHbGpZWFJ2Y2ljNklIUnlkV1VzWEc0Z0lDQWdJQ0I5S1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lIdGphR2xzWkhKbGJpQjhmQ0E4UTNKdmMzTkpZMjl1SUM4K2ZWeHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVHRjYmx4dUx5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0dkx5QlRaWEJoY21GMGIzSmNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWx1WkdsallYUnZjbE5sY0dGeVlYUnZjbEJ5YjNCelBGeHVJQ0JQY0hScGIyNGdQU0IxYm10dWIzZHVMRnh1SUNCSmMwMTFiSFJwSUdWNGRHVnVaSE1nWW05dmJHVmhiaUE5SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajRnUFNCSGNtOTFjRUpoYzJVOFQzQjBhVzl1UGx4dVBpQmxlSFJsYm1SeklFTnZiVzF2YmxCeWIzQnpRVzVrUTJ4aGMzTk9ZVzFsUEU5d2RHbHZiaXdnU1hOTmRXeDBhU3dnUjNKdmRYQStJSHRjYmlBZ2FYTkVhWE5oWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBibTVsY2xCeWIzQnpQem9nU2xOWUxrbHVkSEpwYm5OcFkwVnNaVzFsYm5Seld5ZHpjR0Z1SjEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnBibVJwWTJGMGIzSlRaWEJoY21GMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwUnBjMkZpYkdWa0xGeHVJQ0FnSUhSb1pXMWxPaUI3WEc0Z0lDQWdJQ0J6Y0dGamFXNW5PaUI3SUdKaGMyVlZibWwwSUgwc1hHNGdJQ0FnSUNCamIyeHZjbk1zWEc0Z0lDQWdmU3hjYmlBZ2ZUb2dTVzVrYVdOaGRHOXlVMlZ3WVhKaGRHOXlVSEp2Y0hNOFQzQjBhVzl1TENCSmMwMTFiSFJwTENCSGNtOTFjRDRzWEc0Z0lIVnVjM1I1YkdWa09pQmliMjlzWldGdVhHNHBPaUJEVTFOUFltcGxZM1JYYVhSb1RHRmlaV3dnUFQ0Z0tIdGNiaUFnYkdGaVpXdzZJQ2RwYm1ScFkyRjBiM0pUWlhCaGNtRjBiM0luTEZ4dUlDQmhiR2xuYmxObGJHWTZJQ2R6ZEhKbGRHTm9KeXhjYmlBZ2QybGtkR2c2SURFc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpFTnZiRzl5T2lCcGMwUnBjMkZpYkdWa0lEOGdZMjlzYjNKekxtNWxkWFJ5WVd3eE1DQTZJR052Ykc5eWN5NXVaWFYwY21Gc01qQXNYRzRnSUNBZ0lDQWdJRzFoY21kcGJrSnZkSFJ2YlRvZ1ltRnpaVlZ1YVhRZ0tpQXlMRnh1SUNBZ0lDQWdJQ0J0WVhKbmFXNVViM0E2SUdKaGMyVlZibWwwSUNvZ01peGNiaUFnSUNBZ0lIMHBMRnh1ZlNrN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCSmJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJZ1BTQThYRzRnSUU5d2RHbHZiaXhjYmlBZ1NYTk5kV3gwYVNCbGVIUmxibVJ6SUdKdmIyeGxZVzRzWEc0Z0lFZHliM1Z3SUdWNGRHVnVaSE1nUjNKdmRYQkNZWE5sUEU5d2RHbHZiajVjYmo0b1hHNGdJSEJ5YjNCek9pQkpibVJwWTJGMGIzSlRaWEJoY21GMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQbHh1S1NBOVBpQjdYRzRnSUdOdmJuTjBJSHNnYVc1dVpYSlFjbTl3Y3lCOUlEMGdjSEp2Y0hNN1hHNGdJSEpsZEhWeWJpQW9YRzRnSUNBZ1BITndZVzVjYmlBZ0lDQWdJSHN1TGk1cGJtNWxjbEJ5YjNCemZWeHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb2NISnZjSE1zSUNkcGJtUnBZMkYwYjNKVFpYQmhjbUYwYjNJbkxDQjdYRzRnSUNBZ0lDQWdJQ2RwYm1ScFkyRjBiM0l0YzJWd1lYSmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJSDBwZlZ4dUlDQWdJQzgrWEc0Z0lDazdYRzU5TzF4dVhHNHZMeUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2JpOHZJRXh2WVdScGJtZGNiaTh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVYRzVqYjI1emRDQnNiMkZrYVc1blJHOTBRVzVwYldGMGFXOXVjeUE5SUd0bGVXWnlZVzFsYzJCY2JpQWdNQ1VzSURnd0pTd2dNVEF3SlNCN0lHOXdZV05wZEhrNklEQTdJSDFjYmlBZ05EQWxJSHNnYjNCaFkybDBlVG9nTVRzZ2ZWeHVZRHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdScGJtZEpibVJwWTJGMGIzSkRVMU1nUFNBOFhHNGdJRTl3ZEdsdmJpeGNiaUFnU1hOTmRXeDBhU0JsZUhSbGJtUnpJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNWNiajRvWEc0Z0lIdGNiaUFnSUNCcGMwWnZZM1Z6WldRc1hHNGdJQ0FnYzJsNlpTeGNiaUFnSUNCMGFHVnRaVG9nZTF4dUlDQWdJQ0FnWTI5c2IzSnpMRnh1SUNBZ0lDQWdjM0JoWTJsdVp6b2dleUJpWVhObFZXNXBkQ0I5TEZ4dUlDQWdJSDBzWEc0Z0lIMDZJRXh2WVdScGJtZEpibVJwWTJGMGIzSlFjbTl3Y3p4UGNIUnBiMjRzSUVselRYVnNkR2tzSUVkeWIzVndQaXhjYmlBZ2RXNXpkSGxzWldRNklHSnZiMnhsWVc1Y2JpazZJRU5UVTA5aWFtVmpkRmRwZEdoTVlXSmxiQ0E5UGlBb2UxeHVJQ0JzWVdKbGJEb2dKMnh2WVdScGJtZEpibVJwWTJGMGIzSW5MRnh1SUNCa2FYTndiR0Y1T2lBblpteGxlQ2NzWEc0Z0lIUnlZVzV6YVhScGIyNDZJQ2RqYjJ4dmNpQXhOVEJ0Y3ljc1hHNGdJR0ZzYVdkdVUyVnNaam9nSjJObGJuUmxjaWNzWEc0Z0lHWnZiblJUYVhwbE9pQnphWHBsTEZ4dUlDQnNhVzVsU0dWcFoyaDBPaUF4TEZ4dUlDQnRZWEpuYVc1U2FXZG9kRG9nYzJsNlpTeGNiaUFnZEdWNGRFRnNhV2R1T2lBblkyVnVkR1Z5Snl4Y2JpQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0oyMXBaR1JzWlNjc1hHNGdJQzR1TGloMWJuTjBlV3hsWkZ4dUlDQWdJRDhnZTMxY2JpQWdJQ0E2SUh0Y2JpQWdJQ0FnSUNBZ1kyOXNiM0k2SUdselJtOWpkWE5sWkNBL0lHTnZiRzl5Y3k1dVpYVjBjbUZzTmpBZ09pQmpiMnh2Y25NdWJtVjFkSEpoYkRJd0xGeHVJQ0FnSUNBZ0lDQndZV1JrYVc1bk9pQmlZWE5sVlc1cGRDQXFJRElzWEc0Z0lDQWdJQ0I5S1N4Y2JuMHBPMXh1WEc1cGJuUmxjbVpoWTJVZ1RHOWhaR2x1WjBSdmRGQnliM0J6SUh0Y2JpQWdaR1ZzWVhrNklHNTFiV0psY2p0Y2JpQWdiMlptYzJWME9pQmliMjlzWldGdU8xeHVmVnh1WTI5dWMzUWdURzloWkdsdVowUnZkQ0E5SUNoN0lHUmxiR0Y1TENCdlptWnpaWFFnZlRvZ1RHOWhaR2x1WjBSdmRGQnliM0J6S1NBOVBpQW9YRzRnSUR4emNHRnVYRzRnSUNBZ1kzTnpQWHQ3WEc0Z0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUdBa2UyeHZZV1JwYm1kRWIzUkJibWx0WVhScGIyNXpmU0F4Y3lCbFlYTmxMV2x1TFc5MWRDQWtlMlJsYkdGNWZXMXpJR2x1Wm1sdWFYUmxPMkFzWEc0Z0lDQWdJQ0JpWVdOclozSnZkVzVrUTI5c2IzSTZJQ2RqZFhKeVpXNTBRMjlzYjNJbkxGeHVJQ0FnSUNBZ1ltOXlaR1Z5VW1Ga2FYVnpPaUFuTVdWdEp5eGNiaUFnSUNBZ0lHUnBjM0JzWVhrNklDZHBibXhwYm1VdFlteHZZMnNuTEZ4dUlDQWdJQ0FnYldGeVoybHVUR1ZtZERvZ2IyWm1jMlYwSUQ4Z0p6RmxiU2NnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SUNjeFpXMG5MRnh1SUNBZ0lDQWdkbVZ5ZEdsallXeEJiR2xuYmpvZ0ozUnZjQ2NzWEc0Z0lDQWdJQ0IzYVdSMGFEb2dKekZsYlNjc1hHNGdJQ0FnZlgxY2JpQWdMejVjYmlrN1hHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdURzloWkdsdVowbHVaR2xqWVhSdmNsQnliM0J6UEZ4dUlDQlBjSFJwYjI0Z1BTQjFibXR1YjNkdUxGeHVJQ0JKYzAxMWJIUnBJR1Y0ZEdWdVpITWdZbTl2YkdWaGJpQTlJR0p2YjJ4bFlXNHNYRzRnSUVkeWIzVndJR1Y0ZEdWdVpITWdSM0p2ZFhCQ1lYTmxQRTl3ZEdsdmJqNGdQU0JIY205MWNFSmhjMlU4VDNCMGFXOXVQbHh1UGlCbGVIUmxibVJ6SUVOdmJXMXZibEJ5YjNCelFXNWtRMnhoYzNOT1lXMWxQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0lIdGNiaUFnTHlvcUlGQnliM0J6SUhSb1lYUWdkMmxzYkNCaVpTQndZWE56WldRZ2IyNGdkRzhnZEdobElHTm9hV3hrY21WdUxpQXFMMXh1SUNCcGJtNWxjbEJ5YjNCek9pQktVMWd1U1c1MGNtbHVjMmxqUld4bGJXVnVkSE5iSjJScGRpZGRPMXh1SUNBdktpb2dWR2hsSUdadlkzVnpaV1FnYzNSaGRHVWdiMllnZEdobElITmxiR1ZqZEM0Z0tpOWNiaUFnYVhOR2IyTjFjMlZrT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMFJwYzJGaWJHVmtPaUJpYjI5c1pXRnVPMXh1SUNBdktpb2dVMlYwSUhOcGVtVWdiMllnZEdobElHTnZiblJoYVc1bGNpNGdLaTljYmlBZ2MybDZaVG9nYm5WdFltVnlPMXh1ZlZ4dVpYaHdiM0owSUdOdmJuTjBJRXh2WVdScGJtZEpibVJwWTJGMGIzSWdQU0E4WEc0Z0lFOXdkR2x2Yml4Y2JpQWdTWE5OZFd4MGFTQmxlSFJsYm1SeklHSnZiMnhsWVc0c1hHNGdJRWR5YjNWd0lHVjRkR1Z1WkhNZ1IzSnZkWEJDWVhObFBFOXdkR2x2Ymo1Y2JqNG9lMXh1SUNCcGJtNWxjbEJ5YjNCekxGeHVJQ0JwYzFKMGJDeGNiaUFnYzJsNlpTQTlJRFFzWEc0Z0lDNHVMbkpsYzNSUWNtOXdjMXh1ZlRvZ1RHOWhaR2x1WjBsdVpHbGpZWFJ2Y2xCeWIzQnpQRTl3ZEdsdmJpd2dTWE5OZFd4MGFTd2dSM0p2ZFhBK0tTQTlQaUI3WEc0Z0lISmxkSFZ5YmlBb1hHNGdJQ0FnUEdScGRseHVJQ0FnSUNBZ2V5NHVMbWRsZEZOMGVXeGxVSEp2Y0hNb1hHNGdJQ0FnSUNBZ0lIc2dMaTR1Y21WemRGQnliM0J6TENCcGJtNWxjbEJ5YjNCekxDQnBjMUowYkN3Z2MybDZaU0I5TEZ4dUlDQWdJQ0FnSUNBbmJHOWhaR2x1WjBsdVpHbGpZWFJ2Y2ljc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0JwYm1ScFkyRjBiM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnSjJ4dllXUnBibWN0YVc1a2FXTmhkRzl5SnpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUhzdUxpNXBibTVsY2xCeWIzQnpmVnh1SUNBZ0lENWNiaUFnSUNBZ0lEeE1iMkZrYVc1blJHOTBJR1JsYkdGNVBYc3dmU0J2Wm1aelpYUTllMmx6VW5Sc2ZTQXZQbHh1SUNBZ0lDQWdQRXh2WVdScGJtZEViM1FnWkdWc1lYazllekUyTUgwZ2IyWm1jMlYwSUM4K1hHNGdJQ0FnSUNBOFRHOWhaR2x1WjBSdmRDQmtaV3hoZVQxN016SXdmU0J2Wm1aelpYUTlleUZwYzFKMGJIMGdMejVjYmlBZ0lDQThMMlJwZGo1Y2JpQWdLVHRjYm4wN1hHNGlYWDA9ICovXCIpXG4gIH0pO1xufTtcbnZhciBMb2FkaW5nSW5kaWNhdG9yID0gZnVuY3Rpb24gTG9hZGluZ0luZGljYXRvcihfcmVmNykge1xuICB2YXIgaW5uZXJQcm9wcyA9IF9yZWY3LmlubmVyUHJvcHMsXG4gICAgaXNSdGwgPSBfcmVmNy5pc1J0bCxcbiAgICBfcmVmNyRzaXplID0gX3JlZjcuc2l6ZSxcbiAgICBzaXplID0gX3JlZjckc2l6ZSA9PT0gdm9pZCAwID8gNCA6IF9yZWY3JHNpemUsXG4gICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY3LCBfZXhjbHVkZWQyKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJlc3RQcm9wcyksIHt9LCB7XG4gICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICBpc1J0bDogaXNSdGwsXG4gICAgc2l6ZTogc2l6ZVxuICB9KSwgJ2xvYWRpbmdJbmRpY2F0b3InLCB7XG4gICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBqc3goTG9hZGluZ0RvdCwge1xuICAgIGRlbGF5OiAwLFxuICAgIG9mZnNldDogaXNSdGxcbiAgfSksIGpzeChMb2FkaW5nRG90LCB7XG4gICAgZGVsYXk6IDE2MCxcbiAgICBvZmZzZXQ6IHRydWVcbiAgfSksIGpzeChMb2FkaW5nRG90LCB7XG4gICAgZGVsYXk6IDMyMCxcbiAgICBvZmZzZXQ6ICFpc1J0bFxuICB9KSk7XG59O1xuXG52YXIgY3NzJDEgPSBmdW5jdGlvbiBjc3MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIGlzRGlzYWJsZWQgPSBfcmVmLmlzRGlzYWJsZWQsXG4gICAgaXNGb2N1c2VkID0gX3JlZi5pc0ZvY3VzZWQsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnMsXG4gICAgYm9yZGVyUmFkaXVzID0gX3JlZiR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnY29udHJvbCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBtaW5IZWlnaHQ6IHNwYWNpbmcuY29udHJvbEhlaWdodCxcbiAgICBvdXRsaW5lOiAnMCAhaW1wb3J0YW50JyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB0cmFuc2l0aW9uOiAnYWxsIDEwMG1zJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsNSA6IGNvbG9ycy5uZXV0cmFsMCxcbiAgICBib3JkZXJDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBpc0ZvY3VzZWQgPyBjb2xvcnMucHJpbWFyeSA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gICAgYm9yZGVyUmFkaXVzOiBib3JkZXJSYWRpdXMsXG4gICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgYm9yZGVyV2lkdGg6IDEsXG4gICAgYm94U2hhZG93OiBpc0ZvY3VzZWQgPyBcIjAgMCAwIDFweCBcIi5jb25jYXQoY29sb3JzLnByaW1hcnkpIDogdW5kZWZpbmVkLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgYm9yZGVyQ29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5wcmltYXJ5IDogY29sb3JzLm5ldXRyYWwzMFxuICAgIH1cbiAgfSk7XG59O1xudmFyIENvbnRyb2wgPSBmdW5jdGlvbiBDb250cm9sKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIG1lbnVJc09wZW4gPSBwcm9wcy5tZW51SXNPcGVuO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHtcbiAgICByZWY6IGlubmVyUmVmXG4gIH0sIGdldFN0eWxlUHJvcHMocHJvcHMsICdjb250cm9sJywge1xuICAgIGNvbnRyb2w6IHRydWUsXG4gICAgJ2NvbnRyb2wtLWlzLWRpc2FibGVkJzogaXNEaXNhYmxlZCxcbiAgICAnY29udHJvbC0taXMtZm9jdXNlZCc6IGlzRm9jdXNlZCxcbiAgICAnY29udHJvbC0tbWVudS1pcy1vcGVuJzogbWVudUlzT3BlblxuICB9KSwgaW5uZXJQcm9wcywge1xuICAgIFwiYXJpYS1kaXNhYmxlZFwiOiBpc0Rpc2FibGVkIHx8IHVuZGVmaW5lZFxuICB9KSwgY2hpbGRyZW4pO1xufTtcbnZhciBDb250cm9sJDEgPSBDb250cm9sO1xuXG52YXIgX2V4Y2x1ZGVkJDEgPSBbXCJkYXRhXCJdO1xudmFyIGdyb3VwQ1NTID0gZnVuY3Rpb24gZ3JvdXBDU1MoX3JlZiwgdW5zdHlsZWQpIHtcbiAgdmFyIHNwYWNpbmcgPSBfcmVmLnRoZW1lLnNwYWNpbmc7XG4gIHJldHVybiB1bnN0eWxlZCA/IHt9IDoge1xuICAgIHBhZGRpbmdCb3R0b206IHNwYWNpbmcuYmFzZVVuaXQgKiAyLFxuICAgIHBhZGRpbmdUb3A6IHNwYWNpbmcuYmFzZVVuaXQgKiAyXG4gIH07XG59O1xudmFyIEdyb3VwID0gZnVuY3Rpb24gR3JvdXAocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgY3ggPSBwcm9wcy5jeCxcbiAgICBnZXRTdHlsZXMgPSBwcm9wcy5nZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lcyA9IHByb3BzLmdldENsYXNzTmFtZXMsXG4gICAgSGVhZGluZyA9IHByb3BzLkhlYWRpbmcsXG4gICAgaGVhZGluZ1Byb3BzID0gcHJvcHMuaGVhZGluZ1Byb3BzLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzLFxuICAgIGxhYmVsID0gcHJvcHMubGFiZWwsXG4gICAgdGhlbWUgPSBwcm9wcy50aGVtZSxcbiAgICBzZWxlY3RQcm9wcyA9IHByb3BzLnNlbGVjdFByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnZ3JvdXAnLCB7XG4gICAgZ3JvdXA6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpLCBqc3goSGVhZGluZywgX2V4dGVuZHMoe30sIGhlYWRpbmdQcm9wcywge1xuICAgIHNlbGVjdFByb3BzOiBzZWxlY3RQcm9wcyxcbiAgICB0aGVtZTogdGhlbWUsXG4gICAgZ2V0U3R5bGVzOiBnZXRTdHlsZXMsXG4gICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICBjeDogY3hcbiAgfSksIGxhYmVsKSwganN4KFwiZGl2XCIsIG51bGwsIGNoaWxkcmVuKSk7XG59O1xudmFyIGdyb3VwSGVhZGluZ0NTUyA9IGZ1bmN0aW9uIGdyb3VwSGVhZGluZ0NTUyhfcmVmMiwgdW5zdHlsZWQpIHtcbiAgdmFyIF9yZWYyJHRoZW1lID0gX3JlZjIudGhlbWUsXG4gICAgY29sb3JzID0gX3JlZjIkdGhlbWUuY29sb3JzLFxuICAgIHNwYWNpbmcgPSBfcmVmMiR0aGVtZS5zcGFjaW5nO1xuICByZXR1cm4gX29iamVjdFNwcmVhZCh7XG4gICAgbGFiZWw6ICdncm91cCcsXG4gICAgY3Vyc29yOiAnZGVmYXVsdCcsXG4gICAgZGlzcGxheTogJ2Jsb2NrJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgIGZvbnRTaXplOiAnNzUlJyxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgbWFyZ2luQm90dG9tOiAnMC4yNWVtJyxcbiAgICBwYWRkaW5nTGVmdDogc3BhY2luZy5iYXNlVW5pdCAqIDMsXG4gICAgcGFkZGluZ1JpZ2h0OiBzcGFjaW5nLmJhc2VVbml0ICogMyxcbiAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJ1xuICB9KTtcbn07XG52YXIgR3JvdXBIZWFkaW5nID0gZnVuY3Rpb24gR3JvdXBIZWFkaW5nKHByb3BzKSB7XG4gIHZhciBfY2xlYW5Db21tb25Qcm9wcyA9IGNsZWFuQ29tbW9uUHJvcHMocHJvcHMpO1xuICAgIF9jbGVhbkNvbW1vblByb3BzLmRhdGE7XG4gICAgdmFyIGlubmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX2NsZWFuQ29tbW9uUHJvcHMsIF9leGNsdWRlZCQxKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2dyb3VwSGVhZGluZycsIHtcbiAgICAnZ3JvdXAtaGVhZGluZyc6IHRydWVcbiAgfSksIGlubmVyUHJvcHMpKTtcbn07XG52YXIgR3JvdXAkMSA9IEdyb3VwO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiaW5uZXJSZWZcIiwgXCJpc0Rpc2FibGVkXCIsIFwiaXNIaWRkZW5cIiwgXCJpbnB1dENsYXNzTmFtZVwiXTtcbnZhciBpbnB1dENTUyA9IGZ1bmN0aW9uIGlucHV0Q1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIHZhbHVlID0gX3JlZi52YWx1ZSxcbiAgICBfcmVmJHRoZW1lID0gX3JlZi50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZiR0aGVtZS5zcGFjaW5nLFxuICAgIGNvbG9ycyA9IF9yZWYkdGhlbWUuY29sb3JzO1xuICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICB2aXNpYmlsaXR5OiBpc0Rpc2FibGVkID8gJ2hpZGRlbicgOiAndmlzaWJsZScsXG4gICAgLy8gZm9yY2UgY3NzIHRvIHJlY29tcHV0ZSB3aGVuIHZhbHVlIGNoYW5nZSBkdWUgdG8gQGVtb3Rpb24gYnVnLlxuICAgIC8vIFdlIGNhbiByZW1vdmUgaXQgd2hlbmV2ZXIgdGhlIGJ1ZyBpcyBmaXhlZC5cbiAgICB0cmFuc2Zvcm06IHZhbHVlID8gJ3RyYW5zbGF0ZVooMCknIDogJydcbiAgfSwgY29udGFpbmVyU3R5bGUpLCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIG1hcmdpbjogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgcGFkZGluZ0JvdHRvbTogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgcGFkZGluZ1RvcDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsODBcbiAgfSk7XG59O1xudmFyIHNwYWNpbmdTdHlsZSA9IHtcbiAgZ3JpZEFyZWE6ICcxIC8gMicsXG4gIGZvbnQ6ICdpbmhlcml0JyxcbiAgbWluV2lkdGg6ICcycHgnLFxuICBib3JkZXI6IDAsXG4gIG1hcmdpbjogMCxcbiAgb3V0bGluZTogMCxcbiAgcGFkZGluZzogMFxufTtcbnZhciBjb250YWluZXJTdHlsZSA9IHtcbiAgZmxleDogJzEgMSBhdXRvJyxcbiAgZGlzcGxheTogJ2lubGluZS1ncmlkJyxcbiAgZ3JpZEFyZWE6ICcxIC8gMSAvIDIgLyAzJyxcbiAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJzAgbWluLWNvbnRlbnQnLFxuICAnJjphZnRlcic6IF9vYmplY3RTcHJlYWQoe1xuICAgIGNvbnRlbnQ6ICdhdHRyKGRhdGEtdmFsdWUpIFwiIFwiJyxcbiAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICB3aGl0ZVNwYWNlOiAncHJlJ1xuICB9LCBzcGFjaW5nU3R5bGUpXG59O1xudmFyIGlucHV0U3R5bGUgPSBmdW5jdGlvbiBpbnB1dFN0eWxlKGlzSGlkZGVuKSB7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ2lucHV0JyxcbiAgICBjb2xvcjogJ2luaGVyaXQnLFxuICAgIGJhY2tncm91bmQ6IDAsXG4gICAgb3BhY2l0eTogaXNIaWRkZW4gPyAwIDogMSxcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sIHNwYWNpbmdTdHlsZSk7XG59O1xudmFyIElucHV0ID0gZnVuY3Rpb24gSW5wdXQocHJvcHMpIHtcbiAgdmFyIGN4ID0gcHJvcHMuY3gsXG4gICAgdmFsdWUgPSBwcm9wcy52YWx1ZTtcbiAgdmFyIF9jbGVhbkNvbW1vblByb3BzID0gY2xlYW5Db21tb25Qcm9wcyhwcm9wcyksXG4gICAgaW5uZXJSZWYgPSBfY2xlYW5Db21tb25Qcm9wcy5pbm5lclJlZixcbiAgICBpc0Rpc2FibGVkID0gX2NsZWFuQ29tbW9uUHJvcHMuaXNEaXNhYmxlZCxcbiAgICBpc0hpZGRlbiA9IF9jbGVhbkNvbW1vblByb3BzLmlzSGlkZGVuLFxuICAgIGlucHV0Q2xhc3NOYW1lID0gX2NsZWFuQ29tbW9uUHJvcHMuaW5wdXRDbGFzc05hbWUsXG4gICAgaW5uZXJQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfY2xlYW5Db21tb25Qcm9wcywgX2V4Y2x1ZGVkKTtcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7fSwgZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2lucHV0Jywge1xuICAgICdpbnB1dC1jb250YWluZXInOiB0cnVlXG4gIH0pLCB7XG4gICAgXCJkYXRhLXZhbHVlXCI6IHZhbHVlIHx8ICcnXG4gIH0pLCBqc3goXCJpbnB1dFwiLCBfZXh0ZW5kcyh7XG4gICAgY2xhc3NOYW1lOiBjeCh7XG4gICAgICBpbnB1dDogdHJ1ZVxuICAgIH0sIGlucHV0Q2xhc3NOYW1lKSxcbiAgICByZWY6IGlubmVyUmVmLFxuICAgIHN0eWxlOiBpbnB1dFN0eWxlKGlzSGlkZGVuKSxcbiAgICBkaXNhYmxlZDogaXNEaXNhYmxlZFxuICB9LCBpbm5lclByb3BzKSkpO1xufTtcbnZhciBJbnB1dCQxID0gSW5wdXQ7XG5cbnZhciBtdWx0aVZhbHVlQ1NTID0gZnVuY3Rpb24gbXVsdGlWYWx1ZUNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnbXVsdGlWYWx1ZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIG1pbldpZHRoOiAwXG4gIH0sIHVuc3R5bGVkID8ge30gOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcnMubmV1dHJhbDEwLFxuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzIC8gMixcbiAgICBtYXJnaW46IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBtdWx0aVZhbHVlTGFiZWxDU1MgPSBmdW5jdGlvbiBtdWx0aVZhbHVlTGFiZWxDU1MoX3JlZjIsIHVuc3R5bGVkKSB7XG4gIHZhciBfcmVmMiR0aGVtZSA9IF9yZWYyLnRoZW1lLFxuICAgIGJvcmRlclJhZGl1cyA9IF9yZWYyJHRoZW1lLmJvcmRlclJhZGl1cyxcbiAgICBjb2xvcnMgPSBfcmVmMiR0aGVtZS5jb2xvcnMsXG4gICAgY3JvcFdpdGhFbGxpcHNpcyA9IF9yZWYyLmNyb3BXaXRoRWxsaXBzaXM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiBjcm9wV2l0aEVsbGlwc2lzIHx8IGNyb3BXaXRoRWxsaXBzaXMgPT09IHVuZGVmaW5lZCA/ICdlbGxpcHNpcycgOiB1bmRlZmluZWQsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCdcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBib3JkZXJSYWRpdXM6IGJvcmRlclJhZGl1cyAvIDIsXG4gICAgY29sb3I6IGNvbG9ycy5uZXV0cmFsODAsXG4gICAgZm9udFNpemU6ICc4NSUnLFxuICAgIHBhZGRpbmc6IDMsXG4gICAgcGFkZGluZ0xlZnQ6IDZcbiAgfSk7XG59O1xudmFyIG11bHRpVmFsdWVSZW1vdmVDU1MgPSBmdW5jdGlvbiBtdWx0aVZhbHVlUmVtb3ZlQ1NTKF9yZWYzLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZjMkdGhlbWUgPSBfcmVmMy50aGVtZSxcbiAgICBzcGFjaW5nID0gX3JlZjMkdGhlbWUuc3BhY2luZyxcbiAgICBib3JkZXJSYWRpdXMgPSBfcmVmMyR0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgY29sb3JzID0gX3JlZjMkdGhlbWUuY29sb3JzLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYzLmlzRm9jdXNlZDtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4J1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzIC8gMixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5kYW5nZXJMaWdodCA6IHVuZGVmaW5lZCxcbiAgICBwYWRkaW5nTGVmdDogc3BhY2luZy5iYXNlVW5pdCxcbiAgICBwYWRkaW5nUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQsXG4gICAgJzpob3Zlcic6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3JzLmRhbmdlckxpZ2h0LFxuICAgICAgY29sb3I6IGNvbG9ycy5kYW5nZXJcbiAgICB9XG4gIH0pO1xufTtcbnZhciBNdWx0aVZhbHVlR2VuZXJpYyA9IGZ1bmN0aW9uIE11bHRpVmFsdWVHZW5lcmljKF9yZWY0KSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWY0LmNoaWxkcmVuLFxuICAgIGlubmVyUHJvcHMgPSBfcmVmNC5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIGlubmVyUHJvcHMsIGNoaWxkcmVuKTtcbn07XG52YXIgTXVsdGlWYWx1ZUNvbnRhaW5lciA9IE11bHRpVmFsdWVHZW5lcmljO1xudmFyIE11bHRpVmFsdWVMYWJlbCA9IE11bHRpVmFsdWVHZW5lcmljO1xuZnVuY3Rpb24gTXVsdGlWYWx1ZVJlbW92ZShfcmVmNSkge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmNS5jaGlsZHJlbixcbiAgICBpbm5lclByb3BzID0gX3JlZjUuaW5uZXJQcm9wcztcbiAgcmV0dXJuIGpzeChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcm9sZTogXCJidXR0b25cIlxuICB9LCBpbm5lclByb3BzKSwgY2hpbGRyZW4gfHwganN4KENyb3NzSWNvbiwge1xuICAgIHNpemU6IDE0XG4gIH0pKTtcbn1cbnZhciBNdWx0aVZhbHVlID0gZnVuY3Rpb24gTXVsdGlWYWx1ZShwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBjb21wb25lbnRzID0gcHJvcHMuY29tcG9uZW50cyxcbiAgICBkYXRhID0gcHJvcHMuZGF0YSxcbiAgICBpbm5lclByb3BzID0gcHJvcHMuaW5uZXJQcm9wcyxcbiAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICByZW1vdmVQcm9wcyA9IHByb3BzLnJlbW92ZVByb3BzLFxuICAgIHNlbGVjdFByb3BzID0gcHJvcHMuc2VsZWN0UHJvcHM7XG4gIHZhciBDb250YWluZXIgPSBjb21wb25lbnRzLkNvbnRhaW5lcixcbiAgICBMYWJlbCA9IGNvbXBvbmVudHMuTGFiZWwsXG4gICAgUmVtb3ZlID0gY29tcG9uZW50cy5SZW1vdmU7XG4gIHJldHVybiBqc3goQ29udGFpbmVyLCB7XG4gICAgZGF0YTogZGF0YSxcbiAgICBpbm5lclByb3BzOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdtdWx0aVZhbHVlJywge1xuICAgICAgJ211bHRpLXZhbHVlJzogdHJ1ZSxcbiAgICAgICdtdWx0aS12YWx1ZS0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkXG4gICAgfSkpLCBpbm5lclByb3BzKSxcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHNcbiAgfSwganN4KExhYmVsLCB7XG4gICAgZGF0YTogZGF0YSxcbiAgICBpbm5lclByb3BzOiBfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZUxhYmVsJywge1xuICAgICAgJ211bHRpLXZhbHVlX19sYWJlbCc6IHRydWVcbiAgICB9KSksXG4gICAgc2VsZWN0UHJvcHM6IHNlbGVjdFByb3BzXG4gIH0sIGNoaWxkcmVuKSwganN4KFJlbW92ZSwge1xuICAgIGRhdGE6IGRhdGEsXG4gICAgaW5uZXJQcm9wczogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnbXVsdGlWYWx1ZVJlbW92ZScsIHtcbiAgICAgICdtdWx0aS12YWx1ZV9fcmVtb3ZlJzogdHJ1ZVxuICAgIH0pKSwge30sIHtcbiAgICAgICdhcmlhLWxhYmVsJzogXCJSZW1vdmUgXCIuY29uY2F0KGNoaWxkcmVuIHx8ICdvcHRpb24nKVxuICAgIH0sIHJlbW92ZVByb3BzKSxcbiAgICBzZWxlY3RQcm9wczogc2VsZWN0UHJvcHNcbiAgfSkpO1xufTtcbnZhciBNdWx0aVZhbHVlJDEgPSBNdWx0aVZhbHVlO1xuXG52YXIgb3B0aW9uQ1NTID0gZnVuY3Rpb24gb3B0aW9uQ1NTKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IF9yZWYuaXNGb2N1c2VkLFxuICAgIGlzU2VsZWN0ZWQgPSBfcmVmLmlzU2VsZWN0ZWQsXG4gICAgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAnb3B0aW9uJyxcbiAgICBjdXJzb3I6ICdkZWZhdWx0JyxcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgV2Via2l0VGFwSGlnaGxpZ2h0Q29sb3I6ICdyZ2JhKDAsIDAsIDAsIDApJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGJhY2tncm91bmRDb2xvcjogaXNTZWxlY3RlZCA/IGNvbG9ycy5wcmltYXJ5IDogaXNGb2N1c2VkID8gY29sb3JzLnByaW1hcnkyNSA6ICd0cmFuc3BhcmVudCcsXG4gICAgY29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDIwIDogaXNTZWxlY3RlZCA/IGNvbG9ycy5uZXV0cmFsMCA6ICdpbmhlcml0JyxcbiAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdChzcGFjaW5nLmJhc2VVbml0ICogMiwgXCJweCBcIikuY29uY2F0KHNwYWNpbmcuYmFzZVVuaXQgKiAzLCBcInB4XCIpLFxuICAgIC8vIHByb3ZpZGUgc29tZSBhZmZvcmRhbmNlIG9uIHRvdWNoIGRldmljZXNcbiAgICAnOmFjdGl2ZSc6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogIWlzRGlzYWJsZWQgPyBpc1NlbGVjdGVkID8gY29sb3JzLnByaW1hcnkgOiBjb2xvcnMucHJpbWFyeTUwIDogdW5kZWZpbmVkXG4gICAgfVxuICB9KTtcbn07XG52YXIgT3B0aW9uID0gZnVuY3Rpb24gT3B0aW9uKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBpc1NlbGVjdGVkID0gcHJvcHMuaXNTZWxlY3RlZCxcbiAgICBpbm5lclJlZiA9IHByb3BzLmlubmVyUmVmLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnb3B0aW9uJywge1xuICAgIG9wdGlvbjogdHJ1ZSxcbiAgICAnb3B0aW9uLS1pcy1kaXNhYmxlZCc6IGlzRGlzYWJsZWQsXG4gICAgJ29wdGlvbi0taXMtZm9jdXNlZCc6IGlzRm9jdXNlZCxcbiAgICAnb3B0aW9uLS1pcy1zZWxlY3RlZCc6IGlzU2VsZWN0ZWRcbiAgfSksIHtcbiAgICByZWY6IGlubmVyUmVmLFxuICAgIFwiYXJpYS1kaXNhYmxlZFwiOiBpc0Rpc2FibGVkXG4gIH0sIGlubmVyUHJvcHMpLCBjaGlsZHJlbik7XG59O1xudmFyIE9wdGlvbiQxID0gT3B0aW9uO1xuXG52YXIgcGxhY2Vob2xkZXJDU1MgPSBmdW5jdGlvbiBwbGFjZWhvbGRlckNTUyhfcmVmLCB1bnN0eWxlZCkge1xuICB2YXIgX3JlZiR0aGVtZSA9IF9yZWYudGhlbWUsXG4gICAgc3BhY2luZyA9IF9yZWYkdGhlbWUuc3BhY2luZyxcbiAgICBjb2xvcnMgPSBfcmVmJHRoZW1lLmNvbG9ycztcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgIGxhYmVsOiAncGxhY2Vob2xkZXInLFxuICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMydcbiAgfSwgdW5zdHlsZWQgPyB7fSA6IHtcbiAgICBjb2xvcjogY29sb3JzLm5ldXRyYWw1MCxcbiAgICBtYXJnaW5MZWZ0OiBzcGFjaW5nLmJhc2VVbml0IC8gMixcbiAgICBtYXJnaW5SaWdodDogc3BhY2luZy5iYXNlVW5pdCAvIDJcbiAgfSk7XG59O1xudmFyIFBsYWNlaG9sZGVyID0gZnVuY3Rpb24gUGxhY2Vob2xkZXIocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgaW5uZXJQcm9wcyA9IHByb3BzLmlubmVyUHJvcHM7XG4gIHJldHVybiBqc3goXCJkaXZcIiwgX2V4dGVuZHMoe30sIGdldFN0eWxlUHJvcHMocHJvcHMsICdwbGFjZWhvbGRlcicsIHtcbiAgICBwbGFjZWhvbGRlcjogdHJ1ZVxuICB9KSwgaW5uZXJQcm9wcyksIGNoaWxkcmVuKTtcbn07XG52YXIgUGxhY2Vob2xkZXIkMSA9IFBsYWNlaG9sZGVyO1xuXG52YXIgY3NzID0gZnVuY3Rpb24gY3NzKF9yZWYsIHVuc3R5bGVkKSB7XG4gIHZhciBpc0Rpc2FibGVkID0gX3JlZi5pc0Rpc2FibGVkLFxuICAgIF9yZWYkdGhlbWUgPSBfcmVmLnRoZW1lLFxuICAgIHNwYWNpbmcgPSBfcmVmJHRoZW1lLnNwYWNpbmcsXG4gICAgY29sb3JzID0gX3JlZiR0aGVtZS5jb2xvcnM7XG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICBsYWJlbDogJ3NpbmdsZVZhbHVlJyxcbiAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJ1xuICB9LCB1bnN0eWxlZCA/IHt9IDoge1xuICAgIGNvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWw0MCA6IGNvbG9ycy5uZXV0cmFsODAsXG4gICAgbWFyZ2luTGVmdDogc3BhY2luZy5iYXNlVW5pdCAvIDIsXG4gICAgbWFyZ2luUmlnaHQ6IHNwYWNpbmcuYmFzZVVuaXQgLyAyXG4gIH0pO1xufTtcbnZhciBTaW5nbGVWYWx1ZSA9IGZ1bmN0aW9uIFNpbmdsZVZhbHVlKHByb3BzKSB7XG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkLFxuICAgIGlubmVyUHJvcHMgPSBwcm9wcy5pbm5lclByb3BzO1xuICByZXR1cm4ganN4KFwiZGl2XCIsIF9leHRlbmRzKHt9LCBnZXRTdHlsZVByb3BzKHByb3BzLCAnc2luZ2xlVmFsdWUnLCB7XG4gICAgJ3NpbmdsZS12YWx1ZSc6IHRydWUsXG4gICAgJ3NpbmdsZS12YWx1ZS0taXMtZGlzYWJsZWQnOiBpc0Rpc2FibGVkXG4gIH0pLCBpbm5lclByb3BzKSwgY2hpbGRyZW4pO1xufTtcbnZhciBTaW5nbGVWYWx1ZSQxID0gU2luZ2xlVmFsdWU7XG5cbnZhciBjb21wb25lbnRzID0ge1xuICBDbGVhckluZGljYXRvcjogQ2xlYXJJbmRpY2F0b3IsXG4gIENvbnRyb2w6IENvbnRyb2wkMSxcbiAgRHJvcGRvd25JbmRpY2F0b3I6IERyb3Bkb3duSW5kaWNhdG9yLFxuICBEb3duQ2hldnJvbjogRG93bkNoZXZyb24sXG4gIENyb3NzSWNvbjogQ3Jvc3NJY29uLFxuICBHcm91cDogR3JvdXAkMSxcbiAgR3JvdXBIZWFkaW5nOiBHcm91cEhlYWRpbmcsXG4gIEluZGljYXRvcnNDb250YWluZXI6IEluZGljYXRvcnNDb250YWluZXIsXG4gIEluZGljYXRvclNlcGFyYXRvcjogSW5kaWNhdG9yU2VwYXJhdG9yLFxuICBJbnB1dDogSW5wdXQkMSxcbiAgTG9hZGluZ0luZGljYXRvcjogTG9hZGluZ0luZGljYXRvcixcbiAgTWVudTogTWVudSQxLFxuICBNZW51TGlzdDogTWVudUxpc3QsXG4gIE1lbnVQb3J0YWw6IE1lbnVQb3J0YWwsXG4gIExvYWRpbmdNZXNzYWdlOiBMb2FkaW5nTWVzc2FnZSxcbiAgTm9PcHRpb25zTWVzc2FnZTogTm9PcHRpb25zTWVzc2FnZSxcbiAgTXVsdGlWYWx1ZTogTXVsdGlWYWx1ZSQxLFxuICBNdWx0aVZhbHVlQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICBNdWx0aVZhbHVlTGFiZWw6IE11bHRpVmFsdWVMYWJlbCxcbiAgTXVsdGlWYWx1ZVJlbW92ZTogTXVsdGlWYWx1ZVJlbW92ZSxcbiAgT3B0aW9uOiBPcHRpb24kMSxcbiAgUGxhY2Vob2xkZXI6IFBsYWNlaG9sZGVyJDEsXG4gIFNlbGVjdENvbnRhaW5lcjogU2VsZWN0Q29udGFpbmVyLFxuICBTaW5nbGVWYWx1ZTogU2luZ2xlVmFsdWUkMSxcbiAgVmFsdWVDb250YWluZXI6IFZhbHVlQ29udGFpbmVyXG59O1xudmFyIGRlZmF1bHRDb21wb25lbnRzID0gZnVuY3Rpb24gZGVmYXVsdENvbXBvbmVudHMocHJvcHMpIHtcbiAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY29tcG9uZW50cyksIHByb3BzLmNvbXBvbmVudHMpO1xufTtcblxuZXhwb3J0IHsgaXNNb2JpbGVEZXZpY2UgYXMgQSwgbXVsdGlWYWx1ZUFzVmFsdWUgYXMgQiwgc2luZ2xlVmFsdWVBc1ZhbHVlIGFzIEMsIHZhbHVlVGVybmFyeSBhcyBELCBjbGFzc05hbWVzIGFzIEUsIGRlZmF1bHRDb21wb25lbnRzIGFzIEYsIGlzRG9jdW1lbnRFbGVtZW50IGFzIEcsIGNsZWFuVmFsdWUgYXMgSCwgc2Nyb2xsSW50b1ZpZXcgYXMgSSwgbm9vcCBhcyBKLCBub3ROdWxsaXNoIGFzIEssIGhhbmRsZUlucHV0Q2hhbmdlIGFzIEwsIE1lbnVQbGFjZXIgYXMgTSwgY2xlYXJJbmRpY2F0b3JDU1MgYXMgYSwgY29udGFpbmVyQ1NTIGFzIGIsIGNvbXBvbmVudHMgYXMgYywgY3NzJDEgYXMgZCwgZHJvcGRvd25JbmRpY2F0b3JDU1MgYXMgZSwgZ3JvdXBIZWFkaW5nQ1NTIGFzIGYsIGdyb3VwQ1NTIGFzIGcsIGluZGljYXRvclNlcGFyYXRvckNTUyBhcyBoLCBpbmRpY2F0b3JzQ29udGFpbmVyQ1NTIGFzIGksIGlucHV0Q1NTIGFzIGosIGxvYWRpbmdNZXNzYWdlQ1NTIGFzIGssIGxvYWRpbmdJbmRpY2F0b3JDU1MgYXMgbCwgbWVudUNTUyBhcyBtLCBtZW51TGlzdENTUyBhcyBuLCBtZW51UG9ydGFsQ1NTIGFzIG8sIG11bHRpVmFsdWVDU1MgYXMgcCwgbXVsdGlWYWx1ZUxhYmVsQ1NTIGFzIHEsIHJlbW92ZVByb3BzIGFzIHIsIHN1cHBvcnRzUGFzc2l2ZUV2ZW50cyBhcyBzLCBtdWx0aVZhbHVlUmVtb3ZlQ1NTIGFzIHQsIG5vT3B0aW9uc01lc3NhZ2VDU1MgYXMgdSwgb3B0aW9uQ1NTIGFzIHYsIHBsYWNlaG9sZGVyQ1NTIGFzIHcsIGNzcyBhcyB4LCB2YWx1ZUNvbnRhaW5lckNTUyBhcyB5LCBpc1RvdWNoQ2FwYWJsZSBhcyB6IH07XG4iLCJ2YXIgc2FmZUlzTmFOID0gTnVtYmVyLmlzTmFOIHx8XG4gICAgZnVuY3Rpb24gcG9ueWZpbGwodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT09IHZhbHVlO1xuICAgIH07XG5mdW5jdGlvbiBpc0VxdWFsKGZpcnN0LCBzZWNvbmQpIHtcbiAgICBpZiAoZmlyc3QgPT09IHNlY29uZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHNhZmVJc05hTihmaXJzdCkgJiYgc2FmZUlzTmFOKHNlY29uZCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFyZUlucHV0c0VxdWFsKG5ld0lucHV0cywgbGFzdElucHV0cykge1xuICAgIGlmIChuZXdJbnB1dHMubGVuZ3RoICE9PSBsYXN0SW5wdXRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmV3SW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICghaXNFcXVhbChuZXdJbnB1dHNbaV0sIGxhc3RJbnB1dHNbaV0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIG1lbW9pemVPbmUocmVzdWx0Rm4sIGlzRXF1YWwpIHtcbiAgICBpZiAoaXNFcXVhbCA9PT0gdm9pZCAwKSB7IGlzRXF1YWwgPSBhcmVJbnB1dHNFcXVhbDsgfVxuICAgIHZhciBjYWNoZSA9IG51bGw7XG4gICAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgICAgIHZhciBuZXdBcmdzID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBuZXdBcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhY2hlICYmIGNhY2hlLmxhc3RUaGlzID09PSB0aGlzICYmIGlzRXF1YWwobmV3QXJncywgY2FjaGUubGFzdEFyZ3MpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGUubGFzdFJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbGFzdFJlc3VsdCA9IHJlc3VsdEZuLmFwcGx5KHRoaXMsIG5ld0FyZ3MpO1xuICAgICAgICBjYWNoZSA9IHtcbiAgICAgICAgICAgIGxhc3RSZXN1bHQ6IGxhc3RSZXN1bHQsXG4gICAgICAgICAgICBsYXN0QXJnczogbmV3QXJncyxcbiAgICAgICAgICAgIGxhc3RUaGlzOiB0aGlzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbGFzdFJlc3VsdDtcbiAgICB9XG4gICAgbWVtb2l6ZWQuY2xlYXIgPSBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgY2FjaGUgPSBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIG1lbW9pemVkO1xufVxuXG5leHBvcnQgeyBtZW1vaXplT25lIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzJztcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDInO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMnO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlcic7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8sIEZyYWdtZW50LCB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHIgYXMgcmVtb3ZlUHJvcHMsIHMgYXMgc3VwcG9ydHNQYXNzaXZlRXZlbnRzLCBhIGFzIGNsZWFySW5kaWNhdG9yQ1NTLCBiIGFzIGNvbnRhaW5lckNTUywgZCBhcyBjc3MkMSwgZSBhcyBkcm9wZG93bkluZGljYXRvckNTUywgZyBhcyBncm91cENTUywgZiBhcyBncm91cEhlYWRpbmdDU1MsIGkgYXMgaW5kaWNhdG9yc0NvbnRhaW5lckNTUywgaCBhcyBpbmRpY2F0b3JTZXBhcmF0b3JDU1MsIGogYXMgaW5wdXRDU1MsIGwgYXMgbG9hZGluZ0luZGljYXRvckNTUywgayBhcyBsb2FkaW5nTWVzc2FnZUNTUywgbSBhcyBtZW51Q1NTLCBuIGFzIG1lbnVMaXN0Q1NTLCBvIGFzIG1lbnVQb3J0YWxDU1MsIHAgYXMgbXVsdGlWYWx1ZUNTUywgcSBhcyBtdWx0aVZhbHVlTGFiZWxDU1MsIHQgYXMgbXVsdGlWYWx1ZVJlbW92ZUNTUywgdSBhcyBub09wdGlvbnNNZXNzYWdlQ1NTLCB2IGFzIG9wdGlvbkNTUywgdyBhcyBwbGFjZWhvbGRlckNTUywgeCBhcyBjc3MkMiwgeSBhcyB2YWx1ZUNvbnRhaW5lckNTUywgeiBhcyBpc1RvdWNoQ2FwYWJsZSwgQSBhcyBpc01vYmlsZURldmljZSwgQiBhcyBtdWx0aVZhbHVlQXNWYWx1ZSwgQyBhcyBzaW5nbGVWYWx1ZUFzVmFsdWUsIEQgYXMgdmFsdWVUZXJuYXJ5LCBFIGFzIGNsYXNzTmFtZXMsIEYgYXMgZGVmYXVsdENvbXBvbmVudHMsIEcgYXMgaXNEb2N1bWVudEVsZW1lbnQsIEggYXMgY2xlYW5WYWx1ZSwgSSBhcyBzY3JvbGxJbnRvVmlldywgSiBhcyBub29wLCBNIGFzIE1lbnVQbGFjZXIsIEsgYXMgbm90TnVsbGlzaCB9IGZyb20gJy4vaW5kZXgtNjQxZWU1YjguZXNtLmpzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IG1lbW9pemVPbmUgZnJvbSAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDIoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbnZhciBfcmVmID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8ge1xuICBuYW1lOiBcIjdwZzBjai1hMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwXCJcbn0gOiB7XG4gIG5hbWU6IFwiMWY0M2F2ei1hMTF5VGV4dC1BMTF5VGV4dFwiLFxuICBzdHlsZXM6IFwibGFiZWw6YTExeVRleHQ7ei1pbmRleDo5OTk5O2JvcmRlcjowO2NsaXA6cmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO2hlaWdodDoxcHg7d2lkdGg6MXB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm93cmFwO2xhYmVsOkExMXlUZXh0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWtFeE1YbFVaWGgwTG5SemVDSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRlBTU0lzSW1acGJHVWlPaUpCTVRGNVZHVjRkQzUwYzNnaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaW9nUUdwemVDQnFjM2dnS2k5Y2JtbHRjRzl5ZENCN0lFcFRXQ0I5SUdaeWIyMGdKM0psWVdOMEp6dGNibWx0Y0c5eWRDQjdJR3B6ZUNCOUlHWnliMjBnSjBCbGJXOTBhVzl1TDNKbFlXTjBKenRjYmx4dUx5OGdRWE56YVhOMGFYWmxJSFJsZUhRZ2RHOGdaR1Z6WTNKcFltVWdkbWx6ZFdGc0lHVnNaVzFsYm5SekxpQklhV1JrWlc0Z1ptOXlJSE5wWjJoMFpXUWdkWE5sY25NdVhHNWpiMjV6ZENCQk1URjVWR1Y0ZENBOUlDaHdjbTl3Y3pvZ1NsTllMa2x1ZEhKcGJuTnBZMFZzWlcxbGJuUnpXeWR6Y0dGdUoxMHBJRDArSUNoY2JpQWdQSE53WVc1Y2JpQWdJQ0JqYzNNOWUzdGNiaUFnSUNBZ0lHeGhZbVZzT2lBbllURXhlVlJsZUhRbkxGeHVJQ0FnSUNBZ2VrbHVaR1Y0T2lBNU9UazVMRnh1SUNBZ0lDQWdZbTl5WkdWeU9pQXdMRnh1SUNBZ0lDQWdZMnhwY0RvZ0ozSmxZM1FvTVhCNExDQXhjSGdzSURGd2VDd2dNWEI0S1Njc1hHNGdJQ0FnSUNCb1pXbG5hSFE2SURFc1hHNGdJQ0FnSUNCM2FXUjBhRG9nTVN4Y2JpQWdJQ0FnSUhCdmMybDBhVzl1T2lBbllXSnpiMngxZEdVbkxGeHVJQ0FnSUNBZ2IzWmxjbVpzYjNjNklDZG9hV1JrWlc0bkxGeHVJQ0FnSUNBZ2NHRmtaR2x1WnpvZ01DeGNiaUFnSUNBZ0lIZG9hWFJsVTNCaFkyVTZJQ2R1YjNkeVlYQW5MRnh1SUNBZ0lIMTlYRzRnSUNBZ2V5NHVMbkJ5YjNCemZWeHVJQ0F2UGx4dUtUdGNibHh1Wlhod2IzSjBJR1JsWm1GMWJIUWdRVEV4ZVZSbGVIUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX18kMlxufTtcbnZhciBBMTF5VGV4dCA9IGZ1bmN0aW9uIEExMXlUZXh0KHByb3BzKSB7XG4gIHJldHVybiBqc3goXCJzcGFuXCIsIF9leHRlbmRzKHtcbiAgICBjc3M6IF9yZWZcbiAgfSwgcHJvcHMpKTtcbn07XG52YXIgQTExeVRleHQkMSA9IEExMXlUZXh0O1xuXG52YXIgZGVmYXVsdEFyaWFMaXZlTWVzc2FnZXMgPSB7XG4gIGd1aWRhbmNlOiBmdW5jdGlvbiBndWlkYW5jZShwcm9wcykge1xuICAgIHZhciBpc1NlYXJjaGFibGUgPSBwcm9wcy5pc1NlYXJjaGFibGUsXG4gICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aSxcbiAgICAgIHRhYlNlbGVjdHNWYWx1ZSA9IHByb3BzLnRhYlNlbGVjdHNWYWx1ZSxcbiAgICAgIGNvbnRleHQgPSBwcm9wcy5jb250ZXh0LFxuICAgICAgaXNJbml0aWFsRm9jdXMgPSBwcm9wcy5pc0luaXRpYWxGb2N1cztcbiAgICBzd2l0Y2ggKGNvbnRleHQpIHtcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgICByZXR1cm4gXCJVc2UgVXAgYW5kIERvd24gdG8gY2hvb3NlIG9wdGlvbnMsIHByZXNzIEVudGVyIHRvIHNlbGVjdCB0aGUgY3VycmVudGx5IGZvY3VzZWQgb3B0aW9uLCBwcmVzcyBFc2NhcGUgdG8gZXhpdCB0aGUgbWVudVwiLmNvbmNhdCh0YWJTZWxlY3RzVmFsdWUgPyAnLCBwcmVzcyBUYWIgdG8gc2VsZWN0IHRoZSBvcHRpb24gYW5kIGV4aXQgdGhlIG1lbnUnIDogJycsIFwiLlwiKTtcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgcmV0dXJuIGlzSW5pdGlhbEZvY3VzID8gXCJcIi5jb25jYXQocHJvcHNbJ2FyaWEtbGFiZWwnXSB8fCAnU2VsZWN0JywgXCIgaXMgZm9jdXNlZCBcIikuY29uY2F0KGlzU2VhcmNoYWJsZSA/ICcsdHlwZSB0byByZWZpbmUgbGlzdCcgOiAnJywgXCIsIHByZXNzIERvd24gdG8gb3BlbiB0aGUgbWVudSwgXCIpLmNvbmNhdChpc011bHRpID8gJyBwcmVzcyBsZWZ0IHRvIGZvY3VzIHNlbGVjdGVkIHZhbHVlcycgOiAnJykgOiAnJztcbiAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgcmV0dXJuICdVc2UgbGVmdCBhbmQgcmlnaHQgdG8gdG9nZ2xlIGJldHdlZW4gZm9jdXNlZCB2YWx1ZXMsIHByZXNzIEJhY2tzcGFjZSB0byByZW1vdmUgdGhlIGN1cnJlbnRseSBmb2N1c2VkIHZhbHVlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH0sXG4gIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZShwcm9wcykge1xuICAgIHZhciBhY3Rpb24gPSBwcm9wcy5hY3Rpb24sXG4gICAgICBfcHJvcHMkbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgIGxhYmVsID0gX3Byb3BzJGxhYmVsID09PSB2b2lkIDAgPyAnJyA6IF9wcm9wcyRsYWJlbCxcbiAgICAgIGxhYmVscyA9IHByb3BzLmxhYmVscyxcbiAgICAgIGlzRGlzYWJsZWQgPSBwcm9wcy5pc0Rpc2FibGVkO1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdkZXNlbGVjdC1vcHRpb24nOlxuICAgICAgY2FzZSAncG9wLXZhbHVlJzpcbiAgICAgIGNhc2UgJ3JlbW92ZS12YWx1ZSc6XG4gICAgICAgIHJldHVybiBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiLCBkZXNlbGVjdGVkLlwiKTtcbiAgICAgIGNhc2UgJ2NsZWFyJzpcbiAgICAgICAgcmV0dXJuICdBbGwgc2VsZWN0ZWQgb3B0aW9ucyBoYXZlIGJlZW4gY2xlYXJlZC4nO1xuICAgICAgY2FzZSAnaW5pdGlhbC1pbnB1dC1mb2N1cyc6XG4gICAgICAgIHJldHVybiBcIm9wdGlvblwiLmNvbmNhdChsYWJlbHMubGVuZ3RoID4gMSA/ICdzJyA6ICcnLCBcIiBcIikuY29uY2F0KGxhYmVscy5qb2luKCcsJyksIFwiLCBzZWxlY3RlZC5cIik7XG4gICAgICBjYXNlICdzZWxlY3Qtb3B0aW9uJzpcbiAgICAgICAgcmV0dXJuIGlzRGlzYWJsZWQgPyBcIm9wdGlvbiBcIi5jb25jYXQobGFiZWwsIFwiIGlzIGRpc2FibGVkLiBTZWxlY3QgYW5vdGhlciBvcHRpb24uXCIpIDogXCJvcHRpb24gXCIuY29uY2F0KGxhYmVsLCBcIiwgc2VsZWN0ZWQuXCIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcbiAgb25Gb2N1czogZnVuY3Rpb24gb25Gb2N1cyhwcm9wcykge1xuICAgIHZhciBjb250ZXh0ID0gcHJvcHMuY29udGV4dCxcbiAgICAgIGZvY3VzZWQgPSBwcm9wcy5mb2N1c2VkLFxuICAgICAgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsXG4gICAgICBfcHJvcHMkbGFiZWwyID0gcHJvcHMubGFiZWwsXG4gICAgICBsYWJlbCA9IF9wcm9wcyRsYWJlbDIgPT09IHZvaWQgMCA/ICcnIDogX3Byb3BzJGxhYmVsMixcbiAgICAgIHNlbGVjdFZhbHVlID0gcHJvcHMuc2VsZWN0VmFsdWUsXG4gICAgICBpc0Rpc2FibGVkID0gcHJvcHMuaXNEaXNhYmxlZCxcbiAgICAgIGlzU2VsZWN0ZWQgPSBwcm9wcy5pc1NlbGVjdGVkLFxuICAgICAgaXNBcHBsZURldmljZSA9IHByb3BzLmlzQXBwbGVEZXZpY2U7XG4gICAgdmFyIGdldEFycmF5SW5kZXggPSBmdW5jdGlvbiBnZXRBcnJheUluZGV4KGFyciwgaXRlbSkge1xuICAgICAgcmV0dXJuIGFyciAmJiBhcnIubGVuZ3RoID8gXCJcIi5jb25jYXQoYXJyLmluZGV4T2YoaXRlbSkgKyAxLCBcIiBvZiBcIikuY29uY2F0KGFyci5sZW5ndGgpIDogJyc7XG4gICAgfTtcbiAgICBpZiAoY29udGV4dCA9PT0gJ3ZhbHVlJyAmJiBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIFwidmFsdWUgXCIuY29uY2F0KGxhYmVsLCBcIiBmb2N1c2VkLCBcIikuY29uY2F0KGdldEFycmF5SW5kZXgoc2VsZWN0VmFsdWUsIGZvY3VzZWQpLCBcIi5cIik7XG4gICAgfVxuICAgIGlmIChjb250ZXh0ID09PSAnbWVudScgJiYgaXNBcHBsZURldmljZSkge1xuICAgICAgdmFyIGRpc2FibGVkID0gaXNEaXNhYmxlZCA/ICcgZGlzYWJsZWQnIDogJyc7XG4gICAgICB2YXIgc3RhdHVzID0gXCJcIi5jb25jYXQoaXNTZWxlY3RlZCA/ICcgc2VsZWN0ZWQnIDogJycpLmNvbmNhdChkaXNhYmxlZCk7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQobGFiZWwpLmNvbmNhdChzdGF0dXMsIFwiLCBcIikuY29uY2F0KGdldEFycmF5SW5kZXgob3B0aW9ucywgZm9jdXNlZCksIFwiLlwiKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9LFxuICBvbkZpbHRlcjogZnVuY3Rpb24gb25GaWx0ZXIocHJvcHMpIHtcbiAgICB2YXIgaW5wdXRWYWx1ZSA9IHByb3BzLmlucHV0VmFsdWUsXG4gICAgICByZXN1bHRzTWVzc2FnZSA9IHByb3BzLnJlc3VsdHNNZXNzYWdlO1xuICAgIHJldHVybiBcIlwiLmNvbmNhdChyZXN1bHRzTWVzc2FnZSkuY29uY2F0KGlucHV0VmFsdWUgPyAnIGZvciBzZWFyY2ggdGVybSAnICsgaW5wdXRWYWx1ZSA6ICcnLCBcIi5cIik7XG4gIH1cbn07XG5cbnZhciBMaXZlUmVnaW9uID0gZnVuY3Rpb24gTGl2ZVJlZ2lvbihwcm9wcykge1xuICB2YXIgYXJpYVNlbGVjdGlvbiA9IHByb3BzLmFyaWFTZWxlY3Rpb24sXG4gICAgZm9jdXNlZE9wdGlvbiA9IHByb3BzLmZvY3VzZWRPcHRpb24sXG4gICAgZm9jdXNlZFZhbHVlID0gcHJvcHMuZm9jdXNlZFZhbHVlLFxuICAgIGZvY3VzYWJsZU9wdGlvbnMgPSBwcm9wcy5mb2N1c2FibGVPcHRpb25zLFxuICAgIGlzRm9jdXNlZCA9IHByb3BzLmlzRm9jdXNlZCxcbiAgICBzZWxlY3RWYWx1ZSA9IHByb3BzLnNlbGVjdFZhbHVlLFxuICAgIHNlbGVjdFByb3BzID0gcHJvcHMuc2VsZWN0UHJvcHMsXG4gICAgaWQgPSBwcm9wcy5pZCxcbiAgICBpc0FwcGxlRGV2aWNlID0gcHJvcHMuaXNBcHBsZURldmljZTtcbiAgdmFyIGFyaWFMaXZlTWVzc2FnZXMgPSBzZWxlY3RQcm9wcy5hcmlhTGl2ZU1lc3NhZ2VzLFxuICAgIGdldE9wdGlvbkxhYmVsID0gc2VsZWN0UHJvcHMuZ2V0T3B0aW9uTGFiZWwsXG4gICAgaW5wdXRWYWx1ZSA9IHNlbGVjdFByb3BzLmlucHV0VmFsdWUsXG4gICAgaXNNdWx0aSA9IHNlbGVjdFByb3BzLmlzTXVsdGksXG4gICAgaXNPcHRpb25EaXNhYmxlZCA9IHNlbGVjdFByb3BzLmlzT3B0aW9uRGlzYWJsZWQsXG4gICAgaXNTZWFyY2hhYmxlID0gc2VsZWN0UHJvcHMuaXNTZWFyY2hhYmxlLFxuICAgIG1lbnVJc09wZW4gPSBzZWxlY3RQcm9wcy5tZW51SXNPcGVuLFxuICAgIG9wdGlvbnMgPSBzZWxlY3RQcm9wcy5vcHRpb25zLFxuICAgIHNjcmVlblJlYWRlclN0YXR1cyA9IHNlbGVjdFByb3BzLnNjcmVlblJlYWRlclN0YXR1cyxcbiAgICB0YWJTZWxlY3RzVmFsdWUgPSBzZWxlY3RQcm9wcy50YWJTZWxlY3RzVmFsdWUsXG4gICAgaXNMb2FkaW5nID0gc2VsZWN0UHJvcHMuaXNMb2FkaW5nO1xuICB2YXIgYXJpYUxhYmVsID0gc2VsZWN0UHJvcHNbJ2FyaWEtbGFiZWwnXTtcbiAgdmFyIGFyaWFMaXZlID0gc2VsZWN0UHJvcHNbJ2FyaWEtbGl2ZSddO1xuXG4gIC8vIFVwZGF0ZSBhcmlhIGxpdmUgbWVzc2FnZSBjb25maWd1cmF0aW9uIHdoZW4gcHJvcCBjaGFuZ2VzXG4gIHZhciBtZXNzYWdlcyA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGRlZmF1bHRBcmlhTGl2ZU1lc3NhZ2VzKSwgYXJpYUxpdmVNZXNzYWdlcyB8fCB7fSk7XG4gIH0sIFthcmlhTGl2ZU1lc3NhZ2VzXSk7XG5cbiAgLy8gVXBkYXRlIGFyaWEgbGl2ZSBzZWxlY3RlZCBvcHRpb24gd2hlbiBwcm9wIGNoYW5nZXNcbiAgdmFyIGFyaWFTZWxlY3RlZCA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBtZXNzYWdlID0gJyc7XG4gICAgaWYgKGFyaWFTZWxlY3Rpb24gJiYgbWVzc2FnZXMub25DaGFuZ2UpIHtcbiAgICAgIHZhciBvcHRpb24gPSBhcmlhU2VsZWN0aW9uLm9wdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zID0gYXJpYVNlbGVjdGlvbi5vcHRpb25zLFxuICAgICAgICByZW1vdmVkVmFsdWUgPSBhcmlhU2VsZWN0aW9uLnJlbW92ZWRWYWx1ZSxcbiAgICAgICAgcmVtb3ZlZFZhbHVlcyA9IGFyaWFTZWxlY3Rpb24ucmVtb3ZlZFZhbHVlcyxcbiAgICAgICAgdmFsdWUgPSBhcmlhU2VsZWN0aW9uLnZhbHVlO1xuICAgICAgLy8gc2VsZWN0LW9wdGlvbiB3aGVuICFpc011bHRpIGRvZXMgbm90IHJldHVybiBvcHRpb24gc28gd2UgYXNzdW1lIHNlbGVjdGVkIG9wdGlvbiBpcyB2YWx1ZVxuICAgICAgdmFyIGFzT3B0aW9uID0gZnVuY3Rpb24gYXNPcHRpb24odmFsKSB7XG4gICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsIDogbnVsbDtcbiAgICAgIH07XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIGp1c3Qgb25lIGl0ZW0gZnJvbSB0aGUgYWN0aW9uIHRoZW4gZ2V0IGl0cyBsYWJlbFxuICAgICAgdmFyIHNlbGVjdGVkID0gcmVtb3ZlZFZhbHVlIHx8IG9wdGlvbiB8fCBhc09wdGlvbih2YWx1ZSk7XG4gICAgICB2YXIgbGFiZWwgPSBzZWxlY3RlZCA/IGdldE9wdGlvbkxhYmVsKHNlbGVjdGVkKSA6ICcnO1xuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgaXRlbXMgZnJvbSB0aGUgYWN0aW9uIHRoZW4gcmV0dXJuIGFuIGFycmF5IG9mIGxhYmVsc1xuICAgICAgdmFyIG11bHRpU2VsZWN0ZWQgPSBzZWxlY3RlZE9wdGlvbnMgfHwgcmVtb3ZlZFZhbHVlcyB8fCB1bmRlZmluZWQ7XG4gICAgICB2YXIgbGFiZWxzID0gbXVsdGlTZWxlY3RlZCA/IG11bHRpU2VsZWN0ZWQubWFwKGdldE9wdGlvbkxhYmVsKSA6IFtdO1xuICAgICAgdmFyIG9uQ2hhbmdlUHJvcHMgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgLy8gbXVsdGlTZWxlY3RlZCBpdGVtcyBhcmUgdXN1YWxseSBpdGVtcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNlbGVjdGVkXG4gICAgICAgIC8vIG9yIHNldCBieSB0aGUgdXNlciBhcyBhIGRlZmF1bHQgdmFsdWUgc28gd2UgYXNzdW1lIHRoZXkgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICBpc0Rpc2FibGVkOiBzZWxlY3RlZCAmJiBpc09wdGlvbkRpc2FibGVkKHNlbGVjdGVkLCBzZWxlY3RWYWx1ZSksXG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgbGFiZWxzOiBsYWJlbHNcbiAgICAgIH0sIGFyaWFTZWxlY3Rpb24pO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VzLm9uQ2hhbmdlKG9uQ2hhbmdlUHJvcHMpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSwgW2FyaWFTZWxlY3Rpb24sIG1lc3NhZ2VzLCBpc09wdGlvbkRpc2FibGVkLCBzZWxlY3RWYWx1ZSwgZ2V0T3B0aW9uTGFiZWxdKTtcbiAgdmFyIGFyaWFGb2N1c2VkID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGZvY3VzTXNnID0gJyc7XG4gICAgdmFyIGZvY3VzZWQgPSBmb2N1c2VkT3B0aW9uIHx8IGZvY3VzZWRWYWx1ZTtcbiAgICB2YXIgaXNTZWxlY3RlZCA9ICEhKGZvY3VzZWRPcHRpb24gJiYgc2VsZWN0VmFsdWUgJiYgc2VsZWN0VmFsdWUuaW5jbHVkZXMoZm9jdXNlZE9wdGlvbikpO1xuICAgIGlmIChmb2N1c2VkICYmIG1lc3NhZ2VzLm9uRm9jdXMpIHtcbiAgICAgIHZhciBvbkZvY3VzUHJvcHMgPSB7XG4gICAgICAgIGZvY3VzZWQ6IGZvY3VzZWQsXG4gICAgICAgIGxhYmVsOiBnZXRPcHRpb25MYWJlbChmb2N1c2VkKSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZChmb2N1c2VkLCBzZWxlY3RWYWx1ZSksXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgIG9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGNvbnRleHQ6IGZvY3VzZWQgPT09IGZvY3VzZWRPcHRpb24gPyAnbWVudScgOiAndmFsdWUnLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IGlzQXBwbGVEZXZpY2VcbiAgICAgIH07XG4gICAgICBmb2N1c01zZyA9IG1lc3NhZ2VzLm9uRm9jdXMob25Gb2N1c1Byb3BzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvY3VzTXNnO1xuICB9LCBbZm9jdXNlZE9wdGlvbiwgZm9jdXNlZFZhbHVlLCBnZXRPcHRpb25MYWJlbCwgaXNPcHRpb25EaXNhYmxlZCwgbWVzc2FnZXMsIGZvY3VzYWJsZU9wdGlvbnMsIHNlbGVjdFZhbHVlLCBpc0FwcGxlRGV2aWNlXSk7XG4gIHZhciBhcmlhUmVzdWx0cyA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXN1bHRzTXNnID0gJyc7XG4gICAgaWYgKG1lbnVJc09wZW4gJiYgb3B0aW9ucy5sZW5ndGggJiYgIWlzTG9hZGluZyAmJiBtZXNzYWdlcy5vbkZpbHRlcikge1xuICAgICAgdmFyIHJlc3VsdHNNZXNzYWdlID0gc2NyZWVuUmVhZGVyU3RhdHVzKHtcbiAgICAgICAgY291bnQ6IGZvY3VzYWJsZU9wdGlvbnMubGVuZ3RoXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdHNNc2cgPSBtZXNzYWdlcy5vbkZpbHRlcih7XG4gICAgICAgIGlucHV0VmFsdWU6IGlucHV0VmFsdWUsXG4gICAgICAgIHJlc3VsdHNNZXNzYWdlOiByZXN1bHRzTWVzc2FnZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzTXNnO1xuICB9LCBbZm9jdXNhYmxlT3B0aW9ucywgaW5wdXRWYWx1ZSwgbWVudUlzT3BlbiwgbWVzc2FnZXMsIG9wdGlvbnMsIHNjcmVlblJlYWRlclN0YXR1cywgaXNMb2FkaW5nXSk7XG4gIHZhciBpc0luaXRpYWxGb2N1cyA9IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnO1xuICB2YXIgYXJpYUd1aWRhbmNlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGd1aWRhbmNlTXNnID0gJyc7XG4gICAgaWYgKG1lc3NhZ2VzLmd1aWRhbmNlKSB7XG4gICAgICB2YXIgY29udGV4dCA9IGZvY3VzZWRWYWx1ZSA/ICd2YWx1ZScgOiBtZW51SXNPcGVuID8gJ21lbnUnIDogJ2lucHV0JztcbiAgICAgIGd1aWRhbmNlTXNnID0gbWVzc2FnZXMuZ3VpZGFuY2Uoe1xuICAgICAgICAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCxcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgaXNEaXNhYmxlZDogZm9jdXNlZE9wdGlvbiAmJiBpc09wdGlvbkRpc2FibGVkKGZvY3VzZWRPcHRpb24sIHNlbGVjdFZhbHVlKSxcbiAgICAgICAgaXNNdWx0aTogaXNNdWx0aSxcbiAgICAgICAgaXNTZWFyY2hhYmxlOiBpc1NlYXJjaGFibGUsXG4gICAgICAgIHRhYlNlbGVjdHNWYWx1ZTogdGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBpc0luaXRpYWxGb2N1czogaXNJbml0aWFsRm9jdXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ3VpZGFuY2VNc2c7XG4gIH0sIFthcmlhTGFiZWwsIGZvY3VzZWRPcHRpb24sIGZvY3VzZWRWYWx1ZSwgaXNNdWx0aSwgaXNPcHRpb25EaXNhYmxlZCwgaXNTZWFyY2hhYmxlLCBtZW51SXNPcGVuLCBtZXNzYWdlcywgc2VsZWN0VmFsdWUsIHRhYlNlbGVjdHNWYWx1ZSwgaXNJbml0aWFsRm9jdXNdKTtcbiAgdmFyIFNjcmVlblJlYWRlclRleHQgPSBqc3goRnJhZ21lbnQsIG51bGwsIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtc2VsZWN0aW9uXCJcbiAgfSwgYXJpYVNlbGVjdGVkKSwganN4KFwic3BhblwiLCB7XG4gICAgaWQ6IFwiYXJpYS1mb2N1c2VkXCJcbiAgfSwgYXJpYUZvY3VzZWQpLCBqc3goXCJzcGFuXCIsIHtcbiAgICBpZDogXCJhcmlhLXJlc3VsdHNcIlxuICB9LCBhcmlhUmVzdWx0cyksIGpzeChcInNwYW5cIiwge1xuICAgIGlkOiBcImFyaWEtZ3VpZGFuY2VcIlxuICB9LCBhcmlhR3VpZGFuY2UpKTtcbiAgcmV0dXJuIGpzeChGcmFnbWVudCwgbnVsbCwganN4KEExMXlUZXh0JDEsIHtcbiAgICBpZDogaWRcbiAgfSwgaXNJbml0aWFsRm9jdXMgJiYgU2NyZWVuUmVhZGVyVGV4dCksIGpzeChBMTF5VGV4dCQxLCB7XG4gICAgXCJhcmlhLWxpdmVcIjogYXJpYUxpdmUsXG4gICAgXCJhcmlhLWF0b21pY1wiOiBcImZhbHNlXCIsXG4gICAgXCJhcmlhLXJlbGV2YW50XCI6IFwiYWRkaXRpb25zIHRleHRcIixcbiAgICByb2xlOiBcImxvZ1wiXG4gIH0sIGlzRm9jdXNlZCAmJiAhaXNJbml0aWFsRm9jdXMgJiYgU2NyZWVuUmVhZGVyVGV4dCkpO1xufTtcbnZhciBMaXZlUmVnaW9uJDEgPSBMaXZlUmVnaW9uO1xuXG52YXIgZGlhY3JpdGljcyA9IFt7XG4gIGJhc2U6ICdBJyxcbiAgbGV0dGVyczogXCJBXFx1MjRCNlxcdUZGMjFcXHhDMFxceEMxXFx4QzJcXHUxRUE2XFx1MUVBNFxcdTFFQUFcXHUxRUE4XFx4QzNcXHUwMTAwXFx1MDEwMlxcdTFFQjBcXHUxRUFFXFx1MUVCNFxcdTFFQjJcXHUwMjI2XFx1MDFFMFxceEM0XFx1MDFERVxcdTFFQTJcXHhDNVxcdTAxRkFcXHUwMUNEXFx1MDIwMFxcdTAyMDJcXHUxRUEwXFx1MUVBQ1xcdTFFQjZcXHUxRTAwXFx1MDEwNFxcdTAyM0FcXHUyQzZGXCJcbn0sIHtcbiAgYmFzZTogJ0FBJyxcbiAgbGV0dGVyczogXCJcXHVBNzMyXCJcbn0sIHtcbiAgYmFzZTogJ0FFJyxcbiAgbGV0dGVyczogXCJcXHhDNlxcdTAxRkNcXHUwMUUyXCJcbn0sIHtcbiAgYmFzZTogJ0FPJyxcbiAgbGV0dGVyczogXCJcXHVBNzM0XCJcbn0sIHtcbiAgYmFzZTogJ0FVJyxcbiAgbGV0dGVyczogXCJcXHVBNzM2XCJcbn0sIHtcbiAgYmFzZTogJ0FWJyxcbiAgbGV0dGVyczogXCJcXHVBNzM4XFx1QTczQVwiXG59LCB7XG4gIGJhc2U6ICdBWScsXG4gIGxldHRlcnM6IFwiXFx1QTczQ1wiXG59LCB7XG4gIGJhc2U6ICdCJyxcbiAgbGV0dGVyczogXCJCXFx1MjRCN1xcdUZGMjJcXHUxRTAyXFx1MUUwNFxcdTFFMDZcXHUwMjQzXFx1MDE4MlxcdTAxODFcIlxufSwge1xuICBiYXNlOiAnQycsXG4gIGxldHRlcnM6IFwiQ1xcdTI0QjhcXHVGRjIzXFx1MDEwNlxcdTAxMDhcXHUwMTBBXFx1MDEwQ1xceEM3XFx1MUUwOFxcdTAxODdcXHUwMjNCXFx1QTczRVwiXG59LCB7XG4gIGJhc2U6ICdEJyxcbiAgbGV0dGVyczogXCJEXFx1MjRCOVxcdUZGMjRcXHUxRTBBXFx1MDEwRVxcdTFFMENcXHUxRTEwXFx1MUUxMlxcdTFFMEVcXHUwMTEwXFx1MDE4QlxcdTAxOEFcXHUwMTg5XFx1QTc3OVwiXG59LCB7XG4gIGJhc2U6ICdEWicsXG4gIGxldHRlcnM6IFwiXFx1MDFGMVxcdTAxQzRcIlxufSwge1xuICBiYXNlOiAnRHonLFxuICBsZXR0ZXJzOiBcIlxcdTAxRjJcXHUwMUM1XCJcbn0sIHtcbiAgYmFzZTogJ0UnLFxuICBsZXR0ZXJzOiBcIkVcXHUyNEJBXFx1RkYyNVxceEM4XFx4QzlcXHhDQVxcdTFFQzBcXHUxRUJFXFx1MUVDNFxcdTFFQzJcXHUxRUJDXFx1MDExMlxcdTFFMTRcXHUxRTE2XFx1MDExNFxcdTAxMTZcXHhDQlxcdTFFQkFcXHUwMTFBXFx1MDIwNFxcdTAyMDZcXHUxRUI4XFx1MUVDNlxcdTAyMjhcXHUxRTFDXFx1MDExOFxcdTFFMThcXHUxRTFBXFx1MDE5MFxcdTAxOEVcIlxufSwge1xuICBiYXNlOiAnRicsXG4gIGxldHRlcnM6IFwiRlxcdTI0QkJcXHVGRjI2XFx1MUUxRVxcdTAxOTFcXHVBNzdCXCJcbn0sIHtcbiAgYmFzZTogJ0cnLFxuICBsZXR0ZXJzOiBcIkdcXHUyNEJDXFx1RkYyN1xcdTAxRjRcXHUwMTFDXFx1MUUyMFxcdTAxMUVcXHUwMTIwXFx1MDFFNlxcdTAxMjJcXHUwMUU0XFx1MDE5M1xcdUE3QTBcXHVBNzdEXFx1QTc3RVwiXG59LCB7XG4gIGJhc2U6ICdIJyxcbiAgbGV0dGVyczogXCJIXFx1MjRCRFxcdUZGMjhcXHUwMTI0XFx1MUUyMlxcdTFFMjZcXHUwMjFFXFx1MUUyNFxcdTFFMjhcXHUxRTJBXFx1MDEyNlxcdTJDNjdcXHUyQzc1XFx1QTc4RFwiXG59LCB7XG4gIGJhc2U6ICdJJyxcbiAgbGV0dGVyczogXCJJXFx1MjRCRVxcdUZGMjlcXHhDQ1xceENEXFx4Q0VcXHUwMTI4XFx1MDEyQVxcdTAxMkNcXHUwMTMwXFx4Q0ZcXHUxRTJFXFx1MUVDOFxcdTAxQ0ZcXHUwMjA4XFx1MDIwQVxcdTFFQ0FcXHUwMTJFXFx1MUUyQ1xcdTAxOTdcIlxufSwge1xuICBiYXNlOiAnSicsXG4gIGxldHRlcnM6IFwiSlxcdTI0QkZcXHVGRjJBXFx1MDEzNFxcdTAyNDhcIlxufSwge1xuICBiYXNlOiAnSycsXG4gIGxldHRlcnM6IFwiS1xcdTI0QzBcXHVGRjJCXFx1MUUzMFxcdTAxRThcXHUxRTMyXFx1MDEzNlxcdTFFMzRcXHUwMTk4XFx1MkM2OVxcdUE3NDBcXHVBNzQyXFx1QTc0NFxcdUE3QTJcIlxufSwge1xuICBiYXNlOiAnTCcsXG4gIGxldHRlcnM6IFwiTFxcdTI0QzFcXHVGRjJDXFx1MDEzRlxcdTAxMzlcXHUwMTNEXFx1MUUzNlxcdTFFMzhcXHUwMTNCXFx1MUUzQ1xcdTFFM0FcXHUwMTQxXFx1MDIzRFxcdTJDNjJcXHUyQzYwXFx1QTc0OFxcdUE3NDZcXHVBNzgwXCJcbn0sIHtcbiAgYmFzZTogJ0xKJyxcbiAgbGV0dGVyczogXCJcXHUwMUM3XCJcbn0sIHtcbiAgYmFzZTogJ0xqJyxcbiAgbGV0dGVyczogXCJcXHUwMUM4XCJcbn0sIHtcbiAgYmFzZTogJ00nLFxuICBsZXR0ZXJzOiBcIk1cXHUyNEMyXFx1RkYyRFxcdTFFM0VcXHUxRTQwXFx1MUU0MlxcdTJDNkVcXHUwMTlDXCJcbn0sIHtcbiAgYmFzZTogJ04nLFxuICBsZXR0ZXJzOiBcIk5cXHUyNEMzXFx1RkYyRVxcdTAxRjhcXHUwMTQzXFx4RDFcXHUxRTQ0XFx1MDE0N1xcdTFFNDZcXHUwMTQ1XFx1MUU0QVxcdTFFNDhcXHUwMjIwXFx1MDE5RFxcdUE3OTBcXHVBN0E0XCJcbn0sIHtcbiAgYmFzZTogJ05KJyxcbiAgbGV0dGVyczogXCJcXHUwMUNBXCJcbn0sIHtcbiAgYmFzZTogJ05qJyxcbiAgbGV0dGVyczogXCJcXHUwMUNCXCJcbn0sIHtcbiAgYmFzZTogJ08nLFxuICBsZXR0ZXJzOiBcIk9cXHUyNEM0XFx1RkYyRlxceEQyXFx4RDNcXHhENFxcdTFFRDJcXHUxRUQwXFx1MUVENlxcdTFFRDRcXHhENVxcdTFFNENcXHUwMjJDXFx1MUU0RVxcdTAxNENcXHUxRTUwXFx1MUU1MlxcdTAxNEVcXHUwMjJFXFx1MDIzMFxceEQ2XFx1MDIyQVxcdTFFQ0VcXHUwMTUwXFx1MDFEMVxcdTAyMENcXHUwMjBFXFx1MDFBMFxcdTFFRENcXHUxRURBXFx1MUVFMFxcdTFFREVcXHUxRUUyXFx1MUVDQ1xcdTFFRDhcXHUwMUVBXFx1MDFFQ1xceEQ4XFx1MDFGRVxcdTAxODZcXHUwMTlGXFx1QTc0QVxcdUE3NENcIlxufSwge1xuICBiYXNlOiAnT0knLFxuICBsZXR0ZXJzOiBcIlxcdTAxQTJcIlxufSwge1xuICBiYXNlOiAnT08nLFxuICBsZXR0ZXJzOiBcIlxcdUE3NEVcIlxufSwge1xuICBiYXNlOiAnT1UnLFxuICBsZXR0ZXJzOiBcIlxcdTAyMjJcIlxufSwge1xuICBiYXNlOiAnUCcsXG4gIGxldHRlcnM6IFwiUFxcdTI0QzVcXHVGRjMwXFx1MUU1NFxcdTFFNTZcXHUwMUE0XFx1MkM2M1xcdUE3NTBcXHVBNzUyXFx1QTc1NFwiXG59LCB7XG4gIGJhc2U6ICdRJyxcbiAgbGV0dGVyczogXCJRXFx1MjRDNlxcdUZGMzFcXHVBNzU2XFx1QTc1OFxcdTAyNEFcIlxufSwge1xuICBiYXNlOiAnUicsXG4gIGxldHRlcnM6IFwiUlxcdTI0QzdcXHVGRjMyXFx1MDE1NFxcdTFFNThcXHUwMTU4XFx1MDIxMFxcdTAyMTJcXHUxRTVBXFx1MUU1Q1xcdTAxNTZcXHUxRTVFXFx1MDI0Q1xcdTJDNjRcXHVBNzVBXFx1QTdBNlxcdUE3ODJcIlxufSwge1xuICBiYXNlOiAnUycsXG4gIGxldHRlcnM6IFwiU1xcdTI0QzhcXHVGRjMzXFx1MUU5RVxcdTAxNUFcXHUxRTY0XFx1MDE1Q1xcdTFFNjBcXHUwMTYwXFx1MUU2NlxcdTFFNjJcXHUxRTY4XFx1MDIxOFxcdTAxNUVcXHUyQzdFXFx1QTdBOFxcdUE3ODRcIlxufSwge1xuICBiYXNlOiAnVCcsXG4gIGxldHRlcnM6IFwiVFxcdTI0QzlcXHVGRjM0XFx1MUU2QVxcdTAxNjRcXHUxRTZDXFx1MDIxQVxcdTAxNjJcXHUxRTcwXFx1MUU2RVxcdTAxNjZcXHUwMUFDXFx1MDFBRVxcdTAyM0VcXHVBNzg2XCJcbn0sIHtcbiAgYmFzZTogJ1RaJyxcbiAgbGV0dGVyczogXCJcXHVBNzI4XCJcbn0sIHtcbiAgYmFzZTogJ1UnLFxuICBsZXR0ZXJzOiBcIlVcXHUyNENBXFx1RkYzNVxceEQ5XFx4REFcXHhEQlxcdTAxNjhcXHUxRTc4XFx1MDE2QVxcdTFFN0FcXHUwMTZDXFx4RENcXHUwMURCXFx1MDFEN1xcdTAxRDVcXHUwMUQ5XFx1MUVFNlxcdTAxNkVcXHUwMTcwXFx1MDFEM1xcdTAyMTRcXHUwMjE2XFx1MDFBRlxcdTFFRUFcXHUxRUU4XFx1MUVFRVxcdTFFRUNcXHUxRUYwXFx1MUVFNFxcdTFFNzJcXHUwMTcyXFx1MUU3NlxcdTFFNzRcXHUwMjQ0XCJcbn0sIHtcbiAgYmFzZTogJ1YnLFxuICBsZXR0ZXJzOiBcIlZcXHUyNENCXFx1RkYzNlxcdTFFN0NcXHUxRTdFXFx1MDFCMlxcdUE3NUVcXHUwMjQ1XCJcbn0sIHtcbiAgYmFzZTogJ1ZZJyxcbiAgbGV0dGVyczogXCJcXHVBNzYwXCJcbn0sIHtcbiAgYmFzZTogJ1cnLFxuICBsZXR0ZXJzOiBcIldcXHUyNENDXFx1RkYzN1xcdTFFODBcXHUxRTgyXFx1MDE3NFxcdTFFODZcXHUxRTg0XFx1MUU4OFxcdTJDNzJcIlxufSwge1xuICBiYXNlOiAnWCcsXG4gIGxldHRlcnM6IFwiWFxcdTI0Q0RcXHVGRjM4XFx1MUU4QVxcdTFFOENcIlxufSwge1xuICBiYXNlOiAnWScsXG4gIGxldHRlcnM6IFwiWVxcdTI0Q0VcXHVGRjM5XFx1MUVGMlxceEREXFx1MDE3NlxcdTFFRjhcXHUwMjMyXFx1MUU4RVxcdTAxNzhcXHUxRUY2XFx1MUVGNFxcdTAxQjNcXHUwMjRFXFx1MUVGRVwiXG59LCB7XG4gIGJhc2U6ICdaJyxcbiAgbGV0dGVyczogXCJaXFx1MjRDRlxcdUZGM0FcXHUwMTc5XFx1MUU5MFxcdTAxN0JcXHUwMTdEXFx1MUU5MlxcdTFFOTRcXHUwMUI1XFx1MDIyNFxcdTJDN0ZcXHUyQzZCXFx1QTc2MlwiXG59LCB7XG4gIGJhc2U6ICdhJyxcbiAgbGV0dGVyczogXCJhXFx1MjREMFxcdUZGNDFcXHUxRTlBXFx4RTBcXHhFMVxceEUyXFx1MUVBN1xcdTFFQTVcXHUxRUFCXFx1MUVBOVxceEUzXFx1MDEwMVxcdTAxMDNcXHUxRUIxXFx1MUVBRlxcdTFFQjVcXHUxRUIzXFx1MDIyN1xcdTAxRTFcXHhFNFxcdTAxREZcXHUxRUEzXFx4RTVcXHUwMUZCXFx1MDFDRVxcdTAyMDFcXHUwMjAzXFx1MUVBMVxcdTFFQURcXHUxRUI3XFx1MUUwMVxcdTAxMDVcXHUyQzY1XFx1MDI1MFwiXG59LCB7XG4gIGJhc2U6ICdhYScsXG4gIGxldHRlcnM6IFwiXFx1QTczM1wiXG59LCB7XG4gIGJhc2U6ICdhZScsXG4gIGxldHRlcnM6IFwiXFx4RTZcXHUwMUZEXFx1MDFFM1wiXG59LCB7XG4gIGJhc2U6ICdhbycsXG4gIGxldHRlcnM6IFwiXFx1QTczNVwiXG59LCB7XG4gIGJhc2U6ICdhdScsXG4gIGxldHRlcnM6IFwiXFx1QTczN1wiXG59LCB7XG4gIGJhc2U6ICdhdicsXG4gIGxldHRlcnM6IFwiXFx1QTczOVxcdUE3M0JcIlxufSwge1xuICBiYXNlOiAnYXknLFxuICBsZXR0ZXJzOiBcIlxcdUE3M0RcIlxufSwge1xuICBiYXNlOiAnYicsXG4gIGxldHRlcnM6IFwiYlxcdTI0RDFcXHVGRjQyXFx1MUUwM1xcdTFFMDVcXHUxRTA3XFx1MDE4MFxcdTAxODNcXHUwMjUzXCJcbn0sIHtcbiAgYmFzZTogJ2MnLFxuICBsZXR0ZXJzOiBcImNcXHUyNEQyXFx1RkY0M1xcdTAxMDdcXHUwMTA5XFx1MDEwQlxcdTAxMERcXHhFN1xcdTFFMDlcXHUwMTg4XFx1MDIzQ1xcdUE3M0ZcXHUyMTg0XCJcbn0sIHtcbiAgYmFzZTogJ2QnLFxuICBsZXR0ZXJzOiBcImRcXHUyNEQzXFx1RkY0NFxcdTFFMEJcXHUwMTBGXFx1MUUwRFxcdTFFMTFcXHUxRTEzXFx1MUUwRlxcdTAxMTFcXHUwMThDXFx1MDI1NlxcdTAyNTdcXHVBNzdBXCJcbn0sIHtcbiAgYmFzZTogJ2R6JyxcbiAgbGV0dGVyczogXCJcXHUwMUYzXFx1MDFDNlwiXG59LCB7XG4gIGJhc2U6ICdlJyxcbiAgbGV0dGVyczogXCJlXFx1MjRENFxcdUZGNDVcXHhFOFxceEU5XFx4RUFcXHUxRUMxXFx1MUVCRlxcdTFFQzVcXHUxRUMzXFx1MUVCRFxcdTAxMTNcXHUxRTE1XFx1MUUxN1xcdTAxMTVcXHUwMTE3XFx4RUJcXHUxRUJCXFx1MDExQlxcdTAyMDVcXHUwMjA3XFx1MUVCOVxcdTFFQzdcXHUwMjI5XFx1MUUxRFxcdTAxMTlcXHUxRTE5XFx1MUUxQlxcdTAyNDdcXHUwMjVCXFx1MDFERFwiXG59LCB7XG4gIGJhc2U6ICdmJyxcbiAgbGV0dGVyczogXCJmXFx1MjRENVxcdUZGNDZcXHUxRTFGXFx1MDE5MlxcdUE3N0NcIlxufSwge1xuICBiYXNlOiAnZycsXG4gIGxldHRlcnM6IFwiZ1xcdTI0RDZcXHVGRjQ3XFx1MDFGNVxcdTAxMURcXHUxRTIxXFx1MDExRlxcdTAxMjFcXHUwMUU3XFx1MDEyM1xcdTAxRTVcXHUwMjYwXFx1QTdBMVxcdTFENzlcXHVBNzdGXCJcbn0sIHtcbiAgYmFzZTogJ2gnLFxuICBsZXR0ZXJzOiBcImhcXHUyNEQ3XFx1RkY0OFxcdTAxMjVcXHUxRTIzXFx1MUUyN1xcdTAyMUZcXHUxRTI1XFx1MUUyOVxcdTFFMkJcXHUxRTk2XFx1MDEyN1xcdTJDNjhcXHUyQzc2XFx1MDI2NVwiXG59LCB7XG4gIGJhc2U6ICdodicsXG4gIGxldHRlcnM6IFwiXFx1MDE5NVwiXG59LCB7XG4gIGJhc2U6ICdpJyxcbiAgbGV0dGVyczogXCJpXFx1MjREOFxcdUZGNDlcXHhFQ1xceEVEXFx4RUVcXHUwMTI5XFx1MDEyQlxcdTAxMkRcXHhFRlxcdTFFMkZcXHUxRUM5XFx1MDFEMFxcdTAyMDlcXHUwMjBCXFx1MUVDQlxcdTAxMkZcXHUxRTJEXFx1MDI2OFxcdTAxMzFcIlxufSwge1xuICBiYXNlOiAnaicsXG4gIGxldHRlcnM6IFwialxcdTI0RDlcXHVGRjRBXFx1MDEzNVxcdTAxRjBcXHUwMjQ5XCJcbn0sIHtcbiAgYmFzZTogJ2snLFxuICBsZXR0ZXJzOiBcImtcXHUyNERBXFx1RkY0QlxcdTFFMzFcXHUwMUU5XFx1MUUzM1xcdTAxMzdcXHUxRTM1XFx1MDE5OVxcdTJDNkFcXHVBNzQxXFx1QTc0M1xcdUE3NDVcXHVBN0EzXCJcbn0sIHtcbiAgYmFzZTogJ2wnLFxuICBsZXR0ZXJzOiBcImxcXHUyNERCXFx1RkY0Q1xcdTAxNDBcXHUwMTNBXFx1MDEzRVxcdTFFMzdcXHUxRTM5XFx1MDEzQ1xcdTFFM0RcXHUxRTNCXFx1MDE3RlxcdTAxNDJcXHUwMTlBXFx1MDI2QlxcdTJDNjFcXHVBNzQ5XFx1QTc4MVxcdUE3NDdcIlxufSwge1xuICBiYXNlOiAnbGonLFxuICBsZXR0ZXJzOiBcIlxcdTAxQzlcIlxufSwge1xuICBiYXNlOiAnbScsXG4gIGxldHRlcnM6IFwibVxcdTI0RENcXHVGRjREXFx1MUUzRlxcdTFFNDFcXHUxRTQzXFx1MDI3MVxcdTAyNkZcIlxufSwge1xuICBiYXNlOiAnbicsXG4gIGxldHRlcnM6IFwiblxcdTI0RERcXHVGRjRFXFx1MDFGOVxcdTAxNDRcXHhGMVxcdTFFNDVcXHUwMTQ4XFx1MUU0N1xcdTAxNDZcXHUxRTRCXFx1MUU0OVxcdTAxOUVcXHUwMjcyXFx1MDE0OVxcdUE3OTFcXHVBN0E1XCJcbn0sIHtcbiAgYmFzZTogJ25qJyxcbiAgbGV0dGVyczogXCJcXHUwMUNDXCJcbn0sIHtcbiAgYmFzZTogJ28nLFxuICBsZXR0ZXJzOiBcIm9cXHUyNERFXFx1RkY0RlxceEYyXFx4RjNcXHhGNFxcdTFFRDNcXHUxRUQxXFx1MUVEN1xcdTFFRDVcXHhGNVxcdTFFNERcXHUwMjJEXFx1MUU0RlxcdTAxNERcXHUxRTUxXFx1MUU1M1xcdTAxNEZcXHUwMjJGXFx1MDIzMVxceEY2XFx1MDIyQlxcdTFFQ0ZcXHUwMTUxXFx1MDFEMlxcdTAyMERcXHUwMjBGXFx1MDFBMVxcdTFFRERcXHUxRURCXFx1MUVFMVxcdTFFREZcXHUxRUUzXFx1MUVDRFxcdTFFRDlcXHUwMUVCXFx1MDFFRFxceEY4XFx1MDFGRlxcdTAyNTRcXHVBNzRCXFx1QTc0RFxcdTAyNzVcIlxufSwge1xuICBiYXNlOiAnb2knLFxuICBsZXR0ZXJzOiBcIlxcdTAxQTNcIlxufSwge1xuICBiYXNlOiAnb3UnLFxuICBsZXR0ZXJzOiBcIlxcdTAyMjNcIlxufSwge1xuICBiYXNlOiAnb28nLFxuICBsZXR0ZXJzOiBcIlxcdUE3NEZcIlxufSwge1xuICBiYXNlOiAncCcsXG4gIGxldHRlcnM6IFwicFxcdTI0REZcXHVGRjUwXFx1MUU1NVxcdTFFNTdcXHUwMUE1XFx1MUQ3RFxcdUE3NTFcXHVBNzUzXFx1QTc1NVwiXG59LCB7XG4gIGJhc2U6ICdxJyxcbiAgbGV0dGVyczogXCJxXFx1MjRFMFxcdUZGNTFcXHUwMjRCXFx1QTc1N1xcdUE3NTlcIlxufSwge1xuICBiYXNlOiAncicsXG4gIGxldHRlcnM6IFwiclxcdTI0RTFcXHVGRjUyXFx1MDE1NVxcdTFFNTlcXHUwMTU5XFx1MDIxMVxcdTAyMTNcXHUxRTVCXFx1MUU1RFxcdTAxNTdcXHUxRTVGXFx1MDI0RFxcdTAyN0RcXHVBNzVCXFx1QTdBN1xcdUE3ODNcIlxufSwge1xuICBiYXNlOiAncycsXG4gIGxldHRlcnM6IFwic1xcdTI0RTJcXHVGRjUzXFx4REZcXHUwMTVCXFx1MUU2NVxcdTAxNURcXHUxRTYxXFx1MDE2MVxcdTFFNjdcXHUxRTYzXFx1MUU2OVxcdTAyMTlcXHUwMTVGXFx1MDIzRlxcdUE3QTlcXHVBNzg1XFx1MUU5QlwiXG59LCB7XG4gIGJhc2U6ICd0JyxcbiAgbGV0dGVyczogXCJ0XFx1MjRFM1xcdUZGNTRcXHUxRTZCXFx1MUU5N1xcdTAxNjVcXHUxRTZEXFx1MDIxQlxcdTAxNjNcXHUxRTcxXFx1MUU2RlxcdTAxNjdcXHUwMUFEXFx1MDI4OFxcdTJDNjZcXHVBNzg3XCJcbn0sIHtcbiAgYmFzZTogJ3R6JyxcbiAgbGV0dGVyczogXCJcXHVBNzI5XCJcbn0sIHtcbiAgYmFzZTogJ3UnLFxuICBsZXR0ZXJzOiBcInVcXHUyNEU0XFx1RkY1NVxceEY5XFx4RkFcXHhGQlxcdTAxNjlcXHUxRTc5XFx1MDE2QlxcdTFFN0JcXHUwMTZEXFx4RkNcXHUwMURDXFx1MDFEOFxcdTAxRDZcXHUwMURBXFx1MUVFN1xcdTAxNkZcXHUwMTcxXFx1MDFENFxcdTAyMTVcXHUwMjE3XFx1MDFCMFxcdTFFRUJcXHUxRUU5XFx1MUVFRlxcdTFFRURcXHUxRUYxXFx1MUVFNVxcdTFFNzNcXHUwMTczXFx1MUU3N1xcdTFFNzVcXHUwMjg5XCJcbn0sIHtcbiAgYmFzZTogJ3YnLFxuICBsZXR0ZXJzOiBcInZcXHUyNEU1XFx1RkY1NlxcdTFFN0RcXHUxRTdGXFx1MDI4QlxcdUE3NUZcXHUwMjhDXCJcbn0sIHtcbiAgYmFzZTogJ3Z5JyxcbiAgbGV0dGVyczogXCJcXHVBNzYxXCJcbn0sIHtcbiAgYmFzZTogJ3cnLFxuICBsZXR0ZXJzOiBcIndcXHUyNEU2XFx1RkY1N1xcdTFFODFcXHUxRTgzXFx1MDE3NVxcdTFFODdcXHUxRTg1XFx1MUU5OFxcdTFFODlcXHUyQzczXCJcbn0sIHtcbiAgYmFzZTogJ3gnLFxuICBsZXR0ZXJzOiBcInhcXHUyNEU3XFx1RkY1OFxcdTFFOEJcXHUxRThEXCJcbn0sIHtcbiAgYmFzZTogJ3knLFxuICBsZXR0ZXJzOiBcInlcXHUyNEU4XFx1RkY1OVxcdTFFRjNcXHhGRFxcdTAxNzdcXHUxRUY5XFx1MDIzM1xcdTFFOEZcXHhGRlxcdTFFRjdcXHUxRTk5XFx1MUVGNVxcdTAxQjRcXHUwMjRGXFx1MUVGRlwiXG59LCB7XG4gIGJhc2U6ICd6JyxcbiAgbGV0dGVyczogXCJ6XFx1MjRFOVxcdUZGNUFcXHUwMTdBXFx1MUU5MVxcdTAxN0NcXHUwMTdFXFx1MUU5M1xcdTFFOTVcXHUwMUI2XFx1MDIyNVxcdTAyNDBcXHUyQzZDXFx1QTc2M1wiXG59XTtcbnZhciBhbnlEaWFjcml0aWMgPSBuZXcgUmVnRXhwKCdbJyArIGRpYWNyaXRpY3MubWFwKGZ1bmN0aW9uIChkKSB7XG4gIHJldHVybiBkLmxldHRlcnM7XG59KS5qb2luKCcnKSArICddJywgJ2cnKTtcbnZhciBkaWFjcml0aWNUb0Jhc2UgPSB7fTtcbmZvciAodmFyIGkgPSAwOyBpIDwgZGlhY3JpdGljcy5sZW5ndGg7IGkrKykge1xuICB2YXIgZGlhY3JpdGljID0gZGlhY3JpdGljc1tpXTtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBkaWFjcml0aWMubGV0dGVycy5sZW5ndGg7IGorKykge1xuICAgIGRpYWNyaXRpY1RvQmFzZVtkaWFjcml0aWMubGV0dGVyc1tqXV0gPSBkaWFjcml0aWMuYmFzZTtcbiAgfVxufVxudmFyIHN0cmlwRGlhY3JpdGljcyA9IGZ1bmN0aW9uIHN0cmlwRGlhY3JpdGljcyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGFueURpYWNyaXRpYywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgcmV0dXJuIGRpYWNyaXRpY1RvQmFzZVttYXRjaF07XG4gIH0pO1xufTtcblxudmFyIG1lbW9pemVkU3RyaXBEaWFjcml0aWNzRm9ySW5wdXQgPSBtZW1vaXplT25lKHN0cmlwRGlhY3JpdGljcyk7XG52YXIgdHJpbVN0cmluZyA9IGZ1bmN0aW9uIHRyaW1TdHJpbmcoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xufTtcbnZhciBkZWZhdWx0U3RyaW5naWZ5ID0gZnVuY3Rpb24gZGVmYXVsdFN0cmluZ2lmeShvcHRpb24pIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KG9wdGlvbi5sYWJlbCwgXCIgXCIpLmNvbmNhdChvcHRpb24udmFsdWUpO1xufTtcbnZhciBjcmVhdGVGaWx0ZXIgPSBmdW5jdGlvbiBjcmVhdGVGaWx0ZXIoY29uZmlnKSB7XG4gIHJldHVybiBmdW5jdGlvbiAob3B0aW9uLCByYXdJbnB1dCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIGlmIChvcHRpb24uZGF0YS5fX2lzTmV3X18pIHJldHVybiB0cnVlO1xuICAgIHZhciBfaWdub3JlQ2FzZSRpZ25vcmVBY2MgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgaWdub3JlQ2FzZTogdHJ1ZSxcbiAgICAgICAgaWdub3JlQWNjZW50czogdHJ1ZSxcbiAgICAgICAgc3RyaW5naWZ5OiBkZWZhdWx0U3RyaW5naWZ5LFxuICAgICAgICB0cmltOiB0cnVlLFxuICAgICAgICBtYXRjaEZyb206ICdhbnknXG4gICAgICB9LCBjb25maWcpLFxuICAgICAgaWdub3JlQ2FzZSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5pZ25vcmVDYXNlLFxuICAgICAgaWdub3JlQWNjZW50cyA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5pZ25vcmVBY2NlbnRzLFxuICAgICAgc3RyaW5naWZ5ID0gX2lnbm9yZUNhc2UkaWdub3JlQWNjLnN0cmluZ2lmeSxcbiAgICAgIHRyaW0gPSBfaWdub3JlQ2FzZSRpZ25vcmVBY2MudHJpbSxcbiAgICAgIG1hdGNoRnJvbSA9IF9pZ25vcmVDYXNlJGlnbm9yZUFjYy5tYXRjaEZyb207XG4gICAgdmFyIGlucHV0ID0gdHJpbSA/IHRyaW1TdHJpbmcocmF3SW5wdXQpIDogcmF3SW5wdXQ7XG4gICAgdmFyIGNhbmRpZGF0ZSA9IHRyaW0gPyB0cmltU3RyaW5nKHN0cmluZ2lmeShvcHRpb24pKSA6IHN0cmluZ2lmeShvcHRpb24pO1xuICAgIGlmIChpZ25vcmVDYXNlKSB7XG4gICAgICBpbnB1dCA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBjYW5kaWRhdGUgPSBjYW5kaWRhdGUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgaWYgKGlnbm9yZUFjY2VudHMpIHtcbiAgICAgIGlucHV0ID0gbWVtb2l6ZWRTdHJpcERpYWNyaXRpY3NGb3JJbnB1dChpbnB1dCk7XG4gICAgICBjYW5kaWRhdGUgPSBzdHJpcERpYWNyaXRpY3MoY2FuZGlkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoRnJvbSA9PT0gJ3N0YXJ0JyA/IGNhbmRpZGF0ZS5zdWJzdHIoMCwgaW5wdXQubGVuZ3RoKSA9PT0gaW5wdXQgOiBjYW5kaWRhdGUuaW5kZXhPZihpbnB1dCkgPiAtMTtcbiAgfTtcbn07XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJpbm5lclJlZlwiXTtcbmZ1bmN0aW9uIER1bW15SW5wdXQoX3JlZikge1xuICB2YXIgaW5uZXJSZWYgPSBfcmVmLmlubmVyUmVmLFxuICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsIF9leGNsdWRlZCk7XG4gIC8vIFJlbW92ZSBhbmltYXRpb24gcHJvcHMgbm90IG1lYW50IGZvciBIVE1MIGVsZW1lbnRzXG4gIHZhciBmaWx0ZXJlZFByb3BzID0gcmVtb3ZlUHJvcHMocHJvcHMsICdvbkV4aXRlZCcsICdpbicsICdlbnRlcicsICdleGl0JywgJ2FwcGVhcicpO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwgX2V4dGVuZHMoe1xuICAgIHJlZjogaW5uZXJSZWZcbiAgfSwgZmlsdGVyZWRQcm9wcywge1xuICAgIGNzczogLyojX19QVVJFX18qL2Nzcyh7XG4gICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgIGJhY2tncm91bmQ6IDAsXG4gICAgICBib3JkZXI6IDAsXG4gICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgY2FyZXRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgb3V0bGluZTogMCxcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgd2lkdGg6IDEsXG4gICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgIGNvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgbGVmdDogLTEwMCxcbiAgICAgIG9wYWNpdHk6IDAsXG4gICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKC4wMSknXG4gICAgfSwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCJcIiA6IFwiO2xhYmVsOkR1bW15SW5wdXQ7XCIsIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IFwiXCIgOiBcIi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklrUjFiVzE1U1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVhsQ1RTSXNJbVpwYkdVaU9pSkVkVzF0ZVVsdWNIVjBMblJ6ZUNJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLaUJBYW5ONElHcHplQ0FxTDF4dWFXMXdiM0owSUhzZ1NsTllMQ0JTWldZZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZXlCcWMzZ2dmU0JtY205dElDZEFaVzF2ZEdsdmJpOXlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnlaVzF2ZG1WUWNtOXdjeUI5SUdaeWIyMGdKeTR1TDNWMGFXeHpKenRjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnWm5WdVkzUnBiMjRnUkhWdGJYbEpibkIxZENoN1hHNGdJR2x1Ym1WeVVtVm1MRnh1SUNBdUxpNXdjbTl3YzF4dWZUb2dTbE5ZTGtsdWRISnBibk5wWTBWc1pXMWxiblJ6V3lkcGJuQjFkQ2RkSUNZZ2UxeHVJQ0J5WldGa2IyNXNlU0JwYm01bGNsSmxaam9nVW1WbVBFaFVUVXhKYm5CMWRFVnNaVzFsYm5RK08xeHVmU2tnZTF4dUlDQXZMeUJTWlcxdmRtVWdZVzVwYldGMGFXOXVJSEJ5YjNCeklHNXZkQ0J0WldGdWRDQm1iM0lnU0ZSTlRDQmxiR1Z0Wlc1MGMxeHVJQ0JqYjI1emRDQm1hV3gwWlhKbFpGQnliM0J6SUQwZ2NtVnRiM1psVUhKdmNITW9YRzRnSUNBZ2NISnZjSE1zWEc0Z0lDQWdKMjl1UlhocGRHVmtKeXhjYmlBZ0lDQW5hVzRuTEZ4dUlDQWdJQ2RsYm5SbGNpY3NYRzRnSUNBZ0oyVjRhWFFuTEZ4dUlDQWdJQ2RoY0hCbFlYSW5YRzRnSUNrN1hHNWNiaUFnY21WMGRYSnVJQ2hjYmlBZ0lDQThhVzV3ZFhSY2JpQWdJQ0FnSUhKbFpqMTdhVzV1WlhKU1pXWjlYRzRnSUNBZ0lDQjdMaTR1Wm1sc2RHVnlaV1JRY205d2MzMWNiaUFnSUNBZ0lHTnpjejE3ZTF4dUlDQWdJQ0FnSUNCc1lXSmxiRG9nSjJSMWJXMTVTVzV3ZFhRbkxGeHVJQ0FnSUNBZ0lDQXZMeUJuWlhRZ2NtbGtJRzltSUdGdWVTQmtaV1poZFd4MElITjBlV3hsYzF4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a09pQXdMRnh1SUNBZ0lDQWdJQ0JpYjNKa1pYSTZJREFzWEc0Z0lDQWdJQ0FnSUM4dklHbHRjRzl5ZEdGdWRDRWdkR2hwY3lCb2FXUmxjeUIwYUdVZ1pteGhjMmhwYm1jZ1kzVnljMjl5WEc0Z0lDQWdJQ0FnSUdOaGNtVjBRMjlzYjNJNklDZDBjbUZ1YzNCaGNtVnVkQ2NzWEc0Z0lDQWdJQ0FnSUdadmJuUlRhWHBsT2lBbmFXNW9aWEpwZENjc1hHNGdJQ0FnSUNBZ0lHZHlhV1JCY21WaE9pQW5NU0F2SURFZ0x5QXlJQzhnTXljc1hHNGdJQ0FnSUNBZ0lHOTFkR3hwYm1VNklEQXNYRzRnSUNBZ0lDQWdJSEJoWkdScGJtYzZJREFzWEc0Z0lDQWdJQ0FnSUM4dklHbHRjRzl5ZEdGdWRDRWdkMmwwYUc5MWRDQmdkMmxrZEdoZ0lHSnliM2R6WlhKeklIZHZiaWQwSUdGc2JHOTNJR1p2WTNWelhHNGdJQ0FnSUNBZ0lIZHBaSFJvT2lBeExGeHVYRzRnSUNBZ0lDQWdJQzh2SUhKbGJXOTJaU0JqZFhKemIzSWdiMjRnWkdWemEzUnZjRnh1SUNBZ0lDQWdJQ0JqYjJ4dmNqb2dKM1J5WVc1emNHRnlaVzUwSnl4Y2JseHVJQ0FnSUNBZ0lDQXZMeUJ5WlcxdmRtVWdZM1Z5YzI5eUlHOXVJRzF2WW1sc1pTQjNhR2xzYzNRZ2JXRnBiblJoYVc1cGJtY2dYQ0p6WTNKdmJHd2dhVzUwYnlCMmFXVjNYQ0lnWW1Wb1lYWnBiM1Z5WEc0Z0lDQWdJQ0FnSUd4bFpuUTZJQzB4TURBc1hHNGdJQ0FnSUNBZ0lHOXdZV05wZEhrNklEQXNYRzRnSUNBZ0lDQWdJSEJ2YzJsMGFXOXVPaUFuY21Wc1lYUnBkbVVuTEZ4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20wNklDZHpZMkZzWlNndU1ERXBKeXhjYmlBZ0lDQWdJSDE5WEc0Z0lDQWdMejVjYmlBZ0tUdGNibjFjYmlKZGZRPT0gKi9cIilcbiAgfSkpO1xufVxuXG52YXIgY2FuY2VsU2Nyb2xsID0gZnVuY3Rpb24gY2FuY2VsU2Nyb2xsKGV2ZW50KSB7XG4gIGlmIChldmVudC5jYW5jZWxhYmxlKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn07XG5mdW5jdGlvbiB1c2VTY3JvbGxDYXB0dXJlKF9yZWYpIHtcbiAgdmFyIGlzRW5hYmxlZCA9IF9yZWYuaXNFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlID0gX3JlZi5vbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlID0gX3JlZi5vbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlID0gX3JlZi5vblRvcEFycml2ZSxcbiAgICBvblRvcExlYXZlID0gX3JlZi5vblRvcExlYXZlO1xuICB2YXIgaXNCb3R0b20gPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgaXNUb3AgPSB1c2VSZWYoZmFsc2UpO1xuICB2YXIgdG91Y2hTdGFydCA9IHVzZVJlZigwKTtcbiAgdmFyIHNjcm9sbFRhcmdldCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGhhbmRsZUV2ZW50RGVsdGEgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIGRlbHRhKSB7XG4gICAgaWYgKHNjcm9sbFRhcmdldC5jdXJyZW50ID09PSBudWxsKSByZXR1cm47XG4gICAgdmFyIF9zY3JvbGxUYXJnZXQkY3VycmVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50LFxuICAgICAgc2Nyb2xsVG9wID0gX3Njcm9sbFRhcmdldCRjdXJyZW50LnNjcm9sbFRvcCxcbiAgICAgIHNjcm9sbEhlaWdodCA9IF9zY3JvbGxUYXJnZXQkY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICBjbGllbnRIZWlnaHQgPSBfc2Nyb2xsVGFyZ2V0JGN1cnJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIHZhciB0YXJnZXQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBzY3JvbGxUb3A7XG4gICAgdmFyIHNob3VsZENhbmNlbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLy8gcmVzZXQgYm90dG9tL3RvcCBmbGFnc1xuICAgIGlmIChhdmFpbGFibGVTY3JvbGwgPiBkZWx0YSAmJiBpc0JvdHRvbS5jdXJyZW50KSB7XG4gICAgICBpZiAob25Cb3R0b21MZWF2ZSkgb25Cb3R0b21MZWF2ZShldmVudCk7XG4gICAgICBpc0JvdHRvbS5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgaXNUb3AuY3VycmVudCkge1xuICAgICAgaWYgKG9uVG9wTGVhdmUpIG9uVG9wTGVhdmUoZXZlbnQpO1xuICAgICAgaXNUb3AuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIGJvdHRvbSBsaW1pdFxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiYgZGVsdGEgPiBhdmFpbGFibGVTY3JvbGwpIHtcbiAgICAgIGlmIChvbkJvdHRvbUFycml2ZSAmJiAhaXNCb3R0b20uY3VycmVudCkge1xuICAgICAgICBvbkJvdHRvbUFycml2ZShldmVudCk7XG4gICAgICB9XG4gICAgICB0YXJnZXQuc2Nyb2xsVG9wID0gc2Nyb2xsSGVpZ2h0O1xuICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIGlzQm90dG9tLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgICAvLyB0b3AgbGltaXRcbiAgICB9IGVsc2UgaWYgKCFpc0RlbHRhUG9zaXRpdmUgJiYgLWRlbHRhID4gc2Nyb2xsVG9wKSB7XG4gICAgICBpZiAob25Ub3BBcnJpdmUgJiYgIWlzVG9wLmN1cnJlbnQpIHtcbiAgICAgICAgb25Ub3BBcnJpdmUoZXZlbnQpO1xuICAgICAgfVxuICAgICAgdGFyZ2V0LnNjcm9sbFRvcCA9IDA7XG4gICAgICBzaG91bGRDYW5jZWxTY3JvbGwgPSB0cnVlO1xuICAgICAgaXNUb3AuY3VycmVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gY2FuY2VsIHNjcm9sbFxuICAgIGlmIChzaG91bGRDYW5jZWxTY3JvbGwpIHtcbiAgICAgIGNhbmNlbFNjcm9sbChldmVudCk7XG4gICAgfVxuICB9LCBbb25Cb3R0b21BcnJpdmUsIG9uQm90dG9tTGVhdmUsIG9uVG9wQXJyaXZlLCBvblRvcExlYXZlXSk7XG4gIHZhciBvbldoZWVsID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZXZlbnQuZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIG9uVG91Y2hTdGFydCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIHNldCB0b3VjaCBzdGFydCBzbyB3ZSBjYW4gY2FsY3VsYXRlIHRvdWNobW92ZSBkZWx0YVxuICAgIHRvdWNoU3RhcnQuY3VycmVudCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gIH0sIFtdKTtcbiAgdmFyIG9uVG91Y2hNb3ZlID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIGRlbHRhWSA9IHRvdWNoU3RhcnQuY3VycmVudCAtIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk7XG4gICAgaGFuZGxlRXZlbnREZWx0YShldmVudCwgZGVsdGFZKTtcbiAgfSwgW2hhbmRsZUV2ZW50RGVsdGFdKTtcbiAgdmFyIHN0YXJ0TGlzdGVuaW5nID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsKSB7XG4gICAgLy8gYmFpbCBlYXJseSBpZiBubyBlbGVtZW50IGlzIGF2YWlsYWJsZSB0byBhdHRhY2ggdG9cbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgdmFyIG5vdFBhc3NpdmUgPSBzdXBwb3J0c1Bhc3NpdmVFdmVudHMgPyB7XG4gICAgICBwYXNzaXZlOiBmYWxzZVxuICAgIH0gOiBmYWxzZTtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIG5vdFBhc3NpdmUpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIG9uVG91Y2hNb3ZlLCBub3RQYXNzaXZlKTtcbiAgfSwgW29uVG91Y2hNb3ZlLCBvblRvdWNoU3RhcnQsIG9uV2hlZWxdKTtcbiAgdmFyIHN0b3BMaXN0ZW5pbmcgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoZWwpIHtcbiAgICAvLyBiYWlsIGVhcmx5IGlmIG5vIGVsZW1lbnQgaXMgYXZhaWxhYmxlIHRvIGRldGFjaCBmcm9tXG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgb25XaGVlbCwgZmFsc2UpO1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBvblRvdWNoU3RhcnQsIGZhbHNlKTtcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBvblRvdWNoTW92ZSwgZmFsc2UpO1xuICB9LCBbb25Ub3VjaE1vdmUsIG9uVG91Y2hTdGFydCwgb25XaGVlbF0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghaXNFbmFibGVkKSByZXR1cm47XG4gICAgdmFyIGVsZW1lbnQgPSBzY3JvbGxUYXJnZXQuY3VycmVudDtcbiAgICBzdGFydExpc3RlbmluZyhlbGVtZW50KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgc3RvcExpc3RlbmluZyhlbGVtZW50KTtcbiAgICB9O1xuICB9LCBbaXNFbmFibGVkLCBzdGFydExpc3RlbmluZywgc3RvcExpc3RlbmluZ10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbnZhciBTVFlMRV9LRVlTID0gWydib3hTaXppbmcnLCAnaGVpZ2h0JywgJ292ZXJmbG93JywgJ3BhZGRpbmdSaWdodCcsICdwb3NpdGlvbiddO1xudmFyIExPQ0tfU1RZTEVTID0ge1xuICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgLy8gYWNjb3VudCBmb3IgcG9zc2libGUgZGVjbGFyYXRpb24gYHdpZHRoOiAxMDAlO2Agb24gYm9keVxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBoZWlnaHQ6ICcxMDAlJ1xufTtcbmZ1bmN0aW9uIHByZXZlbnRUb3VjaE1vdmUoZSkge1xuICBpZiAoZS5jYW5jZWxhYmxlKSBlLnByZXZlbnREZWZhdWx0KCk7XG59XG5mdW5jdGlvbiBhbGxvd1RvdWNoTW92ZShlKSB7XG4gIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5mdW5jdGlvbiBwcmV2ZW50SW5lcnRpYVNjcm9sbCgpIHtcbiAgdmFyIHRvcCA9IHRoaXMuc2Nyb2xsVG9wO1xuICB2YXIgdG90YWxTY3JvbGwgPSB0aGlzLnNjcm9sbEhlaWdodDtcbiAgdmFyIGN1cnJlbnRTY3JvbGwgPSB0b3AgKyB0aGlzLm9mZnNldEhlaWdodDtcbiAgaWYgKHRvcCA9PT0gMCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gMTtcbiAgfSBlbHNlIGlmIChjdXJyZW50U2Nyb2xsID09PSB0b3RhbFNjcm9sbCkge1xuICAgIHRoaXMuc2Nyb2xsVG9wID0gdG9wIC0gMTtcbiAgfVxufVxuXG4vLyBgb250b3VjaHN0YXJ0YCBjaGVjayB3b3JrcyBvbiBtb3N0IGJyb3dzZXJzXG4vLyBgbWF4VG91Y2hQb2ludHNgIHdvcmtzIG9uIElFMTAvMTEgYW5kIFN1cmZhY2VcbmZ1bmN0aW9uIGlzVG91Y2hEZXZpY2UoKSB7XG4gIHJldHVybiAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgfHwgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzO1xufVxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG52YXIgYWN0aXZlU2Nyb2xsTG9ja3MgPSAwO1xudmFyIGxpc3RlbmVyT3B0aW9ucyA9IHtcbiAgY2FwdHVyZTogZmFsc2UsXG4gIHBhc3NpdmU6IGZhbHNlXG59O1xuZnVuY3Rpb24gdXNlU2Nyb2xsTG9jayhfcmVmKSB7XG4gIHZhciBpc0VuYWJsZWQgPSBfcmVmLmlzRW5hYmxlZCxcbiAgICBfcmVmJGFjY291bnRGb3JTY3JvbGwgPSBfcmVmLmFjY291bnRGb3JTY3JvbGxiYXJzLFxuICAgIGFjY291bnRGb3JTY3JvbGxiYXJzID0gX3JlZiRhY2NvdW50Rm9yU2Nyb2xsID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiRhY2NvdW50Rm9yU2Nyb2xsO1xuICB2YXIgb3JpZ2luYWxTdHlsZXMgPSB1c2VSZWYoe30pO1xuICB2YXIgc2Nyb2xsVGFyZ2V0ID0gdXNlUmVmKG51bGwpO1xuICB2YXIgYWRkU2Nyb2xsTG9jayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgIGlmICghY2FuVXNlRE9NKSByZXR1cm47XG4gICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmJvZHk7XG4gICAgdmFyIHRhcmdldFN0eWxlID0gdGFyZ2V0ICYmIHRhcmdldC5zdHlsZTtcbiAgICBpZiAoYWNjb3VudEZvclNjcm9sbGJhcnMpIHtcbiAgICAgIC8vIHN0b3JlIGFueSBzdHlsZXMgYWxyZWFkeSBhcHBsaWVkIHRvIHRoZSBib2R5XG4gICAgICBTVFlMRV9LRVlTLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gdGFyZ2V0U3R5bGUgJiYgdGFyZ2V0U3R5bGVba2V5XTtcbiAgICAgICAgb3JpZ2luYWxTdHlsZXMuY3VycmVudFtrZXldID0gdmFsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdGhlIGxvY2sgc3R5bGVzIGFuZCBwYWRkaW5nIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHNjcm9sbCBsb2NrXG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQob3JpZ2luYWxTdHlsZXMuY3VycmVudC5wYWRkaW5nUmlnaHQsIDEwKSB8fCAwO1xuICAgICAgdmFyIGNsaWVudFdpZHRoID0gZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAwO1xuICAgICAgdmFyIGFkanVzdGVkUGFkZGluZyA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY2xpZW50V2lkdGggKyBjdXJyZW50UGFkZGluZyB8fCAwO1xuICAgICAgT2JqZWN0LmtleXMoTE9DS19TVFlMRVMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdmFsID0gTE9DS19TVFlMRVNba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAodGFyZ2V0U3R5bGUpIHtcbiAgICAgICAgdGFyZ2V0U3R5bGUucGFkZGluZ1JpZ2h0ID0gXCJcIi5jb25jYXQoYWRqdXN0ZWRQYWRkaW5nLCBcInB4XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFjY291bnQgZm9yIHRvdWNoIGRldmljZXNcbiAgICBpZiAodGFyZ2V0ICYmIGlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgLy8gTW9iaWxlIFNhZmFyaSBpZ25vcmVzIHsgb3ZlcmZsb3c6IGhpZGRlbiB9IGRlY2xhcmF0aW9uIG9uIHRoZSBib2R5LlxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHByZXZlbnRUb3VjaE1vdmUsIGxpc3RlbmVyT3B0aW9ucyk7XG5cbiAgICAgIC8vIEFsbG93IHNjcm9sbCBvbiBwcm92aWRlZCB0YXJnZXRcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGluY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgKz0gMTtcbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHZhciByZW1vdmVTY3JvbGxMb2NrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKHRvdWNoU2Nyb2xsVGFyZ2V0KSB7XG4gICAgaWYgKCFjYW5Vc2VET00pIHJldHVybjtcbiAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcbiAgICB2YXIgdGFyZ2V0U3R5bGUgPSB0YXJnZXQgJiYgdGFyZ2V0LnN0eWxlO1xuXG4gICAgLy8gc2FmZWx5IGRlY3JlbWVudCBhY3RpdmUgc2Nyb2xsIGxvY2tzXG4gICAgYWN0aXZlU2Nyb2xsTG9ja3MgPSBNYXRoLm1heChhY3RpdmVTY3JvbGxMb2NrcyAtIDEsIDApO1xuXG4gICAgLy8gcmVhcHBseSBvcmlnaW5hbCBib2R5IHN0eWxlcywgaWYgYW55XG4gICAgaWYgKGFjY291bnRGb3JTY3JvbGxiYXJzICYmIGFjdGl2ZVNjcm9sbExvY2tzIDwgMSkge1xuICAgICAgU1RZTEVfS0VZUy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbCA9IG9yaWdpbmFsU3R5bGVzLmN1cnJlbnRba2V5XTtcbiAgICAgICAgaWYgKHRhcmdldFN0eWxlKSB7XG4gICAgICAgICAgdGFyZ2V0U3R5bGVba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRvdWNoIGxpc3RlbmVyc1xuICAgIGlmICh0YXJnZXQgJiYgaXNUb3VjaERldmljZSgpKSB7XG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgcHJldmVudFRvdWNoTW92ZSwgbGlzdGVuZXJPcHRpb25zKTtcbiAgICAgIGlmICh0b3VjaFNjcm9sbFRhcmdldCkge1xuICAgICAgICB0b3VjaFNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgcHJldmVudEluZXJ0aWFTY3JvbGwsIGxpc3RlbmVyT3B0aW9ucyk7XG4gICAgICAgIHRvdWNoU2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGFsbG93VG91Y2hNb3ZlLCBsaXN0ZW5lck9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2FjY291bnRGb3JTY3JvbGxiYXJzXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFpc0VuYWJsZWQpIHJldHVybjtcbiAgICB2YXIgZWxlbWVudCA9IHNjcm9sbFRhcmdldC5jdXJyZW50O1xuICAgIGFkZFNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW92ZVNjcm9sbExvY2soZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2lzRW5hYmxlZCwgYWRkU2Nyb2xsTG9jaywgcmVtb3ZlU2Nyb2xsTG9ja10pO1xuICByZXR1cm4gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBzY3JvbGxUYXJnZXQuY3VycmVudCA9IGVsZW1lbnQ7XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fJDEoKSB7IHJldHVybiBcIllvdSBoYXZlIHRyaWVkIHRvIHN0cmluZ2lmeSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgY3NzYCBmdW5jdGlvbi4gSXQgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdXNlZCBkaXJlY3RseSAoZS5nLiBhcyB2YWx1ZSBvZiB0aGUgYGNsYXNzTmFtZWAgcHJvcCksIGJ1dCByYXRoZXIgaGFuZGVkIHRvIGVtb3Rpb24gc28gaXQgY2FuIGhhbmRsZSBpdCAoZS5nLiBhcyB2YWx1ZSBvZiBgY3NzYCBwcm9wKS5cIjsgfVxudmFyIGJsdXJTZWxlY3RJbnB1dCA9IGZ1bmN0aW9uIGJsdXJTZWxlY3RJbnB1dChldmVudCkge1xuICB2YXIgZWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGVsZW1lbnQub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbn07XG52YXIgX3JlZjIkMSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxa2ZkYjBlXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MFwiXG59IDoge1xuICBuYW1lOiBcImJwOGN1YS1TY3JvbGxNYW5hZ2VyXCIsXG4gIHN0eWxlczogXCJwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7cmlnaHQ6MDt0b3A6MDtsYWJlbDpTY3JvbGxNYW5hZ2VyO1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxOamNtOXNiRTFoYm1GblpYSXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVc5RVZTSXNJbVpwYkdVaU9pSlRZM0p2Ykd4TllXNWhaMlZ5TG5SemVDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2lCQWFuTjRJR3B6ZUNBcUwxeHVhVzF3YjNKMElIc2dhbk40SUgwZ1puSnZiU0FuUUdWdGIzUnBiMjR2Y21WaFkzUW5PMXh1YVcxd2IzSjBJSHNnUm5KaFoyMWxiblFzSUZKbFlXTjBSV3hsYldWdWRDd2dVbVZtUTJGc2JHSmhZMnNzSUUxdmRYTmxSWFpsYm5RZ2ZTQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZFhObFUyTnliMnhzUTJGd2RIVnlaU0JtY205dElDY3VMM1Z6WlZOamNtOXNiRU5oY0hSMWNtVW5PMXh1YVcxd2IzSjBJSFZ6WlZOamNtOXNiRXh2WTJzZ1puSnZiU0FuTGk5MWMyVlRZM0p2Ykd4TWIyTnJKenRjYmx4dWFXNTBaWEptWVdObElGQnliM0J6SUh0Y2JpQWdjbVZoWkc5dWJIa2dZMmhwYkdSeVpXNDZJQ2h5WldZNklGSmxaa05oYkd4aVlXTnJQRWhVVFV4RmJHVnRaVzUwUGlrZ1BUNGdVbVZoWTNSRmJHVnRaVzUwTzF4dUlDQnlaV0ZrYjI1c2VTQnNiMk5yUlc1aFlteGxaRG9nWW05dmJHVmhianRjYmlBZ2NtVmhaRzl1YkhrZ1kyRndkSFZ5WlVWdVlXSnNaV1E2SUdKdmIyeGxZVzQ3WEc0Z0lISmxZV1J2Ym14NUlHOXVRbTkwZEc5dFFYSnlhWFpsUHpvZ0tHVjJaVzUwT2lCWGFHVmxiRVYyWlc1MElId2dWRzkxWTJoRmRtVnVkQ2tnUFQ0Z2RtOXBaRHRjYmlBZ2NtVmhaRzl1YkhrZ2IyNUNiM1IwYjIxTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzRnSUhKbFlXUnZibXg1SUc5dVZHOXdRWEp5YVhabFB6b2dLR1YyWlc1ME9pQlhhR1ZsYkVWMlpXNTBJSHdnVkc5MVkyaEZkbVZ1ZENrZ1BUNGdkbTlwWkR0Y2JpQWdjbVZoWkc5dWJIa2diMjVVYjNCTVpXRjJaVDg2SUNobGRtVnVkRG9nVjJobFpXeEZkbVZ1ZENCOElGUnZkV05vUlhabGJuUXBJRDArSUhadmFXUTdYRzU5WEc1Y2JtTnZibk4wSUdKc2RYSlRaV3hsWTNSSmJuQjFkQ0E5SUNobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZER4SVZFMU1SR2wyUld4bGJXVnVkRDRwSUQwK0lIdGNiaUFnWTI5dWMzUWdaV3hsYldWdWRDQTlJR1YyWlc1MExuUmhjbWRsZENCaGN5QklWRTFNUkdsMlJXeGxiV1Z1ZER0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCbGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENBbUpseHVJQ0FnSUNobGJHVnRaVzUwTG05M2JtVnlSRzlqZFcxbGJuUXVZV04wYVhabFJXeGxiV1Z1ZENCaGN5QklWRTFNUld4bGJXVnVkQ2t1WW14MWNpZ3BYRzRnSUNrN1hHNTlPMXh1WEc1bGVIQnZjblFnWkdWbVlYVnNkQ0JtZFc1amRHbHZiaUJUWTNKdmJHeE5ZVzVoWjJWeUtIdGNiaUFnWTJocGJHUnlaVzRzWEc0Z0lHeHZZMnRGYm1GaWJHVmtMRnh1SUNCallYQjBkWEpsUlc1aFlteGxaQ0E5SUhSeWRXVXNYRzRnSUc5dVFtOTBkRzl0UVhKeWFYWmxMRnh1SUNCdmJrSnZkSFJ2YlV4bFlYWmxMRnh1SUNCdmJsUnZjRUZ5Y21sMlpTeGNiaUFnYjI1VWIzQk1aV0YyWlN4Y2JuMDZJRkJ5YjNCektTQjdYRzRnSUdOdmJuTjBJSE5sZEZOamNtOXNiRU5oY0hSMWNtVlVZWEpuWlhRZ1BTQjFjMlZUWTNKdmJHeERZWEIwZFhKbEtIdGNiaUFnSUNCcGMwVnVZV0pzWldRNklHTmhjSFIxY21WRmJtRmliR1ZrTEZ4dUlDQWdJRzl1UW05MGRHOXRRWEp5YVhabExGeHVJQ0FnSUc5dVFtOTBkRzl0VEdWaGRtVXNYRzRnSUNBZ2IyNVViM0JCY25KcGRtVXNYRzRnSUNBZ2IyNVViM0JNWldGMlpTeGNiaUFnZlNrN1hHNGdJR052Ym5OMElITmxkRk5qY205c2JFeHZZMnRVWVhKblpYUWdQU0IxYzJWVFkzSnZiR3hNYjJOcktIc2dhWE5GYm1GaWJHVmtPaUJzYjJOclJXNWhZbXhsWkNCOUtUdGNibHh1SUNCamIyNXpkQ0IwWVhKblpYUlNaV1k2SUZKbFprTmhiR3hpWVdOclBFaFVUVXhGYkdWdFpXNTBQaUE5SUNobGJHVnRaVzUwS1NBOVBpQjdYRzRnSUNBZ2MyVjBVMk55YjJ4c1EyRndkSFZ5WlZSaGNtZGxkQ2hsYkdWdFpXNTBLVHRjYmlBZ0lDQnpaWFJUWTNKdmJHeE1iMk5yVkdGeVoyVjBLR1ZzWlcxbGJuUXBPMXh1SUNCOU8xeHVYRzRnSUhKbGRIVnliaUFvWEc0Z0lDQWdQRVp5WVdkdFpXNTBQbHh1SUNBZ0lDQWdlMnh2WTJ0RmJtRmliR1ZrSUNZbUlDaGNiaUFnSUNBZ0lDQWdQR1JwZGx4dUlDQWdJQ0FnSUNBZ0lHOXVRMnhwWTJzOWUySnNkWEpUWld4bFkzUkpibkIxZEgxY2JpQWdJQ0FnSUNBZ0lDQmpjM005ZTNzZ2NHOXphWFJwYjI0NklDZG1hWGhsWkNjc0lHeGxablE2SURBc0lHSnZkSFJ2YlRvZ01Dd2djbWxuYUhRNklEQXNJSFJ2Y0RvZ01DQjlmVnh1SUNBZ0lDQWdJQ0F2UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0FnSUh0amFHbHNaSEpsYmloMFlYSm5aWFJTWldZcGZWeHVJQ0FnSUR3dlJuSmhaMjFsYm5RK1hHNGdJQ2s3WEc1OVhHNGlYWDA9ICovXCIsXG4gIHRvU3RyaW5nOiBfRU1PVElPTl9TVFJJTkdJRklFRF9DU1NfRVJST1JfXyQxXG59O1xuZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgbG9ja0VuYWJsZWQgPSBfcmVmLmxvY2tFbmFibGVkLFxuICAgIF9yZWYkY2FwdHVyZUVuYWJsZWQgPSBfcmVmLmNhcHR1cmVFbmFibGVkLFxuICAgIGNhcHR1cmVFbmFibGVkID0gX3JlZiRjYXB0dXJlRW5hYmxlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkY2FwdHVyZUVuYWJsZWQsXG4gICAgb25Cb3R0b21BcnJpdmUgPSBfcmVmLm9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUgPSBfcmVmLm9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUgPSBfcmVmLm9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUgPSBfcmVmLm9uVG9wTGVhdmU7XG4gIHZhciBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZTogb25Cb3R0b21BcnJpdmUsXG4gICAgb25Cb3R0b21MZWF2ZTogb25Cb3R0b21MZWF2ZSxcbiAgICBvblRvcEFycml2ZTogb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZTogb25Ub3BMZWF2ZVxuICB9KTtcbiAgdmFyIHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHtcbiAgICBpc0VuYWJsZWQ6IGxvY2tFbmFibGVkXG4gIH0pO1xuICB2YXIgdGFyZ2V0UmVmID0gZnVuY3Rpb24gdGFyZ2V0UmVmKGVsZW1lbnQpIHtcbiAgICBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0KGVsZW1lbnQpO1xuICAgIHNldFNjcm9sbExvY2tUYXJnZXQoZWxlbWVudCk7XG4gIH07XG4gIHJldHVybiBqc3goRnJhZ21lbnQsIG51bGwsIGxvY2tFbmFibGVkICYmIGpzeChcImRpdlwiLCB7XG4gICAgb25DbGljazogYmx1clNlbGVjdElucHV0LFxuICAgIGNzczogX3JlZjIkMVxuICB9KSwgY2hpbGRyZW4odGFyZ2V0UmVmKSk7XG59XG5cbmZ1bmN0aW9uIF9FTU9USU9OX1NUUklOR0lGSUVEX0NTU19FUlJPUl9fKCkgeyByZXR1cm4gXCJZb3UgaGF2ZSB0cmllZCB0byBzdHJpbmdpZnkgb2JqZWN0IHJldHVybmVkIGZyb20gYGNzc2AgZnVuY3Rpb24uIEl0IGlzbid0IHN1cHBvc2VkIHRvIGJlIHVzZWQgZGlyZWN0bHkgKGUuZy4gYXMgdmFsdWUgb2YgdGhlIGBjbGFzc05hbWVgIHByb3ApLCBidXQgcmF0aGVyIGhhbmRlZCB0byBlbW90aW9uIHNvIGl0IGNhbiBoYW5kbGUgaXQgKGUuZy4gYXMgdmFsdWUgb2YgYGNzc2AgcHJvcCkuXCI7IH1cbnZhciBfcmVmMiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgbmFtZTogXCIxYTBybzRuLXJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJVwiXG59IDoge1xuICBuYW1lOiBcIjVra3hiMi1yZXF1aXJlZElucHV0LVJlcXVpcmVkSW5wdXRcIixcbiAgc3R5bGVzOiBcImxhYmVsOnJlcXVpcmVkSW5wdXQ7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7d2lkdGg6MTAwJTtsYWJlbDpSZXF1aXJlZElucHV0O1wiLFxuICBtYXA6IFwiLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWxKbGNYVnBjbVZrU1c1d2RYUXVkSE40SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdOSklpd2labWxzWlNJNklsSmxjWFZwY21Wa1NXNXdkWFF1ZEhONElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xSUVCcWMzZ2dhbk40SUNvdlhHNXBiWEJ2Y25RZ2V5QkdiMk4xYzBWMlpXNTBTR0Z1Wkd4bGNpd2dSblZ1WTNScGIyNURiMjF3YjI1bGJuUWdmU0JtY205dElDZHlaV0ZqZENjN1hHNXBiWEJ2Y25RZ2V5QnFjM2dnZlNCbWNtOXRJQ2RBWlcxdmRHbHZiaTl5WldGamRDYzdYRzVjYm1OdmJuTjBJRkpsY1hWcGNtVmtTVzV3ZFhRNklFWjFibU4wYVc5dVEyOXRjRzl1Wlc1MFBIdGNiaUFnY21WaFpHOXViSGtnYm1GdFpUODZJSE4wY21sdVp6dGNiaUFnY21WaFpHOXViSGtnYjI1R2IyTjFjem9nUm05amRYTkZkbVZ1ZEVoaGJtUnNaWEk4U0ZSTlRFbHVjSFYwUld4bGJXVnVkRDQ3WEc1OVBpQTlJQ2g3SUc1aGJXVXNJRzl1Um05amRYTWdmU2tnUFQ0Z0tGeHVJQ0E4YVc1d2RYUmNiaUFnSUNCeVpYRjFhWEpsWkZ4dUlDQWdJRzVoYldVOWUyNWhiV1Y5WEc0Z0lDQWdkR0ZpU1c1a1pYZzlleTB4ZlZ4dUlDQWdJR0Z5YVdFdGFHbGtaR1Z1UFZ3aWRISjFaVndpWEc0Z0lDQWdiMjVHYjJOMWN6MTdiMjVHYjJOMWMzMWNiaUFnSUNCamMzTTllM3RjYmlBZ0lDQWdJR3hoWW1Wc09pQW5jbVZ4ZFdseVpXUkpibkIxZENjc1hHNGdJQ0FnSUNCdmNHRmphWFI1T2lBd0xGeHVJQ0FnSUNBZ2NHOXBiblJsY2tWMlpXNTBjem9nSjI1dmJtVW5MRnh1SUNBZ0lDQWdjRzl6YVhScGIyNDZJQ2RoWW5OdmJIVjBaU2NzWEc0Z0lDQWdJQ0JpYjNSMGIyMDZJREFzWEc0Z0lDQWdJQ0JzWldaME9pQXdMRnh1SUNBZ0lDQWdjbWxuYUhRNklEQXNYRzRnSUNBZ0lDQjNhV1IwYURvZ0p6RXdNQ1VuTEZ4dUlDQWdJSDE5WEc0Z0lDQWdMeThnVUhKbGRtVnVkQ0JnVTNkcGRHTm9hVzVuSUdaeWIyMGdkVzVqYjI1MGNtOXNiR1ZrSUhSdklHTnZiblJ5YjJ4c1pXUmdJR1Z5Y205eVhHNGdJQ0FnZG1Gc2RXVTlYQ0pjSWx4dUlDQWdJRzl1UTJoaGJtZGxQWHNvS1NBOVBpQjdmWDFjYmlBZ0x6NWNiaWs3WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUZKbGNYVnBjbVZrU1c1d2RYUTdYRzRpWFgwPSAqL1wiLFxuICB0b1N0cmluZzogX0VNT1RJT05fU1RSSU5HSUZJRURfQ1NTX0VSUk9SX19cbn07XG52YXIgUmVxdWlyZWRJbnB1dCA9IGZ1bmN0aW9uIFJlcXVpcmVkSW5wdXQoX3JlZikge1xuICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICBvbkZvY3VzID0gX3JlZi5vbkZvY3VzO1xuICByZXR1cm4ganN4KFwiaW5wdXRcIiwge1xuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgb25Gb2N1czogb25Gb2N1cyxcbiAgICBjc3M6IF9yZWYyXG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgLFxuICAgIHZhbHVlOiBcIlwiLFxuICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9XG4gIH0pO1xufTtcbnZhciBSZXF1aXJlZElucHV0JDEgPSBSZXF1aXJlZElucHV0O1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInVzZXItYWdlbnQtZGF0YS10eXBlc1wiIC8+XG5cbmZ1bmN0aW9uIHRlc3RQbGF0Zm9ybShyZSkge1xuICB2YXIgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlO1xuICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvciAhPSBudWxsID8gcmUudGVzdCgoKF93aW5kb3ckbmF2aWdhdG9yJHVzZSA9IHdpbmRvdy5uYXZpZ2F0b3JbJ3VzZXJBZ2VudERhdGEnXSkgPT09IG51bGwgfHwgX3dpbmRvdyRuYXZpZ2F0b3IkdXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfd2luZG93JG5hdmlnYXRvciR1c2UucGxhdGZvcm0pIHx8IHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pIDogZmFsc2U7XG59XG5mdW5jdGlvbiBpc0lQaG9uZSgpIHtcbiAgcmV0dXJuIHRlc3RQbGF0Zm9ybSgvXmlQaG9uZS9pKTtcbn1cbmZ1bmN0aW9uIGlzTWFjKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eTWFjL2kpO1xufVxuZnVuY3Rpb24gaXNJUGFkKCkge1xuICByZXR1cm4gdGVzdFBsYXRmb3JtKC9eaVBhZC9pKSB8fFxuICAvLyBpUGFkT1MgMTMgbGllcyBhbmQgc2F5cyBpdCdzIGEgTWFjLCBidXQgd2UgY2FuIGRpc3Rpbmd1aXNoIGJ5IGRldGVjdGluZyB0b3VjaCBzdXBwb3J0LlxuICBpc01hYygpICYmIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDE7XG59XG5mdW5jdGlvbiBpc0lPUygpIHtcbiAgcmV0dXJuIGlzSVBob25lKCkgfHwgaXNJUGFkKCk7XG59XG5mdW5jdGlvbiBpc0FwcGxlRGV2aWNlKCkge1xuICByZXR1cm4gaXNNYWMoKSB8fCBpc0lPUygpO1xufVxuXG52YXIgZm9ybWF0R3JvdXBMYWJlbCA9IGZ1bmN0aW9uIGZvcm1hdEdyb3VwTGFiZWwoZ3JvdXApIHtcbiAgcmV0dXJuIGdyb3VwLmxhYmVsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCQxID0gZnVuY3Rpb24gZ2V0T3B0aW9uTGFiZWwob3B0aW9uKSB7XG4gIHJldHVybiBvcHRpb24ubGFiZWw7XG59O1xudmFyIGdldE9wdGlvblZhbHVlJDEgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShvcHRpb24pIHtcbiAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbn07XG52YXIgaXNPcHRpb25EaXNhYmxlZCA9IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKSB7XG4gIHJldHVybiAhIW9wdGlvbi5pc0Rpc2FibGVkO1xufTtcblxudmFyIGRlZmF1bHRTdHlsZXMgPSB7XG4gIGNsZWFySW5kaWNhdG9yOiBjbGVhckluZGljYXRvckNTUyxcbiAgY29udGFpbmVyOiBjb250YWluZXJDU1MsXG4gIGNvbnRyb2w6IGNzcyQxLFxuICBkcm9wZG93bkluZGljYXRvcjogZHJvcGRvd25JbmRpY2F0b3JDU1MsXG4gIGdyb3VwOiBncm91cENTUyxcbiAgZ3JvdXBIZWFkaW5nOiBncm91cEhlYWRpbmdDU1MsXG4gIGluZGljYXRvcnNDb250YWluZXI6IGluZGljYXRvcnNDb250YWluZXJDU1MsXG4gIGluZGljYXRvclNlcGFyYXRvcjogaW5kaWNhdG9yU2VwYXJhdG9yQ1NTLFxuICBpbnB1dDogaW5wdXRDU1MsXG4gIGxvYWRpbmdJbmRpY2F0b3I6IGxvYWRpbmdJbmRpY2F0b3JDU1MsXG4gIGxvYWRpbmdNZXNzYWdlOiBsb2FkaW5nTWVzc2FnZUNTUyxcbiAgbWVudTogbWVudUNTUyxcbiAgbWVudUxpc3Q6IG1lbnVMaXN0Q1NTLFxuICBtZW51UG9ydGFsOiBtZW51UG9ydGFsQ1NTLFxuICBtdWx0aVZhbHVlOiBtdWx0aVZhbHVlQ1NTLFxuICBtdWx0aVZhbHVlTGFiZWw6IG11bHRpVmFsdWVMYWJlbENTUyxcbiAgbXVsdGlWYWx1ZVJlbW92ZTogbXVsdGlWYWx1ZVJlbW92ZUNTUyxcbiAgbm9PcHRpb25zTWVzc2FnZTogbm9PcHRpb25zTWVzc2FnZUNTUyxcbiAgb3B0aW9uOiBvcHRpb25DU1MsXG4gIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlckNTUyxcbiAgc2luZ2xlVmFsdWU6IGNzcyQyLFxuICB2YWx1ZUNvbnRhaW5lcjogdmFsdWVDb250YWluZXJDU1Ncbn07XG4vLyBNZXJnZSBVdGlsaXR5XG4vLyBBbGxvd3MgY29uc3VtZXJzIHRvIGV4dGVuZCBhIGJhc2UgU2VsZWN0IHdpdGggYWRkaXRpb25hbCBzdHlsZXNcblxuZnVuY3Rpb24gbWVyZ2VTdHlsZXMoc291cmNlKSB7XG4gIHZhciB0YXJnZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAvLyBpbml0aWFsaXplIHdpdGggc291cmNlIHN0eWxlc1xuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZCh7fSwgc291cmNlKTtcblxuICAvLyBtYXNzYWdlIGluIHRhcmdldCBzdHlsZXNcbiAgT2JqZWN0LmtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlBc1N0cmluZykge1xuICAgIHZhciBrZXkgPSBrZXlBc1N0cmluZztcbiAgICBpZiAoc291cmNlW2tleV0pIHtcbiAgICAgIHN0eWxlc1trZXldID0gZnVuY3Rpb24gKHJzQ3NzLCBwcm9wcykge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0oc291cmNlW2tleV0ocnNDc3MsIHByb3BzKSwgcHJvcHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzW2tleV0gPSB0YXJnZXRba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3R5bGVzO1xufVxuXG52YXIgY29sb3JzID0ge1xuICBwcmltYXJ5OiAnIzI2ODRGRicsXG4gIHByaW1hcnk3NTogJyM0QzlBRkYnLFxuICBwcmltYXJ5NTA6ICcjQjJENEZGJyxcbiAgcHJpbWFyeTI1OiAnI0RFRUJGRicsXG4gIGRhbmdlcjogJyNERTM1MEInLFxuICBkYW5nZXJMaWdodDogJyNGRkJEQUQnLFxuICBuZXV0cmFsMDogJ2hzbCgwLCAwJSwgMTAwJSknLFxuICBuZXV0cmFsNTogJ2hzbCgwLCAwJSwgOTUlKScsXG4gIG5ldXRyYWwxMDogJ2hzbCgwLCAwJSwgOTAlKScsXG4gIG5ldXRyYWwyMDogJ2hzbCgwLCAwJSwgODAlKScsXG4gIG5ldXRyYWwzMDogJ2hzbCgwLCAwJSwgNzAlKScsXG4gIG5ldXRyYWw0MDogJ2hzbCgwLCAwJSwgNjAlKScsXG4gIG5ldXRyYWw1MDogJ2hzbCgwLCAwJSwgNTAlKScsXG4gIG5ldXRyYWw2MDogJ2hzbCgwLCAwJSwgNDAlKScsXG4gIG5ldXRyYWw3MDogJ2hzbCgwLCAwJSwgMzAlKScsXG4gIG5ldXRyYWw4MDogJ2hzbCgwLCAwJSwgMjAlKScsXG4gIG5ldXRyYWw5MDogJ2hzbCgwLCAwJSwgMTAlKSdcbn07XG52YXIgYm9yZGVyUmFkaXVzID0gNDtcbi8vIFVzZWQgdG8gY2FsY3VsYXRlIGNvbnNpc3RlbnQgbWFyZ2luL3BhZGRpbmcgb24gZWxlbWVudHNcbnZhciBiYXNlVW5pdCA9IDQ7XG4vLyBUaGUgbWluaW11bSBoZWlnaHQgb2YgdGhlIGNvbnRyb2xcbnZhciBjb250cm9sSGVpZ2h0ID0gMzg7XG4vLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRyb2wgYW5kIG1lbnUgKi9cbnZhciBtZW51R3V0dGVyID0gYmFzZVVuaXQgKiAyO1xudmFyIHNwYWNpbmcgPSB7XG4gIGJhc2VVbml0OiBiYXNlVW5pdCxcbiAgY29udHJvbEhlaWdodDogY29udHJvbEhlaWdodCxcbiAgbWVudUd1dHRlcjogbWVudUd1dHRlclxufTtcbnZhciBkZWZhdWx0VGhlbWUgPSB7XG4gIGJvcmRlclJhZGl1czogYm9yZGVyUmFkaXVzLFxuICBjb2xvcnM6IGNvbG9ycyxcbiAgc3BhY2luZzogc3BhY2luZ1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgJ2FyaWEtbGl2ZSc6ICdwb2xpdGUnLFxuICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU6IHRydWUsXG4gIGJsdXJJbnB1dE9uU2VsZWN0OiBpc1RvdWNoQ2FwYWJsZSgpLFxuICBjYXB0dXJlTWVudVNjcm9sbDogIWlzVG91Y2hDYXBhYmxlKCksXG4gIGNsYXNzTmFtZXM6IHt9LFxuICBjbG9zZU1lbnVPblNlbGVjdDogdHJ1ZSxcbiAgY2xvc2VNZW51T25TY3JvbGw6IGZhbHNlLFxuICBjb21wb25lbnRzOiB7fSxcbiAgY29udHJvbFNob3VsZFJlbmRlclZhbHVlOiB0cnVlLFxuICBlc2NhcGVDbGVhcnNWYWx1ZTogZmFsc2UsXG4gIGZpbHRlck9wdGlvbjogY3JlYXRlRmlsdGVyKCksXG4gIGZvcm1hdEdyb3VwTGFiZWw6IGZvcm1hdEdyb3VwTGFiZWwsXG4gIGdldE9wdGlvbkxhYmVsOiBnZXRPcHRpb25MYWJlbCQxLFxuICBnZXRPcHRpb25WYWx1ZTogZ2V0T3B0aW9uVmFsdWUkMSxcbiAgaXNEaXNhYmxlZDogZmFsc2UsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIGlzTXVsdGk6IGZhbHNlLFxuICBpc1J0bDogZmFsc2UsXG4gIGlzU2VhcmNoYWJsZTogdHJ1ZSxcbiAgaXNPcHRpb25EaXNhYmxlZDogaXNPcHRpb25EaXNhYmxlZCxcbiAgbG9hZGluZ01lc3NhZ2U6IGZ1bmN0aW9uIGxvYWRpbmdNZXNzYWdlKCkge1xuICAgIHJldHVybiAnTG9hZGluZy4uLic7XG4gIH0sXG4gIG1heE1lbnVIZWlnaHQ6IDMwMCxcbiAgbWluTWVudUhlaWdodDogMTQwLFxuICBtZW51SXNPcGVuOiBmYWxzZSxcbiAgbWVudVBsYWNlbWVudDogJ2JvdHRvbScsXG4gIG1lbnVQb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgbWVudVNob3VsZEJsb2NrU2Nyb2xsOiBmYWxzZSxcbiAgbWVudVNob3VsZFNjcm9sbEludG9WaWV3OiAhaXNNb2JpbGVEZXZpY2UoKSxcbiAgbm9PcHRpb25zTWVzc2FnZTogZnVuY3Rpb24gbm9PcHRpb25zTWVzc2FnZSgpIHtcbiAgICByZXR1cm4gJ05vIG9wdGlvbnMnO1xuICB9LFxuICBvcGVuTWVudU9uRm9jdXM6IGZhbHNlLFxuICBvcGVuTWVudU9uQ2xpY2s6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBwYWdlU2l6ZTogNSxcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QuLi4nLFxuICBzY3JlZW5SZWFkZXJTdGF0dXM6IGZ1bmN0aW9uIHNjcmVlblJlYWRlclN0YXR1cyhfcmVmKSB7XG4gICAgdmFyIGNvdW50ID0gX3JlZi5jb3VudDtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoY291bnQsIFwiIHJlc3VsdFwiKS5jb25jYXQoY291bnQgIT09IDEgPyAncycgOiAnJywgXCIgYXZhaWxhYmxlXCIpO1xuICB9LFxuICBzdHlsZXM6IHt9LFxuICB0YWJJbmRleDogMCxcbiAgdGFiU2VsZWN0c1ZhbHVlOiB0cnVlLFxuICB1bnN0eWxlZDogZmFsc2Vcbn07XG5mdW5jdGlvbiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBpbmRleCkge1xuICB2YXIgaXNEaXNhYmxlZCA9IF9pc09wdGlvbkRpc2FibGVkKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlKTtcbiAgdmFyIGlzU2VsZWN0ZWQgPSBfaXNPcHRpb25TZWxlY3RlZChwcm9wcywgb3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIHZhciBsYWJlbCA9IGdldE9wdGlvbkxhYmVsKHByb3BzLCBvcHRpb24pO1xuICB2YXIgdmFsdWUgPSBnZXRPcHRpb25WYWx1ZShwcm9wcywgb3B0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnb3B0aW9uJyxcbiAgICBkYXRhOiBvcHRpb24sXG4gICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgIGxhYmVsOiBsYWJlbCxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgaW5kZXg6IGluZGV4XG4gIH07XG59XG5mdW5jdGlvbiBidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChncm91cE9yT3B0aW9uLCBncm91cE9yT3B0aW9uSW5kZXgpIHtcbiAgICBpZiAoJ29wdGlvbnMnIGluIGdyb3VwT3JPcHRpb24pIHtcbiAgICAgIHZhciBjYXRlZ29yaXplZE9wdGlvbnMgPSBncm91cE9yT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24sIG9wdGlvbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0b0NhdGVnb3JpemVkT3B0aW9uKHByb3BzLCBvcHRpb24sIHNlbGVjdFZhbHVlLCBvcHRpb25JbmRleCk7XG4gICAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBpc0ZvY3VzYWJsZShwcm9wcywgY2F0ZWdvcml6ZWRPcHRpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2F0ZWdvcml6ZWRPcHRpb25zLmxlbmd0aCA+IDAgPyB7XG4gICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgIGRhdGE6IGdyb3VwT3JPcHRpb24sXG4gICAgICAgIG9wdGlvbnM6IGNhdGVnb3JpemVkT3B0aW9ucyxcbiAgICAgICAgaW5kZXg6IGdyb3VwT3JPcHRpb25JbmRleFxuICAgICAgfSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdmFyIGNhdGVnb3JpemVkT3B0aW9uID0gdG9DYXRlZ29yaXplZE9wdGlvbihwcm9wcywgZ3JvdXBPck9wdGlvbiwgc2VsZWN0VmFsdWUsIGdyb3VwT3JPcHRpb25JbmRleCk7XG4gICAgcmV0dXJuIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikgPyBjYXRlZ29yaXplZE9wdGlvbiA6IHVuZGVmaW5lZDtcbiAgfSkuZmlsdGVyKG5vdE51bGxpc2gpO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhjYXRlZ29yaXplZE9wdGlvbnMpIHtcbiAgcmV0dXJuIGNhdGVnb3JpemVkT3B0aW9ucy5yZWR1Y2UoZnVuY3Rpb24gKG9wdGlvbnNBY2N1bXVsYXRvciwgY2F0ZWdvcml6ZWRPcHRpb24pIHtcbiAgICBpZiAoY2F0ZWdvcml6ZWRPcHRpb24udHlwZSA9PT0gJ2dyb3VwJykge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2guYXBwbHkob3B0aW9uc0FjY3VtdWxhdG9yLCBfdG9Db25zdW1hYmxlQXJyYXkoY2F0ZWdvcml6ZWRPcHRpb24ub3B0aW9ucy5tYXAoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gb3B0aW9uLmRhdGE7XG4gICAgICB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zQWNjdW11bGF0b3IucHVzaChjYXRlZ29yaXplZE9wdGlvbi5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zV2l0aElkcyhjYXRlZ29yaXplZE9wdGlvbnMsIG9wdGlvbklkKSB7XG4gIHJldHVybiBjYXRlZ29yaXplZE9wdGlvbnMucmVkdWNlKGZ1bmN0aW9uIChvcHRpb25zQWNjdW11bGF0b3IsIGNhdGVnb3JpemVkT3B0aW9uKSB7XG4gICAgaWYgKGNhdGVnb3JpemVkT3B0aW9uLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgIG9wdGlvbnNBY2N1bXVsYXRvci5wdXNoLmFwcGx5KG9wdGlvbnNBY2N1bXVsYXRvciwgX3RvQ29uc3VtYWJsZUFycmF5KGNhdGVnb3JpemVkT3B0aW9uLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YSxcbiAgICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KVxuICAgICAgICB9O1xuICAgICAgfSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9uc0FjY3VtdWxhdG9yLnB1c2goe1xuICAgICAgICBkYXRhOiBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgICAgICBpZDogXCJcIi5jb25jYXQob3B0aW9uSWQsIFwiLVwiKS5jb25jYXQoY2F0ZWdvcml6ZWRPcHRpb24uaW5kZXgpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNBY2N1bXVsYXRvcjtcbiAgfSwgW10pO1xufVxuZnVuY3Rpb24gYnVpbGRGb2N1c2FibGVPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSkge1xuICByZXR1cm4gYnVpbGRGb2N1c2FibGVPcHRpb25zRnJvbUNhdGVnb3JpemVkT3B0aW9ucyhidWlsZENhdGVnb3JpemVkT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGlzRm9jdXNhYmxlKHByb3BzLCBjYXRlZ29yaXplZE9wdGlvbikge1xuICB2YXIgX3Byb3BzJGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgIGlucHV0VmFsdWUgPSBfcHJvcHMkaW5wdXRWYWx1ZSA9PT0gdm9pZCAwID8gJycgOiBfcHJvcHMkaW5wdXRWYWx1ZTtcbiAgdmFyIGRhdGEgPSBjYXRlZ29yaXplZE9wdGlvbi5kYXRhLFxuICAgIGlzU2VsZWN0ZWQgPSBjYXRlZ29yaXplZE9wdGlvbi5pc1NlbGVjdGVkLFxuICAgIGxhYmVsID0gY2F0ZWdvcml6ZWRPcHRpb24ubGFiZWwsXG4gICAgdmFsdWUgPSBjYXRlZ29yaXplZE9wdGlvbi52YWx1ZTtcbiAgcmV0dXJuICghc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykgfHwgIWlzU2VsZWN0ZWQpICYmIF9maWx0ZXJPcHRpb24ocHJvcHMsIHtcbiAgICBsYWJlbDogbGFiZWwsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGRhdGE6IGRhdGFcbiAgfSwgaW5wdXRWYWx1ZSk7XG59XG5mdW5jdGlvbiBnZXROZXh0Rm9jdXNlZFZhbHVlKHN0YXRlLCBuZXh0U2VsZWN0VmFsdWUpIHtcbiAgdmFyIGZvY3VzZWRWYWx1ZSA9IHN0YXRlLmZvY3VzZWRWYWx1ZSxcbiAgICBsYXN0U2VsZWN0VmFsdWUgPSBzdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgdmFyIGxhc3RGb2N1c2VkSW5kZXggPSBsYXN0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICBpZiAobGFzdEZvY3VzZWRJbmRleCA+IC0xKSB7XG4gICAgdmFyIG5leHRGb2N1c2VkSW5kZXggPSBuZXh0U2VsZWN0VmFsdWUuaW5kZXhPZihmb2N1c2VkVmFsdWUpO1xuICAgIGlmIChuZXh0Rm9jdXNlZEluZGV4ID4gLTEpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkIHZhbHVlIGlzIHN0aWxsIGluIHRoZSBzZWxlY3RWYWx1ZSwgcmV0dXJuIGl0XG4gICAgICByZXR1cm4gZm9jdXNlZFZhbHVlO1xuICAgIH0gZWxzZSBpZiAobGFzdEZvY3VzZWRJbmRleCA8IG5leHRTZWxlY3RWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIC8vIHRoZSBmb2N1c2VkVmFsdWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIG5leHQgc2VsZWN0VmFsdWUgYXJyYXkgYnlcbiAgICAgIC8vIHJlZmVyZW5jZSwgc28gcmV0dXJuIHRoZSBuZXcgdmFsdWUgYXQgdGhlIHNhbWUgaW5kZXhcbiAgICAgIHJldHVybiBuZXh0U2VsZWN0VmFsdWVbbGFzdEZvY3VzZWRJbmRleF07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIG9wdGlvbnMpIHtcbiAgdmFyIGxhc3RGb2N1c2VkT3B0aW9uID0gc3RhdGUuZm9jdXNlZE9wdGlvbjtcbiAgcmV0dXJuIGxhc3RGb2N1c2VkT3B0aW9uICYmIG9wdGlvbnMuaW5kZXhPZihsYXN0Rm9jdXNlZE9wdGlvbikgPiAtMSA/IGxhc3RGb2N1c2VkT3B0aW9uIDogb3B0aW9uc1swXTtcbn1cbnZhciBnZXRGb2N1c2VkT3B0aW9uSWQgPSBmdW5jdGlvbiBnZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsIGZvY3VzZWRPcHRpb24pIHtcbiAgdmFyIF9mb2N1c2FibGVPcHRpb25zV2l0aDtcbiAgdmFyIGZvY3VzZWRPcHRpb25JZCA9IChfZm9jdXNhYmxlT3B0aW9uc1dpdGggPSBmb2N1c2FibGVPcHRpb25zV2l0aElkcy5maW5kKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICByZXR1cm4gb3B0aW9uLmRhdGEgPT09IGZvY3VzZWRPcHRpb247XG4gIH0pKSA9PT0gbnVsbCB8fCBfZm9jdXNhYmxlT3B0aW9uc1dpdGggPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mb2N1c2FibGVPcHRpb25zV2l0aC5pZDtcbiAgcmV0dXJuIGZvY3VzZWRPcHRpb25JZCB8fCBudWxsO1xufTtcbnZhciBnZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIGdldE9wdGlvbkxhYmVsKHByb3BzLCBkYXRhKSB7XG4gIHJldHVybiBwcm9wcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbn07XG52YXIgZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiBnZXRPcHRpb25WYWx1ZShwcm9wcywgZGF0YSkge1xuICByZXR1cm4gcHJvcHMuZ2V0T3B0aW9uVmFsdWUoZGF0YSk7XG59O1xuZnVuY3Rpb24gX2lzT3B0aW9uRGlzYWJsZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9wcy5pc09wdGlvbkRpc2FibGVkID09PSAnZnVuY3Rpb24nID8gcHJvcHMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24sIHNlbGVjdFZhbHVlKSA6IGZhbHNlO1xufVxuZnVuY3Rpb24gX2lzT3B0aW9uU2VsZWN0ZWQocHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpIHtcbiAgaWYgKHNlbGVjdFZhbHVlLmluZGV4T2Yob3B0aW9uKSA+IC0xKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiBwcm9wcy5pc09wdGlvblNlbGVjdGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHByb3BzLmlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSk7XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZSA9IGdldE9wdGlvblZhbHVlKHByb3BzLCBvcHRpb24pO1xuICByZXR1cm4gc2VsZWN0VmFsdWUuc29tZShmdW5jdGlvbiAoaSkge1xuICAgIHJldHVybiBnZXRPcHRpb25WYWx1ZShwcm9wcywgaSkgPT09IGNhbmRpZGF0ZTtcbiAgfSk7XG59XG5mdW5jdGlvbiBfZmlsdGVyT3B0aW9uKHByb3BzLCBvcHRpb24sIGlucHV0VmFsdWUpIHtcbiAgcmV0dXJuIHByb3BzLmZpbHRlck9wdGlvbiA/IHByb3BzLmZpbHRlck9wdGlvbihvcHRpb24sIGlucHV0VmFsdWUpIDogdHJ1ZTtcbn1cbnZhciBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zID0gZnVuY3Rpb24gc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyhwcm9wcykge1xuICB2YXIgaGlkZVNlbGVjdGVkT3B0aW9ucyA9IHByb3BzLmhpZGVTZWxlY3RlZE9wdGlvbnMsXG4gICAgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGk7XG4gIGlmIChoaWRlU2VsZWN0ZWRPcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICByZXR1cm4gaGlkZVNlbGVjdGVkT3B0aW9ucztcbn07XG52YXIgaW5zdGFuY2VJZCA9IDE7XG52YXIgU2VsZWN0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTZWxlY3QsIF9Db21wb25lbnQpO1xuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFNlbGVjdCk7XG4gIC8vIE1pc2MuIEluc3RhbmNlIFByb3BlcnRpZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVE9ET1xuXG4gIC8vIFJlZnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGZ1bmN0aW9uIFNlbGVjdChfcHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlbGVjdCk7XG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfcHJvcHMpO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgYXJpYVNlbGVjdGlvbjogbnVsbCxcbiAgICAgIGZvY3VzZWRPcHRpb246IG51bGwsXG4gICAgICBmb2N1c2VkT3B0aW9uSWQ6IG51bGwsXG4gICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogW10sXG4gICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICBpbnB1dElzSGlkZGVuOiBmYWxzZSxcbiAgICAgIGlzRm9jdXNlZDogZmFsc2UsXG4gICAgICBzZWxlY3RWYWx1ZTogW10sXG4gICAgICBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZTogZmFsc2UsXG4gICAgICBwcmV2V2FzRm9jdXNlZDogZmFsc2UsXG4gICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZQcm9wczogdW5kZWZpbmVkLFxuICAgICAgaW5zdGFuY2VQcmVmaXg6ICcnXG4gICAgfTtcbiAgICBfdGhpcy5ibG9ja09wdGlvbkhvdmVyID0gZmFsc2U7XG4gICAgX3RoaXMuaXNDb21wb3NpbmcgPSBmYWxzZTtcbiAgICBfdGhpcy5jb21tb25Qcm9wcyA9IHZvaWQgMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICBfdGhpcy5pbml0aWFsVG91Y2hZID0gMDtcbiAgICBfdGhpcy5vcGVuQWZ0ZXJGb2N1cyA9IGZhbHNlO1xuICAgIF90aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSB2b2lkIDA7XG4gICAgX3RoaXMuaXNBcHBsZURldmljZSA9IGlzQXBwbGVEZXZpY2UoKTtcbiAgICBfdGhpcy5jb250cm9sUmVmID0gbnVsbDtcbiAgICBfdGhpcy5nZXRDb250cm9sUmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMuY29udHJvbFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzZWRPcHRpb25SZWYgPSBudWxsO1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25SZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5mb2N1c2VkT3B0aW9uUmVmID0gcmVmO1xuICAgIH07XG4gICAgX3RoaXMubWVudUxpc3RSZWYgPSBudWxsO1xuICAgIF90aGlzLmdldE1lbnVMaXN0UmVmID0gZnVuY3Rpb24gKHJlZikge1xuICAgICAgX3RoaXMubWVudUxpc3RSZWYgPSByZWY7XG4gICAgfTtcbiAgICBfdGhpcy5pbnB1dFJlZiA9IG51bGw7XG4gICAgX3RoaXMuZ2V0SW5wdXRSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgICBfdGhpcy5pbnB1dFJlZiA9IHJlZjtcbiAgICB9O1xuICAgIF90aGlzLmZvY3VzID0gX3RoaXMuZm9jdXNJbnB1dDtcbiAgICBfdGhpcy5ibHVyID0gX3RoaXMuYmx1cklucHV0O1xuICAgIF90aGlzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgb25DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbkNoYW5nZSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzLm5hbWU7XG4gICAgICBhY3Rpb25NZXRhLm5hbWUgPSBuYW1lO1xuICAgICAgX3RoaXMuYXJpYU9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKTtcbiAgICB9O1xuICAgIF90aGlzLnNldFZhbHVlID0gZnVuY3Rpb24gKG5ld1ZhbHVlLCBhY3Rpb24sIG9wdGlvbikge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICBjbG9zZU1lbnVPblNlbGVjdCA9IF90aGlzJHByb3BzMi5jbG9zZU1lbnVPblNlbGVjdCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMi5pc011bHRpLFxuICAgICAgICBpbnB1dFZhbHVlID0gX3RoaXMkcHJvcHMyLmlucHV0VmFsdWU7XG4gICAgICBfdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ3NldC12YWx1ZScsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIGlmIChjbG9zZU1lbnVPblNlbGVjdCkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIC8vIHdoZW4gdGhlIHNlbGVjdCB2YWx1ZSBzaG91bGQgY2hhbmdlLCB3ZSBzaG91bGQgcmVzZXQgZm9jdXNlZFZhbHVlXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlLCB7XG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBvcHRpb246IG9wdGlvblxuICAgICAgfSk7XG4gICAgfTtcbiAgICBfdGhpcy5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgYmx1cklucHV0T25TZWxlY3QgPSBfdGhpcyRwcm9wczMuYmx1cklucHV0T25TZWxlY3QsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMy5uYW1lO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZGVzZWxlY3RlZCA9IGlzTXVsdGkgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChuZXdWYWx1ZSwgc2VsZWN0VmFsdWUpO1xuICAgICAgdmFyIGlzRGlzYWJsZWQgPSBfdGhpcy5pc09wdGlvbkRpc2FibGVkKG5ld1ZhbHVlLCBzZWxlY3RWYWx1ZSk7XG4gICAgICBpZiAoZGVzZWxlY3RlZCkge1xuICAgICAgICB2YXIgY2FuZGlkYXRlID0gX3RoaXMuZ2V0T3B0aW9uVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0T3B0aW9uVmFsdWUoaSkgIT09IGNhbmRpZGF0ZTtcbiAgICAgICAgfSkpLCAnZGVzZWxlY3Qtb3B0aW9uJywgbmV3VmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCkge1xuICAgICAgICAvLyBTZWxlY3Qgb3B0aW9uIGlmIG9wdGlvbiBpcyBub3QgZGlzYWJsZWRcbiAgICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShtdWx0aVZhbHVlQXNWYWx1ZShbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHNlbGVjdFZhbHVlKSwgW25ld1ZhbHVlXSkpLCAnc2VsZWN0LW9wdGlvbicsIG5ld1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfdGhpcy5zZXRWYWx1ZShzaW5nbGVWYWx1ZUFzVmFsdWUobmV3VmFsdWUpLCAnc2VsZWN0LW9wdGlvbicpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfdGhpcy5hcmlhT25DaGFuZ2Uoc2luZ2xlVmFsdWVBc1ZhbHVlKG5ld1ZhbHVlKSwge1xuICAgICAgICAgIGFjdGlvbjogJ3NlbGVjdC1vcHRpb24nLFxuICAgICAgICAgIG9wdGlvbjogbmV3VmFsdWUsXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGJsdXJJbnB1dE9uU2VsZWN0KSB7XG4gICAgICAgIF90aGlzLmJsdXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMucmVtb3ZlVmFsdWUgPSBmdW5jdGlvbiAocmVtb3ZlZFZhbHVlKSB7XG4gICAgICB2YXIgaXNNdWx0aSA9IF90aGlzLnByb3BzLmlzTXVsdGk7XG4gICAgICB2YXIgc2VsZWN0VmFsdWUgPSBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIHZhciBjYW5kaWRhdGUgPSBfdGhpcy5nZXRPcHRpb25WYWx1ZShyZW1vdmVkVmFsdWUpO1xuICAgICAgdmFyIG5ld1ZhbHVlQXJyYXkgPSBzZWxlY3RWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLmdldE9wdGlvblZhbHVlKGkpICE9PSBjYW5kaWRhdGU7XG4gICAgICB9KTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IHZhbHVlVGVybmFyeShpc011bHRpLCBuZXdWYWx1ZUFycmF5LCBuZXdWYWx1ZUFycmF5WzBdIHx8IG51bGwpO1xuICAgICAgX3RoaXMub25DaGFuZ2UobmV3VmFsdWUsIHtcbiAgICAgICAgYWN0aW9uOiAncmVtb3ZlLXZhbHVlJyxcbiAgICAgICAgcmVtb3ZlZFZhbHVlOiByZW1vdmVkVmFsdWVcbiAgICAgIH0pO1xuICAgICAgX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH07XG4gICAgX3RoaXMuY2xlYXJWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xuICAgICAgX3RoaXMub25DaGFuZ2UodmFsdWVUZXJuYXJ5KF90aGlzLnByb3BzLmlzTXVsdGksIFtdLCBudWxsKSwge1xuICAgICAgICBhY3Rpb246ICdjbGVhcicsXG4gICAgICAgIHJlbW92ZWRWYWx1ZXM6IHNlbGVjdFZhbHVlXG4gICAgICB9KTtcbiAgICB9O1xuICAgIF90aGlzLnBvcFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlzTXVsdGkgPSBfdGhpcy5wcm9wcy5pc011bHRpO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgbGFzdFNlbGVjdGVkVmFsdWUgPSBzZWxlY3RWYWx1ZVtzZWxlY3RWYWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgIHZhciBuZXdWYWx1ZUFycmF5ID0gc2VsZWN0VmFsdWUuc2xpY2UoMCwgc2VsZWN0VmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgICB2YXIgbmV3VmFsdWUgPSB2YWx1ZVRlcm5hcnkoaXNNdWx0aSwgbmV3VmFsdWVBcnJheSwgbmV3VmFsdWVBcnJheVswXSB8fCBudWxsKTtcbiAgICAgIGlmIChsYXN0U2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICBfdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSwge1xuICAgICAgICAgIGFjdGlvbjogJ3BvcC12YWx1ZScsXG4gICAgICAgICAgcmVtb3ZlZFZhbHVlOiBsYXN0U2VsZWN0ZWRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzZWRPcHRpb25JZCA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICByZXR1cm4gZ2V0Rm9jdXNlZE9wdGlvbklkKF90aGlzLnN0YXRlLmZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkRm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMoYnVpbGRDYXRlZ29yaXplZE9wdGlvbnMoX3RoaXMucHJvcHMsIF90aGlzLnN0YXRlLnNlbGVjdFZhbHVlKSwgX3RoaXMuZ2V0RWxlbWVudElkKCdvcHRpb24nKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICB9O1xuICAgIF90aGlzLmN4ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xhc3NOYW1lcy5hcHBseSh2b2lkIDAsIFtfdGhpcy5wcm9wcy5jbGFzc05hbWVQcmVmaXhdLmNvbmNhdChhcmdzKSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRPcHRpb25MYWJlbCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICByZXR1cm4gZ2V0T3B0aW9uTGFiZWwoX3RoaXMucHJvcHMsIGRhdGEpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0T3B0aW9uVmFsdWUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgcmV0dXJuIGdldE9wdGlvblZhbHVlKF90aGlzLnByb3BzLCBkYXRhKTtcbiAgICB9O1xuICAgIF90aGlzLmdldFN0eWxlcyA9IGZ1bmN0aW9uIChrZXksIHByb3BzKSB7XG4gICAgICB2YXIgdW5zdHlsZWQgPSBfdGhpcy5wcm9wcy51bnN0eWxlZDtcbiAgICAgIHZhciBiYXNlID0gZGVmYXVsdFN0eWxlc1trZXldKHByb3BzLCB1bnN0eWxlZCk7XG4gICAgICBiYXNlLmJveFNpemluZyA9ICdib3JkZXItYm94JztcbiAgICAgIHZhciBjdXN0b20gPSBfdGhpcy5wcm9wcy5zdHlsZXNba2V5XTtcbiAgICAgIHJldHVybiBjdXN0b20gPyBjdXN0b20oYmFzZSwgcHJvcHMpIDogYmFzZTtcbiAgICB9O1xuICAgIF90aGlzLmdldENsYXNzTmFtZXMgPSBmdW5jdGlvbiAoa2V5LCBwcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzJGNsYXNzTmFtZSwgX3RoaXMkcHJvcHMkY2xhc3NOYW1lMjtcbiAgICAgIHJldHVybiAoX3RoaXMkcHJvcHMkY2xhc3NOYW1lID0gKF90aGlzJHByb3BzJGNsYXNzTmFtZTIgPSBfdGhpcy5wcm9wcy5jbGFzc05hbWVzKVtrZXldKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGNsYXNzTmFtZS5jYWxsKF90aGlzJHByb3BzJGNsYXNzTmFtZTIsIHByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmdldEVsZW1lbnRJZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuc3RhdGUuaW5zdGFuY2VQcmVmaXgsIFwiLVwiKS5jb25jYXQoZWxlbWVudCk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDb21wb25lbnRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRDb21wb25lbnRzKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLnByb3BzLCBfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZSk7XG4gICAgfTtcbiAgICBfdGhpcy5nZXRDYXRlZ29yaXplZE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMucHJvcHMubWVudUlzT3BlbiA/IF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWlsZEZvY3VzYWJsZU9wdGlvbnNGcm9tQ2F0ZWdvcml6ZWRPcHRpb25zKF90aGlzLmJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKCkpO1xuICAgIH07XG4gICAgX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5wcm9wcy5tZW51SXNPcGVuID8gX3RoaXMuYnVpbGRGb2N1c2FibGVPcHRpb25zKCkgOiBbXTtcbiAgICB9O1xuICAgIF90aGlzLmFyaWFPbkNoYW5nZSA9IGZ1bmN0aW9uICh2YWx1ZSwgYWN0aW9uTWV0YSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBhcmlhU2VsZWN0aW9uOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgYWN0aW9uTWV0YSlcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25NZW51TW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uTWVudU1vdXNlTW92ZSA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciA9IGZhbHNlO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sTW91c2VEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAvLyBFdmVudCBjYXB0dXJlZCBieSBkcm9wZG93biBpbmRpY2F0b3JcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcGVuTWVudU9uQ2xpY2sgPSBfdGhpcy5wcm9wcy5vcGVuTWVudU9uQ2xpY2s7XG4gICAgICBpZiAoIV90aGlzLnN0YXRlLmlzRm9jdXNlZCkge1xuICAgICAgICBpZiAob3Blbk1lbnVPbkNsaWNrKSB7XG4gICAgICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIF90aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoIV90aGlzLnByb3BzLm1lbnVJc09wZW4pIHtcbiAgICAgICAgaWYgKG9wZW5NZW51T25DbGljaykge1xuICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdJTlBVVCcgJiYgZXZlbnQudGFyZ2V0LnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKF90aGlzLnByb3BzLmlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNC5pc011bHRpLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM0Lm1lbnVJc09wZW47XG4gICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaW5wdXRJc0hpZGRlbkFmdGVyVXBkYXRlOiAhaXNNdWx0aVxuICAgICAgICB9KTtcbiAgICAgICAgX3RoaXMub25NZW51Q2xvc2UoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JNb3VzZURvd24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIC8vIGlnbm9yZSBtb3VzZSBldmVudHMgdGhhdCB3ZXJlbid0IHRyaWdnZXJlZCBieSB0aGUgcHJpbWFyeSBidXR0b25cbiAgICAgIGlmIChldmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIF90aGlzLm9wZW5BZnRlckZvY3VzID0gZmFsc2U7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICBfdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uU2Nyb2xsID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAodHlwZW9mIF90aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIGlzRG9jdW1lbnRFbGVtZW50KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICBfdGhpcy5wcm9wcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBfdGhpcy5wcm9wcy5jbG9zZU1lbnVPblNjcm9sbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoX3RoaXMucHJvcHMuY2xvc2VNZW51T25TY3JvbGwoZXZlbnQpKSB7XG4gICAgICAgICAgX3RoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvblN0YXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMuaXNDb21wb3NpbmcgPSB0cnVlO1xuICAgIH07XG4gICAgX3RoaXMub25Db21wb3NpdGlvbkVuZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLmlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgICBfdGhpcy5vblRvdWNoU3RhcnQgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciB0b3VjaGVzID0gX3JlZjIudG91Y2hlcztcbiAgICAgIHZhciB0b3VjaCA9IHRvdWNoZXMgJiYgdG91Y2hlcy5pdGVtKDApO1xuICAgICAgaWYgKCF0b3VjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gdG91Y2guY2xpZW50WDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgX3RoaXMudXNlcklzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hNb3ZlID0gZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICB2YXIgdG91Y2hlcyA9IF9yZWYzLnRvdWNoZXM7XG4gICAgICB2YXIgdG91Y2ggPSB0b3VjaGVzICYmIHRvdWNoZXMuaXRlbSgwKTtcbiAgICAgIGlmICghdG91Y2gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGRlbHRhWCA9IE1hdGguYWJzKHRvdWNoLmNsaWVudFggLSBfdGhpcy5pbml0aWFsVG91Y2hYKTtcbiAgICAgIHZhciBkZWx0YVkgPSBNYXRoLmFicyh0b3VjaC5jbGllbnRZIC0gX3RoaXMuaW5pdGlhbFRvdWNoWSk7XG4gICAgICB2YXIgbW92ZVRocmVzaG9sZCA9IDU7XG4gICAgICBfdGhpcy51c2VySXNEcmFnZ2luZyA9IGRlbHRhWCA+IG1vdmVUaHJlc2hvbGQgfHwgZGVsdGFZID4gbW92ZVRocmVzaG9sZDtcbiAgICB9O1xuICAgIF90aGlzLm9uVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuXG4gICAgICAvLyBjbG9zZSB0aGUgbWVudSBpZiB0aGUgdXNlciB0YXBzIG91dHNpZGVcbiAgICAgIC8vIHdlJ3JlIGNoZWNraW5nIG9uIGV2ZW50LnRhcmdldCBoZXJlIGluc3RlYWQgb2YgZXZlbnQuY3VycmVudFRhcmdldCwgYmVjYXVzZSB3ZSB3YW50IHRvIGFzc2VydCBpbmZvcm1hdGlvblxuICAgICAgLy8gb24gZXZlbnRzIG9uIGNoaWxkIGVsZW1lbnRzLCBub3QgdGhlIGRvY3VtZW50ICh3aGljaCB3ZSd2ZSBhdHRhY2hlZCB0aGlzIGhhbmRsZXIgdG8pLlxuICAgICAgaWYgKF90aGlzLmNvbnRyb2xSZWYgJiYgIV90aGlzLmNvbnRyb2xSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiBfdGhpcy5tZW51TGlzdFJlZiAmJiAhX3RoaXMubWVudUxpc3RSZWYuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBfdGhpcy5ibHVySW5wdXQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgbW92ZSB2YXJzXG4gICAgICBfdGhpcy5pbml0aWFsVG91Y2hYID0gMDtcbiAgICAgIF90aGlzLmluaXRpYWxUb3VjaFkgPSAwO1xuICAgIH07XG4gICAgX3RoaXMub25Db250cm9sVG91Y2hFbmQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGlmIChfdGhpcy51c2VySXNEcmFnZ2luZykgcmV0dXJuO1xuICAgICAgX3RoaXMub25Db250cm9sTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uQ2xlYXJJbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkNsZWFySW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnVzZXJJc0RyYWdnaW5nKSByZXR1cm47XG4gICAgICBfdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duKGV2ZW50KTtcbiAgICB9O1xuICAgIF90aGlzLmhhbmRsZUlucHV0Q2hhbmdlID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgdmFyIGlucHV0VmFsdWUgPSBldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoaW5wdXRWYWx1ZSwge1xuICAgICAgICBhY3Rpb246ICdpbnB1dC1jaGFuZ2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogcHJldklucHV0VmFsdWVcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfdGhpcy5wcm9wcy5tZW51SXNPcGVuKSB7XG4gICAgICAgIF90aGlzLm9uTWVudU9wZW4oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRGb2N1cyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICB9XG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICBpZiAoX3RoaXMub3BlbkFmdGVyRm9jdXMgfHwgX3RoaXMucHJvcHMub3Blbk1lbnVPbkZvY3VzKSB7XG4gICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgfVxuICAgICAgX3RoaXMub3BlbkFmdGVyRm9jdXMgPSBmYWxzZTtcbiAgICB9O1xuICAgIF90aGlzLm9uSW5wdXRCbHVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgcHJldklucHV0VmFsdWUgPSBfdGhpcy5wcm9wcy5pbnB1dFZhbHVlO1xuICAgICAgaWYgKF90aGlzLm1lbnVMaXN0UmVmICYmIF90aGlzLm1lbnVMaXN0UmVmLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIF90aGlzLmlucHV0UmVmLmZvY3VzKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25CbHVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgYWN0aW9uOiAnaW5wdXQtYmx1cicsXG4gICAgICAgIHByZXZJbnB1dFZhbHVlOiBwcmV2SW5wdXRWYWx1ZVxuICAgICAgfSk7XG4gICAgICBfdGhpcy5vbk1lbnVDbG9zZSgpO1xuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkVmFsdWU6IG51bGwsXG4gICAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMub25PcHRpb25Ib3ZlciA9IGZ1bmN0aW9uIChmb2N1c2VkT3B0aW9uKSB7XG4gICAgICBpZiAoX3RoaXMuYmxvY2tPcHRpb25Ib3ZlciB8fCBfdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uID09PSBmb2N1c2VkT3B0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcHRpb25zID0gX3RoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuaW5kZXhPZihmb2N1c2VkT3B0aW9uKTtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiBmb2N1c2VkT3B0aW9uSW5kZXggPiAtMSA/IF90aGlzLmdldEZvY3VzZWRPcHRpb25JZChmb2N1c2VkT3B0aW9uKSA6IG51bGxcbiAgICAgIH0pO1xuICAgIH07XG4gICAgX3RoaXMuc2hvdWxkSGlkZVNlbGVjdGVkT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBzaG91bGRIaWRlU2VsZWN0ZWRPcHRpb25zKF90aGlzLnByb3BzKTtcbiAgICB9O1xuICAgIF90aGlzLm9uVmFsdWVJbnB1dEZvY3VzID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBfdGhpcy5mb2N1cygpO1xuICAgIH07XG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczUuaXNNdWx0aSxcbiAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlID0gX3RoaXMkcHJvcHM1LmJhY2tzcGFjZVJlbW92ZXNWYWx1ZSxcbiAgICAgICAgZXNjYXBlQ2xlYXJzVmFsdWUgPSBfdGhpcyRwcm9wczUuZXNjYXBlQ2xlYXJzVmFsdWUsXG4gICAgICAgIGlucHV0VmFsdWUgPSBfdGhpcyRwcm9wczUuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNDbGVhcmFibGUgPSBfdGhpcyRwcm9wczUuaXNDbGVhcmFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNS5tZW51SXNPcGVuLFxuICAgICAgICBvbktleURvd24gPSBfdGhpcyRwcm9wczUub25LZXlEb3duLFxuICAgICAgICB0YWJTZWxlY3RzVmFsdWUgPSBfdGhpcyRwcm9wczUudGFiU2VsZWN0c1ZhbHVlLFxuICAgICAgICBvcGVuTWVudU9uRm9jdXMgPSBfdGhpcyRwcm9wczUub3Blbk1lbnVPbkZvY3VzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZS5mb2N1c2VkT3B0aW9uLFxuICAgICAgICBmb2N1c2VkVmFsdWUgPSBfdGhpcyRzdGF0ZS5mb2N1c2VkVmFsdWUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKHR5cGVvZiBvbktleURvd24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgb3B0aW9uIGhvdmVyIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGhhcyBqdXN0IHByZXNzZWQgYSBrZXlcbiAgICAgIF90aGlzLmJsb2NrT3B0aW9uSG92ZXIgPSB0cnVlO1xuICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICBpZiAoIWlzTXVsdGkgfHwgaW5wdXRWYWx1ZSkgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzVmFsdWUoJ3ByZXZpb3VzJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgIGlmICghaXNNdWx0aSB8fCBpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgX3RoaXMuZm9jdXNWYWx1ZSgnbmV4dCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgIGlmIChpbnB1dFZhbHVlKSByZXR1cm47XG4gICAgICAgICAgaWYgKGZvY3VzZWRWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMucmVtb3ZlVmFsdWUoZm9jdXNlZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFiYWNrc3BhY2VSZW1vdmVzVmFsdWUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChpc011bHRpKSB7XG4gICAgICAgICAgICAgIF90aGlzLnBvcFZhbHVlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQ2xlYXJhYmxlKSB7XG4gICAgICAgICAgICAgIF90aGlzLmNsZWFyVmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgaWYgKF90aGlzLmlzQ29tcG9zaW5nKSByZXR1cm47XG4gICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5IHx8ICFtZW51SXNPcGVuIHx8ICF0YWJTZWxlY3RzVmFsdWUgfHwgIWZvY3VzZWRPcHRpb24gfHxcbiAgICAgICAgICAvLyBkb24ndCBjYXB0dXJlIHRoZSBldmVudCBpZiB0aGUgbWVudSBvcGVucyBvbiBmb2N1cyBhbmQgdGhlIGZvY3VzZWRcbiAgICAgICAgICAvLyBvcHRpb24gaXMgYWxyZWFkeSBzZWxlY3RlZDsgaXQgYnJlYWtzIHRoZSBmbG93IG9mIG5hdmlnYXRpb25cbiAgICAgICAgICBvcGVuTWVudU9uRm9jdXMgJiYgX3RoaXMuaXNPcHRpb25TZWxlY3RlZChmb2N1c2VkT3B0aW9uLCBzZWxlY3RWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDIyOSkge1xuICAgICAgICAgICAgLy8gaWdub3JlIHRoZSBrZXlkb3duIGV2ZW50IGZyb20gYW4gSW5wdXQgTWV0aG9kIEVkaXRvcihJTUUpXG4gICAgICAgICAgICAvLyByZWYuIGh0dHBzOi8vd3d3LnczLm9yZy9UUi91aWV2ZW50cy8jZGV0ZXJtaW5lLWtleWRvd24ta2V5dXAta2V5Q29kZVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtZW51SXNPcGVuKSB7XG4gICAgICAgICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChfdGhpcy5pc0NvbXBvc2luZykgcmV0dXJuO1xuICAgICAgICAgICAgX3RoaXMuc2VsZWN0T3B0aW9uKGZvY3VzZWRPcHRpb24pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uSW5wdXRDaGFuZ2UoJycsIHtcbiAgICAgICAgICAgICAgYWN0aW9uOiAnbWVudS1jbG9zZScsXG4gICAgICAgICAgICAgIHByZXZJbnB1dFZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF90aGlzLm9uTWVudUNsb3NlKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0NsZWFyYWJsZSAmJiBlc2NhcGVDbGVhcnNWYWx1ZSkge1xuICAgICAgICAgICAgX3RoaXMuY2xlYXJWYWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnICc6XG4gICAgICAgICAgLy8gc3BhY2VcbiAgICAgICAgICBpZiAoaW5wdXRWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLm9wZW5NZW51KCdmaXJzdCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZm9jdXNlZE9wdGlvbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLnNlbGVjdE9wdGlvbihmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgaWYgKG1lbnVJc09wZW4pIHtcbiAgICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCd1cCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfdGhpcy5vcGVuTWVudSgnbGFzdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBpZiAobWVudUlzT3Blbikge1xuICAgICAgICAgICAgX3RoaXMuZm9jdXNPcHRpb24oJ2Rvd24nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMub3Blbk1lbnUoJ2ZpcnN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdldXAnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICAgIGlmICghbWVudUlzT3BlbikgcmV0dXJuO1xuICAgICAgICAgIF90aGlzLmZvY3VzT3B0aW9uKCdwYWdlZG93bicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignZmlyc3QnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybjtcbiAgICAgICAgICBfdGhpcy5mb2N1c09wdGlvbignbGFzdCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcbiAgICBfdGhpcy5zdGF0ZS5pbnN0YW5jZVByZWZpeCA9ICdyZWFjdC1zZWxlY3QtJyArIChfdGhpcy5wcm9wcy5pbnN0YW5jZUlkIHx8ICsraW5zdGFuY2VJZCk7XG4gICAgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUgPSBjbGVhblZhbHVlKF9wcm9wcy52YWx1ZSk7XG4gICAgLy8gU2V0IGZvY3VzZWRPcHRpb24gaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gaW5pdCAoZS5nLiBkZWZhdWx0TWVudUlzT3BlbilcbiAgICBpZiAoX3Byb3BzLm1lbnVJc09wZW4gJiYgX3RoaXMuc3RhdGUuc2VsZWN0VmFsdWUubGVuZ3RoKSB7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMgPSBfdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zV2l0aElkcygpO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSBfdGhpcy5idWlsZEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIHZhciBvcHRpb25JbmRleCA9IGZvY3VzYWJsZU9wdGlvbnMuaW5kZXhPZihfdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZVswXSk7XG4gICAgICBfdGhpcy5zdGF0ZS5mb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiA9IGZvY3VzYWJsZU9wdGlvbnNbb3B0aW9uSW5kZXhdO1xuICAgICAgX3RoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2FibGVPcHRpb25zW29wdGlvbkluZGV4XSk7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICBfY3JlYXRlQ2xhc3MoU2VsZWN0LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmdDb21wb3NpdGlvbigpO1xuICAgICAgdGhpcy5zdGFydExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNsb3NlTWVudU9uU2Nyb2xsICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgLy8gTGlzdGVuIHRvIGFsbCBzY3JvbGwgZXZlbnRzLCBhbmQgZmlsdGVyIHRoZW0gb3V0IGluc2lkZSBvZiAnb25TY3JvbGwnXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBTY3JvbGwgZm9jdXNlZE9wdGlvbiBpbnRvIHZpZXcgaWYgbWVudUlzT3BlbiBpcyBzZXQgb24gbW91bnQgKGUuZy4gZGVmYXVsdE1lbnVJc09wZW4pXG4gICAgICBpZiAodGhpcy5wcm9wcy5tZW51SXNPcGVuICYmIHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbiAmJiB0aGlzLm1lbnVMaXN0UmVmICYmIHRoaXMuZm9jdXNlZE9wdGlvblJlZikge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczYuaXNEaXNhYmxlZCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzNi5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKFxuICAgICAgLy8gZW5zdXJlIGZvY3VzIGlzIHJlc3RvcmVkIGNvcnJlY3RseSB3aGVuIHRoZSBjb250cm9sIGJlY29tZXMgZW5hYmxlZFxuICAgICAgaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkIHx8XG4gICAgICAvLyBlbnN1cmUgZm9jdXMgaXMgb24gdGhlIElucHV0IHdoZW4gdGhlIG1lbnUgb3BlbnNcbiAgICAgIGlzRm9jdXNlZCAmJiBtZW51SXNPcGVuICYmICFwcmV2UHJvcHMubWVudUlzT3Blbikge1xuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0ZvY3VzZWQgJiYgaXNEaXNhYmxlZCAmJiAhcHJldlByb3BzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGJsdXJyZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbW1hdGljYWxseSBkaXNhYmxlZCB3aGlsZSBmb2N1c2VkXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgICAgIH0sIHRoaXMub25NZW51Q2xvc2UpO1xuICAgICAgfSBlbHNlIGlmICghaXNGb2N1c2VkICYmICFpc0Rpc2FibGVkICYmIHByZXZQcm9wcy5pc0Rpc2FibGVkICYmIHRoaXMuaW5wdXRSZWYgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gZW5zdXJlIHNlbGVjdCBzdGF0ZSBnZXRzIGZvY3VzZWQgaW4gY2FzZSBTZWxlY3QgaXMgcHJvZ3JhbWF0aWNhbGx5IHJlLWVuYWJsZWQgd2hpbGUgZm9jdXNlZCAoRmlyZWZveClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGlzRm9jdXNlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gc2Nyb2xsIHRoZSBmb2N1c2VkIG9wdGlvbiBpbnRvIHZpZXcgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAodGhpcy5tZW51TGlzdFJlZiAmJiB0aGlzLmZvY3VzZWRPcHRpb25SZWYgJiYgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSkge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyh0aGlzLm1lbnVMaXN0UmVmLCB0aGlzLmZvY3VzZWRPcHRpb25SZWYpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nQ29tcG9zaXRpb24oKTtcbiAgICAgIHRoaXMuc3RvcExpc3RlbmluZ1RvVG91Y2goKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25TY3JvbGwsIHRydWUpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIENvbnN1bWVyIEhhbmRsZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIH0sIHtcbiAgICBrZXk6IFwib25NZW51T3BlblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbk1lbnVPcGVuKCkge1xuICAgICAgdGhpcy5wcm9wcy5vbk1lbnVPcGVuKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uTWVudUNsb3NlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCcnLCB7XG4gICAgICAgIGFjdGlvbjogJ21lbnUtY2xvc2UnLFxuICAgICAgICBwcmV2SW5wdXRWYWx1ZTogdGhpcy5wcm9wcy5pbnB1dFZhbHVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvcHMub25NZW51Q2xvc2UoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib25JbnB1dENoYW5nZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbklucHV0Q2hhbmdlKG5ld1ZhbHVlLCBhY3Rpb25NZXRhKSB7XG4gICAgICB0aGlzLnByb3BzLm9uSW5wdXRDaGFuZ2UobmV3VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgIH1cblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIE1ldGhvZHNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c0lucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzSW5wdXQoKSB7XG4gICAgICBpZiAoIXRoaXMuaW5wdXRSZWYpIHJldHVybjtcbiAgICAgIHRoaXMuaW5wdXRSZWYuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1cklucHV0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXJJbnB1dCgpIHtcbiAgICAgIGlmICghdGhpcy5pbnB1dFJlZikgcmV0dXJuO1xuICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgfVxuXG4gICAgLy8gYWxpYXNlZCBmb3IgY29uc3VtZXJzXG4gIH0sIHtcbiAgICBrZXk6IFwib3Blbk1lbnVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gb3Blbk1lbnUoZm9jdXNPcHRpb24pIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHN0YXRlMiA9IHRoaXMuc3RhdGUsXG4gICAgICAgIHNlbGVjdFZhbHVlID0gX3RoaXMkc3RhdGUyLnNlbGVjdFZhbHVlLFxuICAgICAgICBpc0ZvY3VzZWQgPSBfdGhpcyRzdGF0ZTIuaXNGb2N1c2VkO1xuICAgICAgdmFyIGZvY3VzYWJsZU9wdGlvbnMgPSB0aGlzLmJ1aWxkRm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgdmFyIG9wZW5BdEluZGV4ID0gZm9jdXNPcHRpb24gPT09ICdmaXJzdCcgPyAwIDogZm9jdXNhYmxlT3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHtcbiAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSBmb2N1c2FibGVPcHRpb25zLmluZGV4T2Yoc2VsZWN0VmFsdWVbMF0pO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgb3BlbkF0SW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG9ubHkgc2Nyb2xsIGlmIHRoZSBtZW51IGlzbid0IGFscmVhZHkgb3BlblxuICAgICAgdGhpcy5zY3JvbGxUb0ZvY3VzZWRPcHRpb25PblVwZGF0ZSA9ICEoaXNGb2N1c2VkICYmIHRoaXMubWVudUxpc3RSZWYpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0sXG4gICAgICAgIGZvY3VzZWRPcHRpb25JZDogdGhpcy5nZXRGb2N1c2VkT3B0aW9uSWQoZm9jdXNhYmxlT3B0aW9uc1tvcGVuQXRJbmRleF0pXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBfdGhpczIub25NZW51T3BlbigpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNWYWx1ZShkaXJlY3Rpb24pIHtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTMgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlMy5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGUzLmZvY3VzZWRWYWx1ZTtcblxuICAgICAgLy8gT25seSBtdWx0aXNlbGVjdHMgc3VwcG9ydCB2YWx1ZSBmb2N1c2luZ1xuICAgICAgaWYgKCF0aGlzLnByb3BzLmlzTXVsdGkpIHJldHVybjtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBzZWxlY3RWYWx1ZS5pbmRleE9mKGZvY3VzZWRWYWx1ZSk7XG4gICAgICBpZiAoIWZvY3VzZWRWYWx1ZSkge1xuICAgICAgICBmb2N1c2VkSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0SW5kZXggPSBzZWxlY3RWYWx1ZS5sZW5ndGggLSAxO1xuICAgICAgdmFyIG5leHRGb2N1cyA9IC0xO1xuICAgICAgaWYgKCFzZWxlY3RWYWx1ZS5sZW5ndGgpIHJldHVybjtcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ3ByZXZpb3VzJzpcbiAgICAgICAgICBpZiAoZm9jdXNlZEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAvLyBkb24ndCBjeWNsZSBmcm9tIHRoZSBzdGFydCB0byB0aGUgZW5kXG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9jdXNlZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgbm90aGluZyBpcyBmb2N1c2VkLCBmb2N1cyB0aGUgbGFzdCB2YWx1ZSBmaXJzdFxuICAgICAgICAgICAgbmV4dEZvY3VzID0gbGFzdEluZGV4O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgaWYgKGZvY3VzZWRJbmRleCA+IC0xICYmIGZvY3VzZWRJbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICAgICAgbmV4dEZvY3VzID0gZm9jdXNlZEluZGV4ICsgMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgaW5wdXRJc0hpZGRlbjogbmV4dEZvY3VzICE9PSAtMSxcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBzZWxlY3RWYWx1ZVtuZXh0Rm9jdXNdXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9jdXNPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXNPcHRpb24oKSB7XG4gICAgICB2YXIgZGlyZWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnZmlyc3QnO1xuICAgICAgdmFyIHBhZ2VTaXplID0gdGhpcy5wcm9wcy5wYWdlU2l6ZTtcbiAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gdGhpcy5zdGF0ZS5mb2N1c2VkT3B0aW9uO1xuICAgICAgdmFyIG9wdGlvbnMgPSB0aGlzLmdldEZvY3VzYWJsZU9wdGlvbnMoKTtcbiAgICAgIGlmICghb3B0aW9ucy5sZW5ndGgpIHJldHVybjtcbiAgICAgIHZhciBuZXh0Rm9jdXMgPSAwOyAvLyBoYW5kbGVzICdmaXJzdCdcbiAgICAgIHZhciBmb2N1c2VkSW5kZXggPSBvcHRpb25zLmluZGV4T2YoZm9jdXNlZE9wdGlvbik7XG4gICAgICBpZiAoIWZvY3VzZWRPcHRpb24pIHtcbiAgICAgICAgZm9jdXNlZEluZGV4ID0gLTE7XG4gICAgICB9XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAndXAnKSB7XG4gICAgICAgIG5leHRGb2N1cyA9IGZvY3VzZWRJbmRleCA+IDAgPyBmb2N1c2VkSW5kZXggLSAxIDogb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSAoZm9jdXNlZEluZGV4ICsgMSkgJSBvcHRpb25zLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAncGFnZXVwJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggLSBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA8IDApIG5leHRGb2N1cyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBmb2N1c2VkSW5kZXggKyBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKG5leHRGb2N1cyA+IG9wdGlvbnMubGVuZ3RoIC0gMSkgbmV4dEZvY3VzID0gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdsYXN0Jykge1xuICAgICAgICBuZXh0Rm9jdXMgPSBvcHRpb25zLmxlbmd0aCAtIDE7XG4gICAgICB9XG4gICAgICB0aGlzLnNjcm9sbFRvRm9jdXNlZE9wdGlvbk9uVXBkYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBmb2N1c2VkT3B0aW9uOiBvcHRpb25zW25leHRGb2N1c10sXG4gICAgICAgIGZvY3VzZWRWYWx1ZTogbnVsbCxcbiAgICAgICAgZm9jdXNlZE9wdGlvbklkOiB0aGlzLmdldEZvY3VzZWRPcHRpb25JZChvcHRpb25zW25leHRGb2N1c10pXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0VGhlbWVcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBHZXR0ZXJzXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBnZXRUaGVtZSgpIHtcbiAgICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB0aGVtZSBpZiB0aGVyZSBhcmUgbm8gY3VzdG9taXNhdGlvbnMuXG4gICAgICBpZiAoIXRoaXMucHJvcHMudGhlbWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUaGVtZTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSB0aGVtZSBwcm9wIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSB0aGUgZnVuY3Rpb25cbiAgICAgIC8vIGtub3dzIGhvdyB0byBtZXJnZSB0aGUgcGFzc2VkLWluIGRlZmF1bHQgdGhlbWUgd2l0aFxuICAgICAgLy8gaXRzIG93biBtb2RpZmljYXRpb25zLlxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLnRoZW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRoZW1lKGRlZmF1bHRUaGVtZSk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIGlmIGEgcGxhaW4gdGhlbWUgb2JqZWN0IHdhcyBwYXNzZWQgaW4sXG4gICAgICAvLyBvdmVybGF5IGl0IHdpdGggdGhlIGRlZmF1bHQgdGhlbWUuXG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0VGhlbWUpLCB0aGlzLnByb3BzLnRoZW1lKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q29tbW9uUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q29tbW9uUHJvcHMoKSB7XG4gICAgICB2YXIgY2xlYXJWYWx1ZSA9IHRoaXMuY2xlYXJWYWx1ZSxcbiAgICAgICAgY3ggPSB0aGlzLmN4LFxuICAgICAgICBnZXRTdHlsZXMgPSB0aGlzLmdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lcyA9IHRoaXMuZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWUgPSB0aGlzLmdldFZhbHVlLFxuICAgICAgICBzZWxlY3RPcHRpb24gPSB0aGlzLnNlbGVjdE9wdGlvbixcbiAgICAgICAgc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlLFxuICAgICAgICBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgaXNNdWx0aSA9IHByb3BzLmlzTXVsdGksXG4gICAgICAgIGlzUnRsID0gcHJvcHMuaXNSdGwsXG4gICAgICAgIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgICAgdmFyIGhhc1ZhbHVlID0gdGhpcy5oYXNWYWx1ZSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xlYXJWYWx1ZTogY2xlYXJWYWx1ZSxcbiAgICAgICAgY3g6IGN4LFxuICAgICAgICBnZXRTdHlsZXM6IGdldFN0eWxlcyxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lczogZ2V0Q2xhc3NOYW1lcyxcbiAgICAgICAgZ2V0VmFsdWU6IGdldFZhbHVlLFxuICAgICAgICBoYXNWYWx1ZTogaGFzVmFsdWUsXG4gICAgICAgIGlzTXVsdGk6IGlzTXVsdGksXG4gICAgICAgIGlzUnRsOiBpc1J0bCxcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgc2VsZWN0T3B0aW9uOiBzZWxlY3RPcHRpb24sXG4gICAgICAgIHNlbGVjdFByb3BzOiBwcm9wcyxcbiAgICAgICAgc2V0VmFsdWU6IHNldFZhbHVlLFxuICAgICAgICB0aGVtZTogdGhpcy5nZXRUaGVtZSgpXG4gICAgICB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJoYXNWYWx1ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNWYWx1ZSgpIHtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICByZXR1cm4gc2VsZWN0VmFsdWUubGVuZ3RoID4gMDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaGFzT3B0aW9uc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYXNPcHRpb25zKCkge1xuICAgICAgcmV0dXJuICEhdGhpcy5nZXRGb2N1c2FibGVPcHRpb25zKCkubGVuZ3RoO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc0NsZWFyYWJsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc0NsZWFyYWJsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0NsZWFyYWJsZSA9IF90aGlzJHByb3BzNy5pc0NsZWFyYWJsZSxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzNy5pc011bHRpO1xuXG4gICAgICAvLyBzaW5nbGUgc2VsZWN0LCBieSBkZWZhdWx0LCBJUyBOT1QgY2xlYXJhYmxlXG4gICAgICAvLyBtdWx0aSBzZWxlY3QsIGJ5IGRlZmF1bHQsIElTIGNsZWFyYWJsZVxuICAgICAgaWYgKGlzQ2xlYXJhYmxlID09PSB1bmRlZmluZWQpIHJldHVybiBpc011bHRpO1xuICAgICAgcmV0dXJuIGlzQ2xlYXJhYmxlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvbkRpc2FibGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uRGlzYWJsZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvbkRpc2FibGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc09wdGlvblNlbGVjdGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBzZWxlY3RWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9pc09wdGlvblNlbGVjdGVkKHRoaXMucHJvcHMsIG9wdGlvbiwgc2VsZWN0VmFsdWUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmaWx0ZXJPcHRpb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZmlsdGVyT3B0aW9uKG9wdGlvbiwgaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIF9maWx0ZXJPcHRpb24odGhpcy5wcm9wcywgb3B0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0T3B0aW9uTGFiZWxcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9ybWF0T3B0aW9uTGFiZWwoZGF0YSwgY29udGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHZhciBfaW5wdXRWYWx1ZSA9IHRoaXMucHJvcHMuaW5wdXRWYWx1ZTtcbiAgICAgICAgdmFyIF9zZWxlY3RWYWx1ZSA9IHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdE9wdGlvbkxhYmVsKGRhdGEsIHtcbiAgICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICAgIGlucHV0VmFsdWU6IF9pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdFZhbHVlOiBfc2VsZWN0VmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPcHRpb25MYWJlbChkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZm9ybWF0R3JvdXBMYWJlbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtYXRHcm91cExhYmVsKGRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmZvcm1hdEdyb3VwTGFiZWwoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gTW91c2UgSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgfSwge1xuICAgIGtleTogXCJzdGFydExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gQ29tcG9zaXRpb24gSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nQ29tcG9zaXRpb24oKSB7XG4gICAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0JywgdGhpcy5vbkNvbXBvc2l0aW9uU3RhcnQsIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RvcExpc3RlbmluZ0NvbXBvc2l0aW9uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdDb21wb3NpdGlvbigpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCB0aGlzLm9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgdGhpcy5vbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic3RhcnRMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gVG91Y2ggSGFuZGxlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TGlzdGVuaW5nVG9Ub3VjaCgpIHtcbiAgICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hTdGFydCwgZmFsc2UpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlLCBmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInN0b3BMaXN0ZW5pbmdUb1RvdWNoXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmdUb1RvdWNoKCkge1xuICAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaFN0YXJ0KTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoRW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5wdXRcIixcbiAgICB2YWx1ZTpcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBSZW5kZXJlcnNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBmdW5jdGlvbiByZW5kZXJJbnB1dCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczggPSB0aGlzLnByb3BzLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM4LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzU2VhcmNoYWJsZSA9IF90aGlzJHByb3BzOC5pc1NlYXJjaGFibGUsXG4gICAgICAgIGlucHV0SWQgPSBfdGhpcyRwcm9wczguaW5wdXRJZCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOC5pbnB1dFZhbHVlLFxuICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzOC50YWJJbmRleCxcbiAgICAgICAgZm9ybSA9IF90aGlzJHByb3BzOC5mb3JtLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHM4Lm1lbnVJc09wZW4sXG4gICAgICAgIHJlcXVpcmVkID0gX3RoaXMkcHJvcHM4LnJlcXVpcmVkO1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgSW5wdXQgPSBfdGhpcyRnZXRDb21wb25lbnRzLklucHV0O1xuICAgICAgdmFyIF90aGlzJHN0YXRlNCA9IHRoaXMuc3RhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW4gPSBfdGhpcyRzdGF0ZTQuaW5wdXRJc0hpZGRlbixcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IF90aGlzJHN0YXRlNC5hcmlhU2VsZWN0aW9uO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpZCA9IGlucHV0SWQgfHwgdGhpcy5nZXRFbGVtZW50SWQoJ2lucHV0Jyk7XG5cbiAgICAgIC8vIGFyaWEgYXR0cmlidXRlcyBtYWtlcyB0aGUgSlNYIFwibm9pc3lcIiwgc2VwYXJhdGVkIGZvciBjbGFyaXR5XG4gICAgICB2YXIgYXJpYUF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0JyxcbiAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBtZW51SXNPcGVuLFxuICAgICAgICAnYXJpYS1oYXNwb3B1cCc6IHRydWUsXG4gICAgICAgICdhcmlhLWVycm9ybWVzc2FnZSc6IHRoaXMucHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ10sXG4gICAgICAgICdhcmlhLWludmFsaWQnOiB0aGlzLnByb3BzWydhcmlhLWludmFsaWQnXSxcbiAgICAgICAgJ2FyaWEtbGFiZWwnOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsJ10sXG4gICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiB0aGlzLnByb3BzWydhcmlhLWxhYmVsbGVkYnknXSxcbiAgICAgICAgJ2FyaWEtcmVxdWlyZWQnOiByZXF1aXJlZCxcbiAgICAgICAgcm9sZTogJ2NvbWJvYm94JyxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc6IHRoaXMuaXNBcHBsZURldmljZSA/IHVuZGVmaW5lZCA6IHRoaXMuc3RhdGUuZm9jdXNlZE9wdGlvbklkIHx8ICcnXG4gICAgICB9LCBtZW51SXNPcGVuICYmIHtcbiAgICAgICAgJ2FyaWEtY29udHJvbHMnOiB0aGlzLmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICB9KSwgIWlzU2VhcmNoYWJsZSAmJiB7XG4gICAgICAgICdhcmlhLXJlYWRvbmx5JzogdHJ1ZVxuICAgICAgfSksIHRoaXMuaGFzVmFsdWUoKSA/IChhcmlhU2VsZWN0aW9uID09PSBudWxsIHx8IGFyaWFTZWxlY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFyaWFTZWxlY3Rpb24uYWN0aW9uKSA9PT0gJ2luaXRpYWwtaW5wdXQtZm9jdXMnICYmIHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKVxuICAgICAgfSA6IHtcbiAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiB0aGlzLmdldEVsZW1lbnRJZCgncGxhY2Vob2xkZXInKVxuICAgICAgfSk7XG4gICAgICBpZiAoIWlzU2VhcmNoYWJsZSkge1xuICAgICAgICAvLyB1c2UgYSBkdW1teSBpbnB1dCB0byBtYWludGFpbiBmb2N1cy9ibHVyIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KER1bW15SW5wdXQsIF9leHRlbmRzKHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgaW5uZXJSZWY6IHRoaXMuZ2V0SW5wdXRSZWYsXG4gICAgICAgICAgb25CbHVyOiB0aGlzLm9uSW5wdXRCbHVyLFxuICAgICAgICAgIG9uQ2hhbmdlOiBub29wLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgICBpbnB1dE1vZGU6IFwibm9uZVwiLFxuICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgfSwgYXJpYUF0dHJpYnV0ZXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbnB1dCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGF1dG9DYXBpdGFsaXplOiBcIm5vbmVcIixcbiAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm9mZlwiLFxuICAgICAgICBhdXRvQ29ycmVjdDogXCJvZmZcIixcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRJbnB1dFJlZixcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNIaWRkZW46IGlucHV0SXNIaWRkZW4sXG4gICAgICAgIG9uQmx1cjogdGhpcy5vbklucHV0Qmx1cixcbiAgICAgICAgb25DaGFuZ2U6IHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UsXG4gICAgICAgIG9uRm9jdXM6IHRoaXMub25JbnB1dEZvY3VzLFxuICAgICAgICBzcGVsbENoZWNrOiBcImZhbHNlXCIsXG4gICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCxcbiAgICAgICAgZm9ybTogZm9ybSxcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBpbnB1dFZhbHVlXG4gICAgICB9LCBhcmlhQXR0cmlidXRlcykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJQbGFjZWhvbGRlck9yVmFsdWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyUGxhY2Vob2xkZXJPclZhbHVlKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czIgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgTXVsdGlWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLk11bHRpVmFsdWUsXG4gICAgICAgIE11bHRpVmFsdWVDb250YWluZXIgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICBNdWx0aVZhbHVlTGFiZWwgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlTGFiZWwsXG4gICAgICAgIE11bHRpVmFsdWVSZW1vdmUgPSBfdGhpcyRnZXRDb21wb25lbnRzMi5NdWx0aVZhbHVlUmVtb3ZlLFxuICAgICAgICBTaW5nbGVWYWx1ZSA9IF90aGlzJGdldENvbXBvbmVudHMyLlNpbmdsZVZhbHVlLFxuICAgICAgICBQbGFjZWhvbGRlciA9IF90aGlzJGdldENvbXBvbmVudHMyLlBsYWNlaG9sZGVyO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRwcm9wczkgPSB0aGlzLnByb3BzLFxuICAgICAgICBjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUgPSBfdGhpcyRwcm9wczkuY29udHJvbFNob3VsZFJlbmRlclZhbHVlLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHM5LmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTXVsdGkgPSBfdGhpcyRwcm9wczkuaXNNdWx0aSxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzOS5pbnB1dFZhbHVlLFxuICAgICAgICBwbGFjZWhvbGRlciA9IF90aGlzJHByb3BzOS5wbGFjZWhvbGRlcjtcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTUgPSB0aGlzLnN0YXRlLFxuICAgICAgICBzZWxlY3RWYWx1ZSA9IF90aGlzJHN0YXRlNS5zZWxlY3RWYWx1ZSxcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU1LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU1LmlzRm9jdXNlZDtcbiAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSgpIHx8ICFjb250cm9sU2hvdWxkUmVuZGVyVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWUgPyBudWxsIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGxhY2Vob2xkZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGtleTogXCJwbGFjZWhvbGRlclwiLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0RWxlbWVudElkKCdwbGFjZWhvbGRlcicpXG4gICAgICAgICAgfVxuICAgICAgICB9KSwgcGxhY2Vob2xkZXIpO1xuICAgICAgfVxuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpbmRleCkge1xuICAgICAgICAgIHZhciBpc09wdGlvbkZvY3VzZWQgPSBvcHQgPT09IGZvY3VzZWRWYWx1ZTtcbiAgICAgICAgICB2YXIga2V5ID0gXCJcIi5jb25jYXQoX3RoaXMzLmdldE9wdGlvbkxhYmVsKG9wdCksIFwiLVwiKS5jb25jYXQoX3RoaXMzLmdldE9wdGlvblZhbHVlKG9wdCkpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNdWx0aVZhbHVlLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgQ29udGFpbmVyOiBNdWx0aVZhbHVlQ29udGFpbmVyLFxuICAgICAgICAgICAgICBMYWJlbDogTXVsdGlWYWx1ZUxhYmVsLFxuICAgICAgICAgICAgICBSZW1vdmU6IE11bHRpVmFsdWVSZW1vdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpc0ZvY3VzZWQ6IGlzT3B0aW9uRm9jdXNlZCxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIHJlbW92ZVByb3BzOiB7XG4gICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMy5yZW1vdmVWYWx1ZShvcHQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvblRvdWNoRW5kOiBmdW5jdGlvbiBvblRvdWNoRW5kKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczMucmVtb3ZlVmFsdWUob3B0KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb25Nb3VzZURvd246IGZ1bmN0aW9uIG9uTW91c2VEb3duKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiBvcHRcbiAgICAgICAgICB9KSwgX3RoaXMzLmZvcm1hdE9wdGlvbkxhYmVsKG9wdCwgJ3ZhbHVlJykpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgdmFyIHNpbmdsZVZhbHVlID0gc2VsZWN0VmFsdWVbMF07XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2luZ2xlVmFsdWUsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBkYXRhOiBzaW5nbGVWYWx1ZSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMuZm9ybWF0T3B0aW9uTGFiZWwoc2luZ2xlVmFsdWUsICd2YWx1ZScpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyQ2xlYXJJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSB7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czMgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgQ2xlYXJJbmRpY2F0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzMy5DbGVhckluZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczEwLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTAuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCF0aGlzLmlzQ2xlYXJhYmxlKCkgfHwgIUNsZWFySW5kaWNhdG9yIHx8IGlzRGlzYWJsZWQgfHwgIXRoaXMuaGFzVmFsdWUoKSB8fCBpc0xvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25DbGVhckluZGljYXRvck1vdXNlRG93bixcbiAgICAgICAgb25Ub3VjaEVuZDogdGhpcy5vbkNsZWFySW5kaWNhdG9yVG91Y2hFbmQsXG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDbGVhckluZGljYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckxvYWRpbmdJbmRpY2F0b3JcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTG9hZGluZ0luZGljYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNCA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBMb2FkaW5nSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czQuTG9hZGluZ0luZGljYXRvcjtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMSA9IHRoaXMucHJvcHMsXG4gICAgICAgIGlzRGlzYWJsZWQgPSBfdGhpcyRwcm9wczExLmlzRGlzYWJsZWQsXG4gICAgICAgIGlzTG9hZGluZyA9IF90aGlzJHByb3BzMTEuaXNMb2FkaW5nO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgaWYgKCFMb2FkaW5nSW5kaWNhdG9yIHx8ICFpc0xvYWRpbmcpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGlubmVyUHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWhpZGRlbic6ICd0cnVlJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckluZGljYXRvclNlcGFyYXRvcigpIHtcbiAgICAgIHZhciBfdGhpcyRnZXRDb21wb25lbnRzNSA9IHRoaXMuZ2V0Q29tcG9uZW50cygpLFxuICAgICAgICBEcm9wZG93bkluZGljYXRvciA9IF90aGlzJGdldENvbXBvbmVudHM1LkRyb3Bkb3duSW5kaWNhdG9yLFxuICAgICAgICBJbmRpY2F0b3JTZXBhcmF0b3IgPSBfdGhpcyRnZXRDb21wb25lbnRzNS5JbmRpY2F0b3JTZXBhcmF0b3I7XG5cbiAgICAgIC8vIHNlcGFyYXRvciBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCB0aGUgZHJvcGRvd24gaW5kaWNhdG9yXG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yIHx8ICFJbmRpY2F0b3JTZXBhcmF0b3IpIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBpc0Rpc2FibGVkID0gdGhpcy5wcm9wcy5pc0Rpc2FibGVkO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEluZGljYXRvclNlcGFyYXRvciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckRyb3Bkb3duSW5kaWNhdG9yXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckRyb3Bkb3duSW5kaWNhdG9yKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM2ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIERyb3Bkb3duSW5kaWNhdG9yID0gX3RoaXMkZ2V0Q29tcG9uZW50czYuRHJvcGRvd25JbmRpY2F0b3I7XG4gICAgICBpZiAoIURyb3Bkb3duSW5kaWNhdG9yKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBjb21tb25Qcm9wcyA9IHRoaXMuY29tbW9uUHJvcHM7XG4gICAgICB2YXIgaXNEaXNhYmxlZCA9IHRoaXMucHJvcHMuaXNEaXNhYmxlZDtcbiAgICAgIHZhciBpc0ZvY3VzZWQgPSB0aGlzLnN0YXRlLmlzRm9jdXNlZDtcbiAgICAgIHZhciBpbm5lclByb3BzID0ge1xuICAgICAgICBvbk1vdXNlRG93bjogdGhpcy5vbkRyb3Bkb3duSW5kaWNhdG9yTW91c2VEb3duLFxuICAgICAgICBvblRvdWNoRW5kOiB0aGlzLm9uRHJvcGRvd25JbmRpY2F0b3JUb3VjaEVuZCxcbiAgICAgICAgJ2FyaWEtaGlkZGVuJzogJ3RydWUnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KERyb3Bkb3duSW5kaWNhdG9yLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaW5uZXJQcm9wczogaW5uZXJQcm9wcyxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWRcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTWVudVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJNZW51KCkge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG4gICAgICB2YXIgX3RoaXMkZ2V0Q29tcG9uZW50czcgPSB0aGlzLmdldENvbXBvbmVudHMoKSxcbiAgICAgICAgR3JvdXAgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Hcm91cCxcbiAgICAgICAgR3JvdXBIZWFkaW5nID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuR3JvdXBIZWFkaW5nLFxuICAgICAgICBNZW51ID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTWVudSxcbiAgICAgICAgTWVudUxpc3QgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5NZW51TGlzdCxcbiAgICAgICAgTWVudVBvcnRhbCA9IF90aGlzJGdldENvbXBvbmVudHM3Lk1lbnVQb3J0YWwsXG4gICAgICAgIExvYWRpbmdNZXNzYWdlID0gX3RoaXMkZ2V0Q29tcG9uZW50czcuTG9hZGluZ01lc3NhZ2UsXG4gICAgICAgIE5vT3B0aW9uc01lc3NhZ2UgPSBfdGhpcyRnZXRDb21wb25lbnRzNy5Ob09wdGlvbnNNZXNzYWdlLFxuICAgICAgICBPcHRpb24gPSBfdGhpcyRnZXRDb21wb25lbnRzNy5PcHRpb247XG4gICAgICB2YXIgY29tbW9uUHJvcHMgPSB0aGlzLmNvbW1vblByb3BzO1xuICAgICAgdmFyIGZvY3VzZWRPcHRpb24gPSB0aGlzLnN0YXRlLmZvY3VzZWRPcHRpb247XG4gICAgICB2YXIgX3RoaXMkcHJvcHMxMiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNhcHR1cmVNZW51U2Nyb2xsID0gX3RoaXMkcHJvcHMxMi5jYXB0dXJlTWVudVNjcm9sbCxcbiAgICAgICAgaW5wdXRWYWx1ZSA9IF90aGlzJHByb3BzMTIuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNMb2FkaW5nID0gX3RoaXMkcHJvcHMxMi5pc0xvYWRpbmcsXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlID0gX3RoaXMkcHJvcHMxMi5sb2FkaW5nTWVzc2FnZSxcbiAgICAgICAgbWluTWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWluTWVudUhlaWdodCxcbiAgICAgICAgbWF4TWVudUhlaWdodCA9IF90aGlzJHByb3BzMTIubWF4TWVudUhlaWdodCxcbiAgICAgICAgbWVudUlzT3BlbiA9IF90aGlzJHByb3BzMTIubWVudUlzT3BlbixcbiAgICAgICAgbWVudVBsYWNlbWVudCA9IF90aGlzJHByb3BzMTIubWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uID0gX3RoaXMkcHJvcHMxMi5tZW51UG9zaXRpb24sXG4gICAgICAgIG1lbnVQb3J0YWxUYXJnZXQgPSBfdGhpcyRwcm9wczEyLm1lbnVQb3J0YWxUYXJnZXQsXG4gICAgICAgIG1lbnVTaG91bGRCbG9ja1Njcm9sbCA9IF90aGlzJHByb3BzMTIubWVudVNob3VsZEJsb2NrU2Nyb2xsLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBfdGhpcyRwcm9wczEyLm1lbnVTaG91bGRTY3JvbGxJbnRvVmlldyxcbiAgICAgICAgbm9PcHRpb25zTWVzc2FnZSA9IF90aGlzJHByb3BzMTIubm9PcHRpb25zTWVzc2FnZSxcbiAgICAgICAgb25NZW51U2Nyb2xsVG9Ub3AgPSBfdGhpcyRwcm9wczEyLm9uTWVudVNjcm9sbFRvVG9wLFxuICAgICAgICBvbk1lbnVTY3JvbGxUb0JvdHRvbSA9IF90aGlzJHByb3BzMTIub25NZW51U2Nyb2xsVG9Cb3R0b207XG4gICAgICBpZiAoIW1lbnVJc09wZW4pIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBUT0RPOiBJbnRlcm5hbCBPcHRpb24gVHlwZSBoZXJlXG4gICAgICB2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKHByb3BzLCBpZCkge1xuICAgICAgICB2YXIgdHlwZSA9IHByb3BzLnR5cGUsXG4gICAgICAgICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICAgICAgaXNEaXNhYmxlZCA9IHByb3BzLmlzRGlzYWJsZWQsXG4gICAgICAgICAgaXNTZWxlY3RlZCA9IHByb3BzLmlzU2VsZWN0ZWQsXG4gICAgICAgICAgbGFiZWwgPSBwcm9wcy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuICAgICAgICB2YXIgaXNGb2N1c2VkID0gZm9jdXNlZE9wdGlvbiA9PT0gZGF0YTtcbiAgICAgICAgdmFyIG9uSG92ZXIgPSBpc0Rpc2FibGVkID8gdW5kZWZpbmVkIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczQub25PcHRpb25Ib3ZlcihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9uU2VsZWN0ID0gaXNEaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXM0LnNlbGVjdE9wdGlvbihkYXRhKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG9wdGlvbklkID0gXCJcIi5jb25jYXQoX3RoaXM0LmdldEVsZW1lbnRJZCgnb3B0aW9uJyksIFwiLVwiKS5jb25jYXQoaWQpO1xuICAgICAgICB2YXIgaW5uZXJQcm9wcyA9IHtcbiAgICAgICAgICBpZDogb3B0aW9uSWQsXG4gICAgICAgICAgb25DbGljazogb25TZWxlY3QsXG4gICAgICAgICAgb25Nb3VzZU1vdmU6IG9uSG92ZXIsXG4gICAgICAgICAgb25Nb3VzZU92ZXI6IG9uSG92ZXIsXG4gICAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogX3RoaXM0LmlzQXBwbGVEZXZpY2UgPyB1bmRlZmluZWQgOiBpc1NlbGVjdGVkIC8vIGlzIG5vdCBzdXBwb3J0ZWQgb24gQXBwbGUgZGV2aWNlc1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChPcHRpb24sIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICAgIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsXG4gICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICAgIGlzU2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAga2V5OiBvcHRpb25JZCxcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgICAgaW5uZXJSZWY6IGlzRm9jdXNlZCA/IF90aGlzNC5nZXRGb2N1c2VkT3B0aW9uUmVmIDogdW5kZWZpbmVkXG4gICAgICAgIH0pLCBfdGhpczQuZm9ybWF0T3B0aW9uTGFiZWwocHJvcHMuZGF0YSwgJ21lbnUnKSk7XG4gICAgICB9O1xuICAgICAgdmFyIG1lbnVVSTtcbiAgICAgIGlmICh0aGlzLmhhc09wdGlvbnMoKSkge1xuICAgICAgICBtZW51VUkgPSB0aGlzLmdldENhdGVnb3JpemVkT3B0aW9ucygpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgICAgIHZhciBfZGF0YSA9IGl0ZW0uZGF0YSxcbiAgICAgICAgICAgICAgb3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyxcbiAgICAgICAgICAgICAgZ3JvdXBJbmRleCA9IGl0ZW0uaW5kZXg7XG4gICAgICAgICAgICB2YXIgZ3JvdXBJZCA9IFwiXCIuY29uY2F0KF90aGlzNC5nZXRFbGVtZW50SWQoJ2dyb3VwJyksIFwiLVwiKS5jb25jYXQoZ3JvdXBJbmRleCk7XG4gICAgICAgICAgICB2YXIgaGVhZGluZ0lkID0gXCJcIi5jb25jYXQoZ3JvdXBJZCwgXCItaGVhZGluZ1wiKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChHcm91cCwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgICAgICAgIGtleTogZ3JvdXBJZCxcbiAgICAgICAgICAgICAgZGF0YTogX2RhdGEsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICAgIEhlYWRpbmc6IEdyb3VwSGVhZGluZyxcbiAgICAgICAgICAgICAgaGVhZGluZ1Byb3BzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IGhlYWRpbmdJZCxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGFcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbGFiZWw6IF90aGlzNC5mb3JtYXRHcm91cExhYmVsKGl0ZW0uZGF0YSlcbiAgICAgICAgICAgIH0pLCBpdGVtLm9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihvcHRpb24sIFwiXCIuY29uY2F0KGdyb3VwSW5kZXgsIFwiLVwiKS5jb25jYXQob3B0aW9uLmluZGV4KSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdvcHRpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyKGl0ZW0sIFwiXCIuY29uY2F0KGl0ZW0uaW5kZXgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChpc0xvYWRpbmcpIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBsb2FkaW5nTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1lc3NhZ2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBtZW51VUkgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChMb2FkaW5nTWVzc2FnZSwgY29tbW9uUHJvcHMsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIF9tZXNzYWdlID0gbm9PcHRpb25zTWVzc2FnZSh7XG4gICAgICAgICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKF9tZXNzYWdlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgbWVudVVJID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTm9PcHRpb25zTWVzc2FnZSwgY29tbW9uUHJvcHMsIF9tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHZhciBtZW51UGxhY2VtZW50UHJvcHMgPSB7XG4gICAgICAgIG1pbk1lbnVIZWlnaHQ6IG1pbk1lbnVIZWlnaHQsXG4gICAgICAgIG1heE1lbnVIZWlnaHQ6IG1heE1lbnVIZWlnaHQsXG4gICAgICAgIG1lbnVQbGFjZW1lbnQ6IG1lbnVQbGFjZW1lbnQsXG4gICAgICAgIG1lbnVQb3NpdGlvbjogbWVudVBvc2l0aW9uLFxuICAgICAgICBtZW51U2hvdWxkU2Nyb2xsSW50b1ZpZXc6IG1lbnVTaG91bGRTY3JvbGxJbnRvVmlld1xuICAgICAgfTtcbiAgICAgIHZhciBtZW51RWxlbWVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQbGFjZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywgbWVudVBsYWNlbWVudFByb3BzKSwgZnVuY3Rpb24gKF9yZWY0KSB7XG4gICAgICAgIHZhciByZWYgPSBfcmVmNC5yZWYsXG4gICAgICAgICAgX3JlZjQkcGxhY2VyUHJvcHMgPSBfcmVmNC5wbGFjZXJQcm9wcyxcbiAgICAgICAgICBwbGFjZW1lbnQgPSBfcmVmNCRwbGFjZXJQcm9wcy5wbGFjZW1lbnQsXG4gICAgICAgICAgbWF4SGVpZ2h0ID0gX3JlZjQkcGxhY2VyUHJvcHMubWF4SGVpZ2h0O1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTWVudSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCBtZW51UGxhY2VtZW50UHJvcHMsIHtcbiAgICAgICAgICBpbm5lclJlZjogcmVmLFxuICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgIG9uTW91c2VEb3duOiBfdGhpczQub25NZW51TW91c2VEb3duLFxuICAgICAgICAgICAgb25Nb3VzZU1vdmU6IF90aGlzNC5vbk1lbnVNb3VzZU1vdmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxNYW5hZ2VyLCB7XG4gICAgICAgICAgY2FwdHVyZUVuYWJsZWQ6IGNhcHR1cmVNZW51U2Nyb2xsLFxuICAgICAgICAgIG9uVG9wQXJyaXZlOiBvbk1lbnVTY3JvbGxUb1RvcCxcbiAgICAgICAgICBvbkJvdHRvbUFycml2ZTogb25NZW51U2Nyb2xsVG9Cb3R0b20sXG4gICAgICAgICAgbG9ja0VuYWJsZWQ6IG1lbnVTaG91bGRCbG9ja1Njcm9sbFxuICAgICAgICB9LCBmdW5jdGlvbiAoc2Nyb2xsVGFyZ2V0UmVmKSB7XG4gICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVMaXN0LCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGlubmVyUmVmOiBmdW5jdGlvbiBpbm5lclJlZihpbnN0YW5jZSkge1xuICAgICAgICAgICAgICBfdGhpczQuZ2V0TWVudUxpc3RSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICBzY3JvbGxUYXJnZXRSZWYoaW5zdGFuY2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlubmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgcm9sZTogJ2xpc3Rib3gnLFxuICAgICAgICAgICAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiBjb21tb25Qcm9wcy5pc011bHRpLFxuICAgICAgICAgICAgICBpZDogX3RoaXM0LmdldEVsZW1lbnRJZCgnbGlzdGJveCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBpc0xvYWRpbmcsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IG1heEhlaWdodCxcbiAgICAgICAgICAgIGZvY3VzZWRPcHRpb246IGZvY3VzZWRPcHRpb25cbiAgICAgICAgICB9KSwgbWVudVVJKTtcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIHBvc2l0aW9uaW5nIGJlaGF2aW91ciBpcyBhbG1vc3QgaWRlbnRpY2FsIGZvciBwb3J0YWxsZWQgYW5kIGZpeGVkLFxuICAgICAgLy8gc28gd2UgdXNlIHRoZSBzYW1lIGNvbXBvbmVudC4gdGhlIGFjdHVhbCBwb3J0YWxsaW5nIGxvZ2ljIGlzIGZvcmtlZFxuICAgICAgLy8gd2l0aGluIHRoZSBjb21wb25lbnQgYmFzZWQgb24gYG1lbnVQb3NpdGlvbmBcbiAgICAgIHJldHVybiBtZW51UG9ydGFsVGFyZ2V0IHx8IG1lbnVQb3NpdGlvbiA9PT0gJ2ZpeGVkJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbnVQb3J0YWwsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBhcHBlbmRUbzogbWVudVBvcnRhbFRhcmdldCxcbiAgICAgICAgY29udHJvbEVsZW1lbnQ6IHRoaXMuY29udHJvbFJlZixcbiAgICAgICAgbWVudVBsYWNlbWVudDogbWVudVBsYWNlbWVudCxcbiAgICAgICAgbWVudVBvc2l0aW9uOiBtZW51UG9zaXRpb25cbiAgICAgIH0pLCBtZW51RWxlbWVudCkgOiBtZW51RWxlbWVudDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyRm9ybUZpZWxkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckZvcm1GaWVsZCgpIHtcbiAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTMgPSB0aGlzLnByb3BzLFxuICAgICAgICBkZWxpbWl0ZXIgPSBfdGhpcyRwcm9wczEzLmRlbGltaXRlcixcbiAgICAgICAgaXNEaXNhYmxlZCA9IF90aGlzJHByb3BzMTMuaXNEaXNhYmxlZCxcbiAgICAgICAgaXNNdWx0aSA9IF90aGlzJHByb3BzMTMuaXNNdWx0aSxcbiAgICAgICAgbmFtZSA9IF90aGlzJHByb3BzMTMubmFtZSxcbiAgICAgICAgcmVxdWlyZWQgPSBfdGhpcyRwcm9wczEzLnJlcXVpcmVkO1xuICAgICAgdmFyIHNlbGVjdFZhbHVlID0gdGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZTtcbiAgICAgIGlmIChyZXF1aXJlZCAmJiAhdGhpcy5oYXNWYWx1ZSgpICYmICFpc0Rpc2FibGVkKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXF1aXJlZElucHV0JDEsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIG9uRm9jdXM6IHRoaXMub25WYWx1ZUlucHV0Rm9jdXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoIW5hbWUgfHwgaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgaWYgKGlzTXVsdGkpIHtcbiAgICAgICAgaWYgKGRlbGltaXRlcikge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0KSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXM1LmdldE9wdGlvblZhbHVlKG9wdCk7XG4gICAgICAgICAgfSkuam9pbihkZWxpbWl0ZXIpO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGlucHV0ID0gc2VsZWN0VmFsdWUubGVuZ3RoID4gMCA/IHNlbGVjdFZhbHVlLm1hcChmdW5jdGlvbiAob3B0LCBpKSB7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgIGtleTogXCJpLVwiLmNvbmNhdChpKSxcbiAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgdmFsdWU6IF90aGlzNS5nZXRPcHRpb25WYWx1ZShvcHQpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICB2YWx1ZTogXCJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBpbnB1dCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdmFsdWUgPSBzZWxlY3RWYWx1ZVswXSA/IHRoaXMuZ2V0T3B0aW9uVmFsdWUoc2VsZWN0VmFsdWVbMF0pIDogJyc7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgdmFsdWU6IF92YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTGl2ZVJlZ2lvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMaXZlUmVnaW9uKCkge1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcztcbiAgICAgIHZhciBfdGhpcyRzdGF0ZTYgPSB0aGlzLnN0YXRlLFxuICAgICAgICBhcmlhU2VsZWN0aW9uID0gX3RoaXMkc3RhdGU2LmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGZvY3VzZWRPcHRpb24gPSBfdGhpcyRzdGF0ZTYuZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlID0gX3RoaXMkc3RhdGU2LmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgaXNGb2N1c2VkID0gX3RoaXMkc3RhdGU2LmlzRm9jdXNlZCxcbiAgICAgICAgc2VsZWN0VmFsdWUgPSBfdGhpcyRzdGF0ZTYuc2VsZWN0VmFsdWU7XG4gICAgICB2YXIgZm9jdXNhYmxlT3B0aW9ucyA9IHRoaXMuZ2V0Rm9jdXNhYmxlT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KExpdmVSZWdpb24kMSwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlkOiB0aGlzLmdldEVsZW1lbnRJZCgnbGl2ZS1yZWdpb24nKSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbjogYXJpYVNlbGVjdGlvbixcbiAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkLFxuICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgIGZvY3VzYWJsZU9wdGlvbnM6IGZvY3VzYWJsZU9wdGlvbnMsXG4gICAgICAgIGlzQXBwbGVEZXZpY2U6IHRoaXMuaXNBcHBsZURldmljZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzJGdldENvbXBvbmVudHM4ID0gdGhpcy5nZXRDb21wb25lbnRzKCksXG4gICAgICAgIENvbnRyb2wgPSBfdGhpcyRnZXRDb21wb25lbnRzOC5Db250cm9sLFxuICAgICAgICBJbmRpY2F0b3JzQ29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguSW5kaWNhdG9yc0NvbnRhaW5lcixcbiAgICAgICAgU2VsZWN0Q29udGFpbmVyID0gX3RoaXMkZ2V0Q29tcG9uZW50czguU2VsZWN0Q29udGFpbmVyLFxuICAgICAgICBWYWx1ZUNvbnRhaW5lciA9IF90aGlzJGdldENvbXBvbmVudHM4LlZhbHVlQ29udGFpbmVyO1xuICAgICAgdmFyIF90aGlzJHByb3BzMTQgPSB0aGlzLnByb3BzLFxuICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczE0LmNsYXNzTmFtZSxcbiAgICAgICAgaWQgPSBfdGhpcyRwcm9wczE0LmlkLFxuICAgICAgICBpc0Rpc2FibGVkID0gX3RoaXMkcHJvcHMxNC5pc0Rpc2FibGVkLFxuICAgICAgICBtZW51SXNPcGVuID0gX3RoaXMkcHJvcHMxNC5tZW51SXNPcGVuO1xuICAgICAgdmFyIGlzRm9jdXNlZCA9IHRoaXMuc3RhdGUuaXNGb2N1c2VkO1xuICAgICAgdmFyIGNvbW1vblByb3BzID0gdGhpcy5jb21tb25Qcm9wcyA9IHRoaXMuZ2V0Q29tbW9uUHJvcHMoKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3RDb250YWluZXIsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgaW5uZXJQcm9wczoge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBvbktleURvd246IHRoaXMub25LZXlEb3duXG4gICAgICAgIH0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgIGlzRm9jdXNlZDogaXNGb2N1c2VkXG4gICAgICB9KSwgdGhpcy5yZW5kZXJMaXZlUmVnaW9uKCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbnRyb2wsIF9leHRlbmRzKHt9LCBjb21tb25Qcm9wcywge1xuICAgICAgICBpbm5lclJlZjogdGhpcy5nZXRDb250cm9sUmVmLFxuICAgICAgICBpbm5lclByb3BzOiB7XG4gICAgICAgICAgb25Nb3VzZURvd246IHRoaXMub25Db250cm9sTW91c2VEb3duLFxuICAgICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMub25Db250cm9sVG91Y2hFbmRcbiAgICAgICAgfSxcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgaXNGb2N1c2VkOiBpc0ZvY3VzZWQsXG4gICAgICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5cbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChWYWx1ZUNvbnRhaW5lciwgX2V4dGVuZHMoe30sIGNvbW1vblByb3BzLCB7XG4gICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgICAgIH0pLCB0aGlzLnJlbmRlclBsYWNlaG9sZGVyT3JWYWx1ZSgpLCB0aGlzLnJlbmRlcklucHV0KCkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChJbmRpY2F0b3JzQ29udGFpbmVyLCBfZXh0ZW5kcyh7fSwgY29tbW9uUHJvcHMsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgfSksIHRoaXMucmVuZGVyQ2xlYXJJbmRpY2F0b3IoKSwgdGhpcy5yZW5kZXJMb2FkaW5nSW5kaWNhdG9yKCksIHRoaXMucmVuZGVySW5kaWNhdG9yU2VwYXJhdG9yKCksIHRoaXMucmVuZGVyRHJvcGRvd25JbmRpY2F0b3IoKSkpLCB0aGlzLnJlbmRlck1lbnUoKSwgdGhpcy5yZW5kZXJGb3JtRmllbGQoKSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIHZhciBwcmV2UHJvcHMgPSBzdGF0ZS5wcmV2UHJvcHMsXG4gICAgICAgIGNsZWFyRm9jdXNWYWx1ZU9uVXBkYXRlID0gc3RhdGUuY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSA9IHN0YXRlLmlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZSxcbiAgICAgICAgYXJpYVNlbGVjdGlvbiA9IHN0YXRlLmFyaWFTZWxlY3Rpb24sXG4gICAgICAgIGlzRm9jdXNlZCA9IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgICAgcHJldldhc0ZvY3VzZWQgPSBzdGF0ZS5wcmV2V2FzRm9jdXNlZCxcbiAgICAgICAgaW5zdGFuY2VQcmVmaXggPSBzdGF0ZS5pbnN0YW5jZVByZWZpeDtcbiAgICAgIHZhciBvcHRpb25zID0gcHJvcHMub3B0aW9ucyxcbiAgICAgICAgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICAgICAgbWVudUlzT3BlbiA9IHByb3BzLm1lbnVJc09wZW4sXG4gICAgICAgIGlucHV0VmFsdWUgPSBwcm9wcy5pbnB1dFZhbHVlLFxuICAgICAgICBpc011bHRpID0gcHJvcHMuaXNNdWx0aTtcbiAgICAgIHZhciBzZWxlY3RWYWx1ZSA9IGNsZWFuVmFsdWUodmFsdWUpO1xuICAgICAgdmFyIG5ld01lbnVPcHRpb25zU3RhdGUgPSB7fTtcbiAgICAgIGlmIChwcmV2UHJvcHMgJiYgKHZhbHVlICE9PSBwcmV2UHJvcHMudmFsdWUgfHwgb3B0aW9ucyAhPT0gcHJldlByb3BzLm9wdGlvbnMgfHwgbWVudUlzT3BlbiAhPT0gcHJldlByb3BzLm1lbnVJc09wZW4gfHwgaW5wdXRWYWx1ZSAhPT0gcHJldlByb3BzLmlucHV0VmFsdWUpKSB7XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zID0gbWVudUlzT3BlbiA/IGJ1aWxkRm9jdXNhYmxlT3B0aW9ucyhwcm9wcywgc2VsZWN0VmFsdWUpIDogW107XG4gICAgICAgIHZhciBmb2N1c2FibGVPcHRpb25zV2l0aElkcyA9IG1lbnVJc09wZW4gPyBidWlsZEZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzKGJ1aWxkQ2F0ZWdvcml6ZWRPcHRpb25zKHByb3BzLCBzZWxlY3RWYWx1ZSksIFwiXCIuY29uY2F0KGluc3RhbmNlUHJlZml4LCBcIi1vcHRpb25cIikpIDogW107XG4gICAgICAgIHZhciBmb2N1c2VkVmFsdWUgPSBjbGVhckZvY3VzVmFsdWVPblVwZGF0ZSA/IGdldE5leHRGb2N1c2VkVmFsdWUoc3RhdGUsIHNlbGVjdFZhbHVlKSA6IG51bGw7XG4gICAgICAgIHZhciBmb2N1c2VkT3B0aW9uID0gZ2V0TmV4dEZvY3VzZWRPcHRpb24oc3RhdGUsIGZvY3VzYWJsZU9wdGlvbnMpO1xuICAgICAgICB2YXIgZm9jdXNlZE9wdGlvbklkID0gZ2V0Rm9jdXNlZE9wdGlvbklkKGZvY3VzYWJsZU9wdGlvbnNXaXRoSWRzLCBmb2N1c2VkT3B0aW9uKTtcbiAgICAgICAgbmV3TWVudU9wdGlvbnNTdGF0ZSA9IHtcbiAgICAgICAgICBzZWxlY3RWYWx1ZTogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgZm9jdXNlZE9wdGlvbjogZm9jdXNlZE9wdGlvbixcbiAgICAgICAgICBmb2N1c2VkT3B0aW9uSWQ6IGZvY3VzZWRPcHRpb25JZCxcbiAgICAgICAgICBmb2N1c2FibGVPcHRpb25zV2l0aElkczogZm9jdXNhYmxlT3B0aW9uc1dpdGhJZHMsXG4gICAgICAgICAgZm9jdXNlZFZhbHVlOiBmb2N1c2VkVmFsdWUsXG4gICAgICAgICAgY2xlYXJGb2N1c1ZhbHVlT25VcGRhdGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBzb21lIHVwZGF0ZXMgc2hvdWxkIHRvZ2dsZSB0aGUgc3RhdGUgb2YgdGhlIGlucHV0IHZpc2liaWxpdHlcbiAgICAgIHZhciBuZXdJbnB1dElzSGlkZGVuU3RhdGUgPSBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUgIT0gbnVsbCAmJiBwcm9wcyAhPT0gcHJldlByb3BzID8ge1xuICAgICAgICBpbnB1dElzSGlkZGVuOiBpbnB1dElzSGlkZGVuQWZ0ZXJVcGRhdGUsXG4gICAgICAgIGlucHV0SXNIaWRkZW5BZnRlclVwZGF0ZTogdW5kZWZpbmVkXG4gICAgICB9IDoge307XG4gICAgICB2YXIgbmV3QXJpYVNlbGVjdGlvbiA9IGFyaWFTZWxlY3Rpb247XG4gICAgICB2YXIgaGFzS2VwdEZvY3VzID0gaXNGb2N1c2VkICYmIHByZXZXYXNGb2N1c2VkO1xuICAgICAgaWYgKGlzRm9jdXNlZCAmJiAhaGFzS2VwdEZvY3VzKSB7XG4gICAgICAgIC8vIElmIGB2YWx1ZWAgb3IgYGRlZmF1bHRWYWx1ZWAgcHJvcHMgYXJlIG5vdCBlbXB0eSB0aGVuIGFubm91bmNlIHRoZW1cbiAgICAgICAgLy8gd2hlbiB0aGUgU2VsZWN0IGlzIGluaXRpYWxseSBmb2N1c2VkXG4gICAgICAgIG5ld0FyaWFTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlVGVybmFyeShpc011bHRpLCBzZWxlY3RWYWx1ZSwgc2VsZWN0VmFsdWVbMF0gfHwgbnVsbCksXG4gICAgICAgICAgb3B0aW9uczogc2VsZWN0VmFsdWUsXG4gICAgICAgICAgYWN0aW9uOiAnaW5pdGlhbC1pbnB1dC1mb2N1cydcbiAgICAgICAgfTtcbiAgICAgICAgaGFzS2VwdEZvY3VzID0gIXByZXZXYXNGb2N1c2VkO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgJ2luaXRpYWwtaW5wdXQtZm9jdXMnIGFjdGlvbiBoYXMgYmVlbiBzZXQgYWxyZWFkeVxuICAgICAgLy8gdGhlbiByZXNldCB0aGUgYXJpYVNlbGVjdGlvbiB0byBudWxsXG4gICAgICBpZiAoKGFyaWFTZWxlY3Rpb24gPT09IG51bGwgfHwgYXJpYVNlbGVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYXJpYVNlbGVjdGlvbi5hY3Rpb24pID09PSAnaW5pdGlhbC1pbnB1dC1mb2N1cycpIHtcbiAgICAgICAgbmV3QXJpYVNlbGVjdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG5ld01lbnVPcHRpb25zU3RhdGUpLCBuZXdJbnB1dElzSGlkZGVuU3RhdGUpLCB7fSwge1xuICAgICAgICBwcmV2UHJvcHM6IHByb3BzLFxuICAgICAgICBhcmlhU2VsZWN0aW9uOiBuZXdBcmlhU2VsZWN0aW9uLFxuICAgICAgICBwcmV2V2FzRm9jdXNlZDogaGFzS2VwdEZvY3VzXG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFNlbGVjdDtcbn0oQ29tcG9uZW50KTtcblNlbGVjdC5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCB7IFNlbGVjdCBhcyBTLCBkZWZhdWx0UHJvcHMgYXMgYSwgZ2V0T3B0aW9uTGFiZWwkMSBhcyBiLCBjcmVhdGVGaWx0ZXIgYXMgYywgZGVmYXVsdFRoZW1lIGFzIGQsIGdldE9wdGlvblZhbHVlJDEgYXMgZywgbWVyZ2VTdHlsZXMgYXMgbSB9O1xuIiwiaW1wb3J0IHsgdSBhcyB1c2VTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMnO1xuZXhwb3J0IHsgdSBhcyB1c2VTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3VzZVN0YXRlTWFuYWdlci03ZTFlODQ4OS5lc20uanMnO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFMgYXMgU2VsZWN0IH0gZnJvbSAnLi9TZWxlY3QtYWFiMDI3ZjMuZXNtLmpzJztcbmV4cG9ydCB7IGMgYXMgY3JlYXRlRmlsdGVyLCBkIGFzIGRlZmF1bHRUaGVtZSwgbSBhcyBtZXJnZVN0eWxlcyB9IGZyb20gJy4vU2VsZWN0LWFhYjAyN2YzLmVzbS5qcyc7XG5pbXBvcnQgeyBDYWNoZVByb3ZpZGVyIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IGNyZWF0ZUNhY2hlIGZyb20gJ0BlbW90aW9uL2NhY2hlJztcbmV4cG9ydCB7IGMgYXMgY29tcG9uZW50cyB9IGZyb20gJy4vaW5kZXgtNjQxZWU1YjguZXNtLmpzJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5JztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlU3VwZXInO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5JztcbmltcG9ydCAnbWVtb2l6ZS1vbmUnO1xuaW1wb3J0ICdAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZic7XG5pbXBvcnQgJ0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdGFnZ2VkVGVtcGxhdGVMaXRlcmFsJztcbmltcG9ydCAnQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eSc7XG5pbXBvcnQgJ3JlYWN0LWRvbSc7XG5pbXBvcnQgJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0ICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIFN0YXRlTWFuYWdlZFNlbGVjdCA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBiYXNlU2VsZWN0UHJvcHMgPSB1c2VTdGF0ZU1hbmFnZXIocHJvcHMpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2VsZWN0LCBfZXh0ZW5kcyh7XG4gICAgcmVmOiByZWZcbiAgfSwgYmFzZVNlbGVjdFByb3BzKSk7XG59KTtcbnZhciBTdGF0ZU1hbmFnZWRTZWxlY3QkMSA9IFN0YXRlTWFuYWdlZFNlbGVjdDtcblxudmFyIE5vbmNlUHJvdmlkZXIgPSAoZnVuY3Rpb24gKF9yZWYpIHtcbiAgdmFyIG5vbmNlID0gX3JlZi5ub25jZSxcbiAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgY2FjaGVLZXkgPSBfcmVmLmNhY2hlS2V5O1xuICB2YXIgZW1vdGlvbkNhY2hlID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNhY2hlKHtcbiAgICAgIGtleTogY2FjaGVLZXksXG4gICAgICBub25jZTogbm9uY2VcbiAgICB9KTtcbiAgfSwgW2NhY2hlS2V5LCBub25jZV0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FjaGVQcm92aWRlciwge1xuICAgIHZhbHVlOiBlbW90aW9uQ2FjaGVcbiAgfSwgY2hpbGRyZW4pO1xufSk7XG5cbmV4cG9ydCB7IE5vbmNlUHJvdmlkZXIsIFN0YXRlTWFuYWdlZFNlbGVjdCQxIGFzIGRlZmF1bHQgfTtcbiIsIi8vIHNyYy9pbmRleC50c1xuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG52YXIgRU1QVFlfVkFMVUUgPSBTeW1ib2woXCJ1c2VMYXp5UmVmIGVtcHR5IHZhbHVlXCIpO1xudmFyIHVzZUxhenlSZWYgPSAoaW5pdCkgPT4ge1xuICBjb25zdCByZXN1bHRSZWYgPSB1c2VSZWYoRU1QVFlfVkFMVUUpO1xuICBpZiAocmVzdWx0UmVmLmN1cnJlbnQgPT09IEVNUFRZX1ZBTFVFKSB7XG4gICAgcmVzdWx0UmVmLmN1cnJlbnQgPSBpbml0KCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFJlZjtcbn07XG5leHBvcnQge1xuICBFTVBUWV9WQUxVRSxcbiAgdXNlTGF6eVJlZlxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiB1c2VJc01vdW50ZWRSZWYoKSB7XHJcbiAgICB2YXIgaXNNb3VudGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfTtcclxuICAgIH0sIFtdKTtcclxuICAgIHJldHVybiBpc01vdW50ZWRSZWY7XHJcbn1cblxuZXhwb3J0IHsgdXNlSXNNb3VudGVkUmVmIGFzIGRlZmF1bHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1pcy1tb3VudGVkLXJlZi5lcy5qcy5tYXBcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCBmcm9tICd1c2UtaXNvbW9ycGhpYy1sYXlvdXQtZWZmZWN0JztcblxudmFyIHVzZUxhdGVzdCA9IGZ1bmN0aW9uIHVzZUxhdGVzdCh2YWx1ZSkge1xuICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKHZhbHVlKTtcbiAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfSk7XG4gIHJldHVybiByZWY7XG59O1xuXG5leHBvcnQgeyB1c2VMYXRlc3QgYXMgZGVmYXVsdCB9O1xuIiwiLy8gc3JjL29wdGlvbl9yZXN1bHQudHNcbmZ1bmN0aW9uIE9rKHJlc3VsdCkge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGlzT2s6ICgpID0+IHRydWUsXG4gICAgaXNPa0FuZDogKGZuKSA9PiBmbihyZXN1bHQpLFxuICAgIGlzRXJyOiAoKSA9PiBmYWxzZSxcbiAgICBpc0VyckFuZDogKCkgPT4gZmFsc2UsXG4gICAgb2s6ICgpID0+IFNvbWUocmVzdWx0KSxcbiAgICBlcnI6ICgpID0+IE5vbmUoKSxcbiAgICBtYXA6IChmbikgPT4gT2soZm4ocmVzdWx0KSksXG4gICAgbWFwT3I6IChfLCBmbikgPT4gZm4ocmVzdWx0KSxcbiAgICBtYXBPckVsc2U6IChfLCBmbikgPT4gZm4ocmVzdWx0KSxcbiAgICBtYXBFcnI6ICgpID0+IE9rKHJlc3VsdCksXG4gICAgZXhwZWN0OiAoKSA9PiByZXN1bHQsXG4gICAgZXhwZWN0RXJyOiAobXNnKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICB9LFxuICAgIHVud3JhcDogKCkgPT4gcmVzdWx0LFxuICAgIHVud3JhcEVycjogKCkgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Jlc3VsdH1gKTtcbiAgICB9LFxuICAgIHVud3JhcE9yOiAoKSA9PiByZXN1bHQsXG4gICAgdW53cmFwT3JFbHNlOiAoKSA9PiByZXN1bHQsXG4gICAgYW5kOiAocmVzKSA9PiByZXMsXG4gICAgYW5kVGhlbjogKGdldFJlcykgPT4gZ2V0UmVzKHJlc3VsdCksXG4gICAgb3I6ICgpID0+IE9rKHJlc3VsdCksXG4gICAgb3JFbHNlOiAoKSA9PiBPayhyZXN1bHQpXG4gIH07XG4gIHJldHVybiBzZWxmO1xufVxuZnVuY3Rpb24gRXJyKGVycikge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGlzT2s6ICgpID0+IGZhbHNlLFxuICAgIGlzT2tBbmQ6ICgpID0+IGZhbHNlLFxuICAgIGlzRXJyOiAoKSA9PiB0cnVlLFxuICAgIGlzRXJyQW5kOiAoZm4pID0+IGZuKGVyciksXG4gICAgb2s6ICgpID0+IE5vbmUoKSxcbiAgICBlcnI6ICgpID0+IFNvbWUoZXJyKSxcbiAgICBtYXA6ICgpID0+IEVycihlcnIpLFxuICAgIG1hcE9yOiAoZGVmYXVsdFZhbHVlKSA9PiBkZWZhdWx0VmFsdWUsXG4gICAgbWFwT3JFbHNlOiAoZ2V0RGVmYXVsdFZhbHVlKSA9PiBnZXREZWZhdWx0VmFsdWUoZXJyKSxcbiAgICBtYXBFcnI6IChmbikgPT4gRXJyKGZuKGVycikpLFxuICAgIGV4cGVjdDogKG1zZykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgfSxcbiAgICBleHBlY3RFcnI6ICgpID0+IGVycixcbiAgICB1bndyYXA6ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlcnJ9YCk7XG4gICAgfSxcbiAgICB1bndyYXBFcnI6ICgpID0+IGVycixcbiAgICB1bndyYXBPcjogKGRlZmF1bHRWYWx1ZSkgPT4gZGVmYXVsdFZhbHVlLFxuICAgIHVud3JhcE9yRWxzZTogKGdldERlZmF1bHRWYWx1ZSkgPT4gZ2V0RGVmYXVsdFZhbHVlKGVyciksXG4gICAgYW5kOiAoKSA9PiBFcnIoZXJyKSxcbiAgICBhbmRUaGVuOiAoKSA9PiBFcnIoZXJyKSxcbiAgICBvcjogKHJlcykgPT4gcmVzLFxuICAgIG9yRWxzZTogKGdldFJlcykgPT4gZ2V0UmVzKGVycilcbiAgfTtcbiAgcmV0dXJuIHNlbGY7XG59XG5mdW5jdGlvbiBOb25lKCkge1xuICBjb25zdCBzZWxmID0ge1xuICAgIGFuZDogKCkgPT4gTm9uZSgpLFxuICAgIGFuZFRoZW46ICgpID0+IE5vbmUoKSxcbiAgICBleHBlY3Q6IChtc2cpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgIH0sXG4gICAgZmlsdGVyOiAoKSA9PiBzZWxmLFxuICAgIGlzU29tZTogKCkgPT4gZmFsc2UsXG4gICAgaXNTb21lQW5kOiAoKSA9PiBmYWxzZSxcbiAgICBpc05vbmU6ICgpID0+IHRydWUsXG4gICAgbWFwOiAoKSA9PiBOb25lKCksXG4gICAgbWFwT3I6IChkZWZhdWx0VmFsdWUpID0+IGRlZmF1bHRWYWx1ZSxcbiAgICBtYXBPckVsc2U6IChnZXREZWZhdWx0VmFsdWUpID0+IGdldERlZmF1bHRWYWx1ZSgpLFxuICAgIG9rT3I6IChlcnIpID0+IEVycihlcnIpLFxuICAgIG9rT3JFbHNlOiAoZ2V0RXJyKSA9PiBFcnIoZ2V0RXJyKCkpLFxuICAgIG9yOiAob3B0KSA9PiBvcHQsXG4gICAgb3JFbHNlOiAoZm4pID0+IGZuKCksXG4gICAgdW53cmFwOiAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwYW5pYyEgY2FsbCBgdW53cmFwYCBvbiBhIGBOb25lYCB2YWx1ZVwiKTtcbiAgICB9LFxuICAgIHVud3JhcE9yOiAoZGVmYXVsdFZhbHVlKSA9PiBkZWZhdWx0VmFsdWUsXG4gICAgdW53cmFwT3JFbHNlOiAoZ2V0RGVmYXVsdFZhbHVlKSA9PiBnZXREZWZhdWx0VmFsdWUoKSxcbiAgICB4b3I6IChvcHQpID0+IHtcbiAgICAgIGlmIChvcHQuaXNTb21lKCkpIHtcbiAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHNlbGY7XG59XG5mdW5jdGlvbiBTb21lKHZhbHVlKSB7XG4gIGNvbnN0IHNlbGYgPSB7XG4gICAgYW5kOiAob3B0KSA9PiBvcHQsXG4gICAgYW5kVGhlbjogKGZuKSA9PiBmbih2YWx1ZSksXG4gICAgZXhwZWN0OiAoKSA9PiB2YWx1ZSxcbiAgICBmaWx0ZXI6IChmbikgPT4ge1xuICAgICAgaWYgKGZuKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gc2VsZjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBOb25lKCk7XG4gICAgfSxcbiAgICBpc1NvbWU6ICgpID0+IHRydWUsXG4gICAgaXNTb21lQW5kOiAoZm4pID0+IGZuKHZhbHVlKSxcbiAgICBpc05vbmU6ICgpID0+IGZhbHNlLFxuICAgIG1hcDogKGZuKSA9PiBTb21lKGZuKHZhbHVlKSksXG4gICAgbWFwT3I6IChfLCBmbikgPT4gZm4odmFsdWUpLFxuICAgIG1hcE9yRWxzZTogKF8sIGZuKSA9PiBmbih2YWx1ZSksXG4gICAgb2tPcjogKCkgPT4gT2sodmFsdWUpLFxuICAgIG9rT3JFbHNlOiAoKSA9PiBPayh2YWx1ZSksXG4gICAgb3I6ICgpID0+IHNlbGYsXG4gICAgb3JFbHNlOiAoKSA9PiBzZWxmLFxuICAgIHVud3JhcDogKCkgPT4gdmFsdWUsXG4gICAgdW53cmFwT3I6ICgpID0+IHZhbHVlLFxuICAgIHVud3JhcE9yRWxzZTogKCkgPT4gdmFsdWUsXG4gICAgeG9yOiAob3B0KSA9PiB7XG4gICAgICBpZiAob3B0LmlzTm9uZSgpKSB7XG4gICAgICAgIHJldHVybiBzZWxmO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE5vbmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBzZWxmO1xufVxuXG4vLyBzcmMvdG9fb3B0aW9uLnRzXG5mdW5jdGlvbiB0b09wdGlvbihhcmcpIHtcbiAgaWYgKGFyZyA9PT0gbnVsbCB8fCBhcmcgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBOb25lKCk7XG4gIH1cbiAgcmV0dXJuIFNvbWUoYXJnKTtcbn1cblxuLy8gc3JjL2dldF9yZXN1bHQudHNcbmZ1bmN0aW9uIGdldFJlc3VsdChwcm9taXNlKSB7XG4gIHJldHVybiBwcm9taXNlLnRoZW4oXG4gICAgKHJlc3BvbnNlKSA9PiBPayhyZXNwb25zZSksXG4gICAgKGVycikgPT4gRXJyKGVycilcbiAgKTtcbn1cblxuLy8gc3JjL3Vud3JhcC50c1xuZnVuY3Rpb24gdW53cmFwKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBwYW5pYyEgY2FsbCBcXGB1bndyYXBcXGAgb24gYSBcXGAke3ZhbHVlfVxcYCB2YWx1ZWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gc3JjL3Vud3JhcF9vci50c1xuZnVuY3Rpb24gdW53cmFwT3IodmFsdWUsIGRlZmF1bHRWYWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vLyBzcmMvdW53cmFwX29yX2Vsc2UudHNcbmZ1bmN0aW9uIHVud3JhcE9yRWxzZSh2YWx1ZSwgZ2V0RGVmYXVsdFZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIGdldERlZmF1bHRWYWx1ZSgpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gc3JjL3RyeV9jYXRjaC50c1xuZnVuY3Rpb24gdHJ5Q2F0Y2goZm4pIHtcbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICByZXN1bHQgPSBmbigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIEVycihlKTtcbiAgfVxuICByZXR1cm4gT2socmVzdWx0KTtcbn1cbmV4cG9ydCB7XG4gIEVycixcbiAgTm9uZSxcbiAgT2ssXG4gIFNvbWUsXG4gIGdldFJlc3VsdCxcbiAgdG9PcHRpb24sXG4gIHRyeUNhdGNoLFxuICB1bndyYXAsXG4gIHVud3JhcE9yLFxuICB1bndyYXBPckVsc2Vcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwIiwidmFyIGU9c2V0VGltZW91dDtmdW5jdGlvbiB0KHQsbil7dmFyIHU9bi51c2VDYWNoZWRTZXRUaW1lb3V0P2U6c2V0VGltZW91dDtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3UoZSx0KX0pKX1mdW5jdGlvbiBuKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx1PW4udXNlQ2FjaGVkU2V0VGltZW91dCxyPXQoZSx7dXNlQ2FjaGVkU2V0VGltZW91dDp1fSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gci50aGVuKChmdW5jdGlvbigpe3JldHVybiBlfSkpfXJldHVybiBvLnRoZW49ZnVuY3Rpb24oKXtyZXR1cm4gci50aGVuLmFwcGx5KHIsYXJndW1lbnRzKX0sby5jYXRjaD1Qcm9taXNlLnJlc29sdmUoKS5jYXRjaCxvfWV4cG9ydCBkZWZhdWx0IG47XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKCkge1xuICAgIHZhciByZWZzID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgcmVmc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICBpZiAocmVmcy5sZW5ndGggPT09IDIpIHsgLy8gbWljcm8tb3B0aW1pemUgdGhlIGhvdCBwYXRoXG4gICAgICAgIHJldHVybiBjb21wb3NlVHdvUmVmcyhyZWZzWzBdLCByZWZzWzFdKSB8fCBudWxsO1xuICAgIH1cbiAgICB2YXIgY29tcG9zZWRSZWYgPSByZWZzLnNsaWNlKDEpLnJlZHVjZShmdW5jdGlvbiAoc2VtaUNvbWJpbmVkUmVmLCByZWZUb0luY2x1ZGUpIHsgcmV0dXJuIGNvbXBvc2VUd29SZWZzKHNlbWlDb21iaW5lZFJlZiwgcmVmVG9JbmNsdWRlKTsgfSwgcmVmc1swXSk7XG4gICAgcmV0dXJuIGNvbXBvc2VkUmVmIHx8IG51bGw7XG59XG5leHBvcnRzLmRlZmF1bHQgPSBjb21wb3NlUmVmcztcbnZhciBjb21wb3NlZFJlZkNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGNvbXBvc2VUd29SZWZzKHJlZjEsIHJlZjIpIHtcbiAgICBpZiAocmVmMSAmJiByZWYyKSB7XG4gICAgICAgIHZhciByZWYxQ2FjaGUgPSBjb21wb3NlZFJlZkNhY2hlLmdldChyZWYxKSB8fCBuZXcgV2Vha01hcCgpO1xuICAgICAgICBjb21wb3NlZFJlZkNhY2hlLnNldChyZWYxLCByZWYxQ2FjaGUpO1xuICAgICAgICB2YXIgY29tcG9zZWRSZWYgPSByZWYxQ2FjaGUuZ2V0KHJlZjIpIHx8IChmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHVwZGF0ZVJlZihyZWYxLCBpbnN0YW5jZSk7XG4gICAgICAgICAgICB1cGRhdGVSZWYocmVmMiwgaW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVmMUNhY2hlLnNldChyZWYyLCBjb21wb3NlZFJlZik7XG4gICAgICAgIHJldHVybiBjb21wb3NlZFJlZjtcbiAgICB9XG4gICAgaWYgKCFyZWYxKSB7XG4gICAgICAgIHJldHVybiByZWYyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlZjE7XG4gICAgfVxufVxuZnVuY3Rpb24gdXBkYXRlUmVmKHJlZiwgaW5zdGFuY2UpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZWYoaW5zdGFuY2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wb3NlUmVmcy5qcy5tYXAiLCIvLyBzcmMvaW5kZXgudHNcbmltcG9ydCBTZWxlY3QgZnJvbSBcInJlYWN0LXNlbGVjdFwiO1xuXG4vLyBzcmMvdXNlQXN5bmNQYWdpbmF0ZS50c1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgYXMgdXNlQ2FsbGJhY2syLCB1c2VTdGF0ZSBhcyB1c2VTdGF0ZTIgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gc3JjL3VzZUFzeW5jUGFnaW5hdGVCYXNlLnRzXG5pbXBvcnQgeyB1c2VMYXp5UmVmIH0gZnJvbSBcIkB2dGFpdHMvdXNlLWxhenktcmVmXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlSXNNb3VudGVkUmVmIGZyb20gXCJ1c2UtaXMtbW91bnRlZC1yZWZcIjtcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSBcInVzZS1sYXRlc3RcIjtcblxuLy8gc3JjL2RlZmF1bHRSZWR1Y2VPcHRpb25zLnRzXG52YXIgZGVmYXVsdFJlZHVjZU9wdGlvbnMgPSAocHJldk9wdGlvbnMsIGxvYWRlZE9wdGlvbnMpID0+IFsuLi5wcmV2T3B0aW9ucywgLi4ubG9hZGVkT3B0aW9uc107XG5cbi8vIHNyYy9kZWZhdWx0U2hvdWxkTG9hZE1vcmUudHNcbnZhciBBVkFJTEFCTEVfREVMVEEgPSAxMDtcbnZhciBkZWZhdWx0U2hvdWxkTG9hZE1vcmUgPSAoc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQsIHNjcm9sbFRvcCkgPT4ge1xuICBjb25zdCBib3R0b21Cb3JkZXIgPSBzY3JvbGxIZWlnaHQgLSBjbGllbnRIZWlnaHQgLSBBVkFJTEFCTEVfREVMVEE7XG4gIHJldHVybiBib3R0b21Cb3JkZXIgPCBzY3JvbGxUb3A7XG59O1xuXG4vLyBzcmMvZ2V0SW5pdGlhbENhY2hlLnRzXG52YXIgZ2V0SW5pdGlhbENhY2hlID0gKHBhcmFtcykgPT4gKHtcbiAgaXNGaXJzdExvYWQ6IHRydWUsXG4gIG9wdGlvbnM6IFtdLFxuICBoYXNNb3JlOiB0cnVlLFxuICBpc0xvYWRpbmc6IGZhbHNlLFxuICBsb2NrZWRVbnRpbDogMCxcbiAgYWRkaXRpb25hbDogcGFyYW1zLmFkZGl0aW9uYWxcbn0pO1xuXG4vLyBzcmMvZ2V0SW5pdGlhbE9wdGlvbnNDYWNoZS50c1xudmFyIGdldEluaXRpYWxPcHRpb25zQ2FjaGUgPSAoe1xuICBvcHRpb25zLFxuICBkZWZhdWx0T3B0aW9ucyxcbiAgYWRkaXRpb25hbCxcbiAgZGVmYXVsdEFkZGl0aW9uYWxcbn0pID0+IHtcbiAgY29uc3QgaW5pdGlhbE9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucyA9PT0gdHJ1ZSA/IG51bGwgOiBBcnJheS5pc0FycmF5KGRlZmF1bHRPcHRpb25zKSA/IGRlZmF1bHRPcHRpb25zIDogb3B0aW9ucztcbiAgaWYgKGluaXRpYWxPcHRpb25zKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFwiXCI6IHtcbiAgICAgICAgaXNGaXJzdExvYWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBvcHRpb25zOiBpbml0aWFsT3B0aW9ucyxcbiAgICAgICAgaGFzTW9yZTogdHJ1ZSxcbiAgICAgICAgbG9ja2VkVW50aWw6IDAsXG4gICAgICAgIGFkZGl0aW9uYWw6IGRlZmF1bHRBZGRpdGlvbmFsIHx8IGFkZGl0aW9uYWxcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbi8vIHNyYy9yZXF1ZXN0T3B0aW9ucy50c1xuaW1wb3J0IHsgZ2V0UmVzdWx0IH0gZnJvbSBcImtydXN0eWtyYWJcIjtcbmltcG9ydCBzbGVlcCBmcm9tIFwic2xlZXAtcHJvbWlzZVwiO1xuXG4vLyBzcmMvdmFsaWRhdGVSZXNwb25zZS50c1xudmFyIGVycm9yVGV4dCA9ICdbcmVhY3Qtc2VsZWN0LWFzeW5jLXBhZ2luYXRlXSByZXNwb25zZSBvZiBcImxvYWRPcHRpb25zXCIgc2hvdWxkIGJlIGFuIG9iamVjdCB3aXRoIFwib3B0aW9uc1wiIHByb3AsIHdoaWNoIGNvbnRhaW5zIGFycmF5IG9mIG9wdGlvbnMuJztcbnZhciBjaGVja0lzUmVzcG9uc2UgPSAocmVzcG9uc2UpID0+IHtcbiAgaWYgKCFyZXNwb25zZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCB7IG9wdGlvbnMsIGhhc01vcmUgfSA9IHJlc3BvbnNlO1xuICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYXNNb3JlICE9PSBcImJvb2xlYW5cIiAmJiB0eXBlb2YgaGFzTW9yZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgdmFsaWRhdGVSZXNwb25zZSA9IChyZXNwb25zZSkgPT4ge1xuICBpZiAoIWNoZWNrSXNSZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yVGV4dCwgXCJSZWNlaXZlZDpcIiwgcmVzcG9uc2UpO1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvclRleHQpO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy8gc3JjL3JlcXVlc3RPcHRpb25zLnRzXG52YXIgcmVxdWVzdE9wdGlvbnMgPSBhc3luYyAoY2FsbGVyLCBwYXJhbXNSZWYsIG9wdGlvbnNDYWNoZVJlZiwgZGVib3VuY2VUaW1lb3V0LCBzZXRPcHRpb25zQ2FjaGUsIHJlZHVjZU9wdGlvbnMsIGlzTW91bnRlZFJlZikgPT4ge1xuICBjb25zdCBjdXJyZW50SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gIGNvbnN0IGlzQ2FjaGVFbXB0eSA9ICFvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtjdXJyZW50SW5wdXRWYWx1ZV07XG4gIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gaXNDYWNoZUVtcHR5ID8gZ2V0SW5pdGlhbENhY2hlKHBhcmFtc1JlZi5jdXJyZW50KSA6IG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50W2N1cnJlbnRJbnB1dFZhbHVlXTtcbiAgaWYgKGN1cnJlbnRPcHRpb25zLmlzTG9hZGluZyB8fCAhY3VycmVudE9wdGlvbnMuaGFzTW9yZSB8fCBjdXJyZW50T3B0aW9ucy5sb2NrZWRVbnRpbCA+IERhdGUubm93KCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgc2V0T3B0aW9uc0NhY2hlKFxuICAgIChwcmV2T3B0aW9uc0NhY2hlKSA9PiAoe1xuICAgICAgLi4ucHJldk9wdGlvbnNDYWNoZSxcbiAgICAgIFtjdXJyZW50SW5wdXRWYWx1ZV06IHtcbiAgICAgICAgLi4uY3VycmVudE9wdGlvbnMsXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gICk7XG4gIGlmIChkZWJvdW5jZVRpbWVvdXQgPiAwICYmIGNhbGxlciA9PT0gXCJpbnB1dC1jaGFuZ2VcIikge1xuICAgIGF3YWl0IHNsZWVwKGRlYm91bmNlVGltZW91dCk7XG4gICAgY29uc3QgbmV3SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gICAgaWYgKGN1cnJlbnRJbnB1dFZhbHVlICE9PSBuZXdJbnB1dFZhbHVlKSB7XG4gICAgICBzZXRPcHRpb25zQ2FjaGUoKHByZXZPcHRpb25zQ2FjaGUpID0+IHtcbiAgICAgICAgaWYgKGlzQ2FjaGVFbXB0eSkge1xuICAgICAgICAgIGNvbnN0IHsgW2N1cnJlbnRJbnB1dFZhbHVlXTogaXRlbUZvckRlbGV0ZSwgLi4ucmVzdENhY2hlIH0gPSBwcmV2T3B0aW9uc0NhY2hlO1xuICAgICAgICAgIHJldHVybiByZXN0Q2FjaGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2T3B0aW9uc0NhY2hlLFxuICAgICAgICAgIFtjdXJyZW50SW5wdXRWYWx1ZV06IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnRPcHRpb25zLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICBjb25zdCB7IGxvYWRPcHRpb25zLCByZWxvYWRPbkVycm9yVGltZW91dCA9IDAgfSA9IHBhcmFtc1JlZi5jdXJyZW50O1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZXRSZXN1bHQoXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihcbiAgICAgICgpID0+IGxvYWRPcHRpb25zKFxuICAgICAgICBjdXJyZW50SW5wdXRWYWx1ZSxcbiAgICAgICAgY3VycmVudE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgY3VycmVudE9wdGlvbnMuYWRkaXRpb25hbFxuICAgICAgKVxuICAgIClcbiAgKTtcbiAgaWYgKCFpc01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICBzZXRPcHRpb25zQ2FjaGUoKHByZXZPcHRpb25zQ2FjaGUpID0+ICh7XG4gICAgICAuLi5wcmV2T3B0aW9uc0NhY2hlLFxuICAgICAgW2N1cnJlbnRJbnB1dFZhbHVlXToge1xuICAgICAgICAuLi5jdXJyZW50T3B0aW9ucyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbG9ja2VkVW50aWw6IERhdGUubm93KCkgKyByZWxvYWRPbkVycm9yVGltZW91dFxuICAgICAgfVxuICAgIH0pKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgcmVzcG9uc2UgPSByZXN1bHQudW53cmFwKCk7XG4gIGlmICh2YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgIGNvbnN0IHsgb3B0aW9ucywgaGFzTW9yZSB9ID0gcmVzcG9uc2U7XG4gICAgY29uc3QgbmV3QWRkaXRpb25hbCA9IE9iamVjdC5oYXNPd24ocmVzcG9uc2UsIFwiYWRkaXRpb25hbFwiKSA/IHJlc3BvbnNlLmFkZGl0aW9uYWwgOiBjdXJyZW50T3B0aW9ucy5hZGRpdGlvbmFsO1xuICAgIHNldE9wdGlvbnNDYWNoZSgocHJldk9wdGlvbnNDYWNoZSkgPT4gKHtcbiAgICAgIC4uLnByZXZPcHRpb25zQ2FjaGUsXG4gICAgICBbY3VycmVudElucHV0VmFsdWVdOiB7XG4gICAgICAgIC4uLmN1cnJlbnRPcHRpb25zLFxuICAgICAgICBvcHRpb25zOiByZWR1Y2VPcHRpb25zKGN1cnJlbnRPcHRpb25zLm9wdGlvbnMsIG9wdGlvbnMsIG5ld0FkZGl0aW9uYWwpLFxuICAgICAgICBoYXNNb3JlOiAhIWhhc01vcmUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGlzRmlyc3RMb2FkOiBmYWxzZSxcbiAgICAgICAgYWRkaXRpb25hbDogbmV3QWRkaXRpb25hbFxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxufTtcblxuLy8gc3JjL3VzZUFzeW5jUGFnaW5hdGVCYXNlLnRzXG52YXIgaW5jcmVhc2VTdGF0ZUlkID0gKHByZXZTdGF0ZUlkKSA9PiBwcmV2U3RhdGVJZCArIDE7XG52YXIgdXNlQXN5bmNQYWdpbmF0ZUJhc2UgPSAocGFyYW1zLCBkZXBzID0gW10pID0+IHtcbiAgY29uc3Qge1xuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGxvYWRPcHRpb25zT25NZW51T3BlbiA9IHRydWUsXG4gICAgZGVib3VuY2VUaW1lb3V0ID0gMCxcbiAgICBpbnB1dFZhbHVlLFxuICAgIG1lbnVJc09wZW4sXG4gICAgZmlsdGVyT3B0aW9uID0gbnVsbCxcbiAgICByZWR1Y2VPcHRpb25zID0gZGVmYXVsdFJlZHVjZU9wdGlvbnMsXG4gICAgc2hvdWxkTG9hZE1vcmUgPSBkZWZhdWx0U2hvdWxkTG9hZE1vcmVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgaXNNb3VudGVkUmVmID0gdXNlSXNNb3VudGVkUmVmKCk7XG4gIGNvbnN0IHJlZHVjZU9wdGlvbnNSZWYgPSB1c2VMYXRlc3QocmVkdWNlT3B0aW9ucyk7XG4gIGNvbnN0IGxvYWRPcHRpb25zT25NZW51T3BlblJlZiA9IHVzZUxhdGVzdChsb2FkT3B0aW9uc09uTWVudU9wZW4pO1xuICBjb25zdCBpc0luaXRSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IHBhcmFtc1JlZiA9IHVzZVJlZihwYXJhbXMpO1xuICBwYXJhbXNSZWYuY3VycmVudCA9IHBhcmFtcztcbiAgY29uc3QgW19zdGF0ZUlkLCBzZXRTdGF0ZUlkXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBvcHRpb25zQ2FjaGVSZWYgPSB1c2VMYXp5UmVmKCgpID0+IGdldEluaXRpYWxPcHRpb25zQ2FjaGUocGFyYW1zKSk7XG4gIGNvbnN0IGNhbGxSZXF1ZXN0T3B0aW9uc1JlZiA9IHVzZUxhdGVzdChcbiAgICAoY2FsbGVyKSA9PiB7XG4gICAgICByZXF1ZXN0T3B0aW9ucyhcbiAgICAgICAgY2FsbGVyLFxuICAgICAgICBwYXJhbXNSZWYsXG4gICAgICAgIG9wdGlvbnNDYWNoZVJlZixcbiAgICAgICAgZGVib3VuY2VUaW1lb3V0LFxuICAgICAgICAocmVkdWNlU3RhdGUpID0+IHtcbiAgICAgICAgICBvcHRpb25zQ2FjaGVSZWYuY3VycmVudCA9IHJlZHVjZVN0YXRlKG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICBpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNldFN0YXRlSWQoaW5jcmVhc2VTdGF0ZUlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlZHVjZU9wdGlvbnNSZWYuY3VycmVudCxcbiAgICAgICAgaXNNb3VudGVkUmVmXG4gICAgICApO1xuICAgIH1cbiAgKTtcbiAgY29uc3QgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50SW5wdXRWYWx1ZSA9IHBhcmFtc1JlZi5jdXJyZW50LmlucHV0VmFsdWU7XG4gICAgY29uc3QgY3VycmVudE9wdGlvbnMyID0gb3B0aW9uc0NhY2hlUmVmLmN1cnJlbnRbY3VycmVudElucHV0VmFsdWVdO1xuICAgIGlmIChjdXJyZW50T3B0aW9uczIpIHtcbiAgICAgIGNhbGxSZXF1ZXN0T3B0aW9uc1JlZi5jdXJyZW50KFwibWVudS1zY3JvbGxcIik7XG4gICAgfVxuICB9LCBbY2FsbFJlcXVlc3RPcHRpb25zUmVmLCBvcHRpb25zQ2FjaGVSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGlzSW5pdFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnNDYWNoZVJlZi5jdXJyZW50ID0ge307XG4gICAgICBzZXRTdGF0ZUlkKGluY3JlYXNlU3RhdGVJZCk7XG4gICAgfVxuICAgIGlmIChkZWZhdWx0T3B0aW9ucyA9PT0gdHJ1ZSkge1xuICAgICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLmN1cnJlbnQoXCJhdXRvbG9hZFwiKTtcbiAgICB9XG4gIH0sIGRlcHMpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtZW51SXNPcGVuICYmICFvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtpbnB1dFZhbHVlXSkge1xuICAgICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLmN1cnJlbnQoXCJpbnB1dC1jaGFuZ2VcIik7XG4gICAgfVxuICB9LCBbY2FsbFJlcXVlc3RPcHRpb25zUmVmLCBpbnB1dFZhbHVlLCBtZW51SXNPcGVuLCBvcHRpb25zQ2FjaGVSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWVudUlzT3BlbiAmJiAhb3B0aW9uc0NhY2hlUmVmLmN1cnJlbnRbXCJcIl0gJiYgbG9hZE9wdGlvbnNPbk1lbnVPcGVuUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxSZXF1ZXN0T3B0aW9uc1JlZi5jdXJyZW50KFwibWVudS10b2dnbGVcIik7XG4gICAgfVxuICB9LCBbXG4gICAgY2FsbFJlcXVlc3RPcHRpb25zUmVmLFxuICAgIGxvYWRPcHRpb25zT25NZW51T3BlblJlZixcbiAgICBtZW51SXNPcGVuLFxuICAgIG9wdGlvbnNDYWNoZVJlZlxuICBdKTtcbiAgY29uc3QgY3VycmVudE9wdGlvbnMgPSBvcHRpb25zQ2FjaGVSZWYuY3VycmVudFtpbnB1dFZhbHVlXSB8fCBnZXRJbml0aWFsQ2FjaGUocGFyYW1zKTtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTY3JvbGxlZFRvQm90dG9tLFxuICAgIHNob3VsZExvYWRNb3JlLFxuICAgIGZpbHRlck9wdGlvbixcbiAgICBpc0xvYWRpbmc6IGN1cnJlbnRPcHRpb25zLmlzTG9hZGluZyB8fCBjdXJyZW50T3B0aW9ucy5sb2NrZWRVbnRpbCA+IERhdGUubm93KCksXG4gICAgaXNGaXJzdExvYWQ6IGN1cnJlbnRPcHRpb25zLmlzRmlyc3RMb2FkLFxuICAgIG9wdGlvbnM6IGN1cnJlbnRPcHRpb25zLm9wdGlvbnNcbiAgfTtcbn07XG5cbi8vIHNyYy91c2VBc3luY1BhZ2luYXRlLnRzXG52YXIgdXNlQXN5bmNQYWdpbmF0ZSA9IChwYXJhbXMsIGRlcHMgPSBbXSkgPT4ge1xuICBjb25zdCB7XG4gICAgaW5wdXRWYWx1ZTogaW5wdXRWYWx1ZVBhcmFtLFxuICAgIG1lbnVJc09wZW46IG1lbnVJc09wZW5QYXJhbSxcbiAgICBkZWZhdWx0SW5wdXRWYWx1ZTogZGVmYXVsdElucHV0VmFsdWVQYXJhbSxcbiAgICBkZWZhdWx0TWVudUlzT3BlbjogZGVmYXVsdE1lbnVJc09wZW5QYXJhbSxcbiAgICBvbklucHV0Q2hhbmdlOiBvbklucHV0Q2hhbmdlUGFyYW0sXG4gICAgb25NZW51Q2xvc2U6IG9uTWVudUNsb3NlUGFyYW0sXG4gICAgb25NZW51T3Blbjogb25NZW51T3BlblBhcmFtXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IFtpbnB1dFZhbHVlU3RhdGUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUyKFxuICAgIGRlZmF1bHRJbnB1dFZhbHVlUGFyYW0gfHwgXCJcIlxuICApO1xuICBjb25zdCBbbWVudUlzT3BlblN0YXRlLCBzZXRNZW51SXNPcGVuXSA9IHVzZVN0YXRlMighIWRlZmF1bHRNZW51SXNPcGVuUGFyYW0pO1xuICBjb25zdCBpbnB1dFZhbHVlID0gdHlwZW9mIGlucHV0VmFsdWVQYXJhbSA9PT0gXCJzdHJpbmdcIiA/IGlucHV0VmFsdWVQYXJhbSA6IGlucHV0VmFsdWVTdGF0ZTtcbiAgY29uc3QgbWVudUlzT3BlbiA9IHR5cGVvZiBtZW51SXNPcGVuUGFyYW0gPT09IFwiYm9vbGVhblwiID8gbWVudUlzT3BlblBhcmFtIDogbWVudUlzT3BlblN0YXRlO1xuICBjb25zdCBvbklucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2syKFxuICAgIChuZXh0SW5wdXRWYWx1ZSwgYWN0aW9uTWV0YSkgPT4ge1xuICAgICAgaWYgKG9uSW5wdXRDaGFuZ2VQYXJhbSkge1xuICAgICAgICBvbklucHV0Q2hhbmdlUGFyYW0obmV4dElucHV0VmFsdWUsIGFjdGlvbk1ldGEpO1xuICAgICAgfVxuICAgICAgc2V0SW5wdXRWYWx1ZShuZXh0SW5wdXRWYWx1ZSk7XG4gICAgfSxcbiAgICBbb25JbnB1dENoYW5nZVBhcmFtXVxuICApO1xuICBjb25zdCBvbk1lbnVDbG9zZSA9IHVzZUNhbGxiYWNrMigoKSA9PiB7XG4gICAgaWYgKG9uTWVudUNsb3NlUGFyYW0pIHtcbiAgICAgIG9uTWVudUNsb3NlUGFyYW0oKTtcbiAgICB9XG4gICAgc2V0TWVudUlzT3BlbihmYWxzZSk7XG4gIH0sIFtvbk1lbnVDbG9zZVBhcmFtXSk7XG4gIGNvbnN0IG9uTWVudU9wZW4gPSB1c2VDYWxsYmFjazIoKCkgPT4ge1xuICAgIGlmIChvbk1lbnVPcGVuUGFyYW0pIHtcbiAgICAgIG9uTWVudU9wZW5QYXJhbSgpO1xuICAgIH1cbiAgICBzZXRNZW51SXNPcGVuKHRydWUpO1xuICB9LCBbb25NZW51T3BlblBhcmFtXSk7XG4gIGNvbnN0IGJhc2VSZXN1bHQgPSB1c2VBc3luY1BhZ2luYXRlQmFzZShcbiAgICB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBpbnB1dFZhbHVlLFxuICAgICAgbWVudUlzT3BlblxuICAgIH0sXG4gICAgZGVwc1xuICApO1xuICByZXR1cm4ge1xuICAgIC4uLmJhc2VSZXN1bHQsXG4gICAgaW5wdXRWYWx1ZSxcbiAgICBtZW51SXNPcGVuLFxuICAgIG9uSW5wdXRDaGFuZ2UsXG4gICAgb25NZW51Q2xvc2UsXG4gICAgb25NZW51T3BlblxuICB9O1xufTtcblxuLy8gc3JjL3VzZUNvbXBvbmVudHMudHNcbmltcG9ydCB7IHVzZU1lbW8gYXMgdXNlTWVtbzIgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbXBvbmVudHMgYXMgZGVmYXVsdENvbXBvbmVudHMgfSBmcm9tIFwicmVhY3Qtc2VsZWN0XCI7XG5cbi8vIHNyYy93cmFwTWVudUxpc3QudHN4XG5pbXBvcnQgY29tcG9zZVJlZnMgZnJvbSBcIkBzZXpuYW0vY29tcG9zZS1yZWFjdC1yZWZzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjayBhcyB1c2VDYWxsYmFjazMsIHVzZUVmZmVjdCBhcyB1c2VFZmZlY3QyLCB1c2VNZW1vLCB1c2VSZWYgYXMgdXNlUmVmMiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgQ0hFQ0tfVElNRU9VVCA9IDMwMDtcbmZ1bmN0aW9uIHdyYXBNZW51TGlzdChNZW51TGlzdDIpIHtcbiAgZnVuY3Rpb24gV3JhcHBlZE1lbnVMaXN0KHByb3BzKSB7XG4gICAgY29uc3QgeyBzZWxlY3RQcm9wcywgaW5uZXJSZWYgfSA9IHByb3BzO1xuICAgIGNvbnN0IHsgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSwgc2hvdWxkTG9hZE1vcmUgfSA9IHNlbGVjdFByb3BzO1xuICAgIGNvbnN0IGNoZWNrVGltZW91dFJlZiA9IHVzZVJlZjIobnVsbCk7XG4gICAgY29uc3QgbWVudUxpc3RSZWYgPSB1c2VSZWYyKG51bGwpO1xuICAgIGNvbnN0IHNob3VsZEhhbmRsZSA9IHVzZUNhbGxiYWNrMygoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IG1lbnVMaXN0UmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoIWVsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gZWw7XG4gICAgICByZXR1cm4gc2hvdWxkTG9hZE1vcmUoc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQsIHNjcm9sbFRvcCk7XG4gICAgfSwgW3Nob3VsZExvYWRNb3JlXSk7XG4gICAgY29uc3QgY2hlY2tBbmRIYW5kbGUgPSB1c2VDYWxsYmFjazMoKCkgPT4ge1xuICAgICAgaWYgKHNob3VsZEhhbmRsZSgpKSB7XG4gICAgICAgIGlmIChoYW5kbGVTY3JvbGxlZFRvQm90dG9tKSB7XG4gICAgICAgICAgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW3Nob3VsZEhhbmRsZSwgaGFuZGxlU2Nyb2xsZWRUb0JvdHRvbV0pO1xuICAgIGNvbnN0IHNldENoZWNrQW5kSGFuZGxlVGltZW91dCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gKCkgPT4ge1xuICAgICAgICBjaGVja0FuZEhhbmRsZSgpO1xuICAgICAgICBjaGVja1RpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQocmVzLCBDSEVDS19USU1FT1VUKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIFtjaGVja0FuZEhhbmRsZV0pO1xuICAgIHVzZUVmZmVjdDIoKCkgPT4ge1xuICAgICAgc2V0Q2hlY2tBbmRIYW5kbGVUaW1lb3V0KCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY2hlY2tUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoY2hlY2tUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIE1lbnVMaXN0MixcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGlubmVyUmVmOiBjb21wb3NlUmVmcyhpbm5lclJlZiwgbWVudUxpc3RSZWYpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuICByZXR1cm4gV3JhcHBlZE1lbnVMaXN0O1xufVxuXG4vLyBzcmMvdXNlQ29tcG9uZW50cy50c1xudmFyIE1lbnVMaXN0ID0gd3JhcE1lbnVMaXN0KFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IGZpeCB0eXBlc1xuICBkZWZhdWx0Q29tcG9uZW50cy5NZW51TGlzdFxuKTtcbnZhciB1c2VDb21wb25lbnRzID0gKGNvbXBvbmVudHMpID0+IHVzZU1lbW8yKFxuICAoKSA9PiAoe1xuICAgIE1lbnVMaXN0LFxuICAgIC4uLmNvbXBvbmVudHNcbiAgfSksXG4gIFtjb21wb25lbnRzXVxuKTtcblxuLy8gc3JjL3dpdGhBc3luY1BhZ2luYXRlLnRzeFxuaW1wb3J0IHsganN4IGFzIGpzeDIgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBkZWZhdWx0Q2FjaGVVbmlxcyA9IFtdO1xudmFyIGRlZmF1bHRDb21wb25lbnRzMiA9IHt9O1xuZnVuY3Rpb24gd2l0aEFzeW5jUGFnaW5hdGUoU2VsZWN0Q29tcG9uZW50KSB7XG4gIGZ1bmN0aW9uIFdpdGhBc3luY1BhZ2luYXRlKHByb3BzKSB7XG4gICAgY29uc3Qge1xuICAgICAgY29tcG9uZW50cyA9IGRlZmF1bHRDb21wb25lbnRzMixcbiAgICAgIHNlbGVjdFJlZiA9IHZvaWQgMCxcbiAgICAgIGlzTG9hZGluZzogaXNMb2FkaW5nUHJvcCxcbiAgICAgIGNhY2hlVW5pcXMgPSBkZWZhdWx0Q2FjaGVVbmlxcyxcbiAgICAgIC4uLnJlc3RcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgYXN5bmNQYWdpbmF0ZVByb3BzID0gdXNlQXN5bmNQYWdpbmF0ZShyZXN0LCBjYWNoZVVuaXFzKTtcbiAgICBjb25zdCBwcm9jZXNzZWRDb21wb25lbnRzID0gdXNlQ29tcG9uZW50cyhcbiAgICAgIGNvbXBvbmVudHNcbiAgICApO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHR5cGVvZiBpc0xvYWRpbmdQcm9wID09PSBcImJvb2xlYW5cIiA/IGlzTG9hZGluZ1Byb3AgOiBhc3luY1BhZ2luYXRlUHJvcHMuaXNMb2FkaW5nO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4MihcbiAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgIHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLmFzeW5jUGFnaW5hdGVQcm9wcyxcbiAgICAgICAgaXNMb2FkaW5nLFxuICAgICAgICBjb21wb25lbnRzOiBwcm9jZXNzZWRDb21wb25lbnRzLFxuICAgICAgICByZWY6IHNlbGVjdFJlZlxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIFdpdGhBc3luY1BhZ2luYXRlO1xufVxuXG4vLyBzcmMvcmVkdWNlR3JvdXBlZE9wdGlvbnMudHNcbnZhciBjaGVja0dyb3VwID0gKGdyb3VwKSA9PiB7XG4gIGlmICghZ3JvdXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgeyBsYWJlbCwgb3B0aW9ucyB9ID0gZ3JvdXA7XG4gIGlmICh0eXBlb2YgbGFiZWwgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGxhYmVsICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgcmVkdWNlR3JvdXBlZE9wdGlvbnMgPSAocHJldk9wdGlvbnMsIGxvYWRlZE9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVzID0gcHJldk9wdGlvbnMuc2xpY2UoKTtcbiAgY29uc3QgbWFwTGFiZWxUb0luZGV4ID0ge307XG4gIGxldCBwcmV2T3B0aW9uc0luZGV4ID0gMDtcbiAgY29uc3QgcHJldk9wdGlvbnNMZW5ndGggPSBwcmV2T3B0aW9ucy5sZW5ndGg7XG4gIGZvciAoY29uc3Qgb3B0aW9uT3JHcm91cCBvZiBsb2FkZWRPcHRpb25zKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBjaGVja0dyb3VwKG9wdGlvbk9yR3JvdXApID8gb3B0aW9uT3JHcm91cCA6IHtcbiAgICAgIG9wdGlvbnM6IFtvcHRpb25Pckdyb3VwXVxuICAgIH07XG4gICAgY29uc3QgeyBsYWJlbCA9IFwiXCIgfSA9IGdyb3VwO1xuICAgIGxldCBncm91cEluZGV4ID0gbWFwTGFiZWxUb0luZGV4W2xhYmVsXTtcbiAgICBpZiAodHlwZW9mIGdyb3VwSW5kZXggIT09IFwibnVtYmVyXCIpIHtcbiAgICAgIGZvciAoOyBwcmV2T3B0aW9uc0luZGV4IDwgcHJldk9wdGlvbnNMZW5ndGggJiYgdHlwZW9mIG1hcExhYmVsVG9JbmRleFtsYWJlbF0gIT09IFwibnVtYmVyXCI7ICsrcHJldk9wdGlvbnNJbmRleCkge1xuICAgICAgICBjb25zdCBwcmV2R3JvdXAgPSBwcmV2T3B0aW9uc1twcmV2T3B0aW9uc0luZGV4XTtcbiAgICAgICAgaWYgKGNoZWNrR3JvdXAocHJldkdyb3VwKSkge1xuICAgICAgICAgIG1hcExhYmVsVG9JbmRleFtwcmV2R3JvdXAubGFiZWwgfHwgXCJcIl0gPSBwcmV2T3B0aW9uc0luZGV4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBncm91cEluZGV4ID0gbWFwTGFiZWxUb0luZGV4W2xhYmVsXTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBncm91cEluZGV4ICE9PSBcIm51bWJlclwiKSB7XG4gICAgICBtYXBMYWJlbFRvSW5kZXhbbGFiZWxdID0gcmVzLmxlbmd0aDtcbiAgICAgIHJlcy5wdXNoKGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzW2dyb3VwSW5kZXhdID0ge1xuICAgICAgICAuLi5yZXNbZ3JvdXBJbmRleF0sXG4gICAgICAgIG9wdGlvbnM6IFsuLi5yZXNbZ3JvdXBJbmRleF0ub3B0aW9ucywgLi4uZ3JvdXAub3B0aW9uc11cbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBBc3luY1BhZ2luYXRlID0gd2l0aEFzeW5jUGFnaW5hdGUoU2VsZWN0KTtcbmV4cG9ydCB7XG4gIEFzeW5jUGFnaW5hdGUsXG4gIGNoZWNrSXNSZXNwb25zZSxcbiAgcmVkdWNlR3JvdXBlZE9wdGlvbnMsXG4gIHVzZUFzeW5jUGFnaW5hdGUsXG4gIHVzZUFzeW5jUGFnaW5hdGVCYXNlLFxuICB1c2VDb21wb25lbnRzLFxuICB2YWxpZGF0ZVJlc3BvbnNlLFxuICB3aXRoQXN5bmNQYWdpbmF0ZSxcbiAgd3JhcE1lbnVMaXN0XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiaW1wb3J0IHtTaG9wfSBmcm9tIFwiLi9zaG9wXCJcblxuZXhwb3J0IGNsYXNzIExheW91dGVyRGF0YSB7XG4gICAgZmlyc3RuYW1lOiBzdHJpbmdcbiAgICBjb21wYW55OiBzdHJpbmdcbiAgICBsYXN0bmFtZTogc3RyaW5nXG4gICAgc3RyZWV0OiBzdHJpbmdcbiAgICBob3VzZU51bWJlcjogc3RyaW5nXG4gICAgemlwOiBzdHJpbmdcbiAgICBjaXR5OiBzdHJpbmdcbiAgICBwaG9uZTogc3RyaW5nXG4gICAgY291bnRyeTogc3RyaW5nXG4gICAgdXN0aWQ6IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZmlyc3RuYW1lID0gXCJcIlxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBcIlwiXG4gICAgICAgIHRoaXMubGFzdG5hbWUgPSBcIlwiXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gXCJcIlxuICAgICAgICB0aGlzLmhvdXNlTnVtYmVyID0gXCJcIlxuICAgICAgICB0aGlzLnppcCA9IFwiXCJcbiAgICAgICAgdGhpcy5jaXR5ID0gXCJcIlxuICAgICAgICB0aGlzLnBob25lID0gXCJcIlxuICAgICAgICB0aGlzLmNvdW50cnkgPSBcIlwiXG4gICAgICAgIHRoaXMudXN0aWQgPSBcIlwiXG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIENvbnRhY3Qge1xuICAgIHVpZDogbnVtYmVyXG4gICAgdXNlcm5hbWU6IHN0cmluZ1xuICAgIGVtYWlsOiBzdHJpbmdcbiAgICBwYXNzd29yZDogc3RyaW5nXG4gICAgdXVpZDogc3RyaW5nXG4gICAgc2hvcHM6IFNob3BbXVxuICAgIGxheW91dGVyX2RhdGE6IExheW91dGVyRGF0YVxuXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51aWQgPSAwXG4gICAgICAgIHRoaXMudXVpZCA9IFwiXCJcbiAgICAgICAgdGhpcy51c2VybmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5lbWFpbCA9IFwiXCJcbiAgICAgICAgdGhpcy5wYXNzd29yZCA9IFwiXCJcbiAgICAgICAgdGhpcy5zaG9wcyA9IFtdXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YSA9IG5ldyBMYXlvdXRlckRhdGEoKVxuICAgIH1cblxuICAgIHBhcnNlRnJvbUpzb24oaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMudWlkID0gaXRlbS5jb250YWN0LnVpZFxuICAgICAgICB0aGlzLnV1aWQgPSBpdGVtLmNvbnRhY3QudXVpZFxuICAgICAgICB0aGlzLmVtYWlsID0gaXRlbS5jb250YWN0LmVtYWlsXG4gICAgICAgIHRoaXMudXNlcm5hbWUgPSBpdGVtLmNvbnRhY3QudXNlcm5hbWVcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY29tcGFueSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmxhc3RuYW1lID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEubGFzdG5hbWVcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLnN0cmVldCA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLnN0cmVldFxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuaG91c2VOdW1iZXIgPSBpdGVtLmNvbnRhY3QubGF5b3V0ZXJfZGF0YS5ob3VzZU51bWJlclxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuemlwID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEuemlwXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5jaXR5ID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEuY2l0eVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEucGhvbmUgPSBpdGVtLmNvbnRhY3QubGF5b3V0ZXJfZGF0YS5waG9uZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY291bnRyeSA9IGl0ZW0uY29udGFjdC5sYXlvdXRlcl9kYXRhLmNvdW50cnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLnVzdGlkID0gaXRlbS5jb250YWN0LmxheW91dGVyX2RhdGEudXN0aWRcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Gb3JtRGF0YShmb3JtZGF0YTogYW55LCBzaG9wOiBTaG9wID0gbnVsbCkge1xuXG4gICAgICAgIHRoaXMuZW1haWwgPSBmb3JtZGF0YS5lbWFpbFxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuY29tcGFueSA9IGZvcm1kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmZpcnN0bmFtZSA9IGZvcm1kYXRhLmZpcnN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEubGFzdG5hbWUgPSBmb3JtZGF0YS5sYXN0bmFtZVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEuc3RyZWV0ID0gZm9ybWRhdGEuc3RyZWV0XG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5ob3VzZU51bWJlciA9IGZvcm1kYXRhLmhvdXNlTnVtYmVyXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS56aXAgPSBmb3JtZGF0YS56aXBcbiAgICAgICAgdGhpcy5sYXlvdXRlcl9kYXRhLmNpdHkgPSBmb3JtZGF0YS5jaXR5XG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5waG9uZSA9IGZvcm1kYXRhLnBob25lXG4gICAgICAgIHRoaXMubGF5b3V0ZXJfZGF0YS5jb3VudHJ5ID0gZm9ybWRhdGEuY291bnRyeVxuICAgICAgICB0aGlzLmxheW91dGVyX2RhdGEudXN0aWQgPSBmb3JtZGF0YS51c3RpZFxuICAgICAgICBpZihzaG9wKSB7XG4gICAgICAgICAgICB0aGlzLnNob3BzLnB1c2goc2hvcClcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsImltcG9ydCB7YXV0b0luamVjdGFibGUsIHNpbmdsZXRvbn0gZnJvbSBcInRzeXJpbmdlLW5lb1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiLi90b2tlblwiO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbnRhY3QgfSBmcm9tIFwiLi4vbW9kZWwvY29udGFjdFwiO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gXCIuLi9tb2RlbC9hZGRyZXNzXCI7XG5pbXBvcnQgeyBTaG9wIH0gZnJvbSBcIi4uL21vZGVsL3Nob3BcIjtcblxuQHNpbmdsZXRvbigpXG5AYXV0b0luamVjdGFibGUoKVxuY2xhc3MgQ29udGFjdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuPzogVG9rZW4pIHt9XG5cbiAgYXN5bmMgY3JlYXRlQ29udGFjdChjb250YWN0OiBDb250YWN0KTogUHJvbWlzZTxDb250YWN0PiB7XG5cbiAgICByZXR1cm4gYXdhaXQgYXhpb3MucG9zdCgnL2FwcHMvYXBpL2NvbnRhY3QvY3JlYXRlJywgeydjb250YWN0JzogY29udGFjdH0gLHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyB0aGlzLnRva2VuPy5jdXJyZW50VG9rZW5cbiAgICAgIH1cbiAgICB9KS50aGVuKCggcmVzcG9uc2UgKSA9PiB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUNvbnRhY3QoY29udGFjdDogQ29udGFjdCk6IFByb21pc2U8Q29udGFjdD4ge1xuXG4gICAgcmV0dXJuIGF3YWl0IGF4aW9zLnB1dCgnL2FwcHMvYXBpL2NvbnRhY3QvdXBkYXRlLycgKyBjb250YWN0LnV1aWQsIHsnY29udGFjdCc6IGNvbnRhY3R9ICx7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy50b2tlbj8uY3VycmVudFRva2VuXG4gICAgICB9XG4gICAgfSkudGhlbigoIHJlc3BvbnNlICkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRDb250YWN0cyhzZWFyY2hRdWVyeTogU3RyaW5nLCBwYWdlOiBOdW1iZXIsIHNob3A6IFNob3ApOiBQcm9taXNlPENvbnRhY3RbXT4ge1xuXG4gICAgcmV0dXJuIGF3YWl0IGF4aW9zLmdldCgnL2FwcHMvYXBpL2NvbnRhY3QvYWxsYnlzaG9wLycgKyBzaG9wLnV1aWQgKyAnP3Rlcm09JyArIHNlYXJjaFF1ZXJ5ICsgJyZwYWdlPScgKyBwYWdlLCB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgdGhpcy50b2tlbj8uY3VycmVudFRva2VuXG4gICAgICAgIH1cbiAgICB9KS50aGVuKCggcmVzcG9uc2UgKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGEubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgY29udGFjdCA9IG5ldyBDb250YWN0O1xuICAgICAgICAgIGNvbnRhY3QucGFyc2VGcm9tSnNvbih7Y29udGFjdDogaXRlbX0pO1xuICAgICAgICAgIHJldHVybiBjb250YWN0O1xuICAgICAgICB9KVxuICAgIFxuICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udGFjdFNlcnZpY2VcbiIsImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcbmNvbnN0IGJ5dGVUb0hleCA9IFtdO1xuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7ICsraSkge1xuICAgIGJ5dGVUb0hleC5wdXNoKChpICsgMHgxMDApLnRvU3RyaW5nKDE2KS5zbGljZSgxKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdW5zYWZlU3RyaW5naWZ5KGFyciwgb2Zmc2V0ID0gMCkge1xuICAgIHJldHVybiAoYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAwXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDFdXSArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMl1dICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAzXV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDRdXSArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgNV1dICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA2XV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDddXSArXG4gICAgICAgICctJyArXG4gICAgICAgIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgOF1dICtcbiAgICAgICAgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA5XV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEwXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDExXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEyXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDEzXV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDE0XV0gK1xuICAgICAgICBieXRlVG9IZXhbYXJyW29mZnNldCArIDE1XV0pLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBzdHJpbmdpZnkoYXJyLCBvZmZzZXQgPSAwKSB7XG4gICAgY29uc3QgdXVpZCA9IHVuc2FmZVN0cmluZ2lmeShhcnIsIG9mZnNldCk7XG4gICAgaWYgKCF2YWxpZGF0ZSh1dWlkKSkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZ2lmaWVkIFVVSUQgaXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdXVpZDtcbn1cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ2lmeTtcbiIsImxldCBnZXRSYW5kb21WYWx1ZXM7XG5jb25zdCBybmRzOCA9IG5ldyBVaW50OEFycmF5KDE2KTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJuZygpIHtcbiAgICBpZiAoIWdldFJhbmRvbVZhbHVlcykge1xuICAgICAgICBpZiAodHlwZW9mIGNyeXB0byA9PT0gJ3VuZGVmaW5lZCcgfHwgIWNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY3J5cHRvLmdldFJhbmRvbVZhbHVlcygpIG5vdCBzdXBwb3J0ZWQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdXVpZGpzL3V1aWQjZ2V0cmFuZG9tdmFsdWVzLW5vdC1zdXBwb3J0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBnZXRSYW5kb21WYWx1ZXMgPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFJhbmRvbVZhbHVlcyhybmRzOCk7XG59XG4iLCJjb25zdCByYW5kb21VVUlEID0gdHlwZW9mIGNyeXB0byAhPT0gJ3VuZGVmaW5lZCcgJiYgY3J5cHRvLnJhbmRvbVVVSUQgJiYgY3J5cHRvLnJhbmRvbVVVSUQuYmluZChjcnlwdG8pO1xuZXhwb3J0IGRlZmF1bHQgeyByYW5kb21VVUlEIH07XG4iLCJpbXBvcnQgbmF0aXZlIGZyb20gJy4vbmF0aXZlLmpzJztcbmltcG9ydCBybmcgZnJvbSAnLi9ybmcuanMnO1xuaW1wb3J0IHsgdW5zYWZlU3RyaW5naWZ5IH0gZnJvbSAnLi9zdHJpbmdpZnkuanMnO1xuZnVuY3Rpb24gdjQob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgICBpZiAobmF0aXZlLnJhbmRvbVVVSUQgJiYgIWJ1ZiAmJiAhb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmF0aXZlLnJhbmRvbVVVSUQoKTtcbiAgICB9XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgY29uc3Qgcm5kcyA9IG9wdGlvbnMucmFuZG9tIHx8IChvcHRpb25zLnJuZyB8fCBybmcpKCk7XG4gICAgcm5kc1s2XSA9IChybmRzWzZdICYgMHgwZikgfCAweDQwO1xuICAgIHJuZHNbOF0gPSAocm5kc1s4XSAmIDB4M2YpIHwgMHg4MDtcbiAgICBpZiAoYnVmKSB7XG4gICAgICAgIG9mZnNldCA9IG9mZnNldCB8fCAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyArK2kpIHtcbiAgICAgICAgICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHJuZHNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG4gICAgcmV0dXJuIHVuc2FmZVN0cmluZ2lmeShybmRzKTtcbn1cbmV4cG9ydCBkZWZhdWx0IHY0O1xuIiwiaW1wb3J0IHt2NCBhcyB1dWlkdjR9IGZyb20gJ3V1aWQnXG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50IHtcbiAgICB1aWQ6IE51bWJlclxuICAgIGFwcGVuZGl4OiBTdHJpbmdcbiAgICB0aXRsZTogU3RyaW5nXG4gICAgdXVpZDogU3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51aWQgPSAwXG4gICAgICAgIHRoaXMudXVpZCA9IFwiXCJcbiAgICAgICAgdGhpcy5hcHBlbmRpeCA9IFwiXCJcbiAgICAgICAgdGhpcy50aXRsZSA9IFwiXCJcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnVpZCA9IGl0ZW0uYWNjb3VudC51aWRcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS5hY2NvdW50LnV1aWRcbiAgICAgICAgdGhpcy50aXRsZSA9IGl0ZW0uYWNjb3VudC50aXRsZVxuICAgICAgICB0aGlzLmFwcGVuZGl4ID0gaXRlbS5hY2NvdW50LmFwcGVuZGl4XG4gICAgfVxufSIsImltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tICd1dWlkJ1xuaW1wb3J0IHtDb250YWN0fSBmcm9tIFwiLi9jb250YWN0XCJcbmltcG9ydCB7U2hvcH0gZnJvbSBcIi4vc2hvcFwiXG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzIHtcbiAgICB1aWQ6IE51bWJlclxuICAgIHV1aWQ6IFN0cmluZ1xuICAgIGZpcnN0bmFtZTogU3RyaW5nXG4gICAgbGFzdG5hbWU6IFN0cmluZ1xuICAgIHN0cmVldDogU3RyaW5nXG4gICAgaG91c2VOdW1iZXI6IFN0cmluZ1xuICAgIHppcDogU3RyaW5nXG4gICAgY29tcGFueTogU3RyaW5nXG4gICAgY29tcGFueTI6IFN0cmluZ1xuICAgIHBob25lOiBTdHJpbmdcbiAgICBjb3VudHJ5OiBTdHJpbmdcbiAgICB1c3RpZDogU3RyaW5nXG4gICAgY2l0eTogU3RyaW5nXG4gICAgZW1haWw6IFN0cmluZ1xuICAgIGNvbnRhY3Q6IENvbnRhY3RcbiAgICB0eXBlOiBOdW1iZXJcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnVpZCA9IDBcbiAgICAgICAgdGhpcy51dWlkID0gXCJcIlxuICAgICAgICB0aGlzLmZpcnN0bmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5sYXN0bmFtZSA9IFwiXCJcbiAgICAgICAgdGhpcy5zdHJlZXQgPSBcIlwiXG4gICAgICAgIHRoaXMuaG91c2VOdW1iZXIgPSBcIlwiXG4gICAgICAgIHRoaXMuemlwID0gXCJcIlxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBcIlwiXG4gICAgICAgIHRoaXMuY29tcGFueTIgPSBcIlwiXG4gICAgICAgIHRoaXMuY2l0eSA9IFwiXCJcbiAgICAgICAgdGhpcy5lbWFpbCA9IFwiXCJcbiAgICAgICAgdGhpcy5jb3VudHJ5ID0gXCJcIlxuICAgICAgICB0aGlzLnVzdGlkID0gXCJcIlxuICAgICAgICB0aGlzLmNvbnRhY3QgPSBuZXcgQ29udGFjdCgpXG4gICAgICAgIHRoaXMudHlwZSA9IDBcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnVpZCA9IGl0ZW0udWlkXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0udXVpZFxuICAgICAgICB0aGlzLmZpcnN0bmFtZSA9IGl0ZW0uZmlyc3RuYW1lXG4gICAgICAgIHRoaXMubGFzdG5hbWUgPSBpdGVtLmxhc3RuYW1lXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gaXRlbS5zdHJlZXRcbiAgICAgICAgdGhpcy5ob3VzZU51bWJlciA9IGl0ZW0uaG91c2VOdW1iZXJcbiAgICAgICAgdGhpcy56aXAgPSBpdGVtLnppcFxuICAgICAgICB0aGlzLmNvbXBhbnkgPSBpdGVtLmNvbXBhbnlcbiAgICAgICAgdGhpcy5jb21wYW55MiA9IGl0ZW0uY29tcGFueTJcbiAgICAgICAgdGhpcy5waG9uZSA9IGl0ZW0ucGhvbmVcbiAgICAgICAgdGhpcy5jaXR5ID0gaXRlbS5jaXR5XG4gICAgICAgIHRoaXMuZW1haWwgPSBpdGVtLmVtYWlsXG4gICAgICAgIHRoaXMudHlwZSA9IGl0ZW0udHlwZVxuICAgICAgICB0aGlzLmNvdW50cnkgPSBpdGVtLmNvdW50cnlcbiAgICAgICAgdGhpcy51c3RpZCA9IGl0ZW0udXN0aWRcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Gb3JtRGF0YShmb3JtZGF0YTogYW55KSB7XG5cbiAgICAgICAgdGhpcy5lbWFpbCA9IGZvcm1kYXRhLmVtYWlsXG4gICAgICAgIHRoaXMuY29tcGFueSA9IGZvcm1kYXRhLmNvbXBhbnlcbiAgICAgICAgdGhpcy5maXJzdG5hbWUgPSBmb3JtZGF0YS5maXJzdG5hbWVcbiAgICAgICAgdGhpcy5sYXN0bmFtZSA9IGZvcm1kYXRhLmxhc3RuYW1lXG4gICAgICAgIHRoaXMuc3RyZWV0ID0gZm9ybWRhdGEuc3RyZWV0XG4gICAgICAgIHRoaXMuaG91c2VOdW1iZXIgPSBmb3JtZGF0YS5ob3VzZU51bWJlclxuICAgICAgICB0aGlzLnppcCA9IGZvcm1kYXRhLnppcFxuICAgICAgICB0aGlzLmNpdHkgPSBmb3JtZGF0YS5jaXR5XG4gICAgICAgIHRoaXMucGhvbmUgPSBmb3JtZGF0YS5waG9uZVxuICAgICAgICB0aGlzLmNvdW50cnkgPSBmb3JtZGF0YS5jb3VudHJ5XG4gICAgICAgIHRoaXMudXN0aWQgPSBmb3JtZGF0YS51c3RpZFxuICAgIH1cbn0iLCJpbnRlcmZhY2UgUGFyYW0ge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIFNwZWNpYWxQcm9kdWN0VHlwZU9iamVjdCB7XG4gICAgcGFyYW1zOiBBcnJheTxQYXJhbT4gPSBbXVxuICAgIHR5cDogTnVtYmVyID0gMFxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy50eXAgPSBpdGVtLnR5cFxuICAgICAgICB0aGlzLnBhcmFtcyA9IGl0ZW0ucGFyYW1zXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvZHVjdCB7XG4gICAgaWQ6IE51bWJlciA9IDBcbiAgICB0aXRsZTogU3RyaW5nID0gXCJcIlxuICAgIHV1aWQ6IFN0cmluZyA9IFwiXCJcbiAgICBzcGVjaWFsUHJvZHVjdFR5cGVPYmplY3Q6IFNwZWNpYWxQcm9kdWN0VHlwZU9iamVjdCA9IG5ldyBTcGVjaWFsUHJvZHVjdFR5cGVPYmplY3QoKVxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5pZCA9IGl0ZW0uaWRcbiAgICAgICAgdGhpcy50aXRsZSA9IGl0ZW0udGl0bGVcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS51dWlkXG4gICAgICAgIHRoaXMuc3BlY2lhbFByb2R1Y3RUeXBlT2JqZWN0LnBhcnNlRnJvbUpzb24oaXRlbS5zcGVjaWFsUHJvZHVjdFR5cGVPYmplY3QpXG4gICAgfVxufSIsImV4cG9ydCBjbGFzcyBQcmljZSB7XHJcbiAgICBuZXQ6IG51bWJlciA9IDBcclxuICAgIHZhdDogbnVtYmVyID0gMFxyXG4gICAgZ3Jvc3M6IG51bWJlciA9IDBcclxuXHJcbiAgICBhbGxOZXQ6IG51bWJlciA9IDBcclxuICAgIGFsbFZhdDogbnVtYmVyID0gMFxyXG4gICAgYWxsR3Jvc3M6IG51bWJlciA9IDBcclxuXHJcbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xyXG4gICAgICAgIHRoaXMubmV0ID0gaXRlbS5uZXRcclxuICAgICAgICB0aGlzLnZhdCA9IGl0ZW0udmF0XHJcbiAgICAgICAgdGhpcy5ncm9zcyA9IGl0ZW0uZ3Jvc3NcclxuICAgICAgICB0aGlzLmFsbE5ldCA9IGl0ZW0uYWxsTmV0XHJcbiAgICAgICAgdGhpcy5hbGxWYXQgPSBpdGVtLmFsbFZhdFxyXG4gICAgICAgIHRoaXMuYWxsR3Jvc3MgPSBpdGVtLmFsbEdyb3NzXHJcbiAgICB9XHJcbn0iLCJpbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCdcclxuaW1wb3J0IHtQcm9kdWN0fSBmcm9tIFwiLi9wcm9kdWN0XCJcclxuaW1wb3J0IHtQcmljZX0gZnJvbSBcIi4vcHJpY2VcIlxyXG5cclxuZXhwb3J0IGNsYXNzIFBvcyB7XHJcbiAgICB1dWlkOiBTdHJpbmcgPSBcIlwiXHJcbiAgICBwcm9kdWN0OiBQcm9kdWN0ID0gbmV3IFByb2R1Y3QoKVxyXG4gICAgc3RhdHVzOiBOdW1iZXIgPSAxMFxyXG4gICAgY291bnQ6IE51bWJlciA9IDFcclxuICAgIHByaWNlOiBQcmljZSA9IG5ldyBQcmljZSgpXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy51dWlkID0gdXVpZHY0KClcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xyXG4gICAgICAgIHRoaXMuY291bnQgPSBpdGVtLnByaWNlLmNvdW50XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpdGVtLnN0YXR1c1xyXG4gICAgICAgIHRoaXMudXVpZCA9IGl0ZW0udXVpZFxyXG4gICAgICAgIHRoaXMucHJpY2UucGFyc2VGcm9tSnNvbihpdGVtLnByaWNlKVxyXG4gICAgICAgIHRoaXMucHJvZHVjdC5wYXJzZUZyb21Kc29uKGl0ZW0ucHJvZHVjdClcclxuICAgIH1cclxufSIsImV4cG9ydCBjbGFzcyBQYXltZW50IHtcbiAgICB1aWQ6IE51bWJlciA9IDBcbiAgICB0aXRsZTogU3RyaW5nID0gXCJcIlxuICAgIHV1aWQ6IFN0cmluZyA9IFwiXCJcblxuICAgIHBhcnNlRnJvbUpzb24oaXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMudWlkID0gaXRlbS5wYXltZW50LnVpZFxuICAgICAgICB0aGlzLnRpdGxlID0gaXRlbS5wYXltZW50LnRpdGxlXG4gICAgICAgIHRoaXMudXVpZCA9IFN0cmluZyhpdGVtLnBheW1lbnQudXVpZClcbiAgICB9XG59IiwiXG5leHBvcnQgY2xhc3MgU2hpcHBpbmcge1xuICAgIHVpZDogTnVtYmVyID0gMFxuICAgIHRpdGxlOiBTdHJpbmcgPSBcIlwiXG4gICAgdXVpZDogU3RyaW5nID0gXCJcIlxuXG4gICAgcGFyc2VGcm9tSnNvbihpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy51aWQgPSBpdGVtLnNoaXBwaW5nLnVpZFxuICAgICAgICB0aGlzLnRpdGxlID0gaXRlbS5zaGlwcGluZy50aXRsZVxuICAgICAgICB0aGlzLnV1aWQgPSBTdHJpbmcoaXRlbS5zaGlwcGluZy51dWlkKVxuICAgIH1cbn0iLCJpbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCdcbmltcG9ydCB7Q29udGFjdH0gZnJvbSBcIi4vY29udGFjdFwiXG5pbXBvcnQge0FjY291bnR9IGZyb20gXCIuL2FjY291bnRcIlxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tIFwiLi9hZGRyZXNzXCJcbmltcG9ydCB7UG9zfSBmcm9tIFwiLi9wb3NcIlxuaW1wb3J0IHtQYXltZW50fSBmcm9tIFwiLi9wYXltZW50XCJcbmltcG9ydCB7U2hpcHBpbmd9IGZyb20gXCIuL3NoaXBwaW5nXCJcbmltcG9ydCB7U2hvcH0gZnJvbSBcIi4vc2hvcFwiXG5cbmNsYXNzIE9yZGVyIHtcblxuICAgIGFsaWFzOiBTdHJpbmdcbiAgICB1dWlkOiBTdHJpbmdcbiAgICBkcmFmdDogQm9vbGVhblxuICAgIHNhdmVkOiBib29sZWFuXG5cbiAgICBjb250YWN0OiBDb250YWN0ID0gbmV3IENvbnRhY3QoKVxuICAgIGFjY291bnQ6IEFjY291bnQgPSBuZXcgQWNjb3VudCgpXG4gICAgZGVsaXZlcnlBZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKVxuICAgIHNlbmRlckFkZHJlc3M6IEFkZHJlc3MgPSBuZXcgQWRkcmVzcygpXG4gICAgaW52b2ljZUFkZHJlc3M6IEFkZHJlc3MgPSBuZXcgQWRkcmVzcygpXG5cbiAgICBwb3NpdGlvbnM6IEFycmF5PFBvcz4gPSBbXVxuXG4gICAgcGF5bWVudDogUGF5bWVudCA9IG5ldyBQYXltZW50KClcbiAgICBzaGlwcGluZzogU2hpcHBpbmcgPSBuZXcgU2hpcHBpbmcoKVxuXG4gICAgYmFza2V0RmllbGQxOiBTdHJpbmdcbiAgICBiYXNrZXRGaWVsZDI6IFN0cmluZ1xuXG4gICAgdHlwZTogTnVtYmVyXG4gICAgc2hvcDogU2hvcCA9IG5ldyBTaG9wKClcblxuICAgIG5ldDogbnVtYmVyXG4gICAgdmF0OiBudW1iZXJcbiAgICBncm9zczogbnVtYmVyXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51dWlkID0gdXVpZHY0KClcbiAgICAgICAgdGhpcy5iYXNrZXRGaWVsZDEgPSBcIlwiXG4gICAgICAgIHRoaXMuYmFza2V0RmllbGQyID0gXCJcIlxuICAgICAgICB0aGlzLmRyYWZ0ID0gdHJ1ZVxuICAgICAgICB0aGlzLnNhdmVkID0gZmFsc2VcbiAgICB9XG5cbiAgICBhZGRQb3NpdGlvbihwb3M6IFBvcykge1xuICAgICAgICB0aGlzLnBvc2l0aW9ucy5wdXNoKHBvcylcbiAgICB9XG5cbiAgICBwYXJzZUZyb21Kc29uKGl0ZW06IGFueSkge1xuICAgICAgICB0aGlzLnNob3AucGFyc2VGcm9tSnNvbihpdGVtKVxuICAgICAgICB0aGlzLmNvbnRhY3QucGFyc2VGcm9tSnNvbihpdGVtKVxuICAgICAgICB0aGlzLmFjY291bnQucGFyc2VGcm9tSnNvbihpdGVtKVxuICAgICAgICB0aGlzLnNoaXBwaW5nLnBhcnNlRnJvbUpzb24oaXRlbSlcbiAgICAgICAgdGhpcy5wYXltZW50LnBhcnNlRnJvbUpzb24oaXRlbSlcbiAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzcy5wYXJzZUZyb21Kc29uKGl0ZW0uaW52b2ljZUFkZHJlc3MpXG4gICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzLnBhcnNlRnJvbUpzb24oaXRlbS5kZWxpdmVyeUFkZHJlc3MpXG4gICAgICAgIHRoaXMuc2VuZGVyQWRkcmVzcy5wYXJzZUZyb21Kc29uKGl0ZW0uc2VuZGVyQWRkcmVzcylcbiAgICAgICAgdGhpcy5hbGlhcyA9IGl0ZW0uYWxpYXNcbiAgICAgICAgdGhpcy51dWlkID0gaXRlbS51dWlkXG4gICAgICAgIHRoaXMudHlwZSA9IGl0ZW0udHlwZVxuICAgICAgICB0aGlzLmRyYWZ0ID0gaXRlbS5kcmFmdFxuICAgICAgICB0aGlzLnNhdmVkID0gdHJ1ZVxuICAgICAgICB0aGlzLmJhc2tldEZpZWxkMSA9IGl0ZW0uYmFza2V0RmllbGQxXG4gICAgICAgIHRoaXMuYmFza2V0RmllbGQyID0gaXRlbS5iYXNrZXRGaWVsZDJcblxuICAgICAgICBpdGVtLnBvc2l0aW9ucy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIGxldCBwb3MgPSBuZXcgUG9zKClcbiAgICAgICAgICAgIHBvcy5wYXJzZUZyb21Kc29uKGUpXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9ucy5wdXNoKHBvcylcbiAgICAgICAgfSlcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyXG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XG5wdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcblJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxuQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG5MT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxuT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXG5cbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xuICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xuICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2V4dGVuZHMoZCwgYikge1xuICBpZiAodHlwZW9mIGIgIT09IFwiZnVuY3Rpb25cIiAmJiBiICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoYikgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xufVxuXG5leHBvcnQgdmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XG4gIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XG4gICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XG4gICAgICB9XG4gICAgICByZXR1cm4gdDtcbiAgfVxuICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XG4gIHZhciB0ID0ge307XG4gIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgdFtwXSA9IHNbcF07XG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgfVxuICByZXR1cm4gdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19lc0RlY29yYXRlKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7XG4gIGZ1bmN0aW9uIGFjY2VwdChmKSB7IGlmIChmICE9PSB2b2lkIDAgJiYgdHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZ1bmN0aW9uIGV4cGVjdGVkXCIpOyByZXR1cm4gZjsgfVxuICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSBcImdldHRlclwiID8gXCJnZXRcIiA6IGtpbmQgPT09IFwic2V0dGVyXCIgPyBcInNldFwiIDogXCJ2YWx1ZVwiO1xuICB2YXIgdGFyZ2V0ID0gIWRlc2NyaXB0b3JJbiAmJiBjdG9yID8gY29udGV4dEluW1wic3RhdGljXCJdID8gY3RvciA6IGN0b3IucHJvdG90eXBlIDogbnVsbDtcbiAgdmFyIGRlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySW4gfHwgKHRhcmdldCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSkgOiB7fSk7XG4gIHZhciBfLCBkb25lID0gZmFsc2U7XG4gIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgY29udGV4dCA9IHt9O1xuICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSBcImFjY2Vzc1wiID8ge30gOiBjb250ZXh0SW5bcF07XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIgPSBmdW5jdGlvbiAoZikgeyBpZiAoZG9uZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgaW5pdGlhbGl6ZXJzIGFmdGVyIGRlY29yYXRpb24gaGFzIGNvbXBsZXRlZFwiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07XG4gICAgICB2YXIgcmVzdWx0ID0gKDAsIGRlY29yYXRvcnNbaV0pKGtpbmQgPT09IFwiYWNjZXNzb3JcIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTtcbiAgICAgIGlmIChraW5kID09PSBcImFjY2Vzc29yXCIpIHtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB2b2lkIDApIGNvbnRpbnVlO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgfHwgdHlwZW9mIHJlc3VsdCAhPT0gXCJvYmplY3RcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZFwiKTtcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuZ2V0KSkgZGVzY3JpcHRvci5nZXQgPSBfO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5zZXQpKSBkZXNjcmlwdG9yLnNldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKF8gPSBhY2NlcHQocmVzdWx0KSkge1xuICAgICAgICAgIGlmIChraW5kID09PSBcImZpZWxkXCIpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXztcbiAgICAgIH1cbiAgfVxuICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7XG4gIGRvbmUgPSB0cnVlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHtcbiAgdmFyIHVzZVZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+IDI7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW5pdGlhbGl6ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7XG4gIH1cbiAgcmV0dXJuIHVzZVZhbHVlID8gdmFsdWUgOiB2b2lkIDA7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19wcm9wS2V5KHgpIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN5bWJvbFwiID8geCA6IFwiXCIuY29uY2F0KHgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fc2V0RnVuY3Rpb25OYW1lKGYsIG5hbWUsIHByZWZpeCkge1xuICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gXCJbXCIuY29uY2F0KG5hbWUuZGVzY3JpcHRpb24sIFwiXVwiKSA6IFwiXCI7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgXCJuYW1lXCIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gXCJcIi5jb25jYXQocHJlZml4LCBcIiBcIiwgbmFtZSkgOiBuYW1lIH0pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcbiAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcbiAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOyByZXR1cm4gdFsxXTsgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZyA9IE9iamVjdC5jcmVhdGUoKHR5cGVvZiBJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSk7XG4gIHJldHVybiBnLm5leHQgPSB2ZXJiKDApLCBnW1widGhyb3dcIl0gPSB2ZXJiKDEpLCBnW1wicmV0dXJuXCJdID0gdmVyYigyKSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cbiAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgd2hpbGUgKGcgJiYgKGcgPSAwLCBvcFswXSAmJiAoXyA9IDApKSwgXykgdHJ5IHtcbiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5W1wicmV0dXJuXCJdIDogb3BbMF0gPyB5W1widGhyb3dcIl0gfHwgKCh0ID0geVtcInJldHVyblwiXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XG4gICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cbiAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59XG5cbmV4cG9ydCB2YXIgX19jcmVhdGVCaW5kaW5nID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gIGlmICghZGVzYyB8fCAoXCJnZXRcIiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7XG4gICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbVtrXTsgfSB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICBvW2syXSA9IG1ba107XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBvKSB7XG4gIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIF9fY3JlYXRlQmluZGluZyhvLCBtLCBwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcbiAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcbiAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XG4gIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xuICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcbiAgICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcbiAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIW0pIHJldHVybiBvO1xuICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcbiAgdHJ5IHtcbiAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xuICB9XG4gIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxuICBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XG4gICAgICB9XG4gICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cbiAgfVxuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xuICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcbiAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcbiAgcmV0dXJuIGFyO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcbiAgZm9yICh2YXIgcyA9IDAsIGkgPSAwLCBpbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBpbDsgaSsrKSBzICs9IGFyZ3VtZW50c1tpXS5sZW5ndGg7XG4gIGZvciAodmFyIHIgPSBBcnJheShzKSwgayA9IDAsIGkgPSAwOyBpIDwgaWw7IGkrKylcbiAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxuICAgICAgICAgIHJba10gPSBhW2pdO1xuICByZXR1cm4gcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXkodG8sIGZyb20sIHBhY2spIHtcbiAgaWYgKHBhY2sgfHwgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aCwgYXI7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcbiAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xuICAgICAgICAgIGFyW2ldID0gZnJvbVtpXTtcbiAgICAgIH1cbiAgfVxuICByZXR1cm4gdG8uY29uY2F0KGFyIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xuICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XG4gIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG4gIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XG4gIHJldHVybiBpID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT09IFwiZnVuY3Rpb25cIiA/IEFzeW5jSXRlcmF0b3IgOiBPYmplY3QpLnByb3RvdHlwZSksIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiwgYXdhaXRSZXR1cm4pLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIGF3YWl0UmV0dXJuKGYpIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUodikudGhlbihmLCByZWplY3QpOyB9OyB9XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpZiAoZ1tuXSkgeyBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyBpZiAoZikgaVtuXSA9IGYoaVtuXSk7IH0gfVxuICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XG4gIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxuICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XG4gIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgeyByZXN1bWUoXCJ0aHJvd1wiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XG4gIHZhciBpLCBwO1xuICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIsIGZ1bmN0aW9uIChlKSB7IHRocm93IGU7IH0pLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xuICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBmYWxzZSB9IDogZiA/IGYodikgOiB2OyB9IDogZjsgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XG4gIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG4gIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7XG4gIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09IFwiZnVuY3Rpb25cIiA/IF9fdmFsdWVzKG8pIDogb1tTeW1ib2wuaXRlcmF0b3JdKCksIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpKTtcbiAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxuICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7IFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGZ1bmN0aW9uKHYpIHsgcmVzb2x2ZSh7IHZhbHVlOiB2LCBkb25lOiBkIH0pOyB9LCByZWplY3QpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX21ha2VUZW1wbGF0ZU9iamVjdChjb29rZWQsIHJhdykge1xuICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxuICByZXR1cm4gY29va2VkO1xufTtcblxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgb1tcImRlZmF1bHRcIl0gPSB2O1xufTtcblxudmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgIHZhciBhciA9IFtdO1xuICAgIGZvciAodmFyIGsgaW4gbykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7XG4gICAgcmV0dXJuIGFyO1xuICB9O1xuICByZXR1cm4gb3duS2V5cyhvKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XG4gIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcbiAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRHZXQocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiBraW5kID09PSBcIm1cIiA/IGYgOiBraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwibVwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO1xuICBpZiAoa2luZCA9PT0gXCJhXCIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXJcIik7XG4gIGlmICh0eXBlb2Ygc3RhdGUgPT09IFwiZnVuY3Rpb25cIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7XG4gIHJldHVybiAoa2luZCA9PT0gXCJhXCIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEluKHN0YXRlLCByZWNlaXZlcikge1xuICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgcmVjZWl2ZXIgIT09IFwiZnVuY3Rpb25cIikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdFwiKTtcbiAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlKGVudiwgdmFsdWUsIGFzeW5jKSB7XG4gIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgdmFsdWUgIT09IFwiZnVuY3Rpb25cIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk9iamVjdCBleHBlY3RlZC5cIik7XG4gICAgdmFyIGRpc3Bvc2UsIGlubmVyO1xuICAgIGlmIChhc3luYykge1xuICAgICAgaWYgKCFTeW1ib2wuYXN5bmNEaXNwb3NlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jRGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XG4gICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmFzeW5jRGlzcG9zZV07XG4gICAgfVxuICAgIGlmIChkaXNwb3NlID09PSB2b2lkIDApIHtcbiAgICAgIGlmICghU3ltYm9sLmRpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuZGlzcG9zZSBpcyBub3QgZGVmaW5lZC5cIik7XG4gICAgICBkaXNwb3NlID0gdmFsdWVbU3ltYm9sLmRpc3Bvc2VdO1xuICAgICAgaWYgKGFzeW5jKSBpbm5lciA9IGRpc3Bvc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGlzcG9zZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IG5vdCBkaXNwb3NhYmxlLlwiKTtcbiAgICBpZiAoaW5uZXIpIGRpc3Bvc2UgPSBmdW5jdGlvbigpIHsgdHJ5IHsgaW5uZXIuY2FsbCh0aGlzKTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7IH0gfTtcbiAgICBlbnYuc3RhY2sucHVzaCh7IHZhbHVlOiB2YWx1ZSwgZGlzcG9zZTogZGlzcG9zZSwgYXN5bmM6IGFzeW5jIH0pO1xuICB9XG4gIGVsc2UgaWYgKGFzeW5jKSB7XG4gICAgZW52LnN0YWNrLnB1c2goeyBhc3luYzogdHJ1ZSB9KTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbnZhciBfU3VwcHJlc3NlZEVycm9yID0gdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XG4gIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZGlzcG9zZVJlc291cmNlcyhlbnYpIHtcbiAgZnVuY3Rpb24gZmFpbChlKSB7XG4gICAgZW52LmVycm9yID0gZW52Lmhhc0Vycm9yID8gbmV3IF9TdXBwcmVzc2VkRXJyb3IoZSwgZW52LmVycm9yLCBcIkFuIGVycm9yIHdhcyBzdXBwcmVzc2VkIGR1cmluZyBkaXNwb3NhbC5cIikgOiBlO1xuICAgIGVudi5oYXNFcnJvciA9IHRydWU7XG4gIH1cbiAgdmFyIHIsIHMgPSAwO1xuICBmdW5jdGlvbiBuZXh0KCkge1xuICAgIHdoaWxlIChyID0gZW52LnN0YWNrLnBvcCgpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIXIuYXN5bmMgJiYgcyA9PT0gMSkgcmV0dXJuIHMgPSAwLCBlbnYuc3RhY2sucHVzaChyKSwgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihuZXh0KTtcbiAgICAgICAgaWYgKHIuZGlzcG9zZSkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSByLmRpc3Bvc2UuY2FsbChyLnZhbHVlKTtcbiAgICAgICAgICBpZiAoci5hc3luYykgcmV0dXJuIHMgfD0gMiwgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihuZXh0LCBmdW5jdGlvbihlKSB7IGZhaWwoZSk7IHJldHVybiBuZXh0KCk7IH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgcyB8PSAxO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgZmFpbChlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHMgPT09IDEpIHJldHVybiBlbnYuaGFzRXJyb3IgPyBQcm9taXNlLnJlamVjdChlbnYuZXJyb3IpIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGVudi5oYXNFcnJvcikgdGhyb3cgZW52LmVycm9yO1xuICB9XG4gIHJldHVybiBuZXh0KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbihwYXRoLCBwcmVzZXJ2ZUpzeCkge1xuICBpZiAodHlwZW9mIHBhdGggPT09IFwic3RyaW5nXCIgJiYgL15cXC5cXC4/XFwvLy50ZXN0KHBhdGgpKSB7XG4gICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4odHN4KSR8KCg/OlxcLmQpPykoKD86XFwuW14uL10rPyk/KVxcLihbY21dPyl0cyQvaSwgZnVuY3Rpb24gKG0sIHRzeCwgZCwgZXh0LCBjbSkge1xuICAgICAgICAgIHJldHVybiB0c3ggPyBwcmVzZXJ2ZUpzeCA/IFwiLmpzeFwiIDogXCIuanNcIiA6IGQgJiYgKCFleHQgfHwgIWNtKSA/IG0gOiAoZCArIGV4dCArIFwiLlwiICsgY20udG9Mb3dlckNhc2UoKSArIFwianNcIik7XG4gICAgICB9KTtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBfX2V4dGVuZHMsXG4gIF9fYXNzaWduLFxuICBfX3Jlc3QsXG4gIF9fZGVjb3JhdGUsXG4gIF9fcGFyYW0sXG4gIF9fZXNEZWNvcmF0ZSxcbiAgX19ydW5Jbml0aWFsaXplcnMsXG4gIF9fcHJvcEtleSxcbiAgX19zZXRGdW5jdGlvbk5hbWUsXG4gIF9fbWV0YWRhdGEsXG4gIF9fYXdhaXRlcixcbiAgX19nZW5lcmF0b3IsXG4gIF9fY3JlYXRlQmluZGluZyxcbiAgX19leHBvcnRTdGFyLFxuICBfX3ZhbHVlcyxcbiAgX19yZWFkLFxuICBfX3NwcmVhZCxcbiAgX19zcHJlYWRBcnJheXMsXG4gIF9fc3ByZWFkQXJyYXksXG4gIF9fYXdhaXQsXG4gIF9fYXN5bmNHZW5lcmF0b3IsXG4gIF9fYXN5bmNEZWxlZ2F0b3IsXG4gIF9fYXN5bmNWYWx1ZXMsXG4gIF9fbWFrZVRlbXBsYXRlT2JqZWN0LFxuICBfX2ltcG9ydFN0YXIsXG4gIF9faW1wb3J0RGVmYXVsdCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEdldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZFNldCxcbiAgX19jbGFzc1ByaXZhdGVGaWVsZEluLFxuICBfX2FkZERpc3Bvc2FibGVSZXNvdXJjZSxcbiAgX19kaXNwb3NlUmVzb3VyY2VzLFxuICBfX3Jld3JpdGVSZWxhdGl2ZUltcG9ydEV4dGVuc2lvbixcbn07XG4iLCJleHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pc0Z1bmN0aW9uLmpzLm1hcCIsImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFcnJvckNsYXNzKGNyZWF0ZUltcGwpIHtcbiAgICB2YXIgX3N1cGVyID0gZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgIEVycm9yLmNhbGwoaW5zdGFuY2UpO1xuICAgICAgICBpbnN0YW5jZS5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrO1xuICAgIH07XG4gICAgdmFyIGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpO1xuICAgIGN0b3JGdW5jLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTtcbiAgICBjdG9yRnVuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yRnVuYztcbiAgICByZXR1cm4gY3RvckZ1bmM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGVFcnJvckNsYXNzLmpzLm1hcCIsImltcG9ydCB7IGNyZWF0ZUVycm9yQ2xhc3MgfSBmcm9tICcuL2NyZWF0ZUVycm9yQ2xhc3MnO1xuZXhwb3J0IHZhciBVbnN1YnNjcmlwdGlvbkVycm9yID0gY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIFVuc3Vic2NyaXB0aW9uRXJyb3JJbXBsKGVycm9ycykge1xuICAgICAgICBfc3VwZXIodGhpcyk7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9yc1xuICAgICAgICAgICAgPyBlcnJvcnMubGVuZ3RoICsgXCIgZXJyb3JzIG9jY3VycmVkIGR1cmluZyB1bnN1YnNjcmlwdGlvbjpcXG5cIiArIGVycm9ycy5tYXAoZnVuY3Rpb24gKGVyciwgaSkgeyByZXR1cm4gaSArIDEgKyBcIikgXCIgKyBlcnIudG9TdHJpbmcoKTsgfSkuam9pbignXFxuICAnKVxuICAgICAgICAgICAgOiAnJztcbiAgICAgICAgdGhpcy5uYW1lID0gJ1Vuc3Vic2NyaXB0aW9uRXJyb3InO1xuICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9ycztcbiAgICB9O1xufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1VbnN1YnNjcmlwdGlvbkVycm9yLmpzLm1hcCIsImV4cG9ydCBmdW5jdGlvbiBhcnJSZW1vdmUoYXJyLCBpdGVtKSB7XG4gICAgaWYgKGFycikge1xuICAgICAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgMCA8PSBpbmRleCAmJiBhcnIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcnJSZW1vdmUuanMubWFwIiwiaW1wb3J0IHsgX19yZWFkLCBfX3NwcmVhZEFycmF5LCBfX3ZhbHVlcyB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vdXRpbC9pc0Z1bmN0aW9uJztcbmltcG9ydCB7IFVuc3Vic2NyaXB0aW9uRXJyb3IgfSBmcm9tICcuL3V0aWwvVW5zdWJzY3JpcHRpb25FcnJvcic7XG5pbXBvcnQgeyBhcnJSZW1vdmUgfSBmcm9tICcuL3V0aWwvYXJyUmVtb3ZlJztcbnZhciBTdWJzY3JpcHRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFN1YnNjcmlwdGlvbihpbml0aWFsVGVhcmRvd24pIHtcbiAgICAgICAgdGhpcy5pbml0aWFsVGVhcmRvd24gPSBpbml0aWFsVGVhcmRvd247XG4gICAgICAgIHRoaXMuY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsO1xuICAgIH1cbiAgICBTdWJzY3JpcHRpb24ucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZV8xLCBfYSwgZV8yLCBfYjtcbiAgICAgICAgdmFyIGVycm9ycztcbiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7XG4gICAgICAgICAgICBpZiAoX3BhcmVudGFnZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9wYXJlbnRhZ2VfMSA9IF9fdmFsdWVzKF9wYXJlbnRhZ2UpLCBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCk7ICFfcGFyZW50YWdlXzFfMS5kb25lOyBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50XzEgPSBfcGFyZW50YWdlXzFfMS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRfMS5yZW1vdmUodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVfMV8xKSB7IGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07IH1cbiAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfcGFyZW50YWdlXzFfMSAmJiAhX3BhcmVudGFnZV8xXzEuZG9uZSAmJiAoX2EgPSBfcGFyZW50YWdlXzEucmV0dXJuKSkgX2EuY2FsbChfcGFyZW50YWdlXzEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBfcGFyZW50YWdlLnJlbW92ZSh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaW5pdGlhbEZpbmFsaXplciA9IHRoaXMuaW5pdGlhbFRlYXJkb3duO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oaW5pdGlhbEZpbmFsaXplcikpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmluYWxpemVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGUgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yID8gZS5lcnJvcnMgOiBbZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIF9maW5hbGl6ZXJzID0gdGhpcy5fZmluYWxpemVycztcbiAgICAgICAgICAgIGlmIChfZmluYWxpemVycykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9maW5hbGl6ZXJzXzEgPSBfX3ZhbHVlcyhfZmluYWxpemVycyksIF9maW5hbGl6ZXJzXzFfMSA9IF9maW5hbGl6ZXJzXzEubmV4dCgpOyAhX2ZpbmFsaXplcnNfMV8xLmRvbmU7IF9maW5hbGl6ZXJzXzFfMSA9IF9maW5hbGl6ZXJzXzEubmV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmluYWxpemVyID0gX2ZpbmFsaXplcnNfMV8xLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjRmluYWxpemVyKGZpbmFsaXplcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDogW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoZXJyb3JzKSksIF9fcmVhZChlcnIuZXJyb3JzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaChlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZV8yXzEpIHsgZV8yID0geyBlcnJvcjogZV8yXzEgfTsgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzXzFfMSAmJiAhX2ZpbmFsaXplcnNfMV8xLmRvbmUgJiYgKF9iID0gX2ZpbmFsaXplcnNfMS5yZXR1cm4pKSBfYi5jYWxsKF9maW5hbGl6ZXJzXzEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsbHkgeyBpZiAoZV8yKSB0aHJvdyBlXzIuZXJyb3I7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3Vic2NyaXB0aW9uRXJyb3IoZXJyb3JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaXB0aW9uLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodGVhcmRvd24pIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGVhcmRvd24gJiYgdGVhcmRvd24gIT09IHRoaXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICAgICAgICAgIGV4ZWNGaW5hbGl6ZXIodGVhcmRvd24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRlYXJkb3duIGluc3RhbmNlb2YgU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZWFyZG93bi5jbG9zZWQgfHwgdGVhcmRvd24uX2hhc1BhcmVudCh0aGlzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRlYXJkb3duLl9hZGRQYXJlbnQodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICh0aGlzLl9maW5hbGl6ZXJzID0gKF9hID0gdGhpcy5fZmluYWxpemVycykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogW10pLnB1c2godGVhcmRvd24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBTdWJzY3JpcHRpb24ucHJvdG90eXBlLl9oYXNQYXJlbnQgPSBmdW5jdGlvbiAocGFyZW50KSB7XG4gICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlO1xuICAgICAgICByZXR1cm4gX3BhcmVudGFnZSA9PT0gcGFyZW50IHx8IChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpICYmIF9wYXJlbnRhZ2UuaW5jbHVkZXMocGFyZW50KSk7XG4gICAgfTtcbiAgICBTdWJzY3JpcHRpb24ucHJvdG90eXBlLl9hZGRQYXJlbnQgPSBmdW5jdGlvbiAocGFyZW50KSB7XG4gICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlO1xuICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpID8gKF9wYXJlbnRhZ2UucHVzaChwYXJlbnQpLCBfcGFyZW50YWdlKSA6IF9wYXJlbnRhZ2UgPyBbX3BhcmVudGFnZSwgcGFyZW50XSA6IHBhcmVudDtcbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbi5wcm90b3R5cGUuX3JlbW92ZVBhcmVudCA9IGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7XG4gICAgICAgIGlmIChfcGFyZW50YWdlID09PSBwYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShfcGFyZW50YWdlKSkge1xuICAgICAgICAgICAgYXJyUmVtb3ZlKF9wYXJlbnRhZ2UsIHBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKHRlYXJkb3duKSB7XG4gICAgICAgIHZhciBfZmluYWxpemVycyA9IHRoaXMuX2ZpbmFsaXplcnM7XG4gICAgICAgIF9maW5hbGl6ZXJzICYmIGFyclJlbW92ZShfZmluYWxpemVycywgdGVhcmRvd24pO1xuICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YnNjcmlwdGlvbi5FTVBUWSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlbXB0eSA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgZW1wdHkuY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGVtcHR5O1xuICAgIH0pKCk7XG4gICAgcmV0dXJuIFN1YnNjcmlwdGlvbjtcbn0oKSk7XG5leHBvcnQgeyBTdWJzY3JpcHRpb24gfTtcbmV4cG9ydCB2YXIgRU1QVFlfU1VCU0NSSVBUSU9OID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuICh2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fFxuICAgICAgICAodmFsdWUgJiYgJ2Nsb3NlZCcgaW4gdmFsdWUgJiYgaXNGdW5jdGlvbih2YWx1ZS5yZW1vdmUpICYmIGlzRnVuY3Rpb24odmFsdWUuYWRkKSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnVuc3Vic2NyaWJlKSkpO1xufVxuZnVuY3Rpb24gZXhlY0ZpbmFsaXplcihmaW5hbGl6ZXIpIHtcbiAgICBpZiAoaXNGdW5jdGlvbihmaW5hbGl6ZXIpKSB7XG4gICAgICAgIGZpbmFsaXplcigpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZmluYWxpemVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3Vic2NyaXB0aW9uLmpzLm1hcCIsImV4cG9ydCB2YXIgY29uZmlnID0ge1xuICAgIG9uVW5oYW5kbGVkRXJyb3I6IG51bGwsXG4gICAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiBudWxsLFxuICAgIFByb21pc2U6IHVuZGVmaW5lZCxcbiAgICB1c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nOiBmYWxzZSxcbiAgICB1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6IGZhbHNlLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbmZpZy5qcy5tYXAiLCJpbXBvcnQgeyBfX3JlYWQsIF9fc3ByZWFkQXJyYXkgfSBmcm9tIFwidHNsaWJcIjtcbmV4cG9ydCB2YXIgdGltZW91dFByb3ZpZGVyID0ge1xuICAgIHNldFRpbWVvdXQ6IGZ1bmN0aW9uIChoYW5kbGVyLCB0aW1lb3V0KSB7XG4gICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWxlZ2F0ZSA9IHRpbWVvdXRQcm92aWRlci5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpO1xuICAgIH0sXG4gICAgY2xlYXJUaW1lb3V0OiBmdW5jdGlvbiAoaGFuZGxlKSB7XG4gICAgICAgIHZhciBkZWxlZ2F0ZSA9IHRpbWVvdXRQcm92aWRlci5kZWxlZ2F0ZTtcbiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFyVGltZW91dCkgfHwgY2xlYXJUaW1lb3V0KShoYW5kbGUpO1xuICAgIH0sXG4gICAgZGVsZWdhdGU6IHVuZGVmaW5lZCxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aW1lb3V0UHJvdmlkZXIuanMubWFwIiwiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IHRpbWVvdXRQcm92aWRlciB9IGZyb20gJy4uL3NjaGVkdWxlci90aW1lb3V0UHJvdmlkZXInO1xuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydFVuaGFuZGxlZEVycm9yKGVycikge1xuICAgIHRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9uVW5oYW5kbGVkRXJyb3IgPSBjb25maWcub25VbmhhbmRsZWRFcnJvcjtcbiAgICAgICAgaWYgKG9uVW5oYW5kbGVkRXJyb3IpIHtcbiAgICAgICAgICAgIG9uVW5oYW5kbGVkRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVwb3J0VW5oYW5kbGVkRXJyb3IuanMubWFwIiwiZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7IH1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vb3AuanMubWFwIiwiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi4vY29uZmlnJztcbnZhciBjb250ZXh0ID0gbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBlcnJvckNvbnRleHQoY2IpIHtcbiAgICBpZiAoY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHtcbiAgICAgICAgdmFyIGlzUm9vdCA9ICFjb250ZXh0O1xuICAgICAgICBpZiAoaXNSb290KSB7XG4gICAgICAgICAgICBjb250ZXh0ID0geyBlcnJvclRocm93bjogZmFsc2UsIGVycm9yOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY2IoKTtcbiAgICAgICAgaWYgKGlzUm9vdCkge1xuICAgICAgICAgICAgdmFyIF9hID0gY29udGV4dCwgZXJyb3JUaHJvd24gPSBfYS5lcnJvclRocm93biwgZXJyb3IgPSBfYS5lcnJvcjtcbiAgICAgICAgICAgIGNvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGVycm9yVGhyb3duKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNiKCk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNhcHR1cmVFcnJvcihlcnIpIHtcbiAgICBpZiAoY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcgJiYgY29udGV4dCkge1xuICAgICAgICBjb250ZXh0LmVycm9yVGhyb3duID0gdHJ1ZTtcbiAgICAgICAgY29udGV4dC5lcnJvciA9IGVycjtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvckNvbnRleHQuanMubWFwIiwiaW1wb3J0IHsgX19leHRlbmRzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgaXNTdWJzY3JpcHRpb24sIFN1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IHJlcG9ydFVuaGFuZGxlZEVycm9yIH0gZnJvbSAnLi91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL3V0aWwvbm9vcCc7XG5pbXBvcnQgeyBuZXh0Tm90aWZpY2F0aW9uLCBlcnJvck5vdGlmaWNhdGlvbiwgQ09NUExFVEVfTk9USUZJQ0FUSU9OIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25GYWN0b3JpZXMnO1xuaW1wb3J0IHsgdGltZW91dFByb3ZpZGVyIH0gZnJvbSAnLi9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyJztcbmltcG9ydCB7IGNhcHR1cmVFcnJvciB9IGZyb20gJy4vdXRpbC9lcnJvckNvbnRleHQnO1xudmFyIFN1YnNjcmliZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhTdWJzY3JpYmVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFN1YnNjcmliZXIoZGVzdGluYXRpb24pIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuaXNTdG9wcGVkID0gZmFsc2U7XG4gICAgICAgIGlmIChkZXN0aW5hdGlvbikge1xuICAgICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgICAgICAgICAgIGlmIChpc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHtcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5hZGQoX3RoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBFTVBUWV9PQlNFUlZFUjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIFN1YnNjcmliZXIuY3JlYXRlID0gZnVuY3Rpb24gKG5leHQsIGVycm9yLCBjb21wbGV0ZSkge1xuICAgICAgICByZXR1cm4gbmV3IFNhZmVTdWJzY3JpYmVyKG5leHQsIGVycm9yLCBjb21wbGV0ZSk7XG4gICAgfTtcbiAgICBTdWJzY3JpYmVyLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihuZXh0Tm90aWZpY2F0aW9uKHZhbHVlKSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihlcnJvck5vdGlmaWNhdGlvbihlcnIpLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yKGVycik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YnNjcmliZXIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgICAgIGhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24oQ09NUExFVEVfTk9USUZJQ0FUSU9OLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YnNjcmliZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUuX25leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5uZXh0KHZhbHVlKTtcbiAgICB9O1xuICAgIFN1YnNjcmliZXIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3Vic2NyaWJlci5wcm90b3R5cGUuX2NvbXBsZXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gU3Vic2NyaWJlcjtcbn0oU3Vic2NyaXB0aW9uKSk7XG5leHBvcnQgeyBTdWJzY3JpYmVyIH07XG52YXIgX2JpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZDtcbmZ1bmN0aW9uIGJpbmQoZm4sIHRoaXNBcmcpIHtcbiAgICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7XG59XG52YXIgQ29uc3VtZXJPYnNlcnZlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5wYXJ0aWFsT2JzZXJ2ZXIgPSBwYXJ0aWFsT2JzZXJ2ZXI7XG4gICAgfVxuICAgIENvbnN1bWVyT2JzZXJ2ZXIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyO1xuICAgICAgICBpZiAocGFydGlhbE9ic2VydmVyLm5leHQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLm5leHQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICBDb25zdW1lck9ic2VydmVyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyO1xuICAgICAgICBpZiAocGFydGlhbE9ic2VydmVyLmVycm9yKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgQ29uc3VtZXJPYnNlcnZlci5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBwYXJ0aWFsT2JzZXJ2ZXIgPSB0aGlzLnBhcnRpYWxPYnNlcnZlcjtcbiAgICAgICAgaWYgKHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGhhbmRsZVVuaGFuZGxlZEVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIENvbnN1bWVyT2JzZXJ2ZXI7XG59KCkpO1xudmFyIFNhZmVTdWJzY3JpYmVyID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoU2FmZVN1YnNjcmliZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU2FmZVN1YnNjcmliZXIob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyO1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgIW9ic2VydmVyT3JOZXh0KSB7XG4gICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7XG4gICAgICAgICAgICAgICAgbmV4dDogKG9ic2VydmVyT3JOZXh0ICE9PSBudWxsICYmIG9ic2VydmVyT3JOZXh0ICE9PSB2b2lkIDAgPyBvYnNlcnZlck9yTmV4dCA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogY29tcGxldGUgIT09IG51bGwgJiYgY29tcGxldGUgIT09IHZvaWQgMCA/IGNvbXBsZXRlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0XzE7XG4gICAgICAgICAgICBpZiAoX3RoaXMgJiYgY29uZmlnLnVzZURlcHJlY2F0ZWROZXh0Q29udGV4dCkge1xuICAgICAgICAgICAgICAgIGNvbnRleHRfMSA9IE9iamVjdC5jcmVhdGUob2JzZXJ2ZXJPck5leHQpO1xuICAgICAgICAgICAgICAgIGNvbnRleHRfMS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnVuc3Vic2NyaWJlKCk7IH07XG4gICAgICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyID0ge1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiBvYnNlcnZlck9yTmV4dC5uZXh0ICYmIGJpbmQob2JzZXJ2ZXJPck5leHQubmV4dCwgY29udGV4dF8xKSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IG9ic2VydmVyT3JOZXh0LmVycm9yICYmIGJpbmQob2JzZXJ2ZXJPck5leHQuZXJyb3IsIGNvbnRleHRfMSksXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0XzEpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IG5ldyBDb25zdW1lck9ic2VydmVyKHBhcnRpYWxPYnNlcnZlcik7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFNhZmVTdWJzY3JpYmVyO1xufShTdWJzY3JpYmVyKSk7XG5leHBvcnQgeyBTYWZlU3Vic2NyaWJlciB9O1xuZnVuY3Rpb24gaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHtcbiAgICAgICAgY2FwdHVyZUVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJlcG9ydFVuaGFuZGxlZEVycm9yKGVycm9yKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycikge1xuICAgIHRocm93IGVycjtcbn1cbmZ1bmN0aW9uIGhhbmRsZVN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKSB7XG4gICAgdmFyIG9uU3RvcHBlZE5vdGlmaWNhdGlvbiA9IGNvbmZpZy5vblN0b3BwZWROb3RpZmljYXRpb247XG4gICAgb25TdG9wcGVkTm90aWZpY2F0aW9uICYmIHRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9uU3RvcHBlZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHN1YnNjcmliZXIpOyB9KTtcbn1cbmV4cG9ydCB2YXIgRU1QVFlfT0JTRVJWRVIgPSB7XG4gICAgY2xvc2VkOiB0cnVlLFxuICAgIG5leHQ6IG5vb3AsXG4gICAgZXJyb3I6IGRlZmF1bHRFcnJvckhhbmRsZXIsXG4gICAgY29tcGxldGU6IG5vb3AsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U3Vic2NyaWJlci5qcy5tYXAiLCJleHBvcnQgdmFyIG9ic2VydmFibGUgPSAoZnVuY3Rpb24gKCkgeyByZXR1cm4gKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLm9ic2VydmFibGUpIHx8ICdAQG9ic2VydmFibGUnOyB9KSgpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b2JzZXJ2YWJsZS5qcy5tYXAiLCJleHBvcnQgZnVuY3Rpb24gaWRlbnRpdHkoeCkge1xuICAgIHJldHVybiB4O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aWRlbnRpdHkuanMubWFwIiwiaW1wb3J0IHsgaWRlbnRpdHkgfSBmcm9tICcuL2lkZW50aXR5JztcbmV4cG9ydCBmdW5jdGlvbiBwaXBlKCkge1xuICAgIHZhciBmbnMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICBmbnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIHBpcGVGcm9tQXJyYXkoZm5zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwaXBlRnJvbUFycmF5KGZucykge1xuICAgIGlmIChmbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICB9XG4gICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGZuc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBpcGVkKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBmbnMucmVkdWNlKGZ1bmN0aW9uIChwcmV2LCBmbikgeyByZXR1cm4gZm4ocHJldik7IH0sIGlucHV0KTtcbiAgICB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGlwZS5qcy5tYXAiLCJpbXBvcnQgeyBTYWZlU3Vic2NyaWJlciwgU3Vic2NyaWJlciB9IGZyb20gJy4vU3Vic2NyaWJlcic7XG5pbXBvcnQgeyBpc1N1YnNjcmlwdGlvbiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IG9ic2VydmFibGUgYXMgU3ltYm9sX29ic2VydmFibGUgfSBmcm9tICcuL3N5bWJvbC9vYnNlcnZhYmxlJztcbmltcG9ydCB7IHBpcGVGcm9tQXJyYXkgfSBmcm9tICcuL3V0aWwvcGlwZSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgZXJyb3JDb250ZXh0IH0gZnJvbSAnLi91dGlsL2Vycm9yQ29udGV4dCc7XG52YXIgT2JzZXJ2YWJsZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gT2JzZXJ2YWJsZShzdWJzY3JpYmUpIHtcbiAgICAgICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlO1xuICAgICAgICB9XG4gICAgfVxuICAgIE9ic2VydmFibGUucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbiAob3BlcmF0b3IpIHtcbiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZSgpO1xuICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIG9ic2VydmFibGUub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5zdWJzY3JpYmUgPSBmdW5jdGlvbiAob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgc3Vic2NyaWJlciA9IGlzU3Vic2NyaWJlcihvYnNlcnZlck9yTmV4dCkgPyBvYnNlcnZlck9yTmV4dCA6IG5ldyBTYWZlU3Vic2NyaWJlcihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKTtcbiAgICAgICAgZXJyb3JDb250ZXh0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IF90aGlzLCBvcGVyYXRvciA9IF9hLm9wZXJhdG9yLCBzb3VyY2UgPSBfYS5zb3VyY2U7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChvcGVyYXRvclxuICAgICAgICAgICAgICAgID9cbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3IuY2FsbChzdWJzY3JpYmVyLCBzb3VyY2UpXG4gICAgICAgICAgICAgICAgOiBzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuX3N1YnNjcmliZShzdWJzY3JpYmVyKVxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdWJzY3JpYmVyO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuX3RyeVN1YnNjcmliZSA9IGZ1bmN0aW9uIChzaW5rKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3Vic2NyaWJlKHNpbmspO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHNpbmsuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uIChuZXh0LCBwcm9taXNlQ3Rvcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTtcbiAgICAgICAgcmV0dXJuIG5ldyBwcm9taXNlQ3RvcihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgc3Vic2NyaWJlciA9IG5ldyBTYWZlU3Vic2NyaWJlcih7XG4gICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogcmVzb2x2ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgX3RoaXMuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbiAoc3Vic2NyaWJlcikge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgICB9O1xuICAgIE9ic2VydmFibGUucHJvdG90eXBlW1N5bWJvbF9vYnNlcnZhYmxlXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5waXBlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3BlcmF0aW9ucyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgb3BlcmF0aW9uc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwaXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUudG9Qcm9taXNlID0gZnVuY3Rpb24gKHByb21pc2VDdG9yKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpO1xuICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgICAgIF90aGlzLnN1YnNjcmliZShmdW5jdGlvbiAoeCkgeyByZXR1cm4gKHZhbHVlID0geCk7IH0sIGZ1bmN0aW9uIChlcnIpIHsgcmV0dXJuIHJlamVjdChlcnIpOyB9LCBmdW5jdGlvbiAoKSB7IHJldHVybiByZXNvbHZlKHZhbHVlKTsgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgT2JzZXJ2YWJsZS5jcmVhdGUgPSBmdW5jdGlvbiAoc3Vic2NyaWJlKSB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmUpO1xuICAgIH07XG4gICAgcmV0dXJuIE9ic2VydmFibGU7XG59KCkpO1xuZXhwb3J0IHsgT2JzZXJ2YWJsZSB9O1xuZnVuY3Rpb24gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpIHtcbiAgICB2YXIgX2E7XG4gICAgcmV0dXJuIChfYSA9IHByb21pc2VDdG9yICE9PSBudWxsICYmIHByb21pc2VDdG9yICE9PSB2b2lkIDAgPyBwcm9taXNlQ3RvciA6IGNvbmZpZy5Qcm9taXNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBQcm9taXNlO1xufVxuZnVuY3Rpb24gaXNPYnNlcnZlcih2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAmJiBpc0Z1bmN0aW9uKHZhbHVlLm5leHQpICYmIGlzRnVuY3Rpb24odmFsdWUuZXJyb3IpICYmIGlzRnVuY3Rpb24odmFsdWUuY29tcGxldGUpO1xufVxuZnVuY3Rpb24gaXNTdWJzY3JpYmVyKHZhbHVlKSB7XG4gICAgcmV0dXJuICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmliZXIpIHx8IChpc09ic2VydmVyKHZhbHVlKSAmJiBpc1N1YnNjcmlwdGlvbih2YWx1ZSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T2JzZXJ2YWJsZS5qcy5tYXAiLCJpbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnLi9pc0Z1bmN0aW9uJztcbmV4cG9ydCBmdW5jdGlvbiBoYXNMaWZ0KHNvdXJjZSkge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHNvdXJjZSA9PT0gbnVsbCB8fCBzb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNvdXJjZS5saWZ0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBvcGVyYXRlKGluaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgICBpZiAoaGFzTGlmdChzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlLmxpZnQoZnVuY3Rpb24gKGxpZnRlZFNvdXJjZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbml0KGxpZnRlZFNvdXJjZSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1VuYWJsZSB0byBsaWZ0IHVua25vd24gT2JzZXJ2YWJsZSB0eXBlJyk7XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpZnQuanMubWFwIiwiaW1wb3J0IHsgX19leHRlbmRzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAnLi4vU3Vic2NyaWJlcic7XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpIHtcbiAgICByZXR1cm4gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcihkZXN0aW5hdGlvbiwgb25OZXh0LCBvbkNvbXBsZXRlLCBvbkVycm9yLCBvbkZpbmFsaXplKTtcbn1cbnZhciBPcGVyYXRvclN1YnNjcmliZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhPcGVyYXRvclN1YnNjcmliZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUsIHNob3VsZFVuc3Vic2NyaWJlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGRlc3RpbmF0aW9uKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5vbkZpbmFsaXplID0gb25GaW5hbGl6ZTtcbiAgICAgICAgX3RoaXMuc2hvdWxkVW5zdWJzY3JpYmUgPSBzaG91bGRVbnN1YnNjcmliZTtcbiAgICAgICAgX3RoaXMuX25leHQgPSBvbk5leHRcbiAgICAgICAgICAgID8gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgb25OZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogX3N1cGVyLnByb3RvdHlwZS5fbmV4dDtcbiAgICAgICAgX3RoaXMuX2Vycm9yID0gb25FcnJvclxuICAgICAgICAgICAgPyBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBfc3VwZXIucHJvdG90eXBlLl9lcnJvcjtcbiAgICAgICAgX3RoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZVxuICAgICAgICAgICAgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBfc3VwZXIucHJvdG90eXBlLl9jb21wbGV0ZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPcGVyYXRvclN1YnNjcmliZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdGhpcy5zaG91bGRVbnN1YnNjcmliZSB8fCB0aGlzLnNob3VsZFVuc3Vic2NyaWJlKCkpIHtcbiAgICAgICAgICAgIHZhciBjbG9zZWRfMSA9IHRoaXMuY2xvc2VkO1xuICAgICAgICAgICAgX3N1cGVyLnByb3RvdHlwZS51bnN1YnNjcmliZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgIWNsb3NlZF8xICYmICgoX2EgPSB0aGlzLm9uRmluYWxpemUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIE9wZXJhdG9yU3Vic2NyaWJlcjtcbn0oU3Vic2NyaWJlcikpO1xuZXhwb3J0IHsgT3BlcmF0b3JTdWJzY3JpYmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1PcGVyYXRvclN1YnNjcmliZXIuanMubWFwIiwiaW1wb3J0IHsgY3JlYXRlRXJyb3JDbGFzcyB9IGZyb20gJy4vY3JlYXRlRXJyb3JDbGFzcyc7XG5leHBvcnQgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCgpIHtcbiAgICAgICAgX3N1cGVyKHRoaXMpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3InO1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSAnb2JqZWN0IHVuc3Vic2NyaWJlZCc7XG4gICAgfTtcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMubWFwIiwiaW1wb3J0IHsgX19leHRlbmRzLCBfX3ZhbHVlcyB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJy4vT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIEVNUFRZX1NVQlNDUklQVElPTiB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IE9iamVjdFVuc3Vic2NyaWJlZEVycm9yIH0gZnJvbSAnLi91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yJztcbmltcG9ydCB7IGFyclJlbW92ZSB9IGZyb20gJy4vdXRpbC9hcnJSZW1vdmUnO1xuaW1wb3J0IHsgZXJyb3JDb250ZXh0IH0gZnJvbSAnLi91dGlsL2Vycm9yQ29udGV4dCc7XG52YXIgU3ViamVjdCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFN1YmplY3QsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gU3ViamVjdCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuY2xvc2VkID0gZmFsc2U7XG4gICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsO1xuICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSBbXTtcbiAgICAgICAgX3RoaXMuaXNTdG9wcGVkID0gZmFsc2U7XG4gICAgICAgIF90aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgICAgIF90aGlzLnRocm93bkVycm9yID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBTdWJqZWN0LnByb3RvdHlwZS5saWZ0ID0gZnVuY3Rpb24gKG9wZXJhdG9yKSB7XG4gICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFub255bW91c1N1YmplY3QodGhpcywgdGhpcyk7XG4gICAgICAgIHN1YmplY3Qub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgcmV0dXJuIHN1YmplY3Q7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5fdGhyb3dJZkNsb3NlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBlcnJvckNvbnRleHQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGVfMSwgX2E7XG4gICAgICAgICAgICBfdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgICAgICAgaWYgKCFfdGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuY3VycmVudE9ic2VydmVycyA9IEFycmF5LmZyb20oX3RoaXMub2JzZXJ2ZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyhfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9ic2VydmVyID0gX2MudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZV8xXzEpIHsgZV8xID0geyBlcnJvcjogZV8xXzEgfTsgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsbHkgeyBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7IH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGVycm9yQ29udGV4dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgICAgICAgaWYgKCFfdGhpcy5pc1N0b3BwZWQpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5oYXNFcnJvciA9IF90aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICAgICAgdmFyIG9ic2VydmVycyA9IF90aGlzLm9ic2VydmVycztcbiAgICAgICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlcnMuc2hpZnQoKS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgZXJyb3JDb250ZXh0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7XG4gICAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdmFyIG9ic2VydmVycyA9IF90aGlzLm9ic2VydmVycztcbiAgICAgICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlcnMuc2hpZnQoKS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTdWJqZWN0LnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXJzID0gdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdWJqZWN0LnByb3RvdHlwZSwgXCJvYnNlcnZlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgcmV0dXJuICgoX2EgPSB0aGlzLm9ic2VydmVycykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aCkgPiAwO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU3ViamVjdC5wcm90b3R5cGUuX3RyeVN1YnNjcmliZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTtcbiAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUuX3RyeVN1YnNjcmliZS5jYWxsKHRoaXMsIHN1YnNjcmliZXIpO1xuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTtcbiAgICAgICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpO1xuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlID0gZnVuY3Rpb24gKHN1YnNjcmliZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIF9hID0gdGhpcywgaGFzRXJyb3IgPSBfYS5oYXNFcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBvYnNlcnZlcnMgPSBfYS5vYnNlcnZlcnM7XG4gICAgICAgIGlmIChoYXNFcnJvciB8fCBpc1N0b3BwZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWV9TVUJTQ1JJUFRJT047XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDtcbiAgICAgICAgb2JzZXJ2ZXJzLnB1c2goc3Vic2NyaWJlcik7XG4gICAgICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsO1xuICAgICAgICAgICAgYXJyUmVtb3ZlKG9ic2VydmVycywgc3Vic2NyaWJlcik7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgU3ViamVjdC5wcm90b3R5cGUuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMgPSBmdW5jdGlvbiAoc3Vic2NyaWJlcikge1xuICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQ7XG4gICAgICAgIGlmIChoYXNFcnJvcikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aHJvd25FcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIFN1YmplY3QucHJvdG90eXBlLmFzT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZSgpO1xuICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICAgIH07XG4gICAgU3ViamVjdC5jcmVhdGUgPSBmdW5jdGlvbiAoZGVzdGluYXRpb24sIHNvdXJjZSkge1xuICAgICAgICByZXR1cm4gbmV3IEFub255bW91c1N1YmplY3QoZGVzdGluYXRpb24sIHNvdXJjZSk7XG4gICAgfTtcbiAgICByZXR1cm4gU3ViamVjdDtcbn0oT2JzZXJ2YWJsZSkpO1xuZXhwb3J0IHsgU3ViamVjdCB9O1xudmFyIEFub255bW91c1N1YmplY3QgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBbm9ueW1vdXNTdWJqZWN0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFub255bW91c1N1YmplY3QoZGVzdGluYXRpb24sIHNvdXJjZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICBfdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQW5vbnltb3VzU3ViamVjdC5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmV4dCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIHZhbHVlKTtcbiAgICB9O1xuICAgIEFub255bW91c1N1YmplY3QucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZXJyb3IpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBlcnIpO1xuICAgIH07XG4gICAgQW5vbnltb3VzU3ViamVjdC5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYiA9IChfYSA9IHRoaXMuZGVzdGluYXRpb24pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb21wbGV0ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgIH07XG4gICAgQW5vbnltb3VzU3ViamVjdC5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uIChzdWJzY3JpYmVyKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogRU1QVFlfU1VCU0NSSVBUSU9OO1xuICAgIH07XG4gICAgcmV0dXJuIEFub255bW91c1N1YmplY3Q7XG59KFN1YmplY3QpKTtcbmV4cG9ydCB7IEFub255bW91c1N1YmplY3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVN1YmplY3QuanMubWFwIiwiaW1wb3J0IHsgX19leHRlbmRzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAnLi9TdWJqZWN0JztcbnZhciBCZWhhdmlvclN1YmplY3QgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhCZWhhdmlvclN1YmplY3QsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gQmVoYXZpb3JTdWJqZWN0KF92YWx1ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fdmFsdWUgPSBfdmFsdWU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJlaGF2aW9yU3ViamVjdC5wcm90b3R5cGUsIFwidmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBCZWhhdmlvclN1YmplY3QucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbiAoc3Vic2NyaWJlcikge1xuICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gX3N1cGVyLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7XG4gICAgICAgICFzdWJzY3JpcHRpb24uY2xvc2VkICYmIHN1YnNjcmliZXIubmV4dCh0aGlzLl92YWx1ZSk7XG4gICAgICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gICAgfTtcbiAgICBCZWhhdmlvclN1YmplY3QucHJvdG90eXBlLmdldFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBfdmFsdWUgPSBfYS5fdmFsdWU7XG4gICAgICAgIGlmIChoYXNFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgdGhyb3duRXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpO1xuICAgICAgICByZXR1cm4gX3ZhbHVlO1xuICAgIH07XG4gICAgQmVoYXZpb3JTdWJqZWN0LnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIF9zdXBlci5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsICh0aGlzLl92YWx1ZSA9IHZhbHVlKSk7XG4gICAgfTtcbiAgICByZXR1cm4gQmVoYXZpb3JTdWJqZWN0O1xufShTdWJqZWN0KSk7XG5leHBvcnQgeyBCZWhhdmlvclN1YmplY3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJlaGF2aW9yU3ViamVjdC5qcy5tYXAiLCJleHBvcnQgdmFyIGRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHtcbiAgICBub3c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChkYXRlVGltZXN0YW1wUHJvdmlkZXIuZGVsZWdhdGUgfHwgRGF0ZSkubm93KCk7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZTogdW5kZWZpbmVkLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGVUaW1lc3RhbXBQcm92aWRlci5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL1N1YnNjcmlwdGlvbic7XG52YXIgQWN0aW9uID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoQWN0aW9uLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFjdGlvbihzY2hlZHVsZXIsIHdvcmspIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgfVxuICAgIEFjdGlvbi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbiAoc3RhdGUsIGRlbGF5KSB7XG4gICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7IGRlbGF5ID0gMDsgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIHJldHVybiBBY3Rpb247XG59KFN1YnNjcmlwdGlvbikpO1xuZXhwb3J0IHsgQWN0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY3Rpb24uanMubWFwIiwiaW1wb3J0IHsgX19yZWFkLCBfX3NwcmVhZEFycmF5IH0gZnJvbSBcInRzbGliXCI7XG5leHBvcnQgdmFyIGludGVydmFsUHJvdmlkZXIgPSB7XG4gICAgc2V0SW50ZXJ2YWw6IGZ1bmN0aW9uIChoYW5kbGVyLCB0aW1lb3V0KSB7XG4gICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWxlZ2F0ZSA9IGludGVydmFsUHJvdmlkZXIuZGVsZWdhdGU7XG4gICAgICAgIGlmIChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuc2V0SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXRJbnRlcnZhbC5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW2hhbmRsZXIsIHRpbWVvdXRdLCBfX3JlYWQoYXJncykpKTtcbiAgICB9LFxuICAgIGNsZWFySW50ZXJ2YWw6IGZ1bmN0aW9uIChoYW5kbGUpIHtcbiAgICAgICAgdmFyIGRlbGVnYXRlID0gaW50ZXJ2YWxQcm92aWRlci5kZWxlZ2F0ZTtcbiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW50ZXJ2YWwpIHx8IGNsZWFySW50ZXJ2YWwpKGhhbmRsZSk7XG4gICAgfSxcbiAgICBkZWxlZ2F0ZTogdW5kZWZpbmVkLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVydmFsUHJvdmlkZXIuanMubWFwIiwiaW1wb3J0IHsgX19leHRlbmRzIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL0FjdGlvbic7XG5pbXBvcnQgeyBpbnRlcnZhbFByb3ZpZGVyIH0gZnJvbSAnLi9pbnRlcnZhbFByb3ZpZGVyJztcbmltcG9ydCB7IGFyclJlbW92ZSB9IGZyb20gJy4uL3V0aWwvYXJyUmVtb3ZlJztcbnZhciBBc3luY0FjdGlvbiA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEFzeW5jQWN0aW9uLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIEFzeW5jQWN0aW9uKHNjaGVkdWxlciwgd29yaykge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIHdvcmspIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjtcbiAgICAgICAgX3RoaXMud29yayA9IHdvcms7XG4gICAgICAgIF90aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBBc3luY0FjdGlvbi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbiAoc3RhdGUsIGRlbGF5KSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsgZGVsYXkgPSAwOyB9XG4gICAgICAgIGlmICh0aGlzLmNsb3NlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgICAgICB2YXIgaWQgPSB0aGlzLmlkO1xuICAgICAgICB2YXIgc2NoZWR1bGVyID0gdGhpcy5zY2hlZHVsZXI7XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5O1xuICAgICAgICB0aGlzLmlkID0gKF9hID0gdGhpcy5pZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5yZXF1ZXN0QXN5bmNJZChzY2hlZHVsZXIsIHRoaXMuaWQsIGRlbGF5KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICBBc3luY0FjdGlvbi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQgPSBmdW5jdGlvbiAoc2NoZWR1bGVyLCBfaWQsIGRlbGF5KSB7XG4gICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7IGRlbGF5ID0gMDsgfVxuICAgICAgICByZXR1cm4gaW50ZXJ2YWxQcm92aWRlci5zZXRJbnRlcnZhbChzY2hlZHVsZXIuZmx1c2guYmluZChzY2hlZHVsZXIsIHRoaXMpLCBkZWxheSk7XG4gICAgfTtcbiAgICBBc3luY0FjdGlvbi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbiAoX3NjaGVkdWxlciwgaWQsIGRlbGF5KSB7XG4gICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7IGRlbGF5ID0gMDsgfVxuICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCAmJiB0aGlzLmRlbGF5ID09PSBkZWxheSAmJiB0aGlzLnBlbmRpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGludGVydmFsUHJvdmlkZXIuY2xlYXJJbnRlcnZhbChpZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIEFzeW5jQWN0aW9uLnByb3RvdHlwZS5leGVjdXRlID0gZnVuY3Rpb24gKHN0YXRlLCBkZWxheSkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoJ2V4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnBlbmRpbmcgPT09IGZhbHNlICYmIHRoaXMuaWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pZCA9IHRoaXMucmVjeWNsZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsIHRoaXMuaWQsIG51bGwpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBBc3luY0FjdGlvbi5wcm90b3R5cGUuX2V4ZWN1dGUgPSBmdW5jdGlvbiAoc3RhdGUsIF9kZWxheSkge1xuICAgICAgICB2YXIgZXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgZXJyb3JWYWx1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMud29yayhzdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGVycm9yZWQgPSB0cnVlO1xuICAgICAgICAgICAgZXJyb3JWYWx1ZSA9IGUgPyBlIDogbmV3IEVycm9yKCdTY2hlZHVsZWQgYWN0aW9uIHRocmV3IGZhbHN5IGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yZWQpIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvclZhbHVlO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBBc3luY0FjdGlvbi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMsIGlkID0gX2EuaWQsIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlcjtcbiAgICAgICAgICAgIHZhciBhY3Rpb25zID0gc2NoZWR1bGVyLmFjdGlvbnM7XG4gICAgICAgICAgICB0aGlzLndvcmsgPSB0aGlzLnN0YXRlID0gdGhpcy5zY2hlZHVsZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBhcnJSZW1vdmUoYWN0aW9ucywgdGhpcyk7XG4gICAgICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kZWxheSA9IG51bGw7XG4gICAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBBc3luY0FjdGlvbjtcbn0oQWN0aW9uKSk7XG5leHBvcnQgeyBBc3luY0FjdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXN5bmNBY3Rpb24uanMubWFwIiwiaW1wb3J0IHsgZGF0ZVRpbWVzdGFtcFByb3ZpZGVyIH0gZnJvbSAnLi9zY2hlZHVsZXIvZGF0ZVRpbWVzdGFtcFByb3ZpZGVyJztcbnZhciBTY2hlZHVsZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNjaGVkdWxlcihzY2hlZHVsZXJBY3Rpb25DdG9yLCBub3cpIHtcbiAgICAgICAgaWYgKG5vdyA9PT0gdm9pZCAwKSB7IG5vdyA9IFNjaGVkdWxlci5ub3c7IH1cbiAgICAgICAgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yID0gc2NoZWR1bGVyQWN0aW9uQ3RvcjtcbiAgICAgICAgdGhpcy5ub3cgPSBub3c7XG4gICAgfVxuICAgIFNjaGVkdWxlci5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbiAod29yaywgZGVsYXksIHN0YXRlKSB7XG4gICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7IGRlbGF5ID0gMDsgfVxuICAgICAgICByZXR1cm4gbmV3IHRoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcih0aGlzLCB3b3JrKS5zY2hlZHVsZShzdGF0ZSwgZGVsYXkpO1xuICAgIH07XG4gICAgU2NoZWR1bGVyLm5vdyA9IGRhdGVUaW1lc3RhbXBQcm92aWRlci5ub3c7XG4gICAgcmV0dXJuIFNjaGVkdWxlcjtcbn0oKSk7XG5leHBvcnQgeyBTY2hlZHVsZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNjaGVkdWxlci5qcy5tYXAiLCJpbXBvcnQgeyBfX2V4dGVuZHMgfSBmcm9tIFwidHNsaWJcIjtcbmltcG9ydCB7IFNjaGVkdWxlciB9IGZyb20gJy4uL1NjaGVkdWxlcic7XG52YXIgQXN5bmNTY2hlZHVsZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBc3luY1NjaGVkdWxlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBBc3luY1NjaGVkdWxlcihTY2hlZHVsZXJBY3Rpb24sIG5vdykge1xuICAgICAgICBpZiAobm93ID09PSB2b2lkIDApIHsgbm93ID0gU2NoZWR1bGVyLm5vdzsgfVxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBTY2hlZHVsZXJBY3Rpb24sIG5vdykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuYWN0aW9ucyA9IFtdO1xuICAgICAgICBfdGhpcy5fYWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgQXN5bmNTY2hlZHVsZXIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMuYWN0aW9ucztcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSB0cnVlO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBpZiAoKGVycm9yID0gYWN0aW9uLmV4ZWN1dGUoYWN0aW9uLnN0YXRlLCBhY3Rpb24uZGVsYXkpKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKSk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHdoaWxlICgoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKSkge1xuICAgICAgICAgICAgICAgIGFjdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBBc3luY1NjaGVkdWxlcjtcbn0oU2NoZWR1bGVyKSk7XG5leHBvcnQgeyBBc3luY1NjaGVkdWxlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXN5bmNTY2hlZHVsZXIuanMubWFwIiwiaW1wb3J0IHsgQXN5bmNBY3Rpb24gfSBmcm9tICcuL0FzeW5jQWN0aW9uJztcbmltcG9ydCB7IEFzeW5jU2NoZWR1bGVyIH0gZnJvbSAnLi9Bc3luY1NjaGVkdWxlcic7XG5leHBvcnQgdmFyIGFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyKEFzeW5jQWN0aW9uKTtcbmV4cG9ydCB2YXIgYXN5bmMgPSBhc3luY1NjaGVkdWxlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFzeW5jLmpzLm1hcCIsImltcG9ydCB7IGFzeW5jU2NoZWR1bGVyIH0gZnJvbSAnLi4vc2NoZWR1bGVyL2FzeW5jJztcbmltcG9ydCB7IG9wZXJhdGUgfSBmcm9tICcuLi91dGlsL2xpZnQnO1xuaW1wb3J0IHsgY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyIH0gZnJvbSAnLi9PcGVyYXRvclN1YnNjcmliZXInO1xuZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlVGltZShkdWVUaW1lLCBzY2hlZHVsZXIpIHtcbiAgICBpZiAoc2NoZWR1bGVyID09PSB2b2lkIDApIHsgc2NoZWR1bGVyID0gYXN5bmNTY2hlZHVsZXI7IH1cbiAgICByZXR1cm4gb3BlcmF0ZShmdW5jdGlvbiAoc291cmNlLCBzdWJzY3JpYmVyKSB7XG4gICAgICAgIHZhciBhY3RpdmVUYXNrID0gbnVsbDtcbiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7XG4gICAgICAgIHZhciBsYXN0VGltZSA9IG51bGw7XG4gICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZVRhc2spIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgYWN0aXZlVGFzayA9IG51bGw7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gbGFzdFZhbHVlO1xuICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gZW1pdFdoZW5JZGxlKCkge1xuICAgICAgICAgICAgdmFyIHRhcmdldFRpbWUgPSBsYXN0VGltZSArIGR1ZVRpbWU7XG4gICAgICAgICAgICB2YXIgbm93ID0gc2NoZWR1bGVyLm5vdygpO1xuICAgICAgICAgICAgaWYgKG5vdyA8IHRhcmdldFRpbWUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYXNrID0gdGhpcy5zY2hlZHVsZSh1bmRlZmluZWQsIHRhcmdldFRpbWUgLSBub3cpO1xuICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgbGFzdFRpbWUgPSBzY2hlZHVsZXIubm93KCk7XG4gICAgICAgICAgICBpZiAoIWFjdGl2ZVRhc2spIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7XG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoYWN0aXZlVGFzayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGVtaXQoKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSwgdW5kZWZpbmVkLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDtcbiAgICAgICAgfSkpO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVib3VuY2VUaW1lLmpzLm1hcCIsImltcG9ydCB7c2luZ2xldG9ufSBmcm9tIFwidHN5cmluZ2UtbmVvXCJcbmltcG9ydCBPcmRlciBmcm9tIFwiLi4vbW9kZWwvb3JkZXJcIlxuaW1wb3J0IHtvYnNlcnZlT2JqZWN0fSBmcm9tIFwiLi4vbGliL29iLW9iXCJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSBcInJ4anNcIlxuXG5Ac2luZ2xldG9uKClcbmNsYXNzIE9yZGVyU3RhdGUge1xuXG4gICAgb3JkZXJzOiBBcnJheTxPcmRlcj5cbiAgICBwcml2YXRlIGN1cnJlbnRPcmRlcjogQmVoYXZpb3JTdWJqZWN0PE9yZGVyPlxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE9yZGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcmRlcj4obmV3IE9yZGVyKCkpXG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudE9yZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50T3JkZXJcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50T3JkZXIob3JkZXI6IE9yZGVyKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE9yZGVyLm5leHQob3JkZXIpXG4gICAgfVxuXG4gICAgZ2V0T3JkZXIodXVpZDogU3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yZGVycy5tYXAoKGUpID0+IGUudXVpZCA9PSB1dWlkKVxuICAgIH1cblxuICAgIHVwZGF0ZU9yZGVyKG9yZGVyOiBPcmRlcikge1xuICAgICAgICB0aGlzLm9yZGVycy5wdXNoKG9yZGVyKVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT3JkZXJTdGF0ZVxuIiwidmFyIG4sbCx1LHQsaSxyLG8sZSxmLGMscyxhLGgscD17fSx2PVtdLHk9L2FjaXR8ZXgoPzpzfGd8bnxwfCQpfHJwaHxncmlkfG93c3xtbmN8bnR3fGluZVtjaF18em9vfF5vcmR8aXRlcmEvaSxkPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gdyhuLGwpe2Zvcih2YXIgdSBpbiBsKW5bdV09bFt1XTtyZXR1cm4gbn1mdW5jdGlvbiBfKG4pe24mJm4ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pfWZ1bmN0aW9uIGcobCx1LHQpe3ZhciBpLHIsbyxlPXt9O2ZvcihvIGluIHUpXCJrZXlcIj09bz9pPXVbb106XCJyZWZcIj09bz9yPXVbb106ZVtvXT11W29dO2lmKGFyZ3VtZW50cy5sZW5ndGg+MiYmKGUuY2hpbGRyZW49YXJndW1lbnRzLmxlbmd0aD4zP24uY2FsbChhcmd1bWVudHMsMik6dCksXCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbnVsbCE9bC5kZWZhdWx0UHJvcHMpZm9yKG8gaW4gbC5kZWZhdWx0UHJvcHMpdm9pZCAwPT09ZVtvXSYmKGVbb109bC5kZWZhdWx0UHJvcHNbb10pO3JldHVybiBtKGwsZSxpLHIsbnVsbCl9ZnVuY3Rpb24gbShuLHQsaSxyLG8pe3ZhciBlPXt0eXBlOm4scHJvcHM6dCxrZXk6aSxyZWY6cixfX2s6bnVsbCxfXzpudWxsLF9fYjowLF9fZTpudWxsLF9fYzpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6bnVsbD09bz8rK3U6byxfX2k6LTEsX191OjB9O3JldHVybiBudWxsPT1vJiZudWxsIT1sLnZub2RlJiZsLnZub2RlKGUpLGV9ZnVuY3Rpb24gYigpe3JldHVybntjdXJyZW50Om51bGx9fWZ1bmN0aW9uIGsobil7cmV0dXJuIG4uY2hpbGRyZW59ZnVuY3Rpb24geChuLGwpe3RoaXMucHJvcHM9bix0aGlzLmNvbnRleHQ9bH1mdW5jdGlvbiBDKG4sbCl7aWYobnVsbD09bClyZXR1cm4gbi5fXz9DKG4uX18sbi5fX2krMSk6bnVsbDtmb3IodmFyIHU7bDxuLl9fay5sZW5ndGg7bCsrKWlmKG51bGwhPSh1PW4uX19rW2xdKSYmbnVsbCE9dS5fX2UpcmV0dXJuIHUuX19lO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG4udHlwZT9DKG4pOm51bGx9ZnVuY3Rpb24gUyhuKXt2YXIgbCx1O2lmKG51bGwhPShuPW4uX18pJiZudWxsIT1uLl9fYyl7Zm9yKG4uX19lPW4uX19jLmJhc2U9bnVsbCxsPTA7bDxuLl9fay5sZW5ndGg7bCsrKWlmKG51bGwhPSh1PW4uX19rW2xdKSYmbnVsbCE9dS5fX2Upe24uX19lPW4uX19jLmJhc2U9dS5fX2U7YnJlYWt9cmV0dXJuIFMobil9fWZ1bmN0aW9uIE0obil7KCFuLl9fZCYmKG4uX19kPSEwKSYmaS5wdXNoKG4pJiYhUC5fX3IrK3x8ciE9PWwuZGVib3VuY2VSZW5kZXJpbmcpJiYoKHI9bC5kZWJvdW5jZVJlbmRlcmluZyl8fG8pKFApfWZ1bmN0aW9uIFAoKXt2YXIgbix1LHQscixvLGYsYyxzO2ZvcihpLnNvcnQoZSk7bj1pLnNoaWZ0KCk7KW4uX19kJiYodT1pLmxlbmd0aCxyPXZvaWQgMCxmPShvPSh0PW4pLl9fdikuX19lLGM9W10scz1bXSx0Ll9fUCYmKChyPXcoe30sbykpLl9fdj1vLl9fdisxLGwudm5vZGUmJmwudm5vZGUociksaih0Ll9fUCxyLG8sdC5fX24sdC5fX1AubmFtZXNwYWNlVVJJLDMyJm8uX191P1tmXTpudWxsLGMsbnVsbD09Zj9DKG8pOmYsISEoMzImby5fX3UpLHMpLHIuX192PW8uX192LHIuX18uX19rW3IuX19pXT1yLHooYyxyLHMpLHIuX19lIT1mJiZTKHIpKSxpLmxlbmd0aD51JiZpLnNvcnQoZSkpO1AuX19yPTB9ZnVuY3Rpb24gJChuLGwsdSx0LGkscixvLGUsZixjLHMpe3ZhciBhLGgseSxkLHcsXyxnPXQmJnQuX19rfHx2LG09bC5sZW5ndGg7Zm9yKGY9SSh1LGwsZyxmLG0pLGE9MDthPG07YSsrKW51bGwhPSh5PXUuX19rW2FdKSYmKGg9LTE9PT15Ll9faT9wOmdbeS5fX2ldfHxwLHkuX19pPWEsXz1qKG4seSxoLGkscixvLGUsZixjLHMpLGQ9eS5fX2UseS5yZWYmJmgucmVmIT15LnJlZiYmKGgucmVmJiZWKGgucmVmLG51bGwseSkscy5wdXNoKHkucmVmLHkuX19jfHxkLHkpKSxudWxsPT13JiZudWxsIT1kJiYodz1kKSw0JnkuX191fHxoLl9faz09PXkuX19rP2Y9QSh5LGYsbik6XCJmdW5jdGlvblwiPT10eXBlb2YgeS50eXBlJiZ2b2lkIDAhPT1fP2Y9XzpkJiYoZj1kLm5leHRTaWJsaW5nKSx5Ll9fdSY9LTcpO3JldHVybiB1Ll9fZT13LGZ9ZnVuY3Rpb24gSShuLGwsdSx0LGkpe3ZhciByLG8sZSxmLGMscz11Lmxlbmd0aCxhPXMsaD0wO2ZvcihuLl9faz1uZXcgQXJyYXkoaSkscj0wO3I8aTtyKyspbnVsbCE9KG89bFtyXSkmJlwiYm9vbGVhblwiIT10eXBlb2YgbyYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbz8oZj1yK2gsKG89bi5fX2tbcl09XCJzdHJpbmdcIj09dHlwZW9mIG98fFwibnVtYmVyXCI9PXR5cGVvZiBvfHxcImJpZ2ludFwiPT10eXBlb2Ygb3x8by5jb25zdHJ1Y3Rvcj09U3RyaW5nP20obnVsbCxvLG51bGwsbnVsbCxudWxsKTpkKG8pP20oayx7Y2hpbGRyZW46b30sbnVsbCxudWxsLG51bGwpOnZvaWQgMD09PW8uY29uc3RydWN0b3ImJm8uX19iPjA/bShvLnR5cGUsby5wcm9wcyxvLmtleSxvLnJlZj9vLnJlZjpudWxsLG8uX192KTpvKS5fXz1uLG8uX19iPW4uX19iKzEsZT1udWxsLC0xIT09KGM9by5fX2k9TChvLHUsZixhKSkmJihhLS0sKGU9dVtjXSkmJihlLl9fdXw9MikpLG51bGw9PWV8fG51bGw9PT1lLl9fdj8oLTE9PWMmJmgtLSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvLnR5cGUmJihvLl9fdXw9NCkpOmMhPWYmJihjPT1mLTE/aC0tOmM9PWYrMT9oKys6KGM+Zj9oLS06aCsrLG8uX191fD00KSkpOm4uX19rW3JdPW51bGw7aWYoYSlmb3Iocj0wO3I8cztyKyspbnVsbCE9KGU9dVtyXSkmJjA9PSgyJmUuX191KSYmKGUuX19lPT10JiYodD1DKGUpKSxxKGUsZSkpO3JldHVybiB0fWZ1bmN0aW9uIEEobixsLHUpe3ZhciB0LGk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50eXBlKXtmb3IodD1uLl9fayxpPTA7dCYmaTx0Lmxlbmd0aDtpKyspdFtpXSYmKHRbaV0uX189bixsPUEodFtpXSxsLHUpKTtyZXR1cm4gbH1uLl9fZSE9bCYmKGwmJm4udHlwZSYmIXUuY29udGFpbnMobCkmJihsPUMobikpLHUuaW5zZXJ0QmVmb3JlKG4uX19lLGx8fG51bGwpLGw9bi5fX2UpO2Rve2w9bCYmbC5uZXh0U2libGluZ313aGlsZShudWxsIT1sJiY4PT1sLm5vZGVUeXBlKTtyZXR1cm4gbH1mdW5jdGlvbiBIKG4sbCl7cmV0dXJuIGw9bHx8W10sbnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHwoZChuKT9uLnNvbWUoZnVuY3Rpb24obil7SChuLGwpfSk6bC5wdXNoKG4pKSxsfWZ1bmN0aW9uIEwobixsLHUsdCl7dmFyIGkscixvPW4ua2V5LGU9bi50eXBlLGY9bFt1XTtpZihudWxsPT09Znx8ZiYmbz09Zi5rZXkmJmU9PT1mLnR5cGUmJjA9PSgyJmYuX191KSlyZXR1cm4gdTtpZih0PihudWxsIT1mJiYwPT0oMiZmLl9fdSk/MTowKSlmb3IoaT11LTEscj11KzE7aT49MHx8cjxsLmxlbmd0aDspe2lmKGk+PTApe2lmKChmPWxbaV0pJiYwPT0oMiZmLl9fdSkmJm89PWYua2V5JiZlPT09Zi50eXBlKXJldHVybiBpO2ktLX1pZihyPGwubGVuZ3RoKXtpZigoZj1sW3JdKSYmMD09KDImZi5fX3UpJiZvPT1mLmtleSYmZT09PWYudHlwZSlyZXR1cm4gcjtyKyt9fXJldHVybi0xfWZ1bmN0aW9uIFQobixsLHUpe1wiLVwiPT1sWzBdP24uc2V0UHJvcGVydHkobCxudWxsPT11P1wiXCI6dSk6bltsXT1udWxsPT11P1wiXCI6XCJudW1iZXJcIiE9dHlwZW9mIHV8fHkudGVzdChsKT91OnUrXCJweFwifWZ1bmN0aW9uIEYobixsLHUsdCxpKXt2YXIgcjtuOmlmKFwic3R5bGVcIj09bClpZihcInN0cmluZ1wiPT10eXBlb2YgdSluLnN0eWxlLmNzc1RleHQ9dTtlbHNle2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0JiYobi5zdHlsZS5jc3NUZXh0PXQ9XCJcIiksdClmb3IobCBpbiB0KXUmJmwgaW4gdXx8VChuLnN0eWxlLGwsXCJcIik7aWYodSlmb3IobCBpbiB1KXQmJnVbbF09PT10W2xdfHxUKG4uc3R5bGUsbCx1W2xdKX1lbHNlIGlmKFwib1wiPT1sWzBdJiZcIm5cIj09bFsxXSlyPWwhPShsPWwucmVwbGFjZShmLFwiJDFcIikpLGw9bC50b0xvd2VyQ2FzZSgpaW4gbnx8XCJvbkZvY3VzT3V0XCI9PWx8fFwib25Gb2N1c0luXCI9PWw/bC50b0xvd2VyQ2FzZSgpLnNsaWNlKDIpOmwuc2xpY2UoMiksbi5sfHwobi5sPXt9KSxuLmxbbCtyXT11LHU/dD91LnU9dC51Oih1LnU9YyxuLmFkZEV2ZW50TGlzdGVuZXIobCxyP2E6cyxyKSk6bi5yZW1vdmVFdmVudExpc3RlbmVyKGwscj9hOnMscik7ZWxzZXtpZihcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PWkpbD1sLnJlcGxhY2UoL3hsaW5rKEh8OmgpLyxcImhcIikucmVwbGFjZSgvc05hbWUkLyxcInNcIik7ZWxzZSBpZihcIndpZHRoXCIhPWwmJlwiaGVpZ2h0XCIhPWwmJlwiaHJlZlwiIT1sJiZcImxpc3RcIiE9bCYmXCJmb3JtXCIhPWwmJlwidGFiSW5kZXhcIiE9bCYmXCJkb3dubG9hZFwiIT1sJiZcInJvd1NwYW5cIiE9bCYmXCJjb2xTcGFuXCIhPWwmJlwicm9sZVwiIT1sJiZcInBvcG92ZXJcIiE9bCYmbCBpbiBuKXRyeXtuW2xdPW51bGw9PXU/XCJcIjp1O2JyZWFrIG59Y2F0Y2gobil7fVwiZnVuY3Rpb25cIj09dHlwZW9mIHV8fChudWxsPT11fHwhMT09PXUmJlwiLVwiIT1sWzRdP24ucmVtb3ZlQXR0cmlidXRlKGwpOm4uc2V0QXR0cmlidXRlKGwsXCJwb3BvdmVyXCI9PWwmJjE9PXU/XCJcIjp1KSl9fWZ1bmN0aW9uIE8obil7cmV0dXJuIGZ1bmN0aW9uKHUpe2lmKHRoaXMubCl7dmFyIHQ9dGhpcy5sW3UudHlwZStuXTtpZihudWxsPT11LnQpdS50PWMrKztlbHNlIGlmKHUudDx0LnUpcmV0dXJuO3JldHVybiB0KGwuZXZlbnQ/bC5ldmVudCh1KTp1KX19fWZ1bmN0aW9uIGoobix1LHQsaSxyLG8sZSxmLGMscyl7dmFyIGEsaCxwLHYseSxnLG0sYixDLFMsTSxQLEksQSxILEwsVCxGPXUudHlwZTtpZih2b2lkIDAhPT11LmNvbnN0cnVjdG9yKXJldHVybiBudWxsOzEyOCZ0Ll9fdSYmKGM9ISEoMzImdC5fX3UpLG89W2Y9dS5fX2U9dC5fX2VdKSwoYT1sLl9fYikmJmEodSk7bjppZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBGKXRyeXtpZihiPXUucHJvcHMsQz1cInByb3RvdHlwZVwiaW4gRiYmRi5wcm90b3R5cGUucmVuZGVyLFM9KGE9Ri5jb250ZXh0VHlwZSkmJmlbYS5fX2NdLE09YT9TP1MucHJvcHMudmFsdWU6YS5fXzppLHQuX19jP209KGg9dS5fX2M9dC5fX2MpLl9fPWguX19FOihDP3UuX19jPWg9bmV3IEYoYixNKToodS5fX2M9aD1uZXcgeChiLE0pLGguY29uc3RydWN0b3I9RixoLnJlbmRlcj1CKSxTJiZTLnN1YihoKSxoLnByb3BzPWIsaC5zdGF0ZXx8KGguc3RhdGU9e30pLGguY29udGV4dD1NLGguX19uPWkscD1oLl9fZD0hMCxoLl9faD1bXSxoLl9zYj1bXSksQyYmbnVsbD09aC5fX3MmJihoLl9fcz1oLnN0YXRlKSxDJiZudWxsIT1GLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmKGguX19zPT1oLnN0YXRlJiYoaC5fX3M9dyh7fSxoLl9fcykpLHcoaC5fX3MsRi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoYixoLl9fcykpKSx2PWgucHJvcHMseT1oLnN0YXRlLGguX192PXUscClDJiZudWxsPT1GLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyYmbnVsbCE9aC5jb21wb25lbnRXaWxsTW91bnQmJmguY29tcG9uZW50V2lsbE1vdW50KCksQyYmbnVsbCE9aC5jb21wb25lbnREaWRNb3VudCYmaC5fX2gucHVzaChoLmNvbXBvbmVudERpZE1vdW50KTtlbHNle2lmKEMmJm51bGw9PUYuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzJiZiIT09diYmbnVsbCE9aC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZoLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYixNKSwhaC5fX2UmJihudWxsIT1oLnNob3VsZENvbXBvbmVudFVwZGF0ZSYmITE9PT1oLnNob3VsZENvbXBvbmVudFVwZGF0ZShiLGguX19zLE0pfHx1Ll9fdj09dC5fX3YpKXtmb3IodS5fX3YhPXQuX192JiYoaC5wcm9wcz1iLGguc3RhdGU9aC5fX3MsaC5fX2Q9ITEpLHUuX19lPXQuX19lLHUuX19rPXQuX19rLHUuX19rLnNvbWUoZnVuY3Rpb24obil7biYmKG4uX189dSl9KSxQPTA7UDxoLl9zYi5sZW5ndGg7UCsrKWguX19oLnB1c2goaC5fc2JbUF0pO2guX3NiPVtdLGguX19oLmxlbmd0aCYmZS5wdXNoKGgpO2JyZWFrIG59bnVsbCE9aC5jb21wb25lbnRXaWxsVXBkYXRlJiZoLmNvbXBvbmVudFdpbGxVcGRhdGUoYixoLl9fcyxNKSxDJiZudWxsIT1oLmNvbXBvbmVudERpZFVwZGF0ZSYmaC5fX2gucHVzaChmdW5jdGlvbigpe2guY29tcG9uZW50RGlkVXBkYXRlKHYseSxnKX0pfWlmKGguY29udGV4dD1NLGgucHJvcHM9YixoLl9fUD1uLGguX19lPSExLEk9bC5fX3IsQT0wLEMpe2ZvcihoLnN0YXRlPWguX19zLGguX19kPSExLEkmJkkodSksYT1oLnJlbmRlcihoLnByb3BzLGguc3RhdGUsaC5jb250ZXh0KSxIPTA7SDxoLl9zYi5sZW5ndGg7SCsrKWguX19oLnB1c2goaC5fc2JbSF0pO2guX3NiPVtdfWVsc2UgZG97aC5fX2Q9ITEsSSYmSSh1KSxhPWgucmVuZGVyKGgucHJvcHMsaC5zdGF0ZSxoLmNvbnRleHQpLGguc3RhdGU9aC5fX3N9d2hpbGUoaC5fX2QmJisrQTwyNSk7aC5zdGF0ZT1oLl9fcyxudWxsIT1oLmdldENoaWxkQ29udGV4dCYmKGk9dyh3KHt9LGkpLGguZ2V0Q2hpbGRDb250ZXh0KCkpKSxDJiYhcCYmbnVsbCE9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSYmKGc9aC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSh2LHkpKSxmPSQobixkKEw9bnVsbCE9YSYmYS50eXBlPT09ayYmbnVsbD09YS5rZXk/YS5wcm9wcy5jaGlsZHJlbjphKT9MOltMXSx1LHQsaSxyLG8sZSxmLGMscyksaC5iYXNlPXUuX19lLHUuX191Jj0tMTYxLGguX19oLmxlbmd0aCYmZS5wdXNoKGgpLG0mJihoLl9fRT1oLl9fPW51bGwpfWNhdGNoKG4pe2lmKHUuX192PW51bGwsY3x8bnVsbCE9bylpZihuLnRoZW4pe2Zvcih1Ll9fdXw9Yz8xNjA6MTI4O2YmJjg9PWYubm9kZVR5cGUmJmYubmV4dFNpYmxpbmc7KWY9Zi5uZXh0U2libGluZztvW28uaW5kZXhPZihmKV09bnVsbCx1Ll9fZT1mfWVsc2UgZm9yKFQ9by5sZW5ndGg7VC0tOylfKG9bVF0pO2Vsc2UgdS5fX2U9dC5fX2UsdS5fX2s9dC5fX2s7bC5fX2Uobix1LHQpfWVsc2UgbnVsbD09byYmdS5fX3Y9PXQuX192Pyh1Ll9faz10Ll9fayx1Ll9fZT10Ll9fZSk6Zj11Ll9fZT1OKHQuX19lLHUsdCxpLHIsbyxlLGMscyk7cmV0dXJuKGE9bC5kaWZmZWQpJiZhKHUpLDEyOCZ1Ll9fdT92b2lkIDA6Zn1mdW5jdGlvbiB6KG4sdSx0KXtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKylWKHRbaV0sdFsrK2ldLHRbKytpXSk7bC5fX2MmJmwuX19jKHUsbiksbi5zb21lKGZ1bmN0aW9uKHUpe3RyeXtuPXUuX19oLHUuX19oPVtdLG4uc29tZShmdW5jdGlvbihuKXtuLmNhbGwodSl9KX1jYXRjaChuKXtsLl9fZShuLHUuX192KX19KX1mdW5jdGlvbiBOKHUsdCxpLHIsbyxlLGYsYyxzKXt2YXIgYSxoLHYseSx3LGcsbSxiPWkucHJvcHMsaz10LnByb3BzLHg9dC50eXBlO2lmKFwic3ZnXCI9PXg/bz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI6XCJtYXRoXCI9PXg/bz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjpvfHwobz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiksbnVsbCE9ZSlmb3IoYT0wO2E8ZS5sZW5ndGg7YSsrKWlmKCh3PWVbYV0pJiZcInNldEF0dHJpYnV0ZVwiaW4gdz09ISF4JiYoeD93LmxvY2FsTmFtZT09eDozPT13Lm5vZGVUeXBlKSl7dT13LGVbYV09bnVsbDticmVha31pZihudWxsPT11KXtpZihudWxsPT14KXJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShrKTt1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLHgsay5pcyYmayksYyYmKGwuX19tJiZsLl9fbSh0LGUpLGM9ITEpLGU9bnVsbH1pZihudWxsPT09eCliPT09a3x8YyYmdS5kYXRhPT09a3x8KHUuZGF0YT1rKTtlbHNle2lmKGU9ZSYmbi5jYWxsKHUuY2hpbGROb2RlcyksYj1pLnByb3BzfHxwLCFjJiZudWxsIT1lKWZvcihiPXt9LGE9MDthPHUuYXR0cmlidXRlcy5sZW5ndGg7YSsrKWJbKHc9dS5hdHRyaWJ1dGVzW2FdKS5uYW1lXT13LnZhbHVlO2ZvcihhIGluIGIpaWYodz1iW2FdLFwiY2hpbGRyZW5cIj09YSk7ZWxzZSBpZihcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PWEpdj13O2Vsc2UgaWYoIShhIGluIGspKXtpZihcInZhbHVlXCI9PWEmJlwiZGVmYXVsdFZhbHVlXCJpbiBrfHxcImNoZWNrZWRcIj09YSYmXCJkZWZhdWx0Q2hlY2tlZFwiaW4gayljb250aW51ZTtGKHUsYSxudWxsLHcsbyl9Zm9yKGEgaW4gayl3PWtbYV0sXCJjaGlsZHJlblwiPT1hP3k9dzpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PWE/aD13OlwidmFsdWVcIj09YT9nPXc6XCJjaGVja2VkXCI9PWE/bT13OmMmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHd8fGJbYV09PT13fHxGKHUsYSx3LGJbYV0sbyk7aWYoaCljfHx2JiYoaC5fX2h0bWw9PT12Ll9faHRtbHx8aC5fX2h0bWw9PT11LmlubmVySFRNTCl8fCh1LmlubmVySFRNTD1oLl9faHRtbCksdC5fX2s9W107ZWxzZSBpZih2JiYodS5pbm5lckhUTUw9XCJcIiksJCh1LGQoeSk/eTpbeV0sdCxpLHIsXCJmb3JlaWduT2JqZWN0XCI9PXg/XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI6byxlLGYsZT9lWzBdOmkuX19rJiZDKGksMCksYyxzKSxudWxsIT1lKWZvcihhPWUubGVuZ3RoO2EtLTspXyhlW2FdKTtjfHwoYT1cInZhbHVlXCIsXCJwcm9ncmVzc1wiPT14JiZudWxsPT1nP3UucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik6dm9pZCAwIT09ZyYmKGchPT11W2FdfHxcInByb2dyZXNzXCI9PXgmJiFnfHxcIm9wdGlvblwiPT14JiZnIT09YlthXSkmJkYodSxhLGcsYlthXSxvKSxhPVwiY2hlY2tlZFwiLHZvaWQgMCE9PW0mJm0hPT11W2FdJiZGKHUsYSxtLGJbYV0sbykpfXJldHVybiB1fWZ1bmN0aW9uIFYobix1LHQpe3RyeXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuKXt2YXIgaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuLl9fdTtpJiZuLl9fdSgpLGkmJm51bGw9PXV8fChuLl9fdT1uKHUpKX1lbHNlIG4uY3VycmVudD11fWNhdGNoKG4pe2wuX19lKG4sdCl9fWZ1bmN0aW9uIHEobix1LHQpe3ZhciBpLHI7aWYobC51bm1vdW50JiZsLnVubW91bnQobiksKGk9bi5yZWYpJiYoaS5jdXJyZW50JiZpLmN1cnJlbnQhPT1uLl9fZXx8VihpLG51bGwsdSkpLG51bGwhPShpPW4uX19jKSl7aWYoaS5jb21wb25lbnRXaWxsVW5tb3VudCl0cnl7aS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKG4pe2wuX19lKG4sdSl9aS5iYXNlPWkuX19QPW51bGx9aWYoaT1uLl9faylmb3Iocj0wO3I8aS5sZW5ndGg7cisrKWlbcl0mJnEoaVtyXSx1LHR8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udHlwZSk7dHx8XyhuLl9fZSksbi5fX2M9bi5fXz1uLl9fZT12b2lkIDB9ZnVuY3Rpb24gQihuLGwsdSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3Iobix1KX1mdW5jdGlvbiBEKHUsdCxpKXt2YXIgcixvLGUsZjt0PT1kb2N1bWVudCYmKHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSxsLl9fJiZsLl9fKHUsdCksbz0ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBpKT9udWxsOmkmJmkuX19rfHx0Ll9fayxlPVtdLGY9W10saih0LHU9KCFyJiZpfHx0KS5fX2s9ZyhrLG51bGwsW3VdKSxvfHxwLHAsdC5uYW1lc3BhY2VVUkksIXImJmk/W2ldOm8/bnVsbDp0LmZpcnN0Q2hpbGQ/bi5jYWxsKHQuY2hpbGROb2Rlcyk6bnVsbCxlLCFyJiZpP2k6bz9vLl9fZTp0LmZpcnN0Q2hpbGQscixmKSx6KGUsdSxmKX1mdW5jdGlvbiBFKG4sbCl7RChuLGwsRSl9ZnVuY3Rpb24gRyhsLHUsdCl7dmFyIGkscixvLGUsZj13KHt9LGwucHJvcHMpO2ZvcihvIGluIGwudHlwZSYmbC50eXBlLmRlZmF1bHRQcm9wcyYmKGU9bC50eXBlLmRlZmF1bHRQcm9wcyksdSlcImtleVwiPT1vP2k9dVtvXTpcInJlZlwiPT1vP3I9dVtvXTpmW29dPXZvaWQgMD09PXVbb10mJnZvaWQgMCE9PWU/ZVtvXTp1W29dO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjImJihmLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9uLmNhbGwoYXJndW1lbnRzLDIpOnQpLG0obC50eXBlLGYsaXx8bC5rZXkscnx8bC5yZWYsbnVsbCl9ZnVuY3Rpb24gSihuLGwpe3ZhciB1PXtfX2M6bD1cIl9fY0NcIitoKyssX186bixDb25zdW1lcjpmdW5jdGlvbihuLGwpe3JldHVybiBuLmNoaWxkcmVuKGwpfSxQcm92aWRlcjpmdW5jdGlvbihuKXt2YXIgdSx0O3JldHVybiB0aGlzLmdldENoaWxkQ29udGV4dHx8KHU9bmV3IFNldCwodD17fSlbbF09dGhpcyx0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiB0fSx0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dT1udWxsfSx0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihuKXt0aGlzLnByb3BzLnZhbHVlIT09bi52YWx1ZSYmdS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uX19lPSEwLE0obil9KX0sdGhpcy5zdWI9ZnVuY3Rpb24obil7dS5hZGQobik7dmFyIGw9bi5jb21wb25lbnRXaWxsVW5tb3VudDtuLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dSYmdS5kZWxldGUobiksbCYmbC5jYWxsKG4pfX0pLG4uY2hpbGRyZW59fTtyZXR1cm4gdS5Qcm92aWRlci5fXz11LkNvbnN1bWVyLmNvbnRleHRUeXBlPXV9bj12LnNsaWNlLGw9e19fZTpmdW5jdGlvbihuLGwsdSx0KXtmb3IodmFyIGkscixvO2w9bC5fXzspaWYoKGk9bC5fX2MpJiYhaS5fXyl0cnl7aWYoKHI9aS5jb25zdHJ1Y3RvcikmJm51bGwhPXIuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yJiYoaS5zZXRTdGF0ZShyLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihuKSksbz1pLl9fZCksbnVsbCE9aS5jb21wb25lbnREaWRDYXRjaCYmKGkuY29tcG9uZW50RGlkQ2F0Y2gobix0fHx7fSksbz1pLl9fZCksbylyZXR1cm4gaS5fX0U9aX1jYXRjaChsKXtuPWx9dGhyb3cgbn19LHU9MCx0PWZ1bmN0aW9uKG4pe3JldHVybiBudWxsIT1uJiZudWxsPT1uLmNvbnN0cnVjdG9yfSx4LnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihuLGwpe3ZhciB1O3U9bnVsbCE9dGhpcy5fX3MmJnRoaXMuX19zIT09dGhpcy5zdGF0ZT90aGlzLl9fczp0aGlzLl9fcz13KHt9LHRoaXMuc3RhdGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4mJihuPW4odyh7fSx1KSx0aGlzLnByb3BzKSksbiYmdyh1LG4pLG51bGwhPW4mJnRoaXMuX192JiYobCYmdGhpcy5fc2IucHVzaChsKSxNKHRoaXMpKX0seC5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24obil7dGhpcy5fX3YmJih0aGlzLl9fZT0hMCxuJiZ0aGlzLl9faC5wdXNoKG4pLE0odGhpcykpfSx4LnByb3RvdHlwZS5yZW5kZXI9ayxpPVtdLG89XCJmdW5jdGlvblwiPT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlLnByb3RvdHlwZS50aGVuLmJpbmQoUHJvbWlzZS5yZXNvbHZlKCkpOnNldFRpbWVvdXQsZT1mdW5jdGlvbihuLGwpe3JldHVybiBuLl9fdi5fX2ItbC5fX3YuX19ifSxQLl9fcj0wLGY9LyhQb2ludGVyQ2FwdHVyZSkkfENhcHR1cmUkL2ksYz0wLHM9TyghMSksYT1PKCEwKSxoPTA7ZXhwb3J0e3ggYXMgQ29tcG9uZW50LGsgYXMgRnJhZ21lbnQsRyBhcyBjbG9uZUVsZW1lbnQsSiBhcyBjcmVhdGVDb250ZXh0LGcgYXMgY3JlYXRlRWxlbWVudCxiIGFzIGNyZWF0ZVJlZixnIGFzIGgsRSBhcyBoeWRyYXRlLHQgYXMgaXNWYWxpZEVsZW1lbnQsbCBhcyBvcHRpb25zLEQgYXMgcmVuZGVyLEggYXMgdG9DaGlsZEFycmF5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZWFjdC5tb2R1bGUuanMubWFwXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5leHBvcnQgdmFyIERlZmF1bHRDb250ZXh0ID0ge1xuICBjb2xvcjogdW5kZWZpbmVkLFxuICBzaXplOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICBzdHlsZTogdW5kZWZpbmVkLFxuICBhdHRyOiB1bmRlZmluZWRcbn07XG5leHBvcnQgdmFyIEljb25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChEZWZhdWx0Q29udGV4dCk7IiwidmFyIF9leGNsdWRlZCA9IFtcImF0dHJcIiwgXCJzaXplXCIsIFwidGl0bGVcIl07XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpOyB2YXIga2V5LCBpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc291cmNlU3ltYm9sS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlU3ltYm9sS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiA/IE9iamVjdC5hc3NpZ24uYmluZCgpIDogZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IF9kZWZpbmVQcm9wZXJ0eShlLCByLCB0W3JdKTsgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIHIpKTsgfSk7IH0gcmV0dXJuIGU7IH1cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsga2V5ID0gX3RvUHJvcGVydHlLZXkoa2V5KTsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleSh0KSB7IHZhciBpID0gX3RvUHJpbWl0aXZlKHQsIFwic3RyaW5nXCIpOyByZXR1cm4gXCJzeW1ib2xcIiA9PSB0eXBlb2YgaSA/IGkgOiBpICsgXCJcIjsgfVxuZnVuY3Rpb24gX3RvUHJpbWl0aXZlKHQsIHIpIHsgaWYgKFwib2JqZWN0XCIgIT0gdHlwZW9mIHQgfHwgIXQpIHJldHVybiB0OyB2YXIgZSA9IHRbU3ltYm9sLnRvUHJpbWl0aXZlXTsgaWYgKHZvaWQgMCAhPT0gZSkgeyB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTsgaWYgKFwib2JqZWN0XCIgIT0gdHlwZW9mIGkpIHJldHVybiBpOyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7IH0gcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTsgfVxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgSWNvbkNvbnRleHQsIERlZmF1bHRDb250ZXh0IH0gZnJvbSBcIi4vaWNvbkNvbnRleHQubWpzXCI7XG5mdW5jdGlvbiBUcmVlMkVsZW1lbnQodHJlZSkge1xuICByZXR1cm4gdHJlZSAmJiB0cmVlLm1hcCgobm9kZSwgaSkgPT4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQobm9kZS50YWcsIF9vYmplY3RTcHJlYWQoe1xuICAgIGtleTogaVxuICB9LCBub2RlLmF0dHIpLCBUcmVlMkVsZW1lbnQobm9kZS5jaGlsZCkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBHZW5JY29uKGRhdGEpIHtcbiAgcmV0dXJuIHByb3BzID0+IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEljb25CYXNlLCBfZXh0ZW5kcyh7XG4gICAgYXR0cjogX29iamVjdFNwcmVhZCh7fSwgZGF0YS5hdHRyKVxuICB9LCBwcm9wcyksIFRyZWUyRWxlbWVudChkYXRhLmNoaWxkKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gSWNvbkJhc2UocHJvcHMpIHtcbiAgdmFyIGVsZW0gPSBjb25mID0+IHtcbiAgICB2YXIge1xuICAgICAgICBhdHRyLFxuICAgICAgICBzaXplLFxuICAgICAgICB0aXRsZVxuICAgICAgfSA9IHByb3BzLFxuICAgICAgc3ZnUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIF9leGNsdWRlZCk7XG4gICAgdmFyIGNvbXB1dGVkU2l6ZSA9IHNpemUgfHwgY29uZi5zaXplIHx8IFwiMWVtXCI7XG4gICAgdmFyIGNsYXNzTmFtZTtcbiAgICBpZiAoY29uZi5jbGFzc05hbWUpIGNsYXNzTmFtZSA9IGNvbmYuY2xhc3NOYW1lO1xuICAgIGlmIChwcm9wcy5jbGFzc05hbWUpIGNsYXNzTmFtZSA9IChjbGFzc05hbWUgPyBjbGFzc05hbWUgKyBcIiBcIiA6IFwiXCIpICsgcHJvcHMuY2xhc3NOYW1lO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7XG4gICAgICBzdHJva2U6IFwiY3VycmVudENvbG9yXCIsXG4gICAgICBmaWxsOiBcImN1cnJlbnRDb2xvclwiLFxuICAgICAgc3Ryb2tlV2lkdGg6IFwiMFwiXG4gICAgfSwgY29uZi5hdHRyLCBhdHRyLCBzdmdQcm9wcywge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICBzdHlsZTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgY29sb3I6IHByb3BzLmNvbG9yIHx8IGNvbmYuY29sb3JcbiAgICAgIH0sIGNvbmYuc3R5bGUpLCBwcm9wcy5zdHlsZSksXG4gICAgICBoZWlnaHQ6IGNvbXB1dGVkU2l6ZSxcbiAgICAgIHdpZHRoOiBjb21wdXRlZFNpemUsXG4gICAgICB4bWxuczogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgfSksIHRpdGxlICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidGl0bGVcIiwgbnVsbCwgdGl0bGUpLCBwcm9wcy5jaGlsZHJlbik7XG4gIH07XG4gIHJldHVybiBJY29uQ29udGV4dCAhPT0gdW5kZWZpbmVkID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkNvbnRleHQuQ29uc3VtZXIsIG51bGwsIGNvbmYgPT4gZWxlbShjb25mKSkgOiBlbGVtKERlZmF1bHRDb250ZXh0KTtcbn0iLCIvLyBUSElTIEZJTEUgSVMgQVVUTyBHRU5FUkFURURcbmltcG9ydCB7IEdlbkljb24gfSBmcm9tICcuLi9saWIvaW5kZXgubWpzJztcbmV4cG9ydCBmdW5jdGlvbiBIaUFjYWRlbWljQ2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4zOTQgMi4wOGExIDEgMCAwMC0uNzg4IDBsLTcgM2ExIDEgMCAwMDAgMS44NEw1LjI1IDguMDUxYS45OTkuOTk5IDAgMDEuMzU2LS4yNTdsNC0xLjcxNGExIDEgMCAxMS43ODggMS44MzhMNy42NjcgOS4wODhsMS45NC44MzFhMSAxIDAgMDAuNzg3IDBsNy0zYTEgMSAwIDAwMC0xLjgzOGwtNy0zek0zLjMxIDkuMzk3TDUgMTAuMTJ2NC4xMDJhOC45NjkgOC45NjkgMCAwMC0xLjA1LS4xNzQgMSAxIDAgMDEtLjg5LS44OSAxMS4xMTUgMTEuMTE1IDAgMDEuMjUtMy43NjJ6TTkuMyAxNi41NzNBOS4wMjYgOS4wMjYgMCAwMDcgMTQuOTM1di0zLjk1N2wxLjgxOC43OGEzIDMgMCAwMDIuMzY0IDBsNS41MDgtMi4zNjFhMTEuMDI2IDExLjAyNiAwIDAxLjI1IDMuNzYyIDEgMSAwIDAxLS44OS44OSA4Ljk2OCA4Ljk2OCAwIDAwLTUuMzUgMi41MjQgMSAxIDAgMDEtMS40IDB6TTYgMThhMSAxIDAgMDAxLTF2LTIuMDY1YTguOTM1IDguOTM1IDAgMDAtMi0uNzEyVjE3YTEgMSAwIDAwMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBZGp1c3RtZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0YTEgMSAwIDAwLTIgMHY3LjI2OGEyIDIgMCAwMDAgMy40NjRWMTZhMSAxIDAgMTAyIDB2LTEuMjY4YTIgMiAwIDAwMC0zLjQ2NFY0ek0xMSA0YTEgMSAwIDEwLTIgMHYxLjI2OGEyIDIgMCAwMDAgMy40NjRWMTZhMSAxIDAgMTAyIDBWOC43MzJhMiAyIDAgMDAwLTMuNDY0VjR6TTE2IDNhMSAxIDAgMDExIDF2Ny4yNjhhMiAyIDAgMDEwIDMuNDY0VjE2YTEgMSAwIDExLTIgMHYtMS4yNjhhMiAyIDAgMDEwLTMuNDY0VjRhMSAxIDAgMDExLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFubm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xOCAxM1Y1YTIgMiAwIDAwLTItMkg0YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyaDNsMyAzIDMtM2gzYTIgMiAwIDAwMi0yek01IDdhMSAxIDAgMDExLTFoOGExIDEgMCAxMTAgMkg2YTEgMSAwIDAxLTEtMXptMSAzYTEgMSAwIDEwMCAyaDNhMSAxIDAgMTAwLTJINnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgM2EyIDIgMCAxMDAgNGgxMmEyIDIgMCAxMDAtNEg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA4aDE0djdhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yVjh6bTUgM2ExIDEgMCAwMTEtMWgyYTEgMSAwIDExMCAySDlhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xMWExIDEgMCAxMC0yIDB2My41ODZMNy43MDcgOS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQgMGwzLTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTEgMTAuNTg2Vjd6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd0NpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0uNzA3LTEwLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNGwtMyAzYTEgMSAwIDAwMCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNC0xLjQxNEw5LjQxNCAxMUgxM2ExIDEgMCAxMDAtMkg5LjQxNGwxLjI5My0xLjI5M3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93Q2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy04LjcwN2wtMy0zYTEgMSAwIDAwLTEuNDE0IDEuNDE0TDEwLjU4NiA5SDdhMSAxIDAgMTAwIDJoMy41ODZsLTEuMjkzIDEuMjkzYTEgMSAwIDEwMS40MTQgMS40MTRsMy0zYTEgMSAwIDAwMC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93Q2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2em0zLjcwNy04LjcwN2wtMy0zYTEgMSAwIDAwLTEuNDE0IDBsLTMgM2ExIDEgMCAwMDEuNDE0IDEuNDE0TDkgOS40MTRWMTNhMSAxIDAgMTAyIDBWOS40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2LjcwNyAxMC4yOTNhMSAxIDAgMDEwIDEuNDE0bC02IDZhMSAxIDAgMDEtMS40MTQgMGwtNi02YTEgMSAwIDExMS40MTQtMS40MTRMOSAxNC41ODZWM2ExIDEgMCAwMTIgMHYxMS41ODZsNC4yOTMtNC4yOTNhMSAxIDAgMDExLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS43MDcgMTYuNzA3YTEgMSAwIDAxLTEuNDE0IDBsLTYtNmExIDEgMCAwMTAtMS40MTRsNi02YTEgMSAwIDAxMS40MTQgMS40MTRMNS40MTQgOUgxN2ExIDEgMCAxMTAgMkg1LjQxNGw0LjI5MyA0LjI5M2ExIDEgMCAwMTAgMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd05hcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNC43MDcgMTIuMjkzYTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAxMTEuNDE0LTEuNDE0TDkgMTQuNTg2VjNhMSAxIDAgMDEyIDB2MTEuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93TmFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcuNzA3IDE0LjcwN2ExIDEgMCAwMS0xLjQxNCAwbC00LTRhMSAxIDAgMDEwLTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDEuNDE0TDUuNDE0IDlIMTdhMSAxIDAgMTEwIDJINS40MTRsMi4yOTMgMi4yOTNhMSAxIDAgMDEwIDEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dOYXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyLjI5MyA1LjI5M2ExIDEgMCAwMTEuNDE0IDBsNCA0YTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0LTEuNDE0TDE0LjU4NiAxMUgzYTEgMSAwIDExMC0yaDExLjU4NmwtMi4yOTMtMi4yOTNhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dOYXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuMjkzIDcuNzA3YTEgMSAwIDAxMC0xLjQxNGw0LTRhMSAxIDAgMDExLjQxNCAwbDQgNGExIDEgMCAwMS0xLjQxNCAxLjQxNEwxMSA1LjQxNFYxN2ExIDEgMCAxMS0yIDBWNS40MTRMNi43MDcgNy43MDdhMSAxIDAgMDEtMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC4yOTMgMy4yOTNhMSAxIDAgMDExLjQxNCAwbDYgNmExIDEgMCAwMTAgMS40MTRsLTYgNmExIDEgMCAwMS0xLjQxNC0xLjQxNEwxNC41ODYgMTFIM2ExIDEgMCAxMTAtMmgxMS41ODZsLTQuMjkzLTQuMjkzYTEgMSAwIDAxMC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93U21Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuNzA3IDEwLjI5M2ExIDEgMCAwMTAgMS40MTRsLTQgNGExIDEgMCAwMS0xLjQxNCAwbC00LTRhMSAxIDAgMTExLjQxNC0xLjQxNEw5IDEyLjU4NlY1YTEgMSAwIDAxMiAwdjcuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93U21MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS43MDcgMTQuNzA3YTEgMSAwIDAxLTEuNDE0IDBsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMS40MTRMNy40MTQgOUgxNWExIDEgMCAxMTAgMkg3LjQxNGwyLjI5MyAyLjI5M2ExIDEgMCAwMTAgMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBcnJvd1NtUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC4yOTMgNS4yOTNhMSAxIDAgMDExLjQxNCAwbDQgNGExIDEgMCAwMTAgMS40MTRsLTQgNGExIDEgMCAwMS0xLjQxNC0xLjQxNEwxMi41ODYgMTFINWExIDEgMCAxMTAtMmg3LjU4NmwtMi4yOTMtMi4yOTNhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dTbVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNS4yOTMgOS43MDdhMSAxIDAgMDEwLTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDBsNCA0YTEgMSAwIDAxLTEuNDE0IDEuNDE0TDExIDcuNDE0VjE1YTEgMSAwIDExLTIgMFY3LjQxNEw2LjcwNyA5LjcwN2ExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuMjkzIDkuNzA3YTEgMSAwIDAxMC0xLjQxNGw2LTZhMSAxIDAgMDExLjQxNCAwbDYgNmExIDEgMCAwMS0xLjQxNCAxLjQxNEwxMSA1LjQxNFYxN2ExIDEgMCAxMS0yIDBWNS40MTRMNC43MDcgOS43MDdhMSAxIDAgMDEtMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUFycm93c0V4cGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNGExIDEgMCAwMTEtMWg0YTEgMSAwIDAxMCAySDYuNDE0bDIuMjkzIDIuMjkzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDUgNi40MTRWOGExIDEgMCAwMS0yIDBWNHptOSAxYTEgMSAwIDExMC0yaDRhMSAxIDAgMDExIDF2NGExIDEgMCAxMS0yIDBWNi40MTRsLTIuMjkzIDIuMjkzYTEgMSAwIDExLTEuNDE0LTEuNDE0TDEzLjU4NiA1SDEyem0tOSA3YTEgMSAwIDExMiAwdjEuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAxMS40MTQgMS40MTRMNi40MTQgMTVIOGExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXYtNHptMTMtMWExIDEgMCAwMTEgMXY0YTEgMSAwIDAxLTEgMWgtNGExIDEgMCAxMTAtMmgxLjU4NmwtMi4yOTMtMi4yOTNhMSAxIDAgMDExLjQxNC0xLjQxNEwxNSAxMy41ODZWMTJhMSAxIDAgMDExLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlBdFN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0LjI0MyA1Ljc1N2E2IDYgMCAxMC0uOTg2IDkuMjg0IDEgMSAwIDExMS4wODcgMS42NzhBOCA4IDAgMTExOCAxMGEzIDMgMCAwMS00LjggMi40MDFBNCA0IDAgMTExNCAxMGExIDEgMCAxMDIgMGMwLTEuNTM3LS41ODYtMy4wNy0xLjc1Ny00LjI0M3pNMTIgMTBhMiAyIDAgMTAtNCAwIDIgMiAwIDAwNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNi43MDcgNC44NzlBMyAzIDAgMDE4LjgyOCA0SDE1YTMgMyAwIDAxMyAzdjZhMyAzIDAgMDEtMyAzSDguODI4YTMgMyAwIDAxLTIuMTItLjg3OWwtNC40MTUtNC40MTRhMSAxIDAgMDEwLTEuNDE0bDQuNDE0LTQuNDE0em00IDIuNDE0YTEgMSAwIDAwLTEuNDE0IDEuNDE0TDEwLjU4NiAxMGwtMS4yOTMgMS4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxMiAxMS40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNEwxMy40MTQgMTBsMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTIgOC41ODZsLTEuMjkzLTEuMjkzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQmFkZ2VDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuMjY3IDMuNDU1YTMuMDY2IDMuMDY2IDAgMDAxLjc0NS0uNzIzIDMuMDY2IDMuMDY2IDAgMDEzLjk3NiAwIDMuMDY2IDMuMDY2IDAgMDAxLjc0NS43MjMgMy4wNjYgMy4wNjYgMCAwMTIuODEyIDIuODEyYy4wNTEuNjQzLjMwNCAxLjI1NC43MjMgMS43NDVhMy4wNjYgMy4wNjYgMCAwMTAgMy45NzYgMy4wNjYgMy4wNjYgMCAwMC0uNzIzIDEuNzQ1IDMuMDY2IDMuMDY2IDAgMDEtMi44MTIgMi44MTIgMy4wNjYgMy4wNjYgMCAwMC0xLjc0NS43MjMgMy4wNjYgMy4wNjYgMCAwMS0zLjk3NiAwIDMuMDY2IDMuMDY2IDAgMDAtMS43NDUtLjcyMyAzLjA2NiAzLjA2NiAwIDAxLTIuODEyLTIuODEyIDMuMDY2IDMuMDY2IDAgMDAtLjcyMy0xLjc0NSAzLjA2NiAzLjA2NiAwIDAxMC0zLjk3NiAzLjA2NiAzLjA2NiAwIDAwLjcyMy0xLjc0NSAzLjA2NiAzLjA2NiAwIDAxMi44MTItMi44MTJ6bTcuNDQgNS4yNTJhMSAxIDAgMDAtMS40MTQtMS40MTRMOSAxMC41ODYgNy43MDcgOS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMiAyYTEgMSAwIDAwMS40MTQgMGw0LTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMy40NzcgMTQuODlBNiA2IDAgMDE1LjExIDYuNTI0bDguMzY3IDguMzY4em0xLjQxNC0xLjQxNEw2LjUyNCA1LjExYTYgNiAwIDAxOC4zNjcgOC4zNjd6TTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQmVha2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNyAyYTEgMSAwIDAwLS43MDcgMS43MDdMNyA0LjQxNHYzLjc1OGExIDEgMCAwMS0uMjkzLjcwN2wtNCA0Qy44MTcgMTQuNzY5IDIuMTU2IDE4IDQuODI4IDE4aDEwLjM0M2MyLjY3MyAwIDQuMDEyLTMuMjMxIDIuMTIyLTUuMTIxbC00LTRBMSAxIDAgMDExMyA4LjE3MlY0LjQxNGwuNzA3LS43MDdBMSAxIDAgMDAxMyAySDd6bTIgNi4xNzJWNGgydjQuMTcyYTMgMyAwIDAwLjg3OSAyLjEybDEuMDI3IDEuMDI4YTQgNCAwIDAwLTIuMTcxLjEwMmwtLjQ3LjE1NmE0IDQgMCAwMS0yLjUzIDBsLS41NjMtLjE4N2ExLjk5MyAxLjk5MyAwIDAwLS4xMTQtLjAzNWwxLjA2My0xLjA2M0EzIDMgMCAwMDkgOC4xNzJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyYTYgNiAwIDAwLTYgNnYzLjU4NmwtLjcwNy43MDdBMSAxIDAgMDA0IDE0aDEyYTEgMSAwIDAwLjcwNy0xLjcwN0wxNiAxMS41ODZWOGE2IDYgMCAwMC02LTZ6TTEwIDE4YTMgMyAwIDAxLTMtM2g2YTMgMyAwIDAxLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQm9va09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNC44MDRBNy45NjggNy45NjggMCAwMDUuNSA0Yy0xLjI1NSAwLTIuNDQzLjI5LTMuNS44MDR2MTBBNy45NjkgNy45NjkgMCAwMTUuNSAxNGMxLjY2OSAwIDMuMjE4LjUxIDQuNSAxLjM4NUE3Ljk2MiA3Ljk2MiAwIDAxMTQuNSAxNGMxLjI1NSAwIDIuNDQzLjI5IDMuNS44MDR2LTEwQTcuOTY4IDcuOTY4IDAgMDAxNC41IDRjLTEuMjU1IDAtMi40NDMuMjktMy41LjgwNFYxMmExIDEgMCAxMS0yIDBWNC44MDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUJvb2ttYXJrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA1YTIgMiAwIDAxMi0yaDEwYTIgMiAwIDAxMiAydjEwYTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMlY1em0xMSAxSDZ2OGw0LTIgNCAyVjZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0YTIgMiAwIDAxMi0yaDZhMiAyIDAgMDEyIDJ2MTRsLTUtMi41TDUgMThWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQnJpZWZjYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiA2VjVhMyAzIDAgMDEzLTNoMmEzIDMgMCAwMTMgM3YxaDJhMiAyIDAgMDEyIDJ2My41N0EyMi45NTIgMjIuOTUyIDAgMDExMCAxM2EyMi45NSAyMi45NSAwIDAxLTgtMS40M1Y4YTIgMiAwIDAxMi0yaDJ6bTItMWExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjFIOFY1em0xIDVhMSAxIDAgMDExLTFoLjAxYTEgMSAwIDExMCAySDEwYTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTMuNjkyVjE2YTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0ydi0yLjMwOEEyNC45NzQgMjQuOTc0IDAgMDExMCAxNWMtMi43OTYgMC01LjQ4Ny0uNDYtOC0xLjMwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2FrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgM2ExIDEgMCAwMTEtMWguMDFhMSAxIDAgMDEwIDJIN2ExIDEgMCAwMS0xLTF6bTIgM2ExIDEgMCAwMC0yIDB2MWEyIDIgMCAwMC0yIDJ2MWEyIDIgMCAwMC0yIDJ2LjY4M2EzLjcgMy43IDAgMDExLjA1NS40ODUgMS43MDQgMS43MDQgMCAwMDEuODkgMCAzLjcwNCAzLjcwNCAwIDAxNC4xMSAwIDEuNzA0IDEuNzA0IDAgMDAxLjg5IDAgMy43MDQgMy43MDQgMCAwMTQuMTEgMCAxLjcwNCAxLjcwNCAwIDAwMS44OSAwQTMuNyAzLjcgMCAwMTE4IDEyLjY4M1YxMmEyIDIgMCAwMC0yLTJWOWEyIDIgMCAwMC0yLTJWNmExIDEgMCAxMC0yIDB2MWgtMVY2YTEgMSAwIDEwLTIgMHYxSDhWNnptMTAgOC44NjhhMy43MDQgMy43MDQgMCAwMS00LjA1NS0uMDM2IDEuNzA0IDEuNzA0IDAgMDAtMS44OSAwIDMuNzA0IDMuNzA0IDAgMDEtNC4xMSAwIDEuNzA0IDEuNzA0IDAgMDAtMS44OSAwQTMuNzA0IDMuNzA0IDAgMDEyIDE0Ljg2OFYxN2ExIDEgMCAwMDEgMWgxNGExIDEgMCAwMDEtMXYtMi4xMzJ6TTkgM2ExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIMTBhMSAxIDAgMDEtMS0xem0zIDBhMSAxIDAgMDExLTFoLjAxYTEgMSAwIDExMCAySDEzYTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNhbGN1bGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDJhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJWNGEyIDIgMCAwMC0yLTJINnptMSAyYTEgMSAwIDAwMCAyaDZhMSAxIDAgMTAwLTJIN3ptNiA3YTEgMSAwIDAxMSAxdjNhMSAxIDAgMTEtMiAwdi0zYTEgMSAwIDAxMS0xem0tMyAzYTEgMSAwIDEwMCAyaC4wMWExIDEgMCAxMDAtMkgxMHptLTQgMWExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIN2ExIDEgMCAwMS0xLTF6bTEtNGExIDEgMCAxMDAgMmguMDFhMSAxIDAgMTAwLTJIN3ptMiAxYTEgMSAwIDAxMS0xaC4wMWExIDEgMCAxMTAgMkgxMGExIDEgMCAwMS0xLTF6bTQtNGExIDEgMCAxMDAgMmguMDFhMSAxIDAgMTAwLTJIMTN6TTkgOWExIDEgMCAwMTEtMWguMDFhMSAxIDAgMTEwIDJIMTBhMSAxIDAgMDEtMS0xek03IDhhMSAxIDAgMDAwIDJoLjAxYTEgMSAwIDAwMC0ySDd6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmExIDEgMCAwMC0xIDF2MUg0YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMmgtMVYzYTEgMSAwIDEwLTIgMHYxSDdWM2ExIDEgMCAwMC0xLTF6bTAgNWExIDEgMCAwMDAgMmg4YTEgMSAwIDEwMC0ySDZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDVhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJoLTEuNTg2YTEgMSAwIDAxLS43MDctLjI5M2wtMS4xMjEtMS4xMjFBMiAyIDAgMDAxMS4xNzIgM0g4LjgyOGEyIDIgMCAwMC0xLjQxNC41ODZMNi4yOTMgNC43MDdBMSAxIDAgMDE1LjU4NiA1SDR6bTYgOWEzIDMgMCAxMDAtNiAzIDMgMCAwMDAgNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDRhMiAyIDAgMDAtMiAydjRhMiAyIDAgMDAyIDJWNmgxMGEyIDIgMCAwMC0yLTJINHptMiA2YTIgMiAwIDAxMi0yaDhhMiAyIDAgMDEyIDJ2NGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJ2LTR6bTYgNGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoYXJ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDExYTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2NWExIDEgMCAwMS0xIDFIM2ExIDEgMCAwMS0xLTF2LTV6TTggN2ExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjlhMSAxIDAgMDEtMSAxSDlhMSAxIDAgMDEtMS0xVjd6TTE0IDRhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXYxMmExIDEgMCAwMS0xIDFoLTJhMSAxIDAgMDEtMS0xVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoYXJ0UGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEwYTggOCAwIDAxOC04djhoOGE4IDggMCAxMS0xNiAwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyLjI1MkE4LjAxNCA4LjAxNCAwIDAxMTcuNzQ4IDhIMTJWMi4yNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoYXJ0U3F1YXJlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSAzYTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg1em05IDRhMSAxIDAgMTAtMiAwdjZhMSAxIDAgMTAyIDBWN3ptLTMgMmExIDEgMCAxMC0yIDB2NGExIDEgMCAxMDIgMFY5em0tMyAzYTEgMSAwIDEwLTIgMHYxYTEgMSAwIDEwMiAwdi0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hhdEFsdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNWEyIDIgMCAwMTItMmg3YTIgMiAwIDAxMiAydjRhMiAyIDAgMDEtMiAySDlsLTMgM3YtM0g0YTIgMiAwIDAxLTItMlY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3djJhNCA0IDAgMDEtNCA0SDkuODI4bC0xLjc2NiAxLjc2N2MuMjguMTQ5LjU5OS4yMzMuOTM4LjIzM2gybDMgM3YtM2gyYTIgMiAwIDAwMi0yVjlhMiAyIDAgMDAtMi0yaC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGF0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTggNXY4YTIgMiAwIDAxLTIgMmgtNWwtNSA0di00SDRhMiAyIDAgMDEtMi0yVjVhMiAyIDAgMDEyLTJoMTJhMiAyIDAgMDEyIDJ6TTcgOEg1djJoMlY4em0yIDBoMnYySDlWOHptNiAwaC0ydjJoMlY4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYzAgMy44NjYtMy41ODIgNy04IDdhOC44NDEgOC44NDEgMCAwMS00LjA4My0uOThMMiAxN2wxLjMzOC0zLjEyM0MyLjQ5MyAxMi43NjcgMiAxMS40MzQgMiAxMGMwLTMuODY2IDMuNTgyLTcgOC03czggMy4xMzQgOCA3ek03IDlINXYyaDJWOXptOCAwaC0ydjJoMlY5ek05IDloMnYySDlWOXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZWNrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMy43MDctOS4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMOSAxMC41ODYgNy43MDcgOS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMiAyYTEgMSAwIDAwMS40MTQgMGw0LTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE2LjcwNyA1LjI5M2ExIDEgMCAwMTAgMS40MTRsLTggOGExIDEgMCAwMS0xLjQxNCAwbC00LTRhMSAxIDAgMDExLjQxNC0xLjQxNEw4IDEyLjU4Nmw3LjI5My03LjI5M2ExIDEgMCAwMTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uRG91YmxlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE1LjcwNyA0LjI5M2ExIDEgMCAwMTAgMS40MTRsLTUgNWExIDEgMCAwMS0xLjQxNCAwbC01LTVhMSAxIDAgMDExLjQxNC0xLjQxNEwxMCA4LjU4Nmw0LjI5My00LjI5M2ExIDEgMCAwMTEuNDE0IDB6bTAgNmExIDEgMCAwMTAgMS40MTRsLTUgNWExIDEgMCAwMS0xLjQxNCAwbC01LTVhMSAxIDAgMTExLjQxNC0xLjQxNEwxMCAxNC41ODZsNC4yOTMtNC4yOTNhMSAxIDAgMDExLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hldnJvbkRvdWJsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNS43MDcgMTUuNzA3YTEgMSAwIDAxLTEuNDE0IDBsLTUtNWExIDEgMCAwMTAtMS40MTRsNS01YTEgMSAwIDExMS40MTQgMS40MTRMMTEuNDE0IDEwbDQuMjkzIDQuMjkzYTEgMSAwIDAxMCAxLjQxNHptLTYgMGExIDEgMCAwMS0xLjQxNCAwbC01LTVhMSAxIDAgMDEwLTEuNDE0bDUtNWExIDEgMCAwMTEuNDE0IDEuNDE0TDUuNDE0IDEwbDQuMjkzIDQuMjkzYTEgMSAwIDAxMCAxLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNoZXZyb25Eb3VibGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwLjI5MyAxNS43MDdhMSAxIDAgMDEwLTEuNDE0TDE0LjU4NiAxMGwtNC4yOTMtNC4yOTNhMSAxIDAgMTExLjQxNC0xLjQxNGw1IDVhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjI5MyAxNS43MDdhMSAxIDAgMDEwLTEuNDE0TDguNTg2IDEwIDQuMjkzIDUuNzA3YTEgMSAwIDAxMS40MTQtMS40MTRsNSA1YTEgMSAwIDAxMCAxLjQxNGwtNSA1YTEgMSAwIDAxLTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uRG91YmxlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjI5MyAxNS43MDdhMSAxIDAgMDEwLTEuNDE0bDUtNWExIDEgMCAwMTEuNDE0IDBsNSA1YTEgMSAwIDAxLTEuNDE0IDEuNDE0TDEwIDExLjQxNGwtNC4yOTMgNC4yOTNhMSAxIDAgMDEtMS40MTQgMHptMC02YTEgMSAwIDAxMC0xLjQxNGw1LTVhMSAxIDAgMDExLjQxNCAwbDUgNWExIDEgMCAwMS0xLjQxNCAxLjQxNEwxMCA1LjQxNCA1LjcwNyA5LjcwN2ExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hldnJvbkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjI5MyA3LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTAgMTAuNTg2bDMuMjkzLTMuMjkzYTEgMSAwIDExMS40MTQgMS40MTRsLTQgNGExIDEgMCAwMS0xLjQxNCAwbC00LTRhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi43MDcgNS4yOTNhMSAxIDAgMDEwIDEuNDE0TDkuNDE0IDEwbDMuMjkzIDMuMjkzYTEgMSAwIDAxLTEuNDE0IDEuNDE0bC00LTRhMSAxIDAgMDEwLTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03LjI5MyAxNC43MDdhMSAxIDAgMDEwLTEuNDE0TDEwLjU4NiAxMCA3LjI5MyA2LjcwN2ExIDEgMCAwMTEuNDE0LTEuNDE0bDQgNGExIDEgMCAwMTAgMS40MTRsLTQgNGExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2hldnJvblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTQuNzA3IDEyLjcwN2ExIDEgMCAwMS0xLjQxNCAwTDEwIDkuNDE0bC0zLjI5MyAzLjI5M2ExIDEgMCAwMS0xLjQxNC0xLjQxNGw0LTRhMSAxIDAgMDExLjQxNCAwbDQgNGExIDEgMCAwMTAgMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3SDd2Nmg2Vjd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03IDJhMSAxIDAgMDEyIDB2MWgyVjJhMSAxIDAgMTEyIDB2MWgyYTIgMiAwIDAxMiAydjJoMWExIDEgMCAxMTAgMmgtMXYyaDFhMSAxIDAgMTEwIDJoLTF2MmEyIDIgMCAwMS0yIDJoLTJ2MWExIDEgMCAxMS0yIDB2LTFIOXYxYTEgMSAwIDExLTIgMHYtMUg1YTIgMiAwIDAxLTItMnYtMkgyYTEgMSAwIDExMC0yaDFWOUgyYTEgMSAwIDAxMC0yaDFWNWEyIDIgMCAwMTItMmgyVjJ6TTUgNWgxMHYxMEg1VjV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDbGlwYm9hcmRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyYTEgMSAwIDAwMCAyaDJhMSAxIDAgMTAwLTJIOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNWEyIDIgMCAwMTItMiAzIDMgMCAwMDMgM2gyYTMgMyAwIDAwMy0zIDIgMiAwIDAxMiAydjExYTIgMiAwIDAxLTIgMkg2YTIgMiAwIDAxLTItMlY1em05LjcwNyA1LjcwN2ExIDEgMCAwMC0xLjQxNC0xLjQxNEw5IDEyLjU4NmwtMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMiAyYTEgMSAwIDAwMS40MTQgMGw0LTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDbGlwYm9hcmRDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDJhMSAxIDAgMDAwIDJoMmExIDEgMCAxMDAtMkg4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVhMiAyIDAgMDEyLTIgMyAzIDAgMDAzIDNoMmEzIDMgMCAwMDMtMyAyIDIgMCAwMTIgMnY2aC00LjU4NmwxLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNC0xLjQxNGwtMyAzYTEgMSAwIDAwMCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNC0xLjQxNEwxMC40MTQgMTNIMTV2M2EyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJWNXpNMTUgMTFoMmExIDEgMCAxMTAgMmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ2xpcGJvYXJkTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyYTEgMSAwIDAwMCAyaDJhMSAxIDAgMTAwLTJIOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNWEyIDIgMCAwMTItMiAzIDMgMCAwMDMgM2gyYTMgMyAwIDAwMy0zIDIgMiAwIDAxMiAydjExYTIgMiAwIDAxLTIgMkg2YTIgMiAwIDAxLTItMlY1em0zIDRhMSAxIDAgMDAwIDJoLjAxYTEgMSAwIDEwMC0ySDd6bTMgMGExIDEgMCAwMDAgMmgzYTEgMSAwIDEwMC0yaC0zem0tMyA0YTEgMSAwIDEwMCAyaC4wMWExIDEgMCAxMDAtMkg3em0zIDBhMSAxIDAgMTAwIDJoM2ExIDEgMCAxMDAtMmgtM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAzYTEgMSAwIDAxMS0xaDJhMSAxIDAgMTEwIDJIOWExIDEgMCAwMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgM2EyIDIgMCAwMC0yIDJ2MTFhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMiAzIDMgMCAwMS0zIDNIOWEzIDMgMCAwMS0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xMmExIDEgMCAxMC0yIDB2NGExIDEgMCAwMC4yOTMuNzA3bDIuODI4IDIuODI5YTEgMSAwIDEwMS40MTUtMS40MTVMMTEgOS41ODZWNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsb3VkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDkuNUEzLjUgMy41IDAgMDA1LjUgMTNIOXYyLjU4NmwtMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQgMGwzLTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTEgMTUuNTg2VjEzaDIuNWE0LjUgNC41IDAgMTAtLjYxNi04Ljk1OCA0LjAwMiA0LjAwMiAwIDEwLTcuNzUzIDEuOTc3QTMuNSAzLjUgMCAwMDIgOS41em05IDMuNUg5VjhhMSAxIDAgMDEyIDB2NXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsb3VkVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTNhMy41IDMuNSAwIDAxLS4zNjktNi45OCA0IDQgMCAxMTcuNzUzLTEuOTc3QTQuNSA0LjUgMCAxMTEzLjUgMTNIMTFWOS40MTNsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNGwtMy0zYTEgMSAwIDAwLTEuNDE0IDBsLTMgM2ExIDEgMCAwMDEuNDE0IDEuNDE0TDkgOS40MTRWMTNINS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEzaDJ2NWExIDEgMCAxMS0yIDB2LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTZhMy41IDMuNSAwIDAxLS4zNjktNi45OCA0IDQgMCAxMTcuNzUzLTEuOTc3QTQuNSA0LjUgMCAxMTEzLjUgMTZoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi4zMTYgMy4wNTFhMSAxIDAgMDEuNjMzIDEuMjY1bC00IDEyYTEgMSAwIDExLTEuODk4LS42MzJsNC0xMmExIDEgMCAwMTEuMjY1LS42MzN6TTUuNzA3IDYuMjkzYTEgMSAwIDAxMCAxLjQxNEwzLjQxNCAxMGwyLjI5MyAyLjI5M2ExIDEgMCAxMS0xLjQxNCAxLjQxNGwtMy0zYTEgMSAwIDAxMC0xLjQxNGwzLTNhMSAxIDAgMDExLjQxNCAwem04LjU4NiAwYTEgMSAwIDAxMS40MTQgMGwzIDNhMSAxIDAgMDEwIDEuNDE0bC0zIDNhMSAxIDAgMTEtMS40MTQtMS40MTRMMTYuNTg2IDEwbC0yLjI5My0yLjI5M2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMS40OSAzLjE3Yy0uMzgtMS41Ni0yLjYtMS41Ni0yLjk4IDBhMS41MzIgMS41MzIgMCAwMS0yLjI4Ni45NDhjLTEuMzcyLS44MzYtMi45NDIuNzM0LTIuMTA2IDIuMTA2LjU0Ljg4Ni4wNjEgMi4wNDItLjk0NyAyLjI4Ny0xLjU2MS4zNzktMS41NjEgMi42IDAgMi45NzhhMS41MzIgMS41MzIgMCAwMS45NDcgMi4yODdjLS44MzYgMS4zNzIuNzM0IDIuOTQyIDIuMTA2IDIuMTA2YTEuNTMyIDEuNTMyIDAgMDEyLjI4Ny45NDdjLjM3OSAxLjU2MSAyLjYgMS41NjEgMi45NzggMGExLjUzMyAxLjUzMyAwIDAxMi4yODctLjk0N2MxLjM3Mi44MzYgMi45NDItLjczNCAyLjEwNi0yLjEwNmExLjUzMyAxLjUzMyAwIDAxLjk0Ny0yLjI4N2MxLjU2MS0uMzc5IDEuNTYxLTIuNiAwLTIuOTc4YTEuNTMyIDEuNTMyIDAgMDEtLjk0Ny0yLjI4N2MuODM2LTEuMzcyLS43MzQtMi45NDItMi4xMDYtMi4xMDZhMS41MzIgMS41MzIgMCAwMS0yLjI4Ny0uOTQ3ek0xMCAxM2EzIDMgMCAxMDAtNiAzIDMgMCAwMDAgNnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUNvbGxlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgM2ExIDEgMCAwMDAgMmg2YTEgMSAwIDEwMC0ySDd6TTQgN2ExIDEgMCAwMTEtMWgxMGExIDEgMCAxMTAgMkg1YTEgMSAwIDAxLTEtMXpNMiAxMWEyIDIgMCAwMTItMmgxMmEyIDIgMCAwMTIgMnY0YTIgMiAwIDAxLTIgMkg0YTIgMiAwIDAxLTItMnYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ29sb3JTd2F0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDJhMiAyIDAgMDAtMiAydjExYTMgMyAwIDEwNiAwVjRhMiAyIDAgMDAtMi0ySDR6bTEgMTRhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTUtMS43NTdsNC45LTQuOWEyIDIgMCAwMDAtMi44MjhMMTMuNDg1IDUuMWEyIDIgMCAwMC0yLjgyOCAwTDEwIDUuNzU3djguNDg2ek0xNiAxOEg5LjA3MWw2LTZIMTZhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRhMiAyIDAgMDAtMiAydjFoMTZWNmEyIDIgMCAwMC0yLTJINHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDlIMnY1YTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjl6TTQgMTNhMSAxIDAgMDExLTFoMWExIDEgMCAxMTAgMkg1YTEgMSAwIDAxLTEtMXptNS0xYTEgMSAwIDEwMCAyaDFhMSAxIDAgMTAwLTJIOXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1YmVUcmFuc3BhcmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkuNTA0IDEuMTMyYTEgMSAwIDAxLjk5MiAwbDEuNzUgMWExIDEgMCAxMS0uOTkyIDEuNzM2TDEwIDMuMTUybC0xLjI1NC43MTZhMSAxIDAgMTEtLjk5Mi0xLjczNmwxLjc1LTF6TTUuNjE4IDQuNTA0YTEgMSAwIDAxLS4zNzIgMS4zNjRMNS4wMTYgNmwuMjMuMTMyYTEgMSAwIDExLS45OTIgMS43MzZMNCA3LjcyM1Y4YTEgMSAwIDAxLTIgMFY2YS45OTYuOTk2IDAgMDEuNTItLjg3OGwxLjczNC0uOTlhMSAxIDAgMDExLjM2NC4zNzJ6bTguNzY0IDBhMSAxIDAgMDExLjM2NC0uMzcybDEuNzMzLjk5QTEuMDAyIDEuMDAyIDAgMDExOCA2djJhMSAxIDAgMTEtMiAwdi0uMjc3bC0uMjU0LjE0NWExIDEgMCAxMS0uOTkyLTEuNzM2bC4yMy0uMTMyLS4yMy0uMTMyYTEgMSAwIDAxLS4zNzItMS4zNjR6bS03IDRhMSAxIDAgMDExLjM2NC0uMzcyTDEwIDguODQ4bDEuMjU0LS43MTZhMSAxIDAgMTEuOTkyIDEuNzM2TDExIDEwLjU4VjEyYTEgMSAwIDExLTIgMHYtMS40MmwtMS4yNDYtLjcxMmExIDEgMCAwMS0uMzcyLTEuMzY0ek0zIDExYTEgMSAwIDAxMSAxdjEuNDJsMS4yNDYuNzEyYTEgMSAwIDExLS45OTIgMS43MzZsLTEuNzUtMUExIDEgMCAwMTIgMTR2LTJhMSAxIDAgMDExLTF6bTE0IDBhMSAxIDAgMDExIDF2MmExIDEgMCAwMS0uNTA0Ljg2OGwtMS43NSAxYTEgMSAwIDExLS45OTItMS43MzZMMTYgMTMuNDJWMTJhMSAxIDAgMDExLTF6bS05LjYxOCA1LjUwNGExIDEgMCAwMTEuMzY0LS4zNzJsLjI1NC4xNDVWMTZhMSAxIDAgMTEyIDB2LjI3N2wuMjU0LS4xNDVhMSAxIDAgMTEuOTkyIDEuNzM2bC0xLjczNS45OTJhLjk5NS45OTUgMCAwMS0xLjAyMiAwbC0xLjczNS0uOTkyYTEgMSAwIDAxLS4zNzItMS4zNjR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxN2ExIDEgMCAwMDEuNDQ3Ljg5NGw0LTJBMSAxIDAgMDAxNyAxNVY5LjIzNmExIDEgMCAwMC0xLjQ0Ny0uODk0bC00IDJhMSAxIDAgMDAtLjU1My44OTRWMTd6TTE1LjIxMSA2LjI3NmExIDEgMCAwMDAtMS43ODhsLTQuNzY0LTIuMzgyYTEgMSAwIDAwLS44OTQgMEw0Ljc4OSA0LjQ4OGExIDEgMCAwMDAgMS43ODhsNC43NjQgMi4zODJhMSAxIDAgMDAuODk0IDBsNC43NjQtMi4zODJ6TTQuNDQ3IDguMzQyQTEgMSAwIDAwMyA5LjIzNlYxNWExIDEgMCAwMC41NTMuODk0bDQgMkExIDEgMCAwMDkgMTd2LTUuNzY0YTEgMSAwIDAwLS41NTMtLjg5NGwtNC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJyZW5jeUJhbmdsYWRlc2hpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNNyA0YTEgMSAwIDAwMCAyIDEgMSAwIDAxMSAxdjFIN2ExIDEgMCAwMDAgMmgxdjNhMyAzIDAgMTA2IDB2LTFhMSAxIDAgMTAtMiAwdjFhMSAxIDAgMTEtMiAwdi0zaDNhMSAxIDAgMTAwLTJoLTNWN2EzIDMgMCAwMC0zLTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJyZW5jeURvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40MzMgNy40MThjLjE1NS0uMTAzLjM0Ni0uMTk2LjU2Ny0uMjY3djEuNjk4YTIuMzA1IDIuMzA1IDAgMDEtLjU2Ny0uMjY3QzguMDcgOC4zNCA4IDguMTE0IDggOGMwLS4xMTQuMDctLjM0LjQzMy0uNTgyek0xMSAxMi44NDl2LTEuNjk4Yy4yMi4wNzEuNDEyLjE2NC41NjcuMjY3LjM2NC4yNDMuNDMzLjQ2OC40MzMuNTgyIDAgLjExNC0uMDcuMzQtLjQzMy41ODJhMi4zMDUgMi4zMDUgMCAwMS0uNTY3LjI2N3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTNhMSAxIDAgMTAtMiAwdi4wOTJhNC41MzUgNC41MzUgMCAwMC0xLjY3Ni42NjJDNi42MDIgNi4yMzQgNiA3LjAwOSA2IDhjMCAuOTkuNjAyIDEuNzY1IDEuMzI0IDIuMjQ2LjQ4LjMyIDEuMDU0LjU0NSAxLjY3Ni42NjJ2MS45NDFjLS4zOTEtLjEyNy0uNjgtLjMxNy0uODQzLS41MDRhMSAxIDAgMTAtMS41MSAxLjMxYy41NjIuNjQ5IDEuNDEzIDEuMDc2IDIuMzUzIDEuMjUzVjE1YTEgMSAwIDEwMiAwdi0uMDkyYTQuNTM1IDQuNTM1IDAgMDAxLjY3Ni0uNjYyQzEzLjM5OCAxMy43NjYgMTQgMTIuOTkxIDE0IDEyYzAtLjk5LS42MDItMS43NjUtMS4zMjQtMi4yNDZBNC41MzUgNC41MzUgMCAwMDExIDkuMDkyVjcuMTUxYy4zOTEuMTI3LjY4LjMxNy44NDMuNTA0YTEgMSAwIDEwMS41MTEtMS4zMWMtLjU2My0uNjQ5LTEuNDEzLTEuMDc2LTIuMzU0LTEuMjUzVjV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJyZW5jeUV1cm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek04LjczNiA2Ljk3OUM5LjIwOCA2LjE5MyA5LjY5NiA2IDEwIDZjLjMwNCAwIC43OTIuMTkzIDEuMjY0Ljk3OWExIDEgMCAwMDEuNzE1LTEuMDI5QzEyLjI3OSA0Ljc4NCAxMS4yMzIgNCAxMCA0cy0yLjI3OS43ODQtMi45NzkgMS45NWMtLjI4NS40NzUtLjUwNyAxLS42NyAxLjU1SDZhMSAxIDAgMDAwIDJoLjAxM2E5LjM1OCA5LjM1OCAwIDAwMCAxSDZhMSAxIDAgMTAwIDJoLjM1MWMuMTYzLjU1LjM4NSAxLjA3NS42NyAxLjU1QzcuNzIxIDE1LjIxNiA4Ljc2OCAxNiAxMCAxNnMyLjI3OS0uNzg0IDIuOTc5LTEuOTVhMSAxIDAgMTAtMS43MTUtMS4wMjljLS40NzIuNzg2LS45Ni45NzktMS4yNjQuOTc5LS4zMDQgMC0uNzkyLS4xOTMtMS4yNjQtLjk3OWE0LjI2NSA0LjI2NSAwIDAxLS4yNjQtLjUyMUgxMGExIDEgMCAxMDAtMkg4LjAxN2E3LjM2IDcuMzYgMCAwMTAtMUgxMGExIDEgMCAxMDAtMkg4LjQ3MmMuMDgtLjE4NS4xNjctLjM2LjI2NC0uNTIxelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ3VycmVuY3lQb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTRhMyAzIDAgMDAtMyAzdjJIN2ExIDEgMCAwMDAgMmgxdjFhMSAxIDAgMDEtMSAxIDEgMSAwIDEwMCAyaDZhMSAxIDAgMTAwLTJIOS44M2MuMTEtLjMxMy4xNy0uNjUuMTctMXYtMWgxYTEgMSAwIDEwMC0yaC0xVjdhMSAxIDAgMTEyIDAgMSAxIDAgMTAyIDAgMyAzIDAgMDAtMy0zelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpQ3VycmVuY3lSdXBlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTcgNWExIDEgMCAxMDAgMmgxYTIgMiAwIDAxMS43MzIgMUg3YTEgMSAwIDEwMCAyaDIuNzMyQTIgMiAwIDAxOCAxMUg3YTEgMSAwIDAwLS43MDcgMS43MDdsMyAzYTEgMSAwIDAwMS40MTQtMS40MTRsLTEuNDgzLTEuNDg0QTQuMDA4IDQuMDA4IDAgMDAxMS44NzQgMTBIMTNhMSAxIDAgMTAwLTJoLTEuMTI2YTMuOTc2IDMuOTc2IDAgMDAtLjQxLTFIMTNhMSAxIDAgMTAwLTJIN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUN1cnJlbmN5WWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNNy44NTggNS40ODVhMSAxIDAgMDAtMS43MTUgMS4wM0w3LjYzMyA5SDdhMSAxIDAgMTAwIDJoMS44MzRsLjE2Ni4yNzdWMTJIN2ExIDEgMCAxMDAgMmgydjFhMSAxIDAgMTAyIDB2LTFoMmExIDEgMCAxMDAtMmgtMnYtLjcyM2wuMTY2LS4yNzdIMTNhMSAxIDAgMTAwLTJoLS42MzRsMS40OTItMi40ODZhMSAxIDAgMTAtMS43MTYtMS4wMjlMMTAuMDM0IDloLS4wNjhMNy44NTggNS40ODV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlDdXJzb3JDbGljayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuNjcyIDEuOTExYTEgMSAwIDEwLTEuOTMyLjUxOGwuMjU5Ljk2NmExIDEgMCAwMDEuOTMyLS41MThsLS4yNi0uOTY2ek0yLjQyOSA0Ljc0YTEgMSAwIDEwLS41MTcgMS45MzJsLjk2Ni4yNTlhMSAxIDAgMDAuNTE3LTEuOTMybC0uOTY2LS4yNnptOC44MTQtLjU2OWExIDEgMCAwMC0xLjQxNS0xLjQxNGwtLjcwNy43MDdhMSAxIDAgMTAxLjQxNSAxLjQxNWwuNzA3LS43MDh6bS03LjA3MSA3LjA3MmwuNzA3LS43MDdBMSAxIDAgMDAzLjQ2NSA5LjEybC0uNzA4LjcwN2ExIDEgMCAwMDEuNDE1IDEuNDE1em0zLjItNS4xNzFhMSAxIDAgMDAtMS4zIDEuM2w0IDEwYTEgMSAwIDAwMS44MjMuMDc1bDEuMzgtMi43NTkgMy4wMTggMy4wMmExIDEgMCAwMDEuNDE0LTEuNDE1bC0zLjAxOS0zLjAyIDIuNzYtMS4zNzlhMSAxIDAgMDAtLjA3Ni0xLjgyMmwtMTAtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURhdGFiYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEydjNjMCAxLjY1NyAzLjEzNCAzIDcgM3M3LTEuMzQzIDctM3YtM2MwIDEuNjU3LTMuMTM0IDMtNyAzcy03LTEuMzQzLTctM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA3djNjMCAxLjY1NyAzLjEzNCAzIDcgM3M3LTEuMzQzIDctM1Y3YzAgMS42NTctMy4xMzQgMy03IDNTMyA4LjY1NyAzIDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDVjMCAxLjY1Ny0zLjEzNCAzLTcgM1MzIDYuNjU3IDMgNXMzLjEzNC0zIDctMyA3IDEuMzQzIDcgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRGVza3RvcENvbXB1dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA1YTIgMiAwIDAxMi0yaDEwYTIgMiAwIDAxMiAydjhhMiAyIDAgMDEtMiAyaC0yLjIybC4xMjMuNDg5LjgwNC44MDRBMSAxIDAgMDExMyAxOEg3YTEgMSAwIDAxLS43MDctMS43MDdsLjgwNC0uODA0TDcuMjIgMTVINWEyIDIgMCAwMS0yLTJWNXptNS43NzEgN0g1VjVoMTB2N0g4Ljc3MXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURldmljZU1vYmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTcgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoNmEyIDIgMCAwMDItMlY0YTIgMiAwIDAwLTItMkg3em0zIDE0YTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRGV2aWNlVGFibGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNiAyYTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0yVjRhMiAyIDAgMDAtMi0ySDZ6bTQgMTRhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb2N1bWVudEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY3LjQxNEEyIDIgMCAwMDE1LjQxNCA2TDEyIDIuNTg2QTIgMiAwIDAwMTAuNTg2IDJINnptNSA2YTEgMSAwIDEwLTIgMHYySDdhMSAxIDAgMTAwIDJoMnYyYTEgMSAwIDEwMiAwdi0yaDJhMSAxIDAgMTAwLTJoLTJWOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvY3VtZW50RG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDJhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJWNy40MTRBMiAyIDAgMDAxNS40MTQgNkwxMiAyLjU4NkEyIDIgMCAwMDEwLjU4NiAySDZ6bTUgNmExIDEgMCAxMC0yIDB2My41ODZsLTEuMjkzLTEuMjkzYTEgMSAwIDEwLTEuNDE0IDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0IDBsMy0zYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDExIDExLjU4NlY4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnREdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMmEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMmg2YTIgMiAwIDAwMi0yVjYuNDE0QTIgMiAwIDAwMTYuNDE0IDVMMTQgMi41ODZBMiAyIDAgMDAxMi41ODYgMkg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDhhMiAyIDAgMDEyLTJ2MTBoOGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnRSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk02IDJhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJWNy40MTRBMiAyIDAgMDAxNS40MTQgNkwxMiAyLjU4NkEyIDIgMCAwMDEwLjU4NiAySDZ6bTEgOGExIDEgMCAxMDAgMmg2YTEgMSAwIDEwMC0ySDd6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEb2N1bWVudFJlcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYgMmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMlY3LjQxNEEyIDIgMCAwMDE1LjQxNCA2TDEyIDIuNTg2QTIgMiAwIDAwMTAuNTg2IDJINnptMiAxMGExIDEgMCAxMC0yIDB2M2ExIDEgMCAxMDIgMHYtM3ptMi0zYTEgMSAwIDAxMSAxdjVhMSAxIDAgMTEtMiAwdi01YTEgMSAwIDAxMS0xem00LTFhMSAxIDAgMTAtMiAwdjdhMSAxIDAgMTAyIDBWOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvY3VtZW50U2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRhMiAyIDAgMDEyLTJoNC41ODZBMiAyIDAgMDExMiAyLjU4NkwxNS40MTQgNkEyIDIgMCAwMTE2IDcuNDE0VjE2YTIgMiAwIDAxLTIgMmgtMS41MjhBNiA2IDAgMDA0IDkuNTI4VjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDEwYTQgNCAwIDAwLTMuNDQ2IDYuMDMybC0xLjI2MSAxLjI2YTEgMSAwIDEwMS40MTQgMS40MTVsMS4yNjEtMS4yNjFBNCA0IDAgMTA4IDEwem0tMiA0YTIgMiAwIDExNCAwIDIgMiAwIDAxLTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvY3VtZW50VGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMTItMmg0LjU4NkEyIDIgMCAwMTEyIDIuNTg2TDE1LjQxNCA2QTIgMiAwIDAxMTYgNy40MTRWMTZhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0yVjR6bTIgNmExIDEgMCAwMTEtMWg2YTEgMSAwIDExMCAySDdhMSAxIDAgMDEtMS0xem0xIDNhMSAxIDAgMTAwIDJoNmExIDEgMCAxMDAtMkg3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG9jdW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDRhMiAyIDAgMDEyLTJoNC41ODZBMiAyIDAgMDExMiAyLjU4NkwxNS40MTQgNkEyIDIgMCAwMTE2IDcuNDE0VjE2YTIgMiAwIDAxLTIgMkg2YTIgMiAwIDAxLTItMlY0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG90c0NpcmNsZUhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03IDlINXYyaDJWOXptOCAwaC0ydjJoMlY5ek05IDloMnYySDlWOXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvdHNIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEwYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpNMTIgMTBhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek0xNiAxMmEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRG90c1ZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2YTIgMiAwIDExMC00IDIgMiAwIDAxMCA0ek0xMCAxMmEyIDIgMCAxMTAtNCAyIDIgMCAwMTAgNHpNMTAgMThhMiAyIDAgMTEwLTQgMiAyIDAgMDEwIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAxN2ExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXptMy4yOTMtNy43MDdhMSAxIDAgMDExLjQxNCAwTDkgMTAuNTg2VjNhMSAxIDAgMTEyIDB2Ny41ODZsMS4yOTMtMS4yOTNhMSAxIDAgMTExLjQxNCAxLjQxNGwtMyAzYTEgMSAwIDAxLTEuNDE0IDBsLTMtM2ExIDEgMCAwMTAtMS40MTR6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlEdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOWEyIDIgMCAwMTItMmg2YTIgMiAwIDAxMiAydjZhMiAyIDAgMDEtMiAySDlhMiAyIDAgMDEtMi0yVjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgM2EyIDIgMCAwMC0yIDJ2NmEyIDIgMCAwMDIgMlY1aDhhMiAyIDAgMDAtMi0ySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUVtb2ppSGFwcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03IDlhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTctMWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uNDY0IDUuNTM1YTEgMSAwIDEwLTEuNDE1LTEuNDE0IDMgMyAwIDAxLTQuMjQyIDAgMSAxIDAgMDAtMS40MTUgMS40MTQgNSA1IDAgMDA3LjA3MiAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRW1vamlTYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek03IDlhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTctMWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS03LjUzNiA1Ljg3OWExIDEgMCAwMDEuNDE1IDAgMyAzIDAgMDE0LjI0MiAwIDEgMSAwIDAwMS40MTUtMS40MTUgNSA1IDAgMDAtNy4wNzIgMCAxIDEgMCAwMDAgMS40MTV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlFeGNsYW1hdGlvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwem0tNyA0YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLTEtOWExIDEgMCAwMC0xIDF2NGExIDEgMCAxMDIgMFY2YTEgMSAwIDAwLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOC4yNTcgMy4wOTljLjc2NS0xLjM2IDIuNzIyLTEuMzYgMy40ODYgMGw1LjU4IDkuOTJjLjc1IDEuMzM0LS4yMTMgMi45OC0xLjc0MiAyLjk4SDQuNDJjLTEuNTMgMC0yLjQ5My0xLjY0Ni0xLjc0My0yLjk4bDUuNTgtOS45MnpNMTEgMTNhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tMS04YTEgMSAwIDAwLTEgMXYzYTEgMSAwIDAwMiAwVjZhMSAxIDAgMDAtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRXh0ZXJuYWxMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAzYTEgMSAwIDEwMCAyaDIuNTg2bC02LjI5MyA2LjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDE1IDYuNDE0VjlhMSAxIDAgMTAyIDBWNGExIDEgMCAwMC0xLTFoLTV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNWEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMmg4YTIgMiAwIDAwMi0ydi0zYTEgMSAwIDEwLTIgMHYzSDVWN2gzYTEgMSAwIDAwMC0ySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUV5ZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuNzA3IDIuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDE0IDE0YTEgMSAwIDAwMS40MTQtMS40MTRsLTEuNDczLTEuNDczQTEwLjAxNCAxMC4wMTQgMCAwMDE5LjU0MiAxMEMxOC4yNjggNS45NDMgMTQuNDc4IDMgMTAgM2E5Ljk1OCA5Ljk1OCAwIDAwLTQuNTEyIDEuMDc0bC0xLjc4LTEuNzgxem00LjI2MSA0LjI2bDEuNTE0IDEuNTE1YTIuMDAzIDIuMDAzIDAgMDEyLjQ1IDIuNDVsMS41MTQgMS41MTRhNCA0IDAgMDAtNS40NzgtNS40Nzh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40NTQgMTYuNjk3TDkuNzUgMTMuOTkyYTQgNCAwIDAxLTMuNzQyLTMuNzQxTDIuMzM1IDYuNTc4QTkuOTggOS45OCAwIDAwLjQ1OCAxMGMxLjI3NCA0LjA1NyA1LjA2NSA3IDkuNTQyIDcgLjg0NyAwIDEuNjY5LS4xMDUgMi40NTQtLjMwM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMmEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTS40NTggMTBDMS43MzIgNS45NDMgNS41MjIgMyAxMCAzczguMjY4IDIuOTQzIDkuNTQyIDdjLTEuMjc0IDQuMDU3LTUuMDY0IDctOS41NDIgN1MxLjczMiAxNC4wNTcuNDU4IDEwek0xNCAxMGE0IDQgMCAxMS04IDAgNCA0IDAgMDE4IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGYXN0Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41NTUgNS4xNjhBMSAxIDAgMDAzIDZ2OGExIDEgMCAwMDEuNTU1LjgzMkwxMCAxMS4yMDJWMTRhMSAxIDAgMDAxLjU1NS44MzJsNi00YTEgMSAwIDAwMC0xLjY2NGwtNi00QTEgMSAwIDAwMTAgNnYyLjc5OGwtNS40NDUtMy42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgM2EyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJINHptMyAyaDZ2NEg3VjV6bTggOHYyaDF2LTJoLTF6bS0yLTJIN3Y0aDZ2LTR6bTIgMGgxVjloLTF2MnptMS00VjVoLTF2Mmgxek01IDV2Mkg0VjVoMXptMCA0SDR2MmgxVjl6bS0xIDRoMXYySDR2LTJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDNhMSAxIDAgMDExLTFoMTJhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0uMjkzLjcwN0wxMiAxMS40MTRWMTVhMSAxIDAgMDEtLjI5My43MDdsLTIgMkExIDEgMCAwMTggMTd2LTUuNTg2TDMuMjkzIDYuNzA3QTEgMSAwIDAxMyA2VjN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGaW5nZXJQcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTYuNjI1IDIuNjU1QTkgOSAwIDAxMTkgMTFhMSAxIDAgMTEtMiAwIDcgNyAwIDAwLTkuNjI1LTYuNDkyIDEgMSAwIDExLS43NS0xLjg1M3pNNC42NjIgNC45NTlBMSAxIDAgMDE0Ljc1IDYuMzcgNi45NyA2Ljk3IDAgMDAzIDExYTEgMSAwIDExLTIgMCA4Ljk3IDguOTcgMCAwMTIuMjUtNS45NTMgMSAxIDAgMDExLjQxMi0uMDg4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMTFhNSA1IDAgMTExMCAwIDEgMSAwIDExLTIgMCAzIDMgMCAxMC02IDBjMCAxLjY3Ny0uMzQ1IDMuMjc2LS45NjggNC43MjlhMSAxIDAgMTEtMS44MzgtLjc4OUE5Ljk2NCA5Ljk2NCAwIDAwNSAxMXptOC45MjEgMi4wMTJhMSAxIDAgMDEuODMxIDEuMTQ1IDE5Ljg2IDE5Ljg2IDAgMDEtLjU0NSAyLjQzNiAxIDEgMCAxMS0xLjkyLS41NThjLjIwNy0uNzEzLjM3MS0xLjQ0NS40OS0yLjE5MmExIDEgMCAwMTEuMTQ0LS44M3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxMGExIDEgMCAwMTEgMWMwIDIuMjM2LS40NiA0LjM2OC0xLjI5IDYuMzA0YTEgMSAwIDAxLTEuODM4LS43ODlBMTMuOTUyIDEzLjk1MiAwIDAwOSAxMWExIDEgMCAwMTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMi4zOTUgMi41NTNhMSAxIDAgMDAtMS40NS0uMzg1Yy0uMzQ1LjIzLS42MTQuNTU4LS44MjIuODgtLjIxNC4zMy0uNDAzLjcxMy0uNTcgMS4xMTYtLjMzNC44MDQtLjYxNCAxLjc2OC0uODQgMi43MzRhMzEuMzY1IDMxLjM2NSAwIDAwLS42MTMgMy41OCAyLjY0IDIuNjQgMCAwMS0uOTQ1LTEuMDY3Yy0uMzI4LS42OC0uMzk4LTEuNTM0LS4zOTgtMi42NTRBMSAxIDAgMDA1LjA1IDYuMDUgNi45ODEgNi45ODEgMCAwMDMgMTFhNyA3IDAgMTAxMS45NS00Ljk1Yy0uNTkyLS41OTEtLjk4LS45ODUtMS4zNDgtMS40NjctLjM2My0uNDc2LS43MjQtMS4wNjMtMS4yMDctMi4wM3pNMTIuMTIgMTUuMTJBMyAzIDAgMDE3IDEzcy44NzkuNSAyLjUuNWMwLTEgLjUtNCAxLjI1LTQuNS41IDEgLjc4NiAxLjI5MyAxLjM3MSAxLjg3OUEyLjk5IDIuOTkgMCAwMTEzIDEzYTIuOTkgMi45OSAwIDAxLS44NzkgMi4xMjF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA2YTMgMyAwIDAxMy0zaDEwYTEgMSAwIDAxLjggMS42TDE0LjI1IDhsMi41NSAzLjRBMSAxIDAgMDExNiAxM0g2YTEgMSAwIDAwLTEgMXYzYTEgMSAwIDExLTIgMFY2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpRm9sZGVyQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCA0YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjhhMiAyIDAgMDAtMi0yaC01TDkgNEg0em03IDVhMSAxIDAgMTAtMiAwdjFIOGExIDEgMCAxMDAgMmgxdjFhMSAxIDAgMTAyIDB2LTFoMWExIDEgMCAxMDAtMmgtMVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGb2xkZXJEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMmgxMmEyIDIgMCAwMDItMlY4YTIgMiAwIDAwLTItMmgtNUw5IDRINHptNyA1YTEgMSAwIDEwLTIgMHYxLjU4NmwtLjI5My0uMjkzYTEgMSAwIDEwLTEuNDE0IDEuNDE0bDIgMiAuMDAyLjAwMmEuOTk3Ljk5NyAwIDAwMS40MSAwbC4wMDItLjAwMiAyLTJhMSAxIDAgMDAtMS40MTQtMS40MTRsLS4yOTMuMjkzVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDZhMiAyIDAgMDEyLTJoNGwyIDJoNGEyIDIgMCAwMTIgMnYxSDhhMyAzIDAgMDAtMyAzdjEuNWExLjUgMS41IDAgMDEtMyAwVjZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEyYTIgMiAwIDAxMi0yaDhhMiAyIDAgMDEyIDJ2MmEyIDIgMCAwMS0yIDJIMmgyYTIgMiAwIDAwMi0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlGb2xkZXJSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDRhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJoLTVMOSA0SDR6bTQgNmExIDEgMCAxMDAgMmg0YTEgMSAwIDEwMC0ySDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2YTIgMiAwIDAxMi0yaDVsMiAyaDVhMiAyIDAgMDEyIDJ2NmEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpR2lmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgNWEzIDMgMCAwMTUtMi4yMzZBMyAzIDAgMDExNC44MyA2SDE2YTIgMiAwIDExMCA0aC01VjlhMSAxIDAgMTAtMiAwdjFINGEyIDIgMCAxMTAtNGgxLjE3QzUuMDYgNS42ODcgNSA1LjM1IDUgNXptNCAxVjVhMSAxIDAgMTAtMSAxaDF6bTMgMGExIDEgMCAxMC0xLTF2MWgxelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMUgzdjVhMiAyIDAgMDAyIDJoNHYtN3pNMTEgMThoNGEyIDIgMCAwMDItMnYtNWgtNnY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlHbG9iZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQuMDgzIDloMS45NDZjLjA4OS0xLjU0Ni4zODMtMi45Ny44MzctNC4xMThBNi4wMDQgNi4wMDQgMCAwMDQuMDgzIDl6TTEwIDJhOCA4IDAgMTAwIDE2IDggOCAwIDAwMC0xNnptMCAyYy0uMDc2IDAtLjIzMi4wMzItLjQ2NS4yNjItLjIzOC4yMzQtLjQ5Ny42MjMtLjczNyAxLjE4Mi0uMzg5LjkwNy0uNjczIDIuMTQyLS43NjYgMy41NTZoMy45MzZjLS4wOTMtMS40MTQtLjM3Ny0yLjY0OS0uNzY2LTMuNTU2LS4yNC0uNTYtLjUtLjk0OC0uNzM3LTEuMTgyQzEwLjIzMiA0LjAzMiAxMC4wNzYgNCAxMCA0em0zLjk3MSA1Yy0uMDg5LTEuNTQ2LS4zODMtMi45Ny0uODM3LTQuMTE4QTYuMDA0IDYuMDA0IDAgMDExNS45MTcgOWgtMS45NDZ6bS0yLjAwMyAySDguMDMyYy4wOTMgMS40MTQuMzc3IDIuNjQ5Ljc2NiAzLjU1Ni4yNC41Ni41Ljk0OC43MzcgMS4xODIuMjMzLjIzLjM4OS4yNjIuNDY1LjI2Mi4wNzYgMCAuMjMyLS4wMzIuNDY1LS4yNjIuMjM4LS4yMzQuNDk4LS42MjMuNzM3LTEuMTgyLjM4OS0uOTA3LjY3My0yLjE0Mi43NjYtMy41NTZ6bTEuMTY2IDQuMTE4Yy40NTQtMS4xNDcuNzQ4LTIuNTcyLjgzNy00LjExOGgxLjk0NmE2LjAwNCA2LjAwNCAwIDAxLTIuNzgzIDQuMTE4em0tNi4yNjggMEM2LjQxMiAxMy45NyA2LjExOCAxMi41NDYgNi4wMyAxMUg0LjA4M2E2LjAwNCA2LjAwNCAwIDAwMi43ODMgNC4xMTh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlHbG9iZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTQuMzMyIDguMDI3YTYuMDEyIDYuMDEyIDAgMDExLjkxMi0yLjcwNkM2LjUxMiA1LjczIDYuOTc0IDYgNy41IDZBMS41IDEuNSAwIDAxOSA3LjVWOGEyIDIgMCAwMDQgMCAyIDIgMCAwMTEuNTIzLTEuOTQzQTUuOTc3IDUuOTc3IDAgMDExNiAxMGMwIC4zNC0uMDI4LjY3NS0uMDgzIDFIMTVhMiAyIDAgMDAtMiAydjIuMTk3QTUuOTczIDUuOTczIDAgMDExMCAxNnYtMmEyIDIgMCAwMC0yLTIgMiAyIDAgMDEtMi0yIDIgMiAwIDAwLTEuNjY4LTEuOTczelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTkgM2ExIDEgMCAwMTIgMHY1LjVhLjUuNSAwIDAwMSAwVjRhMSAxIDAgMTEyIDB2NC41YS41LjUgMCAwMDEgMFY2YTEgMSAwIDExMiAwdjVhNyA3IDAgMTEtMTQgMFY5YTEgMSAwIDAxMiAwdjIuNWEuNS41IDAgMDAxIDBWNGExIDEgMCAwMTIgMHY0LjVhLjUuNSAwIDAwMSAwVjN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlIYXNodGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS4yNDMgMy4wM2ExIDEgMCAwMS43MjcgMS4yMTNMOS41MyA2aDIuOTRsLjU2LTIuMjQzYTEgMSAwIDExMS45NC40ODZMMTQuNTMgNkgxN2ExIDEgMCAxMTAgMmgtMi45N2wtMSA0SDE1YTEgMSAwIDExMCAyaC0yLjQ3bC0uNTYgMi4yNDJhMSAxIDAgMTEtMS45NC0uNDg1TDEwLjQ3IDE0SDcuNTNsLS41NiAyLjI0MmExIDEgMCAxMS0xLjk0LS40ODVMNS40NyAxNEgzYTEgMSAwIDExMC0yaDIuOTdsMS00SDVhMSAxIDAgMTEwLTJoMi40N2wuNTYtMi4yNDNhMSAxIDAgMDExLjIxMy0uNzI3ek05LjAzIDhsLTEgNGgyLjkzOGwxLTRIOS4wMzF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMuMTcyIDUuMTcyYTQgNCAwIDAxNS42NTYgMEwxMCA2LjM0M2wxLjE3Mi0xLjE3MWE0IDQgMCAxMTUuNjU2IDUuNjU2TDEwIDE3LjY1N2wtNi44MjgtNi44MjlhNCA0IDAgMDEwLTUuNjU2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNzA3IDIuMjkzYTEgMSAwIDAwLTEuNDE0IDBsLTcgN2ExIDEgMCAwMDEuNDE0IDEuNDE0TDQgMTAuNDE0VjE3YTEgMSAwIDAwMSAxaDJhMSAxIDAgMDAxLTF2LTJhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXYyYTEgMSAwIDAwMSAxaDJhMSAxIDAgMDAxLTF2LTYuNTg2bC4yOTMuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRsLTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpSWRlbnRpZmljYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAyYTEgMSAwIDAwLTEgMXYxYTEgMSAwIDAwMiAwVjNhMSAxIDAgMDAtMS0xek00IDRoM2EzIDMgMCAwMDYgMGgzYTIgMiAwIDAxMiAydjlhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJ6bTIuNSA3YTEuNSAxLjUgMCAxMDAtMyAxLjUgMS41IDAgMDAwIDN6bTIuNDUgNGEyLjUgMi41IDAgMTAtNC45IDBoNC45ek0xMiA5YTEgMSAwIDEwMCAyaDNhMSAxIDAgMTAwLTJoLTN6bS0xIDRhMSAxIDAgMDExLTFoMmExIDEgMCAxMTAgMmgtMmExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlJbmJveEluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjcwNyA3LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwyIDJhMSAxIDAgMDAxLjQxNCAwbDItMmExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMSA3LjU4NlYzYTEgMSAwIDEwLTIgMHY0LjU4NmwtLjI5My0uMjkzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVhMiAyIDAgMDEyLTJoMWExIDEgMCAwMTAgMkg1djdoMmwxIDJoNGwxLTJoMlY1aC0xYTEgMSAwIDExMC0yaDFhMiAyIDAgMDEyIDJ2MTBhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSAzYTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY1YTIgMiAwIDAwLTItMkg1em0wIDJoMTB2N2gtMmwtMSAySDhsLTEtMkg1VjV6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlJbmZvcm1hdGlvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwem0tNy00YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHpNOSA5YTEgMSAwIDAwMCAydjNhMSAxIDAgMDAxIDFoMWExIDEgMCAxMDAtMnYtM2ExIDEgMCAwMC0xLTFIOXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDhhNiA2IDAgMDEtNy43NDMgNS43NDNMMTAgMTRsLTEgMS0xIDFINnYySDJ2LTRsNC4yNTctNC4yNTdBNiA2IDAgMTExOCA4em0tNi00YTEgMSAwIDEwMCAyIDIgMiAwIDAxMiAyIDEgMSAwIDEwMiAwIDQgNCAwIDAwLTQtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMC40OTYgMi4xMzJhMSAxIDAgMDAtLjk5MiAwbC03IDRBMSAxIDAgMDAzIDh2N2ExIDEgMCAxMDAgMmgxNGExIDEgMCAxMDAtMlY4YTEgMSAwIDAwLjQ5Ni0xLjg2OGwtNy00ek02IDlhMSAxIDAgMDAtMSAxdjNhMSAxIDAgMTAyIDB2LTNhMSAxIDAgMDAtMS0xem0zIDFhMSAxIDAgMDEyIDB2M2ExIDEgMCAxMS0yIDB2LTN6bTUtMWExIDEgMCAwMC0xIDF2M2ExIDEgMCAxMDIgMHYtM2ExIDEgMCAwMC0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMaWdodEJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDNhMSAxIDAgMTAtMiAwdjFhMSAxIDAgMTAyIDBWM3pNMTUuNjU3IDUuNzU3YTEgMSAwIDAwLTEuNDE0LTEuNDE0bC0uNzA3LjcwN2ExIDEgMCAwMDEuNDE0IDEuNDE0bC43MDctLjcwN3pNMTggMTBhMSAxIDAgMDEtMSAxaC0xYTEgMSAwIDExMC0yaDFhMSAxIDAgMDExIDF6TTUuMDUgNi40NjRBMSAxIDAgMTA2LjQ2NCA1LjA1bC0uNzA3LS43MDdhMSAxIDAgMDAtMS40MTQgMS40MTRsLjcwNy43MDd6TTUgMTBhMSAxIDAgMDEtMSAxSDNhMSAxIDAgMTEwLTJoMWExIDEgMCAwMTEgMXpNOCAxNnYtMWg0djFhMiAyIDAgMTEtNCAwek0xMiAxNGMuMDE1LS4zNC4yMDgtLjY0Ni40NzctLjg1OWE0IDQgMCAxMC00Ljk1NCAwYy4yNy4yMTMuNDYyLjUxOS40NzYuODU5aDQuMDAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMaWdodG5pbmdCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTEuMyAxLjA0NkExIDEgMCAwMTEyIDJ2NWg0YTEgMSAwIDAxLjgyIDEuNTczbC03IDEwQTEgMSAwIDAxOCAxOHYtNUg0YTEgMSAwIDAxLS44Mi0xLjU3M2w3LTEwYTEgMSAwIDAxMS4xMi0uMzh6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIuNTg2IDQuNTg2YTIgMiAwIDExMi44MjggMi44MjhsLTMgM2EyIDIgMCAwMS0yLjgyOCAwIDEgMSAwIDAwLTEuNDE0IDEuNDE0IDQgNCAwIDAwNS42NTYgMGwzLTNhNCA0IDAgMDAtNS42NTYtNS42NTZsLTEuNSAxLjVhMSAxIDAgMTAxLjQxNCAxLjQxNGwxLjUtMS41em0tNSA1YTIgMiAwIDAxMi44MjggMCAxIDEgMCAxMDEuNDE0LTEuNDE0IDQgNCAwIDAwLTUuNjU2IDBsLTMgM2E0IDQgMCAxMDUuNjU2IDUuNjU2bDEuNS0xLjVhMSAxIDAgMTAtMS40MTQtMS40MTRsLTEuNSAxLjVhMiAyIDAgMTEtMi44MjgtMi44MjhsMy0zelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTG9jYXRpb25NYXJrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjA1IDQuMDVhNyA3IDAgMTE5LjkgOS45TDEwIDE4LjlsLTQuOTUtNC45NWE3IDcgMCAwMTAtOS45ek0xMCAxMWEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxvY2tDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDlWN2E1IDUgMCAwMTEwIDB2MmEyIDIgMCAwMTIgMnY1YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMnYtNWEyIDIgMCAwMTItMnptOC0ydjJIN1Y3YTMgMyAwIDAxNiAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDJhNSA1IDAgMDAtNSA1djJhMiAyIDAgMDAtMiAydjVhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJ2LTVhMiAyIDAgMDAtMi0ySDdWN2EzIDMgMCAwMTUuOTA1LS43NSAxIDEgMCAwMDEuOTM3LS41QTUuMDAyIDUuMDAyIDAgMDAxMCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlMb2dpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgM2ExIDEgMCAwMTEgMXYxMmExIDEgMCAxMS0yIDBWNGExIDEgMCAwMTEtMXptNy43MDcgMy4yOTNhMSAxIDAgMDEwIDEuNDE0TDkuNDE0IDlIMTdhMSAxIDAgMTEwIDJIOS40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRsLTMtM2ExIDEgMCAwMTAtMS40MTRsMy0zYTEgMSAwIDAxMS40MTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaUxvZ291dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgM2ExIDEgMCAwMC0xIDF2MTJhMSAxIDAgMTAyIDBWNGExIDEgMCAwMC0xLTF6bTEwLjI5MyA5LjI5M2ExIDEgMCAwMDEuNDE0IDEuNDE0bDMtM2ExIDEgMCAwMDAtMS40MTRsLTMtM2ExIDEgMCAxMC0xLjQxNCAxLjQxNEwxNC41ODYgOUg3YTEgMSAwIDEwMCAyaDcuNTg2bC0xLjI5MyAxLjI5M3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1haWxPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMi45NCA2LjQxMkEyIDIgMCAwMDIgOC4xMDhWMTZhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOC4xMDhhMiAyIDAgMDAtLjk0LTEuNjk2bC02LTMuNzVhMiAyIDAgMDAtMi4xMiAwbC02IDMuNzV6bTIuNjE1IDIuNDIzYTEgMSAwIDEwLTEuMTEgMS42NjRsNSAzLjMzM2ExIDEgMCAwMDEuMTEgMGw1LTMuMzMzYTEgMSAwIDAwLTEuMTEtMS42NjRMMTAgMTEuNzk4IDUuNTU1IDguODM1elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4wMDMgNS44ODRMMTAgOS44ODJsNy45OTctMy45OThBMiAyIDAgMDAxNiA0SDRhMiAyIDAgMDAtMS45OTcgMS44ODR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDguMTE4bC04IDQtOC00VjE0YTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjguMTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMiAxLjU4NmwtNCA0djEyLjgyOGw0LTRWMS41ODZ6TTMuNzA3IDMuMjkzQTEgMSAwIDAwMiA0djEwYTEgMSAwIDAwLjI5My43MDdMNiAxOC40MTRWNS41ODZMMy43MDcgMy4yOTN6TTE3LjcwNyA1LjI5M0wxNCAxLjU4NnYxMi44MjhsMi4yOTMgMi4yOTNBMSAxIDAgMDAxOCAxNlY2YTEgMSAwIDAwLS4yOTMtLjcwN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1lbnVBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA1YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xek0zIDEwYTEgMSAwIDAxMS0xaDZhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTMgMTVhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNZW51QWx0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgNWExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxMGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxNWExIDEgMCAwMTEtMWg2YTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTWVudUFsdDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDVhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTMgMTBhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTkgMTVhMSAxIDAgMDExLTFoNmExIDEgMCAxMTAgMmgtNmExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNZW51QWx0NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgN2ExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNMyAxM2ExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDVhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTMgMTBhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6TTMgMTVhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNaWNyb3Bob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNyA0YTMgMyAwIDAxNiAwdjRhMyAzIDAgMTEtNiAwVjR6bTQgMTAuOTNBNy4wMDEgNy4wMDEgMCAwMDE3IDhhMSAxIDAgMTAtMiAwQTUgNSAwIDAxNSA4YTEgMSAwIDAwLTIgMCA3LjAwMSA3LjAwMSAwIDAwNiA2LjkzVjE3SDZhMSAxIDAgMTAwIDJoOGExIDEgMCAxMDAtMmgtM3YtMi4wN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1pbnVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnpNNyA5YTEgMSAwIDAwMCAyaDZhMSAxIDAgMTAwLTJIN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU1pbnVzU20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDEwYTEgMSAwIDAxMS0xaDhhMSAxIDAgMTEwIDJINmExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgMTBhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4yOTMgMTMuMjkzQTggOCAwIDAxNi43MDcgMi43MDdhOC4wMDEgOC4wMDEgMCAxMDEwLjU4NiAxMC41ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU11c2ljTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggM2ExIDEgMCAwMC0xLjE5Ni0uOThsLTEwIDJBMSAxIDAgMDA2IDV2OS4xMTRBNC4zNjkgNC4zNjkgMCAwMDUgMTRjLTEuNjU3IDAtMyAuODk1LTMgMnMxLjM0MyAyIDMgMiAzLS44OTUgMy0yVjcuODJsOC0xLjZ2NS44OTRBNC4zNyA0LjM3IDAgMDAxNSAxMmMtMS42NTcgMC0zIC44OTUtMyAyczEuMzQzIDIgMyAyIDMtLjg5NSAzLTJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiA1YTIgMiAwIDAxMi0yaDhhMiAyIDAgMDEyIDJ2MTBhMiAyIDAgMDAyIDJINGEyIDIgMCAwMS0yLTJWNXptMyAxaDZ2NEg1VjZ6bTYgNkg1djJoNnYtMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDdoMWEyIDIgMCAwMTIgMnY1LjVhMS41IDEuNSAwIDAxLTMgMFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPZmZpY2VCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTQgNGEyIDIgMCAwMTItMmg4YTIgMiAwIDAxMiAydjEyYTEgMSAwIDExMCAyaC0zYTEgMSAwIDAxLTEtMXYtMmExIDEgMCAwMC0xLTFIOWExIDEgMCAwMC0xIDF2MmExIDEgMCAwMS0xIDFINGExIDEgMCAxMTAtMlY0em0zIDFoMnYySDdWNXptMiA0SDd2MmgyVjl6bTItNGgydjJoLTJWNXptMiA0aC0ydjJoMlY5elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGFwZXJBaXJwbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODk0IDIuNTUzYTEgMSAwIDAwLTEuNzg4IDBsLTcgMTRhMSAxIDAgMDAxLjE2OSAxLjQwOWw1LTEuNDI5QTEgMSAwIDAwOSAxNS41NzFWMTFhMSAxIDAgMTEyIDB2NC41NzFhMSAxIDAgMDAuNzI1Ljk2Mmw1IDEuNDI4YTEgMSAwIDAwMS4xNy0xLjQwOGwtNy0xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGFwZXJDbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOCA0YTMgMyAwIDAwLTMgM3Y0YTUgNSAwIDAwMTAgMFY3YTEgMSAwIDExMiAwdjRhNyA3IDAgMTEtMTQgMFY3YTUgNSAwIDAxMTAgMHY0YTMgMyAwIDExLTYgMFY3YTEgMSAwIDAxMiAwdjRhMSAxIDAgMTAyIDBWN2EzIDMgMCAwMC0zLTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwek03IDhhMSAxIDAgMDEyIDB2NGExIDEgMCAxMS0yIDBWOHptNS0xYTEgMSAwIDAwLTEgMXY0YTEgMSAwIDEwMiAwVjhhMSAxIDAgMDAtMS0xelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGVuY2lsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy40MTQgMi41ODZhMiAyIDAgMDAtMi44MjggMEw3IDEwLjE3MlYxM2gyLjgyOGw3LjU4Ni03LjU4NmEyIDIgMCAwMDAtMi44Mjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDZhMiAyIDAgMDEyLTJoNGExIDEgMCAwMTAgMkg0djEwaDEwdi00YTEgMSAwIDExMiAwdjRhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0yVjZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQZW5jaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjU4NiAzLjU4NmEyIDIgMCAxMTIuODI4IDIuODI4bC0uNzkzLjc5My0yLjgyOC0yLjgyOC43OTMtLjc5M3pNMTEuMzc5IDUuNzkzTDMgMTQuMTcyVjE3aDIuODI4bDguMzgtOC4zNzktMi44My0yLjgyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGhvbmVJbmNvbWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNDE0IDdsMy4yOTMtMy4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTMgNS41ODZWNGExIDEgMCAxMC0yIDB2NC4wMDNhLjk5Ni45OTYgMCAwMC42MTcuOTIxQS45OTcuOTk3IDAgMDAxMiA5aDRhMSAxIDAgMTAwLTJoLTEuNTg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDNhMSAxIDAgMDExLTFoMi4xNTNhMSAxIDAgMDEuOTg2LjgzNmwuNzQgNC40MzVhMSAxIDAgMDEtLjU0IDEuMDZsLTEuNTQ4Ljc3M2ExMS4wMzcgMTEuMDM3IDAgMDA2LjEwNSA2LjEwNWwuNzc0LTEuNTQ4YTEgMSAwIDAxMS4wNTktLjU0bDQuNDM1Ljc0YTEgMSAwIDAxLjgzNi45ODZWMTdhMSAxIDAgMDEtMSAxaC0yQzcuODIgMTggMiAxMi4xOCAyIDVWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGhvbmVNaXNzZWRDYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDNhMSAxIDAgMDExLTFoMi4xNTNhMSAxIDAgMDEuOTg2LjgzNmwuNzQgNC40MzVhMSAxIDAgMDEtLjU0IDEuMDZsLTEuNTQ4Ljc3M2ExMS4wMzcgMTEuMDM3IDAgMDA2LjEwNSA2LjEwNWwuNzc0LTEuNTQ4YTEgMSAwIDAxMS4wNTktLjU0bDQuNDM1Ljc0YTEgMSAwIDAxLjgzNi45ODZWMTdhMSAxIDAgMDEtMSAxaC0yQzcuODIgMTggMiAxMi4xOCAyIDVWM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNzA3IDMuMjkzYTEgMSAwIDAxMCAxLjQxNEwxNS40MTQgNmwxLjI5MyAxLjI5M2ExIDEgMCAwMS0xLjQxNCAxLjQxNEwxNCA3LjQxNGwtMS4yOTMgMS4yOTNhMSAxIDAgMTEtMS40MTQtMS40MTRMMTIuNTg2IDZsLTEuMjkzLTEuMjkzYTEgMSAwIDAxMS40MTQtMS40MTRMMTQgNC41ODZsMS4yOTMtMS4yOTNhMSAxIDAgMDExLjQxNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQaG9uZU91dGdvaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45MjQgMi42MTdhLjk5Ny45OTcgMCAwMC0uMjE1LS4zMjJsLS4wMDQtLjAwNEEuOTk3Ljk5NyAwIDAwMTcgMmgtNGExIDEgMCAxMDAgMmgxLjU4NmwtMy4yOTMgMy4yOTNhMSAxIDAgMDAxLjQxNCAxLjQxNEwxNiA1LjQxNFY3YTEgMSAwIDEwMiAwVjNhLjk5Ny45OTcgMCAwMC0uMDc2LS4zODN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgM2ExIDEgMCAwMTEtMWgyLjE1M2ExIDEgMCAwMS45ODYuODM2bC43NCA0LjQzNWExIDEgMCAwMS0uNTQgMS4wNmwtMS41NDguNzczYTExLjAzNyAxMS4wMzcgMCAwMDYuMTA1IDYuMTA1bC43NzQtMS41NDhhMSAxIDAgMDExLjA1OS0uNTRsNC40MzUuNzRhMSAxIDAgMDEuODM2Ljk4NlYxN2ExIDEgMCAwMS0xIDFoLTJDNy44MiAxOCAyIDEyLjE4IDIgNVYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAzYTEgMSAwIDAxMS0xaDIuMTUzYTEgMSAwIDAxLjk4Ni44MzZsLjc0IDQuNDM1YTEgMSAwIDAxLS41NCAxLjA2bC0xLjU0OC43NzNhMTEuMDM3IDExLjAzNyAwIDAwNi4xMDUgNi4xMDVsLjc3NC0xLjU0OGExIDEgMCAwMTEuMDU5LS41NGw0LjQzNS43NGExIDEgMCAwMS44MzYuOTg2VjE3YTEgMSAwIDAxLTEgMWgtMkM3LjgyIDE4IDIgMTIuMTggMiA1VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVBob3RvZ3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDNhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEyYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDR6bTEyIDEySDRsNC04IDMgNiAyLTQgMyA2elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6TTkuNTU1IDcuMTY4QTEgMSAwIDAwOCA4djRhMSAxIDAgMDAxLjU1NS44MzJsMy0yYTEgMSAwIDAwMC0xLjY2NGwtMy0yelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGx1c0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTEtMTFhMSAxIDAgMTAtMiAwdjJIN2ExIDEgMCAxMDAgMmgydjJhMSAxIDAgMTAyIDB2LTJoMmExIDEgMCAxMDAtMmgtMlY3elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUGx1c1NtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgNWExIDEgMCAwMTEgMXYzaDNhMSAxIDAgMTEwIDJoLTN2M2ExIDEgMCAxMS0yIDB2LTNINmExIDEgMCAxMTAtMmgzVjZhMSAxIDAgMDExLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgM2ExIDEgMCAwMTEgMXY1aDVhMSAxIDAgMTEwIDJoLTV2NWExIDEgMCAxMS0yIDB2LTVINGExIDEgMCAxMTAtMmg1VjRhMSAxIDAgMDExLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlQcmVzZW50YXRpb25DaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgM2ExIDEgMCAwMDAgMnY4YTIgMiAwIDAwMiAyaDIuNTg2bC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDE1LjQxNGwyLjI5MyAyLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEyLjQxNCAxNUgxNWEyIDIgMCAwMDItMlY1YTEgMSAwIDEwMC0ySDN6bTExIDRhMSAxIDAgMTAtMiAwdjRhMSAxIDAgMTAyIDBWN3ptLTMgMWExIDEgMCAxMC0yIDB2M2ExIDEgMCAxMDIgMFY4ek04IDlhMSAxIDAgMDAtMiAwdjJhMSAxIDAgMTAyIDBWOXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVByZXNlbnRhdGlvbkNoYXJ0TGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTMgM2ExIDEgMCAwMDAgMnY4YTIgMiAwIDAwMiAyaDIuNTg2bC0xLjI5MyAxLjI5M2ExIDEgMCAxMDEuNDE0IDEuNDE0TDEwIDE1LjQxNGwyLjI5MyAyLjI5M2ExIDEgMCAwMDEuNDE0LTEuNDE0TDEyLjQxNCAxNUgxNWEyIDIgMCAwMDItMlY1YTEgMSAwIDEwMC0ySDN6bTExLjcwNyA0LjcwN2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMCA5LjU4NiA4LjcwNyA4LjI5M2ExIDEgMCAwMC0xLjQxNCAwbC0yIDJhMSAxIDAgMTAxLjQxNCAxLjQxNEw4IDEwLjQxNGwxLjI5MyAxLjI5M2ExIDEgMCAwMDEuNDE0IDBsNC00elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUHJpbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgNHYzSDRhMiAyIDAgMDAtMiAydjNhMiAyIDAgMDAyIDJoMXYyYTIgMiAwIDAwMiAyaDZhMiAyIDAgMDAyLTJ2LTJoMWEyIDIgMCAwMDItMlY5YTIgMiAwIDAwLTItMmgtMVY0YTIgMiAwIDAwLTItMkg3YTIgMiAwIDAwLTIgMnptOCAwSDd2M2g2VjR6bTAgOEg3djRoNnYtNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVB1enpsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMy41YTEuNSAxLjUgMCAwMTMgMFY0YTEgMSAwIDAwMSAxaDNhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFoLS41YTEuNSAxLjUgMCAwMDAgM2guNWExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMWgtM2ExIDEgMCAwMS0xLTF2LS41YTEuNSAxLjUgMCAwMC0zIDB2LjVhMSAxIDAgMDEtMSAxSDZhMSAxIDAgMDEtMS0xdi0zYTEgMSAwIDAwLTEtMWgtLjVhMS41IDEuNSAwIDAxMC0zSDRhMSAxIDAgMDAxLTFWNmExIDEgMCAwMTEtMWgzYTEgMSAwIDAwMS0xdi0uNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyA0YTEgMSAwIDAxMS0xaDNhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFINGExIDEgMCAwMS0xLTFWNHptMiAyVjVoMXYxSDV6TTMgMTNhMSAxIDAgMDExLTFoM2ExIDEgMCAwMTEgMXYzYTEgMSAwIDAxLTEgMUg0YTEgMSAwIDAxLTEtMXYtM3ptMiAydi0xaDF2MUg1ek0xMyAzYTEgMSAwIDAwLTEgMXYzYTEgMSAwIDAwMSAxaDNhMSAxIDAgMDAxLTFWNGExIDEgMCAwMC0xLTFoLTN6bTEgMnYxaDFWNWgtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDRhMSAxIDAgMTAtMiAwdjFhMSAxIDAgMDAyIDBWNHpNMTAgN2ExIDEgMCAwMTEgMXYxaDJhMSAxIDAgMTEwIDJoLTNhMSAxIDAgMDEtMS0xVjhhMSAxIDAgMDExLTF6TTE2IDlhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6TTkgMTNhMSAxIDAgMDExLTFoMWExIDEgMCAxMTAgMnYyYTEgMSAwIDExLTIgMHYtM3pNNyAxMWExIDEgMCAxMDAtMkg0YTEgMSAwIDEwMCAyaDN6TTE3IDEzYTEgMSAwIDAxLTEgMWgtMmExIDEgMCAxMTAtMmgyYTEgMSAwIDAxMSAxek0xNiAxN2ExIDEgMCAxMDAtMmgtM2ExIDEgMCAxMDAgMmgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlRdWVzdGlvbk1hcmtDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xOCAxMGE4IDggMCAxMS0xNiAwIDggOCAwIDAxMTYgMHptLTgtM2ExIDEgMCAwMC0uODY3LjUgMSAxIDAgMTEtMS43MzEtMUEzIDMgMCAwMTEzIDhhMy4wMDEgMy4wMDEgMCAwMS0yIDIuODNWMTFhMSAxIDAgMTEtMiAwdi0xYTEgMSAwIDAxMS0xIDEgMSAwIDEwMC0yem0wIDhhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlSZWNlaXB0UmVmdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSAyYTIgMiAwIDAwLTIgMnYxNGwzLjUtMiAzLjUgMiAzLjUtMiAzLjUgMlY0YTIgMiAwIDAwLTItMkg1em00LjcwNyAzLjcwN2ExIDEgMCAwMC0xLjQxNC0xLjQxNGwtMyAzYTEgMSAwIDAwMCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNC0xLjQxNEw4LjQxNCA5SDEwYTMgMyAwIDAxMyAzdjFhMSAxIDAgMTAyIDB2LTFhNSA1IDAgMDAtNS01SDguNDE0bDEuMjkzLTEuMjkzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpUmVjZWlwdFRheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUgMmEyIDIgMCAwMC0yIDJ2MTRsMy41LTIgMy41IDIgMy41LTIgMy41IDJWNGEyIDIgMCAwMC0yLTJINXptMi41IDNhMS41IDEuNSAwIDEwMCAzIDEuNSAxLjUgMCAwMDAtM3ptNi4yMDcuMjkzYTEgMSAwIDAwLTEuNDE0IDBsLTYgNmExIDEgMCAxMDEuNDE0IDEuNDE0bDYtNmExIDEgMCAwMDAtMS40MTR6TTEyLjUgMTBhMS41IDEuNSAwIDEwMCAzIDEuNSAxLjUgMCAwMDAtM3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVJlZnJlc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDJhMSAxIDAgMDExIDF2Mi4xMDFhNy4wMDIgNy4wMDIgMCAwMTExLjYwMSAyLjU2NiAxIDEgMCAxMS0xLjg4NS42NjZBNS4wMDIgNS4wMDIgMCAwMDUuOTk5IDdIOWExIDEgMCAwMTAgMkg0YTEgMSAwIDAxLTEtMVYzYTEgMSAwIDAxMS0xem0uMDA4IDkuMDU3YTEgMSAwIDAxMS4yNzYuNjFBNS4wMDIgNS4wMDIgMCAwMDE0LjAwMSAxM0gxMWExIDEgMCAxMTAtMmg1YTEgMSAwIDAxMSAxdjVhMSAxIDAgMTEtMiAwdi0yLjEwMWE3LjAwMiA3LjAwMiAwIDAxLTExLjYwMS0yLjU2NiAxIDEgMCAwMS42MS0xLjI3NnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVJlcGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNy43MDcgMy4yOTNhMSAxIDAgMDEwIDEuNDE0TDUuNDE0IDdIMTFhNyA3IDAgMDE3IDd2MmExIDEgMCAxMS0yIDB2LTJhNSA1IDAgMDAtNS01SDUuNDE0bDIuMjkzIDIuMjkzYTEgMSAwIDExLTEuNDE0IDEuNDE0bC00LTRhMSAxIDAgMDEwLTEuNDE0bDQtNGExIDEgMCAwMTEuNDE0IDB6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlSZXdpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNDQ1IDE0LjgzMkExIDEgMCAwMDEwIDE0di0yLjc5OGw1LjQ0NSAzLjYzQTEgMSAwIDAwMTcgMTRWNmExIDEgMCAwMC0xLjU1NS0uODMyTDEwIDguNzk4VjZhMSAxIDAgMDAtMS41NTUtLjgzMmwtNiA0YTEgMSAwIDAwMCAxLjY2NGw2IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVJzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzYTEgMSAwIDAwMCAyYzUuNTIzIDAgMTAgNC40NzcgMTAgMTBhMSAxIDAgMTAyIDBDMTcgOC4zNzMgMTEuNjI3IDMgNSAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDlhMSAxIDAgMDExLTEgNyA3IDAgMDE3IDcgMSAxIDAgMTEtMiAwIDUgNSAwIDAwLTUtNSAxIDEgMCAwMS0xLTF6TTMgMTVhMiAyIDAgMTE0IDAgMiAyIDAgMDEtNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTYXZlQXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNzA3IDcuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDMgM2ExIDEgMCAwMDEuNDE0IDBsMy0zYTEgMSAwIDAwLTEuNDE0LTEuNDE0TDEzIDguNTg2VjVoM2EyIDIgMCAwMTIgMnY1YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMlY3YTIgMiAwIDAxMi0yaDN2My41ODZMOS43MDcgNy4yOTN6TTExIDNhMSAxIDAgMTEyIDB2MmgtMlYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDlhMiAyIDAgMDAtMiAydjVhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMkg0Vjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzA3IDEwLjI5M2ExIDEgMCAxMC0xLjQxNCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNCAwbDMtM2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxMSAxMS41ODZWNmg1YTIgMiAwIDAxMiAydjdhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0yVjhhMiAyIDAgMDEyLTJoNXY1LjU4NmwtMS4yOTMtMS4yOTN6TTkgNGExIDEgMCAwMTIgMHYySDlWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAyYTEgMSAwIDAxMSAxdjEuMzIzbDMuOTU0IDEuNTgyIDEuNTk5LS44YTEgMSAwIDAxLjg5NCAxLjc5bC0xLjIzMy42MTYgMS43MzggNS40MmExIDEgMCAwMS0uMjg1IDEuMDVBMy45ODkgMy45ODkgMCAwMTE1IDE1YTMuOTg5IDMuOTg5IDAgMDEtMi42NjctMS4wMTkgMSAxIDAgMDEtLjI4NS0xLjA1bDEuNzE1LTUuMzQ5TDExIDYuNDc3VjE2aDJhMSAxIDAgMTEwIDJIN2ExIDEgMCAxMTAtMmgyVjYuNDc3TDYuMjM3IDcuNTgybDEuNzE1IDUuMzQ5YTEgMSAwIDAxLS4yODUgMS4wNUEzLjk4OSAzLjk4OSAwIDAxNSAxNWEzLjk4OSAzLjk4OSAwIDAxLTIuNjY3LTEuMDE5IDEgMSAwIDAxLS4yODUtMS4wNWwxLjczOC01LjQyLTEuMjMzLS42MTdhMSAxIDAgMDEuODk0LTEuNzg4bDEuNTk5Ljc5OUw5IDQuMzIzVjNhMSAxIDAgMDExLTF6bS01IDguMjc0bC0uODE4IDIuNTUyYy4yNS4xMTIuNTI2LjE3NC44MTguMTc0LjI5MiAwIC41NjktLjA2Mi44MTgtLjE3NEw1IDEwLjI3NHptMTAgMGwtLjgxOCAyLjU1MmMuMjUuMTEyLjUyNi4xNzQuODE4LjE3NC4yOTIgMCAuNTY5LS4wNjIuODE4LS4xNzRMMTUgMTAuMjc0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2Npc3NvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01LjUgMmEzLjUgMy41IDAgMTAxLjY2NSA2LjU4TDguNTg1IDEwbC0xLjQyIDEuNDJhMy41IDMuNSAwIDEwMS40MTQgMS40MTRsOC4xMjgtOC4xMjdhMSAxIDAgMDAtMS40MTQtMS40MTRMMTAgOC41ODZsLTEuNDItMS40MkEzLjUgMy41IDAgMDA1LjUgMnpNNCA1LjVhMS41IDEuNSAwIDExMyAwIDEuNSAxLjUgMCAwMS0zIDB6bTAgOWExLjUgMS41IDAgMTEzIDAgMS41IDEuNSAwIDAxLTMgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjgyOCAxMS40MTRhMSAxIDAgMDAtMS40MTQgMS40MTRsMy44NzkgMy44OGExIDEgMCAwMDEuNDE0LTEuNDE1bC0zLjg3OS0zLjg3OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2VhcmNoQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDlhMiAyIDAgMTE0IDAgMiAyIDAgMDEtNCAwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMThhOCA4IDAgMTAwLTE2IDggOCAwIDAwMCAxNnptMS0xM2E0IDQgMCAwMC0zLjQ0NiA2LjAzMmwtMi4yNjEgMi4yNmExIDEgMCAxMDEuNDE0IDEuNDE1bDIuMjYxLTIuMjYxQTQgNCAwIDEwMTEgNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTggNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpNMiA4YTYgNiAwIDExMTAuODkgMy40NzZsNC44MTcgNC44MTdhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQuODE2LTQuODE2QTYgNiAwIDAxMiA4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2VsZWN0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAzYTEgMSAwIDAxLjcwNy4yOTNsMyAzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDEwIDUuNDE0IDcuNzA3IDcuNzA3YTEgMSAwIDAxLTEuNDE0LTEuNDE0bDMtM0ExIDEgMCAwMTEwIDN6bS0zLjcwNyA5LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTAgMTQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAxMS40MTQgMS40MTRsLTMgM2ExIDEgMCAwMS0xLjQxNCAwbC0zLTNhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2VydmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMiA1YTIgMiAwIDAxMi0yaDEyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0yVjV6bTE0IDFhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwek0yIDEzYTIgMiAwIDAxMi0yaDEyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0ydi0yem0xNCAxYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA4YTMgMyAwIDEwLTIuOTc3LTIuNjNsLTQuOTQgMi40N2EzIDMgMCAxMDAgNC4zMTlsNC45NCAyLjQ3YTMgMyAwIDEwLjg5NS0xLjc4OWwtNC45NC0yLjQ3YTMuMDI3IDMuMDI3IDAgMDAwLS43NGw0Ljk0LTIuNDdDMTMuNDU2IDcuNjggMTQuMTkgOCAxNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTaGllbGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTIuMTY2IDQuOTk5QTExLjk1NCAxMS45NTQgMCAwMDEwIDEuOTQ0IDExLjk1NCAxMS45NTQgMCAwMDE3LjgzNCA1Yy4xMS42NS4xNjYgMS4zMi4xNjYgMi4wMDEgMCA1LjIyNS0zLjM0IDkuNjctOCAxMS4zMTdDNS4zNCAxNi42NyAyIDEyLjIyNSAyIDdjMC0uNjgyLjA1Ny0xLjM1LjE2Ni0yLjAwMXptMTEuNTQxIDMuNzA4YTEgMSAwIDAwLTEuNDE0LTEuNDE0TDkgMTAuNTg2IDcuNzA3IDkuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDIgMmExIDEgMCAwMDEuNDE0IDBsNC00elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU2hpZWxkRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxLjk0NEExMS45NTQgMTEuOTU0IDAgMDEyLjE2NiA1QzIuMDU2IDUuNjQ5IDIgNi4zMTkgMiA3YzAgNS4yMjUgMy4zNCA5LjY3IDggMTEuMzE3QzE0LjY2IDE2LjY3IDE4IDEyLjIyNSAxOCA3YzAtLjY4Mi0uMDU3LTEuMzUtLjE2Ni0yLjAwMUExMS45NTQgMTEuOTU0IDAgMDExMCAxLjk0NHpNMTEgMTRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0wLTdhMSAxIDAgMTAtMiAwdjNhMSAxIDAgMTAyIDBWN3pcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMmE0IDQgMCAwMC00IDR2MUg1YTEgMSAwIDAwLS45OTQuODlsLTEgOUExIDEgMCAwMDQgMThoMTJhMSAxIDAgMDAuOTk0LTEuMTFsLTEtOUExIDEgMCAwMDE1IDdoLTFWNmE0IDQgMCAwMC00LTR6bTIgNVY2YTIgMiAwIDEwLTQgMHYxaDR6bS02IDNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem03LTFhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTaG9wcGluZ0NhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMWExIDEgMCAwMDAgMmgxLjIybC4zMDUgMS4yMjJhLjk5Ny45OTcgMCAwMC4wMS4wNDJsMS4zNTggNS40My0uODkzLjg5MkMzLjc0IDExLjg0NiA0LjYzMiAxNCA2LjQxNCAxNEgxNWExIDEgMCAwMDAtMkg2LjQxNGwxLTFIMTRhMSAxIDAgMDAuODk0LS41NTNsMy02QTEgMSAwIDAwMTcgM0g2LjI4bC0uMzEtMS4yNDNBMSAxIDAgMDA1IDFIM3pNMTYgMTYuNWExLjUgMS41IDAgMTEtMyAwIDEuNSAxLjUgMCAwMTMgMHpNNi41IDE4YTEuNSAxLjUgMCAxMDAtMyAxLjUgMS41IDAgMDAwIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNvcnRBc2NlbmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2ExIDEgMCAwMDAgMmgxMWExIDEgMCAxMDAtMkgzek0zIDdhMSAxIDAgMDAwIDJoNWExIDEgMCAwMDAtMkgzek0zIDExYTEgMSAwIDEwMCAyaDRhMSAxIDAgMTAwLTJIM3pNMTMgMTZhMSAxIDAgMTAyIDB2LTUuNTg2bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRsLTMtM2ExIDEgMCAwMC0xLjQxNCAwbC0zIDNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxMyAxMC40MTRWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNvcnREZXNjZW5kaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNhMSAxIDAgMDAwIDJoMTFhMSAxIDAgMTAwLTJIM3pNMyA3YTEgMSAwIDAwMCAyaDdhMSAxIDAgMTAwLTJIM3pNMyAxMWExIDEgMCAxMDAgMmg0YTEgMSAwIDEwMC0ySDN6TTE1IDhhMSAxIDAgMTAtMiAwdjUuNTg2bC0xLjI5My0xLjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNGwzIDNhMSAxIDAgMDAxLjQxNCAwbDMtM2ExIDEgMCAwMC0xLjQxNC0xLjQxNEwxNSAxMy41ODZWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3BhcmtsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDJhMSAxIDAgMDExIDF2MWgxYTEgMSAwIDAxMCAySDZ2MWExIDEgMCAwMS0yIDBWNkgzYTEgMSAwIDAxMC0yaDFWM2ExIDEgMCAwMTEtMXptMCAxMGExIDEgMCAwMTEgMXYxaDFhMSAxIDAgMTEwIDJINnYxYTEgMSAwIDExLTIgMHYtMUgzYTEgMSAwIDExMC0yaDF2LTFhMSAxIDAgMDExLTF6TTEyIDJhMSAxIDAgMDEuOTY3Ljc0NEwxNC4xNDYgNy4yIDE3LjUgOS4xMzRhMSAxIDAgMDEwIDEuNzMybC0zLjM1NCAxLjkzNS0xLjE4IDQuNDU1YTEgMSAwIDAxLTEuOTMzIDBMOS44NTQgMTIuOCA2LjUgMTAuODY2YTEgMSAwIDAxMC0xLjczMmwzLjM1NC0xLjkzNSAxLjE4LTQuNDU1QTEgMSAwIDAxMTIgMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVNwZWFrZXJwaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDNhMSAxIDAgMDAtMS40NDctLjg5NEw4Ljc2MyA2SDVhMyAzIDAgMDAwIDZoLjI4bDEuNzcxIDUuMzE2QTEgMSAwIDAwOCAxOGgxYTEgMSAwIDAwMS0xdi00LjM4Mmw2LjU1MyAzLjI3NkExIDEgMCAwMDE4IDE1VjN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjA0OSAyLjkyN2MuMy0uOTIxIDEuNjAzLS45MjEgMS45MDIgMGwxLjA3IDMuMjkyYTEgMSAwIDAwLjk1LjY5aDMuNDYyYy45NjkgMCAxLjM3MSAxLjI0LjU4OCAxLjgxbC0yLjggMi4wMzRhMSAxIDAgMDAtLjM2NCAxLjExOGwxLjA3IDMuMjkyYy4zLjkyMS0uNzU1IDEuNjg4LTEuNTQgMS4xMThsLTIuOC0yLjAzNGExIDEgMCAwMC0xLjE3NSAwbC0yLjggMi4wMzRjLS43ODQuNTctMS44MzgtLjE5Ny0xLjUzOS0xLjExOGwxLjA3LTMuMjkyYTEgMSAwIDAwLS4zNjQtMS4xMThMMi45OCA4LjcyYy0uNzgzLS41Ny0uMzgtMS44MS41ODgtMS44MWgzLjQ2MWExIDEgMCAwMC45NTEtLjY5bDEuMDctMy4yOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN0YXR1c09mZmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuNzA3IDIuMjkzYTEgMSAwIDAwLTEuNDE0IDEuNDE0bDYuOTIxIDYuOTIyYy4wNS4wNjIuMTA1LjExOC4xNjguMTY3bDYuOTEgNi45MTFhMSAxIDAgMDAxLjQxNS0xLjQxNGwtLjY3NS0uNjc1YTkuMDAxIDkuMDAxIDAgMDAtLjY2OC0xMS45ODJBMSAxIDAgMTAxNC45NSA1LjA1YTcuMDAyIDcuMDAyIDAgMDEuNjU3IDkuMTQzbC0xLjQzNS0xLjQzNWE1LjAwMiA1LjAwMiAwIDAwLS42MzYtNi4yOTRBMSAxIDAgMDAxMi4xMiA3Ljg4Yy45MjQuOTIzIDEuMTIgMi4zLjU4NyAzLjQxNWwtMS45OTItMS45OTJhLjkyMi45MjIgMCAwMC0uMDE4LS4wMThsLTYuOTktNi45OTF6TTMuMjM4IDguMTg3YTEgMSAwIDAwLTEuOTMzLS41MTZjLS44IDMtLjAyNSA2LjMzNiAyLjMzMSA4LjY5M2ExIDEgMCAwMDEuNDE0LTEuNDE1IDYuOTk3IDYuOTk3IDAgMDEtMS44MTItNi43NjJ6TTcuNCAxMS41YTEgMSAwIDEwLTEuNzMgMWMuMjE0LjM3MS40OC43Mi43OTUgMS4wMzVhMSAxIDAgMDAxLjQxNC0xLjQxNGMtLjE5MS0uMTkxLS4zNS0uNC0uNDc4LS42MjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN0YXR1c09ubGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuMDUgMy42MzZhMSAxIDAgMDEwIDEuNDE0IDcgNyAwIDAwMCA5LjkgMSAxIDAgMTEtMS40MTQgMS40MTQgOSA5IDAgMDEwLTEyLjcyOCAxIDEgMCAwMTEuNDE0IDB6bTkuOSAwYTEgMSAwIDAxMS40MTQgMCA5IDkgMCAwMTAgMTIuNzI4IDEgMSAwIDExLTEuNDE0LTEuNDE0IDcgNyAwIDAwMC05LjkgMSAxIDAgMDEwLTEuNDE0ek03Ljg3OSA2LjQ2NGExIDEgMCAwMTAgMS40MTQgMyAzIDAgMDAwIDQuMjQzIDEgMSAwIDExLTEuNDE1IDEuNDE0IDUgNSAwIDAxMC03LjA3IDEgMSAwIDAxMS40MTUgMHptNC4yNDIgMGExIDEgMCAwMTEuNDE1IDAgNSA1IDAgMDEwIDcuMDcyIDEgMSAwIDAxLTEuNDE1LTEuNDE1IDMgMyAwIDAwMC00LjI0MiAxIDEgMCAwMTAtMS40MTV6TTEwIDlhMSAxIDAgMDExIDF2LjAxYTEgMSAwIDExLTIgMFYxMGExIDEgMCAwMTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek04IDdhMSAxIDAgMDAtMSAxdjRhMSAxIDAgMDAxIDFoNGExIDEgMCAwMDEtMVY4YTEgMSAwIDAwLTEtMUg4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTAgMmExIDEgMCAwMTEgMXYxYTEgMSAwIDExLTIgMFYzYTEgMSAwIDAxMS0xem00IDhhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwem0tLjQ2NCA0Ljk1bC43MDcuNzA3YTEgMSAwIDAwMS40MTQtMS40MTRsLS43MDctLjcwN2ExIDEgMCAwMC0xLjQxNCAxLjQxNHptMi4xMi0xMC42MDdhMSAxIDAgMDEwIDEuNDE0bC0uNzA2LjcwN2ExIDEgMCAxMS0xLjQxNC0xLjQxNGwuNzA3LS43MDdhMSAxIDAgMDExLjQxNCAwek0xNyAxMWExIDEgMCAxMDAtMmgtMWExIDEgMCAxMDAgMmgxem0tNyA0YTEgMSAwIDAxMSAxdjFhMSAxIDAgMTEtMiAwdi0xYTEgMSAwIDAxMS0xek01LjA1IDYuNDY0QTEgMSAwIDEwNi40NjUgNS4wNWwtLjcwOC0uNzA3YTEgMSAwIDAwLTEuNDE0IDEuNDE0bC43MDcuNzA3em0xLjQxNCA4LjQ4NmwtLjcwNy43MDdhMSAxIDAgMDEtMS40MTQtMS40MTRsLjcwNy0uNzA3YTEgMSAwIDAxMS40MTQgMS40MTR6TTQgMTFhMSAxIDAgMTAwLTJIM2ExIDEgMCAwMDAgMmgxelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpU3VwcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwem0tMiAwYzAgLjk5My0uMjQxIDEuOTI5LS42NjggMi43NTRsLTEuNTI0LTEuNTI1YTMuOTk3IDMuOTk3IDAgMDAuMDc4LTIuMTgzbDEuNTYyLTEuNTYyQzE1LjgwMiA4LjI0OSAxNiA5LjEgMTYgMTB6bS01LjE2NSAzLjkxM2wxLjU4IDEuNThBNS45OCA1Ljk4IDAgMDExMCAxNmE1Ljk3NiA1Ljk3NiAwIDAxLTIuNTE2LS41NTJsMS41NjItMS41NjJhNC4wMDYgNC4wMDYgMCAwMDEuNzg5LjAyN3ptLTQuNjc3LTIuNzk2YTQuMDAyIDQuMDAyIDAgMDEtLjA0MS0yLjA4bC0uMDguMDgtMS41My0xLjUzM0E1Ljk4IDUuOTggMCAwMDQgMTBjMCAuOTU0LjIyMyAxLjg1Ni42MTkgMi42NTdsMS41NC0xLjU0em0xLjA4OC02LjQ1QTUuOTc0IDUuOTc0IDAgMDExMCA0Yy45NTQgMCAxLjg1Ni4yMjMgMi42NTcuNjE5bC0xLjU0IDEuNTRhNC4wMDIgNC4wMDIgMCAwMC0yLjM0Ni4wMzNMNy4yNDYgNC42Njh6TTEyIDEwYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN3aXRjaEhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNWExIDEgMCAxMDAgMmg1LjU4NmwtMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNCAxLjQxNGwzLTNhMSAxIDAgMDAwLTEuNDE0bC0zLTNhMSAxIDAgMTAtMS40MTQgMS40MTRMMTMuNTg2IDVIOHpNMTIgMTVhMSAxIDAgMTAwLTJINi40MTRsMS4yOTMtMS4yOTNhMSAxIDAgMTAtMS40MTQtMS40MTRsLTMgM2ExIDEgMCAwMDAgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQtMS40MTRMNi40MTQgMTVIMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVN3aXRjaFZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEyYTEgMSAwIDEwMiAwVjYuNDE0bDEuMjkzIDEuMjkzYTEgMSAwIDAwMS40MTQtMS40MTRsLTMtM2ExIDEgMCAwMC0xLjQxNCAwbC0zIDNhMSAxIDAgMDAxLjQxNCAxLjQxNEw1IDYuNDE0VjEyek0xNSA4YTEgMSAwIDEwLTIgMHY1LjU4NmwtMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsMyAzYTEgMSAwIDAwMS40MTQgMGwzLTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTUgMTMuNTg2Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNSA0YTMgMyAwIDAwLTMgM3Y2YTMgMyAwIDAwMyAzaDEwYTMgMyAwIDAwMy0zVjdhMyAzIDAgMDAtMy0zSDV6bS0xIDl2LTFoNXYySDVhMSAxIDAgMDEtMS0xem03IDFoNGExIDEgMCAwMDEtMXYtMWgtNXYyem0wLTRoNVY4aC01djJ6TTkgOEg0djJoNVY4elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTcuNzA3IDkuMjkzYTEgMSAwIDAxMCAxLjQxNGwtNyA3YTEgMSAwIDAxLTEuNDE0IDBsLTctN0EuOTk3Ljk5NyAwIDAxMiAxMFY1YTMgMyAwIDAxMy0zaDVjLjI1NiAwIC41MTIuMDk4LjcwNy4yOTNsNyA3ek01IDZhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUZW1wbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDAxMSAxdjJhMSAxIDAgMDEtMSAxSDRhMSAxIDAgMDEtMS0xVjR6TTMgMTBhMSAxIDAgMDExLTFoNmExIDEgMCAwMTEgMXY2YTEgMSAwIDAxLTEgMUg0YTEgMSAwIDAxLTEtMXYtNnpNMTQgOWExIDEgMCAwMC0xIDF2NmExIDEgMCAwMDEgMWgyYTEgMSAwIDAwMS0xdi02YTEgMSAwIDAwLTEtMWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDVhMiAyIDAgMDEyLTJoMTJhMiAyIDAgMDEyIDJ2MTBhMiAyIDAgMDEtMiAySDRhMiAyIDAgMDEtMi0yVjV6bTMuMjkzIDEuMjkzYTEgMSAwIDAxMS40MTQgMGwzIDNhMSAxIDAgMDEwIDEuNDE0bC0zIDNhMSAxIDAgMDEtMS40MTQtMS40MTRMNy41ODYgMTAgNS4yOTMgNy43MDdhMSAxIDAgMDEwLTEuNDE0ek0xMSAxMmExIDEgMCAxMDAgMmgzYTEgMSAwIDEwMC0yaC0zelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGh1bWJEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5LjVhMS41IDEuNSAwIDExLTMgMHYtNmExLjUgMS41IDAgMDEzIDB2NnpNMTQgOS42Njd2LTUuNDNhMiAyIDAgMDAtMS4xMDUtMS43OWwtLjA1LS4wMjVBNCA0IDAgMDAxMS4wNTUgMkg1LjY0YTIgMiAwIDAwLTEuOTYyIDEuNjA4bC0xLjIgNkEyIDIgMCAwMDQuNDQgMTJIOHY0YTIgMiAwIDAwMiAyIDEgMSAwIDAwMS0xdi0uNjY3YTQgNCAwIDAxLjgtMi40bDEuNC0xLjg2NmE0IDQgMCAwMC44LTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGh1bWJVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMC41YTEuNSAxLjUgMCAxMTMgMHY2YTEuNSAxLjUgMCAwMS0zIDB2LTZ6TTYgMTAuMzMzdjUuNDNhMiAyIDAgMDAxLjEwNiAxLjc5bC4wNS4wMjVBNCA0IDAgMDA4Ljk0MyAxOGg1LjQxNmEyIDIgMCAwMDEuOTYyLTEuNjA4bDEuMi02QTIgMiAwIDAwMTUuNTYgOEgxMlY0YTIgMiAwIDAwLTItMiAxIDEgMCAwMC0xIDF2LjY2N2E0IDQgMCAwMS0uOCAyLjRMNi44IDcuOTMzYTQgNCAwIDAwLS44IDIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVGlja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZhMiAyIDAgMDEyLTJoMTJhMiAyIDAgMDEyIDJ2MmEyIDIgMCAxMDAgNHYyYTIgMiAwIDAxLTIgMkg0YTIgMiAwIDAxLTItMnYtMmEyIDIgMCAxMDAtNFY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUcmFuc2xhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk03IDJhMSAxIDAgMDExIDF2MWgzYTEgMSAwIDExMCAySDkuNTc4YTE4Ljg3IDE4Ljg3IDAgMDEtMS43MjQgNC43OGMuMjkuMzU0LjU5Ni42OTYuOTE0IDEuMDI2YTEgMSAwIDExLTEuNDQgMS4zODljLS4xODgtLjE5Ni0uMzczLS4zOTYtLjU1NC0uNmExOS4wOTggMTkuMDk4IDAgMDEtMy4xMDcgMy41NjcgMSAxIDAgMDEtMS4zMzQtMS40OSAxNy4wODcgMTcuMDg3IDAgMDAzLjEzLTMuNzMzIDE4Ljk5MiAxOC45OTIgMCAwMS0xLjQ4Ny0yLjQ5NCAxIDEgMCAxMTEuNzktLjg5Yy4yMzQuNDcuNDg5LjkyOC43NjQgMS4zNzIuNDE3LS45MzQuNzUyLTEuOTEzLjk5Ny0yLjkyN0gzYTEgMSAwIDExMC0yaDNWM2ExIDEgMCAwMTEtMXptNiA2YTEgMSAwIDAxLjg5NC41NTNsMi45OTEgNS45ODJhLjg2OS44NjkgMCAwMS4wMi4wMzdsLjk5IDEuOThhMSAxIDAgMTEtMS43OS44OTVMMTUuMzgzIDE2aC00Ljc2NGwtLjcyNCAxLjQ0N2ExIDEgMCAxMS0xLjc4OC0uODk0bC45OS0xLjk4LjAxOS0uMDM4IDIuOTktNS45ODJBMSAxIDAgMDExMyA4em0tMS4zODIgNmgyLjc2NEwxMyAxMS4yMzYgMTEuNjE4IDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVHJhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05IDJhMSAxIDAgMDAtLjg5NC41NTNMNy4zODIgNEg0YTEgMSAwIDAwMCAydjEwYTIgMiAwIDAwMiAyaDhhMiAyIDAgMDAyLTJWNmExIDEgMCAxMDAtMmgtMy4zODJsLS43MjQtMS40NDdBMSAxIDAgMDAxMSAySDl6TTcgOGExIDEgMCAwMTIgMHY2YTEgMSAwIDExLTIgMFY4em01LTFhMSAxIDAgMDAtMSAxdjZhMSAxIDAgMTAyIDBWOGExIDEgMCAwMC0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUcmVuZGluZ0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMiAxM2ExIDEgMCAxMDAgMmg1YTEgMSAwIDAwMS0xVjlhMSAxIDAgMTAtMiAwdjIuNTg2bC00LjI5My00LjI5M2ExIDEgMCAwMC0xLjQxNCAwTDggOS41ODYgMy43MDcgNS4yOTNhMSAxIDAgMDAtMS40MTQgMS40MTRsNSA1YTEgMSAwIDAwMS40MTQgMEwxMSA5LjQxNCAxNC41ODYgMTNIMTJ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlUcmVuZGluZ1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIgN2ExIDEgMCAxMTAtMmg1YTEgMSAwIDAxMSAxdjVhMSAxIDAgMTEtMiAwVjguNDE0bC00LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNCAwTDggMTAuNDE0bC00LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNC0xLjQxNGw1LTVhMSAxIDAgMDExLjQxNCAwTDExIDEwLjU4NiAxNC41ODYgN0gxMnpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2LjVhMS41IDEuNSAwIDExLTMgMCAxLjUgMS41IDAgMDEzIDB6TTE1IDE2LjVhMS41IDEuNSAwIDExLTMgMCAxLjUgMS41IDAgMDEzIDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNGExIDEgMCAwMC0xIDF2MTBhMSAxIDAgMDAxIDFoMS4wNWEyLjUgMi41IDAgMDE0LjkgMEgxMGExIDEgMCAwMDEtMVY1YTEgMSAwIDAwLTEtMUgzek0xNCA3YTEgMSAwIDAwLTEgMXY2LjA1QTIuNSAyLjUgMCAwMTE1Ljk1IDE2SDE3YTEgMSAwIDAwMS0xdi01YTEgMSAwIDAwLS4yOTMtLjcwN2wtMi0yQTEgMSAwIDAwMTUgN2gtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMyAxN2ExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXpNNi4yOTMgNi43MDdhMSAxIDAgMDEwLTEuNDE0bDMtM2ExIDEgMCAwMTEuNDE0IDBsMyAzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDExIDUuNDE0VjEzYTEgMSAwIDExLTIgMFY1LjQxNEw3LjcwNyA2LjcwN2ExIDEgMCAwMS0xLjQxNCAwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXNlckFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5YTMgMyAwIDEwMC02IDMgMyAwIDAwMCA2ek04IDExYTYgNiAwIDAxNiA2SDJhNiA2IDAgMDE2LTZ6TTE2IDdhMSAxIDAgMTAtMiAwdjFoLTFhMSAxIDAgMTAwIDJoMXYxYTEgMSAwIDEwMiAwdi0xaDFhMSAxIDAgMTAwLTJoLTFWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDEwYTggOCAwIDExLTE2IDAgOCA4IDAgMDExNiAwem0tNi0zYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHptLTIgNGE1IDUgMCAwMC00LjU0NiAyLjkxNkE1Ljk4NiA1Ljk4NiAwIDAwMTAgMTZhNS45ODYgNS45ODYgMCAwMDQuNTQ2LTIuMDg0QTUgNSAwIDAwMTAgMTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlVc2VyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDZhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwek0xOCA4YTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpNMTQgMTVhNCA0IDAgMDAtOCAwdjNoOHYtM3pNNiA4YTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpNMTYgMTh2LTNhNS45NzIgNS45NzIgMCAwMC0uNzUtMi45MDZBMy4wMDUgMy4wMDUgMCAwMTE5IDE1djNoLTN6TTQuNzUgMTIuMDk0QTUuOTczIDUuOTczIDAgMDA0IDE1djNIMXYtM2EzIDMgMCAwMTMuNzUtMi45MDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVVzZXJSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwek0xNCAxN2E2IDYgMCAwMC0xMiAwaDEyek0xMyA4YTEgMSAwIDEwMCAyaDRhMSAxIDAgMTAwLTJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCA5YTMgMyAwIDEwMC02IDMgMyAwIDAwMCA2em0tNyA5YTcgNyAwIDExMTQgMEgzelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVXNlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNmEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6TTE3IDZhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwek0xMi45MyAxN2MuMDQ2LS4zMjcuMDctLjY2LjA3LTFhNi45NyA2Ljk3IDAgMDAtMS41LTQuMzNBNSA1IDAgMDExOSAxNnYxaC02LjA3ek02IDExYTUgNSAwIDAxNSA1djFIMXYtMWE1IDUgMCAwMTUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVmFyaWFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00LjY0OSAzLjA4NEExIDEgMCAwMTUuMTYzIDQuNCAxMy45NSAxMy45NSAwIDAwNCAxMGMwIDEuOTkzLjQxNiAzLjg4NiAxLjE2NCA1LjZhMSAxIDAgMDEtMS44MzIuOEExNS45NSAxNS45NSAwIDAxMiAxMGMwLTIuMjc0LjQ3NS00LjQ0IDEuMzMyLTYuNGExIDEgMCAwMTEuMzE3LS41MTZ6TTEyLjk2IDdhMyAzIDAgMDAtMi4zNDIgMS4xMjZsLS4zMjguNDEtLjExMS0uMjc5QTIgMiAwIDAwOC4zMjMgN0g4YTEgMSAwIDAwMCAyaC4zMjNsLjUzMiAxLjMzLTEuMDM1IDEuMjk1YTEgMSAwIDAxLS43ODEuMzc1SDdhMSAxIDAgMTAwIDJoLjAzOWEzIDMgMCAwMDIuMzQyLTEuMTI2bC4zMjgtLjQxLjExMS4yNzlBMiAyIDAgMDAxMS42NzcgMTRIMTJhMSAxIDAgMTAwLTJoLS4zMjNsLS41MzItMS4zMyAxLjAzNS0xLjI5NUExIDEgMCAwMTEyLjk2MSA5SDEzYTEgMSAwIDEwMC0yaC0uMDM5em0xLjg3NC0yLjZhMSAxIDAgMDExLjgzMy0uOEExNS45NSAxNS45NSAwIDAxMTggMTBjMCAyLjI3NC0uNDc1IDQuNDQtMS4zMzIgNi40YTEgMSAwIDExLTEuODMyLS44QTEzLjk0OSAxMy45NDkgMCAwMDE2IDEwYzAtMS45OTMtLjQxNi0zLjg4Ni0xLjE2NS01LjZ6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWaWRlb0NhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2YTIgMiAwIDAxMi0yaDZhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJINGEyIDIgMCAwMS0yLTJWNnpNMTQuNTUzIDcuMTA2QTEgMSAwIDAwMTQgOHY0YTEgMSAwIDAwLjU1My44OTRsMiAxQTEgMSAwIDAwMTggMTNWN2ExIDEgMCAwMC0xLjQ0Ny0uODk0bC0yIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVZpZXdCb2FyZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNGExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjEyYTEgMSAwIDAxLTEgMUgzYTEgMSAwIDAxLTEtMVY0ek04IDRhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXYxMmExIDEgMCAwMS0xIDFIOWExIDEgMCAwMS0xLTFWNHpNMTUgM2ExIDEgMCAwMC0xIDF2MTJhMSAxIDAgMDAxIDFoMmExIDEgMCAwMDEtMVY0YTEgMSAwIDAwLTEtMWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVmlld0dyaWRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgM2EyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDV6TTUgMTFhMiAyIDAgMDAtMiAydjJhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMnYtMmEyIDIgMCAwMC0yLTJINXpNMTEgNWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAyaC0yYTIgMiAwIDAxLTItMlY1ek0xNCAxMWExIDEgMCAwMTEgMXYxaDFhMSAxIDAgMTEwIDJoLTF2MWExIDEgMCAxMS0yIDB2LTFoLTFhMSAxIDAgMTEwLTJoMXYtMWExIDEgMCAwMTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVmlld0dyaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgM2EyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDV6TTUgMTFhMiAyIDAgMDAtMiAydjJhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMnYtMmEyIDIgMCAwMC0yLTJINXpNMTEgNWEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAyaC0yYTIgMiAwIDAxLTItMlY1ek0xMSAxM2EyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAyaC0yYTIgMiAwIDAxLTItMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpVmlld0xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0zIDRhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6bTAgNGExIDEgMCAwMTEtMWgxMmExIDEgMCAxMTAgMkg0YTEgMSAwIDAxLTEtMXptMCA0YTEgMSAwIDAxMS0xaDEyYTEgMSAwIDExMCAySDRhMSAxIDAgMDEtMS0xem0wIDRhMSAxIDAgMDExLTFoMTJhMSAxIDAgMTEwIDJINGExIDEgMCAwMS0xLTF6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk05LjM4MyAzLjA3NkExIDEgMCAwMTEwIDR2MTJhMSAxIDAgMDEtMS43MDcuNzA3TDQuNTg2IDEzSDJhMSAxIDAgMDEtMS0xVjhhMSAxIDAgMDExLTFoMi41ODZsMy43MDctMy43MDdhMSAxIDAgMDExLjA5LS4yMTd6TTEyLjI5MyA3LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTUgOC41ODZsMS4yOTMtMS4yOTNhMSAxIDAgMTExLjQxNCAxLjQxNEwxNi40MTQgMTBsMS4yOTMgMS4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTUgMTEuNDE0bC0xLjI5MyAxLjI5M2ExIDEgMCAwMS0xLjQxNC0xLjQxNEwxMy41ODYgMTBsLTEuMjkzLTEuMjkzYTEgMSAwIDAxMC0xLjQxNHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVZvbHVtZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNOS4zODMgMy4wNzZBMSAxIDAgMDExMCA0djEyYTEgMSAwIDAxLTEuNzA3LjcwN0w0LjU4NiAxM0gyYTEgMSAwIDAxLTEtMVY4YTEgMSAwIDAxMS0xaDIuNTg2bDMuNzA3LTMuNzA3YTEgMSAwIDAxMS4wOS0uMjE3ek0xNC42NTcgMi45MjlhMSAxIDAgMDExLjQxNCAwQTkuOTcyIDkuOTcyIDAgMDExOSAxMGE5Ljk3MiA5Ljk3MiAwIDAxLTIuOTI5IDcuMDcxIDEgMSAwIDAxLTEuNDE0LTEuNDE0QTcuOTcxIDcuOTcxIDAgMDAxNyAxMGMwLTIuMjEtLjg5NC00LjIwOC0yLjM0My01LjY1N2ExIDEgMCAwMTAtMS40MTR6bS0yLjgyOSAyLjgyOGExIDEgMCAwMTEuNDE1IDBBNS45ODMgNS45ODMgMCAwMTE1IDEwYTUuOTg0IDUuOTg0IDAgMDEtMS43NTcgNC4yNDMgMSAxIDAgMDEtMS40MTUtMS40MTVBMy45ODQgMy45ODQgMCAwMDEzIDEwYTMuOTgzIDMuOTgzIDAgMDAtMS4xNzItMi44MjggMSAxIDAgMDEwLTEuNDE1elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjAgMjBcIixcImZpbGxcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE3Ljc3OCA4LjIyMmMtNC4yOTYtNC4yOTYtMTEuMjYtNC4yOTYtMTUuNTU2IDBBMSAxIDAgMDEuODA4IDYuODA4YzUuMDc2LTUuMDc3IDEzLjMwOC01LjA3NyAxOC4zODQgMGExIDEgMCAwMS0xLjQxNCAxLjQxNHpNMTQuOTUgMTEuMDVhNyA3IDAgMDAtOS45IDAgMSAxIDAgMDEtMS40MTQtMS40MTQgOSA5IDAgMDExMi43MjggMCAxIDEgMCAwMS0xLjQxNCAxLjQxNHpNMTIuMTIgMTMuODhhMyAzIDAgMDAtNC4yNDIgMCAxIDEgMCAwMS0xLjQxNS0xLjQxNSA1IDUgMCAwMTcuMDcyIDAgMSAxIDAgMDEtMS40MTUgMS40MTV6TTkgMTZhMSAxIDAgMDExLTFoLjAxYTEgMSAwIDExMCAySDEwYTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVhDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMCAxOGE4IDggMCAxMDAtMTYgOCA4IDAgMDAwIDE2ek04LjcwNyA3LjI5M2ExIDEgMCAwMC0xLjQxNCAxLjQxNEw4LjU4NiAxMGwtMS4yOTMgMS4yOTNhMSAxIDAgMTAxLjQxNCAxLjQxNEwxMCAxMS40MTRsMS4yOTMgMS4yOTNhMSAxIDAgMDAxLjQxNC0xLjQxNEwxMS40MTQgMTBsMS4yOTMtMS4yOTNhMSAxIDAgMDAtMS40MTQtMS40MTRMMTAgOC41ODYgOC43MDcgNy4yOTN6XCIsXCJjbGlwUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlYIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNC4yOTMgNC4yOTNhMSAxIDAgMDExLjQxNCAwTDEwIDguNTg2bDQuMjkzLTQuMjkzYTEgMSAwIDExMS40MTQgMS40MTRMMTEuNDE0IDEwbDQuMjkzIDQuMjkzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDEwIDExLjQxNGwtNC4yOTMgNC4yOTNhMSAxIDAgMDEtMS40MTQtMS40MTRMOC41ODYgMTAgNC4yOTMgNS43MDdhMSAxIDAgMDEwLTEuNDE0elwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpWm9vbUluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyMCAyMFwiLFwiZmlsbFwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDhhMSAxIDAgMDExLTFoMVY2YTEgMSAwIDAxMiAwdjFoMWExIDEgMCAxMTAgMkg5djFhMSAxIDAgMTEtMiAwVjlINmExIDEgMCAwMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yIDhhNiA2IDAgMTExMC44OSAzLjQ3Nmw0LjgxNyA0LjgxN2ExIDEgMCAwMS0xLjQxNCAxLjQxNGwtNC44MTYtNC44MTZBNiA2IDAgMDEyIDh6bTYtNGE0IDQgMCAxMDAgOCA0IDQgMCAwMDAtOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaVpvb21PdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDIwIDIwXCIsXCJmaWxsXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6TTIgOGE2IDYgMCAxMTEwLjg5IDMuNDc2bDQuODE3IDQuODE3YTEgMSAwIDAxLTEuNDE0IDEuNDE0bC00LjgxNi00LjgxNkE2IDYgMCAwMTIgOHpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk01IDhhMSAxIDAgMDExLTFoNGExIDEgMCAxMTAgMkg2YTEgMSAwIDAxLTEtMXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBY2FkZW1pY0NhcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRsOS01LTktNS05IDUgOSA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGw2LjE2LTMuNDIyYTEyLjA4MyAxMi4wODMgMCAwMS42NjUgNi40NzlBMTEuOTUyIDExLjk1MiAwIDAwMTIgMjAuMDU1YTExLjk1MiAxMS45NTIgMCAwMC02LjgyNC0yLjk5OCAxMi4wNzggMTIuMDc4IDAgMDEuNjY1LTYuNDc5TDEyIDE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAxNGw5LTUtOS01LTkgNSA5IDV6bTAgMGw2LjE2LTMuNDIyYTEyLjA4MyAxMi4wODMgMCAwMS42NjUgNi40NzlBMTEuOTUyIDExLjk1MiAwIDAwMTIgMjAuMDU1YTExLjk1MiAxMS45NTIgMCAwMC02LjgyNC0yLjk5OCAxMi4wNzggMTIuMDc4IDAgMDEuNjY1LTYuNDc5TDEyIDE0em0tNCA2di03LjVsNC0yLjIyMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQWRqdXN0bWVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDZWNG0wIDJhMiAyIDAgMTAwIDRtMC00YTIgMiAwIDExMCA0bS02IDhhMiAyIDAgMTAwLTRtMCA0YTIgMiAwIDExMC00bTAgNHYybTAtNlY0bTYgNnYxMG02LTJhMiAyIDAgMTAwLTRtMCA0YTIgMiAwIDExMC00bTAgNHYybTAtNlY0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBbm5vdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDhoMTBNNyAxMmg0bTEgOGwtNC00SDVhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJoMTRhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJoLTNsLTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgOGgxNE01IDhhMiAyIDAgMTEwLTRoMTRhMiAyIDAgMTEwIDRNNSA4djEwYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjhtLTkgNGg0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0NpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDEzbC0zIDNtMCAwbC0zLTNtMyAzVjhtMCAxM2E5IDkgMCAxMTAtMTggOSA5IDAgMDEwIDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSAxNWwtMy0zbTAgMGwzLTNtLTMgM2g4TTMgMTJhOSA5IDAgMTExOCAwIDkgOSAwIDAxLTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0NpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMyA5bDMgM20wIDBsLTMgM20zLTNIOG0xMyAwYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMWwzLTNtMCAwbDMgM20tMy0zdjhtMC0xM2E5IDkgMCAxMTAgMTggOSA5IDAgMDEwLTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOSAxNGwtNyA3bTAgMGwtNy03bTcgN1YzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwIDE5bC03LTdtMCAwbDctN20tNyA3aDE4XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd05hcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE2IDE3bC00IDRtMCAwbC00LTRtNCA0VjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93TmFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyAxNmwtNC00bTAgMGw0LTRtLTQgNGgxOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dOYXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgOGw0IDRtMCAwbC00IDRtNC00SDNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93TmFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggN2w0LTRtMCAwbDQgNG0tNC00djE4XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNCA1bDcgN20wIDBsLTcgN203LTdIM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dTbURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE3IDEzbC01IDVtMCAwbC01LTVtNSA1VjZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93U21MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSAxN2wtNS01bTAgMGw1LTVtLTUgNWgxMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dTbVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMyA3bDUgNW0wIDBsLTUgNW01LTVINlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dTbVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDExbDUtNW0wIDBsNSA1bS01LTV2MTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTBsNy03bTAgMGw3IDdtLTctN3YxOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQXJyb3dzRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDhWNG0wIDBoNE00IDRsNSA1bTExLTFWNG0wIDBoLTRtNCAwbC01IDVNNCAxNnY0bTAgMGg0bS00IDBsNS01bTExIDVsLTUtNW01IDV2LTRtMCA0aC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVBdFN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgMTJhNCA0IDAgMTAtOCAwIDQgNCAwIDAwOCAwem0wIDB2MS41YTIuNSAyLjUgMCAwMDUgMFYxMmE5IDkgMCAxMC05IDltNC41LTEuMjA2YTguOTU5IDguOTU5IDAgMDEtNC41IDEuMjA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVCYWNrc3BhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDE0bDItMm0wIDBsMi0ybS0yIDJsLTItMm0yIDJsMiAyTTMgMTJsNi40MTQgNi40MTRhMiAyIDAgMDAxLjQxNC41ODZIMTlhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJoLTguMTcyYTIgMiAwIDAwLTEuNDE0LjU4NkwzIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQmFkZ2VDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMmwyIDIgNC00TTcuODM1IDQuNjk3YTMuNDIgMy40MiAwIDAwMS45NDYtLjgwNiAzLjQyIDMuNDIgMCAwMTQuNDM4IDAgMy40MiAzLjQyIDAgMDAxLjk0Ni44MDYgMy40MiAzLjQyIDAgMDEzLjEzOCAzLjEzOCAzLjQyIDMuNDIgMCAwMC44MDYgMS45NDYgMy40MiAzLjQyIDAgMDEwIDQuNDM4IDMuNDIgMy40MiAwIDAwLS44MDYgMS45NDYgMy40MiAzLjQyIDAgMDEtMy4xMzggMy4xMzggMy40MiAzLjQyIDAgMDAtMS45NDYuODA2IDMuNDIgMy40MiAwIDAxLTQuNDM4IDAgMy40MiAzLjQyIDAgMDAtMS45NDYtLjgwNiAzLjQyIDMuNDIgMCAwMS0zLjEzOC0zLjEzOCAzLjQyIDMuNDIgMCAwMC0uODA2LTEuOTQ2IDMuNDIgMy40MiAwIDAxMC00LjQzOCAzLjQyIDMuNDIgMCAwMC44MDYtMS45NDYgMy40MiAzLjQyIDAgMDEzLjEzOC0zLjEzOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTguMzY0IDE4LjM2NEE5IDkgMCAwMDUuNjM2IDUuNjM2bTEyLjcyOCAxMi43MjhBOSA5IDAgMDE1LjYzNiA1LjYzNm0xMi43MjggMTIuNzI4TDUuNjM2IDUuNjM2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVCZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5LjQyOCAxNS40MjhhMiAyIDAgMDAtMS4wMjItLjU0N2wtMi4zODctLjQ3N2E2IDYgMCAwMC0zLjg2LjUxN2wtLjMxOC4xNThhNiA2IDAgMDEtMy44Ni41MTdMNi4wNSAxNS4yMWEyIDIgMCAwMC0xLjgwNi41NDdNOCA0aDhsLTEgMXY1LjE3MmEyIDIgMCAwMC41ODYgMS40MTRsNSA1YzEuMjYgMS4yNi4zNjcgMy40MTQtMS40MTUgMy40MTRINC44MjhjLTEuNzgyIDAtMi42NzQtMi4xNTQtMS40MTQtMy40MTRsNS01QTIgMiAwIDAwOSAxMC4xNzJWNUw4IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVCZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxN2g1bC0xLjQwNS0xLjQwNUEyLjAzMiAyLjAzMiAwIDAxMTggMTQuMTU4VjExYTYuMDAyIDYuMDAyIDAgMDAtNC01LjY1OVY1YTIgMiAwIDEwLTQgMHYuMzQxQzcuNjcgNi4xNjUgNiA4LjM4OCA2IDExdjMuMTU5YzAgLjUzOC0uMjE0IDEuMDU1LS41OTUgMS40MzZMNCAxN2g1bTYgMHYxYTMgMyAwIDExLTYgMHYtMW02IDBIOVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQm9va09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDYuMjUzdjEzbTAtMTNDMTAuODMyIDUuNDc3IDkuMjQ2IDUgNy41IDVTNC4xNjggNS40NzcgMyA2LjI1M3YxM0M0LjE2OCAxOC40NzcgNS43NTQgMTggNy41IDE4czMuMzMyLjQ3NyA0LjUgMS4yNTNtMC0xM0MxMy4xNjggNS40NzcgMTQuNzU0IDUgMTYuNSA1YzEuNzQ3IDAgMy4zMzIuNDc3IDQuNSAxLjI1M3YxM0MxOS44MzIgMTguNDc3IDE4LjI0NyAxOCAxNi41IDE4Yy0xLjc0NiAwLTMuMzMyLjQ3Ny00LjUgMS4yNTNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJvb2ttYXJrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiA0djEybC00LTItNCAyVjRNNiAyMGgxMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMkg2YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01IDVhMiAyIDAgMDEyLTJoMTBhMiAyIDAgMDEyIDJ2MTZsLTctMy41TDUgMjFWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUJyaWVmY2FzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjEgMTMuMjU1QTIzLjkzMSAyMy45MzEgMCAwMTEyIDE1Yy0zLjE4MyAwLTYuMjItLjYyLTktMS43NDVNMTYgNlY0YTIgMiAwIDAwLTItMmgtNGEyIDIgMCAwMC0yIDJ2Mm00IDZoLjAxTTUgMjBoMTRhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAxNS41NDZjLS41MjMgMC0xLjA0Ni4xNTEtMS41LjQ1NGEyLjcwNCAyLjcwNCAwIDAxLTMgMCAyLjcwNCAyLjcwNCAwIDAwLTMgMCAyLjcwNCAyLjcwNCAwIDAxLTMgMCAyLjcwNCAyLjcwNCAwIDAwLTMgMCAyLjcwNCAyLjcwNCAwIDAxLTMgMCAyLjcwMSAyLjcwMSAwIDAwLTEuNS0uNDU0TTkgNnYybTMtMnYybTMtMnYyTTkgM2guMDFNMTIgM2guMDFNMTUgM2guMDFNMjEgMjF2LTdhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjdoMTh6bS0zLTl2LTJhMiAyIDAgMDAtMi0ySDhhMiAyIDAgMDAtMiAydjJoMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDYWxjdWxhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDdoNm0wIDEwdi0zbS0zIDNoLjAxTTkgMTdoLjAxTTkgMTRoLjAxTTEyIDE0aC4wMU0xNSAxMWguMDFNMTIgMTFoLjAxTTkgMTFoLjAxTTcgMjFoMTBhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCA3VjNtOCA0VjNtLTkgOGgxME01IDIxaDE0YTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDlhMiAyIDAgMDEyLTJoLjkzYTIgMiAwIDAwMS42NjQtLjg5bC44MTItMS4yMkEyIDIgMCAwMTEwLjA3IDRoMy44NmEyIDIgMCAwMTEuNjY0Ljg5bC44MTIgMS4yMkEyIDIgMCAwMDE4LjA3IDdIMTlhMiAyIDAgMDEyIDJ2OWEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJWOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTNhMyAzIDAgMTEtNiAwIDMgMyAwIDAxNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgOVY3YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyaDJtMiA0aDEwYTIgMiAwIDAwMi0ydi02YTIgMiAwIDAwLTItMkg5YTIgMiAwIDAwLTIgMnY2YTIgMiAwIDAwMiAyem03LTVhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTl2LTZhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjZhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMnptMCAwVjlhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMnYxMG0tNiAwYTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJtMCAwVjVhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMnYxNGEyIDIgMCAwMS0yIDJoLTJhMiAyIDAgMDEtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhcnRQaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDMuMDU1QTkuMDAxIDkuMDAxIDAgMTAyMC45NDUgMTNIMTFWMy4wNTV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIwLjQ4OCA5SDE1VjMuNTEyQTkuMDI1IDkuMDI1IDAgMDEyMC40ODggOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoYXJ0U3F1YXJlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiA4djhtLTQtNXY1bS00LTJ2Mm0tMiA0aDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhdEFsdDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE3IDhoMmEyIDIgMCAwMTIgMnY2YTIgMiAwIDAxLTIgMmgtMnY0bC00LTRIOWExLjk5NCAxLjk5NCAwIDAxLTEuNDE0LS41ODZtMCAwTDExIDE0aDRhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2NmEyIDIgMCAwMDIgMmgydjRsLjU4Ni0uNTg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hhdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCAxMGguMDFNMTIgMTBoLjAxTTE2IDEwaC4wMU05IDE2SDVhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJoMTRhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJoLTVsLTUgNXYtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTJoLjAxTTEyIDEyaC4wMU0xNiAxMmguMDFNMjEgMTJjMCA0LjQxOC00LjAzIDgtOSA4YTkuODYzIDkuODYzIDAgMDEtNC4yNTUtLjk0OUwzIDIwbDEuMzk1LTMuNzJDMy41MTIgMTUuMDQyIDMgMTMuNTc0IDMgMTJjMC00LjQxOCA0LjAzLTggOS04czkgMy41ODIgOSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hlY2tDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTJsMiAyIDQtNG02IDJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNSAxM2w0IDRMMTkgN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hldnJvbkRvdWJsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDEzbC03IDctNy03bTE0LThsLTcgNy03LTdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNoZXZyb25Eb3VibGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMSAxOWwtNy03IDctN204IDE0bC03LTcgNy03XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uRG91YmxlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDVsNyA3LTcgN001IDVsNyA3LTcgN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hldnJvbkRvdWJsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01IDExbDctNyA3IDdNNSAxOWw3LTcgNyA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkgOWwtNyA3LTctN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDE5bC03LTcgNy03XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgNWw3IDctNyA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDaGV2cm9uVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTVsNy03IDcgN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2hpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAzdjJtNi0ydjJNOSAxOXYybTYtMnYyTTUgOUgzbTIgNkgzbTE4LTZoLTJtMiA2aC0yTTcgMTloMTBhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJ6TTkgOWg2djZIOVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xpcGJvYXJkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgNUg3YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMk05IDVhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMk05IDVhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMm0tNiA5bDIgMiA0LTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsaXBib2FyZENvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggNUg2YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMnYtMU04IDVhMiAyIDAgMDAyIDJoMmEyIDIgMCAwMDItMk04IDVhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMm0wIDBoMmEyIDIgMCAwMTIgMnYzbTIgNEgxMG0wIDBsMy0zbS0zIDNsMyAzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDbGlwYm9hcmRMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDVIN2EyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJoLTJNOSA1YTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJNOSA1YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJtLTMgN2gzbS0zIDRoM20tNi00aC4wMU05IDE2aC4wMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ2xpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDVIN2EyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJoLTJNOSA1YTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJNOSA1YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA4djRsMyAzbTYtM2E5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsb3VkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMTZhNCA0IDAgMDEtLjg4LTcuOTAzQTUgNSAwIDExMTUuOSA2TDE2IDZhNSA1IDAgMDExIDkuOU05IDE5bDMgM20wIDBsMy0zbS0zIDNWMTBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsb3VkVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDE2YTQgNCAwIDAxLS44OC03LjkwM0E1IDUgMCAxMTE1LjkgNkwxNiA2YTUgNSAwIDAxMSA5LjlNMTUgMTNsLTMtM20wIDBsLTMgM20zLTN2MTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDE1YTQgNCAwIDAwNCA0aDlhNSA1IDAgMTAtLjEtOS45OTkgNS4wMDIgNS4wMDIgMCAxMC05Ljc4IDIuMDk2QTQuMDAxIDQuMDAxIDAgMDAzIDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgMjBsNC0xNm00IDRsNCA0LTQgNE02IDE2bC00LTQgNC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwLjMyNSA0LjMxN2MuNDI2LTEuNzU2IDIuOTI0LTEuNzU2IDMuMzUgMGExLjcyNCAxLjcyNCAwIDAwMi41NzMgMS4wNjZjMS41NDMtLjk0IDMuMzEuODI2IDIuMzcgMi4zN2ExLjcyNCAxLjcyNCAwIDAwMS4wNjUgMi41NzJjMS43NTYuNDI2IDEuNzU2IDIuOTI0IDAgMy4zNWExLjcyNCAxLjcyNCAwIDAwLTEuMDY2IDIuNTczYy45NCAxLjU0My0uODI2IDMuMzEtMi4zNyAyLjM3YTEuNzI0IDEuNzI0IDAgMDAtMi41NzIgMS4wNjVjLS40MjYgMS43NTYtMi45MjQgMS43NTYtMy4zNSAwYTEuNzI0IDEuNzI0IDAgMDAtMi41NzMtMS4wNjZjLTEuNTQzLjk0LTMuMzEtLjgyNi0yLjM3LTIuMzdhMS43MjQgMS43MjQgMCAwMC0xLjA2NS0yLjU3MmMtMS43NTYtLjQyNi0xLjc1Ni0yLjkyNCAwLTMuMzVhMS43MjQgMS43MjQgMCAwMDEuMDY2LTIuNTczYy0uOTQtMS41NDMuODI2LTMuMzEgMi4zNy0yLjM3Ljk5Ni42MDggMi4yOTYuMDcgMi41NzItMS4wNjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDEyYTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNvbGxlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDExSDVtMTQgMGEyIDIgMCAwMTIgMnY2YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMnYtNmEyIDIgMCAwMTItMm0xNCAwVjlhMiAyIDAgMDAtMi0yTTUgMTFWOWEyIDIgMCAwMTItMm0wIDBWNWEyIDIgMCAwMTItMmg2YTIgMiAwIDAxMiAydjJNNyA3aDEwXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDb2xvclN3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyAyMWE0IDQgMCAwMS00LTRWNWEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjEyYTQgNCAwIDAxLTQgNHptMCAwaDEyYTIgMiAwIDAwMi0ydi00YTIgMiAwIDAwLTItMmgtMi4zNDNNMTEgNy4zNDNsMS42NTctMS42NTdhMiAyIDAgMDEyLjgyOCAwbDIuODI5IDIuODI5YTIgMiAwIDAxMCAyLjgyOGwtOC40ODYgOC40ODVNNyAxN2guMDFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUNyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgMTBoMThNNyAxNWgxbTQgMGgxbS03IDRoMTJhMyAzIDAgMDAzLTNWOGEzIDMgMCAwMC0zLTNINmEzIDMgMCAwMC0zIDN2OGEzIDMgMCAwMDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1YmVUcmFuc3BhcmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTQgMTBsLTIgMW0wIDBsLTItMW0yIDF2Mi41TTIwIDdsLTIgMW0yLTFsLTItMW0yIDF2Mi41TTE0IDRsLTItMS0yIDFNNCA3bDItMU00IDdsMiAxTTQgN3YyLjVNMTIgMjFsLTItMW0yIDFsMi0xbS0yIDF2LTIuNU02IDE4bC0yLTF2LTIuNU0xOCAxOGwyLTF2LTIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjAgN2wtOC00LTggNG0xNiAwbC04IDRtOC00djEwbC04IDRtMC0xMEw0IDdtOCA0djEwTTQgN3YxMGw4IDRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5QmFuZ2xhZGVzaGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDExVjlhMiAyIDAgMDAtMi0ybTIgNHY0YTIgMiAwIDEwNCAwdi0xbS00LTNIOW0yIDBoNG02IDFhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVDdXJyZW5jeURvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgOGMtMS42NTcgMC0zIC44OTUtMyAyczEuMzQzIDIgMyAyIDMgLjg5NSAzIDItMS4zNDMgMi0zIDJtMC04YzEuMTEgMCAyLjA4LjQwMiAyLjU5OSAxTTEyIDhWN20wIDF2OG0wIDB2MW0wLTFjLTEuMTEgMC0yLjA4LS40MDItMi41OTktMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5RXVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTQuMTIxIDE1LjUzNmMtMS4xNzEgMS45NTItMy4wNyAxLjk1Mi00LjI0MiAwLTEuMTcyLTEuOTUzLTEuMTcyLTUuMTE5IDAtNy4wNzIgMS4xNzEtMS45NTIgMy4wNy0xLjk1MiA0LjI0MiAwTTggMTAuNWg0bS00IDNoNG05LTEuNWE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5UG91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDlhMiAyIDAgMTAtNCAwdjVhMiAyIDAgMDEtMiAyaDZtLTYtNGg0bTggMGE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5UnVwZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgOGg2bS01IDBhMyAzIDAgMTEwIDZIOWwzIDNtLTMtNmg2bTYgMWE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUN1cnJlbmN5WWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDhsMyA1bTAgMGwzLTVtLTMgNXY0bS0zLTVoNm0tNiAzaDZtNi0zYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lQ3Vyc29yQ2xpY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDE1bC0yIDVMOSA5bDExIDQtNSAyem0wIDBsNSA1TTcuMTg4IDIuMjM5bC43NzcgMi44OTdNNS4xMzYgNy45NjVsLTIuODk4LS43NzdNMTMuOTUgNC4wNWwtMi4xMjIgMi4xMjJtLTUuNjU3IDUuNjU2bC0yLjEyIDIuMTIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEYXRhYmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA3djEwYzAgMi4yMSAzLjU4MiA0IDggNHM4LTEuNzkgOC00VjdNNCA3YzAgMi4yMSAzLjU4MiA0IDggNHM4LTEuNzkgOC00TTQgN2MwLTIuMjEgMy41ODItNCA4LTRzOCAxLjc5IDggNG0wIDVjMCAyLjIxLTMuNTgyIDQtOCA0cy04LTEuNzktOC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEZXNrdG9wQ29tcHV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkuNzUgMTdMOSAyMGwtMSAxaDhsLTEtMS0uNzUtM00zIDEzaDE4TTUgMTdoMTRhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEZXZpY2VNb2JpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDE4aC4wMU04IDIxaDhhMiAyIDAgMDAyLTJWNWEyIDIgMCAwMC0yLTJIOGEyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEZXZpY2VUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDE4aC4wMU03IDIxaDEwYTIgMiAwIDAwMi0yVjVhMiAyIDAgMDAtMi0ySDdhMiAyIDAgMDAtMiAydjE0YTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTNoNm0tMy0zdjZtNSA1SDdhMiAyIDAgMDEtMi0yVjVhMiAyIDAgMDEyLTJoNS41ODZhMSAxIDAgMDEuNzA3LjI5M2w1LjQxNCA1LjQxNGExIDEgMCAwMS4yOTMuNzA3VjE5YTIgMiAwIDAxLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvY3VtZW50RG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDEwdjZtMCAwbC0zLTNtMyAzbDMtM20yIDhIN2EyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg1LjU4NmExIDEgMCAwMS43MDcuMjkzbDUuNDE0IDUuNDE0YTEgMSAwIDAxLjI5My43MDdWMTlhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnREdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggN3Y4YTIgMiAwIDAwMiAyaDZNOCA3VjVhMiAyIDAgMDEyLTJoNC41ODZhMSAxIDAgMDEuNzA3LjI5M2w0LjQxNCA0LjQxNGExIDEgMCAwMS4yOTMuNzA3VjE1YTIgMiAwIDAxLTIgMmgtMk04IDdINmEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoOGEyIDIgMCAwMDItMnYtMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnRSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTNoNm0yIDhIN2EyIDIgMCAwMS0yLTJWNWEyIDIgMCAwMTItMmg1LjU4NmExIDEgMCAwMS43MDcuMjkzbDUuNDE0IDUuNDE0YTEgMSAwIDAxLjI5My43MDdWMTlhMiAyIDAgMDEtMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG9jdW1lbnRSZXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTd2LTJtMyAydi00bTMgNHYtNm0yIDEwSDdhMiAyIDAgMDEtMi0yVjVhMiAyIDAgMDEyLTJoNS41ODZhMSAxIDAgMDEuNzA3LjI5M2w1LjQxNCA1LjQxNGExIDEgMCAwMS4yOTMuNzA3VjE5YTIgMiAwIDAxLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvY3VtZW50U2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMCAyMWg3YTIgMiAwIDAwMi0yVjkuNDE0YTEgMSAwIDAwLS4yOTMtLjcwN2wtNS40MTQtNS40MTRBMSAxIDAgMDAxMi41ODYgM0g3YTIgMiAwIDAwLTIgMnYxMW0wIDVsNC44NzktNC44NzltMCAwYTMgMyAwIDEwNC4yNDMtNC4yNDIgMyAzIDAgMDAtNC4yNDMgNC4yNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb2N1bWVudFRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTJoNm0tNiA0aDZtMiA1SDdhMiAyIDAgMDEtMi0yVjVhMiAyIDAgMDEyLTJoNS41ODZhMSAxIDAgMDEuNzA3LjI5M2w1LjQxNCA1LjQxNGExIDEgMCAwMS4yOTMuNzA3VjE5YTIgMiAwIDAxLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvY3VtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDIxaDEwYTIgMiAwIDAwMi0yVjkuNDE0YTEgMSAwIDAwLS4yOTMtLjcwN2wtNS40MTQtNS40MTRBMSAxIDAgMDAxMi41ODYgM0g3YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZURvdHNDaXJjbGVIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDEyaC4wMU0xMiAxMmguMDFNMTYgMTJoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRG90c0hvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgMTJoLjAxTTEyIDEyaC4wMU0xOSAxMmguMDFNNiAxMmExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bTcgMGExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bTcgMGExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb3RzVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDV2LjAxTTEyIDEydi4wMU0xMiAxOXYuMDFNMTIgNmExIDEgMCAxMTAtMiAxIDEgMCAwMTAgMnptMCA3YTEgMSAwIDExMC0yIDEgMSAwIDAxMCAyem0wIDdhMSAxIDAgMTEwLTIgMSAxIDAgMDEwIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCAxNnYxYTMgMyAwIDAwMyAzaDEwYTMgMyAwIDAwMy0zdi0xbS00LTRsLTQgNG0wIDBsLTQtNG00IDRWNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRHVwbGljYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDE2SDZhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJoOGEyIDIgMCAwMTIgMnYybS02IDEyaDhhMiAyIDAgMDAyLTJ2LThhMiAyIDAgMDAtMi0yaC04YTIgMiAwIDAwLTIgMnY4YTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRW1vamlIYXBweSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTQuODI4IDE0LjgyOGE0IDQgMCAwMS01LjY1NiAwTTkgMTBoLjAxTTE1IDEwaC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUVtb2ppU2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05LjE3MiAxNi4xNzJhNCA0IDAgMDE1LjY1NiAwTTkgMTBoLjAxTTE1IDEwaC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUV4Y2xhbWF0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA4djRtMCA0aC4wMU0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA5djJtMCA0aC4wMW0tNi45MzggNGgxMy44NTZjMS41NCAwIDIuNTAyLTEuNjY3IDEuNzMyLTNMMTMuNzMyIDRjLS43Ny0xLjMzMy0yLjY5NC0xLjMzMy0zLjQ2NCAwTDMuMzQgMTZjLS43NyAxLjMzMy4xOTIgMyAxLjczMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRXh0ZXJuYWxMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMCA2SDZhMiAyIDAgMDAtMiAydjEwYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0ydi00TTE0IDRoNm0wIDB2Nm0wLTZMMTAgMTRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUV5ZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMuODc1IDE4LjgyNUExMC4wNSAxMC4wNSAwIDAxMTIgMTljLTQuNDc4IDAtOC4yNjgtMi45NDMtOS41NDMtN2E5Ljk3IDkuOTcgMCAwMTEuNTYzLTMuMDI5bTUuODU4LjkwOGEzIDMgMCAxMTQuMjQzIDQuMjQzTTkuODc4IDkuODc4bDQuMjQyIDQuMjQyTTkuODggOS44OGwtMy4yOS0zLjI5bTcuNTMyIDcuNTMybDMuMjkgMy4yOU0zIDNsMy41OSAzLjU5bTAgMEE5Ljk1MyA5Ljk1MyAwIDAxMTIgNWM0LjQ3OCAwIDguMjY4IDIuOTQzIDkuNTQzIDdhMTAuMDI1IDEwLjAyNSAwIDAxLTQuMTMyIDUuNDExbTAgMEwyMSAyMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRXllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxMmEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIuNDU4IDEyQzMuNzMyIDcuOTQzIDcuNTIzIDUgMTIgNWM0LjQ3OCAwIDguMjY4IDIuOTQzIDkuNTQyIDctMS4yNzQgNC4wNTctNS4wNjQgNy05LjU0MiA3LTQuNDc3IDAtOC4yNjgtMi45NDMtOS41NDItN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZhc3RGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMS45MzMgMTIuOGExIDEgMCAwMDAtMS42TDYuNiA3LjJBMSAxIDAgMDA1IDh2OGExIDEgMCAwMDEuNi44bDUuMzMzLTR6TTE5LjkzMyAxMi44YTEgMSAwIDAwMC0xLjZsLTUuMzMzLTRBMSAxIDAgMDAxMyA4djhhMSAxIDAgMDAxLjYuOGw1LjMzMy00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyA0djE2TTE3IDR2MTZNMyA4aDRtMTAgMGg0TTMgMTJoMThNMyAxNmg0bTEwIDBoNE00IDIwaDE2YTEgMSAwIDAwMS0xVjVhMSAxIDAgMDAtMS0xSDRhMSAxIDAgMDAtMSAxdjE0YTEgMSAwIDAwMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmlsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDRhMSAxIDAgMDExLTFoMTZhMSAxIDAgMDExIDF2Mi41ODZhMSAxIDAgMDEtLjI5My43MDdsLTYuNDE0IDYuNDE0YTEgMSAwIDAwLS4yOTMuNzA3VjE3bC00IDR2LTYuNTg2YTEgMSAwIDAwLS4yOTMtLjcwN0wzLjI5MyA3LjI5M0ExIDEgMCAwMTMgNi41ODZWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZpbmdlclByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAxMWMwIDMuNTE3LTEuMDA5IDYuNzk5LTIuNzUzIDkuNTcxbS0zLjQ0LTIuMDRsLjA1NC0uMDlBMTMuOTE2IDEzLjkxNiAwIDAwOCAxMWE0IDQgMCAxMTggMGMwIDEuMDE3LS4wNyAyLjAxOS0uMjAzIDNtLTIuMTE4IDYuODQ0QTIxLjg4IDIxLjg4IDAgMDAxNS4xNzEgMTdtMy44MzkgMS4xMzJjLjY0NS0yLjI2Ni45OS00LjY1OS45OS03LjEzMkE4IDggMCAwMDggNC4wN00zIDE1LjM2NGMuNjQtMS4zMTkgMS0yLjggMS00LjM2NCAwLTEuNDU3LjM5LTIuODIzIDEuMDctNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmlyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcuNjU3IDE4LjY1N0E4IDggMCAwMTYuMzQzIDcuMzQzUzcgOSA5IDEwYzAtMiAuNS01IDIuOTg2LTdDMTQgNSAxNi4wOSA1Ljc3NyAxNy42NTYgNy4zNDNBNy45NzUgNy45NzUgMCAwMTIwIDEzYTcuOTc1IDcuOTc1IDAgMDEtMi4zNDMgNS42NTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkuODc5IDE2LjEyMUEzIDMgMCAxMDEyLjAxNSAxMUwxMSAxNEg5YzAgLjc2OC4yOTMgMS41MzYuODc5IDIuMTIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAyMXYtNG0wIDBWNWEyIDIgMCAwMTItMmg2LjVsMSAxSDIxbC0zIDYgMyA2aC04LjVsLTEtMUg1YTIgMiAwIDAwLTIgMnptOS0xMy41VjlcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZvbGRlckFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxM2g2bS0zLTN2Nm0tOSAxVjdhMiAyIDAgMDEyLTJoNmwyIDJoNmEyIDIgMCAwMTIgMnY4YTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZvbGRlckRvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAxMHY2bTAgMGwtMy0zbTMgM2wzLTNNMyAxN1Y3YTIgMiAwIDAxMi0yaDZsMiAyaDZhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01IDE5YTIgMiAwIDAxLTItMlY3YTIgMiAwIDAxMi0yaDRsMiAyaDRhMiAyIDAgMDEyIDJ2MU01IDE5aDE0YTIgMiAwIDAwMi0ydi01YTIgMiAwIDAwLTItMkg5YTIgMiAwIDAwLTIgMnY1YTIgMiAwIDAxLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUZvbGRlclJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxM2g2TTMgMTdWN2EyIDIgMCAwMTItMmg2bDIgMmg2YTIgMiAwIDAxMiAydjhhMiAyIDAgMDEtMiAySDVhMiAyIDAgMDEtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDd2MTBhMiAyIDAgMDAyIDJoMTRhMiAyIDAgMDAyLTJWOWEyIDIgMCAwMC0yLTJoLTZsLTItMkg1YTIgMiAwIDAwLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUdpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDh2MTNtMC0xM1Y2YTIgMiAwIDExMiAyaC0yem0wIDBWNS41QTIuNSAyLjUgMCAxMDkuNSA4SDEyem0tNyA0aDE0TTUgMTJhMiAyIDAgMTEwLTRoMTRhMiAyIDAgMTEwIDRNNSAxMnY3YTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0ydi03XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVHbG9iZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjEgMTJhOSA5IDAgMDEtOSA5bTktOWE5IDkgMCAwMC05LTltOSA5SDNtOSA5YTkgOSAwIDAxLTktOW05IDljMS42NTcgMCAzLTQuMDMgMy05cy0xLjM0My05LTMtOW0wIDE4Yy0xLjY1NyAwLTMtNC4wMy0zLTlzMS4zNDMtOSAzLTltLTkgOWE5IDkgMCAwMTktOVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lR2xvYmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMuMDU1IDExSDVhMiAyIDAgMDEyIDJ2MWEyIDIgMCAwMDIgMiAyIDIgMCAwMTIgMnYyLjk0NU04IDMuOTM1VjUuNUEyLjUgMi41IDAgMDAxMC41IDhoLjVhMiAyIDAgMDEyIDIgMiAyIDAgMTA0IDAgMiAyIDAgMDEyLTJoMS4wNjRNMTUgMjAuNDg4VjE4YTIgMiAwIDAxMi0yaDMuMDY0TTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNyAxMS41VjE0bTAtMi41di02YTEuNSAxLjUgMCAxMTMgMG0tMyA2YTEuNSAxLjUgMCAwMC0zIDB2MmE3LjUgNy41IDAgMDAxNSAwdi01YTEuNSAxLjUgMCAwMC0zIDBtLTYtM1YxMW0wLTUuNXYtMWExLjUgMS41IDAgMDEzIDB2MW0wIDBWMTFtMC01LjVhMS41IDEuNSAwIDAxMyAwdjNtMCAwVjExXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVIYXNodGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDIwbDQtMTZtMiAxNmw0LTE2TTYgOWgxNE00IDE1aDE0XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNC4zMTggNi4zMThhNC41IDQuNSAwIDAwMCA2LjM2NEwxMiAyMC4zNjRsNy42ODItNy42ODJhNC41IDQuNSAwIDAwLTYuMzY0LTYuMzY0TDEyIDcuNjM2bC0xLjMxOC0xLjMxOGE0LjUgNC41IDAgMDAtNi4zNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUhvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgMTJsMi0ybTAgMGw3LTcgNyA3TTUgMTB2MTBhMSAxIDAgMDAxIDFoM20xMC0xMWwyIDJtLTItMnYxMGExIDEgMCAwMS0xIDFoLTNtLTYgMGExIDEgMCAwMDEtMXYtNGExIDEgMCAwMTEtMWgyYTEgMSAwIDAxMSAxdjRhMSAxIDAgMDAxIDFtLTYgMGg2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVJZGVudGlmaWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgNkg1YTIgMiAwIDAwLTIgMnY5YTIgMiAwIDAwMiAyaDE0YTIgMiAwIDAwMi0yVjhhMiAyIDAgMDAtMi0yaC01bS00IDBWNWEyIDIgMCAxMTQgMHYxbS00IDBhMiAyIDAgMTA0IDBtLTUgOGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHptMCAwYzEuMzA2IDAgMi40MTcuODM1IDIuODMgMk05IDE0YTMuMDAxIDMuMDAxIDAgMDAtMi44MyAyTTE1IDExaDNtLTMgNGgyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVJbmJveEluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDRINmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJoLTJtLTQtMXY4bTAgMGwzLTNtLTMgM0w5IDhtLTUgNWgyLjU4NmExIDEgMCAwMS43MDcuMjkzbDIuNDE0IDIuNDE0YTEgMSAwIDAwLjcwNy4yOTNoMy4xNzJhMSAxIDAgMDAuNzA3LS4yOTNsMi40MTQtMi40MTRhMSAxIDAgMDEuNzA3LS4yOTNIMjBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMCAxM1Y2YTIgMiAwIDAwLTItMkg2YTIgMiAwIDAwLTIgMnY3bTE2IDB2NWEyIDIgMCAwMS0yIDJINmEyIDIgMCAwMS0yLTJ2LTVtMTYgMGgtMi41ODZhMSAxIDAgMDAtLjcwNy4yOTNsLTIuNDE0IDIuNDE0YTEgMSAwIDAxLS43MDcuMjkzaC0zLjE3MmExIDEgMCAwMS0uNzA3LS4yOTNsLTIuNDE0LTIuNDE0QTEgMSAwIDAwNi41ODYgMTNINFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lSW5mb3JtYXRpb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDE2aC0xdi00aC0xbTEtNGguMDFNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1IDdhMiAyIDAgMDEyIDJtNCAwYTYgNiAwIDAxLTcuNzQzIDUuNzQzTDExIDE3SDl2Mkg3djJINGExIDEgMCAwMS0xLTF2LTIuNTg2YTEgMSAwIDAxLjI5My0uNzA3bDUuOTY0LTUuOTY0QTYgNiAwIDExMjEgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxpYnJhcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTR2M200LTN2M200LTN2M00zIDIxaDE4TTMgMTBoMThNMyA3bDktNCA5IDRNNCAxMGgxNnYxMUg0VjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTGlnaHRCdWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05LjY2MyAxN2g0LjY3M00xMiAzdjFtNi4zNjQgMS42MzZsLS43MDcuNzA3TTIxIDEyaC0xTTQgMTJIM20zLjM0My01LjY1N2wtLjcwNy0uNzA3bTIuODI4IDkuOWE1IDUgMCAxMTcuMDcyIDBsLS41NDguNTQ3QTMuMzc0IDMuMzc0IDAgMDAxNCAxOC40NjlWMTlhMiAyIDAgMTEtNCAwdi0uNTMxYzAtLjg5NS0uMzU2LTEuNzU0LS45ODgtMi4zODZsLS41NDgtLjU0N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxpZ2h0bmluZ0JvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDEwVjNMNCAxNGg3djdsOS0xMWgtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzLjgyOCAxMC4xNzJhNCA0IDAgMDAtNS42NTYgMGwtNCA0YTQgNCAwIDEwNS42NTYgNS42NTZsMS4xMDItMS4xMDFtLS43NTgtNC44OTlhNCA0IDAgMDA1LjY1NiAwbDQtNGE0IDQgMCAwMC01LjY1Ni01LjY1NmwtMS4xIDEuMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTG9jYXRpb25NYXJrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE3LjY1NyAxNi42NTdMMTMuNDE0IDIwLjlhMS45OTggMS45OTggMCAwMS0yLjgyNyAwbC00LjI0NC00LjI0M2E4IDggMCAxMTExLjMxNCAwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxMWEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVMb2NrQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiAxNXYybS02IDRoMTJhMiAyIDAgMDAyLTJ2LTZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjZhMiAyIDAgMDAyIDJ6bTEwLTEwVjdhNCA0IDAgMDAtOCAwdjRoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZUxvY2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDExVjdhNCA0IDAgMTE4IDBtLTQgOHYybS02IDRoMTJhMiAyIDAgMDAyLTJ2LTZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjZhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVMb2dpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgMTZsLTQtNG0wIDBsNC00bS00IDRoMTRtLTUgNHYxYTMgMyAwIDAxLTMgM0g2YTMgMyAwIDAxLTMtM1Y3YTMgMyAwIDAxMy0zaDdhMyAzIDAgMDEzIDN2MVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTG9nb3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNyAxNmw0LTRtMCAwbC00LTRtNCA0SDdtNiA0djFhMyAzIDAgMDEtMyAzSDZhMyAzIDAgMDEtMy0zVjdhMyAzIDAgMDEzLTNoNGEzIDMgMCAwMTMgM3YxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNYWlsT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAxOXYtOC45M2EyIDIgMCAwMS44OS0xLjY2NGw3LTQuNjY2YTIgMiAwIDAxMi4yMiAwbDcgNC42NjZBMiAyIDAgMDEyMSAxMC4wN1YxOU0zIDE5YTIgMiAwIDAwMiAyaDE0YTIgMiAwIDAwMi0yTTMgMTlsNi43NS00LjVNMjEgMTlsLTYuNzUtNC41TTMgMTBsNi43NSA0LjVNMjEgMTBsLTYuNzUgNC41bTAgMGwtMS4xNC43NmEyIDIgMCAwMS0yLjIyIDBsLTEuMTQtLjc2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDhsNy44OSA1LjI2YTIgMiAwIDAwMi4yMiAwTDIxIDhNNSAxOWgxNGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMkg1YTIgMiAwIDAwLTIgMnYxMGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAyMGwtNS40NDctMi43MjRBMSAxIDAgMDEzIDE2LjM4MlY1LjYxOGExIDEgMCAwMTEuNDQ3LS44OTRMOSA3bTAgMTNsNi0zbS02IDNWN202IDEwbDQuNTUzIDIuMjc2QTEgMSAwIDAwMjEgMTguMzgyVjcuNjE4YTEgMSAwIDAwLS41NTMtLjg5NEwxNSA0bTAgMTNWNG0wIDBMOSA3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNZW51QWx0MSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA2aDE2TTQgMTJoOG0tOCA2aDE2XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNZW51QWx0MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNZW51QWx0MyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA2aDE2TTQgMTJoMTZtLTcgNmg3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNZW51QWx0NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNCA4aDE2TTQgMTZoMTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgNmgxNk00IDEyaDE2TTQgMThoMTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE5IDExYTcgNyAwIDAxLTcgN20wIDBhNyA3IDAgMDEtNy03bTcgN3Y0bTAgMEg4bTQgMGg0bS00LThhMyAzIDAgMDEtMy0zVjVhMyAzIDAgMTE2IDB2NmEzIDMgMCAwMS0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVNaW51c0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUgMTJIOW0xMiAwYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTWludXNTbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTggMTJINlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIwIDEySDRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZU1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIwLjM1NCAxNS4zNTRBOSA5IDAgMDE4LjY0NiAzLjY0NiA5LjAwMyA5LjAwMyAwIDAwMTIgMjFhOS4wMDMgOS4wMDMgMCAwMDguMzU0LTUuNjQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTXVzaWNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk05IDE5VjZsMTItM3YxM005IDE5YzAgMS4xMDUtMS4zNDMgMi0zIDJzLTMtLjg5NS0zLTIgMS4zNDMtMiAzLTIgMyAuODk1IDMgMnptMTItM2MwIDEuMTA1LTEuMzQzIDItMyAycy0zLS44OTUtMy0yIDEuMzQzLTIgMy0yIDMgLjg5NSAzIDJ6TTkgMTBsMTItM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOSAyMEg1YTIgMiAwIDAxLTItMlY2YTIgMiAwIDAxMi0yaDEwYTIgMiAwIDAxMiAydjFtMiAxM2EyIDIgMCAwMS0yLTJWN20yIDEzYTIgMiAwIDAwMi0yVjlhMiAyIDAgMDAtMi0yaC0ybS00LTNIOU03IDE2aDZNNyA4aDZ2NEg3Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVPZmZpY2VCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTkgMjFWNWEyIDIgMCAwMC0yLTJIN2EyIDIgMCAwMC0yIDJ2MTZtMTQgMGgybS0yIDBoLTVtLTkgMEgzbTIgMGg1TTkgN2gxbS0xIDRoMW00LTRoMW0tMSA0aDFtLTUgMTB2LTVhMSAxIDAgMDExLTFoMmExIDEgMCAwMTEgMXY1bS00IDBoNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGFwZXJBaXJwbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgMTlsOSAyLTktMTgtOSAxOCA5LTJ6bTAgMHYtOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGFwZXJDbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNS4xNzIgN2wtNi41ODYgNi41ODZhMiAyIDAgMTAyLjgyOCAyLjgyOGw2LjQxNC02LjU4NmE0IDQgMCAwMC01LjY1Ni01LjY1NmwtNi40MTUgNi41ODVhNiA2IDAgMTA4LjQ4NiA4LjQ4NkwyMC41IDEzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTAgOXY2bTQtNnY2bTctM2E5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBlbmNpbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgNUg2YTIgMiAwIDAwLTIgMnYxMWEyIDIgMCAwMDIgMmgxMWEyIDIgMCAwMDItMnYtNW0tMS40MTQtOS40MTRhMiAyIDAgMTEyLjgyOCAyLjgyOEwxMS44MjggMTVIOXYtMi44MjhsOC41ODYtOC41ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQZW5jaWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE1LjIzMiA1LjIzMmwzLjUzNiAzLjUzNm0tMi4wMzYtNS4wMzZhMi41IDIuNSAwIDExMy41MzYgMy41MzZMNi41IDIxLjAzNkgzdi0zLjU3MkwxNi43MzIgMy43MzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQaG9uZUluY29taW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAzbC02IDZtMCAwVjRtMCA1aDVNNSAzYTIgMiAwIDAwLTIgMnYxYzAgOC4yODQgNi43MTYgMTUgMTUgMTVoMWEyIDIgMCAwMDItMnYtMy4yOGExIDEgMCAwMC0uNjg0LS45NDhsLTQuNDkzLTEuNDk4YTEgMSAwIDAwLTEuMjEuNTAybC0xLjEzIDIuMjU3YTExLjA0MiAxMS4wNDIgMCAwMS01LjUxNi01LjUxN2wyLjI1Ny0xLjEyOGExIDEgMCAwMC41MDItMS4yMUw5LjIyOCAzLjY4M0ExIDEgMCAwMDguMjc5IDNINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBob25lTWlzc2VkQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgOGwyLTJtMCAwbDItMm0tMiAybC0yLTJtMiAybDIgMk01IDNhMiAyIDAgMDAtMiAydjFjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNWgxYTIgMiAwIDAwMi0ydi0zLjI4YTEgMSAwIDAwLS42ODQtLjk0OGwtNC40OTMtMS40OThhMSAxIDAgMDAtMS4yMS41MDJsLTEuMTMgMi4yNTdhMTEuMDQyIDExLjA0MiAwIDAxLTUuNTE2LTUuNTE3bDIuMjU3LTEuMTI4YTEgMSAwIDAwLjUwMi0xLjIxTDkuMjI4IDMuNjgzQTEgMSAwIDAwOC4yNzkgM0g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGhvbmVPdXRnb2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgM2g1bTAgMHY1bTAtNWwtNiA2TTUgM2EyIDIgMCAwMC0yIDJ2MWMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDFhMiAyIDAgMDAyLTJ2LTMuMjhhMSAxIDAgMDAtLjY4NC0uOTQ4bC00LjQ5My0xLjQ5OGExIDEgMCAwMC0xLjIxLjUwMmwtMS4xMyAyLjI1N2ExMS4wNDIgMTEuMDQyIDAgMDEtNS41MTYtNS41MTdsMi4yNTctMS4xMjhhMSAxIDAgMDAuNTAyLTEuMjFMOS4yMjggMy42ODNBMSAxIDAgMDA4LjI3OSAzSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyA1YTIgMiAwIDAxMi0yaDMuMjhhMSAxIDAgMDEuOTQ4LjY4NGwxLjQ5OCA0LjQ5M2ExIDEgMCAwMS0uNTAyIDEuMjFsLTIuMjU3IDEuMTNhMTEuMDQyIDExLjA0MiAwIDAwNS41MTYgNS41MTZsMS4xMy0yLjI1N2ExIDEgMCAwMTEuMjEtLjUwMmw0LjQ5MyAxLjQ5OGExIDEgMCAwMS42ODQuOTQ5VjE5YTIgMiAwIDAxLTIgMmgtMUM5LjcxNiAyMSAzIDE0LjI4NCAzIDZWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBob3RvZ3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgMTZsNC41ODYtNC41ODZhMiAyIDAgMDEyLjgyOCAwTDE2IDE2bS0yLTJsMS41ODYtMS41ODZhMiAyIDAgMDEyLjgyOCAwTDIwIDE0bS02LTZoLjAxTTYgMjBoMTJhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJINmEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNC43NTIgMTEuMTY4bC0zLjE5Ny0yLjEzMkExIDEgMCAwMDEwIDkuODd2NC4yNjNhMSAxIDAgMDAxLjU1NS44MzJsMy4xOTctMi4xMzJhMSAxIDAgMDAwLTEuNjY0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBsdXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyIDl2M20wIDB2M20wLTNoM20tMyAwSDltMTIgMGE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVBsdXNTbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgNnY2bTAgMHY2bTAtNmg2bS02IDBINlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgNHYxNm04LThINFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUHJlc2VudGF0aW9uQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggMTN2LTFtNCAxdi0zbTQgM1Y4TTggMjFsNC00IDQgNE0zIDRoMThNNCA0aDE2djEyYTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUHJlc2VudGF0aW9uQ2hhcnRMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk03IDEybDMtMyAzIDMgNC00TTggMjFsNC00IDQgNE0zIDRoMThNNCA0aDE2djEyYTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUHJpbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMTdoMmEyIDIgMCAwMDItMnYtNGEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2NGEyIDIgMCAwMDIgMmgybTIgNGg2YTIgMiAwIDAwMi0ydi00YTIgMiAwIDAwLTItMkg5YTIgMiAwIDAwLTIgMnY0YTIgMiAwIDAwMiAyem04LTEyVjVhMiAyIDAgMDAtMi0ySDlhMiAyIDAgMDAtMiAydjRoMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVQdXp6bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExIDRhMiAyIDAgMTE0IDB2MWExIDEgMCAwMDEgMWgzYTEgMSAwIDAxMSAxdjNhMSAxIDAgMDEtMSAxaC0xYTIgMiAwIDEwMCA0aDFhMSAxIDAgMDExIDF2M2ExIDEgMCAwMS0xIDFoLTNhMSAxIDAgMDEtMS0xdi0xYTIgMiAwIDEwLTQgMHYxYTEgMSAwIDAxLTEgMUg3YTEgMSAwIDAxLTEtMXYtM2ExIDEgMCAwMC0xLTFINGEyIDIgMCAxMTAtNGgxYTEgMSAwIDAwMS0xVjdhMSAxIDAgMDExLTFoM2ExIDEgMCAwMDEtMVY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA0djFtNiAxMWgybS02IDBoLTJ2NG0wLTExdjNtMCAwaC4wMU0xMiAxMmg0LjAxTTE2IDIwaDRNNCAxMmg0bTEyIDBoLjAxTTUgOGgyYTEgMSAwIDAwMS0xVjVhMSAxIDAgMDAtMS0xSDVhMSAxIDAgMDAtMSAxdjJhMSAxIDAgMDAxIDF6bTEyIDBoMmExIDEgMCAwMDEtMVY1YTEgMSAwIDAwLTEtMWgtMmExIDEgMCAwMC0xIDF2MmExIDEgMCAwMDEgMXpNNSAyMGgyYTEgMSAwIDAwMS0xdi0yYTEgMSAwIDAwLTEtMUg1YTEgMSAwIDAwLTEgMXYyYTEgMSAwIDAwMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUXVlc3Rpb25NYXJrQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04LjIyOCA5Yy41NDktMS4xNjUgMi4wMy0yIDMuNzcyLTIgMi4yMSAwIDQgMS4zNDMgNCAzIDAgMS40LTEuMjc4IDIuNTc1LTMuMDA2IDIuOTA3LS41NDIuMTA0LS45OTQuNTQtLjk5NCAxLjA5M20wIDNoLjAxTTIxIDEyYTkgOSAwIDExLTE4IDAgOSA5IDAgMDExOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUmVjZWlwdFJlZnVuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgMTV2LTFhNCA0IDAgMDAtNC00SDhtMCAwbDMgM20tMy0zbDMtM205IDE0VjVhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjE2bDQtMiA0IDIgNC0yIDQgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVJlY2VpcHRUYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTRsNi02bS01LjUuNWguMDFtNC45OSA1aC4wMU0xOSAyMVY1YTIgMiAwIDAwLTItMkg3YTIgMiAwIDAwLTIgMnYxNmwzLjUtMiAzLjUgMiAzLjUtMiAzLjUgMnpNMTAgOC41YS41LjUgMCAxMS0xIDAgLjUuNSAwIDAxMSAwem01IDVhLjUuNSAwIDExLTEgMCAuNS41IDAgMDExIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVSZWZyZXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDR2NWguNTgybTE1LjM1NiAyQTguMDAxIDguMDAxIDAgMDA0LjU4MiA5bTAgMEg5bTExIDExdi01aC0uNTgxbTAgMGE4LjAwMyA4LjAwMyAwIDAxLTE1LjM1Ny0ybTE1LjM1NyAySDE1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVSZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAxMGgxMGE4IDggMCAwMTggOHYyTTMgMTBsNiA2bS02LTZsNi02XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVSZXdpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEyLjA2NiAxMS4yYTEgMSAwIDAwMCAxLjZsNS4zMzQgNEExIDEgMCAwMDE5IDE2VjhhMSAxIDAgMDAtMS42LS44bC01LjMzMyA0ek00LjA2NiAxMS4yYTEgMSAwIDAwMCAxLjZsNS4zMzQgNEExIDEgMCAwMDExIDE2VjhhMSAxIDAgMDAtMS42LS44bC01LjMzNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lUnNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk02IDVjNy4xOCAwIDEzIDUuODIgMTMgMTNNNiAxMWE3IDcgMCAwMTcgN20tNiAwYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNhdmVBcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMTZ2MmEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJ2LTdhMiAyIDAgMDEyLTJoMm0zLTRIOWEyIDIgMCAwMC0yIDJ2N2EyIDIgMCAwMDIgMmgxMGEyIDIgMCAwMDItMlY3YTIgMiAwIDAwLTItMmgtMW0tMSA0bC0zIDNtMCAwbC0zLTNtMyAzVjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggN0g1YTIgMiAwIDAwLTIgMnY5YTIgMiAwIDAwMiAyaDE0YTIgMiAwIDAwMi0yVjlhMiAyIDAgMDAtMi0yaC0zbS0xIDRsLTMgM20wIDBsLTMtM20zIDNWNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTMgNmwzIDFtMCAwbC0zIDlhNS4wMDIgNS4wMDIgMCAwMDYuMDAxIDBNNiA3bDMgOU02IDdsNi0ybTYgMmwzLTFtLTMgMWwtMyA5YTUuMDAyIDUuMDAyIDAgMDA2LjAwMSAwTTE4IDdsMyA5bS0zLTlsLTYtMm0wLTJ2Mm0wIDE2VjVtMCAxNkg5bTMgMGgzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTQuMTIxIDE0LjEyMUwxOSAxOW0tNy03bDctN20tNyA3bC0yLjg3OSAyLjg3OU0xMiAxMkw5LjEyMSA5LjEyMW0wIDUuNzU4YTMgMyAwIDEwLTQuMjQzIDQuMjQzIDMgMyAwIDAwNC4yNDMtNC4yNDN6bTAtNS43NThhMyAzIDAgMTAtNC4yNDMtNC4yNDMgMyAzIDAgMDA0LjI0MyA0LjI0M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNlYXJjaENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOCAxNmwyLjg3OS0yLjg3OW0wIDBhMyAzIDAgMTA0LjI0My00LjI0MiAzIDMgMCAwMC00LjI0MyA0LjI0MnpNMjEgMTJhOSA5IDAgMTEtMTggMCA5IDkgMCAwMTE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDIxbC02LTZtMi01YTcgNyAwIDExLTE0IDAgNyA3IDAgMDExNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2VsZWN0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggOWw0LTQgNCA0bTAgNmwtNCA0LTQtNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU2VydmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01IDEyaDE0TTUgMTJhMiAyIDAgMDEtMi0yVjZhMiAyIDAgMDEyLTJoMTRhMiAyIDAgMDEyIDJ2NGEyIDIgMCAwMS0yIDJNNSAxMmEyIDIgMCAwMC0yIDJ2NGEyIDIgMCAwMDIgMmgxNGEyIDIgMCAwMDItMnYtNGEyIDIgMCAwMC0yLTJtLTItNGguMDFNMTcgMTZoLjAxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOC42ODQgMTMuMzQyQzguODg2IDEyLjkzOCA5IDEyLjQ4MiA5IDEyYzAtLjQ4Mi0uMTE0LS45MzgtLjMxNi0xLjM0Mm0wIDIuNjg0YTMgMyAwIDExMC0yLjY4NG0wIDIuNjg0bDYuNjMyIDMuMzE2bS02LjYzMi02bDYuNjMyLTMuMzE2bTAgMGEzIDMgMCAxMDUuMzY3LTIuNjg0IDMgMyAwIDAwLTUuMzY3IDIuNjg0em0wIDkuMzE2YTMgMyAwIDEwNS4zNjggMi42ODQgMyAzIDAgMDAtNS4zNjgtMi42ODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTaGllbGRDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMmwyIDIgNC00bTUuNjE4LTQuMDE2QTExLjk1NSAxMS45NTUgMCAwMTEyIDIuOTQ0YTExLjk1NSAxMS45NTUgMCAwMS04LjYxOCAzLjA0QTEyLjAyIDEyLjAyIDAgMDAzIDljMCA1LjU5MSAzLjgyNCAxMC4yOSA5IDExLjYyMiA1LjE3Ni0xLjMzMiA5LTYuMDMgOS0xMS42MjIgMC0xLjA0Mi0uMTMzLTIuMDUyLS4zODItMy4wMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTaGllbGRFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjAuNjE4IDUuOTg0QTExLjk1NSAxMS45NTUgMCAwMTEyIDIuOTQ0YTExLjk1NSAxMS45NTUgMCAwMS04LjYxOCAzLjA0QTEyLjAyIDEyLjAyIDAgMDAzIDljMCA1LjU5MSAzLjgyNCAxMC4yOSA5IDExLjYyMiA1LjE3Ni0xLjMzMiA5LTYuMDMgOS0xMS42MjIgMC0xLjA0Mi0uMTMzLTIuMDUyLS4zODItMy4wMTZ6TTEyIDl2Mm0wIDRoLjAxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTaG9wcGluZ0JhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTYgMTFWN2E0IDQgMCAwMC04IDB2NE01IDloMTRsMSAxMkg0TDUgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAzaDJsLjQgMk03IDEzaDEwbDQtOEg1LjRNNyAxM0w1LjQgNU03IDEzbC0yLjI5MyAyLjI5M2MtLjYzLjYzLS4xODQgMS43MDcuNzA3IDEuNzA3SDE3bTAgMGEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHptLTggMmEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTb3J0QXNjZW5kaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0zIDRoMTNNMyA4aDltLTkgNGg2bTQgMGw0LTRtMCAwbDQgNG0tNC00djEyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTb3J0RGVzY2VuZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyA0aDEzTTMgOGg5bS05IDRoOW01LTR2MTJtMCAwbC00LTRtNCA0bDQtNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3BhcmtsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTUgM3Y0TTMgNWg0TTYgMTd2NG0tMi0yaDRtNS0xNmwyLjI4NiA2Ljg1N0wyMSAxMmwtNS43MTQgMi4xNDNMMTMgMjFsLTIuMjg2LTYuODU3TDUgMTJsNS43MTQtMi4xNDNMMTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVNwZWFrZXJwaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTEgNS44ODJWMTkuMjRhMS43NiAxLjc2IDAgMDEtMy40MTcuNTkybC0yLjE0Ny02LjE1TTE4IDEzYTMgMyAwIDEwMC02TTUuNDM2IDEzLjY4M0E0LjAwMSA0LjAwMSAwIDAxNyA2aDEuODMyYzQuMSAwIDcuNjI1LTEuMjM0IDkuMTY4LTN2MTRjLTEuNTQzLTEuNzY2LTUuMDY3LTMtOS4xNjgtM0g3YTMuOTg4IDMuOTg4IDAgMDEtMS41NjQtLjMxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVN0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTExLjA0OSAyLjkyN2MuMy0uOTIxIDEuNjAzLS45MjEgMS45MDIgMGwxLjUxOSA0LjY3NGExIDEgMCAwMC45NS42OWg0LjkxNWMuOTY5IDAgMS4zNzEgMS4yNC41ODggMS44MWwtMy45NzYgMi44ODhhMSAxIDAgMDAtLjM2MyAxLjExOGwxLjUxOCA0LjY3NGMuMy45MjItLjc1NSAxLjY4OC0xLjUzOCAxLjExOGwtMy45NzYtMi44ODhhMSAxIDAgMDAtMS4xNzYgMGwtMy45NzYgMi44ODhjLS43ODMuNTctMS44MzgtLjE5Ny0xLjUzOC0xLjExOGwxLjUxOC00LjY3NGExIDEgMCAwMC0uMzYzLTEuMTE4bC0zLjk3Ni0yLjg4OGMtLjc4NC0uNTctLjM4LTEuODEuNTg4LTEuODFoNC45MTRhMSAxIDAgMDAuOTUxLS42OWwxLjUxOS00LjY3NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVN0YXR1c09mZmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE4LjM2NCA1LjYzNmE5IDkgMCAwMTAgMTIuNzI4bTAgMGwtMi44MjktMi44MjltMi44MjkgMi44MjlMMjEgMjFNMTUuNTM2IDguNDY0YTUgNSAwIDAxMCA3LjA3Mm0wIDBsLTIuODI5LTIuODI5bS00LjI0MyAyLjgyOWE0Ljk3OCA0Ljk3OCAwIDAxLTEuNDE0LTIuODNtLTEuNDE0IDUuNjU4YTkgOSAwIDAxLTIuMTY3LTkuMjM4bTcuODI0IDIuMTY3YTEgMSAwIDExMS40MTQgMS40MTRtLTEuNDE0LTEuNDE0TDMgM204LjI5MyA4LjI5M2wxLjQxNCAxLjQxNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3RhdHVzT25saW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk01LjYzNiAxOC4zNjRhOSA5IDAgMDEwLTEyLjcyOG0xMi43MjggMGE5IDkgMCAwMTAgMTIuNzI4bS05LjktMi44MjlhNSA1IDAgMDEwLTcuMDdtNy4wNzIgMGE1IDUgMCAwMTAgNy4wN00xMyAxMmExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOSAxMGExIDEgMCAwMTEtMWg0YTEgMSAwIDAxMSAxdjRhMSAxIDAgMDEtMSAxaC00YTEgMSAwIDAxLTEtMXYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVN1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTIgM3YxbTAgMTZ2MW05LTloLTFNNCAxMkgzbTE1LjM2NCA2LjM2NGwtLjcwNy0uNzA3TTYuMzQzIDYuMzQzbC0uNzA3LS43MDdtMTIuNzI4IDBsLS43MDcuNzA3TTYuMzQzIDE3LjY1N2wtLjcwNy43MDdNMTYgMTJhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3VwcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTguMzY0IDUuNjM2bC0zLjUzNiAzLjUzNm0wIDUuNjU2bDMuNTM2IDMuNTM2TTkuMTcyIDkuMTcyTDUuNjM2IDUuNjM2bTMuNTM2IDkuMTkybC0zLjUzNiAzLjUzNk0yMSAxMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHptLTUgMGE0IDQgMCAxMS04IDAgNCA0IDAgMDE4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVTd2l0Y2hIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk04IDdoMTJtMCAwbC00LTRtNCA0bC00IDRtMCA2SDRtMCAwbDQgNG0tNC00bDQtNFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lU3dpdGNoVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgMTZWNG0wIDBMMyA4bTQtNGw0IDRtNiAwdjEybTAgMGw0LTRtLTQgNGwtNC00XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyAxMGgxOE0zIDE0aDE4bS05LTR2OG0tNyAwaDE0YTIgMiAwIDAwMi0yVjhhMiAyIDAgMDAtMi0ySDVhMiAyIDAgMDAtMiAydjhhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTcgN2guMDFNNyAzaDVjLjUxMiAwIDEuMDI0LjE5NSAxLjQxNC41ODZsNyA3YTIgMiAwIDAxMCAyLjgyOGwtNyA3YTIgMiAwIDAxLTIuODI4IDBsLTctN0ExLjk5NCAxLjk5NCAwIDAxMyAxMlY3YTQgNCAwIDAxNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVGVtcGxhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgNWExIDEgMCAwMTEtMWgxNGExIDEgMCAwMTEgMXYyYTEgMSAwIDAxLTEgMUg1YTEgMSAwIDAxLTEtMVY1ek00IDEzYTEgMSAwIDAxMS0xaDZhMSAxIDAgMDExIDF2NmExIDEgMCAwMS0xIDFINWExIDEgMCAwMS0xLTF2LTZ6TTE2IDEzYTEgMSAwIDAxMS0xaDJhMSAxIDAgMDExIDF2NmExIDEgMCAwMS0xIDFoLTJhMSAxIDAgMDEtMS0xdi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTggOWwzIDMtMyAzbTUgMGgzTTUgMjBoMTRhMiAyIDAgMDAyLTJWNmEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2MTJhMiAyIDAgMDAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUaHVtYkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwIDE0SDUuMjM2YTIgMiAwIDAxLTEuNzg5LTIuODk0bDMuNS03QTIgMiAwIDAxOC43MzYgM2g0LjAxOGEyIDIgMCAwMS40ODUuMDZsMy43Ni45NG0tNyAxMHY1YTIgMiAwIDAwMiAyaC4wOTZjLjUgMCAuOTA1LS40MDUuOTA1LS45MDQgMC0uNzE1LjIxMS0xLjQxMy42MDgtMi4wMDhMMTcgMTNWNG0tNyAxMGgybTUtMTBoMmEyIDIgMCAwMTIgMnY2YTIgMiAwIDAxLTIgMmgtMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUaHVtYlVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNCAxMGg0Ljc2NGEyIDIgMCAwMTEuNzg5IDIuODk0bC0zLjUgN0EyIDIgMCAwMTE1LjI2MyAyMWgtNC4wMTdjLS4xNjMgMC0uMzI2LS4wMi0uNDg1LS4wNkw3IDIwbTctMTBWNWEyIDIgMCAwMC0yLTJoLS4wOTVjLS41IDAtLjkwNS40MDUtLjkwNS45MDUgMCAuNzE0LS4yMTEgMS40MTItLjYwOCAyLjAwNkw3IDExdjltNy0xMGgtMk03IDIwSDVhMiAyIDAgMDEtMi0ydi02YTIgMiAwIDAxMi0yaDIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVGlja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSA1djJtMCA0djJtMCA0djJNNSA1YTIgMiAwIDAwLTIgMnYzYTIgMiAwIDExMCA0djNhMiAyIDAgMDAyIDJoMTRhMiAyIDAgMDAyLTJ2LTNhMiAyIDAgMTEwLTRWN2EyIDIgMCAwMC0yLTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRyYW5zbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMyA1aDEyTTkgM3YybTEuMDQ4IDkuNUExOC4wMjIgMTguMDIyIDAgMDE2LjQxMiA5bTYuMDg4IDloN00xMSAyMWw1LTEwIDUgMTBNMTIuNzUxIDVDMTEuNzgzIDEwLjc3IDguMDcgMTUuNjEgMyAxOC4xMjlcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOSA3bC0uODY3IDEyLjE0MkEyIDIgMCAwMTE2LjEzOCAyMUg3Ljg2MmEyIDIgMCAwMS0xLjk5NS0xLjg1OEw1IDdtNSA0djZtNC02djZtMS0xMFY0YTEgMSAwIDAwLTEtMWgtNGExIDEgMCAwMC0xIDF2M000IDdoMTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVRyZW5kaW5nRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTMgMTdoOG0wIDBWOW0wIDhsLTgtOC00IDQtNi02XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVUcmVuZGluZ1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMyA3aDhtMCAwdjhtMC04bC04IDgtNC00LTYgNlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVHJ1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTdhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwek0xOSAxN2EyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEzIDE2VjZhMSAxIDAgMDAtMS0xSDRhMSAxIDAgMDAtMSAxdjEwYTEgMSAwIDAwMSAxaDFtOC0xYTEgMSAwIDAxLTEgMUg5bTQtMVY4YTEgMSAwIDAxMS0xaDIuNTg2YTEgMSAwIDAxLjcwNy4yOTNsMy40MTQgMy40MTRhMSAxIDAgMDEuMjkzLjcwN1YxNmExIDEgMCAwMS0xIDFoLTFtLTYtMWExIDEgMCAwMDEgMWgxTTUgMTdhMiAyIDAgMTA0IDBtLTQgMGEyIDIgMCAxMTQgMG02IDBhMiAyIDAgMTA0IDBtLTQgMGEyIDIgMCAxMTQgMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDE2djFhMyAzIDAgMDAzIDNoMTBhMyAzIDAgMDAzLTN2LTFtLTQtOGwtNC00bTAgMEw4IDhtNC00djEyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVVc2VyQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xOCA5djNtMCAwdjNtMC0zaDNtLTMgMGgtM20tMi01YTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpNMyAyMGE2IDYgMCAwMTEyIDB2MUgzdi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNS4xMjEgMTcuODA0QTEzLjkzNyAxMy45MzcgMCAwMTEyIDE2YzIuNSAwIDQuODQ3LjY1NSA2Ljg3OSAxLjgwNE0xNSAxMGEzIDMgMCAxMS02IDAgMyAzIDAgMDE2IDB6bTYgMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVVzZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMjBoNXYtMmEzIDMgMCAwMC01LjM1Ni0xLjg1N00xNyAyMEg3bTEwIDB2LTJjMC0uNjU2LS4xMjYtMS4yODMtLjM1Ni0xLjg1N003IDIwSDJ2LTJhMyAzIDAgMDE1LjM1Ni0xLjg1N003IDIwdi0yYzAtLjY1Ni4xMjYtMS4yODMuMzU2LTEuODU3bTAgMGE1LjAwMiA1LjAwMiAwIDAxOS4yODggME0xNSA3YTMgMyAwIDExLTYgMCAzIDMgMCAwMTYgMHptNiAzYTIgMiAwIDExLTQgMCAyIDIgMCAwMTQgMHpNNyAxMGEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVVc2VyUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMyA3YTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpNOSAxNGE2IDYgMCAwMC02IDZ2MWgxMnYtMWE2IDYgMCAwMC02LTZ6TTIxIDEyaC02XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNiA3YTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpNMTIgMTRhNyA3IDAgMDAtNyA3aDE0YTcgNyAwIDAwLTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVVzZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xMiA0LjM1NGE0IDQgMCAxMTAgNS4yOTJNMTUgMjFIM3YtMWE2IDYgMCAwMTEyIDB2MXptMCAwaDZ2LTFhNiA2IDAgMDAtOS01LjE5N00xMyA3YTQgNCAwIDExLTggMCA0IDQgMCAwMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZhcmlhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00Ljg3MSA0QTE3LjkyNiAxNy45MjYgMCAwMDMgMTJjMCAyLjg3NC42NzMgNS41OSAxLjg3MSA4bTE0LjEzIDBhMTcuOTI2IDE3LjkyNiAwIDAwMS44Ny04YzAtMi44NzQtLjY3My01LjU5LTEuODctOE05IDloMS4yNDZhMSAxIDAgMDEuOTYxLjcyNWwxLjU4NiA1LjU1YTEgMSAwIDAwLjk2MS43MjVIMTVtMS03aC0uMDhhMiAyIDAgMDAtMS41MTkuNjk4TDkuNiAxNS4zMDJBMiAyIDAgMDE4LjA4IDE2SDhcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZpZGVvQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk0xNSAxMGw0LjU1My0yLjI3NkExIDEgMCAwMTIxIDguNjE4djYuNzY0YTEgMSAwIDAxLTEuNDQ3Ljg5NEwxNSAxNE01IDE4aDhhMiAyIDAgMDAyLTJWOGEyIDIgMCAwMC0yLTJINWEyIDIgMCAwMC0yIDJ2OGEyIDIgMCAwMDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZpZXdCb2FyZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTkgMTdWN20wIDEwYTIgMiAwIDAxLTIgMkg1YTIgMiAwIDAxLTItMlY3YTIgMiAwIDAxMi0yaDJhMiAyIDAgMDEyIDJtMCAxMGEyIDIgMCAwMDIgMmgyYTIgMiAwIDAwMi0yTTkgN2EyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAybTAgMTBWN20wIDEwYTIgMiAwIDAwMiAyaDJhMiAyIDAgMDAyLTJWN2EyIDIgMCAwMC0yLTJoLTJhMiAyIDAgMDAtMiAyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVWaWV3R3JpZEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTcgMTR2Nm0tMy0zaDZNNiAxMGgyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjJhMiAyIDAgMDAyIDJ6bTEwIDBoMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMmgtMmEyIDIgMCAwMC0yIDJ2MmEyIDIgMCAwMDIgMnpNNiAyMGgyYTIgMiAwIDAwMi0ydi0yYTIgMiAwIDAwLTItMkg2YTIgMiAwIDAwLTIgMnYyYTIgMiAwIDAwMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lVmlld0dyaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTQgNmEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0yVjZ6TTE0IDZhMiAyIDAgMDEyLTJoMmEyIDIgMCAwMTIgMnYyYTIgMiAwIDAxLTIgMmgtMmEyIDIgMCAwMS0yLTJWNnpNNCAxNmEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAySDZhMiAyIDAgMDEtMi0ydi0yek0xNCAxNmEyIDIgMCAwMTItMmgyYTIgMiAwIDAxMiAydjJhMiAyIDAgMDEtMiAyaC0yYTIgMiAwIDAxLTItMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZpZXdMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwiLFwic3Ryb2tlV2lkdGhcIjpcIjJcIixcInN0cm9rZVwiOlwiY3VycmVudENvbG9yXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcInN0cm9rZUxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2VMaW5lam9pblwiOlwicm91bmRcIixcImRcIjpcIk00IDZoMTZNNCAxMGgxNk00IDE0aDE2TTQgMThoMTZcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVZvbHVtZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNNS41ODYgMTVINGExIDEgMCAwMS0xLTF2LTRhMSAxIDAgMDExLTFoMS41ODZsNC43MDctNC43MDdDMTAuOTIzIDMuNjYzIDEyIDQuMTA5IDEyIDV2MTRjMCAuODkxLTEuMDc3IDEuMzM3LTEuNzA3LjcwN0w1LjU4NiAxNXpcIixcImNsaXBSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTE3IDE0bDItMm0wIDBsMi0ybS0yIDJsLTItMm0yIDJsMiAyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBIaU91dGxpbmVWb2x1bWVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMTUuNTM2IDguNDY0YTUgNSAwIDAxMCA3LjA3Mm0yLjgyOC05LjlhOSA5IDAgMDEwIDEyLjcyOE01LjU4NiAxNUg0YTEgMSAwIDAxLTEtMXYtNGExIDEgMCAwMTEtMWgxLjU4Nmw0LjcwNy00LjcwN0MxMC45MjMgMy42NjMgMTIgNC4xMDkgMTIgNXYxNGMwIC44OTEtMS4wNzcgMS4zMzctMS43MDcuNzA3TDUuNTg2IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gSGlPdXRsaW5lV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNOC4xMTEgMTYuNDA0YTUuNSA1LjUgMCAwMTcuNzc4IDBNMTIgMjBoLjAxbS03LjA4LTcuMDcxYzMuOTA0LTMuOTA1IDEwLjIzNi0zLjkwNSAxNC4xNDEgME0xLjM5NCA5LjM5M2M1Ljg1Ny01Ljg1NyAxNS4zNTUtNS44NTcgMjEuMjEzIDBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVhDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTEwIDE0bDItMm0wIDBsMi0ybS0yIDJsLTItMm0yIDJsMiAybTctMmE5IDkgMCAxMS0xOCAwIDkgOSAwIDAxMTggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTYgMThMMTggNk02IDZsMTIgMTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVpvb21JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcInN0cm9rZVdpZHRoXCI6XCIyXCIsXCJzdHJva2VcIjpcImN1cnJlbnRDb2xvclwiLFwiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJzdHJva2VMaW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlTGluZWpvaW5cIjpcInJvdW5kXCIsXCJkXCI6XCJNMjEgMjFsLTYtNm0yLTVhNyA3IDAgMTEtMTQgMCA3IDcgMCAwMTE0IDB6TTEwIDd2M20wIDB2M20wLTNoM20tMyAwSDdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEhpT3V0bGluZVpvb21PdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwidmlld0JveFwiOlwiMCAwIDI0IDI0XCIsXCJzdHJva2VXaWR0aFwiOlwiMlwiLFwic3Ryb2tlXCI6XCJjdXJyZW50Q29sb3JcIixcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wic3Ryb2tlTGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZUxpbmVqb2luXCI6XCJyb3VuZFwiLFwiZFwiOlwiTTIxIDIxbC02LTZtMi01YTcgNyAwIDExLTE0IDAgNyA3IDAgMDExNCAwek0xMyAxMEg3XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbiIsImNvbnN0IENMQVNTX1BBUlRfU0VQQVJBVE9SID0gJy0nO1xuZnVuY3Rpb24gY3JlYXRlQ2xhc3NHcm91cFV0aWxzKGNvbmZpZykge1xuICBjb25zdCBjbGFzc01hcCA9IGNyZWF0ZUNsYXNzTWFwKGNvbmZpZyk7XG4gIGNvbnN0IHtcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBzLFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1xuICB9ID0gY29uZmlnO1xuICBmdW5jdGlvbiBnZXRDbGFzc0dyb3VwSWQoY2xhc3NOYW1lKSB7XG4gICAgY29uc3QgY2xhc3NQYXJ0cyA9IGNsYXNzTmFtZS5zcGxpdChDTEFTU19QQVJUX1NFUEFSQVRPUik7XG4gICAgLy8gQ2xhc3NlcyBsaWtlIGAtaW5zZXQtMWAgcHJvZHVjZSBhbiBlbXB0eSBzdHJpbmcgYXMgZmlyc3QgY2xhc3NQYXJ0LiBXZSBhc3N1bWUgdGhhdCBjbGFzc2VzIGZvciBuZWdhdGl2ZSB2YWx1ZXMgYXJlIHVzZWQgY29ycmVjdGx5IGFuZCByZW1vdmUgaXQgZnJvbSBjbGFzc1BhcnRzLlxuICAgIGlmIChjbGFzc1BhcnRzWzBdID09PSAnJyAmJiBjbGFzc1BhcnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgY2xhc3NQYXJ0cy5zaGlmdCgpO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0R3JvdXBSZWN1cnNpdmUoY2xhc3NQYXJ0cywgY2xhc3NNYXApIHx8IGdldEdyb3VwSWRGb3JBcmJpdHJhcnlQcm9wZXJ0eShjbGFzc05hbWUpO1xuICB9XG4gIGZ1bmN0aW9uIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkcyhjbGFzc0dyb3VwSWQsIGhhc1Bvc3RmaXhNb2RpZmllcikge1xuICAgIGNvbnN0IGNvbmZsaWN0cyA9IGNvbmZsaWN0aW5nQ2xhc3NHcm91cHNbY2xhc3NHcm91cElkXSB8fCBbXTtcbiAgICBpZiAoaGFzUG9zdGZpeE1vZGlmaWVyICYmIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1tjbGFzc0dyb3VwSWRdKSB7XG4gICAgICByZXR1cm4gWy4uLmNvbmZsaWN0cywgLi4uY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF1dO1xuICAgIH1cbiAgICByZXR1cm4gY29uZmxpY3RzO1xuICB9XG4gIHJldHVybiB7XG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0R3JvdXBSZWN1cnNpdmUoY2xhc3NQYXJ0cywgY2xhc3NQYXJ0T2JqZWN0KSB7XG4gIGlmIChjbGFzc1BhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBjbGFzc1BhcnRPYmplY3QuY2xhc3NHcm91cElkO1xuICB9XG4gIGNvbnN0IGN1cnJlbnRDbGFzc1BhcnQgPSBjbGFzc1BhcnRzWzBdO1xuICBjb25zdCBuZXh0Q2xhc3NQYXJ0T2JqZWN0ID0gY2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmdldChjdXJyZW50Q2xhc3NQYXJ0KTtcbiAgY29uc3QgY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0ID0gbmV4dENsYXNzUGFydE9iamVjdCA/IGdldEdyb3VwUmVjdXJzaXZlKGNsYXNzUGFydHMuc2xpY2UoMSksIG5leHRDbGFzc1BhcnRPYmplY3QpIDogdW5kZWZpbmVkO1xuICBpZiAoY2xhc3NHcm91cEZyb21OZXh0Q2xhc3NQYXJ0KSB7XG4gICAgcmV0dXJuIGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydDtcbiAgfVxuICBpZiAoY2xhc3NQYXJ0T2JqZWN0LnZhbGlkYXRvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBjbGFzc1Jlc3QgPSBjbGFzc1BhcnRzLmpvaW4oQ0xBU1NfUEFSVF9TRVBBUkFUT1IpO1xuICByZXR1cm4gY2xhc3NQYXJ0T2JqZWN0LnZhbGlkYXRvcnMuZmluZCgoe1xuICAgIHZhbGlkYXRvclxuICB9KSA9PiB2YWxpZGF0b3IoY2xhc3NSZXN0KSk/LmNsYXNzR3JvdXBJZDtcbn1cbmNvbnN0IGFyYml0cmFyeVByb3BlcnR5UmVnZXggPSAvXlxcWyguKylcXF0kLztcbmZ1bmN0aW9uIGdldEdyb3VwSWRGb3JBcmJpdHJhcnlQcm9wZXJ0eShjbGFzc05hbWUpIHtcbiAgaWYgKGFyYml0cmFyeVByb3BlcnR5UmVnZXgudGVzdChjbGFzc05hbWUpKSB7XG4gICAgY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUgPSBhcmJpdHJhcnlQcm9wZXJ0eVJlZ2V4LmV4ZWMoY2xhc3NOYW1lKVsxXTtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGFyYml0cmFyeVByb3BlcnR5Q2xhc3NOYW1lPy5zdWJzdHJpbmcoMCwgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUuaW5kZXhPZignOicpKTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIC8vIEkgdXNlIHR3byBkb3RzIGhlcmUgYmVjYXVzZSBvbmUgZG90IGlzIHVzZWQgYXMgcHJlZml4IGZvciBjbGFzcyBncm91cHMgaW4gcGx1Z2luc1xuICAgICAgcmV0dXJuICdhcmJpdHJhcnkuLicgKyBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogRXhwb3J0ZWQgZm9yIHRlc3Rpbmcgb25seVxuICovXG5mdW5jdGlvbiBjcmVhdGVDbGFzc01hcChjb25maWcpIHtcbiAgY29uc3Qge1xuICAgIHRoZW1lLFxuICAgIHByZWZpeFxuICB9ID0gY29uZmlnO1xuICBjb25zdCBjbGFzc01hcCA9IHtcbiAgICBuZXh0UGFydDogbmV3IE1hcCgpLFxuICAgIHZhbGlkYXRvcnM6IFtdXG4gIH07XG4gIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMgPSBnZXRQcmVmaXhlZENsYXNzR3JvdXBFbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNvbmZpZy5jbGFzc0dyb3VwcyksIHByZWZpeCk7XG4gIHByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMuZm9yRWFjaCgoW2NsYXNzR3JvdXBJZCwgY2xhc3NHcm91cF0pID0+IHtcbiAgICBwcm9jZXNzQ2xhc3Nlc1JlY3Vyc2l2ZWx5KGNsYXNzR3JvdXAsIGNsYXNzTWFwLCBjbGFzc0dyb3VwSWQsIHRoZW1lKTtcbiAgfSk7XG4gIHJldHVybiBjbGFzc01hcDtcbn1cbmZ1bmN0aW9uIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0dyb3VwSWQsIHRoZW1lKSB7XG4gIGNsYXNzR3JvdXAuZm9yRWFjaChjbGFzc0RlZmluaXRpb24gPT4ge1xuICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0ID0gY2xhc3NEZWZpbml0aW9uID09PSAnJyA/IGNsYXNzUGFydE9iamVjdCA6IGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0RlZmluaXRpb24pO1xuICAgICAgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0LmNsYXNzR3JvdXBJZCA9IGNsYXNzR3JvdXBJZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpc1RoZW1lR2V0dGVyKGNsYXNzRGVmaW5pdGlvbikpIHtcbiAgICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0RlZmluaXRpb24odGhlbWUpLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgdmFsaWRhdG9yOiBjbGFzc0RlZmluaXRpb24sXG4gICAgICAgIGNsYXNzR3JvdXBJZFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikuZm9yRWFjaCgoW2tleSwgY2xhc3NHcm91cF0pID0+IHtcbiAgICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGtleSksIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgIH0pO1xuICB9KTtcbn1cbmZ1bmN0aW9uIGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBwYXRoKSB7XG4gIGxldCBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0ID0gY2xhc3NQYXJ0T2JqZWN0O1xuICBwYXRoLnNwbGl0KENMQVNTX1BBUlRfU0VQQVJBVE9SKS5mb3JFYWNoKHBhdGhQYXJ0ID0+IHtcbiAgICBpZiAoIWN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuaGFzKHBhdGhQYXJ0KSkge1xuICAgICAgY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5zZXQocGF0aFBhcnQsIHtcbiAgICAgICAgbmV4dFBhcnQ6IG5ldyBNYXAoKSxcbiAgICAgICAgdmFsaWRhdG9yczogW11cbiAgICAgIH0pO1xuICAgIH1cbiAgICBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0ID0gY3VycmVudENsYXNzUGFydE9iamVjdC5uZXh0UGFydC5nZXQocGF0aFBhcnQpO1xuICB9KTtcbiAgcmV0dXJuIGN1cnJlbnRDbGFzc1BhcnRPYmplY3Q7XG59XG5mdW5jdGlvbiBpc1RoZW1lR2V0dGVyKGZ1bmMpIHtcbiAgcmV0dXJuIGZ1bmMuaXNUaGVtZUdldHRlcjtcbn1cbmZ1bmN0aW9uIGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoY2xhc3NHcm91cEVudHJpZXMsIHByZWZpeCkge1xuICBpZiAoIXByZWZpeCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRW50cmllcztcbiAgfVxuICByZXR1cm4gY2xhc3NHcm91cEVudHJpZXMubWFwKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cCA9IGNsYXNzR3JvdXAubWFwKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGNsYXNzRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikubWFwKChba2V5LCB2YWx1ZV0pID0+IFtwcmVmaXggKyBrZXksIHZhbHVlXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzRGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXNzR3JvdXBJZCwgcHJlZml4ZWRDbGFzc0dyb3VwXTtcbiAgfSk7XG59XG5cbi8vIExSVSBjYWNoZSBpbnNwaXJlZCBmcm9tIGhhc2hscnUgKGh0dHBzOi8vZ2l0aHViLmNvbS9kb21pbmljdGFyci9oYXNobHJ1L2Jsb2IvdjEuMC40L2luZGV4LmpzKSBidXQgb2JqZWN0IHJlcGxhY2VkIHdpdGggTWFwIHRvIGltcHJvdmUgcGVyZm9ybWFuY2VcbmZ1bmN0aW9uIGNyZWF0ZUxydUNhY2hlKG1heENhY2hlU2l6ZSkge1xuICBpZiAobWF4Q2FjaGVTaXplIDwgMSkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgIHNldDogKCkgPT4ge31cbiAgICB9O1xuICB9XG4gIGxldCBjYWNoZVNpemUgPSAwO1xuICBsZXQgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGxldCBwcmV2aW91c0NhY2hlID0gbmV3IE1hcCgpO1xuICBmdW5jdGlvbiB1cGRhdGUoa2V5LCB2YWx1ZSkge1xuICAgIGNhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICBjYWNoZVNpemUrKztcbiAgICBpZiAoY2FjaGVTaXplID4gbWF4Q2FjaGVTaXplKSB7XG4gICAgICBjYWNoZVNpemUgPSAwO1xuICAgICAgcHJldmlvdXNDYWNoZSA9IGNhY2hlO1xuICAgICAgY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSkge1xuICAgICAgbGV0IHZhbHVlID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoKHZhbHVlID0gcHJldmlvdXNDYWNoZS5nZXQoa2V5KSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbmNvbnN0IElNUE9SVEFOVF9NT0RJRklFUiA9ICchJztcbmZ1bmN0aW9uIGNyZWF0ZVBhcnNlQ2xhc3NOYW1lKGNvbmZpZykge1xuICBjb25zdCB7XG4gICAgc2VwYXJhdG9yLFxuICAgIGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGlzU2VwYXJhdG9yU2luZ2xlQ2hhcmFjdGVyID0gc2VwYXJhdG9yLmxlbmd0aCA9PT0gMTtcbiAgY29uc3QgZmlyc3RTZXBhcmF0b3JDaGFyYWN0ZXIgPSBzZXBhcmF0b3JbMF07XG4gIGNvbnN0IHNlcGFyYXRvckxlbmd0aCA9IHNlcGFyYXRvci5sZW5ndGg7XG4gIC8vIHBhcnNlQ2xhc3NOYW1lIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi92My4yLjIvc3JjL3V0aWwvc3BsaXRBdFRvcExldmVsT25seS5qc1xuICBmdW5jdGlvbiBwYXJzZUNsYXNzTmFtZShjbGFzc05hbWUpIHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBbXTtcbiAgICBsZXQgYnJhY2tldERlcHRoID0gMDtcbiAgICBsZXQgbW9kaWZpZXJTdGFydCA9IDA7XG4gICAgbGV0IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjbGFzc05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBsZXQgY3VycmVudENoYXJhY3RlciA9IGNsYXNzTmFtZVtpbmRleF07XG4gICAgICBpZiAoYnJhY2tldERlcHRoID09PSAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciAmJiAoaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgfHwgY2xhc3NOYW1lLnNsaWNlKGluZGV4LCBpbmRleCArIHNlcGFyYXRvckxlbmd0aCkgPT09IHNlcGFyYXRvcikpIHtcbiAgICAgICAgICBtb2RpZmllcnMucHVzaChjbGFzc05hbWUuc2xpY2UobW9kaWZpZXJTdGFydCwgaW5kZXgpKTtcbiAgICAgICAgICBtb2RpZmllclN0YXJ0ID0gaW5kZXggKyBzZXBhcmF0b3JMZW5ndGg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICcvJykge1xuICAgICAgICAgIHBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gaW5kZXg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnWycpIHtcbiAgICAgICAgYnJhY2tldERlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICddJykge1xuICAgICAgICBicmFja2V0RGVwdGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllciA9IG1vZGlmaWVycy5sZW5ndGggPT09IDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWUuc3Vic3RyaW5nKG1vZGlmaWVyU3RhcnQpO1xuICAgIGNvbnN0IGhhc0ltcG9ydGFudE1vZGlmaWVyID0gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdGFydHNXaXRoKElNUE9SVEFOVF9NT0RJRklFUik7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGhhc0ltcG9ydGFudE1vZGlmaWVyID8gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdWJzdHJpbmcoMSkgOiBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyO1xuICAgIGNvbnN0IG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAmJiBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA+IG1vZGlmaWVyU3RhcnQgPyBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAtIG1vZGlmaWVyU3RhcnQgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVycyxcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb25cbiAgICB9O1xuICB9XG4gIGlmIChleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBwYXJzZUNsYXNzTmFtZUV4cGVyaW1lbnRhbChjbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZSh7XG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgcGFyc2VDbGFzc05hbWVcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2xhc3NOYW1lO1xufVxuLyoqXG4gKiBTb3J0cyBtb2RpZmllcnMgYWNjb3JkaW5nIHRvIGZvbGxvd2luZyBzY2hlbWE6XG4gKiAtIFByZWRlZmluZWQgbW9kaWZpZXJzIGFyZSBzb3J0ZWQgYWxwaGFiZXRpY2FsbHlcbiAqIC0gV2hlbiBhbiBhcmJpdHJhcnkgdmFyaWFudCBhcHBlYXJzLCBpdCBtdXN0IGJlIHByZXNlcnZlZCB3aGljaCBtb2RpZmllcnMgYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgaXRcbiAqL1xuZnVuY3Rpb24gc29ydE1vZGlmaWVycyhtb2RpZmllcnMpIHtcbiAgaWYgKG1vZGlmaWVycy5sZW5ndGggPD0gMSkge1xuICAgIHJldHVybiBtb2RpZmllcnM7XG4gIH1cbiAgY29uc3Qgc29ydGVkTW9kaWZpZXJzID0gW107XG4gIGxldCB1bnNvcnRlZE1vZGlmaWVycyA9IFtdO1xuICBtb2RpZmllcnMuZm9yRWFjaChtb2RpZmllciA9PiB7XG4gICAgY29uc3QgaXNBcmJpdHJhcnlWYXJpYW50ID0gbW9kaWZpZXJbMF0gPT09ICdbJztcbiAgICBpZiAoaXNBcmJpdHJhcnlWYXJpYW50KSB7XG4gICAgICBzb3J0ZWRNb2RpZmllcnMucHVzaCguLi51bnNvcnRlZE1vZGlmaWVycy5zb3J0KCksIG1vZGlmaWVyKTtcbiAgICAgIHVuc29ydGVkTW9kaWZpZXJzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHVuc29ydGVkTW9kaWZpZXJzLnB1c2gobW9kaWZpZXIpO1xuICAgIH1cbiAgfSk7XG4gIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSk7XG4gIHJldHVybiBzb3J0ZWRNb2RpZmllcnM7XG59XG5mdW5jdGlvbiBjcmVhdGVDb25maWdVdGlscyhjb25maWcpIHtcbiAgcmV0dXJuIHtcbiAgICBjYWNoZTogY3JlYXRlTHJ1Q2FjaGUoY29uZmlnLmNhY2hlU2l6ZSksXG4gICAgcGFyc2VDbGFzc05hbWU6IGNyZWF0ZVBhcnNlQ2xhc3NOYW1lKGNvbmZpZyksXG4gICAgLi4uY3JlYXRlQ2xhc3NHcm91cFV0aWxzKGNvbmZpZylcbiAgfTtcbn1cbmNvbnN0IFNQTElUX0NMQVNTRVNfUkVHRVggPSAvXFxzKy87XG5mdW5jdGlvbiBtZXJnZUNsYXNzTGlzdChjbGFzc0xpc3QsIGNvbmZpZ1V0aWxzKSB7XG4gIGNvbnN0IHtcbiAgICBwYXJzZUNsYXNzTmFtZSxcbiAgICBnZXRDbGFzc0dyb3VwSWQsXG4gICAgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzXG4gIH0gPSBjb25maWdVdGlscztcbiAgLyoqXG4gICAqIFNldCBvZiBjbGFzc0dyb3VwSWRzIGluIGZvbGxvd2luZyBmb3JtYXQ6XG4gICAqIGB7aW1wb3J0YW50TW9kaWZpZXJ9e3ZhcmlhbnRNb2RpZmllcnN9e2NsYXNzR3JvdXBJZH1gXG4gICAqIEBleGFtcGxlICdmbG9hdCdcbiAgICogQGV4YW1wbGUgJ2hvdmVyOmZvY3VzOmJnLWNvbG9yJ1xuICAgKiBAZXhhbXBsZSAnbWQ6IXByJ1xuICAgKi9cbiAgY29uc3QgY2xhc3NHcm91cHNJbkNvbmZsaWN0ID0gbmV3IFNldCgpO1xuICByZXR1cm4gY2xhc3NMaXN0LnRyaW0oKS5zcGxpdChTUExJVF9DTEFTU0VTX1JFR0VYKS5tYXAob3JpZ2luYWxDbGFzc05hbWUgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGlmaWVycyxcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb25cbiAgICB9ID0gcGFyc2VDbGFzc05hbWUob3JpZ2luYWxDbGFzc05hbWUpO1xuICAgIGxldCBoYXNQb3N0Zml4TW9kaWZpZXIgPSBCb29sZWFuKG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24pO1xuICAgIGxldCBjbGFzc0dyb3VwSWQgPSBnZXRDbGFzc0dyb3VwSWQoaGFzUG9zdGZpeE1vZGlmaWVyID8gYmFzZUNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbikgOiBiYXNlQ2xhc3NOYW1lKTtcbiAgICBpZiAoIWNsYXNzR3JvdXBJZCkge1xuICAgICAgaWYgKCFoYXNQb3N0Zml4TW9kaWZpZXIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpc1RhaWx3aW5kQ2xhc3M6IGZhbHNlLFxuICAgICAgICAgIG9yaWdpbmFsQ2xhc3NOYW1lXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjbGFzc0dyb3VwSWQgPSBnZXRDbGFzc0dyb3VwSWQoYmFzZUNsYXNzTmFtZSk7XG4gICAgICBpZiAoIWNsYXNzR3JvdXBJZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlzVGFpbHdpbmRDbGFzczogZmFsc2UsXG4gICAgICAgICAgb3JpZ2luYWxDbGFzc05hbWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllciA9IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YXJpYW50TW9kaWZpZXIgPSBzb3J0TW9kaWZpZXJzKG1vZGlmaWVycykuam9pbignOicpO1xuICAgIGNvbnN0IG1vZGlmaWVySWQgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IHZhcmlhbnRNb2RpZmllciArIElNUE9SVEFOVF9NT0RJRklFUiA6IHZhcmlhbnRNb2RpZmllcjtcbiAgICByZXR1cm4ge1xuICAgICAgaXNUYWlsd2luZENsYXNzOiB0cnVlLFxuICAgICAgbW9kaWZpZXJJZCxcbiAgICAgIGNsYXNzR3JvdXBJZCxcbiAgICAgIG9yaWdpbmFsQ2xhc3NOYW1lLFxuICAgICAgaGFzUG9zdGZpeE1vZGlmaWVyXG4gICAgfTtcbiAgfSkucmV2ZXJzZSgpXG4gIC8vIExhc3QgY2xhc3MgaW4gY29uZmxpY3Qgd2lucywgc28gd2UgbmVlZCB0byBmaWx0ZXIgY29uZmxpY3RpbmcgY2xhc3NlcyBpbiByZXZlcnNlIG9yZGVyLlxuICAuZmlsdGVyKHBhcnNlZCA9PiB7XG4gICAgaWYgKCFwYXJzZWQuaXNUYWlsd2luZENsYXNzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJJZCxcbiAgICAgIGNsYXNzR3JvdXBJZCxcbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllclxuICAgIH0gPSBwYXJzZWQ7XG4gICAgY29uc3QgY2xhc3NJZCA9IG1vZGlmaWVySWQgKyBjbGFzc0dyb3VwSWQ7XG4gICAgaWYgKGNsYXNzR3JvdXBzSW5Db25mbGljdC5oYXMoY2xhc3NJZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY2xhc3NHcm91cHNJbkNvbmZsaWN0LmFkZChjbGFzc0lkKTtcbiAgICBnZXRDb25mbGljdGluZ0NsYXNzR3JvdXBJZHMoY2xhc3NHcm91cElkLCBoYXNQb3N0Zml4TW9kaWZpZXIpLmZvckVhY2goZ3JvdXAgPT4gY2xhc3NHcm91cHNJbkNvbmZsaWN0LmFkZChtb2RpZmllcklkICsgZ3JvdXApKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSkucmV2ZXJzZSgpLm1hcChwYXJzZWQgPT4gcGFyc2VkLm9yaWdpbmFsQ2xhc3NOYW1lKS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogVGhlIGNvZGUgaW4gdGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeCBhbmQgbW9kaWZpZWQgdG8gc3VpdCB0aGUgbmVlZHMgb2YgdGFpbHdpbmQtbWVyZ2UgYmV0dGVyLlxuICpcbiAqIFNwZWNpZmljYWxseTpcbiAqIC0gUnVudGltZSBjb2RlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9jbHN4L2Jsb2IvdjEuMi4xL3NyYy9pbmRleC5qc1xuICogLSBUeXBlU2NyaXB0IHR5cGVzIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2x1a2VlZC9jbHN4L2Jsb2IvdjEuMi4xL2Nsc3guZC50c1xuICpcbiAqIE9yaWdpbmFsIGNvZGUgaGFzIE1JVCBsaWNlbnNlOiBDb3B5cmlnaHQgKGMpIEx1a2UgRWR3YXJkcyA8bHVrZS5lZHdhcmRzMDVAZ21haWwuY29tPiAobHVrZWVkLmNvbSlcbiAqL1xuZnVuY3Rpb24gdHdKb2luKCkge1xuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgYXJndW1lbnQ7XG4gIGxldCByZXNvbHZlZFZhbHVlO1xuICBsZXQgc3RyaW5nID0gJyc7XG4gIHdoaWxlIChpbmRleCA8IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICBpZiAoYXJndW1lbnQgPSBhcmd1bWVudHNbaW5kZXgrK10pIHtcbiAgICAgIGlmIChyZXNvbHZlZFZhbHVlID0gdG9WYWx1ZShhcmd1bWVudCkpIHtcbiAgICAgICAgc3RyaW5nICYmIChzdHJpbmcgKz0gJyAnKTtcbiAgICAgICAgc3RyaW5nICs9IHJlc29sdmVkVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJpbmc7XG59XG5mdW5jdGlvbiB0b1ZhbHVlKG1peCkge1xuICBpZiAodHlwZW9mIG1peCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbWl4O1xuICB9XG4gIGxldCByZXNvbHZlZFZhbHVlO1xuICBsZXQgc3RyaW5nID0gJyc7XG4gIGZvciAobGV0IGsgPSAwOyBrIDwgbWl4Lmxlbmd0aDsgaysrKSB7XG4gICAgaWYgKG1peFtrXSkge1xuICAgICAgaWYgKHJlc29sdmVkVmFsdWUgPSB0b1ZhbHVlKG1peFtrXSkpIHtcbiAgICAgICAgc3RyaW5nICYmIChzdHJpbmcgKz0gJyAnKTtcbiAgICAgICAgc3RyaW5nICs9IHJlc29sdmVkVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJpbmc7XG59XG5mdW5jdGlvbiBjcmVhdGVUYWlsd2luZE1lcmdlKGNyZWF0ZUNvbmZpZ0ZpcnN0LCAuLi5jcmVhdGVDb25maWdSZXN0KSB7XG4gIGxldCBjb25maWdVdGlscztcbiAgbGV0IGNhY2hlR2V0O1xuICBsZXQgY2FjaGVTZXQ7XG4gIGxldCBmdW5jdGlvblRvQ2FsbCA9IGluaXRUYWlsd2luZE1lcmdlO1xuICBmdW5jdGlvbiBpbml0VGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjb25maWcgPSBjcmVhdGVDb25maWdSZXN0LnJlZHVjZSgocHJldmlvdXNDb25maWcsIGNyZWF0ZUNvbmZpZ0N1cnJlbnQpID0+IGNyZWF0ZUNvbmZpZ0N1cnJlbnQocHJldmlvdXNDb25maWcpLCBjcmVhdGVDb25maWdGaXJzdCgpKTtcbiAgICBjb25maWdVdGlscyA9IGNyZWF0ZUNvbmZpZ1V0aWxzKGNvbmZpZyk7XG4gICAgY2FjaGVHZXQgPSBjb25maWdVdGlscy5jYWNoZS5nZXQ7XG4gICAgY2FjaGVTZXQgPSBjb25maWdVdGlscy5jYWNoZS5zZXQ7XG4gICAgZnVuY3Rpb25Ub0NhbGwgPSB0YWlsd2luZE1lcmdlO1xuICAgIHJldHVybiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCk7XG4gIH1cbiAgZnVuY3Rpb24gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZUdldChjbGFzc0xpc3QpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpO1xuICAgIGNhY2hlU2V0KGNsYXNzTGlzdCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBjYWxsVGFpbHdpbmRNZXJnZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NhbGwodHdKb2luLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuZnVuY3Rpb24gZnJvbVRoZW1lKGtleSkge1xuICBjb25zdCB0aGVtZUdldHRlciA9IHRoZW1lID0+IHRoZW1lW2tleV0gfHwgW107XG4gIHRoZW1lR2V0dGVyLmlzVGhlbWVHZXR0ZXIgPSB0cnVlO1xuICByZXR1cm4gdGhlbWVHZXR0ZXI7XG59XG5jb25zdCBhcmJpdHJhcnlWYWx1ZVJlZ2V4ID0gL15cXFsoPzooW2Etei1dKyk6KT8oLispXFxdJC9pO1xuY29uc3QgZnJhY3Rpb25SZWdleCA9IC9eXFxkK1xcL1xcZCskLztcbmNvbnN0IHN0cmluZ0xlbmd0aHMgPSAvKiNfX1BVUkVfXyovbmV3IFNldChbJ3B4JywgJ2Z1bGwnLCAnc2NyZWVuJ10pO1xuY29uc3QgdHNoaXJ0VW5pdFJlZ2V4ID0gL14oXFxkKyhcXC5cXGQrKT8pPyh4c3xzbXxtZHxsZ3x4bCkkLztcbmNvbnN0IGxlbmd0aFVuaXRSZWdleCA9IC9cXGQrKCV8cHh8cj9lbXxbc2RsXT92KFtod2liXXxtaW58bWF4KXxwdHxwY3xpbnxjbXxtbXxjYXB8Y2h8ZXh8cj9saHxjcSh3fGh8aXxifG1pbnxtYXgpKXxcXGIoY2FsY3xtaW58bWF4fGNsYW1wKVxcKC4rXFwpfF4wJC87XG5jb25zdCBjb2xvckZ1bmN0aW9uUmVnZXggPSAvXihyZ2JhP3xoc2xhP3xod2J8KG9rKT8obGFifGxjaCkpXFwoLitcXCkkLztcbi8vIFNoYWRvdyBhbHdheXMgYmVnaW5zIHdpdGggeCBhbmQgeSBvZmZzZXQgc2VwYXJhdGVkIGJ5IHVuZGVyc2NvcmUgb3B0aW9uYWxseSBwcmVwZW5kZWQgYnkgaW5zZXRcbmNvbnN0IHNoYWRvd1JlZ2V4ID0gL14oaW5zZXRfKT8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKV8tPygoXFxkKyk/XFwuPyhcXGQrKVthLXpdK3wwKS87XG5jb25zdCBpbWFnZVJlZ2V4ID0gL14odXJsfGltYWdlfGltYWdlLXNldHxjcm9zcy1mYWRlfGVsZW1lbnR8KHJlcGVhdGluZy0pPyhsaW5lYXJ8cmFkaWFsfGNvbmljKS1ncmFkaWVudClcXCguK1xcKSQvO1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIGlzTnVtYmVyKHZhbHVlKSB8fCBzdHJpbmdMZW5ndGhzLmhhcyh2YWx1ZSkgfHwgZnJhY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5TGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCAnbGVuZ3RoJywgaXNMZW5ndGhPbmx5KTtcbn1cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlKSB7XG4gIHJldHVybiBCb29sZWFuKHZhbHVlKSAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpO1xufVxuZnVuY3Rpb24gaXNBcmJpdHJhcnlOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdudW1iZXInLCBpc051bWJlcik7XG59XG5mdW5jdGlvbiBpc0ludGVnZXIodmFsdWUpIHtcbiAgcmV0dXJuIEJvb2xlYW4odmFsdWUpICYmIE51bWJlci5pc0ludGVnZXIoTnVtYmVyKHZhbHVlKSk7XG59XG5mdW5jdGlvbiBpc1BlcmNlbnQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLmVuZHNXaXRoKCclJykgJiYgaXNOdW1iZXIodmFsdWUuc2xpY2UoMCwgLTEpKTtcbn1cbmZ1bmN0aW9uIGlzQXJiaXRyYXJ5VmFsdWUodmFsdWUpIHtcbiAgcmV0dXJuIGFyYml0cmFyeVZhbHVlUmVnZXgudGVzdCh2YWx1ZSk7XG59XG5mdW5jdGlvbiBpc1RzaGlydFNpemUodmFsdWUpIHtcbiAgcmV0dXJuIHRzaGlydFVuaXRSZWdleC50ZXN0KHZhbHVlKTtcbn1cbmNvbnN0IHNpemVMYWJlbHMgPSAvKiNfX1BVUkVfXyovbmV3IFNldChbJ2xlbmd0aCcsICdzaXplJywgJ3BlcmNlbnRhZ2UnXSk7XG5mdW5jdGlvbiBpc0FyYml0cmFyeVNpemUodmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIHNpemVMYWJlbHMsIGlzTmV2ZXIpO1xufVxuZnVuY3Rpb24gaXNBcmJpdHJhcnlQb3NpdGlvbih2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ3Bvc2l0aW9uJywgaXNOZXZlcik7XG59XG5jb25zdCBpbWFnZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnaW1hZ2UnLCAndXJsJ10pO1xuZnVuY3Rpb24gaXNBcmJpdHJhcnlJbWFnZSh2YWx1ZSkge1xuICByZXR1cm4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgaW1hZ2VMYWJlbHMsIGlzSW1hZ2UpO1xufVxuZnVuY3Rpb24gaXNBcmJpdHJhcnlTaGFkb3codmFsdWUpIHtcbiAgcmV0dXJuIGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICcnLCBpc1NoYWRvdyk7XG59XG5mdW5jdGlvbiBpc0FueSgpIHtcbiAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBnZXRJc0FyYml0cmFyeVZhbHVlKHZhbHVlLCBsYWJlbCwgdGVzdFZhbHVlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IGFyYml0cmFyeVZhbHVlUmVnZXguZXhlYyh2YWx1ZSk7XG4gIGlmIChyZXN1bHQpIHtcbiAgICBpZiAocmVzdWx0WzFdKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGxhYmVsID09PSAnc3RyaW5nJyA/IHJlc3VsdFsxXSA9PT0gbGFiZWwgOiBsYWJlbC5oYXMocmVzdWx0WzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlc3RWYWx1ZShyZXN1bHRbMl0pO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGlzTGVuZ3RoT25seSh2YWx1ZSkge1xuICAvLyBgY29sb3JGdW5jdGlvblJlZ2V4YCBjaGVjayBpcyBuZWNlc3NhcnkgYmVjYXVzZSBjb2xvciBmdW5jdGlvbnMgY2FuIGhhdmUgcGVyY2VudGFnZXMgaW4gdGhlbSB3aGljaCB3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjbGFzc2lmaWVkIGFzIGxlbmd0aHMuXG4gIC8vIEZvciBleGFtcGxlLCBgaHNsKDAgMCUgMCUpYCB3b3VsZCBiZSBjbGFzc2lmaWVkIGFzIGEgbGVuZ3RoIHdpdGhvdXQgdGhpcyBjaGVjay5cbiAgLy8gSSBjb3VsZCBhbHNvIHVzZSBsb29rYmVoaW5kIGFzc2VydGlvbiBpbiBgbGVuZ3RoVW5pdFJlZ2V4YCBidXQgdGhhdCBpc24ndCBzdXBwb3J0ZWQgd2lkZWx5IGVub3VnaC5cbiAgcmV0dXJuIGxlbmd0aFVuaXRSZWdleC50ZXN0KHZhbHVlKSAmJiAhY29sb3JGdW5jdGlvblJlZ2V4LnRlc3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNOZXZlcigpIHtcbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNTaGFkb3codmFsdWUpIHtcbiAgcmV0dXJuIHNoYWRvd1JlZ2V4LnRlc3QodmFsdWUpO1xufVxuZnVuY3Rpb24gaXNJbWFnZSh2YWx1ZSkge1xuICByZXR1cm4gaW1hZ2VSZWdleC50ZXN0KHZhbHVlKTtcbn1cbmNvbnN0IHZhbGlkYXRvcnMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmRlZmluZVByb3BlcnR5KHtcbiAgX19wcm90b19fOiBudWxsLFxuICBpc0FueSxcbiAgaXNBcmJpdHJhcnlJbWFnZSxcbiAgaXNBcmJpdHJhcnlMZW5ndGgsXG4gIGlzQXJiaXRyYXJ5TnVtYmVyLFxuICBpc0FyYml0cmFyeVBvc2l0aW9uLFxuICBpc0FyYml0cmFyeVNoYWRvdyxcbiAgaXNBcmJpdHJhcnlTaXplLFxuICBpc0FyYml0cmFyeVZhbHVlLFxuICBpc0ludGVnZXIsXG4gIGlzTGVuZ3RoLFxuICBpc051bWJlcixcbiAgaXNQZXJjZW50LFxuICBpc1RzaGlydFNpemVcbn0sIFN5bWJvbC50b1N0cmluZ1RhZywge1xuICB2YWx1ZTogJ01vZHVsZSdcbn0pO1xuZnVuY3Rpb24gZ2V0RGVmYXVsdENvbmZpZygpIHtcbiAgY29uc3QgY29sb3JzID0gZnJvbVRoZW1lKCdjb2xvcnMnKTtcbiAgY29uc3Qgc3BhY2luZyA9IGZyb21UaGVtZSgnc3BhY2luZycpO1xuICBjb25zdCBibHVyID0gZnJvbVRoZW1lKCdibHVyJyk7XG4gIGNvbnN0IGJyaWdodG5lc3MgPSBmcm9tVGhlbWUoJ2JyaWdodG5lc3MnKTtcbiAgY29uc3QgYm9yZGVyQ29sb3IgPSBmcm9tVGhlbWUoJ2JvcmRlckNvbG9yJyk7XG4gIGNvbnN0IGJvcmRlclJhZGl1cyA9IGZyb21UaGVtZSgnYm9yZGVyUmFkaXVzJyk7XG4gIGNvbnN0IGJvcmRlclNwYWNpbmcgPSBmcm9tVGhlbWUoJ2JvcmRlclNwYWNpbmcnKTtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSBmcm9tVGhlbWUoJ2JvcmRlcldpZHRoJyk7XG4gIGNvbnN0IGNvbnRyYXN0ID0gZnJvbVRoZW1lKCdjb250cmFzdCcpO1xuICBjb25zdCBncmF5c2NhbGUgPSBmcm9tVGhlbWUoJ2dyYXlzY2FsZScpO1xuICBjb25zdCBodWVSb3RhdGUgPSBmcm9tVGhlbWUoJ2h1ZVJvdGF0ZScpO1xuICBjb25zdCBpbnZlcnQgPSBmcm9tVGhlbWUoJ2ludmVydCcpO1xuICBjb25zdCBnYXAgPSBmcm9tVGhlbWUoJ2dhcCcpO1xuICBjb25zdCBncmFkaWVudENvbG9yU3RvcHMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wcycpO1xuICBjb25zdCBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9ucyA9IGZyb21UaGVtZSgnZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMnKTtcbiAgY29uc3QgaW5zZXQgPSBmcm9tVGhlbWUoJ2luc2V0Jyk7XG4gIGNvbnN0IG1hcmdpbiA9IGZyb21UaGVtZSgnbWFyZ2luJyk7XG4gIGNvbnN0IG9wYWNpdHkgPSBmcm9tVGhlbWUoJ29wYWNpdHknKTtcbiAgY29uc3QgcGFkZGluZyA9IGZyb21UaGVtZSgncGFkZGluZycpO1xuICBjb25zdCBzYXR1cmF0ZSA9IGZyb21UaGVtZSgnc2F0dXJhdGUnKTtcbiAgY29uc3Qgc2NhbGUgPSBmcm9tVGhlbWUoJ3NjYWxlJyk7XG4gIGNvbnN0IHNlcGlhID0gZnJvbVRoZW1lKCdzZXBpYScpO1xuICBjb25zdCBza2V3ID0gZnJvbVRoZW1lKCdza2V3Jyk7XG4gIGNvbnN0IHNwYWNlID0gZnJvbVRoZW1lKCdzcGFjZScpO1xuICBjb25zdCB0cmFuc2xhdGUgPSBmcm9tVGhlbWUoJ3RyYW5zbGF0ZScpO1xuICBjb25zdCBnZXRPdmVyc2Nyb2xsID0gKCkgPT4gWydhdXRvJywgJ2NvbnRhaW4nLCAnbm9uZSddO1xuICBjb25zdCBnZXRPdmVyZmxvdyA9ICgpID0+IFsnYXV0bycsICdoaWRkZW4nLCAnY2xpcCcsICd2aXNpYmxlJywgJ3Njcm9sbCddO1xuICBjb25zdCBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkgPSAoKSA9PiBbJ2F1dG8nLCBpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkgPSAoKSA9PiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldExlbmd0aFdpdGhFbXB0eUFuZEFyYml0cmFyeSA9ICgpID0+IFsnJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXTtcbiAgY29uc3QgZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkgPSAoKSA9PiBbJ2F1dG8nLCBpc051bWJlciwgaXNBcmJpdHJhcnlWYWx1ZV07XG4gIGNvbnN0IGdldFBvc2l0aW9ucyA9ICgpID0+IFsnYm90dG9tJywgJ2NlbnRlcicsICdsZWZ0JywgJ2xlZnQtYm90dG9tJywgJ2xlZnQtdG9wJywgJ3JpZ2h0JywgJ3JpZ2h0LWJvdHRvbScsICdyaWdodC10b3AnLCAndG9wJ107XG4gIGNvbnN0IGdldExpbmVTdHlsZXMgPSAoKSA9PiBbJ3NvbGlkJywgJ2Rhc2hlZCcsICdkb3R0ZWQnLCAnZG91YmxlJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0QmxlbmRNb2RlcyA9ICgpID0+IFsnbm9ybWFsJywgJ211bHRpcGx5JywgJ3NjcmVlbicsICdvdmVybGF5JywgJ2RhcmtlbicsICdsaWdodGVuJywgJ2NvbG9yLWRvZGdlJywgJ2NvbG9yLWJ1cm4nLCAnaGFyZC1saWdodCcsICdzb2Z0LWxpZ2h0JywgJ2RpZmZlcmVuY2UnLCAnZXhjbHVzaW9uJywgJ2h1ZScsICdzYXR1cmF0aW9uJywgJ2NvbG9yJywgJ2x1bWlub3NpdHknXTtcbiAgY29uc3QgZ2V0QWxpZ24gPSAoKSA9PiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnYmV0d2VlbicsICdhcm91bmQnLCAnZXZlbmx5JywgJ3N0cmV0Y2gnXTtcbiAgY29uc3QgZ2V0WmVyb0FuZEVtcHR5ID0gKCkgPT4gWycnLCAnMCcsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRCcmVha3MgPSAoKSA9PiBbJ2F1dG8nLCAnYXZvaWQnLCAnYWxsJywgJ2F2b2lkLXBhZ2UnLCAncGFnZScsICdsZWZ0JywgJ3JpZ2h0JywgJ2NvbHVtbiddO1xuICBjb25zdCBnZXROdW1iZXIgPSAoKSA9PiBbaXNOdW1iZXIsIGlzQXJiaXRyYXJ5TnVtYmVyXTtcbiAgY29uc3QgZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5ID0gKCkgPT4gW2lzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgcmV0dXJuIHtcbiAgICBjYWNoZVNpemU6IDUwMCxcbiAgICBzZXBhcmF0b3I6ICc6JyxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzOiBbaXNBbnldLFxuICAgICAgc3BhY2luZzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBibHVyOiBbJ25vbmUnLCAnJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeVZhbHVlXSxcbiAgICAgIGJyaWdodG5lc3M6IGdldE51bWJlcigpLFxuICAgICAgYm9yZGVyQ29sb3I6IFtjb2xvcnNdLFxuICAgICAgYm9yZGVyUmFkaXVzOiBbJ25vbmUnLCAnJywgJ2Z1bGwnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYm9yZGVyU3BhY2luZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGJvcmRlcldpZHRoOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGNvbnRyYXN0OiBnZXROdW1iZXIoKSxcbiAgICAgIGdyYXlzY2FsZTogZ2V0WmVyb0FuZEVtcHR5KCksXG4gICAgICBodWVSb3RhdGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgaW52ZXJ0OiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGdhcDogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wczogW2NvbG9yc10sXG4gICAgICBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uczogW2lzUGVyY2VudCwgaXNBcmJpdHJhcnlMZW5ndGhdLFxuICAgICAgaW5zZXQ6IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgbWFyZ2luOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcbiAgICAgIG9wYWNpdHk6IGdldE51bWJlcigpLFxuICAgICAgcGFkZGluZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHNhdHVyYXRlOiBnZXROdW1iZXIoKSxcbiAgICAgIHNjYWxlOiBnZXROdW1iZXIoKSxcbiAgICAgIHNlcGlhOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIHNrZXc6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgc3BhY2U6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXG4gICAgICB0cmFuc2xhdGU6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICB9LFxuICAgIGNsYXNzR3JvdXBzOiB7XG4gICAgICAvLyBMYXlvdXRcbiAgICAgIC8qKlxuICAgICAgICogQXNwZWN0IFJhdGlvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXNwZWN0LXJhdGlvXG4gICAgICAgKi9cbiAgICAgIGFzcGVjdDogW3tcbiAgICAgICAgYXNwZWN0OiBbJ2F1dG8nLCAnc3F1YXJlJywgJ3ZpZGVvJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250YWluZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250YWluZXJcbiAgICAgICAqL1xuICAgICAgY29udGFpbmVyOiBbJ2NvbnRhaW5lciddLFxuICAgICAgLyoqXG4gICAgICAgKiBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29sdW1uc1xuICAgICAgICovXG4gICAgICBjb2x1bW5zOiBbe1xuICAgICAgICBjb2x1bW5zOiBbaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEFmdGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstYWZ0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWFmdGVyJzogW3tcbiAgICAgICAgJ2JyZWFrLWFmdGVyJzogZ2V0QnJlYWtzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmVhayBCZWZvcmVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1iZWZvcmVcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWJlZm9yZSc6IFt7XG4gICAgICAgICdicmVhay1iZWZvcmUnOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEluc2lkZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWluc2lkZVxuICAgICAgICovXG4gICAgICAnYnJlYWstaW5zaWRlJzogW3tcbiAgICAgICAgJ2JyZWFrLWluc2lkZSc6IFsnYXV0bycsICdhdm9pZCcsICdhdm9pZC1wYWdlJywgJ2F2b2lkLWNvbHVtbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IERlY29yYXRpb24gQnJlYWtcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtZGVjb3JhdGlvbi1icmVha1xuICAgICAgICovXG4gICAgICAnYm94LWRlY29yYXRpb24nOiBbe1xuICAgICAgICAnYm94LWRlY29yYXRpb24nOiBbJ3NsaWNlJywgJ2Nsb25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2l6aW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNpemluZ1xuICAgICAgICovXG4gICAgICBib3g6IFt7XG4gICAgICAgIGJveDogWydib3JkZXInLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGlzcGxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Rpc3BsYXlcbiAgICAgICAqL1xuICAgICAgZGlzcGxheTogWydibG9jaycsICdpbmxpbmUtYmxvY2snLCAnaW5saW5lJywgJ2ZsZXgnLCAnaW5saW5lLWZsZXgnLCAndGFibGUnLCAnaW5saW5lLXRhYmxlJywgJ3RhYmxlLWNhcHRpb24nLCAndGFibGUtY2VsbCcsICd0YWJsZS1jb2x1bW4nLCAndGFibGUtY29sdW1uLWdyb3VwJywgJ3RhYmxlLWZvb3Rlci1ncm91cCcsICd0YWJsZS1oZWFkZXItZ3JvdXAnLCAndGFibGUtcm93LWdyb3VwJywgJ3RhYmxlLXJvdycsICdmbG93LXJvb3QnLCAnZ3JpZCcsICdpbmxpbmUtZ3JpZCcsICdjb250ZW50cycsICdsaXN0LWl0ZW0nLCAnaGlkZGVuJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZsb2F0c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Zsb2F0XG4gICAgICAgKi9cbiAgICAgIGZsb2F0OiBbe1xuICAgICAgICBmbG9hdDogWydyaWdodCcsICdsZWZ0JywgJ25vbmUnLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDbGVhclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NsZWFyXG4gICAgICAgKi9cbiAgICAgIGNsZWFyOiBbe1xuICAgICAgICBjbGVhcjogWydsZWZ0JywgJ3JpZ2h0JywgJ2JvdGgnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIElzb2xhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2lzb2xhdGlvblxuICAgICAgICovXG4gICAgICBpc29sYXRpb246IFsnaXNvbGF0ZScsICdpc29sYXRpb24tYXV0byddLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgRml0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb2JqZWN0LWZpdFxuICAgICAgICovXG4gICAgICAnb2JqZWN0LWZpdCc6IFt7XG4gICAgICAgIG9iamVjdDogWydjb250YWluJywgJ2NvdmVyJywgJ2ZpbGwnLCAnbm9uZScsICdzY2FsZS1kb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ29iamVjdC1wb3NpdGlvbic6IFt7XG4gICAgICAgIG9iamVjdDogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgb3ZlcmZsb3c6IFt7XG4gICAgICAgIG92ZXJmbG93OiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy14JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXgnOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy15JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXknOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgb3ZlcnNjcm9sbDogW3tcbiAgICAgICAgb3ZlcnNjcm9sbDogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC14JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteCc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJzY3JvbGwgQmVoYXZpb3IgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ292ZXJzY3JvbGwteSc6IFt7XG4gICAgICAgICdvdmVyc2Nyb2xsLXknOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Bvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgIHBvc2l0aW9uOiBbJ3N0YXRpYycsICdmaXhlZCcsICdhYnNvbHV0ZScsICdyZWxhdGl2ZScsICdzdGlja3knXSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gUmlnaHQgLyBCb3R0b20gLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGluc2V0OiBbe1xuICAgICAgICBpbnNldDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0IC8gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteCc6IFt7XG4gICAgICAgICdpbnNldC14JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcCAvIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteSc6IFt7XG4gICAgICAgICdpbnNldC15JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHN0YXJ0OiBbe1xuICAgICAgICBzdGFydDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBlbmQ6IFt7XG4gICAgICAgIGVuZDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICB0b3A6IFt7XG4gICAgICAgIHRvcDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHJpZ2h0OiBbe1xuICAgICAgICByaWdodDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBib3R0b206IFt7XG4gICAgICAgIGJvdHRvbTogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgbGVmdDogW3tcbiAgICAgICAgbGVmdDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFZpc2liaWxpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92aXNpYmlsaXR5XG4gICAgICAgKi9cbiAgICAgIHZpc2liaWxpdHk6IFsndmlzaWJsZScsICdpbnZpc2libGUnLCAnY29sbGFwc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogWi1JbmRleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3otaW5kZXhcbiAgICAgICAqL1xuICAgICAgejogW3tcbiAgICAgICAgejogWydhdXRvJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBGbGV4Ym94IGFuZCBHcmlkXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggQmFzaXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWJhc2lzXG4gICAgICAgKi9cbiAgICAgIGJhc2lzOiBbe1xuICAgICAgICBiYXNpczogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IERpcmVjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZGlyZWN0aW9uXG4gICAgICAgKi9cbiAgICAgICdmbGV4LWRpcmVjdGlvbic6IFt7XG4gICAgICAgIGZsZXg6IFsncm93JywgJ3Jvdy1yZXZlcnNlJywgJ2NvbCcsICdjb2wtcmV2ZXJzZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC13cmFwXG4gICAgICAgKi9cbiAgICAgICdmbGV4LXdyYXAnOiBbe1xuICAgICAgICBmbGV4OiBbJ3dyYXAnLCAnd3JhcC1yZXZlcnNlJywgJ25vd3JhcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXhcbiAgICAgICAqL1xuICAgICAgZmxleDogW3tcbiAgICAgICAgZmxleDogWycxJywgJ2F1dG8nLCAnaW5pdGlhbCcsICdub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IEdyb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWdyb3dcbiAgICAgICAqL1xuICAgICAgZ3JvdzogW3tcbiAgICAgICAgZ3JvdzogZ2V0WmVyb0FuZEVtcHR5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFNocmlua1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtc2hyaW5rXG4gICAgICAgKi9cbiAgICAgIHNocmluazogW3tcbiAgICAgICAgc2hyaW5rOiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9yZGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3JkZXJcbiAgICAgICAqL1xuICAgICAgb3JkZXI6IFt7XG4gICAgICAgIG9yZGVyOiBbJ2ZpcnN0JywgJ2xhc3QnLCAnbm9uZScsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtY29scyc6IFt7XG4gICAgICAgICdncmlkLWNvbHMnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWNvbHVtblxuICAgICAgICovXG4gICAgICAnY29sLXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIGNvbDogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFsnZnVsbCcsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQnOiBbe1xuICAgICAgICAnY29sLXN0YXJ0JzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtZW5kJzogW3tcbiAgICAgICAgJ2NvbC1lbmQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBUZW1wbGF0ZSBSb3dzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC10ZW1wbGF0ZS1yb3dzXG4gICAgICAgKi9cbiAgICAgICdncmlkLXJvd3MnOiBbe1xuICAgICAgICAnZ3JpZC1yb3dzJzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0IC8gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydC1lbmQnOiBbe1xuICAgICAgICByb3c6IFsnYXV0bycsIHtcbiAgICAgICAgICBzcGFuOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydCc6IFt7XG4gICAgICAgICdyb3ctc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1lbmQnOiBbe1xuICAgICAgICAncm93LWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gRmxvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1mbG93XG4gICAgICAgKi9cbiAgICAgICdncmlkLWZsb3cnOiBbe1xuICAgICAgICAnZ3JpZC1mbG93JzogWydyb3cnLCAnY29sJywgJ2RlbnNlJywgJ3Jvdy1kZW5zZScsICdjb2wtZGVuc2UnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2F1dG8tY29scyc6IFt7XG4gICAgICAgICdhdXRvLWNvbHMnOiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmcicsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tcm93c1xuICAgICAgICovXG4gICAgICAnYXV0by1yb3dzJzogW3tcbiAgICAgICAgJ2F1dG8tcm93cyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgZ2FwOiBbe1xuICAgICAgICBnYXA6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR2FwIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgJ2dhcC14JzogW3tcbiAgICAgICAgJ2dhcC14JzogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXknOiBbe1xuICAgICAgICAnZ2FwLXknOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktY29udGVudFxuICAgICAgICovXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogW3tcbiAgICAgICAganVzdGlmeTogWydub3JtYWwnLCAuLi5nZXRBbGlnbigpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWl0ZW1zJzogW3tcbiAgICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBTZWxmXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LXNlbGYnOiBbe1xuICAgICAgICAnanVzdGlmeS1zZWxmJzogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLWNvbnRlbnQnOiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1pdGVtc1xuICAgICAgICovXG4gICAgICAnYWxpZ24taXRlbXMnOiBbe1xuICAgICAgICBpdGVtczogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFsaWduIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1zZWxmXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1zZWxmJzogW3tcbiAgICAgICAgc2VsZjogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCcsICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWNvbnRlbnQnOiBbe1xuICAgICAgICAncGxhY2UtY29udGVudCc6IFsuLi5nZXRBbGlnbigpLCAnYmFzZWxpbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIEl0ZW1zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWl0ZW1zJzogW3tcbiAgICAgICAgJ3BsYWNlLWl0ZW1zJzogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdwbGFjZS1zZWxmJzogW3tcbiAgICAgICAgJ3BsYWNlLXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLy8gU3BhY2luZ1xuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwOiBbe1xuICAgICAgICBwOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB4OiBbe1xuICAgICAgICBweDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBweTogW3tcbiAgICAgICAgcHk6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBzOiBbe1xuICAgICAgICBwczogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBlOiBbe1xuICAgICAgICBwZTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB0OiBbe1xuICAgICAgICBwdDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHI6IFt7XG4gICAgICAgIHByOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGI6IFt7XG4gICAgICAgIHBiOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBsOiBbe1xuICAgICAgICBwbDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG06IFt7XG4gICAgICAgIG06IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXg6IFt7XG4gICAgICAgIG14OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG15OiBbe1xuICAgICAgICBteTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXM6IFt7XG4gICAgICAgIG1zOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWU6IFt7XG4gICAgICAgIG1lOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXQ6IFt7XG4gICAgICAgIG10OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtcjogW3tcbiAgICAgICAgbXI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtYjogW3tcbiAgICAgICAgbWI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWw6IFt7XG4gICAgICAgIG1sOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14JzogW3tcbiAgICAgICAgJ3NwYWNlLXgnOiBbc3BhY2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteC1yZXZlcnNlJzogWydzcGFjZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXknOiBbe1xuICAgICAgICAnc3BhY2UteSc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFkgUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS15LXJldmVyc2UnOiBbJ3NwYWNlLXktcmV2ZXJzZSddLFxuICAgICAgLy8gU2l6aW5nXG4gICAgICAvKipcbiAgICAgICAqIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lkdGhcbiAgICAgICAqL1xuICAgICAgdzogW3tcbiAgICAgICAgdzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3N2dycsICdsdncnLCAnZHZ3JywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaW4tV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4td2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21pbi13JzogW3tcbiAgICAgICAgJ21pbi13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LVdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdtYXgtdyc6IFt7XG4gICAgICAgICdtYXgtdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbm9uZScsICdmdWxsJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3Byb3NlJywge1xuICAgICAgICAgIHNjcmVlbjogW2lzVHNoaXJ0U2l6ZV1cbiAgICAgICAgfSwgaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2hlaWdodFxuICAgICAgICovXG4gICAgICBoOiBbe1xuICAgICAgICBoOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4taGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtaW4taCc6IFt7XG4gICAgICAgICdtaW4taCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1heC1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtYXgtaCc6IFt7XG4gICAgICAgICdtYXgtaCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zaXplXG4gICAgICAgKi9cbiAgICAgIHNpemU6IFt7XG4gICAgICAgIHNpemU6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8vIFR5cG9ncmFwaHlcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zaXplXG4gICAgICAgKi9cbiAgICAgICdmb250LXNpemUnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2Jhc2UnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU21vb3RoaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zbW9vdGhpbmdcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc21vb3RoaW5nJzogWydhbnRpYWxpYXNlZCcsICdzdWJwaXhlbC1hbnRpYWxpYXNlZCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zdHlsZVxuICAgICAgICovXG4gICAgICAnZm9udC1zdHlsZSc6IFsnaXRhbGljJywgJ25vdC1pdGFsaWMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBXZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXdlaWdodFxuICAgICAgICovXG4gICAgICAnZm9udC13ZWlnaHQnOiBbe1xuICAgICAgICBmb250OiBbJ3RoaW4nLCAnZXh0cmFsaWdodCcsICdsaWdodCcsICdub3JtYWwnLCAnbWVkaXVtJywgJ3NlbWlib2xkJywgJ2JvbGQnLCAnZXh0cmFib2xkJywgJ2JsYWNrJywgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBGYW1pbHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LWZhbWlseVxuICAgICAgICovXG4gICAgICAnZm9udC1mYW1pbHknOiBbe1xuICAgICAgICBmb250OiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnbm9ybWFsLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW9yZGluYWwnOiBbJ29yZGluYWwnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnc2xhc2hlZC16ZXJvJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2xpbmluZy1udW1zJywgJ29sZHN0eWxlLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ3Byb3BvcnRpb25hbC1udW1zJywgJ3RhYnVsYXItbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2RpYWdvbmFsLWZyYWN0aW9ucycsICdzdGFja2VkLWZyYWN0b25zJ10sXG4gICAgICAvKipcbiAgICAgICAqIExldHRlciBTcGFjaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGV0dGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgdHJhY2tpbmc6IFt7XG4gICAgICAgIHRyYWNraW5nOiBbJ3RpZ2h0ZXInLCAndGlnaHQnLCAnbm9ybWFsJywgJ3dpZGUnLCAnd2lkZXInLCAnd2lkZXN0JywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaW5lIENsYW1wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGluZS1jbGFtcFxuICAgICAgICovXG4gICAgICAnbGluZS1jbGFtcCc6IFt7XG4gICAgICAgICdsaW5lLWNsYW1wJzogWydub25lJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5TnVtYmVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpbmUgSGVpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGluZS1oZWlnaHRcbiAgICAgICAqL1xuICAgICAgbGVhZGluZzogW3tcbiAgICAgICAgbGVhZGluZzogWydub25lJywgJ3RpZ2h0JywgJ3NudWcnLCAnbm9ybWFsJywgJ3JlbGF4ZWQnLCAnbG9vc2UnLCBpc0xlbmd0aCwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaXN0IFN0eWxlIEltYWdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS1pbWFnZVxuICAgICAgICovXG4gICAgICAnbGlzdC1pbWFnZSc6IFt7XG4gICAgICAgICdsaXN0LWltYWdlJzogWydub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaXN0IFN0eWxlIFR5cGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLXR5cGVcbiAgICAgICAqL1xuICAgICAgJ2xpc3Qtc3R5bGUtdHlwZSc6IFt7XG4gICAgICAgIGxpc3Q6IFsnbm9uZScsICdkaXNjJywgJ2RlY2ltYWwnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExpc3QgU3R5bGUgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9saXN0LXN0eWxlLXBvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgICdsaXN0LXN0eWxlLXBvc2l0aW9uJzogW3tcbiAgICAgICAgbGlzdDogWydpbnNpZGUnLCAnb3V0c2lkZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2Vob2xkZXIgQ29sb3JcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZWhvbGRlci1jb2xvclxuICAgICAgICovXG4gICAgICAncGxhY2Vob2xkZXItY29sb3InOiBbe1xuICAgICAgICBwbGFjZWhvbGRlcjogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQbGFjZWhvbGRlciBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2Vob2xkZXItb3BhY2l0eVxuICAgICAgICovXG4gICAgICAncGxhY2Vob2xkZXItb3BhY2l0eSc6IFt7XG4gICAgICAgICdwbGFjZWhvbGRlci1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBBbGlnbm1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWFsaWduXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWFsaWdubWVudCc6IFt7XG4gICAgICAgIHRleHQ6IFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnLCAnanVzdGlmeScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWNvbG9yJzogW3tcbiAgICAgICAgdGV4dDogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3RleHQtb3BhY2l0eSc6IFt7XG4gICAgICAgICd0ZXh0LW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IERlY29yYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb25cbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbic6IFsndW5kZXJsaW5lJywgJ292ZXJsaW5lJywgJ2xpbmUtdGhyb3VnaCcsICduby11bmRlcmxpbmUnXSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uLXN0eWxlXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnOiBbe1xuICAgICAgICBkZWNvcmF0aW9uOiBbLi4uZ2V0TGluZVN0eWxlcygpLCAnd2F2eSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uIFRoaWNrbmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi10aGlja25lc3NcbiAgICAgICAqL1xuICAgICAgJ3RleHQtZGVjb3JhdGlvbi10aGlja25lc3MnOiBbe1xuICAgICAgICBkZWNvcmF0aW9uOiBbJ2F1dG8nLCAnZnJvbS1mb250JywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgVW5kZXJsaW5lIE9mZnNldFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdW5kZXJsaW5lLW9mZnNldFxuICAgICAgICovXG4gICAgICAndW5kZXJsaW5lLW9mZnNldCc6IFt7XG4gICAgICAgICd1bmRlcmxpbmUtb2Zmc2V0JzogWydhdXRvJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24tY29sb3InOiBbe1xuICAgICAgICBkZWNvcmF0aW9uOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgVHJhbnNmb3JtXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC10cmFuc2Zvcm1cbiAgICAgICAqL1xuICAgICAgJ3RleHQtdHJhbnNmb3JtJzogWyd1cHBlcmNhc2UnLCAnbG93ZXJjYXNlJywgJ2NhcGl0YWxpemUnLCAnbm9ybWFsLWNhc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBPdmVyZmxvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgJ3RleHQtb3ZlcmZsb3cnOiBbJ3RydW5jYXRlJywgJ3RleHQtZWxsaXBzaXMnLCAndGV4dC1jbGlwJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgV3JhcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtd3JhcFxuICAgICAgICovXG4gICAgICAndGV4dC13cmFwJzogW3tcbiAgICAgICAgdGV4dDogWyd3cmFwJywgJ25vd3JhcCcsICdiYWxhbmNlJywgJ3ByZXR0eSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBJbmRlbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWluZGVudFxuICAgICAgICovXG4gICAgICBpbmRlbnQ6IFt7XG4gICAgICAgIGluZGVudDogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFZlcnRpY2FsIEFsaWdubWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3ZlcnRpY2FsLWFsaWduXG4gICAgICAgKi9cbiAgICAgICd2ZXJ0aWNhbC1hbGlnbic6IFt7XG4gICAgICAgIGFsaWduOiBbJ2Jhc2VsaW5lJywgJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJywgJ3RleHQtdG9wJywgJ3RleHQtYm90dG9tJywgJ3N1YicsICdzdXBlcicsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogV2hpdGVzcGFjZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3doaXRlc3BhY2VcbiAgICAgICAqL1xuICAgICAgd2hpdGVzcGFjZTogW3tcbiAgICAgICAgd2hpdGVzcGFjZTogWydub3JtYWwnLCAnbm93cmFwJywgJ3ByZScsICdwcmUtbGluZScsICdwcmUtd3JhcCcsICdicmVhay1zcGFjZXMnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdvcmQgQnJlYWtcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93b3JkLWJyZWFrXG4gICAgICAgKi9cbiAgICAgIGJyZWFrOiBbe1xuICAgICAgICBicmVhazogWydub3JtYWwnLCAnd29yZHMnLCAnYWxsJywgJ2tlZXAnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEh5cGhlbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9oeXBoZW5zXG4gICAgICAgKi9cbiAgICAgIGh5cGhlbnM6IFt7XG4gICAgICAgIGh5cGhlbnM6IFsnbm9uZScsICdtYW51YWwnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnRcbiAgICAgICAqL1xuICAgICAgY29udGVudDogW3tcbiAgICAgICAgY29udGVudDogWydub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLy8gQmFja2dyb3VuZHNcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBBdHRhY2htZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1hdHRhY2htZW50XG4gICAgICAgKi9cbiAgICAgICdiZy1hdHRhY2htZW50JzogW3tcbiAgICAgICAgYmc6IFsnZml4ZWQnLCAnbG9jYWwnLCAnc2Nyb2xsJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIENsaXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWNsaXBcbiAgICAgICAqL1xuICAgICAgJ2JnLWNsaXAnOiBbe1xuICAgICAgICAnYmctY2xpcCc6IFsnYm9yZGVyJywgJ3BhZGRpbmcnLCAnY29udGVudCcsICd0ZXh0J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9wYWNpdHlcbiAgICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIFRhaWx3aW5kIENTUyB2My4wLjBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JnLW9wYWNpdHknOiBbe1xuICAgICAgICAnYmctb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgT3JpZ2luXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcmlnaW5cbiAgICAgICAqL1xuICAgICAgJ2JnLW9yaWdpbic6IFt7XG4gICAgICAgICdiZy1vcmlnaW4nOiBbJ2JvcmRlcicsICdwYWRkaW5nJywgJ2NvbnRlbnQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLXBvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgICdiZy1wb3NpdGlvbic6IFt7XG4gICAgICAgIGJnOiBbLi4uZ2V0UG9zaXRpb25zKCksIGlzQXJiaXRyYXJ5UG9zaXRpb25dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBSZXBlYXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLXJlcGVhdFxuICAgICAgICovXG4gICAgICAnYmctcmVwZWF0JzogW3tcbiAgICAgICAgYmc6IFsnbm8tcmVwZWF0Jywge1xuICAgICAgICAgIHJlcGVhdDogWycnLCAneCcsICd5JywgJ3JvdW5kJywgJ3NwYWNlJ11cbiAgICAgICAgfV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLXNpemVcbiAgICAgICAqL1xuICAgICAgJ2JnLXNpemUnOiBbe1xuICAgICAgICBiZzogWydhdXRvJywgJ2NvdmVyJywgJ2NvbnRhaW4nLCBpc0FyYml0cmFyeVNpemVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBJbWFnZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtaW1hZ2VcbiAgICAgICAqL1xuICAgICAgJ2JnLWltYWdlJzogW3tcbiAgICAgICAgYmc6IFsnbm9uZScsIHtcbiAgICAgICAgICAnZ3JhZGllbnQtdG8nOiBbJ3QnLCAndHInLCAncicsICdicicsICdiJywgJ2JsJywgJ2wnLCAndGwnXVxuICAgICAgICB9LCBpc0FyYml0cmFyeUltYWdlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdiZy1jb2xvcic6IFt7XG4gICAgICAgIGJnOiBbY29sb3JzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIEZyb20gUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtZnJvbS1wb3MnOiBbe1xuICAgICAgICBmcm9tOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVmlhIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXZpYS1wb3MnOiBbe1xuICAgICAgICB2aWE6IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBUbyBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC10by1wb3MnOiBbe1xuICAgICAgICB0bzogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIEZyb21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtZnJvbSc6IFt7XG4gICAgICAgIGZyb206IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVmlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LXZpYSc6IFt7XG4gICAgICAgIHZpYTogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBUb1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC10byc6IFt7XG4gICAgICAgIHRvOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvLyBCb3JkZXJzXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgIHJvdW5kZWQ6IFt7XG4gICAgICAgIHJvdW5kZWQ6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtcyc6IFt7XG4gICAgICAgICdyb3VuZGVkLXMnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1lJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZSc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXQnOiBbe1xuICAgICAgICAncm91bmRlZC10JzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1yJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtcic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWInOiBbe1xuICAgICAgICAncm91bmRlZC1iJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWwnOiBbe1xuICAgICAgICAncm91bmRlZC1sJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0IFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1zcyc6IFt7XG4gICAgICAgICdyb3VuZGVkLXNzJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIFN0YXJ0IEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtc2UnOiBbe1xuICAgICAgICAncm91bmRlZC1zZSc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmQgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1lZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLWVlJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZXMnOiBbe1xuICAgICAgICAncm91bmRlZC1lcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBUb3AgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtdGwnOiBbe1xuICAgICAgICAncm91bmRlZC10bCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBUb3AgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXRyJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdHInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1icic6IFt7XG4gICAgICAgICdyb3VuZGVkLWJyJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1ibCc6IFt7XG4gICAgICAgICdyb3VuZGVkLWJsJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13JzogW3tcbiAgICAgICAgYm9yZGVyOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXgnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXknOiBbe1xuICAgICAgICAnYm9yZGVyLXknOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1zJzogW3tcbiAgICAgICAgJ2JvcmRlci1zJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWUnOiBbe1xuICAgICAgICAnYm9yZGVyLWUnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctdCc6IFt7XG4gICAgICAgICdib3JkZXItdCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXInOiBbe1xuICAgICAgICAnYm9yZGVyLXInOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctYic6IFt7XG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctbCc6IFt7XG4gICAgICAgICdib3JkZXItbCc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdib3JkZXItb3BhY2l0eSc6IFt7XG4gICAgICAgICdib3JkZXItb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTdHlsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zdHlsZVxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXN0eWxlJzogW3tcbiAgICAgICAgYm9yZGVyOiBbLi4uZ2V0TGluZVN0eWxlcygpLCAnaGlkZGVuJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS13aWR0aFxuICAgICAgICovXG4gICAgICAnZGl2aWRlLXgnOiBbe1xuICAgICAgICAnZGl2aWRlLXgnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFggUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS13aWR0aFxuICAgICAgICovXG4gICAgICAnZGl2aWRlLXgtcmV2ZXJzZSc6IFsnZGl2aWRlLXgtcmV2ZXJzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgV2lkdGggWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS13aWR0aFxuICAgICAgICovXG4gICAgICAnZGl2aWRlLXknOiBbe1xuICAgICAgICAnZGl2aWRlLXknOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFkgUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS13aWR0aFxuICAgICAgICovXG4gICAgICAnZGl2aWRlLXktcmV2ZXJzZSc6IFsnZGl2aWRlLXktcmV2ZXJzZSddLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtb3BhY2l0eSc6IFt7XG4gICAgICAgICdkaXZpZGUtb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBTdHlsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2RpdmlkZS1zdHlsZVxuICAgICAgICovXG4gICAgICAnZGl2aWRlLXN0eWxlJzogW3tcbiAgICAgICAgZGl2aWRlOiBnZXRMaW5lU3R5bGVzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvcic6IFt7XG4gICAgICAgIGJvcmRlcjogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3IteCc6IFt7XG4gICAgICAgICdib3JkZXIteCc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXknOiBbe1xuICAgICAgICAnYm9yZGVyLXknOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItYic6IFt7XG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtY29sb3InOiBbe1xuICAgICAgICBkaXZpZGU6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdXRsaW5lIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1zdHlsZVxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1zdHlsZSc6IFt7XG4gICAgICAgIG91dGxpbmU6IFsnJywgLi4uZ2V0TGluZVN0eWxlcygpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXcnOiBbe1xuICAgICAgICBvdXRsaW5lOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLWNvbG9yJzogW3tcbiAgICAgICAgb3V0bGluZTogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13JzogW3tcbiAgICAgICAgcmluZzogZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoIEluc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13LWluc2V0JzogWydyaW5nLWluc2V0J10sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLWNvbG9yJzogW3tcbiAgICAgICAgcmluZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdyaW5nLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC13JzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC1jb2xvcic6IFt7XG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8vIEVmZmVjdHNcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgc2hhZG93OiBbe1xuICAgICAgICBzaGFkb3c6IFsnJywgJ2lubmVyJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5U2hhZG93XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaGFkb3cgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdzaGFkb3ctY29sb3InOiBbe1xuICAgICAgICBzaGFkb3c6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3BhY2l0eVxuICAgICAgICovXG4gICAgICBvcGFjaXR5OiBbe1xuICAgICAgICBvcGFjaXR5OiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaXggQmxlbmQgTW9kZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21peC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdtaXgtYmxlbmQnOiBbe1xuICAgICAgICAnbWl4LWJsZW5kJzogWy4uLmdldEJsZW5kTW9kZXMoKSwgJ3BsdXMtbGlnaHRlcicsICdwbHVzLWRhcmtlciddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdiZy1ibGVuZCc6IFt7XG4gICAgICAgICdiZy1ibGVuZCc6IGdldEJsZW5kTW9kZXMoKVxuICAgICAgfV0sXG4gICAgICAvLyBGaWx0ZXJzXG4gICAgICAvKipcbiAgICAgICAqIEZpbHRlclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbHRlclxuICAgICAgICovXG4gICAgICBmaWx0ZXI6IFt7XG4gICAgICAgIGZpbHRlcjogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JsdXJcbiAgICAgICAqL1xuICAgICAgYmx1cjogW3tcbiAgICAgICAgYmx1cjogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgYnJpZ2h0bmVzczogW3tcbiAgICAgICAgYnJpZ2h0bmVzczogW2JyaWdodG5lc3NdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ29udHJhc3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250cmFzdFxuICAgICAgICovXG4gICAgICBjb250cmFzdDogW3tcbiAgICAgICAgY29udHJhc3Q6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEcm9wIFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Ryb3Atc2hhZG93XG4gICAgICAgKi9cbiAgICAgICdkcm9wLXNoYWRvdyc6IFt7XG4gICAgICAgICdkcm9wLXNoYWRvdyc6IFsnJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JheXNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JheXNjYWxlXG4gICAgICAgKi9cbiAgICAgIGdyYXlzY2FsZTogW3tcbiAgICAgICAgZ3JheXNjYWxlOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdodWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2h1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ludmVydFxuICAgICAgICovXG4gICAgICBpbnZlcnQ6IFt7XG4gICAgICAgIGludmVydDogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTYXR1cmF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NhdHVyYXRlXG4gICAgICAgKi9cbiAgICAgIHNhdHVyYXRlOiBbe1xuICAgICAgICBzYXR1cmF0ZTogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2VwaWFcbiAgICAgICAqL1xuICAgICAgc2VwaWE6IFt7XG4gICAgICAgIHNlcGlhOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtZmlsdGVyXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtZmlsdGVyJzogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJsdXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJsdXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYmx1cic6IFtibHVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEJyaWdodG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1icmlnaHRuZXNzXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1icmlnaHRuZXNzJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWNvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1odWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWludmVydFxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWludmVydCc6IFtpbnZlcnRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLW9wYWNpdHknOiBbe1xuICAgICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2VwaWFcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3NlcGlhXVxuICAgICAgfV0sXG4gICAgICAvLyBUYWJsZXNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbGxhcHNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbGxhcHNlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sbGFwc2UnOiBbe1xuICAgICAgICBib3JkZXI6IFsnY29sbGFwc2UnLCAnc2VwYXJhdGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3BhY2luZy14JzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXknOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRhYmxlIExheW91dFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RhYmxlLWxheW91dFxuICAgICAgICovXG4gICAgICAndGFibGUtbGF5b3V0JzogW3tcbiAgICAgICAgdGFibGU6IFsnYXV0bycsICdmaXhlZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FwdGlvbiBTaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2FwdGlvbi1zaWRlXG4gICAgICAgKi9cbiAgICAgIGNhcHRpb246IFt7XG4gICAgICAgIGNhcHRpb246IFsndG9wJywgJ2JvdHRvbSddXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zaXRpb25zIGFuZCBBbmltYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogVHJhbmlzaXRpb24gUHJvcGVydHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLXByb3BlcnR5XG4gICAgICAgKi9cbiAgICAgIHRyYW5zaXRpb246IFt7XG4gICAgICAgIHRyYW5zaXRpb246IFsnbm9uZScsICdhbGwnLCAnJywgJ2NvbG9ycycsICdvcGFjaXR5JywgJ3NoYWRvdycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWR1cmF0aW9uXG4gICAgICAgKi9cbiAgICAgIGR1cmF0aW9uOiBbe1xuICAgICAgICBkdXJhdGlvbjogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2l0aW9uIFRpbWluZyBGdW5jdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4gICAgICAgKi9cbiAgICAgIGVhc2U6IFt7XG4gICAgICAgIGVhc2U6IFsnbGluZWFyJywgJ2luJywgJ291dCcsICdpbi1vdXQnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRGVsYXlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWRlbGF5XG4gICAgICAgKi9cbiAgICAgIGRlbGF5OiBbe1xuICAgICAgICBkZWxheTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbmltYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbmltYXRpb25cbiAgICAgICAqL1xuICAgICAgYW5pbWF0ZTogW3tcbiAgICAgICAgYW5pbWF0ZTogWydub25lJywgJ3NwaW4nLCAncGluZycsICdwdWxzZScsICdib3VuY2UnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBUcmFuc2Zvcm1zXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybVxuICAgICAgICovXG4gICAgICB0cmFuc2Zvcm06IFt7XG4gICAgICAgIHRyYW5zZm9ybTogWycnLCAnZ3B1JywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgc2NhbGU6IFt7XG4gICAgICAgIHNjYWxlOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS14JzogW3tcbiAgICAgICAgJ3NjYWxlLXgnOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS15JzogW3tcbiAgICAgICAgJ3NjYWxlLXknOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUm90YXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvcm90YXRlXG4gICAgICAgKi9cbiAgICAgIHJvdGF0ZTogW3tcbiAgICAgICAgcm90YXRlOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zbGF0ZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNsYXRlXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2xhdGUteCc6IFt7XG4gICAgICAgICd0cmFuc2xhdGUteCc6IFt0cmFuc2xhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS15JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS15JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXgnOiBbe1xuICAgICAgICAnc2tldy14JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2tldyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2tld1xuICAgICAgICovXG4gICAgICAnc2tldy15JzogW3tcbiAgICAgICAgJ3NrZXcteSc6IFtza2V3XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybSBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2Zvcm0tb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogW3tcbiAgICAgICAgb3JpZ2luOiBbJ2NlbnRlcicsICd0b3AnLCAndG9wLXJpZ2h0JywgJ3JpZ2h0JywgJ2JvdHRvbS1yaWdodCcsICdib3R0b20nLCAnYm90dG9tLWxlZnQnLCAnbGVmdCcsICd0b3AtbGVmdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEludGVyYWN0aXZpdHlcbiAgICAgIC8qKlxuICAgICAgICogQWNjZW50IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWNjZW50LWNvbG9yXG4gICAgICAgKi9cbiAgICAgIGFjY2VudDogW3tcbiAgICAgICAgYWNjZW50OiBbJ2F1dG8nLCBjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQXBwZWFyYW5jZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FwcGVhcmFuY2VcbiAgICAgICAqL1xuICAgICAgYXBwZWFyYW5jZTogW3tcbiAgICAgICAgYXBwZWFyYW5jZTogWydub25lJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEN1cnNvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1cnNvclxuICAgICAgICovXG4gICAgICBjdXJzb3I6IFt7XG4gICAgICAgIGN1cnNvcjogWydhdXRvJywgJ2RlZmF1bHQnLCAncG9pbnRlcicsICd3YWl0JywgJ3RleHQnLCAnbW92ZScsICdoZWxwJywgJ25vdC1hbGxvd2VkJywgJ25vbmUnLCAnY29udGV4dC1tZW51JywgJ3Byb2dyZXNzJywgJ2NlbGwnLCAnY3Jvc3NoYWlyJywgJ3ZlcnRpY2FsLXRleHQnLCAnYWxpYXMnLCAnY29weScsICduby1kcm9wJywgJ2dyYWInLCAnZ3JhYmJpbmcnLCAnYWxsLXNjcm9sbCcsICdjb2wtcmVzaXplJywgJ3Jvdy1yZXNpemUnLCAnbi1yZXNpemUnLCAnZS1yZXNpemUnLCAncy1yZXNpemUnLCAndy1yZXNpemUnLCAnbmUtcmVzaXplJywgJ253LXJlc2l6ZScsICdzZS1yZXNpemUnLCAnc3ctcmVzaXplJywgJ2V3LXJlc2l6ZScsICducy1yZXNpemUnLCAnbmVzdy1yZXNpemUnLCAnbndzZS1yZXNpemUnLCAnem9vbS1pbicsICd6b29tLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FyZXQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0LWluLXRpbWUtbW9kZSNjYXJldC1jb2xvci11dGlsaXRpZXNcbiAgICAgICAqL1xuICAgICAgJ2NhcmV0LWNvbG9yJzogW3tcbiAgICAgICAgY2FyZXQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUG9pbnRlciBFdmVudHNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wb2ludGVyLWV2ZW50c1xuICAgICAgICovXG4gICAgICAncG9pbnRlci1ldmVudHMnOiBbe1xuICAgICAgICAncG9pbnRlci1ldmVudHMnOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmVzaXplXG4gICAgICAgKi9cbiAgICAgIHJlc2l6ZTogW3tcbiAgICAgICAgcmVzaXplOiBbJ25vbmUnLCAneScsICd4JywgJyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtYmVoYXZpb3InOiBbe1xuICAgICAgICBzY3JvbGw6IFsnYXV0bycsICdzbW9vdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbSc6IFt7XG4gICAgICAgICdzY3JvbGwtbSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXgnOiBbe1xuICAgICAgICAnc2Nyb2xsLW14JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teSc6IFt7XG4gICAgICAgICdzY3JvbGwtbXknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tcyc6IFt7XG4gICAgICAgICdzY3JvbGwtbXMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWUnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1lJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW10JzogW3tcbiAgICAgICAgJ3Njcm9sbC1tdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1yJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tYic6IFt7XG4gICAgICAgICdzY3JvbGwtbWInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1sJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcCc6IFt7XG4gICAgICAgICdzY3JvbGwtcCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHknOiBbe1xuICAgICAgICAnc2Nyb2xsLXB5JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wcyc6IFt7XG4gICAgICAgICdzY3JvbGwtcHMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wZSc6IFt7XG4gICAgICAgICdzY3JvbGwtcGUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wdCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHQnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXByJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBiJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wbCc6IFt7XG4gICAgICAgICdzY3JvbGwtcGwnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFNuYXAgQWxpZ25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1hbGlnblxuICAgICAgICovXG4gICAgICAnc25hcC1hbGlnbic6IFt7XG4gICAgICAgIHNuYXA6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdhbGlnbi1ub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBTdG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtc3RvcFxuICAgICAgICovXG4gICAgICAnc25hcC1zdG9wJzogW3tcbiAgICAgICAgc25hcDogWydub3JtYWwnLCAnYWx3YXlzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtdHlwZVxuICAgICAgICovXG4gICAgICAnc25hcC10eXBlJzogW3tcbiAgICAgICAgc25hcDogWydub25lJywgJ3gnLCAneScsICdib3RoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlIFN0cmljdG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0cmljdG5lc3MnOiBbe1xuICAgICAgICBzbmFwOiBbJ21hbmRhdG9yeScsICdwcm94aW1pdHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICB0b3VjaDogW3tcbiAgICAgICAgdG91Y2g6IFsnYXV0bycsICdub25lJywgJ21hbmlwdWxhdGlvbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXgnOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd4JywgJ2xlZnQnLCAncmlnaHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC15JzogW3tcbiAgICAgICAgJ3RvdWNoLXBhbic6IFsneScsICd1cCcsICdkb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gUGluY2ggWm9vbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoLXBpbmNoLXpvb20nXSxcbiAgICAgIC8qKlxuICAgICAgICogVXNlciBTZWxlY3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2VyLXNlbGVjdFxuICAgICAgICovXG4gICAgICBzZWxlY3Q6IFt7XG4gICAgICAgIHNlbGVjdDogWydub25lJywgJ3RleHQnLCAnYWxsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdpbGwgQ2hhbmdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lsbC1jaGFuZ2VcbiAgICAgICAqL1xuICAgICAgJ3dpbGwtY2hhbmdlJzogW3tcbiAgICAgICAgJ3dpbGwtY2hhbmdlJzogWydhdXRvJywgJ3Njcm9sbCcsICdjb250ZW50cycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBTVkdcbiAgICAgIC8qKlxuICAgICAgICogRmlsbFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbGxcbiAgICAgICAqL1xuICAgICAgZmlsbDogW3tcbiAgICAgICAgZmlsbDogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZS13aWR0aFxuICAgICAgICovXG4gICAgICAnc3Ryb2tlLXcnOiBbe1xuICAgICAgICBzdHJva2U6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGgsIGlzQXJiaXRyYXJ5TnVtYmVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZVxuICAgICAgICovXG4gICAgICBzdHJva2U6IFt7XG4gICAgICAgIHN0cm9rZTogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvLyBBY2Nlc3NpYmlsaXR5XG4gICAgICAvKipcbiAgICAgICAqIFNjcmVlbiBSZWFkZXJzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NyZWVuLXJlYWRlcnNcbiAgICAgICAqL1xuICAgICAgc3I6IFsnc3Itb25seScsICdub3Qtc3Itb25seSddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb3JjZWQgQ29sb3IgQWRqdXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9yY2VkLWNvbG9yLWFkanVzdFxuICAgICAgICovXG4gICAgICAnZm9yY2VkLWNvbG9yLWFkanVzdCc6IFt7XG4gICAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogWydhdXRvJywgJ25vbmUnXVxuICAgICAgfV1cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6IHtcbiAgICAgIG92ZXJmbG93OiBbJ292ZXJmbG93LXgnLCAnb3ZlcmZsb3cteSddLFxuICAgICAgb3ZlcnNjcm9sbDogWydvdmVyc2Nyb2xsLXgnLCAnb3ZlcnNjcm9sbC15J10sXG4gICAgICBpbnNldDogWydpbnNldC14JywgJ2luc2V0LXknLCAnc3RhcnQnLCAnZW5kJywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXgnOiBbJ3JpZ2h0JywgJ2xlZnQnXSxcbiAgICAgICdpbnNldC15JzogWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICBmbGV4OiBbJ2Jhc2lzJywgJ2dyb3cnLCAnc2hyaW5rJ10sXG4gICAgICBnYXA6IFsnZ2FwLXgnLCAnZ2FwLXknXSxcbiAgICAgIHA6IFsncHgnLCAncHknLCAncHMnLCAncGUnLCAncHQnLCAncHInLCAncGInLCAncGwnXSxcbiAgICAgIHB4OiBbJ3ByJywgJ3BsJ10sXG4gICAgICBweTogWydwdCcsICdwYiddLFxuICAgICAgbTogWydteCcsICdteScsICdtcycsICdtZScsICdtdCcsICdtcicsICdtYicsICdtbCddLFxuICAgICAgbXg6IFsnbXInLCAnbWwnXSxcbiAgICAgIG15OiBbJ210JywgJ21iJ10sXG4gICAgICBzaXplOiBbJ3cnLCAnaCddLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddLFxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ2Z2bi1vcmRpbmFsJywgJ2Z2bi1zbGFzaGVkLXplcm8nLCAnZnZuLWZpZ3VyZScsICdmdm4tc3BhY2luZycsICdmdm4tZnJhY3Rpb24nXSxcbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1zbGFzaGVkLXplcm8nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZmlndXJlJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdsaW5lLWNsYW1wJzogWydkaXNwbGF5JywgJ292ZXJmbG93J10sXG4gICAgICByb3VuZGVkOiBbJ3JvdW5kZWQtcycsICdyb3VuZGVkLWUnLCAncm91bmRlZC10JywgJ3JvdW5kZWQtcicsICdyb3VuZGVkLWInLCAncm91bmRlZC1sJywgJ3JvdW5kZWQtc3MnLCAncm91bmRlZC1zZScsICdyb3VuZGVkLWVlJywgJ3JvdW5kZWQtZXMnLCAncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtcyc6IFsncm91bmRlZC1zcycsICdyb3VuZGVkLWVzJ10sXG4gICAgICAncm91bmRlZC1lJzogWydyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnXSxcbiAgICAgICdyb3VuZGVkLXQnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC10ciddLFxuICAgICAgJ3JvdW5kZWQtcic6IFsncm91bmRlZC10cicsICdyb3VuZGVkLWJyJ10sXG4gICAgICAncm91bmRlZC1iJzogWydyb3VuZGVkLWJyJywgJ3JvdW5kZWQtYmwnXSxcbiAgICAgICdyb3VuZGVkLWwnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC1ibCddLFxuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogWydib3JkZXItc3BhY2luZy14JywgJ2JvcmRlci1zcGFjaW5nLXknXSxcbiAgICAgICdib3JkZXItdyc6IFsnYm9yZGVyLXctcycsICdib3JkZXItdy1lJywgJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctcicsICdib3JkZXItdy1iJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy14JzogWydib3JkZXItdy1yJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy15JzogWydib3JkZXItdy10JywgJ2JvcmRlci13LWInXSxcbiAgICAgICdib3JkZXItY29sb3InOiBbJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1iJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXknOiBbJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1iJ10sXG4gICAgICAnc2Nyb2xsLW0nOiBbJ3Njcm9sbC1teCcsICdzY3JvbGwtbXknLCAnc2Nyb2xsLW1zJywgJ3Njcm9sbC1tZScsICdzY3JvbGwtbXQnLCAnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tYicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXgnOiBbJ3Njcm9sbC1tcicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXknOiBbJ3Njcm9sbC1tdCcsICdzY3JvbGwtbWInXSxcbiAgICAgICdzY3JvbGwtcCc6IFsnc2Nyb2xsLXB4JywgJ3Njcm9sbC1weScsICdzY3JvbGwtcHMnLCAnc2Nyb2xsLXBlJywgJ3Njcm9sbC1wdCcsICdzY3JvbGwtcHInLCAnc2Nyb2xsLXBiJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weCc6IFsnc2Nyb2xsLXByJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weSc6IFsnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wYiddLFxuICAgICAgdG91Y2g6IFsndG91Y2gteCcsICd0b3VjaC15JywgJ3RvdWNoLXB6J10sXG4gICAgICAndG91Y2gteCc6IFsndG91Y2gnXSxcbiAgICAgICd0b3VjaC15JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaCddXG4gICAgfSxcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnM6IHtcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXVxuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gYmFzZUNvbmZpZyBDb25maWcgd2hlcmUgb3RoZXIgY29uZmlnIHdpbGwgYmUgbWVyZ2VkIGludG8uIFRoaXMgb2JqZWN0IHdpbGwgYmUgbXV0YXRlZC5cbiAqIEBwYXJhbSBjb25maWdFeHRlbnNpb24gUGFydGlhbCBjb25maWcgdG8gbWVyZ2UgaW50byB0aGUgYGJhc2VDb25maWdgLlxuICovXG5mdW5jdGlvbiBtZXJnZUNvbmZpZ3MoYmFzZUNvbmZpZywge1xuICBjYWNoZVNpemUsXG4gIHByZWZpeCxcbiAgc2VwYXJhdG9yLFxuICBleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZSxcbiAgZXh0ZW5kID0ge30sXG4gIG92ZXJyaWRlID0ge31cbn0pIHtcbiAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlQ29uZmlnLCAnY2FjaGVTaXplJywgY2FjaGVTaXplKTtcbiAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlQ29uZmlnLCAncHJlZml4JywgcHJlZml4KTtcbiAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlQ29uZmlnLCAnc2VwYXJhdG9yJywgc2VwYXJhdG9yKTtcbiAgb3ZlcnJpZGVQcm9wZXJ0eShiYXNlQ29uZmlnLCAnZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUnLCBleHBlcmltZW50YWxQYXJzZUNsYXNzTmFtZSk7XG4gIGZvciAoY29uc3QgY29uZmlnS2V5IGluIG92ZXJyaWRlKSB7XG4gICAgb3ZlcnJpZGVDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdbY29uZmlnS2V5XSwgb3ZlcnJpZGVbY29uZmlnS2V5XSk7XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgaW4gZXh0ZW5kKSB7XG4gICAgbWVyZ2VDb25maWdQcm9wZXJ0aWVzKGJhc2VDb25maWdba2V5XSwgZXh0ZW5kW2tleV0pO1xuICB9XG4gIHJldHVybiBiYXNlQ29uZmlnO1xufVxuZnVuY3Rpb24gb3ZlcnJpZGVQcm9wZXJ0eShiYXNlT2JqZWN0LCBvdmVycmlkZUtleSwgb3ZlcnJpZGVWYWx1ZSkge1xuICBpZiAob3ZlcnJpZGVWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYmFzZU9iamVjdFtvdmVycmlkZUtleV0gPSBvdmVycmlkZVZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpIHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlT2JqZWN0LCBtZXJnZU9iamVjdCkge1xuICBpZiAobWVyZ2VPYmplY3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtZXJnZU9iamVjdCkge1xuICAgICAgY29uc3QgbWVyZ2VWYWx1ZSA9IG1lcmdlT2JqZWN0W2tleV07XG4gICAgICBpZiAobWVyZ2VWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJhc2VPYmplY3Rba2V5XSA9IChiYXNlT2JqZWN0W2tleV0gfHwgW10pLmNvbmNhdChtZXJnZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGV4dGVuZFRhaWx3aW5kTWVyZ2UoY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIHtcbiAgcmV0dXJuIHR5cGVvZiBjb25maWdFeHRlbnNpb24gPT09ICdmdW5jdGlvbicgPyBjcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcsIGNvbmZpZ0V4dGVuc2lvbiwgLi4uY3JlYXRlQ29uZmlnKSA6IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoKCkgPT4gbWVyZ2VDb25maWdzKGdldERlZmF1bHRDb25maWcoKSwgY29uZmlnRXh0ZW5zaW9uKSwgLi4uY3JlYXRlQ29uZmlnKTtcbn1cbmNvbnN0IHR3TWVyZ2UgPSAvKiNfX1BVUkVfXyovY3JlYXRlVGFpbHdpbmRNZXJnZShnZXREZWZhdWx0Q29uZmlnKTtcbmV4cG9ydCB7IGNyZWF0ZVRhaWx3aW5kTWVyZ2UsIGV4dGVuZFRhaWx3aW5kTWVyZ2UsIGZyb21UaGVtZSwgZ2V0RGVmYXVsdENvbmZpZywgbWVyZ2VDb25maWdzLCB0d0pvaW4sIHR3TWVyZ2UsIHZhbGlkYXRvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1bmRsZS1tanMubWpzLm1hcFxuIiwiZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gaXRlbSAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlbSA9PT0gXCJvYmplY3RcIiAmJiBpdGVtLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59XG5cbmV4cG9ydCB7IGlzT2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1vYmplY3QubWpzLm1hcFxuIiwiaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuL2lzLW9iamVjdC5tanMnO1xuXG5mdW5jdGlvbiBjbG9uZURlZXAoc291cmNlKSB7XG4gIGlmICghaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cbiAgY29uc3Qgb3V0cHV0ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgIG91dHB1dFtrZXldID0gY2xvbmVEZWVwKHNvdXJjZVtrZXldKTtcbiAgfVxuICByZXR1cm4gb3V0cHV0O1xufVxuXG5leHBvcnQgeyBjbG9uZURlZXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb25lLWRlZXAubWpzLm1hcFxuIiwiaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi9jbG9uZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4vaXMtb2JqZWN0Lm1qcyc7XG5cbmZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoaXNPYmplY3Qoc291cmNlKSAmJiBPYmplY3Qua2V5cyhzb3VyY2UpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBjbG9uZURlZXAoeyAuLi50YXJnZXQsIC4uLnNvdXJjZSB9KTtcbiAgfVxuICBjb25zdCBvdXRwdXQgPSB7IC4uLnRhcmdldCwgLi4uc291cmNlIH07XG4gIGlmIChpc09iamVjdChzb3VyY2UpICYmIGlzT2JqZWN0KHRhcmdldCkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkgJiYga2V5IGluIHRhcmdldCAmJiBpc09iamVjdCh0YXJnZXRba2V5XSkpIHtcbiAgICAgICAgb3V0cHV0W2tleV0gPSBtZXJnZURlZXAodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dHB1dFtrZXldID0gaXNPYmplY3Qoc291cmNlW2tleV0pID8gY2xvbmVEZWVwKHNvdXJjZVtrZXldKSA6IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0cHV0O1xufVxuXG5leHBvcnQgeyBtZXJnZURlZXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lcmdlLWRlZXAubWpzLm1hcFxuIiwiZnVuY3Rpb24gY3JlYXRlVGhlbWUoaW5wdXQpIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgeyBjcmVhdGVUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgYWNjb3JkaW9uVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImRpdmlkZS15IGRpdmlkZS1ncmF5LTIwMCBib3JkZXItZ3JheS0yMDAgZGFyazpkaXZpZGUtZ3JheS03MDAgZGFyazpib3JkZXItZ3JheS03MDBcIixcbiAgICBmbHVzaDoge1xuICAgICAgb2ZmOiBcInJvdW5kZWQtbGcgYm9yZGVyXCIsXG4gICAgICBvbjogXCJib3JkZXItYlwiXG4gICAgfVxuICB9LFxuICBjb250ZW50OiB7XG4gICAgYmFzZTogXCJwLTUgZmlyc3Q6cm91bmRlZC10LWxnIGxhc3Q6cm91bmRlZC1iLWxnIGRhcms6YmctZ3JheS05MDBcIlxuICB9LFxuICB0aXRsZToge1xuICAgIGFycm93OiB7XG4gICAgICBiYXNlOiBcImgtNiB3LTYgc2hyaW5rLTBcIixcbiAgICAgIG9wZW46IHtcbiAgICAgICAgb2ZmOiBcIlwiLFxuICAgICAgICBvbjogXCJyb3RhdGUtMTgwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIGJhc2U6IFwiZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTUgdGV4dC1sZWZ0IGZvbnQtbWVkaXVtIHRleHQtZ3JheS01MDAgZmlyc3Q6cm91bmRlZC10LWxnIGxhc3Q6cm91bmRlZC1iLWxnIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgIGZsdXNoOiB7XG4gICAgICBvZmY6IFwiaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JheS0yMDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS04MDBcIixcbiAgICAgIG9uOiBcImJnLXRyYW5zcGFyZW50IGRhcms6YmctdHJhbnNwYXJlbnRcIlxuICAgIH0sXG4gICAgaGVhZGluZzogXCJcIixcbiAgICBvcGVuOiB7XG4gICAgICBvZmY6IFwiXCIsXG4gICAgICBvbjogXCJiZy1ncmF5LTEwMCB0ZXh0LWdyYXktOTAwIGRhcms6YmctZ3JheS04MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBhY2NvcmRpb25UaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBhbGVydFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImZsZXggZmxleC1jb2wgZ2FwLTIgcC00IHRleHQtc21cIixcbiAgYm9yZGVyQWNjZW50OiBcImJvcmRlci10LTRcIixcbiAgY2xvc2VCdXR0b246IHtcbiAgICBiYXNlOiBcIi1tLTEuNSBtbC1hdXRvIGlubGluZS1mbGV4IGgtOCB3LTggcm91bmRlZC1sZyBwLTEuNSBmb2N1czpyaW5nLTJcIixcbiAgICBpY29uOiBcImgtNSB3LTVcIixcbiAgICBjb2xvcjoge1xuICAgICAgaW5mbzogXCJiZy1jeWFuLTEwMCB0ZXh0LWN5YW4tNTAwIGhvdmVyOmJnLWN5YW4tMjAwIGZvY3VzOnJpbmctY3lhbi00MDAgZGFyazpiZy1jeWFuLTIwMCBkYXJrOnRleHQtY3lhbi02MDAgZGFyazpob3ZlcjpiZy1jeWFuLTMwMFwiLFxuICAgICAgZ3JheTogXCJiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMjAwIGZvY3VzOnJpbmctZ3JheS00MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS0zMDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICAgIGZhaWx1cmU6IFwiYmctcmVkLTEwMCB0ZXh0LXJlZC01MDAgaG92ZXI6YmctcmVkLTIwMCBmb2N1czpyaW5nLXJlZC00MDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtNjAwIGRhcms6aG92ZXI6YmctcmVkLTMwMFwiLFxuICAgICAgc3VjY2VzczogXCJiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi01MDAgaG92ZXI6YmctZ3JlZW4tMjAwIGZvY3VzOnJpbmctZ3JlZW4tNDAwIGRhcms6YmctZ3JlZW4tMjAwIGRhcms6dGV4dC1ncmVlbi02MDAgZGFyazpob3ZlcjpiZy1ncmVlbi0zMDBcIixcbiAgICAgIHdhcm5pbmc6IFwiYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy01MDAgaG92ZXI6YmcteWVsbG93LTIwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgZGFyazpiZy15ZWxsb3ctMjAwIGRhcms6dGV4dC15ZWxsb3ctNjAwIGRhcms6aG92ZXI6YmcteWVsbG93LTMwMFwiLFxuICAgICAgcmVkOiBcImJnLXJlZC0xMDAgdGV4dC1yZWQtNTAwIGhvdmVyOmJnLXJlZC0yMDAgZm9jdXM6cmluZy1yZWQtNDAwIGRhcms6YmctcmVkLTIwMCBkYXJrOnRleHQtcmVkLTYwMCBkYXJrOmhvdmVyOmJnLXJlZC0zMDBcIixcbiAgICAgIGdyZWVuOiBcImJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTUwMCBob3ZlcjpiZy1ncmVlbi0yMDAgZm9jdXM6cmluZy1ncmVlbi00MDAgZGFyazpiZy1ncmVlbi0yMDAgZGFyazp0ZXh0LWdyZWVuLTYwMCBkYXJrOmhvdmVyOmJnLWdyZWVuLTMwMFwiLFxuICAgICAgeWVsbG93OiBcImJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctNTAwIGhvdmVyOmJnLXllbGxvdy0yMDAgZm9jdXM6cmluZy15ZWxsb3ctNDAwIGRhcms6YmcteWVsbG93LTIwMCBkYXJrOnRleHQteWVsbG93LTYwMCBkYXJrOmhvdmVyOmJnLXllbGxvdy0zMDBcIixcbiAgICAgIGJsdWU6IFwiYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTUwMCBob3ZlcjpiZy1ibHVlLTIwMCBmb2N1czpyaW5nLWJsdWUtNDAwIGRhcms6YmctYmx1ZS0yMDAgZGFyazp0ZXh0LWJsdWUtNjAwIGRhcms6aG92ZXI6YmctYmx1ZS0zMDBcIixcbiAgICAgIGN5YW46IFwiYmctY3lhbi0xMDAgdGV4dC1jeWFuLTUwMCBob3ZlcjpiZy1jeWFuLTIwMCBmb2N1czpyaW5nLWN5YW4tNDAwIGRhcms6YmctY3lhbi0yMDAgZGFyazp0ZXh0LWN5YW4tNjAwIGRhcms6aG92ZXI6YmctY3lhbi0zMDBcIixcbiAgICAgIHBpbms6IFwiYmctcGluay0xMDAgdGV4dC1waW5rLTUwMCBob3ZlcjpiZy1waW5rLTIwMCBmb2N1czpyaW5nLXBpbmstNDAwIGRhcms6YmctcGluay0yMDAgZGFyazp0ZXh0LXBpbmstNjAwIGRhcms6aG92ZXI6YmctcGluay0zMDBcIixcbiAgICAgIGxpbWU6IFwiYmctbGltZS0xMDAgdGV4dC1saW1lLTUwMCBob3ZlcjpiZy1saW1lLTIwMCBmb2N1czpyaW5nLWxpbWUtNDAwIGRhcms6YmctbGltZS0yMDAgZGFyazp0ZXh0LWxpbWUtNjAwIGRhcms6aG92ZXI6YmctbGltZS0zMDBcIixcbiAgICAgIGRhcms6IFwiYmctZ3JheS0xMDAgdGV4dC1ncmF5LTUwMCBob3ZlcjpiZy1ncmF5LTIwMCBmb2N1czpyaW5nLWdyYXktNDAwIGRhcms6YmctZ3JheS0yMDAgZGFyazp0ZXh0LWdyYXktNjAwIGRhcms6aG92ZXI6YmctZ3JheS0zMDBcIixcbiAgICAgIGluZGlnbzogXCJiZy1pbmRpZ28tMTAwIHRleHQtaW5kaWdvLTUwMCBob3ZlcjpiZy1pbmRpZ28tMjAwIGZvY3VzOnJpbmctaW5kaWdvLTQwMCBkYXJrOmJnLWluZGlnby0yMDAgZGFyazp0ZXh0LWluZGlnby02MDAgZGFyazpob3ZlcjpiZy1pbmRpZ28tMzAwXCIsXG4gICAgICBwdXJwbGU6IFwiYmctcHVycGxlLTEwMCB0ZXh0LXB1cnBsZS01MDAgaG92ZXI6YmctcHVycGxlLTIwMCBmb2N1czpyaW5nLXB1cnBsZS00MDAgZGFyazpiZy1wdXJwbGUtMjAwIGRhcms6dGV4dC1wdXJwbGUtNjAwIGRhcms6aG92ZXI6YmctcHVycGxlLTMwMFwiLFxuICAgICAgdGVhbDogXCJiZy10ZWFsLTEwMCB0ZXh0LXRlYWwtNTAwIGhvdmVyOmJnLXRlYWwtMjAwIGZvY3VzOnJpbmctdGVhbC00MDAgZGFyazpiZy10ZWFsLTIwMCBkYXJrOnRleHQtdGVhbC02MDAgZGFyazpob3ZlcjpiZy10ZWFsLTMwMFwiLFxuICAgICAgbGlnaHQ6IFwiYmctZ3JheS01MCB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOnJpbmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS0yMDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIlxuICAgIH1cbiAgfSxcbiAgY29sb3I6IHtcbiAgICBpbmZvOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTEwMCB0ZXh0LWN5YW4tNzAwIGRhcms6YmctY3lhbi0yMDAgZGFyazp0ZXh0LWN5YW4tODAwXCIsXG4gICAgZ3JheTogXCJib3JkZXItZ3JheS01MDAgYmctZ3JheS0xMDAgdGV4dC1ncmF5LTcwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTMwMFwiLFxuICAgIGZhaWx1cmU6IFwiYm9yZGVyLXJlZC01MDAgYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtODAwXCIsXG4gICAgc3VjY2VzczogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTEwMCB0ZXh0LWdyZWVuLTcwMCBkYXJrOmJnLWdyZWVuLTIwMCBkYXJrOnRleHQtZ3JlZW4tODAwXCIsXG4gICAgd2FybmluZzogXCJib3JkZXIteWVsbG93LTUwMCBiZy15ZWxsb3ctMTAwIHRleHQteWVsbG93LTcwMCBkYXJrOmJnLXllbGxvdy0yMDAgZGFyazp0ZXh0LXllbGxvdy04MDBcIixcbiAgICByZWQ6IFwiYm9yZGVyLXJlZC01MDAgYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtODAwXCIsXG4gICAgZ3JlZW46IFwiYm9yZGVyLWdyZWVuLTUwMCBiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi03MDAgZGFyazpiZy1ncmVlbi0yMDAgZGFyazp0ZXh0LWdyZWVuLTgwMFwiLFxuICAgIHllbGxvdzogXCJib3JkZXIteWVsbG93LTUwMCBiZy15ZWxsb3ctMTAwIHRleHQteWVsbG93LTcwMCBkYXJrOmJnLXllbGxvdy0yMDAgZGFyazp0ZXh0LXllbGxvdy04MDBcIixcbiAgICBibHVlOiBcImJvcmRlci1ibHVlLTUwMCBiZy1ibHVlLTEwMCB0ZXh0LWJsdWUtNzAwIGRhcms6YmctYmx1ZS0yMDAgZGFyazp0ZXh0LWJsdWUtODAwXCIsXG4gICAgY3lhbjogXCJib3JkZXItY3lhbi01MDAgYmctY3lhbi0xMDAgdGV4dC1jeWFuLTcwMCBkYXJrOmJnLWN5YW4tMjAwIGRhcms6dGV4dC1jeWFuLTgwMFwiLFxuICAgIHBpbms6IFwiYm9yZGVyLXBpbmstNTAwIGJnLXBpbmstMTAwIHRleHQtcGluay03MDAgZGFyazpiZy1waW5rLTIwMCBkYXJrOnRleHQtcGluay04MDBcIixcbiAgICBsaW1lOiBcImJvcmRlci1saW1lLTUwMCBiZy1saW1lLTEwMCB0ZXh0LWxpbWUtNzAwIGRhcms6YmctbGltZS0yMDAgZGFyazp0ZXh0LWxpbWUtODAwXCIsXG4gICAgZGFyazogXCJib3JkZXItZ3JheS02MDAgYmctZ3JheS04MDAgdGV4dC1ncmF5LTIwMCBkYXJrOmJnLWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTMwMFwiLFxuICAgIGluZGlnbzogXCJib3JkZXItaW5kaWdvLTUwMCBiZy1pbmRpZ28tMTAwIHRleHQtaW5kaWdvLTcwMCBkYXJrOmJnLWluZGlnby0yMDAgZGFyazp0ZXh0LWluZGlnby04MDBcIixcbiAgICBwdXJwbGU6IFwiYm9yZGVyLXB1cnBsZS01MDAgYmctcHVycGxlLTEwMCB0ZXh0LXB1cnBsZS03MDAgZGFyazpiZy1wdXJwbGUtMjAwIGRhcms6dGV4dC1wdXJwbGUtODAwXCIsXG4gICAgdGVhbDogXCJib3JkZXItdGVhbC01MDAgYmctdGVhbC0xMDAgdGV4dC10ZWFsLTcwMCBkYXJrOmJnLXRlYWwtMjAwIGRhcms6dGV4dC10ZWFsLTgwMFwiLFxuICAgIGxpZ2h0OiBcImJvcmRlci1ncmF5LTQwMCBiZy1ncmF5LTUwIHRleHQtZ3JheS02MDAgZGFyazpiZy1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS0yMDBcIlxuICB9LFxuICBpY29uOiBcIm1yLTMgaW5saW5lIGgtNSB3LTUgZmxleC1zaHJpbmstMFwiLFxuICByb3VuZGVkOiBcInJvdW5kZWQtbGdcIixcbiAgd3JhcHBlcjogXCJmbGV4IGl0ZW1zLWNlbnRlclwiXG59KTtcblxuZXhwb3J0IHsgYWxlcnRUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBhdmF0YXJUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc3BhY2UteC00IHJvdW5kZWRcIixcbiAgICBib3JkZXJlZDogXCJwLTEgcmluZy0yXCIsXG4gICAgcm91bmRlZDogXCJyb3VuZGVkLWZ1bGxcIixcbiAgICBjb2xvcjoge1xuICAgICAgZGFyazogXCJyaW5nLWdyYXktODAwIGRhcms6cmluZy1ncmF5LTgwMFwiLFxuICAgICAgZmFpbHVyZTogXCJyaW5nLXJlZC01MDAgZGFyazpyaW5nLXJlZC03MDBcIixcbiAgICAgIGdyYXk6IFwicmluZy1ncmF5LTUwMCBkYXJrOnJpbmctZ3JheS00MDBcIixcbiAgICAgIGluZm86IFwicmluZy1jeWFuLTQwMCBkYXJrOnJpbmctY3lhbi04MDBcIixcbiAgICAgIGxpZ2h0OiBcInJpbmctZ3JheS0zMDAgZGFyazpyaW5nLWdyYXktNTAwXCIsXG4gICAgICBwdXJwbGU6IFwicmluZy1wdXJwbGUtNTAwIGRhcms6cmluZy1wdXJwbGUtNjAwXCIsXG4gICAgICBzdWNjZXNzOiBcInJpbmctZ3JlZW4tNTAwIGRhcms6cmluZy1ncmVlbi01MDBcIixcbiAgICAgIHdhcm5pbmc6IFwicmluZy15ZWxsb3ctMzAwIGRhcms6cmluZy15ZWxsb3ctNTAwXCIsXG4gICAgICBwaW5rOiBcInJpbmctcGluay01MDAgZGFyazpyaW5nLXBpbmstNTAwXCJcbiAgICB9LFxuICAgIGltZzoge1xuICAgICAgYmFzZTogXCJyb3VuZGVkXCIsXG4gICAgICBvZmY6IFwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIGJnLWdyYXktMTAwIGRhcms6YmctZ3JheS02MDBcIixcbiAgICAgIG9uOiBcIlwiLFxuICAgICAgcGxhY2Vob2xkZXI6IFwiYWJzb2x1dGUgLWJvdHRvbS0xIGgtYXV0byB3LWF1dG8gdGV4dC1ncmF5LTQwMFwiXG4gICAgfSxcbiAgICBzaXplOiB7XG4gICAgICB4czogXCJoLTYgdy02XCIsXG4gICAgICBzbTogXCJoLTggdy04XCIsXG4gICAgICBtZDogXCJoLTEwIHctMTBcIixcbiAgICAgIGxnOiBcImgtMjAgdy0yMFwiLFxuICAgICAgeGw6IFwiaC0zNiB3LTM2XCJcbiAgICB9LFxuICAgIHN0YWNrZWQ6IFwicmluZy0yIHJpbmctZ3JheS0zMDAgZGFyazpyaW5nLWdyYXktNTAwXCIsXG4gICAgc3RhdHVzUG9zaXRpb246IHtcbiAgICAgIFwiYm90dG9tLWxlZnRcIjogXCItYm90dG9tLTEgLWxlZnQtMVwiLFxuICAgICAgXCJib3R0b20tY2VudGVyXCI6IFwiLWJvdHRvbS0xXCIsXG4gICAgICBcImJvdHRvbS1yaWdodFwiOiBcIi1ib3R0b20tMSAtcmlnaHQtMVwiLFxuICAgICAgXCJ0b3AtbGVmdFwiOiBcIi1sZWZ0LTEgLXRvcC0xXCIsXG4gICAgICBcInRvcC1jZW50ZXJcIjogXCItdG9wLTFcIixcbiAgICAgIFwidG9wLXJpZ2h0XCI6IFwiLXJpZ2h0LTEgLXRvcC0xXCIsXG4gICAgICBcImNlbnRlci1yaWdodFwiOiBcIi1yaWdodC0xXCIsXG4gICAgICBjZW50ZXI6IFwiXCIsXG4gICAgICBcImNlbnRlci1sZWZ0XCI6IFwiLWxlZnQtMVwiXG4gICAgfSxcbiAgICBzdGF0dXM6IHtcbiAgICAgIGF3YXk6IFwiYmcteWVsbG93LTQwMFwiLFxuICAgICAgYmFzZTogXCJhYnNvbHV0ZSBoLTMuNSB3LTMuNSByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLXdoaXRlIGRhcms6Ym9yZGVyLWdyYXktODAwXCIsXG4gICAgICBidXN5OiBcImJnLXJlZC00MDBcIixcbiAgICAgIG9mZmxpbmU6IFwiYmctZ3JheS00MDBcIixcbiAgICAgIG9ubGluZTogXCJiZy1ncmVlbi00MDBcIlxuICAgIH0sXG4gICAgaW5pdGlhbHM6IHtcbiAgICAgIHRleHQ6IFwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS0zMDBcIixcbiAgICAgIGJhc2U6IFwicmVsYXRpdmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG92ZXJmbG93LWhpZGRlbiBiZy1ncmF5LTEwMCBkYXJrOmJnLWdyYXktNjAwXCJcbiAgICB9XG4gIH0sXG4gIGdyb3VwOiB7XG4gICAgYmFzZTogXCJmbGV4IC1zcGFjZS14LTRcIlxuICB9LFxuICBncm91cENvdW50ZXI6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlIGZsZXggaC0xMCB3LTEwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctZ3JheS03MDAgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHJpbmctMiByaW5nLWdyYXktMzAwIGhvdmVyOmJnLWdyYXktNjAwIGRhcms6cmluZy1ncmF5LTUwMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBhdmF0YXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBiYWRnZVRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJmbGV4IGgtZml0IGl0ZW1zLWNlbnRlciBnYXAtMSBmb250LXNlbWlib2xkXCIsXG4gICAgY29sb3I6IHtcbiAgICAgIGluZm86IFwiYmctY3lhbi0xMDAgdGV4dC1jeWFuLTgwMCBncm91cC1ob3ZlcjpiZy1jeWFuLTIwMCBkYXJrOmJnLWN5YW4tMjAwIGRhcms6dGV4dC1jeWFuLTgwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWN5YW4tMzAwXCIsXG4gICAgICBncmF5OiBcImJnLWdyYXktMTAwIHRleHQtZ3JheS04MDAgZ3JvdXAtaG92ZXI6YmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS0zMDAgZGFyazpncm91cC1ob3ZlcjpiZy1ncmF5LTYwMFwiLFxuICAgICAgZmFpbHVyZTogXCJiZy1yZWQtMTAwIHRleHQtcmVkLTgwMCBncm91cC1ob3ZlcjpiZy1yZWQtMjAwIGRhcms6YmctcmVkLTIwMCBkYXJrOnRleHQtcmVkLTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLXJlZC0zMDBcIixcbiAgICAgIHN1Y2Nlc3M6IFwiYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tODAwIGdyb3VwLWhvdmVyOmJnLWdyZWVuLTIwMCBkYXJrOmJnLWdyZWVuLTIwMCBkYXJrOnRleHQtZ3JlZW4tOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctZ3JlZW4tMzAwXCIsXG4gICAgICB3YXJuaW5nOiBcImJnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctODAwIGdyb3VwLWhvdmVyOmJnLXllbGxvdy0yMDAgZGFyazpiZy15ZWxsb3ctMjAwIGRhcms6dGV4dC15ZWxsb3ctOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmcteWVsbG93LTMwMFwiLFxuICAgICAgaW5kaWdvOiBcImJnLWluZGlnby0xMDAgdGV4dC1pbmRpZ28tODAwIGdyb3VwLWhvdmVyOmJnLWluZGlnby0yMDAgZGFyazpiZy1pbmRpZ28tMjAwIGRhcms6dGV4dC1pbmRpZ28tOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctaW5kaWdvLTMwMFwiLFxuICAgICAgcHVycGxlOiBcImJnLXB1cnBsZS0xMDAgdGV4dC1wdXJwbGUtODAwIGdyb3VwLWhvdmVyOmJnLXB1cnBsZS0yMDAgZGFyazpiZy1wdXJwbGUtMjAwIGRhcms6dGV4dC1wdXJwbGUtOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctcHVycGxlLTMwMFwiLFxuICAgICAgcGluazogXCJiZy1waW5rLTEwMCB0ZXh0LXBpbmstODAwIGdyb3VwLWhvdmVyOmJnLXBpbmstMjAwIGRhcms6YmctcGluay0yMDAgZGFyazp0ZXh0LXBpbmstOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctcGluay0zMDBcIixcbiAgICAgIGJsdWU6IFwiYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTgwMCBncm91cC1ob3ZlcjpiZy1ibHVlLTIwMCBkYXJrOmJnLWJsdWUtMjAwIGRhcms6dGV4dC1ibHVlLTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWJsdWUtMzAwXCIsXG4gICAgICBjeWFuOiBcImJnLWN5YW4tMTAwIHRleHQtY3lhbi04MDAgZ3JvdXAtaG92ZXI6YmctY3lhbi0yMDAgZGFyazpiZy1jeWFuLTIwMCBkYXJrOnRleHQtY3lhbi05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1jeWFuLTMwMFwiLFxuICAgICAgZGFyazogXCJiZy1ncmF5LTYwMCB0ZXh0LWdyYXktMTAwIGdyb3VwLWhvdmVyOmJnLWdyYXktNTAwIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMjAwIGRhcms6Z3JvdXAtaG92ZXI6YmctZ3JheS03MDBcIixcbiAgICAgIGxpZ2h0OiBcImJnLWdyYXktMjAwIHRleHQtZ3JheS04MDAgZ3JvdXAtaG92ZXI6YmctZ3JheS0zMDAgZGFyazpiZy1ncmF5LTQwMCBkYXJrOnRleHQtZ3JheS05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1ncmF5LTUwMFwiLFxuICAgICAgZ3JlZW46IFwiYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tODAwIGdyb3VwLWhvdmVyOmJnLWdyZWVuLTIwMCBkYXJrOmJnLWdyZWVuLTIwMCBkYXJrOnRleHQtZ3JlZW4tOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctZ3JlZW4tMzAwXCIsXG4gICAgICBsaW1lOiBcImJnLWxpbWUtMTAwIHRleHQtbGltZS04MDAgZ3JvdXAtaG92ZXI6YmctbGltZS0yMDAgZGFyazpiZy1saW1lLTIwMCBkYXJrOnRleHQtbGltZS05MDAgZGFyazpncm91cC1ob3ZlcjpiZy1saW1lLTMwMFwiLFxuICAgICAgcmVkOiBcImJnLXJlZC0xMDAgdGV4dC1yZWQtODAwIGdyb3VwLWhvdmVyOmJnLXJlZC0yMDAgZGFyazpiZy1yZWQtMjAwIGRhcms6dGV4dC1yZWQtOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctcmVkLTMwMFwiLFxuICAgICAgdGVhbDogXCJiZy10ZWFsLTEwMCB0ZXh0LXRlYWwtODAwIGdyb3VwLWhvdmVyOmJnLXRlYWwtMjAwIGRhcms6YmctdGVhbC0yMDAgZGFyazp0ZXh0LXRlYWwtOTAwIGRhcms6Z3JvdXAtaG92ZXI6YmctdGVhbC0zMDBcIixcbiAgICAgIHllbGxvdzogXCJiZy15ZWxsb3ctMTAwIHRleHQteWVsbG93LTgwMCBncm91cC1ob3ZlcjpiZy15ZWxsb3ctMjAwIGRhcms6YmcteWVsbG93LTIwMCBkYXJrOnRleHQteWVsbG93LTkwMCBkYXJrOmdyb3VwLWhvdmVyOmJnLXllbGxvdy0zMDBcIlxuICAgIH0sXG4gICAgaHJlZjogXCJncm91cFwiLFxuICAgIHNpemU6IHtcbiAgICAgIHhzOiBcInAtMSB0ZXh0LXhzXCIsXG4gICAgICBzbTogXCJwLTEuNSB0ZXh0LXNtXCJcbiAgICB9XG4gIH0sXG4gIGljb246IHtcbiAgICBvZmY6IFwicm91bmRlZCBweC0yIHB5LTAuNVwiLFxuICAgIG9uOiBcInJvdW5kZWQtZnVsbCBwLTEuNVwiLFxuICAgIHNpemU6IHtcbiAgICAgIHhzOiBcImgtMyB3LTNcIixcbiAgICAgIHNtOiBcImgtMy41IHctMy41XCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBiYWRnZVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGJsb2NrcXVvdGVUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwidGV4dC14bCBmb250LXNlbWlib2xkIGl0YWxpYyB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBibG9ja3F1b3RlVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgYnJlYWRjcnVtYlRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJcIixcbiAgICBsaXN0OiBcImZsZXggaXRlbXMtY2VudGVyXCJcbiAgfSxcbiAgaXRlbToge1xuICAgIGJhc2U6IFwiZ3JvdXAgZmxleCBpdGVtcy1jZW50ZXJcIixcbiAgICBjaGV2cm9uOiBcIm14LTEgaC00IHctNCB0ZXh0LWdyYXktNDAwIGdyb3VwLWZpcnN0OmhpZGRlbiBtZDpteC0yXCIsXG4gICAgaHJlZjoge1xuICAgICAgb2ZmOiBcImZsZXggaXRlbXMtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICAgIG9uOiBcImZsZXggaXRlbXMtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIlxuICAgIH0sXG4gICAgaWNvbjogXCJtci0yIGgtNCB3LTRcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgYnJlYWRjcnVtYlRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGJ1dHRvblRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImdyb3VwIHJlbGF0aXZlIGZsZXggaXRlbXMtc3RyZXRjaCBqdXN0aWZ5LWNlbnRlciBwLTAuNSB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSB0cmFuc2l0aW9uLVtjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2UsYm94LXNoYWRvd10gZm9jdXM6ei0xMCBmb2N1czpvdXRsaW5lLW5vbmVcIixcbiAgZnVsbFNpemVkOiBcInctZnVsbFwiLFxuICBjb2xvcjoge1xuICAgIGRhcms6IFwiYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWdyYXktMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JheS05MDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS04MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWdyYXktNzAwXCIsXG4gICAgZmFpbHVyZTogXCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IGJnLXJlZC03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1yZWQtMzAwIGVuYWJsZWQ6aG92ZXI6YmctcmVkLTgwMCBkYXJrOmJnLXJlZC02MDAgZGFyazpmb2N1czpyaW5nLXJlZC05MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLXJlZC03MDBcIixcbiAgICBncmF5OiBcIjpyaW5nLWN5YW4tNzAwIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMCBmb2N1czp0ZXh0LWN5YW4tNzAwIGZvY3VzOnJpbmctNCBlbmFibGVkOmhvdmVyOmJnLWdyYXktMTAwIGVuYWJsZWQ6aG92ZXI6dGV4dC1jeWFuLTcwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLXRyYW5zcGFyZW50IGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctZ3JheS03MDAgZGFyazplbmFibGVkOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICBpbmZvOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctY3lhbi03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWN5YW4tODAwIGRhcms6YmctY3lhbi02MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tODAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1jeWFuLTcwMFwiLFxuICAgIGxpZ2h0OiBcImJvcmRlciBib3JkZXItZ3JheS0zMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYXktMTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1ncmF5LTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6Ym9yZGVyLWdyYXktNzAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1ncmF5LTcwMFwiLFxuICAgIHB1cnBsZTogXCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50IGJnLXB1cnBsZS03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1wdXJwbGUtMzAwIGVuYWJsZWQ6aG92ZXI6YmctcHVycGxlLTgwMCBkYXJrOmJnLXB1cnBsZS02MDAgZGFyazpmb2N1czpyaW5nLXB1cnBsZS05MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLXB1cnBsZS03MDBcIixcbiAgICBzdWNjZXNzOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctZ3JlZW4tNzAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctZ3JlZW4tMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JlZW4tODAwIGRhcms6YmctZ3JlZW4tNjAwIGRhcms6Zm9jdXM6cmluZy1ncmVlbi04MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWdyZWVuLTcwMFwiLFxuICAgIHdhcm5pbmc6IFwiYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy15ZWxsb3ctNDAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmcteWVsbG93LTMwMCBlbmFibGVkOmhvdmVyOmJnLXllbGxvdy01MDAgZGFyazpmb2N1czpyaW5nLXllbGxvdy05MDBcIixcbiAgICBibHVlOiBcImJvcmRlciBib3JkZXItdHJhbnNwYXJlbnQgYmctYmx1ZS03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1ibHVlLTMwMCBlbmFibGVkOmhvdmVyOmJnLWJsdWUtODAwIGRhcms6YmctYmx1ZS02MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDBcIixcbiAgICBjeWFuOiBcImJvcmRlciBib3JkZXItY3lhbi0zMDAgYmctd2hpdGUgdGV4dC1jeWFuLTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWN5YW4tMTAwIGRhcms6Ym9yZGVyLWN5YW4tNjAwIGRhcms6YmctY3lhbi02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1jeWFuLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6Ym9yZGVyLWN5YW4tNzAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1jeWFuLTcwMFwiLFxuICAgIGdyZWVuOiBcImJvcmRlciBib3JkZXItZ3JlZW4tMzAwIGJnLXdoaXRlIHRleHQtZ3JlZW4tOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWdyZWVuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyZWVuLTEwMCBkYXJrOmJvcmRlci1ncmVlbi02MDAgZGFyazpiZy1ncmVlbi02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1ncmVlbi03MDAgZGFyazplbmFibGVkOmhvdmVyOmJvcmRlci1ncmVlbi03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWdyZWVuLTcwMFwiLFxuICAgIGluZGlnbzogXCJib3JkZXIgYm9yZGVyLWluZGlnby0zMDAgYmctd2hpdGUgdGV4dC1pbmRpZ28tOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWluZGlnby0zMDAgZW5hYmxlZDpob3ZlcjpiZy1pbmRpZ28tMTAwIGRhcms6Ym9yZGVyLWluZGlnby02MDAgZGFyazpiZy1pbmRpZ28tNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOnJpbmctaW5kaWdvLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6Ym9yZGVyLWluZGlnby03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLWluZGlnby03MDBcIixcbiAgICBsaW1lOiBcImJvcmRlciBib3JkZXItbGltZS0zMDAgYmctd2hpdGUgdGV4dC1saW1lLTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1saW1lLTMwMCBlbmFibGVkOmhvdmVyOmJnLWxpbWUtMTAwIGRhcms6Ym9yZGVyLWxpbWUtNjAwIGRhcms6YmctbGltZS02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1saW1lLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6Ym9yZGVyLWxpbWUtNzAwIGRhcms6ZW5hYmxlZDpob3ZlcjpiZy1saW1lLTcwMFwiLFxuICAgIHBpbms6IFwiYm9yZGVyIGJvcmRlci1waW5rLTMwMCBiZy13aGl0ZSB0ZXh0LXBpbmstOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXBpbmstMzAwIGVuYWJsZWQ6aG92ZXI6YmctcGluay0xMDAgZGFyazpib3JkZXItcGluay02MDAgZGFyazpiZy1waW5rLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLXBpbmstNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItcGluay03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLXBpbmstNzAwXCIsXG4gICAgcmVkOiBcImJvcmRlciBib3JkZXItcmVkLTMwMCBiZy13aGl0ZSB0ZXh0LXJlZC05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctcmVkLTMwMCBlbmFibGVkOmhvdmVyOmJnLXJlZC0xMDAgZGFyazpib3JkZXItcmVkLTYwMCBkYXJrOmJnLXJlZC02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1yZWQtNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItcmVkLTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmctcmVkLTcwMFwiLFxuICAgIHRlYWw6IFwiYm9yZGVyIGJvcmRlci10ZWFsLTMwMCBiZy13aGl0ZSB0ZXh0LXRlYWwtOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXRlYWwtMzAwIGVuYWJsZWQ6aG92ZXI6YmctdGVhbC0xMDAgZGFyazpib3JkZXItdGVhbC02MDAgZGFyazpiZy10ZWFsLTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpyaW5nLXRlYWwtNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXItdGVhbC03MDAgZGFyazplbmFibGVkOmhvdmVyOmJnLXRlYWwtNzAwXCIsXG4gICAgeWVsbG93OiBcImJvcmRlciBib3JkZXIteWVsbG93LTMwMCBiZy13aGl0ZSB0ZXh0LXllbGxvdy05MDAgZm9jdXM6cmluZy00IGZvY3VzOnJpbmcteWVsbG93LTMwMCBlbmFibGVkOmhvdmVyOmJnLXllbGxvdy0xMDAgZGFyazpib3JkZXIteWVsbG93LTYwMCBkYXJrOmJnLXllbGxvdy02MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNzAwIGRhcms6ZW5hYmxlZDpob3Zlcjpib3JkZXIteWVsbG93LTcwMCBkYXJrOmVuYWJsZWQ6aG92ZXI6YmcteWVsbG93LTcwMFwiXG4gIH0sXG4gIGRpc2FibGVkOiBcImN1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwXCIsXG4gIGlzUHJvY2Vzc2luZzogXCJjdXJzb3Itd2FpdFwiLFxuICBzcGlubmVyU2xvdDogXCJhYnNvbHV0ZSB0b3AtMCBmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXJcIixcbiAgc3Bpbm5lckxlZnRQb3NpdGlvbjoge1xuICAgIHhzOiBcImxlZnQtMlwiLFxuICAgIHNtOiBcImxlZnQtM1wiLFxuICAgIG1kOiBcImxlZnQtNFwiLFxuICAgIGxnOiBcImxlZnQtNVwiLFxuICAgIHhsOiBcImxlZnQtNlwiXG4gIH0sXG4gIGdyYWRpZW50OiB7XG4gICAgY3lhbjogXCJiZy1ncmFkaWVudC10by1yIGZyb20tY3lhbi00MDAgdmlhLWN5YW4tNTAwIHRvLWN5YW4tNjAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctY3lhbi0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1iciBkYXJrOmZvY3VzOnJpbmctY3lhbi04MDBcIixcbiAgICBmYWlsdXJlOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS1yZWQtNDAwIHZpYS1yZWQtNTAwIHRvLXJlZC02MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1yZWQtMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZGFyazpmb2N1czpyaW5nLXJlZC04MDBcIixcbiAgICBpbmZvOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS1jeWFuLTUwMCB2aWEtY3lhbi02MDAgdG8tY3lhbi03MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy1jeWFuLTgwMFwiLFxuICAgIGxpbWU6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWxpbWUtMjAwIHZpYS1saW1lLTQwMCB0by1saW1lLTUwMCB0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWxpbWUtMzAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYnIgZGFyazpmb2N1czpyaW5nLWxpbWUtODAwXCIsXG4gICAgcGluazogXCJiZy1ncmFkaWVudC10by1yIGZyb20tcGluay00MDAgdmlhLXBpbmstNTAwIHRvLXBpbmstNjAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctcGluay0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1iciBkYXJrOmZvY3VzOnJpbmctcGluay04MDBcIixcbiAgICBwdXJwbGU6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXB1cnBsZS01MDAgdmlhLXB1cnBsZS02MDAgdG8tcHVycGxlLTcwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLXB1cnBsZS0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1iciBkYXJrOmZvY3VzOnJpbmctcHVycGxlLTgwMFwiLFxuICAgIHN1Y2Nlc3M6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWdyZWVuLTQwMCB2aWEtZ3JlZW4tNTAwIHRvLWdyZWVuLTYwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWdyZWVuLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy1ncmVlbi04MDBcIixcbiAgICB0ZWFsOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS10ZWFsLTQwMCB2aWEtdGVhbC01MDAgdG8tdGVhbC02MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy10ZWFsLTMwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGRhcms6Zm9jdXM6cmluZy10ZWFsLTgwMFwiXG4gIH0sXG4gIGdyYWRpZW50RHVvVG9uZToge1xuICAgIGN5YW5Ub0JsdWU6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLWN5YW4tNTAwIHRvLWN5YW4tNTAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctY3lhbi0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1ibCBkYXJrOmZvY3VzOnJpbmctY3lhbi04MDBcIixcbiAgICBncmVlblRvQmx1ZTogXCJiZy1ncmFkaWVudC10by1iciBmcm9tLWdyZWVuLTQwMCB0by1jeWFuLTYwMCB0ZXh0LXdoaXRlIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWdyZWVuLTIwMCBlbmFibGVkOmhvdmVyOmJnLWdyYWRpZW50LXRvLWJsIGRhcms6Zm9jdXM6cmluZy1ncmVlbi04MDBcIixcbiAgICBwaW5rVG9PcmFuZ2U6IFwiYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1waW5rLTUwMCB0by1vcmFuZ2UtNDAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctcGluay0yMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1ibCBkYXJrOmZvY3VzOnJpbmctcGluay04MDBcIixcbiAgICBwdXJwbGVUb0JsdWU6IFwiYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1wdXJwbGUtNjAwIHRvLWN5YW4tNTAwIHRleHQtd2hpdGUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctY3lhbi0zMDAgZW5hYmxlZDpob3ZlcjpiZy1ncmFkaWVudC10by1ibCBkYXJrOmZvY3VzOnJpbmctY3lhbi04MDBcIixcbiAgICBwdXJwbGVUb1Bpbms6IFwiYmctZ3JhZGllbnQtdG8tciBmcm9tLXB1cnBsZS01MDAgdG8tcGluay01MDAgdGV4dC13aGl0ZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1wdXJwbGUtMjAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tbCBkYXJrOmZvY3VzOnJpbmctcHVycGxlLTgwMFwiLFxuICAgIHJlZFRvWWVsbG93OiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS1yZWQtMjAwIHZpYS1yZWQtMzAwIHRvLXllbGxvdy0yMDAgdGV4dC1ncmF5LTkwMCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1yZWQtMTAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tYmwgZGFyazpmb2N1czpyaW5nLXJlZC00MDBcIixcbiAgICB0ZWFsVG9MaW1lOiBcImJnLWdyYWRpZW50LXRvLXIgZnJvbS10ZWFsLTIwMCB0by1saW1lLTIwMCB0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWxpbWUtMjAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JhZGllbnQtdG8tbCBlbmFibGVkOmhvdmVyOmZyb20tdGVhbC0yMDAgZW5hYmxlZDpob3Zlcjp0by1saW1lLTIwMCBlbmFibGVkOmhvdmVyOnRleHQtZ3JheS05MDAgZGFyazpmb2N1czpyaW5nLXRlYWwtNzAwXCJcbiAgfSxcbiAgaW5uZXI6IHtcbiAgICBiYXNlOiBcImZsZXggaXRlbXMtc3RyZXRjaCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIixcbiAgICBwb3NpdGlvbjoge1xuICAgICAgbm9uZTogXCJcIixcbiAgICAgIHN0YXJ0OiBcInJvdW5kZWQtci1ub25lXCIsXG4gICAgICBtaWRkbGU6IFwicm91bmRlZC1ub25lXCIsXG4gICAgICBlbmQ6IFwicm91bmRlZC1sLW5vbmVcIlxuICAgIH0sXG4gICAgb3V0bGluZTogXCJib3JkZXIgYm9yZGVyLXRyYW5zcGFyZW50XCIsXG4gICAgaXNQcm9jZXNzaW5nUGFkZGluZzoge1xuICAgICAgeHM6IFwicGwtOFwiLFxuICAgICAgc206IFwicGwtMTBcIixcbiAgICAgIG1kOiBcInBsLTEyXCIsXG4gICAgICBsZzogXCJwbC0xNlwiLFxuICAgICAgeGw6IFwicGwtMjBcIlxuICAgIH1cbiAgfSxcbiAgbGFiZWw6IFwibWwtMiBpbmxpbmUtZmxleCBoLTQgdy00IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYmctY3lhbi0yMDAgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtY3lhbi04MDBcIixcbiAgb3V0bGluZToge1xuICAgIGNvbG9yOiB7XG4gICAgICBncmF5OiBcImJvcmRlciBib3JkZXItZ3JheS05MDAgZGFyazpib3JkZXItd2hpdGVcIixcbiAgICAgIGRlZmF1bHQ6IFwiYm9yZGVyLTBcIixcbiAgICAgIGxpZ2h0OiBcIlwiXG4gICAgfSxcbiAgICBvZmY6IFwiXCIsXG4gICAgb246IFwiZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgYmctd2hpdGUgdGV4dC1ncmF5LTkwMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi03NSBlYXNlLWluIGdyb3VwLWVuYWJsZWQ6Z3JvdXAtaG92ZXI6Ymctb3BhY2l0eS0wIGdyb3VwLWVuYWJsZWQ6Z3JvdXAtaG92ZXI6dGV4dC1pbmhlcml0IGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCIsXG4gICAgcGlsbDoge1xuICAgICAgb2ZmOiBcInJvdW5kZWQtbWRcIixcbiAgICAgIG9uOiBcInJvdW5kZWQtZnVsbFwiXG4gICAgfVxuICB9LFxuICBwaWxsOiB7XG4gICAgb2ZmOiBcInJvdW5kZWQtbGdcIixcbiAgICBvbjogXCJyb3VuZGVkLWZ1bGxcIlxuICB9LFxuICBzaXplOiB7XG4gICAgeHM6IFwicHgtMiBweS0xIHRleHQteHNcIixcbiAgICBzbTogXCJweC0zIHB5LTEuNSB0ZXh0LXNtXCIsXG4gICAgbWQ6IFwicHgtNCBweS0yIHRleHQtc21cIixcbiAgICBsZzogXCJweC01IHB5LTIuNSB0ZXh0LWJhc2VcIixcbiAgICB4bDogXCJweC02IHB5LTMgdGV4dC1iYXNlXCJcbiAgfVxufSk7XG5jb25zdCBidXR0b25Hcm91cFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImlubGluZS1mbGV4XCIsXG4gIHBvc2l0aW9uOiB7XG4gICAgbm9uZTogXCJcIixcbiAgICBzdGFydDogXCJyb3VuZGVkLXItbm9uZSBmb2N1czpyaW5nLTJcIixcbiAgICBtaWRkbGU6IFwicm91bmRlZC1ub25lIGJvcmRlci1sLTAgcGwtMCBmb2N1czpyaW5nLTJcIixcbiAgICBlbmQ6IFwicm91bmRlZC1sLW5vbmUgYm9yZGVyLWwtMCBwbC0wIGZvY3VzOnJpbmctMlwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBidXR0b25Hcm91cFRoZW1lLCBidXR0b25UaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBjYXJkVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZsZXggcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHNoYWRvdy1tZCBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktODAwXCIsXG4gICAgY2hpbGRyZW46IFwiZmxleCBoLWZ1bGwgZmxleC1jb2wganVzdGlmeS1jZW50ZXIgZ2FwLTQgcC02XCIsXG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgb2ZmOiBcImZsZXgtY29sXCIsXG4gICAgICBvbjogXCJmbGV4LWNvbCBtZDptYXgtdy14bCBtZDpmbGV4LXJvd1wiXG4gICAgfSxcbiAgICBocmVmOiBcImhvdmVyOmJnLWdyYXktMTAwIGRhcms6aG92ZXI6YmctZ3JheS03MDBcIlxuICB9LFxuICBpbWc6IHtcbiAgICBiYXNlOiBcIlwiLFxuICAgIGhvcml6b250YWw6IHtcbiAgICAgIG9mZjogXCJyb3VuZGVkLXQtbGdcIixcbiAgICAgIG9uOiBcImgtOTYgdy1mdWxsIHJvdW5kZWQtdC1sZyBvYmplY3QtY292ZXIgbWQ6aC1hdXRvIG1kOnctNDggbWQ6cm91bmRlZC1ub25lIG1kOnJvdW5kZWQtbC1sZ1wiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgY2FyZFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGNhcm91c2VsVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlIGgtZnVsbCB3LWZ1bGxcIixcbiAgICBsZWZ0Q29udHJvbDogXCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgZmxleCBoLWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgZm9jdXM6b3V0bGluZS1ub25lXCIsXG4gICAgcmlnaHRDb250cm9sOiBcImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgZmxleCBoLWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTQgZm9jdXM6b3V0bGluZS1ub25lXCJcbiAgfSxcbiAgaW5kaWNhdG9yczoge1xuICAgIGFjdGl2ZToge1xuICAgICAgb2ZmOiBcImJnLXdoaXRlLzUwIGhvdmVyOmJnLXdoaXRlIGRhcms6YmctZ3JheS04MDAvNTAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMFwiLFxuICAgICAgb246IFwiYmctd2hpdGUgZGFyazpiZy1ncmF5LTgwMFwiXG4gICAgfSxcbiAgICBiYXNlOiBcImgtMyB3LTMgcm91bmRlZC1mdWxsXCIsXG4gICAgd3JhcHBlcjogXCJhYnNvbHV0ZSBib3R0b20tNSBsZWZ0LTEvMiBmbGV4IC10cmFuc2xhdGUteC0xLzIgc3BhY2UteC0zXCJcbiAgfSxcbiAgaXRlbToge1xuICAgIGJhc2U6IFwiYWJzb2x1dGUgbGVmdC0xLzIgdG9wLTEvMiBibG9jayB3LWZ1bGwgLXRyYW5zbGF0ZS14LTEvMiAtdHJhbnNsYXRlLXktMS8yXCIsXG4gICAgd3JhcHBlcjoge1xuICAgICAgb2ZmOiBcInctZnVsbCBmbGV4LXNocmluay0wIHRyYW5zZm9ybSBjdXJzb3ItZGVmYXVsdCBzbmFwLWNlbnRlclwiLFxuICAgICAgb246IFwidy1mdWxsIGZsZXgtc2hyaW5rLTAgdHJhbnNmb3JtIGN1cnNvci1ncmFiIHNuYXAtY2VudGVyXCJcbiAgICB9XG4gIH0sXG4gIGNvbnRyb2w6IHtcbiAgICBiYXNlOiBcImlubGluZS1mbGV4IGgtOCB3LTggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBiZy13aGl0ZS8zMCBncm91cC1ob3ZlcjpiZy13aGl0ZS81MCBncm91cC1mb2N1czpvdXRsaW5lLW5vbmUgZ3JvdXAtZm9jdXM6cmluZy00IGdyb3VwLWZvY3VzOnJpbmctd2hpdGUgZGFyazpiZy1ncmF5LTgwMC8zMCBkYXJrOmdyb3VwLWhvdmVyOmJnLWdyYXktODAwLzYwIGRhcms6Z3JvdXAtZm9jdXM6cmluZy1ncmF5LTgwMC83MCBzbTpoLTEwIHNtOnctMTBcIixcbiAgICBpY29uOiBcImgtNSB3LTUgdGV4dC13aGl0ZSBkYXJrOnRleHQtZ3JheS04MDAgc206aC02IHNtOnctNlwiXG4gIH0sXG4gIHNjcm9sbENvbnRhaW5lcjoge1xuICAgIGJhc2U6IFwiZmxleCBoLWZ1bGwgc25hcC1tYW5kYXRvcnkgb3ZlcmZsb3cteS1oaWRkZW4gb3ZlcmZsb3cteC1zY3JvbGwgc2Nyb2xsLXNtb290aCByb3VuZGVkLWxnXCIsXG4gICAgc25hcDogXCJzbmFwLXhcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgY2Fyb3VzZWxUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBjaGVja2JveFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJoLTQgdy00IHJvdW5kZWQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTEwMCBmb2N1czpyaW5nLTIgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgIGNvbG9yOiB7XG4gICAgICBkZWZhdWx0OiBcInRleHQtY3lhbi02MDAgZm9jdXM6cmluZy1jeWFuLTYwMCBkYXJrOnJpbmctb2Zmc2V0LWdyYXktODAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTYwMFwiLFxuICAgICAgZGFyazogXCJ0ZXh0LWdyYXktODAwIGZvY3VzOnJpbmctZ3JheS04MDAgZGFyazpyaW5nLW9mZnNldC1ncmF5LTgwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS04MDBcIixcbiAgICAgIGZhaWx1cmU6IFwidGV4dC1yZWQtOTAwIGZvY3VzOnJpbmctcmVkLTkwMCBkYXJrOnJpbmctb2Zmc2V0LXJlZC05MDAgZGFyazpmb2N1czpyaW5nLXJlZC05MDBcIixcbiAgICAgIGdyYXk6IFwidGV4dC1ncmF5LTkwMCBmb2N1czpyaW5nLWdyYXktOTAwIGRhcms6cmluZy1vZmZzZXQtZ3JheS05MDAgZGFyazpmb2N1czpyaW5nLWdyYXktOTAwXCIsXG4gICAgICBpbmZvOiBcInRleHQtY3lhbi04MDAgZm9jdXM6cmluZy1jeWFuLTgwMCBkYXJrOnJpbmctb2Zmc2V0LWdyYXktODAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTgwMFwiLFxuICAgICAgbGlnaHQ6IFwidGV4dC1ncmF5LTkwMCBmb2N1czpyaW5nLWdyYXktOTAwIGRhcms6cmluZy1vZmZzZXQtZ3JheS05MDAgZGFyazpmb2N1czpyaW5nLWdyYXktOTAwXCIsXG4gICAgICBwdXJwbGU6IFwidGV4dC1wdXJwbGUtNjAwIGZvY3VzOnJpbmctcHVycGxlLTYwMCBkYXJrOnJpbmctb2Zmc2V0LXB1cnBsZS02MDAgZGFyazpmb2N1czpyaW5nLXB1cnBsZS02MDBcIixcbiAgICAgIHN1Y2Nlc3M6IFwidGV4dC1ncmVlbi04MDAgZm9jdXM6cmluZy1ncmVlbi04MDAgZGFyazpyaW5nLW9mZnNldC1ncmVlbi04MDAgZGFyazpmb2N1czpyaW5nLWdyZWVuLTgwMFwiLFxuICAgICAgd2FybmluZzogXCJ0ZXh0LXllbGxvdy00MDAgZm9jdXM6cmluZy15ZWxsb3ctNDAwIGRhcms6cmluZy1vZmZzZXQteWVsbG93LTQwMCBkYXJrOmZvY3VzOnJpbmcteWVsbG93LTQwMFwiLFxuICAgICAgYmx1ZTogXCJ0ZXh0LWJsdWUtNzAwIGZvY3VzOnJpbmctYmx1ZS02MDAgZGFyazpyaW5nLW9mZnNldC1ibHVlLTcwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS03MDBcIixcbiAgICAgIGN5YW46IFwidGV4dC1jeWFuLTYwMCBmb2N1czpyaW5nLWN5YW4tNjAwIGRhcms6cmluZy1vZmZzZXQtY3lhbi02MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNjAwXCIsXG4gICAgICBncmVlbjogXCJ0ZXh0LWdyZWVuLTYwMCBmb2N1czpyaW5nLWdyZWVuLTYwMCBkYXJrOnJpbmctb2Zmc2V0LWdyZWVuLTYwMCBkYXJrOmZvY3VzOnJpbmctZ3JlZW4tNjAwXCIsXG4gICAgICBpbmRpZ286IFwidGV4dC1pbmRpZ28tNzAwIGZvY3VzOnJpbmctaW5kaWdvLTcwMCBkYXJrOnJpbmctb2Zmc2V0LWluZGlnby03MDAgZGFyazpmb2N1czpyaW5nLWluZGlnby03MDBcIixcbiAgICAgIGxpbWU6IFwidGV4dC1saW1lLTcwMCBmb2N1czpyaW5nLWxpbWUtNzAwIGRhcms6cmluZy1vZmZzZXQtbGltZS03MDAgZGFyazpmb2N1czpyaW5nLWxpbWUtNzAwXCIsXG4gICAgICBwaW5rOiBcInRleHQtcGluay02MDAgZm9jdXM6cmluZy1waW5rLTYwMCBkYXJrOnJpbmctb2Zmc2V0LXBpbmstNjAwIGRhcms6Zm9jdXM6cmluZy1waW5rLTYwMFwiLFxuICAgICAgcmVkOiBcInRleHQtcmVkLTYwMCBmb2N1czpyaW5nLXJlZC02MDAgZGFyazpyaW5nLW9mZnNldC1yZWQtNjAwIGRhcms6Zm9jdXM6cmluZy1yZWQtNjAwXCIsXG4gICAgICB0ZWFsOiBcInRleHQtdGVhbC02MDAgZm9jdXM6cmluZy10ZWFsLTYwMCBkYXJrOnJpbmctb2Zmc2V0LXRlYWwtNjAwIGRhcms6Zm9jdXM6cmluZy10ZWFsLTYwMFwiLFxuICAgICAgeWVsbG93OiBcInRleHQteWVsbG93LTQwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgZGFyazpyaW5nLW9mZnNldC15ZWxsb3ctNDAwIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNDAwXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBjaGVja2JveFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGNsaXBib2FyZFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBidXR0b246IHtcbiAgICBiYXNlOiBcImlubGluZS1mbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBiZy1ibHVlLTcwMCBweC01IHB5LTMgaG92ZXI6YmctYmx1ZS04MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWJsdWUtMzAwIGRhcms6YmctYmx1ZS02MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDBcIixcbiAgICBsYWJlbDogXCJ0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgc206dy1hdXRvXCJcbiAgfSxcbiAgd2l0aEljb246IHtcbiAgICBiYXNlOiBcImFic29sdXRlIGVuZC0yIHRvcC0xLzIgaW5saW5lLWZsZXggLXRyYW5zbGF0ZS15LTEvMiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBwLTIgdGV4dC1ncmF5LTUwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMFwiLFxuICAgIGljb246IHtcbiAgICAgIGRlZmF1bHRJY29uOiBcImgtNCB3LTRcIixcbiAgICAgIHN1Y2Nlc3NJY29uOiBcImgtNCB3LTQgdGV4dC1ibHVlLTcwMCBkYXJrOnRleHQtYmx1ZS01MDBcIlxuICAgIH1cbiAgfSxcbiAgd2l0aEljb25UZXh0OiB7XG4gICAgYmFzZTogXCJhYnNvbHV0ZSBlbmQtMi41IHRvcC0xLzIgaW5saW5lLWZsZXggLXRyYW5zbGF0ZS15LTEvMiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHB4LTIuNSBweS0yIHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMFwiLFxuICAgIGljb246IHtcbiAgICAgIGRlZmF1bHRJY29uOiBcIm1lLTEuNSBoLTMgdy0zXCIsXG4gICAgICBzdWNjZXNzSWNvbjogXCJtZS0xLjUgaC0zIHctMyB0ZXh0LWJsdWUtNzAwIGRhcms6dGV4dC1ibHVlLTUwMFwiXG4gICAgfSxcbiAgICBsYWJlbDoge1xuICAgICAgYmFzZTogXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIixcbiAgICAgIGRlZmF1bHRUZXh0OiBcInRleHQteHMgZm9udC1zZW1pYm9sZFwiLFxuICAgICAgc3VjY2Vzc1RleHQ6IFwidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYmx1ZS03MDAgZGFyazp0ZXh0LWJsdWUtNTAwXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBjbGlwYm9hcmRUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBkYXJrVGhlbWVUb2dnbGVUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwicm91bmRlZC1sZyBwLTIuNSB0ZXh0LXNtIHRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWdyYXktMjAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGRhcms6Zm9jdXM6cmluZy1ncmF5LTcwMFwiLFxuICAgIGljb246IFwiaC01IHctNVwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBkYXJrVGhlbWVUb2dnbGVUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBkYXRlUGlja2VyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlXCJcbiAgfSxcbiAgcG9wdXA6IHtcbiAgICByb290OiB7XG4gICAgICBiYXNlOiBcImFic29sdXRlIHRvcC0xMCB6LTUwIGJsb2NrIHB0LTJcIixcbiAgICAgIGlubGluZTogXCJyZWxhdGl2ZSB0b3AtMCB6LWF1dG9cIixcbiAgICAgIGlubmVyOiBcImlubGluZS1ibG9jayByb3VuZGVkLWxnIGJnLXdoaXRlIHAtNCBzaGFkb3ctbGcgZGFyazpiZy1ncmF5LTcwMFwiXG4gICAgfSxcbiAgICBoZWFkZXI6IHtcbiAgICAgIGJhc2U6IFwiXCIsXG4gICAgICB0aXRsZTogXCJweC0yIHB5LTMgdGV4dC1jZW50ZXIgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiLFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGJhc2U6IFwibWItMiBmbGV4IGp1c3RpZnktYmV0d2VlblwiLFxuICAgICAgICBidXR0b246IHtcbiAgICAgICAgICBiYXNlOiBcInJvdW5kZWQtbGcgYmctd2hpdGUgcHgtNSBweS0yLjUgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWdyYXktMjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIixcbiAgICAgICAgICBwcmV2OiBcIlwiLFxuICAgICAgICAgIG5leHQ6IFwiXCIsXG4gICAgICAgICAgdmlldzogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICB2aWV3OiB7XG4gICAgICBiYXNlOiBcInAtMVwiXG4gICAgfSxcbiAgICBmb290ZXI6IHtcbiAgICAgIGJhc2U6IFwibXQtMiBmbGV4IHNwYWNlLXgtMlwiLFxuICAgICAgYnV0dG9uOiB7XG4gICAgICAgIGJhc2U6IFwidy1mdWxsIHJvdW5kZWQtbGcgcHgtNSBweS0yIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gZm9jdXM6cmluZy00IGZvY3VzOnJpbmctY3lhbi0zMDBcIixcbiAgICAgICAgdG9kYXk6IFwiYmctY3lhbi03MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1jeWFuLTgwMCBkYXJrOmJnLWN5YW4tNjAwIGRhcms6aG92ZXI6YmctY3lhbi03MDBcIixcbiAgICAgICAgY2xlYXI6IFwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy13aGl0ZSB0ZXh0LWdyYXktOTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgdmlld3M6IHtcbiAgICBkYXlzOiB7XG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgYmFzZTogXCJtYi0xIGdyaWQgZ3JpZC1jb2xzLTdcIixcbiAgICAgICAgdGl0bGU6IFwiaC02IHRleHQtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gbGVhZGluZy02IHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCJcbiAgICAgIH0sXG4gICAgICBpdGVtczoge1xuICAgICAgICBiYXNlOiBcImdyaWQgdy02NCBncmlkLWNvbHMtN1wiLFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgYmFzZTogXCJibG9jayBmbGV4LTEgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1sZyBib3JkZXItMCB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy05IHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIixcbiAgICAgICAgICBzZWxlY3RlZDogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWN5YW4tNjAwXCIsXG4gICAgICAgICAgZGlzYWJsZWQ6IFwidGV4dC1ncmF5LTUwMFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIG1vbnRoczoge1xuICAgICAgaXRlbXM6IHtcbiAgICAgICAgYmFzZTogXCJncmlkIHctNjQgZ3JpZC1jb2xzLTRcIixcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgIGJhc2U6IFwiYmxvY2sgZmxleC0xIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtbGcgYm9yZGVyLTAgdGV4dC1jZW50ZXIgdGV4dC1zbSBmb250LXNlbWlib2xkIGxlYWRpbmctOSB0ZXh0LWdyYXktOTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmhvdmVyOmJnLWdyYXktNjAwXCIsXG4gICAgICAgICAgc2VsZWN0ZWQ6IFwiYmctY3lhbi03MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1jeWFuLTYwMFwiLFxuICAgICAgICAgIGRpc2FibGVkOiBcInRleHQtZ3JheS01MDBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICB5ZWFyczoge1xuICAgICAgaXRlbXM6IHtcbiAgICAgICAgYmFzZTogXCJncmlkIHctNjQgZ3JpZC1jb2xzLTRcIixcbiAgICAgICAgaXRlbToge1xuICAgICAgICAgIGJhc2U6IFwiYmxvY2sgZmxleC0xIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtbGcgYm9yZGVyLTAgdGV4dC1jZW50ZXIgdGV4dC1zbSBmb250LXNlbWlib2xkIGxlYWRpbmctOSB0ZXh0LWdyYXktOTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmhvdmVyOmJnLWdyYXktNjAwXCIsXG4gICAgICAgICAgc2VsZWN0ZWQ6IFwiYmctY3lhbi03MDAgdGV4dC13aGl0ZSBob3ZlcjpiZy1jeWFuLTYwMFwiLFxuICAgICAgICAgIGRpc2FibGVkOiBcInRleHQtZ3JheS01MDBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBkZWNhZGVzOiB7XG4gICAgICBpdGVtczoge1xuICAgICAgICBiYXNlOiBcImdyaWQgdy02NCBncmlkLWNvbHMtNFwiLFxuICAgICAgICBpdGVtOiB7XG4gICAgICAgICAgYmFzZTogXCJibG9jayBmbGV4LTEgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1sZyBib3JkZXItMCB0ZXh0LWNlbnRlciB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbGVhZGluZy05IHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS02MDBcIixcbiAgICAgICAgICBzZWxlY3RlZDogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGhvdmVyOmJnLWN5YW4tNjAwXCIsXG4gICAgICAgICAgZGlzYWJsZWQ6IFwidGV4dC1ncmF5LTUwMFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBkYXRlUGlja2VyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgZHJhd2VyVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZpeGVkIHotNDAgb3ZlcmZsb3cteS1hdXRvIGJnLXdoaXRlIHAtNCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkYXJrOmJnLWdyYXktODAwXCIsXG4gICAgYmFja2Ryb3A6IFwiZml4ZWQgaW5zZXQtMCB6LTMwIGJnLWdyYXktOTAwLzUwIGRhcms6YmctZ3JheS05MDAvODBcIixcbiAgICBlZGdlOiBcImJvdHRvbS0xNlwiLFxuICAgIHBvc2l0aW9uOiB7XG4gICAgICB0b3A6IHtcbiAgICAgICAgb246IFwibGVmdC0wIHJpZ2h0LTAgdG9wLTAgdy1mdWxsIHRyYW5zZm9ybS1ub25lXCIsXG4gICAgICAgIG9mZjogXCJsZWZ0LTAgcmlnaHQtMCB0b3AtMCB3LWZ1bGwgLXRyYW5zbGF0ZS15LWZ1bGxcIlxuICAgICAgfSxcbiAgICAgIHJpZ2h0OiB7XG4gICAgICAgIG9uOiBcInJpZ2h0LTAgdG9wLTAgaC1zY3JlZW4gdy04MCB0cmFuc2Zvcm0tbm9uZVwiLFxuICAgICAgICBvZmY6IFwicmlnaHQtMCB0b3AtMCBoLXNjcmVlbiB3LTgwIHRyYW5zbGF0ZS14LWZ1bGxcIlxuICAgICAgfSxcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBvbjogXCJib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCB3LWZ1bGwgdHJhbnNmb3JtLW5vbmVcIixcbiAgICAgICAgb2ZmOiBcImJvdHRvbS0wIGxlZnQtMCByaWdodC0wIHctZnVsbCB0cmFuc2xhdGUteS1mdWxsXCJcbiAgICAgIH0sXG4gICAgICBsZWZ0OiB7XG4gICAgICAgIG9uOiBcImxlZnQtMCB0b3AtMCBoLXNjcmVlbiB3LTgwIHRyYW5zZm9ybS1ub25lXCIsXG4gICAgICAgIG9mZjogXCJsZWZ0LTAgdG9wLTAgaC1zY3JlZW4gdy04MCAtdHJhbnNsYXRlLXgtZnVsbFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBoZWFkZXI6IHtcbiAgICBpbm5lcjoge1xuICAgICAgY2xvc2VCdXR0b246IFwiYWJzb2x1dGUgZW5kLTIuNSB0b3AtMi41IGZsZXggaC04IHctOCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sZyBiZy10cmFuc3BhcmVudCB0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6YmctZ3JheS0yMDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOmhvdmVyOmJnLWdyYXktNjAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgY2xvc2VJY29uOiBcImgtNCB3LTRcIixcbiAgICAgIHRpdGxlSWNvbjogXCJtZS0yLjUgaC00IHctNFwiLFxuICAgICAgdGl0bGVUZXh0OiBcIm1iLTQgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCJcbiAgICB9LFxuICAgIGNvbGxhcHNlZDoge1xuICAgICAgb246IFwiaGlkZGVuXCIsXG4gICAgICBvZmY6IFwiYmxvY2tcIlxuICAgIH1cbiAgfSxcbiAgaXRlbXM6IHtcbiAgICBiYXNlOiBcIlwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBkcmF3ZXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBkcm9wZG93blRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBhcnJvd0ljb246IFwibWwtMiBoLTQgdy00XCIsXG4gIGNvbnRlbnQ6IFwicHktMSBmb2N1czpvdXRsaW5lLW5vbmVcIixcbiAgZmxvYXRpbmc6IHtcbiAgICBhbmltYXRpb246IFwidHJhbnNpdGlvbi1vcGFjaXR5XCIsXG4gICAgYXJyb3c6IHtcbiAgICAgIGJhc2U6IFwiYWJzb2x1dGUgei0xMCBoLTIgdy0yIHJvdGF0ZS00NVwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgZGFyazogXCJiZy1ncmF5LTkwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgICAgIGxpZ2h0OiBcImJnLXdoaXRlXCIsXG4gICAgICAgIGF1dG86IFwiYmctd2hpdGUgZGFyazpiZy1ncmF5LTcwMFwiXG4gICAgICB9LFxuICAgICAgcGxhY2VtZW50OiBcIi00cHhcIlxuICAgIH0sXG4gICAgYmFzZTogXCJ6LTEwIHctZml0IGRpdmlkZS15IGRpdmlkZS1ncmF5LTEwMCByb3VuZGVkIHNoYWRvdyBmb2N1czpvdXRsaW5lLW5vbmVcIixcbiAgICBjb250ZW50OiBcInB5LTEgdGV4dC1zbSB0ZXh0LWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTIwMFwiLFxuICAgIGRpdmlkZXI6IFwibXktMSBoLXB4IGJnLWdyYXktMTAwIGRhcms6YmctZ3JheS02MDBcIixcbiAgICBoZWFkZXI6IFwiYmxvY2sgcHgtNCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS0yMDBcIixcbiAgICBoaWRkZW46IFwiaW52aXNpYmxlIG9wYWNpdHktMFwiLFxuICAgIGl0ZW06IHtcbiAgICAgIGNvbnRhaW5lcjogXCJcIixcbiAgICAgIGJhc2U6IFwiZmxleCB3LWZ1bGwgY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgcHgtNCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTEwMCBmb2N1czpiZy1ncmF5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZGFyazp0ZXh0LWdyYXktMjAwIGRhcms6aG92ZXI6YmctZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6YmctZ3JheS02MDAgZGFyazpmb2N1czp0ZXh0LXdoaXRlXCIsXG4gICAgICBpY29uOiBcIm1yLTIgaC00IHctNFwiXG4gICAgfSxcbiAgICBzdHlsZToge1xuICAgICAgZGFyazogXCJiZy1ncmF5LTkwMCB0ZXh0LXdoaXRlIGRhcms6YmctZ3JheS03MDBcIixcbiAgICAgIGxpZ2h0OiBcImJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMFwiLFxuICAgICAgYXV0bzogXCJib3JkZXIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHRleHQtZ3JheS05MDAgZGFyazpib3JkZXItbm9uZSBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgfSxcbiAgICB0YXJnZXQ6IFwidy1maXRcIlxuICB9LFxuICBpbmxpbmVXcmFwcGVyOiBcImZsZXggaXRlbXMtY2VudGVyXCJcbn0pO1xuXG5leHBvcnQgeyBkcm9wZG93blRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGZpbGVJbnB1dFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJmbGV4XCJcbiAgfSxcbiAgZmllbGQ6IHtcbiAgICBiYXNlOiBcInJlbGF0aXZlIHctZnVsbFwiLFxuICAgIGlucHV0OiB7XG4gICAgICBiYXNlOiBcImJsb2NrIHctZnVsbCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1sZyBib3JkZXIgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTBcIixcbiAgICAgIHNpemVzOiB7XG4gICAgICAgIHNtOiBcInNtOnRleHQteHNcIixcbiAgICAgICAgbWQ6IFwidGV4dC1zbVwiLFxuICAgICAgICBsZzogXCJzbTp0ZXh0LWJhc2VcIlxuICAgICAgfSxcbiAgICAgIGNvbG9yczoge1xuICAgICAgICBncmF5OiBcImJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpwbGFjZWhvbGRlci1ncmF5LTQwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICAgICAgaW5mbzogXCJib3JkZXItY3lhbi01MDAgYmctY3lhbi01MCB0ZXh0LWN5YW4tOTAwIHBsYWNlaG9sZGVyLWN5YW4tNzAwIGZvY3VzOmJvcmRlci1jeWFuLTUwMCBmb2N1czpyaW5nLWN5YW4tNTAwIGRhcms6Ym9yZGVyLWN5YW4tNDAwIGRhcms6YmctY3lhbi0xMDAgZGFyazpmb2N1czpib3JkZXItY3lhbi01MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNTAwXCIsXG4gICAgICAgIGZhaWx1cmU6IFwiYm9yZGVyLXJlZC01MDAgYmctcmVkLTUwIHRleHQtcmVkLTkwMCBwbGFjZWhvbGRlci1yZWQtNzAwIGZvY3VzOmJvcmRlci1yZWQtNTAwIGZvY3VzOnJpbmctcmVkLTUwMCBkYXJrOmJvcmRlci1yZWQtNDAwIGRhcms6YmctcmVkLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwIGRhcms6Zm9jdXM6cmluZy1yZWQtNTAwXCIsXG4gICAgICAgIHdhcm5pbmc6IFwiYm9yZGVyLXllbGxvdy01MDAgYmcteWVsbG93LTUwIHRleHQteWVsbG93LTkwMCBwbGFjZWhvbGRlci15ZWxsb3ctNzAwIGZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGZvY3VzOnJpbmcteWVsbG93LTUwMCBkYXJrOmJvcmRlci15ZWxsb3ctNDAwIGRhcms6YmcteWVsbG93LTEwMCBkYXJrOmZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNTAwXCIsXG4gICAgICAgIHN1Y2Nlc3M6IFwiYm9yZGVyLWdyZWVuLTUwMCBiZy1ncmVlbi01MCB0ZXh0LWdyZWVuLTkwMCBwbGFjZWhvbGRlci1ncmVlbi03MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTUwMCBmb2N1czpyaW5nLWdyZWVuLTUwMCBkYXJrOmJvcmRlci1ncmVlbi00MDAgZGFyazpiZy1ncmVlbi0xMDAgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwIGRhcms6Zm9jdXM6cmluZy1ncmVlbi01MDBcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGZpbGVJbnB1dFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGZsb2F0aW5nTGFiZWxUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgaW5wdXQ6IHtcbiAgICBkZWZhdWx0OiB7XG4gICAgICBmaWxsZWQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtdC1sZyBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIHB4LTIuNSBwYi0yLjUgcHQtNSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWJsdWUtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItYmx1ZS01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtdC1sZyBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIHB4LTIuNSBwYi0yLjUgcHQtNSB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWJsdWUtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItYmx1ZS01MDBcIlxuICAgICAgfSxcbiAgICAgIG91dGxpbmVkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHBiLTIuNSBwdC00IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItYmx1ZS02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItYmx1ZS01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy10cmFuc3BhcmVudCBweC0yLjUgcGItMi41IHB0LTQgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1ibHVlLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyYXktMzAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItYmx1ZS02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItYmx1ZS01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyYXktMzAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItYmx1ZS02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItYmx1ZS01MDBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgc3VjY2Vzczoge1xuICAgICAgZmlsbGVkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLXQtbGcgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JlZW4tNjAwIGJnLWdyYXktNTAgcHgtMi41IHBiLTIuNSBwdC01IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC10LWxnIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyZWVuLTYwMCBiZy1ncmF5LTUwIHB4LTIuNSBwYi0yLjUgcHQtNSB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDBcIlxuICAgICAgfSxcbiAgICAgIG91dGxpbmVkOiB7XG4gICAgICAgIHNtOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JlZW4tNjAwIGJnLXRyYW5zcGFyZW50IHB4LTIuNSBwYi0yLjUgcHQtNCB0ZXh0LXhzIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwXCIsXG4gICAgICAgIG1kOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JlZW4tNjAwIGJnLXRyYW5zcGFyZW50IHB4LTIuNSBwYi0yLjUgcHQtNCB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItZ3JlZW4tNjAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItZ3JlZW4tNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItZ3JlZW4tNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLWdyZWVuLTYwMCBiZy10cmFuc3BhcmVudCBweC0wIHB5LTIuNSB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWdyZWVuLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItZ3JlZW4tNTAwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIGVycm9yOiB7XG4gICAgICBmaWxsZWQ6IHtcbiAgICAgICAgc206IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtdC1sZyBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1yZWQtNjAwIGJnLWdyYXktNTAgcHgtMi41IHBiLTIuNSBwdC01IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItcmVkLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLXJlZC01MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMFwiLFxuICAgICAgICBtZDogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC10LWxnIGJvcmRlci0wIGJvcmRlci1iLTIgYm9yZGVyLXJlZC02MDAgYmctZ3JheS01MCBweC0yLjUgcGItMi41IHB0LTUgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1yZWQtNjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTAgZGFyazpib3JkZXItcmVkLTUwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwXCJcbiAgICAgIH0sXG4gICAgICBvdXRsaW5lZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXJlZC02MDAgYmctdHJhbnNwYXJlbnQgcHgtMi41IHBiLTIuNSBwdC00IHRleHQteHMgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItcmVkLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLXJlZC01MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDBcIixcbiAgICAgICAgbWQ6IFwicGVlciBibG9jayB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1yZWQtNjAwIGJnLXRyYW5zcGFyZW50IHB4LTIuNSBwYi0yLjUgcHQtNCB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLXJlZC02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1yZWQtNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJwZWVyIGJsb2NrIHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm9yZGVyLTAgYm9yZGVyLWItMiBib3JkZXItcmVkLTYwMCBiZy10cmFuc3BhcmVudCBweC0wIHB5LTIuNSB0ZXh0LXhzIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLXJlZC02MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMCBkYXJrOmJvcmRlci1yZWQtNTAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOmZvY3VzOmJvcmRlci1yZWQtNTAwXCIsXG4gICAgICAgIG1kOiBcInBlZXIgYmxvY2sgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3JkZXItMCBib3JkZXItYi0yIGJvcmRlci1yZWQtNjAwIGJnLXRyYW5zcGFyZW50IHB4LTAgcHktMi41IHRleHQtc20gdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItcmVkLTYwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0wIGRhcms6Ym9yZGVyLXJlZC01MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDBcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgbGFiZWw6IHtcbiAgICBkZWZhdWx0OiB7XG4gICAgICBmaWxsZWQ6IHtcbiAgICAgICAgc206IFwiYWJzb2x1dGUgbGVmdC0yLjUgdG9wLTQgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IHRleHQteHMgdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnRleHQtYmx1ZS02MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCIsXG4gICAgICAgIG1kOiBcImFic29sdXRlIGxlZnQtMi41IHRvcC00IHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSB0ZXh0LXNtIHRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czp0ZXh0LWJsdWUtNjAwIGRhcms6dGV4dC1ncmF5LTQwMCBwZWVyLWZvY3VzOmRhcms6dGV4dC1ibHVlLTUwMFwiXG4gICAgICB9LFxuICAgICAgb3V0bGluZWQ6IHtcbiAgICAgICAgc206IFwiYWJzb2x1dGUgbGVmdC0xIHRvcC0yIHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSBiZy13aGl0ZSBweC0yIHRleHQteHMgdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0b3AtMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246LXRyYW5zbGF0ZS15LTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOnRvcC0yIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnB4LTIgcGVlci1mb2N1czp0ZXh0LWJsdWUtNjAwIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCIsXG4gICAgICAgIG1kOiBcImFic29sdXRlIGxlZnQtMSB0b3AtMiB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgYmctd2hpdGUgcHgtMiB0ZXh0LXNtIHRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dG9wLTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOi10cmFuc2xhdGUteS0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czp0b3AtMiBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czpweC0yIHBlZXItZm9jdXM6dGV4dC1ibHVlLTYwMCBkYXJrOmJnLWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTQwMCBwZWVyLWZvY3VzOmRhcms6dGV4dC1ibHVlLTUwMFwiXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmQ6IHtcbiAgICAgICAgc206IFwiYWJzb2x1dGUgdG9wLTMgLXotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNiBzY2FsZS03NSB0ZXh0LXhzIHRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOmxlZnQtMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS02IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czp0ZXh0LWJsdWUtNjAwIGRhcms6dGV4dC1ncmF5LTQwMCBwZWVyLWZvY3VzOmRhcms6dGV4dC1ibHVlLTUwMFwiLFxuICAgICAgICBtZDogXCJhYnNvbHV0ZSB0b3AtMyAtei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS02IHNjYWxlLTc1IHRleHQtc20gdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6bGVmdC0wIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTYgcGVlci1mb2N1czpzY2FsZS03NSBwZWVyLWZvY3VzOnRleHQtYmx1ZS02MDAgZGFyazp0ZXh0LWdyYXktNDAwIHBlZXItZm9jdXM6ZGFyazp0ZXh0LWJsdWUtNTAwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIHN1Y2Nlc3M6IHtcbiAgICAgIGZpbGxlZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSBsZWZ0LTIuNSB0b3AtNCB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgdGV4dC1zbSB0ZXh0LWdyZWVuLTYwMCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgcGVlci1wbGFjZWhvbGRlci1zaG93bjp0cmFuc2xhdGUteS0wIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6LXRyYW5zbGF0ZS15LTQgcGVlci1mb2N1czpzY2FsZS03NSBkYXJrOnRleHQtZ3JlZW4tNTAwXCIsXG4gICAgICAgIG1kOiBcImFic29sdXRlIGxlZnQtMi41IHRvcC00IHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSB0ZXh0LXNtIHRleHQtZ3JlZW4tNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1ncmVlbi01MDBcIlxuICAgICAgfSxcbiAgICAgIG91dGxpbmVkOiB7XG4gICAgICAgIHNtOiBcImFic29sdXRlIGxlZnQtMSB0b3AtMiB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgYmctd2hpdGUgcHgtMiB0ZXh0LXNtIHRleHQtZ3JlZW4tNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRvcC0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjotdHJhbnNsYXRlLXktMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6dG9wLTIgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IHBlZXItZm9jdXM6cHgtMiBkYXJrOmJnLWdyYXktOTAwIGRhcms6dGV4dC1ncmVlbi01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0xIHRvcC0yIHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSBiZy13aGl0ZSBweC0yIHRleHQtc20gdGV4dC1ncmVlbi02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dG9wLTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOi10cmFuc2xhdGUteS0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czp0b3AtMiBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czpweC0yIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LWdyZWVuLTUwMFwiXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmQ6IHtcbiAgICAgICAgc206IFwiYWJzb2x1dGUgdG9wLTMgLXotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNiBzY2FsZS03NSB0ZXh0LXhzIHRleHQtZ3JlZW4tNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czpsZWZ0LTAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNiBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1ncmVlbi01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgdG9wLTMgLXotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNiBzY2FsZS03NSB0ZXh0LXNtIHRleHQtZ3JlZW4tNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czpsZWZ0LTAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNiBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1ncmVlbi01MDBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3I6IHtcbiAgICAgIGZpbGxlZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSBsZWZ0LTIuNSB0b3AtNCB6LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTQgc2NhbGUtNzUgdGV4dC14cyB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LXJlZC01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0yLjUgdG9wLTQgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IHRleHQteHMgdGV4dC1yZWQtNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1yZWQtNTAwXCJcbiAgICAgIH0sXG4gICAgICBvdXRsaW5lZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSBsZWZ0LTEgdG9wLTIgei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS00IHNjYWxlLTc1IGJnLXdoaXRlIHB4LTIgdGV4dC14cyB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dG9wLTEvMiBwZWVyLXBsYWNlaG9sZGVyLXNob3duOi10cmFuc2xhdGUteS0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czp0b3AtMiBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS00IHBlZXItZm9jdXM6c2NhbGUtNzUgcGVlci1mb2N1czpweC0yIGRhcms6YmctZ3JheS05MDAgZGFyazp0ZXh0LXJlZC01MDBcIixcbiAgICAgICAgbWQ6IFwiYWJzb2x1dGUgbGVmdC0xIHRvcC0yIHotMTAgb3JpZ2luLVswXSAtdHJhbnNsYXRlLXktNCBzY2FsZS03NSBiZy13aGl0ZSBweC0yIHRleHQteHMgdGV4dC1yZWQtNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRvcC0xLzIgcGVlci1wbGFjZWhvbGRlci1zaG93bjotdHJhbnNsYXRlLXktMS8yIHBlZXItcGxhY2Vob2xkZXItc2hvd246c2NhbGUtMTAwIHBlZXItZm9jdXM6dG9wLTIgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNCBwZWVyLWZvY3VzOnNjYWxlLTc1IHBlZXItZm9jdXM6cHgtMiBkYXJrOmJnLWdyYXktOTAwIGRhcms6dGV4dC1yZWQtNTAwXCJcbiAgICAgIH0sXG4gICAgICBzdGFuZGFyZDoge1xuICAgICAgICBzbTogXCJhYnNvbHV0ZSB0b3AtMyAtei0xMCBvcmlnaW4tWzBdIC10cmFuc2xhdGUteS02IHNjYWxlLTc1IHRleHQteHMgdGV4dC1yZWQtNjAwIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnRyYW5zbGF0ZS15LTAgcGVlci1wbGFjZWhvbGRlci1zaG93bjpzY2FsZS0xMDAgcGVlci1mb2N1czpsZWZ0LTAgcGVlci1mb2N1czotdHJhbnNsYXRlLXktNiBwZWVyLWZvY3VzOnNjYWxlLTc1IGRhcms6dGV4dC1yZWQtNTAwXCIsXG4gICAgICAgIG1kOiBcImFic29sdXRlIHRvcC0zIC16LTEwIG9yaWdpbi1bMF0gLXRyYW5zbGF0ZS15LTYgc2NhbGUtNzUgdGV4dC1zbSB0ZXh0LXJlZC02MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHBlZXItcGxhY2Vob2xkZXItc2hvd246dHJhbnNsYXRlLXktMCBwZWVyLXBsYWNlaG9sZGVyLXNob3duOnNjYWxlLTEwMCBwZWVyLWZvY3VzOmxlZnQtMCBwZWVyLWZvY3VzOi10cmFuc2xhdGUteS02IHBlZXItZm9jdXM6c2NhbGUtNzUgZGFyazp0ZXh0LXJlZC01MDBcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgaGVscGVyVGV4dDoge1xuICAgIGRlZmF1bHQ6IFwibXQtMiB0ZXh0LXhzIHRleHQtZ3JheS02MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgc3VjY2VzczogXCJtdC0yIHRleHQteHMgdGV4dC1ncmVlbi02MDAgZGFyazp0ZXh0LWdyZWVuLTQwMFwiLFxuICAgIGVycm9yOiBcIm10LTIgdGV4dC14cyB0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC00MDBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgZmxvYXRpbmdMYWJlbFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGZvb3RlclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJ3LWZ1bGwgcm91bmRlZC1sZyBiZy13aGl0ZSBzaGFkb3cgZGFyazpiZy1ncmF5LTgwMCBtZDpmbGV4IG1kOml0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW5cIixcbiAgICBjb250YWluZXI6IFwidy1mdWxsIHAtNlwiLFxuICAgIGJnRGFyazogXCJiZy1ncmF5LTgwMFwiXG4gIH0sXG4gIGdyb3VwTGluazoge1xuICAgIGJhc2U6IFwiZmxleCBmbGV4LXdyYXAgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC13aGl0ZVwiLFxuICAgIGxpbms6IHtcbiAgICAgIGJhc2U6IFwibWUtNCBsYXN0Om1yLTAgbWQ6bXItNlwiLFxuICAgICAgaHJlZjogXCJob3Zlcjp1bmRlcmxpbmVcIlxuICAgIH0sXG4gICAgY29sOiBcImZsZXgtY29sIHNwYWNlLXktNFwiXG4gIH0sXG4gIGljb246IHtcbiAgICBiYXNlOiBcInRleHQtZ3JheS01MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgc2l6ZTogXCJoLTUgdy01XCJcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBiYXNlOiBcIm1iLTYgdGV4dC1zbSBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC13aGl0ZVwiXG4gIH0sXG4gIGRpdmlkZXI6IHtcbiAgICBiYXNlOiBcIm15LTYgdy1mdWxsIGJvcmRlci1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTcwMCBzbTpteC1hdXRvIGxnOm15LThcIlxuICB9LFxuICBjb3B5cmlnaHQ6IHtcbiAgICBiYXNlOiBcInRleHQtc20gdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDAgc206dGV4dC1jZW50ZXJcIixcbiAgICBocmVmOiBcIm1sLTEgaG92ZXI6dW5kZXJsaW5lXCIsXG4gICAgc3BhbjogXCJtbC0xXCJcbiAgfSxcbiAgYnJhbmQ6IHtcbiAgICBiYXNlOiBcIm1iLTQgZmxleCBpdGVtcy1jZW50ZXIgc206bWItMFwiLFxuICAgIGltZzogXCJtci0zIGgtOFwiLFxuICAgIHNwYW46IFwic2VsZi1jZW50ZXIgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC0yeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktODAwIGRhcms6dGV4dC13aGl0ZVwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBmb290ZXJUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBoZWxwZXJUZXh0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcIm10LTIgdGV4dC1zbVwiLFxuICAgIGNvbG9yczoge1xuICAgICAgZ3JheTogXCJ0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgICAgaW5mbzogXCJ0ZXh0LWN5YW4tNzAwIGRhcms6dGV4dC1jeWFuLTgwMFwiLFxuICAgICAgc3VjY2VzczogXCJ0ZXh0LWdyZWVuLTYwMCBkYXJrOnRleHQtZ3JlZW4tNTAwXCIsXG4gICAgICBmYWlsdXJlOiBcInRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTUwMFwiLFxuICAgICAgd2FybmluZzogXCJ0ZXh0LXllbGxvdy01MDAgZGFyazp0ZXh0LXllbGxvdy02MDBcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGhlbHBlclRleHRUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBoclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJteS04IGgtcHggYm9yZGVyLTAgYmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMFwiXG4gIH0sXG4gIHRyaW1tZWQ6IHtcbiAgICBiYXNlOiBcIm14LWF1dG8gbXktNCBoLTEgdy00OCByb3VuZGVkIGJvcmRlci0wIGJnLWdyYXktMTAwIGRhcms6YmctZ3JheS03MDAgbWQ6bXktMTBcIlxuICB9LFxuICBpY29uOiB7XG4gICAgYmFzZTogXCJpbmxpbmUtZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCIsXG4gICAgaHJMaW5lOiBcIm15LTggaC0xIHctNjQgcm91bmRlZCBib3JkZXItMCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgaWNvbjoge1xuICAgICAgYmFzZTogXCJhYnNvbHV0ZSBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIGJnLXdoaXRlIHB4LTQgZGFyazpiZy1ncmF5LTkwMFwiLFxuICAgICAgaWNvbjogXCJoLTQgdy00IHRleHQtZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktMzAwXCJcbiAgICB9XG4gIH0sXG4gIHRleHQ6IHtcbiAgICBiYXNlOiBcImlubGluZS1mbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIixcbiAgICBockxpbmU6IFwibXktOCBoLXB4IHctNjQgYm9yZGVyLTAgYmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgIHRleHQ6IFwiYWJzb2x1dGUgbGVmdC0xLzIgLXRyYW5zbGF0ZS14LTEvMiBiZy13aGl0ZSBweC0zIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazpiZy1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGVcIlxuICB9LFxuICBzcXVhcmU6IHtcbiAgICBiYXNlOiBcIm14LWF1dG8gbXktOCBoLTggdy04IHJvdW5kZWQgYm9yZGVyLTAgYmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMCBtZDpteS0xMlwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBoclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IGtiZFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctZ3JheS0xMDAgcHgtMiBweS0xLjUgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtZ3JheS04MDAgZGFyazpib3JkZXItZ3JheS01MDAgZGFyazpiZy1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS0xMDBcIixcbiAgICBpY29uOiBcImlubGluZS1ibG9ja1wiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBrYmRUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBsYWJlbFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCIsXG4gICAgZGlzYWJsZWQ6IFwib3BhY2l0eS01MFwiLFxuICAgIGNvbG9yczoge1xuICAgICAgZGVmYXVsdDogXCJ0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiLFxuICAgICAgaW5mbzogXCJ0ZXh0LWN5YW4tNTAwIGRhcms6dGV4dC1jeWFuLTYwMFwiLFxuICAgICAgZmFpbHVyZTogXCJ0ZXh0LXJlZC03MDAgZGFyazp0ZXh0LXJlZC01MDBcIixcbiAgICAgIHdhcm5pbmc6IFwidGV4dC15ZWxsb3ctNTAwIGRhcms6dGV4dC15ZWxsb3ctNjAwXCIsXG4gICAgICBzdWNjZXNzOiBcInRleHQtZ3JlZW4tNzAwIGRhcms6dGV4dC1ncmVlbi01MDBcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGxhYmVsVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgbGlzdFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJsaXN0LWluc2lkZSBzcGFjZS15LTEgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICBvcmRlcmVkOiB7XG4gICAgICBvZmY6IFwibGlzdC1kaXNjXCIsXG4gICAgICBvbjogXCJsaXN0LWRlY2ltYWxcIlxuICAgIH0sXG4gICAgaG9yaXpvbnRhbDogXCJmbGV4IGxpc3Qtbm9uZSBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHNwYWNlLXgtNCBzcGFjZS15LTBcIixcbiAgICB1bnN0eWxlZDogXCJsaXN0LW5vbmVcIixcbiAgICBuZXN0ZWQ6IFwibXQtMiBwcy01XCJcbiAgfSxcbiAgaXRlbToge1xuICAgIHdpdGhJY29uOiB7XG4gICAgICBvZmY6IFwiXCIsXG4gICAgICBvbjogXCJmbGV4IGl0ZW1zLWNlbnRlclwiXG4gICAgfSxcbiAgICBpY29uOiBcIm1lLTIgaC0zLjUgdy0zLjUgZmxleC1zaHJpbmstMFwiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBsaXN0VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgbGlzdEdyb3VwVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImxpc3Qtbm9uZSByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1sZWZ0IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZVwiXG4gIH0sXG4gIGl0ZW06IHtcbiAgICBiYXNlOiBcIlsmPipdOmZpcnN0OnJvdW5kZWQtdC1sZyBbJj4qXTpsYXN0OnJvdW5kZWQtYi1sZyBbJj4qXTpsYXN0OmJvcmRlci1iLTBcIixcbiAgICBsaW5rOiB7XG4gICAgICBiYXNlOiBcImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIGRhcms6Ym9yZGVyLWdyYXktNjAwXCIsXG4gICAgICBhY3RpdmU6IHtcbiAgICAgICAgb2ZmOiBcImhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtY3lhbi03MDAgZm9jdXM6dGV4dC1jeWFuLTcwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctY3lhbi03MDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpob3ZlcjpiZy1ncmF5LTYwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGUgZGFyazpmb2N1czp0ZXh0LXdoaXRlIGRhcms6Zm9jdXM6cmluZy1ncmF5LTUwMFwiLFxuICAgICAgICBvbjogXCJiZy1jeWFuLTcwMCB0ZXh0LXdoaXRlIGRhcms6YmctZ3JheS04MDBcIlxuICAgICAgfSxcbiAgICAgIGRpc2FibGVkOiB7XG4gICAgICAgIG9mZjogXCJcIixcbiAgICAgICAgb246IFwiY3Vyc29yLW5vdC1hbGxvd2VkIGJnLWdyYXktMTAwIHRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBmb2N1czp0ZXh0LWdyYXktOTAwXCJcbiAgICAgIH0sXG4gICAgICBocmVmOiB7XG4gICAgICAgIG9mZjogXCJcIixcbiAgICAgICAgb246IFwiXCJcbiAgICAgIH0sXG4gICAgICBpY29uOiBcIm1yLTIgaC00IHctNCBmaWxsLWN1cnJlbnRcIlxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IGxpc3RHcm91cFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IG5hdmJhclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJiZy13aGl0ZSBweC0yIHB5LTIuNSBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktODAwIHNtOnB4LTRcIixcbiAgICByb3VuZGVkOiB7XG4gICAgICBvbjogXCJyb3VuZGVkXCIsXG4gICAgICBvZmY6IFwiXCJcbiAgICB9LFxuICAgIGJvcmRlcmVkOiB7XG4gICAgICBvbjogXCJib3JkZXJcIixcbiAgICAgIG9mZjogXCJcIlxuICAgIH0sXG4gICAgaW5uZXI6IHtcbiAgICAgIGJhc2U6IFwibXgtYXV0byBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCIsXG4gICAgICBmbHVpZDoge1xuICAgICAgICBvbjogXCJcIixcbiAgICAgICAgb2ZmOiBcImNvbnRhaW5lclwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBicmFuZDoge1xuICAgIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXJcIlxuICB9LFxuICBjb2xsYXBzZToge1xuICAgIGJhc2U6IFwidy1mdWxsIG1kOmJsb2NrIG1kOnctYXV0b1wiLFxuICAgIGxpc3Q6IFwibXQtNCBmbGV4IGZsZXgtY29sIG1kOm10LTAgbWQ6ZmxleC1yb3cgbWQ6c3BhY2UteC04IG1kOnRleHQtc20gbWQ6Zm9udC1tZWRpdW1cIixcbiAgICBoaWRkZW46IHtcbiAgICAgIG9uOiBcImhpZGRlblwiLFxuICAgICAgb2ZmOiBcIlwiXG4gICAgfVxuICB9LFxuICBsaW5rOiB7XG4gICAgYmFzZTogXCJibG9jayBweS0yIHBsLTMgcHItNCBtZDpwLTBcIixcbiAgICBhY3RpdmU6IHtcbiAgICAgIG9uOiBcImJnLWN5YW4tNzAwIHRleHQtd2hpdGUgZGFyazp0ZXh0LXdoaXRlIG1kOmJnLXRyYW5zcGFyZW50IG1kOnRleHQtY3lhbi03MDBcIixcbiAgICAgIG9mZjogXCJib3JkZXItYiBib3JkZXItZ3JheS0xMDAgdGV4dC1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTUwIGRhcms6Ym9yZGVyLWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZSBtZDpib3JkZXItMCBtZDpob3ZlcjpiZy10cmFuc3BhcmVudCBtZDpob3Zlcjp0ZXh0LWN5YW4tNzAwIG1kOmRhcms6aG92ZXI6YmctdHJhbnNwYXJlbnQgbWQ6ZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCJcbiAgICB9LFxuICAgIGRpc2FibGVkOiB7XG4gICAgICBvbjogXCJ0ZXh0LWdyYXktNDAwIGhvdmVyOmN1cnNvci1ub3QtYWxsb3dlZCBkYXJrOnRleHQtZ3JheS02MDBcIixcbiAgICAgIG9mZjogXCJcIlxuICAgIH1cbiAgfSxcbiAgdG9nZ2xlOiB7XG4gICAgYmFzZTogXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBwLTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1ncmF5LTIwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBkYXJrOmZvY3VzOnJpbmctZ3JheS02MDAgbWQ6aGlkZGVuXCIsXG4gICAgaWNvbjogXCJoLTYgdy02IHNocmluay0wXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IG5hdmJhclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuaW1wb3J0IHsgZHJvcGRvd25UaGVtZSB9IGZyb20gJy4uL0Ryb3Bkb3duL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBuYXZiYXJUaGVtZSB9IGZyb20gJy4uL05hdmJhci90aGVtZS5tanMnO1xuXG5jb25zdCBtZWdhTWVudVRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICAuLi5uYXZiYXJUaGVtZSxcbiAgZHJvcGRvd246IHtcbiAgICBiYXNlOiBcIlwiLFxuICAgIHRvZ2dsZToge1xuICAgICAgLi4uZHJvcGRvd25UaGVtZSxcbiAgICAgIGZsb2F0aW5nOiB7XG4gICAgICAgIC4uLmRyb3Bkb3duVGhlbWUuZmxvYXRpbmcsXG4gICAgICAgIGJhc2U6IHR3TWVyZ2UoZHJvcGRvd25UaGVtZS5mbG9hdGluZy5iYXNlLCBcIm10LTIgYmxvY2tcIiksXG4gICAgICAgIGNvbnRlbnQ6IHR3TWVyZ2UoZHJvcGRvd25UaGVtZS5mbG9hdGluZy5jb250ZW50LCBcInRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIpLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIC4uLmRyb3Bkb3duVGhlbWUuZmxvYXRpbmcuc3R5bGUsXG4gICAgICAgICAgYXV0bzogdHdNZXJnZShkcm9wZG93blRoZW1lLmZsb2F0aW5nLnN0eWxlLmF1dG8sIFwidGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIilcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlubGluZVdyYXBwZXI6IHR3TWVyZ2UoZHJvcGRvd25UaGVtZS5pbmxpbmVXcmFwcGVyLCBcImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIilcbiAgICB9XG4gIH0sXG4gIGRyb3Bkb3duVG9nZ2xlOiB7XG4gICAgYmFzZTogdHdNZXJnZShuYXZiYXJUaGVtZS5saW5rLmJhc2UsIG5hdmJhclRoZW1lLmxpbmsuYWN0aXZlLm9mZiwgXCJmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCIpXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBtZWdhTWVudVRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IG1vZGFsVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZpeGVkIGluc2V0LXgtMCB0b3AtMCB6LTUwIGgtc2NyZWVuIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtZDppbnNldC0wIG1kOmgtZnVsbFwiLFxuICAgIHNob3c6IHtcbiAgICAgIG9uOiBcImZsZXggYmctZ3JheS05MDAgYmctb3BhY2l0eS01MCBkYXJrOmJnLW9wYWNpdHktODBcIixcbiAgICAgIG9mZjogXCJoaWRkZW5cIlxuICAgIH0sXG4gICAgc2l6ZXM6IHtcbiAgICAgIHNtOiBcIm1heC13LXNtXCIsXG4gICAgICBtZDogXCJtYXgtdy1tZFwiLFxuICAgICAgbGc6IFwibWF4LXctbGdcIixcbiAgICAgIHhsOiBcIm1heC13LXhsXCIsXG4gICAgICBcIjJ4bFwiOiBcIm1heC13LTJ4bFwiLFxuICAgICAgXCIzeGxcIjogXCJtYXgtdy0zeGxcIixcbiAgICAgIFwiNHhsXCI6IFwibWF4LXctNHhsXCIsXG4gICAgICBcIjV4bFwiOiBcIm1heC13LTV4bFwiLFxuICAgICAgXCI2eGxcIjogXCJtYXgtdy02eGxcIixcbiAgICAgIFwiN3hsXCI6IFwibWF4LXctN3hsXCJcbiAgICB9LFxuICAgIHBvc2l0aW9uczoge1xuICAgICAgXCJ0b3AtbGVmdFwiOiBcIml0ZW1zLXN0YXJ0IGp1c3RpZnktc3RhcnRcIixcbiAgICAgIFwidG9wLWNlbnRlclwiOiBcIml0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCIsXG4gICAgICBcInRvcC1yaWdodFwiOiBcIml0ZW1zLXN0YXJ0IGp1c3RpZnktZW5kXCIsXG4gICAgICBcImNlbnRlci1sZWZ0XCI6IFwiaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIixcbiAgICAgIGNlbnRlcjogXCJpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIixcbiAgICAgIFwiY2VudGVyLXJpZ2h0XCI6IFwiaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kXCIsXG4gICAgICBcImJvdHRvbS1yaWdodFwiOiBcIml0ZW1zLWVuZCBqdXN0aWZ5LWVuZFwiLFxuICAgICAgXCJib3R0b20tY2VudGVyXCI6IFwiaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyXCIsXG4gICAgICBcImJvdHRvbS1sZWZ0XCI6IFwiaXRlbXMtZW5kIGp1c3RpZnktc3RhcnRcIlxuICAgIH1cbiAgfSxcbiAgY29udGVudDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgaC1mdWxsIHctZnVsbCBwLTQgbWQ6aC1hdXRvXCIsXG4gICAgaW5uZXI6IFwicmVsYXRpdmUgZmxleCBtYXgtaC1bOTBkdmhdIGZsZXgtY29sIHJvdW5kZWQtbGcgYmctd2hpdGUgc2hhZG93IGRhcms6YmctZ3JheS03MDBcIlxuICB9LFxuICBib2R5OiB7XG4gICAgYmFzZTogXCJmbGV4LTEgb3ZlcmZsb3ctYXV0byBwLTZcIixcbiAgICBwb3B1cDogXCJwdC0wXCJcbiAgfSxcbiAgaGVhZGVyOiB7XG4gICAgYmFzZTogXCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiByb3VuZGVkLXQgYm9yZGVyLWIgcC01IGRhcms6Ym9yZGVyLWdyYXktNjAwXCIsXG4gICAgcG9wdXA6IFwiYm9yZGVyLWItMCBwLTJcIixcbiAgICB0aXRsZTogXCJ0ZXh0LXhsIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LXdoaXRlXCIsXG4gICAgY2xvc2U6IHtcbiAgICAgIGJhc2U6IFwibWwtYXV0byBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBiZy10cmFuc3BhcmVudCBwLTEuNSB0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6YmctZ3JheS0yMDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOmhvdmVyOmJnLWdyYXktNjAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgaWNvbjogXCJoLTUgdy01XCJcbiAgICB9XG4gIH0sXG4gIGZvb3Rlcjoge1xuICAgIGJhc2U6IFwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIHJvdW5kZWQtYiBib3JkZXItZ3JheS0yMDAgcC02IGRhcms6Ym9yZGVyLWdyYXktNjAwXCIsXG4gICAgcG9wdXA6IFwiYm9yZGVyLXRcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgbW9kYWxUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCBwYWdpbmF0aW9uVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiXCIsXG4gIGxheW91dDoge1xuICAgIHRhYmxlOiB7XG4gICAgICBiYXNlOiBcInRleHQtc20gdGV4dC1ncmF5LTcwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICAgIHNwYW46IFwiZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgfVxuICB9LFxuICBwYWdlczoge1xuICAgIGJhc2U6IFwieHM6bXQtMCBtdC0yIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciAtc3BhY2UteC1weFwiLFxuICAgIHNob3dJY29uOiBcImlubGluZS1mbGV4XCIsXG4gICAgcHJldmlvdXM6IHtcbiAgICAgIGJhc2U6IFwibWwtMCByb3VuZGVkLWwtbGcgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBiZy13aGl0ZSBweC0zIHB5LTIgbGVhZGluZy10aWdodCB0ZXh0LWdyYXktNTAwIGVuYWJsZWQ6aG92ZXI6YmctZ3JheS0xMDAgZW5hYmxlZDpob3Zlcjp0ZXh0LWdyYXktNzAwIGRhcms6Ym9yZGVyLWdyYXktNzAwIGRhcms6YmctZ3JheS04MDAgZGFyazp0ZXh0LWdyYXktNDAwIGVuYWJsZWQ6ZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBlbmFibGVkOmRhcms6aG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgaWNvbjogXCJoLTUgdy01XCJcbiAgICB9LFxuICAgIG5leHQ6IHtcbiAgICAgIGJhc2U6IFwicm91bmRlZC1yLWxnIGJvcmRlciBib3JkZXItZ3JheS0zMDAgYmctd2hpdGUgcHgtMyBweS0yIGxlYWRpbmctdGlnaHQgdGV4dC1ncmF5LTUwMCBlbmFibGVkOmhvdmVyOmJnLWdyYXktMTAwIGVuYWJsZWQ6aG92ZXI6dGV4dC1ncmF5LTcwMCBkYXJrOmJvcmRlci1ncmF5LTcwMCBkYXJrOmJnLWdyYXktODAwIGRhcms6dGV4dC1ncmF5LTQwMCBlbmFibGVkOmRhcms6aG92ZXI6YmctZ3JheS03MDAgZW5hYmxlZDpkYXJrOmhvdmVyOnRleHQtd2hpdGVcIixcbiAgICAgIGljb246IFwiaC01IHctNVwiXG4gICAgfSxcbiAgICBzZWxlY3Rvcjoge1xuICAgICAgYmFzZTogXCJ3LTEyIGJvcmRlciBib3JkZXItZ3JheS0zMDAgYmctd2hpdGUgcHktMiBsZWFkaW5nLXRpZ2h0IHRleHQtZ3JheS01MDAgZW5hYmxlZDpob3ZlcjpiZy1ncmF5LTEwMCBlbmFibGVkOmhvdmVyOnRleHQtZ3JheS03MDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtZ3JheS00MDAgZW5hYmxlZDpkYXJrOmhvdmVyOmJnLWdyYXktNzAwIGVuYWJsZWQ6ZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgICBhY3RpdmU6IFwiYmctY3lhbi01MCB0ZXh0LWN5YW4tNjAwIGhvdmVyOmJnLWN5YW4tMTAwIGhvdmVyOnRleHQtY3lhbi03MDAgZGFyazpib3JkZXItZ3JheS03MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGVcIixcbiAgICAgIGRpc2FibGVkOiBcImN1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwXCJcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBwYWdpbmF0aW9uVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImNvbnN0IHBvcG92ZXJUaGVtZSA9IHtcbiAgYmFzZTogXCJhYnNvbHV0ZSB6LTIwIGlubGluZS1ibG9jayB3LW1heCBtYXgtdy1bMTAwdnddIGJnLXdoaXRlIG91dGxpbmUtbm9uZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93LXNtIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS04MDBcIixcbiAgY29udGVudDogXCJ6LTEwIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLVs3cHhdXCIsXG4gIGFycm93OiB7XG4gICAgYmFzZTogXCJhYnNvbHV0ZSBoLTIgdy0yIHotMCByb3RhdGUtNDUgbWl4LWJsZW5kLWxpZ2h0ZW4gYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktODAwIGRhcms6bWl4LWJsZW5kLWNvbG9yXCIsXG4gICAgcGxhY2VtZW50OiBcIi00cHhcIlxuICB9XG59O1xuXG5leHBvcnQgeyBwb3BvdmVyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgcHJvZ3Jlc3NUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJ3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gIGxhYmVsOiBcIm1iLTEgZmxleCBqdXN0aWZ5LWJldHdlZW4gZm9udC1tZWRpdW0gZGFyazp0ZXh0LXdoaXRlXCIsXG4gIGJhcjogXCJzcGFjZS14LTIgcm91bmRlZC1mdWxsIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LWN5YW4tMzAwIGRhcms6dGV4dC1jeWFuLTEwMFwiLFxuICBjb2xvcjoge1xuICAgIGRhcms6IFwiYmctZ3JheS02MDAgZGFyazpiZy1ncmF5LTMwMFwiLFxuICAgIGJsdWU6IFwiYmctYmx1ZS02MDBcIixcbiAgICByZWQ6IFwiYmctcmVkLTYwMCBkYXJrOmJnLXJlZC01MDBcIixcbiAgICBncmVlbjogXCJiZy1ncmVlbi02MDAgZGFyazpiZy1ncmVlbi01MDBcIixcbiAgICB5ZWxsb3c6IFwiYmcteWVsbG93LTQwMFwiLFxuICAgIGluZGlnbzogXCJiZy1pbmRpZ28tNjAwIGRhcms6YmctaW5kaWdvLTUwMFwiLFxuICAgIHB1cnBsZTogXCJiZy1wdXJwbGUtNjAwIGRhcms6YmctcHVycGxlLTUwMFwiLFxuICAgIGN5YW46IFwiYmctY3lhbi02MDBcIixcbiAgICBncmF5OiBcImJnLWdyYXktNTAwXCIsXG4gICAgbGltZTogXCJiZy1saW1lLTYwMFwiLFxuICAgIHBpbms6IFwiYmctcGluay01MDBcIixcbiAgICB0ZWFsOiBcImJnLXRlYWwtNjAwXCJcbiAgfSxcbiAgc2l6ZToge1xuICAgIHNtOiBcImgtMS41XCIsXG4gICAgbWQ6IFwiaC0yLjVcIixcbiAgICBsZzogXCJoLTRcIixcbiAgICB4bDogXCJoLTZcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgcHJvZ3Jlc3NUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCByYWRpb1RoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJoLTQgdy00IGJvcmRlciBib3JkZXItZ3JheS0zMDAgdGV4dC1jeWFuLTYwMCBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6Zm9jdXM6YmctY3lhbi02MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNjAwXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IHJhZGlvVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgcmFuZ2VTbGlkZXJUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgcm9vdDoge1xuICAgIGJhc2U6IFwiZmxleFwiXG4gIH0sXG4gIGZpZWxkOiB7XG4gICAgYmFzZTogXCJyZWxhdGl2ZSB3LWZ1bGxcIixcbiAgICBpbnB1dDoge1xuICAgICAgYmFzZTogXCJ3LWZ1bGwgY3Vyc29yLXBvaW50ZXIgYXBwZWFyYW5jZS1ub25lIHJvdW5kZWQtbGcgYmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgICAgc2l6ZXM6IHtcbiAgICAgICAgc206IFwiaC0xXCIsXG4gICAgICAgIG1kOiBcImgtMlwiLFxuICAgICAgICBsZzogXCJoLTNcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IHJhbmdlU2xpZGVyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgcmF0aW5nVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImZsZXggaXRlbXMtY2VudGVyXCJcbiAgfSxcbiAgc3Rhcjoge1xuICAgIGVtcHR5OiBcInRleHQtZ3JheS0zMDAgZGFyazp0ZXh0LWdyYXktNTAwXCIsXG4gICAgZmlsbGVkOiBcInRleHQteWVsbG93LTQwMFwiLFxuICAgIHNpemVzOiB7XG4gICAgICBzbTogXCJoLTUgdy01XCIsXG4gICAgICBtZDogXCJoLTcgdy03XCIsXG4gICAgICBsZzogXCJoLTEwIHctMTBcIlxuICAgIH1cbiAgfVxufSk7XG5jb25zdCByYXRpbmdBZHZhbmNlZFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImZsZXggaXRlbXMtY2VudGVyXCIsXG4gIGxhYmVsOiBcInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1jeWFuLTYwMCBkYXJrOnRleHQtY3lhbi01MDBcIixcbiAgcHJvZ3Jlc3M6IHtcbiAgICBiYXNlOiBcIm14LTQgaC01IHctMi80IHJvdW5kZWQgYmctZ3JheS0yMDAgZGFyazpiZy1ncmF5LTcwMFwiLFxuICAgIGZpbGw6IFwiaC01IHJvdW5kZWQgYmcteWVsbG93LTQwMFwiLFxuICAgIGxhYmVsOiBcInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1jeWFuLTYwMCBkYXJrOnRleHQtY3lhbi01MDBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgcmF0aW5nQWR2YW5jZWRUaGVtZSwgcmF0aW5nVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3Qgc2VsZWN0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiZmxleFwiLFxuICBhZGRvbjogXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sLW1kIGJvcmRlciBib3JkZXItci0wIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTIwMCBweC0zIHRleHQtc20gdGV4dC1ncmF5LTkwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICBmaWVsZDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgdy1mdWxsXCIsXG4gICAgaWNvbjoge1xuICAgICAgYmFzZTogXCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgZmxleCBpdGVtcy1jZW50ZXIgcGwtM1wiLFxuICAgICAgc3ZnOiBcImgtNSB3LTUgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgIH0sXG4gICAgc2VsZWN0OiB7XG4gICAgICBiYXNlOiBcImJsb2NrIHctZnVsbCBib3JkZXIgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOm9wYWNpdHktNTBcIixcbiAgICAgIHdpdGhJY29uOiB7XG4gICAgICAgIG9uOiBcInBsLTEwXCIsXG4gICAgICAgIG9mZjogXCJcIlxuICAgICAgfSxcbiAgICAgIHdpdGhBZGRvbjoge1xuICAgICAgICBvbjogXCJyb3VuZGVkLXItbGdcIixcbiAgICAgICAgb2ZmOiBcInJvdW5kZWQtbGdcIlxuICAgICAgfSxcbiAgICAgIHdpdGhTaGFkb3c6IHtcbiAgICAgICAgb246IFwic2hhZG93LXNtIGRhcms6c2hhZG93LXNtLWxpZ2h0XCIsXG4gICAgICAgIG9mZjogXCJcIlxuICAgICAgfSxcbiAgICAgIHNpemVzOiB7XG4gICAgICAgIHNtOiBcInAtMiBzbTp0ZXh0LXhzXCIsXG4gICAgICAgIG1kOiBcInAtMi41IHRleHQtc21cIixcbiAgICAgICAgbGc6IFwicC00IHNtOnRleHQtYmFzZVwiXG4gICAgICB9LFxuICAgICAgY29sb3JzOiB7XG4gICAgICAgIGdyYXk6IFwiYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgdGV4dC1ncmF5LTkwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwIGRhcms6dGV4dC13aGl0ZSBkYXJrOnBsYWNlaG9sZGVyLWdyYXktNDAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgICAgICBpbmZvOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTUwIHRleHQtY3lhbi05MDAgcGxhY2Vob2xkZXItY3lhbi03MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItY3lhbi00MDAgZGFyazpiZy1jeWFuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICAgICAgZmFpbHVyZTogXCJib3JkZXItcmVkLTUwMCBiZy1yZWQtNTAgdGV4dC1yZWQtOTAwIHBsYWNlaG9sZGVyLXJlZC03MDAgZm9jdXM6Ym9yZGVyLXJlZC01MDAgZm9jdXM6cmluZy1yZWQtNTAwIGRhcms6Ym9yZGVyLXJlZC00MDAgZGFyazpiZy1yZWQtMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLXJlZC01MDAgZGFyazpmb2N1czpyaW5nLXJlZC01MDBcIixcbiAgICAgICAgd2FybmluZzogXCJib3JkZXIteWVsbG93LTUwMCBiZy15ZWxsb3ctNTAgdGV4dC15ZWxsb3ctOTAwIHBsYWNlaG9sZGVyLXllbGxvdy03MDAgZm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZm9jdXM6cmluZy15ZWxsb3ctNTAwIGRhcms6Ym9yZGVyLXllbGxvdy00MDAgZGFyazpiZy15ZWxsb3ctMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLXllbGxvdy01MDAgZGFyazpmb2N1czpyaW5nLXllbGxvdy01MDBcIixcbiAgICAgICAgc3VjY2VzczogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTUwIHRleHQtZ3JlZW4tOTAwIHBsYWNlaG9sZGVyLWdyZWVuLTcwMCBmb2N1czpib3JkZXItZ3JlZW4tNTAwIGZvY3VzOnJpbmctZ3JlZW4tNTAwIGRhcms6Ym9yZGVyLWdyZWVuLTQwMCBkYXJrOmJnLWdyZWVuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDAgZGFyazpmb2N1czpyaW5nLWdyZWVuLTUwMFwiXG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgc2VsZWN0VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3Qgc2lkZWJhclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJoLWZ1bGxcIixcbiAgICBjb2xsYXBzZWQ6IHtcbiAgICAgIG9uOiBcInctMTZcIixcbiAgICAgIG9mZjogXCJ3LTY0XCJcbiAgICB9LFxuICAgIGlubmVyOiBcImgtZnVsbCBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gcm91bmRlZCBiZy1ncmF5LTUwIHB4LTMgcHktNCBkYXJrOmJnLWdyYXktODAwXCJcbiAgfSxcbiAgY29sbGFwc2U6IHtcbiAgICBidXR0b246IFwiZ3JvdXAgZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIHJvdW5kZWQtbGcgcC0yIHRleHQtYmFzZSBmb250LW5vcm1hbCB0ZXh0LWdyYXktOTAwIHRyYW5zaXRpb24gZHVyYXRpb24tNzUgaG92ZXI6YmctZ3JheS0xMDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6aG92ZXI6YmctZ3JheS03MDBcIixcbiAgICBpY29uOiB7XG4gICAgICBiYXNlOiBcImgtNiB3LTYgdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uIGR1cmF0aW9uLTc1IGdyb3VwLWhvdmVyOnRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6Z3JvdXAtaG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgb3Blbjoge1xuICAgICAgICBvZmY6IFwiXCIsXG4gICAgICAgIG9uOiBcInRleHQtZ3JheS05MDBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgbGFiZWw6IHtcbiAgICAgIGJhc2U6IFwibWwtMyBmbGV4LTEgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1sZWZ0XCIsXG4gICAgICBpY29uOiB7XG4gICAgICAgIGJhc2U6IFwiaC02IHctNiB0cmFuc2l0aW9uIGRlbGF5LTAgZWFzZS1pbi1vdXRcIixcbiAgICAgICAgb3Blbjoge1xuICAgICAgICAgIG9uOiBcInJvdGF0ZS0xODBcIixcbiAgICAgICAgICBvZmY6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGlzdDogXCJzcGFjZS15LTIgcHktMlwiXG4gIH0sXG4gIGN0YToge1xuICAgIGJhc2U6IFwibXQtNiByb3VuZGVkLWxnIGJnLWdyYXktMTAwIHAtNCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgY29sb3I6IHtcbiAgICAgIGJsdWU6IFwiYmctY3lhbi01MCBkYXJrOmJnLWN5YW4tOTAwXCIsXG4gICAgICBkYXJrOiBcImJnLWRhcmstNTAgZGFyazpiZy1kYXJrLTkwMFwiLFxuICAgICAgZmFpbHVyZTogXCJiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTAwXCIsXG4gICAgICBncmF5OiBcImJnLWFsdGVybmF0aXZlLTUwIGRhcms6YmctYWx0ZXJuYXRpdmUtOTAwXCIsXG4gICAgICBncmVlbjogXCJiZy1ncmVlbi01MCBkYXJrOmJnLWdyZWVuLTkwMFwiLFxuICAgICAgbGlnaHQ6IFwiYmctbGlnaHQtNTAgZGFyazpiZy1saWdodC05MDBcIixcbiAgICAgIHJlZDogXCJiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTAwXCIsXG4gICAgICBwdXJwbGU6IFwiYmctcHVycGxlLTUwIGRhcms6YmctcHVycGxlLTkwMFwiLFxuICAgICAgc3VjY2VzczogXCJiZy1ncmVlbi01MCBkYXJrOmJnLWdyZWVuLTkwMFwiLFxuICAgICAgeWVsbG93OiBcImJnLXllbGxvdy01MCBkYXJrOmJnLXllbGxvdy05MDBcIixcbiAgICAgIHdhcm5pbmc6IFwiYmcteWVsbG93LTUwIGRhcms6YmcteWVsbG93LTkwMFwiXG4gICAgfVxuICB9LFxuICBpdGVtOiB7XG4gICAgYmFzZTogXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIHAtMiB0ZXh0LWJhc2UgZm9udC1ub3JtYWwgdGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpob3ZlcjpiZy1ncmF5LTcwMFwiLFxuICAgIGFjdGl2ZTogXCJiZy1ncmF5LTEwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgY29sbGFwc2VkOiB7XG4gICAgICBpbnNpZGVDb2xsYXBzZTogXCJncm91cCB3LWZ1bGwgcGwtOCB0cmFuc2l0aW9uIGR1cmF0aW9uLTc1XCIsXG4gICAgICBub0ljb246IFwiZm9udC1ib2xkXCJcbiAgICB9LFxuICAgIGNvbnRlbnQ6IHtcbiAgICAgIGJhc2U6IFwiZmxleC0xIHdoaXRlc3BhY2Utbm93cmFwIHB4LTNcIlxuICAgIH0sXG4gICAgaWNvbjoge1xuICAgICAgYmFzZTogXCJoLTYgdy02IGZsZXgtc2hyaW5rLTAgdGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uIGR1cmF0aW9uLTc1IGdyb3VwLWhvdmVyOnRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6Z3JvdXAtaG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgICAgYWN0aXZlOiBcInRleHQtZ3JheS03MDAgZGFyazp0ZXh0LWdyYXktMTAwXCJcbiAgICB9LFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGxpc3RJdGVtOiBcIlwiXG4gIH0sXG4gIGl0ZW1zOiB7XG4gICAgYmFzZTogXCJcIlxuICB9LFxuICBpdGVtR3JvdXA6IHtcbiAgICBiYXNlOiBcIm10LTQgc3BhY2UteS0yIGJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBwdC00IGZpcnN0Om10LTAgZmlyc3Q6Ym9yZGVyLXQtMCBmaXJzdDpwdC0wIGRhcms6Ym9yZGVyLWdyYXktNzAwXCJcbiAgfSxcbiAgbG9nbzoge1xuICAgIGJhc2U6IFwibWItNSBmbGV4IGl0ZW1zLWNlbnRlciBwbC0yLjVcIixcbiAgICBjb2xsYXBzZWQ6IHtcbiAgICAgIG9uOiBcImhpZGRlblwiLFxuICAgICAgb2ZmOiBcInNlbGYtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHRleHQteGwgZm9udC1zZW1pYm9sZCBkYXJrOnRleHQtd2hpdGVcIlxuICAgIH0sXG4gICAgaW1nOiBcIm1yLTMgaC02IHNtOmgtN1wiXG4gIH1cbn0pO1xuXG5leHBvcnQgeyBzaWRlYmFyVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3Qgc3Bpbm5lclRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICBiYXNlOiBcImlubGluZSBhbmltYXRlLXNwaW4gdGV4dC1ncmF5LTIwMFwiLFxuICBjb2xvcjoge1xuICAgIGZhaWx1cmU6IFwiZmlsbC1yZWQtNjAwXCIsXG4gICAgZ3JheTogXCJmaWxsLWdyYXktNjAwXCIsXG4gICAgaW5mbzogXCJmaWxsLWN5YW4tNjAwXCIsXG4gICAgcGluazogXCJmaWxsLXBpbmstNjAwXCIsXG4gICAgcHVycGxlOiBcImZpbGwtcHVycGxlLTYwMFwiLFxuICAgIHN1Y2Nlc3M6IFwiZmlsbC1ncmVlbi01MDBcIixcbiAgICB3YXJuaW5nOiBcImZpbGwteWVsbG93LTQwMFwiXG4gIH0sXG4gIGxpZ2h0OiB7XG4gICAgb2ZmOiB7XG4gICAgICBiYXNlOiBcImRhcms6dGV4dC1ncmF5LTYwMFwiLFxuICAgICAgY29sb3I6IHtcbiAgICAgICAgZmFpbHVyZTogXCJcIixcbiAgICAgICAgZ3JheTogXCJkYXJrOmZpbGwtZ3JheS0zMDBcIixcbiAgICAgICAgaW5mbzogXCJcIixcbiAgICAgICAgcGluazogXCJcIixcbiAgICAgICAgcHVycGxlOiBcIlwiLFxuICAgICAgICBzdWNjZXNzOiBcIlwiLFxuICAgICAgICB3YXJuaW5nOiBcIlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBvbjoge1xuICAgICAgYmFzZTogXCJcIixcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIGZhaWx1cmU6IFwiXCIsXG4gICAgICAgIGdyYXk6IFwiXCIsXG4gICAgICAgIGluZm86IFwiXCIsXG4gICAgICAgIHBpbms6IFwiXCIsXG4gICAgICAgIHB1cnBsZTogXCJcIixcbiAgICAgICAgc3VjY2VzczogXCJcIixcbiAgICAgICAgd2FybmluZzogXCJcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgc2l6ZToge1xuICAgIHhzOiBcImgtMyB3LTNcIixcbiAgICBzbTogXCJoLTQgdy00XCIsXG4gICAgbWQ6IFwiaC02IHctNlwiLFxuICAgIGxnOiBcImgtOCB3LThcIixcbiAgICB4bDogXCJoLTEwIHctMTBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgc3Bpbm5lclRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHRhYmxlVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcInctZnVsbCB0ZXh0LWxlZnQgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgIHNoYWRvdzogXCJhYnNvbHV0ZSBsZWZ0LTAgdG9wLTAgLXotMTAgaC1mdWxsIHctZnVsbCByb3VuZGVkLWxnIGJnLXdoaXRlIGRyb3Atc2hhZG93LW1kIGRhcms6YmctYmxhY2tcIixcbiAgICB3cmFwcGVyOiBcInJlbGF0aXZlXCJcbiAgfSxcbiAgYm9keToge1xuICAgIGJhc2U6IFwiZ3JvdXAvYm9keVwiLFxuICAgIGNlbGw6IHtcbiAgICAgIGJhc2U6IFwicHgtNiBweS00IGdyb3VwLWZpcnN0L2JvZHk6Z3JvdXAtZmlyc3Qvcm93OmZpcnN0OnJvdW5kZWQtdGwtbGcgZ3JvdXAtZmlyc3QvYm9keTpncm91cC1maXJzdC9yb3c6bGFzdDpyb3VuZGVkLXRyLWxnIGdyb3VwLWxhc3QvYm9keTpncm91cC1sYXN0L3JvdzpmaXJzdDpyb3VuZGVkLWJsLWxnIGdyb3VwLWxhc3QvYm9keTpncm91cC1sYXN0L3JvdzpsYXN0OnJvdW5kZWQtYnItbGdcIlxuICAgIH1cbiAgfSxcbiAgaGVhZDoge1xuICAgIGJhc2U6IFwiZ3JvdXAvaGVhZCB0ZXh0LXhzIHVwcGVyY2FzZSB0ZXh0LWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICAgIGNlbGw6IHtcbiAgICAgIGJhc2U6IFwiYmctZ3JheS01MCBweC02IHB5LTMgZ3JvdXAtZmlyc3QvaGVhZDpmaXJzdDpyb3VuZGVkLXRsLWxnIGdyb3VwLWZpcnN0L2hlYWQ6bGFzdDpyb3VuZGVkLXRyLWxnIGRhcms6YmctZ3JheS03MDBcIlxuICAgIH1cbiAgfSxcbiAgcm93OiB7XG4gICAgYmFzZTogXCJncm91cC9yb3dcIixcbiAgICBob3ZlcmVkOiBcImhvdmVyOmJnLWdyYXktNTAgZGFyazpob3ZlcjpiZy1ncmF5LTYwMFwiLFxuICAgIHN0cmlwZWQ6IFwib2RkOmJnLXdoaXRlIGV2ZW46YmctZ3JheS01MCBvZGQ6ZGFyazpiZy1ncmF5LTgwMCBldmVuOmRhcms6YmctZ3JheS03MDBcIlxuICB9XG59KTtcblxuZXhwb3J0IHsgdGFibGVUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0YWJUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJmbGV4IGZsZXgtY29sIGdhcC0yXCIsXG4gIHRhYmxpc3Q6IHtcbiAgICBiYXNlOiBcImZsZXggdGV4dC1jZW50ZXJcIixcbiAgICB2YXJpYW50OiB7XG4gICAgICBkZWZhdWx0OiBcImZsZXgtd3JhcCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgZGFyazpib3JkZXItZ3JheS03MDBcIixcbiAgICAgIHVuZGVybGluZTogXCItbWItcHggZmxleC13cmFwIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiLFxuICAgICAgcGlsbHM6IFwiZmxleC13cmFwIHNwYWNlLXgtMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCIsXG4gICAgICBmdWxsV2lkdGg6IFwiZ3JpZCB3LWZ1bGwgZ3JpZC1mbG93LWNvbCBkaXZpZGUteCBkaXZpZGUtZ3JheS0yMDAgcm91bmRlZC1ub25lIHRleHQtc20gZm9udC1tZWRpdW0gc2hhZG93IGRhcms6ZGl2aWRlLWdyYXktNzAwIGRhcms6dGV4dC1ncmF5LTQwMFwiXG4gICAgfSxcbiAgICB0YWJpdGVtOiB7XG4gICAgICBiYXNlOiBcImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtdC1sZyBwLTQgdGV4dC1zbSBmb250LW1lZGl1bSBmaXJzdDptbC0wIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy1jeWFuLTMwMCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6dGV4dC1ncmF5LTQwMCBkaXNhYmxlZDpkYXJrOnRleHQtZ3JheS01MDBcIixcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGJhc2U6IFwicm91bmRlZC10LWxnXCIsXG4gICAgICAgICAgYWN0aXZlOiB7XG4gICAgICAgICAgICBvbjogXCJiZy1ncmF5LTEwMCB0ZXh0LWN5YW4tNjAwIGRhcms6YmctZ3JheS04MDAgZGFyazp0ZXh0LWN5YW4tNTAwXCIsXG4gICAgICAgICAgICBvZmY6IFwidGV4dC1ncmF5LTUwMCBob3ZlcjpiZy1ncmF5LTUwIGhvdmVyOnRleHQtZ3JheS02MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgZGFyazpob3Zlcjp0ZXh0LWdyYXktMzAwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVybGluZToge1xuICAgICAgICAgIGJhc2U6IFwicm91bmRlZC10LWxnXCIsXG4gICAgICAgICAgYWN0aXZlOiB7XG4gICAgICAgICAgICBvbjogXCJhY3RpdmUgcm91bmRlZC10LWxnIGJvcmRlci1iLTIgYm9yZGVyLWN5YW4tNjAwIHRleHQtY3lhbi02MDAgZGFyazpib3JkZXItY3lhbi01MDAgZGFyazp0ZXh0LWN5YW4tNTAwXCIsXG4gICAgICAgICAgICBvZmY6IFwiYm9yZGVyLWItMiBib3JkZXItdHJhbnNwYXJlbnQgdGV4dC1ncmF5LTUwMCBob3Zlcjpib3JkZXItZ3JheS0zMDAgaG92ZXI6dGV4dC1ncmF5LTYwMCBkYXJrOnRleHQtZ3JheS00MDAgZGFyazpob3Zlcjp0ZXh0LWdyYXktMzAwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBpbGxzOiB7XG4gICAgICAgICAgYmFzZTogXCJcIixcbiAgICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIG9uOiBcInJvdW5kZWQtbGcgYmctY3lhbi02MDAgdGV4dC13aGl0ZVwiLFxuICAgICAgICAgICAgb2ZmOiBcInJvdW5kZWQtbGcgaG92ZXI6YmctZ3JheS0xMDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBkYXJrOmhvdmVyOmJnLWdyYXktODAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmdWxsV2lkdGg6IHtcbiAgICAgICAgICBiYXNlOiBcIm1sLTAgZmxleCB3LWZ1bGwgcm91bmRlZC1ub25lIGZpcnN0Om1sLTBcIixcbiAgICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIG9uOiBcImFjdGl2ZSByb3VuZGVkLW5vbmUgYmctZ3JheS0xMDAgcC00IHRleHQtZ3JheS05MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGVcIixcbiAgICAgICAgICAgIG9mZjogXCJyb3VuZGVkLW5vbmUgYmctd2hpdGUgaG92ZXI6YmctZ3JheS01MCBob3Zlcjp0ZXh0LWdyYXktNzAwIGRhcms6YmctZ3JheS04MDAgZGFyazpob3ZlcjpiZy1ncmF5LTcwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGljb246IFwibXItMiBoLTUgdy01XCJcbiAgICB9XG4gIH0sXG4gIHRhYml0ZW1jb250YWluZXI6IHtcbiAgICBiYXNlOiBcIlwiLFxuICAgIHZhcmlhbnQ6IHtcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXG4gICAgICB1bmRlcmxpbmU6IFwiXCIsXG4gICAgICBwaWxsczogXCJcIixcbiAgICAgIGZ1bGxXaWR0aDogXCJcIlxuICAgIH1cbiAgfSxcbiAgdGFicGFuZWw6IFwicHktM1wiXG59KTtcblxuZXhwb3J0IHsgdGFiVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdGV4dGFyZWFUaGVtZSA9IGNyZWF0ZVRoZW1lKHtcbiAgYmFzZTogXCJibG9jayB3LWZ1bGwgcm91bmRlZC1sZyBib3JkZXIgdGV4dC1zbSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiLFxuICBjb2xvcnM6IHtcbiAgICBncmF5OiBcImJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIHRleHQtZ3JheS05MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItZ3JheS02MDAgZGFyazpiZy1ncmF5LTcwMCBkYXJrOnRleHQtd2hpdGUgZGFyazpwbGFjZWhvbGRlci1ncmF5LTQwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICBpbmZvOiBcImJvcmRlci1jeWFuLTUwMCBiZy1jeWFuLTUwIHRleHQtY3lhbi05MDAgcGxhY2Vob2xkZXItY3lhbi03MDAgZm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGZvY3VzOnJpbmctY3lhbi01MDAgZGFyazpib3JkZXItY3lhbi00MDAgZGFyazpiZy1jeWFuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1jeWFuLTUwMCBkYXJrOmZvY3VzOnJpbmctY3lhbi01MDBcIixcbiAgICBmYWlsdXJlOiBcImJvcmRlci1yZWQtNTAwIGJnLXJlZC01MCB0ZXh0LXJlZC05MDAgcGxhY2Vob2xkZXItcmVkLTcwMCBmb2N1czpib3JkZXItcmVkLTUwMCBmb2N1czpyaW5nLXJlZC01MDAgZGFyazpib3JkZXItcmVkLTQwMCBkYXJrOmJnLXJlZC0xMDAgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMCBkYXJrOmZvY3VzOnJpbmctcmVkLTUwMFwiLFxuICAgIHdhcm5pbmc6IFwiYm9yZGVyLXllbGxvdy01MDAgYmcteWVsbG93LTUwIHRleHQteWVsbG93LTkwMCBwbGFjZWhvbGRlci15ZWxsb3ctNzAwIGZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGZvY3VzOnJpbmcteWVsbG93LTUwMCBkYXJrOmJvcmRlci15ZWxsb3ctNDAwIGRhcms6YmcteWVsbG93LTEwMCBkYXJrOmZvY3VzOmJvcmRlci15ZWxsb3ctNTAwIGRhcms6Zm9jdXM6cmluZy15ZWxsb3ctNTAwXCIsXG4gICAgc3VjY2VzczogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTUwIHRleHQtZ3JlZW4tOTAwIHBsYWNlaG9sZGVyLWdyZWVuLTcwMCBmb2N1czpib3JkZXItZ3JlZW4tNTAwIGZvY3VzOnJpbmctZ3JlZW4tNTAwIGRhcms6Ym9yZGVyLWdyZWVuLTQwMCBkYXJrOmJnLWdyZWVuLTEwMCBkYXJrOmZvY3VzOmJvcmRlci1ncmVlbi01MDAgZGFyazpmb2N1czpyaW5nLWdyZWVuLTUwMFwiXG4gIH0sXG4gIHdpdGhTaGFkb3c6IHtcbiAgICBvbjogXCJzaGFkb3ctc20gZGFyazpzaGFkb3ctc20tbGlnaHRcIixcbiAgICBvZmY6IFwiXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IHRleHRhcmVhVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdGV4dElucHV0VGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIGJhc2U6IFwiZmxleFwiLFxuICBhZGRvbjogXCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1sLW1kIGJvcmRlciBib3JkZXItci0wIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTIwMCBweC0zIHRleHQtc20gdGV4dC1ncmF5LTkwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMFwiLFxuICBmaWVsZDoge1xuICAgIGJhc2U6IFwicmVsYXRpdmUgdy1mdWxsXCIsXG4gICAgaWNvbjoge1xuICAgICAgYmFzZTogXCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXktMCBsZWZ0LTAgZmxleCBpdGVtcy1jZW50ZXIgcGwtM1wiLFxuICAgICAgc3ZnOiBcImgtNSB3LTUgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgIH0sXG4gICAgcmlnaHRJY29uOiB7XG4gICAgICBiYXNlOiBcInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteS0wIHJpZ2h0LTAgZmxleCBpdGVtcy1jZW50ZXIgcHItM1wiLFxuICAgICAgc3ZnOiBcImgtNSB3LTUgdGV4dC1ncmF5LTUwMCBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgIGJhc2U6IFwiYmxvY2sgdy1mdWxsIGJvcmRlciBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiLFxuICAgICAgc2l6ZXM6IHtcbiAgICAgICAgc206IFwicC0yIHNtOnRleHQteHNcIixcbiAgICAgICAgbWQ6IFwicC0yLjUgdGV4dC1zbVwiLFxuICAgICAgICBsZzogXCJwLTQgc206dGV4dC1iYXNlXCJcbiAgICAgIH0sXG4gICAgICBjb2xvcnM6IHtcbiAgICAgICAgZ3JheTogXCJib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCB0ZXh0LWdyYXktOTAwIGZvY3VzOmJvcmRlci1jeWFuLTUwMCBmb2N1czpyaW5nLWN5YW4tNTAwIGRhcms6Ym9yZGVyLWdyYXktNjAwIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlIGRhcms6cGxhY2Vob2xkZXItZ3JheS00MDAgZGFyazpmb2N1czpib3JkZXItY3lhbi01MDAgZGFyazpmb2N1czpyaW5nLWN5YW4tNTAwXCIsXG4gICAgICAgIGluZm86IFwiYm9yZGVyLWN5YW4tNTAwIGJnLWN5YW4tNTAgdGV4dC1jeWFuLTkwMCBwbGFjZWhvbGRlci1jeWFuLTcwMCBmb2N1czpib3JkZXItY3lhbi01MDAgZm9jdXM6cmluZy1jeWFuLTUwMCBkYXJrOmJvcmRlci1jeWFuLTQwMCBkYXJrOmJnLWN5YW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWN5YW4tNTAwIGRhcms6Zm9jdXM6cmluZy1jeWFuLTUwMFwiLFxuICAgICAgICBmYWlsdXJlOiBcImJvcmRlci1yZWQtNTAwIGJnLXJlZC01MCB0ZXh0LXJlZC05MDAgcGxhY2Vob2xkZXItcmVkLTcwMCBmb2N1czpib3JkZXItcmVkLTUwMCBmb2N1czpyaW5nLXJlZC01MDAgZGFyazpib3JkZXItcmVkLTQwMCBkYXJrOmJnLXJlZC0xMDAgZGFyazpmb2N1czpib3JkZXItcmVkLTUwMCBkYXJrOmZvY3VzOnJpbmctcmVkLTUwMFwiLFxuICAgICAgICB3YXJuaW5nOiBcImJvcmRlci15ZWxsb3ctNTAwIGJnLXllbGxvdy01MCB0ZXh0LXllbGxvdy05MDAgcGxhY2Vob2xkZXIteWVsbG93LTcwMCBmb2N1czpib3JkZXIteWVsbG93LTUwMCBmb2N1czpyaW5nLXllbGxvdy01MDAgZGFyazpib3JkZXIteWVsbG93LTQwMCBkYXJrOmJnLXllbGxvdy0xMDAgZGFyazpmb2N1czpib3JkZXIteWVsbG93LTUwMCBkYXJrOmZvY3VzOnJpbmcteWVsbG93LTUwMFwiLFxuICAgICAgICBzdWNjZXNzOiBcImJvcmRlci1ncmVlbi01MDAgYmctZ3JlZW4tNTAgdGV4dC1ncmVlbi05MDAgcGxhY2Vob2xkZXItZ3JlZW4tNzAwIGZvY3VzOmJvcmRlci1ncmVlbi01MDAgZm9jdXM6cmluZy1ncmVlbi01MDAgZGFyazpib3JkZXItZ3JlZW4tNDAwIGRhcms6YmctZ3JlZW4tMTAwIGRhcms6Zm9jdXM6Ym9yZGVyLWdyZWVuLTUwMCBkYXJrOmZvY3VzOnJpbmctZ3JlZW4tNTAwXCJcbiAgICAgIH0sXG4gICAgICB3aXRoUmlnaHRJY29uOiB7XG4gICAgICAgIG9uOiBcInByLTEwXCIsXG4gICAgICAgIG9mZjogXCJcIlxuICAgICAgfSxcbiAgICAgIHdpdGhJY29uOiB7XG4gICAgICAgIG9uOiBcInBsLTEwXCIsXG4gICAgICAgIG9mZjogXCJcIlxuICAgICAgfSxcbiAgICAgIHdpdGhBZGRvbjoge1xuICAgICAgICBvbjogXCJyb3VuZGVkLXItbGdcIixcbiAgICAgICAgb2ZmOiBcInJvdW5kZWQtbGdcIlxuICAgICAgfSxcbiAgICAgIHdpdGhTaGFkb3c6IHtcbiAgICAgICAgb246IFwic2hhZG93LXNtIGRhcms6c2hhZG93LXNtLWxpZ2h0XCIsXG4gICAgICAgIG9mZjogXCJcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCB7IHRleHRJbnB1dFRoZW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10aGVtZS5tanMubWFwXG4iLCJpbXBvcnQgeyBjcmVhdGVUaGVtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLXRoZW1lLm1qcyc7XG5cbmNvbnN0IHRpbWVsaW5lVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBkaXJlY3Rpb246IHtcbiAgICAgIGhvcml6b250YWw6IFwic206ZmxleFwiLFxuICAgICAgdmVydGljYWw6IFwicmVsYXRpdmUgYm9yZGVyLWwgYm9yZGVyLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCJcbiAgICB9XG4gIH0sXG4gIGl0ZW06IHtcbiAgICByb290OiB7XG4gICAgICBob3Jpem9udGFsOiBcInJlbGF0aXZlIG1iLTYgc206bWItMFwiLFxuICAgICAgdmVydGljYWw6IFwibWItMTAgbWwtNlwiXG4gICAgfSxcbiAgICBjb250ZW50OiB7XG4gICAgICByb290OiB7XG4gICAgICAgIGJhc2U6IFwiXCIsXG4gICAgICAgIGhvcml6b250YWw6IFwibXQtMyBzbTpwci04XCIsXG4gICAgICAgIHZlcnRpY2FsOiBcIlwiXG4gICAgICB9LFxuICAgICAgYm9keToge1xuICAgICAgICBiYXNlOiBcIm1iLTQgdGV4dC1iYXNlIGZvbnQtbm9ybWFsIHRleHQtZ3JheS01MDAgZGFyazp0ZXh0LWdyYXktNDAwXCJcbiAgICAgIH0sXG4gICAgICB0aW1lOiB7XG4gICAgICAgIGJhc2U6IFwibWItMSB0ZXh0LXNtIGZvbnQtbm9ybWFsIGxlYWRpbmctbm9uZSB0ZXh0LWdyYXktNDAwIGRhcms6dGV4dC1ncmF5LTUwMFwiXG4gICAgICB9LFxuICAgICAgdGl0bGU6IHtcbiAgICAgICAgYmFzZTogXCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IHtcbiAgICAgIGhvcml6b250YWw6IFwiZmxleCBpdGVtcy1jZW50ZXJcIixcbiAgICAgIGxpbmU6IFwiaGlkZGVuIGgtMC41IHctZnVsbCBiZy1ncmF5LTIwMCBkYXJrOmJnLWdyYXktNzAwIHNtOmZsZXhcIixcbiAgICAgIG1hcmtlcjoge1xuICAgICAgICBiYXNlOiB7XG4gICAgICAgICAgaG9yaXpvbnRhbDogXCJhYnNvbHV0ZSAtbGVmdC0xLjUgaC0zIHctMyByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci13aGl0ZSBiZy1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTkwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgICAgICAgdmVydGljYWw6IFwiYWJzb2x1dGUgLWxlZnQtMS41IG10LTEuNSBoLTMgdy0zIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlIGJnLWdyYXktMjAwIGRhcms6Ym9yZGVyLWdyYXktOTAwIGRhcms6YmctZ3JheS03MDBcIlxuICAgICAgICB9LFxuICAgICAgICBpY29uOiB7XG4gICAgICAgICAgYmFzZTogXCJoLTMgdy0zIHRleHQtY3lhbi02MDAgZGFyazp0ZXh0LWN5YW4tMzAwXCIsXG4gICAgICAgICAgd3JhcHBlcjogXCJhYnNvbHV0ZSAtbGVmdC0zIGZsZXggaC02IHctNiBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLWN5YW4tMjAwIHJpbmctOCByaW5nLXdoaXRlIGRhcms6YmctY3lhbi05MDAgZGFyazpyaW5nLWdyYXktOTAwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHZlcnRpY2FsOiBcIlwiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgdGltZWxpbmVUaGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY3JlYXRlVGhlbWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS10aGVtZS5tanMnO1xuXG5jb25zdCB0b2FzdFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICByb290OiB7XG4gICAgYmFzZTogXCJmbGV4IHctZnVsbCBtYXgtdy14cyBpdGVtcy1jZW50ZXIgcm91bmRlZC1sZyBiZy13aGl0ZSBwLTQgdGV4dC1ncmF5LTUwMCBzaGFkb3cgZGFyazpiZy1ncmF5LTgwMCBkYXJrOnRleHQtZ3JheS00MDBcIixcbiAgICBjbG9zZWQ6IFwib3BhY2l0eS0wIGVhc2Utb3V0XCJcbiAgfSxcbiAgdG9nZ2xlOiB7XG4gICAgYmFzZTogXCItbS0xLjUgbWwtYXV0byBpbmxpbmUtZmxleCBoLTggdy04IHJvdW5kZWQtbGcgYmctd2hpdGUgcC0xLjUgdGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTEwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWdyYXktMzAwIGRhcms6YmctZ3JheS04MDAgZGFyazp0ZXh0LWdyYXktNTAwIGRhcms6aG92ZXI6YmctZ3JheS03MDAgZGFyazpob3Zlcjp0ZXh0LXdoaXRlXCIsXG4gICAgaWNvbjogXCJoLTUgdy01IHNocmluay0wXCJcbiAgfVxufSk7XG5cbmV4cG9ydCB7IHRvYXN0VGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdG9nZ2xlU3dpdGNoVGhlbWUgPSBjcmVhdGVUaGVtZSh7XG4gIHJvb3Q6IHtcbiAgICBiYXNlOiBcImdyb3VwIGZsZXggcm91bmRlZC1sZyBmb2N1czpvdXRsaW5lLW5vbmVcIixcbiAgICBhY3RpdmU6IHtcbiAgICAgIG9uOiBcImN1cnNvci1wb2ludGVyXCIsXG4gICAgICBvZmY6IFwiY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTBcIlxuICAgIH0sXG4gICAgbGFiZWw6IFwibXMtMyBtdC0wLjUgdGV4dC1zdGFydCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMzAwXCJcbiAgfSxcbiAgdG9nZ2xlOiB7XG4gICAgYmFzZTogXCJyZWxhdGl2ZSByb3VuZGVkLWZ1bGwgYm9yZGVyIGFmdGVyOmFic29sdXRlIGFmdGVyOnJvdW5kZWQtZnVsbCBhZnRlcjpiZy13aGl0ZSBhZnRlcjp0cmFuc2l0aW9uLWFsbCBncm91cC1mb2N1czpyaW5nLTQgZ3JvdXAtZm9jdXM6cmluZy1jeWFuLTUwMC8yNVwiLFxuICAgIGNoZWNrZWQ6IHtcbiAgICAgIG9uOiBcImFmdGVyOnRyYW5zbGF0ZS14LWZ1bGwgYWZ0ZXI6Ym9yZGVyLXdoaXRlIHJ0bDphZnRlcjotdHJhbnNsYXRlLXgtZnVsbFwiLFxuICAgICAgb2ZmOiBcImJvcmRlci1ncmF5LTIwMCBiZy1ncmF5LTIwMCBkYXJrOmJvcmRlci1ncmF5LTYwMCBkYXJrOmJnLWdyYXktNzAwXCIsXG4gICAgICBjb2xvcjoge1xuICAgICAgICBibHVlOiBcImJvcmRlci1jeWFuLTcwMCBiZy1jeWFuLTcwMFwiLFxuICAgICAgICBkYXJrOiBcImJnLWRhcmstNzAwIGJvcmRlci1kYXJrLTkwMFwiLFxuICAgICAgICBmYWlsdXJlOiBcImJvcmRlci1yZWQtOTAwIGJnLXJlZC03MDBcIixcbiAgICAgICAgZ3JheTogXCJib3JkZXItZ3JheS02MDAgYmctZ3JheS01MDBcIixcbiAgICAgICAgZ3JlZW46IFwiYm9yZGVyLWdyZWVuLTcwMCBiZy1ncmVlbi02MDBcIixcbiAgICAgICAgbGlnaHQ6IFwiYmctbGlnaHQtNzAwIGJvcmRlci1saWdodC05MDBcIixcbiAgICAgICAgcmVkOiBcImJvcmRlci1yZWQtOTAwIGJnLXJlZC03MDBcIixcbiAgICAgICAgcHVycGxlOiBcImJvcmRlci1wdXJwbGUtOTAwIGJnLXB1cnBsZS03MDBcIixcbiAgICAgICAgc3VjY2VzczogXCJib3JkZXItZ3JlZW4tNTAwIGJnLWdyZWVuLTUwMFwiLFxuICAgICAgICB5ZWxsb3c6IFwiYm9yZGVyLXllbGxvdy00MDAgYmcteWVsbG93LTQwMFwiLFxuICAgICAgICB3YXJuaW5nOiBcImJvcmRlci15ZWxsb3ctNjAwIGJnLXllbGxvdy02MDBcIixcbiAgICAgICAgY3lhbjogXCJib3JkZXItY3lhbi01MDAgYmctY3lhbi01MDBcIixcbiAgICAgICAgbGltZTogXCJib3JkZXItbGltZS00MDAgYmctbGltZS00MDBcIixcbiAgICAgICAgaW5kaWdvOiBcImJvcmRlci1pbmRpZ28tNDAwIGJnLWluZGlnby00MDBcIixcbiAgICAgICAgdGVhbDogXCJiZy1ncmFkaWVudC10by1yIGZyb20tdGVhbC00MDAgdmlhLXRlYWwtNTAwIHRvLXRlYWwtNjAwIGhvdmVyOmJnLWdyYWRpZW50LXRvLWJyIGZvY3VzOnJpbmctNFwiLFxuICAgICAgICBpbmZvOiBcImJvcmRlci1jeWFuLTYwMCBiZy1jeWFuLTYwMFwiLFxuICAgICAgICBwaW5rOiBcImJvcmRlci1waW5rLTYwMCBiZy1waW5rLTYwMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBzaXplczoge1xuICAgICAgc206IFwiaC01IHctOSBtaW4tdy05IGFmdGVyOmxlZnQtcHggYWZ0ZXI6dG9wLXB4IGFmdGVyOmgtNCBhZnRlcjp3LTQgcnRsOmFmdGVyOnJpZ2h0LXB4XCIsXG4gICAgICBtZDogXCJoLTYgdy0xMSBtaW4tdy0xMSBhZnRlcjpsZWZ0LXB4IGFmdGVyOnRvcC1weCBhZnRlcjpoLTUgYWZ0ZXI6dy01IHJ0bDphZnRlcjpyaWdodC1weFwiLFxuICAgICAgbGc6IFwiaC03IHctMTQgbWluLXctMTQgYWZ0ZXI6bGVmdC0xIGFmdGVyOnRvcC0wLjUgYWZ0ZXI6aC02IGFmdGVyOnctNiBydGw6YWZ0ZXI6cmlnaHQtMVwiXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IHsgdG9nZ2xlU3dpdGNoVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGNyZWF0ZVRoZW1lIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jcmVhdGUtdGhlbWUubWpzJztcblxuY29uc3QgdG9vbHRpcFRoZW1lID0gY3JlYXRlVGhlbWUoe1xuICB0YXJnZXQ6IFwidy1maXRcIixcbiAgYW5pbWF0aW9uOiBcInRyYW5zaXRpb24tb3BhY2l0eVwiLFxuICBhcnJvdzoge1xuICAgIGJhc2U6IFwiYWJzb2x1dGUgei0xMCBoLTIgdy0yIHJvdGF0ZS00NVwiLFxuICAgIHN0eWxlOiB7XG4gICAgICBkYXJrOiBcImJnLWdyYXktOTAwIGRhcms6YmctZ3JheS03MDBcIixcbiAgICAgIGxpZ2h0OiBcImJnLXdoaXRlXCIsXG4gICAgICBhdXRvOiBcImJnLXdoaXRlIGRhcms6YmctZ3JheS03MDBcIlxuICAgIH0sXG4gICAgcGxhY2VtZW50OiBcIi00cHhcIlxuICB9LFxuICBiYXNlOiBcImFic29sdXRlIHotMTAgaW5saW5lLWJsb2NrIHJvdW5kZWQtbGcgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gc2hhZG93LXNtXCIsXG4gIGhpZGRlbjogXCJpbnZpc2libGUgb3BhY2l0eS0wXCIsXG4gIHN0eWxlOiB7XG4gICAgZGFyazogXCJiZy1ncmF5LTkwMCB0ZXh0LXdoaXRlIGRhcms6YmctZ3JheS03MDBcIixcbiAgICBsaWdodDogXCJib3JkZXIgYm9yZGVyLWdyYXktMjAwIGJnLXdoaXRlIHRleHQtZ3JheS05MDBcIixcbiAgICBhdXRvOiBcImJvcmRlciBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgdGV4dC1ncmF5LTkwMCBkYXJrOmJvcmRlci1ub25lIGRhcms6YmctZ3JheS03MDAgZGFyazp0ZXh0LXdoaXRlXCJcbiAgfSxcbiAgY29udGVudDogXCJyZWxhdGl2ZSB6LTIwXCJcbn0pO1xuXG5leHBvcnQgeyB0b29sdGlwVGhlbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRoZW1lLm1qcy5tYXBcbiIsImltcG9ydCB7IGFjY29yZGlvblRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0FjY29yZGlvbi90aGVtZS5tanMnO1xuaW1wb3J0IHsgYWxlcnRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9BbGVydC90aGVtZS5tanMnO1xuaW1wb3J0IHsgYXZhdGFyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQXZhdGFyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBiYWRnZVRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0JhZGdlL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBibG9ja3F1b3RlVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQmxvY2txdW90ZS90aGVtZS5tanMnO1xuaW1wb3J0IHsgYnJlYWRjcnVtYlRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0JyZWFkY3J1bWIvdGhlbWUubWpzJztcbmltcG9ydCB7IGJ1dHRvblRoZW1lLCBidXR0b25Hcm91cFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0J1dHRvbi90aGVtZS5tanMnO1xuaW1wb3J0IHsgY2FyZFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0NhcmQvdGhlbWUubWpzJztcbmltcG9ydCB7IGNhcm91c2VsVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2Fyb3VzZWwvdGhlbWUubWpzJztcbmltcG9ydCB7IGNoZWNrYm94VGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvQ2hlY2tib3gvdGhlbWUubWpzJztcbmltcG9ydCB7IGNsaXBib2FyZFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0NsaXBib2FyZC90aGVtZS5tanMnO1xuaW1wb3J0IHsgZGFya1RoZW1lVG9nZ2xlVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvRGFya1RoZW1lVG9nZ2xlL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBkYXRlUGlja2VyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvRGF0ZXBpY2tlci90aGVtZS5tanMnO1xuaW1wb3J0IHsgZHJhd2VyVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvRHJhd2VyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBkcm9wZG93blRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0Ryb3Bkb3duL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBmaWxlSW5wdXRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9GaWxlSW5wdXQvdGhlbWUubWpzJztcbmltcG9ydCB7IGZsb2F0aW5nTGFiZWxUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9GbG9hdGluZ0xhYmVsL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBmb290ZXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9Gb290ZXIvdGhlbWUubWpzJztcbmltcG9ydCB7IGhlbHBlclRleHRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9IZWxwZXJUZXh0L3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBoclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL0hSL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBrYmRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9LYmQvdGhlbWUubWpzJztcbmltcG9ydCB7IGxhYmVsVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvTGFiZWwvdGhlbWUubWpzJztcbmltcG9ydCB7IGxpc3RUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9MaXN0L3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBsaXN0R3JvdXBUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9MaXN0R3JvdXAvdGhlbWUubWpzJztcbmltcG9ydCB7IG1lZ2FNZW51VGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvTWVnYU1lbnUvdGhlbWUubWpzJztcbmltcG9ydCB7IG1vZGFsVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvTW9kYWwvdGhlbWUubWpzJztcbmltcG9ydCB7IG5hdmJhclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL05hdmJhci90aGVtZS5tanMnO1xuaW1wb3J0IHsgcGFnaW5hdGlvblRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1BhZ2luYXRpb24vdGhlbWUubWpzJztcbmltcG9ydCB7IHBvcG92ZXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9Qb3BvdmVyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyBwcm9ncmVzc1RoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1Byb2dyZXNzL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyByYWRpb1RoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1JhZGlvL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyByYW5nZVNsaWRlclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1JhbmdlU2xpZGVyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyByYXRpbmdUaGVtZSwgcmF0aW5nQWR2YW5jZWRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9SYXRpbmcvdGhlbWUubWpzJztcbmltcG9ydCB7IHNlbGVjdFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1NlbGVjdC90aGVtZS5tanMnO1xuaW1wb3J0IHsgc2lkZWJhclRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1NpZGViYXIvdGhlbWUubWpzJztcbmltcG9ydCB7IHNwaW5uZXJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9TcGlubmVyL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyB0YWJsZVRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1RhYmxlL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyB0YWJUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9UYWJzL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyB0ZXh0YXJlYVRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1RleHRhcmVhL3RoZW1lLm1qcyc7XG5pbXBvcnQgeyB0ZXh0SW5wdXRUaGVtZSB9IGZyb20gJy4vY29tcG9uZW50cy9UZXh0SW5wdXQvdGhlbWUubWpzJztcbmltcG9ydCB7IHRpbWVsaW5lVGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVGltZWxpbmUvdGhlbWUubWpzJztcbmltcG9ydCB7IHRvYXN0VGhlbWUgfSBmcm9tICcuL2NvbXBvbmVudHMvVG9hc3QvdGhlbWUubWpzJztcbmltcG9ydCB7IHRvZ2dsZVN3aXRjaFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1RvZ2dsZVN3aXRjaC90aGVtZS5tanMnO1xuaW1wb3J0IHsgdG9vbHRpcFRoZW1lIH0gZnJvbSAnLi9jb21wb25lbnRzL1Rvb2x0aXAvdGhlbWUubWpzJztcblxuY29uc3QgdGhlbWUgPSB7XG4gIGFjY29yZGlvbjogYWNjb3JkaW9uVGhlbWUsXG4gIGFsZXJ0OiBhbGVydFRoZW1lLFxuICBhdmF0YXI6IGF2YXRhclRoZW1lLFxuICBiYWRnZTogYmFkZ2VUaGVtZSxcbiAgYmxvY2txdW90ZTogYmxvY2txdW90ZVRoZW1lLFxuICBicmVhZGNydW1iOiBicmVhZGNydW1iVGhlbWUsXG4gIGJ1dHRvbjogYnV0dG9uVGhlbWUsXG4gIGJ1dHRvbkdyb3VwOiBidXR0b25Hcm91cFRoZW1lLFxuICBjYXJkOiBjYXJkVGhlbWUsXG4gIGNhcm91c2VsOiBjYXJvdXNlbFRoZW1lLFxuICBjaGVja2JveDogY2hlY2tib3hUaGVtZSxcbiAgY2xpcGJvYXJkOiBjbGlwYm9hcmRUaGVtZSxcbiAgZGF0ZXBpY2tlcjogZGF0ZVBpY2tlclRoZW1lLFxuICBkYXJrVGhlbWVUb2dnbGU6IGRhcmtUaGVtZVRvZ2dsZVRoZW1lLFxuICBkcmF3ZXI6IGRyYXdlclRoZW1lLFxuICBkcm9wZG93bjogZHJvcGRvd25UaGVtZSxcbiAgZmlsZUlucHV0OiBmaWxlSW5wdXRUaGVtZSxcbiAgZmxvYXRpbmdMYWJlbDogZmxvYXRpbmdMYWJlbFRoZW1lLFxuICBmb290ZXI6IGZvb3RlclRoZW1lLFxuICBoZWxwZXJUZXh0OiBoZWxwZXJUZXh0VGhlbWUsXG4gIGhyOiBoclRoZW1lLFxuICBrYmQ6IGtiZFRoZW1lLFxuICBsYWJlbDogbGFiZWxUaGVtZSxcbiAgbGlzdEdyb3VwOiBsaXN0R3JvdXBUaGVtZSxcbiAgbGlzdDogbGlzdFRoZW1lLFxuICBtZWdhTWVudTogbWVnYU1lbnVUaGVtZSxcbiAgbW9kYWw6IG1vZGFsVGhlbWUsXG4gIG5hdmJhcjogbmF2YmFyVGhlbWUsXG4gIHBhZ2luYXRpb246IHBhZ2luYXRpb25UaGVtZSxcbiAgcG9wb3ZlcjogcG9wb3ZlclRoZW1lLFxuICBwcm9ncmVzczogcHJvZ3Jlc3NUaGVtZSxcbiAgcmFkaW86IHJhZGlvVGhlbWUsXG4gIHJhbmdlU2xpZGVyOiByYW5nZVNsaWRlclRoZW1lLFxuICByYXRpbmc6IHJhdGluZ1RoZW1lLFxuICByYXRpbmdBZHZhbmNlZDogcmF0aW5nQWR2YW5jZWRUaGVtZSxcbiAgc2VsZWN0OiBzZWxlY3RUaGVtZSxcbiAgdGV4dElucHV0OiB0ZXh0SW5wdXRUaGVtZSxcbiAgdGV4dGFyZWE6IHRleHRhcmVhVGhlbWUsXG4gIHRvZ2dsZVN3aXRjaDogdG9nZ2xlU3dpdGNoVGhlbWUsXG4gIHNpZGViYXI6IHNpZGViYXJUaGVtZSxcbiAgc3Bpbm5lcjogc3Bpbm5lclRoZW1lLFxuICB0YWJsZTogdGFibGVUaGVtZSxcbiAgdGFiczogdGFiVGhlbWUsXG4gIHRpbWVsaW5lOiB0aW1lbGluZVRoZW1lLFxuICB0b2FzdDogdG9hc3RUaGVtZSxcbiAgdG9vbHRpcDogdG9vbHRpcFRoZW1lXG59O1xuXG5leHBvcnQgeyB0aGVtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGhlbWUubWpzLm1hcFxuIiwiaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnLi4vaGVscGVycy9jbG9uZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vdGhlbWUubWpzJztcblxuY29uc3Qgc3RvcmUgPSB7XG4gIHRoZW1lOiBjbG9uZURlZXAodGhlbWUpXG59O1xuZnVuY3Rpb24gc2V0VGhlbWVNb2RlKG1vZGUpIHtcbiAgc3RvcmUubW9kZSA9IG1vZGU7XG59XG5mdW5jdGlvbiBnZXRUaGVtZU1vZGUoKSB7XG4gIHJldHVybiBzdG9yZS5tb2RlO1xufVxuZnVuY3Rpb24gc2V0VGhlbWUodGhlbWUkMSkge1xuICBpZiAodGhlbWUkMSkgc3RvcmUudGhlbWUgPSBtZXJnZURlZXAodGhlbWUsIHRoZW1lJDEpO1xufVxuZnVuY3Rpb24gZ2V0VGhlbWUoKSB7XG4gIHJldHVybiBjbG9uZURlZXAoc3RvcmUudGhlbWUpO1xufVxuXG5leHBvcnQgeyBnZXRUaGVtZSwgZ2V0VGhlbWVNb2RlLCBzZXRUaGVtZSwgc2V0VGhlbWVNb2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBBY2NvcmRpb25QYW5lbENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VBY2NvcmRpb25Db250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChBY2NvcmRpb25QYW5lbENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VBY2NvcmRpb25Db250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgQWNjb3JkaW9uUGFuZWxDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgQWNjb3JkaW9uUGFuZWxDb250ZXh0LCB1c2VBY2NvcmRpb25Db250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY2NvcmRpb25QYW5lbENvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgdXNlQWNjb3JkaW9uQ29udGV4dCB9IGZyb20gJy4vQWNjb3JkaW9uUGFuZWxDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IEFjY29yZGlvbkNvbnRlbnQgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBpc09wZW4gfSA9IHVzZUFjY29yZGlvbkNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5hY2NvcmRpb24uY29udGVudCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWFjY29yZGlvbi1jb250ZW50XCIsXG4gICAgICBoaWRkZW46ICFpc09wZW4sXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgQWNjb3JkaW9uQ29udGVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWNjb3JkaW9uQ29udGVudC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFjY29yZGlvblBhbmVsQ29udGV4dCB9IGZyb20gJy4vQWNjb3JkaW9uUGFuZWxDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IEFjY29yZGlvblBhbmVsID0gKHsgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyBhbHdheXNPcGVuIH0gPSBwcm9wcztcbiAgY29uc3QgW2lzT3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShwcm9wcy5pc09wZW4pO1xuICBjb25zdCBwcm92aWRlciA9IGFsd2F5c09wZW4gPyB7XG4gICAgLi4ucHJvcHMsXG4gICAgaXNPcGVuLFxuICAgIHNldE9wZW46ICgpID0+IHNldE9wZW4oIWlzT3BlbilcbiAgfSA6IHByb3BzO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChBY2NvcmRpb25QYW5lbENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHByb3ZpZGVyLCBjaGlsZHJlbiB9KTtcbn07XG5cbmV4cG9ydCB7IEFjY29yZGlvblBhbmVsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BY2NvcmRpb25QYW5lbC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyB1c2VBY2NvcmRpb25Db250ZXh0IH0gZnJvbSAnLi9BY2NvcmRpb25QYW5lbENvbnRleHQubWpzJztcblxuY29uc3QgQWNjb3JkaW9uVGl0bGUgPSAoe1xuICBhczogSGVhZGluZyA9IFwiaDJcIixcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgYXJyb3dJY29uOiBBcnJvd0ljb24sIGZsdXNoLCBpc09wZW4sIHNldE9wZW4gfSA9IHVzZUFjY29yZGlvbkNvbnRleHQoKTtcbiAgY29uc3Qgb25DbGljayA9ICgpID0+IHR5cGVvZiBzZXRPcGVuICE9PSBcInVuZGVmaW5lZFwiICYmIHNldE9wZW4oKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5hY2NvcmRpb24udGl0bGUsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIFwiYnV0dG9uXCIsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIHRoZW1lLmZsdXNoW2ZsdXNoID8gXCJvblwiIDogXCJvZmZcIl0sIHRoZW1lLm9wZW5baXNPcGVuID8gXCJvblwiIDogXCJvZmZcIl0sIGNsYXNzTmFtZSksXG4gICAgICBvbkNsaWNrLFxuICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChIZWFkaW5nLCB7IGNsYXNzTmFtZTogdGhlbWUuaGVhZGluZywgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWFjY29yZGlvbi1oZWFkaW5nXCIsIGNoaWxkcmVuIH0pLFxuICAgICAgICBBcnJvd0ljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBBcnJvd0ljb24sXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmFycm93LmJhc2UsIHRoZW1lLmFycm93Lm9wZW5baXNPcGVuID8gXCJvblwiIDogXCJvZmZcIl0pLFxuICAgICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWFjY29yZGlvbi1hcnJvd1wiXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICBdXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgQWNjb3JkaW9uVGl0bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFjY29yZGlvblRpdGxlLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VNZW1vLCBDaGlsZHJlbiwgY2xvbmVFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGlDaGV2cm9uRG93biB9IGZyb20gJ3JlYWN0LWljb25zL2hpJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEFjY29yZGlvbkNvbnRlbnQgfSBmcm9tICcuL0FjY29yZGlvbkNvbnRlbnQubWpzJztcbmltcG9ydCB7IEFjY29yZGlvblBhbmVsIH0gZnJvbSAnLi9BY2NvcmRpb25QYW5lbC5tanMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uVGl0bGUgfSBmcm9tICcuL0FjY29yZGlvblRpdGxlLm1qcyc7XG5cbmNvbnN0IEFjY29yZGlvbkNvbXBvbmVudCA9ICh7XG4gIGFsd2F5c09wZW4gPSBmYWxzZSxcbiAgYXJyb3dJY29uID0gSGlDaGV2cm9uRG93bixcbiAgY2hpbGRyZW4sXG4gIGZsdXNoID0gZmFsc2UsXG4gIGNvbGxhcHNlQWxsID0gZmFsc2UsXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtpc09wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoY29sbGFwc2VBbGwgPyAtMSA6IDApO1xuICBjb25zdCBwYW5lbHMgPSB1c2VNZW1vKFxuICAgICgpID0+IENoaWxkcmVuLm1hcChcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgKGNoaWxkLCBpKSA9PiBjbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgYWx3YXlzT3BlbixcbiAgICAgICAgYXJyb3dJY29uLFxuICAgICAgICBmbHVzaCxcbiAgICAgICAgaXNPcGVuOiBpc09wZW4gPT09IGksXG4gICAgICAgIHNldE9wZW46ICgpID0+IHNldE9wZW4oaXNPcGVuID09PSBpID8gLTEgOiBpKVxuICAgICAgfSlcbiAgICApLFxuICAgIFthbHdheXNPcGVuLCBhcnJvd0ljb24sIGNoaWxkcmVuLCBmbHVzaCwgaXNPcGVuXVxuICApO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmFjY29yZGlvbi5yb290LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIHRoZW1lLmZsdXNoW2ZsdXNoID8gXCJvblwiIDogXCJvZmZcIl0sIGNsYXNzTmFtZSksXG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYWNjb3JkaW9uXCIsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBwYW5lbHNcbiAgICB9XG4gICk7XG59O1xuQWNjb3JkaW9uQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJBY2NvcmRpb25cIjtcbkFjY29yZGlvblBhbmVsLmRpc3BsYXlOYW1lID0gXCJBY2NvcmRpb24uUGFuZWxcIjtcbkFjY29yZGlvblRpdGxlLmRpc3BsYXlOYW1lID0gXCJBY2NvcmRpb24uVGl0bGVcIjtcbkFjY29yZGlvbkNvbnRlbnQuZGlzcGxheU5hbWUgPSBcIkFjY29yZGlvbi5Db250ZW50XCI7XG5jb25zdCBBY2NvcmRpb24gPSBPYmplY3QuYXNzaWduKEFjY29yZGlvbkNvbXBvbmVudCwge1xuICBQYW5lbDogQWNjb3JkaW9uUGFuZWwsXG4gIFRpdGxlOiBBY2NvcmRpb25UaXRsZSxcbiAgQ29udGVudDogQWNjb3JkaW9uQ29udGVudFxufSk7XG5cbmV4cG9ydCB7IEFjY29yZGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWNjb3JkaW9uLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgQXZhdGFyR3JvdXAgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmF2YXRhci5ncm91cCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJhdmF0YXItZ3JvdXAtZWxlbWVudFwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbkF2YXRhckdyb3VwLmRpc3BsYXlOYW1lID0gXCJBdmF0YXIuR3JvdXBcIjtcblxuZXhwb3J0IHsgQXZhdGFyR3JvdXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUF2YXRhckdyb3VwLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEF2YXRhckdyb3VwQ291bnRlciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHRvdGFsLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmF2YXRhci5ncm91cENvdW50ZXIsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiYVwiLCB7IGhyZWYsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICBcIitcIixcbiAgICB0b3RhbFxuICBdIH0pO1xufTtcbkF2YXRhckdyb3VwQ291bnRlci5kaXNwbGF5TmFtZSA9IFwiQXZhdGFyLkdyb3VwQ291bnRlclwiO1xuXG5leHBvcnQgeyBBdmF0YXJHcm91cENvdW50ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUF2YXRhckdyb3VwQ291bnRlci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBBdmF0YXJHcm91cCB9IGZyb20gJy4vQXZhdGFyR3JvdXAubWpzJztcbmltcG9ydCB7IEF2YXRhckdyb3VwQ291bnRlciB9IGZyb20gJy4vQXZhdGFyR3JvdXBDb3VudGVyLm1qcyc7XG5cbmNvbnN0IEF2YXRhckNvbXBvbmVudCA9ICh7XG4gIGFsdCA9IFwiXCIsXG4gIGJvcmRlcmVkID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbG9yID0gXCJsaWdodFwiLFxuICBpbWcsXG4gIHBsYWNlaG9sZGVySW5pdGlhbHMgPSBcIlwiLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHNpemUgPSBcIm1kXCIsXG4gIHN0YWNrZWQgPSBmYWxzZSxcbiAgc3RhdHVzLFxuICBzdGF0dXNQb3NpdGlvbiA9IFwidG9wLWxlZnRcIixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYXZhdGFyLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IGltZ0NsYXNzTmFtZSA9IHR3TWVyZ2UoXG4gICAgdGhlbWUucm9vdC5pbWcuYmFzZSxcbiAgICBib3JkZXJlZCAmJiB0aGVtZS5yb290LmJvcmRlcmVkLFxuICAgIGJvcmRlcmVkICYmIHRoZW1lLnJvb3QuY29sb3JbY29sb3JdLFxuICAgIHJvdW5kZWQgJiYgdGhlbWUucm9vdC5yb3VuZGVkLFxuICAgIHN0YWNrZWQgJiYgdGhlbWUucm9vdC5zdGFja2VkLFxuICAgIHRoZW1lLnJvb3QuaW1nLm9uLFxuICAgIHRoZW1lLnJvb3Quc2l6ZVtzaXplXVxuICApO1xuICBjb25zdCBpbWdQcm9wcyA9IHtcbiAgICBjbGFzc05hbWU6IHR3TWVyZ2UoaW1nQ2xhc3NOYW1lLCB0aGVtZS5yb290LmltZy5vbiksXG4gICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWF2YXRhci1pbWdcIlxuICB9O1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYXZhdGFyXCIsIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInJlbGF0aXZlXCIsIGNoaWxkcmVuOiBbXG4gICAgICBpbWcgPyB0eXBlb2YgaW1nID09PSBcInN0cmluZ1wiID8gLyogQF9fUFVSRV9fICovIGpzeChcImltZ1wiLCB7IGFsdCwgc3JjOiBpbWcsIC4uLmltZ1Byb3BzIH0pIDogaW1nKHsgYWx0LCAuLi5pbWdQcm9wcyB9KSA6IHBsYWNlaG9sZGVySW5pdGlhbHMgPyAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUucm9vdC5pbWcub2ZmLFxuICAgICAgICAgICAgdGhlbWUucm9vdC5pbml0aWFscy5iYXNlLFxuICAgICAgICAgICAgc3RhY2tlZCAmJiB0aGVtZS5yb290LnN0YWNrZWQsXG4gICAgICAgICAgICBib3JkZXJlZCAmJiB0aGVtZS5yb290LmJvcmRlcmVkLFxuICAgICAgICAgICAgYm9yZGVyZWQgJiYgdGhlbWUucm9vdC5jb2xvcltjb2xvcl0sXG4gICAgICAgICAgICB0aGVtZS5yb290LnNpemVbc2l6ZV0sXG4gICAgICAgICAgICByb3VuZGVkICYmIHRoZW1lLnJvb3Qucm91bmRlZFxuICAgICAgICAgICksXG4gICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWF2YXRhci1pbml0aWFscy1wbGFjZWhvbGRlclwiLFxuICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmluaXRpYWxzLnRleHQpLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYXZhdGFyLWluaXRpYWxzLXBsYWNlaG9sZGVyLXRleHRcIiwgY2hpbGRyZW46IHBsYWNlaG9sZGVySW5pdGlhbHMgfSlcbiAgICAgICAgfVxuICAgICAgKSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UoaW1nQ2xhc3NOYW1lLCB0aGVtZS5yb290LmltZy5vZmYpLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYXZhdGFyLWltZ1wiLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJzdmdcIixcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhlbWUucm9vdC5pbWcucGxhY2Vob2xkZXIsXG4gICAgICAgICAgZmlsbDogXCJjdXJyZW50Q29sb3JcIixcbiAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAyMCAyMFwiLFxuICAgICAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJwYXRoXCIsIHsgZmlsbFJ1bGU6IFwiZXZlbm9kZFwiLCBkOiBcIk0xMCA5YTMgMyAwIDEwMC02IDMgMyAwIDAwMCA2em0tNyA5YTcgNyAwIDExMTQgMEgzelwiLCBjbGlwUnVsZTogXCJldmVub2RkXCIgfSlcbiAgICAgICAgfVxuICAgICAgKSB9KSxcbiAgICAgIHN0YXR1cyAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcInNwYW5cIixcbiAgICAgICAge1xuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1hdmF0YXItc3RhdHVzXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUucm9vdC5zdGF0dXMuYmFzZSxcbiAgICAgICAgICAgIHRoZW1lLnJvb3Quc3RhdHVzW3N0YXR1c10sXG4gICAgICAgICAgICB0aGVtZS5yb290LnN0YXR1c1Bvc2l0aW9uW3N0YXR1c1Bvc2l0aW9uXVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgKVxuICAgIF0gfSksXG4gICAgY2hpbGRyZW4gJiYgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNoaWxkcmVuIH0pXG4gIF0gfSk7XG59O1xuQXZhdGFyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJBdmF0YXJcIjtcbmNvbnN0IEF2YXRhciA9IE9iamVjdC5hc3NpZ24oQXZhdGFyQ29tcG9uZW50LCB7XG4gIEdyb3VwOiBBdmF0YXJHcm91cCxcbiAgQ291bnRlcjogQXZhdGFyR3JvdXBDb3VudGVyXG59KTtcblxuZXhwb3J0IHsgQXZhdGFyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BdmF0YXIubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBCYWRnZSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjb2xvciA9IFwiaW5mb1wiLFxuICBocmVmLFxuICBpY29uOiBJY29uLFxuICBzaXplID0gXCJ4c1wiLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmJhZGdlLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IENvbnRlbnQgPSAoKSA9PiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICBcInNwYW5cIixcbiAgICB7XG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIHRoZW1lLnJvb3QuYmFzZSxcbiAgICAgICAgdGhlbWUucm9vdC5jb2xvcltjb2xvcl0sXG4gICAgICAgIHRoZW1lLnJvb3Quc2l6ZVtzaXplXSxcbiAgICAgICAgdGhlbWUuaWNvbltJY29uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKSxcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1iYWRnZVwiLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbi5zaXplW3NpemVdLCBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYmFkZ2UtaWNvblwiIH0pLFxuICAgICAgICBjaGlsZHJlbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNoaWxkcmVuIH0pXG4gICAgICBdXG4gICAgfVxuICApO1xuICByZXR1cm4gaHJlZiA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJhXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5yb290LmhyZWYsIGhyZWYsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRlbnQsIHt9KSB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGVudCwge30pO1xufTtcbkJhZGdlLmRpc3BsYXlOYW1lID0gXCJCYWRnZVwiO1xuXG5leHBvcnQgeyBCYWRnZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QmFkZ2UubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBTcGlubmVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICBjb2xvciA9IFwiaW5mb1wiLFxuICBsaWdodCxcbiAgc2l6ZSA9IFwibWRcIixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuc3Bpbm5lciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyByb2xlOiBcInN0YXR1c1wiLCAuLi5wcm9wcywgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIFwic3ZnXCIsXG4gICAge1xuICAgICAgZmlsbDogXCJub25lXCIsXG4gICAgICB2aWV3Qm94OiBcIjAgMCAxMDAgMTAxXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIHRoZW1lLmJhc2UsXG4gICAgICAgIHRoZW1lLmNvbG9yW2NvbG9yXSxcbiAgICAgICAgdGhlbWUubGlnaHRbbGlnaHQgPyBcIm9uXCIgOiBcIm9mZlwiXS5iYXNlLFxuICAgICAgICB0aGVtZS5saWdodFtsaWdodCA/IFwib25cIiA6IFwib2ZmXCJdLmNvbG9yW2NvbG9yXSxcbiAgICAgICAgdGhlbWUuc2l6ZVtzaXplXSxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcInBhdGhcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkOiBcIk0xMDAgNTAuNTkwOEMxMDAgNzguMjA1MSA3Ny42MTQyIDEwMC41OTEgNTAgMTAwLjU5MUMyMi4zODU4IDEwMC41OTEgMCA3OC4yMDUxIDAgNTAuNTkwOEMwIDIyLjk3NjYgMjIuMzg1OCAwLjU5MDgyIDUwIDAuNTkwODJDNzcuNjE0MiAwLjU5MDgyIDEwMCAyMi45NzY2IDEwMCA1MC41OTA4Wk05LjA4MTQ0IDUwLjU5MDhDOS4wODE0NCA3My4xODk1IDI3LjQwMTMgOTEuNTA5NCA1MCA5MS41MDk0QzcyLjU5ODcgOTEuNTA5NCA5MC45MTg2IDczLjE4OTUgOTAuOTE4NiA1MC41OTA4QzkwLjkxODYgMjcuOTkyMSA3Mi41OTg3IDkuNjcyMjYgNTAgOS42NzIyNkMyNy40MDEzIDkuNjcyMjYgOS4wODE0NCAyNy45OTIxIDkuMDgxNDQgNTAuNTkwOFpcIixcbiAgICAgICAgICAgIGZpbGw6IFwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgXCJwYXRoXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZDogXCJNOTMuOTY3NiAzOS4wNDA5Qzk2LjM5MyAzOC40MDM4IDk3Ljg2MjQgMzUuOTExNiA5Ny4wMDc5IDMzLjU1MzlDOTUuMjkzMiAyOC44MjI3IDkyLjg3MSAyNC4zNjkyIDg5LjgxNjcgMjAuMzQ4Qzg1Ljg0NTIgMTUuMTE5MiA4MC44ODI2IDEwLjcyMzggNzUuMjEyNCA3LjQxMjg5QzY5LjU0MjIgNC4xMDE5NCA2My4yNzU0IDEuOTQwMjUgNTYuNzY5OCAxLjA1MTI0QzUxLjc2NjYgMC4zNjc1NDEgNDYuNjk3NiAwLjQ0Njg0MyA0MS43MzQ1IDEuMjc4NzNDMzkuMjYxMyAxLjY5MzI4IDM3LjgxMyA0LjE5Nzc4IDM4LjQ1MDEgNi42MjMyNkMzOS4wODczIDkuMDQ4NzQgNDEuNTY5NCAxMC40NzE3IDQ0LjA1MDUgMTAuMTA3MUM0Ny44NTExIDkuNTQ4NTUgNTEuNzE5MSA5LjUyNjg5IDU1LjU0MDIgMTAuMDQ5MUM2MC44NjQyIDEwLjc3NjYgNjUuOTkyOCAxMi41NDU3IDcwLjYzMzEgMTUuMjU1MkM3NS4yNzM1IDE3Ljk2NDggNzkuMzM0NyAyMS41NjE5IDgyLjU4NDkgMjUuODQxQzg0LjkxNzUgMjguOTEyMSA4Ni43OTk3IDMyLjI5MTMgODguMTgxMSAzNS44NzU4Qzg5LjA4MyAzOC4yMTU4IDkxLjU0MjEgMzkuNjc4MSA5My45Njc2IDM5LjA0MDlaXCIsXG4gICAgICAgICAgICBmaWxsOiBcImN1cnJlbnRGaWxsXCJcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIF1cbiAgICB9XG4gICkgfSk7XG59O1xuU3Bpbm5lci5kaXNwbGF5TmFtZSA9IFwiU3Bpbm5lclwiO1xuXG5leHBvcnQgeyBTcGlubmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TcGlubmVyLm1qcy5tYXBcbiIsImltcG9ydCB7IGZvcndhcmRSZWYsIGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IEJ1dHRvbkJhc2UgPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgYXM6IENvbXBvbmVudCwgaHJlZiwgdHlwZSA9IFwiYnV0dG9uXCIsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IEJhc2VDb21wb25lbnQgPSBDb21wb25lbnQgfHwgKGhyZWYgPyBcImFcIiA6IFwiYnV0dG9uXCIpO1xuICAgIHJldHVybiBjcmVhdGVFbGVtZW50KEJhc2VDb21wb25lbnQsIHsgcmVmLCBocmVmLCB0eXBlLCAuLi5wcm9wcyB9LCBjaGlsZHJlbik7XG4gIH1cbik7XG5CdXR0b25CYXNlLmRpc3BsYXlOYW1lID0gXCJCdXR0b25CYXNlQ29tcG9uZW50XCI7XG5cbmV4cG9ydCB7IEJ1dHRvbkJhc2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJ1dHRvbkJhc2UubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlTWVtbywgQ2hpbGRyZW4sIGlzVmFsaWRFbGVtZW50LCBjbG9uZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuL0J1dHRvbi5tanMnO1xuXG5jb25zdCBwcm9jZXNzQ2hpbGRyZW4gPSAoY2hpbGRyZW4sIG91dGxpbmUsIHBpbGwpID0+IHtcbiAgcmV0dXJuIENoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uSW5Hcm91cFByb3AgPSBjaGlsZC50eXBlID09IEJ1dHRvbiA/IHsgcG9zaXRpb25Jbkdyb3VwOiBkZXRlcm1pbmVQb3NpdGlvbihpbmRleCwgQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pKSB9IDoge307XG4gICAgICBpZiAoY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgIC4uLmNoaWxkLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuOiBwcm9jZXNzQ2hpbGRyZW4oY2hpbGQucHJvcHMuY2hpbGRyZW4sIG91dGxpbmUsIHBpbGwpLFxuICAgICAgICAgIC4uLnBvc2l0aW9uSW5Hcm91cFByb3BcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgb3V0bGluZSxcbiAgICAgICAgICBwaWxsLFxuICAgICAgICAgIC4uLnBvc2l0aW9uSW5Hcm91cFByb3BcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGlsZDtcbiAgfSk7XG59O1xuY29uc3QgZGV0ZXJtaW5lUG9zaXRpb24gPSAoaW5kZXgsIHRvdGFsQ2hpbGRyZW4pID0+IHtcbiAgcmV0dXJuIGluZGV4ID09PSAwID8gXCJzdGFydFwiIDogaW5kZXggPT09IHRvdGFsQ2hpbGRyZW4gLSAxID8gXCJlbmRcIiA6IFwibWlkZGxlXCI7XG59O1xuY29uc3QgQnV0dG9uR3JvdXAgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBvdXRsaW5lLFxuICBwaWxsLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaXRlbXMgPSB1c2VNZW1vKCgpID0+IHByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbiwgb3V0bGluZSwgcGlsbCksIFtjaGlsZHJlbiwgb3V0bGluZSwgcGlsbF0pO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmJ1dHRvbkdyb3VwLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIHJvbGU6IFwiZ3JvdXBcIiwgLi4ucHJvcHMsIGNoaWxkcmVuOiBpdGVtcyB9KTtcbn07XG5CdXR0b25Hcm91cC5kaXNwbGF5TmFtZSA9IFwiQnV0dG9uLkdyb3VwXCI7XG5cbmV4cG9ydCB7IEJ1dHRvbkdyb3VwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CdXR0b25Hcm91cC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3gsIGpzeHMsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyL1NwaW5uZXIubWpzJztcbmltcG9ydCB7IEJ1dHRvbkJhc2UgfSBmcm9tICcuL0J1dHRvbkJhc2UubWpzJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwIH0gZnJvbSAnLi9CdXR0b25Hcm91cC5tanMnO1xuXG5jb25zdCBCdXR0b25Db21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBjb2xvciA9IFwiaW5mb1wiLFxuICAgIGRpc2FibGVkLFxuICAgIGZ1bGxTaXplZCxcbiAgICBpc1Byb2Nlc3NpbmcgPSBmYWxzZSxcbiAgICBwcm9jZXNzaW5nTGFiZWwgPSBcIkxvYWRpbmcuLi5cIixcbiAgICBwcm9jZXNzaW5nU3Bpbm5lcixcbiAgICBncmFkaWVudER1b1RvbmUsXG4gICAgZ3JhZGllbnRNb25vY2hyb21lLFxuICAgIGxhYmVsLFxuICAgIG91dGxpbmUgPSBmYWxzZSxcbiAgICBwaWxsID0gZmFsc2UsXG4gICAgcG9zaXRpb25Jbkdyb3VwID0gXCJub25lXCIsXG4gICAgc2l6ZSA9IFwibWRcIixcbiAgICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgICAuLi5wcm9wc1xuICB9LCByZWYpID0+IHtcbiAgICBjb25zdCB7IGJ1dHRvbkdyb3VwOiBncm91cFRoZW1lLCBidXR0b246IGJ1dHRvblRoZW1lIH0gPSBnZXRUaGVtZSgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGJ1dHRvblRoZW1lLCBjdXN0b21UaGVtZSk7XG4gICAgY29uc3QgdGhlaXJQcm9wcyA9IHByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgQnV0dG9uQmFzZSxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgIHRoZW1lLmJhc2UsXG4gICAgICAgICAgZGlzYWJsZWQgJiYgdGhlbWUuZGlzYWJsZWQsXG4gICAgICAgICAgIWdyYWRpZW50RHVvVG9uZSAmJiAhZ3JhZGllbnRNb25vY2hyb21lICYmIHRoZW1lLmNvbG9yW2NvbG9yXSxcbiAgICAgICAgICBncmFkaWVudER1b1RvbmUgJiYgIWdyYWRpZW50TW9ub2Nocm9tZSAmJiB0aGVtZS5ncmFkaWVudER1b1RvbmVbZ3JhZGllbnREdW9Ub25lXSxcbiAgICAgICAgICAhZ3JhZGllbnREdW9Ub25lICYmIGdyYWRpZW50TW9ub2Nocm9tZSAmJiB0aGVtZS5ncmFkaWVudFtncmFkaWVudE1vbm9jaHJvbWVdLFxuICAgICAgICAgIG91dGxpbmUgJiYgKHRoZW1lLm91dGxpbmUuY29sb3JbY29sb3JdID8/IHRoZW1lLm91dGxpbmUuY29sb3IuZGVmYXVsdCksXG4gICAgICAgICAgdGhlbWUucGlsbFtwaWxsID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgZnVsbFNpemVkICYmIHRoZW1lLmZ1bGxTaXplZCxcbiAgICAgICAgICBncm91cFRoZW1lLnBvc2l0aW9uW3Bvc2l0aW9uSW5Hcm91cF0sXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICksXG4gICAgICAgIC4uLnRoZWlyUHJvcHMsXG4gICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgdGhlbWUuaW5uZXIuYmFzZSxcbiAgICAgICAgICAgICAgdGhlbWUub3V0bGluZVtvdXRsaW5lID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgIHRoZW1lLm91dGxpbmUucGlsbFtvdXRsaW5lICYmIHBpbGwgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICAgICAgdGhlbWUuc2l6ZVtzaXplXSxcbiAgICAgICAgICAgICAgb3V0bGluZSAmJiAhdGhlbWUub3V0bGluZS5jb2xvcltjb2xvcl0gJiYgdGhlbWUuaW5uZXIub3V0bGluZSxcbiAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nICYmIHRoZW1lLmlzUHJvY2Vzc2luZyxcbiAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nICYmIHRoZW1lLmlubmVyLmlzUHJvY2Vzc2luZ1BhZGRpbmdbc2l6ZV0sXG4gICAgICAgICAgICAgIHRoZW1lLmlubmVyLnBvc2l0aW9uW3Bvc2l0aW9uSW5Hcm91cF1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnNwaW5uZXJTbG90LCB0aGVtZS5zcGlubmVyTGVmdFBvc2l0aW9uW3NpemVdKSwgY2hpbGRyZW46IHByb2Nlc3NpbmdTcGlubmVyIHx8IC8qIEBfX1BVUkVfXyAqLyBqc3goU3Bpbm5lciwgeyBzaXplIH0pIH0pLFxuICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRyZW4gIT09IFwidW5kZWZpbmVkXCIgPyBjaGlsZHJlbiA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWJ1dHRvbi1sYWJlbFwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubGFiZWwpLCBjaGlsZHJlbjogaXNQcm9jZXNzaW5nID8gcHJvY2Vzc2luZ0xhYmVsIDogbGFiZWwgfSlcbiAgICAgICAgICAgIF0gfSlcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuQnV0dG9uQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJCdXR0b25cIjtcbmNvbnN0IEJ1dHRvbiA9IE9iamVjdC5hc3NpZ24oQnV0dG9uQ29tcG9uZW50LCB7XG4gIEdyb3VwOiBCdXR0b25Hcm91cFxufSk7XG5cbmV4cG9ydCB7IEJ1dHRvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnV0dG9uLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbi9CdXR0b24ubWpzJztcbmltcG9ydCAnLi4vQnV0dG9uL0J1dHRvbkdyb3VwLm1qcyc7XG5cbmNvbnN0IEJhbm5lckNvbGxhcHNlQnV0dG9uID0gKHsgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3Qgb25DbGljayA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IGNvbGxhcHNlQnV0dG9uID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IHBhcmVudEJhbm5lciA9IGNvbGxhcHNlQnV0dG9uLmNsb3Nlc3QoJ1tyb2xlPVwiYmFubmVyXCJdJyk7XG4gICAgcGFyZW50QmFubmVyPy5yZW1vdmUoKTtcbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7IG9uQ2xpY2ssIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbn07XG5CYW5uZXJDb2xsYXBzZUJ1dHRvbi5kaXNwbGF5TmFtZSA9IFwiQmFubmVyLkNvbGxhcHNlQnV0dG9uXCI7XG5cbmV4cG9ydCB7IEJhbm5lckNvbGxhcHNlQnV0dG9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CYW5uZXJDb2xsYXBzZUJ1dHRvbi5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBCYW5uZXJDb2xsYXBzZUJ1dHRvbiB9IGZyb20gJy4vQmFubmVyQ29sbGFwc2VCdXR0b24ubWpzJztcblxuY29uc3QgQmFubmVyQ29tcG9uZW50ID0gKHsgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYmFubmVyXCIsIHJvbGU6IFwiYmFubmVyXCIsIHRhYkluZGV4OiAtMSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbkJhbm5lckNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiQmFubmVyXCI7XG5jb25zdCBCYW5uZXIgPSBPYmplY3QuYXNzaWduKEJhbm5lckNvbXBvbmVudCwge1xuICBDb2xsYXBzZUJ1dHRvbjogQmFubmVyQ29sbGFwc2VCdXR0b25cbn0pO1xuXG5leHBvcnQgeyBCYW5uZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJhbm5lci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGlPdXRsaW5lQ2hldnJvblJpZ2h0IH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBCcmVhZGNydW1iSXRlbSA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGhyZWYsIGljb246IEljb24sIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCBpc0xpbmsgPSB0eXBlb2YgaHJlZiAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICBjb25zdCBDb21wb25lbnQgPSBpc0xpbmsgPyBcImFcIiA6IFwic3BhblwiO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuYnJlYWRjcnVtYi5pdGVtLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwibGlcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KEhpT3V0bGluZUNoZXZyb25SaWdodCwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuY2hldnJvbiwgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWJyZWFkY3J1bWItc2VwYXJhdG9yXCIgfSksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICB7XG4gICAgICAgICAgcmVmLFxuICAgICAgICAgIGNsYXNzTmFtZTogdGhlbWUuaHJlZltpc0xpbmsgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtYnJlYWRjcnVtYi1pdGVtXCIsXG4gICAgICAgICAgaHJlZixcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24gfSksXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKVxuICAgIF0gfSk7XG4gIH1cbik7XG5CcmVhZGNydW1iSXRlbS5kaXNwbGF5TmFtZSA9IFwiQnJlYWRjcnVtYi5JdGVtXCI7XG5cbmV4cG9ydCB7IEJyZWFkY3J1bWJJdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CcmVhZGNydW1iSXRlbS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4vQnJlYWRjcnVtYkl0ZW0ubWpzJztcblxuY29uc3QgQnJlYWRjcnVtYkNvbXBvbmVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmJyZWFkY3J1bWIucm9vdCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcIm5hdlwiLCB7IFwiYXJpYS1sYWJlbFwiOiBcIkJyZWFkY3J1bWJcIiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcIm9sXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5saXN0LCBjaGlsZHJlbiB9KSB9KTtcbn07XG5CcmVhZGNydW1iQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJCcmVhZGNydW1iXCI7XG5jb25zdCBCcmVhZGNydW1iID0gT2JqZWN0LmFzc2lnbihCcmVhZGNydW1iQ29tcG9uZW50LCB7XG4gIEl0ZW06IEJyZWFkY3J1bWJJdGVtXG59KTtcblxuZXhwb3J0IHsgQnJlYWRjcnVtYiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QnJlYWRjcnVtYi5tanMubWFwXG4iLCIvKiFcblx0Q29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uXG5cdExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG5cdGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cblx0ZnVuY3Rpb24gY2xhc3NOYW1lcyAoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSAnJztcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKGFyZykge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3NlcywgcGFyc2VWYWx1ZShhcmcpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIHBhcnNlVmFsdWUgKGFyZykge1xuXHRcdGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuXHRcdFx0cmV0dXJuIGFyZztcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIGFyZyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdH1cblxuXHRcdGlmIChhcmcudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgJiYgIWFyZy50b1N0cmluZy50b1N0cmluZygpLmluY2x1ZGVzKCdbbmF0aXZlIGNvZGVdJykpIHtcblx0XHRcdHJldHVybiBhcmcudG9TdHJpbmcoKTtcblx0XHR9XG5cblx0XHR2YXIgY2xhc3NlcyA9ICcnO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGFyZykge1xuXHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRjbGFzc2VzID0gYXBwZW5kQ2xhc3MoY2xhc3Nlcywga2V5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcztcblx0fVxuXG5cdGZ1bmN0aW9uIGFwcGVuZENsYXNzICh2YWx1ZSwgbmV3Q2xhc3MpIHtcblx0XHRpZiAoIW5ld0NsYXNzKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcblx0XHRpZiAodmFsdWUpIHtcblx0XHRcdHJldHVybiB2YWx1ZSArICcgJyArIG5ld0NsYXNzO1xuXHRcdH1cblx0XG5cdFx0cmV0dXJuIHZhbHVlICsgbmV3Q2xhc3M7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRjbGFzc05hbWVzLmRlZmF1bHQgPSBjbGFzc05hbWVzO1xuXHRcdG1vZHVsZS5leHBvcnRzID0gY2xhc3NOYW1lcztcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gcmVnaXN0ZXIgYXMgJ2NsYXNzbmFtZXMnLCBjb25zaXN0ZW50IHdpdGggbnBtIHBhY2thZ2UgbmFtZVxuXHRcdGRlZmluZSgnY2xhc3NuYW1lcycsIFtdLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcztcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXM7XG5cdH1cbn0oKSk7XG4iLCJmdW5jdGlvbiBkZWJvdW5jZShmdW5jdGlvbl8sIHdhaXQgPSAxMDAsIG9wdGlvbnMgPSB7fSkge1xuXHRpZiAodHlwZW9mIGZ1bmN0aW9uXyAhPT0gJ2Z1bmN0aW9uJykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8gYmUgYSBmdW5jdGlvbiwgZ290IFxcYCR7dHlwZW9mIGZ1bmN0aW9uX31cXGAuYCk7XG5cdH1cblxuXHRpZiAod2FpdCA8IDApIHtcblx0XHR0aHJvdyBuZXcgUmFuZ2VFcnJvcignYHdhaXRgIG11c3Qgbm90IGJlIG5lZ2F0aXZlLicpO1xuXHR9XG5cblx0Ly8gVE9ETzogRGVwcmVjYXRlIHRoZSBib29sZWFuIHBhcmFtZXRlciBhdCBzb21lIHBvaW50LlxuXHRjb25zdCB7aW1tZWRpYXRlfSA9IHR5cGVvZiBvcHRpb25zID09PSAnYm9vbGVhbicgPyB7aW1tZWRpYXRlOiBvcHRpb25zfSA6IG9wdGlvbnM7XG5cblx0bGV0IHN0b3JlZENvbnRleHQ7XG5cdGxldCBzdG9yZWRBcmd1bWVudHM7XG5cdGxldCB0aW1lb3V0SWQ7XG5cdGxldCB0aW1lc3RhbXA7XG5cdGxldCByZXN1bHQ7XG5cblx0ZnVuY3Rpb24gcnVuKCkge1xuXHRcdGNvbnN0IGNhbGxDb250ZXh0ID0gc3RvcmVkQ29udGV4dDtcblx0XHRjb25zdCBjYWxsQXJndW1lbnRzID0gc3RvcmVkQXJndW1lbnRzO1xuXHRcdHN0b3JlZENvbnRleHQgPSB1bmRlZmluZWQ7XG5cdFx0c3RvcmVkQXJndW1lbnRzID0gdW5kZWZpbmVkO1xuXHRcdHJlc3VsdCA9IGZ1bmN0aW9uXy5hcHBseShjYWxsQ29udGV4dCwgY2FsbEFyZ3VtZW50cyk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdGZ1bmN0aW9uIGxhdGVyKCkge1xuXHRcdGNvbnN0IGxhc3QgPSBEYXRlLm5vdygpIC0gdGltZXN0YW1wO1xuXG5cdFx0aWYgKGxhc3QgPCB3YWl0ICYmIGxhc3QgPj0gMCkge1xuXHRcdFx0dGltZW91dElkID0gc2V0VGltZW91dChsYXRlciwgd2FpdCAtIGxhc3QpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdGlmICghaW1tZWRpYXRlKSB7XG5cdFx0XHRcdHJlc3VsdCA9IHJ1bigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGRlYm91bmNlZCA9IGZ1bmN0aW9uICguLi5hcmd1bWVudHNfKSB7XG5cdFx0aWYgKHN0b3JlZENvbnRleHQgJiYgdGhpcyAhPT0gc3RvcmVkQ29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdEZWJvdW5jZWQgbWV0aG9kIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBjb250ZXh0cy4nKTtcblx0XHR9XG5cblx0XHRzdG9yZWRDb250ZXh0ID0gdGhpczsgLy8gZXNsaW50LWRpc2FibGUtbGluZSB1bmljb3JuL25vLXRoaXMtYXNzaWdubWVudFxuXHRcdHN0b3JlZEFyZ3VtZW50cyA9IGFyZ3VtZW50c187XG5cdFx0dGltZXN0YW1wID0gRGF0ZS5ub3coKTtcblxuXHRcdGNvbnN0IGNhbGxOb3cgPSBpbW1lZGlhdGUgJiYgIXRpbWVvdXRJZDtcblxuXHRcdGlmICghdGltZW91dElkKSB7XG5cdFx0XHR0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0KTtcblx0XHR9XG5cblx0XHRpZiAoY2FsbE5vdykge1xuXHRcdFx0cmVzdWx0ID0gcnVuKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcblxuXHRkZWJvdW5jZWQuY2xlYXIgPSAoKSA9PiB7XG5cdFx0aWYgKCF0aW1lb3V0SWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjbGVhclRpbWVvdXQodGltZW91dElkKTtcblx0XHR0aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG5cdH07XG5cblx0ZGVib3VuY2VkLmZsdXNoID0gKCkgPT4ge1xuXHRcdGlmICghdGltZW91dElkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZGVib3VuY2VkLnRyaWdnZXIoKTtcblx0fTtcblxuXHRkZWJvdW5jZWQudHJpZ2dlciA9ICgpID0+IHtcblx0XHRyZXN1bHQgPSBydW4oKTtcblxuXHRcdGRlYm91bmNlZC5jbGVhcigpO1xuXHR9O1xuXG5cdHJldHVybiBkZWJvdW5jZWQ7XG59XG5cbi8vIEFkZHMgY29tcGF0aWJpbGl0eSBmb3IgRVMgbW9kdWxlc1xubW9kdWxlLmV4cG9ydHMuZGVib3VuY2UgPSBkZWJvdW5jZTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZTtcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2RlYm91bmNlJztcbmltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZGVmTm9ybWFsUHJvcCA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3Aob2JqLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUgfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xudmFyIF9fcHVibGljRmllbGQgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBfX2RlZk5vcm1hbFByb3Aob2JqLCB0eXBlb2Yga2V5ICE9PSBcInN5bWJvbFwiID8ga2V5ICsgXCJcIiA6IGtleSwgdmFsdWUpO1xuY29uc3QgU0NST0xMX0VORF9ERUJPVU5DRSA9IDMwMDtcbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcbmNsYXNzIFNjcm9sbENvbnRhaW5lciBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiY29udGFpbmVyXCIpO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJzY3JvbGxpbmdcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcInN0YXJ0ZWRcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcInByZXNzZWRcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcImlzTW9iaWxlXCIsIGZhbHNlKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiaW50ZXJuYWxcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcInNjcm9sbExlZnRcIik7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcInNjcm9sbFRvcFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiY2xpZW50WFwiKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiY2xpZW50WVwiKTtcbiAgICAvLyBTaW11bGF0ZSAnb25FbmRTY3JvbGwnIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiBzY3JvbGxpbmcgaXMgc3RvcHBlZFxuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvbkVuZFNjcm9sbFwiLCAoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbGluZyA9IGZhbHNlO1xuICAgICAgaWYgKCF0aGlzLnByZXNzZWQgJiYgdGhpcy5zdGFydGVkKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0VuZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvblNjcm9sbFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICAgICAgaWYgKGNvbnRhaW5lci5zY3JvbGxMZWZ0ICE9PSB0aGlzLnNjcm9sbExlZnQgfHwgY29udGFpbmVyLnNjcm9sbFRvcCAhPT0gdGhpcy5zY3JvbGxUb3ApIHtcbiAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnByb2Nlc3NTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5vbkVuZFNjcm9sbCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvblRvdWNoU3RhcnRcIiwgKGUpID0+IHtcbiAgICAgIGNvbnN0IHsgbmF0aXZlTW9iaWxlU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHRoaXMuaXNEcmFnZ2FibGUoZS50YXJnZXQpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICBpZiAobmF0aXZlTW9iaWxlU2Nyb2xsICYmIHRoaXMuc2Nyb2xsaW5nKSB7XG4gICAgICAgICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NDbGljayh0b3VjaC5jbGllbnRYLCB0b3VjaC5jbGllbnRZKTtcbiAgICAgICAgICBpZiAoIW5hdGl2ZU1vYmlsZVNjcm9sbCAmJiB0aGlzLnByb3BzLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwib25Ub3VjaEVuZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IG5hdGl2ZU1vYmlsZVNjcm9sbCB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICh0aGlzLnByZXNzZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCAmJiAoIXRoaXMuc2Nyb2xsaW5nIHx8ICFuYXRpdmVNb2JpbGVTY3JvbGwpKSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzRW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIF9fcHVibGljRmllbGQodGhpcywgXCJvblRvdWNoTW92ZVwiLCAoZSkgPT4ge1xuICAgICAgY29uc3QgeyBuYXRpdmVNb2JpbGVTY3JvbGwgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAodGhpcy5wcmVzc2VkICYmICghbmF0aXZlTW9iaWxlU2Nyb2xsIHx8ICF0aGlzLmlzTW9iaWxlKSkge1xuICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICAgICAgaWYgKHRvdWNoKSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzTW92ZSh0b3VjaC5jbGllbnRYLCB0b3VjaC5jbGllbnRZKTtcbiAgICAgICAgfVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwib25Nb3VzZURvd25cIiwgKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzRHJhZ2dhYmxlKGUudGFyZ2V0KSAmJiB0aGlzLmlzU2Nyb2xsYWJsZSgpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5wcm9wcz8uYnV0dG9ucz8uaW5kZXhPZihlLmJ1dHRvbikgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzQ2xpY2soZS5jbGllbnRYLCBlLmNsaWVudFkpO1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9uTW91c2VNb3ZlXCIsIChlKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcmVzc2VkKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc01vdmUoZS5jbGllbnRYLCBlLmNsaWVudFkpO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwib25Nb3VzZVVwXCIsIChlKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcmVzc2VkKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NFbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmludGVybmFsID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25DbGljayhlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5jb250YWluZXIgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgICB0aGlzLm9uRW5kU2Nyb2xsID0gZGVib3VuY2UodGhpcy5vbkVuZFNjcm9sbCwgU0NST0xMX0VORF9ERUJPVU5DRSk7XG4gICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnByZXNzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmludGVybmFsID0gZmFsc2U7XG4gICAgdGhpcy5nZXRSZWYgPSB0aGlzLmdldFJlZi5iaW5kKHRoaXMpO1xuICB9XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgbmF0aXZlTW9iaWxlU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLmN1cnJlbnQ7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMub25Nb3VzZVVwKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCB0aGlzLm9uTW91c2VNb3ZlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCB0aGlzLm9uVG91Y2hNb3ZlLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgdGhpcy5vblRvdWNoRW5kKTtcbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgdGhpcy5vblRvdWNoU3RhcnQsIHtcbiAgICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgfSk7XG4gICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbk1vdXNlRG93biwge1xuICAgICAgcGFzc2l2ZTogZmFsc2VcbiAgICB9KTtcbiAgICBpZiAobmF0aXZlTW9iaWxlU2Nyb2xsKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlID0gdGhpcy5pc01vYmlsZURldmljZSgpO1xuICAgICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5vbk1vdXNlVXApO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIHRoaXMub25Ub3VjaE1vdmUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgdGhpcy5vblRvdWNoRW5kKTtcbiAgfVxuICBnZXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICB9XG4gIGlzTW9iaWxlRGV2aWNlKCkge1xuICAgIHJldHVybiB0eXBlb2Ygd2luZG93Lm9yaWVudGF0aW9uICE9PSBcInVuZGVmaW5lZFwiIHx8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIklFTW9iaWxlXCIpICE9PSAtMTtcbiAgfVxuICBpc0RyYWdnYWJsZSh0YXJnZXQpIHtcbiAgICBjb25zdCBpZ25vcmVFbGVtZW50cyA9IHRoaXMucHJvcHMuaWdub3JlRWxlbWVudHM7XG4gICAgaWYgKGlnbm9yZUVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBjbG9zZXN0ID0gdGFyZ2V0LmNsb3Nlc3QoaWdub3JlRWxlbWVudHMpO1xuICAgICAgcmV0dXJuIGNsb3Nlc3QgPT09IG51bGwgfHwgY2xvc2VzdC5jb250YWlucyh0aGlzLmdldEVsZW1lbnQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBpc1Njcm9sbGFibGUoKSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY3VycmVudDtcbiAgICByZXR1cm4gY29udGFpbmVyICYmIChjb250YWluZXIuc2Nyb2xsV2lkdGggPiBjb250YWluZXIuY2xpZW50V2lkdGggfHwgY29udGFpbmVyLnNjcm9sbEhlaWdodCA+IGNvbnRhaW5lci5jbGllbnRIZWlnaHQpO1xuICB9XG4gIHByb2Nlc3NDbGljayhjbGllbnRYLCBjbGllbnRZKSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY3VycmVudDtcbiAgICB0aGlzLnNjcm9sbExlZnQgPSBjb250YWluZXI/LnNjcm9sbExlZnQ7XG4gICAgdGhpcy5zY3JvbGxUb3AgPSBjb250YWluZXI/LnNjcm9sbFRvcDtcbiAgICB0aGlzLmNsaWVudFggPSBjbGllbnRYO1xuICAgIHRoaXMuY2xpZW50WSA9IGNsaWVudFk7XG4gICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgfVxuICBwcm9jZXNzU3RhcnQoY2hhbmdlQ3Vyc29yID0gdHJ1ZSkge1xuICAgIGNvbnN0IHsgb25TdGFydFNjcm9sbCB9ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuICAgIGlmIChjaGFuZ2VDdXJzb3IpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImN1cnNvci1ncmFiXCIpO1xuICAgIH1cbiAgICBpZiAob25TdGFydFNjcm9sbCkge1xuICAgICAgb25TdGFydFNjcm9sbCh7XG4gICAgICAgIGV4dGVybmFsOiAhdGhpcy5pbnRlcm5hbFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgfVxuICAvLyBQcm9jZXNzIG5hdGl2ZSBzY3JvbGwgKHNjcm9sbGJhciwgbW9iaWxlIHNjcm9sbClcbiAgcHJvY2Vzc1Njcm9sbCgpIHtcbiAgICBpZiAodGhpcy5zdGFydGVkKSB7XG4gICAgICBjb25zdCB7IG9uU2Nyb2xsIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKG9uU2Nyb2xsKSB7XG4gICAgICAgIG9uU2Nyb2xsKHtcbiAgICAgICAgICBleHRlcm5hbDogIXRoaXMuaW50ZXJuYWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc1N0YXJ0KGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgLy8gUHJvY2VzcyBub24tbmF0aXZlIHNjcm9sbFxuICBwcm9jZXNzTW92ZShuZXdDbGllbnRYLCBuZXdDbGllbnRZKSB7XG4gICAgY29uc3QgeyBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgYWN0aXZhdGlvbkRpc3RhbmNlLCBvblNjcm9sbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICAgIGlmICghdGhpcy5zdGFydGVkKSB7XG4gICAgICBpZiAoaG9yaXpvbnRhbCAmJiBNYXRoLmFicyhuZXdDbGllbnRYIC0gdGhpcy5jbGllbnRYKSA+IGFjdGl2YXRpb25EaXN0YW5jZSB8fCB2ZXJ0aWNhbCAmJiBNYXRoLmFicyhuZXdDbGllbnRZIC0gdGhpcy5jbGllbnRZKSA+IGFjdGl2YXRpb25EaXN0YW5jZSkge1xuICAgICAgICB0aGlzLmNsaWVudFggPSBuZXdDbGllbnRYO1xuICAgICAgICB0aGlzLmNsaWVudFkgPSBuZXdDbGllbnRZO1xuICAgICAgICB0aGlzLnByb2Nlc3NTdGFydCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaG9yaXpvbnRhbCkge1xuICAgICAgICBjb250YWluZXIuc2Nyb2xsTGVmdCAtPSBuZXdDbGllbnRYIC0gdGhpcy5jbGllbnRYO1xuICAgICAgfVxuICAgICAgaWYgKHZlcnRpY2FsKSB7XG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgLT0gbmV3Q2xpZW50WSAtIHRoaXMuY2xpZW50WTtcbiAgICAgIH1cbiAgICAgIGlmIChvblNjcm9sbCkge1xuICAgICAgICBvblNjcm9sbCh7IGV4dGVybmFsOiAhdGhpcy5pbnRlcm5hbCB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2xpZW50WCA9IG5ld0NsaWVudFg7XG4gICAgICB0aGlzLmNsaWVudFkgPSBuZXdDbGllbnRZO1xuICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gY29udGFpbmVyLnNjcm9sbExlZnQ7XG4gICAgICB0aGlzLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgfVxuICB9XG4gIHByb2Nlc3NFbmQoKSB7XG4gICAgY29uc3QgeyBvbkVuZFNjcm9sbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbnRhaW5lci5jdXJyZW50O1xuICAgIGlmIChjb250YWluZXIgJiYgb25FbmRTY3JvbGwpIHtcbiAgICAgIG9uRW5kU2Nyb2xsKHtcbiAgICAgICAgZXh0ZXJuYWw6ICF0aGlzLmludGVybmFsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmludGVybmFsID0gZmFsc2U7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwiY3Vyc29yLWdyYWJcIik7XG4gICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICB9XG4gIGdldFJlZihlbCkge1xuICAgIFt0aGlzLmNvbnRhaW5lciwgdGhpcy5wcm9wcy5pbm5lclJlZl0uZm9yRWFjaCgocmVmKSA9PiB7XG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICByZWYoZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZi5jdXJyZW50ID0gZWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZHJhZ2dpbmdDbGFzc05hbWUsIGNsYXNzTmFtZSwgc3R5bGUsIGhpZGVTY3JvbGxiYXJzIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJkaXZcIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKGNsYXNzTmFtZSwgdGhpcy5wcmVzc2VkICYmIGRyYWdnaW5nQ2xhc3NOYW1lLCB7XG4gICAgICAgICAgXCIhc2Nyb2xsLWF1dG8gWyY+Kl06cG9pbnRlci1ldmVudHMtbm9uZSBbJj4qXTpjdXJzb3ItZ3JhYlwiOiB0aGlzLnByZXNzZWQsXG4gICAgICAgICAgXCJvdmVyZmxvdy1hdXRvXCI6IHRoaXMuaXNNb2JpbGUsXG4gICAgICAgICAgXCJvdmVyZmxvdy1oaWRkZW4gIW92ZXJmbG93LXgtaGlkZGVuIFtvdmVyZmxvdzotbW96LXNjcm9sbGJhcnMtbm9uZV0gW3Njcm9sbGJhci13aWR0aDpub25lXVwiOiBoaWRlU2Nyb2xsYmFycyxcbiAgICAgICAgICBcIlsmOjotd2Via2l0LXNjcm9sbGJhcl06Wy13ZWJraXQtYXBwZWFyYW5jZTpub25lICFpbXBvcnRhbnRdIFsmOjotd2Via2l0LXNjcm9sbGJhcl06IWhpZGRlbiBbJjo6LXdlYmtpdC1zY3JvbGxiYXJdOiFoLTAgWyY6Oi13ZWJraXQtc2Nyb2xsYmFyXTohdy0wIFsmOjotd2Via2l0LXNjcm9sbGJhcl06IWJnLXRyYW5zcGFyZW50XCI6IGhpZGVTY3JvbGxiYXJzXG4gICAgICAgIH0pLFxuICAgICAgICBzdHlsZSxcbiAgICAgICAgcmVmOiB0aGlzLmdldFJlZixcbiAgICAgICAgb25TY3JvbGw6IHRoaXMub25TY3JvbGwsXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuX19wdWJsaWNGaWVsZChTY3JvbGxDb250YWluZXIsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgbmF0aXZlTW9iaWxlU2Nyb2xsOiB0cnVlLFxuICBoaWRlU2Nyb2xsYmFyczogdHJ1ZSxcbiAgYWN0aXZhdGlvbkRpc3RhbmNlOiAxMCxcbiAgdmVydGljYWw6IHRydWUsXG4gIGhvcml6b250YWw6IHRydWUsXG4gIHN0b3BQcm9wYWdhdGlvbjogZmFsc2UsXG4gIHN0eWxlOiB7fSxcbiAgYnV0dG9uczogW0xFRlRfQlVUVE9OXVxufSk7XG5cbmV4cG9ydCB7IFNjcm9sbENvbnRhaW5lciBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBDaGVja2JveCA9IGZvcndhcmRSZWYoXG4gICh7IGNsYXNzTmFtZSwgY29sb3IgPSBcImRlZmF1bHRcIiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuY2hlY2tib3gsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiaW5wdXRcIixcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIHRoZW1lLnJvb3QuY29sb3JbY29sb3JdLCBjbGFzc05hbWUpLFxuICAgICAgICAuLi5wcm9wc1xuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5DaGVja2JveC5kaXNwbGF5TmFtZSA9IFwiQ2hlY2tib3hcIjtcblxuZXhwb3J0IHsgQ2hlY2tib3ggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNoZWNrYm94Lm1qcy5tYXBcbiIsImltcG9ydCB7IGlzU2hhZG93Um9vdCwgaXNIVE1MRWxlbWVudCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscy9kb20nO1xuXG5mdW5jdGlvbiBhY3RpdmVFbGVtZW50KGRvYykge1xuICBsZXQgYWN0aXZlRWxlbWVudCA9IGRvYy5hY3RpdmVFbGVtZW50O1xuICB3aGlsZSAoKChfYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQpID09IG51bGwgfHwgKF9hY3RpdmVFbGVtZW50ID0gX2FjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hY3RpdmVFbGVtZW50LmFjdGl2ZUVsZW1lbnQpICE9IG51bGwpIHtcbiAgICB2YXIgX2FjdGl2ZUVsZW1lbnQ7XG4gICAgYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O1xuICB9XG4gIHJldHVybiBhY3RpdmVFbGVtZW50O1xufVxuZnVuY3Rpb24gY29udGFpbnMocGFyZW50LCBjaGlsZCkge1xuICBpZiAoIXBhcmVudCB8fCAhY2hpbGQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgcm9vdE5vZGUgPSBjaGlsZC5nZXRSb290Tm9kZSA9PSBudWxsID8gdm9pZCAwIDogY2hpbGQuZ2V0Um9vdE5vZGUoKTtcblxuICAvLyBGaXJzdCwgYXR0ZW1wdCB3aXRoIGZhc3RlciBuYXRpdmUgbWV0aG9kXG4gIGlmIChwYXJlbnQuY29udGFpbnMoY2hpbGQpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyB0aGVuIGZhbGxiYWNrIHRvIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNoYWRvdyBET00gc3VwcG9ydFxuICBpZiAocm9vdE5vZGUgJiYgaXNTaGFkb3dSb290KHJvb3ROb2RlKSkge1xuICAgIGxldCBuZXh0ID0gY2hpbGQ7XG4gICAgd2hpbGUgKG5leHQpIHtcbiAgICAgIGlmIChwYXJlbnQgPT09IG5leHQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXh0ID0gbmV4dC5wYXJlbnROb2RlIHx8IG5leHQuaG9zdDtcbiAgICB9XG4gIH1cblxuICAvLyBHaXZlIHVwLCB0aGUgcmVzdWx0IGlzIGZhbHNlXG4gIHJldHVybiBmYWxzZTtcbn1cbi8vIEF2b2lkIENocm9tZSBEZXZUb29scyBibHVlIHdhcm5pbmcuXG5mdW5jdGlvbiBnZXRQbGF0Zm9ybSgpIHtcbiAgY29uc3QgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG4gIGlmICh1YURhdGEgIT0gbnVsbCAmJiB1YURhdGEucGxhdGZvcm0pIHtcbiAgICByZXR1cm4gdWFEYXRhLnBsYXRmb3JtO1xuICB9XG4gIHJldHVybiBuYXZpZ2F0b3IucGxhdGZvcm07XG59XG5mdW5jdGlvbiBnZXRVc2VyQWdlbnQoKSB7XG4gIGNvbnN0IHVhRGF0YSA9IG5hdmlnYXRvci51c2VyQWdlbnREYXRhO1xuICBpZiAodWFEYXRhICYmIEFycmF5LmlzQXJyYXkodWFEYXRhLmJyYW5kcykpIHtcbiAgICByZXR1cm4gdWFEYXRhLmJyYW5kcy5tYXAoX3JlZiA9PiB7XG4gICAgICBsZXQge1xuICAgICAgICBicmFuZCxcbiAgICAgICAgdmVyc2lvblxuICAgICAgfSA9IF9yZWY7XG4gICAgICByZXR1cm4gYnJhbmQgKyBcIi9cIiArIHZlcnNpb247XG4gICAgfSkuam9pbignICcpO1xuICB9XG4gIHJldHVybiBuYXZpZ2F0b3IudXNlckFnZW50O1xufVxuXG4vLyBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vYWRvYmUvcmVhY3Qtc3BlY3RydW0vYmxvYi9iMzVkNWMwMmZlOTAwYmFkY2NkMGNmMWE4ZjIzYmI1OTM0MTlmMjM4L3BhY2thZ2VzL0ByZWFjdC1hcmlhL3V0aWxzL3NyYy9pc1ZpcnR1YWxFdmVudC50c1xuZnVuY3Rpb24gaXNWaXJ0dWFsQ2xpY2soZXZlbnQpIHtcbiAgLy8gRklYTUU6IEZpcmVmb3ggaXMgbm93IGVtaXR0aW5nIGEgZGVwcmVjYXRpb24gd2FybmluZyBmb3IgYG1veklucHV0U291cmNlYC5cbiAgLy8gVHJ5IHRvIGZpbmQgYSB3b3JrYXJvdW5kIGZvciB0aGlzLiBgcmVhY3QtYXJpYWAgc291cmNlIHN0aWxsIGhhcyB0aGUgY2hlY2suXG4gIGlmIChldmVudC5tb3pJbnB1dFNvdXJjZSA9PT0gMCAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBbmRyb2lkKCkgJiYgZXZlbnQucG9pbnRlclR5cGUpIHtcbiAgICByZXR1cm4gZXZlbnQudHlwZSA9PT0gJ2NsaWNrJyAmJiBldmVudC5idXR0b25zID09PSAxO1xuICB9XG4gIHJldHVybiBldmVudC5kZXRhaWwgPT09IDAgJiYgIWV2ZW50LnBvaW50ZXJUeXBlO1xufVxuZnVuY3Rpb24gaXNWaXJ0dWFsUG9pbnRlckV2ZW50KGV2ZW50KSB7XG4gIGlmIChpc0pTRE9NKCkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuICFpc0FuZHJvaWQoKSAmJiBldmVudC53aWR0aCA9PT0gMCAmJiBldmVudC5oZWlnaHQgPT09IDAgfHwgaXNBbmRyb2lkKCkgJiYgZXZlbnQud2lkdGggPT09IDEgJiYgZXZlbnQuaGVpZ2h0ID09PSAxICYmIGV2ZW50LnByZXNzdXJlID09PSAwICYmIGV2ZW50LmRldGFpbCA9PT0gMCAmJiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyB8fFxuICAvLyBpT1MgVm9pY2VPdmVyIHJldHVybnMgMC4zMzPigKIgZm9yIHdpZHRoL2hlaWdodC5cbiAgZXZlbnQud2lkdGggPCAxICYmIGV2ZW50LmhlaWdodCA8IDEgJiYgZXZlbnQucHJlc3N1cmUgPT09IDAgJiYgZXZlbnQuZGV0YWlsID09PSAwICYmIGV2ZW50LnBvaW50ZXJUeXBlID09PSAndG91Y2gnO1xufVxuZnVuY3Rpb24gaXNTYWZhcmkoKSB7XG4gIC8vIENocm9tZSBEZXZUb29scyBkb2VzIG5vdCBjb21wbGFpbiBhYm91dCBuYXZpZ2F0b3IudmVuZG9yXG4gIHJldHVybiAvYXBwbGUvaS50ZXN0KG5hdmlnYXRvci52ZW5kb3IpO1xufVxuZnVuY3Rpb24gaXNBbmRyb2lkKCkge1xuICBjb25zdCByZSA9IC9hbmRyb2lkL2k7XG4gIHJldHVybiByZS50ZXN0KGdldFBsYXRmb3JtKCkpIHx8IHJlLnRlc3QoZ2V0VXNlckFnZW50KCkpO1xufVxuZnVuY3Rpb24gaXNNYWMoKSB7XG4gIHJldHVybiBnZXRQbGF0Zm9ybSgpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnbWFjJykgJiYgIW5hdmlnYXRvci5tYXhUb3VjaFBvaW50cztcbn1cbmZ1bmN0aW9uIGlzSlNET00oKSB7XG4gIHJldHVybiBnZXRVc2VyQWdlbnQoKS5pbmNsdWRlcygnanNkb20vJyk7XG59XG5mdW5jdGlvbiBpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlLCBzdHJpY3QpIHtcbiAgLy8gT24gc29tZSBMaW51eCBtYWNoaW5lcyB3aXRoIENocm9taXVtLCBtb3VzZSBpbnB1dHMgcmV0dXJuIGEgYHBvaW50ZXJUeXBlYFxuICAvLyBvZiBcInBlblwiOiBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzIwMTVcbiAgY29uc3QgdmFsdWVzID0gWydtb3VzZScsICdwZW4nXTtcbiAgaWYgKCFzdHJpY3QpIHtcbiAgICB2YWx1ZXMucHVzaCgnJywgdW5kZWZpbmVkKTtcbiAgfVxuICByZXR1cm4gdmFsdWVzLmluY2x1ZGVzKHBvaW50ZXJUeXBlKTtcbn1cbmZ1bmN0aW9uIGlzUmVhY3RFdmVudChldmVudCkge1xuICByZXR1cm4gJ25hdGl2ZUV2ZW50JyBpbiBldmVudDtcbn1cbmZ1bmN0aW9uIGlzUm9vdEVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCdodG1sLGJvZHknKTtcbn1cbmZ1bmN0aW9uIGdldERvY3VtZW50KG5vZGUpIHtcbiAgcmV0dXJuIChub2RlID09IG51bGwgPyB2b2lkIDAgOiBub2RlLm93bmVyRG9jdW1lbnQpIHx8IGRvY3VtZW50O1xufVxuZnVuY3Rpb24gaXNFdmVudFRhcmdldFdpdGhpbihldmVudCwgbm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICgnY29tcG9zZWRQYXRoJyBpbiBldmVudCkge1xuICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhub2RlKTtcbiAgfVxuXG4gIC8vIFRTIHRoaW5rcyBgZXZlbnRgIGlzIG9mIHR5cGUgbmV2ZXIgYXMgaXQgYXNzdW1lcyBhbGwgYnJvd3NlcnMgc3VwcG9ydCBjb21wb3NlZFBhdGgsIGJ1dCBicm93c2VycyB3aXRob3V0IHNoYWRvdyBkb20gZG9uJ3RcbiAgY29uc3QgZSA9IGV2ZW50O1xuICByZXR1cm4gZS50YXJnZXQgIT0gbnVsbCAmJiBub2RlLmNvbnRhaW5zKGUudGFyZ2V0KTtcbn1cbmZ1bmN0aW9uIGdldFRhcmdldChldmVudCkge1xuICBpZiAoJ2NvbXBvc2VkUGF0aCcgaW4gZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQuY29tcG9zZWRQYXRoKClbMF07XG4gIH1cblxuICAvLyBUUyB0aGlua3MgYGV2ZW50YCBpcyBvZiB0eXBlIG5ldmVyIGFzIGl0IGFzc3VtZXMgYWxsIGJyb3dzZXJzIHN1cHBvcnRcbiAgLy8gYGNvbXBvc2VkUGF0aCgpYCwgYnV0IGJyb3dzZXJzIHdpdGhvdXQgc2hhZG93IERPTSBkb24ndC5cbiAgcmV0dXJuIGV2ZW50LnRhcmdldDtcbn1cbmNvbnN0IFRZUEVBQkxFX1NFTEVDVE9SID0gXCJpbnB1dDpub3QoW3R5cGU9J2hpZGRlbiddKTpub3QoW2Rpc2FibGVkXSksXCIgKyBcIltjb250ZW50ZWRpdGFibGVdOm5vdChbY29udGVudGVkaXRhYmxlPSdmYWxzZSddKSx0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSlcIjtcbmZ1bmN0aW9uIGlzVHlwZWFibGVFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC5tYXRjaGVzKFRZUEVBQkxFX1NFTEVDVE9SKTtcbn1cbmZ1bmN0aW9uIHN0b3BFdmVudChldmVudCkge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn1cbmZ1bmN0aW9uIGlzVHlwZWFibGVDb21ib2JveChlbGVtZW50KSB7XG4gIGlmICghZWxlbWVudCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ2NvbWJvYm94JyAmJiBpc1R5cGVhYmxlRWxlbWVudChlbGVtZW50KTtcbn1cblxuZXhwb3J0IHsgVFlQRUFCTEVfU0VMRUNUT1IsIGFjdGl2ZUVsZW1lbnQsIGNvbnRhaW5zLCBnZXREb2N1bWVudCwgZ2V0UGxhdGZvcm0sIGdldFRhcmdldCwgZ2V0VXNlckFnZW50LCBpc0FuZHJvaWQsIGlzRXZlbnRUYXJnZXRXaXRoaW4sIGlzSlNET00sIGlzTWFjLCBpc01vdXNlTGlrZVBvaW50ZXJUeXBlLCBpc1JlYWN0RXZlbnQsIGlzUm9vdEVsZW1lbnQsIGlzU2FmYXJpLCBpc1R5cGVhYmxlQ29tYm9ib3gsIGlzVHlwZWFibGVFbGVtZW50LCBpc1ZpcnR1YWxDbGljaywgaXNWaXJ0dWFsUG9pbnRlckV2ZW50LCBzdG9wRXZlbnQgfTtcbiIsIi8qIVxuKiB0YWJiYWJsZSA2LjIuMFxuKiBAbGljZW5zZSBNSVQsIGh0dHBzOi8vZ2l0aHViLmNvbS9mb2N1cy10cmFwL3RhYmJhYmxlL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiovXG4vLyBOT1RFOiBzZXBhcmF0ZSBgOm5vdCgpYCBzZWxlY3RvcnMgaGFzIGJyb2FkZXIgYnJvd3NlciBzdXBwb3J0IHRoYW4gdGhlIG5ld2VyXG4vLyAgYDpub3QoW2luZXJ0XSwgW2luZXJ0XSAqKWAgKEZlYiAyMDIzKVxuLy8gQ0FSRUZVTDogSlNEb20gZG9lcyBub3Qgc3VwcG9ydCBgOm5vdChbaW5lcnRdICopYCBhcyBhIHNlbGVjdG9yOyB1c2luZyBpdCBjYXVzZXNcbi8vICB0aGUgZW50aXJlIHF1ZXJ5IHRvIGZhaWwsIHJlc3VsdGluZyBpbiBubyBub2RlcyBmb3VuZCwgd2hpY2ggd2lsbCBicmVhayBhIGxvdFxuLy8gIG9mIHRoaW5ncy4uLiBzbyB3ZSBoYXZlIHRvIHJlbHkgb24gSlMgdG8gaWRlbnRpZnkgbm9kZXMgaW5zaWRlIGFuIGluZXJ0IGNvbnRhaW5lclxudmFyIGNhbmRpZGF0ZVNlbGVjdG9ycyA9IFsnaW5wdXQ6bm90KFtpbmVydF0pJywgJ3NlbGVjdDpub3QoW2luZXJ0XSknLCAndGV4dGFyZWE6bm90KFtpbmVydF0pJywgJ2FbaHJlZl06bm90KFtpbmVydF0pJywgJ2J1dHRvbjpub3QoW2luZXJ0XSknLCAnW3RhYmluZGV4XTpub3Qoc2xvdCk6bm90KFtpbmVydF0pJywgJ2F1ZGlvW2NvbnRyb2xzXTpub3QoW2luZXJ0XSknLCAndmlkZW9bY29udHJvbHNdOm5vdChbaW5lcnRdKScsICdbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCJdKTpub3QoW2luZXJ0XSknLCAnZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGU6bm90KFtpbmVydF0pJywgJ2RldGFpbHM6bm90KFtpbmVydF0pJ107XG52YXIgY2FuZGlkYXRlU2VsZWN0b3IgPSAvKiAjX19QVVJFX18gKi9jYW5kaWRhdGVTZWxlY3RvcnMuam9pbignLCcpO1xudmFyIE5vRWxlbWVudCA9IHR5cGVvZiBFbGVtZW50ID09PSAndW5kZWZpbmVkJztcbnZhciBtYXRjaGVzID0gTm9FbGVtZW50ID8gZnVuY3Rpb24gKCkge30gOiBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzIHx8IEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yIHx8IEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtcbnZhciBnZXRSb290Tm9kZSA9ICFOb0VsZW1lbnQgJiYgRWxlbWVudC5wcm90b3R5cGUuZ2V0Um9vdE5vZGUgPyBmdW5jdGlvbiAoZWxlbWVudCkge1xuICB2YXIgX2VsZW1lbnQkZ2V0Um9vdE5vZGU7XG4gIHJldHVybiBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfZWxlbWVudCRnZXRSb290Tm9kZSA9IGVsZW1lbnQuZ2V0Um9vdE5vZGUpID09PSBudWxsIHx8IF9lbGVtZW50JGdldFJvb3ROb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZWxlbWVudCRnZXRSb290Tm9kZS5jYWxsKGVsZW1lbnQpO1xufSA6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVsZW1lbnQub3duZXJEb2N1bWVudDtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG5vZGUgaXMgaW5lcnQgb3IgaW4gYW4gaW5lcnQgYW5jZXN0b3IuXG4gKiBAcGFyYW0ge0VsZW1lbnR9IFtub2RlXVxuICogQHBhcmFtIHtib29sZWFufSBbbG9va1VwXSBJZiB0cnVlIGFuZCBgbm9kZWAgaXMgbm90IGluZXJ0LCBsb29rcyB1cCBhdCBhbmNlc3RvcnMgdG9cbiAqICBzZWUgaWYgYW55IG9mIHRoZW0gYXJlIGluZXJ0LiBJZiBmYWxzZSwgb25seSBgbm9kZWAgaXRzZWxmIGlzIGNvbnNpZGVyZWQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBpbmVydCBpdHNlbGYgb3IgYnkgd2F5IG9mIGJlaW5nIGluIGFuIGluZXJ0IGFuY2VzdG9yLlxuICogIEZhbHNlIGlmIGBub2RlYCBpcyBmYWxzeS5cbiAqL1xudmFyIGlzSW5lcnQgPSBmdW5jdGlvbiBpc0luZXJ0KG5vZGUsIGxvb2tVcCkge1xuICB2YXIgX25vZGUkZ2V0QXR0cmlidXRlO1xuICBpZiAobG9va1VwID09PSB2b2lkIDApIHtcbiAgICBsb29rVXAgPSB0cnVlO1xuICB9XG4gIC8vIENBUkVGVUw6IEpTRG9tIGRvZXMgbm90IHN1cHBvcnQgaW5lcnQgYXQgYWxsLCBzbyB3ZSBjYW4ndCB1c2UgdGhlIGBIVE1MRWxlbWVudC5pbmVydGBcbiAgLy8gIEpTIEFQSSBwcm9wZXJ0eTsgd2UgaGF2ZSB0byBjaGVjayB0aGUgYXR0cmlidXRlLCB3aGljaCBjYW4gZWl0aGVyIGJlIGVtcHR5IG9yICd0cnVlJztcbiAgLy8gIGlmIGl0J3MgYG51bGxgIChub3Qgc3BlY2lmaWVkKSBvciAnZmFsc2UnLCBpdCdzIGFuIGFjdGl2ZSBlbGVtZW50XG4gIHZhciBpbmVydEF0dCA9IG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9ub2RlJGdldEF0dHJpYnV0ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKSA9PT0gbnVsbCB8fCBfbm9kZSRnZXRBdHRyaWJ1dGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ub2RlJGdldEF0dHJpYnV0ZS5jYWxsKG5vZGUsICdpbmVydCcpO1xuICB2YXIgaW5lcnQgPSBpbmVydEF0dCA9PT0gJycgfHwgaW5lcnRBdHQgPT09ICd0cnVlJztcblxuICAvLyBOT1RFOiB0aGlzIGNvdWxkIGFsc28gYmUgaGFuZGxlZCB3aXRoIGBub2RlLm1hdGNoZXMoJ1tpbmVydF0sIDppcyhbaW5lcnRdICopJylgXG4gIC8vICBpZiBpdCB3ZXJlbid0IGZvciBgbWF0Y2hlcygpYCBub3QgYmVpbmcgYSBmdW5jdGlvbiBvbiBzaGFkb3cgcm9vdHM7IHRoZSBmb2xsb3dpbmdcbiAgLy8gIGNvZGUgd29ya3MgZm9yIGFueSBraW5kIG9mIG5vZGVcbiAgLy8gQ0FSRUZVTDogSlNEb20gZG9lcyBub3QgYXBwZWFyIHRvIHN1cHBvcnQgY2VydGFpbiBzZWxlY3RvcnMgbGlrZSBgOm5vdChbaW5lcnRdICopYFxuICAvLyAgc28gaXQgbGlrZWx5IHdvdWxkIG5vdCBzdXBwb3J0IGA6aXMoW2luZXJ0XSAqKWAgZWl0aGVyLi4uXG4gIHZhciByZXN1bHQgPSBpbmVydCB8fCBsb29rVXAgJiYgbm9kZSAmJiBpc0luZXJ0KG5vZGUucGFyZW50Tm9kZSk7IC8vIHJlY3Vyc2l2ZVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBub2RlJ3MgY29udGVudCBpcyBlZGl0YWJsZS5cbiAqIEBwYXJhbSB7RWxlbWVudH0gW25vZGVdXG4gKiBAcmV0dXJucyBUcnVlIGlmIGl0J3MgY29udGVudC1lZGl0YWJsZTsgZmFsc2UgaWYgaXQncyBub3Qgb3IgYG5vZGVgIGlzIGZhbHN5LlxuICovXG52YXIgaXNDb250ZW50RWRpdGFibGUgPSBmdW5jdGlvbiBpc0NvbnRlbnRFZGl0YWJsZShub2RlKSB7XG4gIHZhciBfbm9kZSRnZXRBdHRyaWJ1dGUyO1xuICAvLyBDQVJFRlVMOiBKU0RvbSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBgSFRNTEVsZW1lbnQuaXNDb250ZW50RWRpdGFibGVgIEFQSSBzbyB3ZSBoYXZlXG4gIC8vICB0byB1c2UgdGhlIGF0dHJpYnV0ZSBkaXJlY3RseSB0byBjaGVjayBmb3IgdGhpcywgd2hpY2ggY2FuIGVpdGhlciBiZSBlbXB0eSBvciAndHJ1ZSc7XG4gIC8vICBpZiBpdCdzIGBudWxsYCAobm90IHNwZWNpZmllZCkgb3IgJ2ZhbHNlJywgaXQncyBhIG5vbi1lZGl0YWJsZSBlbGVtZW50XG4gIHZhciBhdHRWYWx1ZSA9IG5vZGUgPT09IG51bGwgfHwgbm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogKF9ub2RlJGdldEF0dHJpYnV0ZTIgPSBub2RlLmdldEF0dHJpYnV0ZSkgPT09IG51bGwgfHwgX25vZGUkZ2V0QXR0cmlidXRlMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGUkZ2V0QXR0cmlidXRlMi5jYWxsKG5vZGUsICdjb250ZW50ZWRpdGFibGUnKTtcbiAgcmV0dXJuIGF0dFZhbHVlID09PSAnJyB8fCBhdHRWYWx1ZSA9PT0gJ3RydWUnO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsIGNvbnRhaW5lciB0byBjaGVjayBpblxuICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlQ29udGFpbmVyIGFkZCBjb250YWluZXIgdG8gY2hlY2tcbiAqIEBwYXJhbSB7KG5vZGU6IEVsZW1lbnQpID0+IGJvb2xlYW59IGZpbHRlciBmaWx0ZXIgY2FuZGlkYXRlc1xuICogQHJldHVybnMge0VsZW1lbnRbXX1cbiAqL1xudmFyIGdldENhbmRpZGF0ZXMgPSBmdW5jdGlvbiBnZXRDYW5kaWRhdGVzKGVsLCBpbmNsdWRlQ29udGFpbmVyLCBmaWx0ZXIpIHtcbiAgLy8gZXZlbiBpZiBgaW5jbHVkZUNvbnRhaW5lcj1mYWxzZWAsIHdlIHN0aWxsIGhhdmUgdG8gY2hlY2sgaXQgZm9yIGluZXJ0bmVzcyBiZWNhdXNlXG4gIC8vICBpZiBpdCdzIGluZXJ0LCBhbGwgaXRzIGNoaWxkcmVuIGFyZSBpbmVydFxuICBpZiAoaXNJbmVydChlbCkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdmFyIGNhbmRpZGF0ZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZWwucXVlcnlTZWxlY3RvckFsbChjYW5kaWRhdGVTZWxlY3RvcikpO1xuICBpZiAoaW5jbHVkZUNvbnRhaW5lciAmJiBtYXRjaGVzLmNhbGwoZWwsIGNhbmRpZGF0ZVNlbGVjdG9yKSkge1xuICAgIGNhbmRpZGF0ZXMudW5zaGlmdChlbCk7XG4gIH1cbiAgY2FuZGlkYXRlcyA9IGNhbmRpZGF0ZXMuZmlsdGVyKGZpbHRlcik7XG4gIHJldHVybiBjYW5kaWRhdGVzO1xufTtcblxuLyoqXG4gKiBAY2FsbGJhY2sgR2V0U2hhZG93Um9vdFxuICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50IHRvIGNoZWNrIGZvciBzaGFkb3cgcm9vdFxuICogQHJldHVybnMge1NoYWRvd1Jvb3R8Ym9vbGVhbn0gU2hhZG93Um9vdCBpZiBhdmFpbGFibGUgb3IgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGEgc2hhZG93Um9vdCBpcyBhdHRhY2hlZCBidXQgbm90IGF2YWlsYWJsZS5cbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBTaGFkb3dSb290RmlsdGVyXG4gKiBAcGFyYW0ge0VsZW1lbnR9IHNoYWRvd0hvc3ROb2RlIHRoZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIHNoYWRvdyBjb250ZW50XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiBhIHNoYWRvdyByb290IGNvdWxkIHBvdGVudGlhbGx5IGNvbnRhaW4gdmFsaWQgY2FuZGlkYXRlcy5cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENhbmRpZGF0ZVNjb3BlXG4gKiBAcHJvcGVydHkge0VsZW1lbnR9IHNjb3BlUGFyZW50IGNvbnRhaW5zIGlubmVyIGNhbmRpZGF0ZXNcbiAqIEBwcm9wZXJ0eSB7RWxlbWVudFtdfSBjYW5kaWRhdGVzIGxpc3Qgb2YgY2FuZGlkYXRlcyBmb3VuZCBpbiB0aGUgc2NvcGUgcGFyZW50XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBJdGVyYXRpdmVPcHRpb25zXG4gKiBAcHJvcGVydHkge0dldFNoYWRvd1Jvb3R8Ym9vbGVhbn0gZ2V0U2hhZG93Um9vdCB0cnVlIGlmIHNoYWRvdyBzdXBwb3J0IGlzIGVuYWJsZWQ7IGZhbHN5IGlmIG5vdDtcbiAqICBpZiBhIGZ1bmN0aW9uLCBpbXBsaWVzIHNoYWRvdyBzdXBwb3J0IGlzIGVuYWJsZWQgYW5kIGVpdGhlciByZXR1cm5zIHRoZSBzaGFkb3cgcm9vdCBvZiBhbiBlbGVtZW50XG4gKiAgb3IgYSBib29sZWFuIHN0YXRpbmcgaWYgaXQgaGFzIGFuIHVuZGlzY2xvc2VkIHNoYWRvdyByb290XG4gKiBAcHJvcGVydHkgeyhub2RlOiBFbGVtZW50KSA9PiBib29sZWFufSBmaWx0ZXIgZmlsdGVyIGNhbmRpZGF0ZXNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZmxhdHRlbiBpZiB0cnVlIHRoZW4gcmVzdWx0IHdpbGwgZmxhdHRlbiBhbnkgQ2FuZGlkYXRlU2NvcGUgaW50byB0aGUgcmV0dXJuZWQgbGlzdFxuICogQHByb3BlcnR5IHtTaGFkb3dSb290RmlsdGVyfSBzaGFkb3dSb290RmlsdGVyIGZpbHRlciBzaGFkb3cgcm9vdHM7XG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge0VsZW1lbnRbXX0gZWxlbWVudHMgbGlzdCBvZiBlbGVtZW50IGNvbnRhaW5lcnMgdG8gbWF0Y2ggY2FuZGlkYXRlcyBmcm9tXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVDb250YWluZXIgYWRkIGNvbnRhaW5lciBsaXN0IHRvIGNoZWNrXG4gKiBAcGFyYW0ge0l0ZXJhdGl2ZU9wdGlvbnN9IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtBcnJheS48RWxlbWVudHxDYW5kaWRhdGVTY29wZT59XG4gKi9cbnZhciBnZXRDYW5kaWRhdGVzSXRlcmF0aXZlbHkgPSBmdW5jdGlvbiBnZXRDYW5kaWRhdGVzSXRlcmF0aXZlbHkoZWxlbWVudHMsIGluY2x1ZGVDb250YWluZXIsIG9wdGlvbnMpIHtcbiAgdmFyIGNhbmRpZGF0ZXMgPSBbXTtcbiAgdmFyIGVsZW1lbnRzVG9DaGVjayA9IEFycmF5LmZyb20oZWxlbWVudHMpO1xuICB3aGlsZSAoZWxlbWVudHNUb0NoZWNrLmxlbmd0aCkge1xuICAgIHZhciBlbGVtZW50ID0gZWxlbWVudHNUb0NoZWNrLnNoaWZ0KCk7XG4gICAgaWYgKGlzSW5lcnQoZWxlbWVudCwgZmFsc2UpKSB7XG4gICAgICAvLyBubyBuZWVkIHRvIGxvb2sgdXAgc2luY2Ugd2UncmUgZHJpbGxpbmcgZG93blxuICAgICAgLy8gYW55dGhpbmcgaW5zaWRlIHRoaXMgY29udGFpbmVyIHdpbGwgYWxzbyBiZSBpbmVydFxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LnRhZ05hbWUgPT09ICdTTE9UJykge1xuICAgICAgLy8gYWRkIHNoYWRvdyBkb20gc2xvdCBzY29wZSAoc2xvdCBpdHNlbGYgY2Fubm90IGJlIGZvY3VzYWJsZSlcbiAgICAgIHZhciBhc3NpZ25lZCA9IGVsZW1lbnQuYXNzaWduZWRFbGVtZW50cygpO1xuICAgICAgdmFyIGNvbnRlbnQgPSBhc3NpZ25lZC5sZW5ndGggPyBhc3NpZ25lZCA6IGVsZW1lbnQuY2hpbGRyZW47XG4gICAgICB2YXIgbmVzdGVkQ2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZXNJdGVyYXRpdmVseShjb250ZW50LCB0cnVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLmZsYXR0ZW4pIHtcbiAgICAgICAgY2FuZGlkYXRlcy5wdXNoLmFwcGx5KGNhbmRpZGF0ZXMsIG5lc3RlZENhbmRpZGF0ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHtcbiAgICAgICAgICBzY29wZVBhcmVudDogZWxlbWVudCxcbiAgICAgICAgICBjYW5kaWRhdGVzOiBuZXN0ZWRDYW5kaWRhdGVzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjaGVjayBjYW5kaWRhdGUgZWxlbWVudFxuICAgICAgdmFyIHZhbGlkQ2FuZGlkYXRlID0gbWF0Y2hlcy5jYWxsKGVsZW1lbnQsIGNhbmRpZGF0ZVNlbGVjdG9yKTtcbiAgICAgIGlmICh2YWxpZENhbmRpZGF0ZSAmJiBvcHRpb25zLmZpbHRlcihlbGVtZW50KSAmJiAoaW5jbHVkZUNvbnRhaW5lciB8fCAhZWxlbWVudHMuaW5jbHVkZXMoZWxlbWVudCkpKSB7XG4gICAgICAgIGNhbmRpZGF0ZXMucHVzaChlbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gaXRlcmF0ZSBvdmVyIHNoYWRvdyBjb250ZW50IGlmIHBvc3NpYmxlXG4gICAgICB2YXIgc2hhZG93Um9vdCA9IGVsZW1lbnQuc2hhZG93Um9vdCB8fFxuICAgICAgLy8gY2hlY2sgZm9yIGFuIHVuZGlzY2xvc2VkIHNoYWRvd1xuICAgICAgdHlwZW9mIG9wdGlvbnMuZ2V0U2hhZG93Um9vdCA9PT0gJ2Z1bmN0aW9uJyAmJiBvcHRpb25zLmdldFNoYWRvd1Jvb3QoZWxlbWVudCk7XG5cbiAgICAgIC8vIG5vIGluZXJ0IGxvb2sgdXAgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IGRyaWxsaW5nIGRvd24gYW5kIGNoZWNraW5nIGZvciBpbmVydG5lc3NcbiAgICAgIC8vICBvbiB0aGUgd2F5IGRvd24sIHNvIGFsbCBjb250YWluZXJzIHRvIHRoaXMgcm9vdCBub2RlIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlblxuICAgICAgLy8gIHZldHRlZCBhcyBub24taW5lcnRcbiAgICAgIHZhciB2YWxpZFNoYWRvd1Jvb3QgPSAhaXNJbmVydChzaGFkb3dSb290LCBmYWxzZSkgJiYgKCFvcHRpb25zLnNoYWRvd1Jvb3RGaWx0ZXIgfHwgb3B0aW9ucy5zaGFkb3dSb290RmlsdGVyKGVsZW1lbnQpKTtcbiAgICAgIGlmIChzaGFkb3dSb290ICYmIHZhbGlkU2hhZG93Um9vdCkge1xuICAgICAgICAvLyBhZGQgc2hhZG93IGRvbSBzY29wZSBJSUYgYSBzaGFkb3cgcm9vdCBub2RlIHdhcyBnaXZlbjsgb3RoZXJ3aXNlLCBhbiB1bmRpc2Nsb3NlZFxuICAgICAgICAvLyAgc2hhZG93IGV4aXN0cywgc28gbG9vayBhdCBsaWdodCBkb20gY2hpbGRyZW4gYXMgZmFsbGJhY2sgQlVUIGNyZWF0ZSBhIHNjb3BlIGZvciBhbnlcbiAgICAgICAgLy8gIGNoaWxkIGNhbmRpZGF0ZXMgZm91bmQgYmVjYXVzZSB0aGV5J3JlIGxpa2VseSBzbG90dGVkIGVsZW1lbnRzIChlbGVtZW50cyB0aGF0IGFyZVxuICAgICAgICAvLyAgY2hpbGRyZW4gb2YgdGhlIHdlYiBjb21wb25lbnQgZWxlbWVudCAod2hpY2ggaGFzIHRoZSBzaGFkb3cpLCBpbiB0aGUgbGlnaHQgZG9tLCBidXRcbiAgICAgICAgLy8gIHNsb3R0ZWQgc29tZXdoZXJlIF9pbnNpZGVfIHRoZSB1bmRpc2Nsb3NlZCBzaGFkb3cpIC0tIHRoZSBzY29wZSBpcyBjcmVhdGVkIGJlbG93LFxuICAgICAgICAvLyAgX2FmdGVyXyB3ZSByZXR1cm4gZnJvbSB0aGlzIHJlY3Vyc2l2ZSBjYWxsXG4gICAgICAgIHZhciBfbmVzdGVkQ2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZXNJdGVyYXRpdmVseShzaGFkb3dSb290ID09PSB0cnVlID8gZWxlbWVudC5jaGlsZHJlbiA6IHNoYWRvd1Jvb3QuY2hpbGRyZW4sIHRydWUsIG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5mbGF0dGVuKSB7XG4gICAgICAgICAgY2FuZGlkYXRlcy5wdXNoLmFwcGx5KGNhbmRpZGF0ZXMsIF9uZXN0ZWRDYW5kaWRhdGVzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjYW5kaWRhdGVzLnB1c2goe1xuICAgICAgICAgICAgc2NvcGVQYXJlbnQ6IGVsZW1lbnQsXG4gICAgICAgICAgICBjYW5kaWRhdGVzOiBfbmVzdGVkQ2FuZGlkYXRlc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGVyZSdzIG5vdCBzaGFkb3cgc28ganVzdCBkaWcgaW50byB0aGUgZWxlbWVudCdzIChsaWdodCBkb20pIGNoaWxkcmVuXG4gICAgICAgIC8vICBfX3dpdGhvdXRfXyBnaXZpbmcgdGhlIGVsZW1lbnQgc3BlY2lhbCBzY29wZSB0cmVhdG1lbnRcbiAgICAgICAgZWxlbWVudHNUb0NoZWNrLnVuc2hpZnQuYXBwbHkoZWxlbWVudHNUb0NoZWNrLCBlbGVtZW50LmNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59O1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBub2RlIGhhcyBhbiBleHBsaWNpdGx5IHNwZWNpZmllZCBgdGFiaW5kZXhgIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG5vZGVcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHNvOyBmYWxzZSBpZiBub3QuXG4gKi9cbnZhciBoYXNUYWJJbmRleCA9IGZ1bmN0aW9uIGhhc1RhYkluZGV4KG5vZGUpIHtcbiAgcmV0dXJuICFpc05hTihwYXJzZUludChub2RlLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSwgMTApKTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSB0YWIgaW5kZXggb2YgYSBnaXZlbiBub2RlLlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gbm9kZVxuICogQHJldHVybnMge251bWJlcn0gVGFiIG9yZGVyIChuZWdhdGl2ZSwgMCwgb3IgcG9zaXRpdmUgbnVtYmVyKS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBgbm9kZWAgaXMgZmFsc3kuXG4gKi9cbnZhciBnZXRUYWJJbmRleCA9IGZ1bmN0aW9uIGdldFRhYkluZGV4KG5vZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBub2RlIHByb3ZpZGVkJyk7XG4gIH1cbiAgaWYgKG5vZGUudGFiSW5kZXggPCAwKSB7XG4gICAgLy8gaW4gQ2hyb21lLCA8ZGV0YWlscy8+LCA8YXVkaW8gY29udHJvbHMvPiBhbmQgPHZpZGVvIGNvbnRyb2xzLz4gZWxlbWVudHMgZ2V0IGEgZGVmYXVsdFxuICAgIC8vIGB0YWJJbmRleGAgb2YgLTEgd2hlbiB0aGUgJ3RhYmluZGV4JyBhdHRyaWJ1dGUgaXNuJ3Qgc3BlY2lmaWVkIGluIHRoZSBET00sXG4gICAgLy8geWV0IHRoZXkgYXJlIHN0aWxsIHBhcnQgb2YgdGhlIHJlZ3VsYXIgdGFiIG9yZGVyOyBpbiBGRiwgdGhleSBnZXQgYSBkZWZhdWx0XG4gICAgLy8gYHRhYkluZGV4YCBvZiAwOyBzaW5jZSBDaHJvbWUgc3RpbGwgcHV0cyB0aG9zZSBlbGVtZW50cyBpbiB0aGUgcmVndWxhciB0YWJcbiAgICAvLyBvcmRlciwgY29uc2lkZXIgdGhlaXIgdGFiIGluZGV4IHRvIGJlIDAuXG4gICAgLy8gQWxzbyBicm93c2VycyBkbyBub3QgcmV0dXJuIGB0YWJJbmRleGAgY29ycmVjdGx5IGZvciBjb250ZW50RWRpdGFibGUgbm9kZXM7XG4gICAgLy8gc28gaWYgdGhleSBkb24ndCBoYXZlIGEgdGFiaW5kZXggYXR0cmlidXRlIHNwZWNpZmljYWxseSBzZXQsIGFzc3VtZSBpdCdzIDAuXG4gICAgaWYgKCgvXihBVURJT3xWSURFT3xERVRBSUxTKSQvLnRlc3Qobm9kZS50YWdOYW1lKSB8fCBpc0NvbnRlbnRFZGl0YWJsZShub2RlKSkgJiYgIWhhc1RhYkluZGV4KG5vZGUpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5vZGUudGFiSW5kZXg7XG59O1xuXG4vKipcbiAqIERldGVybWluZSB0aGUgdGFiIGluZGV4IG9mIGEgZ2l2ZW4gbm9kZSBfX2ZvciBzb3J0IG9yZGVyIHB1cnBvc2VzX18uXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1Njb3BlXSBUcnVlIGZvciBhIGN1c3RvbSBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Qgb3Igc2xvdCB0aGF0LCBieSBkZWZhdWx0LFxuICogIGhhcyB0YWJJbmRleCAtMSwgYnV0IG5lZWRzIHRvIGJlIHNvcnRlZCBieSBkb2N1bWVudCBvcmRlciBpbiBvcmRlciBmb3IgaXRzIGNvbnRlbnQgdG8gYmVcbiAqICBpbnNlcnRlZCBpbnRvIHRoZSBjb3JyZWN0IHNvcnQgcG9zaXRpb24uXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBUYWIgb3JkZXIgKG5lZ2F0aXZlLCAwLCBvciBwb3NpdGl2ZSBudW1iZXIpLlxuICovXG52YXIgZ2V0U29ydE9yZGVyVGFiSW5kZXggPSBmdW5jdGlvbiBnZXRTb3J0T3JkZXJUYWJJbmRleChub2RlLCBpc1Njb3BlKSB7XG4gIHZhciB0YWJJbmRleCA9IGdldFRhYkluZGV4KG5vZGUpO1xuICBpZiAodGFiSW5kZXggPCAwICYmIGlzU2NvcGUgJiYgIWhhc1RhYkluZGV4KG5vZGUpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHRhYkluZGV4O1xufTtcbnZhciBzb3J0T3JkZXJlZFRhYmJhYmxlcyA9IGZ1bmN0aW9uIHNvcnRPcmRlcmVkVGFiYmFibGVzKGEsIGIpIHtcbiAgcmV0dXJuIGEudGFiSW5kZXggPT09IGIudGFiSW5kZXggPyBhLmRvY3VtZW50T3JkZXIgLSBiLmRvY3VtZW50T3JkZXIgOiBhLnRhYkluZGV4IC0gYi50YWJJbmRleDtcbn07XG52YXIgaXNJbnB1dCA9IGZ1bmN0aW9uIGlzSW5wdXQobm9kZSkge1xuICByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnSU5QVVQnO1xufTtcbnZhciBpc0hpZGRlbklucHV0ID0gZnVuY3Rpb24gaXNIaWRkZW5JbnB1dChub2RlKSB7XG4gIHJldHVybiBpc0lucHV0KG5vZGUpICYmIG5vZGUudHlwZSA9PT0gJ2hpZGRlbic7XG59O1xudmFyIGlzRGV0YWlsc1dpdGhTdW1tYXJ5ID0gZnVuY3Rpb24gaXNEZXRhaWxzV2l0aFN1bW1hcnkobm9kZSkge1xuICB2YXIgciA9IG5vZGUudGFnTmFtZSA9PT0gJ0RFVEFJTFMnICYmIEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShub2RlLmNoaWxkcmVuKS5zb21lKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC50YWdOYW1lID09PSAnU1VNTUFSWSc7XG4gIH0pO1xuICByZXR1cm4gcjtcbn07XG52YXIgZ2V0Q2hlY2tlZFJhZGlvID0gZnVuY3Rpb24gZ2V0Q2hlY2tlZFJhZGlvKG5vZGVzLCBmb3JtKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAobm9kZXNbaV0uY2hlY2tlZCAmJiBub2Rlc1tpXS5mb3JtID09PSBmb3JtKSB7XG4gICAgICByZXR1cm4gbm9kZXNbaV07XG4gICAgfVxuICB9XG59O1xudmFyIGlzVGFiYmFibGVSYWRpbyA9IGZ1bmN0aW9uIGlzVGFiYmFibGVSYWRpbyhub2RlKSB7XG4gIGlmICghbm9kZS5uYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFyIHJhZGlvU2NvcGUgPSBub2RlLmZvcm0gfHwgZ2V0Um9vdE5vZGUobm9kZSk7XG4gIHZhciBxdWVyeVJhZGlvcyA9IGZ1bmN0aW9uIHF1ZXJ5UmFkaW9zKG5hbWUpIHtcbiAgICByZXR1cm4gcmFkaW9TY29wZS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicgKyBuYW1lICsgJ1wiXScpO1xuICB9O1xuICB2YXIgcmFkaW9TZXQ7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygd2luZG93LkNTUyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5DU1MuZXNjYXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmFkaW9TZXQgPSBxdWVyeVJhZGlvcyh3aW5kb3cuQ1NTLmVzY2FwZShub2RlLm5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgcmFkaW9TZXQgPSBxdWVyeVJhZGlvcyhub2RlLm5hbWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0xvb2tzIGxpa2UgeW91IGhhdmUgYSByYWRpbyBidXR0b24gd2l0aCBhIG5hbWUgYXR0cmlidXRlIGNvbnRhaW5pbmcgaW52YWxpZCBDU1Mgc2VsZWN0b3IgY2hhcmFjdGVycyBhbmQgbmVlZCB0aGUgQ1NTLmVzY2FwZSBwb2x5ZmlsbDogJXMnLCBlcnIubWVzc2FnZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHZhciBjaGVja2VkID0gZ2V0Q2hlY2tlZFJhZGlvKHJhZGlvU2V0LCBub2RlLmZvcm0pO1xuICByZXR1cm4gIWNoZWNrZWQgfHwgY2hlY2tlZCA9PT0gbm9kZTtcbn07XG52YXIgaXNSYWRpbyA9IGZ1bmN0aW9uIGlzUmFkaW8obm9kZSkge1xuICByZXR1cm4gaXNJbnB1dChub2RlKSAmJiBub2RlLnR5cGUgPT09ICdyYWRpbyc7XG59O1xudmFyIGlzTm9uVGFiYmFibGVSYWRpbyA9IGZ1bmN0aW9uIGlzTm9uVGFiYmFibGVSYWRpbyhub2RlKSB7XG4gIHJldHVybiBpc1JhZGlvKG5vZGUpICYmICFpc1RhYmJhYmxlUmFkaW8obm9kZSk7XG59O1xuXG4vLyBkZXRlcm1pbmVzIGlmIGEgbm9kZSBpcyB1bHRpbWF0ZWx5IGF0dGFjaGVkIHRvIHRoZSB3aW5kb3cncyBkb2N1bWVudFxudmFyIGlzTm9kZUF0dGFjaGVkID0gZnVuY3Rpb24gaXNOb2RlQXR0YWNoZWQobm9kZSkge1xuICB2YXIgX25vZGVSb290O1xuICAvLyBUaGUgcm9vdCBub2RlIGlzIHRoZSBzaGFkb3cgcm9vdCBpZiB0aGUgbm9kZSBpcyBpbiBhIHNoYWRvdyBET007IHNvbWUgZG9jdW1lbnQgb3RoZXJ3aXNlXG4gIC8vICAoYnV0IE5PVCBfdGhlXyBkb2N1bWVudDsgc2VlIHNlY29uZCAnSWYnIGNvbW1lbnQgYmVsb3cgZm9yIG1vcmUpLlxuICAvLyBJZiByb290Tm9kZSBpcyBzaGFkb3cgcm9vdCwgaXQnbGwgaGF2ZSBhIGhvc3QsIHdoaWNoIGlzIHRoZSBlbGVtZW50IHRvIHdoaWNoIHRoZSBzaGFkb3dcbiAgLy8gIGlzIGF0dGFjaGVkLCBhbmQgdGhlIG9uZSB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0J3MgaW4gdGhlIGRvY3VtZW50IG9yIG5vdCAoYmVjYXVzZSB0aGVcbiAgLy8gIHNoYWRvdywgYW5kIGFsbCBub2RlcyBpdCBjb250YWlucywgaXMgbmV2ZXIgY29uc2lkZXJlZCBpbiB0aGUgZG9jdW1lbnQgc2luY2Ugc2hhZG93c1xuICAvLyAgYmVoYXZlIGxpa2Ugc2VsZi1jb250YWluZWQgRE9NczsgYnV0IGlmIHRoZSBzaGFkb3cncyBIT1NULCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBkb2N1bWVudCxcbiAgLy8gIGlzIGhpZGRlbiwgb3IgaXMgbm90IGluIHRoZSBkb2N1bWVudCBpdHNlbGYgYnV0IGlzIGRldGFjaGVkLCBpdCB3aWxsIGFmZmVjdCB0aGUgc2hhZG93J3NcbiAgLy8gIHZpc2liaWxpdHksIGluY2x1ZGluZyBhbGwgdGhlIG5vZGVzIGl0IGNvbnRhaW5zKS4gVGhlIGhvc3QgY291bGQgYmUgYW55IG5vcm1hbCBub2RlLFxuICAvLyAgb3IgYSBjdXN0b20gZWxlbWVudCAoaS5lLiB3ZWIgY29tcG9uZW50KS4gRWl0aGVyIHdheSwgdGhhdCdzIHRoZSBvbmUgdGhhdCBpcyBjb25zaWRlcmVkXG4gIC8vICBwYXJ0IG9mIHRoZSBkb2N1bWVudCwgbm90IHRoZSBzaGFkb3cgcm9vdCwgbm9yIGFueSBvZiBpdHMgY2hpbGRyZW4gKGkuZS4gdGhlIG5vZGUgYmVpbmdcbiAgLy8gIHRlc3RlZCkuXG4gIC8vIFRvIGZ1cnRoZXIgY29tcGxpY2F0ZSB0aGluZ3MsIHdlIGhhdmUgdG8gbG9vayBhbGwgdGhlIHdheSB1cCB1bnRpbCB3ZSBmaW5kIGEgc2hhZG93IEhPU1RcbiAgLy8gIHRoYXQgaXMgYXR0YWNoZWQgKG9yIGZpbmQgbm9uZSkgYmVjYXVzZSB0aGUgbm9kZSBtaWdodCBiZSBpbiBuZXN0ZWQgc2hhZG93cy4uLlxuICAvLyBJZiByb290Tm9kZSBpcyBub3QgYSBzaGFkb3cgcm9vdCwgaXQgd29uJ3QgaGF2ZSBhIGhvc3QsIGFuZCBzbyByb290Tm9kZSBzaG91bGQgYmUgdGhlXG4gIC8vICBkb2N1bWVudCAocGVyIHRoZSBkb2NzKSBhbmQgd2hpbGUgaXQncyBhIERvY3VtZW50LXR5cGUgb2JqZWN0LCB0aGF0IGRvY3VtZW50IGRvZXMgbm90XG4gIC8vICBhcHBlYXIgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIG5vZGUncyBgb3duZXJEb2N1bWVudGAgZm9yIHNvbWUgcmVhc29uLCBzbyBpdCdzIHNhZmVyXG4gIC8vICB0byBpZ25vcmUgdGhlIHJvb3ROb2RlIGF0IHRoaXMgcG9pbnQsIGFuZCB1c2UgYG5vZGUub3duZXJEb2N1bWVudGAuIE90aGVyd2lzZSxcbiAgLy8gIHVzaW5nIGByb290Tm9kZS5jb250YWlucyhub2RlKWAgd2lsbCBfYWx3YXlzXyBiZSB0cnVlIHdlJ2xsIGdldCBmYWxzZS1wb3NpdGl2ZXMgd2hlblxuICAvLyAgbm9kZSBpcyBhY3R1YWxseSBkZXRhY2hlZC5cbiAgLy8gTk9URTogSWYgYG5vZGVSb290SG9zdGAgb3IgYG5vZGVgIGhhcHBlbnMgdG8gYmUgdGhlIGBkb2N1bWVudGAgaXRzZWxmICh3aGljaCBpcyBwb3NzaWJsZVxuICAvLyAgaWYgYSB0YWJiYWJsZS9mb2N1c2FibGUgbm9kZSB3YXMgcXVpY2tseSBhZGRlZCB0byB0aGUgRE9NLCBmb2N1c2VkLCBhbmQgdGhlbiByZW1vdmVkXG4gIC8vICBmcm9tIHRoZSBET00gYXMgaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZvY3VzLXRyYXAvZm9jdXMtdHJhcC1yZWFjdC9pc3N1ZXMvOTA1KSwgdGhlblxuICAvLyAgYG93bmVyRG9jdW1lbnRgIHdpbGwgYmUgYG51bGxgLCBoZW5jZSB0aGUgb3B0aW9uYWwgY2hhaW5pbmcgb24gaXQuXG4gIHZhciBub2RlUm9vdCA9IG5vZGUgJiYgZ2V0Um9vdE5vZGUobm9kZSk7XG4gIHZhciBub2RlUm9vdEhvc3QgPSAoX25vZGVSb290ID0gbm9kZVJvb3QpID09PSBudWxsIHx8IF9ub2RlUm9vdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGVSb290Lmhvc3Q7XG5cbiAgLy8gaW4gc29tZSBjYXNlcywgYSBkZXRhY2hlZCBub2RlIHdpbGwgcmV0dXJuIGl0c2VsZiBhcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIGEgZG9jdW1lbnQgb3JcbiAgLy8gIHNoYWRvdyByb290IG9iamVjdCwgaW4gd2hpY2ggY2FzZSwgd2Ugc2hvdWxkbid0IHRyeSB0byBsb29rIGZ1cnRoZXIgdXAgdGhlIGhvc3QgY2hhaW5cbiAgdmFyIGF0dGFjaGVkID0gZmFsc2U7XG4gIGlmIChub2RlUm9vdCAmJiBub2RlUm9vdCAhPT0gbm9kZSkge1xuICAgIHZhciBfbm9kZVJvb3RIb3N0LCBfbm9kZVJvb3RIb3N0JG93bmVyRG8sIF9ub2RlJG93bmVyRG9jdW1lbnQ7XG4gICAgYXR0YWNoZWQgPSAhISgoX25vZGVSb290SG9zdCA9IG5vZGVSb290SG9zdCkgIT09IG51bGwgJiYgX25vZGVSb290SG9zdCAhPT0gdm9pZCAwICYmIChfbm9kZVJvb3RIb3N0JG93bmVyRG8gPSBfbm9kZVJvb3RIb3N0Lm93bmVyRG9jdW1lbnQpICE9PSBudWxsICYmIF9ub2RlUm9vdEhvc3Qkb3duZXJEbyAhPT0gdm9pZCAwICYmIF9ub2RlUm9vdEhvc3Qkb3duZXJEby5jb250YWlucyhub2RlUm9vdEhvc3QpIHx8IG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdm9pZCAwICYmIChfbm9kZSRvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50KSAhPT0gbnVsbCAmJiBfbm9kZSRvd25lckRvY3VtZW50ICE9PSB2b2lkIDAgJiYgX25vZGUkb3duZXJEb2N1bWVudC5jb250YWlucyhub2RlKSk7XG4gICAgd2hpbGUgKCFhdHRhY2hlZCAmJiBub2RlUm9vdEhvc3QpIHtcbiAgICAgIHZhciBfbm9kZVJvb3QyLCBfbm9kZVJvb3RIb3N0MiwgX25vZGVSb290SG9zdDIkb3duZXJEO1xuICAgICAgLy8gc2luY2UgaXQncyBub3QgYXR0YWNoZWQgYW5kIHdlIGhhdmUgYSByb290IGhvc3QsIHRoZSBub2RlIE1VU1QgYmUgaW4gYSBuZXN0ZWQgc2hhZG93IERPTSxcbiAgICAgIC8vICB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGdldCB0aGUgaG9zdCdzIGhvc3QgYW5kIGNoZWNrIGlmIHRoYXQgcGFyZW50IGhvc3QgaXMgY29udGFpbmVkXG4gICAgICAvLyAgaW4gKGkuZS4gYXR0YWNoZWQgdG8pIHRoZSBkb2N1bWVudFxuICAgICAgbm9kZVJvb3QgPSBnZXRSb290Tm9kZShub2RlUm9vdEhvc3QpO1xuICAgICAgbm9kZVJvb3RIb3N0ID0gKF9ub2RlUm9vdDIgPSBub2RlUm9vdCkgPT09IG51bGwgfHwgX25vZGVSb290MiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGVSb290Mi5ob3N0O1xuICAgICAgYXR0YWNoZWQgPSAhISgoX25vZGVSb290SG9zdDIgPSBub2RlUm9vdEhvc3QpICE9PSBudWxsICYmIF9ub2RlUm9vdEhvc3QyICE9PSB2b2lkIDAgJiYgKF9ub2RlUm9vdEhvc3QyJG93bmVyRCA9IF9ub2RlUm9vdEhvc3QyLm93bmVyRG9jdW1lbnQpICE9PSBudWxsICYmIF9ub2RlUm9vdEhvc3QyJG93bmVyRCAhPT0gdm9pZCAwICYmIF9ub2RlUm9vdEhvc3QyJG93bmVyRC5jb250YWlucyhub2RlUm9vdEhvc3QpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGF0dGFjaGVkO1xufTtcbnZhciBpc1plcm9BcmVhID0gZnVuY3Rpb24gaXNaZXJvQXJlYShub2RlKSB7XG4gIHZhciBfbm9kZSRnZXRCb3VuZGluZ0NsaWUgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgIHdpZHRoID0gX25vZGUkZ2V0Qm91bmRpbmdDbGllLndpZHRoLFxuICAgIGhlaWdodCA9IF9ub2RlJGdldEJvdW5kaW5nQ2xpZS5oZWlnaHQ7XG4gIHJldHVybiB3aWR0aCA9PT0gMCAmJiBoZWlnaHQgPT09IDA7XG59O1xudmFyIGlzSGlkZGVuID0gZnVuY3Rpb24gaXNIaWRkZW4obm9kZSwgX3JlZikge1xuICB2YXIgZGlzcGxheUNoZWNrID0gX3JlZi5kaXNwbGF5Q2hlY2ssXG4gICAgZ2V0U2hhZG93Um9vdCA9IF9yZWYuZ2V0U2hhZG93Um9vdDtcbiAgLy8gTk9URTogdmlzaWJpbGl0eSB3aWxsIGJlIGB1bmRlZmluZWRgIGlmIG5vZGUgaXMgZGV0YWNoZWQgZnJvbSB0aGUgZG9jdW1lbnRcbiAgLy8gIChzZWUgbm90ZXMgYWJvdXQgdGhpcyBmdXJ0aGVyIGRvd24pLCB3aGljaCBtZWFucyB3ZSB3aWxsIGNvbnNpZGVyIGl0IHZpc2libGVcbiAgLy8gICh0aGlzIGlzIGxlZ2FjeSBiZWhhdmlvciBmcm9tIGEgdmVyeSBsb25nIHdheSBiYWNrKVxuICAvLyBOT1RFOiB3ZSBjaGVjayB0aGlzIHJlZ2FyZGxlc3Mgb2YgYGRpc3BsYXlDaGVjaz1cIm5vbmVcImAgYmVjYXVzZSB0aGlzIGlzIGFcbiAgLy8gIF92aXNpYmlsaXR5XyBjaGVjaywgbm90IGEgX2Rpc3BsYXlfIGNoZWNrXG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFyIGlzRGlyZWN0U3VtbWFyeSA9IG1hdGNoZXMuY2FsbChub2RlLCAnZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGUnKTtcbiAgdmFyIG5vZGVVbmRlckRldGFpbHMgPSBpc0RpcmVjdFN1bW1hcnkgPyBub2RlLnBhcmVudEVsZW1lbnQgOiBub2RlO1xuICBpZiAobWF0Y2hlcy5jYWxsKG5vZGVVbmRlckRldGFpbHMsICdkZXRhaWxzOm5vdChbb3Blbl0pIConKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICghZGlzcGxheUNoZWNrIHx8IGRpc3BsYXlDaGVjayA9PT0gJ2Z1bGwnIHx8IGRpc3BsYXlDaGVjayA9PT0gJ2xlZ2FjeS1mdWxsJykge1xuICAgIGlmICh0eXBlb2YgZ2V0U2hhZG93Um9vdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gZmlndXJlIG91dCBpZiB3ZSBzaG91bGQgY29uc2lkZXIgdGhlIG5vZGUgdG8gYmUgaW4gYW4gdW5kaXNjbG9zZWQgc2hhZG93IGFuZCB1c2UgdGhlXG4gICAgICAvLyAgJ25vbi16ZXJvLWFyZWEnIGZhbGxiYWNrXG4gICAgICB2YXIgb3JpZ2luYWxOb2RlID0gbm9kZTtcbiAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgICAgICB2YXIgcm9vdE5vZGUgPSBnZXRSb290Tm9kZShub2RlKTtcbiAgICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgIXBhcmVudEVsZW1lbnQuc2hhZG93Um9vdCAmJiBnZXRTaGFkb3dSb290KHBhcmVudEVsZW1lbnQpID09PSB0cnVlIC8vIGNoZWNrIGlmIHRoZXJlJ3MgYW4gdW5kaXNjbG9zZWQgc2hhZG93XG4gICAgICAgICkge1xuICAgICAgICAgIC8vIG5vZGUgaGFzIGFuIHVuZGlzY2xvc2VkIHNoYWRvdyB3aGljaCBtZWFucyB3ZSBjYW4gb25seSB0cmVhdCBpdCBhcyBhIGJsYWNrIGJveCwgc28gd2VcbiAgICAgICAgICAvLyAgZmFsbCBiYWNrIHRvIGEgbm9uLXplcm8tYXJlYSB0ZXN0XG4gICAgICAgICAgcmV0dXJuIGlzWmVyb0FyZWEobm9kZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobm9kZS5hc3NpZ25lZFNsb3QpIHtcbiAgICAgICAgICAvLyBpdGVyYXRlIHVwIHNsb3RcbiAgICAgICAgICBub2RlID0gbm9kZS5hc3NpZ25lZFNsb3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoIXBhcmVudEVsZW1lbnQgJiYgcm9vdE5vZGUgIT09IG5vZGUub3duZXJEb2N1bWVudCkge1xuICAgICAgICAgIC8vIGNyb3NzIHNoYWRvdyBib3VuZGFyeVxuICAgICAgICAgIG5vZGUgPSByb290Tm9kZS5ob3N0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGl0ZXJhdGUgdXAgbm9ybWFsIGRvbVxuICAgICAgICAgIG5vZGUgPSBwYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBub2RlID0gb3JpZ2luYWxOb2RlO1xuICAgIH1cbiAgICAvLyBlbHNlLCBgZ2V0U2hhZG93Um9vdGAgbWlnaHQgYmUgdHJ1ZSwgYnV0IGFsbCB0aGF0IGRvZXMgaXMgZW5hYmxlIHNoYWRvdyBET00gc3VwcG9ydFxuICAgIC8vICAoaS5lLiBpdCBkb2VzIG5vdCBhbHNvIHByZXN1bWUgdGhhdCBhbGwgbm9kZXMgbWlnaHQgaGF2ZSB1bmRpc2Nsb3NlZCBzaGFkb3dzKTsgb3JcbiAgICAvLyAgaXQgbWlnaHQgYmUgYSBmYWxzeSB2YWx1ZSwgd2hpY2ggbWVhbnMgc2hhZG93IERPTSBzdXBwb3J0IGlzIGRpc2FibGVkXG5cbiAgICAvLyBTaW5jZSB3ZSBkaWRuJ3QgZmluZCBpdCBzaXR0aW5nIGluIGFuIHVuZGlzY2xvc2VkIHNoYWRvdyAob3Igc2hhZG93cyBhcmUgZGlzYWJsZWQpXG4gICAgLy8gIG5vdyB3ZSBjYW4ganVzdCB0ZXN0IHRvIHNlZSBpZiBpdCB3b3VsZCBub3JtYWxseSBiZSB2aXNpYmxlIG9yIG5vdCwgcHJvdmlkZWQgaXQnc1xuICAgIC8vICBhdHRhY2hlZCB0byB0aGUgbWFpbiBkb2N1bWVudC5cbiAgICAvLyBOT1RFOiBXZSBtdXN0IGNvbnNpZGVyIGNhc2Ugd2hlcmUgbm9kZSBpcyBpbnNpZGUgYSBzaGFkb3cgRE9NIGFuZCBnaXZlbiBkaXJlY3RseSB0b1xuICAgIC8vICBgaXNUYWJiYWJsZSgpYCBvciBgaXNGb2N1c2FibGUoKWAgLS0gcmVnYXJkbGVzcyBvZiBgZ2V0U2hhZG93Um9vdGAgb3B0aW9uIHNldHRpbmcuXG5cbiAgICBpZiAoaXNOb2RlQXR0YWNoZWQobm9kZSkpIHtcbiAgICAgIC8vIHRoaXMgd29ya3Mgd2hlcmV2ZXIgdGhlIG5vZGUgaXM6IGlmIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGNsaWVudCByZWN0LCBpdCdzXG4gICAgICAvLyAgc29tZWhvdyBkaXNwbGF5ZWQ7IGl0IGFsc28gY292ZXJzIHRoZSBDU1MgJ2Rpc3BsYXk6IGNvbnRlbnRzJyBjYXNlIHdoZXJlIHRoZVxuICAgICAgLy8gIG5vZGUgaXRzZWxmIGlzIGhpZGRlbiBpbiBwbGFjZSBvZiBpdHMgY29udGVudHM7IGFuZCB0aGVyZSdzIG5vIG5lZWQgdG8gc2VhcmNoXG4gICAgICAvLyAgdXAgdGhlIGhpZXJhcmNoeSBlaXRoZXJcbiAgICAgIHJldHVybiAhbm9kZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBFbHNlLCB0aGUgbm9kZSBpc24ndCBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQsIHdoaWNoIG1lYW5zIHRoZSBgZ2V0Q2xpZW50UmVjdHMoKWBcbiAgICAvLyAgQVBJIHdpbGwgX19hbHdheXNfXyByZXR1cm4gemVybyByZWN0cyAodGhpcyBjYW4gaGFwcGVuLCBmb3IgZXhhbXBsZSwgaWYgUmVhY3RcbiAgICAvLyAgaXMgdXNlZCB0byByZW5kZXIgbm9kZXMgb250byBhIGRldGFjaGVkIHRyZWUsIGFzIGNvbmZpcm1lZCBpbiB0aGlzIHRocmVhZDpcbiAgICAvLyAgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy85MTE3I2lzc3VlY29tbWVudC0yODQyMjg4NzApXG4gICAgLy9cbiAgICAvLyBJdCBhbHNvIG1lYW5zIHRoYXQgZXZlbiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5kaXNwbGF5IHdpbGwgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgLy8gIGJlY2F1c2Ugc3R5bGVzIGFyZSBvbmx5IGNvbXB1dGVkIGZvciBub2RlcyB0aGF0IGFyZSBpbiB0aGUgZG9jdW1lbnQuXG4gICAgLy9cbiAgICAvLyBOT1RFOiBUSElTIEhBUyBCRUVOIFRIRSBDQVNFIEZPUiBZRUFSUy4gSXQgaXMgbm90IG5ldywgbm9yIGlzIGl0IGNhdXNlZCBieSB0YWJiYWJsZVxuICAgIC8vICBzb21laG93LiBUaG91Z2ggaXQgd2FzIG5ldmVyIHN0YXRlZCBvZmZpY2lhbGx5LCBhbnlvbmUgd2hvIGhhcyBldmVyIHVzZWQgdGFiYmFibGVcbiAgICAvLyAgQVBJcyBvbiBub2RlcyBpbiBkZXRhY2hlZCBjb250YWluZXJzIGhhcyBhY3R1YWxseSBpbXBsaWNpdGx5IHVzZWQgdGFiYmFibGUgaW4gd2hhdFxuICAgIC8vICB3YXMgbGF0ZXIgKGFzIG9mIHY1LjIuMCBvbiBBcHIgOSwgMjAyMSkgY2FsbGVkIGBkaXNwbGF5Q2hlY2s9XCJub25lXCJgIG1vZGUgLS0gZXNzZW50aWFsbHlcbiAgICAvLyAgY29uc2lkZXJpbmcgX19ldmVyeXRoaW5nX18gdG8gYmUgdmlzaWJsZSBiZWNhdXNlIG9mIHRoZSBpbm5hYmlsaXR5IHRvIGRldGVybWluZSBzdHlsZXMuXG4gICAgLy9cbiAgICAvLyB2Ni4wLjA6IEFzIG9mIHRoaXMgbWFqb3IgcmVsZWFzZSwgdGhlIGRlZmF1bHQgJ2Z1bGwnIG9wdGlvbiBfX25vIGxvbmdlciB0cmVhdHMgZGV0YWNoZWRcbiAgICAvLyAgbm9kZXMgYXMgdmlzaWJsZSB3aXRoIHRoZSAnbm9uZScgZmFsbGJhY2suX19cbiAgICBpZiAoZGlzcGxheUNoZWNrICE9PSAnbGVnYWN5LWZ1bGwnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gaGlkZGVuXG4gICAgfVxuICAgIC8vIGVsc2UsIGZhbGxiYWNrIHRvICdub25lJyBtb2RlIGFuZCBjb25zaWRlciB0aGUgbm9kZSB2aXNpYmxlXG4gIH0gZWxzZSBpZiAoZGlzcGxheUNoZWNrID09PSAnbm9uLXplcm8tYXJlYScpIHtcbiAgICAvLyBOT1RFOiBFdmVuIHRob3VnaCB0aGlzIHRlc3RzIHRoYXQgdGhlIG5vZGUncyBjbGllbnQgcmVjdCBpcyBub24temVybyB0byBkZXRlcm1pbmVcbiAgICAvLyAgd2hldGhlciBpdCdzIGRpc3BsYXllZCwgYW5kIHRoYXQgYSBkZXRhY2hlZCBub2RlIHdpbGwgX19hbHdheXNfXyBoYXZlIGEgemVyby1hcmVhXG4gICAgLy8gIGNsaWVudCByZWN0LCB3ZSBkb24ndCBzcGVjaWFsLWNhc2UgZm9yIHdoZXRoZXIgdGhlIG5vZGUgaXMgYXR0YWNoZWQgb3Igbm90LiBJblxuICAgIC8vICB0aGlzIG1vZGUsIHdlIGRvIHdhbnQgdG8gY29uc2lkZXIgbm9kZXMgdGhhdCBoYXZlIGEgemVybyBhcmVhIHRvIGJlIGhpZGRlbiBhdCBhbGxcbiAgICAvLyAgdGltZXMsIGFuZCB0aGF0IGluY2x1ZGVzIGF0dGFjaGVkIG9yIG5vdC5cbiAgICByZXR1cm4gaXNaZXJvQXJlYShub2RlKTtcbiAgfVxuXG4gIC8vIHZpc2libGUsIGFzIGZhciBhcyB3ZSBjYW4gdGVsbCwgb3IgcGVyIGN1cnJlbnQgYGRpc3BsYXlDaGVjaz1ub25lYCBtb2RlLCB3ZSBhc3N1bWVcbiAgLy8gIGl0J3MgdmlzaWJsZVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vLyBmb3JtIGZpZWxkcyAobmVzdGVkKSBpbnNpZGUgYSBkaXNhYmxlZCBmaWVsZHNldCBhcmUgbm90IGZvY3VzYWJsZS90YWJiYWJsZVxuLy8gIHVubGVzcyB0aGV5IGFyZSBpbiB0aGUgX2ZpcnN0XyA8bGVnZW5kPiBlbGVtZW50IG9mIHRoZSB0b3AtbW9zdCBkaXNhYmxlZFxuLy8gIGZpZWxkc2V0XG52YXIgaXNEaXNhYmxlZEZyb21GaWVsZHNldCA9IGZ1bmN0aW9uIGlzRGlzYWJsZWRGcm9tRmllbGRzZXQobm9kZSkge1xuICBpZiAoL14oSU5QVVR8QlVUVE9OfFNFTEVDVHxURVhUQVJFQSkkLy50ZXN0KG5vZGUudGFnTmFtZSkpIHtcbiAgICB2YXIgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICAvLyBjaGVjayBpZiBgbm9kZWAgaXMgY29udGFpbmVkIGluIGEgZGlzYWJsZWQgPGZpZWxkc2V0PlxuICAgIHdoaWxlIChwYXJlbnROb2RlKSB7XG4gICAgICBpZiAocGFyZW50Tm9kZS50YWdOYW1lID09PSAnRklFTERTRVQnICYmIHBhcmVudE5vZGUuZGlzYWJsZWQpIHtcbiAgICAgICAgLy8gbG9vayBmb3IgdGhlIGZpcnN0IDxsZWdlbmQ+IGFtb25nIHRoZSBjaGlsZHJlbiBvZiB0aGUgZGlzYWJsZWQgPGZpZWxkc2V0PlxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgY2hpbGQgPSBwYXJlbnROb2RlLmNoaWxkcmVuLml0ZW0oaSk7XG4gICAgICAgICAgLy8gd2hlbiB0aGUgZmlyc3QgPGxlZ2VuZD4gKGluIGRvY3VtZW50IG9yZGVyKSBpcyBmb3VuZFxuICAgICAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnTEVHRU5EJykge1xuICAgICAgICAgICAgLy8gaWYgaXRzIHBhcmVudCA8ZmllbGRzZXQ+IGlzIG5vdCBuZXN0ZWQgaW4gYW5vdGhlciBkaXNhYmxlZCA8ZmllbGRzZXQ+LFxuICAgICAgICAgICAgLy8gcmV0dXJuIHdoZXRoZXIgYG5vZGVgIGlzIGEgZGVzY2VuZGFudCBvZiBpdHMgZmlyc3QgPGxlZ2VuZD5cbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzLmNhbGwocGFyZW50Tm9kZSwgJ2ZpZWxkc2V0W2Rpc2FibGVkXSAqJykgPyB0cnVlIDogIWNoaWxkLmNvbnRhaW5zKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyB0aGUgZGlzYWJsZWQgPGZpZWxkc2V0PiBjb250YWluaW5nIGBub2RlYCBoYXMgbm8gPGxlZ2VuZD5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIGVsc2UsIG5vZGUncyB0YWJiYWJsZS9mb2N1c2FibGUgc3RhdGUgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSBhIGZpZWxkc2V0J3NcbiAgLy8gIGVuYWJsZWQvZGlzYWJsZWQgc3RhdGVcbiAgcmV0dXJuIGZhbHNlO1xufTtcbnZhciBpc05vZGVNYXRjaGluZ1NlbGVjdG9yRm9jdXNhYmxlID0gZnVuY3Rpb24gaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZShvcHRpb25zLCBub2RlKSB7XG4gIGlmIChub2RlLmRpc2FibGVkIHx8XG4gIC8vIHdlIG11c3QgZG8gYW4gaW5lcnQgbG9vayB1cCB0byBmaWx0ZXIgb3V0IGFueSBlbGVtZW50cyBpbnNpZGUgYW4gaW5lcnQgYW5jZXN0b3JcbiAgLy8gIGJlY2F1c2Ugd2UncmUgbGltaXRlZCBpbiB0aGUgdHlwZSBvZiBzZWxlY3RvcnMgd2UgY2FuIHVzZSBpbiBKU0RvbSAoc2VlIHJlbGF0ZWRcbiAgLy8gIG5vdGUgcmVsYXRlZCB0byBgY2FuZGlkYXRlU2VsZWN0b3JzYClcbiAgaXNJbmVydChub2RlKSB8fCBpc0hpZGRlbklucHV0KG5vZGUpIHx8IGlzSGlkZGVuKG5vZGUsIG9wdGlvbnMpIHx8XG4gIC8vIEZvciBhIGRldGFpbHMgZWxlbWVudCB3aXRoIGEgc3VtbWFyeSwgdGhlIHN1bW1hcnkgZWxlbWVudCBnZXRzIHRoZSBmb2N1c1xuICBpc0RldGFpbHNXaXRoU3VtbWFyeShub2RlKSB8fCBpc0Rpc2FibGVkRnJvbUZpZWxkc2V0KG5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBpc05vZGVNYXRjaGluZ1NlbGVjdG9yVGFiYmFibGUgPSBmdW5jdGlvbiBpc05vZGVNYXRjaGluZ1NlbGVjdG9yVGFiYmFibGUob3B0aW9ucywgbm9kZSkge1xuICBpZiAoaXNOb25UYWJiYWJsZVJhZGlvKG5vZGUpIHx8IGdldFRhYkluZGV4KG5vZGUpIDwgMCB8fCAhaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZShvcHRpb25zLCBub2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn07XG52YXIgaXNWYWxpZFNoYWRvd1Jvb3RUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzVmFsaWRTaGFkb3dSb290VGFiYmFibGUoc2hhZG93SG9zdE5vZGUpIHtcbiAgdmFyIHRhYkluZGV4ID0gcGFyc2VJbnQoc2hhZG93SG9zdE5vZGUuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpLCAxMCk7XG4gIGlmIChpc05hTih0YWJJbmRleCkgfHwgdGFiSW5kZXggPj0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIElmIGEgY3VzdG9tIGVsZW1lbnQgaGFzIGFuIGV4cGxpY2l0IG5lZ2F0aXZlIHRhYmluZGV4LFxuICAvLyBicm93c2VycyB3aWxsIG5vdCBhbGxvdyB0YWIgdGFyZ2V0aW5nIHNhaWQgZWxlbWVudCdzIGNoaWxkcmVuLlxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7QXJyYXkuPEVsZW1lbnR8Q2FuZGlkYXRlU2NvcGU+fSBjYW5kaWRhdGVzXG4gKiBAcmV0dXJucyBFbGVtZW50W11cbiAqL1xudmFyIHNvcnRCeU9yZGVyID0gZnVuY3Rpb24gc29ydEJ5T3JkZXIoY2FuZGlkYXRlcykge1xuICB2YXIgcmVndWxhclRhYmJhYmxlcyA9IFtdO1xuICB2YXIgb3JkZXJlZFRhYmJhYmxlcyA9IFtdO1xuICBjYW5kaWRhdGVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGkpIHtcbiAgICB2YXIgaXNTY29wZSA9ICEhaXRlbS5zY29wZVBhcmVudDtcbiAgICB2YXIgZWxlbWVudCA9IGlzU2NvcGUgPyBpdGVtLnNjb3BlUGFyZW50IDogaXRlbTtcbiAgICB2YXIgY2FuZGlkYXRlVGFiaW5kZXggPSBnZXRTb3J0T3JkZXJUYWJJbmRleChlbGVtZW50LCBpc1Njb3BlKTtcbiAgICB2YXIgZWxlbWVudHMgPSBpc1Njb3BlID8gc29ydEJ5T3JkZXIoaXRlbS5jYW5kaWRhdGVzKSA6IGVsZW1lbnQ7XG4gICAgaWYgKGNhbmRpZGF0ZVRhYmluZGV4ID09PSAwKSB7XG4gICAgICBpc1Njb3BlID8gcmVndWxhclRhYmJhYmxlcy5wdXNoLmFwcGx5KHJlZ3VsYXJUYWJiYWJsZXMsIGVsZW1lbnRzKSA6IHJlZ3VsYXJUYWJiYWJsZXMucHVzaChlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3JkZXJlZFRhYmJhYmxlcy5wdXNoKHtcbiAgICAgICAgZG9jdW1lbnRPcmRlcjogaSxcbiAgICAgICAgdGFiSW5kZXg6IGNhbmRpZGF0ZVRhYmluZGV4LFxuICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICBpc1Njb3BlOiBpc1Njb3BlLFxuICAgICAgICBjb250ZW50OiBlbGVtZW50c1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9yZGVyZWRUYWJiYWJsZXMuc29ydChzb3J0T3JkZXJlZFRhYmJhYmxlcykucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHNvcnRhYmxlKSB7XG4gICAgc29ydGFibGUuaXNTY29wZSA/IGFjYy5wdXNoLmFwcGx5KGFjYywgc29ydGFibGUuY29udGVudCkgOiBhY2MucHVzaChzb3J0YWJsZS5jb250ZW50KTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCBbXSkuY29uY2F0KHJlZ3VsYXJUYWJiYWJsZXMpO1xufTtcbnZhciB0YWJiYWJsZSA9IGZ1bmN0aW9uIHRhYmJhYmxlKGNvbnRhaW5lciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGNhbmRpZGF0ZXM7XG4gIGlmIChvcHRpb25zLmdldFNoYWRvd1Jvb3QpIHtcbiAgICBjYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlc0l0ZXJhdGl2ZWx5KFtjb250YWluZXJdLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIHtcbiAgICAgIGZpbHRlcjogaXNOb2RlTWF0Y2hpbmdTZWxlY3RvclRhYmJhYmxlLmJpbmQobnVsbCwgb3B0aW9ucyksXG4gICAgICBmbGF0dGVuOiBmYWxzZSxcbiAgICAgIGdldFNoYWRvd1Jvb3Q6IG9wdGlvbnMuZ2V0U2hhZG93Um9vdCxcbiAgICAgIHNoYWRvd1Jvb3RGaWx0ZXI6IGlzVmFsaWRTaGFkb3dSb290VGFiYmFibGVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlcyhjb250YWluZXIsIG9wdGlvbnMuaW5jbHVkZUNvbnRhaW5lciwgaXNOb2RlTWF0Y2hpbmdTZWxlY3RvclRhYmJhYmxlLmJpbmQobnVsbCwgb3B0aW9ucykpO1xuICB9XG4gIHJldHVybiBzb3J0QnlPcmRlcihjYW5kaWRhdGVzKTtcbn07XG52YXIgZm9jdXNhYmxlID0gZnVuY3Rpb24gZm9jdXNhYmxlKGNvbnRhaW5lciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGNhbmRpZGF0ZXM7XG4gIGlmIChvcHRpb25zLmdldFNoYWRvd1Jvb3QpIHtcbiAgICBjYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlc0l0ZXJhdGl2ZWx5KFtjb250YWluZXJdLCBvcHRpb25zLmluY2x1ZGVDb250YWluZXIsIHtcbiAgICAgIGZpbHRlcjogaXNOb2RlTWF0Y2hpbmdTZWxlY3RvckZvY3VzYWJsZS5iaW5kKG51bGwsIG9wdGlvbnMpLFxuICAgICAgZmxhdHRlbjogdHJ1ZSxcbiAgICAgIGdldFNoYWRvd1Jvb3Q6IG9wdGlvbnMuZ2V0U2hhZG93Um9vdFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNhbmRpZGF0ZXMgPSBnZXRDYW5kaWRhdGVzKGNvbnRhaW5lciwgb3B0aW9ucy5pbmNsdWRlQ29udGFpbmVyLCBpc05vZGVNYXRjaGluZ1NlbGVjdG9yRm9jdXNhYmxlLmJpbmQobnVsbCwgb3B0aW9ucykpO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGVzO1xufTtcbnZhciBpc1RhYmJhYmxlID0gZnVuY3Rpb24gaXNUYWJiYWJsZShub2RlLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBpZiAoIW5vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG5vZGUgcHJvdmlkZWQnKTtcbiAgfVxuICBpZiAobWF0Y2hlcy5jYWxsKG5vZGUsIGNhbmRpZGF0ZVNlbGVjdG9yKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JUYWJiYWJsZShvcHRpb25zLCBub2RlKTtcbn07XG52YXIgZm9jdXNhYmxlQ2FuZGlkYXRlU2VsZWN0b3IgPSAvKiAjX19QVVJFX18gKi9jYW5kaWRhdGVTZWxlY3RvcnMuY29uY2F0KCdpZnJhbWUnKS5qb2luKCcsJyk7XG52YXIgaXNGb2N1c2FibGUgPSBmdW5jdGlvbiBpc0ZvY3VzYWJsZShub2RlLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBpZiAoIW5vZGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG5vZGUgcHJvdmlkZWQnKTtcbiAgfVxuICBpZiAobWF0Y2hlcy5jYWxsKG5vZGUsIGZvY3VzYWJsZUNhbmRpZGF0ZVNlbGVjdG9yKSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGlzTm9kZU1hdGNoaW5nU2VsZWN0b3JGb2N1c2FibGUob3B0aW9ucywgbm9kZSk7XG59O1xuXG5leHBvcnQgeyBmb2N1c2FibGUsIGdldFRhYkluZGV4LCBpc0ZvY3VzYWJsZSwgaXNUYWJiYWJsZSwgdGFiYmFibGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IGNvbXB1dGVQb3NpdGlvbiwgYXJyb3cgYXMgYXJyb3ckMiwgb2Zmc2V0IGFzIG9mZnNldCQxLCBzaGlmdCBhcyBzaGlmdCQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgaGlkZSBhcyBoaWRlJDEsIGlubGluZSBhcyBpbmxpbmUkMSB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuZXhwb3J0IHsgYXV0b1VwZGF0ZSwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIHBsYXRmb3JtIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5cbnZhciBpbmRleCA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XG5cbi8vIEZvcmsgb2YgYGZhc3QtZGVlcC1lcXVhbGAgdGhhdCBvbmx5IGRvZXMgdGhlIGNvbXBhcmlzb25zIHdlIG5lZWQgYW5kIGNvbXBhcmVzXG4vLyBmdW5jdGlvbnNcbmZ1bmN0aW9uIGRlZXBFcXVhbChhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodHlwZW9mIGEgPT09ICdmdW5jdGlvbicgJiYgYS50b1N0cmluZygpID09PSBiLnRvU3RyaW5nKCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBsZXQgbGVuZ3RoO1xuICBsZXQgaTtcbiAgbGV0IGtleXM7XG4gIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICAgIGxlbmd0aCA9IGEubGVuZ3RoO1xuICAgICAgaWYgKGxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgICBpZiAoIWRlZXBFcXVhbChhW2ldLCBiW2ldKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICBpZiAobGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICBpZiAoIXt9Lmhhc093blByb3BlcnR5LmNhbGwoYiwga2V5c1tpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICBpZiAoa2V5ID09PSAnX293bmVyJyAmJiBhLiQkdHlwZW9mKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFkZWVwRXF1YWwoYVtrZXldLCBiW2tleV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGEgIT09IGEgJiYgYiAhPT0gYjtcbn1cblxuZnVuY3Rpb24gZ2V0RFBSKGVsZW1lbnQpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgY29uc3Qgd2luID0gZWxlbWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbiAgcmV0dXJuIHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG59XG5cbmZ1bmN0aW9uIHJvdW5kQnlEUFIoZWxlbWVudCwgdmFsdWUpIHtcbiAgY29uc3QgZHByID0gZ2V0RFBSKGVsZW1lbnQpO1xuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGRwcikgLyBkcHI7XG59XG5cbmZ1bmN0aW9uIHVzZUxhdGVzdFJlZih2YWx1ZSkge1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYodmFsdWUpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfSk7XG4gIHJldHVybiByZWY7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhIGZsb2F0aW5nIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlRmxvYXRpbmdcbiAqL1xuZnVuY3Rpb24gdXNlRmxvYXRpbmcob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICByZWZlcmVuY2U6IGV4dGVybmFsUmVmZXJlbmNlLFxuICAgICAgZmxvYXRpbmc6IGV4dGVybmFsRmxvYXRpbmdcbiAgICB9ID0ge30sXG4gICAgdHJhbnNmb3JtID0gdHJ1ZSxcbiAgICB3aGlsZUVsZW1lbnRzTW91bnRlZCxcbiAgICBvcGVuXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIHN0cmF0ZWd5LFxuICAgIHBsYWNlbWVudCxcbiAgICBtaWRkbGV3YXJlRGF0YToge30sXG4gICAgaXNQb3NpdGlvbmVkOiBmYWxzZVxuICB9KTtcbiAgY29uc3QgW2xhdGVzdE1pZGRsZXdhcmUsIHNldExhdGVzdE1pZGRsZXdhcmVdID0gUmVhY3QudXNlU3RhdGUobWlkZGxld2FyZSk7XG4gIGlmICghZGVlcEVxdWFsKGxhdGVzdE1pZGRsZXdhcmUsIG1pZGRsZXdhcmUpKSB7XG4gICAgc2V0TGF0ZXN0TWlkZGxld2FyZShtaWRkbGV3YXJlKTtcbiAgfVxuICBjb25zdCBbX3JlZmVyZW5jZSwgX3NldFJlZmVyZW5jZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW19mbG9hdGluZywgX3NldEZsb2F0aW5nXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBzZXRSZWZlcmVuY2UgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBpZiAobm9kZSAhPT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIF9zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgfVxuICB9LCBbXSk7XG4gIGNvbnN0IHNldEZsb2F0aW5nID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgaWYgKG5vZGUgIT09IGZsb2F0aW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgX3NldEZsb2F0aW5nKG5vZGUpO1xuICAgIH1cbiAgfSwgW10pO1xuICBjb25zdCByZWZlcmVuY2VFbCA9IGV4dGVybmFsUmVmZXJlbmNlIHx8IF9yZWZlcmVuY2U7XG4gIGNvbnN0IGZsb2F0aW5nRWwgPSBleHRlcm5hbEZsb2F0aW5nIHx8IF9mbG9hdGluZztcbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBmbG9hdGluZ1JlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgZGF0YVJlZiA9IFJlYWN0LnVzZVJlZihkYXRhKTtcbiAgY29uc3QgaGFzV2hpbGVFbGVtZW50c01vdW50ZWQgPSB3aGlsZUVsZW1lbnRzTW91bnRlZCAhPSBudWxsO1xuICBjb25zdCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZiA9IHVzZUxhdGVzdFJlZih3aGlsZUVsZW1lbnRzTW91bnRlZCk7XG4gIGNvbnN0IHBsYXRmb3JtUmVmID0gdXNlTGF0ZXN0UmVmKHBsYXRmb3JtKTtcbiAgY29uc3Qgb3BlblJlZiA9IHVzZUxhdGVzdFJlZihvcGVuKTtcbiAgY29uc3QgdXBkYXRlID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghcmVmZXJlbmNlUmVmLmN1cnJlbnQgfHwgIWZsb2F0aW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgcGxhY2VtZW50LFxuICAgICAgc3RyYXRlZ3ksXG4gICAgICBtaWRkbGV3YXJlOiBsYXRlc3RNaWRkbGV3YXJlXG4gICAgfTtcbiAgICBpZiAocGxhdGZvcm1SZWYuY3VycmVudCkge1xuICAgICAgY29uZmlnLnBsYXRmb3JtID0gcGxhdGZvcm1SZWYuY3VycmVudDtcbiAgICB9XG4gICAgY29tcHV0ZVBvc2l0aW9uKHJlZmVyZW5jZVJlZi5jdXJyZW50LCBmbG9hdGluZ1JlZi5jdXJyZW50LCBjb25maWcpLnRoZW4oZGF0YSA9PiB7XG4gICAgICBjb25zdCBmdWxsRGF0YSA9IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLy8gVGhlIGZsb2F0aW5nIGVsZW1lbnQncyBwb3NpdGlvbiBtYXkgYmUgcmVjb21wdXRlZCB3aGlsZSBpdCdzIGNsb3NlZFxuICAgICAgICAvLyBidXQgc3RpbGwgbW91bnRlZCAoc3VjaCBhcyB3aGVuIHRyYW5zaXRpb25pbmcgb3V0KS4gVG8gZW5zdXJlXG4gICAgICAgIC8vIGBpc1Bvc2l0aW9uZWRgIHdpbGwgYmUgYGZhbHNlYCBpbml0aWFsbHkgb24gdGhlIG5leHQgb3BlbiwgYXZvaWRcbiAgICAgICAgLy8gc2V0dGluZyBpdCB0byBgdHJ1ZWAgd2hlbiBgb3BlbiA9PT0gZmFsc2VgIChtdXN0IGJlIHNwZWNpZmllZCkuXG4gICAgICAgIGlzUG9zaXRpb25lZDogb3BlblJlZi5jdXJyZW50ICE9PSBmYWxzZVxuICAgICAgfTtcbiAgICAgIGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiAhZGVlcEVxdWFsKGRhdGFSZWYuY3VycmVudCwgZnVsbERhdGEpKSB7XG4gICAgICAgIGRhdGFSZWYuY3VycmVudCA9IGZ1bGxEYXRhO1xuICAgICAgICBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4ge1xuICAgICAgICAgIHNldERhdGEoZnVsbERhdGEpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2xhdGVzdE1pZGRsZXdhcmUsIHBsYWNlbWVudCwgc3RyYXRlZ3ksIHBsYXRmb3JtUmVmLCBvcGVuUmVmXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAob3BlbiA9PT0gZmFsc2UgJiYgZGF0YVJlZi5jdXJyZW50LmlzUG9zaXRpb25lZCkge1xuICAgICAgZGF0YVJlZi5jdXJyZW50LmlzUG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgc2V0RGF0YShkYXRhID0+ICh7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIGlzUG9zaXRpb25lZDogZmFsc2VcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0sIFtvcGVuXSk7XG4gIGNvbnN0IGlzTW91bnRlZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW10pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKHJlZmVyZW5jZUVsKSByZWZlcmVuY2VSZWYuY3VycmVudCA9IHJlZmVyZW5jZUVsO1xuICAgIGlmIChmbG9hdGluZ0VsKSBmbG9hdGluZ1JlZi5jdXJyZW50ID0gZmxvYXRpbmdFbDtcbiAgICBpZiAocmVmZXJlbmNlRWwgJiYgZmxvYXRpbmdFbCkge1xuICAgICAgaWYgKHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLmN1cnJlbnQocmVmZXJlbmNlRWwsIGZsb2F0aW5nRWwsIHVwZGF0ZSk7XG4gICAgICB9XG4gICAgICB1cGRhdGUoKTtcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbCwgdXBkYXRlLCB3aGlsZUVsZW1lbnRzTW91bnRlZFJlZiwgaGFzV2hpbGVFbGVtZW50c01vdW50ZWRdKTtcbiAgY29uc3QgcmVmcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICByZWZlcmVuY2U6IHJlZmVyZW5jZVJlZixcbiAgICBmbG9hdGluZzogZmxvYXRpbmdSZWYsXG4gICAgc2V0UmVmZXJlbmNlLFxuICAgIHNldEZsb2F0aW5nXG4gIH0pLCBbc2V0UmVmZXJlbmNlLCBzZXRGbG9hdGluZ10pO1xuICBjb25zdCBlbGVtZW50cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICByZWZlcmVuY2U6IHJlZmVyZW5jZUVsLFxuICAgIGZsb2F0aW5nOiBmbG9hdGluZ0VsXG4gIH0pLCBbcmVmZXJlbmNlRWwsIGZsb2F0aW5nRWxdKTtcbiAgY29uc3QgZmxvYXRpbmdTdHlsZXMgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsU3R5bGVzID0ge1xuICAgICAgcG9zaXRpb246IHN0cmF0ZWd5LFxuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMFxuICAgIH07XG4gICAgaWYgKCFlbGVtZW50cy5mbG9hdGluZykge1xuICAgICAgcmV0dXJuIGluaXRpYWxTdHlsZXM7XG4gICAgfVxuICAgIGNvbnN0IHggPSByb3VuZEJ5RFBSKGVsZW1lbnRzLmZsb2F0aW5nLCBkYXRhLngpO1xuICAgIGNvbnN0IHkgPSByb3VuZEJ5RFBSKGVsZW1lbnRzLmZsb2F0aW5nLCBkYXRhLnkpO1xuICAgIGlmICh0cmFuc2Zvcm0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmluaXRpYWxTdHlsZXMsXG4gICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoXCIgKyB4ICsgXCJweCwgXCIgKyB5ICsgXCJweClcIixcbiAgICAgICAgLi4uKGdldERQUihlbGVtZW50cy5mbG9hdGluZykgPj0gMS41ICYmIHtcbiAgICAgICAgICB3aWxsQ2hhbmdlOiAndHJhbnNmb3JtJ1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiBzdHJhdGVneSxcbiAgICAgIGxlZnQ6IHgsXG4gICAgICB0b3A6IHlcbiAgICB9O1xuICB9LCBbc3RyYXRlZ3ksIHRyYW5zZm9ybSwgZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueCwgZGF0YS55XSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgLi4uZGF0YSxcbiAgICB1cGRhdGUsXG4gICAgcmVmcyxcbiAgICBlbGVtZW50cyxcbiAgICBmbG9hdGluZ1N0eWxlc1xuICB9KSwgW2RhdGEsIHVwZGF0ZSwgcmVmcywgZWxlbWVudHMsIGZsb2F0aW5nU3R5bGVzXSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogVGhpcyB3cmFwcyB0aGUgY29yZSBgYXJyb3dgIG1pZGRsZXdhcmUgdG8gYWxsb3cgUmVhY3QgcmVmcyBhcyB0aGUgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvd1xuICovXG5jb25zdCBhcnJvdyQxID0gb3B0aW9ucyA9PiB7XG4gIGZ1bmN0aW9uIGlzUmVmKHZhbHVlKSB7XG4gICAgcmV0dXJuIHt9Lmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjdXJyZW50Jyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnYXJyb3cnLFxuICAgIG9wdGlvbnMsXG4gICAgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgcGFkZGluZ1xuICAgICAgfSA9IHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nID8gb3B0aW9ucyhzdGF0ZSkgOiBvcHRpb25zO1xuICAgICAgaWYgKGVsZW1lbnQgJiYgaXNSZWYoZWxlbWVudCkpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuY3VycmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGFycm93JDIoe1xuICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudC5jdXJyZW50LFxuICAgICAgICAgICAgcGFkZGluZ1xuICAgICAgICAgIH0pLmZuKHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gYXJyb3ckMih7XG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICBwYWRkaW5nXG4gICAgICAgIH0pLmZuKHN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwbGFjZW1lbnQgYnkgdHJhbnNsYXRpbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYWxvbmcgdGhlXG4gKiBzcGVjaWZpZWQgYXhlcy5cbiAqIEEgbnVtYmVyIChzaG9ydGhhbmQgZm9yIGBtYWluQXhpc2Agb3IgZGlzdGFuY2UpLCBvciBhbiBheGVzIGNvbmZpZ3VyYXRpb25cbiAqIG9iamVjdCBtYXkgYmUgcGFzc2VkLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL29mZnNldFxuICovXG5jb25zdCBvZmZzZXQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4ub2Zmc2V0JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IHNoaWZ0aW5nIGl0IGluIG9yZGVyIHRvXG4gKiBrZWVwIGl0IGluIHZpZXcgd2hlbiBpdCB3aWxsIG92ZXJmbG93IHRoZSBjbGlwcGluZyBib3VuZGFyeS5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaGlmdFxuICovXG5jb25zdCBzaGlmdCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5zaGlmdCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIEJ1aWx0LWluIGBsaW1pdGVyYCB0aGF0IHdpbGwgc3RvcCBgc2hpZnQoKWAgYXQgYSBjZXJ0YWluIHBvaW50LlxuICovXG5jb25zdCBsaW1pdFNoaWZ0ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmxpbWl0U2hpZnQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgZmxpcHBpbmcgdGhlIGBwbGFjZW1lbnRgXG4gKiBpbiBvcmRlciB0byBrZWVwIGl0IGluIHZpZXcgd2hlbiB0aGUgcHJlZmVycmVkIHBsYWNlbWVudChzKSB3aWxsIG92ZXJmbG93IHRoZVxuICogY2xpcHBpbmcgYm91bmRhcnkuIEFsdGVybmF0aXZlIHRvIGBhdXRvUGxhY2VtZW50YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9mbGlwXG4gKi9cbmNvbnN0IGZsaXAgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uZmxpcCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdGhhdCBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCDigJRcbiAqIGZvciBpbnN0YW5jZSwgcHJldmVudCBpdCBmcm9tIG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyBib3VuZGFyeSBvciBtYXRjaCB0aGVcbiAqIHdpZHRoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9zaXplXG4gKi9cbmNvbnN0IHNpemUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uc2l6ZSQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBjaG9vc2luZyB0aGUgcGxhY2VtZW50XG4gKiB0aGF0IGhhcyB0aGUgbW9zdCBzcGFjZSBhdmFpbGFibGUgYXV0b21hdGljYWxseSwgd2l0aG91dCBuZWVkaW5nIHRvIHNwZWNpZnkgYVxuICogcHJlZmVycmVkIHBsYWNlbWVudC4gQWx0ZXJuYXRpdmUgdG8gYGZsaXBgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2F1dG9QbGFjZW1lbnRcbiAqL1xuY29uc3QgYXV0b1BsYWNlbWVudCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5hdXRvUGxhY2VtZW50JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmhpZGUkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbXByb3ZlZCBwb3NpdGlvbmluZyBmb3IgaW5saW5lIHJlZmVyZW5jZSBlbGVtZW50cyB0aGF0IGNhbiBzcGFuXG4gKiBvdmVyIG11bHRpcGxlIGxpbmVzLCBzdWNoIGFzIGh5cGVybGlua3Mgb3IgcmFuZ2Ugc2VsZWN0aW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9pbmxpbmVcbiAqL1xuY29uc3QgaW5saW5lID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmlubGluZSQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gcG9zaXRpb24gYW4gaW5uZXIgZWxlbWVudCBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBzbyB0aGF0IGl0XG4gKiBhcHBlYXJzIGNlbnRlcmVkIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIFRoaXMgd3JhcHMgdGhlIGNvcmUgYGFycm93YCBtaWRkbGV3YXJlIHRvIGFsbG93IFJlYWN0IHJlZnMgYXMgdGhlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uYXJyb3ckMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSwgdXNlRmxvYXRpbmcgfTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzdG9wRXZlbnQsIGdldERvY3VtZW50LCBpc01vdXNlTGlrZVBvaW50ZXJUeXBlLCBjb250YWlucywgYWN0aXZlRWxlbWVudCwgaXNTYWZhcmksIGlzVHlwZWFibGVDb21ib2JveCwgaXNWaXJ0dWFsQ2xpY2ssIGlzVmlydHVhbFBvaW50ZXJFdmVudCwgZ2V0VGFyZ2V0LCBnZXRQbGF0Zm9ybSwgaXNUeXBlYWJsZUVsZW1lbnQsIGlzUmVhY3RFdmVudCwgaXNSb290RWxlbWVudCwgaXNFdmVudFRhcmdldFdpdGhpbiwgaXNNYWMsIGdldFVzZXJBZ2VudCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdC91dGlscyc7XG5pbXBvcnQgeyBmbG9vciwgZXZhbHVhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0Q29tcHV0ZWRTdHlsZSwgaXNFbGVtZW50LCBnZXROb2RlTmFtZSwgaXNIVE1MRWxlbWVudCwgZ2V0V2luZG93LCBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUsIGdldFBhcmVudE5vZGUgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcbmltcG9ydCB7IHRhYmJhYmxlLCBpc1RhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGdldE92ZXJmbG93QW5jZXN0b3JzLCB1c2VGbG9hdGluZyBhcyB1c2VGbG9hdGluZyQxLCBvZmZzZXQsIGRldGVjdE92ZXJmbG93IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgYXV0b1VwZGF0ZSwgY29tcHV0ZVBvc2l0aW9uLCBkZXRlY3RPdmVyZmxvdywgZmxpcCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcblxuLyoqXG4gKiBNZXJnZXMgYW4gYXJyYXkgb2YgcmVmcyBpbnRvIGEgc2luZ2xlIG1lbW9pemVkIGNhbGxiYWNrIHJlZiBvciBgbnVsbGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvcmVhY3QtdXRpbHMjdXNlbWVyZ2VyZWZzXG4gKi9cbmZ1bmN0aW9uIHVzZU1lcmdlUmVmcyhyZWZzKSB7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocmVmcy5ldmVyeShyZWYgPT4gcmVmID09IG51bGwpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID0+IHtcbiAgICAgIHJlZnMuZm9yRWFjaChyZWYgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJlZih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVmICE9IG51bGwpIHtcbiAgICAgICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgcmVmcyk7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tdWkvbWF0ZXJpYWwtdWkvaXNzdWVzLzQxMTkwI2lzc3VlY29tbWVudC0yMDQwODczMzc5XG5jb25zdCBTYWZlUmVhY3QgPSB7XG4gIC4uLlJlYWN0XG59O1xuXG5jb25zdCB1c2VJbnNlcnRpb25FZmZlY3QgPSBTYWZlUmVhY3QudXNlSW5zZXJ0aW9uRWZmZWN0O1xuY29uc3QgdXNlU2FmZUluc2VydGlvbkVmZmVjdCA9IHVzZUluc2VydGlvbkVmZmVjdCB8fCAoZm4gPT4gZm4oKSk7XG5mdW5jdGlvbiB1c2VFZmZlY3RFdmVudChjYWxsYmFjaykge1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYoKCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNhbGwgYW4gZXZlbnQgaGFuZGxlciB3aGlsZSByZW5kZXJpbmcuJyk7XG4gICAgfVxuICB9KTtcbiAgdXNlU2FmZUluc2VydGlvbkVmZmVjdCgoKSA9PiB7XG4gICAgcmVmLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgfSk7XG4gIHJldHVybiBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHJlZi5jdXJyZW50KC4uLmFyZ3MpO1xuICB9LCBbXSk7XG59XG5cbmNvbnN0IEFSUk9XX1VQID0gJ0Fycm93VXAnO1xuY29uc3QgQVJST1dfRE9XTiA9ICdBcnJvd0Rvd24nO1xuY29uc3QgQVJST1dfTEVGVCA9ICdBcnJvd0xlZnQnO1xuY29uc3QgQVJST1dfUklHSFQgPSAnQXJyb3dSaWdodCc7XG5mdW5jdGlvbiBpc0RpZmZlcmVudFJvdyhpbmRleCwgY29scywgcHJldlJvdykge1xuICByZXR1cm4gTWF0aC5mbG9vcihpbmRleCAvIGNvbHMpICE9PSBwcmV2Um93O1xufVxuZnVuY3Rpb24gaXNJbmRleE91dE9mQm91bmRzKGxpc3RSZWYsIGluZGV4KSB7XG4gIHJldHVybiBpbmRleCA8IDAgfHwgaW5kZXggPj0gbGlzdFJlZi5jdXJyZW50Lmxlbmd0aDtcbn1cbmZ1bmN0aW9uIGdldE1pbkluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlcykge1xuICByZXR1cm4gZmluZE5vbkRpc2FibGVkSW5kZXgobGlzdFJlZiwge1xuICAgIGRpc2FibGVkSW5kaWNlc1xuICB9KTtcbn1cbmZ1bmN0aW9uIGdldE1heEluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlcykge1xuICByZXR1cm4gZmluZE5vbkRpc2FibGVkSW5kZXgobGlzdFJlZiwge1xuICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICBzdGFydGluZ0luZGV4OiBsaXN0UmVmLmN1cnJlbnQubGVuZ3RoLFxuICAgIGRpc2FibGVkSW5kaWNlc1xuICB9KTtcbn1cbmZ1bmN0aW9uIGZpbmROb25EaXNhYmxlZEluZGV4KGxpc3RSZWYsIF90ZW1wKSB7XG4gIGxldCB7XG4gICAgc3RhcnRpbmdJbmRleCA9IC0xLFxuICAgIGRlY3JlbWVudCA9IGZhbHNlLFxuICAgIGRpc2FibGVkSW5kaWNlcyxcbiAgICBhbW91bnQgPSAxXG4gIH0gPSBfdGVtcCA9PT0gdm9pZCAwID8ge30gOiBfdGVtcDtcbiAgY29uc3QgbGlzdCA9IGxpc3RSZWYuY3VycmVudDtcbiAgbGV0IGluZGV4ID0gc3RhcnRpbmdJbmRleDtcbiAgZG8ge1xuICAgIGluZGV4ICs9IGRlY3JlbWVudCA/IC1hbW91bnQgOiBhbW91bnQ7XG4gIH0gd2hpbGUgKGluZGV4ID49IDAgJiYgaW5kZXggPD0gbGlzdC5sZW5ndGggLSAxICYmIGlzRGlzYWJsZWQobGlzdCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykpO1xuICByZXR1cm4gaW5kZXg7XG59XG5mdW5jdGlvbiBnZXRHcmlkTmF2aWdhdGVkSW5kZXgoZWxlbWVudHNSZWYsIF9yZWYpIHtcbiAgbGV0IHtcbiAgICBldmVudCxcbiAgICBvcmllbnRhdGlvbixcbiAgICBsb29wLFxuICAgIGNvbHMsXG4gICAgZGlzYWJsZWRJbmRpY2VzLFxuICAgIG1pbkluZGV4LFxuICAgIG1heEluZGV4LFxuICAgIHByZXZJbmRleCxcbiAgICBzdG9wRXZlbnQ6IHN0b3AgPSBmYWxzZVxuICB9ID0gX3JlZjtcbiAgbGV0IG5leHRJbmRleCA9IHByZXZJbmRleDtcbiAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfVVApIHtcbiAgICBzdG9wICYmIHN0b3BFdmVudChldmVudCk7XG4gICAgaWYgKHByZXZJbmRleCA9PT0gLTEpIHtcbiAgICAgIG5leHRJbmRleCA9IG1heEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICBzdGFydGluZ0luZGV4OiBuZXh0SW5kZXgsXG4gICAgICAgIGFtb3VudDogY29scyxcbiAgICAgICAgZGVjcmVtZW50OiB0cnVlLFxuICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgIH0pO1xuICAgICAgaWYgKGxvb3AgJiYgKHByZXZJbmRleCAtIGNvbHMgPCBtaW5JbmRleCB8fCBuZXh0SW5kZXggPCAwKSkge1xuICAgICAgICBjb25zdCBjb2wgPSBwcmV2SW5kZXggJSBjb2xzO1xuICAgICAgICBjb25zdCBtYXhDb2wgPSBtYXhJbmRleCAlIGNvbHM7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG1heEluZGV4IC0gKG1heENvbCAtIGNvbCk7XG4gICAgICAgIGlmIChtYXhDb2wgPT09IGNvbCkge1xuICAgICAgICAgIG5leHRJbmRleCA9IG1heEluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHRJbmRleCA9IG1heENvbCA+IGNvbCA/IG9mZnNldCA6IG9mZnNldCAtIGNvbHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzSW5kZXhPdXRPZkJvdW5kcyhlbGVtZW50c1JlZiwgbmV4dEluZGV4KSkge1xuICAgICAgbmV4dEluZGV4ID0gcHJldkluZGV4O1xuICAgIH1cbiAgfVxuICBpZiAoZXZlbnQua2V5ID09PSBBUlJPV19ET1dOKSB7XG4gICAgc3RvcCAmJiBzdG9wRXZlbnQoZXZlbnQpO1xuICAgIGlmIChwcmV2SW5kZXggPT09IC0xKSB7XG4gICAgICBuZXh0SW5kZXggPSBtaW5JbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgc3RhcnRpbmdJbmRleDogcHJldkluZGV4LFxuICAgICAgICBhbW91bnQ6IGNvbHMsXG4gICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgfSk7XG4gICAgICBpZiAobG9vcCAmJiBwcmV2SW5kZXggKyBjb2xzID4gbWF4SW5kZXgpIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXggJSBjb2xzIC0gY29scyxcbiAgICAgICAgICBhbW91bnQ6IGNvbHMsXG4gICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNJbmRleE91dE9mQm91bmRzKGVsZW1lbnRzUmVmLCBuZXh0SW5kZXgpKSB7XG4gICAgICBuZXh0SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtYWlucyBvbiB0aGUgc2FtZSByb3cvY29sdW1uLlxuICBpZiAob3JpZW50YXRpb24gPT09ICdib3RoJykge1xuICAgIGNvbnN0IHByZXZSb3cgPSBmbG9vcihwcmV2SW5kZXggLyBjb2xzKTtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBBUlJPV19SSUdIVCkge1xuICAgICAgc3RvcCAmJiBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgaWYgKHByZXZJbmRleCAlIGNvbHMgIT09IGNvbHMgLSAxKSB7XG4gICAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgc3RhcnRpbmdJbmRleDogcHJldkluZGV4LFxuICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGxvb3AgJiYgaXNEaWZmZXJlbnRSb3cobmV4dEluZGV4LCBjb2xzLCBwcmV2Um93KSkge1xuICAgICAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXggLSBwcmV2SW5kZXggJSBjb2xzIC0gMSxcbiAgICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGxvb3ApIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXggLSBwcmV2SW5kZXggJSBjb2xzIC0gMSxcbiAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNEaWZmZXJlbnRSb3cobmV4dEluZGV4LCBjb2xzLCBwcmV2Um93KSkge1xuICAgICAgICBuZXh0SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09IEFSUk9XX0xFRlQpIHtcbiAgICAgIHN0b3AgJiYgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgIGlmIChwcmV2SW5kZXggJSBjb2xzICE9PSAwKSB7XG4gICAgICAgIG5leHRJbmRleCA9IGZpbmROb25EaXNhYmxlZEluZGV4KGVsZW1lbnRzUmVmLCB7XG4gICAgICAgICAgc3RhcnRpbmdJbmRleDogcHJldkluZGV4LFxuICAgICAgICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChsb29wICYmIGlzRGlmZmVyZW50Um93KG5leHRJbmRleCwgY29scywgcHJldlJvdykpIHtcbiAgICAgICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgICAgc3RhcnRpbmdJbmRleDogcHJldkluZGV4ICsgKGNvbHMgLSBwcmV2SW5kZXggJSBjb2xzKSxcbiAgICAgICAgICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGxvb3ApIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZmluZE5vbkRpc2FibGVkSW5kZXgoZWxlbWVudHNSZWYsIHtcbiAgICAgICAgICBzdGFydGluZ0luZGV4OiBwcmV2SW5kZXggKyAoY29scyAtIHByZXZJbmRleCAlIGNvbHMpLFxuICAgICAgICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNEaWZmZXJlbnRSb3cobmV4dEluZGV4LCBjb2xzLCBwcmV2Um93KSkge1xuICAgICAgICBuZXh0SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGxhc3RSb3cgPSBmbG9vcihtYXhJbmRleCAvIGNvbHMpID09PSBwcmV2Um93O1xuICAgIGlmIChpc0luZGV4T3V0T2ZCb3VuZHMoZWxlbWVudHNSZWYsIG5leHRJbmRleCkpIHtcbiAgICAgIGlmIChsb29wICYmIGxhc3RSb3cpIHtcbiAgICAgICAgbmV4dEluZGV4ID0gZXZlbnQua2V5ID09PSBBUlJPV19MRUZUID8gbWF4SW5kZXggOiBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IHByZXZJbmRleCAtIHByZXZJbmRleCAlIGNvbHMgLSAxLFxuICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRJbmRleCA9IHByZXZJbmRleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHRJbmRleDtcbn1cblxuLyoqIEZvciBlYWNoIGNlbGwgaW5kZXgsIGdldHMgdGhlIGl0ZW0gaW5kZXggdGhhdCBvY2N1cGllcyB0aGF0IGNlbGwgKi9cbmZ1bmN0aW9uIGJ1aWxkQ2VsbE1hcChzaXplcywgY29scywgZGVuc2UpIHtcbiAgY29uc3QgY2VsbE1hcCA9IFtdO1xuICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gIHNpemVzLmZvckVhY2goKF9yZWYyLCBpbmRleCkgPT4ge1xuICAgIGxldCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodFxuICAgIH0gPSBfcmVmMjtcbiAgICBpZiAod2lkdGggPiBjb2xzKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIltGbG9hdGluZyBVSV06IEludmFsaWQgZ3JpZCAtIGl0ZW0gd2lkdGggYXQgaW5kZXggXCIgKyBpbmRleCArIFwiIGlzIGdyZWF0ZXIgdGhhbiBncmlkIGNvbHVtbnNcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBpdGVtUGxhY2VkID0gZmFsc2U7XG4gICAgaWYgKGRlbnNlKSB7XG4gICAgICBzdGFydEluZGV4ID0gMDtcbiAgICB9XG4gICAgd2hpbGUgKCFpdGVtUGxhY2VkKSB7XG4gICAgICBjb25zdCB0YXJnZXRDZWxscyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aDsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaGVpZ2h0OyBqKyspIHtcbiAgICAgICAgICB0YXJnZXRDZWxscy5wdXNoKHN0YXJ0SW5kZXggKyBpICsgaiAqIGNvbHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3RhcnRJbmRleCAlIGNvbHMgKyB3aWR0aCA8PSBjb2xzICYmIHRhcmdldENlbGxzLmV2ZXJ5KGNlbGwgPT4gY2VsbE1hcFtjZWxsXSA9PSBudWxsKSkge1xuICAgICAgICB0YXJnZXRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgIGNlbGxNYXBbY2VsbF0gPSBpbmRleDtcbiAgICAgICAgfSk7XG4gICAgICAgIGl0ZW1QbGFjZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRJbmRleCsrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gY29udmVydCBpbnRvIGEgbm9uLXNwYXJzZSBhcnJheVxuICByZXR1cm4gWy4uLmNlbGxNYXBdO1xufVxuXG4vKiogR2V0cyBjZWxsIGluZGV4IG9mIGFuIGl0ZW0ncyBjb3JuZXIgb3IgLTEgd2hlbiBpbmRleCBpcyAtMS4gKi9cbmZ1bmN0aW9uIGdldENlbGxJbmRleE9mQ29ybmVyKGluZGV4LCBzaXplcywgY2VsbE1hcCwgY29scywgY29ybmVyKSB7XG4gIGlmIChpbmRleCA9PT0gLTEpIHJldHVybiAtMTtcbiAgY29uc3QgZmlyc3RDZWxsSW5kZXggPSBjZWxsTWFwLmluZGV4T2YoaW5kZXgpO1xuICBjb25zdCBzaXplSXRlbSA9IHNpemVzW2luZGV4XTtcbiAgc3dpdGNoIChjb3JuZXIpIHtcbiAgICBjYXNlICd0bCc6XG4gICAgICByZXR1cm4gZmlyc3RDZWxsSW5kZXg7XG4gICAgY2FzZSAndHInOlxuICAgICAgaWYgKCFzaXplSXRlbSkge1xuICAgICAgICByZXR1cm4gZmlyc3RDZWxsSW5kZXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RDZWxsSW5kZXggKyBzaXplSXRlbS53aWR0aCAtIDE7XG4gICAgY2FzZSAnYmwnOlxuICAgICAgaWYgKCFzaXplSXRlbSkge1xuICAgICAgICByZXR1cm4gZmlyc3RDZWxsSW5kZXg7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3RDZWxsSW5kZXggKyAoc2l6ZUl0ZW0uaGVpZ2h0IC0gMSkgKiBjb2xzO1xuICAgIGNhc2UgJ2JyJzpcbiAgICAgIHJldHVybiBjZWxsTWFwLmxhc3RJbmRleE9mKGluZGV4KTtcbiAgfVxufVxuXG4vKiogR2V0cyBhbGwgY2VsbCBpbmRpY2VzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgc3BlY2lmaWVkIGluZGljZXMgKi9cbmZ1bmN0aW9uIGdldENlbGxJbmRpY2VzKGluZGljZXMsIGNlbGxNYXApIHtcbiAgcmV0dXJuIGNlbGxNYXAuZmxhdE1hcCgoaW5kZXgsIGNlbGxJbmRleCkgPT4gaW5kaWNlcy5pbmNsdWRlcyhpbmRleCkgPyBbY2VsbEluZGV4XSA6IFtdKTtcbn1cbmZ1bmN0aW9uIGlzRGlzYWJsZWQobGlzdCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykge1xuICBpZiAoZGlzYWJsZWRJbmRpY2VzKSB7XG4gICAgcmV0dXJuIGRpc2FibGVkSW5kaWNlcy5pbmNsdWRlcyhpbmRleCk7XG4gIH1cbiAgY29uc3QgZWxlbWVudCA9IGxpc3RbaW5kZXhdO1xuICByZXR1cm4gZWxlbWVudCA9PSBudWxsIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWRpc2FibGVkJykgPT09ICd0cnVlJztcbn1cblxubGV0IHJhZklkID0gMDtcbmZ1bmN0aW9uIGVucXVldWVGb2N1cyhlbCwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBwcmV2ZW50U2Nyb2xsID0gZmFsc2UsXG4gICAgY2FuY2VsUHJldmlvdXMgPSB0cnVlLFxuICAgIHN5bmMgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcbiAgY2FuY2VsUHJldmlvdXMgJiYgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICBjb25zdCBleGVjID0gKCkgPT4gZWwgPT0gbnVsbCA/IHZvaWQgMCA6IGVsLmZvY3VzKHtcbiAgICBwcmV2ZW50U2Nyb2xsXG4gIH0pO1xuICBpZiAoc3luYykge1xuICAgIGV4ZWMoKTtcbiAgfSBlbHNlIHtcbiAgICByYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShleGVjKTtcbiAgfVxufVxuXG52YXIgaW5kZXggPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0O1xuXG5mdW5jdGlvbiBzb3J0QnlEb2N1bWVudFBvc2l0aW9uKGEsIGIpIHtcbiAgY29uc3QgcG9zaXRpb24gPSBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpO1xuICBpZiAocG9zaXRpb24gJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyB8fCBwb3NpdGlvbiAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmIChwb3NpdGlvbiAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHx8IHBvc2l0aW9uICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUykge1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwO1xufVxuZnVuY3Rpb24gYXJlTWFwc0VxdWFsKG1hcDEsIG1hcDIpIHtcbiAgaWYgKG1hcDEuc2l6ZSAhPT0gbWFwMi5zaXplKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIG1hcDEuZW50cmllcygpKSB7XG4gICAgaWYgKHZhbHVlICE9PSBtYXAyLmdldChrZXkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuY29uc3QgRmxvYXRpbmdMaXN0Q29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgcmVnaXN0ZXI6ICgpID0+IHt9LFxuICB1bnJlZ2lzdGVyOiAoKSA9PiB7fSxcbiAgbWFwOiAvKiNfX1BVUkVfXyovbmV3IE1hcCgpLFxuICBlbGVtZW50c1JlZjoge1xuICAgIGN1cnJlbnQ6IFtdXG4gIH1cbn0pO1xuLyoqXG4gKiBQcm92aWRlcyBjb250ZXh0IGZvciBhIGxpc3Qgb2YgaXRlbXMgd2l0aGluIHRoZSBmbG9hdGluZyBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nTGlzdFxuICovXG5mdW5jdGlvbiBGbG9hdGluZ0xpc3QocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGVsZW1lbnRzUmVmLFxuICAgIGxhYmVsc1JlZlxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiBuZXcgTWFwKCkpO1xuICBjb25zdCByZWdpc3RlciA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIHNldE1hcChwcmV2TWFwID0+IG5ldyBNYXAocHJldk1hcCkuc2V0KG5vZGUsIG51bGwpKTtcbiAgfSwgW10pO1xuICBjb25zdCB1bnJlZ2lzdGVyID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgc2V0TWFwKHByZXZNYXAgPT4ge1xuICAgICAgY29uc3QgbWFwID0gbmV3IE1hcChwcmV2TWFwKTtcbiAgICAgIG1hcC5kZWxldGUobm9kZSk7XG4gICAgICByZXR1cm4gbWFwO1xuICAgIH0pO1xuICB9LCBbXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKG5ld01hcC5rZXlzKCkpLnNvcnQoc29ydEJ5RG9jdW1lbnRQb3NpdGlvbik7XG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIG5ld01hcC5zZXQobm9kZSwgaW5kZXgpO1xuICAgIH0pO1xuICAgIGlmICghYXJlTWFwc0VxdWFsKG1hcCwgbmV3TWFwKSkge1xuICAgICAgc2V0TWFwKG5ld01hcCk7XG4gICAgfVxuICB9LCBbbWFwXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGbG9hdGluZ0xpc3RDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVyLFxuICAgICAgdW5yZWdpc3RlcixcbiAgICAgIG1hcCxcbiAgICAgIGVsZW1lbnRzUmVmLFxuICAgICAgbGFiZWxzUmVmXG4gICAgfSksIFtyZWdpc3RlciwgdW5yZWdpc3RlciwgbWFwLCBlbGVtZW50c1JlZiwgbGFiZWxzUmVmXSlcbiAgfSwgY2hpbGRyZW4pO1xufVxuLyoqXG4gKiBVc2VkIHRvIHJlZ2lzdGVyIGEgbGlzdCBpdGVtIGFuZCBpdHMgaW5kZXggKERPTSBwb3NpdGlvbikgaW4gdGhlXG4gKiBgRmxvYXRpbmdMaXN0YC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ0xpc3QjdXNlbGlzdGl0ZW1cbiAqL1xuZnVuY3Rpb24gdXNlTGlzdEl0ZW0ocHJvcHMpIHtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBsYWJlbFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHtcbiAgICByZWdpc3RlcixcbiAgICB1bnJlZ2lzdGVyLFxuICAgIG1hcCxcbiAgICBlbGVtZW50c1JlZixcbiAgICBsYWJlbHNSZWZcbiAgfSA9IFJlYWN0LnVzZUNvbnRleHQoRmxvYXRpbmdMaXN0Q29udGV4dCk7XG4gIGNvbnN0IFtpbmRleCQxLCBzZXRJbmRleF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgY29tcG9uZW50UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBjb21wb25lbnRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgaWYgKGluZGV4JDEgIT09IG51bGwpIHtcbiAgICAgIGVsZW1lbnRzUmVmLmN1cnJlbnRbaW5kZXgkMV0gPSBub2RlO1xuICAgICAgaWYgKGxhYmVsc1JlZikge1xuICAgICAgICB2YXIgX25vZGUkdGV4dENvbnRlbnQ7XG4gICAgICAgIGNvbnN0IGlzTGFiZWxEZWZpbmVkID0gbGFiZWwgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgbGFiZWxzUmVmLmN1cnJlbnRbaW5kZXgkMV0gPSBpc0xhYmVsRGVmaW5lZCA/IGxhYmVsIDogKF9ub2RlJHRleHRDb250ZW50ID0gbm9kZSA9PSBudWxsID8gdm9pZCAwIDogbm9kZS50ZXh0Q29udGVudCkgIT0gbnVsbCA/IF9ub2RlJHRleHRDb250ZW50IDogbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbmRleCQxLCBlbGVtZW50c1JlZiwgbGFiZWxzUmVmLCBsYWJlbF0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbXBvbmVudFJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICByZWdpc3Rlcihub2RlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHVucmVnaXN0ZXIobm9kZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW3JlZ2lzdGVyLCB1bnJlZ2lzdGVyXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IGNvbXBvbmVudFJlZi5jdXJyZW50ID8gbWFwLmdldChjb21wb25lbnRSZWYuY3VycmVudCkgOiBudWxsO1xuICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICBzZXRJbmRleChpbmRleCk7XG4gICAgfVxuICB9LCBbbWFwXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgcmVmLFxuICAgIGluZGV4OiBpbmRleCQxID09IG51bGwgPyAtMSA6IGluZGV4JDFcbiAgfSksIFtpbmRleCQxLCByZWZdKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVySnN4KHJlbmRlciwgY29tcHV0ZWRQcm9wcykge1xuICBpZiAodHlwZW9mIHJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiByZW5kZXIoY29tcHV0ZWRQcm9wcyk7XG4gIH1cbiAgaWYgKHJlbmRlcikge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KHJlbmRlciwgY29tcHV0ZWRQcm9wcyk7XG4gIH1cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIGNvbXB1dGVkUHJvcHMpO1xufVxuY29uc3QgQ29tcG9zaXRlQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgYWN0aXZlSW5kZXg6IDAsXG4gIG9uTmF2aWdhdGU6ICgpID0+IHt9XG59KTtcbmNvbnN0IGhvcml6b250YWxLZXlzID0gW0FSUk9XX0xFRlQsIEFSUk9XX1JJR0hUXTtcbmNvbnN0IHZlcnRpY2FsS2V5cyA9IFtBUlJPV19VUCwgQVJST1dfRE9XTl07XG5jb25zdCBhbGxLZXlzID0gWy4uLmhvcml6b250YWxLZXlzLCAuLi52ZXJ0aWNhbEtleXNdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzaW5nbGUgdGFiIHN0b3Agd2hvc2UgaXRlbXMgYXJlIG5hdmlnYXRlZCBieSBhcnJvdyBrZXlzLCB3aGljaFxuICogcHJvdmlkZXMgbGlzdCBuYXZpZ2F0aW9uIG91dHNpZGUgb2YgZmxvYXRpbmcgZWxlbWVudCBjb250ZXh0cy5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCB0byBlbmFibGUgbmF2aWdhdGlvbiBvZiBhIGxpc3Qgb2YgaXRlbXMgdGhhdCBhcmVu4oCZdCBwYXJ0IG9mIGFcbiAqIGZsb2F0aW5nIGVsZW1lbnQuIEEgbWVudWJhciBpcyBhbiBleGFtcGxlIG9mIGEgY29tcG9zaXRlLCB3aXRoIGVhY2ggcmVmZXJlbmNlXG4gKiBlbGVtZW50IGJlaW5nIGFuIGl0ZW0uXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvQ29tcG9zaXRlXG4gKi9cbmNvbnN0IENvbXBvc2l0ZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIENvbXBvc2l0ZShwcm9wcywgZm9yd2FyZGVkUmVmKSB7XG4gIGNvbnN0IHtcbiAgICByZW5kZXIsXG4gICAgb3JpZW50YXRpb24gPSAnYm90aCcsXG4gICAgbG9vcCA9IHRydWUsXG4gICAgY29scyA9IDEsXG4gICAgZGlzYWJsZWRJbmRpY2VzLFxuICAgIGFjdGl2ZUluZGV4OiBleHRlcm5hbEFjdGl2ZUluZGV4LFxuICAgIG9uTmF2aWdhdGU6IGV4dGVybmFsU2V0QWN0aXZlSW5kZXgsXG4gICAgaXRlbVNpemVzLFxuICAgIGRlbnNlID0gZmFsc2UsXG4gICAgLi4uZG9tUHJvcHNcbiAgfSA9IHByb3BzO1xuICBjb25zdCBbaW50ZXJuYWxBY3RpdmVJbmRleCwgaW50ZXJuYWxTZXRBY3RpdmVJbmRleF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgY29uc3QgYWN0aXZlSW5kZXggPSBleHRlcm5hbEFjdGl2ZUluZGV4ICE9IG51bGwgPyBleHRlcm5hbEFjdGl2ZUluZGV4IDogaW50ZXJuYWxBY3RpdmVJbmRleDtcbiAgY29uc3Qgb25OYXZpZ2F0ZSA9IHVzZUVmZmVjdEV2ZW50KGV4dGVybmFsU2V0QWN0aXZlSW5kZXggIT0gbnVsbCA/IGV4dGVybmFsU2V0QWN0aXZlSW5kZXggOiBpbnRlcm5hbFNldEFjdGl2ZUluZGV4KTtcbiAgY29uc3QgZWxlbWVudHNSZWYgPSBSZWFjdC51c2VSZWYoW10pO1xuICBjb25zdCByZW5kZXJFbGVtZW50UHJvcHMgPSByZW5kZXIgJiYgdHlwZW9mIHJlbmRlciAhPT0gJ2Z1bmN0aW9uJyA/IHJlbmRlci5wcm9wcyA6IHt9O1xuICBjb25zdCBjb250ZXh0VmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgYWN0aXZlSW5kZXgsXG4gICAgb25OYXZpZ2F0ZVxuICB9KSwgW2FjdGl2ZUluZGV4LCBvbk5hdmlnYXRlXSk7XG4gIGNvbnN0IGlzR3JpZCA9IGNvbHMgPiAxO1xuICBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKCFhbGxLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHJldHVybjtcbiAgICBsZXQgbmV4dEluZGV4ID0gYWN0aXZlSW5kZXg7XG4gICAgY29uc3QgbWluSW5kZXggPSBnZXRNaW5JbmRleChlbGVtZW50c1JlZiwgZGlzYWJsZWRJbmRpY2VzKTtcbiAgICBjb25zdCBtYXhJbmRleCA9IGdldE1heEluZGV4KGVsZW1lbnRzUmVmLCBkaXNhYmxlZEluZGljZXMpO1xuICAgIGlmIChpc0dyaWQpIHtcbiAgICAgIGNvbnN0IHNpemVzID0gaXRlbVNpemVzIHx8IEFycmF5LmZyb20oe1xuICAgICAgICBsZW5ndGg6IGVsZW1lbnRzUmVmLmN1cnJlbnQubGVuZ3RoXG4gICAgICB9LCAoKSA9PiAoe1xuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgaGVpZ2h0OiAxXG4gICAgICB9KSk7XG4gICAgICAvLyBUbyBjYWxjdWxhdGUgbW92ZW1lbnRzIG9uIHRoZSBncmlkLCB3ZSB1c2UgaHlwb3RoZXRpY2FsIGNlbGwgaW5kaWNlc1xuICAgICAgLy8gYXMgaWYgZXZlcnkgaXRlbSB3YXMgMXgxLCB0aGVuIGNvbnZlcnQgYmFjayB0byByZWFsIGluZGljZXMuXG4gICAgICBjb25zdCBjZWxsTWFwID0gYnVpbGRDZWxsTWFwKHNpemVzLCBjb2xzLCBkZW5zZSk7XG4gICAgICBjb25zdCBtaW5HcmlkSW5kZXggPSBjZWxsTWFwLmZpbmRJbmRleChpbmRleCA9PiBpbmRleCAhPSBudWxsICYmICFpc0Rpc2FibGVkKGVsZW1lbnRzUmVmLmN1cnJlbnQsIGluZGV4LCBkaXNhYmxlZEluZGljZXMpKTtcbiAgICAgIC8vIGxhc3QgZW5hYmxlZCBpbmRleFxuICAgICAgY29uc3QgbWF4R3JpZEluZGV4ID0gY2VsbE1hcC5yZWR1Y2UoKGZvdW5kSW5kZXgsIGluZGV4LCBjZWxsSW5kZXgpID0+IGluZGV4ICE9IG51bGwgJiYgIWlzRGlzYWJsZWQoZWxlbWVudHNSZWYuY3VycmVudCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykgPyBjZWxsSW5kZXggOiBmb3VuZEluZGV4LCAtMSk7XG4gICAgICBuZXh0SW5kZXggPSBjZWxsTWFwW2dldEdyaWROYXZpZ2F0ZWRJbmRleCh7XG4gICAgICAgIGN1cnJlbnQ6IGNlbGxNYXAubWFwKGl0ZW1JbmRleCA9PiBpdGVtSW5kZXggPyBlbGVtZW50c1JlZi5jdXJyZW50W2l0ZW1JbmRleF0gOiBudWxsKVxuICAgICAgfSwge1xuICAgICAgICBldmVudCxcbiAgICAgICAgb3JpZW50YXRpb24sXG4gICAgICAgIGxvb3AsXG4gICAgICAgIGNvbHMsXG4gICAgICAgIC8vIHRyZWF0IHVuZGVmaW5lZCAoZW1wdHkgZ3JpZCBzcGFjZXMpIGFzIGRpc2FibGVkIGluZGljZXMgc28gd2VcbiAgICAgICAgLy8gZG9uJ3QgZW5kIHVwIGluIHRoZW1cbiAgICAgICAgZGlzYWJsZWRJbmRpY2VzOiBnZXRDZWxsSW5kaWNlcyhbLi4uKGRpc2FibGVkSW5kaWNlcyB8fCBlbGVtZW50c1JlZi5jdXJyZW50Lm1hcCgoXywgaW5kZXgpID0+IGlzRGlzYWJsZWQoZWxlbWVudHNSZWYuY3VycmVudCwgaW5kZXgpID8gaW5kZXggOiB1bmRlZmluZWQpKSwgdW5kZWZpbmVkXSwgY2VsbE1hcCksXG4gICAgICAgIG1pbkluZGV4OiBtaW5HcmlkSW5kZXgsXG4gICAgICAgIG1heEluZGV4OiBtYXhHcmlkSW5kZXgsXG4gICAgICAgIHByZXZJbmRleDogZ2V0Q2VsbEluZGV4T2ZDb3JuZXIoYWN0aXZlSW5kZXggPiBtYXhJbmRleCA/IG1pbkluZGV4IDogYWN0aXZlSW5kZXgsIHNpemVzLCBjZWxsTWFwLCBjb2xzLFxuICAgICAgICAvLyB1c2UgYSBjb3JuZXIgbWF0Y2hpbmcgdGhlIGVkZ2UgY2xvc2VzdCB0byB0aGUgZGlyZWN0aW9uIHdlJ3JlXG4gICAgICAgIC8vIG1vdmluZyBpbiBzbyB3ZSBkb24ndCBlbmQgdXAgaW4gdGhlIHNhbWUgaXRlbS4gUHJlZmVyXG4gICAgICAgIC8vIHRvcC9sZWZ0IG92ZXIgYm90dG9tL3JpZ2h0LlxuICAgICAgICBldmVudC5rZXkgPT09IEFSUk9XX0RPV04gPyAnYmwnIDogZXZlbnQua2V5ID09PSBBUlJPV19SSUdIVCA/ICd0cicgOiAndGwnKVxuICAgICAgfSldOyAvLyBuYXZpZ2F0ZWQgY2VsbCB3aWxsIG5ldmVyIGJlIG51bGxpc2hcbiAgICB9XG4gICAgY29uc3QgdG9FbmRLZXlzID0ge1xuICAgICAgaG9yaXpvbnRhbDogW0FSUk9XX1JJR0hUXSxcbiAgICAgIHZlcnRpY2FsOiBbQVJST1dfRE9XTl0sXG4gICAgICBib3RoOiBbQVJST1dfUklHSFQsIEFSUk9XX0RPV05dXG4gICAgfVtvcmllbnRhdGlvbl07XG4gICAgY29uc3QgdG9TdGFydEtleXMgPSB7XG4gICAgICBob3Jpem9udGFsOiBbQVJST1dfTEVGVF0sXG4gICAgICB2ZXJ0aWNhbDogW0FSUk9XX1VQXSxcbiAgICAgIGJvdGg6IFtBUlJPV19MRUZULCBBUlJPV19VUF1cbiAgICB9W29yaWVudGF0aW9uXTtcbiAgICBjb25zdCBwcmV2ZW50ZWRLZXlzID0gaXNHcmlkID8gYWxsS2V5cyA6IHtcbiAgICAgIGhvcml6b250YWw6IGhvcml6b250YWxLZXlzLFxuICAgICAgdmVydGljYWw6IHZlcnRpY2FsS2V5cyxcbiAgICAgIGJvdGg6IGFsbEtleXNcbiAgICB9W29yaWVudGF0aW9uXTtcbiAgICBpZiAobmV4dEluZGV4ID09PSBhY3RpdmVJbmRleCAmJiBbLi4udG9FbmRLZXlzLCAuLi50b1N0YXJ0S2V5c10uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgaWYgKGxvb3AgJiYgbmV4dEluZGV4ID09PSBtYXhJbmRleCAmJiB0b0VuZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICBuZXh0SW5kZXggPSBtaW5JbmRleDtcbiAgICAgIH0gZWxzZSBpZiAobG9vcCAmJiBuZXh0SW5kZXggPT09IG1pbkluZGV4ICYmIHRvU3RhcnRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgbmV4dEluZGV4ID0gbWF4SW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0SW5kZXggPSBmaW5kTm9uRGlzYWJsZWRJbmRleChlbGVtZW50c1JlZiwge1xuICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICBkZWNyZW1lbnQ6IHRvU3RhcnRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSksXG4gICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobmV4dEluZGV4ICE9PSBhY3RpdmVJbmRleCAmJiAhaXNJbmRleE91dE9mQm91bmRzKGVsZW1lbnRzUmVmLCBuZXh0SW5kZXgpKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGlmIChwcmV2ZW50ZWRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICAgIG9uTmF2aWdhdGUobmV4dEluZGV4KTtcblxuICAgICAgLy8gV2FpdCBmb3IgRm9jdXNNYW5hZ2VyIGByZXR1cm5Gb2N1c2AgdG8gZXhlY3V0ZS5cbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgZW5xdWV1ZUZvY3VzKGVsZW1lbnRzUmVmLmN1cnJlbnRbbmV4dEluZGV4XSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY29tcHV0ZWRQcm9wcyA9IHtcbiAgICAuLi5kb21Qcm9wcyxcbiAgICAuLi5yZW5kZXJFbGVtZW50UHJvcHMsXG4gICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgJ2FyaWEtb3JpZW50YXRpb24nOiBvcmllbnRhdGlvbiA9PT0gJ2JvdGgnID8gdW5kZWZpbmVkIDogb3JpZW50YXRpb24sXG4gICAgb25LZXlEb3duKGUpIHtcbiAgICAgIGRvbVByb3BzLm9uS2V5RG93biA9PSBudWxsIHx8IGRvbVByb3BzLm9uS2V5RG93bihlKTtcbiAgICAgIHJlbmRlckVsZW1lbnRQcm9wcy5vbktleURvd24gPT0gbnVsbCB8fCByZW5kZXJFbGVtZW50UHJvcHMub25LZXlEb3duKGUpO1xuICAgICAgaGFuZGxlS2V5RG93bihlKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb3NpdGVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGNvbnRleHRWYWx1ZVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChGbG9hdGluZ0xpc3QsIHtcbiAgICBlbGVtZW50c1JlZjogZWxlbWVudHNSZWZcbiAgfSwgcmVuZGVySnN4KHJlbmRlciwgY29tcHV0ZWRQcm9wcykpKTtcbn0pO1xuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvQ29tcG9zaXRlXG4gKi9cbmNvbnN0IENvbXBvc2l0ZUl0ZW0gPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiBDb21wb3NpdGVJdGVtKHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgY29uc3Qge1xuICAgIHJlbmRlcixcbiAgICAuLi5kb21Qcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHJlbmRlckVsZW1lbnRQcm9wcyA9IHJlbmRlciAmJiB0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nID8gcmVuZGVyLnByb3BzIDoge307XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVJbmRleCxcbiAgICBvbk5hdmlnYXRlXG4gIH0gPSBSZWFjdC51c2VDb250ZXh0KENvbXBvc2l0ZUNvbnRleHQpO1xuICBjb25zdCB7XG4gICAgcmVmLFxuICAgIGluZGV4XG4gIH0gPSB1c2VMaXN0SXRlbSgpO1xuICBjb25zdCBtZXJnZWRSZWYgPSB1c2VNZXJnZVJlZnMoW3JlZiwgZm9yd2FyZGVkUmVmLCByZW5kZXJFbGVtZW50UHJvcHMucmVmXSk7XG4gIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlSW5kZXggPT09IGluZGV4O1xuICBjb25zdCBjb21wdXRlZFByb3BzID0ge1xuICAgIC4uLmRvbVByb3BzLFxuICAgIC4uLnJlbmRlckVsZW1lbnRQcm9wcyxcbiAgICByZWY6IG1lcmdlZFJlZixcbiAgICB0YWJJbmRleDogaXNBY3RpdmUgPyAwIDogLTEsXG4gICAgJ2RhdGEtYWN0aXZlJzogaXNBY3RpdmUgPyAnJyA6IHVuZGVmaW5lZCxcbiAgICBvbkZvY3VzKGUpIHtcbiAgICAgIGRvbVByb3BzLm9uRm9jdXMgPT0gbnVsbCB8fCBkb21Qcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgcmVuZGVyRWxlbWVudFByb3BzLm9uRm9jdXMgPT0gbnVsbCB8fCByZW5kZXJFbGVtZW50UHJvcHMub25Gb2N1cyhlKTtcbiAgICAgIG9uTmF2aWdhdGUoaW5kZXgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJlbmRlckpzeChyZW5kZXIsIGNvbXB1dGVkUHJvcHMpO1xufSk7XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gPyBPYmplY3QuYXNzaWduLmJpbmQoKSA6IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5sZXQgc2VydmVySGFuZG9mZkNvbXBsZXRlID0gZmFsc2U7XG5sZXQgY291bnQgPSAwO1xuY29uc3QgZ2VuSWQgPSAoKSA9PiAvLyBFbnN1cmUgdGhlIGlkIGlzIHVuaXF1ZSB3aXRoIG11bHRpcGxlIGluZGVwZW5kZW50IHZlcnNpb25zIG9mIEZsb2F0aW5nIFVJXG4vLyBvbiA8UmVhY3QgMThcblwiZmxvYXRpbmctdWktXCIgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCA2KSArIGNvdW50Kys7XG5mdW5jdGlvbiB1c2VGbG9hdGluZ0lkKCkge1xuICBjb25zdCBbaWQsIHNldElkXSA9IFJlYWN0LnVzZVN0YXRlKCgpID0+IHNlcnZlckhhbmRvZmZDb21wbGV0ZSA/IGdlbklkKCkgOiB1bmRlZmluZWQpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKGlkID09IG51bGwpIHtcbiAgICAgIHNldElkKGdlbklkKCkpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXJ2ZXJIYW5kb2ZmQ29tcGxldGUgPSB0cnVlO1xuICB9LCBbXSk7XG4gIHJldHVybiBpZDtcbn1cbmNvbnN0IHVzZVJlYWN0SWQgPSBTYWZlUmVhY3QudXNlSWQ7XG5cbi8qKlxuICogVXNlcyBSZWFjdCAxOCdzIGJ1aWx0LWluIGB1c2VJZCgpYCB3aGVuIGF2YWlsYWJsZSwgb3IgZmFsbHMgYmFjayB0byBhXG4gKiBzbGlnaHRseSBsZXNzIHBlcmZvcm1hbnQgKHJlcXVpcmluZyBhIGRvdWJsZSByZW5kZXIpIGltcGxlbWVudGF0aW9uIGZvclxuICogZWFybGllciBSZWFjdCB2ZXJzaW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9yZWFjdC11dGlscyN1c2VpZFxuICovXG5jb25zdCB1c2VJZCA9IHVzZVJlYWN0SWQgfHwgdXNlRmxvYXRpbmdJZDtcblxubGV0IGRldk1lc3NhZ2VTZXQ7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIGRldk1lc3NhZ2VTZXQgPSAvKiNfX1BVUkVfXyovbmV3IFNldCgpO1xufVxuZnVuY3Rpb24gd2FybigpIHtcbiAgdmFyIF9kZXZNZXNzYWdlU2V0O1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgbWVzc2FnZXMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgbWVzc2FnZXNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cbiAgY29uc3QgbWVzc2FnZSA9IFwiRmxvYXRpbmcgVUk6IFwiICsgbWVzc2FnZXMuam9pbignICcpO1xuICBpZiAoISgoX2Rldk1lc3NhZ2VTZXQgPSBkZXZNZXNzYWdlU2V0KSAhPSBudWxsICYmIF9kZXZNZXNzYWdlU2V0LmhhcyhtZXNzYWdlKSkpIHtcbiAgICB2YXIgX2Rldk1lc3NhZ2VTZXQyO1xuICAgIChfZGV2TWVzc2FnZVNldDIgPSBkZXZNZXNzYWdlU2V0KSA9PSBudWxsIHx8IF9kZXZNZXNzYWdlU2V0Mi5hZGQobWVzc2FnZSk7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICB9XG59XG5mdW5jdGlvbiBlcnJvcigpIHtcbiAgdmFyIF9kZXZNZXNzYWdlU2V0MztcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBtZXNzYWdlcyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgIG1lc3NhZ2VzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gIH1cbiAgY29uc3QgbWVzc2FnZSA9IFwiRmxvYXRpbmcgVUk6IFwiICsgbWVzc2FnZXMuam9pbignICcpO1xuICBpZiAoISgoX2Rldk1lc3NhZ2VTZXQzID0gZGV2TWVzc2FnZVNldCkgIT0gbnVsbCAmJiBfZGV2TWVzc2FnZVNldDMuaGFzKG1lc3NhZ2UpKSkge1xuICAgIHZhciBfZGV2TWVzc2FnZVNldDQ7XG4gICAgKF9kZXZNZXNzYWdlU2V0NCA9IGRldk1lc3NhZ2VTZXQpID09IG51bGwgfHwgX2Rldk1lc3NhZ2VTZXQ0LmFkZChtZXNzYWdlKTtcbiAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBvaW50aW5nIGFycm93IHRyaWFuZ2xlLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nQXJyb3dcbiAqL1xuY29uc3QgRmxvYXRpbmdBcnJvdyA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIEZsb2F0aW5nQXJyb3cocHJvcHMsIHJlZikge1xuICBjb25zdCB7XG4gICAgY29udGV4dDoge1xuICAgICAgcGxhY2VtZW50LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH0sXG4gICAgICBtaWRkbGV3YXJlRGF0YToge1xuICAgICAgICBhcnJvd1xuICAgICAgfVxuICAgIH0sXG4gICAgd2lkdGggPSAxNCxcbiAgICBoZWlnaHQgPSA3LFxuICAgIHRpcFJhZGl1cyA9IDAsXG4gICAgc3Ryb2tlV2lkdGggPSAwLFxuICAgIHN0YXRpY09mZnNldCxcbiAgICBzdHJva2UsXG4gICAgZCxcbiAgICBzdHlsZToge1xuICAgICAgdHJhbnNmb3JtLFxuICAgICAgLi4ucmVzdFN0eWxlXG4gICAgfSA9IHt9LFxuICAgIC4uLnJlc3RcbiAgfSA9IHByb3BzO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgaWYgKCFyZWYpIHtcbiAgICAgIHdhcm4oJ1RoZSBgcmVmYCBwcm9wIGlzIHJlcXVpcmVkIGZvciBgRmxvYXRpbmdBcnJvd2AuJyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGNsaXBQYXRoSWQgPSB1c2VJZCgpO1xuICBjb25zdCBbaXNSVEwsIHNldElzUlRMXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI5MzJcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmICghZmxvYXRpbmcpIHJldHVybjtcbiAgICBjb25zdCBpc1JUTCA9IGdldENvbXB1dGVkU3R5bGUoZmxvYXRpbmcpLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XG4gICAgaWYgKGlzUlRMKSB7XG4gICAgICBzZXRJc1JUTCh0cnVlKTtcbiAgICB9XG4gIH0sIFtmbG9hdGluZ10pO1xuICBpZiAoIWZsb2F0aW5nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBTdHJva2VzIG11c3QgYmUgZG91YmxlIHRoZSBib3JkZXIgd2lkdGgsIHRoaXMgZW5zdXJlcyB0aGUgc3Ryb2tlJ3Mgd2lkdGhcbiAgLy8gd29ya3MgYXMgeW91J2QgZXhwZWN0LlxuICBjb25zdCBjb21wdXRlZFN0cm9rZVdpZHRoID0gc3Ryb2tlV2lkdGggKiAyO1xuICBjb25zdCBoYWxmU3Ryb2tlV2lkdGggPSBjb21wdXRlZFN0cm9rZVdpZHRoIC8gMjtcbiAgY29uc3Qgc3ZnWCA9IHdpZHRoIC8gMiAqICh0aXBSYWRpdXMgLyAtOCArIDEpO1xuICBjb25zdCBzdmdZID0gaGVpZ2h0IC8gMiAqIHRpcFJhZGl1cyAvIDQ7XG4gIGNvbnN0IFtzaWRlLCBhbGlnbm1lbnRdID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG4gIGNvbnN0IGlzQ3VzdG9tU2hhcGUgPSAhIWQ7XG4gIGNvbnN0IGlzVmVydGljYWxTaWRlID0gc2lkZSA9PT0gJ3RvcCcgfHwgc2lkZSA9PT0gJ2JvdHRvbSc7XG4gIGNvbnN0IHlPZmZzZXRQcm9wID0gc3RhdGljT2Zmc2V0ICYmIGFsaWdubWVudCA9PT0gJ2VuZCcgPyAnYm90dG9tJyA6ICd0b3AnO1xuICBsZXQgeE9mZnNldFByb3AgPSBzdGF0aWNPZmZzZXQgJiYgYWxpZ25tZW50ID09PSAnZW5kJyA/ICdyaWdodCcgOiAnbGVmdCc7XG4gIGlmIChzdGF0aWNPZmZzZXQgJiYgaXNSVEwpIHtcbiAgICB4T2Zmc2V0UHJvcCA9IGFsaWdubWVudCA9PT0gJ2VuZCcgPyAnbGVmdCcgOiAncmlnaHQnO1xuICB9XG4gIGNvbnN0IGFycm93WCA9IChhcnJvdyA9PSBudWxsID8gdm9pZCAwIDogYXJyb3cueCkgIT0gbnVsbCA/IHN0YXRpY09mZnNldCB8fCBhcnJvdy54IDogJyc7XG4gIGNvbnN0IGFycm93WSA9IChhcnJvdyA9PSBudWxsID8gdm9pZCAwIDogYXJyb3cueSkgIT0gbnVsbCA/IHN0YXRpY09mZnNldCB8fCBhcnJvdy55IDogJyc7XG4gIGNvbnN0IGRWYWx1ZSA9IGQgfHwgJ00wLDAnICsgKFwiIEhcIiArIHdpZHRoKSArIChcIiBMXCIgKyAod2lkdGggLSBzdmdYKSArIFwiLFwiICsgKGhlaWdodCAtIHN2Z1kpKSArIChcIiBRXCIgKyB3aWR0aCAvIDIgKyBcIixcIiArIGhlaWdodCArIFwiIFwiICsgc3ZnWCArIFwiLFwiICsgKGhlaWdodCAtIHN2Z1kpKSArICcgWic7XG4gIGNvbnN0IHJvdGF0aW9uID0ge1xuICAgIHRvcDogaXNDdXN0b21TaGFwZSA/ICdyb3RhdGUoMTgwZGVnKScgOiAnJyxcbiAgICBsZWZ0OiBpc0N1c3RvbVNoYXBlID8gJ3JvdGF0ZSg5MGRlZyknIDogJ3JvdGF0ZSgtOTBkZWcpJyxcbiAgICBib3R0b206IGlzQ3VzdG9tU2hhcGUgPyAnJyA6ICdyb3RhdGUoMTgwZGVnKScsXG4gICAgcmlnaHQ6IGlzQ3VzdG9tU2hhcGUgPyAncm90YXRlKC05MGRlZyknIDogJ3JvdGF0ZSg5MGRlZyknXG4gIH1bc2lkZV07XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7fSwgcmVzdCwge1xuICAgIFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSxcbiAgICByZWY6IHJlZixcbiAgICB3aWR0aDogaXNDdXN0b21TaGFwZSA/IHdpZHRoIDogd2lkdGggKyBjb21wdXRlZFN0cm9rZVdpZHRoLFxuICAgIGhlaWdodDogd2lkdGgsXG4gICAgdmlld0JveDogXCIwIDAgXCIgKyB3aWR0aCArIFwiIFwiICsgKGhlaWdodCA+IHdpZHRoID8gaGVpZ2h0IDogd2lkdGgpLFxuICAgIHN0eWxlOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIFt4T2Zmc2V0UHJvcF06IGFycm93WCxcbiAgICAgIFt5T2Zmc2V0UHJvcF06IGFycm93WSxcbiAgICAgIFtzaWRlXTogaXNWZXJ0aWNhbFNpZGUgfHwgaXNDdXN0b21TaGFwZSA/ICcxMDAlJyA6IFwiY2FsYygxMDAlIC0gXCIgKyBjb21wdXRlZFN0cm9rZVdpZHRoIC8gMiArIFwicHgpXCIsXG4gICAgICB0cmFuc2Zvcm06IFwiXCIgKyByb3RhdGlvbiArICh0cmFuc2Zvcm0gIT0gbnVsbCA/IHRyYW5zZm9ybSA6ICcnKSxcbiAgICAgIC4uLnJlc3RTdHlsZVxuICAgIH1cbiAgfSksIGNvbXB1dGVkU3Ryb2tlV2lkdGggPiAwICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgY2xpcFBhdGg6IFwidXJsKCNcIiArIGNsaXBQYXRoSWQgKyBcIilcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBzdHJva2U6IHN0cm9rZVxuICAgIC8vIEFjY291bnQgZm9yIHRoZSBzdHJva2Ugb24gdGhlIGZpbGwgcGF0aCByZW5kZXJlZCBiZWxvdy5cbiAgICAsXG4gICAgc3Ryb2tlV2lkdGg6IGNvbXB1dGVkU3Ryb2tlV2lkdGggKyAoZCA/IDAgOiAxKSxcbiAgICBkOiBkVmFsdWVcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgc3Ryb2tlOiBjb21wdXRlZFN0cm9rZVdpZHRoICYmICFkID8gcmVzdC5maWxsIDogJ25vbmUnLFxuICAgIGQ6IGRWYWx1ZVxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJjbGlwUGF0aFwiLCB7XG4gICAgaWQ6IGNsaXBQYXRoSWRcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHtcbiAgICB4OiAtaGFsZlN0cm9rZVdpZHRoLFxuICAgIHk6IGhhbGZTdHJva2VXaWR0aCAqIChpc0N1c3RvbVNoYXBlID8gLTEgOiAxKSxcbiAgICB3aWR0aDogd2lkdGggKyBjb21wdXRlZFN0cm9rZVdpZHRoLFxuICAgIGhlaWdodDogd2lkdGhcbiAgfSkpKTtcbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVQdWJTdWIoKSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXAoKTtcbiAgcmV0dXJuIHtcbiAgICBlbWl0KGV2ZW50LCBkYXRhKSB7XG4gICAgICB2YXIgX21hcCRnZXQ7XG4gICAgICAoX21hcCRnZXQgPSBtYXAuZ2V0KGV2ZW50KSkgPT0gbnVsbCB8fCBfbWFwJGdldC5mb3JFYWNoKGhhbmRsZXIgPT4gaGFuZGxlcihkYXRhKSk7XG4gICAgfSxcbiAgICBvbihldmVudCwgbGlzdGVuZXIpIHtcbiAgICAgIG1hcC5zZXQoZXZlbnQsIFsuLi4obWFwLmdldChldmVudCkgfHwgW10pLCBsaXN0ZW5lcl0pO1xuICAgIH0sXG4gICAgb2ZmKGV2ZW50LCBsaXN0ZW5lcikge1xuICAgICAgdmFyIF9tYXAkZ2V0MjtcbiAgICAgIG1hcC5zZXQoZXZlbnQsICgoX21hcCRnZXQyID0gbWFwLmdldChldmVudCkpID09IG51bGwgPyB2b2lkIDAgOiBfbWFwJGdldDIuZmlsdGVyKGwgPT4gbCAhPT0gbGlzdGVuZXIpKSB8fCBbXSk7XG4gICAgfVxuICB9O1xufVxuXG5jb25zdCBGbG9hdGluZ05vZGVDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5jb25zdCBGbG9hdGluZ1RyZWVDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGFyZW50IG5vZGUgaWQgZm9yIG5lc3RlZCBmbG9hdGluZyBlbGVtZW50cywgaWYgYXZhaWxhYmxlLlxuICogUmV0dXJucyBgbnVsbGAgZm9yIHRvcC1sZXZlbCBmbG9hdGluZyBlbGVtZW50cy5cbiAqL1xuY29uc3QgdXNlRmxvYXRpbmdQYXJlbnROb2RlSWQgPSAoKSA9PiB7XG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dDtcbiAgcmV0dXJuICgoX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KEZsb2F0aW5nTm9kZUNvbnRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogX1JlYWN0JHVzZUNvbnRleHQuaWQpIHx8IG51bGw7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG5lYXJlc3QgZmxvYXRpbmcgdHJlZSBjb250ZXh0LCBpZiBhdmFpbGFibGUuXG4gKi9cbmNvbnN0IHVzZUZsb2F0aW5nVHJlZSA9ICgpID0+IFJlYWN0LnVzZUNvbnRleHQoRmxvYXRpbmdUcmVlQ29udGV4dCk7XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgbm9kZSBpbnRvIHRoZSBgRmxvYXRpbmdUcmVlYCwgcmV0dXJuaW5nIGl0cyBpZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ1RyZWVcbiAqL1xuZnVuY3Rpb24gdXNlRmxvYXRpbmdOb2RlSWQoY3VzdG9tUGFyZW50SWQpIHtcbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCB0cmVlID0gdXNlRmxvYXRpbmdUcmVlKCk7XG4gIGNvbnN0IHJlYWN0UGFyZW50SWQgPSB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCgpO1xuICBjb25zdCBwYXJlbnRJZCA9IGN1c3RvbVBhcmVudElkIHx8IHJlYWN0UGFyZW50SWQ7XG4gIGluZGV4KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0ge1xuICAgICAgaWQsXG4gICAgICBwYXJlbnRJZFxuICAgIH07XG4gICAgdHJlZSA9PSBudWxsIHx8IHRyZWUuYWRkTm9kZShub2RlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdHJlZSA9PSBudWxsIHx8IHRyZWUucmVtb3ZlTm9kZShub2RlKTtcbiAgICB9O1xuICB9LCBbdHJlZSwgaWQsIHBhcmVudElkXSk7XG4gIHJldHVybiBpZDtcbn1cbi8qKlxuICogUHJvdmlkZXMgcGFyZW50IG5vZGUgY29udGV4dCBmb3IgbmVzdGVkIGZsb2F0aW5nIGVsZW1lbnRzLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nVHJlZVxuICovXG5mdW5jdGlvbiBGbG9hdGluZ05vZGUocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGlkXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcGFyZW50SWQgPSB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCgpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRmxvYXRpbmdOb2RlQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICBpZCxcbiAgICAgIHBhcmVudElkXG4gICAgfSksIFtpZCwgcGFyZW50SWRdKVxuICB9LCBjaGlsZHJlbik7XG59XG4vKipcbiAqIFByb3ZpZGVzIGNvbnRleHQgZm9yIG5lc3RlZCBmbG9hdGluZyBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIG5vdCBjaGlsZHJlbiBvZlxuICogZWFjaCBvdGhlciBvbiB0aGUgRE9NLlxuICogVGhpcyBpcyBub3QgbmVjZXNzYXJ5IGluIGFsbCBjYXNlcywgZXhjZXB0IHdoZW4gdGhlcmUgbXVzdCBiZSBleHBsaWNpdCBjb21tdW5pY2F0aW9uIGJldHdlZW4gcGFyZW50IGFuZCBjaGlsZCBmbG9hdGluZyBlbGVtZW50cy4gSXQgaXMgbmVjZXNzYXJ5IGZvcjpcbiAqIC0gVGhlIGBidWJibGVzYCBvcHRpb24gaW4gdGhlIGB1c2VEaXNtaXNzKClgIEhvb2tcbiAqIC0gTmVzdGVkIHZpcnR1YWwgbGlzdCBuYXZpZ2F0aW9uXG4gKiAtIE5lc3RlZCBmbG9hdGluZyBlbGVtZW50cyB0aGF0IGVhY2ggb3BlbiBvbiBob3ZlclxuICogLSBDdXN0b20gY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHBhcmVudCBhbmQgY2hpbGQgZmxvYXRpbmcgZWxlbWVudHNcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9GbG9hdGluZ1RyZWVcbiAqL1xuZnVuY3Rpb24gRmxvYXRpbmdUcmVlKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjaGlsZHJlblxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IG5vZGVzUmVmID0gUmVhY3QudXNlUmVmKFtdKTtcbiAgY29uc3QgYWRkTm9kZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIG5vZGVzUmVmLmN1cnJlbnQgPSBbLi4ubm9kZXNSZWYuY3VycmVudCwgbm9kZV07XG4gIH0sIFtdKTtcbiAgY29uc3QgcmVtb3ZlTm9kZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIG5vZGVzUmVmLmN1cnJlbnQgPSBub2Rlc1JlZi5jdXJyZW50LmZpbHRlcihuID0+IG4gIT09IG5vZGUpO1xuICB9LCBbXSk7XG4gIGNvbnN0IGV2ZW50cyA9IFJlYWN0LnVzZVN0YXRlKCgpID0+IGNyZWF0ZVB1YlN1YigpKVswXTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZsb2F0aW5nVHJlZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgICAgbm9kZXNSZWYsXG4gICAgICBhZGROb2RlLFxuICAgICAgcmVtb3ZlTm9kZSxcbiAgICAgIGV2ZW50c1xuICAgIH0pLCBbYWRkTm9kZSwgcmVtb3ZlTm9kZSwgZXZlbnRzXSlcbiAgfSwgY2hpbGRyZW4pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBdHRyaWJ1dGUobmFtZSkge1xuICByZXR1cm4gXCJkYXRhLWZsb2F0aW5nLXVpLVwiICsgbmFtZTtcbn1cblxuZnVuY3Rpb24gdXNlTGF0ZXN0UmVmKHZhbHVlKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZih2YWx1ZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuY29uc3Qgc2FmZVBvbHlnb25JZGVudGlmaWVyID0gLyojX19QVVJFX18qL2NyZWF0ZUF0dHJpYnV0ZSgnc2FmZS1wb2x5Z29uJyk7XG5mdW5jdGlvbiBnZXREZWxheSh2YWx1ZSwgcHJvcCwgcG9pbnRlclR5cGUpIHtcbiAgaWYgKHBvaW50ZXJUeXBlICYmICFpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlKSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gdm9pZCAwIDogdmFsdWVbcHJvcF07XG59XG4vKipcbiAqIE9wZW5zIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoaWxlIGhvdmVyaW5nIG92ZXIgdGhlIHJlZmVyZW5jZSBlbGVtZW50LCBsaWtlXG4gKiBDU1MgYDpob3ZlcmAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlSG92ZXJcbiAqL1xuZnVuY3Rpb24gdXNlSG92ZXIoY29udGV4dCwgcHJvcHMpIHtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBkYXRhUmVmLFxuICAgIGV2ZW50cyxcbiAgICBlbGVtZW50c1xuICB9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGVuYWJsZWQgPSB0cnVlLFxuICAgIGRlbGF5ID0gMCxcbiAgICBoYW5kbGVDbG9zZSA9IG51bGwsXG4gICAgbW91c2VPbmx5ID0gZmFsc2UsXG4gICAgcmVzdE1zID0gMCxcbiAgICBtb3ZlID0gdHJ1ZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHRyZWUgPSB1c2VGbG9hdGluZ1RyZWUoKTtcbiAgY29uc3QgcGFyZW50SWQgPSB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCgpO1xuICBjb25zdCBoYW5kbGVDbG9zZVJlZiA9IHVzZUxhdGVzdFJlZihoYW5kbGVDbG9zZSk7XG4gIGNvbnN0IGRlbGF5UmVmID0gdXNlTGF0ZXN0UmVmKGRlbGF5KTtcbiAgY29uc3Qgb3BlblJlZiA9IHVzZUxhdGVzdFJlZihvcGVuKTtcbiAgY29uc3QgcG9pbnRlclR5cGVSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgY29uc3QgdGltZW91dFJlZiA9IFJlYWN0LnVzZVJlZigtMSk7XG4gIGNvbnN0IGhhbmRsZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgY29uc3QgcmVzdFRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYoLTEpO1xuICBjb25zdCBibG9ja01vdXNlTW92ZVJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgY29uc3QgcGVyZm9ybWVkUG9pbnRlckV2ZW50c011dGF0aW9uUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgdW5iaW5kTW91c2VNb3ZlUmVmID0gUmVhY3QudXNlUmVmKCgpID0+IHt9KTtcbiAgY29uc3QgaXNIb3Zlck9wZW4gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdmFyIF9kYXRhUmVmJGN1cnJlbnQkb3BlbjtcbiAgICBjb25zdCB0eXBlID0gKF9kYXRhUmVmJGN1cnJlbnQkb3BlbiA9IGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZGF0YVJlZiRjdXJyZW50JG9wZW4udHlwZTtcbiAgICByZXR1cm4gKHR5cGUgPT0gbnVsbCA/IHZvaWQgMCA6IHR5cGUuaW5jbHVkZXMoJ21vdXNlJykpICYmIHR5cGUgIT09ICdtb3VzZWRvd24nO1xuICB9LCBbZGF0YVJlZl0pO1xuXG4gIC8vIFdoZW4gY2xvc2luZyBiZWZvcmUgb3BlbmluZywgY2xlYXIgdGhlIGRlbGF5IHRpbWVvdXRzIHRvIGNhbmNlbCBpdFxuICAvLyBmcm9tIHNob3dpbmcuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgZnVuY3Rpb24gb25PcGVuQ2hhbmdlKF9yZWYpIHtcbiAgICAgIGxldCB7XG4gICAgICAgIG9wZW5cbiAgICAgIH0gPSBfcmVmO1xuICAgICAgaWYgKCFvcGVuKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICBjbGVhclRpbWVvdXQocmVzdFRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIGJsb2NrTW91c2VNb3ZlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBldmVudHMub24oJ29wZW5jaGFuZ2UnLCBvbk9wZW5DaGFuZ2UpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBldmVudHMub2ZmKCdvcGVuY2hhbmdlJywgb25PcGVuQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZW5hYmxlZCwgZXZlbnRzXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgaWYgKCFoYW5kbGVDbG9zZVJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgaWYgKCFvcGVuKSByZXR1cm47XG4gICAgZnVuY3Rpb24gb25MZWF2ZShldmVudCkge1xuICAgICAgaWYgKGlzSG92ZXJPcGVuKCkpIHtcbiAgICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudCwgJ2hvdmVyJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudChlbGVtZW50cy5mbG9hdGluZykuZG9jdW1lbnRFbGVtZW50O1xuICAgIGh0bWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uTGVhdmUpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBodG1sLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBvbkxlYXZlKTtcbiAgICB9O1xuICB9LCBbZWxlbWVudHMuZmxvYXRpbmcsIG9wZW4sIG9uT3BlbkNoYW5nZSwgZW5hYmxlZCwgaGFuZGxlQ2xvc2VSZWYsIGlzSG92ZXJPcGVuXSk7XG4gIGNvbnN0IGNsb3NlV2l0aERlbGF5ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50LCBydW5FbHNlQnJhbmNoLCByZWFzb24pIHtcbiAgICBpZiAocnVuRWxzZUJyYW5jaCA9PT0gdm9pZCAwKSB7XG4gICAgICBydW5FbHNlQnJhbmNoID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHJlYXNvbiA9PT0gdm9pZCAwKSB7XG4gICAgICByZWFzb24gPSAnaG92ZXInO1xuICAgIH1cbiAgICBjb25zdCBjbG9zZURlbGF5ID0gZ2V0RGVsYXkoZGVsYXlSZWYuY3VycmVudCwgJ2Nsb3NlJywgcG9pbnRlclR5cGVSZWYuY3VycmVudCk7XG4gICAgaWYgKGNsb3NlRGVsYXkgJiYgIWhhbmRsZXJSZWYuY3VycmVudCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50LCByZWFzb24pLCBjbG9zZURlbGF5KTtcbiAgICB9IGVsc2UgaWYgKHJ1bkVsc2VCcmFuY2gpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudCwgcmVhc29uKTtcbiAgICB9XG4gIH0sIFtkZWxheVJlZiwgb25PcGVuQ2hhbmdlXSk7XG4gIGNvbnN0IGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyID0gdXNlRWZmZWN0RXZlbnQoKCkgPT4ge1xuICAgIHVuYmluZE1vdXNlTW92ZVJlZi5jdXJyZW50KCk7XG4gICAgaGFuZGxlclJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICB9KTtcbiAgY29uc3QgY2xlYXJQb2ludGVyRXZlbnRzID0gdXNlRWZmZWN0RXZlbnQoKCkgPT4ge1xuICAgIGlmIChwZXJmb3JtZWRQb2ludGVyRXZlbnRzTXV0YXRpb25SZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgYm9keSA9IGdldERvY3VtZW50KGVsZW1lbnRzLmZsb2F0aW5nKS5ib2R5O1xuICAgICAgYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJyc7XG4gICAgICBib2R5LnJlbW92ZUF0dHJpYnV0ZShzYWZlUG9seWdvbklkZW50aWZpZXIpO1xuICAgICAgcGVyZm9ybWVkUG9pbnRlckV2ZW50c011dGF0aW9uUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFJlZ2lzdGVyaW5nIHRoZSBtb3VzZSBldmVudHMgb24gdGhlIHJlZmVyZW5jZSBkaXJlY3RseSB0byBieXBhc3MgUmVhY3Qnc1xuICAvLyBkZWxlZ2F0aW9uIHN5c3RlbS4gSWYgdGhlIGN1cnNvciB3YXMgb24gYSBkaXNhYmxlZCBlbGVtZW50IGFuZCB0aGVuIGVudGVyZWRcbiAgLy8gdGhlIHJlZmVyZW5jZSAobm8gZ2FwKSwgYG1vdXNlZW50ZXJgIGRvZXNuJ3QgZmlyZSBpbiB0aGUgZGVsZWdhdGlvbiBzeXN0ZW0uXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgZnVuY3Rpb24gaXNDbGlja0xpa2VPcGVuRXZlbnQoKSB7XG4gICAgICByZXR1cm4gZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCA/IFsnY2xpY2snLCAnbW91c2Vkb3duJ10uaW5jbHVkZXMoZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudC50eXBlKSA6IGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvbk1vdXNlRW50ZXIoZXZlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgYmxvY2tNb3VzZU1vdmVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgaWYgKG1vdXNlT25seSAmJiAhaXNNb3VzZUxpa2VQb2ludGVyVHlwZShwb2ludGVyVHlwZVJlZi5jdXJyZW50KSB8fCByZXN0TXMgPiAwICYmICFnZXREZWxheShkZWxheVJlZi5jdXJyZW50LCAnb3BlbicpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9wZW5EZWxheSA9IGdldERlbGF5KGRlbGF5UmVmLmN1cnJlbnQsICdvcGVuJywgcG9pbnRlclR5cGVSZWYuY3VycmVudCk7XG4gICAgICBpZiAob3BlbkRlbGF5KSB7XG4gICAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIW9wZW5SZWYuY3VycmVudCkge1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50LCAnaG92ZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIG9wZW5EZWxheSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbk9wZW5DaGFuZ2UodHJ1ZSwgZXZlbnQsICdob3ZlcicpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbk1vdXNlTGVhdmUoZXZlbnQpIHtcbiAgICAgIGlmIChpc0NsaWNrTGlrZU9wZW5FdmVudCgpKSByZXR1cm47XG4gICAgICB1bmJpbmRNb3VzZU1vdmVSZWYuY3VycmVudCgpO1xuICAgICAgY29uc3QgZG9jID0gZ2V0RG9jdW1lbnQoZWxlbWVudHMuZmxvYXRpbmcpO1xuICAgICAgY2xlYXJUaW1lb3V0KHJlc3RUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgaWYgKGhhbmRsZUNsb3NlUmVmLmN1cnJlbnQgJiYgZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCkge1xuICAgICAgICAvLyBQcmV2ZW50IGNsZWFyaW5nIGBvblNjcm9sbE1vdXNlTGVhdmVgIHRpbWVvdXQuXG4gICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IGhhbmRsZUNsb3NlUmVmLmN1cnJlbnQoe1xuICAgICAgICAgIC4uLmRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQsXG4gICAgICAgICAgdHJlZSxcbiAgICAgICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgICAgIHk6IGV2ZW50LmNsaWVudFksXG4gICAgICAgICAgb25DbG9zZSgpIHtcbiAgICAgICAgICAgIGNsZWFyUG9pbnRlckV2ZW50cygpO1xuICAgICAgICAgICAgY2xlYW51cE1vdXNlTW92ZUhhbmRsZXIoKTtcbiAgICAgICAgICAgIGNsb3NlV2l0aERlbGF5KGV2ZW50LCB0cnVlLCAnc2FmZS1wb2x5Z29uJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IGhhbmRsZXJSZWYuY3VycmVudDtcbiAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZXIpO1xuICAgICAgICB1bmJpbmRNb3VzZU1vdmVSZWYuY3VycmVudCA9ICgpID0+IHtcbiAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQWxsb3cgaW50ZXJhY3Rpdml0eSB3aXRob3V0IGBzYWZlUG9seWdvbmAgb24gdG91Y2ggZGV2aWNlcy4gV2l0aCBhXG4gICAgICAvLyBwb2ludGVyLCBhIHNob3J0IGNsb3NlIGRlbGF5IGlzIGFuIGFsdGVybmF0aXZlLCBzbyBpdCBzaG91bGQgd29ya1xuICAgICAgLy8gY29uc2lzdGVudGx5LlxuICAgICAgY29uc3Qgc2hvdWxkQ2xvc2UgPSBwb2ludGVyVHlwZVJlZi5jdXJyZW50ID09PSAndG91Y2gnID8gIWNvbnRhaW5zKGVsZW1lbnRzLmZsb2F0aW5nLCBldmVudC5yZWxhdGVkVGFyZ2V0KSA6IHRydWU7XG4gICAgICBpZiAoc2hvdWxkQ2xvc2UpIHtcbiAgICAgICAgY2xvc2VXaXRoRGVsYXkoZXZlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuc3VyZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBjbG9zZXMgYWZ0ZXIgc2Nyb2xsaW5nIGV2ZW4gaWYgdGhlIHBvaW50ZXJcbiAgICAvLyBkaWQgbm90IG1vdmUuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2Rpc2N1c3Npb25zLzE2OTJcbiAgICBmdW5jdGlvbiBvblNjcm9sbE1vdXNlTGVhdmUoZXZlbnQpIHtcbiAgICAgIGlmIChpc0NsaWNrTGlrZU9wZW5FdmVudCgpKSByZXR1cm47XG4gICAgICBpZiAoIWRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQpIHJldHVybjtcbiAgICAgIGhhbmRsZUNsb3NlUmVmLmN1cnJlbnQgPT0gbnVsbCB8fCBoYW5kbGVDbG9zZVJlZi5jdXJyZW50KHtcbiAgICAgICAgLi4uZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCxcbiAgICAgICAgdHJlZSxcbiAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgb25DbG9zZSgpIHtcbiAgICAgICAgICBjbGVhclBvaW50ZXJFdmVudHMoKTtcbiAgICAgICAgICBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlcigpO1xuICAgICAgICAgIGNsb3NlV2l0aERlbGF5KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSkoZXZlbnQpO1xuICAgIH1cbiAgICBpZiAoaXNFbGVtZW50KGVsZW1lbnRzLmRvbVJlZmVyZW5jZSkpIHtcbiAgICAgIHZhciBfZWxlbWVudHMkZmxvYXRpbmc7XG4gICAgICBjb25zdCByZWYgPSBlbGVtZW50cy5kb21SZWZlcmVuY2U7XG4gICAgICBvcGVuICYmIHJlZi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25TY3JvbGxNb3VzZUxlYXZlKTtcbiAgICAgIChfZWxlbWVudHMkZmxvYXRpbmcgPSBlbGVtZW50cy5mbG9hdGluZykgPT0gbnVsbCB8fCBfZWxlbWVudHMkZmxvYXRpbmcuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uU2Nyb2xsTW91c2VMZWF2ZSk7XG4gICAgICBtb3ZlICYmIHJlZi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbk1vdXNlRW50ZXIsIHtcbiAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZWYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIG9uTW91c2VFbnRlcik7XG4gICAgICByZWYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uTW91c2VMZWF2ZSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB2YXIgX2VsZW1lbnRzJGZsb2F0aW5nMjtcbiAgICAgICAgb3BlbiAmJiByZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uU2Nyb2xsTW91c2VMZWF2ZSk7XG4gICAgICAgIChfZWxlbWVudHMkZmxvYXRpbmcyID0gZWxlbWVudHMuZmxvYXRpbmcpID09IG51bGwgfHwgX2VsZW1lbnRzJGZsb2F0aW5nMi5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgb25TY3JvbGxNb3VzZUxlYXZlKTtcbiAgICAgICAgbW92ZSAmJiByZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Nb3VzZUVudGVyKTtcbiAgICAgICAgcmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBvbk1vdXNlRW50ZXIpO1xuICAgICAgICByZWYucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIG9uTW91c2VMZWF2ZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2VsZW1lbnRzLCBlbmFibGVkLCBjb250ZXh0LCBtb3VzZU9ubHksIHJlc3RNcywgbW92ZSwgY2xvc2VXaXRoRGVsYXksIGNsZWFudXBNb3VzZU1vdmVIYW5kbGVyLCBjbGVhclBvaW50ZXJFdmVudHMsIG9uT3BlbkNoYW5nZSwgb3Blbiwgb3BlblJlZiwgdHJlZSwgZGVsYXlSZWYsIGhhbmRsZUNsb3NlUmVmLCBkYXRhUmVmXSk7XG5cbiAgLy8gQmxvY2sgcG9pbnRlci1ldmVudHMgb2YgZXZlcnkgZWxlbWVudCBvdGhlciB0aGFuIHRoZSByZWZlcmVuY2UgYW5kIGZsb2F0aW5nXG4gIC8vIHdoaWxlIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIG9wZW4gYW5kIGhhcyBhIGBoYW5kbGVDbG9zZWAgaGFuZGxlci4gQWxzb1xuICAvLyBoYW5kbGVzIG5lc3RlZCBmbG9hdGluZyBlbGVtZW50cy5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8xNzIyXG4gIGluZGV4KCgpID0+IHtcbiAgICB2YXIgX2hhbmRsZUNsb3NlUmVmJGN1cnJlO1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICAgIGlmIChvcGVuICYmIChfaGFuZGxlQ2xvc2VSZWYkY3VycmUgPSBoYW5kbGVDbG9zZVJlZi5jdXJyZW50KSAhPSBudWxsICYmIF9oYW5kbGVDbG9zZVJlZiRjdXJyZS5fX29wdGlvbnMuYmxvY2tQb2ludGVyRXZlbnRzICYmIGlzSG92ZXJPcGVuKCkpIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBnZXREb2N1bWVudChlbGVtZW50cy5mbG9hdGluZykuYm9keTtcbiAgICAgIGJvZHkuc2V0QXR0cmlidXRlKHNhZmVQb2x5Z29uSWRlbnRpZmllciwgJycpO1xuICAgICAgYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgcGVyZm9ybWVkUG9pbnRlckV2ZW50c011dGF0aW9uUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgY29uc3QgZmxvYXRpbmdFbCA9IGVsZW1lbnRzLmZsb2F0aW5nO1xuICAgICAgaWYgKGlzRWxlbWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UpICYmIGZsb2F0aW5nRWwpIHtcbiAgICAgICAgdmFyIF90cmVlJG5vZGVzUmVmJGN1cnJlbjtcbiAgICAgICAgY29uc3QgcmVmID0gZWxlbWVudHMuZG9tUmVmZXJlbmNlO1xuICAgICAgICBjb25zdCBwYXJlbnRGbG9hdGluZyA9IHRyZWUgPT0gbnVsbCB8fCAoX3RyZWUkbm9kZXNSZWYkY3VycmVuID0gdHJlZS5ub2Rlc1JlZi5jdXJyZW50LmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBwYXJlbnRJZCkpID09IG51bGwgfHwgKF90cmVlJG5vZGVzUmVmJGN1cnJlbiA9IF90cmVlJG5vZGVzUmVmJGN1cnJlbi5jb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX3RyZWUkbm9kZXNSZWYkY3VycmVuLmVsZW1lbnRzLmZsb2F0aW5nO1xuICAgICAgICBpZiAocGFyZW50RmxvYXRpbmcpIHtcbiAgICAgICAgICBwYXJlbnRGbG9hdGluZy5zdHlsZS5wb2ludGVyRXZlbnRzID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmVmLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYXV0byc7XG4gICAgICAgIGZsb2F0aW5nRWwuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhdXRvJztcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICByZWYuc3R5bGUucG9pbnRlckV2ZW50cyA9ICcnO1xuICAgICAgICAgIGZsb2F0aW5nRWwuc3R5bGUucG9pbnRlckV2ZW50cyA9ICcnO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2VuYWJsZWQsIG9wZW4sIHBhcmVudElkLCBlbGVtZW50cywgdHJlZSwgaGFuZGxlQ2xvc2VSZWYsIGlzSG92ZXJPcGVuXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHtcbiAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlcigpO1xuICAgICAgY2xlYXJQb2ludGVyRXZlbnRzKCk7XG4gICAgfVxuICB9LCBbb3BlbiwgY2xlYW51cE1vdXNlTW92ZUhhbmRsZXIsIGNsZWFyUG9pbnRlckV2ZW50c10pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlcigpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICBjbGVhclRpbWVvdXQocmVzdFRpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICBjbGVhclBvaW50ZXJFdmVudHMoKTtcbiAgICB9O1xuICB9LCBbZW5hYmxlZCwgZWxlbWVudHMuZG9tUmVmZXJlbmNlLCBjbGVhbnVwTW91c2VNb3ZlSGFuZGxlciwgY2xlYXJQb2ludGVyRXZlbnRzXSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHNldFBvaW50ZXJSZWYoZXZlbnQpIHtcbiAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uUG9pbnRlckRvd246IHNldFBvaW50ZXJSZWYsXG4gICAgICBvblBvaW50ZXJFbnRlcjogc2V0UG9pbnRlclJlZixcbiAgICAgIG9uTW91c2VNb3ZlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICB9ID0gZXZlbnQ7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1vdXNlTW92ZSgpIHtcbiAgICAgICAgICBpZiAoIWJsb2NrTW91c2VNb3ZlUmVmLmN1cnJlbnQgJiYgIW9wZW5SZWYuY3VycmVudCkge1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIG5hdGl2ZUV2ZW50LCAnaG92ZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vdXNlT25seSAmJiAhaXNNb3VzZUxpa2VQb2ludGVyVHlwZShwb2ludGVyVHlwZVJlZi5jdXJyZW50KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlbiB8fCByZXN0TXMgPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlc3RUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAocG9pbnRlclR5cGVSZWYuY3VycmVudCA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIGhhbmRsZU1vdXNlTW92ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3RUaW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChoYW5kbGVNb3VzZU1vdmUsIHJlc3RNcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LCBbbW91c2VPbmx5LCBvbk9wZW5DaGFuZ2UsIG9wZW4sIG9wZW5SZWYsIHJlc3RNc10pO1xuICBjb25zdCBmbG9hdGluZyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICB9LFxuICAgIG9uTW91c2VMZWF2ZShldmVudCkge1xuICAgICAgY2xvc2VXaXRoRGVsYXkoZXZlbnQubmF0aXZlRXZlbnQsIGZhbHNlKTtcbiAgICB9XG4gIH0pLCBbY2xvc2VXaXRoRGVsYXldKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZW5hYmxlZCA/IHtcbiAgICByZWZlcmVuY2UsXG4gICAgZmxvYXRpbmdcbiAgfSA6IHt9LCBbZW5hYmxlZCwgcmVmZXJlbmNlLCBmbG9hdGluZ10pO1xufVxuXG5jb25zdCBOT09QID0gKCkgPT4ge307XG5jb25zdCBGbG9hdGluZ0RlbGF5R3JvdXBDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBkZWxheTogMCxcbiAgaW5pdGlhbERlbGF5OiAwLFxuICB0aW1lb3V0TXM6IDAsXG4gIGN1cnJlbnRJZDogbnVsbCxcbiAgc2V0Q3VycmVudElkOiBOT09QLFxuICBzZXRTdGF0ZTogTk9PUCxcbiAgaXNJbnN0YW50UGhhc2U6IGZhbHNlXG59KTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgYHVzZURlbGF5R3JvdXAoKWAgaW5zdGVhZC5cbiAqL1xuY29uc3QgdXNlRGVsYXlHcm91cENvbnRleHQgPSAoKSA9PiBSZWFjdC51c2VDb250ZXh0KEZsb2F0aW5nRGVsYXlHcm91cENvbnRleHQpO1xuLyoqXG4gKiBQcm92aWRlcyBjb250ZXh0IGZvciBhIGdyb3VwIG9mIGZsb2F0aW5nIGVsZW1lbnRzIHRoYXQgc2hvdWxkIHNoYXJlIGFcbiAqIGBkZWxheWAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdEZWxheUdyb3VwXG4gKi9cbmZ1bmN0aW9uIEZsb2F0aW5nRGVsYXlHcm91cChwcm9wcykge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgZGVsYXksXG4gICAgdGltZW91dE1zID0gMFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlUmVkdWNlcigocHJldiwgbmV4dCkgPT4gKHtcbiAgICAuLi5wcmV2LFxuICAgIC4uLm5leHRcbiAgfSksIHtcbiAgICBkZWxheSxcbiAgICB0aW1lb3V0TXMsXG4gICAgaW5pdGlhbERlbGF5OiBkZWxheSxcbiAgICBjdXJyZW50SWQ6IG51bGwsXG4gICAgaXNJbnN0YW50UGhhc2U6IGZhbHNlXG4gIH0pO1xuICBjb25zdCBpbml0aWFsQ3VycmVudElkUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBzZXRDdXJyZW50SWQgPSBSZWFjdC51c2VDYWxsYmFjayhjdXJyZW50SWQgPT4ge1xuICAgIHNldFN0YXRlKHtcbiAgICAgIGN1cnJlbnRJZFxuICAgIH0pO1xuICB9LCBbXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoc3RhdGUuY3VycmVudElkKSB7XG4gICAgICBpZiAoaW5pdGlhbEN1cnJlbnRJZFJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIGluaXRpYWxDdXJyZW50SWRSZWYuY3VycmVudCA9IHN0YXRlLmN1cnJlbnRJZDtcbiAgICAgIH0gZWxzZSBpZiAoIXN0YXRlLmlzSW5zdGFudFBoYXNlKSB7XG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICBpc0luc3RhbnRQaGFzZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLmlzSW5zdGFudFBoYXNlKSB7XG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICBpc0luc3RhbnRQaGFzZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpbml0aWFsQ3VycmVudElkUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW3N0YXRlLmN1cnJlbnRJZCwgc3RhdGUuaXNJbnN0YW50UGhhc2VdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZsb2F0aW5nRGVsYXlHcm91cENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBzZXRTdGF0ZSxcbiAgICAgIHNldEN1cnJlbnRJZFxuICAgIH0pLCBbc3RhdGUsIHNldEN1cnJlbnRJZF0pXG4gIH0sIGNoaWxkcmVuKTtcbn1cbi8qKlxuICogRW5hYmxlcyBncm91cGluZyB3aGVuIGNhbGxlZCBpbnNpZGUgYSBjb21wb25lbnQgdGhhdCdzIGEgY2hpbGQgb2YgYVxuICogYEZsb2F0aW5nRGVsYXlHcm91cGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdEZWxheUdyb3VwXG4gKi9cbmZ1bmN0aW9uIHVzZURlbGF5R3JvdXAoY29udGV4dCwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBmbG9hdGluZ0lkXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgaWQ6IG9wdGlvbklkXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBpZCA9IG9wdGlvbklkICE9IG51bGwgPyBvcHRpb25JZCA6IGZsb2F0aW5nSWQ7XG4gIGNvbnN0IGdyb3VwQ29udGV4dCA9IHVzZURlbGF5R3JvdXBDb250ZXh0KCk7XG4gIGNvbnN0IHtcbiAgICBjdXJyZW50SWQsXG4gICAgc2V0Q3VycmVudElkLFxuICAgIGluaXRpYWxEZWxheSxcbiAgICBzZXRTdGF0ZSxcbiAgICB0aW1lb3V0TXNcbiAgfSA9IGdyb3VwQ29udGV4dDtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmICghY3VycmVudElkKSByZXR1cm47XG4gICAgc2V0U3RhdGUoe1xuICAgICAgZGVsYXk6IHtcbiAgICAgICAgb3BlbjogMSxcbiAgICAgICAgY2xvc2U6IGdldERlbGF5KGluaXRpYWxEZWxheSwgJ2Nsb3NlJylcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY3VycmVudElkICE9PSBpZCkge1xuICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtpZCwgb25PcGVuQ2hhbmdlLCBzZXRTdGF0ZSwgY3VycmVudElkLCBpbml0aWFsRGVsYXldKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHVuc2V0KCkge1xuICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgZGVsYXk6IGluaXRpYWxEZWxheSxcbiAgICAgICAgY3VycmVudElkOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKCFjdXJyZW50SWQpIHJldHVybjtcbiAgICBpZiAoIW9wZW4gJiYgY3VycmVudElkID09PSBpZCkge1xuICAgICAgaWYgKHRpbWVvdXRNcykge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodW5zZXQsIHRpbWVvdXRNcyk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdW5zZXQoKTtcbiAgICB9XG4gIH0sIFtvcGVuLCBzZXRTdGF0ZSwgY3VycmVudElkLCBpZCwgb25PcGVuQ2hhbmdlLCBpbml0aWFsRGVsYXksIHRpbWVvdXRNc10pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKHNldEN1cnJlbnRJZCA9PT0gTk9PUCB8fCAhb3BlbikgcmV0dXJuO1xuICAgIHNldEN1cnJlbnRJZChpZCk7XG4gIH0sIFtvcGVuLCBzZXRDdXJyZW50SWQsIGlkXSk7XG4gIHJldHVybiBncm91cENvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIGdldEFuY2VzdG9ycyhub2RlcywgaWQpIHtcbiAgdmFyIF9ub2RlcyRmaW5kO1xuICBsZXQgYWxsQW5jZXN0b3JzID0gW107XG4gIGxldCBjdXJyZW50UGFyZW50SWQgPSAoX25vZGVzJGZpbmQgPSBub2Rlcy5maW5kKG5vZGUgPT4gbm9kZS5pZCA9PT0gaWQpKSA9PSBudWxsID8gdm9pZCAwIDogX25vZGVzJGZpbmQucGFyZW50SWQ7XG4gIHdoaWxlIChjdXJyZW50UGFyZW50SWQpIHtcbiAgICBjb25zdCBjdXJyZW50Tm9kZSA9IG5vZGVzLmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBjdXJyZW50UGFyZW50SWQpO1xuICAgIGN1cnJlbnRQYXJlbnRJZCA9IGN1cnJlbnROb2RlID09IG51bGwgPyB2b2lkIDAgOiBjdXJyZW50Tm9kZS5wYXJlbnRJZDtcbiAgICBpZiAoY3VycmVudE5vZGUpIHtcbiAgICAgIGFsbEFuY2VzdG9ycyA9IGFsbEFuY2VzdG9ycy5jb25jYXQoY3VycmVudE5vZGUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYWxsQW5jZXN0b3JzO1xufVxuXG5mdW5jdGlvbiBnZXRDaGlsZHJlbihub2RlcywgaWQpIHtcbiAgbGV0IGFsbENoaWxkcmVuID0gbm9kZXMuZmlsdGVyKG5vZGUgPT4ge1xuICAgIHZhciBfbm9kZSRjb250ZXh0O1xuICAgIHJldHVybiBub2RlLnBhcmVudElkID09PSBpZCAmJiAoKF9ub2RlJGNvbnRleHQgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0Lm9wZW4pO1xuICB9KTtcbiAgbGV0IGN1cnJlbnRDaGlsZHJlbiA9IGFsbENoaWxkcmVuO1xuICB3aGlsZSAoY3VycmVudENoaWxkcmVuLmxlbmd0aCkge1xuICAgIGN1cnJlbnRDaGlsZHJlbiA9IG5vZGVzLmZpbHRlcihub2RlID0+IHtcbiAgICAgIHZhciBfY3VycmVudENoaWxkcmVuO1xuICAgICAgcmV0dXJuIChfY3VycmVudENoaWxkcmVuID0gY3VycmVudENoaWxkcmVuKSA9PSBudWxsID8gdm9pZCAwIDogX2N1cnJlbnRDaGlsZHJlbi5zb21lKG4gPT4ge1xuICAgICAgICB2YXIgX25vZGUkY29udGV4dDI7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudElkID09PSBuLmlkICYmICgoX25vZGUkY29udGV4dDIgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0Mi5vcGVuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGFsbENoaWxkcmVuID0gYWxsQ2hpbGRyZW4uY29uY2F0KGN1cnJlbnRDaGlsZHJlbik7XG4gIH1cbiAgcmV0dXJuIGFsbENoaWxkcmVuO1xufVxuZnVuY3Rpb24gZ2V0RGVlcGVzdE5vZGUobm9kZXMsIGlkKSB7XG4gIGxldCBkZWVwZXN0Tm9kZUlkO1xuICBsZXQgbWF4RGVwdGggPSAtMTtcbiAgZnVuY3Rpb24gZmluZERlZXBlc3Qobm9kZUlkLCBkZXB0aCkge1xuICAgIGlmIChkZXB0aCA+IG1heERlcHRoKSB7XG4gICAgICBkZWVwZXN0Tm9kZUlkID0gbm9kZUlkO1xuICAgICAgbWF4RGVwdGggPSBkZXB0aDtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRyZW4gPSBnZXRDaGlsZHJlbihub2Rlcywgbm9kZUlkKTtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGZpbmREZWVwZXN0KGNoaWxkLmlkLCBkZXB0aCArIDEpO1xuICAgIH0pO1xuICB9XG4gIGZpbmREZWVwZXN0KGlkLCAwKTtcbiAgcmV0dXJuIG5vZGVzLmZpbmQobm9kZSA9PiBub2RlLmlkID09PSBkZWVwZXN0Tm9kZUlkKTtcbn1cblxuLy8gTW9kaWZpZWQgdG8gYWRkIGNvbmRpdGlvbmFsIGBhcmlhLWhpZGRlbmAgc3VwcG9ydDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVLYXNoZXkvYXJpYS1oaWRkZW4vYmxvYi85MjIwYzhmNGE0ZmQzNWY2M2JlZTU1MTBhOWY0MWEzNzI2NDM4MmQ0L3NyYy9pbmRleC50c1xubGV0IGNvdW50ZXJNYXAgPSAvKiNfX1BVUkVfXyovbmV3IFdlYWtNYXAoKTtcbmxldCB1bmNvbnRyb2xsZWRFbGVtZW50c1NldCA9IC8qI19fUFVSRV9fKi9uZXcgV2Vha1NldCgpO1xubGV0IG1hcmtlck1hcCA9IHt9O1xubGV0IGxvY2tDb3VudCA9IDA7XG5jb25zdCBzdXBwb3J0c0luZXJ0ID0gKCkgPT4gdHlwZW9mIEhUTUxFbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAnaW5lcnQnIGluIEhUTUxFbGVtZW50LnByb3RvdHlwZTtcbmNvbnN0IHVud3JhcEhvc3QgPSBub2RlID0+IG5vZGUgJiYgKG5vZGUuaG9zdCB8fCB1bndyYXBIb3N0KG5vZGUucGFyZW50Tm9kZSkpO1xuY29uc3QgY29ycmVjdEVsZW1lbnRzID0gKHBhcmVudCwgdGFyZ2V0cykgPT4gdGFyZ2V0cy5tYXAodGFyZ2V0ID0+IHtcbiAgaWYgKHBhcmVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuICBjb25zdCBjb3JyZWN0ZWRUYXJnZXQgPSB1bndyYXBIb3N0KHRhcmdldCk7XG4gIGlmIChwYXJlbnQuY29udGFpbnMoY29ycmVjdGVkVGFyZ2V0KSkge1xuICAgIHJldHVybiBjb3JyZWN0ZWRUYXJnZXQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59KS5maWx0ZXIoeCA9PiB4ICE9IG51bGwpO1xuZnVuY3Rpb24gYXBwbHlBdHRyaWJ1dGVUb090aGVycyh1bmNvcnJlY3RlZEF2b2lkRWxlbWVudHMsIGJvZHksIGFyaWFIaWRkZW4sIGluZXJ0KSB7XG4gIGNvbnN0IG1hcmtlck5hbWUgPSAnZGF0YS1mbG9hdGluZy11aS1pbmVydCc7XG4gIGNvbnN0IGNvbnRyb2xBdHRyaWJ1dGUgPSBpbmVydCA/ICdpbmVydCcgOiBhcmlhSGlkZGVuID8gJ2FyaWEtaGlkZGVuJyA6IG51bGw7XG4gIGNvbnN0IGF2b2lkRWxlbWVudHMgPSBjb3JyZWN0RWxlbWVudHMoYm9keSwgdW5jb3JyZWN0ZWRBdm9pZEVsZW1lbnRzKTtcbiAgY29uc3QgZWxlbWVudHNUb0tlZXAgPSBuZXcgU2V0KCk7XG4gIGNvbnN0IGVsZW1lbnRzVG9TdG9wID0gbmV3IFNldChhdm9pZEVsZW1lbnRzKTtcbiAgY29uc3QgaGlkZGVuRWxlbWVudHMgPSBbXTtcbiAgaWYgKCFtYXJrZXJNYXBbbWFya2VyTmFtZV0pIHtcbiAgICBtYXJrZXJNYXBbbWFya2VyTmFtZV0gPSBuZXcgV2Vha01hcCgpO1xuICB9XG4gIGNvbnN0IG1hcmtlckNvdW50ZXIgPSBtYXJrZXJNYXBbbWFya2VyTmFtZV07XG4gIGF2b2lkRWxlbWVudHMuZm9yRWFjaChrZWVwKTtcbiAgZGVlcChib2R5KTtcbiAgZWxlbWVudHNUb0tlZXAuY2xlYXIoKTtcbiAgZnVuY3Rpb24ga2VlcChlbCkge1xuICAgIGlmICghZWwgfHwgZWxlbWVudHNUb0tlZXAuaGFzKGVsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbGVtZW50c1RvS2VlcC5hZGQoZWwpO1xuICAgIGVsLnBhcmVudE5vZGUgJiYga2VlcChlbC5wYXJlbnROb2RlKTtcbiAgfVxuICBmdW5jdGlvbiBkZWVwKHBhcmVudCkge1xuICAgIGlmICghcGFyZW50IHx8IGVsZW1lbnRzVG9TdG9wLmhhcyhwYXJlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFtdLmZvckVhY2guY2FsbChwYXJlbnQuY2hpbGRyZW4sIG5vZGUgPT4ge1xuICAgICAgaWYgKGdldE5vZGVOYW1lKG5vZGUpID09PSAnc2NyaXB0JykgcmV0dXJuO1xuICAgICAgaWYgKGVsZW1lbnRzVG9LZWVwLmhhcyhub2RlKSkge1xuICAgICAgICBkZWVwKG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYXR0ciA9IGNvbnRyb2xBdHRyaWJ1dGUgPyBub2RlLmdldEF0dHJpYnV0ZShjb250cm9sQXR0cmlidXRlKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGFscmVhZHlIaWRkZW4gPSBhdHRyICE9PSBudWxsICYmIGF0dHIgIT09ICdmYWxzZSc7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJWYWx1ZSA9IChjb3VudGVyTWFwLmdldChub2RlKSB8fCAwKSArIDE7XG4gICAgICAgIGNvbnN0IG1hcmtlclZhbHVlID0gKG1hcmtlckNvdW50ZXIuZ2V0KG5vZGUpIHx8IDApICsgMTtcbiAgICAgICAgY291bnRlck1hcC5zZXQobm9kZSwgY291bnRlclZhbHVlKTtcbiAgICAgICAgbWFya2VyQ291bnRlci5zZXQobm9kZSwgbWFya2VyVmFsdWUpO1xuICAgICAgICBoaWRkZW5FbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgICBpZiAoY291bnRlclZhbHVlID09PSAxICYmIGFscmVhZHlIaWRkZW4pIHtcbiAgICAgICAgICB1bmNvbnRyb2xsZWRFbGVtZW50c1NldC5hZGQobm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hcmtlclZhbHVlID09PSAxKSB7XG4gICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUobWFya2VyTmFtZSwgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWxyZWFkeUhpZGRlbiAmJiBjb250cm9sQXR0cmlidXRlKSB7XG4gICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoY29udHJvbEF0dHJpYnV0ZSwgJ3RydWUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGxvY2tDb3VudCsrO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGhpZGRlbkVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCBjb3VudGVyVmFsdWUgPSAoY291bnRlck1hcC5nZXQoZWxlbWVudCkgfHwgMCkgLSAxO1xuICAgICAgY29uc3QgbWFya2VyVmFsdWUgPSAobWFya2VyQ291bnRlci5nZXQoZWxlbWVudCkgfHwgMCkgLSAxO1xuICAgICAgY291bnRlck1hcC5zZXQoZWxlbWVudCwgY291bnRlclZhbHVlKTtcbiAgICAgIG1hcmtlckNvdW50ZXIuc2V0KGVsZW1lbnQsIG1hcmtlclZhbHVlKTtcbiAgICAgIGlmICghY291bnRlclZhbHVlKSB7XG4gICAgICAgIGlmICghdW5jb250cm9sbGVkRWxlbWVudHNTZXQuaGFzKGVsZW1lbnQpICYmIGNvbnRyb2xBdHRyaWJ1dGUpIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShjb250cm9sQXR0cmlidXRlKTtcbiAgICAgICAgfVxuICAgICAgICB1bmNvbnRyb2xsZWRFbGVtZW50c1NldC5kZWxldGUoZWxlbWVudCk7XG4gICAgICB9XG4gICAgICBpZiAoIW1hcmtlclZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG1hcmtlck5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxvY2tDb3VudC0tO1xuICAgIGlmICghbG9ja0NvdW50KSB7XG4gICAgICBjb3VudGVyTWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgdW5jb250cm9sbGVkRWxlbWVudHNTZXQgPSBuZXcgV2Vha1NldCgpO1xuICAgICAgbWFya2VyTWFwID0ge307XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gbWFya090aGVycyhhdm9pZEVsZW1lbnRzLCBhcmlhSGlkZGVuLCBpbmVydCkge1xuICBpZiAoYXJpYUhpZGRlbiA9PT0gdm9pZCAwKSB7XG4gICAgYXJpYUhpZGRlbiA9IGZhbHNlO1xuICB9XG4gIGlmIChpbmVydCA9PT0gdm9pZCAwKSB7XG4gICAgaW5lcnQgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBib2R5ID0gZ2V0RG9jdW1lbnQoYXZvaWRFbGVtZW50c1swXSkuYm9keTtcbiAgcmV0dXJuIGFwcGx5QXR0cmlidXRlVG9PdGhlcnMoYXZvaWRFbGVtZW50cy5jb25jYXQoQXJyYXkuZnJvbShib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLWxpdmVdJykpKSwgYm9keSwgYXJpYUhpZGRlbiwgaW5lcnQpO1xufVxuXG5jb25zdCBnZXRUYWJiYWJsZU9wdGlvbnMgPSAoKSA9PiAoe1xuICBnZXRTaGFkb3dSb290OiB0cnVlLFxuICBkaXNwbGF5Q2hlY2s6XG4gIC8vIEpTRE9NIGRvZXMgbm90IHN1cHBvcnQgdGhlIGB0YWJiYWJsZWAgbGlicmFyeS4gVG8gc29sdmUgdGhpcyB3ZSBjYW5cbiAgLy8gY2hlY2sgaWYgYFJlc2l6ZU9ic2VydmVyYCBpcyBhIHJlYWwgZnVuY3Rpb24gKG5vdCBwb2x5ZmlsbGVkKSwgd2hpY2hcbiAgLy8gZGV0ZXJtaW5lcyBpZiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyBKU0RPTS1saWtlLlxuICB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbicgJiYgUmVzaXplT2JzZXJ2ZXIudG9TdHJpbmcoKS5pbmNsdWRlcygnW25hdGl2ZSBjb2RlXScpID8gJ2Z1bGwnIDogJ25vbmUnXG59KTtcbmZ1bmN0aW9uIGdldFRhYmJhYmxlSW4oY29udGFpbmVyLCBkaXJlY3Rpb24pIHtcbiAgY29uc3QgYWxsVGFiYmFibGUgPSB0YWJiYWJsZShjb250YWluZXIsIGdldFRhYmJhYmxlT3B0aW9ucygpKTtcbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSB7XG4gICAgYWxsVGFiYmFibGUucmV2ZXJzZSgpO1xuICB9XG4gIGNvbnN0IGFjdGl2ZUluZGV4ID0gYWxsVGFiYmFibGUuaW5kZXhPZihhY3RpdmVFbGVtZW50KGdldERvY3VtZW50KGNvbnRhaW5lcikpKTtcbiAgY29uc3QgbmV4dFRhYmJhYmxlRWxlbWVudHMgPSBhbGxUYWJiYWJsZS5zbGljZShhY3RpdmVJbmRleCArIDEpO1xuICByZXR1cm4gbmV4dFRhYmJhYmxlRWxlbWVudHNbMF07XG59XG5mdW5jdGlvbiBnZXROZXh0VGFiYmFibGUoKSB7XG4gIHJldHVybiBnZXRUYWJiYWJsZUluKGRvY3VtZW50LmJvZHksICduZXh0Jyk7XG59XG5mdW5jdGlvbiBnZXRQcmV2aW91c1RhYmJhYmxlKCkge1xuICByZXR1cm4gZ2V0VGFiYmFibGVJbihkb2N1bWVudC5ib2R5LCAncHJldicpO1xufVxuZnVuY3Rpb24gaXNPdXRzaWRlRXZlbnQoZXZlbnQsIGNvbnRhaW5lcikge1xuICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyIHx8IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICByZXR1cm4gIXJlbGF0ZWRUYXJnZXQgfHwgIWNvbnRhaW5zKGNvbnRhaW5lckVsZW1lbnQsIHJlbGF0ZWRUYXJnZXQpO1xufVxuZnVuY3Rpb24gZGlzYWJsZUZvY3VzSW5zaWRlKGNvbnRhaW5lcikge1xuICBjb25zdCB0YWJiYWJsZUVsZW1lbnRzID0gdGFiYmFibGUoY29udGFpbmVyLCBnZXRUYWJiYWJsZU9wdGlvbnMoKSk7XG4gIHRhYmJhYmxlRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBlbGVtZW50LmRhdGFzZXQudGFiaW5kZXggPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKSB8fCAnJztcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgfSk7XG59XG5mdW5jdGlvbiBlbmFibGVGb2N1c0luc2lkZShjb250YWluZXIpIHtcbiAgY29uc3QgZWxlbWVudHMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtdGFiaW5kZXhdJyk7XG4gIGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgdGFiaW5kZXggPSBlbGVtZW50LmRhdGFzZXQudGFiaW5kZXg7XG4gICAgZGVsZXRlIGVsZW1lbnQuZGF0YXNldC50YWJpbmRleDtcbiAgICBpZiAodGFiaW5kZXgpIHtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIHRhYmluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgfVxuICB9KTtcbn1cbmZ1bmN0aW9uIGdldENsb3Nlc3RUYWJiYWJsZUVsZW1lbnQodGFiYmFibGVFbGVtZW50cywgZWxlbWVudCwgZmxvYXRpbmcpIHtcbiAgY29uc3QgZWxlbWVudEluZGV4ID0gdGFiYmFibGVFbGVtZW50cy5pbmRleE9mKGVsZW1lbnQpO1xuICBmdW5jdGlvbiB0cmF2ZXJzZVRhYmJhYmxlRWxlbWVudHMobmV4dCkge1xuICAgIGNvbnN0IGF0dHIgPSBjcmVhdGVBdHRyaWJ1dGUoJ2ZvY3VzLWd1YXJkJyk7XG4gICAgbGV0IGluZGV4ID0gZWxlbWVudEluZGV4ICsgKG5leHQgPyAxIDogMCk7XG4gICAgbGV0IGN1cnJlbnRFbGVtZW50ID0gdGFiYmFibGVFbGVtZW50c1tpbmRleF07XG4gICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50ICYmICghY3VycmVudEVsZW1lbnQuaXNDb25uZWN0ZWQgfHwgY3VycmVudEVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHIpIHx8IGNvbnRhaW5zKGZsb2F0aW5nLCBjdXJyZW50RWxlbWVudCkpKSB7XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5kZXgtLTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRFbGVtZW50ID0gdGFiYmFibGVFbGVtZW50c1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50RWxlbWVudDtcbiAgfVxuXG4gIC8vIEZpcnN0LCB0cnkgdG8gZmluZCB0aGUgbmV4dCB0YWJiYWJsZSBlbGVtZW50XG4gIGNvbnN0IG5leHQgPSB0cmF2ZXJzZVRhYmJhYmxlRWxlbWVudHModHJ1ZSk7XG4gIGlmIChuZXh0KSB7XG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cblxuICAvLyBJZiB3ZSBjYW4ndCBmaW5kIGEgbmV4dCB0YWJiYWJsZSBlbGVtZW50LCB0cnkgdG8gZmluZCB0aGUgcHJldmlvdXMgb25lXG4gIHJldHVybiB0cmF2ZXJzZVRhYmJhYmxlRWxlbWVudHMoZmFsc2UpO1xufVxuXG4vLyBTZWUgRGllZ28gSGF6J3MgU2FuZGJveCBmb3IgbWFraW5nIHRoaXMgbG9naWMgd29yayB3ZWxsIG9uIFNhZmFyaS9pT1M6XG4vLyBodHRwczovL2NvZGVzYW5kYm94LmlvL3MvdGFiYmFibGUtcG9ydGFsLWY0dG5nP2ZpbGU9L3NyYy9Gb2N1c1RyYXAudHN4XG5cbmNvbnN0IEhJRERFTl9TVFlMRVMgPSB7XG4gIGJvcmRlcjogMCxcbiAgY2xpcDogJ3JlY3QoMCAwIDAgMCknLFxuICBoZWlnaHQ6ICcxcHgnLFxuICBtYXJnaW46ICctMXB4JyxcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICBwYWRkaW5nOiAwLFxuICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gIHdpZHRoOiAnMXB4JyxcbiAgdG9wOiAwLFxuICBsZWZ0OiAwXG59O1xubGV0IHRpbWVvdXRJZDtcbmZ1bmN0aW9uIHNldEFjdGl2ZUVsZW1lbnRPblRhYihldmVudCkge1xuICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgIGV2ZW50LnRhcmdldDtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgfVxufVxuY29uc3QgRm9jdXNHdWFyZCA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIEZvY3VzR3VhcmQocHJvcHMsIHJlZikge1xuICBjb25zdCBbcm9sZSwgc2V0Um9sZV0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKGlzU2FmYXJpKCkpIHtcbiAgICAgIC8vIFVubGlrZSBvdGhlciBzY3JlZW4gcmVhZGVycyBzdWNoIGFzIE5WREEgYW5kIEpBV1MsIHRoZSB2aXJ0dWFsIGN1cnNvclxuICAgICAgLy8gb24gVm9pY2VPdmVyIGRvZXMgdHJpZ2dlciB0aGUgb25Gb2N1cyBldmVudCwgc28gd2UgY2FuIHVzZSB0aGUgZm9jdXNcbiAgICAgIC8vIHRyYXAgZWxlbWVudC4gT24gU2FmYXJpLCBvbmx5IGJ1dHRvbnMgdHJpZ2dlciB0aGUgb25Gb2N1cyBldmVudC5cbiAgICAgIC8vIE5COiBcImdyb3VwXCIgcm9sZSBpbiB0aGUgU2FuZGJveCBubyBsb25nZXIgYXBwZWFycyB0byB3b3JrLCBtdXN0IGJlIGFcbiAgICAgIC8vIGJ1dHRvbiByb2xlLlxuICAgICAgc2V0Um9sZSgnYnV0dG9uJyk7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBzZXRBY3RpdmVFbGVtZW50T25UYWIpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgc2V0QWN0aXZlRWxlbWVudE9uVGFiKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIGNvbnN0IHJlc3RQcm9wcyA9IHtcbiAgICByZWYsXG4gICAgdGFiSW5kZXg6IDAsXG4gICAgLy8gUm9sZSBpcyBvbmx5IGZvciBWb2ljZU92ZXJcbiAgICByb2xlLFxuICAgICdhcmlhLWhpZGRlbic6IHJvbGUgPyB1bmRlZmluZWQgOiB0cnVlLFxuICAgIFtjcmVhdGVBdHRyaWJ1dGUoJ2ZvY3VzLWd1YXJkJyldOiAnJyxcbiAgICBzdHlsZTogSElEREVOX1NUWUxFU1xuICB9O1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIF9leHRlbmRzKHt9LCBwcm9wcywgcmVzdFByb3BzKSk7XG59KTtcblxuY29uc3QgUG9ydGFsQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuY29uc3QgYXR0ciA9IC8qI19fUFVSRV9fKi9jcmVhdGVBdHRyaWJ1dGUoJ3BvcnRhbCcpO1xuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdQb3J0YWwjdXNlZmxvYXRpbmdwb3J0YWxub2RlXG4gKi9cbmZ1bmN0aW9uIHVzZUZsb2F0aW5nUG9ydGFsTm9kZShwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIHJvb3RcbiAgfSA9IHByb3BzO1xuICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKCk7XG4gIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KCk7XG4gIGNvbnN0IFtwb3J0YWxOb2RlLCBzZXRQb3J0YWxOb2RlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBwb3J0YWxOb2RlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHBvcnRhbE5vZGUgPT0gbnVsbCB8fCBwb3J0YWxOb2RlLnJlbW92ZSgpO1xuICAgICAgLy8gQWxsb3cgdGhlIHN1YnNlcXVlbnQgbGF5b3V0IGVmZmVjdHMgdG8gY3JlYXRlIGEgbmV3IG5vZGUgb24gdXBkYXRlcy5cbiAgICAgIC8vIFRoZSBwb3J0YWwgbm9kZSB3aWxsIHN0aWxsIGJlIGNsZWFuZWQgdXAgb24gdW5tb3VudC5cbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjQ1NFxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBwb3J0YWxOb2RlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSwgW3BvcnRhbE5vZGVdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIC8vIFdhaXQgZm9yIHRoZSB1bmlxdWVJZCB0byBiZSBnZW5lcmF0ZWQgYmVmb3JlIGNyZWF0aW5nIHRoZSBwb3J0YWwgbm9kZSBpblxuICAgIC8vIFJlYWN0IDwxOCAodXNpbmcgYHVzZUZsb2F0aW5nSWRgIGluc3RlYWQgb2YgdGhlIG5hdGl2ZSBgdXNlSWRgKS5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI3NzhcbiAgICBpZiAoIXVuaXF1ZUlkKSByZXR1cm47XG4gICAgaWYgKHBvcnRhbE5vZGVSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIGNvbnN0IGV4aXN0aW5nSWRSb290ID0gaWQgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkgOiBudWxsO1xuICAgIGlmICghZXhpc3RpbmdJZFJvb3QpIHJldHVybjtcbiAgICBjb25zdCBzdWJSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc3ViUm9vdC5pZCA9IHVuaXF1ZUlkO1xuICAgIHN1YlJvb3Quc2V0QXR0cmlidXRlKGF0dHIsICcnKTtcbiAgICBleGlzdGluZ0lkUm9vdC5hcHBlbmRDaGlsZChzdWJSb290KTtcbiAgICBwb3J0YWxOb2RlUmVmLmN1cnJlbnQgPSBzdWJSb290O1xuICAgIHNldFBvcnRhbE5vZGUoc3ViUm9vdCk7XG4gIH0sIFtpZCwgdW5pcXVlSWRdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmICghdW5pcXVlSWQpIHJldHVybjtcbiAgICBpZiAocG9ydGFsTm9kZVJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgbGV0IGNvbnRhaW5lciA9IHJvb3QgfHwgKHBvcnRhbENvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHBvcnRhbENvbnRleHQucG9ydGFsTm9kZSk7XG4gICAgaWYgKGNvbnRhaW5lciAmJiAhaXNFbGVtZW50KGNvbnRhaW5lcikpIGNvbnRhaW5lciA9IGNvbnRhaW5lci5jdXJyZW50O1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lciB8fCBkb2N1bWVudC5ib2R5O1xuICAgIGxldCBpZFdyYXBwZXIgPSBudWxsO1xuICAgIGlmIChpZCkge1xuICAgICAgaWRXcmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBpZFdyYXBwZXIuaWQgPSBpZDtcbiAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpZFdyYXBwZXIpO1xuICAgIH1cbiAgICBjb25zdCBzdWJSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc3ViUm9vdC5pZCA9IHVuaXF1ZUlkO1xuICAgIHN1YlJvb3Quc2V0QXR0cmlidXRlKGF0dHIsICcnKTtcbiAgICBjb250YWluZXIgPSBpZFdyYXBwZXIgfHwgY29udGFpbmVyO1xuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzdWJSb290KTtcbiAgICBwb3J0YWxOb2RlUmVmLmN1cnJlbnQgPSBzdWJSb290O1xuICAgIHNldFBvcnRhbE5vZGUoc3ViUm9vdCk7XG4gIH0sIFtpZCwgcm9vdCwgdW5pcXVlSWQsIHBvcnRhbENvbnRleHRdKTtcbiAgcmV0dXJuIHBvcnRhbE5vZGU7XG59XG4vKipcbiAqIFBvcnRhbHMgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW50byBhIGdpdmVuIGNvbnRhaW5lciBlbGVtZW50IOKAlCBieSBkZWZhdWx0LFxuICogb3V0c2lkZSBvZiB0aGUgYXBwIHJvb3QgYW5kIGludG8gdGhlIGJvZHkuXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgY2FuIGFwcGVhciBvdXRzaWRlIGFueVxuICogcG90ZW50aWFsIHBhcmVudCBjb250YWluZXJzIHRoYXQgY2F1c2UgY2xpcHBpbmcgKHN1Y2ggYXMgYG92ZXJmbG93OiBoaWRkZW5gKSxcbiAqIHdoaWxlIHJldGFpbmluZyBpdHMgbG9jYXRpb24gaW4gdGhlIFJlYWN0IHRyZWUuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdQb3J0YWxcbiAqL1xuZnVuY3Rpb24gRmxvYXRpbmdQb3J0YWwocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGlkLFxuICAgIHJvb3QgPSBudWxsLFxuICAgIHByZXNlcnZlVGFiT3JkZXIgPSB0cnVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcG9ydGFsTm9kZSA9IHVzZUZsb2F0aW5nUG9ydGFsTm9kZSh7XG4gICAgaWQsXG4gICAgcm9vdFxuICB9KTtcbiAgY29uc3QgW2ZvY3VzTWFuYWdlclN0YXRlLCBzZXRGb2N1c01hbmFnZXJTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgYmVmb3JlT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgYWZ0ZXJPdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBiZWZvcmVJbnNpZGVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGFmdGVySW5zaWRlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBzaG91bGRSZW5kZXJHdWFyZHMgPVxuICAvLyBUaGUgRm9jdXNNYW5hZ2VyIGFuZCB0aGVyZWZvcmUgZmxvYXRpbmcgZWxlbWVudCBhcmUgY3VycmVudGx5IG9wZW4vXG4gIC8vIHJlbmRlcmVkLlxuICAhIWZvY3VzTWFuYWdlclN0YXRlICYmXG4gIC8vIEd1YXJkcyBhcmUgb25seSBmb3Igbm9uLW1vZGFsIGZvY3VzIG1hbmFnZW1lbnQuXG4gICFmb2N1c01hbmFnZXJTdGF0ZS5tb2RhbCAmJlxuICAvLyBEb24ndCByZW5kZXIgaWYgdW5tb3VudCBpcyB0cmFuc2l0aW9uaW5nLlxuICBmb2N1c01hbmFnZXJTdGF0ZS5vcGVuICYmIHByZXNlcnZlVGFiT3JkZXIgJiYgISEocm9vdCB8fCBwb3J0YWxOb2RlKTtcblxuICAvLyBodHRwczovL2NvZGVzYW5kYm94LmlvL3MvdGFiYmFibGUtcG9ydGFsLWY0dG5nP2ZpbGU9L3NyYy9UYWJiYWJsZVBvcnRhbC50c3hcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXBvcnRhbE5vZGUgfHwgIXByZXNlcnZlVGFiT3JkZXIgfHwgZm9jdXNNYW5hZ2VyU3RhdGUgIT0gbnVsbCAmJiBmb2N1c01hbmFnZXJTdGF0ZS5tb2RhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSBlbGVtZW50cyBpbnNpZGUgdGhlIHBvcnRhbCBlbGVtZW50IGFyZSB0YWJiYWJsZSBvbmx5IHdoZW4gdGhlXG4gICAgLy8gcG9ydGFsIGhhcyBhbHJlYWR5IGJlZW4gZm9jdXNlZCwgZWl0aGVyIGJ5IHRhYmJpbmcgaW50byBhIGZvY3VzIHRyYXBcbiAgICAvLyBlbGVtZW50IG91dHNpZGUgb3IgdXNpbmcgdGhlIG1vdXNlLlxuICAgIGZ1bmN0aW9uIG9uRm9jdXMoZXZlbnQpIHtcbiAgICAgIGlmIChwb3J0YWxOb2RlICYmIGlzT3V0c2lkZUV2ZW50KGV2ZW50KSkge1xuICAgICAgICBjb25zdCBmb2N1c2luZyA9IGV2ZW50LnR5cGUgPT09ICdmb2N1c2luJztcbiAgICAgICAgY29uc3QgbWFuYWdlRm9jdXMgPSBmb2N1c2luZyA/IGVuYWJsZUZvY3VzSW5zaWRlIDogZGlzYWJsZUZvY3VzSW5zaWRlO1xuICAgICAgICBtYW5hZ2VGb2N1cyhwb3J0YWxOb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gTGlzdGVuIHRvIHRoZSBldmVudCBvbiB0aGUgY2FwdHVyZSBwaGFzZSBzbyB0aGV5IHJ1biBiZWZvcmUgdGhlIGZvY3VzXG4gICAgLy8gdHJhcCBlbGVtZW50cyBvbkZvY3VzIHByb3AgaXMgY2FsbGVkLlxuICAgIHBvcnRhbE5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIG9uRm9jdXMsIHRydWUpO1xuICAgIHBvcnRhbE5vZGUuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBvbkZvY3VzLCB0cnVlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcG9ydGFsTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgb25Gb2N1cywgdHJ1ZSk7XG4gICAgICBwb3J0YWxOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0Jywgb25Gb2N1cywgdHJ1ZSk7XG4gICAgfTtcbiAgfSwgW3BvcnRhbE5vZGUsIHByZXNlcnZlVGFiT3JkZXIsIGZvY3VzTWFuYWdlclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBmb2N1c01hbmFnZXJTdGF0ZS5tb2RhbF0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9ydGFsQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgICBwcmVzZXJ2ZVRhYk9yZGVyLFxuICAgICAgYmVmb3JlT3V0c2lkZVJlZixcbiAgICAgIGFmdGVyT3V0c2lkZVJlZixcbiAgICAgIGJlZm9yZUluc2lkZVJlZixcbiAgICAgIGFmdGVySW5zaWRlUmVmLFxuICAgICAgcG9ydGFsTm9kZSxcbiAgICAgIHNldEZvY3VzTWFuYWdlclN0YXRlXG4gICAgfSksIFtwcmVzZXJ2ZVRhYk9yZGVyLCBwb3J0YWxOb2RlXSlcbiAgfSwgc2hvdWxkUmVuZGVyR3VhcmRzICYmIHBvcnRhbE5vZGUgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNHdWFyZCwge1xuICAgIFwiZGF0YS10eXBlXCI6IFwib3V0c2lkZVwiLFxuICAgIHJlZjogYmVmb3JlT3V0c2lkZVJlZixcbiAgICBvbkZvY3VzOiBldmVudCA9PiB7XG4gICAgICBpZiAoaXNPdXRzaWRlRXZlbnQoZXZlbnQsIHBvcnRhbE5vZGUpKSB7XG4gICAgICAgIHZhciBfYmVmb3JlSW5zaWRlUmVmJGN1cnI7XG4gICAgICAgIChfYmVmb3JlSW5zaWRlUmVmJGN1cnIgPSBiZWZvcmVJbnNpZGVSZWYuY3VycmVudCkgPT0gbnVsbCB8fCBfYmVmb3JlSW5zaWRlUmVmJGN1cnIuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXZUYWJiYWJsZSA9IGdldFByZXZpb3VzVGFiYmFibGUoKSB8fCAoZm9jdXNNYW5hZ2VyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGZvY3VzTWFuYWdlclN0YXRlLnJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQpO1xuICAgICAgICBwcmV2VGFiYmFibGUgPT0gbnVsbCB8fCBwcmV2VGFiYmFibGUuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pLCBzaG91bGRSZW5kZXJHdWFyZHMgJiYgcG9ydGFsTm9kZSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIFwiYXJpYS1vd25zXCI6IHBvcnRhbE5vZGUuaWQsXG4gICAgc3R5bGU6IEhJRERFTl9TVFlMRVNcbiAgfSksIHBvcnRhbE5vZGUgJiYgLyojX19QVVJFX18qL1JlYWN0RE9NLmNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZSksIHNob3VsZFJlbmRlckd1YXJkcyAmJiBwb3J0YWxOb2RlICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZvY3VzR3VhcmQsIHtcbiAgICBcImRhdGEtdHlwZVwiOiBcIm91dHNpZGVcIixcbiAgICByZWY6IGFmdGVyT3V0c2lkZVJlZixcbiAgICBvbkZvY3VzOiBldmVudCA9PiB7XG4gICAgICBpZiAoaXNPdXRzaWRlRXZlbnQoZXZlbnQsIHBvcnRhbE5vZGUpKSB7XG4gICAgICAgIHZhciBfYWZ0ZXJJbnNpZGVSZWYkY3VycmU7XG4gICAgICAgIChfYWZ0ZXJJbnNpZGVSZWYkY3VycmUgPSBhZnRlckluc2lkZVJlZi5jdXJyZW50KSA9PSBudWxsIHx8IF9hZnRlckluc2lkZVJlZiRjdXJyZS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV4dFRhYmJhYmxlID0gZ2V0TmV4dFRhYmJhYmxlKCkgfHwgKGZvY3VzTWFuYWdlclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBmb2N1c01hbmFnZXJTdGF0ZS5yZWZzLmRvbVJlZmVyZW5jZS5jdXJyZW50KTtcbiAgICAgICAgbmV4dFRhYmJhYmxlID09IG51bGwgfHwgbmV4dFRhYmJhYmxlLmZvY3VzKCk7XG4gICAgICAgIChmb2N1c01hbmFnZXJTdGF0ZSA9PSBudWxsID8gdm9pZCAwIDogZm9jdXNNYW5hZ2VyU3RhdGUuY2xvc2VPbkZvY3VzT3V0KSAmJiAoZm9jdXNNYW5hZ2VyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IGZvY3VzTWFuYWdlclN0YXRlLm9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pKTtcbn1cbmNvbnN0IHVzZVBvcnRhbENvbnRleHQgPSAoKSA9PiBSZWFjdC51c2VDb250ZXh0KFBvcnRhbENvbnRleHQpO1xuXG5jb25zdCBMSVNUX0xJTUlUID0gMjA7XG5sZXQgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cyA9IFtdO1xuZnVuY3Rpb24gYWRkUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KGVsZW1lbnQpIHtcbiAgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cyA9IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudHMuZmlsdGVyKGVsID0+IGVsLmlzQ29ubmVjdGVkKTtcbiAgbGV0IHRhYmJhYmxlRWwgPSBlbGVtZW50O1xuICBpZiAoIXRhYmJhYmxlRWwgfHwgZ2V0Tm9kZU5hbWUodGFiYmFibGVFbCkgPT09ICdib2R5JykgcmV0dXJuO1xuICBpZiAoIWlzVGFiYmFibGUodGFiYmFibGVFbCwgZ2V0VGFiYmFibGVPcHRpb25zKCkpKSB7XG4gICAgY29uc3QgdGFiYmFibGVDaGlsZCA9IHRhYmJhYmxlKHRhYmJhYmxlRWwsIGdldFRhYmJhYmxlT3B0aW9ucygpKVswXTtcbiAgICBpZiAodGFiYmFibGVDaGlsZCkge1xuICAgICAgdGFiYmFibGVFbCA9IHRhYmJhYmxlQ2hpbGQ7XG4gICAgfVxuICB9XG4gIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudHMucHVzaCh0YWJiYWJsZUVsKTtcbiAgaWYgKHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudHMubGVuZ3RoID4gTElTVF9MSU1JVCkge1xuICAgIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudHMgPSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnRzLnNsaWNlKC1MSVNUX0xJTUlUKTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0UHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCkge1xuICByZXR1cm4gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50cy5zbGljZSgpLnJldmVyc2UoKS5maW5kKGVsID0+IGVsLmlzQ29ubmVjdGVkKTtcbn1cbmNvbnN0IFZpc3VhbGx5SGlkZGVuRGlzbWlzcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIFZpc3VhbGx5SGlkZGVuRGlzbWlzcyhwcm9wcywgcmVmKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHtcbiAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgIHJlZjogcmVmLFxuICAgIHRhYkluZGV4OiAtMSxcbiAgICBzdHlsZTogSElEREVOX1NUWUxFU1xuICB9KSk7XG59KTtcbi8qKlxuICogUHJvdmlkZXMgZm9jdXMgbWFuYWdlbWVudCBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvRmxvYXRpbmdGb2N1c01hbmFnZXJcbiAqL1xuZnVuY3Rpb24gRmxvYXRpbmdGb2N1c01hbmFnZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIGNvbnRleHQsXG4gICAgY2hpbGRyZW4sXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBvcmRlciA9IFsnY29udGVudCddLFxuICAgIGd1YXJkczogX2d1YXJkcyA9IHRydWUsXG4gICAgaW5pdGlhbEZvY3VzID0gMCxcbiAgICByZXR1cm5Gb2N1cyA9IHRydWUsXG4gICAgcmVzdG9yZUZvY3VzID0gZmFsc2UsXG4gICAgbW9kYWwgPSB0cnVlLFxuICAgIHZpc3VhbGx5SGlkZGVuRGlzbWlzcyA9IGZhbHNlLFxuICAgIGNsb3NlT25Gb2N1c091dCA9IHRydWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICByZWZzLFxuICAgIG5vZGVJZCxcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZXZlbnRzLFxuICAgIGRhdGFSZWYsXG4gICAgZmxvYXRpbmdJZCxcbiAgICBlbGVtZW50czoge1xuICAgICAgZG9tUmVmZXJlbmNlLFxuICAgICAgZmxvYXRpbmdcbiAgICB9XG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCBpZ25vcmVJbml0aWFsRm9jdXMgPSB0eXBlb2YgaW5pdGlhbEZvY3VzID09PSAnbnVtYmVyJyAmJiBpbml0aWFsRm9jdXMgPCAwO1xuICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIGEgY29tYm9ib3ggYW5kIGlzIHR5cGVhYmxlIChlLmcuIGlucHV0L3RleHRhcmVhKSxcbiAgLy8gdGhlcmUgYXJlIGRpZmZlcmVudCBmb2N1cyBzZW1hbnRpY3MuIFRoZSBndWFyZHMgc2hvdWxkIG5vdCBiZSByZW5kZXJlZCwgYnV0XG4gIC8vIGFyaWEtaGlkZGVuIHNob3VsZCBiZSBhcHBsaWVkIHRvIGFsbCBub2RlcyBzdGlsbC4gRnVydGhlciwgdGhlIHZpc3VhbGx5XG4gIC8vIGhpZGRlbiBkaXNtaXNzIGJ1dHRvbiBzaG91bGQgb25seSBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCwgbm90IHRoZVxuICAvLyBzdGFydC5cbiAgY29uc3QgaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94ID0gaXNUeXBlYWJsZUNvbWJvYm94KGRvbVJlZmVyZW5jZSkgJiYgaWdub3JlSW5pdGlhbEZvY3VzO1xuXG4gIC8vIEZvcmNlIHRoZSBndWFyZHMgdG8gYmUgcmVuZGVyZWQgaWYgdGhlIGBpbmVydGAgYXR0cmlidXRlIGlzIG5vdCBzdXBwb3J0ZWQuXG4gIGNvbnN0IGd1YXJkcyA9IHN1cHBvcnRzSW5lcnQoKSA/IF9ndWFyZHMgOiB0cnVlO1xuICBjb25zdCBvcmRlclJlZiA9IHVzZUxhdGVzdFJlZihvcmRlcik7XG4gIGNvbnN0IGluaXRpYWxGb2N1c1JlZiA9IHVzZUxhdGVzdFJlZihpbml0aWFsRm9jdXMpO1xuICBjb25zdCByZXR1cm5Gb2N1c1JlZiA9IHVzZUxhdGVzdFJlZihyZXR1cm5Gb2N1cyk7XG4gIGNvbnN0IHRyZWUgPSB1c2VGbG9hdGluZ1RyZWUoKTtcbiAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoKTtcbiAgY29uc3Qgc3RhcnREaXNtaXNzQnV0dG9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBlbmREaXNtaXNzQnV0dG9uUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBwcmV2ZW50UmV0dXJuRm9jdXNSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBpc1BvaW50ZXJEb3duUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgdGFiYmFibGVJbmRleFJlZiA9IFJlYWN0LnVzZVJlZigtMSk7XG4gIGNvbnN0IGlzSW5zaWRlUG9ydGFsID0gcG9ydGFsQ29udGV4dCAhPSBudWxsO1xuICBjb25zdCBmaXJzdEVsZW1lbnRDaGlsZCA9IGZsb2F0aW5nID09IG51bGwgPyB2b2lkIDAgOiBmbG9hdGluZy5maXJzdEVsZW1lbnRDaGlsZDtcbiAgLy8gSWYgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgYWN0aW5nIGFzIGEgcG9zaXRpb25pbmcgd3JhcHBlciByYXRoZXIgdGhhbiB0aGVcbiAgLy8gZWxlbWVudCB0aGF0IHJlY2VpdmVzIGFyaWEgcHJvcHMsIHVzZSBpdCBhcyB0aGUgZm9jdXMgcm9vdCBpbnN0ZWFkLlxuICBjb25zdCBmbG9hdGluZ0ZvY3VzTm9kZSA9IChmaXJzdEVsZW1lbnRDaGlsZCA9PSBudWxsID8gdm9pZCAwIDogZmlyc3RFbGVtZW50Q2hpbGQuaWQpID09PSBmbG9hdGluZ0lkID8gZmlyc3RFbGVtZW50Q2hpbGQgOiBmbG9hdGluZztcbiAgY29uc3QgZ2V0VGFiYmFibGVDb250ZW50ID0gdXNlRWZmZWN0RXZlbnQoZnVuY3Rpb24gKGNvbnRhaW5lcikge1xuICAgIGlmIChjb250YWluZXIgPT09IHZvaWQgMCkge1xuICAgICAgY29udGFpbmVyID0gZmxvYXRpbmdGb2N1c05vZGU7XG4gICAgfVxuICAgIHJldHVybiBjb250YWluZXIgPyB0YWJiYWJsZShjb250YWluZXIsIGdldFRhYmJhYmxlT3B0aW9ucygpKSA6IFtdO1xuICB9KTtcbiAgY29uc3QgZ2V0VGFiYmFibGVFbGVtZW50cyA9IHVzZUVmZmVjdEV2ZW50KGNvbnRhaW5lciA9PiB7XG4gICAgY29uc3QgY29udGVudCA9IGdldFRhYmJhYmxlQ29udGVudChjb250YWluZXIpO1xuICAgIHJldHVybiBvcmRlclJlZi5jdXJyZW50Lm1hcCh0eXBlID0+IHtcbiAgICAgIGlmIChkb21SZWZlcmVuY2UgJiYgdHlwZSA9PT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgICAgcmV0dXJuIGRvbVJlZmVyZW5jZTtcbiAgICAgIH1cbiAgICAgIGlmIChmbG9hdGluZ0ZvY3VzTm9kZSAmJiB0eXBlID09PSAnZmxvYXRpbmcnKSB7XG4gICAgICAgIHJldHVybiBmbG9hdGluZ0ZvY3VzTm9kZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmZpbHRlcihCb29sZWFuKS5mbGF0KCk7XG4gIH0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICghbW9kYWwpIHJldHVybjtcbiAgICBmdW5jdGlvbiBvbktleURvd24oZXZlbnQpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgIC8vIFRoZSBmb2N1cyBndWFyZHMgaGF2ZSBub3RoaW5nIHRvIGZvY3VzLCBzbyB3ZSBuZWVkIHRvIHN0b3AgdGhlIGV2ZW50LlxuICAgICAgICBpZiAoY29udGFpbnMoZmxvYXRpbmdGb2N1c05vZGUsIGFjdGl2ZUVsZW1lbnQoZ2V0RG9jdW1lbnQoZmxvYXRpbmdGb2N1c05vZGUpKSkgJiYgZ2V0VGFiYmFibGVDb250ZW50KCkubGVuZ3RoID09PSAwICYmICFpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3gpIHtcbiAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVscyA9IGdldFRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGV2ZW50KTtcbiAgICAgICAgaWYgKG9yZGVyUmVmLmN1cnJlbnRbMF0gPT09ICdyZWZlcmVuY2UnICYmIHRhcmdldCA9PT0gZG9tUmVmZXJlbmNlKSB7XG4gICAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIGVucXVldWVGb2N1cyhlbHNbZWxzLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW5xdWV1ZUZvY3VzKGVsc1sxXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChvcmRlclJlZi5jdXJyZW50WzFdID09PSAnZmxvYXRpbmcnICYmIHRhcmdldCA9PT0gZmxvYXRpbmdGb2N1c05vZGUgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGVucXVldWVGb2N1cyhlbHNbMF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRvYyA9IGdldERvY3VtZW50KGZsb2F0aW5nRm9jdXNOb2RlKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93bik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXlEb3duKTtcbiAgICB9O1xuICB9LCBbZGlzYWJsZWQsIGRvbVJlZmVyZW5jZSwgZmxvYXRpbmdGb2N1c05vZGUsIG1vZGFsLCBvcmRlclJlZiwgaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94LCBnZXRUYWJiYWJsZUNvbnRlbnQsIGdldFRhYmJhYmxlRWxlbWVudHNdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIWZsb2F0aW5nKSByZXR1cm47XG4gICAgZnVuY3Rpb24gaGFuZGxlRm9jdXNJbihldmVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGV2ZW50KTtcbiAgICAgIGNvbnN0IHRhYmJhYmxlQ29udGVudCA9IGdldFRhYmJhYmxlQ29udGVudCgpO1xuICAgICAgY29uc3QgdGFiYmFibGVJbmRleCA9IHRhYmJhYmxlQ29udGVudC5pbmRleE9mKHRhcmdldCk7XG4gICAgICBpZiAodGFiYmFibGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGFiYmFibGVJbmRleFJlZi5jdXJyZW50ID0gdGFiYmFibGVJbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgZmxvYXRpbmcuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzSW4pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBmbG9hdGluZy5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgfTtcbiAgfSwgW2Rpc2FibGVkLCBmbG9hdGluZywgZ2V0VGFiYmFibGVDb250ZW50XSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCFjbG9zZU9uRm9jdXNPdXQpIHJldHVybjtcblxuICAgIC8vIEluIFNhZmFyaSwgYnV0dG9ucyBsb3NlIGZvY3VzIHdoZW4gcHJlc3NpbmcgdGhlbS5cbiAgICBmdW5jdGlvbiBoYW5kbGVQb2ludGVyRG93bigpIHtcbiAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaXNQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlRm9jdXNPdXRzaWRlKGV2ZW50KSB7XG4gICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldDtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgY29uc3QgbW92ZWRUb1VucmVsYXRlZE5vZGUgPSAhKGNvbnRhaW5zKGRvbVJlZmVyZW5jZSwgcmVsYXRlZFRhcmdldCkgfHwgY29udGFpbnMoZmxvYXRpbmcsIHJlbGF0ZWRUYXJnZXQpIHx8IGNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQsIGZsb2F0aW5nKSB8fCBjb250YWlucyhwb3J0YWxDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBwb3J0YWxDb250ZXh0LnBvcnRhbE5vZGUsIHJlbGF0ZWRUYXJnZXQpIHx8IHJlbGF0ZWRUYXJnZXQgIT0gbnVsbCAmJiByZWxhdGVkVGFyZ2V0Lmhhc0F0dHJpYnV0ZShjcmVhdGVBdHRyaWJ1dGUoJ2ZvY3VzLWd1YXJkJykpIHx8IHRyZWUgJiYgKGdldENoaWxkcmVuKHRyZWUubm9kZXNSZWYuY3VycmVudCwgbm9kZUlkKS5maW5kKG5vZGUgPT4ge1xuICAgICAgICAgIHZhciBfbm9kZSRjb250ZXh0LCBfbm9kZSRjb250ZXh0MjtcbiAgICAgICAgICByZXR1cm4gY29udGFpbnMoKF9ub2RlJGNvbnRleHQgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0LmVsZW1lbnRzLmZsb2F0aW5nLCByZWxhdGVkVGFyZ2V0KSB8fCBjb250YWlucygoX25vZGUkY29udGV4dDIgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0Mi5lbGVtZW50cy5kb21SZWZlcmVuY2UsIHJlbGF0ZWRUYXJnZXQpO1xuICAgICAgICB9KSB8fCBnZXRBbmNlc3RvcnModHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpLmZpbmQobm9kZSA9PiB7XG4gICAgICAgICAgdmFyIF9ub2RlJGNvbnRleHQzLCBfbm9kZSRjb250ZXh0NDtcbiAgICAgICAgICByZXR1cm4gKChfbm9kZSRjb250ZXh0MyA9IG5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJGNvbnRleHQzLmVsZW1lbnRzLmZsb2F0aW5nKSA9PT0gcmVsYXRlZFRhcmdldCB8fCAoKF9ub2RlJGNvbnRleHQ0ID0gbm9kZS5jb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkY29udGV4dDQuZWxlbWVudHMuZG9tUmVmZXJlbmNlKSA9PT0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgfSkpKTtcblxuICAgICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91cyB0YWJiYWJsZSBlbGVtZW50IGluZGV4IHRvIHByZXZlbnRcbiAgICAgICAgLy8gZm9jdXMgZnJvbSBiZWluZyBsb3N0IG91dHNpZGUgdGhlIGZsb2F0aW5nIHRyZWUuXG4gICAgICAgIGlmIChyZXN0b3JlRm9jdXMgJiYgbW92ZWRUb1VucmVsYXRlZE5vZGUgJiYgYWN0aXZlRWxlbWVudChnZXREb2N1bWVudChmbG9hdGluZ0ZvY3VzTm9kZSkpID09PSBnZXREb2N1bWVudChmbG9hdGluZ0ZvY3VzTm9kZSkuYm9keSkge1xuICAgICAgICAgIC8vIExldCBgRmxvYXRpbmdQb3J0YWxgIGVmZmVjdCBrbm93cyB0aGF0IGZvY3VzIGlzIHN0aWxsIGluc2lkZSB0aGVcbiAgICAgICAgICAvLyBmbG9hdGluZyB0cmVlLlxuICAgICAgICAgIGlmIChpc0hUTUxFbGVtZW50KGZsb2F0aW5nRm9jdXNOb2RlKSkge1xuICAgICAgICAgICAgZmxvYXRpbmdGb2N1c05vZGUgPT0gbnVsbCB8fCBmbG9hdGluZ0ZvY3VzTm9kZS5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwcmV2VGFiYmFibGVJbmRleCA9IHRhYmJhYmxlSW5kZXhSZWYuY3VycmVudDtcbiAgICAgICAgICBjb25zdCB0YWJiYWJsZUNvbnRlbnQgPSBnZXRUYWJiYWJsZUNvbnRlbnQoKTtcbiAgICAgICAgICBjb25zdCBub2RlVG9Gb2N1cyA9IHRhYmJhYmxlQ29udGVudFtwcmV2VGFiYmFibGVJbmRleF0gfHwgdGFiYmFibGVDb250ZW50W3RhYmJhYmxlQ29udGVudC5sZW5ndGggLSAxXSB8fCBmbG9hdGluZ0ZvY3VzTm9kZTtcbiAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudChub2RlVG9Gb2N1cykpIHtcbiAgICAgICAgICAgIG5vZGVUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9jdXMgZGlkIG5vdCBtb3ZlIGluc2lkZSB0aGUgZmxvYXRpbmcgdHJlZSwgYW5kIHRoZXJlIGFyZSBubyB0YWJiYWJsZVxuICAgICAgICAvLyBwb3J0YWwgZ3VhcmRzIHRvIGhhbmRsZSBjbG9zaW5nLlxuICAgICAgICBpZiAoKGlzVW50cmFwcGVkVHlwZWFibGVDb21ib2JveCA/IHRydWUgOiAhbW9kYWwpICYmIHJlbGF0ZWRUYXJnZXQgJiYgbW92ZWRUb1VucmVsYXRlZE5vZGUgJiYgIWlzUG9pbnRlckRvd25SZWYuY3VycmVudCAmJlxuICAgICAgICAvLyBGaXggUmVhY3QgMTggU3RyaWN0IE1vZGUgcmV0dXJuRm9jdXMgZHVlIHRvIGRvdWJsZSByZW5kZXJpbmcuXG4gICAgICAgIHJlbGF0ZWRUYXJnZXQgIT09IGdldFByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpKSB7XG4gICAgICAgICAgcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGZsb2F0aW5nICYmIGlzSFRNTEVsZW1lbnQoZG9tUmVmZXJlbmNlKSkge1xuICAgICAgZG9tUmVmZXJlbmNlLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXRzaWRlKTtcbiAgICAgIGRvbVJlZmVyZW5jZS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgIGZsb2F0aW5nLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXRzaWRlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvbVJlZmVyZW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0c2lkZSk7XG4gICAgICAgIGRvbVJlZmVyZW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICAgICAgZmxvYXRpbmcucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dHNpZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtkaXNhYmxlZCwgZG9tUmVmZXJlbmNlLCBmbG9hdGluZywgZmxvYXRpbmdGb2N1c05vZGUsIG1vZGFsLCBub2RlSWQsIHRyZWUsIHBvcnRhbENvbnRleHQsIG9uT3BlbkNoYW5nZSwgY2xvc2VPbkZvY3VzT3V0LCByZXN0b3JlRm9jdXMsIGdldFRhYmJhYmxlQ29udGVudCwgaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94XSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdmFyIF9wb3J0YWxDb250ZXh0JHBvcnRhbDtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIERvbid0IGhpZGUgcG9ydGFscyBuZXN0ZWQgd2l0aGluIHRoZSBwYXJlbnQgcG9ydGFsLlxuICAgIGNvbnN0IHBvcnRhbE5vZGVzID0gQXJyYXkuZnJvbSgocG9ydGFsQ29udGV4dCA9PSBudWxsIHx8IChfcG9ydGFsQ29udGV4dCRwb3J0YWwgPSBwb3J0YWxDb250ZXh0LnBvcnRhbE5vZGUpID09IG51bGwgPyB2b2lkIDAgOiBfcG9ydGFsQ29udGV4dCRwb3J0YWwucXVlcnlTZWxlY3RvckFsbChcIltcIiArIGNyZWF0ZUF0dHJpYnV0ZSgncG9ydGFsJykgKyBcIl1cIikpIHx8IFtdKTtcbiAgICBpZiAoZmxvYXRpbmcpIHtcbiAgICAgIGNvbnN0IGluc2lkZUVsZW1lbnRzID0gW2Zsb2F0aW5nLCAuLi5wb3J0YWxOb2Rlcywgc3RhcnREaXNtaXNzQnV0dG9uUmVmLmN1cnJlbnQsIGVuZERpc21pc3NCdXR0b25SZWYuY3VycmVudCwgb3JkZXJSZWYuY3VycmVudC5pbmNsdWRlcygncmVmZXJlbmNlJykgfHwgaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94ID8gZG9tUmVmZXJlbmNlIDogbnVsbF0uZmlsdGVyKHggPT4geCAhPSBudWxsKTtcbiAgICAgIGNvbnN0IGNsZWFudXAgPSBtb2RhbCB8fCBpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3ggPyBtYXJrT3RoZXJzKGluc2lkZUVsZW1lbnRzLCBndWFyZHMsICFndWFyZHMpIDogbWFya090aGVycyhpbnNpZGVFbGVtZW50cyk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2Rpc2FibGVkLCBkb21SZWZlcmVuY2UsIGZsb2F0aW5nLCBtb2RhbCwgb3JkZXJSZWYsIHBvcnRhbENvbnRleHQsIGlzVW50cmFwcGVkVHlwZWFibGVDb21ib2JveCwgZ3VhcmRzXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQgfHwgIWlzSFRNTEVsZW1lbnQoZmxvYXRpbmdGb2N1c05vZGUpKSByZXR1cm47XG4gICAgY29uc3QgZG9jID0gZ2V0RG9jdW1lbnQoZmxvYXRpbmdGb2N1c05vZGUpO1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQoZG9jKTtcblxuICAgIC8vIFdhaXQgZm9yIGFueSBsYXlvdXQgZWZmZWN0IHN0YXRlIHNldHRlcnMgdG8gZXhlY3V0ZSB0byBzZXQgYHRhYkluZGV4YC5cbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGdldFRhYmJhYmxlRWxlbWVudHMoZmxvYXRpbmdGb2N1c05vZGUpO1xuICAgICAgY29uc3QgaW5pdGlhbEZvY3VzVmFsdWUgPSBpbml0aWFsRm9jdXNSZWYuY3VycmVudDtcbiAgICAgIGNvbnN0IGVsVG9Gb2N1cyA9ICh0eXBlb2YgaW5pdGlhbEZvY3VzVmFsdWUgPT09ICdudW1iZXInID8gZm9jdXNhYmxlRWxlbWVudHNbaW5pdGlhbEZvY3VzVmFsdWVdIDogaW5pdGlhbEZvY3VzVmFsdWUuY3VycmVudCkgfHwgZmxvYXRpbmdGb2N1c05vZGU7XG4gICAgICBjb25zdCBmb2N1c0FscmVhZHlJbnNpZGVGbG9hdGluZ0VsID0gY29udGFpbnMoZmxvYXRpbmdGb2N1c05vZGUsIHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCk7XG4gICAgICBpZiAoIWlnbm9yZUluaXRpYWxGb2N1cyAmJiAhZm9jdXNBbHJlYWR5SW5zaWRlRmxvYXRpbmdFbCAmJiBvcGVuKSB7XG4gICAgICAgIGVucXVldWVGb2N1cyhlbFRvRm9jdXMsIHtcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiBlbFRvRm9jdXMgPT09IGZsb2F0aW5nRm9jdXNOb2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbZGlzYWJsZWQsIG9wZW4sIGZsb2F0aW5nRm9jdXNOb2RlLCBpZ25vcmVJbml0aWFsRm9jdXMsIGdldFRhYmJhYmxlRWxlbWVudHMsIGluaXRpYWxGb2N1c1JlZl0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkIHx8ICFmbG9hdGluZ0ZvY3VzTm9kZSkgcmV0dXJuO1xuICAgIGxldCBwcmV2ZW50UmV0dXJuRm9jdXNTY3JvbGwgPSBmYWxzZTtcbiAgICBjb25zdCBkb2MgPSBnZXREb2N1bWVudChmbG9hdGluZ0ZvY3VzTm9kZSk7XG4gICAgY29uc3QgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID0gYWN0aXZlRWxlbWVudChkb2MpO1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gZGF0YVJlZi5jdXJyZW50O1xuICAgIGxldCBvcGVuRXZlbnQgPSBjb250ZXh0RGF0YS5vcGVuRXZlbnQ7XG4gICAgY29uc3QgZG9tUmVmZXJlbmNlID0gcmVmcy5kb21SZWZlcmVuY2UuY3VycmVudDtcbiAgICBhZGRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQocHJldmlvdXNseUZvY3VzZWRFbGVtZW50KTtcblxuICAgIC8vIERpc21pc3NpbmcgdmlhIG91dHNpZGUgcHJlc3Mgc2hvdWxkIGFsd2F5cyBpZ25vcmUgYHJldHVybkZvY3VzYCB0b1xuICAgIC8vIHByZXZlbnQgdW53YW50ZWQgc2Nyb2xsaW5nLlxuICAgIGZ1bmN0aW9uIG9uT3BlbkNoYW5nZShfcmVmKSB7XG4gICAgICBsZXQge1xuICAgICAgICBvcGVuLFxuICAgICAgICByZWFzb24sXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBuZXN0ZWRcbiAgICAgIH0gPSBfcmVmO1xuICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgb3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgICB9XG4gICAgICBpZiAocmVhc29uID09PSAnZXNjYXBlLWtleScgJiYgcmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCkge1xuICAgICAgICBhZGRQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQocmVmcy5kb21SZWZlcmVuY2UuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBpZiAocmVhc29uID09PSAnaG92ZXInICYmIGV2ZW50LnR5cGUgPT09ICdtb3VzZWxlYXZlJykge1xuICAgICAgICBwcmV2ZW50UmV0dXJuRm9jdXNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocmVhc29uICE9PSAnb3V0c2lkZS1wcmVzcycpIHJldHVybjtcbiAgICAgIGlmIChuZXN0ZWQpIHtcbiAgICAgICAgcHJldmVudFJldHVybkZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgcHJldmVudFJldHVybkZvY3VzU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByZXZlbnRSZXR1cm5Gb2N1c1JlZi5jdXJyZW50ID0gIShpc1ZpcnR1YWxDbGljayhldmVudCkgfHwgaXNWaXJ0dWFsUG9pbnRlckV2ZW50KGV2ZW50KSk7XG4gICAgICB9XG4gICAgfVxuICAgIGV2ZW50cy5vbignb3BlbmNoYW5nZScsIG9uT3BlbkNoYW5nZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGV2ZW50cy5vZmYoJ29wZW5jaGFuZ2UnLCBvbk9wZW5DaGFuZ2UpO1xuICAgICAgY29uc3QgYWN0aXZlRWwgPSBhY3RpdmVFbGVtZW50KGRvYyk7XG4gICAgICBjb25zdCBpc0ZvY3VzSW5zaWRlRmxvYXRpbmdUcmVlID0gY29udGFpbnMoZmxvYXRpbmcsIGFjdGl2ZUVsKSB8fCB0cmVlICYmIGdldENoaWxkcmVuKHRyZWUubm9kZXNSZWYuY3VycmVudCwgbm9kZUlkKS5zb21lKG5vZGUgPT4ge1xuICAgICAgICB2YXIgX25vZGUkY29udGV4dDU7XG4gICAgICAgIHJldHVybiBjb250YWlucygoX25vZGUkY29udGV4dDUgPSBub2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZSRjb250ZXh0NS5lbGVtZW50cy5mbG9hdGluZywgYWN0aXZlRWwpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBzaG91bGRGb2N1c1JlZmVyZW5jZSA9IGlzRm9jdXNJbnNpZGVGbG9hdGluZ1RyZWUgfHwgb3BlbkV2ZW50ICYmIFsnY2xpY2snLCAnbW91c2Vkb3duJ10uaW5jbHVkZXMob3BlbkV2ZW50LnR5cGUpO1xuICAgICAgaWYgKHNob3VsZEZvY3VzUmVmZXJlbmNlICYmIHJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQpIHtcbiAgICAgICAgYWRkUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KHJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmV0dXJuQ29udGV4dEVsZW1lbnQgPSBkb21SZWZlcmVuY2UgfHwgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50O1xuICAgICAgY29uc3QgdGFiYmFibGVFbGVtZW50cyA9IHRhYmJhYmxlKGdldERvY3VtZW50KHJldHVybkNvbnRleHRFbGVtZW50KS5ib2R5LCBnZXRUYWJiYWJsZU9wdGlvbnMoKSk7XG5cbiAgICAgIC8vIFdhaXQgZm9yIHRoZSByZXR1cm4gZWxlbWVudCB0byBnZXQgcG90ZW50aWFsbHkgZGlzY29ubmVjdGVkIGJlZm9yZVxuICAgICAgLy8gY2hlY2tpbmcuXG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIGxldCByZXR1cm5FbGVtZW50ID0gZ2V0UHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCk7XG4gICAgICAgIGlmICghcmV0dXJuRWxlbWVudCAmJiBpc0hUTUxFbGVtZW50KHJldHVybkNvbnRleHRFbGVtZW50KSAmJiBmbG9hdGluZykge1xuICAgICAgICAgIHJldHVybkVsZW1lbnQgPSBnZXRDbG9zZXN0VGFiYmFibGVFbGVtZW50KHRhYmJhYmxlRWxlbWVudHMsIHJldHVybkNvbnRleHRFbGVtZW50LCBmbG9hdGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICAgIHJldHVybkZvY3VzUmVmLmN1cnJlbnQgJiYgIXByZXZlbnRSZXR1cm5Gb2N1c1JlZi5jdXJyZW50ICYmIGlzSFRNTEVsZW1lbnQocmV0dXJuRWxlbWVudCkgJiYgKFxuICAgICAgICAvLyBJZiB0aGUgZm9jdXMgbW92ZWQgc29tZXdoZXJlIGVsc2UgYWZ0ZXIgbW91bnQsIGF2b2lkIHJldHVybmluZyBmb2N1c1xuICAgICAgICAvLyBzaW5jZSBpdCBsaWtlbHkgZW50ZXJlZCBhIGRpZmZlcmVudCBlbGVtZW50IHdoaWNoIHNob3VsZCBiZVxuICAgICAgICAvLyByZXNwZWN0ZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMjYwN1xuICAgICAgICByZXR1cm5FbGVtZW50ICE9PSBhY3RpdmVFbCAmJiBhY3RpdmVFbCAhPT0gZG9jLmJvZHkgPyBpc0ZvY3VzSW5zaWRlRmxvYXRpbmdUcmVlIDogdHJ1ZSkpIHtcbiAgICAgICAgICByZXR1cm5FbGVtZW50LmZvY3VzKHtcbiAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHByZXZlbnRSZXR1cm5Gb2N1c1Njcm9sbFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbZGlzYWJsZWQsIGZsb2F0aW5nLCBmbG9hdGluZ0ZvY3VzTm9kZSwgcmV0dXJuRm9jdXNSZWYsIGRhdGFSZWYsIHJlZnMsIGV2ZW50cywgdHJlZSwgbm9kZUlkXSk7XG5cbiAgLy8gU3luY2hyb25pemUgdGhlIGBjb250ZXh0YCAmIGBtb2RhbGAgdmFsdWUgdG8gdGhlIEZsb2F0aW5nUG9ydGFsIGNvbnRleHQuXG4gIC8vIEl0IHdpbGwgZGVjaWRlIHdoZXRoZXIgb3Igbm90IGl0IG5lZWRzIHRvIHJlbmRlciBpdHMgb3duIGd1YXJkcy5cbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICghcG9ydGFsQ29udGV4dCkgcmV0dXJuO1xuICAgIHBvcnRhbENvbnRleHQuc2V0Rm9jdXNNYW5hZ2VyU3RhdGUoe1xuICAgICAgbW9kYWwsXG4gICAgICBjbG9zZU9uRm9jdXNPdXQsXG4gICAgICBvcGVuLFxuICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgcmVmc1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBwb3J0YWxDb250ZXh0LnNldEZvY3VzTWFuYWdlclN0YXRlKG51bGwpO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgcG9ydGFsQ29udGV4dCwgbW9kYWwsIG9wZW4sIG9uT3BlbkNoYW5nZSwgcmVmcywgY2xvc2VPbkZvY3VzT3V0XSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIWZsb2F0aW5nRm9jdXNOb2RlKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XG4gICAgaWYgKGlnbm9yZUluaXRpYWxGb2N1cykgcmV0dXJuO1xuICAgIGNvbnN0IGhhbmRsZU11dGF0aW9uID0gKCkgPT4ge1xuICAgICAgY29uc3QgdGFiSW5kZXggPSBmbG9hdGluZ0ZvY3VzTm9kZS5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICBjb25zdCB0YWJiYWJsZUNvbnRlbnQgPSBnZXRUYWJiYWJsZUNvbnRlbnQoKTtcbiAgICAgIGNvbnN0IGFjdGl2ZUVsID0gYWN0aXZlRWxlbWVudChnZXREb2N1bWVudChmbG9hdGluZykpO1xuICAgICAgY29uc3QgdGFiYmFibGVJbmRleCA9IHRhYmJhYmxlQ29udGVudC5pbmRleE9mKGFjdGl2ZUVsKTtcbiAgICAgIGlmICh0YWJiYWJsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0YWJiYWJsZUluZGV4UmVmLmN1cnJlbnQgPSB0YWJiYWJsZUluZGV4O1xuICAgICAgfVxuICAgICAgaWYgKG9yZGVyUmVmLmN1cnJlbnQuaW5jbHVkZXMoJ2Zsb2F0aW5nJykgfHwgYWN0aXZlRWwgIT09IHJlZnMuZG9tUmVmZXJlbmNlLmN1cnJlbnQgJiYgdGFiYmFibGVDb250ZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAodGFiSW5kZXggIT09ICcwJykge1xuICAgICAgICAgIGZsb2F0aW5nRm9jdXNOb2RlLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRhYkluZGV4ICE9PSAnLTEnKSB7XG4gICAgICAgIGZsb2F0aW5nRm9jdXNOb2RlLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGhhbmRsZU11dGF0aW9uKCk7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVNdXRhdGlvbik7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShmbG9hdGluZ0ZvY3VzTm9kZSwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH07XG4gIH0sIFtkaXNhYmxlZCwgZmxvYXRpbmcsIGZsb2F0aW5nRm9jdXNOb2RlLCByZWZzLCBvcmRlclJlZiwgZ2V0VGFiYmFibGVDb250ZW50LCBpZ25vcmVJbml0aWFsRm9jdXNdKTtcbiAgZnVuY3Rpb24gcmVuZGVyRGlzbWlzc0J1dHRvbihsb2NhdGlvbikge1xuICAgIGlmIChkaXNhYmxlZCB8fCAhdmlzdWFsbHlIaWRkZW5EaXNtaXNzIHx8ICFtb2RhbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChWaXN1YWxseUhpZGRlbkRpc21pc3MsIHtcbiAgICAgIHJlZjogbG9jYXRpb24gPT09ICdzdGFydCcgPyBzdGFydERpc21pc3NCdXR0b25SZWYgOiBlbmREaXNtaXNzQnV0dG9uUmVmLFxuICAgICAgb25DbGljazogZXZlbnQgPT4gb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudClcbiAgICB9LCB0eXBlb2YgdmlzdWFsbHlIaWRkZW5EaXNtaXNzID09PSAnc3RyaW5nJyA/IHZpc3VhbGx5SGlkZGVuRGlzbWlzcyA6ICdEaXNtaXNzJyk7XG4gIH1cbiAgY29uc3Qgc2hvdWxkUmVuZGVyR3VhcmRzID0gIWRpc2FibGVkICYmIGd1YXJkcyAmJiAobW9kYWwgPyAhaXNVbnRyYXBwZWRUeXBlYWJsZUNvbWJvYm94IDogdHJ1ZSkgJiYgKGlzSW5zaWRlUG9ydGFsIHx8IG1vZGFsKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCBzaG91bGRSZW5kZXJHdWFyZHMgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNHdWFyZCwge1xuICAgIFwiZGF0YS10eXBlXCI6IFwiaW5zaWRlXCIsXG4gICAgcmVmOiBwb3J0YWxDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBwb3J0YWxDb250ZXh0LmJlZm9yZUluc2lkZVJlZixcbiAgICBvbkZvY3VzOiBldmVudCA9PiB7XG4gICAgICBpZiAobW9kYWwpIHtcbiAgICAgICAgY29uc3QgZWxzID0gZ2V0VGFiYmFibGVFbGVtZW50cygpO1xuICAgICAgICBlbnF1ZXVlRm9jdXMob3JkZXJbMF0gPT09ICdyZWZlcmVuY2UnID8gZWxzWzBdIDogZWxzW2Vscy5sZW5ndGggLSAxXSk7XG4gICAgICB9IGVsc2UgaWYgKHBvcnRhbENvbnRleHQgIT0gbnVsbCAmJiBwb3J0YWxDb250ZXh0LnByZXNlcnZlVGFiT3JkZXIgJiYgcG9ydGFsQ29udGV4dC5wb3J0YWxOb2RlKSB7XG4gICAgICAgIHByZXZlbnRSZXR1cm5Gb2N1c1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIGlmIChpc091dHNpZGVFdmVudChldmVudCwgcG9ydGFsQ29udGV4dC5wb3J0YWxOb2RlKSkge1xuICAgICAgICAgIGNvbnN0IG5leHRUYWJiYWJsZSA9IGdldE5leHRUYWJiYWJsZSgpIHx8IGRvbVJlZmVyZW5jZTtcbiAgICAgICAgICBuZXh0VGFiYmFibGUgPT0gbnVsbCB8fCBuZXh0VGFiYmFibGUuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgX3BvcnRhbENvbnRleHQkYmVmb3JlO1xuICAgICAgICAgIChfcG9ydGFsQ29udGV4dCRiZWZvcmUgPSBwb3J0YWxDb250ZXh0LmJlZm9yZU91dHNpZGVSZWYuY3VycmVudCkgPT0gbnVsbCB8fCBfcG9ydGFsQ29udGV4dCRiZWZvcmUuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSksICFpc1VudHJhcHBlZFR5cGVhYmxlQ29tYm9ib3ggJiYgcmVuZGVyRGlzbWlzc0J1dHRvbignc3RhcnQnKSwgY2hpbGRyZW4sIHJlbmRlckRpc21pc3NCdXR0b24oJ2VuZCcpLCBzaG91bGRSZW5kZXJHdWFyZHMgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRm9jdXNHdWFyZCwge1xuICAgIFwiZGF0YS10eXBlXCI6IFwiaW5zaWRlXCIsXG4gICAgcmVmOiBwb3J0YWxDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBwb3J0YWxDb250ZXh0LmFmdGVySW5zaWRlUmVmLFxuICAgIG9uRm9jdXM6IGV2ZW50ID0+IHtcbiAgICAgIGlmIChtb2RhbCkge1xuICAgICAgICBlbnF1ZXVlRm9jdXMoZ2V0VGFiYmFibGVFbGVtZW50cygpWzBdKTtcbiAgICAgIH0gZWxzZSBpZiAocG9ydGFsQ29udGV4dCAhPSBudWxsICYmIHBvcnRhbENvbnRleHQucHJlc2VydmVUYWJPcmRlciAmJiBwb3J0YWxDb250ZXh0LnBvcnRhbE5vZGUpIHtcbiAgICAgICAgaWYgKGNsb3NlT25Gb2N1c091dCkge1xuICAgICAgICAgIHByZXZlbnRSZXR1cm5Gb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNPdXRzaWRlRXZlbnQoZXZlbnQsIHBvcnRhbENvbnRleHQucG9ydGFsTm9kZSkpIHtcbiAgICAgICAgICBjb25zdCBwcmV2VGFiYmFibGUgPSBnZXRQcmV2aW91c1RhYmJhYmxlKCkgfHwgZG9tUmVmZXJlbmNlO1xuICAgICAgICAgIHByZXZUYWJiYWJsZSA9PSBudWxsIHx8IHByZXZUYWJiYWJsZS5mb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBfcG9ydGFsQ29udGV4dCRhZnRlck87XG4gICAgICAgICAgKF9wb3J0YWxDb250ZXh0JGFmdGVyTyA9IHBvcnRhbENvbnRleHQuYWZ0ZXJPdXRzaWRlUmVmLmN1cnJlbnQpID09IG51bGwgfHwgX3BvcnRhbENvbnRleHQkYWZ0ZXJPLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pKTtcbn1cblxuY29uc3QgYWN0aXZlTG9ja3MgPSAvKiNfX1BVUkVfXyovbmV3IFNldCgpO1xuLyoqXG4gKiBQcm92aWRlcyBiYXNlIHN0eWxpbmcgZm9yIGEgZml4ZWQgb3ZlcmxheSBlbGVtZW50IHRvIGRpbSBjb250ZW50IG9yIGJsb2NrXG4gKiBwb2ludGVyIGV2ZW50cyBiZWhpbmQgYSBmbG9hdGluZyBlbGVtZW50LlxuICogSXQncyBhIHJlZ3VsYXIgYDxkaXY+YCwgc28gaXQgY2FuIGJlIHN0eWxlZCB2aWEgYW55IENTUyBzb2x1dGlvbiB5b3UgcHJlZmVyLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL0Zsb2F0aW5nT3ZlcmxheVxuICovXG5jb25zdCBGbG9hdGluZ092ZXJsYXkgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiBGbG9hdGluZ092ZXJsYXkocHJvcHMsIHJlZikge1xuICBjb25zdCB7XG4gICAgbG9ja1Njcm9sbCA9IGZhbHNlLFxuICAgIC4uLnJlc3RcbiAgfSA9IHByb3BzO1xuICBjb25zdCBsb2NrSWQgPSB1c2VJZCgpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFsb2NrU2Nyb2xsKSByZXR1cm47XG4gICAgYWN0aXZlTG9ja3MuYWRkKGxvY2tJZCk7XG4gICAgY29uc3QgaXNJT1MgPSAvaVAoaG9uZXxhZHxvZCl8aU9TLy50ZXN0KGdldFBsYXRmb3JtKCkpO1xuICAgIGNvbnN0IGJvZHlTdHlsZSA9IGRvY3VtZW50LmJvZHkuc3R5bGU7XG4gICAgLy8gUlRMIDxib2R5PiBzY3JvbGxiYXJcbiAgICBjb25zdCBzY3JvbGxiYXJYID0gTWF0aC5yb3VuZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkgKyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBwYWRkaW5nUHJvcCA9IHNjcm9sbGJhclggPyAncGFkZGluZ0xlZnQnIDogJ3BhZGRpbmdSaWdodCc7XG4gICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBzY3JvbGxYID0gYm9keVN0eWxlLmxlZnQgPyBwYXJzZUZsb2F0KGJvZHlTdHlsZS5sZWZ0KSA6IHdpbmRvdy5zY3JvbGxYO1xuICAgIGNvbnN0IHNjcm9sbFkgPSBib2R5U3R5bGUudG9wID8gcGFyc2VGbG9hdChib2R5U3R5bGUudG9wKSA6IHdpbmRvdy5zY3JvbGxZO1xuICAgIGJvZHlTdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIGlmIChzY3JvbGxiYXJXaWR0aCkge1xuICAgICAgYm9keVN0eWxlW3BhZGRpbmdQcm9wXSA9IHNjcm9sbGJhcldpZHRoICsgXCJweFwiO1xuICAgIH1cblxuICAgIC8vIE9ubHkgaU9TIGRvZXNuJ3QgcmVzcGVjdCBgb3ZlcmZsb3c6IGhpZGRlbmAgb24gZG9jdW1lbnQuYm9keSwgYW5kIHRoaXNcbiAgICAvLyB0ZWNobmlxdWUgaGFzIGZld2VyIHNpZGUgZWZmZWN0cy5cbiAgICBpZiAoaXNJT1MpIHtcbiAgICAgIHZhciBfd2luZG93JHZpc3VhbFZpZXdwb3IsIF93aW5kb3ckdmlzdWFsVmlld3BvcjI7XG4gICAgICAvLyBpT1MgMTIgZG9lcyBub3Qgc3VwcG9ydCBgdmlzdWFsVmlld3BvcnRgLlxuICAgICAgY29uc3Qgb2Zmc2V0TGVmdCA9ICgoX3dpbmRvdyR2aXN1YWxWaWV3cG9yID0gd2luZG93LnZpc3VhbFZpZXdwb3J0KSA9PSBudWxsID8gdm9pZCAwIDogX3dpbmRvdyR2aXN1YWxWaWV3cG9yLm9mZnNldExlZnQpIHx8IDA7XG4gICAgICBjb25zdCBvZmZzZXRUb3AgPSAoKF93aW5kb3ckdmlzdWFsVmlld3BvcjIgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQpID09IG51bGwgPyB2b2lkIDAgOiBfd2luZG93JHZpc3VhbFZpZXdwb3IyLm9mZnNldFRvcCkgfHwgMDtcbiAgICAgIE9iamVjdC5hc3NpZ24oYm9keVN0eWxlLCB7XG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICB0b3A6IC0oc2Nyb2xsWSAtIE1hdGguZmxvb3Iob2Zmc2V0VG9wKSkgKyBcInB4XCIsXG4gICAgICAgIGxlZnQ6IC0oc2Nyb2xsWCAtIE1hdGguZmxvb3Iob2Zmc2V0TGVmdCkpICsgXCJweFwiLFxuICAgICAgICByaWdodDogJzAnXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGFjdGl2ZUxvY2tzLmRlbGV0ZShsb2NrSWQpO1xuICAgICAgaWYgKGFjdGl2ZUxvY2tzLnNpemUgPT09IDApIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5U3R5bGUsIHtcbiAgICAgICAgICBvdmVyZmxvdzogJycsXG4gICAgICAgICAgW3BhZGRpbmdQcm9wXTogJydcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0lPUykge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oYm9keVN0eWxlLCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogJycsXG4gICAgICAgICAgICB0b3A6ICcnLFxuICAgICAgICAgICAgbGVmdDogJycsXG4gICAgICAgICAgICByaWdodDogJydcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsWCwgc2Nyb2xsWSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9LCBbbG9ja0lkLCBsb2NrU2Nyb2xsXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgcmVmOiByZWZcbiAgfSwgcmVzdCwge1xuICAgIHN0eWxlOiB7XG4gICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICB0b3A6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICAuLi5yZXN0LnN0eWxlXG4gICAgfVxuICB9KSk7XG59KTtcblxuZnVuY3Rpb24gaXNCdXR0b25UYXJnZXQoZXZlbnQpIHtcbiAgcmV0dXJuIGlzSFRNTEVsZW1lbnQoZXZlbnQudGFyZ2V0KSAmJiBldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ0JVVFRPTic7XG59XG5mdW5jdGlvbiBpc1NwYWNlSWdub3JlZChlbGVtZW50KSB7XG4gIHJldHVybiBpc1R5cGVhYmxlRWxlbWVudChlbGVtZW50KTtcbn1cbi8qKlxuICogT3BlbnMgb3IgY2xvc2VzIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoZW4gY2xpY2tpbmcgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUNsaWNrXG4gKi9cbmZ1bmN0aW9uIHVzZUNsaWNrKGNvbnRleHQsIHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZGF0YVJlZixcbiAgICBlbGVtZW50czoge1xuICAgICAgZG9tUmVmZXJlbmNlXG4gICAgfVxuICB9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGVuYWJsZWQgPSB0cnVlLFxuICAgIGV2ZW50OiBldmVudE9wdGlvbiA9ICdjbGljaycsXG4gICAgdG9nZ2xlID0gdHJ1ZSxcbiAgICBpZ25vcmVNb3VzZSA9IGZhbHNlLFxuICAgIGtleWJvYXJkSGFuZGxlcnMgPSB0cnVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcG9pbnRlclR5cGVSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgY29uc3QgZGlkS2V5RG93blJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBvblBvaW50ZXJEb3duKGV2ZW50KSB7XG4gICAgICBwb2ludGVyVHlwZVJlZi5jdXJyZW50ID0gZXZlbnQucG9pbnRlclR5cGU7XG4gICAgfSxcbiAgICBvbk1vdXNlRG93bihldmVudCkge1xuICAgICAgY29uc3QgcG9pbnRlclR5cGUgPSBwb2ludGVyVHlwZVJlZi5jdXJyZW50O1xuXG4gICAgICAvLyBJZ25vcmUgYWxsIGJ1dHRvbnMgZXhjZXB0IGZvciB0aGUgXCJtYWluXCIgYnV0dG9uLlxuICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01vdXNlRXZlbnQvYnV0dG9uXG4gICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSByZXR1cm47XG4gICAgICBpZiAoZXZlbnRPcHRpb24gPT09ICdjbGljaycpIHJldHVybjtcbiAgICAgIGlmIChpc01vdXNlTGlrZVBvaW50ZXJUeXBlKHBvaW50ZXJUeXBlLCB0cnVlKSAmJiBpZ25vcmVNb3VzZSkgcmV0dXJuO1xuICAgICAgaWYgKG9wZW4gJiYgdG9nZ2xlICYmIChkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50ID8gZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudC50eXBlID09PSAnbW91c2Vkb3duJyA6IHRydWUpKSB7XG4gICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQsICdjbGljaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUHJldmVudCBzdGVhbGluZyBmb2N1cyBmcm9tIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBvbkNsaWNrKGV2ZW50KSB7XG4gICAgICBjb25zdCBwb2ludGVyVHlwZSA9IHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoZXZlbnRPcHRpb24gPT09ICdtb3VzZWRvd24nICYmIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGlzTW91c2VMaWtlUG9pbnRlclR5cGUocG9pbnRlclR5cGUsIHRydWUpICYmIGlnbm9yZU1vdXNlKSByZXR1cm47XG4gICAgICBpZiAob3BlbiAmJiB0b2dnbGUgJiYgKGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQgPyBkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50LnR5cGUgPT09ICdjbGljaycgOiB0cnVlKSkge1xuICAgICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnY2xpY2snKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICB9XG4gICAgfSxcbiAgICBvbktleURvd24oZXZlbnQpIHtcbiAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAha2V5Ym9hcmRIYW5kbGVycyB8fCBpc0J1dHRvblRhcmdldChldmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnICYmICFpc1NwYWNlSWdub3JlZChkb21SZWZlcmVuY2UpKSB7XG4gICAgICAgIC8vIFByZXZlbnQgc2Nyb2xsaW5nXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRpZEtleURvd25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIGlmIChvcGVuICYmIHRvZ2dsZSkge1xuICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQsICdjbGljaycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIG9uS2V5VXAoZXZlbnQpIHtcbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFrZXlib2FyZEhhbmRsZXJzIHx8IGlzQnV0dG9uVGFyZ2V0KGV2ZW50KSB8fCBpc1NwYWNlSWdub3JlZChkb21SZWZlcmVuY2UpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJyAmJiBkaWRLZXlEb3duUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlkS2V5RG93blJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIGlmIChvcGVuICYmIHRvZ2dsZSkge1xuICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgZXZlbnQubmF0aXZlRXZlbnQsICdjbGljaycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2NsaWNrJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLCBbZGF0YVJlZiwgZG9tUmVmZXJlbmNlLCBldmVudE9wdGlvbiwgaWdub3JlTW91c2UsIGtleWJvYXJkSGFuZGxlcnMsIG9uT3BlbkNoYW5nZSwgb3BlbiwgdG9nZ2xlXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZV0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWaXJ0dWFsRWxlbWVudChkb21FbGVtZW50LCBkYXRhKSB7XG4gIGxldCBvZmZzZXRYID0gbnVsbDtcbiAgbGV0IG9mZnNldFkgPSBudWxsO1xuICBsZXQgaXNBdXRvVXBkYXRlRXZlbnQgPSBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0RWxlbWVudDogZG9tRWxlbWVudCB8fCB1bmRlZmluZWQsXG4gICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkge1xuICAgICAgdmFyIF9kYXRhJGRhdGFSZWYkY3VycmVudDtcbiAgICAgIGNvbnN0IGRvbVJlY3QgPSAoZG9tRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkgfHwge1xuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB4OiAwLFxuICAgICAgICB5OiAwXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNYQXhpcyA9IGRhdGEuYXhpcyA9PT0gJ3gnIHx8IGRhdGEuYXhpcyA9PT0gJ2JvdGgnO1xuICAgICAgY29uc3QgaXNZQXhpcyA9IGRhdGEuYXhpcyA9PT0gJ3knIHx8IGRhdGEuYXhpcyA9PT0gJ2JvdGgnO1xuICAgICAgY29uc3QgY2FuVHJhY2tDdXJzb3JPbkF1dG9VcGRhdGUgPSBbJ21vdXNlZW50ZXInLCAnbW91c2Vtb3ZlJ10uaW5jbHVkZXMoKChfZGF0YSRkYXRhUmVmJGN1cnJlbnQgPSBkYXRhLmRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZGF0YSRkYXRhUmVmJGN1cnJlbnQudHlwZSkgfHwgJycpICYmIGRhdGEucG9pbnRlclR5cGUgIT09ICd0b3VjaCc7XG4gICAgICBsZXQgd2lkdGggPSBkb21SZWN0LndpZHRoO1xuICAgICAgbGV0IGhlaWdodCA9IGRvbVJlY3QuaGVpZ2h0O1xuICAgICAgbGV0IHggPSBkb21SZWN0Lng7XG4gICAgICBsZXQgeSA9IGRvbVJlY3QueTtcbiAgICAgIGlmIChvZmZzZXRYID09IG51bGwgJiYgZGF0YS54ICYmIGlzWEF4aXMpIHtcbiAgICAgICAgb2Zmc2V0WCA9IGRvbVJlY3QueCAtIGRhdGEueDtcbiAgICAgIH1cbiAgICAgIGlmIChvZmZzZXRZID09IG51bGwgJiYgZGF0YS55ICYmIGlzWUF4aXMpIHtcbiAgICAgICAgb2Zmc2V0WSA9IGRvbVJlY3QueSAtIGRhdGEueTtcbiAgICAgIH1cbiAgICAgIHggLT0gb2Zmc2V0WCB8fCAwO1xuICAgICAgeSAtPSBvZmZzZXRZIHx8IDA7XG4gICAgICB3aWR0aCA9IDA7XG4gICAgICBoZWlnaHQgPSAwO1xuICAgICAgaWYgKCFpc0F1dG9VcGRhdGVFdmVudCB8fCBjYW5UcmFja0N1cnNvck9uQXV0b1VwZGF0ZSkge1xuICAgICAgICB3aWR0aCA9IGRhdGEuYXhpcyA9PT0gJ3knID8gZG9tUmVjdC53aWR0aCA6IDA7XG4gICAgICAgIGhlaWdodCA9IGRhdGEuYXhpcyA9PT0gJ3gnID8gZG9tUmVjdC5oZWlnaHQgOiAwO1xuICAgICAgICB4ID0gaXNYQXhpcyAmJiBkYXRhLnggIT0gbnVsbCA/IGRhdGEueCA6IHg7XG4gICAgICAgIHkgPSBpc1lBeGlzICYmIGRhdGEueSAhPSBudWxsID8gZGF0YS55IDogeTtcbiAgICAgIH0gZWxzZSBpZiAoaXNBdXRvVXBkYXRlRXZlbnQgJiYgIWNhblRyYWNrQ3Vyc29yT25BdXRvVXBkYXRlKSB7XG4gICAgICAgIGhlaWdodCA9IGRhdGEuYXhpcyA9PT0gJ3gnID8gZG9tUmVjdC5oZWlnaHQgOiBoZWlnaHQ7XG4gICAgICAgIHdpZHRoID0gZGF0YS5heGlzID09PSAneScgPyBkb21SZWN0LndpZHRoIDogd2lkdGg7XG4gICAgICB9XG4gICAgICBpc0F1dG9VcGRhdGVFdmVudCA9IHRydWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICB0b3A6IHksXG4gICAgICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgICAgIGJvdHRvbTogeSArIGhlaWdodCxcbiAgICAgICAgbGVmdDogeFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiBpc01vdXNlQmFzZWRFdmVudChldmVudCkge1xuICByZXR1cm4gZXZlbnQgIT0gbnVsbCAmJiBldmVudC5jbGllbnRYICE9IG51bGw7XG59XG4vKipcbiAqIFBvc2l0aW9ucyB0aGUgZmxvYXRpbmcgZWxlbWVudCByZWxhdGl2ZSB0byBhIGNsaWVudCBwb2ludCAoaW4gdGhlIHZpZXdwb3J0KSxcbiAqIHN1Y2ggYXMgdGhlIG1vdXNlIHBvc2l0aW9uLiBCeSBkZWZhdWx0LCBpdCBmb2xsb3dzIHRoZSBtb3VzZSBjdXJzb3IuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlQ2xpZW50UG9pbnRcbiAqL1xuZnVuY3Rpb24gdXNlQ2xpZW50UG9pbnQoY29udGV4dCwgcHJvcHMpIHtcbiAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICBwcm9wcyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIGRhdGFSZWYsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgZG9tUmVmZXJlbmNlXG4gICAgfSxcbiAgICByZWZzXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgYXhpcyA9ICdib3RoJyxcbiAgICB4ID0gbnVsbCxcbiAgICB5ID0gbnVsbFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGluaXRpYWxSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBjbGVhbnVwTGlzdGVuZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtwb2ludGVyVHlwZSwgc2V0UG9pbnRlclR5cGVdID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgY29uc3QgW3JlYWN0aXZlLCBzZXRSZWFjdGl2ZV0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUVmZmVjdEV2ZW50KCh4LCB5KSA9PiB7XG4gICAgaWYgKGluaXRpYWxSZWYuY3VycmVudCkgcmV0dXJuO1xuXG4gICAgLy8gUHJldmVudCBzZXR0aW5nIGlmIHRoZSBvcGVuIGV2ZW50IHdhcyBub3QgYSBtb3VzZS1saWtlIG9uZVxuICAgIC8vIChlLmcuIGZvY3VzIHRvIG9wZW4sIHRoZW4gaG92ZXIgb3ZlciB0aGUgcmVmZXJlbmNlIGVsZW1lbnQpLlxuICAgIC8vIE9ubHkgYXBwbHkgaWYgdGhlIGV2ZW50IGV4aXN0cy5cbiAgICBpZiAoZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCAmJiAhaXNNb3VzZUJhc2VkRXZlbnQoZGF0YVJlZi5jdXJyZW50Lm9wZW5FdmVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVmcy5zZXRQb3NpdGlvblJlZmVyZW5jZShjcmVhdGVWaXJ0dWFsRWxlbWVudChkb21SZWZlcmVuY2UsIHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgYXhpcyxcbiAgICAgIGRhdGFSZWYsXG4gICAgICBwb2ludGVyVHlwZVxuICAgIH0pKTtcbiAgfSk7XG4gIGNvbnN0IGhhbmRsZVJlZmVyZW5jZUVudGVyT3JNb3ZlID0gdXNlRWZmZWN0RXZlbnQoZXZlbnQgPT4ge1xuICAgIGlmICh4ICE9IG51bGwgfHwgeSAhPSBudWxsKSByZXR1cm47XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICBzZXRSZWZlcmVuY2UoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgfSBlbHNlIGlmICghY2xlYW51cExpc3RlbmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gY2xlYW51cCwgdGhlcmUncyBubyBsaXN0ZW5lciwgYnV0IHdlIHdhbnQgdG8gZW5zdXJlXG4gICAgICAvLyB3ZSBhZGQgdGhlIGxpc3RlbmVyIGlmIHRoZSBjdXJzb3IgbGFuZGVkIG9uIHRoZSBmbG9hdGluZyBlbGVtZW50IGFuZFxuICAgICAgLy8gdGhlbiBiYWNrIG9uIHRoZSByZWZlcmVuY2UgKGkuZS4gaXQncyBpbnRlcmFjdGl2ZSkuXG4gICAgICBzZXRSZWFjdGl2ZShbXSk7XG4gICAgfVxuICB9KTtcblxuICAvLyBJZiB0aGUgcG9pbnRlciBpcyBhIG1vdXNlLWxpa2UgcG9pbnRlciwgd2Ugd2FudCB0byBjb250aW51ZSBmb2xsb3dpbmcgdGhlXG4gIC8vIG1vdXNlIGV2ZW4gaWYgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgdHJhbnNpdGlvbmluZyBvdXQuIE9uIHRvdWNoXG4gIC8vIGRldmljZXMsIHRoaXMgaXMgdW5kZXNpcmFibGUgYmVjYXVzZSB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aWxsIG1vdmUgdG9cbiAgLy8gdGhlIGRpc21pc3NhbCB0b3VjaCBwb2ludC5cbiAgY29uc3Qgb3BlbkNoZWNrID0gaXNNb3VzZUxpa2VQb2ludGVyVHlwZShwb2ludGVyVHlwZSkgPyBmbG9hdGluZyA6IG9wZW47XG4gIGNvbnN0IGFkZExpc3RlbmVyID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIEV4cGxpY2l0bHkgc3BlY2lmaWVkIGB4YC9geWAgY29vcmRpbmF0ZXMgc2hvdWxkbid0IGFkZCBhIGxpc3RlbmVyLlxuICAgIGlmICghb3BlbkNoZWNrIHx8ICFlbmFibGVkIHx8IHggIT0gbnVsbCB8fCB5ICE9IG51bGwpIHJldHVybjtcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZmxvYXRpbmcpO1xuICAgIGZ1bmN0aW9uIGhhbmRsZU1vdXNlTW92ZShldmVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGV2ZW50KTtcbiAgICAgIGlmICghY29udGFpbnMoZmxvYXRpbmcsIHRhcmdldCkpIHtcbiAgICAgICAgc2V0UmVmZXJlbmNlKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgICAgIGNsZWFudXBMaXN0ZW5lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFkYXRhUmVmLmN1cnJlbnQub3BlbkV2ZW50IHx8IGlzTW91c2VCYXNlZEV2ZW50KGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQpKSB7XG4gICAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICAgIGNvbnN0IGNsZWFudXAgPSAoKSA9PiB7XG4gICAgICAgIHdpbi5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3VzZU1vdmUpO1xuICAgICAgICBjbGVhbnVwTGlzdGVuZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9O1xuICAgICAgY2xlYW51cExpc3RlbmVyUmVmLmN1cnJlbnQgPSBjbGVhbnVwO1xuICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgfVxuICAgIHJlZnMuc2V0UG9zaXRpb25SZWZlcmVuY2UoZG9tUmVmZXJlbmNlKTtcbiAgfSwgW29wZW5DaGVjaywgZW5hYmxlZCwgeCwgeSwgZmxvYXRpbmcsIGRhdGFSZWYsIHJlZnMsIGRvbVJlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIGFkZExpc3RlbmVyKCk7XG4gIH0sIFthZGRMaXN0ZW5lciwgcmVhY3RpdmVdKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZW5hYmxlZCAmJiAhZmxvYXRpbmcpIHtcbiAgICAgIGluaXRpYWxSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH1cbiAgfSwgW2VuYWJsZWQsIGZsb2F0aW5nXSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkICYmIG9wZW4pIHtcbiAgICAgIGluaXRpYWxSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgb3Blbl0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKGVuYWJsZWQgJiYgKHggIT0gbnVsbCB8fCB5ICE9IG51bGwpKSB7XG4gICAgICBpbml0aWFsUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIHNldFJlZmVyZW5jZSh4LCB5KTtcbiAgICB9XG4gIH0sIFtlbmFibGVkLCB4LCB5LCBzZXRSZWZlcmVuY2VdKTtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgZnVuY3Rpb24gc2V0UG9pbnRlclR5cGVSZWYoX3JlZikge1xuICAgICAgbGV0IHtcbiAgICAgICAgcG9pbnRlclR5cGVcbiAgICAgIH0gPSBfcmVmO1xuICAgICAgc2V0UG9pbnRlclR5cGUocG9pbnRlclR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgb25Qb2ludGVyRG93bjogc2V0UG9pbnRlclR5cGVSZWYsXG4gICAgICBvblBvaW50ZXJFbnRlcjogc2V0UG9pbnRlclR5cGVSZWYsXG4gICAgICBvbk1vdXNlTW92ZTogaGFuZGxlUmVmZXJlbmNlRW50ZXJPck1vdmUsXG4gICAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZVJlZmVyZW5jZUVudGVyT3JNb3ZlXG4gICAgfTtcbiAgfSwgW2hhbmRsZVJlZmVyZW5jZUVudGVyT3JNb3ZlXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgcmVmZXJlbmNlXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZV0pO1xufVxuXG5jb25zdCBidWJibGVIYW5kbGVyS2V5cyA9IHtcbiAgcG9pbnRlcmRvd246ICdvblBvaW50ZXJEb3duJyxcbiAgbW91c2Vkb3duOiAnb25Nb3VzZURvd24nLFxuICBjbGljazogJ29uQ2xpY2snXG59O1xuY29uc3QgY2FwdHVyZUhhbmRsZXJLZXlzID0ge1xuICBwb2ludGVyZG93bjogJ29uUG9pbnRlckRvd25DYXB0dXJlJyxcbiAgbW91c2Vkb3duOiAnb25Nb3VzZURvd25DYXB0dXJlJyxcbiAgY2xpY2s6ICdvbkNsaWNrQ2FwdHVyZSdcbn07XG5jb25zdCBub3JtYWxpemVQcm9wID0gbm9ybWFsaXphYmxlID0+IHtcbiAgdmFyIF9ub3JtYWxpemFibGUkZXNjYXBlSywgX25vcm1hbGl6YWJsZSRvdXRzaWRlO1xuICByZXR1cm4ge1xuICAgIGVzY2FwZUtleTogdHlwZW9mIG5vcm1hbGl6YWJsZSA9PT0gJ2Jvb2xlYW4nID8gbm9ybWFsaXphYmxlIDogKF9ub3JtYWxpemFibGUkZXNjYXBlSyA9IG5vcm1hbGl6YWJsZSA9PSBudWxsID8gdm9pZCAwIDogbm9ybWFsaXphYmxlLmVzY2FwZUtleSkgIT0gbnVsbCA/IF9ub3JtYWxpemFibGUkZXNjYXBlSyA6IGZhbHNlLFxuICAgIG91dHNpZGVQcmVzczogdHlwZW9mIG5vcm1hbGl6YWJsZSA9PT0gJ2Jvb2xlYW4nID8gbm9ybWFsaXphYmxlIDogKF9ub3JtYWxpemFibGUkb3V0c2lkZSA9IG5vcm1hbGl6YWJsZSA9PSBudWxsID8gdm9pZCAwIDogbm9ybWFsaXphYmxlLm91dHNpZGVQcmVzcykgIT0gbnVsbCA/IF9ub3JtYWxpemFibGUkb3V0c2lkZSA6IHRydWVcbiAgfTtcbn07XG4vKipcbiAqIENsb3NlcyB0aGUgZmxvYXRpbmcgZWxlbWVudCB3aGVuIGEgZGlzbWlzc2FsIGlzIHJlcXVlc3RlZCDigJQgYnkgZGVmYXVsdCwgd2hlblxuICogdGhlIHVzZXIgcHJlc3NlcyB0aGUgYGVzY2FwZWAga2V5IG9yIG91dHNpZGUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlRGlzbWlzc1xuICovXG5mdW5jdGlvbiB1c2VEaXNtaXNzKGNvbnRleHQsIHByb3BzKSB7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZWxlbWVudHMsXG4gICAgZGF0YVJlZlxuICB9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGVuYWJsZWQgPSB0cnVlLFxuICAgIGVzY2FwZUtleSA9IHRydWUsXG4gICAgb3V0c2lkZVByZXNzOiB1bnN0YWJsZV9vdXRzaWRlUHJlc3MgPSB0cnVlLFxuICAgIG91dHNpZGVQcmVzc0V2ZW50ID0gJ3BvaW50ZXJkb3duJyxcbiAgICByZWZlcmVuY2VQcmVzcyA9IGZhbHNlLFxuICAgIHJlZmVyZW5jZVByZXNzRXZlbnQgPSAncG9pbnRlcmRvd24nLFxuICAgIGFuY2VzdG9yU2Nyb2xsID0gZmFsc2UsXG4gICAgYnViYmxlcyxcbiAgICBjYXB0dXJlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgdHJlZSA9IHVzZUZsb2F0aW5nVHJlZSgpO1xuICBjb25zdCBvdXRzaWRlUHJlc3NGbiA9IHVzZUVmZmVjdEV2ZW50KHR5cGVvZiB1bnN0YWJsZV9vdXRzaWRlUHJlc3MgPT09ICdmdW5jdGlvbicgPyB1bnN0YWJsZV9vdXRzaWRlUHJlc3MgOiAoKSA9PiBmYWxzZSk7XG4gIGNvbnN0IG91dHNpZGVQcmVzcyA9IHR5cGVvZiB1bnN0YWJsZV9vdXRzaWRlUHJlc3MgPT09ICdmdW5jdGlvbicgPyBvdXRzaWRlUHJlc3NGbiA6IHVuc3RhYmxlX291dHNpZGVQcmVzcztcbiAgY29uc3QgaW5zaWRlUmVhY3RUcmVlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZW5kZWRPclN0YXJ0ZWRJbnNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCB7XG4gICAgZXNjYXBlS2V5OiBlc2NhcGVLZXlCdWJibGVzLFxuICAgIG91dHNpZGVQcmVzczogb3V0c2lkZVByZXNzQnViYmxlc1xuICB9ID0gbm9ybWFsaXplUHJvcChidWJibGVzKTtcbiAgY29uc3Qge1xuICAgIGVzY2FwZUtleTogZXNjYXBlS2V5Q2FwdHVyZSxcbiAgICBvdXRzaWRlUHJlc3M6IG91dHNpZGVQcmVzc0NhcHR1cmVcbiAgfSA9IG5vcm1hbGl6ZVByb3AoY2FwdHVyZSk7XG4gIGNvbnN0IGNsb3NlT25Fc2NhcGVLZXlEb3duID0gdXNlRWZmZWN0RXZlbnQoZXZlbnQgPT4ge1xuICAgIHZhciBfZGF0YVJlZiRjdXJyZW50JGZsb2E7XG4gICAgaWYgKCFvcGVuIHx8ICFlbmFibGVkIHx8ICFlc2NhcGVLZXkgfHwgZXZlbnQua2V5ICE9PSAnRXNjYXBlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub2RlSWQgPSAoX2RhdGFSZWYkY3VycmVudCRmbG9hID0gZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kYXRhUmVmJGN1cnJlbnQkZmxvYS5ub2RlSWQ7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0cmVlID8gZ2V0Q2hpbGRyZW4odHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpIDogW107XG4gICAgaWYgKCFlc2NhcGVLZXlCdWJibGVzKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBzaG91bGREaXNtaXNzID0gdHJ1ZTtcbiAgICAgICAgY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgdmFyIF9jaGlsZCRjb250ZXh0O1xuICAgICAgICAgIGlmICgoX2NoaWxkJGNvbnRleHQgPSBjaGlsZC5jb250ZXh0KSAhPSBudWxsICYmIF9jaGlsZCRjb250ZXh0Lm9wZW4gJiYgIWNoaWxkLmNvbnRleHQuZGF0YVJlZi5jdXJyZW50Ll9fZXNjYXBlS2V5QnViYmxlcykge1xuICAgICAgICAgICAgc2hvdWxkRGlzbWlzcyA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghc2hvdWxkRGlzbWlzcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGlzUmVhY3RFdmVudChldmVudCkgPyBldmVudC5uYXRpdmVFdmVudCA6IGV2ZW50LCAnZXNjYXBlLWtleScpO1xuICB9KTtcbiAgY29uc3QgY2xvc2VPbkVzY2FwZUtleURvd25DYXB0dXJlID0gdXNlRWZmZWN0RXZlbnQoZXZlbnQgPT4ge1xuICAgIHZhciBfZ2V0VGFyZ2V0MjtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcbiAgICAgIHZhciBfZ2V0VGFyZ2V0O1xuICAgICAgY2xvc2VPbkVzY2FwZUtleURvd24oZXZlbnQpO1xuICAgICAgKF9nZXRUYXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpKSA9PSBudWxsIHx8IF9nZXRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIChfZ2V0VGFyZ2V0MiA9IGdldFRhcmdldChldmVudCkpID09IG51bGwgfHwgX2dldFRhcmdldDIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGNhbGxiYWNrKTtcbiAgfSk7XG4gIGNvbnN0IGNsb3NlT25QcmVzc091dHNpZGUgPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgdmFyIF9kYXRhUmVmJGN1cnJlbnQkZmxvYTI7XG4gICAgLy8gR2l2ZW4gZGV2ZWxvcGVycyBjYW4gc3RvcCB0aGUgcHJvcGFnYXRpb24gb2YgdGhlIHN5bnRoZXRpYyBldmVudCxcbiAgICAvLyB3ZSBjYW4gb25seSBiZSBjb25maWRlbnQgd2l0aCBhIHBvc2l0aXZlIHZhbHVlLlxuICAgIGNvbnN0IGluc2lkZVJlYWN0VHJlZSA9IGluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50O1xuICAgIGluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgICAvLyBXaGVuIGNsaWNrIG91dHNpZGUgaXMgbGF6eSAoYGNsaWNrYCBldmVudCksIGhhbmRsZSBkcmFnZ2luZy5cbiAgICAvLyBEb24ndCBjbG9zZSBpZjpcbiAgICAvLyAtIFRoZSBjbGljayBzdGFydGVkIGluc2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudC5cbiAgICAvLyAtIFRoZSBjbGljayBlbmRlZCBpbnNpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQuXG4gICAgY29uc3QgZW5kZWRPclN0YXJ0ZWRJbnNpZGUgPSBlbmRlZE9yU3RhcnRlZEluc2lkZVJlZi5jdXJyZW50O1xuICAgIGVuZGVkT3JTdGFydGVkSW5zaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICBpZiAob3V0c2lkZVByZXNzRXZlbnQgPT09ICdjbGljaycgJiYgZW5kZWRPclN0YXJ0ZWRJbnNpZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGluc2lkZVJlYWN0VHJlZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG91dHNpZGVQcmVzcyA9PT0gJ2Z1bmN0aW9uJyAmJiAhb3V0c2lkZVByZXNzKGV2ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpO1xuICAgIGNvbnN0IGluZXJ0U2VsZWN0b3IgPSBcIltcIiArIGNyZWF0ZUF0dHJpYnV0ZSgnaW5lcnQnKSArIFwiXVwiO1xuICAgIGNvbnN0IG1hcmtlcnMgPSBnZXREb2N1bWVudChlbGVtZW50cy5mbG9hdGluZykucXVlcnlTZWxlY3RvckFsbChpbmVydFNlbGVjdG9yKTtcbiAgICBsZXQgdGFyZ2V0Um9vdEFuY2VzdG9yID0gaXNFbGVtZW50KHRhcmdldCkgPyB0YXJnZXQgOiBudWxsO1xuICAgIHdoaWxlICh0YXJnZXRSb290QW5jZXN0b3IgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZSh0YXJnZXRSb290QW5jZXN0b3IpKSB7XG4gICAgICBjb25zdCBuZXh0UGFyZW50ID0gZ2V0UGFyZW50Tm9kZSh0YXJnZXRSb290QW5jZXN0b3IpO1xuICAgICAgaWYgKGlzTGFzdFRyYXZlcnNhYmxlTm9kZShuZXh0UGFyZW50KSB8fCAhaXNFbGVtZW50KG5leHRQYXJlbnQpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdGFyZ2V0Um9vdEFuY2VzdG9yID0gbmV4dFBhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY2xpY2sgb2NjdXJyZWQgb24gYSB0aGlyZC1wYXJ0eSBlbGVtZW50IGluamVjdGVkIGFmdGVyIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgcmVuZGVyZWQuXG4gICAgaWYgKG1hcmtlcnMubGVuZ3RoICYmIGlzRWxlbWVudCh0YXJnZXQpICYmICFpc1Jvb3RFbGVtZW50KHRhcmdldCkgJiZcbiAgICAvLyBDbGlja2VkIG9uIGEgZGlyZWN0IGFuY2VzdG9yIChlLmcuIEZsb2F0aW5nT3ZlcmxheSkuXG4gICAgIWNvbnRhaW5zKHRhcmdldCwgZWxlbWVudHMuZmxvYXRpbmcpICYmXG4gICAgLy8gSWYgdGhlIHRhcmdldCByb290IGVsZW1lbnQgY29udGFpbnMgbm9uZSBvZiB0aGUgbWFya2VycywgdGhlbiB0aGVcbiAgICAvLyBlbGVtZW50IHdhcyBpbmplY3RlZCBhZnRlciB0aGUgZmxvYXRpbmcgZWxlbWVudCByZW5kZXJlZC5cbiAgICBBcnJheS5mcm9tKG1hcmtlcnMpLmV2ZXJ5KG1hcmtlciA9PiAhY29udGFpbnModGFyZ2V0Um9vdEFuY2VzdG9yLCBtYXJrZXIpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBjbGljayBvY2N1cnJlZCBvbiB0aGUgc2Nyb2xsYmFyXG4gICAgaWYgKGlzSFRNTEVsZW1lbnQodGFyZ2V0KSAmJiBmbG9hdGluZykge1xuICAgICAgLy8gSW4gRmlyZWZveCwgYHRhcmdldC5zY3JvbGxXaWR0aCA+IHRhcmdldC5jbGllbnRXaWR0aGAgZm9yIGlubGluZVxuICAgICAgLy8gZWxlbWVudHMuXG4gICAgICBjb25zdCBjYW5TY3JvbGxYID0gdGFyZ2V0LmNsaWVudFdpZHRoID4gMCAmJiB0YXJnZXQuc2Nyb2xsV2lkdGggPiB0YXJnZXQuY2xpZW50V2lkdGg7XG4gICAgICBjb25zdCBjYW5TY3JvbGxZID0gdGFyZ2V0LmNsaWVudEhlaWdodCA+IDAgJiYgdGFyZ2V0LnNjcm9sbEhlaWdodCA+IHRhcmdldC5jbGllbnRIZWlnaHQ7XG4gICAgICBsZXQgeENvbmQgPSBjYW5TY3JvbGxZICYmIGV2ZW50Lm9mZnNldFggPiB0YXJnZXQuY2xpZW50V2lkdGg7XG5cbiAgICAgIC8vIEluIHNvbWUgYnJvd3NlcnMgaXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSA8Ym9keT4gKG9yIHdpbmRvdylcbiAgICAgIC8vIHNjcm9sbGJhciB0byB0aGUgbGVmdCBzaWRlLCBidXQgaXMgdmVyeSByYXJlIGFuZCBpcyBkaWZmaWN1bHQgdG9cbiAgICAgIC8vIGNoZWNrIGZvci4gUGx1cywgZm9yIG1vZGFsIGRpYWxvZ3Mgd2l0aCBiYWNrZHJvcHMsIGl0IGlzIG1vcmVcbiAgICAgIC8vIGltcG9ydGFudCB0aGF0IHRoZSBiYWNrZHJvcCBpcyBjaGVja2VkIGJ1dCBub3Qgc28gbXVjaCB0aGUgd2luZG93LlxuICAgICAgaWYgKGNhblNjcm9sbFkpIHtcbiAgICAgICAgY29uc3QgaXNSVEwgPSBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuZGlyZWN0aW9uID09PSAncnRsJztcbiAgICAgICAgaWYgKGlzUlRMKSB7XG4gICAgICAgICAgeENvbmQgPSBldmVudC5vZmZzZXRYIDw9IHRhcmdldC5vZmZzZXRXaWR0aCAtIHRhcmdldC5jbGllbnRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHhDb25kIHx8IGNhblNjcm9sbFggJiYgZXZlbnQub2Zmc2V0WSA+IHRhcmdldC5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBub2RlSWQgPSAoX2RhdGFSZWYkY3VycmVudCRmbG9hMiA9IGRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfZGF0YVJlZiRjdXJyZW50JGZsb2EyLm5vZGVJZDtcbiAgICBjb25zdCB0YXJnZXRJc0luc2lkZUNoaWxkcmVuID0gdHJlZSAmJiBnZXRDaGlsZHJlbih0cmVlLm5vZGVzUmVmLmN1cnJlbnQsIG5vZGVJZCkuc29tZShub2RlID0+IHtcbiAgICAgIHZhciBfbm9kZSRjb250ZXh0O1xuICAgICAgcmV0dXJuIGlzRXZlbnRUYXJnZXRXaXRoaW4oZXZlbnQsIChfbm9kZSRjb250ZXh0ID0gbm9kZS5jb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX25vZGUkY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyk7XG4gICAgfSk7XG4gICAgaWYgKGlzRXZlbnRUYXJnZXRXaXRoaW4oZXZlbnQsIGVsZW1lbnRzLmZsb2F0aW5nKSB8fCBpc0V2ZW50VGFyZ2V0V2l0aGluKGV2ZW50LCBlbGVtZW50cy5kb21SZWZlcmVuY2UpIHx8IHRhcmdldElzSW5zaWRlQ2hpbGRyZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0cmVlID8gZ2V0Q2hpbGRyZW4odHJlZS5ub2Rlc1JlZi5jdXJyZW50LCBub2RlSWQpIDogW107XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBzaG91bGREaXNtaXNzID0gdHJ1ZTtcbiAgICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICB2YXIgX2NoaWxkJGNvbnRleHQyO1xuICAgICAgICBpZiAoKF9jaGlsZCRjb250ZXh0MiA9IGNoaWxkLmNvbnRleHQpICE9IG51bGwgJiYgX2NoaWxkJGNvbnRleHQyLm9wZW4gJiYgIWNoaWxkLmNvbnRleHQuZGF0YVJlZi5jdXJyZW50Ll9fb3V0c2lkZVByZXNzQnViYmxlcykge1xuICAgICAgICAgIHNob3VsZERpc21pc3MgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCFzaG91bGREaXNtaXNzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudCwgJ291dHNpZGUtcHJlc3MnKTtcbiAgfSk7XG4gIGNvbnN0IGNsb3NlT25QcmVzc091dHNpZGVDYXB0dXJlID0gdXNlRWZmZWN0RXZlbnQoZXZlbnQgPT4ge1xuICAgIHZhciBfZ2V0VGFyZ2V0NDtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpID0+IHtcbiAgICAgIHZhciBfZ2V0VGFyZ2V0MztcbiAgICAgIGNsb3NlT25QcmVzc091dHNpZGUoZXZlbnQpO1xuICAgICAgKF9nZXRUYXJnZXQzID0gZ2V0VGFyZ2V0KGV2ZW50KSkgPT0gbnVsbCB8fCBfZ2V0VGFyZ2V0My5yZW1vdmVFdmVudExpc3RlbmVyKG91dHNpZGVQcmVzc0V2ZW50LCBjYWxsYmFjayk7XG4gICAgfTtcbiAgICAoX2dldFRhcmdldDQgPSBnZXRUYXJnZXQoZXZlbnQpKSA9PSBudWxsIHx8IF9nZXRUYXJnZXQ0LmFkZEV2ZW50TGlzdGVuZXIob3V0c2lkZVByZXNzRXZlbnQsIGNhbGxiYWNrKTtcbiAgfSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvcGVuIHx8ICFlbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGRhdGFSZWYuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXMgPSBlc2NhcGVLZXlCdWJibGVzO1xuICAgIGRhdGFSZWYuY3VycmVudC5fX291dHNpZGVQcmVzc0J1YmJsZXMgPSBvdXRzaWRlUHJlc3NCdWJibGVzO1xuICAgIGZ1bmN0aW9uIG9uU2Nyb2xsKGV2ZW50KSB7XG4gICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50LCAnYW5jZXN0b3Itc2Nyb2xsJyk7XG4gICAgfVxuICAgIGNvbnN0IGRvYyA9IGdldERvY3VtZW50KGVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgICBlc2NhcGVLZXkgJiYgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBlc2NhcGVLZXlDYXB0dXJlID8gY2xvc2VPbkVzY2FwZUtleURvd25DYXB0dXJlIDogY2xvc2VPbkVzY2FwZUtleURvd24sIGVzY2FwZUtleUNhcHR1cmUpO1xuICAgIG91dHNpZGVQcmVzcyAmJiBkb2MuYWRkRXZlbnRMaXN0ZW5lcihvdXRzaWRlUHJlc3NFdmVudCwgb3V0c2lkZVByZXNzQ2FwdHVyZSA/IGNsb3NlT25QcmVzc091dHNpZGVDYXB0dXJlIDogY2xvc2VPblByZXNzT3V0c2lkZSwgb3V0c2lkZVByZXNzQ2FwdHVyZSk7XG4gICAgbGV0IGFuY2VzdG9ycyA9IFtdO1xuICAgIGlmIChhbmNlc3RvclNjcm9sbCkge1xuICAgICAgaWYgKGlzRWxlbWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UpKSB7XG4gICAgICAgIGFuY2VzdG9ycyA9IGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnRzLmRvbVJlZmVyZW5jZSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNFbGVtZW50KGVsZW1lbnRzLmZsb2F0aW5nKSkge1xuICAgICAgICBhbmNlc3RvcnMgPSBhbmNlc3RvcnMuY29uY2F0KGdldE92ZXJmbG93QW5jZXN0b3JzKGVsZW1lbnRzLmZsb2F0aW5nKSk7XG4gICAgICB9XG4gICAgICBpZiAoIWlzRWxlbWVudChlbGVtZW50cy5yZWZlcmVuY2UpICYmIGVsZW1lbnRzLnJlZmVyZW5jZSAmJiBlbGVtZW50cy5yZWZlcmVuY2UuY29udGV4dEVsZW1lbnQpIHtcbiAgICAgICAgYW5jZXN0b3JzID0gYW5jZXN0b3JzLmNvbmNhdChnZXRPdmVyZmxvd0FuY2VzdG9ycyhlbGVtZW50cy5yZWZlcmVuY2UuY29udGV4dEVsZW1lbnQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZ25vcmUgdGhlIHZpc3VhbCB2aWV3cG9ydCBmb3Igc2Nyb2xsaW5nIGRpc21pc3NhbCAoYWxsb3cgcGluY2gtem9vbSlcbiAgICBhbmNlc3RvcnMgPSBhbmNlc3RvcnMuZmlsdGVyKGFuY2VzdG9yID0+IHtcbiAgICAgIHZhciBfZG9jJGRlZmF1bHRWaWV3O1xuICAgICAgcmV0dXJuIGFuY2VzdG9yICE9PSAoKF9kb2MkZGVmYXVsdFZpZXcgPSBkb2MuZGVmYXVsdFZpZXcpID09IG51bGwgPyB2b2lkIDAgOiBfZG9jJGRlZmF1bHRWaWV3LnZpc3VhbFZpZXdwb3J0KTtcbiAgICB9KTtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3Rvci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCwge1xuICAgICAgICBwYXNzaXZlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZXNjYXBlS2V5ICYmIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZXNjYXBlS2V5Q2FwdHVyZSA/IGNsb3NlT25Fc2NhcGVLZXlEb3duQ2FwdHVyZSA6IGNsb3NlT25Fc2NhcGVLZXlEb3duLCBlc2NhcGVLZXlDYXB0dXJlKTtcbiAgICAgIG91dHNpZGVQcmVzcyAmJiBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihvdXRzaWRlUHJlc3NFdmVudCwgb3V0c2lkZVByZXNzQ2FwdHVyZSA/IGNsb3NlT25QcmVzc091dHNpZGVDYXB0dXJlIDogY2xvc2VPblByZXNzT3V0c2lkZSwgb3V0c2lkZVByZXNzQ2FwdHVyZSk7XG4gICAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICAgIGFuY2VzdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0sIFtkYXRhUmVmLCBlbGVtZW50cywgZXNjYXBlS2V5LCBvdXRzaWRlUHJlc3MsIG91dHNpZGVQcmVzc0V2ZW50LCBvcGVuLCBvbk9wZW5DaGFuZ2UsIGFuY2VzdG9yU2Nyb2xsLCBlbmFibGVkLCBlc2NhcGVLZXlCdWJibGVzLCBvdXRzaWRlUHJlc3NCdWJibGVzLCBjbG9zZU9uRXNjYXBlS2V5RG93biwgZXNjYXBlS2V5Q2FwdHVyZSwgY2xvc2VPbkVzY2FwZUtleURvd25DYXB0dXJlLCBjbG9zZU9uUHJlc3NPdXRzaWRlLCBvdXRzaWRlUHJlc3NDYXB0dXJlLCBjbG9zZU9uUHJlc3NPdXRzaWRlQ2FwdHVyZV0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0sIFtvdXRzaWRlUHJlc3MsIG91dHNpZGVQcmVzc0V2ZW50XSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBvbktleURvd246IGNsb3NlT25Fc2NhcGVLZXlEb3duLFxuICAgIFtidWJibGVIYW5kbGVyS2V5c1tyZWZlcmVuY2VQcmVzc0V2ZW50XV06IGV2ZW50ID0+IHtcbiAgICAgIGlmIChyZWZlcmVuY2VQcmVzcykge1xuICAgICAgICBvbk9wZW5DaGFuZ2UoZmFsc2UsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAncmVmZXJlbmNlLXByZXNzJyk7XG4gICAgICB9XG4gICAgfVxuICB9KSwgW2Nsb3NlT25Fc2NhcGVLZXlEb3duLCBvbk9wZW5DaGFuZ2UsIHJlZmVyZW5jZVByZXNzLCByZWZlcmVuY2VQcmVzc0V2ZW50XSk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uS2V5RG93bjogY2xvc2VPbkVzY2FwZUtleURvd24sXG4gICAgb25Nb3VzZURvd24oKSB7XG4gICAgICBlbmRlZE9yU3RhcnRlZEluc2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LFxuICAgIG9uTW91c2VVcCgpIHtcbiAgICAgIGVuZGVkT3JTdGFydGVkSW5zaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sXG4gICAgW2NhcHR1cmVIYW5kbGVyS2V5c1tvdXRzaWRlUHJlc3NFdmVudF1dOiAoKSA9PiB7XG4gICAgICBpbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfVxuICB9KSwgW2Nsb3NlT25Fc2NhcGVLZXlEb3duLCBvdXRzaWRlUHJlc3NFdmVudF0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZSxcbiAgICBmbG9hdGluZ1xuICB9IDoge30sIFtlbmFibGVkLCByZWZlcmVuY2UsIGZsb2F0aW5nXSk7XG59XG5cbmZ1bmN0aW9uIHVzZUZsb2F0aW5nUm9vdENvbnRleHQob3B0aW9ucykge1xuICBjb25zdCB7XG4gICAgb3BlbiA9IGZhbHNlLFxuICAgIG9uT3BlbkNoYW5nZTogb25PcGVuQ2hhbmdlUHJvcCxcbiAgICBlbGVtZW50czogZWxlbWVudHNQcm9wXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBmbG9hdGluZ0lkID0gdXNlSWQoKTtcbiAgY29uc3QgZGF0YVJlZiA9IFJlYWN0LnVzZVJlZih7fSk7XG4gIGNvbnN0IFtldmVudHNdID0gUmVhY3QudXNlU3RhdGUoKCkgPT4gY3JlYXRlUHViU3ViKCkpO1xuICBjb25zdCBuZXN0ZWQgPSB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCgpICE9IG51bGw7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBjb25zdCBvcHRpb25Eb21SZWZlcmVuY2UgPSBlbGVtZW50c1Byb3AucmVmZXJlbmNlO1xuICAgIGlmIChvcHRpb25Eb21SZWZlcmVuY2UgJiYgIWlzRWxlbWVudChvcHRpb25Eb21SZWZlcmVuY2UpKSB7XG4gICAgICBlcnJvcignQ2Fubm90IHBhc3MgYSB2aXJ0dWFsIGVsZW1lbnQgdG8gdGhlIGBlbGVtZW50cy5yZWZlcmVuY2VgIG9wdGlvbiwnLCAnYXMgaXQgbXVzdCBiZSBhIHJlYWwgRE9NIGVsZW1lbnQuIFVzZSBgcmVmcy5zZXRQb3NpdGlvblJlZmVyZW5jZSgpYCcsICdpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbcG9zaXRpb25SZWZlcmVuY2UsIHNldFBvc2l0aW9uUmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKGVsZW1lbnRzUHJvcC5yZWZlcmVuY2UpO1xuICBjb25zdCBvbk9wZW5DaGFuZ2UgPSB1c2VFZmZlY3RFdmVudCgob3BlbiwgZXZlbnQsIHJlYXNvbikgPT4ge1xuICAgIGRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQgPSBvcGVuID8gZXZlbnQgOiB1bmRlZmluZWQ7XG4gICAgZXZlbnRzLmVtaXQoJ29wZW5jaGFuZ2UnLCB7XG4gICAgICBvcGVuLFxuICAgICAgZXZlbnQsXG4gICAgICByZWFzb24sXG4gICAgICBuZXN0ZWRcbiAgICB9KTtcbiAgICBvbk9wZW5DaGFuZ2VQcm9wID09IG51bGwgfHwgb25PcGVuQ2hhbmdlUHJvcChvcGVuLCBldmVudCwgcmVhc29uKTtcbiAgfSk7XG4gIGNvbnN0IHJlZnMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgc2V0UG9zaXRpb25SZWZlcmVuY2VcbiAgfSksIFtdKTtcbiAgY29uc3QgZWxlbWVudHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgcmVmZXJlbmNlOiBwb3NpdGlvblJlZmVyZW5jZSB8fCBlbGVtZW50c1Byb3AucmVmZXJlbmNlIHx8IG51bGwsXG4gICAgZmxvYXRpbmc6IGVsZW1lbnRzUHJvcC5mbG9hdGluZyB8fCBudWxsLFxuICAgIGRvbVJlZmVyZW5jZTogZWxlbWVudHNQcm9wLnJlZmVyZW5jZVxuICB9KSwgW3Bvc2l0aW9uUmVmZXJlbmNlLCBlbGVtZW50c1Byb3AucmVmZXJlbmNlLCBlbGVtZW50c1Byb3AuZmxvYXRpbmddKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBkYXRhUmVmLFxuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGVsZW1lbnRzLFxuICAgIGV2ZW50cyxcbiAgICBmbG9hdGluZ0lkLFxuICAgIHJlZnNcbiAgfSksIFtvcGVuLCBvbk9wZW5DaGFuZ2UsIGVsZW1lbnRzLCBldmVudHMsIGZsb2F0aW5nSWQsIHJlZnNdKTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGEgZmxvYXRpbmcgZWxlbWVudCBhbmQgY29udGV4dCB0byBhZGQgaW50ZXJhY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3VzZUZsb2F0aW5nXG4gKi9cbmZ1bmN0aW9uIHVzZUZsb2F0aW5nKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgbm9kZUlkXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBpbnRlcm5hbFJvb3RDb250ZXh0ID0gdXNlRmxvYXRpbmdSb290Q29udGV4dCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBlbGVtZW50czoge1xuICAgICAgcmVmZXJlbmNlOiBudWxsLFxuICAgICAgZmxvYXRpbmc6IG51bGwsXG4gICAgICAuLi5vcHRpb25zLmVsZW1lbnRzXG4gICAgfVxuICB9KTtcbiAgY29uc3Qgcm9vdENvbnRleHQgPSBvcHRpb25zLnJvb3RDb250ZXh0IHx8IGludGVybmFsUm9vdENvbnRleHQ7XG4gIGNvbnN0IGNvbXB1dGVkRWxlbWVudHMgPSByb290Q29udGV4dC5lbGVtZW50cztcbiAgY29uc3QgW19kb21SZWZlcmVuY2UsIHNldERvbVJlZmVyZW5jZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3Bvc2l0aW9uUmVmZXJlbmNlLCBfc2V0UG9zaXRpb25SZWZlcmVuY2VdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IG9wdGlvbkRvbVJlZmVyZW5jZSA9IGNvbXB1dGVkRWxlbWVudHMgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbXB1dGVkRWxlbWVudHMucmVmZXJlbmNlO1xuICBjb25zdCBkb21SZWZlcmVuY2UgPSBvcHRpb25Eb21SZWZlcmVuY2UgfHwgX2RvbVJlZmVyZW5jZTtcbiAgY29uc3QgZG9tUmVmZXJlbmNlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCB0cmVlID0gdXNlRmxvYXRpbmdUcmVlKCk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAoZG9tUmVmZXJlbmNlKSB7XG4gICAgICBkb21SZWZlcmVuY2VSZWYuY3VycmVudCA9IGRvbVJlZmVyZW5jZTtcbiAgICB9XG4gIH0sIFtkb21SZWZlcmVuY2VdKTtcbiAgY29uc3QgcG9zaXRpb24gPSB1c2VGbG9hdGluZyQxKHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICAuLi5jb21wdXRlZEVsZW1lbnRzLFxuICAgICAgLi4uKHBvc2l0aW9uUmVmZXJlbmNlICYmIHtcbiAgICAgICAgcmVmZXJlbmNlOiBwb3NpdGlvblJlZmVyZW5jZVxuICAgICAgfSlcbiAgICB9XG4gIH0pO1xuICBjb25zdCBzZXRQb3NpdGlvblJlZmVyZW5jZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb25SZWZlcmVuY2UgPSBpc0VsZW1lbnQobm9kZSkgPyB7XG4gICAgICBnZXRCb3VuZGluZ0NsaWVudFJlY3Q6ICgpID0+IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBjb250ZXh0RWxlbWVudDogbm9kZVxuICAgIH0gOiBub2RlO1xuICAgIC8vIFN0b3JlIHRoZSBwb3NpdGlvblJlZmVyZW5jZSBpbiBzdGF0ZSBpZiB0aGUgRE9NIHJlZmVyZW5jZSBpcyBzcGVjaWZpZWQgZXh0ZXJuYWxseSB2aWEgdGhlXG4gICAgLy8gYGVsZW1lbnRzLnJlZmVyZW5jZWAgb3B0aW9uLiBUaGlzIGVuc3VyZXMgdGhhdCBpdCB3b24ndCBiZSBvdmVycmlkZGVuIG9uIGZ1dHVyZSByZW5kZXJzLlxuICAgIF9zZXRQb3NpdGlvblJlZmVyZW5jZShjb21wdXRlZFBvc2l0aW9uUmVmZXJlbmNlKTtcbiAgICBwb3NpdGlvbi5yZWZzLnNldFJlZmVyZW5jZShjb21wdXRlZFBvc2l0aW9uUmVmZXJlbmNlKTtcbiAgfSwgW3Bvc2l0aW9uLnJlZnNdKTtcbiAgY29uc3Qgc2V0UmVmZXJlbmNlID0gUmVhY3QudXNlQ2FsbGJhY2sobm9kZSA9PiB7XG4gICAgaWYgKGlzRWxlbWVudChub2RlKSB8fCBub2RlID09PSBudWxsKSB7XG4gICAgICBkb21SZWZlcmVuY2VSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXREb21SZWZlcmVuY2Uobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIHBhc3NpbmcgYSB2aXJ0dWFsIGVsZW1lbnQgdG8gYHJlZmVyZW5jZWBcbiAgICAvLyBhZnRlciBpdCBoYXMgc2V0IHRoZSBET00gcmVmZXJlbmNlLlxuICAgIGlmIChpc0VsZW1lbnQocG9zaXRpb24ucmVmcy5yZWZlcmVuY2UuY3VycmVudCkgfHwgcG9zaXRpb24ucmVmcy5yZWZlcmVuY2UuY3VycmVudCA9PT0gbnVsbCB8fFxuICAgIC8vIERvbid0IGFsbG93IHNldHRpbmcgdmlydHVhbCBlbGVtZW50cyB1c2luZyB0aGUgb2xkIHRlY2huaXF1ZSBiYWNrIHRvXG4gICAgLy8gYG51bGxgIHRvIHN1cHBvcnQgYHBvc2l0aW9uUmVmZXJlbmNlYCArIGFuIHVuc3RhYmxlIGByZWZlcmVuY2VgXG4gICAgLy8gY2FsbGJhY2sgcmVmLlxuICAgIG5vZGUgIT09IG51bGwgJiYgIWlzRWxlbWVudChub2RlKSkge1xuICAgICAgcG9zaXRpb24ucmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgfVxuICB9LCBbcG9zaXRpb24ucmVmc10pO1xuICBjb25zdCByZWZzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLnBvc2l0aW9uLnJlZnMsXG4gICAgc2V0UmVmZXJlbmNlLFxuICAgIHNldFBvc2l0aW9uUmVmZXJlbmNlLFxuICAgIGRvbVJlZmVyZW5jZTogZG9tUmVmZXJlbmNlUmVmXG4gIH0pLCBbcG9zaXRpb24ucmVmcywgc2V0UmVmZXJlbmNlLCBzZXRQb3NpdGlvblJlZmVyZW5jZV0pO1xuICBjb25zdCBlbGVtZW50cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5wb3NpdGlvbi5lbGVtZW50cyxcbiAgICBkb21SZWZlcmVuY2U6IGRvbVJlZmVyZW5jZVxuICB9KSwgW3Bvc2l0aW9uLmVsZW1lbnRzLCBkb21SZWZlcmVuY2VdKTtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5wb3NpdGlvbixcbiAgICAuLi5yb290Q29udGV4dCxcbiAgICByZWZzLFxuICAgIGVsZW1lbnRzLFxuICAgIG5vZGVJZFxuICB9KSwgW3Bvc2l0aW9uLCByZWZzLCBlbGVtZW50cywgbm9kZUlkLCByb290Q29udGV4dF0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgcm9vdENvbnRleHQuZGF0YVJlZi5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgY29uc3Qgbm9kZSA9IHRyZWUgPT0gbnVsbCA/IHZvaWQgMCA6IHRyZWUubm9kZXNSZWYuY3VycmVudC5maW5kKG5vZGUgPT4gbm9kZS5pZCA9PT0gbm9kZUlkKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5jb250ZXh0ID0gY29udGV4dDtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLnBvc2l0aW9uLFxuICAgIGNvbnRleHQsXG4gICAgcmVmcyxcbiAgICBlbGVtZW50c1xuICB9KSwgW3Bvc2l0aW9uLCByZWZzLCBlbGVtZW50cywgY29udGV4dF0pO1xufVxuXG4vKipcbiAqIE9wZW5zIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoaWxlIHRoZSByZWZlcmVuY2UgZWxlbWVudCBoYXMgZm9jdXMsIGxpa2UgQ1NTXG4gKiBgOmZvY3VzYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VGb2N1c1xuICovXG5mdW5jdGlvbiB1c2VGb2N1cyhjb250ZXh0LCBwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGV2ZW50cyxcbiAgICBkYXRhUmVmLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgdmlzaWJsZU9ubHkgPSB0cnVlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgYmxvY2tGb2N1c1JlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgY29uc3Qga2V5Ym9hcmRNb2RhbGl0eVJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybjtcbiAgICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudHMuZG9tUmVmZXJlbmNlKTtcblxuICAgIC8vIElmIHRoZSByZWZlcmVuY2Ugd2FzIGZvY3VzZWQgYW5kIHRoZSB1c2VyIGxlZnQgdGhlIHRhYi93aW5kb3csIGFuZCB0aGVcbiAgICAvLyBmbG9hdGluZyBlbGVtZW50IHdhcyBub3Qgb3BlbiwgdGhlIGZvY3VzIHNob3VsZCBiZSBibG9ja2VkIHdoZW4gdGhleVxuICAgIC8vIHJldHVybiB0byB0aGUgdGFiL3dpbmRvdy5cbiAgICBmdW5jdGlvbiBvbkJsdXIoKSB7XG4gICAgICBpZiAoIW9wZW4gJiYgaXNIVE1MRWxlbWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UpICYmIGVsZW1lbnRzLmRvbVJlZmVyZW5jZSA9PT0gYWN0aXZlRWxlbWVudChnZXREb2N1bWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UpKSkge1xuICAgICAgICBibG9ja0ZvY3VzUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvbktleURvd24oKSB7XG4gICAgICBrZXlib2FyZE1vZGFsaXR5UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uQmx1cik7XG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbktleURvd24sIHRydWUpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIG9uQmx1cik7XG4gICAgICB3aW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uS2V5RG93biwgdHJ1ZSk7XG4gICAgfTtcbiAgfSwgW2VsZW1lbnRzLmRvbVJlZmVyZW5jZSwgb3BlbiwgZW5hYmxlZF0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICAgIGZ1bmN0aW9uIG9uT3BlbkNoYW5nZShfcmVmKSB7XG4gICAgICBsZXQge1xuICAgICAgICByZWFzb25cbiAgICAgIH0gPSBfcmVmO1xuICAgICAgaWYgKHJlYXNvbiA9PT0gJ3JlZmVyZW5jZS1wcmVzcycgfHwgcmVhc29uID09PSAnZXNjYXBlLWtleScpIHtcbiAgICAgICAgYmxvY2tGb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZXZlbnRzLm9uKCdvcGVuY2hhbmdlJywgb25PcGVuQ2hhbmdlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZXZlbnRzLm9mZignb3BlbmNoYW5nZScsIG9uT3BlbkNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2V2ZW50cywgZW5hYmxlZF0pO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIGNvbnN0IHJlZmVyZW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBvblBvaW50ZXJEb3duKGV2ZW50KSB7XG4gICAgICBpZiAoaXNWaXJ0dWFsUG9pbnRlckV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KSkgcmV0dXJuO1xuICAgICAga2V5Ym9hcmRNb2RhbGl0eVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSxcbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICBibG9ja0ZvY3VzUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9LFxuICAgIG9uRm9jdXMoZXZlbnQpIHtcbiAgICAgIGlmIChibG9ja0ZvY3VzUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGdldFRhcmdldChldmVudC5uYXRpdmVFdmVudCk7XG4gICAgICBpZiAodmlzaWJsZU9ubHkgJiYgaXNFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBNYWMgU2FmYXJpIHVucmVsaWFibHkgbWF0Y2hlcyBgOmZvY3VzLXZpc2libGVgIG9uIHRoZSByZWZlcmVuY2VcbiAgICAgICAgICAvLyBpZiBmb2N1cyB3YXMgb3V0c2lkZSB0aGUgcGFnZSBpbml0aWFsbHkgLSB1c2UgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgLy8gaW5zdGVhZC5cbiAgICAgICAgICBpZiAoaXNTYWZhcmkoKSAmJiBpc01hYygpKSB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgIGlmICghdGFyZ2V0Lm1hdGNoZXMoJzpmb2N1cy12aXNpYmxlJykpIHJldHVybjtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIE9sZCBicm93c2VycyB3aWxsIHRocm93IGFuIGVycm9yIHdoZW4gdXNpbmcgYDpmb2N1cy12aXNpYmxlYC5cbiAgICAgICAgICBpZiAoIWtleWJvYXJkTW9kYWxpdHlSZWYuY3VycmVudCAmJiAhaXNUeXBlYWJsZUVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb25PcGVuQ2hhbmdlKHRydWUsIGV2ZW50Lm5hdGl2ZUV2ZW50LCAnZm9jdXMnKTtcbiAgICB9LFxuICAgIG9uQmx1cihldmVudCkge1xuICAgICAgYmxvY2tGb2N1c1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldDtcbiAgICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICAgIC8vIEhpdCB0aGUgbm9uLW1vZGFsIGZvY3VzIG1hbmFnZW1lbnQgcG9ydGFsIGd1YXJkLiBGb2N1cyB3aWxsIGJlXG4gICAgICAvLyBtb3ZlZCBpbnRvIHRoZSBmbG9hdGluZyBlbGVtZW50IGltbWVkaWF0ZWx5IGFmdGVyLlxuICAgICAgY29uc3QgbW92ZWRUb0ZvY3VzR3VhcmQgPSBpc0VsZW1lbnQocmVsYXRlZFRhcmdldCkgJiYgcmVsYXRlZFRhcmdldC5oYXNBdHRyaWJ1dGUoY3JlYXRlQXR0cmlidXRlKCdmb2N1cy1ndWFyZCcpKSAmJiByZWxhdGVkVGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS10eXBlJykgPT09ICdvdXRzaWRlJztcblxuICAgICAgLy8gV2FpdCBmb3IgdGhlIHdpbmRvdyBibHVyIGxpc3RlbmVyIHRvIGZpcmUuXG4gICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHZhciBfZGF0YVJlZiRjdXJyZW50JGZsb2E7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUVsID0gYWN0aXZlRWxlbWVudChlbGVtZW50cy5kb21SZWZlcmVuY2UgPyBlbGVtZW50cy5kb21SZWZlcmVuY2Uub3duZXJEb2N1bWVudCA6IGRvY3VtZW50KTtcblxuICAgICAgICAvLyBGb2N1cyBsZWZ0IHRoZSBwYWdlLCBrZWVwIGl0IG9wZW4uXG4gICAgICAgIGlmICghcmVsYXRlZFRhcmdldCAmJiBhY3RpdmVFbCA9PT0gZWxlbWVudHMuZG9tUmVmZXJlbmNlKSByZXR1cm47XG5cbiAgICAgICAgLy8gV2hlbiBmb2N1c2luZyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQgKGUuZy4gcmVndWxhciBjbGljayksIHRoZW5cbiAgICAgICAgLy8gY2xpY2tpbmcgaW50byB0aGUgZmxvYXRpbmcgZWxlbWVudCwgcHJldmVudCBpdCBmcm9tIGhpZGluZy5cbiAgICAgICAgLy8gTm90ZTogaXQgbXVzdCBiZSBmb2N1c2FibGUsIGUuZy4gYHRhYmluZGV4PVwiLTFcImAuXG4gICAgICAgIC8vIFdlIGNhbiBub3QgcmVseSBvbiByZWxhdGVkVGFyZ2V0IHRvIHBvaW50IHRvIHRoZSBjb3JyZWN0IGVsZW1lbnRcbiAgICAgICAgLy8gYXMgaXQgd2lsbCBvbmx5IHBvaW50IHRvIHRoZSBzaGFkb3cgaG9zdCBvZiB0aGUgbmV3bHkgZm9jdXNlZCBlbGVtZW50XG4gICAgICAgIC8vIGFuZCBub3QgdGhlIGVsZW1lbnQgdGhhdCBhY3R1YWxseSBoYXMgcmVjZWl2ZWQgZm9jdXMgaWYgaXQgaXMgbG9jYXRlZFxuICAgICAgICAvLyBpbnNpZGUgYSBzaGFkb3cgcm9vdC5cbiAgICAgICAgaWYgKGNvbnRhaW5zKChfZGF0YVJlZiRjdXJyZW50JGZsb2EgPSBkYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2RhdGFSZWYkY3VycmVudCRmbG9hLnJlZnMuZmxvYXRpbmcuY3VycmVudCwgYWN0aXZlRWwpIHx8IGNvbnRhaW5zKGVsZW1lbnRzLmRvbVJlZmVyZW5jZSwgYWN0aXZlRWwpIHx8IG1vdmVkVG9Gb2N1c0d1YXJkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSwgbmF0aXZlRXZlbnQsICdmb2N1cycpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KSwgW2RhdGFSZWYsIGVsZW1lbnRzLmRvbVJlZmVyZW5jZSwgb25PcGVuQ2hhbmdlLCB2aXNpYmxlT25seV0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZVxuICB9IDoge30sIFtlbmFibGVkLCByZWZlcmVuY2VdKTtcbn1cblxuY29uc3QgQUNUSVZFX0tFWSA9ICdhY3RpdmUnO1xuY29uc3QgU0VMRUNURURfS0VZID0gJ3NlbGVjdGVkJztcbmZ1bmN0aW9uIG1lcmdlUHJvcHModXNlclByb3BzLCBwcm9wc0xpc3QsIGVsZW1lbnRLZXkpIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICBjb25zdCBpc0l0ZW0gPSBlbGVtZW50S2V5ID09PSAnaXRlbSc7XG4gIGxldCBkb21Vc2VyUHJvcHMgPSB1c2VyUHJvcHM7XG4gIGlmIChpc0l0ZW0gJiYgdXNlclByb3BzKSB7XG4gICAgY29uc3Qge1xuICAgICAgW0FDVElWRV9LRVldOiBfLFxuICAgICAgW1NFTEVDVEVEX0tFWV06IF9fLFxuICAgICAgLi4udmFsaWRQcm9wc1xuICAgIH0gPSB1c2VyUHJvcHM7XG4gICAgZG9tVXNlclByb3BzID0gdmFsaWRQcm9wcztcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLihlbGVtZW50S2V5ID09PSAnZmxvYXRpbmcnICYmIHtcbiAgICAgIHRhYkluZGV4OiAtMVxuICAgIH0pLFxuICAgIC4uLmRvbVVzZXJQcm9wcyxcbiAgICAuLi5wcm9wc0xpc3QubWFwKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHByb3BzT3JHZXRQcm9wcyA9IHZhbHVlID8gdmFsdWVbZWxlbWVudEtleV0gOiBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBwcm9wc09yR2V0UHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHVzZXJQcm9wcyA/IHByb3BzT3JHZXRQcm9wcyh1c2VyUHJvcHMpIDogbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9wc09yR2V0UHJvcHM7XG4gICAgfSkuY29uY2F0KHVzZXJQcm9wcykucmVkdWNlKChhY2MsIHByb3BzKSA9PiB7XG4gICAgICBpZiAoIXByb3BzKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG4gICAgICBPYmplY3QuZW50cmllcyhwcm9wcykuZm9yRWFjaChfcmVmID0+IHtcbiAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IF9yZWY7XG4gICAgICAgIGlmIChpc0l0ZW0gJiYgW0FDVElWRV9LRVksIFNFTEVDVEVEX0tFWV0uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5LmluZGV4T2YoJ29uJykgPT09IDApIHtcbiAgICAgICAgICBpZiAoIW1hcC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgbWFwLnNldChrZXksIFtdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIF9tYXAkZ2V0O1xuICAgICAgICAgICAgKF9tYXAkZ2V0ID0gbWFwLmdldChrZXkpKSA9PSBudWxsIHx8IF9tYXAkZ2V0LnB1c2godmFsdWUpO1xuICAgICAgICAgICAgYWNjW2tleV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHZhciBfbWFwJGdldDI7XG4gICAgICAgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIChfbWFwJGdldDIgPSBtYXAuZ2V0KGtleSkpID09IG51bGwgPyB2b2lkIDAgOiBfbWFwJGdldDIubWFwKGZuID0+IGZuKC4uLmFyZ3MpKS5maW5kKHZhbCA9PiB2YWwgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pXG4gIH07XG59XG4vKipcbiAqIE1lcmdlcyBhbiBhcnJheSBvZiBpbnRlcmFjdGlvbiBob29rcycgcHJvcHMgaW50byBwcm9wIGdldHRlcnMsIGFsbG93aW5nXG4gKiBldmVudCBoYW5kbGVyIGZ1bmN0aW9ucyB0byBiZSBjb21wb3NlZCB0b2dldGhlciB3aXRob3V0IG92ZXJ3cml0aW5nIG9uZVxuICogYW5vdGhlci5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VJbnRlcmFjdGlvbnNcbiAqL1xuZnVuY3Rpb24gdXNlSW50ZXJhY3Rpb25zKHByb3BzTGlzdCkge1xuICBpZiAocHJvcHNMaXN0ID09PSB2b2lkIDApIHtcbiAgICBwcm9wc0xpc3QgPSBbXTtcbiAgfVxuICBjb25zdCByZWZlcmVuY2VEZXBzID0gcHJvcHNMaXN0Lm1hcChrZXkgPT4ga2V5ID09IG51bGwgPyB2b2lkIDAgOiBrZXkucmVmZXJlbmNlKTtcbiAgY29uc3QgZmxvYXRpbmdEZXBzID0gcHJvcHNMaXN0Lm1hcChrZXkgPT4ga2V5ID09IG51bGwgPyB2b2lkIDAgOiBrZXkuZmxvYXRpbmcpO1xuICBjb25zdCBpdGVtRGVwcyA9IHByb3BzTGlzdC5tYXAoa2V5ID0+IGtleSA9PSBudWxsID8gdm9pZCAwIDoga2V5Lml0ZW0pO1xuICBjb25zdCBnZXRSZWZlcmVuY2VQcm9wcyA9IFJlYWN0LnVzZUNhbGxiYWNrKHVzZXJQcm9wcyA9PiBtZXJnZVByb3BzKHVzZXJQcm9wcywgcHJvcHNMaXN0LCAncmVmZXJlbmNlJyksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgcmVmZXJlbmNlRGVwcyk7XG4gIGNvbnN0IGdldEZsb2F0aW5nUHJvcHMgPSBSZWFjdC51c2VDYWxsYmFjayh1c2VyUHJvcHMgPT4gbWVyZ2VQcm9wcyh1c2VyUHJvcHMsIHByb3BzTGlzdCwgJ2Zsb2F0aW5nJyksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgZmxvYXRpbmdEZXBzKTtcbiAgY29uc3QgZ2V0SXRlbVByb3BzID0gUmVhY3QudXNlQ2FsbGJhY2sodXNlclByb3BzID0+IG1lcmdlUHJvcHModXNlclByb3BzLCBwcm9wc0xpc3QsICdpdGVtJyksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgaXRlbURlcHMpO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGdldFJlZmVyZW5jZVByb3BzLFxuICAgIGdldEZsb2F0aW5nUHJvcHMsXG4gICAgZ2V0SXRlbVByb3BzXG4gIH0pLCBbZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wc10pO1xufVxuXG5sZXQgaXNQcmV2ZW50U2Nyb2xsU3VwcG9ydGVkID0gZmFsc2U7XG5mdW5jdGlvbiBkb1N3aXRjaChvcmllbnRhdGlvbiwgdmVydGljYWwsIGhvcml6b250YWwpIHtcbiAgc3dpdGNoIChvcmllbnRhdGlvbikge1xuICAgIGNhc2UgJ3ZlcnRpY2FsJzpcbiAgICAgIHJldHVybiB2ZXJ0aWNhbDtcbiAgICBjYXNlICdob3Jpem9udGFsJzpcbiAgICAgIHJldHVybiBob3Jpem9udGFsO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdmVydGljYWwgfHwgaG9yaXpvbnRhbDtcbiAgfVxufVxuZnVuY3Rpb24gaXNNYWluT3JpZW50YXRpb25LZXkoa2V5LCBvcmllbnRhdGlvbikge1xuICBjb25zdCB2ZXJ0aWNhbCA9IGtleSA9PT0gQVJST1dfVVAgfHwga2V5ID09PSBBUlJPV19ET1dOO1xuICBjb25zdCBob3Jpem9udGFsID0ga2V5ID09PSBBUlJPV19MRUZUIHx8IGtleSA9PT0gQVJST1dfUklHSFQ7XG4gIHJldHVybiBkb1N3aXRjaChvcmllbnRhdGlvbiwgdmVydGljYWwsIGhvcml6b250YWwpO1xufVxuZnVuY3Rpb24gaXNNYWluT3JpZW50YXRpb25Ub0VuZEtleShrZXksIG9yaWVudGF0aW9uLCBydGwpIHtcbiAgY29uc3QgdmVydGljYWwgPSBrZXkgPT09IEFSUk9XX0RPV047XG4gIGNvbnN0IGhvcml6b250YWwgPSBydGwgPyBrZXkgPT09IEFSUk9XX0xFRlQgOiBrZXkgPT09IEFSUk9XX1JJR0hUO1xuICByZXR1cm4gZG9Td2l0Y2gob3JpZW50YXRpb24sIHZlcnRpY2FsLCBob3Jpem9udGFsKSB8fCBrZXkgPT09ICdFbnRlcicgfHwga2V5ID09PSAnICcgfHwga2V5ID09PSAnJztcbn1cbmZ1bmN0aW9uIGlzQ3Jvc3NPcmllbnRhdGlvbk9wZW5LZXkoa2V5LCBvcmllbnRhdGlvbiwgcnRsKSB7XG4gIGNvbnN0IHZlcnRpY2FsID0gcnRsID8ga2V5ID09PSBBUlJPV19MRUZUIDoga2V5ID09PSBBUlJPV19SSUdIVDtcbiAgY29uc3QgaG9yaXpvbnRhbCA9IGtleSA9PT0gQVJST1dfRE9XTjtcbiAgcmV0dXJuIGRvU3dpdGNoKG9yaWVudGF0aW9uLCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCk7XG59XG5mdW5jdGlvbiBpc0Nyb3NzT3JpZW50YXRpb25DbG9zZUtleShrZXksIG9yaWVudGF0aW9uLCBydGwpIHtcbiAgY29uc3QgdmVydGljYWwgPSBydGwgPyBrZXkgPT09IEFSUk9XX1JJR0hUIDoga2V5ID09PSBBUlJPV19MRUZUO1xuICBjb25zdCBob3Jpem9udGFsID0ga2V5ID09PSBBUlJPV19VUDtcbiAgcmV0dXJuIGRvU3dpdGNoKG9yaWVudGF0aW9uLCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbCk7XG59XG4vKipcbiAqIEFkZHMgYXJyb3cga2V5LWJhc2VkIG5hdmlnYXRpb24gb2YgYSBsaXN0IG9mIGl0ZW1zLCBlaXRoZXIgdXNpbmcgcmVhbCBET01cbiAqIGZvY3VzIG9yIHZpcnR1YWwgZm9jdXMuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlTGlzdE5hdmlnYXRpb25cbiAqL1xuZnVuY3Rpb24gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwgcHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgbGlzdFJlZixcbiAgICBhY3RpdmVJbmRleCxcbiAgICBvbk5hdmlnYXRlOiB1bnN0YWJsZV9vbk5hdmlnYXRlID0gKCkgPT4ge30sXG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgc2VsZWN0ZWRJbmRleCA9IG51bGwsXG4gICAgYWxsb3dFc2NhcGUgPSBmYWxzZSxcbiAgICBsb29wID0gZmFsc2UsXG4gICAgbmVzdGVkID0gZmFsc2UsXG4gICAgcnRsID0gZmFsc2UsXG4gICAgdmlydHVhbCA9IGZhbHNlLFxuICAgIGZvY3VzSXRlbU9uT3BlbiA9ICdhdXRvJyxcbiAgICBmb2N1c0l0ZW1PbkhvdmVyID0gdHJ1ZSxcbiAgICBvcGVuT25BcnJvd0tleURvd24gPSB0cnVlLFxuICAgIGRpc2FibGVkSW5kaWNlcyA9IHVuZGVmaW5lZCxcbiAgICBvcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCcsXG4gICAgY29scyA9IDEsXG4gICAgc2Nyb2xsSXRlbUludG9WaWV3ID0gdHJ1ZSxcbiAgICB2aXJ0dWFsSXRlbVJlZixcbiAgICBpdGVtU2l6ZXMsXG4gICAgZGVuc2UgPSBmYWxzZVxuICB9ID0gcHJvcHM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAoYWxsb3dFc2NhcGUpIHtcbiAgICAgIGlmICghbG9vcCkge1xuICAgICAgICB3YXJuKCdgdXNlTGlzdE5hdmlnYXRpb25gIGxvb3BpbmcgbXVzdCBiZSBlbmFibGVkIHRvIGFsbG93IGVzY2FwaW5nLicpO1xuICAgICAgfVxuICAgICAgaWYgKCF2aXJ0dWFsKSB7XG4gICAgICAgIHdhcm4oJ2B1c2VMaXN0TmF2aWdhdGlvbmAgbXVzdCBiZSB2aXJ0dWFsIHRvIGFsbG93IGVzY2FwaW5nLicpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgJiYgY29scyA+IDEpIHtcbiAgICAgIHdhcm4oJ0luIGdyaWQgbGlzdCBuYXZpZ2F0aW9uIG1vZGUgKGBjb2xzYCA+IDEpLCB0aGUgYG9yaWVudGF0aW9uYCBzaG91bGQnLCAnYmUgZWl0aGVyIFwiaG9yaXpvbnRhbFwiIG9yIFwiYm90aFwiLicpO1xuICAgIH1cbiAgfVxuICBjb25zdCBwYXJlbnRJZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCk7XG4gIGNvbnN0IHRyZWUgPSB1c2VGbG9hdGluZ1RyZWUoKTtcbiAgY29uc3Qgb25OYXZpZ2F0ZSA9IHVzZUVmZmVjdEV2ZW50KHVuc3RhYmxlX29uTmF2aWdhdGUpO1xuICBjb25zdCBmb2N1c0l0ZW1Pbk9wZW5SZWYgPSBSZWFjdC51c2VSZWYoZm9jdXNJdGVtT25PcGVuKTtcbiAgY29uc3QgaW5kZXhSZWYgPSBSZWFjdC51c2VSZWYoc2VsZWN0ZWRJbmRleCAhPSBudWxsID8gc2VsZWN0ZWRJbmRleCA6IC0xKTtcbiAgY29uc3Qga2V5UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBpc1BvaW50ZXJNb2RhbGl0eVJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcbiAgY29uc3QgcHJldmlvdXNPbk5hdmlnYXRlUmVmID0gUmVhY3QudXNlUmVmKG9uTmF2aWdhdGUpO1xuICBjb25zdCBwcmV2aW91c01vdW50ZWRSZWYgPSBSZWFjdC51c2VSZWYoISFlbGVtZW50cy5mbG9hdGluZyk7XG4gIGNvbnN0IHByZXZpb3VzT3BlblJlZiA9IFJlYWN0LnVzZVJlZihvcGVuKTtcbiAgY29uc3QgZm9yY2VTeW5jRm9jdXMgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBmb3JjZVNjcm9sbEludG9WaWV3UmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgZGlzYWJsZWRJbmRpY2VzUmVmID0gdXNlTGF0ZXN0UmVmKGRpc2FibGVkSW5kaWNlcyk7XG4gIGNvbnN0IGxhdGVzdE9wZW5SZWYgPSB1c2VMYXRlc3RSZWYob3Blbik7XG4gIGNvbnN0IHNjcm9sbEl0ZW1JbnRvVmlld1JlZiA9IHVzZUxhdGVzdFJlZihzY3JvbGxJdGVtSW50b1ZpZXcpO1xuICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZUxhdGVzdFJlZihlbGVtZW50cy5mbG9hdGluZyk7XG4gIGNvbnN0IHNlbGVjdGVkSW5kZXhSZWYgPSB1c2VMYXRlc3RSZWYoc2VsZWN0ZWRJbmRleCk7XG4gIGNvbnN0IFthY3RpdmVJZCwgc2V0QWN0aXZlSWRdID0gUmVhY3QudXNlU3RhdGUoKTtcbiAgY29uc3QgW3ZpcnR1YWxJZCwgc2V0VmlydHVhbElkXSA9IFJlYWN0LnVzZVN0YXRlKCk7XG4gIGNvbnN0IGZvY3VzSXRlbSA9IHVzZUVmZmVjdEV2ZW50KGZ1bmN0aW9uIChsaXN0UmVmLCBpbmRleFJlZiwgZm9yY2VTY3JvbGxJbnRvVmlldykge1xuICAgIGlmIChmb3JjZVNjcm9sbEludG9WaWV3ID09PSB2b2lkIDApIHtcbiAgICAgIGZvcmNlU2Nyb2xsSW50b1ZpZXcgPSBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcnVuRm9jdXMoaXRlbSkge1xuICAgICAgaWYgKHZpcnR1YWwpIHtcbiAgICAgICAgc2V0QWN0aXZlSWQoaXRlbS5pZCk7XG4gICAgICAgIHRyZWUgPT0gbnVsbCB8fCB0cmVlLmV2ZW50cy5lbWl0KCd2aXJ0dWFsZm9jdXMnLCBpdGVtKTtcbiAgICAgICAgaWYgKHZpcnR1YWxJdGVtUmVmKSB7XG4gICAgICAgICAgdmlydHVhbEl0ZW1SZWYuY3VycmVudCA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVucXVldWVGb2N1cyhpdGVtLCB7XG4gICAgICAgICAgcHJldmVudFNjcm9sbDogdHJ1ZSxcbiAgICAgICAgICAvLyBNYWMgU2FmYXJpIGRvZXMgbm90IG1vdmUgdGhlIHZpcnR1YWwgY3Vyc29yIHVubGVzcyB0aGUgZm9jdXMgY2FsbFxuICAgICAgICAgIC8vIGlzIHN5bmMuIEhvd2V2ZXIsIGZvciB0aGUgdmVyeSBmaXJzdCBmb2N1cyBjYWxsLCB3ZSBuZWVkIHRvIHdhaXRcbiAgICAgICAgICAvLyBmb3IgdGhlIHBvc2l0aW9uIHRvIGJlIHJlYWR5IGluIG9yZGVyIHRvIHByZXZlbnQgdW53YW50ZWRcbiAgICAgICAgICAvLyBzY3JvbGxpbmcuIFRoaXMgbWVhbnMgdGhlIHZpcnR1YWwgY3Vyc29yIHdpbGwgbm90IG1vdmUgdG8gdGhlIGZpcnN0XG4gICAgICAgICAgLy8gaXRlbSB3aGVuIGZpcnN0IG9wZW5pbmcgdGhlIGZsb2F0aW5nIGVsZW1lbnQsIGJ1dCB3aWxsIG9uXG4gICAgICAgICAgLy8gc3Vic2VxdWVudCBjYWxscy4gYHByZXZlbnRTY3JvbGxgIGlzIHN1cHBvcnRlZCBpbiBtb2Rlcm4gU2FmYXJpLFxuICAgICAgICAgIC8vIHNvIHdlIGNhbiB1c2UgdGhhdCBpbnN0ZWFkLlxuICAgICAgICAgIC8vIGlPUyBTYWZhcmkgbXVzdCBiZSBhc3luYyBvciB0aGUgZmlyc3QgaXRlbSB3aWxsIG5vdCBiZSBmb2N1c2VkLlxuICAgICAgICAgIHN5bmM6IGlzTWFjKCkgJiYgaXNTYWZhcmkoKSA/IGlzUHJldmVudFNjcm9sbFN1cHBvcnRlZCB8fCBmb3JjZVN5bmNGb2N1cy5jdXJyZW50IDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxJdGVtID0gbGlzdFJlZi5jdXJyZW50W2luZGV4UmVmLmN1cnJlbnRdO1xuICAgIGlmIChpbml0aWFsSXRlbSkge1xuICAgICAgcnVuRm9jdXMoaW5pdGlhbEl0ZW0pO1xuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3Qgd2FpdGVkSXRlbSA9IGxpc3RSZWYuY3VycmVudFtpbmRleFJlZi5jdXJyZW50XSB8fCBpbml0aWFsSXRlbTtcbiAgICAgIGlmICghd2FpdGVkSXRlbSkgcmV0dXJuO1xuICAgICAgaWYgKCFpbml0aWFsSXRlbSkge1xuICAgICAgICBydW5Gb2N1cyh3YWl0ZWRJdGVtKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcm9sbEludG9WaWV3T3B0aW9ucyA9IHNjcm9sbEl0ZW1JbnRvVmlld1JlZi5jdXJyZW50O1xuICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsSW50b1ZpZXcgPSBzY3JvbGxJbnRvVmlld09wdGlvbnMgJiYgaXRlbSAmJiAoZm9yY2VTY3JvbGxJbnRvVmlldyB8fCAhaXNQb2ludGVyTW9kYWxpdHlSZWYuY3VycmVudCk7XG4gICAgICBpZiAoc2hvdWxkU2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgICAgLy8gSlNET00gZG9lc24ndCBzdXBwb3J0IGAuc2Nyb2xsSW50b1ZpZXcoKWAgYnV0IGl0J3Mgd2lkZWx5IHN1cHBvcnRlZFxuICAgICAgICAvLyBieSBhbGwgYnJvd3NlcnMuXG4gICAgICAgIHdhaXRlZEl0ZW0uc2Nyb2xsSW50b1ZpZXcgPT0gbnVsbCB8fCB3YWl0ZWRJdGVtLnNjcm9sbEludG9WaWV3KHR5cGVvZiBzY3JvbGxJbnRvVmlld09wdGlvbnMgPT09ICdib29sZWFuJyA/IHtcbiAgICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICAgIGlubGluZTogJ25lYXJlc3QnXG4gICAgICAgIH0gOiBzY3JvbGxJbnRvVmlld09wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLmZvY3VzKHtcbiAgICAgIGdldCBwcmV2ZW50U2Nyb2xsKCkge1xuICAgICAgICBpc1ByZXZlbnRTY3JvbGxTdXBwb3J0ZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBTeW5jIGBzZWxlY3RlZEluZGV4YCB0byBiZSB0aGUgYGFjdGl2ZUluZGV4YCB1cG9uIG9wZW5pbmcgdGhlIGZsb2F0aW5nXG4gIC8vIGVsZW1lbnQuIEFsc28sIHJlc2V0IGBhY3RpdmVJbmRleGAgdXBvbiBjbG9zaW5nIHRoZSBmbG9hdGluZyBlbGVtZW50LlxuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgaWYgKG9wZW4gJiYgZWxlbWVudHMuZmxvYXRpbmcpIHtcbiAgICAgIGlmIChmb2N1c0l0ZW1Pbk9wZW5SZWYuY3VycmVudCAmJiBzZWxlY3RlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgLy8gUmVnYXJkbGVzcyBvZiB0aGUgcG9pbnRlciBtb2RhbGl0eSwgd2Ugd2FudCB0byBlbnN1cmUgdGhlIHNlbGVjdGVkXG4gICAgICAgIC8vIGl0ZW0gY29tZXMgaW50byB2aWV3IHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgb3BlbmVkLlxuICAgICAgICBmb3JjZVNjcm9sbEludG9WaWV3UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgb25OYXZpZ2F0ZShzZWxlY3RlZEluZGV4KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByZXZpb3VzTW91bnRlZFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBTaW5jZSB0aGUgdXNlciBjYW4gc3BlY2lmeSBgb25OYXZpZ2F0ZWAgY29uZGl0aW9uYWxseVxuICAgICAgLy8gKG9uTmF2aWdhdGU6IG9wZW4gPyBzZXRBY3RpdmVJbmRleCA6IHNldFNlbGVjdGVkSW5kZXgpLFxuICAgICAgLy8gd2Ugc3RvcmUgYW5kIGNhbGwgdGhlIHByZXZpb3VzIGZ1bmN0aW9uLlxuICAgICAgaW5kZXhSZWYuY3VycmVudCA9IC0xO1xuICAgICAgcHJldmlvdXNPbk5hdmlnYXRlUmVmLmN1cnJlbnQobnVsbCk7XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgb3BlbiwgZWxlbWVudHMuZmxvYXRpbmcsIHNlbGVjdGVkSW5kZXgsIG9uTmF2aWdhdGVdKTtcblxuICAvLyBTeW5jIGBhY3RpdmVJbmRleGAgdG8gYmUgdGhlIGZvY3VzZWQgaXRlbSB3aGlsZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpc1xuICAvLyBvcGVuLlxuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgaWYgKG9wZW4gJiYgZWxlbWVudHMuZmxvYXRpbmcpIHtcbiAgICAgIGlmIChhY3RpdmVJbmRleCA9PSBudWxsKSB7XG4gICAgICAgIGZvcmNlU3luY0ZvY3VzLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXhSZWYuY3VycmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzZXQgd2hpbGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgd2FzIG9wZW4gKGUuZy4gdGhlIGxpc3QgY2hhbmdlZCkuXG4gICAgICAgIGlmIChwcmV2aW91c01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSAtMTtcbiAgICAgICAgICBmb2N1c0l0ZW0obGlzdFJlZiwgaW5kZXhSZWYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5pdGlhbCBzeW5jLlxuICAgICAgICBpZiAoKCFwcmV2aW91c09wZW5SZWYuY3VycmVudCB8fCAhcHJldmlvdXNNb3VudGVkUmVmLmN1cnJlbnQpICYmIGZvY3VzSXRlbU9uT3BlblJlZi5jdXJyZW50ICYmIChrZXlSZWYuY3VycmVudCAhPSBudWxsIHx8IGZvY3VzSXRlbU9uT3BlblJlZi5jdXJyZW50ID09PSB0cnVlICYmIGtleVJlZi5jdXJyZW50ID09IG51bGwpKSB7XG4gICAgICAgICAgbGV0IHJ1bnMgPSAwO1xuICAgICAgICAgIGNvbnN0IHdhaXRGb3JMaXN0UG9wdWxhdGVkID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGxpc3RSZWYuY3VycmVudFswXSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIEF2b2lkIGxldHRpbmcgdGhlIGJyb3dzZXIgcGFpbnQgaWYgcG9zc2libGUgb24gdGhlIGZpcnN0IHRyeSxcbiAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHVzZSByQUYuIERvbid0IHRyeSBtb3JlIHRoYW4gdHdpY2UsIHNpbmNlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAvLyBpcyB3cm9uZyBvdGhlcndpc2UuXG4gICAgICAgICAgICAgIGlmIChydW5zIDwgMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVkdWxlciA9IHJ1bnMgPyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiBxdWV1ZU1pY3JvdGFzaztcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXIod2FpdEZvckxpc3RQb3B1bGF0ZWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJ1bnMrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBrZXlSZWYuY3VycmVudCA9PSBudWxsIHx8IGlzTWFpbk9yaWVudGF0aW9uVG9FbmRLZXkoa2V5UmVmLmN1cnJlbnQsIG9yaWVudGF0aW9uLCBydGwpIHx8IG5lc3RlZCA/IGdldE1pbkluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlc1JlZi5jdXJyZW50KSA6IGdldE1heEluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAga2V5UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICBvbk5hdmlnYXRlKGluZGV4UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgd2FpdEZvckxpc3RQb3B1bGF0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghaXNJbmRleE91dE9mQm91bmRzKGxpc3RSZWYsIGFjdGl2ZUluZGV4KSkge1xuICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gYWN0aXZlSW5kZXg7XG4gICAgICAgIGZvY3VzSXRlbShsaXN0UmVmLCBpbmRleFJlZiwgZm9yY2VTY3JvbGxJbnRvVmlld1JlZi5jdXJyZW50KTtcbiAgICAgICAgZm9yY2VTY3JvbGxJbnRvVmlld1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgb3BlbiwgZWxlbWVudHMuZmxvYXRpbmcsIGFjdGl2ZUluZGV4LCBzZWxlY3RlZEluZGV4UmVmLCBuZXN0ZWQsIGxpc3RSZWYsIG9yaWVudGF0aW9uLCBydGwsIG9uTmF2aWdhdGUsIGZvY3VzSXRlbSwgZGlzYWJsZWRJbmRpY2VzUmVmXSk7XG5cbiAgLy8gRW5zdXJlIHRoZSBwYXJlbnQgZmxvYXRpbmcgZWxlbWVudCBoYXMgZm9jdXMgd2hlbiBhIG5lc3RlZCBjaGlsZCBjbG9zZXNcbiAgLy8gdG8gYWxsb3cgYXJyb3cga2V5IG5hdmlnYXRpb24gdG8gd29yayBhZnRlciB0aGUgcG9pbnRlciBsZWF2ZXMgdGhlIGNoaWxkLlxuICBpbmRleCgoKSA9PiB7XG4gICAgdmFyIF9ub2RlcyRmaW5kO1xuICAgIGlmICghZW5hYmxlZCB8fCBlbGVtZW50cy5mbG9hdGluZyB8fCAhdHJlZSB8fCB2aXJ0dWFsIHx8ICFwcmV2aW91c01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub2RlcyA9IHRyZWUubm9kZXNSZWYuY3VycmVudDtcbiAgICBjb25zdCBwYXJlbnQgPSAoX25vZGVzJGZpbmQgPSBub2Rlcy5maW5kKG5vZGUgPT4gbm9kZS5pZCA9PT0gcGFyZW50SWQpKSA9PSBudWxsIHx8IChfbm9kZXMkZmluZCA9IF9ub2RlcyRmaW5kLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfbm9kZXMkZmluZC5lbGVtZW50cy5mbG9hdGluZztcbiAgICBjb25zdCBhY3RpdmVFbCA9IGFjdGl2ZUVsZW1lbnQoZ2V0RG9jdW1lbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgICBjb25zdCB0cmVlQ29udGFpbnNBY3RpdmVFbCA9IG5vZGVzLnNvbWUobm9kZSA9PiBub2RlLmNvbnRleHQgJiYgY29udGFpbnMobm9kZS5jb250ZXh0LmVsZW1lbnRzLmZsb2F0aW5nLCBhY3RpdmVFbCkpO1xuICAgIGlmIChwYXJlbnQgJiYgIXRyZWVDb250YWluc0FjdGl2ZUVsICYmIGlzUG9pbnRlck1vZGFsaXR5UmVmLmN1cnJlbnQpIHtcbiAgICAgIHBhcmVudC5mb2N1cyh7XG4gICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2VuYWJsZWQsIGVsZW1lbnRzLmZsb2F0aW5nLCB0cmVlLCBwYXJlbnRJZCwgdmlydHVhbF0pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm47XG4gICAgaWYgKCF0cmVlKSByZXR1cm47XG4gICAgaWYgKCF2aXJ0dWFsKSByZXR1cm47XG4gICAgaWYgKHBhcmVudElkKSByZXR1cm47XG4gICAgZnVuY3Rpb24gaGFuZGxlVmlydHVhbEZvY3VzKGl0ZW0pIHtcbiAgICAgIHNldFZpcnR1YWxJZChpdGVtLmlkKTtcbiAgICAgIGlmICh2aXJ0dWFsSXRlbVJlZikge1xuICAgICAgICB2aXJ0dWFsSXRlbVJlZi5jdXJyZW50ID0gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgdHJlZS5ldmVudHMub24oJ3ZpcnR1YWxmb2N1cycsIGhhbmRsZVZpcnR1YWxGb2N1cyk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRyZWUuZXZlbnRzLm9mZigndmlydHVhbGZvY3VzJywgaGFuZGxlVmlydHVhbEZvY3VzKTtcbiAgICB9O1xuICB9LCBbZW5hYmxlZCwgdHJlZSwgdmlydHVhbCwgcGFyZW50SWQsIHZpcnR1YWxJdGVtUmVmXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBwcmV2aW91c09uTmF2aWdhdGVSZWYuY3VycmVudCA9IG9uTmF2aWdhdGU7XG4gICAgcHJldmlvdXNNb3VudGVkUmVmLmN1cnJlbnQgPSAhIWVsZW1lbnRzLmZsb2F0aW5nO1xuICB9KTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmICghb3Blbikge1xuICAgICAga2V5UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIHByZXZpb3VzT3BlblJlZi5jdXJyZW50ID0gb3BlbjtcbiAgfSwgW29wZW5dKTtcbiAgY29uc3QgaGFzQWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleCAhPSBudWxsO1xuICBjb25zdCBpdGVtID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgZnVuY3Rpb24gc3luY0N1cnJlbnRUYXJnZXQoY3VycmVudFRhcmdldCkge1xuICAgICAgaWYgKCFvcGVuKSByZXR1cm47XG4gICAgICBjb25zdCBpbmRleCA9IGxpc3RSZWYuY3VycmVudC5pbmRleE9mKGN1cnJlbnRUYXJnZXQpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBvbk5hdmlnYXRlKGluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICBvbkZvY3VzKF9yZWYpIHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBjdXJyZW50VGFyZ2V0XG4gICAgICAgIH0gPSBfcmVmO1xuICAgICAgICBzeW5jQ3VycmVudFRhcmdldChjdXJyZW50VGFyZ2V0KTtcbiAgICAgIH0sXG4gICAgICBvbkNsaWNrOiBfcmVmMiA9PiB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgY3VycmVudFRhcmdldFxuICAgICAgICB9ID0gX3JlZjI7XG4gICAgICAgIHJldHVybiBjdXJyZW50VGFyZ2V0LmZvY3VzKHtcbiAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIC8vIFNhZmFyaVxuICAgICAgLi4uKGZvY3VzSXRlbU9uSG92ZXIgJiYge1xuICAgICAgICBvbk1vdXNlTW92ZShfcmVmMykge1xuICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICBjdXJyZW50VGFyZ2V0XG4gICAgICAgICAgfSA9IF9yZWYzO1xuICAgICAgICAgIHN5bmNDdXJyZW50VGFyZ2V0KGN1cnJlbnRUYXJnZXQpO1xuICAgICAgICB9LFxuICAgICAgICBvblBvaW50ZXJMZWF2ZShfcmVmNCkge1xuICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICBwb2ludGVyVHlwZVxuICAgICAgICAgIH0gPSBfcmVmNDtcbiAgICAgICAgICBpZiAoIWlzUG9pbnRlck1vZGFsaXR5UmVmLmN1cnJlbnQgfHwgcG9pbnRlclR5cGUgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IC0xO1xuICAgICAgICAgIGZvY3VzSXRlbShsaXN0UmVmLCBpbmRleFJlZik7XG4gICAgICAgICAgb25OYXZpZ2F0ZShudWxsKTtcbiAgICAgICAgICBpZiAoIXZpcnR1YWwpIHtcbiAgICAgICAgICAgIGVucXVldWVGb2N1cyhmbG9hdGluZ1JlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiBwcm9wcztcbiAgfSwgW29wZW4sIGZsb2F0aW5nUmVmLCBmb2N1c0l0ZW0sIGZvY3VzSXRlbU9uSG92ZXIsIGxpc3RSZWYsIG9uTmF2aWdhdGUsIHZpcnR1YWxdKTtcbiAgY29uc3QgY29tbW9uT25LZXlEb3duID0gdXNlRWZmZWN0RXZlbnQoZXZlbnQgPT4ge1xuICAgIGlzUG9pbnRlck1vZGFsaXR5UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICBmb3JjZVN5bmNGb2N1cy5jdXJyZW50ID0gdHJ1ZTtcblxuICAgIC8vIElmIHRoZSBmbG9hdGluZyBlbGVtZW50IGlzIGFuaW1hdGluZyBvdXQsIGlnbm9yZSBuYXZpZ2F0aW9uLiBPdGhlcndpc2UsXG4gICAgLy8gdGhlIGBhY3RpdmVJbmRleGAgZ2V0cyBzZXQgdG8gMCBkZXNwaXRlIG5vdCBiZWluZyBvcGVuIHNvIHRoZSBuZXh0IHRpbWVcbiAgICAvLyB0aGUgdXNlciBBcnJvd0Rvd25zLCB0aGUgZmlyc3QgaXRlbSB3b24ndCBiZSBmb2N1c2VkLlxuICAgIGlmICghbGF0ZXN0T3BlblJlZi5jdXJyZW50ICYmIGV2ZW50LmN1cnJlbnRUYXJnZXQgPT09IGZsb2F0aW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5lc3RlZCAmJiBpc0Nyb3NzT3JpZW50YXRpb25DbG9zZUtleShldmVudC5rZXksIG9yaWVudGF0aW9uLCBydGwpKSB7XG4gICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgb25PcGVuQ2hhbmdlKGZhbHNlLCBldmVudC5uYXRpdmVFdmVudCwgJ2xpc3QtbmF2aWdhdGlvbicpO1xuICAgICAgaWYgKGlzSFRNTEVsZW1lbnQoZWxlbWVudHMuZG9tUmVmZXJlbmNlKSAmJiAhdmlydHVhbCkge1xuICAgICAgICBlbGVtZW50cy5kb21SZWZlcmVuY2UuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gaW5kZXhSZWYuY3VycmVudDtcbiAgICBjb25zdCBtaW5JbmRleCA9IGdldE1pbkluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlcyk7XG4gICAgY29uc3QgbWF4SW5kZXggPSBnZXRNYXhJbmRleChsaXN0UmVmLCBkaXNhYmxlZEluZGljZXMpO1xuICAgIGlmIChldmVudC5rZXkgPT09ICdIb21lJykge1xuICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBtaW5JbmRleDtcbiAgICAgIG9uTmF2aWdhdGUoaW5kZXhSZWYuY3VycmVudCk7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XG4gICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgaW5kZXhSZWYuY3VycmVudCA9IG1heEluZGV4O1xuICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICAvLyBHcmlkIG5hdmlnYXRpb24uXG4gICAgaWYgKGNvbHMgPiAxKSB7XG4gICAgICBjb25zdCBzaXplcyA9IGl0ZW1TaXplcyB8fCBBcnJheS5mcm9tKHtcbiAgICAgICAgbGVuZ3RoOiBsaXN0UmVmLmN1cnJlbnQubGVuZ3RoXG4gICAgICB9LCAoKSA9PiAoe1xuICAgICAgICB3aWR0aDogMSxcbiAgICAgICAgaGVpZ2h0OiAxXG4gICAgICB9KSk7XG4gICAgICAvLyBUbyBjYWxjdWxhdGUgbW92ZW1lbnRzIG9uIHRoZSBncmlkLCB3ZSB1c2UgaHlwb3RoZXRpY2FsIGNlbGwgaW5kaWNlc1xuICAgICAgLy8gYXMgaWYgZXZlcnkgaXRlbSB3YXMgMXgxLCB0aGVuIGNvbnZlcnQgYmFjayB0byByZWFsIGluZGljZXMuXG4gICAgICBjb25zdCBjZWxsTWFwID0gYnVpbGRDZWxsTWFwKHNpemVzLCBjb2xzLCBkZW5zZSk7XG4gICAgICBjb25zdCBtaW5HcmlkSW5kZXggPSBjZWxsTWFwLmZpbmRJbmRleChpbmRleCA9PiBpbmRleCAhPSBudWxsICYmICFpc0Rpc2FibGVkKGxpc3RSZWYuY3VycmVudCwgaW5kZXgsIGRpc2FibGVkSW5kaWNlcykpO1xuICAgICAgLy8gbGFzdCBlbmFibGVkIGluZGV4XG4gICAgICBjb25zdCBtYXhHcmlkSW5kZXggPSBjZWxsTWFwLnJlZHVjZSgoZm91bmRJbmRleCwgaW5kZXgsIGNlbGxJbmRleCkgPT4gaW5kZXggIT0gbnVsbCAmJiAhaXNEaXNhYmxlZChsaXN0UmVmLmN1cnJlbnQsIGluZGV4LCBkaXNhYmxlZEluZGljZXMpID8gY2VsbEluZGV4IDogZm91bmRJbmRleCwgLTEpO1xuICAgICAgaW5kZXhSZWYuY3VycmVudCA9IGNlbGxNYXBbZ2V0R3JpZE5hdmlnYXRlZEluZGV4KHtcbiAgICAgICAgY3VycmVudDogY2VsbE1hcC5tYXAoaXRlbUluZGV4ID0+IGl0ZW1JbmRleCAhPSBudWxsID8gbGlzdFJlZi5jdXJyZW50W2l0ZW1JbmRleF0gOiBudWxsKVxuICAgICAgfSwge1xuICAgICAgICBldmVudCxcbiAgICAgICAgb3JpZW50YXRpb24sXG4gICAgICAgIGxvb3AsXG4gICAgICAgIGNvbHMsXG4gICAgICAgIC8vIHRyZWF0IHVuZGVmaW5lZCAoZW1wdHkgZ3JpZCBzcGFjZXMpIGFzIGRpc2FibGVkIGluZGljZXMgc28gd2VcbiAgICAgICAgLy8gZG9uJ3QgZW5kIHVwIGluIHRoZW1cbiAgICAgICAgZGlzYWJsZWRJbmRpY2VzOiBnZXRDZWxsSW5kaWNlcyhbLi4uKGRpc2FibGVkSW5kaWNlcyB8fCBsaXN0UmVmLmN1cnJlbnQubWFwKChfLCBpbmRleCkgPT4gaXNEaXNhYmxlZChsaXN0UmVmLmN1cnJlbnQsIGluZGV4KSA/IGluZGV4IDogdW5kZWZpbmVkKSksIHVuZGVmaW5lZF0sIGNlbGxNYXApLFxuICAgICAgICBtaW5JbmRleDogbWluR3JpZEluZGV4LFxuICAgICAgICBtYXhJbmRleDogbWF4R3JpZEluZGV4LFxuICAgICAgICBwcmV2SW5kZXg6IGdldENlbGxJbmRleE9mQ29ybmVyKGluZGV4UmVmLmN1cnJlbnQgPiBtYXhJbmRleCA/IG1pbkluZGV4IDogaW5kZXhSZWYuY3VycmVudCwgc2l6ZXMsIGNlbGxNYXAsIGNvbHMsXG4gICAgICAgIC8vIHVzZSBhIGNvcm5lciBtYXRjaGluZyB0aGUgZWRnZSBjbG9zZXN0IHRvIHRoZSBkaXJlY3Rpb25cbiAgICAgICAgLy8gd2UncmUgbW92aW5nIGluIHNvIHdlIGRvbid0IGVuZCB1cCBpbiB0aGUgc2FtZSBpdGVtLiBQcmVmZXJcbiAgICAgICAgLy8gdG9wL2xlZnQgb3ZlciBib3R0b20vcmlnaHQuXG4gICAgICAgIGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTiA/ICdibCcgOiBldmVudC5rZXkgPT09IEFSUk9XX1JJR0hUID8gJ3RyJyA6ICd0bCcpLFxuICAgICAgICBzdG9wRXZlbnQ6IHRydWVcbiAgICAgIH0pXTsgLy8gbmF2aWdhdGVkIGNlbGwgd2lsbCBuZXZlciBiZSBudWxsaXNoXG5cbiAgICAgIG9uTmF2aWdhdGUoaW5kZXhSZWYuY3VycmVudCk7XG4gICAgICBpZiAob3JpZW50YXRpb24gPT09ICdib3RoJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc01haW5PcmllbnRhdGlvbktleShldmVudC5rZXksIG9yaWVudGF0aW9uKSkge1xuICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcblxuICAgICAgLy8gUmVzZXQgdGhlIGluZGV4IGlmIG5vIGl0ZW0gaXMgZm9jdXNlZC5cbiAgICAgIGlmIChvcGVuICYmICF2aXJ0dWFsICYmIGFjdGl2ZUVsZW1lbnQoZXZlbnQuY3VycmVudFRhcmdldC5vd25lckRvY3VtZW50KSA9PT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gaXNNYWluT3JpZW50YXRpb25Ub0VuZEtleShldmVudC5rZXksIG9yaWVudGF0aW9uLCBydGwpID8gbWluSW5kZXggOiBtYXhJbmRleDtcbiAgICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGlzTWFpbk9yaWVudGF0aW9uVG9FbmRLZXkoZXZlbnQua2V5LCBvcmllbnRhdGlvbiwgcnRsKSkge1xuICAgICAgICBpZiAobG9vcCkge1xuICAgICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBjdXJyZW50SW5kZXggPj0gbWF4SW5kZXggPyBhbGxvd0VzY2FwZSAmJiBjdXJyZW50SW5kZXggIT09IGxpc3RSZWYuY3VycmVudC5sZW5ndGggPyAtMSA6IG1pbkluZGV4IDogZmluZE5vbkRpc2FibGVkSW5kZXgobGlzdFJlZiwge1xuICAgICAgICAgICAgc3RhcnRpbmdJbmRleDogY3VycmVudEluZGV4LFxuICAgICAgICAgICAgZGlzYWJsZWRJbmRpY2VzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IE1hdGgubWluKG1heEluZGV4LCBmaW5kTm9uRGlzYWJsZWRJbmRleChsaXN0UmVmLCB7XG4gICAgICAgICAgICBzdGFydGluZ0luZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChsb29wKSB7XG4gICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IGN1cnJlbnRJbmRleCA8PSBtaW5JbmRleCA/IGFsbG93RXNjYXBlICYmIGN1cnJlbnRJbmRleCAhPT0gLTEgPyBsaXN0UmVmLmN1cnJlbnQubGVuZ3RoIDogbWF4SW5kZXggOiBmaW5kTm9uRGlzYWJsZWRJbmRleChsaXN0UmVmLCB7XG4gICAgICAgICAgICBzdGFydGluZ0luZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICBkZWNyZW1lbnQ6IHRydWUsXG4gICAgICAgICAgICBkaXNhYmxlZEluZGljZXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmRleFJlZi5jdXJyZW50ID0gTWF0aC5tYXgobWluSW5kZXgsIGZpbmROb25EaXNhYmxlZEluZGV4KGxpc3RSZWYsIHtcbiAgICAgICAgICAgIHN0YXJ0aW5nSW5kZXg6IGN1cnJlbnRJbmRleCxcbiAgICAgICAgICAgIGRlY3JlbWVudDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVkSW5kaWNlc1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzSW5kZXhPdXRPZkJvdW5kcyhsaXN0UmVmLCBpbmRleFJlZi5jdXJyZW50KSkge1xuICAgICAgICBvbk5hdmlnYXRlKG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBjb25zdCBhcmlhQWN0aXZlRGVzY2VuZGFudFByb3AgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gdmlydHVhbCAmJiBvcGVuICYmIGhhc0FjdGl2ZUluZGV4ICYmIHtcbiAgICAgICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnOiB2aXJ0dWFsSWQgfHwgYWN0aXZlSWRcbiAgICB9O1xuICB9LCBbdmlydHVhbCwgb3BlbiwgaGFzQWN0aXZlSW5kZXgsIHZpcnR1YWxJZCwgYWN0aXZlSWRdKTtcbiAgY29uc3QgZmxvYXRpbmcgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2FyaWEtb3JpZW50YXRpb24nOiBvcmllbnRhdGlvbiA9PT0gJ2JvdGgnID8gdW5kZWZpbmVkIDogb3JpZW50YXRpb24sXG4gICAgICAuLi4oIWlzVHlwZWFibGVDb21ib2JveChlbGVtZW50cy5kb21SZWZlcmVuY2UpICYmIGFyaWFBY3RpdmVEZXNjZW5kYW50UHJvcCksXG4gICAgICBvbktleURvd246IGNvbW1vbk9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlck1vdmUoKSB7XG4gICAgICAgIGlzUG9pbnRlck1vZGFsaXR5UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFthcmlhQWN0aXZlRGVzY2VuZGFudFByb3AsIGNvbW1vbk9uS2V5RG93biwgZWxlbWVudHMuZG9tUmVmZXJlbmNlLCBvcmllbnRhdGlvbl0pO1xuICBjb25zdCByZWZlcmVuY2UgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBmdW5jdGlvbiBjaGVja1ZpcnR1YWxNb3VzZShldmVudCkge1xuICAgICAgaWYgKGZvY3VzSXRlbU9uT3BlbiA9PT0gJ2F1dG8nICYmIGlzVmlydHVhbENsaWNrKGV2ZW50Lm5hdGl2ZUV2ZW50KSkge1xuICAgICAgICBmb2N1c0l0ZW1Pbk9wZW5SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrVmlydHVhbFBvaW50ZXIoZXZlbnQpIHtcbiAgICAgIC8vIGBwb2ludGVyZG93bmAgZmlyZXMgZmlyc3QsIHJlc2V0IHRoZSBzdGF0ZSB0aGVuIHBlcmZvcm0gdGhlIGNoZWNrcy5cbiAgICAgIGZvY3VzSXRlbU9uT3BlblJlZi5jdXJyZW50ID0gZm9jdXNJdGVtT25PcGVuO1xuICAgICAgaWYgKGZvY3VzSXRlbU9uT3BlbiA9PT0gJ2F1dG8nICYmIGlzVmlydHVhbFBvaW50ZXJFdmVudChldmVudC5uYXRpdmVFdmVudCkpIHtcbiAgICAgICAgZm9jdXNJdGVtT25PcGVuUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYXJpYUFjdGl2ZURlc2NlbmRhbnRQcm9wLFxuICAgICAgb25LZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIGlzUG9pbnRlck1vZGFsaXR5UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaXNBcnJvd0tleSA9IGV2ZW50LmtleS5pbmRleE9mKCdBcnJvdycpID09PSAwO1xuICAgICAgICBjb25zdCBpc0Nyb3NzT3BlbktleSA9IGlzQ3Jvc3NPcmllbnRhdGlvbk9wZW5LZXkoZXZlbnQua2V5LCBvcmllbnRhdGlvbiwgcnRsKTtcbiAgICAgICAgY29uc3QgaXNDcm9zc0Nsb3NlS2V5ID0gaXNDcm9zc09yaWVudGF0aW9uQ2xvc2VLZXkoZXZlbnQua2V5LCBvcmllbnRhdGlvbiwgcnRsKTtcbiAgICAgICAgY29uc3QgaXNNYWluS2V5ID0gaXNNYWluT3JpZW50YXRpb25LZXkoZXZlbnQua2V5LCBvcmllbnRhdGlvbik7XG4gICAgICAgIGNvbnN0IGlzTmF2aWdhdGlvbktleSA9IChuZXN0ZWQgPyBpc0Nyb3NzT3BlbktleSA6IGlzTWFpbktleSkgfHwgZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleS50cmltKCkgPT09ICcnO1xuICAgICAgICBpZiAodmlydHVhbCAmJiBvcGVuKSB7XG4gICAgICAgICAgY29uc3Qgcm9vdE5vZGUgPSB0cmVlID09IG51bGwgPyB2b2lkIDAgOiB0cmVlLm5vZGVzUmVmLmN1cnJlbnQuZmluZChub2RlID0+IG5vZGUucGFyZW50SWQgPT0gbnVsbCk7XG4gICAgICAgICAgY29uc3QgZGVlcGVzdE5vZGUgPSB0cmVlICYmIHJvb3ROb2RlID8gZ2V0RGVlcGVzdE5vZGUodHJlZS5ub2Rlc1JlZi5jdXJyZW50LCByb290Tm9kZS5pZCkgOiBudWxsO1xuICAgICAgICAgIGlmIChpc0Fycm93S2V5ICYmIGRlZXBlc3ROb2RlICYmIHZpcnR1YWxJdGVtUmVmKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudE9iamVjdCA9IG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywge1xuICAgICAgICAgICAgICBrZXk6IGV2ZW50LmtleSxcbiAgICAgICAgICAgICAgYnViYmxlczogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXNDcm9zc09wZW5LZXkgfHwgaXNDcm9zc0Nsb3NlS2V5KSB7XG4gICAgICAgICAgICAgIHZhciBfZGVlcGVzdE5vZGUkY29udGV4dCwgX2RlZXBlc3ROb2RlJGNvbnRleHQyO1xuICAgICAgICAgICAgICBjb25zdCBpc0N1cnJlbnRUYXJnZXQgPSAoKF9kZWVwZXN0Tm9kZSRjb250ZXh0ID0gZGVlcGVzdE5vZGUuY29udGV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9kZWVwZXN0Tm9kZSRjb250ZXh0LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSkgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICAgIGNvbnN0IGRpc3BhdGNoSXRlbSA9IGlzQ3Jvc3NDbG9zZUtleSAmJiAhaXNDdXJyZW50VGFyZ2V0ID8gKF9kZWVwZXN0Tm9kZSRjb250ZXh0MiA9IGRlZXBlc3ROb2RlLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfZGVlcGVzdE5vZGUkY29udGV4dDIuZWxlbWVudHMuZG9tUmVmZXJlbmNlIDogaXNDcm9zc09wZW5LZXkgPyBsaXN0UmVmLmN1cnJlbnQuZmluZChpdGVtID0+IChpdGVtID09IG51bGwgPyB2b2lkIDAgOiBpdGVtLmlkKSA9PT0gYWN0aXZlSWQpIDogbnVsbDtcbiAgICAgICAgICAgICAgaWYgKGRpc3BhdGNoSXRlbSkge1xuICAgICAgICAgICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hJdGVtLmRpc3BhdGNoRXZlbnQoZXZlbnRPYmplY3QpO1xuICAgICAgICAgICAgICAgIHNldFZpcnR1YWxJZCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNNYWluS2V5ICYmIGRlZXBlc3ROb2RlLmNvbnRleHQpIHtcbiAgICAgICAgICAgICAgaWYgKGRlZXBlc3ROb2RlLmNvbnRleHQub3BlbiAmJiBkZWVwZXN0Tm9kZS5wYXJlbnRJZCAmJiBldmVudC5jdXJyZW50VGFyZ2V0ICE9PSBkZWVwZXN0Tm9kZS5jb250ZXh0LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgIHZhciBfZGVlcGVzdE5vZGUkY29udGV4dCQ7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICAoX2RlZXBlc3ROb2RlJGNvbnRleHQkID0gZGVlcGVzdE5vZGUuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2UpID09IG51bGwgfHwgX2RlZXBlc3ROb2RlJGNvbnRleHQkLmRpc3BhdGNoRXZlbnQoZXZlbnRPYmplY3QpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY29tbW9uT25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGEgZmxvYXRpbmcgZWxlbWVudCBzaG91bGQgbm90IG9wZW4gb24gYXJyb3cga2V5IGRvd24sIGF2b2lkXG4gICAgICAgIC8vIHNldHRpbmcgYGFjdGl2ZUluZGV4YCB3aGlsZSBpdCdzIGNsb3NlZC5cbiAgICAgICAgaWYgKCFvcGVuICYmICFvcGVuT25BcnJvd0tleURvd24gJiYgaXNBcnJvd0tleSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOYXZpZ2F0aW9uS2V5KSB7XG4gICAgICAgICAga2V5UmVmLmN1cnJlbnQgPSBuZXN0ZWQgJiYgaXNNYWluS2V5ID8gbnVsbCA6IGV2ZW50LmtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmVzdGVkKSB7XG4gICAgICAgICAgaWYgKGlzQ3Jvc3NPcGVuS2V5KSB7XG4gICAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgICAgaW5kZXhSZWYuY3VycmVudCA9IGdldE1pbkluZGV4KGxpc3RSZWYsIGRpc2FibGVkSW5kaWNlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2xpc3QtbmF2aWdhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTWFpbktleSkge1xuICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGluZGV4UmVmLmN1cnJlbnQgPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGlmICghb3BlbiAmJiBvcGVuT25BcnJvd0tleURvd24pIHtcbiAgICAgICAgICAgIG9uT3BlbkNoYW5nZSh0cnVlLCBldmVudC5uYXRpdmVFdmVudCwgJ2xpc3QtbmF2aWdhdGlvbicpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21tb25PbktleURvd24oZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgb25OYXZpZ2F0ZShpbmRleFJlZi5jdXJyZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvbkZvY3VzKCkge1xuICAgICAgICBpZiAob3BlbiAmJiAhdmlydHVhbCkge1xuICAgICAgICAgIG9uTmF2aWdhdGUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvblBvaW50ZXJEb3duOiBjaGVja1ZpcnR1YWxQb2ludGVyLFxuICAgICAgb25Nb3VzZURvd246IGNoZWNrVmlydHVhbE1vdXNlLFxuICAgICAgb25DbGljazogY2hlY2tWaXJ0dWFsTW91c2VcbiAgICB9O1xuICB9LCBbYWN0aXZlSWQsIGFyaWFBY3RpdmVEZXNjZW5kYW50UHJvcCwgY29tbW9uT25LZXlEb3duLCBkaXNhYmxlZEluZGljZXNSZWYsIGZvY3VzSXRlbU9uT3BlbiwgbGlzdFJlZiwgbmVzdGVkLCBvbk5hdmlnYXRlLCBvbk9wZW5DaGFuZ2UsIG9wZW4sIG9wZW5PbkFycm93S2V5RG93biwgb3JpZW50YXRpb24sIHJ0bCwgc2VsZWN0ZWRJbmRleCwgdHJlZSwgdmlydHVhbCwgdmlydHVhbEl0ZW1SZWZdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gZW5hYmxlZCA/IHtcbiAgICByZWZlcmVuY2UsXG4gICAgZmxvYXRpbmcsXG4gICAgaXRlbVxuICB9IDoge30sIFtlbmFibGVkLCByZWZlcmVuY2UsIGZsb2F0aW5nLCBpdGVtXSk7XG59XG5cbmNvbnN0IGNvbXBvbmVudFJvbGVUb0FyaWFSb2xlTWFwID0gLyojX19QVVJFX18qL25ldyBNYXAoW1snc2VsZWN0JywgJ2xpc3Rib3gnXSwgWydjb21ib2JveCcsICdsaXN0Ym94J10sIFsnbGFiZWwnLCBmYWxzZV1dKTtcblxuLyoqXG4gKiBBZGRzIGJhc2Ugc2NyZWVuIHJlYWRlciBwcm9wcyB0byB0aGUgcmVmZXJlbmNlIGFuZCBmbG9hdGluZyBlbGVtZW50cyBmb3IgYVxuICogZ2l2ZW4gZmxvYXRpbmcgZWxlbWVudCBgcm9sZWAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdXNlUm9sZVxuICovXG5mdW5jdGlvbiB1c2VSb2xlKGNvbnRleHQsIHByb3BzKSB7XG4gIHZhciBfY29tcG9uZW50Um9sZVRvQXJpYVI7XG4gIGlmIChwcm9wcyA9PT0gdm9pZCAwKSB7XG4gICAgcHJvcHMgPSB7fTtcbiAgfVxuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBmbG9hdGluZ0lkXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgcm9sZSA9ICdkaWFsb2cnXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgYXJpYVJvbGUgPSAoX2NvbXBvbmVudFJvbGVUb0FyaWFSID0gY29tcG9uZW50Um9sZVRvQXJpYVJvbGVNYXAuZ2V0KHJvbGUpKSAhPSBudWxsID8gX2NvbXBvbmVudFJvbGVUb0FyaWFSIDogcm9sZTtcbiAgY29uc3QgcmVmZXJlbmNlSWQgPSB1c2VJZCgpO1xuICBjb25zdCBwYXJlbnRJZCA9IHVzZUZsb2F0aW5nUGFyZW50Tm9kZUlkKCk7XG4gIGNvbnN0IGlzTmVzdGVkID0gcGFyZW50SWQgIT0gbnVsbDtcbiAgY29uc3QgcmVmZXJlbmNlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGFyaWFSb2xlID09PSAndG9vbHRpcCcgfHwgcm9sZSA9PT0gJ2xhYmVsJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW1wiYXJpYS1cIiArIChyb2xlID09PSAnbGFiZWwnID8gJ2xhYmVsbGVkYnknIDogJ2Rlc2NyaWJlZGJ5JyldOiBvcGVuID8gZmxvYXRpbmdJZCA6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICdhcmlhLWV4cGFuZGVkJzogb3BlbiA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFSb2xlID09PSAnYWxlcnRkaWFsb2cnID8gJ2RpYWxvZycgOiBhcmlhUm9sZSxcbiAgICAgICdhcmlhLWNvbnRyb2xzJzogb3BlbiA/IGZsb2F0aW5nSWQgOiB1bmRlZmluZWQsXG4gICAgICAuLi4oYXJpYVJvbGUgPT09ICdsaXN0Ym94JyAmJiB7XG4gICAgICAgIHJvbGU6ICdjb21ib2JveCdcbiAgICAgIH0pLFxuICAgICAgLi4uKGFyaWFSb2xlID09PSAnbWVudScgJiYge1xuICAgICAgICBpZDogcmVmZXJlbmNlSWRcbiAgICAgIH0pLFxuICAgICAgLi4uKGFyaWFSb2xlID09PSAnbWVudScgJiYgaXNOZXN0ZWQgJiYge1xuICAgICAgICByb2xlOiAnbWVudWl0ZW0nXG4gICAgICB9KSxcbiAgICAgIC4uLihyb2xlID09PSAnc2VsZWN0JyAmJiB7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdub25lJ1xuICAgICAgfSksXG4gICAgICAuLi4ocm9sZSA9PT0gJ2NvbWJvYm94JyAmJiB7XG4gICAgICAgICdhcmlhLWF1dG9jb21wbGV0ZSc6ICdsaXN0J1xuICAgICAgfSlcbiAgICB9O1xuICB9LCBbYXJpYVJvbGUsIGZsb2F0aW5nSWQsIGlzTmVzdGVkLCBvcGVuLCByZWZlcmVuY2VJZCwgcm9sZV0pO1xuICBjb25zdCBmbG9hdGluZyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGZsb2F0aW5nUHJvcHMgPSB7XG4gICAgICBpZDogZmxvYXRpbmdJZCxcbiAgICAgIC4uLihhcmlhUm9sZSAmJiB7XG4gICAgICAgIHJvbGU6IGFyaWFSb2xlXG4gICAgICB9KVxuICAgIH07XG4gICAgaWYgKGFyaWFSb2xlID09PSAndG9vbHRpcCcgfHwgcm9sZSA9PT0gJ2xhYmVsJykge1xuICAgICAgcmV0dXJuIGZsb2F0aW5nUHJvcHM7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5mbG9hdGluZ1Byb3BzLFxuICAgICAgLi4uKGFyaWFSb2xlID09PSAnbWVudScgJiYge1xuICAgICAgICAnYXJpYS1sYWJlbGxlZGJ5JzogcmVmZXJlbmNlSWRcbiAgICAgIH0pXG4gICAgfTtcbiAgfSwgW2FyaWFSb2xlLCBmbG9hdGluZ0lkLCByZWZlcmVuY2VJZCwgcm9sZV0pO1xuICBjb25zdCBpdGVtID0gUmVhY3QudXNlQ2FsbGJhY2soX3JlZiA9PiB7XG4gICAgbGV0IHtcbiAgICAgIGFjdGl2ZSxcbiAgICAgIHNlbGVjdGVkXG4gICAgfSA9IF9yZWY7XG4gICAgY29uc3QgY29tbW9uUHJvcHMgPSB7XG4gICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgIC4uLihhY3RpdmUgJiYge1xuICAgICAgICBpZDogZmxvYXRpbmdJZCArIFwiLW9wdGlvblwiXG4gICAgICB9KVxuICAgIH07XG5cbiAgICAvLyBGb3IgYG1lbnVgLCB3ZSBhcmUgdW5hYmxlIHRvIHRlbGwgaWYgdGhlIGl0ZW0gaXMgYSBgbWVudWl0ZW1yYWRpb2BcbiAgICAvLyBvciBgbWVudWl0ZW1jaGVja2JveGAuIEZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCBhbHNvXG4gICAgLy8gYXZvaWQgZGVmYXVsdGluZyB0byBgbWVudWl0ZW1gIGFzIGl0IG1heSBvdmVyd3JpdGUgY3VzdG9tIHJvbGUgcHJvcHMuXG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNvbW1vblByb3BzLFxuICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogYWN0aXZlICYmIHNlbGVjdGVkXG4gICAgICAgIH07XG4gICAgICBjYXNlICdjb21ib2JveCc6XG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uY29tbW9uUHJvcHMsXG4gICAgICAgICAgICAuLi4oYWN0aXZlICYmIHtcbiAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9LCBbZmxvYXRpbmdJZCwgcm9sZV0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZSxcbiAgICBmbG9hdGluZyxcbiAgICBpdGVtXG4gIH0gOiB7fSwgW2VuYWJsZWQsIHJlZmVyZW5jZSwgZmxvYXRpbmcsIGl0ZW1dKTtcbn1cblxuLy8gQ29udmVydHMgYSBKUyBzdHlsZSBrZXkgbGlrZSBgYmFja2dyb3VuZENvbG9yYCB0byBhIENTUyB0cmFuc2l0aW9uLXByb3BlcnR5XG4vLyBsaWtlIGBiYWNrZ3JvdW5kLWNvbG9yYC5cbmNvbnN0IGNhbWVsQ2FzZVRvS2ViYWJDYXNlID0gc3RyID0+IHN0ci5yZXBsYWNlKC9bQS1aXSsoPyFbYS16XSl8W0EtWl0vZywgKCQsIG9mcykgPT4gKG9mcyA/ICctJyA6ICcnKSArICQudG9Mb3dlckNhc2UoKSk7XG5mdW5jdGlvbiBleGVjV2l0aEFyZ3NPclJldHVybih2YWx1ZU9yRm4sIGFyZ3MpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZU9yRm4gPT09ICdmdW5jdGlvbicgPyB2YWx1ZU9yRm4oYXJncykgOiB2YWx1ZU9yRm47XG59XG5mdW5jdGlvbiB1c2VEZWxheVVubW91bnQob3BlbiwgZHVyYXRpb25Ncykge1xuICBjb25zdCBbaXNNb3VudGVkLCBzZXRJc01vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUob3Blbik7XG4gIGlmIChvcGVuICYmICFpc01vdW50ZWQpIHtcbiAgICBzZXRJc01vdW50ZWQodHJ1ZSk7XG4gIH1cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4gJiYgaXNNb3VudGVkKSB7XG4gICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiBzZXRJc01vdW50ZWQoZmFsc2UpLCBkdXJhdGlvbk1zKTtcbiAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgfVxuICB9LCBbb3BlbiwgaXNNb3VudGVkLCBkdXJhdGlvbk1zXSk7XG4gIHJldHVybiBpc01vdW50ZWQ7XG59XG4vKipcbiAqIFByb3ZpZGVzIGEgc3RhdHVzIHN0cmluZyB0byBhcHBseSBDU1MgdHJhbnNpdGlvbnMgdG8gYSBmbG9hdGluZyBlbGVtZW50LFxuICogY29ycmVjdGx5IGhhbmRsaW5nIHBsYWNlbWVudC1hd2FyZSB0cmFuc2l0aW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VUcmFuc2l0aW9uI3VzZXRyYW5zaXRpb25zdGF0dXNcbiAqL1xuZnVuY3Rpb24gdXNlVHJhbnNpdGlvblN0YXR1cyhjb250ZXh0LCBwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIG9wZW4sXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nXG4gICAgfVxuICB9ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGR1cmF0aW9uID0gMjUwXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgaXNOdW1iZXJEdXJhdGlvbiA9IHR5cGVvZiBkdXJhdGlvbiA9PT0gJ251bWJlcic7XG4gIGNvbnN0IGNsb3NlRHVyYXRpb24gPSAoaXNOdW1iZXJEdXJhdGlvbiA/IGR1cmF0aW9uIDogZHVyYXRpb24uY2xvc2UpIHx8IDA7XG4gIGNvbnN0IFtzdGF0dXMsIHNldFN0YXR1c10gPSBSZWFjdC51c2VTdGF0ZSgndW5tb3VudGVkJyk7XG4gIGNvbnN0IGlzTW91bnRlZCA9IHVzZURlbGF5VW5tb3VudChvcGVuLCBjbG9zZUR1cmF0aW9uKTtcbiAgaWYgKCFpc01vdW50ZWQgJiYgc3RhdHVzID09PSAnY2xvc2UnKSB7XG4gICAgc2V0U3RhdHVzKCd1bm1vdW50ZWQnKTtcbiAgfVxuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZykgcmV0dXJuO1xuICAgIGlmIChvcGVuKSB7XG4gICAgICBzZXRTdGF0dXMoJ2luaXRpYWwnKTtcbiAgICAgIGNvbnN0IGZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgc2V0U3RhdHVzKCdvcGVuJyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgIH07XG4gICAgfVxuICAgIHNldFN0YXR1cygnY2xvc2UnKTtcbiAgfSwgW29wZW4sIGZsb2F0aW5nXSk7XG4gIHJldHVybiB7XG4gICAgaXNNb3VudGVkLFxuICAgIHN0YXR1c1xuICB9O1xufVxuLyoqXG4gKiBQcm92aWRlcyBzdHlsZXMgdG8gYXBwbHkgQ1NTIHRyYW5zaXRpb25zIHRvIGEgZmxvYXRpbmcgZWxlbWVudCwgY29ycmVjdGx5XG4gKiBoYW5kbGluZyBwbGFjZW1lbnQtYXdhcmUgdHJhbnNpdGlvbnMuIFdyYXBwZXIgYXJvdW5kIGB1c2VUcmFuc2l0aW9uU3RhdHVzYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VUcmFuc2l0aW9uI3VzZXRyYW5zaXRpb25zdHlsZXNcbiAqL1xuZnVuY3Rpb24gdXNlVHJhbnNpdGlvblN0eWxlcyhjb250ZXh0LCBwcm9wcykge1xuICBpZiAocHJvcHMgPT09IHZvaWQgMCkge1xuICAgIHByb3BzID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGluaXRpYWw6IHVuc3RhYmxlX2luaXRpYWwgPSB7XG4gICAgICBvcGFjaXR5OiAwXG4gICAgfSxcbiAgICBvcGVuOiB1bnN0YWJsZV9vcGVuLFxuICAgIGNsb3NlOiB1bnN0YWJsZV9jbG9zZSxcbiAgICBjb21tb246IHVuc3RhYmxlX2NvbW1vbixcbiAgICBkdXJhdGlvbiA9IDI1MFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHBsYWNlbWVudCA9IGNvbnRleHQucGxhY2VtZW50O1xuICBjb25zdCBzaWRlID0gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG4gIGNvbnN0IGZuQXJncyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBzaWRlLFxuICAgIHBsYWNlbWVudFxuICB9KSwgW3NpZGUsIHBsYWNlbWVudF0pO1xuICBjb25zdCBpc051bWJlckR1cmF0aW9uID0gdHlwZW9mIGR1cmF0aW9uID09PSAnbnVtYmVyJztcbiAgY29uc3Qgb3BlbkR1cmF0aW9uID0gKGlzTnVtYmVyRHVyYXRpb24gPyBkdXJhdGlvbiA6IGR1cmF0aW9uLm9wZW4pIHx8IDA7XG4gIGNvbnN0IGNsb3NlRHVyYXRpb24gPSAoaXNOdW1iZXJEdXJhdGlvbiA/IGR1cmF0aW9uIDogZHVyYXRpb24uY2xvc2UpIHx8IDA7XG4gIGNvbnN0IFtzdHlsZXMsIHNldFN0eWxlc10gPSBSZWFjdC51c2VTdGF0ZSgoKSA9PiAoe1xuICAgIC4uLmV4ZWNXaXRoQXJnc09yUmV0dXJuKHVuc3RhYmxlX2NvbW1vbiwgZm5BcmdzKSxcbiAgICAuLi5leGVjV2l0aEFyZ3NPclJldHVybih1bnN0YWJsZV9pbml0aWFsLCBmbkFyZ3MpXG4gIH0pKTtcbiAgY29uc3Qge1xuICAgIGlzTW91bnRlZCxcbiAgICBzdGF0dXNcbiAgfSA9IHVzZVRyYW5zaXRpb25TdGF0dXMoY29udGV4dCwge1xuICAgIGR1cmF0aW9uXG4gIH0pO1xuICBjb25zdCBpbml0aWFsUmVmID0gdXNlTGF0ZXN0UmVmKHVuc3RhYmxlX2luaXRpYWwpO1xuICBjb25zdCBvcGVuUmVmID0gdXNlTGF0ZXN0UmVmKHVuc3RhYmxlX29wZW4pO1xuICBjb25zdCBjbG9zZVJlZiA9IHVzZUxhdGVzdFJlZih1bnN0YWJsZV9jbG9zZSk7XG4gIGNvbnN0IGNvbW1vblJlZiA9IHVzZUxhdGVzdFJlZih1bnN0YWJsZV9jb21tb24pO1xuICBpbmRleCgoKSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFN0eWxlcyA9IGV4ZWNXaXRoQXJnc09yUmV0dXJuKGluaXRpYWxSZWYuY3VycmVudCwgZm5BcmdzKTtcbiAgICBjb25zdCBjbG9zZVN0eWxlcyA9IGV4ZWNXaXRoQXJnc09yUmV0dXJuKGNsb3NlUmVmLmN1cnJlbnQsIGZuQXJncyk7XG4gICAgY29uc3QgY29tbW9uU3R5bGVzID0gZXhlY1dpdGhBcmdzT3JSZXR1cm4oY29tbW9uUmVmLmN1cnJlbnQsIGZuQXJncyk7XG4gICAgY29uc3Qgb3BlblN0eWxlcyA9IGV4ZWNXaXRoQXJnc09yUmV0dXJuKG9wZW5SZWYuY3VycmVudCwgZm5BcmdzKSB8fCBPYmplY3Qua2V5cyhpbml0aWFsU3R5bGVzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBhY2Nba2V5XSA9ICcnO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICBzZXRTdHlsZXMoc3R5bGVzID0+ICh7XG4gICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0eTogc3R5bGVzLnRyYW5zaXRpb25Qcm9wZXJ0eSxcbiAgICAgICAgLi4uY29tbW9uU3R5bGVzLFxuICAgICAgICAuLi5pbml0aWFsU3R5bGVzXG4gICAgICB9KSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdvcGVuJykge1xuICAgICAgc2V0U3R5bGVzKHtcbiAgICAgICAgdHJhbnNpdGlvblByb3BlcnR5OiBPYmplY3Qua2V5cyhvcGVuU3R5bGVzKS5tYXAoY2FtZWxDYXNlVG9LZWJhYkNhc2UpLmpvaW4oJywnKSxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBvcGVuRHVyYXRpb24gKyBcIm1zXCIsXG4gICAgICAgIC4uLmNvbW1vblN0eWxlcyxcbiAgICAgICAgLi4ub3BlblN0eWxlc1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdjbG9zZScpIHtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IGNsb3NlU3R5bGVzIHx8IGluaXRpYWxTdHlsZXM7XG4gICAgICBzZXRTdHlsZXMoe1xuICAgICAgICB0cmFuc2l0aW9uUHJvcGVydHk6IE9iamVjdC5rZXlzKHN0eWxlcykubWFwKGNhbWVsQ2FzZVRvS2ViYWJDYXNlKS5qb2luKCcsJyksXG4gICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogY2xvc2VEdXJhdGlvbiArIFwibXNcIixcbiAgICAgICAgLi4uY29tbW9uU3R5bGVzLFxuICAgICAgICAuLi5zdHlsZXNcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2Nsb3NlRHVyYXRpb24sIGNsb3NlUmVmLCBpbml0aWFsUmVmLCBvcGVuUmVmLCBjb21tb25SZWYsIG9wZW5EdXJhdGlvbiwgc3RhdHVzLCBmbkFyZ3NdKTtcbiAgcmV0dXJuIHtcbiAgICBpc01vdW50ZWQsXG4gICAgc3R5bGVzXG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSBtYXRjaGluZyBjYWxsYmFjayB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvY3VzIGFuIGl0ZW0gYXMgdGhlIHVzZXJcbiAqIHR5cGVzLCBvZnRlbiB1c2VkIGluIHRhbmRlbSB3aXRoIGB1c2VMaXN0TmF2aWdhdGlvbigpYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VUeXBlYWhlYWRcbiAqL1xuZnVuY3Rpb24gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHByb3BzKSB7XG4gIHZhciBfcmVmO1xuICBjb25zdCB7XG4gICAgb3BlbixcbiAgICBkYXRhUmVmXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgbGlzdFJlZixcbiAgICBhY3RpdmVJbmRleCxcbiAgICBvbk1hdGNoOiB1bnN0YWJsZV9vbk1hdGNoLFxuICAgIG9uVHlwaW5nQ2hhbmdlOiB1bnN0YWJsZV9vblR5cGluZ0NoYW5nZSxcbiAgICBlbmFibGVkID0gdHJ1ZSxcbiAgICBmaW5kTWF0Y2ggPSBudWxsLFxuICAgIHJlc2V0TXMgPSA3NTAsXG4gICAgaWdub3JlS2V5cyA9IFtdLFxuICAgIHNlbGVjdGVkSW5kZXggPSBudWxsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgdGltZW91dElkUmVmID0gUmVhY3QudXNlUmVmKCk7XG4gIGNvbnN0IHN0cmluZ1JlZiA9IFJlYWN0LnVzZVJlZignJyk7XG4gIGNvbnN0IHByZXZJbmRleFJlZiA9IFJlYWN0LnVzZVJlZigoX3JlZiA9IHNlbGVjdGVkSW5kZXggIT0gbnVsbCA/IHNlbGVjdGVkSW5kZXggOiBhY3RpdmVJbmRleCkgIT0gbnVsbCA/IF9yZWYgOiAtMSk7XG4gIGNvbnN0IG1hdGNoSW5kZXhSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IG9uTWF0Y2ggPSB1c2VFZmZlY3RFdmVudCh1bnN0YWJsZV9vbk1hdGNoKTtcbiAgY29uc3Qgb25UeXBpbmdDaGFuZ2UgPSB1c2VFZmZlY3RFdmVudCh1bnN0YWJsZV9vblR5cGluZ0NoYW5nZSk7XG4gIGNvbnN0IGZpbmRNYXRjaFJlZiA9IHVzZUxhdGVzdFJlZihmaW5kTWF0Y2gpO1xuICBjb25zdCBpZ25vcmVLZXlzUmVmID0gdXNlTGF0ZXN0UmVmKGlnbm9yZUtleXMpO1xuICBpbmRleCgoKSA9PiB7XG4gICAgaWYgKG9wZW4pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWRSZWYuY3VycmVudCk7XG4gICAgICBtYXRjaEluZGV4UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgc3RyaW5nUmVmLmN1cnJlbnQgPSAnJztcbiAgICB9XG4gIH0sIFtvcGVuXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICAvLyBTeW5jIGFycm93IGtleSBuYXZpZ2F0aW9uIGJ1dCBub3QgdHlwZWFoZWFkIG5hdmlnYXRpb24uXG4gICAgaWYgKG9wZW4gJiYgc3RyaW5nUmVmLmN1cnJlbnQgPT09ICcnKSB7XG4gICAgICB2YXIgX3JlZjI7XG4gICAgICBwcmV2SW5kZXhSZWYuY3VycmVudCA9IChfcmVmMiA9IHNlbGVjdGVkSW5kZXggIT0gbnVsbCA/IHNlbGVjdGVkSW5kZXggOiBhY3RpdmVJbmRleCkgIT0gbnVsbCA/IF9yZWYyIDogLTE7XG4gICAgfVxuICB9LCBbb3Blbiwgc2VsZWN0ZWRJbmRleCwgYWN0aXZlSW5kZXhdKTtcbiAgY29uc3Qgc2V0VHlwaW5nQ2hhbmdlID0gdXNlRWZmZWN0RXZlbnQodmFsdWUgPT4ge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKCFkYXRhUmVmLmN1cnJlbnQudHlwaW5nKSB7XG4gICAgICAgIGRhdGFSZWYuY3VycmVudC50eXBpbmcgPSB2YWx1ZTtcbiAgICAgICAgb25UeXBpbmdDaGFuZ2UodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZGF0YVJlZi5jdXJyZW50LnR5cGluZykge1xuICAgICAgICBkYXRhUmVmLmN1cnJlbnQudHlwaW5nID0gdmFsdWU7XG4gICAgICAgIG9uVHlwaW5nQ2hhbmdlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBjb25zdCBvbktleURvd24gPSB1c2VFZmZlY3RFdmVudChldmVudCA9PiB7XG4gICAgZnVuY3Rpb24gZ2V0TWF0Y2hpbmdJbmRleChsaXN0LCBvcmRlcmVkTGlzdCwgc3RyaW5nKSB7XG4gICAgICBjb25zdCBzdHIgPSBmaW5kTWF0Y2hSZWYuY3VycmVudCA/IGZpbmRNYXRjaFJlZi5jdXJyZW50KG9yZGVyZWRMaXN0LCBzdHJpbmcpIDogb3JkZXJlZExpc3QuZmluZCh0ZXh0ID0+ICh0ZXh0ID09IG51bGwgPyB2b2lkIDAgOiB0ZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZihzdHJpbmcudG9Mb2NhbGVMb3dlckNhc2UoKSkpID09PSAwKTtcbiAgICAgIHJldHVybiBzdHIgPyBsaXN0LmluZGV4T2Yoc3RyKSA6IC0xO1xuICAgIH1cbiAgICBjb25zdCBsaXN0Q29udGVudCA9IGxpc3RSZWYuY3VycmVudDtcbiAgICBpZiAoc3RyaW5nUmVmLmN1cnJlbnQubGVuZ3RoID4gMCAmJiBzdHJpbmdSZWYuY3VycmVudFswXSAhPT0gJyAnKSB7XG4gICAgICBpZiAoZ2V0TWF0Y2hpbmdJbmRleChsaXN0Q29udGVudCwgbGlzdENvbnRlbnQsIHN0cmluZ1JlZi5jdXJyZW50KSA9PT0gLTEpIHtcbiAgICAgICAgc2V0VHlwaW5nQ2hhbmdlKGZhbHNlKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxpc3RDb250ZW50ID09IG51bGwgfHwgaWdub3JlS2V5c1JlZi5jdXJyZW50LmluY2x1ZGVzKGV2ZW50LmtleSkgfHxcbiAgICAvLyBDaGFyYWN0ZXIga2V5LlxuICAgIGV2ZW50LmtleS5sZW5ndGggIT09IDEgfHxcbiAgICAvLyBNb2RpZmllciBrZXkuXG4gICAgZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAob3BlbiAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgIHNldFR5cGluZ0NoYW5nZSh0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBCYWlsIG91dCBpZiB0aGUgbGlzdCBjb250YWlucyBhIHdvcmQgbGlrZSBcImxsYW1hXCIgb3IgXCJhYXJvblwiLiBUT0RPOlxuICAgIC8vIGFsbG93IGl0IGluIHRoaXMgY2FzZSwgdG9vLlxuICAgIGNvbnN0IGFsbG93UmFwaWRTdWNjZXNzaW9uT2ZGaXJzdExldHRlciA9IGxpc3RDb250ZW50LmV2ZXJ5KHRleHQgPT4ge1xuICAgICAgdmFyIF90ZXh0JCwgX3RleHQkMjtcbiAgICAgIHJldHVybiB0ZXh0ID8gKChfdGV4dCQgPSB0ZXh0WzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3RleHQkLnRvTG9jYWxlTG93ZXJDYXNlKCkpICE9PSAoKF90ZXh0JDIgPSB0ZXh0WzFdKSA9PSBudWxsID8gdm9pZCAwIDogX3RleHQkMi50b0xvY2FsZUxvd2VyQ2FzZSgpKSA6IHRydWU7XG4gICAgfSk7XG5cbiAgICAvLyBBbGxvd3MgdGhlIHVzZXIgdG8gY3ljbGUgdGhyb3VnaCBpdGVtcyB0aGF0IHN0YXJ0IHdpdGggdGhlIHNhbWUgbGV0dGVyXG4gICAgLy8gaW4gcmFwaWQgc3VjY2Vzc2lvbi5cbiAgICBpZiAoYWxsb3dSYXBpZFN1Y2Nlc3Npb25PZkZpcnN0TGV0dGVyICYmIHN0cmluZ1JlZi5jdXJyZW50ID09PSBldmVudC5rZXkpIHtcbiAgICAgIHN0cmluZ1JlZi5jdXJyZW50ID0gJyc7XG4gICAgICBwcmV2SW5kZXhSZWYuY3VycmVudCA9IG1hdGNoSW5kZXhSZWYuY3VycmVudDtcbiAgICB9XG4gICAgc3RyaW5nUmVmLmN1cnJlbnQgKz0gZXZlbnQua2V5O1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWRSZWYuY3VycmVudCk7XG4gICAgdGltZW91dElkUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHN0cmluZ1JlZi5jdXJyZW50ID0gJyc7XG4gICAgICBwcmV2SW5kZXhSZWYuY3VycmVudCA9IG1hdGNoSW5kZXhSZWYuY3VycmVudDtcbiAgICAgIHNldFR5cGluZ0NoYW5nZShmYWxzZSk7XG4gICAgfSwgcmVzZXRNcyk7XG4gICAgY29uc3QgcHJldkluZGV4ID0gcHJldkluZGV4UmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaW5kZXggPSBnZXRNYXRjaGluZ0luZGV4KGxpc3RDb250ZW50LCBbLi4ubGlzdENvbnRlbnQuc2xpY2UoKHByZXZJbmRleCB8fCAwKSArIDEpLCAuLi5saXN0Q29udGVudC5zbGljZSgwLCAocHJldkluZGV4IHx8IDApICsgMSldLCBzdHJpbmdSZWYuY3VycmVudCk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgb25NYXRjaChpbmRleCk7XG4gICAgICBtYXRjaEluZGV4UmVmLmN1cnJlbnQgPSBpbmRleDtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSAhPT0gJyAnKSB7XG4gICAgICBzdHJpbmdSZWYuY3VycmVudCA9ICcnO1xuICAgICAgc2V0VHlwaW5nQ2hhbmdlKGZhbHNlKTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCByZWZlcmVuY2UgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgb25LZXlEb3duXG4gIH0pLCBbb25LZXlEb3duXSk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uS2V5VXAoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgICAgc2V0VHlwaW5nQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sIFtvbktleURvd24sIHNldFR5cGluZ0NoYW5nZV0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiBlbmFibGVkID8ge1xuICAgIHJlZmVyZW5jZSxcbiAgICBmbG9hdGluZ1xuICB9IDoge30sIFtlbmFibGVkLCByZWZlcmVuY2UsIGZsb2F0aW5nXSk7XG59XG5cbmZ1bmN0aW9uIGdldEFyZ3NXaXRoQ3VzdG9tRmxvYXRpbmdIZWlnaHQoc3RhdGUsIGhlaWdodCkge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHJlY3RzOiB7XG4gICAgICAuLi5zdGF0ZS5yZWN0cyxcbiAgICAgIGZsb2F0aW5nOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlY3RzLmZsb2F0aW5nLFxuICAgICAgICBoZWlnaHRcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4vKipcbiAqIFBvc2l0aW9ucyB0aGUgZmxvYXRpbmcgZWxlbWVudCBzdWNoIHRoYXQgYW4gaW5uZXIgZWxlbWVudCBpbnNpZGUgb2YgaXQgaXNcbiAqIGFuY2hvcmVkIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9pbm5lclxuICovXG5jb25zdCBpbm5lciA9IHByb3BzID0+ICh7XG4gIG5hbWU6ICdpbm5lcicsXG4gIG9wdGlvbnM6IHByb3BzLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGxpc3RSZWYsXG4gICAgICBvdmVyZmxvd1JlZixcbiAgICAgIG9uRmFsbGJhY2tDaGFuZ2UsXG4gICAgICBvZmZzZXQ6IGlubmVyT2Zmc2V0ID0gMCxcbiAgICAgIGluZGV4ID0gMCxcbiAgICAgIG1pbkl0ZW1zVmlzaWJsZSA9IDQsXG4gICAgICByZWZlcmVuY2VPdmVyZmxvd1RocmVzaG9sZCA9IDAsXG4gICAgICBzY3JvbGxSZWYsXG4gICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICB9ID0gZXZhbHVhdGUocHJvcHMsIHN0YXRlKTtcbiAgICBjb25zdCB7XG4gICAgICByZWN0cyxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIGZsb2F0aW5nXG4gICAgICB9XG4gICAgfSA9IHN0YXRlO1xuICAgIGNvbnN0IGl0ZW0gPSBsaXN0UmVmLmN1cnJlbnRbaW5kZXhdO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIGlmICghc3RhdGUucGxhY2VtZW50LnN0YXJ0c1dpdGgoJ2JvdHRvbScpKSB7XG4gICAgICAgIHdhcm4oJ2BwbGFjZW1lbnRgIHNpZGUgbXVzdCBiZSBcImJvdHRvbVwiIHdoZW4gdXNpbmcgdGhlIGBpbm5lcmAnLCAnbWlkZGxld2FyZS4nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IG5leHRBcmdzID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICAuLi4oYXdhaXQgb2Zmc2V0KC1pdGVtLm9mZnNldFRvcCAtIGZsb2F0aW5nLmNsaWVudFRvcCAtIHJlY3RzLnJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gaXRlbS5vZmZzZXRIZWlnaHQgLyAyIC0gaW5uZXJPZmZzZXQpLmZuKHN0YXRlKSlcbiAgICB9O1xuICAgIGNvbnN0IGVsID0gKHNjcm9sbFJlZiA9PSBudWxsID8gdm9pZCAwIDogc2Nyb2xsUmVmLmN1cnJlbnQpIHx8IGZsb2F0aW5nO1xuICAgIGNvbnN0IG92ZXJmbG93ID0gYXdhaXQgZGV0ZWN0T3ZlcmZsb3coZ2V0QXJnc1dpdGhDdXN0b21GbG9hdGluZ0hlaWdodChuZXh0QXJncywgZWwuc2Nyb2xsSGVpZ2h0KSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICBjb25zdCByZWZPdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KG5leHRBcmdzLCB7XG4gICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICBlbGVtZW50Q29udGV4dDogJ3JlZmVyZW5jZSdcbiAgICB9KTtcbiAgICBjb25zdCBkaWZmWSA9IE1hdGgubWF4KDAsIG92ZXJmbG93LnRvcCk7XG4gICAgY29uc3QgbmV4dFkgPSBuZXh0QXJncy55ICsgZGlmZlk7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5tYXgoMCwgZWwuc2Nyb2xsSGVpZ2h0IC0gZGlmZlkgLSBNYXRoLm1heCgwLCBvdmVyZmxvdy5ib3R0b20pKTtcbiAgICBlbC5zdHlsZS5tYXhIZWlnaHQgPSBtYXhIZWlnaHQgKyBcInB4XCI7XG4gICAgZWwuc2Nyb2xsVG9wID0gZGlmZlk7XG5cbiAgICAvLyBUaGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlLCBmYWxsYmFjayB0byBzdGFuZGFyZCBhbmNob3JlZCBwb3NpdGlvbmluZ1xuICAgIGlmIChvbkZhbGxiYWNrQ2hhbmdlKSB7XG4gICAgICBpZiAoZWwub2Zmc2V0SGVpZ2h0IDwgaXRlbS5vZmZzZXRIZWlnaHQgKiBNYXRoLm1pbihtaW5JdGVtc1Zpc2libGUsIGxpc3RSZWYuY3VycmVudC5sZW5ndGggLSAxKSAtIDEgfHwgcmVmT3ZlcmZsb3cudG9wID49IC1yZWZlcmVuY2VPdmVyZmxvd1RocmVzaG9sZCB8fCByZWZPdmVyZmxvdy5ib3R0b20gPj0gLXJlZmVyZW5jZU92ZXJmbG93VGhyZXNob2xkKSB7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiBvbkZhbGxiYWNrQ2hhbmdlKHRydWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiBvbkZhbGxiYWNrQ2hhbmdlKGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvdmVyZmxvd1JlZikge1xuICAgICAgb3ZlcmZsb3dSZWYuY3VycmVudCA9IGF3YWl0IGRldGVjdE92ZXJmbG93KGdldEFyZ3NXaXRoQ3VzdG9tRmxvYXRpbmdIZWlnaHQoe1xuICAgICAgICAuLi5uZXh0QXJncyxcbiAgICAgICAgeTogbmV4dFlcbiAgICAgIH0sIGVsLm9mZnNldEhlaWdodCksIGRldGVjdE92ZXJmbG93T3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB5OiBuZXh0WVxuICAgIH07XG4gIH1cbn0pO1xuLyoqXG4gKiBDaGFuZ2VzIHRoZSBgaW5uZXJgIG1pZGRsZXdhcmUncyBgb2Zmc2V0YCB1cG9uIGEgYHdoZWVsYCBldmVudCB0b1xuICogZXhwYW5kIHRoZSBmbG9hdGluZyBlbGVtZW50J3MgaGVpZ2h0LCByZXZlYWxpbmcgbW9yZSBsaXN0IGl0ZW1zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubmVyXG4gKi9cbmZ1bmN0aW9uIHVzZUlubmVyT2Zmc2V0KGNvbnRleHQsIHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBvcGVuLFxuICAgIGVsZW1lbnRzXG4gIH0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZW5hYmxlZCA9IHRydWUsXG4gICAgb3ZlcmZsb3dSZWYsXG4gICAgc2Nyb2xsUmVmLFxuICAgIG9uQ2hhbmdlOiB1bnN0YWJsZV9vbkNoYW5nZVxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlRWZmZWN0RXZlbnQodW5zdGFibGVfb25DaGFuZ2UpO1xuICBjb25zdCBjb250cm9sbGVkU2Nyb2xsaW5nUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgcHJldlNjcm9sbFRvcFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgY29uc3QgaW5pdGlhbE92ZXJmbG93UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW5hYmxlZCkgcmV0dXJuO1xuICAgIGZ1bmN0aW9uIG9uV2hlZWwoZSkge1xuICAgICAgaWYgKGUuY3RybEtleSB8fCAhZWwgfHwgb3ZlcmZsb3dSZWYuY3VycmVudCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRZID0gZS5kZWx0YVk7XG4gICAgICBjb25zdCBpc0F0VG9wID0gb3ZlcmZsb3dSZWYuY3VycmVudC50b3AgPj0gLTAuNTtcbiAgICAgIGNvbnN0IGlzQXRCb3R0b20gPSBvdmVyZmxvd1JlZi5jdXJyZW50LmJvdHRvbSA+PSAtMC41O1xuICAgICAgY29uc3QgcmVtYWluaW5nU2Nyb2xsID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0O1xuICAgICAgY29uc3Qgc2lnbiA9IGRZIDwgMCA/IC0xIDogMTtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IGRZIDwgMCA/ICdtYXgnIDogJ21pbic7XG4gICAgICBpZiAoZWwuc2Nyb2xsSGVpZ2h0IDw9IGVsLmNsaWVudEhlaWdodCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIWlzQXRUb3AgJiYgZFkgPiAwIHx8ICFpc0F0Qm90dG9tICYmIGRZIDwgMCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgb25DaGFuZ2UoZCA9PiBkICsgTWF0aFttZXRob2RdKGRZLCByZW1haW5pbmdTY3JvbGwgKiBzaWduKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmICgvZmlyZWZveC9pLnRlc3QoZ2V0VXNlckFnZW50KCkpKSB7XG4gICAgICAgIC8vIE5lZWRlZCB0byBwcm9wYWdhdGUgc2Nyb2xsaW5nIGR1cmluZyBtb21lbnR1bSBzY3JvbGxpbmcgcGhhc2Ugb25jZVxuICAgICAgICAvLyBpdCBnZXRzIGxpbWl0ZWQgYnkgdGhlIGJvdW5kYXJ5LiBVWCBpbXByb3ZlbWVudCwgbm90IGNyaXRpY2FsLlxuICAgICAgICBlbC5zY3JvbGxUb3AgKz0gZFk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGVsID0gKHNjcm9sbFJlZiA9PSBudWxsID8gdm9pZCAwIDogc2Nyb2xsUmVmLmN1cnJlbnQpIHx8IGVsZW1lbnRzLmZsb2F0aW5nO1xuICAgIGlmIChvcGVuICYmIGVsKSB7XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgcG9zaXRpb24gdG8gYmUgcmVhZHkuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgPSBlbC5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChvdmVyZmxvd1JlZi5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICBpbml0aWFsT3ZlcmZsb3dSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIC4uLm92ZXJmbG93UmVmLmN1cnJlbnRcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHByZXZTY3JvbGxUb3BSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICAgIGluaXRpYWxPdmVyZmxvd1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvbldoZWVsKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbZW5hYmxlZCwgb3BlbiwgZWxlbWVudHMuZmxvYXRpbmcsIG92ZXJmbG93UmVmLCBzY3JvbGxSZWYsIG9uQ2hhbmdlXSk7XG4gIGNvbnN0IGZsb2F0aW5nID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIG9uS2V5RG93bigpIHtcbiAgICAgIGNvbnRyb2xsZWRTY3JvbGxpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfSxcbiAgICBvbldoZWVsKCkge1xuICAgICAgY29udHJvbGxlZFNjcm9sbGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSxcbiAgICBvblBvaW50ZXJNb3ZlKCkge1xuICAgICAgY29udHJvbGxlZFNjcm9sbGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfSxcbiAgICBvblNjcm9sbCgpIHtcbiAgICAgIGNvbnN0IGVsID0gKHNjcm9sbFJlZiA9PSBudWxsID8gdm9pZCAwIDogc2Nyb2xsUmVmLmN1cnJlbnQpIHx8IGVsZW1lbnRzLmZsb2F0aW5nO1xuICAgICAgaWYgKCFvdmVyZmxvd1JlZi5jdXJyZW50IHx8ICFlbCB8fCAhY29udHJvbGxlZFNjcm9sbGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsRGlmZiA9IGVsLnNjcm9sbFRvcCAtIHByZXZTY3JvbGxUb3BSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKG92ZXJmbG93UmVmLmN1cnJlbnQuYm90dG9tIDwgLTAuNSAmJiBzY3JvbGxEaWZmIDwgLTEgfHwgb3ZlcmZsb3dSZWYuY3VycmVudC50b3AgPCAtMC41ICYmIHNjcm9sbERpZmYgPiAxKSB7XG4gICAgICAgICAgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IG9uQ2hhbmdlKGQgPT4gZCArIHNjcm9sbERpZmYpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBbRmlyZWZveF0gV2FpdCBmb3IgdGhlIGhlaWdodCBjaGFuZ2UgdG8gaGF2ZSBiZWVuIGFwcGxpZWQuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgPSBlbC5zY3JvbGxUb3A7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pLCBbZWxlbWVudHMuZmxvYXRpbmcsIG9uQ2hhbmdlLCBvdmVyZmxvd1JlZiwgc2Nyb2xsUmVmXSk7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGVuYWJsZWQgPyB7XG4gICAgZmxvYXRpbmdcbiAgfSA6IHt9LCBbZW5hYmxlZCwgZmxvYXRpbmddKTtcbn1cblxuZnVuY3Rpb24gaXNQb2ludEluUG9seWdvbihwb2ludCwgcG9seWdvbikge1xuICBjb25zdCBbeCwgeV0gPSBwb2ludDtcbiAgbGV0IGlzSW5zaWRlID0gZmFsc2U7XG4gIGNvbnN0IGxlbmd0aCA9IHBvbHlnb24ubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMCwgaiA9IGxlbmd0aCAtIDE7IGkgPCBsZW5ndGg7IGogPSBpKyspIHtcbiAgICBjb25zdCBbeGksIHlpXSA9IHBvbHlnb25baV0gfHwgWzAsIDBdO1xuICAgIGNvbnN0IFt4aiwgeWpdID0gcG9seWdvbltqXSB8fCBbMCwgMF07XG4gICAgY29uc3QgaW50ZXJzZWN0ID0geWkgPj0geSAhPT0geWogPj0geSAmJiB4IDw9ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGk7XG4gICAgaWYgKGludGVyc2VjdCkge1xuICAgICAgaXNJbnNpZGUgPSAhaXNJbnNpZGU7XG4gICAgfVxuICB9XG4gIHJldHVybiBpc0luc2lkZTtcbn1cbmZ1bmN0aW9uIGlzSW5zaWRlKHBvaW50LCByZWN0KSB7XG4gIHJldHVybiBwb2ludFswXSA+PSByZWN0LnggJiYgcG9pbnRbMF0gPD0gcmVjdC54ICsgcmVjdC53aWR0aCAmJiBwb2ludFsxXSA+PSByZWN0LnkgJiYgcG9pbnRbMV0gPD0gcmVjdC55ICsgcmVjdC5oZWlnaHQ7XG59XG4vKipcbiAqIEdlbmVyYXRlcyBhIHNhZmUgcG9seWdvbiBhcmVhIHRoYXQgdGhlIHVzZXIgY2FuIHRyYXZlcnNlIHdpdGhvdXQgY2xvc2luZyB0aGVcbiAqIGZsb2F0aW5nIGVsZW1lbnQgb25jZSBsZWF2aW5nIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VIb3ZlciNzYWZlcG9seWdvblxuICovXG5mdW5jdGlvbiBzYWZlUG9seWdvbihvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGJ1ZmZlciA9IDAuNSxcbiAgICBibG9ja1BvaW50ZXJFdmVudHMgPSBmYWxzZSxcbiAgICByZXF1aXJlSW50ZW50ID0gdHJ1ZVxuICB9ID0gb3B0aW9ucztcbiAgbGV0IHRpbWVvdXRJZDtcbiAgbGV0IGhhc0xhbmRlZCA9IGZhbHNlO1xuICBsZXQgbGFzdFggPSBudWxsO1xuICBsZXQgbGFzdFkgPSBudWxsO1xuICBsZXQgbGFzdEN1cnNvclRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgZnVuY3Rpb24gZ2V0Q3Vyc29yU3BlZWQoeCwgeSkge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgZWxhcHNlZFRpbWUgPSBjdXJyZW50VGltZSAtIGxhc3RDdXJzb3JUaW1lO1xuICAgIGlmIChsYXN0WCA9PT0gbnVsbCB8fCBsYXN0WSA9PT0gbnVsbCB8fCBlbGFwc2VkVGltZSA9PT0gMCkge1xuICAgICAgbGFzdFggPSB4O1xuICAgICAgbGFzdFkgPSB5O1xuICAgICAgbGFzdEN1cnNvclRpbWUgPSBjdXJyZW50VGltZTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkZWx0YVggPSB4IC0gbGFzdFg7XG4gICAgY29uc3QgZGVsdGFZID0geSAtIGxhc3RZO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KGRlbHRhWCAqIGRlbHRhWCArIGRlbHRhWSAqIGRlbHRhWSk7XG4gICAgY29uc3Qgc3BlZWQgPSBkaXN0YW5jZSAvIGVsYXBzZWRUaW1lOyAvLyBweCAvIG1zXG5cbiAgICBsYXN0WCA9IHg7XG4gICAgbGFzdFkgPSB5O1xuICAgIGxhc3RDdXJzb3JUaW1lID0gY3VycmVudFRpbWU7XG4gICAgcmV0dXJuIHNwZWVkO1xuICB9XG4gIGNvbnN0IGZuID0gX3JlZiA9PiB7XG4gICAgbGV0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgZWxlbWVudHMsXG4gICAgICBvbkNsb3NlLFxuICAgICAgbm9kZUlkLFxuICAgICAgdHJlZVxuICAgIH0gPSBfcmVmO1xuICAgIHJldHVybiBmdW5jdGlvbiBvbk1vdXNlTW92ZShldmVudCkge1xuICAgICAgZnVuY3Rpb24gY2xvc2UoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICBvbkNsb3NlKCk7XG4gICAgICB9XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgIGlmICghZWxlbWVudHMuZG9tUmVmZXJlbmNlIHx8ICFlbGVtZW50cy5mbG9hdGluZyB8fCBwbGFjZW1lbnQgPT0gbnVsbCB8fCB4ID09IG51bGwgfHwgeSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY2xpZW50WCxcbiAgICAgICAgY2xpZW50WVxuICAgICAgfSA9IGV2ZW50O1xuICAgICAgY29uc3QgY2xpZW50UG9pbnQgPSBbY2xpZW50WCwgY2xpZW50WV07XG4gICAgICBjb25zdCB0YXJnZXQgPSBnZXRUYXJnZXQoZXZlbnQpO1xuICAgICAgY29uc3QgaXNMZWF2ZSA9IGV2ZW50LnR5cGUgPT09ICdtb3VzZWxlYXZlJztcbiAgICAgIGNvbnN0IGlzT3ZlckZsb2F0aW5nRWwgPSBjb250YWlucyhlbGVtZW50cy5mbG9hdGluZywgdGFyZ2V0KTtcbiAgICAgIGNvbnN0IGlzT3ZlclJlZmVyZW5jZUVsID0gY29udGFpbnMoZWxlbWVudHMuZG9tUmVmZXJlbmNlLCB0YXJnZXQpO1xuICAgICAgY29uc3QgcmVmUmVjdCA9IGVsZW1lbnRzLmRvbVJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50cy5mbG9hdGluZy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHNpZGUgPSBwbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbiAgICAgIGNvbnN0IGN1cnNvckxlYXZlRnJvbVJpZ2h0ID0geCA+IHJlY3QucmlnaHQgLSByZWN0LndpZHRoIC8gMjtcbiAgICAgIGNvbnN0IGN1cnNvckxlYXZlRnJvbUJvdHRvbSA9IHkgPiByZWN0LmJvdHRvbSAtIHJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgIGNvbnN0IGlzT3ZlclJlZmVyZW5jZVJlY3QgPSBpc0luc2lkZShjbGllbnRQb2ludCwgcmVmUmVjdCk7XG4gICAgICBjb25zdCBpc0Zsb2F0aW5nV2lkZXIgPSByZWN0LndpZHRoID4gcmVmUmVjdC53aWR0aDtcbiAgICAgIGNvbnN0IGlzRmxvYXRpbmdUYWxsZXIgPSByZWN0LmhlaWdodCA+IHJlZlJlY3QuaGVpZ2h0O1xuICAgICAgY29uc3QgbGVmdCA9IChpc0Zsb2F0aW5nV2lkZXIgPyByZWZSZWN0IDogcmVjdCkubGVmdDtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gKGlzRmxvYXRpbmdXaWRlciA/IHJlZlJlY3QgOiByZWN0KS5yaWdodDtcbiAgICAgIGNvbnN0IHRvcCA9IChpc0Zsb2F0aW5nVGFsbGVyID8gcmVmUmVjdCA6IHJlY3QpLnRvcDtcbiAgICAgIGNvbnN0IGJvdHRvbSA9IChpc0Zsb2F0aW5nVGFsbGVyID8gcmVmUmVjdCA6IHJlY3QpLmJvdHRvbTtcbiAgICAgIGlmIChpc092ZXJGbG9hdGluZ0VsKSB7XG4gICAgICAgIGhhc0xhbmRlZCA9IHRydWU7XG4gICAgICAgIGlmICghaXNMZWF2ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzT3ZlclJlZmVyZW5jZUVsKSB7XG4gICAgICAgIGhhc0xhbmRlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzT3ZlclJlZmVyZW5jZUVsICYmICFpc0xlYXZlKSB7XG4gICAgICAgIGhhc0xhbmRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gUHJldmVudCBvdmVybGFwcGluZyBmbG9hdGluZyBlbGVtZW50IGZyb20gYmVpbmcgc3R1Y2sgaW4gYW4gb3Blbi1jbG9zZVxuICAgICAgLy8gbG9vcDogaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8xOTEwXG4gICAgICBpZiAoaXNMZWF2ZSAmJiBpc0VsZW1lbnQoZXZlbnQucmVsYXRlZFRhcmdldCkgJiYgY29udGFpbnMoZWxlbWVudHMuZmxvYXRpbmcsIGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgYW55IG5lc3RlZCBjaGlsZCBpcyBvcGVuLCBhYm9ydC5cbiAgICAgIGlmICh0cmVlICYmIGdldENoaWxkcmVuKHRyZWUubm9kZXNSZWYuY3VycmVudCwgbm9kZUlkKS5zb21lKF9yZWYyID0+IHtcbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBjb250ZXh0XG4gICAgICAgIH0gPSBfcmVmMjtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQub3BlbjtcbiAgICAgIH0pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHBvaW50ZXIgaXMgbGVhdmluZyBmcm9tIHRoZSBvcHBvc2l0ZSBzaWRlLCB0aGUgXCJidWZmZXJcIiBsb2dpY1xuICAgICAgLy8gY3JlYXRlcyBhIHBvaW50IHdoZXJlIHRoZSBmbG9hdGluZyBlbGVtZW50IHJlbWFpbnMgb3BlbiwgYnV0IHNob3VsZCBiZVxuICAgICAgLy8gaWdub3JlZC5cbiAgICAgIC8vIEEgY29uc3RhbnQgb2YgMSBoYW5kbGVzIGZsb2F0aW5nIHBvaW50IHJvdW5kaW5nIGVycm9ycy5cbiAgICAgIGlmIChzaWRlID09PSAndG9wJyAmJiB5ID49IHJlZlJlY3QuYm90dG9tIC0gMSB8fCBzaWRlID09PSAnYm90dG9tJyAmJiB5IDw9IHJlZlJlY3QudG9wICsgMSB8fCBzaWRlID09PSAnbGVmdCcgJiYgeCA+PSByZWZSZWN0LnJpZ2h0IC0gMSB8fCBzaWRlID09PSAncmlnaHQnICYmIHggPD0gcmVmUmVjdC5sZWZ0ICsgMSkge1xuICAgICAgICByZXR1cm4gY2xvc2UoKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWdub3JlIHdoZW4gdGhlIGN1cnNvciBpcyB3aXRoaW4gdGhlIHJlY3Rhbmd1bGFyIHRyb3VnaCBiZXR3ZWVuIHRoZVxuICAgICAgLy8gdHdvIGVsZW1lbnRzLiBTaW5jZSB0aGUgdHJpYW5nbGUgaXMgY3JlYXRlZCBmcm9tIHRoZSBjdXJzb3IgcG9pbnQsXG4gICAgICAvLyB3aGljaCBjYW4gc3RhcnQgYmV5b25kIHRoZSByZWYgZWxlbWVudCdzIGVkZ2UsIHRyYXZlcnNpbmcgYmFjayBhbmRcbiAgICAgIC8vIGZvcnRoIGZyb20gdGhlIHJlZiB0byB0aGUgZmxvYXRpbmcgZWxlbWVudCBjYW4gY2F1c2UgaXQgdG8gY2xvc2UuIFRoaXNcbiAgICAgIC8vIGVuc3VyZXMgaXQgYWx3YXlzIHJlbWFpbnMgb3BlbiBpbiB0aGF0IGNhc2UuXG4gICAgICBsZXQgcmVjdFBvbHkgPSBbXTtcbiAgICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIHJlY3RQb2x5ID0gW1tsZWZ0LCByZWZSZWN0LnRvcCArIDFdLCBbbGVmdCwgcmVjdC5ib3R0b20gLSAxXSwgW3JpZ2h0LCByZWN0LmJvdHRvbSAtIDFdLCBbcmlnaHQsIHJlZlJlY3QudG9wICsgMV1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgIHJlY3RQb2x5ID0gW1tsZWZ0LCByZWN0LnRvcCArIDFdLCBbbGVmdCwgcmVmUmVjdC5ib3R0b20gLSAxXSwgW3JpZ2h0LCByZWZSZWN0LmJvdHRvbSAtIDFdLCBbcmlnaHQsIHJlY3QudG9wICsgMV1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICByZWN0UG9seSA9IFtbcmVjdC5yaWdodCAtIDEsIGJvdHRvbV0sIFtyZWN0LnJpZ2h0IC0gMSwgdG9wXSwgW3JlZlJlY3QubGVmdCArIDEsIHRvcF0sIFtyZWZSZWN0LmxlZnQgKyAxLCBib3R0b21dXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIHJlY3RQb2x5ID0gW1tyZWZSZWN0LnJpZ2h0IC0gMSwgYm90dG9tXSwgW3JlZlJlY3QucmlnaHQgLSAxLCB0b3BdLCBbcmVjdC5sZWZ0ICsgMSwgdG9wXSwgW3JlY3QubGVmdCArIDEsIGJvdHRvbV1dO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZ2V0UG9seWdvbihfcmVmMykge1xuICAgICAgICBsZXQgW3gsIHldID0gX3JlZjM7XG4gICAgICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50T25lID0gW2lzRmxvYXRpbmdXaWRlciA/IHggKyBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyB4ICsgYnVmZmVyICogNCA6IHggLSBidWZmZXIgKiA0LCB5ICsgYnVmZmVyICsgMV07XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50VHdvID0gW2lzRmxvYXRpbmdXaWRlciA/IHggLSBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyB4ICsgYnVmZmVyICogNCA6IHggLSBidWZmZXIgKiA0LCB5ICsgYnVmZmVyICsgMV07XG4gICAgICAgICAgICAgIGNvbnN0IGNvbW1vblBvaW50cyA9IFtbcmVjdC5sZWZ0LCBjdXJzb3JMZWF2ZUZyb21SaWdodCA/IHJlY3QuYm90dG9tIC0gYnVmZmVyIDogaXNGbG9hdGluZ1dpZGVyID8gcmVjdC5ib3R0b20gLSBidWZmZXIgOiByZWN0LnRvcF0sIFtyZWN0LnJpZ2h0LCBjdXJzb3JMZWF2ZUZyb21SaWdodCA/IGlzRmxvYXRpbmdXaWRlciA/IHJlY3QuYm90dG9tIC0gYnVmZmVyIDogcmVjdC50b3AgOiByZWN0LmJvdHRvbSAtIGJ1ZmZlcl1dO1xuICAgICAgICAgICAgICByZXR1cm4gW2N1cnNvclBvaW50T25lLCBjdXJzb3JQb2ludFR3bywgLi4uY29tbW9uUG9pbnRzXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQb2ludE9uZSA9IFtpc0Zsb2F0aW5nV2lkZXIgPyB4ICsgYnVmZmVyIC8gMiA6IGN1cnNvckxlYXZlRnJvbVJpZ2h0ID8geCArIGJ1ZmZlciAqIDQgOiB4IC0gYnVmZmVyICogNCwgeSAtIGJ1ZmZlcl07XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50VHdvID0gW2lzRmxvYXRpbmdXaWRlciA/IHggLSBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tUmlnaHQgPyB4ICsgYnVmZmVyICogNCA6IHggLSBidWZmZXIgKiA0LCB5IC0gYnVmZmVyXTtcbiAgICAgICAgICAgICAgY29uc3QgY29tbW9uUG9pbnRzID0gW1tyZWN0LmxlZnQsIGN1cnNvckxlYXZlRnJvbVJpZ2h0ID8gcmVjdC50b3AgKyBidWZmZXIgOiBpc0Zsb2F0aW5nV2lkZXIgPyByZWN0LnRvcCArIGJ1ZmZlciA6IHJlY3QuYm90dG9tXSwgW3JlY3QucmlnaHQsIGN1cnNvckxlYXZlRnJvbVJpZ2h0ID8gaXNGbG9hdGluZ1dpZGVyID8gcmVjdC50b3AgKyBidWZmZXIgOiByZWN0LmJvdHRvbSA6IHJlY3QudG9wICsgYnVmZmVyXV07XG4gICAgICAgICAgICAgIHJldHVybiBbY3Vyc29yUG9pbnRPbmUsIGN1cnNvclBvaW50VHdvLCAuLi5jb21tb25Qb2ludHNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQb2ludE9uZSA9IFt4ICsgYnVmZmVyICsgMSwgaXNGbG9hdGluZ1RhbGxlciA/IHkgKyBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tQm90dG9tID8geSArIGJ1ZmZlciAqIDQgOiB5IC0gYnVmZmVyICogNF07XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvaW50VHdvID0gW3ggKyBidWZmZXIgKyAxLCBpc0Zsb2F0aW5nVGFsbGVyID8geSAtIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyB5ICsgYnVmZmVyICogNCA6IHkgLSBidWZmZXIgKiA0XTtcbiAgICAgICAgICAgICAgY29uc3QgY29tbW9uUG9pbnRzID0gW1tjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyByZWN0LnJpZ2h0IC0gYnVmZmVyIDogaXNGbG9hdGluZ1RhbGxlciA/IHJlY3QucmlnaHQgLSBidWZmZXIgOiByZWN0LmxlZnQsIHJlY3QudG9wXSwgW2N1cnNvckxlYXZlRnJvbUJvdHRvbSA/IGlzRmxvYXRpbmdUYWxsZXIgPyByZWN0LnJpZ2h0IC0gYnVmZmVyIDogcmVjdC5sZWZ0IDogcmVjdC5yaWdodCAtIGJ1ZmZlciwgcmVjdC5ib3R0b21dXTtcbiAgICAgICAgICAgICAgcmV0dXJuIFsuLi5jb21tb25Qb2ludHMsIGN1cnNvclBvaW50T25lLCBjdXJzb3JQb2ludFR3b107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQb2ludE9uZSA9IFt4IC0gYnVmZmVyLCBpc0Zsb2F0aW5nVGFsbGVyID8geSArIGJ1ZmZlciAvIDIgOiBjdXJzb3JMZWF2ZUZyb21Cb3R0b20gPyB5ICsgYnVmZmVyICogNCA6IHkgLSBidWZmZXIgKiA0XTtcbiAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9pbnRUd28gPSBbeCAtIGJ1ZmZlciwgaXNGbG9hdGluZ1RhbGxlciA/IHkgLSBidWZmZXIgLyAyIDogY3Vyc29yTGVhdmVGcm9tQm90dG9tID8geSArIGJ1ZmZlciAqIDQgOiB5IC0gYnVmZmVyICogNF07XG4gICAgICAgICAgICAgIGNvbnN0IGNvbW1vblBvaW50cyA9IFtbY3Vyc29yTGVhdmVGcm9tQm90dG9tID8gcmVjdC5sZWZ0ICsgYnVmZmVyIDogaXNGbG9hdGluZ1RhbGxlciA/IHJlY3QubGVmdCArIGJ1ZmZlciA6IHJlY3QucmlnaHQsIHJlY3QudG9wXSwgW2N1cnNvckxlYXZlRnJvbUJvdHRvbSA/IGlzRmxvYXRpbmdUYWxsZXIgPyByZWN0LmxlZnQgKyBidWZmZXIgOiByZWN0LnJpZ2h0IDogcmVjdC5sZWZ0ICsgYnVmZmVyLCByZWN0LmJvdHRvbV1dO1xuICAgICAgICAgICAgICByZXR1cm4gW2N1cnNvclBvaW50T25lLCBjdXJzb3JQb2ludFR3bywgLi4uY29tbW9uUG9pbnRzXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzUG9pbnRJblBvbHlnb24oW2NsaWVudFgsIGNsaWVudFldLCByZWN0UG9seSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGhhc0xhbmRlZCAmJiAhaXNPdmVyUmVmZXJlbmNlUmVjdCkge1xuICAgICAgICByZXR1cm4gY2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNMZWF2ZSAmJiByZXF1aXJlSW50ZW50KSB7XG4gICAgICAgIGNvbnN0IGN1cnNvclNwZWVkID0gZ2V0Q3Vyc29yU3BlZWQoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICAgIGNvbnN0IGN1cnNvclNwZWVkVGhyZXNob2xkID0gMC4xO1xuICAgICAgICBpZiAoY3Vyc29yU3BlZWQgIT09IG51bGwgJiYgY3Vyc29yU3BlZWQgPCBjdXJzb3JTcGVlZFRocmVzaG9sZCkge1xuICAgICAgICAgIHJldHVybiBjbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWlzUG9pbnRJblBvbHlnb24oW2NsaWVudFgsIGNsaWVudFldLCBnZXRQb2x5Z29uKFt4LCB5XSkpKSB7XG4gICAgICAgIGNsb3NlKCk7XG4gICAgICB9IGVsc2UgaWYgKCFoYXNMYW5kZWQgJiYgcmVxdWlyZUludGVudCkge1xuICAgICAgICB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dChjbG9zZSwgNDApO1xuICAgICAgfVxuICAgIH07XG4gIH07XG4gIGZuLl9fb3B0aW9ucyA9IHtcbiAgICBibG9ja1BvaW50ZXJFdmVudHNcbiAgfTtcbiAgcmV0dXJuIGZuO1xufVxuXG5leHBvcnQgeyBDb21wb3NpdGUsIENvbXBvc2l0ZUl0ZW0sIEZsb2F0aW5nQXJyb3csIEZsb2F0aW5nRGVsYXlHcm91cCwgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nTGlzdCwgRmxvYXRpbmdOb2RlLCBGbG9hdGluZ092ZXJsYXksIEZsb2F0aW5nUG9ydGFsLCBGbG9hdGluZ1RyZWUsIGlubmVyLCBzYWZlUG9seWdvbiwgdXNlQ2xpY2ssIHVzZUNsaWVudFBvaW50LCB1c2VEZWxheUdyb3VwLCB1c2VEZWxheUdyb3VwQ29udGV4dCwgdXNlRGlzbWlzcywgdXNlRmxvYXRpbmcsIHVzZUZsb2F0aW5nTm9kZUlkLCB1c2VGbG9hdGluZ1BhcmVudE5vZGVJZCwgdXNlRmxvYXRpbmdQb3J0YWxOb2RlLCB1c2VGbG9hdGluZ1Jvb3RDb250ZXh0LCB1c2VGbG9hdGluZ1RyZWUsIHVzZUZvY3VzLCB1c2VIb3ZlciwgdXNlSWQsIHVzZUlubmVyT2Zmc2V0LCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3RJdGVtLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlTWVyZ2VSZWZzLCB1c2VSb2xlLCB1c2VUcmFuc2l0aW9uU3RhdHVzLCB1c2VUcmFuc2l0aW9uU3R5bGVzLCB1c2VUeXBlYWhlYWQgfTtcbiIsImltcG9ydCB7IG9mZnNldCwgYXV0b1BsYWNlbWVudCwgZmxpcCwgc2hpZnQsIGFycm93IH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcblxuY29uc3QgZ2V0TWlkZGxld2FyZSA9ICh7XG4gIGFycm93UmVmLFxuICBwbGFjZW1lbnRcbn0pID0+IHtcbiAgY29uc3QgbWlkZGxld2FyZSA9IFtdO1xuICBtaWRkbGV3YXJlLnB1c2gob2Zmc2V0KDgpKTtcbiAgbWlkZGxld2FyZS5wdXNoKHBsYWNlbWVudCA9PT0gXCJhdXRvXCIgPyBhdXRvUGxhY2VtZW50KCkgOiBmbGlwKCkpO1xuICBtaWRkbGV3YXJlLnB1c2goc2hpZnQoeyBwYWRkaW5nOiA4IH0pKTtcbiAgaWYgKGFycm93UmVmPy5jdXJyZW50KSB7XG4gICAgbWlkZGxld2FyZS5wdXNoKGFycm93KHsgZWxlbWVudDogYXJyb3dSZWYuY3VycmVudCB9KSk7XG4gIH1cbiAgcmV0dXJuIG1pZGRsZXdhcmU7XG59O1xuY29uc3QgZ2V0UGxhY2VtZW50ID0gKHsgcGxhY2VtZW50IH0pID0+IHtcbiAgcmV0dXJuIHBsYWNlbWVudCA9PT0gXCJhdXRvXCIgPyB2b2lkIDAgOiBwbGFjZW1lbnQ7XG59O1xuY29uc3QgZ2V0QXJyb3dQbGFjZW1lbnQgPSAoeyBwbGFjZW1lbnQgfSkgPT4ge1xuICByZXR1cm4ge1xuICAgIHRvcDogXCJib3R0b21cIixcbiAgICByaWdodDogXCJsZWZ0XCIsXG4gICAgYm90dG9tOiBcInRvcFwiLFxuICAgIGxlZnQ6IFwicmlnaHRcIlxuICB9W3BsYWNlbWVudC5zcGxpdChcIi1cIilbMF1dO1xufTtcblxuZXhwb3J0IHsgZ2V0QXJyb3dQbGFjZW1lbnQsIGdldE1pZGRsZXdhcmUsIGdldFBsYWNlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5tanMubWFwXG4iLCJpbXBvcnQgeyB1c2VGbG9hdGluZywgYXV0b1VwZGF0ZSwgdXNlSW50ZXJhY3Rpb25zLCB1c2VDbGljaywgdXNlSG92ZXIsIHNhZmVQb2x5Z29uLCB1c2VEaXNtaXNzLCB1c2VSb2xlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IGdldFBsYWNlbWVudCwgZ2V0TWlkZGxld2FyZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvRmxvYXRpbmcvaGVscGVycy5tanMnO1xuXG5jb25zdCB1c2VCYXNlRkxvYXRpbmcgPSAoe1xuICBvcGVuLFxuICBhcnJvd1JlZixcbiAgcGxhY2VtZW50ID0gXCJ0b3BcIixcbiAgc2V0T3BlblxufSkgPT4ge1xuICByZXR1cm4gdXNlRmxvYXRpbmcoe1xuICAgIHBsYWNlbWVudDogZ2V0UGxhY2VtZW50KHsgcGxhY2VtZW50IH0pLFxuICAgIG9wZW4sXG4gICAgb25PcGVuQ2hhbmdlOiBzZXRPcGVuLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIG1pZGRsZXdhcmU6IGdldE1pZGRsZXdhcmUoeyBwbGFjZW1lbnQsIGFycm93UmVmIH0pXG4gIH0pO1xufTtcbmNvbnN0IHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zID0gKHtcbiAgY29udGV4dCxcbiAgdHJpZ2dlcixcbiAgcm9sZSA9IFwidG9vbHRpcFwiLFxuICBpbnRlcmFjdGlvbnMgPSBbXVxufSkgPT4ge1xuICByZXR1cm4gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICB1c2VDbGljayhjb250ZXh0LCB7IGVuYWJsZWQ6IHRyaWdnZXIgPT09IFwiY2xpY2tcIiB9KSxcbiAgICB1c2VIb3Zlcihjb250ZXh0LCB7XG4gICAgICBlbmFibGVkOiB0cmlnZ2VyID09PSBcImhvdmVyXCIsXG4gICAgICBoYW5kbGVDbG9zZTogc2FmZVBvbHlnb24oKVxuICAgIH0pLFxuICAgIHVzZURpc21pc3MoY29udGV4dCksXG4gICAgdXNlUm9sZShjb250ZXh0LCB7IHJvbGUgfSksXG4gICAgLi4uaW50ZXJhY3Rpb25zXG4gIF0pO1xufTtcblxuZXhwb3J0IHsgdXNlQmFzZUZMb2F0aW5nLCB1c2VGbG9hdGluZ0ludGVyYWN0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlLWZsb2F0aW5nLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VGb2N1cywgYXV0b1VwZGF0ZSB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgdXNlQmFzZUZMb2F0aW5nLCB1c2VGbG9hdGluZ0ludGVyYWN0aW9ucyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZS1mbG9hdGluZy5tanMnO1xuaW1wb3J0IHsgZ2V0QXJyb3dQbGFjZW1lbnQgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcblxuY29uc3QgRmxvYXRpbmcgPSAoe1xuICBhbmltYXRpb24gPSBcImR1cmF0aW9uLTMwMFwiLFxuICBhcnJvdyA9IHRydWUsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRlbnQsXG4gIHBsYWNlbWVudCA9IFwidG9wXCIsXG4gIHN0eWxlID0gXCJkYXJrXCIsXG4gIHRoZW1lLFxuICB0cmlnZ2VyID0gXCJob3ZlclwiLFxuICBtaW5XaWR0aCxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgYXJyb3dSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZmxvYXRpbmdQcm9wZXJ0aWVzID0gdXNlQmFzZUZMb2F0aW5nKHtcbiAgICBvcGVuLFxuICAgIHBsYWNlbWVudCxcbiAgICBhcnJvd1JlZixcbiAgICBzZXRPcGVuXG4gIH0pO1xuICBjb25zdCB7XG4gICAgY29udGV4dCxcbiAgICBtaWRkbGV3YXJlRGF0YTogeyBhcnJvdzogeyB4OiBhcnJvd1gsIHk6IGFycm93WSB9ID0ge30gfSxcbiAgICByZWZzLFxuICAgIHN0cmF0ZWd5LFxuICAgIHVwZGF0ZSxcbiAgICB4LFxuICAgIHlcbiAgfSA9IGZsb2F0aW5nUHJvcGVydGllcztcbiAgY29uc3QgZm9jdXMgPSB1c2VGb2N1cyhjb250ZXh0KTtcbiAgY29uc3QgeyBnZXRGbG9hdGluZ1Byb3BzLCBnZXRSZWZlcmVuY2VQcm9wcyB9ID0gdXNlRmxvYXRpbmdJbnRlcmFjdGlvbnMoe1xuICAgIGNvbnRleHQsXG4gICAgcm9sZTogXCJ0b29sdGlwXCIsXG4gICAgdHJpZ2dlcixcbiAgICBpbnRlcmFjdGlvbnM6IFtmb2N1c11cbiAgfSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZnMucmVmZXJlbmNlLmN1cnJlbnQgJiYgcmVmcy5mbG9hdGluZy5jdXJyZW50ICYmIG9wZW4pIHtcbiAgICAgIHJldHVybiBhdXRvVXBkYXRlKHJlZnMucmVmZXJlbmNlLmN1cnJlbnQsIHJlZnMuZmxvYXRpbmcuY3VycmVudCwgdXBkYXRlKTtcbiAgICB9XG4gIH0sIFtvcGVuLCByZWZzLmZsb2F0aW5nLCByZWZzLnJlZmVyZW5jZSwgdXBkYXRlXSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICByZWY6IHJlZnMuc2V0UmVmZXJlbmNlLFxuICAgICAgICBjbGFzc05hbWU6IHRoZW1lLnRhcmdldCxcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXRvb2x0aXAtdGFyZ2V0XCIsXG4gICAgICAgIC4uLmdldFJlZmVyZW5jZVByb3BzKCksXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICB9XG4gICAgKSxcbiAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgIFwiZGl2XCIsXG4gICAgICB7XG4gICAgICAgIHJlZjogcmVmcy5zZXRGbG9hdGluZyxcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXRvb2x0aXBcIixcbiAgICAgICAgLi4uZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUuYmFzZSxcbiAgICAgICAgICAgIGFuaW1hdGlvbiAmJiBgJHt0aGVtZS5hbmltYXRpb259ICR7YW5pbWF0aW9ufWAsXG4gICAgICAgICAgICAhb3BlbiAmJiB0aGVtZS5oaWRkZW4sXG4gICAgICAgICAgICB0aGVtZS5zdHlsZVtzdHlsZV0sXG4gICAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgICApLFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICAgICAgICB0b3A6IHkgPz8gXCIgXCIsXG4gICAgICAgICAgICBsZWZ0OiB4ID8/IFwiIFwiLFxuICAgICAgICAgICAgbWluV2lkdGhcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbnRlbnQsIGNoaWxkcmVuOiBjb250ZW50IH0pLFxuICAgICAgICAgIGFycm93ICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgdGhlbWUuYXJyb3cuYmFzZSxcbiAgICAgICAgICAgICAgICBzdHlsZSA9PT0gXCJkYXJrXCIgJiYgdGhlbWUuYXJyb3cuc3R5bGUuZGFyayxcbiAgICAgICAgICAgICAgICBzdHlsZSA9PT0gXCJsaWdodFwiICYmIHRoZW1lLmFycm93LnN0eWxlLmxpZ2h0LFxuICAgICAgICAgICAgICAgIHN0eWxlID09PSBcImF1dG9cIiAmJiB0aGVtZS5hcnJvdy5zdHlsZS5hdXRvXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS10b29sdGlwLWFycm93XCIsXG4gICAgICAgICAgICAgIHJlZjogYXJyb3dSZWYsXG4gICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgdG9wOiBhcnJvd1kgPz8gXCIgXCIsXG4gICAgICAgICAgICAgICAgbGVmdDogYXJyb3dYID8/IFwiIFwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIiBcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiIFwiLFxuICAgICAgICAgICAgICAgIFtnZXRBcnJvd1BsYWNlbWVudCh7IHBsYWNlbWVudDogZmxvYXRpbmdQcm9wZXJ0aWVzLnBsYWNlbWVudCB9KV06IHRoZW1lLmFycm93LnBsYWNlbWVudFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjaGlsZHJlbjogXCJcXHhBMFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgKVxuICBdIH0pO1xufTtcblxuZXhwb3J0IHsgRmxvYXRpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZsb2F0aW5nLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgRmxvYXRpbmcgfSBmcm9tICcuLi9GbG9hdGluZy9GbG9hdGluZy5tanMnO1xuXG5jb25zdCBUb29sdGlwID0gKHtcbiAgYW5pbWF0aW9uID0gXCJkdXJhdGlvbi0zMDBcIixcbiAgYXJyb3cgPSB0cnVlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250ZW50LFxuICBwbGFjZW1lbnQgPSBcInRvcFwiLFxuICBzdHlsZSA9IFwiZGFya1wiLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgdHJpZ2dlciA9IFwiaG92ZXJcIixcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS50b29sdGlwLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIEZsb2F0aW5nLFxuICAgIHtcbiAgICAgIGFuaW1hdGlvbixcbiAgICAgIGFycm93LFxuICAgICAgY29udGVudCxcbiAgICAgIHBsYWNlbWVudCxcbiAgICAgIHN0eWxlLFxuICAgICAgdGhlbWUsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKTtcbn07XG5Ub29sdGlwLmRpc3BsYXlOYW1lID0gXCJUb29sdGlwXCI7XG5cbmV4cG9ydCB7IFRvb2x0aXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRvb2x0aXAubWpzLm1hcFxuIiwiLy8gVEhJUyBGSUxFIElTIEFVVE8gR0VORVJBVEVEXG5pbXBvcnQgeyBHZW5JY29uIH0gZnJvbSAnLi4vbGliL2luZGV4Lm1qcyc7XG5leHBvcnQgZnVuY3Rpb24gRmE0Mkdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NlY0MTZDMzQxLjAxMSA0MTYgMzYxLjgxOCA0MTEuODYxIDM4MS4yMyA0MDMuODIxQzQwMC42NDEgMzk1Ljc4IDQxOC4yOCAzODMuOTk1IDQzMy4xMzggMzY5LjEzOEM0NDcuOTk1IDM1NC4yOCA0NTkuNzggMzM2LjY0MSA0NjcuODIxIDMxNy4yM0M0NzUuODYxIDI5Ny44MTggNDgwIDI3Ny4wMTEgNDgwIDI1NkM0ODAgMjM0Ljk4OSA0NzUuODYxIDIxNC4xODIgNDY3LjgyMSAxOTQuNzcxQzQ1OS43OCAxNzUuMzU5IDQ0Ny45OTUgMTU3LjcyIDQzMy4xMzggMTQyLjg2M0M0MTguMjggMTI4LjAwNSA0MDAuNjQxIDExNi4yMiAzODEuMjMgMTA4LjE3OUMzNjEuODE4IDEwMC4xMzkgMzQxLjAxMSA5NiAzMjAgOTZaTTAgMjU2TDE2MC4wMDIgNDE2TDMyMC4wMDMgMjU2TDE2MC4wMDIgOTZMMCAyNTZaTTQ4MCAyNTZDNDgwIDI3Ny4wMTEgNDg0LjEzOCAyOTcuODE4IDQ5Mi4xNzkgMzE3LjIzQzUwMC4yMTkgMzM2LjY0MyA1MTIuMDA1IDM1NC4yOCA1MjYuODYyIDM2OS4xMzhDNTQxLjcyIDM4My45OTUgNTU5LjM1NyAzOTUuNzgxIDU3OC43NyA0MDMuODIxQzU5OC4xODIgNDExLjg2MiA2MTguOTg5IDQxNiA2NDAgNDE2Vjk2QzU5Ny41NjUgOTYgNTU2Ljg2OSAxMTIuODU4IDUyNi44NjIgMTQyLjg2M0M0OTYuODU3IDE3Mi44NjkgNDgwIDIxMy41NjUgNDgwIDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhNTAwUHggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAzLjMgMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJoLjN2LTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVzLTY4LjggMTMuOC05My41IDM4LjVjLS4zLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41LjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOFYyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41aDI0MS4zYzguMyAwIDguMyAxMS42IDguMyAxNS4xIDAgMy45IDAgMTUuMS04LjMgMTUuMUgxMzAuM3YxMzIuOWguM2MxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6bTYzLjMtMjYwLjhjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjZDMzA2IDU2LjYgMzg0IDE0NC41IDM5MC42IDE0NC41YzQuOCAwIDIyLjgtMTUuMyAxNC4zLTIyLjgtOTMuMi04OS0yMzQuNS01Ny0yMzguMy0zOC4yek0zOTMgNDE0LjdDMjgzIDUyNC42IDk0IDQ3NS41IDYxIDMxMC41YzAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0yMTMuNiAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42LjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJMMjY1LjYgMjg0bDE4LjItMTguMmM2LjMtNi44LTEwLjEtMjEuOC0xNi4yLTE1LjdMMjQ5LjcgMjY4Yy0xOC42LTE4LjgtMTguNC0xOS41LTIxLjUtMTkuNS01IDAtMTggMTEuNy0xMi40IDE3LjNMMjM0IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFjY2Vzc2libGVJY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy45IDI1NS44TDQxMSA0MTMuMWMtMy4zIDQwLjctNjMuOSAzNS4xLTYwLjYtNC45bDEwLTEyMi41LTQxLjEgMi4zYzEwLjEgMjAuNyAxNS44IDQzLjkgMTUuOCA2OC41IDAgNDEuMi0xNi4xIDc4LjctNDIuMyAxMDYuNWwtMzkuMy0zOS4zYzU3LjktNjMuNyAxMy4xLTE2Ny4yLTc0LTE2Ny4yLTI1LjkgMC00OS41IDkuOS02Ny4yIDI2TDczIDI0My4yYzIyLTIwLjcgNTAuMS0zNS4xIDgxLjQtNDAuMmw3NS4zLTg1LjctNDIuNi0yNC44LTUxLjYgNDZjLTMwIDI2LjgtNzAuNi0xOC41LTQwLjUtNDUuNGw2OC02MC43YzkuOC04LjggMjQuMS0xMC4yIDM1LjUtMy42IDAgMCAxMzkuMyA4MC45IDEzOS41IDgxLjEgMTYuMiAxMC4xIDIwLjcgMzYgNi4xIDUyLjZMMjg1LjcgMjI5bDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43em0tNjQuOS0xNTRjMjguMSAwIDUwLjktMjIuOCA1MC45LTUwLjlDNDA5LjkgMjIuOCAzODcuMSAwIDM1OSAwYy0yOC4xIDAtNTAuOSAyMi44LTUwLjkgNTAuOSAwIDI4LjEgMjIuOCA1MC45IDUwLjkgNTAuOXpNMTc5LjYgNDU2LjVjLTgwLjYgMC0xMjcuNC05MC42LTgyLjctMTU2LjFsLTM5LjctMzkuN0MzNi40IDI4NyAyNCAzMjAuMyAyNCAzNTYuNGMwIDEzMC43IDE1MC43IDIwMS40IDI1MS40IDEyMi41bC0zOS43LTM5LjdjLTE2IDEwLjktMzUuMyAxNy4zLTU2LjEgMTcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNjdXNvZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIyLjEgMjUydi0xbC01MS4yLTY1LjhzLTEyIDEuNi0yNSAxNS4xYy05IDkuMy0yNDIuMSAyMzkuMS0yNDMuNCAyNDAuOS03IDEwIDEuNiA2LjggMTUuNyAxLjcuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNi41LS42LS4xLS4xLjYtLjYtLjQtNS4xLS44LTI2LjItMS0yNy43LS42LTUuMiAyLjItNi45IDctOC45bDkyLjYtMzMuOGMuNi0uOCA4OC41LTgxLjcgOTAuMi04My4zem0xNjAuMSAxMjAuMWMxMy4zIDE2LjEgMjAuNyAxMy4zIDMwLjggOS4zIDMuMi0xLjIgMTE1LjQtNDcuNiAxMTcuOC00OC45IDgtNC4zLTEuNy0xNi43LTcuMi0yMy40LTIuMS0yLjUtMjA1LjEtMjQ1LjYtMjA3LjItMjQ4LjMtOS43LTEyLjItMTQuMy0xMi45LTM4LjQtMTIuOC0xMC4yIDAtMTA2LjguNS0xMTYuNS42LTE5LjIuMS0zMi45LS4zLTE5LjIgMTYuOUMyNTAgNzUgNDc2LjUgMzY1LjIgNDgyLjIgMzcyLjF6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xLjItOS42LjgtMTQuNCAyLjktNC45IDIuMS0xNDUuMiA1Mi44LTE1MC4yIDU0LjctNS4xIDItMTEuNCAzLjYtMTEuMSA3LjYuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcuOCAzMDAuOSA2Ny42IDMwOCA2OS4xIDE1LjYgMy4zIDM4LjUgMTAuNSA1My42IDEuNyAyLjEtMS4yIDEyMy44LTc2LjQgMTI1LjgtNzcuOCA1LjQtNCA0LjMtNi44LTEuNy04LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTY3LjVsNjQuOSA5OC44SDE4My4xbDY0LjktOTguOHpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTk5LjggODIuN0wyNDggMTE1LjUgOTkuOCAzMzguN2gzMC40bDMzLjYtNTEuN2gxNjguNmwzMy42IDUxLjdoMzAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWR2ZXJzYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgyLjEgMzJIMjguN0M1LjggMzIgMCAzNy45IDAgNjAuOXYzOTAuMkMwIDQ3NC40IDUuOCA0ODAgMjguNyA0ODBoNDUzLjRjMjQuNCAwIDI5LjktNS4yIDI5LjktMjkuN1Y2Mi4yYzAtMjQuNi01LjQtMzAuMi0yOS45LTMwLjJ6TTE3OC40IDIyMC4zYy0yNy41LTIwLjItNzIuMS04LjctODQuMiAyMy40LTQuMyAxMS4xLTkuMyA5LjUtMTcuNSA4LjMtOS43LTEuNS0xNy4yLTMuMi0yMi41LTUuNS0yOC44LTExLjQgOC42LTU1LjMgMjQuOS02NC4zIDQxLjEtMjEuNCA4My40LTIyLjIgMTI1LjMtNC44IDQwLjkgMTYuOCAzNC41IDU5LjIgMzQuNSAxMjguNSAyLjcgMjUuOC00LjMgNTguMyA5LjMgODguOCAxLjkgNC40LjQgNy45LTIuNyAxMC43LTguNCA2LjctMzkuMyAyLjItNDYuNi03LjQtMS45LTIuMi0xLjgtMy42LTMuOS02LjItMy42LTMuOS03LjMtMi4yLTExLjkgMS01Ny40IDM2LjQtMTQwLjMgMjEuNC0xNDctNDMuMy0zLjEtMjkuMyAxMi40LTU3LjEgMzkuNi03MSAzOC4yLTE5LjUgMTEyLjItMTEuOCAxMTQtMzAuOSAxLjEtMTAuMi0xLjktMjAuMS0xMS4zLTI3LjN6bTI4Ni43IDIyMmMwIDE1LjEtMTEuMSA5LjktMTcuOCA5LjlINTIuNGMtNy40IDAtMTguMiA0LjgtMTcuOC0xMC43LjQtMTMuOSAxMC41LTkuMSAxNy4xLTkuMSAxMzIuMy0uNCAyNjQuNS0uNCAzOTYuOCAwIDYuOCAwIDE2LjYtNC40IDE2LjYgOS45em0zLjgtMzQwLjV2MjkxYzAgNS43LS43IDEzLjktOC4xIDEzLjktMTIuNC0uNC0yNy41IDcuMS0zNi4xLTUuNi01LjgtOC43LTcuOC00LTEyLjQtMS4yLTUzLjQgMjkuNy0xMjguMSA3LjEtMTQ0LjQtODUuMi02LjEtMzMuNC0uNy02Ny4xIDE1LjctMTAwIDExLjgtMjMuOSA1Ni45LTc2LjEgMTM2LjEtMzAuNXYtNzFjMC0yNi4yLS4xLTI2LjIgMjYtMjYuMiAzLjEgMCA2LjYuNCA5LjcgMCAxMC4xLS44IDEzLjYgNC40IDEzLjYgMTQuMy0uMS4yLS4xLjMtLjEuNXptLTUxLjUgMjMyLjNjLTE5LjUgNDcuNi03Mi45IDQzLjMtOTAgNS4yLTE1LjEtMzMuMy0xNS41LTY4LjIuNC0xMDEuNSAxNi4zLTM0LjEgNTkuNy0zNS43IDgxLjUtNC44IDIwLjYgMjguOCAxNC45IDg0LjYgOC4xIDEwMS4xem0tMjk0LjggMzUuM2MtNy41LTEuMy0zMy0zLjMtMzMuNy0yNy44LS40LTEzLjkgNy44LTIzIDE5LjgtMjUuOCAyNC40LTUuOSA0OS4zLTkuOSA3My43LTE0LjcgOC45LTIgNy40IDQuNCA3LjggOS41IDEuNCAzMy0yNi4xIDU5LjItNjcuNiA1OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZmZpbGlhdGV0aGVtZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTkuNyAyMzcuNEMxMDguNCAzMDguMyA0My4xIDM0OC4yIDE0IDMyNi42LTE1LjIgMzA0LjkgMi44IDIzMCA1NC4yIDE1OS4xYzUxLjMtNzAuOSAxMTYuNi0xMTAuOCAxNDUuNy04OS4yIDI5LjEgMjEuNiAxMS4xIDk2LjYtNDAuMiAxNjcuNXptMzUxLjItNTcuM0M0MzcuMSAzMDMuNSAzMTkgMzY3LjggMjQ2LjQgMzIzLjdjLTI1LTE1LjItNDEuMy00MS4yLTQ5LTczLjgtMzMuNiA2NC44LTkyLjggMTEzLjgtMTY0LjEgMTMzLjIgNDkuOCA1OS4zIDEyNC4xIDk2LjkgMjA3IDk2LjkgMTUwIDAgMjcxLjYtMTIzLjEgMjcxLjYtMjc0LjkuMS04LjUtLjMtMTYuOC0xLTI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBaXJibmIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDM3My4xMmMtMjUuMjQtMzEuNjctNDAuMDgtNTkuNDMtNDUtODMuMTgtMjIuNTUtODggMTEyLjYxLTg4IDkwLjA2IDAtNS40NSAyNC4yNS0yMC4yOSA1Mi00NSA4My4xOHptMTM4LjE1IDczLjIzYy00Mi4wNiAxOC4zMS04My42Ny0xMC44OC0xMTkuMy01MC40NyAxMDMuOS0xMzAuMDcgNDYuMTEtMjAwLTE4Ljg1LTIwMC01NC45MiAwLTg1LjE2IDQ2LjUxLTczLjI4IDEwMC41IDYuOTMgMjkuMTkgMjUuMjMgNjIuMzkgNTQuNDMgOTkuNS0zMi41MyAzNi4wNS02MC41NSA1Mi42OS04NS4xNSA1NC45Mi01MCA3LjQzLTg5LjExLTQxLjA2LTcxLjMtOTEuMDkgMTUuMS0zOS4xNiAxMTEuNzItMjMxLjE4IDExNS44Ny0yNDEuNTYgMTUuNzUtMzAuMDcgMjUuNTYtNTcuNCA1OS4zOC01Ny40IDMyLjM0IDAgNDMuNCAyNS45NCA2MC4zNyA1OS44NyAzNiA3MC42MiA4OS4zNSAxNzcuNDggMTE0Ljg0IDIzOS4wOSAxMy4xNyAzMy4wNy0xLjM3IDcxLjI5LTM3LjAxIDg2LjY0em00Ny0xMzYuMTJDMjgwLjI3IDM1LjkzIDI3My4xMyAzMiAyMjQgMzJjLTQ1LjUyIDAtNjQuODcgMzEuNjctODQuNjYgNzIuNzlDMzMuMTggMzE3LjEgMjIuODkgMzQ3LjE5IDIyIDM0OS44MS0zLjIyIDQxOS4xNCA0OC43NCA0ODAgMTExLjYzIDQ4MGMyMS43MSAwIDYwLjYxLTYuMDYgMTEyLjM3LTYyLjQgNTguNjggNjMuNzggMTAxLjI2IDYyLjQgMTEyLjM3IDYyLjQgNjIuODkuMDUgMTE0Ljg1LTYwLjg2IDg5LjYxLTEzMC4xOS4wMi0zLjg5LTE2LjgyLTM4LjktMTYuODItMzkuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsZ29saWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBDMTE2LjEgMCAyIDExMi43IDAgMjUyLjFDLTIgMzkzLjYgMTEyLjkgNTEwLjggMjU0LjUgNTExLjZjNDMuNyAuMyA4NS45LTEwLjQgMTIzLjMtMzAuN2MzLjYtMiA0LjItNyAxLjEtOS43bC0yNC0yMS4yYy00LjktNC4zLTExLjgtNS41LTE3LjgtM2MtMjYuMSAxMS4xLTU0LjUgMTYuOC04My43IDE2LjRDMTM5IDQ2MS45IDQ2LjUgMzY2LjggNDguMyAyNTIuNEM1MC4xIDEzOS41IDE0Mi42IDQ4LjIgMjU2IDQ4LjJINDYzLjdWNDE3LjJMMzQ1LjkgMzEyLjVjLTMuOC0zLjQtOS43LTIuNy0xMi43IDEuM2MtMTguOSAyNS00OS43IDQwLjYtODMuOSAzOC4yYy00Ny41LTMuMy04NS45LTQxLjUtODkuNS04OC45Yy00LjItNTYuNiA0MC42LTEwMy45IDk2LjMtMTAzLjljNTAuNCAwIDkxLjkgMzguOCA5Ni4yIDg4Yy40IDQuNCAyLjQgOC41IDUuNyAxMS40bDMwLjcgMjcuMmMzLjUgMy4xIDkgMS4yIDkuOS0zLjRjMi4yLTExLjggMy0yNC4yIDIuMS0zNi44Yy00LjktNzItNjMuMy0xMzAtMTM1LjQtMTM0LjRjLTgyLjctNS4xLTE1MS44IDU5LjUtMTU0IDE0MC42Yy0yLjEgNzguOSA2Mi42IDE0NyAxNDEuNiAxNDguN2MzMyAuNyA2My42LTkuNiA4OC4zLTI3LjZMNDk1IDUwOS40YzYuNiA1LjggMTcgMS4yIDE3LTcuN1Y5LjdjMC01LjQtNC40LTkuNy05LjctOS43SDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpcGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny43NCAzMkg3MC4yNkMzMS40MSAzMiAwIDYzLjQxIDAgMTAyLjI2djMwNy40OEMwIDQ0OC41OSAzMS40MSA0ODAgNzAuMjYgNDgwaDMwNy40OGMzOC41MiAwIDY5Ljc2LTMxLjA4IDcwLjI2LTY5LjYtNDUuOTYtMjUuNjItMTEwLjU5LTYwLjM0LTE3MS42LTg4LjQ0LTMyLjA3IDQzLjk3LTg0LjE0IDgxLTE0OC42MiA4MS03MC41OSAwLTkzLjczLTQ1LjMtOTcuMDQtNzYuMzctMy45Ny0zOS4wMSAxNC44OC04MS41IDk5LjUyLTgxLjUgMzUuMzggMCA3OS4zNSAxMC4yNSAxMjcuMTMgMjQuOTYgMTYuNTMtMzAuMDkgMjYuNDUtNjAuMzQgMjYuNDUtNjAuMzRoLTE3OC4ydi0xNi43aDkyLjA4di0zMS4yNEg4OC4yOHYtMTkuMDFoMTA5LjQ0VjkyLjM0aDUwLjkydjUwLjQyaDEwOS40NHYxOS4wMUgyNDguNjN2MzEuMjRoODguNzdzLTE1LjIxIDQ2LjYyLTM4LjM1IDkwLjkyYzQ4LjkzIDE2LjcgMTAwLjAxIDM2LjA0IDE0OC42MiA1Mi43NFYxMDIuMjZDNDQ3LjgzIDYzLjU3IDQxNi40MyAzMiAzNzcuNzQgMzJ6TTQ3LjI4IDMyMi45NWMuOTkgMjAuMTcgMTAuMjUgNTMuNzMgNjkuOTMgNTMuNzMgNTIuMDcgMCA5Mi41OC0zOS42OCAxMTcuODctNzIuOS00NC42My0xOC42OC04NC40OC0zMS40MS0xMDkuNDQtMzEuNDEtNjcuNDUgMC03OS4zNSAzMy4wNi03OC4zNiA1MC41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1hem9uUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDMyNS4zYzIuMy00LjIgNS4yLTQuOSA5LjctMi41IDEwLjQgNS42IDIwLjYgMTEuNCAzMS4yIDE2LjdhNTk1Ljg4IDU5NS44OCAwIDAgMCAxMjcuNCA0Ni4zIDYxNi42MSA2MTYuNjEgMCAwIDAgNjMuMiAxMS44IDYwMy4zMyA2MDMuMzMgMCAwIDAgOTUgNS4yYzE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjhhNjAzLjY2IDYwMy42NiAwIDAgMCAxNjMuMy00Mi44YzIuOS0xLjIgNS45LTIgOS4xLTEuMiA2LjcgMS44IDkgOSA0LjEgMTMuOWE3MCA3MCAwIDAgMS05LjYgNy40Yy0zMC43IDIxLjEtNjQuMiAzNi40LTk5LjYgNDcuOWE0NzMuMzEgNDczLjMxIDAgMCAxLTc1LjEgMTcuNiA0MzEgNDMxIDAgMCAxLTUzLjIgNC44IDIxLjMgMjEuMyAwIDAgMC0yLjUuM0gzMDhhMjEuMyAyMS4zIDAgMCAwLTIuNS0uM2MtMy42LS4yLTcuMi0uMy0xMC43LS40YTQyNi4zIDQyNi4zIDAgMCAxLTUwLjQtNS4zQTQ0OC40IDQ0OC40IDAgMCAxIDE2NCA0MjBhNDQzLjMzIDQ0My4zMyAwIDAgMS0xNDUuNi04N2MtMS44LTEuNi0zLTMuOC00LjQtNS43ek0xNzIgNjUuMWwtNC4zLjZhODAuOTIgODAuOTIgMCAwIDAtMzggMTUuMWMtMi40IDEuNy00LjYgMy41LTcuMSA1LjRhNC4yOSA0LjI5IDAgMCAxLS40LTEuNGMtLjQtMi43LS44LTUuNS0xLjMtOC4yLS43LTQuNi0zLTYuNi03LjYtNi42aC0xMS41Yy02LjkgMC04LjIgMS4zLTguMiA4LjJ2MjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xLjEgMjEuMSAwIDIuOSAwIDQuNy0yIDUtNSAuMS0xIC4xLTIgLjEtM3YtNzIuNGMxLjEuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEuNS0xNy4xLTEuMi0zMy45LTguMS00OS44LTguNS0xOS42LTIyLjYtMzIuNS00My45LTM2LjktMy4yLS43LTYuNS0xLTkuOC0xLjUtMi44LS4xLTUuNS0uMS04LjMtLjF6TTEyNC42IDEwN2EzLjQ4IDMuNDggMCAwIDEgMS43LTMuM2MxMy43LTkuNSAyOC44LTE0LjUgNDUuNi0xMy4yIDE0LjkgMS4xIDI3LjEgOC40IDMzLjUgMjUuOSAzLjkgMTAuNyA0LjkgMjEuOCA0LjkgMzMgMCAxMC40LS44IDIwLjYtNCAzMC42LTYuOCAyMS4zLTIyLjQgMjkuNC00Mi42IDI4LjUtMTQtLjYtMjYuMi02LTM3LjQtMTMuOWEzLjU3IDMuNTcgMCAwIDEtMS43LTMuM2MuMS0xNC4xIDAtMjguMSAwLTQyLjJzLjEtMjggMC00Mi4xem0yMDUuNy00MS45Yy0xIC4xLTIgLjMtMi45LjRhMTQ4IDE0OCAwIDAgMC0yOC45IDQuMWMtNi4xIDEuNi0xMiAzLjgtMTcuOSA1LjgtMy42IDEuMi01LjQgMy44LTUuMyA3LjcuMSAzLjMtLjEgNi42IDAgOS45LjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40LjMgOC4zLjIgMTYuNi4zIDI0LjlhNy44NCA3Ljg0IDAgMCAxLS4yIDEuNGMtLjUtLjEtLjkgMC0xLjMtLjFhMTgwLjU2IDE4MC41NiAwIDAgMC0zMi00LjljLTExLjMtLjYtMjIuNS4xLTMzLjMgMy45LTEyLjkgNC41LTIzLjMgMTIuMy0yOS40IDI0LjktNC43IDkuOC01LjQgMjAuMi0zLjkgMzAuNyAyIDE0IDkgMjQuOCAyMS40IDMxLjcgMTEuOSA2LjYgMjQuOCA3LjQgMzcuOSA1LjQgMTUuMS0yLjMgMjguNS04LjcgNDAuMy0xOC40YTcuMzYgNy4zNiAwIDAgMSAxLjYtMS4xYy42IDMuOCAxLjEgNy40IDEuOCAxMSAuNiAzLjEgMi41IDUuMSA1LjQgNS4yIDUuNC4xIDEwLjkuMSAxNi4zIDBhNC44NCA0Ljg0IDAgMCAwIDQuOC00LjcgMjYuMiAyNi4yIDAgMCAwIC4xLTIuOHYtMTA2YTgwIDgwIDAgMCAwLS45LTEyLjljLTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45LjEtNy45LjEtMTEuOS4xem0zNSAxMjcuN2EzLjMzIDMuMzMgMCAwIDEtMS41IDNjLTExLjIgOC4xLTIzLjUgMTMuNS0zNy40IDE0LjktNS43LjYtMTEuNC40LTE2LjgtMS44YTIwLjA4IDIwLjA4IDAgMCAxLTEyLjQtMTMuMyAzMi45IDMyLjkgMCAwIDEtLjEtMTkuNGMyLjUtOC4zIDguNC0xMyAxNi40LTE1LjZhNjEuMzMgNjEuMzMgMCAwIDEgMjQuOC0yLjJjOC40LjcgMTYuNiAyLjMgMjUgMy40IDEuNi4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6bTI1OS45IDEyOS40Yy0xLTUtNC44LTYuOS05LjEtOC4zYTg4LjQyIDg4LjQyIDAgMCAwLTIxLTMuOSAxNDcuMzIgMTQ3LjMyIDAgMCAwLTM5LjIgMS45Yy0xNC4zIDIuNy0yNy45IDcuMy00MCAxNS42YTEzLjc1IDEzLjc1IDAgMCAwLTMuNyAzLjUgNS4xMSA1LjExIDAgMCAwLS41IDRjLjQgMS41IDIuMSAxLjkgMy42IDEuOGExNi4yIDE2LjIgMCAwIDAgMi4yLS4xYzcuOC0uOCAxNS41LTEuNyAyMy4zLTIuNSAxMS40LTEuMSAyMi45LTEuOCAzNC4zLS45YTcxLjY0IDcxLjY0IDAgMCAxIDE0LjQgMi43YzUuMSAxLjQgNy40IDUuMiA3LjYgMTAuNC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjFhMTcuNiAxNy42IDAgMCAwLTEgM2MtLjUgMi45IDEuMiA0LjggNC4xIDQuMWExMC41NiAxMC41NiAwIDAgMCA0LjgtMi41IDE0NS45MSAxNDUuOTEgMCAwIDAgMTIuNy0xMy40YzEyLjgtMTYuNCAyMC4zLTM1LjMgMjQuNy01NS42LjgtMy42IDEuNC03LjMgMi4xLTEwLjl2LTE3LjN6TTQ5My4xIDE5OXEtMTkuMzUtNTMuNTUtMzguNy0xMDcuMmMtMi01LjctNC4yLTExLjMtNi4zLTE2LjktMS4xLTIuOS0zLjItNC44LTYuNC00LjgtNy42LS4xLTE1LjItLjItMjIuOS0uMS0yLjUgMC0zLjcgMi0zLjIgNC41YTQzLjEgNDMuMSAwIDAgMCAxLjkgNi4xcTI5LjQgNzIuNzUgNTkuMSAxNDUuNWMxLjcgNC4xIDIuMSA3LjYuMiAxMS44LTMuMyA3LjMtNS45IDE1LTkuMyAyMi4zLTMgNi41LTggMTEuNC0xNS4yIDEzLjNhNDIuMTMgNDIuMTMgMCAwIDEtMTUuNCAxLjFjLTIuNS0uMi01LS44LTcuNS0xLTMuNC0uMi01LjEgMS4zLTUuMiA0LjhxLS4xNSA1IDAgOS45Yy4xIDUuNSAyIDggNy40IDguOWExMDguMTggMTA4LjE4IDAgMCAwIDE2LjkgMmMxNy4xLjQgMzAuNy02LjUgMzkuNS0yMS40YTEzMS42MyAxMzEuNjMgMCAwIDAgOS4yLTE4LjRxMzUuNTUtODkuNyA3MC42LTE3OS42YTI2LjYyIDI2LjYyIDAgMCAwIDEuNi01LjVjLjQtMi44LS45LTQuNC0zLjctNC40LTYuNi0uMS0xMy4zIDAtMTkuOSAwYTcuNTQgNy41NCAwIDAgMC03LjcgNS4yYy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1hem9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ny4yIDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2UzM0MSAyODguOSAzNDEgMjYxLjRWMTE0LjNDMzQxIDg5IDMxNi41IDMyIDIyOC43IDMyIDE0MC43IDMyIDk0IDg3IDk0IDEzNi4zbDczLjUgNi44YzE2LjMtNDkuNSA1NC4yLTQ5LjUgNTQuMi00OS41IDQwLjctLjEgMzUuNSAyOS44IDM1LjUgNjkuMXptMCA4Ni44YzAgODAtODQuMiA2OC04NC4yIDE3LjIgMC00Ny4yIDUwLjUtNTYuNyA4NC4yLTU3Ljh2NDAuNnptMTM2IDE2My41Yy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuMiA0MDguNSA5LjcgMzc5Yy02LjgtNy43IDEtMTEuMyA1LjUtOC4zQzg4LjUgNDE1LjIgMjAzIDQ4OC41IDM4Ny43IDQwMWM3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWlsaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjEgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjF2MzguNUMyMDMgMjI3LjcgNzguMiAyNTEgNDYuNyAyNjQuMiAxMS4yIDI4MC41IDE2LjMgMzU3LjcgMTYuMyAzNzZzMTUuMiAxMDQgMTI0LjkgMTA0YzQ3LjggMCAxMTMuNy0yMC43IDE1My4zLTQyLjF2MjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNS4zIDY2LjUtLjdjNC4xLTEgNS4xLTYuMSA1LjEtOS4xVjE2OGMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjAuNTUsMzAxLjkzYTI0LDI0LDAsMSwxLDI0LTI0LDI0LDI0LDAsMCwxLTI0LDI0bS0yNjUuMSwwYTI0LDI0LDAsMSwxLDI0LTI0LDI0LDI0LDAsMCwxLTI0LDI0bTI3My43LTE0NC40OCw0Ny45NC04M2ExMCwxMCwwLDEsMC0xNy4yNy0xMGgwbC00OC41NCw4NC4wN2EzMDEuMjUsMzAxLjI1LDAsMCwwLTI0Ni41NiwwTDExNi4xOCw2NC40NWExMCwxMCwwLDEsMC0xNy4yNywxMGgwbDQ3Ljk0LDgzQzY0LjUzLDIwMi4yMiw4LjI0LDI4NS41NSwwLDM4NEg1NzZjLTguMjQtOTguNDUtNjQuNTQtMTgxLjc4LTE0Ni44NS0yMjYuNTVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nZWxsaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ny4xIDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMUMyNDIgMTQ0IDE5Ni42IDAgMTU2LjYgMGMtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuN0M0NiA0MzUuNiAxMTQuNCA1MTIgMjEwLjYgNTEyYzExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTMxMS43IDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTQyLjMgNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTQwIDI0NGMyOS4zIDAgNjcuMSA5NC42IDY3LjEgMTA3LjQgMCA1LjEtNC45IDExLjQtMTAuNiAxMS40LTIwLjkgMC03Ni45LTc2LjktNzYuOS05Ny43LjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6bTE4NC4zIDE4Ni4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcuMS0xMy4xIDE3LjQtMTMuMSAzMi4zIDAgMTE0LjMgOCAxMzguMyAyOS4xIDE4LjEgMTYuMSAyNC4zIDExMy4yLTMxIDE3NC43em0tOTguNi0xMjZjOS43IDMuMSAxOS43IDQgMjkuNyA2LTcuNCA1LjQtMTQgMTItMjAuMyAxOS4xLTIuOC04LjUtNi4yLTE2LjgtOS40LTI1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3J5Y3JlYXRpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjJMNTI3IDM2NS4ybC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjhMNDY4IDI0OS42bC0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOEMyMy45IDM5OS45LTMgMzc3IC4zIDMzOS43YzIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjZMMzcwLjQgMzY5bDguOS04NS42LTIyLjMgMS40IDIuOS0yNy45IDc1LTQuOS0zIDI4LTI0LjMgMS42LTkuNyA5MS45LTU4IDMuNy00LjMtMTUuNi0zOS40IDIuNS04IDE2LjMtMTI2LjIgNy43em0tNDQuMy03MC4ybC0yNi40IDEuN0M4NC42IDMwNy4yIDc2LjkgMzAzIDY1IDMwMy44Yy0xOSAxLjItMzMuMyAxNy41LTM0LjYgMzMuMy0xLjQgMTYgNy4zIDMyLjUgMjguNyAzMS4yIDEyLjgtLjggMjEuMy04LjYgMjguOS0xOC45bDI3LTEuNyAyLjctMjkuOHptNTYuMS03LjdjMS4yLTEyLjktNy42LTEzLjYtMjYuMS0xMi40bC0yLjcgMjguNWMxNC4yLS45IDI3LjUtMi4xIDI4LjgtMTYuMXptMjEuMSA3MC44bDUuOC02MGMtNSAxMy41LTE0LjcgMjEuMS0yNy45IDI2LjZsMjIuMSAzMy40em0xMzUuNC00NWwtNy45LTM3LjgtMTUuOCAzOS4zIDIzLjctMS41em0tMTcwLjEtNzQuNmwtNC4zLTE3LjUtMzkuNiAyLjYtOC4xIDE4LjItMzEuOSAyLjEgNTctMTIxLjkgMjMuOS0xLjYgMzAuNyAxMDIgOS45LTEwNC43IDI3LTEuOCAzNy44IDYzLjYgNi41LTY2LjYgMjguNS0xLjktNCA0MS4yYzcuNC0xMy41IDIyLjktNDQuNyA2My42LTQ3LjUgNDAuNS0yLjggNTIuNCAyOS4zIDUzLjQgMzAuM2wzLjMtMzIgMzkuMy0yLjdjMTIuNy0uOSAyNy44LjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmd1bGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4NS43IDI2OC4xaDc2LjJsLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40bDMxLjggMjc1LjcgMTc2IDk3LjkgMTc2LTk3LjkgMzEuOC0yNzUuN3pNMzU0IDM3My44aC00OC42bC0yNi4yLTY1LjRIMTY4LjZsLTI2LjIgNjUuNEg5My43TDIyMy44IDgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcFN0b3JlSW9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlIODRjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwaDUxbDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjZoNjIuMWMyMC4yIDAgMzEuNSAyMy43IDIyLjcgNDB6bTk4LjEgMGgtMjlsMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJoNTJjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNSA5LjggNS42IDEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNWg2My4zYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOEgxMTMuOGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNCAwLTExLjMgOS4xLTIwLjQgMjAuNC0yMC40aDUybDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjUtOS44LTUuNi0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2g1My4xYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjQgMCAxMS4zLTkuMSAyMC40LTIwLjQgMjAuNGgtMjkuNWwxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0yMTYgMjQ4YzAgMTE4LjctOTYuMSAyMTYtMjE2IDIxNi0xMTguNyAwLTIxNi05Ni4xLTIxNi0yMTYgMC0xMTguNyA5Ni4xLTIxNiAyMTYtMjE2IDExOC43IDAgMjE2IDk2LjEgMjE2IDIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmguOHYtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhINC44Yy4zLTEzLjkgMS41LTE5LjEgNS44LTI0LjRDMTcuOSAxOTUgMjkuNSAxOTIgNTYuNyAxOTJjMzMgMCA0Ny4xIDUgNTMuOSAxOC45IDIgNC4zIDQgMTUuNiA0IDIzLjd2NzYuM0g3Ni4zbDEuMy0xOS4xaC0xYy01LjMgMTUuNi0xMy42IDIwLjQtMzUuNSAyMC40LTMwLjMgMC00MS4xLTEwLjEtNDEuMS0zNy4zIDAtMjUuMiAxMi4zLTM1LjggNDIuMS0zNS44em0xNy4xIDQ4LjFjMTMuMSAwIDE2LjktMyAxNi45LTEzLjQgMC05LjEtNC4zLTExLjYtMTkuNi0xMS42LTEzLjEgMC0xNy45IDMtMTcuOSAxMi4xLS4xIDEwLjQgMy43IDEyLjkgMjAuNiAxMi45em03Ny44LTk0LjloMzguM2wtMS41IDIwLjZoLjhjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMiAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJoLS44djcwLjNIMTM3di0xNjl6bTgwLjkgNjAuN2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2gzOC4zbC0xLjUgMjAuNmguOGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmgtLjh2NzAuM2gtMzkuNXYtMTY5em04MC45IDYwLjdjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01My44LTMuOGMwLTI1LjQgMy4zLTM3LjggMTIuMy00NS44IDguOC04LjEgMjIuMi0xMS4zIDQ1LjEtMTEuMyA0Mi44IDAgNTUuNyAxMi44IDU1LjcgNTUuN3YxMS4xaC03NS4zYy0uMyAyLS4zIDQtLjMgNC44IDAgMTYuOSA0LjUgMjEuOSAyMC4xIDIxLjkgMTMuOSAwIDE3LjktMyAxNy45LTEzLjloMzcuNXYyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuM2gzOC4zem01NS42LTQ1LjNoMzguM2wtMS44IDE5LjloLjdjNi44LTE0LjkgMTQuNC0yMC4yIDI5LjctMjAuMiAxMC44IDAgMTkuMSAzLjMgMjMuNCA5LjMgNS4zIDcuMyA2LjggMTQuNCA2LjggMzQgMCAxLjUgMCA1IC4yIDkuM2gtMzVjLjMtMS44LjMtMy4zLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zdjY4aC0zOC4zVjE5Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOG0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOS4zLTM0LjUgMTAuNC00My42IDI2LjUtMTguOCAzMi4zLTQuOSA4MCAxMy4zIDEwNi4zIDguOSAxMyAxOS41IDI3LjMgMzMuNSAyNi44IDEzLjMtLjUgMTguNS04LjYgMzQuNS04LjYgMTYuMSAwIDIwLjggOC42IDM0LjggOC40IDE0LjUtLjMgMjMuNi0xMyAzMi41LTI2IDEwLjEtMTQuOCAxNC4zLTI5LjEgMTQuNS0yOS45LS4zLS4zLTI4LTEwLjktMjguMy00Mi45LS4zLTI2LjggMjEuOS0zOS41IDIyLjktNDAuMy0xMi41LTE4LjYtMzItMjAuNi0zOC44LTIxLjFtMTAwLjQtMzYuMnYxOTQuOWgzMC4zdi02Ni42aDQxLjljMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGgtNzMuMnptMzAuMyAyNS41aDM0LjljMjYuMyAwIDQxLjMgMTQgNDEuMyAzOC42cy0xNSAzOC44LTQxLjQgMzguOGgtMzQuOFYxNjV6bTE2Mi4yIDE3MC45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45aC42djIzLjRoMjh2LTk3YzAtMjguMS0yMi41LTQ2LjMtNTcuMS00Ni4zLTMyLjEgMC01NS45IDE4LjQtNTYuOCA0My42aDI3LjNjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNXYxMC44bC0zNy44IDIuM2MtMzUuMSAyLjEtNTQuMSAxNi41LTU0LjEgNDEuNS4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xdjExYzAgMTguMi0xNS41IDMxLjItMzYgMzEuMnptMTAyLjUgNzQuNmMyOS41IDAgNDMuNC0xMS4zIDU1LjUtNDUuNEw2NDAgMTkzaC0zMC44bC0zNS42IDExNS4xaC0uNkw1MzcuNCAxOTNoLTMxLjZMNTU3IDMzNC45bC0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41djIzLjRjMS44LjQgOS4zLjcgMTEuNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNyAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuN0M2My4zIDE0MS4yIDQgMTg0LjggNCAyNzMuNXEwIDM5LjMgMTQuNCA4MS4yYzEyLjggMzYuNyA1OSAxMjYuNyAxMDcuMiAxMjUuMiAyNS4yLS42IDQzLTE3LjkgNzUuOC0xNy45IDMxLjggMCA0OC4zIDE3LjkgNzYuNCAxNy45IDQ4LjYtLjcgOTAuNC04Mi41IDEwMi42LTExOS4zLTY1LjItMzAuNy02MS43LTkwLTYxLjctOTEuOXptLTU2LjYtMTY0LjJjMjcuMy0zMi40IDI0LjgtNjEuOSAyNC03Mi41LTI0LjEgMS40LTUyIDE2LjQtNjcuOSAzNC45LTE3LjUgMTkuOC0yNy44IDQ0LjMtMjUuNiA3MS45IDI2LjEgMiA0OS45LTExLjQgNjkuNS0zNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnRzdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMzc3LjRsNDMgNzQuM0E1MS4zNSA1MS4zNSAwIDAgMCA5MC45IDQ4MGgyODUuNGwtNTkuMi0xMDIuNnpNNTAxLjggMzUwTDMzNS42IDU5LjNBNTEuMzggNTEuMzggMCAwIDAgMjkwLjIgMzJoLTg4LjRsMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NSAzMDQuNWwtMTE1LjUtMjAwTDQ0IDMwNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBc3ltbWV0cmlrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xLjgtNjUuNS01OS40LTExOC4yLTE2OS40LTEzNUMyNzcuOSAzOC40IDExOC4xIDczLjYgMCAxNDAuNSA1MiAxMTQgMTEwLjYgOTIuMyAxNzAuNyA4Mi4zYzc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44QzU0NC41IDkxLjMgNTg4LjggMTk1IDQ5MC44IDI5OS4yYy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuN2gxMDEuNmwyMi0zNC40YzIyLjIgMSA0NS4zIDAgNjguNi0yLjdsLTIyLjggMzcuMWgxMzUuNUwzNDAgNDA2LjNjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjhINTQyTDQ2OC42IDM0OWMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6bS0xODcuNiA4MC41bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0bGFzc2lhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuMiAyMzYuNGMtNy43LTguMi0xOS43LTcuNy0yNC44IDIuOEwxLjYgNDkwLjJjLTUgMTAgMi40IDIxLjcgMTMuNCAyMS43aDE3NWM1LjguMSAxMS0zLjIgMTMuNC04LjQgMzcuOS03Ny44IDE1LjEtMTk2LjMtNTEuMi0yNjcuMXpNMjQ0LjQgOC4xYy0xMjIuMyAxOTMuNC04LjUgMzQ4LjYgNjUgNDk1LjUgMi41IDUuMSA3LjcgOC40IDEzLjQgOC40SDQ5N2MxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXVkaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMTk5Ljl2NTRsLTMyMCAyMDBMMCAyNTR2LTU0bDMyMCAyMDAgMzIwLTIwMC4xem0tMTk0LjUgNzJsNDcuMS0yOS40Yy0zNy4yLTU1LjgtMTAwLjctOTIuNi0xNzIuNy05Mi42LTcyIDAtMTM1LjUgMzYuNy0xNzIuNiA5Mi40aC4zYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6bS0yMjAuMSAxOC44YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMWMxMzEuOC0xMDQuMyAzMTguMi03Ni40IDQxNy41IDYyLjFsLjcgMSA0OC44LTMwLjRDNTE3LjEgMTEyLjEgNDI0LjggNTguMSAzMTkuOSA1OC4xYy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnptNDY3IDMyLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF1dG9wcmVmaXhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNCAxNmwtMTYxIDQ4MGg3Ny41bDI1LjQtODEuNGgxMTkuNUw0MDUgNDk2aDc3LjVMMzE4LjQgMTZ6bS00MC4zIDM0MS45bDQxLjItMTMwLjRoMS41bDQwLjkgMTMwLjRoLTgzLjZ6TTY0MCA0MDVsLTEwLTMxLjRMNDYyLjEgMzU4bDE5LjQgNTYuNUw2NDAgNDA1em0tNDYyLjEtNDdMMTAgMzczLjcgMCA0MDVsMTU4LjUgOS40IDE5LjQtNTYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYW5leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTMuMSAzMmgtMzEyYy0zOC45IDAtNzYuMiAzMS4yLTgzLjMgNjkuN0wxLjIgNDEwLjNDLTUuOSA0NDguOCAxOS45IDQ4MCA1OC45IDQ4MGgzMTJjMzguOSAwIDc2LjItMzEuMiA4My4zLTY5LjdsNTYuNy0zMDguNWM3LTM4LjYtMTguOC02OS44LTU3LjgtNjkuOHptLTU4LjIgMzQ3LjNsLTMyIDEzLjUtMTE1LjQtMTEwYy0xNC43IDEwLTI5LjIgMTkuNS00MS43IDI3LjFsMjIuMSA2NC4yLTE3LjkgMTIuNy00MC42LTYxLTUyLjQtNDguMSAxNS43LTE1LjQgNTggMzEuMWM5LjMtMTAuNSAyMC44LTIyLjYgMzIuOC0zNC45TDIwMyAyMjguOWwtNjguOC05OS44IDE4LjgtMjguOSA4LjktNC44TDI2NSAyMDcuOGw0LjkgNC41YzE5LjQtMTguOCAzMy44LTMyLjQgMzMuOC0zMi40IDcuNy02LjUgMjEuNS0yLjkgMzAuNyA3LjkgOSAxMC41IDEwLjYgMjQuNyAyLjcgMzEuMy0xLjggMS4zLTE1LjUgMTEuNC0zNS4zIDI1LjZsNC41IDcuMyA5NC45IDExOS40LTYuMyA3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF2aWF0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDcuMiAyODMuNWwtMTktNDEuOEgzNi4xbC0xOSA0MS44SDBsNjIuMi0xMzEuNCA2Mi4yIDEzMS40aC0xNy4yem0tNDUtOTguMWwtMTkuNiA0Mi41aDM5LjJsLTE5LjYtNDIuNXptMTEyLjcgMTAyLjRsLTYyLjItMTMxLjRoMTcuMWw0NS4xIDk2IDQ1LjEtOTZoMTdsLTYyLjEgMTMxLjR6bTgwLjYtNC4zVjE1Ni40SDI3MXYxMjcuMWgtMTUuNXptMjA5LjEtMTE1LjZ2MTE1LjZoLTE3LjNWMTY3LjloLTQxLjJ2LTExLjVoOTkuNnYxMS41aC00MS4xek02NDAgMjE4LjhjMCA5LjItMS43IDE3LjgtNS4xIDI1LjgtMy40IDgtOC4yIDE1LjEtMTQuMiAyMS4xLTYgNi0xMy4xIDEwLjgtMjEuMSAxNC4yLTggMy40LTE2LjYgNS4xLTI1LjggNS4xcy0xNy44LTEuNy0yNS44LTUuMWMtOC0zLjQtMTUuMS04LjItMjEuMS0xNC4yLTYtNi0xMC44LTEzLTE0LjItMjEuMS0zLjQtOC01LjEtMTYuNi01LjEtMjUuOHMxLjctMTcuOCA1LjEtMjUuOGMzLjQtOCA4LjItMTUuMSAxNC4yLTIxLjEgNi02IDEzLTguNCAyMS4xLTExLjkgOC0zLjQgMTYuNi01LjEgMjUuOC01LjFzMTcuOCAxLjcgMjUuOCA1LjFjOCAzLjQgMTUuMSA1LjggMjEuMSAxMS45IDYgNiAxMC43IDEzLjEgMTQuMiAyMS4xIDMuNCA4IDUuMSAxNi42IDUuMSAyNS44em0tMTUuNSAwYzAtNy4zLTEuMy0xNC0zLjktMjAuMy0yLjYtNi4zLTYuMi0xMS43LTEwLjgtMTYuMy00LjYtNC42LTEwLTguMi0xNi4yLTEwLjktNi4yLTIuNy0xMi44LTQtMTkuOC00cy0xMy42IDEuMy0xOS44IDRjLTYuMiAyLjctMTEuNiA2LjMtMTYuMiAxMC45LTQuNiA0LjYtOC4yIDEwLTEwLjggMTYuMy0yLjYgNi4zLTMuOSAxMy4xLTMuOSAyMC4zIDAgNy4zIDEuMyAxNCAzLjkgMjAuMyAyLjYgNi4zIDYuMiAxMS43IDEwLjggMTYuMyA0LjYgNC42IDEwIDguMiAxNi4yIDEwLjkgNi4yIDIuNyAxMi44IDQgMTkuOCA0czEzLjYtMS4zIDE5LjgtNGM2LjItMi43IDExLjYtNi4zIDE2LjItMTAuOSA0LjYtNC42IDguMi0xMCAxMC44LTE2LjMgMi42LTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN3YtNi4zbDg4LjktMTAtMjQyLjkgMTMuNGMuNi0yLjIgMS4xLTQuNiAxLjQtNy4yLjMtMiAuNS00LjIuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjNoMjMuOGwxOSA0MS44aDE3LjFMMzQ4LjYgMTUybC02Mi4yIDEzMS40aDE3LjFsMTktNDEuOGgyMy42TDM0NSAyNjhzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEuMy0uMS43LS4xIDEuMWwtNjQuOS0xLjkgNjQuOCA4LjFjLjEgMi4zLjMgNC40LjYgNi41LjMgMi42LjggNSAxLjQgNy4yTDc4LjQgMjk5LjJsODguOSAxMHY2LjNjLTUuOS45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40IDYuOCAwIDEyLjQtNS42IDEyLjQtMTIuNCAwLTYuMi00LjYtMTEuMy0xMC41LTEyLjJ2LTUuOGw4MC4zIDl2NS40Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yIDYuOCAwIDEyLjQtMy40IDEyLjQtMTAuMiAwLTYtNC4zLTExLTkuOS0xMi4xdi00LjlsMjguNCAzLjJ2MjMuN2gtNS45VjM2MGg1Ljl2LTYuNmg1djYuNmg1Ljl2LTEzLjhoLTUuOVYzMjNsMzguMyA0LjNjOC4xIDExLjQgMTkgMTMuNiAxOSAxMy42bC0uMSA2LjctNS4xLjItLjEgMTIuMWg0LjFsLjEtNWg1LjJsLjEgNWg0LjFsLS4xLTEyLjEtNS4xLS4yLS4xLTYuN3MxMC45LTIuMSAxOS0xMy42bDM4LjMtNC4zdjIzLjJoLTUuOVYzNjBoNS45di02LjZoNXY2LjZoNS45di0xMy44aC01Ljl2LTIzLjdsMjguNC0zLjJ2NC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yIDYuOCAwIDEyLjQtMy40IDEyLjQtMTAuMiAwLTYtNC4zLTExLTkuOS0xMi4xdi01LjRsODAuMy05djUuOGMtNS45LjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjQgNi44IDAgMTIuNC01LjYgMTIuNC0xMi40LS4yLTYuMy00LjctMTEuNC0xMC43LTEyLjN6bS0yMDAuOC04Ny42bDE5LjYtNDIuNSAxOS42IDQyLjVoLTE3LjlsLTEuNy00MC4zLTEuNyA0MC4zaC0xNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgwLjQxIDIwMy4wMWMtLjcyIDIyLjY1IDEwLjYgMzIuNjggMTAuODggMzkuMDVhOC4xNjQgOC4xNjQgMCAwIDEtNC4xIDYuMjdsLTEyLjggOC45NmExMC42NiAxMC42NiAwIDAgMS01LjYzIDEuOTJjLS40My0uMDItOC4xOSAxLjgzLTIwLjQ4LTI1LjYxYTc4LjYwOCA3OC42MDggMCAwIDEtNjIuNjEgMjkuNDVjLTE2LjI4Ljg5LTYwLjQtOS4yNC01OC4xMy01Ni4yMS0xLjU5LTM4LjI4IDM0LjA2LTYyLjA2IDcwLjkzLTYwLjA1IDcuMS4wMiAyMS42LjM3IDQ2Ljk5IDYuMjd2LTE1LjYyYzIuNjktMjYuNDYtMTQuNy00Ni45OS00NC44MS00My45MS0yLjQuMDEtMTkuNC0uNS00NS44NCAxMC4xMS03LjM2IDMuMzgtOC4zIDIuODItMTAuNzUgMi44Mi03LjQxIDAtNC4zNi0yMS40OC0yLjk0LTI0LjIgNS4yMS02LjQgMzUuODYtMTguMzUgNjUuOTQtMTguMThhNzYuODU3IDc2Ljg1NyAwIDAgMSA1NS42OSAxNy4yOCA3MC4yODUgNzAuMjg1IDAgMCAxIDE3LjY3IDUyLjM2bC0uMDEgNjkuMjl6TTkzLjk5IDIzNS40YzMyLjQzLS40NyA0Ni4xNi0xOS45NyA0OS4yOS0zMC40NyAyLjQ2LTEwLjA1IDIuMDUtMTYuNDEgMi4wNS0yNy40LTkuNjctMi4zMi0yMy41OS00Ljg1LTM5LjU2LTQuODctMTUuMTUtMS4xNC00Mi44MiA1LjYzLTQxLjc0IDMyLjI2LTEuMjQgMTYuNzkgMTEuMTIgMzEuNCAyOS45NiAzMC40OHptMTcwLjkyIDIzLjA1Yy03Ljg2LjcyLTExLjUyLTQuODYtMTIuNjgtMTAuMzdsLTQ5LjgtMTY0LjY1Yy0uOTctMi43OC0xLjYxLTUuNjUtMS45Mi04LjU4YTQuNjEgNC42MSAwIDAgMSAzLjg2LTUuMjVjLjI0LS4wNC0yLjEzIDAgMjIuMjUgMCA4Ljc4LS44OCAxMS42NCA2LjAzIDEyLjU1IDEwLjM3bDM1LjcyIDE0MC44MyAzMy4xNi0xNDAuODNjLjUzLTMuMjIgMi45NC0xMS4wNyAxMi44LTEwLjI0aDE3LjE2YzIuMTctLjE4IDExLjExLS41IDEyLjY4IDEwLjM3bDMzLjQyIDE0Mi42M0w0MjAuOTggODAuMWMuNDgtMi4xOCAyLjcyLTExLjM3IDEyLjY4LTEwLjM3aDE5LjcyYy44NS0uMTMgNi4xNS0uODEgNS4yNSA4LjU4LS40MyAxLjg1IDMuNDEtMTAuNjYtNTIuNzUgMTY5LjktMS4xNSA1LjUxLTQuODIgMTEuMDktMTIuNjggMTAuMzdoLTE4LjY5Yy0xMC45NCAxLjE1LTEyLjUxLTkuNjYtMTIuNjgtMTAuNzVMMzI4LjY3IDExMC43bC0zMi43OCAxMzYuOTljLS4xNiAxLjA5LTEuNzMgMTEuOS0xMi42OCAxMC43NWgtMTguM3ptMjczLjQ4IDUuNjNjLTUuODguMDEtMzMuOTItLjMtNTcuMzYtMTIuMjlhMTIuODAyIDEyLjgwMiAwIDAgMS03LjgxLTExLjkxdi0xMC43NWMwLTguNDUgNi4yLTYuOSA4LjgzLTUuODkgMTAuMDQgNC4wNiAxNi40OCA3LjE0IDI4LjgxIDkuNiAzNi42NSA3LjUzIDUyLjc3LTIuMyA1Ni43Mi00LjQ4IDEzLjE1LTcuODEgMTQuMTktMjUuNjggNS4yNS0zNC45NS0xMC40OC04Ljc5LTE1LjQ4LTkuMTItNTMuMTMtMjEtNC42NC0xLjI5LTQzLjctMTMuNjEtNDMuNzktNTIuMzYtLjYxLTI4LjI0IDI1LjA1LTU2LjE4IDY5LjUyLTU1Ljk1IDEyLjY3LS4wMSA0Ni40MyA0LjEzIDU1LjU3IDE1LjYyIDEuMzUgMi4wOSAyLjAyIDQuNTUgMS45MiA3LjA0djEwLjExYzAgNC40NC0xLjYyIDYuNjYtNC44NyA2LjY2LTcuNzEtLjg2LTIxLjM5LTExLjE3LTQ5LjE2LTEwLjc1LTYuODktLjM2LTM5Ljg5LjkxLTM4LjQxIDI0Ljk3LS40MyAxOC45NiAyNi42MSAyNi4wNyAyOS43IDI2Ljg5IDM2LjQ2IDEwLjk3IDQ4LjY1IDEyLjc5IDYzLjEyIDI5LjU4IDE3LjE0IDIyLjI1IDcuOSA0OC4zIDQuMzUgNTUuNDQtMTkuMDggMzcuNDktNjguNDIgMzQuNDQtNjkuMjYgMzQuNDJ6bTQwLjIgMTA0Ljg2Yy03MC4wMyA1MS43Mi0xNzEuNjkgNzkuMjUtMjU4LjQ5IDc5LjI1QTQ2OS4xMjcgNDY5LjEyNyAwIDAgMSAyLjgzIDMyNy40NmMtNi41My01Ljg5LS43Ny0xMy45NiA3LjE3LTkuNDdhNjM3LjM3IDYzNy4zNyAwIDAgMCAzMTYuODggODQuMTIgNjMwLjIyIDYzMC4yMiAwIDAgMCAyNDEuNTktNDkuNTVjMTEuNzgtNSAyMS43NyA3LjggMTAuMTIgMTYuMzh6bTI5LjE5LTMzLjI5Yy04Ljk2LTExLjUyLTU5LjI4LTUuMzgtODEuODEtMi42OS02Ljc5Ljc3LTcuOTQtNS4xMi0xLjc5LTkuNDcgNDAuMDctMjguMTcgMTA1Ljg4LTIwLjEgMTEzLjQ0LTEwLjYzIDcuNTUgOS40Ny0yLjA1IDc1LjQxLTM5LjU2IDEwNi45MS01Ljc2IDQuODctMTEuMjcgMi4zLTguNzEtNC4xIDguNDQtMjEuMjUgMjcuMzktNjguNDkgMTguNDMtODAuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbmRjYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhabTQ4LjIsMzI2LjFoLTE4MUwyMDcuOSwxNzhoMTgxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0bGVOZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LjYxIDIyNS42MmMyNi44Ny4xOCAzNS41Ny03LjQzIDM4LjkyLTEyLjM3IDEyLjQ3LTE2LjMyLTcuMDYtNDcuNi01Mi44NS03MS4zMyAxNy43Ni0zMy41OCAzMC4xMS02My42OCAzNi4zNC04NS4zIDMuMzgtMTEuODMgMS4wOS0xOSAuNDUtMjAuMjUtMS43MiAxMC41Mi0xNS44NSA0OC40Ni00OC4yIDEwMC4wNS0yNS0xMS4yMi01Ni41Mi0yMC4xLTkzLjc3LTIzLjgtOC45NC0xNi45NC0zNC44OC02My44Ni02MC40OC04OC45M0MyNTIuMTggNy4xNCAyMzguNyAxLjA3IDIyOC4xOC4yMmgtLjA1Yy0xMy44My0xLjU1LTIyLjY3IDUuODUtMjcuNCAxMS0xNy4yIDE4LjUzLTI0LjMzIDQ4Ljg3LTI1IDg0LjA3LTcuMjQtMTIuMzUtMTcuMTctMjQuNjMtMjguNS0yNS45M2gtLjE4Yy0yMC42Ni0zLjQ4LTM4LjM5IDI5LjIyLTM2IDgxLjI5LTM4LjM2IDEuMzgtNzEgNS43NS05MyAxMS4yMy05LjkgMi40NS0xNi4yMiA3LjI3LTE3Ljc2IDkuNzIgMS0uMzggMjIuNC05LjIyIDExMS41Ni05LjIyIDUuMjIgNTMgMjkuNzUgMTAxLjgyIDI2IDkzLjE5LTkuNzMgMTUuNC0zOC4yNCA2Mi4zNi00Ny4zMSA5Ny43LTUuODcgMjIuODgtNC4zNyAzNy42MS4xNSA0Ny4xNCA1LjU3IDEyLjc1IDE2LjQxIDE2LjcyIDIzLjIgMTguMjYgMjUgNS43MSA1NS4zOC0zLjYzIDg2LjctMjEuMTQtNy41MyAxMi44NC0xMy45IDI4LjUxLTkuMDYgMzkuMzQgNy4zMSAxOS42NSA0NC40OSAxOC42NiA4OC40NC05LjQ1IDIwLjE4IDMyLjE4IDQwLjA3IDU3Ljk0IDU1LjcgNzQuMTJhMzkuNzkgMzkuNzkgMCAwIDAgOC43NSA3LjA5YzUuMTQgMy4yMSA4LjU4IDMuMzcgOC41OCAzLjM3LTguMjQtNi43NS0zNC0zOC02Mi41NC05MS43OCAyMi4yMi0xNiA0NS42NS0zOC44NyA2Ny40Ny02OS4yNyAxMjIuODIgNC42IDE0My4yOS0yNC43NiAxNDgtMzEuNjQgMTQuNjctMTkuODggMy40My01Ny40NC01Ny4zMi05My42OXptLTc3Ljg1IDEwNi4yMmMyMy44MS0zNy43MSAzMC4zNC02Ny43NyAyOS40NS05Mi4zMyAyNy44NiAxNy41NyA0Ny4xOCAzNy41OCA0OS4wNiA1OC44MyAxLjE0IDEyLjkzLTguMSAyOS4xMi03OC41MSAzMy41ek0yMTYuOSAzODcuNjljOS43Ni02LjIzIDE5LjUzLTEzLjEyIDI5LjItMjAuNDkgNi42OCAxMy4zMyAxMy42IDI2LjEgMjAuNiAzOC4xOS00MC42IDIxLjg2LTY4Ljg0IDEyLjc2LTQ5LjgtMTcuN3ptMjE1LTE3MS4zNWMtMTAuMjktNS4zNC0yMS4xNi0xMC4zNC0zMi4zOC0xNS4wNWE3MjIuNDU5IDcyMi40NTkgMCAwIDAgMjIuNzQtMzYuOWMzOS4wNiAyNC4xIDQ1LjkgNTMuMTggOS42NCA1MS45NXpNMjc5LjE4IDM5OGMtNS41MS0xMS4zNS0xMS0yMy41LTE2LjUtMzYuNDQgNDMuMjUgMS4yNyA2Mi40Mi0xOC43MyA2My4yOC0yMC40MSAwIC4wNy0yNSAxNS42NC02Mi41MyAxMi4yNWE3MTguNzggNzE4Ljc4IDAgMCAwIDg1LjA2LTg0cTEzLjA2LTE1LjMxIDI0LjkzLTMxLjExYy0uMzYtLjI5LTEuNTQtMy0xNi41MS0xMi01MS43IDYwLjI3LTEwMi4zNCA5OC0xMzIuNzUgMTE1LjkyLTIwLjU5LTExLjE4LTQwLjg0LTMxLjc4LTU1LjcxLTYxLjQ5LTIwLTM5LjkyLTMwLTgyLjM5LTMxLjU3LTExNi4wNyAxMi4zLjkxIDI1LjI3IDIuMTcgMzguODUgMy44OC0yMi4yOSAzNi44LTE0LjM5IDYzLTEzLjQ3IDY0LjIzIDAtLjA3LS45NS0yOS4xNyAyMC4xNC01OS41N2E2OTUuMjMgNjk1LjIzIDAgMCAwIDQ0LjY3IDE1Mi44NGMuOTMtLjM4IDEuODQuODggMTguNjctOC4yNS0yNi4zMy03NC40Ny0zMy43Ni0xMzguMTctMzQtMTczLjQzIDIwLTEyLjQyIDQ4LjE4LTE5LjggODEuNjMtMTcuODEgNDQuNTcgMi42NyA4Ni4zNiAxNS4yNSAxMTYuMzIgMzAuNzFxLTEwLjY5IDE1LjY2LTIzLjMzIDMyLjQ3QzM2NS42MyAxNTIgMzM5LjEgMTQ1Ljg0IDMzNy41IDE0NmMuMTEgMCAyNS45IDE0LjA3IDQxLjUyIDQ3LjIyYTcxNy42MyA3MTcuNjMgMCAwIDAtMTE1LjM0LTMxLjcxIDY0Ni42MDggNjQ2LjYwOCAwIDAgMC0zOS4zOS02LjA1Yy0uMDcuNDUtMS44MSAxLjg1LTIuMTYgMjAuMzNDMzAwIDE5MC4yOCAzNTguNzggMjE1LjY4IDM4OS4zNiAyMzNjLjc0IDIzLjU1LTYuOTUgNTEuNjEtMjUuNDEgNzkuNTctMjQuNiAzNy4zMS01Ni4zOSA2Ny4yMy04NC43NyA4NS40M3ptMjcuNC0yODdjLTQ0LjU2LTEuNjYtNzMuNTggNy40My05NC42OSAyMC42NyAyLTUyLjMgMjEuMzEtNzYuMzggMzguMjEtNzUuMjhDMjY3IDUyLjE1IDMwNSAxMDguNTUgMzA2LjU4IDExMXptLTEzMC42NSAzLjFjLjQ4IDEyLjExIDEuNTkgMjQuNjIgMy4yMSAzNy4yOC0xNC41NS0uODUtMjguNzQtMS4yNS00Mi40LTEuMjYtLjA4IDMuMjQtLjEyLTUxIDI0LjY3LTQ5LjU5aC4wOWM1Ljc2IDEuMDkgMTAuNjMgNi44OCAxNC40MyAxMy41N3ptLTI4LjA2IDE2MmMyMC43NiAzOS43IDQzLjMgNjAuNTcgNjUuMjUgNzIuMzEtNDYuNzkgMjQuNzYtNzcuNTMgMjAtODQuOTIgNC41MS0uMi0uMjEtMTEuMTMtMTUuMyAxOS42Ny03Ni44MXptMjEwLjA2IDc0LjhcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVoYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOEgwdjM1NC40aDE3MS44YzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45SDE1MWMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4yaC03OXYtODIuN3ptODMuMyAyMzMuN0g3Ny45VjI3Mmg4NC45YzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3ptMzU4LjUtMjQwLjdIMzc2Vjk0aDE0My43djM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM0g1MDljLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2gxODUuMWMuMy00LjIuNi04LjcuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOEgzOTAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlsaWJpbGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjYgMTA0LjFDNTA1LjMgMTIyLjIgNTEzIDE0My44IDUxMS45IDE2OS44VjM3Mi4yQzUxMS41IDM5OC42IDUwMi43IDQyMC4zIDQ4NS40IDQzNy4zQzQ2OC4yIDQ1NC4zIDQ0Ni4zIDQ2My4yIDQxOS45IDQ2NEg5Mi4wMkM2NS41NyA0NjMuMiA0My44MSA0NTQuMiAyNi43NCA0MzYuOEM5LjY4MiA0MTkuNCAuNzY2NyAzOTYuNSAwIDM2OC4yVjE2OS44Qy43NjY3IDE0My44IDkuNjgyIDEyMi4yIDI2Ljc0IDEwNC4xQzQzLjgxIDg3Ljc1IDY1LjU3IDc4Ljc3IDkyLjAyIDc4SDEyMS40TDk2LjA1IDUyLjE5QzkwLjMgNDYuNDYgODcuNDIgMzkuMTkgODcuNDIgMzAuNEM4Ny40MiAyMS42IDkwLjMgMTQuMzQgOTYuMDUgOC42MDNDMTAxLjggMi44NjggMTA5LjEgMCAxMTcuOSAwQzEyNi43IDAgMTM0IDIuODY4IDEzOS44IDguNjAzTDIxMy4xIDc4SDMwMS4xTDM3NS42IDguNjAzQzM4MS43IDIuODY4IDM4OS4yIDAgMzk4IDBDNDA2LjggMCA0MTQuMSAyLjg2OCA0MTkuOSA4LjYwM0M0MjUuNiAxNC4zNCA0MjguNSAyMS42IDQyOC41IDMwLjRDNDI4LjUgMzkuMTkgNDI1LjYgNDYuNDYgNDE5LjkgNTIuMTlMMzk0LjYgNzhMNDIzLjkgNzhDNDUwLjMgNzguNzcgNDcxLjkgODcuNzUgNDg4LjYgMTA0LjFINDg4LjZ6TTQ0OS44IDE3My44QzQ0OS40IDE2NC4yIDQ0Ni4xIDE1Ni40IDQzOS4xIDE1MC4zQzQzMy45IDE0NC4yIDQyNS4xIDE0MC45IDQxNi40IDE0MC41SDk2LjA1Qzg2LjQ2IDE0MC45IDc4LjYgMTQ0LjIgNzIuNDcgMTUwLjNDNjYuMzMgMTU2LjQgNjMuMDcgMTY0LjIgNjIuNjkgMTczLjhWMzY4LjJDNjIuNjkgMzc3LjQgNjUuOTUgMzg1LjIgNzIuNDcgMzkxLjdDNzguOTkgMzk4LjIgODYuODUgNDAxLjUgOTYuMDUgNDAxLjVINDE2LjRDNDI1LjYgNDAxLjUgNDMzLjQgMzk4LjIgNDM5LjcgMzkxLjdDNDQ2IDM4NS4yIDQ0OS40IDM3Ny40IDQ0OS44IDM2OC4yTDQ0OS44IDE3My44ek0xODUuNSAyMTYuNUMxOTEuOCAyMjIuOCAxOTUuMiAyMzAuNiAxOTUuNiAyMzkuN1YyNzNDMTk1LjIgMjgyLjIgMTkxLjkgMjg5LjkgMTg1LjggMjk2LjJDMTc5LjYgMzAyLjUgMTcxLjggMzA1LjcgMTYyLjIgMzA1LjdDMTUyLjYgMzA1LjcgMTQ0LjcgMzAyLjUgMTM4LjYgMjk2LjJDMTMyLjUgMjg5LjkgMTI5LjIgMjgyLjIgMTI4LjggMjczVjIzOS43QzEyOS4yIDIzMC42IDEzMi42IDIyMi44IDEzOC45IDIxNi41QzE0NS4yIDIxMC4yIDE1Mi4xIDIwNi45IDE2Mi4yIDIwNi41QzE3MS40IDIwNi45IDE3OS4yIDIxMC4yIDE4NS41IDIxNi41SDE4NS41ek0zNzcgMjE2LjVDMzgzLjMgMjIyLjggMzg2LjcgMjMwLjYgMzg3LjEgMjM5LjdWMjczQzM4Ni43IDI4Mi4yIDM4My40IDI4OS45IDM3Ny4zIDI5Ni4yQzM3MS4yIDMwMi41IDM2My4zIDMwNS43IDM1My43IDMwNS43QzM0NC4xIDMwNS43IDMzNi4zIDMwMi41IDMzMC4xIDI5Ni4yQzMyMy4xIDI4OS45IDMyMC43IDI4Mi4yIDMyMC40IDI3M1YyMzkuN0MzMjAuNyAyMzAuNiAzMjQuMSAyMjIuOCAzMzAuNCAyMTYuNUMzMzYuNyAyMTAuMiAzNDQuNSAyMDYuOSAzNTMuNyAyMDYuNUMzNjIuOSAyMDYuOSAzNzAuNyAyMTAuMiAzNzcgMjE2LjVIMzc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW1vYmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMySDMyQzE0LjQgMzIgMCA0Ni40IDAgNjR2Mzg0YzAgMTcuNiAxNC40IDMyIDMyIDMyaDM4NGMxNy42IDAgMzItMTQuNCAzMi0zMlY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnptLTY0IDI1Ny40YzAgNDkuNC0xMS40IDgyLjYtMTAzLjggODIuNmgtMTYuOWMtNDQuMSAwLTYyLjQtMTQuOS03MC40LTM4LjhoLS45VjM2OEg5NlYxMzZoNjR2NzQuN2gxLjFjNC42LTMwLjUgMzkuNy0zOC44IDY5LjctMzguOGgxNy4zYzkyLjQgMCAxMDMuOCAzMy4xIDEwMy44IDgyLjV2MzV6bS02NC0yOC45djIyLjljMCAyMS43LTMuNCAzMy44LTM4LjQgMzMuOGgtNDUuM2MtMjguOSAwLTQ0LjEtNi41LTQ0LjEtMzUuN3YtMTljMC0yOS4zIDE1LjItMzUuNyA0NC4xLTM1LjdoNDUuM2MzNS0uMiAzOC40IDEyIDM4LjQgMzMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0YnVja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjIgMzJBMTYgMTYgMCAwIDAgNiA0Ny44YTI2LjM1IDI2LjM1IDAgMCAwIC4yIDIuOGw2Ny45IDQxMi4xYTIxLjc3IDIxLjc3IDAgMCAwIDIxLjMgMTguMmgzMjUuN2ExNiAxNiAwIDAgMCAxNi0xMy40TDUwNSA1MC43YTE2IDE2IDAgMCAwLTEzLjItMTguMyAyNC41OCAyNC41OCAwIDAgMC0yLjgtLjJMMjIuMiAzMnptMjg1LjkgMjk3LjhoLTEwNGwtMjguMS0xNDdoMTU3LjNsLTI1LjIgMTQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaXRjb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4em0tMTQxLjY1MS0zNS4zM2M0LjkzNy0zMi45OTktMjAuMTkxLTUwLjczOS01NC41NS02Mi41NzNsMTEuMTQ2LTQ0LjcwMi0yNy4yMTMtNi43ODEtMTAuODUxIDQzLjUyNGMtNy4xNTQtMS43ODMtMTQuNTAyLTMuNDY0LTIxLjgwMy01LjEzbDEwLjkyOS00My44MS0yNy4xOTgtNi43ODEtMTEuMTUzIDQ0LjY4NmMtNS45MjItMS4zNDktMTEuNzM1LTIuNjgyLTE3LjM3Ny00LjA4NGwuMDMxLS4xNC0zNy41My05LjM3LTcuMjM5IDI5LjA2MnMyMC4xOTEgNC42MjcgMTkuNzY1IDQuOTEzYzExLjAyMiAyLjc1MSAxMy4wMTQgMTAuMDQ0IDEyLjY4IDE1LjgyNWwtMTIuNjk2IDUwLjkyNWMuNzYuMTk0IDEuNzQ0LjQ3MyAyLjgyOS45MDctLjkwNy0uMjI1LTEuODc2LS40NzMtMi44NzYtLjcxM2wtMTcuNzk2IDcxLjMzOGMtMS4zNDkgMy4zNDgtNC43NjcgOC4zNy0xMi40NzEgNi40NjQuMjcxLjM5NS0xOS43OC00LjkzNy0xOS43OC00LjkzN2wtMTMuNTEgMzEuMTQ3IDM1LjQxNCA4LjgyN2M2LjU4OCAxLjY1MSAxMy4wNDUgMy4zNzkgMTkuNCA1LjAwNmwtMTEuMjYyIDQ1LjIxMyAyNy4xODIgNi43ODEgMTEuMTUzLTQ0LjczM2ExMDM4LjIwOSAxMDM4LjIwOSAwIDAgMCAyMS42ODcgNS42MjdsLTExLjExNSA0NC41MjMgMjcuMjEzIDYuNzgxIDExLjI2Mi00NS4xMjhjNDYuNDA0IDguNzgxIDgxLjI5OSA1LjIzOSA5NS45ODYtMzYuNzI3IDExLjgzNi0zMy43OS0uNTg5LTUzLjI4MS0yNS4wMDQtNjUuOTkxIDE3Ljc4LTQuMDk4IDMxLjE3NC0xNS43OTIgMzQuNzQ3LTM5Ljk0OXptLTYyLjE3NyA4Ny4xNzljLTguNDEgMzMuNzktNjUuMzA4IDE1LjUyMy04My43NTUgMTAuOTQzbDE0Ljk0NC01OS44OTljMTguNDQ2IDQuNjAzIDc3LjYgMTMuNzE3IDY4LjgxMSA0OC45NTZ6bTguNDE3LTg3LjY2N2MtNy42NzMgMzAuNzM2LTU1LjAzMSAxNS4xMi03MC4zOTMgMTEuMjkybDEzLjU0OC01NC4zMjdjMTUuMzYzIDMuODI4IDY0LjgzNiAxMC45NzMgNTYuODQ1IDQzLjAzNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03OC40IDY3LjJDMTczLjgtMjIgMzI0LjUtMjQgNDIxLjUgNzFjMTQuMyAxNC4xLTYuNCAzNy4xLTIyLjQgMjEuNS04NC44LTgyLjQtMjE1LjgtODAuMy0yOTguOS0zLjItMTYuMyAxNS4xLTM2LjUtOC4zLTIxLjgtMjIuMXptOTguOSA0MTguNmMxOS4zIDUuNyAyOS4zLTIzLjYgNy45LTMwQzczIDQyMS45IDkuNCAzMDYuMSAzNy43IDE5NC44YzUtMTkuNi0yNC45LTI4LjEtMzAuMi03LjEtMzIuMSAxMjcuNCA0MS4xIDI1OS44IDE2OS44IDI5OC4xem0xNDguMS0yYzEyMS45LTQwLjIgMTkyLjktMTY2LjkgMTY0LjQtMjkxLTQuNS0xOS43LTM0LjktMTMuOC0zMCA3LjkgMjQuMiAxMDcuNy0zNy4xIDIxNy45LTE0My4yIDI1My40LTIxLjIgNy0xMC40IDM2IDguOCAyOS43em0tNjIuOS03OWwuMi03MS44YzAtOC4yLTYuNi0xNC44LTE0LjgtMTQuOC04LjIgMC0xNC44IDYuNy0xNC44IDE0LjhsLS4yIDcxLjhjMCA4LjIgNi42IDE0LjggMTQuOCAxNC44czE0LjgtNi42IDE0LjgtMTQuOHptNzEtMjY5YzIuMSA5MC45IDQuNyAxMzEuOS04NS41IDEzMi41LTkyLjUtLjctODYuOS00NC4zLTg1LjUtMTMyLjUgMC0yMS44LTMyLjUtMTkuNi0zMi41IDB2NzEuNmMwIDY5LjMgNjAuNyA5MC45IDExOCA5MC4xIDU3LjMuOCAxMTgtMjAuOCAxMTgtOTAuMXYtNzEuNmMwLTE5LjYtMzIuNS0yMS44LTMyLjUgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxhY2tUaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTMxNi41IDMyNS4yTDIyNCA0NDUuOWwtOTIuNS04OC43IDY0LjUtMTg0LTY0LjUtODYuNmgxODQuOUwyNTIgMTczLjJsNjQuNSAxODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsYWNrYmVycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY2IDExNi45YzAgMjMuNC0xNi40IDQ5LjEtNzIuNSA0OS4xSDIzLjRsMjEtODguOGg2Ny44YzQyLjEgMCA1My44IDIzLjMgNTMuOCAzOS43em0xMjYuMi0zOS43aC02Ny44TDIwNS43IDE2Nmg3MC4xYzUzLjggMCA3MC4xLTI1LjcgNzAuMS00OS4xLjEtMTYuNC0xMS42LTM5LjctNTMuNy0zOS43ek04OC44IDIwOC4xSDIxTDAgMjk2LjloNzAuMWM1Ni4xIDAgNzIuNS0yMy40IDcyLjUtNDkuMSAwLTE2LjMtMTEuNy0zOS43LTUzLjgtMzkuN3ptMTgwLjEgMGgtNjcuOGwtMTguNyA4OC44aDcwLjFjNTMuOCAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My43LTM5Ljd6bTE4OS4zLTUzLjhoLTY3LjhsLTE4LjcgODguOGg3MC4xYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43em0tMjggMTM3LjloLTY3LjhMMzQzLjcgMzgxaDcwLjFjNTYuMSAwIDcwLjEtMjMuNCA3MC4xLTQ5LjEgMC0xNi4zLTExLjYtMzkuNy01My43LTM5Ljd6TTI0MC44IDM0NkgxNzNsLTE4LjcgODguOGg3MC4xYzU2LjEgMCA3MC4xLTI1LjcgNzAuMS00OS4xLjEtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbG9nZ2VyQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDYuNiAyMjIuN2MtMS44LTgtNi44LTE1LjQtMTIuNS0xOC41LTEuOC0xLTEzLTIuMi0yNS0yLjctMjAuMS0uOS0yMi4zLTEuMy0yOC43LTUtMTAuMS01LjktMTIuOC0xMi4zLTEyLjktMjkuNS0uMS0zMy0xMy44LTYzLjctNDAuOS05MS4zLTE5LjMtMTkuNy00MC45LTMzLTY1LjUtNDAuNS01LjktMS44LTE5LjEtMi40LTYzLjMtMi45LTY5LjQtLjgtODQuOC42LTEwOC40IDEwQzQ1LjkgNTkuNSAxNC43IDk2LjEgMy4zIDE0Mi45IDEuMiAxNTEuNy43IDE2NS44LjIgMjQ2LjhjLS42IDEwMS41LjEgMTE2LjQgNi40IDEzNi41IDE1LjYgNDkuNiA1OS45IDg2LjMgMTA0LjQgOTQuMyAxNC44IDIuNyAxOTcuMyAzLjMgMjE2IC44IDMyLjUtNC40IDU4LTE3LjUgODEuOS00MS45IDE3LjMtMTcuNyAyOC4xLTM2LjggMzUuMi02Mi4xIDQuOS0xNy42IDQuNS0xNDIuOCAyLjUtMTUxLjd6bS0zMjIuMS02My42YzcuOC03LjkgMTAtOC4yIDU4LjgtOC4yIDQzLjkgMCA0NS40LjEgNTEuOCAzLjQgOS4zIDQuNyAxMy40IDExLjMgMTMuNCAyMS45IDAgOS41LTMuOCAxNi4yLTEyLjMgMjEuNi00LjYgMi45LTcuMyAzLjEtNTAuMyAzLjMtMjYuNS4yLTQ3LjctLjQtNTAuOC0xLjItMTYuNi00LjctMjIuOC0yOC41LTEwLjYtNDAuOHptMTkxLjggMTk5LjhsLTE0LjkgMi40LTc3LjUuOWMtNjguMS44LTg3LjMtLjQtOTAuOS0yLTcuMS0zLjEtMTMuOC0xMS43LTE0LjktMTkuNC0xLjEtNy4zIDIuNi0xNy4zIDguMi0yMi40IDcuMS02LjQgMTAuMi02LjYgOTcuMy02LjcgODkuNi0uMSA4OS4xLS4xIDk3LjYgNy44IDEyLjEgMTEuMyA5LjUgMzEuMi00LjkgMzkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxvZ2dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuNCAxOTZjNC44LTQuOSA2LjItNS4xIDM2LjQtNS4xIDI3LjIgMCAyOC4xLjEgMzIuMSAyLjEgNS44IDIuOSA4LjMgNyA4LjMgMTMuNiAwIDUuOS0yLjQgMTAtNy42IDEzLjQtMi44IDEuOC00LjUgMS45LTMxLjEgMi4xLTE2LjQuMS0yOS41LS4yLTMxLjUtLjgtMTAuMy0yLjktMTQuMS0xNy43LTYuNi0yNS4zem02MS40IDk0LjVjLTUzLjkgMC01NS44LjItNjAuMiA0LjEtMy41IDMuMS01LjcgOS40LTUuMSAxMy45LjcgNC43IDQuOCAxMC4xIDkuMiAxMiAyLjIgMSAxNC4xIDEuNyA1Ni4zIDEuMmw0Ny45LS42IDkuMi0xLjVjOS01LjEgMTAuNS0xNy40IDMuMS0yNC40LTUuMy00LjctNS00LjctNjAuNC00Ljd6bTIyMy40IDEzMC4xYy0zLjUgMjguNC0yMyA1MC40LTUxLjEgNTcuNS03LjIgMS44LTkuNyAxLjktMTcyLjkgMS44LTE1Ny44IDAtMTY1LjktLjEtMTcyLTEuOC04LjQtMi4yLTE1LjYtNS41LTIyLjMtMTAtNS42LTMuOC0xMy45LTExLjgtMTctMTYuNC0zLjgtNS42LTguMi0xNS4zLTEwLTIyQy4xIDQyMyAwIDQyMC4zIDAgMjU2LjMgMCA5My4yIDAgODkuNyAxLjggODIuNiA4LjEgNTcuOSAyNy43IDM5IDUzIDMzLjRjNy4zLTEuNiAzMzIuMS0xLjkgMzQwLS4zIDIxLjIgNC4zIDM3LjkgMTcuMSA0Ny42IDM2LjQgNy43IDE1LjMgNy0xLjUgNy4zIDE4MC42LjIgMTE1LjggMCAxNjQuNS0uNyAxNzAuNXptLTg1LjQtMTg1LjJjLTEuMS01LTQuMi05LjYtNy43LTExLjUtMS4xLS42LTgtMS4zLTE1LjUtMS43LTEyLjQtLjYtMTMuOC0uOC0xNy44LTMuMS02LjItMy42LTcuOS03LjYtOC0xOC4zIDAtMjAuNC04LjUtMzkuNC0yNS4zLTU2LjUtMTItMTIuMi0yNS4zLTIwLjUtNDAuNi0yNS4xLTMuNi0xLjEtMTEuOC0xLjUtMzkuMi0xLjgtNDIuOS0uNS01Mi41LjQtNjcuMSA2LjItMjcgMTAuNy00Ni4zIDMzLjQtNTMuNCA2Mi40LTEuMyA1LjQtMS42IDE0LjItMS45IDY0LjMtLjQgNjIuOCAwIDcyLjEgNCA4NC41IDkuNyAzMC43IDM3LjEgNTMuNCA2NC42IDU4LjQgOS4yIDEuNyAxMjIuMiAyLjEgMTMzLjcuNSAyMC4xLTIuNyAzNS45LTEwLjggNTAuNy0yNS45IDEwLjctMTAuOSAxNy40LTIyLjggMjEuOC0zOC41IDMuMi0xMC45IDIuOS04OC40IDEuNy05My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbHVlc2t5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy44IDI5NC43Yy0zLjMtLjQtNi43LS44LTEwLTEuM2MzLjQgLjQgNi43IC45IDEwIDEuM3pNMjg4IDIyNy4xQzI2MS45IDE3Ni40IDE5MC45IDgxLjkgMTI0LjkgMzUuM0M2MS42LTkuNCAzNy41LTEuNyAyMS42IDUuNUMzLjMgMTMuOCAwIDQxLjkgMCA1OC40UzkuMSAxOTQgMTUgMjEzLjljMTkuNSA2NS43IDg5LjEgODcuOSAxNTMuMiA4MC43YzMuMy0uNSA2LjYtLjkgMTAtMS40Yy0zLjMgLjUtNi42IDEtMTAgMS40Qzc0LjMgMzA4LjYtOS4xIDM0Mi44IDEwMC4zIDQ2NC41QzIyMC42IDU4OS4xIDI2NS4xIDQzNy44IDI4OCAzNjEuMWMyMi45IDc2LjcgNDkuMiAyMjIuNSAxODUuNiAxMDMuNGMxMDIuNC0xMDMuNCAyOC4xLTE1Ni02NS44LTE2OS45Yy0zLjMtLjQtNi43LS44LTEwLTEuM2MzLjQgLjQgNi43IC45IDEwIDEuM2M2NC4xIDcuMSAxMzMuNi0xNS4xIDE1My4yLTgwLjdDNTY2LjkgMTk0IDU3NiA3NSA1NzYgNTguNHMtMy4zLTQ0LjctMjEuNi01Mi45Yy0xNS44LTcuMS00MC0xNC45LTEwMy4yIDI5LjhDMzg1LjEgODEuOSAzMTQuMSAxNzYuNCAyODggMjI3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsdWV0b290aEIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTk2LjQ4IDI2MC4wMjNsOTIuNjI2LTEwMy4zMzNMMTQzLjEyNSAwdjIwNi4zM2wtODYuMTExLTg2LjExMS0zMS40MDYgMzEuNDA1IDEwOC4wNjEgMTA4LjM5OUwyNS42MDggMzY4LjQyMmwzMS40MDYgMzEuNDA1IDg2LjExMS04Ni4xMTFMMTQ1Ljg0IDUxMmwxNDguNTUyLTE0OC42NDQtOTcuOTEyLTEwMy4zMzN6bTQwLjg2LTEwMi45OTZsLTQ5Ljk3NyA0OS45NzgtLjMzOC0xMDAuMjk1IDUwLjMxNSA1MC4zMTd6TTE4Ny4zNjMgMzEzLjA0bDQ5Ljk3NyA0OS45NzgtNTAuMzE1IDUwLjMxNi4zMzgtMTAwLjI5NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmx1ZXRvb3RoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5Mi42IDE3MS4xTDI0OS43IDIxNGwtLjMtODYgNDMuMiA0My4xbS00My4yIDIxOS44bDQzLjEtNDMuMS00Mi45LTQyLjktLjIgODZ6TTQxNiAyNTkuNEM0MTYgNDY1IDM0NC4xIDUxMiAyMzAuOSA1MTJTMzIgNDY1IDMyIDI1OS40IDExNS40IDAgMjI4LjYgMCA0MTYgNTMuOSA0MTYgMjU5LjR6bS0xNTguNSAwbDc5LjQtODguNkwyMTEuOCAzNi41djE3Ni45TDEzOCAxMzkuNmwtMjcgMjYuOSA5Mi43IDkzLTkyLjcgOTMgMjYuOSAyNi45IDczLjgtNzMuOCAyLjMgMTcwIDEyNy40LTEyNy41LTgzLjktODguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9vdHN0cmFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMy41LDIwMS40YzAtMjIuMS0xNS42LTM0LjMtNDMtMzQuM2gtNTAuNHY3MS4yaDQyLjVDMzE1LjQsMjM4LjIsMzMzLjUsMjI1LDMzMy41LDIwMS40eiBNNTE3LDE4OC42IGMtOS41LTMwLjktMTAuOS02OC44LTkuOC05OC4xYzEuMS0zMC41LTIyLjctNTguNS01NC43LTU4LjVIMTIzLjdjLTMyLjEsMC01NS44LDI4LjEtNTQuNyw1OC41YzEsMjkuMy0wLjMsNjcuMi05LjgsOTguMSBjLTkuNiwzMS0yNS43LDUwLjYtNTIuMiw1My4xdjI4LjVjMjYuNCwyLjUsNDIuNiwyMi4xLDUyLjIsNTMuMWM5LjUsMzAuOSwxMC45LDY4LjgsOS44LDk4LjFjLTEuMSwzMC41LDIyLjcsNTguNSw1NC43LDU4LjVoMzI4LjcgYzMyLjEsMCw1NS44LTI4LjEsNTQuNy01OC41Yy0xLTI5LjMsMC4zLTY3LjIsOS44LTk4LjFjOS42LTMxLDI1LjctNTAuNiw1Mi4xLTUzLjF2LTI4LjVDNTQyLjcsMjM5LjIsNTI2LjUsMjE5LjYsNTE3LDE4OC42eiBNMzAwLjIsMzc1LjFoLTk3LjlWMTM2LjhoOTcuNGM0My4zLDAsNzEuNywyMy40LDcxLjcsNTkuNGMwLDI1LjMtMTkuMSw0Ny45LTQzLjUsNTEuOHYxLjNjMzMuMiwzLjYsNTUuNSwyNi42LDU1LjUsNTguMyBDMzgzLjQsMzQ5LjcsMzUyLjEsMzc1LjEsMzAwLjIsMzc1LjF6IE0yOTAuMiwyNjYuNGgtNTAuMXY3OC40aDUyLjNjMzQuMiwwLDUyLjMtMTMuNyw1Mi4zLTM5LjUgQzM0NC43LDI3OS42LDMyNi4xLDI2Ni40LDI5MC4yLDI2Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg2LjM0NCwxOTcuODM0YTUxLjc2Nyw1MS43NjcsMCwwLDAtNDEuNTcsMjAuMDU4VjE1Ni4wMThhOC4xOSw4LjE5LDAsMCwwLTguMTktOC4xOUg4LjE5QTguMTksOC4xOSwwLDAsMCwwLDE1Ni4wMThWMzMzLjU1MWE4LjE4OSw4LjE4OSwwLDAsMCw4LjE5LDguMTg5SDM2LjU4NGE4LjE4OSw4LjE4OSwwLDAsMCw4LjE5LTguMTg5di04LjA4OGMxMS42MjgsMTMuMzczLDI1Ljg3NCwxOS43NjksNDEuNTczLDE5Ljc2OSwzNC42LDAsNjEuOTIyLTI2LjE2NCw2MS45MjItNzMuODQzQzE0OC4yNjYsMjI1LjQ1MiwxMjEuMjI5LDE5Ny44MzQsODYuMzQ0LDE5Ny44MzRaTTcxLjUxNiwzMDUuNjkxYy05LjU5MywwLTIxLjIyMS00Ljk0Mi0yNi43NDUtMTIuNVYyNTAuMTY0YzUuNTI4LTcuNTU4LDE3LjE1Mi0xMi43OTEsMjYuNzQ1LTEyLjc5MSwxNy43MzQsMCwzMS4xMDcsMTMuMDgyLDMxLjEwNywzNC4wMTNDMTAyLjYyMywyOTIuNjA5LDg5LjI1LDMwNS42OTEsNzEuNTE2LDMwNS42OTFabTE1Ni4zNzItNTkuMDMyYTE3LjQsMTcuNCwwLDEsMCwxNy40LDE3LjRBMTcuNCwxNy40LDAsMCwwLDIyNy44ODgsMjQ2LjY1OVpNMjczLjk1NiwxNTYuN1YxMTIuMDM5YTEzLjMwOCwxMy4zMDgsMCwxLDAtMTAuMjM3LDBWMTU2LjdhMTA3LjQ5LDEwNy40OSwwLDEsMCwxMC4yMzcsMFptODUuOTkzLDEwNy4zNjdjMCwzMC41MzEtNDAuNzkyLDU1LjI4MS05MS4xMTIsNTUuMjgxcy05MS4xMTEtMjQuNzUtOTEuMTExLTU1LjI4MSw0MC43OTItNTUuMjgxLDkxLjExMS01NS4yODFTMzU5Ljk0OSwyMzMuNTMyLDM1OS45NDksMjY0LjA2MlptLTUwLjE2MywxNy40YTE3LjQsMTcuNCwwLDEsMC0xNy40LTE3LjRoMEExNy40LDE3LjQsMCwwLDAsMzA5Ljc4NiwyODEuNDY2Wk01ODAuNywyNTAuNDU1Yy0xNC44MjgtMi42MTctMjIuMzg3LTMuNzgtMjIuMzg3LTkuODg1LDAtNS41MjMsNy4yNjgtOS44ODQsMTcuNzM1LTkuODg0YTY1LjU2LDY1LjU2LDAsMCwxLDM0LjQ4NCwxMC4xLDguMTcxLDguMTcxLDAsMCwwLDExLjI4OC0yLjQ2OGMuMDctLjExLjEzOC0uMjIxLjItLjMzM2w4LjYxMS0xNC44ODZhOC4yLDguMiwwLDAsMC0yLjg2Ny0xMS4xMjMsOTkuODYzLDk5Ljg2MywwLDAsMC01Mi4wMTQtMTQuMTM4Yy0zOC45NTYsMC02MC4xNzksMjEuNTE0LTYwLjE3OSw0Ni4yMjUsMCwzNi4zNDIsMzMuNzI1LDQxLjg2NCw1Ny41NjMsNDUuNjQyLDEzLjM3MywyLjMyNiwyNC4xMyw0LjM2MSwyNC4xMywxMS4wNDgsMCw2LjQtNS41MjMsMTAuNzU3LTE4LjksMTAuNzU3LTEzLjU1MiwwLTMwLjk5NC02LjIyMi00Mi42MjMtMTMuNTc5YTguMjA2LDguMjA2LDAsMCwwLTExLjMzNSwyLjQ5MWMtLjAzNS4wNTQtLjA2OS4xMDgtLjEuMTY0bC0xMC4yLDE2Ljg5MWE4LjIyMiw4LjIyMiwwLDAsMCwyLjQ5MSwxMS4wNjZjMTUuMjI0LDEwLjMsMzcuNjYzLDE2LjY5Miw1OS40NDEsMTYuNjkyLDQwLjQwOSwwLDYzLjk1Ny0xOS43NjksNjMuOTU3LTQ2LjUxNUM2NDAsMjYwLjYzLDYwNC41MzcsMjU0LjgxNiw1ODAuNywyNTAuNDU1Wm0tOTUuOTI4LDYwLjc4N2E4LjIxMSw4LjIxMSwwLDAsMC05LjUyMS01LjkzOCwyMy4xNjgsMjMuMTY4LDAsMCwxLTQuMTU1LjM4N2MtNy44NDksMC0xMi41LTYuMTA2LTEyLjUtMTQuMjQ1VjI0MC4yOGgyMC4zNDlhOC4xNDMsOC4xNDMsMCwwLDAsOC4xNDEtOC4xNDNWMjA5LjQ2NmE4LjE0Myw4LjE0MywwLDAsMC04LjE0MS04LjE0M0g0NTguNTk0VjE3MS4wOTFhOC4xNDMsOC4xNDMsMCwwLDAtOC4xNDMtOC4xNDNINDIyLjI1N2E4LjE0Myw4LjE0MywwLDAsMC04LjE0Myw4LjE0M2gwdjMwLjIzMkgzOTlhOC4xNDMsOC4xNDMsMCwwLDAtOC4xNDMsOC4xNDNoMHYyMi42NzFBOC4xNDMsOC4xNDMsMCwwLDAsMzk5LDI0MC4yOGgxNS4xMTV2NjMuNjY3YzAsMjcuMDM3LDE1LjQwOCw0MS4yODIsNDMuOSw0MS4yODIsMTIuMTgzLDAsMjEuMzgzLTIuMiwyNy42LTUuNDQ2YTguMTYxLDguMTYxLDAsMCwwLDQuMTQ1LTkuMjc4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmF2ZVJldmVyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4IDBjMyAwIDUuOCAxLjMgNy44IDMuNmwzOC4xIDQ0Yy41LS4xIDEtLjIgMS41LS4zYzkuMi0xLjYgMTguNi0yLjIgMjcuNy0xLjJjMTEuNiAxLjQgMjEuNSA1LjQgMjguOSAxMi45YzcuNyA3LjggMTUuNCAxNS44IDIyLjYgMjMuNmMyLjUgMi43IDQuOSA1LjIgNi45IDcuNGMuNyAuOCAxLjQgMS41IDEuOSAyYzMuNCAzLjcgNC4yIDguMSAyLjcgMTEuOWwtOS44IDI0LjYgMTMuMSAzOC4xYy43IDIgLjggNC4xIC4yIDYuMmMtLjEgLjQtLjEgLjQtLjUgMi4xYy0uNiAyLjMtLjYgMi4zLTEuNSA1LjhjLTEuNiA2LjMtMy41IDEzLjMtNS40IDIwLjljLTUuNiAyMS42LTExLjIgNDMuMi0xNi40IDYzLjRjLTEyLjkgNDkuOS0yMS40IDgyLjctMjMuNCA5MC45Yy0xMS4xIDQ0LjUtMTkuOSA2MC00OC4zIDgwLjNjLTI0LjkgMTcuOC03Ni44IDUzLjYtODYuOCA2MGMtMSAuNi0yIDEuMy0zLjQgMi4zYy0uNSAuNC0zLjIgMi4yLTMuOSAyLjdjLTQuOSAzLjMtOC4zIDUuNS0xMi4xIDcuM2MtNC43IDIuMi05LjMgMy41LTEzLjkgMy41cy05LjEtMS4yLTEzLjktMy41Yy0zLjctMS44LTcuMi0zLjktMTIuMS03LjNjLS44LS41LTMuNC0yLjQtMy45LTIuN2MtMS40LTEtMi41LTEuNy0zLjQtMi4zYy0xMC02LjQtNjEuOS00Mi4xLTg2LjgtNjBjLTI4LjQtMjAuNC0zNy4yLTM1LjgtNDguMy04MC4zYy0yLTguMi0xMC41LTQxLTIzLjMtOTAuNWMtNS4zLTIwLjYtMTAuOS00Mi4yLTE2LjUtNjMuOGMtMi03LjYtMy44LTE0LjYtNS40LTIwLjljLS45LTMuNS0uOS0zLjUtMS41LTUuOGMtLjQtMS43LS40LTEuNy0uNS0yLjFjLS41LTItLjQtNC4yIC4yLTYuMmwxMy4xLTM4LjFMMTEuOCAxMDRjLTEuNS0zLjgtLjctOC4yIDItMTEuMmMxLjItMS4zIDEuOC0yIDIuNi0yLjhjMi0yLjIgNC40LTQuNyA2LjktNy40QzMwLjYgNzQuOSAzOC4zIDY2LjkgNDYgNTkuMWM3LjQtNy41IDE3LjMtMTEuNiAyOC45LTEyLjljOS4xLTEuMSAxOC41LS41IDI3LjcgMS4yYy41IC4xIDEgLjIgMS41IC4zbDM4LjEtNDRDMTQ0LjIgMS4zIDE0NyAwIDE1MCAwSDI5OHptLTQuNyAyMS4xSDE1NC43TDExNS42IDY2LjJjLTIuNiAzLTYuNyA0LjMtMTAuNiAzLjJjLS4yLS4xLS43LS4yLTEuNS0uNGMtMS4zLS4zLTIuOS0uNi00LjUtLjljLTcuNC0xLjMtMTQuOS0xLjgtMjEuNy0xQzcwIDY4IDY0LjMgNzAuMyA2MC43IDc0Yy03LjYgNy43LTE1LjIgMTUuNi0yMi4zIDIzLjNjLTEuNyAxLjgtMy4zIDMuNS00LjggNS4xbDguOCAyMmMxIDIuNCAxIDUgLjIgNy41TDI5LjIgMTcwLjZjLjQgMS40IC41IDEuOSAxLjIgNC44YzEuNiA2LjMgMy41IDEzLjMgNS40IDIwLjljNS42IDIxLjYgMTEuMiA0My4yIDE2LjQgNjMuNGMxMi45IDUwIDIxLjQgODIuOCAyMy40IDkxQzg1LjcgMzkwLjggOTIgNDAyIDExNS44IDQxOWMyNC42IDE3LjYgNzYuMyA1My4yIDg1LjkgNTkuM2MxLjIgLjggMi41IDEuNiA0IDIuN2MuNiAuNCAzLjIgMi4yIDMuOSAyLjdjNCAyLjggNi43IDQuNCA5LjIgNS42YzIuMiAxIDMuOSAxLjUgNS4xIDEuNXMyLjktLjUgNS4xLTEuNWMyLjUtMS4yIDUuMi0yLjggOS4yLTUuNmMuNy0uNSAzLjMtMi4zIDMuOS0yLjdjMS42LTEuMSAyLjgtMS45IDQtMi43YzkuNi02LjEgNjEuMy00MS43IDg1LjktNTkuM2MyMy44LTE3LjEgMzAuMi0yOC4yIDQwLjEtNjguM2MyLjEtOC4zIDEwLjUtNDEuMSAyMy4zLTkwLjdjNS4zLTIwLjYgMTAuOS00Mi4yIDE2LjUtNjMuOGMyLTcuNiAzLjgtMTQuNiA1LjQtMjAuOWMuNy0yLjkgLjktMy40IDEuMi00LjhsLTEzLjMtMzguOGMtLjgtMi40LS44LTUuMSAuMi03LjVsOC44LTIyYy0xLjUtMS42LTMuMS0zLjMtNC44LTUuMWMtNy4yLTcuNi0xNC43LTE1LjUtMjIuMy0yMy4zYy0zLjctMy43LTkuMy02LTE2LjYtNi45Yy02LjgtLjgtMTQuNC0uMy0yMS43IDFjLTEuNyAuMy0zLjIgLjYtNC41IC45Yy0uOCAuMi0xLjMgLjMtMS41IC40Yy0zLjggMS4xLTcuOS0uMi0xMC42LTMuMkwyOTMuMyAyMS4xek0yMjQgMzE2YzIuOCAwIDIwLjkgNi41IDM1LjQgMTQuMXMyNSAxMyAyOC4zIDE1LjJzMS4zIDYuMi0xLjcgOC40cy00NC4xIDM0LjYtNDguMSAzOC4ycy05LjggOS41LTEzLjggOS41cy05LjgtNS45LTEzLjgtOS41cy00NS4xLTM2LTQ4LjEtMzguMnMtNS4xLTYuMi0xLjctOC40czEzLjktNy41IDI4LjMtMTUuMnMzMi41LTE0LjEgMzUuNC0xNC4xem0uMS0yMzAuN2MuNyAwIDguOCAuMiAyMC41IDQuMmMxMi4zIDQuMiAyNS43IDkuNCAzMS45IDkuNHM1MS45LTguOSA1MS45LTguOXM1NC4yIDY2LjcgNTQuMiA4MXMtNi44IDE4LTEzLjcgMjUuNHMtMzYuOCAzOS44LTQwLjcgNDMuOXMtMTEuOSAxMC41LTcuMSAyMS44czExLjcgMjUuOCAzLjkgNDAuNHMtMjEgMjQuNC0yOS40IDIyLjhzLTI4LjQtMTIuMi0zNS43LTE3LjFzLTMwLjUtMjQuMy0zMC41LTMxLjhzMjQtMjAuOCAyOC40LTIzLjlzMjQuNy0xNC44IDI1LjEtMTkuNHMuMy02LTUuNy0xNy40cy0xNi43LTI2LjctMTQuOS0zNi44czE5LjEtMTUuNCAzMS41LTIwLjJzMzYuMi0xMy43IDM5LjItMTUuMXMyLjItMi43LTYuOC0zLjZzLTM0LjYtNC4zLTQ2LjEtMS4xcy0zMS4yIDguMi0zMi44IDEwLjlzLTMgMi43LTEuNCAxMS44czEwLjEgNTIuOCAxMC45IDYwLjZzMi40IDEyLjktNS44IDE0LjhzLTIyLjEgNS4yLTI2LjggNS4ycy0xOC42LTMuMy0yNi44LTUuMnMtNi42LTctNS44LTE0LjhzOS4zLTUxLjUgMTAuOS02MC42cy4yLTkuMi0xLjQtMTEuOHMtMjEuMy03LjYtMzIuOC0xMC45cy0zNy4xIC4yLTQ2LjEgMS4xcy05LjggMi4yLTYuOCAzLjZzMjYuOCAxMC40IDM5LjIgMTUuMXMyOS43IDEwIDMxLjUgMjAuMnMtOSAyNS40LTE0LjkgMzYuOHMtNi4xIDEyLjgtNS43IDE3LjRzMjAuNiAxNi40IDI1LjEgMTkuNHMyOC40IDE2LjQgMjguNCAyMy45cy0yMy4yIDI3LTMwLjUgMzEuOHMtMjcuMiAxNS40LTM1LjcgMTcuMXMtMjEuNy04LjItMjkuNC0yMi44cy0uOC0yOS4xIDMuOS00MC40cy0zLjMtMTcuNy03LjEtMjEuOHMtMzMuOC0zNi41LTQwLjctNDMuOXMtMTMuNy0xMS4yLTEzLjctMjUuNHM1NC4yLTgxIDU0LjItODFzNDUuOCA4LjkgNTEuOSA4LjlzMTkuNS01LjIgMzEuOS05LjRzMjAuNi00LjIgMjAuNi00LjJsLjEgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ1LjUgMEgyMjRoNzguNWw0NC43IDUwLjhzMzkuMy0xMC45IDU3LjggNy42czMzLjggMzQuOSAzMy44IDM0LjlsLTEyIDI5LjUgMTUuMyA0My43cy00NC45IDE3MC4yLTUwLjEgMTkxYy0xMC40IDQwLjktMTcuNCA1Ni44LTQ2LjkgNzcuNXMtODIuOSA1Ni44LTkxLjYgNjIuMmMtMS45IDEuMi0zLjkgMi41LTUuOSAzLjljLTcuNSA1LjEtMTUuOCAxMC44LTIzLjUgMTAuOGwwIDAgMCAwYy03LjcgMC0xNi4xLTUuNy0yMy41LTEwLjhjLTItMS40LTQtMi44LTUuOS0zLjljLTguNy01LjUtNjIuMS00MS41LTkxLjYtNjIuMnMtMzYuNS0zNi42LTQ2LjktNzcuNWMtNS4zLTIwLjgtNTAuMS0xOTEtNTAuMS0xOTFsMTUuMy00My43TDkuMiA5My4zczE1LjMtMTYuNCAzMy44LTM0LjlzNTcuOC03LjYgNTcuOC03LjZMMTQ1LjUgMHpNMjI0IDQwNy42bDAgMGMzLjcgMCA4LjktNC43IDEzLTguNGMuNi0uNSAxLjItMS4xIDEuNy0xLjVjNC4yLTMuNyA0Ny44LTM3LjUgNTEtMzkuOHM1LjQtNi41IDEuOS04LjdjLTIuOC0xLjctMTAtNS41LTIwLjMtMTAuOGMtMy0xLjYtNi4zLTMuMi05LjctNWMtMTUuNC04LTM0LjUtMTQuNy0zNy41LTE0LjdsMCAwIDAgMGMtMyAwLTIyLjEgNi44LTM3LjUgMTQuN2MtMy41IDEuOC02LjcgMy41LTkuNyA1Yy0xMC4zIDUuMy0xNy42IDkuMS0yMC4zIDEwLjhjLTMuNiAyLjItMS40IDYuNCAxLjkgOC43czQ2LjggMzYuMSA1MSAzOS44Yy41IC41IDEuMSAxIDEuNyAxLjVjNC4xIDMuNyA5LjMgOC40IDEzIDguNGwwIDB6bTAtMTY1LjdsMCAwYzQuNyAwIDE3LjYtMyAyNi40LTVsMCAwIDItLjVjNy44LTEuOCA3LjMtNi4zIDYuNC0xM2MtLjEtLjgtLjItMS42LS4zLTIuNGMtLjYtNi4xLTUuOC0zMy4xLTkuMS01MC4zYy0xLjEtNS44LTItMTAuNS0yLjQtMTIuOWMtMS41LTguMS0uNi05LjQgLjctMTEuM2MuMi0uMyAuNS0uNyAuNy0xLjFjMS40LTIuMyAxNi02LjIgMjcuOS05LjVsMCAwYzIuNS0uNyA0LjgtMS4zIDYuOS0xLjljMTAuNi0zIDMyLjQtLjYgNDQuMiAuNmMxLjggLjIgMy40IC40IDQuNyAuNWM5LjYgLjkgMTAuNCAyLjMgNy4yIDMuOGMtMi4zIDEuMS0xNi4yIDYuMy0yOC43IDEwLjlsMCAwIDAgMGMtNC43IDEuOC05LjIgMy41LTEyLjggNC44Yy0xLjUgLjUtMyAxLjEtNC41IDEuN2MtMTIuNSA0LjYtMjcuMiAxMC0yOC45IDE5LjRjLTEuNSA4LjMgNS4yIDE5LjkgMTEuMyAzMC4zbDAgMGMxLjYgMi44IDMuMiA1LjUgNC42IDguMWM2LjMgMTEuOSA2LjUgMTMuMyA2LjEgMTguMWMtLjQgMy45LTE0LjUgMTIuNy0yMi40IDE3LjZsMCAwYy0xLjggMS4xLTMuMyAyLjEtNC4yIDIuN2MtLjggLjUtMi4xIDEuNC0zLjggMi40Yy04LjYgNS4yLTI2LjMgMTYtMjYuMyAyMi41YzAgNy44IDI0LjYgMjguMSAzMi40IDMzLjJzMjguOSAxNi4xIDM3LjkgMTcuOHMyMy04LjUgMzEuMi0yMy44YzcuNy0xNC40IDEuNy0yOC41LTMuMi00MGwtLjktMi4yYy00LjUtMTAuNiAxLjktMTcgNi4yLTIxLjNsMCAwYy41LS41IDEtMSAxLjQtMS40TDM3Ny43IDE5NGMxLjMtMS4zIDIuNS0yLjYgMy43LTMuOGwwIDBjNS44LTUuNyAxMC44LTEwLjUgMTAuOC0yMi44YzAtMTQuOS01Ny41LTg0LjUtNTcuNS04NC41cy00OC41IDkuMy01NS4xIDkuM2MtNS4yIDAtMTUuMy0zLjUtMjUuOC03LjFsMCAwYy0yLjctLjktNS40LTEuOS04LTIuN0MyMzIuOCA3OC4xIDIyNCA3OCAyMjQgNzhsMCAwIDAgMHMtOC43IDAtMjEuOCA0LjRjLTIuNyAuOS01LjQgMS44LTggMi43bDAgMGMtMTAuNSAzLjYtMjAuNiA3LjEtMjUuOCA3LjFjLTYuNSAwLTU1LjEtOS4zLTU1LjEtOS4zcy01Ny41IDY5LjYtNTcuNSA4NC41YzAgMTIuMyA0LjkgMTcuMSAxMC44IDIyLjhsMCAwYzEuMiAxLjIgMi41IDIuNCAzLjcgMy44bDQzLjEgNDUuOGMuNCAuNSAuOSAuOSAxLjQgMS40bDAgMGM0LjMgNC4zIDEwLjYgMTAuNyA2LjIgMjEuM2wtLjkgMi4yYy00LjkgMTEuNS0xMSAyNS42LTMuMiA0MGM4LjIgMTUuMyAyMi4yIDI1LjUgMzEuMiAyMy44czMwLjEtMTIuNyAzNy45LTE3LjhzMzIuNC0yNS40IDMyLjQtMzMuMmMwLTYuNS0xNy43LTE3LjMtMjYuMy0yMi41Yy0xLjctMS0zLjEtMS45LTMuOC0yLjRjLS45LS42LTIuNC0xLjUtNC4yLTIuN2MtNy45LTQuOS0yMi0xMy43LTIyLjQtMTcuNmMtLjQtNC44LS4zLTYuMiA2LjEtMTguMWMxLjMtMi41IDIuOS01LjMgNC42LTguMWM2LTEwLjQgMTIuOC0yMiAxMS4zLTMwLjNjLTEuNy05LjQtMTYuNC0xNC44LTI4LjktMTkuNGMtMS42LS42LTMuMS0xLjEtNC41LTEuN2MtMy42LTEuNC04LjEtMy4xLTEyLjgtNC44bC0uMSAwYy0xMi41LTQuNy0yNi40LTkuOS0yOC43LTEwLjljLTMuMi0xLjUtMi4zLTIuOCA3LjItMy44YzEuMy0uMSAyLjktLjMgNC43LS41YzExLjgtMS4zIDMzLjYtMy42IDQ0LjItLjZjMi4xIC42IDQuNCAxLjIgNi45IDEuOWMxMS45IDMuMiAyNi41IDcuMiAyNy45IDkuNWMuMiAuNCAuNSAuNyAuNyAxLjFjMS4zIDEuOSAyLjIgMy4yIC43IDExLjNjLS40IDIuNC0xLjMgNy4xLTIuNCAxMi45Yy0zLjMgMTcuMi04LjUgNDQuMi05LjEgNTAuM2MtLjEgLjgtLjIgMS43LS4zIDIuNGMtLjggNi43LTEuNCAxMS4yIDYuNCAxM2wyIC41IDAgMGM4LjggMiAyMS44IDUgMjYuNCA1bDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnRjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMC4yMDQgMjQyLjYzOGMyNy43My0xNC4xOCA0NS4zNzctMzkuMzkgNDEuMjgtODEuMy01LjM1OC01Ny4zNTEtNTIuNDU4LTc2LjU3My0xMTQuODUtODEuOTI5VjBoLTQ4LjUyOHY3Ny4yMDNjLTEyLjYwNSAwLTI1LjUyNS4zMTUtMzguNDQ0LjYzVjBoLTQ4LjUyOHY3OS40MDljLTE3Ljg0Mi41MzktMzguNjIyLjI3Ni05Ny4zNyAwdjUxLjY3OGMzOC4zMTQtLjY3OCA1OC40MTctMy4xNCA2My4wMjMgMjEuNDI3djIxNy40MjljLTIuOTI1IDE5LjQ5Mi0xOC41MjQgMTYuNjg1LTUzLjI1NSAxNi4wNzFMMy43NjUgNDQzLjY4Yzg4LjQ4MSAwIDk3LjM3LjMxNSA5Ny4zNy4zMTVWNTEyaDQ4LjUyOHYtNjcuMDZjMTMuMjM0LjMxNSAyNi4xNTQuMzE1IDM4LjQ0NC4zMTVWNTEyaDQ4LjUyOHYtNjguMDA1YzgxLjI5OS00LjQxMiAxMzUuNjQ3LTI0Ljg5NCAxNDIuODk1LTEwMS40NjcgNS42NzEtNjEuNDQ2LTIzLjMyLTg4Ljg2Mi02OS4zMjYtOTkuODl6TTE1MC42MDggMTM0LjU1M2MyNy40MTUgMCAxMTMuMTI2LTguNTA3IDExMy4xMjYgNDguNTI4IDAgNTQuNTE1LTg1LjcxIDQ4LjIxMi0xMTMuMTI2IDQ4LjIxMnYtOTYuNzR6bTAgMjUxLjc3NlYyNzkuODIxYzMyLjc3MiAwIDEzMy4xMjctOS4xMzggMTMzLjEyNyA1My4yNTUtLjAwMSA2MC4xODYtMTAwLjM1NSA1My4yNTMtMTMzLjEyNyA1My4yNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1ZmZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjcuODQgMzgwLjY3bC0xOTYuNSA5Ny44MmExOC42IDE4LjYgMCAwIDEtMTQuNjcgMEwyMC4xNiAzODAuNjdjLTQtMi00LTUuMjggMC03LjI5TDY3LjIyIDM1MGExOC42NSAxOC42NSAwIDAgMSAxNC42OSAwbDEzNC43NiA2N2ExOC41MSAxOC41MSAwIDAgMCAxNC42NyAwbDEzNC43Ni02N2ExOC42MiAxOC42MiAwIDAgMSAxNC42OCAwbDQ3LjA2IDIzLjQzYzQuMDUgMS45NiA0LjA1IDUuMjQgMCA3LjI0em0wLTEzNi41M2wtNDcuMDYtMjMuNDNhMTguNjIgMTguNjIgMCAwIDAtMTQuNjggMGwtMTM0Ljc2IDY3LjA4YTE4LjY4IDE4LjY4IDAgMCAxLTE0LjY3IDBMODEuOTEgMjIwLjcxYTE4LjY1IDE4LjY1IDAgMCAwLTE0LjY5IDBsLTQ3LjA2IDIzLjQzYy00IDItNCA1LjI5IDAgNy4zMWwxOTYuNTEgOTcuOGExOC42IDE4LjYgMCAwIDAgMTQuNjcgMGwxOTYuNS05Ny44YzQuMDUtMi4wMiA0LjA1LTUuMyAwLTcuMzF6TTIwLjE2IDEzMC40MmwxOTYuNSA5MC4yOWEyMC4wOCAyMC4wOCAwIDAgMCAxNC42NyAwbDE5Ni41MS05MC4yOWM0LTEuODYgNC00Ljg5IDAtNi43NEwyMzEuMzMgMzMuNGExOS44OCAxOS44OCAwIDAgMC0xNC42NyAwbC0xOTYuNSA5MC4yOGMtNC4wNSAxLjg1LTQuMDUgNC44OCAwIDYuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1cm9tb2JlbGV4cGVydGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnYxMjhoMTI4VjMySDB6bTEyMCAxMjBIOFY0MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzMkgxNjB6bTEyMCAxMjBIMTY4VjQwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjMySDMyMHptMTIwIDEyMEgzMjhWNDBoMTEydjExMnpNMCAxOTJ2MTI4aDEyOFYxOTJIMHptMTIwIDEyMEg4VjIwMGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYxOTJIMTYwem0xMjAgMTIwSDE2OFYyMDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMTkySDMyMHptMTIwIDEyMEgzMjhWMjAwaDExMnYxMTJ6TTAgMzUydjEyOGgxMjhWMzUySDB6bTEyMCAxMjBIOFYzNjBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzUySDE2MHptMTIwIDEyMEgxNjhWMzYwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjM1MkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1eU5MYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJDMTMzLjI3IDMyIDcuNzkgMTMyLjMyIDcuNzkgMjU2UzEzMy4yNyA0ODAgMjg4IDQ4MHMyODAuMjEtMTAwLjMyIDI4MC4yMS0yMjRTNDQyLjczIDMyIDI4OCAzMnptLTg1LjM5IDM1Ny4xOUw2NC4xIDM5MC41NWw3Ny4yNS0yOTAuNzRoMTMzLjQ0YzYzLjE1IDAgODQuOTMgMjguNjUgNzggNzIuODRhNjAuMjQgNjAuMjQgMCAwIDEtMS41IDYuODUgNzcuMzkgNzcuMzkgMCAwIDAtMTcuMjEtMS45M2MtNDIuMzUgMC03Ni42OSAzMy44OC03Ni42OSA3NS42NSAwIDM3LjE0IDI3LjE0IDY4IDYyLjkzIDc0LjQ1LTE4LjI0IDM3LjE2LTU2LjE2IDYwLjkyLTExNy43MSA2MS41MnpNMzU4IDIwNy4xMWgzMmwtMjIuMTYgOTAuMzFoLTM1LjQxbC0xMS4xOS0zNS42My03LjgzIDM1LjYzaC0zNy44M2wyNi42My05MC4zMWgzMS4zNGwxNSAzNi43NXptMTQ1Ljg2IDE4Mi4wOEgzMDYuNzlMMzIyLjYzIDMyOGE3OC44IDc4LjggMCAwIDAgMTEuNDcuODNjNDIuMzQgMCA3Ni42OS0zMy44NyA3Ni42OS03NS42NSAwLTMyLjY1LTIxLTYwLjQ2LTUwLjM4LTcxLjA2bDIxLjMzLTgyLjM1aDkyLjVsLTUzLjA1IDIwNS4zNmgxMDMuODd6TTIxMS43IDI2OS4zOUgxODdsLTEzLjggNTYuNDdoMjQuN2MxNi4xNCAwIDMyLjExLTMuMTggMzcuOTQtMjYuNjUgNS41Ni0yMi4zMS03Ljk5LTI5LjgyLTI0LjE0LTI5Ljgyek0yMzMgMTcwaC0yMS4zNEwyMDAgMjE3LjcxaDIxLjM3YzE4IDAgMzUuMzgtMTQuNjQgMzkuMjEtMzAuMTRDMjY1LjIzIDE2OC43MSAyNTEuMDcgMTcwIDIzMyAxNzB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1eXNlbGxhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDE1MC43bDQyLjkgMTYwLjdoLTg1LjhMMjI0IDE1MC43ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NS4zIDMyNS4zbC05NC41LTI5OC43SDE1OS44TDY1LjMgNDA1LjNIMTU2bDExMS43LTkxLjYgMjQuMiA5MS42aDkwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbmFkaWFuTWFwbGVMZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4My44IDM1MS43YzIuNS0yLjUgMTA1LjItOTIuNCAxMDUuMi05Mi40bC0xNy41LTcuNWMtMTAtNC45LTcuNC0xMS41LTUtMTcuNCAyLjQtNy42IDIwLjEtNjcuMyAyMC4xLTY3LjNzLTQ3LjcgMTAtNTcuNyAxMi41Yy03LjUgMi40LTEwLTIuNS0xMi41LTcuNXMtMTUtMzIuNC0xNS0zMi40LTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMCAwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNUMyOTMuNSA3Mi4zIDI1NS45IDAgMjU1LjkgMHMtMzcuNSA3Mi4zLTQyLjUgNzkuOGMtNSAxMC0xMCAxMC0xNy42IDUtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzE4My4zIDE4MiAxODMuMyAxOTJjMi41IDEwLTcuNSAxNy41LTE3LjYgMTAtMi41LTIuNS01NS4xLTYyLjMtNTUuMS02Mi4zUzk4LjEgMTY3IDk1LjYgMTcycy01IDkuOS0xMi41IDcuNUM3MyAxNzcgMjUuNCAxNjcgMjUuNCAxNjdzMTcuNiA1OS43IDIwLjEgNjcuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDIzIDI1OS4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjUtNS4xIDE1LTEwLjEgMzUuMS0xMC4xIDM1LjFzOTUuMi0yMC4xIDEwNS4zLTIyLjZjOC43LS45IDE4LjMgMi41IDE4LjMgMTIuNVMyNDEgNTEyIDI0MSA1MTJoMzBzLTUuOC0xMDIuNy01LjgtMTEyLjggOS41LTEzLjQgMTguNC0xMi41YzEwIDIuNSAxMDUuMiAyMi42IDEwNS4yIDIyLjZzLTUtMjAuMS0xMC0zNS4xIDAtMTcuNSA1LTIyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQW1hem9uUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNC43IDIwMS44Yy4xLTExLjggMC0yMy41IDAtMzUuM3YtMzUuM2MwLTEuMy40LTIgMS40LTIuNyAxMS41LTggMjQuMS0xMi4xIDM4LjItMTEuMSAxMi41LjkgMjIuNyA3IDI4LjEgMjEuNyAzLjMgOC45IDQuMSAxOC4yIDQuMSAyNy43IDAgOC43LS43IDE3LjMtMy40IDI1LjYtNS43IDE3LjgtMTguNyAyNC43LTM1LjcgMjMuOS0xMS43LS41LTIxLjktNS0zMS40LTExLjctLjktLjgtMS40LTEuNi0xLjMtMi44em0xNTQuOSAxNC42YzQuNiAxLjggOS4zIDIgMTQuMSAxLjUgMTEuNi0xLjIgMjEuOS01LjcgMzEuMy0xMi41LjktLjYgMS4zLTEuMyAxLjMtMi41LS4xLTMuOSAwLTcuOSAwLTExLjggMC00LS4xLTggMC0xMiAwLTEuNC0uNC0yLTEuOC0yLjItNy0uOS0xMy45LTIuMi0yMC45LTIuOS03LS42LTE0LS4zLTIwLjggMS45LTYuNyAyLjItMTEuNyA2LjItMTMuNyAxMy4xLTEuNiA1LjQtMS42IDEwLjguMSAxNi4yIDEuNiA1LjUgNS4yIDkuMiAxMC40IDExLjJ6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTIwNy41IDIzLjljLjQgMS43LjkgMy40IDEuNiA1LjEgMTYuNSA0MC42IDMyLjkgODEuMyA0OS41IDEyMS45IDEuNCAzLjUgMS43IDYuNC4yIDkuOS0yLjggNi4yLTQuOSAxMi42LTcuOCAxOC43LTIuNiA1LjUtNi43IDkuNS0xMi43IDExLjItNC4yIDEuMS04LjUgMS4zLTEyLjkuOS0yLjEtLjItNC4yLS43LTYuMy0uOC0yLjgtLjItNC4yIDEuMS00LjMgNC0uMSAyLjgtLjEgNS42IDAgOC4zLjEgNC42IDEuNiA2LjcgNi4yIDcuNSA0LjcuOCA5LjQgMS42IDE0LjIgMS43IDE0LjMuMyAyNS43LTUuNCAzMy4xLTE3LjkgMi45LTQuOSA1LjYtMTAuMSA3LjctMTUuNCAxOS44LTUwLjEgMzkuNS0xMDAuMyA1OS4yLTE1MC41LjYtMS41IDEuMS0zIDEuMy00LjYuNC0yLjQtLjctMy42LTMuMS0zLjctNS42LS4xLTExLjEgMC0xNi43IDAtMy4xIDAtNS4zIDEuNC02LjQgNC4zLS40IDEuMS0uOSAyLjMtMS4zIDMuNGwtMjkuMSA4My43Yy0yLjEgNi4xLTQuMiAxMi4xLTYuNSAxOC42LS40LS45LS42LTEuNC0uOC0xLjktMTAuOC0yOS45LTIxLjYtNTkuOS0zMi40LTg5LjgtMS43LTQuNy0zLjUtOS41LTUuMy0xNC4yLS45LTIuNS0yLjctNC01LjQtNC02LjQtLjEtMTIuOC0uMi0xOS4yLS4xLTIuMiAwLTMuMyAxLjYtMi44IDMuN3pNMjQyLjQgMjA2YzEuNyAxMS43IDcuNiAyMC44IDE4IDI2LjYgOS45IDUuNSAyMC43IDYuMiAzMS43IDQuNiAxMi43LTEuOSAyMy45LTcuMyAzMy44LTE1LjUuNC0uMy44LS42IDEuNC0xIC41IDMuMi45IDYuMiAxLjUgOS4yLjUgMi42IDIuMSA0LjMgNC41IDQuNCA0LjYuMSA5LjEuMSAxMy43IDAgMi4zLS4xIDMuOC0xLjYgNC0zLjkuMS0uOC4xLTEuNi4xLTIuM3YtODguOGMwLTMuNi0uMi03LjItLjctMTAuOC0xLjYtMTAuOC02LjItMTkuNy0xNS45LTI1LjQtNS42LTMuMy0xMS44LTUtMTguMi01LjktMy0uNC02LS43LTkuMS0xLjFoLTEwYy0uOC4xLTEuNi4zLTIuNS4zLTguMi40LTE2LjMgMS40LTI0LjIgMy41LTUuMSAxLjMtMTAgMy4yLTE1IDQuOS0zIDEtNC41IDMuMi00LjQgNi41LjEgMi44LS4xIDUuNiAwIDguMy4xIDQuMSAxLjggNS4yIDUuNyA0LjEgNi41LTEuNyAxMy4xLTMuNSAxOS43LTQuOCAxMC4zLTEuOSAyMC43LTIuNyAzMS4xLTEuMiA1LjQuOCAxMC41IDIuNCAxNC4xIDcgMy4xIDQgNC4yIDguOCA0LjQgMTMuNy4zIDYuOS4yIDEzLjkuMyAyMC44IDAgLjQtLjEuNy0uMiAxLjItLjQgMC0uOCAwLTEuMS0uMS04LjgtMi4xLTE3LjctMy42LTI2LjgtNC4xLTkuNS0uNS0xOC45LjEtMjcuOSAzLjItMTAuOCAzLjgtMTkuNSAxMC4zLTI0LjYgMjAuOC00LjEgOC4zLTQuNiAxNy0zLjQgMjUuOHpNOTguNyAxMDYuOXYxNzUuM2MwIC44IDAgMS43LjEgMi41LjIgMi41IDEuNyA0LjEgNC4xIDQuMiA1LjkuMSAxMS44LjEgMTcuNyAwIDIuNSAwIDQtMS43IDQuMS00LjEuMS0uOC4xLTEuNy4xLTIuNXYtNjAuN2MuOS43IDEuNCAxLjIgMS45IDEuNiAxNSAxMi41IDMyLjIgMTYuNiA1MS4xIDEyLjkgMTcuMS0zLjQgMjguOS0xMy45IDM2LjctMjkuMiA1LjgtMTEuNiA4LjMtMjQuMSA4LjctMzcgLjUtMTQuMy0xLTI4LjQtNi44LTQxLjctNy4xLTE2LjQtMTguOS0yNy4zLTM2LjctMzAuOS0yLjctLjYtNS41LS44LTguMi0xLjJoLTdjLTEuMi4yLTIuNC4zLTMuNi41LTExLjcgMS40LTIyLjMgNS44LTMxLjggMTIuNy0yIDEuNC0zLjkgMy01LjkgNC41LS4xLS41LS4zLS44LS40LTEuMi0uNC0yLjMtLjctNC42LTEuMS02LjktLjYtMy45LTIuNS01LjUtNi40LTUuNmgtOS43Yy01LjktLjEtNi45IDEtNi45IDYuOHpNNDkzLjYgMzM5Yy0yLjctLjctNS4xIDAtNy42IDEtNDMuOSAxOC40LTg5LjUgMzAuMi0xMzYuOCAzNS44LTE0LjUgMS43LTI5LjEgMi44LTQzLjcgMy4yLTI2LjYuNy01My4yLS44LTc5LjYtNC4zLTE3LjgtMi40LTM1LjUtNS43LTUzLTkuOS0zNy04LjktNzIuNy0yMS43LTEwNi43LTM4LjgtOC44LTQuNC0xNy40LTkuMy0yNi4xLTE0LTMuOC0yLjEtNi4yLTEuNS04LjIgMi4xdjEuN2MxLjIgMS42IDIuMiAzLjQgMy43IDQuOCAzNiAzMi4yIDc2LjYgNTYuNSAxMjIgNzIuOSAyMS45IDcuOSA0NC40IDEzLjcgNjcuMyAxNy41IDE0IDIuMyAyOCAzLjggNDIuMiA0LjUgMyAuMSA2IC4yIDkgLjQuNyAwIDEuNC4yIDIuMS4zaDE3LjdjLjctLjEgMS40LS4zIDIuMS0uMyAxNC45LS40IDI5LjgtMS44IDQ0LjYtNCAyMS40LTMuMiA0Mi40LTguMSA2Mi45LTE0LjcgMjkuNi05LjYgNTcuNy0yMi40IDgzLjQtNDAuMSAyLjgtMS45IDUuNy0zLjggOC02LjIgNC4zLTQuNCAyLjMtMTAuNC0zLjMtMTEuOXptNTAuNC0yNy43Yy0uOC00LjItNC01LjgtNy42LTctNS43LTEuOS0xMS42LTIuOC0xNy42LTMuMy0xMS0uOS0yMi0uNC0zMi44IDEuNi0xMiAyLjItMjMuNCA2LjEtMzMuNSAxMy4xLTEuMi44LTIuNCAxLjgtMy4xIDMtLjYuOS0uNyAyLjMtLjUgMy40LjMgMS4zIDEuNyAxLjYgMyAxLjUuNiAwIDEuMiAwIDEuOC0uMWwxOS41LTIuMWM5LjYtLjkgMTkuMi0xLjUgMjguOC0uOCA0LjEuMyA4LjEgMS4yIDEyIDIuMiA0LjMgMS4xIDYuMiA0LjQgNi40IDguNy4zIDYuNy0xLjIgMTMuMS0yLjkgMTkuNS0zLjUgMTIuOS04LjMgMjUuNC0xMy4zIDM3LjgtLjMuOC0uNyAxLjctLjggMi41LS40IDIuNSAxIDQgMy40IDMuNSAxLjQtLjMgMy0xLjEgNC0yLjEgMy43LTMuNiA3LjUtNy4yIDEwLjYtMTEuMiAxMC43LTEzLjggMTctMjkuNiAyMC43LTQ2LjYuNy0zIDEuMi02LjEgMS43LTkuMS4yLTQuNy4yLTkuNi4yLTE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjQW1leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OEg1MjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTEuMUg1MTQuM2wtMzEuOS0zNS4xLTMxLjkgMzUuMUgyNDYuOFYyNjcuMUgxODFMMjYyLjcgODIuNGg3OC42bDI4LjEgNjMuMlY4Mi40aDk3LjJMNDgzLjUgMTMwbDE3LTQ3LjZINTc2VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMzIgMCA1My41IDAgODBWNDMyem00NDAuNC0yMS43TDQ4Mi42IDM2NGw0MiA0Ni4zSDU3NmwtNjgtNzIuMSA2OC03Mi4xSDUyNS40bC00MiA0Ni43LTQxLjUtNDYuN0gzOTAuNUw0NTggMzM4LjZsLTY3LjQgNzEuNlYzNzcuMWgtODNWMzU0LjloODAuOVYzMjIuNkgzMDcuNlYzMDAuMmg4M1YyNjcuMWgtMTIyVjQxMC4zSDQ0MC40em05Ni4zLTcyTDU3NiAzODAuMlYyOTYuOWwtMzkuMyA0MS40em0tMzYuMy05MmwzNi45LTEwMC42VjI0Ni4zSDU3NlYxMDNINTE1LjhsLTMyLjIgODkuM0w0NTEuNyAxMDNIMzkwLjVWMjQ2LjFMMzI3LjMgMTAzSDI3Ni4xTDIxMy43IDI0Ni4zaDQzbDExLjktMjguN2g2NS45bDEyIDI4LjdoODIuN1YxNDZMNDY2IDI0Ni4zaDM0LjR6TTI4MiAxODUuNGwxOS41LTQ2LjkgMTkuNCA0Ni45SDI4MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NBcHBsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuMiAyMTguNGMwIDE3LjItMTAuNSAyNy4xLTI5IDI3LjFoLTI0LjN2LTU0LjJoMjQuNGMxOC40IDAgMjguOSA5LjggMjguOSAyNy4xem00Ny41IDYyLjZjMCA4LjMgNy4yIDEzLjcgMTguNSAxMy43IDE0LjQgMCAyNS4yLTkuMSAyNS4yLTIxLjl2LTcuN2wtMjMuNSAxLjVjLTEzLjMuOS0yMC4yIDUuOC0yMC4yIDE0LjR6TTU3NiA3OXYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4Vjc5YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40LjcgMTYuOC00LjIgMjIuMS0xMC40IDUuMi02LjQgOC42LTE1IDcuNy0yMy43LTcuNC4zLTE2LjYgNC45LTIxLjkgMTEuMy00LjggNS41LTguOSAxNC40LTcuOSAyMi44em02MC42IDc0LjVjLS4yLS4yLTE5LjYtNy42LTE5LjgtMzAtLjItMTguNyAxNS4zLTI3LjcgMTYtMjguMi04LjgtMTMtMjIuNC0xNC40LTI3LjEtMTQuNy0xMi4yLS43LTIyLjYgNi45LTI4LjQgNi45LTUuOSAwLTE0LjctNi42LTI0LjMtNi40LTEyLjUuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhoLTUxLjJ2MTM2LjRoMjEuMnYtNDYuNmgyOS4zYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVoMTkuMWMxLjYtOC40IDkuNC0xMy45IDIwLTEzLjkgMTMgMCAyMC4yIDYgMjAuMiAxNy4ydjcuNWwtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGguNFYzMTBoMTkuNnYtNjh6TTUxNiAyMTAuOWgtMjEuNWwtMjQuOSA4MC42aC0uNGwtMjQuOS04MC42SDQyMmwzNS45IDk5LjMtMS45IDZjLTMuMiAxMC4yLTguNSAxNC4yLTE3LjkgMTQuMi0xLjcgMC00LjktLjItNi4yLS4zdjE2LjRjMS4yLjQgNi41LjUgOC4xLjUgMjAuNyAwIDMwLjQtNy45IDM4LjktMzEuOEw1MTYgMjEwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjRGluZXJzQ2x1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuNyA3OS45Yy05Ni45IDAtMTc1LjggNzguNi0xNzUuOCAxNzUuOCAwIDk2LjkgNzguOSAxNzUuOCAxNzUuOCAxNzUuOCA5Ny4yIDAgMTc1LjgtNzguOSAxNzUuOC0xNzUuOCAwLTk3LjItNzguNi0xNzUuOC0xNzUuOC0xNzUuOHptLTM5LjkgMjc5LjZjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMXYyMDcuOXptNzkuOC4zVjE1MS42YzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGgtOTAuM2MtMTA2LjIgMC0xOTMuOC04NS41LTE5My44LTE5MC4yQzQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRoOTAuM2MxMDUgMCAyMDAuNyA3OS4yIDIwMC43IDE5My44IDAgMTA0LjctOTUuNyAxOTAuMi0yMDAuNyAxOTAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NEaXNjb3ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjAuNCAxOTYuMWMwLTcuOS01LjUtMTIuMS0xNS42LTEyLjFoLTQuOXYyNC45aDQuN2MxMC4zIDAgMTUuOC00LjQgMTUuOC0xMi44ek01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNDQuMSAxMzguOWMyMi42IDAgNTIuOS00LjEgNTIuOSAyNC40IDAgMTIuNi02LjYgMjAuNy0xOC43IDIzLjJsMjUuOCAzNC40aC0xOS42bC0yMi4yLTMyLjhoLTIuMnYzMi44aC0xNnptLTU1LjkuMWg0NS4zdjE0SDQ0NHYxOC4yaDI4LjNWMjE3SDQ0NHYyMi4yaDI5LjNWMjUzSDQyOHptLTY4LjcgMGwyMS45IDU1LjIgMjIuMi01NS4yaDE3LjVsLTM1LjUgODQuMmgtOC42bC0zNS04NC4yem0tNTUuOS0zYzI0LjcgMCA0NC42IDIwIDQ0LjYgNDQuNiAwIDI0LjctMjAgNDQuNi00NC42IDQ0LjYtMjQuNyAwLTQ0LjYtMjAtNDQuNi00NC42IDAtMjQuNyAyMC00NC42IDQ0LjYtNDQuNnptLTQ5LjMgNi4xdjE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJ2MTljLTI5LjcgMTQuMy02My4zLTUuNy02My4zLTM4LjIgMC0zMS4yIDMzLjEtNTMgNjMuMy0zOHptLTk3LjIgNjYuM2MxMS40IDAgMjIuNC0xNS4zLTMuMy0yNC40LTE1LTUuNS0yMC4yLTExLjQtMjAuMi0yMi43IDAtMjMuMiAzMC42LTMxLjQgNDkuNy0xNC4zbC04LjQgMTAuOGMtMTAuNC0xMS42LTI0LjktNi4yLTI0LjkgMi41IDAgNC40IDIuNyA2LjkgMTIuMyAxMC4zIDE4LjIgNi42IDIzLjYgMTIuNSAyMy42IDI1LjYgMCAyOS41LTM4LjggMzcuNC01Ni42IDExLjNsMTAuMy05LjljMy43IDcuMSA5LjkgMTAuOCAxNy41IDEwLjh6TTU1LjQgMjUzSDMydi04MmgyMy40YzI2LjEgMCA0NC4xIDE3IDQ0LjEgNDEuMSAwIDE4LjUtMTMuMiA0MC45LTQ0LjEgNDAuOXptNjcuNSAwaC0xNnYtODJoMTZ6TTU0NCA0MzNjMCA4LjItNi44IDE1LTE1IDE1SDEyOGMxODkuNi0zNS42IDM4Mi43LTEzOS4yIDQxNi0xNjB6TTc0LjEgMTkxLjZjLTUuMi00LjktMTEuNi02LjYtMjEuOS02LjZINDh2NTQuMmg0LjJjMTAuMyAwIDE3LTIgMjEuOS02LjQgNS43LTUuMiA4LjktMTIuOCA4LjktMjAuN3MtMy4yLTE1LjUtOC45LTIwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjSmNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMS41IDI0NC4zVjIxMmM0MS4yIDAgMzguNS4yIDM4LjUuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIuNC0zLjMuMy0zOC41LjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41djM1YzM5LjYgMCA0MCAuMiA0Mi44LS41IDcuNS0xLjUgMTMuNS04IDEzLjUtMTcgMC04LjctNi0xNS41LTEzLjUtMTd6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zaC01N2MwIDY3LjEgMTAuNyAxMDkuNy0zNS44IDEwOS43LTE5LjUgMC0zOC44LTUuNy01Ny4yLTE0Ljh2MjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMlYyODdDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ydi0yOHpNNTQ0IDI4Ni41YzAtMTguNS0xNi41LTMwLjUtMzgtMzJ2LS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjN2MTI3LjVoMTIyLjdjMjQuMy4xIDQyLjMtMTIuOSA0Mi4zLTMzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjTWFzdGVyY2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43IDAtNi41IDQuNC0xMS43IDExLjItMTEuNyA2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6bS0zMTAuOC0xMS43Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjcgMCA2LjUgNC4xIDExLjcgMTEuMiAxMS43IDYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43aDE5LjFjLS45LTUuNy00LjQtOC43LTkuNi04Ljd6bTEwNy44LjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuNyAwIDYuNSA0LjEgMTEuNyAxMC45IDExLjcgNi44IDAgMTEuMi00LjkgMTEuMi0xMS43IDAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zLjMuNS4zIDEuMSAwIC4zLS4zLjUtLjMgMS4xLS4zLjMtLjMuNS0uNS44LS4zLjMtLjUuNS0xLjEuNS0uMy4zLS41LjMtMS4xLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjguMy0xLjEgMC0uNS4zLS44LjUtMS4xLjMtLjMuNS0uMy44LS41LjUtLjMuOC0uMyAxLjEtLjMuNSAwIC44IDAgMS4xLjMuNS4zLjguMyAxLjEuNXMuMi42LjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zLjgtLjMuMy0uMy4zLS41LjMtLjggMC0uMyAwLS41LS4zLS44LS4zIDAtLjUtLjMtMS4xLS4zaC0xLjZ2My41aC44VjQyNmguM2wxLjEgMS40aC44bC0xLjEtMS4zek01NzYgODF2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MWMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnptMjI0IDEwOC44YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6bS0xNDIuMyA3Ni4zYzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40VjM5MmgtOC4ydjM2LjdoOC4yYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4yaDcuOWMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJoOC4ydi0yM3ptNDQuOS0xMy43aC03Ljl2NC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40djQuNmg3LjlWMzkyem00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNy44bC0zLjUgNi4zYzExLjIgNy42IDMyLjYgNiAzMi42LTcuNXptMzUuNCA5LjNsLTIuMi02LjhjLTMuOCAyLjEtMTIuMiA0LjQtMTIuMi00LjF2LTE2LjZoMTMuMVYzOTJoLTEzLjF2LTExLjJoLTguMlYzOTJoLTcuNnY3LjNoNy42VjQxNmMwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40aDI3LjVjMC0xNi4yLTcuNC0yMi42LTE3LjQtMjIuNi0xMC42IDAtMTguMiA3LjktMTguMiAxOS4zIDAgMjAuNSAyMi42IDIzLjkgMzMuOCAxNC4ybC0zLjgtNmMtNy44IDYuNC0xOS42IDUuOC0yMS45LTQuOXptNTkuMS0yMS41Yy00LjYtMi0xMS42LTEuOC0xNS4yIDQuNFYzOTJoLTguMnYzNi43aDguMlY0MDhjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42em02Ni43LTE4LjNINDA4djQuNGMtOC4zLTExLTI5LjktNC44LTI5LjkgMTMuOSAwIDE5LjIgMjIuNCAyNC43IDI5LjkgMTMuOXY0LjZoOC4yVjM5MnptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNFYzOTJoLTcuOXYzNi43aDcuOVY0MDhjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45aC03Ljl2MTkuM2MtOC4yLTEwLjktMjkuOS01LjEtMjkuOSAxMy45IDAgMTkuNCAyMi41IDI0LjYgMjkuOSAxMy45djQuNmg3Ljl2LTUxLjd6bTcuNi03NS4xdjQuNmguOFYzMDJoMS45di0uOGgtNC42di44aDEuOXptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMS0uMy0uMy0uOC0uNS0xLjEtLjgtLjUgMC0xLjEtLjMtMS42LS4zLS4zIDAtLjguMy0xLjQuMy0uNS4zLS44LjUtMS4xLjgtLjUuMy0uOC44LS44IDEuMS0uMy41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44LjMgMS40IDAgLjMuMy44LjggMS4xLjMuMy41LjUgMS4xLjguNS4zIDEuMS4zIDEuNC4zLjUgMCAxLjEgMCAxLjYtLjMuMy0uMy44LS41IDEuMS0uOC4zLS4zLjUtLjguOC0xLjEuMy0uNi4zLTEuMS4zLTEuNHptMy4yLTEyNC43aC0xLjRsLTEuNiAzLjUtMS42LTMuNWgtMS40djUuNGguOHYtNC4xbDEuNiAzLjVoMS4xbDEuNC0zLjV2NC4xaDEuMXYtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQuMSAxMzguNS02MS45IDEzOC41LTEzOC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY1BheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuMyAyNTguMmMwIDEyLjItOS43IDIxLjUtMjIgMjEuNS05LjIgMC0xNi01LjItMTYtMTUgMC0xMi4yIDkuNS0yMiAyMS43LTIyIDkuMyAwIDE2LjMgNS43IDE2LjMgMTUuNXpNODAuNSAyMDkuN2gtNC43Yy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBIMzYwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI4LjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhoLTQwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGgxOWMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhoLTE5Yy0zLjggMC00IDUuNS00LjIgOC4yLTUuOC04LjUtMTQuMi0xMC0yMy43LTEwLTI0LjUgMC00My4yIDIxLjUtNDMuMiA0NS4yIDAgMTkuNSAxMi4yIDMyLjIgMzEuNyAzMi4yIDkgMCAyMC4yLTQuOSAyNi41LTExLjktLjUgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNEgyMDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXptNDAuNSA5Ny45bDYzLjctOTIuNmMuNS0uNS41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWgtMTkuMmMtMS43IDAtMy41IDEtNC41IDIuNWwtMjYuNSAzOS0xMS0zNy41Yy0uOC0yLjItMy00LTUuNS00aC0xOC43Yy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4yaDE5LjJjMS44LS4xIDMuNS0xLjEgNC41LTIuNnptMTU5LjMtMTA2LjdjMC0yMS0xNi4yLTI4LTM0LjctMjhoLTM5LjdjLTIuNyAwLTUuMiAyLTUuNSA0LjdsLTE2LjIgMTAyYy0uMiAyIDEuMyA0IDMuMiA0aDIwLjVjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44aC0xOWMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRINDg0YzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6bTQ3LjUtMzMuM2MwLTItMS41LTMuNS0zLjItMy41aC0xOC41Yy0xLjUgMC0zIDEuMi0zLjIgMi43bC0xNi4yIDEwNC0uMy41YzAgMS44IDEuNSAzLjUgMy41IDMuNWgxNi41YzIuNSAwIDUtMi45IDUuMi01LjdMNTQ0IDE5MS4ydi0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNS4xLTkuOC02LjktMTUuNS0xNi4yLTE1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjU3RyaXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Mi40IDIyMC44Yy04LjkgMC0xOC43IDYuNy0xOC43IDIyLjdoMzYuN2MwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTIyLjIgMjgxLjFjMCAyNS42LTIwLjMgNDAuMS00OS45IDQwLjMtMTIuMiAwLTI1LjYtMi40LTM4LjgtOC4xdi0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjV2MzMuNGMtMTAuOC01LjgtMjQuNS05LjEtMzUuMy05LjEtNy41IDAtMTIuMSAyLjItMTIuMSA3LjcgMCAxNiA1NC4zIDguNCA1NC4zIDUwLjd6bTY4LjgtNTYuNmgtMjdWMjc1YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNnYyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40djMwLjhIMTkxem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjR2ODQuNGgtMzUuNVYxOTQuMmgzMC43bDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVoLjF6bTQ0LjEgOTEuOGgtMzUuN1YxOTQuMmgzNS43em0wLTE0Mi45bC0zNS43IDcuNnYtMjguOWwzNS43LTcuNnptNzQuMSAxNDUuNWMtMTIuNCAwLTIwLTUuMy0yNS4xLTlsLS4xIDQwLjItMzUuNSA3LjVWMTk0LjJoMzEuM2wxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWgtNjkuNWMxLjYgMTYuNiAxMy44IDIxLjUgMjcuNiAyMS41IDE0LjEgMCAyNS4yLTMgMzQuOS03LjlWMzEyYy05LjcgNS4zLTIyLjQgOS4yLTM5LjQgOS4yLTM0LjYgMC01OC44LTIxLjctNTguOC02NC41IDAtMzYuMiAyMC41LTY0LjkgNTQuMy02NC45IDMzLjcgMCA1MS4zIDI4LjcgNTEuMyA2NS4xIDAgMy41LS4zIDEwLjktLjQgMTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NWaXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NUg0NDZjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4yTDIxNS43IDE3NmgtNDIuNWwtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFIMzIuN2wtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzVoNDIuNXptOTQuNC4yTDI3Mi4xIDE3NmgtNDAuMmwtMjUuMSAxNTUuNGg0MC4xem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNEw0OTUuNiAxNzZoLTMxLjFjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjVINDI2czYuOS0xOS4yIDguNC0yMy4zSDQ4NmMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zSDUyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2VudGVyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjkuMiAyNjguNmMtMy44IDM1LjItMzUuNCA2MC42LTcwLjYgNTYuOC0zNS4yLTMuOC02MC42LTM1LjQtNTYuOC03MC42IDMuOC0zNS4yIDM1LjQtNjAuNiA3MC42LTU2LjggMzUuMSAzLjggNjAuNiAzNS40IDU2LjggNzAuNnptLTg1LjggMjM1LjFDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjNjMTEuMi04Ni42IDY1LjgtMTU2LjkgMTM5LjEtMTkyIDE2MS03Ny4xIDM0OS43IDM3LjQgMzU0LjcgMjE2LjYgNC4xIDE0Ny0xMTguNCAyNjIuMi0yNjAuNSAyNTQuOHptMTc5LjktMTgwYzI3LjktMTE4LTE2MC41LTIwNS45LTIzNy4yLTIzNC4yLTU3LjUgNTYuMy02OS4xIDE4OC42LTMzLjggMzQ0LjQgNjguOCAxNS44IDE2OS4xLTI2LjQgMjcxLTExMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZW50b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41Vjk3LjV6bS0xNjIuNCAzMS43bDc2LjMgNzYuNVY5Ny41aC00NC43em00MS41LTQxLjZoNDQuN3YxMjcuOWwxMC44IDEwLjggMTAuOC0xMC44Vjg3LjZoNDQuN0wyMjQuMiAzMnptMjYuMiAxNjguMWwtMTAuOC0xMC44SDU1LjV2LTQ0LjhMMCAyNTUuN2w1NS41IDU1LjZ2LTQ0LjhoMTI4LjZsMTAuOC0xMC44em03OS4zLTIwLjdoMTA3Ljl2LTQ0LjhsLTMxLjYtMzEuN3ptMTczLjMgMjAuN0wzOTIgMjAwLjF2NDQuOEgyNjQuM2wtMTAuOCAxMC44IDEwLjggMTAuOEgzOTJ2NDQuOGw1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNWgxNS4zdi0xNS4zbC05MC4zLTkwLjUgMzEuNi0zMS43SDY1LjR6bTMxNi43LTc4LjdoLTc4LjVsMzEuNiAzMS43LTkwLjMgOTAuNVYyMzVoMTUuM2w5MC4zLTkwLjUgMzEuNiAzMS43ek0yMDMuNSA0MTMuOVYzMDUuOGwtNzYuMyA3Ni41IDMxLjYgMzEuN2g0NC43ek02NS40IDIzNWgxMDguOGwtNzYuMy03Ni41LTMyLjUgMzEuN3ptMzE2LjcgMTAwLjJsLTMxLjYgMzEuNy05MC4zLTkwLjVoLTE1LjN2MTUuM2w5MC4zIDkwLjUtMzEuNiAzMS43aDc4LjV6bTAtNTguOEgyNzQuMmw3Ni4zIDc2LjUgMzEuNi0zMS43em0tNjAuOSAxMDUuOGwtNzYuMy03Ni41djEwOC4xaDQ0Ljd6TTk3LjkgMzUyLjlsNzYuMy03Ni41SDY1LjR2NDQuOHptMTgxLjggNzAuOUgyMzVWMjk1LjlsLTEwLjgtMTAuOC0xMC44IDEwLjh2MTI3LjloLTQ0LjdsNTUuNSA1NS42em0tMTY2LjUtNDEuNmw5MC4zLTkwLjV2LTE1LjNoLTE1LjNsLTkwLjMgOTAuNS0zMi41LTMxLjd2NzguN2g3OS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaHJvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZDMCAyMDkuNCAxMi40NyAxNjUuNiAzNC4yNyAxMjcuMUwxNDQuMSAzMTguM0MxNjYgMzU3LjUgMjA3LjkgMzg0IDI1NiAzODRDMjcwLjMgMzg0IDI4My4xIDM4MS43IDI5Ni44IDM3Ny40TDIyMC41IDUwOS42Qzk1LjkgNDkyLjMgMCAzODUuMyAwIDI1NnpNMzY1LjEgMzIxLjZDMzc3LjQgMzAyLjQgMzg0IDI3OS4xIDM4NCAyNTZDMzg0IDIxNy44IDM2Ny4yIDE4My41IDM0MC43IDE2MEg0OTMuNEM1MDUuNCAxODkuNiA1MTIgMjIyLjEgNTEyIDI1NkM1MTIgMzk3LjQgMzk3LjQgNTExLjEgMjU2IDUxMkwzNjUuMSAzMjEuNnpNNDc3LjggMTI4SDI1NkMxOTMuMSAxMjggMTQyLjMgMTcyLjEgMTMwLjUgMjMwLjdMNTQuMTkgOTguNDdDMTAxIDM4LjUzIDE3NCAwIDI1NiAwQzM1MC44IDAgNDMzLjUgNTEuNDggNDc3LjggMTI4VjEyOHpNMTY4IDI1NkMxNjggMjA3LjQgMjA3LjQgMTY4IDI1NiAxNjhDMzA0LjYgMTY4IDM0NCAyMDcuNCAzNDQgMjU2QzM0NCAzMDQuNiAzMDQuNiAzNDQgMjU2IDM0NEMyMDcuNCAzNDQgMTY4IDMwNC42IDE2OCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNocm9tZWNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ3LjgsNjRINjRjLTIzLjYsMC00Mi43LDE5LjEtNDIuNyw0Mi43djYzLjlINjR2LTYzLjloMzgzLjh2Mjk4LjZIMjk4LjZWNDQ4SDQ0OGMyMy42LDAsNDIuNy0xOS4xLDQyLjctNDIuN1YxMDYuNyBDNDkwLjcsODMuMSw0NzEuNCw2NCw0NDcuOCw2NHogTTIxLjMsMzgzLjZMMjEuMywzODMuNmwwLDYzLjloNjMuOUM4NS4yLDQxMi4yLDU2LjYsMzgzLjYsMjEuMywzODMuNkwyMS4zLDM4My42eiBNMjEuMywyOTguNlYzNDEgYzU4LjksMCwxMDYuNiw0OC4xLDEwNi42LDEwN2g0Mi43QzE3MC43LDM2NS42LDEwMy43LDI5OC43LDIxLjMsMjk4LjZ6IE0yMTMuNCw0NDhoNDIuN2MtMC41LTEyOS41LTEwNS4zLTIzNC4zLTIzNC44LTIzNC42bDAsNDIuNCBDMTI3LjMsMjU1LjYsMjEzLjMsMzQyLDIxMy40LDQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRmbGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcuOTA2LDMxOS45MTNsLTIzMC44LTIuOTI4YTQuNTgsNC41OCwwLDAsMS0zLjYzMi0xLjkyNiw0LjY0OCw0LjY0OCwwLDAsMS0uNDk0LTQuMTQ3LDYuMTQzLDYuMTQzLDAsMCwxLDUuMzYxLTQuMDc2TDQxMS4yODEsMzAzLjljMjcuNjMxLTEuMjYsNTcuNTQ2LTIzLjU3NCw2OC4wMjItNTAuNzg0bDEzLjI4Ni0zNC41NDJhNy45NDQsNy45NDQsMCwwLDAsLjUyNC0yLjkzNiw3LjczNSw3LjczNSwwLDAsMC0uMTY0LTEuNjMxQTE1MS45MSwxNTEuOTEsMCwwLDAsMjAxLjI1NywxOTguNCw2OC4xMiw2OC4xMiwwLDAsMCw5NC4yLDI2OS41OUM0MS45MjQsMjcxLjEwNiwwLDMxMy43MjgsMCwzNjYuMTJhOTYuMDU0LDk2LjA1NCwwLDAsMCwxLjAyOSwxMy45NTgsNC41MDgsNC41MDgsMCwwLDAsNC40NDUsMy44NzFsNDI2LjEuMDUxYy4wNDMsMCwuMDgtLjAxOS4xMjItLjAyYTUuNjA2LDUuNjA2LDAsMCwwLDUuMjcxLTRsMy4yNzMtMTEuMjY1YzMuOS0xMy40LDIuNDQ4LTI1LjgtNC4xLTM0LjlDNDMwLjEyNCwzMjUuNDIzLDQyMC4wOSwzMjAuNDg3LDQwNy45MDYsMzE5LjkxM1pNNTEzLjg1NiwyMjEuMWMtMi4xNDEsMC00LjI3MS4wNjItNi4zOTEuMTY0YTMuNzcxLDMuNzcxLDAsMCwwLTMuMzI0LDIuNjUzbC05LjA3NywzMS4xOTNjLTMuOSwxMy40LTIuNDQ5LDI1Ljc4Niw0LjEsMzQuODksNi4wMiw4LjQsMTYuMDU0LDEzLjMyMywyOC4yMzgsMTMuOWw0OS4yLDIuOTM5YTQuNDkxLDQuNDkxLDAsMCwxLDMuNTEsMS44OTQsNC42NCw0LjY0LDAsMCwxLC41MTQsNC4xNjksNi4xNTMsNi4xNTMsMCwwLDEtNS4zNTEsNC4wNzVsLTUxLjEyNSwyLjkzOWMtMjcuNzU0LDEuMjctNTcuNjY5LDIzLjU3NC02OC4xNDUsNTAuNzg0bC0zLjY5NSw5LjYwNmEyLjcxNiwyLjcxNiwwLDAsMCwyLjQyNywzLjY4Yy4wNDYsMCwuMDg4LjAxNy4xMzYuMDE3aDE3NS45MWE0LjY5LDQuNjksMCwwLDAsNC41MzktMy4zNywxMjQuODA3LDEyNC44MDcsMCwwLDAsNC42ODItMzRDNjQwLDI3Ny4zLDU4My41MjQsMjIxLjEsNTEzLjg1NiwyMjEuMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRzY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguMSAxNTRsLTkuNCA3LjZjLTIyLjUtMTkuMy01MS41LTMzLjYtODMuMy0zMy42QzE1My44IDEyOCA5NiAxODguOCA5NiAyNjAuM2MwIDYuNi40IDEzLjEgMS40IDE5LjQtMi01NiA0MS44LTk3LjQgOTIuNi05Ny40IDI0LjIgMCA0Ni4yIDkuNCA2Mi42IDI0LjdsLTI1LjIgMjAuNGMtOC4zLS45LTE2LjggMS44LTIzLjEgOC4xLTExLjEgMTEtMTEuMSAyOC45IDAgNDAgMTEuMSAxMSAyOC45IDExIDQwIDAgNi4zLTYuMyA5LTE0LjkgOC4xLTIzLjFsNzUuMi04OC44YzYuMy02LjUtMy4zLTE1LjktOS41LTkuNnptLTgzLjggMTExLjVjLTUuNiA1LjUtMTQuNiA1LjUtMjAuMiAwLTUuNi01LjYtNS42LTE0LjYgMC0yMC4yczE0LjYtNS42IDIwLjIgMCA1LjYgMTQuNyAwIDIwLjJ6TTIyNCAzMkMxMDAuNSAzMiAwIDEzMi41IDAgMjU2czEwMC41IDIyNCAyMjQgMjI0IDIyNC0xMDAuNSAyMjQtMjI0UzM0Ny41IDMyIDIyNCAzMnptMCAzODRjLTg4LjIgMC0xNjAtNzEuOC0xNjAtMTYwUzEzNS44IDk2IDIyNCA5NnMxNjAgNzEuOCAxNjAgMTYwLTcxLjggMTYwLTE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3Vkc21pdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDIyNy42djU2LjlMMjg0LjQgNTEySDIyNy42TDAgMjg0LjRWMjI3LjZMMjI3LjYgMGg1Ni45TDUxMiAyMjcuNnptLTI1NiAxNjJhMTMzLjYgMTMzLjYgMCAxIDAgMC0yNjcuMSAxMzMuNiAxMzMuNiAwIDEgMCAwIDI2Ny4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZHZlcnNpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDYxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ4LjYgMzA0YzguMiA2OC41IDY3LjQgMTE1LjUgMTQ2IDExMS4zIDUxLjIgNDMuMyAxMzYuOCA0NS44IDE4Ni40LTUuNiA2OS4yIDEuMSAxMTguNS00NC42IDEzMS41LTk5LjUgMTQuOC02Mi41LTE4LjItMTMyLjUtOTIuMS0xNTUuMS0zMy04OC4xLTEzMS40LTEwMS41LTE4Ni41LTg1LTU3LjMgMTcuMy04NC4zIDUzLjItOTkuMyAxMDkuNy03LjggMi43LTI2LjUgOC45LTQ1IDI0LjEgMTEuNyAwIDE1LjIgOC45IDE1LjIgMTkuNXYyMC40YzAgMTAuNy04LjcgMTkuNS0xOS41IDE5LjVoLTIwLjJjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43VjI0MEg5OC44Qzk1IDI0MCA4OCAyNDQuMyA4OCAyNTEuOXY0MC40YzAgNi40IDUuMyAxMS44IDExLjcgMTEuOGg0OC45em0yMjcuNCA4Yy0xMC43IDQ2LjMgMjEuNyA3Mi40IDU1LjMgODYuOEMzMjQuMSA0MzIuNiAyNTkuNyAzNDggMjk2IDI4OGMtMzMuMiAyMS42LTMzLjcgNzEuMi0yOS4yIDkyLjktMTcuOS0xMi40LTUzLjgtMzIuNC01Ny40LTc5LjgtMy0zOS45IDIxLjUtNzUuNyA1Ny05My45QzI5NyAxOTEuNCAzNjkuOSAxOTguNyA0MDAgMjQ4Yy0xNC4xLTQ4LTUzLjgtNzAuMS0xMDEuOC03NC44IDMwLjktMzAuNyA2NC40LTUwLjMgMTE0LjItNDMuNyA2OS44IDkuMyAxMzMuMiA4Mi44IDY3LjcgMTUwLjUgMzUtMTYuMyA0OC43LTU0LjQgNDcuNS03Ni45bDEwLjUgMTkuNmMxMS44IDIyIDE1LjIgNDcuNiA5LjQgNzItOS4yIDM5LTQwLjYgNjguOC03OS43IDc2LjUtMzIuMSA2LjMtODMuMS01LjEtOTEuOC01OS4yek0xMjggMjA4SDg4LjJjLTguOSAwLTE2LjItNy4zLTE2LjItMTYuMnYtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJIMTI4YzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMnYzOS42YzAgOC45LTcuMyAxNi4yLTE2LjIgMTYuMnpNMTAuMSAxNjhDNC41IDE2OCAwIDE2My41IDAgMTU3Ljl2LTI3LjhjMC01LjYgNC41LTEwLjEgMTAuMS0xMC4xaDI3LjdjNS41IDAgMTAuMSA0LjUgMTAuMSAxMC4xdjI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xSDEwLjF6TTE2OCAxNDIuN3YtMjEuNGMwLTUuMSA0LjItOS4zIDkuMy05LjNoMjEuNGM1LjEgMCA5LjMgNC4yIDkuMyA5LjN2MjEuNGMwIDUuMS00LjIgOS4zLTkuMyA5LjNoLTIxLjRjLTUuMSAwLTkuMy00LjItOS4zLTkuM3pNNTYgMjM1LjV2MjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41SDE5LjRDMTMuMSAyNzIgOCAyNjYuOCA4IDI2MC41di0yNWMwLTYuMyA1LjEtMTEuNSAxMS40LTExLjVoMjUuMWM2LjQgMCAxMS41IDUuMiAxMS41IDExLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNtcGxpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjYuMTE5LDM4OC4xNjVhMy44MTYsMy44MTYsMCwwLDAtMi4yOTQtMy41LDMuOTQ2LDMuOTQ2LDAsMCwwLTEuNjI5LS4zODVMNzIuNiwzODQuM2ExOS4yNDMsMTkuMjQzLDAsMCwxLTE3LjkyNC0yNi4wMjVMODEuNTg1LDI1NS42OTJhMzUuNzIsMzUuNzIsMCwwLDEsMzIuMzczLTI2SDI2Mi41MjVhNy4wNyw3LjA3LDAsMCwwLDYuMzkyLTUuMTk0bDEwLjc2OS00MS4xMzFhMy44NDksMy44NDksMCwwLDAtMi4yMzctNC45MzcsMy43NTUsMy43NTUsMCwwLDAtMS4zNzctLjI2MWMtLjA2MywwLS4xMjYsMC0uMTg5LjAwNUgxMjcuMzhhMTA2LjgsMTA2LjgsMCwwLDAtOTYuOTksNzcuMUwzLjQ4MywzNTguODI0QTU3LjQ2OSw1Ny40NjksMCwwLDAsNTcuMzE0LDQzNnExLjQzLDAsMi44Ni0uMDcySDIwOC43NDJhNy4xMzEsNy4xMzEsMCwwLDAsNi4zOTEtNS4xOTNMMjI1LjgzOSwzODkuNkEzLjgyLDMuODIsMCwwLDAsMjI2LjExOSwzODguMTY1Wk0zMDYuNjU4LDgxLjJhMy44NjEsMy44NjEsMCwwLDAsLjI1MS0xLjM2N0EzLjgxMywzLjgxMywwLDAsMCwzMDMuMDc5LDc2Yy0uMDY0LDAtLjEyOCwwLS4xOTIsMGgtNDFBNy4wMzQsNy4wMzQsMCwwLDAsMjU1LjUsODEuMmwtMjEuMzQ3LDgwLjkxNWg1MS4xMzFaTTE4MC4zNjQsMzY4LjI0OUgyMzEuNUwyNjMuNDUyLDI0NS42OUgyMTIuMzIxWk01MTEuODUzLDc5LjcyM2EzLjgwOSwzLjgwOSwwLDAsMC0zLjgtMy42NjFjLS4wNTgsMC0uMTM3LDAtLjIzLjAwN2gtNDFhNy4xLDcuMSwwLDAsMC02LjU4NCw1LjEyOUwzNjguOTEsNDMwLjYzNGEzLjU0LDMuNTQsMCwwLDAtLjI2MiwxLjMzNSwzLjg3MywzLjg3MywwLDAsMCwzLjg2NCwzLjg2M2MuMDU2LDAsLjExMiwwLC4xNjksMGg0MWE3LjA2OCw3LjA2OCwwLDAsMCw2LjM5Mi01LjE5M0w1MTEuNTMzLDgxLjJBMy42MjQsMy42MjQsMCwwLDAsNTExLjg1Myw3OS43MjNaTTMyNC42NDksMzg0LjQ3aC00MWE3LjIsNy4yLDAsMCwwLTYuMzkyLDUuMTk0TDI2Ni41Miw0MzAuOGEzLjY2MiwzLjY2MiwwLDAsMC0uMjY4LDEuMzc0QTMuNzgzLDMuNzgzLDAsMCwwLDI3MC4wMjMsNDM2Yy4wNiwwLC4xNjYsMCwuMy0uMDEyaDQwLjkwNWE3LjAzNiw3LjAzNiwwLDAsMCw2LjM5MS01LjE5M2wxMC43NjktNDEuMTMxYTMuNzUsMy43NSwwLDAsMC0zLjQ0NS01LjIwOGMtLjEwOCwwLS4yMTcsMC0uMzI2LjAxNFptMzExLjMyNC0zMDguNGgtNDFhNy4wNjYsNy4wNjYsMCwwLDAtNi4zOTIsNS4xMjlsLTkxLjQ2LDM0OS40MzZhNC4wNzMsNC4wNzMsMCwwLDAtLjIyOSwxLjM0NywzLjg3MiwzLjg3MiwwLDAsMCwzLjg2MywzLjg1MWMuMDU2LDAsLjExMiwwLC4xNjksMGg0MC45NjhhNy4xLDcuMSwwLDAsMCw2LjM5Mi01LjE5M0w2MzkuNjgsODEuMmEzLjYyNCwzLjYyNCwwLDAsMCwuMzItMS40NzUsMy44NDEsMy44NDEsMCwwLDAtMy44MjEtMy41NjRjLS4wNjgsMC0uMTM3LDAtLjIwNi4wMDZaTTM3MS41NjIsMjI1LjIzNmwxMC44LTQxLjFhNC4zNjksNC4zNjksMCwwLDAsLjIyNy0xLjM4OCwzLjg2OSwzLjg2OSwwLDAsMC0zLjg2MS0zLjg0MmMtLjA1NywwLS4xMTMsMC0uMTY5LDBoLTQxLjFhNy4yOTIsNy4yOTIsMCwwLDAtNi4zOTEsNS4yMjZsLTEwLjgzNCw0MS4xYTQuNDE3LDQuNDE3LDAsMCwwLS4yNiwxLjQ5M2MwLC4wNjksMCwuMTM4LDAsLjIwNmEzLjc3NiwzLjc3NiwwLDAsMCwzLjc1NywzLjUwN2MuMDc2LDAsLjE4LDAsLjMtLjAxMmg0MS4xMjlBNy4wMzQsNy4wMzQsMCwwLDAsMzcxLjU2MiwyMjUuMjM2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4yODUgMTU5LjcwNGwtMjM0LTE1NmMtNy45ODctNC45MTUtMTYuNTExLTQuOTYtMjQuNTcxIDBsLTIzNCAxNTZDMy43MTQgMTYzLjcwMyAwIDE3MC44NDcgMCAxNzcuOTg5djE1NS45OTljMCA3LjE0MyAzLjcxNCAxNC4yODYgOS43MTUgMTguMjg2bDIzNCAxNTYuMDIyYzcuOTg3IDQuOTE1IDE2LjUxMSA0Ljk2IDI0LjU3MSAwbDIzNC0xNTYuMDIyYzYtMy45OTkgOS43MTUtMTEuMTQzIDkuNzE1LTE4LjI4NlYxNzcuOTg5Yy0uMDAxLTcuMTQyLTMuNzE1LTE0LjI4Ni05LjcxNi0xOC4yODV6TTI3OCA2My4xMzFsMTcyLjI4NiAxMTQuODU4LTc2Ljg1NyA1MS40MjlMMjc4IDE2NS43MDNWNjMuMTMxem0tNDQgMHYxMDIuNTcybC05NS40MjkgNjMuNzE1LTc2Ljg1Ny01MS40MjlMMjM0IDYzLjEzMXpNNDQgMjE5LjEzMmw1NS4xNDMgMzYuODU3TDQ0IDI5Mi44NDZ2LTczLjcxNHptMTkwIDIyOS43MTVMNjEuNzE0IDMzMy45ODlsNzYuODU3LTUxLjQyOUwyMzQgMzQ2LjI3NXYxMDIuNTcyem0yMi0xNDAuODU4bC03Ny43MTUtNTIgNzcuNzE1LTUyIDc3LjcxNSA1Mi03Ny43MTUgNTJ6bTIyIDE0MC44NThWMzQ2LjI3NWw5NS40MjktNjMuNzE1IDc2Ljg1NyA1MS40MjlMMjc4IDQ0OC44NDd6bTE5MC0xNTYuMDAxbC01NS4xNDMtMzYuODU3TDQ2OCAyMTkuMTMydjczLjcxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kaWVwaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ3MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIyLjUgMjAyLjljMzAuNyAwIDMzLjUgNTMuMS0uMyA1My4xaC0xMC44djQ0LjNoLTI2LjZ2LTk3LjRoMzcuN3pNNDcyIDM1Mi42QzQyOS45IDQ0NC41IDM1MC40IDUwNCAyNDggNTA0IDExMSA1MDQgMCAzOTMgMCAyNTZTMTExIDggMjQ4IDhjOTcuNCAwIDE3Mi44IDUzLjcgMjE4LjIgMTM4LjRsLTE4NiAxMDguOEw0NzIgMzUyLjZ6bS0zOC41IDEyLjVsLTYwLjMtMzAuN2MtMjcuMSA0NC4zLTcwLjQgNzEuNC0xMjIuNCA3MS40LTgyLjUgMC0xNDkuMi02Ni43LTE0OS4yLTE0OC45IDAtODIuNSA2Ni43LTE0OS4yIDE0OS4yLTE0OS4yIDQ4LjQgMCA4OC45IDIzLjUgMTE2LjkgNjMuNGw1OS41LTM0LjZjLTQwLjctNjIuNi0xMDQuNy0xMDAtMTc5LjItMTAwLTEyMS4yIDAtMjE5LjUgOTguMy0yMTkuNSAyMTkuNVMxMjYuOCA0NzUuNSAyNDggNDc1LjVjNzguNiAwIDE0Ni41LTQyLjEgMTg1LjUtMTEwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbmZsdWVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4zIDQxMi4yYy00LjUgNy42LTIuMSAxNy41IDUuNSAyMi4ybDEwNS45IDY1LjJjNy43IDQuNyAxNy43IDIuNCAyMi40LTUuMyAwLS4xLjEtLjIuMS0uMiA2Ny4xLTExMi4yIDgwLjUtOTUuOSAyODAuOS0uNyA4LjEgMy45IDE3LjguNCAyMS43LTcuNy4xLS4xLjEtLjMuMi0uNGw1MC40LTExNC4xYzMuNi04LjEtLjEtMTcuNi04LjEtMjEuMy0yMi4yLTEwLjQtNjYuMi0zMS4yLTEwNS45LTUwLjNDMTI3LjUgMTc5IDQ0LjYgMzQ1LjMgMi4zIDQxMi4yem01MDcuNC0zMTIuMWM0LjUtNy42IDIuMS0xNy41LTUuNS0yMi4yTDM5OC40IDEyLjhjLTcuNS01LTE3LjYtMy4xLTIyLjYgNC40LS4yLjMtLjQuNi0uNiAxLTY3LjMgMTEyLjYtODEuMSA5NS42LTI4MC42LjktOC4xLTMuOS0xNy44LS40LTIxLjcgNy43LS4xLjEtLjEuMy0uMi40TDIyLjIgMTQxLjNjLTMuNiA4LjEuMSAxNy42IDguMSAyMS4zIDIyLjIgMTAuNCA2Ni4zIDMxLjIgMTA2IDUwLjQgMjQ4IDEyMCAzMzAuOC00NS40IDM3My40LTExMi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb25uZWN0ZGV2ZWxvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTAuNSAyNDFsLTUwLjA4OS04Ni43ODZjMS4wNzEtMi4xNDIgMS44NzUtNC41NTMgMS44NzUtNy4yMzIgMC04LjAzNi02LjY5Ni0xNC43MzMtMTQuNzMyLTE1LjAwMWwtNTUuNDQ3LTk1Ljg5M2MuNTM2LTEuNjA3IDEuMDcxLTMuMjE0IDEuMDcxLTQuODIxIDAtOC41NzEtNi45NjQtMTUuMjY4LTE1LjI2OC0xNS4yNjgtNC44MjEgMC04LjgzOSAyLjE0My0xMS43ODYgNS42MjVIMjk5LjUxOEMyOTYuODM5IDE4LjE0MyAyOTIuODIxIDE2IDI4OCAxNnMtOC44MzkgMi4xNDMtMTEuNTE4IDUuNjI1SDE3MC40MTFDMTY3LjQ2NCAxOC4xNDMgMTYzLjQ0NyAxNiAxNTguNjI1IDE2Yy04LjMwMyAwLTE1LjI2OCA2LjY5Ni0xNS4yNjggMTUuMjY4IDAgMS42MDcuNTM2IDMuNDgyIDEuMDcyIDQuODIxbC01NS45ODMgOTcuMjMzYy01LjM1NiAyLjQxLTkuMTA3IDcuNS05LjEwNyAxMy42NjEgMCAuNTM1LjI2OCAxLjA3MS4yNjggMS42MDdsLTUzLjMwNCA5Mi4xNDNjLTcuMjMyIDEuMzM5LTEyLjU5IDcuNS0xMi41OSAxNSAwIDcuMjMyIDUuMDg5IDEzLjM5MyAxMi4wNTQgMTVsNTUuMTc5IDk1LjM1OGMtLjUzNiAxLjYwNy0uODA0IDIuOTQ2LS44MDQgNC44MjEgMCA3LjIzMiA1LjA4OSAxMy4zOTMgMTIuMDU0IDE0LjczMmw1MS42OTcgODkuNzMyYy0uNTM2IDEuNjA3LTEuMDcxIDMuNDgyLTEuMDcxIDUuMzU3IDAgOC41NzEgNi45NjQgMTUuMjY4IDE1LjI2OCAxNS4yNjggNC44MjEgMCA4LjgzOS0yLjE0MyAxMS41MTgtNS4zNTdoMTA2Ljg3NUMyNzkuMTYxIDQ5My44NTcgMjgzLjQ0NyA0OTYgMjg4IDQ5NnM4LjgzOS0yLjE0MyAxMS41MTgtNS4zNTdoMTA3LjE0M2MyLjY3OCAyLjk0NiA2LjY5NiA0LjgyMSAxMC45ODIgNC44MjEgOC41NzEgMCAxNS4yNjgtNi45NjQgMTUuMjY4LTE1LjI2OCAwLTEuNjA3LS4yNjctMi45NDYtLjgwMy00LjI4NWw1MS42OTctOTAuMjY4YzYuOTY0LTEuMzM5IDEyLjA1NC03LjUgMTIuMDU0LTE0LjczMiAwLTEuNjA3LS4yNjgtMy4yMTQtLjgwNC00LjgyMWw1NC45MTEtOTUuMzU4YzYuOTY0LTEuMzM5IDEyLjMyMi03LjUgMTIuMzIyLTE1LS4wMDItNy4yMzItNS4wOTItMTMuMzkzLTExLjc4OC0xNC43MzJ6TTE1My41MzUgNDUwLjczMmwtNDMuNjYtNzUuODAzaDQzLjY2djc1LjgwM3ptMC04My44MzloLTQzLjY2Yy0uMjY4LTEuMDcxLS44MDQtMi4xNDItMS4zMzktMy4yMTRsNDQuOTk5LTQ3LjQxdjUwLjYyNHptMC02Mi40MTFsLTUwLjM1NyA1My4zMDRjLTEuMzM5LS41MzYtMi42NzktMS4zNC00LjAxOC0xLjYwN0w0My40NDcgMjU5Ljc1Yy41MzUtMS4zMzkuNTM1LTIuNjc5LjUzNS00LjAxOHMwLTIuNDEtLjI2OC0zLjQ4Mmw1MS45NjUtOTBjMi42NzktLjI2OCA1LjM1Ny0xLjA3MiA3Ljc2OC0yLjY3OWw1MC4wODkgNTEuOTY1djkyLjk0NnptMC0xMDIuMzIybC00NS44MDMtNDcuNDFjMS4zMzktMi4xNDMgMi4xNDMtNC44MjEgMi4xNDMtNy43NjcgMC0uMjY4LS4yNjgtLjgwNC0uMjY4LTEuMDcybDQzLjkyOC0xNS44MDR2NzIuMDUzem0wLTgwLjYyNWwtNDMuNjYgMTUuODA0IDQzLjY2LTc1LjUzNnY1OS43MzJ6bTMyNi41MTkgMzkuMTA4bC44MDQgMS4zMzlMNDQ1LjUgMzI5LjEyNWwtNjMuNzUtNjcuMjMyIDk4LjAzNi0xMDEuNTE4LjI2OC4yNjh6TTI5MS43NSAzNTUuMTA3bDExLjUxOCAxMS43ODZIMjgwLjVsMTEuMjUtMTEuNzg2em0tLjI2OC0xMS4yNWwtODMuMzAzLTg1LjQ0NiA3OS41NTMtODQuMzc1IDgzLjAzNiA4Ny41ODktNzkuMjg2IDgyLjIzMnptNS4zNTcgNS44OTNsNzkuMjg2LTgyLjIzMiA2Ny41IDcxLjI1LTUuODkyIDI4LjEyNUgzMTMuNzE0bC0xNi44NzUtMTcuMTQzek00MTAuNDExIDQ0LjM5M2MxLjA3MS41MzYgMi4xNDIgMS4wNzIgMy40ODIgMS4zNGw1Ny44NTcgMTAwLjcxNHYuNTM2YzAgMi45NDYuODAzIDUuNjI0IDIuMTQzIDcuNzY3TDM3Ni4zOTMgMjU2bC04My4wMzUtODcuNTg5TDQxMC40MTEgNDQuMzkzem0tOS4xMDctMi4xNDNMMjg3LjczMiAxNjIuNTE4bC01Ny4wNTQtNjAuMjY4IDE2Ni4zMzktNjBoNC4yODd6bS0xMjMuNDgzIDBjMi42NzggMi42NzggNi4xNiA0LjI4NSAxMC4xNzkgNC4yODVzNy41LTEuNjA3IDEwLjE3OS00LjI4NWg3NUwyMjQuNzg2IDk1LjgyMSAxNzMuODkzIDQyLjI1aDEwMy45Mjh6bS0xMTYuMjQ5IDUuNjI1bDEuMDcxLTIuMTQyYTMzLjgzNCAzMy44MzQgMCAwIDAgMi42NzktLjgwNGw1MS4xNjEgNTMuODQtNTQuOTExIDE5LjgyMVY0Ny44NzV6bTAgNzkuMjg2bDYwLjgwMy0yMS45NjQgNTkuNzMyIDYzLjIxNC03OS41NTMgODQuMTA3LTQwLjk4Mi00Mi4wNTN2LTgzLjMwNHptMCA5Mi42NzhMMTk4IDI1Ny42MDdsLTM2LjQyOCAzOC4zMDR2LTc2LjA3MnptMCA4Ny44NThsNDIuMDUzLTQ0LjQ2NCA4Mi43NjggODUuOTgyLTE3LjE0MyAxNy42NzhIMTYxLjU3MnYtNTkuMTk2em02Ljk2NCAxNjIuMDUzYy0xLjYwNy0xLjYwNy0zLjQ4Mi0yLjY3OC01Ljg5My0zLjQ4MmwtMS4wNzEtMS42MDd2LTg5LjczMmg5OS45MWwtOTEuNjA3IDk0LjgyMWgtMS4zMzl6bTEyOS45MTEgMGMtMi42NzktMi40MS02LjQyOC00LjI4NS0xMC40NDctNC4yODVzLTcuNzY3IDEuODc1LTEwLjQ0NyA0LjI4NWgtOTYuNDI5bDkxLjYwNy05NC44MjFoMzguMzA0bDkxLjYwNyA5NC44MjFIMjk4LjQ0N3ptMTIwLTExLjc4NmwtNC4yODYgNy41Yy0xLjMzOS4yNjgtMi40MS44MDMtMy40ODIgMS4zMzlsLTg5LjE5Ni05MS44NzVoMTE0LjM3NmwtMTcuNDEyIDgzLjAzNnptMTIuODU2LTIyLjIzMmwxMi44NTgtNjAuODAzaDIxLjk2NGwtMzQuODIyIDYwLjgwM3ptMzQuODIyLTY4LjgzOWgtMjAuMzU3bDQuNTUzLTIxLjE2IDE3LjE0MyAxOC4yMTRjLS41MzUuODAzLTEuMDcxIDEuODc0LTEuMzM5IDIuOTQ2em02Ni4xNjEtMTA3LjQxMWwtNTUuNDQ3IDk2LjY5N2MtMS4zMzkuNTM1LTIuNjc5IDEuMDcxLTQuMDE4IDEuODc0bC0yMC42MjUtMjEuOTY0IDM0LjU1NC0xNjMuOTI4IDQ1LjgwMyA3OS4yODZjLS4yNjcgMS4zMzktLjgwMyAyLjY3OC0uODAzIDQuMjg1IDAgMS4zMzkuMjY4IDIuNDExLjUzNiAzLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb250YW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUuNCAzMDVjMTQuNCA2Ny4xIDI2LjQgMTI5IDY4LjIgMTc1SDM0Yy0xOC43IDAtMzQtMTUuMi0zNC0zNFY2NmMwLTE4LjcgMTUuMi0zNCAzNC0zNGg1Ny43Qzc3LjkgNDQuNiA2NS42IDU5LjIgNTQuOCA3NS42Yy00NS40IDcwLTI3IDE0Ni44LTkuNCAyMjkuNHpNNDc4IDMyaC05MC4yYzIxLjQgMjEuNCAzOS4yIDQ5LjUgNTIuNyA4NC4xbC0xMzcuMSAyOS4zYy0xNC45LTI5LTM3LjgtNTMuMy04Mi42LTQzLjktMjQuNiA1LjMtNDEgMTkuMy00OC4zIDM0LjYtOC44IDE4LjctMTMuMiAzOS44IDguMiAxNDAuMyAyMS4xIDEwMC4yIDMzLjcgMTE3LjcgNDkuNSAxMzEuMiAxMi45IDExLjEgMzMuNCAxNyA1OC4zIDExLjcgNDQuNS05LjQgNTUuNy00MC43IDU3LjQtNzMuMmwxMzcuNC0yOS42YzMuMiA3MS41LTE4LjcgMTI1LjItNTcuNCAxNjMuNkg0NzhjMTguNyAwIDM0LTE1LjIgMzQtMzRWNjZjMC0xOC44LTE1LjItMzQtMzQtMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvdHRvbkJ1cmVhdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzQuMzEgMzMwLjQxYy0yMy42NiA5MS44NS05NC4yMyAxNDQuNTktMjAxLjkgMTQ4LjM1VjQyOS42YzAtNDggMjYuNDEtNzQuMzkgNzQuMzktNzQuMzkgNjIgMCA5OS4yLTM3LjIgOTkuMi05OS4yMSAwLTYxLjM3LTM2LjUzLTk4LjI4LTk3LjM4LTk5LjA2LTMzLTY5LjMyLTE0Ni41LTY0LjY1LTE3Ny4yNCAwQzExMC41MiAxNTcuNzIgNzQgMTk0LjYzIDc0IDI1NmMwIDYyLjEzIDM3LjI3IDk5LjQxIDk5LjQgOTkuNDEgNDggMCA3NC41NSAyNi4yMyA3NC41NSA3NC4zOVY0NzljLTEzNC40My01LTIxMS4xLTg1LjA3LTIxMS4xLTIyMyAwLTE0MS44MiA4MS4zNS0yMjMuMiAyMjMuMi0yMjMuMiAxMTQuNzcgMCAxODkuODQgNTMuMiAyMTQuNjkgMTQ4LjgxSDUwMEM0NzMuODggNzEuNTEgMzg4LjIyIDggMjU5LjgyIDggMTA1IDggMTIgMTAxLjE5IDEyIDI1NS44MiAxMiA0MTEuMTQgMTA1LjE5IDUwNC4zNCAyNTkuODIgNTA0YzEyOC4yNyAwIDIxMy44Ny02My44MSAyMzkuNjctMTczLjU5ek0zNTcgMTgyLjMzYzQxLjM3IDMuNDUgNjQuMiAyOSA2NC4yIDczLjY3IDAgNDgtMjYuNDMgNzQuNDEtNzQuNCA3NC40MS0yOC42MSAwLTQ5LjMzLTkuNTktNjEuNTktMjcuMzMgODMuMDYtMTYuNTUgNzUuNTktOTkuNjcgNzEuNzktMTIwLjc1em0tODEuNjggOTcuMzZjLTIuNDYtMTAuMzQtMTYuMzMtODcgNTYuMjMtOTcgMi4yNyAxMC4wOSAxNi41MiA4Ny4xMS01Ni4yNiA5N3pNMjYwIDEzMmMyOC42MSAwIDQ5IDkuNjcgNjEuNDQgMjcuNjEtMjguMzYgNS40OC00OS4zNiAyMC41OS02MS41OSA0My40NS0xMi4yMy0yMi44Ni0zMy4yMy0zOC02MS42LTQzLjQ1IDEyLjQxLTE3LjY5IDMzLjI3LTI3LjM1IDYxLjU3LTI3LjM1em0tNzEuNTIgNTAuNzJjNzMuMTcgMTAuNTcgNTguOTEgODYuODEgNTYuNDkgOTctNzIuNDEtOS44NC01OS04Ni45NS01Ni4yNS05N3pNMTczLjIgMzMwLjQxYy00OCAwLTc0LjQtMjYuNC03NC40LTc0LjQxIDAtNDQuMzYgMjIuODYtNzAgNjQuMjItNzMuNjctNi43NSAzNy4yLTEuMzggMTA2LjUzIDcxLjY1IDEyMC43NS0xMi4xNCAxNy42My0zMi44NCAyNy4zLTYxLjE0IDI3LjN6bTUzLjIxIDEyLjM5QTgwLjggODAuOCAwIDAgMCAyNjAgMzA5LjI1YzcuNzcgMTQuNDkgMTkuMzMgMjUuNTQgMzMuODIgMzMuNTVhODAuMjggODAuMjggMCAwIDAtMzMuNTggMzMuODNjLTgtMTQuNS0xOS4wNy0yNi4yMy0zMy41Ni0zMy44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3BhbmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMC4zIDIyMC4yYy01LjYtMjQuOC0yNi45LTQxLjItNTEtNDEuMmgtMzdjLTcuMSAwLTEyLjUgNC41LTE0LjMgMTAuOUw3My4xIDMyMGwyNC43LS4xYzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2wyNS44LTk1LjdoMTkuOGM4LjQgMCAxNi4yIDUuNiAxOC4zIDE0LjggMi41IDEwLjktNS45IDIyLjYtMTguMyAyMi42aC0xMC4zYy03IDAtMTIuNSA0LjYtMTQuMyAxMC44bC02LjQgMjMuOGgzMmMzNy4yIDAgNTguMy0zNi4yIDUxLjctNjUuM3ptLTE1Ni41IDI4aDE4LjZjNi45IDAgMTIuNC00LjQgMTQuMy0xMC45bDYuMi0yMy42aC00MEMzMCAyMTMuNyA5IDIyNy44IDEuNyAyNTQuOC03IDI4OC42IDE4LjUgMzIwIDUyIDMyMGgxMi40bDcuMS0yNi4xYzEuMi00LjQtMi4yLTguMy02LjQtOC4zSDUzLjhjLTI0LjcgMC0yNC45LTM3LjQgMC0zNy40em0yNDcuNS0zNC44aC03Ny45bC0zLjUgMTMuNGMtMi40IDkuNiA0LjUgMTguNSAxNC4yIDE4LjVoNTcuNWM0IDAgMi40IDQuMyAyLjEgNS4zbC04LjYgMzEuOGMtLjQgMS40LS45IDUuMy01LjUgNS4zaC0zNC45Yy01LjMgMC01LjMtNy45IDAtNy45aDIxLjZjNi44IDAgMTIuMy00LjYgMTQuMi0xMC44bDMuNS0xMy4yaC00OC40Yy0zOS4yIDAtNDMuNiA2My44LS43IDYzLjhsNTcuNS4yYzExLjIgMCAyMC42LTcuMiAyMy40LTE3LjhsMTQtNTEuOGM0LjgtMTkuMi05LjctMzYuOC0yOC41LTM2Ljh6TTYzMy4xIDE3OWgtMTguOWMtNC45IDAtOS4yIDMuMi0xMC40IDcuOUw1NjguMiAzMjBjMjAuNyAwIDM5LjgtMTMuOCA0NC45LTM0LjVsMjYuNS05OC4yYzEuMi00LjMtMi04LjMtNi41LTguM3ptLTIzNi4zIDM0Ljd2LjFoLTQ4LjNsLTI2LjIgOThjLTEuMiA0LjQgMi4yIDguMyA2LjQgOC4zaDE4LjljNC44IDAgOS4yLTMgMTAuNC03LjhsMTcuMi02NEgzOTVjMTIuNSAwIDIxLjQgMTEuOCAxOC4xIDIzLjRsLTEwLjYgNDBjLTEuMiA0LjMgMS45IDguMyA2LjQgOC4zSDQyOGM0LjYgMCA5LjEtMi45IDEwLjMtNy44bDguOC0zMy4xYzktMzMuMS0xNS45LTY1LjQtNTAuMy02NS40em05OC4zIDc0LjZjLTMuNiAwLTYtMy40LTUuMS02LjdsOC0zMGMuOS0zLjkgMy43LTYgNy44LTZoMzIuOWMyLjYgMCA0LjYgMi40IDMuOSA1LjFsLS43IDIuNmMtLjYgMi0xLjkgMy0zLjkgM2gtMjEuNmMtNyAwLTEyLjYgNC42LTE0LjIgMTAuOGwtMy41IDEzaDUzLjRjMTAuNSAwIDIwLjMtNi42IDIzLjItMTcuNmwzLjItMTJjNC45LTE5LjEtOS4zLTM2LjgtMjguMy0zNi44aC00Ny4zYy0xNy45IDAtMzMuOCAxMi0zOC42IDI5LjZsLTEwLjggNDBjLTUgMTcuNyA4LjMgMzYuNyAyOC4zIDM2LjdoNjYuN2M2LjggMCAxMi4zLTQuNSAxNC4yLTEwLjdsNS43LTIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNCeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTQuOSAxOTQuNHYxMDEuNGgtMjguM3YxMjAuNWgtNzcuMVYyOTUuOWgtMjguM1YxOTQuNGMwLTQuNCAxLjYtOC4yIDQuNi0xMS4zIDMuMS0zLjEgNi45LTQuNyAxMS4zLTQuN0gyOTljNC4xIDAgNy44IDEuNiAxMS4xIDQuNyAzLjEgMy4yIDQuOCA2LjkgNC44IDExLjN6bS0xMDEuNS02My43YzAtMjMuMyAxMS41LTM1IDM0LjUtMzVzMzQuNSAxMS43IDM0LjUgMzVjMCAyMy0xMS41IDM0LjUtMzQuNSAzNC41cy0zNC41LTExLjUtMzQuNS0zNC41ek0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmNFdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNyA4QzEwMy42IDggMCAxMjQuOCAwIDI1NmMwIDEzNi4zIDExMS43IDI0OCAyNDcuNyAyNDhDMzc3LjkgNTA0IDQ5NiA0MDMuMSA0OTYgMjU2IDQ5NiAxMTcgMzg4LjQgOCAyNDcuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIzLjIgMy43LTQ1LjIgMTAuOS02Nmw2NS43IDI5LjFoLTQuN3YyOS41aDIzLjNjMCA2LjItLjQgMy4yLS40IDE5LjVoLTIyLjh2MjkuNWgyN2MxMS40IDY3IDY3LjIgMTAxLjMgMTI0LjYgMTAxLjMgMjYuNiAwIDUwLjYtNy45IDY0LjgtMTUuOGwtMTAtNDYuMWMtOC43IDQuNi0yOC4yIDEwLjgtNDcuMyAxMC44LTI4LjIgMC01OC4xLTEwLjktNjcuMy01MC4yaDkwLjNsMTI4LjMgNTYuOGMtMS41IDIuMS01Ni4yIDEwNC4zLTE3OC44IDEwNC4zem0tMTYuNy0xOTAuNmwtLjUtLjQuOS40aC0uNHptNzcuMi0xOS41aDMuN3YtMjkuNWgtNzAuM2wtMjguNi0xMi42YzIuNS01LjUgNS40LTEwLjUgOC44LTE0LjMgMTIuOS0xNS44IDMxLjEtMjIuNCA1MS4xLTIyLjQgMTguMyAwIDM1LjMgNS40IDQ2LjEgMTBsMTEuNi00Ny4zYy0xNS02LjYtMzctMTIuNC02Mi4zLTEyLjQtMzkgMC03Mi4yIDE1LjgtOTUuOSA0Mi4zLTUuMyA2LjEtOS44IDEyLjktMTMuOSAyMC4xbC04MS42LTM2LjFjNjQuNi05Ni44IDE1Ny43LTkzLjYgMTcwLjctOTMuNiAxMTMgMCAyMDMgOTAuMiAyMDMgMjAzLjQgMCAxOC43LTIuMSAzNi4zLTYuMyA1Mi45bC0xMzYuMS02MC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNOY0pwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny43IDhDMTAzLjYgOCAwIDEyNC44IDAgMjU2YzAgMTM2LjQgMTExLjggMjQ4IDI0Ny43IDI0OEMzNzcuOSA1MDQgNDk2IDQwMy4yIDQ5NiAyNTYgNDk2IDExNy4yIDM4OC41IDggMjQ3LjcgOHptLjYgNDUwLjdjLTExMiAwLTIwMy42LTkyLjUtMjAzLjYtMjAyLjcgMC0yMS4xIDMtNDEuMiA5LTYwLjNsMTI3IDU2LjVoLTI3Ljl2MzguNmg1OC4xbDUuNyAxMS44djE4LjdoLTYzLjhWMzYwaDYzLjh2NTZoNjEuN3YtNTZoNjQuMnYtMzUuN2w4MSAzNi4xYy0xLjUgMi4yLTU3LjEgOTguMy0xNzUuMiA5OC4zem04Ny42LTEzNy4zaC01Ny42di0xOC43bDIuOS01LjYgNTQuNyAyNC4zem02LjUtNTEuNHYtMTcuOGgtMzguNmw2My0xMTZIMzAxbC00My40IDk2LTIzLTEwLjItMzkuNi04NS43aC02NS44bDI3LjMgNTEtODEuOS0zNi41YzI3LjgtNDQuMSA4Mi42LTk4LjEgMTczLjctOTguMSAxMTIuOCAwIDIwMyA5MCAyMDMgMjAzLjQgMCAyMS0yLjcgNDAuNi03LjkgNTlsLTEwMS00NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNOYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4Ny40IDggNDk2IDExNS45IDQ5NiAyNTZjMCAxNDcuMi0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy4xIDUwNCAwIDM5My4yIDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4ek01NS44IDE4OS4xYy03LjQgMjAuNC0xMS4xIDQyLjctMTEuMSA2Ni45IDAgMTEwLjkgOTIuMSAyMDIuNCAyMDMuNyAyMDIuNCAxMjIuNCAwIDE3Ny4yLTEwMS44IDE3OC41LTEwNC4xbC05My40LTQxLjZjLTcuNyAzNy4xLTQxLjIgNTMtNjguMiA1NS40djM4LjFoLTI4LjhWMzY4Yy0yNy41LS4zLTUyLjYtMTAuMi03NS4zLTI5LjdsMzQuMS0zNC41YzMxLjcgMjkuNCA4Ni40IDMxLjggODYuNC0yLjIgMC02LjItMi4yLTExLjItNi42LTE1LjEtMTQuMi02LTEuOC0uMS0yMTkuMy05Ny40ek0yNDguNCA1Mi4zYy0zOC40IDAtMTEyLjQgOC43LTE3MC41IDkzbDk0LjggNDIuNWMxMC0zMS4zIDQwLjQtNDIuOSA2My44LTQ0LjN2LTM4LjFoMjguOHYzOC4xYzIyLjcgMS4yIDQzLjQgOC45IDYyIDIzTDI5NSAxOTkuN2MtNDIuNy0yOS45LTgzLjUtOC03MCAxMS4xIDUzLjQgMjQuMSA0My44IDE5LjggOTMgNDEuNmwxMjcuMSA1Ni43YzQuMS0xNy40IDYuMi0zNS4xIDYuMi01My4xIDAtNTctMTkuOC0xMDUtNTkuMy0xNDMuOS0zOS4zLTM5LjktODcuMi01OS44LTE0My42LTU5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem05NCAxNDQuM3Y0Mi41SDE2Mi4xVjE5N2gxODAuM3ptMCA3OS44djQyLjVIMTYyLjF2LTQyLjVoMTgwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1BkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMTA0LjcgOCAwIDEyMy4xIDAgMjU2YzAgMTM4LjUgMTEzLjYgMjQ4IDI0Ny42IDI0OEMzNzcuNSA1MDQgNDk2IDQwMy4xIDQ5NiAyNTYgNDk2IDExOC4xIDM4OS40IDggMjQ3LjYgOHptLjggNDUwLjhjLTExMi41IDAtMjAzLjctOTMtMjAzLjctMjAyLjggMC0xMDUuNCA4NS41LTIwMy4zIDIwMy43LTIwMy4zIDExMi42IDAgMjAyLjkgODkuNSAyMDIuOCAyMDMuMyAwIDEyMS43LTk5LjYgMjAyLjgtMjAyLjggMjAyLjh6TTMxNi43IDE4NmgtNTMuMnYxMzcuMmg1My4yYzIxLjQgMCA3MC01LjEgNzAtNjguNiAwLTYzLjQtNDguNi02OC42LTcwLTY4LjZ6bS44IDEwOC41aC0xOS45di03OS43bDE5LjQtLjFjMy44IDAgMzUtMi4xIDM1IDM5LjkgMCAyNC42LTEwLjUgMzkuOS0zNC41IDM5Ljl6TTIwMy43IDE4NmgtNjguMnYxMzcuM2gzNC42VjI3OWgyN2M1NC4xIDAgNTcuMS0zNy41IDU3LjEtNDYuNSAwLTMxLTE2LjgtNDYuNS01MC41LTQ2LjV6bS00LjkgNjcuM2gtMjkuMnYtNDEuNmgyOC4zYzMwLjkgMCAyOC44IDQxLjYuOSA0MS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNQZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOS4xIDAgMjU2YzAgMTM3IDExMSAyNDggMjQ4IDI0OHMyNDgtMTExIDI0OC0yNDhDNDk2IDExOS4xIDM4NSA4IDI0OCA4em0wIDQ0OS41Yy0xMzkuMiAwLTIzNS44LTEzOC0xOTAuMi0yNjcuOWw3OC44IDM1LjFjLTIuMSAxMC41LTMuMyAyMS41LTMuMyAzMi45IDAgOTkgNzMuOSAxMjYuOSAxMjAuNCAxMjYuOSAyMi45IDAgNTMuNS02LjcgNzkuNC0yOS41TDI5NyAzMTEuMWMtNS41IDYuMy0xNy42IDE2LjctMzYuMyAxNi43LTM3LjggMC01My43LTM5LjktNTMuOS03MS45IDIzMC40IDEwMi42IDIxNi41IDk2LjUgMjE3LjkgOTYuOC0zNC4zIDYyLjQtMTAwLjYgMTA0LjgtMTc2LjcgMTA0Ljh6bTE5NC4yLTE1MGwtMjI0LTEwMGMxOC44LTM0IDU0LjktMzAuNyA3NC43LTExbDQwLjQtNDEuNmMtMjcuMS0yMy4zLTU4LTI3LjUtNzguMS0yNy41LTQ3LjQgMC04MC45IDIwLjUtMTAwLjcgNTEuNmwtNzQuOS0zMy40YzM2LjEtNTQuOSA5OC4xLTkxLjIgMTY4LjUtOTEuMiAxMTEuMSAwIDIwMS41IDkwLjQgMjAxLjUgMjAxLjUgMCAxOC0yLjQgMzUuNC02LjggNTItLjMtLjEtLjQtLjItLjYtLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1JlbWl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xNjEuNyAyMDcuN2w0LjkgMi4ydjcwYy03LjIgMy42LTYzLjQgMjcuNS02Ny4zIDI4LjgtNi41LTEuOC0xMTMuNy00Ni44LTEzNy4zLTU2LjJsLTY0LjIgMjYuNi02My4zLTI3LjV2LTYzLjhsNTkuMy0yNC44Yy0uNy0uNy0uNCA1LS40LTcwLjRsNjcuMy0yOS43TDM2MSAxNzguNXY2MS42bDQ5LjEgMjAuM3ptLTcwLjQgODEuNXYtNDMuOGgtLjR2LTEuOGwtMTEzLjgtNDYuNVYyOTVsMTEzLjggNDYuOXYtLjRsLjQuNHptNy41LTU3LjZsMzkuOS0xNi40LTM2LjgtMTUuNS0zOSAxNi40IDM1LjkgMTUuNXptNTIuMyAzOC4xdi00M0wzNTUuMiAyOTh2NDMuNGw0NC4zLTE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNTYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3pNMTM3LjcgMjIxYzEzLTgzLjkgODAuNS05NS43IDEwOC45LTk1LjcgOTkuOCAwIDEyNy41IDgyLjUgMTI3LjUgMTM0LjIgMCA2My42LTQxIDEzMi45LTEyOC45IDEzMi45LTM4LjkgMC05OS4xLTIwLTEwOS40LTk3aDYyLjVjMS41IDMwLjEgMTkuNiA0NS4yIDU0LjUgNDUuMiAyMy4zIDAgNTgtMTguMiA1OC04Mi44IDAtODIuNS00OS4xLTgwLjYtNTYuNy04MC42LTMzLjEgMC01MS43IDE0LjYtNTUuOCA0My44aDE4LjJsLTQ5LjIgNDkuMi00OS00OS4yaDE5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptMTA3IDIwNS42Yy00LjcgMC05IDIuOC0xMC43IDcuMmwtNCA5LjUtMTEtOTIuOGMtMS43LTEzLjktMjItMTMuNC0yMy4xLjRsLTQuMyA1MS40LTUuMi02OC44Yy0xLjEtMTQuMy0yMi4xLTE0LjItMjMuMiAwbC0zLjUgNDQuOS01LjktOTQuM2MtLjktMTQuNS0yMi4zLTE0LjQtMjMuMiAwbC01LjEgODMuNy00LjMtNjYuM2MtLjktMTQuNC0yMi4yLTE0LjQtMjMuMiAwbC01LjMgODAuMi00LjEtNTdjLTEuMS0xNC4zLTIyLTE0LjMtMjMuMi0uMmwtNy43IDg5LjgtMS44LTEyLjJjLTEuNy0xMS40LTE3LjEtMTMuNi0yMi0zLjNsLTEzLjIgMjcuN0g4Ny41djIzLjJoNTEuM2M0LjQgMCA4LjQtMi41IDEwLjQtNi40bDEwLjcgNzMuMWMyIDEzLjUgMjEuOSAxMyAyMy4xLS43bDMuOC00My42IDUuNyA3OC4zYzEuMSAxNC40IDIyLjMgMTQuMiAyMy4yLS4xbDQuNi03MC40IDQuOCA3My4zYy45IDE0LjQgMjIuMyAxNC40IDIzLjItLjFsNC45LTgwLjUgNC41IDcxLjhjLjkgMTQuMyAyMi4xIDE0LjUgMjMuMi4ybDQuNi01OC42IDQuOSA2NC40YzEuMSAxNC4zIDIyIDE0LjIgMjMuMS4xbDYuOC04MyAyLjcgMjIuM2MxLjQgMTEuOCAxNy43IDE0LjEgMjIuMyAzLjFsMTgtNDMuNGg1MC41VjI1OGwtNTguNC4zem0tNzggNS4yaC0yMS45djIxLjljMCA0LjEtMy4zIDcuNS03LjUgNy41LTQuMSAwLTcuNS0zLjMtNy41LTcuNXYtMjEuOWgtMjEuOWMtNC4xIDAtNy41LTMuMy03LjUtNy41IDAtNC4xIDMuNC03LjUgNy41LTcuNWgyMS45di0yMS45YzAtNC4xIDMuNC03LjUgNy41LTcuNXM3LjUgMy4zIDcuNSA3LjV2MjEuOWgyMS45YzQuMSAwIDcuNSAzLjMgNy41IDcuNSAwIDQuMS0zLjQgNy41LTcuNSA3LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhbXBsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0zLjYgNTMuMmMyLjgtLjMgMTEuNSAxIDExLjUgMTEuNWw2LjYgMTA3LjIgNC45LTU5LjNjMC02IDQuNy0xMC42IDEwLjYtMTAuNiA1LjkgMCAxMC42IDQuNyAxMC42IDEwLjYgMCAyLjUtLjUtNS43IDUuNyA4MS41bDUuOC02NC4yYy4zLTIuOSAyLjktOS4zIDEwLjItOS4zIDMuOCAwIDkuOSAyLjMgMTAuNiA4LjlsMTEuNSA5Ni41IDUuMy0xMi44YzEuOC00LjQgNS4yLTYuNiAxMC4yLTYuNmg1OHYyMS4zaC01MC45bC0xOC4yIDQ0LjNjLTMuOSA5LjktMTkuNSA5LjEtMjAuOC0zLjFsLTQtMzEuOS03LjUgOTIuNmMtLjMgMy0zIDkuMy0xMC4yIDkuMy0zIDAtOS44LTIuMS0xMC42LTkuMyAwLTEuOS42IDUuOC02LjItNzcuOWwtNS4zIDcyLjJjLTEuMSA0LjgtNC44IDkuMy0xMC42IDkuMy0yLjkgMC05LjgtMi0xMC42LTkuMyAwLTEuOS41IDYuNy01LjgtODcuN2wtNS44IDk0LjhjMCA2LjMtMy42IDEyLjQtMTAuNiAxMi40LTUuMiAwLTEwLjYtNC4xLTEwLjYtMTJsLTUuOC04Ny43Yy01LjggOTIuNS01LjMgODQtNS4zIDg1LjktMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtLjctLjQtMS4xLS40LTIuNmwtNi4yLTg4LjZMMTgyIDM0OGMtLjcgNi41LTYuNyA5LjMtMTAuNiA5LjMtNS44IDAtOS42LTQuMS0xMC42LTguOUwxNDkuNyAyNzJjLTIgNC0zLjUgOC40LTExLjEgOC40SDg3LjJ2LTIxLjNIMTMybDEzLjctMjcuOWM0LjQtOS45IDE4LjItNy4yIDE5LjkgMi43bDMuMSAyMC40IDguNC05Ny45YzAtNiA0LjgtMTAuNiAxMC42LTEwLjYuNSAwIDEwLjYtLjIgMTAuNiAxMi40bDQuOSA2OS4xIDYuNi05Mi42YzAtMTAuMSA5LjUtMTAuNiAxMC4yLTEwLjYuNiAwIDEwLjYuNyAxMC42IDEwLjZsNS4zIDgwLjYgNi4yLTk3LjljLjEtMS4xLS42LTEwLjMgOS45LTExLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDEgMTMyLjRjNy44IDAgMTMuNyA2LjEgMTMuNyAxMy43djE4Mi41YzAgNy43LTYuMSAxMy43LTEzLjcgMTMuN0gyMTQuM2MtNy43IDAtMTMuNy02LTEzLjctMTMuN3YtNTRoLTU0Yy03LjggMC0xMy43LTYtMTMuNy0xMy43VjEzMS4xYzAtOC4yIDYuNi0xMi43IDEyLjQtMTMuN2gxMzYuNGM3LjcgMCAxMy43IDYgMTMuNyAxMy43djU0aDU0ek0xNTkuOSAzMDAuM2g0MC43VjE5OC45YzAtNy40IDUuOC0xMi42IDEyLTEzLjdoNTUuOHYtNDAuM0gxNTkuOXYxNTUuNHptMTc2LjItODguMUgyMjcuNnYxNTUuNGgxMDguNVYyMTIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zWmVybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuNiA4QzM4OS40IDggNDk2IDExOC4xIDQ5NiAyNTZjMCAxNDcuMS0xMTguNSAyNDgtMjQ4LjQgMjQ4QzExMy42IDUwNCAwIDM5NC41IDAgMjU2IDAgMTIzLjEgMTA0LjcgOCAyNDcuNiA4em0uOCA0NC43QzEzMC4yIDUyLjcgNDQuNyAxNTAuNiA0NC43IDI1NmMwIDEwOS44IDkxLjIgMjAyLjggMjAzLjcgMjAyLjggMTAzLjIgMCAyMDIuOC04MS4xIDIwMi44LTIwMi44LjEtMTEzLjgtOTAuMi0yMDMuMy0yMDIuOC0yMDMuM3ptLS40IDYwLjVjLTgxLjkgMC0xMDIuNSA3Ny4zLTEwMi41IDE0Mi44IDAgNjUuNSAyMC42IDE0Mi44IDEwMi41IDE0Mi44UzM1MC41IDMyMS41IDM1MC41IDI1NmMwLTY1LjUtMjAuNi0xNDIuOC0xMDIuNS0xNDIuOHptMCA1My45YzMuMyAwIDYuNC41IDkuMiAxLjIgNS45IDUuMSA4LjggMTIuMSAzLjEgMjEuOWwtNTQuNSAxMDAuMmMtMS43LTEyLjctMS45LTI1LjEtMS45LTM0LjQgMC0yOC44IDItODguOSA0NC4xLTg4Ljl6bTQwLjggNDYuMmMyLjkgMTUuNCAzLjMgMzEuNCAzLjMgNDIuNyAwIDI4LjktMiA4OC45LTQ0LjEgODguOS0xMy41IDAtMzIuNi03LjctMjAuMS0yNi40bDYwLjktMTA1LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDUuODMgMjE0Ljg3bC0zMy4yMiAxNy4yOGMtOS40My0xOS41OC0yNS4yNC0xOS45My0yNy40Ni0xOS45My0yMi4xMyAwLTMzLjIyIDE0LjYxLTMzLjIyIDQzLjg0IDAgMjMuNTcgOS4yMSA0My44NCAzMy4yMiA0My44NCAxNC40NyAwIDI0LjY1LTcuMDkgMzAuNTctMjEuMjZsMzAuNTUgMTUuNWMtNi4xNyAxMS41MS0yNS42OSAzOC45OC02NS4xIDM4Ljk4LTIyLjYgMC03My45Ni0xMC4zMi03My45Ni03Ny4wNSAwLTU4LjY5IDQzLTc3LjA2IDcyLjYzLTc3LjA2IDMwLjcyLS4wMSA1Mi43IDExLjk1IDY1Ljk5IDM1Ljg2em0xNDMuMDUgMGwtMzIuNzggMTcuMjhjLTkuNS0xOS43Ny0yNS43Mi0xOS45My0yNy45LTE5LjkzLTIyLjE0IDAtMzMuMjIgMTQuNjEtMzMuMjIgNDMuODQgMCAyMy41NSA5LjIzIDQzLjg0IDMzLjIyIDQzLjg0IDE0LjQ1IDAgMjQuNjUtNy4wOSAzMC41NC0yMS4yNmwzMSAxNS41Yy0yLjEgMy43NS0yMS4zOSAzOC45OC02NS4wOSAzOC45OC0yMi42OSAwLTczLjk2LTkuODctNzMuOTYtNzcuMDUgMC01OC42NyA0Mi45Ny03Ny4wNiA3Mi42My03Ny4wNiAzMC43MS0uMDEgNTIuNTggMTEuOTUgNjUuNTYgMzUuODZ6TTI0Ny41NiA4LjA1QzEwNC43NCA4LjA1IDAgMTIzLjExIDAgMjU2LjA1YzAgMTM4LjQ5IDExMy42IDI0OCAyNDcuNTYgMjQ4IDEyOS45MyAwIDI0OC40NC0xMDAuODcgMjQ4LjQ0LTI0OCAwLTEzNy44Ny0xMDYuNjItMjQ4LTI0OC40NC0yNDh6bS44NyA0NTAuODFjLTExMi41NCAwLTIwMy43LTkzLjA0LTIwMy43LTIwMi44MSAwLTEwNS40MiA4NS40My0yMDMuMjcgMjAzLjcyLTIwMy4yNyAxMTIuNTMgMCAyMDIuODIgODkuNDYgMjAyLjgyIDIwMy4yNi0uMDEgMTIxLjY5LTk5LjY4IDIwMi44Mi0yMDIuODQgMjAyLjgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcml0aWNhbFJvbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjgyIDBjLjI2LjE1IDIxNi41NyAxMjQuNTEgMjE3LjEyIDEyNC43MiAzIDEuMTggMy43IDMuNDYgMy43IDYuNTZxLS4xMSAxMjUuMTcgMCAyNTAuMzZhNS44OCA1Ljg4IDAgMCAxLTMuMzggNS43OGMtMjEuMzcgMTItMjA3Ljg2IDExOC4yOS0yMTguOTMgMTI0LjU4aC0zQzE0MiA0NjYuMzQgMy4wOCAzODYuNTYgMi45MyAzODYuNDhhMy4yOSAzLjI5IDAgMCAxLTEuODgtMy4yNGMwLS44NyAwLTIyNS45NC0uMDUtMjUzLjFhNSA1IDAgMCAxIDIuOTMtNC45M0MyNy4xOSAxMTIuMTEgMjEzLjIgNiAyMjQuMDcgMHpNMjE1LjQgMjAuNDJsLS4yMi0uMTZRMTE4LjA2IDc1LjU1IDIxIDEzMC44N2MwIC4xMi4wOC4yMy4xMy4zNWwzMC44NiAxMS42NGMtNy43MSA2LTguMzIgNi0xMC42NSA1LjEzLS4xIDAtMjQuMTctOS4yOC0yNi44LTEwdjIzMC40M2MuODgtMS40MSA2NC4wNy0xMTAuOTEgNjQuMTMtMTExIDEuNjItMi44MiAzLTEuOTIgOS4xMi0xLjUyIDEuNC4wOSAxLjQ4LjIyLjc4IDEuNDItNDEuMTkgNzEuMzMtMzYuNCA2My02Ny40OCAxMTYuOTQtLjgxIDEuNC0uNjEgMS4xMyAxLjI1IDEuMTNoMTg2LjVjMS40NCAwIDEuNjktLjIzIDEuNy0xLjY0di04Ljg4YzAtMS4zNCAyLjM2LS44MS0xOC4zNy0xLTcuNDYtLjA3LTE0LjE0LTMuMjItMjEuMzgtMTIuNy03LjM4LTkuNjYtMTQuNjItMTkuNDMtMjEuODUtMjkuMjEtMi4yOC0zLjA4LTMuNDUtMi4zOC0xNi43Ni0yLjM4LTEuNzUgMC0xLjc4IDAtMS43NiAxLjgyLjI5IDI2LjIxLjE1IDI1LjI3IDEgMzIuNjYuNTIgNC4zNyAyLjE2IDQuMiA5LjY5IDQuODEgMy4xNC4yNiAzLjg4IDQuMDguNTIgNC45Mi0xLjU3LjM5LTMxLjYuNTEtMzMuNjctLjFhMi40MiAyLjQyIDAgMCAxIC4zLTQuNzNjMy4yOS0uNzYgNi4xNi44MSA2LjY2LTQuNDQgMS4zLTEzLjY2IDEuMTctOSAxLjEtNzkuNDIgMC0xMC44Mi0uMzUtMTIuNTgtNS4zNi0xMy41NS0xLjIyLS4yNC0zLjU0LS4xNi00LjY5LS41NS0yLjg4LTEtMi00Ljg0IDEuNzctNC44NSAzMy42NyAwIDQ2LjA4LTEuMDcgNTYuMDYgNC44NiA3Ljc0IDQuNjEgMTIgMTEuNDggMTIuNTEgMjAuNC44OCAxNC41OS02LjUxIDIyLjM1LTE1IDMyLjU5YTEuNDYgMS40NiAwIDAgMCAwIDIuMjJjMi42IDMuMjUgNSA2LjYzIDcuNzEgOS44MyAyNy41NiAzMy4yMyAyNC4xMSAzMC41NCA0MS4yOCAzMy4wNi44OS4xMyAxLS40MiAxLTEuMTV2LTExYzAtMSAuMzItMS40MyAxLjQxLTEuMjZhNzIuMzcgNzIuMzcgMCAwIDAgMjMuNTgtLjNjMS4wOC0uMTUgMS41LjIgMS40OCAxLjMzIDAgLjExLjg4IDI2LjY5Ljg3IDI2LjgtLjA1IDEuNTIuNjcgMS42MiAxLjg5IDEuNjJoMTg2LjcxUTM4Ni41MSAzMDQuNiAzNDYgMjM0LjMzYzIuMjYtLjY2LS40IDAgNi42OS0xLjM5IDItLjM5IDIuMDUtLjQxIDMuMTEgMS40NCA3LjMxIDEyLjY0IDc3LjMxIDEzNCA3Ny4zNyAxMzQuMDZWMTM4Yy0xLjcyLjUtMTAzLjMgMzguNzItMTA1Ljc2IDM5LjY4LTEuMDguNDItMS41NS4yLTEuOTEtLjg4LS42My0xLjktMS4zNC0zLjc2LTIuMDktNS42Mi0uMzItLjc5LS4wOS0xLjEzLjY1LTEuMzkuMSAwIDk1LjUzLTM1Ljg1IDEwMy0zOC43Ny02NS40Mi0zNy41Ny0xMzAuNTYtNzUtMTk2LTExMi42bDg2LjgyIDE1MC4zOS0uMjguMzNjLTkuNTctLjktMTAuNDYtMS42LTExLjgtMy45NC0xLTEuNjktNzMuNS0xMjcuNzEtODItMTQyLjE2LTkuMSAxNC42Ny04My41NiAxNDYuMjEtODUuMzcgMTQ2LjMyLTIuOTMuMTctNS44OC4wOC05LjI1LjA4cTQzLjI1LTc0Ljc0IDg2LjE4LTE0OXptNTEuOTMgMTI5LjkyYTM3LjY4IDM3LjY4IDAgMCAwIDUuNTQtLjg1YzEuNjktLjMgMi41My4yIDIuNiAxLjkyIDAgLjExLjA3IDE5LjA2LS44NiAyMC40NXMtMS44OCAxLjIyLTIuNi0uMTljLTUtOS42OSA2LjIyLTkuNjYtMzkuMTItMTItLjcgMC0xIC4yMy0xIC45MyAwIC4xMyAzLjcyIDEyMiAzLjczIDEyMi4xMSAwIC44OS41MiAxLjIgMS4yMSAxLjUxYTgzLjkyIDgzLjkyIDAgMCAxIDguNyA0LjA1YzcuMzEgNC4zMyAxMS4zOCAxMC44NCAxMi40MSAxOS4zMSAxLjQ0IDExLjgtMi43NyAzNS43Ny0zMi4yMSAzNy4xNC0yLjc1LjEzLTI4LjI2IDEuMDgtMzQuMTQtMjMuMjUtNC42Ni0xOS4yNiA4LjI2LTMyLjcgMTkuODktMzYuNGEyLjQ1IDIuNDUgMCAwIDAgMi0yLjY2Yy4xLTUuNjMgMy0xMDcuMSAzLjcxLTEyMS4zNS4wNS0xLjA4LS42Mi0xLjE2LTEuMzUtMS4xNS0zMi4zNS41Mi0zNi43NS0uMzQtNDAuMjIgOC41Mi0yLjQyIDYuMTgtNC4xNCAxLjMyLTMuOTUuMjNxMS41OS05IDMuMzEtMThjLjQtMi4xMSAxLjQzLTIuNjEgMy40My0xLjg2IDUuNTkgMi4xMSA2LjcyIDEuNyAzNy4yNSAxLjkyIDEuNzMgMCAxLjc4LS4wOCAxLjgyLTEuODUuNjgtMjcuNDkuNTgtMjIuNTkgMS0yOS41NWEyLjY5IDIuNjkgMCAwIDAtMS42My0yLjhjLTUuNi0yLjkxLTguNzUtNy41NS04LjktMTMuODctLjM1LTE0LjgxIDE3LjcyLTIxLjY3IDI3LjM4LTExLjUxIDYuODQgNy4xOSA1LjggMTguOTEtMi40NSAyNC4xNWE0LjM1IDQuMzUgMCAwIDAtMi4yMiA0LjM0YzAgLjU5LS4xMS00LjMxIDEgMzAuMDUgMCAuOS40MyAxLjEyIDEuMjQgMS4xMS4xIDAgMjMtLjA5IDM0LjQ3LS4zN3pNNjguMjcgMTQxLjdjMTkuODQtNC41MSAzMi42OC0uNTYgNTIuNDkgMS42OSAyLjc2LjMxIDMuNzQgMS4yMiAzLjYyIDQtLjIxIDUtMS4xNiAyMi4zMy0xLjI0IDIzLjE1YTIuNjUgMi42NSAwIDAgMS0xLjYzIDIuMzRjLTQuMDYgMS43LTMuNjEtNC40NS00LTcuMjktMy4xMy0yMi40My03My44Ny0zMi43LTc0LjYzIDI1LjQtLjMxIDIzLjkyIDE3IDUzLjYzIDU0LjA4IDUwLjg4IDI3LjI0LTIgMTktMjAuMTkgMjQuODQtMjAuNDdhMi43MiAyLjcyIDAgMCAxIDMgMy4zNmMtMS44MyAxMC44NS0zLjQyIDE4Ljk1LTMuNDUgMTkuMTUtMS41NCA5LjE3LTg2LjcgMjIuMDktOTMuMzUtNDIuMDYtMi43MS0yNS44NSAxMC40NC01My4zNyA0MC4yNy02MC4xNXptODAgODcuNjdoLTE5LjQ5YTIuNTcgMi41NyAwIDAgMS0yLjY2LTEuNzljMi4zOC0zLjc1IDUuODkuOTIgNS44Ni02LjE0LS4wOC0yNS43NS4yMS0zOCAuMjMtNDAuMSAwLTMuNDItLjUzLTQuNjUtMy4zMi00Ljk0LTctLjcyLTMuMTEtMy4zNy0xLjExLTMuMzggMTEuODQtLjEgMjIuNjItLjE4IDMwLjA1LjcyIDguNzcgMS4wNyAxNi43MSAxMi42MyA3LjkzIDIyLjYyLTIgMi4yNS00IDQuNDItNi4xNCA2LjczLjk1IDEuMTUgNi45IDguODIgMTcuMjggMTkuNjggMi42NiAyLjc4IDYuMTUgMy41MSA5Ljg4IDMuMTNhMi4yMSAyLjIxIDAgMCAwIDIuMjMtMi4xMmMuMy0zLjQyLjI2IDQuNzMuNDUtNDAuNTggMC01LjY1LS4zNC02LjU4LTMuMjMtNi44My0zLjk1LS4zNS00LTIuMjYtLjY5LTMuMzdsMTkuMDktLjA5Yy4zMiAwIDQuNDkuNTMgMSAzLjM4IDAgLjA1LS4xNiAwLS4yNCAwLTMuNjEuMjYtMy45NCAxLTQgNC42Mi0uMjcgNDMuOTMuMDcgNDAuMjMuNDEgNDIuODIuMTEuODQuMjcgMi4yMyA1LjEgMi4xNCAyLjQ5IDAgMy44NiAzLjM3IDAgMy40LTEwLjM3LjA4LTIwLjc0IDAtMzEuMTEuMDctMTAuNjcgMC0xMy40Ny02LjItMjQuMjEtMjAuODItMS42LTIuMTgtOC4zMS0yLjM2LTguMi0uMzcuODggMTYuNDcgMCAxNy43OCA0IDE3LjY3IDQuNzUtLjEgNC43MyAzLjU3LjgzIDMuNTV6bTI3NS0xMC4xNWMtMS4yMSA3LjEzLjE3IDEwLjM4LTUuMyAxMC4zNC02MS41NS0uNDItNDcuODItLjIyLTUwLjcyLS4zMWExOC40IDE4LjQgMCAwIDEtMy42My0uNzNjLTIuNTMtLjYgMS40OC0xLjIzLS4zOC01LjYtMS40My0zLjM3LTIuNzgtNi43OC00LjExLTEwLjE5YTEuOTQgMS45NCAwIDAgMC0yLTEuNDQgMTM4IDEzOCAwIDAgMC0xNC41OC4wNyAyLjIzIDIuMjMgMCAwIDAtMS42MiAxLjA2Yy0xLjU4IDMuNjItMy4wNyA3LjI5LTQuNTEgMTEtMS4yNyAzLjIzIDcuODYgMS4zMiAxMi4xOSAyLjE2IDMgLjU3IDQuNTMgMy43Mi42NiAzLjczSDMyMi45Yy0yLjkyIDAtMy4wOS0zLjE1LS43NC0zLjIxYTYuMyA2LjMgMCAwIDAgNS45Mi0zLjQ3YzEuNS0zIDIuOC02IDQuMTEtOS4wOSAxOC4xOC00Mi4xNCAxNy4wNi00MC4xNyAxOC40Mi00MS42MWExLjgzIDEuODMgMCAwIDEgMyAwYzIuOTMgMy4zNCAxOC40IDQ0LjcxIDIzLjYyIDUxLjkyIDIgMi43IDUuNzQgMiA2LjM2IDIgMy42MS4xMyA0LTEuMTEgNC4xMy00LjI5LjA5LTEuODcuMDggMS4xNy4wNy00MS4yNCAwLTQuNDYtMi4zNi0zLjc0LTUuNTUtNC4yNy0uMjYgMC0yLjU2LS42My0uMDgtMy4wNi4yMS0uMi0uODktLjI0IDIxLjctLjE1IDIuMzIgMCA1LjMyIDIuNzUtMS4yMSAzLjQ1YTIuNTYgMi41NiAwIDAgMC0yLjY2IDIuODNjLS4wNyAxLjYzLS4xOSAzOC44OS4yOSA0MS4yMWEzLjA2IDMuMDYgMCAwIDAgMy4yMyAyLjQzYzEzLjI1LjQzIDE0LjkyLjQ0IDE2LTMuNDEgMS42Ny01Ljc4IDQuMTMtMi41MiAzLjczLS4xOXptLTEwNC43MiA2NC4zN2MtNC4yNCAwLTQuNDItMy4zOS0uNjEtMy40MSAzNS45MS0uMTYgMjguMTEuMzggMzcuMTktLjY1IDEuNjgtLjE5IDIuMzguMjQgMi4yNSAxLjg5LS4yNiAzLjM5LS42NCA2Ljc4LTEgMTAuMTYtLjI1IDIuMTYtMy4yIDIuNjEtMy40LS4xNS0uMzgtNS4zMS0yLjE1LTQuNDUtMTUuNjMtNS4wOC0xLjU4LS4wNy0xLjY0IDAtMS42NCAxLjUyVjMwNGMwIDEuNjUgMCAxLjYgMS42MiAxLjQ3IDMuMTItLjI1IDEwLjMxLjM0IDE1LjY5LTEuNTIuNDctLjE2IDMuMy0xLjc5IDMuMDcgMS43NiAwIC4yMS0uNzYgMTAuMzUtMS4xOCAxMS4zOS0uNTMgMS4yOS0xLjg4IDEuNTEtMi41OC4zMi0xLjE3LTIgMC01LjA4LTMuNzEtNS4zLTE1LjQyLS45LTEyLjkxLTIuNTUtMTIuOTEgNiAwIDEyLjI1LS43NiAxNi4xMSAzLjg5IDE2LjI0IDE2LjY0LjQ4IDE0LjQgMCAxNi40My01LjcxLjg0LTIuMzcgMy41LTEuNzcgMy4xOC41OC0uNDQgMy4yMS0uODUgNi40My0xLjIzIDkuNjQgMCAuMzYtLjE2IDIuNC00LjY2IDIuMzktMzcuMTYtLjA4LTM0LjU0LS4xOS0zNS4yMS0uMzEtMi43Mi0uNTEtMi4yLTMgLjIyLTMuNDUgMS4xLS4xOSA0IC41NCA0LjE2LTIuNTYgMi40NC01Ni4yMi0uMDctNTEuMzQtMy45MS01MS4zM3ptLS40MS0xMDkuNTJjMi40Ni42MSAzLjEzIDEuNzYgMi45NSA0LjY1LS4zMyA1LjMtLjM0IDktLjU1IDkuNjktLjY2IDIuMjMtMy4xNSAyLjEyLTMuMzQtLjI3LS4zOC00LjgxLTMuMDUtNy44Mi03LjU3LTkuMTUtMjYuMjgtNy43My0zMi44MSAxNS40Ni0yNy4xNyAzMC4yMiA1Ljg4IDE1LjQxIDIyIDE1LjkyIDI4Ljg2IDEzLjc4IDUuOTItMS44NSA1Ljg4LTYuNSA2LjkxLTcuNTggMS4yMy0xLjMgMi4yNS0xLjg0IDMuMTIgMS4xIDAgLjEuNTcgMTEuODktNiAxMi43NS0xLjYuMjEtMTkuMzggMy42OS0zMi42OC0zLjM5LTIxLTExLjE5LTE2Ljc0LTM1LjQ3LTYuODgtNDUuMzMgMTQtMTQuMDYgMzkuOTEtNy4wNiA0Mi4zMi02LjQ3ek0yODkuOCAyODAuMTRjMy4yOCAwIDMuNjYgMyAuMTYgMy40My0yLjYxLjMyLTUtLjQyLTUgNS40NiAwIDItLjE5IDI5LjA1LjQgNDEuNDUuMTEgMi4yOSAxLjE1IDMuNTIgMy40NCAzLjY1IDIyIDEuMjEgMTQuOTUtMS42NSAxOC43OS02LjM0IDEuODMtMi4yNCAyLjc2Ljg0IDIuNzYgMS4wOC4zNSAxMy42Mi00IDEyLjM5LTUuMTkgMTIuNGwtMzguMTYtLjE5Yy0xLjkzLS4yMy0yLjA2LTMtLjQyLTMuMzggMi0uNDggNC45NC40IDUuMTMtMi44IDEtMTUuODcuNTctNDQuNjUuMzQtNDcuODEtLjI3LTMuNzctMi44LTMuMjctNS42OC0zLjcxLTIuNDctLjM4LTItMy4yMi4zNC0zLjIyIDEuNDUtLjAyIDE3Ljk3LS4wMyAyMy4wOS0uMDJ6bS0zMS42My01Ny43OWMuMDcgNC4wOCAyLjg2IDMuNDYgNiAzLjU4IDIuNjEuMSAyLjUzIDMuNDEtLjA3IDMuNDMtNi40OCAwLTEzLjcgMC0yMS42MS0uMDYtMy44NCAwLTMuMzgtMy4zNSAwLTMuMzcgNC40OSAwIDMuMjQgMS42MSAzLjQxLTQ1LjU0IDAtNS4wOC0zLjI3LTMuNTQtNC43Mi00LjIzLTIuNTgtMS4yMy0xLjM2LTMuMDkuNDEtMy4xNSAxLjI5IDAgMjAuMTktLjQxIDIxLjE3LjIxczEuODcgMS42NS0uNDIgMi44NmMtMSAuNTItMy44Ni0uMjgtNC4xNSAyLjQ3IDAgLjIxLS44MiAxLjYzLS4wNyA0My44em0tMzYuOTEgMjc0LjI3YTIuOTMgMi45MyAwIDAgMCAzLjI2IDBjMTctOS43OSAxODItMTAzLjU3IDE5Ny40Mi0xMTIuNTEtLjE0LS40MyAxMS4yNi0uMTgtMTgxLjUyLS4yNy0xLjIyIDAtMS41Ny4zNy0xLjUzIDEuNTYgMCAuMSAxLjI1IDQ0LjUxIDEuMjIgNTAuMzhhMjguMzMgMjguMzMgMCAwIDEtMS4zNiA3LjcxYy0uNTUgMS44My4zOC0uNS0xMy41IDMyLjIzLS43MyAxLjcyLTEgMi4yMS0yLS4wOC00LjE5LTEwLjM0LTguMjgtMjAuNzItMTIuNTctMzFhMjMuNiAyMy42IDAgMCAxLTItMTAuNzljLjE2LTIuNDYuOC0xNi4xMiAxLjUxLTQ4IDAtMS45NSAwLTItMi0yaC0xODNjMi41OCAxLjYzIDE3OC4zMiAxMDIuNTcgMTk2IDExMi43NnptLTkwLjktMTg4Ljc1YzAgMi40LjM2IDIuNzkgMi43NiAzIDExLjU0IDEuMTcgMjEgMy43NCAyNS42NC03LjMyIDYtMTQuNDYgMi42Ni0zNC40MS0xMi40OC0zOC44NC0yLS41OS0xNi0yLjc2LTE1Ljk0IDEuNTEuMDUgOC4wNC4wMSAxMS42MS4wMiA0MS42NXptMTA1Ljc1LTE1LjA1YzAgMi4xMyAxLjA3IDM4LjY4IDEuMDkgMzkuMTMuMzQgOS45NC0yNS41OCA1Ljc3LTI1LjIzLTIuNTkuMDgtMiAxLjM3LTM3LjQyIDEuMS0zOS40My0xNC4xIDcuNDQtMTQuNDIgNDAuMjEgNi40NCA0OC44YTE3LjkgMTcuOSAwIDAgMCAyMi4zOS03LjA3YzQuOTEtNy43NiA2Ljg0LTI5LjQ3LTUuNDMtMzlhMi41MyAyLjUzIDAgMCAxLS4zNi4xMnptLTEyLjI4LTE5OGMtOS44MyAwLTkuNzMgMTQuNzUtLjA3IDE0Ljg3czEwLjEtMTQuODguMDctMTQuOTF6bS04MC4xNSAxMDMuODNjMCAxLjguNDEgMi40IDIuMTcgMi41OCAxMy42MiAxLjM5IDEyLjUxLTExIDEyLjE2LTEzLjM2LTEuNjktMTEuMjItMTQuMzgtMTAuMi0xNC4zNS03LjgxLjA1IDQuNS0uMDMgMTMuNjguMDIgMTguNTl6bTIxMi4zMiA2LjRsLTYuMS0xNS44NGMtMi4xNiA1LjQ4LTQuMTYgMTAuNTctNi4yMyAxNS44NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3NzM0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMybDM0LjkgMzk1LjhMMTkyIDQ4MGwxNTcuMS01Mi4yTDM4NCAzMkgwem0zMTMuMSA4MGwtNC44IDQ3LjNMMTkzIDIwOC42bC0uMy4xaDExMS41bC0xMi44IDE0Ni42LTk4LjIgMjguNy05OC44LTI5LjItNi40LTczLjloNDguOWwzLjIgMzguMyA1Mi42IDEzLjMgNTQuNy0xNS40IDMuNy02MS42LTE2Ni4zLS41di0uMWwtLjIuMS0zLjYtNDYuM0wxOTMuMSAxNjJsNi41LTIuN0g3Ni43TDcwLjkgMTEyaDI0Mi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDc3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzMmwtNjQgMzY4LTIyMy4zIDgwTDAgNDAwbDE5LjYtOTQuOGg4MmwtOCA0MC42TDIxMCAzOTAuMmwxMzQuMS00NC40IDE4LjgtOTcuMUgyOS41bDE2LTgyaDMzMy43bDEwLjUtNTIuN0g1Ni4zbDE2LjMtODJINDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDdXR0bGVmaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCAzMDUuNWMtMTcuNSAzMS42LTU3LjQgNTQuNS05NiA1NC41LTU2LjYgMC0xMDQtNDcuNC0xMDQtMTA0czQ3LjQtMTA0IDEwNC0xMDRjMzguNiAwIDc4LjUgMjIuOSA5NiA1NC41IDEzLjctNTAuOSA0MS43LTkzLjMgODctMTE3LjhDMzg1LjcgMzkuMSAzMjAuNSA4IDI0OCA4IDExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OGM3Mi41IDAgMTM3LjctMzEuMSAxODMtODAuNy00NS4zLTI0LjUtNzMuMy02Ni45LTg3LTExNy44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEQW5kREJleW9uZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuOCAyNDEuNWMxMy44IDAgMjEtMTAuMSAyNC44LTE3LjktMS0xLjEtNS00LjItNy40LTYuNi0yLjQgNC4zLTguMiAxMC43LTEzLjkgMTAuNy0xMC4yIDAtMTUuNC0xNC43LTMuMi0yNi42LS41LS4yLTQuMy0xLjgtOCAyLjQgMC0zIDEtNS4xIDIuMS02LjYtMy41IDEuMy05LjggNS42LTExLjQgNy45LjItNS44IDEuNi03LjUuNi05bC0uMi0uMnMtOC41IDUuNi05LjMgMTQuN2MwIDAgMS4xLTEuNiAyLjEtMS45LjYtLjMgMS4zIDAgLjYgMS45LS4yLjYtNS44IDE1LjcgNS4xIDI2LS42LTEuNi0xLjktNy42IDIuNC0xLjktLjMuMSA1LjggNy4xIDE1LjcgNy4xem01Mi40LTIxLjFjMC00LTQuOS00LjQtNS42LTQuNSAyIDMuOS45IDcuNS4yIDkgMi41LS40IDUuNC0xLjYgNS40LTQuNXptMTAuMyA1LjJjMC02LjQtNi4yLTExLjQtMTMuNS0xMC43IDggMS4zIDUuNiAxMy44LTUgMTEuNCAzLjctMi42IDMuMi05LjktMS4zLTEyLjUgMS40IDQuMi0zIDguMi03LjQgNC42LTIuNC0xLjktOC02LjYtMTAuNi04LjYtMi40LTIuMS01LjUtMS02LjYtMS44LTEuMy0xLjEtLjUtMy44LTIuMi01LTEuNi0uOC0zLS4zLTQuOC0xLTEuNi0uNi0yLjctMS45LTIuNi0zLjUtMi41IDQuNCAzLjQgNi4zIDQuNSA4LjUgMSAxLjktLjggNC44IDQgOC41IDE0LjggMTEuNiA5LjEgOCAxMC40IDE4LjEuNiA0LjMgNC4yIDYuNyA2LjQgNy40LTIuMS0xLjktMi45LTYuNCAwLTkuMyAwIDEzLjkgMTkuMiAxMy4zIDIzLjEgNi40LTIuNCAxLjEtNy0uMi05LTEuOSA3LjcgMSAxNC4yLTQuMSAxNC42LTEwLjZ6bS0zOS40LTE4LjRjMiAuOCAxLjYuNyA2LjQgNC41IDEwLjItMjQuNSAyMS43LTE1LjcgMjItMTUuNSAyLjItMS45IDkuOC0zLjggMTMuOC0yLjctMi40LTIuNy03LjUtNi4yLTEzLjMtNi4yLTQuNyAwLTcuNCAyLjItOCAxLjMtLjgtMS40IDMuMi0zLjQgMy4yLTMuNC01LjQuMi05LjYgNi43LTExLjIgNS45LTEuMS0uNSAxLjQtMy43IDEuNC0zLjctNS4xIDIuOS05LjMgOS4xLTEwLjIgMTMgNC42LTUuOCAxMy44LTkuOCAxOS43LTktMTAuNS41LTE5LjUgOS43LTIzLjggMTUuOHptMjQyLjUgNTEuOWMtMjAuNyAwLTQwIDEuMy01MC4zIDIuMWw3LjQgOC4ydjc3LjJsLTcuNCA4LjJjMTAuNC44IDMwLjkgMi4xIDUxLjYgMi4xIDQyLjEgMCA1OS4xLTIwLjcgNTkuMS00OC45IDAtMjkuMy0yMy4yLTQ4LjktNjAuNC00OC45em0tMTUuMSA3NS42di01My4zYzMwLjEtMy4zIDQ2LjggMy44IDQ2LjggMjYuMyAwIDI1LjYtMjEuNCAzMC4yLTQ2LjggMjd6TTMwMS42IDE4MWMtMS0zLjQtLjItNi45IDEuMS05LjQgMSAzIDIuNiA2LjQgNy41IDktLjUtMi40LS4yLTUuNi41LTgtMS40LTUuNCAyLjEtOS45IDYuNC05LjkgNi45IDAgOC41IDguOCA0LjcgMTQuNCAyLjEgMy4yIDUuNSA1LjYgNy43IDcuOCAzLjItMy43IDUuNS05LjUgNS41LTEzLjggMC04LjItNS41LTE1LjktMTYuNy0xNi41LTIwLS45LTIwLjIgMTYuNi0yMCAxOC45LjUgNS4yIDMuNCA3LjggMy4zIDcuNXptLS40IDZjLS41IDEuOC03IDMuNy0xMC4yIDYuOSA0LjgtMSA3LS4yIDcuOCAxLjguNSAxLjQtLjIgMy40LS41IDUuNiAxLjYtMS44IDctNS41IDExLTYuMi0xLS4zLTMuNC0uOC00LjMtLjggMi45LTMuNCA5LjMtNC41IDEyLjgtMy43LTIuMi0uMi02LjcgMS4xLTguNSAyLjYgMS42LjMgMyAuNiA0LjMgMS4xLTIuMS44LTQuOCAzLjQtNS44IDYuMSA3LTUgMTMuMSA1LjIgNyA4LjIuOC4yIDIuNyAwIDMuNS0uNS0uMyAxLjEtMS45IDMtMyAzLjQgMi45IDAgNy0xLjkgOC4yLTQuNiAwIDAtMS44LjYtMi42LS4ycy4zLTQuMy4zLTQuM2MtMi4zIDIuOS0zLjQtMS4zLTEuMy00LjItMS0uMy0zLjUtLjYtNC42LS41IDMuMi0xLjEgMTAuNC0xLjggMTEuMi0uMy42IDEuMS0xIDMuNC0xIDMuNCA0LS41IDguMyAxLjEgNi43IDUuMSAyLjktMS40IDUuNS01LjkgNC44LTEwLjQtLjMgMS0xLjYgMi40LTIuOSAyLjcuMi0xLjQtMS0yLjItMS45LTIuNiAxLjctOS42LTE0LjYtMTQuMi0xNC4xLTIzLjktMSAxLjMtMS44IDUtLjggNy4xIDIuNyAzLjIgOC43IDYuNyAxMC4xIDEyLjItMi42LTYuNC0xNS4xLTExLjQtMTQuNi0yMC4yLTEuNiAxLjYtMi42IDcuOC0xLjMgMTEgMi40IDEuNCA0LjUgMy44IDQuOCA2LjEtMi4yLTUuMS0xMS40LTYuMS0xMy45LTEyLjItLjYgMi4yLS4zIDUgMSA2LjcgMCAwLTIuMi0uOC03LS42IDEuNy42IDUuMSAzLjUgNC44IDUuMnptMjUuOSA3LjRjLTIuNyAwLTMuNS0yLjEtNC4yLTQuMyAzLjMgMS4zIDQuMiA0LjMgNC4yIDQuM3ptMzguOSAzLjdsLTEtLjZjLTEuMS0xLTIuOS0xLjQtNC43LTEuNC0yLjkgMC01LjggMS4zLTcuNSAzLjQtLjguOC0xLjQgMS44LTIuMSAyLjZ2MTUuN2MzLjUgMi42IDcuMS0yLjkgMy03LjIgMS41LjMgNC42IDIuNyA1LjEgMy4yIDAgMCAyLjYtLjUgNS0uNSAyLjEgMCAzLjkuMyA1LjYgMS4xVjE5NmMtMS4xLjUtMi4yIDEtMi43IDEuNHpNNzkuOSAzMDUuOWMxNy4yLTQuNiAxNi4yLTE4IDE2LjItMTkuOSAwLTIwLjYtMjQuMS0yNS0zNy0yNUgzbDguMyA4LjZ2MjkuNUgwbDExLjQgMTQuNlYzNDZMMyAzNTQuNmM2MS43IDAgNzMuOCAxLjUgODYuNC01LjkgNi43LTQgOS45LTkuOCA5LjktMTcuNiAwLTUuMSAyLjYtMTguOC0xOS40LTI1LjJ6bS00MS4zLTI3LjVjMjAgMCAyOS42LS44IDI5LjYgOS4xdjNjMCAxMi4xLTE5IDguOC0yOS42IDguOHptMCA1OS4yVjMxNWMxMi4yIDAgMzIuNy0yLjMgMzIuNyA4Ljh2NC41aC4yYzAgMTEuMi0xMi41IDkuMy0zMi45IDkuM3ptMTAxLjItMTkuM2wyMy4xLjJ2LS4ybDE0LjEtMjEuMmgtMzcuMnYtMTQuOWg1Mi40bC0xNC4xLTIxdi0uMmwtNzMuNS4yIDcuNCA4LjJ2NzcuMWwtNy40IDguMmg4MS4ybDE0LjEtMjEuMi02MC4xLjJ6bTIxNC43LTYwLjFjLTczLjkgMC03Ny41IDk5LjMtLjMgOTkuMyA3Ny45IDAgNzQuMS05OS4zLjMtOTkuM3ptLS4zIDc3LjVjLTM3LjQgMC0zNi45LTU1LjMuMi01NS4zIDM2LjguMSAzOC44IDU1LjMtLjIgNTUuM3ptLTkxLjMtOC4zbDQ0LjEtNjYuMmgtNDEuN2w2LjEgNy4yLTIwLjUgMzcuMmgtLjNsLTIxLTM3LjIgNi40LTcuMmgtNDQuOWw0NC4xIDY1LjguMiAxOS40LTcuNyA4LjJoNDIuNmwtNy4yLTguMnptLTI4LjQtMTUxLjNjMS42IDEuMyAyLjkgMi40IDIuOSA2LjZ2MzguOGMwIDQuMi0uOCA1LjMtMi43IDYuNC0uMS4xLTcuNSA0LjUtNy45IDQuNmgzNS4xYzEwIDAgMTcuNC0xLjUgMjYtOC42LS42LTUgLjItOS41LjgtMTIgMC0uMi0xLjggMS40LTIuNyAzLjUgMC01LjcgMS42LTE1LjQgOS42LTIwLjUtLjEgMC0zLjctLjgtOSAxLjEgMi0zLjEgMTAtNy45IDEwLjQtNy45LTguMi0yNi0zOC0yMi45LTMyLjItMjIuOS0zMC45IDAtMzIuNi4zLTM5LjktNCAuMS44LjUgOC4yIDkuNiAxNC45em0yMS41IDUuNWM0LjYgMCAyMy4xLTMuMyAyMy4xIDE3LjMgMCAyMC43LTE4LjQgMTcuMy0yMy4xIDE3LjN6bTIyOC45IDc5LjZsNyA4LjNWMzEyaC0uM2MtNS40LTE0LjQtNDIuMy00MS41LTQ1LjItNTAuOWgtMzEuNmw3LjQgOC41djc2LjlsLTcuMiA4LjNoMzlsLTcuNC04LjJ2LTQ3LjRoLjNjMy43IDEwLjYgNDQuNSA0Mi45IDQ4LjUgNTUuNmgyMS4zdi04NS4ybDcuNC04LjN6bS0xMDYuNy05Ni4xYy0zMi4yIDAtMzIuOC4yLTM5LjktNCAuMS43LjUgOC4zIDkuNiAxNC45IDMuMSAyIDIuOSA0LjMgMi45IDkuNSAxLjgtMS4xIDMuOC0yLjIgNi4xLTMtMS4xIDEuMS0yLjcgMi43LTMuNSA0LjUgMS0xLjEgNy41LTUuMSAxNC42LTMuNS0xLjYuMy00IDEuMS02LjEgMi45LjEgMCAyLjEtMS4xIDcuNS0uM3YtNC4zYzQuNyAwIDIzLjEtMy40IDIzLjEgMTcuMyAwIDIwLjUtMTguNSAxNy4zLTE5LjcgMTcuMyA1LjcgNC40IDUuOCAxMiAyLjIgMTYuM2guM2MzMy40IDAgMzYuNy0yNy4zIDM2LjctMzQgMC0zLjgtMS4xLTMyLTMzLjgtMzMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhREFuZEQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODIuNSA5OC45Yy0uNi0xNy4yIDItMzMuOCAxMi43LTQ4LjIuMyA3LjQgMS4yIDE0LjUgNC4yIDIxLjYgNS45LTI3LjUgMTkuNy00OS4zIDQyLjMtNjUuNS0xLjkgNS45LTMuNSAxMS44LTMgMTcuNyA4LjctNy40IDE4LjgtMTcuOCA0NC40LTIyLjcgMTQuNy0yLjggMjkuNy0yIDQyLjEgMSAzOC41IDkuMyA2MSAzNC4zIDY5LjcgNzIuMyA1LjMgMjMuMS43IDQ1LTguMyA2Ni40LTUuMiAxMi40LTEyIDI0LjQtMjAuNyAzNS4xLTItMS45LTMuOS0zLjgtNS44LTUuNi00Mi44LTQwLjgtMjYuOC0yNS4yLTM3LjQtMzcuNC0xLjEtMS4yLTEtMi4yLS4xLTMuNiA4LjMtMTMuNSAxMS44LTI4LjIgMTAtNDQtMS4xLTkuOC00LjMtMTguOS0xMS4zLTI2LjItMTQuNS0xNS4zLTM5LjItMTUtNTMuNS42LTExLjQgMTIuNS0xNC4xIDI3LjQtMTAuOSA0My42LjIgMS4zLjQgMi43IDAgMy45LTMuNCAxMy43LTQuNiAyNy42LTIuNSA0MS42LjEuNS4xIDEuMS4xIDEuNiAwIC4zLS4xLjUtLjIgMS4xLTIxLjgtMTEtMzYtMjguMy00My4yLTUyLjItOC4zIDE3LjgtMTEuMSAzNS41LTYuNiA1NC4xLTE1LjYtMTUuMi0yMS4zLTM0LjMtMjItNTUuMnptNDY5LjYgMTIzLjJjLTExLjYtMTEuNi0yNS0yMC40LTQwLjEtMjYuNi0xMi44LTUuMi0yNi03LjktMzkuOS03LjEtMTAgLjYtMTkuNiAzLjEtMjkgNi40LTIuNS45LTUuMSAxLjYtNy43IDIuMi00LjkgMS4yLTcuMy0zLjEtNC43LTYuOCAzLjItNC42IDMuNC00LjIgMTUtMTIgLjYtLjQgMS4yLS44IDIuMi0xLjVoLTIuNWMtLjYgMC0xLjIuMi0xLjkuMy0xOS4zIDMuMy0zMC43IDE1LjUtNDguOSAyOS42LTEwLjQgOC4xLTEzLjggMy44LTEyLS41IDEuNC0zLjUgMy4zLTYuNyA1LjEtMTAgMS0xLjggMi4zLTMuNCAzLjUtNS4xLS4yLS4yLS41LS4zLS43LS41LTI3IDE4LjMtNDYuNyA0Mi40LTU3LjcgNzMuMy4zLjMuNy42IDEgLjkuMy0uNi41LTEuMi45LTEuNyAxMC40LTEyLjEgMjIuOC0yMS44IDM2LjYtMjkuOCAxOC4yLTEwLjYgMzcuNS0xOC4zIDU4LjctMjAuMiA0LjMtLjQgOC43LS4xIDEzLjEtLjEtMS44LjctMy41LjktNS4zIDEuMS0xOC41IDIuNC0zNS41IDktNTEuNSAxOC41LTMwLjIgMTcuOS01NC41IDQyLjItNzUuMSA3MC40LS4zLjQtLjQuOS0uNyAxLjMgMTQuNSA1LjMgMjQgMTcuMyAzNi4xIDI1LjYuMi0uMS4zLS4yLjQtLjRsMS4yLTIuN2MxMi4yLTI2LjkgMjctNTIuMyA0Ni43LTc0LjUgMTYuNy0xOC44IDM4LTI1LjMgNjIuNS0yMCA1LjkgMS4zIDExLjQgNC40IDE3LjIgNi44IDIuMy0xLjQgNS4xLTMuMiA4LTQuNyA4LjQtNC4zIDE3LjQtNyAyNi43LTkgMTQuNy0zLjEgMjkuNS00LjkgNDQuNS0xLjN2LS41Yy0uNS0uNC0xLjItLjgtMS43LTEuNHpNMzE2LjcgMzk3LjZjLTM5LjQtMzMtMjIuOC0xOS41LTQyLjctMzUuNi0uOC45IDAtLjItMS45IDMtMTEuMiAxOS4xLTI1LjUgMzUuMy00NCA0Ny42LTEwLjMgNi44LTIxLjUgMTEuOC0zNC4xIDExLjgtMjEuNiAwLTM4LjItOS41LTQ5LjQtMjcuOC0xMi0xOS41LTEzLjMtNDAuNy04LjItNjIuNiA3LjgtMzMuOCAzMC4xLTU1LjIgMzguNi02NC4zLTE4LjctNi4yLTMzIDEuNy00Ni40IDEzLjkuOC0xMy45IDQuMy0yNi4yIDExLjgtMzcuMy0yNC4zIDEwLjYtNDUuOSAyNS02NC44IDQzLjktLjMtNS44IDUuNC00My43IDUuNi00NC43LjMtMi43LS42LTUuMy0zLTcuNC0yNC4yIDI0LjctNDQuNSA1MS44LTU2LjEgODQuNiA3LjQtNS45IDE0LjktMTEuNCAyMy42LTE2LjItOC4zIDIyLjMtMTkuNiA1Mi44LTcuOCAxMDEuMSA0LjYgMTkgMTEuOSAzNi44IDI0LjEgNTIuMyAyLjkgMy43IDYuMyA2LjkgOS41IDEwLjMuMi0uMi40LS4zLjYtLjUtMS40LTctMi4yLTE0LjEtMS41LTIxLjkgMi4yIDMuMiAzLjkgNiA1LjkgOC42IDEyLjYgMTYgMjguNyAyNy40IDQ3LjIgMzUuNiAyNSAxMS4zIDUxLjEgMTMuMyA3Ny45IDguNiA1NC45LTkuNyA5MC43LTQ4LjYgMTE2LTk4LjggMS0xLjguNi0yLjktLjktNC4yem0xNzItNDYuNGMtOS41LTMuMS0yMi4yLTQuMi0yOC43LTIuOSA5LjkgNCAxNC4xIDYuNiAxOC44IDEyIDEyLjYgMTQuNCAxMC40IDM0LjctNS40IDQ1LjYtMTEuNyA4LjEtMjQuOSAxMC41LTM4LjkgOS4xLTEuMi0uMS0yLjMtLjQtMy0uNiAyLjgtMy43IDYtNyA4LjEtMTAuOCA5LjQtMTYuOCA1LjQtNDIuMS04LjctNTYuMS0yLjEtMi4xLTQuNi0zLjktNy01LjktLjMgMS4zLS4xIDIuMS4xIDIuOCA0LjIgMTYuNi04LjEgMzIuNC0yNC44IDMxLjgtNy42LS4zLTEzLjktMy44LTE5LjYtOC41LTE5LjUtMTYuMS0zOS4xLTMyLjEtNTguNS00OC4zLTUuOS00LjktMTIuNS04LjEtMjAuMS04LjctNC42LS40LTkuMy0uNi0xMy45LS45LTUuOS0uNC04LjgtMi44LTEwLjQtOC40LS45LTMuNC0xLjUtNi44LTIuMi0xMC4yLTEuNS04LjEtNi4yLTEzLTE0LjMtMTQuMi00LjQtLjctOC45LTEtMTMuMy0xLjUtMTMtMS40LTE5LjgtNy40LTIyLjYtMjAuMy01IDExLTEuNiAyMi40IDcuMyAyOS45IDQuNSAzLjggOS4zIDcuMyAxMy44IDExLjIgNC42IDMuOCA3LjQgOC43IDcuOSAxNC44LjQgNC43LjggOS41IDEuOCAxNC4xIDIuMiAxMC42IDguOSAxOC40IDE3IDI1LjEgMTYuNSAxMy43IDMzIDI3LjMgNDkuNSA0MS4xIDE3LjkgMTUgMTMuOSAzMi44IDEzIDU2LS45IDIyLjkgMTIuMiA0Mi45IDMzLjUgNTEuMiAxIC40IDIgLjYgMy42IDEuMS0xNS43LTE4LjItMTAuMS00NC4xLjctNTIuMy4zIDIuMi40IDQuMy45IDYuNCA5LjQgNDQuMSA0NS40IDY0LjIgODUgNTYuOSAxNi0yLjkgMzAuNi04LjkgNDIuOS0xOS44IDItMS44IDMuNy00LjEgNS45LTYuNS0xOS4zIDQuNi0zNS44LjEtNTAuOS0xMC42LjctLjMgMS4zLS4zIDEuOS0uMyAyMS4zIDEuOCA0MC42LTMuNCA1Ny0xNy40IDE5LjUtMTYuNiAyNi42LTQyLjkgMTcuNC02Ni04LjMtMjAuMS0yMy42LTMyLjMtNDMuOC0zOC45ek05OS40IDE3OS4zYy01LjMtOS4yLTEzLjItMTUuNi0yMi4xLTIxLjMgMTMuNy0uNSAyNi42LjIgMzkuNiAzLjctNy0xMi4yLTguNS0yNC43LTUtMzguNyA1LjMgMTEuOSAxMy43IDIwLjEgMjMuNiAyNi44IDE5LjcgMTMuMiAzNS43IDE5LjYgNDYuNyAzMC4yIDMuNCAzLjMgNi4zIDcuMSA5LjYgMTAuOS0uOC0yLjEtMS40LTQuMS0yLjItNi01LTEwLjYtMTMtMTguNi0yMi42LTI1LTEuOC0xLjItMi44LTIuNS0zLjQtNC41LTMuMy0xMi41LTMtMjUuMS0uNy0zNy42IDEtNS41IDIuOC0xMC45IDQuNS0xNi4zLjgtMi40IDIuMy00LjYgNC02LjYuNiA2LjkgMCAyNS41IDE5LjYgNDYgMTAuOCAxMS4zIDIyLjQgMjEuOSAzMy45IDMyLjcgOSA4LjUgMTguMyAxNi43IDI1LjUgMjYuOCAxLjEgMS42IDIuMiAzLjMgMy44IDQuNy01LTEzLTE0LjItMjQuMS0yNC4yLTMzLjgtOS42LTkuMy0xOS40LTE4LjQtMjkuMi0yNy40LTMuMy0zLTQuNi02LjctNS4xLTEwLjktMS4yLTEwLjQgMC0yMC42IDQuMy0zMC4yLjUtMSAxLjEtMiAxLjktMy4zLjUgNC4yLjYgNy45IDEuNCAxMS42IDQuOCAyMy4xIDIwLjQgMzYuMyA0OS4zIDYzLjUgMTAgOS40IDE5LjMgMTkuMiAyNS42IDMxLjYgNC44IDkuMyA3LjMgMTkgNS43IDI5LjYtLjEuNi41IDEuNyAxLjEgMiA2LjIgMi42IDEwIDYuOSA5LjcgMTQuMyA3LjctMi42IDEyLjUtOCAxNi40LTE0LjUgNC4yIDIwLjItOS4xIDUwLjMtMjcuMiA1OC43LjQtNC41IDUtMjMuNC0xNi41LTI3LjctNi44LTEuMy0xMi44LTEuMy0yMi45LTIuMSA0LjctOSAxMC40LTIwLjYuNS0yMi40LTI0LjktNC42LTUyLjggMS45LTU3LjggNC42IDguMi40IDE2LjMgMSAyMy41IDMuMy0yIDYuNS00IDEyLjctNS44IDE4LjktMS45IDYuNSAyLjEgMTQuNiA5LjMgOS42IDEuMi0uOSAyLjMtMS45IDMuMy0yLjctMy4xIDE3LjktMi45IDE1LjktMi44IDE4LjMuMyAxMC4yIDkuNSA3LjggMTUuNyA3LjMtMi41IDExLjgtMjkuNSAyNy4zLTQ1LjQgMjUuOCA3LTQuNyAxMi43LTEwLjMgMTUuOS0xNy45LTYuNS44LTEyLjkgMS42LTE5LjIgMi40bC0uMy0uOWM0LjctMy40IDgtNy44IDEwLjItMTMuMSA4LjctMjEuMS0zLjYtMzgtMjUtMzkuOS05LjEtLjgtMTcuOC44LTI1LjkgNS41IDYuMi0xNS42IDE3LjItMjYuNiAzMi42LTM0LjUtMTUuMi00LjMtOC45LTIuNy0yNC42LTYuMyAxNC42LTkuMyAzMC4yLTEzLjIgNDYuNS0xNC42LTUuMi0zLjItNDguMS0zLjYtNzAuMiAyMC45IDcuOSAxLjQgMTUuNSAyLjggMjMuMiA0LjItMjMuOCA3LTQ0IDE5LjctNjIuNCAzNS42IDEuMS00LjggMi43LTkuNSAzLjMtMTQuMy42LTQuNS44LTkuMi4xLTEzLjYtMS41LTkuNC04LjktMTUuMS0xOS43LTE2LjMtNy45LS45LTE1LjYuMS0yMy4zIDEuMy0uOS4xLTEuNy4zLTIuOSAwIDE1LjgtMTQuOCAzNi0yMS43IDUzLjEtMzMuNSA2LTQuNSA2LjgtOC4yIDMtMTQuOXptMTI4LjQgMjYuOGMzLjMgMTYgMTIuNiAyNS41IDIzLjggMjQuMy00LjYtMTEuMy0xMi4xLTE5LjUtMjMuOC0yNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEYWlseW1vdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguOTMsMjY3YTQ4LjQsNDguNCwwLDAsMC0yNC4zNi02LjIxcS0xOS44MywwLTMzLjQ0LDEzLjI3dC0xMy42MSwzMy40MnEwLDIxLjE2LDEzLjI4LDM0LjZ0MzMuNDMsMTMuNDRxMjAuNSwwLDM0LjExLTEzLjc4VDMyMiwzMDcuNDdBNDcuMTMsNDcuMTMsMCwwLDAsMzE1LjksMjg0LDQ0LjEzLDQ0LjEzLDAsMCwwLDI5OC45MywyNjdaTTAsMzJWNDgwSDQ0OFYzMlpNMzc0LjcxLDQwNS4yNmgtNTMuMVYzODEuMzdoLS42N3EtMTUuNzksMjYuMi01NS43OCwyNi4yLTI3LjU2LDAtNDguODktMTMuMWE4OC4yOSw4OC4yOSwwLDAsMS0zMi45NC0zNS43N3EtMTEuNi0yMi42OC0xMS41OS01MC44OSwwLTI3LjU2LDExLjc2LTUwLjIyYTg5LjksODkuOSwwLDAsMSwzMi45My0zNS43OHEyMS4xOC0xMy4wOSw0Ny43Mi0xMy4xYTgwLjg3LDgwLjg3LDAsMCwxLDI5Ljc0LDUuMjFxMTMuMjgsNS4yMSwyNSwxN1YxNTNsNTUuNzktMTIuMDlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhc2hjdWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi42IDEwNEgxMTAuNGMtNTEuMSAwLTkxLjIgNDMuMy05MS4yIDkzLjVWNDI3YzAgNTAuNSA0MC4xIDg1IDkxLjIgODVoMjI3LjJjNTEuMSAwIDkxLjItMzQuNSA5MS4yLTg1VjBMMzI2LjYgMTA0ek0xNTMuOSA0MTYuNWMtMTcuNyAwLTMyLjQtMTUuMS0zMi40LTMyLjhWMjQwLjhjMC0xNy43IDE0LjctMzIuNSAzMi40LTMyLjVoMTQwLjdjMTcuNyAwIDMyIDE0LjggMzIgMzIuNXYxMjMuNWw1MS4xIDUyLjNIMTUzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlYmlhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuMiAyNDUuNmMzLTcuNiA1LjUtMTQgNS4yLTI0LjRsLTQuMyA5YzQuNC0xMy4yIDQtMjcuMSAzLjYtNDAuNGMtLjItNi0uMy0xMS44IDAtMTcuNGwtMS44LS41Yy0xLjUtNDUuMi00MC42LTkzLjEtNzUuMy0xMDkuNGMtMzAtMTMuOC03Ni4xLTE2LjItOTcuMy01LjhjMS4zLTEuMSA0LjItMiA2LjgtMi43bC4zLS4xYzMuMy0xIDYtMS43IDQtMi45Yy0xOS4yIDEuOS0yNC45IDUuNS0zMS4xIDkuNGwtLjEgMGMtNC42IDIuOS05LjUgNi0yMC4zIDguN2MtMy41IDMuNCAxLjcgMiA1LjggLjlsMCAwYzQuMS0xLjEgNy4yLTEuOS0uMSAyLjRjLTMuNSAxLTYuNiAxLjMtOS42IDEuNmwtLjEgMGMtOC4zIC44LTE1LjggMS42LTMwLjcgMTdjLjggMS4zIDMuNC0uMiA1LjMtMS4zbC4xLS4xYzIuMy0xLjQgMy40LTItMS43IDQuNGMtMTkuMS0yLjQtNjAuMyA0My43LTY5LjEgNTlsNC42IC44Yy0zLjIgOC02LjggMTQuOC0xMCAyMC44Yy00LjMgOC4xLTcuOSAxNC45LTguNyAyMS4zYy0uMyA1LjEtMSAxMS0xLjcgMTcuM2wwIDBjLS4xIDEtLjIgMi0uMyAzbC0uMSAuNmMtMyAyNy4zLTYuNyA2MC44IDMuOSA3M2wtMS4zIDEzYy42IDEuMiAxLjEgMi4zIDEuNiAzLjVjLjIgLjQgLjQgLjggLjUgMS4xbDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMGMxIDIuMSAyIDQuMiAzLjMgNi4ybC0zIC4yYzcgMjIuMSAxMC44IDIyLjUgMTUuMSAyMi45bDAgMGM0LjQgLjQgOS4zIC45IDE4LjcgMjQuMmMtMi43LS45LTUuNS0xLjktOS40LTcuMmMtLjUgNC4xIDUuOCAxNi4zIDEzLjEgMjUuOGwtMy4xIDMuNmMyLjEgMy43IDQuOCA2LjIgNy42IDguOGwwIDAgMCAwYzEgLjkgMi4xIDEuOSAzLjEgMi45Yy0xMS45LTYuNSAzLjIgMTMuNyAxMS45IDI1LjJjLjggMS4xIDEuNSAyIDIuMiAyLjlsMCAwIDAgMCAwIDAgMCAwIDAgMGMxLjQgMS45IDIuNSAzLjQgMi45IDQuMWwyLjQtNC4yYy0uMyA2LjEgNC4zIDEzLjkgMTMuMSAyNC43bDcuMy0uM2MzIDYgMTQgMTYuNyAyMC43IDE3LjJsLTQuNCA1LjhjOC4xIDIuNiAxMC4zIDQuMyAxMi43IDYuMmMyLjYgMi4xIDUuNCA0LjMgMTYuMSA4LjFsLTQuMi03LjRjMy41IDMgNi4yIDUuOSA4LjggOC43bC4xIC4xYzUuMiA1LjYgOS45IDEwLjYgMTkuNyAxNS4zYzEwLjcgMy43IDE2LjYgNC43IDIyLjcgNS44Yy4zIDAgLjYgLjEgLjkgLjFjNS40IC44IDExLjIgMS44IDIwLjggNC41Yy0xLjEtLjEtMi4yLS4xLTMuMy0uMWgwYy0yLjMtLjEtNC43LS4xLTctLjFsMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwYy0xNC40LS4yLTI5LjItLjQtNDIuNy01LjJDMTA3LjggNDgwLjUgMTkuNSAzNjcuMiAyNiAyNTAuNmMtLjYtOS45LS4zLTIwLjkgMC0zMC43Yy40LTEzLjUgLjctMjQuOC0xLjYtMjguM2wxLTMuMWM1LjMtMTcuNCAxMS43LTM4LjIgMjMuOC02Mi44bC0uMS0uMnYtLjFjLjQgLjQgMy40IDMuNCA4LjgtNS44Yy44LTEuOCAxLjYtMy43IDIuNC01LjZjLjUtMS4xIC45LTIuMiAxLjQtMy4yYzIuNS02LjEgNS4xLTEyLjMgOC40LTE3LjlsMi42LS42YzEuNy0xMC4xIDE3LTIzLjggMjkuOC0zNS4ybDEuMS0xYzUuNy01LjEgMTAuNy05LjcgMTMuNi0xMy4xbC43IDQuNGMxNy0xNS45IDQ0LjYtMjcuNSA2NS42LTM2LjRsLjUtLjJjNC44LTIgOS4zLTMuOSAxMy4zLTUuN2MtMy40IDMuOCAyLjIgMi43IDEwIDFjNC44LTEgMTAuNC0yLjEgMTUuMy0yLjRsLTMuOSAyLjFjLTIuNyAxLjQtNS40IDIuOC04IDQuNmM4LjEtMiAxMS43LTEuNCAxNS43LS44bC4zIDBjMy41IC42IDcuMyAxLjIgMTQuNiAuMmMtNS42IC44LTEyLjMgMy0xMS4yIDMuOGM3LjkgLjkgMTIuOC0uMSAxNy4yLTFsLjIgMGM1LjUtMS4xIDEwLjMtMiAxOS4zIC45bC0xLTQuOGM3LjMgMi42IDEyLjcgNC4zIDE3LjUgNS44bC41IC4xYzEwIDMgMTcuNiA1LjMgMzQuMiAxNC4xYzMuMiAuMiA1LjMtLjUgNy40LTEuMmwuMSAwYzMuNi0xLjEgNy0yLjEgMTUuMiAxLjJjLjMgLjUgLjUgMSAuNyAxLjRjLjEgLjIgLjIgLjUgLjMgLjdsMCAuMWMxIDIuNiAxLjggNC42IDE0LjYgMTIuMWMxLjctLjctMi43LTQuNy02LjQtOC4yYzAgMCAwIDAtLjEtLjFjLS4yLS4xLS4zLS4zLS41LS40YzMyLjIgMTcuMyA2Ny4zIDU0LjEgNzggOTMuNWMtNi0xMS4xLTUuMi01LjUtNC4zIC41Yy42IDQgMS4yIDguMS0uMiA3LjVjNC41IDEyLjEgOC4xIDI0LjUgMTAuNCAzNy40bC0uOC0yLjktLjEtLjNjLTMuMy0xMS45LTkuNi0zNC4zLTE5LjktNDkuM2MtLjQgNC4zLTIuOCAzLjktNS4yIDMuNWwtLjEgMCAwIDBjLTMuMy0uNi02LjItMS4xLTEuOSAxMi42YzIuNiAzLjggMy4xIDIuNCAzLjUgMS4xbDAgMGMuNS0xLjUgLjktMi43IDQuNyA1LjJjLjEgNC4xIDEgOC4yIDIuMSAxMi43bDAgMCAwIDAgLjEgLjZjLjEgLjMgLjEgLjUgLjIgLjhsLjEgLjZjLjYgMi42IDEuMyA1LjQgMS44IDguNGMtMS4xLS4yLTIuMy0yLjItMy40LTQuMmMtMS40LTIuNC0yLjgtNC43LTMuNy0zLjJjMi40IDExLjUgNi41IDE3LjQgOCAxOC4zYy0uMyAuNi0uNiAuNy0xLjEgLjdjLS44IDAtMS44IC4xLTEuOSA1LjNjLjcgMTMuNyAzLjMgMTIuNSA1LjMgMTEuNmwwIDBjLjYtLjMgMS4yLS42IDEuNy0uNGMtLjYgMi41LTEuNiA1LjEtMi43IDcuOWMtMi44IDcuMS02IDE1LjQtMy40IDI2LjFjLS44LTMtMi02LTMuMS04LjlsLS4xLS40Yy0uMi0uNS0uNC0xLS42LTEuNWwwIDBjLS4zLS44LS42LTEuNi0uOS0yLjNjLS42IDQuNC0uMyA3LjctLjEgMTAuNmMwIC4yIDAgLjUgMCAuN2MuNCA1LjMgLjcgMTAtMyAxOS45YzQuMy0xNC4yIDMuOC0yNi45LS4yLTIwLjhjMSAxMC45LTMuNyAyMC40LTggMjguOWwtLjEgLjJjLTMuNiA3LjEtNi44IDEzLjUtNS45IDE5LjNsLTUuMi03LjFjLTcuNSAxMC45LTcgMTMuMy02LjUgMTUuNWwwIC4xYy41IDEuOSAxIDMuOC0zLjQgMTAuOGMxLjctMi45IDEuMy0zLjYgMS00LjJsMCAwYy0uNC0uOC0uNy0xLjUgMS43LTUuMWMtMS42IC4xLTUuNSAzLjktMTAuMSA4LjVjLTMuOSAzLjktOC41IDguNC0xMi44IDExLjhjLTM3LjUgMzAuMS04Mi4zIDM0LTEyNS42IDE3LjhjLjItMS0uMi0yLjEtMy4xLTQuMWMtMzYuOC0yOC4yLTU4LjUtNTIuMS01MC45LTEwNy41YzIuMS0xLjYgMy42LTUuOCA1LjMtMTAuOGwwIDAgMCAwIC4yLS40IC4xLS4zIDAtLjFjMi45LTguNCA2LjUtMTguOCAxNC4zLTIzLjhjNy44LTE3LjMgMzEuMy0zMy4zIDU2LjQtMzMuN2MyNS42LTEuNCA0Ny4yIDEzLjcgNTguMSAyNy45Yy0xOS44LTE4LjQtNTIuMS0yNC03OS43LTEwLjRjLTI4LjIgMTIuNy00NSA0My44LTQyLjUgNzQuN2MuMy0uNCAuNi0uNiAuOS0uOGwwIDBzMCAwIDAgMGMwIDAgLjEtLjEgLjEtLjFsLjEtLjFjLjYtLjUgMS4xLS45IDEuNC0zLjNjLS45IDYwLjIgNjQuOCAxMDQuMyAxMTIuMSA4MmwuNiAxLjNjMTIuNy0zLjUgMTUuOS02LjUgMjAuMy0xMC43bC4xLS4xIDAgMGMyLjItMi4xIDQuNy00LjUgOC45LTcuM2MtLjMgLjctMS4zIDEuNy0yLjQgMi43Yy0yLjIgMi4xLTQuNiA0LjUtMS42IDQuNmM1LTEuMyAxOC41LTEzLjQgMjguNS0yMi4zbDAgMCAwIDBjLjYtLjUgMS4yLTEgMS43LTEuNWMxLjUtMS4zIDIuOC0yLjUgNC0zLjZsMCAwIC4zLS4zYzEuOS00LjIgMS42LTUuNiAxLjMtN2wwLS4xYy0uNC0xLjYtLjgtMy4zIDIuNC05LjZsNy4zLTMuN2MuOC0yLjEgMS41LTQuMSAyLjItNmMuMi0uNiAuNS0xLjIgLjctMS44bC0uNC0uMnpNMzQ5LjMgMzQuM2wtLjItLjEgLjIgLjEgMCAwek0yNDcuOCAzMzQuMWMtNi0zLTEzLjctOC45LTE0LjgtMTEuNGwtLjQgLjNjLS4zIC42LS41IDEuMy0uMiAyLjJjLTEyLjItNS43LTIzLjQtMTQuMy0zMi42LTI0LjljNC45IDcuMSAxMC4xIDE0LjEgMTcgMTkuNWMtNi45LTIuMy0xNS4xLTExLjgtMjEuNi0xOS4zbC0uMS0uMWMtNC4zLTUtNy45LTkuMS05LjctOS41YzE5LjggMzUuNSA4MC41IDYyLjMgMTEyLjMgNDljLTE0LjcgLjUtMzMuNCAuMy00OS45LTUuOHptNzkuMy0xMTkuN2wtLjEtLjJjLS41LTEuNS0xLjEtMy4xLTEuNy0zLjRjMS40LTUuOCA1LjQtMTAuNyA0LjQgNC42Yy0xIDMuOC0xLjggMS41LTIuNi0xem0tNC4yIDIyLjJjLTEuMyA3LjktNSAxNS41LTEwLjEgMjIuNWMuMi0yLTEuMi0yLjQtMi42LTIuOGwwIDBjLTIuOS0uOC01LjktMS42IDUuNi0xNi4xYy0uNSAxLjktMi4xIDQuNi0zLjcgNy4zbDAgMCAwIDAtLjMgLjRjLTMuNiA1LjktNi43IDExIDQgNC4zbDEtMS44YzIuNi00LjUgNS04LjggNi0xMy44aC4xem0tNTUuNiAzMy45YzcuMSAuNiAxNC4xIC42IDIxLTEuMWMtMi41IDIuNC01LjIgNC44LTguMyA3LjJjLTExLjEtMS43LTIxLjItNi0xMi43LTYuMXptLTkyLjYgMTEuNmMzLjYgNy4xIDYuNCAxMS41IDkgMTUuN2wuMSAuMmMyLjMgMy43IDQuNCA3LjEgNi44IDExLjdjLTUuMS00LjItOC43LTkuNS0xMi41LTE1bC0uMy0uNWMtMS40LTIuMS0yLjgtNC4yLTQuNC02LjJsMS4yLTUuOWguMXptNy41LTkuNmMxLjYgMy4zIDMuMiA2LjQgNS43IDkuMWwyLjYgNy43LTEuMy0yLjFjLTMuMi01LjMtNi4zLTEwLjYtOC0xNi43bC44IDEuNiAuMiAuNHptMjM4LjktNDEuNmMtMi4zIDE3LjQtNy43IDM0LjYtMTYgNTAuM2M3LjYtMTQuOSAxMi41LTMwLjkgMTQuOC00Ny4ybDEuMi0zLjF6TTM1LjYgMTEwLjZjLjQgLjggMS40IC41IDIuMyAuM2MxLjktLjUgMy42LS45LS4xIDcuNmMtLjUgLjMtMSAuNy0xLjUgMWwwIDAgMCAwYy0xLjQgLjktMi44IDEuOS0zLjkgM2MxLjktMy44IDMuNS03LjQgMy4yLTExLjl6TTI1LjMgMTUyLjNjLS43IDMuNy0xLjUgNy45LTMuNCAxMy45Yy4yLTEuOSAwLTMuNS0uMi00LjlsMC0uMWMtLjQtMy40LS43LTYuMyA0LjMtMTIuOGMtLjMgMS4yLS41IDIuNS0uNyAzLjh2LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlZXplciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTEuNDYsMjQ0LjcxSDU3NlYxNzJINDUxLjQ2Wm0wLTE3My44OXY3Mi42N0g1NzZWNzAuODJabTAsMjc1LjA2SDU3NlYyNzMuMkg0NTEuNDZaTTAsNDQ3LjA5SDEyNC41NFYzNzQuNDJIMFptMTUwLjQ3LDBIMjc1VjM3NC40MkgxNTAuNDdabTE1MC41MiwwSDQyNS41M1YzNzQuNDJIMzAxWm0xNTAuNDcsMEg1NzZWMzc0LjQySDQ1MS40NlpNMzAxLDM0NS44OEg0MjUuNTNWMjczLjJIMzAxWm0tMTUwLjUyLDBIMjc1VjI3My4ySDE1MC40N1ptMC0xMDEuMTdIMjc1VjE3MkgxNTAuNDdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlbGljaW91cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDYuNSA2OGMtLjQtMS41LS45LTMtMS40LTQuNS0uOS0yLjUtMi00LjgtMy4zLTcuMS0xLjQtMi40LTMtNC44LTQuNy02LjktMi4xLTIuNS00LjQtNC44LTYuOS02LjgtMS4xLS45LTIuMi0xLjctMy4zLTIuNS0xLjMtLjktMi42LTEuNy00LTIuNC0xLjgtMS0zLjYtMS44LTUuNS0yLjUtMS43LS43LTMuNS0xLjMtNS40LTEuNy0zLjgtMS03LjktMS41LTEyLTEuNUg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDQuMS41IDguMiAxLjUgMTIgMiA3LjcgNS44IDE0LjYgMTEgMjAuMyAxIDEuMSAyLjEgMi4yIDMuMyAzLjMgNS43IDUuMiAxMi42IDkgMjAuMyAxMSAzLjggMSA3LjkgMS41IDEyIDEuNWgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjLS4xLTQuMS0uNi04LjItMS42LTEyek00MTYgNDMyYzAgOC44LTcuMiAxNi0xNiAxNkgyMjRWMjU2SDMyVjgwYzAtOC44IDcuMi0xNiAxNi0xNmgxNzZ2MTkyaDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVwbG95ZG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Mi4yIDEzNmg1MS43djIzOS42aC01MS43di0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45VjEzNnptLTY0LjcgMTYxLjhjMCAxOC4yIDEzLjYgMzMuNSAzMy4yIDMzLjUgMTkuOCAwIDMzLjItMTYuNCAzMy4yLTMyLjkgMC0xNy4xLTEzLjctMzMuMi0zMy4yLTMzLjItMTkuNiAwLTMzLjIgMTYuNC0zMy4yIDMyLjZ6TTE4OC41IDEzNmg1MS43djIzOS42aC01MS43di0yMC43Yy0xOS44IDI0LjgtNTIuOCAyNC4xLTczLjggMTQuNy0yNi4yLTExLjctNDQuMy0zOC4xLTQ0LjMtNzEuOCAwLTI5LjggMTQuOC01Ny45IDQzLjMtNzAuOCAyMC4yLTkuMSA1Mi43LTEwLjYgNzQuOCAxMi45VjEzNnptLTY0LjcgMTYxLjhjMCAxOC4yIDEzLjYgMzMuNSAzMy4yIDMzLjUgMTkuOCAwIDMzLjItMTYuNCAzMy4yLTMyLjkgMC0xNy4xLTEzLjctMzMuMi0zMy4yLTMzLjItMTkuNyAwLTMzLjIgMTYuNC0zMy4yIDMyLjZ6TTQ0OCA5NmMxNy41IDAgMzIgMTQuNCAzMiAzMnYyNTZjMCAxNy41LTE0LjQgMzItMzIgMzJINjRjLTE3LjUgMC0zMi0xNC40LTMyLTMyVjEyOGMwLTE3LjUgMTQuNC0zMiAzMi0zMmgzODRtMC0zMkg2NEMyOC44IDY0IDAgOTIuOCAwIDEyOHYyNTZjMCAzNS4yIDI4LjggNjQgNjQgNjRoMzg0YzM1LjIgMCA2NC0yOC44IDY0LTY0VjEyOGMwLTM1LjItMjguOC02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVza3BybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUuOSA1MTJsMzEuMS0zOC40YzEyLjMtLjIgMjUuNi0xLjQgMzYuNS02LjYgMzguOS0xOC42IDM4LjQtNjEuOSAzOC4zLTYzLjgtLjEtNS0uOC00LjQtMjguOS0zNy40SDM2MmMtLjIgNTAuMS03LjMgNjguNS0xMC4yIDc1LjctOS40IDIzLjctNDMuOSA2Mi44LTk1LjIgNjkuNC04LjcgMS4xLTMyLjggMS4yLTUwLjcgMS4xem0yMDAuNC0xNjcuN2MzOC42IDAgNTguNS0xMy42IDczLjctMzAuOWwtMTc1LjUtLjMtMTcuNCAzMS4zIDExOS4yLS4xem0tNDMuNi0yMjMuOXYxNjguM2gtNzMuNWwtMzIuNyA1NS41SDI1MGMtNTIuMyAwLTU4LjEtNTYuNS01OC4zLTU4LjktMS4yLTEzLjItMjEuMy0xMS42LTIwLjEgMS44IDEuNCAxNS44IDguOCA0MCAyNi40IDU3LjFoLTkxYy0yNS41IDAtMTEwLjgtMjYuOC0xMDctMTE0VjE2LjlDMCAuOSA5LjcuMyAxNSAuMWg4MmMuMiAwIC4zLjEuNS4xIDQuMy0uNCA1MC4xLTIuMSA1MC4xIDQzLjcgMCAxMy4zIDIwLjIgMTMuNCAyMC4yIDAgMC0xOC4yLTUuNS0zMi44LTE1LjgtNDMuN2g4NC4yYzEwOC43LS40IDEyNi41IDc5LjQgMTI2LjUgMTIwLjJ6bS0xMzIuNSA1Nmw2NCAyOS4zYzEzLjMtNDUuNS00Mi4yLTcxLjctNjQtMjkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGV2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMC4xMiAyMDguMjljLTMuODgtMi45LTcuNzctNC4zNS0xMS42NS00LjM1SDkxLjAzdjEwNC40N2gxNy40NWMzLjg4IDAgNy43Ny0xLjQ1IDExLjY1LTQuMzUgMy44OC0yLjkgNS44Mi03LjI1IDUuODItMTMuMDZ2LTY5LjY1Yy0uMDEtNS44LTEuOTYtMTAuMTYtNS44My0xMy4wNnpNNDA0LjEgMzJINDMuOUMxOS43IDMyIC4wNiA1MS41OSAwIDc1Ljh2MzYwLjRDLjA2IDQ2MC40MSAxOS43IDQ4MCA0My45IDQ4MGgzNjAuMmMyNC4yMSAwIDQzLjg0LTE5LjU5IDQzLjktNDMuOFY3NS44Yy0uMDYtMjQuMjEtMTkuNy00My44LTQzLjktNDMuOHpNMTU0LjIgMjkxLjE5YzAgMTguODEtMTEuNjEgNDcuMzEtNDguMzYgNDcuMjVoLTQ2LjRWMTcyLjk4aDQ3LjM4YzM1LjQ0IDAgNDcuMzYgMjguNDYgNDcuMzcgNDcuMjhsLjAxIDcwLjkzem0xMDAuNjgtODguNjZIMjAxLjZ2MzguNDJoMzIuNTd2MjkuNTdIMjAxLjZ2MzguNDFoNTMuMjl2MjkuNTdoLTYyLjE4Yy0xMS4xNi4yOS0yMC40NC04LjUzLTIwLjcyLTE5LjY5VjE5My43Yy0uMjctMTEuMTUgOC41Ni0yMC40MSAxOS43MS0yMC42OWg2My4xOWwtLjAxIDI5LjUyem0xMDMuNjQgMTE1LjI5Yy0xMy4yIDMwLjc1LTM2Ljg1IDI0LjYzLTQ3LjQ0IDBsLTM4LjUzLTE0NC44aDMyLjU3bDI5LjcxIDExMy43MiAyOS41Ny0xMTMuNzJoMzIuNThsLTM4LjQ2IDE0NC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXZpYW50YXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5My4ybC05OC4yIDE3OS4xIDcuNCA5LjVIMzIwdjEyNy43SDE1OS4xbC0xMy41IDkuMi00My43IDg0Yy0uMyAwLTguNiA4LjYtOS4yIDkuMkgwdi05My4ybDkzLjItMTc5LjQtNy40LTkuMkgwVjEwMi41aDE1NmwxMy41LTkuMiA0My43LTg0Yy4zIDAgOC42LTguNiA5LjItOS4ySDMyMHY5My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM4IDMwMS4yaDU4LjdMMzE5IDI3MWgtNTguN0wyMzggMzAxLjJ6TTAgMjgyLjl2Ni40aDgxLjhsNC43LTYuNEgwek0xNzIuOSAyNzFjLTguNyAwLTYtMy42LTQuNi01LjUgMi44LTMuOCA3LjYtMTAuNCAxMC40LTE0LjEgMi44LTMuNyAyLjgtNS45LTIuOC01LjloLTUxbC00MS4xIDU1LjhoMTAwLjFjMzMuMSAwIDUxLjUtMjIuNSA1Ny4yLTMwLjNoLTY4LjJ6bTMxNy41LTYuOWwzOS4zLTUzLjRoLTYyLjJsLTM5LjMgNTMuNGg2Mi4yek05NS4zIDI3MUgwdjYuNGg5MC42bDQuNy02LjR6bTExMS0yNi42Yy0yLjggMy44LTcuNSAxMC40LTEwLjMgMTQuMi0xLjQgMi00LjEgNS41IDQuNiA1LjVoNDUuNnM3LjMtMTAgMTMuNS0xOC40YzguNC0xMS40LjctMzUtMjkuMi0zNUgxMTIuNmwtMjAuNCAyNy44aDExMS40YzUuNiAwIDUuNSAyLjIgMi43IDUuOXpNMCAzMDEuMmg3My4xbDQuNy02LjRIMHY2LjR6bTMyMyAwaDU4LjdMNDA0IDI3MWgtNTguN2MtLjEgMC0yMi4zIDMwLjItMjIuMyAzMC4yem0yMjIgLjFoOTV2LTYuNGgtOTAuM2wtNC43IDYuNHptMjIuMy0zMC4zbC00LjcgNi40SDY0MFYyNzFoLTcyLjd6bS0xMy41IDE4LjNINjQwdi02LjRoLTgxLjVsLTQuNyA2LjR6bS0xNjQuMi03OC42bC0yMi41IDMwLjZoLTI2LjJsMjIuNS0zMC42aC01OC43bC0zOS4zIDUzLjRINDA5bDM5LjMtNTMuNGgtNTguN3ptMzMuNSA2MC4zcy00LjMgNS45LTYuNCA4LjdjLTcuNCAxMC0uOSAyMS42IDIzLjIgMjEuNmg5NC4zbDIyLjMtMzAuM0g0MjMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhc3BvcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUxLjY0IDM1NC41NWMtMS40IDAtODggMTE5LjktODguNyAxMTkuOVM3Ni4zNCA0MTQgNzYgNDEzLjI1czg2LjYtMTI1LjcgODYuNi0xMjcuNGMwLTIuMi0xMjkuNi00NC0xMzcuNi00Ny4xLTEuMy0uNSAzMS40LTEwMS44IDMxLjctMTAyLjEuNi0uNyAxNDQuNCA0NyAxNDUuNSA0NyAuNCAwIC45LS42IDEtMS4zLjQtMiAxLTE0OC42IDEuNy0xNDkuNi44LTEuMiAxMDQuNS0uNyAxMDUuMS0uMyAxLjUgMSAzLjUgMTU2LjEgNi4xIDE1Ni4xIDEuNCAwIDEzOC43LTQ3IDEzOS4zLTQ2LjMuOC45IDMxLjkgMTAyLjIgMzEuNSAxMDIuNi0uOS45LTE0MC4yIDQ3LjEtMTQwLjYgNDguOC0uMyAxLjQgODIuOCAxMjIuMSA4Mi41IDEyMi45cy04NS41IDYzLjUtODYuMyA2My41Yy0xLS4yLTg5LTEyNS41LTkwLjktMTI1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpZ2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODEuNyAxNzIuM0gwdjE3NC40aDEzMi43Vjk2aC01MXY3Ni4zem0wIDEzMy40SDUwLjl2LTkyLjNoMzAuOHY5Mi4zem0yOTcuMi0xMzMuNHYxNzQuNGg4MS44djI4LjVoLTgxLjhWNDE2SDUxMlYxNzIuM0gzNzguOXptODEuOCAxMzMuNGgtMzAuOHYtOTIuM2gzMC44djkyLjN6bS0yMzUuNiA0MWg4Mi4xdjI4LjVoLTgyLjFWNDE2aDEzMy4zVjE3Mi4zSDIyNS4xdjE3NC40em01MS4yLTEzMy4zaDMwLjh2OTIuM2gtMzAuOHYtOTIuM3pNMTUzLjMgOTZoNTEuM3Y1MWgtNTEuM1Y5NnptMCA3Ni4zaDUxLjN2MTc0LjRoLTUxLjNWMTcyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpZ2l0YWxPY2VhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04NyA0ODEuOGg3My43di03My42SDg3ek0yNS40IDM0Ni42djYxLjZIODd2LTYxLjZ6bTQ2Ni4yLTE2OS43Yy0yMy03NC4yLTgyLjQtMTMzLjMtMTU2LjYtMTU2LjZDMTY0LjktMzIuOCA4IDkzLjcgOCAyNTUuOWg5NS44YzAtMTAxLjggMTAxLTE4MC41IDIwOC4xLTE0MS43IDM5LjcgMTQuMyA3MS41IDQ2LjEgODUuOCA4NS43IDM5LjEgMTA3LTM5LjcgMjA3LjgtMTQxLjQgMjA4di4zaC0uM1Y1MDRjMTYyLjYgMCAyODguOC0xNTYuOCAyMzUuNi0zMjcuMXptLTIzNS4zIDIzMXYtOTUuM2gtOTUuNnY5NS42SDI1NnYtLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpc2NvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI0LjUzMSw2OS44MzZhMS41LDEuNSwwLDAsMC0uNzY0LS43QTQ4NS4wNjUsNDg1LjA2NSwwLDAsMCw0MDQuMDgxLDMyLjAzYTEuODE2LDEuODE2LDAsMCwwLTEuOTIzLjkxLDMzNy40NjEsMzM3LjQ2MSwwLDAsMC0xNC45LDMwLjYsNDQ3Ljg0OCw0NDcuODQ4LDAsMCwwLTEzNC40MjYsMCwzMDkuNTQxLDMwOS41NDEsMCwwLDAtMTUuMTM1LTMwLjYsMS44OSwxLjg5LDAsMCwwLTEuOTI0LS45MUE0ODMuNjg5LDQ4My42ODksMCwwLDAsMTE2LjA4NSw2OS4xMzdhMS43MTIsMS43MTIsMCwwLDAtLjc4OC42NzZDMzkuMDY4LDE4My42NTEsMTguMTg2LDI5NC42OSwyOC40Myw0MDQuMzU0YTIuMDE2LDIuMDE2LDAsMCwwLC43NjUsMS4zNzVBNDg3LjY2Niw0ODcuNjY2LDAsMCwwLDE3Ni4wMiw0NzkuOTE4YTEuOSwxLjksMCwwLDAsMi4wNjMtLjY3NkEzNDguMiwzNDguMiwwLDAsMCwyMDguMTIsNDMwLjRhMS44NiwxLjg2LDAsMCwwLTEuMDE5LTIuNTg4LDMyMS4xNzMsMzIxLjE3MywwLDAsMS00NS44NjgtMjEuODUzLDEuODg1LDEuODg1LDAsMCwxLS4xODUtMy4xMjZjMy4wODItMi4zMDksNi4xNjYtNC43MTEsOS4xMDktNy4xMzdhMS44MTksMS44MTksMCwwLDEsMS45LS4yNTZjOTYuMjI5LDQzLjkxNywyMDAuNDEsNDMuOTE3LDI5NS41LDBhMS44MTIsMS44MTIsMCwwLDEsMS45MjQuMjMzYzIuOTQ0LDIuNDI2LDYuMDI3LDQuODUxLDkuMTMyLDcuMTZhMS44ODQsMS44ODQsMCwwLDEtLjE2MiwzLjEyNiwzMDEuNDA3LDMwMS40MDcsMCwwLDEtNDUuODksMjEuODMsMS44NzUsMS44NzUsMCwwLDAtMSwyLjYxMSwzOTEuMDU1LDM5MS4wNTUsMCwwLDAsMzAuMDE0LDQ4LjgxNSwxLjg2NCwxLjg2NCwwLDAsMCwyLjA2My43QTQ4Ni4wNDgsNDg2LjA0OCwwLDAsMCw2MTAuNyw0MDUuNzI5YTEuODgyLDEuODgyLDAsMCwwLC43NjUtMS4zNTJDNjIzLjcyOSwyNzcuNTk0LDU5MC45MzMsMTY3LjQ2NSw1MjQuNTMxLDY5LjgzNlpNMjIyLjQ5MSwzMzcuNThjLTI4Ljk3MiwwLTUyLjg0NC0yNi41ODctNTIuODQ0LTU5LjIzOVMxOTMuMDU2LDIxOS4xLDIyMi40OTEsMjE5LjFjMjkuNjY1LDAsNTMuMzA2LDI2LjgyLDUyLjg0Myw1OS4yMzlDMjc1LjMzNCwzMTAuOTkzLDI1MS45MjQsMzM3LjU4LDIyMi40OTEsMzM3LjU4Wm0xOTUuMzgsMGMtMjguOTcxLDAtNTIuODQzLTI2LjU4Ny01Mi44NDMtNTkuMjM5UzM4OC40MzcsMjE5LjEsNDE3Ljg3MSwyMTkuMWMyOS42NjcsMCw1My4zMDcsMjYuODIsNTIuODQ0LDU5LjIzOUM0NzAuNzE1LDMxMC45OTMsNDQ3LjUzOCwzMzcuNTgsNDE3Ljg3MSwzMzcuNThaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpc2NvdXJzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuOSAzMkMxMDMuMyAzMiAwIDEzMC41IDAgMjUyLjEgMCAyNTYgLjEgNDgwIC4xIDQ4MGwyMjUuOC0uMmMxMjIuNyAwIDIyMi4xLTEwMi4zIDIyMi4xLTIyMy45QzQ0OCAxMzQuMyAzNDguNiAzMiAyMjUuOSAzMnpNMjI0IDM4NGMtMTkuNCAwLTM3LjktNC4zLTU0LjQtMTIuMUw4OC41IDM5MmwyMi45LTc1Yy05LjgtMTguMS0xNS40LTM4LjktMTUuNC02MSAwLTcwLjcgNTcuMy0xMjggMTI4LTEyOHMxMjggNTcuMyAxMjggMTI4LTU3LjMgMTI4LTEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvY2h1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTcuOSAxNjBIMjU2VjE5LjZMMzk3LjkgMTYwek0zMDQgMTkydjEzMGMwIDY2LjgtMzYuNSAxMDAuMS0xMTMuMyAxMDAuMUg5NlY4NC44aDk0LjdjMTIgMCAyMy4xLjggMzMuMSAyLjV2LTg0QzIxMi45IDEuMSAyMDEuNCAwIDE4OS4yIDBIMHY1MTJoMTg5LjJDMzI5LjcgNTEyIDQwMCA0NDcuNCA0MDAgMzE4LjFWMTkyaC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9ja2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0OS45IDIzNi4zaC02Ni4xdi01OS40aDY2LjF2NTkuNHptMC0yMDQuM2gtNjYuMXY2MC43aDY2LjFWMzJ6bTc4LjIgMTQ0LjhIMzYydjU5LjRoNjYuMXYtNTkuNHptLTE1Ni4zLTcyLjFoLTY2LjF2NjAuMWg2Ni4xdi02MC4xem03OC4xIDBoLTY2LjF2NjAuMWg2Ni4xdi02MC4xem0yNzYuOCAxMDBjLTE0LjQtOS43LTQ3LjYtMTMuMi03My4xLTguNC0zLjMtMjQtMTYuNy00NC45LTQxLjEtNjMuN2wtMTQtOS4zLTkuMyAxNGMtMTguNCAyNy44LTIzLjQgNzMuNi0zLjcgMTAzLjgtOC43IDQuNy0yNS44IDExLjEtNDguNCAxMC43SDIuNGMtOC43IDUwLjggNS44IDExNi44IDQ0IDE2Mi4xIDM3LjEgNDMuOSA5Mi43IDY2LjIgMTY1LjQgNjYuMiAxNTcuNCAwIDI3My45LTcyLjUgMzI4LjQtMjA0LjIgMjEuNC40IDY3LjYuMSA5MS4zLTQ1LjIgMS41LTIuNSA2LjYtMTMuMiA4LjUtMTcuMWwtMTMuMy04Ljl6bS01MTEuMS0yNy45aC02NnY1OS40aDY2LjF2LTU5LjR6bTc4LjEgMGgtNjYuMXY1OS40aDY2LjF2LTU5LjR6bTc4LjEgMGgtNjYuMXY1OS40aDY2LjF2LTU5LjR6bS03OC4xLTcyLjFoLTY2LjF2NjAuMWg2Ni4xdi02MC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmFmdDJEaWdpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzOTguMWwtMTQ0LTgyLjJ2NjQuN2gtOTEuM2MzMC44LTM1IDgxLjgtOTUuOSAxMTEuOC0xNDkuMyAzNS4yLTYyLjYgMTYuMS0xMjMuNC0xMi44LTE1My4zLTQuNC00LjYtNjIuMi02Mi45LTE2Ni00MS4yLTU5LjEgMTIuNC04OS40IDQzLjQtMTA0LjMgNjcuMy0xMy4xIDIwLjktMTcgMzkuOC0xOC4yIDQ3LjctNS41IDMzIDE5LjQgNjcuMSA1Ni43IDY3LjEgMzEuNyAwIDU3LjMtMjUuNyA1Ny4zLTU3LjQgMC0yNy4xLTE5LjctNTIuMS00OC01Ni44IDEuOC03LjMgMTcuNy0yMS4xIDI2LjMtMjQuNyA0MS4xLTE3LjMgNzggNS4yIDgzLjMgMzMuNSA4LjMgNDQuMy0zNy4xIDkwLjQtNjkuNyAxMjcuNkM4NC41IDMyOC4xIDE4LjMgMzk2LjggMCA0MTUuOWwzMzYtLjFWNDgwek0zNjkuOSAzNzFsNDcuMSAyNy4yLTQ3LjEgMjcuMnpNMTM0LjIgMTYxLjRjMCAxMi40LTEwIDIyLjQtMjIuNCAyMi40cy0yMi40LTEwLTIyLjQtMjIuNCAxMC0yMi40IDIyLjQtMjIuNCAyMi40IDEwLjEgMjIuNCAyMi40ek04Mi41IDM4MC41YzI1LjYtMjcuNCA5Ny43LTEwNC43IDE1MC44LTE2OS45IDM1LjEtNDMuMSA0MC4zLTgyLjQgMjguNC0xMTIuNy03LjQtMTguOC0xNy41LTMwLjItMjQuMy0zNS43IDQ1LjMgMi4xIDY4IDIzLjQgODIuMiAzOC4zIDAgMCA0Mi40IDQ4LjIgNS44IDExMy4zLTM3IDY1LjktMTEwLjkgMTQ3LjUtMTI4LjUgMTY2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyaWJiYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4yNTIgOCA4IDExOS4yNTIgOCAyNTZzMTExLjI1MiAyNDggMjQ4IDI0OCAyNDgtMTExLjI1MiAyNDgtMjQ4UzM5Mi43NDggOCAyNTYgOHptMTYzLjk3IDExNC4zNjZjMjkuNTAzIDM2LjA0NiA0Ny4zNjkgODEuOTU3IDQ3LjgzNSAxMzEuOTU1LTYuOTg0LTEuNDc3LTc3LjAxOC0xNS42ODItMTQ3LjUwMi02LjgxOC01Ljc1Mi0xNC4wNDEtMTEuMTgxLTI2LjM5My0xOC42MTctNDEuNjE0IDc4LjMyMS0zMS45NzcgMTEzLjgxOC03Ny40ODIgMTE4LjI4NC04My41MjN6TTM5Ni40MjEgOTcuODdjLTMuODEgNS40MjctMzUuNjk3IDQ4LjI4Ni0xMTEuMDIxIDc2LjUxOS0zNC43MTItNjMuNzc2LTczLjE4NS0xMTYuMTY4LTc5LjA0LTEyNC4wMDggNjcuMTc2LTE2LjE5MyAxMzcuOTY2IDEuMjcgMTkwLjA2MSA0Ny40ODl6bS0yMzAuNDgtMzMuMjVjNS41ODUgNy42NTkgNDMuNDM4IDYwLjExNiA3OC41MzcgMTIyLjUwOS05OS4wODcgMjYuMzEzLTE4Ni4zNiAyNS45MzQtMTk1LjgzNCAyNS44MDlDNjIuMzggMTQ3LjIwNSAxMDYuNjc4IDkyLjU3MyAxNjUuOTQxIDY0LjYyek00NC4xNyAyNTYuMzIzYzAtMi4xNjYuMDQzLTQuMzIyLjEwOC02LjQ3MyA5LjI2OC4xOSAxMTEuOTIgMS41MTMgMjE3LjcwNi0zMC4xNDYgNi4wNjQgMTEuODY4IDExLjg1NyAyMy45MTUgMTcuMTc0IDM1Ljk0OS03Ni41OTkgMjEuNTc1LTE0Ni4xOTQgODMuNTI3LTE4MC41MzEgMTQyLjMwNkM2NC43OTQgMzYwLjQwNSA0NC4xNyAzMTAuNzMgNDQuMTcgMjU2LjMyM3ptODEuODA3IDE2Ny4xMTNjMjIuMTI3LTQ1LjIzMyA4Mi4xNzgtMTAzLjYyMiAxNjcuNTc5LTEzMi43NTYgMjkuNzQgNzcuMjgzIDQyLjAzOSAxNDIuMDUzIDQ1LjE4OSAxNjAuNjM4LTY4LjExMiAyOS4wMTMtMTUwLjAxNSAyMS4wNTMtMjEyLjc2OC0yNy44ODJ6bTI0OC4zOCA4LjQ4OWMtMi4xNzEtMTIuODg2LTEzLjQ0Ni03NC44OTctNDEuMTUyLTE1MS4wMzMgNjYuMzgtMTAuNjI2IDEyNC43IDYuNzY4IDEzMS45NDcgOS4wNTUtOS40NDIgNTguOTQxLTQzLjI3MyAxMDkuODQ0LTkwLjc5NSAxNDEuOTc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcm9wYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MjggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2NC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuM0wwIDI4NC4xbDEzMi4zLTg0LjNMMCAxMTYuMyAxMzIuMyAzMmwxMzIuMSA4NC4zek0xMzEuNiAzOTUuN2wxMzItODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzItODQuM3ptMTMyLjgtMTExLjZsMTMyLTg0LjMtMTMyLTgzLjZMMzk1LjcgMzIgNTI4IDExNi4zbC0xMzIuMyA4NC4zTDUyOCAyODQuOGwtMTMyLjMgODQuMy0xMzEuMy04NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMy45NzMsMTA4LjEzNkMyNjguMiw3Mi40NTksMjM0LjE4NywzOC4zNSwyMjQuMDQ3LDBjLTkuOTU3LDM4LjM1LTQ0LjI1LDcyLjQ1OS04MC4wMTksMTA4LjEzNkM5MC40NjcsMTYxLjcsMjkuNzE2LDIyMi4zNTYsMjkuNzE2LDMxMy40MzZjLTIuMzM3LDEwNy4zLDgyLjc1MiwxOTYuMTgsMTkwLjA1MywxOTguNTE3UzQxNS45NDgsNDI5LjIsNDE4LjI4NSwzMjEuOXEuMDkxLTQuMjMxLDAtOC40NjRDNDE4LjI4NSwyMjIuMzU2LDM1Ny41MzQsMTYxLjcsMzAzLjk3MywxMDguMTM2Wm0tMTc0LjMyNiwyMjNhMTMwLjI4MiwxMzAuMjgyLDAsMCwwLTE1LjIxMSwyNC4xNTMsNC45NzgsNC45NzgsMCwwLDEtMy4zMTksMi43NjZoLTEuNjU5Yy00LjMzMywwLTkuMjE5LTguNDgxLTkuMjE5LTguNDgxaDBjLTEuMjktMi4wMjgtMi40ODktNC4xNDktMy42ODctNi4zNjFsLS44My0xLjc1MmMtMTEuMjQ3LTI1LjcyLTEuNDc1LTYyLjMxOC0xLjQ3NS02Mi4zMThoMGExNjAuNTg1LDE2MC41ODUsMCwwLDEsMjMuMjMxLTQ5Ljg3M0EyOTAuOCwyOTAuOCwwLDAsMSwxMzguNSwyMDEuNjEzbDkuMjE5LDkuMjE5LDQzLjUxMiw0NC40MzRhNC45NzksNC45NzksMCwwLDEsMCw2LjYzOEwxNDUuNzgsMzEyLjMzaDBabTk2LjYxMiwxMjcuMzExYTY3LjIsNjcuMiwwLDAsMS00OS43ODEtMTExLjkxNWMxNC4yLTE2Ljg3MSwzMS41MjgtMzMuNDY0LDUwLjMzNC01NS4zMTMsMjIuMzA5LDIzLjc4NSwzNi44NzUsNDAuMSw1MS4xNjQsNTcuOTg2YTI4LjQxMywyOC40MTMsMCwwLDEsMi45NSw0LjQyNSw2NS45MDUsNjUuOTA1LDAsMCwxLDExLjk4NCwzNy45ODEsNjYuNjUxLDY2LjY1MSwwLDAsMS02Ni40NjYsNjYuODM2Wk0zNTIuMzcxLDM1MS42aDBhNy43NDMsNy43NDMsMCwwLDEtNi4xNzYsNS4zNDdIMzQ0LjlhMTEuMjQ5LDExLjI0OSwwLDAsMS02LjI2OS01LjA3aDBhMzQ4LjIxLDM0OC4yMSwwLDAsMC0zOS40NTYtNDguOTUyTDI4MS4zODcsMjg0LjQ5LDIyMi4zLDIyMy4xODVhNDk3Ljg4OCw0OTcuODg4LDAsMCwxLTM1LjQtMzYuMzIyLDEyLjAzMywxMi4wMzMsMCwwLDAtLjkyMi0xLjM4MiwzNS40LDM1LjQsMCwwLDEtNC43LTkuMjE5VjE3NC41MWEzMS4zNDYsMzEuMzQ2LDAsMCwxLDkuMjE4LTI3LjY1NmMxMS40MzItMTEuNDMxLDIyLjk1NS0yMi45NTQsMzMuODMzLTM0LjkzOSwxMS45ODQsMTMuMjc1LDI0LjgsMjYsMzcuNDI4LDM4LjYyN2gwYTUzMC45OTEsNTMwLjk5MSwwLDAsMSw2OS42LDc5LjEsMTQ3LjQ5NCwxNDcuNDk0LDAsMCwxLDI3LjAxMSw4My44QTEzNC4xMDksMTM0LjEwOSwwLDAsMSwzNTIuMzcxLDM1MS42WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEeWFsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnYxMTkuMmg2NFY5NmgxMDcuMkMyODQuNiA5NiAzNTIgMTc2LjIgMzUyIDI1NS45IDM1MiAzMzIgMjkzLjQgNDE2IDE3MS4yIDQxNkgwdjY0aDE3MS4yQzMzMS45IDQ4MCA0MTYgMzY3LjMgNDE2IDI1NS45YzAtNTguNy0yMi4xLTExMy40LTYyLjMtMTU0LjNDMzA4LjkgNTYgMjQ1LjcgMzIgMTcxLjIgMzJIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFybHliaXJkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuMiA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43LjkuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzE5LjQgMTYwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZ6bS0xNTkuNyAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZ6bTMxOC41IDE2My4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMi4zLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNy45LTU5LjcgMy4xLTYxLjggMy4xLTIwLjkgMC0yMC45LTMxLjYgMC0zMS42IDIuNCAwIDI3LjcgMS4zIDYzLjIgMi44LTYxLjEtMTUuNS0xMDMuNy01NS0xMTQuOS0xMTguMi0yNSAxMi44LTU3LjUgMjYuOC02OC4yLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xLjMtNy4zIDIuMS0xNC45IDIuNC0xNS40IDEuMS0xLjggMTAuMS0yIDEyLjctMi42IDYtMzEuNyA1MC42LTMzLjIgOTAuOS0zNC41IDE5LjctMjEuOCA0NS4yLTQxLjUgODAuOS00OC4zQzIwMy4zIDI5IDIxNS4yIDguNSAyMTYuMiA4YzEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMS42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNy42IDExLjYuOCAxMi43IDIuNi4zLjUgMi4xIDguMSAyLjQgMTUuNC0uNSAxMy45LTYuOCAyNS40LTIzLjYgMjMuMS0zLjIgMTcuMy0yLjcgMzIuOS04LjcgNDcuNyAyLjQgMTEuNyA0IDIzLjggNC44IDM2LjQgMzcgMjUuNCA3MC4zIDQyLjUgNjAuMyA2Ni45ek0yMDcuNCAxNTkuOWMuOS00NC0zNy45LTQyLjItNzguNi00MC4zLTIxLjcgMS0zOC45IDEuOS00NS41IDEzLjktMTEuNCAyMC45IDUuOSA5Mi45IDIzLjIgMTAxLjIgOS44IDQuNyA3My40IDcuOSA4Ni4zLTcuMSA4LjItOS40IDE1LTQ5LjQgMTQuNi02Ny43em01MiA1OC4zYy00LjMtMTIuNC02LTMwLjEtMTUuMy0zMi43LTItLjUtOS0uNS0xMSAwLTEwIDIuOC0xMC44IDIyLjEtMTcgMzcuMiAxNS40IDAgMTkuMyA5LjcgMjMuNyA5LjcgNC4zIDAgNi4zLTExLjMgMTkuNi0xNC4yem0xMzUuNy04NC43Yy02LjYtMTIuMS0yNC44LTEyLjktNDYuNS0xMy45LTQwLjItMS45LTc4LjItMy44LTc3LjMgNDAuMy0uNSAxOC4zIDUgNTguMyAxMy4yIDY3LjggMTMgMTQuOSA3Ni42IDExLjggODYuMyA3LjEgMTUuOC03LjYgMzYuNS03OC45IDI0LjMtMTAxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUViYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA2IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjloLTM3LjVsMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xaDMzLjdjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzN2My40Yy0xMi43IDAtMjggLjEtNDEuNy40LTQyLjQuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMnYtODAuNmgtMzIuMXYxNjkuNWMwIDEwLjMtLjYgMjIuOS0xLjEgMzMuMWgzMS41Yy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42LjMgMTMuMyAxLjEgMjAuMmgyOS44Yy0uNy04LjItMS0xNy41LTEtMjYuOHYtNjUuNmMwLTkuMy0xLjctMTcuMi00LjgtMjMuOGw2MS41IDExNi4xLTI4LjUgNTQuMWgzNS45TDY0MCAxODkuNXpNMjQzLjcgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42em0tNDExLjkgMS42aDEyOC44di04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWgtMzMuMWMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40SDMzLjNjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZUxlZ2FjeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNS43MSwyMjguMTZsLjM1LS40OGMwLC4xNiwwLC4zMi0uMDcuNDhabTQ2MC41OCwxNS41MWMwLTQ0LTcuNzYtODQuNDYtMjguODEtMTIyLjRDNDE2LjUsNDcuODgsMzQzLjkxLDgsMjU4Ljg5LDgsMTE5LDcuNzIsNDAuNjIsMTEzLjIxLDI2LjA2LDIyNy42OGM0Mi40Mi02MS4zMSwxMTcuMDctMTIxLjM4LDIyMC4zNy0xMjUsMCwwLDEwOS42NywwLDk5LjQyLDEwNUgxNzBjNi4zNy0zNy4zOSwxOC41NS01OSwzNC4zNC03OC45My03NS4wNSwzNC45LTEyMS44NSw5Ni4xLTEyMC43NSwxODguMzIuODMsNzEuNDUsNTAuMTMsMTQ0Ljg0LDEyMC43NSwxNzIsODMuMzUsMzEuODQsMTkyLjc3LDcuMiwyNDAuMTMtMjEuMzNWMzYzLjMxQzM2My42LDQxOS44LDE3My42LDQyNC4yMywxNzIuMjEsMjk1Ljc0SDQ4Ni4yOVYyNDMuNjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjEgMzcuNDRDMTYxLjEgMTIuMjMgMjA3LjctLjc3NTMgMjU1IC4wMDE2QzQyMyAuMDAxNiA1MTIgMTIzLjggNTEyIDIxOS41QzUxMS45IDI1Mi4yIDQ5OSAyODMuNCA0NzYuMSAzMDYuN0M0NTMuMiAzMjkuOSA0MjIuMSAzNDMuMiAzODkuNCAzNDMuN0MzMTQuMiAzNDMuNyAyOTcuOSAzMjAuNiAyOTcuOSAzMTEuN0MyOTcuOSAzMDcuOSAyOTkuMSAzMDUuNSAzMDIuNyAzMDIuM0wzMDMuNyAzMDEuMUwzMDQuMSAyOTkuNUMzMTQuNiAyODggMzIwIDI3My4zIDMyMCAyNTcuOUMzMjAgMTc5LjIgMjM3LjggMTE1LjIgMTM2IDExNS4yQzk4LjQ2IDExNC45IDYxLjQ2IDEyNC4xIDI4LjQ4IDE0Mi4xQzU1LjQ4IDg0LjU4IDExMS4yIDQ0LjUgMTE5LjggMzguMjhDMTIwLjYgMzcuNzMgMTIwLjEgMzcuNDQgMTIwLjEgMzcuNDRWMzcuNDR6TTEzNS43IDM1NS41QzEzNC4zIDM4NS41IDE0MC4zIDQxNS41IDE1Mi4xIDQ0Mi43QzE2NS43IDQ2OS4xIDE4NC44IDQ5My43IDIwOC42IDUxMkMxNDkuMSA1MDAuNSA5Ny4xMSA0NjguMSA1OS4yIDQyMi43QzIxLjEyIDM3Ni4zIDAgMzE4LjQgMCAyNTcuOUMwIDIwNi43IDYyLjQgMTYzLjUgMTM2IDE2My41QzE3Mi42IDE2Mi45IDIwOC40IDE3NC40IDIzNy44IDE5Ni4yTDIzNC4yIDE5Ny40QzE4Mi43IDIxNSAxMzUuNyAyODguMSAxMzUuNyAzNTUuNVYzNTUuNXpNNDY5LjggNDAwTDQ2OS4xIDQwMC4xQzQ1Ny4zIDQxOC45IDQ0My4yIDQzNS4yIDQyNi45IDQ0OS42QzM5Ni4xIDQ3Ny42IDM1OC44IDQ5NS4xIDMxOC4xIDQ5OS41QzI5OS41IDQ5OS44IDI4MS4zIDQ5Ni4zIDI2NC4zIDQ4OC4xQzIzOC43IDQ3Ny44IDIxNy4yIDQ1OC4xIDIwMi43IDQzNS4xQzE4OC4zIDQxMS4yIDE4MS42IDM4My40IDE4My43IDM1NS41QzE4My4xIDMzNS40IDE4OS4xIDMxNS4yIDE5OC43IDI5Ny4zQzIxMi42IDMzMC40IDIzNi4yIDM1OC42IDI2Ni4zIDM3OC4xQzI5Ni40IDM5Ny42IDMzMS44IDQwNy42IDM2Ny43IDQwNi43QzM5OC43IDQwNyA0MjkuOCA0MDAgNDU3LjkgMzg2LjJMNDU5LjggMzg1LjNDNDYzLjcgMzgzIDQ2Ny41IDM4MS40IDQ3MS40IDM4NS4zQzQ3NS45IDM5MC4yIDQ3My4yIDM5NC41IDQ3MC4yIDM5OS4zQzQ3MCAzOTkuNSA0NjkuOSAzOTkuOCA0NjkuOCA0MDBWNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGVtZW50b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjM2MSAyNTZDLjM2MSAzOTcgMTE0IDUxMSAyNTUgNTExQzM5NyA1MTEgNTExIDM5NyA1MTEgMjU2QzUxMSAxMTYgMzk3IDIuMDUgMjU1IDIuMDVDMTE0IDIuMDUgLjM2MSAxMTYgLjM2MSAyNTZ6TTE5MiAxNTBWMzYzSDE0OVYxNTBIMTkyek0yMzQgMTUwSDM2MlYxOTNIMjM0VjE1MHpNMzYyIDIzNVYyNzhIMjM0VjIzNUgzNjJ6TTIzNCAzMjBIMzYyVjM2M0gyMzRWMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE0My44NCAyODUuMkMzNzUuMzEgMzU4LjUxIDMxNS43OSA0MDQuOCAyNDggNDA0LjhzLTEyNy4zMS00Ni4yOS0xNDMuODQtMTExLjZjLTEuNjUtNy40NCAyLjQ4LTE1LjcxIDkuOTItMTcuMzYgNy40NC0xLjY1IDE1LjcxIDIuNDggMTcuMzYgOS45MiAxNC4wNSA1Mi45MSA2MiA5MC4xMSAxMTYuNTYgOTAuMTFzMTAyLjUxLTM3LjIgMTE2LjU2LTkwLjExYzEuNjUtNy40NCA5LjkyLTEyLjQgMTcuMzYtOS45MiA3LjQ0IDEuNjUgMTIuNCA5LjkyIDkuOTIgMTcuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVtYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzOS45IDI1NC42Yy0xLjEtMTAuNy0xMC43LTYuOC0xMC43LTYuOHMtMTUuNiAxMi4xLTI5LjMgMTAuN2MtMTMuNy0xLjMtOS40LTMyLTkuNC0zMnMzLTI4LjEtNS4xLTMwLjRjLTguMS0yLjQtMTggNy4zLTE4IDcuM3MtMTIuNCAxMy43LTE4LjMgMzEuMmwtMS42LjVzMS45LTMwLjYtLjMtMzcuNmMtMS42LTMuNS0xNi40LTMuMi0xOC44IDNzLTE0LjIgNDkuMi0xNSA2Ny4yYzAgMC0yMy4xIDE5LjYtNDMuMyAyMi44cy0yNS05LjQtMjUtOS40IDU0LjgtMTUuMyA1Mi45LTU5LjEtNDQuMi0yNy42LTQ5LTI0Yy00LjYgMy41LTI5LjQgMTguNC0zNi42IDU5LjctLjIgMS40LS43IDcuNS0uNyA3LjVzLTIxLjIgMTQuMi0zMyAxOGMwIDAgMzMtNTUuNi03LjMtODAuOS0xMS40LTYuOC0yMS4zLS41LTI3LjIgNS4zIDEzLjYtMTcuMyA0Ni40LTY0LjIgMzYuOS0xMDUuMi01LjgtMjQuNC0xOC0yNy4xLTI5LjItMjMuMS0xNyA2LjctMjMuNSAxNi43LTIzLjUgMTYuN3MtMjIgMzItMjcuMSA3OS41LTEyLjYgMTA1LjEtMTIuNiAxMDUuMS0xMC41IDEwLjItMjAuMiAxMC43LTUuNC0yOC43LTUuNC0yOC43IDcuNS00NC42IDctNTIuMS0xLjEtMTEuNi05LjktMTQuMmMtOC45LTIuNy0xOC41IDguNi0xOC41IDguNnMtMjUuNSAzOC43LTI3LjcgNDQuNmwtMS4zIDIuNC0xLjMtMS42czE4LTUyLjcuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNS4zLTE2LjctMTEuOC0xNi43LTExLjhzNjgtMjMuMyA0OS40LTY5LjJjLTguMy0xMS44LTE4LTE1LjUtMzEuNy0xNS4zLTEzLjcuMy0zMC4zIDguNi00MS4zIDMzLjMtNS4zIDExLjgtNi44IDIzLTcuOCAzMS41IDAgMC0xMi4zIDIuNC0xOC44LTIuOXMtMTAgMC0xMCAwLTExLjIgMTQtLjEgMTguMyAyOC4xIDYuMSAyOC4xIDYuMWMxLjYgNy41IDYuMiAxOS41IDE5LjYgMjkuNyAyMC4yIDE1LjMgNTguOC0xLjMgNTguOC0xLjNsMTUuOS04LjhzLjUgMTQuNiAxMi4xIDE2LjcgMTYuNCAxIDM2LjUtNDcuOWMxMS44LTI1IDEyLjYtMjMuNiAxMi42LTIzLjZsMS4zLS4zcy05LjEgNDYuOC01LjYgNTkuN0MxODcuNyAzMTkuNCAyMDMgMzE4IDIwMyAzMThzOC4zIDIuNCAxNS0yMS4yIDE5LjYtNDkuOSAxOS42LTQ5LjloMS42cy01LjYgNDguMSAzIDYzLjcgMzAuOSA1LjMgMzAuOSA1LjMgMTUuNi03LjggMTgtMTAuMmMwIDAgMTguNSAxNS44IDQ0LjYgMTIuOSA1OC4zLTExLjUgNzkuMS0yNS45IDc5LjEtMjUuOXMxMCAyNC40IDQxLjEgMjYuN2MzNS41IDIuNyA1NC44LTE4LjYgNTQuOC0xOC42cy0uMyAxMy41IDEyLjEgMTguNiAyMC43LTIyLjggMjAuNy0yMi44bDIwLjctNTcuMmgxLjlzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42em0yNzIuOC0xMjMuOHMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW1waXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4Ny42IDU0LjJjLTEwLjgtMi4yLTIyLjEtMy4zLTMzLjUtMy42VjMyLjRjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTUzLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzM0IDE4MSAyNC4xIDIxNy41IDI0LjEgMjU2czEwIDc1IDI3LjEgMTA2LjZsMTUuOC05LjFjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIxMy4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZ2LTE4LjNjLTExLjMtLjMtMjIuNy0xLjctMzMuNS0zLjZsNC43LTIzLjh6TTkzLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNlYzMi40QzE2My45IDM0LjYgOTUuOSA3Ni40IDU3LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6bTMwOS40IDI3MC4ybC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNnYxOC4zYzc4LjEtMi4yIDE0Ni40LTQ0LjMgMTg0LjktMTA2LjZsLTE2LjEtOS40Yy01LjcgOS43LTEyLjYgMTguOC0yMC4xIDI3LjR6TTQ5NiAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzAgMzkzIDAgMjU2IDExMSA4IDI0OCA4czI0OCAxMTEgMjQ4IDI0OHptLTEyLjIgMGMwLTEzMC4xLTEwNS43LTIzNS44LTIzNS44LTIzNS44UzEyLjIgMTI1LjkgMTIuMiAyNTYgMTE3LjkgNDkxLjggMjQ4IDQ5MS44IDQ4My44IDM4Ni4xIDQ4My44IDI1NnptLTM5LTEwNi42bC0xNS44IDkuMWM1LjMgOS43IDEwIDIwLjIgMTMuNiAzMWwtMjIuNyA3LjdjNi40IDE4LjMgOS43IDM4LjIgOS43IDU4LjdzLTMuNiA0MC40LTEwIDU4LjdsMjMgNy43Yy0zLjkgMTAuOC04LjMgMjEtMTMuNiAzMWwxNS44IDkuMUM0NjIgMzMxIDQ3MS45IDI5NC41IDQ3MS45IDI1NnMtOS45LTc1LTI3LjEtMTA2LjZ6bS0xODMgMTc3LjdjMTYuMy0zLjMgMzAuNC0xMS42IDQwLjctMjMuNWw1MS4yIDQ0LjhjMTEuOS0xMy42IDIxLjMtMjkuMyAyNy4xLTQ2LjhsLTY0LjItMjIuMWMyLjUtNy41IDMuOS0xNS4yIDMuOS0yMy41cy0xLjQtMTYuMS0zLjktMjMuNWw2NC41LTIyLjFjLTYuMS0xNy40LTE1LjUtMzMuMi0yNy40LTQ2LjhsLTUxLjIgNDQuOGMtMTAuMi0xMS45LTI0LjQtMjAuNS00MC43LTIzLjhsMTMuMy02Ni40Yy04LjYtMS45LTE3LjctMi44LTI3LjEtMi44LTkuNCAwLTE4LjUuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44IDkuNCAwIDE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmlyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNMNDQ4IDQ4MGgtMjZsLTcwLjQtNzEuMmMtMzkgNC4yLTEyNC40IDM0LjUtMjE0LjQtMzdDNDcgMzAwLjMgNTIgMjE0LjcgMCAzMnptNzkuNyA0NmMtNDkuNy0yMy41LTUuMiA5LjItNS4yIDkuMiA0NS4yIDMxLjIgNjYgNzMuNyA5MC4yIDExOS45IDMxLjUgNjAuMiA3OSAxMzkuNyAxNDQuMiAxNjcuNyA2NSAyOCAzNC4yIDEyLjUgNi04LjUtMjguMi0yMS4yLTY4LjItODctOTEtMTMwLjItMzEuNy02MC02MS0xMTguNi0xNDQuMi0xNTguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXJsYW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg3LjIgNTMuNUgwdjQwNWgxMDAuNGMtNDkuNy01Mi42LTc4LjgtMTI1LjMtNzguNy0yMTIuMS0uMS03Ni43IDI0LTE0Mi43IDY1LjUtMTkyLjl6bTIzOC4yIDkuN2MtNDUuOS4xLTg1LjEgMzMuNS04OS4yIDgzLjJoMTY5LjljLTEuMS00OS43LTM0LjUtODMuMS04MC43LTgzLjJ6bTIzMC43LTkuNmguM2wtLjEtLjF6bS4zIDBjMzEuNCA0Mi43IDQ4LjcgOTcuNSA0Ni4yIDE2Mi43LjUgNiAuNSAxMS43IDAgMjQuMUgyMzAuMmMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44SDY0MHYtNDA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdGhlcmV1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMGwxNTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMmwxNTItMjIxLjQtMTUyIDkyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0c3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM0OGMtMS43NSAxMC43NS0xMy43NSAxMTAtMTUuNSAxMzItMTE3Ljg3OS00LjI5OS0yMTkuODk1LTQuNzQzLTM2OC41IDB2LTI1LjVjNDUuNDU3LTguOTQ4IDYwLjYyNy04LjAxOSA2MS0zNS4yNSAxLjc5My03Mi4zMjIgMy41MjQtMjQ0LjE0MyAwLTMyMi0xLjAyOS0yOC40Ni0xMi4xMy0yNi43NjUtNjEtMzZ2LTI1LjVjNzMuODg2IDIuMzU4IDI1NS45MzMgOC41NTEgMzYyLjk5OS0zLjc1LTMuNSAzOC4yNS03Ljc1IDEyNi41LTcuNzUgMTI2LjVIMzMyQzMyMC45NDcgMTE1LjY2NSAzMTMuMjQxIDY4IDI3Ny4yNSA2OGgtMTM3Yy0xMC4yNSAwLTEwLjc1IDMuNS0xMC43NSA5Ljc1VjI0MS41YzU4IC41IDg4LjUtMi41IDg4LjUtMi41IDI5Ljc3LS45NTEgMjcuNTYtOC41MDIgNDAuNzUtNjUuMjUxaDI1Ljc1Yy00LjQwNyAxMDEuMzUxLTMuOTEgNjEuODI5LTEuNzUgMTYwLjI1SDI1N2MtOS4xNTUtNDAuMDg2LTkuMDY1LTYxLjA0NS0zOS41MDEtNjEuNSAwIDAtMjEuNS0yLTg4LTJ2MTM5YzAgMjYgMTQuMjUgMzguMjUgNDQuMjUgMzguMjVIMjYzYzYzLjYzNiAwIDY2LjU2NC0yNC45OTYgOTguNzUxLTk5Ljc1SDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXZlcm5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjgyIDEzMi4yMWMxLjYgMjIuMzEtMTcuNTUgMjEuNTktMjEuNjEgMjEuNTktNjguOTMgMC03My42NC0xLTgzLjU4IDMuMzQtLjU2LjIyLS43NCAwLS4zNy0uMzdMMTIzLjc5IDQ2LjQ1Yy4zOC0uMzcuNi0uMjIuMzguMzctNC4zNSA5Ljk5LTMuMzUgMTUuMDktMy4zNSA4NS4zOXptNzkgMzA4Yy0xNC42OC0zNy4wOCAxMy03Ni45MyA1Mi41Mi03Ni42MiAxNy40OSAwIDIyLjYgMjMuMjEgNy45NSAzMS40Mi02LjE5IDMuMy0yNC45NSAxLjc0LTI1LjE0IDE5LjItLjA1IDE3LjA5IDE5LjY3IDI1IDMxLjIgMjQuODlBNDUuNjQgNDUuNjQgMCAwIDAgMzEyIDM5My40NXYtLjA4YzAtMTEuNjMtNy43OS00Ny4yMi00Ny41NC01NS4zNC03LjcyLTEuNTQtNjUtNi4zNS02OC4zNS01MC41Mi0zLjc0IDE2LjkzLTE3LjQgNjMuNDktNDMuMTEgNjkuMDktOC43NCAxLjk0LTY5LjY4IDcuNjQtMTEyLjkyLTM2Ljc3IDAgMC0xOC41Ny0xNS4yMy0yOC4yMy01Ny45NS0zLjM4LTE1Ljc1LTkuMjgtMzkuNy0xMS4xNC02MiAwLTE4IDExLjE0LTMwLjQ1IDI1LjA3LTMyLjIgODEgMCA5MCAyLjMyIDEwMS03LjggOS44Mi05LjI0IDcuOC0xNS41IDcuOC0xMDIuNzggMS04LjMgNy43OS0zMC44MSA1My40MS0yNC4xNCA2IC44NiAzMS45MSA0LjE4IDM3LjQ4IDMwLjY0bDY0LjI2IDExLjE1YzIwLjQzIDMuNzEgNzAuOTQgNyA4MC42IDU3Ljk0IDIyLjY2IDEyMS4wOSA4LjkxIDIzOC40NiA3LjggMjM4LjQ2QzM2Mi4xNSA0ODUuNTMgMjY3LjA2IDQ4MCAyNjcuMDYgNDgwYy0xOC45NS0uMjMtNTQuMjUtOS40LTY3LjI3LTM5Ljgzem04MC45NC0yMDQuODRjLTEgMS45Mi0yLjIgNiAuODUgNyAxNC4wOSA0LjkzIDM5Ljc1IDYuODQgNDUuODggNS41MyAzLjExLS4yNSAzLjA1LTQuNDMgMi40OC02LjY1LTMuNTMtMjEuODUtNDAuODMtMjYuNS00OS4yNC01LjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBlZGl0ZWRzc2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDQzLjRDMTMwLjYgNDMuNCAzNS40IDEzOC42IDM1LjQgMjU2UzEzMC42IDQ2OC42IDI0OCA0NjguNiA0NjAuNiAzNzMuNCA0NjAuNiAyNTYgMzY1LjQgNDMuNCAyNDggNDMuNHptLTk3LjQgMTMyLjljMC01My43IDQzLjctOTcuNCA5Ny40LTk3LjRzOTcuNCA0My43IDk3LjQgOTcuNHYyNi42YzAgNS0zLjkgOC45LTguOSA4LjloLTE3LjdjLTUgMC04LjktMy45LTguOS04Ljl2LTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwdjI2LjZjMCA1LTMuOSA4LjktOC45IDguOWgtMTcuN2MtNSAwLTguOS0zLjktOC45LTguOXYtMjYuNnpNMzg5LjcgMzgwYzAgOS43LTggMTcuNy0xNy43IDE3LjdIMTI0Yy05LjcgMC0xNy43LTgtMTcuNy0xNy43VjIzOC4zYzAtOS43IDgtMTcuNyAxNy43LTE3LjdoMjQ4YzkuNyAwIDE3LjcgOCAxNy43IDE3LjdWMzgwem0tMjQ4LTEzNy4zdjEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGgtOC45Yy0yLjUgMC00LjQtMS45LTQuNC00LjRWMjQyLjdjMC0yLjUgMS45LTQuNCA0LjQtNC40aDguOWMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjR2MzEuNmMwIDUtMy45IDguOS04LjkgOC45aC0xNy43Yy01IDAtOC45LTMuOS04LjktOC45di0zMS42Yy0xMC41LTYuMS0xNy43LTE3LjQtMTcuNy0zMC40IDAtMTkuNyAxNS44LTM1LjQgMzUuNC0zNS40czM1LjUgMTUuOCAzNS41IDM1LjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDc4LjNDMTIxIDQ4Ni4zIDE3LjcgMzgzIDE3LjcgMjU2UzEyMSAyNS43IDI0OCAyNS43IDQ3OC4zIDEyOSA0NzguMyAyNTYgMzc1IDQ4Ni4zIDI0OCA0ODYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2tGIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDI5OS4zVjUxMkgxOTZWMjk5LjNoODYuNWwxOC05Ny44SDE5NlYxNjYuOWMwLTUxLjcgMjAuMy03MS41IDcyLjctNzEuNWMxNi4zIDAgMjkuNCAuNCAzNyAxLjJWNy45QzI5MS40IDQgMjU2LjQgMCAyMzYuMiAwQzEyOS4zIDAgODAgNTAuNSA4MCAxNTkuNHY0Mi4xSDE0djk3LjhIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rTWVzc2VuZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41NSA4QzExNi41MiA4IDggMTEwLjM0IDggMjQ4LjU3YzAgNzIuMyAyOS43MSAxMzQuNzggNzguMDcgMTc3Ljk0IDguMzUgNy41MSA2LjYzIDExLjg2IDguMDUgNTguMjNBMTkuOTIgMTkuOTIgMCAwIDAgMTIyIDUwMi4zMWM1Mi45MS0yMy4zIDUzLjU5LTI1LjE0IDYyLjU2LTIyLjdDMzM3Ljg1IDUyMS44IDUwNCA0MjMuNyA1MDQgMjQ4LjU3IDUwNCAxMTAuMzQgMzk2LjU5IDggMjU2LjU1IDh6bTE0OS4yNCAxODUuMTNsLTczIDExNS41N2EzNy4zNyAzNy4zNyAwIDAgMS01My45MSA5LjkzbC01OC4wOC00My40N2ExNSAxNSAwIDAgMC0xOCAwbC03OC4zNyA1OS40NGMtMTAuNDYgNy45My0yNC4xNi00LjYtMTcuMTEtMTUuNjdsNzMtMTE1LjU3YTM3LjM2IDM3LjM2IDAgMCAxIDUzLjkxLTkuOTNsNTguMDYgNDMuNDZhMTUgMTUgMCAwIDAgMTggMGw3OC40MS01OS4zOGMxMC40NC03Ljk4IDI0LjE0IDQuNTQgMTcuMDkgMTUuNjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2Vib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NkMwIDM3NiA4Mi43IDQ3Ni44IDE5NC4yIDUwNC41VjMzNC4ySDE0MS40VjI1Nmg1Mi44VjIyMi4zYzAtODcuMSAzOS40LTEyNy41IDEyNS0xMjcuNWMxNi4yIDAgNDQuMiAzLjIgNTUuNyA2LjRWMTcyYy02LS42LTE2LjUtMS0yOS42LTFjLTQyIDAtNTguMiAxNS45LTU4LjIgNTcuMlYyNTZoODMuNmwtMTQuNCA3OC4ySDI4N1Y1MTAuMUM0MTMuOCA0OTQuOCA1MTIgMzg2LjkgNTEyIDI1NmgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYW50YXN5RmxpZ2h0R2FtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyLjg2TDMyLjg2IDI1NiAyNTYgNDc5LjE0IDQ3OS4xNCAyNTYgMjU2IDMyLjg2ek04OC4zNCAyNTUuODNjMS45Ni0yIDExLjkyLTEyLjMgOTYuNDktOTcuNDggNDEuNDUtNDEuNzUgODYuMTktNDMuNzcgMTE5Ljc3LTE4LjY5IDI0LjYzIDE4LjQgNjIuMDYgNTguOSA2Mi4xNSA1OSAuNjguNzQgMS4wNyAyLjg2LjU4IDMuMzgtMTEuMjcgMTEuODQtMjIuNjggMjMuNTQtMzMuNSAzNC42OS0zNC4yMS0zMi4zMS00MC41Mi0zOC4yNC00OC41MS00My45NS0xNy43Ny0xMi42OS00MS40LTEwLjEzLTU2Ljk4IDUuMS0yLjE3IDIuMTMtMS43OSAzLjQzLjEyIDUuMzUgMi45NCAyLjk1IDI4LjEgMjguMzMgMzUuMDkgMzUuNzgtMTEuOTUgMTEuNi0yMy42NiAyMi45Ny0zNS42OSAzNC42Ni0xMi4wMi0xMi41NC0yNC40OC0yNS41My0zNi41NC0zOC4xMS0yMS4zOSAyMS4wOS00MS42OSA0MS4xMS02MS44NSA2MC45OXptMjM0LjgyIDEwMS42Yy0zNS40OSAzNS40My03OC4wOSAzOC4xNC0xMDYuOTkgMjAuNDctMjIuMDgtMTMuNS0zOS4zOC0zMi4wOC03Mi45My02Ni44NCAxMi4wNS0xMi4zNyAyMy43OS0yNC40MiAzNS4zNy0zNi4zMSAzMy4wMiAzMS45MSAzNy4wNiAzNi4wMSA0NC42OCA0Mi4wOSAxOC40OCAxNC43NCA0Mi41MiAxMy42NyA1OS4zMi0xLjggMy42OC0zLjM5IDMuNjktMy42NC4xNC03LjI0LTEwLjU5LTEwLjczLTIxLjE5LTIxLjQ0LTMxLjc3LTMyLjE4LTEuMzItMS4zNC0zLjAzLTIuNDgtLjgtNC42OSAxMC43OS0xMC43MSAyMS40OC0yMS41MiAzMi4yMS0zMi4yOS4yNi0uMjYuNjUtLjM4IDEuOTEtMS4wNyAxMi4zNyAxMi44NyAyNC45MiAyNS45MiAzNy4yNSAzOC43NSAyMS4wMS0yMC43MyA0MS4yNC00MC42OCA2MS4yNS02MC40MiAxMy42OCAxMy40IDI3LjEzIDI2LjU4IDQwLjg2IDQwLjAzLTIwLjE3IDIwLjg2LTgxLjY4IDgyLjcxLTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NmwyNTYgMjU2IDI1Ni0yNTZMMjU2IDB6TTE2IDI1NkwyNTYgMTZsMjQwIDI0MC0yNDAgMjQwTDE2IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVkZXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTg2IDI4NC41bDUzLjMtNTkuOWgtNjIuNGwtMjEuNyAyNC44LTIyLjUtMjQuOEg0MTR2LTE2aDU2LjF2LTQ4LjFIMzE4LjlWMjM2aC0uNWMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTR2LTI0LjJINDl2LTI2LjJoNjB2LTQxLjFIMFYzNDVoNDl2LTc3LjVoNDguOWMtMS41IDUuNy0yLjMgMTEuOC0yLjMgMTguMiAwIDczLjEgMTAyLjYgOTEuNCAxMzAuMiAyMy43aC00MmMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmg4NS41YzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZoLjVWMzQ1aDIxMi4ybDIyLjEtMjUgMjIuMyAyNUg2NDBsLTU0LTYwLjV6bS00NDYuNy0xNi42YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBoLTQ2LjV6bTE1My40IDQ4LjljLTM0LjYgMC0zNC02Mi44IDAtNjIuOCAzMi42IDAgMzQuNSA2Mi44IDAgNjIuOHptMTY3LjggMTkuMWgtOTQuNFYxNjkuNGg5NXYzMC4ySDQwNXYzMy45aDU1LjV2MjguMWgtNTYuMXY0NC43aDU2LjF2MjkuNnptLTQ1LjktMzkuOHYtMjQuNGg1Ni4xdi00NGw1MC43IDU3LTUwLjcgNTd2LTQ1LjZoLTU2LjF6bTEzOC42IDEwLjNsLTI2LjEgMjkuNUg0ODlsNDUuNi01MS4yLTQ1LjYtNTEuMmgzOS43bDI2LjYgMjkuMyAyNS42LTI5LjNoMzguNWwtNDUuNCA1MSA0NiA1MS40aC00MC41bC0yNi4zLTI5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlZG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMDQxMyAyNTUuOEMuMTIxOSAxMzIuMiAxMDAuMyAzMiAyMjQgMzJDMzQ3LjcgMzIgNDQ4IDEzMi4zIDQ0OCAyNTZDNDQ4IDM3OS43IDM0Ny44IDQ3OS45IDIyNC4xIDQ4MEg1MC45M0MyMi44NCA0ODAgLjA4MzIgNDU3LjMgLjA0MTYgNDI5LjJIMFYyNTUuOEguMDQxM3pNMzQyLjYgMTkyLjdDMzQyLjYgMTUzIDMwNyAxMjQuMiAyNjkuNCAxMjQuMkMyMzQuNSAxMjQuMiAyMDMuNiAxNTAuNSAxOTkuMyAxODQuMUMxOTkuMSAxODcuOSAxOTguOSAxODkuMSAxOTguOSAxOTIuNkMxOTguOCAyMTMuNyAxOTguOSAyMzUuNCAxOTguMSAyNTdDMTk5IDI4My4xIDE5OS4xIDMwOS4xIDE5OC4xIDMzMy42QzE5OC4xIDM2MC43IDE3OC43IDM3OS4xIDE1My40IDM3OS4xQzEyOC4xIDM3OS4xIDEwNy42IDM1OC45IDEwNy42IDMzMy42QzEwOC4xIDMwNS45IDEzMC4yIDI4OC4zIDE1Ni4xIDI4Ny41SDE1Ni4zTDE4Mi42IDI4Ny4zVjI1MEwxNTYuMyAyNTAuMkMxMDkuMiAyNDkuOCA3MS43MiAyODYuNyA3MC4zNiAzMzMuNkM3MC4zNiAzNzkuMiAxMDcuOSA0MTYuNSAxNTMuNCA0MTYuNUMxOTYuNCA0MTYuNSAyMzIuMSAzODIuOSAyMzYgMzQwLjlMMjM2LjIgMjg3LjRMMjY4LjggMjg3LjFDMjk0LjEgMjg3LjMgMjkzLjggMjQ5LjMgMjY4LjYgMjQ5LjhMMjM2LjIgMjUwLjFDMjM2LjIgMjQzLjcgMjM2LjMgMjM3LjMgMjM2LjMgMjMwLjlDMjM2LjQgMjE4LjIgMjM2LjQgMjA1LjUgMjM2LjIgMTkyLjdDMjM2LjMgMTc2LjIgMjUyIDE2MS41IDI2OS40IDE2MS41QzI4Ni45IDE2MS41IDMwNS4zIDE3MC4yIDMwNS4zIDE5Mi43QzMwNS4zIDE5NS45IDMwNS4yIDE5Ny44IDMwNSAxOTlDMzAzLjEgMjA5LjUgMzEwLjIgMjE5LjQgMzIwLjcgMjIwLjlDMzMxLjMgMjIyLjQgMzQwLjkgMjE0LjggMzQxLjkgMjA0LjNDMzQyLjUgMjAwLjEgMzQyLjYgMTk2LjQgMzQyLjYgMTkyLjdIMzQyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpZ21hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDk1Ljc5MjRDMTQgNDIuODg3NyA1Ni44ODc4IDAgMTA5Ljc5MyAwSDI3NC4xNjFDMzI3LjA2NiAwIDM2OS45NTQgNDIuODg3NyAzNjkuOTU0IDk1Ljc5MjRDMzY5Ljk1NCAxMjkuMjkyIDM1Mi43NTggMTU4Ljc3NiAzMjYuNzExIDE3NS44OTdDMzUyLjc1OCAxOTMuMDE5IDM2OS45NTQgMjIyLjUwMiAzNjkuOTU0IDI1Ni4wMDJDMzY5Ljk1NCAzMDguOTA3IDMyNy4wNjYgMzUxLjc5NSAyNzQuMTYxIDM1MS43OTVIMjcyLjA4MUMyNDcuMjc5IDM1MS43OTUgMjI0LjY3OCAzNDIuMzY5IDIwNy42NjYgMzI2LjkwNFY0MTUuMTY3QzIwNy42NjYgNDY4Ljc3NyAxNjMuNjU3IDUxMiAxMTAuMzA5IDUxMkM1Ny41MzYxIDUxMiAxNCA0NjkuMjQzIDE0IDQxNi4yMDdDMTQgMzgyLjcwOSAzMS4xOTQ1IDM1My4yMjcgNTcuMjM5MiAzMzYuMTA1QzMxLjE5NDUgMzE4Ljk4MyAxNCAyODkuNSAxNCAyNTYuMDAyQzE0IDIyMi41MDIgMzEuMTk2IDE5My4wMTkgNTcuMjQyNSAxNzUuODk3QzMxLjE5NiAxNTguNzc2IDE0IDEyOS4yOTIgMTQgOTUuNzkyNFpNMTc2LjI4OCAxOTEuNTg3SDEwOS43OTNDNzQuMjE3MiAxOTEuNTg3IDQ1LjM3NzggMjIwLjQyNyA0NS4zNzc4IDI1Ni4wMDJDNDUuMzc3OCAyOTEuNDQgNzMuOTk0OCAzMjAuMTk0IDEwOS4zODEgMzIwLjQxNkMxMDkuNTE4IDMyMC40MTUgMTA5LjY1NSAzMjAuNDE1IDEwOS43OTMgMzIwLjQxNUgxNzYuMjg4VjE5MS41ODdaTTIwNy42NjYgMjU2LjAwMkMyMDcuNjY2IDI5MS41NzcgMjM2LjUwNSAzMjAuNDE3IDI3Mi4wODEgMzIwLjQxN0gyNzQuMTYxQzMwOS43MzcgMzIwLjQxNyAzMzguNTc2IDI5MS41NzcgMzM4LjU3NiAyNTYuMDAyQzMzOC41NzYgMjIwLjQyNyAzMDkuNzM3IDE5MS41ODcgMjc0LjE2MSAxOTEuNTg3SDI3Mi4wODFDMjM2LjUwNSAxOTEuNTg3IDIwNy42NjYgMjIwLjQyNyAyMDcuNjY2IDI1Ni4wMDJaTTEwOS43OTMgMzUxLjc5NUMxMDkuNjU1IDM1MS43OTUgMTA5LjUxOCAzNTEuNzk0IDEwOS4zODEgMzUxLjc5NEM3My45OTQ4IDM1Mi4wMTUgNDUuMzc3OCAzODAuNzY5IDQ1LjM3NzggNDE2LjIwN0M0NS4zNzc4IDQ1MS42NTIgNzQuNjAyNSA0ODAuNjIyIDExMC4zMDkgNDgwLjYyMkMxNDYuNTkxIDQ4MC42MjIgMTc2LjI4OCA0NTEuMTg2IDE3Ni4yODggNDE1LjE2N1YzNTEuNzk1SDEwOS43OTNaTTEwOS43OTMgMzEuMzc3OEM3NC4yMTcyIDMxLjM3NzggNDUuMzc3OCA2MC4yMTczIDQ1LjM3NzggOTUuNzkyNEM0NS4zNzc4IDEzMS4zNjggNzQuMjE3MiAxNjAuMjA3IDEwOS43OTMgMTYwLjIwN0gxNzYuMjg4VjMxLjM3NzhIMTA5Ljc5M1pNMjA3LjY2NiAxNjAuMjA3SDI3NC4xNjFDMzA5LjczNyAxNjAuMjA3IDMzOC41NzYgMTMxLjM2OCAzMzguNTc2IDk1Ljc5MjRDMzM4LjU3NiA2MC4yMTczIDMwOS43MzcgMzEuMzc3OCAyNzQuMTYxIDMxLjM3NzhIMjA3LjY2NlYxNjAuMjA3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlZm94QnJvd3NlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzAuMjIgMTI3LjU0OEMxMzAuMzggMTI3LjU1OCAxMzAuMyAxMjcuNTU4IDEzMC4yMiAxMjcuNTQ4VjEyNy41NDhaTTQ4MS42NCAxNzIuODk4QzQ3MS4wMyAxNDcuMzk4IDQ0OS41NiAxMTkuODk4IDQzMi43IDExMS4xNjhDNDQ2LjQyIDEzOC4wNTggNDU0LjM3IDE2NS4wNDggNDU3LjQgMTg1LjE2OEM0NTcuNDA1IDE4NS4zMDYgNDU3LjQyMiAxODUuNDQzIDQ1Ny40NSAxODUuNTc4QzQyOS44NyAxMTYuODI4IDM4My4wOTggODkuMTA4OSAzNDQuOSAyOC43NDc5QzMyOS45MDggNS4wNTc5MiAzMzMuOTc2IDMuNTE3OTIgMzMxLjgyIDQuMDg3OTJMMzMxLjcgNC4xNTc5MkMyODQuOTkgMzAuMTEwOSAyNTYuMzY1IDgyLjUyODkgMjQ5LjEyIDEyNi44OThDMjMyLjUwMyAxMjcuNzcxIDIxNi4yMTkgMTMxLjg5NSAyMDEuMTkgMTM5LjAzNUMxOTkuODM4IDEzOS42NDkgMTk4LjczNiAxNDAuNzA2IDE5OC4wNjYgMTQyLjAzMUMxOTcuMzk2IDE0My4zNTYgMTk3LjE5OSAxNDQuODcgMTk3LjUwNiAxNDYuMzIzQzE5Ny43IDE0Ny4xNjIgMTk4LjA2OCAxNDcuOTUxIDE5OC41ODYgMTQ4LjYzOUMxOTkuMTAzIDE0OS4zMjcgMTk5Ljc2IDE0OS44OTkgMjAwLjUxMiAxNTAuMzE4QzIwMS4yNjQgMTUwLjczNyAyMDIuMDk2IDE1MC45OTMgMjAyLjk1NCAxNTEuMDcxQzIwMy44MTEgMTUxLjE0OCAyMDQuNjc2IDE1MS4wNDUgMjA1LjQ5MSAxNTAuNzY4TDIwNi4wMTEgMTUwLjU1OEMyMjEuNTExIDE0My4yNTUgMjM4LjQwOCAxMzkuMzkzIDI1NS41NDEgMTM5LjIzOEMzMTguMzY5IDEzOC42NjkgMzUyLjY5OCAxODMuMjYyIDM2My4xNjEgMjAxLjUyOEMzNTAuMTYxIDE5Mi4zNzggMzI2LjgxMSAxODMuMzM4IDMwNC4zNDEgMTg3LjI0OEMzOTIuMDgxIDIzMS4xMDggMzY4LjU0MSAzODEuNzg0IDI0Ni45NTEgMzc2LjQ0OEMxODcuNDg3IDM3My44MzggMTQ5Ljg4MSAzMjUuNDY3IDE0Ni40MjEgMjg1LjY0OEMxNDYuNDIxIDI4NS42NDggMTU3LjY3MSAyNDMuNjk4IDIyNy4wNDEgMjQzLjY5OEMyMzQuNTQxIDI0My42OTggMjU1Ljk3MSAyMjIuNzc4IDI1Ni4zNzEgMjE2LjY5OEMyNTYuMjgxIDIxNC42OTggMjEzLjgzNiAxOTcuODIyIDE5Ny4yODEgMTgxLjUxOEMxODguNDM0IDE3Mi44MDUgMTg0LjIyOSAxNjguNjExIDE4MC41MTEgMTY1LjQ1OEMxNzguNDk5IDE2My43NSAxNzYuMzkyIDE2Mi4xNTggMTc0LjIwMSAxNjAuNjg4QzE2OC42MzggMTQxLjIzMSAxNjguMzk5IDEyMC42MzggMTczLjUxIDEwMS4wNThDMTQ4LjQ1IDExMi40NjggMTI4Ljk2IDEzMC41MDggMTE0LjggMTQ2LjQyOEgxMTQuNjhDMTA1LjAxIDEzNC4xNzggMTA1LjY4IDkzLjc3NzkgMTA2LjI1IDg1LjM0NzlDMTA2LjEzIDg0LjgxNzkgOTkuMDIyIDg5LjAxNTkgOTguMSA4OS42NTc5Qzg5LjUzNDIgOTUuNzEwMyA4MS41NTI4IDEwMi41NSA3NC4yNiAxMTAuMDg4QzU3Ljk2OSAxMjYuNjg4IDMwLjEyOCAxNjAuMjQyIDE4Ljc2IDIxMS4zMThDMTQuMjI0IDIzMS43MDEgMTIgMjU1LjczOSAxMiAyNjMuNjE4QzEyIDM5OC4zMTggMTIxLjIxIDUwNy41MDggMjU1LjkyIDUwNy41MDhDMzc2LjU2IDUwNy41MDggNDc4LjkzOSA0MjAuMjgxIDQ5Ni4zNSAzMDQuODg4QzUwNy45MjIgMjI4LjE5MiA0ODEuNjQgMTczLjgyIDQ4MS42NCAxNzIuODk4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlZm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMy41MiwyNDEuNDhjLS4xMi0xLjU2LS4yNC0zLjEyLS4yNC00LjY4di0uMTJsLS4zNi00LjY4di0uMTJhMjQ1Ljg2LDI0NS44NiwwLDAsMC03LjMyLTQxLjE1YzAtLjEyLDAtLjEyLS4xMi0uMjRsLTEuMDgtNGMtLjEyLS4yNC0uMTItLjQ4LS4yNC0uNi0uMzYtMS4yLS43Mi0yLjUyLTEuMDgtMy43Mi0uMTItLjI0LS4xMi0uNi0uMjQtLjg0LS4zNi0xLjItLjcyLTIuNC0xLjA4LTMuNDgtLjEyLS4zNi0uMjQtLjYtLjM2LTEtLjM2LTEuMi0uNzItMi4yOC0xLjItMy40OGwtLjM2LTEuMDhjLS4zNi0xLjA4LS44NC0yLjI4LTEuMi0zLjM2YTguMjcsOC4yNywwLDAsMC0uMzYtMWMtLjQ4LTEuMDgtLjg0LTIuMjgtMS4zMi0zLjM2LS4xMi0uMjQtLjI0LS42LS4zNi0uODQtLjQ4LTEuMi0xLTIuMjgtMS40NC0zLjQ4LDAtLjEyLS4xMi0uMjQtLjEyLS4zNi0xLjU2LTMuODQtMy4yNC03LjY4LTUtMTEuNGwtLjM2LS43MmMtLjQ4LTEtLjg0LTEuOC0xLjMyLTIuNjQtLjI0LS40OC0uNDgtMS4wOC0uNzItMS41Ni0uMzYtLjg0LS44NC0xLjU2LTEuMi0yLjQtLjM2LS42LS42LTEuMi0xLTEuOHMtLjg0LTEuNDQtMS4yLTIuMjhjLS4zNi0uNi0uNzItMS4zMi0xLjA4LTEuOTJzLS44NC0xLjQ0LTEuMi0yLjE2YTE4LjA3LDE4LjA3LDAsMCwwLTEuMi0yYy0uMzYtLjcyLS44NC0xLjMyLTEuMi0ycy0uODQtMS4zMi0xLjItMi0uODQtMS4zMi0xLjItMS45Mi0uODQtMS40NC0xLjMyLTIuMTZhMTUuNjMsMTUuNjMsMCwwLDAtMS4yLTEuOEw0NjMuMiwxMTlhMTUuNjMsMTUuNjMsMCwwLDAtMS4yLTEuOGMtLjQ4LS43Mi0xLjA4LTEuNTYtMS41Ni0yLjI4LS4zNi0uNDgtLjcyLTEuMDgtMS4wOC0xLjU2bC0xLjgtMi41MmMtLjM2LS40OC0uNi0uODQtMS0xLjMyLTEtMS4zMi0xLjgtMi41Mi0yLjc2LTMuNzJhMjQ4Ljc2LDI0OC43NiwwLDAsMC0yMy41MS0yNi42NEExODYuODIsMTg2LjgyLDAsMCwwLDQxMiw2Mi40NmMtNC0zLjQ4LTguMTYtNi43Mi0xMi40OC05Ljg0YTE2Mi40OSwxNjIuNDksMCwwLDAtMjQuNi0xNS4xMmMtMi40LTEuMzItNC44LTIuNTItNy4yLTMuNzJhMjU0LDI1NCwwLDAsMC01NS40My0xOS41NmMtMS45Mi0uMzYtMy44NC0uODQtNS42NC0xLjJoLS4xMmMtMS0uMTItMS44LS4zNi0yLjc2LS40OGEyMzYuMzUsMjM2LjM1LDAsMCwwLTM4LTRIMjU1LjE0YTIzNC42MiwyMzQuNjIsMCwwLDAtNDUuNDgsNWMtMzMuNTksNy4wOC02My4yMywyMS4yNC04Mi45MSwzOS0xLjA4LDEtMS45MiwxLjY4LTIuNCwyLjE2bC0uNDguNDhIMTI0bC0uMTIuMTIuMTItLjEyYS4xMi4xMiwwLDAsMCwuMTItLjEybC0uMTIuMTJhLjQyLjQyLDAsMCwxLC4yNC0uMTJjMTQuNjQtOC43NiwzNC45Mi0xNiw0OS40NC0xOS41Nmw1Ljg4LTEuNDRjLjM2LS4xMi44NC0uMTIsMS4yLS4yNCwxLjY4LS4zNiwzLjM2LS43Miw1LjE2LTEuMDguMjQsMCwuNi0uMTIuODQtLjEyQzI1MC45NCwyMC45NCwzMTkuMzQsNDAuMTQsMzY3LDg1LjYxYTE3MS40OSwxNzEuNDksMCwwLDEsMjYuODgsMzIuNzZjMzAuMzYsNDkuMiwyNy40OCwxMTEuMTEsMy44NCwxNDcuNTktMzQuNDQsNTMtMTExLjM1LDcxLjI3LTE1OSwyNC44NGE4NC4xOSw4NC4xOSwwLDAsMS0yNS41Ni01OSw3NC4wNSw3NC4wNSwwLDAsMSw2LjI0LTMxYzEuNjgtMy44NCwxMy4wOC0yNS42NywxOC4yNC0yNC41OS0xMy4wOC0yLjc2LTM3LjU1LDIuNjQtNTQuNzEsMjguMTktMTUuMzYsMjIuOTItMTQuNTIsNTguMi01LDgzLjI4YTEzMi44NSwxMzIuODUsMCwwLDEtMTIuMTItMzkuMjRjLTEyLjI0LTgyLjU1LDQzLjMxLTE1Myw5NC4zMS0xNzAuNTEtMjcuNDgtMjQtOTYuNDctMjIuMzEtMTQ3LjcxLDE1LjM2LTI5Ljg4LDIyLTUxLjIzLDUzLjE2LTYyLjUxLDkwLjM2LDEuNjgtMjAuODgsOS42LTUyLjA4LDI1LjgtODMuODgtMTcuMTYsOC44OC0zOSwzNy00OS44LDYyLjg4LTE1LjYsMzcuNDMtMjEsODIuMTktMTYuMDgsMTI0Ljc5LjM2LDMuMjQuNzIsNi4zNiwxLjA4LDkuNiwxOS45MiwxMTcuMTEsMTIyLDIwNi4zOCwyNDQuNzgsMjA2LjM4QzM5Mi43Nyw1MDMuNDIsNTA0LDM5Mi4xOSw1MDQsMjU1LDUwMy44OCwyNTAuNDgsNTAzLjc2LDI0NS45Miw1MDMuNTIsMjQxLjQ4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJzdE9yZGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTAgNDg4LjIxQzExNS4zNCA0OTYuMjEgNy43OSAzODguNjYgNy43OSAyNTZTMTE1LjM0IDE1Ljc5IDI0OCAxNS43OSA0ODguMjEgMTIzLjM0IDQ4OC4yMSAyNTYgMzgwLjY2IDQ5Ni4yMSAyNDggNDk2LjIxem0wLTQ1OS45MkMxMjYuNjYgMzYuMjkgMjguMjkgMTM0LjY2IDI4LjI5IDI1NlMxMjYuNjYgNDc1LjcxIDI0OCA0NzUuNzEgNDY3LjcxIDM3Ny4zNCA0NjcuNzEgMjU2IDM2OS4zNCAzNi4yOSAyNDggMzYuMjl6bTAgNDMxLjIyYy0xMTYuODEgMC0yMTEuNTEtOTQuNjktMjExLjUxLTIxMS41MVMxMzEuMTkgNDQuNDkgMjQ4IDQ0LjQ5IDQ1OS41MSAxMzkuMTkgNDU5LjUxIDI1NiAzNjQuODEgNDY3LjUxIDI0OCA0NjcuNTF6bTE4Ni4yMy0xNjIuOThhMTkxLjYxMyAxOTEuNjEzIDAgMCAxLTIwLjEzIDQ4LjY5bC03NC4xMy0zNS44OCA2MS40OCA1NC44MmExOTMuNTE1IDE5My41MTUgMCAwIDEtMzcuMiAzNy4yOWwtNTQuOC02MS41NyAzNS44OCA3NC4yN2ExOTAuOTQ0IDE5MC45NDQgMCAwIDEtNDguNjMgMjAuMjNsLTI3LjI5LTc4LjQ3IDQuNzkgODIuOTNjLTguNjEgMS4xOC0xNy40IDEuOC0yNi4zMyAxLjhzLTE3LjcyLS42Mi0yNi4zMy0xLjhsNC43Ni04Mi40Ni0yNy4xNSA3OC4wM2ExOTEuMzY1IDE5MS4zNjUgMCAwIDEtNDguNjUtMjAuMmwzNS45My03NC4zNC01NC44NyA2MS42NGExOTMuODUgMTkzLjg1IDAgMCAxLTM3LjIyLTM3LjI4bDYxLjU5LTU0LjktNzQuMjYgMzUuOTNhMTkxLjYzOCAxOTEuNjM4IDAgMCAxLTIwLjE0LTQ4LjY5bDc3Ljg0LTI3LjExLTgyLjIzIDQuNzZjLTEuMTYtOC41Ny0xLjc4LTE3LjMyLTEuNzgtMjYuMjEgMC05IC42My0xNy44NCAxLjgyLTI2LjUxbDgyLjM4IDQuNzctNzcuOTQtMjcuMTZhMTkxLjcyNiAxOTEuNzI2IDAgMCAxIDIwLjIzLTQ4LjY3bDc0LjIyIDM1LjkyLTYxLjUyLTU0Ljg2YTE5My44NSAxOTMuODUgMCAwIDEgMzcuMjgtMzcuMjJsNTQuNzYgNjEuNTMtMzUuODMtNzQuMTdhMTkxLjQ5IDE5MS40OSAwIDAgMSA0OC42NS0yMC4xM2wyNi44NyA3Ny4yNS00LjcxLTgxLjYxYzguNjEtMS4xOCAxNy4zOS0xLjggMjYuMzItMS44czE3LjcxLjYyIDI2LjMyIDEuOGwtNC43NCA4Mi4xNiAyNy4wNS03Ny43NmMxNy4yNyA0LjUgMzMuNiAxMS4zNSA0OC42MyAyMC4xN2wtMzUuODIgNzQuMTIgNTQuNzItNjEuNDdhMTkzLjEzIDE5My4xMyAwIDAgMSAzNy4yNCAzNy4yM2wtNjEuNDUgNTQuNzcgNzQuMTItMzUuODZhMTkxLjUxNSAxOTEuNTE1IDAgMCAxIDIwLjIgNDguNjVsLTc3LjgxIDI3LjEgODIuMjQtNC43NWMxLjE5IDguNjYgMS44MiAxNy41IDEuODIgMjYuNDkgMCA4Ljg4LS42MSAxNy42My0xLjc4IDI2LjE5bC04Mi4xMi00Ljc1IDc3LjcyIDI3LjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJzdE9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjkgMjI5LjJjLjEtLjEuMi0uMy4zLS40IDAgLjEgMCAuMy0uMS40aC0uMnpNMjI0IDk2LjZjLTcuMSAwLTE0LjYuNi0yMS40IDEuN2wzLjcgNjcuNC0yMi02NGMtMTQuMyAzLjctMjcuNyA5LjQtNDAgMTYuNmwyOS40IDYxLjQtNDUuMS01MC45Yy0xMS40IDguOS0yMS43IDE5LjEtMzAuNiAzMC45bDUwLjYgNDUuNC02MS4xLTI5LjdjLTcuMSAxMi4zLTEyLjkgMjUuNy0xNi42IDQwbDY0LjMgMjIuNi02OC00Yy0uOSA3LjEtMS40IDE0LjYtMS40IDIycy42IDE0LjYgMS40IDIxLjdsNjcuNy00LTY0IDIyLjZjMy43IDE0LjMgOS40IDI3LjcgMTYuNiA0MC4zbDYxLjEtMjkuN0w5Ny43IDM1MmM4LjkgMTEuNyAxOS4xIDIyLjMgMzAuOSAzMC45bDQ0LjktNTAuOS0yOS41IDYxLjRjMTIuMyA3LjQgMjUuNyAxMy4xIDQwIDE2LjlsMjIuMy02NC42LTQgNjhjNy4xIDEuMSAxNC42IDEuNyAyMS43IDEuNyA3LjQgMCAxNC42LS42IDIxLjctMS43bC00LTY4LjYgMjIuNiA2NS4xYzE0LjMtNCAyNy43LTkuNCA0MC0xNi45TDI3NC45IDMzMmw0NC45IDUwLjljMTEuNy04LjkgMjItMTkuMSAzMC42LTMwLjlsLTUwLjYtNDUuMSA2MS4xIDI5LjRjNy4xLTEyLjMgMTIuOS0yNS43IDE2LjYtNDAuM2wtNjQtMjIuMyA2Ny40IDRjMS4xLTcuMSAxLjQtMTQuMyAxLjQtMjEuN3MtLjMtMTQuOS0xLjQtMjJsLTY3LjcgNCA2NC0yMi4zYy0zLjctMTQuMy05LjEtMjgtMTYuNi00MC4zbC02MC45IDI5LjcgNTAuNi00NS40Yy04LjktMTEuNy0xOS4xLTIyLTMwLjYtMzAuOWwtNDUuMSA1MC45IDI5LjQtNjEuMWMtMTIuMy03LjQtMjUuNy0xMy4xLTQwLTE2LjlMMjQxLjcgMTY2bDQtNjcuN2MtNy4xLTEuMi0xNC4zLTEuNy0yMS43LTEuN3pNNDQzLjQgMTI4djI1NkwyMjQgNTEyIDQuNiAzODRWMTI4TDIyNCAwbDIxOS40IDEyOHptLTE3LjEgMTAuM0wyMjQgMjAuOSAyMS43IDEzOC4zdjIzNS4xTDIyNCA0OTEuMWwyMDIuMy0xMTcuN1YxMzguM3pNMjI0IDM3LjFsMTg3LjcgMTA5LjR2MjE4LjlMMjI0IDQ3NC45IDM2LjMgMzY1LjRWMTQ2LjZMMjI0IDM3LjF6bTAgNTAuOWMtOTIuMyAwLTE2Ni45IDc1LjEtMTY2LjkgMTY4IDAgOTIuNiA3NC42IDE2Ny43IDE2Ni45IDE2Ny43IDkyIDAgMTY2LjktNzUuMSAxNjYuOS0xNjcuNyAwLTkyLjktNzQuOS0xNjgtMTY2LjktMTY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJzdGRyYWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxOTJoLTY0djEyOEgxOTJ2MTI4SDB2LTI1LjZoMTY2LjR2LTEyOGgxMjh2LTEyOEgzODRWMTkyem0tMjUuNiAzOC40djEyOGgtMTI4djEyOEg2NFY1MTJoMTkyVjM4NGgxMjhWMjMwLjRoLTI1LjZ6bTI1LjYgMTkyaC04OS42VjUxMkgzMjB2LTY0aDY0di0yNS42ek0wIDB2Mzg0aDEyOFYyNTZoMTI4VjEyOGgxMjhWMEgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGlja3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0LjUgMzE5Yy0zNS4xIDAtNjMuNS0yOC40LTYzLjUtNjMuNXMyOC40LTYzLjUgNjMuNS02My41IDYzLjUgMjguNCA2My41IDYzLjUtMjguNCA2My41LTYzLjUgNjMuNXptMTU5IDBjLTM1LjEgMC02My41LTI4LjQtNjMuNS02My41czI4LjQtNjMuNSA2My41LTYzLjUgNjMuNSAyOC40IDYzLjUgNjMuNS0yOC40IDYzLjUtNjMuNSA2My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTM1OC40IDE3OS4yaC04OS42djg5LjZoLTg5LjZ2ODkuNkg4OS42VjEyMS42aDI2OC44djg5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTcuOCA0MjcuOGMxMi45IDExLjcgMzMuNyAzMy4zIDMzLjIgNTAuNyAwIC44LS4xIDEuNi0uMSAyLjUtMS44IDE5LjgtMTguOCAzMS4xLTM5LjEgMzEtMjUtLjEtMzkuOS0xNi44LTM4LjctMzUuOCAxLTE2LjIgMjAuNS0zNi43IDMyLjQtNDcuNiAyLjMtMi4xIDIuNy0yLjcgNS42LTMuNiAzLjQgMCAzLjkuMyA2LjcgMi44ek0zMzEuOSA2Ny4zYy0xNi4zLTI1LjctMzguNi00MC42LTYzLjMtNTIuMUMyNDMuMSA0LjUgMjE0LS4yIDE5MiAwYy00NC4xIDAtNzEuMiAxMy4yLTgxLjEgMTcuM0M1Ny4zIDQ1LjIgMjYuNSA4Ny4yIDI4IDE1OC42YzcuMSA4Mi4yIDk3IDE3NiAxNTUuOCAyMzMuOCAxLjcgMS42IDQuNSA0LjUgNi4yIDUuMWwzLjMuMWMyLjEtLjcgMS44LS41IDMuNS0yLjEgNTIuMy00OS4yIDE0MC43LTE0NS44IDE1NS45LTIxNS43IDctMzkuMiAzLjEtNzIuNS0yMC44LTExMi41ek0xODYuOCAzNTEuOWMtMjgtNTEuMS02NS4yLTEzMC43LTY5LjMtMTg5LTMuNC00Ny41IDExLjQtMTMxLjIgNjkuMy0xMzYuN3YzMjUuN3pNMzI4LjcgMTgwYy0xNi40IDU2LjgtNzcuMyAxMjgtMTE4LjkgMTcwLjNDMjM3LjYgMjk4LjQgMjc1IDIxNyAyNzcgMTU4LjRjMS42LTQ1LjktOS44LTEwNS44LTQ4LTEzMS40IDg4LjggMTguMyAxMTUuNSA5OC4xIDk5LjcgMTUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250QXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyQzExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgMyAwIDM1MiAwIDY0IDY0IDAgMC02NCAzNzMuNiAwYzE0LjYgMCAyNi40LTExLjggMjYuNC0yNi40YzAtMy43LS44LTcuMy0yLjMtMTAuN0w0MzIgMjcybDYxLjctMTM4LjljMS41LTMuNCAyLjMtNyAyLjMtMTAuN2MwLTE0LjYtMTEuOC0yNi40LTI2LjQtMjYuNEw5MS43IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250aWNvbnNGaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQuNCAyMjRoOTIuNGwtMTUuMiA1MS4yaC03Ni40VjQzM2MwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjZWNDgzSDB2LTM1LjJsMjkuMi0yLjhjNy4yLS44IDkuMi0zLjIgOS4yLTEwLjhWMjc4LjRjMC0zLjItNC0zLjItOC0zLjJIMFYyMjRoMzguNHYtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40bC02OS42IDguNGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNnYzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzSDI0My4ydi0zNC40bDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMFYyODdjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40aDExMHYyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNlY0ODN6bS0zMC0zNDcuMmwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTBoMzhMMzA3LjIgNTFIMzIwbDIxLjIgMzguNGgzOGw0LjggMTMuMi0zMCAzMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250aWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMyem0xODcgMTQwLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNHYyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40aDY3LjRsLTExLjEgMzcuM0gxNjh2MTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMXYyNS4xSDg0VjM4OWwyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOVYyNjcuN2MwLTIuMy0yLjktMi4zLTUuOC0yLjNIODRWMjI4aDI4di0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjh2LTI1LjFsMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM1YyNzEuOGMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41aDgwLjJ2MTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42djI1LjF6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNmgyNy43bDE1LjUtMjhoOS4zbDE1LjUgMjhoMjcuN2wzLjUgOS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J0QXdlc29tZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMjM3LjRoLTIyLjJjLTIuMSAwLTMuNyAxLjYtMy43IDMuN3Y1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN0gyMDhjMi4xIDAgMy43LTEuNiAzLjctMy43di01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMEgzMDRjLTIuMSAwLTMuNyAxLjYtMy43IDMuN3Y1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2gyMi4yYzIuMSAwIDMuNy0xLjYgMy43LTMuN3YtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41QzM3MiAzNC4xIDM0MC4zIDIwIDMwNiAxM2MtMTYuMi0zLjMtMzIuOS01LTUwLTVzLTMzLjkgMS43LTUwIDVjLTM0LjMgNy4xLTY2IDIxLjItOTMuMyA0MC44LTEuNiAxLjEtMy4yIDIuMy00LjggMy41LTQuOCAzLjYtOS40IDcuMy0xMy45IDExLjItMyAyLjYtNS45IDUuMy04LjggOHMtNS43IDUuNS04LjQgOC40Yy01LjUgNS43LTEwLjcgMTEuOC0xNS42IDE4LTIuNCAzLjEtNC44IDYuMy03LjEgOS41QzI1LjIgMTUzIDguMyAyMDIuNSA4LjMgMjU2YzAgMiAuMSA0IC4xIDYgLjEuNy4xIDEuMy4xIDIgLjEgMS4zLjEgMi43LjIgNCAwIC44LjEgMS41LjEgMi4zIDAgMS4zLjEgMi41LjIgMy43LjEuOC4xIDEuNi4yIDIuNC4xIDEuMS4yIDIuMy4zIDMuNSAwIC44LjEgMS42LjIgMi40LjEgMS4yLjMgMi40LjQgMy42LjEuOC4yIDEuNS4zIDIuMy4xIDEuMy4zIDIuNi41IDMuOS4xLjYuMiAxLjMuMyAxLjlsLjkgNS43Yy4xLjYuMiAxLjEuMyAxLjcuMyAxLjMuNSAyLjcuOCA0IC4yLjguMyAxLjYuNSAyLjQuMiAxIC41IDIuMS43IDMuMi4yLjkuNCAxLjcuNiAyLjYuMiAxIC40IDIgLjcgMyAuMi45LjUgMS44LjcgMi43LjMgMSAuNSAxLjkuOCAyLjkuMy45LjUgMS44LjggMi43LjIuOS41IDEuOS44IDIuOHMuNSAxLjguOCAyLjdjLjMgMSAuNiAxLjkuOSAyLjguNiAxLjYgMS4xIDMuMyAxLjcgNC45LjQgMSAuNyAxLjkgMSAyLjguMyAxIC43IDIgMS4xIDMgLjMuOC42IDEuNS45IDIuM2wxLjIgM2MuMy43LjYgMS41LjkgMi4yLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMuNy42IDEuMy45IDIgLjUgMSAxIDIuMSAxLjUgMy4xLjIuNi41IDEuMS44IDEuNy42IDEuMSAxLjEgMi4yIDEuNyAzLjMuMS4yLjIuMy4zLjUgMi4yIDQuMSA0LjQgOC4yIDYuOCAxMi4yLjIuNC41LjguNyAxLjIuNyAxLjEgMS4zIDIuMiAyIDMuMy4zLjUuNi45LjkgMS40LjYgMS4xIDEuMyAyLjEgMiAzLjIuMy41LjYuOS45IDEuNC43IDEuMSAxLjQgMi4xIDIuMSAzLjIuMi40LjUuOC44IDEuMi43IDEuMSAxLjUgMi4yIDIuMyAzLjMuMi4yLjMuNS41LjcgMzcuNSA1MS43IDk0LjQgODguNSAxNjAgOTkuNC45LjEgMS43LjMgMi42LjQgMSAuMiAyLjEuNCAzLjEuNXMxLjkuMyAyLjguNGMxIC4yIDIgLjMgMyAuNC45LjEgMS45LjIgMi45LjNzMS45LjIgMi45LjMgMi4xLjIgMy4xLjNjLjkuMSAxLjguMSAyLjcuMiAxLjEuMSAyLjMuMSAzLjQuMi44IDAgMS43LjEgMi41LjEgMS4zIDAgMi42LjEgMy45LjEuNy4xIDEuNC4xIDIuMS4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xLjggMCAxLjctLjEgMi41LS4xIDEuMS0uMSAyLjMtLjEgMy40LS4yLjkgMCAxLjgtLjEgMi43LS4yIDEtLjEgMi4xLS4yIDMuMS0uM3MxLjktLjIgMi45LS4zYy45LS4xIDEuOS0uMiAyLjktLjNzMi0uMyAzLS40IDEuOS0uMyAyLjgtLjRjMS0uMiAyLjEtLjMgMy4xLS41LjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQuMi0uMi4zLS41LjUtLjcuOC0xLjEgMS41LTIuMiAyLjMtMy4zLjItLjQuNS0uOC44LTEuMi43LTEuMSAxLjQtMi4xIDIuMS0zLjIuMy0uNS42LS45LjktMS40LjYtMS4xIDEuMy0yLjEgMi0zLjIuMy0uNS42LS45LjktMS40LjctMS4xIDEuMy0yLjIgMi0zLjMuMi0uNC41LS44LjctMS4yIDIuNC00IDQuNi04LjEgNi44LTEyLjIuMS0uMi4yLS4zLjMtLjUuNi0xLjEgMS4xLTIuMiAxLjctMy4zLjItLjYuNS0xLjEuOC0xLjcuNS0xIDEtMi4xIDEuNS0zLjEuMy0uNy42LTEuMy45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNy42LTEuNS45LTIuMmwxLjItM2MuMy0uOC42LTEuNS45LTIuMy40LTEgLjctMiAxLjEtM3MuNy0xLjkgMS0yLjhjLjYtMS42IDEuMi0zLjMgMS43LTQuOS4zLTEgLjYtMS45LjktMi44cy41LTEuOC44LTIuN2MuMi0uOS41LTEuOS44LTIuOHMuNi0xLjguOC0yLjdjLjMtMSAuNS0xLjkuOC0yLjkuMi0uOS41LTEuOC43LTIuNy4yLTEgLjUtMiAuNy0zIC4yLS45LjQtMS43LjYtMi42LjItMSAuNS0yLjEuNy0zLjIuMi0uOC4zLTEuNi41LTIuNC4zLTEuMy42LTIuNy44LTQgLjEtLjYuMi0xLjEuMy0xLjdsLjktNS43Yy4xLS42LjItMS4zLjMtMS45LjEtMS4zLjMtMi42LjUtMy45LjEtLjguMi0xLjUuMy0yLjMuMS0xLjIuMy0yLjQuNC0zLjYgMC0uOC4xLTEuNi4yLTIuNC4xLTEuMS4yLTIuMy4zLTMuNS4xLS44LjEtMS42LjItMi40LjEgMS43LjEuNS4yLS43IDAtLjguMS0xLjUuMS0yLjMuMS0xLjMuMi0yLjcuMi00IC4xLS43LjEtMS4zLjEtMiAuMS0yIC4xLTQgLjEtNiAwLTUzLjUtMTYuOS0xMDMtNDUuOC0xNDMuN3pNNDQ4IDM3MS41Yy05LjQgMTUuNS0yMC42IDI5LjktMzMuNiA0Mi45LTIwLjYgMjAuNi00NC41IDM2LjctNzEuMiA0OC0xMy45IDUuOC0yOC4yIDEwLjMtNDIuOSAxMy4ydi03NS44YzAtNTguNi04OC42LTU4LjYtODguNiAwdjc1LjhjLTE0LjctMi45LTI5LTcuMy00Mi45LTEzLjItMjYuNy0xMS4zLTUwLjYtMjcuNC03MS4yLTQ4LTEzLTEzLTI0LjItMjcuNC0zMy42LTQyLjl2LTcxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjFjMi4xIDAgMy43IDEuNiAzLjcgMy43VjMyNmgyOS42VjE4MmMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMWMyLjEgMCAzLjcgMS42IDMuNyAzLjd2MjUuOWgyOS41VjE4MmMwLTIuMSAxLjYtMy43IDMuNy0zLjdIMjA4YzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtNC44IDYuNS0zLjcgOS41LTMuN1Y4OC4xYy00LjQtMi03LjQtNi43LTcuNC0xMS41IDAtMTYuOCAyNS40LTE2LjggMjUuNCAwIDAgNC44LTMgOS40LTcuNCAxMS41VjkyYzYuMy0xLjQgMTIuNy0yLjMgMTkuMi0yLjMgOS40IDAgMTguNCAzLjUgMjYuMyAzLjUgNy4yIDAgMTUuMi0zLjUgMTkuNC0zLjUgMi4xIDAgMy43IDEuNiAzLjcgMy43djQ4LjRjMCA1LjYtMTguNyA2LjUtMjIuNCA2LjUtOC42IDAtMTYuNi0zLjUtMjUuNC0zLjUtNyAwLTE0LjEgMS4yLTIwLjggMi44djMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4yYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4xYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YxNDRoMjkuNXYtMjUuOGMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMmMyLjEgMCAzLjcgMS42IDMuNyAzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OS4yIDI4Ny45aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMyaC0zNi42VjE0Ni4yYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZ2LTMyYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZ2LTMyYzAtNi04LTQuNi0xMS43LTQuNnYtMzhjOC4zLTIgMTcuMS0zLjQgMjUuNy0zLjQgMTAuOSAwIDIwLjkgNC4zIDMxLjQgNC4zIDQuNiAwIDI3LjctMS4xIDI3LjctOHYtNjBjMC0yLjYtMi00LjYtNC42LTQuNi01LjEgMC0xNS4xIDQuMy0yNCA0LjMtOS43IDAtMjAuOS00LjMtMzIuNi00LjMtOCAwLTE2IDEuMS0yMy43IDIuOXYtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjN2MTExLjdjLTMuNyAwLTExLjctMS40LTExLjcgNC42djMyaC0zNi42di0zMmMwLTIuNi0yLTQuNi00LjYtNC42aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMySDEyOHYtMzJjMC0yLjYtMi00LjYtNC42LTQuNkg5NmMtMi42IDAtNC42IDItNC42IDQuNnYxNzguM0g1NC44di0zMmMwLTIuNi0yLTQuNi00LjYtNC42SDIyLjhjLTIuNiAwLTQuNiAyLTQuNiA0LjZWNTEyaDE4Mi45di05NmMwLTcyLjYgMTA5LjctNzIuNiAxMDkuNyAwdjk2aDE4Mi45VjI5Mi41Yy4xLTIuNi0xLjktNC42LTQuNS00LjZ6bS0yODguMS00LjVjMCAyLjYtMiA0LjYtNC42IDQuNmgtMjcuNGMtMi42IDAtNC42LTItNC42LTQuNnYtNjRjMC0yLjYgMi00LjYgNC42LTQuNmgyNy40YzIuNiAwIDQuNiAyIDQuNiA0LjZ2NjR6bTE0Ni40IDBjMCAyLjYtMiA0LjYtNC42IDQuNmgtMjcuNGMtMi42IDAtNC42LTItNC42LTQuNnYtNjRjMC0yLjYgMi00LjYgNC42LTQuNmgyNy40YzIuNiAwIDQuNiAyIDQuNiA0LjZ2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnVtYmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOCAzMDkuN0MyIDI5Mi43IDAgMjc1LjUgMCAyNTguMyAwIDEzNSA5OS44IDM1IDIyMy4xIDM1YzE2LjYgMCAzMy4zIDIgNDkuMyA1LjVDMTQ5IDg3LjUgNTEuOSAxODYgNS44IDMwOS43em0zOTIuOS0xODkuMkMzODUgMTAzIDM2OSA4Ny44IDM1MC45IDc1LjJjLTE0OS42IDQ0LjMtMjY2LjMgMTYyLjEtMzA5LjcgMzEyIDEyLjUgMTguMSAyOCAzNS42IDQ1LjIgNDkgNDMuMS0xNTEuMyAxNjEuMi0yNzEuNyAzMTIuMy0zMTUuN3ptMTUuOCAyNTIuN2MxNS4yLTI1LjEgMjUuNC01My43IDI5LjUtODIuOC03OS40IDQyLjktMTQ1IDExMC42LTE4Ny42IDE5MC4zIDMwLTQuNCA1OC45LTE1LjMgODQuNi0zMS4zIDM1IDEzLjEgNzAuOSAyNC4zIDEwNyAzMy42LTkuMy0zNi41LTIwLjQtNzQuNS0zMy41LTEwOS44em0yOS43LTE0NS41Yy0yLjYtMTkuNS03LjktMzguNy0xNS44LTU2LjhDMjkwLjUgMjE2LjcgMTgyIDMyNy41IDEzNy4xIDQ2NmMxOC4xIDcuNiAzNyAxMi41IDU2LjYgMTUuMkMyNDAgMzY3LjEgMzMwLjUgMjc0LjQgNDQ0LjIgMjI3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvdXJzcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM2OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjEgM0g0OS45QzEyLjQgMyAwIDMxLjMgMCA0OS4xdjQzMy44YzAgMjAuMyAxMi4xIDI3LjcgMTguMiAzMC4xIDYuMiAyLjUgMjIuOCA0LjYgMzIuOS03LjFDMTgwIDM1Ni41IDE4Mi4yIDM1NCAxODIuMiAzNTRjMy4xLTMuNCAzLjQtMy4xIDYuOC0zLjFoODMuNGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzNzMuOCAyNS44IDM2My4xIDMgMzIzLjEgM3ptLTE2LjMgNzMuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMkgxNzIuMWMtMTIgMC0yMC42IDguMy0yMC42IDIwLjN2MTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZoOTAuNGM4LjMgMCAxNi42IDkuMiAxNC44IDE4LjItMS44IDguOS0xMC41IDUzLjgtMTEuNCA1OC44LS45IDQuOS02LjggMTMuNS0xNi45IDEzLjVoLTczLjVjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkuOS0xLjguNi0xLjgtLjNWNzUuOWMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZoMjE5YzguMiAwIDE1LjYgNy43IDEzLjUgMTcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJlZUNvZGVDYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk3LjIyLDk2LjIxYzEwLjM2LTEwLjY1LDE2LTE3LjEyLDE2LTIxLjksMC0yLjc2LTEuOTItNS41MS0zLjgzLTcuNDJBMTQuODEsMTQuODEsMCwwLDAsMTAxLDY0LjA1Yy04LjQ4LDAtMjAuOTIsOC43OS0zNS44NCwyNS42OUMyMy42OCwxMzcsMi41MSwxODIuODEsMy4zNywyNTAuMzRzMTcuNDcsMTE3LDU0LjA2LDE2MS44N0M3Ni4yMiw0MzUuODYsOTAuNjIsNDQ4LDEwMC45LDQ0OGExMy41NSwxMy41NSwwLDAsMCw4LjM3LTMuODRjMS45MS0yLjc2LDMuODEtNS42MywzLjgxLTguMzgsMC01LjYzLTMuODYtMTIuMi0xMy4yLTIwLjU1LTQ0LjQ1LTQyLjMzLTY3LjMyLTk3LTY3LjQ4LTE2NUMzMi4yNSwxODguOCw1NCwxMzcuODMsOTcuMjIsOTYuMjFaTTIzOS40Nyw0MjAuMDdjLjU4LjM3LjkxLjU1LjkxLjU1Wm05My43OS41NS4xNy0uMTNDMzMzLjI0LDQyMC42MiwzMzMuMTcsNDIwLjY3LDMzMy4yNiw0MjAuNjJabTMuMTMtMTU4LjE4Yy0xNi4yNC00LjE1LDUwLjQxLTgyLjg5LTY4LjA1LTE3Ny4xNywwLDAsMTUuNTQsNDkuMzgtNjIuODMsMTU5LjU3LTc0LjI3LDEwNC4zNSwyMy40NiwxNjguNzMsMzQsMTc1LjIzLTYuNzMtNC4zNS00Ny40LTM1LjcsOS41NS0xMjguNjQsMTEtMTguMywyNS41My0zNC44Nyw0My41LTcyLjE2LDAsMCwxNS45MSwyMi40NSw3LjYsNzEuMTNDMjg3LjcsMzY0LDM1NCwzNDIuOTEsMzU1LDM0My45NGMyMi43NSwyNi43OC0xNy43Miw3My41MS0yMS41OCw3Ni41NSw1LjQ5LTMuNjUsMTE3LjcxLTc4LDMzLTE4OC4xQzM2MC40MywyMzguNCwzNTIuNjIsMjY2LjU5LDMzNi4zOSwyNjIuNDRaTTUxMC44OCw4OS42OUM0OTYsNzIuNzksNDgzLjUyLDY0LDQ3NSw2NGExNC44MSwxNC44MSwwLDAsMC04LjM5LDIuODRjLTEuOTEsMS45MS0zLjgzLDQuNjYtMy44Myw3LjQyLDAsNC43OCw1LjYsMTEuMjYsMTYsMjEuOSw0My4yMyw0MS42MSw2NSw5Mi41OSw2NC44MiwxNTQuMDYtLjE2LDY4LTIzLDEyMi42My02Ny40OCwxNjUtOS4zNCw4LjM1LTEzLjE4LDE0LjkyLTEzLjIsMjAuNTUsMCwyLjc1LDEuOSw1LjYyLDMuODEsOC4zOEExMy42MSwxMy42MSwwLDAsMCw0NzUuMSw0NDhjMTAuMjgsMCwyNC42OC0xMi4xMyw0My40Ny0zNS43OSwzNi41OS00NC44NSw1My4xNC05NC4zOCw1NC4wNi0xNjEuODdTNTUyLjMyLDEzNyw1MTAuODgsODkuNjlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyZWVic2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4yLTExLjEgMTEuMS0zOS40LjktNjMuMS0yMi45LTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMWMtMTYuNiAxNi42IDcuMSA2OS40IDI3LjkgMTA1LjcgMTguNS0zMi4yIDQ0LjgtNTkuMyA3Ni40LTc4Ljd6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnVsY3J1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NS43NSAxNjQuMTRsLTM1LjM4IDQzLjU1TDI1IDE2NC4xNGwzNS4zOC00My41NXpNMTQ0LjIzIDBsLTIwLjU0IDE5OC4xOEw3Mi43MiAyNTZsNTEgNTcuODJMMTQ0LjIzIDUxMlYzMDAuODlMMTAzLjE1IDI1Nmw0MS4wOC00NC44OXptNzkuNjcgMTY0LjE0bDM1LjM4IDQzLjU1IDM1LjM4LTQzLjU1LTM1LjM4LTQzLjU1em0tNDguNDggNDdMMjE2LjUgMjU2bC00MS4wOCA0NC44OVY1MTJMMTk2IDMxMy44MiAyNDcgMjU2bC01MS01Ny44MkwxNzUuNDIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FsYWN0aWNSZXB1YmxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNTA0QzExMS4yNSA1MDQgMCAzOTIuNzUgMCAyNTZTMTExLjI1IDggMjQ4IDhzMjQ4IDExMS4yNSAyNDggMjQ4LTExMS4yNSAyNDgtMjQ4IDI0OHptMC00NzkuNDdDMTIwLjM3IDI0LjUzIDE2LjUzIDEyOC4zNyAxNi41MyAyNTZTMTIwLjM3IDQ4Ny40NyAyNDggNDg3LjQ3IDQ3OS40NyAzODMuNjMgNDc5LjQ3IDI1NiAzNzUuNjMgMjQuNTMgMjQ4IDI0LjUzem0yNy42MiAyMS44MXYyNC42MmExODUuOTMzIDE4NS45MzMgMCAwIDEgODMuNTcgMzQuNTRsMTcuMzktMTcuMzZjLTI4Ljc1LTIyLjA2LTYzLjMtMzYuODktMTAwLjk2LTQxLjh6bS01NS4zNy4wN2MtMzcuNjQgNC45NC03Mi4xNiAxOS44LTEwMC44OCA0MS44NWwxNy4yOCAxNy4zNmguMDhjMjQuMDctMTcuODQgNTIuNTUtMzAuMDYgODMuNTItMzQuNjdWNDYuNDF6bTEyLjI1IDUwLjE3djgyLjg3Yy0xMC4wNCAyLjAzLTE5LjQyIDUuOTQtMjcuNjcgMTEuNDJsLTU4LjYyLTU4LjU5LTIxLjkzIDIxLjkzIDU4LjY3IDU4LjY3Yy01LjQ3IDguMjMtOS40NSAxNy41OS0xMS40NyAyNy42MmgtODIuOXYzMWg4Mi45YzIuMDIgMTAuMDIgNi4wMSAxOS4zMSAxMS40NyAyNy41NGwtNTguNjcgNTguNjkgMjEuOTMgMjEuOTMgNTguNjItNTguNjJhNzcuODczIDc3Ljg3MyAwIDAgMCAyNy42NyAxMS40N3Y4Mi45aDMxdi04Mi45YzEwLjA1LTIuMDMgMTkuMzctNi4wNiAyNy42Mi0xMS41NWw1OC42NyA1OC42OSAyMS45My0yMS45My01OC42Ny01OC42OWM1LjQ2LTguMjMgOS40Ny0xNy41MiAxMS41LTI3LjU0aDgyLjg3di0zMWgtODIuODdjLTIuMDItMTAuMDItNi4wMy0xOS4zOC0xMS41LTI3LjYybDU4LjY3LTU4LjY3LTIxLjkzLTIxLjkzLTU4LjY3IDU4LjY3Yy04LjI1LTUuNDktMTcuNTctOS40Ny0yNy42Mi0xMS41Vjk2LjU4aC0zMXptMTgzLjI0IDMwLjcybC0xNy4zNiAxNy4zNmExODYuMzM3IDE4Ni4zMzcgMCAwIDEgMzQuNjcgODMuNjdoMjQuNjJjLTQuOTUtMzcuNjktMTkuODMtNzIuMjktNDEuOTMtMTAxLjAzem0tMzM1LjU1LjEzYy0yMi4wNiAyOC43Mi0zNi45MSA2My4yNi00MS44NSAxMDAuOTFoMjQuNjVjNC42LTMwLjk2IDE2Ljc2LTU5LjQ1IDM0LjU5LTgzLjUybC0xNy4zOS0xNy4zOXpNMzguMzQgMjgzLjY3YzQuOTIgMzcuNjQgMTkuNzUgNzIuMTggNDEuOCAxMDAuOWwxNy4zNi0xNy4zOWMtMTcuODEtMjQuMDctMjkuOTItNTIuNTctMzQuNTEtODMuNTJIMzguMzR6bTM5NC43IDBjLTQuNjEgMzAuOTktMTYuOCA1OS41LTM0LjY3IDgzLjZsMTcuMzYgMTcuMzZjMjIuMDgtMjguNzQgMzYuOTgtNjMuMjkgNDEuOTMtMTAwLjk2aC0yNC42MnpNMTM2LjY2IDQwNi4zOGwtMTcuMzYgMTcuMzZjMjguNzMgMjIuMDkgNjMuMyAzNi45OCAxMDAuOTYgNDEuOTN2LTI0LjY0Yy0zMC45OS00LjYzLTU5LjUzLTE2Ljc5LTgzLjYtMzQuNjV6bTIyMi41My4wNWMtMjQuMDkgMTcuODQtNTIuNTggMzAuMDgtODMuNTcgMzQuNjd2MjQuNTdjMzcuNjctNC45MiA3Mi4yMS0xOS43OSAxMDAuOTYtNDEuODVsLTE3LjMxLTE3LjM5aC0uMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhbGFjdGljU2VuYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OS44NiAzMy40OHYyNi4wN0MyMzYuMjggODAuMTcgMjI2IDE2OC4xNCAyMjUuMzkgMjc0LjljMTEuNzQtMTUuNjIgMTkuMTMtMzMuMzMgMTkuMTMtNDguMjR2LTE2Ljg4Yy0uMDMtNS4zMi43NS0xMC41MyAyLjE5LTE1LjY1LjY1LTIuMTQgMS4zOS00LjA4IDIuNjItNS44MiAxLjIzLTEuNzUgMy40My0zLjc5IDYuNjgtMy43OSAzLjI0IDAgNS40NSAyLjA1IDYuNjggMy43OSAxLjIzIDEuNzUgMS45NyAzLjY4IDIuNjIgNS44MiAxLjQ0IDUuMTIgMi4yMiAxMC4zMyAyLjE5IDE1LjY1djE2Ljg4YzAgMTQuOTEgNy4zOSAzMi42MiAxOS4xMyA0OC4yNC0uNjMtMTA2Ljc2LTEwLjkxLTE5NC43My0yNC40OS0yMTUuMzVWMzMuNDhoLTEyLjI4em0tMjYuMzQgMTQ3Ljc3Yy05LjUyIDIuMTUtMTguNyA1LjE5LTI3LjQ2IDkuMDggOC45IDE2LjEyIDkuNzYgMzIuNjQgMS43MSAzNy4yOS04IDQuNjItMjEuODUtNC4yMy0zMS4zNi0xOS44Mi0xMS41OCA4Ljc5LTIxLjg4IDE5LjMyLTMwLjU2IDMxLjA5IDE0LjczIDkuNjIgMjIuODkgMjIuOTIgMTguMzIgMzAuNjYtNC41NCA3LjctMjAuMDMgNy4xNC0zNS40Ny0uOTYtNS43OCAxMy4yNS05Ljc1IDI3LjUxLTExLjY1IDQyLjQyIDkuNjguMTggMTguNjcgMi4zOCAyNi4xOCA2LjA0IDE3Ljc4LS4zIDMyLjc3LTEuOTYgNDAuNDktNC4yMiA1LjU1LTI2LjM1IDIzLjAyLTQ4LjIzIDQ2LjMyLTU5LjUxLjczLTI1LjU1IDEuODgtNDkuNjcgMy40OC03Mi4wN3ptNjQuOTYgMGMxLjU5IDIyLjQgMi43NSA0Ni41MiAzLjQ3IDcyLjA3IDIzLjI5IDExLjI4IDQwLjc3IDMzLjE2IDQ2LjMyIDU5LjUxIDcuNzIgMi4yNiAyMi43MSAzLjkyIDQwLjQ5IDQuMjIgNy41MS0zLjY2IDE2LjUtNS44NSAyNi4xOC02LjA0LTEuOS0xNC45MS01Ljg2LTI5LjE3LTExLjY1LTQyLjQyLTE1LjQ0IDguMS0zMC45MyA4LjY2LTM1LjQ3Ljk2LTQuNTctNy43NCAzLjYtMjEuMDUgMTguMzItMzAuNjYtOC42OC0xMS43Ny0xOC45OC0yMi4zLTMwLjU2LTMxLjA5LTkuNTEgMTUuNTktMjMuMzYgMjQuNDQtMzEuMzYgMTkuODItOC4wNS00LjY1LTcuMTktMjEuMTYgMS43MS0zNy4yOWExNDcuNDkgMTQ3LjQ5IDAgMCAwLTI3LjQ1LTkuMDh6bS0zMi40OCA4LjZjLTMuMjMgMC01Ljg2IDguODEtNi4wOSAxOS45M2gtLjA1djE2Ljg4YzAgNDEuNDItNDkuMDEgOTUuMDQtOTMuNDkgOTUuMDQtNTIgMC0xMjIuNzUtMS40NS0xNTYuMzcgMjkuMTd2Mi41MWM5LjQyIDE3LjEyIDIwLjU4IDMzLjE3IDMzLjE4IDQ3Ljk3QzQ1LjcgMzgwLjI2IDg0Ljc3IDM2MC40IDE0MS4yIDM2MGM0NS42OCAxLjAyIDc5LjAzIDIwLjMzIDkwLjc2IDQwLjg3LjAxLjAxLS4wMS4wNCAwIC4wNSA3LjY3IDIuMTQgMTUuODUgMy4yMyAyNC4wNCAzLjIxIDguMTkuMDIgMTYuMzctMS4wNyAyNC4wNC0zLjIxLjAxLS4wMS0uMDEtLjA0IDAtLjA1IDExLjc0LTIwLjU0IDQ1LjA4LTM5Ljg1IDkwLjc2LTQwLjg3IDU2LjQzLjM5IDk1LjQ5IDIwLjI2IDEwOC4wMiA0MS4zNSAxMi42LTE0LjggMjMuNzYtMzAuODYgMzMuMTgtNDcuOTd2LTIuNTFjLTMzLjYxLTMwLjYyLTEwNC4zNy0yOS4xNy0xNTYuMzctMjkuMTctNDQuNDggMC05My40OS01My42Mi05My40OS05NS4wNHYtMTYuODhoLS4wNWMtLjIzLTExLjEyLTIuODYtMTkuOTMtNi4wOS0xOS45M3ptMCA5Ni41OWMyMi40MiAwIDQwLjYgMTguMTggNDAuNiA0MC42cy0xOC4xOCA0MC42NS00MC42IDQwLjY1LTQwLjYtMTguMjMtNDAuNi00MC42NWMwLTIyLjQyIDE4LjE4LTQwLjYgNDAuNi00MC42em0wIDcuNjRjLTE4LjE5IDAtMzIuOTYgMTQuNzctMzIuOTYgMzIuOTZTMjM3LjgxIDM2MCAyNTYgMzYwczMyLjk2LTE0Ljc3IDMyLjk2LTMyLjk2LTE0Ljc3LTMyLjk2LTMyLjk2LTMyLjk2em0wIDYuMTRjMTQuODEgMCAyNi44MiAxMi4wMSAyNi44MiAyNi44MnMtMTIuMDEgMjYuODItMjYuODIgMjYuODItMjYuODItMTIuMDEtMjYuODItMjYuODIgMTIuMDEtMjYuODIgMjYuODItMjYuODJ6bS0xMTQuOCA2Ni42N2MtMTAuMTkuMDctMjEuNi4zNi0zMC41IDEuNjYuNDMgNC40MiAxLjUxIDE4LjYzIDcuMTEgMjkuNzYgOS4xMS0yLjU2IDE4LjM2LTMuOSAyNy42Mi0zLjkgNDEuMjguOTQgNzEuNDggMzQuMzUgNzguMjYgNzQuNDdsLjExIDQuN2MxMC40IDEuOTEgMjEuMTkgMi45NCAzMi4yMSAyLjk0IDExLjAzIDAgMjEuODEtMS4wMiAzMi4yMS0yLjk0bC4xMS00LjdjNi43OC00MC4xMiAzNi45OC03My41MyA3OC4yNi03NC40NyA5LjI2IDAgMTguNTEgMS4zNCAyNy42MiAzLjkgNS42LTExLjEzIDYuNjgtMjUuMzQgNy4xMS0yOS43Ni04LjktMS4zLTIwLjMyLTEuNTgtMzAuNS0xLjY2LTE4Ljc2LjQyLTM1LjE5IDQuMTctNDguNjEgOS42Ny0xMi41NCAxNi4wMy0yOS4xNiAzMC4wMy00OS41OCAzMy4wNy0uMDkuMDItLjE3LjA0LS4yNy4wNS0uMDUuMDEtLjExLjA0LS4xNi4wNS01LjI0IDEuMDctMTAuNjMgMS42LTE2LjE5IDEuNi01LjU1IDAtMTAuOTUtLjUzLTE2LjE5LTEuNi0uMDUtLjAxLS4xMS0uMDQtLjE2LS4wNS0uMS0uMDItLjE3LS4wNC0uMjctLjA1LTIwLjQyLTMuMDMtMzcuMDMtMTcuMDQtNDkuNTgtMzMuMDctMTMuNDItNS40OS0yOS44Ni05LjI1LTQ4LjYxLTkuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdldFBvY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcuNiA2NGgtMzY3QzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZ2MTM1LjJDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjRjMTI0IDAgMjIzLjgtOTkuNSAyMjMuOC0yMjQuMlYxMDQuNmMwLTIyLjQtMTcuNy00MC42LTQwLjQtNDAuNnptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDBDODkuNSAyMjMuNiA4OC4zIDIyNy40IDg4LjMgMjA5LjNjMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuMyAxNi45IDAgMzAuNyAxMy44IDMwLjcgMzAuNyAwIDE3LjgtMi45IDE1LjctMTE0LjggMTIzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdnQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NyA4QzEyMCA4IDkgMTE5IDkgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzk0IDggMjU3IDh6bS00OS41IDM3NC44TDgxLjggMjU3LjFsMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NUw0MzIuMiAyNTUgMzA2LjUgMzgwLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40TDAgMjU2IDE3OS4yIDc2LjhsNDQuOCA0NC44LTI1LjYgMjUuNi0xOS4yLTE5LjItMTI4IDEyOCAxMjggMTI4IDUxLjUtNTEuNS03Ny4xLTc2LjUgMjUuNi0yNS42ek0zMzIuOCA3Ni44TDIzMC40IDE3OS4ybDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOEw1MTIgMjU2IDMzMi44IDc2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzkuNTUgMjM2LjA1TDI0NCA0MC40NWEyOC44NyAyOC44NyAwIDAgMC00MC44MSAwbC00MC42NiA0MC42MyA1MS41MiA1MS41MmMyNy4wNi05LjE0IDUyLjY4IDE2Ljc3IDQzLjM5IDQzLjY4bDQ5LjY2IDQ5LjY2YzM0LjIzLTExLjggNjEuMTggMzEgMzUuNDcgNTYuNjktMjYuNDkgMjYuNDktNzAuMjEtMi44Ny01Ni0zNy4zNEwyNDAuMjIgMTk5djEyMS44NWMyNS4zIDEyLjU0IDIyLjI2IDQxLjg1IDkuMDggNTVhMzQuMzQgMzQuMzQgMCAwIDEtNDguNTUgMGMtMTcuNTctMTcuNi0xMS4wNy00Ni45MSAxMS4yNS01NnYtMTIzYy0yMC44LTguNTEtMjQuNi0zMC43NC0xOC42NC00NUwxNDIuNTcgMTAxIDguNDUgMjM1LjE0YTI4Ljg2IDI4Ljg2IDAgMCAwIDAgNDAuODFsMTk1LjYxIDE5NS42YTI4Ljg2IDI4Ljg2IDAgMCAwIDQwLjggMGwxOTQuNjktMTk0LjY5YTI4Ljg2IDI4Ljg2IDAgMCAwIDAtNDAuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYuMjkgMTU4LjM5SDEzN0M5NyAxNDcuOSA2LjUxIDE1MC42MyA2LjUxIDIzMy4xOGMwIDMwLjA5IDE1IDUxLjIzIDM1IDYxLTI1LjEgMjMtMzcgMzMuODUtMzcgNDkuMjEgMCAxMSA0LjQ3IDIxLjE0IDE3Ljg5IDI2LjgxQzguMTMgMzgzLjYxIDAgMzkzLjM1IDAgNDExLjY1YzAgMzIuMTEgMjguMDUgNTAuODIgMTAxLjYzIDUwLjgyIDcwLjc1IDAgMTExLjc5LTI2LjQyIDExMS43OS03My4xOCAwLTU4LjY2LTQ1LjE2LTU2LjUtMTUxLjYzLTYzbDEzLjQzLTIxLjU1YzI3LjI3IDcuNTggMTE4LjcgMTAgMTE4LjctNjcuODkgMC0xOC43LTcuNzMtMzEuNzEtMTUtNDEuMDdsMzcuNDEtMi44NHptLTYzLjQyIDI0MS45YzAgMzIuMDYtMTA0Ljg5IDMyLjEtMTA0Ljg5IDIuNDMgMC04LjE0IDUuMjctMTUgMTAuNTctMjEuNTQgNzcuNzEgNS4zIDk0LjMyIDMuMzcgOTQuMzIgMTkuMTF6bS01MC44MS0xMzQuNThjLTUyLjggMC01MC40Ni03MS4xNiAxLjItNzEuMTYgNDkuNTQgMCA1MC44MiA3MS4xNi0xLjIgNzEuMTZ6bTEzMy4zIDEwMC41MXYtMzIuMWMyNi43NS0zLjY2IDI3LjI0LTIgMjcuMjQtMTFWMjAzLjYxYzAtOC41LTIuMDUtNy4zOC0yNy4yNC0xNi4yNmw0LjQ3LTMyLjkySDMyNHYxNjguNzFjMCA2LjUxLjQgNy4zMiA2LjUxIDguMTRsMjAuNzMgMi44NHYzMi4xem01Mi40NS0yNDQuMzFjLTIzLjE3IDAtMzYuNTktMTMuNDMtMzYuNTktMzYuNjFzMTMuNDItMzUuNzcgMzYuNTktMzUuNzdjMjMuNTggMCAzNyAxMi42MiAzNyAzNS43N3MtMTMuNDIgMzYuNjEtMzcgMzYuNjF6TTUxMiAzNTAuNDZjLTE3LjQ5IDguNTMtNDMuMSAxNi4yNi02Ni4yOCAxNi4yNi00OC4zOCAwLTY2LjY3LTE5LjUtNjYuNjctNjUuNDZWMTk0Ljc1YzAtNS40MiAxLjA1LTQuMDYtMzEuNzEtNC4wNlYxNTQuNWMzNS43OC00LjA3IDUwLTIyIDU0LjQ3LTY2LjI3aDM4LjYzYzAgNjUuODMtMS4zNCA2MS44MSAzLjI2IDYxLjgxSDUwMXY0MC42NWgtNjAuNTZ2OTcuMTVjMCA2LjkyLTQuOTIgNTEuNDEgNjAuNTcgMjYuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGh1YkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ4MCAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNoNDguMmM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGh1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUuOSAzOTcuNGMwIDItMi4zIDMuNi01LjIgMy42LTMuMy4zLTUuNi0xLjMtNS42LTMuNiAwLTIgMi4zLTMuNiA1LjItMy42IDMtLjMgNS42IDEuMyA1LjYgMy42em0tMzEuMS00LjVjLS43IDIgMS4zIDQuMyA0LjMgNC45IDIuNiAxIDUuNiAwIDYuMi0ycy0xLjMtNC4zLTQuMy01LjJjLTIuNi0uNy01LjUuMy02LjIgMi4zem00NC4yLTEuN2MtMi45LjctNC45IDIuNi00LjYgNC45LjMgMiAyLjkgMy4zIDUuOSAyLjYgMi45LS43IDQuOS0yLjYgNC42LTQuNi0uMy0xLjktMy0zLjItNS45LTIuOXpNMjQ0LjggOEMxMDYuMSA4IDAgMTEzLjMgMCAyNTJjMCAxMTAuOSA2OS44IDIwNS44IDE2OS41IDIzOS4yIDEyLjggMi4zIDE3LjMtNS42IDE3LjMtMTIuMSAwLTYuMi0uMy00MC40LS4zLTYxLjQgMCAwLTcwIDE1LTg0LjctMjkuOCAwIDAtMTEuNC0yOS4xLTI3LjgtMzYuNiAwIDAtMjIuOS0xNS43IDEuNi0xNS40IDAgMCAyNC45IDIgMzguNiAyNS44IDIxLjkgMzguNiA1OC42IDI3LjUgNzIuOSAyMC45IDIuMy0xNiA4LjgtMjcuMSAxNi0zMy43LTU1LjktNi4yLTExMi4zLTE0LjMtMTEyLjMtMTEwLjUgMC0yNy41IDcuNi00MS4zIDIzLjYtNTguOS0yLjYtNi41LTExLjEtMzMuMyAyLjYtNjcuOSAyMC45LTYuNSA2OSAyNyA2OSAyNyAyMC01LjYgNDEuNS04LjUgNjIuOC04LjVzNDIuOCAyLjkgNjIuOCA4LjVjMCAwIDQ4LjEtMzMuNiA2OS0yNyAxMy43IDM0LjcgNS4yIDYxLjQgMi42IDY3LjkgMTYgMTcuNyAyNS44IDMxLjUgMjUuOCA1OC45IDAgOTYuNS01OC45IDEwNC4yLTExNC44IDExMC41IDkuMiA3LjkgMTcgMjIuOSAxNyA0Ni40IDAgMzMuNy0uMyA3NS40LS4zIDgzLjYgMCA2LjUgNC42IDE0LjQgMTcuMyAxMi4xQzQyOC4yIDQ1Ny44IDQ5NiAzNjIuOSA0OTYgMjUyIDQ5NiAxMTMuMyAzODMuNSA4IDI0NC44IDh6TTk3LjIgMzUyLjljLTEuMyAxLTEgMy4zLjcgNS4yIDEuNiAxLjYgMy45IDIuMyA1LjIgMSAxLjMtMSAxLTMuMy0uNy01LjItMS42LTEuNi0zLjktMi4zLTUuMi0xem0tMTAuOC04LjFjLS43IDEuMy4zIDIuOSAyLjMgMy45IDEuNiAxIDMuNi43IDQuMy0uNy43LTEuMy0uMy0yLjktMi4zLTMuOS0yLS42LTMuNi0uMy00LjMuN3ptMzIuNCAzNS42Yy0xLjYgMS4zLTEgNC4zIDEuMyA2LjIgMi4zIDIuMyA1LjIgMi42IDYuNSAxIDEuMy0xLjMuNy00LjMtMS4zLTYuMi0yLjItMi4zLTUuMi0yLjYtNi41LTF6bS0xMS40LTE0LjdjLTEuNiAxLTEuNiAzLjYgMCA1LjkgMS42IDIuMyA0LjMgMy4zIDUuNiAyLjMgMS42LTEuMyAxLjYtMy45IDAtNi4yLTEuNC0yLjMtNC0zLjMtNS42LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGtyYWtlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjUuNyAxMTguMWMtMi4zLTYuMS05LjMtOS4yLTE1LjMtNi42LTUuNyAyLjQtOC41IDguOS02LjMgMTQuNiAxMC45IDI5IDE2LjkgNjAuNSAxNi45IDkzLjMgMCAxMzQuNi0xMDAuMyAyNDUuNy0yMzAuMiAyNjIuN1YzNTguNGM3LjktMS41IDE1LjUtMy42IDIzLTYuMnYxMDRjMTA2LjctMjUuOSAxODUuOS0xMjIuMSAxODUuOS0yMzYuOCAwLTkxLjgtNTAuOC0xNzEuOC0xMjUuOC0yMTMuMy01LjctMy4yLTEzLS45LTE1LjkgNS0yLjcgNS41LS42IDEyLjIgNC43IDE1LjEgNjcuOSAzNy42IDExMy45IDExMCAxMTMuOSAxOTMuMiAwIDkzLjMtNTcuOSAxNzMuMS0xMzkuOCAyMDUuNHYtOTIuMmMxNC4yLTQuNSAyNC45LTE3LjcgMjQuOS0zMy41IDAtMTMuMS02LjgtMjQuNC0xNy4zLTMwLjUgOC4zLTc5LjUgNDQuNS01OC42IDQ0LjUtODMuOVYxNzBjMC0zOC04Ny45LTE2MS44LTEyOS0xNjQuNy0yLjUtLjItNS0uMi03LjYgMEMyNTEuMSA4LjMgMTYzLjIgMTMyIDE2My4yIDE3MHYxNC44YzAgMjUuMyAzNi4zIDQuMyA0NC41IDgzLjktMTAuNiA2LjEtMTcuMyAxNy40LTE3LjMgMzAuNSAwIDE1LjggMTAuNiAyOSAyNC44IDMzLjV2OTIuMmMtODEuOS0zMi4yLTEzOS44LTExMi0xMzkuOC0yMDUuNCAwLTgzLjEgNDYtMTU1LjUgMTEzLjktMTkzLjIgNS40LTMgNy40LTkuNiA0LjctMTUuMS0yLjktNS45LTEwLjEtOC4yLTE1LjktNS03NSA0MS41LTEyNS44IDEyMS41LTEyNS44IDIxMy4zIDAgMTE0LjcgNzkuMiAyMTAuOCAxODUuOSAyMzYuOHYtMTA0YzcuNiAyLjUgMTUuMSA0LjYgMjMgNi4ydjEyMy43QzEzMS40IDQ2NS4yIDMxIDM1NC4xIDMxIDIxOS41YzAtMzIuOCA2LTY0LjMgMTYuOS05My4zIDIuMi01LjgtLjYtMTIuMi02LjMtMTQuNi02LTIuNi0xMyAuNC0xNS4zIDYuNkMxNC41IDE0OS43IDggMTgzLjggOCAyMTkuNWMwIDE1NS4xIDEyMi42IDI4MS42IDI3Ni4zIDI4Ny44VjM2MS40YzYuOC40IDE1IC41IDIzLjQgMHYxNDUuOEM0NjEuNCA1MDEuMSA1ODQgMzc0LjYgNTg0IDIxOS41YzAtMzUuNy02LjUtNjkuOC0xOC4zLTEwMS40ek0zNjUuOSAyNzUuNWMxMyAwIDIzLjcgMTAuNSAyMy43IDIzLjcgMCAxMy4xLTEwLjYgMjMuNy0yMy43IDIzLjctMTMgMC0yMy43LTEwLjUtMjMuNy0yMy43IDAtMTMuMSAxMC42LTIzLjcgMjMuNy0yMy43em0tMTM5LjggNDcuM2MtMTMuMiAwLTIzLjctMTAuNy0yMy43LTIzLjdzMTAuNS0yMy43IDIzLjctMjMuN2MxMy4xIDAgMjMuNyAxMC42IDIzLjcgMjMuNyAwIDEzLTEwLjUgMjMuNy0yMy43IDIzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGxhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDMuNSAyMDQuNkw1MDIuOCAyMDIuOEw0MzMuMSAyMS4wMkM0MzEuNyAxNy40NSA0MjkuMiAxNC40MyA0MjUuOSAxMi4zOEM0MjMuNSAxMC44MyA0MjAuOCA5Ljg2NSA0MTcuOSA5LjU3QzQxNSA5LjI3NSA0MTIuMiA5LjY1MyA0MDkuNSAxMC42OEM0MDYuOCAxMS43IDQwNC40IDEzLjM0IDQwMi40IDE1LjQ2QzQwMC41IDE3LjU4IDM5OS4xIDIwLjEzIDM5OC4zIDIyLjlMMzUxLjMgMTY2LjlIMTYwLjhMMTEzLjcgMjIuOUMxMTIuOSAyMC4xMyAxMTEuNSAxNy41OSAxMDkuNiAxNS40N0MxMDcuNiAxMy4zNSAxMDUuMiAxMS43MiAxMDIuNSAxMC43Qzk5Ljg2IDkuNjc1IDk2Ljk4IDkuMjk1IDk0LjEyIDkuNTg3QzkxLjI2IDkuODc4IDg4LjUxIDEwLjgzIDg2LjA4IDEyLjM4QzgyLjg0IDE0LjQzIDgwLjMzIDE3LjQ1IDc4LjkyIDIxLjAyTDkuMjY3IDIwMi44TDguNTQzIDIwNC42Qy0xLjQ4NCAyMzAuOC0yLjcyIDI1OS42IDUuMDIzIDI4Ni42QzEyLjc3IDMxMy41IDI5LjA3IDMzNy4zIDUxLjQ3IDM1NC4yTDUxLjc0IDM1NC40TDUyLjMzIDM1NC44TDE1OC4zIDQzNC4zTDIxMC45IDQ3NEwyNDIuOSA0OTguMkMyNDYuNiA1MDAuMSAyNTEuMiA1MDIuNSAyNTUuOSA1MDIuNUMyNjAuNiA1MDIuNSAyNjUuMiA1MDAuMSAyNjguOSA0OTguMkwzMDAuOSA0NzRMMzUzLjUgNDM0LjNMNDYwLjIgMzU0LjRMNDYwLjUgMzU0LjFDNDgyLjkgMzM3LjIgNDk5LjIgMzEzLjUgNTA2LjEgMjg2LjZDNTE0LjcgMjU5LjYgNTEzLjUgMjMwLjggNTAzLjUgMjA0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ni40IDMyMi41SDE2VjBoNTAuNHYzMjIuNXpNMTY2LjkgNzYuMWgtNTAuNFY1MTJoNTAuNFY3Ni4xem0xMDAuNiAwaC01MC40VjUxMmg1MC40Vjc2LjF6TTM2OCA3NmgtNTAuNHYyNDdIMzY4Vjc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGlkZUcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjEgMjExLjJjLTMuNS0xLjQtMTEuNi0zLjgtMTUuNC0zLjgtMzcuMSAwLTYyLjIgMTYuOC05My41IDM0LjVsLS45LS45YzctNDcuMyAyMy41LTkxLjkgMjMuNS0xNDAuNEMzMjAuOCAyOS4xIDI4Mi42IDAgMjEyLjQgMCA5Ny4zIDAgMzkgMTEzLjcgMzkgMTk4LjQgMzkgMjg2LjMgOTAuMyAzMzUgMTc3LjYgMzM1YzEyIDAgMTEtMSAxMSAzLjgtMTYuOSAxMjguOS05MC44IDEzMy4xLTkwLjggOTQuNiAwLTM5LjIgNDUtNTguNiA0NS41LTYxLS4zLTEyLjItNDctMjcuNi01OC45LTI3LjYtMzMuOS4xLTUyLjQgNTEuMi01Mi40IDc5LjNDMzIgNDc2IDY0LjggNTEyIDExNy41IDUxMmM3Ny40IDAgMTM0LTc3LjggMTUxLjQtMTQ1LjQgMTUuMS02MC41IDExLjItNjMuMyAxOS43LTY3LjYgMzIuMi0xNi4yIDU3LjUtMjcgOTMuOC0yNyAxNy44IDAgMzAuNSAzLjcgNTguOSA4LjQgMi45IDAgNi43LTIuOSA2LjctNS44IDAtOC0zMy40LTYwLjUtNDAuOS02My40em0tMTc1LjMtODQuNGMtOS4zIDQ0LjctMTguNiA4OS42LTI3LjggMTM0LjMtMi4zIDEwLjItMTMuMyA3LjgtMjIgNy44LTM4LjMgMC00OS00MS44LTQ5LTczLjEgMC00NyAxOC0xMDkuMyA2MS44LTEzMy40IDctNC4xIDE0LjgtNi43IDIyLjYtNi43IDE4LjYgMCAyMCAxMy4zIDIwIDI4LjctLjEgMTQuMy0yLjcgMjguNS01LjYgNDIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUyLjggMTQ4LjZjMCA4LjgtMS42IDE3LjctMy40IDI2LjQtNS44IDI3LjgtMTEuNiA1NS44LTE3LjMgODMuNi0xLjQgNi4zLTguMyA0LjktMTMuNyA0LjktMjMuOCAwLTMwLjUtMjYtMzAuNS00NS41IDAtMjkuMyAxMS4yLTY4LjEgMzguNS04My4xIDQuMy0yLjUgOS4yLTQuMiAxNC4xLTQuMiAxMS40IDAgMTIuMyA4LjMgMTIuMyAxNy45ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS02NCAxODdjMC01LjEtMjAuOC0zNy43LTI1LjUtMzkuNS0yLjItLjktNy4yLTIuMy05LjYtMi4zLTIzLjEgMC0zOC43IDEwLjUtNTguMiAyMS41bC0uNS0uNWM0LjMtMjkuNCAxNC42LTU3LjIgMTQuNi04Ny40IDAtNDQuNi0yMy44LTYyLjctNjcuNS02Mi43LTcxLjcgMC0xMDggNzAuOC0xMDggMTIzLjUgMCA1NC43IDMyIDg1IDg2LjMgODUgNy41IDAgNi45LS42IDYuOSAyLjMtMTAuNSA4MC4zLTU2LjUgODIuOS01Ni41IDU4LjkgMC0yNC40IDI4LTM2LjUgMjguMy0zOC0uMi03LjYtMjkuMy0xNy4yLTM2LjctMTcuMi0yMS4xIDAtMzIuNyAzMy0zMi43IDUwLjYgMCAzMi4zIDIwLjQgNTQuNyA1My4zIDU0LjcgNDguMiAwIDgzLjQtNDkuNyA5NC4zLTkxLjcgOS40LTM3LjcgNy0zOS40IDEyLjMtNDIuMSAyMC0xMC4xIDM1LjgtMTYuOCA1OC40LTE2LjggMTEuMSAwIDE5IDIuMyAzNi43IDUuMiAxLjguMSA0LjEtMS43IDQuMS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvZm9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDAwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjQgMzE5LjhoLTEzLjJ2MzQuN2MtMjQuNSAyMy4xLTU2LjMgMzUuOC04OS45IDM1LjgtNzMuMiAwLTEzMi40LTYwLjItMTMyLjQtMTM0LjQgMC03NC4xIDU5LjItMTM0LjQgMTMyLjQtMTM0LjQgMzUuMyAwIDY4LjYgMTQgOTMuNiAzOS40bDYyLjMtNjMuM0MzMzUgNTUuMyAyNzkuNyAzMiAyMjAuNyAzMiA5OCAzMiAwIDEzMi42IDAgMjU2YzAgMTIyLjUgOTcgMjI0IDIyMC43IDIyNCA2My4yIDAgMTI0LjUtMjYuMiAxNzEtODIuNS0yLTI3LjYtMTMuNC03Ny43LTY3LjctNzcuN3ptLTEyLjEtMTEyLjVIMjA1LjZ2ODlIMzI0YzMzLjUgMCA2MC41IDE1LjEgNzYgNDEuOHYtMzAuNmMwLTY1LjItNDAuNC0xMDAuMi04OC4xLTEwMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb2xhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwLjEgMTk0LjhDMzg5LjIgMTk3LjYgMzgwLjIgMTk5LjEgMzcxIDIwMi40QzM2My43IDIwNC4zIDM1Ni4zIDIwNi4zIDM0Ny44IDIwOC41TDM0Ny4yIDIwOC42QzM0MyAyMDkuOCAzNDIuNiAyMDkuOSAzMzguNyAyMDUuNEMzMzQgMjAwLjEgMzMwLjYgMTk2LjcgMzI0LjEgMTkzLjVDMzA0LjQgMTgzLjkgMjg1LjQgMTg2LjcgMjY3LjcgMTk4LjJDMjQ2LjUgMjExLjkgMjM1LjYgMjMyLjIgMjM1LjkgMjU3LjRDMjM2LjIgMjgyLjQgMjUzLjMgMzAyLjkgMjc3LjEgMzA2LjNDMjk5LjEgMzA5LjEgMzE2LjkgMzAxLjcgMzMwLjkgMjg1LjhDMzMzIDI4My4yIDMzNC45IDI4MC41IDMzNyAyNzcuNVYyNzcuNUwzMzcgMjc3LjVDMzM3LjggMjc2LjUgMzM4LjUgMjc1LjQgMzM5LjMgMjc0LjJIMjc5LjJDMjcyLjcgMjc0LjIgMjcxLjEgMjcwLjIgMjczLjMgMjY0LjlDMjc3LjMgMjU1LjIgMjg0LjggMjM5IDI4OS4yIDIzMC45QzI5MC4xIDIyOS4xIDI5Mi4zIDIyNS4xIDI5Ni4xIDIyNS4xSDM5Ny4yQzQwMS43IDIxMS43IDQwOSAxOTguMiA0MTguOCAxODUuNEM0NDEuNSAxNTUuNSA0NjguMSAxMzkuOSA1MDYgMTMzLjRDNTM3LjggMTI3LjggNTY3LjcgMTMwLjkgNTk0LjkgMTQ5LjNDNjE5LjUgMTY2LjEgNjM0LjcgMTg4LjkgNjM4LjggMjE4LjhDNjQ0LjEgMjYwLjkgNjMxLjkgMjk1LjEgNjAyLjEgMzI0LjRDNTgyLjQgMzQ1LjMgNTU3LjIgMzU4LjQgNTI4LjIgMzY0LjNDNTIyLjYgMzY1LjMgNTE3LjEgMzY1LjggNTExLjcgMzY2LjNDNTA4LjggMzY2LjUgNTA2IDM2Ni44IDUwMy4yIDM2Ny4xQzQ3NC45IDM2Ni41IDQ0OSAzNTguNCA0MjcuMiAzMzkuN0M0MTEuOSAzMjYuNCA0MDEuMyAzMTAuMSAzOTYuMSAyOTEuMkMzOTIuNCAyOTguNSAzODguMSAzMDUuNiAzODIuMSAzMTIuM0MzNjAuNSAzNDEuOSAzMzEuMiAzNjAuMyAyOTQuMiAzNjUuMkMyNjMuNiAzNjkuMyAyMzUuMyAzNjMuNCAyMTAuMyAzNDQuN0MxODcuMyAzMjcuMiAxNzQuMiAzMDQuMiAxNzAuOCAyNzUuNUMxNjYuNyAyNDEuNSAxNzYuNyAyMTAuMSAxOTcuMiAxODQuMkMyMTkuNCAxNTUuMiAyNDguNyAxMzYuOCAyODQuNSAxMzAuM0MzMTMuOCAxMjQuMSAzNDEuOCAxMjguNCAzNjcuMSAxNDUuNkMzODMuNiAxNTYuNSAzOTUuNCAxNzEuNCA0MDMuMiAxODkuNUM0MDUuMSAxOTIuMyA0MDMuOCAxOTMuOSA0MDAuMSAxOTQuOHpNNDguMyAyMDAuNEM0Ny4wNSAyMDAuNCA0Ni43NCAxOTkuOCA0Ny4zNiAxOTguOEw1My45MSAxOTAuNEM1NC41MyAxODkuNSA1Ni4wOSAxODguOSA1Ny4zNCAxODguOUgxNjguNkMxNjkuOCAxODguOSAxNzAuMSAxODkuOCAxNjkuNSAxOTAuN0wxNjQuMiAxOTguOEMxNjMuNiAxOTkuOCAxNjIgMjAwLjcgMTYxLjEgMjAwLjdMNDguMyAyMDAuNHpNMS4yNDYgMjI5LjFDMCAyMjkuMS0uMzExNiAyMjguNCAuMzExNiAyMjcuNUw2Ljg1NSAyMTkuMUM3LjQ3OSAyMTguMiA5LjAzNyAyMTcuNSAxMC4yOCAyMTcuNUgxNTIuNEMxNTMuNiAyMTcuNSAxNTQuMiAyMTguNSAxNTMuOSAyMTkuNEwxNTEuNCAyMjYuOUMxNTEuMSAyMjguMSAxNDkuOSAyMjguOCAxNDguNiAyMjguOEwxLjI0NiAyMjkuMXpNNzUuNzIgMjU1LjlDNzUuMSAyNTYuOCA3NS40MSAyNTcuNyA3Ni42NSAyNTcuN0wxNDQuNiAyNThDMTQ1LjUgMjU4IDE0Ni44IDI1Ny4xIDE0Ni44IDI1NS45TDE0Ny40IDI0OC40QzE0Ny40IDI0Ny4xIDE0Ni44IDI0Ni4yIDE0NS41IDI0Ni4ySDgzLjJDODEuOTUgMjQ2LjIgODAuNzEgMjQ3LjEgODAuMDggMjQ4LjFMNzUuNzIgMjU1Ljl6TTU3Ny4yIDIzNy45QzU3NyAyMzUuMyA1NzYuOSAyMzMuMSA1NzYuNSAyMzAuOUM1NzAuOSAyMDAuMSA1NDIuNSAxODIuNiA1MTIuOSAxODkuNUM0ODMuOSAxOTYgNDY1LjIgMjE0LjQgNDU4LjQgMjQzLjdDNDUyLjggMjY4IDQ2NC42IDI5Mi42IDQ4NyAzMDIuNkM1MDQuMiAzMTAuMSA1MjEuMyAzMDkuMiA1MzcuOCAzMDAuN0M1NjIuNCAyODcuMSA1NzUuOCAyNjggNTc3LjQgMjQxLjJDNTc3LjMgMjQwIDU3Ny4zIDIzOC45IDU3Ny4yIDIzNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29kcmVhZHNHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjYgNDAzLjNoMi44YzEyLjcgMCAyNS41IDAgMzguMi4xIDEuNiAwIDMuMS0uNCAzLjYgMi4xIDcuMSAzNC45IDMwIDU0LjYgNjIuOSA2My45IDI2LjkgNy42IDU0LjEgNy44IDgxLjMgMS44IDMzLjgtNy40IDU2LTI4LjMgNjgtNjAuNCA4LTIxLjUgMTAuNy00My44IDExLTY2LjUuMS01LjguMy00Ny0uMi01Mi44bC0uOS0uM2MtLjggMS41LTEuNyAyLjktMi41IDQuNC0yMi4xIDQzLjEtNjEuMyA2Ny40LTEwNS40IDY5LjEtMTAzIDQtMTY5LjQtNTctMTcyLTE3Ni4yLS41LTIzLjcgMS44LTQ2LjkgOC4zLTY5LjdDNTguMyA0Ny43IDExMi4zLjYgMTkxLjYgMGM2MS4zLS40IDEwMS41IDM4LjcgMTE2LjIgNzAuMy41IDEuMSAxLjMgMi4zIDIuNCAxLjlWMTAuNmg0NC4zYzAgMjgwLjMuMSAzMzIuMi4xIDMzMi4yLS4xIDc4LjUtMjYuNyAxNDMuNy0xMDMgMTYyLjItNjkuNSAxNi45LTE1OSA0LjgtMTk2LTU3LjItOC0xMy41LTExLjgtMjguMy0xMy00NC41ek0xODguOSAzNi41Yy01Mi41LS41LTEwOC41IDQwLjctMTE1IDEzMy44LTQuMSA1OSAxNC44IDEyMi4yIDcxLjUgMTQ4LjYgMjcuNiAxMi45IDc0LjMgMTUgMTA4LjMtOC43IDQ3LjYtMzMuMiA2Mi43LTk3IDU0LjgtMTU0LTkuNy03MS4xLTQ3LjgtMTIwLTExOS42LTExOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29kcmVhZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk5LjkgMTkxLjJjNS4xIDM3LjMtNC43IDc5LTM1LjkgMTAwLjctMjIuMyAxNS41LTUyLjggMTQuMS03MC44IDUuNy0zNy4xLTE3LjMtNDkuNS01OC42LTQ2LjgtOTcuMiA0LjMtNjAuOSA0MC45LTg3LjkgNzUuMy04Ny41IDQ2LjktLjIgNzEuOCAzMS44IDc4LjIgNzguM3pNNDQ4IDg4djMzNmMwIDMwLjktMjUuMSA1Ni01NiA1Nkg1NmMtMzAuOSAwLTU2LTI1LjEtNTYtNTZWODhjMC0zMC45IDI1LjEtNTYgNTYtNTZoMzM2YzMwLjkgMCA1NiAyNS4xIDU2IDU2ek0zMzAgMzEzLjJzLS4xLTM0LS4xLTIxNy4zaC0yOXY0MC4zYy0uOC4zLTEuMi0uNS0xLjYtMS4yLTkuNi0yMC43LTM1LjktNDYuMy03Ni00Ni01MS45LjQtODcuMiAzMS4yLTEwMC42IDc3LjgtNC4zIDE0LjktNS44IDMwLjEtNS41IDQ1LjYgMS43IDc3LjkgNDUuMSAxMTcuOCAxMTIuNCAxMTUuMiAyOC45LTEuMSA1NC41LTE3IDY5LTQ1LjIuNS0xIDEuMS0xLjkgMS43LTIuOS4yLjEuNC4xLjYuMi4zIDMuOC4yIDMwLjcuMSAzNC41LS4yIDE0LjgtMiAyOS41LTcuMiA0My41LTcuOCAyMS0yMi4zIDM0LjctNDQuNSAzOS41LTE3LjggMy45LTM1LjYgMy44LTUzLjItMS4yLTIxLjUtNi4xLTM2LjUtMTktNDEuMS00MS44LS4zLTEuNi0xLjMtMS4zLTIuMy0xLjNoLTI2LjhjLjggMTAuNiAzLjIgMjAuMyA4LjUgMjkuMiAyNC4yIDQwLjUgODIuNyA0OC41IDEyOC4yIDM3LjQgNDkuOS0xMi4zIDY3LjMtNTQuOSA2Ny40LTEwNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVEcml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzkgMzE0LjlMMTc1LjQgMzJoMTYxLjJsMTYzLjYgMjgyLjlIMzM5em0tMTM3LjUgMjMuNkwxMjAuOSA0ODBoMzEwLjVMNTEyIDMzOC41SDIwMS41ek0xNTQuMSA2Ny40TDAgMzM4LjUgODAuNiA0ODAgMjM3IDIwOC44IDE1NC4xIDY3LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuNzIsMjE1djQxLjI1aDU3LjFhNDkuNjYsNDkuNjYsMCwwLDEtMjEuMTQsMzIuNmMtOS41NCw2LjU1LTIxLjcyLDEwLjI4LTM2LDEwLjI4LTI3LjYsMC01MC45My0xOC45MS01OS4zLTQ0LjIyYTY1LjYxLDY1LjYxLDAsMCwxLDAtNDFsMCwwYzguMzctMjUuNDYsMzEuNy00NC4zNyw1OS4zLTQ0LjM3YTU2LjQzLDU2LjQzLDAsMCwxLDQwLjUxLDE2LjA4TDE3Ni40NywxNTVhMTAxLjI0LDEwMS4yNCwwLDAsMC03MC43NS0yNy44NCwxMDUuNTUsMTA1LjU1LDAsMCwwLTk0LjM4LDU5LjExLDEwNy42NCwxMDcuNjQsMCwwLDAsMCw5Ni4xOHYuMTVhMTA1LjQxLDEwNS40MSwwLDAsMCw5NC4zOCw1OWMyOC40NywwLDUyLjU1LTkuNTMsNzAtMjUuOTEsMjAtMTguNjEsMzEuNDEtNDYuMTUsMzEuNDEtNzguOTFBMTMzLjc2LDEzMy43NiwwLDAsMCwyMDUuMzgsMjE1Wm0zODkuNDEtNGMtMTAuMTMtOS4zOC0yMy45My0xNC4xNC00MS4zOS0xNC4xNC0yMi40NiwwLTM5LjM0LDguMzQtNTAuNSwyNC44NmwyMC44NSwxMy4yNnExMS40NS0xNywzMS4yNi0xN2EzNC4wNSwzNC4wNSwwLDAsMSwyMi43NSw4Ljc5QTI4LjE0LDI4LjE0LDAsMCwxLDQ4Ny43OSwyNDh2NS41MWMtOS4xLTUuMDctMjAuNTUtNy43NS0zNC42NC03Ljc1LTE2LjQ0LDAtMjkuNjUsMy44OC0zOS40OSwxMS43N3MtMTQuODIsMTguMzEtMTQuODIsMzEuNTZhMzkuNzQsMzkuNzQsMCwwLDAsMTMuOTQsMzEuMjdjOS4yNSw4LjM0LDIxLDEyLjUxLDM0Ljc5LDEyLjUxLDE2LjI5LDAsMjkuMjEtNy4zLDM5LTIxLjg5aDF2MTcuNzJoMjIuNjFWMjUwQzUxMC4yNSwyMzMuNDUsNTA1LjI2LDIyMC4zNCw0OTUuMTMsMjExWk00NzUuOSwzMDAuM2EzNy4zMiwzNy4zMiwwLDAsMS0yNi41NywxMS4xNkEyOC42MSwyOC42MSwwLDAsMSw0MzEsMzA1LjIxYTE5LjQxLDE5LjQxLDAsMCwxLTcuNzctMTUuNjNjMC03LDMuMjItMTIuODEsOS41NC0xNy40MnMxNC41My03LDI0LjA3LTdDNDcwLDI2NSw0ODAuMywyNjgsNDg3LjY0LDI3My45NCw0ODcuNjQsMjg0LjA3LDQ4My42OCwyOTIuODUsNDc1LjksMzAwLjNabS05My42NS0xNDJBNTUuNzEsNTUuNzEsMCwwLDAsMzQxLjc0LDE0MkgyNzkuMDdWMzI4Ljc0SDMwMi43VjI1My4xaDM5YzE2LDAsMjkuNS01LjM2LDQwLjUxLTE1LjkzLjg4LS44OSwxLjc2LTEuNzksMi42NS0yLjY4QTU0LjQ1LDU0LjQ1LDAsMCwwLDM4Mi4yNSwxNTguMjZabS0xNi41OCw2Mi4yM2EzMC42NSwzMC42NSwwLDAsMS0yMy4zNCw5LjY4SDMwMi43VjE2NWgzOS42M2EzMiwzMiwwLDAsMSwyMi42LDkuMjNBMzMuMTgsMzMuMTgsMCwwLDEsMzY1LjY3LDIyMC40OVpNNjE0LjMxLDIwMSw1NzcuNzcsMjkyLjdoLS40NUw1MzkuOSwyMDFINTE0LjIxTDU2NiwzMjAuNTVsLTI5LjM1LDY0LjMySDU2MUw2NDAsMjAxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNS4zIDIzNC4zTDEwNC42IDEzbDI4MC44IDE2MS4yLTYwLjEgNjAuMXpNNDcgMEMzNCA2LjggMjUuMyAxOS4yIDI1LjMgMzUuM3Y0NDEuM2MwIDE2LjEgOC43IDI4LjUgMjEuNyAzNS4zbDI1Ni42LTI1Nkw0NyAwem00MjUuMiAyMjUuNmwtNTguOS0zNC4xLTY1LjcgNjQuNSA2NS43IDY0LjUgNjAuMS0zNC4xYzE4LTE0LjMgMTgtNDYuNS0xLjItNjAuOHpNMTA0LjYgNDk5bDI4MC44LTE2MS4yLTYwLjEtNjAuMUwxMDQuNiA0OTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXNHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni4wNjEgMjI4LjQ5NmMxLjgzNCA5LjY5MiAzLjE0MyAxOS4zODQgMy4xNDMgMzEuOTU2QzM4OS4yMDQgMzcwLjIwNSAzMTUuNTk5IDQ0OCAyMDQuOCA0NDhjLTEwNi4wODQgMC0xOTItODUuOTE1LTE5Mi0xOTJzODUuOTE2LTE5MiAxOTItMTkyYzUxLjg2NCAwIDk1LjA4MyAxOC44NTkgMTI4LjYxMSA1MC4yOTJsLTUyLjEyNiA1MC4wM2MtMTQuMTQ1LTEzLjYyMS0zOS4wMjgtMjkuNTk5LTc2LjQ4NS0yOS41OTktNjUuNDg0IDAtMTE4LjkyIDU0LjIyMS0xMTguOTIgMTIxLjI3NyAwIDY3LjA1NiA1My40MzYgMTIxLjI3NyAxMTguOTIgMTIxLjI3NyA3NS45NjEgMCAxMDQuNTEzLTU0Ljc0NSAxMDguOTY1LTgyLjc3M0gyMDQuOHYtNjYuMDA5aDE4MS4yNjF6bTE4NS40MDYgNi40MzdWMTc5LjJoLTU2LjAwMXY1NS43MzNoLTU1LjczM3Y1Ni4wMDFoNTUuNzMzdjU1LjczM2g1Ni4wMDF2LTU1LjczM0g2MjcuMnYtNTYuMDAxaC01NS43MzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDhDMTE5LjEsOCw4LDExOS4xLDgsMjU2UzExOS4xLDUwNCwyNTYsNTA0LDUwNCwzOTIuOSw1MDQsMjU2LDM5Mi45LDgsMjU2LDhaTTE4NS4zLDM4MGExMjQsMTI0LDAsMCwxLDAtMjQ4YzMxLjMsMCw2MC4xLDExLDgzLDMyLjNsLTMzLjYsMzIuNmMtMTMuMi0xMi45LTMxLjMtMTkuMS00OS40LTE5LjEtNDIuOSwwLTc3LjIsMzUuNS03Ny4yLDc4LjFTMTQyLjMsMzM0LDE4NS4zLDMzNGMzMi42LDAsNjQuOS0xOS4xLDcwLjEtNTMuM0gxODUuM1YyMzguMUgzMDIuMmExMDkuMiwxMDkuMiwwLDAsMSwxLjksMjAuN2MwLDcwLjgtNDcuNSwxMjEuMi0xMTguOCwxMjEuMlpNNDE1LjUsMjczLjh2MzUuNUgzODBWMjczLjhIMzQ0LjVWMjM4LjNIMzgwVjIwMi44aDM1LjV2MzUuNWgzNS4ydjM1LjVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVNjaG9sYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkwLjkgMjk4LjVjMCAwIDAgLjEgLjEgLjFjOS4yIDE5LjQgMTQuNCA0MS4xIDE0LjQgNjRDNDA1LjMgNDQ1LjEgMzM4LjUgNTEyIDI1NiA1MTJzLTE0OS4zLTY2LjktMTQ5LjMtMTQ5LjNjMC0yMi45IDUuMi00NC42IDE0LjQtNjRoMGMxLjctMy42IDMuNi03LjIgNS42LTEwLjdjNC40LTcuNiA5LjQtMTQuNyAxNS0yMS4zYzI3LjQtMzIuNiA2OC41LTUzLjMgMTE0LjQtNTMuM2MzMy42IDAgNjQuNiAxMS4xIDg5LjYgMjkuOWM5LjEgNi45IDE3LjQgMTQuNyAyNC44IDIzLjVjNS42IDYuNiAxMC42IDEzLjggMTUgMjEuM2MyIDMuNCAzLjggNyA1LjUgMTAuNXptMjYuNC0xOC44Yy0zMC4xLTU4LjQtOTEtOTguNC0xNjEuMy05OC40cy0xMzEuMiA0MC0xNjEuMyA5OC40TDAgMjAyLjcgMjU2IDAgNTEyIDIwMi43bC05NC43IDc3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuOCAxMjYuOGMzNy42IDYwLjYgNjQuMiAxMTMuMSA4NC4zIDE2Mi41LTguMyAzMy44LTE4LjggNjYuNS0zMS4zIDk4LjMtMTMuMi01Mi4zLTI2LjUtMTAxLjMtNTYtMTQ4LjUgNi41LTM2LjQgMi4zLTczLjYgMy0xMTIuM3pNMTA5LjMgMjAwSDE2LjFjLTYuNSAwLTEwLjUgNy41LTYuNSAxMi43QzUxLjggMjY3IDgxLjMgMzMwLjUgMTAxLjMgNDAwaDEwMy41Yy0xNi4yLTY5LjctMzguNy0xMzMuNy04Mi41LTE5My41LTMtNC04LTYuNS0xMy02LjV6bTQ3LjgtODhjNjguNSAxMDggMTMwIDIzNC41IDEzOC4yIDM2OEg0MDljLTEyLTEzOC02OC40LTI2NS0xNDMuMi0zNjhIMTU3LjF6bTI1MS44LTY4LjVjLTEuOC02LjgtOC4yLTExLjUtMTUuMi0xMS41aC04OC4zYy01LjMgMC05IDUtNy44IDEwLjMgMTMuMiA0Ni41IDIyLjMgOTUuNSAyNi41IDE0NiA0OC4yIDg2LjIgNzkuNyAxNzguMyA5MC42IDI3MC44IDE1LjgtNjAuNSAyNS4zLTEzMy41IDI1LjMtMjAzIDAtNzMuNi0xMi4xLTE0NS4xLTMxLjEtMjEyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvb2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMjYxLjhDNDg4IDQwMy4zIDM5MS4xIDUwNCAyNDggNTA0IDExMC44IDUwNCAwIDM5My4yIDAgMjU2UzExMC44IDggMjQ4IDhjNjYuOCAwIDEyMyAyNC41IDE2Ni4zIDY0LjlsLTY3LjUgNjQuOUMyNTguNSA1Mi42IDk0LjMgMTE2LjYgOTQuMyAyNTZjMCA4Ni41IDY5LjEgMTU2LjYgMTUzLjcgMTU2LjYgOTguMiAwIDEzNS03MC40IDE0MC44LTEwNi45SDI0OHYtODUuM2gyMzYuMWMyLjMgMTIuNyAzLjkgMjQuOSAzLjkgNDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JhdGlwYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjEgOCAwIDExOS4xIDAgMjU2czExMS4xIDI0OCAyNDggMjQ4IDI0OC0xMTEuMSAyNDgtMjQ4UzM4NC45IDggMjQ4IDh6bTExNC42IDIyNi40bC0xMTMgMTUyLjctMTEyLjctMTUyLjdjLTguNy0xMS45LTE5LjEtNTAuNCAxMy42LTcyIDI4LjEtMTguMSA1NC42LTQuMiA2OC41IDExLjkgMTUuOSAxNy45IDQ2LjYgMTYuOSA2MS43IDAgMTMuOS0xNi4xIDQwLjQtMzAgNjguMS0xMS45IDMyLjkgMjEuNiAyMi42IDYwIDEzLjggNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyYXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjEgMjEyYzQuNCA0LjQgNC40IDExLjkgMCAxNi4zbC05LjcgOS43Yy00LjQgNC43LTExLjkgNC43LTE2LjYgMGwtMTAuNS0xMC41Yy00LjQtNC43LTQuNC0xMS45IDAtMTYuNmw5LjctOS43YzQuNC00LjQgMTEuOS00LjQgMTYuNiAwbDEwLjUgMTAuOHptLTMwLjItMTkuN2MzLTMgMy03LjggMC0xMC41LTIuOC0zLTcuNS0zLTEwLjUgMC0yLjggMi44LTIuOCA3LjUgMCAxMC41IDMuMSAyLjggNy44IDIuOCAxMC41IDB6bS0yNiA1LjNjLTMgMi44LTMgNy41IDAgMTAuMiAyLjggMyA3LjUgMyAxMC41IDAgMi44LTIuOCAyLjgtNy41IDAtMTAuMi0zLTMtNy43LTMtMTAuNSAwem03Mi41LTEzLjNjLTE5LjktMTQuNC0zMy44LTQzLjItMTEuOS02OC4xIDIxLjYtMjQuOSA0MC43LTE3LjIgNTkuOC44IDExLjkgMTEuMyAyOS4zIDI0LjkgMTcuMiA0OC4yLTEyLjUgMjMuNS00NS4xIDMzLjItNjUuMSAxOS4xem00Ny43LTQ0LjVjLTguOS0xMC0yMy4zIDYuOS0xNS41IDE2LjEgNy40IDkgMzIuMSAyLjQgMTUuNS0xNi4xek01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS02Ni4yIDQyLjZjMi41LTE2LjEtMjAuMi0xNi42LTI1LjItMjUuNy0xMy42LTI0LjEtMjcuNy0zNi44LTU0LjUtMzAuNCAxMS42LTggMjMuNS02LjEgMjMuNS02LjEuMy02LjQgMC0xMy05LjQtMjQuOSAzLjktMTIuNS4zLTIyLjQuMy0yMi40IDE1LjUtOC42IDI2LjgtMjQuNCAyOS4xLTQzLjIgMy42LTMxLTE4LjgtNTkuMi00OS44LTYyLjgtMjIuMS0yLjUtNDMuNyA3LjctNTQuMyAyNS43LTIzLjIgNDAuMSAxLjQgNzAuOSAyMi40IDgxLjQtMTQuNC0xLjQtMzQuMy0xMS45LTQwLjEtMzQuMy02LjYtMjUuNyAyLjgtNDkuOCA4LjktNjEuNCAwIDAtNC40LTUuOC04LTguOSAwIDAtMTMuOCAwLTI0LjYgNS4zIDExLjktMTUuMiAyNS4yLTE0LjQgMjUuMi0xNC40IDAtNi40LS42LTE0LjktMy42LTIxLjYtNS40LTExLTIzLjgtMTIuOS0zMS43IDIuOC4xLS4yLjMtLjQuNC0uNS01IDExLjktMS4xIDU1LjkgMTYuOSA4Ny4yLTIuNSAxLjQtOS4xIDYuMS0xMyAxMC0yMS42IDkuNy01Ni4yIDYwLjMtNTYuMiA2MC4zLTI4LjIgMTAuOC03Ny4yIDUwLjktNzAuNiA3OS43LjMgMyAxLjQgNS41IDMgNy41LTIuOCAyLjItNS41IDUtOC4zIDguMy0xMS45IDEzLjgtNS4zIDM1LjIgMTcuNyAyNC40IDE1LjgtNy4yIDI5LjYtMjAuMiAzNi4zLTMwLjQgMCAwLTUuNS01LTE2LjMtNC40IDI3LjctNi42IDM0LjMtOS40IDQ2LjItOS4xIDggMy45IDgtMzQuMyA4LTM0LjMgMC0xNC43LTIuMi0zMS0xMS4xLTQxLjUgMTIuNSAxMi4yIDI5LjEgMzIuNyAyOCA2MC42LS44IDE4LjMtMTUuMiAyMy0xNS4yIDIzLTkuMSAxNi42LTQzLjIgNjUuOS0zMC40IDEwNiAwIDAtOS43LTE0LjktMTAuMi0yMi4xLTE3LjQgMTkuNC00Ni41IDUyLjMtMjQuNiA2NC41IDI2LjYgMTQuNyAxMDguOC04OC42IDEyNi4yLTE0Mi4zIDM0LjYtMjAuOCA1NS40LTQ3LjMgNjMuOS02NSAyMiA0My41IDk1LjMgOTQuNSAxMDEuMSA1OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcGZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyLjUgMzAxLjRjMC03My44IDEwNS4xLTEyMi41IDEwNS4xLTIwMyAwLTQ3LjEtMzQtODgtMzkuMS05MC40LjQgMy4zLjYgNi43LjYgMTBDMTc5LjEgMTEwLjEgMzIgMTcxLjkgMzIgMjg2LjZjMCA0OS44IDMyLjIgNzkuMiA2Ni41IDEwOC4zIDY1LjEgNDYuNyA3OC4xIDcxLjQgNzguMSA4Ni42IDAgMTAuMS00LjggMTctNC44IDIyLjMgMTMuMS0xNi43IDE3LjQtMzEuOSAxNy41LTQ2LjQgMC0yOS42LTIxLjctNTYuMy00NC4yLTg2LjUtMTYtMjIuMy0zMi42LTQyLjYtMzIuNi02OS41em0yMDUuMy0zOWMtMTIuMS02Ni44LTc4LTEyNC40LTk0LjctMTMwLjlsNCA3LjJjMi40IDUuMSAzLjQgMTAuOSAzLjQgMTcuMSAwIDQ0LjctNTQuMiAxMTEuMi01Ni42IDExNi43LTIuMiA1LjEtMy4yIDEwLjUtMy4yIDE1LjggMCAyMC4xIDE1LjIgNDIuMSAxNy45IDQyLjEgMi40IDAgNTYuNi01NS40IDU4LjEtODcuNyA2LjQgMTEuNyA5LjEgMjIuNiA5LjEgMzMuNCAwIDQxLjItNDEuOCA5Ni45LTQxLjggOTYuOSAwIDExLjYgMzEuOSA1My4yIDM1LjUgNTMuMiAxIDAgMi4yLTEuNCAzLjItMi40IDM3LjktMzkuMyA2Ny4zLTg1IDY3LjMtMTM2LjggMC04LS43LTE2LjItMi4yLTI0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdydW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjMgMTg5LjNjLTEuMSAxMCA1LjIgMTkuMSA1LjIgMTkuMS43LTcuNSAyLjItMTIuOCA0LTE2LjYuNCAxMC4zIDMuMiAyMy41IDEyLjggMzQuMSA2LjkgNy42IDM1LjYgMjMuMyA1NC45IDYuMSAxIDIuNCAyLjEgNS4zIDMgOC41IDIuOSAxMC4zLTIuNyAyNS4zLTIuNyAyNS4zczE1LjEtMTcuMSAxMy45LTMyLjVjMTAuOC0uNSAyMS40LTguNCAyMS4xLTE5LjUgMCAwLTE4LjkgMTAuNC0zNS41LTguOC05LjctMTEuMi00MC45LTQyLTgzLjEtMzEuOCA0LjMgMSA4LjkgMi40IDEzLjUgNC4xaC0uMWMtNC4yIDItNi41IDcuMS03IDEyem0yOC4zLTEuOGMxOS41IDExIDM3LjQgMjUuNyA0NC45IDM3LTUuNyAzLjMtMjEuNyAxMC40LTM4LTEuNy0xMC4zLTcuNi05LjgtMjYuMi02LjktMzUuM3ptMTQyLjEgNDUuOGMtMS4yIDE1LjUgMTMuOSAzMi41IDEzLjkgMzIuNXMtNS42LTE1LTIuNy0yNS4zYy45LTMuMiAyLTYgMy04LjUgMTkuMyAxNy4zIDQ4IDEuNSA1NC44LTYuMSA5LjYtMTAuNiAxMi4zLTIzLjggMTIuOC0zNC4xIDEuOCAzLjggMy40IDkuMSA0IDE2LjYgMCAwIDYuNC05LjEgNS4yLTE5LjEtLjYtNS0yLjktMTAtNy0xMS44aC0uMWM0LjYtMS44IDkuMi0zLjIgMTMuNS00LjEtNDIuMy0xMC4yLTczLjQgMjAuNi04My4xIDMxLjgtMTYuNyAxOS4yLTM1LjUgOC44LTM1LjUgOC44LS4yIDEwLjkgMTAuNCAxOC45IDIxLjIgMTkuM3ptNjIuNy00NS44YzMgOS4xIDMuNCAyNy43LTcgMzUuNC0xNi4zIDEyLjEtMzIuMiA1LTM3LjkgMS42IDcuNS0xMS40IDI1LjQtMjYgNDQuOS0zN3pNMTYwIDQxOC41aC0yOS40Yy01LjUgMC04LjIgMS42LTkuNSAyLjktMS45IDItMi4yIDQuNy0uOSA4LjEgMy41IDkuMSAxMS40IDE2LjUgMTMuNyAxOC42IDMuMSAyLjcgNy41IDQuMyAxMS44IDQuMyA0LjQgMCA4LjMtMS43IDExLTQuNiA3LjUtOC4yIDExLjktMTcuMSAxMy0xOS44LjYtMS41IDEuMy00LjUtLjktNi44LTEuOC0xLjgtNC43LTIuNy04LjgtMi43em0xODkuMi0xMDEuMmMtMi40IDE3LjktMTMgMzMuOC0yNC42IDQzLjctMy4xLTIyLjctMy43LTU1LjUtMy43LTYyLjQgMC0xNC43IDkuNS0yNC41IDEyLjItMjYuMSAyLjUtMS41IDUuNC0zIDguMy00LjYgMTgtOS42IDQwLjQtMjEuNiA0MC40LTQzLjcgMC0xNi4yLTkuMy0yMy4yLTE1LjQtMjcuOC0uOC0uNi0xLjUtMS4xLTIuMi0xLjctMi4xLTEuNy0zLjctMy00LjMtNC40LTQuNC05LjgtMy42LTM0LjItMS43LTM3LjYuNi0uNiAxNi43LTIwLjkgMTEuOC0zOS4yLTItNy40LTYuOS0xMy4zLTE0LjEtMTctNS4zLTIuNy0xMS45LTQuMi0xOS41LTQuNS0uMS0yLS41LTMuOS0uOS01LjktLjYtMi42LTEuMS01LjMtLjktOC4xLjQtNC43LjgtOSAyLjItMTEuMyA4LjQtMTMuMyAyOC44LTE3LjYgMjktMTcuNmwxMi4zLTIuNC04LjEtOS41Yy0uMS0uMi0xNy4zLTE3LjUtNDYuMy0xNy41LTcuOSAwLTE2IDEuMy0yNC4xIDMuOS0yNC4yIDcuOC00Mi45IDMwLjUtNDkuNCAzOS4zLTMuMS0xLTYuMy0xLjktOS42LTIuNy00LjItMTUuOCA5LTM4LjUgOS0zOC41cy0xMy42LTMtMzMuNyAxNS4yYy0yLjYtNi41LTguMS0yMC41LTEuOC0zNy4yQzE4NC42IDEwLjEgMTc3LjIgMjYgMTc1IDQwLjRjLTcuNi01LjQtNi43LTIzLjEtNy4yLTI3LjYtNy41LjktMjkuMiAyMS45LTI4LjIgNDguMy0yIC41LTMuOSAxLjEtNS45IDEuNy02LjUtOC44LTI1LjEtMzEuNS00OS40LTM5LjMtNy45LTIuMi0xNi0zLjUtMjMuOS0zLjUtMjkgMC00Ni4xIDE3LjMtNDYuMyAxNy41TDYgNDYuOWwxMi4zIDIuNGMuMiAwIDIwLjYgNC4zIDI5IDE3LjYgMS40IDIuMiAxLjggNi42IDIuMiAxMS4zLjIgMi44LS40IDUuNS0uOSA4LjEtLjQgMS45LS44IDMuOS0uOSA1LjktNy43LjMtMTQuMiAxLjgtMTkuNSA0LjUtNy4yIDMuNy0xMi4xIDkuNi0xNC4xIDE3LTUgMTguMiAxMS4yIDM4LjUgMTEuOCAzOS4yIDEuOSAzLjQgMi43IDI3LjgtMS43IDM3LjYtLjYgMS40LTIuMiAyLjctNC4zIDQuNC0uNy41LTEuNCAxLjEtMi4yIDEuNy02LjEgNC42LTE1LjQgMTEuNy0xNS40IDI3LjggMCAyMi4xIDIyLjQgMzQuMSA0MC40IDQzLjcgMyAxLjYgNS44IDMuMSA4LjMgNC42IDIuNyAxLjYgMTIuMiAxMS40IDEyLjIgMjYuMSAwIDYuOS0uNiAzOS43LTMuNyA2Mi40LTExLjYtOS45LTIyLjItMjUuOS0yNC42LTQzLjggMCAwLTI5LjIgMjIuNi0yMC42IDcwLjggNS4yIDI5LjUgMjMuMiA0Ni4xIDQ3IDU0LjcgOC44IDE5LjEgMjkuNCA0NS43IDY3LjMgNDkuNkMxNDMgNTA0LjMgMTYzIDUxMiAxOTIuMiA1MTJoLjJjMjkuMSAwIDQ5LjEtNy43IDYzLjYtMTkuNSAzNy45LTMuOSA1OC41LTMwLjUgNjcuMy00OS42IDIzLjgtOC43IDQxLjctMjUuMiA0Ny01NC43IDguMi00OC40LTIxLjEtNzAuOS0yMS4xLTcwLjl6TTMwNS43IDM3LjdjNS42LTEuOCAxMS42LTIuNyAxNy43LTIuNyAxMSAwIDE5LjkgMyAyNC43IDUtMy4xIDEuNC02LjQgMy4yLTkuNyA1LjMtMi40LS40LTUuNi0uOC05LjItLjgtMTAuNSAwLTIwLjUgMy4xLTI4LjcgOC45LTEyLjMgOC43LTE4IDE2LjktMjAuNyAyMi40LTIuMi0xLjMtNC41LTIuNS03LjEtMy43LTEuNi0uOC0zLjEtMS41LTQuNy0yLjIgNi4xLTkuMSAxOS45LTI2LjUgMzcuNy0zMi4yem0yMSAxOC4yYy0uOCAxLTEuNiAyLjEtMi4zIDMuMi0zLjMgNS4yLTMuOSAxMS42LTQuNCAxNy44LS41IDYuNC0xLjEgMTIuNS00LjQgMTctNC4yLjgtOC4xIDEuNy0xMS41IDIuNy0yLjMtMy4xLTUuNi03LTEwLjUtMTEuMiAxLjQtNC44IDUuNS0xNi4xIDEzLjUtMjIuNSA1LjYtNC4zIDEyLjItNi43IDE5LjYtN3pNNDUuNiA0NS4zYy0zLjMtMi4yLTYuNi00LTkuNy01LjMgNC44LTIgMTMuNy01IDI0LjctNSA2LjEgMCAxMiAuOSAxNy43IDIuNyAxNy44IDUuOCAzMS42IDIzLjIgMzcuNyAzMi4xLTEuNi43LTMuMiAxLjQtNC44IDIuMi0yLjUgMS4yLTQuOSAyLjUtNy4xIDMuNy0yLjYtNS40LTguMy0xMy43LTIwLjctMjIuNC04LjMtNS44LTE4LjItOC45LTI4LjgtOC45LTMuNC4xLTYuNi41LTkgLjl6bTQ0LjcgNDAuMWMtNC45IDQuMi04LjMgOC0xMC41IDExLjItMy40LS45LTcuMy0xLjktMTEuNS0yLjdDNjUgODkuNSA2NC41IDgzLjQgNjQgNzdjLS41LTYuMi0xLjEtMTIuNi00LjQtMTcuOC0uNy0xLjEtMS41LTIuMi0yLjMtMy4yIDcuNC4zIDE0IDIuNiAxOS41IDcgOCA2LjMgMTIuMSAxNy42IDEzLjUgMjIuNHpNNTguMSAyNTkuOWMtMi43LTEuNi01LjYtMy4xLTguNC00LjYtMTQuOS04LTMwLjItMTYuMy0zMC4yLTMwLjUgMC0xMS4xIDQuMy0xNC42IDguOS0xOC4ybC41LS40Yy43LS42IDEuNC0xLjIgMi4yLTEuOC0uOSA3LjItMS45IDEzLjMtMi43IDE0LjkgMCAwIDEyLjEtMTUgMTUuNy00NC4zIDEuNC0xMS41LTEuMS0zNC4zLTUuMS00MyAuMiA0LjkgMCA5LjgtLjMgMTQuNC0uNC0uOC0uOC0xLjYtMS4zLTIuMi0zLjItNC0xMS44LTE3LjUtOS40LTI2LjYuOS0zLjUgMy4xLTYgNi43LTcuOCAzLjgtMS45IDguOC0yLjkgMTUuMS0yLjkgMTIuMyAwIDI1LjkgMy43IDMyLjkgNiAyNS4xIDggNTUuNCAzMC45IDY0LjEgMzcuNy4yLjIuNC4zLjQuM2w1LjYgMy45LTMuNS01LjhjLS4yLS4zLTE5LjEtMzEuNC01My4yLTQ2LjUgMi0yLjkgNy40LTguMSAyMS42LTE1LjEgMjEuNC0xMC41IDQ2LjUtMTUuOCA3NC4zLTE1LjggMjcuOSAwIDUyLjkgNS4zIDc0LjMgMTUuOCAxNC4yIDYuOSAxOS42IDEyLjIgMjEuNiAxNS4xLTM0IDE1LjEtNTIuOSA0Ni4yLTUzLjEgNDYuNWwtMy41IDUuOCA1LjYtMy45cy4yLS4xLjQtLjNjOC43LTYuOCAzOS0yOS44IDY0LjEtMzcuNyA3LTIuMiAyMC42LTYgMzIuOS02IDYuMyAwIDExLjMgMSAxNS4xIDIuOSAzLjUgMS44IDUuNyA0LjQgNi43IDcuOCAyLjUgOS4xLTYuMSAyMi42LTkuNCAyNi42LS41LjYtLjkgMS4zLTEuMyAyLjItLjMtNC42LS41LTkuNS0uMy0xNC40LTQgOC44LTYuNSAzMS41LTUuMSA0MyAzLjYgMjkuMyAxNS43IDQ0LjMgMTUuNyA0NC4zLS44LTEuNi0xLjgtNy43LTIuNy0xNC45LjcuNiAxLjUgMS4yIDIuMiAxLjhsLjUuNGM0LjYgMy43IDguOSA3LjEgOC45IDE4LjIgMCAxNC4yLTE1LjQgMjIuNS0zMC4yIDMwLjUtMi45IDEuNS01LjcgMy4xLTguNCA0LjYtOC43IDUtMTggMTYuNy0xOS4xIDM0LjItLjkgMTQuNi45IDQ5LjkgMy40IDc1LjktMTIuNCA0LjgtMjYuNyA2LjQtMzkuNyA2LjgtMi00LjEtMy45LTguNS01LjUtMTMuMS0uNy0yLTE5LjYtNTEuMS0yNi40LTYyLjIgNS41IDM5IDE3LjUgNzMuNyAyMy41IDg5LjYtMy41LS41LTcuMy0uNy0xMS43LS43aC0xMTdjLTQuNCAwLTguMy4zLTExLjcuNyA2LTE1LjkgMTguMS01MC42IDIzLjUtODkuNi02LjggMTEuMi0yNS43IDYwLjMtMjYuNCA2Mi4yLTEuNiA0LjYtMy41IDktNS41IDEzLjEtMTMtLjQtMjcuMi0yLTM5LjctNi44IDIuNS0yNiA0LjMtNjEuMiAzLjQtNzUuOS0uOS0xNy40LTEwLjMtMjkuMi0xOS0zNC4yek0zNC44IDQwNC42Yy0xMi4xLTIwLTguNy01NC4xLTMuNy01OS4xIDEwLjkgMzQuNCA0Ny4yIDQ0LjMgNzQuNCA0NS40LTIuNyA0LjItNS4yIDcuNi03IDEwbC0xLjQgMS40Yy03LjIgNy44LTguNiAxOC41LTQuMSAzMS44LTIyLjctLjEtNDYuMy05LjgtNTguMi0yOS41em00NS43IDQzLjVjNiAxLjEgMTIuMiAxLjkgMTguNiAyLjQgMy41IDggNy40IDE1LjkgMTIuMyAyMy4xLTE0LjQtNS45LTI0LjQtMTYtMzAuOS0yNS41ek0xOTIgNDk4LjJjLTYwLjYtLjEtNzguMy00NS44LTg0LjktNjQuNy0zLjctMTAuNS0zLjQtMTguMi45LTIzLjEgMi45LTMuMyA5LjUtNy4yIDI0LjYtNy4yaDExOC44YzE1LjEgMCAyMS44IDMuOSAyNC42IDcuMiA0LjIgNC44IDQuNSAxMi42LjkgMjMuMS02LjYgMTguOC0yNC4zIDY0LjYtODQuOSA2NC43em04MC42LTI0LjZjNC45LTcuMiA4LjgtMTUuMSAxMi4zLTIzLjEgNi40LS41IDEyLjYtMS4zIDE4LjYtMi40LTYuNSA5LjUtMTYuNSAxOS42LTMwLjkgMjUuNXptNzYuNi02OWMtMTIgMTkuNy0zNS42IDI5LjMtNTguMSAyOS43IDQuNS0xMy4zIDMuMS0yNC4xLTQuMS0zMS44LS40LS41LS45LTEtMS40LTEuNS0xLjgtMi40LTQuMy01LjgtNy0xMCAyNy4yLTEuMiA2My41LTExIDc0LjQtNDUuNCA1IDUgOC40IDM5LjEtMy44IDU5ek0xOTEuOSAxODcuN2guMmMxMi43LS4xIDI3LjItMTcuOCAyNy4yLTE3LjgtOS45IDYtMTguOCA4LjEtMjcuMyA4LjMtOC41LS4yLTE3LjQtMi4zLTI3LjMtOC4zIDAgMCAxNC41IDE3LjYgMjcuMiAxNy44em02MS43IDIzMC43aC0yOS40Yy00LjIgMC03LjIuOS04LjkgMi43LTIuMiAyLjMtMS41IDUuMi0uOSA2LjcgMSAyLjYgNS41IDExLjMgMTMgMTkuMyAyLjcgMi45IDYuNiA0LjUgMTEgNC41czguNy0xLjYgMTEuOC00LjJjMi4zLTIgMTAuMi05LjIgMTMuNy0xOC4xIDEuMy0zLjMgMS02LS45LTcuOS0xLjMtMS4zLTQtMi45LTkuNC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWlsZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My40MjcsNjRINC41NzFjMCwxMDMuMjYsMjIuMTkyLDE4MC4wNiw0My40MTgsMjIyLjM1OEMxMTIuMDQ2LDQxNC4xMzUsMjI0LDQ0OCwyMjUuMjU2LDQ0OGEzMTIuODI0LDMxMi44MjQsMCwwLDAsMTQwLjU1LTEwMy40NzdjMjUuOTA3LTMzLjkyMyw1My4xLTg3LjE5LDY1LjkxNi0xNDUuNzYxSDE3MS44MzNjNC4xNCwzNi40MjksMjIuMTc3LDY3Ljk0Niw0NS4xLDg2Ljk0NGg4OC41ODljLTE3LjAxMiwyOC4yMTMtNDguMTg2LDU0LjQtODAuNDU2LDY5LjQ4Mi0zMS4yMzItMTMuMjU5LTY5LjA5LTQ2LjU0NC05Ni41NDgtOTguMzYyLTI2LjcyNi01My44MzMtMjcuMDkyLTEwNS44ODMtMjcuMDkyLTEwNS44ODNINDM3LjU3M0E2MjUuOTEsNjI1LjkxLDAsMCwwLDQ0My40MjcsNjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1bHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA5LjggMzkxLjFsLTE0LjEgMjQuNi00LjYgODAuMmMwIDguOS0yOC4zIDE2LjEtNjMuMSAxNi4xcy02My4xLTcuMi02My4xLTE2LjFsLTUuOC03OS40LTE0LjktMjUuNGM0MS4yIDE3LjMgMTI2IDE2LjcgMTY1LjYgMHptLTE5Ni0yNTMuM2wxMy42IDEyNS41YzUuOS0yMCAyMC44LTQ3IDQwLTU1LjIgNi4zLTIuNyAxMi43LTIuNyAxOC43LjkgNS4yIDMgOS42IDkuMyAxMC4xIDExLjggMS4yIDYuNS0yIDkuMS00LjUgOS4xLTMgMC01LjMtNC42LTYuOC03LjMtNC4xLTcuMy0xMC4zLTcuNi0xNi45LTIuOC02LjkgNS0xMi45IDEzLjQtMTcuMSAyMC43LTUuMSA4LjgtOS40IDE4LjUtMTIgMjguMi0xLjUgNS42LTIuOSAxNC42LS42IDE5LjkgMSAyLjIgMi41IDMuNiA0LjkgMy42IDUgMCAxMi4zLTYuNiAxNS44LTEwLjEgNC41LTQuNSAxMC4zLTExLjUgMTIuNS0xNmw1LjItMTUuNWMyLjYtNi44IDkuOS01LjYgOS45IDAgMCAxMC4yLTMuNyAxMy42LTEwIDM0LjctNS44IDE5LjUtNy42IDI1LjgtNy42IDI1LjgtLjcgMi44LTMuNCA3LjUtNi4zIDcuNS0xLjIgMC0yLjEtLjQtMi42LTEuMi0xLTEuNC0uOS01LjMtLjgtNi4zLjItMy4yIDYuMy0yMi4yIDcuMy0yNS4yLTIgMi4yLTQuMSA0LjQtNi40IDYuNi01LjQgNS4xLTE0LjEgMTEuOC0yMS41IDExLjgtMy40IDAtNS42LS45LTcuNy0yLjRsNy42IDc5LjZjMiA1IDM5LjIgMTcuMSA4OC4yIDE3LjEgNDkuMSAwIDg2LjMtMTIuMiA4OC4yLTE3LjFsMTAuOS05NC42Yy01LjcgNS4yLTEyLjMgMTEuNi0xOS42IDE0LjgtNS40IDIuMy0xNy40IDMuOC0xNy40LTUuNyAwLTUuMiA5LjEtMTQuOCAxNC40LTIxLjUgMS40LTEuNyA0LjctNS45IDQuNy04LjEgMC0yLjktNi0yLjItMTEuNyAyLjUtMy4yIDIuNy02LjIgNi4zLTguNyA5LjctNC4zIDYtNi42IDExLjItOC41IDE1LjUtNi4yIDE0LjItNC4xIDguNi05LjEgMjItNSAxMy4zLTQuMiAxMS44LTUuMiAxNC0uOSAxLjktMi4yIDMuNS00IDQuNS0xLjkgMS00LjUuOS02LjEtLjMtLjktLjYtMS4zLTEuOS0xLjMtMy43IDAtLjkuMS0xLjguMy0yLjcgMS41LTYuMSA3LjgtMTguMSAxNS0zNC4zIDEuNi0zLjcgMS0yLjYuOC0yLjMtNi4yIDYtMTAuOSA4LjktMTQuNCAxMC41LTUuOCAyLjYtMTMgMi42LTE0LjUtNC4xLS4xLS40LS4xLS44LS4yLTEuMi0xMS44IDkuMi0yNC4zIDExLjctMjAtOC4xLTQuNiA4LjItMTIuNiAxNC45LTIyLjQgMTQuOS00LjEgMC03LjEtMS40LTguNi01LjEtMi4zLTUuNSAxLjMtMTQuOSA0LjYtMjMuOCAxLjctNC41IDQtOS45IDcuMS0xNi4yIDEuNi0zLjQgNC4yLTUuNCA3LjYtNC41LjYuMiAxLjEuNCAxLjYuNyAyLjYgMS44IDEuNiA0LjUuMyA3LjItMy44IDcuNS03LjEgMTMtOS4zIDIwLjgtLjkgMy4zLTIgOSAxLjUgOSAyLjQgMCA0LjctLjggNi45LTIuNCA0LjYtMy40IDguMy04LjUgMTEuMS0xMy41IDItMy42IDQuNC04LjMgNS42LTEyLjMuNS0xLjcgMS4xLTMuMyAxLjgtNC44IDEuMS0yLjUgMi42LTUuMSA1LjItNS4xIDEuMyAwIDIuNC41IDMuMiAxLjUgMS43IDIuMiAxLjMgNC41LjQgNi45LTIgNS42LTQuNyAxMC42LTYuOSAxNi43LTEuMyAzLjUtMi43IDgtMi43IDExLjcgMCAzLjQgMy43IDIuNiA2LjggMS4yIDIuNC0xLjEgNC44LTIuOCA2LjgtNC41IDEuMi00LjkuOS0zLjggMjYuNC02OC4yIDEuMy0zLjMgMy43LTQuNyA2LjEtNC43IDEuMiAwIDIuMi40IDMuMiAxLjEgMS43IDEuMyAxLjcgNC4xIDEgNi4yLS43IDEuOS0uNiAxLjMtNC41IDEwLjUtNS4yIDEyLjEtOC42IDIwLjgtMTMuMiAzMS45LTEuOSA0LjYtNy43IDE4LjktOC43IDIyLjMtLjYgMi4yLTEuMyA1LjggMSA1LjggNS40IDAgMTkuMy0xMy4xIDIzLjEtMTcgLjItLjMuNS0uNC45LS42LjYtMS45IDEuMi0zLjcgMS43LTUuNSAxLjQtMy44IDIuNy04LjIgNS4zLTExLjMuOC0xIDEuNy0xLjYgMi43LTEuNiAyLjggMCA0LjIgMS4yIDQuMiA0IDAgMS4xLS43IDUuMS0xLjEgNi4yIDEuNC0xLjUgMi45LTMgNC41LTQuNSAxNS0xMy45IDI1LjctNi44IDI1LjcuMiAwIDcuNC04LjkgMTcuNy0xMy44IDIzLjQtMS42IDEuOS00LjkgNS40LTUgNi40IDAgMS4zLjkgMS44IDIuMiAxLjggMiAwIDYuNC0zLjUgOC00LjcgNS0zLjkgMTEuOC05LjkgMTYuNi0xNC4xbDE0LjgtMTM2LjhjLTMwLjUgMTcuMS0xOTcuNiAxNy4yLTIyOC4zLjJ6bTIyOS43LTguNWMwIDIxLTIzMS4yIDIxLTIzMS4yIDAgMC04LjggNTEuOC0xNS45IDExNS42LTE1LjkgOSAwIDE3LjguMSAyNi4zLjRsMTIuNi00OC43TDIyOC4xLjZjMS40LTEuNCA1LjgtLjIgOS45IDMuNXM2LjYgNy45IDUuMyA5LjNsLS4xLjFMMTg1LjkgNzRsLTEwIDQwLjdjMzkuOSAyLjYgNjcuNiA4LjEgNjcuNiAxNC42em0tNjkuNCA0LjZjMC0uOC0uOS0xLjUtMi41LTIuMWwtLjIuOGMwIDEuMy01IDIuNC0xMS4xIDIuNHMtMTEuMS0xLjEtMTEuMS0yLjRjMC0uMSAwLS4yLjEtLjNsLjItLjdjLTEuOC42LTMgMS40LTMgMi4zIDAgMi4xIDYuMiAzLjcgMTMuNyAzLjcgNy43LjEgMTMuOS0xLjYgMTMuOS0zLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhY2tlck5ld3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTIxLjIgMTk3LjJIMjFjLjEtLjEuMi0uMy4zLS40IDAgLjEgMCAuMy0uMS40em0yMTggNTMuOVYzODRoLTMxLjRWMjgxLjNMMTI4IDEyOGgzNy4zYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42SDMyMGwtODAuOCAxNTUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFja2VycmFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzcuNSAxMjhDNDYzIDEwMy4wNSAyODUuMTMgMCAyNTYuMTYgMFM0OS4yNSAxMDIuNzkgMzQuODQgMTI4cy0xNC40OSAyMzAuOCAwIDI1NiAxOTIuMzggMTI4IDIyMS4zMiAxMjhTNDYzIDQwOS4wOCA0NzcuNDkgMzg0czE0LjUxLTIzMSAuMDEtMjU2ek0zMTYuMTMgNDE0LjIyYy00IDAtNDAuOTEtMzUuNzctMzgtMzguNjkuODctLjg3IDYuMjYtMS40OCAxNy41NS0xLjgzIDAtMjYuMjMuNTktNjguNTkuOTQtODYuMzIgMC0yLS40NC0zLjQzLS40NC01Ljg1aC03OS45M2MwIDcuMS0uNDYgMzYuMiAxLjM3IDcyLjg4LjIzIDQuNTQtMS41OCA2LTUuNzQgNS45NC0xMC4xMyAwLTIwLjI3LS4xMS0zMC40MS0uMDgtNC4xIDAtNS44Ny0xLjUzLTUuNzQtNi4xMS45Mi0zMy40NCAzLTg0LS4xNS0yMTIuNjd2LTMuMTdjLTkuNjctLjM1LTE2LjM4LTEtMTcuMjYtMS44NC0yLjkyLTIuOTIgMzQuNTQtMzguNjkgMzguNDktMzguNjlzNDEuMTcgMzUuNzggMzguMjcgMzguNjljLS44Ny44Ny03LjkgMS40OS0xNi43NyAxLjg0djMuMTZjLTIuNDIgMjUuNzUtMiA3OS41OS0yLjYzIDEwNS4zOWg4MC4yNmMwLTQuNTUuMzktMzQuNzQtMS4yLTgzLjY0LS4xLTMuMzkuOTUtNS4xNyA0LjIxLTUuMiAxMS4wNy0uMDggMjIuMTUtLjEzIDMzLjIzLS4wNiAzLjQ2IDAgNC41NyAxLjcyIDQuNSA1LjM4QzMzMyAzNTQuNjQgMzM2IDM0MS4yOSAzMzYgMzczLjY5YzguODcuMzUgMTYuODIgMSAxNy42OSAxLjg0IDIuODggMi45MS0zMy42MiAzOC42OS0zNy41OCAzOC42OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFzaG5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUuMTkgMTcxLjFDLTExLjcyIDIxNy4xLTExLjcyIDI5NCAzNS4xOSAzNDAuOUwxNzEuMSA0NzYuOEMyMTcuMSA1MjMuNyAyOTQgNTIzLjcgMzQwLjkgNDc2LjhMNDc2LjggMzQwLjlDNTIzLjcgMjk0IDUyMy43IDIxNy4xIDQ3Ni44IDE3MS4xTDM0MC45IDM1LjE5QzI5NC0xMS43MiAyMTcuMS0xMS43MiAxNzEuMSAzNS4xOUwzNS4xOSAxNzEuMXpNMzE1LjUgMzE1LjVDMjgyLjYgMzQ4LjMgMjI5LjQgMzQ4LjMgMTk2LjYgMzE1LjVDMTYzLjcgMjgyLjYgMTYzLjcgMjI5LjQgMTk2LjYgMTk2LjZDMjI5LjQgMTYzLjcgMjgyLjYgMTYzLjcgMzE1LjUgMTk2LjZDMzQ4LjMgMjI5LjQgMzQ4LjMgMjgyLjYgMzE1LjUgMzE1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUxLjYgMTU3LjZjMC0xLjktLjktMi44LTIuOC0yLjhoLTQwLjljLTEuNiAwLTIuNyAxLjQtMi43IDIuOHYyMDEuOGMwIDEuNCAxLjEgMi44IDIuNyAyLjhoNDAuOWMxLjkgMCAyLjgtLjkgMi44LTIuOHpNMTU2LjUgMTY4Yy0xNi4xLTExLjgtMzYuMy0xNy45LTYwLjMtMTgtMTguMS0uMS0zNC42IDMuNy00OS44IDExLjRWODAuMmMwLTEuOC0uOS0yLjctMi44LTIuN0gyLjdjLTEuOCAwLTIuNy45LTIuNyAyLjd2Mjc5LjJjMCAxLjkuOSAyLjggMi43IDIuOGg0MWMxLjkgMCAyLjgtLjkgMi44LTIuOFYyMjMuM2MwLS44LTIuOC0yNyA0NS44LTI3IDQ4LjUgMCA0NS44IDI2LjEgNDUuOCAyN3YxMjIuNmMwIDkgNy4zIDE2LjMgMTYuNCAxNi4zaDI3LjNjMS44IDAgMi43LS45IDIuNy0yLjhWMjIzLjNjMC0yMy40LTkuMy00MS44LTI4LTU1LjN6bTQ3OC40IDExMC4xYy02LjgtMTUuNy0xOC40LTI3LTM0LjktMzQuMWwtNTcuNi0yNS4zYy04LjYtMy42LTkuMi0xMS4yLTIuNi0xNi4xIDcuNC01LjUgNDQuMy0xMy45IDg0IDYuOCAxLjcgMSA0LS4zIDQtMi40di00NC43YzAtMS4zLS42LTIuMS0xLjktMi42LTE3LjctNi42LTM2LjEtOS45LTU1LjEtOS45LTI2LjUgMC00NS4zIDUuOC01OC41IDE1LjQtLjUuNC0yOC40IDIwLTIyLjcgNTMuNyAzLjQgMTkuNiAxNS44IDM0LjIgMzcuMiA0My42bDUzLjYgMjMuNWMxMS42IDUuMSAxNS4yIDEzLjMgMTIuMiAyMS4yLTMuNyA5LjEtMTMuMiAxMy42LTM2LjUgMTMuNi0yNC4zIDAtNDQuNy04LjktNTguNC0xOS4xLTIuMS0xLjQtNC40LjItNC40IDIuM3YzNC40YzAgMTAuNCA0LjkgMTcuMyAxNC42IDIwLjcgMTUuNiA1LjUgMzEuNiA4LjIgNDguMiA4LjIgMTIuNyAwIDI1LjgtMS4yIDM2LjMtNC4zLjctLjMgMzYtOC45IDQ1LjYtNDUuOCAzLjUtMTMuNSAyLjQtMjYuNS0zLjEtMzkuMXpNMzc2LjIgMTQ5LjhjLTMxLjcgMC0xMDQuMiAyMC4xLTEwNC4yIDEwMy41djE4My41YzAgLjguNiAyLjcgMi43IDIuN2g0MC45YzEuOSAwIDIuOC0uOSAyLjgtMi43VjM0OGMxNi41IDEyLjcgMzUuOCAxOS4xIDU3LjcgMTkuMSA2MC41IDAgMTA4LjctNDguNSAxMDguNy0xMDguNy4xLTYwLjMtNDguMi0xMDguNi0xMDguNi0xMDguNnptMCAxNzAuOWMtMTcuMiAwLTMxLjktNi4xLTQ0LTE4LjItMTIuMi0xMi4yLTE4LjItMjYuOC0xOC4yLTQ0IDAtMzQuNSAyNy42LTYyLjIgNjIuMi02Mi4yIDM0LjUgMCA2Mi4yIDI3LjYgNjIuMiA2Mi4yLjEgMzQuMy0yNy4zIDYyLjItNjIuMiA2Mi4yek0yMjguMyA3Mi41Yy0xNS45IDAtMjguOCAxMi45LTI4LjkgMjguOSAwIDE1LjYgMTIuNyAyOC45IDI4LjkgMjguOXMyOC45LTEzLjEgMjguOS0yOC45YzAtMTYuMi0xMy0yOC45LTI4LjktMjguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlyZUFIZWxwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQzLjEgMEg3MS45QzY3LjkgMzcuMyAzNy40IDY3LjggMCA3MS43djM3MS41YzM3LjQgNC45IDY2IDMyLjQgNzEuOSA2OC44aDM3Mi4yYzMtMzYuNCAzMi41LTY1LjggNjcuOS02OS44VjcxLjdjLTM2LjQtNS45LTY1LTM1LjMtNjguOS03MS43em0tMzcgNDA0LjljLTM2LjMgMC0xOC44LTItNTUuMS0yLTM1LjggMC0yMSAyLTU2LjEgMi01LjkgMC00LjktOC4yIDAtOS44IDIyLjgtNy42IDIyLjktMTAuMiAyNC42LTEyLjggMTAuNC0xNS42IDUuOS04MyA1LjktMTEzIDAtNS4zLTYuNC0xMi44LTEzLjgtMTIuOEgyMDAuNGMtNy40IDAtMTMuOCA3LjUtMTMuOCAxMi44IDAgMzAtNC41IDk3LjQgNS45IDExMyAxLjcgMi41IDEuOCA1LjIgMjQuNiAxMi44IDQuOSAxLjYgNiA5LjggMCA5LjgtMzUuMSAwLTIwLjMtMi01Ni4xLTItMzYuMyAwLTE4LjggMi01NS4xIDItNy45IDAtNS44LTEwLjggMC0xMC44IDEwLjItMy40IDEzLjUtMy41IDIxLjctMTMuOCA3LjctMTIuOSA3LjktNDQuNCA3LjktMTI3LjhWMTUxLjNjMC0yMi4yLTEyLjItMjguMy0yOC42LTMyLjQtOC44LTIuMi00LTExLjggMS0xMS44IDM2LjUgMCAyMC42IDIgNTcuMSAyIDMyLjcgMCAxNi41LTIgNDkuMi0yIDMuMyAwIDguNSA4LjMgMSAxMC44LTQuOSAxLjYtMjcuNiAzLjctMjcuNiAzOS4zIDAgNDUuNi0uMiA1NS44IDEgNjguOCAwIDEuMyAyLjMgMTIuOCAxMi44IDEyLjhoMTA5LjJjMTAuNSAwIDEyLjgtMTEuNSAxMi44LTEyLjggMS4yLTEzIDEtMjMuMiAxLTY4LjggMC0zNS42LTIyLjctMzcuNy0yNy42LTM5LjMtNy41LTIuNS0yLjMtMTAuOCAxLTEwLjggMzIuNyAwIDE2LjUgMiA0OS4yIDIgMzYuNSAwIDIwLjYtMiA1Ny4xLTIgNC45IDAgOS45IDkuNiAxIDExLjgtMTYuNCA0LjEtMjguNiAxMC4zLTI4LjYgMzIuNHYxMDEuMmMwIDgzLjQuMSAxMTQuOSA3LjkgMTI3LjggOC4yIDEwLjIgMTEuNCAxMC40IDIxLjcgMTMuOCA1LjggMCA3LjggMTAuOCAwIDEwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjM1MywyNTQuODc4LDEzMS41MzgsMzMuMWEyLjIwOCwyLjIwOCwwLDAsMC0zLjgyOS4wMDlMLjMsMjU0Ljg4N0EyLjIzNCwyLjIzNCwwLDAsMCwuMywyNTcuMTIyTDEyOS4xMTYsNDc4LjlhMi4yMDgsMi4yMDgsMCwwLDAsMy44My0uMDA5TDI2MC4zNTgsMjU3LjExM0EyLjIzOSwyLjIzOSwwLDAsMCwyNjAuMzUzLDI1NC44NzhabTM5LjA3OC0yNS43MTNhMi4xOSwyLjE5LDAsMCwwLDEuOSwxLjExMWg2Ni41MDlhMi4yMjYsMi4yMjYsMCwwLDAsMS45LTMuMzQxTDI1OS4xMTUsMzMuMTExYTIuMTg3LDIuMTg3LDAsMCwwLTEuOS0xLjExMUgxOTAuNzA3YTIuMjI2LDIuMjI2LDAsMCwwLTEuOSwzLjM0MVpNNTExLjcsMjU0Ljg4NiwzODQuOSwzMy4xMTJBMi4yLDIuMiwwLDAsMCwzODIuOTksMzJoLTY2LjZhMi4yMjYsMi4yMjYsMCwwLDAtMS45MDYsMy4zNEw0NDAuNjUyLDI1NiwzMTQuNDgxLDQ3Ni42NmEyLjIyNiwyLjIyNiwwLDAsMCwxLjkwNiwzLjM0aDY2LjZhMi4yLDIuMiwwLDAsMCwxLjkwNi0xLjExMkw1MTEuNywyNTcuMTE0QTIuMjQzLDIuMjQzLDAsMCwwLDUxMS43LDI1NC44ODZaTTM2Ni4wMTYsMjg0LjkxN0gyOTkuNTA4YTIuMTg3LDIuMTg3LDAsMCwwLTEuOSwxLjExMWwtMTA4LjgsMTkwLjYzMWEyLjIyNiwyLjIyNiwwLDAsMCwxLjksMy4zNDFoNjYuNTA5YTIuMTg3LDIuMTg3LDAsMCwwLDEuOS0xLjExMWwxMDguOC0xOTAuNjMxQTIuMjI2LDIuMjI2LDAsMCwwLDM2Ni4wMTYsMjg0LjkxN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9vbGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0LjUgMzUybDM4LjMuOGMtMTMuMi00LjYtMjYtMTAuMi0zOC4zLTE2Ljh6bTU3LjctNS4zdjUuM2wtMTkuNC44YzM2LjUgMTIuNSA2OS45IDE0LjIgOTQuNyA3LjItMTkuOS4yLTQ1LjgtMi42LTc1LjMtMTMuM3ptNDA4LjktMTE1LjJjMTUuOSAwIDI4LjktMTIuOSAyOC45LTI4LjlzLTEyLjktMjQuNS0yOC45LTI0LjVjLTE1LjkgMC0yOC45IDguNi0yOC45IDI0LjVzMTIuOSAyOC45IDI4LjkgMjguOXptLTI5IDEyMC41SDY0MFYyNDEuNWgtNTcuOXptLTczLjcgMGg1Ny45VjE1Ni43TDUwOC40IDE4NHptLTMxLTExOS40Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMy0xLjEtNTAuNCAxNy4xYy0xOC4yIDE4LjItMTYuOCAzMy45LTE2LjggNTIuNnMtMS40IDM0LjMgMTYuOCA1Mi41IDUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi44LTMzLjggMTYuOC01Mi41LS4xLTE4LjggMS4zLTM0LjUtMTYuOC01Mi42em0tMzkuOCA3MS45YzAgMy42LTEuOCAxMi41LTEwLjcgMTIuNXMtMTAuNy04LjktMTAuNy0xMi41di00MC40YzAtOC43IDcuMy0xMC45IDEwLjctMTAuOXMxMC43IDIuMSAxMC43IDEwLjl6bS0xMDYuMi03MS45Yy0xOC4yLTE4LjItNTAuNC0xNy4xLTUwLjQtMTcuMXMtMzIuMi0xLjEtNTAuNCAxNy4xYy0xLjkgMS45LTMuNyAzLjktNS4zIDYtMzguMi0yOS42LTcyLjUtNDYuNS0xMDIuMS02MS4xdi0yMC43bC0yMi41IDEwLjZjLTU0LjQtMjIuMS04OS0xOC4yLTk3LjMuMSAwIDAtMjQuOSAzMi44IDYxLjggMTEwLjhWMzUyaDU3Ljl2LTI4LjZjLTYuNS00LjItMTMtOC43LTE5LjQtMTMuNi0xNC44LTExLjItMjcuNC0yMS42LTM4LjQtMzEuNHYtMzFjMTMuMSAxNC43IDMwLjUgMzEuNCA1My40IDUwLjNsNC41IDMuNnYtMjkuOGMwLTYuOSAxLjctMTguMiAxMC44LTE4LjJzMTAuNiA2LjkgMTAuNiAxNVYzMTdjMTggMTIuMiAzNy4zIDIyLjEgNTcuNyAyOS42di05My45YzAtMTguNy0xMy40LTM3LjQtNDAuNi0zNy40LTE1LjgtLjEtMzAuNSA4LjItMzguNSAyMS45di01NC4zYzQxLjkgMjAuOSA4My45IDQ2LjUgOTkuOSA1OC4zLTEwLjIgMTQuNi05LjMgMjguMS05LjMgNDMuNyAwIDE4LjctMS40IDM0LjMgMTYuOCA1Mi41czUwLjQgMTcuMSA1MC40IDE3LjEgMzIuMyAxLjEgNTAuNC0xNy4xYzE4LjItMTguMiAxNi43LTMzLjggMTYuNy01Mi41IDAtMTguNSAxLjUtMzQuMi0xNi43LTUyLjN6TTY1LjIgMTg0djYzLjNjLTQ4LjctNTQuNS0zOC45LTc2LTM1LjItNzkuMSAxMy41LTExLjQgMzcuNS04IDY0LjQgMi4xem0yMjYuNSAxMjAuNWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNXYtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3JuYmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ni4zOCAzNzAuM2EzNy44IDM3LjggMCAxIDEtMzIuMDctMzIuNDJjLTc4LjI4LTExMS4zNSA1Mi0xOTAuNTMgNTItMTkwLjUzLTUuODYgNDMtOC4yNCA5MS4xNi04LjI0IDkxLjE2LTY3LjMxIDQxLjQ5LjkzIDY0LjA2IDM5LjgxIDcyLjg3YTE0MC4zOCAxNDAuMzggMCAwIDAgMTMxLjY2IDkxLjk0YzEuOTIgMCAzLjc3LS4yMSA1LjY3LS4yOGwuMTEgMTguODZjLTk5LjIyIDEuMzktMTU4LjctMjkuMTQtMTg4Ljk0LTUxLjZ6bTEwOC0zMjcuN0EzNy41NyAzNy41NyAwIDAgMCAxODEgMjEuNDVhMzcuOTUgMzcuOTUgMCAxIDAtMzEuMTcgNTQuMjJjLTIyLjU1IDI5LjkxLTUzLjgzIDg5LjU3LTUyLjQyIDE5MGwyMS44NC0uMTVjMC0uOS0uMTQtMS43Ny0uMTQtMi42OEExNDAuNDIgMTQwLjQyIDAgMCAxIDIwNyAxMzIuNzFjOC0zNy43MSAzMC43LTExNC4zIDczLjgtNDQuMjkgMCAwIDQ4LjE0IDIuMzggOTEuMTggOC4yNCAwIDAtNzcuODQtMTI4LTE4Ny41OS01NC4wNnptMzA0LjE5IDEzNC4xN2EzNy45NCAzNy45NCAwIDEgMC01My44NC0yOC43QzQwMyAxMjYuMTMgMzQ0Ljg5IDk5IDI1MS4yOCAxMDAuMzNsLjE0IDIyLjVjMi43LS4xNSA1LjM5LS40MSA4LjE0LS40MWExNDAuMzcgMTQwLjM3IDAgMCAxIDEzMC40OSA4OC43NmMzOS4xIDkgMTA1LjA2IDMxLjU4IDM4LjQ2IDcyLjU0IDAgMC0yLjM0IDQ4LjEzLTguMjEgOTEuMTYgMCAwIDEzMy40NS04MS4xNiA0OS0xOTQuNjFhMzcuNDUgMzcuNDUgMCAwIDAgMTkuMzEtMy41ek0zNzQuMDYgNDM2LjI0YzIxLjQzLTMyLjQ2IDQ2LjQyLTg5LjY5IDQ1LjE0LTE3OS42NmwtMTkuNTIuMTRjLjA4IDIuMDYuMyA0LjA3LjMgNi4xNWExNDAuMzQgMTQwLjM0IDAgMCAxLTkxLjM5IDEzMS40NWMtOC44NSAzOC45NS0zMS40NCAxMDYuNjYtNzIuNzcgMzkuNDkgMCAwLTQ4LjEyLTIuMzQtOTEuMTktOC4yMiAwIDAgNzkuOTIgMTMxLjM0IDE5MS45IDUxYTM3LjUgMzcuNSAwIDAgMCAzLjY0IDE0IDM3LjkzIDM3LjkzIDAgMSAwIDMzLjg5LTU0LjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RqYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYxLjUgMGMwIDEzMS42LTgwLjcgMTc2LjgtMTQwLjIgMjA5LjRjLS42IC4zLTEuMSAuNi0xLjYgLjljLTUzLjggMzAuMi04OC43IDQ5LjgtODkuNiAxMjJIMzJDMzIgMjAwLjggMTEyLjcgMTU1LjYgMTcyLjIgMTIzQzIyNyA5My4yIDI2Mi41IDczIDI2Mi41IDBoOTguOXpNMzAxIDMwMi42YzU0LjgtMjkuOCA5MC4zLTUwIDkwLjMtMTIzaDk4YzAgMTMxLjYtODAuNyAxNzYuNy0xNDAuMiAyMDkuNGMtNTQuOCAyOS44LTkwLjMgNTAtOTAuMyAxMjNoLTk4YzAtMTMxLjYgODAuNy0xNzYuOCAxNDAuMi0yMDkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91enogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjkgMzMwLjdIMTcxLjNWNDgwSDE3VjMyaDEwOS41djEwNC41bDMwNS4xIDg1LjZWNDgwSDI3NS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIdG1sNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMybDM0LjkgMzk1LjhMMTkxLjUgNDgwbDE1Ny42LTUyLjJMMzg0IDMySDB6bTMwOC4yIDEyNy45SDEyNC40bDQuMSA0OS40aDE3NS42bC0xMy42IDE0OC40LTk3LjkgMjd2LjNoLTEuMWwtOTguNy0yNy4zLTYtNzUuOGg0Ny43TDEzOCAzMjBsNTMuNSAxNC41IDUzLjctMTQuNSA2LTYyLjJIODQuM0w3MS41IDExMi4yaDI0MS4xbC00LjQgNDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHVic3BvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNCAyMTEuNmMtMjUuMSAyMy43LTQwLjggNTcuMy00MC44IDk0LjYgMCAyOS4zIDkuNyA1Ni4zIDI2IDc4TDIwMy4xIDQzNGMtNC40LTEuNi05LjEtMi41LTE0LTIuNS0xMC44IDAtMjAuOSA0LjItMjguNSAxMS44LTcuNiA3LjYtMTEuOCAxNy44LTExLjggMjguNnM0LjIgMjAuOSAxMS44IDI4LjVjNy42IDcuNiAxNy44IDExLjYgMjguNSAxMS42IDEwLjggMCAyMC45LTMuOSAyOC42LTExLjYgNy42LTcuNiAxMS44LTE3LjggMTEuOC0yOC41IDAtNC4yLS42LTguMi0xLjktMTIuMWw1MC01MC4yYzIyIDE2LjkgNDkuNCAyNi45IDc5LjMgMjYuOSA3MS45IDAgMTMwLTU4LjMgMTMwLTEzMC4yIDAtNjUuMi00Ny43LTExOS4yLTExMC4yLTEyOC43VjExNmMxNy41LTcuNCAyOC4yLTIzLjggMjguMi00Mi45IDAtMjYuMS0yMC45LTQ3LjktNDctNDcuOVMzMTEuMiA0NyAzMTEuMiA3My4xYzAgMTkuMSAxMC43IDM1LjUgMjguMiA0Mi45djYxLjJjLTE1LjIgMi4xLTI5LjYgNi43LTQyLjcgMTMuNi0yNy42LTIwLjktMTE3LjUtODUuNy0xNjguOS0xMjQuOCAxLjItNC40IDItOSAyLTEzLjhDMTI5LjggMjMuNCAxMDYuMyAwIDc3LjQgMCA0OC42IDAgMjUuMiAyMy40IDI1LjIgNTIuMmMwIDI4LjkgMjMuNCA1Mi4zIDUyLjIgNTIuMyA5LjggMCAxOC45LTIuOSAyNi44LTcuNmwxNjMuMiAxMTQuN3ptODkuNSAxNjMuNmMtMzguMSAwLTY5LTMwLjktNjktNjlzMzAuOS02OSA2OS02OSA2OSAzMC45IDY5IDY5LTMwLjkgNjktNjkgNjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlkZWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNS42MSwxNjUuNDhhNDkuMDcsNDkuMDcsMCwxLDAsNDkuMDYsNDkuMDZBNDkuMDgsNDkuMDgsMCwwLDAsMTI1LjYxLDE2NS40OFpNODYuMTUsNDI1Ljg0aDc4Ljk0VjI4NS4zMkg4Ni4xNVptMTUxLjQ2LTIxMS42YzAtMjAtMTAtMjIuNTMtMTguNzQtMjIuNTNIMjA0LjgyVjIzNy41aDE0LjA1QzIyOC42MiwyMzcuNSwyMzcuNjEsMjM0LjY5LDIzNy42MSwyMTQuMjRabTIwMS42OSw0NlYxNjguOTNoMjIuNzVWMjM3LjVoMzMuNjlDNDg2LjUsMTEzLjA4LDM4OC42MSw4Ni4xOSwyOTkuNjcsODYuMTlIMjA0Ljg0VjE2OWgxNGMyNS42LDAsNDEuNSwxNy4zNSw0MS41LDQ1LjI2LDAsMjguODEtMTUuNTIsNDYtNDEuNSw0NmgtMTRWNDI1Ljg4aDk0LjgzYzE0NC42MSwwLDE5NC45NC02Ny4xNiwxOTYuNzItMTY1LjY0Wm0tMTA5Ljc1LDBIMjczLjNWMTY5aDU0LjQzdjIyLjczSDI5NnYxMC41OGgzMFYyMjVIMjk2VjIzNy41aDMzLjUxWm03NC42NiwwLTUuMTYtMTcuNjdIMzY5LjMxbC01LjE4LDE3LjY3SDM0MC40N0wzNjgsMTY4LjkyaDMyLjM1bDI3LjUzLDkxLjM0Wk0yOTkuNjUsMzJIMzJWNDgwSDI5OS42NWMxNjEuODUsMCwyNTEtNzkuNzMsMjUxLTIyNC41MkM1NTAuNjIsMTcyLDUxOCwzMiwyOTkuNjUsMzJabTAsNDI2LjkySDUzLjA3VjUzLjA3SDI5OS42NWMxNDIuMSwwLDIyOS45LDY0LjYxLDIyOS45LDIwMi40MUM1MjkuNTUsMzg5LjU3LDQ0OC41NSw0NTguOTIsMjk5LjY1LDQ1OC45MlptODMuODYtMjY0Ljg1TDM3NiwyMTkuODhIMzkyLjRsLTcuNTItMjUuODFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUltZGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODkuNSAzMjMuNkg1My45M1YxODYuMkg4OS41VjMyMy42ek0xNTYuMSAyNTAuNUwxNjUuMiAxODYuMkgyMTEuNVYzMjMuNkgxODAuNVYyMzAuOUwxNjcuMSAzMjMuNkgxNDUuOEwxMzIuOCAyMzIuOUwxMzIuNyAzMjMuNkgxMDEuNVYxODYuMkgxNDcuNkMxNDguMSAxOTQuNSAxNTAuNCAyMDQuMyAxNTEuOSAyMTUuNkwxNTYuMSAyNTAuNXpNMjIzLjcgMzIzLjZWMTg2LjJIMjUwLjNDMjY3LjMgMTg2LjIgMjc3LjMgMTg3LjEgMjgzLjMgMTg4LjZDMjg5LjQgMTkwLjMgMjk0IDE5Mi44IDI5Ny4yIDE5Ni41QzMwMC4zIDE5OS44IDMwMi4zIDIwMy4xIDMwMyAyMDguNUMzMDMuOSAyMTIuOSAzMDQuNCAyMjEuNiAzMDQuNCAyMzQuN1YyODIuOUMzMDQuNCAyOTUuMiAzMDMuNyAzMDMuNCAzMDIuNSAzMDcuNkMzMDEuNCAzMTEuNyAyOTkuNCAzMTUgMjk2LjUgMzE3LjNDMjkzLjcgMzE5LjcgMjkwLjEgMzIxLjQgMjg1LjggMzIyLjNDMjgxLjYgMzIzLjEgMjc1LjIgMzIzLjYgMjY2LjcgMzIzLjZIMjIzLjd6TTI1OS4yIDIwOS43VjI5OS4xQzI2NC4zIDI5OS4xIDI2Ny41IDI5OC4xIDI2OC42IDI5Ni44QzI2OS43IDI5NC44IDI3MC40IDI4OS4yIDI3MC40IDI4MC4xVjIyNi44QzI3MC40IDIyMC42IDI3MC4zIDIxNi42IDI2OS43IDIxNC44QzI2OS40IDIxMyAyNjguNSAyMTEuOCAyNjcuMSAyMTAuMUMyNjUuNyAyMTAuMSAyNjMgMjA5LjcgMjU5LjIgMjA5LjdWMjA5Ljd6TTMxNi41IDMyMy42VjE4Ni4ySDM1MC42VjIzMC4xQzM1My41IDIyNy43IDM1Ni43IDIyNS4yIDM2MC4xIDIyMy41QzM2My43IDIyMiAzNjguOSAyMjEuMSAzNzIuOSAyMjEuMUMzNzcuNyAyMjEuMSAzODEuOCAyMjEuOSAzODUuMiAyMjMuM0MzODguNiAyMjQuOCAzOTEuMiAyMjYuOCAzOTMuMiAyMjkuNUMzOTQuOSAyMzIuMSAzOTUuOSAyMzQuOCAzOTYuMyAyMzcuM0MzOTYuNyAyMzkuOSAzOTYuMSAyNDUuMyAzOTYuMSAyNTMuNVYyOTIuMUMzOTYuMSAzMDAuMyAzOTYuMyAzMDYuNCAzOTUuMyAzMTAuNUMzOTQuMiAzMTQuNSAzOTEuNSAzMTguMSAzODcuNSAzMjAuMUMzODMuNCAzMjQgMzc4LjYgMzI1LjQgMzcyLjkgMzI1LjRDMzY4LjkgMzI1LjQgMzYzLjcgMzI0LjUgMzYwLjIgMzIyLjlDMzU2LjcgMzIxLjEgMzUzLjUgMzE4LjQgMzUwLjYgMzE0LjlMMzQ4LjUgMzIzLjZMMzE2LjUgMzIzLjZ6TTM2MS42IDMwMi45QzM2Mi4zIDMwMS4xIDM2Mi42IDI5Ni45IDM2Mi42IDI5MC40VjI1NUMzNjIuNiAyNDkuNCAzNjIuMyAyNDUuNSAzNjEuNSAyNDMuOEMzNjAuOCAyNDEuOSAzNTcuOCAyNDEuMSAzNTUuNyAyNDEuMUMzNTMuNyAyNDEuMSAzNTIuMyAyNDEuOSAzNTEuNiAyNDMuNEMzNTEgMjQ0LjkgMzUwLjYgMjQ4LjggMzUwLjYgMjU1VjI5MS40QzM1MC42IDI5Ny41IDM1MSAzMDEuNCAzNTEuOCAzMDNDMzUyLjQgMzA0LjcgMzUzLjkgMzA1LjUgMzU1LjkgMzA1LjVDMzU4LjEgMzA1LjUgMzYwLjEgMzA0LjcgMzYxLjYgMzAyLjlMMzYxLjYgMzAyLjl6TTQxOC40IDMyLjA0QzQzNC4xIDMzLjI3IDQ0Ny4xIDQ3LjI4IDQ0Ny4xIDYzLjkyVjQ0OC4xQzQ0Ny4xIDQ2NC41IDQzNS4yIDQ3OC41IDQxOC45IDQ3OS4xQzQxOC42IDQ3OS4xIDQxOC40IDQ4MCA0MTguMSA0ODBIMjkuODhDMjkuNiA0ODAgMjkuMzIgNDc5LjEgMjkuMDQgNDc5LjlDMTMuMzEgNDc4LjUgMS4wOTMgNDY2LjEgMCA0NDkuN0wuMDE4NiA2MS43OEMxLjA4MSA0NS44OCAxMy44MiAzMy4wOSAzMC4yNiAzMS4xSDQxNy43QzQxNy45IDMxLjEgNDE4LjIgMzIuMDEgNDE4LjQgMzIuMDRMNDE4LjQgMzIuMDR6TTMwLjI3IDQxLjI2QzE5IDQyLjAxIDEwLjAyIDUxLjAxIDkuMjU3IDYyLjRWNDQ5LjdDOS42MyA0NTUuMSAxMS45MSA0NjAuMiAxNS43IDQ2NEMxOS40OCA0NjcuOSAyNC41MSA0NzAuMyAyOS44OSA0NzAuN0g0MTguMUM0MjkuNiA0NjkuNyA0MzguNyA0NTkuMSA0MzguNyA0NDguMVY2My45MUM0MzguNyA1OC4xNyA0MzYuNiA1Mi42NSA0MzIuNyA0OC40NUM0MjguOCA0NC4yNCA0MjMuNCA0MS42NyA0MTcuNyA0MS4yNkwzMC4yNyA0MS4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5zdGFncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC4xIDE0MWMtNjMuNiAwLTExNC45IDUxLjMtMTE0LjkgMTE0LjlzNTEuMyAxMTQuOSAxMTQuOSAxMTQuOVMzMzkgMzE5LjUgMzM5IDI1NS45IDI4Ny43IDE0MSAyMjQuMSAxNDF6bTAgMTg5LjZjLTQxLjEgMC03NC43LTMzLjUtNzQuNy03NC43czMzLjUtNzQuNyA3NC43LTc0LjcgNzQuNyAzMy41IDc0LjcgNzQuNy0zMy42IDc0LjctNzQuNyA3NC43em0xNDYuNC0xOTQuM2MwIDE0LjktMTIgMjYuOC0yNi44IDI2LjgtMTQuOSAwLTI2LjgtMTItMjYuOC0yNi44czEyLTI2LjggMjYuOC0yNi44IDI2LjggMTIgMjYuOCAyNi44em03Ni4xIDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTguOCAzODhjLTcuOCAxOS42LTIyLjkgMzQuNy00Mi42IDQyLjYtMjkuNSAxMS43LTk5LjUgOS0xMzIuMSA5cy0xMDIuNyAyLjYtMTMyLjEtOWMtMTkuNi03LjgtMzQuNy0yMi45LTQyLjYtNDIuNi0xMS43LTI5LjUtOS05OS41LTktMTMyLjFzLTIuNi0xMDIuNyA5LTEzMi4xYzcuOC0xOS42IDIyLjktMzQuNyA0Mi42LTQyLjYgMjkuNS0xMS43IDk5LjUtOSAxMzIuMS05czEwMi43LTIuNiAxMzIuMSA5YzE5LjYgNy44IDM0LjcgMjIuOSA0Mi42IDQyLjYgMTEuNyAyOS41IDkgOTkuNSA5IDEzMi4xczIuNyAxMDIuNy05IDEzMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnN0YWxvZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuMzg0LDQ4MEgzODcuMTEzTDUwMi41NTQsMjc1Ljc2NSwyMDQuMjI5LDMzMy4yMTFaTTUwNC43MjYsMjQwLjA3OCwzODcuMTEzLDMySDE1NS42NjlMMzYwLjIzLDI2Ny45Wk0xMjQuMzg2LDQ4LjgwOSw3LjI3NCwyNTYsMTIzLjIzNiw0NjEuMTU0LDIyNS42MjcsMTY1LjU2MVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW50ZXJjb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyIDMySDU2QzI1LjEgMzIgMCA1Ny4xIDAgODh2MzM2YzAgMzAuOSAyNS4xIDU2IDU2IDU2aDMzNmMzMC45IDAgNTYtMjUuMSA1Ni01NlY4OGMwLTMwLjktMjUuMS01Ni01Ni01NnptLTEwOC4zIDgyLjFjMC0xOS44IDI5LjktMTkuOCAyOS45IDB2MTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTE0LjF6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYyMTYuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxMDYuNnptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjExNC4xek01OS43IDE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxNDR6bTMyMy40IDIyNy44Yy03Mi44IDYzLTI0MS43IDY1LjQtMzE4LjEgMC0xNS0xMi44IDQuNC0zNS41IDE5LjQtMjIuNyA2NS45IDU1LjMgMjE2LjEgNTMuOSAyNzkuMyAwIDE0LjktMTIuOSAzNC4zIDkuOCAxOS40IDIyLjd6bTUuMi05My41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxMzQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW50ZXJuZXRFeHBsb3JlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODMuMDQ5IDE1OS43MDZjMTAuODU1LTI0LjU3NSAyMS40MjQtNjAuNDM4IDIxLjQyNC04Ny44NzEgMC03Mi43MjItNzkuNjQxLTk4LjM3MS0yMDkuNjczLTM4LjU3Ny0xMDcuNjMyLTcuMTgxLTIxMS4yMjEgNzMuNjctMjM3LjA5OCAxODYuNDU3IDMwLjg1Mi0zNC44NjIgNzguMjcxLTgyLjI5OCAxMjEuOTc3LTEwMS4xNThDMTI1LjQwNCAxNjYuODUgNzkuMTI4IDIyOC4wMDIgNDMuOTkyIDI5MS43MjUgMjMuMjQ2IDMyOS42NTEgMCAzOTAuOTQgMCA0MzYuNzQ3YzAgOTguNTc1IDkyLjg1NCA4Ni41IDE4MC4yNTEgNDIuMDA2IDMxLjQyMyAxNS40MyA2Ni41NTkgMTUuNTczIDEwMS42OTUgMTUuNTczIDk3LjEyNCAwIDE4NC4yNDktNTQuMjk0IDIxNi44MTQtMTQ2LjAyMkgzNzcuOTI3Yy01Mi41MDkgODguNTkzLTE5Ni44MTkgNTIuOTk2LTE5Ni44MTktNDcuNDM2SDUwOS45YzYuNDA3LTQzLjU4MS0xLjY1NS05NS43MTUtMjYuODUxLTE0MS4xNjJ6TTY0LjU1OSAzNDYuODc3YzE3LjcxMSA1MS4xNSA1My43MDMgOTUuODcxIDEwMC4yNjYgMTIzLjMwNC04OC43NDEgNDguOTQtMTczLjI2NyAyOS4wOTYtMTAwLjI2Ni0xMjMuMzA0em0xMTUuOTc3LTEwOC44NzNjMi01NS4xNTEgNTAuMjc2LTk0Ljg3MSAxMDMuOTgtOTQuODcxIDUzLjQxOCAwIDEwMS45ODEgMzkuNzIgMTAzLjk4MSA5NC44NzFIMTgwLjUzNnptMTg0LjUzNi0xODcuNmMyMS40MjUtMTAuMjg3IDQ4LjU2My0yMi4wMDMgNzIuNTU4LTIyLjAwMyAzMS40MjIgMCA1NC4yNzQgMjEuNzE3IDU0LjI3NCA1My43MjIgMCAyMC4wMDMtNy40MjcgNDkuMDA3LTE0LjU2OSA2Ny44NjctMjYuMjgtNDIuMjkyLTY1Ljk4Ni04MS41ODQtMTEyLjI2My05OS41ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUludmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy40IDMySDQwLjZDMTguMiAzMiAwIDUwLjIgMCA3Mi42djM2Ni44QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBoMzY2LjhjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZWNzIuNmMwLTIyLjQtMTguMi00MC42LTQwLjYtNDAuNnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45LjdsLTI1LjggMTAzLjNIMTc3bDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zLjEtMTQuMy45LTE0IDIzLTEwNC4xSDgxLjdsOS43LTM1LjZoNzYuNGMtMzMuNiAxMzMuNy0zMi42IDEyNi45LTMyLjkgMTM4LjIgMCAyMC45IDQwLjkgMTMuNSA1Ny40LTIzLjJsMTkuOC03OS40aC0zMi4zbDkuNy0zNS42aDY4LjhsLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlveGhvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE2IDE2MGgtNjcuM0M1MTEuMiA3MC43IDQyMi45IDggMzIwIDggMTgzIDggNzIgMTE5IDcyIDI1NmMwIDE2LjQgMS42IDMyLjUgNC43IDQ4SDI0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGg2Ny4zYzM3LjUgODkuMyAxMjUuOCAxNTIgMjI4LjcgMTUyIDEzNyAwIDI0OC0xMTEgMjQ4LTI0OCAwLTE2LjQtMS42LTMyLjUtNC43LTQ4SDYxNmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNHptLTk2IDk2YzAgMTEwLjUtODkuNSAyMDAtMjAwIDIwMC03NS43IDAtMTQxLjYtNDItMTc1LjUtMTA0SDQyNGMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNEgxMjUuOGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0SDIxNmMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjk4LjJjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4em0tMzA0LTI0aDIwOGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjItMTAuNyAyNC0yNCAyNEgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTMuMiAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdGNoSW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzEuOTIgMzQuNzdDNTAuMiA0Ny42NyA3LjQgOTYuODQgNyAxMDkuNzN2MjEuMzRjMCAyNy4wNiAyNS4yOSA1MC44NCA0OC4yNSA1MC44NCAyNy41NyAwIDUwLjU0LTIyLjg1IDUwLjU0LTUwIDAgMjcuMTIgMjIuMTggNTAgNDkuNzYgNTBzNDktMjIuODUgNDktNTBjMCAyNy4xMiAyMy41OSA1MCA1MS4xNiA1MGguNWMyNy41NyAwIDUxLjE2LTIyLjg1IDUxLjE2LTUwIDAgMjcuMTIgMjEuNDcgNTAgNDkgNTBzNDkuNzYtMjIuODUgNDkuNzYtNTBjMCAyNy4xMiAyMyA1MCA1MC41NCA1MCAyMyAwIDQ4LjI1LTIzLjc4IDQ4LjI1LTUwLjg0di0yMS4zNGMtLjQtMTIuOS00My4yLTYyLjA3LTY0LjkyLTc1QzM3Mi41NiAzMi40IDMyNS43NiAzMiAyNTYgMzJTOTEuMTQgMzMuMSA3MS45MiAzNC43N3ptMTMyLjMyIDEzNC4zOWMtMjIgMzguNC03Ny45IDM4LjcxLTk5Ljg1LjI1LTEzLjE3IDIzLjE0LTQzLjE3IDMyLjA3LTU2IDI3LjY2LTMuODcgNDAuMTUtMTMuNjcgMjM3LjEzIDE3LjczIDI2OS4xNSA4MCAxOC42NyAzMDIuMDggMTguMTIgMzc5Ljc2IDAgMzEuNjUtMzIuMjcgMjEuMzItMjMyIDE3Ljc1LTI2OS4xNS0xMi45MiA0LjQ0LTQyLjg4LTQuNi01Ni0yNy42Ni0yMiAzOC41Mi03Ny44NSAzOC4xLTk5Ljg1LS4yNC03LjEgMTIuNDktMjMuMDUgMjguOTQtNTEuNzYgMjguOTRhNTcuNTQgNTcuNTQgMCAwIDEtNTEuNzUtMjguOTR6bS00MS41OCA1My43N2MxNi40NyAwIDMxLjA5IDAgNDkuMjIgMTkuNzhhNDM2LjkxIDQzNi45MSAwIDAgMSA4OC4xOCAwQzMxOC4yMiAyMjMgMzMyLjg1IDIyMyAzNDkuMzEgMjIzYzUyLjMzIDAgNjUuMjIgNzcuNTMgODMuODcgMTQ0LjQ1IDE3LjI2IDYyLjE1LTUuNTIgNjMuNjctMzMuOTUgNjMuNzMtNDIuMTUtMS41Ny02NS40OS0zMi4xOC02NS40OS02Mi43OS0zOS4yNSA2LjQzLTEwMS45MyA4Ljc5LTE1NS41NSAwIDAgMzAuNjEtMjMuMzQgNjEuMjItNjUuNDkgNjIuNzktMjguNDItLjA2LTUxLjItMS41OC0zMy45NC02My43MyAxOC42Ny02NyAzMS41Ni0xNDQuNDUgODMuODgtMTQ0LjQ1ek0yNTYgMjcwLjc5cy00NC4zOCA0MC43Ny01Mi4zNSA1NS4yMWwyOS0xLjE3djI1LjMyYzAgMS41NSAyMS4zNC4xNiAyMy4zMy4xNiAxMS42NS41NCAyMy4zMSAxIDIzLjMxLS4xNnYtMjUuMjhsMjkgMS4xN2MtOC0xNC40OC01Mi4zNS01NS4yNC01Mi4zNS01NS4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSXR1bmVzTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yLjgtNS4yIDMtOS42IDcuMS0xMi45IDQuMi0zLjUgMTEuOC01LjUgMTMuNC01LjUgMjA0LTM4LjIgMjI4LjktNDMuMSAyMzIuNC00My4xIDExLjUtLjggMTguMSA2IDE4LjEgMTcuNi4yIDM0NC41IDEuMSAzMjYtMS44IDMzOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdHVuZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjYgODAuM0MxMjkgODAuMyA1Mi41IDE1NyA1Mi41IDI1MS41UzEyOSA0MjIuOCAyMjMuNiA0MjIuOHMxNzEuMi03Ni43IDE3MS4yLTE3MS4yYzAtOTQuNi03Ni43LTE3MS4zLTE3MS4yLTE3MS4zem03OS40IDI0MGMtMy4yIDEzLjYtMTMuNSAyMS4yLTI3LjMgMjMuOC0xMi4xIDIuMi0yMi4yIDIuOC0zMS45LTUtMTEuOC0xMC0xMi0yNi40LTEuNC0zNi44IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgMy4yLTMuNiAyLjItMiAyLjItODAuOCAwLTUuNi0yLjctNy4xLTguNC02LjEtNCAuNy05MS45IDE3LjEtOTEuOSAxNy4xLTUgMS4xLTYuNyAyLjYtNi43IDguMyAwIDExNi4xLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcuOS0xMjcgMi42LTEzMy43LjQtMi42IDEuNS00LjggMy41LTYuNCAyLjEtMS43IDUuOC0yLjcgNi43LTIuNyAxMDEtMTkgMTEzLjMtMjEuNCAxMTUuMS0yMS40IDUuNy0uNCA5IDMgOSA4LjctLjEgMTcwLjYuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkgxMDIuOEM0NS45IDMyIDAgNzcuOSAwIDEzNC44djI0Mi40QzAgNDM0LjEgNDUuOSA0ODAgMTAyLjggNDgwaDI0Mi40YzU3IDAgMTAyLjgtNDUuOSAxMDIuOC0xMDIuOFYxMzQuOEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNDQ0Yy0xMDYuMyAwLTE5Mi41LTg2LjItMTkyLjUtMTkyLjVTMTE3LjMgNTkgMjIzLjYgNTlzMTkyLjUgODYuMiAxOTIuNSAxOTIuNVMzMjkuOSA0NDQgMjIzLjYgNDQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKYXZhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Ny43NCAzMTIuOWM5LjgtNi43IDIzLjQtMTIuNSAyMy40LTEyLjVzLTM4LjcgNy03Ny4yIDEwLjJjLTQ3LjEgMy45LTk3LjcgNC43LTEyMy4xIDEuMy02MC4xLTggMzMtMzAuMSAzMy0zMC4xcy0zNi4xLTIuNC04MC42IDE5Yy01Mi41IDI1LjQgMTMwIDM3IDIyNC41IDEyLjF6bS04NS40LTMyLjFjLTE5LTQyLjctODMuMS04MC4yIDAtMTQ1LjhDMjk2IDUzLjIgMjQyLjg0IDAgMjQyLjg0IDBjMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yem0xMTQuNi0xNzYuMmMuMSAwLTE3NS4yIDQzLjgtOTEuNSAxNDAuMiAyNC43IDI4LjQtNi41IDU0LTYuNSA1NHM2Mi43LTMyLjQgMzMuOS03Mi45Yy0yNi45LTM3LjgtNDcuNS01Ni42IDY0LjEtMTIxLjN6bS02LjEgMjcwLjVhMTIuMTkgMTIuMTkgMCAwIDEtMiAyLjZjMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuM2ExNy4zMyAxNy4zMyAwIDAgMC04LjIgNi4zIDcwLjQ1IDcwLjQ1IDAgMCAxIDExLTNjMzEtNi41IDc1LjUgNDEuNS0yMC42IDkxLjR6TTM0OCA0MzcuNHMxNC41IDExLjktMTUuOSAyMS4yYy01Ny45IDE3LjUtMjQwLjggMjIuOC0yOTEuNi43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMkMyMzIuODQgNTA5LjQgNDAxIDQ2MS4zIDM0OCA0MzcuNHpNMTI0LjQ0IDM5NmMtNzguNyAyMiA0Ny45IDY3LjQgMTQ4LjEgMjQuNWExODUuODkgMTg1Ljg5IDAgMCAxLTI4LjItMTMuOGMtNDQuNyA4LjUtNjUuNCA5LjEtMTA2IDQuNS0zMy41LTMuOC0xMy45LTE1LjItMTMuOS0xNS4yem0xNzkuOCA5Ny4yYy03OC43IDE0LjgtMTc1LjggMTMuMS0yMzMuMyAzLjYgMC0uMSAxMS44IDkuNyA3Mi40IDEzLjYgOTIuMiA1LjkgMjMzLjgtMy4zIDIzNy4xLTQ2LjkgMCAwLTYuNCAxNi41LTc2LjIgMjkuN3pNMjYwLjY0IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjlhNjAuMzcgNjAuMzcgMCAwIDEtMjEuMS0xMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZWRpT3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk4LjUgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOXYtMi40IDEtMSAyLjRjMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43cy0xNTQuNC03MS43LTY4LjYtMjMwLjFjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2g0LjFjMjA1LTIuNCAyMjItMTg1LjcgMjIyLTE4NS43LTIzLjYgNjEuNS00OS45IDc3LjctNDkuOSA3Ny43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZW5raW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Ny4xIDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44LjIgNyA0LjEgMTUuOCAyLjcgMjIuNC0uNyAzLjMtNS4yIDcuNi02LjEgOS44LTExLjYgMjcuNy0yLjMgNjQgMTEuMSA4My43IDguMSAxMS45IDIxLjUgMjIuNCAzOS4yIDI1LjIuNyAxMC42IDMuMyAxOS43IDguMiAzMC40IDMuMSA2LjggMTQuNyAxOSAxMC40IDI3LjctMi4yIDQuNC0yMSAxMy44LTI3LjMgMTcuNkM4OSA0MDcuMiA3My43IDQxNSA1NC4yIDQyOWMtMTIuNiA5LTMyLjMgMTAuMi0yOS4yIDMxLjEgMi4xIDE0LjEgMTAuMSAzMS42IDE0LjcgNDUuOC43IDIgMS40IDQuMSAyLjEgNmg0MjJjNC45LTE1LjMgOS43LTMwLjkgMTQuNi00Ny4yIDMuNC0xMS40IDEwLjItMjcuOCA4LjctMzkuN3pNMjA1LjkgMzMuN2MxLjgtLjUgMy40LjcgNC45IDIuNC0uMiA1LjItNS40IDUuMS04LjkgNi44LTUuNCA2LjctMTMuNCA5LjgtMjAgMTcuMi02LjggNy41LTE0LjQgMjcuNy0yMy40IDMwLTQuNSAxLjEtOS43LS44LTEzLjYtLjUtMTAuNC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6bS0xMDQuOCA5My42YzEzLjUtMTQuOSAzMi4xLTI0LjEgNTQuOC0yNS45IDExLjcgMjkuNy04LjQgNjUtLjkgOTcuNiAyLjMgOS45IDEwLjIgMjUuNC0yLjQgMjUuNy4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIuNSAyMi41LS40IDI2LjktNy42LS42LTE3LjUtOC44LTMxLjYtOC4yLTQ3LjcgMS0zMC4zIDE3LjUtNTcuNiA0LjgtODcuNCAxMy42LTMwLjkgNTMuNS01NS4zIDgzLjEtNzAgMzYuNi0xOC4zIDk0LjktMy43IDEyOS4zIDE1LjggMTkuNyAxMS4xIDM0LjQgMzIuNyA0OC4zIDUwLjctMTkuNS01LjgtMzYuMSA0LjItMzMuMSAyMC4zIDE2LjMtMTQuOSA0NC4yLS4yIDUyLjUgMTYuNCA3LjkgMTUuOCA3LjggMzkuMyA5IDYyLjggMi45IDU3LTEwLjQgMTE1LjktMzkuMSAxNTcuMS03LjcgMTEtMTQuMSAyMy0yNC45IDMwLjYtMjYgMTguMi02NS40IDM0LjctOTkuMiAyMy40LTQ0LjctMTUtNjUtNDQuOC04OS41LTc4LjguNyAxOC43IDEzLjggMzQuMSAyNi44IDQ4LjQgMTEuMyAxMi41IDI1IDI2LjYgMzkuNyAzMi40LTEyLjMtMi45LTMxLjEtMy44LTM2LjIgNy4yLTI4LjYtMS45LTU1LjEtNC44LTY4LjctMjQuMi0xMC42LTE1LjQtMjEuNC00MS40LTI2LjMtNjEuNHptMjIyIDEyNC4xYzQuMS0zIDExLjEtMi45IDE3LjQtMy42LTUuNC0yLjctMTMtMy43LTE5LjMtMi4yLS4xLTQuMi0yLTYuOC0zLjItMTAuMiAxMC42LTMuOCAzNS41LTI4LjUgNDkuNi0yMC4zIDYuNyAzLjkgOS41IDI2LjIgMTAuMSAzNyAuNCA5LS44IDE4LTQuNSAyMi44LTE4LjgtLjYtMzUuOC0yLjgtNTAuNy03IC45LTYuMS0xLTEyLjEuNi0xNi41em0tMTcuMi0yMGMtMTYuOC44LTI2LTEuMi0zOC4zLTEwLjguMi0uOCAxLjQtLjUgMS41LTEuNCAxOCA4IDQwLjgtMy4zIDU5LTQuOS03LjkgNS4xLTE0LjYgMTEuNi0yMi4yIDE3LjF6bS0xMi4xIDMzLjJjLTEuNi05LjQtMy41LTEyLTIuOC0yMC4yIDI1LTE2LjYgMjkuNyAyOC42IDIuOCAyMC4yek0yMjYgNDM4LjZjLTExLjYtLjctNDguMS0xNC0zOC41LTIzLjcgOS40IDYuNSAyNy41IDQuOSA0MS4zIDcuMy44IDQuNC0yLjggMTAuMi0yLjggMTYuNHpNNTcuNyA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41LjcgMi4zIDEuNCA0LjcgMi4yIDcuMkg1Ny43em0yNDAuNiA1LjdoLS44Yy4zLS4yLjUtLjQuOC0uNXYuNXptNy41LTUuN2MyLjEtMS40IDQuMy0yLjggNi40LTQuMyAxLjEgMS40IDIuMiAyLjggMy4yIDQuM2gtOS42em0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41LjQgMTcgMi43IDIzLjUgNS45LS4xIDMuNC0uMyA3LS40IDEwLjZ6bTUzLjQgMjQuN2gtMTRjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGgtMTcuNGMtMi44LTQuNC01LjctOC42LTguOS0xMi41IDIuMS0yLjIgNC00LjcgNi02LjkgOSAzLjcgMTQuOC00LjkgMjEuNy00LjIgNy45LjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44LjYtMTEuNSAxNS42LTcuMyAyOSAxLjMgMzUuNyAxMS41SDM4M3ptODMuNC0zN2MtMi4zIDExLjItNS44IDI0LTkuOSAzNy4xLS4yLS4xLS40LS4xLS42LS4xSDQyOGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMS44IDUuNS0yLjYgMTguOS0zLjggMjUuMXpNMjIyLjIgMTMwLjVjNS40LTE0LjkgMjcuMi0zNC43IDQ1LTMyIDcuNyAxLjIgMTggOC4yIDEyLjIgMTcuNy0zMC4yLTctNDUuMiAxMi42LTU0LjQgMzMuMS04LjEtMi00LjktMTMuMS0yLjgtMTguOHptMTg0LjEgNjMuMWM4LjItMy42IDIyLjQtLjcgMjkuNi01LjMtNC4yLTExLjUtMTAuMy0yMS40LTkuMy0zNy43LjUgMCAxIDAgMS40LjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bTIwLjQtNDN6bS0xMTcuMiA0NS43Yy02LjgtMTAuOS0xOS0zMi41LTE0LjUtNDUuMyA2LjUgMTEuOSA4LjYgMjQuNCAxNy44IDMzLjMgNC4xIDQgMTIuMiA5IDguMiAyMC4yLS45IDIuNy03LjggOC42LTExLjcgOS43LTE0LjQgNC4zLTQ3LjkuOS0zNi42LTE3LjEgMTEuOS43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6bS0xNDEuOSAxMi40YzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6bTkyLjIgNDYuN2MtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKaXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5MCAyNDEuN0M0MTcuMSAxNjkgMzIwLjYgNzEuOCAyNDguNSAwIDgzIDE2NC45IDYgMjQxLjcgNiAyNDEuN2MtNy45IDcuOS03LjkgMjAuNyAwIDI4LjdDMTM4LjggNDAyLjcgNjcuOCAzMzEuOSAyNDguNSA1MTJjMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42em0tMjQxLjUgOTBsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvZ2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3OC4xIDQ1QzMzNy42IDE5LjkgMjkyLjYgOCAyNDguMiA4IDE2NSA4IDgzLjggNDkuOSAzNi45IDEyNS45Yy03MS45IDExNi42LTM1LjYgMjY5LjMgODEgMzQxLjJzMjY5LjMgMzUuNiAzNDEuMi04MC45YzcxLjktMTE2LjYgMzUuNi0yNjkuNC04MS0zNDEuMnptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnptLTIwMC44LTg2LjNjLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuN0M4Ny4zIDE2MS41IDQ4LjYgMjUyLjEgMzcuNiAyOTNjLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjFDMTI4IDQzLjQgMjU5LjYgMTIuMiAzNjAuMSA3NC4xYzc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNsMTY5LjUtMS42IDQ2LjUtMjMuNHMzLjYtOS41LTE5LjEtMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm9vbWxhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS42IDkyLjFDLjYgNTguOCAyNy40IDMyIDYwLjQgMzJjMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOUMyMC40IDE0NC42LjYgMTIwLjcuNiA5Mi4xem0xMjkuNSAxMTYuNGw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6bTI2Ni4zIDE1Mi4yYzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMkMwIDQ1My4yIDI2LjggNDgwIDU5LjggNDgwYzI4LjYgMCA1Mi41LTE5LjggNTguNi00Ni43IDMyLjcgOC4yIDY4LjUtLjYgOTQuMi0yNiAzMi4xLTMyIDEyLjItMTIuNCA5OS41LTk5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0yNDMuOCAzNDkuNGMwIDQzLjYtMjUuNiA2My41LTYyLjkgNjMuNS0zMy43IDAtNTMuMi0xNy40LTYzLjItMzguNWwzNC4zLTIwLjdjNi42IDExLjcgMTIuNiAyMS42IDI3LjEgMjEuNiAxMy44IDAgMjIuNi01LjQgMjIuNi0yNi41VjIzNy43aDQyLjF2MTQzLjd6bTk5LjYgNjMuNWMtMzkuMSAwLTY0LjQtMTguNi03Ni43LTQzbDM0LjMtMTkuOGM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNiAxNy40IDAgMjguNi04LjcgMjguNi0yMC44IDAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41IDAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42IDI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMTgtMTIuMyAwLTIwLjEgNy44LTIwLjEgMTggMCAxMi42IDcuOCAxNy43IDI1LjkgMjUuNmwxMC41IDQuNWMzNS44IDE1LjMgNTUuOSAzMSA1NS45IDY2LjIgMCAzNy44LTI5LjggNTguNi02OS43IDU4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpzZmlkZGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC42MzQgMjM3LjQ2MmMtNC43MjctMi42MjEtNS42NjQtNS43NDgtNi4zODEtMTAuNzc2LTIuMzUyLTE2LjQ4OC0zLjUzOS0zMy42MTktOS4wOTctNDkuMDk1LTM1Ljg5NS05OS45NTctMTUzLjk5LTE0My4zODYtMjQ2Ljg0OS05MS42NDYtMjcuMzcgMTUuMjUtNDguOTcxIDM2LjM2OS02NS40OTMgNjMuOTAzLTMuMTg0LTEuNTA4LTUuNDU4LTIuNzEtNy44MjQtMy42ODYtMzAuMTAyLTEyLjQyMS01OS4wNDktMTAuMTIxLTg1LjMzMSA5LjE2Ny0yNS41MzEgMTguNzM3LTM2LjQyMiA0NC41NDgtMzIuNjc2IDc2LjQwOC4zNTUgMy4wMjUtMS45NjcgNy42MjEtNC41MTQgOS41NDUtMzkuNzEyIDI5Ljk5Mi01Ni4wMzEgNzguMDY1LTQxLjkwMiAxMjQuNjE1IDEzLjgzMSA0NS41NjkgNTcuNTE0IDc5Ljc5NiAxMDUuNjA4IDgxLjQzMyAzMC4yOTEgMS4wMzEgNjAuNjM3LjU0NiA5MC45NTkuNTM5IDg0LjA0MS0uMDIxIDE2OC4wOS41MzEgMjUyLjEyLS40OCA1Mi42NjQtLjYzNCA5Ni4xMDgtMzYuODczIDEwOC4yMTItODcuMjkzIDExLjU0LTQ4LjA3NC0xMS4xNDQtOTcuMy01Ni44MzItMTIyLjYzNHptMjEuMTA3IDE1Ni44OGMtMTguMjMgMjIuNDMyLTQyLjM0MyAzNS4yNTMtNzEuMjggMzUuNjUtNTYuODc0Ljc4MS0xMTMuNzY3LjIzLTE3MC42NTIuMjMgMCAuNy0xNjMuMDI4LjE1OS0xNjMuNzI4LjE1NC00My44NjEtLjMzMi03Ni43MzktMTkuNzY2LTk1LjE3NS01OS45OTUtMTguOTAyLTQxLjI0NS00LjAwNC05MC44NDggMzQuMTg2LTExNi4xMDYgOS4xODItNi4wNzMgMTIuNTA1LTExLjU2NiAxMC4wOTYtMjMuMTM2LTUuNDktMjYuMzYxIDQuNDUzLTQ3Ljk1NiAyNi40Mi02Mi45ODEgMjIuOTg3LTE1LjcyMyA0Ny40MjItMTYuMTQ2IDcyLjAzNC0zLjA4MyAxMC4yNjkgNS40NSAxNC42MDcgMTEuNTY0IDIyLjE5OC0yLjUyNyAxNC4yMjItMjYuMzk5IDM0LjU1Ny00Ni43MjcgNjAuNjcxLTYxLjI5NCA5Ny40Ni01NC4zNjYgMjI4LjM3IDcuNTY4IDIzMC4yNCAxMzIuNjk3LjEyMiA4LjE1IDIuNDEyIDEyLjQyOCA5Ljg0OCAxNS44OTQgNTcuNTYgMjYuODI5IDc0LjQ1NiA5Ni4xMjIgMzUuMTQyIDE0NC40OTd6bS04Ny43ODktODAuNDk5Yy01Ljg0OCAzMS4xNTctMzQuNjIyIDU1LjA5Ni02Ni42NjYgNTUuMDk1LTE2Ljk1My0uMDAxLTMyLjA1OC02LjU0NS00NC4wNzktMTcuNzA1LTI3LjY5Ny0yNS43MTMtNzEuMTQxLTc0Ljk4LTk1LjkzNy05My4zODctMjAuMDU2LTE0Ljg4OC00MS45OS0xMi4zMzMtNjAuMjcyIDMuNzgyLTQ5Ljk5NiA0NC4wNzEgMTUuODU5IDEyMS43NzUgNjcuMDYzIDc3LjE4OCA0LjU0OC0zLjk2IDcuODQtOS41NDMgMTIuNzQ0LTEyLjg0NCA4LjE4NC01LjUwOSAyMC43NjYtLjg4NCAxMy4xNjggMTAuNjIyLTE3LjM1OCAyNi4yODQtNDkuMzMgMzguMTk3LTc4Ljg2MyAyOS4zMDEtMjguODk3LTguNzA0LTQ4Ljg0LTM1Ljk2OC00OC42MjYtNzAuMTc5IDEuMjI1LTIyLjQ4NSAxMi4zNjQtNDMuMDYgMzUuNDE0LTU1Ljk2NSAyMi41NzUtMTIuNjM4IDQ2LjM2OS0xMy4xNDYgNjYuOTkxIDIuNDc0QzI5NS42OCAyODAuNyAzMjAuNDY3IDMyMy45NyAzNTIuMTg1IDM0My40N2MyNC41NTggMTUuMDk5IDU0LjI1NCA3LjM2MyA2OC44MjMtMTcuNTA2IDI4LjgzLTQ5LjIwOS0zNC41OTItMTA1LjAxNi03OC44NjgtNjMuNDYtMy45ODkgMy43NDQtNi45MTcgOC45MzItMTEuNDEgMTEuNzItMTAuOTc1IDYuODExLTE3LjMzMy00LjExMy0xMi44MDktMTAuMzUzIDIwLjcwMy0yOC41NTQgNTAuNDY0LTQwLjQ0IDgzLjI3MS0yOC4yMTQgMzEuNDI5IDExLjcxNCA0OS4xMDggNDQuMzY2IDQyLjc2IDc4LjE4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnhsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxMi4yIDMySDM1LjhDMTYgMzIgMCA0OCAwIDY3LjhWNDQ0LjJDMCA0NjQgMTYgNDgwIDM1LjggNDgwSDQxMi4yYzE5LjggMCAzNS44LTE2IDM1LjgtMzUuOFY2Ny44QzQ0OCA0OCA0MzIgMzIgNDEyLjIgMzJ6TTM3OC42IDMzMy43YzAgNDAuMi0zMi42IDcyLjgtNzIuOCA3Mi44SDcwLjJjMC00MC4yIDMyLjYtNzIuOCA3Mi44LTcyLjhIMzc4LjZ6bTAtMTEzLjljMCA0MC4yLTMyLjYgNzIuOC03Mi44IDcyLjhINzAuMmMwLTQwLjIgMzIuNi03Mi44IDcyLjgtNzIuOEgzNzguNnptMC0xMTMuOWMwIDQwLjItMzIuNiA3Mi44LTcyLjggNzIuOEg3MC4yYzAtNDAuMiAzMi42LTcyLjggNzIuOC03Mi44SDM3OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLYWdnbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LjIgNTAxLjVMMTU4LjQgMzIwLjMgMjk4LjIgMTg1YzIuNi0yLjcgMS43LTEwLjUtNS4zLTEwLjVoLTY5LjJjLTMuNSAwLTcgMS44LTEwLjUgNS4zTDgwLjkgMzEzLjVWNy41cTAtNy41LTcuNS03LjVIMjEuNVExNCAwIDE0IDcuNXY0OTdxMCA3LjUgNy41IDcuNWg1MS45cTcuNSAwIDcuNS03LjV2LTEwOWwzMC44LTI5LjMgMTEwLjUgMTQwLjZjMyAzLjUgNi41IDUuMyAxMC41IDUuM2g2Ni45cTUuMjUgMCA2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtleWJhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg2LjE3IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHptMTExLjkyLTE0Ny42Yy05LjUtMTQuNjItMzkuMzctNTIuNDUtODcuMjYtNzMuNzFxLTkuMS00LjA2LTE4LjM4LTcuMjdhNzguNDMgNzguNDMgMCAwIDAtNDcuODgtMTA0LjEzYy0xMi40MS00LjEtMjMuMzMtNi0zMi40MS01Ljc3LS42LTItMS44OS0xMSA5LjQtMzVMMTk4LjY2IDMybC01LjQ4IDcuNTZjLTguNjkgMTIuMDYtMTYuOTIgMjMuNTUtMjQuMzQgMzQuODlhNTEgNTEgMCAwIDAtOC4yOS0xLjI1Yy00MS41My0yLjQ1LTM5LTIuMzMtNDEuMDYtMi4zMy01MC42MSAwLTUwLjc1IDUyLjEyLTUwLjc1IDQ1Ljg4bC0yLjM2IDM2LjY4Yy0xLjYxIDI3IDE5Ljc1IDUwLjIxIDQ3LjYzIDUxLjg1bDguOTMuNTRhMjE0IDIxNCAwIDAgMC00Ni4yOSAzNS41NEMxNCAzMDQuNjYgMTQgMzc0IDE0IDQyOS43N3YzMy42NGwyMy4zMi0yOS44YTE0OC42IDE0OC42IDAgMCAwIDE0LjU2IDM3LjU2YzUuNzggMTAuMTMgMTQuODcgOS40NSAxOS42NCA3LjMzIDQuMjEtMS44NyAxMC02LjkyIDMuNzUtMjAuMTFhMTc4LjI5IDE3OC4yOSAwIDAgMS0xNS43Ni01My4xM2w0Ni44Mi01OS44My0yNC42NiA3NC4xMWM1OC4yMy00Mi40IDE1Ny4zOC02MS43NiAyMzYuMjUtMzguNTkgMzQuMiAxMC4wNSA2Ny40NS42OSA4NC43NC0yMy44NC43Mi0xIDEuMi0yLjE2IDEuODUtMy4yMmExNTYuMDkgMTU2LjA5IDAgMCAxIDIuOCAyOC40M2MwIDIzLjMtMy42OSA1Mi45My0xNC44OCA4MS42NC0yLjUyIDYuNDYgMS43NiAxNC41IDguNiAxNS43NCA3LjQyIDEuNTcgMTUuMzMtMy4xIDE4LjM3LTExLjE1QzQyOSA0NDMgNDM0IDQxNCA0MzQgMzgyLjMyYzAtMzguNTgtMTMtNzcuNDYtMzUuOTEtMTEwLjkyek0xNDIuMzcgMTI4LjU4bC0xNS43LS45My0xLjM5IDIxLjc5IDEzLjEzLjc4YTkzIDkzIDAgMCAwIC4zMiAxOS41N2wtMjIuMzgtMS4zNGExMi4yOCAxMi4yOCAwIDAgMS0xMS43Ni0xMi43OUwxMDcgMTE5YzEtMTIuMTcgMTMuODctMTEuMjcgMTMuMjYtMTEuMzJsMjkuMTEgMS43M2ExNDQuMzUgMTQ0LjM1IDAgMCAwLTcgMTkuMTd6bTE0OC40MiAxNzIuMThhMTAuNTEgMTAuNTEgMCAwIDEtMTQuMzUtMS4zOWwtOS42OC0xMS40OS0zNC40MiAyN2E4LjA5IDguMDkgMCAwIDEtMTEuMTMtMS4wOGwtMTUuNzgtMTguNjRhNy4zOCA3LjM4IDAgMCAxIDEuMzQtMTAuMzRsMzQuNTctMjcuMTgtMTQuMTQtMTYuNzQtMTcuMDkgMTMuNDVhNy43NSA3Ljc1IDAgMCAxLTEwLjU5LTFzLTMuNzItNC40Mi0zLjgtNC41M2E3LjM4IDcuMzggMCAwIDEgMS4zNy0xMC4zNEwyMTQgMjI1LjE5cy0xOC41MS0yMi0xOC42LTIyLjE0YTkuNTYgOS41NiAwIDAgMSAxLjc0LTEzLjQyIDEwLjM4IDEwLjM4IDAgMCAxIDE0LjMgMS4zN2w4MS4wOSA5Ni4zMmE5LjU4IDkuNTggMCAwIDEtMS43NCAxMy40NHpNMTg3LjQ0IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5Y2RuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40LjMtLjYtMzguMiAzNy41LTM4LjYgMzcuOSA5LjUgMjkuOC0xMy4xIDYyLjQtNDYuMyA2Mi40QzIwLjcgNTAzLjMgMCA0ODEuNyAwIDQ1NC45YzAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42em0zNTQuOS0yNTIuNGMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMi43LTI4LjktNy4yLTU3LjItMjEuMS04Mi4ybDIyLjEtMjF6TTEwNCA1My4xYzYuNyA3IDkuNCAxNi44IDcuNiAyNi4zbDQ1LjkgNDguMWMtNC43IDMuOC0xMy4zIDEwLjQtMjIuOCAyMS4zLTI1LjQgMjguNS0zOS42IDY0LjgtNDAuNyAxMDIuOS0uNyAyOC45IDYuMSA1Ny4yIDIwIDgyLjRsLTIyIDIxLjVDNzIuNyAzMjQgNjMuMSAyODcuOSA2NC4yIDI1MC45YzEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMWwtMjUuMy0yNi40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNEM3My41IDQwLjcgOTIuMiA0MSAxMDQgNTMuMXpNNDY0LjkgOGMyNiAwIDQ3LjEgMjIuNCA0Ny4xIDQ4LjNTNDkwLjkgMTA0IDQ2NC45IDEwNGMtNi4zLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45YzQzLjMgMS4xIDg0LjYgMTYuNyAxMTcuNyA0NC42bDQxLjEtMzguNmMtMS41LTQuNy0yLjItOS42LTIuMi0xNC41QzQxNi41IDI5LjcgNDM4LjkgOCA0NjQuOSA4ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45LjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuN2g3My43bC0xMS01MS43YzIwLjEtMTAuOSAzMi4xLTI5IDMyLjQtNTIuMi0uNC0zMi44LTI1LjgtNTcuNS01OC4zLTU4LjMtMzIuMS44LTU3LjMgMjQuOC01OC4yIDU4LjN6TTI1NiAxNjBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2lja3N0YXJ0ZXJLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Ni42IDI1Ni4ybDQwLjgtNDAuNWM0Mi4yLTQxLjkgNDIuMi0xMTAuMyAwLTE1Mi4xcy0xMTEtNDEuOS0xNTMuMiAwTDIyOS4zIDc4LjRDMjA5LjYgNTAuMyAxNzcuMSAzMiAxNDAuMiAzMkM4MC41IDMyIDMyIDgwLjIgMzIgMTM5LjVWMzcyLjVDMzIgNDMxLjkgODAuNSA0ODAgMTQwLjIgNDgwYzM3LjEgMCA2OS4zLTE4LjMgODktNDYuNGwxNC45IDE0LjdjNDIuMiA0MS45IDExMSA0MS45IDE1My4yIDBzNDIuMi0xMTAuMyAwLTE1Mi4xbC00MC44LTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaWNrc3RhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0zMjAuOCAyMzNsLTIzLjMgMjMuMUwzMjAuOCAyNzljMjQuMSAyMy45IDI0LjEgNjMgMCA4Ni45cy02My40IDIzLjktODcuNiAwbC04LjUtOC40Yy0xMS4zIDE2LTI5LjcgMjYuNS01MC45IDI2LjVjLTM0LjEgMC02MS45LTI3LjUtNjEuOS02MS40bDAtMTMzLjJjMC0zMy44IDI3LjctNjEuNCA2MS45LTYxLjRjMjEuMSAwIDM5LjYgMTAuNSA1MC45IDI2LjVsOC41LTguNGMyNC4xLTIzLjkgNjMuNC0yMy45IDg3LjYgMHMyNC4xIDYzIDAgODYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS29ydnVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4Ni41IDM0aC0zMjdDMjYuOCAzNCAwIDYwLjggMCA5My41djMyNy4xQzAgNDUzLjIgMjYuOCA0ODAgNTkuNSA0ODBoMzI3LjFjMzMgMCA1OS41LTI2LjggNTkuNS01OS41di0zMjdDNDQ2IDYwLjggNDE5LjIgMzQgMzg2LjUgMzR6TTg3LjEgMTIwLjhoOTZ2MTE2bDYxLjgtMTE2aDExMC45bC04MS4yIDEzMkg4Ny4xdi0xMzJ6bTE2MS44IDI3Mi4xbC02NS43LTExMy42djExMy42aC05NlYyNjIuMWgxOTEuNWw4OC42IDEzMC44SDI0OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC40LDExNS44M2E1LjcyLDUuNzIsMCwwLDAtLjI4LS42OCw4LjUyLDguNTIsMCwwLDAtLjUzLTEuMjUsNiw2LDAsMCwwLS41NC0uNzEsOS4zNiw5LjM2LDAsMCwwLS43Mi0uOTRjLS4yMy0uMjItLjUyLS40LS43Ny0uNmE4Ljg0LDguODQsMCwwLDAtLjktLjY4TDQwNC40LDU1LjU1YTgsOCwwLDAsMC04LDBMMzAwLjEyLDExMWgwYTguMDcsOC4wNywwLDAsMC0uODguNjksNy42OCw3LjY4LDAsMCwwLS43OC42LDguMjMsOC4yMywwLDAsMC0uNzIuOTNjLS4xNy4yNC0uMzkuNDUtLjU0LjcxYTkuNyw5LjcsMCwwLDAtLjUyLDEuMjVjLS4wOC4yMy0uMjEuNDQtLjI4LjY4YTguMDgsOC4wOCwwLDAsMC0uMjgsMi4wOFYyMjMuMThsLTgwLjIyLDQ2LjE5VjYzLjQ0YTcuOCw3LjgsMCwwLDAtLjI4LTIuMDljLS4wNi0uMjQtLjItLjQ1LS4yOC0uNjhhOC4zNSw4LjM1LDAsMCwwLS41Mi0xLjI0Yy0uMTQtLjI2LS4zNy0uNDctLjU0LS43MmE5LjM2LDkuMzYsMCwwLDAtLjcyLS45NCw5LjQ2LDkuNDYsMCwwLDAtLjc4LS42LDkuOCw5LjgsMCwwLDAtLjg4LS42OGgwTDExNS42MSwxLjA3YTgsOCwwLDAsMC04LDBMMTEuMzQsNTYuNDloMGE2LjUyLDYuNTIsMCwwLDAtLjg4LjY5LDcuODEsNy44MSwwLDAsMC0uNzkuNiw4LjE1LDguMTUsMCwwLDAtLjcxLjkzYy0uMTguMjUtLjQuNDYtLjU1LjcyYTcuODgsNy44OCwwLDAsMC0uNTEsMS4yNCw2LjQ2LDYuNDYsMCwwLDAtLjI5LjY3LDguMTgsOC4xOCwwLDAsMC0uMjgsMi4xdjMyOS43YTgsOCwwLDAsMCw0LDYuOTVsMTkyLjUsMTEwLjg0YTguODMsOC44MywwLDAsMCwxLjMzLjU0Yy4yMS4wOC40MS4yLjYzLjI2YTcuOTIsNy45MiwwLDAsMCw0LjEsMGMuMi0uMDUuMzctLjE2LjU1LS4yMmE4LjYsOC42LDAsMCwwLDEuNC0uNThMNDA0LjQsNDAwLjA5YTgsOCwwLDAsMCw0LTYuOTVWMjg3Ljg4bDkyLjI0LTUzLjExYTgsOCwwLDAsMCw0LTdWMTE3LjkyQTguNjMsOC42MywwLDAsMCw1MDQuNCwxMTUuODNaTTExMS42LDE3LjI4aDBsODAuMTksNDYuMTUtODAuMiw0Ni4xOEwzMS40MSw2My40NFptODguMjUsNjBWMjc4LjZsLTQ2LjUzLDI2Ljc5LTMzLjY5LDE5LjRWMTIzLjVsNDYuNTMtMjYuNzlabTAsNDEyLjc4TDIzLjM3LDM4OC41Vjc3LjMyTDU3LjA2LDk2LjdsNDYuNTIsMjYuOFYzMzguNjhhNi45NCw2Ljk0LDAsMCwwLC4xMi45LDgsOCwwLDAsMCwuMTYsMS4xOGgwYTUuOTIsNS45MiwwLDAsMCwuMzguOSw2LjM4LDYuMzgsMCwwLDAsLjQyLDF2MGE4LjU0LDguNTQsMCwwLDAsLjYuNzgsNy42Miw3LjYyLDAsMCwwLC42Ni44NGwwLDBjLjIzLjIyLjUyLjM4Ljc3LjU4YTguOTMsOC45MywwLDAsMCwuODYuNjZsMCwwLDAsMCw5Mi4xOSw1Mi4xOFptOC0xMDYuMTctODAuMDYtNDUuMzIsODQuMDktNDguNDEsOTIuMjYtNTMuMTEsODAuMTMsNDYuMTMtNTguOCwzMy41NlptMTg0LjUyLDQuNTdMMjE1Ljg4LDQ5MC4xMVYzOTcuOEwzNDYuNiwzMjMuMmw0NS43Ny0yNi4xNVptMC0xMTkuMTNMMzU4LjY4LDI1MGwtNDYuNTMtMjYuNzlWMTMxLjc5bDMzLjY5LDE5LjRMMzkyLjM3LDE3OFptOC0xMDUuMjgtODAuMi00Ni4xNyw4MC4yLTQ2LjE2LDgwLjE4LDQ2LjE1Wm04LDEwNS4yOFYxNzhMNDU1LDE1MS4xOWwzMy42OC0xOS40djkxLjM5aDBaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhc3RmbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuOCAzNjcuMWwtMTguOC01MXMtMzAuNSAzNC03Ni4yIDM0Yy00MC41IDAtNjkuMi0zNS4yLTY5LjItOTEuNSAwLTcyLjEgMzYuNC05Ny45IDcyLjEtOTcuOSA2Ni41IDAgNzQuOCA1My4zIDEwMC45IDEzNC45IDE4LjggNTYuOSA1NCAxMDIuNiAxNTUuNCAxMDIuNiA3Mi43IDAgMTIyLTIyLjMgMTIyLTgwLjkgMC03Mi45LTYyLjctODAuNi0xMTUtOTIuMS0yNS44LTUuOS0zMy40LTE2LjQtMzMuNC0zNCAwLTE5LjkgMTUuOC0zMS43IDQxLjYtMzEuNyAyOC4yIDAgNDMuNCAxMC42IDQ1LjcgMzUuOGw1OC42LTdjLTQuNy01Mi44LTQxLjEtNzQuNS0xMDAuOS03NC41LTUyLjggMC0xMDQuNCAxOS45LTEwNC40IDgzLjkgMCAzOS45IDE5LjQgNjUuMSA2OCA3Ni44IDQ0LjkgMTAuNiA3OS44IDEzLjggNzkuOCA0NS43IDAgMjEuNy0yMS4xIDMwLjUtNjEgMzAuNS01OS4yIDAtODMuOS0zMS4xLTk3LjktNzMuOS0zMi05Ni44LTQzLjYtMTYzLTE2MS4zLTE2M0M0NS43IDExMy44IDAgMTY4LjMgMCAyNjFjMCA4OS4xIDQ1LjcgMTM3LjIgMTI3LjkgMTM3LjIgNjYuMiAwIDk3LjktMzEuMSA5Ny45LTMxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlYW5wdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg2LjUzOSAxMTEuNDg1bDE1LjA5NiAyNDguOTU1LTEwLjk3OS0uMjc1Yy0zNi4yMzItLjgyNC03MS42NCA4Ljc4My0xMDIuNjU3IDI3Ljk5Ny0zMS4wMTYtMTkuMjE0LTY2LjQyNC0yNy45OTctMTAyLjY1Ny0yNy45OTctNDUuNTY0IDAtODIuMDcgMTAuNzA1LTEyMy41MTYgMjcuNzIzTDkzLjExNyAxMjkuNmMyOC41NDYtMTEuODAzIDYxLjQ4NC0xOC4xMTUgOTIuMjI2LTE4LjExNSA0MS4xNzMgMCA3My44MzYgMTMuMTc1IDEwMi42NTcgNDIuNTQ0IDI3LjcyMy0yOC4yNzEgNTkuMDEzLTQxLjcyMSA5OC41MzktNDIuNTQ0ek01NjkuMDcgNDQ4Yy0yNS41MjYgMC00Ny40ODUtNS4yMTUtNzAuNTQyLTE1LjY0NS0zNC4zMS0xNS42NDUtNjkuOTkzLTI0Ljk3OC0xMDcuODcxLTI0Ljk3OC0zOC45NzcgMC03NC45MzQgMTIuOTAxLTEwMi42NTcgNDAuNjIzLTI3LjcyMy0yNy43MjMtNjMuNjgtNDAuNjIzLTEwMi42NTctNDAuNjIzLTM3Ljg3OCAwLTczLjU2MSA5LjMzMy0xMDcuODcxIDI0Ljk3OEM1NS4yMzkgNDQyLjIzNiAzMi43MzEgNDQ4IDguMzAzIDQ0OEg2LjkzTDQ5LjQ3NSA5OC44NTlDODguNzI2IDc2LjYyNiAxMzYuNDg2IDY0IDE4MS43NzUgNjQgMjE4LjgzIDY0IDI1Ni45ODQgNzEuNjg1IDI4OCA5My4wOTUgMzE5LjAxNiA3MS42ODUgMzU3LjE3IDY0IDM5NC4yMjUgNjRjNDUuMjg5IDAgOTMuMDQ5IDEyLjYyNiAxMzIuMyAzNC44NTlMNTY5LjA3IDQ0OHptLTQzLjM2OC00NC43NDFsLTM0LjAzNi0yODAuMjQ2Yy0zMC43NDItMTMuOTk5LTY3LjI0OC0yMS40MS0xMDEuMDA5LTIxLjQxLTM4LjQyOCAwLTc0LjM4NSAxMi4wNzctMTAyLjY1NyAzOC43MDItMjguMjcyLTI2LjYyNS02NC4yMjgtMzguNzAyLTEwMi42NTctMzguNzAyLTMzLjc2MSAwLTcwLjI2NyA3LjQxMS0xMDEuMDA5IDIxLjQxTDUwLjI5OCA0MDMuMjU5YzQ3LjIxMS0xOS40ODcgODIuODk0LTMzLjQ4NiAxMzUuMDQ1LTMzLjQ4NiAzNy42MDQgMCA3MC44MTcgOS42MDYgMTAyLjY1NyAyOS42NDQgMzEuODQtMjAuMDM4IDY1LjA1Mi0yOS42NDQgMTAyLjY1Ny0yOS42NDQgNTIuMTUxIDAgODcuODM0IDEzLjk5OSAxMzUuMDQ1IDMzLjQ4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTIuNyAyMTljMC0yMC41IDMuMi0zMi42IDMuMi01NC42IDAtMzQuMi0xMi42LTQ1LjItNDAuNS00NS4yaC0yMC41djI0LjJoNi4zYzE0LjIgMCAxNy4zIDQuNyAxNy4zIDIyLjEgMCAxNi4zLTEuNiAzMi42LTEuNiA1MS41IDAgMjQuMiA3LjkgMzMuNiAyMy42IDM3LjN2MS42Yy0xNS44IDMuNy0yMy42IDEzLjEtMjMuNiAzNy4zIDAgMTguOSAxLjYgMzQuMiAxLjYgNTEuNSAwIDE3LjktMy43IDIyLjYtMTcuMyAyMi42di41aC02LjNWMzkzaDIwLjVjMjcuOCAwIDQwLjUtMTEgNDAuNS00NS4yIDAtMjIuNi0zLjItMzQuMi0zLjItNTQuNiAwLTExIDYuOC0yMi42IDI3LjMtMjMuNnYtMjcuM2MtMjAuNS0uNy0yNy4zLTEyLjMtMjcuMy0yMy4zem0tMTA1LjYgMzJjLTE1LjgtNi4zLTMwLjUtMTAtMzAuNS0yMC41IDAtNy45IDYuMy0xMi42IDE3LjktMTIuNnMyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMSAzMC41YzE1LjggMTMuMSAzOS45IDIyLjEgNTkuOSAyMi4xIDQyIDAgNjQuNi0yMi4xIDY0LjYtNTFzLTIyLjUtNDEtNDMtNDcuOHptLTM1OC45IDU5LjRjLTMuNyAwLTguNC0zLjItOC40LTEzLjFWMTE5LjFINjUuMmMtMjguNCAwLTQxIDExLTQxIDQ1LjIgMCAyMi42IDMuMiAzNS4yIDMuMiA1NC42IDAgMTEtNi44IDIyLjYtMjcuMyAyMy42djI3LjNjMjAuNS41IDI3LjMgMTIuMSAyNy4zIDIzLjEgMCAxOS40LTMuMiAzMS0zLjIgNTMuNiAwIDM0LjIgMTIuNiA0NS4yIDQwLjUgNDUuMmgyMC41di0yNC4yaC02LjNjLTEzLjEgMC0xNy4zLTUuMy0xNy4zLTIyLjZzMS42LTMyLjEgMS42LTUxLjVjMC0yNC4yLTcuOS0zMy42LTIzLjYtMzcuM3YtMS42YzE1LjgtMy43IDIzLjYtMTMuMSAyMy42LTM3LjMgMC0xOC45LTEuNi0zNC4yLTEuNi01MS41czMuNy0yMi4xIDE3LjMtMjIuMUg5M3YxNTAuOGMwIDMyLjEgMTEgNTMuMSA0My4xIDUzLjEgMTAgMCAxNy45LTEuNiAyMy42LTMuN2wtNS4zLTM0LjJjLTMuMS44LTQuNi44LTYuMi44ek0zNzkuOSAyNTFjLTE2LjMtNi4zLTMxLTEwLTMxLTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42IDExLjYgMCAyMi4xIDQuNyAzMy42IDEzLjFsMjEtMjcuOGMtMTMuMS0xMC0zMS0yMC41LTU1LjItMjAuNS0zNS43IDAtNTkuOSAyMC41LTU5LjkgNDkuNCAwIDI1LjcgMjIuNiAzOC45IDQxLjUgNDYuMiAxNi4zIDYuMyAzMi4xIDExLjYgMzIuMSAyMi4xIDAgNy45LTYuMyAxMy4xLTIwLjUgMTMuMS0xMy4xIDAtMjYuMy01LjMtNDAuNS0xNi4zbC0yMC41IDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MSAuMS0yOC45LTIyLjUtNDEtNDMtNDcuOHptLTE1NS02OC44Yy0zOC40IDAtNzUuMSAzMi4xLTc0LjEgODIuNSAwIDUyIDM0LjIgODIuNSA3OS4zIDgyLjUgMTguOSAwIDM5LjktNi44IDU2LjItMTcuOWwtMTUuOC0yNy44Yy0xMS42IDYuOC0yMi42IDEwLTM0LjIgMTAtMjEgMC0zNy4zLTEwLTQxLjUtMzQuMkgyOTBjLjUtMy43IDEuNi0xMSAxLjYtMTkuNC42LTQyLjYtMjIuNi03NS43LTY2LjctNzUuN3ptLTMwIDY2LjJjMy4yLTIxIDE1LjgtMzEgMzAuNS0zMSAxOC45IDAgMjYuMyAxMy4xIDI2LjMgMzFoLTU2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxldHRlcmJveGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTIxLjMgMTI4QzU4Ni45IDEyOCA2NDAgMTgxLjEgNjQwIDI0Ni42cy01My4xIDExOC42LTExOC43IDExOC42Yy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjhjMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwwIDAgLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHpNMzIwIDEyOGM0Mi41IDAgNzkuNyAyMi4zIDEwMC43IDU1LjhjLTExLjQgMTguMi0xOCAzOS43LTE4IDYyLjhzNi42IDQ0LjYgMTggNjIuOGwwIDAtLjggMS4yYy0yMC44IDMyLjMtNTYuOCA1My45LTk3LjkgNTQuNmwtMiAwYy00Mi41IDAtNzkuNy0yMi4zLTEwMC43LTU1LjhjMTEuNC0xOC4yIDE4LTM5LjcgMTgtNjIuOHMtNi42LTQ0LjYtMTgtNjIuOGwwIDAgLjgtMS4yYzIwLjgtMzIuMyA1Ni44LTUzLjkgOTcuOS01NC42bDIgMHptLTIwMS4zIDBjNDIuNSAwIDc5LjcgMjIuMyAxMDAuNyA1NS44Yy0xMS40IDE4LjItMTggMzkuNy0xOCA2Mi44czYuNiA0NC42IDE4IDYyLjhsMCAwLS44IDEuMmMtMjAuOCAzMi4zLTU2LjggNTMuOS05Ny45IDU0LjZsLTIgMEM1My4xIDM2NS4xIDAgMzEyLjEgMCAyNDYuNlM1My4xIDEyOCAxMTguNyAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzExIDE5Ni44djgxLjNjMCAyLjEtMS42IDMuNy0zLjcgMy43aC0xM2MtMS4zIDAtMi40LS43LTMtMS41bC0zNy4zLTUwLjN2NDguMmMwIDIuMS0xLjYgMy43LTMuNyAzLjdoLTEzYy0yLjEgMC0zLjctMS42LTMuNy0zLjdWMTk2LjljMC0yLjEgMS42LTMuNyAzLjctMy43aDEyLjljMS4xIDAgMi40IC42IDMgMS42bDM3LjMgNTAuM1YxOTYuOWMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMTNjMi4xLS4xIDMuOCAxLjYgMy44IDMuNXptLTkzLjctMy43aC0xM2MtMi4xIDAtMy43IDEuNi0zLjcgMy43djgxLjNjMCAyLjEgMS42IDMuNyAzLjcgMy43aDEzYzIuMSAwIDMuNy0xLjYgMy43LTMuN1YxOTYuOGMwLTEuOS0xLjYtMy43LTMuNy0zLjd6bS0zMS40IDY4LjFIMTUwLjNWMTk2LjhjMC0yLjEtMS42LTMuNy0zLjctMy43aC0xM2MtMi4xIDAtMy43IDEuNi0zLjcgMy43djgxLjNjMCAxIC4zIDEuOCAxIDIuNWMuNyAuNiAxLjUgMSAyLjUgMWg1Mi4yYzIuMSAwIDMuNy0xLjYgMy43LTMuN3YtMTNjMC0xLjktMS42LTMuNy0zLjUtMy43em0xOTMuNy02OC4xSDMyNy4zYy0xLjkgMC0zLjcgMS42LTMuNyAzLjd2ODEuM2MwIDEuOSAxLjYgMy43IDMuNyAzLjdoNTIuMmMyLjEgMCAzLjctMS42IDMuNy0zLjdWMjY1YzAtMi4xLTEuNi0zLjctMy43LTMuN0gzNDRWMjQ3LjdoMzUuNWMyLjEgMCAzLjctMS42IDMuNy0zLjdWMjMwLjljMC0yLjEtMS42LTMuNy0zLjctMy43SDM0NFYyMTMuNWgzNS41YzIuMSAwIDMuNy0xLjYgMy43LTMuN3YtMTNjLS4xLTEuOS0xLjctMy43LTMuNy0zLjd6TTUxMiA5My40VjQxOS40Yy0uMSA1MS4yLTQyLjEgOTIuNy05My40IDkyLjZIOTIuNkM0MS40IDUxMS45LS4xIDQ2OS44IDAgNDE4LjZWOTIuNkMuMSA0MS40IDQyLjItLjEgOTMuNCAwSDQxOS40YzUxLjIgLjEgOTIuNyA0Mi4xIDkyLjYgOTMuNHpNNDQxLjYgMjMzLjVjMC04My40LTgzLjctMTUxLjMtMTg2LjQtMTUxLjNzLTE4Ni40IDY3LjktMTg2LjQgMTUxLjNjMCA3NC43IDY2LjMgMTM3LjQgMTU1LjkgMTQ5LjNjMjEuOCA0LjcgMTkuMyAxMi43IDE0LjQgNDIuMWMtLjggNC43LTMuOCAxOC40IDE2LjEgMTAuMXMxMDcuMy02My4yIDE0Ni41LTEwOC4yYzI3LTI5LjcgMzkuOS01OS44IDM5LjktOTMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlua2VkaW5JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAuMjggNDQ4SDcuNFYxNDguOWg5Mi44OHpNNTMuNzkgMTA4LjFDMjQuMDkgMTA4LjEgMCA4My41IDAgNTMuOGE1My43OSA1My43OSAwIDAgMSAxMDcuNTggMGMwIDI5LjctMjQuMSA1NC4zLTUzLjc5IDU0LjN6TTQ0Ny45IDQ0OGgtOTIuNjhWMzAyLjRjMC0zNC43LS43LTc5LjItNDguMjktNzkuMi00OC4yOSAwLTU1LjY5IDM3LjctNTUuNjkgNzYuN1Y0NDhoLTkyLjc4VjE0OC45aDg5LjA4djQwLjhoMS4zYzEyLjQtMjMuNSA0Mi42OS00OC4zIDg3Ljg4LTQ4LjMgOTQgMCAxMTEuMjggNjEuOSAxMTEuMjggMTQyLjNWNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5rZWRpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzJIMzEuOUMxNC4zIDMyIDAgNDYuNSAwIDY0LjN2MzgzLjRDMCA0NjUuNSAxNC4zIDQ4MCAzMS45IDQ4MEg0MTZjMTcuNiAwIDMyLTE0LjUgMzItMzIuM1Y2NC4zYzAtMTcuOC0xNC40LTMyLjMtMzItMzIuM3pNMTM1LjQgNDE2SDY5VjIwMi4yaDY2LjVWNDE2em0tMzMuMi0yNDNjLTIxLjMgMC0zOC41LTE3LjMtMzguNS0zOC41UzgwLjkgOTYgMTAyLjIgOTZjMjEuMiAwIDM4LjUgMTcuMyAzOC41IDM4LjUgMCAyMS4zLTE3LjIgMzguNS0zOC41IDM4LjV6bTI4Mi4xIDI0M2gtNjYuNFYzMTJjMC0yNC44LS41LTU2LjctMzQuNS01Ni43LTM0LjYgMC0zOS45IDI3LTM5LjkgNTQuOVY0MTZoLTY2LjRWMjAyLjJoNjMuN3YyOS4yaC45YzguOS0xNi44IDMwLjYtMzQuNSA2Mi45LTM0LjUgNjcuMiAwIDc5LjcgNDQuMyA3OS43IDEwMS45VjQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlub2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2Ni4wMzYsMTg2Ljg2N2wtNTkuNSwzNi44NzEtLjgzOCwzNi44NzEtMjkuMzI5LTE5LjI3My0zOS4zODQsMjQuM2MyLjIzOCw1NS4yMTEsMi40ODMsNTkuMjcxLDIuNTEsNTkuNWwtOTcuMiw2NS4zNTlMMTI3LjIxNCwyODUuNzQ4bDEwOC4xLTYyLjAxTDE5NS4wOSwxOTcuNzYxbC03NS40MTcsMzguNTQ3TDk4LjcyMyw5My4wMTUsMjI3Ljc3MSw0My41NzQsMTM2LjQzMiwwLDEwLjczNywzOS4zODUsMzguMzksMTc0LjNsNDEuOSwzMi42ODFMNDguNDQ1LDIyMi4wNjIsNjkuMzk0LDMyMy40NTcsOTguNzIzLDM1MS4xMSw3Ny43NzQsMzYzLjY3OWwxNi43Niw3OC43NjlMMTYwLjczMyw1MTJjLTEwLjgtNzQuODQyLTExLjY1OC03OC42NDEtMTEuNzI1LTc4Ljc3M2w3Ny45MjUtNTUuM2MxNi43NTktMTIuNTcsMTUuMDgzLTEwLjg5NCwxNS4wODMtMTAuODk0bC44MzgsMjQuMywzMy41MTksMjguNDkxLS44MzgtNzcuMDkzLDQ2LjkyNy0zMy41MTksMjYuODE1LTE4LjQzNS0yLjUxNCwzNi4wMzMsMjUuMTM5LDE3LjYsNi43LTc0LjU3OSw1OC42NTctNDMuNTc1WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW51eCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjAuOCAxMjMuM2MxIC41IDEuOCAxLjcgMyAxLjcgMS4xIDAgMi44LS40IDIuOS0xLjUuMi0xLjQtMS45LTIuMy0zLjItMi45LTEuNy0uNy0zLjktMS01LjUtLjEtLjQuMi0uOC43LS42IDEuMS4zIDEuMyAyLjMgMS4xIDMuNCAxLjd6bS0yMS45IDEuN2MxLjIgMCAyLTEuMiAzLTEuNyAxLjEtLjYgMy4xLS40IDMuNS0xLjYuMi0uNC0uMi0uOS0uNi0xLjEtMS42LS45LTMuOC0uNi01LjUuMS0xLjMuNi0zLjQgMS41LTMuMiAyLjkuMSAxIDEuOCAxLjUgMi44IDEuNHpNNDIwIDQwMy44Yy0zLjYtNC01LjMtMTEuNi03LjItMTkuNy0xLjgtOC4xLTMuOS0xNi44LTEwLjUtMjIuNC0xLjMtMS4xLTIuNi0yLjEtNC0yLjktMS4zLS44LTIuNy0xLjUtNC4xLTIgOS4yLTI3LjMgNS42LTU0LjUtMy43LTc5LjEtMTEuNC0zMC4xLTMxLjMtNTYuNC00Ni41LTc0LjQtMTcuMS0yMS41LTMzLjctNDEuOS0zMy40LTcyQzMxMS4xIDg1LjQgMzE1LjcuMSAyMzQuOCAwIDEzMi40LS4yIDE1OCAxMDMuNCAxNTYuOSAxMzUuMmMtMS43IDIzLjQtNi40IDQxLjgtMjIuNSA2NC43LTE4LjkgMjIuNS00NS41IDU4LjgtNTguMSA5Ni43LTYgMTcuOS04LjggMzYuMS02LjIgNTMuMy02LjUgNS44LTExLjQgMTQuNy0xNi42IDIwLjItNC4yIDQuMy0xMC4zIDUuOS0xNyA4LjNzLTE0IDYtMTguNSAxNC41Yy0yLjEgMy45LTIuOCA4LjEtMi44IDEyLjQgMCAzLjkuNiA3LjkgMS4yIDExLjggMS4yIDguMSAyLjUgMTUuNy44IDIwLjgtNS4yIDE0LjQtNS45IDI0LjQtMi4yIDMxLjcgMy44IDcuMyAxMS40IDEwLjUgMjAuMSAxMi4zIDE3LjMgMy42IDQwLjggMi43IDU5LjMgMTIuNSAxOS44IDEwLjQgMzkuOSAxNC4xIDU1LjkgMTAuNCAxMS42LTIuNiAyMS4xLTkuNiAyNS45LTIwLjIgMTIuNS0uMSAyNi4zLTUuNCA0OC4zLTYuNiAxNC45LTEuMiAzMy42IDUuMyA1NS4xIDQuMS42IDIuMyAxLjQgNC42IDIuNSA2Ljd2LjFjOC4zIDE2LjcgMjMuOCAyNC4zIDQwLjMgMjMgMTYuNi0xLjMgMzQuMS0xMSA0OC4zLTI3LjkgMTMuNi0xNi40IDM2LTIzLjIgNTAuOS0zMi4yIDcuNC00LjUgMTMuNC0xMC4xIDEzLjktMTguMy40LTguMi00LjQtMTcuMy0xNS41LTI5Ljd6TTIyMy43IDg3LjNjOS44LTIyLjIgMzQuMi0yMS44IDQ0LS40IDYuNSAxNC4yIDMuNiAzMC45LTQuMyA0MC40LTEuNi0uOC01LjktMi42LTEyLjYtNC45IDEuMS0xLjIgMy4xLTIuNyAzLjktNC42IDQuOC0xMS44LS4yLTI3LTkuMS0yNy4zLTcuMy0uNS0xMy45IDEwLjgtMTEuOCAyMy00LjEtMi05LjQtMy41LTEzLTQuNC0xLTYuOS0uMy0xNC42IDIuOS0yMS44ek0xODMgNzUuOGMxMC4xIDAgMjAuOCAxNC4yIDE5LjEgMzMuNS0zLjUgMS03LjEgMi41LTEwLjIgNC42IDEuMi04LjktMy4zLTIwLjEtOS42LTE5LjYtOC40LjctOS44IDIxLjItMS44IDI4LjEgMSAuOCAxLjktLjItNS45IDUuNS0xNS42LTE0LjYtMTAuNS01Mi4xIDguNC01Mi4xem0tMTMuNiA2MC43YzYuMi00LjYgMTMuNi0xMCAxNC4xLTEwLjUgNC43LTQuNCAxMy41LTE0LjIgMjcuOS0xNC4yIDcuMSAwIDE1LjYgMi4zIDI1LjkgOC45IDYuMyA0LjEgMTEuMyA0LjQgMjIuNiA5LjMgOC40IDMuNSAxMy43IDkuNyAxMC41IDE4LjItMi42IDcuMS0xMSAxNC40LTIyLjcgMTguMS0xMS4xIDMuNi0xOS44IDE2LTM4LjIgMTQuOS0zLjktLjItNy0xLTkuNi0yLjEtOC0zLjUtMTIuMi0xMC40LTIwLTE1LTguNi00LjgtMTMuMi0xMC40LTE0LjctMTUuMy0xLjQtNC45IDAtOSA0LjItMTIuM3ptMy4zIDMzNGMtMi43IDM1LjEtNDMuOSAzNC40LTc1LjMgMTgtMjkuOS0xNS44LTY4LjYtNi41LTc2LjUtMjEuOS0yLjQtNC43LTIuNC0xMi43IDIuNi0yNi40di0uMmMyLjQtNy42LjYtMTYtLjYtMjMuOS0xLjItNy44LTEuOC0xNSAuOS0yMCAzLjUtNi43IDguNS05LjEgMTQuOC0xMS4zIDEwLjMtMy43IDExLjgtMy40IDE5LjYtOS45IDUuNS01LjcgOS41LTEyLjkgMTQuMy0xOCA1LjEtNS41IDEwLTguMSAxNy43LTYuOSA4LjEgMS4yIDE1LjEgNi44IDIxLjkgMTZsMTkuNiAzNS42YzkuNSAxOS45IDQzLjEgNDguNCA0MSA2OC45em0tMS40LTI1LjljLTQuMS02LjYtOS42LTEzLjYtMTQuNC0xOS42IDcuMSAwIDE0LjItMi4yIDE2LjctOC45IDIuMy02LjIgMC0xNC45LTcuNC0yNC45LTEzLjUtMTguMi0zOC4zLTMyLjUtMzguMy0zMi41LTEzLjUtOC40LTIxLjEtMTguNy0yNC42LTI5LjlzLTMtMjMuMy0uMy0zNS4yYzUuMi0yMi45IDE4LjYtNDUuMiAyNy4yLTU5LjIgMi4zLTEuNy44IDMuMi04LjcgMjAuOC04LjUgMTYuMS0yNC40IDUzLjMtMi42IDgyLjQuNi0yMC43IDUuNS00MS44IDEzLjgtNjEuNSAxMi0yNy40IDM3LjMtNzQuOSAzOS4zLTExMi43IDEuMS44IDQuNiAzLjIgNi4yIDQuMSA0LjYgMi43IDguMSA2LjcgMTIuNiAxMC4zIDEyLjQgMTAgMjguNSA5LjIgNDIuNCAxLjIgNi4yLTMuNSAxMS4yLTcuNSAxNS45LTkgOS45LTMuMSAxNy44LTguNiAyMi4zLTE1IDcuNyAzMC40IDI1LjcgNzQuMyAzNy4yIDk1LjcgNi4xIDExLjQgMTguMyAzNS41IDIzLjYgNjQuNiAzLjMtLjEgNyAuNCAxMC45IDEuNCAxMy44LTM1LjctMTEuNy03NC4yLTIzLjMtODQuOS00LjctNC42LTQuOS02LjYtMi42LTYuNSAxMi42IDExLjIgMjkuMiAzMy43IDM1LjIgNTkgMi44IDExLjYgMy4zIDIzLjcuNCAzNS43IDE2LjQgNi44IDM1LjkgMTcuOSAzMC43IDM0LjgtMi4yLS4xLTMuMiAwLTQuMiAwIDMuMi0xMC4xLTMuOS0xNy42LTIyLjgtMjYuMS0xOS42LTguNi0zNi04LjYtMzguMyAxMi41LTEyLjEgNC4yLTE4LjMgMTQuNy0yMS40IDI3LjMtMi44IDExLjItMy42IDI0LjctNC40IDM5LjktLjUgNy43LTMuNiAxOC02LjggMjktMzIuMSAyMi45LTc2LjcgMzIuOS0xMTQuMyA3LjJ6bTI1Ny40LTExLjVjLS45IDE2LjgtNDEuMiAxOS45LTYzLjIgNDYuNS0xMy4yIDE1LjctMjkuNCAyNC40LTQzLjYgMjUuNXMtMjYuNS00LjgtMzMuNy0xOS4zYy00LjctMTEuMS0yLjQtMjMuMSAxLjEtMzYuMyAzLjctMTQuMiA5LjItMjguOCA5LjktNDAuNi44LTE1LjIgMS43LTI4LjUgNC4yLTM4LjcgMi42LTEwLjMgNi42LTE3LjIgMTMuNy0yMS4xLjMtLjIuNy0uMyAxLS41LjggMTMuMiA3LjMgMjYuNiAxOC44IDI5LjUgMTIuNiAzLjMgMzAuNy03LjUgMzguNC0xNi4zIDktLjMgMTUuNy0uOSAyMi42IDUuMSA5LjkgOC41IDcuMSAzMC4zIDE3LjEgNDEuNiAxMC42IDExLjYgMTQgMTkuNSAxMy43IDI0LjZ6TTE3My4zIDE0OC43YzIgMS45IDQuNyA0LjUgOCA3LjEgNi42IDUuMiAxNS44IDEwLjYgMjcuMyAxMC42IDExLjYgMCAyMi41LTUuOSAzMS44LTEwLjggNC45LTIuNiAxMC45LTcgMTQuOC0xMC40czUuOS02LjMgMy4xLTYuNi0yLjYgMi42LTYgNS4xYy00LjQgMy4yLTkuNyA3LjQtMTMuOSA5LjgtNy40IDQuMi0xOS41IDEwLjItMjkuOSAxMC4ycy0xOC43LTQuOC0yNC45LTkuN2MtMy4xLTIuNS01LjctNS03LjctNi45LTEuNS0xLjQtMS45LTQuNi00LjMtNC45LTEuNC0uMS0xLjggMy43IDEuNyA2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUx5ZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MS4xaDc3Ljh2MjA4LjdjMCAzMy4xIDE1IDUyLjggMjcuMiA2MS0xMi43IDExLjEtNTEuMiAyMC45LTgwLjItMi44QzcuOCAzMzQgMCAzMTAuNyAwIDI4OVY4MS4xem00ODUuOSAxNzMuNXYtMjJoMjMuOHYtNzYuOGgtMjYuMWMtMTAuMS00Ni4zLTUxLjItODAuNy0xMDAuMy04MC43LTU2LjYgMC0xMDIuNyA0Ni0xMDIuNyAxMDIuN1YzNTdjMTYgMi4zIDM1LjQtLjMgNTEuNy0xNCAxNy4xLTE0IDI0LjgtMzcuMiAyNC44LTU5di02LjdoMzguOHYtNzYuOGgtMzguOHYtMjMuM2MwLTM0LjYgNTIuMi0zNC42IDUyLjIgMHY3Ny4xYzAgNTYuNiA0NiAxMDIuNyAxMDIuNyAxMDIuN3YtNzYuNWMtMTQuNSAwLTI2LjEtMTEuNy0yNi4xLTI1Ljl6bS0yOTQuMy05OXYxMTNjMCAxNS40LTIzLjggMTUuNC0yMy44IDB2LTExM0g5MXYxMzIuN2MwIDIzLjggOCA1NCA0NSA2My45IDM3IDkuOCA1OC4yLTEwLjYgNTguMi0xMC42LTIuMSAxMy40LTE0LjUgMjMuMy0zNC45IDI1LjMtMTUuNSAxLjYtMzUuMi0zLjYtNDUtNy44djcwLjNjMjUuMSA3LjUgNTEuNSA5LjggNzcuNiA0LjcgNDcuMS05LjEgNzYuOC00OC40IDc2LjgtMTAwLjhWMTU1LjFoLTc3LjF2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ2VudG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ1LjcgMTI3LjlWMzg0bC02My40IDM2LjVWMTY0LjdMMjIzLjggNzMuMSA2NS4yIDE2NC43bC40IDI1NS45TDIuMyAzODRWMTI4LjFMMjI0LjIgMGwyMjEuNSAxMjcuOXpNMjU1LjYgNDIwLjVMMjI0IDQzOC45bC0zMS44LTE4LjJ2LTI1NmwtNjMuMyAzNi42LjEgMjU1LjkgOTQuOSA1NC45IDk1LjEtNTQuOXYtMjU2bC02My40LTM2LjZ2MjU1Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1haWxjaGltcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzAuNjEgMjQzLjUyYTM2LjE1IDM2LjE1IDAgMCAxIDkuMyAwYzEuNjYtMy44MyAxLjk1LTEwLjQzLjQ1LTE3LjYxLTIuMjMtMTAuNjctNS4yNS0xNy4xNC0xMS40OC0xNi4xM3MtNi40NyA4Ljc0LTQuMjQgMTkuNDJjMS4yNiA2IDMuNDkgMTEuMTQgNiAxNC4zMnpNMjc3LjA1IDI1MmM0LjQ3IDIgNy4yIDMuMjYgOC4yOCAyLjEzIDEuODktMS45NC0zLjQ4LTkuMzktMTIuMTItMTMuMDlhMzEuNDQgMzEuNDQgMCAwIDAtMzAuNjEgMy42OGMtMyAyLjE4LTUuODEgNS4yMi01LjQxIDcuMDYuODUgMy43NCAxMC0yLjcxIDIyLjYtMy40OCA3LS40NCAxMi44IDEuNzUgMTcuMjYgMy43MXptLTkgNS4xM2MtOS4wNyAxLjQyLTE1IDYuNTMtMTMuNDcgMTAuMS45LjM0IDEuMTcuODEgNS4yMS0uODFhMzcgMzcgMCAwIDEgMTguNzItMS45NWMyLjkyLjM0IDQuMzEuNTIgNC45NC0uNDkgMS40Ni0yLjIyLTUuNzEtOC0xNS4zOS02Ljg1em01NC4xNyAxNy4xYzMuMzgtNi44Ny0xMC45LTEzLjkzLTE0LjMtN3MxMC45MiAxMy44OCAxNC4zMiA2Ljk3em0xNS42Ni0yMC40N2MtNy42Ni0uMTMtNy45NSAxNS44LS4yNiAxNS45M3M3Ljk4LTE1LjgxLjI4LTE1Ljk2em0tMjE4Ljc5IDc4LjljLTEuMzIuMzEtNiAxLjQ1LTguNDctMi4zNS01LjItOCAxMS4xMS0yMC4zOCAzLTM1Ljc3LTkuMS0xNy40Ny0yNy44Mi0xMy41NC0zNS4wNS01LjU0LTguNzEgOS42LTguNzIgMjMuNTQtNSAyNC4wOCA0LjI3LjU3IDQuMDgtNi40NyA3LjM4LTExLjYzYTEyLjgzIDEyLjgzIDAgMCAxIDE3Ljg1LTMuNzJjMTEuNTkgNy41OSAxLjM3IDE3Ljc2IDIuMjggMjguNjIgMS4zOSAxNi42OCAxOC40MiAxNi4zNyAyMS41OCA5YTIuMDggMi4wOCAwIDAgMC0uMi0yLjMzYy4wMy44OS42OC0xLjMtMy4zNS0uMzl6bTI5OS43Mi0xNy4wN2MtMy4zNS0xMS43My0yLjU3LTkuMjItNi43OC0yMC41MiAyLjQ1LTMuNjcgMTUuMjktMjQtMy4wNy00My4yNS0xMC40LTEwLjkyLTMzLjktMTYuNTQtNDEuMS0xOC41NC0xLjUtMTEuMzkgNC42NS01OC43LTIxLjUyLTgzIDIwLjc5LTIxLjU1IDMzLjc2LTQ1LjI5IDMzLjczLTY1LjY1LS4wNi0zOS4xNi00OC4xNS01MS0xMDcuNDItMjYuNDdsLTEyLjU1IDUuMzNjLS4wNi0uMDUtMjIuNzEtMjIuMjctMjMuMDUtMjIuNTdDMTY5LjUtMTgtNDEuNzcgMjE2LjgxIDI1Ljc4IDI3My44NWwxNC43NiAxMi41MWE3Mi40OSA3Mi40OSAwIDAgMC00LjEgMzMuNWMzLjM2IDMzLjQgMzYgNjAuNDIgNjcuNTMgNjAuMzggNTcuNzMgMTMzLjA2IDI2Ny45IDEzMy4yOCAzMjIuMjkgMyAxLjc0LTQuNDcgOS4xMS0yNC42MSA5LjExLTQyLjM4cy0xMC4wOS0yNS4yNy0xNi41My0yNS4yN3ptLTMxNiA0OC4xNmMtMjIuODItLjYxLTQ3LjQ2LTIxLjE1LTQ5LjkxLTQ1LjUxLTYuMTctNjEuMzEgNzQuMjYtNzUuMjcgODQtMTIuMzMgNC41NCAyOS42NC00LjY3IDU4LjQ5LTM0LjEyIDU3Ljgxek04NC4zIDI0OS41NUM2OS4xNCAyNTIuNSA1NS43OCAyNjEuMDkgNDcuNiAyNzNjLTQuODgtNC4wNy0xNC0xMi0xNS41OS0xNS0xMy4wMS0yNC44NSAxNC4yNC03MyAzMy4zLTEwMC4yMUMxMTIuNDIgOTAuNTYgMTg2LjE5IDM5LjY4IDIyMC4zNiA0OC45MWM1LjU1IDEuNTcgMjMuOTQgMjIuODkgMjMuOTQgMjIuODlzLTM0LjE1IDE4Ljk0LTY1LjggNDUuMzVjLTQyLjY2IDMyLjg1LTc0Ljg5IDgwLjU5LTk0LjIgMTMyLjR6TTMyMy4xOCAzNTAuN3MtMzUuNzQgNS4zLTY5LjUxLTcuMDdjNi4yMS0yMC4xNiAyNyA2LjEgOTYuNC0xMy44MSAxNS4yOS00LjM4IDM1LjM3LTEzIDUxLTI1LjM1YTEwMi44NSAxMDIuODUgMCAwIDEgNy4xMiAyNC4yOGMzLjY2LS42NiAxNC4yNS0uNTIgMTEuNDQgMTguMS0zLjI5IDE5Ljg3LTExLjczIDM2LTI1LjkzIDUwLjg0QTEwNi44NiAxMDYuODYgMCAwIDEgMzYyLjU1IDQyMWExMzIuNDUgMTMyLjQ1IDAgMCAxLTIwLjM0IDguNThjLTUzLjUxIDE3LjQ4LTEwOC4zLTEuNzQtMTI2LTQzYTY2LjMzIDY2LjMzIDAgMCAxLTMuNTUtOS43NGMtNy41My0yNy4yLTEuMTQtNTkuODMgMTguODQtODAuMzcgMS4yMy0xLjMxIDIuNDgtMi44NSAyLjQ4LTQuNzlhOC40NSA4LjQ1IDAgMCAwLTEuOTItNC41NGMtNy0xMC4xMy0zMS4xOS0yNy40LTI2LjMzLTYwLjgzIDMuNS0yNCAyNC40OS00MC45MSA0NC4wNy0zOS45MWw1IC4yOWM4LjQ4LjUgMTUuODkgMS41OSAyMi44OCAxLjg4IDExLjY5LjUgMjIuMi0xLjE5IDM0LjY0LTExLjU2IDQuMi0zLjUgNy41Ny02LjU0IDEzLjI2LTcuNTFhMTcuNDUgMTcuNDUgMCAwIDEgMTMuNiAyLjI0YzEwIDYuNjQgMTEuNCAyMi43MyAxMS45MiAzNC40OS4yOSA2LjcyIDEuMSAyMyAxLjM4IDI3LjYzLjYzIDEwLjY3IDMuNDMgMTIuMTcgOS4xMSAxNCAzLjE5IDEuMDUgNi4xNSAxLjgzIDEwLjUxIDMuMDYgMTMuMjEgMy43MSAyMSA3LjQ4IDI2IDEyLjMxYTE2LjM4IDE2LjM4IDAgMCAxIDQuNzQgOS4yOWMxLjU2IDExLjM3LTguODIgMjUuNC0zNi4zMSAzOC4xNi00Ni43MSAyMS42OC05My42OCAxNC40NS0xMDAuNDggMTMuNjgtMjAuMTUtMi43MS0zMS42MyAyMy4zMi0xOS41NSA0MS4xNSAyMi42NCAzMy40MSAxMjIuNCAyMCAxNTEuMzctMjEuMzUuNjktMSAuMTItMS41OS0uNzMtMS00MS43NyAyOC41OC05Ny4wNiAzOC4yMS0xMjguNDYgMjYtNC43Ny0xLjg1LTE0LjczLTYuNDQtMTUuOTQtMTYuNjcgNDMuNiAxMy40OSA3MSAuNzQgNzEgLjc0czIuMDMtMi43OS0uNTYtMi41M3ptLTY4LjQ3LTUuN3ptLTgzLjQtMTg3LjVjMTYuNzQtMTkuMzUgMzcuMzYtMzYuMTggNTUuODMtNDUuNjNhLjczLjczIDAgMCAxIDEgMWMtMS40NiAyLjY2LTQuMjkgOC4zNC01LjE5IDEyLjY1YS43NS43NSAwIDAgMCAxLjE2Ljc5YzExLjQ5LTcuODMgMzEuNDgtMTYuMjIgNDktMTcuM2EuNzcuNzcgMCAwIDEgLjUyIDEuMzggNDEuODYgNDEuODYgMCAwIDAtNy43MSA3Ljc0Ljc1Ljc1IDAgMCAwIC41OSAxLjE5YzEyLjMxLjA5IDI5LjY2IDQuNCA0MSAxMC43NC43Ni40My4yMiAxLjkxLS42NCAxLjcyLTY5LjU1LTE1Ljk0LTEyMy4wOCAxOC41My0xMzQuNSAyNi44M2EuNzYuNzYgMCAwIDEtMS0xLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYW5kYWxvcmlhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIuMjcgNTExLjg5Yy0xLTMuMjYtMS42OS0xNS44My0xLjM5LTI0LjU4LjU1LTE1Ljg5IDEtMjQuNzIgMS40LTI4Ljc2LjY0LTYuMiAyLjg3LTIwLjcyIDMuMjgtMjEuMzguNi0xIC40LTI3Ljg3LS4yNC0zMy4xMy0uMzEtMi41OC0uNjMtMTEuOS0uNjktMjAuNzMtLjEzLTE2LjQ3LS41My0yMC4xMi0yLjczLTI0Ljc2LTEuMS0yLjMyLTEuMjMtMy44NC0xLTExLjQzYTkyLjM4IDkyLjM4IDAgMCAwLS4zNC0xMi43MWMtMi0xMy0zLjQ2LTI3LjctMy4yNS0zMy45cy40My03LjE1IDIuMDYtOS42N2MzLjA1LTQuNzEgNi41MS0xNCA4LjYyLTIzLjI3IDIuMjYtOS44NiAzLjg4LTE3LjE4IDQuNTktMjAuNzRhMTA5LjU0IDEwOS41NCAwIDAgMSA0LjQyLTE1LjA1YzIuMjctNi4yNSAyLjQ5LTE1LjM5LjM3LTE1LjM5LS4zIDAtMS4zOCAxLjIyLTIuNDEgMi43MXMtNC43NiA0LjgtOC4yOSA3LjM2Yy04LjM3IDYuMDgtMTEuNyA5LjM5LTEyLjY2IDEyLjU4cy0xIDcuMjMtLjE2IDcuNzZjLjM0LjIxIDEuMjkgMi40IDIuMTEgNC44OGEyOC44MyAyOC44MyAwIDAgMSAuNzIgMTUuMzZjLS4zOSAxLjc3LTEgNS40Ny0xLjQ2IDguMjNzLTEgNi40Ni0xLjI1IDguMjJhOS44NSA5Ljg1IDAgMCAxLTEuNTUgNC4yNmMtMSAxLTEuMTQuOTEtMi4wNS0uNTNhMTQuODcgMTQuODcgMCAwIDEtMS40NC00Ljc1Yy0uMjUtMS43NC0xLjYzLTcuMTEtMy4wOC0xMS45My0zLjI4LTEwLjktMy41Mi0xNi4xNS0xLTIxYTE0LjI0IDE0LjI0IDAgMCAwIDEuNjctNC42MWMwLTIuMzktMi4yLTUuMzItNy40MS05Ljg5LTctNi4xOC04LjYzLTcuOTItMTAuMjMtMTEuMy0xLjcxLTMuNi0zLjA2LTQuMDYtNC41NC0xLjU0LTEuNzggMy0yLjYgOS4xMS0zIDIybC0uMzQgMTIuMTkgMiAyLjI1YzMuMjEgMy43IDEyLjA3IDE2LjQ1IDEzLjc4IDE5LjgzIDMuNDEgNi43NCA0LjM0IDExLjY5IDQuNDEgMjMuNTZzLjk1IDIyLjc1IDIgMjQuNzFjLjM2LjY2LjUxIDEuMzUuMzQgMS41MnMuNDEgMi4wOSAxLjI5IDQuMjdhMzguMTQgMzguMTQgMCAwIDEgMi4wNiA5IDkxIDkxIDAgMCAwIDEuNzEgMTAuMzdjMi4yMyA5LjU2IDIuNzcgMTQuMDggMi4zOSAyMC4xNC0uMiAzLjI3LS41MyAxMS4wNy0uNzMgMTcuMzItMS4zMSA0MS43Ni0xLjg1IDU4LTIgNjEuMjEtLjEyIDItLjM5IDExLjUxLS42IDIxLjA3LS4zNiAxNi4zLTEuMyAyNy4zNy0yLjQyIDI4LjY1LS42NC43My04LjA3LTQuOTEtMTIuNTItOS40OS0zLjc1LTMuODctNC00Ljc5LTIuODMtOS45NS43LTMgMi4yNi0xOC4yOSAzLjMzLTMyLjYyLjM2LTQuNzguODEtMTAuNSAxLTEyLjcxLjgzLTkuMzcgMS42Ni0yMC4zNSAyLjYxLTM0Ljc4LjU2LTguNDYgMS4zMy0xNi40NCAxLjcyLTE3Ljczcy44OS05Ljg5IDEuMTMtMTkuMTFsLjQzLTE2Ljc3LTIuMjYtNC4zYy0xLjcyLTMuMjgtNC44Ny02Ljk0LTEzLjIyLTE1LjM0LTYtNi4wNy0xMS44NC0xMi4zLTEyLjkxLTEzLjg1bC0xLjk1LTIuODEuNzUtMTAuOWMxLjA5LTE1LjcxIDEuMS00OC41NyAwLTU5LjA2bC0uODktOC43LTMuMjgtNC41MmMtNS44Ni04LjA4LTUuOC03Ljc1LTYuMjItMzMuMjctLjEtNi4wNy0uMzgtMTEuNS0uNjMtMTIuMDYtLjgzLTEuODctMy4wNS0yLjY2LTguNTQtMy4wNS04Ljg2LS42Mi0xMS0xLjktMjMuODUtMTQuNTUtNi4xNS02LTEyLjM0LTEyLTEzLjc1LTEzLjE5LTIuODEtMi40Mi0yLjc5LTItLjU2LTkuNjNsMS4zNS00LjY1LTEuNjktM2EzMi4yMiAzMi4yMiAwIDAgMC0yLjU5LTQuMDdjLTEuMzMtMS41MS01LjUtMTAuODktNi0xMy40OWE0LjI0IDQuMjQgMCAwIDEgLjg3LTMuOWMyLjIzLTIuODYgMy40LTUuNjggNC40NS0xMC43MyAyLjMzLTExLjE5IDcuNzQtMjYuMDkgMTAuNi0yOS4yMiAzLjE4LTMuNDcgNy43LTEgOS40MSA1IDEuMzQgNC43OSAxLjM3IDkuNzkuMSAxOC41NWExMDEuMiAxMDEuMiAwIDAgMC0xIDExLjExYzAgNCAuMTkgNC42OSAyLjI1IDcuMzkgMy4zMyA0LjM3IDcuNzMgNy40MSAxNS4yIDEwLjUyYTE4LjY3IDE4LjY3IDAgMCAxIDQuNzIgMi44NWMxMS4xNyAxMC43MiAxOC42MiAxNi4xOCAyMi45NSAxNi44NSA1LjE4LjggOCA0LjU0IDEwIDEzLjM5IDEuMzEgNS42NSA0IDExLjE0IDUuNDYgMTEuMTRhOS4zOCA5LjM4IDAgMCAwIDMuMzMtMS4zOWMyLTEuMjIgMi4yNS0xLjczIDIuMjUtNC4xOGExMzIuODggMTMyLjg4IDAgMCAwLTItMTcuODRjLS4zNy0xLjY2LS43OC00LjA2LS45My01LjM1cy0uNjEtMy44NS0xLTUuNjljLTIuNTUtMTEuMTYtMy42NS0xNS40Ni00LjEtMTYtMS41NS0yLTQuMDgtMTAuMi00LjkzLTE1LjkyLTEuNjQtMTEuMTEtNC0xNC4yMy0xMi45MS0xNy4zOUE0My4xNSA0My4xNSAwIDAgMSAxNjUuMjQgNzhjLTEuMTUtMS00LTMuMjItNi4zNS01LjA2cy00LjQxLTMuNTMtNC42LTMuNzZhMjIuNyAyMi43IDAgMCAwLTIuNjktMmMtNi4yNC00LjIyLTguODQtNy0xMS4yNi0xMmwtMi40NC01LS4yMi0xMy0uMjItMTMgNi45MS02LjU1YzMuOTUtMy43NSA4LjQ4LTcuMzUgMTAuNTktOC40MyAzLjMxLTEuNjkgNC40NS0xLjg5IDExLjM3LTIgOC41My0uMTkgMTAuMTIgMCAxMS42NiAxLjU2czEuMzYgNi40LS4yOSA4LjVhNi42NiA2LjY2IDAgMCAwLTEuMzQgMi4zMmMwIC41OC0yLjYxIDQuOTEtNS40MiA5YTMwLjM5IDMwLjM5IDAgMCAwLTIuMzcgNi44MmMyMC40NCAxMy4zOSAyMS41NSAzLjc3IDE0LjA3IDI5TDE5NCA2Ni45MmMzLjExLTguNjYgNi40Ny0xNy4yNiA4LjYxLTI2LjIyLjI5LTcuNjMtMTItNC4xOS0xNS40LTguNjgtMi4zMy01LjkzIDMuMTMtMTQuMTggNi4wNi0xOS4yIDEuNi0yLjM0IDYuNjItNC43IDguODItNC4xNS44OC4yMiA0LjE2LS4zNSA3LjM3LTEuMjhhNDUuMyA0NS4zIDAgMCAxIDcuNTUtMS42OCAyOS41NyAyOS41NyAwIDAgMCA2LTEuMjljMy42NS0xLjExIDQuNS0xLjE3IDYuMzUtLjRhMjkuNTQgMjkuNTQgMCAwIDAgNS44MiAxLjM2IDE4LjE4IDE4LjE4IDAgMCAxIDYgMS45MSAyMi42NyAyMi42NyAwIDAgMCA1IDIuMTdjMi41MS42OCAzIC41NyA3LjA1LTEuNjdsNC4zNS0yLjRMMjY4LjMyIDVjMTAuNDQtLjQgMTAuODEtLjQ3IDE1LjI2LTIuNjhMMjg4LjE2IDBsMi40NiAxLjQzYzEuNzYgMSAzLjE0IDIuNzMgNC44NSA2IDIuMzYgNC41MSAyLjM4IDQuNTggMS4zNyA3LjM3LS44OCAyLjQ0LS44OSAzLjMtLjEgNi4zOWEzNS43NiAzNS43NiAwIDAgMCAyLjEgNS45MSAxMy41NSAxMy41NSAwIDAgMSAxLjMxIDRjLjMxIDQuMzMgMCA1LjMtMi40MSA2LjkyLTIuMTcgMS40Ny03IDcuOTEtNyA5LjM0YTE0Ljc3IDE0Ljc3IDAgMCAxLTEuMDcgM2MtNSAxMS41MS02Ljc2IDEzLjU2LTE0LjI2IDE3LTkuMiA0LjItMTIuMyA1LjE5LTE2LjIxIDUuMTktMy4xIDAtNCAuMjUtNC41NCAxLjI2YTE4LjMzIDE4LjMzIDAgMCAxLTQuMDkgMy43MSAxMy42MiAxMy42MiAwIDAgMC00LjM4IDQuNzggNS44OSA1Ljg5IDAgMCAxLTIuNDkgMi45MSA2Ljg4IDYuODggMCAwIDAtMi40NSAxLjcxIDY3LjYyIDY3LjYyIDAgMCAxLTcgNS4zOGMtMy4zMyAyLjM0LTYuODcgNS03Ljg3IDZBNy4yNyA3LjI3IDAgMCAxIDIyNCAxMDBhNS43NiA1Ljc2IDAgMCAwLTIuMTMgMS42NWMtMS4zMSAxLjM5LTEuNDkgMi4xMS0xLjE0IDQuNmEzNi40NSAzNi40NSAwIDAgMCAxLjQyIDUuODhjMS4zMiAzLjggMS4zMSA3Ljg2IDAgMTAuNTdzLS44OSA2LjY1IDEuMzUgOS41OWMyIDIuNjMgMi4xNiA0LjU2LjcxIDguODRhMzMuNDUgMzMuNDUgMCAwIDAtMS4wNiA4LjkxYzAgNC44OC4yMiA2LjI4IDEuNDYgOC4zOHMxLjgyIDIuNDggMy4yNCAyLjMyYzItLjIzIDIuMy0xLjA1IDQuNzEtMTIuMTIgMi4xOC0xMCAzLjcxLTExLjkyIDEzLjc2LTE3LjA4IDIuOTQtMS41MSA3LjQ2LTQgMTAtNS40NHM2Ljc5LTMuNjkgOS4zNy00LjkxYTQwLjA5IDQwLjA5IDAgMCAwIDE1LjIyLTExLjY3YzcuMTEtOC43OSAxMC0xNi4yMiAxMi44NS0zMy4zYTE4LjM3IDE4LjM3IDAgMCAxIDIuODYtNy43MyAyMC4zOSAyMC4zOSAwIDAgMCAyLjg5LTcuMzFjMS01LjMgMi44NS05LjA4IDUuNTgtMTEuNTEgNC43LTQuMTggNi0xLjA5IDQuNTkgMTAuODctLjQ2IDMuODYtMS4xIDEwLjMzLTEuNDQgMTQuMzhsLS42MSA3LjM2IDQuNDUgNC4wOSA0LjQ1IDQuMDkuMTEgOC40MmMuMDYgNC42My40NyA5LjUzLjkyIDEwLjg5bC44MiAyLjQ3LTYuNDMgNi4yOGMtOC41NCA4LjMzLTEyLjg4IDEzLjkzLTE2Ljc2IDIxLjYxLTEuNzcgMy40OS0zLjc0IDcuMTEtNC4zOCA4LTIuMTggMy4xMS02LjQ2IDEzLTguNzYgMjAuMjZsLTIuMjkgNy4yMi03IDYuNDljLTMuODMgMy41Ny04IDcuMjUtOS4xNyA4LjE3LTMuMDUgMi4zMi00LjI2IDUuMTUtNC4yNiAxMGExNC42MiAxNC42MiAwIDAgMCAxLjU5IDcuMjYgNDIgNDIgMCAwIDEgMi4wOSA0LjgzIDkuMjggOS4yOCAwIDAgMCAxLjU3IDIuODljMS40IDEuNTkgMS45MiAxNi4xMi44MyAyMy4yMi0uNjggNC40OC0zLjYzIDEyLTQuNyAxMi0xLjc5IDAtNC4wNiA5LjI3LTUuMDcgMjAuNzQtLjE4IDItLjYyIDUuOTQtMSA4LjdzLTEgMTAtMS4zNSAxNi4wNWMtLjc3IDEyLjIyLS4xOSAxOC43NyAyIDIzLjE1IDMuNDEgNi42OS41MiAxMi42OS0xMSAyMi44NGwtNCAzLjQ5LjA3IDUuMTlhNDAuODEgNDAuODEgMCAwIDAgMS4xNCA4Ljg3YzQuNjEgMTYgNC43MyAxNi45MiA0LjM4IDM3LjEzLS40NiAyNi40LS4yNiA0MC4yNy42MyA0NC4xNWE2MS4zMSA2MS4zMSAwIDAgMSAxLjA4IDdjLjE3IDIgLjY2IDUuMzMgMS4wOCA3LjM2LjQ3IDIuMjYuNzggMTEgLjc5IDIyLjc0djE5LjA2bC0xLjgxIDIuNjNjLTIuNzEgMy45MS0xNS4xMSAxMy41NC0xNS40OSAxMi4yOXptMjkuNTMtNDUuMTFjLS4xOC0uMy0uMzMtNi44Ny0uMzMtMTQuNTkgMC0xNC4wNi0uODktMjcuNTQtMi4yNi0zNC40NS0uNC0yLS44MS05LjctLjktMTcuMDYtLjE1LTExLjkzLTEuNC0yNC4zNy0yLjY0LTI2LjM4LS42Ni0xLjA3LTMtMTcuNjYtMy0yMS4zIDAtNC4yMyAxLTYgNS4yOC05LjEzczQuODYtMy4xNCA1LjQ4LS43MmMuMjggMS4xIDEuNDUgNS42MiAyLjYgMTAgMy45MyAxNS4xMiA0LjE0IDE2LjI3IDQuMDUgMjEuNzQtLjEgNS43OC0uMTMgNi4xMy0xLjc0IDE3LjczLTEgNy4wNy0xLjE3IDEyLjM5LTEgMjguNDMuMTcgMTkuNC0uNjQgMzUuNzMtMiA0MS4yNy0uNzEgMi43OC0yLjggNS40OC0zLjQzIDQuNDN6bS03MS0zNy41OGExMDEgMTAxIDAgMCAxLTEuNzMtMTAuNzkgMTAwLjUgMTAwLjUgMCAwIDAtMS43My0xMC43OSAzNy41MyAzNy41MyAwIDAgMS0xLTYuNDljLS4zMS0zLjE5LS45MS03LjQ2LTEuMzMtOS40OC0xLTQuNzktMy4zNS0xOS4zNS0zLjQyLTIxLjA3IDAtLjc0LS4zNC00LjA1LS43LTcuMzYtLjY3LTYuMjEtLjg0LTI3LjY3LS4yMi0yOC4yOSAxLTEgNi42MyAyLjc2IDExLjMzIDcuNDNsNS4yOCA1LjI1LS40NSA2LjQ3Yy0uMjUgMy41Ni0uNiAxMC4yMy0uNzggMTQuODNzLS40OSA5Ljg3LS42NyAxMS43MS0uNjEgOS4zNi0uOTQgMTYuNzJjLS43OSAxNy40MS0xLjk0IDMxLjI5LTIuNjUgMzJhLjYyLjYyIDAgMCAxLTEtLjE0em0tODcuMTgtMjY2LjU5YzIxLjA3IDEyLjc5IDE3Ljg0IDE0LjE1IDI4LjQ5IDE3LjY2IDEzIDQuMjkgMTguODcgNy4xMyAyMy4xNSAxNi44N0MxMTEuNiAyMzMuMjggODYuMjUgMjU1IDc4LjU1IDI2OGMtMzEgNTItNiAxMDEuNTkgNjIuNzUgODcuMjEtMTQuMTggMjkuMjMtNzggMjguNjMtOTguNjgtNC45LTI0LjY4LTM5Ljk1LTIyLjA5LTExOC4zIDYxLTE4Ny42NnptMjEwLjc5IDE3OWM1Ni42NiA2Ljg4IDgyLjMyLTM3Ljc0IDQ2LjU0LTg5LjIzIDAgMC0yNi44Ny0yOS4zNC02NC4yOC02OCAzLTE1LjQ1IDkuNDktMzIuMTIgMzAuNTctNTMuODIgODkuMiA2My41MSA5MiAxNDEuNjEgOTIuNDYgMTQ5LjM2IDQuMyA3MC42NC03OC43IDkxLjE4LTEwNS4yOSA2MS43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFya2Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkzLjggNTkuMUg0Ni4yQzIwLjcgNTkuMSAwIDc5LjggMCAxMDUuMnYzMDEuNWMwIDI1LjUgMjAuNyA0Ni4yIDQ2LjIgNDYuMmg1NDcuN2MyNS41IDAgNDYuMi0yMC43IDQ2LjEtNDYuMVYxMDUuMmMwLTI1LjQtMjAuNy00Ni4xLTQ2LjItNDYuMXpNMzM4LjUgMzYwLjZIMjc3di0xMjBsLTYxLjUgNzYuOS02MS41LTc2Ljl2MTIwSDkyLjNWMTUxLjRoNjEuNWw2MS41IDc2LjkgNjEuNS03Ni45aDYxLjV2MjA5LjJ6bTEzNS4zIDMuMUwzODEuNSAyNTZINDQzVjE1MS40aDYxLjVWMjU2SDU2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFzdG9kb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzIDE3OS4xMWMwLTk3LjItNjMuNzEtMTI1LjctNjMuNzEtMTI1LjctNjIuNTItMjguNy0yMjguNTYtMjguNC0yOTAuNDggMCAwIDAtNjMuNzIgMjguNS02My43MiAxMjUuNyAwIDExNS43LTYuNiAyNTkuNCAxMDUuNjMgMjg5LjEgNDAuNTEgMTAuNyA3NS4zMiAxMyAxMDMuMzMgMTEuNCA1MC44MS0yLjggNzkuMzItMTguMSA3OS4zMi0xOC4xbC0xLjctMzYuOXMtMzYuMzEgMTEuNC03Ny4xMiAxMC4xYy00MC40MS0xLjQtODMtNC40LTg5LjYzLTU0YTEwMi41NCAxMDIuNTQgMCAwIDEtLjktMTMuOWM4NS42MyAyMC45IDE1OC42NSA5LjEgMTc4Ljc1IDYuNyA1Ni4xMi02LjcgMTA1LTQxLjMgMTExLjIzLTcyLjkgOS44LTQ5LjggOS0xMjEuNSA5LTEyMS41em0tNzUuMTIgMTI1LjJoLTQ2LjYzdi0xMTQuMmMwLTQ5LjctNjQtNTEuNi02NCA2Ljl2NjIuNWgtNDYuMzNWMTk3YzAtNTguNS02NC01Ni42LTY0LTYuOXYxMTQuMkg5MC4xOWMwLTEyMi4xLTUuMi0xNDcuOSAxOC40MS0xNzUgMjUuOS0yOC45IDc5LjgyLTMwLjggMTAzLjgzIDYuMWwxMS42IDE5LjUgMTEuNi0xOS41YzI0LjExLTM3LjEgNzguMTItMzQuOCAxMDMuODMtNi4xIDIzLjcxIDI3LjMgMTguNCA1MyAxOC40IDE3NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWF4Y2RuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MS4xIDQ0Mi43aC05Ny40TDQxNS42IDIwMGMyLjMtMTAuMi45LTE5LjUtNC40LTI1LjctNS02LjEtMTMuNy05LjYtMjQuMi05LjZoLTQ5LjNsLTU5LjUgMjc4aC05Ny40bDU5LjUtMjc4aC04My40bC01OS41IDI3OEgwbDU5LjUtMjc4LTQ0LjYtOTUuNEgzODdjMzkuNCAwIDc1LjMgMTYuMyA5OC4zIDQ0LjkgMjMuMyAyOC42IDMxLjggNjcuNCAyMy42IDEwNS45bC00Ny44IDIyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMzcgMTYwLjQxTDcgMzUyaDQzLjkxbDUuNTktNzkuODNMODQuNDMgMzUyaDQ0LjcxbDI1LjU0LTc3LjQzIDQuNzkgNzcuNDNIMjA1bC0xMi43OS0xOTEuNTlIMTQ2LjdMMTA2IDI3Ny43NCA2My42NyAxNjAuNDF6bTI4MSAwaC00Ny45VjM1Mmg0Ny45czk1IC44IDk0LjItOTUuNzljLS43OC05NC4yMS05NC4xOC05NS43OC05NC4xOC05NS43OHptLTEuMiAxNDYuNDZWMjA0Ljc4czQ2IDQuMjcgNDYuOCA1MC41Ny00Ni43OCA1MS41NC00Ni43OCA1MS41NHptMjM4LjI5LTc0LjI0YTU2LjE2IDU2LjE2IDAgMCAwIDgtMzguMzFjLTUuMzQtMzUuNzYtNTUuMDgtMzQuMzItNTUuMDgtMzQuMzJoLTUxLjl2MTkxLjU4SDQ4MnM4NyA0Ljc5IDg3LTYzLjg1YzAtNDMuMTQtMzMuNTItNTUuMDgtMzMuNTItNTUuMDh6bS01MS45LTMxLjk0czEzLjU3LTEuNTkgMTYgOS41OWMxLjQzIDYuNjYtNCAxMi00IDEyaC0xMnYtMjEuNTd6bS0uMSAxMDkuNDZsLjEtMjQuOTJWMjY3aC4wOHM0MS41OC00LjczIDQxLjE5IDIyLjQzYy0uMzMgMjUuNjUtNDEuMzUgMjAuNzQtNDEuMzUgMjAuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZGFwcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE4LjMgMjM4LjRjMy41LTEyLjUgNi45LTMzLjYgMTMuMi0zMy42IDguMyAxLjggOS42IDIzLjQgMTguNiAzNi42IDQuNi0yMy41IDUuMy04NS4xIDE0LjEtODYuNyA5LS43IDE5LjcgNjYuNSAyMiA3Ny41IDkuOSA0LjEgNDguOSA2LjYgNDguOSA2LjYgMS45IDcuMy0yNCA3LjYtNDAgNy44LTQuNiAxNC44LTUuNCAyNy43LTExLjQgMjgtNC43LjItOC4yLTI4LjgtMTcuNS00OS42bC05LjQgNjUuNWMtNC40IDEzLTE1LjUtMjIuNS0yMS45LTM5LjMtMy4zLS4xLTYyLjQtMS42LTQ3LjYtNy44bDMxLTV6TTIyOCA0NDhjMjEuMiAwIDIxLjItMzIgMC0zMkg5MmMtMjEuMiAwLTIxLjIgMzIgMCAzMmgxMzZ6bS0yNCA2NGMyMS4yIDAgMjEuMi0zMiAwLTMyaC04OGMtMjEuMiAwLTIxLjIgMzIgMCAzMmg4OHptMzQuMi0xNDEuNWMzLjItMTguOSA1LjItMzYuNCAxMS45LTQ4LjggNy45LTE0LjcgMTYuMS0yOC4xIDI0LTQxIDI0LjYtNDAuNCA0NS45LTc1LjIgNDUuOS0xMjUuNUMzMjAgNjkuNiAyNDguMiAwIDE2MCAwUzAgNjkuNiAwIDE1NS4yYzAgNTAuMiAyMS4zIDg1LjEgNDUuOSAxMjUuNSA3LjkgMTIuOSAxNiAyNi4zIDI0IDQxIDYuNyAxMi41IDguNyAyOS44IDExLjkgNDguOSAzLjUgMjEgMzYuMSAxNS43IDMyLjYtNS4xLTMuNi0yMS43LTUuNi00MC43LTE1LjMtNTguNkM2Ni41IDI0Ni41IDMzIDIxMS4zIDMzIDE1NS4yIDMzIDg3LjMgOTAgMzIgMTYwIDMyczEyNyA1NS4zIDEyNyAxMjMuMmMwIDU2LjEtMzMuNSA5MS4zLTY2LjEgMTUxLjYtOS43IDE4LTExLjcgMzcuNC0xNS4zIDU4LjYtMy40IDIwLjYgMjkgMjYuNCAzMi42IDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4MC41LDc0LjI2MkM4MC44MTMsNzQuMjYyLDAsMTU1LjYzMywwLDI1NlM4MC44MTksNDM3LjczOCwxODAuNSw0MzcuNzM4LDM2MSwzNTYuMzczLDM2MSwyNTYsMjgwLjE5MSw3NC4yNjIsMTgwLjUsNzQuMjYyWm0yODguMjUsMTAuNjQ2Yy00OS44NDUsMC05MC4yNDUsNzYuNjE5LTkwLjI0NSwxNzEuMDk1czQwLjQwNiwxNzEuMSw5MC4yNTEsMTcxLjEsOTAuMjUxLTc2LjYxOSw5MC4yNTEtMTcxLjFINTU5QzU1OSwxNjEuNSw1MTguNiw4NC45MDgsNDY4Ljc1Miw4NC45MDhabTEzOS41MDYsMTcuODIxYy0xNy41MjYsMC0zMS43MzUsNjguNjI4LTMxLjczNSwxNTMuMjc0czE0LjIsMTUzLjI3NCwzMS43MzUsMTUzLjI3NFM2NDAsMzQwLjYzMSw2NDAsMjU2QzY0MCwxNzEuMzUxLDYyNS43ODUsMTAyLjcyOSw2MDguMjU4LDEwMi43MjlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZHJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMy43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjlDMTExLjQgNTA0IDAgMzkzIDAgMjU2UzExMS40IDggMjQ4LjkgOGMyMC4xIDAgMzkuNiAyLjQgNTguMiA2LjlDMTk3LjUgMzMuMiAxMTMuNyAxMzQuMiAxMTMuNyAyNTZtMjk3LjQgMTAwLjNjLTc3LjcgNTUuNC0xNzkuNiA0Ny41LTI0MC40LTE0LjYgNS41IDE0LjEgMTIuNyAyNy43IDIxLjcgNDAuNSA2MS42IDg4LjIgMTgyLjQgMTA5LjMgMjY5LjcgNDcgODcuMy02Mi4zIDEwOC4xLTE4NC4zIDQ2LjUtMjcyLjYtOS0xMi45LTE5LjMtMjQuMy0zMC41LTM0LjIgMzcuNCA3OC44IDEwLjcgMTc4LjUtNjcgMjMzLjltLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44TTI5NiAyMjRjLTQuNCAwLTgtMy42LTgtOHYtNDBjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djQwYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOCAzLjYgOCA4djQwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQwYzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOGgtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZXR1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05OSA0MTQuM2MxLjEgNS43LTIuMyAxMS4xLTggMTIuMy01LjQgMS4xLTEwLjktMi4zLTEyLTgtMS4xLTUuNCAyLjMtMTEuMSA3LjctMTIuMyA1LjQtMS4yIDExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNjNi4zLTEuNCAxMC4zLTcuNyA4LjktMTQtMS4xLTYuNi03LjQtMTAuNi0xMy43LTkuMS02LjMgMS40LTEwLjMgNy43LTkuMSAxNCAxLjQgNi42IDcuNiAxMC42IDEzLjkgOS4xek0zNC40IDIyNi4zYy0xMC02LjktMjMuNy00LjMtMzAuNiA2LTYuOSAxMC00LjMgMjQgNS43IDMwLjkgMTAgNy4xIDIzLjcgNC42IDMwLjYtNS43IDYuOS0xMC40IDQuMy0yNC4xLTUuNy0zMS4yem0yNzItMTcwLjljMTAuNi02LjMgMTMuNy0yMCA3LjctMzAuMy02LjMtMTAuNi0xOS43LTE0LTMwLTcuN3MtMTMuNyAyMC03LjQgMzAuNmM2IDEwLjMgMTkuNCAxMy43IDI5LjcgNy40em0tMTkxLjEgNThjNy43LTUuNCA5LjQtMTYgNC4zLTIzLjdzLTE1LjctOS40LTIzLjEtNC4zYy03LjcgNS40LTkuNCAxNi00LjMgMjMuNyA1LjEgNy44IDE1LjYgOS41IDIzLjEgNC4zem0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhjLTEuMS01LjctNi42LTkuMS0xMi04LTUuNyAxLjEtOS4xIDYuOS04IDEyLjYgMS4xIDUuNCA2LjYgOS4xIDEyLjMgOCA1LjQtMS41IDkuMS02LjkgNy43LTEyLjZ6TTQ0NyAxMzguOWMtOC42IDYtMTAuNiAxNy43LTQuOSAyNi4zIDUuNyA4LjYgMTcuNCAxMC42IDI2IDQuOSA4LjMtNiAxMC4zLTE3LjcgNC42LTI2LjMtNS43LTguNy0xNy40LTEwLjktMjUuNy00Ljl6bS02LjMgMTM5LjRjMjYuMyA0My4xIDE1LjEgMTAwLTI2LjMgMTI5LjEtMTcuNCAxMi4zLTM3LjEgMTcuNy01Ni45IDE3LjEtMTIgNDcuMS02OS40IDY0LjYtMTA1LjEgMzIuNi0xLjEuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45LjYtMTA3LjQgNTMuNC0xMTQuOUMxNTEuNiA3MCAyMzQuMSAzOC42IDI5MC4xIDgyYzY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zLjkgNy4xIDEwLjktMS40IDkuNC0zNS4xIDcyLjMtMzguOSA4Ny43LTQuNiAyMC42IDYuNiA0MS40IDI0LjkgNTAuNiAxMS40IDUuNyA2Mi41IDE1LjcgNTguNS0xMS4xem01LjcgOTIuM2MtMTAuMyA3LjQtMTIuOSAyMi01LjcgMzIuNiA3LjEgMTAuNiAyMS40IDEzLjEgMzIgNiAxMC42LTcuNCAxMy4xLTIyIDYtMzIuNi03LjQtMTAuNi0yMS43LTEzLjUtMzIuMy02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWdhcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTQuNSAyMDkuNnY2Ni4ybDMzLjUgMzMuNSAzMy4zLTMzLjN2LTY2LjRsLTMzLjQtMzMuNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTQ1LjEgNDE0LjRMMzY3IDQ0MS42bC0yNi0xOS4ydi02NS41bC0zMy40LTMzLjQtMzMuNCAzMy40djY1LjVMMjQ4IDQ0MS42bC0yNi4xLTE5LjJ2LTY1LjVsLTMzLjQtMzMuNC0zMy41IDMzLjR2NjUuNWwtMjYuMSAxOS4yLTI2LjEtMTkuMnYtODdsNTkuNS01OS41VjE4OGw1OS41LTU5LjVWNTIuOWwyNi4xLTE5LjJMMjc0IDUyLjl2NzUuNmw1OS41IDU5LjV2ODcuNmw1OS43IDU5Ljd2ODcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVuZGVsZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0LjYgMzI1LjJjLTEyLjMtMTIuNC0yOS43LTE5LjItNDguNC0xNy4yLTQzLjMtMS00OS43LTM0LjktMzcuNS05OC44IDIyLjgtNTcuNS0xNC45LTEzMS41LTg3LjQtMTMwLjgtNzcuNC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMS4xLS4yLjItLjMuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6bS0zMDMuOS0xOS4xaC0uNmMtNDMuNCAwLTYyLjgtMzcuNS02Mi44LTYyLjggMC0zNC43IDI4LjItNjIuOCA2Mi44LTYyLjhoLjZjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAzMTcuOUM2NDAgNDA5LjIgNjAwLjYgNDY2LjQgNTI5LjcgNDY2LjRDNDY3LjEgNDY2LjQgNDMzLjkgNDMxLjggMzcyLjggMzI5LjhMMzQxLjQgMjc3LjJDMzMzLjEgMjY0LjcgMzI2LjkgMjUzIDMyMC4yIDI0Mi4yQzMwMC4xIDI3NiAyNzMuMSAzMjUuMiAyNzMuMSAzMjUuMkMyMDYuMSA0NDEuOCAxNjguNSA0NjYuNCAxMTYuMiA0NjYuNEM0My40MiA0NjYuNCAwIDQwOS4xIDAgMzIwLjVDMCAxNzcuNSA3OS43OCA0Mi40IDE4My45IDQyLjRDMjM0LjEgNDIuNCAyNzcuNyA2Ny4wOCAzMjguNyAxMzEuOUMzNjUuOCA4MS44IDQwNi44IDQyLjQgNDU5LjMgNDIuNEM1NTguNCA0Mi40IDY0MCAxNjguMSA2NDAgMzE3LjlINjQwek0yODcuNCAxOTIuMkMyNDQuNSAxMzAuMSAyMTYuNSAxMTEuNyAxODMgMTExLjdDMTIxLjEgMTExLjcgNjkuMjIgMjE3LjggNjkuMjIgMzIxLjdDNjkuMjIgMzcwLjIgODcuNyAzOTcuNCAxMTguOCAzOTcuNEMxNDkgMzk3LjQgMTY3LjggMzc4LjQgMjIyIDI5My42QzIyMiAyOTMuNiAyNDYuNyAyNTQuNSAyODcuNCAxOTIuMlYxOTIuMnpNNTMxLjIgMzk3LjRDNTYzLjQgMzk3LjQgNTc4LjEgMzY5LjkgNTc4LjEgMzIyLjVDNTc4LjEgMTk4LjMgNTIzLjggOTcuMDggNDU0LjkgOTcuMDhDNDIxLjcgOTcuMDggMzkzLjggMTIzIDM2MCAxNzUuMUMzNjkuNCAxODguOSAzNzkuMSAyMDQuMSAzODkuMyAyMjAuNUw0MjYuOCAyODIuOUM0ODUuNSAzNzcgNTAwLjMgMzk3LjQgNTMxLjIgMzk3LjRMNTMxLjIgMzk3LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvYmxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTkuMzYsMzYyLjIzYzI5LjQ5LTM0LjY5LDQ3LjEtNzguMzQsNDcuMS0xMjUuNzlDNDQ2LjQ2LDEyMy40OSwzNDYuODYsMzIsMjI0LDMyUzEuNTQsMTIzLjQ5LDEuNTQsMjM2LjQ0LDEwMS4xNCw0NDAuODcsMjI0LDQ0MC44N2EyMzkuMjgsMjM5LjI4LDAsMCwwLDc5LjQ0LTEzLjQ0LDcuMTgsNy4xOCwwLDAsMSw4LjEyLDIuNTZjMTguNTgsMjUuMDksNDcuNjEsNDIuNzQsNzkuODksNDkuOTJhNC40Miw0LjQyLDAsMCwwLDUuMjItMy40Myw0LjM3LDQuMzcsMCwwLDAtLjg1LTMuNjIsODcsODcsMCwwLDEsMy42OS0xMTAuNjlaTTMyOS41MiwyMTIuNGwtNTcuMyw0My40OUwyOTMsMzI0Ljc1YTYuNSw2LjUsMCwwLDEtOS45NCw3LjIyTDIyNCwyOTAuOTIsMTY0Ljk0LDMzMmE2LjUxLDYuNTEsMCwwLDEtOS45NS03LjIybDIwLjc5LTY4Ljg2LTU3LjMtNDMuNDlhNi41LDYuNSwwLDAsMSwzLjgtMTEuNjhsNzEuODgtMS41MSwyMy42Ni02Ny45MmE2LjUsNi41LDAsMCwxLDEyLjI4LDBsMjMuNjYsNjcuOTIsNzEuODgsMS41MWE2LjUsNi41LDAsMCwxLDMuODgsMTEuNjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3Jvc29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyaDIxNC42djIxNC42SDBWMzJ6bTIzMy40IDBINDQ4djIxNC42SDIzMy40VjMyek0wIDI2NS40aDIxNC42VjQ4MEgwVjI2NS40em0yMzMuNCAwSDQ0OFY0ODBIMjMzLjRWMjY1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pbnRiaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzMuMiA1MTJWNDM4LjlIMzY1LjdWMzY1LjdoNzMuMlYyMTkuNEg1MTJWMEgyOTIuNlY3My4xSDE0Ni4zdjczLjJINzMuMlY0MzguOUgwVjUxMkg3My4yem03My4xLTIxOS40aDczLjJ2NzMuMUgxNDYuM1YyOTIuNnptNzMuMi03My4xaDczLjF2NzMuMUgyMTkuNFYyMTkuNHptNzMuMSAwVjE0Ni4zaDczLjJ2NzMuMUgyOTIuNnpNMzY1LjcgNzMuMWg3My4ydjczLjJIMzY1LjdWNzMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjR2MzQ4LjljMCA1Ni4yIDg4IDU4LjEgODggMFYxNzQuM2M3LjktNTIuOSA4OC01MC40IDg4IDYuNXYxNzUuM2MwIDU3LjkgOTYgNTggOTYgMFYyNDBjNS4zLTU0LjcgODgtNTIuNSA4OCA0LjN2MjMuOGMwIDU5LjkgODggNTYuNiA4OCAwVjY0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1peGNsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi45OCAzNDYuNTY2SDE3OS43ODlWMTk1LjExNEwxODUuOTczIDE3My40N0gxNzUuMjYyTDEzNy4xMjcgMzQ2LjU2Nkg3Ni4xMDY5TDM3LjczMjMgMTczLjQ3SDI3LjI3NkwzMy4xOTEzIDE5NS4xMTRWMzQ2LjU2NkgwVjE2NUg2NS42NTA2TDEwMi4yNDggMzM4LjA5NkgxMTAuNzQ3TDE0Ny4zMjkgMTY1SDIxMi45OEwyMTIuOTggMzQ2LjU2NlpNNTQ0LjQ1OSAyODMuNTg5TDQ1OC40MzQgMzQ1LjY1NVYzMDcuNTM0TDUzMS4zMjkgMjU1Ljc3Nkw0NTguNDM0IDIwNC4wMTdWMTY1Ljg5Nkw1NDQuNDU5IDIyOC4yMzFINTUzLjcyMUw2NDAgMTY1Ljg5NlYyMDQuMDE3TDU2Ni44NjYgMjU1Ljc3Nkw2NDAgMzA3LjU0OVYzNDUuNjU1TDU1My43MjEgMjgzLjU4OUg1NDQuNDU5Wk00MzAuMTU3IDI3Mi4zMTFIMjQ4LjExM1YyMzkuMjU1SDQzMC4xNTdWMjcyLjMxMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE0LjU3LDc2LjA3YTQ1LjcxLDQ1LjcxLDAsMCwwLTY3LjUxLTYuNDFjLTE3LjU4LDE2LjE4LTE5LDQzLjUyLTQuNzUsNjIuNzdsOTEuNzgsMTIzTDQxLjc2LDM3OS41OGMtMTQuMjMsMTkuMjUtMTMuMTEsNDYuNTksNC43NCw2Mi43N0E0NS43MSw0NS43MSwwLDAsMCwxMTQsNDM1Ljk0TDI0Mi44OSwyNjIuN2ExMi4xNCwxMi4xNCwwLDAsMCwwLTE0LjIzWk00NzAuMjQsMzc5LjU4LDM3Ny45MSwyNTUuNDVsOTEuNzgtMTIzYzE0LjIyLTE5LjI1LDEyLjgzLTQ2LjU5LTQuNzUtNjIuNzdhNDUuNzEsNDUuNzEsMCwwLDAtNjcuNTEsNi40MWwtMTI4LDE3Mi4xMmExMi4xNCwxMi4xNCwwLDAsMCwwLDE0LjIzTDM5OCw0MzUuOTRhNDUuNzEsNDUuNzEsMCwwLDAsNjcuNTEsNi40MUM0ODMuMzUsNDI2LjE3LDQ4NC40NywzOTguODMsNDcwLjI0LDM3OS41OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl6dW5pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5LjEgMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OEM0OTYgMTE5LjEgMzg1IDggMjQ4IDh6bS04MCAzNTEuOWMtMzEuNCAxMC42LTU4LjggMjcuMy04MCA0OC4yVjEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjIyMy45em0xMjAtOS45Yy0xMi45LTItMjYuMi0zLjEtMzkuOC0zLjEtMTMuOCAwLTI3LjIgMS4xLTQwLjIgMy4xVjEzNmMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjIxNHptMTIwIDU3LjdjLTIxLjItMjAuOC00OC42LTM3LjQtODAtNDhWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjcxLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vZHggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzU2IDI0MS44bDM2LjcgMjMuN1Y0ODBsLTEzMy04My44TDM1NiAyNDEuOHpNNDQwIDc1SDIyNi4zbC0yMyAzNy44IDE1My41IDk2LjVMNDQwIDc1em0tODkgMTQyLjhMNTUuMiAzMnYyMTQuNWw0NiAyOUwzNTEgMjE3Ljh6TTk3IDI5NC4yTDggNDM3aDIxMy43bDEyNS0yMDAuNUw5NyAyOTQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAzODRoMTA4LjRDNDE3IDQ1NS45IDMzOC4xIDUwNCAyNDggNTA0Uzc5IDQ1NS45IDM1LjYgMzg0SDE0NFYyNTYuMkwyNDggMzYxbDEwNC0xMDV2MTI4ek04OCAzMzZWMTI4bDE1OS40IDE1OS40TDQwOCAxMjh2MjA4aDc0LjhjOC41LTI1LjEgMTMuMi01MiAxMy4yLTgwQzQ5NiAxMTkgMzg1IDggMjQ4IDhTMCAxMTkgMCAyNTZjMCAyOCA0LjYgNTQuOSAxMy4yIDgwSDg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOYXBzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC4zIDM3My42Yy0xNC4yIDEzLjYtMzEuMyAyNC4xLTUwLjQgMzAuNS0xOS02LjQtMzYuMi0xNi45LTUwLjMtMzAuNWgxMDAuN3ptNDQtMTk5LjZjMjAtMTYuOSA0My42LTI5LjIgNjkuNi0zNi4yVjI5OWMwIDIxOS40LTMyOCAyMTcuNi0zMjggLjNWMTM3LjdjMjUuOSA2LjkgNDkuNiAxOS42IDY5LjUgMzYuNCA1Ni44LTQwIDEzMi41LTM5LjkgMTg4LjktLjF6bS0yMDguOC01OC41YzY0LjQtNjAgMTY0LjMtNjAuMSAyMjguOS0uMi03LjEgMy41LTEzLjkgNy4zLTIwLjYgMTEuNS01OC43LTMwLjUtMTI5LjItMzAuNC0xODcuOS4xLTYuMy00LTEzLjktOC4yLTIwLjQtMTEuNHpNNDMuOCA5My4ydjY5LjNjLTU4LjQgMzYuNS01OC40IDEyMS4xLjEgMTU4LjMgMjYuNCAyNDUuMSAzODEuNyAyNDAuMyA0MDcuNiAxLjVsLjMtMS43YzU4LjctMzYuMyA1OC45LTEyMS43LjItMTU4LjJWOTMuMmMtMTcuMy41LTM0IDMtNTAuMSA3LjQtODItOTEuNS0yMjUuNS05MS41LTMwNy41LjEtMTYuMy00LjQtMzMuMS03LTUwLjYtNy41ek0yNTkuMiAzNTJzMzYtLjMgNjEuMy0xLjVjMTAuMi0uNSAyMS4xLTQgMjUuNS02LjUgMjYuMy0xNS4xIDI1LjQtMzkuMiAyNi4yLTQ3LjQtNzkuNS0uNi05OS45LTMuOS0xMTMgNTUuNHptLTEzNS41LTU1LjNjLjggOC4yLS4xIDMyLjMgMjYuMiA0Ny40IDQuNCAyLjUgMTUuMiA2IDI1LjUgNi41IDI1LjMgMS4xIDYxLjMgMS41IDYxLjMgMS41LTEzLjItNTkuNC0zMy43LTU2LjEtMTEzLTU1LjR6bTE2OS4xIDEyMy40Yy0zLjItNS4zLTYuOS03LjMtNi45LTcuMy0yNC44IDcuMy01Mi4yIDYuOS03NS45IDAgMCAwLTIuOSAxLjUtNi40IDYuNi0yLjggNC4xLTMuNyA5LjYtMy43IDkuNiAyOS4xIDE3LjYgNjcuMSAxNy42IDk2LjIgMC0uMS0uMS0uMy00LTMuMy04Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5lb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE1LjQ0IDUxMmgtOTUuMTFMMjEyLjEyIDM1Ny40NnY5MS4xTDEyNS42OSA1MTJIMjhWMjkuODJMNjguNDcgMGgxMDguMDVsMTIzLjc0IDE3Ni4xM1Y2My40NUwzODYuNjkgMGg5Ny42OXY0NjEuNXpNMzguNzcgMzUuMjdWNDk2bDcyLTUyLjg4VjE5NGwyMTUuNSAzMDcuNjRoODQuNzlsNTIuMzUtMzguMTdoLTc4LjI3TDY5IDEzem04Mi41NCA0NjYuNjFsODAtNTguNzh2LTEwMWwtNzkuNzYtMTE0LjR2MjIwLjk0TDQ5IDUwMS44OWg3Mi4zNHpNODAuNjMgMTAuNzdsMzEwLjYgNDQyLjU3aDgyLjM3VjEwLjc3aC03OS43NXYzMTcuNTZMMTcwLjkxIDEwLjc3ek0zMTEgMTkxLjY1bDcyIDEwMi44MVYxNS45M2wtNzIgNTN2MTIyLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZmNEaXJlY3Rpb25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTEuOCA0ODguNkMyMTMuNCA0OTEuMSAyMTMuOSA0OTQuMiAyMTMuMiA0OTcuMUMyMTIuNiA1MDAgMjEwLjggNTAyLjYgMjA4LjMgNTA0LjJDMjA1LjcgNTA1LjggMjAyLjcgNTA2LjMgMTk5LjcgNTA1LjdDMTM4LjMgNDkxLjggODQuMSA0NTUuOCA0Ny41MyA0MDQuNUMxMC45NyAzNTMuMi01LjM5NSAyOTAuMyAxLjU3IDIyNy43QzguNTM2IDE2NSAzOC4zNCAxMDcuMiA4NS4yOSA2NS4yMUMxMzIuMiAyMy4yIDE5My0uMDEzMSAyNTYgMEMyNTcuNSAwIDI1OC4xIC4yOTMxIDI2MC4zIC44NjI3QzI2MS43IDEuNDMyIDI2Mi4xIDIuMjY3IDI2NCAzLjMxOUMyNjUuMSA0LjM3MSAyNjUuOSA1LjYxOSAyNjYuNSA2Ljk5M0MyNjcgOC4zNjcgMjY3LjMgOS44MzkgMjY3LjMgMTEuMzJWMTEyLjNMMjkxLjggODYuMzlDMjkyLjggODUuMzEgMjk0IDg0LjQ0IDI5NS40IDgzLjg0QzI5Ni43IDgzLjIzIDI5OC4yIDgyLjkgMjk5LjcgODIuODZDMzAxLjIgODIuODEgMzAyLjYgODMuMDYgMzA0IDgzLjU5QzMwNS40IDg0LjEyIDMwNi43IDg0LjkyIDMwNy44IDg1Ljk0QzMwOC44IDg2Ljk2IDMwOS43IDg4LjE4IDMxMC4zIDg5LjU0QzMxMC45IDkwLjg5IDMxMS4zIDkyLjM1IDMxMS4zIDkzLjg0QzMxMS4zIDk1LjMyIDMxMS4xIDk2LjggMzEwLjYgOTguMThDMzEwIDk5LjU3IDMwOS4yIDEwMC44IDMwOC4yIDEwMS45TDI2NC4yIDE0OC41QzI2My4xIDE0OS42IDI2MS45IDE1MC41IDI2MC41IDE1MS4xQzI1OSAxNTEuNyAyNTcuNSAxNTIgMjU1LjEgMTUyQzI1NC41IDE1MiAyNTIuOSAxNTEuNyAyNTEuNSAxNTEuMUMyNTAuMSAxNTAuNSAyNDguOCAxNDkuNiAyNDcuOCAxNDguNUwyMDMuNyAxMDEuOUMyMDEuNyA5OS43NCAyMDAuNiA5Ni44MyAyMDAuNyA5My44NEMyMDAuNyA5MC44NCAyMDIgODcuMSAyMDQuMiA4NS45NEMyMDYuNCA4My44OCAyMDkuMyA4Mi43NyAyMTIuMyA4Mi44NkMyMTUuMyA4Mi45NCAyMTguMSA4NC4yMSAyMjAuMiA4Ni4zOUwyNDQuNyAxMTIuNFYyMi44OUMxODguMyAyNS42NCAxMzQuOSA0OC43MyA5NC4yMyA4Ny44N0M1My41OCAxMjcgMjguNDkgMTc5LjYgMjMuNjEgMjM1LjhDMTguNzMgMjkyIDM0LjM4IDM0OC4xIDY3LjY4IDM5My43QzEwMC4xIDQzOS4yIDE0OS43IDQ3MS4yIDIwNC43IDQ4My42QzIwNy42IDQ4NC4zIDIxMC4yIDQ4Ni4xIDIxMS44IDQ4OC42TDIxMS44IDQ4OC42ek0xNzEuNCAxMjYuMUMxNzAuNiAxMjcuNCAxNjkuNSAxMjguNSAxNjguMyAxMjkuM0MxNDcuOCAxNDMuMiAxMzEuMSAxNjEuOSAxMTkuNSAxODMuOEMxMDcuOSAyMDUuNyAxMDEuOCAyMzAuMSAxMDEuOCAyNTQuOUMxMDEuOCAyNzkuNyAxMDcuOSAzMDQuMSAxMTkuNSAzMjUuMUMxMzEuMSAzNDcuOSAxNDcuOCAzNjYuNiAxNjguMyAzODAuNUMxNzAuOCAzODIuMiAxNzIuNSAzODQuOCAxNzMgMzg3LjhDMTczLjYgMzkwLjcgMTcyLjEgMzkzLjggMTcxLjMgMzk2LjJDMTY5LjYgMzk4LjcgMTY2LjEgNDAwLjQgMTY0IDQwMC4xQzE2MS4xIDQwMS41IDE1OCA0MDAuOSAxNTUuNiAzOTkuMkMxMzIgMzgzLjIgMTEyLjggMzYxLjcgOTkuNDYgMzM2LjVDODYuMTUgMzExLjQgNzkuMTkgMjgzLjQgNzkuMTkgMjU0LjlDNzkuMTkgMjI2LjUgODYuMTUgMTk4LjQgOTkuNDYgMTczLjNDMTEyLjggMTQ4LjEgMTMyIDEyNi42IDE1NS42IDExMC42QzE1Ni44IDEwOS44IDE1OC4yIDEwOS4yIDE1OS42IDEwOC44QzE2MS4xIDEwOC41IDE2Mi42IDEwOC41IDE2NC4xIDEwOC44QzE2NS41IDEwOSAxNjYuOSAxMDkuNiAxNjguMiAxMTAuNEMxNjkuNSAxMTEuMiAxNzAuNSAxMTIuMyAxNzEuNCAxMTMuNUMxNzIuMiAxMTQuNyAxNzIuOCAxMTYuMSAxNzMuMSAxMTcuNkMxNzMuNCAxMTkuMSAxNzMuNCAxMjAuNiAxNzMuMSAxMjJDMTcyLjggMTIzLjUgMTcyLjMgMTI0LjkgMTcxLjQgMTI2LjFIMTcxLjR6TTM0MC45IDM4My41QzM0MS43IDM4Mi4zIDM0Mi44IDM4MS4yIDM0My4xIDM4MC40VjM4MC4zQzM2NC40IDM2Ni4zIDM4MS4xIDM0Ny42IDM5Mi43IDMyNS43QzQwNC4yIDMwMy45IDQxMC4yIDI3OS41IDQxMC4yIDI1NC44QzQxMC4yIDIzMC4xIDQwNC4yIDIwNS43IDM5Mi43IDE4My44QzM4MS4xIDE2MS4xIDM2NC40IDE0My4zIDM0My4xIDEyOS4zQzM0Mi44IDEyOC41IDM0MS43IDEyNy40IDM0MC45IDEyNi4yQzM0MC4xIDEyNC45IDMzOS41IDEyMy41IDMzOS4zIDEyMi4xQzMzOC4xIDEyMC42IDMzOSAxMTkuMSAzMzkuMyAxMTcuN0MzMzkuNiAxMTYuMiAzNDAuMiAxMTQuOCAzNDEgMTEzLjZDMzQxLjkgMTEyLjQgMzQyLjEgMTExLjMgMzQ0LjIgMTEwLjVDMzQ1LjQgMTA5LjcgMzQ2LjggMTA5LjIgMzQ4LjMgMTA4LjlDMzQ5LjggMTA4LjYgMzUxLjIgMTA4LjYgMzUyLjcgMTA4LjlDMzU0LjIgMTA5LjIgMzU1LjUgMTA5LjggMzU2LjggMTEwLjdDMzgwLjIgMTI2LjcgMzk5LjUgMTQ4LjIgNDEyLjcgMTczLjNDNDI2IDE5OC40IDQzMi4xIDIyNi40IDQzMi4xIDI1NC44QzQzMi4xIDI4My4zIDQyNiAzMTEuMyA0MTIuNyAzMzYuNEMzOTkuNSAzNjEuNSAzODAuMiAzODMgMzU2LjggMzk5QzM1NS41IDM5OS45IDM1NC4yIDQwMC41IDM1Mi43IDQwMC44QzM1MS4yIDQwMS4xIDM0OS44IDQwMS4xIDM0OC4zIDQwMC44QzM0Ni44IDQwMC41IDM0NS40IDM5OS4xIDM0NC4yIDM5OS4yQzM0Mi4xIDM5OC40IDM0MS45IDM5Ny4zIDM0MSAzOTYuMUMzNDAuMiAzOTQuOSAzMzkuNiAzOTMuNSAzMzkuMyAzOTJDMzM5IDM5MC42IDMzOC4xIDM4OS4xIDMzOS4zIDM4Ny42QzMzOS41IDM4Ni4yIDM0MC4xIDM4NC44IDM0MC45IDM4My41VjM4My41ek0zMTIuMyA2LjMwN0MzNjguNSAxOS4wNCA0MTguNyA1MC4yOCA0NTUgOTUuMDFDNDg1LjQgMTMyLjYgNTA0LjYgMTc4IDUxMC4zIDIyNkM1MTUuOSAyNzQgNTA3LjkgMzIyLjcgNDg3LjEgMzY2LjNDNDY2LjIgNDA5LjkgNDMzLjUgNDQ2LjggMzkyLjYgNDcyLjZDMzUxLjcgNDk4LjMgMzA0LjQgNTEyIDI1NiA1MTJDMjU0LjUgNTEyIDI1My4xIDUxMS43IDI1MS43IDUxMS4xQzI1MC4zIDUxMC42IDI0OS4xIDUwOS43IDI0OCA1MDguN0MyNDYuMSA1MDcuNiAyNDYuMSA1MDYuNCAyNDUuNiA1MDVDMjQ1IDUwMy42IDI0NC43IDUwMi4yIDI0NC43IDUwMC43VjQwMS41TDIyMC4yIDQyNy41QzIxOC4xIDQyOS43IDIxNS4zIDQzMC4xIDIxMi4zIDQzMS4xQzIwOS4zIDQzMS4yIDIwNi40IDQzMCAyMDQuMiA0MjcuMUMyMDIgNDI1LjkgMjAwLjcgNDIzLjEgMjAwLjcgNDIwLjFDMjAwLjYgNDE3LjEgMjAxLjcgNDE0LjIgMjAzLjcgNDEyTDI0Ny44IDM2NS40QzI0OS4xIDM2My4yIDI1Mi45IDM2MiAyNTUuMSAzNjJDMjU5LjEgMzYyIDI2MiAzNjMuMiAyNjQuMiAzNjUuNEwzMDguMiA0MTJDMzEwLjMgNDE0LjIgMzExLjQgNDE3LjEgMzExLjMgNDIwLjFDMzExLjIgNDIzLjEgMzA5LjkgNDI1LjkgMzA3LjggNDI3LjFDMzA1LjYgNDMwIDMwMi43IDQzMS4yIDI5OS43IDQzMS4xQzI5Ni43IDQzMC4xIDI5My44IDQyOS43IDI5MS44IDQyNy41TDI2Ny4zIDQwMS42VjQ4OS4xQzMyMy43IDQ4Ni4zIDM3Ny4xIDQ2My4zIDQxNy44IDQyNC4xQzQ1OC41IDM4NC4xIDQ4My42IDMzMi40IDQ4OC41IDI3Ni4yQzQ5My4zIDIxOS4xIDQ3Ny43IDE2My45IDQ0NC40IDExOC4zQzQxMS4xIDcyLjc1IDM2Mi40IDQwLjc5IDMwNy40IDI4LjM2QzMwNS45IDI4LjAzIDMwNC42IDI3LjQyIDMwMy4zIDI2LjU3QzMwMi4xIDI1LjcxIDMwMS4xIDI0LjYzIDMwMC4zIDIzLjM3QzI5OS41IDIyLjEyIDI5OC4xIDIwLjcyIDI5OC43IDE5LjI2QzI5OC41IDE3LjggMjk4LjUgMTYuMyAyOTguOCAxNC44NUMyOTkuMiAxMy40MSAyOTkuOCAxMi4wNCAzMDAuNiAxMC44MkMzMDEuNSA5LjYxIDMwMi42IDguNTc3IDMwMy44IDcuNzg0QzMwNS4xIDYuOTkgMzA2LjUgNi40NTEgMzA3LjkgNi4xOThDMzA5LjQgNS45NDUgMzEwLjkgNS45ODIgMzEyLjMgNi4zMDdMMzEyLjMgNi4zMDd6TTM1My4xIDI1Ni4xQzM1My4xIDI4Ny41IDMzNS42IDMxNy4yIDMwMy44IDMzOS42QzMwMS43IDM0MS4xIDI5OSAzNDEuOSAyOTYuNCAzNDEuNkMyOTMuNyAzNDEuNCAyOTEuMiAzNDAuMyAyODkuNCAzMzguNEwyMTkuMyAyNjguNkMyMTcuMSAyNjYuNSAyMTUuMSAyNjMuNiAyMTUuOSAyNjAuNkMyMTUuOSAyNTcuNiAyMTcuMSAyNTQuNyAyMTkuMiAyNTIuNkMyMjEuNCAyNTAuNSAyMjQuMiAyNDkuMyAyMjcuMiAyNDkuM0MyMzAuMiAyNDkuMyAyMzMuMSAyNTAuNSAyMzUuMiAyNTIuNkwyOTguMyAzMTUuNEMzMTkuMSAyOTguMyAzMzAuNSAyNzcuNSAzMzAuNSAyNTYuMUMzMzAuNSAyMzIuMiAzMTYuNCAyMDkuMSAyOTAuOCAxOTFDMjg4LjMgMTg5LjMgMjg2LjcgMTg2LjcgMjg2LjIgMTgzLjdDMjg1LjcgMTgwLjggMjg2LjMgMTc3LjcgMjg4LjEgMTc1LjNDMjg5LjggMTcyLjggMjkyLjQgMTcxLjIgMjk1LjQgMTcwLjdDMjk4LjMgMTcwLjIgMzAxLjQgMTcwLjggMzAzLjggMTcyLjZDMzM1LjYgMTk1IDM1My4xIDIyNC43IDM1My4xIDI1Ni4xVjI1Ni4xek0yMTYuNyAzNDEuNUMyMTMuNyAzNDIgMjEwLjcgMzQxLjMgMjA4LjIgMzM5LjZDMTc2LjUgMzE3LjIgMTU4LjEgMjg3LjUgMTU4LjEgMjU2LjFDMTU4LjEgMjI0LjcgMTc2LjUgMTk1IDIwOC4yIDE3Mi42QzIxMC40IDE3MSAyMTMuMSAxNzAuMyAyMTUuNyAxNzAuNUMyMTguNCAxNzAuOCAyMjAuOCAxNzEuOSAyMjIuNyAxNzMuOEwyOTIuOCAyNDMuNkMyOTQuOSAyNDUuNyAyOTYuMSAyNDguNiAyOTYuMSAyNTEuNkMyOTYuMSAyNTQuNiAyOTQuMSAyNTcuNCAyOTIuOCAyNTkuNkMyOTAuNyAyNjEuNyAyODcuOCAyNjIuOSAyODQuOSAyNjIuOUMyODEuOSAyNjIuOSAyNzguMSAyNjEuNyAyNzYuOSAyNTkuNkwyMTMuOCAxOTYuN0MxOTIuOSAyMTQgMTgxLjYgMjM0LjcgMTgxLjYgMjU2LjFDMTgxLjYgMjc5LjEgMTk1LjcgMzAzLjEgMjIxLjMgMzIxLjFDMjIzLjcgMzIyLjkgMjI1LjQgMzI1LjUgMjI1LjkgMzI4LjVDMjI2LjQgMzMxLjQgMjI1LjcgMzM0LjQgMjI0IDMzNi45QzIyMi4zIDMzOS4zIDIxOS42IDM0MSAyMTYuNyAzNDEuNUwyMTYuNyAzNDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmZjU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Mi45IDMyLjQzQzQwMC42IDMxLjEgNDA4LjYgMzIuODkgNDE0LjEgMzcuNDFDNDk4LjIgOTYuMTQgNTQ0IDE3My43IDU0NCAyNTUuMUM1NDQgMzM4LjIgNDk4LjIgNDE1LjkgNDE0LjEgNDc0LjZDNDA5LjMgNDc4LjYgNDAyLjQgNDgwLjUgMzk1LjUgNDc5LjlDMzg4LjUgNDc5LjMgMzgyIDQ3Ni4zIDM3Ny4xIDQ3MS40TDE5My43IDI4OC43QzE4OC4xIDI4My4yIDE4NSAyNzUuNyAxODQuMSAyNjcuOEMxODQuMSAyNjAgMTg4LjEgMjUyLjUgMTkzLjYgMjQ2LjlDMTk5LjIgMjQxLjQgMjA2LjcgMjM4LjIgMjE0LjUgMjM4LjJDMjIyLjQgMjM4LjIgMjI5LjkgMjQxLjMgMjM1LjQgMjQ2LjhMNDAwLjUgNDExLjJDNDU1LjEgMzY2LjUgNDg0LjggMzEyIDQ4NC44IDI1NS4xQzQ4NC44IDE5My41IDQ0Ny45IDEzMi45IDM4MC45IDg1Ljc2QzM3NC41IDgxLjI0IDM3MC4xIDc0LjM1IDM2OC44IDY2LjYyQzM2Ny40IDU4Ljg5IDM2OS4yIDUwLjk0IDM3My44IDQ0LjUzQzM3OC4zIDM4LjEyIDM4NS4yIDMzLjc3IDM5Mi45IDMyLjQzVjMyLjQzek0xODYuOSA0NzkuNkMxNzkuMiA0ODAuOSAxNzEuMyA0NzkuMSAxNjQuOCA0NzQuNkM4MS42NyA0MTUuOSAzNS44NCAzMzguMiAzNS44NCAyNTUuMUMzNS44NCAxNzMuNyA4MS42NyA5Ni4xNCAxNjQuOCAzNy40MUMxNzAuNSAzMy40IDE3Ny40IDMxLjUzIDE4NC40IDMyLjEyQzE5MS4zIDMyLjcxIDE5Ny44IDM1LjcyIDIwMi43IDQwLjYzTDM4Ni4xIDIyMy4zQzM5MS43IDIyOC44IDM5NC44IDIzNi4zIDM5NC44IDI0NC4yQzM5NC45IDI1MS4xIDM5MS44IDI1OS41IDM4Ni4yIDI2NS4xQzM4MC43IDI3MC42IDM3My4yIDI3My44IDM2NS4zIDI3My44QzM1Ny41IDI3My44IDM0OS4xIDI3MC43IDM0NC40IDI2NS4yTDE3OS4zIDEwMC43QzEyNC43IDE0NS45IDk1LjAzIDE5OS45IDk1LjAzIDI1NS4xQzk1LjAzIDMxOC41IDEzMS45IDM3OS4xIDE5OC4xIDQyNi4yQzIwNS40IDQzMC44IDIwOS43IDQzNy42IDIxMS4xIDQ0NS40QzIxMi40IDQ1My4xIDIxMC42IDQ2MS4xIDIwNi4xIDQ2Ny41QzIwMS42IDQ3My45IDE5NC43IDQ3OC4yIDE4Ni45IDQ3OS42VjQ3OS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOaW1ibHIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ2LjYgMjk5LjI5YzE1LjU3IDAgMjcuMTUgMTEuNDYgMjcuMTUgMjdzLTExLjYyIDI3LTI3LjE1IDI3Yy0xNS43IDAtMjcuMTUtMTEuNTctMjcuMTUtMjdzMTEuNTUtMjcgMjcuMTUtMjd6TTExMyAzMjYuMjVjMC0xNS42MSAxMS42OC0yNyAyNy4xNS0yN3MyNy4xNSAxMS40NiAyNy4xNSAyNy0xMS40NyAyNy0yNy4xNSAyN2MtMTUuNDQgMC0yNy4xNS0xMS4zMS0yNy4xNS0yN00xOTEuNzYgMTU5QzE1NyAxNTkgODkuNDUgMTc4Ljc3IDU5LjI1IDIyN0wxNCAwdjMzNS40OEMxNCA0MzMuMTMgOTMuNjEgNTEyIDE5MS43NiA1MTJzMTc3Ljc2LTc4Ljk1IDE3Ny43Ni0xNzYuNTJTMjkwLjEzIDE1OSAxOTEuNzYgMTU5em0wIDMwOC4xMmMtNzMuMjcgMC0xMzIuNTEtNTguOS0xMzIuNTEtMTMxLjU5czU5LjI0LTEzMS41OSAxMzIuNTEtMTMxLjU5IDEzMi41MSA1OC44NiAxMzIuNTEgMTMxLjU0UzI2NSA0NjcuMDcgMTkxLjc2IDQ2Ny4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTm9kZUpzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA1MDhjLTYuNyAwLTEzLjUtMS44LTE5LjQtNS4ybC02MS43LTM2LjVjLTkuMi01LjItNC43LTctMS43LTggMTIuMy00LjMgMTQuOC01LjIgMjcuOS0xMi43IDEuNC0uOCAzLjItLjUgNC42LjRsNDcuNCAyOC4xYzEuNyAxIDQuMSAxIDUuNyAwbDE4NC43LTEwNi42YzEuNy0xIDIuOC0zIDIuOC01VjE0OS4zYzAtMi4xLTEuMS00LTIuOS01LjFMMjI2LjggMzcuN2MtMS43LTEtNC0xLTUuNyAwTDM2LjYgMTQ0LjNjLTEuOCAxLTIuOSAzLTIuOSA1LjF2MjEzLjFjMCAyIDEuMSA0IDIuOSA0LjlsNTAuNiAyOS4yYzI3LjUgMTMuNyA0NC4zLTIuNCA0NC4zLTE4LjdWMTY3LjVjMC0zIDIuNC01LjMgNS40LTUuM2gyMy40YzIuOSAwIDUuNCAyLjMgNS40IDUuM1YzNzhjMCAzNi42LTIwIDU3LjYtNTQuNyA1Ny42LTEwLjcgMC0xOS4xIDAtNDIuNS0xMS42bC00OC40LTI3LjlDOC4xIDM4OS4yLjcgMzc2LjMuNyAzNjIuNFYxNDkuM2MwLTEzLjggNy40LTI2LjggMTkuNC0zMy43TDIwNC42IDljMTEuNy02LjYgMjcuMi02LjYgMzguOCAwbDE4NC43IDEwNi43YzEyIDYuOSAxOS40IDE5LjggMTkuNCAzMy43djIxMy4xYzAgMTMuOC03LjQgMjYuNy0xOS40IDMzLjdMMjQzLjQgNTAyLjhjLTUuOSAzLjQtMTIuNiA1LjItMTkuNCA1LjJ6bTE0OS4xLTIxMC4xYzAtMzkuOS0yNy01MC41LTgzLjctNTgtNTcuNC03LjYtNjMuMi0xMS41LTYzLjItMjQuOSAwLTExLjEgNC45LTI1LjkgNDcuNC0yNS45IDM3LjkgMCA1MS45IDguMiA1Ny43IDMzLjguNSAyLjQgMi43IDQuMiA1LjIgNC4yaDI0YzEuNSAwIDIuOS0uNiAzLjktMS43czEuNS0yLjYgMS40LTQuMWMtMy43LTQ0LjEtMzMtNjQuNi05Mi4yLTY0LjYtNTIuNyAwLTg0LjEgMjIuMi04NC4xIDU5LjUgMCA0MC40IDMxLjMgNTEuNiA4MS44IDU2LjYgNjAuNSA1LjkgNjUuMiAxNC44IDY1LjIgMjYuNyAwIDIwLjYtMTYuNiAyOS40LTU1LjUgMjkuNC00OC45IDAtNTkuNi0xMi4zLTYzLjItMzYuNi0uNC0yLjYtMi42LTQuNS01LjMtNC41aC0yMy45Yy0zIDAtNS4zIDIuNC01LjMgNS4zIDAgMzEuMSAxNi45IDY4LjIgOTcuOCA2OC4yIDU4LjQtLjEgOTItMjMuMiA5Mi02My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNi4zIDQ1MmMtMi4xIDAtNC4yLS42LTYuMS0xLjZMMjkxIDQzOWMtMi45LTEuNi0xLjUtMi4yLS41LTIuNSAzLjgtMS4zIDQuNi0xLjYgOC43LTQgLjQtLjIgMS0uMSAxLjQuMWwxNC44IDguOGMuNS4zIDEuMy4zIDEuOCAwTDM3NSA0MDhjLjUtLjMuOS0uOS45LTEuNnYtNjYuN2MwLS43LS4zLTEuMy0uOS0xLjZsLTU3LjgtMzMuM2MtLjUtLjMtMS4yLS4zLTEuOCAwbC01Ny44IDMzLjNjLS42LjMtLjkgMS0uOSAxLjZ2NjYuN2MwIC42LjQgMS4yLjkgMS41bDE1LjggOS4xYzguNiA0LjMgMTMuOS0uOCAxMy45LTUuOHYtNjUuOWMwLS45LjctMS43IDEuNy0xLjdoNy4zYy45IDAgMS43LjcgMS43IDEuN3Y2NS45YzAgMTEuNS02LjIgMTgtMTcuMSAxOC0zLjMgMC02IDAtMTMuMy0zLjZsLTE1LjItOC43Yy0zLjctMi4yLTYuMS02LjItNi4xLTEwLjV2LTY2LjdjMC00LjMgMi4zLTguNCA2LjEtMTAuNWw1Ny44LTMzLjRjMy43LTIuMSA4LjUtMi4xIDEyLjEgMGw1Ny44IDMzLjRjMy43IDIuMiA2LjEgNi4yIDYuMSAxMC41djY2LjdjMCA0LjMtMi4zIDguNC02LjEgMTAuNWwtNTcuOCAzMy40Yy0xLjcgMS4xLTMuOCAxLjctNiAxLjd6bTQ2LjctNjUuOGMwLTEyLjUtOC40LTE1LjgtMjYuMi0xOC4yLTE4LTIuNC0xOS44LTMuNi0xOS44LTcuOCAwLTMuNSAxLjUtOC4xIDE0LjgtOC4xIDExLjkgMCAxNi4zIDIuNiAxOC4xIDEwLjYuMi44LjggMS4zIDEuNiAxLjNoNy41Yy41IDAgLjktLjIgMS4yLS41LjMtLjQuNS0uOC40LTEuMy0xLjItMTMuOC0xMC4zLTIwLjItMjguOC0yMC4yLTE2LjUgMC0yNi4zIDctMjYuMyAxOC42IDAgMTIuNyA5LjggMTYuMSAyNS42IDE3LjcgMTguOSAxLjkgMjAuNCA0LjYgMjAuNCA4LjMgMCA2LjUtNS4yIDkuMi0xNy40IDkuMi0xNS4zIDAtMTguNy0zLjgtMTkuOC0xMS40LS4xLS44LS44LTEuNC0xLjctMS40aC03LjVjLS45IDAtMS43LjctMS43IDEuNyAwIDkuNyA1LjMgMjEuMyAzMC42IDIxLjMgMTguNSAwIDI5LTcuMiAyOS0xOS44em01NC41LTUwLjFjMCA2LjEtNSAxMS4xLTExLjEgMTEuMXMtMTEuMS01LTExLjEtMTEuMWMwLTYuMyA1LjItMTEuMSAxMS4xLTExLjEgNi0uMSAxMS4xIDQuOCAxMS4xIDExLjF6bS0xLjggMGMwLTUuMi00LjItOS4zLTkuNC05LjMtNS4xIDAtOS4zIDQuMS05LjMgOS4zIDAgNS4yIDQuMiA5LjQgOS4zIDkuNCA1LjItLjEgOS40LTQuMyA5LjQtOS40em0tNC41IDYuMmgtMi42Yy0uMS0uNi0uNS0zLjgtLjUtMy45LS4yLS43LS40LTEuMS0xLjMtMS4xaC0yLjJ2NWgtMi40di0xMi41aDQuM2MxLjUgMCA0LjQgMCA0LjQgMy4zIDAgMi4zLTEuNSAyLjgtMi40IDMuMSAxLjcuMSAxLjggMS4yIDIuMSAyLjguMSAxIC4zIDIuNy42IDMuM3ptLTIuOC04LjhjMC0xLjctMS4yLTEuNy0xLjgtMS43aC0ydjMuNWgxLjljMS42IDAgMS45LTEuMSAxLjktMS44ek0xMzcuMyAxOTFjMC0yLjctMS40LTUuMS0zLjctNi40bC02MS4zLTM1LjNjLTEtLjYtMi4yLS45LTMuNC0xaC0uNmMtMS4yIDAtMi4zLjQtMy40IDFMMy43IDE4NC42QzEuNCAxODUuOSAwIDE4OC40IDAgMTkxbC4xIDk1YzAgMS4zLjcgMi41IDEuOCAzLjIgMS4xLjcgMi41LjcgMy43IDBMNDIgMjY4LjNjMi4zLTEuNCAzLjctMy44IDMuNy02LjR2LTQ0LjRjMC0yLjYgMS40LTUuMSAzLjctNi40bDE1LjUtOC45YzEuMi0uNyAyLjQtMSAzLjctMSAxLjMgMCAyLjYuMyAzLjcgMWwxNS41IDguOWMyLjMgMS4zIDMuNyAzLjggMy43IDYuNHY0NC40YzAgMi42IDEuNCA1LjEgMy43IDYuNGwzNi40IDIwLjljMS4xLjcgMi42LjcgMy43IDAgMS4xLS42IDEuOC0xLjkgMS44LTMuMmwuMi05NXpNNDcyLjUgODcuM3YxNzYuNGMwIDIuNi0xLjQgNS4xLTMuNyA2LjRsLTYxLjMgMzUuNGMtMi4zIDEuMy01LjEgMS4zLTcuNCAwbC02MS4zLTM1LjRjLTIuMy0xLjMtMy43LTMuOC0zLjctNi40di03MC44YzAtMi42IDEuNC01LjEgMy43LTYuNGw2MS4zLTM1LjRjMi4zLTEuMyA1LjEtMS4zIDcuNCAwbDE1LjMgOC44YzEuNyAxIDMuOS0uMyAzLjktMi4ydi05NGMwLTIuOCAzLTQuNiA1LjUtMy4ybDM2LjUgMjAuNGMyLjMgMS4yIDMuOCAzLjcgMy44IDYuNHptLTQ2IDEyOC45YzAtLjctLjQtMS4zLS45LTEuNmwtMjEtMTIuMmMtLjYtLjMtMS4zLS4zLTEuOSAwbC0yMSAxMi4yYy0uNi4zLS45LjktLjkgMS42djI0LjNjMCAuNy40IDEuMy45IDEuNmwyMSAxMi4xYy42LjMgMS4zLjMgMS44IDBsMjEtMTIuMWMuNi0uMy45LS45LjktMS42di0yNC4zem0yMDkuOC0uN2MyLjMtMS4zIDMuNy0zLjggMy43LTYuNFYxOTJjMC0yLjYtMS40LTUuMS0zLjctNi40bC02MC45LTM1LjRjLTIuMy0xLjMtNS4xLTEuMy03LjQgMGwtNjEuMyAzNS40Yy0yLjMgMS4zLTMuNyAzLjgtMy43IDYuNHY3MC44YzAgMi43IDEuNCA1LjEgMy43IDYuNGw2MC45IDM0LjdjMi4yIDEuMyA1IDEuMyA3LjMgMGwzNi44LTIwLjVjMi41LTEuNCAyLjUtNSAwLTYuNEw1NTAgMjQxLjZjLTEuMi0uNy0xLjktMS45LTEuOS0zLjJ2LTIyLjJjMC0xLjMuNy0yLjUgMS45LTMuMmwxOS4yLTExLjFjMS4xLS43IDIuNi0uNyAzLjcgMGwxOS4yIDExLjFjMS4xLjcgMS45IDEuOSAxLjkgMy4ydjE3LjRjMCAyLjggMy4xIDQuNiA1LjYgMy4ybDM2LjctMjEuM3pNNTU5IDIxOWMtLjQuMy0uNy43LS43IDEuMnYxMy42YzAgLjUuMyAxIC43IDEuMmwxMS44IDYuOGMuNC4zIDEgLjMgMS40IDBMNTg0IDIzNWMuNC0uMy43LS43LjctMS4ydi0xMy42YzAtLjUtLjMtMS0uNy0xLjJsLTExLjgtNi44Yy0uNC0uMy0xLS4zLTEuNCAwTDU1OSAyMTl6bS0yNTQuMiA0My41di03MC40YzAtMi42LTEuNi01LjEtMy45LTYuNGwtNjEuMS0zNS4yYy0yLjEtMS4yLTUtMS40LTcuNCAwbC02MS4xIDM1LjJjLTIuMyAxLjMtMy45IDMuNy0zLjkgNi40djcwLjRjMCAyLjggMS45IDUuMiA0IDYuNGw2MS4yIDM1LjJjMi40IDEuNCA1LjIgMS4zIDcuNCAwbDYxLTM1LjJjMS44LTEgMy4xLTIuNyAzLjYtNC43LjEtLjUuMi0xLjEuMi0xLjd6bS03NC4zLTEyNC45bC0uOC41aDEuMWwtLjMtLjV6bTc2LjIgMTMwLjJsLS40LS43di45bC40LS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOcG0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDI4OGgtMzJ2LTY0aDMydjY0em0yODgtMTI4djE5MkgyODh2MzJIMTYwdi0zMkgwVjE2MGg1NzZ6bS00MTYgMzJIMzJ2MTI4aDY0di05NmgzMnY5NmgzMlYxOTJ6bTE2MCAwSDE5MnYxNjBoNjR2LTMyaDY0VjE5MnptMjI0IDBIMzUydjEyOGg2NHYtOTZoMzJ2OTZoMzJ2LTk2aDMydjk2aDMyVjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTnM4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNC4zMjQsMjY5LjE3MmgyNi4wNjdWMjQyLjk5NEgxMDQuMzI0Wm01Mi40NjYtMjYuMTc4LS4wNTUtMjYuMTc4di0uOTQxYTM5LjMyNSwzOS4zMjUsMCwwLDAtNzguNjQ0Ljk0MXYuMTY2aDI2LjR2LS4xNjZhMTIuOTgsMTIuOTgsMCwwLDEsMjUuOTU2LDB2MjYuMTc4Wm01Mi4zNTYsMjUuODQ2YTkxLjEsOTEuMSwwLDAsMS05MS4xLDkxLjFoLS42MDlhOTEuMSw5MS4xLDAsMCwxLTkxLjEtOTEuMUgwdi4xNjZBMTE3LjMzLDExNy4zMywwLDAsMCwxMTcuNDQsMzg2LjI4aC43NzVBMTE3LjMzMSwxMTcuMzMxLDAsMCwwLDIzNS40OSwyNjguODRWMjQyLjgyOEgyMDkuMTQ2Wm0tMTU3LjIzMywwYTY1LjM2Miw2NS4zNjIsMCwwLDAsMTMwLjcyMywwSDE1Ni4yOTJhMzkuMDIzLDM5LjAyMywwLDAsMS03OC4wMzUsMFYyNDIuODgzSDUxLjk2OHYtMjYuNjJBNjUuNDIsNjUuNDIsMCwwLDEsMTgyLjgsMjE3LjQ4djI1LjI5M2gyNi4zNDRWMjE3LjQ4YTkxLjc2MSw5MS43NjEsMCwwLDAtMTgzLjUyMiwwdjI1LjRINTEuOTEzWm00MTguNC03MS4xNzNjMTMuNjcsMCwyNC41NzMsNi42NDIsMzAuMDUyLDE4LjI2NGwuNzE5LDEuNTQ5LDIzLjI0NS0xMS41MTEtLjYwOS0xLjQzOWMtOC4wMjUtMTkuMjYtMjguNS0zMS4yNy01My40MDctMzEuMjctMjMuMTM0LDAtNDMuNjExLDExLjQtNTAuOTcyLDI4LjQ0Ny0uMTIzLDI2Ljg3Ni0uMTU4LDIzLjksMCwyNC44NSw0LjcsMTEuMDEzLDE0LjU1NSwxOS4zNywyOC42NjgsMjQuMjQxYTEwMi4wMzMsMTAyLjAzMywwLDAsMCwxOS44MTMsMy45ODRjNS40NzkuNzIsMTAuNjI2LDEuMzg0LDE1LjgyOSwzLjEsNi4zNjQsMi4xLDEwLjQ2LDUuMjU3LDEyLjg0LDkuODUxdjkuODUxYy0zLjcwOCw3LjUyNy0xMy43ODEsMTIuMzQyLTI1Ljc5MSwxMi4zNDItMTQuMzM0LDAtMjUuOTU2LTYuOTE4LTMxLjkzMy0xOS4wMzlsLS43Mi0xLjQ5NEw0MTUuMDI2LDI4MC45bC41NTMsMS40MzljNy45MTUsMTkuNDI2LDI5LjYwOSwzMi4wNDQsNTUuMjg5LDMyLjA0NCwyMy42MzIsMCw0NC42MDgtMTEuNCw1Mi4zLTI4LjQ0N2wuMTY2LTI1LjktLjE2Ni0uNjY0Yy00Ljg3LTExLjAxNC0xNS4yMTktMTkuNjQ3LTI4Ljk0NC0yNC4yNDEtNy42OTMtMi43MTItMTQuMzM1LTMuNi0yMC43LTQuNDI3YTgzLjc3Nyw4My43NzcsMCwwLDEtMTQuODMyLTIuODc4Yy02LjMxLTEuOTM3LTEwLjQtNS4wOTItMTIuNjE5LTkuNjN2LTguNDEyQzQ0OS40NSwyMDIuNDI3LDQ1OC45NjksMTk3LjY2Nyw0NzAuMzE1LDE5Ny42NjdaTTI4Ny41NjgsMzExLjM0NGgyNi4wNjd2LTY4LjRIMjg3LjU2OFptMzUyLjI2Ni01My4zYy0yLjkzMy02LjI1NC04LjMtMTIuMDEtMTUuNDQxLTE2LjcxNEEzNy45OSwzNy45OSwwLDAsMCw2MzcuNCwyMjZsLjE2Ni0yNS4zNDctLjE2Ni0uNjY0QzYzMC4wMzgsMTg0LDYxMC42NjcsMTczLjI2LDU4OS4yNSwxNzMuMjZTNTQ4LjQ2MSwxODQsNTQxLjEsMTk5Ljk5MmwtLjE2NiwyNS4zNDcuMTY2LjY2NGEzOS42NDMsMzkuNjQzLDAsMCwwLDEzLjAwNiwxNS4zMzFjLTcuMiw0LjctMTIuNTA4LDEwLjQ2LTE1LjQ0MSwxNi43MTRsLS4xNjYsMjguODg5LjE2Ni43MmM3LjU4MiwxNS45OTQsMjcuODkzLDI2LjczMSw1MC41ODUsMjYuNzMxczQzLjA1Ny0xMC43MzcsNTAuNTg0LTI2LjczMWwuMTY2LTI4Ljg5Wm0tNzMuMjItNTAuODA2YzMuNi02LjMxLDEyLjU2My0xMC41MTYsMjIuNTgtMTAuNTE2czE5LjAzOCw0LjIwNiwyMi42MzYsMTAuNTE2djEzLjcyNWMtMy41NDIsNi4yLTEyLjU2MywxMC4zNDktMjIuNjM2LDEwLjM0OXMtMTkuMDk0LTQuMTUtMjIuNTgtMTAuMzQ5Wm00Ny4zMTksNzIuMTY5Yy0zLjc2NCw2LjY0MS0xMy4zMzgsMTAuOS0yNC42ODMsMTAuOS0xMS4xMjUsMC0yMC45NzYtNC4zNzItMjQuNjg0LTEwLjlWMjYzLjI1YzMuNzA4LTYuMzA5LDEzLjUtMTAuNTE1LDI0LjY4NC0xMC41MTUsMTEuMzQ1LDAsMjAuOTE5LDQuMTUsMjQuNjgzLDEwLjUxNVpNMzc2LjQsMjY1Ljk2MmwtNTkuODI3LTg5LjcxM2gtMjl2NDAuNjIzaDI2LjUxdi4zODdsNjIuNTM5LDk0LjA4NUg0MDIuM1YxNzYuMjQ5SDM3Ni40WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOdXRyaXRpb25peCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDAwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OCA4LjFTMjIxLjQtLjEgMjA5IDExMi41YzAgMCAxOS4xLTc0LjkgMTAzLTQwLjYgMCAwLTE3LjcgNzQtODggNTYgMCAwIDE0LjYtNTQuNiA2Ni4xLTU2LjYgMCAwLTM5LjktMTAuMy04Mi4xIDQ4LjggMCAwLTE5LjgtOTQuNS05My42LTk5LjcgMCAwIDc1LjIgMTkuNCA3Ny42IDEwNy41IDAgLjEtMTA2LjQgNy0xMDQtMTE5Ljh6bTMxMiAzMTUuNmMwIDQ4LjUtOS43IDk1LjMtMzIgMTMyLjMtNDIuMiAzMC45LTEwNSA0OC0xNjggNDgtNjIuOSAwLTEyNS44LTE3LjEtMTY4LTQ4QzkuNyA0MTkgMCAzNzIuMiAwIDMyMy43IDAgMjc1LjMgMTcuNyAyMjkgNDAgMTkyYzQyLjItMzAuOSA5Ny4xLTQ4LjYgMTYwLTQ4LjYgNjMgMCAxMTcuOCAxNy42IDE2MCA0OC42IDIyLjMgMzcgNDAgODMuMyA0MCAxMzEuN3pNMTIwIDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6TTE5MiA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4ek0yNjQgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHpNMzM2IDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTI0LTM5LjZjLTQuOC0yMi4zLTcuNC0zNi45LTE2LTU2LTM4LjgtMTkuOS05MC41LTMyLTE0NC0zMlM5NC44IDE4MC4xIDU2IDIwMGMtOC44IDE5LjUtMTEuMiAzMy45LTE2IDU2IDQyLjItNy45IDk4LjctMTQuOCAxNjAtMTQuOHMxMTcuOCA2LjkgMTYwIDE0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9jdG9wdXNEZXBsb3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU1LjYsMzQ5LjJjLTQ1Ljg5MS0zOS4wOS0zNi42Ny03Ny44NzctMTYuMDk1LTEyOC4xMUM0NzUuMTYsMTM0LjA0LDQxNS45NjcsMzQuMTQsMzI5LjkzLDguMywyMzcuMDQtMTkuNiwxMzQuMjUyLDI0LjM0MSw5OS42NzcsMTE3LjE0N2ExODAuODYyLDE4MC44NjIsMCwwLDAtMTAuOTg4LDczLjU0NGMxLjczMywyOS41NDMsMTQuNzE3LDUyLjk3LDI0LjA5LDgwLjMsMTcuMiw1MC4xNjEtMjguMSw5Mi43NDMtNjYuNjYyLDExNy41ODItNDYuODA2LDMwLjItMzYuMzE5LDM5Ljg1Ny04LjQyOCw0MS44NTgsMjMuMzc4LDEuNjgsNDQuNDc4LTQuNTQ4LDY1LjI2NS0xNS4wNDUsOS4yLTQuNjQ3LDQwLjY4Ny0xOC45MzEsNDUuMTMtMjguNTg4QzEzNS45LDQxMy4zODgsMTExLjEyMiw0NTkuNSwxMjYuNjIxLDQ4OC45YzE5LjEsMzYuMjI5LDY3LjExMi0zMS43Nyw3Ni43MDktNDUuODEyLDguNTkxLTEyLjU3Miw0Mi45NjMtODEuMjc5LDYzLjYyNy00Ni45MjYsMTguODY1LDMxLjM2MSw4LjYsNzYuMzkxLDM1LjczOCwxMDQuNjIyLDMyLjg1NCwzNC4yLDUxLjE1NS0xOC4zMTIsNTEuNDEyLTQ0LjIyMS4xNjMtMTYuNDExLTYuMS05NS44NTIsMjkuOS01OS45NDRDNDA1LjQyOCw0MTgsNDM2LjkxMiw0NjcuOCw0NzIuNTY4LDQ2My42NDJjMzguNzM2LTQuNTE2LTIyLjEyMy02Ny45NjctMjguMjYyLTc4LjY5NSw1LjM5Myw0LjI3OSw1My42NjUsMzQuMTI4LDUzLjgxOCw5LjUyQzQ5OC4yMzQsMzc1LjY3OCw0NjguMDM5LDM1OS44LDQ1NS42LDM0OS4yWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPZG5va2xhc3NuaWtpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NS4xIDMzNGMtMjcuNCAxNy40LTY1LjEgMjQuMy05MCAyNi45bDIwLjkgMjAuNiA3Ni4zIDc2LjNjMjcuOSAyOC42LTE3LjUgNzMuMy00NS43IDQ1LjctMTkuMS0xOS40LTQ3LjEtNDcuNC03Ni4zLTc2LjZMODQgNTAzLjRjLTI4LjIgMjcuNS03My42LTE3LjYtNDUuNC00NS43IDE5LjQtMTkuNCA0Ny4xLTQ3LjQgNzYuMy03Ni4zbDIwLjYtMjAuNmMtMjQuNi0yLjYtNjIuOS05LjEtOTAuNi0yNi45LTMyLjYtMjEtNDYuOS0zMy4zLTM0LjMtNTkgNy40LTE0LjYgMjcuNy0yNi45IDU0LjYtNS43IDAgMCAzNi4zIDI4LjkgOTQuOSAyOC45czk0LjktMjguOSA5NC45LTI4LjljMjYuOS0yMS4xIDQ3LjEtOC45IDU0LjYgNS43IDEyLjQgMjUuNy0xLjkgMzgtMzQuNSA1OS4xek0zMC4zIDEyOS43QzMwLjMgNTggODguNiAwIDE2MCAwczEyOS43IDU4IDEyOS43IDEyOS43YzAgNzEuNC01OC4zIDEyOS40LTEyOS43IDEyOS40cy0xMjkuNy01OC0xMjkuNy0xMjkuNHptNjYgMGMwIDM1LjEgMjguNiA2My43IDYzLjcgNjMuN3M2My43LTI4LjYgNjMuNy02My43YzAtMzUuNC0yOC42LTY0LTYzLjctNjRzLTYzLjcgMjguNi02My43IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPZHlzZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA2LjcgNDYzYy00Mi4zIDMwLjgtOTQuNCA0OS0xNTAuNyA0OUMxNDQuOSA1MTIgNTAuMyA0NDEuMiAxNC45IDM0Mi4yYzIuNCAxLjcgNS45IDMuNiA3LjkgNC40YzE2LjMgNy40IDQwLjEtNS40IDYyLjktMjguN2M2LjktNi45IDE0LjQtMTIuNCAyMi44LTE3LjNjMTguMy0xMS45IDM3LjYtMjAuOCA1OC40LTI3LjJjMCAwIDIyLjMgMzQuMiA0My4xIDc0LjhzLTIyLjMgNTQtMjcuMiA1NGMtLjMgMC0uOCAwLTEuNS0uMWMtMTEtLjUtNzAtMy01NiA1MS4xYzE0LjkgNTcuNCA5Ny41IDM2LjYgMTM5LjYgOC45czMxLjctMTE4LjMgMzEuNy0xMTguM2M0MS4xLTYuNCA1NCAzNy4xIDU3LjkgNTkuNGMuOCA0LjYgMS4xIDkuOSAxLjQgMTUuNWMxLjEgMjEuMiAyLjMgNDUuNiAzNS4zIDQ2LjRjNS4zIDAgMTAuNi0uOCAxNS41LTJ6bS05NS4zLTIzLjdjLTItLjUtMy41LTIuNS0zLTVjMS0yLjUgMy0zLjUgNS0zczMuNSAzIDMgNXMtMi41IDMuNS01IDN6bS0yMDctOTUuNmMxLjUtLjUgMy41IDEgNCAzYzAgMi0xIDQtMyA0Yy0xLjUgLjUtMy41LTEtNC0zYy0uNS0xLjUgMS0zLjUgMy00ek00NTEuOCA0MjFDNDg5LjMgMzc2LjQgNTEyIDMxOC44IDUxMiAyNTZjMC02Ny41LTI2LjEtMTI4LjktNjguOC0xNzQuN2MtLjEgMjMuNS02LjEgNDguMi0xNi44IDY5LjJjLTExLjkgMjAuMy00OSA1OC45LTY5LjggNzguN2MtLjcgLjMtMS4xIC45LTEuNSAxLjRjLS4yIC4yLS4zIC40LS41IC42Yy01IDYuOS00IDE2LjggMyAyMS44YzIxLjMgMTUuOCA1Ni40IDQ1LjYgNTkuNCA3Mi44YzMuNSAzNC45IDI3LjkgNzUuNiAzNC4yIDg2LjJsMCAwYy44IDEuMyAxLjMgMi4xIDEuNCAyLjRjMCAyLjItLjQgNC4zLS44IDYuNXpNMzkwLjcgMjUxYy0uNSAzIDEgNS45IDQgNi40czUuOS0xIDYuNC00cy0xLTUuOS00LTYuNGMtMy0xLTUuOSAxLTYuNCA0em02MS40LTYwLjlsLTExLjQgNS40LTMgMTIuOS01LjQtMTEuNC0xMi45LTMgMTEuNC01LjQgMy0xMi45IDUuNCAxMS40IDEyLjkgM3pNMzk1LjUgNDEuM2MtMTYuMiA4LjItMjIuMSAzMi44LTI5IDYxLjRsMCAwYy0uMyAxLjQtLjcgMi44LTEgNC4yYy05LjUgMzguNS0zMC42IDM3LjYtNDEuNyAzNy4yYy0xLjEgMC0yLS4xLTIuOS0uMWMtNS4xIDAtNi00LTguOS0xNy4xYy0yLjYtMTIuMS02LjktMzItMTcuOS02My42QzI3MS40LTIuNSAyMTEuNCAxMy45IDE2NS45IDQxLjFDMTEwLjYgNzQuMiAxMzEuNSAxNDMgMTQ2LjEgMTkwLjVjLjcgMi4yIDEuNCA0LjQgMiA2LjZjLTQgNC0xMy44IDcuNS0yNiAxMS45Yy0xMi4xIDQuMy0yNi42IDkuNS00MC4zIDE2LjlDNDcuOSAyNDMuOSAxMS41IDI3NC45IDIgMjg4LjVDLjcgMjc3LjggMCAyNjcgMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwYzUxLjQgMCA5OS40IDE1LjIgMTM5LjUgNDEuM3pNNTguOSAxODkuNmMtMS41LTItNC41LTMtNi40LTEuNXMtMyA0LjUtMS41IDYuNHM0LjUgMyA2LjQgMS41YzIuNS0xLjUgMy00LjUgMS41LTYuNHpNMzI3LjMgNjQuOWMyLTEuNSA1LS41IDYuNCAxLjVjMS41IDIuNSAxIDUuNC0xLjUgNi40Yy0yIDEuNS01IC41LTYuNC0xLjVzLS41LTUgMS41LTYuNHpNOTUuMSAxMDVjLS41IDEuNSAuNSAzIDIgM2MxLjUgLjUgMy0uNSAzLTJjLjUtMS41LS41LTMtMi0zcy0zIC41LTMgMnptODQuNy0uNWMtMy41LTQzLjEgMzcuMS01NCAzNy4xLTU0YzQ0LjEtMTUuNCA1NiA1LjkgNjYuNCAzNy42czMgNDIuNi0zOC42IDU4LjlzLTYxLjktNC41LTY0LjktNDIuNnptODkuNiAxNC45aDFjMi41IDAgNS0yIDUtNWMyLTYuOSAxLTE0LjQtMi0yMC44Yy0xLjUtMi00LTMuNS02LjQtMi41Yy0zIDEtNC41IDQtMy41IDYuOWMyIDQuNSAzIDkuOSAxLjUgMTQuOWMtLjUgMyAxLjUgNS45IDQuNSA2LjR6bS05LjktNDEuNmMtMiAwLTQtMS01LTNzLTItMy41LTMtNWMtMi0yLTItNS40IDAtNy40czUuNC0yIDcuNCAwYzIgMi41IDMuNSA1IDUgNy40cy41IDUuOS0yLjUgNy40Yy0uNiAwLTEgLjItMS4zIC4zYy0uMiAuMS0uNCAuMi0uNiAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2xkUmVwdWJsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM1Ljc2IDEwLjIzYzcuNS0uMzEgMTUtLjI4IDIyLjUtLjA5IDMuNjEuMTQgNy4yLjQgMTAuNzkuNzMgNC45Mi4yNyA5Ljc5IDEuMDMgMTQuNjcgMS42MiAyLjkzLjQzIDUuODMuOTggOC43NSAxLjQ2IDcuOSAxLjMzIDE1LjY3IDMuMjggMjMuMzkgNS40IDEyLjI0IDMuNDcgMjQuMTkgNy45MiAzNS43NiAxMy4yMSAyNi41NiAxMi4yNCA1MC45NCAyOS4yMSA3MS42MyA0OS44OCAyMC4wMyAyMC4wOSAzNi43MiA0My41NSA0OC44OSA2OS4xOSAxLjEzIDIuNTkgMi40NCA1LjEgMy40NyA3Ljc0IDIuODEgNi40MyA1LjM5IDEyLjk3IDcuNTggMTkuNjMgNC4xNCAxMi4zMyA3LjM0IDI0Ljk5IDkuNDIgMzcuODMuNTcgMy4xNCAxLjA0IDYuMyAxLjQgOS40Ny41NSAzLjgzLjk0IDcuNjkgMS4xOCAxMS41Ni44MyA4LjM0Ljg0IDE2LjczLjc3IDI1LjEtLjA3IDQuOTctLjI2IDkuOTQtLjc1IDE0Ljg5LS4yNCAzLjM4LS41MSA2Ljc2LS45OCAxMC4xMi0uMzkgMi43Mi0uNjMgNS40Ni0xLjExIDguMTctLjkgNS4xNS0xLjcgMTAuMzEtMi44NyAxNS40MS00LjEgMTguNS0xMC4zIDM2LjU1LTE4LjUxIDUzLjYzLTE1Ljc3IDMyLjgzLTM4LjgzIDYyLjE3LTY3LjEyIDg1LjEyYTI0Ni41MDMgMjQ2LjUwMyAwIDAgMS01Ni45MSAzNC44NmMtNi4yMSAyLjY4LTEyLjQ2IDUuMjUtMTguODcgNy40MS0zLjUxIDEuMTYtNy4wMSAyLjM4LTEwLjU3IDMuMzktNi42MiAxLjg4LTEzLjI5IDMuNjQtMjAuMDQgNS00LjY2LjkxLTkuMzQgMS43My0xNC4wMyAyLjQ4LTUuMjUuNjYtMTAuNSAxLjQ0LTE1Ljc5IDEuNzQtNi42OS42Ni0xMy40MS44NC0yMC4xMi44MS02LjgyLjAzLTEzLjY1LS4xMi0yMC40NS0uNzktMy4yOS0uMjMtNi41Ny0uNS05LjgzLS45NS0yLjcyLS4zOS01LjQ2LS42My04LjE3LTEuMTEtNC4xMi0uNzItOC4yNS0xLjM3LTEyLjM1LTIuMjItNC4yNS0uOTQtOC40OS0xLjg5LTEyLjY5LTMuMDItOC42My0yLjE3LTE3LjA4LTUuMDEtMjUuNDEtOC4xMy0xMC40OS00LjEyLTIwLjc5LTguNzUtMzAuNjQtMTQuMjUtMi4xNC0xLjE1LTQuMjgtMi4yOS02LjM1LTMuNTctMTEuMjItNi41OC0yMS44Ni0xNC4xLTMxLjkyLTIyLjM0LTM0LjY4LTI4LjQxLTYxLjQxLTY2LjQzLTc2LjM1LTEwOC43LTMuMDktOC43NC01LjcxLTE3LjY1LTcuOC0yNi42OC0xLjQ4LTYuMTYtMi41Mi0xMi40Mi0zLjU4LTE4LjY2LS40LTIuMzUtLjYxLTQuNzMtLjk1LTcuMDktLjYtMy45Ni0uNzUtNy45Ni0xLjE3LTExLjk0LS44LTkuNDctLjcxLTE4Ljk5LS41MS0yOC40OS4xNC0zLjUxLjM0LTcuMDEuNy0xMC41MS4zMS0zLjE3LjQ2LTYuMzcuOTItOS41Mi40MS0yLjgxLjY1LTUuNjUgMS4xNi04LjQ0LjctMy45NCAxLjMtNy45IDIuMTItMTEuODIgMy40My0xNi41MiA4LjQ3LTMyLjczIDE1LjI2LTQ4LjE4IDEuMTUtMi45MiAyLjU5LTUuNzIgMy44Ni04LjU5IDguMDUtMTYuNzEgMTcuOS0zMi41NiAyOS40OS00Ny4wNiAyMC0yNS4zOCA0NS4xLTQ2LjY4IDczLjI3LTYyLjQ3IDcuNS00LjE1IDE1LjE2LTguMDUgMjMuMDctMTEuMzcgMTUuODItNi44OCAzMi40MS0xMS45NSA0OS4zMS0xNS4zOCAzLjUxLS42NyA3LjA0LTEuMjQgMTAuNTYtMS44NSAyLjYyLS40NyA1LjI4LS43IDcuOTEtMS4wOCAzLjUzLS41MyA3LjEtLjY4IDEwLjY1LTEuMDQgMi40Ni0uMjQgNC45MS0uMzYgNy4zNi0uNTFtOC42NCAyNC40MWMtOS4yMy4xLTE4LjQzLjk5LTI3LjU3IDIuMjMtNy4zIDEuMDgtMTQuNTMgMi42LTIxLjcxIDQuMy0xMy45MSAzLjUtMjcuNDggOC4zNC00MC40NiAxNC40Mi0xMC40NiA0Ljk5LTIwLjU5IDEwLjctMzAuMTggMTcuMjItNC4xOCAyLjkyLTguNCA1LjgtMTIuMzQgOS4wMy01LjA4IDMuOTctOS45OCA4LjE3LTE0LjY4IDEyLjU5LTIuNTEgMi4yNC00LjgxIDQuNy03LjIyIDcuMDYtMjguMjIgMjguNzktNDguNDQgNjUuMzktNTcuNSAxMDQuNjktMi4wNCA4LjQ0LTMuNTQgMTcuMDItNC40NCAyNS42NS0xLjEgOC44OS0xLjQ0IDE3Ljg1LTEuNDEgMjYuOC4xMSA3LjE0LjM4IDE0LjI4IDEuMjIgMjEuMzcuNjIgNy4xMiAxLjg3IDE0LjE2IDMuMiAyMS4xOCAxLjA3IDQuNjUgMi4wMyA5LjMyIDMuMzMgMTMuOTEgNi4yOSAyMy4zOCAxNi41IDQ1LjcgMzAuMDcgNjUuNzUgOC42NCAxMi45OCAxOC43OCAyNC45MyAyOS45OCAzNS43NyAxNi4yOCAxNS44MiAzNS4wNSAyOS4wNCA1NS4zNCAzOS4yMiA3LjI4IDMuNTIgMTQuNjYgNi44NyAyMi4yNyA5LjYzIDUuMDQgMS43NiAxMC4wNiAzLjU3IDE1LjIyIDQuOTggMTEuMjYgMy4yMyAyMi43NyA1LjYgMzQuMzkgNy4wNiAyLjkxLjI5IDUuODEuNjEgOC43Mi45IDEzLjgyIDEuMDggMjcuNzQgMSA0MS41NC0uNDMgNC40NS0uNiA4LjkyLS45OSAxMy4zNS0xLjc4IDMuNjMtLjY3IDcuMjgtMS4yNSAxMC44Ny0yLjEgNC4xMy0uOTggOC4yOC0xLjkxIDEyLjM2LTMuMDcgMjYuNS03LjM0IDUxLjU4LTE5LjcxIDczLjU4LTM2LjIgMTUuNzgtMTEuODIgMjkuOTYtMjUuNzYgNDIuMTItNDEuMjggMy4yNi00LjAyIDYuMTctOC4zMSA5LjEzLTEyLjU1IDMuMzktNS4wNiA2LjU4LTEwLjI1IDkuNi0xNS41NCAyLjQtNC40NCA0Ljc0LTguOTEgNi45NS0xMy40NSA1LjY5LTEyLjA1IDEwLjI4LTI0LjYyIDEzLjc1LTM3LjQ5IDIuNTktMTAuMDEgNC43NS0yMC4xNiA1LjktMzAuNDUgMS43Ny0xMy40NyAxLjk0LTI3LjEgMS4yOS00MC42NS0uMjktMy44OS0uNjctNy43Ny0xLTExLjY2LTIuMjMtMTkuMDgtNi43OS0zNy45MS0xMy44Mi01NS44LTUuOTUtMTUuMTMtMTMuNTMtMjkuNjMtMjIuNjEtNDMuMTMtMTIuNjktMTguOC0yOC4yNC0zNS42OC00NS45Ny00OS44My0yNS4wNS0yMC01NC40Ny0zNC41NS04NS42NS00Mi4wOC03Ljc4LTEuOTMtMTUuNjktMy4zNC0yMy42My00LjQ1LTMuOTEtLjU5LTcuODUtLjgyLTExLjc3LTEuMjQtNy4zOS0uNTctMTQuODEtLjcyLTIyLjIyLS41OHpNMTM5LjI2IDgzLjUzYzEzLjMtOC44OSAyOC4wOC0xNS4zOCA0My4zLTIwLjE4LTMuMTcgMS43Ny02LjQ0IDMuMzgtOS41MyA1LjI5LTExLjIxIDYuNjgtMjEuNTIgMTQuOS0zMC4zOCAyNC40OS02LjggNy40My0xMi43NiAxNS43My0xNy4wMSAyNC44OS0zLjI5IDYuODYtNS42NCAxNC4xOS02Ljg2IDIxLjcxLS45MyA0Ljg1LTEuMyA5LjgxLTEuMTcgMTQuNzUuMTMgMTMuNjYgNC40NCAyNy4wOCAxMS4yOSAzOC44MiA1LjkyIDEwLjIyIDEzLjYzIDE5LjMzIDIyLjM2IDI3LjI2IDQuODUgNC4zNiAxMC4yNCA4LjA5IDE0Ljk1IDEyLjYgMi4yNiAyLjE5IDQuNDkgNC40MiA2LjQzIDYuOTEgMi42MiAzLjMxIDQuODkgNi45OSA1Ljk5IDExLjEuOSAzLjAyLjY2IDYuMi42OSA5LjMxLjAyIDQuMS0uMDQgOC4yLjAzIDEyLjMuMTQgMy41NC0uMDIgNy4wOS4xMSAxMC42My4wOCAyLjM4LjAyIDQuNzYuMDUgNy4xNC4xNiA1Ljc3LjA2IDExLjUzLjE1IDE3LjMuMTEgMi45MS4wMiA1LjgyLjEzIDguNzQuMDMgMS42My4xMyAzLjI4LS4wMyA0LjkxLS45MS4xMi0xLjgyLjE4LTIuNzMuMTYtMTAuOTkgMC0yMS44OC0yLjYzLTMxLjk1LTYuOTMtNi0yLjctMTEuODEtNS44OS0xNy4wOS05LjgzLTUuNzUtNC4xOS0xMS4wOS04Ljk2LTE1Ljc5LTE0LjMxLTYuNTMtNy4yNC0xMS45OC0xNS4zOS0xNi42Mi0yMy45NS0xLjA3LTIuMDMtMi4yNC00LjAyLTMuMTgtNi4xMi0xLjE2LTIuNjQtMi42Mi01LjE0LTMuNjctNy44Mi00LjA1LTkuNjgtNi41Ny0xOS45NC04LjA4LTMwLjMxLS40OS00LjQ0LTEuMDktOC44OC0xLjItMTMuMzUtLjctMTUuNzMuODQtMzEuNTUgNC42Ny00Ni44MiAyLjEyLTguMTUgNC43Ny0xNi4xOCA4LjMxLTIzLjgzIDYuMzItMTQuMiAxNS4zNC0yNy4xOCAyNi4zLTM4LjE5IDYuMjgtNi4yIDEzLjEzLTExLjg0IDIwLjUzLTE2LjY3em0xNzUuMzctMjAuMTJjMi43NC43NCA1LjQxIDEuNzQgOC4wOSAyLjY4IDYuMzYgMi4zMyAxMi42OCA0Ljg0IDE4LjcxIDcuOTYgMTMuMTEgNi40NCAyNS4zMSAxNC44MSAzNS44MiAyNC45NyAxMC4yIDkuOTUgMTguNzQgMjEuNiAyNS4xNCAzNC4zNCAxLjI4IDIuNzUgMi42NCA1LjQ2IDMuODEgOC4yNiA2LjMxIDE1LjEgMTAgMzEuMjYgMTEuMjMgNDcuNTcuNDEgNC41NC40NCA5LjA5LjQ1IDEzLjY0LjA3IDExLjY0LTEuNDkgMjMuMjUtNC4zIDM0LjUzLTEuOTcgNy4yNy00LjM1IDE0LjQ5LTcuODYgMjEuMTgtMy4xOCA2LjY0LTYuNjggMTMuMTYtMTAuODQgMTkuMjQtNi45NCAxMC40Ny0xNS42IDE5Ljg3LTI1LjgyIDI3LjIyLTEwLjQ4IDcuNjQtMjIuNjQgMTMuMDItMzUuNCAxNS4zOC0zLjUxLjY5LTcuMDggMS4wOC0xMC42NiAxLjIxLTEuODUuMDYtMy43Mi4xNi01LjU2LS4xLS4yOC0yLjE1IDAtNC4zMS0uMDEtNi40Ni0uMDMtMy43My4xNC03LjQ1LjEtMTEuMTcuMTktNy4wMi4wMi0xNC4wNS4yMS0yMS4wNy4wMy0yLjM4LS4wMy00Ljc2LjAzLTcuMTQuMTctNS4wNy0uMDQtMTAuMTQuMTQtMTUuMjEuMS0yLjk5LS4yNC02LjA0LjUxLTguOTYuNjYtMi41IDEuNzgtNC44NiAzLjA5LTcuMDggNC40Ni03LjMxIDExLjA2LTEyLjk2IDE3LjY4LTE4LjI2IDUuMzgtNC4xOCAxMC40Ny04Ljc3IDE1LjAyLTEzLjg0IDcuNjgtOC4zNyAxNC4xNy0xNy44OCAxOC43OC0yOC4yNyAyLjUtNS45MyA0LjUyLTEyLjEgNS41NS0xOC40Ni44Ni00LjM3IDEuMDYtOC44MyAxLjAxLTEzLjI3LS4wMi03Ljg1LTEuNC0xNS42NS0zLjY0LTIzLjE3LTEuNzUtNS43My00LjI3LTExLjE4LTcuMDktMTYuNDUtMy44Ny02LjkzLTguNjUtMTMuMzEtMTMuOTYtMTkuMi05Ljk0LTEwLjg1LTIxLjc1LTE5Ljk0LTM0LjYtMjcuMS0xLjg1LTEuMDItMy44NC0xLjgyLTUuNjMtMi45N3ptLTEwMC44IDU4LjQ1Yy45OC0xLjE4IDEuOTktMi4zMyAzLjEyLTMuMzgtLjYxLjkzLTEuMjcgMS44MS0xLjk1IDIuNjgtMy4xIDMuODgtNS41NCA4LjMxLTcuMDMgMTMuMDYtLjg3IDMuMjctMS42OCA2LjYtMS43MyAxMC0uMDcgMi41Mi0uMDggNS4wNy4zMiA3LjU3IDEuMTMgNy42MyA0LjMzIDE0Ljg1IDguNzcgMjEuMTIgMiAyLjcgNC4yNSA1LjI3IDYuOTIgNy4zMyAxLjYyIDEuMjcgMy41MyAyLjA5IDUuMzQgMy4wNSAzLjExIDEuNjggNi4zMiAzLjIzIDkuMDcgNS40OCAyLjY3IDIuMDkgNC41NSA1LjMzIDQuNCA4Ljc5LS4wMSA3My42NyAwIDE0Ny4zNC0uMDEgMjIxLjAyIDAgMS4zNS0uMDggMi43LjA0IDQuMDQuMTMgMS40OC44MiAyLjgzIDEuNDcgNC4xNS44NiAxLjY2IDEuNzggMy4zNCAzLjE4IDQuNjIuODUuNzcgMS45NyAxLjQgMy4xNSAxLjI0IDEuNS0uMiAyLjY2LTEuMzUgMy40NS0yLjU3Ljk2LTEuNTEgMS42OC0zLjE2IDIuMjgtNC44NS43Ni0yLjEzLjQ0LTQuNDIuNTQtNi42My4xNC00LjAzLS4wMi04LjA2LjE0LTEyLjA5LjAzLTUuODkuMDMtMTEuNzcuMDYtMTcuNjYuMTQtMy42Mi4wMy03LjI0LjExLTEwLjg2LjE1LTQuMDMtLjAyLTguMDYuMTQtMTIuMDkuMDMtNS45OS4wMy0xMS45OC4wNy0xNy45Ny4xNC0zLjYyLjAyLTcuMjQuMTEtMTAuODYuMTQtMy45My0uMDItNy44Ni4xNC0xMS43OC4wMy01Ljk5LjAzLTExLjk4LjA2LTE3Ljk3LjE2LTMuOTQtLjAxLTcuODguMTktMTEuODIuMjkgMS40NC4xMyAyLjkyLjIyIDQuMzguMTkgMy42MS40MiA3LjIzLjc2IDEwLjg0LjMyIDMuNDQuNDQgNi44OS44NiAxMC4zMi4zNyAzLjEuNTEgNi4yMi45NSA5LjMxLjU3IDQuMDkuODcgOC4yMSAxLjU0IDEyLjI5IDEuNDYgOS4wNCAyLjgzIDE4LjExIDUuMDkgMjYuOTkgMS4xMyA0LjgyIDIuNCA5LjYxIDQgMTQuMyAyLjU0IDcuOSA1LjcyIDE1LjY3IDEwLjMxIDIyLjYyIDEuNzMgMi42NCAzLjg3IDQuOTggNi4xIDcuMjEuMjcuMjUuNTUuNTEuODguNzEuNi4yNSAxLjMxLS4wNyAxLjctLjU3LjcxLS44OCAxLjE3LTEuOTQgMS43LTIuOTMgNC4wNS03LjggOC4xOC0xNS41NiAxMi4zNC0yMy4zMS43LTEuMzEgMS40NC0yLjYyIDIuNTYtMy42MSAxLjc1LTEuNTcgMy44NC0yLjY5IDUuOTgtMy42MyAyLjg4LTEuMjIgNS45LTIuMTkgOS4wMy0yLjQyIDYuNTgtLjYyIDEzLjExLjc1IDE5LjU2IDEuODUgMy42OS41OCA3LjQgMS4xNyAxMS4xMyAxLjQxIDMuNzQuMSA3LjQ4LjA1IDExLjIxLS4yOCA4LjU1LS45MiAxNi45OS0yLjk2IDI0Ljk0LTYuMjUgNS4zLTIuMjQgMTAuNDYtNC44MyAxNS4zMS03LjkzIDExLjQ2LTcuMjEgMjEuNDYtMTYuNTcgMzAuMDQtMjcuMDEgMS4xNy0xLjQyIDIuMjUtMi45IDMuNDYtNC4yOC0xLjIgMy4yNC0yLjY3IDYuMzctNC4xNiA5LjQ4LTEuMjUgMi45LTIuODQgNS42MS00LjI3IDguNDItNS4xNiA5LjYzLTExLjAyIDE4LjkxLTE3Ljc1IDI3LjUyLTQuMDMgNS4yMS04LjUzIDEwLjA1LTEzLjMzIDE0LjU3LTYuNjQgNi4wNS0xNC4wNyAxMS4zNy0yMi40MyAxNC43Ni04LjIxIDMuMzctMTcuMzEgNC42My0yNi4wOSAzLjI5LTMuNTYtLjU4LTcuMDEtMS42OS0xMC40MS0yLjg4LTIuNzktLjk3LTUuMzktMi4zOC04LjAzLTMuNjktMy40My0xLjcxLTYuNjQtMy44MS05LjcxLTYuMDggMi43MSAzLjA2IDUuNjkgNS44NiA4LjcgOC42MSA0LjI3IDMuNzYgOC43NCA3LjMxIDEzLjYzIDEwLjIzIDMuOTggMi40NSA4LjI5IDQuNCAxMi44NCA1LjUxIDEuNDYuMzcgMi45Ni40NiA0LjQ1LjYtMS4yNSAxLjEtMi42MyAyLjA0LTMuOTkgMi45OC05LjYxIDYuNTQtMjAuMDEgMTEuODYtMzAuNjkgMTYuNDMtMjAuODYgOC43LTQzLjE3IDEzLjk3LTY1Ljc0IDE1LjM0LTQuNjYuMjQtOS4zMi4zNi0xMy45OC4zNi00Ljk4LS4xMS05Ljk3LS4xMy0xNC45Mi0uNjUtMTEuMi0uNzYtMjIuMjktMi43My0zMy4xNy01LjQzLTEwLjM1LTIuNzEtMjAuNTUtNi4xMi0zMC4zLTEwLjU1LTguNzEtMy44Ni0xNy4xMi04LjQyLTI0Ljk5LTEzLjc5LTEuODMtMS4zMS0zLjc0LTIuNTMtNS4zNy00LjA4IDYuNi0xLjE5IDEzLjAzLTMuMzkgMTguOTktNi40OCA1Ljc0LTIuODYgMTAuOTktNi42NiAxNS42My0xMS4wNyAyLjI0LTIuMTkgNC4yOS00LjU5IDYuMTktNy4wOS0zLjQzIDIuMTMtNi45MyA0LjE1LTEwLjYyIDUuNzgtNC40MSAyLjE2LTkuMDcgMy43Ny0xMy44MSA1LjAyLTUuNzMgMS41Mi0xMS43NCAxLjczLTE3LjYxIDEuMTQtOC4xMy0uOTUtMTUuODYtNC4yNy0yMi41MS04Ljk4LTQuMzItMi45NC04LjIyLTYuNDMtMTEuOTYtMTAuMDYtOS45My0xMC4xNi0xOC4yLTIxLjgxLTI1LjY2LTMzLjg2LTMuOTQtNi4yNy03LjUzLTEyLjc1LTExLjEyLTE5LjIyLTEuMDUtMi4wNC0yLjE1LTQuMDUtMy4xOC02LjEgMi44NSAyLjkyIDUuNTcgNS45NyA4LjQzIDguODggOC45OSA4Ljk3IDE4LjU2IDE3LjQ0IDI5LjE2IDI0LjQ4IDcuNTUgNC45IDE1LjY3IDkuMjMgMjQuNTYgMTEuMDMgMy4xMS43MyA2LjMyLjQ3IDkuNDcuODEgMi43Ny4yOCA1LjU2LjIgOC4zNC4zIDUuMDUuMDYgMTAuMTEuMDQgMTUuMTYtLjE2IDMuNjUtLjE2IDcuMjctLjY2IDEwLjg5LTEuMDkgMi4wNy0uMjUgNC4xMS0uNzEgNi4xNC0xLjIgMy44OC0uOTUgOC4xMS0uOTYgMTEuODMuNjEgNC43NiAxLjg1IDguNDQgNS42NCAxMS4zOCA5LjcxIDIuMTYgMy4wMiA0LjA2IDYuMjIgNS42NiA5LjU4IDEuMTYgMi40MyAyLjQ2IDQuNzkgMy41NSA3LjI2IDEgMi4yNCAyLjE1IDQuNDIgMy40MiA2LjUyLjY3IDEuMDIgMS40IDIuMTUgMi42MiAyLjU1IDEuMDYtLjc1IDEuNzEtMS45MSAyLjI4LTMuMDMgMi4xLTQuMTYgMy40Mi04LjY1IDQuODktMTMuMDUgMi4wMi02LjU5IDMuNzgtMTMuMjcgNS4xOS0yMC4wMiAyLjIxLTkuMjUgMy4yNS0xOC43MiA0LjU0LTI4LjEzLjU2LTMuOTguODMtNy45OSAxLjMxLTExLjk3Ljg3LTEwLjY0IDEuOS0yMS4yNyAyLjI0LTMxLjk0LjA4LTEuODYuMjQtMy43MS4yNS01LjU3LjAxLTQuMzUuMjUtOC42OS4yMi0xMy4wMy0uMDEtMi4zOC0uMDEtNC43NiAwLTcuMTMuMDUtNS4wNy0uMi0xMC4xNC0uMjItMTUuMjEtLjItNi42MS0uNzEtMTMuMi0xLjI5LTE5Ljc4LS43My01Ljg4LTEuNTUtMTEuNzgtMy4xMi0xNy41MS0yLjA1LTcuNzUtNS41OS0xNS4wMy05LjgtMjEuODItMy4xNi01LjA3LTYuNzktOS44OC0xMS4wOS0xNC4wMy0zLjg4LTMuODYtOC41OC03LjA4LTEzLjk0LTguNDUtMS41LS40MS0zLjA2LS40NS00LjU5LS42NC4wNy0yLjk5LjctNS45MyAxLjI2LTguODUgMS41OS03LjcxIDMuOC0xNS4zIDYuNzYtMjIuNiAxLjUyLTQuMDMgMy40MS03LjkgNS4zOS0xMS43MiAzLjQ1LTYuNTYgNy42Mi0xMi43OSAxMi40Ni0xOC40NnptMzEuMjcgMS43Yy4zNS0uMDYuNzEtLjEyIDEuMDctLjE5LjE5IDEuNzkuMDkgMy41OC4xIDUuMzd2MzguMTNjLS4wMSAxLjc0LjEzIDMuNDktLjE1IDUuMjItLjM2LS4wMy0uNzEtLjA1LTEuMDYtLjA1LS45NS0zLjc1LTEuNzItNy41NS0yLjYyLTExLjMxLS4zOC0xLjUzLS41OC0zLjA5LTEuMDctNC41OS0xLjctLjI0LTMuNDMtLjE3LTUuMTUtLjItNS4wNi0uMDEtMTAuMTMgMC0xNS4xOS0uMDEtMS42Ni0uMDEtMy4zMi4wOS00Ljk4LS4wMy0uMDMtLjM5LS4yNi0uOTEuMTYtMS4xOCAxLjI4LS42NSAyLjcyLS44OCA0LjA2LTEuMzUgMy40My0xLjE0IDYuODgtMi4xNiAxMC4zMS0zLjMxIDEuMzktLjQ4IDIuOS0uNzIgNC4xNi0xLjU0LjA0LS41Ni4wMi0xLjEzLS4wNS0xLjY4LTEuMjMtLjU1LTIuNTMtLjg3LTMuODEtMS4yOC0zLjEzLTEuMDMtNi4yOS0xLjk2LTkuNDEtMy4wMi0xLjc5LS42Mi0zLjY3LTEtNS40MS0xLjc5LS4wMy0uMzctLjA3LS43My0uMTEtMS4wOSA1LjA5LS4xOSAxMC4yLjA2IDE1LjMtLjEyIDMuMzYtLjEzIDYuNzMuMDggMTAuMDktLjA3LjEyLS4zOS4yNi0uNzcuMzctMS4xNiAxLjA4LTQuOTQgMi4zMy05LjgzIDMuMzktMTQuNzV6bTUuOTctLjJjLjM2LjA1LjcyLjEyIDEuMDguMi45OCAzLjg1IDEuNzMgNy43NiAyLjcxIDExLjYxLjM2IDEuNDIuNTYgMi44OCAxLjAzIDQuMjcgMi41My4xOCA1LjA3LS4wMSA3LjYxLjA1IDUuMTYuMTIgMTAuMzMuMTIgMTUuNDkuMDcuNzYtLjAxIDEuNTIuMDMgMi4yOC4wOC0uMDQuMzYtLjA3LjcyLS4xIDEuMDgtMS44Mi44My0zLjc4IDEuMjUtNS42NyAxLjg5LTMuNzMgMS4yMy03LjQ4IDIuMzktMTEuMjIgMy41Ny0uNTcuMTctMS4xMi40Mi0xLjY3LjY0LS4xNS41NS0uMTggMS4xMi0uMTIgMS42OS44Ny40OCAxLjgyLjgxIDIuNzcgMS4wOSA0Ljg4IDEuNTIgOS43MyAzLjE0IDE0LjYzIDQuNi4zOC4xMy43OC4yNyAxLjEzLjQ5LjQuMjcuMjMuNzkuMTUgMS4xOC0xLjY2LjEzLTMuMzEuMDMtNC45Ny4wNC01LjE3LjAxLTEwLjMzLS4wMS0xNS41LjAxLTEuNjEuMDMtMy4yMi0uMDItNC44Mi4yMS0uNTIgMS42Ny0uNzIgMy40Mi0xLjE3IDUuMTEtLjk0IDMuNTctMS41MiA3LjI0LTIuNTQgMTAuNzgtLjM2LjAxLS43MS4wMi0xLjA2LjA2LS4yOS0xLjczLS4xNS0zLjQ4LS4xNS01LjIydi0zOC4xM2MuMDItMS43OC0uMDgtMy41OC4xMS01LjM3ek02NS4wNSAxNjguMzNjMS4xMi0yLjE1IDIuMDgtNC40IDMuMzctNi40Ni0xLjgyIDcuNTYtMi45MSAxNS4yNy0zLjYyIDIzLS44IDcuNzEtLjg1IDE1LjQ5LS41NCAyMy4yMyAxLjA1IDE5Ljk0IDUuNTQgMzkuODMgMTQuMjMgNTcuODggMi45OSA1Ljk5IDYuMzUgMTEuODMgMTAuNSAxNy4xMSA2LjEyIDcuNDcgMTIuNTMgMTQuNzYgMTkuODQgMjEuMDkgNC44IDQuMSA5Ljk5IDcuNzggMTUuNTQgMTAuOCAzLjI3IDEuNjUgNi41MSAzLjM5IDkuOTQgNC42OCA1LjAxIDIuMDMgMTAuMTkgMy42MSAxNS40MiA0Ljk0IDMuODMuOTYgNy43OCAxLjQxIDExLjUyIDIuNzEgNSAxLjU3IDkuNDcgNC42MSAxMy4wMyA4LjQzIDQuOTMgNS4yMyA4LjA5IDExLjg3IDEwLjIgMTguNjcuOTkgMi45IDEuNTkgNS45MSAyLjE3IDguOTIuMTUuNzUuMjIgMS41Mi4xNiAyLjI5LTYuNSAyLjc4LTEzLjI2IDUuMDYtMjAuMjYgNi4xOC00LjExLjc4LTguMjkuOTktMTIuNDYgMS4wOC0xMC4yNS4yNC0yMC40Ny0xLjc2LTMwLjEyLTUuMTItMy43NC0xLjQyLTcuNDktMi44NS0xMS4wMy00LjcyLTguMDYtMy44NC0xNS42NC04LjctMjIuNDYtMTQuNDYtMi45Mi0yLjU1LTUuODMtNS4xMy04LjQtOC4wMy05LjE2LTkuODMtMTYuMy0yMS40MS0yMS43OS0zMy42NS0yLjM5LTUuNTUtNC42MS0xMS4xOC02LjM3LTE2Ljk2LTEuMTctMy45NC0yLjM2LTcuODktMy4yNi0xMS45MS0uNzUtMi45NC0xLjIyLTUuOTUtMS44Ny04LjkyLS40Ni0yLjE0LS42OS00LjMyLTEuMDMtNi40OC0uODUtNS40My0xLjI4LTEwLjkzLTEuMzMtMTYuNDMuMTEtNi4xOC4yNS0xMi4zNyAxLjA3LTE4LjUuNC0yLjg2LjY3LTUuNzQgMS4xNS04LjYuOTgtNS43IDIuMTQtMTEuMzcgMy43MS0xNi45MyAzLjA5LTExLjY1IDcuNDgtMjIuOTUgMTIuNjktMzMuODR6bTM2My43My02LjQ0YzEuMSAxLjY2IDEuOTEgMy40OCAyLjc4IDUuMjYgMi4xIDQuNDUgNC4yNCA4LjkgNi4wMiAxMy40OSA3LjYxIDE4Ljc2IDEyLjMgMzguNzkgMTMuMDQgNTkuMDUuMDIgMS43Ni4wNyAzLjUyLjExIDUuMjkuMTMgOS41Ny0xLjI3IDE5LjA5LTMuMTggMjguNDUtLjczIDMuNTktMS41NCA3LjE3LTIuNTggMTAuNjktNC4wNCAxNC43Mi0xMCAyOS0xOC40MSA0MS43OC04LjIxIDEyLjU3LTE5LjAxIDIzLjU1LTMxLjg0IDMxLjQxLTUuNzMgMy41OS0xMS43OSA2LjY0LTE4LjA1IDkuMTktNS43OCAyLjE5LTExLjcxIDQuMDMtMTcuOCA1LjExLTYuNCAxLjA1LTEyLjkxIDEuNTItMTkuNCAxLjIzLTcuOTItLjQ4LTE1Ljc4LTIuMDctMjMuMjEtNC44NS0xLjk0LS44LTMuOTQtMS40Ni01Ljg0LTIuMzMtLjIxLTEuNTEuMjUtMi45OS41My00LjQ2IDEuMTYtNS43NCAzLjAzLTExLjM2IDUuNy0xNi41OCAyLjM3LTQuNTEgNS41Mi04LjY1IDkuNDYtMTEuOSAyLjQzLTIuMDUgNS4yNC0zLjYxIDguMTYtNC44MyAzLjU4LTEuNSA3LjQ3LTEuOTcgMTEuMjQtMi44MyA3LjIzLTEuNzEgMTQuMzctMy45MyAyMS4xNS03IDEwLjM1LTQuNjUgMTkuNzEtMTEuMzggMjcuNjUtMTkuNDYgMS41OS0xLjYxIDMuMjMtMy4xOCA0Ljc0LTQuODcgMy4zNy0zLjc2IDYuNzEtNy41NyA5Ljg1LTExLjUzIDcuNDgtMTAuMDcgMTIuODItMjEuNTkgMTYuNzEtMzMuNDggMS41OC01LjMgMy4yMS0xMC42IDQuMjEtMTYuMDUuNjMtMi44NyAxLjA0LTUuNzggMS41Mi04LjY4Ljg3LTYuMDkgMS41OS0xMi4yMiAxLjY4LTE4LjM4LjEyLTYuNjUuMTQtMTMuMzItLjUzLTE5Ljk0LS43My03Ljk5LTEuODctMTUuOTYtMy43MS0yMy43OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3BlbmNhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIzLjMgNDQwLjdjMCAyNS4zLTIwLjMgNDUuNi00NS42IDQ1LjZzLTQ1LjgtMjAuMy00NS44LTQ1LjYgMjAuNi00NS44IDQ1LjgtNDUuOGMyNS40IDAgNDUuNiAyMC41IDQ1LjYgNDUuOHptLTI1My45LTQ1LjhjLTI1LjMgMC00NS42IDIwLjYtNDUuNiA0NS44czIwLjMgNDUuNiA0NS42IDQ1LjYgNDUuOC0yMC4zIDQ1LjgtNDUuNi0yMC41LTQ1LjgtNDUuOC00NS44em0yOTEuNy0yNzBDMTU4LjkgMTI0LjkgODEuOSAxMTIuMSAwIDI1LjdjMzQuNCA1MS43IDUzLjMgMTQ4LjkgMzczLjEgMTQ0LjIgMzMzLjMtNSAxMzAgODYuMSA3MC44IDE4OC45IDE4Ni43LTE2Ni43IDMxOS40LTIzMy45IDE3LjItMjMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZW5pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzEuNSA0MzJsLTY4IDMyQzg4LjUgNDUzLjcgMCAzOTIuNSAwIDMxOC4yYzAtNzEuNSA4Mi41LTEzMSAxOTEuNy0xNDQuM3Y0M2MtNzEuNSAxMi41LTEyNCA1My0xMjQgMTAxLjMgMCA1MSA1OC41IDkzLjMgMTM1LjcgMTAzdi0zNDBsNjgtMzMuMnYzODR6TTQ0OCAyOTFsLTEzMS4zLTI4LjUgMzYuOC0yMC43Yy0xOS41LTExLjUtNDMuNS0yMC03MC0yNC44di00M2M0Ni4yIDUuNSA4Ny43IDE5LjUgMTIwLjMgMzkuM2wzNS0xOS44TDQ0OCAyOTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZW5zdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS4xIDEwMi43cy0uMyAxOC4zLS4zIDIwLjNjLTkuMS0zLTc0LjQtMjQuMS0xMzUuNy0yNi4zYy01MS45LTEuOC0xMjIuOC00LjMtMjIzIDU3LjNjLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuN0M3IDI3Ny0uMSAzMDcgNyAzMzUuMWMzLjMgMTIuOCA4LjkgMjQuOSAxNi41IDM1LjdjMTcuNCAyNSA0Ni42IDQxLjYgNzguMSA0NC40YzQ0LjQgMy45IDc4LjEtMTYgOTAtNTMuM2M4LjItMjUuOCAwLTYzLjYtMzEuNS04Mi45Yy0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42Yy0xMy45IDkuMi0yMS44IDIzLjUtMjEuNiAzOS4yYy4zIDI3LjggMjQuMyA0Mi42IDQxLjUgNDIuNmM1LjQgMCAxMC43LS45IDE1LjgtMi43YzYuNS0xLjggMTMuMy02LjUgMTMuMy0xNC45YzAtMTIuMS0xMS42LTE0LjgtMTYuOC0xMy45Yy0yLjkgLjUtNC41IDItMTEuOCAyLjRjLTItLjItMTItMy4xLTEyLTE0VjMxNmMuMi0xMi4zIDEzLjItMTggMjUuNS0xNi45YzMyLjMgMi44IDQ3LjcgNDAuNyAyOC41IDY1LjdDMTM1IDM4OC41IDc2LjcgMzg4IDUzLjYgMzQ0LjRjLTI2LTQ5LjIgMTIuNy0xMTEuMiA4Ny05OC40YzMzLjIgNS43IDgzLjYgMzUuNSAxMDIuNCAxMDQuM2g0NS45Yy01LjctMTcuNi04LjktNjguMyA0Mi43LTY4LjNjNTYuNyAwIDYzLjkgMzkuOSA3OS44IDY4LjNINDYwYy0xMi44LTE4LjMtMjEuNy0zOC43LTE4LjktNTUuOGM1LjYtMzMuOCAzOS43LTE4LjQgODIuNC0xNy40YzY2LjUgLjQgMTAyLjEtMjcgMTAzLjEtMjhjMy43LTMuMSA2LjUtMTUuOCA3LTE3LjdjMS4zLTUuMS0zLjItMi40LTMuMi0yLjRjLTguNyA1LjItMzAuNSAxNS4yLTUwLjkgMTUuNmMtMjUuMyAuNS03Ni4yLTI1LjQtODEuNi0yOC4yYy0uMy0uNCAuMSAxLjItMTEtMjUuNWM4OC40IDU4LjMgMTE4LjMgNDAuNSAxNDUuMiAyMS43Yy44LS42IDQuMy0yLjkgMy42LTUuN2MtMTMuOC00OC4xLTIyLjQtNjIuNy0zNC41LTY5LjZjLTM3LTIxLjYtMTI1LTM0LjctMTI5LjItMzUuM2MuMS0uMS0uOS0uMy0uOSAuN2wwIDB6bTEzNS42IDc1LjRhMzcuNiAzNy42IDAgMSAxIC03NS4yLTIuNiAzNy42IDM3LjYgMCAxIDEgNzUuMiAyLjZ6bS0zNi42LTI3LjlhMjYuMyAyNi4zIDAgMSAwIC0xLjcgNTIuNSAyNi4zIDI2LjMgMCAxIDAgMS43LTUyLjV6bTQuMyAyOC44Yy0xNS40IDAtMTUuNC0xNS42IDAtMTUuNnMxNS40IDE1LjYgMCAxNS42djB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy45IDMyLjdjLTE3MC4yIDAtMjUyLjYgMjIzLjgtMTQ3LjUgMzU1LjEgMzYuNSA0NS40IDg4LjYgNzUuNiAxNDcuNSA3NS42IDM2LjMgMCA3MC4zLTExLjEgOTkuNC0zMC40LTQzLjggMzkuMi0xMDEuOSA2My0xNjUuMyA2My0zLjkgMC04IDAtMTEuOS0uM0MxMDQuNiA0ODkuNiAwIDM4MS4xIDAgMjQ4IDAgMTExIDExMSAwIDI0OCAwaC44YzYzLjEuMyAxMjAuNyAyNC4xIDE2NC40IDYzLjEtMjktMTkuNC02My4xLTMwLjQtOTkuMy0zMC40em0xMDEuOCAzOTcuN2MtNDAuOSAyNC43LTkwLjcgMjMuNi0xMzItNS44IDU2LjItMjAuNSA5Ny43LTkxLjYgOTcuNy0xNzYuNiAwLTg0LjctNDEuMi0xNTUuOC05Ny40LTE3Ni42IDQxLjgtMjkuMiA5MS4yLTMwLjMgMTMyLjktNSAxMDUuOSA5OC43IDEwNS41IDI2NS43LTEuMiAzNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wdGluTW9uc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzIuNiA0MjEuNGM1LjYtOS41IDQuNy0xNS4yLTUuNC0xMS42LTMtNC45LTctOS41LTExLjEtMTMuOCAyLjktOS43LS43LTE0LjItMTAuOC05LjItNC42LTMuMi0xMC4zLTYuNS0xNS45LTkuMiAwLTE1LjEtMTEuNi0xMS42LTE3LjYtNS43LTEwLjQtMS41LTE4LjctLjMtMjYuOCA1LjcuMy02LjUuMy0xMyAuMy0xOS43IDEyLjYgMCA0MC4yLTExIDQ1LjktMzYuMiAxLjQtNi44IDEuNi0xMy44LS4zLTIxLjktMy0xMy41LTE0LjMtMjEuMy0yNS4xLTI1LjctLjgtNS45LTcuNi0xNC4zLTE0LjktMTUuOXMtMTIuNCA0LjktMTQuMSAxMC4zYy04LjUgMC0xOS4yIDIuOC0yMS4xIDguNC01LjQtLjUtMTEuMS0xLjQtMTYuOC0xLjkgMi43LTEuOSA1LjQtMy41IDguNC00LjYgNS40LTkuMiAxNC42LTExLjQgMjUuNy0xMS42VjI1NmMxOS41LS41IDQzLTUuOSA1My44LTE4LjEgMTIuNy0xMy44IDE0LjYtMzcuMyAxMi40LTU1LjEtMi40LTE3LjMtOS43LTM3LjYtMjQuNi00OC4xLTguNC01LjktMjEuNi0uOC0yMi43IDkuNS0yLjIgMTkuNiAxLjIgMzAtMzguNiAyNS4xLTEwLjMtMjMuOC0yNC42LTQ0LjYtNDIuNy02MEMzNDEgNDkuNiAyNDIuOSA1NS41IDE2Ni40IDcxLjdjMTkuNyA0LjYgNDEuMSA4LjYgNTkuNyAxNi41LTI2LjIgMi40LTUyLjcgMTEuMy03Ni4yIDIzLjItMzIuOCAxNy00NCAyOS45LTU2LjcgNDIuNCAxNC45LTIuMiAyOC45LTUuMSA0My44LTMuOC05LjcgNS40LTE4LjQgMTIuMi0yNi41IDIwLTI1LjguOS0yMy44LTUuMy0yNi4yLTI1LjktMS4xLTEwLjUtMTQuMy0xNS40LTIyLjctOS43LTI4LjEgMTkuOS0zMy41IDc5LjktMTIuMiAxMDMuNSAxMC44IDEyLjIgMzUuMSAxNy4zIDU0LjkgMTcuOC0uMyAxLjEtLjMgMS45LS4zIDIuNyAxMC44LjUgMTkuNSAyLjcgMjQuNiAxMS42IDMgMS4xIDUuNyAyLjcgOC4xIDQuNi01LjQuNS0xMS4xIDEuNC0xNi41IDEuOS0zLjMtNi42LTEzLjctOC4xLTIxLjEtOC4xLTEuNi01LjctNi41LTEyLjItMTQuMS0xMC4zLTYuOCAxLjktMTQuMSAxMC0xNC45IDE1LjktMjIuNSA5LjUtMzAuMSAyNi44LTI1LjEgNDcuNiA1LjMgMjQuOCAzMyAzNi4yIDQ1LjkgMzYuMnYxOS43Yy02LjYtNS0xNC4zLTcuNS0yNi44LTUuNy01LjUtNS41LTE3LjMtMTAuMS0xNy4zIDUuNy01LjkgMi43LTExLjQgNS45LTE1LjkgOS4yLTkuOC00LjktMTMuNi0xLjctMTEuMSA5LjItNC4xIDQuMy03LjggOC42LTExLjEgMTMuOC0xMC4yLTMuNy0xMSAyLjItNS40IDExLjYtMS4xIDMuNS0xLjYgNy0xLjkgMTAuOC0uNSAzMS42IDQ0LjYgNjQgNzMuNSA2NS4xIDE3LjMuNSAzNC42LTguNCA0My0yMy41IDExMy4yIDQuOSAyMjYuNyA0LjEgMzQwLjIgMCA4LjEgMTUuMSAyNS40IDI0LjMgNDIuNyAyMy41IDI5LjItMS4xIDc0LjMtMzMuNSA3My41LTY1LjEuMi0zLjctLjctNy4yLTEuNy0xMC43em0tNzMuOC0yNTRjMS4xLTMgMi40LTguNCAyLjQtMTQuNiAwLTUuOSA2LjgtOC4xIDE0LjEtLjggMTEuMSAxMS42IDE0LjkgNDAuNSAxMy44IDUxLjEtNC4xLTEzLjYtMTMtMjktMzAuMy0zNS43em0tNC42IDYuN2MxOS41IDYuMiAyOC42IDI3LjYgMjkuNyA0OC45LTEuMSAyLjctMyA1LjQtNC45IDcuNi01LjcgNS45LTE1LjQgMTAtMjYuMiAxMi4yIDQuMy0yMS4zLjMtNDcuMy0xMi43LTYzIDQuOS0uOCAxMC45LTIuNCAxNC4xLTUuN3ptLTI0LjEgNi44YzEzLjggMTEuOSAyMCAzOS4yIDE0LjEgNjMuNS00LjEuNS04LjEuOC0xMS42LjgtMS45LTIxLjktNi44LTQ0LTE0LjMtNjQuNiAzLjcuMyA4LjEuMyAxMS44LjN6TTQ3LjUgMjAzYy0xLjEtMTAuNSAyLjQtMzkuNSAxMy44LTUxLjEgNy03LjMgMTQuMS01LjEgMTQuMS44IDAgNi4yIDEuNCAxMS42IDIuNCAxNC42LTE3LjMgNi44LTI2LjIgMjIuMi0zMC4zIDM1Ljd6bTkuNyAyNy42Yy0xLjktMi4yLTMuNS00LjktNC45LTcuNiAxLjQtMjEuMyAxMC4zLTQyLjcgMjkuNy00OC45IDMuMiAzLjIgOS4yIDQuOSAxNC4xIDUuNy0xMyAxNS43LTE3IDQxLjYtMTIuNyA2My0xMC44LTIuMi0yMC41LTYtMjYuMi0xMi4yem00Ny45IDE0LjZjLTQuMSAwLTguMS0uMy0xMi43LS44LTQuNi0xOC42LTEuOS0zOC45IDUuNC01M3YuM2wxMi4yLTUuMWM0LjktMS45IDkuNy0zLjggMTQuOS00LjktMTAuNyAxOS43LTE3LjQgNDEuMy0xOS44IDYzLjV6bTE4NC0xNjIuN2M0MS45IDAgNzYuMiAzNCA3Ni4yIDc1LjkgMCA0Mi4yLTM0LjMgNzYuMi03Ni4yIDc2LjJzLTc2LjItMzQtNzYuMi03Ni4yYzAtNDEuOCAzNC4zLTc1LjkgNzYuMi03NS45em0xMTUuNiAxNzQuM2MtLjMgMTcuOC03IDQ4LjktMjMgNTctMTMuMiA2LjYtNi41LTcuNS0xNi41LTU4LjEgMTMuMy4zIDI2LjYuMyAzOS41IDEuMXptLTU0LTEuNmMuOCA0LjkgMy44IDQwLjMtMS42IDQxLjktMTEuNiAzLjUtNDAgNC4zLTUxLjEtMS4xLTQuMS0zLTQuNi0zNS45LTQuMy00MS4xdi4zYzE4LjktLjMgMzguMS0uMyA1NyAwek0yNzguMyAzMDljLTEzIDMuNS00MS42IDQuMS01NC42LTEuNi02LjUtMi43LTMuOC00Mi40LTEuOS01MS42IDE5LjItLjUgMzguNC0uNSA1Ny44LS44di4zYzEuMSA4LjMgMy4zIDUxLjItMS4zIDUzLjd6bS0xMDYuNS01MS4xYzEyLjItLjggMjQuNi0xLjQgMzYuOC0xLjYtMi40IDE1LjQtMyA0My41LTQuOSA1Mi4yLTEuMSA2LjgtNC4zIDYuOC05LjcgNC4zLTIxLjktOS44LTI3LjYtMzUuMi0yMi4yLTU0Ljl6bS0zNS40IDMxLjNjNy44LTEuMSAxNS43LTEuOSAyMy41LTIuNyAxLjYgNi4yIDMuOCAxMS45IDcgMTcuNiAxMCAxNyA0NCAzNS43IDQ1LjEgNyA2LjIgMTQuOSA0MC44IDEyLjIgNTQuOSAxMC44IDE1LjctMS40IDIzLjgtMS40IDI2LjgtMTQuMyAxMi40IDQuMyAzMC44IDQuMSA0NCAzIDExLjMtLjggMjAuOC0uNSAyNC42LTguOSAxLjEgNS4xIDEuOSAxMS42IDQuNiAxNi44IDEwLjggMjEuMyAzNy4zIDEuNCA0Ni44LTMxLjYgOC42LjggMTcuNiAxLjkgMjYuNSAyLjctLjQgMS4zLTMuOCA3LjMgNy4zIDExLjYtNDcuNiA0Ny05NS43IDg3LjgtMTYzLjIgMTA3LTYzLjItMjAuOC0xMTIuMS01OS41LTE1NS45LTEwNi41IDkuNi0zLjQgMTAuNC04LjggOC0xMi41em0tMjEuNiAxNzIuNWMtMy44IDE3LjgtMjEuOSAyOS43LTM5LjcgMjguOS0xOS4yLS44LTQ2LjUtMTctNTkuMi0zNi41LTIuNy0zMS4xIDQzLjgtNjEuMyA2Ni4yLTU0LjYgMTQuOSA0LjMgMjcuOCAzMC44IDMzLjUgNTQgMCAzLS4zIDUuNy0uOCA4LjJ6bS04LjctNjZjLS41LTEzLjUtLjUtMjctLjMtNDAuNWguM2MyLjctMS42IDUuNy0zLjggNy44LTYuNSA2LjUtMS42IDEzLTUuMSAxNS4xLTkuMiAzLjMtNy4xLTctNy41LTUuNC0xMi40IDIuNy0xLjEgNS43LTIuMiA3LjgtMy41IDI5LjIgMjkuMiA1OC42IDU2LjUgOTcuMyA3Ny0zNi44IDExLjMtNzIuNCAyNy42LTEwNS45IDQ3LTEuMi0xOC42LTcuNy0zNS45LTE2LjctNTEuOXptMzM3LjYgNjQuNmMtMTAzIDMuNS0yMDYuMiA0LjEtMzA5LjQgMCAwIC4zIDAgLjMtLjMuM3YtLjNoLjNjMzUuMS0yMS42IDcyLjItMzkuMiAxMTIuNC01MC44IDExLjYgNS4xIDIzIDkuNSAzNC45IDEzLjIgMi4yLjggMi4yLjggNC4zIDAgMTQuMy00LjEgMjguNC05LjIgNDIuMi0xNS40IDQxLjUgMTEuNyA3OC44IDMxLjcgMTE1LjYgNTN6bTEwLjUtMTIuNGMtMzUuOS0xOS41LTczLTM1LjktMTExLjktNDcuNiAzOC4xLTIwIDcxLjktNDcuMyAxMDMuNS03Ni43IDIuMiAxLjQgNC42IDIuNCA3LjYgMy4yIDAgLjguMyAxLjkuNSAyLjQtNC42IDIuNy03LjggNi4yLTUuOSAxMC4zIDIuMiAzLjggOC42IDcuNiAxNS4xIDguOSAyLjQgMi43IDUuMSA1LjEgOC4xIDYuOCAwIDEzLjgtLjMgMjcuNi0uOCA0MS4zbC4zLS4zYy05LjMgMTUuOS0xNS41IDM3LTE2LjUgNTEuN3ptMTA1LjkgNi4yYy0xMi43IDE5LjUtNDAgMzUuNy01OS4yIDM2LjUtMTkuMy45LTQwLjUtMTMuMi00MC41LTM3IDUuNy0yMy4yIDE4LjktNDkuNyAzMy41LTU0IDIyLjctNi45IDY5LjIgMjMuNCA2Ni4yIDU0LjV6TTM3Mi45IDc1LjJjLTMuOC03Mi4xLTEwMC44LTc5LjctMTI2LTIzLjUgNDQuNi0yNC4zIDkwLjMtMTUuNyAxMjYgMjMuNXpNNzQuOCA0MDcuMWMtMTUuNyAxLjYtNDkuNSAyNS40LTQ5LjUgNDMuMiAwIDExLjYgMTUuNyAxOS41IDMyLjIgMTQuOSAxMi4yLTMuMiAzMS4xLTE3LjYgMzUuOS0yNy4zIDYtMTEuNi0zLjctMzIuNy0xOC42LTMwLjh6bTIxNS45LTE3Ni4yYzI4LjYgMCA1MS45LTIxLjYgNTEuOS00OC40IDAtMzYuMS00MC41LTU4LjEtNzIuMi00NC4zIDkuNSAzIDE2LjUgMTEuNiAxNi41IDIxLjYgMCAyMy4zLTMzLjMgMzItNDYuNSAxMS4zLTcuMyAzNC4xIDE5LjQgNTkuOCA1MC4zIDU5Ljh6TTY4IDQ3NC4xYy41IDYuNSAxMi4yIDEyLjcgMjEuNiA5LjUgNi44LTIuNyAxNC42LTEwLjUgMTcuMy0xNi4yIDMtNy0xLjEtMjAtOS43LTE4LjQtOC45IDEuNi0yOS43IDE2LjctMjkuMiAyNS4xem00MzMuMi02N2MtMTQuOS0xLjktMjQuNiAxOS4yLTE4LjkgMzAuOCA0LjkgOS43IDI0LjEgMjQuMSAzNi4yIDI3LjMgMTYuNSA0LjYgMzIuMi0zLjIgMzIuMi0xNC45IDAtMTcuOC0zMy44LTQxLjYtNDkuNS00My4yek00NzguOCA0NDljLTguNC0xLjYtMTIuNCAxMS4zLTkuNSAxOC40IDIuNCA1LjcgMTAuMyAxMy41IDE3LjMgMTYuMiA5LjIgMy4yIDIxLjEtMyAyMS4zLTkuNS45LTguNC0yMC4yLTIzLjUtMjkuMS0yNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcmNpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTQuNzUgMTg4LjE5aC00NS45MlYzNDJoNDcuNDdjNjcuNjIgMCA4My4xMi01MS4zNCA4My4xMi03Ni45MSAwLTQxLjY0LTI2LjU0LTc2LjktODQuNjctNzYuOXpNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptLTgwLjc5IDM2MC43NmgtMjkuODR2LTIwNy41aDI5Ljg0em0tMTQuOTItMjMxLjE0YTE5LjU3IDE5LjU3IDAgMSAxIDE5LjU3LTE5LjU3IDE5LjY0IDE5LjY0IDAgMCAxLTE5LjU3IDE5LjU3ek0zMDAgMzY5aC04MVYxNjEuMjZoODAuNmM3Ni43MyAwIDExMC40NCA1NC44MyAxMTAuNDQgMTAzLjg1QzQxMCAzMTguMzkgMzY4LjM4IDM2OSAzMDAgMzY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPc2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNjYuNDRDMTAuMyAxMzAuNjQgMTA1LjQgMzQgMjIxLjggMTguMzRjMTM4LjgtMTguNiAyNTUuNiA3NS44IDI3OCAyMDEuMSAyMS4zIDExOC44LTQ0IDIzMC0xNTEuNiAyNzQtOS4zIDMuOC0xNC40IDEuNy0xOC03LjdxLTI2LjctNjkuNDUtNTMuNC0xMzljLTMuMS04LjEtMS0xMy4yIDctMTYuOCAyNC4yLTExIDM5LjMtMjkuNCA0My4zLTU1LjhhNzEuNDcgNzEuNDcgMCAwIDAtNjQuNS04Mi4yYy0zOS0zLjQtNzEuOCAyMy43LTc3LjUgNTkuNy01LjIgMzMgMTEuMSA2My43IDQxLjkgNzcuNyA5LjYgNC40IDExLjUgOC42IDcuOCAxOC40cS0yNi44NSA2OS45LTUzLjcgMTM5LjljLTIuNiA2LjktOC4zIDkuMy0xNS41IDYuNS01Mi42LTIwLjMtMTAxLjQtNjEtMTMwLjgtMTE5LTI0LjktNDkuMi0yNS4yLTg3LjctMjYuOC0xMDguN3ptMjAuOS0xLjljLjQgNi42LjYgMTQuMyAxLjMgMjIuMSA2LjMgNzEuOSA0OS42IDE0My41IDEzMSAxODMuMSAzLjIgMS41IDQuNC44IDUuNi0yLjNxMjIuMzUtNTguNjUgNDUtMTE3LjNjMS4zLTMuMy42LTQuOC0yLjQtNi43LTMxLjYtMTkuOS00Ny4zLTQ4LjUtNDUuNi04NiAxLTIxLjYgOS4zLTQwLjUgMjMuOC01Ni4zIDMwLTMyLjcgNzctMzkuOCAxMTUuNS0xNy42YTkxLjY0IDkxLjY0IDAgMCAxIDQ1LjIgOTAuNGMtMy42IDMwLjYtMTkuMyA1My45LTQ1LjcgNjkuOC0yLjcgMS42LTMuNSAyLjktMi4zIDZxMjIuOCA1OC44IDQ1LjIgMTE3LjdjMS4yIDMuMSAyLjQgMy44IDUuNiAyLjMgMzUuNS0xNi42IDY1LjItNDAuMyA4OC4xLTcyIDM0LjgtNDguMiA0OS4xLTEwMS45IDQyLjMtMTYxLTEzLjctMTE3LjUtMTE5LjQtMjE0LjgtMjU1LjUtMTk4LTEwNi4xIDEzLTE5NS4zIDEwMi41LTE5Ny4xIDIyNS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWRsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk3LjkgMEwyOTggLjAwMUMzMDUuNiAuMTA3OCAzMTIuNCA0LjcyIDMxNS41IDExLjc4TDQ0Ny41IDMyMC4zTDQ0Ny44IDMyMC4yTDQ0OCAzMjAuNkw0NDUuMiAzMzAuNkw0MDIuMyA0ODguNkMzOTguNiA1MDQuOCAzODIuNiA1MTQuOSAzNjYuNSA1MTEuMkwyOTguMSA0OTUuNkwyMjkuNiA1MTEuMkMyMTMuNSA1MTQuOSAxOTcuNSA1MDQuOCAxOTMuOCA0ODguNkwxNTAuOSAzMzAuNkwxNDguMiAzMjAuNkwxNDguMyAzMjAuMkwyODAuNCAxMS43OEMyODMuNCA0Ljc5NyAyOTAuMyAuMTgzNyAyOTcuOSAuMDAwNkwyOTcuOSAwek0xNjAuMSAzMjIuMUwyOTEuMSAzNjEuMkwyOTggNDgzLjdMMzA1LjkgMzYyLjJMNDM2LjUgMzIyLjlMNDM2LjcgMzIyLjhMMzA1LjcgMzQ3LjlMMjk3LjEgMjcuNzJMMjkxLjkgMzQ3LjlMMTYwLjEgMzIyLjF6TTQyNiAyMjIuNkw1MjAuNCAxODEuNkg1OTQuMkw0MzcuMiA0MjkuMkw0NjguOCAzMjAuMkw0MjYgMjIyLjZ6TTU5Ny41IDE4MS40TDYzOC45IDI1Ny42QzY0Mi45IDI2NS4xIDYzNSAyNzMuNSA2MjcuMyAyNjkuOEw1NzkuNyAyNDcuMUw1OTcuNSAxODEuNHpNMTI3LjMgMzE4LjVMMTU4LjcgNDMwTDEuNjEgMTU0LjVDLTQuMjkyIDE0NC4xIDcuMTI4IDEzMi41IDE3LjU1IDEzOC4zTDE2OS40IDIyMi41TDEyNy4zIDMxOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWdlNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNTA0QzExMSA1MDQgMCAzOTMgMCAyNTZTMTExIDggMjQ4IDhjMjAuOSAwIDQxLjMgMi42IDYwLjcgNy41TDQyLjMgMzkySDI0OHYxMTJ6bTAtMTQzLjZWMTQ2LjhMOTguNiAzNjAuNEgyNDh6bTk2IDMxLjZ2OTIuN2M0NS43LTE5LjIgODQuNS01MS43IDExMS40LTkyLjdIMzQ0em01Ny40LTEzOC4ybC0yMS4yIDguNCAyMS4yIDguM3YtMTYuN3ptLTIwLjMgNTQuNWMtNi43IDAtOCA2LjMtOCAxMi45djcuN2gxNi4ydi0xMGMwLTUuOS0yLjMtMTAuNi04LjItMTAuNnpNNDk2IDI1NmMwIDM3LjMtOC4yIDcyLjctMjMgMTA0LjRIMzQ0VjI3LjNDNDMzLjMgNjQuOCA0OTYgMTUzLjEgNDk2IDI1NnpNMzYwLjQgMTQzLjZoNjguMlY5NmgtMTMuOXYzMi42aC0xMy45Vjk5aC0xMy45djI5LjZoLTEyLjdWOTZoLTEzLjl2NDcuNnptNjguMSAxODUuM0g0MDJ2LTExYzAtMTUuNC01LjYtMjUuMi0yMC45LTI1LjItMTUuNCAwLTIwLjcgMTAuNi0yMC43IDI1Ljl2MjUuM2g2OC4ydi0xNXptMC0xMDNsLTY4LjIgMjkuN1YyNjhsNjguMiAyOS41di0xNi42bC0xNC40LTUuN3YtMjYuNWwxNC40LTUuOXYtMTYuOXptLTQuOC02OC41aC0zNS42VjE4NEg0MDJ2LTEyLjJoMTFjOC42IDE1LjggMS4zIDM1LjMtMTguNiAzNS4zLTIyLjUgMC0yOC4zLTI1LjMtMTUuNS0zNy43bC0xMS42LTEwLjZjLTE2LjIgMTcuNS0xMi4yIDYzLjkgMjcuMSA2My45IDM0IDAgNDQuNy0zNS45IDI5LjMtNjUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFnZWxpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMTIuN2MtNTUuMSAxMzYuNy0xODcuMSA1NC0xODcuMSA1NC00MC41IDgxLjgtMTA3LjQgMTM0LjQtMTg0LjYgMTM0LjctMTYuMSAwLTE2LjYtMjQuNCAwLTI0LjQgNjQuNC0uMyAxMjAuNS00Mi43IDE1Ny4yLTExMC4xLTQxLjEgMTUuOS0xMTguNiAyNy45LTE2MS42LTgyLjIgMTA5LTQ0LjkgMTU5LjEgMTEuMiAxNzguMyA0NS41IDkuOS0yNC40IDE3LTUwLjkgMjEuNi03OS43IDAgMC0xMzkuNyAyMS45LTE0OS41LTk4LjEgMTE5LjEtNDcuOSAxNTIuNiA3Ni43IDE1Mi42IDc2LjcgMS42LTE2LjcgMy4zLTUyLjYgMy4zLTUzLjQgMCAwLTEwNi4zLTczLjctMzguMS0xNjUuMiAxMjQuNiA0MyA2MS40IDE2Mi40IDYxLjQgMTYyLjQuNSAxLjYuNSAyMy44IDAgMzMuNCAwIDAgNDUuMi04OSAxMzYuNC01Ny41LTQuMiAxMzQtMTQxLjkgMTA2LjQtMTQxLjkgMTA2LjQtNC40IDI3LjQtMTEuMiA1My40LTIwIDc3LjUgMCAwIDgzLTkxLjggMTcyLTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxmZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0LjkgMTkzLjljMC00Ny40LTU1LjItNDQuMi05NS40LTI5LjgtMS4zIDM5LjQtMi41IDgwLjctMyAxMTkuOC43IDIuOCAyLjYgNi4yIDE1LjEgNi4yIDM2LjggMCA4My40LTQyLjggODMuMy05Ni4yem0tMTk0LjUgNzIuMmMuMiAwIDYuNS0yLjcgMTEuMi0yLjcgMjYuNiAwIDIwLjcgNDQuMS0xNC40IDQ0LjEtMjEuNSAwLTM3LjEtMTguMS0zNy4xLTQzIDAtNDIgNDIuOS05NS42IDEwMC43LTEyNi41IDEtMTIuNCAzLTIyIDEwLjUtMjguMiAxMS4yLTkgMjYuNi0zLjUgMjkuNSAxMS4xIDcyLjItMjIuMiAxMzUuMiAxIDEzNS4yIDcyIDAgNzcuOS03OS4zIDE1Mi42LTE0MC4xIDEzOC4yLS4xIDM5LjQuOSA3NC40IDIuNyAxMDB2LjJjLjIgMy40LjYgMTIuNS01LjMgMTkuMS05LjYgMTAuNi0zMy40IDEwLTM2LjQtMjIuMy00LjEtNDQuNC4yLTIwNi4xIDEuNC0yNDIuNS0yMS41IDE1LTU4LjUgNTAuMy01OC41IDc1LjkuMiAyLjUuNCA0IC42IDQuNnpNOCAxODEuMXMtLjEgMzcuNCAzOC40IDM3LjRoMzBsMjIuNCAyMTcuMnMwIDQ0LjMgNDQuNyA0NC4zaDI4OC45czQ0LjctLjQgNDQuNy00NC4zbDIyLjQtMjE3LjJoMzBzMzguNCAxLjIgMzguNC0zNy40YzAgMCAuMS0zNy40LTM4LjQtMzcuNGgtMzAuMWMtNy4zLTI1LjYtMzAuMi03NC4zLTExOS40LTc0LjNoLTI4VjUwLjNzLTIuNy0xOC40LTIxLjEtMTguNGgtODUuOHMtMjEuMSAwLTIxLjEgMTguNHYxOS4xaC0yOC4xcy0xMDUgNC4yLTEyMC41IDc0LjNoLTI5UzggMTQyLjUgOCAxODEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF0cmVvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODkuNyAxNTMuOGMtLjEtNjUuNC01MS0xMTktMTEwLjctMTM4LjNDMzA0LjgtOC41IDIwNy01IDEzNi4xIDI4LjRDNTAuMyA2OC45IDIzLjMgMTU3LjcgMjIuMyAyNDYuMkMyMS41IDMxOSAyOC43IDUxMC42IDEzNi45IDUxMmM4MC4zIDEgOTIuMy0xMDIuNSAxMjkuNS0xNTIuM2MyNi40LTM1LjUgNjAuNS00NS41IDEwMi40LTU1LjljNzItMTcuOCAxMjEuMS03NC43IDEyMS0xNTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyOTUuOWMtMy41IDE5LjItMTcuNCAxMDguNy0yMS41IDEzNC0uMyAxLjgtMSAyLjUtMyAyLjVIMTIuM2MtNy42IDAtMTMuMS02LjYtMTIuMS0xMy45TDU4LjggNDYuNmMxLjUtOS42IDEwLjEtMTYuOSAyMC0xNi45IDE1Mi4zIDAgMTY1LjEtMy43IDIwNCAxMS40IDYwLjEgMjMuMyA2NS42IDc5LjUgNDQgMTQwLjMtMjEuNSA2Mi42LTcyLjUgODkuNS0xNDAuMSA5MC4zLTQzLjQuNy02OS41LTctNzUuMyAyNC4yek0zNTcuMSAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjloNjMuNWM4LjYgMCAxNS43LTYuMyAxNy40LTE0LjkuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyYnl0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDUuMzE0LDI4NC41NzhIMjQ2LjZWMzgzLjNoNTguNzExcTI0LjQyMywwLDM4LjE5My0xMy43N3QxMy43Ny0zNi4xMXEwLTIxLjgyNi0xNC4wMzItMzUuMzM1VDMwNS4zMTQsMjg0LjU3OFpNMTQ5LjQzNSwxMjguN0g5MC43MjR2OTguNzIzaDU4LjcxMXEyNC40MiwwLDM4LjE5LTEzLjc3M3QxMy43Ny0zNi4xMDdxMC0yMS44MjYtMTQuMDI5LTM1LjMzOFQxNDkuNDM1LDEyOC43Wk0zNjYuNjQ3LDMySDgxLjM1M0E4MS40NDUsODEuNDQ1LDAsMCwwLDAsMTEzLjM1MlYzOTguNjQ3QTgxLjQ0NSw4MS40NDUsMCwwLDAsODEuMzUzLDQ4MEgzNjYuNjQ3QTgxLjQ0NSw4MS40NDUsMCwwLDAsNDQ4LDM5OC42NDdWMTEzLjM1MkE4MS40NDUsODEuNDQ1LDAsMCwwLDM2Ni42NDcsMzJabTYzLjYzNSwzNjYuNjQ3YTYzLjcwNiw2My43MDYsMCwwLDEtNjMuNjM1LDYzLjYzNUg4MS4zNTNhNjMuNzA2LDYzLjcwNiwwLDAsMS02My42MzUtNjMuNjM1VjExMy4zNTJBNjMuNzA2LDYzLjcwNiwwLDAsMSw4MS4zNTMsNDkuNzE4SDM2Ni42NDdhNjMuNzA2LDYzLjcwNiwwLDAsMSw2My42MzUsNjMuNjM0Wk0zMDUuMzE0LDEyOC43SDI0Ni42djk4LjcyM2g1OC43MTFxMjQuNDIzLDAsMzguMTkzLTEzLjc3M3QxMy43Ny0zNi4xMDdxMC0yMS44MjYtMTQuMDMyLTM1LjMzOFQzMDUuMzE0LDEyOC43WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJpc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcwIDYzLjZDMzMxLjQgMjIuNiAyODAuNSAwIDIyNi42IDAgMTExLjkgMCAxOC41IDk2LjIgMTguNSAyMTQuNGMwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43QzEzNy44IDQ1NS41IDE5Mi42IDUxMiAyMjYuNiA1MTJjNDEuNiAwIDExMi45LTk0LjIgMTIwLjktMTA1IDI0LjYtMzMuMSA4Mi0xMTguMyA4Mi0xOTIuNiAwLTU2LjUtMjEuMS0xMTAuMS01OS41LTE1MC44ek0yMjYuNiA0OTMuOWMtNDIuNSAwLTE5MC0xNjcuMy0xOTAtMjc5LjQgMC0xMDcuNCA4My45LTE5Ni4zIDE5MC0xOTYuMyAxMDAuOCAwIDE4NC43IDg5IDE4NC43IDE5Ni4zLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjh2LjRjMCAyNC41IDIwLjEgNDQuNCA0NC44IDQ0LjQgMjQuNyAwIDQ0LjgtMTkuOSA0NC44LTQ0LjQgMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhhYnJpY2F0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40LjUuMiAyOC45LjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43LjRsLTguMSAxOS44Yy0uNiAxLjQgMjEgMjEgMjEgMjFsLjEgMTIuOXMtMjEuNyAxOS44LTIxLjEgMjEuMmw5LjUgMjBjLjYgMS40IDI5LjUuNSAyOS41LjVsOS40IDkuM3MtLjIgMzEuOCAxLjIgMzIuM2wyMC4xIDguM2MxLjQuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEuMnMyMC41IDIzLjggMjEuOCAyMy4zbDIwLTcuNWMxLjQtLjYtLjItMzIuMS0uMi0zMi4xbDkuMS05LjFzMjkuMi45IDI5LjctLjVsOC4xLTE5LjhjLjctMS4xLTIwLjktMjAuNy0yMC45LTIwLjd6bS00NC45LTguN2MuNyAxNy4xLTEyLjggMzEuNi0zMC4xIDMyLjQtMTcuMy44LTMyLjEtMTIuNS0zMi44LTI5LjYtLjctMTcuMSAxMi44LTMxLjYgMzAuMS0zMi4zIDE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEuMWMtNzUuMS03My4zLTE5NS40LTcyLjgtMjY5LjggMS42LTUwLjkgNTEtMjcuOCAyNy45LTk1LjcgOTUuMy0yMi4zIDIyLjMtMjIuMyA1OC43IDAgODEgNjkuOSA2OS40IDQ2LjQgNDYgOTcuNCA5N2wuMS0uMWM3NS4xIDczLjMgMTk1LjQgNzIuOSAyNjkuOC0xLjYgNTEtNTAuOSAyNy45LTI3LjkgOTUuMy05NS4zIDIyLjMtMjIuMyAyMi4zLTU4LjcgMC04MXpNMTQwLjQgMzYzLjhjLTU5LjYtNTkuNS01OS42LTE1NiAwLTIxNS41IDU5LjUtNTkuNiAxNTYtNTkuNSAyMTUuNiAwIDU5LjUgNTkuNSA1OS42IDE1NiAwIDIxNS42LTU5LjYgNTkuNS0xNTYgNTkuNC0yMTUuNi0uMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvZW5peEZyYW1ld29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNC4xLS44LjItMS4xLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjdDMjc5LjggMTk0LjUgMjYyLjEgNDcuNCAxMzguNSAzNy45IDk0LjIgMzQuNSAzOS4xIDQ2IDIuMiA3Mi45Yy0uOC42LTEuNSAxLjItMi4yIDEuOC4xLjIuMS4zLjIuNS44IDAgMS42LS4xIDIuNC0uMiA2LjMtMSAxMi41LS44IDE4LjcuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44em0xOTYuOSAzNTAuNWMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xLjItLjMuMy0uNC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yem0xNzQuOC0yNTJjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYuMS0uMi0uNC0uNC0uOS0uNS0xLjMtNS0yMi0yOS45LTQzLjgtNjcuNi0yOS45LTUwLjIgMTguNi0xMzAuNCA5LjctMTc2LjktNDgtLjctLjktMi40LTEuNy0xLjMtMy4yLjEtLjIgMi4xLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6bTEwMi43IDExNy41Yy0zMi40LjItMzMuOCA1MC4xLTEwMy42IDY0LjQtMTguMiAzLjctMzguNyA0LjYtNDQuOSA0LjJ2LS40YzIuOC0xLjUgMTQuNy0yLjYgMjkuNy0xNi42IDcuOS03LjMgMTUuMy0xNS4xIDIyLjgtMjIuOSAxOS41LTIwLjIgNDEuNC00Mi4yIDgxLjktMzkgMjMuMSAxLjggMjkuMyA4LjIgMzYuMSAxMi43LjMuMi40LjUuNy45LS41IDAtLjcuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMS4yLS4xLjQtLjIuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yLjEtLjMuMS0uNSAyNC45IDMuOCAzNi40IDUuMSA1NS41LTUuOCAyMi4zLTEyLjkgNDAuMS0yNi42IDcxLjMtMzEgMjkuNi00LjEgNTEuMyAyLjUgNzAuOSAxNi45ek0yNjguNiA5Ny4zYy0uNi0uNi0xLjEtMS4yLTIuMS0yLjMgNy42IDAgMjkuNy0xLjIgNTMuNCA4LjQgMTkuNyA4IDMyLjIgMjEgNTAuMiAzMi45IDExLjEgNy4zIDIzLjQgOS4zIDM2LjQgOC4xIDQuMy0uNCA4LjUtMS4yIDEyLjgtMS43LjQtLjEuOSAwIDEuNS4zLS42LjQtMS4yLjktMS44IDEuMi04LjEgNC0xNi43IDYuMy0yNS42IDcuMS0yNi4xIDIuNi01MC4zLTMuNy03My40LTE1LjQtMTkuMy05LjktMzYuNC0yMi45LTUxLjQtMzguNnpNNjQwIDMzNS43Yy0zLjUgMy4xLTIyLjcgMTEuNi00Mi43IDUuMy0xMi4zLTMuOS0xOS41LTE0LjktMzEuNi0yNC4xLTEwLTcuNi0yMC45LTcuOS0yOC4xLTguNC42LS44LjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUuMS0uMS4yIDAgLjQuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43LjUtLjIuOC0uNCAxLjEtLjQgMTMuMS4xIDI2LjEuNyAzOC45IDMuOSAyNS4zIDYuNCAzNSAyNS40IDQxLjYgMzUuMyAzLjIgNC44IDcuMyA4LjMgMTIuMyAxMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9lbml4U3F1YWRyb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjMuMzhDMTQyLjQ5IDI3LjI1IDIwMS41NSA3LjMxIDI2MC41MSA4LjgxYzI5LjU4LS4zOCA1OS4xMSA1LjM3IDg2LjkxIDE1LjMzLTI0LjEzLTQuNjMtNDktNi4zNC03My4zOC0yLjQ1QzIzMS4xNyAyNyAxOTEgNDguODQgMTYyLjIxIDgwLjg3YzUuNjctMSAxMC43OC0zLjY3IDE2LTUuODYgMTguMTQtNy44NyAzNy40OS0xMy4yNiA1Ny4yMy0xNC44MyAxOS43NC0yLjEzIDM5LjY0LS40MyA1OS4yOCAxLjkyLTE0LjQyIDIuNzktMjkuMTIgNC41Ny00MyA5LjU5LTM0LjQzIDExLjA3LTY1LjI3IDMzLjE2LTg2LjMgNjIuNjMtMTMuOCAxOS43MS0yMy42MyA0Mi44Ni0yNC42NyA2Ny4xMy0uMzUgMTYuNDkgNS4yMiAzNC44MSAxOS44MyA0NGE1My4yNyA1My4yNyAwIDAgMCAzNy41MiA2Ljc0YzE1LjQ1LTIuNDYgMzAuMDctOC42NCA0My42LTE2LjMzIDExLjUyLTYuODIgMjIuNjctMTQuNTUgMzItMjQuMjUgMy43OS0zLjIyIDIuNTMtOC40NSAyLjYyLTEyLjc5LTIuMTItLjM0LTQuMzgtMS4xMS02LjMuM2EyMDMgMjAzIDAgMCAxLTM1LjgyIDE1LjM3Yy0yMCA2LjE3LTQyLjE2IDguNDYtNjIuMS43OCAxMi43OSAxLjczIDI2LjA2LjMxIDM3Ljc0LTUuNDQgMjAuMjMtOS43MiAzNi44MS0yNS4yIDU0LjQ0LTM4Ljc3YTUyNi41NyA1MjYuNTcgMCAwIDEgODguOS01NS4zMWMyNS43MS0xMiA1Mi45NC0yMi43OCA4MS41Ny0yNC4xMi0xNS42MyAxMy43Mi0zMi4xNSAyNi41Mi00Ni43OCA0MS4zOC0xNC41MSAxNC0yNy40NiAyOS41LTQwLjExIDQ1LjE4LTMuNTIgNC42LTguOTUgNi45NC0xMy41OCAxMC4xNmExNTAuNyAxNTAuNyAwIDAgMC01MS44OSA2MC4xYy05LjMzIDE5LjY4LTE0LjUgNDEuODUtMTEuNzcgNjMuNjUgMS45NCAxMy42OSA4LjcxIDI3LjU5IDIwLjkgMzQuOTEgMTIuOSA4IDI5LjA1IDguMDcgNDMuNDggNS4xIDMyLjgtNy40NSA2MS40My0yOC44OSA4MS01NS44NCAyMC40NC0yNy41MiAzMC41Mi02Mi4yIDI5LjE2LTk2LjM1LS41Mi03LjUtMS41Ny0xNS0xLjY2LTIyLjQ5IDggMTkuNDggMTQuODIgMzkuNzEgMTYuNjUgNjAuODMgMiAxNC4yOC43NSAyOC43Ni0xLjYyIDQyLjktMS45MSAxMS01LjY3IDIxLjUxLTcuNzggMzIuNDNhMTY1IDE2NSAwIDAgMCAzOS4zNC04MS4wNyAxODMuNjQgMTgzLjY0IDAgMCAwLTE0LjIxLTEwNC42NGMyMC43OCAzMiAzMi4zNCA2OS41OCAzNS43MSAxMDcuNDguNDkgMTIuNzMuNDkgMjUuNTEgMCAzOC4yM0EyNDMuMjEgMjQzLjIxIDAgMCAxIDQ4MiAzNzEuMzRjLTI2LjEyIDQ3LjM0LTY4IDg1LjYzLTExNy4xOSAxMDgtNzguMjkgMzYuMjMtMTc0LjY4IDMxLjMyLTI0OC0xNC42OEEyNDguMzQgMjQ4LjM0IDAgMCAxIDI1LjM2IDM2NiAyMzguMzQgMjM4LjM0IDAgMCAxIDAgMjczLjA4di0zMS4zNEMzLjkzIDE3MiA0MC44NyAxMDUuODIgOTYgNjMuMzhtMjIyIDgwLjMzYTc5LjEzIDc5LjEzIDAgMCAwIDE2LTQuNDhjNS0xLjc3IDkuMjQtNS45NCAxMC4zMi0xMS4yMi04Ljk2IDQuOTktMTcuOTggOS45Mi0yNi4zMiAxNS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDEwNC41YzE3MS40IDAgMzAzLjIgNzIuMiAzMDMuMiAxNTEuNVM0OTEuMyA0MDcuNSAzMjAgNDA3LjVjLTE3MS40IDAtMzAzLjItNzIuMi0zMDMuMi0xNTEuNVMxNDguNyAxMDQuNSAzMjAgMTA0LjVtMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZzMTQzLjMgMTY4LjMgMzIwIDE2OC4zUzY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNoMzYuN2w4LjctNDQuOGM0MS4xIDAgNjYuNiAzIDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2gtNzAuN0w5Ny40IDM1MC4zem0xODUuNy0yMTMuNmgzNi41bC04LjcgNDQuOGMzMS41IDAgNjAuNy0yLjMgNzQuOCAxMC43IDE0LjggMTMuNiA3LjcgMzEtOC4zIDExMy4xaC0zN2MxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNmgtMzYuNWwzMi43LTE2OC42ek01MDUgMjQyLjVjLTggNDEuMS0zNi43IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOC4yIDAgNjMuOC00LjEgNTYuNCAzNC4zek0zODQuMiAzNTAuM0g0MjFsOC43LTQ0LjhjNDMuMiAwIDY3LjEgMi41IDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN0g0MTdsLTMyLjggMTY4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0Ljl6bTEzNS45IDE5Ny45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjdDNTQ4LjMgMjkuMyA1NTQgMTYuMSA1NTQuNiAybC0yIDIuNmMtMjguNCA1MC0zMyA2My4yLTgxLjMgMTAwLTMxLjkgMjQuNC02OS4yIDQwLjItMTA2LjYgNTQuNmwtNi4zLS4zdi0yMS44Yy0xOS42IDEuNi0xOS43LTE0LjYtMzEuNi0yMy0xOC43IDIwLjYtMzEuNiA0MC44LTU4LjkgNTEuMS0xMi43IDQuOC0xOS42IDEwLTI1LjkgMjEuOCAzNC45LTE2LjQgOTEuMi0xMy41IDk4LjgtMTB6TTU1NS41IDBsLS42IDEuMS0uMy45LjYtLjZ6bS01OS4yIDM4Mi4xYy0zMy45LTU2LjktNzUuMy0xMTguNC0xNTAtMTE1LjVsLS4zLTZjLTEuMS0xMy41IDMyLjggMy4yIDM1LjEtMzFsLTE0LjQgNy4yYy0xOS44LTQ1LjctOC42LTU0LjMtNjUuNS01NC4zLTE0LjcgMC0yNi43IDEuNy00MS40IDQuNiAyLjkgMTguNiAyLjIgMzYuNy0xMC45IDUwLjNsMTkuNSA1LjVjLTEuNyAzLjItMi45IDYuMy0yLjkgOS44IDAgMjEgNDIuOCAyLjkgNDIuOCAzMy42IDAgMTguNC0zNi44IDYwLjEtNTQuOSA2MC4xLTggMC01My43LTUwLTUzLjQtNjAuMWwuMy00LjYgNTIuMy0xMS41YzEzLTIuNiAxMi4zLTIyLjctMi45LTIyLjctMy43IDAtNDMuMSA5LjItNDkuNCAxMC42LTItNS4yLTcuNS0xNC4xLTEzLjgtMTQuMS0zLjIgMC02LjMgMy4yLTkuNSA0LTkuMiAyLjYtMzEgMi45LTIxLjUgMjAuMUwxNS45IDI5OC41Yy01LjUgMS4xLTguOSA2LjMtOC45IDExLjggMCA2IDUuNSAxMC45IDExLjUgMTAuOSA4IDAgMTMxLjMtMjguNCAxNDcuNC0zMi4yIDIuNiAzLjIgNC42IDYuMyA3LjggOC42IDIwLjEgMTQuNCA1OS44IDg1LjkgNzYuNCA4NS45IDI0LjEgMCA1OC0yMi40IDcxLjMtNDEuOSAzLjItNC4zIDYuOS03LjUgMTIuNC02LjkuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXptLTE5Ni4yIDQ2LjF2MjcuMmwxMS44LTMuNC0yLjktMjMuOHptLTY4LjctMTUwLjRsMjQuMSA2MS4yIDIxLTEzLjgtMzEuMy01MC45em04NC40IDE1NC45bDIgMTIuNGM5LTEuNSA1OC40LTYuNiA1OC40LTE0LjEgMC0xLjQtLjYtMy4yLS45LTQuNi0yNi44IDAtMzYuOSAzLjgtNTkuNSA2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlckhhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOS42IDIuOC44IDMuOSAyLjIgNS4zIDYuOSAzLjEgMTAuOGwtNTMuOSA5NS44Yy0yLjUgNC43LTcuOCA3LjItMTMuMSA2LjEtMTI2LjgtMjMuOC0yMjYuOSAxNy4zLTMxOC45IDE4LjZDMjQuMSA0ODggMCA0NTMuNCAwIDQ1MS44YzAtMS4xLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zQzE3OC40IDI5NC41IDI0NCAyNDUuNCAzMTUuNCAyNDUuNGMwIDAgNzEuNyAwIDkwLjYgNjEuOSAyMi44LTM5LjcgMjguMy00OS4yIDI4LjMtNDkuMiA1LjMtOS40IDM1LTc3LjIgODYuNC0xNDEuNCA1MS41LTY0IDkwLjQtNzkuOSAxMTkuMy05MS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWVkUGlwZXJQcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUuMyAxNzQuNmMwIDIxLjEtMTQuMiAzOC4xLTMxLjcgMzguMS03LjEgMC0xMi44LTEuMi0xNy4yLTMuN3YtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJ2NjhjNC40IDIuNSAxMC4xIDMuNyAxNy4yIDMuNyAxNy40IDAgMzEuNy0xNi45IDMxLjctMzcuOCAwLTIxLjEtMTQuMy0zOC4xLTMxLjctMzguMXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42IDAtNDQtMzMuMi03OS42LTc0LjItNzkuNi0xMiAwLTI0LjEgMy4yLTM0LjYgOC44aC00NS43VjMxMWw1MS44LTEwLjF2LTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40LjItOS42LjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhWNDE2bDUxLjgtMTAuMXYtNTAuNmM4LjYgMy4yIDE4LjIgNC43IDI4LjcgNC43IDQwLjggMCA3NC0zNS42IDc0LTc5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTUuOTMsMjMuMkM0MjkuMjMsMzAsMzg3Ljc5LDUxLjY5LDM0MS4zNSw5MC42NkEyMDYsMjA2LDAsMCwwLDI0MCw2NEMxMjUuMTMsNjQsMzIsMTU3LjEyLDMyLDI3MnM5My4xMywyMDgsMjA4LDIwOCwyMDgtOTMuMTMsMjA4LTIwOGEyMDcuMjUsMjA3LjI1LDAsMCwwLTU4Ljc1LTE0NC44MSwxNTUuMzUsMTU1LjM1LDAsMCwwLTE3LDI3LjRBMTc2LjE2LDE3Ni4xNiwwLDAsMSw0MTcuMSwyNzJjMCw5Ny42Ni03OS40NCwxNzcuMTEtMTc3LjA5LDE3Ny4xMWExNzUuODEsMTc1LjgxLDAsMCwxLTg3LjYzLTIzLjRjODIuOTQtMTA3LjMzLDE1MC43OS0zNy43NywxODQuMzEtMjI2LjY1LDUuNzktMzIuNjIsMjgtOTQuMjYsMTI2LjIzLTE2MC4xOEM0NzEsMzMuNDUsNDY1LjM1LDIwLjgsNDU1LjkzLDIzLjJaTTEyNSw0MDYuNEExNzYuNjYsMTc2LjY2LDAsMCwxLDYyLjksMjcyQzYyLjksMTc0LjM0LDE0Mi4zNSw5NC45LDI0MCw5NC45YTE3NCwxNzQsMCwwLDEsNzYuNjMsMTcuNzVDMjUwLjY0LDE3NC43NiwxODkuNzcsMjY1LjUyLDEyNSw0MDYuNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGludGVyZXN0UCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDQgNi41QzEwMS40IDYuNSAwIDc0LjkgMCAxODUuNiAwIDI1NiAzOS42IDI5NiA2My42IDI5NmM5LjkgMCAxNS42LTI3LjYgMTUuNi0zNS40IDAtOS4zLTIzLjctMjkuMS0yMy43LTY3LjggMC04MC40IDYxLjItMTM3LjQgMTQwLjQtMTM3LjQgNjguMSAwIDExOC41IDM4LjcgMTE4LjUgMTA5LjggMCA1My4xLTIxLjMgMTUyLjctOTAuMyAxNTIuNy0yNC45IDAtNDYuMi0xOC00Ni4yLTQzLjggMC0zNy44IDI2LjQtNzQuNCAyNi40LTExMy40IDAtNjYuMi05My45LTU0LjItOTMuOSAyNS44IDAgMTYuOCAyLjEgMzUuNCA5LjYgNTAuNy0xMy44IDU5LjQtNDIgMTQ3LjktNDIgMjA5LjEgMCAxOC45IDIuNyAzNy41IDQuNSA1Ni40IDMuNCAzLjggMS43IDMuNCA2LjkgMS41IDUwLjQtNjkgNDguNi04Mi41IDcxLjQtMTcyLjggMTIuMyAyMy40IDQ0LjEgMzYgNjkuMyAzNiAxMDYuMiAwIDE1My45LTEwMy41IDE1My45LTE5Ni44QzM4NCA3MS4zIDI5OC4yIDYuNSAyMDQgNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaW50ZXJlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDgtMjUuNiAwLTUwLjItMy45LTczLjQtMTEuMSAxMC4xLTE2LjUgMjUuMi00My41IDMwLjgtNjUgMy0xMS42IDE1LjQtNTkgMTUuNC01OSA4LjEgMTUuNCAzMS43IDI4LjUgNTYuOCAyOC41IDc0LjggMCAxMjguNy02OC44IDEyOC43LTE1NC4zIDAtODEuOS02Ni45LTE0My4yLTE1Mi45LTE0My4yLTEwNyAwLTE2My45IDcxLjgtMTYzLjkgMTUwLjEgMCAzNi40IDE5LjQgODEuNyA1MC4zIDk2LjEgNC43IDIuMiA3LjIgMS4yIDguMy0zLjMuOC0zLjQgNS0yMC4zIDYuOS0yOC4xLjYtMi41LjMtNC43LTEuNy03LjEtMTAuMS0xMi41LTE4LjMtMzUuMy0xOC4zLTU2LjYgMC01NC43IDQxLjQtMTA3LjYgMTEyLTEwNy42IDYwLjkgMCAxMDMuNiA0MS41IDEwMy42IDEwMC45IDAgNjcuMS0zMy45IDExMy42LTc4IDExMy42LTI0LjMgMC00Mi42LTIwLjEtMzYuNy00NC44IDctMjkuNSAyMC41LTYxLjMgMjAuNS04Mi42IDAtMTktMTAuMi0zNC45LTMxLjQtMzQuOS0yNC45IDAtNDQuOSAyNS43LTQ0LjkgNjAuMiAwIDIyIDcuNCAzNi44IDcuNCAzNi44cy0yNC41IDEwMy44LTI5IDEyMy4yYy01IDIxLjQtMyA1MS42LS45IDcxLjJDNjUuNCA0NTAuOSAwIDM2MS4xIDAgMjU2IDAgMTE5IDExMSA4IDI0OCA4czI0OCAxMTEgMjQ4IDI0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Mi40IDI5Mi41QzI0Ny44IDI4Ny4xIDI1Ny4xIDI4Ny4xIDI2Mi41IDI5Mi41TDMzOS41IDM2OS41QzM1My43IDM4My43IDM3Mi42IDM5MS41IDM5Mi42IDM5MS41SDQwNy43TDMxMC42IDQ4OC42QzI4MC4zIDUxOC4xIDIzMS4xIDUxOC4xIDIwMC44IDQ4OC42TDEwMy4zIDM5MS4ySDExMi42QzEzMi42IDM5MS4yIDE1MS41IDM4My40IDE2NS43IDM2OS4yTDI0Mi40IDI5Mi41ek0yNjIuNSAyMTguOUMyNTYuMSAyMjQuNCAyNDcuOSAyMjQuNSAyNDIuNCAyMTguOUwxNjUuNyAxNDIuMkMxNTEuNSAxMjcuMSAxMzIuNiAxMjAuMiAxMTIuNiAxMjAuMkgxMDMuM0wyMDAuNyAyMi43NkMyMzEuMS03LjU4NiAyODAuMy03LjU4NiAzMTAuNiAyMi43Nkw0MDcuOCAxMTkuOUgzOTIuNkMzNzIuNiAxMTkuOSAzNTMuNyAxMjcuNyAzMzkuNSAxNDEuOUwyNjIuNSAyMTguOXpNMTEyLjYgMTQyLjdDMTI2LjQgMTQyLjcgMTM5LjEgMTQ4LjMgMTQ5LjcgMTU4LjFMMjI2LjQgMjM0LjhDMjMzLjYgMjQxLjEgMjQzIDI0NS42IDI1Mi41IDI0NS42QzI2MS45IDI0NS42IDI3MS4zIDI0MS4xIDI3OC41IDIzNC44TDM1NS41IDE1Ny44QzM2NS4zIDE0OC4xIDM3OC44IDE0Mi41IDM5Mi42IDE0Mi41SDQzMC4zTDQ4OC42IDIwMC44QzUxOC45IDIzMS4xIDUxOC45IDI4MC4zIDQ4OC42IDMxMC42TDQzMC4zIDM2OC45SDM5Mi42QzM3OC44IDM2OC45IDM2NS4zIDM2My4zIDM1NS41IDM1My41TDI3OC41IDI3Ni41QzI2NC42IDI2Mi42IDI0MC4zIDI2Mi42IDIyNi40IDI3Ni42TDE0OS43IDM1My4yQzEzOS4xIDM2MyAxMjYuNCAzNjguNiAxMTIuNiAzNjguNkg4MC43OEwyMi43NiAzMTAuNkMtNy41ODYgMjgwLjMtNy41ODYgMjMxLjEgMjIuNzYgMjAwLjhMODAuNzggMTQyLjdIMTEyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpeGl2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptMTcxLjUgODRjNDEgMCA3Ni4zIDEyLjkgMTAxLjQgMzUuMmwwIDBjMjUuMiAyMi4yIDM5LjggNTQuMSAzOS44IDg4LjhjLjEgMzUuMy0xNi42IDY2LjMtNDIuNCA4N2MtMjUuOSAyMC44LTYwLjYgMzIuNC05OC44IDMyLjRjLTQzLjUgMC04My44LTE2LjEtODMuOC0xNi4xdjUxLjhjNy40IDIuMiAxOS43IDcgMTEuOSAxNC44SDEwNC44Yy03LjctNy44IDMuNi0xMi40IDEyLjEtMTQuOFYxNzUuNUM5Ny4xIDE5MC45IDg3IDIwNC4zIDgxLjggMjE0LjJjNiAxOS40LTUuMyAxOC41LTUuMyAxOC41TDU2IDE5OS43czcyLjctODMuNyAxNzkuNS04My43em0tMy42IDIyMi45YzMwIDAgNTYtMTEuMyA3My45LTI5LjJjMTcuOS0xOC4xIDI3LjktNDEuNiAyOC03MC4yYy0uMS0yOS4zLTkuNS01NC42LTI2LjctNzMuNmMtMTcuMi0xOC45LTQyLjctMzEuMy03NS4yLTMxLjRjLTI2LjctLjEtNTkuOCA5LTgwLjIgMjMuN1YzMjMuMWMxOC42IDkuMyA0Ni44IDE1LjkgODAuMiAxNS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGF5c3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzAuOSAzNzIuM2MtMTEuMyAxNC4yLTM4LjggMjQuMy0zOC44IDI0LjNMMzI3IDQ3MC4ydi01NC4zbDE1MC45LTUzLjhjMTcuMS02LjEgMTkuOC0xNC44IDUuOC0xOS40LTEzLjktNC42LTM5LjEtMy4zLTU2LjIgMi45TDMyNyAzODEuMXYtNTYuNGMyMy4yLTcuOCA0Ny4xLTEzLjYgNzUuNy0xNi44IDQwLjktNC41IDkwLjkuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6bS0yMjQuNC05Mi41di0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjR2MzQ3LjlsLTkzLjgtMjkuOFYzMmMzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjRDNDI0LjEgOTQuNyA0NTEgMTI4LjcgNDUxIDIwNS4yYzAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4yIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOHY1NC41bC05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNCAxMy45IDQuNiAzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2Ljl2NDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcm9kdWN0SHVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjYuMyAyMTguOGMwIDIwLjUtMTYuNyAzNy4yLTM3LjIgMzcuMmgtNzAuM3YtNzQuNGg3MC4zYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS0xMjguMS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44SDE2OS4ydjI0OGg0OS42di03NC40aDcwLjNjNDcuOSAwIDg2LjgtMzguOSA4Ni44LTg2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDMyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wyMi41IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42bDEwNS4xIDM0OC4zYzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdsMzUuMy04MC44IDIzNS4yLTIzMS4zYzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTI5Ny42IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNEwyODYgMTAwLjkgMTA4LjYgODQuNmwxODktMzF6TTIyLjcgMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuN0wyMi43IDEwNy45ek0xMzYgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw0My41IDE3OS43bDEyNy43IDE5Ny42Yy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6bTI3Mi44LTMxNC41TDIxMC4xIDMzNy4zbDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHl0aG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4yaC00MC4xdjQ3LjRjMCAzNi44LTMxLjIgNjcuOC02Ni44IDY3LjhIMTcyLjdjLTI5LjIgMC01My40IDI1LTUzLjQgNTQuM3YxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjN2LTQwLjdIMjI2LjJ2LTEzLjZoMTYwLjJjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0MDRjMTEuMSAwIDIwLjEgOS4xIDIwLjEgMjAuMyAwIDExLjMtOSAyMC40LTIwLjEgMjAuNC0xMSAwLTIwLjEtOS4yLTIwLjEtMjAuNC4xLTExLjMgOS4xLTIwLjMgMjAuMS0yMC4zek0xNjcuOCAyNDguMWgxMDYuOGMyOS43IDAgNTMuNC0yNC41IDUzLjQtNTQuM1Y5MS45YzAtMjktMjQuNC01MC43LTUzLjQtNTUuNi0zNS44LTUuOS03NC43LTUuNi0xMDYuOC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42djQwLjdoMTA2Ljl2MTMuNmgtMTQ3Yy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ySDEwMXYtNDguOGMwLTM1LjMgMzAuNS02Ni40IDY2LjgtNjYuNHptLTYuNy0xNDIuNmMtMTEuMSAwLTIwLjEtOS4xLTIwLjEtMjAuMy4xLTExLjMgOS0yMC40IDIwLjEtMjAuNCAxMSAwIDIwLjEgOS4yIDIwLjEgMjAuNHMtOSAyMC4zLTIwLjEgMjAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjc1NCA0MjAuNDQ1Yy0xMS41MjYgMS4zOTMtNDQuODYtNTIuNzQxLTQ0Ljg2LTUyLjc0MSAwIDMxLjM0NS0xNi4xMzYgNzIuMjQ3LTUxLjA1MSAxMDEuNzg2IDE2Ljg0MiA1LjE5MiA1NC44NDMgMTkuMTY3IDQ1LjgwMyAzNC40MjEtNy4zMTYgMTIuMzQzLTEyNS41MSA3Ljg4MS0xNTkuNjMyIDQuMDM3LTM0LjEyMiAzLjg0NC0xNTIuMzE2IDguMzA2LTE1OS42MzItNC4wMzctOS4wNDUtMTUuMjUgMjguOTE4LTI5LjIxNCA0NS43ODMtMzQuNDE1LTM0LjkyLTI5LjUzOS01MS4wNTktNzAuNDQ1LTUxLjA1OS0xMDEuNzkyIDAgMC0zMy4zMzQgNTQuMTM0LTQ0Ljg1OSA1Mi43NDEtNS4zNy0uNjUtMTIuNDI0LTI5LjY0NCA5LjM0Ny05OS43MDQgMTAuMjYxLTMzLjAyNCAyMS45OTUtNjAuNDc4IDQwLjE0NC0xMDUuNzc5QzYwLjY4MyA5OC4wNjMgMTA4Ljk4Mi4wMDYgMjI0IDBjMTEzLjczNy4wMDYgMTYzLjE1NiA5Ni4xMzMgMTYwLjI2NCAyMTQuOTYzIDE4LjExOCA0NS4yMjMgMjkuOTEyIDcyLjg1IDQwLjE0NCAxMDUuNzc4IDIxLjc2OCA3MC4wNiAxNC43MTYgOTkuMDUzIDkuMzQ2IDk5LjcwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVpbnNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy42IDQ3NC42aC0xYTE1OC4xIDE1OC4xIDAgMCAxIDAtMzE2LjJjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43QzUwMS4xIDExNy41IDM5MS42IDggMjU2LjUgOFMxMiAxMTcuNSAxMiAyNTIuNnMxMDkuNSAyNDQuNiAyNDQuNSAyNDQuNmEyMzcuMzYgMjM3LjM2IDAgMCAwIDcwLjQtMTAuMWMtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptLS4xLS4xbC40LjF6bTc4LjQtMTY4LjlhOTkuMiA5OS4yIDAgMSAwIDk5LjIgOTkuMiA5OS4xOCA5OS4xOCAwIDAgMC05OS4yLTk5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1b3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC41IDM4Ni43aC0yOS4zYy0xLjUgMTMuNS0xMC41IDMwLjgtMzMgMzAuOC0yMC41IDAtMzUuMy0xNC4yLTQ5LjUtMzUuOCA0NC4yLTM0LjIgNzQuNy04Ny41IDc0LjctMTUzQzQwMy41IDExMS4yIDMwNi44IDMyIDIwNSAzMiAxMDUuMyAzMiA3LjMgMTExLjcgNy4zIDIyOC43YzAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OUMyNzYgNDUxLjMgMzAyIDQ4MCAzNTEuNSA0ODBjODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcgMzI5LjJDMjc3LjUgMzAwIDI1My4zIDI3NyAyMDUuNSAyNzdjLTMwLjUgMC01NC4zIDEwLTY5IDIyLjhsMTIuMiAyNC4zYzYuMi0zIDEzLTQgMTkuOC00IDM1LjUgMCA1My43IDMwLjggNjkuMiA2MS4zLTEwIDMtMjAuNyA0LjItMzIuNyA0LjItNzUgMC0xMDcuNS01My0xMDcuNS0xNTYuN0M5Ny41IDEyNC41IDEzMCA3MSAyMDUgNzFjNzYuMiAwIDEwOC43IDUzLjUgMTA4LjcgMTU3LjcuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJQcm9qZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1ODEgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4MSAyMjYuNkM1ODEgMTE5LjEgNDUwLjkgMzIgMjkwLjUgMzJTMCAxMTkuMSAwIDIyNi42QzAgMzIyLjQgMTAzLjMgNDAyIDIzOS40IDQxOC4xVjQ4MGg5OS4xdi02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOUw0NDggNDgwaDExMmwtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6bS00NjYuOCAxNC41YzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45aC0xOTlWMzYxYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM3YtNTUuNmM1Ny44IDAgODcuOC02LjggODcuOCAyNy4zIDAgMzYuNS0zOC4yIDI4LjMtODcuOCAyOC4zem0tLjkgNzIuNUgzNjVjMTAuOCAwIDE4LjkgMTEuNyAyNCAxOS4yLTE2LjEgMS45LTMzIDIuOC01MC42IDIuOXYtMjIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFzcGJlcnJ5UGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwNyA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42LjhDMjcxLjYuNiAyNjkgNS41IDI2My41IDcuNmMtMTIuMy0yLjYtMTYuMSAzLTIyIDguOWwtNi45LS4xYy0xOC42IDEwLjgtMjcuOCAzMi44LTMxLjEgNDQuMS0zLjMtMTEuMy0xMi41LTMzLjMtMzEuMS00NC4xbC02LjkuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNi4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOEMyMS4yIDE2IDE1LjggMjggMjIgMzkuMmMtMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yQzE1OSA1MDQuMiAxODEgNTEyIDIwMyA1MTJoMWMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODBjMjQuNS0xNS44IDU5LjgtNS42IDc4LjggMjIuOHMxNC42IDY0LjItOS45IDgwek0yMzguOSAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43LjggMTQuMS42IDIzLjkuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjguNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yLjEtMy40IDYuOS0xMC40IDExLjctMTYgMTcuMyAxLjQgMSAzLjkgMS42IDkuNy45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQuOS01Ny4zLS42LTY1LjQtMzIuMyAxNS43LTE3LjMgNDQuNC0zNy41IDkzLjctNjIuNi0zOC40IDEyLjgtNzMgMzAtMTAyIDUzLjUtMzQuMy0xNS45LTEwLjgtNTUuOSA1LjgtNzEuOHptLTM0LjQgMTE0LjZjMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6bS0xMjMtMTIuOGMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44LjcgOC4zLjEgOS43LS45LTUuNi01LjYtMTIuNy0xMC40LTE2LTE3LjMgNC4zIDEuNSA4LjMgMiAxMS4yLS4xLTEuOS00LjItMTAtNi43LTE0LjctMTYuNiA0LjYuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMy40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42LjItNi43LTIuNC05LjggOS40IDMuNCAxNC4zIDcuOSAxOS40IDEyLjMgMS43LTIuMyA0LjQtNCAxLjItOS42IDYuNyAzLjggMTEuOCA4LjMgMTUuNSAxMy4zIDQuMS0yLjYgMi41LTYuMiAyLjUtOS40IDcgNS42IDExLjQgMTEuNSAxNi44IDE3LjMgMS4xLS44IDItMy40IDIuOS03LjYgMTYuNiAxNS45IDQwLjEgNTUuOSA2IDcxLjgtMjktMjMuNS02My42LTQwLjctMTAyLTUzLjUgNDkuMyAyNSA3OCA0NS4zIDkzLjcgNjIuNi04IDMxLjgtNTAgMzMuMi02NS40IDMyLjMgMy4xLTEuNCA1LjgtMy4yIDYuNy01LjgtNC0yLjgtMTcuNi0uNC0yNy4yLTUuNnptNjAuMSAyNC4xYzE2LjggMi44LTgwLjYgODYuNS04Mi4xIDY3LjktMS41LTQ4LjcgMzYuNS03NS41IDgyLjEtNjcuOXpNMzguMiAzNDJjLTIzLjctMTguOC0zMS4zLTczLjcgMTIuNi05OC4zIDI2LjUtNyA5IDEwNy44LTEyLjYgOTguM3ptOTEgOTguMmMtMTMuMyA3LjktNDUuOCA0LjctNjguOC0yNy45LTE1LjUtMjcuNC0xMy41LTU1LjItMi42LTYzLjQgMTYuMy05LjggNDEuNSAzLjQgNjAuOSAyNS42IDE2LjkgMjAgMjQuNiA1NS4zIDEwLjUgNjUuN3ptLTI2LjQtMTE5LjdjLTI0LjUtMTUuOC0yOC45LTUxLjYtOS45LTgwczU0LjMtMzguNiA3OC44LTIyLjggMjguOSA1MS42IDkuOSA4MGMtMTkuMSAyOC40LTU0LjQgMzguNi03OC44IDIyLjh6TTIwNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45LjUgMTEtMjguOCAzNS45LTU3LjIgMzUuNHptNTguOS0xMjQuOWMuMiAyOS43LTI2LjIgNTMuOC01OC44IDU0LTMyLjYuMi01OS4yLTIzLjgtNTkuNC01My40di0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NCAzMi42LS4yIDU5LjIgMjMuOCA1OS40IDUzLjR2LjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhdmVscnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk4LjI1MiwyMzQuMjIzYy0xLjIwOC0xMC4zNC0xLjctMjAuODI2LTMuNzQ2LTMxYTMxMC4zMDYsMzEwLjMwNiwwLDAsMC05LjYyMi0zNi42LDE4NC4wNjgsMTg0LjA2OCwwLDAsMC0zMC44NzQtNTcuNSwyNTEuMTU0LDI1MS4xNTQsMCwwLDAtMTguODE4LTIxLjY4OSwyMzcuMzYyLDIzNy4zNjIsMCwwLDAtNDcuMTEzLTM2LjExNkEyNDAuOCwyNDAuOCwwLDAsMCwzMzEuMzU2LDI2LjY1Yy0xMS4wMTgtMy4xLTIyLjI3Mi01LjQzMS0zMy41MTUtNy42MTUtNi43OC0xLjMxNC0xMy43NDktMS42NjctMjAuNjI3LTIuNDgyLS4zMTYtLjAzNi0uNi0uMzU4LS45LS41NTNxLTE2LjE0My4wMDktMzIuMjg4LjAwNmMtMi40MS4zODktNC44MDguOTI1LTcuMjM2LDEuMTVhMTc5LjMzMSwxNzkuMzMxLDAsMCwwLTM0LjI1Niw3LjEsMjIxLjUsMjIxLjUsMCwwLDAtMzkuNzY4LDE2LjM1NSwyODEuMzg1LDI4MS4zODUsMCwwLDAtMzguMDgsMjQuMTU4Yy02LjE2Nyw0LjYxLTEyLjI2OCw5LjM2LTE3Ljk3NCwxNC41MThDOTYuNTM5LDg4LjQ5NCw4Ni4zNCw5Ny43Miw3Ni43ODUsMTA3LjU1NWEyNDMuODc4LDI0My44NzgsMCwwLDAtMzMuNjQ4LDQzLjk1LDIwNi40ODgsMjA2LjQ4OCwwLDAsMC0yMC40OTQsNDQuNiwxOTguMiwxOTguMiwwLDAsMC03LjY5MSwzNC43NTlBMjAxLjEzLDIwMS4xMywwLDAsMCwxMy40LDI2Ni4zODVhMjk5LjcxNiwyOTkuNzE2LDAsMCwwLDQuNDI1LDQwLjI0LDIyNi44NjUsMjI2Ljg2NSwwLDAsMCwxNi43Myw1My4zLDIxMC41NDMsMjEwLjU0MywwLDAsMCwyNCwzOS41MjgsMjEzLjU4OSwyMTMuNTg5LDAsMCwwLDI2LjM1OCwyOC40MTZBMjUxLjMxMywyNTEuMzEzLDAsMCwwLDEyNi43LDQ1OC40NTVhMjg3LjgzMSwyODcuODMxLDAsMCwwLDU1LjksMjUuMjc3LDI2OS41LDI2OS41LDAsMCwwLDQwLjY0MSw5LjgzNWM2LjA3MSwxLjAxLDEyLjI3NSwxLjI1MywxOC40MTIsMS44NzNhNC4xNDksNC4xNDksMCwwLDEsMS4xOS41NmgzMi4yODljMi41MDctLjM4OSw1LS45MzcsNy41MjctMS4xNDMsMTYuMzM2LTEuMzMyLDMyLjEwNy01LjMzNSw0Ny40ODktMTAuNzE3QTIxOS45OTIsMjE5Ljk5MiwwLDAsMCwzNzkuMSw0NjAuMzIyYzkuNzQ5LTYuNDQ3LDE5LjM5NS0xMy4wNzcsMjguNzM3LTIwLjEsNS43ODUtNC4zNDgsMTAuOTg4LTkuNSwxNi4zLTE0LjQ1NywzLjk2NC0zLjcsNy43NjQtNy41NzgsMTEuNTEtMTEuNWEyMzIuMTYyLDIzMi4xNjIsMCwwLDAsMzEuNDI3LTQxLjYzOWM5LjU0Mi0xNi4wNDUsMTcuMzU1LTMyLjkwNSwyMi4zLTUwLjkyNiwyLjg1OS0xMC40MTMsNC45NDctMjEuMDQ1LDcuMDE3LTMxLjY1MiwxLjAzMi01LjI3OSwxLjI1MS0xMC43MjMsMS44Ny0xNi4wODcuMDM2LS4zMTcuMzU4LS42LjU1Mi0uOVYyMzYuMDA1QTkuNzU3LDkuNzU3LDAsMCwxLDQ5OC4yNTIsMjM0LjIyM1ptLTE2MS4xMTctMS4xNXMtMTYuNTcyLTIuOTgtMjguNDctMi45OGMtMjcuMiwwLTMzLjU3LDE0LjktMzMuNTcsMzcuMDRWMzYwLjhIMjAxLjU4MlYxNzAuMDYySDI3NS4xdjMxLjkzMWM4LjkyNC0yNi44MjIsMjYuNzcxLTM2LjE4OSw2Mi4wNC0zNi4xODlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxOC4yIDE3Ny4yYy01LjQtMS44LTEwLjgtMy41LTE2LjItNS4xLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yLjYtMTEyLjYgMzguNC00LjMgMy43LTguNSA3LjYtMTIuNSAxMS41LTIuNy0yLjYtNS41LTUuMi04LjMtNy43LTQ1LjUtNDAuNC05MS4xLTU3LjQtMTE4LjQtNDEuNS0yNi4yIDE1LjItMzQgNjAuMy0yMyAxMTYuNyAxLjEgNS42IDIuMyAxMS4xIDMuNyAxNi43LTYuNCAxLjgtMTIuNyAzLjgtMTguNiA1LjlDMzguMyAxOTYuMiAwIDIyNS40IDAgMjU1LjZjMCAzMS4yIDQwLjggNjIuNSA5Ni4zIDgxLjUgNC41IDEuNSA5IDMgMTMuNiA0LjMtMS41IDYtMi44IDExLjktNCAxOC0xMC41IDU1LjUtMi4zIDk5LjUgMjMuOSAxMTQuNiAyNyAxNS42IDcyLjQtLjQgMTE2LjYtMzkuMSAzLjUtMy4xIDctNi4zIDEwLjUtOS43IDQuNCA0LjMgOSA4LjQgMTMuNiAxMi40IDQyLjggMzYuOCA4NS4xIDUxLjcgMTExLjIgMzYuNiAyNy0xNS42IDM1LjgtNjIuOSAyNC40LTEyMC41LS45LTQuNC0xLjktOC45LTMtMTMuNSAzLjItLjkgNi4zLTEuOSA5LjQtMi45IDU3LjctMTkuMSA5OS41LTUwIDk5LjUtODEuNyAwLTMwLjMtMzkuNC01OS43LTkzLjgtNzguNHpNMjgyLjkgOTIuM2MzNy4yLTMyLjQgNzEuOS00NS4xIDg3LjctMzYgMTYuOSA5LjcgMjMuNCA0OC45IDEyLjggMTAwLjQtLjcgMy40LTEuNCA2LjctMi4zIDEwLTIyLjItNS00NC43LTguNi02Ny4zLTEwLjYtMTMtMTguNi0yNy4yLTM2LjQtNDIuNi01My4xIDMuOS0zLjcgNy43LTcuMiAxMS43LTEwLjd6TTE2Ny4yIDMwNy41YzUuMSA4LjcgMTAuMyAxNy40IDE1LjggMjUuOS0xNS42LTEuNy0zMS4xLTQuMi00Ni40LTcuNSA0LjQtMTQuNCA5LjktMjkuMyAxNi4zLTQ0LjUgNC42IDguOCA5LjMgMTcuNSAxNC4zIDI2LjF6bS0zMC4zLTEyMC4zYzE0LjQtMy4yIDI5LjctNS44IDQ1LjYtNy44LTUuMyA4LjMtMTAuNSAxNi44LTE1LjQgMjUuNC00LjkgOC41LTkuNyAxNy4yLTE0LjIgMjYtNi4zLTE0LjktMTEuNi0yOS41LTE2LTQzLjZ6bTI3LjQgNjguOWM2LjYtMTMuOCAxMy44LTI3LjMgMjEuNC00MC42czE1LjgtMjYuMiAyNC40LTM4LjljMTUtMS4xIDMwLjMtMS43IDQ1LjktMS43czMxIC42IDQ1LjkgMS43YzguNSAxMi42IDE2LjYgMjUuNSAyNC4zIDM4LjdzMTQuOSAyNi43IDIxLjcgNDAuNGMtNi43IDEzLjgtMTMuOSAyNy40LTIxLjYgNDAuOC03LjYgMTMuMy0xNS43IDI2LjItMjQuMiAzOS0xNC45IDEuMS0zMC40IDEuNi00Ni4xIDEuNnMtMzAuOS0uNS00NS42LTEuNGMtOC43LTEyLjctMTYuOS0yNS43LTI0LjYtMzlzLTE0LjgtMjYuOC0yMS41LTQwLjZ6bTE4MC42IDUxLjJjNS4xLTguOCA5LjktMTcuNyAxNC42LTI2LjcgNi40IDE0LjUgMTIgMjkuMiAxNi45IDQ0LjMtMTUuNSAzLjUtMzEuMiA2LjItNDcgOCA1LjQtOC40IDEwLjUtMTcgMTUuNS0yNS42em0xNC40LTc2LjVjLTQuNy04LjgtOS41LTE3LjYtMTQuNS0yNi4yLTQuOS04LjUtMTAtMTYuOS0xNS4zLTI1LjIgMTYuMSAyIDMxLjUgNC43IDQ1LjkgOC00LjYgMTQuOC0xMCAyOS4yLTE2LjEgNDMuNHpNMjU2LjIgMTE4LjNjMTAuNSAxMS40IDIwLjQgMjMuNCAyOS42IDM1LjgtMTkuOC0uOS0zOS43LS45LTU5LjUgMCA5LjgtMTIuOSAxOS45LTI0LjkgMjkuOS0zNS44ek0xNDAuMiA1N2MxNi44LTkuOCA1NC4xIDQuMiA5My40IDM5IDIuNSAyLjIgNSA0LjYgNy42IDctMTUuNSAxNi43LTI5LjggMzQuNS00Mi45IDUzLjEtMjIuNiAyLTQ1IDUuNS02Ny4yIDEwLjQtMS4zLTUuMS0yLjQtMTAuMy0zLjUtMTUuNS05LjQtNDguNC0zLjItODQuOSAxMi42LTk0em0tMjQuNSAyNjMuNmMtNC4yLTEuMi04LjMtMi41LTEyLjQtMy45LTIxLjMtNi43LTQ1LjUtMTcuMy02My0zMS4yLTEwLjEtNy0xNi45LTE3LjgtMTguOC0yOS45IDAtMTguMyAzMS42LTQxLjcgNzcuMi01Ny42IDUuNy0yIDExLjUtMy44IDE3LjMtNS41IDYuOCAyMS43IDE1IDQzIDI0LjUgNjMuNi05LjYgMjAuOS0xNy45IDQyLjUtMjQuOCA2NC41em0xMTYuNiA5OGMtMTYuNSAxNS4xLTM1LjYgMjcuMS01Ni40IDM1LjMtMTEuMSA1LjMtMjMuOSA1LjgtMzUuMyAxLjMtMTUuOS05LjItMjIuNS00NC41LTEzLjUtOTIgMS4xLTUuNiAyLjMtMTEuMiAzLjctMTYuNyAyMi40IDQuOCA0NSA4LjEgNjcuOSA5LjggMTMuMiAxOC43IDI3LjcgMzYuNiA0My4yIDUzLjQtMy4yIDMuMS02LjQgNi4xLTkuNiA4Ljl6bTI0LjUtMjQuM2MtMTAuMi0xMS0yMC40LTIzLjItMzAuMy0zNi4zIDkuNi40IDE5LjUuNiAyOS41LjYgMTAuMyAwIDIwLjQtLjIgMzAuNC0uNy05LjIgMTIuNy0xOS4xIDI0LjgtMjkuNiAzNi40em0xMzAuNyAzMGMtLjkgMTIuMi02LjkgMjMuNi0xNi41IDMxLjMtMTUuOSA5LjItNDkuOC0yLjgtODYuNC0zNC4yLTQuMi0zLjYtOC40LTcuNS0xMi43LTExLjUgMTUuMy0xNi45IDI5LjQtMzQuOCA0Mi4yLTUzLjYgMjIuOS0xLjkgNDUuNy01LjQgNjguMi0xMC41IDEgNC4xIDEuOSA4LjIgMi43IDEyLjIgNC45IDIxLjYgNS43IDQ0LjEgMi41IDY2LjN6bTE4LjItMTA3LjVjLTIuOC45LTUuNiAxLjgtOC41IDIuNi03LTIxLjgtMTUuNi00My4xLTI1LjUtNjMuOCA5LjYtMjAuNCAxNy43LTQxLjQgMjQuNS02Mi45IDUuMiAxLjUgMTAuMiAzLjEgMTUgNC43IDQ2LjYgMTYgNzkuMyAzOS44IDc5LjMgNTggMCAxOS42LTM0LjkgNDQuOS04NC44IDYxLjR6bS0xNDkuNy0xNWMyNS4zIDAgNDUuOC0yMC41IDQ1LjgtNDUuOHMtMjAuNS00NS44LTQ1LjgtNDUuOGMtMjUuMyAwLTQ1LjggMjAuNS00NS44IDQ1LjhzMjAuNSA0NS44IDQ1LjggNDUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVhY3RldXJvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUwLjYgMjExLjc0bDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02LjgtMi4zIDYuOC03LjIuMSA1LjcgNC4zem02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMi4xIDUuNyA0LjN6bS05MS4zIDUwLjVoLTMuNGMtNC44IDAtMy44IDQtMy44IDEyLjEgMCA0LjctMi4zIDYuMS01LjggNi4xcy01LjgtMS40LTUuOC02LjF2LTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41aDMuNGM0LjctLjEgMy44LTMuOSAzLjgtMTIuMyAwLTkuOS02LjctMTQuMS0xNi44LTE0LjFoLS4yYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xVjI3NmMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xaC4yYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05Ljg2IDEuMS0xMy43Ni0zLjgtMTMuNzZ6bS04MC43IDE3LjRoLTE0Ljd2LTE5LjNIMTM5YzIuNSAwIDMuOC0xLjMgMy44LTMuOHYtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGgtMTEuNHYtMTguM0gxNDJjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yMS43Yy0yLjQtLjEtMy43IDEuMy0zLjcgMy44djU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDIxLjljMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNHYtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xSDc3LjRjLTIuNSAwLTMuOCAxLjMtMy44IDMuOHY1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGgzLjRjMi41IDAgMy44LTEuMyAzLjgtMy44di0yMi45aDUuNmw3LjQgMjMuNWE0LjEgNC4xIDAgMCAwIDQuMyAzLjJoMy4zYzIuOCAwIDQtMS44IDMuMi00LjR6bS0zLjgtMTRjMCA0LjgtMi41IDYuMS02LjEgNi4xaC01Ljh2LTIwLjloNS44YzMuNiAwIDYuMSAxLjMgNi4xIDYuMXpNMTc2IDIyNmEzLjgyIDMuODIgMCAwIDAtNC4yLTMuNGgtNi45YTMuNjggMy42OCAwIDAgMC00IDMuNGwtMTEgNTkuMmMtLjUgMi43LjkgNC4xIDMuNCA0LjFoM2EzLjc0IDMuNzQgMCAwIDAgNC4xLTMuNWwxLjgtMTEuM2gxMi4ybDEuOCAxMS4zYTMuNzQgMy43NCAwIDAgMCA0LjEgMy41aDMuNWMyLjYgMCAzLjktMS40IDMuNC00LjF6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5Ljd6bTg5LjMgMjAuMnYtNTMuMmg3LjVjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yNS44Yy0yLjUgMC0zLjggMS4zLTMuOCAzLjh2Mi4xYzAgMi41IDEuMyAzLjggMy44IDMuOGg3LjN2NTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhoMy40YzIuNS4wNCAzLjgtMS4zIDMuOC0zLjc2em0yNDgtLjhoLTE5LjRWMjU4aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjYyIDEuNjIgMCAwIDAtMiAxLjh2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45SDUwMWExLjgxIDEuODEgMCAwIDAgMi0xLjl2LS44YTEuODQgMS44NCAwIDAgMC0yLTEuOTZ6bS05My4xLTYyLjloLS44Yy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xVjI3NmMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFoLjhjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMXYtNDAuMWMwLTkuMzYtNS4yLTE0LjA2LTE1LjMtMTQuMDZ6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjF2LTM2LjZjMC03LjkgMy0xMS4xIDEwLjUtMTEuMXMxMC41IDMuMiAxMC41IDExLjF6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zdi05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xaC0xMy43YTEuODEgMS44MSAwIDAgMC0yIDEuOXY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjloMS4yYTEuNzQgMS43NCAwIDAgMCAxLjktMS45di0yNi45aDExLjZsMTAuNCAyNy4yYTIuMzIgMi4zMiAwIDAgMCAyLjMgMS41aDEuNWMxLjQgMCAyLTEgMS41LTIuM3ptLTYuNC0zLjlIMzU1di0yOC41aDEwLjJjNy41IDAgMTAuNSAzLjEgMTAuNSAxMS4xdjYuNGMwIDcuODQtMyAxMS4wNC0xMC41IDExLjA0em04NS45LTMzLjFoLTEzLjdhMS42MiAxLjYyIDAgMCAwLTIgMS44djYzYTEuODEgMS44MSAwIDAgMCAyIDEuOWgxLjJhMS43NCAxLjc0IDAgMCAwIDEuOS0xLjl2LTI2LjFoMTAuNmMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xdi0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFoLTEwLjJ2LTI5LjJoMTAuMmM3LjUtLjEgMTAuNSAzLjEgMTAuNSAxMXpNMjU5LjUgMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTIyNy42LTEzNi4xYTM2NC40MiAzNjQuNDIgMCAwIDAtMzUuNi0xMS4zYzE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45QzM5NC43LTEyLjY2IDM0My4zIDExIDI5MSA2MS45NHE1LjEgNC45NSAxMC4yIDEwLjJjODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOGE1ODcuODMgNTg3LjgzIDAgMCAwLTg0LjYtMTNDMjgxLjEgNDMuNjQgMjEyLjQgMiAxNzAuOCAyIDE0MCAyIDEyNyAyMyAxMjMuMiAyOS43NGMtMTguMSAzMi0xMy4zIDg0LjIuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjJxLTUuMS00Ljk1LTEwLjItMTAuMmMtODIuNSA4MC0xMTkuNyA1My41LTEyMC45IDUyLjgtMjIuMy0xMi42LTM2LTU1LjYtMTUuNS0xMzcuOSAxMi40IDIuOSA0MS44IDkuNSA4NC42IDEzIDcxLjkgMTAwLjQgMTQwLjYgMTQyIDE4Mi4xIDE0MiAzMC44IDAgNDMuOC0yMSA0Ny42LTI3LjcgMTgtMzEuOSAxMy4zLTg0LjEtLjEtMTMzLjggMTUyLjMtNDMuOCAxNTYuMi0xMzAuMiAzMy45LTE3Ni4zek0xMzUuOSAzNi44NGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMmE3MTQgNzE0IDAgMCAwLTkzLjkuOSA1NDcuNzYgNTQ3Ljc2IDAgMCAxIDQyLjItNTIuNFEyNzcuMyA4NiAyNzIuMiA4MWE1OTguMjUgNTk4LjI1IDAgMCAwLTUwLjcgNjQuMiA1NjkuNjkgNTY5LjY5IDAgMCAwLTg0LjQgMTQuNmMtLjItMS40LTI0LjMtODIuMi0xLjItMTIzem0zMDQuOCA0MzguM2MtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjJhNjk1LjM4IDY5NS4zOCAwIDAgMCA5My45LS45IDU0Ny43NiA1NDcuNzYgMCAwIDEtNDIuMiA1Mi40cTUuMSA1LjI1IDEwLjIgMTAuMmE1ODguNDcgNTg4LjQ3IDAgMCAwIDUwLjctNjQuMmM0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40YTEyLjY3IDEyLjY3IDAgMCAxLTEwLjctNS43bC0uMS4xYTE5LjYxIDE5LjYxIDAgMCAxLTUuNCAzLjZjNS43IDE0LjMgMTAuNiAyOC40IDE0LjcgNDIuMmE1MzUuMyA1MzUuMyAwIDAgMS03MiAxM2MzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjJhMjQuNiAyNC42IDAgMCAxLTYtMy4yYy0xLjEgMS4yLTMuNiA0LjItMTAuOSA0LjItNi4yIDExLjItMTcuNCAzMC45LTMzLjkgNTUuMmE3MTEuOTEgNzExLjkxIDAgMCAxLTExMi40IDFjLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjhhMjEgMjEgMCAwIDEtMy0xLjVjLTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42YTU0OC44MSA1NDguODEgMCAwIDEtNzIuMi0xMS43cTUuODUtMjEgMTQuMS00Mi45Yy0zLjIgMC01LjQuMi04LjQtMWExNy41OCAxNy41OCAwIDAgMS02LjkgMWMtNC45IDEzLjQtOS4xIDI2LjUtMTIuNyAzOS40Qy0zMS43IDI5Ny0xMi4xIDIxNiAxMjYuNyAxNzUuNjRjMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuM2ExMiAxMiAwIDAgMSAyLjMtMi4yYy01LjgtMTQuNy0xMC45LTI5LjItMTUuMi00My4zIDctMS44IDMyLjQtOC40IDcyLTEzLTE1LjkgMjQuMy0yNi43IDQzLjktMzIuOCA1NS4zYTE0LjIyIDE0LjIyIDAgMCAxIDYuNCA4IDIzLjQyIDIzLjQyIDAgMCAxIDEwLjItOC40YzYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjlhNzExLjcyIDcxMS43MiAwIDAgMSAxMTIuNC0xYzMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41YTIxLjQyIDIxLjQyIDAgMCAxIDEwLjQtNy40Yy02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMmEyMC43NCAyMC43NCAwIDAgMSA2LjggNC4zbC4xLjFhMTIuNzIgMTIuNzIgMCAwIDEgOC45LTUuNmM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjVhMzU5LjcxIDM1OS43MSAwIDAgMSAzNC41IDExYzEwNi4xIDM5LjkgNzQgODcuOSA3Mi42IDkwLjQtMTkuOCAzNS4xLTgwLjEgNTUuMi0xMDUuNyA2Mi41em0tMTE0LjQtMTE0aC0xLjJhMS43NCAxLjc0IDAgMCAwLTEuOSAxLjl2NDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMXYtNDkuOGExLjY5IDEuNjkgMCAwIDAtMS45LTEuOUgzMDlhMS44MSAxLjgxIDAgMCAwLTIgMS45djUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWguNGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xdi01MS41YTIgMiAwIDAgMC0yLjItMS45ek0zMjEuNyAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTUuMS0zMC44aC0xOS40di0yNi43aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjgxIDEuODEgMCAwIDAtMiAxLjl2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45aDIyLjVhMS43NyAxLjc3IDAgMCAwIDItMS45di0uOGExLjgzIDEuODMgMCAwIDAtMi0yLjA2em0tNy40LTk5LjRMMjg2IDE5MmwtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWFkbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4LjMgNDYuNUgzODguNWMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djI0NS44YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDg5LjdjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NUg1MjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWOTQuNmMwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVWMjg5YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNVYyNTF6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVINzguMmMtMS45IDAtMy41LTEuNS0zLjUtMy41di0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMjU5LjMgMTIxLjdjMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjVWMjI4YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUgzMzcuNWMtMS45IDAtMy41LTEuNS0zLjUtMy41di0yMi44YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjVWMTkwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuNSA1MDRDMTE3LjIgNTA0IDkgMzg3LjggMTMuMiAyNDkuOSAxNiAxNzAuNyA1Ni40IDk3LjcgMTI5LjcgNDkuNWMuMyAwIDEuOS0uNiAxLjEuOC01LjggNS41LTExMS4zIDEyOS44LTE0LjEgMjI2LjQgNDkuOCA0OS41IDkwIDIuNSA5MCAyLjUgMzguNS01MC4xLS42LTEyNS45LS42LTEyNS45LTEwLTI0LjktNDUuNy00MC4xLTQ1LjctNDAuMWwyOC44LTMxLjhjMjQuNCAxMC41IDQzLjIgMzguNyA0My4yIDM4LjcuOC0yOS42LTIxLjktNjEuNC0yMS45LTYxLjRMMjU1LjEgOGw0NC4zIDUwLjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNC42IDEyNy4zIDMyLjQgNDQuNiA4Ny43LTIuOCA4Ny43LTIuOCAxMDIuNy05MS45LTEwLjUtMjI1LTEwLjUtMjI1LTYuMS01LjUuOC0yLjguOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjhDNTAwLjkgNDAwLjIgMzk5IDUwNCAyNTYuNSA1MDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZFJpdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1My4yIDMySDk0LjhDNDIuNCAzMiAwIDc0LjQgMCAxMjYuOHYyNTguNEMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwaDI1OC40YzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44VjEyNi44YzAtNTIuNC00Mi40LTk0LjgtOTQuOC05NC44ek0xNDQuOSAyMDAuOXY1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOVYxNTEuOWMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWgxNTQuMmMwIDI3LTIxLjkgNDguOS00OC45IDQ4LjloLTU2LjNjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmgtNTYuM2MtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR2NTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlWMjQ3LjljMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjloMTU0LjJjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRkaXRBbGllbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzMgMTM4LjZjLTI1LjIgMC00Ni4zLTE3LjUtNTEuOS00MWwwIDBjLTMwLjYgNC4zLTU0LjIgMzAuNy01NC4yIDYyLjRsMCAuMmM0Ny40IDEuOCA5MC42IDE1LjEgMTI0LjkgMzYuM2MxMi42LTkuNyAyOC40LTE1LjUgNDUuNS0xNS41YzQxLjMgMCA3NC43IDMzLjQgNzQuNyA3NC43YzAgMjkuOC0xNy40IDU1LjUtNDIuNyA2Ny41Yy0yLjQgODYuOC05NyAxNTYuNi0yMTMuMiAxNTYuNlM0NS41IDQxMC4xIDQzIDMyMy40QzE3LjYgMzExLjUgMCAyODUuNyAwIDI1NS43YzAtNDEuMyAzMy40LTc0LjcgNzQuNy03NC43YzE3LjIgMCAzMyA1LjggNDUuNyAxNS42YzM0LTIxLjEgNzYuOC0zNC40IDEyMy43LTM2LjRsMC0uM2MwLTQ0LjMgMzMuNy04MC45IDc2LjgtODUuNUMzMjUuOCA1MC4yIDM0Ny4yIDMyIDM3MyAzMmMyOS40IDAgNTMuMyAyMy45IDUzLjMgNTMuM3MtMjMuOSA1My4zLTUzLjMgNTMuM3pNMTU3LjUgMjU1LjNjLTIwLjkgMC0zOC45IDIwLjgtNDAuMiA0Ny45czE3LjEgMzguMSAzOCAzOC4xczM2LjYtOS44IDM3LjgtMzYuOXMtMTQuNy00OS4xLTM1LjctNDkuMXpNMzk1IDMwMy4xYy0xLjItMjcuMS0xOS4yLTQ3LjktNDAuMi00Ny45cy0zNi45IDIyLTM1LjcgNDkuMWMxLjIgMjcuMSAxNi45IDM2LjkgMzcuOCAzNi45czM5LjMtMTEgMzgtMzguMXptLTYwLjEgNzAuOGMxLjUtMy42LTEtNy43LTQuOS04LjFjLTIzLTIuMy00Ny45LTMuNi03My44LTMuNnMtNTAuOCAxLjMtNzMuOCAzLjZjLTMuOSAuNC02LjQgNC41LTQuOSA4LjFjMTIuOSAzMC44IDQzLjMgNTIuNCA3OC43IDUyLjRzNjUuOC0yMS42IDc4LjctNTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NnMtMTE0LjYgMjU2LTI1NiAyNTZMMzcuMSA1MTJjLTEzLjcgMC0yMC41LTE2LjUtMTAuOS0yNi4yTDc1IDQzN0MyOC43IDM5MC43IDAgMzI2LjcgMCAyNTZ6TTM0OS42IDE1My42YzIzLjYgMCA0Mi43LTE5LjEgNDIuNy00Mi43cy0xOS4xLTQyLjctNDIuNy00Mi43Yy0yMC42IDAtMzcuOCAxNC42LTQxLjggMzRjLTM0LjUgMy43LTYxLjQgMzMtNjEuNCA2OC40bDAgLjJjLTM3LjUgMS42LTcxLjggMTIuMy05OSAyOS4xYy0xMC4xLTcuOC0yMi44LTEyLjUtMzYuNS0xMi41Yy0zMyAwLTU5LjggMjYuOC01OS44IDU5LjhjMCAyNCAxNC4xIDQ0LjYgMzQuNCA1NC4xYzIgNjkuNCA3Ny42IDEyNS4yIDE3MC42IDEyNS4yczE2OC43LTU1LjkgMTcwLjYtMTI1LjNjMjAuMi05LjYgMzQuMS0zMC4yIDM0LjEtNTRjMC0zMy0yNi44LTU5LjgtNTkuOC01OS44Yy0xMy43IDAtMjYuMyA0LjYtMzYuNCAxMi40Yy0yNy40LTE3LTYyLjEtMjcuNy0xMDAtMjkuMWwwLS4yYzAtMjUuNCAxOC45LTQ2LjUgNDMuNC00OS45bDAgMGM0LjQgMTguOCAyMS4zIDMyLjggNDEuNSAzMi44ek0xNzcuMSAyNDYuOWMxNi43IDAgMjkuNSAxNy42IDI4LjUgMzkuM3MtMTMuNSAyOS42LTMwLjMgMjkuNnMtMzEuNC04LjgtMzAuNC0zMC41czE1LjQtMzguMyAzMi4xLTM4LjN6bTE5MC4xIDM4LjNjMSAyMS43LTEzLjcgMzAuNS0zMC40IDMwLjVzLTI5LjMtNy45LTMwLjMtMjkuNmMtMS0yMS43IDExLjgtMzkuMyAyOC41LTM5LjNzMzEuMiAxNi42IDMyLjEgMzguM3ptLTQ4LjEgNTYuN2MtMTAuMyAyNC42LTM0LjYgNDEuOS02MyA0MS45cy01Mi43LTE3LjMtNjMtNDEuOWMtMS4yLTIuOSAuOC02LjIgMy45LTYuNWMxOC40LTEuOSAzOC4zLTIuOSA1OS4xLTIuOXM0MC43IDEgNTkuMSAyLjljMy4xIC4zIDUuMSAzLjYgMy45IDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0MS41MiAyODUuNTZjMzMuNjUgMCA4Mi4zNC02Ljk0IDgyLjM0LTQ3IC4yMi02Ljc0Ljg2LTEuODItMjAuODgtOTYuMjQtNC42Mi0xOS4xNS04LjY4LTI3Ljg0LTQyLjMxLTQ0LjY1LTI2LjA5LTEzLjM0LTgyLjkyLTM1LjM3LTk5LjczLTM1LjM3LTE1LjY2IDAtMjAuMiAyMC4xNy0zOC44NyAyMC4xNy0xOCAwLTMxLjMxLTE1LjA2LTQ4LjEyLTE1LjA2LTE2LjE0IDAtMjYuNjYgMTEtMzQuNzggMzMuNjItMjcuNSA3Ny41NS0yNi4yOCA3NC4yNy0yNi4xMiA3OC4yNyAwIDI0LjggOTcuNjQgMTA2LjExIDIyOC40NyAxMDYuMTFNNDI5IDI1NC44NGM0LjY1IDIyIDQuNjUgMjQuMzUgNC42NSAyNy4yNSAwIDM3LjY2LTQyLjMzIDU4LjU2LTk4IDU4LjU2LTEyNS43NC4wOC0yMzUuOTEtNzMuNjUtMjM1LjkxLTEyMi4zM2E0OS41NSA0OS41NSAwIDAgMSA0LjA2LTE5LjcyQzU4LjU2IDIwMC44NiAwIDIwOC45MyAwIDI2MC42M2MwIDg0LjY3IDIwMC42MyAxODkgMzU5LjQ5IDE4OSAxMjEuNzkgMCAxNTIuNTEtNTUuMDggMTUyLjUxLTk4LjU4IDAtMzQuMjEtMjkuNTktNzMuMDUtODIuOTMtOTYuMjRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVucmVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNCAxNjkuMWMwIDExMC40LTYxIDIwNS40LTE0Ny42IDI0Ny40QzMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNXYxNTYuNnpNMjU1IDUwNGMtNDIuOSAwLTgzLjMtMTEtMTE4LjUtMzAuNEMxOTMuNyA0MzcuNSAyMzkuOSAzODIuOSAyNTUgMzE5YzE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43QzMzOC43IDQ5MyAyOTguMyA1MDQgMjU1IDUwNHptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMVYxMi41YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVwbHlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0ODBIMTI4QzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJWMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmgxOTJjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjh2MTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjYtNS40IDMuNy05LjYgOS0xMi44IDE1LjhoLTEuMWwtNC4yLTE4LjNoLTI4djEzOC45aDM2LjF2LTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yIDQuMy0zLjQgOS44LTUuMSAxNi4yLTUuMSA0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6bTExNS4yIDEwMy40Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjEtNiAyLjMtMTIuOCAzLjUtMjAuNCAzLjUtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGg4My4zYy45LTQuOCAxLjYtOS40IDIuMS0xMy45LjUtNC40LjctOC42LjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNiA5LjUtMy4xIDE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xaC01MS43Yy45LTkuNCAzLjctMTcgOC4yLTIyLjYgNC41LTUuNiAxMS41LTguNSAyMS04LjUgOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNGMtNC4xLTMuOC05LjYtNS43LTE2LjctNS43LTYuNyAwLTEyIDEuOS0xNi4xIDUuNy00LjEgMy44LTYuMSA4LjktNi4xIDE1LjRzMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjRjLTQuMS0zLjgtOS42LTUuNy0xNi43LTUuNy02LjcgMC0xMiAxLjktMTYuMSA1LjctNC4xIDMuOC02LjEgOC45LTYuMSAxNS40IDAgNi42IDIgMTEuNyA2LjEgMTUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVzZWFyY2hnYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0yNjIuMiAzMzQuNGMtNi42IDMtMzMuMiA2LTUwLTE0LjItOS4yLTEwLjYtMjUuMy0zMy4zLTQyLjItNjMuNi04LjkgMC0xNC43IDAtMjEuNC0uNnY0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45djguMWMtNi45LS4zLTIzLjEtLjgtMzUuNi0uOC0xMy4xIDAtMjYuMS42LTMzLjYuOHYtOC4xYzE1LjUtMi45IDIyLTEuMyAyMi0yMy45VjIyNWMwLTIyLjYtNi40LTIxLTIyLTIzLjlWMTkzYzI1LjggMSA1My4xLS42IDcwLjktLjYgMzEuNyAwIDU1LjkgMTQuNCA1NS45IDQ1LjYgMCAyMS4xLTE2LjcgNDIuMi0zOS4yIDQ3LjUgMTMuNiAyNC4yIDMwIDQ1LjYgNDIuMiA1OC45IDcuMiA3LjggMTcuMiAxNC43IDI3LjIgMTQuN3Y3LjN6bTIyLjktMTM1Yy0yMy4zIDAtMzIuMi0xNS43LTMyLjItMzIuMlYxNjdjMC0xMi4yIDguOC0zMC40IDM0LTMwLjRzMzAuNCAxNy45IDMwLjQgMTcuOWwtMTAuNyA3LjJzLTUuNS0xMi41LTE5LjctMTIuNWMtNy45IDAtMTkuNyA3LjMtMTkuNyAxOS43djI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGgtMTcuOXYtMTAuN2gzMC40YzAgMjAuNSA0LjcgNDkuOS0zNCA0OS45em0tMTE2LjUgNDQuN2MtOS40IDAtMTMuNi0uMy0yMC0uOHYtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlc29sdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODEuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMxNCAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOEw1NC43IDIzNi44bDI4LjYgOTguNiAxOTcuOS01Ny4yek0yNDguNSA4QzEzMS40IDggMzMuMiA4OC43IDcuMiAxOTcuNWwyMjEuOS02My45YzM0LjgtMTAuMiA1NC4yLTExLjcgNzkuMy04LjIgMzYuMyA2LjEgNTIuNyAyNSA2MS40IDU1LjJsMTAuNyAzNy44YzguMiAyOC4xIDEgNTAuNi0yMy41IDczLjYtMTkuNCAxNy40LTMxLjIgMjQuNS02MS40IDMzLjJMMjAzIDM1MS44bDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMmMzNi44IDIyIDgwLjMgMzQuNyAxMjYuMyAzNC43IDEzNyAwIDI0OC41LTExMS40IDI0OC41LTI0OC4zQzQ5NyAxMTkuNCAzODUuNSA4IDI0OC41IDh6TTM4LjMgMzg4LjZMMCAyNTYuOGMwIDQ4LjUgMTQuMyA5My40IDM4LjMgMTMxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJldiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODkuNjcgMjc0Ljg5YTY1LjU3IDY1LjU3IDAgMSAxLTY1LjU2LTY1LjU2IDY1LjY0IDY1LjY0IDAgMCAxIDY1LjU2IDY1LjU2em0xMzkuNTUtNS4wNWgtLjEzYTIwNC42OSAyMDQuNjkgMCAwIDAtNzQuMzItMTUzbC00NS4zOCAyNi4yYTE1Ny4wNyAxNTcuMDcgMCAwIDEgNzEuODEgMTMxLjg0QzM4MS4yIDM2MS41IDMxMC43MyA0MzIgMjI0LjExIDQzMlM2NyAzNjEuNSA2NyAyNzQuODhjMC04MS44OCA2My0xNDkuMjcgMTQzLTE1Ni40M3YzOS4xMmwxMDguNzctNjIuNzlMMjEwIDMydjM4LjMyYy0xMDYuNyA3LjI1LTE5MSA5Ni0xOTEgMjA0LjU3IDAgMTExLjU5IDg5LjEyIDIwMi4yOSAyMDAuMDYgMjA1di4xMWgyMTAuMTZWMjY5Ljg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2NrZXRjaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4NC4wNDYsMjI0LjhhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNywzNC4yMTcsMCwwLDAsMjg0LjA0NiwyMjQuOFptLTExMC40NSwwYTM0LjExNCwzNC4xMTQsMCwxLDAsMzQuMzE3LDM0LjExM0EzNC4yMTcsMzQuMjE3LDAsMCwwLDE3My42LDIyNC44Wm0yMjAuOTIzLDBhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNSwzNC4yMTUsMCwwLDAsMzk0LjUxOSwyMjQuOFptMTUzLjgwNy01NS4zMTljLTE1LjUzNS0yNC4xNzItMzcuMzEtNDUuNTctNjQuNjgxLTYzLjYxOC01Mi44ODYtMzQuODE3LTEyMi4zNzQtNTQtMTk1LjY2Ni01NGE0MDUuOTc1LDQwNS45NzUsMCwwLDAtNzIuMDMyLDYuMzU3LDIzOC41MjQsMjM4LjUyNCwwLDAsMC00OS41MS0zNi41ODhDOTkuNjg0LTExLjcsNDAuODU5LjcxMSwxMS4xMzUsMTEuNDIxQTE0LjI5MSwxNC4yOTEsMCwwLDAsNS41OCwzNC43ODJDMjYuNTQyLDU2LjQ1OCw2MS4yMjIsOTkuMyw1Mi43LDEzOC4yNTJjLTMzLjE0MiwzMy45LTUxLjExMiw3NC43NzYtNTEuMTEyLDExNy4zMzcsMCw0My4zNzIsMTcuOTcsODQuMjQ4LDUxLjExMiwxMTguMTQ4LDguNTI2LDM4Ljk1Ni0yNi4xNTQsODEuODE2LTQ3LjExNiwxMDMuNDkxYTE0LjI4NCwxNC4yODQsMCwwLDAsNS41NTUsMjMuMzRjMjkuNzI0LDEwLjcwOSw4OC41NDksMjMuMTQ3LDE1NS4zMjQtMTAuMmEyMzguNjc5LDIzOC42NzksMCwwLDAsNDkuNTEtMzYuNTg5QTQwNS45NzIsNDA1Ljk3MiwwLDAsMCwyODgsNDYwLjE0YzczLjMxMywwLDE0Mi44LTE5LjE1OSwxOTUuNjY3LTUzLjk3NSwyNy4zNzEtMTguMDQ5LDQ5LjE0NS0zOS40MjYsNjQuNjc5LTYzLjYxOSwxNy4zMDktMjYuOTIzLDI2LjA3LTU1LjkxNiwyNi4wNy04Ni4xMjVDNTc0LjM5NCwyMjUuNCw1NjUuNjM0LDE5Ni40Myw1NDguMzI2LDE2OS40ODVaTTI4NC45ODcsNDA5LjlhMzQ1LjY1LDM0NS42NSwwLDAsMS04OS40NDYtMTEuNWwtMjAuMTI5LDE5LjM5M2ExODQuMzY2LDE4NC4zNjYsMCwwLDEtMzcuMTM4LDI3LjU4NSwxNDUuNzY3LDE0NS43NjcsMCwwLDEtNTIuNTIyLDE0Ljg3Yy45ODMtMS43NzEsMS44ODEtMy41NjMsMi44NDItNS4zNTZxMzAuMjU4LTU1LjY4LDE2LjMyNS0xMDAuMDc4Yy0zMi45OTItMjUuOTYyLTUyLjc3OC01OS4yLTUyLjc3OC05NS40LDAtODMuMSwxMDQuMjU0LTE1MC40NjksMjMyLjg0Ni0xNTAuNDY5czIzMi44NjcsNjcuMzczLDIzMi44NjcsMTUwLjQ2OUM1MTcuODU0LDM0Mi41MjUsNDEzLjYsNDA5LjksMjg0Ljk4Nyw0MDkuOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9ja3JtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNTcuNCA0MTkuNWgtOTBsLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWg3NS4zbC04NC42LTk5LjMtODQuMyA5OC45aC05MEwxOTMuNSA2Ny4yYzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwbDE1Ny43IDE4NS4xYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIuMi03NC4yLjJsMTAxLjUgMTE4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA4LjUyLDI0OS43NSw0ODYuNywyMzYuMjRjLS4xNy0yLS4zNC0zLjkzLS41NS01Ljg4bDE4LjcyLTE3LjVhNy4zNSw3LjM1LDAsMCwwLTIuNDQtMTIuMjVsLTI0LTljLS41NC0xLjg4LTEuMDgtMy43OC0xLjY3LTUuNjRsMTUtMjAuODNhNy4zNSw3LjM1LDAsMCwwLTQuNzktMTEuNTRsLTI1LjQyLTQuMTVjLS45LTEuNzMtMS43OS0zLjQ1LTIuNzMtNS4xNWwxMC42OC0yMy40MmE3LjM1LDcuMzUsMCwwLDAtNi45NS0xMC4zOWwtMjUuODIuOTFxLTEuNzktMi4yMi0zLjYxLTQuNEw0MzksODEuODRBNy4zNiw3LjM2LDAsMCwwLDQzMC4xNiw3M0w0MDUsNzguOTNxLTIuMTctMS44My00LjQtMy42MWwuOTEtMjUuODJhNy4zNSw3LjM1LDAsMCwwLTEwLjM5LTdMMzY3LjcsNTMuMjNjLTEuNy0uOTQtMy40My0xLjg0LTUuMTUtMi43M0wzNTguNCwyNS4wOGE3LjM1LDcuMzUsMCwwLDAtMTEuNTQtNC43OUwzMjYsMzUuMjZjLTEuODYtLjU5LTMuNzUtMS4xMy01LjY0LTEuNjdsLTktMjRhNy4zNSw3LjM1LDAsMCwwLTEyLjI1LTIuNDRsLTE3LjUsMTguNzJjLTEuOTUtLjIxLTMuOTEtLjM4LTUuODgtLjU1TDI2Mi4yNSwzLjQ4YTcuMzUsNy4zNSwwLDAsMC0xMi41LDBMMjM2LjI0LDI1LjNjLTIsLjE3LTMuOTMuMzQtNS44OC41NUwyMTIuODYsNy4xM2E3LjM1LDcuMzUsMCwwLDAtMTIuMjUsMi40NGwtOSwyNGMtMS44OS41NS0zLjc5LDEuMDgtNS42NiwxLjY4bC0yMC44Mi0xNWE3LjM1LDcuMzUsMCwwLDAtMTEuNTQsNC43OWwtNC4xNSwyNS40MWMtMS43My45LTMuNDUsMS43OS01LjE2LDIuNzNMMTIwLjg4LDQyLjU1YTcuMzUsNy4zNSwwLDAsMC0xMC4zOSw3bC45MiwyNS44MWMtMS40OSwxLjE5LTMsMi4zOS00LjQyLDMuNjFMODEuODQsNzNBNy4zNiw3LjM2LDAsMCwwLDczLDgxLjg0TDc4LjkzLDEwN2MtMS4yMywxLjQ1LTIuNDMsMi45My0zLjYyLDQuNDFsLTI1LjgxLS45MWE3LjQyLDcuNDIsMCwwLDAtNi4zNywzLjI2LDcuMzUsNy4zNSwwLDAsMC0uNTcsNy4xM2wxMC42NiwyMy40MWMtLjk0LDEuNy0xLjgzLDMuNDMtMi43Myw1LjE2TDI1LjA4LDE1My42YTcuMzUsNy4zNSwwLDAsMC00Ljc5LDExLjU0bDE1LDIwLjgyYy0uNTksMS44Ny0xLjEzLDMuNzctMS42OCw1LjY2bC0yNCw5YTcuMzUsNy4zNSwwLDAsMC0yLjQ0LDEyLjI1bDE4LjcyLDE3LjVjLS4yMSwxLjk1LS4zOCwzLjkxLS41NSw1Ljg4TDMuNDgsMjQ5Ljc1YTcuMzUsNy4zNSwwLDAsMCwwLDEyLjVMMjUuMywyNzUuNzZjLjE3LDIsLjM0LDMuOTIuNTUsNS44N0w3LjEzLDI5OS4xM2E3LjM1LDcuMzUsMCwwLDAsMi40NCwxMi4yNWwyNCw5Yy41NSwxLjg5LDEuMDgsMy43OCwxLjY4LDUuNjVsLTE1LDIwLjgzYTcuMzUsNy4zNSwwLDAsMCw0Ljc5LDExLjU0bDI1LjQyLDQuMTVjLjksMS43MiwxLjc5LDMuNDUsMi43Myw1LjE0TDQyLjU2LDM5MS4xMmE3LjM1LDcuMzUsMCwwLDAsLjU3LDcuMTMsNy4xMyw3LjEzLDAsMCwwLDYuMzcsMy4yNmwyNS44My0uOTFxMS43NywyLjIyLDMuNiw0LjRMNzMsNDMwLjE2QTcuMzYsNy4zNiwwLDAsMCw4MS44NCw0MzlMMTA3LDQzMy4wN3EyLjE4LDEuODMsNC40MSwzLjYxbC0uOTIsMjUuODJhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LDYuOTVsMjMuNDMtMTAuNjhjMS42OS45NCwzLjQyLDEuODMsNS4xNCwyLjczbDQuMTUsMjUuNDJhNy4zNCw3LjM0LDAsMCwwLDExLjU0LDQuNzhsMjAuODMtMTVjMS44Ni42LDMuNzYsMS4xMyw1LjY1LDEuNjhsOSwyNGE3LjM2LDcuMzYsMCwwLDAsMTIuMjUsMi40NGwxNy41LTE4LjcyYzEuOTUuMjEsMy45Mi4zOCw1Ljg4LjU1bDEzLjUxLDIxLjgyYTcuMzUsNy4zNSwwLDAsMCwxMi41LDBsMTMuNTEtMjEuODJjMi0uMTcsMy45My0uMzQsNS44OC0uNTZsMTcuNSwxOC43M2E3LjM2LDcuMzYsMCwwLDAsMTIuMjUtMi40NGw5LTI0YzEuODktLjU1LDMuNzgtMS4wOCw1LjY1LTEuNjhsMjAuODIsMTVhNy4zNCw3LjM0LDAsMCwwLDExLjU0LTQuNzhsNC4xNS0yNS40MmMxLjcyLS45LDMuNDUtMS43OSw1LjE1LTIuNzNsMjMuNDIsMTAuNjhhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LTYuOTVsLS45MS0yNS44MnEyLjIyLTEuNzksNC40LTMuNjFMNDMwLjE2LDQzOWE3LjM2LDcuMzYsMCwwLDAsOC44NC04Ljg0TDQzMy4wNyw0MDVxMS44My0yLjE3LDMuNjEtNC40bDI1LjgyLjkxYTcuMjMsNy4yMywwLDAsMCw2LjM3LTMuMjYsNy4zNSw3LjM1LDAsMCwwLC41OC03LjEzTDQ1OC43NywzNjcuN2MuOTQtMS43LDEuODMtMy40MywyLjczLTUuMTVsMjUuNDItNC4xNWE3LjM1LDcuMzUsMCwwLDAsNC43OS0xMS41NGwtMTUtMjAuODNjLjU5LTEuODcsMS4xMy0zLjc2LDEuNjctNS42NWwyNC05YTcuMzUsNy4zNSwwLDAsMCwyLjQ0LTEyLjI1bC0xOC43Mi0xNy41Yy4yMS0xLjk1LjM4LTMuOTEuNTUtNS44N2wyMS44Mi0xMy41MWE3LjM1LDcuMzUsMCwwLDAsMC0xMi41Wm0tMTUxLDEyOS4wOEExMy45MSwxMy45MSwwLDAsMCwzNDEsMzg5LjUxbC03LjY0LDM1LjY3QTE4Ny41MSwxODcuNTEsMCwwLDEsMTc3LDQyNC40NGwtNy42NC0zNS42NmExMy44NywxMy44NywwLDAsMC0xNi40Ni0xMC42OGwtMzEuNTEsNi43NmExODcuMzgsMTg3LjM4LDAsMCwxLTE2LjI2LTE5LjIxSDI1OC4zYzEuNzIsMCwyLjg5LS4yOSwyLjg5LTEuOTFWMzA5LjU1YzAtMS41Ny0xLjE3LTEuOTEtMi44OS0xLjkxSDIxMy40N2wuMDUtMzQuMzVIMjYyYzQuNDEsMCwyMy42NiwxLjI4LDI5Ljc5LDI1Ljg3LDEuOTEsNy41NSw2LjE3LDMyLjE0LDkuMDYsNDAsMi44OSw4LjgyLDE0LjYsMjYuNDYsMjcuMSwyNi40Nkg0MDdhMTg3LjMsMTg3LjMsMCwwLDEtMTcuMzQsMjAuMDlabTI1Ljc3LDM0LjQ5QTE1LjI0LDE1LjI0LDAsMSwxLDM2OCwzOTguMDhoLjQ0QTE1LjIzLDE1LjIzLDAsMCwxLDM4My4yNCw0MTMuMzJabS0yMjUuNjItLjY4YTE1LjI0LDE1LjI0LDAsMSwxLTE1LjI1LTE1LjI1aC40NUExNS4yNSwxNS4yNSwwLDAsMSwxNTcuNjIsNDEyLjY0Wk02OS41NywyMzQuMTVsMzIuODMtMTQuNmExMy44OCwxMy44OCwwLDAsMCw3LjA2LTE4LjMzTDEwMi42OSwxODZoMjYuNTZWMzA1LjczSDc1LjY1QTE4Ny42NSwxODcuNjUsMCwwLDEsNjkuNTcsMjM0LjE1Wk01OC4zMSwxOTguMDlhMTUuMjQsMTUuMjQsMCwwLDEsMTUuMjMtMTUuMjVINzRhMTUuMjQsMTUuMjQsMCwxLDEtMTUuNjcsMTUuMjRabTE1NS4xNiwyNC40OS4wNS0zNS4zMmg2My4yNmMzLjI4LDAsMjMuMDcsMy43NywyMy4wNywxOC42MiwwLDEyLjI5LTE1LjE5LDE2LjctMjcuNjgsMTYuN1pNMzk5LDMwNi43MWMtOS44LDEuMTMtMjAuNjMtNC4xMi0yMi0xMC4wOS01Ljc4LTMyLjQ5LTE1LjM5LTM5LjQtMzAuNTctNTEuNCwxOC44Ni0xMS45NSwzOC40Ni0yOS42NCwzOC40Ni01My4yNiwwLTI1LjUyLTE3LjQ5LTQxLjU5LTI5LjQtNDkuNDgtMTYuNzYtMTEtMzUuMjgtMTMuMjMtNDAuMjctMTMuMjNIMTE2LjMyQTE4Ny40OSwxODcuNDksMCwwLDEsMjIxLjIxLDcwLjA2bDIzLjQ3LDI0LjZhMTMuODIsMTMuODIsMCwwLDAsMTkuNi40NGwyNi4yNi0yNWExODcuNTEsMTg3LjUxLDAsMCwxLDEyOC4zNyw5MS40M2wtMTgsNDAuNTdBMTQsMTQsMCwwLDAsNDA4LDIyMC40M2wzNC41OSwxNS4zM2ExODcuMTIsMTg3LjEyLDAsMCwxLC40LDMyLjU0SDQyMy43MWMtMS45MSwwLTIuNjksMS4yNy0yLjY5LDMuMTN2OC44MkM0MjEsMzAxLDQwOS4zMSwzMDUuNTgsMzk5LDMwNi43MVpNMjQwLDYwLjIxQTE1LjI0LDE1LjI0LDAsMCwxLDI1NS4yMSw0NWguNDVBMTUuMjQsMTUuMjQsMCwxLDEsMjQwLDYwLjIxWk00MzYuODQsMjE0YTE1LjI0LDE1LjI0LDAsMSwxLDAtMzAuNDhoLjQ0YTE1LjI0LDE1LjI0LDAsMCwxLS40NCwzMC40OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FmYXJpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NC42OSwyNzQuNjlsLTM3LjM4LTM3LjM4TDE2NiwzNDZaTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhaTTQxMS44NSwxODIuNzlsMTQuNzgtNi4xM0E4LDgsMCwwLDEsNDM3LjA4LDE4MWgwYTgsOCwwLDAsMS00LjMzLDEwLjQ2TDQxOCwxOTcuNTdhOCw4LDAsMCwxLTEwLjQ1LTQuMzNoMEE4LDgsMCwwLDEsNDExLjg1LDE4Mi43OVpNMzE0LjQzLDk0bDYuMTItMTQuNzhBOCw4LDAsMCwxLDMzMSw3NC45MmgwYTgsOCwwLDAsMSw0LjMzLDEwLjQ1bC02LjEzLDE0Ljc4YTgsOCwwLDAsMS0xMC40NSw0LjMzaDBBOCw4LDAsMCwxLDMxNC40Myw5NFpNMjU2LDYwaDBhOCw4LDAsMCwxLDgsOFY4NGE4LDgsMCwwLDEtOCw4aDBhOCw4LDAsMCwxLTgtOFY2OEE4LDgsMCwwLDEsMjU2LDYwWk0xODEsNzQuOTJhOCw4LDAsMCwxLDEwLjQ2LDQuMzNMMTk3LjU3LDk0YTgsOCwwLDEsMS0xNC43OCw2LjEybC02LjEzLTE0Ljc4QTgsOCwwLDAsMSwxODEsNzQuOTJabS02My41OCw0Mi40OWgwYTgsOCwwLDAsMSwxMS4zMSwwTDE0MCwxMjguNzJBOCw4LDAsMCwxLDE0MCwxNDBoMGE4LDgsMCwwLDEtMTEuMzEsMGwtMTEuMzEtMTEuMzFBOCw4LDAsMCwxLDExNy40MSwxMTcuNDFaTTYwLDI1NmgwYTgsOCwwLDAsMSw4LThIODRhOCw4LDAsMCwxLDgsOGgwYTgsOCwwLDAsMS04LDhINjhBOCw4LDAsMCwxLDYwLDI1NlptNDAuMTUsNzMuMjEtMTQuNzgsNi4xM0E4LDgsMCwwLDEsNzQuOTIsMzMxaDBhOCw4LDAsMCwxLDQuMzMtMTAuNDZMOTQsMzE0LjQzYTgsOCwwLDAsMSwxMC40NSw0LjMzaDBBOCw4LDAsMCwxLDEwMC4xNSwzMjkuMjFabTQuMzMtMTM2aDBBOCw4LDAsMCwxLDk0LDE5Ny41N2wtMTQuNzgtNi4xMkE4LDgsMCwwLDEsNzQuOTIsMTgxaDBhOCw4LDAsMCwxLDEwLjQ1LTQuMzNsMTQuNzgsNi4xM0E4LDgsMCwwLDEsMTA0LjQ4LDE5My4yNFpNMTk3LjU3LDQxOGwtNi4xMiwxNC43OGE4LDgsMCwwLDEtMTQuNzktNi4xMmw2LjEzLTE0Ljc4QTgsOCwwLDEsMSwxOTcuNTcsNDE4Wk0yNjQsNDQ0YTgsOCwwLDAsMS04LDhoMGE4LDgsMCwwLDEtOC04VjQyOGE4LDgsMCwwLDEsOC04aDBhOCw4LDAsMCwxLDgsOFptNjctNi45MmgwYTgsOCwwLDAsMS0xMC40Ni00LjMzTDMxNC40Myw0MThhOCw4LDAsMCwxLDQuMzMtMTAuNDVoMGE4LDgsMCwwLDEsMTAuNDUsNC4zM2w2LjEzLDE0Ljc4QTgsOCwwLDAsMSwzMzEsNDM3LjA4Wm02My41OC00Mi40OWgwYTgsOCwwLDAsMS0xMS4zMSwwTDM3MiwzODMuMjhBOCw4LDAsMCwxLDM3MiwzNzJoMGE4LDgsMCwwLDEsMTEuMzEsMGwxMS4zMSwxMS4zMUE4LDgsMCwwLDEsMzk0LjU5LDM5NC41OVpNMjg2LjI1LDI4Ni4yNSwxMTAuMzQsNDAxLjY2LDIyNS43NSwyMjUuNzUsNDAxLjY2LDExMC4zNFpNNDM3LjA4LDMzMWgwYTgsOCwwLDAsMS0xMC40NSw0LjMzbC0xNC43OC02LjEzYTgsOCwwLDAsMS00LjMzLTEwLjQ1aDBBOCw4LDAsMCwxLDQxOCwzMTQuNDNsMTQuNzgsNi4xMkE4LDgsMCwwLDEsNDM3LjA4LDMzMVpNNDQ0LDI2NEg0MjhhOCw4LDAsMCwxLTgtOGgwYTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOGgwQTgsOCwwLDAsMSw0NDQsMjY0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWxlc2ZvcmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OC44OSAyNDUuNjRoLTI2LjM1Yy42OS01LjE2IDMuMzItMTQuMTIgMTMuNjQtMTQuMTIgNi43NSAwIDExLjk3IDMuODIgMTIuNzEgMTQuMTJ6bTEzNi42Ni0xMy44OGMtLjQ3IDAtMTQuMTEtMS43Ny0xNC4xMSAyMHMxMy42MyAyMCAxNC4xMSAyMGMxMyAwIDE0LjExLTEzLjU0IDE0LjExLTIwIDAtMjEuNzYtMTMuNjYtMjAtMTQuMTEtMjB6bS0yNDMuMjIgMjMuNzZhOC42MyA4LjYzIDAgMCAwLTMuMjkgNy4yOWMwIDQuNzggMi4wOCA2LjA1IDMuMjkgNy4wNSA0LjcgMy43IDE1LjA3IDIuMTIgMjAuOTMuOTV2LTE2Ljk0Yy01LjMyLTEuMDctMTYuNzMtMS45Ni0yMC45MyAxLjY1ek02NDAgMjMyYzAgODcuNTgtODAgMTU0LjM5LTE2NS4zNiAxMzYuNDMtMTguMzcgMzMtNzAuNzMgNzAuNzUtMTMyLjIgNDEuNjMtNDEuMTYgOTYuMDUtMTc3Ljg5IDkyLjE4LTIxMy44MS01LjE3QzguOTEgNDI4Ljc4LTUwLjE5IDI2Ni41MiA1My4zNiAyMDUuNjEgMTguNjEgMTI2LjE4IDc2IDMyIDE2Ny42NyAzMmExMjQuMjQgMTI0LjI0IDAgMCAxIDk4LjU2IDQ4LjdjMjAuNy0yMS40IDQ5LjQtMzQuODEgODEuMTUtMzQuODEgNDIuMzQgMCA3OSAyMy41MiA5OC44IDU4LjU3QzUzOSA2My43OCA2NDAgMTMyLjY5IDY0MCAyMzJ6bS01MTkuNTUgMzEuOGMwLTExLjc2LTExLjY5LTE1LjE3LTE3Ljg3LTE3LjE3LTUuMjctMi4xMS0xMy40MS0zLjUxLTEzLjQxLTguOTQgMC05LjQ2IDE3LTYuNjYgMjUuMTctMi4xMiAwIDAgMS4xNy43MSAxLjY0LS40Ny4yNC0uNyAyLjM2LTYuNTggMi41OS03LjI5YTEuMTMgMS4xMyAwIDAgMC0uNy0xLjQxYy0xMi4zMy03LjYzLTQwLjctOC41MS00MC43IDEyLjcgMCAxMi40NiAxMS40OSAxNS40NCAxNy44OCAxNy4xNyA0LjcyIDEuNTggMTMuMTcgMyAxMy4xNyA4LjcgMCA0LTMuNTMgNy4wNi05LjE3IDcuMDZhMzEuNzYgMzEuNzYgMCAwIDEtMTktNi4zNWMtLjQ3LS4yMy0xLjQyLS43MS0xLjY1LjcxbC0yLjQgNy40N2MtLjQ3Ljk0LjIzIDEuMTguMjMgMS40MSAxLjc1IDEuNCAxMC4zIDYuNTkgMjIuODIgNi41OSAxMy4xNyAwIDIxLjQtNy4wNiAyMS40LTE4LjExem0zMi00Mi41OGMtMTAuMTMgMC0xOC42NiAzLjE3LTIxLjQgNS4xOGExIDEgMCAwIDAtLjI0IDEuNDFsMi41OSA3LjA2YTEgMSAwIDAgMCAxLjE4LjdjLjY1IDAgNi44LTQgMTYuOTMtNCA0IDAgNy4wNi43MSA5LjE4IDIuMzYgMy42IDIuOCAzLjA2IDguMjkgMy4wNiAxMC41OC00Ljc5LS4zLTE5LjExLTMuNDQtMjkuNDEgMy43NmExNi45MiAxNi45MiAwIDAgMC03LjM0IDE0LjU0YzAgNS45IDEuNTEgMTAuNCA2LjU5IDE0LjM1IDEyLjI0IDguMTYgMzYuMjggMiAzOC4xIDEuNDEgMS41OC0uMzIgMy41My0uNjYgMy41My0xLjg4di0zMy44OGMuMDQtNC42MS4zMi0yMS42NC0yMi43OC0yMS42NHpNMTk5IDIwMC4yNGExLjExIDEuMTEgMCAwIDAtMS4xOC0xLjE4SDE4OGExLjExIDEuMTEgMCAwIDAtMS4xNyAxLjE4djc5YTEuMTEgMS4xMSAwIDAgMCAxLjE3IDEuMThoOS44OGExLjExIDEuMTEgMCAwIDAgMS4xOC0xLjE4em01NS43NSAyOC45M2MtMi4xLTIuMzEtNi43OS03LjUzLTE3LjY1LTcuNTMtMy41MSAwLTE0LjE2LjIzLTIwLjcgOC45NC02LjM1IDcuNjMtNi41OCAxOC4xMS02LjU4IDIxLjQxIDAgMy4xMi4xNSAxNC4yNiA3LjA2IDIxLjE3IDIuNjQgMi45MSA5LjA2IDguMjMgMjIuODEgOC4yMyAxMC44MiAwIDE2LjQ3LTIuMzUgMTguNTgtMy43Ni40Ny0uMjQuNzEtLjcxLjI0LTEuODhsLTIuMzUtNi44M2ExLjI2IDEuMjYgMCAwIDAtMS40MS0uN2MtMi41OS45NC02LjM1IDIuODItMTUuMjkgMi44Mi0xNy40MiAwLTE2Ljg1LTE0Ljc0LTE2Ljk0LTE2LjdoMzcuMTdhMS4yMyAxLjIzIDAgMCAwIDEuMTctLjk0Yy0uMjkgMCAyLjA3LTE0LjctNi4wOS0yNC4yM3ptMzYuNjkgNTIuNjljMTMuMTcgMCAyMS40MS03LjA2IDIxLjQxLTE4LjExIDAtMTEuNzYtMTEuNy0xNS4xNy0xNy44OC0xNy4xNy00LjE0LTEuNjYtMTMuNDEtMy4zOC0xMy40MS04Ljk0IDAtMy43NiAzLjI5LTYuMzUgOC40Ny02LjM1YTM4LjExIDM4LjExIDAgMCAxIDE2LjcgNC4yM3MxLjE4LjcxIDEuNjUtLjQ3Yy4yMy0uNyAyLjM1LTYuNTggMi41OC03LjI5YTEuMTMgMS4xMyAwIDAgMC0uNy0xLjQxYy03LjkxLTQuOS0xNi43NC00Ljk0LTIwLjIzLTQuOTQtMTIgMC0yMC40NiA3LjI5LTIwLjQ2IDE3LjY0IDAgMTIuNDYgMTEuNDggMTUuNDQgMTcuODcgMTcuMTcgNi4xMSAyIDEzLjE3IDMuMjYgMTMuMTcgOC43IDAgNC0zLjUyIDcuMDYtOS4xNyA3LjA2YTMxLjggMzEuOCAwIDAgMS0xOS02LjM1IDEgMSAwIDAgMC0xLjY1LjcxbC0yLjM1IDcuNTJjLS40Ny45NC4yMyAxLjE4LjIzIDEuNDEgMS43MiAxLjQgMTAuMzMgNi41OSAyMi43OSA2LjU5ek0zNTcuMDkgMjI0YzAtLjcxLS4yNC0xLjE4LTEuMTgtMS4xOGgtMTEuNzZjMC0uMTQuOTQtOC45NCA0LjQ3LTEyLjQ3IDQuMTYtNC4xNSAxMS43Ni0xLjY0IDEyLTEuNjQgMS4xNy40NyAxLjQxIDAgMS42NC0uNDdsMi44My03Ljc3Yy43LS45NCAwLTEuMTctLjI0LTEuNDEtNS4wOS0yLTE3LjM1LTIuODctMjQuNDYgNC4yNC01LjQ4IDUuNDgtNyAxMy45Mi04IDE5LjUyaC04LjQ3YTEuMjggMS4yOCAwIDAgMC0xLjE3IDEuMThsLTEuNDIgNy43NmMwIC43LjI0IDEuMTcgMS4xOCAxLjE3aDguMjNjLTguNTEgNDcuOS04Ljc1IDUwLjIxLTEwLjM1IDU1LjUyLTEuMDggMy42Mi0zLjI5IDYuOS01Ljg4IDcuNzYtLjA5IDAtMy44OCAxLjY4LTkuNjQtLjI0IDAgMC0uOTQtLjQ3LTEuNDEuNzEtLjI0LjcxLTIuNTkgNi44Mi0yLjgzIDcuNTNzMCAxLjQxLjQ3IDEuNDFjNS4xMSAyIDEzIDEuNzcgMTcuODggMCA2LjI4LTIuMjggOS43Mi03Ljg5IDExLjUzLTEyLjk0IDIuNzUtNy43MSAyLjgxLTkuNzkgMTEuNzYtNTkuNzRoMTIuMjNhMS4yOSAxLjI5IDAgMCAwIDEuMTgtMS4xOHptNTMuMzkgMTZjLS41Ni0xLjY4LTUuMS0xOC4xMS0yNS4xNy0xOC4xMS0xNS4yNSAwLTIzIDEwLTI1LjE2IDE4LjExLTEgMy0zLjE4IDE0IDAgMjMuNTIuMDkuMyA0LjQxIDE4LjEyIDI1LjE2IDE4LjEyIDE0Ljk1IDAgMjIuOS05LjYxIDI1LjE3LTE4LjEyIDMuMjEtOS42MSAxLjAxLTIwLjUyIDAtMjMuNTJ6bTQ1LjQtMTYuN2MtNS0xLjY1LTE2LjYyLTEuOS0yMi4xMSA1LjQxdi00LjQ3YTEuMTEgMS4xMSAwIDAgMC0xLjE4LTEuMTdoLTkuNGExLjExIDEuMTEgMCAwIDAtMS4xOCAxLjE3djU1LjI4YTEuMTIgMS4xMiAwIDAgMCAxLjE4IDEuMThoOS42NGExLjEyIDEuMTIgMCAwIDAgMS4xOC0xLjE4di0yNy43N2MwLTIuOTEuMDUtMTEuMzcgNC40Ni0xNS4wNSA0LjktNC45IDEyLTMuMzYgMTMuNDEtMy4wNmExLjU3IDEuNTcgMCAwIDAgMS40MS0uOTQgNzQgNzQgMCAwIDAgMy4wNi04IDEuMTYgMS4xNiAwIDAgMC0uNDctMS40MXptNDYuODEgNTQuMWwtMi4xMi03LjI5Yy0uNDctMS4xOC0xLjQxLS43MS0xLjQxLS43MS00LjIzIDEuODItMTAuMTUgMS44OS0xMS4yOSAxLjg5LTQuNjQgMC0xNy4xNy0xLjEzLTE3LjE3LTE5Ljc2IDAtNi4yMyAxLjg1LTE5Ljc2IDE2LjQ3LTE5Ljc2YTM0Ljg1IDM0Ljg1IDAgMCAxIDExLjUyIDEuNjVzLjk0LjQ3IDEuMTgtLjcxYy45NC0yLjU5IDEuNjQtNC40NyAyLjU5LTcuNTMuMjMtLjk0LS40Ny0xLjE3LS43MS0xLjE3LTExLjU5LTMuODctMjIuMzQtMi41My0yNy43NiAwLTEuNTkuNzQtMTYuMjMgNi40OS0xNi4yMyAyNy41MiAwIDIuOS0uNTggMzAuMTEgMjguOTQgMzAuMTFhNDQuNDUgNDQuNDUgMCAwIDAgMTUuNTItMi44MyAxLjMgMS4zIDAgMCAwIC40Ny0xLjQyem01My44Ny0zOS41MmMtLjgtMy01LjM3LTE2LjIzLTIyLjM1LTE2LjIzLTE2IDAtMjMuNTIgMTAuMTEtMjUuNjQgMTguNTlhMzguNTggMzguNTggMCAwIDAtMS42NSAxMS43NmMwIDI1Ljg3IDE4Ljg0IDI5LjQgMjkuODggMjkuNCAxMC44MiAwIDE2LjQ2LTIuMzUgMTguNTgtMy43Ni40Ny0uMjQuNzEtLjcxLjI0LTEuODhsLTIuMzYtNi44M2ExLjI2IDEuMjYgMCAwIDAtMS40MS0uN2MtMi41OS45NC02LjM1IDIuODItMTUuMjkgMi44Mi0xNy40MiAwLTE2Ljg1LTE0Ljc0LTE2LjkzLTE2LjdoMzcuMTZhMS4yNSAxLjI1IDAgMCAwIDEuMTgtLjk0Yy0uMjQtLjAxLjk0LTcuMDctMS40MS0xNS41NHptLTIzLjI5LTYuMzVjLTEwLjMzIDAtMTMgOS0xMy42NCAxNC4xMkg1NDZjLS44OC0xMS45Mi03LjYyLTE0LjEzLTEyLjczLTE0LjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS44NCAzNzguOTJjLS4zLjYtLjYgMS4wOCAwIDB6bTI0OS4xMy04N2ExMzEuMTYgMTMxLjE2IDAgMCAwLTU4IDEzLjVjLTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjI5IDUuOWExMjIuODMgMTIyLjgzIDAgMCAwLTUuMyAxOS4xYy0yLjMgMTEuNy0yNS43OSA1My41LTM5LjA5IDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4yOS02LjctMjQgMi41LTI1LjMgNS45LTIuNyAxMS40LTUuMyAxOS4xLTMzLjg5IDc3LjMtNDIuMDggOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQuOC0uNyAxLjMtLjkgMS43LjMtLjUuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43di4xYy0xLjcgMy4yLTMuNiA2LjEtNC41IDYuMS0uNiAwLTEuOS04LjQuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuMzktNDIuNGMtMTguNCAwLTQ0IDIwLjItNTYuNTggMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1Ljc5LTM4LjItMTAxLjg3LTY1LjItOTkuMDctMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4wNy0xMjcuNCA5OC00OC44IDE3Ni4zNS0zNS40IDE4OS44NC01LjYgMTkuNCA0Mi41LTQxLjg5IDEyMS42LTE0My42NiAxMzMtMzguNzkgNC4zLTU5LjE4LTEwLjctNjQuMjgtMTYuMy01LjMtNS45LTYuMS02LjItOC4xLTUuMS0zLjMgMS44LTEuMiA3IDAgMTAuMSAzIDcuOSAxNS41IDIxLjkgMzYuNzkgMjguOSAxOC43IDYuMSA2NC4xOCA5LjUgMTE5LjE3LTExLjggNjEuNzgtMjMuOCAxMDkuODctOTAuMSA5NS43Ny0xNDUuNkMzODYuNTIgMTguMzIgMjkzLS4xOCAyMDQuNTcgMzEuMjJjLTUyLjY5IDE4LjctMTA5LjY3IDQ4LjEtMTUwLjY2IDg2LjQtNDguNjkgNDUuNi01Ni40OCA4NS4zLTUzLjI4IDEwMS45IDExLjM5IDU4LjkgOTIuNTcgOTcuMyAxMjUuMDYgMTI1LjctMS42LjktMy4xIDEuNy00LjUgMi41LTE2LjI5IDguMS03OC4xOCA0MC41LTkzLjY3IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjI5IDcwLjQgNDEuNzkgMTEuNiA4NC41OC05LjMgMTA3LjU3LTQzLjZzMjAuMi03OS4xIDkuNi05OS41Yy0uMS0uMy0uMy0uNS0uNC0uOCA0LjItMi41IDguNS01IDEyLjgtNy41IDguMjktNC45IDE2LjM5LTkuNCAyMy40OS0xMy4zLTQgMTAuOC02LjkgMjMuOC04LjQgNDIuNi0xLjggMjIgNy4zIDUwLjUgMTkuMSA2MS43IDUuMiA0LjkgMTEuNDkgNSAxNS4zOSA1IDEzLjggMCAyMC0xMS40IDI2Ljg5LTI1IDguNS0xNi42IDE2LTM1LjkgMTYtMzUuOXMtOS40IDUyLjIgMTYuMyA1Mi4yYzkuMzkgMCAxOC43OS0xMi4xIDIzLTE4LjN2LjFzLjItLjQuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40di0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC41OS00NiAxNi4yLTMxLjggMzEuNjktNzEuNSAzMS42OS03MS41YTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yYS4zMS4zMSAwIDAgMCAuMS4yYy0zIDQtNi40IDguMy05LjkgMTIuNS0xMi43OSAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNjkgMi41IDExLjUtLjggMTkuNi0zLjYgMjMuNS01LjRhODIuMiA4Mi4yIDAgMCAwIDIwLjE5LTEwLjZjMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01QzQzNC44IDMwMS43MiA0NTAuMSAyNzAgNDUwLjEgMjcwYTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi40IDguMSA3LjA5IDE3IDExLjM5IDI1LjctMTguNTkgMTUuMS0zMC4wOSAzMi42LTM0LjA5IDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjVhNzkuNDYgNzkuNDYgMCAwIDAgMjEuNTktMTEuMWMxMi41LTkuMiAyNC41OS0yMi4xIDIzLjc5LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjA5LTEwLjIgNjIuMDktNy4yIDU1LjY4IDYuNSA2Ni41OCA0MS4zIDY0LjQ4IDU1LjhzLTEzLjggMjIuNi0xNy43IDI1LTUuMSAzLjMtNC44IDUuMWMuNSAyLjYgMi4zIDIuNSA1LjYgMS45IDQuNi0uOCAyOS4xOS0xMS44IDMwLjI5LTM4LjcgMS42LTM0LTMxLjA5LTcxLjQtODktNzEuMXptLTQyOS4xOCAxNDQuN2MtMTguMzkgMjAuMS00NC4xOSAyNy43LTU1LjI4IDIxLjNDNTQuNjEgNDUxIDU5LjMxIDQyMS40MiA4MiA0MDBjMTMuOC0xMyAzMS41OS0yNSA0My4zOS0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkuOC0uNSAxLjItLjcgMS4yLS43LjktLjYgMS45LTEuMSAyLjktMS43IDguMjkgMzAuNC4zIDU3LjItMTkuMSA3OC4zem0xMzQuMzYtOTEuNGMtNi40IDE1LjctMTkuODkgNTUuNy0yOC4wOSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4wOS0xMS4zIDIxLjE5LTE0LjkgMjMuNzktMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC44OS0xMy45IDAgLjUuMSAxIC4xIDEuNi0uMTMgMTcuOS0xNy4zMiAzMC0yNS4xMiAzNC44em04NS41OC0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNTktMTUuMyAxOS0yNC41YTM2LjE4IDM2LjE4IDAgMCAxIDEuOSAxMC44Yy0uMSAyMi41LTE2LjIgMzAuOS0yNS44OSAzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hsaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMUwxNzYgMTM1bC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHptLTIxLjItODMuN2wyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguN0w1OSAyMDYuNXptLTMwLjYgMTYuNmwyMC44LTEyLjggMy4zIDMzLjQtMjIuOSAxMi0xLjItMzIuNnpNMS40IDI2OGwxOS4yLTEwLjIuNCAzOC4yLTIxIDguOEwxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjhMOTAuMSAyMjFsOC45IDQyLjJ6TTEyMy4yIDM3N2wtNDEuNiA1LjktOC4xLTYzLjUgMzUuMi0xMC44IDE0LjUgNjguNHptMjguNS0xMzkuOWwyMS4yIDU3LjEtNDYuMiAxMy42LTEzLjctNTQuMSAzOC43LTE2LjZ6bTg1LjcgMjMwLjVsLTcwLjktMy4zLTI0LjMtOTUuOCA1NS4yLTguNiA0MCAxMDcuN3ptLTg0LjktMjc5LjdsNDIuMi0yMi40IDI4IDQ1LjktNTAuOCAyMS4zLTE5LjQtNDQuOHptNDEgOTQuOWw2MS4zLTE4LjcgNTIuOCA4Ni42LTc5LjggMTEuMy0zNC4zLTc5LjJ6bTUxLjQtODUuNmw2Ny4zLTI4LjggNjUuNSA2NS40LTg4LjYgMjYuMi00NC4yLTYyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjcmVlbnBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzMuNSAyMi40OUMyMzMuNSAxMC4wNyAyNDMuNiAwIDI1NiAwQzI2OC40IDAgMjc4LjUgMTAuMDcgMjc4LjUgMjIuNDlDMjc4LjUgMzQuOTEgMjY4LjQgNDQuOTggMjU2IDQ0Ljk4QzI0My42IDQ0Ljk4IDIzMy41IDM0LjkxIDIzMy41IDIyLjQ5ek0zMTMuNCAyNTlDMzEzLjQgMjkwLjcgMjg3LjcgMzE2LjQgMjU2IDMxNi40QzIyNC4zIDMxNi40IDE5OC42IDI5MC43IDE5OC42IDI1OUMxOTguNiAyMjcuMyAyMjQuMyAyMDEuNiAyNTYgMjAxLjZDMjg3LjcgMjAxLjYgMzEzLjQgMjI3LjMgMzEzLjQgMjU5ek0zMzcuMiAzNTBDMzU5LjUgMzMwLjEgMzczLjcgMzAyLjcgMzc3LjEgMjczSDQ5Ni42QzQ5My4xIDMzNC40IDQ2Ni4yIDM5Mi4yIDQyMS40IDQzNC40QzM3Ni43IDQ3Ni42IDMxNy41IDUwMC4yIDI1NiA1MDAuMkMxOTQuNSA1MDAuMiAxMzUuMyA0NzYuNiA5MC41NiA0MzQuNEM0NS44MyAzOTIuMiAxOC45NCAzMzQuNCAxNS4zOSAyNzNIMTM1LjFDMTM4LjUgMzAyLjcgMTUyLjcgMzMwLjEgMTc1IDM1MEMxOTcuMyAzNjkuOSAyMjYuMiAzODAuOSAyNTYuMSAzODAuOUMyODUuMSAzODAuOSAzMTQuOCAzNjkuOSAzMzcuMiAzNTB6TTczLjE0IDE0MC4zQzczLjU0IDE1Mi43IDYzLjgxIDE2My4xIDUxLjM5IDE2My41QzM4Ljk3IDE2My45IDI4LjU5IDE1NC4yIDI4LjE4IDE0MS44QzI3Ljc4IDEyOS4zIDM3LjUyIDExOC45IDQ5Ljk0IDExOC41QzYyLjM1IDExOC4xIDcyLjc0IDEyNy45IDczLjE0IDE0MC4zek00MzguOSAxNDFDNDM4LjkgMTI4LjYgNDQ4LjkgMTE4LjUgNDYxLjQgMTE4LjVDNDczLjggMTE4LjUgNDgzLjggMTI4LjYgNDgzLjggMTQxQzQ4My44IDE1My41IDQ3My44IDE2My41IDQ2MS40IDE2My41QzQ0OC45IDE2My41IDQzOC45IDE1My41IDQzOC45IDE0MXpNMzE3LjkgOTUuMjdDMzAwLjYgMTA5LjEgMjc4LjcgMTE4LjEgMjU2IDExOC4xQzIzMy4zIDExOC4xIDIxMS40IDEwOS4xIDE5NC4xIDk1LjI3QzE3Ni44IDgwLjU1IDE2NS4zIDYwLjE4IDE2MS43IDM3Ljc4QzE3Ni44IDMxLjM3IDE5Mi41IDI2LjUyIDIwOC42IDIzLjMxQzIwOC42IDM1Ljg4IDIxMy42IDQ3LjkzIDIyMi41IDU2LjgyQzIzMS40IDY1LjcgMjQzLjQgNzAuNyAyNTYgNzAuN0MyNjguNiA3MC43IDI4MC42IDY1LjcgMjg5LjUgNTYuODJDMjk4LjQgNDcuOTMgMzAzLjQgMzUuODggMzAzLjQgMjMuMzFDMzE5LjUgMjYuNTIgMzM1LjIgMzEuMzcgMzUwLjMgMzcuNzhDMzQ2LjcgNjAuMTggMzM1LjIgODAuNTUgMzE3LjkgOTUuMjdIMzE3Ljl6TTgyLjc4IDIzMUM2MS40MiAyMzguNiAzOC4wNiAyMzguNCAxNi44NiAyMzAuNEMxOC44MiAyMTQuMSAyMi40NiAxOTguMSAyNy43MSAxODIuNUMzMy4xIDE4NS42IDM5LjA1IDE4Ny42IDQ1LjIyIDE4OC41QzUxLjM5IDE4OS4zIDU3LjY3IDE4OC45IDYzLjY4IDE4Ny4zQzY5LjY5IDE4NS42IDc1LjMzIDE4Mi45IDgwLjI3IDE3OS4xQzg1LjIxIDE3NS4zIDg5LjM2IDE3MC42IDkyLjQ3IDE2NS4yQzk1LjU4IDE1OS44IDk3LjYxIDE1My44IDk4LjQyIDE0Ny43Qzk5LjIzIDE0MS41IDk4LjgzIDEzNS4yIDk3LjIyIDEyOS4yQzk1LjYxIDEyMy4yIDkyLjgzIDExNy42IDg5LjA0IDExMi42Qzg1LjI1IDEwNy43IDgwLjUzIDEwMy41IDc1LjE0IDEwMC40Qzg1Ljk2IDg4LjExIDk4LjAxIDc2Ljk0IDExMS4xIDY3LjA3QzEyOC43IDgxLjQyIDE0MC42IDEwMS42IDE0NC43IDEyMy45QzE0OC44IDE0Ni4yIDE0NC44IDE2OS4zIDEzMy41IDE4OC45QzEyMi4xIDIwOC41IDEwNC4xIDIyMy40IDgyLjc4IDIzMVYyMzF6TTQyOS4yIDIzMS4xQzQwNy45IDIyMy41IDM4OS45IDIwOC41IDM3OC41IDE4OC45QzM2Ny4yIDE2OS4zIDM2My4zIDE0Ni4yIDM2Ny40IDEyMy45QzM3MS41IDEwMS43IDM4My40IDgxLjU0IDQwMC45IDY3LjE5QzQxNCA3Ny4wNCA0MjYuMSA4OC4yMSA0MzYuOSAxMDAuNUM0MjYuMiAxMDYuOSA0MTguNSAxMTcuMiA0MTUuNCAxMjkuM0M0MTIuMiAxNDEuMyA0MTMuMSAxNTQuMSA0MjAuMiAxNjQuOUM0MjYuNCAxNzUuNyA0MzYuNiAxODMuNiA0NDguNiAxODYuOUM0NjAuNiAxOTAuMiA0NzMuNSAxODguNiA0ODQuMyAxODIuNkM0ODkuNiAxOTguMSA0OTMuMiAyMTQuMiA0OTUuMiAyMzAuNEM0NzMuMSAyMzguNSA0NTAuNiAyMzguNyA0MjkuMiAyMzEuMUw0MjkuMiAyMzEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyaWJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjMgMjUyLjdjLTE2LjEtMTktMjQuNy00NS45LTI0LjgtNzkuOSAwLTEwMC40IDc1LjItMTUzLjEgMTY3LjItMTUzLjEgOTguNi0xLjYgMTU2LjggNDkgMTg0LjMgNzAuNmwtNTAuNSA3Mi4xLTM3LjMtMjQuNiAyNi45LTM4LjZjLTM2LjUtMjQtNzkuNC0zNi41LTEyMy0zNS44LTUwLjctLjgtMTExLjcgMjcuMi0xMTEuNyA3Ni4yIDAgMTguNyAxMS4yIDIwLjcgMjguNiAxNS42IDIzLjMtNS4zIDQxLjkuNiA1NS44IDE0IDI2LjQgMjQuMyAyMy4yIDY3LjYtLjcgOTEuOS0yOS4yIDI5LjUtODUuMiAyNy4zLTExNC44LTguNHptMzE3LjcgNS45Yy0xNS41LTE4LjgtMzguOS0yOS40LTYzLjItMjguNi0zOC4xLTItNzEuMSAyOC03MC41IDY3LjItLjcgMTYuOCA2IDMzIDE4LjQgNDQuMyAxNC4xIDEzLjkgMzMgMTkuNyA1Ni4zIDE0LjQgMTcuNC01LjEgMjguNi0zLjEgMjguNiAxNS42IDAgNC4zLS41IDguNS0xLjQgMTIuNy0xNi43IDQwLjktNTkuNSA2NC40LTEyMS40IDY0LjQtNTEuOS4yLTEwMi40LTE2LjQtMTQ0LjEtNDcuM2wzMy43LTM5LjQtMzUuNi0yNy40TDAgNDA2LjNsMTUuNCAxMy44YzUyLjUgNDYuOCAxMjAuNCA3Mi41IDE5MC43IDcyLjIgNTEuNCAwIDk0LjQtMTAuNSAxMzMuNi00NC4xIDU3LjEtNTEuNCA1NC4yLTE0OS4yIDIwLjMtMTg5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaGVuZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMC42IDEzMC4zbC02Ny4yIDI4LjJWNDMuMkw5OC43IDIzMy41bDU0LjctMjQuMnYxMzAuM2w2Ny4yLTIwOS4zem0tODMuMi05Ni43bC0xLjMgNC43LTE1LjIgNTIuOUM4MC42IDEwNi43IDUyIDE0NS44IDUyIDE5MS41YzAgNTIuMyAzNC4zIDk1LjkgODMuNCAxMDUuNXY1My42QzU3LjUgMzQwLjEgMCAyNzIuNCAwIDE5MS42YzAtODAuNSA1OS44LTE0Ny4yIDEzNy40LTE1OHptMzExLjQgNDQ3LjJjLTExLjIgMTEuMi0yMy4xIDEyLjMtMjguNiAxMC41LTUuNC0xLjgtMjcuMS0xOS45LTYwLjQtNDQuNC0zMy4zLTI0LjYtMzMuNi0zNS43LTQzLTU2LjctOS40LTIwLjktMzAuNC00Mi42LTU3LjUtNTIuNGwtOS43LTE0LjdjLTI0LjcgMTYuOS01MyAyNi45LTgxLjMgMjguN2wyLjEtNi42IDE1LjktNDkuNWM0Ni41LTExLjkgODAuOS01NCA4MC45LTEwNC4yIDAtNTQuNS0zOC40LTEwMi4xLTk2LTEwNy4xVjMyLjNDMjU0LjQgMzcuNCAzMjAgMTA2LjggMzIwIDE5MS42YzAgMzMuNi0xMS4yIDY0LjctMjkgOTAuNGwxNC42IDkuNmM5LjggMjcuMSAzMS41IDQ4IDUyLjQgNTcuNHMzMi4yIDkuNyA1Ni44IDQzYzI0LjYgMzMuMiA0Mi43IDU0LjkgNDQuNSA2MC4zcy43IDE3LjMtMTAuNSAyOC41em0tOS45LTE3LjljMC00LjQtMy42LTgtOC04cy04IDMuNi04IDggMy42IDggOCA4IDgtMy42IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VsbGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjQgMzJIOTQuN0M0Mi42IDMyIDAgNzQuNiAwIDEyNi42djI1OC43QzAgNDM3LjQgNDIuNiA0ODAgOTQuNyA0ODBoMjU4LjdjNTIuMSAwIDk0LjctNDIuNiA5NC43LTk0LjZWMTI2LjZjMC01Mi00Mi42LTk0LjYtOTQuNy05NC42em0tNTAgMzE2LjRjLTI3LjkgNDguMi04OS45IDY0LjktMTM4LjIgMzcuMi0yMi45IDM5LjgtNTQuOSA4LjYtNDIuMy0xMy4ybDE1LjctMjcuMmM1LjktMTAuMyAxOS4yLTEzLjkgMjkuNS03LjkgMTguNiAxMC44LS4xLS4xIDE4LjUgMTAuNyAyNy42IDE1LjkgNjMuNCA2LjMgNzkuNC0yMS4zIDE1LjktMjcuNiA2LjMtNjMuNC0yMS4zLTc5LjQtMTcuOC0xMC4yLS42LS40LTE4LjYtMTAuNi0yNC42LTE0LjItMy40LTUxLjkgMjEuNi0zNy41IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgNDguNCAyOCA2NS4xIDkwLjMgMzcuMiAxMzguNXptMjEuOC0yMDguOGMtMTcgMjkuNS0xNi4zIDI4LjgtMTkgMzEuNS02LjUgNi41LTE2LjMgOC43LTI2LjUgMy42LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTI3LjYtMTUuOS02My40LTYuMy03OS40IDIxLjNzLTYuMyA2My40IDIxLjMgNzkuNGMwIDAgMTguNSAxMC42IDE4LjYgMTAuNiAyNC42IDE0LjIgMy40IDUxLjktMjEuNiAzNy41LTE4LjYtMTAuOC4xLjEtMTguNS0xMC43LTQ4LjItMjcuOC02NC45LTkwLjEtMzcuMS0xMzguNCAyNy45LTQ4LjIgODkuOS02NC45IDEzOC4yLTM3LjJsNC44LTguNGMxNC4zLTI0LjkgNTItMy4zIDM3LjcgMjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VsbHN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUzOS43MSAyMzcuMzA4YzMuMDY0LTEyLjI1NyA0LjI5LTI0LjgyMSA0LjI5LTM3LjM4NEM1NDQgMTA3LjM4MiA0NjguNjE4IDMyIDM3Ni4wNzYgMzJjLTc3LjIyIDAtMTQ0LjYzNCA1My4wMTItMTYzLjAyIDEyNy43ODEtMTUuMzIyLTEzLjE3Ni0zNC45MzQtMjAuNTMtNTUuMTU3LTIwLjUzLTQ2LjI3MSAwLTgzLjk2MiAzNy42OS04My45NjIgODMuOTYxIDAgNy4zNTQuOTIgMTUuMDE1IDMuMDY1IDIyLjM2OS00Mi45IDIwLjIyNS03MC43ODUgNjMuNzM4LTcwLjc4NSAxMTEuMjM0QzYuMjE2IDQyNC44NDMgNjEuNjggNDgwIDEyOS40MDEgNDgwaDM4MS4xOThjNjcuNzIgMCAxMjMuMTg0LTU1LjE1NyAxMjMuMTg0LTEyMy4xODQuMDAxLTU2LjM4NC0zOC45MTYtMTA2LjAyNS05NC4wNzMtMTE5LjUwOHpNMTk5Ljg4IDQwMS41NTRjMCA4LjI3NC03LjA0OCAxNS4zMjEtMTUuMzIxIDE1LjMyMUgxNTMuNjFjLTguMjc0IDAtMTUuMzIxLTcuMDQ4LTE1LjMyMS0xNS4zMjFWMjkwLjYyNmMwLTguMjczIDcuMDQ4LTE1LjMyMSAxNS4zMjEtMTUuMzIxaDMwLjk0OWM4LjI3NCAwIDE1LjMyMSA3LjA0OCAxNS4zMjEgMTUuMzIxdjExMC45Mjh6bTg5LjQ3NyAwYzAgOC4yNzQtNy4wNDggMTUuMzIxLTE1LjMyMiAxNS4zMjFoLTMwLjk0OWMtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYyNzAuMDk2YzAtOC4yNzQgNy4wNDgtMTUuMzIxIDE1LjMyMS0xNS4zMjFoMzAuOTQ5YzguMjc0IDAgMTUuMzIyIDcuMDQ4IDE1LjMyMiAxNS4zMjF2MTMxLjQ1OHptODkuNDc3IDBjMCA4LjI3NC03LjA0NyAxNS4zMjEtMTUuMzIxIDE1LjMyMWgtMzAuOTQ5Yy04LjI3NCAwLTE1LjMyMi03LjA0OC0xNS4zMjItMTUuMzIxVjIzOC44NGMwLTguMjc0IDcuMDQ4LTE1LjMyMSAxNS4zMjItMTUuMzIxaDMwLjk0OWM4LjI3NCAwIDE1LjMyMSA3LjA0OCAxNS4zMjEgMTUuMzIxdjE2Mi43MTR6bTg3LjAyNyAwYzAgOC4yNzQtNy4wNDggMTUuMzIxLTE1LjMyMiAxNS4zMjFoLTI4LjQ5N2MtOC4yNzQgMC0xNS4zMjEtNy4wNDgtMTUuMzIxLTE1LjMyMVYxNzYuOTQxYzAtOC41NzkgNy4wNDctMTUuNjI4IDE1LjMyMS0xNS42MjhoMjguNDk3YzguMjc0IDAgMTUuMzIyIDcuMDQ4IDE1LjMyMiAxNS42Mjh2MjI0LjYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VydmljZXN0YWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg4IDIxNmM4MS43IDEwLjIgMjczLjcgMTAyLjMgMzA0IDIzMkgwYzk5LjUtOC4xIDE4NC41LTEzNyA4OC0yMzJ6bTMyLTE1MmMzMi4zIDM1LjYgNDcuNyA4My45IDQ2LjQgMTMzLjZDMjQ5LjMgMjMxLjMgMzczLjcgMzIxLjMgNDAwIDQ0OGg5NkM0NTUuMyAyMzEuOSAyMjIuOCA3OS41IDEyMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpcnRzaW5idWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMCA0MTAuM2wzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTM5LjQgMTcuNWwzMC42IDEzLjQgNC40LTkuOS0zMC42LTEzLjR6bTE3Mi4xLTE0bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05Ljl6TTE3OS4xIDQ0NWwzMC4zIDEzLjcgNC40LTkuOS0zMC4zLTEzLjR6TTYwLjQgMzkyLjhMOTEgNDA2LjJsNC40LTkuNi0zMC42LTEzLjd6bTIxMS40IDM4LjVsNC40IDkuOSAzMC42LTEzLjQtNC40LTkuOXptLTM5LjMgMTcuNWw0LjQgOS45IDMwLjYtMTMuNy00LjQtOS42em0xMTguNC01Mi4ybDQuNCA5LjYgMzAuNi0xMy40LTQuNC05Ljl6TTE3MCA0Ni42aC0zMy41djEwLjVIMTcwem0tNDcuMiAwSDg5LjJ2MTAuNWgzMy41em0tNDcuMyAwSDQyLjN2MTAuNWgzMy4zem0xNDEuNSAwaC0zMy4ydjEwLjVIMjE3em05NC41IDBIMjc4djEwLjVoMzMuNXptNDcuMyAwaC0zMy41djEwLjVoMzMuNXptLTk0LjYgMEgyMzF2MTAuNWgzMy4yem0xNDEuNSAwaC0zMy4zdjEwLjVoMzMuM3pNNTIuOCAzNTEuMUg0MnYzMy41aDEwLjh6bTcwLTIxNS45SDg5LjJ2MTAuNWgzMy41em0tNzAgMTAuNmgyMi44di0xMC41SDQydjMzLjVoMTAuOHptMTY4LjkgMjI4LjZjNTAuNSAwIDkxLjMtNDAuOCA5MS4zLTkxLjMgMC01MC4yLTQwLjgtOTEuMy05MS4zLTkxLjMtNTAuMiAwLTkxLjMgNDEuMS05MS4zIDkxLjMgMCA1MC41IDQxLjEgOTEuMyA5MS4zIDkxLjN6bS00OC4yLTExMS4xYzAtMjUuNCAyOS41LTMxLjggNDkuNi0zMS44IDE2LjkgMCAyOS4yIDUuOCA0NC4zIDEybC04LjggMTYuOWgtLjljLTYuNC05LjktMjQuOC0xMy4xLTM1LjYtMTMuMS05IDAtMjkuOCAxLjgtMjkuOCAxNC45IDAgMjEuNiA3OC41LTEwLjIgNzguNSAzNy45IDAgMjUuNC0zMS41IDMxLjItNTEgMzEuMi0xOC4xIDAtMzIuNC0yLjktNDcuMi0xMi4ybDktMTguNGguOWM2LjEgMTIuMiAyMy42IDE0LjkgMzUuOSAxNC45IDguNyAwIDMyLjctMS4yIDMyLjctMTQuMyAwLTI2LjEtNzcuNiA2LjMtNzcuNi0zOHpNNTIuOCAxNzguNEg0MlYyMTJoMTAuOHptMzQyLjQgMjA2LjJINDA2di0zMy41aC0xMC44ek01Mi44IDMwNy45SDQydjMzLjVoMTAuOHpNMCAzLjd2NDA2bDIyMS43IDk4LjZMNDQ4IDQwOS43VjMuN3ptNDE4LjggMzg3LjFMMjIyIDQ3Ni41IDI5LjIgMzkwLjhWMTIwLjdoMzg5Ljd2MjcwLjF6bTAtMjk5LjNIMjkuMlYzMi45aDM4OS43djU4LjZ6bS0zNjYgMTMwLjFINDJ2MzMuNWgxMC44em0wIDQzLjJINDJ2MzMuNWgxMC44ek0xNzAgMTM1LjJoLTMzLjV2MTAuNUgxNzB6bTIyNS4yIDE2My4xSDQwNnYtMzMuNWgtMTAuOHptMC00My4ySDQwNnYtMzMuNWgtMTAuOHpNMjE3IDEzNS4yaC0zMy4ydjEwLjVIMjE3ek0zOTUuMiAyMTJINDA2di0zMy41aC0xMC44em0wIDEyOS41SDQwNlYzMDhoLTEwLjh6bS0xMzEtMjA2LjNIMjMxdjEwLjVoMzMuMnptNDcuMyAwSDI3OHYxMC41aDMzLjV6bTgzLjcgMzMuNkg0MDZ2LTMzLjVoLTMzLjV2MTAuNWgyMi44em0tMzYuNC0zMy42aC0zMy41djEwLjVoMzMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvZWxhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA0LjkgMzMxYzIuMi0xLjEgNC40LTIuMyA2LjUtMy43bDguMy00LjhjMS41LTEuMSA0LjQtMy40IDguNy02LjdsLjUtLjVjMy40LTMuNCA3LjItNSAxMS4zLTQuOWMxLjggMCAzLjkgLjUgNi40IDEuNWwzMS0yNy41Yy45LS43IDEuNy0xLjMgMi42LTEuOGguMmMzLjMtMS45IDYtMS44IDguMiAuNGMzLjkgMi4xIDQuMiA1LjYgLjkgMTAuNkw0NTYuOSAzMjJjLjIgLjUgLjQgMSAuNCAxLjVjLjUgMi4yIC4zIDQuNC0uNSA2LjZjLS43IDEuNS0xLjggMi45LTMuMSA0LjJjLTEuNCAxLjQtMi43IDIuOC00LjIgNC4ybC0xOC44IDEzLjdjLTEuNyAxLjItMy40IDIuMy01LjEgMy4zYy0yLjEgMS4zLTQuMyAyLjUtNi42IDMuNmMtMSAuNC0xLjkgLjktMi45IDEuM2MtNS45IDIuNS0xMS45IDQuMi0xOC4yIDVjLTIuOSAyNC41LTExLjMgNDcuMS0yNS4xIDY3LjhjLTE3LjUgMjUuNy00MS40IDQ1LjQtNzEuOCA1OC44Yy0zMC4yIDEzLjUtNjMgMjAuMi05OC4yIDIwLjJjLTQ4LjYtLjUtODgtMTEuNC0xMTguMi0zMi44QzQ5LjUgNDU0LjQgMzIgNDIxLjUgMzIgMzgwLjN2LTUuNmMxLjItMjguMSA5LjUtNTQuNiAyNC44LTc5LjhjMTUuMS0yNC45IDM3LjEtNDEuNyA2Ni4xLTUwLjVjMTQuOS00LjQgMjkuOS02LjYgNDUtNi42YzE1LjUgMCAzMS42IDIuOSA0OC4xIDguNnMzNS4yIDE1LjUgNTUuOSAyOS41TDMyNiAzMTIuMmMxNS4xIDkuOCAyOC44IDE2LjUgNDEuMiAyMGMtMi42LTI1LjEtMTEuNy00Ni42LTI3LjMtNjQuNWMtMTUuNy0xOC4xLTM1LjYtMzEuMy01OS45LTM5LjdsLTIzLjMtOGMtMjEuNC03LjUtMzcuMy0xNC45LTQ3LjctMjIuMmMtMjguMi0xOS4xLTQzLjgtNDUuMi00Ny03OC41bC0uNS05LjhjMC0zMi4xIDEzLTU4LjkgMzktODAuNUMyMjMuNSA5LjcgMjUxLjEgMCAyODMgMGMyNCAwIDQ1LjYgNi45IDY0LjcgMjAuOGMxOS4yIDE0IDMwLjEgMzMuOCAzMi42IDU5LjRsLjUgMTBjMCAxOC42LTQuOCAzNC41LTE0LjQgNDcuN2MtOS44IDEzLjItMTguNSAxOS45LTI2IDE5LjljLTEuNi0uMS0zLjEtLjMtNC41LS42bC0zNCAzMmMtNS41IDMtOS4yIDIuNS0xMS4xLTEuNmMtMS45LTIuMi0xLjgtNC45IC41LTguMmwuMi0uMmMuNS0uNyAxLjItMS41IDItMi40bDMxLjYtMzBjLS40LTEuNS0uNi0zLjEtLjYtNC44YzAtNC4xIDEuNi03LjYgNC45LTEwLjRjMTMuOC0xMi40IDIwLjgtMjYuNyAyMC44LTQyLjhjMC0xNi02LjEtMjkuNS0xOC4yLTQwLjRzLTI4LjctMTYuNS00OS43LTE2LjhjLTI2LjIgMC00Ny44IDcuOS02NC43IDIzLjdTMTkyLjMgODkuOSAxOTIuMyAxMTJjMCAxNy44IDYuOSAzMy45IDIwLjYgNDguM2MxMy42IDE0LjIgMzQuNiAyNS40IDYzIDMzLjVjMzkuOCAxMS41IDcwLjIgMzEgOTEuMyA1OC4zYzE4LjcgMjQuMiAyOS4xIDUxLjMgMzEuMyA4MS40YzIuMi0uNyA0LjMtMS41IDYuNS0yLjZ6TTI5NC4xIDE3OC43YzAgMS4xIC42IDEuNiAxLjggMS42Yy4xIDAgOS43LTguOSAyOC44LTI2LjZjMC0yLjQtNS4xIC45LTE1LjMgMTBjLTEwLjIgOS4yLTE1LjMgMTQuMi0xNS4zIDE0Ljl6bTggNi40YzAtMS0uNS0xLjUtMS41LTEuNWMtMS4xIDAtMi4xIC41LTIuOSAxLjZjLTEuOS0uMS0zLjMgLjEtNC4yIC43Yy0uNCAuMi0uNSAuNS0uNSAuN2MwIC43IC41IDEuMyAxLjUgMS42aDMuM2MyLjktMS4xIDQuNC0yLjIgNC40LTMuM3ptMjIuNi0xOS45YzAtMi44LTEuNi0yLjgtNC45IDBjLTEuNiAxLjUtMy42IDMuNS02IDYuMmMtLjggLjYtMi42IDIuMi01LjMgNC45Yy0yLjggMi45LTQuMiA0LjctNC4yIDUuM2wuMiAxLjNjLjcgLjIgMS4yIC40IDEuNSAuNGMuMSAwIDMuMy0yLjkgOS41LTguN3M5LjMtOC45IDkuMy05LjN6bTE1OS43IDEyMGwtMzAuNiAyN2MxLjggMSAzLjIgMi40IDQgNC4ybDMwLjItMjdjLjItMS4yIC4xLTIuMi0uNS0yLjljLS42LS41LTEuNi0uOS0zLjEtMS4zem0tMS42LS45bC0uNy0uNy0yNyAyMS45IDEuNiAyIDI2LTIzLjF6TTM2Ni42IDM2My45Yy04LTIuMS0xNS40LTQuNi0yMi4yLTcuNWMtMTUuMy02LjItMzQuMy0xNy01Ny0zMi40TDI1MCAyOTguN2MtMTUuOC0xMC4xLTMwLjItMTcuNi00My4yLTIyLjZjLTEzLjEtNC45LTI2LTcuMy0zOC42LTcuM2gtNS41Yy0zMi4yIDEuNy01Ny4yIDEzLjgtNzUgMzYuMmMtMTYuNiAyMC44LTI1IDQ1LjMtMjUgNzMuNmMwIDMxLjggMTIuOCA1Ni43IDM4LjIgNzQuN2MyNS40IDE4LjEgNjAuMiAyNy4xIDEwNC40IDI3LjFjMzQuNyAwIDY0LTYuMiA4Ny44LTE4LjZjMjMuNy0xMi40IDQyLjEtMjguOCA1NS4yLTQ5LjJjOS44LTE1LjUgMTUuOS0zMS44IDE4LjItNDguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcGlmeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODguMzIsMTA0LjFhNC42Niw0LjY2LDAsMCwwLTQuNC00Yy0yLDAtMzcuMjMtLjgtMzcuMjMtLjhzLTIxLjYxLTIwLjgyLTI5LjYyLTI4LjgzVjUwMy4yTDQ0Mi43Niw0NzJTMzg4LjcyLDEwNi41LDM4OC4zMiwxMDQuMVpNMjg4LjY1LDcwLjQ3YTExNi42NywxMTYuNjcsMCwwLDAtNy4yMS0xNy42MUMyNzEsMzIuODUsMjU1LjQyLDIyLDIzNywyMmExNSwxNSwwLDAsMC00LC40Yy0uNC0uOC0xLjItMS4yLTEuNi0yQzIyMy40LDExLjYzLDIxMyw3LjYzLDIwMC41OCw4Yy0yNCwuOC00OCwxOC02Ny4yNSw0OC44My0xMy42MSwyMS42Mi0yNCw0OC44NC0yNi44Miw3MC4wNi0yNy42Miw4LjQtNDYuODMsMTQuNDEtNDcuMjMsMTQuODEtMTQsNC40LTE0LjQxLDQuOC0xNiwxOC0xLjIsMTAtMzgsMjkxLjgyLTM4LDI5MS44MkwzMDcuODYsNTA0VjY1LjY3YTQxLjY2LDQxLjY2LDAsMCwwLTQuNC40UzI5Ny44Niw2Ny42NywyODguNjUsNzAuNDdaTTIzMy40MSw4Ny42OWMtMTYsNC44LTMzLjYzLDEwLjQtNTAuODQsMTUuNjEsNC44LTE4LjgyLDE0LjQxLTM3LjYzLDI1LjYyLTUwLDQuNC00LjQsMTAuNDEtOS42MSwxNy4yMS0xMi44MUMyMzIuMjEsNTQuODYsMjMzLjgxLDc0LjQ4LDIzMy40MSw4Ny42OVpNMjAwLjU4LDI0LjQ0QTI3LjQ5LDI3LjQ5LDAsMCwxLDIxNSwyOGMtNi40LDMuMi0xMi44MSw4LjQxLTE4LjgxLDE0LjQxLTE1LjIxLDE2LjQyLTI2LjgyLDQyLTMxLjYyLDY2LjQ1LTE0LjQyLDQuNDEtMjguODMsOC44MS00MiwxMi44MUMxMzEuMzMsODMuMjgsMTYzLjc1LDI1LjI0LDIwMC41OCwyNC40NFpNMTU0LjE1LDI0NC42MWMxLjYsMjUuNjEsNjkuMjUsMzEuMjIsNzMuMjUsOTEuNjYsMi44LDQ3LjY0LTI1LjIyLDgwLjA2LTY1LjY1LDgyLjQ3LTQ4LjgzLDMuMi03NS42NS0yNS42Mi03NS42NS0yNS42MmwxMC40LTQ0czI2LjgyLDIwLjQyLDQ4LjQ0LDE4LjgyYzE0LS44LDE5LjIyLTEyLjQxLDE4LjgxLTIwLjQyLTItMzMuNjItNTcuMjQtMzEuNjItNjAuODQtODYuODYtMy4yLTQ2LjQ0LDI3LjIyLTkzLjI3LDk0LjQ3LTk3LjY4LDI2LTEuNiwzOS4yMyw0LjgxLDM5LjIzLDQuODFMMjIxLjQsMjI1LjM5cy0xNy4yMS04LTM3LjYzLTYuNEMxNTQuMTUsMjIxLDE1My43NSwyMzkuOCwxNTQuMTUsMjQ0LjYxWk0yNDkuNDIsODIuODhjMC0xMi0xLjYtMjkuMjItNy4yMS00My42MywxOC40MiwzLjYsMjcuMjIsMjQsMzEuMjMsMzYuNDNRMjYyLjYzLDc4LjY4LDI0OS40Miw4Mi44OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcHdhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAzLjUgNDU1LjQxQTI0Ni4xNyAyNDYuMTcgMCAwIDEgMjU2IDUwNEMxMTguODEgNTA0IDggMzkzIDggMjU2IDggMTE4LjgxIDExOSA4IDI1NiA4YTI0Ny4zOSAyNDcuMzkgMCAwIDEgMTY1LjcgNjMuNSAzLjU3IDMuNTcgMCAwIDEtMi44NiA2LjE4QTQxOC42MiA0MTguNjIgMCAwIDAgMzYyLjEzIDc0Yy0xMjkuMzYgMC0yMjIuNCA1My40Ny0yMjIuNCAxNTUuMzUgMCAxMDkgOTIuMTMgMTQ1Ljg4IDE3Ni44MyAxNzguNzMgMzMuNjQgMTMgNjUuNCAyNS4zNiA4NyA0MS41OWEzLjU4IDMuNTggMCAwIDEgMCA1Ljcyek01MDMgMjMzLjA5YTMuNjQgMy42NCAwIDAgMC0xLjI3LTIuNDRjLTUxLjc2LTQzLTkzLjYyLTYwLjQ4LTE0NC40OC02MC40OC04NC4xMyAwLTgwLjI1IDUyLjE3LTgwLjI1IDUzLjYzIDAgNDIuNiA1Mi4wNiA2MiAxMTIuMzQgODQuNDkgMzEuMDcgMTEuNTkgNjMuMTkgMjMuNTcgOTIuNjggMzkuOTNhMy41NyAzLjU3IDAgMCAwIDUtMS44MkEyNDkgMjQ5IDAgMCAwIDUwMyAyMzMuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25hbE1lc3NlbmdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTQuNiA3LjVsNS44IDIzLjNDMTc3LjcgMzYuMyAxNTYgNDUuMyAxMzYgNTcuNEwxMjMuNyAzNi44YzIyLTEzLjMgNDUuOS0yMy4yIDcwLjktMjkuM3ptMTIyLjkgMGwtNS44IDIzLjNDMzM0LjMgMzYuMyAzNTYgNDUuMyAzNzYgNTcuNGwxMi40LTIwLjZjLTIyLTEzLjMtNDYtMjMuMi03MS0yOS4zek0zNi44IDEyMy43Yy0xMy4zIDIyLTIzLjIgNDUuOS0yOS4zIDcwLjlsMjMuMyA1LjhDMzYuMyAxNzcuNyA0NS4zIDE1NiA1Ny40IDEzNkwzNi44IDEyMy43ek0yNCAyNTZjMC0xMS42IC45LTIzLjMgMi42LTM0LjhMMi45IDIxNy42Yy0zLjggMjUuNC0zLjggNTEuMyAwIDc2LjdsMjMuNy0zLjZDMjQuOSAyNzkuMyAyNCAyNjcuNiAyNCAyNTZ6TTM4OC4zIDQ3NS4yTDM3NiA0NTQuNmMtMjAgMTIuMS00MS42IDIxLTY0LjIgMjYuNmw1LjggMjMuM2MyNC45LTYuMiA0OC44LTE2IDcwLjgtMjkuM3pNNDg4IDI1NmMwIDExLjYtLjkgMjMuMy0yLjYgMzQuOGwyMy43IDMuNmMzLjgtMjUuNCAzLjgtNTEuMyAwLTc2LjdsLTIzLjcgMy42YzEuNyAxMS41IDIuNiAyMy4xIDIuNiAzNC44em0xNi41IDYxLjRsLTIzLjMtNS44Yy01LjYgMjIuNy0xNC41IDQ0LjMtMjYuNiA2NC4zbDIwLjYgMTIuNGMxMy4zLTIyIDIzLjItNDYgMjkuMy03MXptLTIxMy44IDE2OGMtMjMgMy41LTQ2LjUgMy41LTY5LjUgMGwtMy42IDIzLjdjMjUuNCAzLjggNTEuMyAzLjggNzYuNyAwbC0zLjYtMjMuN3ptMTUyLTkxLjhjLTEzLjggMTguNy0zMC40IDM1LjMtNDkuMiA0OS4xbDE0LjIgMTkuM2MyMC43LTE1LjIgMzktMzMuNCA1NC4yLTU0LjFsLTE5LjMtMTQuNHpNMzkzLjYgNjkuMmMxOC44IDEzLjggMzUuMyAzMC40IDQ5LjIgNDkuMkw0NjIuMSAxMDRDNDQ2LjkgODMuNCA0MjguNiA2NS4xIDQwOCA0OS45TDM5My42IDY5LjJ6TTY5LjIgMTE4LjRjMTMuOC0xOC44IDMwLjQtMzUuMyA0OS4yLTQ5LjJMMTA0IDQ5LjlDODMuNCA2NS4xIDY1LjEgODMuNCA0OS45IDEwNGwxOS4zIDE0LjR6bTQwNiA1LjNMNDU0LjYgMTM2YzEyLjEgMjAgMjEgNDEuNiAyNi42IDY0LjJsMjMuMy01LjhjLTYuMi0yNC45LTE2LTQ4LjgtMjkuMy03MC44em0tMjU0LTk3LjFjMjMtMy41IDQ2LjUtMy41IDY5LjUgMGwzLjYtMjMuN0MyNjguOS0xIDI0My4xLTEgMjE3LjYgMi45bDMuNiAyMy43ek04MS42IDQ2OC40TDMyIDQ4MGwxMS42LTQ5LjZMMjAuMiA0MjUgOC42IDQ3NC41Yy0uOSA0LS44IDguMSAuMyAxMi4xczMuMiA3LjUgNi4xIDEwLjRzNi41IDUgMTAuNCA2LjFzOC4xIDEuMiAxMi4xIC4zTDg3IDQ5MmwtNS40LTIzLjZ6TTI1LjIgNDAzLjZMNDguNiA0MDlsOC0zNC40Yy0xMS43LTE5LjYtMjAuNC00MC44LTI1LjgtNjNMNy41IDMxNy40YzUuMiAyMS4yIDEzLjIgNDEuNyAyMy42IDYwLjhsLTUuOSAyNS4zem0xMTIgNTJsLTM0LjQgOCA1LjQgMjMuNCAyNS4zLTUuOWMxOS4yIDEwLjQgMzkuNiAxOC40IDYwLjggMjMuNmw1LjgtMjMuM2MtMjIuMS01LjUtNDMuMy0xNC4zLTYyLjgtMjZsLS4yIC4yek0yNTYgNDhjLTM3LjIgMC03My42IDEwLTEwNS42IDI4LjlzLTU4LjQgNDYtNzYuMyA3OC42cy0yNi45IDY5LjMtMjUuOCAxMDYuNHMxMiA3My4zIDMxLjggMTA0LjhMNjAgNDUybDg1LjMtMjBjMjcuMyAxNy4yIDU4LjIgMjcuOCA5MC4zIDMxczY0LjUtMS4xIDk0LjYtMTIuNnM1Ny4yLTI5LjggNzktNTMuNnMzNy44LTUyLjIgNDYuOC04My4yczEwLjUtNjMuNiA0LjctOTUuM3MtMTktNjEuNi0zOC40LTg3LjRzLTQ0LjUtNDYuNy03My40LTYxUzI4OC4zIDQ4IDI1NiA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2ltcGx5YnVpbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgxLjIgNjRoLTEwNmMtMTQuNSAwLTI2LjYgMTEuOC0yNi42IDI2LjN2MzkuNkgxNjMuM1Y5MC4zYzAtMTQuNS0xMi0yNi4zLTI2LjYtMjYuM2gtMTA2QzE2LjEgNjQgNC4zIDc1LjggNC4zIDkwLjN2MzMxLjRjMCAxNC41IDExLjggMjYuMyAyNi42IDI2LjNoNDUwLjRjMTQuOCAwIDI2LjYtMTEuOCAyNi42LTI2LjNWOTAuM2MtLjItMTQuNS0xMi0yNi4zLTI2LjctMjYuM3pNMTQ5LjggMzU1LjhjLTM2LjYgMC02Ni40LTI5LjctNjYuNC02Ni40IDAtMzYuOSAyOS43LTY2LjYgNjYuNC02Ni42IDM2LjkgMCA2Ni42IDI5LjcgNjYuNiA2Ni42IDAgMzYuNy0yOS43IDY2LjQtNjYuNiA2Ni40em0yMTIuNCAwYy0zNi45IDAtNjYuNi0yOS43LTY2LjYtNjYuNiAwLTM2LjYgMjkuNy02Ni40IDY2LjYtNjYuNCAzNi42IDAgNjYuNCAyOS43IDY2LjQgNjYuNCAwIDM2LjktMjkuOCA2Ni42LTY2LjQgNjYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lzdHJpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDQ5TDMwMS4yIDMwMC4yYzIwLTI3LjkgMzEuOS02Mi4yIDMxLjktOTkuMiAwLTkzLjEtNzQuNy0xNjguOS0xNjYuNS0xNjguOUM3NC43IDMyIDAgMTA3LjggMCAyMDAuOXM3NC43IDE2OC45IDE2Ni41IDE2OC45YzM5LjggMCA3Ni4zLTE0LjIgMTA1LTM3LjlsMTQ2IDE0OC4xIDMwLjUtMzF6TTE2Ni41IDMzMC44Yy03MC42IDAtMTI4LjEtNTguMy0xMjguMS0xMjkuOVM5NS45IDcxIDE2Ni41IDcxczEyOC4xIDU4LjMgMTI4LjEgMTI5LjktNTcuNCAxMjkuOS0xMjguMSAxMjkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2l0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMybDY5LjcxIDExOC43NS01OC44Ni0xMS41MiA2OS44NCA5MS4wM2ExNDYuNzQxIDE0Ni43NDEgMCAwIDAgMCA1MS40NWwtNjkuODQgOTEuMDMgNTguODYtMTEuNTJMMCA0ODBsMTE4Ljc1LTY5LjcxLTExLjUyIDU4Ljg2IDkxLjAzLTY5Ljg0YzE3LjAyIDMuMDQgMzQuNDcgMy4wNCA1MS40OCAwbDkxLjAzIDY5Ljg0LTExLjUyLTU4Ljg2TDQ0OCA0ODBsLTY5LjcxLTExOC43OCA1OC44NiAxMS41Mi02OS44NC05MS4wM2MzLjAzLTE3LjAxIDMuMDQtMzQuNDQgMC01MS40NWw2OS44NC05MS4wMy01OC44NiAxMS41Mkw0NDggMzJsLTExOC43NSA2OS43MSAxMS41Mi01OC45LTkxLjA2IDY5Ljg3Yy04LjUtMS41Mi0xNy4xLTIuMjktMjUuNzEtMi4yOXMtMTcuMjEuNzgtMjUuNzEgMi4yOWwtOTEuMDYtNjkuODcgMTEuNTIgNTguOUwwIDMyem0yMjQgOTkuNzhjMzEuOCAwIDYzLjYgMTIuMTIgODcuODUgMzYuMzcgNDguNSA0OC41IDQ4LjQ5IDEyNy4yMSAwIDE3NS43cy0xMjcuMiA0OC40Ni0xNzUuNy0uMDNjLTQ4LjUtNDguNS00OC40OS0xMjcuMjEgMC0xNzUuNyAyNC4yNC0yNC4yNSA1Ni4wNS0zNi4zNCA4Ny44NS0zNi4zNHptMCAzNi42NmMtMjIuNDIgMC00NC44MyA4LjUyLTYxLjkyIDI1LjYxLTM0LjE4IDM0LjE4LTM0LjE5IDg5LjY4IDAgMTIzLjg3czg5LjY1IDM0LjE4IDEyMy44NCAwYzM0LjE4LTM0LjE4IDM0LjE5LTg5LjY4IDAtMTIzLjg3LTE3LjA5LTE3LjA5LTM5LjUtMjUuNjEtNjEuOTItMjUuNjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpdHJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuNDM5IDAuMDA4NDYxMjhWMEg0NDhWMTI4SDY0QzY0IDU3LjYwMDggMTQxLjc1NSAwLjQ3NTMzOCAyMTIuNDM5IDAuMDA4NDYxMjhaTTIzNy4yNTYgMTkyVjE5Mi4wMDdDMzA3LjEzNSAxOTIuNDc1IDM4NCAyNDkuNiAzODQgMzIwSDIxMC44MDlWMzE5Ljk5NUMxNDAuOTE1IDMxOS41NjMgNjQgMjYyLjQyNCA2NCAxOTJIMjM3LjI1NlpNMjM1LjU2NSA1MTEuOTkzQzMwNi4yNTEgNTExLjUyMSAzODQgNDU0LjM5OSAzODQgMzg0SDBWNTEySDIzNS41NjVWNTExLjk5M1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2tldGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3LjUgMTYyLjJMOSAxODcuMWg5MC41bDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuMyA0NS43TDI2Ny43IDMybDEzNS43IDE0Ny4yLTcuMS0xMzMuNXpNMTEyLjIgMjE4LjNsLTExLjItMjJIOS45TDIzNC44IDQ1OHptMi0zMS4yaDI4NGwtODEuNS04OC41TDI1Ni4zIDMzem0yOTcuMyA5LjFMMjc3LjYgNDU4bDIyNC44LTI2MS43aC05MC45ek00MTUuNCA2OUw0MDYgNTYuNGwuOSAxNy4zIDYuMSAxMTMuNGg5MC4zek0xMTMuNSA5My41bC00LjYgODUuNkwyNDQuNyAzMiAxMTYuMSA0NS43em0yODcuNyAxMDIuN2gtMjkwbDQyLjQgODIuOUwyNTYuMyA0ODBsMTQ0LjktMjgzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNreWF0bGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNC4xLTE1NC01OS0xNTQtMTQ0LjlzNjcuNS0xNDkuMSAxNTIuOC0xNDkuMWMxODUuMyAwIDIyMi41IDI0NS45IDM2MS45IDI0NS45IDk5LjkgMCA5NC44LTEzOS43IDMuNC0xMzkuNy0xNy41IDAtMzUgMTEuNi00Ni45IDExLjYtOC40IDAtMTUuOS03LjItMTUuOS0xNS42IDAtMTEuNiA1LjMtMjMuNyA1LjMtMzYuMyAwLTY2LjYtNTAuOS0xMTQuNy0xMTYuOS0xMTQuNy01My4xIDAtODAgMzYuOS04OC44IDM2LjktNi4yIDAtMTEuMi01LTExLjItMTEuMiAwLTUuNiA0LjEtMTAuMyA3LjgtMTQuNCAyNS4zLTI4LjggNjQuNy00My43IDEwMi44LTQzLjcgNzkuNCAwIDEzOS4xIDU4LjQgMTM5LjEgMTM3LjggMCA2LjktLjMgMTMuNy0xLjIgMjAuNiAxMS45LTMuMSAyNC4xLTQuNyAzNS45LTQuNyA2MC43IDAgMTExLjkgNDUuMyAxMTEuOSAxMDcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjcgMjk5LjhjMi45LTE0IDQuNy0yOC45IDQuNy00My44IDAtMTEzLjUtOTEuOS0yMDUuMy0yMDUuMy0yMDUuMy0xNC45IDAtMjkuNyAxLjctNDMuOCA0LjdDMTYxLjMgNDAuNyAxMzcuNyAzMiAxMTIgMzIgNTAuMiAzMiAwIDgyLjIgMCAxNDRjMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6bS0xOTQuNiA5MS41Yy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTQuMTIgMzE1LjFjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2UzAgMzQxIDAgMzE1LjFjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2aDQ3LjA2djQ3LjA2em0yMy43MiAwYzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNnM0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnYxMTcuODRjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2cy00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlYzMTUuMXptNDcuMDYtMTg4Ljk4Yy0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZTMTM5IDMyIDE2NC45IDMyczQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2djQ3LjA2SDE2NC45em0wIDIzLjcyYzI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnMtMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZINDcuMDZDMjEuMTYgMjQzLjk2IDAgMjIyLjggMCAxOTYuOXMyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNkgxNjQuOXptMTg4Ljk4IDQ3LjA2YzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNiAyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZzLTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2aC00Ny4wNlYxOTYuOXptLTIzLjcyIDBjMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2LTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlY3OS4wNmMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDYgMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2VjE5Ni45ek0yODMuMSAzODUuODhjMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2IDAgMjUuOS0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNi0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDZ2LTQ3LjA2aDQ3LjA2em0wLTIzLjcyYy0yNS45IDAtNDcuMDYtMjEuMTYtNDcuMDYtNDcuMDYgMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2aDExNy44NGMyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDYgMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2SDI4My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGlkZXNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ny43IDE1My43Yy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjdzNjEuNy0yNiA2MS43LTU3LjdjMC0zMi0yNy43LTU3LjctNjEuNy01Ny43em0xNDMuNCAwYy0zNCAwLTYxLjcgMjUuNy02MS43IDU3LjcgMCAzMS43IDI3LjcgNTcuNyA2MS43IDU3LjcgMzQuMyAwIDYxLjctMjYgNjEuNy01Ny43LjEtMzItMjcuNC01Ny43LTYxLjctNTcuN3ptMTU2LjYgOTBsLTYgNC4zVjQ5LjdjMC0yNy40LTIwLjYtNDkuNy00Ni00OS43SDc2LjZjLTI1LjQgMC00NiAyMi4zLTQ2IDQ5LjdWMjQ4Yy0yLTEuNC00LjMtMi45LTYuMy00LjMtMTUuMS0xMC42LTI1LjEgNC0xNiAxNy43IDE4LjMgMjIuNiA1My4xIDUwLjMgMTA2LjMgNzJDNTguMyA1MjUuMSAyNTIgNTU1LjcgMjQ4LjkgNDU3LjVjMC0uNy4zLTU2LjYuMy05Ni42IDUuMSAxLjEgOS40IDIuMyAxMy43IDMuMSAwIDM5LjcuMyA5Mi44LjMgOTMuNS0zLjEgOTguMyAxOTAuNiA2Ny43IDEzNC4zLTEyNCA1My4xLTIxLjcgODgtNDkuNCAxMDYuMy03MiA5LjEtMTMuOC0uOS0yOC4zLTE2LjEtMTcuOHptLTMwLjUgMTkuMmMtNjguOSAzNy40LTEyOC4zIDMxLjEtMTYwLjYgMjkuNy0yMy43LS45LTMyLjYgOS4xLTMzLjcgMjQuOS0xMC4zLTcuNy0xOC42LTE1LjUtMjAuMy0xNy4xLTUuMS01LjQtMTMuNy04LTI3LjEtNy43LTMxLjcgMS4xLTg5LjcgNy40LTE1Ny40LTI4VjcyLjNjMC0zNC45IDguOS00NS43IDQwLjYtNDUuN2gzMTcuN2MzMC4zIDAgNDAuOSAxMi45IDQwLjkgNDUuN3YxOTAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25hcGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjkyNiwzNjYuNmMtMy4zNzMtOS4xNzYtOS44LTE0LjA4Ni0xNy4xMTItMTguMTUzLTEuMzc2LS44MDYtMi42NDEtMS40NTEtMy43Mi0xLjk0Ny0yLjE4Mi0xLjEyOC00LjQxNC0yLjIyLTYuNjM0LTMuMzczLTIyLjgtMTIuMDktNDAuNjA5LTI3LjM0MS01Mi45NTktNDUuNDJhMTAyLjg4OSwxMDIuODg5LDAsMCwxLTkuMDg5LTE2LjEyYy0xLjA1NC0zLjAxMy0xLTQuNzI0LS4yNDgtNi4yODdhMTAuMjIxLDEwLjIyMSwwLDAsMSwyLjkxNC0zLjAzOGMzLjkxOC0yLjU5MSw3Ljk2LTUuMjIsMTAuNy02Ljk5Myw0Ljg4NS0zLjE2Miw4Ljc1NC01LjY2NywxMS4yNDYtNy40NCw5LjM2Mi02LjU0NywxNS45MDktMTMuNSwyMC0yMS4yNzhhNDIuMzcxLDQyLjM3MSwwLDAsMCwyLjEtMzUuMTkxYy02LjItMTYuMzE4LTIxLjYxMy0yNi40NDktNDAuMjg3LTI2LjQ0OWE1NS41NDMsNTUuNTQzLDAsMCwwLTExLjcxOCwxLjI0Yy0xLjAyOS4yMjQtMi4wNTkuNDU5LTMuMDYzLjcyLjE3NC0xMS4xNi0uMDc0LTIyLjk0LTEuMDY2LTM0LjUzNC0zLjUyMi00MC43NTgtMTcuNzk0LTYyLjEyMy0zMi42NzQtNzkuMTZBMTMwLjE2NywxMzAuMTY3LDAsMCwwLDMzMi4xLDM2LjQ0M0MzMDkuNTE1LDIzLjU0NywyODMuOTEsMTcsMjU2LDE3UzIwMi42LDIzLjU0NywxODAsMzYuNDQzYTEyOS43MzUsMTI5LjczNSwwLDAsMC0zMy4yODEsMjYuNzgzYy0xNC44OCwxNy4wMzgtMjkuMTUyLDM4LjQ0LTMyLjY3Myw3OS4xNjEtLjk5MiwxMS41OTQtMS4yNCwyMy40MzUtMS4wNzksMzQuNTMzLTEtLjI2LTIuMDIxLS41LTMuMDUxLS43MTlhNTUuNDYxLDU1LjQ2MSwwLDAsMC0xMS43MTctMS4yNGMtMTguNjg3LDAtMzQuMTI1LDEwLjEzMS00MC4zLDI2LjQ0OWE0Mi40MjMsNDIuNDIzLDAsMCwwLDIuMDQ2LDM1LjIyOGM0LjEwNSw3Ljc3NCwxMC42NTIsMTQuNzMxLDIwLjAxNCwyMS4yNzgsMi40OCwxLjczNiw2LjM2MSw0LjI0LDExLjI0Niw3LjQ0LDIuNjQxLDEuNzExLDYuNSw0LjIxNiwxMC4yOCw2LjcyYTExLjA1NCwxMS4wNTQsMCwwLDEsMy4zLDMuMzExYy43OTQsMS42MjQuODE4LDMuMzczLS4zNiw2LjZhMTAyLjAyLDEwMi4wMiwwLDAsMS04Ljk0LDE1Ljc4NWMtMTIuMDc3LDE3LjY2OS0yOS4zNjMsMzIuNjQ4LTUxLjQzNCw0NC42MzlDMzIuMzU1LDM0OC42MDgsMjAuMiwzNTIuNzUsMTUuMDY5LDM2Ni43Yy0zLjg2OCwxMC41MjgtMS4zMzksMjIuNTA2LDguNDk0LDMyLjZhNDkuMTM3LDQ5LjEzNywwLDAsMCwxMi40LDkuMzg3LDEzNC4zMzcsMTM0LjMzNywwLDAsMCwzMC4zNDIsMTIuMTM5LDIwLjAyNCwyMC4wMjQsMCwwLDEsNi4xMjYsMi43NDFjMy41ODMsMy4xMzcsMy4wNzUsNy44NjEsNy44NDksMTQuNzhhMzQuNDY4LDM0LjQ2OCwwLDAsMCw4Ljk3Nyw5LjEyN2MxMC4wMTksNi45MTksMjEuMjc4LDcuMzUzLDMzLjIwNyw3LjgxMSwxMC43NzYuNDEsMjIuOTg5Ljg4MSwzNi45MzksNS40ODEsNS43NzgsMS45MSwxMS43OCw1LjYwNSwxOC43MzYsOS45MkMxOTQuODQyLDQ4MC45NTEsMjE3LjcwNyw0OTUsMjU1Ljk3Myw0OTVzNjEuMjkyLTE0LjEyMyw3OC4xMTgtMjQuNDI4YzYuOTA3LTQuMjQsMTIuODcyLTcuOSwxOC40ODktOS43NTgsMTMuOTQ5LTQuNjEzLDI2LjE2My01LjA3MiwzNi45MzktNS40ODEsMTEuOTI4LS40NTksMjMuMTg3LS44OTMsMzMuMjA2LTcuODEyYTM0LjU4NCwzNC41ODQsMCwwLDAsMTAuMjE4LTExLjE2YzMuNDM0LTUuODQsMy4zNDgtOS45MTksNi41NzItMTIuNzcxYTE4Ljk3MSwxOC45NzEsMCwwLDEsNS43NTMtMi42MjlBMTM0Ljg5MywxMzQuODkzLDAsMCwwLDQ3Ni4wMiw0MDguNzFhNDguMzQ0LDQ4LjM0NCwwLDAsMCwxMy4wMTktMTAuMTkzbC4xMjQtLjE0OUM0OTguMzg5LDM4OC41LDUwMC43MDgsMzc2Ljg2Nyw0OTYuOTI2LDM2Ni42Wm0tMzQuMDEzLDE4LjI3N2MtMjAuNzQ1LDExLjQ1OC0zNC41MzMsMTAuMjMtNDUuMjU5LDE3LjEzNy05LjExNCw1Ljg2NS0zLjcyLDE4LjUxMy0xMC4zNDIsMjMuMDc2LTguMTM0LDUuNjE3LTMyLjE3Ny0uNC02My4yMzksOS44NTgtMjUuNjE4LDguNDY5LTQxLjk2MSwzMi44MjItODguMDM4LDMyLjgyMnMtNjIuMDM2LTI0LjMtODguMDc2LTMyLjg4NGMtMzEtMTAuMjU1LTU1LjA5Mi00LjI0MS02My4yMzktOS44NTgtNi42MDktNC41NjMtMS4yNC0xNy4yMTEtMTAuMzQxLTIzLjA3Ni0xMC43MzktNi45MDctMjQuNTI3LTUuNjc5LTQ1LjI2LTE3LjA3NS0xMy4yMDYtNy4yOTEtNS43MTYtMTEuOC0xLjMxNC0xMy45MzcsNzUuMTQzLTM2LjM4MSw4Ny4xMzMtOTIuNTUyLDg3LjY2Ni05Ni43MTkuNjQ1LTUuMDQ2LDEuMzY0LTkuMDE0LTQuMTkxLTE0LjE0OC01LjM2OS00Ljk2LTI5LjE4OS0xOS43LTM1LjgtMjQuMzE2LTEwLjkzNy03LjYzOC0xNS43NDgtMTUuMjY0LTEyLjItMjQuNjM4LDIuNDgtNi40ODUsOC41MzEtOC45MjgsMTQuODc5LTguOTI4YTI3LjY0MywyNy42NDMsMCwwLDEsNS45NjUuNjdjMTIsMi42LDIzLjY1OSw4LjYxNywzMC4zOTIsMTAuMjQyYTEwLjc0OSwxMC43NDksMCwwLDAsMi40OC4zMzVjMy42LDAsNC44Ni0xLjgxMSw0LjYxMi01LjkyNy0uNzY4LTEzLjEzMi0yLjYyOC0zOC43MjUtLjU1OC02Mi42NDQsMi44NC0zMi45MDksMTMuNDQyLTQ5LjIxNSwyNi4wNC02My42MzYsNi4wNTEtNi45MzIsMzQuNDg0LTM2Ljk3Niw4OC44NTctMzYuOTc2czgyLjg4LDI5LjkyLDg4LjkzMSwzNi44MjdjMTIuNjExLDE0LjQyMSwyMy4yMjUsMzAuNzI3LDI2LjA0LDYzLjYzNiwyLjA3MSwyMy45MTkuMjg1LDQ5LjUyNS0uNTU4LDYyLjY0NC0uMjg1LDQuMzI3LDEuMDE3LDUuOTI3LDQuNjEzLDUuOTI3YTEwLjY0OCwxMC42NDgsMCwwLDAsMi40OC0uMzM1YzYuNzQ1LTEuNjI0LDE4LjQtNy42MzgsMzAuNC0xMC4yNDJhMjcuNjQxLDI3LjY0MSwwLDAsMSw1Ljk2NC0uNjdjNi4zODYsMCwxMi40LDIuNDgsMTQuODgsOC45MjgsMy41NDYsOS4zNzQtMS4yNCwxNy0xMi4xODksMjQuNjM5LTYuNjA5LDQuNjEyLTMwLjQyOSwxOS4zNDMtMzUuOCwyNC4zMTUtNS41NjgsNS4xMzQtNC44MzYsOS4xLTQuMTkxLDE0LjE0OS41MzMsNC4yMjgsMTIuNTExLDYwLjQsODcuNjY2LDk2LjcxOEM0NjguNjI5LDM3My4wMTEsNDc2LjExOSwzNzcuNTI0LDQ2Mi45MTMsMzg0Ljg3N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU291bmRjbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyNTYuM2w1LjggNjUtNS44IDY4LjNjLS4zIDIuNS0yLjIgNC40LTQuNCA0LjRzLTQuMi0xLjktNC4yLTQuNGwtNS42LTY4LjMgNS42LTY1YzAtMi4yIDEuOS00LjIgNC4yLTQuMiAyLjIgMCA0LjEgMiA0LjQgNC4yem0yMS40LTQ1LjZjLTIuOCAwLTQuNyAyLjItNSA1bC01IDEwNS42IDUgNjguM2MuMyAyLjggMi4yIDUgNSA1IDIuNSAwIDQuNy0yLjIgNC43LTVsNS44LTY4LjMtNS44LTEwNS42YzAtMi44LTIuMi01LTQuNy01em0yNS41LTI0LjFjLTMuMSAwLTUuMyAyLjItNS42IDUuM2wtNC40IDEzMCA0LjQgNjcuOGMuMyAzLjEgMi41IDUuMyA1LjYgNS4zIDIuOCAwIDUuMy0yLjIgNS4zLTUuM2w1LjMtNjcuOC01LjMtMTMwYzAtMy4xLTIuNS01LjMtNS4zLTUuM3pNNy4yIDI4My4yYy0xLjQgMC0yLjIgMS4xLTIuNSAyLjVMMCAzMjEuM2w0LjcgMzVjLjMgMS40IDEuMSAyLjUgMi41IDIuNXMyLjItMS4xIDIuNS0yLjVsNS42LTM1LTUuNi0zNS42Yy0uMy0xLjQtMS4xLTIuNS0yLjUtMi41em0yMy42LTIxLjljLTEuNCAwLTIuNSAxLjEtMi41IDIuNWwtNi40IDU3LjUgNi40IDU2LjFjMCAxLjcgMS4xIDIuOCAyLjUgMi44czIuNS0xLjEgMi44LTIuNWw3LjItNTYuNC03LjItNTcuNWMtLjMtMS40LTEuNC0yLjUtMi44LTIuNXptMjUuMy0xMS40Yy0xLjcgMC0zLjEgMS40LTMuMyAzLjNMNDcgMzIxLjNsNS44IDY1LjhjLjMgMS43IDEuNyAzLjEgMy4zIDMuMSAxLjcgMCAzLjEtMS40IDMuMS0zLjFsNi45LTY1LjgtNi45LTY4LjFjMC0xLjktMS40LTMuMy0zLjEtMy4zem0yNS4zLTIuMmMtMS45IDAtMy42IDEuNC0zLjYgMy42bC01LjggNzAgNS44IDY3LjhjMCAyLjIgMS43IDMuNiAzLjYgMy42czMuNi0xLjQgMy45LTMuNmw2LjQtNjcuOC02LjQtNzBjLS4zLTIuMi0yLTMuNi0zLjktMy42em0yNDEuNC0xMTAuOWMtMS4xLS44LTIuOC0xLjQtNC4yLTEuNC0yLjIgMC00LjIuOC01LjYgMS45LTEuOSAxLjctMy4xIDQuMi0zLjMgNi43di44bC0zLjMgMTc2LjcgMS43IDMyLjUgMS43IDMxLjdjLjMgNC43IDQuMiA4LjYgOC45IDguNnM4LjYtMy45IDguNi04LjZsMy45LTY0LjItMy45LTE3Ny41Yy0uNC0zLTItNS44LTQuNS03LjJ6bS0yNi43IDE1LjNjLTEuNC0uOC0yLjgtMS40LTQuNC0xLjRzLTMuMS42LTQuNCAxLjRjLTIuMiAxLjQtMy42IDMuOS0zLjYgNi43bC0uMyAxLjctMi44IDE2MC44czAgLjMgMy4xIDY1LjZ2LjNjMCAxLjcuNiAzLjMgMS43IDQuNyAxLjcgMS45IDMuOSAzLjEgNi40IDMuMSAyLjIgMCA0LjItMS4xIDUuNi0yLjUgMS43LTEuNCAyLjUtMy4zIDIuNS01LjZsLjMtNi43IDMuMS01OC42LTMuMy0xNjIuOGMtLjMtMi44LTEuNy01LjMtMy45LTYuN3ptLTExMS40IDIyLjVjLTMuMSAwLTUuOCAyLjgtNS44IDYuMWwtNC40IDE0MC42IDQuNCA2Ny4yYy4zIDMuMyAyLjggNS44IDUuOCA1LjggMy4zIDAgNS44LTIuNSA2LjEtNS44bDUtNjcuMi01LTE0MC42Yy0uMi0zLjMtMi43LTYuMS02LjEtNi4xem0zNzYuNyA2Mi44Yy0xMC44IDAtMjEuMSAyLjItMzAuNiA2LjEtNi40LTcwLjgtNjUuOC0xMjYuNC0xMzguMy0xMjYuNC0xNy44IDAtMzUgMy4zLTUwLjMgOS40LTYuMSAyLjItNy44IDQuNC03LjggOS4ydjI0OS43YzAgNSAzLjkgOC42IDguNiA5LjJoMjE4LjNjNDMuMyAwIDc4LjYtMzUgNzguNi03OC4zLjEtNDMuNi0zNS4yLTc4LjktNzguNS03OC45em0tMjk2LjctNjAuM2MtNC4yIDAtNy41IDMuMy03LjggNy44bC0zLjMgMTM2LjcgMy4zIDY1LjZjLjMgNC4yIDMuNiA3LjUgNy44IDcuNSA0LjIgMCA3LjUtMy4zIDcuNS03LjVsMy45LTY1LjYtMy45LTEzNi43Yy0uMy00LjUtMy4zLTcuOC03LjUtNy44em0tNTMuNi03LjhjLTMuMyAwLTYuNCAzLjEtNi40IDYuN2wtMy45IDE0NS4zIDMuOSA2Ni45Yy4zIDMuNiAzLjEgNi40IDYuNCA2LjQgMy42IDAgNi40LTIuOCA2LjctNi40bDQuNC02Ni45LTQuNC0xNDUuM2MtLjMtMy42LTMuMS02LjctNi43LTYuN3ptMjYuNyAzLjRjLTMuOSAwLTYuOSAzLjEtNi45IDYuOUwyMjcgMzIxLjNsMy45IDY2LjRjLjMgMy45IDMuMSA2LjkgNi45IDYuOXM2LjktMy4xIDYuOS02LjlsNC4yLTY2LjQtNC4yLTE0MS43YzAtMy45LTMtNi45LTYuOS02Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvdXJjZXRyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI3LjIgMjAzYzAtMTEyLjEtOTAuOS0yMDMtMjAzLTIwM0MxMTIuMS0uMiAyMS4yIDkwLjYgMjEgMjAyLjZBMjAyLjg2IDIwMi44NiAwIDAgMCAxNjEuNSAzOTZ2MTAxLjdhMTQuMyAxNC4zIDAgMCAwIDE0LjMgMTQuM2g5Ni40YTE0LjMgMTQuMyAwIDAgMCAxNC4zLTE0LjNWMzk2LjFBMjAzLjE4IDIwMy4xOCAwIDAgMCA0MjcuMiAyMDN6bS0yNzEuNiAwYzAtOTAuOCAxMzcuMy05MC44IDEzNy4zIDAtLjEgODkuOS0xMzcuMyA5MS0xMzcuMyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGFjZUF3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMjU2SDEyOFY1MTJIMFYzNTJIMzJWMzIwSDY0VjI4OEg5NlYyNTZ6TTUxMiAzNTJWNTEySDM4NFYyNTZINDE2VjI4OEg0NDhWMzIwSDQ4MFYzNTJINTEyek0zMjAgNjRIMzUyVjQ0OEgzMjBWNDE2SDE5MlY0NDhIMTYwVjY0SDE5MlYzMkgyMjRWMEgyODhWMzJIMzIwVjY0ek0yODggMTI4SDIyNFYxOTJIMjg4VjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BlYWthcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzOTEuNzhDLTE1LjQxIDMwMy41OS04IDE2Ny40MiA4MC42NCA4Ny42NHMyMjQuOC03MyAzMDQuMjEgMTUuMjQgNzIgMjI0LjM2LTE2LjY0IDMwNC4xNGMtMTguNzQgMTYuODcgNjQgNDMuMDkgNDIgNTIuMjYtODIuMDYgMzQuMjEtMjUzLjkxIDM1LTM0Ni4yMy02Ny41em0yMTMuMzEtMjExLjZsMzguNS00MC44NmMtOS42MS04Ljg5LTMyLTI2LjgzLTc2LjE3LTI3LjYtNTIuMzMtLjkxLTk1Ljg2IDI4LjMtOTYuNzcgODAtLjIgMTEuMzMuMjkgMzYuNzIgMjkuNDIgNTQuODMgMzQuNDYgMjEuNDIgODYuNTIgMjEuNTEgODYgNTIuMjYtLjM3IDIxLjI4LTI2LjQyIDI1LjgxLTM4LjU5IDI1LjYtMy0uMDUtMzAuMjMtLjQ2LTQ3LjYxLTI0LjYybC00MCA0Mi42MWMyOC4xNiAyNyA1OSAzMi42MiA4My40OSAzMy4wNSAxMC4yMy4xOCA5Ni40Mi4zMyA5Ny44NC04MSAuMjgtMTUuODEtMi4wNy0zOS43Mi0yOC44Ni01Ni41OS0zNC4zNi0yMS42NC04NS0xOS40NS04NC40My00OS43NS40MS0yMy4yNSAzMS0yNS4zNyAzNy41My0yNS4yNi40MyAwIDI2LjYyLjI2IDM5LjYyIDE3LjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGVha2VyRGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTMuODYgMjk2SDEwMGExMDAgMTAwIDAgMCAxIDAtMjAwaDEzMi44NGE0MCA0MCAwIDAgMSAwIDgwSDk4Yy0yNi40NyAwLTI2LjQ1IDQwIDAgNDBoMTEzLjgyYTEwMCAxMDAgMCAwIDEgMCAyMDBINDBhNDAgNDAgMCAwIDEgMC04MGgxNzMuODZjMjYuNDggMCAyNi40Ni00MCAwLTQwek0yOTggNDE2YTEyMC4yMSAxMjAuMjEgMCAwIDAgNTEuMTEtODBoNjQuNTVhMTkuODMgMTkuODMgMCAwIDAgMTkuNjYtMjBWMTk2YTE5LjgzIDE5LjgzIDAgMCAwLTE5LjY2LTIwSDI5Ni40MmE2MC43NyA2MC43NyAwIDAgMCAwLTgwaDEzNi45M2M0My40NCAwIDc4LjY1IDM1LjgyIDc4LjY1IDgwdjE2MGMwIDQ0LjE4LTM1LjIxIDgwLTc4LjY1IDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcG90aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4xIDggMCAxMTkuMSAwIDI1NnMxMTEuMSAyNDggMjQ4IDI0OCAyNDgtMTExLjEgMjQ4LTI0OFMzODQuOSA4IDI0OCA4em0xMDAuNyAzNjQuOWMtNC4yIDAtNi44LTEuMy0xMC43LTMuNi02Mi40LTM3LjYtMTM1LTM5LjItMjA2LjctMjQuNS0zLjkgMS05IDIuNi0xMS45IDIuNi05LjcgMC0xNS44LTcuNy0xNS44LTE1LjggMC0xMC4zIDYuMS0xNS4yIDEzLjYtMTYuOCA4MS45LTE4LjEgMTY1LjYtMTYuNSAyMzcgMjYuMiA2LjEgMy45IDkuNyA3LjQgOS43IDE2LjVzLTcuMSAxNS40LTE1LjIgMTUuNHptMjYuOS02NS42Yy01LjIgMC04LjctMi4zLTEyLjMtNC4yLTYyLjUtMzctMTU1LjctNTEuOS0yMzguNi0yOS40LTQuOCAxLjMtNy40IDIuNi0xMS45IDIuNi0xMC43IDAtMTkuNC04LjctMTkuNC0xOS40czUuMi0xNy44IDE1LjUtMjAuN2MyNy44LTcuOCA1Ni4yLTEzLjYgOTcuOC0xMy42IDY0LjkgMCAxMjcuNiAxNi4xIDE3NyA0NS41IDguMSA0LjggMTEuMyAxMSAxMS4zIDE5LjctLjEgMTAuOC04LjUgMTkuNS0xOS40IDE5LjV6bTMxLTc2LjJjLTUuMiAwLTguNC0xLjMtMTIuOS0zLjktNzEuMi00Mi41LTE5OC41LTUyLjctMjgwLjktMjkuNy0zLjYgMS04LjEgMi42LTEyLjkgMi42LTEzLjIgMC0yMy4zLTEwLjMtMjMuMy0yMy42IDAtMTMuNiA4LjQtMjEuMyAxNy40LTIzLjkgMzUuMi0xMC4zIDc0LjYtMTUuMiAxMTcuNS0xNS4yIDczIDAgMTQ5LjUgMTUuMiAyMDUuNCA0Ny44IDcuOCA0LjUgMTIuOSAxMC43IDEyLjkgMjIuNiAwIDEzLjYtMTEgMjMuMy0yMy4yIDIzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUJlaGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU1LjMgMzE4LjRjMTcuMiAwIDMxLjItNi4xIDMxLjItMjUuNGMwLTE5LjctMTEuNy0yNy40LTMwLjMtMjcuNWgtNDZ2NTIuOWg0NS4xem0tNS40LTEyOS42SDExMC4zdjQ0LjhIMTUzYzE1LjEgMCAyNS44LTYuNiAyNS44LTIyLjljMC0xNy43LTEzLjctMjEuOS0yOC45LTIxLjl6bTEyOS41IDc0LjhoNjIuMmMtMS43LTE4LjUtMTEuMy0yOS43LTMwLjUtMjkuN2MtMTguMyAwLTMwLjUgMTEuNC0zMS43IDI5Ljd6TTM4NCAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTM0OS41IDE4NUgyNzEuN1YxNjYuMWg3Ny44VjE4NXpNMTkzLjcgMjQzLjdjMjMuNiA2LjcgMzUgMjcuNSAzNSA1MS42YzAgMzktMzIuNyA1NS43LTY3LjYgNTUuOUg2OHYtMTkyaDkwLjVjMzIuOSAwIDYxLjQgOS4zIDYxLjQgNDcuNWMwIDE5LjMtOSAyOC44LTI2LjIgMzd6bTExOC43LTM4LjZjNDMuNSAwIDY3LjYgMzQuMyA2Ny42IDc1LjRjMCAxLjYtLjEgMy4zLS4yIDVjMCAuOC0uMSAxLjUtLjEgMi4ySDI3OS41YzAgMjIuMiAxMS43IDM1LjMgMzQuMSAzNS4zYzExLjYgMCAyNi41LTYuMiAzMC4yLTE4LjFoMzMuN2MtMTAuNCAzMS45LTMxLjkgNDYuOC02NS4xIDQ2LjhjLTQzLjggMC03MS4xLTI5LjctNzEuMS03M2MwLTQxLjggMjguNy03My42IDcxLjEtNzMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlRHJpYmJibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY1LjkgMTMyLjVjLTM4LjMgMTgtNjYuOCA1My4zLTc1LjcgOTUuN2M2LjEgLjEgNjIuNCAuMyAxMjYuNC0xNi43Yy0yMi43LTQwLjItNDcuMS03NC4xLTUwLjctNzl6bTI2LjEtOS4xYzMuOCA1LjEgMjguNiAzOC45IDUxIDgwYzQ4LjYtMTguMyA2OS4xLTQ1LjkgNzEuNi00OS40QzI4MSAxMjQuMiAyMzUuMyAxMTIuOSAxOTIgMTIzLjR6TTI3Ny40IDM4MmMtMi0xMi0xMC01My44LTI5LjItMTAzLjZjLTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNmM0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4ek0yMjcuOCAyMzIuNkMxNTkuNiAyNTMgOTMuNCAyNTIuMiA4Ny40IDI1MmMwIC43IDAgMS40IDAgMi4xczAgMS40IDAgMi4xYzAgMzUuMSAxMy4zIDY3LjEgMzUuMSA5MS40YzIyLjItMzcuOSA2Ny4xLTc3LjkgMTE2LjUtOTEuOGMtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJ6bTcyLjUgMTM2LjljMzAuNy0yMC43IDUyLjUtNTMuNiA1OC42LTkxLjZjLTQuNi0xLjUtNDIuMy0xMi43LTg1LjEtNS44YzE3LjkgNDkuMSAyNS4xIDg5LjEgMjYuNSA5Ny40em0tMzQuOC0xMTljNDUuNS01LjcgOTAuNyAzLjQgOTUuMiA0LjRjLS4zLTMyLjMtMTEuOC02MS45LTMwLjktODUuMWMtMi45IDMuOS0yNS44IDMzLjItNzYuMyA1My45YzQuOCA5LjggOC4zIDE3LjggMTIgMjYuOHpNMzg0IDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHpNMjI0IDQxNmExNjAgMTYwIDAgMSAxIDAtMzIwIDE2MCAxNjAgMCAxIDEgMCAzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUZhY2Vib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDk4LjJWMzM0LjJIMTA5LjRWMjU2aDUyLjhWMjIyLjNjMC04Ny4xIDM5LjQtMTI3LjUgMTI1LTEyNy41YzE2LjIgMCA0NC4yIDMuMiA1NS43IDYuNFYxNzJjLTYtLjYtMTYuNS0xLTI5LjYtMWMtNDIgMC01OC4yIDE1LjktNTguMiA1Ny4yVjI1Nmg4My42bC0xNC40IDc4LjJIMjU1VjQ4MEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUZvbnRBd2Vzb21lU3Ryb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzQ2LjMgNjQgMzIgNzguMyAzMiA5NmwwIDMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwzMjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMkw2NCA2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTE1NCA1OGMwIDkuMy00LjggMTcuNC0xMi4xIDIybDE4OC45IDBjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yYzAgMS44LS40IDMuNy0xLjEgNS40TDMxMiAyNjRsMzAuOSA2OS40Yy44IDEuNyAxLjEgMy41IDEuMSA1LjRjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yTDE0NCAzNTJsMCAzMi0zMiAwIDAtMzIgMC0xNzYgMC0xLjVjLTYuMS00LjgtMTAtMTIuMi0xMC0yMC41YzAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUZvbnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjBjMC0zNS4zLTI4LjctNjQtNjQtNjRMNjQgMzJ6bTkwIDEyMmMwIDkuMy00LjggMTcuNC0xMi4xIDIybDE4OC45IDBjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yYzAgMS44LS40IDMuNy0xLjEgNS40TDMxMiAyNjRsMzAuOSA2OS40Yy43IDEuNyAxLjEgMy41IDEuMSA1LjRjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yTDE0NCAzNTJsMCAzMi0zMiAwIDAtMzIgMC0xNzYgMC0xLjVjLTYuMS00LjgtMTAtMTIuMi0xMC0yMC41YzAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUdpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAuOCAzMzUuNWMtNS45LS40LTEyLjYtLjgtMjAuMi0xLjNjLTMuMyA0LjEtNi42IDguNC02LjYgMTMuNWMwIDE4LjUgNjUuNSAxOC41IDY1LjUtMS41YzAtOC4zLTcuNC04LjctMzguOC0xMC43em03LjgtMTE3LjljLTMyLjMgMC0zMy43IDQ0LjUtLjcgNDQuNWMzMi41IDAgMzEuNy00NC41IC43LTQ0LjV6TTM4NCAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTI0My45IDE3Mi4yYy0xNC41IDAtMjIuOS04LjQtMjIuOS0yMi45YzAtMTQuNSA4LjQtMjIuMyAyMi45LTIyLjNjMTQuNyAwIDIzLjEgNy44IDIzLjEgMjIuM3MtOC40IDIyLjktMjMuMSAyMi45ek0xNDkuNiAxOTVoNDkuNWwwIDIxLjYtMjMuNCAxLjhjNC42IDUuOCA5LjQgMTQgOS40IDI1LjdjMCA0OC43LTU3LjIgNDcuMi03NC4yIDQyLjRsLTguNCAxMy40YzUgLjMgOS44IC42IDE0LjMgLjhjNTYuMyAzLjIgODAuNSA0LjYgODAuNSAzOC41YzAgMjkuMi0yNS43IDQ1LjctNjkuOSA0NS43Yy00NiAwLTYzLjUtMTEuNi02My41LTMxLjdjMC0xMS40IDUuMS0xNy41IDE0LTI1LjljLTguNC0zLjUtMTEuMi05LjktMTEuMi0xNi44YzAtOS42IDcuNC0xNi4zIDIzLTMwLjZsLjItLjJjLTEyLjQtNi4xLTIxLjgtMTkuMy0yMS44LTM4LjFjMC01MS42IDU2LjYtNTMuMyA4MS42LTQ2Ljh6TTI3MC41IDMwMy4xbDEzIDEuOCAwIDIwLjFIMjExLjFWMzA0LjljMi43LS40IDUtLjcgNi45LS45YzkuOS0xLjIgMTAuMS0xLjMgMTAuMS02VjIyMy4zYzAtNC40LS45LTQuNy0xMC4xLTcuOGMtMS45LS43LTQuMi0xLjQtNi45LTIuNGwyLjgtMjAuNmg1Mi42VjI5OGMwIDQuMSAuMiA0LjYgNC4xIDUuMXptMTA2LjYtMTAuNEwzODQgMzE1Yy0xMC45IDUuNC0yNi45IDEwLjItNDEuNCAxMC4yYy0zMC4yIDAtNDEuNy0xMi4yLTQxLjctNDAuOVYyMTcuN2MwLS44IDAtMS40LS4yLTEuOGMtLjgtMS4yLTQuMi0uNy0xOS42LS43VjE5Mi42YzIyLjMtMi41IDMxLjItMTMuNyAzNC00MS40aDI0LjJjMCAzMy4zLS42IDM4IC43IDM4LjZjLjMgLjEgLjcgMCAxLjMgMGgzNS44djI1LjRIMzM5LjN2NjAuN2MwIC4yIDAgLjUgMCAuOWMtLjIgNi4zLS45IDMwLjQgMzcuOSAxNS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVHaXRodWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NnpNMjY1LjggNDA3LjdjMC0xLjggMC02IC4xLTExLjZjLjEtMTEuNCAuMS0yOC44IC4xLTQzLjdjMC0xNS42LTUuMi0yNS41LTExLjMtMzAuN2MzNy00LjEgNzYtOS4yIDc2LTczLjFjMC0xOC4yLTYuNS0yNy4zLTE3LjEtMzljMS43LTQuMyA3LjQtMjItMS43LTQ1Yy0xMy45LTQuMy00NS43IDE3LjktNDUuNyAxNy45Yy0xMy4yLTMuNy0yNy41LTUuNi00MS42LTUuNnMtMjguNCAxLjktNDEuNiA1LjZjMCAwLTMxLjgtMjIuMi00NS43LTE3LjljLTkuMSAyMi45LTMuNSA0MC42LTEuNyA0NWMtMTAuNiAxMS43LTE1LjYgMjAuOC0xNS42IDM5YzAgNjMuNiAzNy4zIDY5IDc0LjMgNzMuMWMtNC44IDQuMy05LjEgMTEuNy0xMC42IDIyLjNjLTkuNSA0LjMtMzMuOCAxMS43LTQ4LjMtMTMuOWMtOS4xLTE1LjgtMjUuNS0xNy4xLTI1LjUtMTcuMWMtMTYuMi0uMi0xLjEgMTAuMi0xLjEgMTAuMmMxMC44IDUgMTguNCAyNC4yIDE4LjQgMjQuMmM5LjcgMjkuNyA1Ni4xIDE5LjcgNTYuMSAxOS43YzAgOSAuMSAyMS43IC4xIDMwLjZjMCA0LjggLjEgOC42IC4xIDEwYzAgNC4zLTMgOS41LTExLjUgOEMxMDYgMzkzLjYgNTkuOCAzMzAuOCA1OS44IDI1Ny40YzAtOTEuOCA3MC4yLTE2MS41IDE2Mi0xNjEuNXMxNjYuMiA2OS43IDE2Ni4yIDE2MS41Yy4xIDczLjQtNDQuNyAxMzYuMy0xMTAuNyAxNTguM2MtOC40IDEuNS0xMS41LTMuNy0xMS41LTh6bS05MC41LTU0LjhjLS4yLTEuNSAxLjEtMi44IDMtMy4yYzEuOS0uMiAzLjcgLjYgMy45IDEuOWMuMyAxLjMtMSAyLjYtMyAzYy0xLjkgLjQtMy43LS40LTMuOS0xLjd6bS05LjEgMy4yYy0yLjIgLjItMy43LS45LTMuNy0yLjRjMC0xLjMgMS41LTIuNCAzLjUtMi40YzEuOS0uMiAzLjcgLjkgMy43IDIuNGMwIDEuMy0xLjUgMi40LTMuNSAyLjR6bS0xNC4zLTIuMmMtMS45LS40LTMuMi0xLjktMi44LTMuMnMyLjQtMS45IDQuMS0xLjVjMiAuNiAzLjMgMi4xIDIuOCAzLjRjLS40IDEuMy0yLjQgMS45LTQuMSAxLjN6bS0xMi41LTcuM2MtMS41LTEuMy0xLjktMy4yLS45LTQuMWMuOS0xLjEgMi44LS45IDQuMyAuNmMxLjMgMS4zIDEuOCAzLjMgLjkgNC4xYy0uOSAxLjEtMi44IC45LTQuMy0uNnptLTguNS0xMGMtMS4xLTEuNS0xLjEtMy4yIDAtMy45YzEuMS0uOSAyLjgtLjIgMy43IDEuM2MxLjEgMS41IDEuMSAzLjMgMCA0LjFjLS45IC42LTIuNiAwLTMuNy0xLjV6bS02LjMtOC44Yy0xLjEtMS4zLTEuMy0yLjgtLjQtMy41Yy45LS45IDIuNC0uNCAzLjUgLjZjMS4xIDEuMyAxLjMgMi44IC40IDMuNWMtLjkgLjktMi40IC40LTMuNS0uNnptLTYtNi40Yy0xLjMtLjYtMS45LTEuNy0xLjUtMi42Yy40LS42IDEuNS0uOSAyLjgtLjRjMS4zIC43IDEuOSAxLjggMS41IDIuNmMtLjQgLjktMS43IDEuMS0yLjggLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUdpdGxhYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NnptMzM3LjUgMTIuNWw0NC42IDExNi40IC40IDEuMmM1LjYgMTYuOCA3LjIgMzUuMiAyLjMgNTIuNWMtNSAxNy4yLTE1LjQgMzIuNC0yOS44IDQzLjNsLS4yIC4xLTY4LjQgNTEuMi01NC4xIDQwLjljLS41IC4yLTEuMSAuNS0xLjcgLjhjLTIgMS00LjQgMi02LjcgMmMtMyAwLTYuOC0xLjgtOC4zLTIuOGwtNTQuMi00MC45TDkzLjUgMzIyLjNsLS40LS4zLS4yLS4xYy0xNC4zLTEwLjgtMjQuOC0yNi0yOS43LTQzLjNzLTQuMi0zNS43IDIuMi01Mi41bC41LTEuMiA0NC43LTExNi40Yy45LTIuMyAyLjUtNC4zIDQuNS01LjZjMS42LTEgMy40LTEuNiA1LjItMS44YzEuMy0uNyAyLjEtLjQgMy40IC4xYy42IC4yIDEuMiAuNSAyIC43YzEgLjQgMS42IC45IDIuNCAxLjVjLjYgLjQgMS4yIDEgMi4xIDEuNWMxLjIgMS40IDIuMiAzIDIuNyA0LjhsMjkuMiA5Mi4ySDI4NWwzMC4yLTkyLjJjLjUtMS44IDEuNC0zLjQgMi42LTQuOHMyLjgtMi40IDQuNS0zLjFjMS43LS42IDMuNi0uOSA1LjQtLjdzMy42IC44IDUuMiAxLjhjMiAxLjMgMy43IDMuMyA0LjYgNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVHb29nbGVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTY0IDI1NmMwLTU1LjMgNDQuNy0xMDAgMTAwLTEwMGMyNyAwIDQ5LjUgOS44IDY3IDI2LjJsLTI3LjEgMjYuMWMtNy40LTcuMS0yMC4zLTE1LjQtMzkuOC0xNS40Yy0zNC4xIDAtNjEuOSAyOC4yLTYxLjkgNjMuMmMwIDM0LjkgMjcuOCA2My4yIDYxLjkgNjMuMmMzOS42IDAgNTQuNC0yOC41IDU2LjgtNDMuMUgxNjRWMjQxLjhoOTQuNGMxIDUgMS42IDEwLjEgMS42IDE2LjZjMCA1Ny4xLTM4LjMgOTcuNi05NiA5Ny42Yy01NS4zIDAtMTAwLTQ0LjctMTAwLTEwMHptMjkxIDE4LjJ2MjlIMzI1Ljh2LTI5aC0yOVYyNDVoMjlWMjE2SDM1NXYyOWgyOXYyOS4ySDM1NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlSGFja2VyTmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0yMSAyMjkuMmMwIDAgLjEtLjEgLjEtLjJzLjEtLjIgLjItLjJjMCAuMSAwIC4zLS4xIC40SDIxek0yMzkuMiAzODRIMjA3LjhWMjgxLjNMMTI4IDEyOGgzNy4zYzQxLjUgNzcuNyA0OC4xIDk1LjggNTQuMSAxMTJjMS42IDQuMyAzLjEgOC41IDUuMiAxMy42YzMuMi03IDUuMS0xMS45IDcuMS0xNy4zYzUuOS0xNS4zIDEyLjgtMzMuMiA1My41LTEwOC4zSDMyMEwyMzkuMiAyODMuMVYzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUluc3RhZ3JhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTQuNCAyMTEuN2E1My4zIDUzLjMgMCAxIDAgNTkuMyA4OC43IDUzLjMgNTMuMyAwIDEgMCAtNTkuMy04OC43em0xNDIuMy02OC40Yy01LjItNS4yLTExLjUtOS4zLTE4LjQtMTJjLTE4LjEtNy4xLTU3LjYtNi44LTgzLjEtNi41Yy00LjEgMC03LjkgLjEtMTEuMiAuMWMtMy4zIDAtNy4yIDAtMTEuNC0uMWMtMjUuNS0uMy02NC44LS43LTgyLjkgNi41Yy02LjkgMi43LTEzLjEgNi44LTE4LjQgMTJzLTkuMyAxMS41LTEyIDE4LjRjLTcuMSAxOC4xLTYuNyA1Ny43LTYuNSA4My4yYzAgNC4xIC4xIDcuOSAuMSAxMS4xczAgNy0uMSAxMS4xYy0uMiAyNS41LS42IDY1LjEgNi41IDgzLjJjMi43IDYuOSA2LjggMTMuMSAxMiAxOC40czExLjUgOS4zIDE4LjQgMTJjMTguMSA3LjEgNTcuNiA2LjggODMuMSA2LjVjNC4xIDAgNy45LS4xIDExLjItLjFjMy4zIDAgNy4yIDAgMTEuNCAuMWMyNS41IC4zIDY0LjggLjcgODIuOS02LjVjNi45LTIuNyAxMy4xLTYuOCAxOC40LTEyczkuMy0xMS41IDEyLTE4LjRjNy4yLTE4IDYuOC01Ny40IDYuNS04M2MwLTQuMi0uMS04LjEtLjEtMTEuNHMwLTcuMSAuMS0xMS40Yy4zLTI1LjUgLjctNjQuOS02LjUtODNsMCAwYy0yLjctNi45LTYuOC0xMy4xLTEyLTE4LjR6bS02Ny4xIDQ0LjVBODIgODIgMCAxIDEgMTc4LjQgMzI0LjJhODIgODIgMCAxIDEgOTEuMS0xMzYuNHptMjkuMi0xLjNjLTMuMS0yLjEtNS42LTUuMS03LjEtOC42cy0xLjgtNy4zLTEuMS0xMS4xczIuNi03LjEgNS4yLTkuOHM2LjEtNC41IDkuOC01LjJzNy42LS40IDExLjEgMS4xczYuNSAzLjkgOC42IDdzMy4yIDYuOCAzLjIgMTAuNmMwIDIuNS0uNSA1LTEuNCA3LjNzLTIuNCA0LjQtNC4xIDYuMnMtMy45IDMuMi02LjIgNC4ycy00LjggMS41LTcuMyAxLjVsMCAwYy0zLjggMC03LjUtMS4xLTEwLjYtMy4yek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0zNTcgMzg5Yy0xOC43IDE4LjctNDEuNCAyNC42LTY3IDI1LjljLTI2LjQgMS41LTEwNS42IDEuNS0xMzIgMGMtMjUuNi0xLjMtNDguMy03LjItNjctMjUuOXMtMjQuNi00MS40LTI1LjgtNjdjLTEuNS0yNi40LTEuNS0xMDUuNiAwLTEzMmMxLjMtMjUuNiA3LjEtNDguMyAyNS44LTY3czQxLjUtMjQuNiA2Ny0yNS44YzI2LjQtMS41IDEwNS42LTEuNSAxMzIgMGMyNS42IDEuMyA0OC4zIDcuMSA2NyAyNS44czI0LjYgNDEuNCAyNS44IDY3YzEuNSAyNi4zIDEuNSAxMDUuNCAwIDEzMS45Yy0xLjMgMjUuNi03LjEgNDguMy0yNS44IDY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVKcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0xODAuOSA0NDQuOWMtMzMuNyAwLTUzLjItMTcuNC02My4yLTM4LjVMMTUyIDM4NS43YzYuNiAxMS43IDEyLjYgMjEuNiAyNy4xIDIxLjZjMTMuOCAwIDIyLjYtNS40IDIyLjYtMjYuNVYyMzcuN2g0Mi4xVjM4MS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41em04NS44LTQzTDMwMSAzODIuMWM5IDE0LjcgMjAuOCAyNS42IDQxLjUgMjUuNmMxNy40IDAgMjguNi04LjcgMjguNi0yMC44YzAtMTQuNC0xMS40LTE5LjUtMzAuNy0yOGwtMTAuNS00LjVjLTMwLjQtMTIuOS01MC41LTI5LjItNTAuNS02My41YzAtMzEuNiAyNC4xLTU1LjYgNjEuNi01NS42YzI2LjggMCA0NiA5LjMgNTkuOCAzMy43TDM2OCAyOTBjLTcuMi0xMi45LTE1LTE4LTI3LjEtMThjLTEyLjMgMC0yMC4xIDcuOC0yMC4xIDE4YzAgMTIuNiA3LjggMTcuNyAyNS45IDI1LjZsMTAuNSA0LjVjMzUuOCAxNS4zIDU1LjkgMzEgNTUuOSA2Ni4yYzAgMzcuOC0yOS44IDU4LjYtNjkuNyA1OC42Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUxhc3RmbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0yMTAuNyAyODAuOGMtMS44LTUuNS0zLjQtMTAuOC01LTE1LjljLTEyLjktNDEuOS0yMS02OC40LTU4LTY4LjRjLTIyLjQgMC00NS4xIDE2LjEtNDUuMSA2MS4yYzAgMzUuMiAxOCA1Ny4yIDQzLjMgNTcuMmMyOC42IDAgNDcuNi0yMS4zIDQ3LjYtMjEuM2wxMS43IDMxLjlzLTE5LjggMTkuNC02MS4yIDE5LjRjLTUxLjMgMC03OS45LTMwLjEtNzkuOS04NS44YzAtNTcuOSAyOC42LTkyIDgyLjUtOTJjNjcuOSAwIDc5LjMgMzUuMyA5Ni40IDg4LjRjMS40IDQuNCAyLjkgOC45IDQuNCAxMy41YzguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjJjMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMWMwLTE3LjUtMTYuOS0yMS4yLTQwLTI2LjRjLTMuMi0uNy02LjUtMS40LTkuOS0yLjJjLTMwLjQtNy4zLTQyLjUtMjMuMS00Mi41LTQ4YzAtNDAgMzIuMy01Mi40IDY1LjItNTIuNGMzNy40IDAgNjAuMSAxMy42IDYzIDQ2LjZsLTM2LjcgNC40Yy0xLjUtMTUuOC0xMS0yMi40LTI4LjYtMjIuNGMtMTYuMSAwLTI2IDcuMy0yNiAxOS44YzAgMTEgNC44IDE3LjYgMjAuOSAyMS4zYzIuMiAuNSA0LjUgMSA2LjcgMS40YzMxLjEgNi41IDY1LjEgMTMuNyA2NS4xIDU2LjFjLjEgMzYuNy0zMC43IDUwLjYtNzYuMSA1MC42Yy02My40IDAtODUuNC0yOC42LTk3LjEtNjQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlTGV0dGVyYm94ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzODR6TTEwNS4xIDE4N0M2Ni40IDE4NyAzNSAyMTguMyAzNSAyNTdzMzEuNCA3MCA3MC4xIDcwYzI0LjggMCA0Ni41LTEyLjggNTktMzIuMmwuNS0uNy0uNC0uNmMtNi41LTEwLjYtMTAuMi0yMy4xLTEwLjItMzYuNWMwLTEzLjYgMy45LTI2LjMgMTAuNi0zNy4xYy0xMi40LTE5LjgtMzQuNC0zMi45LTU5LjUtMzIuOXpNMjI0IDE4N2MtMjQuOCAwLTQ2LjUgMTIuOC01OSAzMi4ybC0uNSAuNyAuNCAuNmM2LjUgMTAuNiAxMC4yIDIzLjEgMTAuMiAzNi41YzAgMTMuNi0zLjkgMjYuMy0xMC42IDM3LjFDMTc2LjkgMzEzLjggMTk4LjkgMzI3IDIyNCAzMjdjMjQuOCAwIDQ2LjUtMTIuOCA1OS0zMi4ybC41LS43LS40LS42Yy02LjUtMTAuNi0xMC4yLTIzLjEtMTAuMi0zNi41YzAtMTMuNiAzLjktMjYuMyAxMC42LTM3LjFDMjcxLjEgMjAwLjIgMjQ5LjEgMTg3IDIyNCAxODd6bTExOC45IDBjLTI0LjggMC00Ni41IDEyLjgtNTkgMzIuMmwtLjUgLjcgLjQgLjZjNi41IDEwLjYgMTAuMiAyMy4xIDEwLjIgMzYuNWMwIDEzLjYtMy45IDI2LjMtMTAuNiAzNy4xYzEyLjQgMTkuOCAzNC40IDMyLjkgNTkuNSAzMi45YzM4LjcgMCA3MC4xLTMxLjMgNzAuMS03MHMtMzEuNC03MC03MC4xLTcwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVPZG5va2xhc3NuaWtpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzcuMWEzOS45IDM5LjkgMCAxIDAgMCA3OS43IDM5LjkgMzkuOSAwIDEgMCAwLTc5Ljd6TTM4NCAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjR6TTIyNCA5NS45QTgxIDgxIDAgMSAxIDIyNCAyNThhODEgODEgMCAxIDEgMC0xNjIuMXptNTkuMyAxNjguM2MxNi44LTEzLjIgMjkuNS01LjUgMzQuMSAzLjZjNy44IDE2LTEuMSAyMy43LTIxLjUgMzdjLTE3LjEgMTAuOS00MC43IDE1LjItNTYuMiAxNi44bDEzIDEyLjkgNDcuNyA0Ny43YzE3LjQgMTcuOS0xMSA0NS44LTI4LjYgMjguNmMtMTItMTIuMi0yOS41LTI5LjctNDcuNy00Ny45bDAgMC00Ny43IDQ3LjljLTE3LjcgMTcuMi00Ni0xMS0yOC40LTI4LjZjMy43LTMuNyA3LjktNy45IDEyLjUtMTIuNWMxMC40LTEwLjQgMjIuNi0yMi43IDM1LjItMzUuMmwxMi45LTEyLjljLTE1LjQtMS42LTM5LjMtNS43LTU2LjYtMTYuOGMtMjAuMy0xMy4zLTI5LjMtMjAuOS0yMS40LTM3YzQuNi05LjEgMTcuMy0xNi44IDM0LjEtMy42YzAgMCAyMi43IDE4IDU5LjMgMThzNTkuMy0xOCA1OS4zLTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQaWVkUGlwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDE5TDAgNDc5LjJsLjgtMzI4Qy44IDg1LjMgNTQgMzIgMTIwIDMyaDMyNy4yYy05MyAyOC45LTE4OS45IDk0LjItMjUzLjkgMTY4LjZDMTIyLjcgMjgyIDgyLjYgMzM4IDMyIDQxOU00NDggMzJTMzA1LjIgOTguOCAyNjEuNiAxOTkuMWMtMjMuMiA1My42LTI4LjkgMTE4LjEtNzEgMTU4LjYtMjguOSAyNy44LTY5LjggMzguMi0xMDUuMyA1Ni4zLTIzLjIgMTItNjYuNCA0MC41LTg0LjkgNjZoMzI4LjRjNjYgMCAxMTkuMy01My4zIDExOS4zLTExOS4yLS4xIDAtLjEtMzI4LjgtLjEtMzI4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBpbnRlcmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzJINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNzIuNmwtMi4yLS44Yy01LjQtNDguMS0zLjEtNTcuNSAxNS43LTEzNC43YzMuOS0xNiA4LjUtMzUgMTMuOS01Ny45YzAgMC03LjMtMTQuOC03LjMtMzYuNWMwLTcwLjcgNzUuNS03OCA3NS41LTI1YzAgMTMuNS01LjQgMzEuMS0xMS4yIDQ5LjhjLTMuMyAxMC42LTYuNiAyMS41LTkuMSAzMmMtNS43IDI0LjUgMTIuMyA0NC40IDM2LjQgNDQuNGM0My43IDAgNzcuMi00NiA3Ny4yLTExMi40YzAtNTguOC00Mi4zLTk5LjktMTAyLjYtOTkuOUMxNTMgMTM5IDExMiAxOTEuNCAxMTIgMjQ1LjZjMCAyMS4xIDguMiA0My43IDE4LjMgNTZjMiAyLjQgMi4zIDQuNSAxLjcgN2MtMS4xIDQuNy0zLjEgMTIuOS00LjcgMTkuMmMtMSA0LTEuOCA3LjMtMi4xIDguNmMtMS4xIDQuNS0zLjUgNS41LTguMiAzLjNjLTMwLjYtMTQuMy00OS44LTU5LjEtNDkuOC05NS4xQzY3LjIgMTY3LjEgMTIzLjQgOTYgMjI5LjQgOTZjODUuMiAwIDE1MS40IDYwLjcgMTUxLjQgMTQxLjhjMCA4NC42LTUzLjMgMTUyLjctMTI3LjQgMTUyLjdjLTI0LjkgMC00OC4zLTEyLjktNTYuMy0yOC4yYzAgMC0xMi4zIDQ2LjktMTUuMyA1OC40Yy01IDE5LjMtMTcuNiA0Mi45LTI3LjQgNTkuM0gzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVJlZGRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJ6TTMwNS45IDE2Ni40YzIwLjYgMCAzNy4zLTE2LjcgMzcuMy0zNy4zcy0xNi43LTM3LjMtMzcuMy0zNy4zYy0xOCAwLTMzLjEgMTIuOC0zNi42IDI5LjhjLTMwLjIgMy4yLTUzLjggMjguOC01My44IDU5LjlsMCAuMmMtMzIuOCAxLjQtNjIuOCAxMC43LTg2LjYgMjUuNWMtOC44LTYuOC0xOS45LTEwLjktMzItMTAuOWMtMjguOSAwLTUyLjMgMjMuNC01Mi4zIDUyLjNjMCAyMSAxMi4zIDM5IDMwLjEgNDcuNGMxLjcgNjAuNyA2Ny45IDEwOS42IDE0OS4zIDEwOS42czE0Ny42LTQ4LjkgMTQ5LjMtMTA5LjdjMTcuNy04LjQgMjkuOS0yNi40IDI5LjktNDcuM2MwLTI4LjktMjMuNC01Mi4zLTUyLjMtNTIuM2MtMTIgMC0yMyA0LTMxLjkgMTAuOGMtMjQtMTQuOS01NC4zLTI0LjItODcuNS0yNS40bDAtLjFjMC0yMi4yIDE2LjUtNDAuNyAzNy45LTQzLjdsMCAwYzMuOSAxNi41IDE4LjcgMjguNyAzNi4zIDI4Ljd6TTE1NSAyNDguMWMxNC42IDAgMjUuOCAxNS40IDI1IDM0LjRzLTExLjggMjUuOS0yNi41IDI1LjlzLTI3LjUtNy43LTI2LjYtMjYuN3MxMy41LTMzLjUgMjguMS0zMy41em0xNjYuNCAzMy41Yy45IDE5LTEyIDI2LjctMjYuNiAyNi43cy0yNS42LTYuOS0yNi41LTI1LjljLS45LTE5IDEwLjMtMzQuNCAyNS0zNC40czI3LjMgMTQuNiAyOC4xIDMzLjV6bS00Mi4xIDQ5LjZjLTkgMjEuNS0zMC4zIDM2LjctNTUuMSAzNi43cy00Ni4xLTE1LjEtNTUuMS0zNi43Yy0xLjEtMi42IC43LTUuNCAzLjQtNS43YzE2LjEtMS42IDMzLjUtMi41IDUxLjctMi41czM1LjYgLjkgNTEuNyAyLjVjMi43IC4zIDQuNSAzLjEgMy40IDUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlU25hcGNoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0LDMySDY0QTY0LDY0LDAsMCwwLDAsOTZWNDE2YTY0LDY0LDAsMCwwLDY0LDY0SDM4NGE2NCw2NCwwLDAsMCw2NC02NFY5NkE2NCw2NCwwLDAsMCwzODQsMzJabS0zLjkwNywzMTkuMzA5LS4wODMuMWEzMi4zNjQsMzIuMzY0LDAsMCwxLTguNzE3LDYuODIzLDkwLjI2LDkwLjI2LDAsMCwxLTIwLjU4Niw4LjIsMTIuNjk0LDEyLjY5NCwwLDAsMC0zLjg1MiwxLjc2Yy0yLjE1OCwxLjkwOS0yLjEsNC42NC00LjQsOC41NWEyMy4xMzcsMjMuMTM3LDAsMCwxLTYuODQsNy40NzFjLTYuNzA3LDQuNjMyLTE0LjI0NCw0LjkyMy0yMi4yMyw1LjIzLTcuMjE0LjI3NC0xNS4zOS41ODEtMjQuNzI5LDMuNjY5LTMuNzYxLDEuMjQ1LTcuNzUzLDMuNjk0LTEyLjM3Nyw2LjUzMy0xMS4yNjUsNi45LTI2LjY4LDE2LjM1My01Mi4zLDE2LjM1M3MtNDAuOTI1LTkuNC01Mi4xMDYtMTYuMjc5Yy00LjY1Ny0yLjg4OC04LjY3NS01LjM2Mi0xMi41NDMtNi42NC05LjMzOS0zLjA4LTE3LjUxNi0zLjQtMjQuNzI5LTMuNjctNy45ODYtLjMwNy0xNS41MjMtLjYtMjIuMjMxLTUuMjI5YTIzLjA4NSwyMy4wODUsMCwwLDEtNi4wMS02LjExYy0zLjItNC42MzItMi44NTUtNy44LTUuMjU0LTkuODk1YTEzLjQyOCwxMy40MjgsMCwwLDAtNC4xLTEuODM0LDg5Ljk4Niw4OS45ODYsMCwwLDEtMjAuMzEzLTguMTI3LDMyLjkwNSwzMi45MDUsMCwwLDEtOC4zLTYuMjg0Yy02LjU4My02Ljc1Ny04LjI3Ni0xNC43NzYtNS42ODYtMjEuODI0LDMuNDM2LTkuMzM4LDExLjU3MS0xMi4xMTEsMTkuNC0xNi4yNjIsMTQuNzc2LTguMDI3LDI2LjM0OC0xOC4wNTUsMzQuNDMzLTI5Ljg4NGE2OC4yMzYsNjguMjM2LDAsMCwwLDUuOTg1LTEwLjU2N2MuNzg5LTIuMTU4Ljc3Mi0zLjMyOS4yNDEtNC40MTZhNy4zODYsNy4zODYsMCwwLDAtMi4yMDgtMi4yMTdjLTIuNTMyLTEuNjc2LTUuMTEzLTMuMzUzLTYuODgyLTQuNS0zLjI3LTIuMTQxLTUuODY4LTMuODE4LTcuNTI5LTQuOTgtNi4yNjctNC4zODMtMTAuNjUtOS4wNC0xMy40LTE0LjI0NWEyOC40LDI4LjQsMCwwLDEtMS4zNjktMjMuNTg0YzQuMTM0LTEwLjkyNCwxNC40NjktMTcuNzA2LDI2Ljk3OC0xNy43MDZhMzcuMTQxLDM3LjE0MSwwLDAsMSw3Ljg0NS44M2MuNjg5LjE1LDEuMzcuMzA3LDIuMDQyLjQ4Mi0uMTA4LTcuNDMuMDU4LTE1LjM1Ny43MjItMjMuMTE5LDIuMzU4LTI3LjI2MSwxMS45MTItNDEuNTg5LDIxLjg3NC01Mi45OTRhODYuODM2LDg2LjgzNiwwLDAsMSwyMi4yOC0xNy45MzFDMTg4LjI1NCwxMDAuMzgzLDIwNS4zMTIsOTYsMjI0LDk2czM1LjgyOCw0LjM4Myw1MC45NDQsMTMuMDE2YTg3LjE2OSw4Ny4xNjksMCwwLDEsMjIuMjM5LDE3LjljOS45NjEsMTEuNDA2LDE5LjUxNiwyNS43MDksMjEuODc0LDUyLjk5NWEyMzEuMTk0LDIzMS4xOTQsMCwwLDEsLjcxMywyMy4xMThjLjY3My0uMTc0LDEuMzYyLS4zMzIsMi4wNTEtLjQ4MWEzNy4xMzEsMzcuMTMxLDAsMCwxLDcuODQ0LS44M2MxMi41LDAsMjIuODIsNi43ODIsMjYuOTcxLDE3LjcwNmEyOC4zNywyOC4zNywwLDAsMS0xLjQsMjMuNTU5Yy0yLjc0LDUuMi03LjEyMyw5Ljg2MS0xMy4zOSwxNC4yNDQtMS42NjgsMS4xODctNC4yNTgsMi44NjQtNy41MjksNC45ODEtMS44MzUsMS4xODctNC41NDEsMi45NDctNy4xNjQsNC42ODJhNi44NTYsNi44NTYsMCwwLDAtMS45NTEsMi4wMzRjLS41MDYsMS4wNDYtLjUzOSwyLjE5MS4xNjYsNC4yMDhhNjkuMDE1LDY5LjAxNSwwLDAsMCw2LjA4NSwxMC43OTJjOC4yNjgsMTIuMSwyMC4xODgsMjIuMzEzLDM1LjQ1NCwzMC40MDcsMS40ODYuNzcyLDIuOTgsMS41LDQuNDQxLDIuMjU4LjcyMi4zMzIsMS41NjkuNzYzLDIuNDkxLDEuMyw0LjksMi43MjMsOS4yLDYuMDEsMTEuNDU1LDEyLjE1M0MzODcuODIxLDMzNi45MTUsMzg2LjI2OSwzNDQuNywzODAuMDkzLDM1MS4zMDlabS0xNi43MTktMTguNDYxYy01MC4zMTMtMjQuMzE0LTU4LjMzMi02MS45MTgtNTguNjg5LTY0Ljc0OS0uNDMxLTMuMzc5LS45MjEtNi4wMzUsMi44MDYtOS40NzIsMy41OTQtMy4zMjgsMTkuNTQxLTEzLjE5LDIzLjk2NS0xNi4yNzgsNy4zMy01LjExNCwxMC41MzQtMTAuMjE5LDguMTYtMTYuNDk1LTEuNjYtNC4zMTYtNS42ODYtNS45NzYtOS45NjEtNS45NzZhMTguNSwxOC41LDAsMCwwLTMuOTkzLjQ0OGMtOC4wMzUsMS43NDMtMTUuODM4LDUuNzY5LTIwLjM1NCw2Ljg1N2E3LjEsNy4xLDAsMCwxLTEuNjYuMjI0Yy0yLjQwOCwwLTMuMjc5LTEuMDcxLTMuMDg4LTMuOTY4LjU2NC04Ljc4MywxLjc1OS0yNS45MjUuMzczLTQxLjkzNy0xLjg4NC0yMi4wMzItOC45OS0zMi45NDgtMTcuNDMyLTQyLjYtNC4wNTEtNC42MjQtMjMuMTM1LTI0LjY1NC01OS41MzYtMjQuNjU0UzE2OC41MywxMzQuMzU5LDE2NC40NzksMTM5Yy04LjQzNCw5LjY1NC0xNS41MzEsMjAuNTctMTcuNDMyLDQyLjYtMS4zODYsMTYuMDEzLS4xNDEsMzMuMTQ3LjM3Myw0MS45MzcuMTY2LDIuNzU2LS42OCwzLjk2OC0zLjA4OCwzLjk2OGE3LjEsNy4xLDAsMCwxLTEuNjYtLjIyNGMtNC41MDctMS4wODctMTIuMzEtNS4xMTMtMjAuMzQ2LTYuODU2YTE4LjQ5NCwxOC40OTQsMCwwLDAtMy45OTMtLjQ0OWMtNC4yNSwwLTguMywxLjYzNi05Ljk2MSw1Ljk3Ny0yLjM3NCw2LjI3Ni44NDcsMTEuMzgxLDguMTY4LDE2LjQ5NCw0LjQyNSwzLjA4OCwyMC4zNzEsMTIuOTU4LDIzLjk2NiwxNi4yNzksMy43MTksMy40MzcsMy4yMzcsNi4wOTMsMi44MDUsOS40NzEtLjM1NiwyLjc5LTguMzg0LDQwLjM5NC01OC42ODksNjQuNzQ5LTIuOTQ2LDEuNDI4LTcuOTYsNC40NS44OCw5LjMzMSwxMy44OCw3LjYyOCwyMy4xMTEsNi44MDcsMzAuMywxMS40Myw2LjA5MywzLjkyNywyLjUsMTIuMzk0LDYuOTIzLDE1LjQ0OSw1LjQ1NCwzLjc2LDIxLjU4My0uMjY2LDQyLjMzNSw2LjYsMTcuNDMzLDUuNzQ0LDI4LjExNiwyMi4wMTUsNTguOTYzLDIyLjAxNXM0MS43ODgtMTYuMyw1OC45MzgtMjEuOTczYzIwLjc5NS02Ljg2NSwzNi44OS0yLjgzOSw0Mi4zMzYtNi42LDQuNDMzLTMuMDU1LjgyMi0xMS41MjIsNi45MjMtMTUuNDQ4LDcuMTgxLTQuNjI0LDE2LjQxMS0zLjgsMzAuMy0xMS40NzJDMzcxLjM2LDMzNy4zNTUsMzY2LjM0NiwzMzQuMzMzLDM2My4zNzQsMzMyLjg0OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlU3RlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY1LjYgMzA5LjFjMTguNiA3LjcgMjcuMyAyOC45IDE5LjYgNDcuNHMtMjkgMjcuMi00Ny42IDE5LjRsLTI4LjUtMTEuOGM1IDEwLjYgMTMuOCAxOS40IDI1LjQgMjQuMmMyNS4yIDEwLjUgNTQuMS0xLjQgNjQuNi0yNi41YzUuMS0xMi4xIDUuMS0yNS41IC4xLTM3LjdjLTUuMS0xMi4xLTE0LjUtMjEuNi0yNi43LTI2LjdjLTEyLjEtNS0yNS00LjgtMzYuNC0uNWwyOS41IDEyLjJ6TTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjI0MC43bDExNi42IDQ4LjFjMTItOC4yIDI2LjItMTIuMSA0MC43LTExLjNsNTUuNC04MC4ydi0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44Yy0zMS44IDAtNTguNS0yMi43LTY0LjUtNTIuN0wwIDMxOS4yVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZ6TTI0MS45IDE5Ni4yYTU4LjQgNTguNCAwIDEgMCAxMTYuOCAwIDU4LjQgNTguNCAwIDEgMCAtMTE2LjggMHptMTQuNi0uMWE0My45IDQzLjkgMCAxIDEgODcuOCAwIDQzLjkgNDMuOSAwIDEgMSAtODcuOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVUaHJlYWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjk0LjIgMjQ0LjNjMTkuNSA5LjMgMzMuNyAyMy41IDQxLjIgNDAuOWMxMC40IDI0LjMgMTEuNCA2My45LTIwLjIgOTUuNGMtMjQuMiAyNC4xLTUzLjUgMzUtOTUuMSAzNS4zaC0uMmMtNDYuOC0uMy04Mi44LTE2LjEtMTA2LjktNDYuOEM5MS41IDM0MS44IDgwLjQgMzAzLjcgODAgMjU2di0uMS0uMWMuNC00Ny43IDExLjUtODUuNyAzMy0xMTMuMWMyNC4yLTMwLjcgNjAuMi00Ni41IDEwNi45LTQ2LjhoLjJjNDYuOSAuMyA4My4zIDE2IDEwOC4yIDQ2LjZjMTIuMyAxNS4xIDIxLjMgMzMuMyAyNyA1NC40bC0yNi45IDcuMmMtNC43LTE3LjItMTEuOS0zMS45LTIxLjQtNDMuNmMtMTkuNC0yMy45LTQ4LjctMzYuMS04Ny0zNi40Yy0zOCAuMy02Ni44IDEyLjUtODUuNSAzNi4yYy0xNy41IDIyLjMtMjYuNiA1NC40LTI2LjkgOTUuNWMuMyA0MS4xIDkuNCA3My4zIDI2LjkgOTUuNWMxOC43IDIzLjggNDcuNCAzNiA4NS41IDM2LjJjMzQuMy0uMyA1Ni45LTguNCA3NS44LTI3LjNjMjEuNS0yMS41IDIxLjEtNDcuOSAxNC4yLTY0Yy00LTkuNC0xMS40LTE3LjMtMjEuMy0yMy4zYy0yLjQgMTgtNy45IDMyLjItMTYuNSA0My4yYy0xMS40IDE0LjUtMjcuNyAyMi40LTQ4LjQgMjMuNWMtMTUuNyAuOS0zMC44LTIuOS00Mi42LTEwLjdjLTEzLjktOS4yLTIyLTIzLjItMjIuOS0zOS41Yy0xLjctMzIuMiAyMy44LTU1LjMgNjMuNS01Ny42YzE0LjEtLjggMjcuMy0uMiAzOS41IDEuOWMtMS42LTkuOS00LjktMTcuNy05LjgtMjMuNGMtNi43LTcuOC0xNy4xLTExLjgtMzAuOC0xMS45aC0uNGMtMTEgMC0yNiAzLjEtMzUuNiAxNy42bC0yMy0xNS44YzEyLjgtMTkuNCAzMy42LTMwLjEgNTguNS0zMC4xaC42YzQxLjggLjMgNjYuNiAyNi4zIDY5LjEgNzEuOGMxLjQgLjYgMi44IDEuMiA0LjIgMS45bC4xIC41em0tNzEuOCA2Ny41YzE3LS45IDM2LjQtNy42IDM5LjctNDguOGMtOC44LTEuOS0xOC42LTIuOS0yOS0yLjljLTMuMiAwLTYuNCAuMS05LjYgLjNjLTI4LjYgMS42LTM4LjEgMTUuNS0zNy40IDI3LjljLjkgMTYuNyAxOSAyNC41IDM2LjQgMjMuNmwtLjEtLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVR1bWJsciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0yNTYuOCA0MTZjLTc1LjUgMC05MS45LTU1LjUtOTEuOS04Ny45di05MEgxMzUuMmMtMy40IDAtNi4yLTIuOC02LjItNi4yVjE4OS40YzAtNC41IDIuOC04LjUgNy4xLTEwYzM4LjgtMTMuNyA1MC45LTQ3LjUgNTIuNy03My4yYy41LTYuOSA0LjEtMTAuMiAxMC0xMC4yaDQ0LjNjMy40IDAgNi4yIDIuOCA2LjIgNi4ydjcyaDUxLjljMy40IDAgNi4yIDIuOCA2LjIgNi4ydjUxLjFjMCAzLjQtMi44IDYuMi02LjIgNi4ySDI0OS4xVjMyMWMwIDIxLjQgMTQuOCAzMy41IDQyLjUgMjIuNGMzLTEuMiA1LjYtMiA4LTEuNGMyLjIgLjUgMy42IDIuMSA0LjYgNC45TDMxOCAzODcuMWMxIDMuMiAyIDYuNy0uMyA5LjFjLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlVHdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTM1MS4zIDE5OS4zdjBjMCA4Ni43LTY2IDE4Ni42LTE4Ni42IDE4Ni42Yy0zNy4yIDAtNzEuNy0xMC44LTEwMC43LTI5LjRjNS4zIC42IDEwLjQgLjggMTUuOCAuOGMzMC43IDAgNTguOS0xMC40IDgxLjQtMjhjLTI4LjgtLjYtNTMtMTkuNS02MS4zLTQ1LjVjMTAuMSAxLjUgMTkuMiAxLjUgMjkuNi0xLjJjLTMwLTYuMS01Mi41LTMyLjUtNTIuNS02NC40di0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zYy05LTYtMTYuNC0xNC4xLTIxLjUtMjMuNnMtNy44LTIwLjItNy43LTMxYzAtMTIuMiAzLjItMjMuNCA4LjktMzMuMWMzMi4zIDM5LjggODAuOCA2NS44IDEzNS4yIDY4LjZjLTkuMy00NC41IDI0LTgwLjYgNjQtODAuNmMxOC45IDAgMzUuOSA3LjkgNDcuOSAyMC43YzE0LjgtMi44IDI5LTguMyA0MS42LTE1LjhjLTQuOSAxNS4yLTE1LjIgMjgtMjguOCAzNi4xYzEzLjItMS40IDI2LTUuMSAzNy44LTEwLjJjLTguOSAxMy4xLTIwLjEgMjQuNy0zMi45IDM0Yy4yIDIuOCAuMiA1LjcgLjIgOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVVcHdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYgMzJsMzM2IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZsMCAzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZMNTYgNDgwYy0zMC45IDAtNTYtMjUuMS01Ni01NkwwIDg4QzAgNTcuMSAyNS4xIDMyIDU2IDMyek0yNzAuOSAyNzQuMmM2LjYtNTIuOSAyNS45LTY5LjUgNTEuNC02OS41YzI1LjMgMCA0NC45IDIwLjIgNDQuOSA0OS43cy0xOS43IDQ5LjctNDQuOSA0OS43Yy0yNy45IDAtNDYuMy0yMS41LTUxLjQtMjkuOXptLTI2LjctNDEuOGMtOC4yLTE1LjUtMTQuMy0zNi4zLTE5LjItNTUuNmwtMjkuNyAwLTMzLjIgMCAwIDc4LjFjMCAyOC40LTEyLjkgNDkuNC0zOC4yIDQ5LjRzLTM5LjgtMjAuOS0zOS44LTQ5LjNsLjMtNzguMS0zNi4yIDAgMCA3OC4xYzAgMjIuOCA3LjQgNDMuNSAyMC45IDU4LjJjMTMuOSAxNS4yIDMyLjggMjMuMiA1NC44IDIzLjJjNDMuNyAwIDc0LjItMzMuNSA3NC4yLTgxLjVsMC01Mi41YzQuNiAxNy4zIDE1LjQgNTAuNSAzNi4yIDc5LjdMMjE1IDM5Mi42bDM2LjggMCAxMi44LTc4LjRjNC4yIDMuNSA4LjcgNi42IDEzLjQgOS40YzEyLjMgNy44IDI2LjQgMTIuMiA0MC45IDEyLjZsLjEgMGMuNSAwIDEuMSAwIDEuNiAwYy42IDAgMS4xIDAgMS43IDBjNDUuMSAwIDgwLjktMzQuOSA4MC45LTgxLjlzLTM1LjktODIuMi04MC45LTgyLjJjLTQ1LjQgMC03MC45IDI5LjctNzguMSA2MC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVWaWFkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NnpNMTE4LjMgMzgxLjJjLTY4LTczLjYtMTkuOC0xOTYuMSA4MS4yLTE5Ni4xYzEzLjMgMCAyNi42IDIuMSAzOS4xIDYuN2MtNC4zIDguNC03LjMgMTcuNi04LjQgMjcuMWMtOS43LTQuMS0yMC4yLTYtMzAuNy02Yy00OC44IDAtODQuNiA0MS43LTg0LjYgODguOWMwIDQzIDI4LjUgNzguNyA2OS41IDg1LjljNjEuNS0yNCA3Mi45LTExNy42IDcyLjktMTc1djBjMC03LjMgMC0xNC44LS42LTIyLjFjLTExLjItMzIuOS0yNi42LTY0LjYtNDQuMi05NC41YzI3LjEgMTguMyA0MS45IDYyLjUgNDQuMiA5NC4xdi40YzcuNyAyMi41IDExLjggNDYuMiAxMS44IDcwYzAgNTQuMS0yMS45IDk5LTY4LjMgMTI4LjJsLTIuNCAuMmM1MCAxIDg2LjItMzguNiA4Ni4yLTg3LjJjMC0xMi4yLTIuMS0yNC4zLTYuOS0zNS43YzkuNS0xLjkgMTguNS01LjYgMjYuNC0xMC41YzE1LjMgMzYuNiAxMi42IDg3LjMtMjIuOCAxMjUuNmMtNDIuNCA0Ni4yLTEyMCA0Ni42LTE2Mi40IDB6TTI3NC42IDIxNy42YzIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTNjMS41LTMgNC4xLTguNiA0LjUtMTJjLTEyLjUgMjcuOS00NC4yIDQ5LjgtNzMuOSA1Ni43Yy00LjctNy4zLTcuNS0xNS41LTcuNS0yNC4zYzAtMTAuMyA1LjItMjQuMSAxMi45LTMxLjZjOC4zLTcuOSAxOC0xMC45IDI3LjktMTQuMWMxNi01LjEgMzIuNS0xMC4zIDQ0LjUtMzUuOWMzMi41IDQ2LjIgMTMuMSAxMzAuMy0zNi4zIDEzMC4zYy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVWaW1lbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0zMTguNSAzMDkuNUMyNzUgMzY2IDIzOC4yIDM5NC4zIDIwOC4xIDM5NC4zYy0xOC43IDAtMzQuNC0xNy4yLTQ3LjMtNTEuNmMtMy44LTEzLjktNy4zLTI2LjktMTAuNS0zOWMtMTguMi02OC4zLTI4LjYtMTA3LjQtNDYuMi0xMDcuNGMtMi40IDAtMTAuOCA1LTI1LjEgMTUuMUw2NCAxOTJjNy02LjEgMTMuOS0xMi40IDIwLjYtMTguNWMyOS4xLTI2LjMgNTUuNi01MC4zIDczLjUtNTEuOWMyNC45LTIuNCA0MC4yIDE0LjYgNDYgNTEuMWMyMC41IDEyOS42IDI5LjYgMTQ5LjIgNjYuOCA5MC41YzEzLjQtMjEuMiAyMC42LTM3LjIgMjEuNS00OC4zYzMuNC0zMi44LTI1LjYtMzAuNi00NS4yLTIyLjJjMTUuNy01MS41IDQ1LjgtNzYuNSA5MC4xLTc1LjFjMzIuOSAxIDQ4LjQgMjIuNCA0Ni41IDY0Yy0xLjQgMzEuMS0yMy4yIDczLjgtNjUuMyAxMjcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlV2ViQXdlc29tZVN0cm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEM0Ni4zIDY0IDMyIDc4LjMgMzIgOTZsMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJsMzIwIDBjMTcuNyAwIDMyLTE0LjMgMzItMzJsMC0zMjBjMC0xNy43LTE0LjMtMzItMzItMzJMNjQgNjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2em0yMzUgODEuNkwyODggMjI0bDUyLjItMTAuNGMtMi42LTMuOS00LjItOC41LTQuMi0xMy42YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy0xMC4zIDIzLjYtMjMuMiAyNEwzMDQuNSAzNDkuMWMtNS4yIDExLjUtMTYuNiAxOC45LTI5LjIgMTguOWwtMTAyLjYgMGMtMTIuNiAwLTI0LTcuNC0yOS4yLTE4LjlMODcuMiAyMjRDNzQuMyAyMjMuNiA2NCAyMTMgNjQgMjAwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCA1LTEuNSA5LjctNC4yIDEzLjZMMTYwIDIyNGw1My4xLTQ2LjRjLTguOS00LjEtMTUtMTMuMS0xNS0yMy42YzAtMTQuNCAxMS42LTI2IDI2LTI2czI2IDExLjYgMjYgMjZjMCAxMC41LTYuMiAxOS41LTE1LjEgMjMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlV2ViQXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyek0yMzUgMTc3LjZMMjg4IDIyNGw1Mi4yLTEwLjRjLTIuNi0zLjktNC4yLTguNS00LjItMTMuNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMtMTAuMyAyMy42LTIzLjIgMjRMMzA0LjUgMzQ5LjFjLTUuMiAxMS41LTE2LjYgMTguOS0yOS4yIDE4LjlsLTEwMi42IDBjLTEyLjYgMC0yNC03LjQtMjkuMi0xOC45TDg3LjIgMjI0Qzc0LjMgMjIzLjYgNjQgMjEzIDY0IDIwMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgNS0xLjUgOS43LTQuMiAxMy42TDE2MCAyMjRsNTMuMS00Ni40Yy04LjktNC4xLTE1LTEzLjEtMTUtMjMuNmMwLTE0LjQgMTEuNi0yNiAyNi0yNnMyNiAxMS42IDI2IDI2YzAgMTAuNS02LjIgMTkuNS0xNS4xIDIzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVdoYXRzYXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkyLjEgMjU0LjZjMCAyNC45IDcgNDkuMiAyMC4yIDcwLjFsMy4xIDUtMTMuMyA0OC42TDE1MiAzNjUuMmw0LjggMi45YzIwLjIgMTIgNDMuNCAxOC40IDY3LjEgMTguNGguMWM3Mi42IDAgMTMzLjMtNTkuMSAxMzMuMy0xMzEuOGMwLTM1LjItMTUuMi02OC4zLTQwLjEtOTMuMmMtMjUtMjUtNTgtMzguNy05My4yLTM4LjdjLTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44ek0yNzQuOCAzMzBjLTEyLjYgMS45LTIyLjQgLjktNDcuNS05LjljLTM2LjgtMTUuOS02MS44LTUxLjUtNjYuOS01OC43Yy0uNC0uNi0uNy0uOS0uOC0xLjFjLTItMi42LTE2LjItMjEuNS0xNi4yLTQxYzAtMTguNCA5LTI3LjkgMTMuMi0zMi4zYy4zLS4zIC41LS41IC43LS44YzMuNi00IDcuOS01IDEwLjYtNWMyLjYgMCA1LjMgMCA3LjYgLjFjLjMgMCAuNSAwIC44IDBjMi4zIDAgNS4yIDAgOC4xIDYuOGMxLjIgMi45IDMgNy4zIDQuOSAxMS44YzMuMyA4IDYuNyAxNi4zIDcuMyAxNy42YzEgMiAxLjcgNC4zIC4zIDYuOWMtMy40IDYuOC02LjkgMTAuNC05LjMgMTNjLTMuMSAzLjItNC41IDQuNy0yLjMgOC42YzE1LjMgMjYuMyAzMC42IDM1LjQgNTMuOSA0Ny4xYzQgMiA2LjMgMS43IDguNi0xYzIuMy0yLjYgOS45LTExLjYgMTIuNS0xNS41YzIuNi00IDUuMy0zLjMgOC45LTJzMjMuMSAxMC45IDI3LjEgMTIuOWMuOCAuNCAxLjUgLjcgMi4xIDFjMi44IDEuNCA0LjcgMi4zIDUuNSAzLjZjLjkgMS45IC45IDkuOS0yLjQgMTkuMWMtMy4zIDkuMy0xOS4xIDE3LjctMjYuNyAxOC44ek00NDggOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjRDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2ek0xNDguMSAzOTMuOUw2NCA0MTZsMjIuNS04Mi4yYy0xMy45LTI0LTIxLjItNTEuMy0yMS4yLTc5LjNDNjUuNCAxNjcuMSAxMzYuNSA5NiAyMjMuOSA5NmM0Mi40IDAgODIuMiAxNi41IDExMi4yIDQ2LjVjMjkuOSAzMCA0Ny45IDY5LjggNDcuOSAxMTIuMmMwIDg3LjQtNzIuNyAxNTguNS0xNjAuMSAxNTguNWMtMjYuNiAwLTUyLjctNi43LTc1LjgtMTkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlWFR3aXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em0yOTcuMSA4NEwyNTcuMyAyMzQuNiAzNzkuNCAzOTZIMjgzLjhMMjA5IDI5OC4xIDEyMy4zIDM5Nkg3NS44bDExMS0xMjYuOUw2OS43IDExNmg5OGw2Ny43IDg5LjVMMzEzLjYgMTE2aDQ3LjV6TTMyMy4zIDM2Ny42TDE1My40IDE0Mi45SDEyNS4xTDI5Ni45IDM2Ny42aDI2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVhpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NnpNOTMuOCAzMjAuMmMtNS41IDAtOC43LTUuMy02LTEwLjNsNDkuMy04Ni43Yy4xIDAgLjEtLjEgMC0uMmwtMzEuNC01NGMtMy01LjYgLjItMTAuMSA2LTEwLjFoNDYuNmM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMmMtMy41IDYuMi03LjcgOS4xLTEyLjYgOS4xSDkzLjh6bTE2My41LTMzLjR2LjJsNjUuNSAxMTljMi44IDUuMSAuMSAxMC4xLTYgMTAuMUgyNzAuMmMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMS44LTMuMiAyMi45LTQwLjQgNjMuMy0xMTEuNmMxMS43LTIwLjcgMjUuMS00NC4zIDQwLjEtNzAuOGMzLjMtNS44IDcuNC04LjcgMTIuNS04LjdoNDYuOWM1LjctLjEgOC44IDQuNyA2IDEwTDI1Ny4zIDI4Ni44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVZb3V0dWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MiAyNTYuMmwtOTUuMi01NC4xVjMxMC4zTDI4MiAyNTYuMnpNMzg0IDMySDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NHptMTQuNCAxMzYuMWM3LjYgMjguNiA3LjYgODguMiA3LjYgODguMnMwIDU5LjYtNy42IDg4LjFjLTQuMiAxNS44LTE2LjUgMjcuNy0zMi4yIDMxLjlDMzM3LjkgMzg0IDIyNCAzODQgMjI0IDM4NHMtMTEzLjkgMC0xNDIuMi03LjZjLTE1LjctNC4yLTI4LTE2LjEtMzIuMi0zMS45QzQyIDMxNS45IDQyIDI1Ni4zIDQyIDI1Ni4zczAtNTkuNyA3LjYtODguMmM0LjItMTUuOCAxNi41LTI4LjIgMzIuMi0zMi40QzExMC4xIDEyOCAyMjQgMTI4IDIyNCAxMjhzMTEzLjkgMCAxNDIuMiA3LjdjMTUuNyA0LjIgMjggMTYuNiAzMi4yIDMyLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZXNwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xMiAzNDMuMzRjLTkuNjUgOS42NS05LjY1IDI1LjI5IDAgMzQuOTQgOS42NSA5LjY1IDI1LjI5IDkuNjUgMzQuOTQgMEwzNzguMjQgMjIxLjFjMTkuMjktMTkuMjkgNTAuNTctMTkuMjkgNjkuODYgMHMxOS4yOSA1MC41NyAwIDY5Ljg2TDI5My45NSA0NDUuMWMxOS4yNyAxOS4yOSA1MC41MyAxOS4zMSA2OS44Mi4wNGwuMDQtLjA0IDExOS4yNS0xMTkuMjRjMzguNTktMzguNTkgMzguNTktMTAxLjE0IDAtMTM5LjcyLTM4LjU5LTM4LjU5LTEwMS4xNS0zOC41OS0xMzkuNzIgMGwtMTU3LjIyIDE1Ny4yem0yNDQuNTMtMTA0LjhjLTkuNjUtOS42NS0yNS4yOS05LjY1LTM0LjkzIDBsLTE1Ny4yIDE1Ny4xOGMtMTkuMjcgMTkuMjktNTAuNTMgMTkuMzEtNjkuODIuMDVsLS4wNS0uMDVjLTkuNjQtOS42NC0yNS4yNy05LjY1LTM0LjkyLS4wMWwtLjAxLjAxYy05LjY1IDkuNjQtOS42NiAyNS4yOC0uMDIgMzQuOTNsLjAyLjAyYzM4LjU4IDM4LjU3IDEwMS4xNCAzOC41NyAxMzkuNzIgMGwxNTcuMi0xNTcuMmM5LjY1LTkuNjUgOS42NS0yNS4yOS4wMS0zNC45M3ptLTI2MS45OSA4Ny4zM2wxNTcuMTgtMTU3LjE4YzkuNjQtOS42NSA5LjY0LTI1LjI5IDAtMzQuOTQtOS42NC05LjY0LTI1LjI3LTkuNjQtMzQuOTEgMEwxMzMuNzIgMjkwLjkzYy0xOS4yOCAxOS4yOS01MC41NiAxOS4zLTY5Ljg1LjAxbC0uMDEtLjAxYy0xOS4yOS0xOS4yOC0xOS4zMS01MC41NC0uMDMtNjkuODRsLjAzLS4wM0wyMTguMDMgNjYuODljLTE5LjI4LTE5LjI5LTUwLjU1LTE5LjMtNjkuODUtLjAybC0uMDIuMDJMMjguOTMgMTg2LjE0Yy0zOC41OCAzOC41OS0zOC41OCAxMDEuMTQgMCAxMzkuNzIgMzguNiAzOC41OSAxMDEuMTMgMzguNTkgMTM5LjczLjAxem0tODcuMzMtNTIuNGM5LjY0IDkuNjQgMjUuMjcgOS42NCAzNC45MSAwbDE1Ny4yMS0xNTcuMTljMTkuMjgtMTkuMjkgNTAuNTUtMTkuMyA2OS44NC0uMDJsLjAyLjAyYzkuNjUgOS42NSAyNS4yOSA5LjY1IDM0LjkzIDAgOS42NS05LjY1IDkuNjUtMjUuMjkgMC0zNC45My0zOC41OS0zOC41OS0xMDEuMTMtMzguNTktMTM5LjcyIDBMODEuMzMgMjM4LjU0Yy05LjY1IDkuNjQtOS42NSAyNS4yOC0uMDEgMzQuOTNoLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFja0V4Y2hhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcgMzMyLjNoNDEyLjd2MjJjMCAzNy43LTI5LjMgNjgtNjUuMyA2OGgtMTlMMjU5LjMgNTEydi04OS43SDgzYy0zNiAwLTY1LjMtMzAuMy02NS4zLTY4di0yMnptMC0yMy42aDQxMi43di04NUgxNy43djg1em0wLTEwOS40aDQxMi43di04NUgxNy43djg1ek0zNjUgMEg4M0M0NyAwIDE3LjcgMzAuMyAxNy43IDY3LjdWOTBoNDEyLjdWNjcuN0M0MzAuMyAzMC4zIDQwMSAwIDM2NSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFja092ZXJmbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC43IDMxMUw5NSAyNjkuNyA4Ni44IDMwOWwxOTUuNyA0MXptNTEtODdMMTg4LjIgOTUuN2wtMjUuNSAzMC44IDE1My41IDEyOC4zem0tMzEuMiAzOS43TDEyOS4yIDE3OWwtMTYuNyAzNi41TDI5My43IDMwMHpNMjYyIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNHptMjAuNSAzMjhoLTIwMHYzOS43aDIwMHptMzkuNyA4MEg0Mi43VjMyMGgtNDB2MTYwaDM1OS41VjMyMGgtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrcGF0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQuNiAyMzIuNGMwIDguNS00LjI2IDIwLjQ5LTIxLjM0IDIwLjQ5aC0xOS42MXYtNDEuNDdoMTkuNjFjMTcuMTMgMCAyMS4zNCAxMi4zNiAyMS4zNCAyMC45OHpNNDQ4IDMydjQ0OEgwVjMyek0xNTEuMyAyODcuODRjMC0yMS4yNC0xMi4xMi0zNC41NC00Ni43Mi00NC44NS0yMC41Ny03LjQxLTI2LTEwLjkxLTI2LTE4LjYzczctMTQuNjEgMjAuNDEtMTQuNjFjMTQuMDkgMCAyMC43OSA4LjQ1IDIwLjc5IDE4LjM1aDMwLjdsLjE5LS41N2MuNS0xOS41Ny0xNS4wNi00MS42NS01MS4xMi00MS42NS0yMy4zNyAwLTUyLjU1IDEwLjc1LTUyLjU1IDM4LjI5IDAgMTkuNCA5LjI1IDMxLjI5IDUwLjc0IDQ0LjM3IDE3LjI2IDYuMTUgMjEuOTEgMTAuNCAyMS45MSAxOS40OCAwIDE1LjItMTkuMTMgMTQuMjMtMTkuNDcgMTQuMjMtMjAuNCAwLTI1LjY1LTkuMS0yNS42NS0yMS45aC0zMC44bC0uMTguNTZjLS42OCAzMS4zMiAyOC4zOCA0NS4yMiA1Ni42MyA0NS4yMiAyOS45OCAwIDUxLjEyLTEzLjU1IDUxLjEyLTM4LjI5em0xMjUuMzgtNTUuNjNjMC0yNS4zLTE4LjQzLTQ1LjQ2LTUzLjQyLTQ1LjQ2aC01MS43OHYxMzguMThoMzIuMTd2LTQ3LjM2aDE5LjYxYzMwLjI1IDAgNTMuNDItMTUuOTUgNTMuNDItNDUuMzZ6TTI5Ny45NCAzMjVMMzQ3IDE4Ni43OGgtMzEuMDlMMjY4IDMyNXptMTA2LjUyLTEzOC4yMmgtMzEuMDlMMzI1LjQ2IDMyNWgyOS45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RheWxpbmtlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODIuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ0LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDYzLjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUwzLjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTEgNTEwLjdzNy40IDYuOCAxNy4zLS44bDE5OC0xNjMuOWM0LTMuMiA0LjQtOC43LjctMTIuMnptNTQuNS04My40TDIyNi43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUwzLjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNy45LTEyLjJsLTU3LjEtNTQuNGMtMy42LTMuNS0xMC0zLjctMTQuMi0uNWwtLjEuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDEwOSAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45LjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEuNWw0NS44LTM1LjhjNC4xLTMuMiA0LjQtOC43LjctMTIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlYW1TeW1ib2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk1LjUgMTc3LjVjMCAzMy44LTI3LjUgNjEtNjEgNjEtMzMuOCAwLTYxLTI3LjMtNjEtNjFzMjcuMy02MSA2MS02MWMzMy41IDAgNjEgMjcuMiA2MSA2MXptNTIuNS4yYzAgNjMtNTEgMTEzLjgtMTEzLjcgMTEzLjhMMjI1IDM3MS4zYy00IDQzLTQwLjUgNzYuOC04NC41IDc2LjgtNDAuNSAwLTc0LjctMjguOC04My02N0wwIDM1OFYyNTAuN0w5Ny4yIDI5MGMxNS4xLTkuMiAzMi4yLTEzLjMgNTItMTEuNWw3MS0xMDEuN2MuNS02Mi4zIDUxLjUtMTEyLjggMTE0LTExMi44QzM5NyA2NCA0NDggMTE1IDQ0OCAxNzcuN3pNMjAzIDM2M2MwLTM0LjctMjcuOC02Mi41LTYyLjUtNjIuNS00LjUgMC05IC41LTEzLjUgMS41bDI2IDEwLjVjMjUuNSAxMC4yIDM4IDM5IDI3LjcgNjQuNS0xMC4yIDI1LjUtMzkuMiAzOC02NC43IDI3LjUtMTAuMi00LTIwLjUtOC4zLTMwLjctMTIuMiAxMC41IDE5LjcgMzEuMiAzMy4yIDU1LjIgMzMuMiAzNC43IDAgNjIuNS0yNy44IDYyLjUtNjIuNXptMjA3LjUtMTg1LjNjMC00Mi0zNC4zLTc2LjItNzYuMi03Ni4yLTQyLjMgMC03Ni41IDM0LjItNzYuNSA3Ni4yIDAgNDIuMiAzNC4zIDc2LjIgNzYuNSA3Ni4yIDQxLjkuMSA3Ni4yLTMzLjkgNzYuMi03Ni4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjU2YzAgMTM3LTExMS4yIDI0OC0yNDguNCAyNDgtMTEzLjggMC0yMDkuNi03Ni4zLTIzOS0xODAuNGw5NS4yIDM5LjNjNi40IDMyLjEgMzQuOSA1Ni40IDY4LjkgNTYuNCAzOS4yIDAgNzEuOS0zMi40IDcwLjItNzMuNWw4NC41LTYwLjJjNTIuMSAxLjMgOTUuOC00MC45IDk1LjgtOTMuNSAwLTUxLjYtNDItOTMuNS05My43LTkzLjVzLTkzLjcgNDItOTMuNyA5My41djEuMkwxNzYuNiAyNzljLTE1LjUtLjktMzAuNyAzLjQtNDMuNSAxMi4xTDAgMjM2LjFDMTAuMiAxMDguNCAxMTcuMSA4IDI0Ny42IDggMzg0LjggOCA0OTYgMTE5IDQ5NiAyNTZ6TTE1NS43IDM4NC4zbC0zMC41LTEyLjZhNTIuNzkgNTIuNzkgMCAwIDAgMjcuMiAyNS44YzI2LjkgMTEuMiA1Ny44LTEuNiA2OS0yOC40IDUuNC0xMyA1LjUtMjcuMy4xLTQwLjMtNS40LTEzLTE1LjUtMjMuMi0yOC41LTI4LjYtMTIuOS01LjQtMjYuNy01LjItMzguOS0uNmwzMS41IDEzYzE5LjggOC4yIDI5LjIgMzAuOSAyMC45IDUwLjctOC4zIDE5LjktMzEgMjkuMi01MC44IDIxem0xNzMuOC0xMjkuOWMtMzQuNCAwLTYyLjQtMjgtNjIuNC02Mi4zczI4LTYyLjMgNjIuNC02Mi4zIDYyLjQgMjggNjIuNCA2Mi4zLTI3LjkgNjIuMy02Mi40IDYyLjN6bS4xLTE1LjZjMjUuOSAwIDQ2LjktMjEgNDYuOS00Ni44IDAtMjUuOS0yMS00Ni44LTQ2LjktNDYuOHMtNDYuOSAyMS00Ni45IDQ2LjhjLjEgMjUuOCAyMS4xIDQ2LjggNDYuOSA0Ni44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGlja2VyTXVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjEuNyAxOTkuNmMtMS4zLjMuMyAwIDAgMHptLTYuMi03Ny40Yy03LjctMjIuMy01LjEtNy4yLTEzLjQtMzYuOS0xLjYtNi41LTMuNi0xNC41LTYuMi0yMC00LjQtOC43LTQuNi03LjUtNC42LTkuNSAwLTUuMyAzMC43LTQ1LjMgMTktNDYuOS01LjctLjYtMTIuMiAxMS42LTIwLjYgMTctOC42IDQuMi04IDUtMTAuMyA1LTIuNiAwLTUuNy0zLTYuMi01LTItNS43IDEuOS0yNS45LTMuNi0yNS45LTMuNiAwLTEyLjMgMjQuOC0xNyAyNS44LTUuMiAxLjMtMjcuOS0xMS40LTc1LjEgMTgtMjUuMyAxMy4yLTg2LjkgNjUuMi04NyA2NS4zLTYuNyA0LjctMjAgNC43LTM1LjUgMTYtNDQuNCAzMC4xLTEwOS42IDkuNC0xMTAuNyA5LTExMC42LTI2LjgtMTI4LTE1LjItMTU5IDExLjUtMjAuOCAxNy45LTIzLjcgMzYuNS0yNC4yIDM4LjktNC4yIDIwLjQgNS4yIDQ4LjMgNi43IDY0LjMgMS44IDE5LjMtMi43IDE3LjcgNy43IDk4LjMuNSAxIDQuMSAwIDUuMSAxLjUgMCA4LjQtMy44IDEyLjEtNC4xIDEzLTEuNSA0LjUtMS41IDEwLjUgMCAxNiAyLjMgOC4yIDguMiAzNy4yIDguMiA0Ni45IDAgNDEuOC40IDQ0IDIuNiA0OS40IDMuOSAxMCAxMi41IDkuMSAxNyAxMiAzLjEgMy41LS41IDguNSAxIDEyLjUuNSAyIDMuNiA0IDYuMiA1IDkuMiAzLjYgMjcgLjMgMjkuOS0yLjUgMS42LTEuNS41LTQuNSAzLjEtNSA1LjEgMCAxMC44LS41IDE0LjQtMi41IDUuMS0yLjUgNC4xLTYgMS41LTEwLjUtLjQtLjgtNy0xMy4zLTkuOC0xNi0yLjEtMi01LjEtMy03LjItNC41LTUuOC00LjktMTAuMy0xOS40LTEwLjMtMTkuNS00LjYtMTkuNC0xMC4zLTQ2LjMtNC4xLTY2LjggNC42LTE3LjIgMzkuNS04Ny43IDM5LjYtODcuOCA0LjEtNi41IDE3LTExLjUgMjcuMy03IDYgMS45IDE5LjMgMjIgNjUuNCAzMC45IDQ3LjkgOC43IDk3LjQtMiAxMTIuMi0yIDIuOCAyLTEuOSAxMy0uNSAzOC45IDAgMjYuNC0uNCAxMy43LTQuMSAyOS45LTIuMiA5LjcgMy40IDIzLjItMS41IDQ2LjktMS40IDkuOC05LjkgMzIuNy04LjIgNDMuNC41IDEgMSAyIDEuNSAzLjUuNSA0LjUgMS41IDguNSA0LjYgMTAgNy4zIDMuNiAxMi0zLjUgOS44IDExLjUtLjcgMy4xLTIuNiAxMiAxLjUgMTUgNC40IDMuNyAzMC42IDMuNCAzNi41LjUgMi42LTEuNSAxLjYtNC41IDYuNC03LjQgMS45LS45IDExLjMtLjQgMTEuMy02LjUuMy0xLjgtOS4yLTE5LjktOS4zLTIwLTIuNi0zLjUtOS4yLTQuNS0xMS4zLTgtNi45LTEwLjEtMS43LTUyLjYuNS01OS40IDMtMTEgNS42LTIyLjQgOC43LTMyLjQgMTEtNDIuNSAxMC4zLTUwLjYgMTYuNS02OC4zLjgtMS44IDYuNC0yMy4xIDEwLjMtMjkuOSA5LjMtMTcgMjEuNy0zMi40IDMzLjUtNDcuNCAxOC0yMi45IDM0LTQ2LjkgNTItNjkuOCA2LjEtNyA4LjItMTMuNyAxOC04IDEwLjggNS43IDIxLjYgNyAzMS45IDE3IDE0LjYgMTIuOCAxMC4yIDE4LjIgMTEuOCAyMi45IDEuNSA1IDcuNyAxMC41IDE0LjkgOS41IDEwLjQtMiAxMy0yLjUgMTMuNC0yLjUgMi42LS41IDUuNy01IDcuMi04IDMuMS01LjUgNy4yLTkgNy4yLTE2LjUgMC03LjctLjQtMi44LTIwLjYtNTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyYXZhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1OC40IDBMNyAyOTJoODkuMmw2Mi4yLTExNi4xTDIyMC4xIDI5Mmg4OC41em0xNTAuMiAyOTJsLTQzLjkgODguMi00NC42LTg4LjJoLTY3LjZsMTEyLjIgMjIwIDExMS41LTIyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyaXBlUyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTUuMyAxNTQuNmMwLTIyLjMgMTguNi0zMC45IDQ4LjQtMzAuOSA0My40IDAgOTguNSAxMy4zIDE0MS45IDM2LjdWMjYuMUMyOTguMyA3LjIgMjUxLjEgMCAyMDMuOCAwIDg4LjEgMCAxMSA2MC40IDExIDE2MS40YzAgMTU3LjkgMjE2LjggMTMyLjMgMjE2LjggMjAwLjQgMCAyNi40LTIyLjkgMzQuOS01NC43IDM0LjktNDcuMiAwLTEwOC4yLTE5LjUtMTU2LjEtNDUuNXYxMjguNWEzOTYuMDkgMzk2LjA5IDAgMCAwIDE1NiAzMi40YzExOC42IDAgMjAwLjMtNTEgMjAwLjMtMTUzLjYgMC0xNzAuMi0yMTgtMTM5LjctMjE4LTIwMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY1IDE0NC43bC00My4zIDkuMi0uMiAxNDIuNGMwIDI2LjMgMTkuOCA0My4zIDQ2LjEgNDMuMyAxNC42IDAgMjUuMy0yLjcgMzEuMi01Ljl2LTMzLjhjLTUuNyAyLjMtMzMuNyAxMC41LTMzLjctMTUuN1YyMjFoMzMuN3YtMzcuOGgtMzMuN3ptODkuMSA1MS42bC0yLjctMTMuMUgyMTN2MTUzLjJoNDQuM1YyMzMuM2MxMC41LTEzLjggMjguMi0xMS4xIDMzLjktOS4zdi00MC44Yy02LTIuMS0yNi43LTYtMzcuMSAxMy4xem05Mi4zLTcyLjNsLTQ0LjYgOS41djM2LjJsNDQuNi05LjV6TTQ0LjkgMjI4LjNjMC02LjkgNS44LTkuNiAxNS4xLTkuNyAxMy41IDAgMzAuNyA0LjEgNDQuMiAxMS40di00MS44Yy0xNC43LTUuOC0yOS40LTguMS00NC4xLTguMS0zNiAwLTYwIDE4LjgtNjAgNTAuMiAwIDQ5LjIgNjcuNSA0MS4yIDY3LjUgNjIuNCAwIDguMi03LjEgMTAuOS0xNyAxMC45LTE0LjcgMC0zMy43LTYuMS00OC42LTE0LjJ2NDBjMTYuNSA3LjEgMzMuMiAxMC4xIDQ4LjUgMTAuMSAzNi45IDAgNjIuMy0xNS44IDYyLjMtNDcuOCAwLTUyLjktNjcuOS00My40LTY3LjktNjMuNHpNNjQwIDI2MS42YzAtNDUuNS0yMi04MS40LTY0LjItODEuNHMtNjcuOSAzNS45LTY3LjkgODEuMWMwIDUzLjUgMzAuMyA3OC4yIDczLjUgNzguMiAyMS4yIDAgMzcuMS00LjggNDkuMi0xMS41di0zMy40Yy0xMi4xIDYuMS0yNiA5LjgtNDMuNiA5LjgtMTcuMyAwLTMyLjUtNi4xLTM0LjUtMjYuOWg4Ni45Yy4yLTIuMy42LTExLjYuNi0xNS45em0tODcuOS0xNi44YzAtMjAgMTIuMy0yOC40IDIzLjQtMjguNCAxMC45IDAgMjIuNSA4LjQgMjIuNSAyOC40em0tMTEyLjktNjQuNmMtMTcuNCAwLTI4LjYgOC4yLTM0LjggMTMuOWwtMi4zLTExSDM2M3YyMDQuOGw0NC40LTkuNC4xLTUwLjJjNi40IDQuNyAxNS45IDExLjIgMzEuNCAxMS4yIDMxLjggMCA2MC44LTIzLjIgNjAuOC03OS42LjEtNTEuNi0yOS4zLTc5LjctNjAuNS03OS43em0tMTAuNiAxMjIuNWMtMTAuNCAwLTE2LjYtMy44LTIwLjktOC40bC0uMy02NmM0LjYtNS4xIDExLTguOCAyMS4yLTguOCAxNi4yIDAgMjcuNCAxOC4yIDI3LjQgNDEuNC4xIDIzLjktMTAuOSA0MS44LTI3LjQgNDEuOHptLTEyNi43IDMzLjdoNDQuNlYxODMuMmgtNDQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1YmJlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzYuNSAyOTQuMmw1OC44IDIyLjljOS4xLTM2LjggMjUuNC02MS4xIDU1LTYxLjFjNDkuNCAwIDcxLjQgNjMuNiAxNDIuNCA2My42YzE1LjYgMCAzNS45LTIuOCA1NS4zLTEzLjNWMzY4YzAgNjEuOC01MC40IDExMi0xMTIuMyAxMTJIMGw0MS44LTU2TDAgMzY4bDQxLjctNTZMMCAyNTYuMWw0MS44LTU2TDAgMTQ0LjEgNDEuOCA4OCAwIDMySDMzNS43QzM5Ny42IDMyIDQ0OCA4Mi4zIDQ0OCAxNDQuMXY1MS4zYy05LjIgMzYuMy0yNS45IDYwLjYtNTUgNjAuNmMtNDkuNiAwLTcxLjYtNjMuNS0xNDIuNC02My41Yy0zNS45IDAtOTUuMiAxNC42LTExNC4xIDEwMS42aDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0dWRpb3ZpbmFyaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAuMyAxODcuN2w0LjIgMjh2MjhsLTI1LjEgNDQuMS0zOS44IDc4LjQtNTYuMSA2Ny41LTc5LjEgMzcuOC0xNy43IDI0LjUtNy43IDEyLTkuNiA0czE3LjMtNjMuNiAxOS40LTYzLjZjMi4xIDAgMjAuMy43IDIwLjMuN2w2Ni43LTM4LjYtOTIuNSAyNi4xLTU1LjkgMzYuOC0yMi44IDI4LTYuNiAxLjQgMjAuOC03My42IDYuOS01LjUgMjAuNyAxMi45IDg4LjMtNDUuMiA1Ni44LTUxLjUgMTQuOC02OC40LTEyNS40IDIzLjMgMTUuMi0xOC4yLTE3My40LTUzLjMgODEuOS0xMC41LTE2Ni0xMjIuOUwxMzMuNSAxMDggMzIuMiAwbDI1Mi45IDEyNi42LTMxLjUtMzhMMzc4IDE2MyAyMzQuNyA2NGwxOC43IDM4LjQtNDkuNi0xOC4xTDE1OC4zIDBsMTk0LjYgMTIyTDMxMCA2Ni4ybDEwOCA5Ni40IDEyLTguOS0yMS0xNi40IDQuMi0zNy44TDQ1MSA4OS4xbDI5LjIgMjQuNyAxMS41IDQuMi03IDYuMiA4LjUgMTItMTMuMSA3LjQtMTAuMyAyMC4yIDEwLjUgMjMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1bWJsZXVwb25DaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCAxNzcuNWMtOS44IDAtMTcuOCA4LTE3LjggMTcuOHYxMDYuOWMwIDQwLjktMzMuOSA3My45LTc0LjkgNzMuOS00MS40IDAtNzQuOS0zMy41LTc0LjktNzQuOXYtNDYuNWg1Ny4zdjQ1LjhjMCAxMCA4IDE3LjggMTcuOCAxNy44czE3LjgtNy45IDE3LjgtMTcuOFYyMDAuMWMwLTQwIDM0LjItNzIuMSA3NC43LTcyLjEgNDAuNyAwIDc0LjcgMzIuMyA3NC43IDcyLjZ2MjMuN2wtMzQuMSAxMC4xLTIyLjktMTAuN3YtMjAuNmMuMS05LjYtNy45LTE3LjYtMTcuNy0xNy42em0xNjcuNiAxMjMuNmMwIDQxLjQtMzMuNSA3NC45LTc0LjkgNzQuOS00MS4yIDAtNzQuOS0zMy4yLTc0LjktNzQuMlYyNjNsMjIuOSAxMC43IDM0LjEtMTAuMXY0Ny4xYzAgOS44IDggMTcuNiAxNy44IDE3LjZzMTcuOC03LjkgMTcuOC0xNy42di00OGg1Ny4zYy0uMSA0NS45LS4xIDQ2LjQtLjEgNDYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3R1bWJsZXVwb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjkgMjY2djY5LjdjMCA2Mi4xLTUwLjMgMTEyLjQtMTEyLjQgMTEyLjQtNjEuOCAwLTExMi40LTQ5LjgtMTEyLjQtMTExLjN2LTcwLjJsMzQuMyAxNiA1MS4xLTE1LjJWMzM4YzAgMTQuNyAxMiAyNi41IDI2LjcgMjYuNVM0MTcgMzUyLjcgNDE3IDMzOHYtNzJoODUuOXptLTIyNC43LTU4LjJsMzQuMyAxNiA1MS4xLTE1LjJWMTczYzAtNjAuNS01MS4xLTEwOS0xMTIuMS0xMDktNjAuOCAwLTExMi4xIDQ4LjItMTEyLjEgMTA4LjJ2MTYyLjRjMCAxNC45LTEyIDI2LjctMjYuNyAyNi43Uzg2IDM0OS41IDg2IDMzNC42VjI2NkgwdjY5LjdDMCAzOTcuNyA1MC4zIDQ0OCAxMTIuNCA0NDhjNjEuNiAwIDExMi40LTQ5LjUgMTEyLjQtMTEwLjhWMTc2LjljMC0xNC43IDEyLTI2LjcgMjYuNy0yNi43czI2LjcgMTIgMjYuNyAyNi43djMwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cGVycG93ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMmMtODMuMyAxMS0xNjYuOCAyMi0yNTAgMzMtOTIgMTIuNS0xNjMuMyA4Ni43LTE2OSAxODAtMy4zIDU1LjUgMTggMTA5LjUgNTcuOCAxNDguMkwwIDQ4MGM4My4zLTExIDE2Ni41LTIyIDI0OS44LTMzIDkxLjgtMTIuNSAxNjMuMy04Ni44IDE2OC43LTE3OS44IDMuNS01NS41LTE4LTEwOS41LTU3LjctMTQ4LjJMNDQ4IDMyem0tNzkuNyAyMzIuM2MtNC4yIDc5LjUtNzQgMTM5LjItMTUyLjggMTM0LjUtNzkuNS00LjctMTQwLjctNzEtMTM2LjMtMTUxIDQuNS03OS4yIDc0LjMtMTM5LjMgMTUzLTEzNC41IDc5LjMgNC43IDE0MC41IDcxIDEzNi4xIDE1MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNjIuNWMwIDY0LjEtMTA5IDExNi4xLTI0My41IDExNi4xLTI0LjggMC00OC42LTEuOC03MS4xLTUgNy43LjQgMTUuNS42IDIzLjQuNiAxMzQuNSAwIDI0My41LTU2LjkgMjQzLjUtMTI3LjEgMC0yOS40LTE5LjEtNTYuNC01MS4yLTc4IDYwIDIxLjEgOTguOSA1NS4xIDk4LjkgOTMuNHpNNDcuNyAyMjcuOWMtLjEtNzAuMiAxMDguOC0xMjcuMyAyNDMuMy0xMjcuNiA3LjkgMCAxNS42LjIgMjMuMy41LTIyLjUtMy4yLTQ2LjMtNC45LTcxLTQuOUMxMDguOCA5Ni4zLS4xIDE0OC41IDAgMjEyLjZjLjEgMzguMyAzOS4xIDcyLjMgOTkuMyA5My4zLTMyLjMtMjEuNS01MS41LTQ4LjYtNTEuNi03OHptNjAuMiAzOS45czEwLjUgMTMuMiAyOS4zIDEzLjJjMTcuOSAwIDI4LjQtMTEuNSAyOC40LTI1LjEgMC0yOC00MC4yLTI1LjEtNDAuMi0zOS43IDAtNS40IDUuMy05LjEgMTIuNS05LjEgNS43IDAgMTEuMyAyLjYgMTEuMyA2LjZ2My45aDE0LjJ2LTcuOWMwLTEyLjEtMTUuNC0xNi44LTI1LjQtMTYuOC0xNi41IDAtMjguNSAxMC4yLTI4LjUgMjQuMSAwIDI2LjYgNDAuMiAyNS40IDQwLjIgMzkuOSAwIDYuNi01LjggMTAuMS0xMi4zIDEwLjEtMTEuOSAwLTIwLjctMTAuMS0yMC43LTEwLjFsLTguOCAxMC45em0xMjAuOC03My42djU0LjRjMCAxMS4zLTcuMSAxNy44LTE3LjggMTcuOC0xMC43IDAtMTcuOC02LjUtMTcuOC0xNy43di01NC41aC0xNS44djU1YzAgMTguOSAxMy40IDMxLjkgMzMuNyAzMS45IDIwLjEgMCAzMy40LTEzIDMzLjQtMzEuOXYtNTVoLTE1Ljd6bTM0LjQgODUuNGgxNS44di0yOS41aDE1LjVjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44aC0zOS4xdjEzLjRoNy44djcyem0xNS44LTQzdi0yOS4xaDEyLjljOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUuMSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3IDQzaDE1Ljh2LTI5LjVoMTUuNWMxNiAwIDI3LjItMTEuNSAyNy4yLTI4LjFzLTExLjItMjcuOC0yNy4yLTI3LjhoLTM5LjF2MTMuNGg3Ljh2NzJ6bTE1LjctNDN2LTI5LjFoMTIuOWM4LjcgMCAxMy43IDUuNyAxMy43IDE0LjQgMCA4LjktNSAxNC43LTE0IDE0LjdoLTEyLjZ6bTU3LjEgMzQuOGMwIDUuOCAyLjQgOC4yIDguMiA4LjJoMzcuNmM1LjggMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOC42Yy0xLjcgMC0yLjYtMS0yLjYtMi42di02MS4yYzAtNS43LTIuNC04LjItOC4yLTguMkg0MDF2MTMuNGg1LjJjMS43IDAgMi42IDEgMi42IDIuNnY2MS4yem02My40IDBjMCA1LjggMi40IDguMiA4LjIgOC4ySDUxOWM1LjcgMCA4LjItMi40IDguMi04LjJ2LTEzaC0xNC4zdjUuMmMwIDEuNy0xIDIuNi0yLjYgMi42aC0xOS43Yy0xLjcgMC0yLjYtMS0yLjYtMi42di0yMC4zaDI3Ljd2LTEzLjRINDg4di0yMi40aDE5LjJjMS43IDAgMi42IDEgMi42IDIuNnY1LjJINTI0di0xM2MwLTUuNy0yLjUtOC4yLTguMi04LjJoLTUxLjZ2MTMuNGg3Ljh2NjMuOXptNTguOS03NnY1LjloMS42di01LjloMi43di0xLjJoLTd2MS4yaDIuN3ptNS43LTEuMnY3LjFoMS41di01LjdsMi4zIDUuN2gxLjNsMi4zLTUuN3Y1LjdoMS41di03LjFoLTIuM2wtMi4xIDUuMS0yLjEtNS4xaC0yLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTkzLjEgMTkyLjZBMTAuNCAxMC40IDAgMSAxIDYwNC41IDIxMGExMC40IDEwLjQgMCAxIDEgLTExLjQtMTcuNHptLTQ3LjEgMTIuMmEzOC41IDM4LjUgMCAxIDEgNzUtMTcuNiAzOC41IDM4LjUgMCAxIDEgLTc1IDE3LjZ6TTQzMy43IDMzNi43YzMuMiA0LjYgNS44IDkgNy4zIDEzLjRjMSAzLjEgMi40IDcuMyA1LjUgOC45Yy4yIC4xIC4zIC4yIC41IC4yYzUuNyAyLjEgMjAuMyAxLjcgMjAuMyAxLjdoMjYuOGMyLjMgMCAyMi40IDAgMjEuOS0yLjNjLTIuNC0xMC44LTE0LjktMTIuNy0yNC40LTE4LjNjLTguNy01LjItMTctMTEuMS0yMC44LTIxLjNjLTItNS4yLS44LTE3LjQgMi42LTIxLjhjMi41LTMuMiA2LjEtNS4zIDEwLTYuMmM0LjMtLjkgOC44LS4xIDEzLjEgLjNjNS4zIC41IDEwLjYgMS41IDE1LjkgMi4yYzEwLjMgMS4zIDIwLjYgMS45IDMxIDEuNmMxNy4xLS41IDM0LjItMy4yIDUwLjQtOC43YzExLjMtMy44IDIyLjQtOC45IDMyLTE2LjFjMTAuOS04LjEgOC4xLTcuNC0zLTYuMmMtMTMuMyAxLjQtMjYuNiAxLjYtMzkuOSAuOGMtMTIuNC0uNy0yNC43LTIuMi0zNS45LTcuOWMtOC44LTQuNi0xNi40LTkuMS0yMy40LTE2LjJjLTEtMS4xLTEuNy00LjIgLjItNi4yYzEuOS0xLjkgNS44LS44IDcgLjJjMTIuMiAxMC4yIDMwLjUgMTguNiA0OS4zIDE5LjVjMTAuMiAuNSAyMC4xIC43IDMwLjQgLjNjNS4xLS4yIDEyLjgtLjIgMTcuOS0uM2MyLjYgMCA5LjggLjcgMTEuMi0yLjFjLjQtLjggLjQtMS44IC4zLTIuN2MtMS41LTQwLjktNC41LTg2LjktNDcuMy0xMDYuNWMtMzEuOS0xNC42LTc5LjctMzcuMi05OS45LTQ2LjZjLTQuNy0yLjItMTAuMiAxLjMtMTAuMiA2LjVjMCAxMy42IC43IDMzLjMgLjcgNTEuMWMtOS43LTkuOS0yNi0xNi4xLTM4LjQtMjEuOGMtMTQuMS02LjUtMjguNy0xMi00My41LTE2LjZjLTI5LjgtOS4yLTYwLjctMTQuOS05MS43LTE4Yy0zNS4yLTMuNS03MS0xLjgtMTA1LjcgNS4zQzE0NyAxMTUuMSA5MC44IDE0Mi42IDQ4LjIgMTgyLjdDMjIuMSAyMDcuMyAxLjYgMjQyLjQgLjIgMjc3LjljLTIgNTAuMyAxMi4xIDc3LjMgMzggMTA1LjJjNDEuMyA0NC40IDEzMC4yIDUwLjYgMTY2LjItMmMxNi4yLTIzLjcgMTkuNy01NS44IDgtODJjLTExLjgtMjYuMi0zOC44LTQ1LjEtNjcuNC00NmMtMjIuMi0uNy00NS45IDEwLjYtNTQuNSAzMS4xYy02LjUgMTUuNy0yLjggMzUuMSA5IDQ3LjNjNC42IDQuOCAxMC45IDguNyAxNy43IDcuMWM0LS45IDcuNC0zLjkgOC04Yy45LTYtNC40LTkuOS03LjYtMTQuNWMtNS44LTguMy00LjctMjAuOSAyLjctMjcuOWM2LjItNiAxNS4zLTcuOCAyMy45LTcuN2M4IDAgMTYuMiAxLjQgMjMuMSA1LjVjOS43IDUuNyAxNi4yIDE2LjIgMTguNCAyNy4yYzYuNyAzMy0yMC4yIDU5LjktNTYuNiA2MmMtMTguNiAxLjEtMzcuNi0zLjgtNTIuMS0xNS41QzQwLjEgMzI5LjkgMzEuMSAyNjkuNCA3My4yIDIzN2M0MC0zMC43IDkwLjQtMjIuOCAxMjAuMi02LjhjMjMuOCAxMi44IDQxLjUgMzMuNiA1NSA1Ni43YzYuNyAxMS42IDEyLjUgMjMuNyAxNy44IDM2LjFjNS4xIDExLjggOS45IDIzLjggMjAuMiAzMi41YzYuOCA1LjggMTUuMiA1LjYgMjQuMSA1LjZoNTAuOGM2LjkgMCA1LjItNC42IDIuMi03LjdjLTYuNy02LjktMTYuNC04LjQtMjUuNC0xMC45Yy0yMC41LTUuNi0xOC40LTMyLjgtMTIuNy0zMi44YzE4LjMgMCAxOC45IC42IDM0LjkgLjNjMjMuMi0uMyAzMC4yLTEuNyA0OC4zIDVjOS43IDMuNiAxOSAxMy4xIDI1LjEgMjEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDE1Ni4wOWMwLTQuNTEtLjA4LTktLjItMTMuNTJhMTk2LjMxIDE5Ni4zMSAwIDAgMC0yLjU4LTI5LjQyIDk5LjYyIDk5LjYyIDAgMCAwLTkuMjItMjhBOTQuMDggOTQuMDggMCAwIDAgMzk0Ljg0IDQ0YTk5LjE3IDk5LjE3IDAgMCAwLTI4LTkuMjIgMTk1IDE5NSAwIDAgMC0yOS40My0yLjU5Yy00LjUxLS4xMi05LS4xNy0xMy41Mi0uMkgxMjQuMTRjLTQuNTEgMC05IC4wOC0xMy41Mi4yLTIuNDUuMDctNC45MS4xNS03LjM3LjI3YTE3MS42OCAxNzEuNjggMCAwIDAtMjIuMDYgMi4zMiAxMDMuMDYgMTAzLjA2IDAgMCAwLTIxLjIxIDYuMXEtMy40NiAxLjQ1LTYuODEgMy4xMmE5NC42NiA5NC42NiAwIDAgMC0xOC4zOSAxMi4zMmMtMS44OCAxLjYxLTMuNjkgMy4yOC01LjQzIDVBOTMuODYgOTMuODYgMCAwIDAgMTIgODUuMTdhOTkuNDUgOTkuNDUgMCAwIDAtOS4yMiAyOCAxOTYuMzEgMTk2LjMxIDAgMCAwLTIuNTQgMjkuNGMtLjEzIDQuNTEtLjE4IDktLjIxIDEzLjUydjE5OS44M2MwIDQuNTEuMDggOSAuMjEgMTMuNTFhMTk2LjA4IDE5Ni4wOCAwIDAgMCAyLjU4IDI5LjQyIDk5LjMgOTkuMyAwIDAgMCA5LjIyIDI4QTk0LjMxIDk0LjMxIDAgMCAwIDUzLjE3IDQ2OGE5OS40NyA5OS40NyAwIDAgMCAyOCA5LjIxIDE5NSAxOTUgMCAwIDAgMjkuNDMgMi41OWM0LjUuMTIgOSAuMTcgMTMuNTIuMkgzMjMuOTFjNC41MSAwIDktLjA4IDEzLjUyLS4yYTE5Ni41OSAxOTYuNTkgMCAwIDAgMjkuNDQtMi41OSA5OS41NyA5OS41NyAwIDAgMCAyOC05LjIxQTk0LjIyIDk0LjIyIDAgMCAwIDQzNiA0MjYuODRhOTkuMyA5OS4zIDAgMCAwIDkuMjItMjggMTk0Ljc5IDE5NC43OSAwIDAgMCAyLjU5LTI5LjQyYy4xMi00LjUuMTctOSAuMi0xMy41MVYxNzIuMTRjLS4wMS01LjM1LS4wMS0xMC43LS4wMS0xNi4wNXptLTY5Ljg4IDI0MWMtMjAtMzguOTMtNTcuMjMtMjkuMjctNzYuMzEtMTkuNDctMS43MiAxLTMuNDggMi01LjI1IDNsLS40Mi4yNWMtMzkuNSAyMS05Mi41MyAyMi41NC0xNDUuODUtLjM4QTIzNC42NCAyMzQuNjQgMCAwIDEgNDUgMjkwLjEyYTIzMC42MyAyMzAuNjMgMCAwIDAgMzkuMTcgMjMuMzdjNTYuMzYgMjYuNCAxMTMgMjQuNDkgMTUzIDAtNTctNDMuODUtMTA0LjYtMTAxLTE0MS4wOS0xNDcuMjJhMTk3LjA5IDE5Ny4wOSAwIDAgMS0xOC43OC0yNS45YzQzLjcgNDAgMTEyLjcgOTAuMjIgMTM3LjQ4IDEwNC4xMi01Mi41Ny01NS40OS05OC44OS0xMjMuOTQtOTYuNzItMTIxLjc0IDgyLjc5IDgzLjQyIDE1OS4xOCAxMzAuNTkgMTU5LjE4IDEzMC41OSAyLjg4IDEuNTggNSAyLjg1IDYuNzMgNGExMjcuNDQgMTI3LjQ0IDAgMCAwIDQuMTYtMTIuNDdjMTMuMjItNDguMzMtMS42Ni0xMDMuNTgtMzUuMzEtMTQ5LjJDMzI5LjYxIDE0MS43NSAzNzUgMjI5LjM0IDM1Ni40IDMwMy40MmMtLjQ0IDEuNzMtLjk1IDMuNC0xLjQ0IDUuMDkgMzguNTIgNDcuNCAyOC4wNCA5OC4xNyAyMy4xMyA4OC41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ltZm9ueSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMzMuNzQgMTQzLjU0Yy0xMS40Ny40MS0xOS40LTYuNDUtMTkuNzctMTYuODctLjI3LTkuMTggNi42OC0xMy40NCA2LjUzLTE4Ljg1LS4yMy02LjU1LTEwLjE2LTYuODItMTIuODctNi42Ny0zOS43OCAxLjI5LTQ4LjU5IDU3LTU4Ljg5IDExMy44NSAyMS40MyAzLjE1IDM2LjY1LS43MiA0NS4xNC02LjIyIDEyLTcuNzUtMy4zNC0xNS43Mi0xLjQyLTI0LjU2IDQtMTguMTYgMzIuNTUtMTkgMzIgNS4zLS4zNiAxNy44Ni0yNS45MiA0MS44MS03Ny42IDM1LjctMTAuNzYgNTkuNTItMTguMzUgMTE1LTU4LjIgMTYxLjcyLTI5IDM0LjQ2LTU4LjQgMzkuODItNzEuNTggNDAuMjYtMjQuNjUuODUtNDEtMTIuMzEtNDEuNTgtMjkuODQtLjU2LTE3IDE0LjQ1LTI2LjI2IDI0LjMxLTI2LjU5IDIxLjg5LS43NSAzMC4xMiAyNS42NyAxNC44OCAzNC0xMi4wOSA5LjcxLjExIDEyLjYxIDIuMDUgMTIuNTUgMTAuNDItLjM2IDE3LjM0LTUuNTEgMjIuMTgtOSAyNC0yMCAzMy4yNC01NC44NiA0NS4zNS0xMTguMzUgOC4xOS00OS42NiAxNy03OCAxOC4yMy04Mi0xNi45My0xMi43NS0yNy4wOC0yOC41NS00OS44NS0zNC43Mi0xNS42MS00LjIzLTI1LjEyLS42My0zMS44MSA3LjgzLTcuOTIgMTAtNS4yOSAyMyAyLjM3IDMwLjdsMTIuNjMgMTRjMTUuNTEgMTcuOTMgMjQgMzEuODcgMjAuOCA1MC42Mi01LjA2IDI5LjkzLTQwLjcyIDUyLjktODIuODggMzkuOTQtMzYtMTEuMTEtNDIuNy0zNi41Ni0zOC4zOC01MC42MiA3LjUxLTI0LjE1IDQyLjM2LTExLjcyIDM0LjYyIDEzLjYtMi43OSA4LjYtNC45MiA4LjY4LTYuMjggMTMuMDctNC41NiAxNC43NyA0MS44NSAyOC40IDUxLTEuMzkgNC40Ny0xNC41Mi01LjMtMjEuNzEtMjIuMjUtMzkuODUtMjguNDctMzEuNzUtMTYtNjUuNDkgMi45NS03OS42N0MyMDQuMjMgMTQwLjEzIDI1MS45NCAxOTcgMjYyIDIwNS4yOWMzNy4xNy0xMDkgMTAwLjUzLTEwNS40NiAxMDIuNDMtMTA1LjUzIDI1LjE2LS44MSA0NC4xOSAxMC41OSA0NC44MyAyOC42NS4yNSA3LjY5LTQuMTcgMjIuNTktMTkuNTIgMjMuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlYW1zcGVhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuOCAzNy4yYy0zMi4yIDM4LjEtNTYuMSA4Mi42LTY5LjkgMTMwLjVjMCAuMi0uMSAuMy0uMSAuNUM0My41IDE4NC40IDE2IDIyMyAxNiAyNjhjMCA1OS42IDQ4LjQgMTA4IDEwOCAxMDhzMTA4LTQ4LjQgMTA4LTEwOGMwLTUzLjUtMzguOS05Ny45LTkwLTEwNi41YzE1LjctNDEuOCA0MC40LTc5LjYgNzIuMy0xMTAuN2MxLjgtMS42IDQtMi42IDYuMy0zLjFjMzcuMi0xMS41IDc2LjctMTMuMyAxMTQuOC01LjJDNDU0LjcgNjcuNiA1MzQgMTgwLjcgNTE3LjEgMzAxLjNjLTguNCA2Mi42LTM4LjYgMTEyLjctODcuNyAxNTEuNGMtNTAuMSAzOS43LTEwNy41IDU0LjMtMTcwLjIgNTIuMmwtMjQtMWMxMi40IDIuOCAyNSA0LjkgMzcuNiA2LjNjNDAuNyA0LjIgODEuNCAyLjEgMTIwLjEtMTIuNWM5NC0zNS41IDE0OS4zLTEwMi4zIDE2Mi45LTIwMi41YzQuOC01Mi42LTUuOC0xMDUuNC0zMC44LTE1MkM0NTQuNiAxMS4zIDI5MC44LTM4LjQgMTU5IDMyYy0yLjQgMS40LTQuNSAzLjEtNi4zIDUuMnpNMzA5LjQgNDMzLjljLTIuMSAxMS41LTQuMiAyMS45LTE0LjYgMzEuM2M1My4yLTEgMTIzLjItMjkuMiAxNjEuOC05Ny4xYzM5LjctNjkuOSAzNy42LTEzOS45LTYuMy0yMDcuOEM0MTMuOCAxMDUgMzYwLjUgNzcuOSAyOTMuNyA3My43YzEuNSAyLjMgMy4yIDQuNCA1LjIgNi4zbDUuMiA2LjNjMjUuMSAzMS4zIDM3LjYgNjcuOSA0Mi44IDEwNy41YzIuMSAxNS43LTEgMzAuMy0xMy42IDQxLjhjLTQuMiAzLjEtNS4yIDYuMy00LjIgMTAuNGw3LjMgMTcuN0wzNjUuNyAzMThjNS4yIDExLjUgNC4yIDE5LjgtNi4zIDI4LjJjLTMuMiAyLjUtNi43IDQuNi0xMC40IDYuM2wtMTguOCA4LjQgMy4xIDEzLjZjMy4xIDYuMyAxIDEyLjUtMy4xIDE3LjdjLTIuNSAyLjQtMy44IDUuOS0zLjEgOS40YzIuMSAxMS41LTIuMSAxOS44LTEyLjUgMjUuMWMtMi4xIDEtNC4yIDUuMi01LjIgNy4zem0tMTMzLjYtMy4xYzE2LjcgMTEuNSAzNC41IDIwLjkgNTMuMiAyNi4xYzI0IDUuMiA0MS44LTYuMyA0NC45LTMwLjNjMS04LjQgNS4yLTE0LjYgMTIuNS0xNy43YzcuMy00LjIgOC40LTcuMyAyLjEtMTMuNmwtOS40LTguNCAxMy42LTQuMmM2LjMtMi4xIDcuMy01LjIgNS4yLTExLjVjLTEuNC0zLTIuNC02LjItMy4xLTkuNGMtMy4xLTE0LjYtMi4xLTE1LjcgMTEuNS0xOC44YzguNC0zLjEgMTUuNy02LjMgMjEuOS0xMi41YzMuMS0yLjEgMy4xLTQuMiAxLTguNGwtMTYuNy0zMC4zYy0xLTEuOS0yLjEtMy44LTMuMS01LjdjLTYuNC0xMS43LTEzLTIzLjYtMTUuNy0zNy4xYy0yLjEtOS40LTEtMTcuNyA4LjQtMjRjNS4yLTQuMiA4LjQtOS40IDguNC0xNi43Yy0uNC0xMC4xLTEuNS0yMC4zLTMuMS0zMC4zYy02LjMtMzcuNi0yMy02OC45LTUxLjItOTVjLTUuMi00LjItOS40LTYuMy0xNi43LTQuMkwyMDMuOSA5MS41YzIgMS4yIDQgMi40IDYgMy42bDAgMGM2LjMgMy43IDEyLjIgNy4zIDE3IDEyLjFjMzAuMyAyNi4xIDQxLjggNjEuNiA0NS45IDEwMC4yYzEgOC40IDAgMTYuNy03LjMgMjEuOWMtOC40IDUuMi0xMC40IDEyLjUtNy4zIDIwLjljNC45IDEzLjIgMTAuNCAyNiAxNi43IDM4LjZMMjkxLjYgMzE4Yy02LjMgOC40LTEzLjYgMTEuNS0yMS45IDE0LjZjLTEyLjUgMy4xLTE0LjYgNy4zLTEwLjQgMjAuOWMuNiAxLjUgMS40IDIuOCAyLjEgNC4yYzIuMSA1LjIgMSA4LjQtNC4yIDEwLjRsLTEyLjUgMy4xIDUuMiA0LjIgNC4yIDQuMmM0LjIgNS4yIDQuMiA4LjQtMi4xIDEwLjRjLTcuMyA0LjItMTEuNSA5LjQtMTEuNSAxNy43YzAgMTIuNS03LjMgMTkuOC0xOC44IDI0Yy0zLjggMS03LjYgMS41LTExLjUgMWwtMzQuNS0yLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbGVncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCw4QzExMS4wMzMsOCwwLDExOS4wMzMsMCwyNTZTMTExLjAzMyw1MDQsMjQ4LDUwNCw0OTYsMzkyLjk2Nyw0OTYsMjU2LDM4NC45NjcsOCwyNDgsOFpNMzYyLjk1MiwxNzYuNjZjLTMuNzMyLDM5LjIxNS0xOS44ODEsMTM0LjM3OC0yOC4xLDE3OC4zLTMuNDc2LDE4LjU4NC0xMC4zMjIsMjQuODE2LTE2Ljk0OCwyNS40MjUtMTQuNCwxLjMyNi0yNS4zMzgtOS41MTctMzkuMjg3LTE4LjY2MS0yMS44MjctMTQuMzA4LTM0LjE1OC0yMy4yMTUtNTUuMzQ2LTM3LjE3Ny0yNC40ODUtMTYuMTM1LTguNjEyLTI1LDUuMzQyLTM5LjUsMy42NTItMy43OTMsNjcuMTA3LTYxLjUxLDY4LjMzNS02Ni43NDYuMTUzLS42NTUuMy0zLjEtMS4xNTQtNC4zODRzLTMuNTktLjg0OS01LjEzNS0uNXEtMy4yODMuNzQ2LTEwNC42MDgsNjkuMTQyLTE0Ljg0NSwxMC4xOTQtMjYuODk0LDkuOTM0Yy04Ljg1NS0uMTkxLTI1Ljg4OC01LjAwNi0zOC41NTEtOS4xMjMtMTUuNTMxLTUuMDQ4LTI3Ljg3NS03LjcxNy0yNi44LTE2LjI5MXEuODQtNi43LDE4LjQ1LTEzLjcsMTA4LjQ0Ni00Ny4yNDgsMTQ0LjYyOC02Mi4zYzY4Ljg3Mi0yOC42NDcsODMuMTgzLTMzLjYyMyw5Mi41MTEtMzMuNzg5LDIuMDUyLS4wMzQsNi42MzkuNDc0LDkuNjEsMi44ODVhMTAuNDUyLDEwLjQ1MiwwLDAsMSwzLjUzLDYuNzE2QTQzLjc2NSw0My43NjUsMCwwLDEsMzYyLjk1MiwxNzYuNjZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbmNlbnRXZWlibyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Mi4zIDQ5NS44YzEuNCAxOS45LTI3LjYgMjIuMi0yOS43IDIuOUMzMSAzNjguOCA3My43IDI1OS4yIDE0NCAxODUuNWMtMTUuNi0zNCA5LjItNzcuMSA1MC42LTc3LjEgMzAuMyAwIDU1LjEgMjQuNiA1NS4xIDU1LjEgMCA0NC00OS41IDcwLjgtODYuOSA0NS4xLTY1LjcgNzEuMy0xMDEuNCAxNjkuOC05MC41IDI4Ny4yek0xOTIgLjFDNjYuMS4xLTEyLjMgMTM0LjMgNDMuNyAyNDIuNCA1Mi40IDI1OS44IDc5IDI0Ni45IDcwIDIyOSAyMy43IDEzNi40IDkxIDI5LjggMTkyIDI5LjhjNzUuNCAwIDEzNi45IDYxLjQgMTM2LjkgMTM2LjkgMCA5MC44LTg2LjkgMTUzLjktMTY3LjcgMTMzLjEtMTkuMS00LjEtMjUuNiAyNC40LTYuNiAyOS4xIDExMC43IDIzLjIgMjA0LTYwIDIwNC0xNjIuM0MzNTguNiA3NC43IDI4NCAuMSAxOTIgLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZVJlZFlldGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4LjIzIDI0MS43bDIwLjcgNy4xYy05LjYtMjMuOS0yMy45LTM3LTMxLjctNDQuOGw3LjEtMTguMmMuMiAwIDEyLjMtMjcuOC0yLjUtMzAuNy0uNi0xMS4zLTYuNi0yNy0xOC40LTI3LTcuNi0xMC42LTE3LjctMTIuMy0zMC43LTUuOWExMjIuMiAxMjIuMiAwIDAgMC0yNS4zIDE2LjVjLTUuMy02LjQtMyAuNC0zLTI5LjgtMzcuMS0yNC4zLTQ1LjQtMTEuNy03NC44IDNsLjUuNWEyMzkuMzYgMjM5LjM2IDAgMCAwLTY4LjQtMTMuM2MtNS41LTguNy0xOC42LTE5LjEtMjUuMS0yNS4xbDI0LjggNy4xYy01LjUtNS41LTI2LjgtMTIuOS0zNC4yLTE1LjIgMTguMi00LjEgMjkuOC0yMC44IDQyLjUtMzMtMzQuOS0xMC4xLTY3LjktNS45LTk3LjkgMTEuOGwxMi00NC4yTDE4MiAwYy0zMS42IDI0LjItMzMgNDEuOS0zMy43IDQ1LjUtLjktMi40LTYuMy0xOS42LTE1LjItMjdhMzUuMTIgMzUuMTIgMCAwIDAtLjUgMjUuM2MzIDguNCA1LjkgMTQuOCA4LjQgMTguOS0xNi0zLjMtMjguMy00LjktNDkuMiAwaC0zLjdsMzMgMTQuM2ExOTQuMjYgMTk0LjI2IDAgMCAwLTQ2LjcgNjcuNGwtMS43IDguNCAxLjcgMS43IDcuNi00LjdjLTMuMyAxMS42LTUuMyAxOS40LTYuNiAyNS44YTIwMC4xOCAyMDAuMTggMCAwIDAtMjcuOCA0MC4zYy0xNSAxLTMxLjggMTAuOC00MC4zIDE0LjNsMyAzLjQgMjguOCAxYy0uNSAxLS43IDIuMi0xLjIgMy4yLTcuMyA2LjQtMzkuOCAzNy43LTMzIDgwLjdsMjAuMi0yMi40Yy41IDEuNy43IDMuNCAxLjIgNS4yIDAgMjUuNS40IDg5LjYgNjQuOSAxNTAuNSA0My42IDQwIDk2IDYwLjIgMTU3LjUgNjAuMiAxMjEuNyAwIDIyMy04Ny4zIDIyMy0yMTEuNSA2LjgtOS43LTEuMiAzIDE2LjctMjUuMWwxMyAxNC4zIDIuNS0uNUExODEuODQgMTgxLjg0IDAgMCAwIDQ5NSAyNTVhNDQuNzQgNDQuNzQgMCAwIDAtNi44LTEzLjN6TTM5OCAxMTEuMmwtLjUgMjEuOWM1LjUgMTguMSAxNi45IDE3LjIgMjIuNCAxNy4ybC0zLjQtNC43IDIyLjQtNS40YTI0Mi40NCAyNDIuNDQgMCAwIDEtMjcgMGMxMi44LTIuMSAzMy4zLTI5IDQzLTExLjMgMy40IDcuNiA2LjQgMTcuMiA5LjMgMjcuOGwxLjctNS45YTU2LjM4IDU2LjM4IDAgMCAxLTEuNy0xNS4yYzUuNC41IDguOCAzLjQgOS4zIDEwLjEuNSA2LjQgMS43IDE0LjggMy40IDI1LjNsNC43LTExLjNjNC42IDAgNC41LTMuNi0yLjUgMjAuNy0yMC45LTguNy0zNS4xLTguNC00Ni41LTguNGwxOC4yLTE2Yy0yNS4zIDguMi0zMyAxMC44LTU0LjggMjAuOS0xLjEtNS40LTUtMTMuNS0xNi0xOS45LTMuMiAzLjgtMi44LjktLjcgMTQuOGgtMi41YTYyLjMyIDYyLjMyIDAgMCAwLTguNC0yMy4xbDQuMi0zLjRjOC40LTcuMSAxMS44LTE0LjMgMTAuNi0yMS45LS41LTYuNC01LjQtMTMuNS0xMy41LTIwLjcgNS42LTMuNCAxNS4yLS40IDI4LjMgOC41em0tMzkuNi0xMC4xYzIuNyAxLjkgMTEuNCA1LjQgMTguOSAxNy4yIDQuMiA4LjQgNCA5LjggMy40IDExLjEtLjUgMi40LS41IDQuMy0zIDcuMS0xLjcgMi41LTUuNCA0LjctMTEuOCA3LjYtNy42LTEzLTE2LjUtMjMuNi0yNy44LTMxLjJ6TTkxIDE0My4xbDEuMi0xLjdjMS4yLTIuOSA0LjItNy42IDkuMy0xNS4ybDIuNS0zLjQtMTMgMTIuMyA1LjQtNC43LTEwLjEgOS4zLTQuMiAxLjJjMTIuMy0yNC4xIDIzLjEtNDEuMyAzMi41LTUwLjIgOS4zLTkuMyAxNi0xNiAyMC4yLTE5LjRsLTYuNCAxLjJjLTExLjMtNC4yLTE5LjQtNy4xLTI0LjgtOC40IDIuNS0uNSAzLjctLjUgMy4yLS41IDEwLjMgMCAxNy41LjUgMjAuOSAxLjJhNTIuMzUgNTIuMzUgMCAwIDAgMTYgMi41bC41LTEuNy04LjQtMzUuOCAxMy41IDI5YTQyLjg5IDQyLjg5IDAgMCAwIDUuOS0xNC4zYzEuNy02LjQgNS40LTEzIDEwLjEtMTkuNHM3LjYtMTAuNiA5LjMtMTEuM2EyMzQuNjggMjM0LjY4IDAgMCAwLTYuNCAyNS4zbC0xLjcgNy4xLS41IDQuNyAyLjUgMi41QzE5MC40IDM5LjkgMjE0IDM0IDIzOS44IDM0LjVsMjEuMS41Yy0xMS44IDEzLjUtMjcuOCAyMS45LTQ4LjUgMjQuOGEyMDEuMjYgMjAxLjI2IDAgMCAxLTIzLjQgMi45bC0uMi0uNS0yLjUtMS4yYTIwLjc1IDIwLjc1IDAgMCAwLTE0IDJjLTIuNS0uMi00LjktLjUtNy4xLS43bC0yLjUgMS43LjUgMS4yYzIgLjIgMy45LjUgNi4yLjdsLTIgMy40IDMuNC0uNS0xMC42IDExLjNjLTQuMiAzLTUuNCA2LjQtNC4yIDkuM2w1LjQtMy40aDEuMmEzOS40IDM5LjQgMCAwIDEgMjUuMy0xNS4ydi0zYzYuNC41IDEzIDEgMTkuNCAxLjIgNi40IDAgOC40LjUgNS40IDEuMmExODkuNiAxODkuNiAwIDAgMSAyMC43IDEzLjVjMTMuNSAxMC4xIDIzLjYgMjEuOSAzMCAzNS40IDguOCAxOC4yIDEzLjUgMzcuMSAxMy41IDU2LjZhMTQxLjEzIDE0MS4xMyAwIDAgMS0zIDI4LjMgMjA5LjkxIDIwOS45MSAwIDAgMS0xNiA0NmwyLjUuNWMxOC4yLTE5LjcgNDEuOS0xNiA0OS4yLTE2bC02LjQgNS45IDIyLjQgMTcuNy0xLjcgMzAuN2MtNS40LTEyLjMtMTYuNS0yMS4xLTMzLTI3LjggMTYuNSAxNC44IDIzLjYgMjEuMSAyMS45IDIwLjItNC44LTIuOC0zLjUtMS45LTEwLjgtMy43IDQuMSA0LjEgMTcuNSAxOC44IDE4LjIgMjAuN2wuMi4yLS4yLjJjMCAxLjggMS42LTEuMi0xNCAyMi45LTc1LjItMTUuMy0xMDYuMjctNDIuNy0xNDEuMi02My4ybDExLjggMS4yYy0xMS44LTE4LjUtMTUuNi0xNy43LTM4LjQtMjYuMUwxNDkgMjI1Yy04LjgtMy0xOC4yLTMtMjguMy41bDcuNi0xMC42LTEuMi0xLjdjLTE0LjkgNC4zLTE5LjggOS4yLTIyLjYgMTEuMy0xLjEtNS41LTIuOC0xMi40LTEyLjMtMjguOGwtMS4yIDI3LTEzLjItNWMxLjUtMjUuMiA1LjQtNTAuNSAxMy4yLTc0LjZ6bTI3Ni41IDMzMGMtNDkuOSAyNS01Ni4xIDIyLjQtNTkgMjMuOS0yOS44LTExLjgtNTAuOS0zMS43LTYzLjUtNTguOGwzMCAxNi41Yy05LjgtOS4zLTE4LjMtMTYuNS0zOC40LTQ0LjNsMTEuOCAyMy4xLTE3LjctNy42YzE0LjIgMjEuMSAyMy41IDUxLjcgNjYuNiA3My41LTEyMC44IDI0LjItMTk5LTcyLjEtMjAwLjktNzQuM2EyNjIuNTcgMjYyLjU3IDAgMCAwIDM1LjQgMjQuOGMzLjQgMS43IDcuMSAyLjUgMTAuMSAxLjJsLTE2LTIwLjdjOS4yIDQuMiA5LjUgNC41IDY5LjEgMjktNDIuNS0yMC43LTczLjgtNDAuOC05My4yLTYwLjItLjUgNi40LTEuMiAxMC4xLTEuMiAxMC4xYTgwLjI1IDgwLjI1IDAgMCAxIDIwLjcgMjYuNmMtMzktMTguOS01Ny42LTQ3LjYtNzEuMy04Mi42IDQ5LjkgNTUuMSAxMTguOSAzNy41IDEyMC41IDM3LjEgMzQuOCAxNi40IDY5LjkgMjMuNiAxMTMuOSAxMC42IDMuMyAwIDIwLjMgMTcgMjUuMyAzOS4xbDQuMi0zLTIuNS0yMy42YzkgOSAyNC45IDIyLjYgMzQuNCAxMy0xNS42LTUuMy0yMy41LTkuNS0yOS41LTMxLjcgNC42IDQuMiA3LjYgOSAyNy44IDE1bDEuMi0xLjItMTAuNS0xNC4yYzExLjctNC44LTMuNSAxIDMyLTEwLjggNC4zIDM0LjMgOSA0OS4yLjcgODkuNXptMTE1LjMtMjE0LjRsLTIuNS41IDMgOS4zYy0zLjUgNS45LTIzLjcgNDQuMy03MS42IDc5LjctMzkuNSAyOS44LTc2LjYgMzkuMS04MC45IDQwLjNsLTcuNi03LjEtMS4yIDMgMTQuMyAxNi03LjEtNC43IDMuNCA0LjJoLTEuMmwtMjEuOS0xMy41IDkuMyAyNi42LTE5LTI3LjktMS4yIDIuNSA3LjYgMjljLTYuMS04LjItMjEtMzIuNi01Ni44LTM5LjZsMzIuNSAyMS4yYTIxNC44MiAyMTQuODIgMCAwIDEtOTMuMi02LjRjLTQuMi0xLjItOC45LTIuNS0xMy41LTQuMmwxLjItMy00NC44LTIyLjQgMjYuMSAyMi40Yy01Ny43IDkuMS0xMTMtMjUuNC0xMjYuNC04My40bC0yLjUtMTYuNC0yMi4yNyAyMi4zYzE5LjUtNTcuNSAyNS42LTU3LjkgNTEuNC03MC4xLTkuMS01LjMtMS42LTMuMy0zOC40LTkuMyAxNS44LTUuOCAzMy0xNS40IDczIDUuMmExOC41IDE4LjUgMCAwIDEgMy43LTEuN2MuNi0zLjIuNC0uOCAxLTExLjggMy45IDEwIDMuNiA4LjcgMyA5LjNsMS43LjVjMTIuNy02LjUgOC45LTQuNSAxNy04LjlsLTUuNCAxMy41IDIyLjMtNS44LTguNCA4LjQgMi41IDIuNWM0LjUtMS44IDMwLjMgMy40IDQwLjggMTZsLTIzLjYtMi41YzM5LjQgMjMgNTEuNSA1NCA1NS44IDY5LjZsMS43LTEuMmMtMi44LTIyLjMtMTIuNC0zMy45LTE2LTQwLjEgNC4yIDUgMzkuMiAzNC42IDExMC40IDQ2LTExLjMtLjUtMjMuMSA1LjQtMzQuOSAxOC45bDQ2LjctMjAuMi05LjMgMjEuOWM3LjYtMTAuMSAxNC44LTIzLjYgMjEuMi0zOS42di0uNWwxLjItMy0xLjIgMTZjMTMuNS00MS44IDI1LjMtNzguNSAzNS40LTEwOS43bDEzLjUtMjcuOHYtMmwtNS40LTQuMmgxMC4xbDUuOSA0LjIgMi41LTEuMi0zLjQtMTYgMTIuMyAxOC45IDQxLjgtMjAuMi0xNC44IDEzIC41IDIuOSAxNy43LS41YTE4NCAxODQgMCAwIDEgMzMgNC4ybC0yMy42IDIuNS0xLjIgMyAyNi42IDIzLjFhMjU0LjIxIDI1NC4yMSAwIDAgMSAyNyAzMmMtMTEuMi0zLjMtMTAuMy0zLjQtMjEuMi0zLjRsMTIuMyAzMi41em0tNi4xLTcxLjNsLTMuOSAxMy0xNC4zLTExLjh6bS0yNTQuOCA3LjFjMS43IDEwLjYgNC43IDE3LjcgOC44IDIxLjktOS4zIDYuNi0yNy41IDEzLjktNDYuNSAxNmwuNSAxLjJhNTAuMjIgNTAuMjIgMCAwIDAgMjQuOC0yLjVsLTcuMSAxM2M0LjItMS43IDEwLjEtNy4xIDE3LjctMTQuOCAxMS45LTUuNSAxMi43LTUuMSAyMC4yLTE2LTEyLjctNi40LTE1LjctMTMuNy0xOC40LTE4Ljh6bTMuNy0xMDIuM2MtNi40LTMuNC0xMC42IDMtMTIuMyAxOC45czIuNSAyOS41IDExLjggMzkuNiAxOC4yIDEwLjYgMjYuMSAzIDMuNC0yMy42LTExLjMtNDcuN2EzOS41NyAzOS41NyAwIDAgMC0xNC4yNy0xMy44em0tNC43IDQ2LjNjNS40IDIuMiAxMC41IDEuOSAxMi4zLTEwLjZ2LTQuN2wtMS4yLjVjLTQuMy0zLjEtMi41LTQuNS0xLjctNi4ybC41LS41Yy0uOS0xLjItNS04LjEtMTIuNSA0LjctLjUtMTMuNS41LTIxLjkgMy0yNC44IDEuMi0yLjUgNC43LTEuMiAxMS4zIDQuMiA2LjQgNS40IDExLjMgMTYgMTUuMiAzMi41IDYuNSAyOC0xOS44IDI2LjItMjYuOSA0Ljl6bS00NS01LjVjMS42LjMgOS4zLTEuMSA5LjMtMTQuOGgtLjVjLTUuNC0xLjEtMi4yLTUuNS0uNy01LjktMS43LTMtMy40LTQuMi01LjQtNC43LTguMSAwLTExLjYgMTIuNy04LjEgMjEuMmE3LjUxIDcuNTEgMCAwIDAgNS40MyA0LjJ6TTIxNiA4Mi45bC0yLjUuNS41IDNhNDguOTQgNDguOTQgMCAwIDEgMjYuMSA1LjljLTIuNS01LjUtMTAtMTQuMy0yOC4zLTE0LjNsLjUgMi41em0tNzEuOCA0OS40YzIxLjcgMTYuOCAxNi41IDIxLjQgNDYuNSAyMy42bC0yLjktNC43YTQyLjY3IDQyLjY3IDAgMCAwIDE0LjgtMjguM2MxLjctMTYtMS4yLTI5LjUtOC44LTQxLjNsMTMtNy42YTIuMjYgMi4yNiAwIDAgMC0uNS0xLjcgMTQuMjEgMTQuMjEgMCAwIDAtMTMuNSAxLjdjLTEyLjcgNi43LTI4IDIwLjktMjkgMjIuNC0xLjcgMS43LTMuNCA1LjktNS40IDEzLjVhOTkuNjEgOTkuNjEgMCAwIDAtMi45IDIzLjZjLTQuNy04LTEwLjUtNi40LTE5LjktNS45bDcuMSA3LjZjLTE2LjUgMC0yMy4zIDE1LjQtMjMuNiAxNiA2LjggMCA0LjYtNy42IDMwLTEyLjMtNC4zLTYuMy0zLjMtNS00LjktNi42em0xOC43LTE4LjdjMS4yLTcuNiAzLjQtMTMgNi40LTE3LjIgNS40LTYuNCAxMC42LTEwLjEgMTYtMTEuOCA0LjItMS43IDcuMSAxLjIgMTAuMSA5LjNhNzIuMTQgNzIuMTQgMCAwIDEgMyAyNS4zYy0uNSA5LjMtMy40IDE3LjItOC40IDIzLjEtMi45IDMuNC01LjQgNS45LTYuNCA3LjZhMzkuMjEgMzkuMjEgMCAwIDEtMTEuMy0uNWwtNy4xLTMuNC01LjQtNi40Yy44LTEwIDEuMy0xOC44IDMuMS0yNnptNDIgNTYuMWMtMzQuOCAxNC40LTM0LjcgMTQtMzYuMSAxNC4zLTIwLjggNC43LTE5LTI0LjQtMTguOS0yNC44bDUuOS0xLjItLjUtMi41Yy0yMC4yLTIuNi0zMSA0LjItMzIuNSA0LjkuNS41IDMgMy40IDUuOSA5LjMgNC4yLTYuNCA4LjgtMTAuMSAxNS4yLTEwLjZhODMuNDcgODMuNDcgMCAwIDAgMS43IDMzLjdjLjEuNSAyLjYgMTcuNCAyNy41IDI0LjEgMTEuMyAzIDI3IDEuMiA0OC45LTUuNGwtOS4yLjVjLTQuMi0xNC44LTYuNC0yNC44LTUuOS0yOS41IDExLjMtOC44IDIxLjktMTEuMyAzMC43LTcuNmgyLjVsLTExLjgtNy42LTcuMS41Yy01LjkgMS4yLTEyLjMgNC4yLTE5LjQgOC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVtZWNvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMi45IDguNDNjOS45LTUuNzMgMjYtNS44MiAzNS45NS0uMjFMNDMwIDExNS44NWMxMCA1LjYgMTggMTkuNDQgMTggMzAuODZWMzY0YzAgMTEuNDQtOC4wNiAyNS4yOS0xOCAzMUwyMzguODEgNTAzLjc0Yy05LjkzIDUuNjYtMjYgNS41Ny0zNS44NS0uMjFMMTcuODYgMzk1LjEyQzggMzg5LjM0IDAgMzc1LjM4IDAgMzY0VjE0Ni43MWMwLTExLjQ0IDgtMjUuMzYgMTcuOTEtMzEuMDh6bS03Ny40IDE5OS44M2MtMTUuOTQgMC0zMS44OS4xNC00Ny44My4xNHYxMDEuNDVIOTYuOFYyODBoMjguN2M0OS43MSAwIDQ5LjU2LTcxLjc0IDAtNzEuNzR6bTE0MC4xNCAxMDAuMjlsLTMwLjczLTM0LjY0YzM3LTcuNTEgMzQuOC02NS4yMy0xMC44Ny02NS41MS0xNi4wOSAwLTMyLjE3LS4xNC00OC4yNi0uMTR2MTAxLjU5aDE5LjEzdi0zMy45MWgxOC40MWwyOS41NiAzMy45MWgyMi43NnptLTQxLjU5LTgyLjMyYzIzLjM0IDAgMjMuMjYgMzIuNDYgMCAzMi40NmgtMjkuMTN2LTMyLjQ2em0tOTUuNTYtMS42YzIxLjE4IDAgMjEuMTEgMzguODUgMCAzOC44NUg5Ni4xOHYtMzguODR6bTE5Mi42NS0xOC4yNWMtNjguNDYgMC03MSAxMDUuOCAwIDEwNS44IDY5LjQ4LS4wMSA2OS40MS0xMDUuOCAwLTEwNS44em0wIDE3LjM5YzQ0LjEyIDAgNDQuOCA3MC44NiAwIDcwLjg2cy00NC40My03MC44NiAwLTcwLjg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVtZWlzbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDg4LjI4NmMwLTEwIDYuMjg2LTIxLjcxNCAxNy43MTUtMjEuNzE0IDExLjE0MiAwIDE3LjcxNCAxMS43MTQgMTcuNzE0IDIxLjcxNCAwIDEwLjI4NS02LjU3MiAyMS43MTQtMTcuNzE0IDIxLjcxNEMyMTQuMjg2IDExMCAyMDggOTguNTcxIDIwOCA4OC4yODZ6bTMwNCAxNjBjMCAzNi4wMDEtMTEuNDI5IDEwMi4yODYtMzYuMjg2IDEyOS43MTQtMjIuODU4IDI0Ljg1OC04Ny40MjggNjEuMTQzLTEyMC44NTcgNzAuNTcybC0xLjE0My4yODZ2MzIuNTcxYzAgMTYuMjg2LTEyLjU3MiAzMC41NzEtMjkuMTQzIDMwLjU3MS0xMCAwLTE5LjQyOS01LjcxNC0yNC41NzItMTQuMjg2LTUuNDI3IDguNTcyLTE0Ljg1NiAxNC4yODYtMjQuODU2IDE0LjI4Ni0xMCAwLTE5LjQyOS01LjcxNC0yNC44NTgtMTQuMjg2LTUuMTQyIDguNTcyLTE0LjU3MSAxNC4yODYtMjQuNTcgMTQuMjg2LTEwLjI4NiAwLTE5LjQyOS01LjcxNC0yNC44NTgtMTQuMjg2LTUuMTQzIDguNTcyLTE0LjU3MSAxNC4yODYtMjQuNTcxIDE0LjI4Ni0xOC44NTcgMC0yOS40MjktMTUuNzE0LTI5LjQyOS0zMi44NTctMTYuMjg2IDEyLjI4NS0zNS43MTUgMTkuNDI4LTU2LjU3MSAxOS40MjgtMjIgMC00My40MjktOC4yODUtNjAuMjg2LTIyLjg1NyAxMC4yODUtLjI4NiAyMC41NzEtMi4yODYgMzAuMjg1LTUuNzE0LTIwLjg1Ny01LjcxNC0zOS40MjgtMTguODU3LTUyLTM2LjI4NiAyMS4zNyA0LjY0NSA0Ni4yMDkgMS42NzMgNjcuMTQzLTExLjE0My0yMi0yMi01Ni41NzEtNTguODU3LTY4LjU3Mi04Ny40MjhDMS4xNDMgMzIxLjcxNCAwIDMwMy43MTQgMCAyODkuNDI5YzAtNDkuNzE0IDIwLjI4Ni0xNjAgODYuMjg2LTE2MCAxMC41NzEgMCAxOC44NTcgNC44NTggMjMuMTQzIDE0Ljg1N2ExNTguNzkyIDE1OC43OTIgMCAwIDEgMTItMTUuNDI4YzItMi41NzIgNS43MTQtNS40MjkgNy4xNDMtOC4yODYgNy45OTktMTIuNTcxIDExLjcxNC0yMS4xNDIgMjEuNzE0LTM0QzE4Mi41NzEgNDUuNDI4IDIzMiAxNy4xNDMgMjg1LjE0MyAxNy4xNDNjNiAwIDEyIC4yODUgMTcuNzE0IDEuMTQzQzMxMy43MTQgNi41NzEgMzI4Ljg1NyAwIDM0NC41NzIgMGMxNC41NzEgMCAyOS43MTQgNiA0MCAxNi4yODYuODU3Ljg1OCAxLjQyOCAyLjI4NiAxLjQyOCAzLjQyOCAwIDMuNzE0LTEwLjI4NSAxMy40MjktMTIuODU3IDE2LjI4NiA0LjI4NiAxLjQyOSAxNS43MTQgNi44NTggMTUuNzE0IDEyIDAgMi44NTctMi44NTcgNS4xNDMtNC41NzEgNy4xNDMgMzEuNDI5IDI3LjcxNCA0OS40MjkgNjcuMTQzIDU2LjI4NiAxMDggNC4yODYtNS4xNDMgMTAuMjg1LTguNTcyIDE3LjE0My04LjU3MiAxMC41NzEgMCAyMC44NTcgNy4xNDQgMjguNTcxIDE0LjAwMUM1MDcuMTQzIDE4Ny4xNDMgNTEyIDIyMS43MTQgNTEyIDI0OC4yODZ6TTE4OCA4OS40MjhjMCAxOC4yODYgMTIuNTcxIDM3LjE0MyAzMi4yODYgMzcuMTQzIDE5LjcxNCAwIDMyLjI4NS0xOC44NTcgMzIuMjg1LTM3LjE0MyAwLTE4LTEyLjU3MS0zNi44NTctMzIuMjg1LTM2Ljg1Ny0xOS43MTUgMC0zMi4yODYgMTguODU4LTMyLjI4NiAzNi44NTd6TTIzNy43MTQgMTk0YzAtMTkuNzE0IDMuNzE0LTM5LjE0MyA4LjU3MS01OC4yODYtNTIuMDM5IDc5LjUzNC0xMy41MzEgMTg0LjU3MSA2OC44NTggMTg0LjU3MSAyMS40MjggMCA0Mi41NzEtNy43MTQgNjAtMjAgMi03LjQyOSAzLjcxNC0xNC44NTcgMy43MTQtMjIuNTcyIDAtMTQuMjg2LTYuMjg2LTIxLjQyOC0yMC41NzItMjEuNDI4LTQuNTcxIDAtOS4xNDMuODU3LTEzLjQyOSAxLjcxNC02My4zNDMgMTIuNjY4LTEwNy4xNDIgMy42NjktMTA3LjE0Mi02My45OTl6bS00MS4xNDIgMjU0Ljg1OGMwLTExLjE0My04Ljg1OC0yMC44NTctMjAuMjg2LTIwLjg1Ny0xMS40MjkgMC0yMCA5LjcxNS0yMCAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguNTcxIDIxLjE0MiAyMCAyMS4xNDIgMTEuNDI4IDAgMjAuMjg2LTkuNzE1IDIwLjI4Ni0yMS4xNDJ2LTMyLjU3MXptNDkuMTQzIDBjMC0xMS4xNDMtOC41NzItMjAuODU3LTIwLTIwLjg1Ny0xMS40MjkgMC0yMC4yODYgOS43MTUtMjAuMjg2IDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC44NTcgMjEuMTQyIDIwLjI4NiAyMS4xNDIgMTEuNDI4IDAgMjAtMTAgMjAtMjEuMTQydi0zMi41NzF6bTQ5LjcxMyAwYzAtMTEuMTQzLTguODU3LTIwLjg1Ny0yMC4yODUtMjAuODU3LTExLjQyOSAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1NyAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjggMCAyMC4yODUtOS43MTUgMjAuMjg1LTIxLjE0MnYtMzIuNTcxem00OS43MTUgMGMwLTExLjE0My04Ljg1Ny0yMC44NTctMjAuMjg2LTIwLjg1Ny0xMS40MjggMC0yMC4yODYgOS43MTUtMjAuMjg2IDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC44NTggMjEuMTQyIDIwLjI4NiAyMS4xNDIgMTEuNDI5IDAgMjAuMjg2LTEwIDIwLjI4Ni0yMS4xNDJ2LTMyLjU3MXpNNDIxLjcxNCAyODZjLTMwLjg1NyA1OS4xNDItOTAuMjg1IDEwMi41NzItMTU4LjU3MSAxMDIuNTcyLTk2LjU3MSAwLTE2MC41NzEtODQuNTcyLTE2MC41NzEtMTc2LjU3MiAwLTE2Ljg1NyAyLTMzLjQyOSA2LTQ5LjcxNC0yMCAzMy43MTUtMjkuNzE0IDcyLjU3Mi0yOS43MTQgMTExLjQyOSAwIDYwLjI4NiAyNC44NTcgMTIxLjcxNSA3MS40MjkgMTYwLjg1NyA1LjE0My05LjcxNCAxNC44NTctMTYuMjg2IDI2LTE2LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC41NzEgMTQuMjg2IDUuNDI5LTguNTcxIDE0LjU3MS0xNC4yODYgMjQuODU4LTE0LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC41NzEgMTQuMjg2IDUuNDI5LTguNTcxIDE0Ljg1Ny0xNC4yODYgMjQuODU4LTE0LjI4NiAxMCAwIDE5LjQyOCA1LjcxNCAyNC44NTcgMTQuMjg2IDUuMTQzLTguNTcxIDE0LjU3MS0xNC4yODYgMjQuNTcyLTE0LjI4NiAxMC44NTcgMCAyMC44NTcgNi41NzIgMjUuNzE0IDE2IDQzLjQyNy0zNi4yODYgNjguNTY5LTkyIDcxLjQyNi0xNDguMjg2em0xMC41NzItOTkuNzE0YzAtNTMuNzE0LTM0LjU3MS0xMDUuNzE0LTkyLjU3Mi0xMDUuNzE0LTMwLjI4NSAwLTU4LjU3MSAxNS4xNDMtNzguODU3IDM2Ljg1N0MyNDAuODYyIDE4My44MTIgMjMzLjQxIDI1NCAzMDIuMjg2IDI1NGMyOC44MDUgMCA5Ny4zNTctMjguNTM4IDg0LjI4NiAzNi44NTcgMjguODU3LTI2IDQ1LjcxNC02NS43MTQgNDUuNzE0LTEwNC41NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoaW5rUGVha3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY1LjQgNDA5LjRsODcuMS0xNTAuMi0zMi0uMy01NS4xIDk1TDI1OS4yIDAgMjMgNDA3LjRsMzIgLjNMMjU5LjIgNTUuNnptLTM1NS4zLTQ0LjFoMzIuMWwxMTcuNC0yMDIuNUw0NjMgNTExLjlsMzIuNS4xLTIzNS44LTQwNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaHJlYWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMS41IDIzNS43YzIuMiAuOSA0LjIgMS45IDYuMyAyLjhjMjkuMiAxNC4xIDUwLjYgMzUuMiA2MS44IDYxLjRjMTUuNyAzNi41IDE3LjIgOTUuOC0zMC4zIDE0My4yYy0zNi4yIDM2LjItODAuMyA1Mi41LTE0Mi42IDUzaC0uM2MtNzAuMi0uNS0xMjQuMS0yNC4xLTE2MC40LTcwLjJjLTMyLjMtNDEtNDguOS05OC4xLTQ5LjUtMTY5LjZWMjU2di0uMkMxNyAxODQuMyAzMy42IDEyNy4yIDY1LjkgODYuMkMxMDIuMiA0MC4xIDE1Ni4yIDE2LjUgMjI2LjQgMTZoLjNjNzAuMyAuNSAxMjQuOSAyNCAxNjIuMyA2OS45YzE4LjQgMjIuNyAzMiA1MCA0MC42IDgxLjdsLTQwLjQgMTAuOGMtNy4xLTI1LjgtMTcuOC00Ny44LTMyLjItNjUuNGMtMjkuMi0zNS44LTczLTU0LjItMTMwLjUtNTQuNmMtNTcgLjUtMTAwLjEgMTguOC0xMjguMiA1NC40QzcyLjEgMTQ2LjEgNTguNSAxOTQuMyA1OCAyNTZjLjUgNjEuNyAxNC4xIDEwOS45IDQwLjMgMTQzLjNjMjggMzUuNiA3MS4yIDUzLjkgMTI4LjIgNTQuNGM1MS40LS40IDg1LjQtMTIuNiAxMTMuNy00MC45YzMyLjMtMzIuMiAzMS43LTcxLjggMjEuNC05NS45Yy02LjEtMTQuMi0xNy4xLTI2LTMxLjktMzQuOWMtMy43IDI2LjktMTEuOCA0OC4zLTI0LjcgNjQuOGMtMTcuMSAyMS44LTQxLjQgMzMuNi03Mi43IDM1LjNjLTIzLjYgMS4zLTQ2LjMtNC40LTYzLjktMTZjLTIwLjgtMTMuOC0zMy0zNC44LTM0LjMtNTkuM2MtMi41LTQ4LjMgMzUuNy04MyA5NS4yLTg2LjRjMjEuMS0xLjIgNDAuOS0uMyA1OS4yIDIuOGMtMi40LTE0LjgtNy4zLTI2LjYtMTQuNi0zNS4yYy0xMC0xMS43LTI1LjYtMTcuNy00Ni4yLTE3LjhIMjI3Yy0xNi42IDAtMzkgNC42LTUzLjMgMjYuM2wtMzQuNC0yMy42YzE5LjItMjkuMSA1MC4zLTQ1LjEgODcuOC00NS4xaC44YzYyLjYgLjQgOTkuOSAzOS41IDEwMy43IDEwNy43bC0uMiAuMnptLTE1NiA2OC44YzEuMyAyNS4xIDI4LjQgMzYuOCA1NC42IDM1LjNjMjUuNi0xLjQgNTQuNi0xMS40IDU5LjUtNzMuMmMtMTMuMi0yLjktMjcuOC00LjQtNDMuNC00LjRjLTQuOCAwLTkuNiAuMS0xNC40IC40Yy00Mi45IDIuNC01Ny4yIDIzLjItNTYuMiA0MS44bC0uMSAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlrdG9rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCwyMDkuOTFhMjEwLjA2LDIxMC4wNiwwLDAsMS0xMjIuNzctMzkuMjVWMzQ5LjM4QTE2Mi41NSwxNjIuNTUsMCwxLDEsMTg1LDE4OC4zMVYyNzguMmE3NC42Miw3NC42MiwwLDEsMCw1Mi4yMyw3MS4xOFYwbDg4LDBhMTIxLjE4LDEyMS4xOCwwLDAsMCwxLjg2LDIyLjE3aDBBMTIyLjE4LDEyMi4xOCwwLDAsMCwzODEsMTAyLjM5YTEyMS40MywxMjEuNDMsMCwwLDAsNjcsMjAuMTRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYWRlRmVkZXJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOC44Yy0xMzcgMC0yNDggMTExLTI0OCAyNDhzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OC0xMTEtMjQ4LTI0OC0yNDh6bTAgNDgyLjhjLTEyOS43IDAtMjM0LjgtMTA1LjEtMjM0LjgtMjM0LjhTMTE4LjMgMjIgMjQ4IDIyczIzNC44IDEwNS4xIDIzNC44IDIzNC44UzM3Ny43IDQ5MS42IDI0OCA0OTEuNnptMTU1LjEtMzI4LjV2LTQ2LjhIMjA5LjNWMTk4SDU0LjJsMzYuNyA0NmgxMTcuN3YxOTYuOGg0OC44VjI0NWg4My4zdi00N2gtODMuM3YtMzQuOGgxNDUuN3ptLTczLjMgNDUuMXYyMy45aC04Mi45djE5Ny40aC0yNi44VjIzMi4xSDk2LjNsLTIwLjEtMjMuOWgxNDMuOXYtODAuNmgxNzEuOFYxNTJoLTE0NXY1Ni4yem0tMTYxLjMtNjlsLTEyLjQtMjAuNyAyLjEgMjMuOC0yMy41IDUuNCAyMy4zIDUuNC0yLjEgMjQgMTIuMy0yMC41IDIyLjIgOS41LTE1LjctMTguMSAxNS44LTE4LjF6bS0yOS42LTE5LjdsOS4zLTExLjUtMTIuNyA1LjktOC0xMi40IDEuNyAxMy45LTE0LjMgMy44IDEzLjcgMi43LS44IDE0LjcgNi44LTEyLjIgMTMuOCA1LjN6bTE2NS40IDE0NS4ybC0xMy4xIDUuNi03LjMtMTIuMiAxLjMgMTQuMi0xMy45IDMuMiAxMy45IDMuMi0xLjIgMTQuMiA3LjMtMTIuMiAxMy4xIDUuNS05LjQtMTAuN3ptMTA2LjktNzcuMmwtMjAuOSA5LjEtMTItMTkuNiAyLjIgMjIuNy0yMi4zIDUuNCAyMi4yIDQuOS0xLjggMjIuOSAxMS41LTE5LjYgMjEuMiA4LjgtMTUuMS0xN3pNMjQ4IDI5LjljLTEyNS4zIDAtMjI2LjkgMTAxLjYtMjI2LjkgMjI2LjlTMTIyLjcgNDgzLjcgMjQ4IDQ4My43czIyNi45LTEwMS42IDIyNi45LTIyNi45UzM3My4zIDI5LjkgMjQ4IDI5Ljl6TTM0Mi42IDE5NnY1MWgtODMuM3YxOTUuN2gtNTIuN1YyNDUuOUg4OS45bC00MC00OS45aDE1Ny40di04MS42aDE5Ny44djUwLjdIMjU5LjRWMTk2ek0yNDggNDMuMmM2MC4zIDAgMTE0LjggMjUgMTUzLjYgNjUuMkgyMDIuNVYxOTBINDUuMUM3My4xIDEwNC44IDE1My40IDQzLjIgMjQ4IDQzLjJ6bTAgNDI3LjFjLTExNy45IDAtMjEzLjYtOTUuNi0yMTMuNi0yMTMuNSAwLTIxLjIgMy4xLTQxLjggOC45LTYxLjFMODcuMSAyNTJoMTE0Ljd2MTk2LjhoNjQuNlYyNTNoODMuM3YtNjIuN2gtODMuMnYtMTkuMmgxNDUuNnYtNTAuOGMzMC44IDM3IDQ5LjMgODQuNiA0OS4zIDEzNi41LjEgMTE3LjktOTUuNSAyMTMuNS0yMTMuNCAyMTMuNXpNMTc4LjggMjc1bC0xMS0yMS40IDEuNyAyNC41LTIzLjcgMy45IDIzLjggNS45LTMuNyAyMy44IDEzLTIwLjkgMjEuNSAxMC44LTE1LjgtMTguOCAxNi45LTE3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyZWxsbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIuMyAzMkg1Ni4xQzI1LjEgMzIgMCA1Ny4xIDAgODhjLS4xIDAgMC00IDAgMzM2IDAgMzAuOSAyNS4xIDU2IDU2IDU2aDMzNi4yYzMwLjgtLjIgNTUuNy0yNS4yIDU1LjctNTZWODhjLjEtMzAuOC0yNC44LTU1LjgtNTUuNi01NnpNMTk3IDM3MS4zYy0uMiAxNC43LTEyLjEgMjYuNi0yNi45IDI2LjZIODcuNGMtMTQuOC4xLTI2LjktMTEuOC0yNy0yNi42VjExNy4xYzAtMTQuOCAxMi0yNi45IDI2LjktMjYuOWg4Mi45YzE0LjggMCAyNi45IDEyIDI2LjkgMjYuOXYyNTQuMnptMTkzLjEtMTEyYzAgMTQuOC0xMiAyNi45LTI2LjkgMjYuOWgtODFjLTE0LjggMC0yNi45LTEyLTI2LjktMjYuOVYxMTcuMmMwLTE0LjggMTItMjYuOSAyNi44LTI2LjloODEuMWMxNC44IDAgMjYuOSAxMiAyNi45IDI2Ljl2MTQyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR1bWJsciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDkuOCA0ODAuM2MtMTMuNiAxNC41LTUwIDMxLjctOTcuNCAzMS43LTEyMC44IDAtMTQ3LTg4LjgtMTQ3LTE0MC42di0xNDRIMTcuOWMtNS41IDAtMTAtNC41LTEwLTEwdi02OGMwLTcuMiA0LjUtMTMuNiAxMS4zLTE2IDYyLTIxLjggODEuNS03NiA4NC4zLTExNy4xLjgtMTEgNi41LTE2LjMgMTYuMS0xNi4zaDcwLjljNS41IDAgMTAgNC41IDEwIDEwdjExNS4yaDgzYzUuNSAwIDEwIDQuNCAxMCA5Ljl2ODEuN2MwIDUuNS00LjUgMTAtMTAgMTBoLTgzLjRWMzYwYzAgMzQuMiAyMy43IDUzLjYgNjggMzUuOCA0LjgtMS45IDktMy4yIDEyLjctMi4yIDMuNS45IDUuOCAzLjQgNy40IDcuOWwyMiA2NC4zYzEuOCA1IDMuMyAxMC42LS40IDE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR3aXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTEuMTcsMTAzLjQ3SDM1Mi41NHYxMDkuN2gzOC42M1pNMjg1LDEwM0gyNDYuMzdWMjEyLjc1SDI4NVpNMTIwLjgzLDAsMjQuMzEsOTEuNDJWNDIwLjU4SDE0MC4xNFY1MTJsOTYuNTMtOTEuNDJoNzcuMjVMNDg3LjY5LDI1NlYwWk00NDkuMDcsMjM3Ljc1bC03Ny4yMiw3My4xMkgyOTQuNjFsLTY3LjYsNjR2LTY0SDE0MC4xNFYzNi41OEg0NDkuMDdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR3aXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU5LjM3IDE1MS43MTZjLjMyNSA0LjU0OC4zMjUgOS4wOTcuMzI1IDEzLjY0NSAwIDEzOC43Mi0xMDUuNTgzIDI5OC41NTgtMjk4LjU1OCAyOTguNTU4LTU5LjQ1MiAwLTExNC42OC0xNy4yMTktMTYxLjEzNy00Ny4xMDYgOC40NDcuOTc0IDE2LjU2OCAxLjI5OSAyNS4zNCAxLjI5OSA0OS4wNTUgMCA5NC4yMTMtMTYuNTY4IDEzMC4yNzQtNDQuODMyLTQ2LjEzMi0uOTc1LTg0Ljc5Mi0zMS4xODgtOTguMTEyLTcyLjc3MiA2LjQ5OC45NzQgMTIuOTk1IDEuNjI0IDE5LjgxOCAxLjYyNCA5LjQyMSAwIDE4Ljg0My0xLjMgMjcuNjE0LTMuNTczLTQ4LjA4MS05Ljc0Ny04NC4xNDMtNTEuOTgtODQuMTQzLTEwMi45ODV2LTEuMjk5YzEzLjk2OSA3Ljc5NyAzMC4yMTQgMTIuNjcgNDcuNDMxIDEzLjMxOS0yOC4yNjQtMTguODQzLTQ2Ljc4MS01MS4wMDUtNDYuNzgxLTg3LjM5MSAwLTE5LjQ5MiA1LjE5Ny0zNy4zNiAxNC4yOTQtNTIuOTU0IDUxLjY1NSA2My42NzUgMTI5LjMgMTA1LjI1OCAyMTYuMzY1IDEwOS44MDctMS42MjQtNy43OTctMi41OTktMTUuOTE4LTIuNTk5LTI0LjA0IDAtNTcuODI4IDQ2Ljc4Mi0xMDQuOTM0IDEwNC45MzQtMTA0LjkzNCAzMC4yMTMgMCA1Ny41MDIgMTIuNjcgNzYuNjcgMzMuMTM3IDIzLjcxNS00LjU0OCA0Ni40NTYtMTMuMzIgNjYuNTk5LTI1LjM0LTcuNzk4IDI0LjM2Ni0yNC4zNjYgNDQuODMzLTQ2LjEzMiA1Ny44MjcgMjEuMTE3LTIuMjczIDQxLjU4NC04LjEyMiA2MC40MjYtMTYuMjQzLTE0LjI5MiAyMC43OTEtMzIuMTYxIDM5LjMwOC01Mi42MjggNTQuMjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUeXBvMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzguNyA3OC40YzAtMjQuNyA1LjQtMzIuNCAxMy45LTM5LjQtNjkuNSA4LjUtMTQ5LjMgMzQtMTc2LjMgNjYuNC01LjQgNy43LTkuMyAyMC44LTkuMyAzNy4xQzcgMjQ2IDExMy44IDQ4MCAxOTEuMSA0ODBjMzYuMyAwIDk3LjMtNTkuNSAxNDYuNy0xMzktNyAyLjMtMTEuNiAyLjMtMTguNSAyLjMtNTcuMiAwLTE0MC42LTE5OC41LTE0MC42LTI2NC45ek0zMDEuNSAzMmMtMzAuMSAwLTQxLjcgNS40LTQxLjcgMzYuMyAwIDY2LjQgNTMuOCAxOTguNSAxMDEuNyAxOTguNSAyNi4zIDAgNzguOC05OS43IDc4LjgtMTgyLjMgMC00MC45LTY3LTUyLjUtMTM4LjgtNTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVWJlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTQuMSAzMkgzMy45QzE1LjIgMzIgMCA0Ny4yIDAgNjUuOVY0NDZjMCAxOC44IDE1LjIgMzQgMzMuOSAzNEg0MTRjMTguNyAwIDMzLjktMTUuMiAzMy45LTMzLjlWNjUuOUM0NDggNDcuMiA0MzIuOCAzMiA0MTQuMSAzMnpNMjM3LjYgMzkxLjFDMTYzIDM5OC42IDk2LjQgMzQ0LjIgODguOSAyNjkuNmg5NC40VjI5MGMwIDMuNyAzIDYuOCA2LjggNi44SDI1OGMzLjcgMCA2LjgtMyA2LjgtNi44di02Ny45YzAtMy43LTMtNi44LTYuOC02LjhoLTY3LjljLTMuNyAwLTYuOCAzLTYuOCA2Ljh2MjAuNEg4OC45YzctNjkuNCA2NS40LTEyMi4yIDEzNS4xLTEyMi4yIDY5LjcgMCAxMjguMSA1Mi44IDEzNS4xIDEyMi4yIDcuNSA3NC41LTQ2LjkgMTQxLjEtMTIxLjUgMTQ4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVidW50dSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjkuMiA3NUE3NS42IDc1LjYgMCAxIDAgMzE3LjkgNzVhNzUuNiA3NS42IDAgMSAwIDE1MS4yIDB6TTE1NC4yIDI0MC43QTc1LjYgNzUuNiAwIDEgMCAzIDI0MC43YTc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek01NyAzNDZDNzUuNiAzOTIuOSAxMDggNDMzIDE1MCA0NjEuMXM5MS41IDQyLjYgMTQyIDQxLjdjLTE0LjctMTguNi0yMi45LTQxLjUtMjMuMi02NS4yYy02LjgtLjktMTMuMy0yLjEtMTkuNS0zLjRjLTI2LjgtNS43LTUxLjktMTcuMy03My42LTM0cy0zOS4zLTM4LjEtNTEuNy02Mi41Yy0yMC45IDkuOS00NC41IDEyLjgtNjcuMSA4LjJ6bTM5NS4xIDg5LjhhNzUuNiA3NS42IDAgMSAwIC0xNTEuMiAwIDc1LjYgNzUuNiAwIDEgMCAxNTEuMiAwek00NDQgMzUxLjZjMTguNSAxNC44IDMxLjYgMzUuMiAzNy4yIDU4LjJjMzMuMy00MS4zIDUyLjYtOTIuMiA1NC44LTE0NS4ycy0xMi41LTEwNS40LTQyLjItMTQ5LjRjLTguNiAyMS41LTI0IDM5LjYtNDMuOCA1MS42YzE1LjQgMjguNiAyMi45IDYwLjggMjEuOSA5My4ycy0xMC43IDY0LTI4IDkxLjZ6TTEwMS4xIDEzNS40YzEyLjQgMi43IDI0LjMgNy41IDM1LjEgMTQuM2MxNi42LTI0LjIgMzguOS00NC4xIDY0LjgtNThTMjU1LjggNzAuNCAyODUuMiA3MGMuMi01LjkgLjktMTEuOSAyLTE3LjdjMy42LTE2LjcgMTEuMS0zMi4zIDIxLjgtNDUuNWMtNDcuNy0zLjgtOTUuNCA2LTEzNy42IDI4LjVTOTQuMyA5MS43IDcwLjggMTMzLjRjMi43LS4yIDUuMy0uMyA4LS4zYzcuNSAwIDE1IC44IDIyLjQgMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVaWtpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuOSAxMjh2MjU2TDIxOCA1MTIgMCAzODRWMTY5LjdsODcuNiA0NS4xdjExN2wxMzMuNSA3NS41IDEzNS44LTc1LjV2LTE1MWwtMTAxLjEtNTcuNiA4Ny42LTUzLjFMNDQzLjkgMTI4ek0zMDguNiA0OS4xTDIyMy44IDBsLTg4LjYgNTQuOCA4NiA0Ny4zIDg3LjQtNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJhY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjM1IDhDMTE4LjM2IDcuODMgNy4xNCAxMTguNzIgNyAyNTUuNjhjLS4wNyAxMzcgMTExIDI0OC4yIDI0OCAyNDguMjcgMTM2Ljg1IDAgMjQ3LjgyLTExMC43IDI0OC0yNDcuNjdTMzkyLjM0IDguMTcgMjU1LjM1IDh6bTE0NSAyNjZxLTEuMTQgNDAuNjgtMTQgNjV0LTQzLjUxIDM1cS0zMC42MSAxMC43LTg1LjQ1IDEwLjQ3aC00LjZxLTU0Ljc4LjIyLTg1LjQ0LTEwLjQ3dC00My41Mi0zNXEtMTIuODUtMjQuMzYtMTQtNjVhMjI0LjgxIDIyNC44MSAwIDAgMSAwLTMwLjcxIDQxOC4zNyA0MTguMzcgMCAwIDEgMy42LTQzLjg4YzEuODgtMTMuMzkgMy41Ny0yMi41OCA1LjQtMzIgMS00Ljg4IDEuMjgtNi40MiAxLjgyLTguNDVhNS4wOSA1LjA5IDAgMCAxIDQuOS0zLjg5aC42OWwzMiA1YTUuMDcgNS4wNyAwIDAgMSA0LjE2IDUgNSA1IDAgMCAxIDAgLjc3bC0xLjcgOC43OHEtMi40MSAxMy4yNS00Ljg0IDMzLjY4YTM4MC42MiAzODAuNjIgMCAwIDAtMi42NCA0Mi4xNXEtLjI4IDQwLjQzIDguMTMgNTkuODNhNDMuODcgNDMuODcgMCAwIDAgMzEuMzEgMjUuMThBMjQzIDI0MyAwIDAgMCAyNTAgMzQwLjZoMTAuMjVhMjQyLjY0IDI0Mi42NCAwIDAgMCA1Ny4yNy01LjE2IDQzLjg2IDQzLjg2IDAgMCAwIDMxLjE1LTI1LjIzcTguNTMtMTkuNDIgOC4xMy01OS43OGEzODggMzg4IDAgMCAwLTIuNi00Mi4xNXEtMi40OC0yMC4zOC00Ljg5LTMzLjY4bC0xLjY5LTguNzhhNSA1IDAgMCAxIDAtLjc3IDUgNSAwIDAgMSA0LjItNWwzMi01aC44MmE1IDUgMCAwIDEgNC45IDMuODljLjU1IDIuMDUuODEgMy41NyAxLjgzIDguNDUgMS44MiA5LjYyIDMuNTIgMTguNzggNS4zOSAzMmE0MTUuNzEgNDE1LjcxIDAgMCAxIDMuNjEgNDMuODggMjI4LjA2IDIyOC4wNiAwIDAgMS0uMDQgMzAuNzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuY2hhcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzEuNzMsMjMyLjgxM0E1LjM4MSw1LjM4MSwwLDAsMCwxNzYuNywyMjkuNSw0OC4wODEsNDguMDgxLDAsMCwxLDE5MS42LDIwNC4yNDRjMS4yNDMtLjgyOCwxLjY1Ny0yLjQ4NCwxLjY1Ny00LjE0MWE0LjIyLDQuMjIsMCwwLDAtMi4wNzEtMy4zMTJMNzQuNDI5LDEyOC40NzMsMTQ4Ljk1OCw4NWE5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MSw5LjEwOCw5LjEwOCwwLDAsMC00Ljk2OC04LjI4MUwxMjYuNiw1NS42YTkuNzQ4LDkuNzQ4LDAsMCwwLTkuNTIzLDBsLTEwMC4yLDU3Ljk2NmE5Ljk0Myw5Ljk0MywwLDAsMC00Ljk2OSw4LjI4MVYyMzYuOTU0YTkuMTA5LDkuMTA5LDAsMCwwLDQuOTY5LDguMjgxTDM5LjIzNSwyNTguMDdhOC44MjksOC44MjksMCwwLDAsNC45NjgsMS4yNDIsOS40LDkuNCwwLDAsMCw2LjYyNS0yLjQ4NCwxMC44LDEwLjgsMCwwLDAsMi45LTcuMDM5VjE2NC41TDE2OS42NiwyMzIuNEE0LjUsNC41LDAsMCwwLDE3MS43MywyMzIuODEzWk0zMjMuMjcyLDM3Ny43M2ExMi40NzgsMTIuNDc4LDAsMCwwLTQuOTY5LDEuMjQybC03NC41MjgsNDMuMDYyVjI4Ny44ODJjMC0yLjktMi45LTUuOC02LjIxMS00LjU1NWE1My4wMzYsNTMuMDM2LDAsMCwxLTI4Ljk4NC40MTQsNC44Niw0Ljg2LDAsMCwwLTYuMjEsNC41NTVWNDIxLjYxOWwtNzQuNTI5LTQzLjA2MWE4LjgzLDguODMsMCwwLDAtNC45NjktMS4yNDIsOS42MzEsOS42MzEsMCwwLDAtOS41MjMsOS41MjN2MjYuMDg1YTkuMTA3LDkuMTA3LDAsMCwwLDQuOTY5LDguMjgxbDEwMC4yLDU3LjU1M0E4LjgyOSw4LjgyOSwwLDAsMCwyMjMuNDg2LDQ4MGExMS4wMjcsMTEuMDI3LDAsMCwwLDQuOTY5LTEuMjQybDEwMC4yLTU3LjU1M2E5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MVYzODYuODM5QzMzMi44LDM4Mi4yODUsMzI4LjI0LDM3Ny43MywzMjMuMjcyLDM3Ny43M1pNMjg2LjAwNyw3OGEyMywyMywwLDEsMC0yMy0yM0EyMywyMywwLDAsMCwyODYuMDA3LDc4Wm02My42MjctMTAuMDg2YTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsNjcuOTE0Wk00MTIuODE2LDE1MS42YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMTUxLjZabS02My4xODItOS4yYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsMTQyLjRabS02My42MjcsODMuMjQ0YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDI4Ni4wMDcsMjI1LjY0OFptLTYyLjA3NCwzNi4zNThhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsMjIzLjkzMywyNjIuMDA2Wm0xODguODgzLTgyLjM1OGEyMywyMywwLDEsMCwyMywyM0EyMywyMywwLDAsMCw0MTIuODE2LDE3OS42NDhabTAsNzIuMjcyYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMjUxLjkyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmlyZWdpc3RyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDgwYzM5LjUgMCA3Ni4yLTExLjggMTA2LjgtMzIuMkg4NS4zQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwem0tODkuMS0xOTMuMXYtMTIuNEgwdjEyLjRjMCAyLjUgMCA1IC4xIDcuNGgxMDMuMWMtLjItMi40LS4zLTQuOS0uMy03LjR6bTIwLjUgNTdIOC41YzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhoMTM4LjNjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43SDEuM2MuOSA3LjYgMi4yIDE1IDMuOSAyMi4zaDEwOS43Yy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zSDB2MTcuM2gxMDIuOXptMC0xNzMuMkgwdjQuOWgxMDIuOXptMC0zNC43SDB2Mi41aDEwMi45em0wIDY5LjNIMHY3LjRoMTAyLjl6bTAgMTA0SDB2MTQuOGgxMDIuOXptMC02OS4zSDB2OS45aDEwMi45em0wIDM0LjZIMFYxODNoMTAyLjl6bTE2Ni4yIDE2MC45aDEwOS43YzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNIMjc4LjNjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43SDM4NFYxMzZIMjgxLjF6bTAgMzcuMkgzODR2LTEyLjRIMjgxLjF6bTAtNzQuM0gzODR2LTcuNEgyODEuMXptMC03Ni43djIuNUgzODRWMzJ6bS0yMDMgNDEwLjloMjI3LjdjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN0g0NC45YzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zSDM4NHYtNC45SDI4MS4xem0wIDE0OC41SDM4NHYtMTQuOEgyODEuMXpNMzguOCA0MDUuN2gzMDUuM2M2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJIMjNjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFIMzY3YzMuNy04IDUuOC0xNi4yIDguNS0yNC44aC0xMTVjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGgxMDMuMWMuMS0yLjUuMi00LjkuMi03LjR2LTEyLjRIMjgxLjF6bTAtMjkuN0gzODR2LTE3LjNIMjgxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0My41ODMgOTEuNjAyN0wzMjMuNjk1IDEzOC4zODRDMzI2LjU3NSAxNDAuMDI2IDMyNi42OCAxNDQuNTgzIDMyMy42OTUgMTQ2LjIyNUwyMjguNTAzIDIwMS44NTRDMjI1LjYyMyAyMDMuNTUgMjIyLjIyIDIwMy40NDQgMjE5LjU0OSAyMDEuODU0TDEyNC4zNTcgMTQ2LjIyNUMxMjEuNDI1IDE0NC42MzYgMTIxLjM3MyAxMzkuOTczIDEyNC4zNTcgMTM4LjM4NEwyMDQuNDE3IDkxLjYwMjdWMEwwIDExOS40MTdWMzU4LjI1Mkw3OC4zODQzIDMxMi40NzdWMjE4LjkxNEM3OC4zMzE5IDIxNS41NzYgODIuMjA2NiAyMTMuMTkyIDg1LjA4NjUgMjE0Ljk5M0wxODAuMjc5IDI3MC42MjJDMTgzLjE1OSAyNzIuMzE4IDE4NC43ODIgMjc1LjMzOCAxODQuNzgyIDI3OC40NjRWMzg5LjY2OUMxODQuODM0IDM5My4wMDcgMTgwLjk1OSAzOTUuMzkxIDE3OC4wNzkgMzkzLjU4OUw5Ny45NjczIDM0Ni44MDhMMTkuNTgzIDM5Mi41ODNMMjI0IDUxMkw0MjguNDE3IDM5Mi41ODNMMzUwLjAzMyAzNDYuODA4TDI2OS45MjEgMzkzLjU4OUMyNjcuMDkzIDM5NS4zMzggMjYzLjExNCAzOTMuMDYgMjYzLjIxOCAzODkuNjY5VjI3OC40NjRDMjYzLjIxOCAyNzUuMTI2IDI2NS4wNTEgMjcyLjE1OSAyNjcuNzIxIDI3MC42MjJMMzYyLjkxNCAyMTQuOTkzQzM2NS43NDEgMjEzLjI0NSAzNjkuNzIgMjE1LjQ3IDM2OS42MTYgMjE4LjkxNFYzMTIuNDc3TDQ0OCAzNTguMjUyVjExOS40MTdMMjQzLjU4MyAwVjkxLjYwMjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuc3BsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCwyMzAuMTdWNDgwSDBWMjMwLjE3SDE0MS4xM1YzNTUuMDlIMzA2Ljg3VjIzMC4xN1pNMzA2Ljg3LDMySDE0MS4xM1YxNTYuOTFIMzA2Ljg3WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbnRhcHBkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMS4zIDQ5LjljLTc5LjggMTYwLjEtODQuNiAxNTIuNS04Ny45IDE3My4ybC01LjIgMzIuOGMtMS45IDEyLTYuNiAyMy41LTEzLjcgMzMuNEwxNDUuNiA0OTcuMWMtNy42IDEwLjYtMjAuNCAxNi4yLTMzLjQgMTQuNi00MC4zLTUtNzcuOC0zMi4yLTk1LjMtNjguNS01LjctMTEuOC00LjUtMjUuOCAzLjEtMzYuNGwxNDguOS0yMDcuOWM3LjEtOS45IDE2LjQtMTggMjcuMi0yMy43bDI5LjMtMTUuNWMxOC41LTkuOCA5LjctMTEuOSAxMzUuNi0xMzguOSAxLTQuOCAxLTcuMyAzLjYtOCAzLS43IDYuNi0xIDYuMy00LjZsLS40LTQuNmMtLjItMS45IDEuMy0zLjYgMy4yLTMuNiA0LjUtLjEgMTMuMiAxLjIgMjUuNiAxMCAxMi4zIDguOSAxNi40IDE2LjggMTcuNyAyMS4xLjYgMS44LS42IDMuNy0yLjQgNC4ybC00LjUgMS4xYy0zLjQuOS0yLjUgNC40LTIuMyA3LjQuMSAyLjgtMi4zIDMuNi02LjUgNi4xek0yMzAuMSAzNi40YzMuNC45IDIuNSA0LjQgMi4zIDcuNC0uMiAyLjcgMi4xIDMuNSA2LjQgNiA3LjkgMTUuOSAxNS4zIDMwLjUgMjIuMiA0NCAuNyAxLjMgMi4zIDEuNSAzLjMuNSAxMS4yLTEyIDI0LjYtMjYuMiA0MC41LTQyLjYgMS4zLTEuNCAxLjQtMy41LjEtNC45LTgtOC4yLTE2LjUtMTYuOS0yNS42LTI2LjEtMS00LjctMS03LjMtMy42LTgtMy0uOC02LjYtMS02LjMtNC42LjMtMy4zIDEuNC04LjEtMi44LTguMi00LjUtLjEtMTMuMiAxLjEtMjUuNiAxMC0xMi4zIDguOS0xNi40IDE2LjgtMTcuNyAyMS4xLTEuNCA0LjIgMy42IDQuNiA2LjggNS40ek02MjAgNDA2LjdMNDcxLjIgMTk4LjhjLTEzLjItMTguNS0yNi42LTIzLjQtNTYuNC0zOS4xLTExLjItNS45LTE0LjItMTAuOS0zMC41LTI4LjktMS0xLjEtMi45LS45LTMuNi41LTQ2LjMgODguOC00Ny4xIDgyLjgtNDkgOTQuOC0xLjcgMTAuNy0xLjMgMjAgLjMgMjkuOCAxLjkgMTIgNi42IDIzLjUgMTMuNyAzMy40bDE0OC45IDIwNy45YzcuNiAxMC42IDIwLjIgMTYuMiAzMy4xIDE0LjcgNDAuMy00LjkgNzgtMzIgOTUuNy02OC42IDUuNC0xMS45IDQuMy0yNS45LTMuNC0zNi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAzLjIgMzAzYy01LjIgMy42LTMyLjYgMTMuMS0zMi42LTE5VjE4MEgzNy45djEwMi42YzAgNzQuOSA4MC4yIDUxLjEgOTcuOSAzOVYxODBoLTMyLjZ6TTQgNzQuODJ2MjIwLjljMCAxMDMuNyA3NC45IDEzNS4yIDE4Ny43IDE4NC4xIDExMi40LTQ4LjkgMTg3LjctODAuMiAxODcuNy0xODQuMVY3NC44MmMtMTE2LjMtNjEuNi0yODEuOC00OS42LTM3NS40IDB6bTM1OC4xIDIyMC45YzAgODYuNi01My4yIDExMy42LTE3MC40IDE2NS4zLTExNy41LTUxLjgtMTcwLjUtNzguNy0xNzAuNS0xNjUuM3YtMTI2LjRjMTAyLjMtOTMuOCAyMzEuNi0xMDAgMzQwLjktODkuOHptLTIwOS42LTEwNy40djIxMi44aDMyLjd2LTY4LjdjMjQuNCA3LjMgNzEuNy0yLjYgNzEuNy03OC41IDAtOTcuNC04MC43LTgwLjkyLTEwNC40LTY1LjZ6bTMyLjcgMTE3LjN2LTEwMC4zYzguNC00LjIgMzguNC0xMi43IDM4LjQgNDkuMyAwIDY3LjktMzYuNCA1MS44LTM4LjQgNTF6bTc5LjEtODYuNGMuMSA0Ny4zIDUxLjYgNDIuNSA1Mi4yIDcwLjQuNiAyMy41LTMwLjQgMjMtNTAuOCA0Ljl2MzAuMWMzNi4yIDIxLjUgODEuOSA4LjEgODMuMi0zMy41IDEuNy01MS41LTU0LjEtNDYuNi01My40LTczLjIuNi0yMC4zIDMwLjYtMjAuNSA0OC41LTIuMnYtMjguNGMtMjguNS0yMi03OS45LTkuMi03OS43IDMxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwd29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQxIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTQuNyAyOTUuNmMtNTAuMyAwLTgzLjUtMzguOS05Mi44LTUzLjljMTEuOS05NS4zIDQ2LjgtMTI1LjQgOTIuOC0xMjUuNGM0NS41IDAgODAuOSAzNi40IDgwLjkgODkuN3MtMzUuNCA4OS43LTgwLjkgODkuN3ptMC0yMzcuOGMtODEuOSAwLTEyNy44IDUzLjQtMTQxIDEwOC40Yy0xNC45LTI4LTI1LjktNjUuNS0zNC41LTEwMC4zSDIwNnYxNDFjMCA1MS4xLTIzLjMgODktNjguOCA4OXMtNzEuNi0zNy44LTcxLjYtODlsLjUtMTQxSC44djE0MWMwIDQxLjEgMTMuMyA3OC40IDM3LjYgMTA1LjFjMjUgMjcuNSA1OS4yIDQxLjggOTguOCA0MS44Yzc4LjggMCAxMzMuOC02MC40IDEzMy44LTE0Ni45VjExMi4xYzguMiAzMS4yIDI3LjggOTEuMSA2NS4zIDE0My42bC0zNSAxOTkuNGg2Ni40bDIzLjEtMTQxLjNjNy42IDYuMyAxNS43IDEyIDI0LjIgMTdjMjIuMiAxNCA0Ny43IDIxLjkgNzMuOSAyMi44YzAgMCA0IC4yIDYuMSAuMmM4MS4yIDAgMTQ1LjktNjIuOSAxNDUuOS0xNDcuOHMtNjQuOC0xNDguMS0xNDYtMTQ4LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDEuNSAyNTZjMCAzLjEtMS43IDYuMS00LjUgNy41TDU0Ny45IDMxN2MtMS40LjgtMi44IDEuNC00LjUgMS40LTEuNCAwLTMuMS0uMy00LjUtMS4xLTIuOC0xLjctNC41LTQuNS00LjUtNy44di0zNS42SDI5NS43YzI1LjMgMzkuNiA0MC41IDEwNi45IDY5LjYgMTA2LjlIMzkyVjM1NGMwLTUgMy45LTguOSA4LjktOC45SDQ5MGM1IDAgOC45IDMuOSA4LjkgOC45djg5LjFjMCA1LTMuOSA4LjktOC45IDguOWgtODkuMWMtNSAwLTguOS0zLjktOC45LTguOXYtMjYuN2gtMjYuN2MtNzUuNCAwLTgxLjEtMTQyLjUtMTI0LjctMTQyLjVIMTQwLjNjLTguMSAzMC42LTM1LjkgNTMuNS02OSA1My41QzMyIDMyNy4zIDAgMjk1LjMgMCAyNTZzMzItNzEuMyA3MS4zLTcxLjNjMzMuMSAwIDYxIDIyLjggNjkgNTMuNSAzOS4xIDAgNDMuOSA5LjUgNzQuNi02MC40QzI1NSA4OC43IDI3MyA5NS43IDMyMy44IDk1LjdjNy41LTIwLjkgMjctMzUuNiA1MC40LTM1LjYgMjkuNSAwIDUzLjUgMjMuOSA1My41IDUzLjVzLTIzLjkgNTMuNS01My41IDUzLjVjLTIzLjQgMC00Mi45LTE0LjgtNTAuNC0zNS42SDI5NGMtMjkuMSAwLTQ0LjMgNjcuNC02OS42IDEwNi45aDMxMC4xdi0zNS42YzAtMy4zIDEuNy02LjEgNC41LTcuOCAyLjgtMS43IDYuNC0xLjQgOC45LjNsODkuMSA1My41YzIuOCAxLjEgNC41IDQuMSA0LjUgNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc3BzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MC4zIDI0MS43YzI1LjgtNDEuMyAxNS4yLTQ4LjgtMTEuNy00OC44aC0yN2MtLjEgMC0xLjUtMS40LTEwLjkgOC0xMS4yIDUuNi0zNy45IDYuMy0zNy45IDguNyAwIDQuNSA3MC4zLTMuMSA4OC4xIDAgOS41IDEuNS0xLjUgMjAuNC00LjQgMzItLjUgNC41IDIuNCAyLjMgMy44LjF6bS0xMTIuMSAyMi42YzY0LTIxLjMgOTcuMy0yMy45IDEwMi0yNi4yIDQuNC0yLjktNC40LTYuNi0yNi4yLTUuOC01MS43IDIuMi0xMzcuNiAzNy4xLTE3Mi42IDUzLjlsLTMwLjctOTMuM2gxOTYuNmMtMi43LTI4LjItMTUyLjktMjIuNi0zMzcuOS0yMi42TDI3IDQxNS44YzE5Ni40LTk3LjMgMjU4LjktMTMwLjMgMzIxLjItMTUxLjV6TTk0LjcgOTZjMjUzLjMgNTMuNyAzMzAgNjUuNyAzMzIuMSA4NS4yIDM2LjQgMCA0NS45IDAgNTIuNCA2LjYgMjEuMSAxOS43LTE0LjYgNjcuNy0xNC42IDY3LjctNC40IDIuOS00MDYuNCAxNjAuMi00MDYuNCAxNjAuMmg0MjMuMUw1NDkgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzc3VubmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MS45IDI2OC4xQTI0MC45IDI0MC45IDAgMSAxIC4xIDI2OGEyNDAuOSAyNDAuOSAwIDEgMSA0ODEuOSAwek0yNC41IDI2OGEyMTYuNSAyMTYuNSAwIDEgMCA0MzIuOSAwQTIxNi41IDIxNi41IDAgMSAwIDI0LjUgMjY4em0zODUuOSA2My4zYy0xMi43IDAtMjEuNi0xLjktMjYuNy01LjljLTUuNS00LjMtOC4yLTEyLjMtOC4yLTIzLjhWMjA1LjFjMC02LjUtNS4yLTIwLjItMTUuNy00MS4yYzcgMCAxNy05LjEgMzAtMjcuMlYyODQuNWMwIDExIDIuNCAxOS40IDcgMjUuM2MzLjcgNC43IDEwLjEgOC45IDE5IDEyLjZjMS4yIC40IDIuNiAuOSA0LjEgMS40YzIuOSAuOSA2LjMgMi4xIDEwLjMgMy41Yy0xLjggMi43LTguMyA0LTE5LjkgNHptLTIxOSAwYy0xLjMgMi40LTMuNiA1LjUtNi44IDkuNGwtMTguNSAyMi41Yy0xLTYuMS00LTEzLTkuMy0yMC42cy05LjctMTEuNC0xMy40LTExLjRoLTguM0g1My42YzMuMy01LjMgNC45LTguOCA0LjktMTAuOGMwLTItLjgtNS4zLTIuNC05LjdjLTEuNS00LjQtMi40LTguNS0yLjQtMTIuNGMwLTcuNCAyLjEtMTMuOSA2LjMtMTkuM0w4MCAyNTMuNGwtNy4xLTE3LjdMODkgMjE1LjlsNi43IDE2LjggOC0xMC4zYy0xLjggNi40LTIuNiAxMi4zLTIuNiAxNy43YzAgNC4yIDIuOCAxMy4zIDguMyAyNy4zbDE2LjIgNDAuN0gxMzVoOCAuM2MyLjggLjQgNy43IDUgMTQuNiAxMy45YzEuOCAyLjQgNC4zIDUuOCA3LjcgMTAuMmMxLjQgMS45IDIuOSAzLjkgNC42IDYuMWMxLjMtMi4zIDItNC42IDItNy4xYzAtMi0xLjMtNi42LTQtMTMuNEwxNjMgMzA0LjFjLTQtMTAuNi02LjEtMTcuNy02LjEtMjEuM2MwLTYuMyAxLjktMTIuMyA1LjgtMTcuOWMuNS0uNiAxLTEuMyAxLjUtMS45YzQuNC01LjYgOC44LTExLjEgMTMuMy0xNi41Yy0xLjEgNC42LTEuNyA4LjctMS43IDEyYzAgMy43IDEuNyA5LjkgNS4xIDE4LjhsNy45IDIwLjRjMS45IDQuNyAzIDguMiAzLjcgMTAuM2gxNy42IDguM2wtLjktMi42Yy0xLjQtMy45LTQtNy03LjctOS4zbDE1LjYtMjAuMSAxMi4zIDMyaDEzLjRMMjQ1IDI5Mi4yYy0xLjUtMy45LTQtNy03LjctOS4zTDI1MyAyNjIuOCAyNzAuMyAzMDhoMTMuNGwtMTEuNC0yOS40Yy0xLjUtMy45LTQtNy03LjctOS4zbDE1LjYtMjBMMzAyLjYgMzA4aDEwLjMgOC4zIDcuNmMxLjUgMCAzLTEuMSA0LjUtMy4xczIuMi00LjEgMi4yLTYuM1YyMDUuMWMwLTYuNS00LjUtMjAuMy0xMy43LTQxLjJjNS40IDAgMTQuMS05LjEgMjYuMi0yNy4yVjMwMC4yYzAgNy4yIC42IDEyIDEuNyAxNC42YzEuNiAzLjQgNS4zIDYuMiAxMS4xIDguMmMtMy45IDUuNi04LjcgOC41LTE0LjUgOC41SDMyMS4xaC04LjNIMjEwLjVoLTE5ek05My40IDI4Ny4zYy0yLjctNi43LTQtMTEuNy00LTE1Yy0uNiAxLjItMi40IDMuNy01LjQgNy42Yy0xLjQgMS45LTIuMiAzLjctMi4yIDUuM2MwIDIuNiAuOCA1LjcgMi4yIDkuM2w1LjYgMTMuOWgwYzUgMCA5IDAgMTEuOS0uMWwtOC4yLTIwLjl6bTEzLjUtNzIuNGMtMy01LjItNy05LjMtMTEuOS0xMS45Yy0zLjUtMS45LTUuMy00LjMtNS4zLTcuNGMwLTIuNCA0LjYtOC42IDE0LTE4LjNjLjIgMy44IDEuOSA3LjYgNC45IDExLjJjMy4xIDMuNiA0LjYgNyA0LjYgMTAuMWMwIDIuNi0yLjEgOC02LjIgMTYuM3ptLTI3LjYgMGMtMy01LjItNy05LjMtMTEuOS0xMS45Yy0zLjUtMS45LTUuMy00LjMtNS4zLTcuNGMwLTIuNCA0LjYtOC42IDE0LTE4LjNjLjIgMy44IDEuOSA3LjYgNC45IDExLjJjMy4xIDMuNiA0LjYgNyA0LjYgMTAuMWMwIDIuNi0yLjEgOC02LjIgMTYuM3ptODcgMjcuNWMtMy01LjItNy05LjMtMTEuOS0xMS45Yy0zLjUtMS45LTUuMy00LjMtNS4zLTcuNGMwLTIuNCA0LjYtOC42IDE0LTE4LjNjLjIgMy44IDEuOSA3LjYgNC45IDExLjJjMy4xIDMuNiA0LjYgNyA0LjYgMTAuMWMwIDIuNi0yLjEgOC02LjIgMTYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmFhZGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC41IDE0MC43YzEuNS0xNy42IDQuOS01Mi43IDQ5LjgtNTIuN2g5OC42YzIwLjcgMCAzMi4xLTcuOCAzMi4xLTIxLjZWNTQuMWMwLTEyLjIgOS4zLTIyLjEgMjEuNS0yMi4xUzQ0OCA0MS45IDQ0OCA1NC4xdjM2LjVjMCA0Mi45LTIxLjUgNjItNjYuOCA2MkgyODAuN2MtMzAuMSAwLTMzIDE0LjctMzMgMjcuMSAwIDEuMy0uMSAyLjUtLjIgMy43LS43IDEyLjMtMTAuOSAyMi4yLTIzLjQgMjIuMnMtMjIuNy05LjgtMjMuNC0yMi4yYy0uMS0xLjItLjItMi40LS4yLTMuNyAwLTEyLjMtMy0yNy4xLTMzLTI3LjFINjYuOGMtNDUuMyAwLTY2LjgtMTkuMS02Ni44LTYyVjU0LjFDMCA0MS45IDkuNCAzMiAyMS42IDMyczIxLjUgOS45IDIxLjUgMjIuMXYxMi4zQzQzLjEgODAuMiA1NC41IDg4IDc1LjIgODhoOTguNmM0NC44IDAgNDguMyAzNS4xIDQ5LjggNTIuN2guOXpNMjI0IDQ1NmMxMS41IDAgMjEuNC03IDI1LjctMTYuMyAxLjEtMS44IDk3LjEtMTY5LjYgOTguMi0xNzEuNCAxMS45LTE5LjYtMy4yLTQ0LjMtMjcuMi00NC4zLTEzLjkgMC0yMy4zIDYuNC0yOS44IDIwLjNMMjI0IDM2MmwtNjYuOS0xMTcuN2MtNi40LTEzLjktMTUuOS0yMC4zLTI5LjgtMjAuMy0yNCAwLTM5LjEgMjQuNi0yNy4yIDQ0LjMgMS4xIDEuOSA5Ny4xIDE2OS42IDk4LjIgMTcxLjQgNC4zIDkuMyAxNC4yIDE2LjMgMjUuNyAxNi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFjb2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMmgtNjRsLTgwLjcgMTkyaC05NC41TDY0IDMySDBsNDggMTEySDB2NDhoNjguNWwxMy44IDMySDB2NDhoMTAyLjhMMTkyIDQ4MGw4OS4yLTIwOEgzODR2LTQ4aC04Mi4zbDEzLjgtMzJIMzg0di00OGgtNDhsNDgtMTEyek0xOTIgMzM2bC0yNy02NGg1NGwtMjcgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzYuMiAxNTAuNXYuN0MyNTguMyA5OC42IDIzMy42IDQ3LjggMjA1LjQgMGM0My4zIDI5LjIgNjcgMTAwIDcwLjggMTUwLjV6bTMyLjcgMTIxLjdjNy42IDE4LjIgMTEgMzcuNSAxMSA1NyAwIDc3LjctNTcuOCAxNDEtMTM3LjggMTM5LjRsMy44LS4zYzc0LjItNDYuNyAxMDkuMy0xMTguNiAxMDkuMy0yMDUuMSAwLTM4LjEtNi41LTc1LjktMTguOS0xMTIgMSAxMS43IDEgMjMuNyAxIDM1LjQgMCA5MS44LTE4LjEgMjQxLjYtMTE2LjYgMjgwQzk1IDQ1NS4yIDQ5LjQgMzk4IDQ5LjQgMzI5LjJjMC03NS42IDU3LjQtMTQyLjMgMTM1LjQtMTQyLjMgMTYuOCAwIDMzLjcgMy4xIDQ5LjEgOS42IDEuNy0xNS4xIDYuNS0yOS45IDEzLjQtNDMuMy0xOS45LTcuMi00MS4yLTEwLjctNjIuNS0xMC43LTE2MS41IDAtMjM4LjcgMTk1LjktMTI5LjkgMzEzLjcgNjcuOSA3NC42IDE5MiA3My45IDI1OS44IDAgNTYuNi02MS4zIDYwLjktMTQyLjQgMzYuNC0yMDEtMTIuNyA4LTI3LjEgMTMuOS00Mi4yIDE3ek00MTguMSAxMS43Yy0zMSA2Ni41LTgxLjMgNDcuMi0xMTUuOCA4MC4xLTEyLjQgMTItMjAuNiAzNC0yMC42IDUwLjUgMCAxNC4xIDQuNSAyNy4xIDEyIDM4LjggNDcuNC0xMSA5OC4zLTQ2IDExOC4yLTkwLjctLjcgNS41LTQuOCAxNC40LTcuMiAxOS4yLTIwLjMgMzUuNy02NC42IDY1LjYtOTkuNyA4NC45IDE0LjggMTQuNCAzMy43IDI1LjggNTUgMjUuOCA3OSAwIDExMC4xLTEzNC42IDU4LjEtMjA4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NCA0OS45QzQzMS4zIDM4LjIgMzc5LjkuOSAyNjUuMy40YzAgMC0xMzUuMS04LjEtMjAwLjkgNTIuM0MyNy44IDg5LjMgMTQuOSAxNDMgMTMuNSAyMDkuNWMtMS40IDY2LjUtMy4xIDE5MS4xIDExNyAyMjQuOWguMWwtLjEgNTEuNnMtLjggMjAuOSAxMyAyNS4xYzE2LjYgNS4yIDI2LjQtMTAuNyA0Mi4zLTI3LjggOC43LTkuNCAyMC43LTIzLjIgMjkuOC0zMy43IDgyLjIgNi45IDE0NS4zLTguOSAxNTIuNS0xMS4yIDE2LjYtNS40IDExMC41LTE3LjQgMTI1LjctMTQyIDE1LjgtMTI4LjYtNy42LTIwOS44LTQ5LjgtMjQ2LjV6TTQ1Ny45IDI4N2MtMTIuOSAxMDQtODkgMTEwLjYtMTAzIDExNS4xLTYgMS45LTYxLjUgMTUuNy0xMzEuMiAxMS4yIDAgMC01MiA2Mi43LTY4LjIgNzktNS4zIDUuMy0xMS4xIDQuOC0xMS01LjcgMC02LjkuNC04NS43LjQtODUuNy0uMSAwLS4xIDAgMCAwLTEwMS44LTI4LjItOTUuOC0xMzQuMy05NC43LTE4OS44IDEuMS01NS41IDExLjYtMTAxIDQyLjYtMTMxLjYgNTUuNy01MC41IDE3MC40LTQzIDE3MC40LTQzIDk2LjkuNCAxNDMuMyAyOS42IDE1NC4xIDM5LjQgMzUuNyAzMC42IDUzLjkgMTAzLjggNDAuNiAyMTEuMXptLTEzOS04MC44Yy40IDguNi0xMi41IDkuMi0xMi45LjYtMS4xLTIyLTExLjQtMzIuNy0zMi42LTMzLjktOC42LS41LTcuOC0xMy40LjctMTIuOSAyNy45IDEuNSA0My40IDE3LjUgNDQuOCA0Ni4yem0yMC4zIDExLjNjMS00Mi40LTI1LjUtNzUuNi03NS44LTc5LjMtOC41LS42LTcuNi0xMy41LjktMTIuOSA1OCA0LjIgODguOSA0NC4xIDg3LjggOTIuNS0uMSA4LjYtMTMuMSA4LjItMTIuOS0uM3ptNDcgMTMuNGMuMSA4LjYtMTIuOSA4LjctMTIuOS4xLS42LTgxLjUtNTQuOS0xMjUuOS0xMjAuOC0xMjYuNC04LjUtLjEtOC41LTEyLjkgMC0xMi45IDczLjcuNSAxMzMgNTEuNCAxMzMuNyAxMzkuMnpNMzc0LjkgMzI5di4yYy0xMC44IDE5LTMxIDQwLTUxLjggMzMuM2wtLjItLjNjLTIxLjEtNS45LTcwLjgtMzEuNS0xMDIuMi01Ni41LTE2LjItMTIuOC0zMS0yNy45LTQyLjQtNDIuNC0xMC4zLTEyLjktMjAuNy0yOC4yLTMwLjgtNDYuNi0yMS4zLTM4LjUtMjYtNTUuNy0yNi01NS43LTYuNy0yMC44IDE0LjItNDEgMzMuMy01MS44aC4yYzkuMi00LjggMTgtMy4yIDIzLjkgMy45IDAgMCAxMi40IDE0LjggMTcuNyAyMi4xIDUgNi44IDExLjcgMTcuNyAxNS4yIDIzLjggNi4xIDEwLjkgMi4zIDIyLTMuNyAyNi42bC0xMiA5LjZjLTYuMSA0LjktNS4zIDE0LTUuMyAxNHMxNy44IDY3LjMgODQuMyA4NC4zYzAgMCA5LjEuOCAxNC01LjNsOS42LTEyYzQuNi02IDE1LjctOS44IDI2LjYtMy43IDE0LjcgOC4zIDMzLjQgMjEuMiA0NS44IDMyLjkgNyA1LjcgOC42IDE0LjQgMy44IDIzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbWVvViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDcuOCAxNTMuNmMtMiA0My42LTMyLjQgMTAzLjMtOTEuNCAxNzkuMS02MC45IDc5LjItMTEyLjQgMTE4LjgtMTU0LjYgMTE4LjgtMjYuMSAwLTQ4LjItMjQuMS02Ni4zLTcyLjNDMTAwLjMgMjUwIDg1LjMgMTc0LjMgNTYuMiAxNzQuM2MtMy40IDAtMTUuMSA3LjEtMzUuMiAyMS4xTDAgMTY4LjJjNTEuNi00NS4zIDEwMC45LTk1LjcgMTMxLjgtOTguNSAzNC45LTMuNCA1Ni4zIDIwLjUgNjQuNCA3MS41IDI4LjcgMTgxLjUgNDEuNCAyMDguOSA5My42IDEyNi43IDE4LjctMjkuNiAyOC44LTUyLjEgMzAuMi02Ny42IDQuOC00NS45LTM1LjgtNDIuOC02My4zLTMxIDIyLTcyLjEgNjQuMS0xMDcuMSAxMjYuMi0xMDUuMSA0NS44IDEuMiA2Ny41IDMxLjEgNjQuOSA4OS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaW1lbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDMuMiAzMkg0NC44QzIwLjEgMzIgMCA1Mi4xIDAgNzYuOHYzNTguNEMwIDQ1OS45IDIwLjEgNDgwIDQ0LjggNDgwaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44Vjc2LjhjMC0yNC43LTIwLjEtNDQuOC00NC44LTQ0Ljh6TTM3NyAxODAuOGMtMS40IDMxLjUtMjMuNCA3NC43LTY2IDEyOS40LTQ0IDU3LjItODEuMyA4NS44LTExMS43IDg1LjgtMTguOSAwLTM0LjgtMTcuNC00Ny45LTUyLjMtMjUuNS05My4zLTM2LjQtMTQ4LTU3LjQtMTQ4LTIuNCAwLTEwLjkgNS4xLTI1LjQgMTUuMmwtMTUuMi0xOS42YzM3LjMtMzIuOCA3Mi45LTY5LjIgOTUuMi03MS4yIDI1LjItMi40IDQwLjcgMTQuOCA0Ni41IDUxLjcgMjAuNyAxMzEuMiAyOS45IDE1MSA2Ny42IDkxLjYgMTMuNS0yMS40IDIwLjgtMzcuNyAyMS44LTQ4LjkgMy41LTMzLjItMjUuOS0zMC45LTQ1LjgtMjIuNCAxNS45LTUyLjEgNDYuMy03Ny40IDkxLjItNzYgMzMuMy45IDQ5IDIyLjUgNDcuMSA2NC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAyNTQuN3Y1Mi4xYy0xOC40IDQuMi0zNi45IDYuMS01Mi4xIDYuMS0zNi45IDc3LjQtMTAzIDE0My44LTEyNS4xIDE1Ni4yLTE0IDcuOS0yNy4xIDguNC00Mi43LS44QzEzNyA0NTIgMzQuMiAzNjcuNyAwIDEwMi43aDc0LjVDOTMuMiAyNjEuOCAxMzkgMzQzLjQgMTg5LjMgNDA0LjVjMjcuOS0yNy45IDU0LjgtNjUuMSA3NS42LTEwNi45LTQ5LjgtMjUuMy04MC4xLTgwLjktODAuMS0xNDUuNiAwLTY1LjYgMzcuNy0xMTUuMSAxMDIuMi0xMTUuMSAxMTQuOSAwIDEwNi4yIDEyNy45IDgxLjYgMTgxLjUgMCAwLTQ2LjQgOS4yLTYzLjUtMjAuNSAzLjQtMTEuMyA4LjItMzAuOCA4LjItNDguNSAwLTMxLjMtMTEuMy00Ni42LTI4LjQtNDYuNi0xOC4yIDAtMzAuOCAxNy4xLTMwLjggNTAgLjEgNzkuMiA1OS40IDExOC43IDEyOS45IDEwMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMS40OTA3IDYzLjQ5MDdDMCA5NC45ODEzIDAgMTQ1LjY3MSAwIDI0Ny4wNFYyNjQuOTZDMCAzNjYuMzI5IDAgNDE3LjAxOSAzMS40OTA3IDQ0OC41MDlDNjIuOTgxMyA0ODAgMTEzLjY3MSA0ODAgMjE1LjA0IDQ4MEgyMzIuOTZDMzM0LjMyOSA0ODAgMzg1LjAxOSA0ODAgNDE2LjUwOSA0NDguNTA5QzQ0OCA0MTcuMDE5IDQ0OCAzNjYuMzI5IDQ0OCAyNjQuOTZWMjQ3LjA0QzQ0OCAxNDUuNjcxIDQ0OCA5NC45ODEzIDQxNi41MDkgNjMuNDkwN0MzODUuMDE5IDMyIDMzNC4zMjkgMzIgMjMyLjk2IDMySDIxNS4wNEMxMTMuNjcxIDMyIDYyLjk4MTMgMzIgMzEuNDkwNyA2My40OTA3Wk03NS42IDE2OC4yNjdIMTI2Ljc0N0MxMjguNDI3IDI1My43NiAxNjYuMTMzIDI4OS45NzMgMTk2IDI5Ny40NFYxNjguMjY3SDI0NC4xNlYyNDJDMjczLjY1MyAyMzguODI3IDMwNC42NCAyMDUuMjI3IDMxNS4wOTMgMTY4LjI2N0gzNjMuMjUzQzM1OS4zMTMgMTg3LjQzNSAzNTEuNDYgMjA1LjU4MyAzNDAuMTg2IDIyMS41NzlDMzI4LjkxMyAyMzcuNTc0IDMxNC40NjEgMjUxLjA3MSAyOTcuNzMzIDI2MS4yMjdDMzE2LjQxIDI3MC40OTkgMzMyLjkwNyAyODMuNjMgMzQ2LjEzMiAyOTkuNzUxQzM1OS4zNTcgMzE1Ljg3MyAzNjkuMDEgMzM0LjYxOCAzNzQuNDUzIDM1NC43NDdIMzIxLjQ0QzMxNi41NTUgMzM3LjI2MiAzMDYuNjE0IDMyMS42MSAyOTIuODY1IDMwOS43NTRDMjc5LjExNyAyOTcuODk5IDI2Mi4xNzMgMjkwLjM2OCAyNDQuMTYgMjg4LjEwN1YzNTQuNzQ3SDIzOC4zNzNDMTM2LjI2NyAzNTQuNzQ3IDc4LjAyNjcgMjg0Ljc0NyA3NS42IDE2OC4yNjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZudiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJoMzIuOGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi43LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFoMzIuOGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMWwtNTUuOCAxMTEuNVMxNzQuMiAzNTIgMTQwIDM1MmgtMzUuMXptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40bC01NS45LTExMS41UzM4Ny4yIDE5MiA0MDggMTkyaDMyLjhjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuOC03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xSDYyN2MyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMWwtNTUuOSAxMTEuNVM1NjkuMyAzNTIgNTM1LjEgMzUyaC0zNS4yek0zMzcuNiAxOTJjMzQuMSAwIDQ2LjQgMzAuNCA0Ni40IDMwLjRsNTUuOSAxMTEuNXMxMC40IDE4LjEtMTAuNCAxOC4xaC0zMi44Yy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMWMtMTUuOSAwLTIxLjEgMTMuMS0yMS4xIDEzLjFsLTM2LjcgNzQuNWMtNS42IDkuNC04LjQgMTguMS0xOC44IDE4LjFoLTMyLjljLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVzMTIuMi0zMC40IDQ2LjQtMzAuNGgzNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWdWVqcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTYuOSA2NC4zSDI4MGwtNTYgODguNi00OC04OC42SDBMMjI0IDQ0OCA0NDggNjQuM2gtOTEuMXptLTMwMS4yIDMyaDUzLjhMMjI0IDI5NC41IDMzOC40IDk2LjNoNTMuOEwyMjQgMzg0LjUgNTUuNyA5Ni4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXRjaG1hbk1vbml0b3JpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDE2QzEyMy40NTIsMTYsMTYsMTIzLjQ1MiwxNiwyNTZTMTIzLjQ1Miw0OTYsMjU2LDQ5Niw0OTYsMzg4LjU0OCw0OTYsMjU2LDM4OC41NDgsMTYsMjU2LDE2Wk0xMjEuNjksNDI5LjEyMkM3MC4wNTYsMzg4Ljk3MiwzNi43NDEsMzI2LjMyMiwzNi43NDEsMjU2YTIxOC41MTksMjE4LjUxOSwwLDAsMSw5LjU4Ny02NC4xMjJsMTAyLjktMTcuODk1LS4xMjEsMTAuOTY3LTEzLjk0MywyLjAxM3MtLjE0NCwxMi41LS4xNDQsMTkuNTQ5YTEyLjc3OCwxMi43NzgsMCwwLDAsNC44ODcsMTAuMzQ5bDkuNDY4LDcuNFptMTA1LjY5Mi0yODMuMjcsOC40OC03LjYxOHM2LjkzNC01LjM4LS4xNDMtOS4zNDRjLTcuMTg4LTQuMDI0LTM5LjUzLTM0LjUtMzkuNTMtMzQuNS01LjM0OC01LjQ3Ny04LjI1Ny03LjM0Ny0xNS40NiwwLDAsMC0zMi4zNDIsMzAuNDc0LTM5LjUyOSwzNC41LTcuMDc4LDMuOTY0LS4xNDQsOS4zNDQtLjE0NCw5LjM0NGw4LjQ4MSw3LjYxOC0uMDQ4LDQuMzY5TDc1Ljk4MiwxMzEuMDQ1YzM5LjY0NC01Ni45MzgsMTA1LjUzMi05NC4zLDE4MC4wMTgtOTQuM0EyMTguNzU0LDIxOC43NTQsMCwwLDEsNDIwLjkzNCwxMTEuNzdsLTE5My41MTIsMzcuN1ptMzQuMDYzLDMyOS4yNjktMzMuOS0yNTAuODU3LDkuNDY3LTcuNGExMi43NzgsMTIuNzc4LDAsMCwwLDQuODg4LTEwLjM0OWMwLTcuMDQ0LS4xNDQtMTkuNTQ5LS4xNDQtMTkuNTQ5bC0xMy45NDMtMi4wMTMtLjExNi0xMC40NzQsMjQxLjcxMSwzMS4zOTFBMjE4Ljg3MiwyMTguODcyLDAsMCwxLDQ3NS4yNTksMjU2QzQ3NS4yNTksMzc1LjA3NCwzNzkuODMxLDQ3Mi4yMTIsMjYxLjQ0NSw0NzUuMTIxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4xNyAyMDEuNjdDNTE2LjY5IDI4Ny41MyA0NzEuMjMgMzY5LjU5IDM4OSA0MDkuOGMxMyAzNC4xLTEyLjQgNzAuMi00OC4zMiA3MC4yYTUxLjY4IDUxLjY4IDAgMCAxLTUxLjU3LTQ5Yy02LjQ0LjE5LTY0LjIgMC03Ni4zMy0uNjRBNTEuNjkgNTEuNjkgMCAwIDEgMTU5IDQ3OS45MmMtMzMuODYtMS4zNi01Ny45NS0zNC44NC00Ny02Ny45Mi0zNy4yMS0xMy4xMS03Mi41NC0zNC44Ny05OS42Mi03MC44LTEzLTE3LjI4LS40OC00MS44IDIwLjg0LTQxLjggNDYuMzEgMCAzMi4yMi01NC4xNyA0My4xNS0xMTAuMjZDOTQuOCA5NS4yIDE5My4xMiAzMiAyODguMDkgMzJjMTAyLjQ4IDAgMTk3LjE1IDcwLjY3IDIxNC4wOCAxNjkuNjd6TTM3My41MSAzODguMjhjNDItMTkuMTggODEuMzMtNTYuNzEgOTYuMjktMTAyLjE0IDQwLjQ4LTEyMy4wOS02NC4xNS0yMjgtMTgxLjcxLTIyOC04My40NSAwLTE3MC4zMiA1NS40Mi0xODYuMDcgMTM2LTkuNTMgNDguOTEgNSAxMzEuMzUtNjguNzUgMTMxLjM1QzU4LjIxIDM1OC42IDkxLjYgMzc4LjExIDEyNyAzODkuNTRjMjQuNjYtMjEuOCA2My44Ny0xNS40NyA3OS44MyAxNC4zNCAxNC4yMiAxIDc5LjE5IDEuMTggODcuOS44MmE1MS42OSA1MS42OSAwIDAgMSA3OC43OC0xNi40MnpNMjA1LjEyIDE4Ny4xM2MwLTM0Ljc0IDUwLjg0LTM0Ljc1IDUwLjg0IDBzLTUwLjg0IDM0Ljc0LTUwLjg0IDB6bTExNi41NyAwYzAtMzQuNzQgNTAuODYtMzQuNzUgNTAuODYgMHMtNTAuODYgMzQuNzUtNTAuODYgMHptLTEyMi42MSA3MC42OWMtMy40NC0xNi45NCAyMi4xOC0yMi4xOCAyNS42Mi01LjIxbC4wNi4yOGM0LjE0IDIxLjQyIDI5Ljg1IDQ0IDY0LjEyIDQzLjA3IDM1LjY4LS45NCA1OS4yNS0yMi4yMSA2NC4xMS00Mi43NyA0LjQ2LTE2LjA1IDI4LjYtMTAuMzYgMjUuNDcgNi01LjIzIDIyLjE4LTMxLjIxIDYyLTkxLjQ2IDYyLjktNDIuNTUgMC04MC44OC0yNy44NC04Ny45LTY0LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWJBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Mi4yIDUyYzAgMjAuOS0xMi40IDM5LTMwLjIgNDcuMkw0NDggMTkybDEwNC40LTIwLjljLTUuMy03LjctOC40LTE3LjEtOC40LTI3LjFjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDI2LTIwLjYgNDcuMS00Ni40IDQ4TDQ4MSA0NDIuM2MtMTAuMyAyMy0zMy4yIDM3LjctNTguNCAzNy43bC0yMDUuMiAwYy0yNS4yIDAtNDgtMTQuOC01OC40LTM3LjdMNDYuNCAxOTJDMjAuNiAxOTEuMSAwIDE3MCAwIDE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4YzAgMTAuMS0zLjEgMTkuNC04LjQgMjcuMUwxOTIgMTkyIDI5OC4xIDk5LjFjLTE3LjctOC4zLTMwLTI2LjMtMzAtNDcuMWMwLTI4LjcgMjMuMy01MiA1Mi01MnM1MiAyMy4zIDUyIDUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWJmbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCA2NEw0MzUuOCA0NjMuMkgyNDRsODUuNS0xNjUuNWgtMy44QzI1NS4xIDM4OS4zIDE0OS45IDQ0OS41IDAgNDYzLjJWMzAwLjFzOTUuOS01LjcgMTUyLjMtNjQuOUgwVjY0SDE3MS4xVjIwNC44bDMuOCAwTDI0NC45IDY0SDM3NC4zVjIwMy45bDMuOCAwTDQ1MC43IDY0SDY0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VlYmx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNS4wOSA2NS44M2MtMzkuODggMC03My4yOCAyNS43My04My42NiA2NC4zMy0xOC4xNi01OC4wNi02NS41LTY0LjMzLTg0Ljk1LTY0LjMzLTE5Ljc4IDAtNjYuOCA2LjI4LTg1LjI4IDY0LjMzLTEwLjM4LTM4LjYtNDMuNDUtNjQuMzMtODMuNjYtNjQuMzNDMzguNTkgNjUuODMgMCA5OS43MiAwIDE0My4wM2MwIDI4Ljk2IDQuMTggMzMuMjcgNzcuMTcgMjMzLjQ4IDIyLjM3IDYwLjU3IDY3Ljc3IDY5LjM1IDkyLjc0IDY5LjM1IDM5LjIzIDAgNzAuMDQtMTkuNDYgODUuOTMtNTMuOTggMTUuODkgMzQuODMgNDYuNjkgNTQuMjkgODUuOTMgNTQuMjkgMjQuOTcgMCA3MC4zNi05LjEgOTIuNzQtNjkuNjcgNzYuNTUtMjA4LjY1IDc3LjUtMjA1LjU4IDc3LjUtMjI3LjIuNjMtNDguMzItMzYuMDEtODMuNDctODYuOTItODMuNDd6bTI2LjM0IDExNC44MWwtNjUuNTcgMTc2LjQ0Yy03LjkyIDIxLjQ5LTIxLjIyIDM3LjIyLTQ2LjI0IDM3LjIyLTIzLjQ0IDAtMzcuMzgtMTIuNDEtNDQuMDMtMzMuOWwtMzkuMjgtMTE3LjQyaC0uOTVMMjE2LjA4IDM2MC40Yy02Ljk2IDIxLjUtMjAuOSAzMy42LTQ0LjAyIDMzLjYtMjUuMDIgMC0zOC4zMy0xNS43NC00Ni4yNC0zNy4yMkw2MC44OCAxODEuNTVjLTUuMzgtMTQuODMtNy45Mi0yMy45MS03LjkyLTM0LjUgMC0xNi4zNCAxNS44NC0yOS4zNiAzOC4zMy0yOS4zNiAxOC42OSAwIDMxLjk5IDExLjggMzYuMTEgMjkuMDVsNDQuMDMgMTM5LjgyaC45NWw0NC42Ni0xMzYuNzljNi4wMi0xOS42NyAxNi40Ny0zMi4wOCAzOC45Ni0zMi4wOHMzMi45NCAxMi4xMSAzOC45NiAzMi4wOGw0NC42NiAxMzYuNzloLjk1bDQ0LjAzLTEzOS44MmM0LjEyLTE3LjI1IDE3LjQyLTI5LjA1IDM2LjExLTI5LjA1IDIyLjE3IDAgMzguMzMgMTMuMzIgMzguMzMgMzUuNzEtLjMyIDcuODctNC4xMiAxNi4wNC03LjYxIDI3LjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWlibyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcgMTc3LjZjNy42LTI0LTEzLjQtNDYuOC0zNy40LTQxLjctMjIgNC44LTI4LjgtMjguMS03LjEtMzIuOCA1MC4xLTEwLjkgOTIuMyAzNy4xIDc2LjUgODQuOC02LjggMjEuMi0zOC44IDEwLjgtMzItMTAuM3pNMjE0LjggNDQ2LjdDMTA4LjUgNDQ2LjcgMCAzOTUuMyAwIDMxMC40YzAtNDQuMyAyOC05NS40IDc2LjMtMTQzLjdDMTc2IDY3IDI3OS41IDY1LjggMjQ5LjkgMTYxYy00IDEzLjEgMTIuMyA1LjcgMTIuMyA2IDc5LjUtMzMuNiAxNDAuNS0xNi44IDExNCA1MS40LTMuNyA5LjQgMS4xIDEwLjkgOC4zIDEzLjEgMTM1LjcgNDIuMyAzNC44IDIxNS4yLTE2OS43IDIxNS4yem0xNDMuNy0xNDYuM2MtNS40LTU1LjctNzguNS05NC0xNjMuNC04NS43LTg0LjggOC42LTE0OC44IDYwLjMtMTQzLjQgMTE2czc4LjUgOTQgMTYzLjQgODUuN2M4NC44LTguNiAxNDguOC02MC4zIDE0My40LTExNnpNMzQ3LjkgMzUuMWMtMjUuOSA1LjYtMTYuOCA0My43IDguMyAzOC4zIDcyLjMtMTUuMiAxMzQuOCA1Mi44IDExMS43IDEyNC03LjQgMjQuMiAyOS4xIDM3IDM3LjQgMTIgMzEuOS05OS44LTU1LjEtMTk1LjktMTU3LjQtMTc0LjN6bS03OC41IDMxMWMtMTcuMSAzOC44LTY2LjggNjAtMTA5LjEgNDYuMy00MC44LTEzLjEtNTgtNTMuNC00MC4zLTg5LjcgMTcuNy0zNS40IDYzLjEtNTUuNCAxMDMuNC00NS4xIDQyIDEwLjggNjMuMSA1MC4yIDQ2IDg4LjV6bS04Ni4zLTMwYy0xMi45LTUuNC0zMCAuMy0zOCAxMi45LTguMyAxMi45LTQuMyAyOCA4LjYgMzQgMTMuMSA2IDMwLjguMyAzOS4xLTEyLjkgOC0xMy4xIDMuNy0yOC4zLTkuNy0zNHptMzIuNi0xMy40Yy01LjEtMS43LTExLjQuNi0xNC4zIDUuNC0yLjkgNS4xLTEuNCAxMC42IDMuNyAxMi45IDUuMSAyIDExLjctLjMgMTQuNi01LjQgMi44LTUuMiAxLjEtMTAuOS00LTEyLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaXhpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODUuMiAxNjcuNmM2LjQgMCAxMi42LjMgMTguOCAxLjFDMzg3LjQgOTAuMyAzMDMuMyAzMiAyMDcuNyAzMiAxMDAuNSAzMiAxMyAxMDQuOCAxMyAxOTcuNGMwIDUzLjQgMjkuMyA5Ny41IDc3LjkgMTMxLjZsLTE5LjMgNTguNiA2OC0zNC4xYzI0LjQgNC44IDQzLjggOS43IDY4LjIgOS43IDYuMiAwIDEyLjEtLjMgMTguMy0uOC00LTEyLjktNi4yLTI2LjYtNi4yLTQwLjgtLjEtODQuOSA3Mi45LTE1NCAxNjUuMy0xNTR6bS0xMDQuNS01Mi45YzE0LjUgMCAyNC4yIDkuNyAyNC4yIDI0LjQgMCAxNC41LTkuNyAyNC4yLTI0LjIgMjQuMi0xNC44IDAtMjkuMy05LjctMjkuMy0yNC4yLjEtMTQuNyAxNC42LTI0LjQgMjkuMy0yNC40em0tMTM2LjQgNDguNmMtMTQuNSAwLTI5LjMtOS43LTI5LjMtMjQuMiAwLTE0LjggMTQuOC0yNC40IDI5LjMtMjQuNCAxNC44IDAgMjQuNCA5LjcgMjQuNCAyNC40IDAgMTQuNi05LjYgMjQuMi0yNC40IDI0LjJ6TTU2MyAzMTkuNGMwLTc3LjktNzcuOS0xNDEuMy0xNjUuNC0xNDEuMy05Mi43IDAtMTY1LjQgNjMuNC0xNjUuNCAxNDEuM1MzMDUgNDYwLjcgMzk3LjYgNDYwLjdjMTkuMyAwIDM4LjktNS4xIDU4LjYtOS45bDUzLjQgMjkuMy0xNC44LTQ4LjZDNTM0IDQwMi4xIDU2MyAzNjMuMiA1NjMgMzE5LjR6bS0yMTkuMS0yNC41Yy05LjcgMC0xOS4zLTkuNy0xOS4zLTE5LjYgMC05LjcgOS43LTE5LjMgMTkuMy0xOS4zIDE0LjggMCAyNC40IDkuNyAyNC40IDE5LjMgMCAxMC05LjcgMTkuNi0yNC40IDE5LjZ6bTEwNy4xIDBjLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuNSAwIDI0LjQgOS43IDI0LjQgMTkuMy4xIDEwLTkuOSAxOS42LTI0LjQgMTkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hhdHNhcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjkgOTcuMUMzMzkgNTUuMSAyODMuMiAzMiAyMjMuOSAzMmMtMTIyLjQgMC0yMjIgOTkuNi0yMjIgMjIyIDAgMzkuMSAxMC4yIDc3LjMgMjkuNiAxMTFMMCA0ODBsMTE3LjctMzAuOWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2guMWMxMjIuMyAwIDIyNC4xLTk5LjYgMjI0LjEtMjIyIDAtNTkuMy0yNS4yLTExNS02Ny4xLTE1N3ptLTE1NyAzNDEuNmMtMzMuMiAwLTY1LjctOC45LTk0LTI1LjdsLTYuNy00LTY5LjggMTguM0w3MiAzNTkuMmwtNC40LTdjLTE4LjUtMjkuNC0yOC4yLTYzLjMtMjguMi05OC4yIDAtMTAxLjcgODIuOC0xODQuNSAxODQuNi0xODQuNSA0OS4zIDAgOTUuNiAxOS4yIDEzMC40IDU0LjEgMzQuOCAzNC45IDU2LjIgODEuMiA1Ni4xIDEzMC41IDAgMTAxLjgtODQuOSAxODQuNi0xODYuNiAxODQuNnptMTAxLjItMTM4LjJjLTUuNS0yLjgtMzIuOC0xNi4yLTM3LjktMTgtNS4xLTEuOS04LjgtMi44LTEyLjUgMi44LTMuNyA1LjYtMTQuMyAxOC0xNy42IDIxLjgtMy4yIDMuNy02LjUgNC4yLTEyIDEuNC0zMi42LTE2LjMtNTQtMjkuMS03NS41LTY2LTUuNy05LjggNS43LTkuMSAxNi4zLTMwLjMgMS44LTMuNy45LTYuOS0uNS05LjctMS40LTIuOC0xMi41LTMwLjEtMTcuMS00MS4yLTQuNS0xMC44LTkuMS05LjMtMTIuNS05LjUtMy4yLS4yLTYuOS0uMi0xMC42LS4yLTMuNyAwLTkuNyAxLjQtMTQuOCA2LjktNS4xIDUuNi0xOS40IDE5LTE5LjQgNDYuMyAwIDI3LjMgMTkuOSA1My43IDIyLjYgNTcuNCAyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjQgNC42LTEzIDQuNi0yNC4xIDMuMi0yNi40LTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdobWNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxNjF2LTIxLjNsLTI4LjUtOC44LTIuMi0xMC40IDIwLjEtMjAuN0w0MjcgODAuNGwtMjkgNy41LTcuMi03LjUgNy41LTI4LjItMTkuMS0xMS42LTIxLjMgMjEtMTAuNy0zLjItNy0yNi40aC0yMi42bC02LjIgMjYuNC0xMi4xIDMuMi0xOS43LTIxLTE5LjQgMTEgOC4xIDI3LjctOC4xIDguNC0yOC41LTcuNS0xMSAxOS4xIDIwLjcgMjEtMi45IDEwLjQtMjguNSA3LjgtLjMgMjEuNyAyOC44IDcuNSAyLjQgMTIuMS0yMC4xIDE5LjkgMTAuNCAxOC41IDI5LjYtNy41IDcuMiA4LjYtOC4xIDI2LjkgMTkuOSAxMS42IDE5LjQtMjAuNCAxMS42IDIuOSA2LjcgMjguNSAyMi42LjMgNi43LTI4LjggMTEuNi0zLjUgMjAuNyAyMS42IDIwLjQtMTIuMS04LjgtMjggNy44LTguMSAyOC44IDguOCAxMC4zLTIwLjEtMjAuOS0xOC44IDIuMi0xMi4xIDI5LjEtN3ptLTExOS4yIDQ1LjJjLTMxLjMgMC01Ni44LTI1LjQtNTYuOC01Ni44czI1LjQtNTYuOCA1Ni44LTU2LjggNTYuOCAyNS40IDU2LjggNTYuOGMwIDMxLjUtMjUuNCA1Ni44LTU2LjggNTYuOHptNzIuMyAxNi40bDQ2LjkgMTQuNVYyNzdsLTU1LjEgMTMuNC00LjEgMjIuNyAzOC45IDM1LjMtMTkuMiAzNy45LTU0LTE2LjctMTQuNiAxNS4yIDE2LjcgNTIuNS0zOC4zIDIyLjctMzguOS00MC41LTIxLjcgNi42LTEyLjYgNTQtNDIuNC0uNS0xMi42LTUzLjYtMjEuNy01LjYtMzYuNCAzOC40LTM3LjQtMjEuNyAxNS4yLTUwLjUtMTMuNy0xNi4xLTU1LjUgMTQuMS0xOS43LTM0LjggMzcuOS0zNy40LTQuOC0yMi44LTU0LTE0LjEuNS00MC45TDU0IDIxOS45bDUuNy0xOS43LTM4LjktMzkuNEw0MS41IDEyNWw1My42IDE0LjEgMTUuMi0xNS43LTE1LjItNTIgMzYuNC0yMC43IDM2LjggMzkuNEwxOTEgODRsMTEuNi01MkgyNDVsMTEuNiA0NS45TDIzNCA3MmwtNi4zLTEuNy0zLjMgNS43LTExIDE5LjEtMy4zIDUuNiA0LjYgNC42IDE3LjIgMTcuNC0uMyAxLTIzLjggNi41LTYuMiAxLjctLjEgNi40LS4yIDEyLjlDMTUzLjggMTYxLjYgMTE4IDIwNCAxMTggMjU0LjdjMCA1OC4zIDQ3LjMgMTA1LjcgMTA1LjcgMTA1LjcgNTAuNSAwIDkyLjctMzUuNCAxMDMuMi04Mi44bDEzLjIuMiA2LjkuMSAxLjYtNi43IDUuNi0yNCAxLjktLjYgMTcuMSAxNy44IDQuNyA0LjkgNS44LTMuNCAyMC40LTEyLjEgNS44LTMuNS0yLTYuNS02LjgtMjEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2lraXBlZGlhVyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgNTEuMmwtLjMgMTIuMmMtMjguMS44LTQ1IDE1LjgtNTUuOCA0MC4zLTI1IDU3LjgtMTAzLjMgMjQwLTE1NS4zIDM1OC42SDQxNWwtODEuOS0xOTMuMWMtMzIuNSA2My42LTY4LjMgMTMwLTk5LjIgMTkzLjEtLjMuMy0xNSAwLTE1LS4zQzE3MiAzNTIuMyAxMjIuOCAyNDMuNCA3NS44IDEzMy40IDY0LjQgMTA2LjcgMjYuNCA2My40LjIgNjMuN2MwLTMuMS0uMy0xMC0uMy0xNC4yaDE2MS45djEzLjljLTE5LjIgMS4xLTUyLjggMTMuMy00My4zIDM0LjIgMjEuOSA0OS43IDEwMy42IDI0MC4zIDEyNS42IDI4OC42IDE1LTI5LjcgNTcuOC0xMDkuMiA3NS4zLTE0Mi44LTEzLjktMjguMy01OC42LTEzMy45LTcyLjgtMTYwLTkuNy0xNy44LTM2LjEtMTkuNC01NS44LTE5LjdWNDkuOGwxNDIuNS4zdjEzLjFjLTE5LjQuNi0zOC4xIDcuOC0yOS40IDI2LjEgMTguOSA0MCAzMC42IDY4LjEgNDguMSAxMDQuNyA1LjYtMTAuOCAzNC43LTY5LjQgNDguMS0xMDAuOCA4LjktMjAuNi0zLjktMjguNi0zOC42LTI5LjQuMy0zLjYgMC0xMC4zLjMtMTMuNiA0NC40LS4zIDExMS4xLS4zIDEyMy4xLS42djEzLjZjLTIyLjUuOC00NS44IDEyLjgtNTguMSAzMS43bC01OS4yIDEyMi44YzYuNCAxNi4xIDYzLjMgMTQyLjggNjkuMiAxNTYuN0w1NTkuMiA5MS44Yy04LjYtMjMuMS0zNi40LTI4LjEtNDcuMi0yOC4zVjQ5LjZsMTI3LjggMS4xLjIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDkzLjdsMTgzLjYtMjUuM3YxNzcuNEgwVjkzLjd6bTAgMzI0LjZsMTgzLjYgMjUuM1YyNjguNEgwdjE0OS45em0yMDMuOCAyOEw0NDggNDgwVjI2OC40SDIwMy44djE3Ny45em0wLTM4MC42djE4MC4xSDQ0OFYzMkwyMDMuOCA2NS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaXJzaW5kaGFuZHdlcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAuNzcxNjEsNDc5LjgxMjEzaDgzLjM2MDcxVjM2Ny44NDc0MWwtODMuMzYwNzEsNDcuMDA5Wm0zMjkuMDQ2NzUsMGg4Mi4zNTAyMlY0MTQuODU2NDVsLTgyLjM1MDIyLTQ3LjAwOVptLjAwNTY4LTQ0OFYyNTEuNTY4TDI1Ni4xNzU5LDE3OS4xODYxLDEzNC41MDM3OCwyNTEuNTY4VjMxLjgxMjEzSDUwLjc3MTYxVjM5Mi42MDU2NUwyNTYuMTc1OSwyNzAuMzE5MDksNDYyLjE2ODU4LDM5Mi42MDU2NVYzMS44MTIxM1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2l4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5My4zOCAxMzEuNjljMCAxMy4wMyAyLjA4IDMyLjY5LTI4LjY4IDQzLjgzLTkuNTIgMy40NS0xNS45NSA5LjY2LTE1Ljk1IDkuNjYgMC0zMSA0LjcyLTQyLjIyIDE3LjQtNDguODYgOS43NS01LjExIDI3LjIzLTQuNjMgMjcuMjMtNC42M3ptLTExNS44IDM1LjU0bC0zNC4yNCAxMzIuNjYtMjguNDgtMTA4LjU3Yy03LjY5LTMxLjk5LTIwLjgxLTQ4LjUzLTQ4LjQzLTQ4LjUzLTI3LjM3IDAtNDAuNjYgMTYuMTgtNDguNDMgNDguNTNMODkuNTIgMjk5Ljg5IDU1LjI4IDE2Ny4yM0M0OS43MyAxNDAuNTEgMjMuODYgMTI4Ljk2IDAgMTMxLjk2bDY1LjU3IDI0Ny45M3MyMS42MyAxLjU2IDMyLjQ2LTMuOTZjMTQuMjItNy4yNSAyMC45OC0xMi44NCAyOS41OS00Ni41NyA3LjY3LTMwLjA3IDI5LjExLTExOC40MSAzMS4xMi0xMjQuNyA0Ljc2LTE0Ljk0IDExLjA5LTEzLjgxIDE1LjQgMCAxLjk3IDYuMyAyMy40NSA5NC42MyAzMS4xMiAxMjQuNyA4LjYgMzMuNzMgMTUuMzcgMzkuMzIgMjkuNTkgNDYuNTcgMTAuODIgNS41MiAzMi40NiAzLjk2IDMyLjQ2IDMuOTZsNjUuNTctMjQ3LjkzYy0yNC40Mi0zLjA3LTQ5LjgyIDguOTMtNTUuMyAzNS4yN3ptMTE1Ljc4IDUuMjFzLTQuMSA2LjM0LTEzLjQ2IDExLjU3Yy02LjAxIDMuMzYtMTEuNzggNS42NC0xNy45NyA4LjYxLTE1LjE0IDcuMjYtMTMuMTggMTMuOTUtMTMuMTggMzUuMnYxNTIuMDdzMTYuNTUgMi4wOSAyNy4zNy0zLjQzYzEzLjkzLTcuMSAxNy4xMy0xMy45NSAxNy4yNi00NC43OFYxODEuNDFsLS4wMi4wMXYtOC45OHptMTYzLjQ0IDg0LjA4TDY0MCAxMzIuNzhzLTM1LjExLTUuOTgtNTIuNSA5Ljg1Yy0xMy4zIDEyLjEtMjQuNDEgMjkuNTUtNTQuMTggNzIuNDctLjQ3LjczLTYuMjUgMTAuNTQtMTMuMDcgMC0yOS4yOS00Mi4yMy00MC44LTYwLjI5LTU0LjE4LTcyLjQ3LTE3LjM5LTE1LjgzLTUyLjUtOS44NS01Mi41LTkuODVsODMuMiAxMjMuNzQtODIuOTcgMTIzLjM2czM2LjU3IDQuNjIgNTMuOTUtMTEuMjFjMTEuNDktMTAuNDYgMTcuNTgtMjAuMzcgNTIuNTEtNzAuNzIgNi44MS0xMC41MiAxMi41Ny0uNzcgMTMuMDcgMCAyOS40IDQyLjM4IDM5LjIzIDU4LjA2IDUzLjE0IDcwLjcyIDE3LjM5IDE1LjgzIDUzLjMyIDExLjIxIDUzLjMyIDExLjIxTDU1Ni44IDI1Ni41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2l6YXJkc09mVGhlQ29hc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE5LjE5IDM0NS42OWMtMS45IDEuMzgtMTEuMDcgOC40NC0uMjYgMjMuNTcgNC42NCA2LjQyIDE0LjExIDEyLjc5IDIxLjczIDYuNTUgNi41LTQuODggNy4zNS0xMi45Mi4yNi0yMy4wNC01LjQ3LTcuNzYtMTQuMjgtMTIuODgtMjEuNzMtNy4wOHptMzM2Ljc1IDc1Ljk0Yy0uMzQgMS43LS41NSAxLjY3Ljc5IDAgMi4wOS00LjE5IDQuMTktMTAuMjEgNC45OC0xOS45IDMuMTQtMzguNDktNDAuMzMtNzEuNDktMTAxLjM0LTc4LjAzLTU0LjczLTYuMDItMTI0LjM4IDkuMTctMTg4LjggNjAuNDlsLS4yNiAxLjU3YzIuNjIgNC45OCA0Ljk4IDEwLjc0IDMuNCAyMS4yMWwuNzkuMjZjNjMuODktNTguNCAxMzEuMTktNzcuMjUgMTg0LjM1LTczLjg1IDU4LjQgMy42NyAxMDAuMDMgMzQuMDQgMTAwLjAzIDY4LjA4LS4wMSA5Ljk2LTIuNjMgMTUuNzItMy45NCAyMC4xN3pNMzkyLjI4IDI0MC40MmMuNzkgNy4wNyA0LjE5IDEwLjIxIDkuMTcgMTAuNDcgNS41LjI2IDkuNDMtMi42MiAxMC40Ny02LjU1Ljc5LTMuNCAyLjA5LTI5Ljg1IDIuMDktMjkuODVzLTExLjI2IDYuNTUtMTQuOTMgMTAuNDdjLTMuNjYgMy42OC03LjMzIDguMzktNi44IDE1LjQ2em0tNTAuMDItMTUxLjFDMTM3Ljc1IDg5LjMyIDEzLjEgMjI2LjguNzkgMjQxLjJjLTEuMDUuNTItMS4zMS43OS43OSAxLjMxIDYwLjQ5IDE2LjUgMTU1LjgxIDgxLjE4IDE5Ni4xMyAyMDIuMTZsMS4wNS4yNmM1NS4yNS02OS45MiAxNDAuODgtMTI4LjA1IDIzNi45OS0xMjguMDUgODAuOTIgMCAxMzAuMTUgNDIuMTYgMTMwLjE1IDgwLjM5IDAgMTguMzMtNi41NSAzMy41Mi0yMi4yNiA0Ni4zNSAwIC45Ni0uMi43OS43OS43OSAxNC42Ni0xMC43NCAyNy41LTI4LjggMjcuNS00OC4xOCAwLTIyLjc4LTEyLjA1LTM4LjIzLTEyLjA1LTM4LjIzIDcuMDcgNy4wNyAxMC43NCAxNi4yNCAxMC43NCAxNi4yNCA1Ljc2LTQwLjg1IDI2Ljk3LTYyLjMyIDI2Ljk3LTYyLjMyLTIuMzYtOS42OS02LjgxLTE3LjgxLTYuODEtMTcuODEgNy41OSA4LjEyIDE0LjQgMjcuNSAxNC40IDQxLjM3IDAgMTAuNDctMy40IDIyLjc4LTEyLjU3IDMxLjk1bC4yNi41MmM4LjEyLTQuOTggMTYuNS0xNi43NiAxNi41LTM3Ljk3IDAtMTUuNzEtNC43MS0yNS45Mi00LjcxLTI1LjkyIDUuNzYtNS4yNCAxMS4yNi05LjE3IDE1Ljk3LTExLjc4Ljc5IDMuNCAyLjA5IDkuNjkgMi4zNiAxNC45MyAwIDEuMDUuNzkgMS44MyAxLjA1IDAgLjc5LTUuNzYtLjI2LTE2LjI0LS4yNi0xNi41IDYuMDItMy4xNCA5LjY5LTQuNDUgOS42OS00LjQ1QzYxNy43NCAxNzYgNDg5LjQzIDg5LjMyIDM0Mi4yNiA4OS4zMnptLTk5LjI0IDI4OS42MmMtMTEuMDYgOC45OS0yNC4yIDQuMDgtMzAuNjQtNC4xOS03LjQ1LTkuNTgtNi43Ni0yNC4wOSA0LjE5LTMyLjQ3IDE0Ljg1LTExLjM1IDI3LjA4LS40OSAzMS4xNiA1LjUuMjguMzkgMTIuMTMgMTYuNTctNC43MSAzMS4xNnptMi4wOS0xMzYuNDNsOS40My0xNy44MSAxMS43OCA3MC45Ni0xMi41NyA2LjAyLTI0LjYyLTI4LjggMTQuMTQtMjYuNzEgMy42NyA0LjQ1LTEuODMtOC4xMXptMTguNTkgMTE3LjU4bC0uMjYtLjI2YzIuMDUtNC4xLTIuNS02LjYxLTE3LjU0LTMxLjY5LTEuMzEtMi4zNi0zLjE0LTIuODgtNC40NS0yLjYybC0uMjYtLjUyYzcuODYtNS43NiAxNS40NS0xMC4yMSAyNS40LTE1LjcxbC41Mi4yNmMxLjMxIDEuODMgMi4wOSAyLjg4IDMuNCA0LjcxbC0uMjYuNTJjLTEuMDUtLjI2LTIuMzYtLjc5LTUuMjQuMjYtMi4wOS43OS03Ljg2IDMuNjctMTIuMzEgNy41OXYxLjMxYzEuNTcgMi4zNiAzLjkzIDYuNTUgNS43NiA5LjY5aC4yNmMxMC4wNS02LjI4IDcuNTYtNC41NSAxMS41Mi03Ljg2aC4yNmMuNTIgMS44My41MiAxLjgzIDEuODMgNS41bC0uMjYuMjZjLTMuMDYuNjEtNC42NS4zNC0xMS41MiA1LjV2LjI2YzkuNDYgMTcuMDIgMTEuMDEgMTYuNzUgMTIuNTcgMTUuOTdsLjI2LjI2Yy0yLjM0IDEuNTktNi4yNyA0LjIxLTkuNjggNi41N3ptNTUuMjYtMzIuNDdjLTMuMTQgMS41Ny02LjAyIDIuODgtOS45NSA0Ljk4bC0uMjYtLjI2YzEuMjktMi41OSAxLjE2LTIuNzEtMTEuNzgtMzIuNDdsLS4yNi0uMjZjLS4xNSAwLTguOSAzLjY1LTkuOTUgNy4zM2gtLjUybC0xLjA1LTUuNzYuMjYtLjUyYzcuMjktNC41NiAyNS41My0xMS42NCAyNy43Ni0xMi41N2wuNTIuMjYgMy4xNCA0Ljk4LS4yNi41MmMtMy41My0xLjc2LTcuMzUuNzYtMTIuMzEgMi42MnYuMjZjMTIuMzEgMzIuMDEgMTIuNjcgMzAuNjQgMTQuNjYgMzAuNjR2LjI1em00NC43Ny0xNi41Yy00LjE5IDEuMDUtNS4yNCAxLjMxLTkuNjkgMi44OGwtLjI2LS4yNi41Mi00LjQ1Yy0xLjA1LTMuNC0zLjE0LTExLjUyLTMuNjctMTMuNjJsLS4yNi0uMjZjLTMuNC43OS04LjkgMi42Mi0xMi44MyAzLjkzbC0uMjYuMjZjLjc5IDIuNjIgMy4xNCA5Ljk1IDQuMTkgMTMuODguNzkgMi4zNiAxLjgzIDIuODggMi44OCAzLjE0di41MmMtMy42NyAxLjA1LTcuMDcgMi42Mi0xMC4yMSAzLjkzbC0uMjYtLjI2YzEuMDUtMS4zMSAxLjA1LTIuODguMjYtNC45OC0xLjA1LTMuMTQtOC4xMi0yMy44My05LjE3LTI3LjIzLS41Mi0xLjgzLTEuNTctMy4xNC0yLjYyLTMuMTR2LS41MmMzLjE0LTEuMDUgNi4wMi0yLjA5IDEwLjc0LTMuNGwuMjYuMjYtLjI2IDQuNzFjMS4zMSAzLjkzIDIuMzYgNy41OSAzLjE0IDkuNjloLjI2YzMuOTMtMS4zMSA5LjQzLTIuODggMTIuODMtMy45M2wuMjYtLjI2LTIuNjItOS40M2MtLjUyLTEuODMtMS4wNS0zLjQtMi42Mi0zLjkzdi0uMjZjNC40NS0xLjA1IDcuMzMtMS44MyAxMC43NC0yLjM2bC4yNi4yNmMtMS4wNSAxLjMxLTEuMDUgMi44OC0uNTIgNC40NSAxLjU3IDYuMjggNC43MSAyMC40MyA2LjI4IDI2LjQ1LjU0IDIuNjIgMS44NSAzLjQxIDIuNjMgMy45M3ptMzIuMjEtNi44MWwtLjI2LjI2Yy00LjcxLjUyLTE0LjE0IDIuMzYtMjIuNTIgNC4xOWwtLjI2LS4yNi43OS00LjE5Yy0xLjU3LTcuODYtMy40LTE4LjU5LTQuOTgtMjYuMTktLjI2LTEuODMtLjc5LTIuODgtMi42Mi0zLjY3bC43OS0uNTJjOS4xNy0xLjU3IDIwLjE2LTIuMzYgMjQuODgtMi42MmwuMjYuMjZjLjUyIDIuMzYuNzkgMy4xNCAxLjU3IDUuNWwtLjI2LjI2Yy0xLjE0LTEuMTQtMy4zNC0zLjItMTYuMjQtLjc5bC0uMjYuMjZjLjI2IDEuNTcgMS4wNSA2LjU1IDEuNTcgOS45NWwuMjYuMjZjOS41Mi0xLjY4IDQuNzYtLjA2IDEwLjc0LTIuMzZoLjI2YzAgMS41Ny0uMjYgMS44My0uMjYgNS4yNGgtLjI2Yy00LjgxLTEuMDMtMi4xNS0uOS0xMC4yMSAwbC0uMjYuMjZjLjI2IDIuMDkgMS41NyA5LjQzIDIuMDkgMTIuNTdsLjI2LjI2YzEuMTUuMzggMTQuMjEtLjY1IDE2LjI0LTQuNzFoLjI2Yy0uNTMgMi4zOC0xLjA1IDQuMjEtMS41OCA2LjA0em0xMC43NC00NC41MWMtNC40NSAyLjM2LTguMTIgMi44OC0xMSAyLjg4LS4yNS4wMi0xMS40MSAxLjA5LTE3LjU0LTkuOTUtNi43NC0xMC43OS0uOTgtMjUuMiA1LjUtMzEuNjkgOC44LTguMTIgMjMuMzUtMTAuMSAyOC41NC0xNy4wMiA4LjAzLTEwLjMzLTEzLjA0LTIyLjMxLTI5LjU5LTUuNzZsLTIuNjItMi44OCA1LjI0LTE2LjI0YzI1LjU5LTEuNTcgNDUuMi0zLjA0IDUwLjAyIDE2LjI0Ljc5IDMuMTQgMCA5LjQzLS4yNiAxMi4wNSAwIDIuNjItMS44MyAxOC44NS0yLjA5IDIzLjA0LS41MiA0LjE5LS43OSAxOC4zMy0uNzkgMjAuNjkuMjYgMi4zNi41MiA0LjE5IDEuNTcgNS41IDEuNTcgMS44MyA1Ljc2IDEuODMgNS43NiAxLjgzbC0uNzkgNC43MWMtMTEuODItMS4wNy0xMC4yOC0uNTktMjAuNDMtMS4wNS0zLjIyLTUuMTUtMi4yMy0zLjI4LTQuMTktNy44NiAwIC4wMS00LjE5IDMuOTQtNy4zMyA1LjUxem0zNy4xOCAyMS4yMWMtNi4zNS0xMC41OC0xOS44Mi03LjE2LTIxLjczIDUuNS0yLjYzIDE3LjA4IDE0LjMgMTkuNzkgMjAuNjkgMTAuMjFsLjI2LjI2Yy0uNTIgMS44My0xLjgzIDYuMDItMS44MyA2LjI4bC0uNTIuNTJjLTEwLjMgNi44Ny0yOC41LTIuNS0yNS42Ni0xOC41OSAxLjk0LTEwLjg3IDE0LjQ0LTE4LjkzIDI4LjgtOS45NWwuMjYuNTJjMCAxLjA2LS4yNyAzLjQxLS4yNyA1LjI1em01Ljc3LTg3Ljczdi02LjU1Yy42OSAwIDE5LjY1IDMuMjggMjcuNzYgNy4zM2wtMS41NyAxNy41NHMxMC4yMS05LjQzIDE1LjQ1LTEwLjc0YzUuMjQtMS41NyAxNC45MyA3LjMzIDE0LjkzIDcuMzNsLTExLjI2IDExLjI2Yy0xMi4wNy02LjM1LTE5LjU5LS4wOC0yMC42OS43OS01LjI5IDM4LjcyLTguNiA0Mi4xNyA0LjQ1IDQ2LjA5bC0uNTIgNC43MWMtMTcuNTUtNC4yOS0xOC41My00LjUtMzYuOTItNy4zM2wuNzktNC43MWM3LjI1IDAgNy40OC01LjMyIDcuNTktNi44MSAwIDAgNC45OC01My4xNiA0Ljk4LTU1LjI1LS4wMi0yLjg3LTQuOTktMy42Ni00Ljk5LTMuNjZ6bTEwLjk5IDExNC40NGMtOC4xMi0yLjA5LTE0LjE0LTExLTEwLjc0LTIwLjY5IDMuMTQtOS40MyAxMi4zMS0xMi4zMSAxOC44NS0xMC4yMSA5LjE3IDIuNjIgMTIuODMgMTEuNzggMTAuNzQgMTkuMzgtMi42MSA4LjktOS40MiAxMy44Ny0xOC44NSAxMS41MnptNDIuMTYgOS42OWMtMi4zNi0uNTItNy4wNy0yLjM2LTguNjQtMi44OHYtLjI2bDEuNTctMS44M2MuNTktOC4yNC41OS03LjI3LjI2LTcuNTktNC44Mi0xLjgxLTYuNjYtMi4zNi03LjA3LTIuMzYtMS4zMSAxLjgzLTIuODggNC40NS0zLjY3IDUuNWwtLjc5IDMuNHYuMjZjLTEuMzEtLjI2LTMuOTMtMS4zMS02LjAyLTEuNTd2LS4yNmwyLjYyLTEuODNjMy40LTQuNzEgOS45NS0xNC4xNCAxMy44OC0yMC4xNnYtMi4wOWwuNTItLjI2YzIuMDkuNzkgNS41IDIuMDkgNy41OSAyLjg4LjQ4LjQ4LjE4LTEuODctMS4wNSAyNS4xNC0uMjQgMS44MS4wMiAyLjYuOCAzLjkxem0tNC43MS04OS44MmMxMS4yNS0xOC4yNyAzMC43Ni0xNi4xOSAzNC4wNC0zLjRMNTM5LjcgMTk4YzIuMzQtNi4yNS0yLjgyLTkuOS00LjQ1LTExLjI2bDEuODMtMy42N2MxMi4yMiAxMC4zNyAxNi4zOCAxMy45NyAyMi41MiAyMC40My0yNS45MSA3My4wNy0zMC43NiA4MC44MS0yNC42MiA4NC4zMmwtMS44MyA0LjQ1Yy02LjM3LTMuMzUtOC45LTQuNDItMTcuODEtOC42NGwyLjA5LTYuODFjLS4yNi0uMjYtMy45MyAzLjkzLTkuNjkgMy42Ny0xOS4wNi0xLjMtMjIuODktMzEuNzUtOS42Ny01Mi45em0yOS4zMyA3OS4zNGMwLTUuNzEtNi4zNC03Ljg5LTcuODYtNS4yNC0xLjMxIDIuMDkgMS4wNSA0Ljk4IDIuODggOC4zOCAxLjU3IDIuNjIgMi42MiA2LjI4IDEuMDUgOS40My0yLjY0IDYuMzQtMTIuNCA1LjMxLTE1LjQ1LS43OSAwLS43LS4yNy4wOSAxLjgzLTQuNzFsLjc5LS4yNmMtLjU3IDUuNjYgNi4wNiA5LjYxIDguMzggNC45OCAxLjA1LTIuMDktLjUyLTUuNS0yLjA5LTguMzgtMS41Ny0yLjYyLTMuNjctNi4yOC0xLjgzLTkuNjkgMi43Mi01LjA2IDExLjI1LTQuNDcgMTQuNjYgMi4zNnYuNTJsLTIuMzYgMy40em0yMS4yMSAxMy4zNmMtMS45Ni0zLjI3LS45MS0yLjE0LTQuNDUtNC43MWgtLjI2Yy0yLjM2IDQuMTktNS43NiAxMC40Ny04LjY0IDE2LjI0LTEuMzEgMi4zNi0xLjA1IDMuNC0uNzkgMy45M2wtLjI2LjI2LTUuNzYtNC40NS4yNi0uMjYgMi4wOS0xLjMxYzMuMTQtNS43NiA2LjU1LTEyLjA1IDkuMTctMTcuMDJ2LS4yNmMtMi42NC0xLjk4LTEuMjItMS41MS02LjAyLTEuODN2LS4yNmwzLjE0LTMuNGguMjZjMy42NyAyLjM2IDkuOTUgNi44MSAxMi4zMSA4LjlsLjI2LjI2LTEuMzEgMy45MXptMjcuMjMtNDQuMjZsLTIuODgtMi44OGMuNzktMi4zNiAxLjgzLTQuOTggMi4wOS03LjU5Ljc1LTkuNzQtMTEuNTItMTEuODQtMTEuNTItNC45OCAwIDQuOTggNy44NiAxOS4zOCA3Ljg2IDI3Ljc2IDAgMTAuMjEtNS43NiAxNS43MS0xMy44OCAxNi41LTguMzguNzktMjAuMTYtMTAuNDctMjAuMTYtMTAuNDdsNC45OC0xNC40IDIuODggMi4wOWMtMi45NyAxNy44IDE3LjY4IDIwLjM3IDEzLjM1IDUuMjQtMS4wNi00LjAyLTE4Ljc1LTM0LjIgMi4wOS0zOC4yMyAxMy42Mi0yLjM2IDIzLjA0IDE2LjUgMjMuMDQgMTYuNWwtNy44NSAxMC40NnptMzUuNjItMTAuMjFjLTExLTMwLjM4LTYwLjQ5LTEyNy41My0xOTEuOTUtMTI5LjYyLTUzLjQyLTEuMDUtOTQuMjcgMTUuNDUtMTMyLjc2IDM3Ljk3bDg1LjYzLTkuMTctOTEuMzkgMjAuNjkgMjUuMTQgMTkuNjQtMy45My0xNi41YzcuNS0xLjcxIDM5LjE1LTguNDUgNjYuNzctOC45bC0yMi4yNiA4MC4zOWMxMy42MS0uNyAxOC45Ny04Ljk4IDE5LjY0LTIyLjc4bDQuOTgtMS4wNS4yNiAyNi43MWMtMjIuNDYgMy4yMS0zNy4zIDYuNjktNDkuNDkgOS45NWwxMy4wOS00My4yMS02MS41NC0zNi42NiAyLjM2IDguMTIgMTAuMjEgNC45OGM2LjI4IDE4LjU5IDE5LjM4IDU2LjU2IDIwLjQzIDU4LjY2IDEuOTUgNC4yOCAzLjE2IDUuNzggMTIuMDUgNC40NWwxLjA1IDQuOThjLTE2LjA4IDQuODYtMjMuNjYgNy42MS0zOS4wMiAxNC40bC0yLjM2LTQuNzFjNC40LTIuOTQgOC43My0zLjk0IDUuNS0xMi44My0yMy43LTYyLjUtMjEuNDgtNTguMTQtMjIuNzgtNTkuNDRsMi4zNi00LjQ1IDMzLjUyIDY3LjNjLTMuODQtMTEuODcgMS42OCAxLjY5LTMyLjk5LTc4LjgybC00MS45IDg4LjUxIDQuNzEtMTMuODgtMzUuODgtNDIuMTYgMjcuNzYgOTMuNDgtMTEuNzggOC4zOEM5NSAyMjguNTggMTAxLjA1IDIzMS44NyA5My4yMyAyMzEuNTJjLTUuNS0uMjYtMTMuNjIgNS41LTEzLjYyIDUuNUw3NC42MyAyMzFjMzAuNTYtMjMuNTMgMzEuNjItMjQuMzMgNTguNC00Mi42OGw0LjE5IDcuMDdzLTUuNzYgNC4xOS03Ljg2IDcuMDdjLTUuOSA5LjI4IDEuNjcgMTMuMjggNjEuOCA3NS42OGwtMTguODUtNTguOTIgMzkuOC0xMC4yMSAyNS42NiAzMC42NCA0LjQ1LTEyLjMxLTQuOTgtMjQuNjIgMTMuMDktMy40LjUyIDMuMTQgMy42Ny0xMC40Ny05NC4yNyAyOS4zMyAxMS4yNi00Ljk4LTEzLjYyLTQyLjQyIDE3LjI4LTkuMTcgMzAuMTEgMzYuMTQgMjguNTQtMTMuMDljLTEuNDEtNy40Ny0yLjQ3LTE0LjUtNC43MS0xOS42NGwxNy4yOCAxMy44OCA0LjcxLTIuMDktNTkuMTgtNDIuNjggMjMuMDggMTEuNWMxOC45OC02LjA3IDI1LjIzLTcuNDcgMzIuMjEtOS42OWwyLjYyIDExYy0xMi41NSAxMi41NSAxLjQzIDE2LjgyIDYuNTUgMTkuMzhsLTEzLjYyLTYxLjAxIDEyLjA1IDI4LjI4YzQuMTktMS4zMSA3LjMzLTIuMDkgNy4zMy0yLjA5bDIuNjIgOC42NHMtMy4xNCAxLjA1LTYuMjggMi4wOWw4LjkgMjAuOTUgMzMuNzgtNjUuNzMtMjAuNjkgNjEuMDFjNDIuNDItMjQuMDkgODEuNDQtMzYuNjYgMTMxLjk4LTM1Ljg4IDY3LjA0IDEuMDUgMTY3LjMzIDQwLjg1IDE5OS44IDEzOS44My43OCAyLjEtLjAxIDIuNjMtLjc5LjI3ek0yMDMuNDggMTUyLjQzczEuODMtLjUyIDQuMTktMS4zMWw5LjQzIDcuNTljLS40IDAtMy40NC0uMjUtMTEuMjYgMi4zNmwtMi4zNi04LjY0em0xNDMuNzYgMzguNWMtMS41Ny0uNi0yNi40Ni00LjgxLTMzLjI2IDIwLjY5bDIxLjczIDE3LjAyIDExLjUzLTM3Ljcxek0zMTguNDMgNjcuMDdjLTU4LjQgMC0xMDYuMDUgMTIuMDUtMTE0Ljk2IDE0LjR2Ljc5YzguMzggMi4wOSAxNC40IDQuMTkgMjEuMjEgMTEuNzhsMS41Ny4yNmM2LjU1LTEuODMgNDguOTctMTMuODggMTEwLjI0LTEzLjg4IDE4MC4xNiAwIDMwMS42NyAxMTYuNzkgMzAxLjY3IDIyMy4zN3Y5Ljk1YzAgMS4zMS43OSAyLjYyIDEuMDUuNTIuNTItMi4wOS43OS04LjY0Ljc5LTE5LjY0LjI2LTgzLjc5LTk2LjYzLTIyNy41NS0zMjEuNTctMjI3LjU1em0yMTEuMDYgMTY5LjY4YzEuMzEtNS43NiAwLTEyLjMxLTcuMzMtMTMuMDktOS42Mi0xLjEzLTE2LjE0IDIzLjc5LTE3LjAyIDMzLjUyLS43OSA1LjUtMS4zMSAxNC45MyA2LjAyIDE0LjkzIDQuNjgtLjAxIDkuNzItLjkxIDE4LjMzLTM1LjM2em0tNjEuNTMgNDIuOTVjLTIuNjItLjc5LTkuNDMtLjc5LTEyLjU3IDEwLjQ3LTEuODMgNi44MS41MiAxMy4zNSA2LjAyIDE0LjY2IDMuNjcgMS4wNSA4LjkuNTIgMTEuNzgtMTAuNzQgMi42Mi05Ljk0LTEuODMtMTMuNjEtNS4yMy0xNC4zOXpNNDkxIDMwMC42NWMxLjgzLjUyIDMuMTQgMS4wNSA1Ljc2IDEuODMgMC0xLjgzLjUyLTguMzguNzktMTIuMDUtMS4wNSAxLjMxLTUuNSA4LjEyLTYuNTUgOS45NXYuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvZHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc4LjQxNCAzMzkuNzA2SDE0MS4xTDExMi4xNjYgMjIzLjQ3NWgtLjQ3OEw4My4yMjggMzM5LjcwNkg0NS4yTDAgMTY4Ljk0NkgzNy41NDhMNjQuNTc0IDI4NS4xNzdoLjQ3OEw5NC43MDcgMTY4Ljk0NmgzNS4xNTdsMjkuMTc4IDExNy42NjdoLjQ3OUwxODcuNSAxNjguOTQ2aDM2LjgzMXpNMjcxLjQgMjEyLjcxM2MzOC45ODQgMCA2NC4xIDI1LjgyOCA2NC4xIDY1LjI5MSAwIDM5LjIyMi0yNS4xMTEgNjUuMDUtNjQuMSA2NS4wNS0zOC43NDMgMC02My44NTUtMjUuODI4LTYzLjg1NS02NS4wNUMyMDcuNTQ3IDIzOC41NDEgMjMyLjY1OSAyMTIuNzEzIDI3MS40IDIxMi43MTN6bTAgMTA0Ljc1M2MyMy4yIDAgMzAuMTMzLTE5Ljg1MiAzMC4xMzMtMzkuNDYyIDAtMTkuODUyLTYuOTM0LTM5LjctMzAuMTMzLTM5LjctMjcuNyAwLTI5Ljg5NCAxOS44NS0yOS44OTQgMzkuN0MyNDEuNTA4IDI5Ny42MTQgMjQ4LjQ0MyAzMTcuNDY2IDI3MS40IDMxNy40NjZ6TTQzNS4wODQgMzIzLjkyMmgtLjQ3OGMtNy44OTMgMTMuMzkyLTIxLjc2NSAxOS4xMzItMzcuNTQ4IDE5LjEzMi0zNy4zMSAwLTU1LjQ4NS0zMi4wNDUtNTUuNDg1LTY2LjI0NiAwLTMzLjI0MyAxOC40MTUtNjQuMDk1IDU0Ljc2Ny02NC4wOTUgMTQuNTg5IDAgMjguOTM4IDYuMjE4IDM2LjgzMSAxOC40MTZoLjI0VjE2OC45NDZoMzMuOTZ2MTcwLjc2SDQzNS4wODR6TTQwNS40MjggMjM4LjNjLTIyLjI0IDAtMjkuODk0IDE5LjEzNC0yOS44OTQgMzkuNDYzIDAgMTkuMzcxIDguODQ4IDM5LjcgMjkuODk0IDM5LjcgMjIuNDgyIDAgMjkuMTc4LTE5LjYxMyAyOS4xNzgtMzkuOTRDNDM0LjYwNiAyNTcuNDM2IDQyNy40MzIgMjM4LjMgNDA1LjQyOCAyMzguM3pNNTkyLjk2IDMzOS43MDZINTYwLjY3M1YzMjIuNDg3aC0uNzE4Yy04LjYwOSAxMy44Ny0yMy40MzYgMjAuNTY3LTM3Ljc4NiAyMC41NjctMzYuMTEzIDAtNDUuMi0yMC4zMjgtNDUuMi01MC45NDFWMjE2LjA2MWgzMy45NTlWMjg1LjljMCAyMC4zMjkgNS45NzkgMzAuMzcyIDIxLjc2NSAzMC4zNzIgMTguNDE1IDAgMjYuMzA2LTEwLjI4MyAyNi4zMDYtMzUuMzkzVjIxNi4wNjFINTkyLjk2ek02MDIuNDUzIDMwMi44NzZINjQwdjM2LjgzSDYwMi40NTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvbGZQYWNrQmF0dGFsaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2Ny43MyA0NzEuNTNsMTAuNTYgMTUuODQgNS4yOC0xMi4zMiA1LjI4IDdWNTEyYzIxLjA2LTcuOTIgMjEuMTEtNjYuODYgMjUuNTEtOTcuMjEgNC42Mi0zMS44OS0uODgtOTIuODEgODEuMzctMTQ5LjExLTguODgtMjMuNjEtMTItNDkuNDMtMi42NC04MC4wNUM0MjEgMTg5IDQ0NyAxOTYuMjEgNDU2LjQzIDIzOS43M2wtMzAuMzUgOC4zNmMxMS4xNSAyMyAxNyA0Ni43NiAxMy4yIDcyLjE0TDQxMiAzMTMuMThsLTYuMTYgMzMuNDMtMTguNDctNy04LjggMzMuMzktMTkuMzUtNyAyNi4zOSAyMS4xMSA4LjgtMjguMTVMNDE5IDM2NC4ybDctMzUuNjMgMjYuMzkgMTQuNTJjLjI1LTIwIDctNTguMDYtOC44LTg0LjQ1bDI2LjM5IDUuMjhjNC0yMi4wNy0yLjM4LTM5LjIxLTcuOTItNTYuNzRsMjIuNDMgOS42OGMtLjQ0LTI1LjA3LTI5Ljk0LTU2Ljc5LTYxLjU4LTU4LjUtMjAuMjItMS4wOS01Ni43NC0yNS4xNy01NC4xLTUxLjkgMi0xOS44NyAxNy40NS00Mi42MiA0My4xMS00OS43LTQ0IDM2LjUxLTkuNjggNjcuMyA1LjI4IDczLjQ2IDQuNC0xMS40NCAxNy41NC02OS4wOCAwLTEzMC4yLTQwLjM5IDIyLjg3LTg5LjY1IDY1LjEtOTMuMiAxNDcuNzlsLTU4IDM4LjcxLTMuNTIgOTMuMjVMMzY5Ljc4IDIyMGw3IDctMTcuNTkgMy41Mi00NCAzOC43MS0xNS44NC01LjI4LTI4LjEgNDkuMjUtMy41MiAxMTkuNjQgMjEuMTEgMTUuODQtMzIuNTUgMTUuODQtMzIuNTUtMTUuODQgMjEuMTEtMTUuODQtMy41Mi0xMTkuNjQtMjguMTUtNDkuMjYtMTUuODQgNS4yOC00NC0zOC43MS0xNy41OC0zLjUxIDctNyAxMDcuMzMgNTkuODItMy41Mi05My4yNS01OC4wNi0zOC43MUMxODUgNjUuMSAxMzUuNzcgMjIuODcgOTUuMyAwYy0xNy41NCA2MS4xMi00LjQgMTE4Ljc2IDAgMTMwLjIgMTUtNi4xNiA0OS4yNi0zNi45NSA1LjI4LTczLjQ2IDI1LjY2IDcuMDggNDEuMTUgMjkuODMgNDMuMTEgNDkuNyAyLjYzIDI2Ljc0LTMzLjg4IDUwLjgxLTU0LjEgNTEuOS0zMS42NSAxLjcyLTYxLjE1IDMzLjQ0LTYxLjU5IDU4LjUxbDIyLjQzLTkuNjhjLTUuNTQgMTcuNTMtMTEuOTEgMzQuNjctNy45MiA1Ni43NGwyNi4zOS01LjI4Yy0xNS43NiAyNi4zOS05LjA1IDY0LjQzLTguOCA4NC40NWwyNi4zOS0xNC41MiA3IDM1LjYzIDI0LjYzLTUuMjggOC44IDI4LjE1TDE1My4zNSAzNjYgMTM0IDM3M2wtOC44LTMzLjQzLTE4LjQ3IDctNi4xNi0zMy40My0yNy4yNyA3Yy0zLjgyLTI1LjM4IDItNDkuMSAxMy4yLTcyLjE0bC0zMC4zNS04LjM2YzkuNC00My41MiAzNS40Ny01MC43NyA2My4zNC01NC4xIDkuMzYgMzAuNjIgNi4yNCA1Ni40NS0yLjY0IDgwLjA1IDgyLjI1IDU2LjMgNzYuNzUgMTE3LjIzIDgxLjM3IDE0OS4xMSA0LjQgMzAuMzUgNC40NSA4OS4yOSAyNS41MSA5Ny4yMXYtMjkuODNsNS4yOC03IDUuMjggMTIuMzIgMTAuNTYtMTUuODQgMTEuNDQgMjEuMTEgMTEuNDMtMjEuMXptNzkuMTctOTVMMzMxLjA2IDM2NmM3LjQ3LTQuMzYgMTMuNzYtOC40MiAxOS4zNS0xMi4zMi0uNiA3LjIyLS4yNyAxMy44NC0zLjUxIDIyLjg0em0yOC4xNS00OS4yNmMtLjQgMTAuOTQtLjkgMjEuNjYtMS43NiAzMS42Ny03Ljg1LTEuODYtMTUuNTctMy44LTIxLjExLTcgOC4yNC03Ljk0IDE1LjU1LTE2LjMyIDIyLjg3LTI0LjY4em0yNC42MyA1LjI4YzAtMTMuNDMtMi4wNS0yNC4yMS01LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDEtMTguNDcgMjcuMjd6bTMuNTItODAuOTRjMTkuNDQgMTIuODEgMjcuOCAzMy42NiAyOS45MSA1Ni4zLTEyLjMyLTQuNTMtMjQuNjMtOS4zMS0zNi45NS0xMC41NiA1LjA2LTEyIDYuNjUtMjguMTQgNy00NS43NHptLTEuNzYtNDUuNzRjLjgxIDE0LjMgMS44NCAyOC44MiAxLjc2IDQyLjIzIDE5LjIyLTguMTEgMjkuNzgtOS43MiA0NC0xNC4wOC0xMC42MS0xOC45Ni0yNy4yLTI1LjUzLTQ1Ljc2LTI4LjE2ek0xNjUuNjggMzc2LjUyTDE4MS41MiAzNjZjLTcuNDctNC4zNi0xMy43Ni04LjQyLTE5LjM1LTEyLjMyLjYgNy4yNi4yNyAxMy44OCAzLjUxIDIyLjg4em0tMjguMTUtNDkuMjZjLjQgMTAuOTQuOSAyMS42NiAxLjc2IDMxLjY3IDcuODUtMS44NiAxNS41Ny0zLjggMjEuMTEtNy04LjI0LTcuOTMtMTUuNTUtMTYuMzEtMjIuODctMjQuNjd6bS0yNC42NCA1LjI4YzAtMTMuNDMgMi0yNC4yMSA1LjI4LTMzLjQzYTIzNSAyMzUgMCAwIDAgMTguNDcgMjcuMjd6bS0zLjUyLTgwLjk0Yy0xOS40NCAxMi44MS0yNy44IDMzLjY2LTI5LjkxIDU2LjMgMTIuMzItNC41MyAyNC42My05LjMxIDM3LTEwLjU2LTUtMTItNi42NS0yOC4xNC03LTQ1Ljc0em0xLjc2LTQ1Ljc0Yy0uODEgMTQuMy0xLjg0IDI4LjgyLTEuNzYgNDIuMjMtMTkuMjItOC4xMS0yOS43OC05LjcyLTQ0LTE0LjA4IDEwLjYzLTE4Ljk1IDI3LjIzLTI1LjUyIDQ1Ljc2LTI4LjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb3JkcHJlc3NTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjMgOCA4IDExOS4yIDggMjU2YzAgMTM2LjcgMTExLjMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4zIDI0OC0yNDhDNTA0IDExOS4yIDM5Mi43IDggMjU2IDh6TTMzIDI1NmMwLTMyLjMgNi45LTYzIDE5LjMtOTAuN2wxMDYuNCAyOTEuNEM4NC4zIDQyMC41IDMzIDM0NC4yIDMzIDI1NnptMjIzIDIyM2MtMjEuOSAwLTQzLTMuMi02My05LjFsNjYuOS0xOTQuNCA2OC41IDE4Ny44Yy41IDEuMSAxIDIuMSAxLjYgMy4xLTIzLjEgOC4xLTQ4IDEyLjYtNzQgMTIuNnptMzAuNy0zMjcuNWMxMy40LS43IDI1LjUtMi4xIDI1LjUtMi4xIDEyLTEuNCAxMC42LTE5LjEtMS40LTE4LjQgMCAwLTM2LjEgMi44LTU5LjQgMi44LTIxLjkgMC01OC43LTIuOC01OC43LTIuOC0xMi0uNy0xMy40IDE3LjctMS40IDE4LjQgMCAwIDExLjQgMS40IDIzLjQgMi4xbDM0LjcgOTUuMkwyMDAuNiAzOTNsLTgxLjItMjQxLjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC00LjIgMC05LjEtLjEtMTQuNC0uM0MxMDkuNiA3MyAxNzguMSAzMyAyNTYgMzNjNTggMCAxMTAuOSAyMi4yIDE1MC42IDU4LjUtMS0uMS0xLjktLjItMi45LS4yLTIxLjkgMC0zNy40IDE5LjEtMzcuNCAzOS42IDAgMTguNCAxMC42IDMzLjkgMjEuOSA1Mi4zIDguNSAxNC44IDE4LjQgMzMuOSAxOC40IDYxLjUgMCAxOS4xLTcuMyA0MS4yLTE3IDcyLjFsLTIyLjIgNzQuMy04MC43LTIzOS42em04MS40IDI5Ny4ybDY4LjEtMTk2LjljMTIuNy0zMS44IDE3LTU3LjIgMTctNzkuOSAwLTguMi0uNS0xNS44LTEuNS0yMi45IDE3LjQgMzEuOCAyNy4zIDY4LjIgMjcuMyAxMDcgMCA4Mi4zLTQ0LjYgMTU0LjEtMTEwLjkgMTkyLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvcmRwcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MS43IDE2OS40bDEwMS41IDI3OEM5Mi4yIDQxMyA0My4zIDM0MC4yIDQzLjMgMjU2YzAtMzAuOSA2LjYtNjAuMSAxOC40LTg2LjZ6bTMzNy45IDc1LjljMC0yNi4zLTkuNC00NC41LTE3LjUtNTguNy0xMC44LTE3LjUtMjAuOS0zMi40LTIwLjktNDkuOSAwLTE5LjYgMTQuOC0zNy44IDM1LjctMzcuOC45IDAgMS44LjEgMi44LjItMzcuOS0zNC43LTg4LjMtNTUuOS0xNDMuNy01NS45LTc0LjMgMC0xMzkuNyAzOC4xLTE3Ny44IDk1LjkgNSAuMiA5LjcuMyAxMy43LjMgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzcuNSAyMzAuNEwyNDkuOCAyNDdsLTMzLjEtOTAuOGMtMTEuNS0uNy0yMi4zLTItMjIuMy0yLTExLjUtLjctMTAuMS0xOC4yIDEuMy0xNy41IDAgMCAzNS4xIDIuNyA1NiAyLjcgMjIuMiAwIDU2LjctMi43IDU2LjctMi43IDExLjUtLjcgMTIuOCAxNi4yIDEuNCAxNy41IDAgMC0xMS41IDEuMy0yNC4zIDJsNzYuOSAyMjguNyAyMS4yLTcwLjljOS0yOS40IDE2LTUwLjUgMTYtNjguN3ptLTEzOS45IDI5LjNsLTYzLjggMTg1LjVjMTkuMSA1LjYgMzkuMiA4LjcgNjAuMSA4LjcgMjQuOCAwIDQ4LjUtNC4zIDcwLjYtMTIuMS0uNi0uOS0xLjEtMS45LTEuNS0yLjlsLTY1LjQtMTc5LjJ6bTE4My0xMjAuN2MuOSA2LjggMS40IDE0IDEuNCAyMS45IDAgMjEuNi00IDQ1LjgtMTYuMiA3Ni4ybC02NSAxODcuOUM0MjYuMiA0MDMgNDY4LjcgMzM0LjUgNDY4LjcgMjU2YzAtMzctOS40LTcxLjgtMjYtMTAyLjF6TTUwNCAyNTZjMCAxMzYuOC0xMTEuMyAyNDgtMjQ4IDI0OEMxMTkuMiA1MDQgOCAzOTIuNyA4IDI1NiA4IDExOS4yIDExOS4yIDggMjU2IDhjMTM2LjcgMCAyNDggMTExLjIgMjQ4IDI0OHptLTExLjQgMGMwLTEzMC41LTEwNi4yLTIzNi42LTIzNi42LTIzNi42QzEyNS41IDE5LjQgMTkuNCAxMjUuNSAxOS40IDI1NlMxMjUuNiA0OTIuNiAyNTYgNDkyLjZjMTMwLjUgMCAyMzYuNi0xMDYuMSAyMzYuNi0yMzYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3BiZWdpbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjIuNzk5IDMyMi4zNzRDNTE5LjAxIDM4Ni42ODIgNDY2Ljk2MSA0ODAgMzcwLjk0NCA0ODBjLTM5LjYwMiAwLTc4LjgyNC0xNy42ODctMTAwLjE0Mi01MC4wNC02Ljg4Ny4zNTYtMjIuNzAyLjM1Ni0yOS41OSAwQzIxOS44NDggNDYyLjM4MSAxODAuNTg4IDQ4MCAxNDEuMDY5IDQ4MGMtOTUuNDkgMC0xNDguMzQ4LTkyLjk5Ni05MS44NTUtMTU3LjYyNkMtMjkuOTI1IDE5MC41MjMgODAuNDc5IDMyIDI1Ni4wMDYgMzJjMTc1LjYzMiAwIDI4NS44NyAxNTguNjI2IDIwNi43OTMgMjkwLjM3NHptLTMzOS42NDctODIuOTcyaDQxLjUyOXYtNTguMDc1aC00MS41Mjl2NTguMDc1em0yMTcuMTggODYuMDcydi0yMy44MzljLTYwLjUwNiAyMC45MTUtMTMyLjM1NSA5LjE5OC0xODcuNTg5LTMzLjk3MWwuMjQ2IDI0Ljg5N2M1MS4xMDEgNDYuMzY3IDEzMS43NDYgNTcuODc1IDE4Ny4zNDMgMzIuOTEzem0tMTUwLjc1My04Ni4wNzJoMTY2LjA1OHYtNTguMDc1SDE4OS41Nzl2NTguMDc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcGV4cGxvcmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZjMCAxNDEuMi0xMTQuNyAyNTYtMjU2IDI1NkMxMTQuOCA1MTIgMCAzOTcuMyAwIDI1NlMxMTQuNyAwIDI1NiAwczI1NiAxMTQuNyAyNTYgMjU2em0tMzIgMGMwLTEyMy4yLTEwMC4zLTIyNC0yMjQtMjI0QzEzMi41IDMyIDMyIDEzMi41IDMyIDI1NnMxMDAuNSAyMjQgMjI0IDIyNCAyMjQtMTAwLjUgMjI0LTIyNHpNMTYwLjkgMTI0LjZsODYuOSAzNy4xLTM3LjEgODYuOS04Ni45LTM3LjEgMzcuMS04Ni45em0xMTAgMTY5LjFsNDYuNiA5NGgtMTQuNmwtNTAtMTAwLTQ4LjkgMTAwaC0xNGw1MS4xLTEwNi45LTIyLjMtOS40IDYtMTQgNjguNiAyOS4xLTYgMTQuMy0xNi41LTcuMXptLTExLjgtMTE2LjNsNjguNiAyOS40LTI5LjQgNjguM0wyMzAgMjQ2bDI5LjEtNjguNnptODAuMyA0Mi45bDU0LjYgMjMuMS0yMy40IDU0LjMtNTQuMy0yMy4xIDIzLjEtNTQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3Bmb3JtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNzUuMnYzNjEuN2MwIDI0LjMtMTkgNDMuMi00My4yIDQzLjJINDMuMkMxOS4zIDQ4MCAwIDQ2MS40IDAgNDM2LjhWNzUuMkMwIDUxLjEgMTguOCAzMiA0My4yIDMyaDM2MS43YzI0IDAgNDMuMSAxOC44IDQzLjEgNDMuMnptLTM3LjMgMzYxLjZWNzUuMmMwLTMtMi42LTUuOC01LjgtNS44aC05LjNMMjg1LjMgMTQ0IDIyNCA5NC4xIDE2Mi44IDE0NCA1Mi41IDY5LjNoLTkuM2MtMy4yIDAtNS44IDIuOC01LjggNS44djM2MS43YzAgMyAyLjYgNS44IDUuOCA1LjhoMzYxLjdjMy4yLjEgNS44LTIuNyA1LjgtNS44ek0xNTAuMiAxODZ2MzdINzYuN3YtMzdoNzMuNXptMCA3NC40djM3LjNINzYuN3YtMzcuM2g3My41em0xMS4xLTE0Ny4zbDU0LTQzLjdIOTYuOGw2NC41IDQzLjd6bTIxMCA3Mi45djM3aC0xOTZ2LTM3aDE5NnptMCA3NC40djM3LjNoLTE5NnYtMzcuM2gxOTZ6bS04NC42LTE0Ny4zbDY0LjUtNDMuN0gyMzIuOGw1My45IDQzLjd6TTM3MS4zIDMzNXYzNy4zaC05OS40VjMzNWg5OS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXcHJlc3NyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE3MS4zMyAxNTguNmMtMTUuMTggMzQuNTEtMzAuMzcgNjkuMDItNDUuNjMgMTAzLjUtMi40NCA1LjUxLTYuODkgOC4yNC0xMi45NyA4LjI0LTIzLjAyLS4wMS00Ni4wMy4wNi02OS4wNS0uMDUtNS4xMi0uMDMtOC4yNSAxLjg5LTEwLjM0IDYuNzItMTAuMTkgMjMuNTYtMjAuNjMgNDctMzAuOTUgNzAuNS0xLjU0IDMuNTEtNC4wNiA1LjI5LTcuOTIgNS4yOS00NS45NC0uMDEtOTEuODctLjAyLTEzNy44MSAwLTMuMTMgMC01LjYzLTEuMTUtNy43Mi0zLjQ1LTExLjIxLTEyLjMzLTIyLjQ2LTI0LjYzLTMzLjY4LTM2Ljk0LTIuNjktMi45NS0yLjc5LTYuMTgtMS4yMS05LjczIDguNjYtMTkuNTQgMTcuMjctMzkuMSAyNS44OS01OC42NiAxMi45My0yOS4zNSAyNS44OS01OC42OSAzOC43NS04OC4wOCAxLjctMy44OCA0LjI4LTUuNjggOC41NC01LjY1IDE0LjI0LjEgMjguNDguMDIgNDIuNzIuMDUgNi4yNC4wMSA5LjIgNC44NCA2LjY2IDEwLjU5LTEzLjYgMzAuNzctMjcuMTcgNjEuNTUtNDAuNzQgOTIuMzMtNS43MiAxMi45OS0xMS40MiAyNS45OS0xNy4wOSAzOS0zLjkxIDguOTUgNy4wOCAxMS45NyAxMC45NSA1LjYuMjMtLjM3LTEuNDIgNC4xOCAzMC4wMS02Ny42OSAxLjM2LTMuMSAzLjQxLTQuNCA2Ljc3LTQuMzkgMTUuMjEuMDggMzAuNDMuMDIgNDUuNjQuMDQgNS41Ni4wMSA3LjkxIDMuNjQgNS42NiA4Ljc1LTguMzMgMTguOTYtMTYuNzEgMzcuOS0yNC45OCA1Ni44OS00Ljk4IDExLjQzIDguMDggMTIuNDkgMTEuMjggNS4zMy4wNC0uMDggMjcuODktNjMuMzMgMzIuMTktNzMuMTYgMi4wMi00LjYxIDUuNDQtNi41MSAxMC4zNS02LjUgMjYuNDMuMDUgNTIuODYgMCA3OS4yOS4wNSAxMi40NC4wMiAxMy45My0xMy42NSAzLjktMTMuNjQtMjUuMjYuMDMtNTAuNTIuMDItNzUuNzguMDItNi4yNyAwLTcuODQtMi40Ny01LjI3LTguMjcgNS43OC0xMy4wNiAxMS41OS0yNi4xMSAxNy4zLTM5LjIxIDEuNzMtMy45NiA0LjUyLTUuNzkgOC44NC01Ljc4IDIzLjA5LjA2IDI1Ljk4LjAyIDEzMC43OC4wMyA2LjA4LS4wMSA4LjAzIDIuNzkgNS42MiA4LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYVHdpdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODkuMiA0OGg3MC42TDMwNS42IDIyNC4yIDQ4NyA0NjRIMzQ1TDIzMy43IDMxOC42IDEwNi41IDQ2NEgzNS44TDIwMC43IDI3NS41IDI2LjggNDhIMTcyLjRMMjcyLjkgMTgwLjkgMzg5LjIgNDh6TTM2NC40IDQyMS44aDM5LjFMMTUxLjEgODhoLTQyTDM2NC40IDQyMS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDMxOC4yYzQ0LjMgNTQuMyA2NC43IDk4LjggNTQuNCAxMTguNy03LjkgMTUuMS01Ni43IDQ0LjYtOTIuNiA1NS45LTI5LjYgOS4zLTY4LjQgMTMuMy0xMDAuNCAxMC4yLTM4LjItMy43LTc2LjktMTcuNC0xMTAuMS0zOUM5My4zIDQ0NS44IDg3IDQzOC4zIDg3IDQyMy40YzAtMjkuOSAzMi45LTgyLjMgODkuMi0xNDIuMSAzMi0zMy45IDc2LjUtNzMuNyA4MS40LTcyLjYgOS40IDIuMSA4NC4zIDc1LjEgMTEyLjMgMTA5LjV6TTE4OC42IDE0My44Yy0yOS43LTI2LjktNTguMS01My45LTg2LjQtNjMuNC0xNS4yLTUuMS0xNi4zLTQuOC0yOC43IDguMS0yOS4yIDMwLjQtNTMuNSA3OS43LTYwLjMgMTIyLjQtNS40IDM0LjItNi4xIDQzLjgtNC4yIDYwLjUgNS42IDUwLjUgMTcuMyA4NS40IDQwLjUgMTIwLjkgOS41IDE0LjYgMTIuMSAxNy4zIDkuMyA5LjktNC4yLTExLS4zLTM3LjUgOS41LTY0IDE0LjMtMzkgNTMuOS0xMTIuOSAxMjAuMy0xOTQuNHptMzExLjYgNjMuNUM0ODMuMyAxMjcuMyA0MzIuNyA3NyA0MjUuNiA3N2MtNy4zIDAtMjQuMiA2LjUtMzYgMTMuOS0yMy4zIDE0LjUtNDEgMzEuNC02NC4zIDUyLjhDMzY3LjcgMTk3IDQyNy41IDI4My4xIDQ0OC4yIDM0NmM2LjggMjAuNyA5LjcgNDEuMSA3LjQgNTIuMy0xLjcgOC41LTEuNyA4LjUgMS40IDQuNiA2LjEtNy43IDE5LjktMzEuMyAyNS40LTQzLjUgNy40LTE2LjIgMTUtNDAuMiAxOC42LTU4LjcgNC4zLTIyLjUgMy45LTcwLjgtLjgtOTMuNHpNMTQxLjMgNDNDMTg5IDQwLjUgMjUxIDc3LjUgMjU1LjYgNzguNGMuNy4xIDEwLjQtNC4yIDIxLjYtOS43IDYzLjktMzEuMSA5NC0yNS44IDEwNy40LTI1LjItNjMuOS0zOS4zLTE1Mi43LTUwLTIzMy45LTExLjctMjMuNCAxMS4xLTI0IDExLjktOS40IDExLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVhpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYyLjcgMjEwYy0xLjggMy4zLTI1LjIgNDQuNC03MC4xIDEyMy41LTQuOSA4LjMtMTAuOCAxMi41LTE3LjcgMTIuNUg5LjhjLTcuNyAwLTEyLjEtNy41LTguNS0xNC40bDY5LTEyMS4zYy4yIDAgLjItLjEgMC0uM2wtNDMuOS03NS42Yy00LjMtNy44LjMtMTQuMSA4LjUtMTQuMUgxMDBjNy4zIDAgMTMuMyA0LjEgMTggMTIuMmw0NC43IDc3LjV6TTM4Mi42IDQ2LjFsLTE0NCAyNTN2LjNMMzMwLjIgNDY2YzMuOSA3LjEuMiAxNC4xLTguNSAxNC4xaC02NS4yYy03LjYgMC0xMy42LTQtMTgtMTIuMmwtOTIuNC0xNjguNWMzLjMtNS44IDUxLjUtOTAuOCAxNDQuOC0yNTUuMiA0LjYtOC4xIDEwLjQtMTIuMiAxNy41LTEyLjJoNjUuN2M4IDAgMTIuMyA2LjcgOC41IDE0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlDb21iaW5hdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMnY0NDhIMFYzMmg0NDh6TTIzNiAyODcuNUwzMTMuNSAxNDJoLTMyLjdMMjM1IDIzM2MtNC43IDkuMy05IDE4LjMtMTIuOCAyNi44TDIxMCAyMzNsLTQ1LjItOTFoLTM1bDc2LjcgMTQzLjh2OTQuNUgyMzZ2LTkyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhaG9vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMy42OSwxNDEuMDYsMTY3LDI4NC4yMywxMTEsMTQxLjA2SDE0LjkzTDEyMC43NiwzOTAuMTksODIuMTksNDgwaDk0LjE3TDMxNy4yNywxNDEuMDZabTEwNS40LDEzNS43OWE1OC4yMiw1OC4yMiwwLDEsMCw1OC4yMiw1OC4yMkE1OC4yMiw1OC4yMiwwLDAsMCwzMjkuMDksMjc2Ljg1Wk0zOTQuNjUsMzJsLTkzLDIyMy40N0g0MDYuNDRMNDk5LjA3LDMyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYW1tZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwLjY3NiwxNTkuNDg2YTEyLjc3OSwxMi43NzksMCwwLDAtNi40LTguMjgyLDEzLjk1NCwxMy45NTQsMCwwLDAtMTAuMDc4LTEuMTI1TDQ1Ny44LDE1Ni43bC0uMDQzLS4yLTIyLjMsNS43ODUtMS4yNDMuMzMzLS42MDgtMi4xN0EzNjkuMDM3LDM2OS4wMzcsMCwwLDAsMzQ3LjUzOCw0LjI4OWExNC4xLDE0LjEsMCwwLDAtMTkuNzg0LS40NjNsLTEwMi45LDEwMi43NDdIMjQuOTQ3QTI0LjksMjQuOSwwLDAsMCwwLDEzMS40MTdWMzgwLjM4YTI0Ljk2MywyNC45NjMsMCwwLDAsMjQuOTE4LDI0LjlIMjI0Ljk4NkwzMjguMDcyLDUwOGExMy42NjcsMTMuNjY3LDAsMCwwLDE5LjMyNywwYy4xMjYtLjEyNi4yNDktLjI1NS4zNy0uMzg1YTM2OC4wMjUsMzY4LjAyNSwwLDAsMCw2OS41NzctMTA3LjM3NCw0MDMuNDUsNDAzLjQ1LDAsMCwwLDE3LjMtNTAuOHYtLjAyOGwyMC40MDYsNS4zMzYuMDI5LS4wNzNMNDgzLjM0NSwzNjJhMjAuMjUzLDIwLjI1MywwLDAsMCwyLjYxOS41LDEzLjM1OSwxMy4zNTksMCwwLDAsNC4xMzktLjA3MiwxMy41LDEzLjUsMCwwLDAsMTAuNTE1LTkuOTI0LDQxNS44NTUsNDE1Ljg1NSwwLDAsMCwuMDU4LTE5My4wMTNaTTMzNy4xMjUsMjQuNjVsLjAxMy4wMTRoLS4wMTNabS0xMTAuMiwxNjUuMTYxTDE3NC4zMTEsMjgxLjFhMTEuMzM4LDExLjMzOCwwLDAsMC0xLjQ4OSw1LjY1NXY0Ni4xODlhMjIuMDQsMjIuMDQsMCwwLDEtMjIuMDQxLDIyaC0zLjRBMjIuMDY4LDIyLjA2OCwwLDAsMSwxMjUuMywzMzIuOTYyVjI4Ny4yOTRhMTEuNTMyLDExLjUzMiwwLDAsMC0xLjM4OC01LjUxbC01MS42LTkyLjJhMjEuOTg4LDIxLjk4OCwwLDAsMSwxOS4yNjQtMzIuNzI2aDMuMjY4YTIyLjA1OSwyMi4wNTksMCwwLDEsMTkuNjExLDExLjkxNmwzNi4zNTcsNzAuMjgxLDM3LjUxNS03MC41MTJhMjIuMDY2LDIyLjA2NiwwLDAsMSwzOC41NTYtLjY5NSwyMS43LDIxLjcsMCwwLDEsMCwyMS45NjdaTTMzNy4xNDUsMjQuNjczYTM0OC4xNDcsMzQ4LjE0NywwLDAsMSw3NS44LDE0MS4zMzVsLjU2NCwxLjk1Mi0xMTQuMTM0LDI5LjZWMTMxLjQxN2EyNS4wMDYsMjUuMDA2LDAsMCwwLTI0Ljk0Ny0yNC45SDI1NS4wNjdabTYwLjUsMzY3LjMwNXYtLjA0M2wtLjAxNC4wMTRhMzQ3LjE5LDM0Ny4xOSwwLDAsMS02MC4xNzcsOTUuMjI3bC04Mi4yLTgxLjg5M2gxOS4xNzdhMjQuOTc4LDI0Ljk3OCwwLDAsMCwyNC45NDctMjQuOXYtNjYuMmwxMTQuNiwyOS44NjJBMzg1LjE5MSwzODUuMTkxLDAsMCwxLDM5Ny42NDgsMzkxLjk3OFptODQtNTIuNDUuMDE1LjAxNC01MC42MTgtMTMuMTMxTDI5OS4zNzksMjkyLjFWMjE5LjU3MmwxMTkuNzQ2LTMwLjk5LDQuNDY4LTEuMTU3LDM5LjU0LTEwLjI1MywxOC41MTEtNC44MTZBMzkzLDM5MywwLDAsMSw0ODEuNjQ0LDMzOS41MjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbmRleEludGVybmF0aW9uYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI5LjUgNTEyVjM0NS45TDE4LjUgNDhoNTUuOGw4MS44IDIyOS43TDI1MC4yIDBoNTEuM0wxODAuOCAzNDcuOFY1MTJoLTUxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbmRleCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuMSAzMTUuOEw2NS43IDUxMkgybDk2LTIwOS44Yy00NS4xLTIyLjktNzUuMi02NC40LTc1LjItMTQxLjFDMjIuNyA1My43IDkwLjggMCAxNzEuNyAwSDI1NHY1MTJoLTU1LjFWMzE1LjhoLTQ1Ljh6bTQ1LjgtMjY5LjNoLTI5LjRjLTQ0LjQgMC04Ny40IDI5LjQtODcuNCAxMTQuNiAwIDgyLjMgMzkuNCAxMDguOCA4Ny40IDEwOC44aDI5LjRWNDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTMuOSAzNDUuMmMtMzkgOS4zLTQ4LjQgMzIuMS0xMDQgNDcuNCAwIDAtMi43IDQtMTAuNCA1LjgtMTMuNCAzLjMtNjMuOSA2LTY4LjUgNi4xLTEyLjQuMS0xOS45LTMuMi0yMi04LjItNi40LTE1LjMgOS4yLTIyIDkuMi0yMi04LjEtNS05LTkuOS05LjgtOC4xLTIuNCA1LjgtMy42IDIwLjEtMTAuMSAyNi41LTguOCA4LjktMjUuNSA1LjktMzUuMy44LTEwLjgtNS43LjgtMTkuMi44LTE5LjJzLTUuOCAzLjQtMTAuNS0zLjZjLTYtOS4zLTE3LjEtMzcuMyAxMS41LTYyLTEuMy0xMC4xLTQuNi01My43IDQwLjYtODUuNiAwIDAtMjAuNi0yMi44LTEyLjktNDMuMyA1LTEzLjQgNy0xMy4zIDguNi0xMy45IDUuNy0yLjIgMTEuMy00LjYgMTUuNC05LjEgMjAuNi0yMi4yIDQ2LjgtMTggNDYuOC0xOHMxMi40LTM3LjggMjMuOS0zMC40YzMuNSAyLjMgMTYuMyAzMC42IDE2LjMgMzAuNnMxMy42LTcuOSAxNS4xLTVjOC4yIDE2IDkuMiA0Ni41IDUuNiA2NS4xLTYuMSAzMC42LTIxLjQgNDcuMS0yNy42IDU3LjUtMS40IDIuNCAxNi41IDEwIDI3LjggNDEuMyAxMC40IDI4LjYgMS4xIDUyLjcgMi44IDU1LjMuOCAxLjQgMTMuNy44IDM2LjQtMTMuMiAxMi44LTcuOSAyOC4xLTE2LjkgNDUuNC0xNyAxNi43LS41IDE3LjYgMTkuMiA0LjkgMjIuMnpNNDk2IDI1NmMwIDEzNi45LTExMS4xIDI0OC0yNDggMjQ4UzAgMzkyLjkgMCAyNTYgMTExLjEgOCAyNDggOHMyNDggMTExLjEgMjQ4IDI0OHptLTc5LjMgNzUuMmMtMS43LTEzLjYtMTMuMi0yMy0yOC0yMi44LTIyIC4zLTQwLjUgMTEuNy01Mi44IDE5LjItNC44IDMtOC45IDUuMi0xMi40IDYuOCAzLjEtNDQuNS0yMi41LTczLjEtMjguNy03OS40IDcuOC0xMS4zIDE4LjQtMjcuOCAyMy40LTUzLjIgNC4zLTIxLjcgMy01NS41LTYuOS03NC41LTEuNi0zLjEtNy40LTExLjItMjEtNy40LTkuNy0yMC0xMy0yMi4xLTE1LjYtMjMuOC0xLjEtLjctMjMuNi0xNi40LTQxLjQgMjgtMTIuMi45LTMxLjMgNS4zLTQ3LjUgMjIuOC0yIDIuMi01LjkgMy44LTEwLjEgNS40aC4xYy04LjQgMy0xMi4zIDkuOS0xNi45IDIyLjMtNi41IDE3LjQuMiAzNC42IDYuOCA0NS43LTE3LjggMTUuOS0zNyAzOS44LTM1LjcgODIuNS0zNCAzNi0xMS44IDczLTUuNiA3OS42LTEuNiAxMS4xIDMuNyAxOS40IDEyIDIzLjggMTIuNiA2LjcgMzAuMyA5LjYgNDMuOSAyLjggNC45IDUuMiAxMy44IDEwLjEgMzAgMTAuMSA2LjggMCA1OC0yLjkgNzIuNi02LjUgNi44LTEuNiAxMS41LTQuNSAxNC42LTcuMSA5LjgtMy4xIDM2LjgtMTIuMyA2Mi4yLTI4LjcgMTgtMTEuNyAyNC4yLTE0LjIgMzcuNi0xNy40IDEyLjktMy4yIDIxLTE1LjEgMTkuNC0yOC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZZWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyLjkgMjQwLjMybDk5LjYyIDQ4LjYxYzE5LjIgOS40IDE2LjIgMzcuNTEtNC41IDQyLjcxTDMwLjUgMzU4LjQ1YTIyLjc5IDIyLjc5IDAgMCAxLTI4LjIxLTE5LjYgMTk3LjE2IDE5Ny4xNiAwIDAgMSA5LTg1LjMyIDIyLjggMjIuOCAwIDAgMSAzMS42MS0xMy4yMXptNDQgMjM5LjI1YTE5OS40NSAxOTkuNDUgMCAwIDAgNzkuNDIgMzIuMTFBMjIuNzggMjIuNzggMCAwIDAgMTkyLjk0IDQ5MGwzLjktMTEwLjgyYy43LTIxLjMtMjUuNS0zMS45MS0zOS44MS0xNi4xbC03NC4yMSA4Mi40YTIyLjgyIDIyLjgyIDAgMCAwIDQuMDkgMzQuMDl6bTE0NS4zNC0xMDkuOTJsNTguODEgOTRhMjIuOTMgMjIuOTMgMCAwIDAgMzQgNS41IDE5OC4zNiAxOTguMzYgMCAwIDAgNTIuNzEtNjcuNjFBMjMgMjMgMCAwIDAgMzY0LjE3IDM3MGwtMTA1LjQyLTM0LjI2Yy0yMC4zMS02LjUtMzcuODEgMTUuOC0yNi41MSAzMy45MXptMTQ4LjMzLTEzMi4yM2ExOTcuNDQgMTk3LjQ0IDAgMCAwLTUwLjQxLTY5LjMxIDIyLjg1IDIyLjg1IDAgMCAwLTM0IDQuNGwtNjIgOTEuOTJjLTExLjkgMTcuNyA0LjcgNDAuNjEgMjUuMiAzNC43MUwzNjYgMjY4LjYzYTIzIDIzIDAgMCAwIDE0LjYxLTMxLjIxek02Mi4xMSAzMC4xOGEyMi44NiAyMi44NiAwIDAgMC05LjkgMzJsMTA0LjEyIDE4MC40NGMxMS43IDIwLjIgNDIuNjEgMTEuOSA0Mi42MS0xMS40VjIyLjg4YTIyLjY3IDIyLjY3IDAgMCAwLTI0LjUtMjIuOCAzMjAuMzcgMzIwLjM3IDAgMCAwLTExMi4zMyAzMC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZb2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS4zIDc2aDE4NmwtNyAxOC45aC0xNzljLTM5LjcgMC03MS45IDMxLjYtNzEuOSA3MC4zdjIwNS40YzAgMzUuNCAyNC45IDcwLjMgODQgNzAuM1Y0NjBIOTEuM0M0MS4yIDQ2MCAwIDQxOS44IDAgMzcwLjVWMTY1LjJDMCAxMTUuOSA0MC43IDc2IDkxLjMgNzZ6bTIyOS4xLTU2aDY2LjVDMjQzLjEgMzk4LjEgMjQxLjIgNDE4LjkgMjAyLjIgNDU5LjNjLTIwLjggMjEuNi00OS4zIDMxLjctNzguMyAzMi43di01MS4xYzQ5LjItNy43IDY0LjYtNDkuOSA2NC42LTc1LjMgMC0yMC4xLjYtMTIuNi04Mi4xLTIyMy4yaDYxLjRMMjE4LjIgMjk5IDMyMC40IDIwek00NDggMTYxLjVWNDYwSDIzNGM2LjYtOS42IDEwLjctMTYuMyAxMi4xLTE5LjRoMTgyLjVWMTYxLjVjMC0zMi41LTE3LjEtNTEuOS00OC4yLTYyLjlsNi43LTE3LjZjNDEuNyAxMy42IDYwLjkgNDMuMSA2MC45IDgwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlvdXR1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ5LjY1NSAxMjQuMDgzYy02LjI4MS0yMy42NS0yNC43ODctNDIuMjc2LTQ4LjI4NC00OC41OTdDNDU4Ljc4MSA2NCAyODggNjQgMjg4IDY0UzExNy4yMiA2NCA3NC42MjkgNzUuNDg2Yy0yMy40OTcgNi4zMjItNDIuMDAzIDI0Ljk0Ny00OC4yODQgNDguNTk3LTExLjQxMiA0Mi44NjctMTEuNDEyIDEzMi4zMDUtMTEuNDEyIDEzMi4zMDVzMCA4OS40MzggMTEuNDEyIDEzMi4zMDVjNi4yODEgMjMuNjUgMjQuNzg3IDQxLjUgNDguMjg0IDQ3LjgyMUMxMTcuMjIgNDQ4IDI4OCA0NDggMjg4IDQ0OHMxNzAuNzggMCAyMTMuMzcxLTExLjQ4NmMyMy40OTctNi4zMjEgNDIuMDAzLTI0LjE3MSA0OC4yODQtNDcuODIxIDExLjQxMi00Mi44NjcgMTEuNDEyLTEzMi4zMDUgMTEuNDEyLTEzMi4zMDVzMC04OS40MzgtMTEuNDEyLTEzMi4zMDV6bS0zMTcuNTEgMjEzLjUwOFYxNzUuMTg1bDE0Mi43MzkgODEuMjA1LTE0Mi43MzkgODEuMjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFaaGlodSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzAuNTQgMTQ4LjEzdjIxNy41NGwyMy40My4wMSA3LjcxIDI2LjM3IDQyLjAxLTI2LjM3aDQ5LjUzVjE0OC4xM0gxNzAuNTR6bTk3Ljc1IDE5My45M2gtMjcuOTRsLTI3LjkgMTcuNTEtNS4wOC0xNy40Ny0xMS45LS4wNFYxNzEuNzVoNzIuODJ2MTcwLjMxem0tMTE4LjQ2LTk0LjM5SDk3LjVjMS43NC0yNy4xIDIuMi01MS41OSAyLjItNzMuNDZoNTEuMTZzMS45Ny0yMi41Ni04LjU4LTIyLjMxaC04OC41YzMuNDktMTMuMTIgNy44Ny0yNi42NiAxMy4xMi00MC42NyAwIDAtMjQuMDcgMC0zMi4yNyAyMS41Ny0zLjM5IDguOS0xMy4yMSA0My4xNC0zMC43IDc4LjEyIDUuODktLjY0IDI1LjM3LTEuMTggMzYuODQtMjIuMjEgMi4xMS01Ljg5IDIuNTEtNi42NiA1LjE0LTE0LjUzaDI4Ljg3YzAgMTAuNS0xLjIgNjYuODgtMS42OCA3My40NEgyMC44M2MtMTEuNzQgMC0xNS41NiAyMy42Mi0xNS41NiAyMy42Mmg2NS41OEM2Ni40NSAzMjEuMSA0Mi44MyAzNjMuMTIgMCAzOTYuMzRjMjAuNDkgNS44NSA0MC45MS0uOTMgNTEtOS45IDAgMCAyMi45OC0yMC45IDM1LjU5LTY5LjI1bDUzLjk2IDY0Ljk0czcuOTEtMjYuODktMS4yNC0zOS45OWMtNy41OC04LjkyLTI4LjA2LTMzLjA2LTM2Ljc5LTQxLjgxTDg3LjkgMzExLjk1YzQuMzYtMTMuOTggNi45OS0yNy41NSA3Ljg3LTQwLjY3aDYxLjY1cy0uMDktMjMuNjItNy41OS0yMy42MnYuMDF6bTQxMi4wMi0xLjZjMjAuODMtMjUuNjQgNDQuOTgtNTguNTcgNDQuOTgtNTguNTdzLTE4LjY1LTE0LjgtMjcuMzgtNC4wNmMtNiA4LjE1LTM2LjgzIDQ4LjItMzYuODMgNDguMmwxOS4yMyAxNC40M3ptLTE1MC4wOS01OS4wOWMtOS4wMS04LjI1LTI1LjkxIDIuMTMtMjUuOTEgMi4xM3MzOS41MiA1NS4wNCA0MS4xMiA1Ny40NWwxOS40Ni0xMy43M3MtMjUuNjctMzcuNjEtMzQuNjYtNDUuODZoLS4wMXpNNjQwIDI1OC4zNWMtMTkuNzggMC0xMzAuOTEuOTMtMTMxLjA2Ljkzdi0xMDFjNC44MSAwIDEyLjQyLS40IDIyLjg1LTEuMiA0MC44OC0yLjQxIDcwLjEzLTQgODcuNzctNC44MSAwIDAgMTIuMjItMjcuMTktLjU5LTMzLjQ0LTMuMDctMS4xOC0yMy4xNyA0LjU4LTIzLjE3IDQuNThzLTE2NS4yMiAxNi40OS0yMzIuMzYgMTguMDVjMS42IDguODIgNy42MiAxNy4wOCAxNS43OCAxOS41NSAxMy4zMSAzLjQ4IDIyLjY5IDEuNyA0OS4xNS44OSAyNC44My0xLjYgNDMuNjgtMi40MyA1Ni41MS0yLjQzdjk5LjgxSDM1MS40MXMyLjgyIDIyLjMxIDI1LjUxIDIyLjg1aDEwNy45NHY3MC45MmMwIDEzLjk3LTExLjE5IDIxLjk5LTI0LjQ4IDIxLjEyLTE0LjA4LjExLTI2LjA4LTEuMTUtNDEuNjktMS44MSAxLjk5IDMuOTcgNi4zMyAxNC4zOSAxOS4zMSAyMS44NCA5Ljg4IDQuODEgMTYuMTcgNi41NyAyNi4wMiA2LjU3IDI5LjU2IDAgNDUuNjctMTcuMjggNDQuODktNDUuMzF2LTczLjMyaDEyMi4zNmM5LjY4IDAgOC43LTIzLjc4IDguNy0yMy43OGwuMDMtLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJzMTYwIDcxLjYgMTYwIDE2MFYzMjBjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0MDguNCAwIDMyMFYxOTJ6TTE2MCA5NmMtNTMgMC05NiA0My05NiA5NlYzMjBjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NlYxOTJjMC01My00My05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNjRjMC0xMS44LTYuNS0yMi42LTE2LjktMjguMnMtMjMtNS0zMi44IDEuNmwtOTYgNjRDLS41IDExMS4yLTQuNCAxMzEgNS40IDE0NS44czI5LjcgMTguNyA0NC40IDguOUw5NiAxMjMuOFY0MTZIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTYgOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTYwVjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmEyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Mi45IDk2Yy0yMS41IDAtNDIuMiA4LjUtNTcuNCAyMy44TDU0LjYgMTUwLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDQwLjIgNzQuNUM2Ny41IDQ3LjMgMTA0LjQgMzIgMTQyLjkgMzJDMjIzIDMyIDI4OCA5NyAyODggMTc3LjFjMCAzOC41LTE1LjMgNzUuNC00Mi41IDEwMi42TDEwOS4zIDQxNkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDIwMC4yIDIzNC41YzE1LjItMTUuMiAyMy44LTM1LjkgMjMuOC01Ny40YzAtNDQuOC0zNi4zLTgxLjEtODEuMS04MS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmEzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIMjcyYzEzLjIgMCAyNSA4LjEgMjkuOCAyMC40czEuNSAyNi4zLTguMiAzNS4yTDE2Mi4zIDIwOEgxODRjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZzLTYwLjkgMTM2LTEzNiAxMzZIMTA1LjRDNjMgNDgwIDI0LjIgNDU2IDUuMyA0MTguMWwtMS45LTMuOGMtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDEuOSAzLjhjOC4xIDE2LjMgMjQuOCAyNi41IDQyLjkgMjYuNUgxODRjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJIODBjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC40cy0xLjUtMjYuMyA4LjItMzUuMkwxODkuNyA5NkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4OSA3Ny42YzcuNS0xNiAuNy0zNS4xLTE1LjMtNDIuNnMtMzUuMS0uNy00Mi42IDE1LjNMMyAzMjIuNGMtNC43IDkuOS0zLjkgMjEuNSAxLjkgMzAuOFMyMSAzNjggMzIgMzY4SDI1NnY4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM2OGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjMwNEg4Mi40TDE4OSA3Ny42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLjUgNTguM0MzNS4zIDQzLjEgNDguNSAzMiA2NCAzMkgyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIOTAuN0w3MC4zIDIwOEgxODRjNzUuMSAwIDEzNiA2MC45IDEzNiAxMzZzLTYwLjkgMTM2LTEzNiAxMzZIMTAwLjVjLTM5LjQgMC03NS40LTIyLjMtOTMtNTcuNWwtNC4xLTguMmMtNy45LTE1LjgtMS41LTM1IDE0LjMtNDIuOXMzNS0xLjUgNDIuOSAxNC4zbDQuMSA4LjJjNi44IDEzLjYgMjAuNiAyMi4xIDM1LjggMjIuMUgxODRjMzkuOCAwIDcyLTMyLjIgNzItNzJzLTMyLjItNzItNzItNzJIMzJjLTkuNSAwLTE4LjUtNC4yLTI0LjYtMTEuNXMtOC42LTE2LjktNi45LTI2LjJsMzItMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMi40IDg0LjdjMTEuNC0xMy41IDkuNy0zMy43LTMuOC00NS4xcy0zMy43LTkuNy00NS4xIDMuOEwzOC42IDIxNC43QzE0LjcgMjQyLjkgMS4xIDI3OC40IC4xIDMxNS4yYzAgMS40LS4xIDIuOS0uMSA0LjNjMCAuMiAwIC4zIDAgLjVjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBzMTYwLTcxLjYgMTYwLTE2MGMwLTg1LjUtNjcuMS0xNTUuNC0xNTEuNS0xNTkuOGw2My45LTc1LjZ6TTI1NiAzMjBBOTYgOTYgMCAxIDEgNjQgMzIwYTk2IDk2IDAgMSAxIDE5MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmE3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIMjg4YzExLjUgMCAyMiA2LjEgMjcuNyAxNi4xczUuNyAyMi4yLS4xIDMyLjFsLTIyNCAzODRjLTguOSAxNS4zLTI4LjUgMjAuNC00My44IDExLjVzLTIwLjQtMjguNS0xMS41LTQzLjhMMjMyLjMgOTZIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhOCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgMTYwYzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDE0NEM3My4zIDMyIDE2IDg5LjMgMTYgMTYwYzAgMzQuNiAxMy43IDY2IDM2IDg5QzIwLjUgMjcyLjMgMCAzMDkuOCAwIDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOGg2NGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGMwLTQyLjItMjAuNS03OS43LTUyLTEwM2MyMi4zLTIzIDM2LTU0LjQgMzYtODl6TTE3Ni4xIDI4OEgxOTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRIMTI4Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0aDE1LjljMCAwIC4xIDAgLjEgMGgzMmMwIDAgLjEgMCAuMSAwem0wLTY0YzAgMCAwIDAgMCAwSDE0NGMwIDAgMCAwIDAgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAzNS4zLTI4LjYgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYTkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTkyYTk2IDk2IDAgMSAwIDE5MiAwQTk2IDk2IDAgMSAwIDY0IDE5MnptODcuNSAxNTkuOEM2Ny4xIDM0Ny40IDAgMjc3LjUgMCAxOTJDMCAxMDMuNiA3MS42IDMyIDE2MCAzMnMxNjAgNzEuNiAxNjAgMTYwYzAgMi42LS4xIDUuMy0uMiA3LjljLTEuNyAzNS43LTE1LjIgNzAtMzguNCA5Ny40bC0xNDUgMTcxLjRjLTExLjQgMTMuNS0zMS42IDE1LjItNDUuMSAzLjhzLTE1LjItMzEuNi0zLjgtNDUuMWw2My45LTc1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIxLjUgNTEuN0MyMTYuNiAzOS44IDIwNC45IDMyIDE5MiAzMnMtMjQuNiA3LjgtMjkuNSAxOS43bC0xMjAgMjg4LTQwIDk2Yy02LjggMTYuMyAuOSAzNSAxNy4yIDQxLjhzMzUtLjkgNDEuOC0xNy4yTDkzLjMgMzg0SDI5MC43bDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOGwtNDAtOTYtMTIwLTI4OHpNMjY0IDMyMEgxMjBsNzItMTcyLjhMMjY0IDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWRkcmVzc0Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2ek0yMDggMjg4aDY0YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTMyLTk2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNTEyIDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWODB6TTQ5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZ6bTE2IDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjMzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWRkcmVzc0NhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em04MCAyNTZoNjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6bTI1Ni0zMkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0wIDY0SDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRINDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJ6bTk2IDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTM1MiAzMjBjMC0xNy43LTE0LjMtMzItMzItMzJIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25KdXN0aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyem0wIDI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJ6TTAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTQ0OCA0NDhjMC0xNy43LTE0LjMtMzItMzItMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGlnbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMkgyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsaWduUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6TTAgMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ0OCA0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmNob3JDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwSDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMlY0NDhIMjA4Yy01MyAwLTk2LTQzLTk2LTk2di02LjFsNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03VjM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGg4MCA4MGM4LjIgMCAxNi4zLS42IDI0LjItMS44Yy0yMi4yLTE2LjItNDAuNC0zNy41LTUzLTYyLjJIMzIwVjM2OCAyNDBoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzQxLjF6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuY2hvckNpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMyVjQ0OEgyMDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTYuMWw3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTdWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwaDgwIDgwYzguMiAwIDE2LjMtLjYgMjQuMi0xLjhjLTIyLjItMTYuMi00MC40LTM3LjUtNTMtNjIuMkgzMjBWMzY4IDI0MGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNDEuMXpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5jaG9yQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDk2YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6bTIxLjEgODBDMzY3IDE1OC44IDM4NCAxMjkuNCAzODQgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAzMy40IDE3IDYyLjggNDIuOSA4MEgyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJWNDQ4SDIwOGMtNTMgMC05Ni00My05Ni05NnYtNi4xbDcgN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlMOTcgMjYzYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMxOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctN1YzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBoODAgODBjOC4yIDAgMTYuMy0uNiAyNC4yLTEuOGMtMjIuMi0xNi4yLTQwLjQtMzcuNS01My02Mi4ySDMyMFYzNjggMjQwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0MS4xek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN0w1MTguNiAzNjhsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDk2IDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDczLjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0OTYgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5jaG9yTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTZhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptMjEuMSA4MEMzNjcgMTU4LjggMzg0IDEyOS40IDM4NCA5NmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NmMwIDMzLjQgMTcgNjIuOCA0Mi45IDgwSDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgzMlY0NDhIMjA4Yy01MyAwLTk2LTQzLTk2LTk2di02LjFsNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw5NyAyNjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMzE5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNy03VjM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGg4MCA4MGM4IDAgMTUuOS0uNiAyMy42LTEuN2MtNC44LTktNy42LTE5LjMtNy42LTMwLjNWNDQ2LjdjLTUuMiAuOS0xMC41IDEuMy0xNiAxLjNIMzIwVjI0MGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNDEuMXpNNTI4IDI0MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEg0OTZWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5jaG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NmEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0yMS4xIDgwQzM2NyAxNTguOCAzODQgMTI5LjQgMzg0IDk2YzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMzMuNCAxNyA2Mi44IDQyLjkgODBIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMyVjQ0OEgyMDhjLTUzIDAtOTYtNDMtOTYtOTZ2LTYuMWw3IDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDk3IDI2M2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMTljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3LTdWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwaDgwIDgwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwdi02LjFsNyA3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTYtNTZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC01NiA1NmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDctN1YzNTJjMCA1My00MyA5Ni05NiA5NkgzMjBWMjQwaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0MS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAxLjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTYwLTE2MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyMjQgMzA2LjcgODYuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxLjQgMjMzLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjBjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyNTYgMjQ2LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc4LjYgMjMzLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDIxMC43IDI1NiA3My40IDExOC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAxLjQgMTM3LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTYwIDE2MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyMjQgMjA1LjMgODYuNiAzNDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVzRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuNiA0NzAuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTE2MC0xNjBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMjI0IDQwMi43IDM2MS40IDI2NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTE2MCAxNjB6bTE2MC0zNTJsLTE2MCAxNjBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwbC0xNjAtMTYwYy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwTDIyNCAyMTAuNyAzNjEuNCA3My40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlc0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEuNCAyMzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDEwOS4zIDI1NiAyNDYuNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTYwIDE2MHptMzUyLTE2MGwtMTYwIDE2MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMwMS4zIDI1NiA0MzguNiAxMTguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVzUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDcwLjYgMjc4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDQwMi43IDI1NiAyNjUuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwem0tMzUyIDE2MGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwYy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyMTAuNyAyNTYgNzMuNCAzOTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVzVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ2LjYgNDEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjI0IDEwOS4zIDM2MS40IDI0Ni42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjB6bTE2MCAzNTJsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDIyNCAzMDEuMyAzNjEuNCA0MzguNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmtoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0YzAgNDEuNi0yMC43IDc2LjYtNDYuNiAxMDQuMWMtNS45IDYuMi0xMS44IDExLjgtMTcuNCAxNi43Yy01LjYtNC45LTExLjUtMTAuNS0xNy40LTE2LjdDMTE2LjcgMjA0LjYgOTYgMTY5LjYgOTYgMTI4ek0xNjAgMEM4OS4zIDAgMzIgNTcuMyAzMiAxMjhjMCA1Mi40IDIxLjUgOTUuNSA0Ni44IDEyOEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMjBoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjQxLjJjMjUuNC0zMi41IDQ2LjgtNzUuNiA0Ni44LTEyOEMyODggNTcuMyAyMzAuNyAwIDE2MCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZVdob2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMTJjLTguOCAwLTE2LTcuMi0xNi0xNlY4MGMwLTQ0LjIgMzUuOC04MCA4MC04MGgxNmM4LjggMCAxNiA3LjIgMTYgMTZWMzJjMCA0NC4yLTM1LjggODAtODAgODBIMjI0ek0wIDI4OGMwLTc2LjMgMzUuNy0xNjAgMTEyLTE2MGMyNy4zIDAgNTkuNyAxMC4zIDgyLjcgMTkuM2MxOC44IDcuMyAzOS45IDcuMyA1OC43IDBjMjIuOS04LjkgNTUuNC0xOS4zIDgyLjctMTkuM2M3Ni4zIDAgMTEyIDgzLjcgMTEyIDE2MGMwIDEyOC04MCAyMjQtMTYwIDIyNGMtMTYuNSAwLTM4LjEtNi42LTUxLjUtMTEuM2MtOC4xLTIuOC0xNi45LTIuOC0yNSAwYy0xMy40IDQuNy0zNSAxMS4zLTUxLjUgMTEuM0M4MCA1MTIgMCA0MTYgMCAyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFyY2h3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTZoNjRWMzUyYzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZWNDgwaDY0IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjEyOEgzMlY0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93bjE5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1MC43IDM4Yy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMlYxNjBIMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDQ4IDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ2NFY2NGMwLTEwLjMtNC45LTE5LjktMTMuMy0yNnpNMTYwIDQ4MGM5IDAgMTcuNS0zLjggMjMuNi0xMC40bDg4LTk2YzExLjktMTMgMTEuMS0zMy4zLTItNDUuMnMtMzMuMy0xMS4xLTQ1LjIgMkwxOTIgMzY1LjdWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzY1LjdMOTUuNiAzMzAuNGMtMTEuOS0xMy0zMi4yLTEzLjktNDUuMi0ycy0xMy45IDMyLjItMiA0NS4ybDg4IDk2QzE0Mi41IDQ3Ni4yIDE1MSA0ODAgMTYwIDQ4MHpNNDE4LjMgMzA3YTMyIDMyIDAgMSAxIDI3LjQgNTcuOUEzMiAzMiAwIDEgMSA0MTguMyAzMDd6TTQwNS4xIDQxOS44bC02LjggOS4yYy0xMC41IDE0LjItNy41IDM0LjIgNi43IDQ0LjhzMzQuMiA3LjUgNDQuOC02LjdsNDguOC02NS44YzE0LTE4LjkgMjEuNS00MS43IDIxLjUtNjUuMmMwLTQ4LjYtMzkuNC04OC04OC04OHMtODggMzkuNC04OCA4OGMwIDM5LjIgMjUuNiA3Mi40IDYxLjEgODMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duOTEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDQ4MGM5IDAgMTcuNS0zLjggMjMuNi0xMC40bDg4LTk2YzExLjktMTMgMTEuMS0zMy4zLTItNDUuMnMtMzMuMy0xMS4xLTQ1LjIgMkwxOTIgMzY1LjdWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzY1LjdMOTUuNiAzMzAuNGMtMTEuOS0xMy0zMi4yLTEzLjktNDUuMi0ycy0xMy45IDMyLjItMiA0NS4ybDg4IDk2QzE0Mi41IDQ3Ni4yIDE1MSA0ODAgMTYwIDQ4MHpNNDUwLjcgMjk0Yy04LjMtNi0xOS4xLTcuNy0yOC44LTQuNGwtNDggMTZjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjVzMjMuNyAyNS44IDQwLjUgMjAuMmw1LjktMlY0MTZIMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDQ4IDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ2NFYzMjBjMC0xMC4zLTQuOS0xOS45LTEzLjMtMjZ6TTQxOC4zIDkxYTMyIDMyIDAgMSAxIDI3LjQgNTcuOUEzMiAzMiAwIDEgMSA0MTguMyA5MXpNNDA1LjEgMjAzLjhsLTYuOCA5LjJjLTEwLjUgMTQuMi03LjUgMzQuMiA2LjcgNDQuOHMzNC4yIDcuNSA0NC44LTYuN2w0OC44LTY1LjhjMTQtMTguOSAyMS41LTQxLjcgMjEuNS02NS4yYzAtNDguNi0zOS40LTg4LTg4LTg4cy04OCAzOS40LTg4IDg4YzAgMzkuMiAyNS42IDcyLjQgNjEuMSA4My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25BWiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuNiA0NjkuNkMxNzcuNSA0NzYuMiAxNjkgNDgwIDE2MCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDEyOCAzNjUuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM2NS43bDMyLjQtMzUuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTJzMTMuOSAzMi4yIDIgNDUuMmwtODggOTZ6TTMyMCAzMjBjMC0xNy43IDE0LjMtMzIgMzItMzJINDgwYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlMNDI5LjMgNDE2SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzNTJjLTEyLjkgMC0yNC42LTcuOC0yOS42LTE5LjhzLTIuMi0yNS43IDYuOS0zNC45TDQwMi43IDM1MkgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00MTYgMzJjMTIuMSAwIDIzLjIgNi44IDI4LjYgMTcuN2w2NCAxMjggMTYgMzJjNy45IDE1LjggMS41IDM1LTE0LjMgNDIuOXMtMzUgMS41LTQyLjktMTQuM0w0NjAuMiAyMjRIMzcxLjhsLTcuMiAxNC4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDE2LTMyIDY0LTEyOEMzOTIuOCAzOC44IDQwMy45IDMyIDQxNiAzMnpNMzk1LjggMTc2aDQwLjRMNDE2IDEzNS42IDM5NS44IDE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duTG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjkuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCA0MDIuNyAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzNzAuN0w4Ni42IDMyOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25TaG9ydFdpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjYgNDY5LjZDMTQ1LjUgNDc2LjIgMTM3IDQ4MCAxMjggNDgwcy0xNy41LTMuOC0yMy42LTEwLjRsLTg4LTk2Yy0xMS45LTEzLTExLjEtMzMuMyAyLTQ1LjJzMzMuMy0xMS4xIDQ1LjIgMkw5NiAzNjUuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM2NS43bDMyLjQtMzUuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTJzMTMuOSAzMi4yIDIgNDUuMmwtODggOTZ6TTMyMCAzMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgMTI4aDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxMjhINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duVXBBY3Jvc3NMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNy40IDUwMi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MDIuN1YyODhINTQ0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ0OFYxMDkuM2w0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzODQgMTA5LjNWMjI0SDE5MiAxMjggMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTZWNDAyLjdMODYuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZ6TTEyOCAxOTJoNjRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMTkyek00NDggMzIwSDM4NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93blVwTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTAuNiA1MDIuNmw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxNjAgNDAyLjdWMjg4SDQxNlYyNzJjMC0xNy4yIDMuOS0zMy41IDEwLjgtNDhIMzUyVjEwOS4zbDQxLjQgNDEuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05Ni05NmMtNi02LTE0LjEtOS40LTIyLjYtOS40cy0xNi42IDMuNC0yMi42IDkuNGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjg4IDEwOS4zVjIyNGwtMTI4IDBIOTZsLTY0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTZWNDAyLjdMNTQuNiAzNjEuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDB6TTE2MCAxOTJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMTkyaDY0ek0yODggMzIwVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyMEgyODh6bTI0MC04MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEg0OTZWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duV2lkZVNob3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MS42IDQ2OS42QzE0NS41IDQ3Ni4yIDEzNyA0ODAgMTI4IDQ4MHMtMTcuNS0zLjgtMjMuNi0xMC40bC04OC05NmMtMTEuOS0xMy0xMS4xLTMzLjMgMi00NS4yczMzLjMtMTEuMSA0NS4yIDJMOTYgMzY1LjdWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYzNjUuN2wzMi40LTM1LjRjMTEuOS0xMyAzMi4yLTEzLjkgNDUuMi0yczEzLjkgMzIuMiAyIDQ1LjJsLTg4IDk2ek0zMjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMHptMC0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwem0wLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0Rvd25aQSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuNiA0NjkuNkMxNzcuNSA0NzYuMiAxNjkgNDgwIDE2MCA0ODBzLTE3LjUtMy44LTIzLjYtMTAuNGwtODgtOTZjLTExLjktMTMtMTEuMS0zMy4zIDItNDUuMnMzMy4zLTExLjEgNDUuMiAyTDEyOCAzNjUuN1Y2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM2NS43bDMyLjQtMzUuNGMxMS45LTEzIDMyLjItMTMuOSA0NS4yLTJzMTMuOSAzMi4yIDIgNDUuMmwtODggOTZ6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOUw0MjkuMyAxNjBINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM1MmMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlMNDAyLjcgOTZIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMnptOTYgMTkyYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdsNjQgMTI4IDE2IDMyYzcuOSAxNS44IDEuNSAzNS0xNC4zIDQyLjlzLTM1IDEuNS00Mi45LTE0LjNMNDYwLjIgNDQ4SDM3MS44bC03LjIgMTQuM2MtNy45IDE1LjgtMjcuMSAyMi4yLTQyLjkgMTQuM3MtMjIuMi0yNy4xLTE0LjMtNDIuOWwxNi0zMiA2NC0xMjhjNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN3pNMzk1LjggNDAwaDQwLjRMNDE2IDM1OS42IDM5NS44IDQwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OS40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDM3MC44IDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwNi43TDU0LjYgMjY1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93TGVmdExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgMjg4IDQ4MCAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTM3MC43IDAgNzMuNC03My40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjIgMjg4IDQxNiAyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwNi43IDBMMjE0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE2MCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDU1LjJWNDI2YzAgMTIuMiA5LjkgMjIgMjIgMjJjNi4zIDAgMTIuNC0yLjcgMTYuNi03LjVMMTIxLjIgMzQ2bDU4LjEgMTE2LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45TDE3OS44IDMyMEgyOTcuOWMxMi4yIDAgMjIuMS05LjkgMjIuMS0yMi4xYzAtNi4zLTIuNy0xMi4zLTcuNC0xNi41TDM4LjYgMzcuOUMzNC4zIDM0LjEgMjguOSAzMiAyMy4yIDMyQzEwLjQgMzIgMCA0Mi40IDAgNTUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodEFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzguNiAxNTAuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDMzOC43IDk2IDMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDMwNi43IDAtNDEuNCA0MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDk2LTk2em0tMzMzLjMgMzUyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMMTA5LjMgNDE2IDQxNiA0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTMwNi43IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UmlnaHRGcm9tQnJhY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDE5MiAyMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMjEwLjcgMC03My40IDczLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpNMTYwIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDk2IDMyQzQzIDMyIDAgNzUgMCAxMjhMMCAzODRjMCA1MyA0MyA5NiA5NiA5Nmw2NCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC02NCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1JpZ2h0TG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMNDAyLjcgMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzNzAuNyAwLTczLjQgNzMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwxMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1JpZ2h0VG9CcmFja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA5Nmw2NCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDY0IDBjNTMgMCA5Ni00MyA5Ni05NmwwLTI1NmMwLTUzLTQzLTk2LTk2LTk2bC02NCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0tOS40IDE4Mi42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wyNDIuNyAyMjQgMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDIxMC43IDAtNzMuNCA3My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UmlnaHRUb0NpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjE5Mmg0MFYxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY3MmgyNGMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDMyIDMzNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6bTY0IDMydjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkgzNjh6TTM1MiAyNzJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZINTI4ek01MTIgMzY4djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNkg1MjhjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTY2LjYgMTUzLjRsODAgODBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTgwIDgwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wxNDYuNyAyODhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMTQ2LjdsLTI1LjQtMjUuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzguNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTYwLTE2MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNMMzM4LjggMjI0IDMyIDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzMDYuNyAwTDIzMy40IDM5My40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93Um90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjUuNyAxNjBIMTc2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjUxLjJMOTcuNiA5Ny42Yzg3LjUtODcuNSAyMjkuMy04Ny41IDMxNi44IDBzODcuNSAyMjkuMyAwIDMxNi44cy0yMjkuMyA4Ny41LTMxNi44IDBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjNjIuNSA2Mi41IDE2My44IDYyLjUgMjI2LjMgMHM2Mi41LTE2My44IDAtMjI2LjNzLTE2My44LTYyLjUtMjI2LjMgMEwxMjUuNyAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93Um90YXRlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg2LjMgMTYwSDMzNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0NjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NTEuMkw0MTQuNCA5Ny42Yy04Ny41LTg3LjUtMjI5LjMtODcuNS0zMTYuOCAwcy04Ny41IDIyOS4zIDAgMzE2LjhzMjI5LjMgODcuNSAzMTYuOCAwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwcy02Mi41LTE2My44IDAtMjI2LjNzMTYzLjgtNjIuNSAyMjYuMyAwTDM4Ni4zIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dUcmVuZERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjgyLjdMMzQyLjYgMTM3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE5MiAyNDIuNyA1NC42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDMyMCAyMDUuMyA0NjYuNyAzNTJIMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1RyZW5kVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIwNS4zTDM0Mi42IDM3NC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMEwxOTIgMjY5LjMgNTQuNiA0MDYuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTYwLTE2MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMEwzMjAgMzA2LjcgNDY2LjcgMTYwSDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dUdXJuRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwbDk2IDBjNTMgMCA5NiA0MyA5NiA5NmwwIDMwNi43IDczLjQtNzMuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0xMjggMTI4Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgNDAyLjcgMTYwIDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyTDMyIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1R1cm5VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsOTYgMGM1MyAwIDk2LTQzIDk2LTk2bDAtMzA2LjcgNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxMDkuMyAxNjAgNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwMTkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUwLjcgMzhjOC4zIDYgMTMuMyAxNS43IDEzLjMgMjZ2OTZoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDMyIDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgxNlYxMDguNGwtNS45IDJjLTE2LjggNS42LTM0LjktMy41LTQwLjUtMjAuMnMzLjUtMzQuOSAyMC4yLTQwLjVsNDgtMTZjOS44LTMuMyAyMC41LTEuNiAyOC44IDQuNHpNMTYwIDMyYzkgMCAxNy41IDMuOCAyMy42IDEwLjRsODggOTZjMTEuOSAxMyAxMS4xIDMzLjMtMiA0NS4ycy0zMy4zIDExLjEtNDUuMi0yTDE5MiAxNDYuM1Y0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTQ2LjNMOTUuNiAxODEuNmMtMTEuOSAxMy0zMi4yIDEzLjktNDUuMiAycy0xMy45LTMyLjItMi00NS4ybDg4LTk2QzE0Mi41IDM1LjggMTUxIDMyIDE2MCAzMnpNNDQ1LjcgMzY0LjlBMzIgMzIgMCAxIDAgNDE4LjMgMzA3YTMyIDMyIDAgMSAwIDI3LjQgNTcuOXptLTQwLjcgNTQuOUMzNjkuNiA0MDguNCAzNDQgMzc1LjIgMzQ0IDMzNmMwLTQ4LjYgMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMjMuNS03LjUgNDYuMy0yMS41IDY1LjJMNDQ5LjcgNDY3Yy0xMC41IDE0LjItMzAuNiAxNy4yLTQ0LjggNi43cy0xNy4yLTMwLjYtNi43LTQ0LjhsNi44LTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcDkxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAzMmM5IDAgMTcuNSAzLjggMjMuNiAxMC40bDg4IDk2YzExLjkgMTMgMTEuMSAzMy4zLTIgNDUuMnMtMzMuMyAxMS4xLTQ1LjItMkwxOTIgMTQ2LjNWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE0Ni4zTDk1LjYgMTgxLjZjLTExLjkgMTMtMzIuMiAxMy45LTQ1LjIgMnMtMTMuOS0zMi4yLTItNDUuMmw4OC05NkMxNDIuNSAzNS44IDE1MSAzMiAxNjAgMzJ6TTQ1MC43IDI5NGM4LjMgNiAxMy4zIDE1LjcgMTMuMyAyNnY5NmgxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0MzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDE2VjM2NC40bC01LjkgMmMtMTYuOCA1LjYtMzQuOS0zLjUtNDAuNS0yMC4yczMuNS0zNC45IDIwLjItNDAuNWw0OC0xNmM5LjgtMy4zIDIwLjUtMS42IDI4LjggNC40em0tNS0xNDUuMUEzMiAzMiAwIDEgMCA0MTguMyA5MWEzMiAzMiAwIDEgMCAyNy40IDU3Ljl6bS00MC43IDU0LjlDMzY5LjYgMTkyLjQgMzQ0IDE1OS4yIDM0NCAxMjBjMC00OC42IDM5LjQtODggODgtODhzODggMzkuNCA4OCA4OGMwIDIzLjUtNy41IDQ2LjMtMjEuNSA2NS4yTDQ0OS43IDI1MWMtMTAuNSAxNC4yLTMwLjYgMTcuMi00NC44IDYuN3MtMTcuMi0zMC42LTYuNy00NC44bDYuOC05LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBBWiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuNiA0Mi40QzE3Ny41IDM1LjggMTY5IDMyIDE2MCAzMnMtMTcuNSAzLjgtMjMuNiAxMC40bC04OCA5NmMtMTEuOSAxMy0xMS4xIDMzLjMgMiA0NS4yczMzLjMgMTEuMSA0NS4yLTJMMTI4IDE0Ni4zVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0Ni4zbDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTAuN2wtNzMuNCA3My40Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0MjkuM2w3My40LTczLjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNDE2IDMyYy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43bC02NCAxMjgtMTYgMzJjLTcuOSAxNS44LTEuNSAzNSAxNC4zIDQyLjlzMzUgMS41IDQyLjktMTQuM2w3LjItMTQuM2g4OC40bDcuMiAxNC4zYzcuOSAxNS44IDI3LjEgMjIuMiA0Mi45IDE0LjNzMjIuMi0yNy4xIDE0LjMtNDIuOWwtMTYtMzItNjQtMTI4QzQzOS4yIDM4LjggNDI4LjEgMzIgNDE2IDMyek0zOTUuOCAxNzZMNDE2IDEzNS42IDQzNi4yIDE3NkgzOTUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcEZyb21CcmFja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTEyOCAxMjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTkyIDEwOS4zIDE5MiAzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTIxMC43IDczLjQgNzMuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xMjgtMTI4ek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDUzIDQzIDk2IDk2IDk2bDI1NiAwYzUzIDAgOTYtNDMgOTYtOTZsMC02NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDk2IDQ0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcEZyb21Hcm91bmRXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEwOS4zbDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI1NiAxMDkuM1YzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bS0xOC41IDY5LjlDMjQ3IDQzNy40IDIxOS41IDQ0OCAxOTIgNDQ4Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWwwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNTAxLjcgMTU5IDUxMiAxOTIgNTEyYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43bDAgMEM0MzkuNCA0MzcuMiA0MTAuOSA0NDggMzg0IDQ0OGMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwek0xOTIgMTkySDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OFY0MjVjNS4zLTMuMSAxMS4yLTUuNCAxNy41LTYuOWMxMy4xLTMuMSAyNi43LTkuOCAzNy4zLTE4LjZjMjIuMi0xOC43IDU0LjMtMjAuMSA3OC4xLTMuNGMxOCAxMi40IDQwLjEgMjAuMyA1OS4xIDIwLjNWMTkyem0zODQgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzg0VjQxNi41aDBjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMjMuOC0xNi43IDU1LjgtMTUuMyA3OC4xIDMuNGMxMC42IDguOCAyNC4yIDE1LjYgMzcuMyAxOC42YzYuMyAxLjUgMTIuMSAzLjggMTcuNSA2LjlWMjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwRnJvbVdhdGVyUHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMEM4NS41IDAgNjQgMjEuNSA2NCA0OFYyNTZINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djk2YzAgOCAyIDE1LjYgNS40IDIyLjJjMy44LTEuNyA3LjgtMy4xIDEyLTQuMWMxMy4xLTMuMSAyNi43LTkuOCAzNy4zLTE4LjZjMjIuMi0xOC43IDU0LjMtMjAuMSA3OC4xLTMuNGMxOCAxMi40IDQwLjEgMjAuMyA1OS4yIDIwLjNjMjEuMSAwIDQyLTguNSA1OS4yLTIwLjNjMjIuMS0xNS41IDUxLjYtMTUuNSA3My43IDBjMTguNCAxMi43IDM5LjYgMjAuMyA1OS4yIDIwLjNjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMjMuOC0xNi43IDU1LjgtMTUuMyA3OC4xIDMuNGMxMC42IDguOCAyNC4yIDE1LjYgMzcuMyAxOC42YzQuMiAxIDguMiAyLjQgMTIgNC4xQzU3NCA0MTUuNiA1NzYgNDA4IDU3NiA0MDBWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4MGwwLTE0Ni43IDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC04MC04MGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTgwIDgwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDQxNiAxMDkuMyA0MTYgMjU2SDI4OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgxMTJ6TTMwNi41IDQyMS45Yy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI0NyA0MzcuNCAyMTkuNSA0NDggMTkyIDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzEyNi41IDUwMS43IDE1OSA1MTIgMTkyIDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC41IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDM5LjQgNDM3LjIgNDEwLjkgNDQ4IDM4NCA0NDhjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dVcExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE0LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxNjAgMTA5LjNWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTA5LjNsNzMuNCA3My40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBSaWdodERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNTAuN0w5LjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMjU2IDEwOS4zVjE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2MHpNNTc2IDgwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ0OCAyMDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDAwIDM4NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ4IDgwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTEyOCAwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTI3MiAzODRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00OCA4MGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNDQgNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTc2IDMzNmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0tNDgtODBhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwUmlnaHRGcm9tU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDgyLjdMMjAxLjQgMjY1LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMNDQ4IDEwOS4zVjE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyMHpNODAgMzJDMzUuOCAzMiAwIDY3LjggMCAxMTJWNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwSDQwMGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNDMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZIMTkyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwU2hvcnRXaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MS42IDQyLjRDMTQ1LjUgMzUuOCAxMzcgMzIgMTI4IDMycy0xNy41IDMuOC0yMy42IDEwLjRsLTg4IDk2Yy0xMS45IDEzLTExLjEgMzMuMyAyIDQ1LjJzMzMuMyAxMS4xIDQ1LjItMkw5NiAxNDYuM1Y0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNDYuM2wzMi40IDM1LjRjMTEuOSAxMyAzMi4yIDEzLjkgNDUuMiAyczEzLjktMzIuMiAyLTQ1LjJsLTg4LTk2ek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwem0wIDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjB6bTAgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBXaWRlU2hvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjYgNDIuNEMxNDUuNSAzNS44IDEzNyAzMiAxMjggMzJzLTE3LjUgMy44LTIzLjYgMTAuNGwtODggOTZjLTExLjkgMTMtMTEuMSAzMy4zIDIgNDUuMnMzMy4zIDExLjEgNDUuMi0yTDk2IDE0Ni4zVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0Ni4zbDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCA0ODBoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyem0wLTEyOGg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6bTAtMTI4SDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXBaQSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuNiA0Mi40QzE3Ny41IDM1LjggMTY5IDMyIDE2MCAzMnMtMTcuNSAzLjgtMjMuNiAxMC40bC04OCA5NmMtMTEuOSAxMy0xMS4xIDMzLjMgMiA0NS4yczMzLjMgMTEuMSA0NS4yLTJMMTI4IDE0Ni4zVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0Ni4zbDMyLjQgMzUuNGMxMS45IDEzIDMyLjIgMTMuOSA0NS4yIDJzMTMuOS0zMi4yIDItNDUuMmwtODgtOTZ6TTMyMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MC43bC03My40IDczLjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQyOS4zbDczLjQtNzMuNGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEgzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxOTJjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTY0IDEyOC0xNiAzMmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDcuMi0xNC4zaDg4LjRsNy4yIDE0LjNjNy45IDE1LjggMjcuMSAyMi4yIDQyLjkgMTQuM3MyMi4yLTI3LjEgMTQuMy00Mi45bC0xNi0zMi02NC0xMjhDNDM5LjIgMjYyLjggNDI4LjEgMjU2IDQxNiAyNTZ6TTM5NS44IDQwMEw0MTYgMzU5LjYgNDM2LjIgNDAwSDM5NS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNDEuMkwzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NEb3duVG9MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCA0MTZMMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyem0yMi42LTEzNy40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDQ4MCAyNzQuNyA0ODAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuNy00MS40LTQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2em0tMzIwLTQ1LjNjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwTDE2MCAyNzQuNyAxNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAyMTAuN0w1NC42IDIzMy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5NiA5NmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Ni05NmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzRG93blRvUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNFYxNDIuMUw5NyAxMTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsNjQtNjRjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtMjMgMjNWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTM2MCAyMDBhNDAgNDAgMCAxIDAgLTgwIDAgNDAgNDAgMCAxIDAgODAgMHpNMTg0IDI5NmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0zMTIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek0yMDAgNDQxLjVsMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzYuMy02Ny41YzEuNy0xLjcgMy4yLTMuNiA0LjMtNS44TDI2NCAzNDUuNVY0MDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzQ1LjVsMjYuOSA0OS45YzEuMiAyLjIgMi42IDQuMSA0LjMgNS44bC0zNi4zIDY3LjVjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDQ0MCA0NDEuNVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDQxLjVsMjYuOSA0OS45YzYuMyAxMS43IDIwLjggMTYgMzIuNSA5LjhzMTYtMjAuOCA5LjgtMzIuNWwtMzcuOS03MC4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM0g0ODYuMmMtMTYuMyAwLTMxLjkgNC41LTQ1LjQgMTIuNmwtMzMuNi02Mi4zYy0xNS4zLTI4LjUtNDUuMS00Ni4zLTc3LjUtNDYuM0gzMTAuMmMtMzIuNCAwLTYyLjEgMTcuOC03Ny41IDQ2LjNsLTMzLjYgNjIuM2MtMTMuNS04LjEtMjkuMS0xMi42LTQ1LjQtMTIuNkgxMzQuMmMtMzIuNCAwLTYyLjEgMTcuOC03Ny41IDQ2LjNMMTguOSA0NjguNmMtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMODggNDQxLjVWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ0MS41ek00MTUgMTUzbDY0IDY0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDY0LTY0YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTIzIDIzVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjE0Mi4xbC0yMy0yM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzTGVmdFJpZ2h0VG9MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjk2QzAgNzguMyAxNC4zIDY0IDMyIDY0em0yMTQuNiA3My40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zTDIwNS4zIDIyNGwyMjkuNSAwLTQxLjQtNDEuNGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDQzNC43IDI4OGwtMjI5LjUgMCA0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTk2LTk2Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHpNNjQwIDk2VjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NMZWZ0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA2LjYgMzc0LjZsOTYtOTZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0w0MDIuNyAyMjRsLTI5My41IDAgNDEuNC00MS40YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsOTYgOTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wxMDkuMyAyODhsMjkzLjUgMC00MS40IDQxLjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1JvdGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuMSAyMDIuNmM3LjctMjEuOCAyMC4yLTQyLjMgMzcuOC01OS44YzYyLjUtNjIuNSAxNjMuOC02Mi41IDIyNi4zIDBMMzg2LjMgMTYwSDM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0NjMuNWMwIDAgMCAwIDAgMGguNGMxNy43IDAgMzItMTQuMyAzMi0zMlY4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnYzNS4yTDQxNC40IDk3LjZjLTg3LjUtODcuNS0yMjkuMy04Ny41LTMxNi44IDBDNzMuMiAxMjIgNTUuNiAxNTAuNyA0NC44IDE4MS40Yy01LjkgMTYuNyAyLjkgMzQuOSAxOS41IDQwLjhzMzQuOS0yLjkgNDAuOC0xOS41ek0zOSAyODkuM2MtNSAxLjUtOS44IDQuMi0xMy43IDguMmMtNCA0LTYuNyA4LjgtOC4xIDE0Yy0uMyAxLjItLjYgMi41LS44IDMuOGMtLjMgMS43LS40IDMuNC0uNCA1LjFWNDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzk2LjlsMTcuNiAxNy41IDAgMGM4Ny41IDg3LjQgMjI5LjMgODcuNCAzMTYuNyAwYzI0LjQtMjQuNCA0Mi4xLTUzLjEgNTIuOS04My43YzUuOS0xNi43LTIuOS0zNC45LTE5LjUtNDAuOHMtMzQuOSAyLjktNDAuOCAxOS41Yy03LjcgMjEuOC0yMC4yIDQyLjMtMzcuOCA1OS44Yy02Mi41IDYyLjUtMTYzLjggNjIuNS0yMjYuMyAwbC0uMS0uMUwxMjUuNiAzNTJIMTYwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ4LjRjLTEuNiAwLTMuMiAuMS00LjggLjNzLTMuMSAuNS00LjYgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzU3BpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOTZjMzguNCAwIDczLjcgMTMuNSAxMDEuMyAzNi4xbC0zMi42IDMyLjZjLTQuNiA0LjYtNS45IDExLjUtMy41IDE3LjRzOC4zIDkuOSAxNC44IDkuOUg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtNi41LTMuOS0xMi4zLTkuOS0xNC44cy0xMi45LTEuMS0xNy40IDMuNWwtMzQgMzRDMzYzLjQgNTIuNiAzMTIuMSAzMiAyNTYgMzJjLTEwLjkgMC0yMS41IC44LTMyIDIuM1Y5OS4yYzEwLjMtMi4xIDIxLTMuMiAzMi0zLjJ6TTEzMi4xIDE1NC43bDMyLjYgMzIuNmM0LjYgNC42IDExLjUgNS45IDE3LjQgMy41czkuOS04LjMgOS45LTE0LjhWNjRjMC04LjgtNy4yLTE2LTE2LTE2SDY0Yy02LjUgMC0xMi4zIDMuOS0xNC44IDkuOXMtMS4xIDEyLjkgMy41IDE3LjRsMzQgMzRDNTIuNiAxNDguNiAzMiAxOTkuOSAzMiAyNTZjMCAxMC45IC44IDIxLjUgMi4zIDMySDk5LjJjLTIuMS0xMC4zLTMuMi0yMS0zLjItMzJjMC0zOC40IDEzLjUtNzMuNyAzNi4xLTEwMS4zek00NzcuNyAyMjRINDEyLjhjMi4xIDEwLjMgMy4yIDIxIDMuMiAzMmMwIDM4LjQtMTMuNSA3My43LTM2LjEgMTAxLjNsLTMyLjYtMzIuNmMtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNXMtOS45IDguMy05LjkgMTQuOFY0NDhjMCA4LjggNy4yIDE2IDE2IDE2SDQ0OGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtMzQtMzRDNDU5LjQgMzYzLjQgNDgwIDMxMi4xIDQ4MCAyNTZjMC0xMC45LS44LTIxLjUtMi4zLTMyek0yNTYgNDE2Yy0zOC40IDAtNzMuNy0xMy41LTEwMS4zLTM2LjFsMzIuNi0zMi42YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRzLTguMy05LjktMTQuOC05LjlINjRjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDExMmMwIDYuNSAzLjkgMTIuMyA5LjkgMTQuOHMxMi45IDEuMSAxNy40LTMuNWwzNC0zNEMxNDguNiA0NTkuNCAxOTkuOSA0ODAgMjU2IDQ4MGMxMC45IDAgMjEuNS0uOCAzMi0yLjNWNDEyLjhjLTEwLjMgMi4xLTIxIDMuMi0zMiAzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1NwbGl0VXBBbmRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ni42IDE1MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w5Ni05NmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzNTIgMTA5LjNWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQxNmMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTA5LjNsNDEuNCA0MS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwbC05Ni05NmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNsOTYtOTZjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBzMTIuNSAzMi44IDAgNDUuM0wxMDkuMyAyNTZIMjI0YzIzLjMgMCA0NS4yIDYuMiA2NCAxNy4xVjEwOS4zbC00MS40IDQxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1RvQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNCA5LjRDMjEuOS0zLjEgNDIuMS0zLjEgNTQuNiA5LjRMMTYwIDExNC43Vjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2OTZjMCA0LjMtLjkgOC41LTIuNCAxMi4yYy0xLjYgMy43LTMuOCA3LjMtNi45IDEwLjNsLS4xIC4xYy0zLjEgMy02LjYgNS4zLTEwLjMgNi45Yy0zLjggMS42LTcuOSAyLjQtMTIuMiAyLjRIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMTguN0w5LjQgNTQuNkMtMy4xIDQyLjEtMy4xIDIxLjkgOS40IDkuNHpNMjU2IDI1NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTExNC43IDM1Mkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg5NiAwbC4xIDBjOC44IDAgMTYuNyAzLjYgMjIuNSA5LjNsLjEgLjFjMyAzLjEgNS4zIDYuNiA2LjkgMTAuM2MxLjYgMy44IDIuNCA3LjkgMi40IDEyLjJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzk3LjNMNTQuNiA1MDIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTE0LjcgMzUyek00MTYgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnYxOC43TDU4NS40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDUyNS4zIDE2MEg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDQ4Yy04LjggMC0xNi44LTMuNi0yMi42LTkuM2wtLjEtLjFjLTMtMy4xLTUuMy02LjYtNi45LTEwLjNzLTIuNC03LjgtMi40LTEyLjJsMC0uMXYwVjk2ek01MjUuMyAzNTJMNjMwLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMNDgwIDM5Ny4zVjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMjB2MGMwIDAgMC0uMSAwLS4xYzAtNC4zIC45LTguNCAyLjQtMTIuMmMxLjYtMy44IDMuOS03LjMgNi45LTEwLjRjNS44LTUuOCAxMy43LTkuMyAyMi41LTkuNGMwIDAgLjEgMCAuMSAwaDAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTI1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1RvRG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0aDMyYzEyLjkgMCAyNC42IDcuOCAyOS42IDE5LjhzMi4yIDI1LjctNi45IDM0LjlsLTY0IDY0Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNjQtNjRjLTkuMi05LjItMTEuOS0yMi45LTYuOS0zNC45czE2LjYtMTkuOCAyOS42LTE5LjhoMzJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTE2OS40IDM5My40bDY0LTY0YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzkuMiA5LjIgMTEuOSAyMi45IDYuOSAzNC45cy0xNi42IDE5LjgtMjkuNiAxOS44SDI4OHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMTkyYy0xMi45IDAtMjQuNi03LjgtMjkuNi0xOS44cy0yLjItMjUuNyA2LjktMzQuOXpNMzIgMjI0SDY0VjE5MmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlzLTE5LjgtMTYuNi0xOS44LTI5LjZWMjg4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyem0yOTcuNCA1NC42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM2w2NC02NGM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXMxOS44IDE2LjYgMTkuOCAyOS42djMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ0OHYzMmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtNjQtNjR6TTI1NiAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NUb0V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNUMyNC40IDUuNyAzOS42IDUuNyA0OSAxNWw2MyA2M1Y0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djk2YzAgMTMuMy0xMC43IDI0LTI0IDI0SDQwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0SDc4LjFMMTUgNDlDNS43IDM5LjYgNS43IDI0LjQgMTUgMTV6TTEzMy41IDI0My45QzE1OC42IDE5My42IDIyMi43IDExMiAzMjAgMTEyczE2MS40IDgxLjYgMTg2LjUgMTMxLjljMy44IDcuNiAzLjggMTYuNSAwIDI0LjJDNDgxLjQgMzE4LjQgNDE3LjMgNDAwIDMyMCA0MDBzLTE2MS40LTgxLjYtMTg2LjUtMTMxLjljLTMuOC03LjYtMy44LTE2LjUgMC0yNC4yek0zMjAgMzIwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek01OTEgMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC02MyA2M0g2MDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINTA0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY0MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0Vjc4LjFsNjMtNjN6TTE1IDQ5N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNjMtNjNINDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjR2OTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWNDMzLjlMNDkgNDk3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHptNTc2IDBsLTYzLTYzVjQ3MmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINTYxLjlsNjMgNjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzVHVyblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5Ny40IDkuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGw5NiA5NmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtOTYgOTZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDMzOC43IDE2MEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNEMwIDE1My4zIDU3LjMgOTYgMTI4IDk2SDMzOC43TDI5Ny40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zem0tOTYgMjU2YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDk2IDk2YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC05NiA5NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMjQyLjcgNDE2SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhjMC01MyA0My05NiA5Ni05NkgyNDIuN2wtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzVHVyblRvRG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDkuNCAyNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNMMjY5LjMgOTYgNDE2IDk2YzUzIDAgOTYgNDMgOTYgOTZ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMybC0xNDYuNyAwIDI1LjQgMjUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMGwtODAtODBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDgwLTgwem0xMy4zIDI1Nmw4MCA4MGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtODAgODBjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDI0Mi43IDQxNiA5NiA0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OGMwLTUzIDQzLTk2IDk2LTk2bDE0Ni43IDAtMjUuNC0yNS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwek0zODQgMzg0YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNNjQgMTkyQTY0IDY0IDAgMSAxIDY0IDY0YTY0IDY0IDAgMSAxIDAgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NVcERvd25MZWZ0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOS40LTkuNFYyMjRIMTA5LjNsOS40LTkuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTkuNC05LjRIMjI0VjQwMi43bC05LjQtOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOS40IDkuNFYyODhINDAyLjdsLTkuNCA5LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2w5LjQgOS40SDI4OFYxMDkuM2w5LjQgOS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NVcERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgyLjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTI4IDEwOS4zVjQwMi43TDg2LjYgMzYxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDk2LTk2YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiA0MDIuN1YxMDkuM2w0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93c1VwVG9MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDk2bDUxMiAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyTDMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5NnpNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDk2IDIzNy4zIDk2IDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtMjEwLjcgNDEuNCA0MS40YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTk2LTk2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtOTYgOTZ6bTMyMCA0NS4zYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwTDQxNiAyMzcuMyA0MTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMTAuNyA0MS40IDQxLjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtOTYtOTZjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC05NiA5NmMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzdGVyaXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYxOTkuNWwxMTEuNS02Ni45YzE1LjItOS4xIDM0LjgtNC4yIDQzLjkgMTFzNC4yIDM0LjgtMTEgNDMuOUwyNTQuMiAyNTZsMTE0LjMgNjguNmMxNS4yIDkuMSAyMC4xIDI4LjcgMTEgNDMuOXMtMjguNyAyMC4xLTQzLjkgMTFMMjI0IDMxMi41VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMTIuNUw0OC41IDM3OS40Yy0xNS4yIDkuMS0zNC44IDQuMi00My45LTExcy00LjItMzQuOCAxMS00My45TDEyOS44IDI1NiAxNS41IDE4Ny40Yy0xNS4yLTkuMS0yMC4xLTI4LjctMTEtNDMuOXMyOC43LTIwLjEgNDMuOS0xMUwxNjAgMTk5LjVWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA2NEMxNTAgNjQgNjQgMTUwIDY0IDI1NnM4NiAxOTIgMTkyIDE5MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NlMxMTQuNiAwIDI1NiAwUzUxMiAxMTQuNiA1MTIgMjU2djMyYzAgNTMtNDMgOTYtOTYgOTZjLTI5LjMgMC01NS42LTEzLjItNzMuMi0zMy45QzMyMCAzNzEuMSAyODkuNSAzODQgMjU2IDM4NGMtNzAuNyAwLTEyOC01Ny4zLTEyOC0xMjhzNTcuMy0xMjggMTI4LTEyOGMyNy45IDAgNTMuNyA4LjkgNzQuNyAyNC4xYzUuNy01IDEzLjEtOC4xIDIxLjMtOC4xYzE3LjcgMCAzMiAxNC4zIDMyIDMydjgwIDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyem02NCAxOTJhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdG9tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzOTguOGMtMTEuOCA1LjEtMjMuNCA5LjctMzQuOSAxMy41YzE2LjcgMzMuOCAzMSAzNS43IDM0LjkgMzUuN3MxOC4xLTEuOSAzNC45LTM1LjdjLTExLjQtMy45LTIzLjEtOC40LTM0LjktMTMuNXpNNDQ2IDI1NmMzMyA0NS4yIDQ0LjMgOTAuOSAyMy42IDEyOGMtMjAuMiAzNi4zLTYyLjUgNDkuMy0xMTUuMiA0My4yYy0yMiA1Mi4xLTU1LjYgODQuOC05OC40IDg0LjhzLTc2LjQtMzIuNy05OC40LTg0LjhjLTUyLjcgNi4xLTk1LTYuOC0xMTUuMi00My4yQzIxLjcgMzQ2LjkgMzMgMzAxLjIgNjYgMjU2Yy0zMy00NS4yLTQ0LjMtOTAuOS0yMy42LTEyOGMyMC4yLTM2LjMgNjIuNS00OS4zIDExNS4yLTQzLjJDMTc5LjYgMzIuNyAyMTMuMiAwIDI1NiAwczc2LjQgMzIuNyA5OC40IDg0LjhjNTIuNy02LjEgOTUgNi44IDExNS4yIDQzLjJjMjAuNyAzNy4xIDkuNCA4Mi44LTIzLjYgMTI4em0tNjUuOCA2Ny40Yy0xLjcgMTQuMi0zLjkgMjgtNi43IDQxLjJjMzEuOCAxLjQgMzguNi04LjcgNDAuMi0xMS43YzIuMy00LjIgNy0xNy45LTExLjktNDguMWMtNi44IDYuMy0xNCAxMi41LTIxLjYgMTguNnptLTYuNy0xNzUuOWMyLjggMTMuMSA1IDI2LjkgNi43IDQxLjJjNy42IDYuMSAxNC44IDEyLjMgMjEuNiAxOC42YzE4LjktMzAuMiAxNC4yLTQ0IDExLjktNDguMWMtMS42LTIuOS04LjQtMTMtNDAuMi0xMS43ek0yOTAuOSA5OS43QzI3NC4xIDY1LjkgMjU5LjkgNjQgMjU2IDY0cy0xOC4xIDEuOS0zNC45IDM1LjdjMTEuNCAzLjkgMjMuMSA4LjQgMzQuOSAxMy41YzExLjgtNS4xIDIzLjQtOS43IDM0LjktMTMuNXptLTE1OSA4OC45YzEuNy0xNC4zIDMuOS0yOCA2LjctNDEuMmMtMzEuOC0xLjQtMzguNiA4LjctNDAuMiAxMS43Yy0yLjMgNC4yLTcgMTcuOSAxMS45IDQ4LjFjNi44LTYuMyAxNC0xMi41IDIxLjYtMTguNnpNMTEwLjIgMzA0LjhDOTEuNCAzMzUgOTYgMzQ4LjcgOTguMyAzNTIuOWMxLjYgMi45IDguNCAxMyA0MC4yIDExLjdjLTIuOC0xMy4xLTUtMjYuOS02LjctNDEuMmMtNy42LTYuMS0xNC44LTEyLjMtMjEuNi0xOC42ek0zMzYgMjU2YTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHptLTgwLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXVkaW9EZXNjcmlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIxMy41IDE3My4zbDcyIDE0NGM1LjkgMTEuOSAxLjEgMjYuMy0xMC43IDMyLjJzLTI2LjMgMS4xLTMyLjItMTAuN2wtOS40LTE4LjlIMTUwLjlsLTkuNCAxOC45Yy01LjkgMTEuOS0yMC4zIDE2LjctMzIuMiAxMC43cy0xNi43LTIwLjMtMTAuNy0zMi4ybDcyLTE0NGM0LjEtOC4xIDEyLjQtMTMuMyAyMS41LTEzLjNzMTcuNCA1LjEgMjEuNSAxMy4zem0tLjQgMTA2LjZMMTkyIDIzNy43bC0yMS4xIDQyLjJoNDIuMnpNMzA0IDE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg1NmM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NkgzMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE4NHptNDggMjR2OTZoMzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhIMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdXN0cmFsU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTMuNSA1MS43QzI0OC42IDM5LjggMjM2LjkgMzIgMjI0IDMycy0yNC42IDcuOC0yOS41IDE5LjdMMTIyLjcgMjI0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDk2TDgyLjcgMzIwSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU2TDM0LjUgNDM1LjdjLTYuOCAxNi4zIC45IDM1IDE3LjIgNDEuOHMzNS0uOSA0MS44LTE3LjJMMTI1LjMgMzg0SDMyMi43bDMxLjggNzYuM2M2LjggMTYuMyAyNS41IDI0IDQxLjggMTcuMnMyNC0yNS41IDE3LjItNDEuOEwzOTIgMzg0aDI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM2NS4zTDM1MiAyODhoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzI1LjNMMjUzLjUgNTEuN3pNMjU2IDIyNEgxOTJsMzItNzYuOEwyNTYgMjI0em0tOTAuNyA2NEgyODIuN0wyOTYgMzIwSDE1MmwxMy4zLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzMuOCA1LjVjMTEtNy4zIDI1LjQtNy4zIDM2LjQgMEwyMjggMTcuMmM2IDMuOSAxMyA1LjggMjAuMSA1LjRsMjEuMy0xLjNjMTMuMi0uOCAyNS42IDYuNCAzMS41IDE4LjJsOS42IDE5LjFjMy4yIDYuNCA4LjQgMTEuNSAxNC43IDE0LjdMMzQ0LjUgODNjMTEuOCA1LjkgMTkgMTguMyAxOC4yIDMxLjVsLTEuMyAyMS4zYy0uNCA3LjEgMS41IDE0LjIgNS40IDIwLjFsMTEuOCAxNy44YzcuMyAxMSA3LjMgMjUuNCAwIDM2LjRMMzY2LjggMjI4Yy0zLjkgNi01LjggMTMtNS40IDIwLjFsMS4zIDIxLjNjLjggMTMuMi02LjQgMjUuNi0xOC4yIDMxLjVsLTE5LjEgOS42Yy02LjQgMy4yLTExLjUgOC40LTE0LjcgMTQuN0wzMDEgMzQ0LjVjLTUuOSAxMS44LTE4LjMgMTktMzEuNSAxOC4ybC0yMS4zLTEuM2MtNy4xLS40LTE0LjIgMS41LTIwLjEgNS40bC0xNy44IDExLjhjLTExIDcuMy0yNS40IDcuMy0zNi40IDBMMTU2IDM2Ni44Yy02LTMuOS0xMy01LjgtMjAuMS01LjRsLTIxLjMgMS4zYy0xMy4yIC44LTI1LjYtNi40LTMxLjUtMTguMmwtOS42LTE5LjFjLTMuMi02LjQtOC40LTExLjUtMTQuNy0xNC43TDM5LjUgMzAxYy0xMS44LTUuOS0xOS0xOC4zLTE4LjItMzEuNWwxLjMtMjEuM2MuNC03LjEtMS41LTE0LjItNS40LTIwLjFMNS41IDIxMC4yYy03LjMtMTEtNy4zLTI1LjQgMC0zNi40TDE3LjIgMTU2YzMuOS02IDUuOC0xMyA1LjQtMjAuMWwtMS4zLTIxLjNjLS44LTEzLjIgNi40LTI1LjYgMTguMi0zMS41bDE5LjEtOS42QzY1IDcwLjIgNzAuMiA2NSA3My40IDU4LjZMODMgMzkuNWM1LjktMTEuOCAxOC4zLTE5IDMxLjUtMTguMmwyMS4zIDEuM2M3LjEgLjQgMTQuMi0xLjUgMjAuMS01LjRMMTczLjggNS41ek0yNzIgMTkyYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpNMS4zIDQ0MS44TDQ0LjQgMzM5LjNjLjIgLjEgLjMgLjIgLjQgLjRsOS42IDE5LjFjMTEuNyAyMy4yIDM2IDM3LjMgNjIgMzUuOGwyMS4zLTEuM2MuMiAwIC41IDAgLjcgLjJsMTcuOCAxMS44YzUuMSAzLjMgMTAuNSA1LjkgMTYuMSA3LjdsLTM3LjYgODkuM2MtMi4zIDUuNS03LjQgOS4yLTEzLjMgOS43cy0xMS42LTIuMi0xNC44LTcuMkw3NC40IDQ1NS41bC01Ni4xIDguM2MtNS43IC44LTExLjQtMS41LTE1LTZzLTQuMy0xMC43LTIuMS0xNnptMjQ4IDYwLjRMMjExLjcgNDEzYzUuNi0xLjggMTEtNC4zIDE2LjEtNy43bDE3LjgtMTEuOGMuMi0uMSAuNC0uMiAuNy0uMmwyMS4zIDEuM2MyNiAxLjUgNTAuMy0xMi42IDYyLTM1LjhsOS42LTE5LjFjLjEtLjIgLjItLjMgLjQtLjRsNDMuMiAxMDIuNWMyLjIgNS4zIDEuNCAxMS40LTIuMSAxNnMtOS4zIDYuOS0xNSA2bC01Ni4xLTguMy0zMi4yIDQ5LjJjLTMuMiA1LTguOSA3LjctMTQuOCA3LjJzLTExLTQuMy0xMy4zLTkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjI1NiA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMTkyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4YzAtNDYuNS0yNC44LTg3LjMtNjItMTA5LjdjMTguNy0yMi4zIDMwLTUxIDMwLTgyLjNjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhINjR6bTk2IDE5Mkg2NFY5Nmg5NmMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHpNNjQgMjg4aDk2IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0SDY0VjI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFieUNhcnJpYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxOTJILjFDMi43IDExNy45IDQxLjMgNTIuOSA5OSAxNC4xYzEzLjMtOC45IDMwLjgtNC4zIDM5LjkgOC44TDI1NiAxOTJ6bTEyOC0zMmMwLTM1LjMgMjguNy02NCA2NC02NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIgMHY2NGMwIDI1LjItNS44IDUwLjItMTcgNzMuNXMtMjcuOCA0NC41LTQ4LjYgNjIuM3MtNDUuNSAzMi03Mi43IDQxLjZTMjUzLjQgNDE2IDIyNCA0MTZzLTU4LjUtNS04NS43LTE0LjZzLTUxLjktMjMuOC03Mi43LTQxLjZzLTM3LjMtMzktNDguNi02Mi4zUzAgMjQ5LjIgMCAyMjRsMjI0IDAgMTYwIDBWMTYwek04MCA0MTZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em0yNDAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIgODhhNzIgNzIgMCAxIDEgMTQ0IDBBNzIgNzIgMCAxIDEgMTUyIDg4ek0zOS43IDE0NC41YzEzLTE3LjkgMzgtMjEuOCA1NS45LTguOEwxMzEuOCAxNjJjMjYuOCAxOS41IDU5LjEgMzAgOTIuMiAzMHM2NS40LTEwLjUgOTIuMi0zMGwzNi4yLTI2LjRjMTcuOS0xMyA0Mi45LTkgNTUuOSA4LjhzOSA0Mi45LTguOCA1NS45bC0zNi4yIDI2LjRjLTEzLjYgOS45LTI4LjEgMTguMi00My4zIDI1VjI4OEgxMjhWMjUxLjdjLTE1LjItNi43LTI5LjctMTUuMS00My4zLTI1TDQ4LjUgMjAwLjNjLTE3LjktMTMtMjEuOC0zOC04LjgtNTUuOXptODkuOCAxODQuOGw2MC42IDUzLTI2IDM3LjIgMjQuMyAyNC4zYzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42cy00MC45IDE1LjYtNTYuNiAwbC00OC00OEM3MCA0MzguNiA2OC4xIDQxNyA3OS4yIDQwMS4xbDUwLjItNzEuOHptMTI4LjUgNTNsNjAuNi01MyA1MC4yIDcxLjhjMTEuMSAxNS45IDkuMiAzNy41LTQuNSA1MS4ybC00OCA0OGMtMTUuNiAxNS42LTQwLjkgMTUuNi01Ni42IDBzLTE1LjYtNDAuOSAwLTU2LjZMMjg0IDQxOS40bC0yNi0zNy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrd2FyZEZhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDkzLjYgNDQ1Yy0xMS4yIDUuMy0yNC41IDMuNi0zNC4xLTQuNEwyODggMjk3LjdWNDE2YzAgMTIuNC03LjIgMjMuNy0xOC40IDI5cy0yNC41IDMuNi0zNC4xLTQuNEw2NCAyOTcuN1Y0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRzMzIgMTQuMyAzMiAzMlYyMTQuM0wyMzUuNSA3MS40YzkuNS03LjkgMjIuOC05LjcgMzQuMS00LjRTMjg4IDgzLjYgMjg4IDk2VjIxNC4zTDQ1OS41IDcxLjRjOS41LTcuOSAyMi44LTkuNyAzNC4xLTQuNFM1MTIgODMuNiA1MTIgOTZWNDE2YzAgMTIuNC03LjIgMjMuNy0xOC40IDI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrd2FyZFN0ZXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY3LjUgNDQwLjZjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOVY5NmMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRsLTE5MiAxNjBMNjQgMjQxVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNzguMyAwIDk2VjQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI3MWwxMS41IDkuNiAxOTIgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNrd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTkuNSA0NDAuNmM5LjUgNy45IDIyLjggOS43IDM0LjEgNC40czE4LjQtMTYuNiAxOC40LTI5Vjk2YzAtMTIuNC03LjItMjMuNy0xOC40LTI5cy0yNC41LTMuNi0zNC4xIDQuNEwyODggMjE0LjNWMjU2djQxLjdMNDU5LjUgNDQwLjZ6TTI1NiAzNTJWMjU2IDEyOCA5NmMwLTEyLjQtNy4yLTIzLjctMTguNC0yOXMtMjQuNS0zLjYtMzQuMSA0LjRsLTE5MiAxNjBDNC4yIDIzNy41IDAgMjQ2LjUgMCAyNTZzNC4yIDE4LjUgMTEuNSAyNC42bDE5MiAxNjBjOS41IDcuOSAyMi44IDkuNyAzNC4xIDQuNHMxOC40LTE2LjYgMTguNC0yOVYzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS4yIDEuMmMxMS4yLTMuMiAyMy4yLS4xIDMxLjQgOC4xTDUxOCA1Ni43bC0yNi41IDcuOWMtNTggMTYuNi05OC4xIDM5LjYtMTI5LjYgNjcuNGMtMzEuMiAyNy41LTUzLjIgNTkuMS03NS4xIDkwLjlsLTIuMyAzLjNDMjQxLjYgMjg4LjcgMTk1IDM1Ni42IDcyLjggNDE3LjdMMzcuOSA0MzUuMiA5LjQgNDA2LjZjLTcuMy03LjMtMTAuNi0xNy42LTktMjcuOHM4LjEtMTguOSAxNy4zLTIzLjVDMTM2LjEgMjk2LjIgMTgwLjkgMjMxIDIyMy4zIDE2OS4zbDIuMy0zLjRjMjEuOC0zMS44IDQ0LjktNjQuOSA3Ny43LTkzLjljMzMuNC0yOS41IDc1LjgtNTMuNiAxMzUuOS03MC44ek02MS44IDQ1OWwyNS40LTEyLjdjMTI5LjUtNjQuNyAxNzkuOS0xMzguMSAyMjMuOC0yMDJsMi4yLTMuM2MyMi4xLTMyLjEgNDIuMS02MC41IDY5LjktODUuMWMyNy41LTI0LjMgNjMuNC00NS4yIDExNy4zLTYwLjZsMCAwIC4yLS4xIDQzLjEtMTIuOSAyMyAyM2M4IDggMTEuMiAxOS43IDguMyAzMC43cy0xMS4zIDE5LjYtMjIuMiAyMi43Yy01MS45IDE0LjgtODUuNiAzNC43LTExMS4xIDU3LjJjLTI2LjEgMjMtNDUuMSA0OS45LTY3LjMgODIuMWwtMi4yIDMuMkMzMjcuOCAzNjUuOSAyNzUuNSA0NDIgMTQyLjMgNTA4LjZjLTEyLjMgNi4yLTI3LjIgMy43LTM2LjktNkw2MS44IDQ1OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LjkgLjdjLTkuNi0yLjctMTkuNSAyLjgtMjIuMyAxMi40bC00LjMgMTUuMmMtOC4zLS42LTE2LjggMC0yNS4yIDEuOWMtNy4zIDEuNy0xNC4zIDMuNS0yMS4xIDUuNWwtNS41LTEyLjdjLTMuOS05LjEtMTQuNS0xMy40LTIzLjYtOS41cy0xMy40IDE0LjUtOS41IDIzLjZsNC40IDEwLjRjLTE2LjYgNi43LTMxLjcgMTQuNC00NS40IDIyLjhMMTQ3IDYyYy01LjUtOC4zLTE2LjctMTAuNS0yNS01cy0xMC41IDE2LjctNSAyNWw2IDljLTEzLjcgMTEtMjUuNSAyMi44LTM1LjggMzQuOWwtMTAtOGMtNy44LTYuMi0xOS4xLTUtMjUuMyAyLjhzLTUgMTkuMSAyLjggMjUuM0w2NS45IDE1NWMtMS44IDIuOC0zLjUgNS43LTUuMSA4LjVjLTYuNiAxMS40LTExLjggMjIuNi0xNiAzM2wtOC0zLjJjLTkuMi0zLjctMTkuNyAuOC0yMy40IDEwcy44IDE5LjcgMTAgMjMuNGwxMC40IDQuMmMtLjIgLjgtLjQgMS41LS41IDIuM2MtMi4yIDkuMy0zLjQgMTcuMy00LjEgMjMuNGMtLjQgMy4xLS42IDUuNy0uOCA3LjhjLS4xIDEuMS0uMSAyLS4yIDIuOGwtLjEgMS4xIDAgLjUgMCAuMiAwIC4xYzAgMCAwIC4xIDI5LjEgMWwtLjEgMEwyOCAyNjkuM2MtLjEgMy4xIDAgNi4xIC4yIDkuMWwtMTUuMiA0LjNDMy41IDI4NS40LTIgMjk1LjQgLjcgMzA0LjlzMTIuNyAxNS4xIDIyLjMgMTIuNGwxNS42LTQuNWM3LjYgMTMuNiAxOC45IDI1IDMyLjYgMzIuNkw2Ni43IDM2MWMtMi43IDkuNiAyLjggMTkuNSAxMi40IDIyLjNzMTkuNS0yLjggMjIuMy0xMi40bDQuMy0xNS4yYzEuMiAuMSAyLjQgLjIgMy42IC4yYzE1LjYgLjUgMzAuMy0zLjMgNDMtMTAuMmw5IDljNyA3IDE4LjQgNyAyNS41IDBzNy0xOC40IDAtMjUuNWwtNy4yLTcuMmM5LjMtMTIuNiAxNS4yLTI3LjggMTYuMy00NC41bDcuMSAzYzkuMSAzLjkgMTkuNy0uMyAyMy42LTkuNXMtLjMtMTkuNy05LjUtMjMuNmwtOC42LTMuN2M2LjQtOS45IDE3LjMtMjIuNCAzNi45LTMzLjNsMS4zIDQuNGMyLjcgOS42IDEyLjcgMTUuMSAyMi4zIDEyLjRzMTUuMS0xMi43IDEyLjQtMjIuM2wtMi4zLTguMWMzLjgtMS4xIDcuNy0yLjEgMTEuOS0zLjFjMTEuNi0yLjcgMjIuMS03LjcgMzEuMS0xNC40bDcuMiA3LjJjNyA3IDE4LjQgNyAyNS41IDBzNy0xOC40IDAtMjUuNWwtOS05YzcuNi0xMy45IDExLjMtMzAuMSAxMC4xLTQ2LjZsMTUuMi00LjNjOS42LTIuNyAxNS4xLTEyLjcgMTIuNC0yMi4zUzM3MC42IDY0IDM2MSA2Ni43bC0xNS42IDQuNWMtNy43LTEzLjktMTkuMS0yNS4xLTMyLjYtMzIuNmw0LjUtMTUuNmMyLjctOS42LTIuOC0xOS41LTEyLjQtMjIuM3pNMTEyIDI3MmwtNDgtMS41IDAgMGMxMS43IC40IDI3LjMgLjkgNDggMS42em0xNi04MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0LTQ4YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6TTMyMi43IDQ4OWMtMi43IDkuNiAyLjggMTkuNSAxMi40IDIyLjNzMTkuNS0yLjggMjIuMi0xMi40bDQuMy0xNS4yYzguMyAuNiAxNi44IDAgMjUuMi0xLjljNy4zLTEuNyAxNC4zLTMuNSAyMS4xLTUuNWw1LjUgMTIuN2MzLjkgOS4xIDE0LjUgMTMuNCAyMy42IDkuNXMxMy40LTE0LjUgOS41LTIzLjZsLTQuNC0xMC40YzE2LjYtNi43IDMxLjctMTQuNCA0NS40LTIyLjhMNDkzIDQ1MGM1LjUgOC4zIDE2LjcgMTAuNSAyNSA1czEwLjUtMTYuNyA1LTI1bC02LTljMTMuNy0xMSAyNS41LTIyLjggMzUuOC0zNC45bDEwIDhjNy44IDYuMiAxOS4xIDUgMjUuMy0yLjhzNS0xOS4xLTIuOC0yNS4zTDU3NC4xIDM1N2MxLjgtMi44IDMuNS01LjcgNS4xLTguNWM2LjYtMTEuNCAxMS44LTIyLjYgMTYtMzNsOCAzLjJjOS4yIDMuNyAxOS43LS44IDIzLjQtMTBzLS44LTE5LjctMTAtMjMuNGwtMTAuNC00LjJjLjItLjggLjQtMS41IC41LTIuM2MyLjItOS4zIDMuNC0xNy4zIDQuMS0yMy40Yy40LTMuMSAuNi01LjcgLjgtNy44Yy4xLTEuMSAuMS0yIC4yLTIuOGwuMS0xLjEgMC0uNSAwLS4yIDAtLjFjMCAwIDAtLjEtMjkuMS0xbC4xIDAgMjkuMSAuOWMuMS0zLjEgMC02LjEtLjItOS4xbDE1LjItNC4zYzkuNi0yLjcgMTUuMS0xMi43IDEyLjQtMjIuM3MtMTIuNy0xNS4xLTIyLjMtMTIuNGwtMTUuNiA0LjVjLTcuNi0xMy42LTE4LjktMjUtMzIuNi0zMi42bDQuNS0xNS42YzIuNy05LjYtMi44LTE5LjUtMTIuNC0yMi4zcy0xOS41IDIuOC0yMi4zIDEyLjRsLTQuMyAxNS4yYy0xLjItLjEtMi40LS4yLTMuNi0uMmMtMTUuNi0uNS0zMC4zIDMuMy00MyAxMC4ybC05LTljLTctNy0xOC40LTctMjUuNSAwcy03IDE4LjQgMCAyNS41bDcuMiA3LjJjLTkuMyAxMi42LTE1LjIgMjcuOC0xNi4zIDQ0LjVsLTcuMS0zYy05LjEtMy45LTE5LjcgLjMtMjMuNiA5LjVzLjMgMTkuNyA5LjUgMjMuNmw4LjYgMy43Yy02LjQgOS45LTE3LjMgMjIuNC0zNi45IDMzLjNsLTEuMy00LjRjLTIuNy05LjYtMTIuNy0xNS4xLTIyLjMtMTIuNHMtMTUuMSAxMi43LTEyLjQgMjIuM2wyLjMgOC4xYy0zLjggMS4xLTcuNyAyLjEtMTEuOSAzLjFjLTExLjYgMi43LTIyLjEgNy43LTMxLjEgMTQuNGwtNy4yLTcuMmMtNy03LTE4LjQtNy0yNS41IDBzLTcgMTguNCAwIDI1LjVsOSA5Yy03LjYgMTMuOS0xMS4zIDMwLjEtMTAuMSA0Ni42bC0xNS4yIDQuM2MtOS42IDIuNy0xNS4xIDEyLjctMTIuNCAyMi4yczEyLjcgMTUuMSAyMi4zIDEyLjRsMTUuNi00LjVjNy43IDEzLjkgMTkuMSAyNS4xIDMyLjYgMzIuNkwzMjIuNyA0ODl6TTU3NiAyNDEuNWwwIDBjLTExLjctLjQtMjcuMy0uOS00OC0xLjZsNDggMS41ek00NDggMzg0YTMyIDMyIDAgMSAxIC02NCAwIDMyIDMyIDAgMSAxIDY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY3Rlcml1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjMuMSAzMC42YzMuNi0xMi43LTMuNy0yNi0xNi41LTI5LjdzLTI2IDMuNy0yOS43IDE2LjVsLTQuMiAxNC43Yy05LjgtLjQtMTkuOSAuNS0yOS45IDIuOGMtMTIuMSAyLjgtMjMuNyA1LjktMzQuOSA5LjRsLTUuOS0xMy43Yy01LjItMTIuMi0xOS4zLTE3LjgtMzEuNS0xMi42cy0xNy44IDE5LjMtMTIuNiAzMS41bDQuOSAxMS4zYy0yMiA5LjQtNDIgMjAuMS02MC4yIDMxLjhMMTk2IDgyLjdjLTcuNC0xMS0yMi4zLTE0LTMzLjMtNi43cy0xNCAyMi4zLTYuNyAzMy4zbDcuOCAxMS42Yy0xOCAxNS0zMy43IDMwLjgtNDcuMyA0Ny4xTDEwMyAxNTcuM2MtMTAuNC04LjMtMjUuNS02LjYtMzMuNyAzLjdzLTYuNiAyNS41IDMuNyAzMy43bDE1IDEyYy0yLjEgMy4yLTQuMSA2LjUtNiA5LjdjLTkuNCAxNS43LTE3IDMxLTIzLjIgNDUuM2wtOS45LTMuOWMtMTIuMy00LjktMjYuMyAxLjEtMzEuMiAxMy40czEuMSAyNi4zIDEzLjQgMzEuMmwxMS42IDQuNmMtLjMgMS4xLS42IDIuMS0uOSAzLjFjLTMuNSAxMi41LTUuNyAyMy4yLTcuMSAzMS4zYy0uNyA0LjEtMS4yIDcuNS0xLjYgMTAuM2MtLjIgMS40LS4zIDIuNi0uNCAzLjZsLS4xIDEuNC0uMSAuNiAwIC4zIDAgLjFjMCAwIDAgLjEgMzkuMiAzLjdsMCAwLTM5LjItMy42Yy0uNSA1LS42IDEwLS40IDE0LjlsLTE0LjcgNC4yQzQuNyAzODAuNi0yLjcgMzkzLjggLjkgNDA2LjZzMTYuOSAyMC4xIDI5LjcgMTYuNWwxMy44LTMuOWMxMC42IDIwLjcgMjcuNiAzNy44IDQ4LjUgNDguNWwtMy45IDEzLjdjLTMuNiAxMi43IDMuNyAyNiAxNi41IDI5LjdzMjYtMy43IDI5LjctMTYuNWw0LjItMTQuN2MyMy44IDEgNDYuMy01LjUgNjUuMS0xNy42TDIxNSA0NzNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0xMC42LTEwLjZjOS4xLTE0LjEgMTUuMS0zMC41IDE3LTQ4LjNsLjEtLjhjLjMtMS43IDEtNS4xIDIuMy05LjhsLjItLjggMTIuNiA1LjRjMTIuMiA1LjIgMjYuMy0uNCAzMS41LTEyLjZzLS40LTI2LjMtMTIuNi0zMS41bC0xMS4zLTQuOGM5LjktMTQuOSAyNC45LTMxLjYgNDguNi00NmwyLjEgNy41YzMuNiAxMi43IDE2LjkgMjAuMSAyOS43IDE2LjVzMjAuMS0xNi45IDE2LjUtMjkuN0wzNzEgMjU5LjJjNi45LTIuMiAxNC4zLTQuMyAyMi4yLTYuMWMxMi45LTMgMjQuNy04IDM1LjItMTQuOEw0MzkgMjQ5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMTAuNi0xMC42YzEyLjItMTkgMTguNi00MS42IDE3LjYtNjUuMWwxNC43LTQuMmMxMi43LTMuNiAyMC4xLTE2LjkgMTYuNS0yOS43cy0xNi45LTIwLjEtMjkuNy0xNi41bC0xMy43IDMuOWMtMTAuOC0yMS4yLTI4LTM4LTQ4LjUtNDguNWwzLjktMTMuOHpNOTIuMSAzNjMuM2wwIDBMMTQ0IDM2OGwtNTEuOS00Ljd6TTExMiAzMjBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMjQwIDE4NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhZ1Nob3BwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAxMTJjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHY0OEgxNjBWMTEyem0tNDggNDhINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQxNmMwIDUzIDQzIDk2IDk2IDk2SDM1MmM1MyAwIDk2LTQzIDk2LTk2VjIwOGMwLTI2LjUtMjEuNS00OC00OC00OEgzMzZWMTEyQzMzNiA1MC4xIDI4NS45IDAgMjI0IDBTMTEyIDUwLjEgMTEyIDExMnY0OHptMjQgNDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0xNTIgMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFoYWkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjMTQuNSAwIDI3LjIgOS43IDMwLjkgMjMuOGwyMy45IDg5LjYgNzUuOS01My4zYzExLjktOC4zIDI3LjgtNy42IDM5IDEuN3MxNC42IDI0LjkgOC40IDM4LjFsLTM5LjMgODQgOTIuNCA4YzE0LjQgMS4yIDI2LjIgMTIgMjguOCAyNi4zcy00LjkgMjguNS0xOCAzNC42bC04NC4xIDM5LjEgNjUuNyA2NS41YzEwLjMgMTAuMiAxMi40IDI2LjEgNS4xIDM4LjdzLTIyIDE4LjctMzYgMTQuOUwzOTEgMzg2LjhsOC4yIDkyLjRjMS4zIDE0LjQtNy4zIDI3LjktMjAuOSAzMi45cy0yOC45IC4xLTM3LjItMTEuN2wtNTMuMS03Ni01My4xIDc2Yy04LjMgMTEuOS0yMy42IDE2LjctMzcuMiAxMS43cy0yMi4yLTE4LjUtMjAuOS0zMi45bDguMi05Mi40TDk1LjQgNDEwLjljLTE0IDMuOC0yOC44LTIuMy0zNi0xNC45cy01LjItMjguNCA1LjEtMzguN2w2NS43LTY1LjVMNDYgMjUyLjdjLTEzLjEtNi4xLTIwLjUtMjAuMy0xOC0zNC42czE0LjMtMjUuMSAyOC44LTI2LjNsOTIuNC04LTM5LjMtODRjLTYuMS0xMy4xLTIuNy0yOC44IDguNC0zOC4xczI3LjEtMTAgMzktMS43bDc1LjkgNTMuMyAyMy45LTg5LjZDMjYwLjggOS43IDI3My41IDAgMjg4IDB6bTAgMTU2LjJsLTQuOCAxOGMtMi43IDEwLjEtMTAuMiAxOC4yLTIwIDIxLjhzLTIwLjggMi4xLTI5LjMtMy45bC0xNS4yLTEwLjcgNy45IDE2LjhjNC40IDkuNSA0IDIwLjUtMS4zIDI5LjZzLTE0LjUgMTUtMjUgMTUuOWwtMTguNSAxLjYgMTYuOCA3LjhjOS41IDQuNCAxNi4yIDEzLjIgMTggMjMuNXMtMS41IDIwLjgtOC45IDI4LjJsLTEzLjIgMTMuMSAxNy45LTQuOGMxMC4xLTIuNyAyMC45LS4zIDI4LjkgNi40czEyLjIgMTYuOSAxMS4zIDI3LjNsLTEuNiAxOC41IDEwLjYtMTUuMmM2LTguNiAxNS44LTEzLjcgMjYuMi0xMy43czIwLjIgNS4xIDI2LjIgMTMuN2wxMC42IDE1LjItMS42LTE4LjVjLS45LTEwLjQgMy4zLTIwLjYgMTEuMy0yNy4zczE4LjgtOS4xIDI4LjktNi40bDE3LjkgNC44LTEzLjItMTMuMWMtNy40LTcuNC0xMC43LTE3LjktOC45LTI4LjJzOC41LTE5LjEgMTgtMjMuNWwxNi44LTcuOC0xOC41LTEuNmMtMTAuNC0uOS0xOS43LTYuOC0yNS0xNS45cy01LjctMjAuMS0xLjMtMjkuNmw3LjktMTYuOC0xNS4yIDEwLjdjLTguNiA2LTE5LjUgNy41LTI5LjMgMy45cy0xNy4zLTExLjctMjAtMjEuOGwtNC44LTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWh0U2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNjRIMzcuNkMxNi44IDY0IDAgODAuOCAwIDEwMS42VjIyNHY0MS43VjI4OCA0MDYuM2MwIDIzIDE4LjcgNDEuNyA0MS43IDQxLjdIMTEydjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ4aDMyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtNDAuMS0yMS4xLTc1LjMtNTIuNy05NS4xQzI4MC4zIDIyMi42IDI4OCAyMDAuMiAyODggMTc2YzAtNjEuOS01MC4xLTExMi0xMTItMTEyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xMTIgMTI4djk2SDY0VjEyOGg0OHptNjQgOTZWMTI4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4em0tNjQgNjR2OTZINjRWMjg4aDQ4em02NCA5NlYyODhoMzJjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDhIMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYW5TbW9raW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk5LjUgMTQ0LjhMMTc4LjcgMjI0bDk2IDk2IDkyLjUgOTIuNUMzMzUuOSA0MzQuOSAyOTcuNSA0NDggMjU2IDQ0OEMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZjMC00MS41IDEzLjEtNzkuOSAzNS41LTExMS4yek0zMzMuMyAyODhsLTMyLTMySDM4NHYzMkgzMzMuM3ptMzIgMzJINDAwYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDI2OS4zTDE0NC44IDk5LjVDMTc2LjEgNzcuMSAyMTQuNSA2NCAyNTYgNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJjMCA0MS41LTEzLjEgNzkuOS0zNS41IDExMS4yTDM2NS4zIDMyMHpNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTI3MiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDMwNGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZ6TTIyOS41IDMyMGwtOTYtOTZIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2SDIyOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY3LjIgNDEyLjVMOTkuNSAxNDQuOEM3Ny4xIDE3Ni4xIDY0IDIxNC41IDY0IDI1NmMwIDEwNiA4NiAxOTIgMTkyIDE5MmM0MS41IDAgNzkuOS0xMy4xIDExMS4yLTM1LjV6bTQ1LjMtNDUuM0M0MzQuOSAzMzUuOSA0NDggMjk3LjUgNDQ4IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MmMtNDEuNSAwLTc5LjkgMTMuMS0xMTEuMiAzNS41TDQxMi41IDM2Ny4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbmRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDQxNmg5NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRINDgwVjQxNnpNNDQ4IDk2SDE5MlY0MTZINDQ4Vjk2ek02NCA5NkMyOC43IDk2IDAgMTI0LjcgMCAxNjBWMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2Vjk2SDY0ek0yNDggMjA4YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEyMC0yNGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTI0OCAzMDRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFuZ2xhZGVzaGlUYWthU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNiAzMi4yQzE4LjQgMzAuMSAyLjQgNDIuNSAuMiA2MFMxMC41IDkzLjYgMjggOTUuOGw3LjkgMWMxNiAyIDI4IDE1LjYgMjggMzEuOFYxNjBIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjRWMzg0YzAgNTMgNDMgOTYgOTYgOTZoMzJjMTA2IDAgMTkyLTg2IDE5Mi0xOTJWMjU2YzAtNTMtNDMtOTYtOTYtOTZIMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjMyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4SDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjI0aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDEyOFYxMjguNWMwLTQ4LjQtMzYuMS04OS4zLTg0LjEtOTUuM2wtNy45LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMzJDMTAuNyAzMiAwIDQyLjcgMCA1NlY0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjR6bTg4IDBjLTguOCAwLTE2IDcuMi0xNiAxNlY0NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY0OGMwLTguOC03LjItMTYtMTYtMTZ6bTcyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxODR6bTk2IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyODB6TTQ0OCA1NlY0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRINDcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptLTY0LThWNDY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWNDhjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcnNQcm9ncmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMTYwSDMyMFYxMjhINDQ4djMyek00OCA2NEMyMS41IDY0IDAgODUuNSAwIDExMnY2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0NjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek00NDggMzUydjMySDE5MlYzNTJINDQ4ek00OCAyODhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQ2NGMyNi41IDAgNDgtMjEuNSA0OC00OFYzMzZjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcnNTdGFnZ2VyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NEg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek02NCAyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnpNNDQ4IDQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NEg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyAxMjggMCAxMTMuNyAwIDk2ek0wIDI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek00NDggNDE2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFzZWJhbGxCYXRCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNCAwYy0xMi40IDAtMjQuMiA0LjktMzMgMTMuN0wyMzMuNSAxNzEuMmMtMTAuNSAxMC41LTE5LjggMjIuMS0yNy43IDM0LjZMMTMyLjcgMzIxLjZjLTcuMyAxMS41LTE1LjggMjIuMi0yNS41IDMxLjlMNjkuOSAzOTAuN2w1MS4zIDUxLjMgMzcuMy0zNy4zYzkuNi05LjYgMjAuMy0xOC4yIDMxLjktMjUuNWwxMTUuOC03My4xYzEyLjUtNy45IDI0LjEtMTcuMiAzNC42LTI3LjdMNDk4LjMgMTIxYzguNy04LjcgMTMuNy0yMC42IDEzLjctMzNzLTQuOS0yNC4yLTEzLjctMzNMNDU3IDEzLjdDNDQ4LjIgNC45IDQzNi40IDAgNDI0IDB6bTg4IDQzMmE4MCA4MCAwIDEgMCAtMTYwIDAgODAgODAgMCAxIDAgMTYwIDB6TTE1IDM5OWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ5IDM5OWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhc2ViYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyLjcgMjIzLjRjLTQuOCAuNC05LjcgLjYtMTQuNyAuNmMtMTUuNiAwLTMwLjgtMi00NS4yLTUuOUMxOS4yIDEwNy4xIDEwNy4xIDE5LjIgMjE4LjEgMi44QzIyMiAxNy4yIDIyNCAzMi40IDIyNCA0OGMwIDQuOS0uMiA5LjgtLjYgMTQuN2MtLjcgOC44IDUuOCAxNi41IDE0LjYgMTcuM3MxNi41LTUuOCAxNy4zLTE0LjZjLjUtNS43IC43LTExLjUgLjctMTcuM2MwLTE2LjUtMS45LTMyLjYtNS42LTQ3LjljMS44IDAgMy43LS4xIDUuNi0uMUMzOTcuNCAwIDUxMiAxMTQuNiA1MTIgMjU2YzAgMS45IDAgMy43LS4xIDUuNmMtMTUuNC0zLjYtMzEuNC01LjYtNDcuOS01LjZjLTUuOCAwLTExLjYgLjItMTcuMyAuN2MtOC44IC43LTE1LjQgOC41LTE0LjYgMTcuM3M4LjUgMTUuNCAxNy4zIDE0LjZjNC44LS40IDkuNy0uNiAxNC43LS42YzE1LjYgMCAzMC44IDIgNDUuMiA1LjlDNDkyLjggNDA0LjkgNDA0LjkgNDkyLjggMjkzLjkgNTA5LjJDMjkwIDQ5NC44IDI4OCA0NzkuNiAyODggNDY0YzAtNC45IC4yLTkuOCAuNi0xNC43Yy43LTguOC01LjgtMTYuNS0xNC42LTE3LjNzLTE2LjUgNS44LTE3LjMgMTQuNmMtLjUgNS43LS43IDExLjUtLjcgMTcuM2MwIDE2LjUgMS45IDMyLjYgNS42IDQ3LjljLTEuOCAwLTMuNyAuMS01LjYgLjFDMTE0LjYgNTEyIDAgMzk3LjQgMCAyNTZjMC0xLjkgMC0zLjcgLjEtNS42QzE1LjQgMjU0LjEgMzEuNSAyNTYgNDggMjU2YzUuOCAwIDExLjYtLjIgMTcuMy0uN2M4LjgtLjcgMTUuNC04LjUgMTQuNi0xNy4zcy04LjUtMTUuNC0xNy4zLTE0LjZ6TTEyMS4zIDIwOGMtOCAzLjctMTEuNiAxMy4yLTcuOSAyMS4yczEzLjIgMTEuNiAyMS4yIDcuOWM0NS4yLTIwLjggODEuNy01Ny4yIDEwMi41LTEwMi41YzMuNy04IC4yLTE3LjUtNy45LTIxLjJzLTE3LjUtLjItMjEuMiA3LjljLTE3LjYgMzguMy00OC41IDY5LjItODYuNyA4Ni43em0yNzcuMiA3NC43Yy0zLjctOC0xMy4yLTExLjYtMjEuMi03LjljLTQ1LjIgMjAuOC04MS43IDU3LjItMTAyLjUgMTAyLjVjLTMuNyA4LS4yIDE3LjUgNy45IDIxLjJzMTcuNSAuMiAyMS4yLTcuOWMxNy42LTM4LjMgNDguNS02OS4yIDg2LjctODYuN2M4LTMuNyAxMS42LTEzLjIgNy45LTIxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhc2tldFNob3BwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1My4zIDM1LjFjNi4xLTExLjggMS41LTI2LjMtMTAuMi0zMi40cy0yNi4zLTEuNS0zMi40IDEwLjJMMTE3LjYgMTkySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyTDgzLjkgNDYzLjVDOTEgNDkyIDExNi42IDUxMiAxNDYgNTEySDQzMGMyOS40IDAgNTUtMjAgNjIuMS00OC41TDU0NCAyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDU4LjRMMzY1LjMgMTIuOUMzNTkuMiAxLjIgMzQ0LjctMy40IDMzMi45IDIuN3MtMTYuMyAyMC42LTEwLjIgMzIuNEw0MDQuMyAxOTJIMTcxLjdMMjUzLjMgMzUuMXpNMTkyIDMwNHY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptOTYtMTZjOC44IDAgMTYgNy4yIDE2IDE2djk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMwNGMwLTguOCA3LjItMTYgMTYtMTZ6bTEyOCAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFza2V0YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Ni42IDY0bDg1LjIgODUuMkMxOTQuNSAxMjEuNyAyMDggODYuNCAyMDggNDhjMC0xNC43LTItMjguOS01LjctNDIuNEMxNTguNiAxNSAxMTkgMzUuNSA4Ni42IDY0ek02NCA4Ni42QzM1LjUgMTE5IDE1IDE1OC42IDUuNiAyMDIuM0MxOS4xIDIwNiAzMy4zIDIwOCA0OCAyMDhjMzguNCAwIDczLjctMTMuNSAxMDEuMy0zNi4xTDY0IDg2LjZ6TTI1NiAwYy03LjMgMC0xNC42IC4zLTIxLjggLjlDMjM4IDE2IDI0MCAzMS44IDI0MCA0OGMwIDQ3LjMtMTcuMSA5MC41LTQ1LjQgMTI0TDI1NiAyMzMuNCA0MjUuNCA2NEMzODAuMiAyNC4yIDMyMC45IDAgMjU2IDB6TTQ4IDI0MGMtMTYuMiAwLTMyLTItNDcuMS01LjhDLjMgMjQxLjQgMCAyNDguNyAwIDI1NmMwIDY0LjkgMjQuMiAxMjQuMiA2NCAxNjkuNEwyMzMuNCAyNTYgMTcyIDE5NC42QzEzOC41IDIyMi45IDk1LjMgMjQwIDQ4IDI0MHptNDYzLjEgMzcuOGMuNi03LjIgLjktMTQuNSAuOS0yMS44YzAtNjQuOS0yNC4yLTEyNC4yLTY0LTE2OS40TDI3OC42IDI1NiAzNDAgMzE3LjRjMzMuNC0yOC4zIDc2LjctNDUuNCAxMjQtNDUuNGMxNi4yIDAgMzIgMiA0Ny4xIDUuOHptLTQuNyAzMS45QzQ5Mi45IDMwNiA0NzguNyAzMDQgNDY0IDMwNGMtMzguNCAwLTczLjcgMTMuNS0xMDEuMyAzNi4xTDQ0OCA0MjUuNGMyOC41LTMyLjMgNDkuMS03MS45IDU4LjQtMTE1Ljd6TTM0MC4xIDM2Mi43QzMxNy41IDM5MC4zIDMwNCA0MjUuNiAzMDQgNDY0YzAgMTQuNyAyIDI4LjkgNS43IDQyLjRDMzUzLjQgNDk3IDM5MyA0NzYuNSA0MjUuNCA0NDhsLTg1LjItODUuMnpNMzE3LjQgMzQwTDI1NiAyNzguNiA4Ni42IDQ0OGM0NS4xIDM5LjggMTA0LjQgNjQgMTY5LjQgNjRjNy4zIDAgMTQuNi0uMyAyMS44LS45QzI3NCA0OTYgMjcyIDQ4MC4yIDI3MiA0NjRjMC00Ny4zIDE3LjEtOTAuNSA0NS40LTEyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA3Ny4zYzAtNy4zIDUuOS0xMy4zIDEzLjMtMTMuM2MzLjUgMCA2LjkgMS40IDkuNCAzLjlsMTQuOSAxNC45QzEzMCA5MS44IDEyOCAxMDEuNyAxMjggMTEyYzAgMTkuOSA3LjIgMzggMTkuMiA1MmMtNS4zIDkuMi00IDIxLjEgMy44IDI5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI4OSA4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWMtNy45LTcuOS0xOS44LTkuMS0yOS0zLjhDMjQ2IDM5LjIgMjI3LjkgMzIgMjA4IDMyYy0xMC4zIDAtMjAuMiAyLTI5LjIgNS41TDE2My45IDIyLjZDMTQ5LjQgOC4xIDEyOS43IDAgMTA5LjMgMEM2Ni42IDAgMzIgMzQuNiAzMiA3Ny4zVjI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIOTZWNzcuM3pNMzIgMzUydjE2YzAgMjguNCAxMi40IDU0IDMyIDcxLjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDY0SDM4NHYxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQzOS42YzE5LjYtMTcuNiAzMi00My4xIDMyLTcxLjZWMzUySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0ZXJ5RW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTYwYy04LjggMC0xNiA3LjItMTYgMTZWMzM2YzAgOC44IDcuMiAxNiAxNiAxNkg0NjRjOC44IDAgMTYtNy4yIDE2LTE2VjE3NmMwLTguOC03LjItMTYtMTYtMTZIODB6TTAgMTc2YzAtNDQuMiAzNS44LTgwIDgwLTgwSDQ2NGM0NC4yIDAgODAgMzUuOCA4MCA4MHYxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnYxNmMwIDQ0LjItMzUuOCA4MC04MCA4MEg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0ZXJ5RnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTYwYzguOCAwIDE2IDcuMiAxNiAxNlYzMzZjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNkg0NjR6TTgwIDk2QzM1LjggOTYgMCAxMzEuOCAwIDE3NlYzMzZjMCA0NC4yIDM1LjggODAgODAgODBINDY0YzQ0LjIgMCA4MC0zNS44IDgwLTgwVjMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJWMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwSDgwem0zNjggOTZIOTZWMzIwSDQ0OFYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxNjBjOC44IDAgMTYgNy4yIDE2IDE2VjMzNmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2SDQ2NHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2VjMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MEg0NjRjNDQuMiAwIDgwLTM1LjggODAtODBWMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMlYxNzZjMC00NC4yLTM1LjgtODAtODAtODBIODB6bTIwOCA5Nkg5NlYzMjBIMjg4VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmF0dGVyeVF1YXJ0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDE2MGM4LjggMCAxNiA3LjIgMTYgMTZWMzM2YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZINDY0ek04MCA5NkMzNS44IDk2IDAgMTMxLjggMCAxNzZWMzM2YzAgNDQuMiAzNS44IDgwIDgwIDgwSDQ2NGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyVjE3NmMwLTQ0LjItMzUuOC04MC04MC04MEg4MHptMTEyIDk2SDk2VjMyMGg5NlYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxNjBjOC44IDAgMTYgNy4yIDE2IDE2VjMzNmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2SDQ2NHpNODAgOTZDMzUuOCA5NiAwIDEzMS44IDAgMTc2VjMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MEg0NjRjNDQuMiAwIDgwLTM1LjggODAtODBWMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMlYxNzZjMC00NC4yLTM1LjgtODAtODAtODBIODB6bTI3MiA5Nkg5NlYzMjBIMzUyVjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVkUHVsc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgzLjIgOS42TDUyNCA2NGg5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1MTJjLTcuNiAwLTE0LjctMy42LTE5LjItOS42TDQ2OC43IDcwLjNsLTQ3IDk5LjljLTMuNyA3LjgtMTEuMyAxMy4xLTE5LjkgMTMuN3MtMTYuOS0zLjQtMjEuNy0xMC42TDMzOS4yIDExMkgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMzUyYzggMCAxNS41IDQgMjAgMTAuN2wyNC40IDM2LjYgNDUuOS05Ny41QzQ0NS45IDYuMiA0NTMuMiAxIDQ2MS42IC4xczE2LjYgMi43IDIxLjYgOS41ek0zMjAgMTYwaDEyLjdsMjAuNyAzMS4xYzExLjIgMTYuOCAzMC42IDI2LjMgNTAuNyAyNC44czM3LjktMTMuNyA0Ni41LTMyTDQ2MS45IDE2MEg1NDRjNTMgMCA5NiA0MyA5NiA5NlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDM1MiAzMjAgNjR2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWOTZDMCA3OC4zIDE0LjMgNjQgMzIgNjRzMzIgMTQuMyAzMiAzMlYzNTJIMjg4VjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTE0NCAwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzIwSDI4OFYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJINTQ0YzUzIDAgOTYgNDMgOTYgOTZWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQxNkgzNTIgMzIwIDY0djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem0xNDQgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZXJNdWdFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWOTZoNTEuMmM0Mi40IDAgNzYuOCAzNC40IDc2LjggNzYuOFYyNzQuOWMwIDMwLjQtMTcuOSA1Ny45LTQ1LjYgNzAuMkwzODQgMzgxLjdWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDk2Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMzg0IDMxMS42bDU2LjQtMjUuMWM0LjYtMi4xIDcuNi02LjYgNy42LTExLjdWMTcyLjhjMC03LjEtNS43LTEyLjgtMTIuOC0xMi44SDM4NFYzMTEuNnpNMTYwIDE0NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlYzNjhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxNDR6bTY0IDBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMzY4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTQ0em02NCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjM2OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVsbENvbmNpZXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgNjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMTZ2MzMuM0MxMTkuNiAxNTcuMiAzMiAyNTIuNCAzMiAzNjhINDgwYzAtMTE1LjYtODcuNi0yMTAuOC0yMDAtMjIyLjdWMTEyaDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDI1NiAyMTZ6TTI0IDQwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg0ODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlbGxTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC05MC4yLTcwLjdjLjItLjQgLjQtLjkgLjYtMS4zYzUuMi0xMS41IDMuMS0yNS01LjMtMzQuNGwtNy40LTguM0M0OTcuMyAzMTkuMiA0ODAgMjczLjkgNDgwIDIyNi44VjIwOGMwLTc3LjQtNTUtMTQyLTEyOC0xNTYuOFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY1MS4yYy00Mi42IDguNi03OSAzNC4yLTEwMiA2OS4zTDM4LjggNS4xek00MDYuMiA0MTZMMTYwIDIyMi4xdjQuOGMwIDQ3LTE3LjMgOTIuNC00OC41IDEyNy42bC03LjQgOC4zYy04LjQgOS40LTEwLjQgMjIuOS01LjMgMzQuNFMxMTUuNCA0MTYgMTI4IDQxNkg0MDYuMnptLTQwLjkgNzcuM2MxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zSDMyMCAyNTZjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNzMjguMyAxOC43IDQ1LjMgMTguN3MzMy4zLTYuNyA0NS4zLTE4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjUxLjJDMTE5IDY2IDY0IDEzMC42IDY0IDIwOHYxOC44YzAgNDctMTcuMyA5Mi40LTQ4LjUgMTI3LjZsLTcuNCA4LjNjLTguNCA5LjQtMTAuNCAyMi45LTUuMyAzNC40UzE5LjQgNDE2IDMyIDQxNkg0MTZjMTIuNiAwIDI0LTcuNCAyOS4yLTE4LjlzMy4xLTI1LTUuMy0zNC40bC03LjQtOC4zQzQwMS4zIDMxOS4yIDM4NCAyNzMuOSAzODQgMjI2LjhWMjA4YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem00NS4zIDQ5My4zYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNIMjI0IDE2MGMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM3MyOC4zIDE4LjcgNDUuMyAxOC43czMzLjMtNi43IDQ1LjMtMTguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmV6aWVyQ3VydmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDEzNlY4OGg0OHY0OEgyOTZ6TTI4OCAzMmMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NEgxMjEuNkMxMTEuMiA2Mi43IDg5LjMgNDggNjQgNDhDMjguNyA0OCAwIDc2LjcgMCAxMTJzMjguNyA2NCA2NCA2NGMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZoNjYuOWMtNTguOSAzOS42LTk4LjkgMTA1LTEwNCAxODBIODBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM2OGMwLTI2LjUtMjEuNS00OC00OC00OGgtMy4zYzUuOS02NyA0OC41LTEyMy40IDEwNy41LTE0OS4xYzguNiAxMi43IDIzLjIgMjEuMSAzOS44IDIxLjFoNjRjMTYuNiAwIDMxLjEtOC40IDM5LjgtMjEuMWM1OSAyNS43IDEwMS42IDgyLjEgMTA3LjUgMTQ5LjFINDk2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg2NGMyNi41IDAgNDgtMjEuNSA0OC00OFYzNjhjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQuNWMtNS03NS00NS4xLTE0MC40LTEwNC0xODBoNjYuOWMxMC40IDIxLjMgMzIuMyAzNiA1Ny42IDM2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0Yy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZINDAwVjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI4OHpNODggMzc2aDQ4djQ4SDg4VjM3NnptNDE2IDQ4VjM3Nmg0OHY0OEg1MDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDI1LjdsMzQuNiA2NEgyMjIuOWwtMjcuNC0zOEMxOTEgOTkuNyAxODMuNyA5NiAxNzYgOTZIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDQzLjdsMjIuMSAzMC43LTI2LjYgNTMuMWMtMTAtMi41LTIwLjUtMy44LTMxLjItMy44QzU3LjMgMjI0IDAgMjgxLjMgMCAzNTJzNTcuMyAxMjggMTI4IDEyOGM2NS4zIDAgMTE5LjEtNDguOSAxMjctMTEyaDQ5YzguNSAwIDE2LjMtNC41IDIwLjctMTEuOGw4NC44LTE0My41IDIxLjcgNDAuMUM0MDIuNCAyNzYuMyAzODQgMzEyIDM4NCAzNTJjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhzMTI4LTU3LjMgMTI4LTEyOHMtNTcuMy0xMjgtMTI4LTEyOGMtMTMuNSAwLTI2LjUgMi4xLTM4LjcgNkwzNzUuNCA0OC44QzM2OS44IDM4LjQgMzU5IDMyIDM0Ny4yIDMySDMxMnpNNDU4LjYgMzAzLjdsMzIuMyA1OS43YzYuMyAxMS43IDIwLjkgMTYgMzIuNSA5LjdzMTYtMjAuOSA5LjctMzIuNWwtMzIuMy01OS43YzMuNi0uNiA3LjQtLjkgMTEuMi0uOWMzOS44IDAgNzIgMzIuMiA3MiA3MnMtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MmMwLTE4LjYgNy0zNS41IDE4LjYtNDguM3pNMTMzLjIgMzY4aDY1Yy03LjMgMzIuMS0zNiA1Ni03MC4yIDU2Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyYzEuNyAwIDMuNCAuMSA1LjEgLjJsLTI0LjIgNDguNWMtOSAxOC4xIDQuMSAzOS40IDI0LjMgMzkuNHptMzMuNy00OGw1MC43LTEwMS4zIDcyLjkgMTAxLjItLjEgLjFIMTY2Ljh6bTkwLjYtMTI4SDM2NS45TDMxNyAyNzQuOCAyNTcuNCAxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpbm9jdWxhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjk2SDk2VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NCA5NlY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4OC45YzAtMzQuNiA5LjQtNjguNiAyNy4yLTk4LjNDNDAuOSAyNjcuOCA0OS43IDI0Mi40IDUzIDIxNkw2MC41IDE1NmMyLTE2IDE1LjYtMjggMzEuOC0yOEgxOTJ6bTIyNy44IDBjMTYuMSAwIDI5LjggMTIgMzEuOCAyOEw0NTkgMjE2YzMuMyAyNi40IDEyLjEgNTEuOCAyNS44IDc0LjZjMTcuOCAyOS43IDI3LjIgNjMuNyAyNy4yIDk4LjNWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTI4aDk5Ljh6TTMyMCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY5NkgzMjBWNjR6bS0zMiA2NFYyODhIMjI0VjEyOGg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlvaGF6YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3My4yIDBjLTEuOCAwLTMuNSAuNy00LjggMkMxMzguNSAzMi4zIDEyMCA3NCAxMjAgMTIwYzAgMjYuMiA2IDUwLjkgMTYuNiA3M2MtMjIgMi40LTQzLjggOS4xLTY0LjIgMjAuNUMzNy45IDIzMi44IDEzLjMgMjYyLjQgLjQgMjk2Yy0uNyAxLjctLjUgMy43IC41IDUuMmMyLjIgMy43IDcuNCA0LjMgMTAuNiAxLjNDNjQuMiAyNTQuMyAxNTggMjQ1LjEgMjA1IDMyNHMtOC4xIDE1My4xLTc3LjYgMTczLjJjLTQuMiAxLjItNi4zIDUuOS00LjEgOS42YzEgMS42IDIuNiAyLjcgNC41IDNjMzYuNSA1LjkgNzUuMiAuMSAxMDkuNy0xOS4yYzIwLjQtMTEuNCAzNy40LTI2LjUgNTAuNS00My44YzEzLjEgMTcuMyAzMC4xIDMyLjQgNTAuNSA0My44YzM0LjUgMTkuMyA3My4zIDI1LjIgMTA5LjcgMTkuMmMxLjktLjMgMy41LTEuNCA0LjUtM2MyLjItMy43IC4xLTguNC00LjEtOS42QzM3OS4xIDQ3Ny4xIDMyNCA0MDMgMzcxIDMyNHMxNDAuNy02OS44IDE5My41LTIxLjRjMy4yIDIuOSA4LjQgMi4zIDEwLjYtMS4zYzEtMS42IDEuMS0zLjUgLjUtNS4yYy0xMi45LTMzLjYtMzcuNS02My4yLTcyLjEtODIuNWMtMjAuNC0xMS40LTQyLjItMTguMS02NC4yLTIwLjVDNDUwIDE3MC45IDQ1NiAxNDYuMiA0NTYgMTIwYzAtNDYtMTguNS04Ny43LTQ4LjQtMTE4Yy0xLjMtMS4zLTMtMi00LjgtMmMtNSAwLTguNCA1LjItNi43IDkuOUM0MjEuNyA4MC41IDM4NS42IDE3NiAyODggMTc2UzE1NC4zIDgwLjUgMTc5LjkgOS45YzEuNy00LjctMS42LTkuOS02LjctOS45ek0yNDAgMjcyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTE4MS43IDQxNy42YzYuMy0xMS44IDkuOC0yNS4xIDguNi0zOS44Yy0xOS41LTE4LTM0LTQxLjQtNDEuMi02Ny44Yy0xMi41LTguMS0yNi4yLTExLjgtNDAtMTIuNGMtOS0uNC0xOC4xIC42LTI3LjEgMi43YzcuOCA1Ny4xIDM4LjcgMTA2LjggODIuOSAxMzkuNGM2LjgtNi43IDEyLjYtMTQuMSAxNi44LTIyLjF6TTI4OCA2NGMtMjguOCAwLTU2LjMgNS45LTgxLjIgMTYuNWMyIDguMyA1IDE2LjIgOSAyMy41YzYuOCAxMi40IDE2LjcgMjMuMSAzMC4xIDMwLjNjMTMuMy00LjEgMjcuNS02LjMgNDIuMi02LjNzMjguOCAyLjIgNDIuMiA2LjNjMTMuNC03LjIgMjMuMy0xNy45IDMwLjEtMzAuM2M0LTcuMyA3LTE1LjIgOS0yMy41QzM0NC4zIDY5LjkgMzE2LjggNjQgMjg4IDY0ek00MjYuOSAzMTBjLTcuMiAyNi40LTIxLjcgNDkuNy00MS4yIDY3LjhjLTEuMiAxNC43IDIuMiAyOC4xIDguNiAzOS44YzQuMyA4IDEwIDE1LjQgMTYuOCAyMi4xYzQ0LjMtMzIuNiA3NS4yLTgyLjMgODIuOS0xMzkuNGMtOS0yLjItMTguMS0zLjEtMjcuMS0yLjdjLTEzLjggLjYtMjcuNSA0LjQtNDAgMTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0Y29pblNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMzJDNDggMTQuMyA2Mi4zIDAgODAgMHMzMiAxNC4zIDMyIDMyVjY0aDMyVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRjMCAxLjUtLjEgMy4xLS4zIDQuNUMyNTQuMSA4Mi4yIDI4OCAxMjUuMSAyODggMTc2YzAgMjQuMi03LjcgNDYuNi0yMC43IDY0LjljMzEuNyAxOS44IDUyLjcgNTUgNTIuNyA5NS4xYzAgNjEuOS01MC4xIDExMi0xMTIgMTEydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgxMTJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDQxLjdDMTguNyA0NDggMCA0MjkuMyAwIDQwNi4zVjI4OCAyNjUuNyAyMjQgMTAxLjZDMCA4MC44IDE2LjggNjQgMzcuNiA2NEg0OFYzMnpNNjQgMjI0SDE3NmMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEg2NHY5NnptMTEyIDY0SDY0djk2SDIwOGMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OEgxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsZW5kZXJQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzUyTDE5Ni44IDUyLjNDMTk0LjIgMjQuMiAyMTYuMyAwIDI0NC42IDBINTM0LjFjMjEuMSAwIDM2LjQgMjAuMSAzMC45IDQwLjRMNTU4LjUgNjRINDAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDU0OS44bC0xNy41IDY0SDQwMGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg1MjMuNmwtMTcuNSA2NEg0MDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoOTcuNUw0ODAgMzUySDIyNHptLTE2IDMySDQ5NmMyNi41IDAgNDggMjEuNSA0OCA0OHYzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEgyMDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHptMTQ0IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpNMTQ3LjUgMzAuN2MxMC44IDYuNyAxNS4zIDIxIDEwLjYgMzMuNGwtMjIgNTcuOGMtNC4yIDEwLjktMTQuNSAxNy42LTI1LjMgMTYuNGwtMzMuMy0zLjZjLTEzLjYgNDIuMi0xMy42IDg4LjQgMCAxMzAuN2wzMy4zLTMuNmMxMC45LTEuMiAyMS4yIDUuNSAyNS4zIDE2LjRsMjIgNTcuOGM0LjcgMTIuNCAuMiAyNi43LTEwLjYgMzMuNGwtNDQgMjcuMmMtOS43IDYtMjEuOSA0LjItMjkuOC00LjNDLTI0LjYgMjg2LTI0LjYgMTE0IDczLjcgNy44QzgxLjYtLjcgOTMuOC0yLjUgMTAzLjUgMy41bDQ0IDI3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBoNjQgMzJINDcwLjFjMjEuMSAwIDM2LjQgMjAuMSAzMC45IDQwLjRMNDk0LjUgNjRIMzM2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDQ4NS44bC0xNy41IDY0SDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg0NTkuNmwtMTcuNSA2NEgzMzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoOTcuNUw0MTYgMzUySDE2MGwtOC43LTk2SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTQ1LjUgMTkyTDEzMy44IDY0SDY0VjE5Mmg4MS41ek0xNDQgMzg0SDQzMmMyNi41IDAgNDggMjEuNSA0OCA0OHYzMmMwIDI2LjUtMjEuNSA0OC00OCA0OEgxNDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHptMTQ0IDk2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJjMTIzLjcgMCAyMjQgMTAwLjMgMjI0IDIyNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyQzUxMiAxMjguOSAzODMuMSAwIDIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMTA2LTg2LTE5Mi0xOTItMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNOTYgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4UzAgMTE3LjUgMCAxNDRWMzY4YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0czE0NC02NC41IDE0NC0xNDRzLTY0LjUtMTQ0LTE0NC0xNDRIMTI4djk2aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9sZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDgwIDk2IDIyNGM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOGMwIDMxLjMtMTEuMyA2MC4xLTMwIDgyLjNjMzcuMSAyMi40IDYyIDYzLjEgNjIgMTA5LjdjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIOTYgODAgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDhWMjU2IDk2SDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6TTIyNCAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRIMTEyVjIyNEgyMjR6TTExMiAyODhWNDE2SDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NEgyMjQgMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb2x0TGlnaHRuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2TDI4LjUgMjhjMi0xNiAxNS42LTI4IDMxLjgtMjhIMjI4LjljMTUgMCAyNy4xIDEyLjEgMjcuMSAyNy4xYzAgMy4yLS42IDYuNS0xLjcgOS41TDIwOCAxNjBIMzQ3LjNjMjAuMiAwIDM2LjcgMTYuNCAzNi43IDM2LjdjMCA3LjQtMi4yIDE0LjYtNi40IDIwLjdsLTE5Mi4yIDI4MWMtNS45IDguNi0xNS42IDEzLjctMjUuOSAxMy43aC0yLjljLTE1LjcgMC0yOC41LTEyLjgtMjguNS0yOC41YzAtMi4zIC4zLTQuNiAuOS02LjlMMTc2IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ5LjQgNDQuNmM1LjktMTMuNyAxLjUtMjkuNy0xMC42LTM4LjVzLTI4LjYtOC0zOS45IDEuOGwtMjU2IDIyNGMtMTAgOC44LTEzLjYgMjIuOS04LjkgMzUuM1M1MC43IDI4OCA2NCAyODhIMTc1LjVMOTguNiA0NjcuNGMtNS45IDEzLjctMS41IDI5LjcgMTAuNiAzOC41czI4LjYgOCAzOS45LTEuOGwyNTYtMjI0YzEwLTguOCAxMy42LTIyLjkgOC45LTM1LjNzLTE2LjYtMjAuNy0zMC0yMC43SDI3Mi41TDM0OS40IDQ0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU5LjEgNTIuNEw0NDIuNiA2LjVDNDQwLjcgMi42IDQzNi41IDAgNDMyLjEgMHMtOC41IDIuNi0xMC40IDYuNUw0MDUuMiA1Mi40bC00NiAxNi44Yy00LjMgMS42LTcuMyA1LjktNy4yIDEwLjRjMCA0LjUgMyA4LjcgNy4yIDEwLjJsNDUuNyAxNi44IDE2LjggNDUuOGMxLjUgNC40IDUuOCA3LjUgMTAuNCA3LjVzOC45LTMuMSAxMC40LTcuNWwxNi41LTQ1LjggNDUuNy0xNi44YzQuMi0xLjUgNy4yLTUuNyA3LjItMTAuMmMwLTQuNi0zLTguOS03LjItMTAuNEw0NTkuMSA1Mi40em0tMTMyLjQgNTNjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0yLjkgMi45QzI1Ni41IDEwMC4zIDIzMi43IDk2IDIwOCA5NkM5My4xIDk2IDAgMTg5LjEgMCAzMDRTOTMuMSA1MTIgMjA4IDUxMnMyMDgtOTMuMSAyMDgtMjA4YzAtMjQuNy00LjMtNDguNS0xMi4yLTcwLjVsMi45LTIuOWMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTIwMCAxOTJjLTU3LjQgMC0xMDQgNDYuNi0xMDQgMTA0djhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZ2LThjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZoOGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuNyAxNDQuOGM2LjkgMTYuMyAyMC42IDMxLjIgMzguMyAzMS4ySDM4NGMxNy43IDAgMzEuNC0xNC45IDM4LjMtMzEuMkM0MzQuNCAxMTYuMSA0NjIuOSA5NiA0OTYgOTZjNDQuMiAwIDgwIDM1LjggODAgODBjMCAzMC40LTE3IDU2LjktNDIgNzAuNGMtMy42IDEuOS02IDUuNS02IDkuNnMyLjQgNy43IDYgOS42YzI1IDEzLjUgNDIgNDAgNDIgNzAuNGMwIDQ0LjItMzUuOCA4MC04MCA4MGMtMzMuMSAwLTYxLjYtMjAuMS03My43LTQ4LjhDNDE1LjQgMzUwLjkgNDAxLjcgMzM2IDM4NCAzMzZIMTkyYy0xNy43IDAtMzEuNCAxNC45LTM4LjMgMzEuMkMxNDEuNiAzOTUuOSAxMTMuMSA0MTYgODAgNDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGMwLTMwLjQgMTctNTYuOSA0Mi03MC40YzMuNi0xLjkgNi01LjUgNi05LjZzLTIuNC03LjctNi05LjZDMTcgMjMyLjkgMCAyMDYuNCAwIDE3NmMwLTQ0LjIgMzUuOC04MCA4MC04MGMzMy4xIDAgNjEuNiAyMC4xIDczLjcgNDguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjA4LjVjMCAyOS4xLTE1LjYgNTMuOS0zNy4yIDY3LjhjLTE3LjIgMTEuMS0zMS41IDI2LjEtNDEuNyA0My43SDMwMi45Yy0xMC4yLTE3LjYtMjQuNS0zMi42LTQxLjctNDMuN2MtMjEuNi0xMy45LTM3LjItMzguNy0zNy4yLTY3LjhWNjRIMTYwVjIwOC41ek0yODggNjRWMjA4LjVjMCA1LjcgMy4xIDEwLjkgNy45IDE0YzExLjIgNy4yIDIxLjUgMTUuNSAzMC45IDI0LjhMMzY2LjEgMjA4bC03LTdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyNCAyNCAyNCAyNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03LTctNDMuMyA0My4zQzM3NCAzMTQuMSAzODQgMzQ3LjkgMzg0IDM4NGMwIDM5LjQtMTEuOSA3Ni4xLTMyLjIgMTA2LjVjLTkuNiAxNC40LTI2LjUgMjEuNS00My44IDIxLjVINzYuMWMtMTcuMyAwLTM0LjItNy4xLTQzLjgtMjEuNUMxMS45IDQ2MC4xIDAgNDIzLjQgMCAzODRjMC02Ny44IDM1LjEtMTI3LjMgODguMS0xNjEuNWM0LjgtMy4xIDcuOS04LjMgNy45LTE0VjY0Qzc4LjMgNjQgNjQgNDkuNyA2NCAzMlM3OC4zIDAgOTYgMGgxNkgyNzJoMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tBdGxhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNDMgNDMgMCA5NiAwSDM4NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJ2NjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0IDk2Yy01MyAwLTk2LTQzLTk2LTk2Vjk2ek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyVjM4NEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTI0Ny40IDI4My44Yy0zLjcgMy43LTYuMiA0LjItNy40IDQuMnMtMy43LS41LTcuNC00LjJjLTMuOC0zLjctOC0xMC0xMS44LTE4LjljLTYuMi0xNC41LTEwLjgtMzQuMy0xMi4yLTU2LjloNjNjLTEuNSAyMi42LTYgNDIuNC0xMi4yIDU2LjljLTMuOCA4LjktOCAxNS4yLTExLjggMTguOXptNDIuNy05LjljNy4zLTE4LjMgMTItNDEuMSAxMy40LTY1LjloMzEuMWMtNC43IDI3LjktMjEuNCA1MS43LTQ0LjUgNjUuOXptMC0xNjMuOGMyMy4yIDE0LjIgMzkuOSAzOCA0NC41IDY1LjlIMzAzLjVjLTEuNC0yNC43LTYuMS00Ny41LTEzLjQtNjUuOXpNMzY4IDE5MmExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwek0xNDUuMyAyMDhoMzEuMWMxLjQgMjQuNyA2LjEgNDcuNSAxMy40IDY1LjljLTIzLjItMTQuMi0zOS45LTM4LTQ0LjUtNjUuOXptMzEuMS0zMkgxNDUuM2M0LjctMjcuOSAyMS40LTUxLjcgNDQuNS02NS45Yy03LjMgMTguMy0xMiA0MS4xLTEzLjQgNjUuOXptNTYuMS03NS44YzMuNy0zLjcgNi4yLTQuMiA3LjQtNC4yczMuNyAuNSA3LjQgNC4yYzMuOCAzLjcgOCAxMCAxMS44IDE4LjljNi4yIDE0LjUgMTAuOCAzNC4zIDEyLjIgNTYuOWgtNjNjMS41LTIyLjYgNi00Mi40IDEyLjItNTYuOWMzLjgtOC45IDgtMTUuMiAxMS44LTE4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tCaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzQzIDAgMCA0MyAwIDk2VjQxNmMwIDUzIDQzIDk2IDk2IDk2SDM4NGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlYzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzg0IDk2em0wIDM4NEgzNTJ2NjRIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTIwOCA4MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyVjMwNGMwIDguOC03LjIgMTYtMTYgMTZIMjI0Yy04LjggMC0xNi03LjItMTYtMTZWMTkySDE2MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZoNDhWODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNDMgNDMgMCA5NiAwaDk2VjE5MC43YzAgMTMuNCAxNS41IDIwLjkgMjYgMTIuNUwyNzIgMTYwbDU0IDQzLjJjMTAuNSA4LjQgMjYgLjkgMjYtMTIuNVYwaDMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODQgOTZjLTUzIDAtOTYtNDMtOTYtOTZWOTZ6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzNTJWMzg0SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va0pvdXJuYWxXaGlsbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDQzIDQzIDAgOTYgMEgzODRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NCA5NmMtNTMgMC05Ni00My05Ni05NlY5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MlYzODRIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05MC40LTIzNC40bC0yMS4yLTIxLjJjLTMgMTAuMS01LjEgMjAuNi01LjEgMzEuNmMwIC4yIDAgLjUgLjEgLjhzLjEgLjUgLjEgLjhMMTY1LjIgMjI2YzIuNSAyLjEgMy40IDUuOCAyLjMgOC45Yy0xLjMgMy00LjEgNS4xLTcuNSA1LjFjLTEuOS0uMS0zLjgtLjgtNS4yLTJsLTIzLjYtMjAuNkMxNDIuOCAyNjcgMTg2LjkgMzA0IDI0MCAzMDRzOTcuMy0zNyAxMDguOS04Ni42TDMyNS4zIDIzOGMtMS40IDEuMi0zLjMgMi01LjMgMmMtMi4yLS4xLTQuNC0xLjEtNi0yLjhjLTEuMi0xLjUtMS45LTMuNC0yLTUuMmMuMS0yLjIgMS4xLTQuNCAyLjgtNmwzNy4xLTMyLjVjMC0uMyAwLS41IC4xLS44cy4xLS41IC4xLS44YzAtMTEtMi4xLTIxLjUtNS4xLTMxLjZsLTIxLjIgMjEuMmMtMy4xIDMuMS04LjEgMy4xLTExLjMgMHMtMy4xLTguMSAwLTExLjJsMjYuNC0yNi41Yy04LjItMTctMjAuNS0zMS43LTM1LjktNDIuNmMtMi43LTEuOS02LjIgMS40LTUgNC41YzguNSAyMi40IDMuNiA0OC0xMyA2NS42Yy0zLjIgMy40LTMuNiA4LjktLjkgMTIuN2M5LjggMTQgMTIuNyAzMS45IDcuNSA0OC41Yy01LjkgMTkuNC0yMiAzNC4xLTQxLjkgMzguM2wtMS40LTM0LjMgMTIuNiA4LjZjLjYgLjQgMS41IC42IDIuMyAuNmMxLjUgMCAyLjctLjggMy41LTJzLjYtMi44LS4xLTRMMjYwIDIyNS40bDE4LTMuNmMxLjgtLjQgMy4xLTIuMSAzLjEtNHMtMS40LTMuNS0zLjEtMy45bC0xOC0zLjcgOC41LTE0LjNjLjgtMS4yIC45LTIuOSAuMS00LjFzLTItMi0zLjUtMmwtLjEgMGMtLjcgLjEtMS41IC4zLTIuMSAuN2wtMTQuMSA5LjZMMjQ0IDg3LjljLS4xLTIuMi0xLjktMy45LTQtMy45cy0zLjkgMS42LTQgMy45bC00LjYgMTEwLjgtMTItOC4xYy0xLjUtMS4xLTMuNi0uOS01IC40cy0xLjYgMy40LS44IDVsOC42IDE0LjMtMTggMy43Yy0xLjggLjQtMy4xIDItMy4xIDMuOXMxLjQgMy42IDMuMSA0bDE4IDMuOC04LjYgMTQuMmMtLjIgLjYtLjUgMS40LS41IDJjMCAxLjEgLjUgMi4xIDEuMiAzYy44IC42IDEuOCAxIDIuOCAxYy43IDAgMS42LS4yIDIuMi0uNmwxMC40LTcuMS0xLjQgMzIuOGMtMTkuOS00LjEtMzYtMTguOS00MS45LTM4LjNjLTUuMS0xNi42LTIuMi0zNC40IDcuNi00OC41YzIuNy0zLjkgMi4zLTkuMy0uOS0xMi43Yy0xNi42LTE3LjUtMjEuNi00My4xLTEzLjEtNjUuNWMxLjItMy4xLTIuMy02LjQtNS00LjVjLTE1LjMgMTAuOS0yNy42IDI1LjYtMzUuOCA0Mi42bDI2LjQgMjYuNWMzLjEgMy4xIDMuMSA4LjEgMCAxMS4ycy04LjEgMy4xLTExLjIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDQzIDQzIDAgOTYgMEgzODRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMydjY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NCA5NmMtNTMgMC05Ni00My05Ni05NlY5NnpNNjQgNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MlYzODRIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0yMDggMTEydjQ4SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIyNGg0OGM4LjggMCAxNi03LjIgMTYtMTZWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkgyNzJWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgyMjRjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va09wZW5SZWFkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDk2YTk2IDk2IDAgMSAxIDE5MiAwQTk2IDk2IDAgMSAxIDE2MCA5NnptODAgMTUyVjUxMmwtNDguNC0yNC4yYy0yMC45LTEwLjQtNDMuNS0xNy02Ni44LTE5LjNsLTk2LTkuNkMxMi41IDQ1Ny4yIDAgNDQzLjUgMCA0MjdWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDYyLjNjNjMuNiAwIDEyNS42IDE5LjYgMTc3LjcgNTZ6bTMyIDI2NFYyNDhjNTIuMS0zNi40IDExNC4xLTU2IDE3Ny43LTU2SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MjdjMCAxNi40LTEyLjUgMzAuMi0yOC44IDMxLjhsLTk2IDkuNmMtMjMuMiAyLjMtNDUuOSA4LjktNjYuOCAxOS4zTDI3MiA1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OS42IDQ3MS41YzEwLjggMy44IDIyLjQtNC4xIDIyLjQtMTUuNVY3OC42YzAtNC4yLTEuNi04LjQtNS0xMUMyNDcuNCA1MiAyMDIuNCAzMiAxNDQgMzJDOTMuNSAzMiA0Ni4zIDQ1LjMgMTguMSA1Ni4xQzYuOCA2MC41IDAgNzEuNyAwIDgzLjhWNDU0LjFjMCAxMS45IDEyLjggMjAuMiAyNC4xIDE2LjVDNTUuNiA0NjAuMSAxMDUuNSA0NDggMTQ0IDQ0OGMzMy45IDAgNzkgMTQgMTA1LjYgMjMuNXptNzYuOCAwQzM1MyA0NjIgMzk4LjEgNDQ4IDQzMiA0NDhjMzguNSAwIDg4LjQgMTIuMSAxMTkuOSAyMi42YzExLjMgMy44IDI0LjEtNC42IDI0LjEtMTYuNVY4My44YzAtMTIuMS02LjgtMjMuMy0xOC4xLTI3LjZDNTI5LjcgNDUuMyA0ODIuNSAzMiA0MzIgMzJjLTU4LjQgMC0xMDMuNCAyMC0xMjMgMzUuNmMtMy4zIDIuNi01IDYuOC01IDExVjQ1NmMwIDExLjQgMTEuNyAxOS4zIDIyLjQgMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va1F1cmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAwYzUzIDAgOTYgNDMgOTYgOTZWNDE2YzAgNTMtNDMgOTYtOTYgOTZINjQgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMkMwIDE0LjMgMTQuMyAwIDMyIDBINjQgMzUyem0wIDM4NEg5NnY2NEgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJ6TTI3NC4xIDE1MC4ybC04LjkgMjEuNC0yMy4xIDEuOWMtNS43IC41LTggNy41LTMuNyAxMS4yTDI1NiAxOTkuOGwtNS40IDIyLjZjLTEuMyA1LjUgNC43IDkuOSA5LjYgNi45TDI4MCAyMTcuMmwxOS44IDEyLjFjNC45IDMgMTAuOS0xLjQgOS42LTYuOUwzMDQgMTk5LjhsMTcuNi0xNS4xYzQuMy0zLjcgMi0xMC44LTMuNy0xMS4ybC0yMy4xLTEuOS04LjktMjEuNGMtMi4yLTUuMy05LjYtNS4zLTExLjggMHpNOTYgMTkyYzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4YzI1LjYgMCA0OS41LTcuNSA2OS41LTIwLjVjMy4yLTIuMSA0LjUtNi4yIDMuMS05LjdzLTUuMi01LjYtOS00LjhjLTYuMSAxLjItMTIuNSAxLjktMTkgMS45Yy01Mi40IDAtOTQuOS00Mi41LTk0LjktOTQuOXM0Mi41LTk0LjkgOTQuOS05NC45YzYuNSAwIDEyLjggLjcgMTkgMS45YzMuOCAuOCA3LjUtMS4zIDktNC44cy4yLTcuNi0zLjEtOS43QzI3My41IDcxLjUgMjQ5LjYgNjQgMjI0IDY0QzE1My4zIDY0IDk2IDEyMS4zIDk2IDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va1NrdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA0MyA0MyAwIDk2IDBIMzg0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODQgOTZjLTUzIDAtOTYtNDMtOTYtOTZWOTZ6TTY0IDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzNTJWMzg0SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMzIwIDExMmMwLTM1LjMtMzUuOC02NC04MC02NHMtODAgMjguNy04MCA2NGMwIDIwLjkgMTIuNiAzOS41IDMyIDUxLjJWMTc2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMTYzLjJjMTkuNC0xMS43IDMyLTMwLjMgMzItNTEuMnpNMjA4IDk2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTM0LjMgMjA5LjNjLTguMS0zLjUtMTcuNSAuMy0yMSA4LjRzLjMgMTcuNSA4LjQgMjFMMTk5LjQgMjcybC03Ny43IDMzLjNjLTguMSAzLjUtMTEuOSAxMi45LTguNCAyMXMxMi45IDExLjkgMjEgOC40TDI0MCAyODkuNGwxMDUuNyA0NS4zYzguMSAzLjUgMTcuNS0uMyAyMS04LjRzLS4zLTE3LjUtOC40LTIxTDI4MC42IDI3Mmw3Ny43LTMzLjNjOC4xLTMuNSAxMS45LTEyLjkgOC40LTIxcy0xMi45LTExLjktMjEtOC40TDI0MCAyNTQuNiAxMzQuMyAyMDkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va1RhbmFraCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMGM1MyAwIDk2IDQzIDk2IDk2VjQxNmMwIDUzLTQzIDk2LTk2IDk2SDY0IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDY0IDM1MnptMCAzODRIOTZ2NjRIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyek0xMzguNyAyMDhsMTMuOSAyNEgxMjQuOWwxMy45LTI0em0tMTMuOS0yNEw5Ny4xIDIzMmMtNi4yIDEwLjcgMS41IDI0IDEzLjkgMjRoNTUuNGwyNy43IDQ4YzYuMiAxMC43IDIxLjYgMTAuNyAyNy43IDBsMjcuNy00OEgzMDVjMTIuMyAwIDIwLTEzLjMgMTMuOS0yNGwtMjcuNy00OCAyNy43LTQ4YzYuMi0xMC43LTEuNS0yNC0xMy45LTI0SDI0OS42TDIyMS45IDY0Yy02LjItMTAuNy0yMS42LTEwLjctMjcuNyAwbC0yNy43IDQ4SDExMWMtMTIuMyAwLTIwIDEzLjMtMTMuOSAyNGwyNy43IDQ4em0yNy43IDBsMjcuNy00OGg1NS40bDI3LjcgNDgtMjcuNyA0OEgxODAuM2wtMjcuNy00OHptMC00OGwtMTMuOSAyNC0xMy45LTI0aDI3Ljd6bTQxLjYtMjRMMjA4IDg4bDEzLjkgMjRIMTk0LjF6bTY5LjMgMjRoMjcuN2wtMTMuOSAyNC0xMy45LTI0em0xMy45IDcybDEzLjkgMjRIMjYzLjRsMTMuOS0yNHptLTU1LjQgNDhMMjA4IDI4MGwtMTMuOS0yNGgyNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNDMgMCAwIDQzIDAgOTZWNDE2YzAgNTMgNDMgOTYgOTYgOTZIMzg0aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjM4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzODQgOTZ6bTAgMzg0SDM1MnY2NEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMzItMjQwYzAtOC44IDcuMi0xNiAxNi0xNkgzMzZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTQ0Yy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDQ4SDMzNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhWNDg3LjdDMCA1MDEuMSAxMC45IDUxMiAyNC4zIDUxMmM1IDAgOS45LTEuNSAxNC00LjRMMTkyIDQwMCAzNDUuNyA1MDcuNmM0LjEgMi45IDkgNC40IDE0IDQuNGMxMy40IDAgMjQuMy0xMC45IDI0LjMtMjQuM1Y0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgOTZWMjI0SDI1NlY5NkgzODR6bTAgMTkyVjQxNkgyNTZWMjg4SDM4NHpNMTkyIDIyNEg2NFY5NkgxOTJWMjI0ek02NCAyODhIMTkyVjQxNkg2NFYyODh6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9yZGVyTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em05Ni02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMCAyNTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek0zMjAgNDE2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMC0zMjBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTIyNCA0ODBhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0wLTQ0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAgMjU2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNNDE2IDQxNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAtMzg0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgOTZhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek00MTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMzIgMjg4YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMTkyIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTkyIDY0YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpNMzIgMzIwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNDE2IDE5MmEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6TTMyIDEyOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTE5MiA2NGEzMiAzMiAwIDEgMSAwLTY0IDMyIDMyIDAgMSAxIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvcmRlclRvcExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTMzNmMwLTguOCA3LjItMTYgMTYtMTZsMzM2IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMODAgMzJDMzUuOCAzMiAwIDY3LjggMCAxMTJMMCA0NDh6bTE2MCAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTE5MiAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bS05NiAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTE5MiAwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTQxNiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0wIDMyYTMyIDMyIDAgMSAwIDAgNjQgMzIgMzIgMCAxIDAgMC02NHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JlSG9sZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWMjk2LjZjLTE5LjEgMTEuMS0zMiAzMS43LTMyIDU1LjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTIzLjctMTIuOS00NC40LTMyLTU1LjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ4IDEyOGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQ2NGMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlYzNTJjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3R0bGVEcm9wbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDODIuNyAwIDcyIDEwLjcgNzIgMjRzMTAuNyAyNCAyNCAyNGM0LjQgMCA4IDMuNiA4IDh2NjQuOWMwIDEyLjItNy4yIDIzLjEtMTcuMiAzMC4xQzUzLjcgMTc0LjEgMzIgMjEyLjUgMzIgMjU2VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjU2YzAtNDMuNS0yMS43LTgxLjktNTQuOC0xMDVjLTEwLTctMTcuMi0xNy45LTE3LjItMzAuMVY1NmMwLTQuNCAzLjYtOCA4LThjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTggMCAwIDAgMCAwSDEwNGwwIDAgMCAwTDk2IDB6bTY0IDM4MmMtMjYuNSAwLTQ4LTIwLjEtNDgtNDVjMC0xNi44IDIyLjEtNDguMSAzNi4zLTY2LjRjNi03LjggMTcuNS03LjggMjMuNSAwQzE4NS45IDI4OC45IDIwOCAzMjAuMiAyMDggMzM3YzAgMjQuOS0yMS41IDQ1LTQ4IDQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3R0bGVXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAgMGw4MCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0bDAgNDBMOTYgNjRsMC00MGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNMzIgMTY3LjVjMC0xOS41IDEwLTM3LjYgMjYuNi00Ny45bDE1LjgtOS45Qzg4LjcgMTAwLjcgMTA1LjIgOTYgMTIyLjEgOTZsNzUuOCAwYzE2LjkgMCAzMy40IDQuNyA0Ny43IDEzLjdsMTUuOCA5LjlDMjc4IDEyOS45IDI4OCAxNDggMjg4IDE2Ny41YzAgMTctNy41IDMyLjMtMTkuNCA0Mi42QzI4MC42IDIyMS43IDI4OCAyMzggMjg4IDI1NmMwIDE5LjEtOC40IDM2LjMtMjEuNyA0OGMxMy4zIDExLjcgMjEuNyAyOC45IDIxLjcgNDhzLTguNCAzNi4zLTIxLjcgNDhjMTMuMyAxMS43IDIxLjcgMjguOSAyMS43IDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0TDk2IDUxMmMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0xOS4xIDguNC0zNi4zIDIxLjctNDhDNDAuNCAzODguMyAzMiAzNzEuMSAzMiAzNTJzOC40LTM2LjMgMjEuNy00OEM0MC40IDI5Mi4zIDMyIDI3NS4xIDMyIDI1NmMwLTE4IDcuNC0zNC4zIDE5LjQtNDUuOUMzOS41IDE5OS43IDMyIDE4NC41IDMyIDE2Ny41ek05NiAyNDBjMCA4LjggNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnptMTYgMTEyYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDk2IDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvd2xGb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0Yy41IDAgMS4xIDAgMS42IDBDNzMgOTEuNSAxMDUuMyA2NCAxNDQgNjRjMTUgMCAyOSA0LjEgNDAuOSAxMS4yQzE5OC4yIDQ5LjYgMjI1LjEgMzIgMjU2IDMyczU3LjggMTcuNiA3MS4xIDQzLjJDMzM5IDY4LjEgMzUzIDY0IDM2OCA2NGMzOC43IDAgNzEgMjcuNSA3OC40IDY0Yy41IDAgMS4xIDAgMS42IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxMS43LTMuMSAyMi42LTguNiAzMkg4LjZDMy4xIDIxNC42IDAgMjAzLjcgMCAxOTJ6bTAgOTEuNEMwIDI2OC4zIDEyLjMgMjU2IDI3LjQgMjU2SDQ4NC42YzE1LjEgMCAyNy40IDEyLjMgMjcuNCAyNy40YzAgNzAuNS00NC40IDEzMC43LTEwNi43IDE1NC4xTDQwMy41IDQ1MmMtMiAxNi0xNS42IDI4LTMxLjggMjhIMTQwLjJjLTE2LjEgMC0yOS44LTEyLTMxLjgtMjhsLTEuOC0xNC40QzQ0LjQgNDE0LjEgMCAzNTMuOSAwIDI4My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3dsUmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjQgNDhoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek01NiAxNzZINzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTAgMjgzLjRDMCAyNjguMyAxMi4zIDI1NiAyNy40IDI1Nkg0ODQuNmMxNS4xIDAgMjcuNCAxMi4zIDI3LjQgMjcuNGMwIDcwLjUtNDQuNCAxMzAuNy0xMDYuNyAxNTQuMUw0MDMuNSA0NTJjLTIgMTYtMTUuNiAyOC0zMS44IDI4SDE0MC4yYy0xNi4xIDAtMjkuOC0xMi0zMS44LTI4bC0xLjgtMTQuNEM0NC40IDQxNC4xIDAgMzUzLjkgMCAyODMuNHpNMjI0IDIwMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tOTYgMGMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tMjQtOTZoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTA0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0em0yMTYgOTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMzQ0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptLTI0LTk2aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI5NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMTIwIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDQ0MGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bS0yNC05NmgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgzOTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6TTI5NiAzMmgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvd2xpbmdCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yNDAgODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMDggMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS02NC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJveEFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgMTI4IDAgMTEzLjcgMCA5NlY2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMnptMCAxMjhINDgwVjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwem0xMjggODBjMCA4LjggNy4yIDE2IDE2IDE2SDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94T3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OC45IDQyLjFjMy02LjEgOS42LTkuNiAxNi4zLTguN0wzMjAgNjQgNTY0LjggMzMuNGM2LjctLjggMTMuMyAyLjcgMTYuMyA4LjdsNDEuNyA4My40YzkgMTcuOS0uNiAzOS42LTE5LjggNDUuMUw0MzkuNiAyMTcuM2MtMTMuOSA0LTI4LjgtMS45LTM2LjItMTQuM0wzMjAgNjQgMjM2LjYgMjAzYy03LjQgMTIuNC0yMi4zIDE4LjMtMzYuMiAxNC4zTDM3LjEgMTcwLjZjLTE5LjMtNS41LTI4LjgtMjcuMi0xOS44LTQ1LjFMNTguOSA0Mi4xek0zMjEuMSAxMjhsNTQuOSA5MS40YzE0LjkgMjQuOCA0NC42IDM2LjYgNzIuNSAyOC42TDU3NiAyMTEuNnYxNjdjMCAyMi0xNSA0MS4yLTM2LjQgNDYuNmwtMjA0LjEgNTFjLTEwLjIgMi42LTIwLjkgMi42LTMxIDBsLTIwNC4xLTUxQzc5IDQxOS43IDY0IDQwMC41IDY0IDM3OC41di0xNjdMMTkxLjYgMjQ4YzI3LjggOCA1Ny42LTMuOCA3Mi41LTI4LjZMMzE4LjkgMTI4aDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94VGlzc3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkyLjUgMEgyMDhjNDAgMCA1MiAyNCA2NCA0OHMyNCA0OCA2NCA0OGg4NS4yQzQzNiA5NiA0NDggMTA4IDQ0OCAxMjIuOGMwIDMuNC0uNyA2LjgtMS45IDEwTDQwOS42IDIyNCAzODQgMjg4SDEyOGwtMTYtNjRMNjQuOSAzNS40Yy0uNi0yLjMtLjktNC42LS45LTYuOUM2NCAxMi44IDc2LjggMCA5Mi41IDB6TTc5IDIyNGwxNiA2NEg4MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg0OEgzODRoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINDE4LjVsMjUuNi02NEg0NjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMzg0SDBWMjcyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDc5ek0wIDQxNkg1MTJ2NDhjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwLjcgNTguNUwwIDE2MEgyMDhWMzJIOTMuN0M3NS41IDMyIDU4LjkgNDIuMyA1MC43IDU4LjV6TTI0MCAxNjBINDQ4TDM5Ny4zIDU4LjVDMzg5LjEgNDIuMyAzNzIuNSAzMiAzNTQuMyAzMkgyNDBWMTYwem0yMDggMzJIMFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94ZXNQYWNraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGMwLTI2LjUgMjEuNS00OCA0OC00OEg1OTJjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDM4MS4zYzEuOC01IDIuNy0xMC40IDIuNy0xNlYyNTMuM2MxOC42LTYuNiAzMi0yNC40IDMyLTQ1LjNWMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI1NlY0OHpNNTcxLjMgMzQ3LjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTY0LTY0Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtNjQgNjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0ODAgMzEwLjZWNDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzEwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwek0wIDE3NmMwLTguOCA3LjItMTYgMTYtMTZIMzY4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZ6bTM1MiA4MFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI1NkgzNTJ6TTE0NCAzMjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoOTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hlc1N0YWNrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDBIMjA4Yy0yNi41IDAtNDggMjEuNS00OCA0OFYxNjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzUyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDMyOFY4MGMwIDguOC03LjIgMTYtMTYgMTZIMjY0Yy04LjggMC0xNi03LjItMTYtMTZWMHpNNjQgMjU2Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjMyMGMwLTM1LjMtMjguNy02NC02NC02NEgxODR2ODBjMCA4LjgtNy4yIDE2LTE2IDE2SDEyMGMtOC44IDAtMTYtNy4yLTE2LTE2VjI1Nkg2NHpNMzUyIDUxMkg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDQ3MnY4MGMwIDguOC03LjIgMTYtMTYgMTZINDA4Yy04LjggMC0xNi03LjItMTYtMTZWMjU2SDM1MmMtMTUgMC0yOC44IDUuMS0zOS43IDEzLjhjNC45IDEwLjQgNy43IDIyIDcuNyAzNC4yVjQ2NGMwIDEyLjItMi44IDIzLjgtNy43IDM0LjJDMzIzLjIgNTA2LjkgMzM3IDUxMiAzNTIgNTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmFpbGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgMCA5NnpNMjI0IDI3MmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTAtODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTgwIDQxNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwek0wIDQxNmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSAwIDQxNnptMjQwIDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptLTgwIDBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek02NCAxOTJhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTIyNCAzMmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMzUyIDk2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDM1MiA5NnptMjQwIDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptLTgwIDBhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgNTEyIDk2em02NCAxNzZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0wLTgwYTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4em0xNiAyMjRhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptLTgwIDBhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwek00MTYgMjcyYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptMC04MGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMTYgMjI0YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bS04MCAwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0IDBjMzAuOSAwIDU2IDI1LjEgNTYgNTZWNDU2YzAgMzAuOS0yNS4xIDU2LTU2IDU2Yy0yOC45IDAtNTIuNy0yMS45LTU1LjctNTAuMWMtNS4yIDEuNC0xMC43IDIuMS0xNi4zIDIuMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC03LjQgMS4zLTE0LjYgMy42LTIxLjJDMjEuNCAzNjcuNCAwIDMzOC4yIDAgMzA0YzAtMzEuOSAxOC43LTU5LjUgNDUuOC03Mi4zQzM3LjEgMjIwLjggMzIgMjA3IDMyIDE5MmMwLTMwLjcgMjEuNi01Ni4zIDUwLjQtNjIuNkM4MC44IDEyMy45IDgwIDExOCA4MCAxMTJjMC0yOS45IDIwLjYtNTUuMSA0OC4zLTYyLjFDMTMxLjMgMjEuOSAxNTUuMSAwIDE4NCAwek0zMjggMGMyOC45IDAgNTIuNiAyMS45IDU1LjcgNDkuOWMyNy44IDcgNDguMyAzMi4xIDQ4LjMgNjIuMWMwIDYtLjggMTEuOS0yLjQgMTcuNGMyOC44IDYuMiA1MC40IDMxLjkgNTAuNCA2Mi42YzAgMTUtNS4xIDI4LjgtMTMuOCAzOS43QzQ5My4zIDI0NC41IDUxMiAyNzIuMSA1MTIgMzA0YzAgMzQuMi0yMS40IDYzLjQtNTEuNiA3NC44YzIuMyA2LjYgMy42IDEzLjggMy42IDIxLjJjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTUuNiAwLTExLjEtLjctMTYuMy0yLjFjLTMgMjguMi0yNi44IDUwLjEtNTUuNyA1MC4xYy0zMC45IDAtNTYtMjUuMS01Ni01NlY1NmMwLTMwLjkgMjUuMS01NiA1Ni01NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJhemlsaWFuUmVhbFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNTAuMmMxMi41IDIuMyAyNC43IDYuNCAzNi4yIDEyLjFsMTAuMSA1LjFjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM2wtMTAuMi01LjFjLTkuOS01LTIwLjktNy41LTMyLTcuNWgtMS43Yy0yOS44IDAtNTMuOSAyNC4xLTUzLjkgNTMuOWMwIDIyIDEzLjQgNDEuOCAzMy45IDUwbDUyIDIwLjhjNDQuNyAxNy45IDc0LjEgNjEuMiA3NC4xIDEwOS40djMuNGMwIDUxLjItMzMuNiA5NC42LTgwIDEwOS4yVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NjAuNmMtMTUtMy41LTI5LjQtOS43LTQyLjMtMTguM2wtMjMuNC0xNS42Yy0xNC43LTkuOC0xOC43LTI5LjctOC45LTQ0LjRzMjkuNy0xOC43IDQ0LjQtOC45TDM2MS4yIDM4OWMxMC44IDcuMiAyMy40IDExIDM2LjMgMTFjMjcuOSAwIDUwLjUtMjIuNiA1MC41LTUwLjV2LTMuNGMwLTIyLTEzLjQtNDEuOC0zMy45LTUwbC01Mi0yMC44QzMxNy4zIDI1Ny40IDI4OCAyMTQuMSAyODggMTY1LjlDMjg4IDExNCAzMjEuNSA3MCAzNjggNTQuMlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMmg4MGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDU4LjgtMzUuMiAxMDkuMy04NS43IDEzMS43bDUxLjQgMTI4LjRjNi42IDE2LjQtMS40IDM1LTE3LjggNDEuNnMtMzUtMS40LTQxLjYtMTcuOEwxMDYuMyAzMjBINjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI4OCA2NHpNNjQgMjU2aDQ4YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwSDY0VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJlYWRTbGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTkyIDMyIDAgNjQgMCAxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OFYyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRDNTEyIDY0IDMyMCAzMiAyNTYgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWRnZUNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NHMxNC4zIDMyIDMyIDMyaDQwdjY0SDMyVjI4OGM1MyAwIDk2IDQzIDk2IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTUzIDQzLTk2IDk2LTk2YzYuMyAwIDEyLjQgLjYgMTguMyAxLjdDMzY3LjEgMjMxLjggNDI2LjkgMTkyIDQ5NiAxOTJjNDIuNSAwIDgxLjYgMTUuMSAxMTIgNDAuMlYxNjBINTM2Vjk2aDQwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDY0ek00ODggOTZ2NjRINDA4Vjk2aDgwek0zNjAgOTZ2NjRIMjgwVjk2aDgwek0yMzIgOTZ2NjRIMTUyVjk2aDgwek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmlkZ2VDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkM0Ni4zIDMyIDMyIDQ2LjMgMzIgNjRzMTQuMyAzMiAzMiAzMmg0MHY2NEgzMlYyODhjNTMgMCA5NiA0MyA5NiA5NnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzODRjMC01MyA0My05NiA5Ni05NmM2LjMgMCAxMi40IC42IDE4LjMgMS43QzM2Ny4xIDIzMS44IDQyNi45IDE5MiA0OTYgMTkyYzQyLjUgMCA4MS42IDE1LjEgMTEyIDQwLjJWMTYwSDUzNlY5Nmg0MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NHpNNDg4IDk2djY0SDQwOFY5Nmg4MHpNMzYwIDk2djY0SDI4MFY5Nmg4MHpNMjMyIDk2djY0SDE1MlY5Nmg4MHpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZGdlQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0czE0LjMgMzIgMzIgMzJoNDB2NjRIMzJWMjg4YzUzIDAgOTYgNDMgOTYgOTZ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0YzAtNTMgNDMtOTYgOTYtOTZjNi4zIDAgMTIuNCAuNiAxOC4zIDEuN0MzNjcuMSAyMzEuOCA0MjYuOSAxOTIgNDk2IDE5MmM0Mi41IDAgODEuNiAxNS4xIDExMiA0MC4yVjE2MEg1MzZWOTZoNDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjR6TTQ4OCA5NnY2NEg0MDhWOTZoODB6TTM2MCA5NnY2NEgyODBWOTZoODB6TTIzMiA5NnY2NEgxNTJWOTZoODB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmlkZ2VMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDU3NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1MzZ2NjRoLThjLTYxLjkgMC0xMTIgNTAuMS0xMTIgMTEydjI0LjZjLTkuOSA1LjgtMTguMiAxNC4xLTIzLjggMjQuMWMtMTcuNi0yMC00My40LTMyLjctNzIuMi0zMi43Yy01MyAwLTk2IDQzLTk2IDk2djY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg0YzAtNTMtNDMtOTYtOTYtOTZWMTYwaDcyVjk2SDY0QzQ2LjMgOTYgMzIgODEuNyAzMiA2NHpNNDA4IDk2djY0aDgwVjk2SDQwOHptLTQ4IDY0Vjk2SDI4MHY2NGg4MHpNMTUyIDk2djY0aDgwVjk2SDE1MnpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDhoNjRWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MHY0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJWMjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmlkZ2VXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNzguMyAxNC4zIDY0IDMyIDY0SDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnYzNS42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40Yy0zNy4zIDAtNjcuNiAzMC4yLTY3LjYgNjcuNlYzNTIuNWMtMTIuOSAwLTI1LjggMy45LTM2LjggMTEuN2MtMTggMTIuNC00MC4xIDIwLjMtNTkuMiAyMC4zaDBsMC0uNVYyNTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZWMzg0bDAgLjVjLTE5IDAtNDEuMi03LjktNTkuMS0yMC4zYy0xMS4xLTcuOC0yNC0xMS43LTM2LjktMTEuN1YyMjcuNkM5NiAxOTAuMiA2NS44IDE2MCAyOC40IDE2MEMxMi43IDE2MCAwIDE0Ny4zIDAgMTMxLjZWOTZ6TTMwNi41IDM4OS45QzMyOSA0MDUuNCAzNTYuNSA0MTYgMzg0IDQxNmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA0NjkuNyA0MTcgNDgwIDM4NCA0ODBjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyA0MDUuMiAxNjUuMSA0MTYgMTkyIDQxNmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nkg3MnY2NEgwVjI4OGM1MyAwIDk2IDQzIDk2IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTUzIDQzLTk2IDk2LTk2VjE2MEg1MDRWOTZoNDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6TTQ1NiA5NnY2NEgzNzZWOTZoODB6TTMyOCA5NnY2NEgyNDhWOTZoODB6TTIwMCA5NnY2NEgxMjBWOTZoODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWVmY2FzZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0IDQ4SDMyOGM0LjQgMCA4IDMuNiA4IDhWOTZIMTc2VjU2YzAtNC40IDMuNi04IDgtOHptLTU2IDhWOTZINjRDMjguNyA5NiAwIDEyNC43IDAgMTYwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM4NFY1NmMwLTMwLjktMjUuMS01Ni01Ni01NkgxODRjLTMwLjkgMC01NiAyNS4xLTU2IDU2em05NiAxNTJjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY0OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI4OHY0OGMwIDguOC03LjIgMTYtMTYgMTZIMjQwYy04LjggMC0xNi03LjItMTYtMTZWMzIwSDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoNDhWMjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmllZmNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0IDQ4SDMyOGM0LjQgMCA4IDMuNiA4IDhWOTZIMTc2VjU2YzAtNC40IDMuNi04IDgtOHptLTU2IDhWOTZINjRDMjguNyA5NiAwIDEyNC43IDAgMTYwdjk2SDE5MiAzMjAgNTEyVjE2MGMwLTM1LjMtMjguNy02NC02NC02NEgzODRWNTZjMC0zMC45LTI1LjEtNTYtNTYtNTZIMTg0Yy0zMC45IDAtNTYgMjUuMS01NiA1NnpNNTEyIDI4OEgzMjB2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODhIMFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJvb21CYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2Ni42IDkuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTkyIDE5MiAzNC43IDM0LjdjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42SDM2NC4zTDI1NiAyMTEuN1YxODIuNmMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNmM2IDAgMTEuOCAyLjQgMTYgNi42bDM0LjcgMzQuNyAxOTItMTkyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwem0tMzQ0IDIyNS41TDM0MS4xIDM1My40YzMuNyA0Mi43LTExLjcgODUuMi00Mi4zIDExNS44QzI3MS40IDQ5Ni42IDIzNC4yIDUxMiAxOTUuNSA1MTJMMjIuMSA1MTJDOS45IDUxMiAwIDUwMi4xIDAgNDg5LjljMC02LjMgMi43LTEyLjMgNy4zLTE2LjVMMTMzLjcgMzU5LjdjNC4yLTMuNy0uNC0xMC40LTUuNC03LjlMNzcuMiAzNzcuNGMtNi4xIDMtMTMuMi0xLjQtMTMuMi04LjJjMC0zMS41IDEyLjUtNjEuNyAzNC44LTg0bDgtOGMzMC42LTMwLjYgNzMuMS00NS45IDExNS44LTQyLjN6TTQ2NCAzNTJhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2Ni42IDU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTE5MiAxOTItMzQuNy0zNC43Yy00LjItNC4yLTEwLTYuNi0xNi02LjZjLTEyLjUgMC0yMi42IDEwLjEtMjIuNiAyMi42djI5LjFMMzY0LjMgMzIwaDI5LjFjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjZjMC02LTIuNC0xMS44LTYuNi0xNmwtMzQuNy0zNC43IDE5Mi0xOTJ6TTM0MS4xIDM1My40TDIyMi42IDIzNC45Yy00Mi43LTMuNy04NS4yIDExLjctMTE1LjggNDIuM2wtOCA4Qzc2LjUgMzA3LjUgNjQgMzM3LjcgNjQgMzY5LjJjMCA2LjggNy4xIDExLjIgMTMuMiA4LjJsNTEuMS0yNS41YzUtMi41IDkuNSA0LjEgNS40IDcuOUw3LjMgNDczLjRDMi43IDQ3Ny42IDAgNDgzLjYgMCA0ODkuOUMwIDUwMi4xIDkuOSA1MTIgMjIuMSA1MTJsMTczLjMgMGMzOC44IDAgNzUuOS0xNS40IDEwMy40LTQyLjhjMzAuNi0zMC42IDQ1LjktNzMuMSA0Mi4zLTExNS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuNCA2Yy0xLjUtMy42LTUtNi04LjktNmgtMTljLTMuOSAwLTcuNSAyLjQtOC45IDZMMTA0LjkgNTcuN2MtMy4yIDgtMTQuNiA4LTE3LjggMEw2Ni40IDZjLTEuNS0zLjYtNS02LTguOS02SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OFYyMjR2MjIuNFYyNTZIOS42IDM3NC40IDM4NHYtOS42VjIyNCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEgyMzAuNWMtMy45IDAtNy41IDIuNC04LjkgNkwyMDAuOSA1Ny43Yy0zLjIgOC0xNC42IDgtMTcuOCAwTDE2Mi40IDZ6TTAgMjg4djMyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDY0djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjRWMzg0aDY0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjI4OEgwek0xOTIgNDMyYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDE1MnY4SDQ4di04QzQ4IDY4LjEgMTE2LjEgMCAyMDAgMGg0OGM4My45IDAgMTUyIDY4LjEgMTUyIDE1MnY4SDM1MnYtOGMwLTU3LjQtNDYuNi0xMDQtMTA0LTEwNEgyMDBDMTQyLjYgNDggOTYgOTQuNiA5NiAxNTJ6TTAgMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmgtNS4xTDM4OC41IDQ2OWMtMi42IDI0LjQtMjMuMiA0My00Ny43IDQzSDEwNy4yYy0yNC42IDAtNDUuMi0xOC41LTQ3LjctNDNMMzcuMSAyNTZIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWdTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Ny40IDM0OC45YzEuNy05LjQgMi42LTE5IDIuNi0yOC45aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ3OS43Yy0xLjEtMTQuMS01LTI3LjUtMTEuMS0zOS41Yy43LS42IDEuNC0xLjIgMi4xLTEuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLS43IC43LTEuMyAxLjQtMS45IDIuMUM0MDkuMiAxNjQuMSAzOTMuMSAxNjAgMzc2IDE2MEgyNjRjLTguMyAwLTE2LjMgMS0yNCAyLjhMMzguOCA1LjF6bTM5MiA0MzAuM0wzMzYgMzYwLjdWNDc5LjJjMzYuNi0zLjYgNjkuNy0xOS42IDk0LjgtNDMuOHpNMTY2LjcgMjI3LjNjLTMuNCA5LTUuNiAxOC43LTYuNCAyOC43SDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDY0YzAgMjQuNiA1LjUgNDcuOCAxNS40IDY4LjZjLTIuMiAxLjMtNC4yIDIuOS02IDQuOGwtNjQgNjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjMuMS02My4xYzI0LjUgMjEuOCA1NS44IDM2LjIgOTAuMyAzOS42VjMzNS41TDE2Ni43IDIyNy4zek0zMjAgMGMtNTMgMC05NiA0My05NiA5NnYzLjZjMCAxNS43IDEyLjcgMjguNCAyOC40IDI4LjRIMzg3LjZjMTUuNyAwIDI4LjQtMTIuNyAyOC40LTI4LjRWOTZjMC01My00My05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYzUzIDAgOTYgNDMgOTYgOTZ2My42YzAgMTUuNy0xMi43IDI4LjQtMjguNCAyOC40SDE4OC40Yy0xNS43IDAtMjguNC0xMi43LTI4LjQtMjguNFY5NmMwLTUzIDQzLTk2IDk2LTk2ek00MS40IDEwNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0Yy43IC43IDEuMyAxLjQgMS45IDIuMWMxNC4yLTcuMyAzMC40LTExLjQgNDcuNS0xMS40SDMxMmMxNy4xIDAgMzMuMiA0LjEgNDcuNSAxMS40Yy42LS43IDEuMi0xLjQgMS45LTIuMWw2NC02NGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC02NCA2NGMtLjcgLjctMS40IDEuMy0yLjEgMS45YzYuMiAxMiAxMC4xIDI1LjMgMTEuMSAzOS41SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0MTZjMCAyNC42LTUuNSA0Ny44LTE1LjQgNjguNmMyLjIgMS4zIDQuMiAyLjkgNiA0LjhsNjQgNjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBsLTYzLjEtNjMuMWMtMjQuNSAyMS44LTU1LjggMzYuMi05MC4zIDM5LjZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ3OS4yYy0zNC41LTMuNC02NS44LTE3LjgtOTAuMy0zOS42TDg2LjYgNTAyLjZjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDY0LTY0YzEuOS0xLjkgMy45LTMuNCA2LTQuOEMxMDEuNSAzNjcuOCA5NiAzNDQuNiA5NiAzMjBIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIOTYuM2MxLjEtMTQuMSA1LTI3LjUgMTEuMS0zOS41Yy0uNy0uNi0xLjQtMS4yLTIuMS0xLjlsLTY0LTY0Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjQuNSAxMDcuNGwzMy40LTczLjVjNS41LTEyLjEgLjEtMjYuMy0xMS45LTMxLjhzLTI2LjMtLjEtMzEuOCAxMS45TDEyOCA3MS43IDEwMS45IDE0LjFDOTYuNCAyIDgyLjEtMy4zIDcwLjEgMi4xUzUyLjcgMjEuOSA1OC4xIDMzLjlsMzMuNCA3My41Yy0xMC4yIDcuMS0xOC4yIDE3LTIyLjkgMjguNmgtMTdsLTQuMS0yMC43Yy0yLjYtMTMtMTUuMi0yMS40LTI4LjItMTguOFMtMi4xIDExMS43IC41IDEyNC43bDggNDBDMTAuNyAxNzUuOSAyMC42IDE4NCAzMiAxODRINjR2MjMuM2wtMzcuOCA5LjVjLTkuNSAyLjQtMTYuNiAxMC4yLTE3LjkgMTkuOWwtOCA1NmMtMS45IDEzLjEgNy4yIDI1LjMgMjAuNCAyNy4yczI1LjMtNy4yIDI3LjItMjAuNGw1LjctNDAgMTguNC00LjZDODIuNyAyNzQuNiAxMDMuOCAyODggMTI4IDI4OHM0NS4zLTEzLjQgNTYuMS0zMy4ybDE4LjQgNC42IDUuNyA0MGMxLjkgMTMuMSAxNCAyMi4yIDI3LjIgMjAuNHMyMi4yLTE0IDIwLjQtMjcuMmwtOC01NmMtMS40LTkuNy04LjUtMTcuNS0xNy45LTE5LjlMMTkyIDIwNy4zVjE4NGgzMmMxMS40IDAgMjEuMy04LjEgMjMuNS0xOS4zbDgtNDBjMi42LTEzLTUuOC0yNS42LTE4LjgtMjguMnMtMjUuNiA1LjgtMjguMiAxOC44TDIwNC4zIDEzNmgtMTdjLTQuNy0xMS42LTEyLjctMjEuNS0yMi45LTI4LjZ6TTQ5NiAyODYuNWw2NS42LTQ3YzEwLjgtNy43IDEzLjMtMjIuNyA1LjYtMzMuNXMtMjIuNy0xMy4zLTMzLjUtNS42bC01MS40IDM2LjggNi4xLTYyLjljMS4zLTEzLjItOC40LTI0LjktMjEuNi0yNi4ycy0yNC45IDguNC0yNi4yIDIxLjZMNDMyLjggMjUwYy0xMi4zIDEtMjQuMiA1LjYtMzQuMSAxMy4zTDM4NCAyNTQuOGw2LjgtMjBjNC4yLTEyLjYtMi41LTI2LjItMTUtMzAuNHMtMjYuMiAyLjUtMzAuNCAxNWwtMTMuMSAzOC42Yy0zLjcgMTAuOCAuOCAyMi44IDEwLjcgMjguNWwyNy43IDE2TDM1OSAzMjIuNyAzMjEuNSAzMTJjLTkuNC0yLjctMTkuNSAuNi0yNS41IDguM2wtMzQuOSA0NC41Yy04LjIgMTAuNC02LjQgMjUuNSA0LjEgMzMuN3MyNS41IDYuNCAzMy43LTQuMWwyNS0zMS44IDE4LjIgNS4yYy0uNSAyMi42IDExIDQ0LjcgMzIgNTYuOHM0NS45IDExIDY1LjItLjdsMTMuNiAxMy4yLTE1LjEgMzcuNWMtNC45IDEyLjMgMSAyNi4zIDEzLjMgMzEuMnMyNi4zLTEgMzEuMi0xMy4zTDUwMy41IDQ0MGMzLjYtOS4xIDEuNC0xOS40LTUuNi0yNi4ybC0yOC0yNy4xIDExLjYtMjAuMSAyNy43IDE2YzkuOSA1LjcgMjIuNSAzLjcgMzAtNC45TDU2Ni4yIDM0N2M4LjctMTAgNy44LTI1LjEtMi4yLTMzLjlzLTI1LjEtNy44LTMzLjkgMi4ybC0xMy45IDE1LjktMTQuNy04LjVjMS43LTEyLjQtLjItMjUtNS41LTM2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nQ2lyY2xlQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEgzMzZjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMjMyLjJjLTM5LjEgMzIuMy02NCA4MS4xLTY0IDEzNS44YzAgNDkuNSAyMC40IDk0LjIgNTMuMyAxMjYuMkMzNjQuNSA1MDUuMSAzNTEuMSA1MTIgMzM2IDUxMkgyNDBWNDMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDgwem04MCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ6bTExMi0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkgyNzJ6TTY0IDExMnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMTc2IDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDE3NnptODAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2em05NiAyNTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTQwLjctNjcuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZMNTIxLjQgMzUySDQzMmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4OS40bC0yOC43IDI4LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni01NmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNTYtNTZjLTYuMi02LjItMTYuNC02LjItMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ0NpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg5NmMxNS4xIDAgMjguNS02LjkgMzcuMy0xNy44QzM0MC40IDQ2Mi4yIDMyMCA0MTcuNSAzMjAgMzY4YzAtNTQuNyAyNC45LTEwMy41IDY0LTEzNS44VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNODAgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMnpNMjcyIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoOTZWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2ODBoOTZjMTUuMSAwIDI4LjUtNi45IDM3LjMtMTcuOEMzNDAuNCA0NjIuMiAzMjAgNDE3LjUgMzIwIDM2OGMwLTU0LjcgMjQuOS0xMDMuNSA2NC0xMzUuOFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2djgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDk2YzE1LjEgMCAyOC41LTYuOSAzNy4zLTE3LjhDMzQwLjQgNDYyLjIgMzIwIDQxNy41IDMyMCAzNjhjMC01NC43IDI0LjktMTAzLjUgNjQtMTM1LjhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTEyLTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek04MCA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTEyek0yNzIgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2ek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN0w1MTguNiAzNjhsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDk2IDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDczLjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0OTYgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdDb2x1bW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0My40IDIuNmwtMjI0IDk2Yy0xNCA2LTIxLjggMjEtMTguNyAzNS44UzE2LjggMTYwIDMyIDE2MHY4YzAgMTMuMyAxMC43IDI0IDI0IDI0SDQ1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtOGMxNS4yIDAgMjguMy0xMC43IDMxLjMtMjUuNnMtNC44LTI5LjktMTguNy0zNS44bC0yMjQtOTZjLTgtMy40LTE3LjItMy40LTI1LjIgMHpNMTI4IDIyNEg2NFY0MjAuM2MtLjYgLjMtMS4yIC43LTEuOCAxLjFsLTQ4IDMyYy0xMS43IDcuOC0xNyAyMi40LTEyLjkgMzUuOVMxNy45IDUxMiAzMiA1MTJINDgwYzE0LjEgMCAyNi41LTkuMiAzMC42LTIyLjdzLTEuMS0yOC4xLTEyLjktMzUuOWwtNDgtMzJjLS42LS40LTEuMi0uNy0xLjgtMS4xVjIyNEgzODRWNDE2SDM0NFYyMjRIMjgwVjQxNkgyMzJWMjI0SDE2OFY0MTZIMTI4VjIyNHpNMjU2IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6TTQ0OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY1MTJoNjRWMTkySDYyNGM4LjggMCAxNi03LjIgMTYtMTZWNDhjMC04LjgtNy4yLTE2LTE2LTE2SDQ4MGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVpbGRpbmdMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg4OC42Yy01LjQtOS40LTguNi0yMC4zLTguNi0zMlYzNTJjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjI3MmMwLTMwLjUgMTIuMi01OC4yIDMyLTc4LjRWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTEyLTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek04MCA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTEyek0yNzIgOTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2ek00NjQgMjQwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjQ4SDQzMlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS04MCAzMnY0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJWMjcyYzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ05nbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoOTZWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2ODBoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTY0IDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTEyLTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek0xNjggNjRoNDhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTg0djY0aDE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djI0YzAgMTMuMy0xMC43IDI0LTI0IDI0SDE3NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWODBjMC04LjggNy4yLTE2IDE2LTE2ek0zMDQgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZ6bS00OCAxNmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjExMnpNNjEuMyA3MS4xbDM0LjcgNTJWODBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40TDY0IDEzMi44VjE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY4MGMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OFYyMDdsLTQyLjQgMTdIMzA0IDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djMyIDI0LjJWMzA0YzAgLjkgLjEgMS43IC4yIDIuNmMyLjMgNTguMSAyNC4xIDE0NC44IDk4LjcgMjAxLjVjLTUuOCAyLjUtMTIuMiAzLjktMTguOSAzLjlIMjQwVjQzMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHY4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6TTgwIDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkg4MHptODAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2ek02NCAxMTJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZ6bTgwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnpNNDIzLjEgMjI1LjdjNS43LTIuMyAxMi4xLTIuMyAxNy44IDBsMTIwIDQ4QzU3MCAyNzcuNCA1NzYgMjg2LjIgNTc2IDI5NmMwIDYzLjMtMjUuOSAxNjguOC0xMzQuOCAyMTQuMmMtNS45IDIuNS0xMi42IDIuNS0xOC41IDBDMzEzLjkgNDY0LjggMjg4IDM1OS4zIDI4OCAyOTZjMC05LjggNi0xOC42IDE1LjEtMjIuM2wxMjAtNDh6TTUyNy40IDMxMkw0MzIgMjczLjhWNDYxLjdjNjguMi0zMyA5MS41LTk5IDk1LjQtMTQ5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nVW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41IDAgMCAyMS41IDAgNDhWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2VjQzMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djgwaDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTExMi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHpNMjM3LjMgNzEuMWwzNC43IDUyVjgwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2OTZjMCA3LjEtNC42IDEzLjMtMTEuNCAxNS4zcy0xNC0uNi0xNy45LTYuNGwtMzQuNy01MlYxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWODBjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xMTIgODB2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY4MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4VjgwYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoOTZWNDMyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2ODBoODkuOWMtNi4zLTEwLjItOS45LTIyLjItOS45LTM1LjFjMC00Ni45IDI1LjgtODcuOCA2NC0xMDkuMlYyNzEuOCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6TTU3NiAyNzJhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek0zNTIgNDc3LjFjMCAxOS4zIDE1LjYgMzQuOSAzNC45IDM0LjlINjA1LjFjMTkuMyAwIDM0LjktMTUuNiAzNC45LTM0LjljMC01MS40LTQxLjctOTMuMS05My4xLTkzLjFINDQ1LjFjLTUxLjQgMC05My4xIDQxLjctOTMuMSA5My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZ1doZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMjQwVjQzMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHY4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6TTgwIDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkg4MHptODAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2em0xMTItMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZIMjcyek02NCAxMTJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYxMTJjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6TTE3NiA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZ6bTgwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnptMzg0IDgwdjE2YzAgNDQuMi0zNS44IDgwLTgwIDgwSDU0NFYyNzJjMC00NC4yIDM1LjgtODAgODAtODBoMTZ6bTAgMTI4YzAgNDQuMi0zNS44IDgwLTgwIDgwSDU0NFYzODRjMC00NC4yIDM1LjgtODAgODAtODBoMTZ2MTZ6bTAgMTEyYzAgNDQuMi0zNS44IDgwLTgwIDgwSDU0NFY0OTZjMC00NC4yIDM1LjgtODAgODAtODBoMTZ2MTZ6TTUxMiA0OTZ2MTZINDk2Yy00NC4yIDAtODAtMzUuOC04MC04MFY0MTZoMTZjNDQuMiAwIDgwIDM1LjggODAgODB6bTAtOTZINDk2Yy00NC4yIDAtODAtMzUuOC04MC04MFYzMDRoMTZjNDQuMiAwIDgwIDM1LjggODAgODB2MTZ6bTAtMTI4djE2SDQ5NmMtNDQuMiAwLTgwLTM1LjgtODAtODBWMTkyaDE2YzQ0LjIgMCA4MCAzNS44IDgwIDgwek01MjggMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMTYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjU2YzAtMTMuMyAxMC43LTI0IDI0LTI0em05NiA2NHYzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek00NTYgNzJjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWOTZjMC0xMy4zIDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1aWxkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NlY0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY4MGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNNjQgMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMjQwem0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDBjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTgwIDk2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxMTJ6TTI3MiA5NmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1bGxob3JuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzMmMwLTEyLjktNy44LTI0LjYtMTkuOC0yOS42cy0yNS43LTIuMi0zNC45IDYuOUwzODEuNyA1M2MtNDggNDgtMTEzLjEgNzUtMTgxIDc1SDE5MiAxNjAgNjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djk2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1Mmw4LjcgMGM2Ny45IDAgMTMzIDI3IDE4MSA3NWw0My42IDQzLjZjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNlYzMDAuNGMxOC42LTguOCAzMi0zMi41IDMyLTYwLjRzLTEzLjQtNTEuNi0zMi02MC40VjMyem0tNjQgNzYuN1YyNDAgMzcxLjNDMzU3LjIgMzE3LjggMjgwLjUgMjg4IDIwMC43IDI4OEgxOTJWMTkyaDguN2M3OS44IDAgMTU2LjUtMjkuOCAyMTUuMy04My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWxsc2V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMjU2QTE5MiAxOTIgMCAxIDAgNjQgMjU2YTE5MiAxOTIgMCAxIDAgMzg0IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMjU2IDgwYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0wLTIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6TTIyNCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVyZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjEgMjI0QzQ1IDIyNCAzMiAyMTEgMzIgMTk0LjljMC0xLjkgLjItMy43IC42LTUuNkMzNy45IDE2OC4zIDc4LjggMzIgMjU2IDMyczIxOC4xIDEzNi4zIDIyMy40IDE1Ny4zYy41IDEuOSAuNiAzLjcgLjYgNS42YzAgMTYuMS0xMyAyOS4xLTI5LjEgMjkuMUg2MS4xek0xNDQgMTI4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTI0MCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6TTI3MiA5NmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwek0xNiAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhINDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDY0Yy0yNi41IDAtNDgtMjEuNS00OC00OHptMTYgOTZjMC04LjggNy4yLTE2IDE2LTE2SDQ2NGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRIOTZjLTM1LjMgMC02NC0yOC43LTY0LTY0VjQwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVyc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcuNiA0LjJDMjgtMi4zIDE1LjItMS4xIDcgN3MtOS40IDIxLTIuOCAzMC41bDExMiAxNjMuM0wxNi42IDIzMy4yQzYuNyAyMzYuNCAwIDI0NS42IDAgMjU2czYuNyAxOS42IDE2LjYgMjIuOGwxMDMuMSAzMy40TDY2LjggNDEyLjhjLTQuOSA5LjMtMy4yIDIwLjcgNC4zIDI4LjFzMTguOCA5LjIgMjguMSA0LjNsMTAwLjYtNTIuOSAzMy40IDEwMy4xYzMuMiA5LjkgMTIuNCAxNi42IDIyLjggMTYuNnMxOS42LTYuNyAyMi44LTE2LjZsMzMuNC0xMDMuMSAxMDAuNiA1Mi45YzkuMyA0LjkgMjAuNyAzLjIgMjguMS00LjNzOS4yLTE4LjggNC4zLTI4LjFMMzkyLjMgMzEyLjJsMTAzLjEtMzMuNGM5LjktMy4yIDE2LjYtMTIuNCAxNi42LTIyLjhzLTYuNy0xOS42LTE2LjYtMjIuOEwzODguOSAxOTguN2wyNS43LTcwLjRjMy4yLTguOCAxLTE4LjYtNS42LTI1LjJzLTE2LjQtOC44LTI1LjItNS42bC03MC40IDI1LjdMMjc4LjggMTYuNkMyNzUuNiA2LjcgMjY2LjQgMCAyNTYgMHMtMTkuNiA2LjctMjIuOCAxNi42bC0zMi4zIDk5LjZMMzcuNiA0LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1c1NpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMEMzNDguOCAwIDQ0OCAzNS4yIDQ0OCA4MFY5NiA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0NDhIMTI4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NiA4MEMwIDM1LjIgOTkuMiAwIDIyNCAwek02NCAxMjhWMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMlYxMjhjMC0xNy43LTE0LjMtMzItMzItMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04MCA0MDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0yODggMGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMEM0MjIuNCAwIDUxMiAzNS4yIDUxMiA4MFY5NmwwIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybDAgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMydjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQ4SDE5MnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJoMFY5NmgwVjgwQzY0IDM1LjIgMTUzLjYgMCAyODggMHpNMTI4IDE2MHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgyNzJWMTI4SDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTMwNCAyODhINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMDRWMjg4ek0xNDQgNDAwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMjg4IDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0zODQgODBjMC04LjgtNy4yLTE2LTE2LTE2SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzNjhjOC44IDAgMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXNpbmVzc1RpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0IDQ4SDMyOGM0LjQgMCA4IDMuNiA4IDhWOTZIMTc2VjU2YzAtNC40IDMuNi04IDgtOHptLTU2IDhWOTZINjRDMjguNyA5NiAwIDEyNC43IDAgMTYwdjk2SDE5MiAzNTJoOC4yYzMyLjMtMzkuMSA4MS4xLTY0IDEzNS44LTY0YzUuNCAwIDEwLjcgLjIgMTYgLjdWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM4NFY1NmMwLTMwLjktMjUuMS01Ni01Ni01NkgxODRjLTMwLjkgMC01NiAyNS4xLTU2IDU2ek0zMjAgMzUySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjg4SDBWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM2MC4yQzMzNS4xIDQ0OS42IDMyMCA0MTAuNSAzMjAgMzY4YzAtNS40IC4yLTEwLjcgLjctMTZsLS43IDB6bTMyMCAxNmExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwek00OTYgMjg4YzguOCAwIDE2IDcuMiAxNiAxNnY0OGgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg0OTZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMDRjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOS4xIDE0Mi45Yy02Mi41LTYyLjUtMTU1LjgtNjIuNS0yMTguMyAwcy02Mi41IDE2My44IDAgMjI2LjNzMTU1LjggNjIuNSAyMTguMyAwYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNjLTg3LjUgODcuNS0yMjEuMyA4Ny41LTMwOC44IDBzLTg3LjUtMjI5LjMgMC0zMTYuOHMyMjEuMy04Ny41IDMwOC44IDBjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhYmxlQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNMTYwIDU2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyIDI4OGMwLTM1LjMgMjguNy02NCA2NC02NEgyMzJWMTU3LjVsLTIwMy4xIDQyYy0xMyAyLjctMjUuNy01LjctMjguNC0xOC42czUuNy0yNS43IDE4LjYtMjguNGwyMzItNDggMjMyLTQ4YzEzLTIuNyAyNS43IDUuNyAyOC40IDE4LjZzLTUuNyAyNS43LTE4LjYgMjguNEwyODAgMTQ3LjVWMjI0SDQxNmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIOTZjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4OHptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNkg5NnptMTEyIDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNkgyMjRjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzMDRjMC04LjgtNy4yLTE2LTE2LTE2SDM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FrZUNhbmRsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODYuNCA1LjVMNjEuOCA0Ny42QzU4IDU0LjEgNTYgNjEuNiA1NiA2OS4yVjcyYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWNjkuMmMwLTcuNi0yLTE1LTUuOC0yMS42TDEwNS42IDUuNUMxMDMuNiAyLjEgMTAwIDAgOTYgMHMtNy42IDIuMS05LjYgNS41em0xMjggMEwxODkuOCA0Ny42Yy0zLjggNi41LTUuOCAxNC01LjggMjEuNlY3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwVjY5LjJjMC03LjYtMi0xNS01LjgtMjEuNkwyMzMuNiA1LjVDMjMxLjYgMi4xIDIyOCAwIDIyNCAwcy03LjYgMi4xLTkuNiA1LjV6TTMxNy44IDQ3LjZjLTMuOCA2LjUtNS44IDE0LTUuOCAyMS42VjcyYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDBWNjkuMmMwLTcuNi0yLTE1LTUuOC0yMS42TDM2MS42IDUuNUMzNTkuNiAyLjEgMzU2IDAgMzUyIDBzLTcuNiAyLjEtOS42IDUuNUwzMTcuOCA0Ny42ek0xMjggMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3MWM4LjMgNS4yIDE4LjEgOSAyOC44IDljMTMuNSAwIDI3LjItNi4xIDM4LjQtMTMuNGM1LjQtMy41IDkuOS03LjEgMTMtOS43YzEuNS0xLjMgMi43LTIuNCAzLjUtMy4xYy40LS40IC43LS42IC44LS44bC4xLS4xIDAgMCAwIDBzMCAwIDAgMHMwIDAgMCAwYzMuMS0zLjIgNy40LTQuOSAxMS45LTQuOHM4LjYgMi4xIDExLjYgNS40bDAgMCAwIDAgLjEgLjFjLjEgLjEgLjQgLjQgLjcgLjdjLjcgLjcgMS43IDEuNyAzLjEgM2MyLjggMi42IDYuOCA2LjEgMTEuOCA5LjVjMTAuMiA3LjEgMjMgMTMuMSAzNi4zIDEzLjFzMjYuMS02IDM2LjMtMTMuMWM1LTMuNSA5LTYuOSAxMS44LTkuNWMxLjQtMS4zIDIuNC0yLjMgMy4xLTNjLjMtLjMgLjYtLjYgLjctLjdsLjEtLjFjMy0zLjUgNy40LTUuNCAxMi01LjRzOSAyIDEyIDUuNGwuMSAuMWMuMSAuMSAuNCAuNCAuNyAuN2MuNyAuNyAxLjcgMS43IDMuMSAzYzIuOCAyLjYgNi44IDYuMSAxMS44IDkuNWMxMC4yIDcuMSAyMyAxMy4xIDM2LjMgMTMuMXMyNi4xLTYgMzYuMy0xMy4xYzUtMy41IDktNi45IDExLjgtOS41YzEuNC0xLjMgMi40LTIuMyAzLjEtM2MuMy0uMyAuNi0uNiAuNy0uN2wuMS0uMWMyLjktMy40IDcuMS01LjMgMTEuNi01LjRzOC43IDEuNiAxMS45IDQuOGwwIDAgMCAwIDAgMCAuMSAuMWMuMiAuMiAuNCAuNCAuOCAuOGMuOCAuNyAxLjkgMS44IDMuNSAzLjFjMy4xIDIuNiA3LjUgNi4yIDEzIDkuN2MxMS4yIDcuMyAyNC45IDEzLjQgMzguNCAxMy40YzEwLjcgMCAyMC41LTMuOSAyOC44LTlWMjg4YzAtMzUuMy0yOC43LTY0LTY0LTY0VjE3NmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY0OEgyNTZWMTc2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4SDEyOFYxNzZ6TTQ0OCAzOTQuNmMtOC41IDMuMy0xOC4yIDUuNC0yOC44IDUuNGMtMjIuNSAwLTQyLjQtOS45LTU1LjgtMTguNmMtNC4xLTIuNy03LjgtNS40LTEwLjktNy44Yy0yLjggMi40LTYuMSA1LTkuOCA3LjVDMzI5LjggMzkwIDMxMC42IDQwMCAyODggNDAwcy00MS44LTEwLTU0LjYtMTguOWMtMy41LTIuNC02LjctNC45LTkuNC03LjJjLTIuNyAyLjMtNS45IDQuNy05LjQgNy4yQzIwMS44IDM5MCAxODIuNiA0MDAgMTYwIDQwMHMtNDEuOC0xMC01NC42LTE4LjljLTMuNy0yLjYtNy01LjItOS44LTcuNWMtMy4xIDIuNC02LjggNS4xLTEwLjkgNy44QzcxLjIgMzkwLjEgNTEuMyA0MDAgMjguOCA0MDBjLTEwLjYgMC0yMC4zLTIuMi0yOC44LTUuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5NC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxjdWxhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTk2IDY0SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTMyIDE2MGEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek05NiAzNTJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek02NCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHptMzIgNjRhMzIgMzIgMCAxIDEgLTY0IDAgMzIgMzIgMCAxIDEgNjQgMHptNjQtNjRhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwek0yODggNDQ4YTMyIDMyIDAgMSAxIDAtNjQgMzIgMzIgMCAxIDEgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NEgyODhWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY2NGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHY0OEgwVjExMkMwIDg1LjUgMjEuNSA2NCA0OCA2NEg5NlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAxOTJINDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTkyek0zMjkgMzA1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTk1IDk1LTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDMyOSAzMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyRGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0SDI4OFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjY0aDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djQ4SDBWMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0SDk2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDE5Mkg0NDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTJ6bTgwIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDk2YzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhckRheXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnptNjQgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDgwYy04LjggMC0xNiA3LjItMTYgMTZ6bTEyOCAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnptMTQ0LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDMzNnpNNjQgNDAwdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWNDAwYzAtOC44LTcuMi0xNi0xNi0xNkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjQwMGMwLTguOC03LjItMTYtMTYtMTZIMjA4em0xMTIgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlY0MDBjMC04LjgtNy4yLTE2LTE2LTE2SDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0SDI4OFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjY0aDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djQ4SDBWMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0SDk2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDE5Mkg0NDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTJ6TTMxMiAzNzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDMxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMyVjY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4SDQ0OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzUyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjY0SDE2MFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMlM5NiAxNC4zIDk2IDMyek00NDggMTkySDBWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDQwMGMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJ6TTIyNCAyNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2NTZoNTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjQ4djU2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjM3NkgxNDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoNTZWMjcyYzAtMTMuMyAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhcldlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMjg4VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhIMFYxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIOTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTAgMTkySDQ0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjE5MnptODAgNjRjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZIMzY4YzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhclhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0SDI4OFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjY0aDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djQ4SDBWMTEyQzAgODUuNSAyMS41IDY0IDQ4IDY0SDk2VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDE5Mkg0NDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxOTJ6TTMwNSAzMDVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNDcgNDctNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNDcgNDctNDcgNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw0Ny00NyA0NyA0N2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTQ3LTQ3IDQ3LTQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMlY2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnY0OEg0NDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDM1MlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY2NEgxNjBWMzJjMC0xNy43LTE0LjMtMzItMzItMzJTOTYgMTQuMyA5NiAzMnpNNDQ4IDE5MkgwVjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1lcmFSZXRybyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjAuNiAxMjEuMkwyNzEuMSA5NiA0NDggOTZ2OTZIMzMzLjJjLTIxLjktMTUuMS00OC41LTI0LTc3LjItMjRzLTU1LjIgOC45LTc3LjIgMjRINjRWMTI4SDE5MmM5LjkgMCAxOS43LTIuMyAyOC42LTYuOHpNMCAxMjhWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEgyNzEuMWMtOS45IDAtMTkuNyAyLjMtMjguNiA2LjhMMTkyIDY0SDE2MFY0OGMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDE2QzI4LjcgNjQgMCA5Mi43IDAgMTI4ek0xNjggMzA0YTg4IDg4IDAgMSAxIDE3NiAwIDg4IDg4IDAgMSAxIC0xNzYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FtZXJhUm90YXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMy4xIDY0LjhMMjAyLjcgOTZIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEg0MzcuM0w0MjYuOSA2NC44QzQyMC40IDQ1LjIgNDAyLjEgMzIgMzgxLjQgMzJIMjU4LjZjLTIwLjcgMC0zOSAxMy4yLTQ1LjUgMzIuOHpNNDQ4IDI1NmMwIDguOC03LjIgMTYtMTYgMTZIMzU1LjNjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuM2MwLTMgMS4yLTUuOSAzLjMtOEwzNzEgMjI5Yy0xMy42LTEzLjQtMzEuOS0yMS01MS0yMWMtMTkuMiAwLTM3LjcgNy42LTUxLjMgMjEuM0wyNDkgMjQ5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDE5LjctMTkuN0MyNTcuNCAxNzIuNyAyODggMTYwIDMyMCAxNjBjMzEuOCAwIDYyLjQgMTIuNiA4NSAzNWwyMy43LTIzLjdjMi4xLTIuMSA1LTMuMyA4LTMuM2M2LjIgMCAxMS4zIDUuMSAxMS4zIDExLjNWMjU2ek0xOTIgMzIwYzAtOC44IDcuMi0xNiAxNi0xNmg3Ni43YzYuMiAwIDExLjMgNS4xIDExLjMgMTEuM2MwIDMtMS4yIDUuOS0zLjMgOEwyNjkgMzQ3YzEzLjYgMTMuNCAzMS45IDIxIDUxIDIxYzE5LjIgMCAzNy43LTcuNiA1MS4zLTIxLjNMMzkxIDMyN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTE5LjcgMTkuN0MzODIuNiA0MDMuMyAzNTIgNDE2IDMyMCA0MTZjLTMxLjggMC02Mi40LTEyLjYtODUtMzVsLTIzLjcgMjMuN2MtMi4xIDIuMS01IDMuMy04IDMuM2MtNi4yIDAtMTEuMy01LjEtMTEuMy0xMS4zVjMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OS4xIDY0LjhMMTM4LjcgOTZINjRDMjguNyA5NiAwIDEyNC43IDAgMTYwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM3My4zTDM2Mi45IDY0LjhDMzU2LjQgNDUuMiAzMzguMSAzMiAzMTcuNCAzMkgxOTQuNmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44ek0yNTYgMTkyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1wZ3JvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3NyA1MmMxMS0xMy44IDguOC0zMy45LTUtNDVzLTMzLjktOC44LTQ1IDVMMjg4IDYwLjggMjQ5IDEyYy0xMS0xMy44LTMxLjItMTYtNDUtNXMtMTYgMzEuMi01IDQ1bDQ4IDYwTDEyLjMgNDA1LjRDNC4zIDQxNS40IDAgNDI3LjcgMCA0NDAuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMjg4IDUyOGMyNi41IDAgNDgtMjEuNSA0OC00OFY0NDAuNGMwLTEyLjctNC4zLTI1LjEtMTIuMy0zNUwzMjkgMTEybDQ4LTYwek0yODggNDQ4SDE2OC41TDI4OCAyOTEuNyA0MDcuNSA0NDhIMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW5keUNhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ4LjggMTMxLjVjMy43LTIuMyA3LjktMy41IDEyLjItMy41YzEyLjcgMCAyMyAxMC4zIDIzIDIzdjUuNmMwIDkuOS01LjEgMTkuMS0xMy41IDI0LjNMMzAuMSAzOTMuN0MuMSA0MTIuNS05IDQ1MS45IDkuNyA0ODEuOXM1OC4yIDM5LjEgODguMiAyMC40TDQzOC40IDI4OS41YzQ1LjgtMjguNiA3My42LTc4LjggNzMuNi0xMzIuOFYxNTFDNTEyIDY3LjYgNDQ0LjQgMCAzNjEgMGMtMjguMyAwLTU2IDgtODAuMSAyM0wyNTQuMSAzOS43Yy0zMCAxOC43LTM5LjEgNTguMi0yMC40IDg4LjJzNTguMiAzOS4xIDg4LjIgMjAuNGwyNi44LTE2Ljh6TTI5OC40IDQ5LjhjOS4yLTUuNyAxOS4xLTEwLjEgMjkuNC0xMy4xTDM0OCA5Ny41Yy01LjcgMS40LTExLjIgMy43LTE2LjMgNi44bC0xMi42IDcuOUwyOTguNCA0OS44em04OC41IDUyLjdsNDYuMi00Ni4yYzguNSA2LjUgMTYuMSAxNC4xIDIyLjYgMjIuNmwtNDYuMiA0Ni4yYy01LjEtOS42LTEzLTE3LjUtMjIuNi0yMi42em0yOC45IDU5LjNsNjEuNiAyMC41Yy0yLjIgMTAuNS01LjggMjAuNy0xMC41IDMwLjJsLTYyLTIwLjdjNi4yLTguOCAxMC4xLTE5LjEgMTEtMzAuMXptLTg2LjEgODIuNWw2MC40IDM3LjctMzAuMiAxOC45LTYwLjQtMzcuNyAzMC4yLTE4Ljl6bS0xMDcuMiA2N2w2MC40IDM3LjctMzAuMiAxOC45LTYwLjQtMzcuNyAzMC4yLTE4Ljl6TTExOS4zIDM3NS43bDYwLjQgMzcuNy0zMC4yIDE4LjlMODkuMSAzOTQuNmwzMC4yLTE4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbm5hYmlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYzUuMyAwIDEwLjMgMi43IDEzLjMgNy4xYzE1LjggMjMuNSAzNi43IDYzLjcgNDkuMiAxMDljNy4yIDI2LjQgMTEuOCA1NS4yIDEwLjQgODRjMTEuNS04LjggMjMuNy0xNi43IDM1LjgtMjMuNmM0MS0yMy4zIDg0LjQtMzYuOSAxMTIuMi00Mi41YzUuMi0xIDEwLjcgLjYgMTQuNCA0LjRzNS40IDkuMiA0LjQgMTQuNWMtNS42IDI3LjctMTkuMyA3MC45LTQyLjcgMTExLjdjLTkuMSAxNS45LTE5LjkgMzEuNy0zMi40IDQ2LjNjMjcuOCA2LjYgNTIuNCAxNy4zIDY3LjIgMjUuNWM1LjEgMi44IDguMiA4LjIgOC4yIDE0cy0zLjIgMTEuMi04LjIgMTRjLTE1LjIgOC40LTQwLjkgMTkuNS02OS44IDI2LjFjLTIwLjIgNC42LTQyLjkgNy4yLTY1LjIgNC42bDguMyAzMy4xYzEuNSA2LjEtLjYgMTIuNC01LjUgMTYuNHMtMTEuNiA0LjYtMTcuMiAxLjlMMjgwIDQxNy4yVjQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY0MTcuMmwtNTguNSAyOS4xYy01LjYgMi44LTEyLjMgMi4xLTE3LjItMS45cy03LTEwLjMtNS41LTE2LjRsOC4zLTMzLjFjLTIyLjIgMi42LTQ1IDAtNjUuMi00LjZjLTI4LjktNi42LTU0LjYtMTcuNi02OS44LTI2LjFjLTUuMS0yLjgtOC4yLTguMi04LjItMTRzMy4yLTExLjIgOC4yLTE0YzE0LjgtOC4yIDM5LjQtMTguOCA2Ny4yLTI1LjVDNzguOSAyOTYuMyA2OC4xIDI4MC41IDU5IDI2NC42Yy0yMy40LTQwLjgtMzcuMS04NC00Mi43LTExMS43Yy0xLjEtNS4yIC42LTEwLjcgNC40LTE0LjVzOS4yLTUuNCAxNC40LTQuNGMyNy45IDUuNSA3MS4yIDE5LjIgMTEyLjIgNDIuNWMxMi4xIDYuOSAyNC4zIDE0LjcgMzUuOCAyMy42Yy0xLjQtMjguNyAzLjEtNTcuNiAxMC40LTg0YzEyLjUtNDUuMyAzMy40LTg1LjUgNDkuMi0xMDljMy00LjQgOC03LjEgMTMuMy03LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcHN1bGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4VjI1Nkg2NFYxNDR6TTAgMTQ0VjM2OGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEyVjE4OS42YzEuOCAxOS4xIDguMiAzOCAxOS44IDU0LjhMMzcyLjMgNDMxLjdjMzUuNSA1MS43IDEwNS4zIDY0LjMgMTU2IDI4LjFzNjMtMTA3LjUgMjcuNS0xNTkuMkw0MjcuMyAxMTMuM0MzOTEuOCA2MS41IDMyMS45IDQ5IDI3MS4zIDg1LjJjLTI4IDIwLTQ0LjMgNTAuOC00Ny4zIDgzVjE0NGMwLTYxLjktNTAuMS0xMTItMTEyLTExMlMwIDgyLjEgMCAxNDR6bTI5Ni42IDY0LjJjLTE2LTIzLjMtMTAtNTUuMyAxMS45LTcxYzIxLjItMTUuMSA1MC41LTEwLjMgNjYgMTIuMmw2NyA5Ny42TDM2MS42IDMwM2wtNjUtOTQuOHpNNDkxIDQwNy43Yy0uOCAuNi0xLjYgMS4xLTIuNCAxLjZsNC0yLjhjLS41IC40LTEgLjgtMS42IDEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyQmF0dGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMmw5NiAwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMyaDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0bDE2IDB6bTMwNCA5NmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYzMkgzMjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMzJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzg0VjE5MnpNODAgMjQwYzAgOC44IDcuMiAxNiAxNiAxNmg5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJCdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgOGMtNi42IDAtMTIuNCA0LTE0LjkgMTAuMWwtMjkuNCA3NEw1NS42IDY4LjljLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM3MtNC42IDEyLjItMS40IDE3LjlsMzkuNSA2OS4xTDEwLjkgMjA2LjRjLTUuNCAzLjctOCAxMC4zLTYuNSAxNi43czYuNyAxMS4yIDEzLjEgMTIuMmw3OC43IDEyLjJMOTAuNiAzMjdjLS41IDYuNSAzLjEgMTIuNyA5IDE1LjVzMTIuOSAxLjggMTcuOC0yLjZsMzUuMy0zMi41IDkuNS0zNS40IDEwLjQtMzguNmM4LTI5LjkgMzAuNS01Mi4xIDU3LjktNjAuOWw0MS01OS4yYzExLjMtMTYuMyAyNi40LTI4LjkgNDMuNS0zNy4yYy0uNC0uNi0uOC0xLjItMS4zLTEuOGMtNC4xLTUuMS0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0QzE4OC40IDEyIDE4Mi42IDggMTc2IDh6TTM2Ny43IDE2MS41bDEzNS42IDM2LjNjNi41IDEuOCAxMS4zIDcuNCAxMS44IDE0LjJsNC42IDU2LjUtMjAxLjUtNTQgMzIuMi00Ni42YzMuOC01LjYgMTAuOC04LjEgMTcuMy02LjR6bS02OS45LTMwbC00Ny45IDY5LjNjLTIxLjYgMy00MC4zIDE4LjYtNDYuMyA0MWwtMTAuNCAzOC42LTE2LjYgNjEuOC04LjMgMzAuOWMtNC42IDE3LjEgNS42IDM0LjYgMjIuNiAzOS4ybDE1LjUgNC4xYzE3LjEgNC42IDM0LjYtNS42IDM5LjItMjIuNmw4LjMtMzAuOSAyNDcuMyA2Ni4zLTguMyAzMC45Yy00LjYgMTcuMSA1LjYgMzQuNiAyMi42IDM5LjJsMTUuNSA0LjFjMTcuMSA0LjYgMzQuNi01LjYgMzkuMi0yMi42bDguMy0zMC45TDU5NSAzODhsMTAuNC0zOC42YzYtMjIuNC0yLjUtNDUuMi0xOS42LTU4LjdsLTYuOC04NGMtMi43LTMzLjctMjYuNC02Mi01OS03MC44TDM4NC4yIDk5LjdjLTMyLjctOC44LTY3LjMgNC04Ni41IDMxLjh6bS0xNyAxMzFhMjQgMjQgMCAxIDEgLTEyLjQgNDYuNCAyNCAyNCAwIDEgMSAxMi40LTQ2LjR6bTIxNy45IDgzLjJBMjQgMjQgMCAxIDEgNTQ1IDM1OC4xYTI0IDI0IDAgMSAxIC00Ni40LTEyLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhck9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI0ek0xODUuOCAyMjRIMzI2LjJjNi44IDAgMTIuOCA0LjMgMTUuMSAxMC42TDM2MC4zIDI4OEgxNTEuN2wxOS4xLTUzLjRjMi4zLTYuNCA4LjMtMTAuNiAxNS4xLTEwLjZ6bS03NS4zLTEwLjlMODIuMiAyOTIuNEM2Mi4xIDMwMC45IDQ4IDMyMC44IDQ4IDM0NHY0MCA2NCAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlY0NDhIMzg0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ0OCAzODQgMzQ0YzAtMjMuMi0xNC4xLTQzLjEtMzQuMi01MS42bC0yOC4zLTc5LjNDMzkwLjEgMTgxLjMgMzYwIDE2MCAzMjYuMiAxNjBIMTg1LjhjLTMzLjggMC02NCAyMS4zLTc1LjMgNTMuMXpNMTI4IDM0NGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTIzMiAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zOSAzOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDggNDhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDczIDM5Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHptNDAwIDBMMzkxIDg3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDgtNDhjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyUmVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUuNCA5NkgzNDYuNmMxMy42IDAgMjUuNyA4LjYgMzAuMiAyMS40TDQwMi45IDE5MkgxMDkuMWwyNi4xLTc0LjZjNC41LTEyLjggMTYuNi0yMS40IDMwLjItMjEuNHptLTkwLjYgLjNMMzkuNiAxOTYuOEMxNi40IDIwNi40IDAgMjI5LjMgMCAyNTZ2ODBjMCAyMy43IDEyLjkgNDQuNCAzMiA1NS40VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NmMxNy43IDAgMzItMTQuMyAzMi0zMlY0MDBIMzg0djQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5MS40YzE5LjEtMTEuMSAzMi0zMS43IDMyLTU1LjRWMjU2YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDk2LjNDNDIzLjcgNTcuOCAzODcuNCAzMiAzNDYuNiAzMkgxNjUuNGMtNDAuOCAwLTc3LjEgMjUuOC05MC42IDY0LjN6TTIwOCAyNzJoOTZjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2ek00OCAyODBjMC0xMy4zIDEwLjctMjQgMjQtMjRoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0zNjAtMjRoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINDA4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJTaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MS4zIDk2SDIyNHY5NkgxMTEuM2wzMC40LTc1LjlDMTQ2LjUgMTA0IDE1OC4yIDk2IDE3MS4zIDk2ek0yNzIgMTkyVjk2aDgxLjJjOS43IDAgMTguOSA0LjQgMjUgMTJsNjcuMiA4NEgyNzJ6bTI1Ni4yIDFMNDI4LjIgNjhjLTE4LjItMjIuOC00NS44LTM2LTc1LTM2SDE3MS4zYy0zOS4zIDAtNzQuNiAyMy45LTg5LjEgNjAuM0w0MC42IDE5Ni40QzE2LjggMjA1LjggMCAyMjguOSAwIDI1NlYzNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJINjUuM2M3LjYgNDUuNCA0Ny4xIDgwIDk0LjcgODBzODcuMS0zNC42IDk0LjctODBIMzg1LjNjNy42IDQ1LjQgNDcuMSA4MCA5NC43IDgwczg3LjEtMzQuNiA5NC43LTgwSDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBjMC02NS4yLTQ4LjgtMTE5LTExMS44LTEyN3pNNDM0LjcgMzY4YTQ4IDQ4IDAgMSAxIDkwLjUgMzIgNDggNDggMCAxIDEgLTkwLjUtMzJ6TTE2MCAzMzZhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJUdW5uZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBDMTE0LjYgMCAwIDExNC42IDAgMjU2VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg0Mi44Yy02LjYtNS45LTEwLjgtMTQuNC0xMC44LTI0VjM3NmMwLTIwLjggMTEuMy0zOC45IDI4LjEtNDguNmwyMS02NC43YzcuNS0yMy4xIDI5LTM4LjcgNTMuMy0zOC43SDMxMy42YzI0LjMgMCA0NS44IDE1LjYgNTMuMyAzOC43bDIxIDY0LjdjMTYuOCA5LjcgMjguMiAyNy44IDI4LjIgNDguNlY0ODhjMCA5LjYtNC4yIDE4LjEtMTAuOCAyNEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjU2QzUxMiAxMTQuNiAzOTcuNCAwIDI1NiAwek0zNjIuOCA1MTJjLTYuNi01LjktMTAuOC0xNC40LTEwLjgtMjRWNDQ4SDE2MHY0MGMwIDkuNi00LjIgMTguMS0xMC44IDI0SDM2Mi44ek0xOTAuOCAyNzcuNUwxNzcgMzIwSDMzNWwtMTMuOC00Mi41Yy0xLjEtMy4zLTQuMS01LjUtNy42LTUuNUgxOTguNGMtMy41IDAtNi41IDIuMi03LjYgNS41ek0xNjggNDA4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjAwLTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzUuMiAxMTcuNEwxMDkuMSAxOTJINDAyLjlsLTI2LjEtNzQuNkMzNzIuMyAxMDQuNiAzNjAuMiA5NiAzNDYuNiA5NkgxNjUuNGMtMTMuNiAwLTI1LjcgOC42LTMwLjIgMjEuNHpNMzkuNiAxOTYuOEw3NC44IDk2LjNDODguMyA1Ny44IDEyNC42IDMyIDE2NS40IDMySDM0Ni42YzQwLjggMCA3Ny4xIDI1LjggOTAuNiA2NC4zbDM1LjIgMTAwLjVjMjMuMiA5LjYgMzkuNiAzMi41IDM5LjYgNTkuMlY0MDB2NDhjMCAxNy43LTE0LjMgMzItMzIgMzJINDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDBIOTZ2NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwMCAyNTZjMC0yNi43IDE2LjQtNDkuNiAzOS42LTU5LjJ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMjg4IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyYXZhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExMkMwIDY3LjggMzUuOCAzMiA4MCAzMkg0MTZjODguNCAwIDE2MCA3MS42IDE2MCAxNjBWMzUyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0zMiAwSDI4OGMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05Nkg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWMTEyek0zMjAgMzUySDQ0OFYyNTZINDE2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjM1MnpNOTYgMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDk2em05NiAzMzZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM3LjQgMzc0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEwzMiAxOTJjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMjc4LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjOS4yLTkuMiAyMi45LTExLjkgMzQuOS02LjlzMTkuOCAxNi42IDE5LjggMjkuNmwwIDI1NmMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuNiAyNzguNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtMTI4LTEyOGMtOS4yLTkuMi0yMi45LTExLjktMzQuOS02LjlzLTE5LjggMTYuNi0xOS44IDI5LjZsMCAyNTZjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWwxMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Mi42IDEzNy40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTI4IDEyOGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOEgyODhjMTIuOSAwIDI0LjYtNy44IDI5LjYtMTkuOHMyLjItMjUuNy02LjktMzQuOWwtMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2Fycm90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ni43IDZDMzM3LjYgMTcgMzIwIDQyLjMgMzIwIDcyYzAgNDAgMTUuMyA1NS4zIDQwIDgwczQwIDQwIDgwIDQwYzI5LjcgMCA1NS0xNy42IDY2LTI2LjdjNC0zLjMgNi04LjIgNi0xMy4zcy0yLTEwLTYtMTMuMmMtMTEuNC05LjEtMzguMy0yNi44LTc0LTI2LjhjLTMyIDAtNDAgOC00MCA4czgtOCA4LTQwYzAtMzUuNy0xNy43LTYyLjYtMjYuOC03NEMzNzAgMiAzNjUuMSAwIDM2MCAwcy0xMCAyLTEzLjMgNnpNMjQ0LjYgMTM2Yy00MCAwLTc3LjEgMTguMS0xMDEuNyA0OC4ybDYwLjUgNjAuNWM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC01NS4zLTU1LjMgMCAuMUwyLjIgNDc3LjlDLTIgNDg3LS4xIDQ5Ny44IDcgNTA1czE3LjkgOSAyNy4xIDQuOGwxMzQuNy02Mi40LTUyLjEtNTIuMWMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDE5OS43IDQzM2wxMDAuMi00Ni40YzQ2LjQtMjEuNSA3Ni4yLTY4IDc2LjItMTE5LjJDMzc2IDE5NC44IDMxNy4yIDEzNiAyNDQuNiAxMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OEg2OS41YzMuOCAwIDcuMSAyLjcgNy45IDYuNWw1MS42IDI3MWM2LjUgMzQgMzYuMiA1OC41IDcwLjcgNTguNUg0ODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTk5LjdjLTExLjUgMC0yMS40LTguMi0yMy42LTE5LjVMMTcwLjcgMjg4SDQ1OS4yYzMyLjYgMCA2MS4xLTIxLjggNjkuNS01My4zbDQxLTE1Mi4zQzU3Ni42IDU3IDU1Ny40IDMyIDUzMS4xIDMySDM2MFYxMzQuMWwyMy0yM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTY0IDY0Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyM1YzMkgxMjAuMUMxMTEgMTIuOCA5MS42IDAgNjkuNSAwSDI0ek0xNzYgNTEyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzM2LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRGbGF0YmVkU3VpdGNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBINDhjNDQuMiAwIDgwIDM1LjggODAgODBWMzY4YzAgOC44IDcuMiAxNiAxNiAxNkg2MDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTQxLjNjMS44IDUgMi43IDEwLjQgMi43IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtNS42IDEtMTEgMi43LTE2SDI1My4zYzEuOCA1IDIuNyAxMC40IDIuNyAxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTUuNiAxLTExIDIuNy0xNkgxNDRjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjgwYzAtOC44LTcuMi0xNi0xNi0xNkgzMkMxNC4zIDY0IDAgNDkuNyAwIDMyek00MzIgOTZWNTZjMC00LjQtMy42LTgtOC04SDM0NGMtNC40IDAtOCAzLjYtOCA4Vjk2aDk2ek0yODggOTZWNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZoODBjMzAuOSAwIDU2IDI1LjEgNTYgNTZWOTYgMzIwSDI4OFY5NnpNNTEyIDMyMFY5NmgxNmMyNi41IDAgNDggMjEuNSA0OCA0OFYyNzJjMCAyNi41LTIxLjUgNDgtNDggNDhINTEyek0yNDAgOTZoMTZWMzIwSDI0MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJ0RmxhdGJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0SDQ4YzguOCAwIDE2IDcuMiAxNiAxNlYzNjhjMCA0NC4yIDM1LjggODAgODAgODBoMTguN2MtMS44IDUtMi43IDEwLjQtMi43IDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZINDUwLjdjLTEuOCA1LTIuNyAxMC40LTIuNyAxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEtMTEtMi43LTE2SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNlY4MEMxMjggMzUuOCA5Mi4yIDAgNDggMEgzMnpNMTkyIDgwVjI3MmMwIDI2LjUgMjEuNSA0OCA0OCA0OEg1NjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDY0VjE3NmMwIDUuOS0zLjIgMTEuMy04LjUgMTQuMXMtMTEuNSAyLjUtMTYuNC0uOEw0MDAgMTYzLjJsLTM5LjEgMjYuMWMtNC45IDMuMy0xMS4yIDMuNi0xNi40IC44cy04LjUtOC4yLTguNS0xNC4xVjMySDI0MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwSDY5LjVjMjIgMCA0MS41IDEyLjggNTAuNiAzMmg0MTFjMjYuMyAwIDQ1LjUgMjUgMzguNiA1MC40bC00MSAxNTIuM2MtOC41IDMxLjQtMzcgNTMuMy02OS41IDUzLjNIMTcwLjdsNS40IDI4LjVjMi4yIDExLjMgMTIuMSAxOS41IDIzLjYgMTkuNUg0ODhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTk5LjdjLTM0LjYgMC02NC4zLTI0LjYtNzAuNy01OC41TDc3LjQgNTQuNWMtLjctMy44LTQtNi41LTcuOS02LjVIMjRDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTI4IDQ2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0zMzYtNDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2ek0yNTIgMTYwYzAgMTEgOSAyMCAyMCAyMGg0NHY0NGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFYxODBoNDRjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwSDM1NlY5NmMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB2NDRIMjcyYy0xMSAwLTIwIDktMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcnRTaG9wcGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI0QzAgMTAuNyAxMC43IDAgMjQgMEg2OS41YzIyIDAgNDEuNSAxMi44IDUwLjYgMzJoNDExYzI2LjMgMCA0NS41IDI1IDM4LjYgNTAuNGwtNDEgMTUyLjNjLTguNSAzMS40LTM3IDUzLjMtNjkuNSA1My4zSDE3MC43bDUuNCAyOC41YzIuMiAxMS4zIDEyLjEgMTkuNSAyMy42IDE5LjVINDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE5OS43Yy0zNC42IDAtNjQuMy0yNC42LTcwLjctNTguNUw3Ny40IDU0LjVjLS43LTMuOC00LTYuNS03LjktNi41SDI0QzEwLjcgNDggMCAzNy4zIDAgMjR6TTEyOCA0NjRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzM2LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FzaFJlZ2lzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDNDYuMyAwIDMyIDE0LjMgMzIgMzJWOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoODB2MzJIODdjLTMxLjYgMC01OC41IDIzLjEtNjMuMyA1NC40TDEuMSAzNjQuMUMuNCAzNjguOCAwIDM3My42IDAgMzc4LjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzNzguNGMwLTQuOC0uNC05LjYtMS4xLTE0LjRMNDg4LjIgMjE0LjRDNDgzLjUgMTgzLjEgNDU2LjYgMTYwIDQyNSAxNjBIMjA4VjEyOGg4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkg2NHpNOTYgNDhIMjU2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek02NCA0MzJjMC04LjggNy4yLTE2IDE2LTE2SDQzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2em00OC0xNjhhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4em0xMjAtMjRhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMTYwIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTMyOCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMjU2IDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6TTQyNCAyNDBhMjQgMjQgMCAxIDEgLTQ4IDAgMjQgMjQgMCAxIDEgNDggMHpNMzUyIDM0NGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMTkyaDE3LjFjMjIuMSAzOC4zIDYzLjUgNjQgMTEwLjkgNjRjMTEgMCAyMS44LTEuNCAzMi00djQgMzJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMzOS4yTDI4MCA0NDhoNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTkyYy01MyAwLTk2LTQzLTk2LTk2VjE5Mi41YzAtMTYuMS0xMi0yOS44LTI4LTMxLjhsLTcuOS0xYy0xNy41LTIuMi0zMC0xOC4yLTI3LjgtMzUuN3MxOC4yLTMwIDM1LjctMjcuOGw3LjkgMWM0OCA2IDg0LjEgNDYuOCA4NC4xIDk1LjN2ODUuM2MzNC40LTUxLjcgOTMuMi04NS44IDE2MC04NS44em0xNjAgMjYuNXYwYy0xMCAzLjUtMjAuOCA1LjUtMzIgNS41Yy0yOC40IDAtNTQtMTIuNC03MS42LTMyaDBjLTMuNy00LjEtNy04LjUtOS45LTEzLjJDMzU3LjMgMTY0IDM1MiAxNDYuNiAzNTIgMTI4djBWMzIgMTIgMTAuN0MzNTIgNC44IDM1Ni43IC4xIDM2Mi42IDBoLjJjMy4zIDAgNi40IDEuNiA4LjQgNC4ybDAgLjFMMzg0IDIxLjNsMjcuMiAzNi4zTDQxNiA2NGg2NGw0LjgtNi40TDUxMiAyMS4zIDUyNC44IDQuM2wwLS4xYzItMi42IDUuMS00LjIgOC40LTQuMmguMkM1MzkuMyAuMSA1NDQgNC44IDU0NCAxMC43VjEyIDMydjk2YzAgMTcuMy00LjYgMzMuNi0xMi42IDQ3LjZjLTExLjMgMTkuOC0yOS42IDM1LjItNTEuNCA0Mi45ek00MzIgMTI4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTQ4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2VkaVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjY2LjdDMTAxLjIgODEuOSAzMiAxNjAuOSAzMiAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ1LjNjMzAuOS01LjIgNTkuMi0xNy43IDgzLjItMzUuOGMxNC4xLTEwLjYgMTctMzAuNyA2LjQtNDQuOHMtMzAuNy0xNy00NC44LTYuNGMtMTMuMiA5LjktMjguMyAxNy4zLTQ0LjggMjEuNlYxMzJjMTYuNCA0LjIgMzEuNiAxMS42IDQ0LjggMjEuNmMxNC4xIDEwLjYgMzQuMiA3LjggNDQuOC02LjRzNy44LTM0LjItNi40LTQ0LjhjLTI0LTE4LTUyLjQtMzAuNi04My4yLTM1LjhWMzJ6TTE5MiAxMzJWMzgwYy01NS4yLTE0LjItOTYtNjQuMy05Ni0xMjRzNDAuOC0xMDkuOCA5Ni0xMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNlbnRTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY2LjdjMzAuOSA1LjIgNTkuMiAxNy43IDgzLjIgMzUuOGMxNC4xIDEwLjYgMTcgMzAuNyA2LjQgNDQuOHMtMzAuNyAxNy00NC44IDYuNEMyNzkuNCAxMzcuNSAyNTIuOSAxMjggMjI0IDEyOGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjhzNTcuMyAxMjggMTI4IDEyOGMyOC45IDAgNTUuNC05LjUgNzYuOC0yNS42YzE0LjEtMTAuNiAzNC4yLTcuOCA0NC44IDYuNHM3LjggMzQuMi02LjQgNDQuOGMtMjQgMTgtNTIuNCAzMC42LTgzLjIgMzUuOFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ1LjNDMTAxLjIgNDMwLjEgMzIgMzUxLjEgMzIgMjU2czY5LjItMTc0LjEgMTYwLTE4OS4zVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZXJ0aWZpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTEgNy4zQzIwNSAxIDE5Ni0xLjQgMTg3LjYgLjhzLTE0LjkgOC45LTE3LjEgMTcuM0wxNTQuNyA4MC42bC02Mi0xNy41Yy04LjQtMi40LTE3LjQgMC0yMy41IDYuMXMtOC41IDE1LjEtNi4xIDIzLjVsMTcuNSA2MkwxOC4xIDE3MC42Yy04LjQgMi4xLTE1IDguNy0xNy4zIDE3LjFTMSAyMDUgNy4zIDIxMWw0Ni4yIDQ1TDcuMyAzMDFDMSAzMDctMS40IDMxNiAuOCAzMjQuNHM4LjkgMTQuOSAxNy4zIDE3LjFsNjIuNSAxNS44LTE3LjUgNjJjLTIuNCA4LjQgMCAxNy40IDYuMSAyMy41czE1LjEgOC41IDIzLjUgNi4xbDYyLTE3LjUgMTUuOCA2Mi41YzIuMSA4LjQgOC43IDE1IDE3LjEgMTcuM3MxNy4zLS4yIDIzLjQtNi40bDQ1LTQ2LjIgNDUgNDYuMmM2LjEgNi4yIDE1IDguNyAyMy40IDYuNHMxNC45LTguOSAxNy4xLTE3LjNsMTUuOC02Mi41IDYyIDE3LjVjOC40IDIuNCAxNy40IDAgMjMuNS02LjFzOC41LTE1LjEgNi4xLTIzLjVsLTE3LjUtNjIgNjIuNS0xNS44YzguNC0yLjEgMTUtOC43IDE3LjMtMTcuMXMtLjItMTcuNC02LjQtMjMuNGwtNDYuMi00NSA0Ni4yLTQ1YzYuMi02LjEgOC43LTE1IDYuNC0yMy40cy04LjktMTQuOS0xNy4zLTE3LjFsLTYyLjUtMTUuOCAxNy41LTYyYzIuNC04LjQgMC0xNy40LTYuMS0yMy41cy0xNS4xLTguNS0yMy41LTYuMWwtNjIgMTcuNUwzNDEuNCAxOC4xYy0yLjEtOC40LTguNy0xNS0xNy4xLTE3LjNTMzA3IDEgMzAxIDcuM0wyNTYgNTMuNSAyMTEgNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNDhWMjU2aDQ4VjU4LjdjMjMuOSAxMy44IDQwIDM5LjcgNDAgNjkuM1YyNTZoNDhWMTI4QzM4NCA1Ny4zIDMyNi43IDAgMjU2IDBIMTkyQzEyMS4zIDAgNjQgNTcuMyA2NCAxMjhWMjU2aDQ4VjEyOGMwLTI5LjYgMTYuMS01NS41IDQwLTY5LjNWMjU2aDQ4VjQ4aDQ4ek00OCAyODhjLTEyLjEgMC0yMy4yIDYuOC0yOC42IDE3LjdsLTE2IDMyYy01IDkuOS00LjQgMjEuNyAxLjQgMzEuMVMyMC45IDM4NCAzMiAzODRsMCA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NEgzNTJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzODRjMTEuMSAwIDIxLjQtNS43IDI3LjItMTUuMnM2LjQtMjEuMiAxLjQtMzEuMWwtMTYtMzJDNDIzLjIgMjk0LjggNDEyLjEgMjg4IDQwMCAyODhINDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWxrYm9hcmRVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMwLTM1LjMgMjguNy02NCA2NC02NEg1NzZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0SDMzNi44Yy0xMS44LTI1LjUtMjkuOS00Ny41LTUyLjQtNjRIMzg0VjMyMGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMmg2NFY2NEwyMjQgNjR2NDkuMUMyMDUuMiAxMDIuMiAxODMuMyA5NiAxNjAgOTZWNjR6bTAgNjRhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6TTEzMy4zIDM1Mmg1My4zQzI2MC4zIDM1MiAzMjAgNDExLjcgMzIwIDQ4NS4zYzAgMTQuNy0xMS45IDI2LjctMjYuNyAyNi43SDI2LjdDMTEuOSA1MTIgMCA1MDAuMSAwIDQ4NS4zQzAgNDExLjcgNTkuNyAzNTIgMTMzLjMgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFsa2JvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMyQzYwLjcgMzIgMzIgNjAuNyAzMiA5NlYzODRIOTZWOTZsMzg0IDBWMzg0aDY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2ek0yMjQgMzg0djMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0MTZWMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYW1wYWduZUdsYXNzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU1LjYgMTcuM0MxNjMgMyAxNzkuOS0zLjYgMTk1IDEuOUwzMjAgNDcuNWwxMjUtNDUuNmMxNS4xLTUuNSAzMiAxLjEgMzkuNCAxNS40bDc4LjggMTUyLjljMjguOCA1NS44IDEwLjMgMTIyLjMtMzguNSAxNTYuNkw1NTYuMSA0MTNsNDEtMTVjMTYuNi02IDM1IDIuNSA0MSAxOS4xcy0yLjUgMzUtMTkuMSA0MWwtNzEuMSAyNS45TDQ3Ni44IDUxMGMtMTYuNiA2LjEtMzUtMi41LTQxLTE5LjFzMi41LTM1IDE5LjEtNDFsNDEtMTUtMzEuMy04Ni4yYy01OS40IDUuMi0xMTYuMi0zNC0xMzAtOTUuMkwzMjAgMTg4LjhsLTE0LjYgNjQuN2MtMTMuOCA2MS4zLTcwLjYgMTAwLjQtMTMwIDk1LjJsLTMxLjMgODYuMiA0MSAxNWMxNi42IDYgMjUuMiAyNC40IDE5LjEgNDFzLTI0LjQgMjUuMi00MSAxOS4xTDkyLjIgNDg0LjEgMjEuMSA0NTguMmMtMTYuNi02LjEtMjUuMi0yNC40LTE5LjEtNDFzMjQuNC0yNS4yIDQxLTE5LjFsNDEgMTUgMzEuMy04Ni4yQzY2LjUgMjkyLjUgNDguMSAyMjYgNzYuOSAxNzAuMkwxNTUuNiAxNy4zem00NCA1NC40bC0yNy4yIDUyLjhMMjYxLjYgMTU3bDEzLjEtNTcuOUwxOTkuNiA3MS43em0yNDAuOSAwTDM2NS40IDk5LjEgMzc4LjUgMTU3bDg5LjItMzIuNUw0NDAuNSA3MS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFyZ2luZ1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM2MC43IDAgMzIgMjguNyAzMiA2NFY0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjMwNGgxNmMyMi4xIDAgNDAgMTcuOSA0MCA0MHYzMmMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyVjI1Mi4zYzMyLjUtMTAuMiA1Ni00MC41IDU2LTc2LjNWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNkg1NDRWODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NDhINDgwVjgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djQ4SDQzMmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgMzUuOCAyMy41IDY2LjEgNTYgNzYuM1YzNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzQ0YzAtNDguNi0zOS40LTg4LTg4LTg4SDMyMFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg5NnpNMjE2LjkgODIuN2M2IDQgOC41IDExLjUgNi4zIDE4LjNsLTI1IDc0LjlIMjU2YzYuNyAwIDEyLjcgNC4yIDE1IDEwLjRzLjUgMTMuMy00LjYgMTcuN2wtMTEyIDk2Yy01LjUgNC43LTEzLjQgNS4xLTE5LjMgMS4xcy04LjUtMTEuNS02LjMtMTguM2wyNS03NC45SDk2Yy02LjcgMC0xMi43LTQuMi0xNS0xMC40cy0uNS0xMy4zIDQuNi0xNy43bDExMi05NmM1LjUtNC43IDEzLjQtNS4xIDE5LjMtMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydEFyZWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRjMC0xNy43LTE0LjMtMzItMzItMzJTMCA0Ni4zIDAgNjRWNDAwYzAgNDQuMiAzNS44IDgwIDgwIDgwSDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0em05NiAyODhINDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1MS44YzAtNy42LTIuNy0xNS03LjctMjAuOGwtNjUuOC03Ni44Yy0xMi4xLTE0LjItMzMuNy0xNS00Ni45LTEuOGwtMjEgMjFjLTEwIDEwLTI2LjQgOS4yLTM1LjQtMS42bC0zOS4yLTQ3Yy0xMi42LTE1LjEtMzUuNy0xNS40LTQ4LjctLjZMMTM1LjkgMjE1Yy01LjEgNS44LTcuOSAxMy4zLTcuOSAyMS4xdjg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0MDBjMCA4LjggNy4yIDE2IDE2IDE2SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJ6bTk2IDk2YzAtMTcuNyAxNC4zLTMyIDMyLTMybDE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDY0SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTAgOTZINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRDb2x1bW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDAwYzAgOC44IDcuMiAxNiAxNiAxNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyek0xNjAgMjI0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMTI4LTY0VjMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyek00ODAgOTZWMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjk2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0R2FudHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDAwYzAgOC44IDcuMiAxNiAxNiAxNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIODBjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyem05NiA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmw5NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTk2IDY0SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTE2MCA5Nmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0TGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NFY0MDBjMCA0NC4yIDM1LjggODAgODAgODBINDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDgwYy04LjggMC0xNi03LjItMTYtMTZWNjR6bTQwNi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzIwIDIxMC43bC01Ny40LTU3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI0MCAyMjEuM2w1Ny40IDU3LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTI4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRQaWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDI0MFYxNi42YzAtOSA3LTE2LjYgMTYtMTYuNkM0NDMuNyAwIDU0NCAxMDAuMyA1NDQgMjI0YzAgOS03LjYgMTYtMTYuNiAxNkgzMDR6TTMyIDI3MkMzMiAxNTAuNyAxMjIuMSA1MC4zIDIzOSAzNC4zYzkuMi0xLjMgMTcgNi4xIDE3IDE1LjRWMjg4TDQxMi41IDQ0NC41YzYuNyA2LjcgNi4yIDE3LjctMS41IDIzLjFDMzcxLjggNDk1LjYgMzIzLjggNTEyIDI3MiA1MTJDMTM5LjUgNTEyIDMyIDQwNC42IDMyIDI3MnptNTI2LjQgMTZjOS4zIDAgMTYuNiA3LjggMTUuNCAxN2MtNy43IDU1LjktMzQuNiAxMDUuNi03My45IDE0Mi4zYy02IDUuNi0xNS40IDUuMi0yMS4yLS43TDMyMCAyODhINTU4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0U2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzMmMyNi41IDAgNDggMjEuNSA0OCA0OFY0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhIMjA4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MHpNMCAyNzJjMC0yNi41IDIxLjUtNDggNDgtNDhIODBjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyNzJ6TTM2OCA5NmgzMmMyNi41IDAgNDggMjEuNSA0OCA0OFY0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhIMzY4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Mi42IDg2LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTYwIDE3OC43bC01Ny40LTU3LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDgwIDgwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjB6bTk2IDEyOGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwxNjAgNDAyLjcgNTQuNiAyOTcuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTI4IDEyOGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwyNTYtMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVja1RvU2xvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA4MGMwLTI2LjUgMjEuNS00OCA0OC00OEg0MzJjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMzg0SDk2Vjgwem0zMTMgNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xMTEgMTExLTQ3LTQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDY0IDY0YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDQwOSAxNjFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjl6TTAgMzM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDY0VjQxNkg1MTJWMjg4aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOC42IDEwNS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0yNTYgMjU2Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMEwxNjAgMzM4LjcgMzkzLjQgMTA1LjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjQwLjJWMjU2SDBjMC0yMCAxMC0zOC43IDI2LjYtNDkuOEwyNzQuOSA0MC43YzguNi01LjcgMTguNi04LjcgMjguOS04LjdDNDE4LjggMzIgNTEyIDEyNS4yIDUxMiAyNDAuMnptMCA0Ny44VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjg4SDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NCaXNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMyYzAgMTYuMSAxMS45IDI5LjQgMjcuNCAzMS43Qzc4LjQgMTA2LjggOCAxOTAgOCAyODhjMCA0Ny40IDMwLjggNzIuMyA1NiA4NC43VjQwMEgyNTZWMzcyLjdjMjUuMi0xMi41IDU2LTM3LjQgNTYtODQuN2MwLTM3LjMtMTAuMi03Mi40LTI1LjMtMTA0LjFsLTk5LjQgOTkuNGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwyNzAuOCAxNTQuNmMtMjMuMi0zOC4xLTUxLjgtNjkuNS03NC4yLTkwLjlDMjEyLjEgNjEuNCAyMjQgNDguMSAyMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMTI4ek00OCA0MzJMNi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMCA1MDEuOSAxMC4xIDUxMiAyMi42IDUxMkgyOTcuNGMxMi41IDAgMjIuNi0xMC4xIDIyLjYtMjIuNmMwLTYtMi40LTExLjgtNi42LTE2TDI3MiA0MzJINDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzQm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em02NCA2NHY2NGg2NFY5Nmg2NHY2NGg2NFY5Nmg2NHY2NEgzMjB2NjRoNjR2NjRIMzIwdjY0aDY0djY0SDMyMFYzNTJIMjU2djY0SDE5MlYzNTJIMTI4djY0SDY0VjM1Mmg2NFYyODhINjRWMjI0aDY0VjE2MEg2NFY5Nmg2NHptNjQgMTI4aDY0VjE2MEgxOTJ2NjR6bTAgNjRWMjI0SDEyOHY2NGg2NHptNjQgMEgxOTJ2NjRoNjRWMjg4em0wIDBoNjRWMjI0SDI1NnY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NLaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI1NnY0OEg0MDhjMjIuMSAwIDQwIDE3LjkgNDAgNDBjMCA1LjMtMSAxMC41LTMuMSAxNS40TDM2OCA0MDBIODBMMy4xIDIxNS40QzEgMjEwLjUgMCAyMDUuMyAwIDIwMGMwLTIyLjEgMTcuOS00MCA0MC00MEgxOTJWMTEySDE3NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgxNlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzguNiA0NzMuNEw4MCA0MzJIMzY4bDQxLjQgNDEuNGM0LjIgNC4yIDYuNiAxMCA2LjYgMTZjMCAxMi41LTEwLjEgMjIuNi0yMi42IDIyLjZINTQuNkM0Mi4xIDUxMiAzMiA1MDEuOSAzMiA0ODkuNGMwLTYgMi40LTExLjggNi42LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0tuaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA0OEw4Mi43IDYxLjNDNzAuNyA3My4zIDY0IDg5LjUgNjQgMTA2LjVWMjM4LjljMCAxMC43IDUuMyAyMC43IDE0LjIgMjYuNmwxMC42IDdjMTQuMyA5LjYgMzIuNyAxMC43IDQ4LjEgM2wzLjItMS42YzIuNi0xLjMgNS0yLjggNy4zLTQuNWw0OS40LTM3YzYuNi01IDE1LjctNSAyMi4zIDBjMTAuMiA3LjcgOS45IDIzLjEtLjcgMzAuM0w5MC40IDM1MEM3My45IDM2MS4zIDY0IDM4MCA2NCA0MDBIMzg0bDI4LjktMTU5YzIuMS0xMS4zIDMuMS0yMi44IDMuMS0zNC4zVjE5MkM0MTYgODYgMzMwIDAgMjI0IDBIODMuOEM3Mi45IDAgNjQgOC45IDY0IDE5LjhjMCA3LjUgNC4yIDE0LjMgMTAuOSAxNy43TDk2IDQ4em0yNCA2OGEyMCAyMCAwIDEgMSA0MCAwIDIwIDIwIDAgMSAxIC00MCAwek0yMi42IDQ3My40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMTYgNTAxLjkgMjYuMSA1MTIgMzguNiA1MTJINDA5LjRjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjZjMC02LTIuNC0xMS44LTYuNi0xNkwzODQgNDMySDY0TDIyLjYgNDczLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUGF3biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTUuNSAyMjRjMjkuMi0xOC40IDQ4LjUtNTAuOSA0OC41LTg4YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0UzU2IDc4LjYgNTYgMTM2YzAgMzcuMSAxOS40IDY5LjYgNDguNSA4OEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJjMCAxNi41IDEyLjUgMzAgMjguNSAzMS44TDgwIDQwMEgyNDBMMjI3LjUgMjg3LjhjMTYtMS44IDI4LjUtMTUuMyAyOC41LTMxLjhjMC0xNy43LTE0LjMtMzItMzItMzJoLTguNXpNMjIuNiA0NzMuNGMtNC4yIDQuMi02LjYgMTAtNi42IDE2QzE2IDUwMS45IDI2LjEgNTEyIDM4LjYgNTEySDI4MS40YzEyLjUgMCAyMi42LTEwLjEgMjIuNi0yMi42YzAtNi0yLjQtMTEuOC02LjYtMTZMMjU2IDQzMkg2NEwyMi42IDQ3My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc1F1ZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYTU2IDU2IDAgMSAxIDAgMTEyQTU2IDU2IDAgMSAxIDI1NiAwek0xMzQuMSAxNDMuOGMzLjMtMTMgMTUtMjMuOCAzMC4yLTIzLjhjMTIuMyAwIDIyLjYgNy4yIDI3LjcgMTdjMTIgMjMuMiAzNi4yIDM5IDY0IDM5czUyLTE1LjggNjQtMzljNS4xLTkuOCAxNS40LTE3IDI3LjctMTdjMTUuMyAwIDI3IDEwLjggMzAuMiAyMy44YzcgMjcuOCAzMi4yIDQ4LjMgNjIuMSA0OC4zYzEwLjggMCAyMS0yLjcgMjkuOC03LjRjOC40LTQuNCAxOC45LTQuNSAyNy42IC45YzEzIDggMTcuMSAyNSA5LjIgMzhMMzk5LjcgNDAwSDM4NCAzNDMuNiAxNjguNCAxMjggMTEyLjNMNS40IDIyMy42Yy03LjktMTMtMy44LTMwIDkuMi0zOGM4LjctNS4zIDE5LjItNS4zIDI3LjYtLjljOC45IDQuNyAxOSA3LjQgMjkuOCA3LjRjMjkuOSAwIDU1LjEtMjAuNSA2Mi4xLTQ4LjN6TTI1NiAyMjRsMCAwIDAgMGgwek0xMTIgNDMySDQwMGw0MS40IDQxLjRjNC4yIDQuMiA2LjYgMTAgNi42IDE2YzAgMTIuNS0xMC4xIDIyLjYtMjIuNiAyMi42SDg2LjZDNzQuMSA1MTIgNjQgNTAxLjkgNjQgNDg5LjRjMC02IDIuNC0xMS44IDYuNi0xNkwxMTIgNDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc1Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMTkyVjQ4YzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZWODhjMCA0LjQgMy42IDggOCA4aDMyYzQuNCAwIDgtMy42IDgtOFY0OGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2Vjg4YzAgNC40IDMuNiA4IDggOGgzMmM0LjQgMCA4LTMuNiA4LThWNDhjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNlYxOTJjMCAxMC4xLTQuNyAxOS42LTEyLjggMjUuNkwzNTIgMjU2bDE2IDE0NEg4MEw5NiAyNTYgNDQuOCAyMTcuNkMzNi43IDIxMS42IDMyIDIwMi4xIDMyIDE5MnptMTc2IDk2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NDhjMCA4LjggNy4yIDE2IDE2IDE2ek0yMi42IDQ3My40TDY0IDQzMkgzODRsNDEuNCA0MS40YzQuMiA0LjIgNi42IDEwIDYuNiAxNmMwIDEyLjUtMTAuMSAyMi42LTIyLjYgMjIuNkgzOC42QzI2LjEgNTEyIDE2IDUwMS45IDE2IDQ4OS40YzAtNiAyLjQtMTEuOCA2LjYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlYzMkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgxNlY5Nkg2MC4yQzQ5LjEgOTYgNDAgMTA1LjEgNDAgMTE2LjJjMCAyLjUgLjUgNC45IDEuMyA3LjNMNzMuOCAyMDhINzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNEw2MCAzODRIMTk2TDE4MCAyNTZoNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGgtMS44bDMyLjUtODQuNWMuOS0yLjMgMS4zLTQuOCAxLjMtNy4zYzAtMTEuMi05LjEtMjAuMi0yMC4yLTIwLjJIMTQ0VjY0aDE2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE0NFYxNnpNNDggNDE2TDQuOCA0NzMuNkMxLjcgNDc3LjggMCA0ODIuOCAwIDQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNEgyMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC01LjItMS43LTEwLjItNC44LTE0LjRMMjA4IDQxNkg0OHptMjg4IDBsLTQzLjIgNTcuNmMtMy4xIDQuMi00LjggOS4yLTQuOCAxNC40YzAgMTMuMyAxMC43IDI0IDI0IDI0SDQ4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNGMwLTUuMi0xLjctMTAuMi00LjgtMTQuNEw0NjQgNDE2SDMzNnpNMzA0IDIwOHY1MS45YzAgNy44IDIuOCAxNS4zIDggMjEuMUwzMzkuMiAzMTIgMzM3IDM4NEg0NjIuNWwtMy4zLTcyIDI4LjMtMzAuOGM1LjQtNS45IDguNS0xMy42IDguNS0yMS43VjIwOGMwLTguOC03LjItMTYtMTYtMTZINDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZINDI0VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMzkyYy04LjggMC0xNiA3LjItMTYgMTZ2MTZIMzUyVjIwOGMwLTguOC03LjItMTYtMTYtMTZIMzIwYy04LjggMC0xNiA3LjItMTYgMTZ6bTgwIDk2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MzJIMzg0VjMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMzLjQgNDA2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsMTkyLTE5MmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyNTYgMzM4LjcgODYuNiAxNjkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTkyIDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDIzMy40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxOTIgMTkyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNMNzcuMyAyNTYgMjQ2LjYgODYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMTkyIDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyAyNTYgNzMuNCA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzMuNCAxMDUuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMGwxOTIgMTkyYzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDI1NiAxNzMuMyA4Ni42IDM0Mi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2wxOTItMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGlsZENvbWJhdGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMTI4QTY0IDY0IDAgMSAwIDE3NiAwYTY0IDY0IDAgMSAwIDAgMTI4em0tOCAzNTJWMzUyaDE2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMwMC41TDI2MC45IDMyMWM5LjQgMTUgMjkuMiAxOS40IDQ0LjEgMTBzMTkuNC0yOS4yIDEwLTQ0LjFsLTUxLjctODIuMWMtMTcuNi0yNy45LTQ4LjMtNDQuOS04MS4yLTQ0LjlIMTY5LjhjLTMzIDAtNjMuNyAxNi45LTgxLjIgNDQuOUwzNi45IDI4N2MtOS40IDE1LTQuOSAzNC43IDEwIDQ0LjFzMzQuNyA0LjkgNDQuMS0xMEwxMDQgMzAwLjVWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ6TTQ0OCAwSDQzMiA0MTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZWMTMyLjNjLTkuNiA1LjUtMTYgMTUuOS0xNiAyNy43djMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMlYzNjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDU5LjVjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlMNDg0IDQwMGg0NGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNkg0ODBWMzI1LjNsNTMuMS0xNy43YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4yVjIwOGMwLTguOC03LjItMTYtMTYtMTZINTEyYy04LjggMC0xNiA3LjItMTYgMTZ2NTZsLTE2IDUuM1YxNjBjMC0xMS44LTYuNC0yMi4yLTE2LTI3LjdWMTZjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGlsZERyZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA2NEE2NCA2NCAwIDEgMCA5NiA2NGE2NCA2NCAwIDEgMCAxMjggMHpNODggNDAwdjgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDAwaDE2djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDAwaDE3LjhjMTAuOSAwIDE4LjYtMTAuNyAxNS4yLTIxLjFsLTMxLjEtOTMuNCAyOC42IDM3LjhjMTAuNyAxNC4xIDMwLjggMTYuOCA0NC44IDYuMnMxNi44LTMwLjcgNi4yLTQ0LjhMMjU0LjYgMjA3Yy0yMi40LTI5LjYtNTcuNS00Ny05NC42LTQ3cy03Mi4yIDE3LjQtOTQuNiA0N0w2LjUgMjg0LjdjLTEwLjcgMTQuMS03LjkgMzQuMiA2LjIgNDQuOHMzNC4yIDcuOSA0NC44LTYuMmwyOC43LTM3LjhMNTUgMzc4LjlDNTEuNiAzODkuMyA1OS4zIDQwMCA3MC4yIDQwMEg4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hpbGRSZWFjaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRBNjQgNjQgMCAxIDAgMTI4IDY0YTY0IDY0IDAgMSAwIDEyOCAwek0xNTIuOSAxNjkuM2MtMjMuNy04LjQtNDQuNS0yNC4zLTU4LjgtNDUuOEw3NC42IDk0LjJDNjQuOCA3OS41IDQ1IDc1LjYgMzAuMiA4NS40cy0xOC43IDI5LjctOC45IDQ0LjRMNDAuOSAxNTljMTguMSAyNy4xIDQyLjggNDguNCA3MS4xIDYyLjRWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzg0aDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjIxLjZjMjkuMS0xNC4yIDU0LjQtMzYuMiA3Mi43LTY0LjJsMTguMi0yNy45YzkuNi0xNC44IDUuNC0zNC42LTkuNC00NC4zcy0zNC42LTUuNS00NC4zIDkuNEwyOTEgMTIyLjRjLTIxLjggMzMuNC01OC45IDUzLjYtOTguOCA1My42Yy0xMi42IDAtMjQuOS0yLTM2LjYtNS44Yy0uOS0uMy0xLjgtLjctMi43LS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGlsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA5NiA2NHptNDggMzIwdjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI4Ny44TDU5LjEgMzIxYy05LjQgMTUtMjkuMiAxOS40LTQ0LjEgMTBTLTQuNSAzMDEuOSA0LjkgMjg3bDM5LjktNjMuM0M2OS43IDE4NCAxMTMuMiAxNjAgMTYwIDE2MHM5MC4zIDI0IDExNS4yIDYzLjZMMzE1LjEgMjg3YzkuNCAxNSA0LjkgMzQuNy0xMCA0NC4xcy0zNC43IDQuOS00NC4xLTEwTDI0MCAyODcuOFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0SDE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hpbGRyZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDBhNjQgNjQgMCAxIDEgMCAxMjhBNjQgNjQgMCAxIDEgMTYwIDB6TTg4IDQ4MFY0MDBINzAuMmMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFsMzEuMS05My40TDU3LjUgMzIzLjNjLTEwLjcgMTQuMS0zMC44IDE2LjgtNDQuOCA2LjJzLTE2LjgtMzAuNy02LjItNDQuOEw2NS40IDIwN2MyMi40LTI5LjYgNTcuNS00NyA5NC42LTQ3czcyLjIgMTcuNCA5NC42IDQ3bDU4LjkgNzcuN2MxMC43IDE0LjEgNy45IDM0LjItNi4yIDQ0LjhzLTM0LjIgNy45LTQ0LjgtNi4ybC0yOC42LTM3LjhMMjY1IDM3OC45YzMuNSAxMC40LTQuMyAyMS4xLTE1LjIgMjEuMUgyMzJ2ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDAwSDE1MnY4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNNDgwIDBhNjQgNjQgMCAxIDEgMCAxMjhBNjQgNjQgMCAxIDEgNDgwIDB6bS04IDM4NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMDAuNUwzOTUuMSAzMjFjLTkuNCAxNS0yOS4yIDE5LjQtNDQuMSAxMHMtMTkuNC0yOS4yLTEwLTQ0LjFsNTEuNy04Mi4xYzE3LjYtMjcuOSA0OC4zLTQ0LjkgODEuMi00NC45aDEyLjNjMzMgMCA2My43IDE2LjkgODEuMiA0NC45TDYxOS4xIDI4N2M5LjQgMTUgNC45IDM0LjctMTAgNDQuMXMtMzQuNyA0LjktNDQuMS0xMEw1NTIgMzAwLjVWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NEg0NzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNodXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWNDhIMjY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDMydjQ2LjRMMTgzLjMgMjEwYy0xNC41IDguNy0yMy4zIDI0LjMtMjMuMyA0MS4yVjUxMmg5NlY0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHY5Nmg5NlYyNTEuMmMwLTE2LjktOC44LTMyLjUtMjMuMy00MS4yTDM0NCAxNDIuNFY5NmgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNDRWMjR6TTI0LjkgMzMwLjNDOS41IDMzOC44IDAgMzU0LjkgMCAzNzIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoODBWMjczLjZMMjQuOSAzMzAuM3pNNTkyIDUxMmMyNi41IDAgNDgtMjEuNSA0OC00OFYzNzIuNGMwLTE3LjUtOS41LTMzLjYtMjQuOS00Mi4xTDUxMiAyNzMuNlY1MTJoODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDB6TTEyNyAyODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw3MSA3MUwyMzIgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAxODIuMSA3MS03MWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMjczIDM5M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTI3IDI4MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0yMzEgMTI3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNzEgNzFMMzc2IDIzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGwtMTgyLjEgMCA3MSA3MWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDExOSAyNzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45TDIzMSAxMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yODEgMzg1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDcxLTcxTDEzNiAyODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRsMTgyLjEgMC03MS03MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDM5MyAyMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjgxIDM4NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg1IDIzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC03MS03MVYzNzZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMTkzLjlsLTcxIDcxYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIzOSAxMTljOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzg1IDIzMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTM2OSAyMDlMMjQxIDMzN2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNDcgNDdMMzM1IDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUNoZXZyb25Eb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTM1IDI0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDg3IDg3IDg3LTg3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOUwyNzMgMzQ1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMzUgMjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVDaGV2cm9uTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjU2QTI1NiAyNTYgMCAxIDAgMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMHpNMjcxIDEzNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDg3IDg3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBMMTY3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjcxIDEzNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDBBMjU2IDI1NiAwIDEgMCAwIDI1NnpNMjQxIDM3N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4Ny04Ny04Ny04N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwTDM0NSAyMzljOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjQxIDM3N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlQ2hldnJvblVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zNzcgMjcxYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTg3LTg3LTg3IDg3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45TDIzOSAxNjdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMMzc3IDI3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlRG9sbGFyVG9TbG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi43IDQwMy43Yy0yMi4xIDgtNDUuOSAxMi4zLTcwLjcgMTIuM3MtNDguNy00LjQtNzAuNy0xMi4zYy0uMy0uMS0uNS0uMi0uOC0uM2MtMzAtMTEtNTYuOC0yOC43LTc4LjYtNTEuNEM3MCAzMTQuNiA0OCAyNjMuOSA0OCAyMDhDNDggOTMuMSAxNDEuMSAwIDI1NiAwUzQ2NCA5My4xIDQ2NCAyMDhjMCA1NS45LTIyIDEwNi42LTU3LjkgMTQ0Yy0xIDEtMiAyLjEtMyAzLjFjLTIxLjQgMjEuNC00Ny40IDM4LjEtNzYuMyA0OC42ek0yNTYgODRjLTExIDAtMjAgOS0yMCAyMHYxNGMtNy42IDEuNy0xNS4yIDQuNC0yMi4yIDguNWMtMTMuOSA4LjMtMjUuOSAyMi44LTI1LjggNDMuOWMuMSAyMC4zIDEyIDMzLjEgMjQuNyA0MC43YzExIDYuNiAyNC43IDEwLjggMzUuNiAxNGwxLjcgLjVjMTIuNiAzLjggMjEuOCA2LjggMjggMTAuN2M1LjEgMy4yIDUuOCA1LjQgNS45IDguMmMuMSA1LTEuOCA4LTUuOSAxMC41Yy01IDMuMS0xMi45IDUtMjEuNCA0LjdjLTExLjEtLjQtMjEuNS0zLjktMzUuMS04LjVjLTIuMy0uOC00LjctMS42LTcuMi0yLjRjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNjMS45IC42IDQgMS4zIDYuMSAyLjFsMCAwIDAgMGM4LjMgMi45IDE3LjkgNi4yIDI4LjIgOC40VjMxMmMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFYyOTguMmM4LTEuNyAxNi00LjUgMjMuMi05YzE0LjMtOC45IDI1LjEtMjQuMSAyNC44LTQ1Yy0uMy0yMC4zLTExLjctMzMuNC0yNC42LTQxLjZjLTExLjUtNy4yLTI1LjktMTEuNi0zNy4xLTE1bC0uNy0uMmMtMTIuOC0zLjktMjEuOS02LjctMjguMy0xMC41Yy01LjItMy4xLTUuMy00LjktNS4zLTYuN2MwLTMuNyAxLjQtNi41IDYuMi05LjNjNS40LTMuMiAxMy42LTUuMSAyMS41LTVjOS42IC4xIDIwLjIgMi4yIDMxLjIgNS4yYzEwLjcgMi44IDIxLjYtMy41IDI0LjUtMTQuMnMtMy41LTIxLjYtMTQuMi0yNC41Yy02LjUtMS43LTEzLjctMy40LTIxLjEtNC43VjEwNGMwLTExLTktMjAtMjAtMjB6TTQ4IDM1Mkg2NGMxOS41IDI1LjkgNDQgNDcuNyA3Mi4yIDY0SDY0djMySDI1NiA0NDhWNDE2SDM3NS44YzI4LjItMTYuMyA1Mi44LTM4LjEgNzIuMi02NGgxNmMyNi41IDAgNDggMjEuNSA0OCA0OHY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDAwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVEb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzUyYTk2IDk2IDAgMSAxIDAgMTkyIDk2IDk2IDAgMSAxIDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMzc2LjkgMjk0LjZMMjY5LjggMzk0LjVjLTMuOCAzLjUtOC43IDUuNS0xMy44IDUuNXMtMTAuMS0yLTEzLjgtNS41TDEzNS4xIDI5NC42Yy00LjUtNC4yLTcuMS0xMC4xLTcuMS0xNi4zYzAtMTIuMyAxMC0yMi4zIDIyLjMtMjIuM2w1Ny43IDAgMC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgOTYgNTcuNyAwYzEyLjMgMCAyMi4zIDEwIDIyLjMgMjIuM2MwIDYuMi0yLjYgMTIuMS03LjEgMTYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMzg0YzEzLjMgMCAyNCAxMC43IDI0IDI0VjI2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTIyNCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzY4IDE1MlYyNTYgMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI4MEgxOTJsMCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGwwLTIwOGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djgwSDMyMFYxNTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlSGFsZlN0cm9rZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMjU2YzAtMTA2LTg2LTE5Mi0xOTItMTkyVjQ0OGMxMDYgMCAxOTItODYgMTkyLTE5MnpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVJbmZvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMTYgMzM2aDI0VjI3MkgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2ODhoOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTQwLTIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI1NkEyNTYgMjU2IDAgMSAwIDAgMjU2YTI1NiAyNTYgMCAxIDAgNTEyIDB6TTIxNy40IDM3Ni45TDExNy41IDI2OS44Yy0zLjUtMy44LTUuNS04LjctNS41LTEzLjhzMi0xMC4xIDUuNS0xMy44bDk5LjktMTA3LjFjNC4yLTQuNSAxMC4xLTcuMSAxNi4zLTcuMWMxMi4zIDAgMjIuMyAxMCAyMi4zIDIyLjNsMCA1Ny43IDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtOTYgMCAwIDU3LjdjMCAxMi4zLTEwIDIyLjMtMjIuMyAyMi4zYy02LjIgMC0xMi4xLTIuNi0xNi4zLTcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE4NCAyMzJIMzI4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE4NGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlTm9kZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE4LjQgMTU3LjljMzUuMy04LjMgNjEuNi00MCA2MS42LTc3LjljMC00NC4yLTM1LjgtODAtODAtODBjLTQzLjQgMC03OC43IDM0LjUtODAgNzcuNUwxMzYuMiAxNTEuMUMxMjEuNyAxMzYuOCAxMDEuOSAxMjggODAgMTI4Yy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwYzEyLjIgMCAyMy44LTIuNyAzNC4xLTcuNkwyNTkuNyA0MDcuOGMtMi40IDcuNi0zLjcgMTUuOC0zLjcgMjQuMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMjcuNy0xNC01Mi4xLTM1LjQtNjYuNGwzNy44LTIwNy43ek0xNTYuMyAyMzIuMmMyLjItNi45IDMuNS0xNC4yIDMuNy0yMS43bDE4My44LTczLjVjMy42IDMuNSA3LjQgNi43IDExLjYgOS41TDMxNy42IDM1NC4xYy01LjUgMS4zLTEwLjggMy4xLTE1LjggNS41TDE1Ni4zIDIzMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVOb3RjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjIuNyAzMi4xYzUgMTYuOS00LjYgMzQuOC0yMS41IDM5LjhDMTIxLjggOTUuNiA2NCAxNjkuMSA2NCAyNTZjMCAxMDYgODYgMTkyIDE5MiAxOTJzMTkyLTg2IDE5Mi0xOTJjMC04Ni45LTU3LjgtMTYwLjQtMTM3LjEtMTg0LjFjLTE2LjktNS0yNi42LTIyLjktMjEuNS0zOS44czIyLjktMjYuNiAzOS44LTIxLjVDNDM0LjkgNDIuMSA1MTIgMTQwIDUxMiAyNTZjMCAxNDEuNC0xMTQuNiAyNTYtMjU2IDI1NlMwIDM5Ny40IDAgMjU2QzAgMTQwIDc3LjEgNDIuMSAxODIuOSAxMC42YzE2LjktNSAzNC44IDQuNiAzOS44IDIxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVBhdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMjQgMTkyVjMyMGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDBWMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMTg4LjMgMTQ3LjFjLTcuNiA0LjItMTIuMyAxMi4zLTEyLjMgMjAuOVYzNDRjMCA4LjcgNC43IDE2LjcgMTIuMyAyMC45czE2LjggNC4xIDI0LjMtLjVsMTQ0LTg4YzcuMS00LjQgMTEuNS0xMi4xIDExLjUtMjAuNXMtNC40LTE2LjEtMTEuNS0yMC41bC0xNDQtODhjLTcuNC00LjUtMTYuNy00LjctMjQuMy0uNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjMyIDM0NFYyODBIMTY4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDY0VjE2OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djY0aDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI4MHY2NGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2OS44IDE2NS4zYzcuOS0yMi4zIDI5LjEtMzcuMyA1Mi44LTM3LjNoNTguM2MzNC45IDAgNjMuMSAyOC4zIDYzLjEgNjMuMWMwIDIyLjYtMTIuMSA0My41LTMxLjcgNTQuOEwyODAgMjY0LjRjLS4yIDEzLTEwLjkgMjMuNi0yNCAyMy42Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYyNTAuNWMwLTguNiA0LjYtMTYuNSAxMi4xLTIwLjhsNDQuMy0yNS40YzQuNy0yLjcgNy42LTcuNyA3LjYtMTMuMWMwLTguNC02LjgtMTUuMS0xNS4xLTE1LjFIMjIyLjZjLTMuNCAwLTYuNCAyLjEtNy41IDUuM2wtLjQgMS4yYy00LjQgMTIuNS0xOC4yIDE5LTMwLjYgMTQuNnMtMTktMTguMi0xNC42LTMwLjZsLjQtMS4yek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVJhZGlhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNjRhMTkyIDE5MiAwIDEgMSAwIDM4NCAxOTIgMTkyIDAgMSAxIDAtMzg0em0wIDQ0OEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTIwMCAyNTZjMC0yMC43IDExLjMtMzguOCAyOC00OC41bC0zNi02Mi4zYy04LjgtMTUuMy0yOC43LTIwLjgtNDItOWMtMjUuNiAyMi42LTQzLjkgNTMuMy01MC45IDg4LjFDOTUuNyAyNDEuNSAxMTAuMyAyNTYgMTI4IDI1Nmw3MiAwem0yOCA0OC41bC0zNiA2Mi40Yy04LjggMTUuMy0zLjYgMzUuMiAxMy4xIDQwLjhjMTYgNS40IDMzLjEgOC4zIDUwLjkgOC4zczM0LjktMi45IDUwLjktOC4zYzE2LjctNS42IDIxLjktMjUuNSAxMy4xLTQwLjhsLTM2LTYyLjRjLTguMiA0LjgtMTcuOCA3LjUtMjggNy41cy0xOS44LTIuNy0yOC03LjV6TTMxMiAyNTZsNzIgMGMxNy43IDAgMzIuMy0xNC41IDI4LjgtMzEuOGMtNy0zNC44LTI1LjMtNjUuNS01MC45LTg4LjFjLTEzLjItMTEuNy0zMy4xLTYuMy00MiA5bC0zNiA2Mi4zYzE2LjcgOS43IDI4IDI3LjggMjggNDguNXptLTU2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yOTQuNiAxMzUuMWw5OS45IDEwNy4xYzMuNSAzLjggNS41IDguNyA1LjUgMTMuOHMtMiAxMC4xLTUuNSAxMy44TDI5NC42IDM3Ni45Yy00LjIgNC41LTEwLjEgNy4xLTE2LjMgNy4xQzI2NiAzODQgMjU2IDM3NCAyNTYgMzYxLjdsMC01Ny43LTk2IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtMzJjMC0xNy43IDE0LjMtMzIgMzItMzJsOTYgMCAwLTU3LjdjMC0xMi4zIDEwLTIyLjMgMjIuMy0yMi4zYzYuMiAwIDEyLjEgMi42IDE2LjMgNy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGVTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTIgMTYwSDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMlYzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xMzUuMSAyMTcuNGwxMDcuMS05OS45YzMuOC0zLjUgOC43LTUuNSAxMy44LTUuNXMxMC4xIDIgMTMuOCA1LjVsMTA3LjEgOTkuOWM0LjUgNC4yIDcuMSAxMC4xIDcuMSAxNi4zYzAgMTIuMy0xMCAyMi4zLTIyLjMgMjIuM0gzMDR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMjQwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyNTZIMTUwLjNDMTM4IDI1NiAxMjggMjQ2IDEyOCAyMzMuN2MwLTYuMiAyLjYtMTIuMSA3LjEtMTYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2lyY2xlVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTkgMzg0LjJDMzc2LjkgMzQ1LjggMzM1LjQgMzIwIDI4OCAzMjBIMjI0Yy00Ny40IDAtODguOSAyNS44LTExMSA2NC4yYzM1LjIgMzkuMiA4Ni4yIDYzLjggMTQzIDYzLjhzMTA3LjgtMjQuNyAxNDMtNjMuOHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgMTZhNzIgNzIgMCAxIDAgMC0xNDQgNzIgNzIgMCAxIDAgMCAxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNzUgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDMzNmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWOTZIMjI0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0Vjk2SDExMlYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNFM2NCAxMC43IDY0IDI0Vjk2SDQ4QzIxLjUgOTYgMCAxMTcuNSAwIDE0NHY5NlY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMzA0aDMyIDk2SDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OFYyNDBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDgwVjQ4em05NiAzMjB2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDUyOGMtOC44IDAtMTYtNy4yLTE2LTE2VjM2OGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2ek0yNDAgNDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2VjM2OGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNnpNMTI4IDQwMGMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYzNjhjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMnpNNTYwIDI1NmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDUyOGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoMzJ6TTI1NiAxNzZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2ek0xMTIgMTYwYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDMyek0yNTYgMzA0YzAgOC44LTcuMiAxNi0xNiAxNkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNzJjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMnpNMTEyIDMyMEg4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNnptMzA0LTQ4djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNzJjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnpNNDAwIDY0YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZWODBjMC04LjggNy4yLTE2IDE2LTE2aDMyem0xNiAxMTJ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGFwcGVyYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDMySDM2MS45bC0xIDEtMTI3IDEyN2g5Mi4xbDEtMUw0NTMuOCAzMi4zYy0xLjktLjItMy44LS4zLTUuOC0uM3ptNjQgMTI4Vjk2YzAtMTUuMS01LjMtMjkuMS0xNC00MGwtMTA0IDEwNEg1MTJ6TTI5NC4xIDMySDIwMS45bC0xIDFMNzMuOSAxNjBoOTIuMWwxLTEgMTI3LTEyN3pNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NnY2NEg2LjFsMS0xIDEyNy0xMjdINjR6TTUxMiAxOTJIMFY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpcGJvYXJkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgyODIuNUMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0zMDUgMjczTDE3NyA0MDFjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDc5IDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDI3MSAyMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmRMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAwYy00MS44IDAtNzcuNCAyNi43LTkwLjUgNjRINjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjgyLjVDMjY5LjQgMjYuNyAyMzMuOCAwIDE5MiAwem0wIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNzIgMjcyYTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6bTEwNC0xNkgzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek03MiAzNjhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptODggMGMwLTguOCA3LjItMTYgMTYtMTZIMzA0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmRRdWVzdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGMtNDEuOCAwLTc3LjQgMjYuNy05MC41IDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4Mi41QzI2OS40IDI2LjcgMjMzLjggMCAxOTIgMHptMCA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6TTEwNS44IDIyOS4zYzcuOS0yMi4zIDI5LjEtMzcuMyA1Mi44LTM3LjNoNTguM2MzNC45IDAgNjMuMSAyOC4zIDYzLjEgNjMuMWMwIDIyLjYtMTIuMSA0My41LTMxLjcgNTQuOEwyMTYgMzI4LjRjLS4yIDEzLTEwLjkgMjMuNi0yNCAyMy42Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYzMTQuNWMwLTguNiA0LjYtMTYuNSAxMi4xLTIwLjhsNDQuMy0yNS40YzQuNy0yLjcgNy42LTcuNyA3LjYtMTMuMWMwLTguNC02LjgtMTUuMS0xNS4xLTE1LjFIMTU4LjZjLTMuNCAwLTYuNCAyLjEtNy41IDUuM2wtLjQgMS4yYy00LjQgMTIuNS0xOC4yIDE5LTMwLjYgMTQuNnMtMTktMTguMi0xNC42LTMwLjZsLjQtMS4yek0xNjAgNDE2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZFVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgyODIuNUMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xMjggMjU2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNODAgNDMyYzAtNDQuMiAzNS44LTgwIDgwLTgwaDY0YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTQxLjggMC03Ny40IDI2LjctOTAuNSA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgyODIuNUMyNjkuNCAyNi43IDIzMy44IDAgMTkyIDB6bTAgNjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xMTIgMTkySDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb2NrUm90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03NSA3NUw0MSA0MUMyNS45IDI1LjkgMCAzNi42IDAgNTcuOVYxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRIMTM0LjFjMjEuNCAwIDMyLjEtMjUuOSAxNy00MWwtMzAuOC0zMC44QzE1NSA4NS41IDIwMyA2NCAyNTYgNjRjMTA2IDAgMTkyIDg2IDE5MiAxOTJzLTg2IDE5Mi0xOTIgMTkyYy00MC44IDAtNzguNi0xMi43LTEwOS43LTM0LjRjLTE0LjUtMTAuMS0zNC40LTYuNi00NC42IDcuOXMtNi42IDM0LjQgNy45IDQ0LjZDMTUxLjIgNDk1IDIwMS43IDUxMiAyNTYgNTEyYzE0MS40IDAgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMEMxODUuMyAwIDEyMS4zIDI4LjcgNzUgNzV6bTE4MSA1M2MtMTMuMyAwLTI0IDEwLjctMjQgMjRWMjU2YzAgNi40IDIuNSAxMi41IDcgMTdsNzIgNzJjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC02NS02NVYxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYTI1NiAyNTYgMCAxIDEgMCA1MTJBMjU2IDI1NiAwIDEgMSAyNTYgMHpNMjMyIDEyMFYyNTZjMCA4IDQgMTUuNSAxMC43IDIwbDk2IDY0YzExIDcuNCAyNS45IDQuNCAzMy4zLTYuN3M0LjQtMjUuOS02LjctMzMuM0wyODAgMjQzLjJWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNDQ4SDY0VjIyNGg2NFYxNjBINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgyODhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzg0SDI4OHY2NHptLTY0LTk2SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0VjI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvc2VkQ2FwdGlvbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek0yMDAgMjA4YzE0LjIgMCAyNyA2LjEgMzUuOCAxNmM4LjggOS45IDI0IDEwLjcgMzMuOSAxLjlzMTAuNy0yNCAxLjktMzMuOWMtMTcuNS0xOS42LTQzLjEtMzItNzEuNS0zMmMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyOC40IDAgNTQtMTIuNCA3MS41LTMyYzguOC05LjkgOC0yNS0xLjktMzMuOXMtMjUtOC0zMy45IDEuOWMtOC44IDkuOS0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDh6bTE0NCA0OGMwLTI2LjUgMjEuNS00OCA0OC00OGMxNC4yIDAgMjcgNi4xIDM1LjggMTZjOC44IDkuOSAyNCAxMC43IDMzLjkgMS45czEwLjctMjQgMS45LTMzLjljLTE3LjUtMTkuNi00My4xLTMyLTcxLjUtMzJjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMjguNCAwIDU0LTEyLjQgNzEuNS0zMmM4LjgtOS45IDgtMjUtMS45LTMzLjlzLTI1LTgtMzMuOSAxLjljLTguOCA5LjktMjEuNiAxNi0zNS44IDE2Yy0yNi41IDAtNDgtMjEuNS00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDQ4MEM2NC41IDQ4MCAwIDQxNS41IDAgMzM2YzAtNjIuOCA0MC4yLTExNi4yIDk2LjItMTM1LjljLS4xLTIuNy0uMi01LjQtLjItOC4xYzAtODguNCA3MS42LTE2MCAxNjAtMTYwYzU5LjMgMCAxMTEgMzIuMiAxMzguNyA4MC4yQzQwOS45IDEwMiA0MjguMyA5NiA0NDggOTZjNTMgMCA5NiA0MyA5NiA5NmMwIDEyLjItMi4zIDIzLjgtNi40IDM0LjZDNTk2IDIzOC40IDY0MCAyOTAuMSA2NDAgMzUyYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4SDE0NHptNzktMTY3bDgwIDgwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTM5IDM5VjE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFYzMTguMWwtMzktMzljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNDgwQzY0LjUgNDgwIDAgNDE1LjUgMCAzMzZjMC02Mi44IDQwLjItMTE2LjIgOTYuMi0xMzUuOWMtLjEtMi43LS4yLTUuNC0uMi04LjFjMC04OC40IDcxLjYtMTYwIDE2MC0xNjBjNTkuMyAwIDExMSAzMi4yIDEzOC43IDgwLjJDNDA5LjkgMTAyIDQyOC4zIDk2IDQ0OCA5NmM1MyAwIDk2IDQzIDk2IDk2YzAgMTIuMi0yLjMgMjMuOC02LjQgMzQuNkM1OTYgMjM4LjQgNjQwIDI5MC4xIDY0MCAzNTJjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIMTQ0em03OS0yMTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwzOS0zOVYzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyNTcuOWwzOSAzOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTgwLTgwYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDIyNGMwIDUzIDQzIDk2IDk2IDk2aDQ3LjJMMjkwIDIwMi41YzE3LjYtMTQuMSA0Mi42LTE0IDYwLjIgLjJzMjIuOCAzOC42IDEyLjggNTguOEwzMzMuNyAzMjBIMzUyaDY0YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0uNSAwLTEuMSAwLTEuNiAwYzEuMS01LjIgMS42LTEwLjUgMS42LTE2YzAtNDQuMi0zNS44LTgwLTgwLTgwYy0yNC4zIDAtNDYuMSAxMC45LTYwLjggMjhDMjU2LjUgMjQuMyAyMTkuMSAwIDE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjEgLjcgMTQuMSAxLjkgMjAuOEMyNy42IDE0NS40IDAgMTgxLjUgMCAyMjR6bTMzMC4xIDMuNmMtNS44LTQuNy0xNC4yLTQuNy0yMC4xLS4xbC0xNjAgMTI4Yy01LjMgNC4yLTcuNCAxMS40LTUuMSAxNy44czguMyAxMC43IDE1LjEgMTAuN2g3MC4xTDE3Ny43IDQ4OC44Yy0zLjQgNi43LTEuNiAxNC45IDQuMyAxOS42czE0LjIgNC43IDIwLjEgLjFsMTYwLTEyOGM1LjMtNC4yIDcuNC0xMS40IDUuMS0xNy44cy04LjMtMTAuNy0xNS4xLTEwLjdIMjgxLjlsNTIuNC0xMDQuOGMzLjQtNi43IDEuNi0xNC45LTQuMi0xOS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZE1lYXRiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoNDQuN2M5LjUtMjMuNSAzMi41LTQwIDU5LjMtNDBjMiAwIDMuOSAuMSA1LjggLjNDMjE3LjYgMjY1LjUgMjM1LjcgMjU2IDI1NiAyNTZzMzguNCA5LjUgNTAuMiAyNC4zYzEuOS0uMiAzLjktLjMgNS44LS4zYzI2LjkgMCA0OS45IDE2LjUgNTkuMyA0MEg0MTZjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLS41IDAtMS4xIDAtMS42IDBjMS4xLTUuMiAxLjYtMTAuNSAxLjYtMTZjMC00NC4yLTM1LjgtODAtODAtODBjLTI0LjMgMC00Ni4xIDEwLjktNjAuOCAyOEMyNTYuNSAyNC4zIDIxOS4xIDAgMTc2IDBDMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMSAuNyAxNC4xIDEuOSAyMC44QzI3LjYgMTQ1LjQgMCAxODEuNSAwIDIyNHptMjg4IDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyYzAgMSAuMSAyLjEgLjEgMy4xYy0uNy0uOC0xLjQtMS42LTIuMS0yLjNjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zYy43IC43IDEuNSAxLjQgMi4zIDIuMWMtMS0uMS0yLjEtLjEtMy4xLS4xYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyYzEgMCAyLjEtLjEgMy4xLS4xYy0uOCAuNy0xLjYgMS4zLTIuMyAyLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBjLjctLjcgMS40LTEuNSAyLjEtMi4zYy0uMSAxLS4xIDIuMS0uMSAzLjFjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTEtLjEtMi4xLS4xLTMuMWMuNyAuOCAxLjMgMS42IDIuMSAyLjNjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2MtLjctLjctMS41LTEuNC0yLjMtMi4xYzEgLjEgMi4xIC4xIDMuMSAuMWMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMtMSAwLTIuMSAuMS0zLjEgLjFjLjgtLjcgMS42LTEuMyAyLjMtMi4xYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwYy0uNyAuNy0xLjQgMS41LTIuMSAyLjNjLjEtMSAuMS0yLjEgLjEtMy4xek00OCA0NDhhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00MTYgMGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTW9vblJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgxLjIgMEM0MTcgMCAzNjMuNSA0Ni41IDM1My43IDEwNy42YzM1LjQgMTcuNiA2MC4yIDUzLjMgNjIuMSA5NS4xYzIzLjIgMTEgNDIgMjkuNyA1My4xIDUyLjdjNCAuNCA4LjEgLjYgMTIuMyAuNmMzNC45IDAgNjYuNy0xMy44IDg5LjktMzYuMWM1LjEtNC45IDYuNC0xMi41IDMuMi0xOC43cy0xMC4xLTkuNy0xNy04LjZjLTQuOSAuOC0xMCAxLjMtMTUuMiAxLjNjLTQ5IDAtODguNC0zOS4zLTg4LjQtODcuNGMwLTMyLjYgMTgtNjEuMSA0NC45LTc2LjFjNi4xLTMuNCA5LjMtMTAuNSA3LjgtMTcuNHMtNy4zLTEyLTE0LjMtMTIuNmMtMy42LS4zLTcuMy0uNS0xMC45LS41ek0zNjcuOSAzODMuOWM0NC4yIDAgODAtMzUuOCA4MC04MGMwLTM5LjMtMjguNC03Mi4xLTY1LjgtNzguN2MxLjItNS42IDEuOS0xMS4zIDEuOS0xNy4yYzAtNDQuMi0zNS44LTgwLTgwLTgwYy0xNyAwLTMyLjggNS4zLTQ1LjggMTQuNEMyNDEuMyAxMTQuNiAyMTAuOCA5NiAxNzYgOTZjLTUzIDAtOTYgNDMtOTYgOTZsMCAxLjNjLTQ1LjQgNy42LTgwIDQ3LjEtODAgOTQuNmMwIDUzIDQzIDk2IDk2IDk2SDM2Ny45ek04NS40IDQyMC4xYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zem05NiAwYy0xMS03LjQtMjUuOS00LjQtMzMuMyA2LjdsLTMyIDQ4Yy03LjQgMTEtNC40IDI1LjkgNi43IDMzLjNzMjUuOSA0LjQgMzMuMy02LjdsMzItNDhjNy40LTExIDQuNC0yNS45LTYuNy0zMy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZE1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk1LjggMGM1LjUgMCAxMC45IC4yIDE2LjMgLjdjNyAuNiAxMi44IDUuNyAxNC4zIDEyLjVzLTEuNiAxMy45LTcuNyAxNy4zYy00NC40IDI1LjItNzQuNCA3My03NC40IDEyNy44YzAgODEgNjUuNSAxNDYuNiAxNDYuMiAxNDYuNmM4LjYgMCAxNy0uNyAyNS4xLTIuMWM2LjktMS4yIDEzLjggMi4yIDE3IDguNXMxLjkgMTMuOC0zLjEgMTguN2MtMzQuNSAzMy42LTgxLjcgNTQuNC0xMzMuNiA1NC40Yy05LjMgMC0xOC40LS43LTI3LjQtMS45Yy0xMS4yLTIyLjYtMjkuOC00MC45LTUyLjYtNTEuN2MtMi43LTU4LjUtNTAuMy0xMDUuMy0xMDkuMi0xMDYuN2MtMS43LTEwLjQtMi42LTIxLTIuNi0zMS44QzMwNCA4Ni4xIDM4OS44IDAgNDk1LjggMHpNNDQ3LjkgNDMxLjljMCA0NC4yLTM1LjggODAtODAgODBIOTZjLTUzIDAtOTYtNDMtOTYtOTZjMC00Ny42IDM0LjYtODcgODAtOTQuNmwwLTEuM2MwLTUzIDQzLTk2IDk2LTk2YzM0LjkgMCA2NS40IDE4LjYgODIuMiA0Ni40YzEzLTkuMSAyOC44LTE0LjQgNDUuOC0xNC40YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgNS45LS42IDExLjctMS45IDE3LjJjMzcuNCA2LjcgNjUuOCAzOS40IDY1LjggNzguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRSYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMyMGMtNTMgMC05Ni00My05Ni05NmMwLTQyLjUgMjcuNi03OC42IDY1LjktOTEuMkM2NC43IDEyNi4xIDY0IDExOS4xIDY0IDExMkM2NCA1MC4xIDExNC4xIDAgMTc2IDBjNDMuMSAwIDgwLjUgMjQuMyA5OS4yIDYwYzE0LjctMTcuMSAzNi41LTI4IDYwLjgtMjhjNDQuMiAwIDgwIDM1LjggODAgODBjMCA1LjUtLjYgMTAuOC0xLjYgMTZjLjUgMCAxLjEgMCAxLjYgMGM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5Nkg5NnptLTYuOCA1MmMxLjMtMi41IDMuOS00IDYuOC00czUuNCAxLjUgNi44IDRsMzUuMSA2NC42YzQuMSA3LjUgNi4yIDE1LjggNi4yIDI0LjN2M2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OHYtM2MwLTguNSAyLjEtMTYuOSA2LjItMjQuM0w4OS4yIDM3MnptMTYwIDBjMS4zLTIuNSAzLjktNCA2LjgtNHM1LjQgMS41IDYuOCA0bDM1LjEgNjQuNmM0LjEgNy41IDYuMiAxNS44IDYuMiAyNC4zdjNjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDh2LTNjMC04LjUgMi4xLTE2LjkgNi4yLTI0LjNMMjQ5LjIgMzcyem0xMjQuOSA2NC42TDQwOS4yIDM3MmMxLjMtMi41IDMuOS00IDYuOC00czUuNCAxLjUgNi44IDRsMzUuMSA2NC42YzQuMSA3LjUgNi4yIDE1LjggNi4yIDI0LjN2M2MwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OHYtM2MwLTguNSAyLjEtMTYuOSA2LjItMjQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTaG93ZXJzSGVhdnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzIwYy01MyAwLTk2LTQzLTk2LTk2YzAtNDIuNSAyNy42LTc4LjYgNjUuOS05MS4yQzY0LjcgMTI2LjEgNjQgMTE5LjEgNjQgMTEyQzY0IDUwLjEgMTE0LjEgMCAxNzYgMGM0My4xIDAgODAuNSAyNC4zIDk5LjIgNjBjMTQuNy0xNy4xIDM2LjUtMjggNjAuOC0yOGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuNS0uNiAxMC44LTEuNiAxNmMuNSAwIDEuMSAwIDEuNiAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2SDk2ek04MS41IDM1My45YzEyLjIgNS4yIDE3LjggMTkuMyAxMi42IDMxLjVsLTQ4IDExMmMtNS4yIDEyLjItMTkuMyAxNy44LTMxLjUgMTIuNlMtMy4zIDQ5MC43IDEuOSA0NzguNWw0OC0xMTJjNS4yLTEyLjIgMTkuMy0xNy44IDMxLjUtMTIuNnptMTIwIDBjMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42em0yNDQuNiAzMS41bC00OCAxMTJjLTUuMiAxMi4yLTE5LjMgMTcuOC0zMS41IDEyLjZzLTE3LjgtMTkuMy0xMi42LTMxLjVsNDgtMTEyYzUuMi0xMi4yIDE5LjMtMTcuOCAzMS41LTEyLjZzMTcuOCAxOS4zIDEyLjYgMzEuNXpNMzEzLjUgMzUzLjljMTIuMiA1LjIgMTcuOCAxOS4zIDEyLjYgMzEuNWwtNDggMTEyYy01LjIgMTIuMi0xOS4zIDE3LjgtMzEuNSAxMi42cy0xNy44LTE5LjMtMTIuNi0zMS41bDQ4LTExMmM1LjItMTIuMiAxOS4zLTE3LjggMzEuNS0xMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFNob3dlcnNXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMGMzOC42IDAgNzEuOSAyMi44IDg3LjIgNTUuN0MzMjUuNyA0MS4xIDM0NS44IDMyIDM2OCAzMmMzOC43IDAgNzEgMjcuNSA3OC40IDY0SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NEgxMjhjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMC01MyA0My05NiA5Ni05NnpNMTQwLjYgMjkyLjNsLTQ4IDgwYy02LjggMTEuNC0yMS42IDE1LTMyLjkgOC4ycy0xNS4xLTIxLjYtOC4yLTMyLjlsNDgtODBjNi44LTExLjQgMjEuNi0xNS4xIDMyLjktOC4yczE1LjEgMjEuNiA4LjIgMzIuOXptMzI3LjgtMzIuOWMxMS40IDYuOCAxNSAyMS42IDguMiAzMi45bC00OCA4MGMtNi44IDExLjQtMjEuNiAxNS0zMi45IDguMnMtMTUtMjEuNi04LjItMzIuOWw0OC04MGM2LjgtMTEuNCAyMS42LTE1LjEgMzIuOS04LjJ6TTI1Mi42IDI5Mi4zbC00OCA4MGMtNi44IDExLjQtMjEuNiAxNS0zMi45IDguMnMtMTUuMS0yMS42LTguMi0zMi45bDQ4LTgwYzYuOC0xMS40IDIxLjYtMTUuMSAzMi45LTguMnMxNS4xIDIxLjYgOC4yIDMyLjl6bTEwMy44LTMyLjljMTEuNCA2LjggMTUgMjEuNiA4LjIgMzIuOWwtNDggODBjLTYuOCAxMS40LTIxLjYgMTUtMzIuOSA4LjJzLTE1LjEtMjEuNi04LjItMzIuOWw0OC04MGM2LjgtMTEuNCAyMS42LTE1LjEgMzIuOS04LjJ6TTMwNi41IDQyMS45QzMyOSA0MzcuNCAzNTYuNSA0NDggMzg0IDQ0OGMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA1MDEuNyA0MTcgNTEyIDM4NCA1MTJjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyA0MzcuMiAxNjUuMSA0NDggMTkyIDQ0OGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRTdW5SYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5NC4yIDEuMmM1LjEgMi4xIDguNyA2LjcgOS42IDEyLjFsMTAuNCA2Mi40Yy0yMy4zIDEwLjgtNDIuOSAyOC40LTU2IDUwLjNjLTE0LjYtOS0zMS44LTE0LjEtNTAuMi0xNC4xYy01MyAwLTk2IDQzLTk2IDk2YzAgMzUuNSAxOS4zIDY2LjYgNDggODMuMmMuOCAzMS44IDEzLjIgNjAuNyAzMy4xIDgyLjdsLTU2IDM5LjJjLTQuNSAzLjItMTAuMyAzLjgtMTUuNCAxLjZzLTguNy02LjctOS42LTEyLjFMOTguMSAzMTcuOSAxMy40IDMwMy44Yy01LjQtLjktMTAtNC41LTEyLjEtOS42cy0xLjUtMTAuOSAxLjYtMTUuNEw1Mi41IDIwOCAyLjkgMTM3LjJjLTMuMi00LjUtMy44LTEwLjMtMS42LTE1LjRzNi43LTguNyAxMi4xLTkuNkw5OC4xIDk4LjFsMTQuMS04NC43Yy45LTUuNCA0LjUtMTAgOS42LTEyLjFzMTAuOS0xLjUgMTUuNCAxLjZMMjA4IDUyLjUgMjc4LjggMi45YzQuNS0zLjIgMTAuMy0zLjggMTUuNC0xLjZ6TTIwOCAxNDRjMTMuOCAwIDI2LjcgNC40IDM3LjEgMTEuOWMtMS4yIDQuMS0yLjIgOC4zLTMgMTIuNmMtMzcuOSAxNC42LTY3LjIgNDYuNi03Ny44IDg2LjRDMTUxLjggMjQzLjEgMTQ0IDIyNi41IDE0NCAyMDhjMC0zNS4zIDI4LjctNjQgNjQtNjR6bTY5LjQgMjc2YzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6bTk2IDBjMTEgNy40IDE0IDIyLjMgNi43IDMzLjNsLTMyIDQ4Yy03LjQgMTEtMjIuMyAxNC0zMy4zIDYuN3MtMTQtMjIuMy02LjctMzMuM2wzMi00OGM3LjQtMTEgMjIuMy0xNCAzMy4zLTYuN3ptOTYgMGMxMSA3LjQgMTQgMjIuMyA2LjcgMzMuM2wtMzIgNDhjLTcuNCAxMS0yMi4zIDE0LTMzLjMgNi43cy0xNC0yMi4zLTYuNy0zMy4zbDMyLTQ4YzcuNC0xMSAyMi4zLTE0IDMzLjMtNi43em05NiAwYzExIDcuNCAxNCAyMi4zIDYuNyAzMy4zbC0zMiA0OGMtNy40IDExLTIyLjMgMTQtMzMuMyA2LjdzLTE0LTIyLjMtNi43LTMzLjNsMzItNDhjNy40LTExIDIyLjMtMTQgMzMuMy02Ljd6bTc0LjUtMTE2LjFjMCA0NC4yLTM1LjggODAtODAgODBIMjg4Yy01MyAwLTk2LTQzLTk2LTk2YzAtNDcuNiAzNC42LTg3IDgwLTk0LjZsMC0xLjNjMC01MyA0My05NiA5Ni05NmMzNC45IDAgNjUuNCAxOC42IDgyLjIgNDYuNGMxMy05LjEgMjguOC0xNC40IDQ1LjgtMTQuNGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDUuOS0uNiAxMS43LTEuOSAxNy4yYzM3LjQgNi43IDY1LjggMzkuNCA2NS44IDc4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5NC4yIDEuMmM1LjEgMi4xIDguNyA2LjcgOS42IDEyLjFsMTQuMSA4NC43IDg0LjcgMTQuMWM1LjQgLjkgMTAgNC41IDEyLjEgOS42czEuNSAxMC45LTEuNiAxNS40bC0zOC41IDU1Yy0yLjItLjEtNC40LS4yLTYuNy0uMmMtMjMuMyAwLTQ1LjEgNi4yLTY0IDE3LjFsMC0xLjFjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjOC4xIDAgMTUuOS0xIDIzLjQtMi45Yy0zNi42IDE4LjEtNjMuMyA1My4xLTY5LjggOTQuOWwtMjQuNCAxN2MtNC41IDMuMS0xMC4zIDMuOC0xNS40IDEuNnMtOC43LTYuNy05LjYtMTIuMUw5OC4xIDMxNy45IDEzLjQgMzAzLjhjLTUuNC0uOS0xMC00LjUtMTIuMS05LjZzLTEuNS0xMC45IDEuNi0xNS40TDUyLjUgMjA4IDIuOSAxMzcuMmMtMy4yLTQuNS0zLjgtMTAuMy0xLjYtMTUuNHM2LjctOC43IDEyLjEtOS42TDk4LjEgOTguMWwxNC4xLTg0LjdjLjktNS40IDQuNS0xMCA5LjYtMTIuMXMxMC45LTEuNSAxNS40IDEuNkwyMDggNTIuNSAyNzguOCAyLjljNC41LTMuMiAxMC4zLTMuOCAxNS40LTEuNnpNMTQ0IDIwOGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTYzOS45IDQzMS45YzAgNDQuMi0zNS44IDgwLTgwIDgwSDI4OGMtNTMgMC05Ni00My05Ni05NmMwLTQ3LjYgMzQuNi04NyA4MC05NC42bDAtMS4zYzAtNTMgNDMtOTYgOTYtOTZjMzQuOSAwIDY1LjQgMTguNiA4Mi4yIDQ2LjRjMTMtOS4xIDI4LjgtMTQuNCA0NS44LTE0LjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA1LjktLjYgMTEuNy0xLjkgMTcuMmMzNy40IDYuNyA2NS44IDM5LjQgNjUuOCA3OC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NEg1MTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC02MS45LTQ0LTExMy42LTEwMi40LTEyNS40YzQuMS0xMC43IDYuNC0yMi40IDYuNC0zNC42YzAtNTMtNDMtOTYtOTYtOTZjLTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMkMxNjcuNiAzMiA5NiAxMDMuNiA5NiAxOTJjMCAyLjcgLjEgNS40IC4yIDguMUM0MC4yIDIxOS44IDAgMjczLjIgMCAzMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYuNiA0OS45QzIwNS4xIDM4LjUgMTg5LjUgMzIgMTczLjMgMzJDMTM5LjQgMzIgMTEyIDU5LjQgMTEyIDkzLjN2NC45YzAgMTIgMy4zIDIzLjcgOS40IDM0bDE4LjggMzEuM2MxLjEgMS44IDEuMiAzLjEgMSA0LjJjLS4yIDEuMi0uOCAyLjUtMiAzLjZzLTIuNCAxLjgtMy42IDJjLTEgLjItMi40IC4xLTQuMi0xbC0zMS4zLTE4LjhjLTEwLjMtNi4yLTIyLTkuNC0zNC05LjRINjEuM0MyNy40IDE0NCAwIDE3MS40IDAgMjA1LjNjMCAxNi4yIDYuNSAzMS44IDE3LjkgNDMuM2wxLjIgMS4yYzMuNCAzLjQgMy40IDkgMCAxMi40bC0xLjIgMS4yQzYuNSAyNzQuOSAwIDI5MC41IDAgMzA2LjdDMCAzNDAuNiAyNy40IDM2OCA2MS4zIDM2OGg0LjljMTIgMCAyMy43LTMuMyAzNC05LjRsMzEuMy0xOC44YzEuOC0xLjEgMy4xLTEuMiA0LjItMWMxLjIgLjIgMi41IC44IDMuNiAyczEuOCAyLjQgMiAzLjZjLjIgMSAuMSAyLjQtMSA0LjJsLTE4LjggMzEuM2MtNi4yIDEwLjMtOS40IDIyLTkuNCAzNHY0LjljMCAzMy44IDI3LjQgNjEuMyA2MS4zIDYxLjNjMTYuMiAwIDMxLjgtNi41IDQzLjMtMTcuOWwxLjItMS4yYzMuNC0zLjQgOS0zLjQgMTIuNCAwbDEuMiAxLjJjMTEuNSAxMS41IDI3LjEgMTcuOSA0My4zIDE3LjljMzMuOCAwIDYxLjMtMjcuNCA2MS4zLTYxLjN2LTQuOWMwLTEyLTMuMy0yMy43LTkuNC0zNGwtMTguOC0zMS4zYy0xLjEtMS44LTEuMi0zLjEtMS00LjJjLjItMS4yIC44LTIuNSAyLTMuNnMyLjQtMS44IDMuNi0yYzEtLjIgMi40LS4xIDQuMiAxbDMxLjMgMTguOGMxMC4zIDYuMiAyMiA5LjQgMzQgOS40aDQuOWMzMy44IDAgNjEuMy0yNy40IDYxLjMtNjEuM2MwLTE2LjItNi41LTMxLjgtMTcuOS00My4zbC0xLjItMS4yYy0zLjQtMy40LTMuNC05IDAtMTIuNGwxLjItMS4yYzExLjUtMTEuNSAxNy45LTI3LjEgMTcuOS00My4zYzAtMzMuOC0yNy40LTYxLjMtNjEuMy02MS4zaC00LjljLTEyIDAtMjMuNyAzLjMtMzQgOS40bC0zMS4zIDE4LjhjLTEuOCAxLjEtMy4xIDEuMi00LjIgMWMtMS4yLS4yLTIuNS0uOC0zLjYtMnMtMS44LTIuNC0yLTMuNmMtLjItMS0uMS0yLjQgMS00LjJsMTguOC0zMS4zYzYuMi0xMC4zIDkuNC0yMiA5LjQtMzRWOTMuM0MzMzYgNTkuNCAzMDguNiAzMiAyNzQuNyAzMmMtMTYuMiAwLTMxLjggNi41LTQzLjMgMTcuOWwtMS4yIDEuMmMtMy40IDMuNC05IDMuNC0xMi40IDBsLTEuMi0xLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVCcmFuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTA0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptODAtMjRjMCAzMi44LTE5LjcgNjEtNDggNzMuM3Y4Ny44YzE4LjgtMTAuOSA0MC43LTE3LjEgNjQtMTcuMWg5NmMzNS4zIDAgNjQtMjguNyA2NC02NHYtNi43QzMwNy43IDE0MSAyODggMTEyLjggMjg4IDgwYzAtNDQuMiAzNS44LTgwIDgwLTgwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM1YxNjBjMCA3MC43LTU3LjMgMTI4LTEyOCAxMjhIMTc2Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY2LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zVjM1MiAxNTMuM0MxOS43IDE0MSAwIDExMi44IDAgODBDMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODB6bTIzMiAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTgwIDQ1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVDb21taXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMzNmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMTU2LjgtNDhDNDYyIDM2MSAzOTcuNCA0MTYgMzIwIDQxNnMtMTQyLTU1LTE1Ni44LTEyOEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgxNjMuMkMxNzggMTUxIDI0Mi42IDk2IDMyMCA5NnMxNDIgNTUgMTU2LjggMTI4SDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0NzYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZUNvbXBhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ4OGMwIDkuNS01LjYgMTguMS0xNC4yIDIxLjlzLTE4LjggMi4zLTI1LjgtNC4xbC04MC03MmMtNS4xLTQuNi03LjktMTEtNy45LTE3LjhzMi45LTEzLjMgNy45LTE3LjhsODAtNzJjNy02LjMgMTcuMi03LjkgMjUuOC00LjFzMTQuMiAxMi40IDE0LjIgMjEuOXY0MGgxNmMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTMuM0MzNzEuNyAxNDEgMzUyIDExMi44IDM1MiA4MGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNWMzIwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4SDMyMHY0MHpNNDU2IDgwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE5MiAyNGMwLTkuNSA1LjYtMTguMSAxNC4yLTIxLjlzMTguOC0yLjMgMjUuOCA0LjFsODAgNzJjNS4xIDQuNiA3LjkgMTEgNy45IDE3LjhzLTIuOSAxMy4zLTcuOSAxNy44bC04MCA3MmMtNyA2LjMtMTcuMiA3LjktMjUuOCA0LjFzLTE0LjItMTIuNC0xNC4yLTIxLjlWMTI4SDE3NmMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMzU4LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zVjE5MmMwLTcwLjcgNTcuMy0xMjggMTI4LTEyOGgxNlYyNHpNNTYgNDMyYTI0IDI0IDAgMSAwIDQ4IDAgMjQgMjQgMCAxIDAgLTQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVGb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTgwLTI0YzAgMzIuOC0xOS43IDYxLTQ4IDczLjNWMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDMwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNTMuM0MzMDcuNyAxNDEgMjg4IDExMi44IDI4OCA4MGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwYzAgMzIuOC0xOS43IDYxLTQ4IDczLjNWMTkyYzAgNTMtNDMgOTYtOTYgOTZIMjU2djcwLjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zVjI4OEgxNDRjLTUzIDAtOTYtNDMtOTYtOTZWMTUzLjNDMTkuNyAxNDEgMCAxMTIuOCAwIDgwQzAgMzUuOCAzNS44IDAgODAgMHM4MCAzNS44IDgwIDgwem0yMDggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0yNDggNDMyYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVNZXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA1NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTMyLjQgOTcuMmMyOC0xMi40IDQ3LjYtNDAuNSA0Ny42LTczLjJjMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzMi44IDE5LjcgNjEgNDggNzMuM1YzNTguN0MxOS43IDM3MSAwIDM5OS4yIDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zMi44LTE5LjctNjEtNDgtNzMuM1YyNzJjMjYuNyAyMC4xIDYwIDMyIDk2IDMyaDg2LjdjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MGMtMzIuOCAwLTYxIDE5LjctNzMuMyA0OEgyMDhjLTQ5LjkgMC05MS0zOC4xLTk1LjYtODYuOHpNODAgNDA4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMzQ0IDI3MmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlUHVsbFJlcXVlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA1LjggMi4xQzMxNC40IDUuOSAzMjAgMTQuNSAzMjAgMjRWNjRoMTZjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhWMzU4LjdjMjguMyAxMi4zIDQ4IDQwLjUgNDggNzMuM2MwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTMyLjggMTkuNy02MSA0OC03My4zVjE5MmMwLTM1LjMtMjguNy02NC02NC02NEgzMjB2NDBjMCA5LjUtNS42IDE4LjEtMTQuMiAyMS45cy0xOC44IDIuMy0yNS44LTQuMWwtODAtNzJjLTUuMS00LjYtNy45LTExLTcuOS0xNy44czIuOS0xMy4zIDcuOS0xNy44bDgwLTcyYzctNi4zIDE3LjItNy45IDI1LjgtNC4xek0xMDQgODBBMjQgMjQgMCAxIDAgNTYgODBhMjQgMjQgMCAxIDAgNDggMHptOCA3My4zVjM1OC43YzI4LjMgMTIuMyA0OCA0MC41IDQ4IDczLjNjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBjMC0zMi44IDE5LjctNjEgNDgtNzMuM1YxNTMuM0MxOS43IDE0MSAwIDExMi44IDAgODBDMCAzNS44IDM1LjggMCA4MCAwczgwIDM1LjggODAgODBjMCAzMi44LTE5LjcgNjEtNDggNzMuM3pNMTA0IDQzMmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem0zMjggMjRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Mi44IDEuMmMtMTctNC45LTM0LjcgNS0zOS42IDIybC0xMjggNDQ4Yy00LjkgMTcgNSAzNC43IDIyIDM5LjZzMzQuNy01IDM5LjYtMjJsMTI4LTQ0OGM0LjktMTctNS0zNC43LTIyLTM5LjZ6bTgwLjYgMTIwLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zTDU2Mi43IDI1NmwtODkuNCA4OS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDExMi0xMTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTExMi0xMTJjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tMzA2LjcgMGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDExMiAxMTJjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w3Ny4zIDI1Nmw4OS40LTg5LjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvaW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA4MGMwIDE4LTE0LjMgMzQuNi0zOC40IDQ4Yy0yOS4xIDE2LjEtNzIuNSAyNy41LTEyMi4zIDMwLjljLTMuNy0xLjgtNy40LTMuNS0xMS4zLTVDMzAwLjYgMTM3LjQgMjQ4LjIgMTI4IDE5MiAxMjhjLTguMyAwLTE2LjQgLjItMjQuNSAuNmwtMS4xLS42QzE0Mi4zIDExNC42IDEyOCA5OCAxMjggODBjMC00NC4yIDg2LTgwIDE5Mi04MFM1MTIgMzUuOCA1MTIgODB6TTE2MC43IDE2MS4xYzEwLjItLjcgMjAuNy0xLjEgMzEuMy0xLjFjNjIuMiAwIDExNy40IDEyLjMgMTUyLjUgMzEuNEMzNjkuMyAyMDQuOSAzODQgMjIxLjcgMzg0IDI0MGMwIDQtLjcgNy45LTIuMSAxMS43Yy00LjYgMTMuMi0xNyAyNS4zLTM1IDM1LjVjMCAwIDAgMCAwIDBjLS4xIC4xLS4zIC4xLS40IC4ybDAgMCAwIDBjLS4zIC4yLS42IC4zLS45IC41Yy0zNSAxOS40LTkwLjggMzItMTUzLjYgMzJjLTU5LjYgMC0xMTIuOS0xMS4zLTE0OC4yLTI5LjFjLTEuOS0uOS0zLjctMS45LTUuNS0yLjlDMTQuMyAyNzQuNiAwIDI1OCAwIDI0MGMwLTM0LjggNTMuNC02NC41IDEyOC03NS40YzEwLjUtMS41IDIxLjQtMi43IDMyLjctMy41ek00MTYgMjQwYzAtMjEuOS0xMC42LTM5LjktMjQuMS01My40YzI4LjMtNC40IDU0LjItMTEuNCA3Ni4yLTIwLjVjMTYuMy02LjggMzEuNS0xNS4yIDQzLjktMjUuNVYxNzZjMCAxOS4zLTE2LjUgMzcuMS00My44IDUwLjljLTE0LjYgNy40LTMyLjQgMTMuNy01Mi40IDE4LjVjLjEtMS44IC4yLTMuNSAuMi01LjN6bS0zMiA5NmMwIDE4LTE0LjMgMzQuNi0zOC40IDQ4Yy0xLjggMS0zLjYgMS45LTUuNSAyLjlDMzA0LjkgNDA0LjcgMjUxLjYgNDE2IDE5MiA0MTZjLTYyLjggMC0xMTguNi0xMi42LTE1My42LTMyQzE0LjMgMzcwLjYgMCAzNTQgMCAzMzZWMzAwLjZjMTIuNSAxMC4zIDI3LjYgMTguNyA0My45IDI1LjVDODMuNCAzNDIuNiAxMzUuOCAzNTIgMTkyIDM1MnMxMDguNi05LjQgMTQ4LjEtMjUuOWM3LjgtMy4yIDE1LjMtNi45IDIyLjQtMTAuOWM2LjEtMy40IDExLjgtNy4yIDE3LjItMTEuMmMxLjUtMS4xIDIuOS0yLjMgNC4zLTMuNFYzMDR2NS43VjMzNnptMzIgMFYzMDQgMjc4LjFjMTktNC4yIDM2LjUtOS41IDUyLjEtMTZjMTYuMy02LjggMzEuNS0xNS4yIDQzLjktMjUuNVYyNzJjMCAxMC41LTUgMjEtMTQuOSAzMC45Yy0xNi4zIDE2LjMtNDUgMjkuNy04MS4zIDM4LjRjLjEtMS43IC4yLTMuNSAuMi01LjN6TTE5MiA0NDhjNTYuMiAwIDEwOC42LTkuNCAxNDguMS0yNS45YzE2LjMtNi44IDMxLjUtMTUuMiA0My45LTI1LjVWNDMyYzAgNDQuMi04NiA4MC0xOTIgODBTMCA0NzYuMiAwIDQzMlYzOTYuNmMxMi41IDEwLjMgMjcuNiAxOC43IDQzLjkgMjUuNUM4My40IDQzOC42IDEzNS44IDQ0OCAxOTIgNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2xvblNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzE5Ny4yIDcuMSAxOTMgMjQuMkwxODEuOSA2OC42Qzk2LjEgODcuOCAzMiAxNjQuNCAzMiAyNTZjMCA1OC4xIDI1LjggMTEwLjIgNjYuNyAxNDUuNEw4MSA0NzIuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMy01Mi4xYzkgMy40IDE4LjQgNi4yIDI4IDguMkwxNzcgNDcyLjJjLTQuMyAxNy4xIDYuMSAzNC41IDIzLjMgMzguOHMzNC41LTYuMSAzOC44LTIzLjNsMTAuNC00MS40YzMzLjQtNC40IDY0LjEtMTcuNCA4OS44LTM2LjdjMTQuMS0xMC42IDE3LTMwLjcgNi40LTQ0LjhzLTMwLjctMTctNDQuOC02LjRjLTEwLjIgNy43LTIxLjcgMTMuOS0zNCAxOC4zTDMyMSAxNjBjOS40LS4zIDE4LjUtNC43IDI0LjYtMTIuOGMxMC42LTE0LjEgNy44LTM0LjItNi40LTQ0LjhjLTEuMS0uOC0yLjItMS42LTMuMy0yLjRMMzUxIDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzI5My4yIDcuMSAyODkgMjQuMkwyNzcuMiA3MS41Yy05LjMtMi43LTE4LjgtNC42LTI4LjYtNS45TDI1NSAzOS44ek0xNjMuMiAxNDMuM0wxMTcuMyAzMjYuOEMxMDMuOSAzMDYuNSA5NiAyODIuMiA5NiAyNTZjMC00OC43IDI3LjItOTEgNjcuMi0xMTIuN3ptOC42IDIyOS41bDYxLjEtMjQ0LjZjOS45IC43IDE5LjUgMi41IDI4LjcgNS4zbC02MiAyNDguMWMtOS43LTEuOS0xOS00LjgtMjcuOC04Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnREb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuMyAwIDAgMCAwIDAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45em0yMC0zMTJ2MTMuOWM3LjUgMS4yIDE0LjYgMi45IDIxLjEgNC43YzEwLjcgMi44IDE3IDEzLjggMTQuMiAyNC41cy0xMy44IDE3LTI0LjUgMTQuMmMtMTEtMi45LTIxLjYtNS0zMS4yLTUuMmMtNy45LS4xLTE2IDEuOC0yMS41IDVjLTQuOCAyLjgtNi4yIDUuNi02LjIgOS4zYzAgMS44IC4xIDMuNSA1LjMgNi43YzYuMyAzLjggMTUuNSA2LjcgMjguMyAxMC41bC43IC4yYzExLjIgMy40IDI1LjYgNy43IDM3LjEgMTVjMTIuOSA4LjEgMjQuMyAyMS4zIDI0LjYgNDEuNmMuMyAyMC45LTEwLjUgMzYuMS0yNC44IDQ1Yy03LjIgNC41LTE1LjIgNy4zLTIzLjIgOVYzNDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwVjMyOS40Yy0xMC4zLTIuMi0yMC01LjUtMjguMi04LjRsMCAwIDAgMGMtMi4xLS43LTQuMS0xLjQtNi4xLTIuMWMtMTAuNS0zLjUtMTYuMS0xNC44LTEyLjYtMjUuM3MxNC44LTE2LjEgMjUuMy0xMi42YzIuNSAuOCA0LjkgMS43IDcuMiAyLjRjMTMuNiA0LjYgMjQgOC4xIDM1LjEgOC41YzguNiAuMyAxNi41LTEuNiAyMS40LTQuN2M0LjEtMi41IDYtNS41IDUuOS0xMC41YzAtMi45LS44LTUtNS45LTguMmMtNi4zLTQtMTUuNC02LjktMjgtMTAuN2wtMS43LS41Yy0xMC45LTMuMy0yNC42LTcuNC0zNS42LTE0Yy0xMi43LTcuNy0yNC42LTIwLjUtMjQuNy00MC43Yy0uMS0yMS4xIDExLjgtMzUuNyAyNS44LTQzLjljNi45LTQuMSAxNC41LTYuOCAyMi4yLTguNVYxMzZjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOWMtNS41IDkuMi0xMS4xIDE2LjYtMTUuMiAyMS42Yy0yLjEgMi41LTMuNyA0LjQtNC45IDUuN2MtLjYgLjYtMSAxLjEtMS4zIDEuNGwtLjMgLjMgMCAwIDAgMCAwIDAgMCAwYy00LjYgNC42LTUuOSAxMS40LTMuNCAxNy40YzIuNSA2IDguMyA5LjkgMTQuOCA5LjljMjguNyAwIDU3LjYtOC45IDgxLjYtMTkuM2MyMi45LTEwIDQyLjQtMjEuOSA1NC4zLTMwLjZjMzEuOCAxMS41IDY3IDE3LjkgMTA0LjEgMTcuOXpNMTI4IDIwOGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyUzAgMTI1LjEgMCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuMyAwIDAgMCAwIDAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45ek0yMjQgMTYwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgyODh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDI0MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYyMjRjMC04LjggNy4yLTE2IDE2LTE2aDQ4VjE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTEyLjkgMzc2LjdDNTUyLjIgMzQwLjIgNTc2IDI5Mi4zIDU3NiAyNDBDNTc2IDEyNS4xIDQ2MS40IDMyIDMyMCAzMmMtNjcuNyAwLTEyOS4zIDIxLjQtMTc1LjEgNTYuM0wzOC44IDUuMXptMzg1LjIgNDI1TDgyLjkgMTYxLjNDNzAuNyAxODUuNiA2NCAyMTIuMiA2NCAyNDBjMCA0NS4xIDE3LjcgODYuOCA0Ny43IDEyMC45Yy0xLjkgMjQuNS0xMS40IDQ2LjMtMjEuNCA2Mi45Yy01LjUgOS4yLTExLjEgMTYuNi0xNS4yIDIxLjZjLTIuMSAyLjUtMy43IDQuNC00LjkgNS43Yy0uNiAuNi0xIDEuMS0xLjMgMS40bC0uMyAuMyAwIDAgMCAwIDAgMCAwIDBjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWMyOC43IDAgNTcuNi04LjkgODEuNi0xOS4zYzIyLjktMTAgNDIuNC0yMS45IDU0LjMtMzAuNmMzMS44IDExLjUgNjcgMTcuOSAxMDQuMSAxNy45YzM3IDAgNzIuMy02LjQgMTA0LjEtMTcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudFNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDQ4YzE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJTMCAxMjUuMSAwIDI0MGMwIDQ1LjEgMTcuNyA4Ni44IDQ3LjcgMTIwLjljLTEuOSAyNC41LTExLjQgNDYuMy0yMS40IDYyLjljLTUuNSA5LjItMTEuMSAxNi42LTE1LjIgMjEuNmMtMi4xIDIuNS0zLjcgNC40LTQuOSA1LjdjLS42IC42LTEgMS4xLTEuMyAxLjRsLS4zIC4zIDAgMCAwIDAgMCAwIDAgMGMtNC42IDQuNi01LjkgMTEuNC0zLjQgMTcuNGMyLjUgNiA4LjMgOS45IDE0LjggOS45YzI4LjcgMCA1Ny42LTguOSA4MS42LTE5LjNjMjIuOS0xMCA0Mi40LTIxLjkgNTQuMy0zMC42YzMxLjggMTEuNSA2NyAxNy45IDEwNC4xIDE3Ljl6TTk2IDIxMi44YzAtMjAuMyAxNi41LTM2LjggMzYuOC0zNi44SDE1MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMzIuOGMtMi43IDAtNC44IDIuMi00LjggNC44YzAgMS42IC44IDMuMSAyLjIgNGwyOS40IDE5LjZjMTAuMyA2LjggMTYuNCAxOC4zIDE2LjQgMzAuN2MwIDIwLjMtMTYuNSAzNi44LTM2LjggMzYuOEgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMjcuMmMyLjcgMCA0LjgtMi4yIDQuOC00LjhjMC0xLjYtLjgtMy4xLTIuMi00bC0yOS40LTE5LjZDMTAyLjIgMjM2LjcgOTYgMjI1LjIgOTYgMjEyLjh6TTM3Mi44IDE3NkgzOTJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzcyLjhjLTIuNyAwLTQuOCAyLjItNC44IDQuOGMwIDEuNiAuOCAzLjEgMi4yIDRsMjkuNCAxOS42YzEwLjIgNi44IDE2LjQgMTguMyAxNi40IDMwLjdjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhIMzUyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDI3LjJjMi43IDAgNC44LTIuMiA0LjgtNC44YzAtMS42LS44LTMuMS0yLjItNGwtMjkuNC0xOS42Yy0xMC4yLTYuOC0xNi40LTE4LjMtMTYuNC0zMC43YzAtMjAuMyAxNi41LTM2LjggMzYuOC0zNi44em0tMTUyIDYuNEwyNTYgMjI5LjNsMzUuMi00Ni45YzQuMS01LjUgMTEuMy03LjggMTcuOS01LjZzMTAuOSA4LjMgMTAuOSAxNS4ydjk2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI0MGwtMTkuMiAyNS42Yy0zIDQtNy44IDYuNC0xMi44IDYuNHMtOS44LTIuNC0xMi44LTYuNEwyMjQgMjQwdjQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE5MmMwLTYuOSA0LjQtMTMgMTAuOS0xNS4yczEzLjcgLjEgMTcuOSA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDI0MGMwIDExNC45LTExNC42IDIwOC0yNTYgMjA4Yy0zNy4xIDAtNzIuMy02LjQtMTA0LjEtMTcuOWMtMTEuOSA4LjctMzEuMyAyMC42LTU0LjMgMzAuNkM3My42IDQ3MS4xIDQ0LjcgNDgwIDE2IDQ4MGMtNi41IDAtMTIuMy0zLjktMTQuOC05LjljLTIuNS02LTEuMS0xMi44IDMuNC0xNy40bDAgMCAwIDAgMCAwIDAgMCAuMy0uM2MuMy0uMyAuNy0uNyAxLjMtMS40YzEuMS0xLjIgMi44LTMuMSA0LjktNS43YzQuMS01IDkuNi0xMi40IDE1LjItMjEuNmMxMC0xNi42IDE5LjUtMzguNCAyMS40LTYyLjlDMTcuNyAzMjYuOCAwIDI4NS4xIDAgMjQwQzAgMTI1LjEgMTE0LjYgMzIgMjU2IDMyczI1NiA5My4xIDI1NiAyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRzRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAxNzZjMCA5Ny4yLTkzLjEgMTc2LTIwOCAxNzZjLTM4LjIgMC03My45LTguNy0xMDQuNy0yMy45Yy03LjUgNC0xNiA3LjktMjUuMiAxMS40QzU5LjggMzQ2LjQgMzcuOCAzNTIgMTYgMzUyYy02LjkgMC0xMy4xLTQuNS0xNS4yLTExLjFzLjItMTMuOCA1LjgtMTcuOWwwIDAgMCAwIC4yLS4yYy4yLS4yIC42LS40IDEuMS0uOGMxLS44IDIuNS0yIDQuMy0zLjdjMy42LTMuMyA4LjUtOC4xIDEzLjMtMTQuM2M1LjUtNyAxMC43LTE1LjQgMTQuMi0yNC43QzE0LjcgMjUwLjMgMCAyMTQuNiAwIDE3NkMwIDc4LjggOTMuMSAwIDIwOCAwUzQxNiA3OC44IDQxNiAxNzZ6TTIzMS41IDM4M0MzNDguOSAzNzIuOSA0NDggMjg4LjMgNDQ4IDE3NmMwLTUuMi0uMi0xMC40LS42LTE1LjVDNTU1LjEgMTY3LjEgNjQwIDI0My4yIDY0MCAzMzZjMCAzOC42LTE0LjcgNzQuMy0zOS42IDEwMy40YzMuNSA5LjQgOC43IDE3LjcgMTQuMiAyNC43YzQuOCA2LjIgOS43IDExIDEzLjMgMTQuM2MxLjggMS42IDMuMyAyLjkgNC4zIDMuN2MuNSAuNCAuOSAuNyAxLjEgLjhsLjIgLjIgMCAwIDAgMGM1LjYgNC4xIDcuOSAxMS4zIDUuOCAxNy45Yy0yLjEgNi42LTguMyAxMS4xLTE1LjIgMTEuMWMtMjEuOCAwLTQzLjgtNS42LTYyLjEtMTIuNWMtOS4yLTMuNS0xNy44LTcuNC0yNS4yLTExLjRDNTA1LjkgNTAzLjMgNDcwLjIgNTEyIDQzMiA1MTJjLTk1LjYgMC0xNzYuMi01NC42LTIwMC41LTEyOXpNMjI4IDcyYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMFY4NmMtNy42IDEuNy0xNS4yIDQuNC0yMi4yIDguNWMtMTMuOSA4LjMtMjUuOSAyMi44LTI1LjggNDMuOWMuMSAyMC4zIDEyIDMzLjEgMjQuNyA0MC43YzExIDYuNiAyNC43IDEwLjggMzUuNiAxNGwxLjcgLjVjMTIuNiAzLjggMjEuOCA2LjggMjggMTAuN2M1LjEgMy4yIDUuOCA1LjQgNS45IDguMmMuMSA1LTEuOCA4LTUuOSAxMC41Yy01IDMuMS0xMi45IDUtMjEuNCA0LjdjLTExLjEtLjQtMjEuNS0zLjktMzUuMS04LjVjLTIuMy0uOC00LjctMS42LTcuMi0yLjRjLTEwLjUtMy41LTIxLjggMi4yLTI1LjMgMTIuNnMyLjIgMjEuOCAxMi42IDI1LjNjMS45IC42IDQgMS4zIDYuMSAyLjFsMCAwIDAgMGM4LjMgMi45IDE3LjkgNi4yIDI4LjIgOC40VjI4MGMwIDExIDkgMjAgMjAgMjBzMjAtOSAyMC0yMFYyNjYuMmM4LTEuNyAxNi00LjUgMjMuMi05YzE0LjMtOC45IDI1LjEtMjQuMSAyNC44LTQ1Yy0uMy0yMC4zLTExLjctMzMuNC0yNC42LTQxLjZjLTExLjUtNy4yLTI1LjktMTEuNi0zNy4xLTE1bC0uNy0uMmMtMTIuOC0zLjktMjEuOS02LjctMjguMy0xMC41Yy01LjItMy4xLTUuMy00LjktNS4zLTYuN2MwLTMuNyAxLjQtNi41IDYuMi05LjNjNS40LTMuMiAxMy42LTUuMSAyMS41LTVjOS42IC4xIDIwLjIgMi4yIDMxLjIgNS4yYzEwLjcgMi44IDIxLjYtMy41IDI0LjUtMTQuMnMtMy41LTIxLjYtMTQuMi0yNC41Yy02LjUtMS43LTEzLjctMy40LTIxLjEtNC43VjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMzUyYzExNC45IDAgMjA4LTc4LjggMjA4LTE3NlMzMjIuOSAwIDIwOCAwUzAgNzguOCAwIDE3NmMwIDM4LjYgMTQuNyA3NC4zIDM5LjYgMTAzLjRjLTMuNSA5LjQtOC43IDE3LjctMTQuMiAyNC43Yy00LjggNi4yLTkuNyAxMS0xMy4zIDE0LjNjLTEuOCAxLjYtMy4zIDIuOS00LjMgMy43Yy0uNSAuNC0uOSAuNy0xLjEgLjhsLS4yIC4yIDAgMCAwIDBDMSAzMjcuMi0xLjQgMzM0LjQgLjggMzQwLjlTOS4xIDM1MiAxNiAzNTJjMjEuOCAwIDQzLjgtNS42IDYyLjEtMTIuNWM5LjItMy41IDE3LjgtNy40IDI1LjMtMTEuNEMxMzQuMSAzNDMuMyAxNjkuOCAzNTIgMjA4IDM1MnpNNDQ4IDE3NmMwIDExMi4zLTk5LjEgMTk2LjktMjE2LjUgMjA3QzI1NS44IDQ1Ny40IDMzNi40IDUxMiA0MzIgNTEyYzM4LjIgMCA3My45LTguNyAxMDQuNy0yMy45YzcuNSA0IDE2IDcuOSAyNS4yIDExLjRjMTguMyA2LjkgNDAuMyAxMi41IDYyLjEgMTIuNWM2LjkgMCAxMy4xLTQuNSAxNS4yLTExLjFjMi4xLTYuNi0uMi0xMy44LTUuOC0xNy45bDAgMCAwIDAtLjItLjJjLS4yLS4yLS42LS40LTEuMS0uOGMtMS0uOC0yLjUtMi00LjMtMy43Yy0zLjYtMy4zLTguNS04LjEtMTMuMy0xNC4zYy01LjUtNy0xMC43LTE1LjQtMTQuMi0yNC43YzI0LjktMjkgMzkuNi02NC43IDM5LjYtMTAzLjRjMC05Mi44LTg0LjktMTY4LjktMTkyLjYtMTc1LjVjLjQgNS4xIC42IDEwLjMgLjYgMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcGFjdERpc2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgMzJhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em0tOTYtMzJhOTYgOTYgMCAxIDAgMTkyIDAgOTYgOTYgMCAxIDAgLTE5MiAwek05NiAyNDBjMC0zNSAxNy41LTcxLjEgNDUuMi05OC44UzIwNSA5NiAyNDAgOTZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTQ1LjQgMC04OS4yIDIyLjMtMTIxLjUgNTQuNVM2NCAxOTQuNiA2NCAyNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcGFzc0RyYWZ0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA5NmMwIDE0LjMtMy4xIDI3LjktOC44IDQwLjJMMzk2IDIyNy40Yy0yMy43IDI1LjMtNTQuMiA0NC4xLTg4LjUgNTMuNkwyNTYgMTkyaDAgMGwtNjggMTE3LjVjMjEuNSA2LjggNDQuMyAxMC41IDY4LjEgMTAuNWM3MC43IDAgMTMzLjgtMzIuNyAxNzQuOS04NGMxMS4xLTEzLjggMzEuMi0xNiA0NS01czE2IDMxLjIgNSA0NUM0MjguMSAzNDEuOCAzNDcgMzg0IDI1NiAzODRjLTM1LjQgMC02OS40LTYuNC0xMDAuNy0xOC4xTDk4LjcgNDYzLjdDOTQgNDcxLjggODcgNDc4LjQgNzguNiA0ODIuNkwyMy4yIDUxMC4zYy01IDIuNS0xMC45IDIuMi0xNS42LS43UzAgNTAxLjUgMCA0OTZWNDQwLjZjMC04LjQgMi4yLTE2LjcgNi41LTI0LjFsNjAtMTAzLjdDNTMuNyAzMDEuNiA0MS44IDI4OS4zIDMxLjIgMjc2Yy0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXMzMy45LTguOCA0NSA1YzUuNyA3LjEgMTEuOCAxMy44IDE4LjIgMjAuMWw2OS40LTExOS45Yy01LjYtMTIuMi04LjgtMjUuOC04LjgtNDAuMmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2em0yMSAyOTcuOWMzMi42LTEyLjggNjIuNS0zMC44IDg4LjktNTIuOWw0My43IDc1LjVjNC4yIDcuMyA2LjUgMTUuNiA2LjUgMjQuMVY0OTZjMCA1LjUtMi45IDEwLjctNy42IDEzLjZzLTEwLjYgMy4yLTE1LjYgLjdsLTU1LjQtMjcuN2MtOC40LTQuMi0xNS40LTEwLjgtMjAuMS0xOC45TDM3MyAzOTMuOXpNMjU2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTUwLjctMTg2LjlMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjIgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjR6TTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg5NnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpNMzUyIDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM1MlY2NHpNMzIwIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzODRoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wdXRlck1vdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTkySDE3NlYwSDE2MEM3MS42IDAgMCA3MS42IDAgMTYwdjMyem0wIDMyVjM1MmMwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGg2NGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFYyMjRIMTkyIDB6bTM4NC0zMlYxNjBDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEgyMDhWMTkySDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcHV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDk2VjMyMEg2NEw2NCA5NkgzODR6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0SDE4MS4zbC0xMC43IDMySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNzcuM2wtMTAuNy0zMkgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTQ2NCAwYy0yNi41IDAtNDggMjEuNS00OCA0OFY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoNjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINTI4em0xNiA2NGgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg1NDRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bS0xNiA4MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINTQ0Yy04LjggMC0xNi03LjItMTYtMTZ6bTMyIDE2MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvb2tpZUJpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3LjUgMjcuNmMtLjgtNS40LTQuOS05LjgtMTAuMy0xMC42djBjLTIyLjEtMy4xLTQ0LjYgLjktNjQuNCAxMS40bC03NCAzOS41Qzg5LjEgNzguNCA3My4yIDk0LjkgNjMuNCAxMTVMMjYuNyAxOTAuNmMtOS44IDIwLjEtMTMgNDIuOS05LjEgNjQuOWwxNC41IDgyLjhjMy45IDIyLjEgMTQuNiA0Mi4zIDMwLjcgNTcuOWw2MC4zIDU4LjRjMTYuMSAxNS42IDM2LjYgMjUuNiA1OC43IDI4LjdsODMgMTEuN2MyMi4xIDMuMSA0NC42LS45IDY0LjQtMTEuNGw3NC0zOS41YzE5LjctMTAuNSAzNS42LTI3IDQ1LjQtNDcuMmwzNi43LTc1LjVjOS44LTIwLjEgMTMtNDIuOSA5LjEtNjQuOXYwYy0uOS01LjMtNS4zLTkuMy0xMC42LTEwLjFjLTUxLjUtOC4yLTkyLjgtNDcuMS0xMDQuNS05Ny40Yy0xLjgtNy42LTgtMTMuNC0xNS43LTE0LjZjLTU0LjYtOC43LTk3LjctNTItMTA2LjItMTA2Ljh6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvb2tpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDcuMiAxN2MtMjIuMS0zLjEtNDQuNiAuOS02NC40IDExLjRsLTc0IDM5LjVDODkuMSA3OC40IDczLjIgOTQuOSA2My40IDExNUwyNi43IDE5MC42Yy05LjggMjAuMS0xMyA0Mi45LTkuMSA2NC45bDE0LjUgODIuOGMzLjkgMjIuMSAxNC42IDQyLjMgMzAuNyA1Ny45bDYwLjMgNTguNGMxNi4xIDE1LjYgMzYuNiAyNS42IDU4LjcgMjguN2w4MyAxMS43YzIyLjEgMy4xIDQ0LjYtLjkgNjQuNC0xMS40bDc0LTM5LjVjMTkuNy0xMC41IDM1LjYtMjcgNDUuNC00Ny4ybDM2LjctNzUuNWM5LjgtMjAuMSAxMy00Mi45IDkuMS02NC45bC0xNC42LTgyLjhjLTMuOS0yMi4xLTE0LjYtNDIuMy0zMC43LTU3LjlMMzg4LjkgNTcuNWMtMTYuMS0xNS42LTM2LjYtMjUuNi01OC43LTI4LjdMMjQ3LjIgMTd6TTIwOCAxNDRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNDQgMzM2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTIyNC02NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDBIMzMyLjFjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlWMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDIwOGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDhjMC0yNi41IDIxLjUtNDggNDgtNDh6TTQ4IDEyOGg4MHY2NEg2NFY0NDhIMjU2VjQxNmg2NHY0OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE5OS40IDMxMi42YzMxLjIgMzEuMiA4MS45IDMxLjIgMTEzLjEgMGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTUwIDUwLTEzMSA1MC0xODEgMHMtNTAtMTMxIDAtMTgxczEzMS01MCAxODEgMGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0zMS4yLTMxLjItODEuOS0zMS4yLTExMy4xIDBzLTMxLjIgODEuOSAwIDExMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3VjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxNjBDNjQgODkuMyAxMjEuMyAzMiAxOTIgMzJINDQ4YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4djMzLjZjLTM2LjUgNy40LTY0IDM5LjctNjQgNzguNHY0OEgxMjhWMjcyYzAtMzguNy0yNy41LTcxLTY0LTc4LjRWMTYwek01NDQgMjcyYzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM2M1LTEuOCAxMC40LTIuNyAxNi0yLjdjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDU3NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJIOTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI3MmMwLTI2LjUgMjEuNS00OCA0OC00OGM1LjYgMCAxMSAxIDE2IDIuN2MxOC42IDYuNiAzMiAyNC40IDMyIDQ1LjN2NDggMzJoMzJINTEyaDMyVjMyMCAyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAyMjR2MzJWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMyNy44YzkuOSA2LjYgMjAuNiAxMiAzMiAxNi4xVjM2OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjM1MS4xYzUuMyAuNiAxMC42IC45IDE2IC45czEwLjctLjMgMTYtLjlWMzY4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzQzLjhjMTEuNC00IDIyLjEtOS40IDMyLTE2LjFWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmwzMiAzMnY0OS41YzAgOS41IDIuOCAxOC43IDguMSAyNi42TDUzMCA0MjdjOC44IDEzLjEgMjMuNSAyMSAzOS4zIDIxYzIyLjUgMCA0MS45LTE1LjkgNDYuMy0zOGwyMC4zLTEwMS42YzIuNi0xMy0uMy0yNi41LTgtMzcuM2wtMy45LTUuNVYxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2MTQuNGwtNTIuOS03NC4xQzQ5NiA4Ni41IDQ1Mi40IDY0IDQwNS45IDY0SDI3MiAyNTYgMTkyIDE0NEM3Ny43IDY0IDI0IDExNy43IDI0IDE4NHY1NEM5LjQgMjQ5LjggMCAyNjcuOCAwIDI4OHYxNy42YzAgOCA2LjQgMTQuNCAxNC40IDE0LjRDNDYuMiAzMjAgNzIgMjk0LjIgNzIgMjYyLjRWMjU2IDIyNCAxODRjMC0yNC4zIDEyLjEtNDUuOCAzMC41LTU4LjlDOTguMyAxMzUuOSA5NiAxNDcuNyA5NiAxNjB2NjR6TTU2MCAzMzZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpNMTY2LjYgMTY2LjZjLTQuMi00LjItNi42LTEwLTYuNi0xNmMwLTEyLjUgMTAuMS0yMi42IDIyLjYtMjIuNkgzNjEuNGMxMi41IDAgMjIuNiAxMC4xIDIyLjYgMjIuNmMwIDYtMi40IDExLjgtNi42IDE2bC0yMy40IDIzLjRDMzMyLjIgMjExLjggMzAyLjcgMjI0IDI3MiAyMjRzLTYwLjItMTIuMi04MS45LTMzLjlsLTIzLjQtMjMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2djMySDU3NlY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNNTc2IDIyNEgwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjI0ek0xMTIgMzUyaDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMTEyIDE2YzAtOC44IDcuMi0xNiAxNi0xNkgzNjhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjQwYy04LjggMC0xNi03LjItMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3BTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJWNjRIMzJDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMySDY0VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNTJWMzg0SDEyOFYzMnpNMzg0IDQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQ0OGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0NDhsMC0yNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRMMTYwIDY0djY0bDIyNCAwIDAgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxMDkuM2w1NC42LTU0LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMNDAyLjcgNjQgMTYwIDY0djY0bDE3OC43IDBMMTI4IDMzOC43VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDE0LjMgNjQgMzJWNjRIMzJDMTQuMyA2NCAwIDc4LjMgMCA5NnMxNC4zIDMyIDMyIDMySDY0VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNTJWMzg0SDE3My4zTDM4NCAxNzMuMyAzODQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ4aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ0OGwwLTI3NC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9zcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2ODBINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDgwVjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzMmMyNi41IDAgNDgtMjEuNSA0OC00OFYyNTZoODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI1NlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3NzaGFpcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDIuNGM5My43IDEzLjkgMTY3LjcgODggMTgxLjYgMTgxLjZINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ2OS42Yy0xMy45IDkzLjctODggMTY3LjctMTgxLjYgMTgxLjZWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ2OS42QzEzMC4zIDQ1NS43IDU2LjMgMzgxLjcgNDIuNCAyODhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDIuNEM1Ni4zIDEzMC4zIDEzMC4zIDU2LjMgMjI0IDQyLjRWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTEwNy40IDI4OGMxMi41IDU4LjMgNTguNCAxMDQuMSAxMTYuNiAxMTYuNlYzODRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnYyMC42YzU4LjMtMTIuNSAxMDQuMS01OC40IDExNi42LTExNi42SDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgyMC42QzM5Mi4xIDE2NS43IDM0Ni4zIDExOS45IDI4OCAxMDcuNFYxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTA3LjRDMTY1LjcgMTE5LjkgMTE5LjkgMTY1LjcgMTA3LjQgMjI0SDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgxMDcuNHpNMjU2IDIyNGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU2IDBjLTQ4LjYgMC04OCAzOS40LTg4IDg4djI5LjJMMTIuNSAzOTAuNmMtMTQgMTAuOC0xNi42IDMwLjktNS45IDQ0LjlzMzAuOSAxNi42IDQ0LjkgNS45TDEyNi4xIDM4NEgyNTkuMmw0Ni42IDExMy4xYzUgMTIuMyAxOS4xIDE4LjEgMzEuMyAxMy4xczE4LjEtMTkuMSAxMy4xLTMxLjNMMzExLjEgMzg0SDM1MmMxLjEgMCAyLjEgMCAzLjIgMGw0Ni42IDExMy4yYzUgMTIuMyAxOS4xIDE4LjEgMzEuMyAxMy4xczE4LjEtMTkuMSAxMy4xLTMxLjNsLTQyLTEwMkM0ODQuOSAzNTQuMSA1NDQgMjgwIDU0NCAxOTJWMTI4di04bDgwLjUtMjAuMWM4LjYtMi4xIDEzLjgtMTAuOCAxMS42LTE5LjRDNjI5IDUyIDYwMy40IDMyIDU3NCAzMkg1MjMuOUM1MDcuNyAxMi41IDQ4My4zIDAgNDU2IDB6bTAgNjRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDkgMTA2YzExLjQtNyAxOS0xOS43IDE5LTM0YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwYzAgMTQuNCA3LjYgMjcgMTkgMzRMMjA5LjcgMjIwLjZjLTkuMSAxOC4yLTMyLjcgMjMuNC00OC42IDEwLjdMNzIgMTYwYzUtNi43IDgtMTUgOC0yNGMwLTIyLjEtMTcuOS00MC00MC00MFMwIDExMy45IDAgMTM2czE3LjkgNDAgNDAgNDBjLjIgMCAuNSAwIC43IDBMODYuNCA0MjcuNGM1LjUgMzAuNCAzMiA1Mi42IDYzIDUyLjZINDI2LjZjMzAuOSAwIDU3LjQtMjIuMSA2My01Mi42TDUzNS4zIDE3NmMuMiAwIC41IDAgLjcgMGMyMi4xIDAgNDAtMTcuOSA0MC00MHMtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MGMwIDkgMyAxNy4zIDggMjRsLTg5LjEgNzEuM2MtMTUuOSAxMi43LTM5LjUgNy41LTQ4LjYtMTAuN0wzMDkgMTA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcnV0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk3LjQgOS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTE2MC0xNjBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwem0tOTYgMTQ0bC0zNC44IDM0LjhjLTEyLjkgMTIuOS0yMS45IDI5LjItMjUuOCA0Ny4xTDExNi44IDM0Mi45Yy0xLjMgNS45LTQuMyAxMS40LTguNiAxNS43TDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw5OC44LTk4LjhjNC4zLTQuMyA5LjctNy4zIDE1LjctOC42bDEwNy42LTIzLjljMTcuOC00IDM0LjEtMTIuOSA0Ny4xLTI1LjhsMzQuNy0zNC43YzAgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWw3NC42LTc0LjYtNDUuMy00NS4zTDMzNiAyNDIuNyAyNjkuMyAxNzZsNTIuMS01Mi4xTDI3Ni4xIDc4LjZsLTc0LjcgNzQuN3pNMjI0IDIyMS4zTDI5MC43IDI4OGwtMTIuMiAxMi4yYy00LjMgNC4zLTkuNyA3LjMtMTUuNyA4LjZsLTc2LjcgMTcgMTctNzYuN2MxLjMtNS45IDQuMy0xMS40IDguNi0xNS43TDIyNCAyMjEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3J1emVpcm9TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDI1NmMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MGM0MSAwIDc4LjMgMTUuNCAxMDYuNyA0MC43YzEzLjIgMTEuOCAzMy40IDEwLjcgNDUuMi0yLjVzMTAuNy0zMy40LTIuNS00NS4yYy0zOS42LTM1LjUtOTItNTctMTQ5LjMtNTdDMTMyLjMgMzIgMzIgMTMyLjMgMzIgMjU2czEwMC4zIDIyNCAyMjQgMjI0YzU3LjQgMCAxMDkuNy0yMS42IDE0OS4zLTU3YzEzLjItMTEuOCAxNC4zLTMyIDIuNS00NS4ycy0zMi0xNC4zLTQ1LjItMi41QzMzNC4zIDQwMC42IDI5NyA0MTYgMjU2IDQxNlYzMjB2LTguN2MwLTEyLjggMTAuNC0yMy4zIDIzLjMtMjMuM2M0LjYgMCA5LjEgMS40IDEyLjkgMy45bDEwLjEgNi43YzE0LjcgOS44IDM0LjYgNS44IDQ0LjQtOC45czUuOC0zNC42LTguOS00NC40bC0xMC4xLTYuN2MtMTQuMy05LjYtMzEuMi0xNC43LTQ4LjQtMTQuN2MtMTIuNCAwLTI0LjIgMi42LTM0LjkgNy4zYy01LjUtNC41LTEyLjYtNy4zLTIwLjMtNy4zYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1NS4zVjMyMHY4Mi43QzEzNS41IDM3OCA5NiAzMjEuNiA5NiAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM0LjUgNS43YzEzLjktNSAyOS4xLTUgNDMuMSAwbDE5MiA2OC42QzQ5NSA4My40IDUxMiAxMDcuNSA1MTIgMTM0LjZWMzc3LjRjMCAyNy0xNyA1MS4yLTQyLjUgNjAuM2wtMTkyIDY4LjZjLTEzLjkgNS0yOS4xIDUtNDMuMSAwbC0xOTItNjguNkMxNyA0MjguNiAwIDQwNC41IDAgMzc3LjRWMTM0LjZjMC0yNyAxNy01MS4yIDQyLjUtNjAuM2wxOTItNjguNnpNMjU2IDY2TDgyLjMgMTI4IDI1NiAxOTBsMTczLjctNjJMMjU2IDY2em0zMiAzNjguNmwxNjAtNTcuMXYtMTg4TDI4OCAyNDYuNnYxODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1YmVzU3RhY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNjR2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJIMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNODIuNyAyMDdjLTE1LjMgOC44LTIwLjUgMjguNC0xMS43IDQzLjdsMzIgNTUuNGM4LjggMTUuMyAyOC40IDIwLjUgNDMuNyAxMS43bDU1LjQtMzJjMTUuMy04LjggMjAuNS0yOC40IDExLjctNDMuN2wtMzItNTUuNGMtOC44LTE1LjMtMjguNC0yMC41LTQzLjctMTEuN0w4Mi43IDIwN3pNMjg4IDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI4OHptNjQgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYzODRjMC0xNy43LTE0LjMtMzItMzItMzJIMzUyek0xNjAgMzg0djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek0zMiAzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3ViZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkwLjggNDguNmw3OC40IDI5LjdMMjg4IDEwOS41IDIwNi44IDc4LjNsNzguNC0yOS43YzEuOC0uNyAzLjgtLjcgNS43IDB6TTEzNiA5Mi41VjIwNC43Yy0xLjMgLjQtMi42IC44LTMuOSAxLjNsLTk2IDM2LjRDMTQuNCAyNTAuNiAwIDI3MS41IDAgMjk0LjdWNDEzLjljMCAyMi4yIDEzLjEgNDIuMyAzMy41IDUxLjNsOTYgNDIuMmMxNC40IDYuMyAzMC43IDYuMyA0NS4xIDBMMjg4IDQ1Ny41bDExMy41IDQ5LjljMTQuNCA2LjMgMzAuNyA2LjMgNDUuMSAwbDk2LTQyLjJjMjAuMy04LjkgMzMuNS0yOS4xIDMzLjUtNTEuM1YyOTQuN2MwLTIzLjMtMTQuNC00NC4xLTM2LjEtNTIuNGwtOTYtMzYuNGMtMS4zLS41LTIuNi0uOS0zLjktMS4zVjkyLjVjMC0yMy4zLTE0LjQtNDQuMS0zNi4xLTUyLjRsLTk2LTM2LjRjLTEyLjgtNC44LTI2LjktNC44LTM5LjcgMGwtOTYgMzYuNEMxNTAuNCA0OC40IDEzNiA2OS4zIDEzNiA5Mi41ek0zOTIgMjEwLjZsLTgyLjQgMzEuMlYxNTIuNkwzOTIgMTIxdjg5LjZ6TTE1NC44IDI1MC45bDc4LjQgMjkuN0wxNTIgMzExLjcgNzAuOCAyODAuNmw3OC40LTI5LjdjMS44LS43IDMuOC0uNyA1LjcgMHptMTguOCAyMDQuNFYzNTQuOEwyNTYgMzIzLjJ2OTUuOWwtODIuNCAzNi4yek00MjEuMiAyNTAuOWMxLjgtLjcgMy44LS43IDUuNyAwbDc4LjQgMjkuN0w0MjQgMzExLjdsLTgxLjItMzEuMSA3OC40LTI5Ljd6TTUyMy4yIDQyMS4ybC03Ny42IDM0LjFWMzU0LjhMNTI4IDMyMy4ydjkwLjdjMCAzLjItMS45IDYtNC44IDcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMyaDk2YzEyMy43IDAgMjI0IDEwMC4zIDIyNCAyMjRzLTEwMC4zIDIyNC0yMjQgMjI0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnptMTYwIDBINjRWNDE2aDk2Yzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwcy03MS42LTE2MC0xNjAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEYXRhYmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2NDhjMCA0NC4yLTEwMC4zIDgwLTIyNCA4MFMwIDE3Mi4yIDAgMTI4VjgwQzAgMzUuOCAxMDAuMyAwIDIyNCAwUzQ0OCAzNS44IDQ0OCA4MHpNMzkzLjIgMjE0LjdjMjAuOC03LjQgMzkuOS0xNi45IDU0LjgtMjguNlYyODhjMCA0NC4yLTEwMC4zIDgwLTIyNCA4MFMwIDMzMi4yIDAgMjg4VjE4Ni4xYzE0LjkgMTEuOCAzNCAyMS4yIDU0LjggMjguNkM5OS43IDIzMC43IDE1OS41IDI0MCAyMjQgMjQwczEyNC4zLTkuMyAxNjkuMi0yNS4zek0wIDM0Ni4xYzE0LjkgMTEuOCAzNCAyMS4yIDU0LjggMjguNkM5OS43IDM5MC43IDE1OS41IDQwMCAyMjQgNDAwczEyNC4zLTkuMyAxNjkuMi0yNS4zYzIwLjgtNy40IDM5LjktMTYuOSA1NC44LTI4LjZWNDMyYzAgNDQuMi0xMDAuMyA4MC0yMjQgODBTMCA0NzYuMiAwIDQzMlYzNDYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVsZXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDIwNS4zYy0xNyAwLTMzLjMgNi43LTQ1LjMgMTguN0w5LjQgMjMzLjRjLTYgNi05LjQgMTQuMS05LjQgMjIuNnMzLjQgMTYuNiA5LjQgMjIuNkwxNjAgNDI5LjNjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0g1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4ek0yNzEgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZW1vY3JhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMmMwLTguOSAzLjgtMjAuOSA2LjItMjcuM0M3MS4yIDEuOCA3NCAwIDc3IDBjMS45IDAgMy44IC43IDUuMiAyLjFMMTI4IDQ1LjcgMTczLjggMi4xQzE3NS4yIC43IDE3Ny4xIDAgMTc5IDBjMyAwIDUuOCAxLjggNi44IDQuN2MyLjQgNi41IDYuMiAxOC40IDYuMiAyNy4zYzAgMjYuNS0yMS45IDQyLTI5LjUgNDYuNmw3Ni4yIDcyLjZjNiA1LjcgMTMuOSA4LjggMjIuMSA4LjhINDgwbDMyIDBjNDAuMyAwIDc4LjIgMTkgMTAyLjQgNTEuMmwxOS4yIDI1LjZjMTAuNiAxNC4xIDcuNyAzNC4yLTYuNCA0NC44cy0zNC4yIDcuNy00NC44LTYuNGwtMTkuMi0yNS42Yy01LjMtNy0xMS44LTEyLjgtMTkuMi0xN1YzMjBIMTkybC00MC40LTk0LjNjLTMuOS05LjItMTUuMy0xMi42LTIzLjYtN2wtNDIuMSAyOGMtOS4xIDYuMS0xOS43IDkuMy0zMC43IDkuM2gtMkMyMy45IDI1NiAwIDIzMi4xIDAgMjAyLjdjMC0xMi4xIDQuMS0yMy44IDExLjctMzMuM0w4Ny42IDc0LjZDNzguMSA2Ny40IDY0IDUzLjIgNjQgMzJ6TTQ0OCAzNTJoOTZ2NjQgNjRjMCAxNy43LTE0LjMgMzItMzIgMzJINDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTZIMjg4djY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2IDM1Mmg5Nkg0NDh6TTI2MC45IDIxMC45Yy0uOS0xLjgtMi44LTIuOS00LjgtMi45cy0zLjkgMS4xLTQuOCAyLjlsLTEwLjUgMjAuNS0yMy41IDMuM2MtMiAuMy0zLjcgMS42LTQuMyAzLjVzLS4xIDMuOSAxLjMgNS4zbDE3IDE2LTQgMjIuNmMtLjMgMS45IC41IDMuOSAyLjEgNXMzLjggMS4zIDUuNiAuNGwyMS0xMC43IDIxIDEwLjdjMS44IC45IDQgLjggNS42LS40czIuNS0zLjEgMi4xLTVsLTQtMjIuNiAxNy0xNmMxLjUtMS40IDItMy40IDEuMy01LjNzLTIuMy0zLjItNC4zLTMuNWwtMjMuNS0zLjMtMTAuNS0yMC41ek0zNjguMSAyMDhjLTIgMC0zLjkgMS4xLTQuOCAyLjlsLTEwLjUgMjAuNS0yMy41IDMuM2MtMiAuMy0zLjcgMS42LTQuMyAzLjVzLS4xIDMuOSAxLjMgNS4zbDE3IDE2LTQgMjIuNmMtLjMgMS45IC41IDMuOSAyLjEgNXMzLjggMS4zIDUuNiAuNGwyMS0xMC43IDIxIDEwLjdjMS44IC45IDQgLjggNS42LS40czIuNS0zLjEgMi4xLTVsLTQtMjIuNiAxNy0xNmMxLjUtMS40IDItMy40IDEuNC01LjNzLTIuMy0zLjItNC4zLTMuNWwtMjMuNS0zLjMtMTAuNS0yMC41Yy0uOS0xLjgtMi44LTIuOS00LjgtMi45em0xMTYuOCAyLjljLS45LTEuOC0yLjgtMi45LTQuOC0yLjlzLTMuOSAxLjEtNC44IDIuOWwtMTAuNSAyMC41LTIzLjUgMy4zYy0yIC4zLTMuNyAxLjYtNC4zIDMuNXMtLjEgMy45IDEuMyA1LjNsMTcgMTYtNCAyMi42Yy0uMyAxLjkgLjUgMy45IDIuMSA1czMuOCAxLjMgNS42IC40bDIxLTEwLjcgMjEgMTAuN2MxLjggLjkgNCAuOCA1LjYtLjRzMi41LTMuMSAyLjEtNWwtNC0yMi42IDE3LTE2YzEuNS0xLjQgMi0zLjQgMS40LTUuM3MtMi4zLTMuMi00LjMtMy41bC0yMy41LTMuMy0xMC41LTIwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURlc2t0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0SDI0MGwtMTAuNyAzMkgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0Ni43TDMzNiA0MTZINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek01MTIgNjRWMjg4SDY0VjY0SDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGhhcm1hY2hha3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNy44IDIwNS43bDQ4LjYtNDIuNWMxMy44IDE5LjMgMjMuNCA0MS45IDI3LjQgNjYuMmwtNjQuNCA0LjNjLTIuNC0xMC4xLTYuNC0xOS41LTExLjYtMjh6bTE0MC4xIDE5LjVjLTUuMy0zOC44LTIwLjYtNzQuNS00My4yLTEwNC4zbC44LS43QzQ0OSAxMDguNCA0NDkuNyA4Ny42IDQzNyA3NXMtMzMuNC0xMi00NS4yIDEuNWwtLjcgLjhjLTI5LjgtMjIuNi02NS41LTM3LjktMTA0LjMtNDMuMmwuMS0xLjFjMS4yLTE3LjktMTMtMzMtMzAuOS0zM3MtMzIuMSAxNS4yLTMwLjkgMzNsLjEgMS4xYy0zOC44IDUuMy03NC41IDIwLjYtMTA0LjMgNDMuMmwtLjctLjhDMTA4LjQgNjMgODcuNiA2Mi4zIDc1IDc1cy0xMiAzMy40IDEuNSA0NS4ybC44IC43Yy0yMi42IDI5LjgtMzcuOSA2NS41LTQzLjIgMTA0LjNsLTEuMS0uMWMtMTcuOS0xLjItMzMgMTMtMzMgMzAuOXMxNS4yIDMyLjEgMzMgMzAuOWwxLjEtLjFjNS4zIDM4LjggMjAuNiA3NC41IDQzLjIgMTA0LjNsLS44IC43QzYzIDQwMy42IDYyLjMgNDI0LjQgNzUgNDM3czMzLjQgMTIgNDUuMi0xLjVsLjctLjhjMjkuOCAyMi42IDY1LjUgMzcuOSAxMDQuMyA0My4ybC0uMSAxLjFjLTEuMiAxNy45IDEzIDMzIDMwLjkgMzNzMzIuMS0xNS4yIDMwLjktMzNsLS4xLTEuMWMzOC44LTUuMyA3NC41LTIwLjYgMTA0LjMtNDMuMmwuNyAuOGMxMS44IDEzLjUgMzIuNSAxNC4yIDQ1LjIgMS41czEyLTMzLjQtMS41LTQ1LjJsLS44LS43YzIyLjYtMjkuOCAzNy45LTY1LjUgNDMuMi0xMDQuM2wxLjEgLjFjMTcuOSAxLjIgMzMtMTMgMzMtMzAuOXMtMTUuMi0zMi4xLTMzLTMwLjlsLTEuMSAuMXpNMTYzLjIgMTI1LjZjMTkuMy0xMy44IDQxLjktMjMuNCA2Ni4yLTI3LjVsNC4zIDY0LjRjLTEwIDIuNC0xOS41IDYuNC0yOCAxMS42bC00Mi41LTQ4LjZ6bS02NSAxMDMuOGM0LjEtMjQuNCAxMy43LTQ2LjkgMjcuNS02Ni4ybDQ4LjYgNDIuNWMtNS4zIDguNS05LjIgMTgtMTEuNiAyOGwtNjQuNC00LjN6bTI3LjUgMTE5LjRjLTEzLjgtMTkuMy0yMy40LTQxLjktMjcuNS02Ni4ybDY0LjQtNC4zYzIuNCAxMCA2LjQgMTkuNSAxMS42IDI4bC00OC42IDQyLjV6bTEwMy44IDY1Yy0yNC40LTQuMS00Ni45LTEzLjctNjYuMi0yNy40bDQyLjUtNDguNmM4LjUgNS4zIDE4IDkuMiAyOCAxMS42bC00LjMgNjQuNHptMTE5LjQtMjcuNGMtMTkuMyAxMy44LTQxLjkgMjMuNC02Ni4yIDI3LjRsLTQuMy02NC40YzEwLTIuNCAxOS41LTYuNCAyOC0xMS42bDQyLjUgNDguNnptNjUtMTAzLjhjLTQuMSAyNC40LTEzLjcgNDYuOS0yNy40IDY2LjJsLTQ4LjYtNDIuNWM1LjMtOC41IDkuMi0xOCAxMS42LTI4bDY0LjQgNC4zem0tNjUtMTU2LjlsLTQyLjUgNDguNmMtOC41LTUuMy0xOC05LjItMjgtMTEuNmw0LjMtNjQuNGMyNC40IDQuMSA0Ni45IDEzLjcgNjYuMiAyNy41ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhZ3JhbU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDE2MGMwIDM1LjMtMjguNyA2NC02NCA2NEgyODB2NjRoNDYuMWMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDI3MyAzOTljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2OSAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDFIMjMyVjIyNEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0djY0ek00NDggNDE2VjM1MkgzNjUuM2wuNC0uNGMxOC40LTE4LjQgMjAuNC00My43IDExLTYzLjZsNzEuMyAwYzM1LjMgMCA2NCAyOC43IDY0IDY0djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0bDcxLjMgMGMtOS40IDE5LjktNy40IDQ1LjIgMTEgNjMuNmwuNCAuNEg2NHY2NEgyMTAuN2w1LjcgNS43YzIxLjkgMjEuOSA1Ny4zIDIxLjkgNzkuMiAwbDUuNy01LjdINDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFncmFtUHJlZGVjZXNzb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQxNmwwLTY0TDY0IDM1MmwwIDY0IDM4NCAwem0wIDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRsMC02NGMwLTM1LjMgMjguNy02NCA2NC02NGwzODQgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0yODggMTYwYzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDIyNGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwxNDQgMCAxNiAwIDE0NCAwYzQ0LjIgMCA4MCAzNS44IDgwIDgwbDAgMTYgMzguMSAwYzIxLjQgMCAzMi4xIDI1LjkgMTcgNDFMNDMzIDIzOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzI5IDE2OWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MWwzOC4xIDAgMC0xNmMwLTguOC03LjItMTYtMTYtMTZsLTgwIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhZ3JhbVByb2plY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmg5NmMyNi41IDAgNDggMjEuNSA0OCA0OFY5NkgzODRWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2OTZjMCAyNi41LTIxLjUgNDgtNDggNDhINDMyYy0yNi41IDAtNDgtMjEuNS00OC00OFYxNjBIMTkydjE2YzAgMS43LS4xIDMuNC0uMyA1TDI3MiAyODhoOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2OTZjMCAyNi41LTIxLjUgNDgtNDggNDhIMjcyYy0yNi41IDAtNDgtMjEuNS00OC00OFYzMzZjMC0xLjcgLjEtMy40IC4zLTVMMTQ0IDIyNEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpYWdyYW1TdWNjZXNzb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDQxNmwwLTY0YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpNNjQgMTYwbDAtNjQgMTQ0IDAgMTYgMCAwIDY0TDY0IDE2MHptMjI0IDBsMC02NCA4MCAwYzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2LTM4LjEgMGMtMjEuNCAwLTMyLjEgMjUuOS0xNyA0MUwzOTkgMjM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDUwMyAxNjljMTUuMS0xNS4xIDQuNC00MS0xNy00MUw0NDggMTI4bDAtMTZjMC00NC4yLTM1LjgtODAtODAtODBMMjI0IDMybC0xNiAwTDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZsMCA2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwxNjAgMGMzNS4zIDAgNjQtMjguNyA2NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlhbW9uZFR1cm5SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjcuNyAxMS43YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwbDIxNiAyMTZjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTIxNiAyMTZjLTE1LjYgMTUuNi00MC45IDE1LjYtNTYuNiAwbC0yMTYtMjE2Yy0xNS42LTE1LjYtMTUuNi00MC45IDAtNTYuNmwyMTYtMjE2em04Ny42IDEzN2MtNC42LTQuNi0xMS41LTUuOS0xNy40LTMuNXMtOS45IDguMy05LjkgMTQuOHY1NkgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjgwYzAtOC44IDcuMi0xNiAxNi0xNmg2NHY1NmMwIDYuNSAzLjkgMTIuMyA5LjkgMTQuOHMxMi45IDEuMSAxNy40LTMuNWw4MC04MGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpYW1vbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg0LjMgMTEuN2MtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBsLTIxNiAyMTZjLTE1LjYgMTUuNi0xNS42IDQwLjkgMCA1Ni42bDIxNiAyMTZjMTUuNiAxNS42IDQwLjkgMTUuNiA1Ni42IDBsMjE2LTIxNmMxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNmwtMjE2LTIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUQyMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OC43IDEyNS44bDUzLjIgMzEuOWM3LjggNC43IDE3LjggMiAyMi4yLTUuOUwyMDEuNiAxMi4xYzMtNS40LS45LTEyLjEtNy4xLTEyLjFjLTEuNiAwLTMuMiAuNS00LjYgMS40TDQ3LjkgOTguOGMtOS42IDYuNi05LjIgMjAuOSAuOCAyNi45ek0xNiAxNzEuN1YyOTUuM2MwIDggMTAuNCAxMSAxNC43IDQuNGw2MC05MmM1LTcuNiAyLjYtMTcuOC01LjItMjIuNUw0MC4yIDE1OEMyOS42IDE1MS42IDE2IDE1OS4zIDE2IDE3MS43ek0zMTAuNCAxMi4xbDc3LjYgMTM5LjZjNC40IDcuOSAxNC41IDEwLjYgMjIuMiA1LjlsNTMuMi0zMS45YzEwLTYgMTAuNC0yMC4zIC44LTI2LjlMMzIyLjEgMS40Yy0xLjQtLjktMy0xLjQtNC42LTEuNGMtNi4yIDAtMTAuMSA2LjctNy4xIDEyLjF6TTQ5NiAxNzEuN2MwLTEyLjQtMTMuNi0yMC4xLTI0LjItMTMuN2wtNDUuMyAyNy4yYy03LjggNC43LTEwLjEgMTQuOS01LjIgMjIuNWw2MCA5MmM0LjMgNi43IDE0LjcgMy42IDE0LjctNC40VjE3MS43em0tNDkuMyAyNDZMMjg2LjEgNDM2LjZjLTguMSAuOS0xNC4xIDcuOC0xNC4xIDE1Ljl2NTIuOGMwIDMuNyAzIDYuOCA2LjggNi44Yy44IDAgMS42LS4xIDIuNC0uNGwxNzIuNy02NGM2LjEtMi4yIDEwLjEtOCAxMC4xLTE0LjVjMC05LjMtOC4xLTE2LjUtMTcuMy0xNS40ek0yMzMuMiA1MTJjMy43IDAgNi44LTMgNi44LTYuOFY0NTIuNmMwLTguMS02LjEtMTQuOS0xNC4xLTE1LjlsLTE2MC42LTE5Yy05LjItMS4xLTE3LjMgNi4xLTE3LjMgMTUuNGMwIDYuNSA0IDEyLjMgMTAuMSAxNC41bDE3Mi43IDY0Yy44IC4zIDEuNiAuNCAyLjQgLjR6TTQxLjcgMzgyLjlsMTcwLjkgMjAuMmM3LjggLjkgMTMuNC03LjUgOS41LTE0LjNsLTg1LjctMTUwYy01LjktMTAuNC0yMC43LTEwLjgtMjcuMy0uOEwzMC4yIDM1OC4yYy02LjUgOS45LS4zIDIzLjMgMTEuNSAyNC43em00MzkuNi0yNC44TDQwMi45IDIzOC4xYy02LjUtMTAtMjEuNC05LjYtMjcuMyAuOEwyOTAuMiAzODguNWMtMy45IDYuOCAxLjYgMTUuMiA5LjUgMTQuM2wxNzAuMS0yMGMxMS44LTEuNCAxOC0xNC43IDExLjUtMjQuNnptLTIxNi45IDExbDc4LjQtMTM3LjJjNi4xLTEwLjctMS42LTIzLjktMTMuOS0yMy45SDE4My4xYy0xMi4zIDAtMjAgMTMuMy0xMy45IDIzLjlsNzguNCAxMzcuMmMzLjcgNi40IDEzIDYuNCAxNi43IDB6TTE3NC40IDE3NkgzMzcuNmMxMi4yIDAgMTkuOS0xMy4xIDE0LTIzLjhsLTgwLTE0NGMtMi44LTUuMS04LjItOC4yLTE0LTguMmgtMy4yYy01LjggMC0xMS4yIDMuMi0xNCA4LjJsLTgwIDE0NGMtNS45IDEwLjcgMS44IDIzLjggMTQgMjMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUQ2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMSAxMC4zYzE0LjMtNy44IDMxLjYtNy44IDQ2IDBMNDIyLjMgMTA2YzUuMSAyLjggOC4zIDguMiA4LjMgMTRzLTMuMiAxMS4yLTguMyAxNEwyMzEuNyAyMzhjLTQuOCAyLjYtMTAuNSAyLjYtMTUuMyAwTDI1LjcgMTM0Yy01LjEtMi44LTguMy04LjItOC4zLTE0czMuMi0xMS4yIDguMy0xNEwyMDEgMTAuM3pNMjMuNyAxNzBsMTc2IDk2YzUuMSAyLjggOC4zIDguMiA4LjMgMTRWNDk2YzAgNS42LTMgMTAuOS03LjggMTMuOHMtMTAuOSAzLTE1LjggLjNMMjUgNDIzLjFDOS42IDQxNC43IDAgMzk4LjYgMCAzODFWMTg0YzAtNS42IDMtMTAuOSA3LjgtMTMuOHMxMC45LTMgMTUuOC0uM3ptNDAwLjcgMGM1LTIuNyAxMS0yLjYgMTUuOCAuM3M3LjggOC4xIDcuOCAxMy44VjM4MWMwIDE3LjYtOS42IDMzLjctMjUgNDIuMUwyNjMuNyA1MTBjLTUgMi43LTExIDIuNi0xNS44LS4zcy03LjgtOC4xLTcuOC0xMy44VjI4MGMwLTUuOSAzLjItMTEuMiA4LjMtMTRsMTc2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRml2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTY0IDk2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNOTYgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTIyNCAyMjRhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NC02NGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0zMiAxNjBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRm91ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTM1MiAxNjBhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzIwIDM4NGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VPbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjQgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVNpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em0xNjAgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMTI4IDI4OGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTMyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zMiA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek0zMjAgMzg0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVRocmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNjQgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTI4IDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVR3byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek0zNTIgMzUyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAxOTJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NC45IDM0LjNjLTI4LjEtMjguMS03My43LTI4LjEtMTAxLjggMEwzNC4zIDE3My4xYy0yOC4xIDI4LjEtMjguMSA3My43IDAgMTAxLjhMMTczLjEgNDEzLjdjMjguMSAyOC4xIDczLjcgMjguMSAxMDEuOCAwTDQxMy43IDI3NC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEwyNzQuOSAzNC4zek0yMDAgMjI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6TTk2IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTIyNCAzNzZhMjQgMjQgMCAxIDEgMC00OCAyNCAyNCAwIDEgMSAwIDQ4ek0zNTIgMjAwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNMjI0IDEyMGEyNCAyNCAwIDEgMSAwLTQ4IDI0IDI0IDAgMSAxIDAgNDh6bTk2IDMyOGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDQ2MS43YzExLjYgMzYgMy4xIDc3LTI1LjQgMTA1LjVMMzIwIDQxMy44VjQ0OHpNNDgwIDMyOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpc2Vhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM2LjQgNjEuNEwyMjcgNzUuNWMtMjEuMyAzMi01OS40IDQ4LjUtOTcuMyA0Mi4xbC01OS42LTkuOUMzMy40IDEwMS42IDAgMTI5LjkgLjEgMTY3LjFjMCAxNS45IDYuNCAzMS4yIDE3LjYgNDIuNWwyOS4yIDI5LjJjMTEgMTEgMTcuMiAyNS45IDE3LjIgNDEuNWMwIDE1LjgtNi40IDMwLjktMTcuNyA0MkwzMy4zIDMzNS4xQzIyLjIgMzQ1LjkgMTYgMzYwLjcgMTYgMzc2LjJjMCAzNi44IDM0LjEgNjQuMiA3MC4xIDU2LjJsNjIuMy0xMy44YzcuNy0xLjcgMTUuNy0yLjYgMjMuNi0yLjZoMTBjMjcuMiAwIDUzLjcgOS4zIDc1IDI2LjNMMjg3LjggNDY3YzEwLjUgOC40IDIzLjYgMTMgMzcgMTNjMzIuNyAwIDU5LjMtMjYuNSA1OS4zLTU5LjNsMC0yNS4yYzAtMzQuOSAyMS40LTY2LjIgNTMuOS03OC44bDM2LjktMTQuM2MyMi40LTguNyAzNy4yLTMwLjMgMzcuMi01NC4zYzAtMjguMS0yMC4xLTUyLjMtNDcuOC01Ny4zbC0yOC01LjFjLTM2LjUtNi43LTY1LjQtMzQuNS03My42LTcwLjdsLTcuMS0zMS41QzM0OC45IDUzLjQgMzIyLjEgMzIgMjkxLjMgMzJjLTIyIDAtNDIuNiAxMS01NC45IDI5LjR6TTE2MCAxOTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptMCA4MGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpc3BsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0SDI0MGwtMTAuNyAzMkgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM0Ni43TDMzNiA0MTZINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek01MTIgNjRWMzUySDY0VjY0SDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGl2aWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiA5NmE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0wIDMyMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00MDAgMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG5hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyYzAgNTkuOC0zMC4zIDEwNy41LTY5LjQgMTQ2LjZjLTI4IDI4LTYyLjUgNTMuNS05Ny4zIDc3LjRsLTIuNSAxLjdjLTExLjkgOC4xLTIzLjggMTYuMS0zNS41IDIzLjlsMCAwIDAgMCAwIDAtMS42IDFjLTYgNC0xMS45IDcuOS0xNy44IDExLjljLTIwLjkgMTQtNDAuOCAyNy43LTU5LjMgNDEuNUgyODMuM2MtOS44LTcuNC0yMC4xLTE0LjctMzAuNy0yMi4xbDctNC43IDMtMmMxNS4xLTEwLjEgMzAuOS0yMC42IDQ2LjctMzEuNmMyNSAxOC4xIDQ4LjkgMzcuMyA2OS40IDU3LjdDNDE3LjcgMzcyLjUgNDQ4IDQyMC4yIDQ0OCA0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJINjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC01OS44IDMwLjMtMTA3LjUgNjkuNC0xNDYuNmMyOC0yOCA2Mi41LTUzLjUgOTcuMy03Ny40Yy0zNC44LTIzLjktNjkuMy00OS4zLTk3LjMtNzcuNEMzMC4zIDEzOS41IDAgOTEuOCAwIDMyQzAgMTQuMyAxNC4zIDAgMzIgMFM2NCAxNC4zIDY0IDMySDM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzM4LjYgMzg0SDEwOS40Yy0xMC4xIDEwLjYtMTguNiAyMS4zLTI1LjUgMzJIMzY0LjFjLTYuOC0xMC43LTE1LjMtMjEuNC0yNS41LTMyek0xMDkuNCAxMjhIMzM4LjZjMTAuMS0xMC43IDE4LjYtMjEuMyAyNS41LTMySDgzLjljNi44IDEwLjcgMTUuMyAyMS4zIDI1LjUgMzJ6bTU1LjQgNDhjMTguNCAxMy44IDM4LjQgMjcuNSA1OS4zIDQxLjVjMjAuOS0xNCA0MC44LTI3LjcgNTkuMy00MS41SDE2NC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA5LjYgMTU4LjVMMzMyLjcgMTkuOEMzMzQuNiA4LjQgMzQ0LjUgMCAzNTYuMSAwYzcuNSAwIDE0LjUgMy41IDE5IDkuNUwzOTIgMzJoNTIuMWMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xTDQ5NiA2NGg1NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyNGMwIDQ0LjItMzUuOCA4MC04MCA4MEg0NjQgNDQ4IDQyNi43bC01LjEgMzAuNS0xMTItNjR6TTQxNiAyNTYuMUw0MTYgNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzY0LjhjLTI0IDEyLjMtNTEuMiAxOS4yLTgwIDE5LjJzLTU2LTYuOS04MC0xOS4yVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjQ5LjhjLTI4LjgtMTAuOS01MS40LTM1LjMtNTkuMi02Ni41TDEgMTY3LjhjLTQuMy0xNy4xIDYuMS0zNC41IDIzLjMtMzguOHMzNC41IDYuMSAzOC44IDIzLjNsMy45IDE1LjVDNzAuNSAxODIgODMuMyAxOTIgOTggMTkyaDMwIDE2SDMwMy44TDQxNiAyNTYuMXpNNDY0IDgwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbGxhclNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjcuN2MxLjYgLjIgMy4xIC40IDQuNyAuN2MuNCAuMSAuNyAuMSAxLjEgLjJsNDggOC44YzE3LjQgMy4yIDI4LjkgMTkuOSAyNS43IDM3LjJzLTE5LjkgMjguOS0zNy4yIDI1LjdsLTQ3LjUtOC43Yy0zMS4zLTQuNi01OC45LTEuNS03OC4zIDYuMnMtMjcuMiAxOC4zLTI5IDI4LjFjLTIgMTAuNy0uNSAxNi43IDEuMiAyMC40YzEuOCAzLjkgNS41IDguMyAxMi44IDEzLjJjMTYuMyAxMC43IDQxLjMgMTcuNyA3My43IDI2LjNsMi45IC44YzI4LjYgNy42IDYzLjYgMTYuOCA4OS42IDMzLjhjMTQuMiA5LjMgMjcuNiAyMS45IDM1LjkgMzkuNWM4LjUgMTcuOSAxMC4zIDM3LjkgNi40IDU5LjJjLTYuOSAzOC0zMy4xIDYzLjQtNjUuNiA3Ni43Yy0xMy43IDUuNi0yOC42IDkuMi00NC40IDExVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDUuMWMtLjQtLjEtLjktLjEtMS4zLS4ybC0uMiAwIDAgMGMtMjQuNC0zLjgtNjQuNS0xNC4zLTkxLjUtMjYuM2MtMTYuMS03LjItMjMuNC0yNi4xLTE2LjItNDIuMnMyNi4xLTIzLjQgNDIuMi0xNi4yYzIwLjkgOS4zIDU1LjMgMTguNSA3NS4yIDIxLjZjMzEuOSA0LjcgNTguMiAyIDc2LTUuM2MxNi45LTYuOSAyNC42LTE2LjkgMjYuOC0yOC45YzEuOS0xMC42IC40LTE2LjctMS4zLTIwLjRjLTEuOS00LTUuNi04LjQtMTMtMTMuM2MtMTYuNC0xMC43LTQxLjUtMTcuNy03NC0yNi4zbC0yLjgtLjcgMCAwQzExOS40IDI3OS4zIDg0LjQgMjcwIDU4LjQgMjUzYy0xNC4yLTkuMy0yNy41LTIyLTM1LjgtMzkuNmMtOC40LTE3LjktMTAuMS0zNy45LTYuMS01OS4yQzIzLjcgMTE2IDUyLjMgOTEuMiA4NC44IDc4LjNjMTMuMy01LjMgMjcuOS04LjkgNDMuMi0xMVYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9sbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMkMwIDE0LjMgMTQuMyAwIDMyIDBoNzIuOWMyNy41IDAgNTIgMTcuNiA2MC43IDQzLjhMMjU3LjcgMzIwYzMwLjEgLjUgNTYuOCAxNC45IDc0IDM3bDIwMi4xLTY3LjRjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4ycy0zLjUgMzQuOS0yMC4yIDQwLjVMMzUyIDQxNy43Yy0uOSA1Mi4yLTQzLjUgOTQuMy05NiA5NC4zYy01MyAwLTk2LTQzLTk2LTk2YzAtMzAuOCAxNC41LTU4LjIgMzctNzUuOEwxMDQuOSA2NEgzMkMxNC4zIDY0IDAgNDkuNyAwIDMyek0yNDQuOCAxMzQuNWMtNS41LTE2LjggMy43LTM0LjkgMjAuNS00MC4zTDMxMSA3OS40bDE5LjggNjAuOSA2MC45LTE5LjhMMzcxLjggNTkuNmw0NS43LTE0LjhjMTYuOC01LjUgMzQuOSAzLjcgNDAuMyAyMC41bDQ5LjQgMTUyLjJjNS41IDE2LjgtMy43IDM0LjktMjAuNSA0MC4zTDMzNC41IDMwNy4yYy0xNi44IDUuNS0zNC45LTMuNy00MC4zLTIwLjVMMjQ0LjggMTM0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvbmdTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsLTMyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzJ2NDkuMWMtMTguOC0xMC45LTQwLjctMTcuMS02NC0xNy4xYy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHM1Ny4zIDEyOCAxMjggMTI4YzI0LjUgMCA0Ny40LTYuOSA2Ni44LTE4LjhjNSAxMS4xIDE2LjIgMTguOCAyOS4yIDE4LjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjg4IDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTI4IDI4OGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTMyIDQ0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvb3JDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRINDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0MzIgMTQ0IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDk2VjY0ek0zODQgMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9vck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMyYzAtOS45LTQuNS0xOS4yLTEyLjMtMjUuMlMyODkuOC0xLjQgMjgwLjIgMWwtMTc5LjkgNDVDNzkgNTEuMyA2NCA3MC41IDY0IDkyLjVWNDQ4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDk2IDI4OGgzMlY0ODAgMzJ6TTI1NiAyNTZjMCAxNy43LTEwLjcgMzItMjQgMzJzLTI0LTE0LjMtMjQtMzJzMTAuNy0zMiAyNC0zMnMyNCAxNC4zIDI0IDMyem05Ni0xMjhoOTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDUxMlYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUydjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MC44IDk2LjVjMTQgMTcgMzEgMzAuOSA0OS41IDQyLjJjMjUuOSAxNS44IDUzLjcgMjUuOSA3Ny43IDMxLjZWMTM4LjhDMjY1LjggMTA4LjUgMjUwIDcxLjUgMjQ4LjYgMjhjLS40LTExLjMtNy41LTIxLjUtMTguNC0yNC40Yy03LjYtMi0xNS44LS4yLTIxIDUuOGMtMTMuMyAxNS40LTMyLjcgNDQuNi00OC40IDg3LjJ6TTMyMCAxNDR2MzAuNmwwIDB2MS4zbDAgMCAwIDMyLjFjLTYwLjgtNS4xLTE4NS00My44LTIxOS4zLTE1Ny4yQzk3LjQgNDAgODcuOSAzMiA3Ni42IDMyYy03LjkgMC0xNS4zIDMuOS0xOC44IDExQzQ2LjggNjUuOSAzMiAxMTIuMSAzMiAxNzZjMCAxMTYuOSA4MC4xIDE4MC41IDExOC40IDIwMi44TDExLjggNDE2LjZDNi43IDQxOCAyLjYgNDIxLjggLjkgNDI2LjhzLS44IDEwLjYgMi4zIDE0LjhDMjEuNyA0NjYuMiA3Ny4zIDUxMiAxNjAgNTEyYzMuNiAwIDcuMi0xLjIgMTAtMy41TDI0NS42IDQ0OEgzMjBjODguNCAwIDE2MC03MS42IDE2MC0xNjBWMTI4bDI5LjktNDQuOWMxLjMtMiAyLjEtNC40IDIuMS02LjhjMC02LjgtNS41LTEyLjMtMTIuMy0xMi4zSDQwMGMtNDQuMiAwLTgwIDM1LjgtODAgODB6bTgwLTE2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG93bkxlZnRBbmRVcFJpZ2h0VG9DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM5IDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0LjhIMjk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY3MmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzlMNDM5IDd6TTcyIDI3MkgyMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNDQwYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5TDczIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNyA0NzNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDg3LTg3TDU1IDMxM2MtNi45LTYuOS04LjktMTcuMi01LjItMjYuMnMxMi41LTE0LjggMjIuMi0xNC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3duTG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDMzNC41Yy0zLjggOC44LTIgMTkgNC42IDI2bDEzNiAxNDRjNC41IDQuOCAxMC44IDcuNSAxNy40IDcuNXMxMi45LTIuNyAxNy40LTcuNWwxMzYtMTQ0YzYuNi03IDguNC0xNy4yIDQuNi0yNnMtMTIuNS0xNC41LTIyLTE0LjVsLTcyIDAgMC0yODhjMC0xNy43LTE0LjMtMzItMzItMzJMMTI4IDBDMTEwLjMgMCA5NiAxNC4zIDk2IDMybDAgMjg4LTcyIDBjLTkuNiAwLTE4LjIgNS43LTIyIDE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNzQuN2wtNzMuNC03My40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxMjggMTI4YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyOC0xMjhjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjg4IDI3NC43VjMyek02NCAzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY0MTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzQ2LjVsLTQ1LjMgNDUuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBMMTY1LjUgMzUySDY0em0zNjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmFnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDEyNC41bC01MS45LTEzYy02LjUtMS42LTExLjMtNy4xLTEyLTEzLjhzMi44LTEzLjEgOC43LTE2LjFsNDAuOC0yMC40TDI5NC40IDI4LjhjLTUuNS00LjEtNy44LTExLjMtNS42LTE3LjlTMjk3LjEgMCAzMDQgMEg0MTZoMzIgMTZjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRsNTcuNiA3Ni44YzYuMiA4LjMgOS42IDE4LjQgOS42IDI4LjhjMCAyNi41LTIxLjUgNDgtNDggNDhINTM4LjVjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDQ4MCAxNjBINDQ4djIxLjVjMCAyNC44IDEyLjggNDcuOSAzMy44IDYxLjFsMTA2LjYgNjYuNmMzMi4xIDIwLjEgNTEuNiA1NS4yIDUxLjYgOTMuMUM2NDAgNDYyLjkgNTkwLjkgNTEyIDUzMC4yIDUxMkg0OTYgNDMyIDMyLjNjLTMuMyAwLTYuNi0uNC05LjYtMS40QzEzLjUgNTA3LjggNiA1MDEgMi40IDQ5Mi4xQzEgNDg4LjcgLjIgNDg1LjIgMCA0ODEuNGMtLjItMy43IC4zLTcuMyAxLjMtMTAuN2MyLjgtOS4yIDkuNi0xNi43IDE4LjYtMjAuNGMzLTEuMiA2LjItMiA5LjUtMi4yTDQzMy4zIDQxMmM4LjMtLjcgMTQuNy03LjcgMTQuNy0xNi4xYzAtNC4zLTEuNy04LjQtNC43LTExLjRsLTQ0LjQtNDQuNGMtMzAtMzAtNDYuOS03MC43LTQ2LjktMTEzLjFWMTgxLjV2LTU3ek01MTIgNzIuM2MwLS4xIDAtLjIgMC0uM3MwLS4yIDAtLjN2LjZ6bS0xLjMgNy40TDQ2NC4zIDY4LjFjLS4yIDEuMy0uMyAyLjYtLjMgMy45YzAgMTMuMyAxMC43IDI0IDI0IDI0YzEwLjYgMCAxOS41LTYuOCAyMi43LTE2LjN6TTEzMC45IDExNi41YzE2LjMtMTQuNSA0MC40LTE2LjIgNTguNS00LjFsMTMwLjYgODdWMjI3YzAgMzIuOCA4LjQgNjQuOCAyNCA5M0gxMTJjLTYuNyAwLTEyLjctNC4yLTE1LTEwLjRzLS41LTEzLjMgNC42LTE3LjdMMTcxIDIzMi4zIDE4LjQgMjU1LjhjLTcgMS4xLTEzLjktMi42LTE2LjktOXMtMS41LTE0LjEgMy44LTE4LjhMMTMwLjkgMTE2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyYXdQb2x5Z29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDE1MS40VjM2MC42YzkuNyA1LjYgMTcuOCAxMy43IDIzLjQgMjMuNEgzMjguNmMwLS4xIC4xLS4yIC4xLS4zbC00LjUtNy45LTMyLTU2IDAgMGMtMS40IC4xLTIuOCAuMS00LjIgLjFjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjRjMS40IDAgMi44IDAgNC4yIC4xbDAgMCAzMi01NiA0LjUtNy45LS4xLS4zSDExOS40Yy01LjYgOS43LTEzLjcgMTcuOC0yMy40IDIzLjR6TTM4NC4zIDM1MmMzNS4yIC4yIDYzLjcgMjguNyA2My43IDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJIMTE5LjRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNFYxNTEuNEMxMi45IDE0MC40IDAgMTE5LjcgMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJIMzI4LjZjMTEuMS0xOS4xIDMxLjctMzIgNTUuNC0zMmMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDM1LjMtMjguNSA2My44LTYzLjcgNjRsLTQuNSA3LjktMzIgNTYtMi4zIDRjNC4yIDguNSA2LjUgMTggNi41IDI4LjFzLTIuMyAxOS42LTYuNSAyOC4xbDIuMyA0IDMyIDU2IDQuNSA3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyb3BsZXRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNTEyYzUzLjIgMCAxMDEuNC0yMS42IDEzNi4xLTU2LjZsLTI5OC4zLTIzNUMxNDAgMjU3LjEgMTI4IDI5Mi4zIDEyOCAzMjBjMCAxMDYgODYgMTkyIDE5MiAxOTJ6TTUwNS4yIDM3MC43YzQuNC0xNi4xIDYuOC0zMy4xIDYuOC01MC43YzAtOTEuMi0xMzAuMi0yNjIuMy0xNjYuNi0zMDguM0MzMzkuNCA0LjIgMzMwLjUgMCAzMjAuOSAwaC0xLjhjLTkuNiAwLTE4LjUgNC4yLTI0LjUgMTEuN0MyNzcuOCAzMyAyNDAuNyA4MS4zIDIwNS44IDEzNkwzOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUwNS4yIDM3MC43ek0yMjQgMzM2YzAgNDQuMiAzNS44IDgwIDgwIDgwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy02MS45IDAtMTEyLTUwLjEtMTEyLTExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcm9wbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA1MTJDODYgNTEyIDAgNDI2IDAgMzIwQzAgMjI4LjggMTMwLjIgNTcuNyAxNjYuNiAxMS43QzE3Mi42IDQuMiAxODEuNSAwIDE5MS4xIDBoMS44YzkuNiAwIDE4LjUgNC4yIDI0LjUgMTEuN0MyNTMuOCA1Ny43IDM4NCAyMjguOCAzODQgMzIwYzAgMTA2LTg2IDE5Mi0xOTIgMTkyek05NiAzMzZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcnVtU3RlZWxwYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYzE1OS4xIDAgMjg4IDQ4IDI4OCAxMjhWMzUyYzAgODAtMTI4LjkgMTI4LTI4OCAxMjhTMCA0MzIgMCAzNTJWMTYwQzAgODAgMTI4LjkgMzIgMjg4IDMyek01MjggMTYwYzAtOS45LTgtMjkuOS01NS00OS44Yy0xOC42LTcuOS00MC45LTE0LjQtNjYtMTkuNGwtMjcuOCA0My42Yy03LjMgMTEuNS0xMS4yIDI0LjgtMTEuMiAzOC40YzAgMTcuNSA2LjQgMzQuNCAxOC4xIDQ3LjVsOS44IDExYzI5LjgtNS4yIDU1LjktMTIuNSA3Ny4yLTIxLjVjNDcuMS0xOS45IDU1LTM5LjkgNTUtNDkuOHpNMzQ5LjIgMjM3LjNjLTgtMjYuMi0zMi40LTQ1LjMtNjEuMi00NS4zcy01My4zIDE5LjEtNjEuMiA0NS4zYzE5LjQgMS43IDM5LjkgMi43IDYxLjIgMi43czQxLjgtLjkgNjEuMi0yLjd6TTE2OSA5MC44Yy0yNS4yIDUtNDcuNCAxMS42LTY2IDE5LjRDNTYgMTMwLjEgNDggMTUwLjEgNDggMTYwczggMjkuOSA1NSA0OS44YzIxLjMgOSA0Ny40IDE2LjMgNzcuMiAyMS41bDkuOC0xMWMxMS42LTEzLjEgMTguMS0zMCAxOC4xLTQ3LjVjMC0xMy42LTMuOS0yNi45LTExLjItMzguNEwxNjkgOTAuOHptNTYuMy04QzIyNC41IDg3IDIyNCA5MS41IDIyNCA5NmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0YzAtNC41LS41LTktMS40LTEzLjJDMzMwLjggODEgMzA5LjggODAgMjg4IDgwcy00Mi44IDEtNjIuNiAyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjIgNzYuMWMxMS4xLTcuMyAxNC4yLTIyLjEgNi45LTMzLjJzLTIyLjEtMTQuMi0zMy4yLTYuOUwzNzAuMiAxMDQuNUMzMzUuOCA5OC43IDI5NyA5NiAyNTYgOTZDMTE0LjYgOTYgMCAxMjggMCAyMDhWMzY4YzAgMzEuMyAyNy40IDU4LjggNzIgNzguN1YzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNFY0NjMuNGMzMyA4LjkgNzEuMSAxNC41IDExMiAxNi4xVjM3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0VjQ3OS41YzQwLjktMS42IDc5LTcuMiAxMTItMTYuMVYzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNFY0NDYuN2M0NC42LTE5LjkgNzItNDcuNCA3Mi03OC43VjIwOGMwLTQxLjEtMzAuMi02OS41LTc4LjgtODcuNGw2Ny45LTQ0LjV6TTMwNy40IDE0NS42bC02NC42IDQyLjNjLTExLjEgNy4zLTE0LjIgMjIuMS02LjkgMzMuMnMyMi4xIDE0LjIgMzMuMiA2LjlsMTExLjEtNzIuOGMxNC43IDMuMiAyNy45IDcgMzkuNCAxMS41QzQ1OC40IDE4MS44IDQ2NCAxOTcuNCA0NjQgMjA4YzAgLjgtMi43IDE3LjItNDYgMzUuOUMzNzkuMSAyNjAuNyAzMjIgMjcyIDI1NiAyNzJzLTEyMy4xLTExLjMtMTYyLTI4LjFDNTAuNyAyMjUuMiA0OCAyMDguOCA0OCAyMDhjMC0xMC42IDUuNi0yNi4yIDQ0LjQtNDEuM0MxMzAuNiAxNTEuOSAxODcuOCAxNDQgMjU2IDE0NGMxOCAwIDM1LjEgLjUgNTEuNCAxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1zdGlja0JpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDI2NS4yYzAgOC41LTMuNCAxNi42LTkuNCAyMi42bC0yNi44IDI2LjhjLTEyLjMgMTIuMy0zMi41IDExLjQtNDkuNCA3LjJDNjkuOCAzMjAuNiA2NSAzMjAgNjAgMzIwYy0zMy4xIDAtNjAgMjYuOS02MCA2MHMyNi45IDYwIDYwIDYwYzYuMyAwIDEyIDUuNyAxMiAxMmMwIDMzLjEgMjYuOSA2MCA2MCA2MHM2MC0yNi45IDYwLTYwYzAtNS0uNi05LjgtMS44LTE0LjVjLTQuMi0xNi45LTUuMi0zNy4xIDcuMi00OS40bDI2LjgtMjYuOGM2LTYgMTQuMS05LjQgMjIuNi05LjRIMzM2YzYuMyAwIDEyLjQtLjMgMTguNS0xYzExLjktMS4yIDE2LjQtMTUuNSAxMC44LTI2Yy04LjUtMTUuOC0xMy4zLTMzLjgtMTMuMy01M2MwLTYxLjkgNTAuMS0xMTIgMTEyLTExMmM4IDAgMTUuNyAuOCAyMy4yIDIuNGMxMS43IDIuNSAyNC4xLTUuOSAyMi0xNy42QzQ5NC41IDYyLjUgNDIyLjUgMCAzMzYgMEMyMzguOCAwIDE2MCA3OC44IDE2MCAxNzZ2ODkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVtYmJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjI0djY0VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4NEg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg5NlY2NHptNDQ4IDB2NjRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJINTQ0djY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjg4IDIyNCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnpNNDE2IDIyNHY2NEgyMjRWMjI0SDQxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVtcHN0ZXJGaXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5LjcgMzJsOTAuOCAwTDExNC45IDE2MGwtOTQgMEM5LjMgMTYwIDAgMTUwLjcgMCAxMzkuMWMwLTIuMSAuMy00LjEgLjktNi4xTDI2LjggNDguOUMyOS45IDM4LjkgMzkuMiAzMiA0OS43IDMyek0yNzIgMTYwbC0xMjQuNSAwTDE3My4xIDMyIDI3MiAzMmwwIDEyOHptMzIgMGwwLTEyOCA5OC45IDAgMTQuNCA3Mi4xYy0xLjcgMS4xLTMuMyAyLjQtNC44IDMuOGMtMTguNCAxNi40LTM1LjQgMzQtNTAuNSA1Mi4xbC01OCAwem0yMDkuOS0yMy43Yy0xLjcgMS42LTMuNCAzLjItNSA0LjhDNDk4IDEyOS42IDQ4Ni43IDExOC42IDQ3NSAxMDhjLTcuNi02LjktMTctMTAuOC0yNi42LTExLjhMNDM1LjUgMzJsOTAuOCAwYzEwLjUgMCAxOS44IDYuOSAyMi45IDE2LjlMNTc1LjEgMTMzYy4yIC43IC40IDEuNCAuNSAyLjFjLTE3LjgtMTUtNDQuMy0xNC42LTYxLjcgMS4yek0zMjUuMiAyMTAuN0MzMDQuMyAyNDQuNSAyODggMjgyLjkgMjg4IDMxOC4xYzAgNDkuMyAxOC42IDk1LjIgNDkuNiAxMjkuOUwxMjggNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyTDQ0IDI4OGwtMTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw0IDAtNC0zMiAzMDUuNSAwYy00LjQgNi4yLTguNSAxMi41LTEyLjMgMTguN3ptMTgwLjYtMzQuNUw1MTggMTYyLjVjNS40LTYuMSAxMy4zLTguOCAyMC45LTguOWM3LjIgMCAxNC4zIDIuNiAxOS45IDcuOGMxOS43IDE4LjMgMzkuOCA0My4yIDU1IDcwLjZDNjI5IDI1OS4yIDY0MCAyOTAuMiA2NDAgMzIwLjJDNjQwIDQwOC44IDU2OC43IDQ4MCA0ODAgNDgwYy04OS42IDAtMTYwLTcxLjMtMTYwLTE1OS44YzAtMzcuMyAxNi03My40IDM2LjgtMTA0LjVjMjAuOS0zMS4zIDQ3LjUtNTkgNzAuOS04MC4yYzUuNy01LjIgMTMuMS03LjcgMjAuMy03LjVjMTQuMSAuMyAyMy44IDExLjQgMzIuNyAyMS42YzAgMCAwIDAgMCAwYzIgMi4zIDQgNC42IDYgNi43bDE5IDE5Ljl6TTU0NCAzNjguMmMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMjk1LjEgNDE2IDMzMS42IDQxNiAzNjguMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1wc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OS43IDMyYy0xMC41IDAtMTkuOCA2LjktMjIuOSAxNi45TC45IDEzM2MtLjYgMi0uOSA0LjEtLjkgNi4xQzAgMTUwLjcgOS4zIDE2MCAyMC45IDE2MGg5NEwxNDAuNSAzMkg0OS43ek0yNzIgMTYwVjMySDE3My4xTDE0Ny41IDE2MEgyNzJ6bTMyIDBINDI4LjVMNDAyLjkgMzJIMzA0VjE2MHptMTU3LjEgMGg5NGMxMS41IDAgMjAuOS05LjMgMjAuOS0yMC45YzAtMi4xLS4zLTQuMS0uOS02LjFMNTQ5LjIgNDguOUM1NDYuMSAzOC45IDUzNi44IDMyIDUyNi4zIDMySDQzNS41bDI1LjYgMTI4ek0zMiAxOTJsNCAzMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0NEw2NCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMkg0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwyMC0xNjBoMTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJoLTRsNC0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVuZ2VvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYuNiAxNTYuNWMxLjMgMS4xIDIuNyAyLjIgMy45IDMuM2M5LjMgOC4yIDIzIDEwLjUgMzMuNCAzLjZsNjcuNi00NS4xYzExLjQtNy42IDE0LjItMjMuMiA1LjEtMzMuNEM0MzAgNjYuNiA0MTAuOSA1MC42IDM4OS43IDM3LjZjLTExLjktNy4zLTI2LjktMS40LTMyLjEgMTEuNmwtMzAuNSA3Ni4yYy00LjUgMTEuMSAuMiAyMy42IDkuNSAzMS4yek0zMjggMzYuOGM1LjEtMTIuOC0xLjYtMjcuNC0xNS0zMC41QzI5NC43IDIuMiAyNzUuNiAwIDI1NiAwcy0zOC43IDIuMi01NyA2LjRDMTg1LjUgOS40IDE3OC44IDI0IDE4NCAzNi44bDMwLjMgNzUuOGM0LjUgMTEuMyAxNi44IDE3LjIgMjkgMTZjNC4yLS40IDguNC0uNiAxMi43LS42czguNiAuMiAxMi43IC42YzEyLjEgMS4yIDI0LjQtNC43IDI5LTE2TDMyOCAzNi44ek02NS41IDg1Yy05LjEgMTAuMi02LjMgMjUuOCA1LjEgMzMuNGw2Ny42IDQ1LjFjMTAuMyA2LjkgMjQuMSA0LjYgMzMuNC0zLjZjMS4zLTEuMSAyLjYtMi4zIDQtMy4zYzkuMy03LjUgMTMuOS0yMC4xIDkuNS0zMS4yTDE1NC40IDQ5LjJjLTUuMi0xMi45LTIwLjMtMTguOC0zMi4xLTExLjZDMTAxLjEgNTAuNiA4MiA2Ni42IDY1LjUgODV6bTMxNCAxMzcuMWMuOSAzLjMgMS43IDYuNiAyLjMgMTBjMi41IDEzIDEzIDIzLjkgMjYuMiAyMy45aDgwYzEzLjMgMCAyNC4xLTEwLjggMjIuOS0yNGMtMi41LTI3LjItOS4zLTUzLjItMTkuNy03Ny4zYy01LjUtMTIuOS0yMS40LTE2LjYtMzMuMS04LjlsLTY4LjYgNDUuN2MtOS44IDYuNS0xMy4yIDE5LjItMTAgMzAuNXpNNTMuOSAxNDUuOGMtMTEuNi03LjgtMjcuNi00LTMzLjEgOC45QzEwLjQgMTc4LjggMy42IDIwNC44IDEuMSAyMzJjLTEuMiAxMy4yIDkuNiAyNCAyMi45IDI0aDgwYzEzLjMgMCAyMy44LTEwLjggMjYuMi0yMy45Yy42LTMuNCAxLjQtNi43IDIuMy0xMGMzLjEtMTEuNC0uMi0yNC0xMC0zMC41TDUzLjkgMTQ1Ljh6TTEwNCAyODhIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMzA0IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEg0MDh6TTI0IDQxNmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNDQwYzAtMTMuMy0xMC43LTI0LTI0LTI0SDI0em0zODQgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNDQwYzAtMTMuMy0xMC43LTI0LTI0LTI0SDQwOHpNMjcyIDE5MmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlY0NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxOTJ6bS02NCAzMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlY0NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMjR6bTEyOCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjI1NiA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDY0VjI4OEgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjRWOTZIMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJEZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi42IDU0LjZsLTQwIDQwYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM2w0MC00MGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zem0tMzIwIDMyMGwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNsMTI4LTEyOGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zek0yNDAgMTI4Yy01Ny42IDAtMTA1LjEgNDMuNi0xMTEuMyA5OS41Yy0xLjkgMTcuNi0xNy44IDMwLjItMzUuMyAyOC4zcy0zMC4yLTE3LjgtMjguMy0zNS4zQzc0LjggMTMyLjUgMTQ5LjQgNjQgMjQwIDY0Yzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2YzAgNDYtMTcuNyA4Ny45LTQ2LjYgMTE5LjNjLTEyIDEzLTE3LjQgMjQuOC0xNy40IDM0LjdWNDAwYzAgNjEuOS01MC4xIDExMi0xMTIgMTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di02LjFjMC0zMi45IDE3LjQtNTkuNiAzNC40LTc4YzE4LjQtMjAgMjkuNi00Ni42IDI5LjYtNzUuOWMwLTYxLjktNTAuMS0xMTItMTEyLTExMnptMCA4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFyTGlzdGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5OC4zIDMuNGMtMTUuOC03LjktMzUtMS41LTQyLjkgMTQuM2MtNy45IDE1LjgtMS41IDM0LjkgMTQuMiA0Mi45bC40IC4yYy40IC4yIDEuMSAuNiAyLjEgMS4yYzIgMS4yIDUgMyA4LjcgNS42YzcuNSA1LjIgMTcuNiAxMy4yIDI3LjcgMjQuMkM0MjguNSAxMTMuNCA0NDggMTQ2IDQ0OCAxOTJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTY2LTI4LjUtMTEzLjQtNTYuNS0xNDMuN0M0NDEuNiAzMy4yIDQyNy43IDIyLjIgNDE3LjMgMTVjLTUuMy0zLjctOS43LTYuNC0xMy04LjNjLTEuNi0xLTMtMS43LTQtMi4yYy0uNS0uMy0uOS0uNS0xLjItLjdsLS40LS4yLS4yLS4xLS4xIDAgMCAwYzAgMCAwIDAtMTQuMyAyOC42TDM5OC4zIDMuNHpNMTI4LjcgMjI3LjVjNi4yLTU2IDUzLjctOTkuNSAxMTEuMy05OS41YzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyYzAgMjkuMy0xMS4yIDU1LjktMjkuNiA3NS45Yy0xNyAxOC40LTM0LjQgNDUuMS0zNC40IDc4VjQwMGMwIDI2LjUtMjEuNSA0OC00OCA0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMnYtNi4xYzAtOS44IDUuNC0yMS43IDE3LjQtMzQuN0MzOTguMyAzMjcuOSA0MTYgMjg2IDQxNiAyNDBjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZDMTQ5LjQgNjQgNzQuOCAxMzIuNSA2NS4xIDIyMC41Yy0xLjkgMTcuNiAxMC43IDMzLjQgMjguMyAzNS4zczMzLjQtMTAuNyAzNS4zLTI4LjN6TTMyIDUxMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTE5MiAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDEuNCAzNjEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwek0yMDggMjQwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJ0aEFmcmljYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcuOCA2My4ybDEwIDE3LjRjMi44IDQuOCA0LjIgMTAuMyA0LjIgMTUuOXY0MS40YzAgMy45IDEuNiA3LjcgNC4zIDEwLjRjNi4yIDYuMiAxNi41IDUuNyAyMi0xLjJsMTMuNi0xN2M0LjctNS45IDEyLjktNy43IDE5LjYtNC4zbDE1LjIgNy42YzMuNCAxLjcgNy4yIDIuNiAxMSAyLjZjNi41IDAgMTIuOC0yLjYgMTcuNC03LjJsMy45LTMuOWMyLjktMi45IDcuMy0zLjYgMTEtMS44bDI5LjIgMTQuNmM3LjggMy45IDEyLjYgMTEuOCAxMi42IDIwLjVjMCAxMC41LTcuMSAxOS42LTE3LjMgMjIuMmwtMzUuNCA4LjhjLTcuNCAxLjgtMTUuMSAxLjUtMjIuNC0uOWwtMzItMTAuN2MtMy4zLTEuMS02LjctMS43LTEwLjItMS43Yy03IDAtMTMuOCAyLjMtMTkuNCA2LjVMMTc2IDIxMmMtMTAuMSA3LjYtMTYgMTkuNC0xNiAzMnYyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOGwyNS42LTM0LjFjOC4zLTExLjEgMTIuOC0yNC42IDEyLjgtMzguNFYzMTguNmMwLTMuOSAyLjYtNy4zIDYuNC04LjJsNS4zLTEuM2MxMS45LTMgMjAuMy0xMy43IDIwLjMtMjZjMC03LjEtMi44LTEzLjktNy44LTE4LjlsLTMzLjUtMzMuNWMtMy43LTMuNy0zLjctOS43IDAtMTMuNGM1LjctNS43IDE0LjEtNy43IDIxLjgtNS4xbDE0LjEgNC43YzEyLjMgNC4xIDI1LjctMS41IDMxLjUtMTNjMy41LTcgMTEuMi0xMC44IDE4LjktOS4ybDI3LjQgNS41QzQzMiAxMTIuNCAzNTEuNSA0OCAyNTYgNDhjLTI3LjcgMC01NCA1LjQtNzguMiAxNS4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVhcnRoQW1lcmljYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcuNyAxOTNsOS40IDE2LjRjOC4zIDE0LjUgMjEuOSAyNS4yIDM4IDI5LjhMMTYzIDI1NS43YzE3LjIgNC45IDI5IDIwLjYgMjkgMzguNXYzOS45YzAgMTEgNi4yIDIxIDE2IDI1LjlzMTYgMTQuOSAxNiAyNS45djM5YzAgMTUuNiAxNC45IDI2LjkgMjkuOSAyMi42YzE2LjEtNC42IDI4LjYtMTcuNSAzMi43LTMzLjhsMi44LTExLjJjNC4yLTE2LjkgMTUuMi0zMS40IDMwLjMtNDBsOC4xLTQuNmMxNS04LjUgMjQuMi0yNC41IDI0LjItNDEuN3YtOC4zYzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlsLTMuOS0zLjljLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDI1N2MtMTEuMSAwLTIyLjEtMi45LTMxLjgtOC40bC0zNC41LTE5LjdjLTQuMy0yLjUtNy42LTYuNS05LjItMTEuMmMtMy4yLTkuNiAxLjEtMjAgMTAuMi0yNC41bDUuOS0zYzYuNi0zLjMgMTQuMy0zLjkgMjEuMy0xLjVsMjMuMiA3LjdjOC4yIDIuNyAxNy4yLS40IDIxLjktNy41YzQuNy03IDQuMi0xNi4zLTEuMi0yMi44bC0xMy42LTE2LjNjLTEwLTEyLTkuOS0yOS41IC4zLTQxLjNsMTUuNy0xOC4zYzguOC0xMC4zIDEwLjItMjUgMy41LTM2LjdsLTIuNC00LjJjLTMuNS0uMi02LjktLjMtMTAuNC0uM0MxNjMuMSA0OCA4NC40IDEwOC45IDU3LjcgMTkzek00NjQgMjU2YzAtMzYuOC05LjYtNzEuNC0yNi40LTEwMS41TDQxMiAxNjQuOGMtMTUuNyA2LjMtMjMuOCAyMy44LTE4LjUgMzkuOGwxNi45IDUwLjdjMy41IDEwLjQgMTIgMTguMyAyMi42IDIwLjlsMjkuMSA3LjNjMS4yLTkgMS44LTE4LjIgMS44LTI3LjV6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFydGhBc2lhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxLjcgMjk1LjFsMzEuNyA2LjNjNy45IDEuNiAxNi0uOSAyMS43LTYuNmwxNS40LTE1LjRjMTEuNi0xMS42IDMxLjEtOC40IDM4LjQgNi4ybDkuMyAxOC41YzQuOCA5LjYgMTQuNiAxNS43IDI1LjQgMTUuN2MxNS4yIDAgMjYuMS0xNC42IDIxLjctMjkuMmwtNi0xOS45Yy00LjYtMTUuNCA2LjktMzAuOSAyMy0zMC45aDIuM2MxMy40IDAgMjUuOS02LjcgMzMuMy0xNy44bDEwLjctMTYuMWM1LjYtOC41IDUuMy0xOS42LS44LTI3LjdsLTE2LjEtMjEuNWMtMTAuMy0xMy43LTMuMy0zMy41IDEzLjQtMzcuN2wxNy00LjNjNy41LTEuOSAxMy42LTcuMiAxNi41LTE0LjRsMTYuNC00MC45QzMwMy40IDUyLjEgMjgwLjIgNDggMjU2IDQ4QzE0MS4xIDQ4IDQ4IDE0MS4xIDQ4IDI1NmMwIDEzLjQgMS4zIDI2LjUgMy43IDM5LjF6bTQwNy43IDQuNmMtMy0uMy02LS4xLTkgLjhsLTE1LjggNC40Yy02LjcgMS45LTEzLjgtLjktMTcuNS02LjdsLTItMy4xYy02LTkuNC0xNi40LTE1LjEtMjcuNi0xNS4xcy0yMS42IDUuNy0yNy42IDE1LjFsLTYuMSA5LjVjLTEuNCAyLjItMy40IDQuMS01LjcgNS4zTDMxMiAzMzAuMWMtMTguMSAxMC4xLTI1LjUgMzIuNC0xNyA1MS4zbDUuNSAxMi40YzguNiAxOS4yIDMwLjcgMjguNSA1MC41IDIxLjFsMi42LTFjMTAtMy43IDIxLjMtMi4yIDI5LjkgNC4xbDEuNSAxLjFjMzcuMi0yOS41IDY0LjEtNzEuNCA3NC40LTExOS41ek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE0NC41IDkyLjFjLTIuMSA4LjYgMy4xIDE3LjMgMTEuNiAxOS40bDMyIDhjOC42IDIuMSAxNy4zLTMuMSAxOS40LTExLjZzLTMuMS0xNy4zLTExLjYtMTkuNGwtMzItOGMtOC42LTIuMS0xNy4zIDMuMS0xOS40IDExLjZ6bTkyLTIwYy0yLjEgOC42IDMuMSAxNy4zIDExLjYgMTkuNHMxNy4zLTMuMSAxOS40LTExLjZsOC0zMmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC04IDMyek0zNDMuMiAxMTMuN2MtNy45LTQtMTcuNS0uNy0yMS41IDcuMmwtMTYgMzJjLTQgNy45LS43IDE3LjUgNy4yIDIxLjVzMTcuNSAuNyAyMS41LTcuMmwxNi0zMmM0LTcuOSAuNy0xNy41LTcuMi0yMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFYXJ0aEV1cm9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjYuMyA0OC4zTDIzMi41IDczLjZjLTUuNCA0LTguNSAxMC40LTguNSAxNy4xdjkuMWMwIDYuOCA1LjUgMTIuMyAxMi4zIDEyLjNjMi40IDAgNC44LS43IDYuOC0yLjFsNDEuOC0yNy45YzItMS4zIDQuNC0yLjEgNi44LTIuMWgxYzYuMiAwIDExLjMgNS4xIDExLjMgMTEuM2MwIDMtMS4yIDUuOS0zLjMgOGwtMTkuOSAxOS45Yy01LjggNS44LTEyLjkgMTAuMi0yMC43IDEyLjhsLTI2LjUgOC44Yy01LjggMS45LTkuNiA3LjMtOS42IDEzLjRjMCAzLjctMS41IDcuMy00LjEgMTBsLTE3LjkgMTcuOWMtNi40IDYuNC05LjkgMTUtOS45IDI0djQuM2MwIDE2LjQgMTMuNiAyOS43IDI5LjkgMjkuN2MxMSAwIDIxLjItNi4yIDI2LjEtMTZsNC04LjFjMi40LTQuOCA3LjQtNy45IDEyLjgtNy45YzQuNSAwIDguNyAyLjEgMTEuNCA1LjdsMTYuMyAyMS43YzIuMSAyLjkgNS41IDQuNSA5LjEgNC41YzguNCAwIDEzLjktOC45IDEwLjEtMTYuNGwtMS4xLTIuM2MtMy41LTcgMC0xNS41IDcuNS0xOGwyMS4yLTcuMWM3LjYtMi41IDEyLjctOS42IDEyLjctMTcuNmMwLTEwLjMgOC4zLTE4LjYgMTguNi0xOC42SDQwMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNzkuM2MtNy4yIDAtMTQuMiAyLjktMTkuMyA4bC00LjcgNC43Yy0yLjEgMi4xLTMuMyA1LTMuMyA4YzAgNi4yIDUuMSAxMS4zIDExLjMgMTEuM2gxMS4zYzYgMCAxMS44IDIuNCAxNiA2LjZsNi41IDYuNWMxLjggMS44IDIuOCA0LjMgMi44IDYuOHMtMSA1LTIuOCA2LjhsLTcuNSA3LjVDMzg2IDI2MiAzODQgMjY2LjkgMzg0IDI3MnMyIDEwIDUuNyAxMy43TDQwOCAzMDRjMTAuMiAxMC4yIDI0LjEgMTYgMzguNiAxNkg0NTRjNi41LTIwLjIgMTAtNDEuNyAxMC02NGMwLTExMS40LTg3LjYtMjAyLjQtMTk3LjctMjA3Ljd6bTE3MiAzMDcuOWMtMy43LTIuNi04LjItNC4xLTEzLTQuMWMtNiAwLTExLjgtMi40LTE2LTYuNkwzOTYgMzMyYy03LjctNy43LTE4LTEyLTI4LjktMTJjLTkuNyAwLTE5LjItMy41LTI2LjYtOS44TDMxNCAyODcuNGMtMTEuNi05LjktMjYuNC0xNS40LTQxLjctMTUuNEgyNTEuNGMtMTIuNiAwLTI1IDMuNy0zNS41IDEwLjdMMTg4LjUgMzAxYy0xNy44IDExLjktMjguNSAzMS45LTI4LjUgNTMuM3YzLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNsMTYgMTZjOC41IDguNSAyMCAxMy4zIDMyIDEzLjNIMjQ4YzEzLjMgMCAyNCAxMC43IDI0IDI0YzAgMi41IC40IDUgMS4xIDcuM2M3MS4zLTUuOCAxMzIuNS00Ny42IDE2NS4yLTEwNy4yek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTE4Ny4zIDEwMC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzIgMzJjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGwzMi0zMmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFydGhPY2VhbmlhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0yMDguNiAzNTcuM2wtMzktMTMuNWMtNi41LTIuMi0xMy42LTIuMy0yMC4xLS4zbC0xNS4zIDQuOWMtMTguNSA1LjktMzguNS0yLjQtNDcuNS0xOS41bC0zLjMtNi4yYy0xMC42LTIwLjEtMi4zLTQ1IDE4LjItNTQuN2wzNS4zLTE2LjhjMi4zLTEuMSA0LjQtMi44IDUuOS00LjhsNS4zLTdjNy4yLTkuNiAxOC42LTE1LjMgMzAuNi0xNS4zczIzLjQgNS43IDMwLjYgMTUuM2w0LjYgNi4xYzIgMi42IDQuOSA0LjUgOC4xIDUuMWM3LjggMS42IDE1LjctMS41IDIwLjQtNy45bDEwLjQtMTQuMmMyLTIuOCA1LjMtNC40IDguNy00LjRjNC40IDAgOC40IDIuNyAxMCA2LjhsMTAuMSAyNS45YzIuOCA3LjIgNi43IDE0IDExLjUgMjAuMkwzMTEgMjk5LjhjNS44IDcuNCA5IDE2LjYgOSAyNnMtMy4yIDE4LjYtOSAyNkwyOTkgMzY3LjJjLTguMyAxMC42LTIxIDE2LjgtMzQuNCAxNi44Yy04LjQgMC0xNi42LTIuNC0yMy43LTdsLTI1LjQtMTYuNGMtMi4yLTEuNC00LjUtMi41LTYuOS0zLjR6bTY1LjItMjE0LjhMMjk2IDE2NC43YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjNIMjU0LjhjLTUuNiAwLTExLjEtMS4yLTE2LjItMy40bC00Mi44LTE5Yy0xNC4zLTYuMy0xMS45LTI3LjMgMy40LTMwLjNsMzguNS03LjdjMTMuMS0yLjYgMjYuNyAxLjUgMzYuMSAxMC45ek0yNDggNDMyYzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNjRjLTguOCAwLTE2LTcuMi0xNi0xNnpNNDMxLjIgMjk4LjlsOCAyNGMyLjggOC40LTEuNyAxNy40LTEwLjEgMjAuMnMtMTcuNC0xLjctMjAuMi0xMC4xbC04LTI0Yy0yLjgtOC40IDEuNy0xNy40IDEwLjEtMjAuMnMxNy40IDEuNyAyMC4yIDEwLjF6bS0xOS45IDgwLjRsLTMyIDMyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDMyLTMyYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA0OTZDODYgNDk2IDAgMzk0IDAgMjg4QzAgMTc2IDY0IDE2IDE5MiAxNnMxOTIgMTYwIDE5MiAyNzJjMCAxMDYtODYgMjA4LTE5MiAyMDh6TTE1NC44IDEzNGM2LjUtNiA3LTE2LjEgMS0yMi42cy0xNi4xLTctMjIuNi0xYy0yMy45IDIxLjgtNDEuMSA1Mi43LTUyLjMgODQuMkM2OS43IDIyNi4xIDY0IDI1OS43IDY0IDI4OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMjQuNSA1LTU0LjQgMTUuMS04Mi44YzEwLjEtMjguNSAyNS01NC4xIDQzLjctNzEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDMyYzEzLjUgMCAyNi4zIDUuNiAzNS40IDE1LjZsMTc2IDE5MmMxMi45IDE0IDE2LjIgMzQuMyA4LjYgNTEuOFM0MTkgMzIwIDQwMCAzMjBINDhjLTE5IDAtMzYuMy0xMS4yLTQzLjktMjguN3MtNC4zLTM3LjcgOC42LTUxLjhsMTc2LTE5MkMxOTcuNyAzNy42IDIxMC41IDMyIDIyNCAzMnpNMCA0MzJjMC0yNi41IDIxLjUtNDggNDgtNDhINDAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWxldmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMyLjcgNC43bC02NCA2NGMtNC42IDQuNi01LjkgMTEuNS0zLjUgMTcuNHM4LjMgOS45IDE0LjggOS45SDIwOGM2LjUgMCAxMi4zLTMuOSAxNC44LTkuOXMxLjEtMTIuOS0zLjUtMTcuNGwtNjQtNjRjLTYuMi02LjItMTYuNC02LjItMjIuNiAwek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em05NiA5NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTgwIDQwMGMwLTI2LjUgMjEuNS00OCA0OC00OGg2NGMyNi41IDAgNDggMjEuNSA0OCA0OHYxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwMHptMTkyIDBjMC0yNi41IDIxLjUtNDggNDgtNDhoNjRjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzA0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDB6bTMyLTEyOGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek0zNTYuNyA5MS4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDY0LTY0YzQuNi00LjYgNS45LTExLjUgMy41LTE3LjRTNDM4LjUgMCA0MzIgMEgzMDRjLTYuNSAwLTEyLjMgMy45LTE0LjggOS45cy0xLjEgMTIuOSAzLjUgMTcuNGw2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWxsaXBzaXNWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTI4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzNjBhNTYgNTYgMCAxIDAgMCAxMTIgNTYgNTYgMCAxIDAgMC0xMTJ6bTAtMTYwYTU2IDU2IDAgMSAwIDAgMTEyIDU2IDU2IDAgMSAwIDAtMTEyek0xMjAgOTZBNTYgNTYgMCAxIDAgOCA5NmE1NiA1NiAwIDEgMCAxMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWxsaXBzaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZhNTYgNTYgMCAxIDEgMTEyIDBBNTYgNTYgMCAxIDEgOCAyNTZ6bTE2MCAwYTU2IDU2IDAgMSAxIDExMiAwIDU2IDU2IDAgMSAxIC0xMTIgMHptMjE2LTU2YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZUNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEyYzAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRMMjM2LjggMzEzLjZjMTEuNCA4LjUgMjcgOC41IDM4LjQgMGw1Ny40LTQzYzIzLjktNTkuOCA3OS43LTEwMy4zIDE0Ni4zLTEwOS44bDEzLjktMTAuNGMxMi4xLTkuMSAxOS4yLTIzLjMgMTkuMi0zOC40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek0yOTQuNCAzMzkuMmMtMjIuOCAxNy4xLTU0IDE3LjEtNzYuOCAwTDAgMTc2VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzNjAuMkMzMzUuMSA0MTcuNiAzMjAgMzc4LjUgMzIwIDMzNmMwLTUuNiAuMy0xMS4xIC44LTE2LjZsLTI2LjQgMTkuOHpNNjQwIDMzNmExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDgwIDM1My40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVPcGVuVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTUuNCA5NkgxNDQgMTA3LjggOTZ2OC44VjE0NHY0MC40IDg5TC4yIDIwMi41YzEuNi0xOC4xIDEwLjktMzQuOSAyNS43LTQ1LjhMNDggMTQwLjNWOTZjMC0yNi41IDIxLjUtNDggNDgtNDhoNzYuNmw0OS45LTM2LjlDMjMyLjIgMy45IDI0My45IDAgMjU2IDBzMjMuOCAzLjkgMzMuNSAxMUwzMzkuNCA0OEg0MTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDQuM2wyMi4xIDE2LjRjMTQuOCAxMC45IDI0LjEgMjcuNyAyNS43IDQ1LjhMNDE2IDI3My40di04OVYxNDQgMTA0LjggOTZINDA0LjIgMzY4IDI5Ni42IDIxNS40ek0wIDQ0OFYyNDIuMUwyMTcuNiA0MDMuM2MxMS4xIDguMiAyNC42IDEyLjcgMzguNCAxMi43czI3LjMtNC40IDM4LjQtMTIuN0w1MTIgMjQyLjFWNDQ4djBjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0djB6TTE3NiAxNjBIMzM2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEgzMzZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjA4LjFMMjU2IDY1LjkgNDQ4IDIwOC4xdjQ3LjRMMjg5LjUgMzczYy05LjcgNy4yLTIxLjQgMTEtMzMuNSAxMXMtMjMuOC0zLjktMzMuNS0xMUw2NCAyNTUuNVYyMDguMXpNMjU2IDBjLTEyLjEgMC0yMy44IDMuOS0zMy41IDExTDI1LjkgMTU2LjdDOS42IDE2OC44IDAgMTg3LjggMCAyMDguMVY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjIwOC4xYzAtMjAuMy05LjYtMzkuNC0yNS45LTUxLjRMMjg5LjUgMTFDMjc5LjggMy45IDI2OC4xIDAgMjU2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDY0QzIxLjUgNjQgMCA4NS41IDAgMTEyYzAgMTUuMSA3LjEgMjkuMyAxOS4yIDM4LjRMMjM2LjggMzEzLjZjMTEuNCA4LjUgMjcgOC41IDM4LjQgMEw0OTIuOCAxNTAuNGMxMi4xLTkuMSAxOS4yLTIzLjMgMTkuMi0zOC40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4ek0wIDE3NlYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE3NkwyOTQuNCAzMzkuMmMtMjIuOCAxNy4xLTU0IDE3LjEtNzYuOCAwTDAgMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZXNCdWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwQzExMC4zIDAgOTYgMTQuMyA5NiAzMlYyMjRoOTZWMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0SDQ4MFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxMjh6TTI1NiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyaDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNkg1NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NnptMjQwIDY0aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINDk2Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNnpNNjQgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxM0wxODcuMSA0MTUuOWMxLjQgMSAzLjEgMS42IDQuOSAxLjZzMy41LS42IDQuOS0xLjZMMzUyIDMwMVYyODhjMC0xNy43LTE0LjMtMzItMzItMzJINjR6bTI4OCA4NC44TDIxNiA0NDEuNmMtNi45IDUuMS0xNS4zIDcuOS0yNCA3LjlzLTE3LTIuOC0yNC03LjlMMzIgMzQwLjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDAuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXF1YWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDh6bTAgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQwMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXJhc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC43IDU3LjRMNTcuNCAyOTAuN2MtMjUgMjUtMjUgNjUuNSAwIDkwLjVsODAgODBjMTIgMTIgMjguMyAxOC43IDQ1LjMgMTguN0gyODhoOS40SDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzODcuOUw1MTguNiAyODUuM2MyNS0yNSAyNS02NS41IDAtOTAuNUwzODEuMyA1Ny40Yy0yNS0yNS02NS41LTI1LTkwLjUgMHpNMjk3LjQgNDE2SDI4OGwtMTA1LjQgMC04MC04MEwyMjcuMyAyMTEuMyAzNjQuNyAzNDguNyAyOTcuNCA0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0aGVybmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0VjQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NlYzMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlY0NDhoNjRWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWNDQ4aDY0VjMzNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjQ0OGg2NFYzMzZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlY0NDhoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ0OFYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJIMzg0Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXVyb1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDguMSAyNDBjLS4xIDIuNy0uMSA1LjMtLjEgOHYxNmMwIDIuNyAwIDUuMyAuMSA4SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDYwLjNDODkuOSA0MTkuOSAxNzAgNDgwIDI2NCA0ODBoMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjY0Yy01Ny45IDAtMTA4LjItMzIuNC0xMzMuOS04MEgyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTEyLjJjLS4xLTIuNi0uMi01LjMtLjItOFYyNDhjMC0yLjcgLjEtNS40IC4yLThIMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDEzMC4xYzI1LjctNDcuNiA3Ni04MCAxMzMuOS04MGgyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNjRDMTcwIDMyIDg5LjkgOTIuMSA2MC4zIDE3NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0OC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0VjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjY0ek0zMiA0ODBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjk2aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyek02NCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjRWMzUyek0zMjAgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoNjR2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjB6TTQ0OCAzNTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjRIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXhwbG9zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OS42IDExLjNjNi43LTEwLjcgMjAuNS0xNC41IDMxLjctOC41czE1LjggMTkuNSAxMC42IDMxTDQwNC44IDMzOC42YzIuMiAyLjMgNC4zIDQuNyA2LjMgNy4xbDk3LjItNTQuN2MxMC41LTUuOSAyMy42LTMuMSAzMC45IDYuNHM2LjMgMjMtMi4yIDMxLjVsLTg3IDg3SDM3OC41Yy0xMy4yLTM3LjMtNDguNy02NC05MC41LTY0cy03Ny40IDI2LjctOTAuNSA2NEgxMTcuOEw0Mi4zIDM2My43Yy05LjctNi43LTEzLjEtMTkuNi03LjktMzAuM3MxNy40LTE1LjkgMjguNy0xMi40bDk3LjIgMzAuNGMzLTMuOSA2LjEtNy43IDkuNC0xMS4zTDEwNy40IDIzNi4zYy02LjEtMTAuMS0zLjktMjMuMSA1LjEtMzAuN3MyMi4yLTcuNSAzMS4xIC4xTDI0NiAyOTMuNmMxLjUtLjQgMy0uOCA0LjUtMS4xbDEzLjYtMTQyLjdjMS4yLTEyLjMgMTEuNS0yMS43IDIzLjktMjEuN3MyMi43IDkuNCAyMy45IDIxLjdsMTMuNSAxNDEuOUw0OTkuNiAxMS4zek02NCA0NDh2MEg1MTJ2MGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg2NHpNMjg4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZURyb3BwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQxLjYgMjkuMkwyNDAuMSAxMzAuOGwtOS40LTkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsMTYwIDE2MGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC05LjQtOS40TDQ4Mi44IDE3MC40YzM5LTM5IDM5LTEwMi4yIDAtMTQxLjFzLTEwMi4yLTM5LTE0MS4xIDB6TTU1LjQgMzIzLjNjLTE1IDE1LTIzLjQgMzUuNC0yMy40IDU2LjZ2NDIuNEw1LjQgNDYyLjJjLTguNSAxMi43LTYuOCAyOS42IDQgNDAuNHMyNy43IDEyLjUgNDAuNCA0TDg5LjcgNDgwaDQyLjRjMjEuMiAwIDQxLjYtOC40IDU2LjYtMjMuNEwzMDkuNCAzMzUuOWwtNDUuMy00NS4zTDE0My40IDQxMS4zYy0zIDMtNy4xIDQuNy0xMS4zIDQuN0g5NlYzNzkuOWMwLTQuMiAxLjctOC4zIDQuNy0xMS4zTDIyMS40IDI0Ny45bC00NS4zLTQ1LjNMNTUuNCAzMjMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXllTG93VmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNTI1LjYgMzg2LjdjMzkuNi00MC42IDY2LjQtODYuMSA3OS45LTExOC40YzMuMy03LjkgMy4zLTE2LjcgMC0yNC42Yy0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xQzQ2NS41IDY4LjggNDAwLjggMzIgMzIwIDMyYy02OC4yIDAtMTI1IDI2LjMtMTY5LjMgNjAuOEwzOC44IDUuMXpNMjIzIDE0OS41YzQ4LjYtNDQuMyAxMjMtNTAuOCAxNzkuMy0xMS43YzYwLjggNDIuNCA3OC45IDEyMy4yIDQ0LjIgMTg2LjlMNDA4IDI5NC41YzguNC0xOS4zIDEwLjYtNDEuNCA0LjgtNjMuM2MtMTEuMS00MS41LTQ3LjgtNjkuNC04OC42LTcxLjFjLTUuOC0uMi05LjIgNi4xLTcuNCAxMS43YzIuMSA2LjQgMy4zIDEzLjIgMy4zIDIwLjNjMCAxMC4yLTIuNCAxOS44LTYuNiAyOC4zTDIyMyAxNDkuNXptLTEzOS45IDEyYy0xMSAxNC40LTIwLjUgMjguNy0yOC40IDQyLjJsMzM5IDI2NS43YzE4LjctNS41IDM2LjItMTMgNTIuNi0yMS44TDgzLjEgMTYxLjV6bS01MCA4Ni4zYy0xLjggNi44LTEuMyAxNCAxLjQgMjAuNWMxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xQzE3NC41IDQ0My4yIDIzOS4yIDQ4MCAzMjAgNDgwYzMuMSAwIDYuMS0uMSA5LjItLjJMMzMuMSAyNDcuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXllU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN0w1MjUuNiAzODYuN2MzOS42LTQwLjYgNjYuNC04Ni4xIDc5LjktMTE4LjRjMy4zLTcuOSAzLjMtMTYuNyAwLTI0LjZjLTE0LjktMzUuNy00Ni4yLTg3LjctOTMtMTMxLjFDNDY1LjUgNjguOCA0MDAuOCAzMiAzMjAgMzJjLTY4LjIgMC0xMjUgMjYuMy0xNjkuMyA2MC44TDM4LjggNS4xek0yMjMuMSAxNDkuNUMyNDguNiAxMjYuMiAyODIuNyAxMTIgMzIwIDExMmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NGMwIDI0LjktNi4zIDQ4LjMtMTcuNCA2OC43TDQwOCAyOTQuNWM4LjQtMTkuMyAxMC42LTQxLjQgNC44LTYzLjNjLTExLjEtNDEuNS00Ny44LTY5LjQtODguNi03MS4xYy01LjgtLjItOS4yIDYuMS03LjQgMTEuN2MyLjEgNi40IDMuMyAxMy4yIDMuMyAyMC4zYzAgMTAuMi0yLjQgMTkuOC02LjYgMjguM2wtOTAuMy03MC44ek0zNzMgMzg5LjljLTE2LjQgNi41LTM0LjMgMTAuMS01MyAxMC4xYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NGMwLTYuOSAuNS0xMy42IDEuNC0yMC4yTDgzLjEgMTYxLjVDNjAuMyAxOTEuMiA0NCAyMjAuOCAzNC41IDI0My43Yy0zLjMgNy45LTMuMyAxNi43IDAgMjQuNmMxNC45IDM1LjcgNDYuMiA4Ny43IDkzIDEzMS4xQzE3NC41IDQ0My4yIDIzOS4yIDQ4MCAzMjAgNDgwYzQ3LjggMCA4OS45LTEyLjkgMTI2LjItMzIuNUwzNzMgMzg5Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjLTgwLjggMC0xNDUuNSAzNi44LTE5Mi42IDgwLjZDNDguNiAxNTYgMTcuMyAyMDggMi41IDI0My43Yy0zLjMgNy45LTMuMyAxNi43IDAgMjQuNkMxNy4zIDMwNCA0OC42IDM1NiA5NS40IDM5OS40QzE0Mi41IDQ0My4yIDIwNy4yIDQ4MCAyODggNDgwczE0NS41LTM2LjggMTkyLjYtODAuNmM0Ni44LTQzLjUgNzguMS05NS40IDkzLTEzMS4xYzMuMy03LjkgMy4zLTE2LjcgMC0yNC42Yy0xNC45LTM1LjctNDYuMi04Ny43LTkzLTEzMS4xQzQzMy41IDY4LjggMzY4LjggMzIgMjg4IDMyek0xNDQgMjU2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTE0NC02NGMwIDM1LjMtMjguNyA2NC02NCA2NGMtNy4xIDAtMTMuOS0xLjItMjAuMy0zLjNjLTUuNS0xLjgtMTEuOSAxLjYtMTEuNyA3LjRjLjMgNi45IDEuMyAxMy44IDMuMiAyMC43YzEzLjcgNTEuMiA2Ni40IDgxLjYgMTE3LjYgNjcuOXM4MS42LTY2LjQgNjcuOS0xMTcuNmMtMTEuMS00MS41LTQ3LjgtNjkuNC04OC42LTcxLjFjLTUuOC0uMi05LjIgNi4xLTcuNCAxMS43YzIuMSA2LjQgMy4zIDEzLjIgMy4zIDIwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlYyNTYgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjg4SDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg2NFY5NkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VBbmdyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTMzOC43IDM5NS45YzYuNi01LjkgNy4xLTE2IDEuMi0yMi42QzMyMy44IDM1NS40IDI5NS43IDMzNiAyNTYgMzM2cy02Ny44IDE5LjQtODMuOSAzNy4zYy01LjkgNi42LTUuNCAxNi43IDEuMiAyMi42czE2LjcgNS40IDIyLjYtMS4yYzExLjctMTMgMzEuNi0yNi43IDYwLjEtMjYuN3M0OC40IDEzLjcgNjAuMSAyNi43YzUuOSA2LjYgMTYgNy4xIDIyLjYgMS4yek0xNzYuNCAyNzJjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC0xLjUtLjEtMy0uMy00LjRsMTAuOSAzLjZjOC40IDIuOCAxNy40LTEuNyAyMC4yLTEwLjFzLTEuNy0xNy40LTEwLjEtMjAuMmwtOTYtMzJjLTguNC0yLjgtMTcuNCAxLjctMjAuMiAxMC4xczEuNyAxNy40IDEwLjEgMjAuMmwzMC43IDEwLjJjLTUuOCA1LjgtOS4zIDEzLjgtOS4zIDIyLjZjMCAxNy43IDE0LjMgMzIgMzIgMzJ6bTE5Mi0zMmMwLTguOS0zLjYtMTctOS41LTIyLjhsMzAuMi0xMC4xYzguNC0yLjggMTIuOS0xMS45IDEwLjEtMjAuMnMtMTEuOS0xMi45LTIwLjItMTAuMWwtOTYgMzJjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMnMxMS45IDEyLjkgMjAuMiAxMC4xbDExLjctMy45Yy0uMiAxLjUtLjMgMy4xLS4zIDQuN2MwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlRGl6enkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTAtMjI0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4ek0xMDAuNyAxMzIuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMEwxNjAgMTY5LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkwxODIuNiAxOTJsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMMTYwIDIxNC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMMTM3LjQgMTkybC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42em0xOTIgMGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMEwzNTIgMTY5LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkwzNzQuNiAxOTJsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMMzUyIDIxNC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMMzI5LjQgMTkybC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlRmx1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTE3NiAzODRjMCA4LjggNy4yIDE2IDE2IDE2SDMyMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnptLTE2LTg4YTcyIDcyIDAgMSAwIDAtMTQ0IDcyIDcyIDAgMSAwIDAgMTQ0em0yNjQtNzJhNzIgNzIgMCAxIDAgLTE0NCAwIDcyIDcyIDAgMSAwIDE0NCAwem0tMjg4IDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTkyIDBhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUZyb3duT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTI4IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bS0xMjIgMTc0LjVjLTEyLjQgNS4yLTI2LjUtNC4xLTIxLjEtMTYuNGMxNi0zNi42IDUyLjQtNjIuMSA5NC44LTYyLjFzNzguOCAyNS42IDk0LjggNjIuMWM1LjQgMTIuMy04LjcgMjEuNi0yMS4xIDE2LjRjLTIyLjQtOS41LTQ3LjQtMTQuOC03My43LTE0LjhzLTUxLjMgNS4zLTczLjcgMTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUZyb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNTkuMyAzODguN2MtMi42IDguNC0xMS42IDEzLjItMjAgMTAuNXMtMTMuMi0xMS42LTEwLjUtMjBDMTQ1LjIgMzI2LjEgMTk2LjMgMjg4IDI1NiAyODhzMTEwLjggMzguMSAxMjcuMyA5MS4zYzIuNiA4LjQtMi4xIDE3LjQtMTAuNSAyMHMtMTcuNC0yLjEtMjAtMTAuNUMzNDAuNSAzNDkuNCAzMDIuMSAzMjAgMjU2IDMyMHMtODQuNSAyOS40LTk2LjcgNjguN3pNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmltYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem05Ni0xMTJoLThWMzYwbDU1LjMgMGMtMy44IDIyLjctMjMuNiA0MC00Ny4zIDQwem00Ny4zLTU2TDM0NCAzNDRWMzA0aDhjMjMuOCAwIDQzLjUgMTcuMyA0Ny4zIDQwek0zMjggMzQ0SDI2NFYzMDRoNjR2NDB6bTAgNTZIMjY0VjM2MGg2NHY0MHptLTgwLTk2djQwbC02NCAwVjMwNGg2NHptMCA1NnY0MEgxODRWMzYwbDY0IDB6bS04MC0xNkgxMTIuN2MzLjgtMjIuNyAyMy42LTQwIDQ3LjMtNDBoOHY0MHptMCA1NmgtOGMtMjMuOCAwLTQzLjUtMTcuMy00Ny4zLTQwSDE2OHY0MHpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluQmVhbVN3ZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Ni44IDEyNi4zYy00LjEgMS4xLTguNCAxLjctMTIuOCAxLjdjLTI2LjUgMC00OC0yMS00OC00N2MwLTUgMS44LTExLjMgNC42LTE4LjFjLjMtLjcgLjYtMS40IC45LTIuMWM5LTIwLjIgMjYuNS00NC45IDM2LTU3LjVjMy4yLTQuNCA5LjYtNC40IDEyLjggMEM0ODMuNCAyMC42IDUxMiA2MSA1MTIgODFjMCAyMS43LTE0LjkgMzkuOC0zNS4yIDQ1LjN6TTI1NiAwYzUxLjQgMCA5OS4zIDE1LjIgMTM5LjQgNDEuMmMtMS41IDMuMS0zIDYuMi00LjMgOS4zYy0zLjQgOC03LjEgMTktNy4xIDMwLjVjMCA0NC4zIDM2LjYgNzkgODAgNzljOS42IDAgMTguOC0xLjcgMjcuNC00LjhjMTMuMyAzMC45IDIwLjYgNjUgMjAuNiAxMDAuOGMwIDE0MS40LTExNC42IDI1Ni0yNTYgMjU2UzAgMzk3LjQgMCAyNTZTMTE0LjYgMCAyNTYgMHpNMzg4LjEgMzEyLjhjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzI1IDU5LjEgODMuMiAxMDAuNSAxNTEuMSAxMDAuNXMxMjYuMi00MS40IDE1MS4xLTEwMC41YzUtMTEuOC03LTIyLjUtMTkuMy0xOC43em0tMTcwLjUtODRsMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTI2LjcgMTg4LjQgMTIwIDIwNi4xIDEyMCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhsMCAwIDAgMCAwIDAgLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjIgMCAwIDAgMHptMTYwIDBsMCAwIDAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzI4Ni43IDE4OC40IDI4MCAyMDYuMSAyODAgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44bDAgMCAwIDAgMCAwIC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5CZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6bS0xNzAuNS04NGwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpbkhlYXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5ek0xOTkuMyAxMjkuMWMxNy44IDQuOCAyOC40IDIzLjEgMjMuNiA0MC44bC0xNy40IDY1Yy0yLjMgOC41LTExLjEgMTMuNi0xOS42IDExLjNsLTY1LjEtMTcuNGMtMTcuOC00LjgtMjguNC0yMy4xLTIzLjYtNDAuOHMyMy4xLTI4LjQgNDAuOC0yMy42bDE2LjEgNC4zIDQuMy0xNi4xYzQuOC0xNy44IDIzLjEtMjguNCA0MC44LTIzLjZ6bTE1NC4zIDIzLjZsNC4zIDE2LjEgMTYuMS00LjNjMTcuOC00LjggMzYuMSA1LjggNDAuOCAyMy42cy01LjggMzYuMS0yMy42IDQwLjhsLTY1LjEgMTcuNGMtOC41IDIuMy0xNy4zLTIuOC0xOS42LTExLjNsLTE3LjQtNjVjLTQuOC0xNy44IDUuOC0zNi4xIDIzLjYtNDAuOHMzNi4xIDUuOCA0MC45IDIzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluU3F1aW50VGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI2LjggMTQuMkM0NDYtNSA0NzcuNS00LjYgNDk3LjEgMTQuOXMyMCA1MSAuNyA3MC4zYy02LjggNi44LTIxLjQgMTIuNC0zNy40IDE2LjdjLTE2LjMgNC40LTM0LjEgNy41LTQ2LjMgOS4zYy0xLjYgLjItMy4xIC41LTQuNiAuNmMtNS42IC45LTEwLjMtMy45LTkuNS05LjVjMS42LTExLjIgNC42LTI5LjYgOS00N2MuMy0xLjMgLjctMi42IDEtMy45YzQuMy0xNS45IDkuOC0zMC41IDE2LjctMzcuNHptLTQ0LjcgMTljLTEuNSA0LjgtMi45IDkuNi00LjEgMTQuM2MtNC44IDE4LjktOCAzOC41LTkuNyA1MC4zYy00IDI2LjggMTguOSA0OS43IDQ1LjcgNDUuOGMxMS45LTEuNiAzMS41LTQuOCA1MC40LTkuN2M0LjctMS4yIDkuNS0yLjUgMTQuMy00LjFDNTM0LjIgMjI3LjUgNTIwLjIgMzUzLjggNDM3IDQzN2MtODMuMiA4My4yLTIwOS41IDk3LjItMzA3LjIgNDEuOGMxLjUtNC44IDIuOC05LjYgNC0xNC4zYzQuOC0xOC45IDgtMzguNSA5LjctNTAuM2M0LTI2LjgtMTguOS00OS43LTQ1LjctNDUuOGMtMTEuOSAxLjYtMzEuNSA0LjgtNTAuNCA5LjdjLTQuNyAxLjItOS41IDIuNS0xNC4zIDQuMUMtMjIuMiAyODQuNS04LjIgMTU4LjIgNzUgNzVDMTU4LjItOC4zIDI4NC41LTIyLjIgMzgyLjIgMzMuMnpNNTEuNSA0MTAuMWMxOC41LTUgMzguOC04LjMgNTAuOS0xMGM1LjYtLjkgMTAuMyAzLjkgOS41IDkuNWMtMS43IDEyLjEtNSAzMi40LTEwIDUwLjlDOTcuNiA0NzYuNCA5MiA0OTEgODUuMiA0OTcuOEM2NiA1MTcgMzQuNSA1MTYuNiAxNC45IDQ5Ny4xcy0yMC01MS0uNy03MC4zYzYuOC02LjggMjEuNC0xMi40IDM3LjQtMTYuN3pNNDE2LjQgMjAyLjNjLTQuOC0xMS45LTIwLjktMTAuOS0yNi45IC40Yy0xOS40IDM2LjctNDYuMyA3My4yLTc5LjggMTA2LjdzLTcwIDYwLjMtMTA2LjcgNzkuOGMtMTEuMyA2LTEyLjMgMjIuMS0uNCAyNi45YzU5LjQgMjQuMSAxMjkuOSAxMi4yIDE3Ny45LTM1LjhzNTkuOS0xMTguNSAzNS44LTE3Ny45ek04Ny4xIDI4NS4xYzIgMiA0LjYgMy4yIDcuMyAzLjRsNTYuMSA1LjEgNS4xIDU2LjFjLjMgMi44IDEuNSA1LjQgMy40IDcuM2M2LjMgNi4zIDE3LjIgMy42IDE5LjgtNC45bDI5LjctOTcuNGMzLjUtMTEuNi03LjMtMjIuNS0xOS0xOUw5MiAyNjUuM2MtOC42IDIuNi0xMS4zIDEzLjQtNC45IDE5Ljh6TTI2NS4zIDkybC0yOS43IDk3LjRjLTMuNSAxMS42IDcuMyAyMi41IDE5IDE5bDk3LjQtMjkuN2M4LjYtMi42IDExLjMtMTMuNCA0LjktMTkuOGMtMi0yLTQuNi0zLjItNy4zLTMuNGwtNTYuMS01LjEtNS4xLTU2LjFjLS4zLTIuOC0xLjUtNS40LTMuNC03LjNjLTYuMy02LjMtMTcuMi0zLjYtMTkuOCA0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zODguMSAzMTIuOGMxMi4zLTMuOCAyNC4zIDYuOSAxOS4zIDE4LjdDMzgyLjQgMzkwLjYgMzI0LjIgNDMyIDI1Ni4zIDQzMnMtMTI2LjItNDEuNC0xNTEuMS0xMDAuNWMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTl6TTEzMy41IDE0Ni43bDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTU3LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em00MDcuNCA3NS41YzUtMTEuOC03LTIyLjUtMTkuMy0xOC43Yy0zOS43IDEyLjItODQuNSAxOS0xMzEuOCAxOXMtOTIuMS02LjgtMTMxLjgtMTljLTEyLjMtMy44LTI0LjMgNi45LTE5LjMgMTguN2MyNSA1OS4xIDgzLjIgMTAwLjUgMTUxLjEgMTAwLjVzMTI2LjItNDEuNCAxNTEuMS0xMDAuNXpNMTYwIDEyMGMtMy4xIDAtNS45IDEuOC03LjIgNC42bC0xNi42IDM0LjctMzguMSA1Yy0zLjEgLjQtNS42IDIuNS02LjYgNS41cy0uMSA2LjIgMi4xIDguM2wyNy45IDI2LjUtNyAzNy44Yy0uNiAzIC43IDYuMSAzLjIgNy45czUuOCAyIDguNSAuNkwxNjAgMjMyLjVsMzMuOCAxOC4zYzIuNyAxLjUgNiAxLjMgOC41LS42czMuNy00LjkgMy4yLTcuOWwtNy0zNy44TDIyNi40IDE3OGMyLjItMi4xIDMuMS01LjMgMi4xLTguM3MtMy41LTUuMS02LjYtNS41bC0zOC4xLTUtMTYuNi0zNC43Yy0xLjMtMi44LTQuMS00LjYtNy4yLTQuNnptMTkyIDBjLTMuMSAwLTUuOSAxLjgtNy4yIDQuNmwtMTYuNiAzNC43LTM4LjEgNWMtMy4xIC40LTUuNiAyLjUtNi42IDUuNXMtLjEgNi4yIDIuMSA4LjNsMjcuOSAyNi41LTcgMzcuOGMtLjYgMyAuNyA2LjEgMy4yIDcuOXM1LjggMiA4LjUgLjZMMzUyIDIzMi41bDMzLjggMTguM2MyLjcgMS41IDYgMS4zIDguNS0uNnMzLjctNC45IDMuMi03LjlsLTctMzcuOEw0MTguNCAxNzhjMi4yLTIuMSAzLjEtNS4zIDIuMS04LjNzLTMuNS01LjEtNi42LTUuNWwtMzguMS01LTE2LjYtMzQuN2MtMS4zLTIuOC00LjEtNC42LTcuMi00LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluVGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ4LjYgMzcxLjRDNTA2LjQgNDU0LjggNDE5LjkgNTEyIDMyMCA1MTJzLTE4Ni40LTU3LjItMjI4LjYtMTQwLjZjNC41LTIuOSA4LjctNi4zIDEyLjctMTAuM2M4LjEtOC4xIDEzLjItMTguNiAxNi41LTI2LjZjMy42LTguOCA2LjUtMTguNCA4LjgtMjcuNWM0LjYtMTguMiA3LjctMzcgOS4zLTQ4LjJjMy45LTI2LjUtMTguOC00OS4yLTQ1LjItNDUuNGMtNi44IC45LTE2LjIgMi40LTI2LjYgNC40Qzg1LjMgOTQuNSAxOTEuNiAwIDMyMCAwUzU1NC43IDk0LjUgNTczLjIgMjE3LjdjLTEwLjMtMi0xOS44LTMuNS0yNi42LTQuNGMtMjYuNS0zLjktNDkuMiAxOC44LTQ1LjIgNDUuNGMxLjYgMTEuMyA0LjYgMzAgOS4zIDQ4LjJjMi4zIDkuMSA1LjIgMTguOCA4LjggMjcuNWMzLjMgOC4xIDguNCAxOC41IDE2LjUgMjYuNmMzLjkgMy45IDguMiA3LjQgMTIuNyAxMC4zek0xMDcgMjU0LjFjLTMuMSAyMS41LTExLjQgNzAuMi0yNS41IDg0LjRjLS45IDEtMS45IDEuOC0yLjkgMi43QzYwIDM1Ni43IDMyIDM1NS41IDE0LjMgMzM3LjdjLTE4LjctMTguNy0xOS4xLTQ4LjgtLjctNjcuMmM4LjYtOC42IDMwLjEtMTUuMSA1MC41LTE5LjZjMTMtMi44IDI1LjUtNC44IDMzLjktNmM1LjQtLjggOS45IDMuNyA5IDl6bTQ1NC41IDg3LjFjLS44LS42LTEuNS0xLjMtMi4zLTJjLS4yLS4yLS41LS40LS43LS43Yy0xNC4xLTE0LjEtMjIuNS02Mi45LTI1LjUtODQuNGMtLjgtNS40IDMuNy05LjkgOS05YzEgLjEgMi4yIC4zIDMuMyAuNWM4LjIgMS4yIDE5LjIgMyAzMC42IDUuNWMyMC40IDQuNCA0MS45IDEwLjkgNTAuNSAxOS42YzE4LjQgMTguNCAxOCA0OC41LS43IDY3LjJjLTE3LjcgMTcuNy00NS43IDE5LTY0LjIgMy40em0tOTAuMS05LjdjNS0xMS44LTctMjIuNS0xOS4zLTE4LjdjLTM5LjcgMTIuMi04NC41IDE5LTEzMS44IDE5cy05Mi4xLTYuOC0xMzEuOC0xOWMtMTIuMy0zLjgtMjQuMyA2LjktMTkuMyAxOC43YzI1IDU5LjEgODMuMiAxMDAuNSAxNTEuMSAxMDAuNXMxMjYuMi00MS40IDE1MS4xLTEwMC41ek0yODEuNiAyMjguOGwwIDAgMCAwIDAgMGMyLjEgMi44IDUuNyAzLjkgOC45IDIuOHM1LjUtNC4xIDUuNS03LjZjMC0xNy45LTYuNy0zNS42LTE2LjYtNDguOGMtOS44LTEzLTIzLjktMjMuMi0zOS40LTIzLjJzLTI5LjYgMTAuMi0zOS40IDIzLjJDMTkwLjcgMTg4LjQgMTg0IDIwNi4xIDE4NCAyMjRjMCAzLjQgMi4yIDYuNSA1LjUgNy42czYuOSAwIDguOS0yLjhsMCAwIDAgMCAwIDAgLjItLjJjLjItLjIgLjQtLjUgLjctLjljLjYtLjggMS42LTIgMi44LTMuNGMyLjUtMi44IDYtNi42IDEwLjItMTAuM2M4LjgtNy44IDE4LjgtMTQgMjcuNy0xNHMxOC45IDYuMiAyNy43IDE0YzQuMiAzLjcgNy43IDcuNSAxMC4yIDEwLjNjMS4yIDEuNCAyLjIgMi42IDIuOCAzLjRjLjMgLjQgLjYgLjcgLjcgLjlsLjIgLjIgMCAwem0xNjAgMGwwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMzNTAuNyAxODguNCAzNDQgMjA2LjEgMzQ0IDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGwwIDAgMCAwIDAgMCAuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMiAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpblRvbmd1ZVNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NkMwIDM2OC45IDczLjEgNDY0LjcgMTc0LjUgNDk4LjhDMTY1LjMgNDg0IDE2MCA0NjYuNiAxNjAgNDQ4VjQwMC43Yy0yNC0xNy41LTQzLjEtNDEuNC01NC44LTY5LjJjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN2MtMTEuOCAyOC0zMS4xIDUyLTU1LjQgNjkuNlY0NDhjMCAxOC42LTUuMyAzNi0xNC41IDUwLjhDNDM4LjkgNDY0LjcgNTEyIDM2OC45IDUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NnpNMTE2IDE0MS4xYzAtOSA5LjYtMTQuNyAxNy41LTEwLjVsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42em0yNjIuNS0xMC41YzcuOS00LjIgMTcuNSAxLjUgMTcuNSAxMC41YzAgMi44LTEgNS41LTIuOCA3LjZsLTM2IDQzLjIgMzYgNDMuMmMxLjggMi4xIDIuOCA0LjggMi44IDcuNmMwIDktOS42IDE0LjctMTcuNSAxMC41bC04OS45LTQ3LjljLTEwLjctNS43LTEwLjctMjEuMSAwLTI2LjhsODkuOS00Ny45ek0zMjAgNDQ4VjQwMi42YzAtMTQuNy0xMS45LTI2LjYtMjYuNi0yNi42aC0yYy0xMS4zIDAtMjEuMSA3LjktMjMuNiAxOC45Yy0yLjggMTIuNi0yMC44IDEyLjYtMjMuNiAwYy0yLjUtMTEuMS0xMi4zLTE4LjktMjMuNi0xOC45aC0yYy0xNC43IDAtMjYuNiAxMS45LTI2LjYgMjYuNlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUdyaW5Ub25ndWVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NC41IDQ5OC44QzczLjEgNDY0LjcgMCAzNjguOSAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCAxMTIuOS03My4xIDIwOC43LTE3NC41IDI0Mi44QzM0Ni43IDQ4NCAzNTIgNDY2LjYgMzUyIDQ0OFY0MDEuMWMyNC4zLTE3LjUgNDMuNi00MS42IDU1LjQtNjkuNmM1LTExLjgtNy0yMi41LTE5LjMtMTguN2MtMzkuNyAxMi4yLTg0LjUgMTktMTMxLjggMTlzLTkyLjEtNi44LTEzMS44LTE5Yy0xMi4zLTMuOC0yNC4zIDYuOS0xOS4zIDE4LjdjMTEuNyAyNy44IDMwLjggNTEuNyA1NC44IDY5LjJWNDQ4YzAgMTguNiA1LjMgMzYgMTQuNSA1MC44em0yMC43LTI2NS4yYzUuMyA3LjEgMTUuMyA4LjUgMjIuNCAzLjJzOC41LTE1LjMgMy4yLTIyLjRjLTMwLjQtNDAuNS05MS4yLTQwLjUtMTIxLjYgMGMtNS4zIDcuMS0zLjkgMTcuMSAzLjIgMjIuNHMxNy4xIDMuOSAyMi40LTMuMmMxNy42LTIzLjUgNTIuOC0yMy41IDcwLjQgMHpNMzM2IDI3MmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzIwIDQwMi42VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NFY0MDIuNmMwLTE0LjcgMTEuOS0yNi42IDI2LjYtMjYuNmgyYzExLjMgMCAyMS4xIDcuOSAyMy42IDE4LjljMi44IDEyLjYgMjAuOCAxMi42IDIzLjYgMGMyLjUtMTEuMSAxMi4zLTE4LjkgMjMuNi0xOC45aDJjMTQuNyAwIDI2LjYgMTEuOSAyNi42IDI2LjZ6TTMzNiAxODRhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpblRvbmd1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NkMwIDM2OC45IDczLjEgNDY0LjcgMTc0LjUgNDk4LjhDMTY1LjMgNDg0IDE2MCA0NjYuNiAxNjAgNDQ4VjQwMC43Yy0yNC0xNy41LTQzLjEtNDEuNC01NC44LTY5LjJjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5YzEyLjMtMy44IDI0LjMgNi45IDE5LjMgMTguN2MtMTEuOCAyOC0zMS4xIDUyLTU1LjQgNjkuNlY0NDhjMCAxOC42LTUuMyAzNi0xNC41IDUwLjhDNDM4LjkgNDY0LjcgNTEyIDM2OC45IDUxMiAyNTZDNTEyIDExNC42IDM5Ny40IDAgMjU2IDBTMCAxMTQuNiAwIDI1NnptMTc2LjQtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIwIDQ0OFY0MDIuNmMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmgtMmMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOWMtMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMGMtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWgtMmMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluV2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5ek0yMDggMTkyYzAgMzUuMy0xNC4zIDY0LTMyIDY0cy0zMi0yOC43LTMyLTY0czE0LjMtNjQgMzItNjRzMzIgMjguNyAzMiA2NHptMTI4IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjRzLTE0LjMgNjQtMzIgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VHcmluV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5em0tMTYuOS03OS4yYy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMGMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yek0xNzYuNCAxNzZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMzg4LjEgMzEyLjhjMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43QzM4Mi40IDM5MC42IDMyNC4yIDQzMiAyNTYuMyA0MzJzLTEyNi4yLTQxLjQtMTUxLjEtMTAwLjVjLTUtMTEuOCA3LTIyLjUgMTkuMy0xOC43YzM5LjcgMTIuMiA4NC41IDE5IDEzMS44IDE5czkyLjEtNi44IDEzMS44LTE5ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUtpc3NCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem00OC43LTE5OC4zYzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNGMtMi43IDEuNS01LjcgMy04LjcgNC4zYzMuMSAxLjMgNiAyLjcgOC43IDQuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNGM0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRDMjc0LjcgNDQzLjEgMjU3LjQgNDQ4IDI0MCA0NDhjLTMuNiAwLTYuOC0yLjUtNy43LTZzLjYtNy4yIDMuOC05bDAgMCAwIDAgMCAwIDAgMCAuMi0uMWMuMi0uMSAuNS0uMyAuOS0uNWMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWMtLjQtLjItLjctLjQtLjktLjVsLS4yLS4xIDAgMCAwIDAgMCAwYy0yLjUtMS40LTQuMS00LjEtNC4xLTdzMS42LTUuNiA0LjEtN2wwIDAgMCAwIDAgMCAwIDAgMCAwIC4yLS4xIC4zLS4yIC42LS40Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xbC0uNC0uMy0uNS0uMy0uMi0uMSAwIDAgMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6bS04Ny4xLTg0LjlsMCAwIDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMHptMTYwIDBsMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUtpc3NXaW5rSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk4IDMzOS43YzkuMS0yNi4yIDE0LTU0LjQgMTQtODMuN0M1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzM1LjQgMCA2OS4xLTcuMiA5OS43LTIwLjJjLTQuOC01LjUtOC41LTEyLjItMTAuNC0xOS43bC0yMi45LTg5LjNjLTEwLTM5IDExLjgtODAuOSA1MS44LTkyLjFjMzcuMi0xMC40IDczLjggMTAuMSA4Ny41IDQ0YzEyLjctMS42IDI1LjEgLjQgMzYuMiA1ek0yOTYgMzMyYzAgNi45LTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNGMtMi43IDEuNS01LjcgMy04LjcgNC4zYzMuMSAxLjMgNiAyLjcgOC43IDQuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNGM0LjMgNS4xIDcuMyAxMS40IDcuMyAxOC4zcy0zLjEgMTMuMi03LjMgMTguM2MtNC4zIDUuMi0xMC4xIDkuNy0xNi43IDEzLjRDMjU4LjcgNDQzLjEgMjQxLjQgNDQ4IDIyNCA0NDhjLTMuNiAwLTYuOC0yLjUtNy43LTZzLjYtNy4yIDMuOC05bDAgMCAwIDAgMCAwIDAgMCAuMi0uMWMuMi0uMSAuNS0uMyAuOS0uNWMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWwtLjYtLjQtLjMtLjItLjItLjEgMCAwIDAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03bDAgMCAwIDAgMCAwIDAgMCAwIDAgLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMSAwIDAgMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjRjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3pNMTc2LjQgMTc2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptMTk0LjggNTcuNmMtMTcuNi0yMy41LTUyLjgtMjMuNS03MC40IDBjLTUuMyA3LjEtMTUuMyA4LjUtMjIuNCAzLjJzLTguNS0xNS4zLTMuMi0yMi40YzMwLjQtNDAuNSA5MS4yLTQwLjUgMTIxLjYgMGM1LjMgNy4xIDMuOSAxNy4xLTMuMiAyMi40cy0xNy4xIDMuOS0yMi40LTMuMnpNNDM0IDM1Mi4zYy02LTIzLjItMjguOC0zNy01MS4xLTMwLjhzLTM1LjQgMzAuMS0yOS41IDUzLjRsMjIuOSA4OS4zYzIuMiA4LjcgMTEuMiAxMy45IDE5LjggMTEuNGw4NC45LTIzLjhjMjIuMi02LjIgMzUuNC0zMC4xIDI5LjUtNTMuNHMtMjguOC0zNy01MS4xLTMwLjhsLTIwLjIgNS42LTUuNC0yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUtpc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTQ4LjctMTk4LjNjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40Yy0yLjcgMS41LTUuNyAzLTguNyA0LjNjMy4xIDEuMyA2IDIuNyA4LjcgNC4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40YzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNEMyNzQuNyA0NDMuMSAyNTcuNCA0NDggMjQwIDQ0OGMtMy42IDAtNi44LTIuNS03LjctNnMuNi03LjIgMy44LTlsMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjEgMCAwIDAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03bDAgMCAwIDAgMCAwIDAgMCAwIDAgLjItLjEgLjMtLjIgLjYtLjRjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFsLS40LS4zLS41LS4zLS4yLS4xIDAgMCAwIDAgMCAwYy0zLjItMS44LTQuNy01LjUtMy44LTlzNC4xLTYgNy43LTZjMTcuNCAwIDM0LjcgNC45IDQ3LjkgMTIuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNHpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VMYXVnaEJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMUgzOTMuNmMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45ek0yMTcuNiAyMTIuOGwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlTGF1Z2hTcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMUgzOTMuNmMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45em0zNi43LTE5OS40bDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTI1LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VMYXVnaFdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTk2LjggMzE0LjFjLTMuOC0xMy43IDcuNC0yNi4xIDIxLjYtMjYuMUgzOTMuNmMxNC4yIDAgMjUuNSAxMi40IDIxLjYgMjYuMUMzOTYuMiAzODIgMzMyLjEgNDMyIDI1NiA0MzJzLTE0MC4yLTUwLTE1OS4yLTExNy45ek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTU2LjQgMjUuNmMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yYy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZUxhdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek05Ni44IDMxNC4xYy0zLjgtMTMuNyA3LjQtMjYuMSAyMS42LTI2LjFIMzkzLjZjMTQuMiAwIDI1LjUgMTIuNCAyMS42IDI2LjFDMzk2LjIgMzgyIDMzMi4xIDQzMiAyNTYgNDMycy0xNDAuMi01MC0xNTkuMi0xMTcuOXpNMTQ0LjQgMTkyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VNZWhCbGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTIwOC40LTQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTEyOCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VNZWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3Ni40IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0xNjAgMzM2SDM1MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhY2VSb2xsaW5nRXllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTkyIDM2OEgzMjBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTkyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em0zMi0xNDRjMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjRjMC0yNiAxNS41LTQ4LjQgMzcuOC01OC40Yy0zLjcgNS4yLTUuOCAxMS42LTUuOCAxOC40YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjktMi4yLTEzLjItNS44LTE4LjRDMjA4LjUgMTc1LjYgMjI0IDE5OCAyMjQgMjI0em0xMjggNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjYgMTUuNS00OC40IDM3LjgtNTguNGMtMy43IDUuMi01LjggMTEuNi01LjggMTguNGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtNi45LTIuMi0xMy4yLTUuOC0xOC40QzQwMC41IDE3NS42IDQxNiAxOTggNDE2IDIyNGMwIDM1LjMtMjguNyA2NC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVNhZENyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgNDkzLjRjLTI5LjYgMTItNjIuMSAxOC42LTk2IDE4LjZzLTY2LjQtNi42LTk2LTE4LjZWMjg4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjQ3Ny44QzUxLjUgNDMzLjUgMCAzNTAuOCAwIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZjMCA5NC44LTUxLjUgMTc3LjUtMTI4IDIyMS44VjI4OGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNlY0OTMuNHpNMTk1LjIgMjMzLjZjNS4zIDcuMSAxNS4zIDguNSAyMi40IDMuMnM4LjUtMTUuMyAzLjItMjIuNGMtMzAuNC00MC41LTkxLjItNDAuNS0xMjEuNiAwYy01LjMgNy4xLTMuOSAxNy4xIDMuMiAyMi40czE3LjEgMy45IDIyLjQtMy4yYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwem0xMjEuNiAwYzE3LjYtMjMuNSA1Mi44LTIzLjUgNzAuNCAwYzUuMyA3LjEgMTUuMyA4LjUgMjIuNCAzLjJzOC41LTE1LjMgMy4yLTIyLjRjLTMwLjQtNDAuNS05MS4yLTQwLjUtMTIxLjYgMGMtNS4zIDcuMS0zLjkgMTcuMSAzLjIgMjIuNHMxNy4xIDMuOSAyMi40LTMuMnpNMjA4IDMzNnYzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4VjMzNmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVNhZFRlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2em0yNDAgODBjMC04LjggNy4yLTE2IDE2LTE2YzQ1IDAgODUuNiAyMC41IDExNS43IDUzLjFjNiA2LjUgNS42IDE2LjYtLjkgMjIuNnMtMTYuNiA1LjYtMjIuNi0uOWMtMjUtMjcuMS01Ny40LTQyLjktOTIuMy00Mi45Yy04LjggMC0xNi03LjItMTYtMTZ6bS04MCA4MGMtMjYuNSAwLTQ4LTIxLTQ4LTQ3YzAtMjAgMjguNi02MC40IDQxLjYtNzcuN2MzLjItNC40IDkuNi00LjQgMTIuOCAwQzE3OS42IDMwOC42IDIwOCAzNDkgMjA4IDM2OWMwIDI2LTIxLjUgNDctNDggNDd6TTM2Ny42IDIwOGEzMiAzMiAwIDEgMSAtNjQgMCAzMiAzMiAwIDEgMSA2NCAwem0tMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVNtaWxlQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjEgMzI1LjVDMTgyIDM0Ni4yIDIxMi42IDM2OCAyNTYgMzY4czc0LTIxLjggOTEuOS00Mi41YzUuOC02LjcgMTUuOS03LjQgMjIuNi0xLjZzNy40IDE1LjkgMS42IDIyLjZDMzQ5LjggMzcyLjEgMzExLjEgNDAwIDI1NiA0MDBzLTkzLjgtMjcuOS0xMTYuMS01My41Yy01LjgtNi43LTUuMS0xNi44IDEuNi0yMi42czE2LjgtNS4xIDIyLjYgMS42em01My41LTk2LjdsMCAwIDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMHptMTYwIDBsMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVNtaWxlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY0LjEgMzI1LjVDMTgyIDM0Ni4yIDIxMi42IDM2OCAyNTYgMzY4czc0LTIxLjggOTEuOS00Mi41YzUuOC02LjcgMTUuOS03LjQgMjIuNi0xLjZzNy40IDE1LjkgMS42IDIyLjZDMzQ5LjggMzcyLjEgMzExLjEgNDAwIDI1NiA0MDBzLTkzLjgtMjcuOS0xMTYuMS01My41Yy01LjgtNi43LTUuMS0xNi44IDEuNi0yMi42czE2LjgtNS4xIDIyLjYgMS42ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTU2LjQgMjUuNmMtNS4zIDcuMS0xNS4zIDguNS0yMi40IDMuMnMtOC41LTE1LjMtMy4yLTIyLjRjMzAuNC00MC41IDkxLjItNDAuNSAxMjEuNiAwYzUuMyA3LjEgMy45IDE3LjEtMy4yIDIyLjRzLTE3LjEgMy45LTIyLjQtMy4yYy0xNy42LTIzLjUtNTIuOC0yMy41LTcwLjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZVNtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjQuMSAzMjUuNUMxODIgMzQ2LjIgMjEyLjYgMzY4IDI1NiAzNjhzNzQtMjEuOCA5MS45LTQyLjVjNS44LTYuNyAxNS45LTcuNCAyMi42LTEuNnM3LjQgMTUuOSAxLjYgMjIuNkMzNDkuOCAzNzIuMSAzMTEuMSA0MDAgMjU2IDQwMHMtOTMuOC0yNy45LTExNi4xLTUzLjVjLTUuOC02LjctNS4xLTE2LjggMS42LTIyLjZzMTYuOC01LjEgMjIuNiAxLjZ6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlU3VycHJpc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3Ni40IDE3NmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTEyOCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0yNTYgMjg4YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlVGlyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE2NC43IDMyOC43YzIyLTIyIDUzLjktNDAuNyA5MS4zLTQwLjdzNjkuMyAxOC43IDkxLjMgNDAuN2MxMS4xIDExLjEgMjAuMSAyMy40IDI2LjQgMzUuNGM2LjIgMTEuNyAxMC4zIDI0LjQgMTAuMyAzNS45YzAgNS4yLTIuNiAxMC4yLTYuOSAxMy4ycy05LjggMy43LTE0LjcgMS44bC0yMC41LTcuN2MtMjYuOS0xMC4xLTU1LjUtMTUuMy04NC4zLTE1LjNoLTMuMmMtMjguOCAwLTU3LjMgNS4yLTg0LjMgMTUuM0wxNDkuNiA0MTVjLTQuOSAxLjgtMTAuNCAxLjItMTQuNy0xLjhzLTYuOS03LjktNi45LTEzLjJjMC0xMS42IDQuMi0yNC4yIDEwLjMtMzUuOWM2LjMtMTIgMTUuMy0yNC4zIDI2LjQtMzUuNHptLTMxLjItMTgybDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTU3LjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTguNiAwYy0xLjcgMC0zLjQgLjEtNS4xIC41QzE2OCAxNyAxMTUuNiAxMDIuMyAxMzAuNSAxODkuM2MyLjkgMTcgOC40IDMyLjkgMTUuOSA0Ny40TDMyIDIyNEgyOS40QzEzLjIgMjI0IDAgMjM3LjIgMCAyNTMuNGMwIDEuNyAuMSAzLjQgLjUgNS4xQzE3IDM0NCAxMDIuMyAzOTYuNCAxODkuMyAzODEuNWMxNy0yLjkgMzIuOS04LjQgNDcuNC0xNS45TDIyNCA0ODB2Mi42YzAgMTYuMiAxMy4yIDI5LjQgMjkuNCAyOS40YzEuNyAwIDMuNC0uMSA1LjEtLjVDMzQ0IDQ5NSAzOTYuNCA0MDkuNyAzODEuNSAzMjIuN2MtMi45LTE3LTguNC0zMi45LTE1LjktNDcuNEw0ODAgMjg4aDIuNmMxNi4yIDAgMjkuNC0xMy4yIDI5LjQtMjkuNGMwLTEuNy0uMS0zLjQtLjUtNS4xQzQ5NSAxNjggNDA5LjcgMTE1LjYgMzIyLjcgMTMwLjVjLTE3IDIuOS0zMi45IDguNC00Ny40IDE1LjlMMjg4IDMyVjI5LjRDMjg4IDEzLjIgMjc0LjggMCAyNTguNiAwek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmF1Y2V0RHJpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0NGw5Ni0xMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkwyNTYgODRsLTMxLTMuOS0xLS4xLTEgLjFMMTkyIDg0IDk2IDk2Qzc4LjMgOTYgNjQgODEuNyA2NCA2NHMxNC4zLTMyIDMyLTMybDk2IDEyVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0wIDIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg5NmwyMi42LTIyLjZjNi02IDE0LjEtOS40IDIyLjYtOS40SDE5MlYxMTYuMmwzMi00IDMyIDRWMTYwaDE4LjdjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRMMzIwIDE5MmgzMmM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMycy0xNC4zLTMyLTMyLTMySDMxNS45Yy0yMC4yIDI5LTUzLjkgNDgtOTEuOSA0OHMtNzEuNy0xOS05MS45LTQ4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMjR6TTQzNi44IDQyMy40YzEuOS00LjUgNi4zLTcuNCAxMS4yLTcuNHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMydi0xLjJjMC00LjUgLjktOC45IDIuNy0xMy4xbDE4LjItNDIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmF1Y2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NnYxMkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmw5Ni0xMiAzMS0zLjkgMS0uMSAxIC4xIDMxIDMuOSA5NiAxMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtOTYgMTJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6TTMyIDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIMTMyLjFjMjAuMiAyOSA1My45IDQ4IDkxLjkgNDhzNzEuNy0xOSA5MS45LTQ4SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAtODguNC03MS42LTE2MC0xNjAtMTYwSDMyMGwtMjIuNi0yMi42Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMjU2VjE4MC4ybC0zMi00LTMyIDRWMjI0SDE3My4zYy04LjUgMC0xNi42IDMuNC0yMi42IDkuNEwxMjggMjU2SDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDY0djk2aDY0VjY0SDM4Ni43TDQxNiA5My4zVjE2MGg2NFY5My4zYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDQzMiAxOC43QzQyMCA2LjcgNDAzLjcgMCAzODYuNyAwSDE5MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTAgMTYwVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem00ODAgMzJIMTI4VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yNTYgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzIgOTZhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0yMjQgNDE2YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlYXRoZXJQb2ludGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OC41IDIxNS42TDIzIDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDc0LjgtNzQuOGM3LjQgNC42IDE1LjMgOC4yIDIzLjggMTAuNUMyMDAuMyA0NTIuOCAyNzAgNDU0LjUgMzM4IDQwOS40YzEyLjItOC4xIDUuOC0yNS40LTguOC0yNS40bC0xNi4xIDBjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsOTcuNy0yOS4zYzMuNC0xIDYuNC0zLjEgOC40LTYuMWM0LjQtNi40IDguNi0xMi45IDEyLjYtMTkuNmM2LjItMTAuMy0xLjUtMjMtMTMuNS0yM2wtMzguNiAwYy01LjEgMC05LjItNC4xLTkuMi05LjJjMC00LjEgMi43LTcuNiA2LjUtOC44bDgwLjktMjQuM2M0LjYtMS40IDguNC00LjggMTAuMi05LjNDNDk0LjUgMTYzIDUwNy44IDg2LjEgNTExLjkgMzYuOGMuOC05LjktMy0xOS42LTEwLTI2LjZzLTE2LjctMTAuOC0yNi42LTEwQzM5MS41IDcgMjI4LjUgNDAuNSAxMzcuNCAxMzEuNkM1Ny4zIDIxMS43IDU2LjcgMzAyLjMgNzEuMyAzNTYuNGMyLjEgNy45IDEyIDkuNiAxNy44IDMuOEwyNTMuNiAxOTUuOGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGM1LjQgNS40IDYuMSAxMy42IDIuMiAxOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGZWF0aGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OC41IDIxNS42TDIzIDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LTU3aDY4YzQ5LjcgMCA5Ny45LTE0LjQgMTM5LTQxYzExLjEtNy4yIDUuNS0yMy03LjgtMjNjLTUuMSAwLTkuMi00LjEtOS4yLTkuMmMwLTQuMSAyLjctNy42IDYuNS04LjhsODEtMjQuM2MyLjUtLjggNC44LTIuMSA2LjctNGwyMi40LTIyLjRjMTAuMS0xMC4xIDIuOS0yNy4zLTExLjMtMjcuM2wtMzIuMiAwYy01LjEgMC05LjItNC4xLTkuMi05LjJjMC00LjEgMi43LTcuNiA2LjUtOC44bDExMi0zMy42YzQtMS4yIDcuNC0zLjkgOS4zLTcuN0M1MDYuNCAyMDcuNiA1MTIgMTg0LjEgNTEyIDE2MGMwLTQxLTE2LjMtODAuMy00NS4zLTEwOS4zbC01LjUtNS41QzQzMi4zIDE2LjMgMzkzIDAgMzUyIDBzLTgwLjMgMTYuMy0xMDkuMyA0NS4zTDEzOSAxNDlDOTEgMTk3IDY0IDI2Mi4xIDY0IDMzMHY1NS4zTDI1My42IDE5NS44YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwYzUuNCA1LjQgNi4xIDEzLjYgMi4yIDE5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlcnJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwSDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMmg3NS4xYzIwLjYgMCAzMS42IDI0LjMgMTguMSAzOS44TDQ1NiA5NkgxMjBMOTguOCA3MS44Qzg1LjMgNTYuMyA5Ni4zIDMyIDExNi45IDMySDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNOTYgMTI4SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMlYyODMuNWMwIDEzLjMtNC4yIDI2LjMtMTEuOSAzNy4ybC01MS40IDcxLjljLTEuOSAxLjEtMy43IDIuMi01LjUgMy41Yy0xNS41IDEwLjctMzQgMTgtNTEgMTkuOUgzNzUuNmMtMTcuMS0xLjgtMzUtOS01MC44LTE5LjljLTIyLjEtMTUuNS01MS42LTE1LjUtNzMuNyAwYy0xNC44IDEwLjItMzIuNSAxOC01MC42IDE5LjlIMTgzLjljLTE3LTEuOC0zNS42LTkuMi01MS0xOS45Yy0xLjgtMS4zLTMuNy0yLjQtNS42LTMuNUw3NS45IDMyMC43QzY4LjIgMzA5LjggNjQgMjk2LjggNjQgMjgzLjVWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0zMiA2NHY5Nkg0NDhWMTkySDEyOHpNMzA2LjUgNDIxLjlDMzI5IDQzNy40IDM1Ni41IDQ0OCAzODQgNDQ4YzI2LjkgMCA1NS4zLTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDUwMS43IDQxNyA1MTIgMzg0IDUxMmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNMjE2IDIzMlYzMzQuMWwzMS0zMWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTcyIDcyYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNzItNzJjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwzMSAzMVYyMzJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0yMTYgNDA4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjMwNS45bC0zMSAzMWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw3Mi03MmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw3MiA3MmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0zMS0zMVY0MDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6bTIgMjI2LjNjMzcuMSAyMi40IDYyIDYzLjEgNjIgMTA5LjdzLTI0LjkgODcuMy02MiAxMDkuN2MtNy42IDQuNi0xNy40IDIuMS0yMi01LjRzLTIuMS0xNy40IDUuNC0yMkMyNjkuNCA0MDEuNSAyODggMzcwLjkgMjg4IDMzNnMtMTguNi02NS41LTQ2LjUtODIuM2MtNy42LTQuNi0xMC0xNC40LTUuNC0yMnMxNC40LTEwIDIyLTUuNHptLTkxLjkgMzAuOWM2IDIuNSA5LjkgOC4zIDkuOSAxNC44VjQwMGMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVMMTEzLjQgMzc2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMzEyYzAtOC44IDcuMi0xNiAxNi0xNmgzMy40bDM1LjMtMzUuM2M0LjYtNC42IDExLjUtNS45IDE3LjQtMy41em01MSAzNC45YzYuNi01LjkgMTYuNy01LjMgMjIuNiAxLjNDMjQ5LjggMzA0LjYgMjU2IDMxOS42IDI1NiAzMzZzLTYuMiAzMS40LTE2LjMgNDIuN2MtNS45IDYuNi0xNiA3LjEtMjIuNiAxLjNzLTcuMS0xNi0xLjMtMjIuNmM1LjEtNS43IDguMS0xMy4xIDguMS0yMS4zcy0zLjEtMTUuNy04LjEtMjEuM2MtNS45LTYuNi01LjMtMTYuNyAxLjMtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0djM4LjZDMzEwLjEgMjE5LjUgMjU2IDI4Ny40IDI1NiAzNjhjMCA1OS4xIDI5LjEgMTExLjMgNzMuNyAxNDMuM2MtMy4yIC41LTYuNCAuNy05LjcgLjdINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em0zODQgNjRIMjU2VjBMMzg0IDEyOHpNMjg4IDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0MTYgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0djM4LjZDMzEwLjEgMjE5LjUgMjU2IDI4Ny40IDI1NiAzNjhjMCA1OS4xIDI5LjEgMTExLjMgNzMuNyAxNDMuM2MtMy4yIC41LTYuNCAuNy05LjcgLjdINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em0zODQgNjRIMjU2VjBMMzg0IDEyOHptNDggOTZhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTAtMTkyYy04LjggMC0xNiA3LjItMTYgMTZ2ODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyODhjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ2lyY2xlTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2MzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0g2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4ek0yODggMzY4YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIyNCAwYzAtOC44LTcuMi0xNi0xNi0xNkgzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZINDk2YzguOCAwIDE2LTcuMiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNpcmNsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2MzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0g2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4em00OCA5NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTE2IDgwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djQ4SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjM4NGg0OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg0NDhWMzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ2lyY2xlUXVlc3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODR2MzguNkMzMTAuMSAyMTkuNSAyNTYgMjg3LjQgMjU2IDM2OGMwIDU5LjEgMjkuMSAxMTEuMyA3My43IDE0My4zYy0zLjIgLjUtNi40IC43LTkuNyAuN0g2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4em00OCA5NmExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNMzY4IDMyMS42VjMyOGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2di02LjRjMC01LjMgNC4zLTkuNiA5LjYtOS42aDQwLjVjNy43IDAgMTMuOSA2LjIgMTMuOSAxMy45YzAgNS4yLTIuOSA5LjktNy40IDEyLjNsLTMyIDE2LjhjLTUuMyAyLjgtOC42IDguMi04LjYgMTQuMlYzODRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNnYtNS4xbDIzLjUtMTIuM2MxNS4xLTcuOSAyNC41LTIzLjYgMjQuNS00MC42YzAtMjUuNC0yMC42LTQ1LjktNDUuOS00NS45SDQwOS42Yy0yMyAwLTQxLjYgMTguNi00MS42IDQxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NHYzOC42QzMxMC4xIDIxOS41IDI1NiAyODcuNCAyNTYgMzY4YzAgNTkuMSAyOS4xIDExMS4zIDczLjcgMTQzLjNjLTMuMiAuNS02LjQgLjctOS43IC43SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6bTQ4IDk2YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptNTkuMyAxMDcuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwTDQzMiAzNDUuNGwtMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDQwOS40IDM2OGwtMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDMyIDM5MC42bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZMNDU0LjYgMzY4bDM2LjctMzYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0xNTMgMjg5bC0zMSAzMSAzMSAzMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcxIDMzN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNDgtNDhjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek0yNjUgMjU1bDQ4IDQ4YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC00OCA0OGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwzMS0zMS0zMS0zMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQ29udHJhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek04MCA2NGg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NGg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptNTQuMiAyNTMuOGMtNi4xIDIwLjMtMjQuOCAzNC4yLTQ2IDM0LjJIODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoOC4yYzcuMSAwIDEzLjMtNC42IDE1LjMtMTEuNGwxNC45LTQ5LjVjMy40LTExLjMgMTMuOC0xOS4xIDI1LjYtMTkuMXMyMi4yIDcuNyAyNS42IDE5LjFsMTEuNiAzOC42YzcuNC02LjIgMTYuOC05LjcgMjYuOC05LjdjMTUuOSAwIDMwLjQgOSAzNy41IDIzLjJsNC40IDguOEgzMDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjQwYy02LjEgMC0xMS42LTMuNC0xNC4zLTguOGwtOC44LTE3LjdjLTEuNy0zLjQtNS4xLTUuNS04LjgtNS41cy03LjIgMi4xLTguOCA1LjVsLTguOCAxNy43Yy0yLjkgNS45LTkuMiA5LjQtMTUuNyA4LjhzLTEyLjEtNS4xLTEzLjktMTEuM0wxNDQgMzQ5bC05LjggMzIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNzdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NFYzMDRIMTc2Yy0zNS4zIDAtNjQgMjguNy02NCA2NFY1MTJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em0zODQgNjRIMjU2VjBMMzg0IDEyOHpNMjAwIDM1MmgxNmMyMi4xIDAgNDAgMTcuOSA0MCA0MHY4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2di04YzAtNC40LTMuNi04LTgtOEgyMDBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoMTZjNC40IDAgOC0zLjYgOC04di04YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2OGMwIDIyLjEtMTcuOSA0MC00MCA0MEgyMDBjLTIyLjEgMC00MC0xNy45LTQwLTQwVjM5MmMwLTIyLjEgMTcuOS00MCA0MC00MHptMTMzLjEgMEgzNjhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzMzLjFjLTcuMiAwLTEzLjEgNS45LTEzLjEgMTMuMWMwIDUuMiAzIDkuOSA3LjggMTJsMzcuNCAxNi42YzE2LjMgNy4yIDI2LjggMjMuNCAyNi44IDQxLjJjMCAyNC45LTIwLjIgNDUuMS00NS4xIDQ1LjFIMzA0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDQyLjljNy4yIDAgMTMuMS01LjkgMTMuMS0xMy4xYzAtNS4yLTMtOS45LTcuOC0xMmwtMzcuNC0xNi42Yy0xNi4zLTcuMi0yNi44LTIzLjQtMjYuOC00MS4yYzAtMjQuOSAyMC4yLTQ1LjEgNDUuMS00NS4xem05OC45IDBjOC44IDAgMTYgNy4yIDE2IDE2djMxLjZjMCAyMyA1LjUgNDUuNiAxNiA2NmMxMC41LTIwLjMgMTYtNDIuOSAxNi02NlYzNjhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYzMS42YzAgMzQuNy0xMC4zIDY4LjctMjkuNiA5Ny42bC01LjEgNy43Yy0zIDQuNS04IDcuMS0xMy4zIDcuMXMtMTAuMy0yLjctMTMuMy03LjFsLTUuMS03LjdjLTE5LjMtMjguOS0yOS42LTYyLjktMjkuNi05Ny42VjM2OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVFeGNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTE1NS43IDI1MC4yTDE5MiAzMDIuMWwzNi4zLTUxLjljNy42LTEwLjkgMjIuNi0xMy41IDMzLjQtNS45czEzLjUgMjIuNiA1LjkgMzMuNEwyMjEuMyAzNDRsNDYuNCA2Ni4yYzcuNiAxMC45IDUgMjUuOC01LjkgMzMuNHMtMjUuOCA1LTMzLjQtNS45TDE5MiAzODUuOGwtMzYuMyA1MS45Yy03LjYgMTAuOS0yMi42IDEzLjUtMzMuNCA1LjlzLTEzLjUtMjIuNi01LjktMzMuNEwxNjIuNyAzNDRsLTQ2LjQtNjYuMmMtNy42LTEwLjktNS0yNS44IDUuOS0zMy40czI1LjgtNSAzMy40IDUuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUV4cG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NFYyODhIMjE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDM4NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0zODQgMzM2VjI4OEg0OTQuMWwtMzktMzljLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw4MCA4MGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzktMzlIMzg0em0wLTIwOEgyNTZWMEwzODQgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek02NCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTUyIDMyYzUuMyAwIDEwLjIgMi42IDEzLjIgNi45bDg4IDEyOGMzLjQgNC45IDMuNyAxMS4zIDEgMTYuNXMtOC4yIDguNi0xNC4yIDguNkgyMTYgMTc2IDEyOCA4MGMtNS44IDAtMTEuMS0zLjEtMTMuOS04LjFzLTIuOC0xMS4yIC4yLTE2LjFsNDgtODBjMi45LTQuOCA4LjEtNy44IDEzLjctNy44czEwLjggMi45IDEzLjcgNy44bDEyLjggMjEuNCA0OC4zLTcwLjJjMy00LjMgNy45LTYuOSAxMy4yLTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUltcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRIMzUyVjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg1MTJWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDE5MmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzM2SDMwMi4xbC0zOSAzOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDgwLTgwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC04MC04MGMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzOSAzOUgxMjhWNjR6bTAgMjI0djQ4SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0SDEyOHpNNTEyIDEyOEgzODRWMEw1MTIgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlSW52b2ljZURvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTY0IDgwYzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2em0xMjggNzJjOC44IDAgMTYgNy4yIDE2IDE2djE3LjNjOC41IDEuMiAxNi43IDMuMSAyNC4xIDUuMWM4LjUgMi4zIDEzLjYgMTEgMTEuMyAxOS42cy0xMSAxMy42LTE5LjYgMTEuM2MtMTEuMS0zLTIyLTUuMi0zMi4xLTUuM2MtOC40LS4xLTE3LjQgMS44LTIzLjYgNS41Yy01LjcgMy40LTguMSA3LjMtOC4xIDEyLjhjMCAzLjcgMS4zIDYuNSA3LjMgMTAuMWM2LjkgNC4xIDE2LjYgNy4xIDI5LjIgMTAuOWwuNSAuMSAwIDAgMCAwYzExLjMgMy40IDI1LjMgNy42IDM2LjMgMTQuNmMxMi4xIDcuNiAyMi40IDE5LjcgMjIuNyAzOC4yYy4zIDE5LjMtOS42IDMzLjMtMjIuOSA0MS42Yy03LjcgNC44LTE2LjQgNy42LTI1LjEgOS4xVjQ0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY0MjIuMmMtMTEuMi0yLjEtMjEuNy01LjctMzAuOS04LjlsMCAwIDAgMGMtMi4xLS43LTQuMi0xLjQtNi4yLTIuMWMtOC40LTIuOC0xMi45LTExLjktMTAuMS0yMC4yczExLjktMTIuOSAyMC4yLTEwLjFjMi41IC44IDQuOCAxLjYgNy4xIDIuNGwwIDAgMCAwIDAgMGMxMy42IDQuNiAyNC42IDguNCAzNi4zIDguN2M5LjEgLjMgMTcuOS0xLjcgMjMuNy01LjNjNS4xLTMuMiA3LjktNy4zIDcuOC0xNGMtLjEtNC42LTEuOC03LjgtNy43LTExLjZjLTYuOC00LjMtMTYuNS03LjQtMjktMTEuMmwtMS42LS41IDAgMGMtMTEtMy4zLTI0LjMtNy4zLTM0LjgtMTMuN2MtMTItNy4yLTIyLjYtMTguOS0yMi43LTM3LjNjLS4xLTE5LjQgMTAuOC0zMi44IDIzLjgtNDAuNWM3LjUtNC40IDE1LjgtNy4yIDI0LjEtOC43VjIzMmMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbnZvaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNODAgNjRoNjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRoNjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTE2IDk2SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem0wIDMydjY0SDI4OFYyNTZIOTZ6TTI0MCA0MTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjQwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0xMTIgMjU2SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEgyNzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBINjR6TTI1NiAwVjEyOEgzODRMMjU2IDB6TTE2MCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY0OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIyNHY0OGMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMzUySDExMmMtOC44IDAtMTYtNy4yLTE2LTE2VjMwNGMwLTguOCA3LjItMTYgMTYtMTZoNDhWMjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwTDIyNCAwbDAgMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMybDEyOCAwIDAgMTQ0LTIwOCAwYy0zNS4zIDAtNjQgMjguNy02NCA2NGwwIDE0NC00OCAwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDY0em0zODQgNjRsLTEyOCAwTDI1NiAwIDM4NCAxMjh6TTE3NiAzNTJsMzIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1NmwtMTYgMCAwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDggMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAgNDggMTYgMHptOTYtODBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMjhjMC04LjggNy4yLTE2IDE2LTE2em0zMiAxMjhjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwIDAgOTYgMTYgMHptODAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjQgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjRWMTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM4NFYyOTkuNmwtOTQuNyA5NC43Yy04LjIgOC4yLTE0IDE4LjUtMTYuOCAyOS43bC0xNSA2MC4xYy0yLjMgOS40LTEuOCAxOSAxLjQgMjcuOEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4ek01NDkuOCAyMzUuN2wxNC40IDE0LjRjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZsLTI5LjQgMjkuNC03MS03MSAyOS40LTI5LjRjMTUuNi0xNS42IDQwLjktMTUuNiA1Ni42IDB6TTMxMS45IDQxN0w0NDEuMSAyODcuOGw3MSA3MUwzODIuOSA0ODcuOWMtNC4xIDQuMS05LjIgNy0xNC45IDguNGwtNjAuMSAxNWMtNS41IDEuNC0xMS4yLS4yLTE1LjItNC4ycy01LjYtOS43LTQuMi0xNS4ybDE1LTYwLjFjMS40LTUuNiA0LjMtMTAuOCA4LjQtMTQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVBvd2VycG9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek0xMzYgMjQwaDY4YzQyIDAgNzYgMzQgNzYgNzZzLTM0IDc2LTc2IDc2SDE2MHYzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYzNjggMjY0YzAtMTMuMyAxMC43LTI0IDI0LTI0em02OCAxMDRjMTUuNSAwIDI4LTEyLjUgMjgtMjhzLTEyLjUtMjgtMjgtMjhIMTYwdjU2aDQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlUHJlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNMTA0IDE5Nmg3MmMzMy4xIDAgNjAgMjYuOSA2MCA2MGMwIDI1LjUtMTUuOSA0Ny4yLTM4LjMgNTUuOWw0MyA0MC4zIDMzLjgtMzFjOC4xLTcuNSAyMC44LTYuOSAyOC4zIDEuMnM2LjkgMjAuOC0xLjIgMjguM0wyNzAgMzc5LjdsMzEuNyAyOS43YzguMSA3LjYgOC41IDIwLjIgLjkgMjguM3MtMjAuMiA4LjUtMjguMyAuOWwtMzMuOS0zMS44LTM0LjkgMzJjLTguMSA3LjUtMjAuOCA2LjktMjguMy0xLjJzLTYuOS0yMC44IDEuMi0yOC4zbDMyLjYtMjkuOS02NC44LTYwLjhjLS45LS44LTEuNi0xLjctMi4zLTIuNkgxMjR2NDRjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwVjI5NiAyMTZjMC0xMSA5LTIwIDIwLTIwem03MiA4MGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBIMTI0djQwaDUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyNFYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0djQ3bC05Mi44IDM3LjFjLTIxLjMgOC41LTM1LjIgMjkuMS0zNS4yIDUyYzAgNTYuNiAxOC45IDE0OCA5NC4yIDIwOC4zYy05IDQuOC0xOS4zIDcuNi0zMC4yIDcuNkg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTM4NCA2NEgyNTZWMEwzODQgMTI4em0zOS4xIDk3LjdjNS43LTIuMyAxMi4xLTIuMyAxNy44IDBsMTIwIDQ4QzU3MCAyNzcuNCA1NzYgMjg2LjIgNTc2IDI5NmMwIDYzLjMtMjUuOSAxNjguOC0xMzQuOCAyMTQuMmMtNS45IDIuNS0xMi42IDIuNS0xOC41IDBDMzEzLjkgNDY0LjggMjg4IDM1OS4zIDI4OCAyOTZjMC05LjggNi0xOC42IDE1LjEtMjIuM2wxMjAtNDh6TTUyNy40IDMxMkw0MzIgMjczLjhWNDYxLjdjNjguMi0zMyA5MS41LTk5IDk1LjQtMTQ5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVTaWduYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFY0MjguN2MtMi43IDEuMS01LjQgMi04LjIgMi43bC02MC4xIDE1Yy0zIC43LTYgMS4yLTkgMS40Yy0uOSAuMS0xLjggLjItMi43IC4ySDI0MGMtNi4xIDAtMTEuNi0zLjQtMTQuMy04LjhsLTguOC0xNy43Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNXMtNy4yIDIuMS04LjggNS41bC04LjggMTcuN2MtMi45IDUuOS05LjIgOS40LTE1LjcgOC44cy0xMi4xLTUuMS0xMy45LTExLjNMMTQ0IDM4MWwtOS44IDMyLjhjLTYuMSAyMC4zLTI0LjggMzQuMi00NiAzNC4ySDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDguMmM3LjEgMCAxMy4zLTQuNiAxNS4zLTExLjRsMTQuOS00OS41YzMuNC0xMS4zIDEzLjgtMTkuMSAyNS42LTE5LjFzMjIuMiA3LjggMjUuNiAxOS4xbDExLjYgMzguNmM3LjQtNi4yIDE2LjgtOS43IDI2LjgtOS43YzE1LjkgMCAzMC40IDkgMzcuNSAyMy4ybDQuNCA4LjhoOC45Yy0zLjEtOC44LTMuNy0xOC40LTEuNC0yNy44bDE1LTYwLjFjMi44LTExLjMgOC42LTIxLjUgMTYuOC0yOS43TDM4NCAyMDMuNlYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek01NDkuOCAxMzkuN2MtMTUuNi0xNS42LTQwLjktMTUuNi01Ni42IDBsLTI5LjQgMjkuNCA3MSA3MSAyOS40LTI5LjRjMTUuNi0xNS42IDE1LjYtNDAuOSAwLTU2LjZsLTE0LjQtMTQuNHpNMzExLjkgMzIxYy00LjEgNC4xLTcgOS4yLTguNCAxNC45bC0xNSA2MC4xYy0xLjQgNS41IC4yIDExLjIgNC4yIDE1LjJzOS43IDUuNiAxNS4yIDQuMmw2MC4xLTE1YzUuNi0xLjQgMTAuOC00LjMgMTQuOS04LjRMNTEyLjEgMjYyLjdsLTcxLTcxTDMxMS45IDMyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNNjQgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODh6TTMwMC45IDM5Ny45TDI1NiAzNjhWMzA0bDQ0LjktMjkuOWMyLTEuMyA0LjQtMi4xIDYuOC0yLjFjNi44IDAgMTIuMyA1LjUgMTIuMyAxMi4zVjM4Ny43YzAgNi44LTUuNSAxMi4zLTEyLjMgMTIuM2MtMi40IDAtNC44LS43LTYuOC0yLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVXYXZlZm9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0VjI4OEgxNDRjNi4xIDAgMTEuNiAzLjQgMTQuMyA4LjhMMTc2IDMzMi4ybDQ5LjctOTkuNGMyLjctNS40IDguMy04LjggMTQuMy04LjhzMTEuNiAzLjQgMTQuMyA4LjhMMjgxLjkgMjg4SDM1MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNzJjLTYuMSAwLTExLjYtMy40LTE0LjMtOC44TDI0MCAyNzUuOGwtNDkuNyA5OS40Yy0yLjcgNS40LTguMyA4LjgtMTQuMyA4LjhzLTExLjYtMy40LTE0LjMtOC44TDEzNC4xIDMyMEgzMlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzUyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MEgyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjBIOTZ6TTI4OCAwVjEyOEg0MTZMMjg4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVXb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwSDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMEg2NHpNMjU2IDBWMTI4SDM4NEwyNTYgMHpNMTExIDI1Ny4xbDI2LjggODkuMiAzMS42LTkwLjNjMy40LTkuNiAxMi41LTE2LjEgMjIuNy0xNi4xczE5LjMgNi40IDIyLjcgMTYuMWwzMS42IDkwLjNMMjczIDI1Ny4xYzMuOC0xMi43IDE3LjItMTkuOSAyOS45LTE2LjFzMTkuOSAxNy4yIDE2LjEgMjkuOWwtNDggMTYwYy0zIDEwLTEyIDE2LjktMjIuNCAxNy4xcy0xOS44LTYuMi0yMy4yLTE2LjFMMTkyIDMzNi42bC0zMy4zIDk1LjNjLTMuNCA5LjgtMTIuOCAxNi4zLTIzLjIgMTYuMXMtMTkuNS03LjEtMjIuNC0xNy4xbC00OC0xNjBjLTMuOC0xMi43IDMuNC0yNi4xIDE2LjEtMjkuOXMyNi4xIDMuNCAyOS45IDE2LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVaaXBwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYwSDY0ek0yNTYgMFYxMjhIMzg0TDI1NiAwek05NiA0OGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZ6bTAgNjRjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnptLTYuMyA3MS44YzMuNy0xNCAxNi40LTIzLjggMzAuOS0yMy44aDE0LjhjMTQuNSAwIDI3LjIgOS43IDMwLjkgMjMuOGwyMy41IDg4LjJjMS40IDUuNCAyLjEgMTAuOSAyLjEgMTYuNGMwIDM1LjItMjguOCA2My43LTY0IDYzLjdzLTY0LTI4LjUtNjQtNjMuN2MwLTUuNSAuNy0xMS4xIDIuMS0xNi40bDIzLjUtODguMnpNMTEyIDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI0VjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHptMzg0IDY0SDI1NlYwTDM4NCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGxEcmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxLjQgOS40QzUzLjktMy4xIDc0LjEtMy4xIDg2LjYgOS40TDE2OCA5MC43bDUzLjEtNTMuMWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMNDc0LjMgMTg5LjFjMjguMSAyOC4xIDI4LjEgNzMuNyAwIDEwMS44TDI4My45IDQ4MS40Yy0zNy41IDM3LjUtOTguMyAzNy41LTEzNS44IDBMMzAuNiAzNjMuOWMtMzcuNS0zNy41LTM3LjUtOTguMyAwLTEzNS44TDEyMi43IDEzNiA0MS40IDU0LjZjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zem0xNzYgMjIxLjNMMTY4IDE4MS4zIDc1LjkgMjczLjRjLTQuMiA0LjItNyA5LjMtOC40IDE0LjZIMzg2LjdsNDIuMy00Mi4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNMMjc3LjcgODIuOWMtMy4xLTMuMS04LjItMy4xLTExLjMgMEwyMTMuMyAxMzZsNDkuNCA0OS40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwek01MTIgNTEyYy0zNS4zIDAtNjQtMjguNy02NC02NGMwLTI1LjIgMzIuNi03OS42IDUxLjItMTA4LjdjNi05LjQgMTkuNS05LjQgMjUuNSAwQzU0My40IDM2OC40IDU3NiA0MjIuOCA1NzYgNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg2LjYgOS40Qzc0LjEtMy4xIDUzLjktMy4xIDQxLjQgOS40cy0xMi41IDMyLjggMCA0NS4zTDEyMi43IDEzNiAzMC42IDIyOC4xYy0zNy41IDM3LjUtMzcuNSA5OC4zIDAgMTM1LjhMMTQ4LjEgNDgxLjRjMzcuNSAzNy41IDk4LjMgMzcuNSAxMzUuOCAwTDQ3NC4zIDI5MC45YzI4LjEtMjguMSAyOC4xLTczLjcgMC0xMDEuOEwzMjIuOSAzNy43Yy0yOC4xLTI4LjEtNzMuNy0yOC4xLTEwMS44IDBMMTY4IDkwLjcgODYuNiA5LjR6TTE2OCAxODEuM2w0OS40IDQ5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMTMuMyAxMzZsNTMuMS01My4xYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBMNDI5LjEgMjM0LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM0wzODYuNyAyODhINjcuNWMxLjQtNS40IDQuMi0xMC40IDguNC0xNC42TDE2OCAxODEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek00OCAzNjh2MzJjMCA4LjggNy4yIDE2IDE2IDE2SDk2YzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6bTM2OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNkg0MTZ6TTQ4IDI0MHYzMmMwIDguOCA3LjIgMTYgMTYgMTZIOTZjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZINjRjLTguOCAwLTE2IDcuMi0xNiAxNnptMzY4LTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDQxNnpNNDggMTEydjMyYzAgOC44IDcuMiAxNiAxNiAxNkg5NmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkg2NGMtOC44IDAtMTYgNy4yLTE2IDE2ek00MTYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZINDE2ek0xNjAgMTI4djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYxMjhjMC0xNy43LTE0LjMtMzItMzItMzJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnptMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzMjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsdGVyQ2lyY2xlRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSAyMi45QzEwLjUgOC45IDI0LjUgMCA0MCAwSDQ3MmMxNS41IDAgMjkuNSA4LjkgMzYuMSAyMi45czQuNiAzMC41LTUuMiA0Mi41TDM5Ni40IDE5NS42QzMxNi4yIDIxMi4xIDI1NiAyODMgMjU2IDM2OGMwIDI3LjQgNi4zIDUzLjQgMTcuNSA3Ni41Yy0xLjYtLjgtMy4yLTEuOC00LjctMi45bC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNlYyODguOUw5IDY1LjNDLS43IDUzLjQtMi44IDM2LjggMy45IDIyLjl6TTI4OCAzNjhhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMTIwLjgtMzIuNmMuNi0uOSAxLjgtMi4xIDQuMi0zLjRjNS4xLTIuNyAxMi41LTQuMSAxOC43LTRjOC4yIC4xIDE3LjEgMS44IDI2LjQgNC4xYzguNiAyLjEgMTcuMy0zLjEgMTkuNC0xMS43cy0zLjEtMTcuMy0xMS43LTE5LjRjLTUuNi0xLjQtMTEuNi0yLjctMTcuOS0zLjdWMjg4YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djkuNWMtNi4xIDEuMi0xMi4zIDMuMi0xOCA2LjNjLTExLjggNi4zLTIzIDE4LjQtMjEuOCAzNy4yYzEgMTYgMTEuNyAyNS4zIDIxLjYgMzAuN2M4LjggNC43IDE5LjcgNy44IDI4LjYgMTAuM2wxLjggLjVjMTAuMyAyLjkgMTcuOSA1LjIgMjMuMiA4LjNjNC41IDIuNyA0LjcgNC4yIDQuNyA1LjZjLjEgMi40LS41IDMuNy0xIDQuNWMtLjYgMS0xLjggMi4yLTQgMy4zYy00LjcgMi41LTExLjggMy44LTE4LjUgMy42Yy05LjUtLjMtMTguNS0zLjEtMjkuOS02LjhjLTEuOS0uNi0zLjgtMS4yLTUuOC0xLjhjLTguNC0yLjYtMTcuNCAyLjEtMjAgMTAuNXMyLjEgMTcuNCAxMC41IDIwYzEuNiAuNSAzLjMgMSA1IDEuNmwwIDAgMCAwYzcgMi4zIDE1LjEgNC44IDIzLjcgNi42djExLjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY0MzguN2M2LjItMS4xIDEyLjUtMy4xIDE4LjMtNi4yYzEyLjEtNi41IDIyLjMtMTguNyAyMS43LTM2LjljLS41LTE2LjItMTAuMy0yNi4zLTIwLjUtMzIuM2MtOS40LTUuNi0yMS4yLTguOS0zMC41LTExLjVsLS4yIDBjLTEwLjQtMi45LTE4LjMtNS4yLTIzLjktOC4yYy00LjgtMi42LTQuOC00LTQuOC00LjVsMC0uMWMtLjEtMS45IC4zLTIuOSAuOC0zLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbHRlckNpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSAyMi45QzEwLjUgOC45IDI0LjUgMCA0MCAwSDQ3MmMxNS41IDAgMjkuNSA4LjkgMzYuMSAyMi45czQuNiAzMC41LTUuMiA0Mi41TDM5Ni40IDE5NS42QzMxNi4yIDIxMi4xIDI1NiAyODMgMjU2IDM2OGMwIDI3LjQgNi4zIDUzLjQgMTcuNSA3Ni41Yy0xLjYtLjgtMy4yLTEuOC00LjctMi45bC02NC00OGMtOC4xLTYtMTIuOC0xNS41LTEyLjgtMjUuNlYyODguOUw5IDY1LjNDLS43IDUzLjQtMi44IDM2LjggMy45IDIyLjl6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDMyIDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDA5LjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0MzIgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0NTQuNiAzNjhsMzYuNy0zNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDU0LjlDMTAuNSA0MC45IDI0LjUgMzIgNDAgMzJINDcyYzE1LjUgMCAyOS41IDguOSAzNi4xIDIyLjlzNC42IDMwLjUtNS4yIDQyLjVMMzIwIDMyMC45VjQ0OGMwIDEyLjEtNi44IDIzLjItMTcuNyAyOC42cy0yMy44IDQuMy0zMy41LTNsLTY0LTQ4Yy04LjEtNi0xMi44LTE1LjUtMTIuOC0yNS42VjMyMC45TDkgOTcuM0MtLjcgODUuNC0yLjggNjguOCAzLjkgNTQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmluZ2VycHJpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMjU2QzQ4IDE0MS4xIDE0MS4xIDQ4IDI1NiA0OGM2My4xIDAgMTE5LjYgMjguMSAxNTcuOCA3Mi41YzguNiAxMC4xIDIzLjggMTEuMiAzMy44IDIuNnMxMS4yLTIzLjggMi42LTMzLjhDNDAzLjMgMzQuNiAzMzMuNyAwIDI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NnY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI1NnptNDU4LjUtNTIuOWMtMi43LTEzLTE1LjUtMjEuMy0yOC40LTE4LjVzLTIxLjMgMTUuNS0xOC41IDI4LjRjMi45IDEzLjkgNC41IDI4LjMgNC41IDQzLjF2NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyNTZjMC0xOC4xLTEuOS0zNS44LTUuNS01Mi45ek0yNTYgODBjLTE5IDAtMzcuNCAzLTU0LjUgOC42Yy0xNS4yIDUtMTguNyAyMy43LTguMyAzNS45YzcuMSA4LjMgMTguOCAxMC44IDI5LjQgNy45YzEwLjYtMi45IDIxLjgtNC40IDMzLjQtNC40YzcwLjcgMCAxMjggNTcuMyAxMjggMTI4djI0LjljMCAyNS4yLTEuNSA1MC4zLTQuNCA3NS4zYy0xLjcgMTQuNiA5LjQgMjcuOCAyNC4yIDI3LjhjMTEuOCAwIDIxLjktOC42IDIzLjMtMjAuM2MzLjMtMjcuNCA1LTU1IDUtODIuN1YyNTZjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZ6TTE1MC43IDE0OC43Yy05LjEtMTAuNi0yNS4zLTExLjQtMzMuOS0uNEM5My43IDE3OCA4MCAyMTUuNCA4MCAyNTZ2MjQuOWMwIDI0LjItMi42IDQ4LjQtNy44IDcxLjlDNjguOCAzNjguNCA4MC4xIDM4NCA5Ni4xIDM4NGMxMC41IDAgMTkuOS03IDIyLjItMTcuM2M2LjQtMjguMSA5LjctNTYuOCA5LjctODUuOFYyNTZjMC0yNy4yIDguNS01Mi40IDIyLjktNzMuMWM3LjItMTAuNCA4LTI0LjYtLjItMzQuMnpNMjU2IDE2MGMtNTMgMC05NiA0My05NiA5NnYyNC45YzAgMzUuOS00LjYgNzEuNS0xMy44IDEwNi4xYy0zLjggMTQuMyA2LjcgMjkgMjEuNSAyOWM5LjUgMCAxNy45LTYuMiAyMC40LTE1LjRjMTAuNS0zOSAxNS45LTc5LjIgMTUuOS0xMTkuN1YyNTZjMC0yOC43IDIzLjMtNTIgNTItNTJzNTIgMjMuMyA1MiA1MnYyNC45YzAgMzYuMy0zLjUgNzIuNC0xMC40IDEwNy45Yy0yLjcgMTMuOSA3LjcgMjcuMiAyMS44IDI3LjJjMTAuMiAwIDE5LTcgMjEtMTdjNy43LTM4LjggMTEuNi03OC4zIDExLjYtMTE4LjFWMjU2YzAtNTMtNDMtOTYtOTYtOTZ6bTI0IDk2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djI0LjljMCA1OS45LTExIDExOS4zLTMyLjUgMTc1LjJsLTUuOSAxNS4zYy00LjggMTIuNCAxLjQgMjYuMyAxMy44IDMxczI2LjMtMS40IDMxLTEzLjhsNS45LTE1LjNDMjY3LjkgNDExLjkgMjgwIDM0Ni43IDI4MCAyODAuOVYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVCdXJuZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ1LjcgNDguM0wzNTggMzQuNWM1LjQtNi4xIDEzLjMtOC44IDIwLjktOC45YzcuMiAwIDE0LjMgMi42IDE5LjkgNy44YzE5LjcgMTguMyAzOS44IDQzLjIgNTUgNzAuNkM0NjkgMTMxLjIgNDgwIDE2Mi4yIDQ4MCAxOTIuMkM0ODAgMjgwLjggNDA4LjcgMzUyIDMyMCAzNTJjLTg5LjYgMC0xNjAtNzEuMy0xNjAtMTU5LjhjMC0zNy4zIDE2LTczLjQgMzYuOC0xMDQuNWMyMC45LTMxLjMgNDcuNS01OSA3MC45LTgwLjJDMjczLjQgMi4zIDI4MC43LS4yIDI4OCAwYzE0LjEgLjMgMjMuOCAxMS40IDMyLjcgMjEuNmMwIDAgMCAwIDAgMGMyIDIuMyA0IDQuNiA2IDYuN2wxOSAxOS45ek0zODQgMjQwLjJjMC0zNi41LTM3LTczLTU0LjgtODguNGMtNS40LTQuNy0xMy4xLTQuNy0xOC41IDBDMjkzIDE2Ny4xIDI1NiAyMDMuNiAyNTYgMjQwLjJjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHpNMzIgMjg4YzAtMTcuNyAxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsMCA2NCA0NDggMCAwLTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDMyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMyTDMyIDUxMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTk2ek0zMjAgNDgwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTYwLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE5MiA0ODBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlRXh0aW5ndWlzaGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMC4zIDcuM0M1MDcuNyAxMy4zIDUxMiAyMi40IDUxMiAzMnY5NmMwIDkuNi00LjMgMTguNy0xMS43IDI0LjdzLTE3LjIgOC41LTI2LjYgNi42bC0xNjAtMzJDMzAxLjUgMTI0LjkgMjkyIDExNS43IDI4OSAxMDRIMjI0djM0LjhjMzcuOCAxOCA2NCA1Ni41IDY0IDEwMS4yVjM4NEg2NFYyNDBjMC00NC43IDI2LjItODMuMiA2NC0xMDEuMlYxMTBjLTM2LjIgMTEuMS02NiAzNi45LTgyLjMgNzAuNWMtNS44IDExLjktMjAuMiAxNi45LTMyLjEgMTEuMVMtMy4zIDE3MS40IDIuNSAxNTkuNUMyNi43IDEwOS44IDcyLjcgNzIuNiAxMjggNjAuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMmgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY1Nmg2NWMzLTExLjcgMTIuNS0yMC45IDI0LjctMjMuNGwxNjAtMzJjOS40LTEuOSAxOS4xIC42IDI2LjYgNi42ek0yODggNDE2djMyYzAgMzUuMy0yOC43IDY0LTY0IDY0SDEyOGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNDE2SDI4OHpNMTc2IDk2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZUZsYW1lQ3VydmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1My42IDI5LjlsMTYtMjEuM0MxNzMuNiAzLjIgMTgwIDAgMTg2LjcgMEMxOTguNCAwIDIwOCA5LjYgMjA4IDIxLjNWNDMuNWMwIDEzLjEgNS40IDI1LjcgMTQuOSAzNC43TDMwNy42IDE1OUMzNTYuNCAyMDUuNiAzODQgMjcwLjIgMzg0IDMzNy43QzM4NCA0MzQgMzA2IDUxMiAyMDkuNyA1MTJIMTkyQzg2IDUxMiAwIDQyNiAwIDMyMHYtMy44YzAtNDguOCAxOS40LTk1LjYgNTMuOS0xMzAuMWwzLjUtMy41YzQuMi00LjIgMTAtNi42IDE2LTYuNkM4NS45IDE3NiA5NiAxODYuMSA5NiAxOTguNlYyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NHYtMy45YzAtMTgtNy4yLTM1LjMtMTkuOS00OGwtMzguNi0zOC42Yy0yNC0yNC0zNy41LTU2LjctMzcuNS05MC43YzAtMjcuNyA5LTU0LjggMjUuNi03Ni45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlRmxhbWVTaW1wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyLjUgMjU2LjVsLS43LTEuOUMzMzcuOCAxNjAuOCAyODIgNzYuNSAyMDkuMSA4LjVsLTMuMy0zQzIwMi4xIDIgMTk3LjEgMCAxOTIgMHMtMTAuMSAyLTEzLjggNS41bC0zLjMgM0MxMDIgNzYuNSA0Ni4yIDE2MC44IDEyLjIgMjU0LjZsLS43IDEuOUMzLjkgMjc3LjMgMCAyOTkuNCAwIDMyMS42QzAgNDI2LjcgODYuOCA1MTIgMTkyIDUxMnMxOTItODUuMyAxOTItMTkwLjRjMC0yMi4yLTMuOS00NC4yLTExLjUtNjUuMXptLTkwLjggNDkuNWM0LjEgOS4zIDYuMiAxOS40IDYuMiAyOS41YzAgNTMtNDMgOTYuNS05NiA5Ni41cy05Ni00My41LTk2LTk2LjVjMC0xMC4xIDIuMS0yMC4zIDYuMi0yOS41bDEuOS00LjNjMTUuOC0zNS40IDM3LjktNjcuNyA2NS4zLTk1LjFsOC45LTguOWMzLjYtMy42IDguNS01LjYgMTMuNi01LjZzMTAgMiAxMy42IDUuNmw4LjkgOC45YzI3LjQgMjcuNCA0OS42IDU5LjcgNjUuMyA5NS4xbDEuOSA0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU5LjMgNS40YzcuOC03LjMgMTkuOS03LjIgMjcuNyAuMWMyNy42IDI1LjkgNTMuNSA1My44IDc3LjcgODRjMTEtMTQuNCAyMy41LTMwLjEgMzctNDIuOWM3LjktNy40IDIwLjEtNy40IDI4IC4xYzM0LjYgMzMgNjMuOSA3Ni42IDg0LjUgMTE4YzIwLjMgNDAuOCAzMy44IDgyLjUgMzMuOCAxMTEuOUM0NDggNDA0LjIgMzQ4LjIgNTEyIDIyNCA1MTJDOTguNCA1MTIgMCA0MDQuMSAwIDI3Ni41YzAtMzguNCAxNy44LTg1LjMgNDUuNC0xMzEuN0M3My4zIDk3LjcgMTEyLjcgNDguNiAxNTkuMyA1LjR6TTIyNS43IDQxNmMyNS4zIDAgNDcuNy03IDY4LjgtMjFjNDIuMS0yOS40IDUzLjQtODguMiAyOC4xLTEzNC40Yy00LjUtOS0xNi05LjYtMjIuNS0ybC0yNS4yIDI5LjNjLTYuNiA3LjYtMTguNSA3LjQtMjQuNy0uNWMtMTYuNS0yMS00Ni01OC41LTYyLjgtNzkuOGMtNi4zLTgtMTguMy04LjEtMjQuNy0uMWMtMzMuOCA0Mi41LTUwLjggNjkuMy01MC44IDk5LjRDMTEyIDM3NS40IDE2Mi42IDQxNiAyMjUuNyA0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpc2hGaW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NS4yIDM4LjRjLTEwLjYtOC0yNS04LjUtMzYuMy0xLjVTMjIyIDU3LjMgMjI0LjYgNzAuM2w5LjcgNDguNmMtMTkuNCA5LTM2LjkgMTkuOS01Mi40IDMxLjVjLTE1LjMgMTEuNS0yOSAyMy45LTQwLjcgMzYuM0w0OC4xIDEzMi40Yy0xMi41LTcuMy0yOC40LTUuMy0zOC42IDQuOVMtMyAxNjMuMyA0LjIgMTc1LjlMNTAgMjU2IDQuMiAzMzYuMWMtNy4yIDEyLjYtNSAyOC40IDUuMyAzOC42czI2LjEgMTIuMiAzOC42IDQuOWw5My4xLTU0LjNjMTEuOCAxMi4zIDI1LjQgMjQuOCA0MC43IDM2LjNjMTUuNSAxMS42IDMzIDIyLjUgNTIuNCAzMS41bC05LjcgNDguNmMtMi42IDEzIDMuMSAyNi4zIDE0LjMgMzMuM3MyNS42IDYuNSAzNi4zLTEuNWw3Ny42LTU4LjJjNTQuOS00IDEwMS41LTI3IDEzNy4yLTUzLjhjMzkuMi0yOS40IDY3LjItNjQuNyA4MS42LTg5LjVjNS44LTkuOSA1LjgtMjIuMiAwLTMyLjFjLTE0LjQtMjQuOC00Mi41LTYwLjEtODEuNi04OS41Yy0zNS44LTI2LjgtODIuMy00OS44LTEzNy4yLTUzLjhMMjc1LjIgMzguNHpNMzg0IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4MC41IDE0MS41QzIxOS43IDEwOC41IDI3Mi42IDgwIDMzNiA4MHMxMTYuMyAyOC41IDE1NS41IDYxLjVjMzkuMSAzMyA2Ni45IDcyLjQgODEgOTkuOGM0LjcgOS4yIDQuNyAyMC4xIDAgMjkuM2MtMTQuMSAyNy40LTQxLjkgNjYuOC04MSA5OS44QzQ1Mi4zIDQwMy41IDM5OS40IDQzMiAzMzYgNDMycy0xMTYuMy0yOC41LTE1NS41LTYxLjVjLTE2LjItMTMuNy0zMC41LTI4LjUtNDIuNy00My4xTDQ4LjEgMzc5LjZjLTEyLjUgNy4zLTI4LjQgNS4zLTM4LjctNC45Uy0zIDM0OC43IDQuMiAzMzYuMUw1MCAyNTYgNC4yIDE3NS45Yy03LjItMTIuNi01LTI4LjQgNS4zLTM4LjZzMjYuMS0xMi4yIDM4LjctNC45bDg5LjcgNTIuM2MxMi4yLTE0LjYgMjYuNS0yOS40IDQyLjctNDMuMXpNNDQ4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnQ2hlY2tlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDNDkuNyAwIDY0IDE0LjMgNjQgMzJWNDhsNjktMTcuMmMzOC4xLTkuNSA3OC4zLTUuMSAxMTMuNSAxMi41YzQ2LjMgMjMuMiAxMDAuOCAyMy4yIDE0Ny4xIDBsOS42LTQuOEM0MjMuOCAyOC4xIDQ0OCA0My4xIDQ0OCA2Ni4xVjM0NS44YzAgMTMuMy04LjMgMjUuMy0yMC44IDMwbC0zNC43IDEzYy00Ni4yIDE3LjMtOTcuNiAxNC42LTE0MS43LTcuNGMtMzcuOS0xOS04MS4zLTIzLjctMTIyLjUtMTMuNEw2NCAzODR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDAwIDMzNCA2NCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTY0IDE4Ny4xbDY0LTEzLjl2NjUuNUw2NCAyNTIuNlYzMThsNDguOC0xMi4yYzUuMS0xLjMgMTAuMS0yLjQgMTUuMi0zLjNWMjM4LjdsMzguOS04LjRjOC4zLTEuOCAxNi43LTIuNSAyNS4xLTIuMWwwLTY0YzEzLjYgLjQgMjcuMiAyLjYgNDAuNCA2LjRsMjMuNiA2Ljl2NjYuN2wtNDEuNy0xMi4zYy03LjMtMi4xLTE0LjgtMy40LTIyLjMtMy44djcxLjRjMjEuOCAxLjkgNDMuMyA2LjcgNjQgMTQuNFYyNDQuMmwyMi43IDYuN2MxMy41IDQgMjcuMyA2LjQgNDEuMyA3LjRWMTk0Yy03LjgtLjgtMTUuNi0yLjMtMjMuMi00LjVsLTQwLjgtMTJ2LTYyYy0xMy0zLjgtMjUuOC04LjgtMzguMi0xNWMtOC4yLTQuMS0xNi45LTctMjUuOC04Ljh2NzIuNGMtMTMtLjQtMjYgLjgtMzguNyAzLjZMMTI4IDE3My4yVjk4TDY0IDExNHY3My4xek0zMjAgMzM1LjdjMTYuOCAxLjUgMzMuOS0uNyA1MC02LjhsMTQtNS4yVjI1MS45bC03LjkgMS44Yy0xOC40IDQuMy0zNy4zIDUuNy01Ni4xIDQuNXY3Ny40em02NC0xNDkuNFYxMTUuNGMtMjAuOSA2LjEtNDIuNCA5LjEtNjQgOS4xVjE5NGMxMy45IDEuNCAyOCAuNSA0MS43LTIuNmwyMi4zLTUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhZ1VzYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzQ5LjcgMCA2NCAxNC4zIDY0IDMyVjQ4bDY5LTE3LjJjMzguMS05LjUgNzguMy01LjEgMTEzLjUgMTIuNWM0Ni4zIDIzLjIgMTAwLjggMjMuMiAxNDcuMSAwbDkuNi00LjhDNDIzLjggMjguMSA0NDggNDMuMSA0NDggNjYuMXYzNi4xbC00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTIwLjMtOS00MS44LTE0LjctNjMuNi0xNi45djMyLjJjMTcuNCAyLjEgMzQuNCA2LjcgNTAuNiAxMy45bDE2LjEgNy4yYzQ5LjIgMjEuOSAxMDUgMjMuOCAxNTUuNiA1LjRMNDQ4IDEzNi4zdjYybC00NC43IDE2LjJjLTQyLjggMTUuNi05MCAxMy45LTEzMS42LTQuNmwtMTYuMS03LjJjLTQwLjItMTcuOS04NS0yMi41LTEyOC4xLTEzLjNMNjQgMjAzLjF2MzIuN2w3MC4yLTE1LjFjMzYuNC03LjggNzQuMy0zLjkgMTA4LjQgMTEuM2wxNi4xIDcuMmM0OS4yIDIxLjkgMTA1IDIzLjggMTU1LjYgNS40TDQ0OCAyMzIuM3Y2MmwtNDQuNyAxNi4yYy00Mi44IDE1LjYtOTAgMTMuOS0xMzEuNi00LjZsLTE2LjEtNy4yYy00MC4yLTE3LjktODUtMjIuNS0xMjguMS0xMy4zTDY0IDI5OS4xdjMyLjdsNzAuMi0xNS4xYzM2LjQtNy44IDc0LjMtMy45IDEwOC40IDExLjNsMTYuMSA3LjJjNDkuMiAyMS45IDEwNSAyMy44IDE1NS42IDUuNEw0NDggMzI4LjN2MzMuNWMwIDEzLjMtOC4zIDI1LjMtMjAuOCAzMGwtMzQuNyAxM2MtNDYuMiAxNy4zLTk3LjYgMTQuNi0xNDEuNy03LjRjLTM3LjktMTktODEuMy0yMy43LTEyMi41LTEzLjRMNjQgNDAwdjgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQxNiAzNDUuNSAzMTIuOCAyNDkuNSAyMTYuOCAxNTMuNSAxMjAuOCA2NCAzMkMwIDE0LjMgMTQuMyAwIDMyIDB6bTgwIDk2QTE2IDE2IDAgMSAwIDgwIDk2YTE2IDE2IDAgMSAwIDMyIDB6bTMyIDBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tMzIgNDhhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzIgMGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNjQgMTQuMyA0OS43IDAgMzIgMFMwIDE0LjMgMCAzMlY2NCAzNjggNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUybDY0LjMtMTYuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNGM0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwVjY2LjFjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMGMtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw2NCA0OFYzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhc2tWaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NSAzODkuNGMtOS44IDE2LTE1IDM0LjMtMTUgNTMuMWMtMTAgMy41LTIwLjggNS41LTMyIDUuNWMtNTMgMC05Ni00My05Ni05NlY2NEMxNC4zIDY0IDAgNDkuNyAwIDMyUzE0LjMgMCAzMiAwSDk2aDY0IDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjMwOS45bC00OSA3OS42ek05NiA2NHY5Nmg2NFY2NEg5NnpNMzUyIDBINDgwaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjIxNC45TDYyOS43IDQwNi4yYzYuNyAxMC45IDEwLjMgMjMuNSAxMC4zIDM2LjRjMCAzOC4zLTMxLjEgNjkuNC02OS40IDY5LjRIMjYxLjRjLTM4LjMgMC02OS40LTMxLjEtNjkuNC02OS40YzAtMTIuOCAzLjYtMjUuNCAxMC4zLTM2LjRMMzIwIDIxNC45VjY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDMyem0zMiA2NFYyMjRjMCA1LjktMS42IDExLjctNC43IDE2LjhMMzMwLjUgMzIwaDE3MWwtNDguOC03OS4yYy0zLjEtNS00LjctMTAuOC00LjctMTYuOFY2NEgzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAwSDE2MCAxMjhDMTEwLjMgMCA5NiAxNC4zIDk2IDMyczE0LjMgMzIgMzIgMzJWMTk2LjhjMCAxMS44LTMuMyAyMy41LTkuNSAzMy41TDEwLjMgNDA2LjJDMy42IDQxNy4yIDAgNDI5LjcgMCA0NDIuNkMwIDQ4MC45IDMxLjEgNTEyIDY5LjQgNTEySDM3OC42YzM4LjMgMCA2OS40LTMxLjEgNjkuNC02OS40YzAtMTIuOC0zLjYtMjUuNC0xMC4zLTM2LjRMMzI5LjUgMjMwLjRjLTYuMi0xMC4xLTkuNS0yMS43LTkuNS0zMy41VjY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OHpNMTkyIDE5Ni44VjY0aDY0VjE5Ni44YzAgMjMuNyA2LjYgNDYuOSAxOSA2Ny4xTDMwOS41IDMyMGgtMTcxTDE3MyAyNjMuOWMxMi40LTIwLjIgMTktNDMuNCAxOS02Ny4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbG9wcHlEaXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNzMuM2MwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wzNTIgNTAuN0MzNDAgMzguNyAzMjMuNyAzMiAzMDYuNyAzMkg2NHptMCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjEyOHpNMjI0IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxvcmluU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTQuNyAzMmMtMzguOCAwLTczLjcgMjMuMy04OC42IDU5LjFMMTcwLjcgMjI0SDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDgwTDk4LjkgMzk2LjNjLTUgMTEuOS0xNi42IDE5LjctMjkuNSAxOS43SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY5LjNjMzguOCAwIDczLjctMjMuMyA4OC42LTU5LjFMMjEzLjMgMjg4SDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNDBsNDUuMS0xMDguM2M1LTExLjkgMTYuNi0xOS43IDI5LjUtMTkuN0gzNTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzE0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlckNsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDgwSDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxOTJINTEyVjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NHptNjQtMzIwSDBWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMTkyYzIwLjEgMCAzOS4xIDkuNSA1MS4yIDI1LjZsMTkuMiAyNS42YzYgOC4xIDE1LjUgMTIuOCAyNS42IDEyLjhINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNDgwSDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgxOTJjMjAuMSAwIDM5LjEgOS41IDUxLjIgMjUuNmwxOS4yIDI1LjZjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0ek0xODQgMjcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODguNyAyMjMuOEwwIDM3NS44Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDE4MS41YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDI2LjUgMjYuNWMxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43SDQxNmMzNS4zIDAgNjQgMjguNyA2NCA2NHYzMkgxNDRjLTIyLjggMC00My44IDEyLjEtNTUuMyAzMS44em0yNy42IDE2LjFDMTIyLjEgMjMwIDEzMi42IDIyNCAxNDQgMjI0SDU0NGMxMS41IDAgMjIgNi4xIDI3LjcgMTYuMXM1LjcgMjIuMi0uMSAzMi4xbC0xMTIgMTkyQzQ1My45IDQ3NCA0NDMuNCA0ODAgNDMyIDQ4MEgzMmMtMTEuNSAwLTIyLTYuMS0yNy43LTE2LjFzLTUuNy0yMi4yIC4xLTMyLjFsMTEyLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgxOTJjMjAuMSAwIDM5LjEgOS41IDUxLjIgMjUuNmwxOS4yIDI1LjZjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2ek0yMzIgMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzEyaDY0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDI4MFYyMDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NjRIMTY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDY0djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXJUcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzY0IDE0LjMgNDkuNyAwIDMyIDBTMCAxNC4zIDAgMzJ2OTZWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDI1NlYzODRINjRWMTYwSDI1NlY5Nkg2NFYzMnpNMjg4IDE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMkg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJINDQ1LjNjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40TDQwOS40IDkuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWMTkyem0wIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ0NS4zYy04LjUgMC0xNi42LTMuNC0yMi42LTkuNGwtMTMuMy0xMy4zYy02LTYtMTQuMS05LjQtMjIuNi05LjRIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0ODBINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE2MGMwLTM1LjMtMjguNy02NC02NC02NEgyODhjLTEwLjEgMC0xOS42LTQuNy0yNS42LTEyLjhMMjQzLjIgNTcuNkMyMzEuMSA0MS41IDIxMi4xIDMyIDE5MiAzMkg2NEMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTQgNTIuOEMyNDkuMyA0MC4zIDIzNy4zIDMyIDIyNCAzMnMtMjUuMyA4LjMtMzAgMjAuOEw1Ny44IDQxNkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtMS44bDE4LTQ4SDMwMy44bDE4IDQ4SDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzOTAuMkwyNTQgNTIuOHpNMjc5LjggMzA0SDE2OC4yTDIyNCAxNTUuMSAyNzkuOCAzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvb3RiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny41IDI1LjRjLTEzLjUgMy4zLTI2LjQgNy4yLTM4LjYgMTEuN0MxNDIuOSA2MS42IDk2LjcgMTAzLjYgNjYgMTUzLjZjLTE4LjMgMjkuOC0zMC45IDYyLjMtMzkuMiA5NS40TDI2NC41IDQ4Ni42YzEzLjUtMy4zIDI2LjQtNy4yIDM4LjYtMTEuN2M2Ni0yNC41IDExMi4yLTY2LjUgMTQyLjktMTE2LjVjMTguMy0yOS44IDMwLjktNjIuMyAzOS4xLTk1LjNMMjQ3LjUgMjUuNHpNNDk1LjIgMjA1LjNjNi4xLTU2LjggMS40LTExMi4yLTcuNy0xNTYuNGMtMi43LTEyLjktMTMtMjIuOS0yNi4xLTI1LjFjLTU4LjItOS43LTEwOS45LTEyLTE1NS42LTcuOUw0OTUuMiAyMDUuM3pNMjA2LjEgNDk2TDE2LjggMzA2LjdjLTYuMSA1Ni44LTEuNCAxMTIuMiA3LjcgMTU2LjRjMi43IDEyLjkgMTMgMjIuOSAyNi4xIDI1LjFjNTguMiA5LjcgMTA5LjkgMTIgMTU1LjYgNy45em01NC42LTMzMS4zYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnptLTQ4IDQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnptLTQ4IDQ4YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBsLTY0LTY0Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9yd2FyZEZhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNCA0NDVjMTEuMiA1LjMgMjQuNSAzLjYgMzQuMS00LjRMMjI0IDI5Ny43VjQxNmMwIDEyLjQgNy4yIDIzLjcgMTguNCAyOXMyNC41IDMuNiAzNC4xLTQuNEw0NDggMjk3LjdWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjE0LjNMMjc2LjUgNzEuNGMtOS41LTcuOS0yMi44LTkuNy0zNC4xLTQuNFMyMjQgODMuNiAyMjQgOTZWMjE0LjNMNTIuNSA3MS40Yy05LjUtNy45LTIyLjgtOS43LTM0LjEtNC40UzAgODMuNiAwIDk2VjQxNmMwIDEyLjQgNy4yIDIzLjcgMTguNCAyOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9yd2FyZFN0ZXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2Vjk2QzAgODMuNiA3LjIgNzIuMyAxOC40IDY3czI0LjUtMy42IDM0LjEgNC40bDE5MiAxNjBMMjU2IDI0MVY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNzFsLTExLjUgOS42LTE5MiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTIuNSA0NDAuNmMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNFMwIDQyOC40IDAgNDE2Vjk2QzAgODMuNiA3LjIgNzIuMyAxOC40IDY3czI0LjUtMy42IDM0LjEgNC40TDIyNCAyMTQuM1YyNTZ2NDEuN0w1Mi41IDQ0MC42ek0yNTYgMzUyVjI1NiAxMjggOTZjMC0xMi40IDcuMi0yMy43IDE4LjQtMjlzMjQuNS0zLjYgMzQuMSA0LjRsMTkyIDE2MGM3LjMgNi4xIDExLjUgMTUuMSAxMS41IDI0LjZzLTQuMiAxOC41LTExLjUgMjQuNmwtMTkyIDE2MGMtOS41IDcuOS0yMi44IDkuNy0zNC4xIDQuNHMtMTguNC0xNi42LTE4LjQtMjlWMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcmFuY1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMzJDNjIuMyAzMiA0OCA0Ni4zIDQ4IDY0VjIyNHY5NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0OHY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGg4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTJWMjU2SDI1NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTJWOTZIMjg4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcm9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCAzMmM0MS43IDAgNzUuOSAzMS44IDc5LjcgNzIuNWw4NS42IDI2LjNjMjUuNCA3LjggNDIuOCAzMS4zIDQyLjggNTcuOWMwIDIxLjgtMTEuNyA0MS45LTMwLjcgNTIuN0w0MDAuOCAzMjMuNSA0OTMuMyA0MTZINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ4MGMtOC41IDAtMTYuNi0zLjQtMjIuNi05LjRMMzQ2LjkgMzYwLjJjMTEuNy0zNiAzLjItNzcuMS0yNS40LTEwNS43Yy00MC42LTQwLjYtMTA2LjMtNDAuNi0xNDYuOS0uMUwxMDEgMzI0LjRjLTYuNCA2LjEtNi43IDE2LjItLjYgMjIuNnMxNi4yIDYuNiAyMi42IC42bDczLjgtNzAuMiAuMS0uMSAuMS0uMWMzLjUtMy41IDcuMy02LjYgMTEuMy05LjJjMjcuOS0xOC41IDY1LjktMTUuNCA5MC41IDkuMmMyNC43IDI0LjcgMjcuNyA2Mi45IDkgOTAuOWMtMi42IDMuOC01LjYgNy41LTkgMTAuOUwyNjEuOCA0MTZIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NEMwIDI0OS42IDEyNyAxMTIuOSAyODkuMyA5Ny41QzI5Ni4yIDYwLjIgMzI4LjggMzIgMzY4IDMyem0wIDEwNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZ1dGJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTcuMyAzNjAuMWwtNzEuNi00LjhjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMTcuNiA2OS42QzI4OS41IDQ0NS44IDI3MyA0NDggMjU2IDQ0OHMtMzMuNS0yLjItNDkuMi02LjRMMTg5LjIgMzcyYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC03MS42IDQuOGMtMTcuNi0yNy4yLTI4LjUtNTkuMi0zMC40LTkzLjZMMTI1IDIyOC4zYzQuNC0yLjggNy42LTcgOS4yLTExLjlzMS40LTEwLjItLjUtMTVsLTI2LjctNjYuNkMxMjggMTA5LjIgMTU1LjMgODkgMTg2LjcgNzYuOWw1NS4yIDQ2YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDU1LjItNDZjMzEuMyAxMi4xIDU4LjcgMzIuMyA3OS42IDU3LjlsLTI2LjcgNjYuNmMtMS45IDQuOC0yLjEgMTAuMS0uNSAxNXM0LjkgOS4xIDkuMiAxMS45bDYwLjcgMzguMmMtMS45IDM0LjQtMTIuOCA2Ni40LTMwLjQgOTMuNnpNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZoNTkuMmMxMC40IDAgMTkuNi02LjcgMjIuOC0xNi42bDE4LjMtNTYuM2MzLjItOS45LS4zLTIwLjctOC43LTI2LjhsLTQ3LjktMzQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgOTZDMTM1LjYgOTYgNjQgMTY3LjYgNjQgMjU2czcxLjYgMTYwIDE2MCAxNjBjNzcuNCAwIDE0Mi01NSAxNTYuOC0xMjhIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQwMGMyNS44IDAgNDkuNiAyMS40IDQ3LjIgNTAuNkM0MzcuOCAzODkuNiAzNDEuNCA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJjNTcuNCAwIDEwOS43IDIxLjYgMTQ5LjMgNTdjMTMuMiAxMS44IDE0LjMgMzIgMi41IDQ1LjJzLTMyIDE0LjMtNDUuMiAyLjVDMzAyLjMgMTExLjQgMjY1IDk2IDIyNCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FtZXBhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhINDQ4YzEwNiAwIDE5Mi04NiAxOTItMTkycy04Ni0xOTItMTkyLTE5MkgxOTJ6TTQ5NiAxNjhhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwek0zOTIgMzA0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6TTE2OCAyMDBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHYzMmgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMTZ2MzJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjgwSDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGgzMlYyMDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhc1B1bXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNjRDMzIgMjguNyA2MC43IDAgOTYgMEgyNTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMjU2aDhjNDguNiAwIDg4IDM5LjQgODggODh2MzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYyMjJjLTI3LjYtNy4xLTQ4LTMyLjItNDgtNjJWOTZMMzg0IDY0Yy04LjgtOC44LTguOC0yMy4yIDAtMzJzMjMuMi04LjggMzIgMGw3Ny4zIDc3LjNjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1YxNjh2MjQgMzJWMzc2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyVjM0NGMwLTIyLjEtMTcuOS00MC00MC00MGgtOFY0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJWNjR6TTk2IDgwdjk2YzAgOC44IDcuMiAxNiAxNiAxNkgyNDBjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2F1Z2VIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpNMjg4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTI1NiA0MTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRjMC0xNy40LTYuOS0zMy4xLTE4LjEtNDQuNkwzNjYgMTYxLjdjNS4zLTEyLjEtLjItMjYuMy0xMi4zLTMxLjZzLTI2LjMgLjItMzEuNiAxMi4zTDI1Ny45IDI4OGMtLjYgMC0xLjMgMC0xLjkgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHpNMTc2IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwek05NiAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0zNTItMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2F1Z2VTaW1wbGVIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzIwIDk2YzAtMTUuOS01LjgtMzAuNC0xNS4zLTQxLjZsNzYuNi0xNDcuNGM2LjEtMTEuOCAxLjUtMjYuMy0xMC4yLTMyLjRzLTI2LjItMS41LTMyLjQgMTAuMkwyNjIuMSAyODguM2MtMi0uMi00LS4zLTYuMS0uM2MtMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXVnZVNpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNWODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWMjkyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuM2MwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYXVnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMyMCA5NmMwLTI2LjktMTYuNS00OS45LTQwLTU5LjNWODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWMjkyLjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuM2MwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0ek0xNDQgMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptLTE2IDgwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQwMCAxNDRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2F2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE4LjYgOS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtMTIwIDEyMGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsMTYgMTZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNC00TDMyNS40IDI5My40bC00IDRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDE2IDE2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDEyMC0xMjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTE2LTE2Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNCA0TDMzMC42IDc0LjZsNC00YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xNi0xNnptLTE1MiAyODhjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMTIgMTEyYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w0OCA0OGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxMTItMTEyYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xLjQtMS40TDI3MiAyODUuMyAyMjYuNyAyNDAgMTY4IDI5OC43bC0xLjQtMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NS45IDE2Ni42YzMuMiA4LjcgLjUgMTguNC02LjQgMjQuNmwtNDMuMyAzOS40YzEuMSA4LjMgMS43IDE2LjggMS43IDI1LjRzLS42IDE3LjEtMS43IDI1LjRsNDMuMyAzOS40YzYuOSA2LjIgOS42IDE1LjkgNi40IDI0LjZjLTQuNCAxMS45LTkuNyAyMy4zLTE1LjggMzQuM2wtNC43IDguMWMtNi42IDExLTE0IDIxLjQtMjIuMSAzMS4yYy01LjkgNy4yLTE1LjcgOS42LTI0LjUgNi44bC01NS43LTE3LjdjLTEzLjQgMTAuMy0yOC4yIDE4LjktNDQgMjUuNGwtMTIuNSA1Ny4xYy0yIDkuMS05IDE2LjMtMTguMiAxNy44Yy0xMy44IDIuMy0yOCAzLjUtNDIuNSAzLjVzLTI4LjctMS4yLTQyLjUtMy41Yy05LjItMS41LTE2LjItOC43LTE4LjItMTcuOGwtMTIuNS01Ny4xYy0xNS44LTYuNS0zMC42LTE1LjEtNDQtMjUuNEw4My4xIDQyNS45Yy04LjggMi44LTE4LjYgLjMtMjQuNS02LjhjLTguMS05LjgtMTUuNS0yMC4yLTIyLjEtMzEuMmwtNC43LTguMWMtNi4xLTExLTExLjQtMjIuNC0xNS44LTM0LjNjLTMuMi04LjctLjUtMTguNCA2LjQtMjQuNmw0My4zLTM5LjRDNjQuNiAyNzMuMSA2NCAyNjQuNiA2NCAyNTZzLjYtMTcuMSAxLjctMjUuNEwyMi40IDE5MS4yYy02LjktNi4yLTkuNi0xNS45LTYuNC0yNC42YzQuNC0xMS45IDkuNy0yMy4zIDE1LjgtMzQuM2w0LjctOC4xYzYuNi0xMSAxNC0yMS40IDIyLjEtMzEuMmM1LjktNy4yIDE1LjctOS42IDI0LjUtNi44bDU1LjcgMTcuN2MxMy40LTEwLjMgMjguMi0xOC45IDQ0LTI1LjRsMTIuNS01Ny4xYzItOS4xIDktMTYuMyAxOC4yLTE3LjhDMjI3LjMgMS4yIDI0MS41IDAgMjU2IDBzMjguNyAxLjIgNDIuNSAzLjVjOS4yIDEuNSAxNi4yIDguNyAxOC4yIDE3LjhsMTIuNSA1Ny4xYzE1LjggNi41IDMwLjYgMTUuMSA0NCAyNS40bDU1LjctMTcuN2M4LjgtMi44IDE4LjYtLjMgMjQuNSA2LjhjOC4xIDkuOCAxNS41IDIwLjIgMjIuMSAzMS4ybDQuNyA4LjFjNi4xIDExIDExLjQgMjIuNCAxNS44IDM0LjN6TTI1NiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdlYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOC41IDEzNS4zYzcuMS02LjMgOS45LTE2LjIgNi4yLTI1Yy0yLjMtNS4zLTQuOC0xMC41LTcuNi0xNS41TDMwNCA4OS40Yy0zLTUtNi4zLTkuOS05LjgtMTQuNmMtNS43LTcuNi0xNS43LTEwLjEtMjQuNy03LjFsLTI4LjIgOS4zYy0xMC43LTguOC0yMy0xNi0zNi4yLTIwLjlMMTk5IDI3LjFjLTEuOS05LjMtOS4xLTE2LjctMTguNS0xNy44QzE3My45IDguNCAxNjcuMiA4IDE2MC40IDhoLS43Yy02LjggMC0xMy41IC40LTIwLjEgMS4yYy05LjQgMS4xLTE2LjYgOC42LTE4LjUgMTcuOEwxMTUgNTYuMWMtMTMuMyA1LTI1LjUgMTIuMS0zNi4yIDIwLjlMNTAuNSA2Ny44Yy05LTMtMTktLjUtMjQuNyA3LjFjLTMuNSA0LjctNi44IDkuNi05LjkgMTQuNmwtMyA1LjNjLTIuOCA1LTUuMyAxMC4yLTcuNiAxNS42Yy0zLjcgOC43LS45IDE4LjYgNi4yIDI1bDIyLjIgMTkuOEMzMi42IDE2MS45IDMyIDE2OC45IDMyIDE3NnMuNiAxNC4xIDEuNyAyMC45TDExLjUgMjE2LjdjLTcuMSA2LjMtOS45IDE2LjItNi4yIDI1YzIuMyA1LjMgNC44IDEwLjUgNy42IDE1LjZsMyA1LjJjMyA1LjEgNi4zIDkuOSA5LjkgMTQuNmM1LjcgNy42IDE1LjcgMTAuMSAyNC43IDcuMWwyOC4yLTkuM2MxMC43IDguOCAyMyAxNiAzNi4yIDIwLjlsNi4xIDI5LjFjMS45IDkuMyA5LjEgMTYuNyAxOC41IDE3LjhjNi43IC44IDEzLjUgMS4yIDIwLjQgMS4yczEzLjctLjQgMjAuNC0xLjJjOS40LTEuMSAxNi42LTguNiAxOC41LTE3LjhsNi4xLTI5LjFjMTMuMy01IDI1LjUtMTIuMSAzNi4yLTIwLjlsMjguMiA5LjNjOSAzIDE5IC41IDI0LjctNy4xYzMuNS00LjcgNi44LTkuNSA5LjgtMTQuNmwzLjEtNS40YzIuOC01IDUuMy0xMC4yIDcuNi0xNS41YzMuNy04LjcgLjktMTguNi02LjItMjVsLTIyLjItMTkuOGMxLjEtNi44IDEuNy0xMy44IDEuNy0yMC45cy0uNi0xNC4xLTEuNy0yMC45bDIyLjItMTkuOHpNMTEyIDE3NmE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek01MDQuNyA1MDAuNWM2LjMgNy4xIDE2LjIgOS45IDI1IDYuMmM1LjMtMi4zIDEwLjUtNC44IDE1LjUtNy42bDUuNC0zLjFjNS0zIDkuOS02LjMgMTQuNi05LjhjNy42LTUuNyAxMC4xLTE1LjcgNy4xLTI0LjdsLTkuMy0yOC4yYzguOC0xMC43IDE2LTIzIDIwLjktMzYuMmwyOS4xLTYuMWM5LjMtMS45IDE2LjctOS4xIDE3LjgtMTguNWMuOC02LjcgMS4yLTEzLjUgMS4yLTIwLjRzLS40LTEzLjctMS4yLTIwLjRjLTEuMS05LjQtOC42LTE2LjYtMTcuOC0xOC41TDU4My45IDMwN2MtNS0xMy4zLTEyLjEtMjUuNS0yMC45LTM2LjJsOS4zLTI4LjJjMy05IC41LTE5LTcuMS0yNC43Yy00LjctMy41LTkuNi02LjgtMTQuNi05LjlsLTUuMy0zYy01LTIuOC0xMC4yLTUuMy0xNS42LTcuNmMtOC43LTMuNy0xOC42LS45LTI1IDYuMmwtMTkuOCAyMi4yYy02LjgtMS4xLTEzLjgtMS43LTIwLjktMS43cy0xNC4xIC42LTIwLjkgMS43bC0xOS44LTIyLjJjLTYuMy03LjEtMTYuMi05LjktMjUtNi4yYy01LjMgMi4zLTEwLjUgNC44LTE1LjYgNy42bC01LjIgM2MtNS4xIDMtOS45IDYuMy0xNC42IDkuOWMtNy42IDUuNy0xMC4xIDE1LjctNy4xIDI0LjdsOS4zIDI4LjJjLTguOCAxMC43LTE2IDIzLTIwLjkgMzYuMkwzMTUuMSAzMTNjLTkuMyAxLjktMTYuNyA5LjEtMTcuOCAxOC41Yy0uOCA2LjctMS4yIDEzLjUtMS4yIDIwLjRzLjQgMTMuNyAxLjIgMjAuNGMxLjEgOS40IDguNiAxNi42IDE3LjggMTguNWwyOS4xIDYuMWM1IDEzLjMgMTIuMSAyNS41IDIwLjkgMzYuMmwtOS4zIDI4LjJjLTMgOS0uNSAxOSA3LjEgMjQuN2M0LjcgMy41IDkuNSA2LjggMTQuNiA5LjhsNS40IDMuMWM1IDIuOCAxMC4yIDUuMyAxNS41IDcuNmM4LjcgMy43IDE4LjYgLjkgMjUtNi4ybDE5LjgtMjIuMmM2LjggMS4xIDEzLjggMS43IDIwLjkgMS43czE0LjEtLjYgMjAuOS0xLjdsMTkuOCAyMi4yek00NjQgMzA0YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNi43IDMzLjhjNC41LTYuMSAxMS43LTkuOCAxOS4zLTkuOEgzNzZjNy42IDAgMTQuOCAzLjYgMTkuMyA5LjhsMTEyIDE1MmM2LjggOS4yIDYuMSAyMS45LTEuNSAzMC40bC0yMzIgMjU2Yy00LjUgNS0xMSA3LjktMTcuOCA3LjlzLTEzLjItMi45LTE3LjgtNy45bC0yMzItMjU2Yy03LjctOC41LTguMy0yMS4yLTEuNS0zMC40bDExMi0xNTJ6bTM4LjUgMzkuOGMtMy4zIDIuNS00LjIgNy0yLjEgMTAuNWw1Ny40IDk1LjZMNjMuMyAxOTJjLTQuMSAuMy03LjMgMy44LTcuMyA4czMuMiA3LjYgNy4zIDhsMTkyIDE2Yy40IDAgLjkgMCAxLjMgMGwxOTItMTZjNC4xLS4zIDcuMy0zLjggNy4zLThzLTMuMi03LjYtNy4zLThMMzAxLjUgMTc5LjhsNTcuNC05NS42YzIuMS0zLjUgMS4yLTguMS0yLjEtMTAuNXMtNy45LTItMTAuNyAxTDI1NiAxNzIuMiAxNjUuOSA3NC42Yy0yLjgtMy03LjQtMy40LTEwLjctMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VuZGVybGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTQ0YTExMiAxMTIgMCAxIDEgMCAyMjQgMTEyIDExMiAwIDEgMSAwLTIyNHptMCAyODhhMTc2IDE3NiAwIDEgMCAwLTM1MiAxNzYgMTc2IDAgMSAwIDAgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MC4xIDQ2Ny4xbC0xMS4yIDljLTMuMiAyLjUtNy4xIDMuOS0xMS4xIDMuOUM4IDQ4MCAwIDQ3MiAwIDQ2Mi4yVjE5MkMwIDg2IDg2IDAgMTkyIDBTMzg0IDg2IDM4NCAxOTJWNDYyLjJjMCA5LjgtOCAxNy44LTE3LjggMTcuOGMtNCAwLTcuOS0xLjQtMTEuMS0zLjlsLTExLjItOWMtMTMuNC0xMC43LTMyLjgtOS00NC4xIDMuOUwyNjkuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNmwtMjYuNi0zMC41Yy0xMi43LTE0LjYtMzUuNC0xNC42LTQ4LjIgMEwxNDEuMyA1MDZjLTMuMyAzLjgtOC4yIDYtMTMuMyA2cy05LjktMi4yLTEzLjMtNkw4NC4yIDQ3MWMtMTEuMy0xMi45LTMwLjctMTQuNi00NC4xLTMuOXpNMTYwIDE5MmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkwLjUgNjguOEwyMjUuMyAxMjhIMjI0IDE1MmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGgyLjJjMTQuOSAwIDI4LjggNy45IDM2LjMgMjAuOHpNNjQgODhjMCAxNC40IDMuNSAyOCA5LjYgNDBIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJINDM4LjRjNi4xLTEyIDkuNi0yNS42IDkuNi00MGMwLTQ4LjYtMzkuNC04OC04OC04OGgtMi4yYy0zMS45IDAtNjEuNSAxNi45LTc3LjcgNDQuNEwyNTYgODUuNWwtMjQuMS00MUMyMTUuNyAxNi45IDE4Ni4xIDAgMTU0LjIgMEgxNTJDMTAzLjQgMCA2NCAzOS40IDY0IDg4em0zMzYgMGMwIDIyLjEtMTcuOSA0MC00MCA0MEgyODhoLTEuM2wzNC44LTU5LjJDMzI5LjEgNTUuOSAzNDIuOSA0OCAzNTcuOCA0OEgzNjBjMjIuMSAwIDQwIDE3LjkgNDAgNDB6TTMyIDI4OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMjI0VjI4OEgzMnpNMjg4IDUxMkg0MzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjg4SDI4OFY1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpZnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMC42IDMyQzIwNSAxOS41IDE5OC41IDUuOCAxODYgMS40UzE1OS44IDMuNSAxNTUuNCAxNkwxNDQuNyA0Ni4ybC05LjktMjkuOEMxMzAuNiAzLjggMTE3LTMgMTA0LjQgMS4yUzg1IDE5IDg5LjIgMzEuNmw4LjMgMjUtMjcuNC0yMGMtMTAuNy03LjgtMjUuNy01LjQtMzMuNSA1LjNzLTUuNCAyNS43IDUuMyAzMy41TDcwLjIgOTZINDhDMjEuNSA5NiAwIDExNy41IDAgMTQ0VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyMDAuNmMtNS40LTkuNC04LjYtMjAuMy04LjYtMzJWMjU2YzAtMjkuOSAyMC41LTU1IDQ4LjItNjJjMS44LTMxIDE3LjEtNTguMiA0MC4xLTc2LjFDMjcxLjcgMTA0LjcgMjU2LjkgOTYgMjQwIDk2SDIxNy44bDI4LjMtMjAuNmMxMC43LTcuOCAxMy4xLTIyLjggNS4zLTMzLjVzLTIyLjgtMTMuMS0zMy41LTUuM0wxOTIuNSA1NS4xIDIwMC42IDMyek0zNjMuNSAxODUuNUwzOTMuMSAyMjRIMzQ0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNGMwLTEzLjEgMTAuOC0yNCAyNC4yLTI0YzcuNiAwIDE0LjcgMy41IDE5LjMgOS41ek0yNzIgMjAwYzAgOC40IDEuNCAxNi41IDQuMSAyNEgyNzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djgwSDQxNlYyNTZoMzJ2OTZINjQwVjI3MmMwLTI2LjUtMjEuNS00OC00OC00OGgtNC4xYzIuNy03LjUgNC4xLTE1LjYgNC4xLTI0YzAtMzkuOS0zMi41LTcyLTcyLjItNzJjLTIyLjQgMC00My42IDEwLjQtNTcuMyAyOC4yTDQzMiAxOTUuOGwtMzAuNS0zOS42Yy0xMy43LTE3LjgtMzUtMjguMi01Ny4zLTI4LjJjLTM5LjcgMC03Mi4yIDMyLjEtNzIuMiA3MnpNMjI0IDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MTZWMzg0SDIyNHY4MHptMjI0IDQ4SDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OFYzODRINDQ4VjUxMnptOTYtMzEyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDQ3MC45bDI5LjYtMzguNWM0LjYtNS45IDExLjctOS41IDE5LjMtOS41YzEzLjQgMCAyNC4yIDEwLjkgMjQuMiAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NXYXRlckRyb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zSDI3NS4zYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwSDMyek04MyAyOTcuNUw2Ni40IDY0SDMxNy42TDMwMSAyOTcuNSAyODggMzA0Yy0yMC4xIDEwLjEtNDMuOSAxMC4xLTY0IDBzLTQzLjktMTAuMS02NCAwcy00My45IDEwLjEtNjQgMGwtMTMtNi41ek0yNTYgMTk2YzAtMjQtMzMuNy03MC4xLTUyLjItOTMuNWMtNi4xLTcuNy0xNy41LTcuNy0yMy42IDBDMTYxLjcgMTI1LjkgMTI4IDE3MiAxMjggMTk2YzAgMzMuMSAyOC43IDYwIDY0IDYwczY0LTI2LjkgNjQtNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEMyMy4xIDAgMTQuNiAzLjcgOC42IDEwLjJTLS42IDI1LjQgLjEgMzQuM0wyOC45IDQzNy43YzMgNDEuOSAzNy44IDc0LjMgNzkuOCA3NC4zSDI3NS4zYzQyIDAgNzYuOC0zMi40IDc5LjgtNzQuM0wzODMuOSAzNC4zYy42LTguOS0yLjQtMTcuNi04LjUtMjQuMVMzNjAuOSAwIDM1MiAwSDMyek03MyAxNTYuNUw2Ni40IDY0SDMxNy42TDMxMSAxNTYuNWwtMjQuMiAxMi4xYy0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBjLTIwLjktMTAuNC00NS41LTEwLjQtNjYuNCAwYy0xOS40IDkuNy00Mi4yIDkuNy02MS42IDBMNzMgMTU2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE4LjYgODBjLTExLjUgMC0yMS40IDcuOS0yNCAxOS4xTDU3IDI2MC4zYzIwLjUtNi4yIDQ4LjMtMTIuMyA3OC43LTEyLjNjMzIuMyAwIDYxLjggNi45IDgyLjggMTMuNWMxMC42IDMuMyAxOS4zIDYuNyAyNS40IDkuMmMzLjEgMS4zIDUuNSAyLjQgNy4zIDMuMmMuOSAuNCAxLjYgLjcgMi4xIDFsLjYgLjMgLjIgLjEgLjEgMCAwIDAgMCAwczAgMC02LjMgMTIuN2gwbDYuMy0xMi43YzUuOCAyLjkgMTAuNCA3LjMgMTMuNSAxMi43aDQwLjZjMy4xLTUuMyA3LjctOS44IDEzLjUtMTIuN2w2LjMgMTIuN2gwYy02LjMtMTIuNy02LjMtMTIuNy02LjMtMTIuN2wwIDAgMCAwIC4xIDAgLjItLjEgLjYtLjNjLjUtLjIgMS4yLS42IDIuMS0xYzEuOC0uOCA0LjItMS45IDcuMy0zLjJjNi4xLTIuNiAxNC44LTUuOSAyNS40LTkuMmMyMS02LjYgNTAuNC0xMy41IDgyLjgtMTMuNWMzMC40IDAgNTguMiA2LjEgNzguNyAxMi4zTDQ4MS40IDk5LjFjLTIuNi0xMS4yLTEyLjYtMTkuMS0yNC0xOS4xYy0zLjEgMC02LjIgLjYtOS4yIDEuOEw0MTYuOSA5NC4zYy0xMi4zIDQuOS0yNi4zLTEuMS0zMS4yLTEzLjRzMS4xLTI2LjMgMTMuNC0zMS4ybDMxLjMtMTIuNWM4LjYtMy40IDE3LjctNS4yIDI3LTUuMmMzMy44IDAgNjMuMSAyMy4zIDcwLjggNTYuMmw0My45IDE4OGMxLjcgNy4zIDIuOSAxNC43IDMuNSAyMi4xYy4zIDEuOSAuNSAzLjggLjUgNS43djYuN1YzNTJ2MTZjMCA2MS45LTUwLjEgMTEyLTExMiAxMTJINDE5LjdjLTU5LjQgMC0xMDguNS00Ni40LTExMS44LTEwNS44TDMwNi42IDM1MkgyNjkuNGwtMS4yIDIyLjJDMjY0LjkgNDMzLjYgMjE1LjggNDgwIDE1Ni4zIDQ4MEgxMTJDNTAuMSA0ODAgMCA0MjkuOSAwIDM2OFYzNTIgMzEwLjcgMzA0YzAtMS45IC4yLTMuOCAuNS01LjdjLjYtNy40IDEuOC0xNC44IDMuNS0yMi4xbDQzLjktMTg4QzU1LjUgNTUuMyA4NC44IDMyIDExOC42IDMyYzkuMiAwIDE4LjQgMS44IDI3IDUuMmwzMS4zIDEyLjVjMTIuMyA0LjkgMTguMyAxOC45IDEzLjQgMzEuMnMtMTguOSAxOC4zLTMxLjIgMTMuNEwxMjcuOCA4MS44Yy0yLjktMS4yLTYtMS44LTkuMi0xLjh6TTY0IDMyNS40VjM2OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0NC4zYzI1LjUgMCA0Ni41LTE5LjkgNDcuOS00NS4zbDIuNS00NS42Yy0yLjMtLjgtNC45LTEuNy03LjUtMi41Yy0xNy4yLTUuNC0zOS45LTEwLjUtNjMuNi0xMC41Yy0yMy43IDAtNDYuMiA1LjEtNjMuMiAxMC41Yy0zLjEgMS01LjkgMS45LTguNSAyLjl6TTUxMiAzNjhWMzI1LjRjLTIuNi0uOS01LjUtMS45LTguNS0yLjljLTE3LTUuNC0zOS41LTEwLjUtNjMuMi0xMC41Yy0yMy43IDAtNDYuNCA1LjEtNjMuNiAxMC41Yy0yLjcgLjgtNS4yIDEuNy03LjUgMi41bDIuNSA0NS42YzEuNCAyNS40IDIyLjUgNDUuMyA0Ny45IDQ1LjNINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbG9iZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMjU2YzAgMjIuMi0xLjIgNDMuNi0zLjMgNjRIMTYzLjNjLTIuMi0yMC40LTMuMy00MS44LTMuMy02NHMxLjItNDMuNiAzLjMtNjRIMzQ4LjdjMi4yIDIwLjQgMy4zIDQxLjggMy4zIDY0em0yOC44LTY0SDUwMy45YzUuMyAyMC41IDguMSA0MS45IDguMSA2NHMtMi44IDQzLjUtOC4xIDY0SDM4MC44YzIuMS0yMC42IDMuMi00MiAzLjItNjRzLTEuMS00My40LTMuMi02NHptMTEyLjYtMzJIMzc2LjdjLTEwLTYzLjktMjkuOC0xMTcuNC01NS4zLTE1MS42Yzc4LjMgMjAuNyAxNDIgNzcuNSAxNzEuOSAxNTEuNnptLTE0OS4xIDBIMTY3LjdjNi4xLTM2LjQgMTUuNS02OC42IDI3LTk0LjdjMTAuNS0yMy42IDIyLjItNDAuNyAzMy41LTUxLjVDMjM5LjQgMy4yIDI0OC43IDAgMjU2IDBzMTYuNiAzLjIgMjcuOCAxMy44YzExLjMgMTAuOCAyMyAyNy45IDMzLjUgNTEuNWMxMS42IDI2IDIwLjkgNTguMiAyNyA5NC43em0tMjA5IDBIMTguNkM0OC42IDg1LjkgMTEyLjIgMjkuMSAxOTAuNiA4LjRDMTY1LjEgNDIuNiAxNDUuMyA5Ni4xIDEzNS4zIDE2MHpNOC4xIDE5MkgxMzEuMmMtMi4xIDIwLjYtMy4yIDQyLTMuMiA2NHMxLjEgNDMuNCAzLjIgNjRIOC4xQzIuOCAyOTkuNSAwIDI3OC4xIDAgMjU2czIuOC00My41IDguMS02NHpNMTk0LjcgNDQ2LjZjLTExLjYtMjYtMjAuOS01OC4yLTI3LTk0LjZIMzQ0LjNjLTYuMSAzNi40LTE1LjUgNjguNi0yNyA5NC42Yy0xMC41IDIzLjYtMjIuMiA0MC43LTMzLjUgNTEuNUMyNzIuNiA1MDguOCAyNjMuMyA1MTIgMjU2IDUxMnMtMTYuNi0zLjItMjcuOC0xMy44Yy0xMS4zLTEwLjgtMjMtMjcuOS0zMy41LTUxLjV6TTEzNS4zIDM1MmMxMCA2My45IDI5LjggMTE3LjQgNTUuMyAxNTEuNkMxMTIuMiA0ODIuOSA0OC42IDQyNi4xIDE4LjYgMzUySDEzNS4zem0zNTguMSAwYy0zMCA3NC4xLTkzLjYgMTMwLjktMTcxLjkgMTUxLjZjMjUuNS0zNC4yIDQ1LjItODcuNyA1NS4zLTE1MS42SDQ5My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb2xmQmFsbFRlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTkyYzAgNjYuOC0zNC4xIDEyNS42LTg1LjggMTYwSDg1LjhDMzQuMSAzMTcuNiAwIDI1OC44IDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MnpNMjQyLjEgMjU2LjZjMCAxOC41LTE1IDMzLjUtMzMuNSAzMy41Yy00LjkgMC05LjEgNS4xLTUuNCA4LjRjNS45IDUuMiAxMy43IDguNCAyMi4xIDguNGMxOC41IDAgMzMuNS0xNSAzMy41LTMzLjVjMC04LjUtMy4yLTE2LjItOC40LTIyLjFjLTMuMy0zLjctOC40IC41LTguNCA1LjR6bS01Mi4zLTQ5LjNjLTQuOSAwLTkuMSA1LjEtNS40IDguNGM1LjkgNS4yIDEzLjcgOC40IDIyLjEgOC40YzE4LjUgMCAzMy41LTE1IDMzLjUtMzMuNWMwLTguNS0zLjItMTYuMi04LjQtMjIuMWMtMy4zLTMuNy04LjQgLjUtOC40IDUuNGMwIDE4LjUtMTUgMzMuNS0zMy41IDMzLjV6bTExMy41LTE3LjVjMCAxOC41LTE1IDMzLjUtMzMuNSAzMy41Yy00LjkgMC05LjEgNS4xLTUuNCA4LjRjNS45IDUuMiAxMy43IDguNCAyMi4xIDguNGMxOC41IDAgMzMuNS0xNSAzMy41LTMzLjVjMC04LjUtMy4yLTE2LjItOC40LTIyLjFjLTMuMy0zLjctOC40IC41LTguNCA1LjR6TTk2IDQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NCA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NjRjMC04LjgtNy4yLTE2LTE2LTE2SDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvcHVyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwIDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR2OGg0MFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djhoNDhWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY4aDQwVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2OFY2NHY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkg0MTZWMzUySDM4NFYyMjRIMzUyVjEyOEgzMjB2OTZoMzJWMzUyaDMyVjUxMkgzMDRWNDY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4djQ4SDEyOFYzNTJoMzJWMjI0aDMyVjEyOEgxNjB2OTZIMTI4VjM1Mkg5NlY1MTJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMlYyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyVjY0IDMyIDI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yNTYgMjcyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0OGg2NFYzMDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMi04MHYzMmg2NFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyYWR1YXRpb25DYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMyYy04LjEgMC0xNi4xIDEuNC0yMy43IDQuMUwxNS44IDEzNy40QzYuMyAxNDAuOSAwIDE0OS45IDAgMTYwczYuMyAxOS4xIDE1LjggMjIuNmw1Ny45IDIwLjlDNTcuMyAyMjkuMyA0OCAyNTkuOCA0OCAyOTEuOXYyOC4xYzAgMjguNC0xMC44IDU3LjctMjIuMyA4MC44Yy02LjUgMTMtMTMuOSAyNS44LTIyLjUgMzcuNkMwIDQ0Mi43LS45IDQ0OC4zIC45IDQ1My40czYgOC45IDExLjIgMTAuMmw2NCAxNmM0LjIgMS4xIDguNyAuMyAxMi40LTJzNi4zLTYuMSA3LjEtMTAuNGM4LjYtNDIuOCA0LjMtODEuMi0yLjEtMTA4LjdDOTAuMyAzNDQuMyA4NiAzMjkuOCA4MCAzMTYuNVYyOTEuOWMwLTMwLjIgMTAuMi01OC43IDI3LjktODEuNWMxMi45LTE1LjUgMjkuNi0yOCA0OS4yLTM1LjdsMTU3LTYxLjdjOC4yLTMuMiAxNy41IC44IDIwLjcgOXMtLjggMTcuNS05IDIwLjdsLTE1NyA2MS43Yy0xMi40IDQuOS0yMy4zIDEyLjQtMzIuMiAyMS42bDE1OS42IDU3LjZjNy42IDIuNyAxNS42IDQuMSAyMy43IDQuMXMxNi4xLTEuNCAyMy43LTQuMUw2MjQuMiAxODIuNmM5LjUtMy40IDE1LjgtMTIuNSAxNS44LTIyLjZzLTYuMy0xOS4xLTE1LjgtMjIuNkwzNDMuNyAzNi4xQzMzNi4xIDMzLjQgMzI4LjEgMzIgMzIwIDMyek0xMjggNDA4YzAgMzUuMyA4NiA3MiAxOTIgNzJzMTkyLTM2LjcgMTkyLTcyTDQ5Ni43IDI2Mi42IDM1NC41IDMxNGMtMTEuMSA0LTIyLjggNi0zNC41IDZzLTIzLjUtMi0zNC41LTZMMTQzLjMgMjYyLjYgMTI4IDQwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JlYXRlclRoYW5FcXVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Mi4xIDkzLjdDMzUuNyA4Ny4xIDI3LjcgNjguNSAzNC4zIDUyLjFzMjUuMi0yNC40IDQxLjYtMTcuOGwzMjAgMTI4QzQwOCAxNjcuMSA0MTYgMTc4LjkgNDE2IDE5MnMtOCAyNC45LTIwLjEgMjkuN2wtMzIwIDEyOGMtMTYuNCA2LjYtMzUtMS40LTQxLjYtMTcuOHMxLjQtMzUgMTcuOC00MS42TDI5Ny44IDE5MiA1Mi4xIDkzLjd6TTQxNiA0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmVhdGVyVGhhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjQgODEuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOUwyODAuNSAyNTYgMTcuNyAzODcuNEMxLjkgMzk1LjMtNC41IDQxNC41IDMuNCA0MzAuM3MyNy4xIDIyLjIgNDIuOSAxNC4zbDMyMC0xNjBjMTAuOC01LjQgMTcuNy0xNi41IDE3LjctMjguNnMtNi44LTIzLjItMTcuNy0yOC42bC0zMjAtMTYwYy0xNS44LTcuOS0zNS0xLjUtNDIuOSAxNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwTGluZXNWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY2NHptMTI4IDBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsMzg0IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJMMzIgMjg4em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwzODQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwzMiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MCAzNTJsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwem0xOTIgMGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDBjLTIyLjEgMC00MC0xNy45LTQwLTQwbDAtNDhjMC0yMi4xIDE3LjktNDAgNDAtNDB6TTQwIDMyMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBsMC00OGMwLTIyLjEgMTcuOS00MCA0MC00MGw0OCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwbDAgNDhjMCAyMi4xLTE3LjkgNDAtNDAgNDBsLTQ4IDB6TTIzMiAxOTJsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwek00MCAxNjBjLTIyLjEgMC00MC0xNy45LTQwLTQwTDAgNzJDMCA0OS45IDE3LjkgMzIgNDAgMzJsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwek0yMzIgMzJsNDggMGMyMi4xIDAgNDAgMTcuOSA0MCA0MGwwIDQ4YzAgMjIuMS0xNy45IDQwLTQwIDQwbC00OCAwYy0yMi4xIDAtNDAtMTcuOS00MC00MGwwLTQ4YzAtMjIuMSAxNy45LTQwIDQwLTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMzZjMC0yMi4xLTE3LjktNDAtNDAtNDBMNDAgOTZDMTcuOSA5NiAwIDExMy45IDAgMTM2bDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBIODhjMjIuMSAwIDQwLTE3LjkgNDAtNDBsMC00OHptMCAxOTJjMC0yMi4xLTE3LjktNDAtNDAtNDBINDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBIODhjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMzI4em0zMi0xOTJ2NDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBoNDhjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMTM2YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNMjg4IDMyOGMwLTIyLjEtMTcuOS00MC00MC00MEgyMDBjLTIyLjEgMC00MCAxNy45LTQwIDQwbDAgNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBoNDhjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMzI4em0zMi0xOTJ2NDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBoNDhjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMTM2YzAtMjIuMS0xNy45LTQwLTQwLTQwbC00OCAwYy0yMi4xIDAtNDAgMTcuOS00MCA0MHpNNDQ4IDMyOGMwLTIyLjEtMTcuOS00MC00MC00MEgzNjBjLTIyLjEgMC00MCAxNy45LTQwIDQwdjQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwaDQ4YzIyLjEgMCA0MC0xNy45IDQwLTQwVjMyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JvdXBBcnJvd3NSb3RhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAxLjEgNzEuOWMxNi45LTUgMjYuNi0yMi45IDIxLjUtMzkuOHMtMjIuOS0yNi42LTM5LjgtMjEuNWMtMjEuNSA2LjQtNDEuOCAxNS41LTYwLjYgMjdDMTE0LjMgMzQgMTA1LjQgMzIgOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2YzAgOS40IDIgMTguMyA1LjYgMjYuM2MtMTEuNSAxOC43LTIwLjYgMzktMjcgNjAuNmMtNSAxNi45IDQuNiAzNC44IDIxLjUgMzkuOHMzNC44LTQuNiAzOS44LTIxLjVjNC4zLTE0LjYgMTAuNC0yOC41IDE3LjktNDEuNGMyIC4yIDQuMSAuMyA2LjEgLjNjMzUuMyAwIDY0LTI4LjcgNjQtNjRjMC0yLjEtLjEtNC4xLS4zLTYuMWMxMi45LTcuNSAyNi44LTEzLjYgNDEuNC0xNy45em0xMjgtNjEuM2MtMTYuOS01LTM0LjggNC42LTM5LjggMjEuNXM0LjYgMzQuOCAyMS41IDM5LjhjMTQuNiA0LjMgMjguNSAxMC40IDQxLjQgMTcuOWMtLjIgMi0uMyA0LjEtLjMgNi4xYzAgMzUuMyAyOC43IDY0IDY0IDY0YzIuMSAwIDQuMS0uMSA2LjItLjNjNy41IDEyLjkgMTMuNiAyNi44IDE3LjkgNDEuNGM1IDE2LjkgMjIuOSAyNi42IDM5LjggMjEuNXMyNi42LTIyLjkgMjEuNS0zOS44Yy02LjQtMjEuNS0xNS41LTQxLjgtMjctNjAuNmMzLjYtOCA1LjYtMTYuOSA1LjYtMjYuM2MwLTM1LjMtMjguNy02NC02NC02NGMtOS40IDAtMTguMyAyLTI2LjMgNS42Yy0xOC43LTExLjUtMzktMjAuNi02MC42LTI3ek03MS45IDMxMC45Yy01LTE2LjktMjIuOS0yNi42LTM5LjgtMjEuNXMtMjYuNiAyMi45LTIxLjUgMzkuOGM2LjQgMjEuNSAxNS41IDQxLjggMjcgNjAuNkMzNCAzOTcuNyAzMiA0MDYuNiAzMiA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRjOS40IDAgMTguMy0yIDI2LjMtNS42YzE4LjcgMTEuNSAzOSAyMC42IDYwLjYgMjdjMTYuOSA1IDM0LjgtNC42IDM5LjgtMjEuNXMtNC42LTM0LjgtMjEuNS0zOS44Yy0xNC42LTQuMy0yOC41LTEwLjQtNDEuNC0xNy45Yy4yLTIgLjMtNC4xIC4zLTYuMmMwLTM1LjMtMjguNy02NC02NC02NGMtMi4xIDAtNC4xIC4xLTYuMiAuM2MtNy41LTEyLjktMTMuNi0yNi44LTE3LjktNDEuNHptNDI5LjQgMTguM2M1LTE2LjktNC42LTM0LjgtMjEuNS0zOS44cy0zNC44IDQuNi0zOS44IDIxLjVjLTQuMyAxNC42LTEwLjQgMjguNS0xNy45IDQxLjRjLTItLjItNC4xLS4zLTYuMi0uM2MtMzUuMyAwLTY0IDI4LjctNjQgNjRjMCAyLjEgLjEgNC4xIC4zIDYuMmMtMTIuOSA3LjUtMjYuOCAxMy42LTQxLjQgMTcuOWMtMTYuOSA1LTI2LjYgMjIuOS0yMS41IDM5LjhzMjIuOSAyNi42IDM5LjggMjEuNWMyMS41LTYuNCA0MS44LTE1LjUgNjAuNi0yN2M4IDMuNiAxNi45IDUuNiAyNi4zIDUuNmMzNS4zIDAgNjQtMjguNyA2NC02NGMwLTkuNC0yLTE4LjMtNS42LTI2LjNjMTEuNS0xOC43IDIwLjYtMzkgMjctNjAuNnpNMTkyLjggMjU2LjhjMC0xNS42IDUuNi0yOS45IDE0LjktNDEuMUwyMjMgMjMxYzYuNiA2LjYgMTcuOCAxLjkgMTcuOC03LjRWMTYzLjJjMC01LjctNC43LTEwLjQtMTAuNC0xMC40SDE2OS45Yy05LjMgMC0xMy45IDExLjItNy40IDE3LjhsMTEuMiAxMS4yYy0xNy45IDE5LjgtMjguOSA0Ni4yLTI4LjkgNzUuMWMwIDQzLjYgMjQuOSA4MS4zIDYxLjEgOTkuOGMxMS44IDYgMjYuMyAxLjQgMzIuMy0xMC40czEuNC0yNi4zLTEwLjQtMzIuM2MtMjAuOC0xMC42LTM0LjktMzIuMi0zNC45LTU3em05My4xLTU4LjZjMjAuOCAxMC42IDM0LjkgMzIuMiAzNC45IDU3YzAgMTUuNi01LjYgMjkuOS0xNC45IDQxLjFMMjkwLjYgMjgxYy02LjYtNi42LTE3LjgtMS45LTE3LjggNy40djYwLjVjMCA1LjcgNC43IDEwLjQgMTAuNCAxMC40aDYwLjVjOS4zIDAgMTMuOS0xMS4yIDcuNC0xNy44bC0xMS4yLTExLjJjMTcuOS0xOS44IDI4LjktNDYuMiAyOC45LTc1LjFjMC00My42LTI0LjktODEuMy02MS4xLTk5LjhjLTExLjgtNi0yNi4zLTEuNC0zMi4zIDEwLjRzLTEuNCAyNi4zIDEwLjQgMzIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VhcmFuaVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjY2LjdDNjkuMiA4MS45IDAgMTYwLjkgMCAyNTZzNjkuMiAxNzQuMSAxNjAgMTg5LjNWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ1LjNjOTAuOC0xNS4yIDE2MC05NC4yIDE2MC0xODkuM2MwLTE3LjctMTQuMy0zMi0zMi0zMkgyMjRWMTMyYzIyLjEgNS43IDQxLjggMTcuMSA1Ny42IDMyLjZjMTIuNiAxMi40IDMyLjkgMTIuMiA0NS4zLS40czEyLjItMzIuOS0uNS00NS4zQzI5OSA5MiAyNjMuNSA3My4zIDIyNCA2Ni43VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjAgMTMyVjM4MGMtNTUuMi0xNC4yLTk2LTY0LjMtOTYtMTI0czQwLjgtMTA5LjggOTYtMTI0ek0yMjQgMzgwVjI4OGg5MmMtMTEuNiA0NS00NyA4MC40LTkyIDkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWl0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY1IDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDM4MyA1NWMtMi40IDIuNC00LjMgNS4zLTUuNSA4LjVsLTE1LjQgNDEtNzcuNSA3Ny42Yy00NS4xLTI5LjQtOTkuMy0zMC4yLTEzMSAxLjZjLTExIDExLTE4IDI0LjYtMjEuNCAzOS42Yy0zLjcgMTYuNi0xOS4xIDMwLjctMzYuMSAzMS42Yy0yNS42IDEuMy00OS4zIDEwLjctNjcuMyAyOC42Qy0xNiAzMjguNC03LjYgNDA5LjQgNDcuNSA0NjQuNXMxMzYuMSA2My41IDE4MC45IDE4LjdjMTcuOS0xNy45IDI3LjQtNDEuNyAyOC42LTY3LjNjLjktMTcgMTUtMzIuMyAzMS42LTM2LjFjMTUtMy40IDI4LjYtMTAuNSAzOS42LTIxLjRjMzEuOC0zMS44IDMxLTg1LjkgMS42LTEzMWw3Ny42LTc3LjYgNDEtMTUuNGMzLjItMS4yIDYuMS0zLjEgOC41LTUuNWw0OC00OGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUw0NjUgN3pNMjA4IDI1NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2OEgzMkMxNC4zIDY0IDAgNzguMyAwIDk2VjIwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0MmMyMC44IDAgMzYuMSAxOS42IDMxIDM5LjhMMzMgNDQwLjJjLTIuNCA5LjYtLjIgMTkuNyA1LjggMjcuNVM1NC4xIDQ4MCA2NCA0ODBoOTZjMTQuNyAwIDI3LjUtMTAgMzEtMjQuMkwyMTcgMzUySDMyMS40YzIzLjcgMCA0NC44LTE0LjkgNTIuNy0zNy4yTDQwMC45IDI0MEg0MzJjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRMNDc3LjMgMjA4SDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMkg1MjhWNTZ6TTMyMS40IDMwNEgyMjlsMTYtNjRoMTA1bC0yMSA1OC43Yy0xLjEgMy4yLTQuMiA1LjMtNy41IDUuM3pNODAgMTI4SDQ2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMjU2bDAgMTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0yMjRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMTkyTDY0IDE5MiA2NCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDQ2LjMgMCA2NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwwLTE5MiAyNTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFtbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxMy41IDIzNy41Yy0yOC4yIDQuOC01OC4yLTMuNi04MC0yNS40bC0zOC4xLTM4LjFDMjgwLjQgMTU5IDI3MiAxMzguOCAyNzIgMTE3LjZWMTA1LjVMMTkyLjMgNjJjLTUuMy0yLjktOC42LTguNi04LjMtMTQuN3MzLjktMTEuNSA5LjUtMTRsNDcuMi0yMUMyNTkuMSA0LjIgMjc5IDAgMjk5LjIgMGgxOC4xYzM2LjcgMCA3MiAxNCA5OC43IDM5LjFsNDQuNiA0MmMyNC4yIDIyLjggMzMuMiA1NS43IDI2LjYgODZMNTAzIDE4M2w4LThjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjQgMjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg4IDg4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjQtMjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDgtOC0xNy41LTE3LjV6TTI3LjQgMzc3LjFMMjYwLjkgMTgyLjZjMy41IDQuOSA3LjUgOS42IDExLjggMTRsMzguMSAzOC4xYzYgNiAxMi40IDExLjIgMTkuMiAxNS43TDEzNC45IDQ4NC42Yy0xNC41IDE3LjQtMzYgMjcuNC01OC42IDI3LjRDMzQuMSA1MTIgMCA0NzcuOCAwIDQzNS43YzAtMjIuNiAxMC4xLTQ0LjEgMjcuNC01OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW1zYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNC42IDI4OEg4MGM4LjggMCAxNi03LjIgMTYtMTZWNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MFYyMDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBWNDBjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MFYyMDRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBWNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MFYyNzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ1LjRjMTkuMSAwIDM0LjYgMTUuNSAzNC42IDM0LjZjMCA4LjYtMy4yIDE2LjktOSAyMy4zTDQxNi42IDQ0MWMtNDEuMSA0NS4yLTk5LjQgNzEtMTYwLjYgNzFzLTExOS40LTI1LjgtMTYwLjYtNzFMOSAzNDUuOWMtNS44LTYuNC05LTE0LjctOS0yMy4zQzAgMzAzLjUgMTUuNSAyODggMzQuNiAyODh6TTI1NiAyODhjLTM4LjQgMC03Ni44IDM1LjgtOTAuNiA1MC4yYy0zLjYgMy43LTUuNCA4LjctNS40IDEzLjhzMS44IDEwLjEgNS40IDEzLjhDMTc5LjIgMzgwLjIgMjE3LjYgNDE2IDI1NiA0MTZzNzYuOC0zNS44IDkwLjYtNTAuMmMzLjYtMy43IDUuNC04LjcgNS40LTEzLjhzLTEuOC0xMC4xLTUuNC0xMy44QzMzMi44IDMyMy44IDI5NC40IDI4OCAyNTYgMjg4em0wIDMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEJhY2tGaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAwQzExNy41IDAgOTYgMjEuNSA5NiA0OFY5NnYyOC41VjE3NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxNDkuM2wtOSA3LjVDNDAuNCAxNjkgMzIgMTg3IDMyIDIwNlYyNDRjMCAzOCAxNi45IDc0IDQ2LjEgOTguM0wxMjggMzg0djk2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNzQuN2M0Ni45LTE5IDgwLTY1IDgwLTExOC43VjE3NiAxNjAgMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4Yy0xMi40IDAtMjMuNiA0LjctMzIuMSAxMi4zQzM1MCA4My41IDMyOS4zIDY0IDMwNCA2NGMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MyNzAgNTEuNSAyNDkuMyAzMiAyMjQgMzJjLTEyLjQgMC0yMy42IDQuNy0zMi4xIDEyLjNDMTkwIDE5LjUgMTY5LjMgMCAxNDQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZERvdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjI0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYzMzZjMCAxLjUgMCAzLjEgLjEgNC42TDY3LjYgMjgzYy0xNi0xNS4yLTQxLjMtMTQuNi01Ni42IDEuNHMtMTQuNiA0MS4zIDEuNCA1Ni42TDEyNC44IDQ0OGM0My4xIDQxLjEgMTAwLjQgNjQgMTYwIDY0SDMwNGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NlYxMjhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjI0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMnpNMjQwIDMzNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwem04MCAxNmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4LTE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bS0xNiA4MGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTI0MCA0MzJhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptLTQ4LTQ4YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEZpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTQ0SDE2MFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY4MEg2NFY2NHptMTkyIDBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY2NHptOTYgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMjh6bS05NiA4OGwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42YzEzLjIgMCAyNS40LTQgMzUuNi0xMC44YzguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjhjMTEuNyAwIDIyLjYtMy4xIDMyLTguNlYyNTZjMCA1Mi4zLTI1LjEgOTguOC02NCAxMjh2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDEuNmMtMTcuMy03LjktMzMuMi0xOC44LTQ2LjktMzIuNUw2OS41IDM1Ny41QzQ1LjUgMzMzLjUgMzIgMzAwLjkgMzIgMjY3VjI0MGMwLTM1LjMgMjguNy02NCA2NC02NGg4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MEgxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoNTZjMzkuOCAwIDcyLTMyLjIgNzItNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMiAyNFYzNC41YzYuNCAxLjIgMTIuNiAyLjcgMTguMiA0LjJjMTIuOCAzLjQgMjAuNCAxNi42IDE3IDI5LjRzLTE2LjYgMjAuNC0yOS40IDE3Yy0xMC45LTIuOS0yMS4xLTQuOS0zMC4yLTVjLTcuMy0uMS0xNC43IDEuNy0xOS40IDQuNGMtMi4xIDEuMy0zLjEgMi40LTMuNSAzYy0uMyAuNS0uNyAxLjItLjcgMi44YzAgLjMgMCAuNSAwIC42Yy4yIC4yIC45IDEuMiAzLjMgMi42YzUuOCAzLjUgMTQuNCA2LjIgMjcuNCAxMC4xbC45IC4zYzExLjEgMy4zIDI1LjkgNy44IDM3LjkgMTUuM2MxMy43IDguNiAyNi4xIDIyLjkgMjYuNCA0NC45Yy4zIDIyLjUtMTEuNCAzOC45LTI2LjcgNDguNWMtNi43IDQuMS0xMy45IDctMjEuMyA4LjhWMjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjIyMC42Yy05LjUtMi4zLTE4LjItNS4zLTI1LjYtNy44Yy0yLjEtLjctNC4xLTEuNC02LTJjLTEyLjYtNC4yLTE5LjQtMTcuOC0xNS4yLTMwLjRzMTcuOC0xOS40IDMwLjQtMTUuMmMyLjYgLjkgNSAxLjcgNy4zIDIuNWMxMy42IDQuNiAyMy40IDcuOSAzMy45IDguM2M4IC4zIDE1LjEtMS42IDE5LjItNC4xYzEuOS0xLjIgMi44LTIuMiAzLjItMi45Yy40LS42IC45LTEuOCAuOC00LjFsMC0uMmMwLTEgMC0yLjEtNC00LjZjLTUuNy0zLjYtMTQuMy02LjQtMjcuMS0xMC4zbC0xLjktLjZjLTEwLjgtMy4yLTI1LTcuNS0zNi40LTE0LjRjLTEzLjUtOC4xLTI2LjUtMjItMjYuNi00NC4xYy0uMS0yMi45IDEyLjktMzguNiAyNy43LTQ3LjRjNi40LTMuOCAxMy4zLTYuNCAyMC4yLTguMlYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek01NjguMiAzMzYuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41SDE5MiAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDY4LjhsNDQuOS0zNmMyMi43LTE4LjIgNTAuOS0yOCA4MC0yOEgyNzJoMTYgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjg4IDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzOTIuNmwxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXpNMTkzLjYgMzg0bDAgMC0uOSAwYy4zIDAgLjYgMCAuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ0Ryb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjUgNi42QzI3OC4zIDIuNSAyODMgMCAyODggMHM5LjcgMi41IDEyLjUgNi42TDM2Ni44IDEwM0MzNzggMTE5LjMgMzg0IDEzOC42IDM4NCAxNTguM1YxNjBjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZ2LTEuN2MwLTE5LjggNi0zOSAxNy4yLTU1LjNMMjc1LjUgNi42ek01NjguMiAzMzYuM2MxMy4xIDE3LjggOS4zIDQyLjgtOC41IDU1LjlMNDMzLjEgNDg1LjVjLTIzLjQgMTcuMi01MS42IDI2LjUtODAuNyAyNi41SDE5MiAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDY4LjhsNDQuOS0zNmMyMi43LTE4LjIgNTAuOS0yOCA4MC0yOEgyNzJoMTYgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjg4IDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzOTIuNmwxMTkuNy04OC4yYzE3LjgtMTMuMSA0Mi44LTkuMyA1NS45IDguNXpNMTkzLjYgMzg0bDAgMC0uOSAwYy4zIDAgLjYgMCAuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ0hhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44IDIwNy43Yy0xMy4xLTE3LjgtOS4zLTQyLjggOC41LTU1LjlMMTQyLjkgNTguNUMxNjYuMiA0MS4zIDE5NC41IDMyIDIyMy41IDMySDM4NCA1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJINTA3LjJsLTQ0LjkgMzZjLTIyLjcgMTguMi01MC45IDI4LTgwIDI4SDMwNCAyODggMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDY0IDE2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE4My40TDYzLjcgMjE2LjJjLTE3LjggMTMuMS00Mi44IDkuMy01NS45LTguNXpNMzgyLjQgMTYwbDAgMCAuOSAwYy0uMyAwLS42IDAtLjkgMHpNNTY4LjIgMzA0LjNjMTMuMSAxNy44IDkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ1My41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUgxOTIgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg2OC44bDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhIMjcyaDE2IDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI4OCAyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMzkyLjZsMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM1MmwwIDAtLjkgMGMuMyAwIC42IDAgLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjMuOSAxMzYuOWMtMjkuNC0yOS44LTI5LjQtNzguMiAwLTEwOHM3Ny0yOS44IDEwNi40IDBsMTcuNyAxOCAxNy43LTE4YzI5LjQtMjkuOCA3Ny0yOS44IDEwNi40IDBzMjkuNCA3OC4yIDAgMTA4TDMxMC41IDI0MC4xYy02LjIgNi4zLTE0LjMgOS40LTIyLjUgOS40cy0xNi4zLTMuMS0yMi41LTkuNEwxNjMuOSAxMzYuOXpNNTY4LjIgMzM2LjNjMTMuMSAxNy44IDkuMyA0Mi44LTguNSA1NS45TDQzMy4xIDQ4NS41Yy0yMy40IDE3LjItNTEuNiAyNi41LTgwLjcgMjYuNUgxOTIgMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg2OC44bDQ0LjktMzZjMjIuNy0xOC4yIDUwLjktMjggODAtMjhIMjcyaDE2IDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI4OCAyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMzkyLjZsMTE5LjctODguMmMxNy44LTEzLjEgNDIuOC05LjMgNTUuOSA4LjV6TTE5My42IDM4NGwwIDAtLjkgMGMuMyAwIC42IDAgLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNFY4MEgxNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDU2djU2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE3Nmg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMDRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMzIwVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDI0OGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6TTU1OS43IDM5Mi4yYzE3LjgtMTMuMSAyMS42LTM4LjEgOC41LTU1LjlzLTM4LjEtMjEuNi01NS45LTguNUwzOTIuNiA0MTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDE2IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OCAyNzIgMTkzLjdjLTI5LjEgMC01Ny4zIDkuOS04MCAyOEw2OC44IDM4NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIMTkyIDM1Mi41YzI5IDAgNTcuMy05LjMgODAuNy0yNi41bDEyNi42LTkzLjN6bS0zNjctOC4ybC45IDAgMCAwYy0uMyAwLS42IDAtLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTU5LjcgMzkyLjJjMTcuOC0xMy4xIDIxLjYtMzguMSA4LjUtNTUuOXMtMzguMS0yMS42LTU1LjktOC41TDM5Mi42IDQxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMTYgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjg4IDI3MiAxOTMuN2MtMjkuMSAwLTU3LjMgOS45LTgwIDI4TDY4LjggMzg0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkgxOTIgMzUyLjVjMjkgMCA1Ny4zLTkuMyA4MC43LTI2LjVsMTI2LjYtOTMuM3ptLTM2Ni4xLTguM2EuNSAuNSAwIDEgMSAtLjkgLjIgLjUgLjUgMCAxIDEgLjktLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMTJDMCA4NS41IDIxLjUgNjQgNDggNjRIMTYwaDgwIDQ2LjVjMzYuOCAwIDcxLjIgMTggOTIuMSA0OC4ybDExMy41IDE2NGMxMyAxOC43IDE5LjkgNDEgMTkuOSA2My44djEyIDE2IDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDAyLjJMMjczLjkgMzUySDI0MCAxNjAgMTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4aDQ4IDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4SDE2MCA0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRNaWRkbGVGaW5nZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDBjLTIyLjEgMC00MCAxNy45LTQwIDQwVjIwNC4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4yYy0yNi41IDAtNDggMjEuNS00OCA0OHY3IDczYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI2NC4zYy0yIDEuNC0zLjkgMy01LjggNC41TDU1IDI4NC44QzQwLjQgMjk3IDMyIDMxNSAzMiAzMzRWMzcyYzAgMzggMTYuOSA3NCA0Ni4xIDk4LjNsNS40IDQuNWMyOC44IDI0IDY1IDM3LjEgMTAyLjQgMzcuMUgzMDRjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhWMzIwIDI4OGMwLTI2LjUtMjEuNS00OC00OC00OGMtMTIuNCAwLTIzLjYgNC43LTMyLjEgMTIuM0MzNTAgMjI3LjUgMzI5LjMgMjA4IDMwNCAyMDhjLTEyLjMgMC0yMy41IDQuNi0zMiAxMi4yVjQwYzAtMjIuMS0xNy45LTQwLTQwLTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjQwSDE5MlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptOTYgMTYwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptNjQgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyMjR6TTkzLjMgNTEuMkwxNzUuOSAyNDBIMTA2LjFMMzQuNyA3Ni44QzI3LjYgNjAuNiAzNSA0MS44IDUxLjIgMzQuN3MzNS4xIC4zIDQyLjEgMTYuNXptMjcgMjIxLjNsLS4yLS41aDY5LjlIMjE2YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwSDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg1NmMzOS44IDAgNzItMzIuMiA3Mi03MmwwLS42YzkuNCA1LjQgMjAuMyA4LjYgMzIgOC42YzEzLjIgMCAyNS40LTQgMzUuNi0xMC44YzguNyAyNC45IDMyLjUgNDIuOCA2MC40IDQyLjhjMTEuNyAwIDIyLjYtMy4xIDMyLTguNlYzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBIMjI2LjNjLTQyLjQgMC04My4xLTE2LjktMTEzLjEtNDYuOWwtMTEuNi0xMS42Qzc3LjUgNDI5LjUgNjQgMzk2LjkgNjQgMzYzVjMzNmMwLTMyLjcgMjQuNi01OS43IDU2LjMtNjMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNzJIMzJWNDgwek0yMjQgMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0em0tNjQgNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xNjAtOTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NjR6bS05Ni04OGwwIC42YzkuNC01LjQgMjAuMy04LjYgMzItOC42YzEzLjIgMCAyNS40IDQgMzUuNiAxMC44YzguNy0yNC45IDMyLjUtNDIuOCA2MC40LTQyLjhjMTEuNyAwIDIyLjYgMy4xIDMyIDguNlYxNjBDMzg0IDcxLjYgMzEyLjQgMCAyMjQgMEgxNjIuM0MxMTkuOCAwIDc5LjEgMTYuOSA0OS4xIDQ2LjlMMzcuNSA1OC41QzEzLjUgODIuNSAwIDExNS4xIDAgMTQ5djI3YzAgMzUuMyAyOC43IDY0IDY0IDY0aDg4YzIyLjEgMCA0MC0xNy45IDQwLTQwcy0xNy45LTQwLTQwLTQwSDk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDU2YzM5LjggMCA3MiAzMi4yIDcyIDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDk2QzE0LjMgOTYgMCAxMTAuMyAwIDEyOHMxNC4zIDMyIDMyIDMybDIwOCAwIDAtNjRMMzIgOTZ6TTE5MiAyODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptLTY0LTY0YzAgMTcuNyAxNC4zIDMyIDMyIDMybDQ4IDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJsLTQ4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyem05NiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtNjQgMHptODgtOTZsLS42IDBjNS40IDkuNCA4LjYgMjAuMyA4LjYgMzJjMCAxMy4yLTQgMjUuNC0xMC44IDM1LjZjMjQuOSA4LjcgNDIuOCAzMi41IDQyLjggNjAuNGMwIDExLjctMy4xIDIyLjYtOC42IDMybDguNiAwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwbDAtNjEuN2MwLTQyLjQtMTYuOS04My4xLTQ2LjktMTEzLjFsLTExLjYtMTEuNkM0MjkuNSA3Ny41IDM5Ni45IDY0IDM2MyA2NGwtMjcgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjRsMCA4OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwbDAtNTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDU2YzAgMzkuOC0zMi4yIDcyLTcyIDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUG9pbnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTIwOCAwIDAtNjQgMjA4IDB6TTMyMCAyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTY0IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNjQgMHptNjQtNjRjMCAxNy43LTE0LjMgMzItMzIgMzJsLTQ4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJsNDggMGMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMjg4IDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwem0tODgtOTZsLjYgMGMtNS40IDkuNC04LjYgMjAuMy04LjYgMzJjMCAxMy4yIDQgMjUuNCAxMC44IDM1LjZDMTc3LjkgMzY0LjMgMTYwIDM4OC4xIDE2MCA0MTZjMCAxMS43IDMuMSAyMi42IDguNiAzMmwtOC42IDBDNzEuNiA0NDggMCAzNzYuNCAwIDI4OGwwLTYxLjdjMC00Mi40IDE2LjktODMuMSA0Ni45LTExMy4xbDExLjYtMTEuNkM4Mi41IDc3LjUgMTE1LjEgNjQgMTQ5IDY0bDI3IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA4OGMwIDIyLjEtMTcuOSA0MC00MCA0MHMtNDAtMTcuOS00MC00MGwwLTU2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2bDAgNTZjMCAzOS44IDMyLjIgNzIgNzIgNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQb2ludFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBTOTYgMTQuMyA5NiAzMlYyNDBIMzJWMzJ6TTIyNCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxOTJ6bS02NC02NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE2MCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNHptLTk2IDg4bDAtLjZjOS40IDUuNCAyMC4zIDguNiAzMiA4LjZjMTMuMiAwIDI1LjQtNCAzNS42LTEwLjhjOC43IDI0LjkgMzIuNSA0Mi44IDYwLjQgNDIuOGMxMS43IDAgMjIuNi0zLjEgMzItOC42VjM1MmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MEgxNjIuM2MtNDIuNCAwLTgzLjEtMTYuOS0xMTMuMS00Ni45TDM3LjUgNDUzLjVDMTMuNSA0MjkuNSAwIDM5Ni45IDAgMzYzVjMzNmMwLTM1LjMgMjguNy02NCA2NC02NGg4OGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MEg5NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg1NmMzOS44IDAgNzItMzIuMiA3Mi03MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDQwYzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDBWMTg4LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMmMyMC42IDAgMzguMiAxMyA0NSAzMS4yYzguOC05LjMgMjEuMi0xNS4yIDM1LTE1LjJjMjUuMyAwIDQ2IDE5LjUgNDcuOSA0NC4zYzguNS03LjcgMTkuOC0xMi4zIDMyLjEtMTIuM2MyNi41IDAgNDggMjEuNSA0OCA0OHY0OCAxNiA0OGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOGwtMTYgMEgyNDBsLS4xIDBoLTUuMmMtNSAwLTkuOS0uMy0xNC43LTFjLTU1LjMtNS42LTEwNi4yLTM0LTE0MC03OUw4IDMzNmMtMTMuMy0xNy43LTkuNy00Mi43IDgtNTZzNDIuNy05LjcgNTYgOGw1NiA3NC43VjQwek0yNDAgMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzA0em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MCAyMDhjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBsMTgwLjIgMGMtNy42IDguNS0xMi4yIDE5LjctMTIuMiAzMmMwIDI1LjMgMTkuNSA0NiA0NC4zIDQ3LjljLTcuNyA4LjUtMTIuMyAxOS44LTEyLjMgMzIuMWMwIDI2LjUgMjEuNSA0OCA0OCA0OGwzMiAwIDY0IDBjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhsMC0xMTMuMWMwLTQwLjItMTYtNzguOC00NC40LTEwNy4zQzQ0NC44IDc2LjggNDEzLjkgNjQgMzgxLjcgNjRMMzM2IDY0Yy0yMS4zIDAtMzkuMyAxMy45LTQ1LjYgMzMuMWw3NC41IDIzLjdjOC40IDIuNyAxMy4xIDExLjcgMTAuNCAyMC4xcy0xMS43IDEzLjEtMjAuMSAxMC40TDI4OCAxMjkuOWwwIC4xTDg0IDY1LjhDNjIuOSA1OS4yIDQwLjUgNzAuOSAzMy44IDkyczUuMSA0My41IDI2LjIgNTAuMkwyNjkuNSAyMDggNDAgMjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kU3BhcmtsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYyNDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYzMjMuMWMtMTEuOSA0LjgtMjEuMyAxNC45LTI1IDI3LjhsLTguOSAzMS4yTDQ3OC45IDM5MUM0NjAuNiAzOTYuMyA0NDggNDEzIDQ0OCA0MzJjMCAxOC45IDEyLjUgMzUuNiAzMC42IDQwLjlDNDQ4LjQgNDk3LjQgNDA5LjkgNTEyIDM2OCA1MTJIMzQ4LjhjLTU5LjYgMC0xMTYuOS0yMi45LTE2MC02NEw3Ni40IDM0MWMtMTYtMTUuMi0xNi42LTQwLjYtMS40LTU2LjZzNDAuNi0xNi42IDU2LjYtMS40bDYwLjUgNTcuNmMwLTEuNS0uMS0zLjEtLjEtNC42VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMjQwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6bS03LjMgMzI2LjZjLTEuMS0zLjktNC43LTYuNi04LjctNi42cy03LjYgMi43LTguNyA2LjZMMjg4IDM1MmwtMjUuNCA3LjNjLTMuOSAxLjEtNi42IDQuNy02LjYgOC43czIuNyA3LjYgNi42IDguN0wyODggMzg0bDcuMyAyNS40YzEuMSAzLjkgNC43IDYuNiA4LjcgNi42czcuNi0yLjcgOC43LTYuNkwzMjAgMzg0bDI1LjQtNy4zYzMuOS0xLjEgNi42LTQuNyA2LjYtOC43cy0yLjctNy42LTYuNi04LjdMMzIwIDM1MmwtNy4zLTI1LjR6TTEwNCAxMjBsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkwxMDQgMTY4IDkwLjIgMjE2LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1NiAxNjggNy43IDE1NC4yQzMuMSAxNTIuOSAwIDE0OC43IDAgMTQ0czMuMS04LjkgNy43LTEwLjJMNTYgMTIwIDY5LjggNzEuN0M3MS4xIDY3LjEgNzUuMyA2NCA4MCA2NHM4LjkgMy4xIDEwLjIgNy43TDEwNCAxMjB6TTU4NCA0MDhsNDguMyAxMy44YzQuNiAxLjMgNy43IDUuNSA3LjcgMTAuMnMtMy4xIDguOS03LjcgMTAuMkw1ODQgNDU2bC0xMy44IDQ4LjNjLTEuMyA0LjYtNS41IDcuNy0xMC4yIDcuN3MtOC45LTMuMS0xMC4yLTcuN0w1MzYgNDU2bC00OC4zLTEzLjhjLTQuNi0xLjMtNy43LTUuNS03LjctMTAuMnMzLjEtOC45IDcuNy0xMC4yTDUzNiA0MDhsMTMuOC00OC4zYzEuMy00LjYgNS41LTcuNyAxMC4yLTcuN3M4LjkgMy4xIDEwLjIgNy43TDU4NCA0MDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTcG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuOSAyMy43QzI0Mi4zIDYuNiAyMjQuOC0zLjUgMjA3LjcgMS4xcy0yNy4yIDIyLjEtMjIuNiAzOS4yTDIzOCAyMzcuOGMyLjUgOS4yLTQuNSAxOC4yLTE0IDE4LjJjLTYuNCAwLTEyLTQuMi0xMy45LTEwLjNMMTY2LjYgMTAyLjdjLTUuMS0xNi45LTIzLTI2LjQtMzkuOS0yMS4zcy0yNi40IDIzLTIxLjMgMzkuOWw2Mi44IDIwNi40YzIuNCA3LjktNy4yIDEzLjgtMTMuMiA4LjFMOTkuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40cy0xNC42IDQxLjMgMS40IDU2LjZMMTU2LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRoMTAuOSA4LjJjLjEgMCAuMS0uMSAuMS0uMXMuMS0uMSAuMS0uMWM1OC4zLTMuNSAxMDguNi00My4yIDEyNS4zLTk5LjdsODEuMi0yNzVjNS0xNi45LTQuNy0zNC43LTIxLjYtMzkuOHMtMzQuNyA0LjctMzkuOCAyMS42TDQ0My41IDI0Ny4xYy0xLjYgNS4zLTYuNCA4LjktMTIgOC45Yy03LjkgMC0xMy44LTcuMy0xMi4yLTE1LjFsMzYtMTcwLjNjMy43LTE3LjMtNy40LTM0LjMtMjQuNy0zNy45cy0zNC4zIDcuNC0zNy45IDI0LjdMMzU1LjEgMjM1LjFjLTIuNiAxMi4yLTEzLjMgMjAuOS0yNS44IDIwLjljLTExLjkgMC0yMi40LTgtMjUuNC0xOS41bC01Ny0yMTIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjMzNmMwIDEuNSAwIDMuMSAuMSA0LjZMNjcuNiAyODNjLTE2LTE1LjItNDEuMy0xNC42LTU2LjYgMS40cy0xNC42IDQxLjMgMS40IDU2LjZMMTI0LjggNDQ4YzQzLjEgNDEuMSAxMDAuNCA2NCAxNjAgNjRIMzA0Yzk3LjIgMCAxNzYtNzguOCAxNzYtMTc2VjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYyNDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kY3VmZnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwIDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTE5MiA0OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bS0zMiA4MGMxNy43IDAgMzIgMTQuMyAzMiAzMmg4YzEzLjMgMCAyNCAxMC43IDI0IDI0djE2YzAgMS43LS4yIDMuNC0uNSA1LjFDMjgwLjMgMjI5LjYgMzIwIDI4Ni4yIDMyMCAzNTJjMCA4OC40LTcxLjYgMTYwLTE2MCAxNjBTMCA0NDAuNCAwIDM1MmMwLTY1LjggMzkuNy0xMjIuNCA5Ni41LTE0Ni45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMVYxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRoOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAzMjBhOTYgOTYgMCAxIDAgMC0xOTIgOTYgOTYgMCAxIDAgMCAxOTJ6bTE5Mi05NmMwLTI1LjktNS4xLTUwLjUtMTQuNC03My4xYzE2LjktMzIuOSA0NC44LTU5LjEgNzguOS03My45Yy0uNC0xLjYtLjUtMy4zLS41LTUuMVYxODRjMC0xMy4zIDEwLjctMjQgMjQtMjRoOGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyaDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MTZjMCAxLjctLjIgMy40LS41IDUuMUM2MDAuMyAyMjkuNiA2NDAgMjg2LjIgNjQwIDM1MmMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MGMtNjIgMC0xMTUuOC0zNS4zLTE0Mi40LTg2LjljOS4zLTIyLjUgMTQuNC00Ny4yIDE0LjQtNzMuMXptMjI0IDBhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwek0zNjggMGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTgwIDQ4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNBc2xJbnRlcnByZXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU2LjYgNDYuM2M3LjktMTUuOCAxLjUtMzUtMTQuMy00Mi45cy0zNS0xLjUtNDIuOSAxNC4zTDEzLjUgMTg5LjRDNC42IDIwNy4yIDAgMjI2LjggMCAyNDYuN1YyNTZjMCA3MC43IDU3LjMgMTI4IDEyOCAxMjhoNzIgOHYtLjNjMzUuMi0yLjcgNjUuNC0yMi44IDgyLjEtNTEuN2M4LjgtMTUuMyAzLjYtMzQuOS0xMS43LTQzLjdzLTM0LjktMy42LTQzLjcgMTEuN2MtNyAxMi0xOS45IDIwLTM0LjcgMjBjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDBjMTQuOCAwIDI3LjcgOCAzNC43IDIwYzguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdzMjAuNS0yOC40IDExLjctNDMuN2MtMTIuOC0yMi4xLTMzLjYtMzkuMS01OC40LTQ3LjFsODAuOC0yMmMxNy00LjYgMjcuMS0yMi4yIDIyLjUtMzkuM3MtMjIuMi0yNy4xLTM5LjMtMjIuNUwxOTQuOSAxMjQuNmw4MS42LTY4YzEzLjYtMTEuMyAxNS40LTMxLjUgNC4xLTQ1LjFTMjQ5LjEtMy45IDIzNS41IDcuNEwxMzMuNiA5Mi4zbDIzLTQ2ek00ODMuNCA0NjUuN2MtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zbDg1LjktMTcxLjdjOC45LTE3LjggMTMuNS0zNy40IDEzLjUtNTcuMlYyNTZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhINDQwaC04di4zYy0zNS4yIDIuNy02NS40IDIyLjgtODIuMSA1MS43Yy04LjkgMTUuMy0zLjYgMzQuOSAxMS43IDQzLjdzMzQuOSAzLjYgNDMuNy0xMS43YzctMTIgMTkuOS0yMCAzNC43LTIwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwYy0xNC44IDAtMjcuNy04LTM0LjctMjBjLTguOS0xNS4zLTI4LjQtMjAuNS00My43LTExLjdzLTIwLjUgMjguNC0xMS43IDQzLjdjMTIuOCAyMi4xIDMzLjYgMzkuMSA1OC40IDQ3LjFsLTgwLjggMjJjLTE3LjEgNC43LTI3LjEgMjIuMi0yMi41IDM5LjNzMjIuMiAyNy4xIDM5LjMgMjIuNWwxMDAuNy0yNy41LTgxLjYgNjhjLTEzLjYgMTEuMy0xNS40IDMxLjUtNC4xIDQ1LjFzMzEuNSAxNS40IDQ1LjEgNC4xbDEwMS45LTg0LjktMjMgNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzQm91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJDOTYgMTQuMyA4MS43IDAgNjQgMFMzMiAxNC4zIDMyIDMyVjk2djU5LjEgLjdWMTkydjIxLjljMCAxNC4yIDUuMSAyNy45IDE0LjMgMzguN0wxMzEuNiAzNTJIMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDMySDI4OGg2NEg0ODBoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRoLTMuNmw4NS4zLTk5LjVjOS4yLTEwLjggMTQuMy0yNC41IDE0LjMtMzguN1YxOTIgMTU1Ljh2LS43Vjk2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjk2djQ4LjhsLTY5LjMgOTIuNGMtNS43IDcuNi0xNi4xIDkuNi0yNC4yIDQuOGMtOS43LTUuNy0xMi4xLTE4LjctNS4xLTI3LjVMNDczIDE4MGMxMC44LTEzLjUgOC45LTMzLjMtNC40LTQ0LjVzLTMzLTkuOC00NC41IDMuMmwtNDYuNyA1Mi41QzM2MSAyMDkuNyAzNTIgMjMzLjQgMzUyIDI1OC4xVjMyMHYzMkgyODhWMzIwIDI1OC4xYzAtMjQuNi05LTQ4LjQtMjUuNC02Ni44bC00Ni43LTUyLjVjLTExLjUtMTMtMzEuMy0xNC40LTQ0LjUtMy4ycy0xNS4yIDMwLjktNC40IDQ0LjVsMjcuNiAzNC41YzcgOC44IDQuNyAyMS44LTUuMSAyNy41Yy04LjEgNC44LTE4LjYgMi43LTI0LjItNC44TDk2IDE0NC44Vjk2IDMyem02NCA0NDh2MzJIMjg4VjQ4MGg2NHYzMkg0ODBWNDgwaDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQ4MCAzNTIgMjg4IDE2MCAxMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzQnViYmxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgNjRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05NiAxMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTMyIDE2MGwuMSA3Mi42Yy4xIDUyLjIgMjQgMTAxIDY0IDEzMy4xYy0uMS0xLjktLjEtMy44LS4xLTUuN3YtOGMwLTcxLjggMzctMTM4LjYgOTcuOS0xNzYuN2w2MC4yLTM3LjZjOC42LTUuNCAxNy45LTguNCAyNy4zLTkuNGw0NS45LTc5LjVjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhzLTI2LjItMi43LTMyLjggOC44bC03OCAxMzUuMWMtMy4zIDUuNy0xMC43IDcuNy0xNi40IDQuNHMtNy43LTEwLjctNC40LTE2LjRsNjItMTA3LjRjNi42LTExLjUgMi43LTI2LjItOC44LTMyLjhTMjE0IDUgMjA3LjQgMTYuNWwtNjggMTE3LjggMCAwIDAgMC00My4zIDc1TDk2IDE2MGMwLTE3LjctMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnpNMzMyLjEgODguNUwzMDcuNSAxMzFjMTMuOSA0LjUgMjYuNCAxMy43IDM0LjcgMjdjLjkgMS41IDEuOCAyLjkgMi41IDQuNGwyOC45LTUwYzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHptNDYuNCA2My43bC0yNi44IDQ2LjRjLS42IDYtMi4xIDExLjgtNC4zIDE3LjRIMzUyaDEzLjNsMCAwSDM5N2wyMy0zOS44YzYuNi0xMS41IDIuNy0yNi4yLTguOC0zMi44cy0yNi4yLTIuNy0zMi44IDguOHpNMzE1LjEgMTc1Yy05LjQtMTUtMjkuMS0xOS41LTQ0LjEtMTAuMmwtNjAuMiAzNy42QzE1OS4zIDIzNC43IDEyOCAyOTEuMiAxMjggMzUydjhjMCA4LjkgLjggMTcuNiAyLjIgMjYuMWMzNS40IDguMiA2MS44IDQwIDYxLjggNzcuOWMwIDYuMy0uNyAxMi41LTIuMSAxOC40QzIxNS4xIDUwMSAyNDYuMyA1MTIgMjgwIDUxMkg0NTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzY0Yy02LjYgMC0xMi01LjQtMTItMTJzNS40LTEyIDEyLTEySDQ4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNjRjLTYuNiAwLTEyLTUuNC0xMi0xMnM1LjQtMTIgMTItMTJINTIwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM2NGMtNi42IDAtMTItNS40LTEyLTEyczUuNC0xMiAxMi0xMkg0ODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzUybDAgMCAwIDBIMjU4LjhMMzA1IDIxOS4xYzE1LTkuNCAxOS41LTI5LjEgMTAuMi00NC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc0NsYXBwaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAxNlY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0tOTguNyA3LjFsMzIgNDhjNC45IDcuNCAyLjkgMTcuMy00LjQgMjIuMnMtMTcuMyAyLjktMjIuMi00LjRsLTMyLTQ4Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40ek0xMzUgMTE5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDI5Mi43IDI0Mi43YzEwLjEgMTAuMSAyNy4zIDIuOSAyNy4zLTExLjNWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzQ1LjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40Yy02NCAzOC40LTE0NS44IDI4LjMtMTk4LjUtMjQuNEw3IDM2MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDUzIDUzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDIzIDI2NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkzIDkzYzYuMSA2LjEgMTYgNi4xIDIyLjEgMHM2LjEtMTYgMC0yMi4xTDU1IDE4NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDExNyAxMTdjNi4xIDYuMSAxNiA2LjEgMjIuMSAwczYuMS0xNiAwLTIyLjFsLTkzLTkzYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpNNDMzLjEgNDg0LjljLTI0LjIgMTQuNS01MC45IDIyLjEtNzcuNyAyMy4xYzQ4LjEtMzkuNiA3Ni42LTk5IDc2LjYtMTYyLjRsMC05OC4xYzguMi0uMSAxNi02LjQgMTYtMTZWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMzQ1LjZjMCA1Ny4xLTMwIDExMC03OC45IDEzOS40ek00MjQuOSAxOC43YzcuNCA0LjkgOS4zIDE0LjggNC40IDIyLjJsLTMyIDQ4Yy00LjkgNy40LTE0LjggOS4zLTIyLjIgNC40cy05LjMtMTQuOC00LjQtMjIuMmwzMi00OGM0LjktNy40IDE0LjgtOS4zIDIyLjItNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc0hvbGRpbmdDaGlsZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6bTQ0LjcgMTY0LjNMMzc1LjggMjUzYzEuNiAxMy4yLTcuNyAyNS4xLTIwLjggMjYuOHMtMjUuMS03LjctMjYuOC0yMC44bC00LjQtMzVoLTcuNmwtNC40IDM1Yy0xLjYgMTMuMi0xMy42IDIyLjUtMjYuOCAyMC44cy0yMi41LTEzLjYtMjAuOC0yNi44bDExLjEtODguOEwyNTUuNSAxODFjLTEwLjEgOC42LTI1LjMgNy4zLTMzLjgtMi44cy03LjMtMjUuMyAyLjgtMzMuOGwyNy45LTIzLjZDMjcxLjMgMTA0LjggMjk1LjMgOTYgMzIwIDk2czQ4LjcgOC44IDY3LjYgMjQuN2wyNy45IDIzLjZjMTAuMSA4LjYgMTEuNCAyMy43IDIuOCAzMy44cy0yMy43IDExLjQtMzMuOCAyLjhsLTE5LjgtMTYuN3pNNDAgNjRjMjIuMSAwIDQwIDE3LjkgNDAgNDB2NDAgODAgNDAuMmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1MS4xIDUxLjFjOC4zIDguMyAyMS4zIDkuNiAzMSAzLjFjMTIuOS04LjYgMTQuNy0yNi45IDMuNy0zNy44bC0xNS4yLTE1LjItMzItMzJjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBsMzIgMzIgMTUuMiAxNS4yIDAgMCAyNS4zIDI1LjNjMjEgMjEgMzIuOCA0OS41IDMyLjggNzkuMlY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMTczLjNjLTE3IDAtMzMuMy02LjctNDUuMy0xOC43TDI4LjEgMzkzLjRDMTAuMSAzNzUuNCAwIDM1MSAwIDMyNS41VjIyNCAxNjAgMTA0QzAgODEuOSAxNy45IDY0IDQwIDY0em01NjAgMGMyMi4xIDAgNDAgMTcuOSA0MCA0MHY1NiA2NFYzMjUuNWMwIDI1LjUtMTAuMSA0OS45LTI4LjEgNjcuOUw1MTIgNDkzLjNjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdINDAwYy0yNi41IDAtNDgtMjEuNS00OC00OFYzODUuMWMwLTI5LjcgMTEuOC01OC4yIDMyLjgtNzkuMmwyNS4zLTI1LjMgMCAwIDE1LjItMTUuMiAzMi0zMmMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zbC0zMiAzMi0xNS4yIDE1LjJjLTExIDExLTkuMiAyOS4yIDMuNyAzNy44YzkuNyA2LjUgMjIuNyA1LjIgMzEtMy4xbDUxLjEtNTEuMWMxMi0xMiAxOC43LTI4LjMgMTguNy00NS4zVjIyNCAxNDQgMTA0YzAtMjIuMSAxNy45LTQwIDQwLTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc0hvbGRpbmdDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBhMTI4IDEyOCAwIDEgMSAwIDI1NkExMjggMTI4IDAgMSAxIDMyMCAwek00MCA2NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHY0MCA4MCA0MC4yYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zbDUxLjEgNTEuMWM4LjMgOC4zIDIxLjMgOS42IDMxIDMuMWMxMi45LTguNiAxNC43LTI2LjkgMy43LTM3LjhsLTE1LjItMTUuMi0zMi0zMmMtMTIuNS0xMi41LTEyLjUtMzIuOCAwLTQ1LjNzMzIuOC0xMi41IDQ1LjMgMGwzMiAzMiAxNS4yIDE1LjIgMCAwIDI1LjMgMjUuM2MyMSAyMSAzMi44IDQ5LjUgMzIuOCA3OS4yVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgxNzMuM2MtMTcgMC0zMy4zLTYuNy00NS4zLTE4LjdMMjguMSAzOTMuNEMxMC4xIDM3NS40IDAgMzUxIDAgMzI1LjVWMjI0IDE2MCAxMDRDMCA4MS45IDE3LjkgNjQgNDAgNjR6bTU2MCAwYzIyLjEgMCA0MCAxNy45IDQwIDQwdjU2IDY0VjMyNS41YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDUxMiA0OTMuM2MtMTIgMTItMjguMyAxOC43LTQ1LjMgMTguN0g0MDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM4NS4xYzAtMjkuNyAxMS44LTU4LjIgMzIuOC03OS4ybDI1LjMtMjUuMyAwIDAgMTUuMi0xNS4yIDMyLTMyYzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwczEyLjUgMzIuOCAwIDQ1LjNsLTMyIDMyLTE1LjIgMTUuMmMtMTEgMTEtOS4yIDI5LjIgMy43IDM3LjhjOS43IDYuNSAyMi43IDUuMiAzMS0zLjFsNTEuMS01MS4xYzEyLTEyIDE4LjctMjguMyAxOC43LTQ1LjNWMjI0IDE0NCAxMDRjMC0yMi4xIDE3LjktNDAgNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzSG9sZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBTMCA4MS45IDAgMTA0djU2IDY0VjMyNS41YzAgMjUuNSAxMC4xIDQ5LjkgMjguMSA2Ny45TDEyOCA0OTMuM2MxMiAxMiAyOC4zIDE4LjcgNDUuMyAxOC43SDI0MGMyNi41IDAgNDgtMjEuNSA0OC00OFYzODUuMWMwLTI5LjctMTEuOC01OC4yLTMyLjgtNzkuMmwtMjUuMy0yNS4zIDAgMC0xNS4yLTE1LjItMzItMzJjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDMyIDMyIDE1LjIgMTUuMmMxMSAxMSA5LjIgMjkuMi0zLjcgMzcuOGMtOS43IDYuNS0yMi43IDUuMi0zMS0zLjFMOTguNyAzMDkuNWMtMTItMTItMTguNy0yOC4zLTE4LjctNDUuM1YyMjQgMTQ0IDEwNHptNDgwIDB2NDAgODAgNDAuMmMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNTEuMSA1MS4xYy04LjMgOC4zLTIxLjMgOS42LTMxIDMuMWMtMTIuOS04LjYtMTQuNy0yNi45LTMuNy0zNy44bDE1LjItMTUuMiAzMi0zMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtMzIgMzItMTUuMiAxNS4yIDAgMC0yNS4zIDI1LjNjLTIxIDIxLTMyLjggNDkuNS0zMi44IDc5LjJWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDY2LjdjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjdsOTkuOS05OS45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlWMjI0IDE2MCAxMDRjMC0yMi4xLTE3LjktNDAtNDAtNDBzLTQwIDE3LjktNDAgNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzUHJheWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTEuMiA0LjhjMy4yLTIgNi42LTMuMyAxMC00LjFjNC43LTEgOS42LS45IDE0LjEgLjFjNy43IDEuOCAxNC44IDYuNSAxOS40IDEzLjZMNTE0LjYgMTk0LjJjOC44IDEzLjEgMTMuNCAyOC42IDEzLjQgNDQuNHY3My41YzAgNi45IDQuNCAxMyAxMC45IDE1LjJsNzkuMiAyNi40QzYzMS4yIDM1OCA2NDAgMzcwLjIgNjQwIDM4NHY5NmMwIDkuOS00LjYgMTkuMy0xMi41IDI1LjRzLTE4LjEgOC4xLTI3LjcgNS41TDQzMSA0NjUuOWMtNTYtMTQuOS05NS02NS43LTk1LTEyMy43VjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjE5LjFjMC03LTEuOC0xMy44LTUuMy0xOS44TDM0MC4zIDQ4LjFjLTEuNy0zLTIuOS02LjEtMy42LTkuM2MtMS00LjctMS05LjYgLjEtMTQuMWMxLjktOCA2LjgtMTUuMiAxNC4zLTE5Ljl6bS02Mi40IDBjNy41IDQuNiAxMi40IDExLjkgMTQuMyAxOS45YzEuMSA0LjYgMS4yIDkuNCAuMSAxNC4xYy0uNyAzLjItMS45IDYuMy0zLjYgOS4zTDIxMy4zIDE5OS4zYy0zLjUgNi01LjMgMTIuOS01LjMgMTkuOFYzMDRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlYzNDIuM2MwIDU4LTM5IDEwOC43LTk1IDEyMy43bC0xNjguNyA0NWMtOS42IDIuNi0xOS45IC41LTI3LjctNS41UzAgNDkwIDAgNDgwVjM4NGMwLTEzLjggOC44LTI2IDIxLjktMzAuNGw3OS4yLTI2LjRjNi41LTIuMiAxMC45LTguMyAxMC45LTE1LjJWMjM4LjVjMC0xNS44IDQuNy0zMS4yIDEzLjQtNDQuNEwyNDUuMiAxNC41YzQuNi03LjEgMTEuNy0xMS44IDE5LjQtMTMuNmM0LjYtMS4xIDkuNC0xLjIgMTQuMS0uMWMzLjUgLjggNi45IDIuMSAxMCA0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjBsLS4xIDcyLjZjLS4xIDUyLjItMjQgMTAxLTY0IDEzMy4xYy4xLTEuOSAuMS0zLjggLjEtNS43di04YzAtNzEuOC0zNy0xMzguNi05Ny45LTE3Ni43bC02MC4yLTM3LjZjLTguNi01LjQtMTcuOS04LjQtMjcuMy05LjRMMjQ4LjcgNDguOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4LjhsNzggMTM1LjFjMy4zIDUuNyAxMC43IDcuNyAxNi40IDQuNHM3LjctMTAuNyA0LjQtMTYuNGwtNjItMTA3LjRjLTYuNi0xMS41LTIuNy0yNi4yIDguOC0zMi44UzM2MiA1IDM2OC42IDE2LjVsNjggMTE3LjggMCAwIDAgMCA0My4zIDc1TDQ4MCAxNjBjMC0xNy43IDE0LjQtMzIgMzItMzJzMzIgMTQuNCAzMiAzMnpNMjQzLjkgODguNUwyNjguNSAxMzFjLTEzLjkgNC41LTI2LjQgMTMuNy0zNC43IDI3Yy0uOSAxLjQtMS43IDIuOS0yLjUgNC40bC0yOC45LTUwYy02LjYtMTEuNS0yLjctMjYuMiA4LjgtMzIuOHMyNi4yLTIuNyAzMi44IDguOHptLTQ2LjQgNjMuN2wyNi44IDQ2LjRjLjYgNiAyLjEgMTEuOCA0LjMgMTcuNEgyMjQgMjEwLjdsMCAwSDE3OWwtMjMtMzkuOGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6TTI2MC45IDE3NWM5LjQtMTUgMjkuMS0xOS41IDQ0LjEtMTAuMmw2MC4yIDM3LjZDNDE2LjcgMjM0LjcgNDQ4IDI5MS4yIDQ0OCAzNTJ2OGMwIDgzLjktNjguMSAxNTItMTUyIDE1MkgxMjBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOTJjNi42IDAgMTItNS40IDEyLTEycy01LjQtMTItMTItMTJIODhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMjEyYzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEySDU2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0SDIxMmM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMkg4OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNEgyMjRsMCAwIDAgMGg5My4yTDI3MSAyMTkuMWMtMTUtOS40LTE5LjUtMjkuMS0xMC4yLTQ0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZUFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAyNDh2My4zbDY5LjctNjkuN2MyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw1MzUuNiAyNC40Yy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMEw0MTYuMyA2NC41Yy0yLjctLjMtNS41LS41LTguMy0uNUgyOTZjLTM3LjEgMC02Ny42IDI4LTcxLjYgNjRIMjI0VjI0OGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwVjE3NmMwIDAgMC0uMSAwLS4xVjE2MGwxNiAwIDEzNiAwYzAgMCAwIDAgLjEgMEg0NjRjNDQuMiAwIDgwIDM1LjggODAgODB2OHpNMzM2IDE5MnY1NmMwIDM5LjgtMzIuMiA3Mi03MiA3MnMtNzItMzIuMi03Mi03MlYxMjkuNGMtMzUuOSA2LjItNjUuOCAzMi4zLTc2IDY4LjJMOTkuNSAyNTUuMiAyNi4zIDMyOC40Yy0yMS45IDIxLjktMjEuOSA1Ny4zIDAgNzkuMmw3OC4xIDc4LjFjMjEuOSAyMS45IDU3LjMgMjEuOSA3OS4yIDBsMzcuNy0zNy43Yy45IDAgMS44IC4xIDIuNyAuMUgzODRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhjMC01LjYtMS0xMS0yLjctMTZINDMyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMTIuOC01LTI0LjQtMTMuMi0zM2MyNS43LTUgNDUuMS0yNy42IDQ1LjItNTQuOHYtLjRjLS4xLTMwLjgtMjUuMS01NS44LTU2LTU1LjhjMCAwIDAgMCAwIDBsLTEyMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2VTaW1wbGVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMzUtMTA1LjhjLTEuMS0xMS4zLTYuMy0yMi4zLTE1LjMtMzAuN2wtMTM0LjItMTIzLTIzLjQgMTguMi0yNi0yMC4zIDc3LjItNjAuMWM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTUwLjIgMzUySDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhINTE2aC00LS43bC0zLjktMi41TDQzNC44IDc5Yy0xNS4zLTkuOC0zMy4yLTE1LTUxLjQtMTVjLTIxLjggMC00MyA3LjUtNjAgMjEuMmwtODkuNyA3Mi42LTI1LjgtMjAuMyA4MS44LTY2LjJjLTExLjYtNC45LTI0LjEtNy40LTM2LjgtNy40QzIzNCA2NCAyMTUuNyA2OS42IDIwMCA4MGwtMzUuNSAyMy43TDM4LjggNS4xek00MTMuNiA0MjEuOUw0MS4yIDEyOC41QzE3LjkgMTMxLjggMCAxNTEuOCAwIDE3NlYzMDRjMCAyNi41IDIxLjUgNDggNDggNDhIMTU2LjJsOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNoYWtlU2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMy40IDg1LjJsLTk2LjggNzguNGMtMTYuMSAxMy0xOS4yIDM2LjQtNyA1My4xYzEyLjkgMTcuOCAzOCAyMS4zIDU1LjMgNy44bDk5LjMtNzcuMmM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTUwLjIgMzUySDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhINTE2aC00LS43bC0zLjktMi41TDQzNC44IDc5Yy0xNS4zLTkuOC0zMy4yLTE1LTUxLjQtMTVjLTIxLjggMC00MyA3LjUtNjAgMjEuMnptMjIuOCAxMjQuNGwtNTEuNyA0MC4yQzI2MyAyNzQuNCAyMTcuMyAyNjggMTkzLjcgMjM1LjZjLTIyLjItMzAuNS0xNi42LTczLjEgMTIuNy05Ni44bDgzLjItNjcuM2MtMTEuNi00LjktMjQuMS03LjQtMzYuOC03LjRDMjM0IDY0IDIxNS43IDY5LjYgMjAwIDgwbC03MiA0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDE1Ni4ybDkxLjQgODMuNGMxOS42IDE3LjkgNDkuOSAxNi41IDY3LjgtMy4xYzUuNS02LjEgOS4yLTEzLjIgMTEuMS0yMC42bDE3IDE1LjZjMTkuNSAxNy45IDQ5LjkgMTYuNiA2Ny44LTIuOWM0LjUtNC45IDcuOC0xMC42IDkuOS0xNi41YzE5LjQgMTMgNDUuOCAxMC4zIDYyLjEtNy41YzE3LjktMTkuNSAxNi42LTQ5LjktMi45LTY3LjhsLTEzNC4yLTEyM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNoYWtlU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzguOCA1LjFDMjguNC0zLjEgMTMuMy0xLjIgNS4xIDkuMlMtMS4yIDM0LjcgOS4yIDQyLjlsNTkyIDQ2NGMxMC40IDguMiAyNS41IDYuMyAzMy43LTQuMXM2LjMtMjUuNS00LjEtMzMuN2wtMTM1LTEwNS44Yy0xLjEtMTEuMy02LjMtMjIuMy0xNS4zLTMwLjdsLTEzNC4yLTEyMy0yMy40IDE4LjItMjYtMjAuMyA3Ny4yLTYwLjFjNy01LjQgMTctNC4yIDIyLjUgMi44czQuMiAxNy0yLjggMjIuNWwtMjAuOSAxNi4yTDUxMiAzMTYuOFYxMjhoLS43bC0zLjktMi41TDQzNC44IDc5Yy0xNS4zLTkuOC0zMy4yLTE1LTUxLjQtMTVjLTIxLjggMC00MyA3LjUtNjAgMjEuMmwtODkuNyA3Mi42LTI1LjgtMjAuMyA4MS44LTY2LjJjLTExLjYtNC45LTI0LjEtNy40LTM2LjgtNy40QzIzNCA2NCAyMTUuNyA2OS42IDIwMCA4MGwtMzUuNSAyMy43TDM4LjggNS4xek00MTMuNiA0MjEuOUwxMjggMTk2LjhWMzUyaDI4LjJsOTEuNCA4My40YzE5LjYgMTcuOSA0OS45IDE2LjUgNjcuOC0zLjFjNS41LTYuMSA5LjItMTMuMiAxMS4xLTIwLjZsMTcgMTUuNmMxOS41IDE3LjkgNDkuOSAxNi42IDY3LjgtMi45Yy44LS44IDEuNS0xLjcgMi4yLTIuNnpNOTYgMTcxLjZMNDAuNiAxMjhIMTZjLTguOCAwLTE2IDcuMi0xNiAxNlYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJINjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTcxLjZ6TTQ4IDMyMGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6TTU0NCAxMjhWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTguOC03LjItMTYtMTYtMTZINTQ0em0zMiAyMDhhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHNoYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMy40IDg1LjJsLTk2LjggNzguNGMtMTYuMSAxMy0xOS4yIDM2LjQtNyA1My4xYzEyLjkgMTcuOCAzOCAyMS4zIDU1LjMgNy44bDk5LjMtNzcuMmM3LTUuNCAxNy00LjIgMjIuNSAyLjhzNC4yIDE3LTIuOCAyMi41bC0yMC45IDE2LjJMNTEyIDMxNi44VjEyOGgtLjdsLTMuOS0yLjVMNDM0LjggNzljLTE1LjMtOS44LTMzLjItMTUtNTEuNC0xNWMtMjEuOCAwLTQzIDcuNS02MCAyMS4yem0yMi44IDEyNC40bC01MS43IDQwLjJDMjYzIDI3NC40IDIxNy4zIDI2OCAxOTMuNyAyMzUuNmMtMjIuMi0zMC41LTE2LjYtNzMuMSAxMi43LTk2LjhsODMuMi02Ny4zYy0xMS42LTQuOS0yNC4xLTcuNC0zNi44LTcuNEMyMzQgNjQgMjE1LjcgNjkuNiAyMDAgODBsLTcyIDQ4VjM1MmgyOC4ybDkxLjQgODMuNGMxOS42IDE3LjkgNDkuOSAxNi41IDY3LjgtMy4xYzUuNS02LjEgOS4yLTEzLjIgMTEuMS0yMC42bDE3IDE1LjZjMTkuNSAxNy45IDQ5LjkgMTYuNiA2Ny44LTIuOWM0LjUtNC45IDcuOC0xMC42IDkuOS0xNi41YzE5LjQgMTMgNDUuOCAxMC4zIDYyLjEtNy41YzE3LjktMTkuNSAxNi42LTQ5LjktMi45LTY3LjhsLTEzNC4yLTEyM3pNMTYgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOEgxNnpNNDggMzIwYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNNTQ0IDEyOFYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNkg1NDR6bTMyIDIwOGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW51a2lhaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTQuMiAzLjNDMzA5LjEgMTIuMSAyOTYgMzYuNiAyOTYgNTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN0MzMjQuNiAxLjIgMzIyLjQgMCAzMjAgMHMtNC42IDEuMi01LjggMy4zem0tMjg4IDQ4QzIxLjEgNjAuMSA4IDg0LjYgOCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN0MzNi42IDQ5LjIgMzQuNCA0OCAzMiA0OHMtNC42IDEuMi01LjggMy4zek04OCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MxMDEuMSA2MC4xIDg4IDg0LjYgODggMTA0em04Mi4yLTUyLjdDMTY1LjEgNjAuMSAxNTIgODQuNiAxNTIgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjdjLTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTIxNiAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0MyMjkuMSA2MC4xIDIxNiA4NC42IDIxNiAxMDR6TTM5NC4yIDUxLjNDMzg5LjEgNjAuMSAzNzYgODQuNiAzNzYgMTA0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0xOS40LTEzLjEtNDMuOS0xOC4yLTUyLjdjLTEuMi0yLjEtMy40LTMuMy01LjgtMy4zcy00LjYgMS4yLTUuOCAzLjN6TTQ0MCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM0M0NTMuMSA2MC4xIDQ0MCA4NC42IDQ0MCAxMDR6bTgyLjItNTIuN0M1MTcuMSA2MC4xIDUwNCA4NC42IDUwNCAxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTE5LjQtMTMuMS00My45LTE4LjItNTIuN2MtMS4yLTIuMS0zLjQtMy4zLTUuOC0zLjNzLTQuNiAxLjItNS44IDMuM3pNNTg0IDEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMTkuNC0xMy4xLTQzLjktMTguMi01Mi43Yy0xLjItMi4xLTMuNC0zLjMtNS44LTMuM3MtNC42IDEuMi01LjggMy4zQzU5Ny4xIDYwLjEgNTg0IDg0LjYgNTg0IDEwNHpNMTEyIDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djk2IDE2aDMyVjI3MiAxNzZjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ2OTYgMTZoMzJWMjcyIDE3NmMwLTguOC03LjItMTYtMTYtMTZ6bTY0IDBjLTguOCAwLTE2IDcuMi0xNiAxNnY5NiAxNmgzMlYyNzIgMTc2YzAtOC44LTcuMi0xNi0xNi0xNnptMTYwIDBjLTguOCAwLTE2IDcuMi0xNiAxNnY5NiAxNmgzMlYyNzIgMTc2YzAtOC44LTcuMi0xNi0xNi0xNnptNjQgMGMtOC44IDAtMTYgNy4yLTE2IDE2djk2IDE2aDMyVjI3MiAxNzZjMC04LjgtNy4yLTE2LTE2LTE2em02NCAwYy04LjggMC0xNiA3LjItMTYgMTZ2OTYgMTZoMzJWMjcyIDE3NmMwLTguOC03LjItMTYtMTYtMTZ6TTM1MiAxNDRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMzIwSDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZjMCA1MyA0MyA5NiA5NiA5NkgyODh2NjRIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDMyMCA0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzUyVjM4NEg1NDRjNTMgMCA5Ni00MyA5Ni05NlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyVjE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFyZERyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjI4MC40Yy0xNy0xNS4yLTM5LjQtMjQuNC02NC0yNC40SDY0Yy0yNC42IDAtNDcgOS4yLTY0IDI0LjRWOTZ6TTY0IDI4OEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjM1MmMwLTM1LjMgMjguNy02NCA2NC02NHpNMzIwIDQxNmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTEyOC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXNodGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4MS4zIDMyLjRjMTcuNCAyLjkgMjkuMiAxOS40IDI2LjMgMzYuOEwxOTcuOCAxMjhoOTUuMWwxMS41LTY5LjNjMi45LTE3LjQgMTkuNC0yOS4yIDM2LjgtMjYuM3MyOS4yIDE5LjQgMjYuMyAzNi44TDM1Ny44IDEyOEg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzQ3LjFMMzI1LjggMzIwSDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMTUuMWwtMTEuNSA2OS4zYy0yLjkgMTcuNC0xOS40IDI5LjItMzYuOCAyNi4zcy0yOS4yLTE5LjQtMjYuMy0zNi44bDkuOC01OC43SDE1NS4xbC0xMS41IDY5LjNjLTIuOSAxNy40LTE5LjQgMjkuMi0zNi44IDI2LjNzLTI5LjItMTkuNC0yNi4zLTM2LjhMOTAuMiAzODRIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoNjguOWwyMS4zLTEyOEg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg2OC45bDExLjUtNjkuM2MyLjktMTcuNCAxOS40LTI5LjIgMzYuOC0yNi4zek0xODcuMSAxOTJMMTY1LjggMzIwaDk1LjFsMjEuMy0xMjhIMTg3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdENvd2JveVNpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyLjcgMTM1LjlsLTEwLjQgNTcuMmM2LjgtLjcgMTMuNi0xLjEgMjAuNS0xLjFoMTAuN2MzOS40IDAgNzcuOCAxMi4xIDExMC4xIDM0LjdMNTYyLjQgNDIxLjhsMzUuMSAyNC42YzI0LjQtNiA0Mi41LTI4LjEgNDIuNS01NC40YzAtNzUuOC05NC43LTEyNi42LTEzNC42LTE0NC43TDQ3NCA4My45QzQ2OC4yIDUzLjggNDQxLjggMzIgNDExLjEgMzJoLTIuN2MtNS42IDAtMTEuMSAuNy0xNi41IDIuMkwxOTkuMiA4NS41Yy0yMy45IDYuNC00MiAyNi00Ni41IDUwLjR6TTAgMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDU0NEwyNjUuMyAyNTIuOWMtMjYuOS0xOC44LTU4LjktMjguOS05MS44LTI4LjlIMTYyLjljLTYwLjYgMC0xMTYgMzQuMi0xNDMuMSA4OC40TDEzLjUgMzI1QzQuNiAzNDIuNyAwIDM2Mi4zIDAgMzgyLjJWMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXRDb3dib3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDY0YzE0LjQgMCAyMi4zLTcgMzAuOC0xNC40QzM2MC40IDQxLjEgMzcwLjcgMzIgMzkyIDMyYzQ5LjMgMCA4NC40IDE1Mi4yIDk3LjkgMjIxLjlDNDQ3LjggMjcyLjEgMzkwLjkgMjg4IDMyMCAyODhzLTEyNy44LTE1LjktMTY5LjktMzQuMUMxNjMuNiAxODQuMiAxOTguNyAzMiAyNDggMzJjMjEuMyAwIDMxLjYgOS4xIDQxLjIgMTcuNkMyOTcuNyA1NyAzMDUuNiA2NCAzMjAgNjR6TTExMS4xIDI3MC43YzQ3LjIgMjQuNSAxMTcuNSA0OS4zIDIwOSA0OS4zczE2MS44LTI0LjggMjA4LjktNDkuM2MyNC44LTEyLjkgNDkuOC0yOC4zIDcwLjEtNDcuN2M3LjktNy45IDIwLjItOS4yIDI5LjYtMy4zYzkuNSA1LjkgMTMuNSAxNy45IDkuOSAyOC41Yy0xMy41IDM3LjctMzguNCA3Mi4zLTY2LjEgMTAwLjZDNTIzLjcgMzk4LjkgNDQzLjYgNDQ4IDMyMCA0NDhzLTIwMy42LTQ5LjEtMjUyLjUtOTkuMkMzOS44IDMyMC40IDE0LjkgMjg1LjggMS40IDI0OC4xYy0zLjYtMTAuNiAuNC0yMi42IDkuOS0yOC41YzkuNS01LjkgMjEuNy00LjUgMjkuNiAzLjNjMjAuNCAxOS40IDQ1LjMgMzQuOCA3MC4xIDQ3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdFdpemFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0MTZMMTY4LjYgMTgwLjdjMTUuMy0zNC40IDQwLjMtNjMuNSA3Mi04My43bDE0Ni45LTk0YzMtMS45IDYuNS0yLjkgMTAtMi45QzQwNy43IDAgNDE2IDguMyA0MTYgMTguNnYxLjZjMCAyLjYtLjUgNS4xLTEuNCA3LjVMMzU0LjggMTc2LjljLTEuOSA0LjctMi44IDkuNy0yLjggMTQuN2MwIDUuNSAxLjIgMTEgMy40IDE2LjFMNDQ4IDQxNkgyNDAuOWwxMS44LTM1LjQgNDAuNC0xMy41YzYuNS0yLjIgMTAuOS04LjMgMTAuOS0xNS4ycy00LjQtMTMtMTAuOS0xNS4ybC00MC40LTEzLjUtMTMuNS00MC40QzIzNyAyNzYuNCAyMzAuOSAyNzIgMjI0IDI3MnMtMTMgNC40LTE1LjIgMTAuOWwtMTMuNSA0MC40LTQwLjQgMTMuNUMxNDguNCAzMzkgMTQ0IDM0NS4xIDE0NCAzNTJzNC40IDEzIDEwLjkgMTUuMmw0MC40IDEzLjVMMjA3LjEgNDE2SDY0ek0yNzkuNiAxNDEuNWMtMS4xLTMuMy00LjEtNS41LTcuNi01LjVzLTYuNSAyLjItNy42IDUuNWwtNi43IDIwLjItMjAuMiA2LjdjLTMuMyAxLjEtNS41IDQuMS01LjUgNy42czIuMiA2LjUgNS41IDcuNmwyMC4yIDYuNyA2LjcgMjAuMmMxLjEgMy4zIDQuMSA1LjUgNy42IDUuNXM2LjUtMi4yIDcuNi01LjVsNi43LTIwLjIgMjAuMi02LjdjMy4zLTEuMSA1LjUtNC4xIDUuNS03LjZzLTIuMi02LjUtNS41LTcuNmwtMjAuMi02LjctNi43LTIwLjJ6TTMyIDQ0OEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlQ291Z2hTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzI1LjhsNDQgMzQuNWM4LjEgMS40IDE0LjggNi44IDE4IDE0LjFMNTUyLjkgNDA4YzEwLjYgLjQgMTkuNSA3LjYgMjIuMiAxNy40bDM5LjEgMzAuNmMuNiAwIDEuMi0uMSAxLjgtLjFjMTEuMSAwIDIwLjQgNy41IDIzLjIgMTcuOGgtMy45YzYuMiA4LjUgNi40IDIwLjQtLjQgMjljLTguMiAxMC40LTIzLjMgMTIuMy0zMy43IDQuMUw5LjIgNDIuOUMtMS4yIDM0LjctMy4xIDE5LjYgNS4xIDkuMlMyOC40LTMuMSAzOC44IDUuMUw4OS42IDQ0LjlDMTI3IDE2LjcgMTczLjUgMCAyMjQgMGgyNGM5NS4yIDAgMTgxLjIgNjkuMyAxOTcuMyAxNjAuMmMyLjMgMTMgNi44IDI1LjcgMTUuMSAzNmw0MiA1Mi42YzYuMiA3LjggOS42IDE3LjQgOS42IDI3LjRjMCAyNC4yLTE5LjYgNDMuOC00My44IDQzLjhINDQ4djAgNS44ek0wIDIyNC4yYzAtMzguNyA5LjgtNzUuMSAyNy4xLTEwNi45TDM0MS44IDM2NS4zbC0yLjUgLjNjLTExIDEuNC0xOS4yIDEwLjctMTkuMiAyMS44YzAgMTEuNiA5IDIxLjIgMjAuNiAyMS45bDYyIDMuOSA0MyAzMy45QzQzOS4zIDQ2Ni4yIDQyMS4yIDQ4MCA0MDAgNDgwSDMyMHY4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDI1NnYwSDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDcuM2MwLTE2LjctNi45LTMyLjUtMTcuMS00NS44QzE2LjYgMzIyLjQgMCAyNzQuMSAwIDIyNC4yek02MTYgMzYwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptLTY0LTQ4YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVDb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDIyNC4yQzAgMTAwLjYgMTAwLjIgMCAyMjQgMGgyNGM5NS4yIDAgMTgxLjIgNjkuMyAxOTcuMyAxNjAuMmMyLjMgMTMgNi44IDI1LjcgMTUuMSAzNmw0MiA1Mi42YzYuMiA3LjggOS42IDE3LjQgOS42IDI3LjRjMCAyNC4yLTE5LjYgNDMuOC00My44IDQzLjhINDQ4djAgMzJMMzM5LjIgMzY1LjZjLTExIDEuNC0xOS4yIDEwLjctMTkuMiAyMS44YzAgMTEuNiA5IDIxLjIgMjAuNiAyMS45TDQ0OCA0MTZ2MTZjMCAyNi41LTIxLjUgNDgtNDggNDhIMzIwdjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjU2djBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwNy4zYzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDMTYuNiAzMjIuNCAwIDI3NC4xIDAgMjI0LjJ6bTM1Mi0uMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTQ2NCAzODRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTUyLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpNNTkyIDQ4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek01NTIgMzEyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAtMjRhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpNNTUyIDQwOGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlTWFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAyMjQuMmMwLTIyLjIgMy4yLTQzLjYgOS4yLTYzLjlMMjYyLjIgMzIxYy00IDkuNS02LjIgMjAtNi4yIDMxVjUxMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQwNy4zYzAtMTYuNy02LjktMzIuNS0xNy4xLTQ1LjhDNDguNiAzMjIuNCAzMiAyNzQuMSAzMiAyMjQuMnptMjQ4LjMgNzAuNEw1MyAxMjkuM0M4OC43IDUzIDE2Ni4yIDAgMjU2IDBoMjRjOTUuMiAwIDE4MS4yIDY5LjMgMTk3LjMgMTYwLjJjMi4zIDEzIDYuOCAyNS43IDE1LjEgMzZsNDIgNTIuNmM1LjQgNi43IDguNiAxNC44IDkuNCAyMy4ySDMzNmMtMjEuNyAwLTQxLjMgOC42LTU1LjcgMjIuNnpNMzM2IDMwNEg1MzRsMCAwaDEwbC0xOS43IDY0SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg1MTQuNWwtOS44IDMySDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg0OTQuOGwtLjkgMi44Yy04LjMgMjYuOS0zMy4xIDQ1LjItNjEuMiA0NS4ySDI4OFYzNTJjMC0xNCA2LTI2LjcgMTUuNi0zNS40YzAgMCAwIDAgMCAwYzguNS03LjggMTkuOS0xMi42IDMyLjQtMTIuNnptNDgtODBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZVZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0LjJDMCAxMDAuNiAxMDAuMiAwIDIyNCAwaDI0Yzk1LjIgMCAxODEuMiA2OS4zIDE5Ny4zIDE2MC4yYzIuMyAxMyA2LjggMjUuNyAxNS4xIDM2bDQyIDUyLjZjNi4yIDcuOCA5LjYgMTcuNCA5LjYgMjcuNGMwIDI0LjItMTkuNiA0My44LTQzLjggNDMuOEg0NDh2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzIwdjMyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDcuM2MwLTE2LjctNi45LTMyLjUtMTcuMS00NS44QzE2LjYgMzIyLjQgMCAyNzQuMSAwIDIyNC4yek0yMjQgNjRjLTguOCAwLTE2IDcuMi0xNiAxNmMwIDMzLTM5LjkgNDkuNS02My4yIDI2LjJjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZDMTQ1LjUgMTUyLjEgMTI5IDE5MiA5NiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZjMzMgMCA0OS41IDM5LjkgMjYuMiA2My4yYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBDMTY4LjEgMjg2LjUgMjA4IDMwMyAyMDggMzM2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZjMC0zMyAzOS45LTQ5LjUgNjMuMi0yNi4yYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkMzMDIuNSAyNjMuOSAzMTkgMjI0IDM1MiAyMjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZjLTMzIDAtNDkuNS0zOS45LTI2LjItNjMuMmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwQzI3OS45IDEyOS41IDI0MCAxMTMgMjQwIDgwYzAtOC44LTcuMi0xNi0xNi0xNnptLTI0IDk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptNDAgODBhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMySDgwaDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDExMlYyMDhIMzM2Vjk2SDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg0OCA0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0MDBWMjQwIDQxNmgxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzNjggMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDE2VjI3MkgxMTJWNDE2aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDgwIDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQ4VjI0MCA5NkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkcGhvbmVzU2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4MEMxNDEuMSA4MCA0OCAxNzMuMSA0OCAyODhWMzkyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI4OEMwIDE0Ni42IDExNC42IDMyIDI1NiAzMnMyNTYgMTE0LjYgMjU2IDI1NlYzOTJjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjg4YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOHpNODAgMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNDRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjM1MnptMjg4LTY0YzM1LjMgMCA2NCAyOC43IDY0IDY0djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkcGhvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4MEMxNDkuOSA4MCA2Mi40IDE1OS40IDQ5LjYgMjYyYzkuNC0zLjggMTkuNi02IDMwLjQtNmMyNi41IDAgNDggMjEuNSA0OCA0OFY0MzJjMCAyNi41LTIxLjUgNDgtNDggNDhjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjM4NCAzMzYgMjg4QzAgMTQ2LjYgMTE0LjYgMzIgMjU2IDMyczI1NiAxMTQuNiAyNTYgMjU2djQ4IDQ4IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy0yNi41IDAtNDgtMjEuNS00OC00OFYzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhjMTAuOCAwIDIxIDIuMSAzMC40IDZDNDQ5LjYgMTU5LjQgMzYyLjEgODAgMjU2IDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OEMxNDEuMSA0OCA0OCAxNDEuMSA0OCAyNTZ2NDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMFM1MTIgMTE0LjYgNTEyIDI1NlY0MDAuMWMwIDQ4LjYtMzkuNCA4OC04OC4xIDg4TDMxMy42IDQ4OGMtOC4zIDE0LjMtMjMuOCAyNC00MS42IDI0SDI0MGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OGgzMmMxNy44IDAgMzMuMyA5LjcgNDEuNiAyNGwxMTAuNCAuMWMyMi4xIDAgNDAtMTcuOSA0MC00MFYyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4ek0xNDQgMjA4aDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxNDRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI3MmMwLTM1LjMgMjguNy02NCA2NC02NHptMjI0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyNDBjMC0xNy43IDE0LjMtMzIgMzItMzJoMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0Q2lyY2xlQm9sdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTQ3LjktMjI1YzQuMyAzLjcgNS40IDkuOSAyLjYgMTQuOUw0NTIuNCAzNTZINDg4YzUuMiAwIDkuOCAzLjMgMTEuNCA4LjJzLS4xIDEwLjMtNC4yIDEzLjRsLTk2IDcyYy00LjUgMy40LTEwLjggMy4yLTE1LjEtLjZzLTUuNC05LjktMi42LTE0LjlMNDExLjYgMzgwSDM3NmMtNS4yIDAtOS44LTMuMy0xMS40LTguMnMuMS0xMC4zIDQuMi0xMy40bDk2LTcyYzQuNS0zLjQgMTAuOC0zLjIgMTUuMSAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNzYuNy00My4zYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC03MiA3MmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTQwLTQwYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDE2IDM4NS40bDYwLjctNjAuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNTc2IDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tNjQgMGMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2SDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0Q2lyY2xlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTE2LTIwOHY0OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg0NDh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzg0SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg0OFYzMDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ny42IDMwMC40TDIyOC4zIDQ2OS4xYzcuNSA3IDE3LjQgMTAuOSAyNy43IDEwLjlzMjAuMi0zLjkgMjcuNy0xMC45bDIuNi0yLjRDMjY3LjIgNDM4LjYgMjU2IDQwNC42IDI1NiAzNjhjMC05Ny4yIDc4LjgtMTc2IDE3Ni0xNzZjMjguMyAwIDU1IDYuNyA3OC43IDE4LjVjLjktNi41IDEuMy0xMyAxLjMtMTkuNnYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNDU0LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQzMiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQwOS40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDMyIDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0Q3JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE5LjQgNDQuMWMyMy4zLTMuOSA0Ni44LTEuOSA2OC42IDUuM2w0OS44IDc3LjUtNzUuNCA3NS40Yy0xLjUgMS41LTIuNCAzLjYtMi4zIDUuOHMxIDQuMiAyLjYgNS43bDExMiAxMDRjMi45IDIuNyA3LjQgMi45IDEwLjUgLjNzMy44LTcgMS43LTEwLjRsLTYwLjQtOTguMSA5MC43LTc1LjZjMi42LTIuMSAzLjUtNS43IDIuNC04LjhMMjk2LjggNjEuOGMyOC41LTE2LjcgNjIuNC0yMy4yIDk1LjctMTcuNkM0NjEuNSA1NS42IDUxMiAxMTUuMiA1MTIgMTg1LjF2NS44YzAgNDEuNS0xNy4yIDgxLjItNDcuNiAxMDkuNUwyODMuNyA0NjkuMWMtNy41IDctMTcuNCAxMC45LTI3LjcgMTAuOXMtMjAuMi0zLjktMjcuNy0xMC45TDQ3LjYgMzAwLjRDMTcuMiAyNzIuMSAwIDIzMi40IDAgMTkwLjl2LTUuOGMwLTY5LjkgNTAuNS0xMjkuNSAxMTkuNC0xNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0UHVsc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI4LjMgNDY5LjFMNDcuNiAzMDAuNGMtNC4yLTMuOS04LjItOC4xLTExLjktMTIuNGg4N2MyMi42IDAgNDMtMTMuNiA1MS43LTM0LjVsMTAuNS0yNS4yIDQ5LjMgMTA5LjVjMy44IDguNSAxMi4xIDE0IDIxLjQgMTQuMXMxNy44LTUgMjItMTMuM0wzMjAgMjUzLjdsMS43IDMuNGM5LjUgMTkgMjguOSAzMSA1MC4xIDMxSDQ3Ni4zYy0zLjcgNC4zLTcuNyA4LjUtMTEuOSAxMi40TDI4My43IDQ2OS4xYy03LjUgNy0xNy40IDEwLjktMjcuNyAxMC45cy0yMC4yLTMuOS0yNy43LTEwLjl6TTUwMy43IDI0MGgtMTMyYy0zIDAtNS44LTEuNy03LjItNC40bC0yMy4yLTQ2LjNjLTQuMS04LjEtMTIuNC0xMy4zLTIxLjUtMTMuM3MtMTcuNCA1LjEtMjEuNSAxMy4zbC00MS40IDgyLjhMMjA1LjkgMTU4LjJjLTMuOS04LjctMTIuNy0xNC4zLTIyLjItMTQuMXMtMTguMSA1LjktMjEuOCAxNC44bC0zMS44IDc2LjNjLTEuMiAzLTQuMiA0LjktNy40IDQuOUgxNmMtMi42IDAtNSAuNC03LjMgMS4xQzMgMjI1LjIgMCAyMDguMiAwIDE5MC45di01LjhjMC02OS45IDUwLjUtMTI5LjUgMTE5LjQtMTQxQzE2NSAzNi41IDIxMS40IDUxLjQgMjQ0IDg0bDEyIDEyIDEyLTEyYzMyLjYtMzIuNiA3OS00Ny41IDEyNC42LTM5LjlDNDYxLjUgNTUuNiA1MTIgMTE1LjIgNTEyIDE4NS4xdjUuOGMwIDE2LjktMi44IDMzLjUtOC4zIDQ5LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3LjYgMzAwLjRMMjI4LjMgNDY5LjFjNy41IDcgMTcuNCAxMC45IDI3LjcgMTAuOXMyMC4yLTMuOSAyNy43LTEwLjlMNDY0LjQgMzAwLjRjMzAuNC0yOC4zIDQ3LjYtNjggNDcuNi0xMDkuNXYtNS44YzAtNjkuOS01MC41LTEyOS41LTExOS40LTE0MUMzNDcgMzYuNSAzMDAuNiA1MS40IDI2OCA4NEwyNTYgOTYgMjQ0IDg0Yy0zMi42LTMyLjYtNzktNDcuNS0xMjQuNi0zOS45QzUwLjUgNTUuNiAwIDExNS4yIDAgMTg1LjF2NS44YzAgNDEuNSAxNy4yIDgxLjIgNDcuNiAxMDkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVsaWNvcHRlclN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDUuMyAyMjRINTEwQzQ5NS42IDEwOC4yIDQwMy44IDE2LjQgMjg4IDJWNjYuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNHpNNTEwIDI4OEg0NDUuM0M0MzEuOSAzNjguNCAzNjguNCA0MzEuOSAyODggNDQ1LjRWNTEwYzExNS44LTE0LjQgMjA3LjYtMTA2LjIgMjIyLTIyMnpNMiAyODhDMTYuNCA0MDMuOCAxMDguMiA0OTUuNiAyMjQgNTEwVjQ0NS40QzE0My42IDQzMS45IDgwLjEgMzY4LjQgNjYuNyAyODhIMnptMC02NEg2Ni43QzgwLjEgMTQzLjYgMTQzLjYgODAuMSAyMjQgNjYuN1YyQzEwOC4yIDE2LjQgMTYuNCAxMDguMiAyIDIyNHptMjA2LTY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI4OGg5NnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY2NEgyMDhWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWxpY29wdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0djY0aDMyYzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwdjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDM4NCAzMjBjLTIwLjEgMC0zOS4xLTkuNS01MS4yLTI1LjZsLTcxLjQtOTUuMmMtMy41LTQuNy04LjMtOC4zLTEzLjctMTAuNUw0Ny4yIDE5OC4xYy05LjUtMy44LTE2LjctMTItMTkuMi0yMkw1IDgzLjlDMi40IDczLjggMTAuMSA2NCAyMC41IDY0SDQ4YzEwLjEgMCAxOS42IDQuNyAyNS42IDEyLjhMMTEyIDEyOEgzMjBWNjRIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMzg0IDMyMEg1MTJWMjg4YzAtNTMtNDMtOTYtOTYtOTZIMzg0VjMyMHpNNjMwLjYgNDI1LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTMuOSAzLjljLTI0IDI0LTU2LjYgMzcuNS05MC41IDM3LjVIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDUzNi4yYzE3IDAgMzMuMy02LjcgNDUuMy0xOC43bDMuOS0zLjljMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlbG1ldFNhZmV0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIuMyA5OS42YzAgNS42LTQuNSAxMC4xLTEwLjEgMTAuMWMtMy42IDAtNy0xLjktOC44LTUuMUwxNTcuMSA4N0M4MyAxMjMuNSAzMiAxOTkuOCAzMiAyODh2NjRINTQ0bDAtNjYuNGMtLjktODcuMi01MS43LTE2Mi40LTEyNS4xLTE5OC42bC00OCA4My45Yy0xLjggMy4yLTUuMiA1LjEtOC44IDUuMWMtNS42IDAtMTAuMS00LjUtMTAuMS0xMC4xVjY2LjMgNjRjMC0xNy43LTE0LjMtMzItMzItMzJIMjU2ek0xNi42IDM4NEM3LjQgMzg0IDAgMzkxLjQgMCA0MDAuNmMwIDQuNyAyIDkuMiA1LjggMTEuOUMyNy41IDQyOC40IDExMS44IDQ4MCAyODggNDgwczI2MC41LTUxLjYgMjgyLjItNjcuNWMzLjgtMi44IDUuOC03LjIgNS44LTExLjljMC05LjItNy40LTE2LjYtMTYuNi0xNi42SDE2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlbG1ldFVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3OS41IDIyNEM0NzEuMiA5OC45IDM2Ny4yIDAgMjQwIDBDMTA3LjUgMCAwIDEwNy41IDAgMjQwdjU2LjNDMCAzNDQuOCAzOS4yIDM4NCA4Ny43IDM4NEgyMDBoMTQuOUwzNDMuNSA1MDUuNGM0LjUgNC4yIDEwLjQgNi42IDE2LjUgNi42aDk2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM2OS41bC0xLjUtMS41VjI4OGg4MCAzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtLjV6TTMyMCA0MTcuMmwtNzgtNzMuN0wyNzQuNCAyODhIMzIwVjQxNy4yek0yODUuMyAxMDMuMWwzNC43IDUyVjExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djk2YzAgNy4xLTQuNiAxMy4zLTExLjQgMTUuM3MtMTQtLjYtMTcuOS02LjRsLTM0LjctNTJWMjA4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjExMmMwLTcuMSA0LjYtMTMuMyAxMS40LTE1LjNzMTQgLjYgMTcuOSA2LjR6TTE2MCAxMTJ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OFYxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlnaGxpZ2h0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE1IDMxNWwxNTguNC0yMTVMNDQ0LjEgNzAuNiAyMjkgMjI5IDMxNSAzMTV6bS0xODcgNWwwIDBWMjQ4LjNjMC0xNS4zIDcuMi0yOS42IDE5LjUtMzguNkw0MjAuNiA4LjRDNDI4IDIuOSA0MzcgMCA0NDYuMiAwYzExLjQgMCAyMi40IDQuNSAzMC41IDEyLjZsNTQuOCA1NC44YzguMSA4LjEgMTIuNiAxOSAxMi42IDMwLjVjMCA5LjItMi45IDE4LjItOC40IDI1LjZMMzM0LjQgMzk2LjVjLTkgMTIuMy0yMy40IDE5LjUtMzguNiAxOS41SDIyNGwtMjUuNCAyNS40Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtNTAuNy01MC43Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM0wxMjggMzIwek03IDQ2Ni4zbDYzLTYzIDcwLjYgNzAuNi0zMSAzMWMtNC41IDQuNS0xMC42IDctMTcgN0gyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTQuN2MwLTYuNCAyLjUtMTIuNSA3LTE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaWxsQXZhbGFuY2hlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS43IDQwMS45YzM0LjIgMjMuMSA4MS4xIDE5LjUgMTExLjQtMTAuOGMzNC40LTM0LjQgMzQuNC05MC4xIDAtMTI0LjRjLTI3LjgtMjcuOC02OS41LTMzLjEtMTAyLjYtMTZjLTExLjggNi4xLTE2LjQgMjAuNi0xMC4zIDMyLjNzMjAuNiAxNi40IDMyLjMgMTAuM2MxNS4xLTcuOCAzNC01LjMgNDYuNiA3LjNjMTUuNiAxNS42IDE1LjYgNDAuOSAwIDU2LjZzLTQwLjkgMTUuNi01Ni42IDBsLTgxLjctODEuN0M0MDEuMiAyNjEuMyA0MTYgMjM2LjQgNDE2IDIwOGMwLTMzLjktMjEuMS02Mi45LTUwLjktNzQuNWMxLjktNi44IDIuOS0xNCAyLjktMjEuNWMwLTQ0LjItMzUuOC04MC04MC04MGMtMjcuMyAwLTUxLjUgMTMuNy02NS45IDM0LjZDMjE2LjMgNDYuNiAxOTcuOSAzMiAxNzYgMzJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4YzAgNCAuNSA3LjkgMS40IDExLjZMNDM5LjcgNDAxLjl6TTQ4MCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0wIDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTY4LjMgODdDNDMuMSA2MS44IDAgNzkuNyAwIDExNS4zVjQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MEgzOTYuN2MzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM0w2OC4zIDg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaWxsUm9ja3NsaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Mi40IDEwMy44bDI3IDQ4YzIuOCA1IDguMiA4LjIgMTMuOSA4LjJsNTMuMyAwYzUuOCAwIDExLjEtMy4xIDEzLjktOC4ybDI3LTQ4YzIuNy00LjkgMi43LTEwLjggMC0xNS43bC0yNy00OGMtMi44LTUtOC4yLTguMi0xMy45LTguMkgyOTMuNGMtNS44IDAtMTEuMSAzLjEtMTMuOSA4LjJsLTI3IDQ4Yy0yLjcgNC45LTIuNyAxMC44IDAgMTUuN3pNNjguMyA4N0M0My4xIDYxLjggMCA3OS43IDAgMTE1LjNWNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwSDM5Ni43YzM1LjYgMCA1My41LTQzLjEgMjguMy02OC4zTDY4LjMgODd6TTUwNC4yIDQwMy42YzQuOSAyLjcgMTAuOCAyLjcgMTUuNyAwbDQ4LTI3YzUtMi44IDguMi04LjIgOC4yLTEzLjlWMzA5LjRjMC01LjgtMy4xLTExLjEtOC4yLTEzLjlsLTQ4LTI3Yy00LjktMi43LTEwLjgtMi43LTE1LjcgMGwtNDggMjdjLTUgMi44LTguMiA4LjItOC4yIDEzLjl2NTMuM2MwIDUuOCAzLjEgMTEuMSA4LjIgMTMuOWw0OCAyN3pNMTkyIDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCAyODhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXBwbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcgNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTcuMiAxNy4yYzEuOS0uMSAzLjktLjIgNS44LS4yaDMyYzExLjIgMCAyMS45IDIuMyAzMS42IDYuNUw1NDMgNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45TDU2NCAxMDEuOWM3LjYgMTIuMiAxMiAyNi43IDEyIDQyLjFjMCAxMC4yIDcuNCAxOC44IDE2LjcgMjNjMjcuOSAxMi41IDQ3LjMgNDAuNSA0Ny4zIDczYzAgMjYuMi0xMi42IDQ5LjQtMzIgNjR2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDU2MGMtOC44IDAtMTYtNy4yLTE2LTE2VjMyMEg0ODB2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2VjMxOC40Yy0xMS44LTIuNC0yMi43LTcuNC0zMi0xNC40Yy0xLjUtMS4xLTIuOS0yLjMtNC4zLTMuNWMtMTctMTQuNy0yNy43LTM2LjQtMjcuNy02MC41YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2YzAgNDQuNyAyNi4yIDgzLjIgNjQgMTAxLjJWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzcyYy0xOS44IDcuNy00MS40IDEyLTY0IDEycy00NC4yLTQuMy02NC0xMnY3NmMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzI5LjFMNDUuOSAzNjkuN2MtNS40IDEyLjEtMTkuNiAxNy42LTMxLjcgMTIuMlMtMy4zIDM2Mi40IDIuMSAzNTAuM0wyNCAzMDAuOWM1LjMtMTEuOSA4LTI0LjcgOC0zNy43QzMyIDE1NS43IDExNy4yIDY4IDIyMy44IDY0LjFsLjItLjFoNy4ySDI1NmgzMmM0MS43IDAgODMuNCAxMi4xIDExNy4yIDI1LjdjMS43LTEuOCAzLjUtMy42IDUuMy01LjJMNDA3IDgxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXptNzMgMTg1YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTg4IDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpNNDgwIDE0NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAxNmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvY2tleVB1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDI1NkMxMTQuNiAyNTYgMCAyMTMgMCAxNjBzMTE0LjYtOTYgMjU2LTk2czI1NiA0MyAyNTYgOTZzLTExNC42IDk2LTI1NiA5NnptMTkyLjMgMS44YzI0LjctOS4zIDQ2LjktMjEgNjMuNy0zNS42VjM1MmMwIDUzLTExNC42IDk2LTI1NiA5NlMwIDQwNSAwIDM1MlYyMjIuM2MxNi44IDE0LjYgMzkgMjYuMyA2My43IDM1LjZDMTE0LjUgMjc2LjkgMTgyLjUgMjg4IDI1NiAyODhzMTQxLjUtMTEuMSAxOTIuMy0zMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb2xseUJlcnJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTI3Ni44IDM4My44YzEgLjEgMi4xIC4yIDMuMiAuMmMzOS44IDAgNzIgMzIuMiA3MiA3MnYyMi43YzAgMTYuNCAxNiAyNy45IDMxLjYgMjIuOGwxMi44LTQuM2MxOC02IDM3LjMtNi41IDU1LjYtMS41bDE5LjQgNS4zYzE3LjkgNC45IDM0LjQtMTEuNiAyOS41LTI5LjVMNDk1LjYgNDUyYy01LTE4LjMtNC40LTM3LjYgMS41LTU1LjZsNC4zLTEyLjhjNS4yLTE1LjUtNi40LTMxLjYtMjIuOC0zMS42Yy0zNC42IDAtNjIuNy0yOC4xLTYyLjctNjIuN3YtMzJjMC0xNi40LTE2LTI3LjktMzEuNi0yMi44bC0xMi44IDQuM2MtMTggNi0zNy4zIDYuNS01NS42IDEuNWwtMjkuNi04LjFjLTIuOS0uOC01LjktMS04LjctLjdjNC4yIDkuNyA1LjggMjAuOCAzLjcgMzIuM0wyNzUgMjk4LjdjLTEuNSA4LjQtMS40IDE3IC41IDI1LjNsNS4zIDIzLjljMi44IDEyLjcgMS4xIDI1LjItNCAzNS45ek0xMjcuNiAyMzQuNWMtMTUuNS01LjItMzEuNiA2LjQtMzEuNiAyMi44djMyQzk2IDMyMy45IDY3LjkgMzUyIDMzLjMgMzUyYy0xNi40IDAtMjcuOSAxNi0yMi44IDMxLjZsNC4zIDEyLjhjNiAxOCA2LjUgMzcuMyAxLjUgNTUuNmwtNS4zIDE5LjRDNi4yIDQ4OS40IDIyLjYgNTA1LjggNDAuNSA1MDFMNjAgNDk1LjZjMTguMy01IDM3LjYtNC41IDU1LjYgMS41bDEyLjggNC4zYzE1LjUgNS4yIDMxLjYtNi40IDMxLjYtMjIuOHYtMzJjMC0zNC42IDI4LjEtNjIuNyA2Mi43LTYyLjdjMTYuNCAwIDI3LjktMTYgMjIuOC0zMS42bC00LjMtMTIuOGMtNi0xOC02LjUtMzcuMy0xLjUtNTUuNmw1LjMtMTkuNGM0LjktMTcuOS0xMS42LTM0LjQtMjkuNS0yOS41TDE5NiAyNDAuNGMtMTguMyA1LTM3LjYgNC40LTU1LjYtMS41bC0xMi44LTQuM3pNMzg0IDE0NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3JzZUhlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0VjMxNi45YzAtMTA4LjQgNjguMy0yMDUuMSAxNzAuNS0yNDEuM0w0MDQuMiAxNS41QzQyNS42IDcuOSA0NDggMjMuOCA0NDggNDYuNGMwIDExLTUuNSAyMS4yLTE0LjYgMjcuM0w0MDAgOTZjNDguMSAwIDkxLjIgMjkuOCAxMDguMSA3NC45bDQ4LjYgMTI5LjVjMTEuOCAzMS40IDQuMSA2Ni44LTE5LjYgOTAuNWMtMTYgMTYtMzcuOCAyNS4xLTYwLjUgMjUuMWgtMy40Yy0yNi4xIDAtNTAuOS0xMS42LTY3LjYtMzEuN2wtMzIuMy0zOC43Yy0xMS43IDQuMS0yNC4yIDYuNC0zNy4zIDYuNGwtLjEgMCAwIDBjLTYuMyAwLTEyLjUtLjUtMTguNi0xLjVjLTMuNi0uNi03LjItMS40LTEwLjctMi4zbDAgMGMtMjguOS03LjgtNTMuMS0yNi44LTY3LjgtNTIuMmMtNC40LTcuNi0xNC4yLTEwLjMtMjEuOS01LjhzLTEwLjMgMTQuMi01LjggMjEuOWMyNCA0MS41IDY4LjMgNzAgMTE5LjMgNzEuOWw0Ny4yIDcwLjhjNCA2LjEgNi4yIDEzLjIgNi4yIDIwLjRjMCAyMC4zLTE2LjUgMzYuOC0zNi44IDM2LjhIMTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHpNMzkyIDIyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAyMzguMVYxNjBoMTZsOS44IDE5LjZjMTIuNSAyNS4xIDQyLjIgMzYuNCA2OC4zIDI2YzIwLjUtOC4yIDMzLjktMjggMzMuOS01MC4xVjgwYzAtMTkuMS04LjQtMzYuMy0yMS43LTQ4SDU2MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg0ODAgNDQ4QzM3Ny4zIDAgMzIwIDU3LjMgMzIwIDEyOEgyMjQgMjAzLjIgMTQ4LjhjLTMwLjcgMC01Ny42IDE2LjMtNzIuNSA0MC44QzMzLjIgMTc0LjUgMCAyMTEuNCAwIDI1NnY1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI1NmMwLTEzLjQgNi42LTI1LjIgMTYuNy0zMi41YzEuNiAxMyA2LjMgMjUuNCAxMy42IDM2LjRsMjguMiA0Mi40YzguMyAxMi40IDYuNCAyOC43LTEuMiA0MS42Yy0xNi41IDI4LTIwLjYgNjIuMi0xMCA5My45bDE3LjUgNTIuNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45aDMzLjdjMjEuOCAwIDM3LjMtMjEuNCAzMC40LTQyLjFsLTIwLjgtNjIuNWMtMi4xLTYuNC0uNS0xMy40IDQuMy0xOC4ybDEyLjctMTIuN2MxMy4yLTEzLjIgMjAuNi0zMS4xIDIwLjYtNDkuN2MwLTIuMy0uMS00LjYtLjMtNi45bDg0IDI0YzQuMSAxLjIgOC4yIDIuMSAxMi4zIDIuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzE1LjdjMTkuMi0xOS4yIDMxLjUtNDUuNyAzMi03NS43aDB2LTEuOXpNNDk2IDY0YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9zcGl0YWxVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDBDMjEuNSAwIDAgMjEuNSAwIDQ4VjI1NkgxNDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMHY2NEgxNDRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMHY4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyNjUuOWMtNi4zLTEwLjItOS45LTIyLjItOS45LTM1LjFjMC00Ni45IDI1LjgtODcuOCA2NC0xMDkuMlYyNzEuOCA0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OHpNMTUyIDY0aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYyNGgyNGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDE4NHYyNGMwIDguOC03LjIgMTYtMTYgMTZIMTUyYy04LjggMC0xNi03LjItMTYtMTZWMTUySDExMmMtOC44IDAtMTYtNy4yLTE2LTE2VjEyMGMwLTguOCA3LjItMTYgMTYtMTZoMjRWODBjMC04LjggNy4yLTE2IDE2LTE2ek01MTIgMjcyYTgwIDgwIDAgMSAwIC0xNjAgMCA4MCA4MCAwIDEgMCAxNjAgMHpNMjg4IDQ3Ny4xYzAgMTkuMyAxNS42IDM0LjkgMzQuOSAzNC45SDU0MS4xYzE5LjMgMCAzNC45LTE1LjYgMzQuOS0zNC45YzAtNTEuNC00MS43LTkzLjEtOTMuMS05My4xSDM4MS4xYy01MS40IDAtOTMuMSA0MS43LTkzLjEgOTMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDQwMGMyNi41IDAgNDggMjEuNSA0OCA0OFY1MTJIMzY4VjQzMmMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHY4MEgxOTJWNDh6TTQ4IDk2SDE2MFY1MTJINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjMyMEg4MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgwVjIyNEg4MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgwVjE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHptNTQ0IDBjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NDhINTYwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDgwdjY0SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4MFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDgwVjk2SDU5MnpNMzEyIDY0Yy04LjggMC0xNiA3LjItMTYgMTZ2MjRIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDI0djI0YzAgOC44IDcuMiAxNiAxNiAxNmgxNmM4LjggMCAxNi03LjIgMTYtMTZWMTUyaDI0YzguOCAwIDE2LTcuMiAxNi0xNlYxMjBjMC04LjgtNy4yLTE2LTE2LTE2SDM0NFY4MGMwLTguOC03LjItMTYtMTYtMTZIMzEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3RUdWJQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djUuMmMwIDM0IDE0LjQgNjYuNCAzOS43IDg5LjJsMTYuNCAxNC44YzE1LjIgMTMuNyAyMy44IDMzLjEgMjMuOCA1My41VjIwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE4Ni44YzAtMzQtMTQuNC02Ni40LTM5LjctODkuMkwyOTUuOCA4Mi44QzI4MC43IDY5LjEgMjcyIDQ5LjcgMjcyIDI5LjJWMjR6TTAgMzIwdjE2VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDI3Ny4zYy0xMy44IDAtMjcuMy00LjUtMzguNC0xMi44bC04NS4zLTY0QzEzNyAxNjYuNyAxMTYuOCAxNjAgOTYgMTYwYy01MyAwLTk2IDQzLTk2IDk2djY0em0xMjggMTZ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bTgwLTE2YzguOCAwIDE2IDcuMiAxNiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em0xMTIgMTZ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bTgwLTE2YzguOCAwIDE2IDcuMiAxNiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2ek0zNjAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NS4yYzAgMzQgMTQuNCA2Ni40IDM5LjcgODkuMmwxNi40IDE0LjhjMTUuMiAxMy43IDIzLjggMzMuMSAyMy44IDUzLjVWMjAwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTg2LjhjMC0zNC0xNC40LTY2LjQtMzkuNy04OS4yTDQwNy44IDgyLjhDMzkyLjcgNjkuMSAzODQgNDkuNyAzODQgMjkuMlYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNNjQgMTI4QTY0IDY0IDAgMSAwIDY0IDBhNjQgNjQgMCAxIDAgMCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdGRvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguNiAyMy40YzMxLjIgMzEuMiAzMS4yIDgxLjkgMCAxMTMuMWwtMzUyIDM1MmMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwcy0zMS4yLTgxLjkgMC0xMTMuMWwzNTItMzUyYzMxLjItMzEuMiA4MS45LTMxLjIgMTEzLjEgMHpNNDQzLjMgOTIuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBjLTEyLjUgMTIuNS0yMy44IDE1LjEtMzcuNSAxNy42bC0yLjUgLjRjLTEzLjggMi41LTMxLjYgNS42LTQ4IDIyYy0xNi43IDE2LjctMjAuOSAzNi0yNC4xIDUwLjlsMCAwdjBsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFzLTIwLjUgMTIuMy0zNi4xIDE1LjdsLTEgLjJjLTE0LjkgMy4yLTM0LjIgNy40LTUwLjkgMjQuMXMtMjAuOSAzNi0yNC4xIDUwLjlsLS4yIDFjLTMuNCAxNS42LTYgMjYuNC0xNS43IDM2LjFjLTkuMiA5LjItMTggMTAuOC0zMi43IDEzLjRsMCAwLS45IC4yYy0xNS42IDIuOC0zNC45IDYuOS01NC40IDI2LjRjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGMxMi41LTEyLjUgMjMuOC0xNS4xIDM3LjUtMTcuNmwyLjUtLjRjMTMuOC0yLjUgMzEuNi01LjYgNDgtMjJjMTYuNy0xNi43IDIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMXMyMC41LTEyLjMgMzYuMS0xNS43bDEtLjJjMTQuOS0zLjIgMzQuMi03LjQgNTAuOS0yNC4xczIwLjktMzYgMjQuMS01MC45bC4yLTFjMy40LTE1LjYgNi0yNi40IDE1LjctMzYuMWM5LjItOS4yIDE4LTEwLjggMzIuNy0xMy40bC45LS4yYzE1LjYtMi44IDM0LjktNi45IDU0LjQtMjYuNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpNMTkxLjIgNDc5LjJsMjg4LTI4OEw0OTUgMjA3YzEwLjkgMTAuOSAxNyAyNS42IDE3IDQxcy02LjEgMzAuMS0xNyA0MUwyODkgNDk1Yy0xMC45IDEwLjktMjUuNiAxNy00MSAxN3MtMzAuMS02LjEtNDEtMTdsLTE1LjgtMTUuOHpNMTcgMzA1QzYuMSAyOTQuMSAwIDI3OS40IDAgMjY0czYuMS0zMC4xIDE3LTQxTDIyMyAxN0MyMzMuOSA2LjEgMjQ4LjYgMCAyNjQgMHMzMC4xIDYuMSA0MSAxN2wxNS44IDE1LjgtMjg4IDI4OEwxNyAzMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMlY0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzA0VjQ2NGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHY0OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMlY2NEMxNC4zIDY0IDAgNDkuNyAwIDMyem05NiA4MHYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ6TTI0MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgyNDB6bTExMiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjExMmMwLTguOC03LjItMTYtMTYtMTZIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZ6TTExMiAxOTJjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMTEyem0xMTIgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNDQtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMzY4ek0zMjggMzg0YzEzLjMgMCAyNC4zLTEwLjkgMjEtMjMuOGMtMTAuNi00MS41LTQ4LjItNzIuMi05My03Mi4ycy04Mi41IDMwLjctOTMgNzIuMmMtMy4zIDEyLjggNy44IDIzLjggMjEgMjMuOEgzMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc0VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlMxNC4zIDY0IDMyIDY0Vjc1YzAgNDIuNCAxNi45IDgzLjEgNDYuOSAxMTMuMUwxNDYuNyAyNTYgNzguOSAzMjMuOUM0OC45IDM1My45IDMyIDM5NC42IDMyIDQzN3YxMWMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NCAzMjBoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWNDM3YzAtNDIuNC0xNi45LTgzLjEtNDYuOS0xMTMuMUwyMzcuMyAyNTZsNjcuOS02Ny45YzMwLTMwIDQ2LjktNzAuNyA0Ni45LTExMy4xVjY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyMCA2NCAzMnpNOTYgNzVWNjRIMjg4Vjc1YzAgMjUuNS0xMC4xIDQ5LjktMjguMSA2Ny45TDE5MiAyMTAuN2wtNjcuOS02Ny45QzEwNi4xIDEyNC45IDk2IDEwMC40IDk2IDc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3NIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRWNzVjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xTDE0Ni43IDI1NiA3OC45IDMyMy45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3djExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0IDMyMGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlY0MzdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xTDIzNy4zIDI1Nmw2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFWNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwIDY0IDMyek05NiA3NVY2NEgyODhWNzVjMCAxOS01LjYgMzcuNC0xNiA1M0gxMTJjLTEwLjMtMTUuNi0xNi0zNC0xNi01M3ptMTYgMzA5YzMuNS01LjMgNy42LTEwLjMgMTIuMS0xNC45TDE5MiAzMDEuM2w2Ny45IDY3LjljNC42IDQuNiA4LjYgOS42IDEyLjEgMTQuOUgxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc1N0YXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMyUzE0LjMgNjQgMzIgNjRWNzVjMCA0Mi40IDE2LjkgODMuMSA0Ni45IDExMy4xTDE0Ni43IDI1NiA3OC45IDMyMy45QzQ4LjkgMzUzLjkgMzIgMzk0LjYgMzIgNDM3djExYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0IDMyMGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlY0MzdjMC00Mi40LTE2LjktODMuMS00Ni45LTExMy4xTDIzNy4zIDI1Nmw2Ny45LTY3LjljMzAtMzAgNDYuOS03MC43IDQ2LjktMTEzLjFWNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwIDY0IDMyek0yODggNDM3djExSDk2VjQzN2MwLTI1LjUgMTAuMS00OS45IDI4LjEtNjcuOUwxOTIgMzAxLjNsNjcuOSA2Ny45YzE4IDE4IDI4LjEgNDIuNCAyOC4xIDY3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEg2NCAzMjBoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWNzVjMCA0Mi40LTE2LjkgODMuMS00Ni45IDExMy4xTDIzNy4zIDI1Nmw2Ny45IDY3LjljMzAgMzAgNDYuOSA3MC43IDQ2LjkgMTEzLjF2MTFjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzIwIDY0IDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjQzN2MwLTQyLjQgMTYuOS04My4xIDQ2LjktMTEzLjFMMTQ2LjcgMjU2IDc4LjkgMTg4LjFDNDguOSAxNTguMSAzMiAxMTcuNCAzMiA3NVY2NEMxNC4zIDY0IDAgNDkuNyAwIDMyek05NiA2NFY3NWMwIDI1LjUgMTAuMSA0OS45IDI4LjEgNjcuOUwxOTIgMjEwLjdsNjcuOS02Ny45YzE4LTE4IDI4LjEtNDIuNCAyOC4xLTY3LjlWNjRIOTZ6bTAgMzg0SDI4OFY0MzdjMC0yNS41LTEwLjEtNDkuOS0yOC4xLTY3LjlMMTkyIDMwMS4zbC02Ny45IDY3LjljLTE4IDE4LTI4LjEgNDIuNC0yOC4xIDY3Ljl2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2hpbW5leUNyYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xaC0zMmwuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zSDMyNi40TDI4OCA0NDhsODAuOC02Ny4zYzcuOC02LjUgNy42LTE4LjYtLjQtMjQuOUwyNTAuNiAyNjMuMmMtMTQuNi0xMS41LTMzLjggNy0yMi44IDIyTDI4OCAzNjhsLTg1LjUgNzEuMmMtNi4xIDUtNy41IDEzLjgtMy41IDIwLjVMMjMwLjQgNTEySDEyOC4xYy0zNS4zIDAtNjQtMjguNy02NC02NFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNDE2IDEwMC43VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjE4NWw1Mi44IDQ2LjRjOCA3IDEyIDE1IDExIDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNoaW1uZXlNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NS44IDI1NS41YzAgMTgtMTUgMzIuMS0zMiAzMi4xaC0zMmwuNyAxNjAuMmMuMiAzNS41LTI4LjUgNjQuMy02NCA2NC4zSDEyOC4xYy0zNS4zIDAtNjQtMjguNy02NC02NFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNDE2IDEwMC43VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjE4NWw1Mi44IDQ2LjRjOCA3IDEyIDE1IDExIDI0ek0yNzIgMTkyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwaDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDMyMFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VDaGltbmV5VXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMNTEyIDE4NVY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2LjdMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFoMzJWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OC41YzM1LjUgMCA2NC4yLTI4LjggNjQtNjQuM2wtLjctMTYwLjJoMzJ6TTI4OCAxNjBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTE3NiA0MDBjMC00NC4yIDM1LjgtODAgODAtODBoNjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2SDE5MmMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNoaW1uZXlXaW5kb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFoLTMybC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0MTYgMTAwLjdWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTg1bDUyLjggNDYuNGM4IDcgMTIgMTUgMTEgMjR6TTI0OCAxOTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djgwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlQ2hpbW5leSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMNTEyIDE4NVY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2LjdMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFoMzJ2NjkuN2MtLjEgLjktLjEgMS44LS4xIDIuOFY0NzJjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMTZjMS4yIDAgMi40LS4xIDMuNi0uMmMxLjUgLjEgMyAuMiA0LjUgLjJIMTYwaDI0YzIyLjEgMCA0MC0xNy45IDQwLTQwVjQ0OCAzODRjMC0xNy43IDE0LjMtMzIgMzItMzJoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjQgMjRjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMjQgMzIuNWMxLjQgMCAyLjggMCA0LjItLjFjMS4xIC4xIDIuMiAuMSAzLjMgLjFoMTZjMjIuMSAwIDQwLTE3LjkgNDAtNDBWNDU1LjhjLjMtMi42IC41LTUuMyAuNS04LjFsLS43LTE2MC4yaDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMnY2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44VjQ3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MGgxNmMxLjIgMCAyLjQtLjEgMy42LS4yYzEuNSAuMSAzIC4yIDQuNSAuMkgxNjBoMjRjMjIuMSAwIDQwLTE3LjkgNDAtNDBWNDQ4IDM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGwuNyAwek02NDAgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS03Ni43LTQzLjNjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZsLTcyIDcyYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMGwtNDAtNDBjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0ODAgMzg1LjRsNjAuNy02MC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMnY2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44VjQ3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MGgxNmMxLjIgMCAyLjQtLjEgMy42LS4yYzEuNSAuMSAzIC4yIDQuNSAuMkgxNjBoMjRjMjIuMSAwIDQwLTE3LjkgNDAtNDBWNDQ4IDM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGwuNyAwek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUNpcmNsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC43IDM1MmM4LjEtODkuNyA4My41LTE2MCAxNzUuMy0xNjBjOC45IDAgMTcuNiAuNyAyNi4xIDEuOUwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMnY2OS43Yy0uMSAuOS0uMSAxLjgtLjEgMi44VjQ3MmMwIDIyLjEgMTcuOSA0MCA0MCA0MGgxNmMxLjIgMCAyLjQtLjEgMy42LS4yYzEuNSAuMSAzIC4yIDQuNSAuMkgxNjBoMjRjMjIuMSAwIDQwLTE3LjkgNDAtNDBWNDQ4IDM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGwuNyAwek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNTkuMy0xODAuN0w1MTguNiAzNjhsMzYuNyAzNi43YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42cy0xNi40IDYuMi0yMi42IDBMNDk2IDM5MC42bC0zNi43IDM2LjdjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZMNDczLjQgMzY4bC0zNi43LTM2LjdjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEw0OTYgMzQ1LjRsMzYuNy0zNi43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VDcmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDMuOCAyODcuNmMxNyAwIDMyLTE0IDMyLTMyLjFjMS05LTMtMTctMTEtMjRMMzA5LjUgN2MtNi01LTE0LTctMjEtN3MtMTUgMS0yMiA4TDEwIDIzMS41Yy03IDctMTAgMTUtMTAgMjRjMCAxOCAxNCAzMi4xIDMyIDMyLjFoMzJWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDIzMC40bC0zMS4zLTUyLjJjLTQuMS02LjgtMi42LTE1LjUgMy41LTIwLjVMMjg4IDM2OGwtNjAuMi04Mi44Yy0xMC45LTE1IDguMi0zMy41IDIyLjgtMjJsMTE3LjkgOTIuNmM4IDYuMyA4LjIgMTguNCAuNCAyNC45TDI4OCA0NDhsMzguNCA2NEg0NDguNWMzNS41IDAgNjQuMi0yOC44IDY0LTY0LjNsLS43LTE2MC4yaDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDM1MC4xbDAgMS45SDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQgMjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBIMTYwIDEyOC4xYy0xLjUgMC0zLS4xLTQuNS0uMmMtMS4yIC4xLTIuNCAuMi0zLjYgLjJIMTA0Yy0yMi4xIDAtNDAtMTcuOS00MC00MFYzNjBjMC0uOSAwLTEuOSAuMS0yLjhWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDQ0Ny4zIDEyOC4xYy0xMi4zLTEtMjUgMy0zNC44IDExLjdjLTM1LjQgMzEuNi02NS42IDY3LjctODcuMyAxMDIuOEMzMDQuMyAyNzYuNSAyODggMzE0LjkgMjg4IDM1MC4xek00ODAgNTEyYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTc2LjcgNjIuNS0xNDQuNyAxMDcuMi0xNzkuNGM1LTMuOSAxMC45LTUuOCAxNi44LTUuOGM3LjktLjEgMTYgMy4xIDIyIDkuMmw0NiA0NiAxMS4zLTExLjNjMTEuNy0xMS43IDMwLjYtMTIuNyA0Mi4zLTFDNjI0LjUgMjY4IDY0MCAzMjAuMiA2NDAgMzUyYzAgODguNC03MS42IDE2MC0xNjAgMTYwem02NC0xMTEuOGMwLTM2LjUtMzctNzMtNTQuOC04OC40Yy01LjQtNC43LTEzLjEtNC43LTE4LjUgMEM0NTMgMzI3LjEgNDE2IDM2My42IDQxNiA0MDAuMmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUZsYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjE5MiA1MTJoNjRWMTkySDYyNGM4LjggMCAxNi03LjIgMTYtMTZWNDhjMC04LjgtNy4yLTE2LTE2LTE2SDUxMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDE2IDE1OUwyNzYuOCAzOS43Yy0xMi0xMC4zLTI5LjctMTAuMy00MS43IDBsLTIyNCAxOTJDMSAyNDAuNC0yLjcgMjU0LjUgMiAyNjcuMVMxOC42IDI4OCAzMiAyODhINjRWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NC43bC4yIDBoLTFWMTU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUZsb29kV2F0ZXJDaXJjbGVBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNDRBMTQ0IDE0NCAwIDEgMCAwIDE0NGExNDQgMTQ0IDAgMSAwIDI4OCAwek0xNDAuNyA3Ni43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDU2IDU2YzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42bC01NiA1NmMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkwxNjkuNCAxNjBIODBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoODkuNEwxNDAuNyA5OS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnpNMzIwIDE0NGMwIDU3LjMtMjcuNCAxMDguMi02OS44IDE0MC4zYzExLjgtMy42IDIzLTkuNCAzMy0xNi4yYzIyLjEtMTUuNSA1MS42LTE1LjUgNzMuNyAwYzE4LjQgMTIuNyAzOS42IDIwLjMgNTkuMiAyMC4zYzE5IDAgNDEuMi03LjkgNTkuMi0yMC4zYzIzLjgtMTYuNyA1NS44LTE1LjQgNzguMSAzLjRjMi4xIDEuNyA0LjIgMy4zIDYuNSA0LjlsLS4zLTg0LjRINTc2YzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFzLS40LTI3LjYtMTEuNi0zNS44bC0xNzYtMTI4QzQwNy42LTIgMzkyLjQtMiAzODEuMiA2LjFMMzAxIDY0LjRjMTIuMSAyMy45IDE5IDUwLjkgMTkgNzkuNnptMTguNSAxNjUuOWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNzkgMzI1LjQgMjUxLjUgMzM2IDIyNCAzMzZjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxNTguNSAzODkuNyAxOTEgNDAwIDIyNCA0MDBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNiAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNS0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQ3MS40IDMyNS4yIDQ0Mi45IDMzNiA0MTYgMzM2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjF6bTAgMTEyYy0xMS4xLTcuOS0yNS45LTcuOS0zNyAwQzI3OSA0MzcuNCAyNTEuNSA0NDggMjI0IDQ0OGMtMjYuOSAwLTU1LjMtMTAuOC03Ny40LTI2LjFsMCAwYy0xMS45LTguNS0yOC4xLTcuOC0zOS4yIDEuN2MtMTQuNCAxMS45LTMyLjUgMjEtNTAuNiAyNS4yYy0xNy4yIDQtMjcuOSAyMS4yLTIzLjkgMzguNHMyMS4yIDI3LjkgMzguNCAyMy45YzI0LjUtNS43IDQ0LjktMTYuNSA1OC4yLTI1QzE1OC41IDUwMS43IDE5MSA1MTIgMjI0IDUxMmMzMS45IDAgNjAuNi05LjkgODAuNC0xOC45YzUuOC0yLjcgMTEuMS01LjMgMTUuNi03LjdjNC41IDIuNCA5LjcgNS4xIDE1LjYgNy43YzE5LjggOSA0OC42IDE4LjkgODAuNCAxOC45YzMzIDAgNjUuNS0xMC4zIDk0LjUtMjUuOGMxMy40IDguNCAzMy43IDE5LjMgNTguMiAyNWMxNy4yIDQgMzQuNC02LjcgMzguNC0yMy45cy02LjctMzQuNC0yMy45LTM4LjRjLTE4LjEtNC4yLTM2LjItMTMuMy01MC42LTI1LjJjLTExLjEtOS40LTI3LjMtMTAuMS0zOS4yLTEuN2wwIDBDNDcxLjQgNDM3LjIgNDQyLjkgNDQ4IDQxNiA0NDhjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VGbG9vZFdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNi44IDYuMUMyOTUuNi0yIDI4MC40LTIgMjY5LjIgNi4xbC0xNzYgMTI4Yy0xMS4yIDguMi0xNS45IDIyLjYtMTEuNiAzNS44Uzk4LjEgMTkyIDExMiAxOTJoMTZ2NzNjMS43IDEgMy4zIDIgNC45IDMuMWMxOCAxMi40IDQwLjEgMjAuMyA1OS4yIDIwLjNjMjEuMSAwIDQyLTguNSA1OS4yLTIwLjNjMjIuMS0xNS41IDUxLjYtMTUuNSA3My43IDBjMTguNCAxMi43IDM5LjYgMjAuMyA1OS4yIDIwLjNjMTkgMCA0MS4yLTcuOSA1OS4yLTIwLjNjMS41LTEgMy0yIDQuNS0yLjlsLS4zLTczLjJINDY0YzEzLjkgMCAyNi4xLTguOSAzMC40LTIyLjFzLS40LTI3LjYtMTEuNi0zNS44bC0xNzYtMTI4ek0yNjkuNSAzMDkuOUMyNDcgMzI1LjQgMjE5LjUgMzM2IDE5MiAzMzZjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSAzODkuNyAxNTkgNDAwIDE5MiA0MDBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNS0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDMyNS4yIDQxMC45IDMzNiAzODQgMzM2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjFjLTExLjEtNy45LTI1LjktNy45LTM3IDB6TTM4NCA0NDhjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNDcgNDM3LjQgMjE5LjUgNDQ4IDE5MiA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA1MDEuNyAxNTkgNTEyIDE5MiA1MTJjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTguMyA4LjVjMTIuMy0xMS4zIDMxLjItMTEuMyA0My40IDBsMjA4IDE5MmM2LjcgNi4yIDEwLjMgMTQuOCAxMC4zIDIzLjVIMzM2Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN1YyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmg2NFY0MTZIMTEyYy0yNi41IDAtNDgtMjEuNS00OC00OFYyNTZIMzJjLTEzLjIgMC0yNS04LjEtMjkuOC0yMC4zcy0xLjYtMjYuMiA4LjEtMzUuMmwyMDgtMTkyek0zNTIgMzA0VjQ0OEg1NDRWMzA0SDM1MnptLTQ4LTE2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDU2MGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0NDhoMzJjOC44IDAgMTYgNy4yIDE2IDE2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDU0NCAzNTIgMzA0Yy0yNi41IDAtNDgtMjEuNS00OC00OGMwLTguOCA3LjItMTYgMTYtMTZoMzJWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ4MGMwIDExLjcgMy4xIDIyLjYgOC42IDMySDM5MmMtMjIuMSAwLTQwLTE3LjktNDAtNDBWNDQ4IDM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0IDI0YzAgMjIuMS0xNy45IDQwLTQwIDQwSDE2MCAxMjguMWMtMS41IDAtMy0uMS00LjUtLjJjLTEuMiAuMS0yLjQgLjItMy42IC4ySDEwNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBWMzYwYzAtLjkgMC0xLjkgLjEtMi44VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w0OTAuNyAxNjYuM0M0NDcuMiAxODEuNyA0MTYgMjIzLjIgNDE2IDI3MnYyNC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40VjQ4MHpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDhoNjRWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MHY0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJWMjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZU1lZGljYWxDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0SDEyOC4xYy0zNS4zIDAtNjQtMjguNy02NC02NFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0SDMyMFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2em0zMiAwYTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIxMS4zLTQzLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQ4MCAzODUuNGwtMjguNy0yOC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDcyLTcyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZU1lZGljYWxDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzY4YzAgNTkuNSAyOS41IDExMi4xIDc0LjggMTQ0SDEyOC4xYy0zNS4zIDAtNjQtMjguNy02NC02NFYyODcuNkgzMmMtMTggMC0zMi0xNC0zMi0zMi4xYzAtOSAzLTE3IDEwLTI0TDI2Ni40IDhjNy03IDE1LTggMjItOHMxNSAyIDIxIDdMNTIyLjEgMTkzLjljLTguNS0xLjMtMTcuMy0xLjktMjYuMS0xLjljLTU0LjcgMC0xMDMuNSAyNC45LTEzNS44IDY0SDMyMFYyMDhjMC04LjgtNy4yLTE2LTE2LTE2SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDIwOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2ek00OTYgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0wLTE5MmMtOC44IDAtMTYgNy4yLTE2IDE2djgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjg4YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VNZWRpY2FsQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDM2OGMwIDU5LjUgMjkuNSAxMTIuMSA3NC44IDE0NEgxMjguMWMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDUyMi4xIDE5My45Yy04LjUtMS4zLTE3LjMtMS45LTI2LjEtMS45Yy01NC43IDAtMTAzLjUgMjQuOS0xMzUuOCA2NEgzMjBWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnpNNDk2IDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTIyLjYgMTQ0bDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwTDQ5NiAzNDUuNGwtMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDQ3My40IDM2OGwtMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDk2IDM5MC42bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZMNTE4LjYgMzY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZU1lZGljYWxGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMySDYyNGM4LjggMCAxNiA3LjIgMTYgMTZWMTc2YzAgOC44LTcuMiAxNi0xNiAxNkg1MTJWNTEySDQ0OFYxOTIgMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTI3Ni44IDM5LjdMNDE2IDE1OVY1MTJoMWwtLjIgMEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjg4SDMyYy0xMy40IDAtMjUuNC04LjMtMzAtMjAuOXMtMS0yNi43IDkuMi0zNS40bDIyNC0xOTJjMTItMTAuMyAyOS43LTEwLjMgNDEuNyAwek0yMjQgMjA4djQ4SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGg0OGM4LjggMCAxNi03LjIgMTYtMTZWMjcyYzAtOC44LTcuMi0xNi0xNi0xNkgyODhWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2VNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0My44IDI4Ny42YzE3IDAgMzItMTQgMzItMzIuMWMxLTktMy0xNy0xMS0yNEwzMDkuNSA3Yy02LTUtMTQtNy0yMS03cy0xNSAxLTIyIDhMMTAgMjMxLjVjLTcgNy0xMCAxNS0xMCAyNGMwIDE4IDE0IDMyLjEgMzIgMzIuMWgzMlY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4LjVjMzUuNSAwIDY0LjItMjguOCA2NC02NC4zbC0uNy0xNjAuMmgzMnpNMjU2IDIwOGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzIwdjQ4YzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYzMjBIMjA4Yy04LjggMC0xNi03LjItMTYtMTZWMjcyYzAtOC44IDcuMi0xNiAxNi0xNmg0OFYyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlU2lnbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Ny43IDguNWMtMTIuMy0xMS4zLTMxLjItMTEuMy00My40IDBsLTIwOCAxOTJjLTkuNCA4LjYtMTIuNyAyMi04LjUgMzRjODcuMSAyNS4zIDE1NS42IDk0LjIgMTgwLjMgMTgxLjZINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1NmgzMmMxMy4yIDAgMjUtOC4xIDI5LjgtMjAuM3MxLjYtMjYuMi04LjEtMzUuMmwtMjA4LTE5MnpNMjg4IDIwOGMwLTguOCA3LjItMTYgMTYtMTZoNjRjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkgzMDRjLTguOCAwLTE2LTcuMi0xNi0xNlYyMDh6TTI0IDI1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGMxMDEuNiAwIDE4NCA4Mi40IDE4NCAxODRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTEyOC4xLTEwMy45LTIzMi0yMzItMjMyem04IDI1NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTAgMzc2YzAgMTMuMyAxMC43IDI0IDI0IDI0YzQ4LjYgMCA4OCAzOS40IDg4IDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC03NS4xLTYwLjktMTM2LTEzNi0xMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZVRzdW5hbWkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAuOCAxMzYuNUMxMDQuOSA5My44IDE1Mi42IDY0IDIwOSA2NGMxNi45IDAgMzMuMSAyLjcgNDguMiA3LjdjMTYuOCA1LjUgMzQuOS0zLjYgNDAuNC0yMC40cy0zLjYtMzQuOS0yMC40LTQwLjRDMjU1LjggMy44IDIzMi44IDAgMjA5IDBDOTUuMiAwIDAgODggMCAyMDBjMCA5MS42IDUzLjUgMTcyLjEgMTQyLjIgMTk0LjFjMTMuNCAzLjggMjcuNSA1LjkgNDIuMiA1LjljLjcgMCAxLjQgMCAyLjEtLjFjMS44IDAgMy43IC4xIDUuNSAuMWwwIDBjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNS0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDMyNS4yIDQxMC45IDMzNiAzODQgMzM2Yy0yNy41IDAtNTUtMTAuNi03Ny41LTI2LjFjLTExLjEtNy45LTI1LjktNy45LTM3IDBjLTIyLjQgMTUuNS00OS45IDI2LjEtNzcuNCAyNi4xYzAgMC0uMSAwLS4xIDBjLTEyLjQgMC0yNC0xLjUtMzQuOS00LjNDMTIxLjYgMzIwLjIgOTYgMjg3IDk2IDI0OGMwLTQ4LjUgMzkuNS04OCA4OC40LTg4YzEzLjUgMCAyNi4xIDMgMzcuNSA4LjNjMTYgNy41IDM1LjEgLjYgNDIuNS0xNS41cy42LTM1LjEtMTUuNS00Mi41QzIyOS4zIDEwMS4xIDIwNy40IDk2IDE4NC40IDk2Yy00MCAwLTc2LjQgMTUuNC0xMDMuNiA0MC41em0yNTItMTguMWMtOC4xIDYtMTIuOCAxNS41LTEyLjggMjUuNlYyNjVjMS42IDEgMy4zIDIgNC44IDMuMWMxOC40IDEyLjcgMzkuNiAyMC4zIDU5LjIgMjAuM2MxOSAwIDQxLjItNy45IDU5LjItMjAuM2MyMy44LTE2LjcgNTUuOC0xNS4zIDc4LjEgMy40YzEwLjYgOC44IDI0LjIgMTUuNiAzNy4zIDE4LjZjNS44IDEuNCAxMS4yIDMuNCAxNi4yIDYuMmMuNy0yLjcgMS4xLTUuNSAxLjEtOC40bC0uNC0xNDRjMC0xMC00LjctMTkuNC0xMi43LTI1LjVsLTk1LjUtNzJjLTExLjQtOC42LTI3LjEtOC42LTM4LjUgMGwtOTYgNzJ6TTM4NCA0NDhjLTI3LjUgMC01NS0xMC42LTc3LjUtMjYuMWMtMTEuMS03LjktMjUuOS03LjktMzcgMEMyNDcgNDM3LjQgMjE5LjUgNDQ4IDE5MiA0NDhjLTI2LjkgMC01NS4zLTEwLjgtNzcuNC0yNi4xbDAgMGMtMTEuOS04LjUtMjguMS03LjgtMzkuMiAxLjdjLTE0LjQgMTEuOS0zMi41IDIxLTUwLjYgMjUuMmMtMTcuMiA0LTI3LjkgMjEuMi0yMy45IDM4LjRzMjEuMiAyNy45IDM4LjQgMjMuOWMyNC41LTUuNyA0NC45LTE2LjUgNTguMi0yNUMxMjYuNSA1MDEuNyAxNTkgNTEyIDE5MiA1MTJjMzEuOSAwIDYwLjYtOS45IDgwLjQtMTguOWM1LjgtMi43IDExLjEtNS4zIDE1LjYtNy43YzQuNSAyLjQgOS43IDUuMSAxNS42IDcuN2MxOS44IDkgNDguNSAxOC45IDgwLjQgMTguOWMzMyAwIDY1LjUtMTAuMyA5NC41LTI1LjhjMTMuNCA4LjQgMzMuNyAxOS4zIDU4LjIgMjVjMTcuMiA0IDM0LjQtNi43IDM4LjQtMjMuOXMtNi43LTM0LjQtMjMuOS0zOC40Yy0xOC4xLTQuMi0zNi4yLTEzLjMtNTAuNi0yNS4yYy0xMS4xLTkuNC0yNy4zLTEwLjEtMzkuMi0xLjdsMCAwQzQzOS40IDQzNy4yIDQxMC45IDQ0OCAzODQgNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFoLTMybC43IDE2MC4yYy4yIDM1LjUtMjguNSA2NC4zLTY0IDY0LjNIMTI4LjFjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI4Ny42SDMyYy0xOCAwLTMyLTE0LTMyLTMyLjFjMC05IDMtMTcgMTAtMjRMMjY2LjQgOGM3LTcgMTUtOCAyMi04czE1IDIgMjEgN0w1NjQuOCAyMzEuNWM4IDcgMTIgMTUgMTEgMjR6TTM1MiAyMjRhNjQgNjQgMCAxIDAgLTEyOCAwIDY0IDY0IDAgMSAwIDEyOCAwem0tOTYgOTZjLTQ0LjIgMC04MCAzNS44LTgwIDgwYzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2YzAtNDQuMi0zNS44LTgwLTgwLTgwSDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjggMjU1LjVjMCAxOC0xNSAzMi4xLTMyIDMyLjFoLTMybC43IDE2MC4yYzAgMi43LS4yIDUuNC0uNSA4LjFWNDcyYzAgMjIuMS0xNy45IDQwLTQwIDQwSDQ1NmMtMS4xIDAtMi4yIDAtMy4zLS4xYy0xLjQgLjEtMi44IC4xLTQuMiAuMUg0MTYgMzkyYy0yMi4xIDAtNDAtMTcuOS00MC00MFY0NDggMzg0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQgMjRjMCAyMi4xLTE3LjkgNDAtNDAgNDBIMTYwIDEyOC4xYy0xLjUgMC0zLS4xLTQuNS0uMmMtMS4yIC4xLTIuNCAuMi0zLjYgLjJIMTA0Yy0yMi4xIDAtNDAtMTcuOS00MC00MFYzNjBjMC0uOSAwLTEuOSAuMS0yLjhWMjg3LjZIMzJjLTE4IDAtMzItMTQtMzItMzIuMWMwLTkgMy0xNyAxMC0yNEwyNjYuNCA4YzctNyAxNS04IDIyLThzMTUgMiAyMSA3TDU2NC44IDIzMS41YzggNyAxMiAxNSAxMSAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHJ5dm5pYVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIxLjkgMTE2LjJDMTM4LjMgMTAzLjEgMTU4LjcgOTYgMTc5LjYgOTZIMjIzYzI3LjEgMCA0OSAyMS45IDQ5IDQ5YzAgMTEuNS00IDIyLjQtMTEuMSAzMUgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgxNTUuNWwtNTAuNiAyOC45Yy0xLjcgMS0zLjQgMi01LjEgMy4xSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDUyLjNjLTIuOCA5LjktNC4zIDIwLjQtNC4zIDMxYzAgNjIuNCA1MC42IDExMyAxMTMgMTEzaDQzLjRjMzUuNSAwIDcwLTEyLjEgOTcuNy0zNC4zTDMwOCA0NDFjMTMuOC0xMSAxNi0zMS4yIDUtNDVzLTMxLjItMTYtNDUtNWwtNS45IDQuN2MtMTYuNCAxMy4xLTM2LjcgMjAuMi01Ny43IDIwLjJIMTYxYy0yNy4xIDAtNDktMjEuOS00OS00OWMwLTExLjUgNC0yMi40IDExLjEtMzFIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIyOC41bDUwLjYtMjguOWMxLjctMSAzLjQtMiA1LjEtMy4xSDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMzEuN2MyLjgtMTAgNC4zLTIwLjQgNC4zLTMxYzAtNjIuNC01MC42LTExMy0xMTMtMTEzSDE3OS42Yy0zNS41IDAtNzAgMTIuMS05Ny43IDM0LjNMNzYgNzFjLTEzLjggMTEtMTYgMzEuMi01IDQ1czMxLjIgMTYgNDUgNWw1LjktNC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIdXJyaWNhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMDhDMCAxMDQuNCA3NS43IDE4LjUgMTc0LjkgMi42QzE4NCAxLjIgMTkyIDguNiAxOTIgMTcuOVY4MS4yYzAgOC40IDYuNSAxNS4zIDE0LjcgMTYuNUMzMDcgMTEyLjUgMzg0IDE5OSAzODQgMzAzLjRjMCAxMDMuNi03NS43IDE4OS41LTE3NC45IDIwNS40Yy05LjIgMS41LTE3LjEtNS45LTE3LjEtMTUuMlY0MzAuMmMwLTguNC02LjUtMTUuMy0xNC43LTE2LjVDNzcgMzk4LjkgMCAzMTIuNCAwIDIwOHptMjg4IDQ4QTk2IDk2IDAgMSAwIDk2IDI1NmE5NiA5NiAwIDEgMCAxOTIgMHptLTk2LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSUN1cnNvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMSAyOS4zQy0xLjQgNDcgMTEuNyA2Mi40IDI5LjMgNjMuOWw4IC43QzcwLjUgNjcuMyA5NiA5NSA5NiAxMjguM1YyMjRINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTZ2OTUuN2MwIDMzLjMtMjUuNSA2MS01OC43IDYzLjhsLTggLjdDMTEuNyA0NDkuNi0xLjQgNDY1IC4xIDQ4Mi43czE2LjkgMzAuNyAzNC41IDI5LjJsOC0uN2MzNC4xLTIuOCA2NC4yLTE4LjkgODUuNC00Mi45YzIxLjIgMjQgNTEuMiA0MC4xIDg1LjQgNDIuOWw4IC43YzE3LjYgMS41IDMzLjEtMTEuNiAzNC41LTI5LjJzLTExLjYtMzMuMS0yOS4yLTM0LjVsLTgtLjdDMTg1LjUgNDQ0LjcgMTYwIDQxNyAxNjAgMzgzLjdWMjg4aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE2MFYxMjguM2MwLTMzLjMgMjUuNS02MSA1OC43LTYzLjhsOC0uN2MxNy42LTEuNSAzMC43LTE2LjkgMjkuMi0zNC41UzIzOS0xLjQgMjIxLjMgLjFsLTggLjdDMTc5LjIgMy42IDE0OS4yIDE5LjcgMTI4IDQzLjdjLTIxLjItMjQtNTEuMi00MC04NS40LTQyLjlsLTgtLjdDMTctMS40IDEuNiAxMS43IC4xIDI5LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2aDk2VjQxNkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyVjk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE2MCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNlQ3JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY3LjEgMTYwYy42LTUuMyAuOS0xMC42IC45LTE2QzM2OCA2NC41IDMwMy41IDAgMjI0IDBTODAgNjQuNSA4MCAxNDRjMCA1LjQgLjMgMTAuNyAuOSAxNkg4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGg1My41IDE4MUgzNjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDhoLS45ek05NiAyODhMMjAwLjggNDk3LjdjNC40IDguOCAxMy4zIDE0LjMgMjMuMiAxNC4zczE4LjgtNS41IDIzLjItMTQuM0wzNTIgMjg4SDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJY2ljbGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc1LjggMzA0LjhMMSAzNS43Yy0uNy0yLjUtMS01LTEtNy41QzAgMTIuNiAxMi42IDAgMjguMiAwSDQ4Mi40QzQ5OC44IDAgNTEyIDEzLjIgNTEyIDI5LjZjMCAxLjYtLjEgMy4zLS40IDQuOUw0MzQuNiA0OTYuMWMtMS41IDkuMi05LjUgMTUuOS0xOC44IDE1LjljLTkuMiAwLTE3LjEtNi42LTE4LjctMTUuNkwzMzYgMTYwIDMwNy4yIDMwMy45Yy0xLjkgOS4zLTEwLjEgMTYuMS0xOS42IDE2LjFjLTkuMiAwLTE3LjItNi4yLTE5LjQtMTUuMUwyNDAgMTkyIDIxMC42IDM2OC4yYy0xLjUgOS4xLTkuNCAxNS44LTE4LjYgMTUuOHMtMTcuMS02LjctMTguNi0xNS44TDE0NCAxOTIgMTE1LjkgMzA0LjNjLTIuMyA5LjItMTAuNiAxNS43LTIwLjEgMTUuN2MtOS4zIDAtMTcuNS02LjItMjAtMTUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwLjMgNy4zQzUwNy43IDEzLjMgNTEyIDIyLjQgNTEyIDMyVjE3NmMwIDI2LjUtMjguNyA0OC02NCA0OHMtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4VjcxTDM1MiA5MC4yVjIwOGMwIDI2LjUtMjguNyA0OC02NCA0OHMtNjQtMjEuNS02NC00OHMyOC43LTQ4IDY0LTQ4VjY0YzAtMTUuMyAxMC44LTI4LjQgMjUuNy0zMS40bDE2MC0zMmM5LjQtMS45IDE5LjEgLjYgMjYuNiA2LjZ6TTc0LjcgMzA0bDExLjgtMTcuOGM1LjktOC45IDE1LjktMTQuMiAyNi42LTE0LjJoNjEuN2MxMC43IDAgMjAuNyA1LjMgMjYuNiAxNC4yTDIxMy4zIDMwNEgyNDBjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNTJjMC0yNi41IDIxLjUtNDggNDgtNDhINzQuN3pNMTkyIDQwOGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek00NzguNyAyNzguM0w0NDAuMyAzNjhINDk2YzYuNyAwIDEyLjYgNC4xIDE1IDEwLjRzLjYgMTMuMy00LjQgMTcuN2wtMTI4IDExMmMtNS42IDQuOS0xMy45IDUuMy0xOS45IC45cy04LjItMTIuNC01LjMtMTkuMkwzOTEuNyA0MDBIMzM2Yy02LjcgMC0xMi42LTQuMS0xNS0xMC40cy0uNi0xMy4zIDQuNC0xNy43bDEyOC0xMTJjNS42LTQuOSAxMy45LTUuMyAxOS45LS45czguMiAxMi40IDUuMyAxOS4yem0tMzM5LTU5LjJjLTYuNSA2LjUtMTcgNi41LTIzIDBMMTkuOSAxMTkuMmMtMjgtMjktMjYuNS03Ni45IDUtMTAzLjljMjctMjMuNSA2OC40LTE5IDkzLjQgNi41bDEwIDEwLjUgOS41LTEwLjVjMjUtMjUuNSA2NS45LTMwIDkzLjktNi41YzMxIDI3IDMyLjUgNzQuOSA0LjUgMTAzLjlsLTk2LjQgOTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRCYWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em05NiAzMjBoNjRjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODB6bS0zMi05NmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTE0NCA2NGg5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNDRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlkQ2FyZENsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWOTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNNjQgNjRIMTkydjQ4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjY0SDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NHpNMTc2IDQzNy4zYzAgNS45IDQuOCAxMC43IDEwLjcgMTAuN0gzODkuM2M1LjkgMCAxMC43LTQuOCAxMC43LTEwLjdjMC0yOS41LTIzLjktNTMuMy01My4zLTUzLjNIMjI5LjNjLTI5LjUgMC01My4zIDIzLjktNTMuMyA1My4zek0yODggMzUyYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5Nmw1NzYgMGMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDMyIDAgNjAuNyAwIDk2em0wIDMyVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4SDB6TTY0IDQwNS4zYzAtMjkuNSAyMy45LTUzLjMgNTMuMy01My4zSDIzNC43YzI5LjUgMCA1My4zIDIzLjkgNTMuMyA1My4zYzAgNS45LTQuOCAxMC43LTEwLjcgMTAuN0g3NC43Yy01LjkgMC0xMC43LTQuOC0xMC43LTEwLjd6TTE3NiAxOTJhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6bTE3NiAxNmMwLTguOCA3LjItMTYgMTYtMTZINDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2em0wIDY0YzAtOC44IDcuMi0xNiAxNi0xNkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZ6bTAgNjRjMC04LjggNy4yLTE2IDE2LTE2SDQ5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWdsb28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDMzLjhWMTYwSDQ4LjVDMTAwLjIgODIuOCAxODguMSAzMiAyODggMzJjMTAuOCAwIDIxLjUgLjYgMzIgMS44ek0zNTIgMTYwVjM5LjFDNDI0LjkgNTUuNyA0ODcuMiA5OS44IDUyNy41IDE2MEgzNTJ6TTI5LjkgMTkySDk2VjMyMEgwYzAtNDYgMTAuOC04OS40IDI5LjktMTI4ek0xOTIgMzIwSDEyOFYxOTJINDQ4VjMyMEgzODR2MzJINTc2djgwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDM1MlYzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRWNDgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNTJIMTkyVjMyMHptMjg4IDBWMTkyaDY2LjFjMTkuMiAzOC42IDI5LjkgODIgMjkuOSAxMjhINDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbWFnZVBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTM4NHpNMTI4IDE5MmE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6TTgwIDM1Ni42YzAtMzcuOSAzMC43LTY4LjYgNjguNi02OC42aDg2LjljMzcuOSAwIDY4LjYgMzAuNyA2OC42IDY4LjZjMCAxNS4xLTEyLjMgMjcuNC0yNy40IDI3LjRIMTA3LjRDOTIuMyAzODQgODAgMzcxLjcgODAgMzU2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTMyMy44IDIwMi41Yy00LjUtNi42LTExLjktMTAuNS0xOS44LTEwLjVzLTE1LjQgMy45LTE5LjggMTAuNWwtODcgMTI3LjZMMTcwLjcgMjk3Yy00LjYtNS43LTExLjUtOS0xOC43LTlzLTE0LjIgMy4zLTE4LjcgOWwtNjQgODBjLTUuOCA3LjItNi45IDE3LjEtMi45IDI1LjRzMTIuNCAxMy42IDIxLjYgMTMuNmg5NiAzMkg0MjRjOC45IDAgMTcuMS00LjkgMjEuMi0xMi44czMuNi0xNy40LTEuNC0yNC43bC0xMjAtMTc2ek0xMTIgMTkyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjRWMzIwYzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEgxNjB6TTM5NiAxMzguN2w5NiAxNDRjNC45IDcuNCA1LjQgMTYuOCAxLjIgMjQuNlM0ODAuOSAzMjAgNDcyIDMyMEgzMjggMjgwIDIwMGMtOS4yIDAtMTcuNi01LjMtMjEuNi0xMy42cy0yLjktMTguMiAyLjktMjUuNGw2NC04MGM0LjYtNS43IDExLjQtOSAxOC43LTlzMTQuMiAzLjMgMTguNyA5bDE3LjMgMjEuNiA1Ni04NEMzNjAuNSAxMzIgMzY4IDEyOCAzNzYgMTI4czE1LjUgNCAyMCAxMC43ek0xOTIgMTI4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwVjM0NGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNkg0NTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTM2Yy00OC42IDAtODgtMzkuNC04OC04OFYxMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMSAzMkM5MS42IDMyIDY2IDUyIDU4LjkgODAuNUwxLjkgMzA4LjRDLjYgMzEzLjUgMCAzMTguNyAwIDMyMy45VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzIzLjljMC01LjItLjYtMTAuNC0xLjktMTUuNWwtNTctMjI3LjlDNDQ2IDUyIDQyMC40IDMyIDM5MSAzMkgxMjF6bTAgNjRIMzkxbDQ4IDE5MkgzODcuOGMtMTIuMSAwLTIzLjIgNi44LTI4LjYgMTcuN2wtMTQuMyAyOC42Yy01LjQgMTAuOC0xNi41IDE3LjctMjguNiAxNy43SDE5NS44Yy0xMi4xIDAtMjMuMi02LjgtMjguNi0xNy43bC0xNC4zLTI4LjZjLTUuNC0xMC44LTE2LjUtMTcuNy0yOC42LTE3LjdINzNMMTIxIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTkyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptMzIgOTZINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpNMCA0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnpNMTI3LjggMjY4LjZMMjUuOCAzNDcuOUMxNS4zIDM1Ni4xIDAgMzQ4LjYgMCAzMzUuM1YxNzYuN2MwLTEzLjMgMTUuMy0yMC44IDI1LjgtMTIuNmwxMDEuOSA3OS4zYzguMiA2LjQgOC4yIDE4LjkgMCAyNS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmRpYW5SdXBlZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg5NmgxNkgyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjMxLjhjOS42IDE0LjQgMTYuNyAzMC42IDIwLjcgNDhIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI1Mi40Yy0xMy4yIDU4LjMtNjEuOSAxMDMuMi0xMjIuMiAxMTAuOUwyNzQuNiA0MjJjMTQuNCAxMC4zIDE3LjcgMzAuMyA3LjQgNDQuNnMtMzAuMyAxNy43LTQ0LjYgNy40TDEzLjQgMzE0QzIuMSAzMDYtMi43IDI5MS41IDEuNSAyNzguMlMxOC4xIDI1NiAzMiAyNTZoODBjMzIuOCAwIDYxLTE5LjcgNzMuMy00OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgxODUuM0MxNzMgMTE1LjcgMTQ0LjggOTYgMTEyIDk2SDk2IDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZHVzdHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NFYzMDR2NDggODBjMCAyNi41IDIxLjUgNDggNDggNDhINDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNCAxNTIuMmMwLTE4LjItMTkuNC0yOS43LTM1LjQtMjEuMUwzNTIgMjE1LjRWMTUyLjJjMC0xOC4yLTE5LjQtMjkuNy0zNS40LTIxLjFMMTYwIDIxNS40VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmZpbml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI0MS4xQzAgMTYxIDY1IDk2IDE0NS4xIDk2YzM4LjUgMCA3NS40IDE1LjMgMTAyLjYgNDIuNUwzMjAgMjEwLjdsNzIuMi03Mi4yQzQxOS41IDExMS4zIDQ1Ni40IDk2IDQ5NC45IDk2QzU3NSA5NiA2NDAgMTYxIDY0MCAyNDEuMXYyOS43QzY0MCAzNTEgNTc1IDQxNiA0OTQuOSA0MTZjLTM4LjUgMC03NS40LTE1LjMtMTAyLjYtNDIuNUwzMjAgMzAxLjNsLTcyLjIgNzIuMkMyMjAuNSA0MDAuNyAxODMuNiA0MTYgMTQ1LjEgNDE2QzY1IDQxNiAwIDM1MSAwIDI3MC45VjI0MS4xek0yNzQuNyAyNTZsLTcyLjItNzIuMmMtMTUuMi0xNS4yLTM1LjktMjMuOC01Ny40LTIzLjhDMTAwLjMgMTYwIDY0IDE5Ni4zIDY0IDI0MS4xdjI5LjdjMCA0NC44IDM2LjMgODEuMSA4MS4xIDgxLjFjMjEuNSAwIDQyLjItOC41IDU3LjQtMjMuOEwyNzQuNyAyNTZ6bTkwLjUgMGw3Mi4yIDcyLjJjMTUuMiAxNS4yIDM1LjkgMjMuOCA1Ny40IDIzLjhjNDQuOCAwIDgxLjEtMzYuMyA4MS4xLTgxLjFWMjQxLjFjMC00NC44LTM2LjMtODEuMS04MS4xLTgxLjFjLTIxLjUgMC00Mi4yIDguNS01Ny40IDIzLjhMMzY1LjMgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmZvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDgwYTQ4IDQ4IDAgMSAxIDk2IDBBNDggNDggMCAxIDEgNDggODB6TTAgMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ0OGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg2NFYyNTZIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdGFsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMySDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyOTMuM0wxNjAgNDE2aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDkwLjdMMjI0IDk2SDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjMyMGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQwOC40IDAgMzIwVjI4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjMyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUphcldoZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzMyIDE0LjMgNDYuMyAwIDY0IDBIMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMCAxNjBjMC0zNS4zIDI4LjctNjQgNjQtNjRIMjU2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTYwem0xMTIgMEg2OS44Yy0zLjIgMC01LjggMi42LTUuOCA1LjhDNjQgMTk4IDkwIDIyNCAxMjIuMiAyMjRIMTQ0aDMyIDIxLjhjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yYzAtMy4yLTIuNi01LjgtNS44LTUuOEgyMDhjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6bTQ4IDExNy43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjdINjkuOGMtMy4yIDAtNS44IDIuNi01LjggNS44QzY0IDI5NCA5MCAzMjAgMTIyLjIgMzIwSDE0NGgzMiAyMS44YzMyLjEgMCA1OC4yLTI2IDU4LjItNTguMmMwLTMuMi0yLjYtNS44LTUuOC01LjhIMjA4Yy0xOS4xIDAtMzYuMyA4LjQtNDggMjEuN3pNMTEyIDM1Mkg2OS44Yy0zLjIgMC01LjggMi42LTUuOCA1LjhDNjQgMzkwIDkwIDQxNiAxMjIuMiA0MTZIMTQ0djMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWNDE2aDIxLjhjMzIuMSAwIDU4LjItMjYgNTguMi01OC4yYzAtMy4yLTIuNi01LjgtNS44LTUuOEgyMDhjLTE5LjEgMC0zNi4zIDguNC00OCAyMS43Yy0xMS43LTEzLjMtMjguOS0yMS43LTQ4LTIxLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUphciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwSDI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg2NEM0Ni4zIDY0IDMyIDQ5LjcgMzIgMzJ6TTAgMTYwYzAtMzUuMyAyOC43LTY0IDY0LTY0SDI1NmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE2MHptOTYgNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMySDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJIOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplZGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ2IDMxNS43bC0yMS4yLTMxLjljLTIuMS0zLjItMS43LTcuNCAxLTEwLjFzNi45LTMuMSAxMC4xLTFsMjkuNSAxOS43YzIuMSAxLjQgNC45IDAgNS0yLjZMMjc5LjcgOGMuMS00LjUgMy44LTggOC4zLThzOC4xIDMuNSA4LjMgOGw5LjQgMjgxLjljLjEgMi41IDIuOSAzLjkgNSAyLjZsMjkuNS0xOS43YzMuMi0yLjEgNy40LTEuNyAxMC4xIDFzMy4xIDYuOSAxIDEwLjFMMzMwIDMxNS43Yy0xLjMgMS45LS4yIDQuNSAyIDQuOWwzNy42IDcuNWMzLjcgLjcgNi40IDQgNi40IDcuOHMtMi43IDcuMS02LjQgNy44TDMzMiAzNTEuNGMtMi4yIC40LTMuMyAzLTIgNC45bDIxLjIgMzEuOWMyLjEgMy4yIDEuNyA3LjQtMSAxMC4xcy02LjkgMy4xLTEwLjEgMWwtMjYuMy0xNy42Yy0yLjItMS40LTUuMSAuMi01IDIuOGwyLjEgNjEuNUMzNzAuNiA0MzUuMiA0MTYgMzgyLjkgNDE2IDMyMGMwLTM3LTE1LjctNzAuNC00MC44LTkzLjdjLTctNi41LTYuNS0xOC42IDEtMjQuNEM0MTAuMSAxNzUuNSA0MzIgMTM0LjMgNDMyIDg4YzAtMTYuOC0yLjktMzMtOC4yLTQ4Yy00LjYtMTMgMTAuMi0zMCAyMS40LTIyYzUzLjUgMzggOTIuNyA5NC44IDEwNy44IDE2MC43Yy41IDIuMS0uMiA0LjMtMS43IDUuOWwtMjguNCAyOC40Yy00IDQtMS4yIDEwLjkgNC41IDEwLjloMjZjMy40IDAgNi4yIDIuNiA2LjMgNmMuMSAzLjMgLjIgNi42IC4yIDEwYzAgMTcuNS0xLjcgMzQuNy00LjggNTEuM2MtLjIgMS4yLS45IDIuNC0xLjcgMy4zbC00Ni41IDQ2LjVjLTQgNC0xLjIgMTAuOSA0LjUgMTAuOUg1MjZjNC42IDAgNy43IDQuOCA1LjcgOUM0ODcuMiA0NTAuNSAzOTQuOCA1MTIgMjg4IDUxMlM4OC44IDQ1MC41IDQ0LjMgMzYxYy0yLjEtNC4yIDEtOSA1LjctOUg2NC41YzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjIuNiAyOTQuNmMtLjktLjktMS41LTItMS43LTMuM0MxNy43IDI3NC43IDE2IDI1Ny41IDE2IDI0MGMwLTMuMyAuMS02LjcgLjItMTBjLjEtMy40IDIuOS02IDYuMy02aDI2YzUuNyAwIDguNi02LjkgNC41LTEwLjlMMjQuNiAxODQuNmMtMS41LTEuNS0yLjItMy44LTEuNy01LjlDMzguMSAxMTIuOCA3Ny4zIDU2IDEzMC44IDE4YzExLjMtOCAyNiA4LjkgMjEuNCAyMmMtNS4zIDE1LTguMiAzMS4yLTguMiA0OGMwIDQ2LjMgMjEuOSA4Ny41IDU1LjggMTEzLjljNy41IDUuOCA4IDE3LjkgMSAyNC40QzE3NS43IDI0OS42IDE2MCAyODMgMTYwIDMyMGMwIDYyLjkgNDUuNCAxMTUuMiAxMDUuMSAxMjZsMi4xLTYxLjVjLjEtMi42LTIuOC00LjItNS0yLjhsLTI2LjMgMTcuNmMtMy4yIDIuMS03LjQgMS43LTEwLjEtMXMtMy4xLTYuOS0xLTEwLjFMMjQ2IDM1Ni4zYzEuMy0xLjkgLjItNC41LTItNC45bC0zNy42LTcuNWMtMy43LS43LTYuNC00LTYuNC03LjhzMi43LTcuMSA2LjQtNy44bDM3LjYtNy41YzIuMi0uNCAzLjMtMyAyLTQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmV0RmlnaHRlclVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MC43IDkuN0MyNjguMiAzLjggMjYyLjQgMCAyNTYgMHMtMTIuMiAzLjgtMTQuNyA5LjdMMTk3LjIgMTEyLjZjLTMuNCA4LTUuMiAxNi41LTUuMiAyNS4ydjc3bC0xNDQgODRWMjgwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djU2IDMyIDI0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR2LThIMTkydjMyLjdMMTMzLjUgNDY4Yy0zLjUgMy01LjUgNy40LTUuNSAxMnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoOTZWNDQ4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NjRoOTZjOC44IDAgMTYtNy4yIDE2LTE2VjQ4MGMwLTQuNi0yLTktNS41LTEyTDMyMCA0MTYuN1YzODRINDY0djhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNjggMzM2IDI4MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHYxOC44bC0xNDQtODR2LTc3YzAtOC43LTEuOC0xNy4yLTUuMi0yNS4yTDI3MC43IDkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSmV0RmlnaHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRIMjk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI4MEwzODQgMTkySDUwMC40YzcuNyAwIDE1LjMgMS40IDIyLjUgNC4xTDYyNSAyMzQuNGM5IDMuNCAxNSAxMiAxNSAyMS42cy02IDE4LjItMTUgMjEuNkw1MjIuOSAzMTUuOWMtNy4yIDIuNy0xNC44IDQuMS0yMi41IDQuMUgzODRMMjgwIDQ2NGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOFYzMjBIMTYwbC01NC42IDU0LjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNEg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg4Mi43YzguNSAwIDE2LjYgMy40IDIyLjYgOS40TDE2MCAxOTJoMzJWNDhoLThjLTEzLjMgMC0yNC0xMC43LTI0LTI0ek04MCAyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0M2MwIDU1LjIgMjEuOSAxMDguMSA2MC45IDE0Ny4xbDIxIDIxYzkgOSAxNC4xIDIxLjIgMTQuMSAzMy45djExYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjQ1YzAtMjkuNy0xMS44LTU4LjItMzIuOC03OS4ybC0yMS0yMUM0NjMuMiAxMTcuOCA0NDggODEuMiA0NDggNDNWMzJ6TTU3NiAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNDVjMC01NS4yLTIxLjktMTA4LjEtNjAuOS0xNDcuMWwtMjEtMjFjLTktOS0xNC4xLTIxLjItMTQuMS0zMy45VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjQzYzAgMjkuNyAxMS44IDU4LjIgMzIuOCA3OS4ybDIxIDIxYzI3IDI3IDQyLjIgNjMuNiA0Mi4yIDEwMS44djExek0yMjkuOCAzNjBjLTQuNy0yLjMtMTAtMi43LTE1LjItMmMtMzcuOCA1LjYtNzUuMiAxNC4zLTEwNi45IDIyLjhDODEuMyAzODggNTguMyAzOTUuMSA0MiA0MDAuNGMtOC4yIDIuNy0xNC43IDQuOS0xOS4yIDYuNWMtMi4zIC44LTQgMS40LTUuMiAxLjhsLTEuMyAuNUM2LjggNDEyLjUgMCA0MjEuNCAwIDQzMnM2LjggMTkuNSAxNi4zIDIyLjdsMS4zIC41YzEuMiAuNCAzIDEuMSA1LjIgMS44YzQuNSAxLjYgMTEgMy44IDE5LjIgNi41YzE2LjMgNS40IDM5LjIgMTIuNSA2NS43IDE5LjZDMTYwLjMgNDk3LjMgMjI4LjggNTEyIDI4OCA1MTJoNjcuM2M0LjEgMCA2LjMtNS4xIDMuNi04LjNMMjU2LjUgMzgwLjhjLTcuNC04LjktMTYuNS0xNS45LTI2LjctMjAuOHpNNDQ1IDUxMmgxOSA1MS4zYzQuMSAwIDYuMy01LjEgMy42LTguM0w0MTYuNSAzODAuOEM0MDEuMyAzNjIuNSAzNzguOCAzNTIgMzU1IDM1MkgzMzYgMjg4Yy0xLjEgMC0yLjMgMC0zLjQgMGMtNC4xIDAtNi4yIDUuMS0zLjUgOC4zTDM4My41IDQ4My4yQzM5OC43IDUwMS41IDQyMS4yIDUxMiA0NDUgNTEyem0tMy45LTE1MS43TDU0My41IDQ4My4yYzE0LjYgMTcuNSAzNS45IDI3LjkgNTguNiAyOC43YzIxLjEtMS4xIDM3LjktMTguNiAzNy45LTM5LjlWMzkyYzAtMjIuMS0xNy45LTQwLTQwLTQwSDQ0NC43Yy00LjEgMC02LjMgNS4xLTMuNiA4LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUp1Z0RldGVyZ2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY0OGg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDg4Qzc0LjcgOTYgNjQgODUuMyA2NCA3MnMxMC43LTI0IDI0LTI0aDhWMjR6TTAgMjU2YzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4SDI1NmM3MC43IDAgMTI4IDU3LjMgMTI4IDEyOFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjI1NnptMjU2IDB2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzExIDg2LjNjMTIuMy0xMi43IDEyLTMyLjktLjctNDUuMnMtMzIuOS0xMi00NS4yIC43bC0xNTUuMiAxNjBMNjQgMjQ5VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzAgNDYuMyAwIDY0VjMyOCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNDFsNjQuNy02Ni43IDEzMyAxOTJjMTAuMSAxNC41IDMwIDE4LjEgNDQuNSA4LjFzMTguMS0zMCA4LjEtNDQuNUwxNzQuMSAyMjcuNCAzMTEgODYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2FhYmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjAgMTIwbDIyOCA3MS4yTDUxNiAxMjAgMjg4IDQ4LjggNjAgMTIwek0yNzguNSAxLjVjNi4yLTEuOSAxMi45LTEuOSAxOS4xIDBsMjU2IDgwQzU2Ni45IDg1LjYgNTc2IDk4IDU3NiAxMTJ2MTYgMCAyMS4yTDI5Mi44IDIzNy43Yy0zLjEgMS02LjQgMS05LjUgMEwwIDE0OS4yVjEyOCAxMTJDMCA5OCA5LjEgODUuNiAyMi41IDgxLjVsMjU2LTgwem0yMy45IDI2Ni44TDU3NiAxODIuOHY0Ni41bC01Mi44IDE2LjVjLTguNCAyLjYtMTMuMSAxMS42LTEwLjUgMjBzMTEuNiAxMy4xIDIwIDEwLjVMNTc2IDI2Mi44VjQwMGMwIDE0LTkuMSAyNi40LTIyLjUgMzAuNWwtMjU2IDgwYy02LjIgMS45LTEyLjkgMS45LTE5LjEgMGwtMjU2LTgwQzkuMSA0MjYuNCAwIDQxNCAwIDQwMFYyNjIuOGw0My4yIDEzLjVjOC40IDIuNiAxNy40LTIuMSAyMC0xMC41cy0yLjEtMTcuNC0xMC41LTIwTDAgMjI5LjJWMTgyLjhsMjczLjcgODUuNWM5LjMgMi45IDE5LjMgMi45IDI4LjYgMHptLTE4NS41LTIuNmMtOC40LTIuNi0xNy40IDIuMS0yMCAxMC41czIuMSAxNy40IDEwLjUgMjBsNjQgMjBjOC40IDIuNiAxNy40LTIuMSAyMC0xMC41cy0yLjEtMTcuNC0xMC41LTIwbC02NC0yMHptMzUyIDMwLjVjOC40LTIuNiAxMy4xLTExLjYgMTAuNS0yMHMtMTEuNi0xMy4xLTIwLTEwLjVsLTY0IDIwYy04LjQgMi42LTEzLjEgMTEuNi0xMC41IDIwczExLjYgMTMuMSAyMCAxMC41bDY0LTIwem0tMjI0IDkuNWMtOC40LTIuNi0xNy40IDIuMS0yMCAxMC41czIuMSAxNy40IDEwLjUgMjBsMzguNSAxMmM5LjMgMi45IDE5LjMgMi45IDI4LjYgMGwzOC41LTEyYzguNC0yLjYgMTMuMS0xMS42IDEwLjUtMjBzLTExLjYtMTMuMS0yMC0xMC41bC0zOC41IDEyYy0zLjEgMS02LjQgMS05LjUgMGwtMzguNS0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAzNTJjOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZTNDMzLjIgMCAzMzYgMFMxNjAgNzguOCAxNjAgMTc2YzAgMTguNyAyLjkgMzYuOCA4LjMgNTMuN0w3IDM5MWMtNC41IDQuNS03IDEwLjYtNyAxN3Y4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY0NDhoNDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzg0aDQwYzYuNCAwIDEyLjUtMi41IDE3LTdsMzMuMy0zMy4zYzE2LjkgNS40IDM1IDguMyA1My43IDguM3pNMzc2IDk2YTQwIDQwIDAgMSAxIDAgODAgNDAgNDAgMCAxIDEgMC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTE2IDY0aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2ek02NCAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6bTE2IDgwaDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em04MC0xNzZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTQ0em0xNiA4MGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZ6TTE2MCAzMzZjMC04LjggNy4yLTE2IDE2LTE2SDQwMGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNnpNMjcyIDEyOGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZ6TTI1NiAyNDBjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMjQwek0zNjggMTI4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnpNMzUyIDI0MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6TTQ2NCAxMjhoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg0NjRjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2ek00NDggMjQwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0MHptMTYgODBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg0NjRjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaGFuZGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ1LjggMy43YzUuOS00LjkgMTQuNi00LjkgMjAuNSAwbDQ4IDQwYzUuOSA0LjkgNy41IDEzLjIgMy44IDE5LjlsMCAwIDAgMCAwIDAgMCAwLS4xIC4xLS4zIC42Yy0uMyAuNS0uNyAxLjMtMS4yIDIuM2MtMSAyLTIuNiA1LTQuNCA4LjZjLS41IC45LS45IDEuOS0xLjQgMi45QzM0NC45IDk3LjQgMzY4IDEzNCAzNjggMTc2cy0yMy4xIDc4LjYtNTcuMyA5Ny44Yy41IDEgMSAyIDEuNCAyLjljMS44IDMuNyAzLjMgNi42IDQuNCA4LjZjLjUgMSAuOSAxLjggMS4yIDIuM2wuMyAuNiAuMSAuMSAwIDAgMCAwYzMuNiA2LjcgMiAxNS0zLjggMTkuOUwyNzIgMzQzLjV2MTkuOGwzNS42LTI0LjUgNDEuMS0yOC4yYzQyLjgtMjkuNCA2OC40LTc4IDY4LjQtMTMwYzAtMzEuMS05LjItNjEuNi0yNi41LTg3LjVsLTIuOC00LjJjLTQtNi0zLjUtMTQgMS4zLTE5LjVzMTIuNy03IDE5LjItMy43TDQwMS4xIDgwYzcuMi0xNC4zIDcuMi0xNC4zIDcuMi0xNC4zbDAgMCAwIDAgLjEgMCAuMyAuMiAxIC41Yy44IC40IDIgMS4xIDMuNSAxLjljMi45IDEuNyA3IDQuMSAxMS44IDcuM2M5LjYgNi40IDIyLjUgMTYuMSAzNS40IDI5YzI1LjcgMjUuNyA1Mi43IDY1LjYgNTIuNyAxMTkuM2MwIDUzLjEtMjYuNCAxMDAuNS01MS4yIDEzMy42Yy0xMi42IDE2LjctMjUuMSAzMC4zLTM0LjUgMzkuN2MtNC43IDQuNy04LjcgOC40LTExLjUgMTAuOWMtMS40IDEuMy0yLjUgMi4yLTMuMyAyLjlsLS45IC44LS4zIC4yLS4xIC4xIDAgMCAwIDBzMCAwLTEwLjItMTIuM2wxMC4yIDEyLjNjLTUuMSA0LjMtMTIuNCA0LjktMTguMiAxLjZsLTc1LjYtNDMtMzIuNyAyMi41IDQ1LjUgMzEuM2MxLjgtLjQgMy43LS43IDUuNy0uN2MxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTIuMiAwLTIyLjMtOS4xLTIzLjgtMjFMMjcyIDQyMy40djI4LjljOS42IDUuNSAxNiAxNS45IDE2IDI3LjdjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0xMS44IDYuNC0yMi4yIDE2LTI3LjdWNDI0LjFsLTQwLjMgMjcuN0MxOTcuOCA0NjMuMyAxODcuOSA0NzIgMTc2IDQ3MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyLjIgMCA0LjQgLjMgNi41IC45bDQ1LjgtMzEuNS0zMi43LTIyLjUtNzUuNiA0M2MtNS44IDMuMy0xMyAyLjctMTguMi0xLjZMMTEyIDQwMGMtMTAuMiAxMi4zLTEwLjIgMTIuMy0xMC4zIDEyLjNsMCAwIDAgMC0uMS0uMS0uMy0uMi0uOS0uOGMtLjgtLjctMS45LTEuNy0zLjMtMi45Yy0yLjgtMi41LTYuNy02LjItMTEuNS0xMC45Yy05LjQtOS40LTIxLjktMjMtMzQuNS0zOS43QzI2LjQgMzI0LjUgMCAyNzcuMSAwIDIyNGMwLTUzLjcgMjYuOS05My42IDUyLjctMTE5LjNjMTIuOS0xMi45IDI1LjgtMjIuNiAzNS40LTI5QzkzIDcyLjUgOTcgNzAgOTkuOSA2OC40YzEuNS0uOCAyLjYtMS41IDMuNS0xLjlsMS0uNSAuMy0uMiAuMSAwIDAgMCAwIDBzMCAwIDcuMiAxNC4zbC03LjItMTQuM2M2LjUtMy4yIDE0LjMtMS43IDE5LjIgMy43czUuMyAxMy40IDEuMyAxOS41bC0yLjggNC4yQzEwNS4yIDExOSA5NiAxNDkuNSA5NiAxODAuNmMwIDUxLjkgMjUuNiAxMDAuNiA2OC40IDEzMGw0MS4xIDI4LjJMMjQwIDM2Mi42VjM0My41bC00Mi4yLTM1LjJjLTUuOS00LjktNy41LTEzLjItMy44LTE5LjlsMCAwIDAgMCAwIDAgLjEtLjEgLjMtLjZjLjMtLjUgLjctMS4zIDEuMi0yLjNjMS0yIDIuNi01IDQuNC04LjZjLjUtLjkgLjktMS45IDEuNC0yLjlDMTY3LjEgMjU0LjYgMTQ0IDIxOCAxNDQgMTc2czIzLjEtNzguNiA1Ny4zLTk3LjhjLS41LTEtMS0yLTEuNC0yLjljLTEuOC0zLjctMy4zLTYuNi00LjQtOC42Yy0uNS0xLS45LTEuOC0xLjItMi4zbC0uMy0uNi0uMS0uMSAwIDAgMCAwIDAgMGMtMy42LTYuNy0yLTE1IDMuOC0xOS45bDQ4LTQwek0yMjAuMiAxMjIuOWMtMTcgMTEuNS0yOC4yIDMxLTI4LjIgNTMuMXMxMS4yIDQxLjYgMjguMiA1My4xQzIyNyAyMTAuMiAyMzIgMTkwLjkgMjMyIDE3NnMtNS0zNC4yLTExLjgtNTMuMXptNzEuNSAxMDYuMmMxNy0xMS41IDI4LjItMzEgMjguMi01My4xcy0xMS4yLTQxLjYtMjguMi01My4xQzI4NSAxNDEuOCAyODAgMTYxLjEgMjgwIDE3NnM1IDM0LjIgMTEuOCA1My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXBTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0MC44IDg4LjNjMTMuNC0xMS41IDE1LTMxLjcgMy41LTQ1LjFzLTMxLjctMTUtNDUuMS0zLjVMMTI4IDE4Ni40VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMyUzY0IDQ2LjMgNjQgNjRWMjI0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyNS42TDI5OS4yIDQ3Mi4zYzEzLjQgMTEuNSAzMy42IDkuOSA0NS4xLTMuNXM5LjktMzMuNi0zLjUtNDUuMUwxODIuNSAyODhIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE4Mi41TDM0MC44IDg4LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpdE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIOTZWMzJINjR6bTY0IDBWNDgwSDQ0OFYzMkgxMjh6TTUxMiA0ODBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINDgwVjQ4MGgzMnpNMjU2IDE3NmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzIwdjQ4YzAgOC44LTcuMiAxNi0xNiAxNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYyODhIMjA4Yy04LjggMC0xNi03LjItMTYtMTZWMjQwYzAtOC44IDcuMi0xNiAxNi0xNmg0OFYxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtpdGNoZW5TZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwIDE0NEE5NiA5NiAwIDEgMCA0OCAxNDRhOTYgOTYgMCAxIDAgMTkyIDB6bTQ0LjQgMzJDMjY5LjkgMjQwLjEgMjEyLjUgMjg4IDE0NCAyODhDNjQuNSAyODggMCAyMjMuNSAwIDE0NFM2NC41IDAgMTQ0IDBjNjguNSAwIDEyNS45IDQ3LjkgMTQwLjQgMTEyaDcxLjhjOC44LTkuOCAyMS42LTE2IDM1LjgtMTZINDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDM5MmMtMTQuMiAwLTI3LTYuMi0zNS44LTE2SDI4NC40ek0xNDQgODBhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTQwMCAyNDBjMTMuMyAwIDI0IDEwLjcgMjQgMjR2OGg5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoOTZ2LThjMC0xMy4zIDEwLjctMjQgMjQtMjR6TTI4OCA0NjRWMzUySDUxMlY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMzM2Yy0yNi41IDAtNDgtMjEuNS00OC00OHpNNDggMzIwaDgwIDE2IDMyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDE2MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE2MHYzMmgxNnpNMjQgNDY0SDIwMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2l3aUJpcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkxLjIgMzg4LjRjMzEuMi0xOC44IDY0LjctMzYuNCAxMDEuMS0zNi40SDQ0OGM0LjYgMCA5LjEtLjIgMTMuNi0uN2w4NS4zIDEyMS45YzQgNS43IDExLjMgOC4yIDE3LjkgNi4xczExLjItOC4zIDExLjItMTUuM1YyMjRjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzkyLjNjLTM2LjQgMC02OS45LTE3LjYtMTAxLjEtMzYuNEMyNjIuMyA0Mi4xIDIyOC4zIDMyIDE5MiAzMkM4NiAzMiAwIDExOCAwIDIyNGMwIDcxLjEgMzguNiAxMzMuMSA5NiAxNjYuM1Y0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0MTBjMTUuMyAzLjkgMzEuNCA2IDQ4IDZjNS40IDAgMTAuNy0uMiAxNi0uN1Y0NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0MDUuMWMxMi40LTQuNCAyNC4yLTEwIDM1LjItMTYuN3pNNDQ4IDIwMGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDE2SDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhbmRNaW5lT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDI0VjE2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0ek0xOTIgMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMkgxOTJWMzIwem0tNzcuMyA5MC41YzguMS0xNi4zIDI0LjgtMjYuNSA0Mi45LTI2LjVINDgyLjNjMTguMiAwIDM0LjggMTAuMyA0Mi45IDI2LjVsMjcuNiA1NS4yQzU2My41IDQ4NyA1NDggNTEyIDUyNC4yIDUxMkgxMTUuOGMtMjMuOCAwLTM5LjMtMjUtMjguNi00Ni4zbDI3LjYtNTUuMnpNMzYuMyAxMzguM2M3LjUtMTAuOSAyMi41LTEzLjYgMzMuNC02LjFsMTA0IDcyYzEwLjkgNy41IDEzLjYgMjIuNSA2LjEgMzMuNHMtMjIuNSAxMy42LTMzLjQgNi4xbC0xMDQtNzJjLTEwLjktNy41LTEzLjYtMjIuNS02LjEtMzMuNHptNTM0LjEtNi4xYzEwLjktNy41IDI1LjgtNC44IDMzLjQgNi4xczQuOCAyNS44LTYuMSAzMy40bC0xMDQgNzJjLTEwLjkgNy41LTI1LjggNC44LTMzLjQtNi4xcy00LjgtMjUuOCA2LjEtMzMuNGwxMDQtNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhbmRtYXJrRG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNFYzNC43QzM2OC40IDQ4LjEgNDMxLjkgMTExLjYgNDQ1LjMgMTkySDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgyLjdDODAuMSAxMTEuNiAxNDMuNiA0OC4xIDIyNCAzNC43VjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek02NCAyODhoNjRWNDE2aDQwVjI4OGg2NFY0MTZoNDhWMjg4aDY0VjQxNmg0MFYyODhoNjRWNDIwLjNjLjYgLjMgMS4yIC43IDEuNyAxLjFsNDggMzJjMTEuNyA3LjggMTcgMjIuNCAxMi45IDM1LjlTNDk0LjEgNTEyIDQ4MCA1MTJIMzJjLTE0LjEgMC0yNi41LTkuMi0zMC42LTIyLjdzMS4xLTI4LjEgMTIuOS0zNS45bDQ4LTMyYy42LS40IDEuMi0uNyAxLjgtMS4xVjI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZG1hcmtGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAwaDgwYzguOCAwIDE2IDcuMiAxNiAxNlY4MGMwIDguOC03LjIgMTYtMTYgMTZIMjcydjMySDQ2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgyNDBWMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2ek02NCAyMjRoNjRWNDE2aDQwVjIyNGg2NFY0MTZoNDhWMjI0aDY0VjQxNmg0MFYyMjRoNjRWNDIwLjNjLjYgLjMgMS4yIC43IDEuOCAxLjFsNDggMzJjMTEuNyA3LjggMTcgMjIuNCAxMi45IDM1LjlTNDk0LjEgNTEyIDQ4MCA1MTJIMzJjLTE0LjEgMC0yNi41LTkuMi0zMC42LTIyLjdzMS4xLTI4LjEgMTIuOS0zNS45bDQ4LTMyYy42LS40IDEuMi0uNyAxLjgtMS4xVjIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjEgNC4yYzkuOC01LjYgMjEuOS01LjYgMzEuOCAwbDE3MS44IDk4LjFMNDQ4IDEwNGwwIC45IDQ3LjkgMjcuNGMxMi42IDcuMiAxOC44IDIyIDE1LjEgMzZzLTE2LjQgMjMuOC0zMC45IDIzLjhIMzJjLTE0LjUgMC0yNy4yLTkuOC0zMC45LTIzLjhzMi41LTI4LjggMTUuMS0zNkw2NCAxMDQuOVYxMDRsNC40LTEuNkwyNDAuMSA0LjJ6TTY0IDIyNGg2NFY0MTZoNDBWMjI0aDY0VjQxNmg0OFYyMjRoNjRWNDE2aDQwVjIyNGg2NFY0MjAuM2MuNiAuMyAxLjIgLjcgMS44IDEuMWw0OCAzMmMxMS43IDcuOCAxNyAyMi40IDEyLjkgMzUuOVM0OTQuMSA1MTIgNDgwIDUxMkgzMmMtMTQuMSAwLTI2LjUtOS4yLTMwLjYtMjIuN3MxLjEtMjguMSAxMi45LTM1LjlsNDgtMzJjLjYtLjQgMS4yLS43IDEuOC0xLjFWMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEgyNTZoNDggMTZINTc2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEgzMjAgMzA0IDI1NiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4em0zMjAgMFYzODRINTc2VjEyOEgzMjB6TTE3OC4zIDE3NS45Yy0zLjItNy4yLTEwLjQtMTEuOS0xOC4zLTExLjlzLTE1LjEgNC43LTE4LjMgMTEuOWwtNjQgMTQ0Yy00LjUgMTAuMSAuMSAyMS45IDEwLjIgMjYuNHMyMS45LS4xIDI2LjQtMTAuMmw4LjktMjAuMWg3My42bDguOSAyMC4xYzQuNSAxMC4xIDE2LjMgMTQuNiAyNi40IDEwLjJzMTQuNi0xNi4zIDEwLjItMjYuNGwtNjQtMTQ0ek0xNjAgMjMzLjJMMTc5IDI3NkgxNDFsMTktNDIuOHpNNDQ4IDE2NGMxMSAwIDIwIDkgMjAgMjB2NGg0NCAxNmMxMSAwIDIwIDkgMjAgMjBzLTkgMjAtMjAgMjBoLTJsLTEuNiA0LjVjLTguOSAyNC40LTIyLjQgNDYuNi0zOS42IDY1LjRjLjkgLjYgMS44IDEuMSAyLjcgMS42bDE4LjkgMTEuM2M5LjUgNS43IDEyLjUgMTggNi45IDI3LjRzLTE4IDEyLjUtMjcuNCA2LjlsLTE4LjktMTEuM2MtNC41LTIuNy04LjgtNS41LTEzLjEtOC41Yy0xMC42IDcuNS0yMS45IDE0LTM0IDE5LjRsLTMuNiAxLjZjLTEwLjEgNC41LTIxLjktLjEtMjYuNC0xMC4ycy4xLTIxLjkgMTAuMi0yNi40bDMuNi0xLjZjNi40LTIuOSAxMi42LTYuMSAxOC41LTkuOGwtMTIuMi0xMi4yYy03LjgtNy44LTcuOC0yMC41IDAtMjguM3MyMC41LTcuOCAyOC4zIDBsMTQuNiAxNC42IC41IC41YzEyLjQtMTMuMSAyMi41LTI4LjMgMjkuOC00NUg0NDggMzc2Yy0xMSAwLTIwLTktMjAtMjBzOS0yMCAyMC0yMGg1MnYtNGMwLTExIDktMjAgMjAtMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcENvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM1Mkg1MTJWOTZIMTI4VjM1Mkg2NFY5NnpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRINjIwLjhjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmMwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEg3Ni44QzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjgxIDIwOWwtMzEgMzEgMzEgMzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDgtNDhjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDQ4LTQ4YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpNMzkzIDE3NWw0OCA0OGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNDggNDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMzEtMzEtMzEtMzFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFwdG9wRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMEM5Mi43IDAgNjQgMjguNyA2NCA2NFYyODhIMTkuMkM4LjYgMjg4IDAgMjk2LjYgMCAzMDcuMkMwIDM0OS42IDM0LjQgMzg0IDc2LjggMzg0SDMyMFYyODhIMTI4VjY0SDQ0OFY5Nmg2NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEgxMjh6TTUxMiAxMjhINDAwYy0yNi41IDAtNDggMjEuNS00OCA0OFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1Nkg1NDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjEyOHptMzIgMHY5Nmg5NmwtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM1Mkg1MTJWOTZIMTI4VjM1Mkg2NFY5NnpNMCA0MDMuMkMwIDM5Mi42IDguNiAzODQgMTkuMiAzODRINjIwLjhjMTAuNiAwIDE5LjIgOC42IDE5LjIgMTkuMmMwIDQyLjQtMzQuNCA3Ni44LTc2LjggNzYuOEg3Ni44QzM0LjQgNDgwIDAgNDQ1LjYgMCA0MDMuMnpNMjg4IDE2MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzUydjQ4YzAgOC44LTcuMiAxNi0xNiAxNkgzMDRjLTguOCAwLTE2LTcuMi0xNi0xNlYyNzJIMjQwYy04LjggMC0xNi03LjItMTYtMTZWMjI0YzAtOC44IDcuMi0xNiAxNi0xNmg0OFYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMzJDOTIuNyAzMiA2NCA2MC43IDY0IDk2VjM1Mmg2NFY5Nkg1MTJWMzUyaDY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOHpNMTkuMiAzODRDOC42IDM4NCAwIDM5Mi42IDAgNDAzLjJDMCA0NDUuNiAzNC40IDQ4MCA3Ni44IDQ4MEg1NjMuMmM0Mi40IDAgNzYuOC0zNC40IDc2LjgtNzYuOGMwLTEwLjYtOC42LTE5LjItMTkuMi0xOS4ySDE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcmlTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAzMmMxNy43IDAgMzIgMTQuMyAzMiAzMlY5Ni43YzUuMy0uNCAxMC42LS43IDE2LS43czEwLjcgLjIgMTYgLjdWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY0OS40YzU0LjkgMjUuMiA5NS44IDc1LjUgMTA4LjIgMTM2LjJjMy41IDE3LjMtNy43IDM0LjItMjUgMzcuN3MtMzQuMi03LjctMzcuNy0yNWMtNi4xLTI5LjktMjIuNS01NS45LTQ1LjQtNzQuM1YyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTYxYy01LjItLjctMTAuNi0xLTE2LTFzLTEwLjggLjMtMTYgMXY5NWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxODguMUM4Mi43IDIxMS41IDY0IDI0Ny42IDY0IDI4OGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOEgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTkyIDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDQ4LjlDMTguNSAzODIgMCAzMzcuMiAwIDI4OGMwLTc3LjUgNDUuOS0xNDQuMyAxMTItMTc0LjZWNjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxheWVyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY0LjUgNS4yYzE0LjktNi45IDMyLjEtNi45IDQ3IDBsMjE4LjYgMTAxYzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMNDUuOSAxNDkuOEMzNy40IDE0NS44IDMyIDEzNy4zIDMyIDEyOHM1LjQtMTcuOSAxMy45LTIxLjhMMjY0LjUgNS4yek00NzYuOSAyMDkuNmw1My4yIDI0LjZjOC41IDMuOSAxMy45IDEyLjQgMTMuOSAyMS44cy01LjQgMTcuOS0xMy45IDIxLjhsLTIxOC42IDEwMWMtMTQuOSA2LjktMzIuMSA2LjktNDcgMEw0NS45IDI3Ny44QzM3LjQgMjczLjggMzIgMjY1LjMgMzIgMjU2czUuNC0xNy45IDEzLjktMjEuOGw1My4yLTI0LjYgMTUyIDcwLjJjMjMuNCAxMC44IDUwLjQgMTAuOCA3My44IDBsMTUyLTcwLjJ6bS0xNTIgMTk4LjJsMTUyLTcwLjIgNTMuMiAyNC42YzguNSAzLjkgMTMuOSAxMi40IDEzLjkgMjEuOHMtNS40IDE3LjktMTMuOSAyMS44bC0yMTguNiAxMDFjLTE0LjkgNi45LTMyLjEgNi45LTQ3IDBMNDUuOSA0MDUuOEMzNy40IDQwMS44IDMyIDM5My4zIDMyIDM4NHM1LjQtMTcuOSAxMy45LTIxLjhsNTMuMi0yNC42IDE1MiA3MC4yYzIzLjQgMTAuOCA1MC40IDEwLjggNzMuOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiA5NmMtNzguNiAwLTE0NS4xIDUxLjUtMTY3LjcgMTIyLjVjMzMuNi0xNyA3MS41LTI2LjUgMTExLjctMjYuNWg4OGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyODggMjE2czAgMCAwIDBjLTE2LjYgMC0zMi43IDEuOS00OC4zIDUuNGMtMjUuOSA1LjktNDkuOSAxNi40LTcxLjQgMzAuN2MwIDAgMCAwIDAgMEMzOC4zIDI5OC44IDAgMzY0LjkgMCA0NDB2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NDBjMC00OC43IDIwLjctOTIuNSA1My44LTEyMy4yQzEyMS42IDM5Mi4zIDE5MC4zIDQ0OCAyNzIgNDQ4bDEgMGMxMzIuMS0uNyAyMzktMTMwLjkgMjM5LTI5MS40YzAtNDIuNi03LjUtODMuMS0yMS4xLTExOS42Yy0yLjYtNi45LTEyLjctNi42LTE2LjItLjFDNDU1LjkgNzIuMSA0MTguNyA5NiAzNzYgOTZMMjcyIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZWZ0TG9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcuNSA0MTRjLTguOCAzLjgtMTkgMi0yNi00LjZsLTE0NC0xMzZDMi43IDI2OC45IDAgMjYyLjYgMCAyNTZzMi43LTEyLjkgNy41LTE3LjRsMTQ0LTEzNmM3LTYuNiAxNy4yLTguNCAyNi00LjZzMTQuNSAxMi41IDE0LjUgMjJsMCA3MiAyODggMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDY0YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0yODggMCAwIDcyYzAgOS42LTUuNyAxOC4yLTE0LjUgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlZnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuMyAyNzMuNmM0LjktNC41IDcuNy0xMC45IDcuNy0xNy42cy0yLjgtMTMtNy43LTE3LjZsLTExMi0xMDRjLTctNi41LTE3LjItOC4yLTI1LjktNC40cy0xNC40IDEyLjUtMTQuNCAyMmwwIDU2LTE5MiAwIDAtNTZjMC05LjUtNS43LTE4LjItMTQuNC0yMnMtMTguOS0yLjEtMjUuOSA0LjRsLTExMiAxMDRDMi44IDI0MyAwIDI0OS4zIDAgMjU2czIuOCAxMyA3LjcgMTcuNmwxMTIgMTA0YzcgNi41IDE3LjIgOC4yIDI1LjkgNC40czE0LjQtMTIuNSAxNC40LTIybDAtNTYgMTkyIDAgMCA1NmMwIDkuNSA1LjcgMTguMiAxNC40IDIyczE4LjkgMi4xIDI1LjktNC40bDExMi0xMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NGMtNi42IDAtMTMgMS0xOSAyLjljLTIyLjUgNy00OC4xIDE0LjktNzEgOWMtNzUuMi0xOS4xLTE1Ni40IDExLTIxMy43IDY4LjNTLTcuMiAyNTAuOCAxMS45IDMyNmM1LjggMjIuOS0yIDQ4LjQtOSA3MUMxIDQwMyAwIDQwOS40IDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0YzYuNiAwIDEzLTEgMTkuMS0yLjljMjIuNS03IDQ4LjEtMTQuOSA3MS05Yzc1LjIgMTkuMSAxNTYuNC0xMSAyMTMuNy02OC4zczg3LjUtMTM4LjUgNjguMy0yMTMuN2MtNS44LTIyLjkgMi00OC40IDktNzFjMS45LTYgMi45LTEyLjQgMi45LTE5LjF6TTIxMi41IDEyNy40Yy01NC42IDE2LTEwMS4xIDYyLjUtMTE3LjEgMTE3LjFDOTIuOSAyNTMgODQgMjU3LjggNzUuNSAyNTUuNFM2Mi4yIDI0NCA2NC42IDIzNS41YzE5LjEtNjUuMSA3My43LTExOS44IDEzOC45LTEzOC45YzguNS0yLjUgMTcuNCAyLjQgMTkuOSAxMC45cy0yLjQgMTcuNC0xMC45IDE5Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlc3NUaGFuRXF1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk1LjkgOTMuN2MxNi40LTYuNiAyNC40LTI1LjIgMTcuOC00MS42cy0yNS4yLTI0LjQtNDEuNi0xNy44bC0zMjAgMTI4QzQwIDE2Ny4xIDMyIDE3OC45IDMyIDE5MnM4IDI0LjkgMjAuMSAyOS43bDMyMCAxMjhjMTYuNCA2LjYgMzUtMS40IDQxLjYtMTcuOHMtMS40LTM1LTE3LjgtNDEuNkwxNTAuMiAxOTIgMzk1LjkgOTMuN3pNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVzc1RoYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjYgODEuN2M3LjkgMTUuOCAxLjUgMzUtMTQuMyA0Mi45TDEwMy42IDI1NiAzNjYuMyAzODcuNGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zbC0zMjAtMTYwQzYuOCAyNzkuMiAwIDI2OC4xIDAgMjU2czYuOC0yMy4yIDE3LjctMjguNmwzMjAtMTYwYzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpZmVSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2Ny4yIDQxMi41QzMzNS45IDQzNC45IDI5Ny41IDQ0OCAyNTYgNDQ4cy03OS45LTEzLjEtMTExLjItMzUuNWw1OC01OGMxNS44IDguNiAzNCAxMy41IDUzLjMgMTMuNXMzNy40LTQuOSA1My4zLTEzLjVsNTggNTh6bTkwLjcgLjhjMzMuOC00My40IDU0LTk4IDU0LTE1Ny4zcy0yMC4yLTExMy45LTU0LTE1Ny4zYzktMTIuNSA3LjktMzAuMS0zLjQtNDEuM1M0MjUuOCA0NSA0MTMuMyA1NEMzNjkuOSAyMC4yIDMxNS4zIDAgMjU2IDBTMTQyLjEgMjAuMiA5OC43IDU0Yy0xMi41LTktMzAuMS03LjktNDEuMyAzLjRTNDUgODYuMiA1NCA5OC43QzIwLjIgMTQyLjEgMCAxOTYuNyAwIDI1NnMyMC4yIDExMy45IDU0IDE1Ny4zYy05IDEyLjUtNy45IDMwLjEgMy40IDQxLjNTODYuMiA0NjcgOTguNyA0NThjNDMuNCAzMy44IDk4IDU0IDE1Ny4zIDU0czExMy45LTIwLjIgMTU3LjMtNTRjMTIuNSA5IDMwLjEgNy45IDQxLjMtMy40czEyLjQtMjguOCAzLjQtNDEuM3ptLTQ1LjUtNDYuMWwtNTgtNThjOC42LTE1LjggMTMuNS0zNCAxMy41LTUzLjNzLTQuOS0zNy40LTEzLjUtNTMuM2w1OC01OEM0MzQuOSAxNzYuMSA0NDggMjE0LjUgNDQ4IDI1NnMtMTMuMSA3OS45LTM1LjUgMTExLjJ6TTM2Ny4yIDk5LjVsLTU4IDU4Yy0xNS44LTguNi0zNC0xMy41LTUzLjMtMTMuNXMtMzcuNCA0LjktNTMuMyAxMy41bC01OC01OEMxNzYuMSA3Ny4xIDIxNC41IDY0IDI1NiA2NHM3OS45IDEzLjEgMTExLjIgMzUuNXpNMTU3LjUgMzA5LjNsLTU4IDU4Qzc3LjEgMzM1LjkgNjQgMjk3LjUgNjQgMjU2czEzLjEtNzkuOSAzNS41LTExMS4ybDU4IDU4Yy04LjYgMTUuOC0xMy41IDM0LTEzLjUgNTMuM3M0LjkgMzcuNCAxMy41IDUzLjN6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAzODRjOS42LTMxLjkgMjkuNS01OS4xIDQ5LjItODYuMmwwIDBjNS4yLTcuMSAxMC40LTE0LjIgMTUuNC0yMS40YzE5LjgtMjguNSAzMS40LTYzIDMxLjQtMTAwLjNDMzY4IDc4LjggMjg5LjIgMCAxOTIgMFMxNiA3OC44IDE2IDE3NmMwIDM3LjMgMTEuNiA3MS45IDMxLjQgMTAwLjNjNSA3LjIgMTAuMiAxNC4zIDE1LjQgMjEuNGwwIDBjMTkuOCAyNy4xIDM5LjcgNTQuNCA0OS4yIDg2LjJIMjcyek0xOTIgNTEyYzQ0LjIgMCA4MC0zNS44IDgwLTgwVjQxNkgxMTJ2MTZjMCA0NC4yIDM1LjggODAgODAgODB6TTExMiAxNzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MCAzNS44LTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5lc0xlYW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkwLjQgNzQuMWM1LjYtMTYuOC0zLjUtMzQuOS0yMC4yLTQwLjVzLTM0LjkgMy41LTQwLjUgMjAuMmwtMTI4IDM4NGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwxMjgtMzg0em03MC45LTQxLjdjLTE3LjQtMi45LTMzLjkgOC45LTM2LjggMjYuM2wtNjQgMzg0Yy0yLjkgMTcuNCA4LjkgMzMuOSAyNi4zIDM2LjhzMzMuOS04LjkgMzYuOC0yNi4zbDY0LTM4NGMyLjktMTcuNC04LjktMzMuOS0yNi4zLTM2Ljh6TTM1MiAzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmtTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ4OS4zIDM1OC4ybDkwLjUtOTAuNWM1Ni41LTU2LjUgNTYuNS0xNDggMC0yMDQuNWMtNTAtNTAtMTI4LjgtNTYuNS0xODYuMy0xNS40bC0xLjYgMS4xYy0xNC40IDEwLjMtMTcuNyAzMC4zLTcuNCA0NC42czMwLjMgMTcuNyA0NC42IDcuNGwxLjYtMS4xYzMyLjEtMjIuOSA3Ni0xOS4zIDEwMy44IDguNmMzMS41IDMxLjUgMzEuNSA4Mi41IDAgMTE0bC05NiA5Ni0zMS45LTI1QzQzMC45IDIzOS42IDQyMC4xIDE3NS4xIDM3NyAxMzJjLTUyLjItNTIuMy0xMzQuNS01Ni4yLTE5MS4zLTExLjdMMzguOCA1LjF6TTIzOSAxNjJjMzAuMS0xNC45IDY3LjctOS45IDkyLjggMTUuM2MyMCAyMCAyNy41IDQ4LjMgMjEuNyA3NC41TDIzOSAxNjJ6TTExNi42IDE4Ny45TDYwLjIgMjQ0LjNjLTU2LjUgNTYuNS01Ni41IDE0OCAwIDIwNC41YzUwIDUwIDEyOC44IDU2LjUgMTg2LjMgMTUuNGwxLjYtMS4xYzE0LjQtMTAuMyAxNy43LTMwLjMgNy40LTQ0LjZzLTMwLjMtMTcuNy00NC42LTcuNGwtMS42IDEuMWMtMzIuMSAyMi45LTc2IDE5LjMtMTAzLjgtOC42Qzc0IDM3MiA3NCAzMjEgMTA1LjUgMjg5LjVsNjEuOC02MS44LTUwLjYtMzkuOXpNMjIwLjkgMjcwYy0yLjEgMzkuOCAxMi4yIDgwLjEgNDIuMiAxMTBjMzguOSAzOC45IDk0LjQgNTEgMTQzLjYgMzYuM0wyMjAuOSAyNzB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc5LjggMjY3LjdjNTYuNS01Ni41IDU2LjUtMTQ4IDAtMjA0LjVjLTUwLTUwLTEyOC44LTU2LjUtMTg2LjMtMTUuNGwtMS42IDEuMWMtMTQuNCAxMC4zLTE3LjcgMzAuMy03LjQgNDQuNnMzMC4zIDE3LjcgNDQuNiA3LjRsMS42LTEuMWMzMi4xLTIyLjkgNzYtMTkuMyAxMDMuOCA4LjZjMzEuNSAzMS41IDMxLjUgODIuNSAwIDExNEw0MjIuMyAzMzQuOGMtMzEuNSAzMS41LTgyLjUgMzEuNS0xMTQgMGMtMjcuOS0yNy45LTMxLjUtNzEuOC04LjYtMTAzLjhsMS4xLTEuNmMxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZzLTM0LjQtNi45LTQ0LjYgNy40bC0xLjEgMS42QzIwNi41IDI1MS4yIDIxMyAzMzAgMjYzIDM4MGM1Ni41IDU2LjUgMTQ4IDU2LjUgMjA0LjUgMEw1NzkuOCAyNjcuN3pNNjAuMiAyNDQuM2MtNTYuNSA1Ni41LTU2LjUgMTQ4IDAgMjA0LjVjNTAgNTAgMTI4LjggNTYuNSAxODYuMyAxNS40bDEuNi0xLjFjMTQuNC0xMC4zIDE3LjctMzAuMyA3LjQtNDQuNnMtMzAuMy0xNy43LTQ0LjYtNy40bC0xLjYgMS4xYy0zMi4xIDIyLjktNzYgMTkuMy0xMDMuOC04LjZDNzQgMzcyIDc0IDMyMSAxMDUuNSAyODkuNUwyMTcuNyAxNzcuMmMzMS41LTMxLjUgODIuNS0zMS41IDExNCAwYzI3LjkgMjcuOSAzMS41IDcxLjggOC42IDEwMy45bC0xLjEgMS42Yy0xMC4zIDE0LjQtNi45IDM0LjQgNy40IDQ0LjZzMzQuNCA2LjkgNDQuNi03LjRsMS4xLTEuNkM0MzMuNSAyNjAuOCA0MjcgMTgyIDM3NyAxMzJjLTU2LjUtNTYuNS0xNDgtNTYuNS0yMDQuNSAwTDYwLjIgMjQ0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpcmFTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAxNjAuNGMwLTM1LjUgMjguOC02NC40IDY0LjQtNjQuNGM2LjkgMCAxMy44IDEuMSAyMC40IDMuM2w4MS4yIDI3LjFjMTYuOCA1LjYgMzQuOS0zLjUgNDAuNS0yMC4ycy0zLjUtMzQuOS0yMC4yLTQwLjVMMjE3IDM4LjZjLTEzLjEtNC40LTI2LjgtNi42LTQwLjYtNi42QzEwNS41IDMyIDQ4IDg5LjUgNDggMTYwLjRWMTkySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4djMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ2Yy0yLjIgMTAuNS02LjEgMjAuNi0xMS43IDI5LjlMNC42IDQzMS41Yy01LjkgOS45LTYuMSAyMi4yLS40IDMyLjJTMjAuNSA0ODAgMzIgNDgwSDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg4OC41bC43LTEuMWMxMS42LTE5LjMgMTguOS00MC43IDIxLjYtNjIuOUgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTEyVjI1NkgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTEyVjE2MC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyLjEgMzguMmM5LjkgOC45IDEwLjcgMjQgMS44IDMzLjlsLTcyIDgwYy00LjQgNC45LTEwLjYgNy44LTE3LjIgNy45cy0xMi45LTIuNC0xNy42LTdMNyAxMTNDLTIuMyAxMDMuNi0yLjMgODguNCA3IDc5czI0LjYtOS40IDMzLjkgMGwyMi4xIDIyLjEgNTUuMS02MS4yYzguOS05LjkgMjQtMTAuNyAzMy45LTEuOHptMCAxNjBjOS45IDguOSAxMC43IDI0IDEuOCAzMy45bC03MiA4MGMtNC40IDQuOS0xMC42IDcuOC0xNy4yIDcuOXMtMTIuOS0yLjQtMTcuNi03TDcgMjczYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjIuMSAyMi4xIDU1LjEtNjEuMmM4LjktOS45IDI0LTEwLjcgMzMuOS0xLjh6TTIyNCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnptMCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDI1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTE2MCA0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQ4IDM2OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpc3RPbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNEg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxNzZoMTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRINTZWODBINDhDMzQuNyA4MCAyNCA2OS4zIDI0IDU2ek04Ni43IDM0MS4yYy02LjUtNy40LTE4LjMtNi45LTI0IDEuMkw1MS41IDM1Ny45Yy03LjcgMTAuOC0yMi43IDEzLjMtMzMuNSA1LjZzLTEzLjMtMjIuNy01LjYtMzMuNWwxMS4xLTE1LjZjMjMuNy0zMy4yIDcyLjMtMzUuNiA5OS4yLTQuOWMyMS4zIDI0LjQgMjAuOCA2MC45LTEuMSA4NC43TDg2LjggNDMySDEyMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgzMmMtOS41IDAtMTguMi01LjYtMjItMTQuNHMtMi4xLTE4LjkgNC4zLTI1LjlsNzItNzhjNS4zLTUuOCA1LjQtMTQuNiAuMy0yMC41ek0yMjQgNjRINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptMCAxNjBINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdFVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDE0NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyek02NCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em00OC0yMDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MCA0OEMyNi43IDQ4IDE2IDU4LjcgMTYgNzJ2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRIODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNzJjMC0xMy4zLTEwLjctMjQtMjQtMjRINDB6TTE5MiA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyem0wIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyek0xNiAyMzJ2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRIODhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjMyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHpNNDAgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg4OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzOTJjMC0xMy4zLTEwLjctMjQtMjQtMjRINDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpdGVjb2luU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNjRjMC0xNy43LTE0LjMtMzItMzItMzJTNjQgNDYuMyA2NCA2NFYyMTMuNkwyMy4yIDIyNS4yYy0xNyA0LjktMjYuOCAyMi42LTIyIDM5LjZzMjIuNiAyNi44IDM5LjYgMjJMNjQgMjgwLjFWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMjhWMjYxLjlsMTM2LjgtMzkuMWMxNy00LjkgMjYuOC0yMi42IDIyLTM5LjZzLTIyLjYtMjYuOC0zOS42LTIyTDEyOCAxOTUuM1Y2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jYXRpb25BcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjkuNiA5Mi4xYzQuOS0xMS45IDIuMS0yNS42LTctMzQuN3MtMjIuOC0xMS45LTM0LjctN2wtMzUyIDE0NGMtMTQuMiA1LjgtMjIuMiAyMC44LTE5LjMgMzUuOHMxNi4xIDI1LjggMzEuNCAyNS44SDIyNFY0MzJjMCAxNS4zIDEwLjggMjguNCAyNS44IDMxLjRzMzAtNS4xIDM1LjgtMTkuM2wxNDQtMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NhdGlvbkNyb3NzaGFpcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjYuN0MzNjguNCA4MC4xIDQzMS45IDE0My42IDQ0NS4zIDIyNEg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDQ1LjNDNDMxLjkgMzY4LjQgMzY4LjQgNDMxLjkgMjg4IDQ0NS4zVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDUuM0MxNDMuNiA0MzEuOSA4MC4xIDM2OC40IDY2LjcgMjg4SDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDY2LjdDODAuMSAxNDMuNiAxNDMuNiA4MC4xIDIyNCA2Ni43VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMjggMjU2YTEyOCAxMjggMCAxIDAgMjU2IDAgMTI4IDEyOCAwIDEgMCAtMjU2IDB6bTEyOC04MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jYXRpb25Eb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1LjcgNDk5LjJDMjY3IDQzNSAzODQgMjc5LjQgMzg0IDE5MkMzODQgODYgMjk4IDAgMTkyIDBTMCA4NiAwIDE5MmMwIDg3LjQgMTE3IDI0MyAxNjguMyAzMDcuMmMxMi4zIDE1LjMgMzUuMSAxNS4zIDQ3LjQgMHpNMTkyIDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jYXRpb25QaW5Mb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS43IDQ5OS4yYzExLTEzLjggMjUuMS0zMS43IDQwLjMtNTIuM1YzNTJjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjI3MmMwLTU1LjYgNDAuNS0xMDEuNyA5My42LTExMC41QzM2NyA3MCAyODcuNyAwIDE5MiAwQzg2IDAgMCA4NiAwIDE5MmMwIDg3LjQgMTE3IDI0MyAxNjguMyAzMDcuMmMxMi4zIDE1LjMgMzUuMSAxNS4zIDQ3LjQgMHpNMTkyIDEyOGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNNDAwIDI0MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEgzNjhWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jYXRpb25QaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmMwIDg3LjQtMTE3IDI0My0xNjguMyAzMDcuMmMtMTIuMyAxNS4zLTM1LjEgMTUuMy00Ny40IDBDMTE3IDQzNSAwIDI3OS40IDAgMTkyQzAgODYgODYgMCAxOTIgMFMzODQgODYgMzg0IDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9ja09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDE0NGMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwdjQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTQ0QzU3NiA2NC41IDUxMS41IDAgNDMyIDBTMjg4IDY0LjUgMjg4IDE0NHY0OEg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFYyNTZjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyVjE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMTQ0djQ4SDMwNFYxNDRjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6TTgwIDE5MlYxNDRDODAgNjQuNSAxNDQuNSAwIDIyNCAwczE0NCA2NC41IDE0NCAxNDR2NDhoMTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyNTZjMC0zNS4zIDI4LjctNjQgNjQtNjRIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY3VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMTZjOTguNyAwIDE4MC42IDcxLjQgMTk3IDE2NS40Yy05LTMuNS0xOC44LTUuNC0yOS01LjRINDMxLjhsLTQxLjgtOTcuNWMtMy40LTcuOS0xMC44LTEzLjQtMTkuMy0xNC40cy0xNyAyLjctMjIuMSA5LjZsLTQwLjkgNTUuNS0yMS43LTUwLjdjLTMuMy03LjgtMTAuNS0xMy4yLTE4LjktMTQuM3MtMTYuNyAyLjMtMjIgOC45bC0yNDAgMzA0Yy04LjIgMTAuNC02LjQgMjUuNSA0IDMzLjdzMjUuNSA2LjQgMzMuNy00bDc5LjQtMTAwLjUgNDMgMTYuNC00MC41IDU1Yy03LjkgMTAuNy01LjYgMjUuNyA1LjEgMzMuNnMyNS43IDUuNiAzMy42LTUuMUwyMTUuMSA0MDBoNzQuNWwtMjkuMyA0Mi4zYy03LjUgMTAuOS00LjggMjUuOCA2LjEgMzMuNHMyNS44IDQuOCAzMy40LTYuMUwzNDggNDAwaDgwLjRsMzguOCA2Ny45YzYuNiAxMS41IDIxLjIgMTUuNSAzMi43IDguOXMxNS41LTIxLjIgOC45LTMyLjdMNDgzLjYgNDAwSDQ5NmM0NC4xIDAgNzkuOC0zNS43IDgwLTc5LjdjMC0uMSAwLS4yIDAtLjNWMjgwQzU3NiAxNDMgNDY1IDMyIDMyOCAzMkgzMTJ6bTUwLjUgMTY4bDE3LjEgNDBIMzMzbDI5LjUtNDB6bS04Ny43IDM4LjFsLTEuNCAxLjlIMjI1LjFsMzIuNy00MS41IDE2LjkgMzkuNXpNODguOCAyNDBDNTcuNCAyNDAgMzIgMjY1LjQgMzIgMjk2LjhjMCAxNS41IDYuMyAzMCAxNi45IDQwLjRMMTI2LjcgMjQwSDg4Ljh6TTQ5NiAyODhhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdW5nc1ZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjE1Ni4yYy04LjUtNy42LTE5LjctMTIuMi0zMi0xMi4ycy0yMy41IDQuNi0zMiAxMi4yVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyek00NDQuNSAxOTUuNWMtMTYuNC0xNi40LTQxLjgtMTguNS02MC41LTYuMVYxNjUuM0MzODQgMTI3IDQxNSA5NiA0NTMuMyA5NmMyMS43IDAgNDIuOCAxMC4yIDU1LjggMjguOGMxNS40IDIyLjEgNDQuMyA2NS40IDcxIDExNi45YzI2LjUgNTAuOSA1Mi40IDExMi41IDU5LjYgMTcwLjNjLjIgMS4zIC4yIDIuNiAuMiA0djdjMCA0OS4xLTM5LjggODktODkgODljLTcuMyAwLTE0LjUtLjktMjEuNi0yLjdsLTcyLjctMTguMmMtMjAuOS01LjItMzguNy0xNy4xLTUxLjUtMzIuOWMxNCAxLjUgMjguNS0zIDM5LjItMTMuOGwtMjIuNi0yMi42IDIyLjYgMjIuNmMxOC43LTE4LjcgMTguNy00OS4xIDAtNjcuOWMtMS4xLTEuMS0xLjQtMi0xLjUtMi41Yy0uMS0uOC0uMS0xLjggLjQtMi45czEuMi0xLjkgMS44LTIuM2MuNS0uMyAxLjMtLjggMi45LS44YzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4Yy0xLjYgMC0yLjQtLjQtMi45LS44Yy0uNi0uNC0xLjMtMS4yLTEuOC0yLjNzLS41LTIuMi0uNC0yLjljLjEtLjYgLjQtMS40IDEuNS0yLjVjMTguNy0xOC43IDE4LjctNDkuMSAwLTY3Ljl6TTQyMS44IDQyMS44Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMEMzNzUuOSAzOTguNSAzMzYgNDE1IDMzNiA0NDhjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZjMC0zMy0zOS45LTQ5LjUtNjMuMi0yNi4yYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42QzI0MS41IDM3NS45IDIyNSAzMzYgMTkyIDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmMzMyAwIDQ5LjUtMzkuOSAyNi4yLTYzLjJjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEMyNjQuMSAyNDEuNSAzMDQgMjI1IDMwNCAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmMwIDMzIDM5LjkgNDkuNSA2My4yIDI2LjJjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42QzM5OC41IDI2NC4xIDQxNSAzMDQgNDQ4IDMwNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmMtMzMgMC00OS41IDM5LjktMjYuMiA2My4yYzYuMiA2LjIgNi4yIDE2LjQgMCAyMi42ek0xODMuMyA0OTEuMmwtNzIuNyAxOC4yYy03LjEgMS44LTE0LjMgMi43LTIxLjYgMi43Yy00OS4xIDAtODktMzkuOC04OS04OXYtN2MwLTEuMyAuMS0yLjcgLjItNGM3LjItNTcuOSAzMy4xLTExOS40IDU5LjYtMTcwLjNjMjYuOC01MS41IDU1LjYtOTQuOCA3MS0xMTYuOWMxMy0xOC42IDM0LTI4LjggNTUuOC0yOC44QzIyNSA5NiAyNTYgMTI3IDI1NiAxNjUuM3YyNC4xYy0xOC42LTEyLjQtNDQtMTAuMy02MC41IDYuMWMtMTguNyAxOC43LTE4LjcgNDkuMSAwIDY3LjljMS4xIDEuMSAxLjQgMiAxLjUgMi41Yy4xIC44IC4xIDEuOC0uNCAyLjlzLTEuMiAxLjktMS44IDIuM2MtLjUgLjMtMS4zIC44LTIuOSAuOGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OGMxLjYgMCAyLjQgLjQgMi45IC44Yy42IC40IDEuMyAxLjIgMS44IDIuM3MuNSAyLjIgLjQgMi45Yy0uMSAuNi0uNCAxLjQtMS41IDIuNWMtMTguNyAxOC43LTE4LjcgNDkuMSAwIDY3LjljMTAuNyAxMC43IDI1LjMgMTUuMyAzOS4yIDEzLjhjLTEyLjggMTUuOS0zMC42IDI3LjctNTEuNSAzMi45ek0yOTYgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptNzIgMzJhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHVuZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTY0LjFjMCAxNi40IDguNCAzMS43IDIyLjIgNDAuNWw5LjggNi4yVjE2NS4zQzM4NCAxMjcgNDE1IDk2IDQ1My4zIDk2YzIxLjcgMCA0Mi44IDEwLjIgNTUuOCAyOC44YzE1LjQgMjIuMSA0NC4zIDY1LjQgNzEgMTE2LjljMjYuNSA1MC45IDUyLjQgMTEyLjUgNTkuNiAxNzAuM2MuMiAxLjMgLjIgMi42IC4yIDR2N2MwIDQ5LjEtMzkuOCA4OS04OSA4OWMtNy4zIDAtMTQuNS0uOS0yMS42LTIuN2wtNzIuNy0xOC4yQzQxNCA0ODAuNSAzODQgNDQyLjEgMzg0IDM5OFYzMjVsOTAuNSA1Ny42YzcuNSA0LjcgMTcuMyAyLjUgMjIuMS00LjlzMi41LTE3LjMtNC45LTIyLjFMMzg0IDI4Ny4xdi0uNGwtNDQuMS0yOC4xYy03LjMtNC42LTEzLjktMTAuMS0xOS45LTE2LjFjLTUuOSA2LTEyLjYgMTEuNS0xOS45IDE2LjFMMjU2IDI4Ni43IDE2MS4yIDM0N2wtMTMuNSA4LjZjMCAwIDAgMC0uMSAwYy03LjQgNC44LTkuNiAxNC42LTQuOCAyMi4xYzQuNyA3LjUgMTQuNiA5LjcgMjIuMSA0LjlsOTEuMS01OFYzOThjMCA0NC4xLTMwIDgyLjUtNzIuNyA5My4xbC03Mi43IDE4LjJjLTcuMSAxLjgtMTQuMyAyLjctMjEuNiAyLjdjLTQ5LjEgMC04OS0zOS44LTg5LTg5di03YzAtMS4zIC4xLTIuNyAuMi00YzcuMi01Ny45IDMzLjEtMTE5LjQgNTkuNi0xNzAuM2MyNi44LTUxLjUgNTUuNi05NC44IDcxLTExNi45YzEzLTE4LjYgMzQtMjguOCA1NS44LTI4LjhDMjI1IDk2IDI1NiAxMjcgMjU2IDE2NS4zdjQ1LjVsOS44LTYuMmMxMy44LTguOCAyMi4yLTI0LjEgMjIuMi00MC41VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjcgMzMuNGMxMy41LTQuMSAyOC4xIDEuMSAzNS45IDEyLjlMMjI0IDI5NC4zIDM4OS40IDQ2LjJjNy44LTExLjcgMjIuNC0xNyAzNS45LTEyLjlTNDQ4IDQ5LjkgNDQ4IDY0VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjkuN0wyNTAuNiAzNjkuOGMtNS45IDguOS0xNS45IDE0LjItMjYuNiAxNC4ycy0yMC43LTUuMy0yNi42LTE0LjJMNjQgMTY5LjdWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjY0QzAgNDkuOSA5LjIgMzcuNSAyMi43IDMzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ25ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2MHY5NkMwIDM3OS43IDEwMC4zIDQ4MCAyMjQgNDgwczIyNC0xMDAuMyAyMjQtMjI0VjE2MEgzMjB2OTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZWMTYwSDB6bTAtMzJIMTI4VjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjR2NjR6bTMyMCAwSDQ0OFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzNTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3NBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTI0MSAxMTljLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzEgMzFIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDIzOC4xbC0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDcyLTcyYzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC03Mi03MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmlmeWluZ0dsYXNzQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHptLTMxMiA4djY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRsMC02NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHptODAtOTZWMjgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0em04MCA2NHY5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE4NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmlmeWluZ0dsYXNzRG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTIyOCAxMDRjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwdjE0Yy03LjYgMS43LTE1LjIgNC40LTIyLjIgOC41Yy0xMy45IDguMy0yNS45IDIyLjgtMjUuOCA0My45Yy4xIDIwLjMgMTIgMzMuMSAyNC43IDQwLjdjMTEgNi42IDI0LjcgMTAuOCAzNS42IDE0bDEuNyAuNWMxMi42IDMuOCAyMS44IDYuOCAyOCAxMC43YzUuMSAzLjIgNS44IDUuNCA1LjkgOC4yYy4xIDUtMS44IDgtNS45IDEwLjVjLTUgMy4xLTEyLjkgNS0yMS40IDQuN2MtMTEuMS0uNC0yMS41LTMuOS0zNS4xLTguNWMtMi4zLS44LTQuNy0xLjYtNy4yLTIuNGMtMTAuNS0zLjUtMjEuOCAyLjItMjUuMyAxMi42czIuMiAyMS44IDEyLjYgMjUuM2MxLjkgLjYgNCAxLjMgNi4xIDIuMWwwIDAgMCAwYzguMyAyLjkgMTcuOSA2LjIgMjguMiA4LjRWMzEyYzAgMTEgOSAyMCAyMCAyMHMyMC05IDIwLTIwVjI5OC4yYzgtMS43IDE2LTQuNSAyMy4yLTljMTQuMy04LjkgMjUuMS0yNC4xIDI0LjgtNDVjLS4zLTIwLjMtMTEuNy0zMy40LTI0LjYtNDEuNmMtMTEuNS03LjItMjUuOS0xMS42LTM3LjEtMTVsLS43LS4yYy0xMi44LTMuOS0yMS45LTYuNy0yOC4zLTEwLjVjLTUuMi0zLjEtNS4zLTQuOS01LjMtNi43YzAtMy43IDEuNC02LjUgNi4yLTkuM2M1LjQtMy4yIDEzLjYtNS4xIDIxLjUtNWM5LjYgLjEgMjAuMiAyLjIgMzEuMiA1LjJjMTAuNyAyLjggMjEuNi0zLjUgMjQuNS0xNC4ycy0zLjUtMjEuNi0xNC4yLTI0LjVjLTYuNS0xLjctMTMuNy0zLjQtMjEuMS00LjdWMTA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3NMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0yODggMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwYzAgNDguOCA0Ni41IDExMS42IDY4LjYgMTM4LjZjNiA3LjMgMTYuOCA3LjMgMjIuNyAwYzIyLjEtMjcgNjguNi04OS44IDY4LjYtMTM4LjZ6bS0xMTIgMGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWduaWZ5aW5nR2xhc3NNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMjA4YzAgNDUuOS0xNC45IDg4LjMtNDAgMTIyLjdMNTAyLjYgNDU3LjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMMzMwLjcgMzc2Yy0zNC40IDI1LjItNzYuOCA0MC0xMjIuNyA0MEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMFM0MTYgOTMuMSA0MTYgMjA4ek0xMzYgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDI4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ25pZnlpbmdHbGFzc1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOGMwIDQ1LjktMTQuOSA4OC4zLTQwIDEyMi43TDUwMi42IDQ1Ny40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zcy0zMi44IDEyLjUtNDUuMyAwTDMzMC43IDM3NmMtMzQuNCAyNS4yLTc2LjggNDAtMTIyLjcgNDBDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBTNDE2IDkzLjEgNDE2IDIwOHpNMTg0IDI5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjIzMmg2NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyMzJWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djY0SDEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg2NHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmlmeWluZ0dsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMCA0NS45LTE0LjkgODguMy00MCAxMjIuN0w1MDIuNiA0NTcuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwzMzAuNyAzNzZjLTM0LjQgMjUuMi03Ni44IDQwLTEyMi43IDQwQzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwUzQxNiA5My4xIDQxNiAyMDh6TTIwOCAzNTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYW5hdFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY5OC43QzY5LjIgMTEzLjkgMCAxOTIuOSAwIDI4OFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhjMC01OS42IDQwLjgtMTA5LjggOTYtMTI0VjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2NGM1NS4yIDE0LjIgOTYgNjQuMyA5NiAxMjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjg4YzAtOTUuMS02OS4yLTE3NC4xLTE2MC0xODkuM1Y2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwTG9jYXRpb25Eb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA4IDEyMGMwIDU0LjYtNzMuMSAxNTEuOS0xMDUuMiAxOTJjLTcuNyA5LjYtMjIgOS42LTI5LjYgMEMyNDEuMSAyNzEuOSAxNjggMTc0LjYgMTY4IDEyMEMxNjggNTMuNyAyMjEuNyAwIDI4OCAwczEyMCA1My43IDEyMCAxMjB6bTggODAuNGMzLjUtNi45IDYuNy0xMy44IDkuNi0yMC42Yy41LTEuMiAxLTIuNSAxLjUtMy43bDExNi00Ni40QzU1OC45IDEyMy40IDU3NiAxMzUgNTc2IDE1MlY0MjIuOGMwIDkuOC02IDE4LjYtMTUuMSAyMi4zTDQxNiA1MDNWMjAwLjR6TTEzNy42IDEzOC4zYzIuNCAxNC4xIDcuMiAyOC4zIDEyLjggNDEuNWMyLjkgNi44IDYuMSAxMy43IDkuNiAyMC42VjQ1MS44TDMyLjkgNTAyLjdDMTcuMSA1MDkgMCA0OTcuNCAwIDQ4MC40VjIwOS42YzAtOS44IDYtMTguNiAxNS4xLTIyLjNsMTIyLjYtNDl6TTMyNy44IDMzMmMxMy45LTE3LjQgMzUuNy00NS43IDU2LjItNzdWNTA0LjNMMTkyIDQ0OS40VjI1NWMyMC41IDMxLjMgNDIuMyA1OS42IDU2LjIgNzdjMjAuNSAyNS42IDU5LjEgMjUuNiA3OS42IDB6TTI4OCAxNTJhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuOCAzMTJDMzM0LjkgMjcxLjkgNDA4IDE3NC42IDQwOCAxMjBDNDA4IDUzLjcgMzU0LjMgMCAyODggMFMxNjggNTMuNyAxNjggMTIwYzAgNTQuNiA3My4xIDE1MS45IDEwNS4yIDE5MmM3LjcgOS42IDIyIDkuNiAyOS42IDB6TTQxNiA1MDNsMTQ0LjktNThjOS4xLTMuNiAxNS4xLTEyLjUgMTUuMS0yMi4zVjE1MmMwLTE3LTE3LjEtMjguNi0zMi45LTIyLjNsLTExNiA0Ni40Yy0uNSAxLjItMSAyLjUtMS41IDMuN2MtMi45IDYuOC02LjEgMTMuNy05LjYgMjAuNlY1MDN6TTE1LjEgMTg3LjNDNiAxOTEgMCAxOTkuOCAwIDIwOS42VjQ4MC40YzAgMTcgMTcuMSAyOC42IDMyLjkgMjIuM0wxNjAgNDUxLjhWMjAwLjRjLTMuNS02LjktNi43LTEzLjgtOS42LTIwLjZjLTUuNi0xMy4yLTEwLjQtMjcuNC0xMi44LTQxLjVsLTEyMi42IDQ5ek0zODQgMjU1Yy0yMC41IDMxLjMtNDIuMyA1OS42LTU2LjIgNzdjLTIwLjUgMjUuNi01OS4xIDI1LjYtNzkuNiAwYy0xMy45LTE3LjQtMzUuNy00NS43LTU2LjItNzdWNDQ5LjRsMTkyIDU0LjlWMjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTQ0YTE0NCAxNDQgMCAxIDEgMjg4IDBBMTQ0IDE0NCAwIDEgMSAxNiAxNDR6TTE2MCA4MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNTMgMC05NiA0My05NiA5NmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2YzAtMzUuMyAyOC43LTY0IDY0LTY0ek0xMjggNDgwVjMxNy4xYzEwLjQgMS45IDIxLjEgMi45IDMyIDIuOXMyMS42LTEgMzItMi45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA0NzYuMUwxOTIgNDIxLjJWMzUuOUwzODQgOTAuOFY0NzYuMXptMzItMS4yVjg4LjRMNTQzLjEgMzcuNWMxNS44LTYuMyAzMi45IDUuMyAzMi45IDIyLjNWMzk0LjZjMCA5LjgtNiAxOC42LTE1LjEgMjIuM0w0MTYgNDc0Ljh6TTE1LjEgOTUuMUwxNjAgMzcuMlY0MjMuNkwzMi45IDQ3NC41QzE3LjEgNDgwLjggMCA0NjkuMiAwIDQ1Mi4yVjExNy40YzAtOS44IDYtMTguNiAxNS4xLTIyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcmtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEgMzFDNDQ1LjEtNC44IDM4Ni45LTQuOCAzNTEgMzFsLTE1IDE1TDMyMi45IDMzQzI5NC44IDQuOSAyNDkuMiA0LjkgMjIxLjEgMzNMMTM1IDExOWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwTDI1NSA2Ni45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwTDMwMi4xIDgwIDE4Ni4zIDE5NS43IDMxNi4zIDMyNS43IDQ4MSAxNjFjMzUuOS0zNS45IDM1LjktOTQuMSAwLTEyOS45ek0yOTMuNyAzNDguM0wxNjMuNyAyMTguMyA5OS41IDI4Mi41Yy00OCA0OC04MC44IDEwOS4yLTk0LjEgMTc1LjhsLTUgMjVjLTEuNiA3LjkgLjkgMTYgNi42IDIxLjdzMTMuOCA4LjEgMjEuNyA2LjZsMjUtNWM2Ni42LTEzLjMgMTI3LjgtNDYuMSAxNzUuOC05NC4xbDY0LjItNjQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc0FuZFZlbnVzQnVyc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzkgMzktMjIuMiAyMi4yQzQ3NS45IDc4LjQgNDM5LjYgNjQgNDAwIDY0Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MGMwIDgwLjIgNTkgMTQ2LjYgMTM2IDE1OC4yVjQwOEgzNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjR2MzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NTZoMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDI0VjM4Mi4yYzc3LTExLjYgMTM2LTc4IDEzNi0xNTguMmMwLTMxLjQtOS02MC43LTI0LjctODUuNEw1NjAgMTEzLjlsMzkgMzljNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4yVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDUwNHpNNDAwIDEyOGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpNMTkwLjkgMTguMUMxODguNCAxMiAxODIuNiA4IDE3NiA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNzYgMjg2LjFsNTguNiA1My45YzQuMSAzLjggOS45IDUuMSAxNS4yIDMuNkMyMjMuNiAzMTAuOCAyMDggMjY5LjIgMjA4IDIyNGMwLTYwLjggMjguMy0xMTUgNzIuNC0xNTAuMkwyMjAuMyA5Mi4xbC0yOS40LTc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzQW5kVmVudXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM3LjggMTQuOEMzNDEuNSA1LjggMzUwLjMgMCAzNjAgMEg0NzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMTM2YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTM5LTM5LTI0LjcgMjQuN0M0MDcgMTYzLjMgNDE2IDE5Mi42IDQxNiAyMjRjMCA4MC4yLTU5IDE0Ni42LTEzNiAxNTguMlY0MDhoMjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjgwdjMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjQ1NkgyMDhjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMjRWMzgyLjJDMTU1IDM3MC42IDk2IDMwNC4yIDk2IDIyNGMwLTg4LjQgNzEuNi0xNjAgMTYwLTE2MGMzOS42IDAgNzUuOSAxNC40IDEwMy44IDM4LjJMMzgyLjEgODAgMzQzIDQxYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yek00NDggNDhsMCAwaDB2MHpNMzUyIDIyNGE5NiA5NiAwIDEgMCAtMTkyIDAgOTYgOTYgMCAxIDAgMTkyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDMyYy05LjcgMC0xOC41IDUuOC0yMi4yIDE0LjhzLTEuNyAxOS4zIDUuMiAyNi4ybDMzLjQgMzMuNEwyNzUuOCAxNTljLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzFDNzguOCAxMjggMCAyMDYuOCAwIDMwNHM3OC44IDE3NiAxNzYgMTc2czE3Ni03OC44IDE3Ni0xNzZjMC0zNy0xMS40LTcxLjQtMzEtOTkuOGw1Mi42LTUyLjZMNDA3IDE4NWM2LjkgNi45IDE3LjIgOC45IDI2LjIgNS4yczE0LjgtMTIuNSAxNC44LTIyLjJWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRIMzEyem04OCA0OGgwdjBsMCAwek02NCAzMDRhMTEyIDExMiAwIDEgMSAyMjQgMEExMTIgMTEyIDAgMSAxIDY0IDMwNHpNMzY4IDQ4MGM5Ny4yIDAgMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDUyLjYtNTIuNkw1OTkgMTg1YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEg1MDRjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOGMtMS4yIDIuOS0xLjggNi0xLjggOWwwIC4ydi4yYzAgNi4yIDIuNSAxMi4yIDcgMTYuOGwzMy40IDMzLjRMNDgwIDE0Ni43VjE2OGMwIDIyLjYtMTMuNiA0My4xLTM0LjYgNTEuN2MtLjggLjMtMS43IC43LTIuNSAxQzQ2NS43IDI0MS4yIDQ4MCAyNzAuOSA0ODAgMzA0YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyYy01LjQgMC0xMC44LS40LTE2LTEuMWMtMTIuOSAyMC40LTI5LjEgMzguMy00OC4xIDUzLjFjMTkuOCA3LjggNDEuNCAxMiA2NCAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAzNjhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0em0xNzQuNC04OEMzNzAuNyAzNjUuOCAyOTcuMSA0MzIgMjA4IDQzMmMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NmM4OS4xIDAgMTYyLjcgNjYuMiAxNzQuNCAxNTJINDE2VjE3NmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djU2aDMyVjE3NmMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTgwIDgwYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4yVjI4MEg0NjR2NTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjgwSDM4Mi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ4LjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDY0IDY0YzQuNiA0LjYgNS45IDExLjUgMy41IDE3LjRzLTguMyA5LjktMTQuOCA5LjlIMTg0djI0aDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE4NHYyNGMwIC42IDAgMS4yLS4xIDEuOGM3NyAxMS42IDEzNi4xIDc4IDEzNi4xIDE1OC4yYzAgODguNC03MS42IDE2MC0xNjAgMTYwUzAgNDQwLjQgMCAzNTJjMC04MC4yIDU5LjEtMTQ2LjcgMTM2LjEtMTU4LjJjMC0uNi0uMS0xLjItLjEtMS44VjE2OEgxMDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMzJWOTZIOTZjLTYuNSAwLTEyLjMtMy45LTE0LjgtOS45cy0xLjEtMTIuOSAzLjUtMTcuNGw2NC02NHpNMjU2IDM1MkE5NiA5NiAwIDEgMCA2NCAzNTJhOTYgOTYgMCAxIDAgMTkyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnNTdHJva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc2IDBjLTkuNyAwLTE4LjUgNS44LTIyLjIgMTQuOHMtMS43IDE5LjMgNS4yIDI2LjJsMzMuNCAzMy40TDM3MC4zIDk2LjQgMzQ1IDcxYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45bDI1LjQgMjUuNEwzMDcuOCAxNTljLTI4LjQtMTkuNS02Mi43LTMxLTk5LjgtMzFjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzZzMTc2LTc4LjggMTc2LTE3NmMwLTM3LTExLjQtNzEuNC0zMS05OS44bDI4LjYtMjguNkw0MDcgMjAxYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtMjUuNC0yNS40IDIyLjEtMjIuMUw0NzEgMTUzYzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMlYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzNzZ6bTg4IDQ4aDB2MGwwIDB6TTk2IDMwNGExMTIgMTEyIDAgMSAxIDIyNCAwQTExMiAxMTIgMCAxIDEgOTYgMzA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OS44IDQ2LjhjMy43LTkgMTIuNS0xNC44IDIyLjItMTQuOEg0MjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMTY4YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEwzMjEgMjA0LjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NlMwIDQwMS4yIDAgMzA0czc4LjgtMTc2IDE3Ni0xNzZjMzcgMCA3MS40IDExLjQgOTkuOCAzMWw1Mi42LTUyLjZMMjk1IDczYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yek00MDAgODBsMCAwaDB2MHpNMTc2IDQxNmExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnRpbmlHbGFzc0NpdHJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMjQwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2Yy0zNS41IDAtNjYuNiAxOS4zLTgzLjIgNDhIMjk2LjJDMzE2IDQwLjEgMzY5LjMgMCA0MzIgMGM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NHMtNjQuNSAxNDQtMTQ0IDE0NGMtMjcuNyAwLTUzLjUtNy44LTc1LjUtMjEuM2wzNS40LTM1LjRjMTIuMiA1LjYgMjUuOCA4LjcgNDAuMSA4Ljd6TTEuOCAxNDIuOEM1LjUgMTMzLjggMTQuMyAxMjggMjQgMTI4SDM5MmM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTE3NyAxNzdWNDY0aDY0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIwOCAxMjBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoNjRWMzQ1LjlMNyAxNjljLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnRpbmlHbGFzc0VtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTkuMSAwIDcuNCA3LjggMi40IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45TDIyNCAyNjkuM1Y0NDhIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDk2IDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OFYyNjkuM0w1MDIuNiA1NC42YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45UzQ5Mi45IDAgNDgwIDBIMzJ6TTI1NiAyMTAuN0wxMDkuMyA2NEg0MDIuN0wyNTYgMjEwLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcnRpbmlHbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzE5LjEgMCA3LjQgNy44IDIuNCAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOUwyMjQgMjY5LjNWNDQ4SDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NiA5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyODhWMjY5LjNMNTAyLjYgNTQuNmM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOVM0OTIuOSAwIDQ4MCAwSDMyek0xNzMuMyAxMjhsLTY0LTY0SDQwMi43bC02NCA2NEgxNzMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFza0ZhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDY0Yy0yNy4yIDAtNTMuOCA4LTc2LjQgMjMuMWwtMzcuMSAyNC44Yy0xNS44IDEwLjUtMzQuMyAxNi4xLTUzLjMgMTYuMUgxNDQgMTI4IDU2Yy0zMC45IDAtNTYgMjUuMS01NiA1NnY4NWMwIDU1LjEgMzcuNSAxMDMuMSA5MC45IDExNi40bDEwOCAyN0MyMzMuOCA0MzUgMjc1LjQgNDQ4IDMyMCA0NDhzODYuMi0xMyAxMjEuMS0zNS41bDEwOC0yN0M2MDIuNSAzNzIuMSA2NDAgMzI0LjEgNjQwIDI2OVYxODRjMC0zMC45LTI1LjEtNTYtNTYtNTZINTEyIDQ5NmgtOS4yYy0xOSAwLTM3LjUtNS42LTUzLjMtMTYuMUwzOTYuNCA4Ny4xQzM3My44IDcyIDM0Ny4yIDY0IDMyMCA2NHpNMTMyLjMgMzQ2LjNsLTI5LjgtNy40QzcwLjUgMzMwLjkgNDggMzAyLjEgNDggMjY5VjE4NGMwLTQuNCAzLjYtOCA4LThIOTZ2NDhjMCA0NS4xIDEzLjQgODcuMiAzNi4zIDEyMi4zem00MDUuMS03LjRsLTI5LjggNy40YzIzLTM1LjIgMzYuMy03Ny4yIDM2LjMtMTIyLjNWMTc2aDQwYzQuNCAwIDggMy42IDggOHY4NWMwIDMzLTIyLjUgNjEuOC01NC41IDY5Ljl6TTE5MiAyMDhjMC04LjggNy4yLTE2IDE2LTE2SDQzMmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNnptMTYgNDhINDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMTYgODBjMC04LjggNy4yLTE2IDE2LTE2SDQwMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFza1ZlbnRpbGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU5LjEgMTc2QzEzOS40IDIxOS4yIDEyOCAyNjQuNyAxMjggMzAwLjhjMCAxNS45IDIuMiAzMS40IDYuMyA0NmwtMzEuOC03LjlDNzAuNSAzMzAuOSA0OCAzMDIuMSA0OCAyNjlWMTg0YzAtNC40IDMuNi04IDgtOEgxNTkuMXptMjYtNDhINTZjLTMwLjkgMC01NiAyNS4xLTU2IDU2djg1YzAgNTUuMSAzNy41IDEwMy4xIDkwLjkgMTE2LjRsNzEuMyAxNy44YzIyLjcgMzAuNSA1NS40IDU0LjEgOTMuOCA2Ni42VjM5My4zYy0xOS43LTE2LjQtMzItNDAuMy0zMi02Ni45YzAtNDkuNSA0My0xMzQuNCA5Ni0xMzQuNGM1Mi41IDAgOTYgODQuOSA5NiAxMzQuNGMwIDI2LjctMTIuNCA1MC40LTMyIDY2Ljh2NzYuNmMzOC0xMi42IDcwLjYtMzYgOTMuNS02Ni40bDcxLjYtMTcuOUM2MDIuNSAzNzIuMSA2NDAgMzI0LjEgNjQwIDI2OVYxODRjMC0zMC45LTI1LjEtNTYtNTYtNTZINDU0LjVDNDE5LjcgNzMuOCAzNzIuMSAzMiAzMjAgMzJjLTUyLjYgMC0xMDAuMiA0MS44LTEzNC45IDk2em0yOTUuNiA0OEg1ODRjNC40IDAgOCAzLjYgOCA4djg1YzAgMzMtMjIuNSA2MS44LTU0LjUgNjkuOWwtMzEuOCA4YzQuMi0xNC43IDYuNC0zMC4xIDYuNC00Ni4xYzAtMzYuMS0xMS42LTgxLjYtMzEuMy0xMjQuOHpNMjg4IDMyMFY1MTJoNjRWMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCA2NEM2NCA2NCAwIDE2MCAwIDI3MlM4MCA0NDggMTc2IDQ0OGg4LjRjMjQuMiAwIDQ2LjQtMTMuNyA1Ny4yLTM1LjRsMjMuMi00Ni4zYzQuNC04LjggMTMuMy0xNC4zIDIzLjItMTQuM3MxOC44IDUuNSAyMy4yIDE0LjNsMjMuMiA0Ni4zYzEwLjggMjEuNyAzMyAzNS40IDU3LjIgMzUuNEg0MDBjOTYgMCAxNzYtNjQgMTc2LTE3NnMtNjQtMjA4LTI4OC0yMDh6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA5NiAyNTZ6bTMyMC02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFza3NUaGVhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTc0LjYgMzczLjJjNDEuNyAzNi4xIDEwOCA4Mi41IDE2Ni4xIDczLjdjNi4xLS45IDEyLjEtMi41IDE4LTQuNWMtOS4yLTEyLjMtMTcuMy0yNC40LTI0LjItMzUuNGMtMjEuOS0zNS0yOC44LTc1LjItMjUuOS0xMTMuNmMtMjAuNiA0LjEtMzkuMiAxMy01NC43IDI1LjRjLTYuNSA1LjItMTYuMyAxLjMtMTQuOC03YzYuNC0zMy41IDMzLTYwLjkgNjguMi02Ni4zYzIuNi0uNCA1LjMtLjcgNy45LS44bDE5LjQtMTMxLjNjMi0xMy44IDgtMzIuNyAyNS00NS45QzI3OC4yIDUzLjIgMzEwLjUgMzcgMzYzLjIgMzIuMmMtLjgtLjctMS42LTEuNC0yLjQtMi4xQzM0MC42IDE0LjUgMjg4LjQtMTEuNSAxNzUuNyA1LjZTMjAuNSA2MyA1LjcgODMuOUMwIDkxLjktLjggMTAyIC42IDExMS44TDI0LjggMjc2LjFjNS41IDM3LjMgMjEuNSA3Mi42IDQ5LjggOTcuMnptODcuNy0yMTkuNmM0LjQtMy4xIDEwLjgtMiAxMS44IDMuM2MuMSAuNSAuMiAxLjEgLjMgMS42YzMuMiAyMS44LTExLjYgNDItMzMuMSA0NS4zcy00MS41LTExLjgtNDQuNy0zMy41Yy0uMS0uNS0uMS0xLjEtLjItMS42Yy0uNi01LjQgNS4yLTguNCAxMC4zLTYuN2M5IDMgMTguOCAzLjkgMjguNyAyLjRzMTkuMS01LjMgMjYuOC0xMC44ek0yNjEuNiAzOTBjMjkuNCA0Ni45IDc5LjUgMTEwLjkgMTM3LjYgMTE5LjdzMTI0LjUtMzcuNSAxNjYuMS03My43YzI4LjMtMjQuNSA0NC4zLTU5LjggNDkuOC05Ny4ybDI0LjItMTY0LjNjMS40LTkuOCAuNi0xOS45LTUuMS0yNy45Yy0xNC44LTIwLjktNTcuMy02MS4yLTE3MC03OC4zUzI5OS40IDc3LjIgMjc5LjIgOTIuOGMtNy44IDYtMTEuNSAxNS40LTEyLjkgMjUuMkwyNDIuMSAyODIuM2MtNS41IDM3LjMtLjQgNzUuOCAxOS42IDEwNy43ek00MDQuNSAyMzUuM2MtNy43LTUuNS0xNi44LTkuMy0yNi44LTEwLjhzLTE5LjgtLjYtMjguNyAyLjRjLTUuMSAxLjctMTAuOS0xLjMtMTAuMy02LjdjLjEtLjUgLjEtMS4xIC4yLTEuNmMzLjItMjEuOCAyMy4yLTM2LjggNDQuNy0zMy41czM2LjMgMjMuNSAzMy4xIDQ1LjNjLS4xIC41LS4yIDEuMS0uMyAxLjZjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjN6bTEzNi4yIDE1LjVjLTEgNS4zLTcuNCA2LjQtMTEuOCAzLjNjLTcuNy01LjUtMTYuOC05LjMtMjYuOC0xMC44cy0xOS44LS42LTI4LjcgMi40Yy01LjEgMS43LTEwLjktMS4zLTEwLjMtNi43Yy4xLS41IC4xLTEuMSAuMi0xLjZjMy4yLTIxLjggMjMuMi0zNi44IDQ0LjctMzMuNXMzNi4zIDIzLjUgMzMuMSA0NS4zYy0uMSAuNS0uMiAxLjEtLjMgMS42ek01MzAgMzUwLjJjLTE5LjYgNDQuNy02Ni44IDcyLjUtMTE2LjggNjQuOXMtODcuMS00OC4yLTkzLTk2LjdjLTEtOC4zIDguOS0xMi4xIDE1LjItNi43YzIzLjkgMjAuOCA1My42IDM1LjMgODcgNDAuM3M2Ni4xIC4xIDk0LjktMTIuOGM3LjYtMy40IDE2IDMuMiAxMi42IDEwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hdHRyZXNzUGlsbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMjU2VjY0em0zMiAzODRINTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEgyODhWNDQ4ek02NCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1heGltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMCAzMkg1NkM0Mi43IDMyIDMyIDQyLjcgMzIgNTZWMjAwYzAgOS43IDUuOCAxOC41IDE0LjggMjIuMnMxOS4zIDEuNyAyNi4yLTUuMmw0MC00MCA3OSA3OS03OSA3OUw3MyAyOTVjLTYuOS02LjktMTcuMi04LjktMjYuMi01LjJTMzIgMzAyLjMgMzIgMzEyVjQ1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNEgyMDBjOS43IDAgMTguNS01LjggMjIuMi0xNC44czEuNy0xOS4zLTUuMi0yNi4ybC00MC00MCA3OS03OSA3OSA3OS00MCA0MGMtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44SDQ1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYzMTJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMmwtNDAgNDAtNzktNzkgNzktNzkgNDAgNDBjNi45IDYuOSAxNy4yIDguOSAyNi4yIDUuMnMxNC44LTEyLjUgMTQuOC0yMi4yVjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDMxMmMtOS43IDAtMTguNSA1LjgtMjIuMiAxNC44cy0xLjcgMTkuMyA1LjIgMjYuMmw0MCA0MC03OSA3OS03OS03OSA0MC00MGM2LjktNi45IDguOS0xNy4yIDUuMi0yNi4yUzIwOS43IDMyIDIwMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xIDM4LjJDMS40IDM0LjIgMCAyOS40IDAgMjQuNkMwIDExIDExIDAgMjQuNiAwSDEzMy45YzExLjIgMCAyMS43IDUuOSAyNy40IDE1LjVsNjguNSAxMTQuMWMtNDguMiA2LjEtOTEuMyAyOC42LTEyMy40IDYxLjlMNC4xIDM4LjJ6bTUwMy43IDBMNDA1LjYgMTkxLjVjLTMyLjEtMzMuMy03NS4yLTU1LjgtMTIzLjQtNjEuOUwzNTAuNyAxNS41QzM1Ni41IDUuOSAzNjYuOSAwIDM3OC4xIDBINDg3LjRDNTAxIDAgNTEyIDExIDUxMiAyNC42YzAgNC44LTEuNCA5LjYtNC4xIDEzLjZ6TTgwIDMzNmExNzYgMTc2IDAgMSAxIDM1MiAwQTE3NiAxNzYgMCAxIDEgODAgMzM2em0xODQuNC05NC45Yy0zLjQtNy0xMy4zLTctMTYuOCAwbC0yMi40IDQ1LjRjLTEuNCAyLjgtNCA0LjctNyA1LjFMMTY4IDI5OC45Yy03LjcgMS4xLTEwLjcgMTAuNS01LjIgMTZsMzYuMyAzNS40YzIuMiAyLjIgMy4yIDUuMiAyLjcgOC4zbC04LjYgNDkuOWMtMS4zIDcuNiA2LjcgMTMuNSAxMy42IDkuOWw0NC44LTIzLjZjMi43LTEuNCA2LTEuNCA4LjcgMGw0NC44IDIzLjZjNi45IDMuNiAxNC45LTIuMiAxMy42LTkuOWwtOC42LTQ5LjljLS41LTMgLjUtNi4xIDIuNy04LjNsMzYuMy0zNS40YzUuNi01LjQgMi41LTE0LjgtNS4yLTE2bC01MC4xLTcuM2MtMy0uNC01LjctMi40LTctNS4xbC0yMi40LTQ1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lbW9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHY3LjRjMCA2LjggNC40IDEyLjYgMTAuMSAxNi4zQzIzLjMgMTYwLjMgMzIgMTc1LjEgMzIgMTkycy04LjcgMzEuNy0yMS45IDQwLjNDNC40IDIzNiAwIDI0MS44IDAgMjQ4LjZWMzIwSDU3NlYyNDguNmMwLTYuOC00LjQtMTIuNi0xMC4xLTE2LjNDNTUyLjcgMjIzLjcgNTQ0IDIwOC45IDU0NCAxOTJzOC43LTMxLjcgMjEuOS00MC4zYzUuNy0zLjcgMTAuMS05LjUgMTAuMS0xNi4zVjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNNTc2IDM1MkgwdjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDgwVjQxNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyaDk2VjQxNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyaDk2VjQxNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyaDk2VjQxNmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djMyaDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MnpNMTkyIDE2MHY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnptMTI4IDB2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6bTEyOCAwdjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZW5vcmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjggNy40QzIyLjggMi45IDI3LjEgMCAzMiAwczkuMiAyLjkgMTEuMiA3LjRMNjEuMyA0OS43YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMlMwIDgxLjcgMCA2NFY2Mi44YzAtNC41IC45LTguOSAyLjctMTMuMUwyMC44IDcuNHptOTYgMEMxMTguOCAyLjkgMTIzLjEgMCAxMjggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjIuOGMwLTQuNSAuOS04LjkgMi43LTEzLjFMMTE2LjggNy40em03Ny44IDQyLjRMMjEyLjggNy40QzIxNC44IDIuOSAyMTkuMSAwIDIyNCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY2Mi44YzAtNC41IC45LTguOSAyLjctMTMuMXpNMzA4LjggNy40QzMxMC44IDIuOSAzMTUuMSAwIDMyMCAwczkuMiAyLjkgMTEuMiA3LjRsMTguMiA0Mi40YzEuOCA0LjEgMi43IDguNiAyLjcgMTMuMVY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY2Mi44YzAtNC41IC45LTguOSAyLjctMTMuMUwzMDguOCA3LjR6bTc3LjggNDIuNEw0MDQuOCA3LjRDNDA2LjggMi45IDQxMS4xIDAgNDE2IDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjYyLjhjMC00LjUgLjktOC45IDIuNy0xMy4xek01MDAuOCA3LjRDNTAyLjggMi45IDUwNy4xIDAgNTEyIDBzOS4yIDIuOSAxMS4yIDcuNGwxOC4yIDQyLjRjMS44IDQuMSAyLjcgOC42IDIuNyAxMy4xVjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjYyLjhjMC00LjUgLjktOC45IDIuNy0xMy4xTDUwMC44IDcuNHptNzcuOCA0Mi40TDU5Ni44IDcuNEM1OTguOCAyLjkgNjAzLjEgMCA2MDggMHM5LjIgMi45IDExLjIgNy40bDE4LjIgNDIuNGMxLjggNC4xIDIuNyA4LjYgMi43IDEzLjFWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNjIuOGMwLTQuNSAuOS04LjkgMi43LTEzLjF6TTMyIDEyOGMxNy43IDAgMzIgMTQuMyAzMiAzMlYyODhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMjg4VjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjMyMEg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMjg4YzAgNTMtNDMgOTYtOTYgOTZIMzUydjY0SDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMjAgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDI4OFYzODRIOTZjLTUzIDAtOTYtNDMtOTYtOTZWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2IDMySDk2VjI1NiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTYgMzJIMTkyVjI1NiAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2IDMySDM4NFYyNTYgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2IDMySDQ4MFYyNTYgMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZXJjdXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcyLjEgN0M4NS44LTQgMTA2LTEuOCAxMTcgMTJjMTcuNiAyMiA0NC43IDM2IDc1IDM2czU3LjMtMTQgNzUtMzZjMTEuMS0xMy44IDMxLjItMTYgNDUtNXMxNiAzMS4yIDUgNDVjLTcuOCA5LjctMTYuNiAxOC40LTI2LjQgMjYuMUMzMzcuMyAxMDkuNyAzNjggMTYzLjMgMzY4IDIyNGMwIDg5LjEtNjYuMiAxNjIuNy0xNTIgMTc0LjRWNDI0aDMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIxNnYxNmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY0NzJIMTM2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDMyVjM5OC40QzgyLjIgMzg2LjcgMTYgMzEzLjEgMTYgMjI0YzAtNjAuNyAzMC43LTExNC4zIDc3LjUtMTQ1LjlDODMuNyA3MC41IDc0LjkgNjEuNyA2Ny4xIDUyYy0xMS4xLTEzLjgtOC44LTMzLjkgNS00NXpNODAgMjI0YTExMiAxMTIgMCAxIDAgMjI0IDBBMTEyIDExMiAwIDEgMCA4MCAyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lc3NhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWMzUyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2djgwYzAgNi4xIDMuNCAxMS42IDguOCAxNC4zczExLjkgMi4xIDE2LjgtMS41TDMwOS4zIDQxNkg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1ldGVvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTMuNyAuOUwyOTkuNCA3NS42bDIuMy0yOS4zYzEtMTIuOC0xMi44LTIxLjUtMjQtMTUuMUwxMDEuMyAxMzMuNEMzOC42IDE2OS43IDAgMjM2LjYgMCAzMDlDMCA0MjEuMSA5MC45IDUxMiAyMDMgNTEyYzcyLjQgMCAxMzkuNC0zOC42IDE3NS43LTEwMS4zTDQ4MC44IDIzNC4zYzYuNS0xMS4xLTIuMi0yNS0xNS4xLTI0bC0yOS4zIDIuM0w1MTEuMSAxOC4zYy42LTEuNSAuOS0zLjIgLjktNC44QzUxMiA2IDUwNiAwIDQ5OC41IDBjLTEuNyAwLTMuMyAuMy00LjggLjl6TTE5MiAxOTJhMTI4IDEyOCAwIDEgMSAwIDI1NiAxMjggMTI4IDAgMSAxIDAtMjU2em0wIDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTE2IDk2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9jaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINjR2NTZIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINjR2NTZIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINjRjMCAzNS4zIDI4LjcgNjQgNjQgNjR2NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NDhoNTZ2NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NDhoNTZ2NDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRoNDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDQ4VjI4MGg0MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0NDhWMTc2aDQwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQ0OGMwLTM1LjMtMjguNy02NC02NC02NFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEgyODBWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWNjRIMTc2VjI0ek0xNjAgMTI4SDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAzMkgxNjBWMzUySDM1MlYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmVMaW5lc1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDcyLjEgMzQ0LjdjMTUuMi0yNiAyMy45LTU2LjMgMjMuOS04OC43VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHYyNCAxNmMwIDIxLjItNS4xIDQxLjEtMTQuMiA1OC43TDQxNiAzMDAuOFYyNTZIMzU4LjlsLTM0LjUtMjdjMi45LTMuMSA3LTUgMTEuNi01aDgwVjE5MkgzMzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoODBWMTI4SDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4MGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnY1NC4zTDM4LjggNS4xek0zNTguMiAzNzguMkMzNDYuMSAzODIgMzMzLjMgMzg0IDMyMCAzODRjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4di04LjdMMTQ0LjcgMjEwYy0uNSAxLjktLjcgMy45LS43IDZ2NDBjMCA4OS4xIDY2LjIgMTYyLjcgMTUyIDE3NC40VjQ2NEgyNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNzIgNzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzQ0VjQzMC40YzIwLjQtMi44IDM5LjctOS4xIDU3LjMtMTguMmwtNDMuMS0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgOTZWMjU2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZIMjA4Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDgwVjE5MkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoODBWMTI4SDIwOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg4MGMwLTUzLTQzLTk2LTk2LTk2Uzk2IDQzIDk2IDk2ek0zMjAgMjQwdjE2YzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY0MGMwIDg5LjEgNjYuMiAxNjIuNyAxNTIgMTc0LjRWNDY0SDEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg3MiA3MmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyMTZWNDMwLjRjODUuOC0xMS43IDE1Mi04NS4zIDE1Mi0xNzQuNFYyMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ3Mi4xIDM0NC43YzE1LjItMjYgMjMuOS01Ni4zIDIzLjktODguN1YyMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NDBjMCAyMS4yLTUuMSA0MS4xLTE0LjIgNTguN0w0MTYgMzAwLjhWOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZ2NTQuM0wzOC44IDUuMXptMzYyLjUgNDA3bC00My4xLTMzLjlDMzQ2LjEgMzgyIDMzMy4zIDM4NCAzMjAgMzg0Yy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHYtOC43TDE0NC43IDIxMGMtLjUgMS45LS43IDMuOS0uNyA2djQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNFY0NjRIMjQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDcyIDcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM0NFY0MzAuNGMyMC40LTIuOCAzOS43LTkuMSA1Ny4zLTE4LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBDMTM5IDAgOTYgNDMgOTYgOTZWMjU2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZWOTZjMC01My00My05Ni05Ni05NnpNNjQgMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djQwYzAgODkuMSA2Ni4yIDE2Mi43IDE1MiAxNzQuNFY0NjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDcyIDcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIxNlY0MzAuNGM4NS44LTExLjcgMTUyLTg1LjMgMTUyLTE3NC40VjIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY0MGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOFYyMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3Jvc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIgNDQ4SDMyMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOHMtNTcuMy0xMjgtMTI4LTEyOFYxMjhjMTA2IDAgMTkyIDg2IDE5MiAxOTJjMCA0OS4yLTE4LjUgOTQtNDguOSAxMjhINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMCAzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnptODAtNjRIMzA0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWlsbFNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAyLjEgNDIuOGM1LjktMTYuNi0yLjctMzUtMTkuNC00MC45cy0zNSAyLjctNDAuOSAxOS40TDIwOCAxMTYuMWMtNS43IDQtMTEuMSA4LjUtMTYgMTMuNUMxNzEuNyAxMDguOSAxNDMuMyA5NiAxMTIgOTZjLTE5LjUgMC0zNy44IDUtNTMuNyAxMy43QzUyLjUgMTAxLjQgNDIuOSA5NiAzMiA5NkMxNC4zIDk2IDAgMTEwLjMgMCAxMjh2ODBWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjA4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2NDIuNUw4MS45IDQ2OS4yYy01LjkgMTYuNiAyLjcgMzUgMTkuNCA0MC45czM1LTIuNyA0MC45LTE5LjRsMjEuNC02MEMxNjguOSA0NDEgMTc5LjYgNDQ4IDE5MiA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjYxLjVsMzUuNy0xMDBjMy45LTEgOC4xLTEuNiAxMi4zLTEuNmMyNi41IDAgNDggMjEuNSA0OCA0OFY0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMDhjMC01OC4yLTQ0LjMtMTA2LTEwMS4xLTExMS41bDE5LjItNTMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU2IDIyNEgzMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjU2YzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmw0MCA0MEw0NDIuMyA1LjdDNDQ2IDIgNDUwLjkgMCA0NTYgMHMxMCAyIDEzLjcgNS43bDM2LjcgMzYuN0M1MTAgNDYgNTEyIDUwLjkgNTEyIDU2cy0yIDEwLTUuNyAxMy43TDQzMyAxNDNsNDAgNDBjNi45IDYuOSA4LjkgMTcuMiA1LjIgMjYuMnMtMTIuNSAxNC44LTIyLjIgMTQuOHptMCA2NGM5LjcgMCAxOC41IDUuOCAyMi4yIDE0LjhzMS43IDE5LjMtNS4yIDI2LjJsLTQwIDQwIDczLjQgNzMuNGMzLjYgMy42IDUuNyA4LjUgNS43IDEzLjdzLTIgMTAtNS43IDEzLjdsLTM2LjcgMzYuN0M0NjYgNTEwIDQ2MS4xIDUxMiA0NTYgNTEycy0xMC0yLTEzLjctNS43TDM2OSA0MzNsLTQwIDQwYy02LjkgNi45LTE3LjIgOC45LTI2LjIgNS4ycy0xNC44LTEyLjUtMTQuOC0yMi4yVjMxMmMwLTEzLjMgMTAuNy0yNCAyNC0yNEg0NTZ6bS0yNTYgMGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY0NTZjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtNDAtNDBMNjkuNyA1MDYuM0M2NiA1MTAgNjEuMSA1MTIgNTYgNTEycy0xMC0yLTEzLjctNS43TDUuNyA0NjkuN0MyIDQ2NiAwIDQ2MS4xIDAgNDU2czItMTAgNS43LTEzLjdMNzkgMzY5IDM5IDMyOWMtNi45LTYuOS04LjktMTcuMi01LjItMjYuMnMxMi41LTE0LjggMjIuMi0xNC44SDIwMHpNNTYgMjI0Yy05LjcgMC0xOC41LTUuOC0yMi4yLTE0LjhzLTEuNy0xOS4zIDUuMi0yNi4ybDQwLTQwTDUuNyA2OS43QzIgNjYgMCA2MS4xIDAgNTZzMi0xMCA1LjctMTMuN0w0Mi4zIDUuN0M0NiAyIDUwLjkgMCA1NiAwczEwIDIgMTMuNyA1LjdMMTQzIDc5bDQwLTQwYzYuOS02LjkgMTcuMi04LjkgMjYuMi01LjJzMTQuOCAxMi41IDE0LjggMjIuMlYyMDBjMCAxMy4zLTEwLjcgMjQtMjQgMjRINTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiAyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJMNDggMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDM1MiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXR0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDM4NEg2NEw1LjQgMTc4LjlDMS44IDE2Ni40IDAgMTUzLjQgMCAxNDAuM0MwIDYyLjggNjIuOCAwIDE0MC4zIDBoMy40YzY2IDAgMTIzLjUgNDQuOSAxMzkuNSAxMDguOWwzMS40IDEyNS44IDE3LjYtMjAuMUMzNDQuOCAyMDAuMiAzNjIuOSAxOTIgMzgyIDE5MmgyLjhjMzQuOSAwIDYzLjMgMjguMyA2My4zIDYzLjNjMCAxNS45LTYgMzEuMi0xNi44IDQyLjlMMzUyIDM4NHpNMzIgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMySDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkg2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGVCdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMEM0NC43IDAgMTYgMjguNyAxNiA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzA0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDgwek0xOTIgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9iaWxlUmV0cm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjU2YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6bTY0IDk2djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04MCAzNTJhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4em0yNCA1NmEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwem01Ni01NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTI0IDU2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTU2LTU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjQgNTZhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpNMTI4IDQ4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9iaWxlU2NyZWVuQnV0dG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDY0QzE2IDI4LjcgNDQuNyAwIDgwIDBIMzA0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6TTIyNCA0NDhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMzA0IDY0SDgwVjM4NEgzMDRWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vYmlsZVNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2NEMxNiAyOC43IDQ0LjcgMCA4MCAwSDMwNGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIODBjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0xNDQgNDQ4YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnpNMzA0IDY0SDgwVjM4NEgzMDRWNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vYmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCAwQzQ0LjcgMCAxNiAyOC43IDE2IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMDRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIODB6bTgwIDQzMmg2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbDFXYXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTEyLjVWNDIyLjNjMCAxOCAxMC4xIDM1IDI3IDQxLjNjODcgMzIuNSAxNzQgMTAuMyAyNjEtMTEuOWM3OS44LTIwLjMgMTU5LjYtNDAuNyAyMzkuMy0xOC45YzIzIDYuMyA0OC43LTkuNSA0OC43LTMzLjRWODkuN2MwLTE4LTEwLjEtMzUtMjctNDEuM0M0NjIgMTUuOSAzNzUgMzguMSAyODggNjAuM0MyMDguMiA4MC42IDEyOC40IDEwMC45IDQ4LjcgNzkuMUMyNS42IDcyLjggMCA4OC42IDAgMTEyLjV6TTEyOCA0MTZINjRWMzUyYzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAyMjRWMTYwaDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzUyYzAtMzUuMyAyOC43LTY0IDY0LTY0djY0SDQ0OHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGg2NHY2NHpNMzg0IDI1NmMwIDYxLjktNDMgMTEyLTk2IDExMnMtOTYtNTAuMS05Ni0xMTJzNDMtMTEyIDk2LTExMnM5NiA1MC4xIDk2IDExMnpNMjUyIDIwOGMwIDkuNyA2LjkgMTcuNyAxNiAxOS42VjI3NmgtNGMtMTEgMC0yMCA5LTIwIDIwczkgMjAgMjAgMjBoMjQgMjRjMTEgMCAyMC05IDIwLTIwcy05LTIwLTIwLTIwaC00VjIwOGMwLTExLTktMjAtMjAtMjBIMjcyYy0xMSAwLTIwIDktMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbDEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTY0IDMyMEg2NFYzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjR6TTY0IDE5MlYxMjhoNjRjMCAzNS4zLTI4LjcgNjQtNjQgNjR6TTQ0OCAzODRjMC0zNS4zIDI4LjctNjQgNjQtNjR2NjRINDQ4em02NC0xOTJjLTM1LjMgMC02NC0yOC43LTY0LTY0aDY0djY0ek0xNzYgMjU2YTExMiAxMTIgMCAxIDEgMjI0IDAgMTEyIDExMiAwIDEgMSAtMjI0IDB6bTc2LTQ4YzAgOS43IDYuOSAxNy43IDE2IDE5LjZWMjc2aC00Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMGgyNCAyNGMxMSAwIDIwLTkgMjAtMjBzLTktMjAtMjAtMjBoLTRWMjA4YzAtMTEtOS0yMC0yMC0yMEgyNzJjLTExIDAtMjAgOS0yMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsVHJhbnNmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM1IDQxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsNjQgNjRjNC41IDQuNSA3IDEwLjYgNyAxN3MtMi41IDEyLjUtNyAxN2wtNjQgNjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjMtMjNMMzg0IDExMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGwxNzQuMSAwTDUzNSA0MXpNMTA1IDM3N2wtMjMgMjNMMjU2IDQwMGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEw4MS45IDQ0OGwyMyAyM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDcgNDQxYy00LjUtNC41LTctMTAuNi03LTE3czIuNS0xMi41IDctMTdsNjQtNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45ek05NiA2NEgzMzcuOWMtMy43IDcuMi01LjkgMTUuMy01LjkgMjRjMCAyOC43IDIzLjMgNTIgNTIgNTJsMTE3LjQgMGMtNCAxNyAuNiAzNS41IDEzLjggNDguOGMyMC4zIDIwLjMgNTMuMiAyMC4zIDczLjUgMEw2MDggMTY5LjVWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDMwMi4xYzMuNy03LjIgNS45LTE1LjMgNS45LTI0YzAtMjguNy0yMy4zLTUyLTUyLTUybC0xMTcuNCAwYzQtMTctLjYtMzUuNS0xMy44LTQ4LjhjLTIwLjMtMjAuMy01My4yLTIwLjMtNzMuNSAwTDMyIDM0Mi41VjEyOGMwLTM1LjMgMjguNy02NCA2NC02NHptNjQgNjRIOTZ2NjRjMzUuMyAwIDY0LTI4LjcgNjQtNjR6TTU0NCAzMjBjLTM1LjMgMC02NCAyOC43LTY0IDY0aDY0VjMyMHpNMzIwIDM1MmE5NiA5NiAwIDEgMCAwLTE5MiA5NiA5NiAwIDEgMCAwIDE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsVHJlbmRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzAuNyA5LjRjMyAzLjEgNS4zIDYuNiA2LjkgMTAuM3MyLjQgNy44IDIuNCAxMi4ybDAgLjF2MCA5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDkuM0wzMTAuNiAyMTQuNmMtMTEuOCAxMS44LTMwLjggMTIuNi00My41IDEuN0wxNzYgMTM4LjEgODQuOCAyMTYuM2MtMTMuNCAxMS41LTMzLjYgOS45LTQ1LjEtMy41cy05LjktMzMuNiAzLjUtNDUuMWwxMTItOTZjMTItMTAuMyAyOS43LTEwLjMgNDEuNyAwbDg5LjUgNzYuN0wzNzAuNyA2NEgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOTYgMGM4LjggMCAxNi44IDMuNiAyMi42IDkuM2wuMSAuMXpNMCAzMDRjMC0yNi41IDIxLjUtNDggNDgtNDhINDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzA0ek00OCA0MTZ2NDhIOTZjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTk2IDMwNEg0OHY0OGMyNi41IDAgNDgtMjEuNSA0OC00OHpNNDY0IDQxNmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhoNDhWNDE2ek00MTYgMzA0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4VjMwNEg0MTZ6bS05NiA4MGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbFdhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMTIuNVY0MjIuM2MwIDE4IDEwLjEgMzUgMjcgNDEuM2M4NyAzMi41IDE3NCAxMC4zIDI2MS0xMS45Yzc5LjgtMjAuMyAxNTkuNi00MC43IDIzOS4zLTE4LjljMjMgNi4zIDQ4LjctOS41IDQ4LjctMzMuNFY4OS43YzAtMTgtMTAuMS0zNS0yNy00MS4zQzQ2MiAxNS45IDM3NSAzOC4xIDI4OCA2MC4zQzIwOC4yIDgwLjYgMTI4LjQgMTAwLjkgNDguNyA3OS4xQzI1LjYgNzIuOCAwIDg4LjYgMCAxMTIuNXpNMjg4IDM1MmMtNDQuMiAwLTgwLTQzLTgwLTk2czM1LjgtOTYgODAtOTZzODAgNDMgODAgOTZzLTM1LjggOTYtODAgOTZ6TTY0IDM1MmMzNS4zIDAgNjQgMjguNyA2NCA2NEg2NFYzNTJ6bTY0LTIwOGMwIDM1LjMtMjguNyA2NC02NCA2NFYxNDRoNjR6TTUxMiAzMDR2NjRINDQ4YzAtMzUuMyAyOC43LTY0IDY0LTY0ek00NDggOTZoNjR2NjRjLTM1LjMgMC02NC0yOC43LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25leUJpbGxXaGVhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtOC44IDcuMi0xNiAxNi0xNnpNNTYgMTZoNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINTZDNDIuNyA2NCAzMiA1My4zIDMyIDQwczEwLjctMjQgMjQtMjR6TTI0IDg4SDEzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA4OCAyNCA4OHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NmMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiAxNmMwLTguOCA3LjItMTYgMTYtMTZjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MHpNNDAwIDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MGMwLTguOCA3LjItMTYgMTYtMTZ6bTgwIDE0NGMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMzUyIDEyOGM4LjggMCAxNiA3LjIgMTYgMTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZjMC00NC4yIDM1LjgtODAgODAtODBjOC44IDAgMTYgNy4yIDE2IDE2ek0wIDMwNGMwLTI2LjUgMjEuNS00OCA0OC00OEg0NjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzMDR6TTQ4IDQxNnY0OEg5NmMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgMzA0SDQ4djQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek00NjQgNDE2Yy0yNi41IDAtNDggMjEuNS00OCA0OGg0OFY0MTZ6TTQxNiAzMDRjMCAyNi41IDIxLjUgNDggNDggNDhWMzA0SDQxNnptLTk2IDgwYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em02NCAzMjBINjRWMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0ek02NCAxOTJWMTI4aDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0ek00NDggMzg0YzAtMzUuMyAyOC43LTY0IDY0LTY0djY0SDQ0OHptNjQtMTkyYy0zNS4zIDAtNjQtMjguNy02NC02NGg2NHY2NHpNMjg4IDE2MGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA5NlYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTY0IDE2MGMzNS4zIDAgNjQgMjguNyA2NCA2NEgxNjBWMjU2ek0yMjQgOTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRWOTZoNjR6TTU3NiAyNTZ2NjRINTEyYzAtMzUuMyAyOC43LTY0IDY0LTY0ek01MTIgOTZoNjR2NjRjLTM1LjMgMC02NC0yOC43LTY0LTY0ek0yODggMjA4YTgwIDgwIDAgMSAxIDE2MCAwIDgwIDgwIDAgMSAxIC0xNjAgMHpNNDggMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0UzAgMTA2LjcgMCAxMjBWMzYwYzAgNjYuMyA1My43IDEyMCAxMjAgMTIwSDUyMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxMjBjLTM5LjggMC03Mi0zMi4yLTcyLTcyVjEyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlDaGVja0RvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjcyIDE5Mkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek0yNTYgMzA0YzAtOC44IDcuMi0xNiAxNi0xNkg0OTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZ6TTE2NCAxNTJ2MTMuOWM3LjUgMS4yIDE0LjYgMi45IDIxLjEgNC43YzEwLjcgMi44IDE3IDEzLjggMTQuMiAyNC41cy0xMy44IDE3LTI0LjUgMTQuMmMtMTEtMi45LTIxLjYtNS0zMS4yLTUuMmMtNy45LS4xLTE2IDEuOC0yMS41IDVjLTQuOCAyLjgtNi4yIDUuNi02LjIgOS4zYzAgMS44IC4xIDMuNSA1LjMgNi43YzYuMyAzLjggMTUuNSA2LjcgMjguMyAxMC41bC43IC4yYzExLjIgMy40IDI1LjYgNy43IDM3LjEgMTVjMTIuOSA4LjEgMjQuMyAyMS4zIDI0LjYgNDEuNmMuMyAyMC45LTEwLjUgMzYuMS0yNC44IDQ1Yy03LjIgNC41LTE1LjIgNy4zLTIzLjIgOVYzNjBjMCAxMS05IDIwLTIwIDIwcy0yMC05LTIwLTIwVjM0NS40Yy0xMC4zLTIuMi0yMC01LjUtMjguMi04LjRsMCAwIDAgMGMtMi4xLS43LTQuMS0xLjQtNi4xLTIuMWMtMTAuNS0zLjUtMTYuMS0xNC44LTEyLjYtMjUuM3MxNC44LTE2LjEgMjUuMy0xMi42YzIuNSAuOCA0LjkgMS43IDcuMiAyLjRjMTMuNiA0LjYgMjQgOC4xIDM1LjEgOC41YzguNiAuMyAxNi41LTEuNiAyMS40LTQuN2M0LjEtMi41IDYtNS41IDUuOS0xMC41YzAtMi45LS44LTUtNS45LTguMmMtNi4zLTQtMTUuNC02LjktMjgtMTAuN2wtMS43LS41Yy0xMC45LTMuMy0yNC42LTcuNC0zNS42LTE0Yy0xMi43LTcuNy0yNC42LTIwLjUtMjQuNy00MC43Yy0uMS0yMS4xIDExLjgtMzUuNyAyNS44LTQzLjljNi45LTQuMSAxNC41LTYuOCAyMi4yLTguNVYxNTJjMC0xMSA5LTIwIDIwLTIwczIwIDkgMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTQ4IDE2MEgyNzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2ek05NiAzMzZjMC04LjggNy4yLTE2IDE2LTE2SDQ2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnpNMzc2IDE2MGg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgzNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9udW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgwLjcgNC43YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDgwIDgwYzIuNSAyLjUgNC4xIDUuOCA0LjYgOS4zbDQwLjIgMzIySDU1LjlMOTYuMSA5NGMuNC0zLjUgMi02LjggNC42LTkuM2w4MC04MHpNMTUyIDI3MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgxNTJ6TTMyIDQ0OEgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjUgMzJDMTAwIDMyIDAgMTMyLjMgMCAyNTZTMTAwIDQ4MCAyMjMuNSA0ODBjNjAuNiAwIDExNS41LTI0LjIgMTU1LjgtNjMuNGM1LTQuOSA2LjMtMTIuNSAzLjEtMTguN3MtMTAuMS05LjctMTctOC41Yy05LjggMS43LTE5LjggMi42LTMwLjEgMi42Yy05Ni45IDAtMTc1LjUtNzguOC0xNzUuNS0xNzZjMC02NS44IDM2LTEyMy4xIDg5LjMtMTUzLjNjNi4xLTMuNSA5LjItMTAuNSA3LjctMTcuM3MtNy4zLTExLjktMTQuMy0xMi41Yy02LjMtLjUtMTIuNi0uOC0xOS0uOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9ydGFyUGVzdGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC4zIDExLjFDNDkzLjMtMS42IDQ3NC41LTMuNyA0NjEgNi4yTDI1Mi4zIDE2MEgzOTcuM0w1MDIuNiA1NC42YzExLjgtMTEuOCAxMi42LTMwLjggMS42LTQzLjV6TTMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmMwIDgyLjUgNDMuNCAxNDcuNyAxMjMuOSAxNzYuMmMtMTEuMSAxMy45LTE5LjQgMzAuMy0yMy45IDQ4LjFDMTI3LjYgNDk3LjQgMTQyLjMgNTEyIDE2MCA1MTJIMzUyYzE3LjcgMCAzMi40LTE0LjYgMjguMS0zMS43Yy00LjUtMTcuOC0xMi44LTM0LjEtMjMuOS00OC4xQzQzNi42IDQwMy43IDQ4MCAzMzguNSA0ODAgMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3NxdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBjNSAwIDkuOCAyLjQgMTIuOCA2LjRjMzQuNyA0Ni4zIDc4LjEgNzQuOSAxMzMuNSAxMTEuNWwwIDAgMCAwYzUuMiAzLjQgMTAuNSA3IDE2IDEwLjZjMjguOSAxOS4yIDQ1LjcgNTEuNyA0NS43IDg2LjFjMCAyOC42LTExLjMgNTQuNS0yOS44IDczLjRIMjIxLjhjLTE4LjQtMTktMjkuOC00NC45LTI5LjgtNzMuNGMwLTM0LjQgMTYuNy02Ni45IDQ1LjctODYuMWM1LjQtMy42IDEwLjgtNy4xIDE2LTEwLjZsMCAwIDAgMEMzMDkuMSA4MS4zIDM1Mi41IDUyLjcgMzg3LjIgNi40YzMtNCA3LjgtNi40IDEyLjgtNi40ek0yODggNTEyVjQ0MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY3MkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMkg2MDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDU2MFY0NDBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NzJINDQ4VjQ1NGMwLTE5LTguNC0zNy0yMy00OS4yTDQwMCAzODRsLTI1IDIwLjhDMzYwLjQgNDE3IDM1MiA0MzUgMzUyIDQ1NHY1OEgyODh6TTcwLjQgNS4yYzUuNy00LjMgMTMuNS00LjMgMTkuMiAwbDE2IDEyQzEzOS44IDQyLjkgMTYwIDgzLjIgMTYwIDEyNnYySDB2LTJDMCA4My4yIDIwLjIgNDIuOSA1NC40IDE3LjJsMTYtMTJ6TTAgMTYwSDE2MFYyOTYuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNFY0ODBjMCA5LjYgMi4xIDE4LjYgNS44IDI2LjhjLTYuNiAzLjQtMTQgNS4yLTIxLjggNS4ySDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzYgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3NxdWl0b05ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjguOCA0NjIuM2MtNy45LTQtMTEuMS0xMy42LTcuMi0yMS41TDE5MiAzODAuMmwwLTQ0LjJjMC00LjIgMS43LTguMyA0LjctMTEuM0wyNTYgMjY1LjRWMjQyLjJMMTM5LjIgMzQ0Qzg3LjggMzk1LjMgMCAzNTguOSAwIDI4Ni4zYzAtNDEuMSAzMC42LTc1LjggNzEuNC04MC45bDE1OS45LTIzLjktNDkuNi00MS4zYy01LjEtNC4yLTctMTEuMS00LjktMTcuNGwxMy45LTQxLjctMjktNTguMWMtNC03LjktLjctMTcuNSA3LjItMjEuNXMxNy41LS43IDIxLjUgNy4ybDMyIDY0YzEuOSAzLjggMi4yIDguMiAuOSAxMi4ybC0xMi41IDM3LjZMMjU2IDE2MC41VjEzNy45YzAtMTQuOSAxMC4xLTI3LjMgMjMuOC0zMVY2My43YzAtNC41IDMuNy04LjIgOC4yLTguMnM4LjIgMy43IDguMiA4LjJWMTA3YzEzLjcgMy42IDIzLjggMTYuMSAyMy44IDMxdjIyLjZsNDUuNC0zNy44TDM1Mi44IDg1LjFjLTEuMy00LTEtOC40IC45LTEyLjJsMzItNjRjNC03LjkgMTMuNi0xMS4xIDIxLjUtNy4yczExLjEgMTMuNiA3LjIgMjEuNWwtMjkgNTguMSAxMy45IDQxLjdjMi4xIDYuMiAuMSAxMy4xLTQuOSAxNy40bC00OS42IDQxLjMgMTU5LjkgMjMuOWMyMi41IDIuOCA0MS44IDE0LjYgNTQuNyAzMS40Yy0yLjcgMi42LTUuMiA1LjQtNy4zIDguNmMtOC42LTEyLjktMjMuMy0yMS41LTQwLTIxLjVzLTMxLjQgOC41LTQwIDIxLjVjLTguNi0xMi45LTIzLjMtMjEuNS00MC0yMS41Yy0yMS43IDAtNDAgMTQuMy00NS45IDM0LjFjLTEwLjcgMy4yLTE5LjggMTAuMS0yNS45IDE5LjJsLTQwLjItMzV2MjMuMWwzMi40IDMyLjRjLS4zIDItLjQgNC4xLS40IDYuMmMwIDE2LjcgOC41IDMxLjQgMjEuNSA0MGMtNCAyLjYtNy41IDUuOS0xMC42IDkuNUwzMjAgMzEwLjZ2NTBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ2LTUwbC0zMiAzMiAwIDQxLjRjMCAyLjUtLjYgNC45LTEuNyA3LjJsLTMyIDY0Yy00IDcuOS0xMy42IDExLjEtMjEuNSA3LjJ6TTUxMiAyNTZjOC44IDAgMTYgNy4yIDE2IDE2djE2aDQ4VjI3MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDYwOHY0OGgxNmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg2MDh2NDhoMTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINjA4djE2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjQ4MEg1Mjh2MTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNDgwSDQ0OHYxNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY0ODBINDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDE2VjQwMEg0MDBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoMTZWMzIwSDQwMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgxNlYyNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYxNmg0OFYyNzJjMC04LjggNy4yLTE2IDE2LTE2em0xNiAxMTJoNDhWMzIwSDUyOHY0OHptMCA4MGg0OFY0MDBINTI4djQ4ek00NDggMzIwdjQ4aDQ4VjMyMEg0NDh6bTAgODB2NDhoNDhWNDAwSDQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9zcXVpdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYzLjcgNTA1LjljOS44LTguOSAxMC43LTI0LjMgMi4xLTM0LjNsLTQyLjEtNDkgMC01NC43YzAtNS41LTEuOC0xMC44LTUuMS0xNS4xTDM1MiAyNjYuM2wwLS4zTDQ4NS40IDM4Ny44QzU0Mi40IDQ0Ny42IDY0MCA0MDUuMiA2NDAgMzIwLjZjMC00Ny45LTM0LTg4LjMtNzkuNC05NC4ybC0xNTMtMjMuOSA0MC44LTQwLjljNy44LTcuOCA5LjQtMjAuMSAzLjktMjkuOEw0MjguNSA5MC4xbDM4LjItNTAuOWM4LTEwLjYgNi4xLTI1LjktNC4zLTM0LjFzLTI1LjItNi4zLTMzLjIgNC40bC00OCA2My45Yy01LjkgNy45LTYuNiAxOC42LTEuNyAyNy4yTDQwMi4yIDE0MCAzNTIgMTkwLjNsMC0zOC4yYzAtMTQuOS0xMC4yLTI3LjQtMjQtMzFsMC01Ny4yYzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4bDAgNTcuMmMtMTMuOCAzLjYtMjQgMTYuMS0yNCAzMWwwIDM4LjFMMjM3LjggMTQwbDIyLjYtMzkuNWM0LjktOC42IDQuMi0xOS4zLTEuNy0yNy4ybC00OC02My45Yy04LTEwLjYtMjIuOC0xMi42LTMzLjItNC40cy0xMi4yIDIzLjUtNC4zIDM0LjFsMzguMiA1MC45LTIzLjkgNDEuN2MtNS41IDkuNy0zLjkgMjIgMy45IDI5LjhsNDAuOCA0MC45LTE1MyAyMy45QzM0IDIzMi4zIDAgMjcyLjcgMCAzMjAuNmMwIDg0LjYgOTcuNiAxMjcgMTU0LjYgNjcuMUwyODggMjY2bDAgLjMtNjYuNSA4Ni40Yy0zLjMgNC4zLTUuMSA5LjYtNS4xIDE1LjFsMCA1NC43LTQyLjEgNDljLTguNiAxMC4xLTcuNyAyNS41IDIuMSAzNC4zczI0LjcgNy45IDMzLjQtMi4xbDQ4LTU1LjljMy44LTQuNCA1LjktMTAuMiA1LjktMTYuMWwwLTU1LjRMMjg4IDM0NC43bDAgNjMuMWMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMybDAtNjMuMSAyNC4zIDMxLjYgMCA1NS40YzAgNS45IDIuMSAxMS43IDUuOSAxNi4xbDQ4IDU1LjljOC42IDEwLjEgMjMuNiAxMSAzMy40IDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW90b3JjeWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODAgMzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNTcuN2wxNi40IDMwLjNMMjU2IDE5MmwtNDUuMy00NS4zYy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmg5NmM4OC40IDAgMTYwIDcxLjYgMTYwIDE2MGMwIDExLTEuMSAyMS43LTMuMiAzMmg3MC40Yy0yLjEtMTAuMy0zLjItMjEtMy4yLTMyYzAtNTIuMiAyNS05OC42IDYzLjctMTI3LjhsMTUuNCAyOC42QzQwMi40IDI3Ni4zIDM4NCAzMTIgMzg0IDM1MmMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4cy01Ny4zLTEyOC0xMjgtMTI4Yy0xMy41IDAtMjYuNSAyLjEtMzguNyA2TDQxOC4yIDEyOEg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJINDU5LjZjLTcuNSAwLTE0LjcgMi42LTIwLjUgNy40TDM5MS43IDc4LjlsLTE0LTI2Yy03LTEyLjktMjAuNS0yMS0zNS4yLTIxSDI4MHpNNDYyLjcgMzExLjJsMjguMiA1Mi4yYzYuMyAxMS43IDIwLjkgMTYgMzIuNSA5LjdzMTYtMjAuOSA5LjctMzIuNWwtMjguMi01Mi4yYzIuMy0uMyA0LjctLjQgNy4xLS40YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0YzAtMTUuNSA1LjUtMjkuNyAxNC43LTQwLjh6TTE4Ny4zIDM3NmMtOS41IDIzLjUtMzIuNSA0MC01OS4zIDQwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzI2LjkgMCA0OS45IDE2LjUgNTkuMyA0MGg2Ni40QzI0Mi41IDI2OC44IDE5MC41IDIyNCAxMjggMjI0QzU3LjMgMjI0IDAgMjgxLjMgMCAzNTJzNTcuMyAxMjggMTI4IDEyOGM2Mi41IDAgMTE0LjUtNDQuOCAxMjUuOC0xMDRIMTg3LjN6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuMSAxNzkuMkMxNzMuOCAxMjcuNyAyMjguNiA5NiAyODggOTZzMTE0LjIgMzEuNyAxNDMuOSA4My4yTDU0MC40IDM2OGMxMi4zIDIxLjMtMy4xIDQ4LTI3LjcgNDhINjMuM2MtMjQuNiAwLTQwLTI2LjYtMjcuNy00OEwxNDQuMSAxNzkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91bnRhaW5DaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwYy0yNi41IDAtNDggMjEuNS00OCA0OHY5Mi4xbDcxLjQgMTE4LjRjMi41LTEuNiA1LjQtMi41IDguNi0yLjVoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNmgtMy41bDczLjggMTIyLjRjMTIuNCAyMC42IDEyLjkgNDYuMyAxLjIgNjcuM2MtLjQgLjgtLjkgMS42LTEuNCAyLjNINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI0MGMwLTI2LjUtMjEuNS00OC00OC00OEg1NjhWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djcySDQ4MFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgzMzZ6bTMyIDY0aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMzY4Yy04LjggMC0xNi03LjItMTYtMTZWODBjMC04LjggNy4yLTE2IDE2LTE2ek0zNTIgMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NnptMTYwIDk2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDUyOGMtOC44IDAtMTYtNy4yLTE2LTE2VjI3MnptMTYgODBoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg1MjhjLTguOCAwLTE2LTcuMi0xNi0xNlYzNjhjMC04LjggNy4yLTE2IDE2LTE2ek0yMjQgMTg4LjlMMjgzLjggMjg4SDIyM2wtNDggNjQtMjQuNi00MS4yTDIyNCAxODguOXptMjkuNC00NC4yQzI0Ny4xIDEzNC4zIDIzNiAxMjggMjI0IDEyOHMtMjMuMSA2LjMtMjkuNCAxNi43TDUuMSA0NTguOWMtNi41IDEwLjgtNi43IDI0LjMtLjcgMzUuM1MyMiA1MTIgMzQuNSA1MTJINDEzLjVjMTIuNSAwIDI0LTYuOCAzMC4xLTE3LjhzNS44LTI0LjUtLjctMzUuM0wyNTMuNCAxNDQuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91bnRhaW5TdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDE2MEE4MCA4MCAwIDEgMCA1NjAgMGE4MCA4MCAwIDEgMCAwIDE2MHpNNTUuOSA1MTJIMzgxLjFoNzVINTc4LjljMzMuOCAwIDYxLjEtMjcuNCA2MS4xLTYxLjFjMC0xMS4yLTMuMS0yMi4yLTguOS0zMS44bC0xMzItMjE2LjNDNDk1IDE5Ni4xIDQ4Ny44IDE5MiA0ODAgMTkycy0xNSA0LjEtMTkuMSAxMC43bC00OC4yIDc5TDI4Ni44IDgxYy02LjYtMTAuNi0xOC4zLTE3LTMwLjgtMTdzLTI0LjEgNi40LTMwLjggMTdMOC42IDQyNi40QzMgNDM1LjMgMCA0NDUuNiAwIDQ1Ni4xQzAgNDg3IDI1IDUxMiA1NS45IDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91bnRhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyYzEyLjUgMCAyNC4xIDYuNCAzMC44IDE3TDUwMy40IDM5NC40YzUuNiA4LjkgOC42IDE5LjIgOC42IDI5LjdjMCAzMC45LTI1IDU1LjktNTUuOSA1NS45SDU1LjlDMjUgNDgwIDAgNDU1IDAgNDI0LjFjMC0xMC41IDMtMjAuOCA4LjYtMjkuN0wyMjUuMiA0OWM2LjYtMTAuNiAxOC4zLTE3IDMwLjgtMTd6bTY1IDE5MkwyNTYgMTIwLjQgMTc2LjkgMjQ2LjVsMTguMyAyNC40YzYuNCA4LjUgMTkuMiA4LjUgMjUuNiAwbDI1LjYtMzQuMWM2LTguMSAxNS41LTEyLjggMjUuNi0xMi44aDQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNdWdIb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODggMEM3NC43IDAgNjQgMTAuNyA2NCAyNGMwIDM4LjkgMjMuNCA1OS40IDM5LjEgNzMuMWwxLjEgMUMxMjAuNSAxMTIuMyAxMjggMTE5LjkgMTI4IDEzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMzguOS0yMy40LTU5LjQtMzkuMS03My4xbC0xLjEtMUMxMTkuNSA0Ny43IDExMiA0MC4xIDExMiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0MTZjMCA1MyA0MyA5NiA5NiA5NkgyODhjNTMgMCA5Ni00MyA5Ni05NmgxNmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMnMtNTAuMS0xMTItMTEyLTExMkgzNTIgMzJ6bTM1MiA2NGgxNmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEgzODRWMjU2ek0yMjQgMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRjMCAzOC45IDIzLjQgNTkuNCAzOS4xIDczLjFsMS4xIDFDMjMyLjUgMTEyLjMgMjQwIDExOS45IDI0MCAxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNGMwLTM4LjktMjMuNC01OS40LTM5LjEtNzMuMWwtMS4xLTFDMjMxLjUgNDcuNyAyMjQgNDAuMSAyMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11Z1NhdWNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0NDhoNjRjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjhINDgwYzAgNTMtNDMgOTYtOTYgOTZIMTkyYy01MyAwLTk2LTQzLTk2LTk2VjY0ek00ODAgMjI0aDMyYzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0SDQ4MFYyMjR6TTMyIDQxNkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU11c2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OS4xIDYuM2M4LjEgNiAxMi45IDE1LjYgMTIuOSAyNS43djcyVjM2OGMwIDQ0LjItNDMgODAtOTYgODBzLTk2LTM1LjgtOTYtODBzNDMtODAgOTYtODBjMTEuMiAwIDIyIDEuNiAzMiA0LjZWMTQ3TDE5MiAyMjMuOFY0MzJjMCA0NC4yLTQzIDgwLTk2IDgwcy05Ni0zNS44LTk2LTgwczQzLTgwIDk2LTgwYzExLjIgMCAyMiAxLjYgMzIgNC42VjIwMCAxMjhjMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN2wzMjAtOTZjOS43LTIuOSAyMC4yLTEuMSAyOC4zIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMSAzMy45YzEyLjctNC42IDI2LjktLjcgMzUuNSA5LjZMMzIwIDM1OS42VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNDQ4YzAgMTMuNS04LjQgMjUuNS0yMS4xIDMwLjFzLTI2LjkgLjctMzUuNS05LjZMNjQgMTUyLjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjY0QzAgNTAuNSA4LjQgMzguNSAyMS4xIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5haXJhU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjIuNiA0Ni4zYy03LjgtMTEuNy0yMi40LTE3LTM1LjktMTIuOVM2NCA0OS45IDY0IDY0VjI1NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NFY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMjBIMjI4LjJsOTcuMiAxNDUuOGM3LjggMTEuNyAyMi40IDE3IDM1LjkgMTIuOXMyMi43LTE2LjUgMjIuNy0zMC42VjMyMGgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzODRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjU2SDI2Mi41TDEyMi42IDQ2LjN6TTMwNS4xIDMyMEgzMjB2MjIuM0wzMDUuMSAzMjB6TTE4NS41IDI1NkgxMjhWMTY5LjdMMTg1LjUgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOZXR3b3JrV2lyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDY0SDM4NHY2NEgyNTZWNjR6TTI0MCAwYy0yNi41IDAtNDggMjEuNS00OCA0OHY5NmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0OHYzMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NnYzMkg4MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2OTZjMCAyNi41IDIxLjUgNDggNDggNDhIMjQwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM2OGMwLTI2LjUtMjEuNS00OC00OC00OEgxOTJWMjg4SDQ0OHYzMkg0MDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djk2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDU2MGMyNi41IDAgNDgtMjEuNSA0OC00OFYzNjhjMC0yNi41LTIxLjUtNDgtNDgtNDhINTEyVjI4OGg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzNTJWMTkyaDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI0MHpNOTYgNDQ4VjM4NEgyMjR2NjRIOTZ6bTMyMC02NEg1NDR2NjRINDE2VjM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV1dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDE3NmExMTIgMTEyIDAgMSAxIDIyNCAwQTExMiAxMTIgMCAxIDEgODAgMTc2ek0yMjQgMzQ5LjFjODEuOS0xNSAxNDQtODYuOCAxNDQtMTczLjFDMzY4IDc4LjggMjg5LjIgMCAxOTIgMFMxNiA3OC44IDE2IDE3NmMwIDg2LjMgNjIuMSAxNTguMSAxNDQgMTczLjFWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzQ5LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5ld3NwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA5NmMwLTM1LjMgMjguNy02NCA2NC02NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDgwYy00NC4yIDAtODAtMzUuOC04MC04MFYxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMlY0MDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY5NnptNjQgMjR2ODBjMCAxMy4zIDEwLjcgMjQgMjQgMjRIMjk2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxODRjLTEzLjMgMC0yNCAxMC43LTI0IDI0em0yMDgtOGMwIDguOCA3LjIgMTYgMTYgMTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzg0Yy04LjggMC0xNiA3LjItMTYgMTZ6bTAgOTZjMCA4LjggNy4yIDE2IDE2IDE2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2ek0xNjAgMzA0YzAgOC44IDcuMiAxNiAxNiAxNkg0MzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZ6bTAgOTZjMCA4LjggNy4yIDE2IDE2IDE2SDQzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTm90RXF1YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjggMzcuNGMxNC43IDkuOCAxOC43IDI5LjcgOC45IDQ0LjRMMzM3LjEgMTQ0SDQwMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyOTQuNWwtNjQgOTZINDAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE4Ny44bC02NS4yIDk3LjdjLTkuOCAxNC43LTI5LjcgMTguNy00NC40IDguOXMtMTguNy0yOS43LTguOS00NC40TDExMC45IDM2OEg0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgxNTMuNWw2NC05Nkg0OGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkgyNjAuMmw2NS4yLTk3LjdjOS44LTE0LjcgMjkuNy0xOC43IDQ0LjQtOC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb3RkZWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzkwLjNMMTUzLjUgMjU2IDY0IDEyMS43VjM5MC4zek0xMDIuNSA0NDhIMjgxLjVMMTkyIDMxMy43IDEwMi41IDQ0OHptMTI4LTE5MkwzMjAgMzkwLjNWMTIxLjdMMjMwLjUgMjU2ek0yODEuNSA2NEgxMDIuNUwxOTIgMTk4LjMgMjgxLjUgNjR6TTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb3RlU3RpY2t5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDI4OFYzNjhjMC0yNi41IDIxLjUtNDggNDgtNDhINDQ4Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek00NDggMzUySDQwMi43IDMzNmMtOC44IDAtMTYgNy4yLTE2IDE2djY2LjdWNDgwbDMyLTMyIDY0LTY0IDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb3Rlc01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzUyVjk2YzAtMzUuMyAyOC43LTY0IDY0LTY0SDQxNmMzNS4zIDAgNjQgMjguNyA2NCA2NFYyOTMuNWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNTguNSA1OC41Yy0xMiAxMi0yOC4zIDE4LjctNDUuMyAxOC43SDE2MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6TTI3MiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZIMzIwVjE0NGMwLTguOC03LjItMTYtMTYtMTZIMjcyem0yNCAzMzZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTM2QzYwLjkgNTEyIDAgNDUxLjEgMCAzNzZWMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCAyMjRjMCA0OC42IDM5LjQgODggODggODhIMjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA5NmExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAxIDAgMC0zMjB6TTQ0OCAyNTZBMjI0IDIyNCAwIDEgMSAwIDI1NmEyMjQgMjI0IDAgMSAxIDQ0OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPYmplY3RHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJINDU2LjZDNDY3LjYgMTIuOSA0ODguMyAwIDUxMiAwYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNFYzOTIuNmMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJIMTE5LjRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNFYxMTkuNHpNNDU2LjYgOTZIMTE5LjRjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNFYzOTIuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRINDU2LjZjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40VjExOS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjR6TTEyOCAxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTYwek0yNTYgMzIwaDMyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjIyNGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2JqZWN0VW5ncm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAxMTkuNEMxMi45IDEwOC40IDAgODcuNyAwIDY0QzAgMjguNyAyOC43IDAgNjQgMGMyMy43IDAgNDQuNCAxMi45IDU1LjQgMzJIMzI4LjZDMzM5LjYgMTIuOSAzNjAuMyAwIDM4NCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNFYyMzIuNmMxOS4xIDExLjEgMzIgMzEuNyAzMiA1NS40YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy0yMy43IDAtNDQuNC0xMi45LTU1LjQtMzJIMTE5LjRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNFYxMTkuNHpNMTE5LjQgOTZjLTUuNiA5LjctMTMuNyAxNy44LTIzLjQgMjMuNFYyMzIuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRIMzI4LjZjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40VjExOS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRIMTE5LjR6bTE5MiAzODRjLTExLjEgMTkuMS0zMS43IDMyLTU1LjQgMzJjLTM1LjMgMC02NC0yOC43LTY0LTY0YzAtMjMuNyAxMi45LTQ0LjQgMzItNTUuNFYzNTJoNjR2NDAuNmM5LjcgNS42IDE3LjggMTMuNyAyMy40IDIzLjRINTIwLjZjNS42LTkuNyAxMy43LTE3LjggMjMuNC0yMy40VjI3OS40Yy05LjctNS42LTE3LjgtMTMuNy0yMy40LTIzLjRoLTQ2Yy01LjQtMTUuNC0xNC42LTI4LjktMjYuNS0zOS42VjE5Mmg3Mi42YzExLjEtMTkuMSAzMS43LTMyIDU1LjQtMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAyMy43LTEyLjkgNDQuNC0zMiA1NS40VjM5Mi42YzE5LjEgMTEuMSAzMiAzMS43IDMyIDU1LjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTIzLjcgMC00NC40LTEyLjktNTUuNC0zMkgzMTEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2lsQ2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMydjMySDE0NCA5NiA0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NjQuOGMwIDE5IDExLjIgMzYuMiAyOC41IDQzLjlsNjcuNSAzMFYzNjhjMCAyNi41IDIxLjUgNDggNDggNDhINDAzLjFjMTguNCAwIDM1LjgtNy45IDQ4LTIxLjdMNjMzLjUgMTg3LjdjMTIuMy0xMy45LS4zLTM1LjQtMTguNC0zMS41TDQ0OCAxOTJsLTUwLjUtMjUuMmMtOC45LTQuNC0xOC43LTYuOC0yOC42LTYuOEgyODhWMTI4aDMyek05NiAyMDh2ODYuMUw0OCAyNzIuOFYyMDhIOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9pbFdlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4LjMgNjEuM2MtMTEuNC00Mi43LTU1LjMtNjgtOTgtNTYuNkw0MTQuOSA4LjhDMzk3LjggMTMuNCAzODcuNyAzMSAzOTIuMyA0OGwyNC41IDkxLjRMMzA4LjUgMTY3LjVsLTYuMy0xOC4xQzI5Ny43IDEzNi42IDI4NS42IDEyOCAyNzIgMTI4cy0yNS43IDguNi0zMC4yIDIxLjRsLTEzLjYgMzlMOTYgMjIyLjZWMTg0YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjQ0OEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDA2LjdMMzQwIDI1Ny41bC02Mi4yIDE2LjFMMzA1LjMgMzUySDIzOC43TDI2NSAyNzdsLTc0LjYgMTkuM0wxMzcuMyA0NDhIOTZWMjg4LjhsMzM3LjQtODcuNSAyNS4yIDk0YzQuNiAxNy4xIDIyLjEgMjcuMiAzOS4yIDIyLjZsMTUuNS00LjFjNDIuNy0xMS40IDY4LTU1LjMgNTYuNi05OEw1MjguMyA2MS4zek0yMDUuMSA0NDhsMTEuMi0zMkgzMjcuN2wxMS4yIDMySDIwNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzkuMyA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xNiAxNmMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTYgMTZjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTYtMTZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTE2LTE2ek0yODEgNjYuN2MtMi4yLTEuNS00LjktMi41LTcuNy0yLjdjLS42IDAtMS4zLS4xLTEuOSAwYy0zLjkgLjItNy40IDEuNy0xMC4xIDQuMmMtLjkgLjgtMS42IDEuNy0yLjMgMi42Yy0xLjcgMi40LTIuNyA1LjMtMi45IDguNWMwIC43IDAgMS40IDAgMi4xYy4yIDIuMiAuOSA0LjMgMS45IDYuMmwuMyAuNmMuMyAuNiAuOCAxLjQgMS40IDIuNGMxLjIgMiAyLjkgNC44IDUuMSA4LjJjNC40IDYuNyAxMS4xIDE1LjUgMjAgMjQuNEMzMDIuNCAxNDEuMSAzMzAuMyAxNjAgMzY4IDE2MGMzMS4yIDAgNTYuNi0xMC40IDczLjktMjAuMmM4LjctNSAxNS42LTkuOSAyMC40LTEzLjhjMi40LTEuOSA0LjMtMy42IDUuNy00LjljLjctLjYgMS4zLTEuMiAxLjctMS42bC42LS41IC4xLS4xIC4xLS4xIDAgMCAwIDBjNS45LTUuOCA5LjUtMTMuOSA5LjUtMjIuOGMwLTE3LjctMTQuMy0zMi0zMi0zMmMtOC43IDAtMTYuNyAzLjUtMjIuNCA5LjJjLS4xIC4xLS4yIC4yLS41IC40Yy0uNSAuNS0xLjUgMS4zLTIuOCAyLjRjLTIuNyAyLjItNi44IDUuMi0xMi4xIDguMkMzOTkuNCA5MC40IDM4NC44IDk2IDM2OCA5NmMtMjAuOCAwLTQyLjQtNy01OS41LTE0LjZjLTguNC0zLjctMTUuNC03LjUtMjAuMy0xMC4zYy0yLjQtMS40LTQuMy0yLjUtNS42LTMuM2MtLjYtLjQtMS4xLS43LTEuNC0uOWwtLjMtLjJ6TTExNS4yIDE2OS42YzgtNiAxNy45LTkuNiAyOC44LTkuNmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEgxMDkuOGMtNy42IDAtMTMuOCA2LjItMTMuOCAxMy44YzAgMS41IC4yIDIuOSAuNyA0LjRsOCAyNGM0LjQgMTMuMSAxNi42IDIxLjkgMzAuNCAyMS45SDE0NGgxNmMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtNTAuOCAwLTgyLjctMjEuNS0xMDIuMi00Mi44Yy05LjktMTAuOC0xNi42LTIxLjYtMjAuOS0yOS43Yy0yLjEtNC0zLjYtNy4zLTQuNS05LjZjLS41LTEuMS0uOC0yLTEtMi41bC0uMi0uNWMtLjMtLjktLjctMS44LTEuMS0yLjZjLTEuMi0yLjItMi44LTQtNC43LTUuNGMtMS45LTEuNC00LjEtMi4zLTYuNS0yLjhjLTEuNC0uMy0yLjktLjMtNC40LS4yYy0yLjUgLjItNC44IDEtNi44IDIuM2MtMS4xIC43LTIuMiAxLjUtMy4xIDIuNWMtMi40IDIuNS00LjEgNS44LTQuNSA5LjVjLS4xIC42LS4xIDEuMS0uMSAxLjdjMCAwIDAgMCAwIDBjMCAuOCAuMSAxLjcgLjIgMi41bDAgLjFjMCAuMyAuMSAuOCAuMiAxLjNjLjIgMS4xIC40IDIuNyAuOCA0LjZjLjggMy45IDIgOS40IDMuOSAxNS45YzMuOCAxMyAxMC4zIDMwLjQgMjEuMyA0OEM0OC43IDQ3Ni4yIDg5LjQgNTEyIDE2MCA1MTJjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhjMC0yMy4zLTYuMi00NS4yLTE3LjEtNjRoMjIuNmMyNS41IDAgNDkuOS0xMC4xIDY3LjktMjguMWwyNi41LTI2LjVjNi02IDE0LjEtOS40IDIyLjYtOS40SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMmMtMjUuNyAwLTQxLjQtMTIuNS01MS4yLTI1LjZjLTUtNi43LTguNC0xMy40LTEwLjUtMTguNmMtMS4xLTIuNS0xLjgtNC42LTIuMi02Yy0uMi0uNy0uNC0xLjItLjUtMS41bC0uMS0uMmMtLjMtMS4zLS44LTIuNi0xLjUtMy44Yy0xLjEtMi0yLjYtMy44LTQuNC01LjFjLTIuNy0yLTYtMy4yLTkuNi0zLjJsLS4yIDBjLTggLjEtMTQuNiA2LjEtMTUuNiAxMy45bDAgMGMwIC4zLS4xIC42LS4yIDEuMWMtLjEgLjktLjMgMi4xLS40IDMuNmMtLjMgMy0uNiA3LjMtLjYgMTIuNGMwIDEwLjEgMS4xIDIzLjkgNS44IDM4LjFjNC44IDE0LjMgMTMuNCAyOS4zIDI4LjYgNDAuN0MzNjguNyA0NzMuMyAzODkuMyA0ODAgNDE2IDQ4MGM1MyAwIDk2LTQzIDk2LTk2VjI4OGMwLTUzLTQzLTk2LTk2LTk2aC01LjVjLTI1LjUgMC00OS45IDEwLjEtNjcuOSAyOC4xbC0yNi41IDI2LjVjLTYgNi0xNC4xIDkuNC0yMi42IDkuNEgyNDUuMmM2LjktMTQuNSAxMC44LTMwLjggMTAuOC00OGMwLTYxLjktNTAuMS0xMTItMTEyLTExMmMtMjUuMiAwLTQ4LjUgOC4zLTY3LjIgMjIuNGMtMTQuMSAxMC42LTE3IDMwLjctNi40IDQ0LjhzMzAuNyAxNyA0NC44IDYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3R0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgxLjUgMTk3LjFsMTIuOSA2LjRjNS45IDMgMTIuNCA0LjUgMTkuMSA0LjVjMjMuNSAwIDQyLjYtMTkuMSA0Mi42LTQyLjZWMTQ0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjEuNGMwIDIzLjUgMTkuMSA0Mi42IDQyLjYgNDIuNmM2LjYgMCAxMy4xLTEuNSAxOS4xLTQuNWwxMi45LTYuNCA4LjQtNC4yTDEzNS4xIDE4NWMtNC41LTMtNy4xLTgtNy4xLTEzLjNWMTY4YzAtMTMuMyAxMC43LTI0IDI0LTI0aDE2YzEzLjMgMCAyNCAxMC43IDI0IDI0djMuN2MwIDUuMy0yLjcgMTAuMy03LjEgMTMuM2wtMTEuOCA3LjkgOC40IDQuMnptLTguNiA0OS40TDE2MCAyNDBsLTEyLjkgNi40Yy0xMi42IDYuMy0yNi41IDkuNi00MC41IDkuNmMtMy42IDAtNy4xLS4yLTEwLjYtLjZ2LjZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0VjMzNiAzMjBjMC0yMy43IDEyLjktNDQuNCAzMi01NS40YzkuNC01LjQgMjAuMy04LjYgMzItOC42VjI0MGMwLTI2LjUgMjEuNS00OCA0OC00OGM4LjggMCAxNiA3LjIgMTYgMTZ2MzIgMTYgNDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMDQuM2MwLTQ4LjItMzAuOC05MS03Ni42LTEwNi4zbC04LjUtMi44Yy04LTIuNy0xMi42LTExLjEtMTAuNC0xOS4zczEwLjMtMTMuMiAxOC42LTExLjZsMTkuOSA0QzU3NiA4Ni4xIDY0MCAxNjQuMiA2NDAgMjU0LjlsMCAxLjFoMGMwIDEyMy43LTEwMC4zIDIyNC0yMjQgMjI0aC0xLjFIMjU2aC0uNkMxMzIgNDgwIDMyIDM4MCAzMiAyNTYuNlYyNTYgMjE2LjhjLTEwLjEtMTQuNi0xNi0zMi4zLTE2LTUxLjRWMTQ0bDAtMS40QzYuNyAxMzkuMyAwIDEzMC41IDAgMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0aDIuOEM0NC44IDU4LjIgODMuMyAzMiAxMjggMzJoNjRjNDQuNyAwIDgzLjIgMjYuMiAxMDEuMiA2NEgyOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRjMCAxMC41LTYuNyAxOS4zLTE2IDIyLjZsMCAxLjR2MjEuNGMwIDEuNCAwIDIuOC0uMSA0LjNjMTItNi4yIDI1LjctOS42IDQwLjEtOS42aDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJoLThjLTEzLjMgMC0yNCAxMC43LTI0IDI0djhoNTYuNGMtMTUuMiAxNy0yNC40IDM5LjQtMjQuNCA2NEgzMjBjLTQyLjMgMC03OC4yLTI3LjQtOTEtNjUuM2MtNS4xIC45LTEwLjMgMS4zLTE1LjYgMS4zYy0xNC4xIDAtMjcuOS0zLjMtNDAuNS05LjZ6TTk2IDEyOGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTExMiAxNmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPdXRkZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjR6TTE5MiAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIyNGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyIDk2SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TS4yIDI2OC42Yy04LjItNi40LTguMi0xOC45IDAtMjUuM2wxMDEuOS03OS4zYzEwLjUtOC4yIDI1LjgtLjcgMjUuOCAxMi42VjMzNS4zYzAgMTMuMy0xNS4zIDIwLjgtMjUuOCAxMi42TC4yIDI2OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJoOTZjODguNCAwIDE2MCA3MS42IDE2MCAxNjBzLTcxLjYgMTYwLTE2MCAxNjBINjR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzIwIDk2ek02NCAyODhoOTZjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZINjRWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6bTY0IDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek04MCAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIODB6bTEzNiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFpbnRSb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMzUyYzM1LjMgMCA2NCAyOC43IDY0IDY0djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTYwIDM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMlYzMDRjMC00NC4yIDM1LjgtODAgODAtODBINDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE2MCA2OS41YzM3LjMgMTMuMiA2NCA0OC43IDY0IDkwLjV2MzJjMCA1My00MyA5Ni05NiA5NkgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhaW50YnJ1c2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM5LjMgMzY3LjFjMjcuMy0zLjkgNTEuOS0xOS40IDY3LjItNDIuOUw1NjguMiA3NC4xYzEyLjYtMTkuNSA5LjQtNDUuMy03LjYtNjEuMlM1MTcuNy00LjQgNDk5LjEgOS42TDI2Mi40IDE4Ny4yYy0yNCAxOC0zOC4yIDQ2LjEtMzguNCA3Ni4xTDMzOS4zIDM2Ny4xem0tMTkuNiAyNS40bC0xMTYtMTA0LjRDMTQzLjkgMjkwLjMgOTYgMzM5LjYgOTYgNDAwYzAgMy45IC4yIDcuOCAuNiAxMS42Qzk4LjQgNDI5LjEgODYuNCA0NDggNjguOCA0NDhINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMjA4YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtMi41LS4xLTUtLjItNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYWxldHRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAyNTZjMCAuOSAwIDEuOCAwIDIuN2MtLjQgMzYuNS0zMy42IDYxLjMtNzAuMSA2MS4zSDM0NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhjMCAzLjQgLjQgNi43IDEgOS45YzIuMSAxMC4yIDYuNSAyMCAxMC44IDI5LjljNi4xIDEzLjggMTIuMSAyNy41IDEyLjEgNDJjMCAzMS44LTIxLjYgNjAuNy01My40IDYyYy0zLjUgLjEtNyAuMi0xMC42IC4yQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2UzExNC42IDAgMjU2IDBTNTEyIDExNC42IDUxMiAyNTZ6TTEyOCAyODhhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6TTI4OCA5NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem05NiA5NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjR2NjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIOTYgMzIwIDU0NGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg1NzZWMzg0aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDU0NCAzMjAgOTYgMzJ6bTk2IDY0SDI4OHY2NEgxMjhWMzg0em0yMjQgMEg1MTJ2NjRIMzUyVjM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFub3JhbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUuNiAzMkMyMC40IDMyIDAgNTIuNCAwIDc3LjZWNDM0LjRDMCA0NTkuNiAyMC40IDQ4MCA0NS42IDQ4MGM1LjEgMCAxMC0uOCAxNC43LTIuNEM3NC42IDQ3Mi44IDE3Ny42IDQ0MCAzMjAgNDQwczI0NS40IDMyLjggMjU5LjYgMzcuNmM0LjcgMS42IDkuNyAyLjQgMTQuNyAyLjRjMjUuMiAwIDQ1LjYtMjAuNCA0NS42LTQ1LjZWNzcuNkM2NDAgNTIuNCA2MTkuNiAzMiA1OTQuNCAzMmMtNSAwLTEwIC44LTE0LjcgMi40QzU2NS40IDM5LjIgNDYyLjQgNzIgMzIwIDcyUzc0LjYgMzkuMiA2MC40IDM0LjRDNTUuNiAzMi44IDUwLjcgMzIgNDUuNiAzMnpNOTYgMTYwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTI3MiAwYzcuOSAwIDE1LjQgMy45IDE5LjggMTAuNUw1MTIuMyAzNTNjNS40IDggNS42IDE4LjQgLjQgMjYuNXMtMTQuNyAxMi4zLTI0LjIgMTAuN0M0NDIuNyAzODIuNCAzODUuMiAzNzYgMzIwIDM3NmMtNjUuNiAwLTEyMy40IDYuNS0xNjkuMyAxNC40Yy05LjggMS43LTE5LjctMi45LTI0LjctMTEuNXMtNC4zLTE5LjQgMS45LTI3LjJMMTk3LjMgMjY1YzQuNi01LjcgMTEuNC05IDE4LjctOXMxNC4yIDMuMyAxOC43IDlsMjYuNCAzMy4xIDg3LTEyNy42YzQuNS02LjYgMTEuOS0xMC41IDE5LjgtMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFwZXJQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTguMSA1LjZjMTAuMSA3IDE1LjQgMTkuMSAxMy41IDMxLjJsLTY0IDQxNmMtMS41IDkuNy03LjQgMTguMi0xNiAyM3MtMTguOSA1LjQtMjggMS42TDI4NCA0MjcuN2wtNjguNSA3NC4xYy04LjkgOS43LTIyLjkgMTIuOS0zNS4yIDguMVMxNjAgNDkzLjIgMTYwIDQ4MFYzOTYuNGMwLTQgMS41LTcuOCA0LjItMTAuN0wzMzEuOCAyMDIuOGM1LjgtNi4zIDUuNi0xNi0uNC0yMnMtMTUuNy02LjQtMjItLjdMMTA2IDM2MC44IDE3LjcgMzE2LjZDNy4xIDMxMS4zIC4zIDMwMC43IDAgMjg4LjlzNS45LTIyLjggMTYuMS0yOC43bDQ0OC0yNTZjMTAuNy02LjEgMjMuOS01LjUgMzQgMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXBlcmNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY0LjIgODMuOGMtMjQuNC0yNC40LTY0LTI0LjQtODguNCAwbC0xODQgMTg0Yy00Mi4xIDQyLjEtNDIuMSAxMTAuMyAwIDE1Mi40czExMC4zIDQyLjEgMTUyLjQgMGwxNTItMTUyYzEwLjktMTAuOSAyOC43LTEwLjkgMzkuNiAwczEwLjkgMjguNyAwIDM5LjZsLTE1MiAxNTJjLTY0IDY0LTE2Ny42IDY0LTIzMS42IDBzLTY0LTE2Ny42IDAtMjMxLjZsMTg0LTE4NGM0Ni4zLTQ2LjMgMTIxLjMtNDYuMyAxNjcuNiAwczQ2LjMgMTIxLjMgMCAxNjcuNmwtMTc2IDE3NmMtMjguNiAyOC42LTc1IDI4LjYtMTAzLjYgMHMtMjguNi03NSAwLTEwMy42bDE0NC0xNDRjMTAuOS0xMC45IDI4LjctMTAuOSAzOS42IDBzMTAuOSAyOC43IDAgMzkuNmwtMTQ0IDE0NGMtNi43IDYuNy02LjcgMTcuNyAwIDI0LjRzMTcuNyA2LjcgMjQuNCAwbDE3Ni0xNzZjMjQuNC0yNC40IDI0LjQtNjQgMC04OC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJhY2h1dGVCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjUgMTkyYy4zLTUuMyAuNS0xMC42IC41LTE2YzAtNTEtMTUuOS05Ni00MC4yLTEyNy42QzMxOS41IDE2LjkgMjg4LjIgMCAyNTYgMHMtNjMuNSAxNi45LTg3LjggNDguNEMxNDMuOSA4MCAxMjggMTI1IDEyOCAxNzZjMCA1LjQgLjIgMTAuNyAuNSAxNkgyNDBWMzIwSDIwOGMtNyAwLTEzLjcgMS41LTE5LjcgNC4yTDY4LjIgMTkySDk2LjVjLS4zLTUuMy0uNS0xMC42LS41LTE2YzAtNjQgMjIuMi0xMjEuMiA1Ny4xLTE1OS4zQzYyIDQ5LjMgMTguNiAxMjIuNiA0LjIgMTczLjZDMS41IDE4My4xIDkgMTkyIDE4LjkgMTkyaDZMMTY1LjIgMzQ2LjNjLTMuMyA2LjUtNS4yIDEzLjktNS4yIDIxLjd2OTZjMCAyNi41IDIxLjUgNDggNDggNDhoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzY4YzAtNy44LTEuOS0xNS4yLTUuMi0yMS43TDQ4Ny4xIDE5Mmg2YzkuOSAwIDE3LjQtOC45IDE0LjctMTguNEM0OTMuNCAxMjIuNiA0NTAgNDkuMyAzNTguOSAxNi43QzM5My44IDU0LjggNDE2IDExMi4xIDQxNiAxNzZjMCA1LjQtLjIgMTAuNy0uNSAxNmgyOC4zTDMyMy43IDMyNC4yYy02LTIuNy0xMi43LTQuMi0xOS43LTQuMkgyNzJWMTkySDM4My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJhZ3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDMyaDY0SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzODRsMCAzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJsMC0zNTJIMjg4VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTkyYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MHM3MS42LTE2MCAxNjAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXNzcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgzODRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTgzIDI3OC44Yy0yNy45LTEzLjItNDguNC0zOS40LTUzLjctNzAuOGgzOS4xYzEuNiAzMC40IDcuNyA1My44IDE0LjYgNzAuOHptNDEuMyA5LjJsLS4zIDAtLjMgMGMtMi40LTMuNS01LjctOC45LTkuMS0xNi41Yy02LTEzLjYtMTIuNC0zNC4zLTE0LjItNjMuNWg0Ny4xYy0xLjggMjkuMi04LjEgNDkuOS0xNC4yIDYzLjVjLTMuNCA3LjYtNi43IDEzLTkuMSAxNi41em00MC43LTkuMmM2LjgtMTcuMSAxMi45LTQwLjQgMTQuNi03MC44aDM5LjFjLTUuMyAzMS40LTI1LjggNTcuNi01My43IDcwLjh6TTI3OS42IDE3NmMtMS42LTMwLjQtNy43LTUzLjgtMTQuNi03MC44YzI3LjkgMTMuMiA0OC40IDM5LjQgNTMuNyA3MC44SDI3OS42ek0yMjMuNyA5NmwuMyAwIC4zIDBjMi40IDMuNSA1LjcgOC45IDkuMSAxNi41YzYgMTMuNiAxMi40IDM0LjMgMTQuMiA2My41SDIwMC41YzEuOC0yOS4yIDguMS00OS45IDE0LjItNjMuNWMzLjQtNy42IDYuNy0xMyA5LjEtMTYuNXpNMTgzIDEwNS4yYy02LjggMTcuMS0xMi45IDQwLjQtMTQuNiA3MC44SDEyOS4zYzUuMy0zMS40IDI1LjgtNTcuNiA1My43LTcwLjh6TTM1MiAxOTJBMTI4IDEyOCAwIDEgMCA5NiAxOTJhMTI4IDEyOCAwIDEgMCAyNTYgMHpNMTEyIDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkgzMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGMtMjMuNyAwLTQ0LjQgMTIuOS01NS40IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODBWNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDE5MlYxNzZjMC00NC4yIDM1LjgtODAgODAtODBoNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjE1LjRDMjA0LjQgMTIuOSAxODMuNyAwIDE2MCAwek0yNzIgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OFY0NDh2MTZjMCAyNi41IDIxLjUgNDggNDggNDhINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI0My45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlsLTY3LjktNjcuOWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFIMzIwIDI3MnpNMTYwIDQwYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggNjRDMjEuNSA2NCAwIDg1LjUgMCAxMTJWNDAwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OEg0OHptMTkyIDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjQwMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzMmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI2LjUgOTIuOWMxNC4zIDQyLjktLjMgODYuMi0zMi42IDk2LjhzLTcwLjEtMTUuNi04NC40LTU4LjVzLjMtODYuMiAzMi42LTk2LjhzNzAuMSAxNS42IDg0LjQgNTguNXpNMTAwLjQgMTk4LjZjMTguOSAzMi40IDE0LjMgNzAuMS0xMC4yIDg0LjFzLTU5LjctLjktNzguNS0zMy4zUy0yLjcgMTc5LjMgMjEuOCAxNjUuM3M1OS43IC45IDc4LjUgMzMuM3pNNjkuMiA0MDEuMkMxMjEuNiAyNTkuOSAyMTQuNyAyMjQgMjU2IDIyNHMxMzQuNCAzNS45IDE4Ni44IDE3Ny4yYzMuNiA5LjcgNS4yIDIwLjEgNS4yIDMwLjV2MS42YzAgMjUuOC0yMC45IDQ2LjctNDYuNyA0Ni43Yy0xMS41IDAtMjIuOS0xLjQtMzQtNC4ybC04OC0yMmMtMTUuMy0zLjgtMzEuMy0zLjgtNDYuNiAwbC04OCAyMmMtMTEuMSAyLjgtMjIuNSA0LjItMzQgNC4yQzg0LjkgNDgwIDY0IDQ1OS4xIDY0IDQzMy4zdi0xLjZjMC0xMC40IDEuNi0yMC44IDUuMi0zMC41ek00MjEuOCAyODIuN2MtMjQuNS0xNC0yOS4xLTUxLjctMTAuMi04NC4xczU0LTQ3LjMgNzguNS0zMy4zczI5LjEgNTEuNyAxMC4yIDg0LjFzLTU0IDQ3LjMtNzguNSAzMy4zek0zMTAuMSAxODkuN2MtMzIuMy0xMC42LTQ2LjktNTMuOS0zMi42LTk2LjhzNTIuMS02OS4xIDg0LjQtNTguNXM0Ni45IDUzLjkgMzIuNiA5Ni44cy01Mi4xIDY5LjEtODQuNCA1OC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgNDQ1LjNWMzIzLjVsLTk0LjMgNzcuMWMyNi4xIDIyLjggNTguNSAzOC43IDk0LjMgNDQuN3pNODkuMiAzNTEuMUwyMjQgMjQwLjhWNjYuN0MxMzMuMiA4MS45IDY0IDE2MC45IDY0IDI1NmMwIDM0LjYgOS4yIDY3LjEgMjUuMiA5NS4xem0yOTMuMSA0OS41TDI4OCAzMjMuNVY0NDUuM2MzNS43LTYgNjguMS0yMS45IDk0LjMtNDQuN3ptNDAuNi00OS41YzE2LTI4IDI1LjItNjAuNSAyNS4yLTk1LjFjMC05NS4xLTY5LjItMTc0LjEtMTYwLTE4OS4zVjI0MC44TDQyMi44IDM1MS4xek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbkNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUzLjMgMTkuM2wzOS40IDM5LjRjMjUgMjUgMjUgNjUuNSAwIDkwLjVsLTUyLjEgNTIuMSAwIDAtMS0xIDAgMC0xNi0xNi05Ni05Ni0xNy0xNyA1Mi4xLTUyLjFjMjUtMjUgNjUuNS0yNSA5MC41IDB6TTI0MSAxMTQuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTA1IDIxN2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOUwxNzMuMSA4MWMyOC4xLTI4LjEgNzMuNy0yOC4xIDEwMS44IDBMMjg4IDk0LjFsMTcgMTcgOTYgOTYgMTYgMTYgMSAxLTE3IDE3TDIyOS41IDQxMi41Yy00OCA0OC0xMDkuMiA4MC44LTE3NS44IDk0LjFsLTI1IDVjLTcuOSAxLjYtMTYtLjktMjEuNy02LjZzLTguMS0xMy44LTYuNi0yMS43bDUtMjVjMTMuMy02Ni42IDQ2LjEtMTI3LjggOTQuMS0xNzUuOEwyNTQuMSAxMjggMjQxIDExNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5GYW5jeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzMuNSAyNy4xQzM4OC41IDkuOSA0MTAuMiAwIDQzMyAwYzQzLjYgMCA3OSAzNS40IDc5IDc5YzAgMjIuOC05LjkgNDQuNi0yNy4xIDU5LjZMMjc3LjcgMzE5bC0xMC4zLTEwLjMtNjQtNjRMMTkzIDIzNC4zIDM3My41IDI3LjF6TTE3MC4zIDI1Ni45bDEwLjQgMTAuNCA2NCA2NCAxMC40IDEwLjQtMTkuMiA4My40Yy0zLjkgMTcuMS0xNi45IDMwLjctMzMuOCAzNS40TDI0LjQgNTEwLjNsOTUuNC05NS40YzIuNiAuNyA1LjQgMS4xIDguMyAxLjFjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCAyLjkgLjQgNS42IDEuMSA4LjNMMS43IDQ4Ny42IDUxLjUgMzEwYzQuNy0xNi45IDE4LjMtMjkuOSAzNS40LTMzLjhsODMuNC0xOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5OaWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4LjQgMTguM0wzMTIuNyA3NC4xIDQzNy45IDE5OS4zbDU1LjctNTUuN2MyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMkw0NDcuNiAxOC4zYy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMHpNMjg4IDk0LjZsLTkuMiAyLjhMMTM0LjcgMTQwLjZjLTE5LjkgNi0zNS43IDIxLjItNDIuMyA0MUwzLjggNDQ1LjhjLTMuOCAxMS4zLTEgMjMuOSA3LjMgMzIuNEwxNjQuNyAzMjQuN2MtMy02LjMtNC43LTEzLjMtNC43LTIwLjdjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGMtNy40IDAtMTQuNC0xLjctMjAuNy00LjdMMzMuNyA1MDAuOWM4LjYgOC4zIDIxLjEgMTEuMiAzMi40IDcuM2wyNjQuMy04OC42YzE5LjctNi42IDM1LTIyLjQgNDEtNDIuM2w0My4yLTE0NC4xIDIuOC05LjJMMjg4IDk0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlblJ1bGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2OS4zIDE5LjNsMjMuNCAyMy40YzI1IDI1IDI1IDY1LjUgMCA5MC41bC01Ni40IDU2LjRMMzIyLjMgNzUuN2w1Ni40LTU2LjRjMjUtMjUgNjUuNS0yNSA5MC41IDB6TTQ0LjkgMzUzLjJMMjk5LjcgOTguMyA0MTMuNyAyMTIuMyAxNTguOCA0NjcuMWMtNi43IDYuNy0xNS4xIDExLjYtMjQuMiAxNC4ybC0xMDQgMjkuN2MtOC40IDIuNC0xNy40IC4xLTIzLjYtNi4xcy04LjUtMTUuMi02LjEtMjMuNmwyOS43LTEwNGMyLjYtOS4yIDcuNS0xNy41IDE0LjItMjQuMnpNMjQ5LjQgMTAzLjRMMTAzLjQgMjQ5LjQgMTYgMTYxLjljLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45TDk0LjEgMTZjMTguNy0xOC43IDQ5LjEtMTguNyA2Ny45IDBsMTkuOCAxOS44Yy0uMyAuMy0uNyAuNi0xIC45bC02NCA2NGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwbDY0LTY0Yy4zLS4zIC42LS43IC45LTFsNDUuMSA0NS4xek00MDguNiAyNjIuNmw0NS4xIDQ1LjFjLS4zIC4zLS43IC42LTEgLjlsLTY0IDY0Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsNjQtNjRjLjMtLjMgLjYtLjcgLjktMUw0OTYgMzUwLjFjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMNDE3LjkgNDk2Yy0xOC43IDE4LjctNDkuMSAxOC43LTY3LjkgMGwtODcuNC04Ny40TDQwOC42IDI2Mi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5Ub1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzEuNiAyMS43Yy0yMS45LTIxLjktNTcuMy0yMS45LTc5LjIgMEwzNjIuMyA1MS43bDk3LjkgOTcuOSAzMC4xLTMwLjFjMjEuOS0yMS45IDIxLjktNTcuMyAwLTc5LjJMNDcxLjYgMjEuN3ptLTI5OS4yIDIyMGMtNi4xIDYuMS0xMC44IDEzLjYtMTMuNSAyMS45bC0yOS42IDg4LjhjLTIuOSA4LjYtLjYgMTguMSA1LjggMjQuNnMxNS45IDguNyAyNC42IDUuOGw4OC44LTI5LjZjOC4yLTIuNyAxNS43LTcuNCAyMS45LTEzLjVMNDM3LjcgMTcyLjMgMzM5LjcgNzQuMyAxNzIuNCAyNDEuN3pNOTYgNjRDNDMgNjQgMCAxMDcgMCAxNjBWNDE2YzAgNTMgNDMgOTYgOTYgOTZIMzUyYzUzIDAgOTYtNDMgOTYtOTZWMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjIuNyAxOS4zTDMxNC4zIDY3LjcgNDQ0LjMgMTk3LjdsNDguNC00OC40YzI1LTI1IDI1LTY1LjUgMC05MC41TDQ1My4zIDE5LjNjLTI1LTI1LTY1LjUtMjUtOTAuNSAwem0tNzEgNzFMNTguNiAzMjMuNWMtMTAuNCAxMC40LTE4IDIzLjMtMjIuMiAzNy40TDEgNDgxLjJDLTEuNSA0ODkuNyAuOCA0OTguOCA3IDUwNXMxNS4zIDguNSAyMy43IDYuMWwxMjAuMy0zNS40YzE0LjEtNC4yIDI3LTExLjggMzcuNC0yMi4yTDQyMS43IDIyMC4zIDI5MS43IDkwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbmNpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTAuMyAyMzFsMTEuMy0xMS4zLTMzLjktMzMuOS02Mi4xLTYyLjFMMjkxLjcgODkuOGwtMTEuMyAxMS4zLTIyLjYgMjIuNkw1OC42IDMyMi45Yy0xMC40IDEwLjQtMTggMjMuMy0yMi4yIDM3LjRMMSA0ODAuN2MtMi41IDguNC0uMiAxNy41IDYuMSAyMy43czE1LjMgOC41IDIzLjcgNi4xbDEyMC4zLTM1LjRjMTQuMS00LjIgMjctMTEuOCAzNy40LTIyLjJMMzg3LjcgMjUzLjcgNDEwLjMgMjMxek0xNjAgMzk5LjRsLTkuMSAyMi43Yy00IDMuMS04LjUgNS40LTEzLjMgNi45TDU5LjQgNDUybDIzLTc4LjFjMS40LTQuOSAzLjgtOS40IDYuOS0xMy4zbDIyLjctOS4xdjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMnpNMzYyLjcgMTguN0wzNDguMyAzMy4yIDMyNS43IDU1LjggMzE0LjMgNjcuMWwzMy45IDMzLjkgNjIuMSA2Mi4xIDMzLjkgMzMuOSAxMS4zLTExLjMgMjIuNi0yMi42IDE0LjUtMTQuNWMyNS0yNSAyNS02NS41IDAtOTAuNUw0NTMuMyAxOC43Yy0yNS0yNS02NS41LTI1LTkwLjUgMHptLTQ3LjQgMTY4bC0xNDQgMTQ0Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDE0NC0xNDRjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVBcnJvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgNjQgNjR6TTI1LjkgMjMzLjRDMjkuMyAxOTEuOSA2NCAxNjAgMTA1LjYgMTYwaDQ0LjhjMjcgMCA1MSAxMy40IDY1LjUgMzQuMWMtMi43IDEuOS01LjIgNC03LjUgNi4zbC02NCA2NGMtMjEuOSAyMS45LTIxLjkgNTcuMyAwIDc5LjJMMTkyIDM5MS4yVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM0OC4zYy0yNi41LTkuNS00NC43LTM1LjgtNDIuMi02NS42bDQuMS00OS4zek00NDggNjRhNjQgNjQgMCAxIDEgMTI4IDBBNjQgNjQgMCAxIDEgNDQ4IDY0ek00MzEuNiAyMDAuNGMtMi4zLTIuMy00LjktNC40LTcuNS02LjNjMTQuNS0yMC43IDM4LjYtMzQuMSA2NS41LTM0LjFoNDQuOGM0MS42IDAgNzYuMyAzMS45IDc5LjcgNzMuNGw0LjEgNDkuM2MyLjUgMjkuOC0xNS43IDU2LjEtNDIuMiA2NS42VjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM5MS4ybDQ3LjYtNDcuNmMyMS45LTIxLjkgMjEuOS01Ny4zIDAtNzkuMmwtNjQtNjR6TTI3MiAyNDB2MzJoOTZWMjQwYzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMmw2NCA2NGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtNjQgNjRjLTYuOSA2LjktMTcuMiA4LjktMjYuMiA1LjJzLTE0LjgtMTIuNS0xNC44LTIyLjJWMzM2SDI3MnYzMmMwIDkuNy01LjggMTguNS0xNC44IDIyLjJzLTE5LjMgMS43LTI2LjItNS4ybC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsNjQtNjRjNi45LTYuOSAxNy4yLTguOSAyNi4yLTUuMnMxNC44IDEyLjUgMTQuOCAyMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVDYXJyeUJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDgwIDQ4em02NCAxOTMuN3Y2NS4xbDUxIDUxYzcuMSA3LjEgMTEuOCAxNi4yIDEzLjQgMjYuMWwxNS4yIDkwLjljMi45IDE3LjQtOC45IDMzLjktMjYuMyAzNi44cy0zMy45LTguOS0zNi44LTI2LjNsLTE0LjMtODUuOUw2Ni44IDMyMEM1NC44IDMwOCA0OCAyOTEuNyA0OCAyNzQuN1YxODYuNmMwLTMyLjQgMjYuMi01OC42IDU4LjYtNTguNmMyNC4xIDAgNDYuNSAxMiA1OS45IDMybDQ3LjQgNzEuMSAxMC4xIDVWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMySDM4NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY3Ni4ybDEwLjEtNUw0NzMuNSAxNjBjMTMuMy0yMCAzNS44LTMyIDU5LjktMzJjMzIuNCAwIDU4LjYgMjYuMiA1OC42IDU4LjZ2ODguMWMwIDE3LTYuNyAzMy4zLTE4LjcgNDUuM2wtNzkuNCA3OS40LTE0LjMgODUuOWMtMi45IDE3LjQtMTkuNCAyOS4yLTM2LjggMjYuM3MtMjkuMi0xOS40LTI2LjMtMzYuOGwxNS4yLTkwLjljMS42LTkuOSA2LjMtMTkgMTMuNC0yNi4xbDUxLTUxVjI0MS43bC0xOSAyOC41Yy00LjYgNy0xMSAxMi42LTE4LjUgMTYuM2wtNTkuNiAyOS44Yy0yLjQgMS4zLTQuOSAyLjItNy42IDIuOGMtMi42IC42LTUuMyAuOS03LjkgLjhIMjU2LjdjLTIuNSAuMS01LS4yLTcuNS0uN2MtMi45LS42LTUuNi0xLjYtOC4xLTNsLTU5LjUtMjkuOGMtNy41LTMuNy0xMy44LTkuNC0xOC41LTE2LjNsLTE5LTI4LjV6TTIuMyA0NjguMUw1MC4xIDM0OC42bDQ5LjIgNDkuMi0zNy42IDk0Yy02LjYgMTYuNC0yNS4yIDI0LjQtNDEuNiAxNy44Uy00LjMgNDg0LjUgMi4zIDQ2OC4xek01MTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTc3LjkgMzQ4LjZsNDcuOCAxMTkuNWM2LjYgMTYuNC0xLjQgMzUtMTcuOCA0MS42cy0zNS0xLjQtNDEuNi0xNy44bC0zNy42LTk0IDQ5LjItNDkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVvcGxlR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzIgODhhNTYgNTYgMCAxIDEgMTEyIDBBNTYgNTYgMCAxIDEgNzIgODh6TTY0IDI0NS43QzU0IDI1Ni45IDQ4IDI3MS44IDQ4IDI4OHM2IDMxLjEgMTYgNDIuM1YyNDUuN3ptMTQ0LjQtNDkuM0MxNzguNyAyMjIuNyAxNjAgMjYxLjIgMTYwIDMwNGMwIDM0LjMgMTIgNjUuOCAzMiA5MC41VjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzg5LjJDMjYuMiAzNzEuMiAwIDMzMi43IDAgMjg4YzAtNjEuOSA1MC4xLTExMiAxMTItMTEyaDMyYzI0IDAgNDYuMiA3LjUgNjQuNCAyMC4zek00NDggNDE2VjM5NC41YzIwLTI0LjcgMzItNTYuMiAzMi05MC41YzAtNDIuOC0xOC43LTgxLjMtNDguNC0xMDcuN0M0NDkuOCAxODMuNSA0NzIgMTc2IDQ5NiAxNzZoMzJjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJjMCA0NC43LTI2LjIgODMuMi02NCAxMDEuMlY0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJINDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnptOC0zMjhhNTYgNTYgMCAxIDEgMTEyIDBBNTYgNTYgMCAxIDEgNDU2IDg4ek01NzYgMjQ1Ljd2ODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTMyMCAzMmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpNMjQwIDMwNGMwIDE2LjIgNiAzMSAxNiA0Mi4zVjI2MS43Yy0xMCAxMS4zLTE2IDI2LjEtMTYgNDIuM3ptMTQ0LTQyLjN2ODQuN2MxMC0xMS4zIDE2LTI2LjEgMTYtNDIuM3MtNi0zMS4xLTE2LTQyLjN6TTQ0OCAzMDRjMCA0NC43LTI2LjIgODMuMi02NCAxMDEuMlY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMjg4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MDUuMmMtMzcuOC0xOC02NC01Ni41LTY0LTEwMS4yYzAtNjEuOSA1MC4xLTExMiAxMTItMTEyaDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2MCA3MmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwek0xNDQgMjA4YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpNNDk2IDIwOGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTIwMCAzMTMuNWwyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zNi4zLTY3LjVjMS43LTEuNyAzLjItMy42IDQuMy01LjhMMjY0IDIxNy41VjI3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTcuNWwyNi45IDQ5LjljMS4yIDIuMiAyLjYgNC4xIDQuMyA1LjhsLTM2LjMgNjcuNWMtNi4zIDExLjctMS45IDI2LjIgOS44IDMyLjVzMjYuMiAxLjkgMzIuNS05LjhMNDQwIDMxMy41VjM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTMuNWwyNi45IDQ5LjljNi4zIDExLjcgMjAuOCAxNiAzMi41IDkuOHMxNi0yMC44IDkuOC0zMi41bC0zNy45LTcwLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zSDQ4Ni4yYy0xNi4zIDAtMzEuOSA0LjUtNDUuNCAxMi42bC0zMy42LTYyLjNjLTE1LjMtMjguNS00NS4xLTQ2LjMtNzcuNS00Ni4zSDMxMC4yYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM2wtMzMuNiA2Mi4zYy0xMy41LTguMS0yOS4xLTEyLjYtNDUuNC0xMi42SDEzNC4yYy0zMi40IDAtNjIuMSAxNy44LTc3LjUgNDYuM0wxOC45IDM0MC42Yy02LjMgMTEuNy0xLjkgMjYuMiA5LjggMzIuNXMyNi4yIDEuOSAzMi41LTkuOEw4OCAzMTMuNVYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzEzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZVB1bGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgOTZBNDggNDggMCAxIDAgODAgMGE0OCA0OCAwIDEgMCAwIDk2ek02NCAxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0VjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMmM5LjggMCAxOC41LTQuNCAyNC40LTExLjJMODAuNCA0ODUuM2MyLjkgMTcuNCAxOS40IDI5LjIgMzYuOCAyNi4zczI5LjItMTkuNCAyNi4zLTM2LjhMMTIzLjEgMzUyaDE1LjdsMzAgMTM0LjljMy44IDE3LjMgMjAuOSAyOC4xIDM4LjIgMjQuM3MyOC4xLTIwLjkgMjQuMy0zOC4ybC01Ny4zLTI1OCAxMTYuMyA1My44Yy41IC4zIDEuMSAuNSAxLjYgLjdjOC42IDMuNiAxOCAzLjEgMjUuOS0uN2MzLjQtMS42IDYuNi0zLjkgOS4zLTYuN2MzLjEtMy4yIDUuNS03IDcuMS0xMS40Yy4xLS4zIC4yLS43IC4zLTFsMi41LTcuNWM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUw1MzcgMjMyLjdsLTE1LjMtMzYuOEM1MDQuNSAxNTQuOCA0NjQuMyAxMjggNDE5LjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTI0LjQgMTAuOS00NC42IDI5LTU4LjEgNTEuNkwxNTcuMyAxMzYuOUMxNDQuNyAxMzEgMTMwLjkgMTI4IDExNyAxMjhINjR6TTQ2NCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0OS43IDMzNS42bC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNzIuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVSb2JiZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC4yIDU5LjFDNDc4LjEgOTkuNiA0NDEuNyAxMjggNDAwIDEyOHMtNzguMS0yOC40LTg4LjItNjguOUwzMDMgMjQuMkMyOTguOCA3LjEgMjgxLjQtMy4zIDI2NC4yIDFTMjM2LjcgMjIuNiAyNDEgMzkuOGw4LjcgMzQuOWMxMSA0NCA0MC4yIDc5LjYgNzguMyA5OS42VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM1MmgxNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNzQuM2MzOC4xLTIwIDY3LjMtNTUuNiA3OC4zLTk5LjZMNTU5IDM5LjhjNC4zLTE3LjEtNi4xLTM0LjUtMjMuMy0zOC44UzUwMS4yIDcuMSA0OTcgMjQuMmwtOC43IDM0Ljl6TTQwMCA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTgwIDk2QTQ4IDQ4IDAgMSAwIDgwIDBhNDggNDggMCAxIDAgMCA5NnptLTggMzJjLTM1LjMgMC02NCAyOC43LTY0IDY0djk2bDAgLjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUySDg4VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI1Mi43bDEzIDIwLjVjNS45IDkuMiAxNi4xIDE0LjkgMjcgMTQuOWg0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyMDkuNmwtMzcuNC01OC45QzE1Ny42IDE0MiAxMzIuMSAxMjggMTA0LjcgMTI4SDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW9wbGVSb29mIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNS41IDRsMjg4IDE2MGMxNS40IDguNiAyMSAyOC4xIDEyLjQgNDMuNXMtMjguMSAyMS00My41IDEyLjRMMzIwIDY4LjYgNDcuNSAyMjBjLTE1LjQgOC42LTM0LjkgMy00My41LTEyLjRzLTMtMzQuOSAxMi40LTQzLjVMMzA0LjUgNGM5LjctNS40IDIxLjQtNS40IDMxLjEgMHpNMzIwIDE2MGE0MCA0MCAwIDEgMSAwIDgwIDQwIDQwIDAgMSAxIDAtODB6TTE0NCAyNTZhNDAgNDAgMCAxIDEgMCA4MCA0MCA0MCAwIDEgMSAwLTgwem0zMTIgNDBhNDAgNDAgMCAxIDEgODAgMCA0MCA0MCAwIDEgMSAtODAgMHpNMjI2LjkgNDkxLjRMMjAwIDQ0MS41VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ0MS41TDYxLjEgNDkxLjRjLTYuMyAxMS43LTIwLjggMTYtMzIuNSA5LjhzLTE2LTIwLjgtOS44LTMyLjVsMzcuOS03MC4zYzE1LjMtMjguNSA0NS4xLTQ2LjMgNzcuNS00Ni4zaDE5LjVjMTYuMyAwIDMxLjkgNC41IDQ1LjQgMTIuNmwzMy42LTYyLjNjMTUuMy0yOC41IDQ1LjEtNDYuMyA3Ny41LTQ2LjNoMTkuNWMzMi40IDAgNjIuMSAxNy44IDc3LjUgNDYuM2wzMy42IDYyLjNjMTMuNS04LjEgMjkuMS0xMi42IDQ1LjQtMTIuNmgxOS41YzMyLjQgMCA2Mi4xIDE3LjggNzcuNSA0Ni4zbDM3LjkgNzAuM2M2LjMgMTEuNyAxLjkgMjYuMi05LjggMzIuNXMtMjYuMiAxLjktMzIuNS05LjhMNTUyIDQ0MS41VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0NzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ0MS41bC0yNi45IDQ5LjljLTYuMyAxMS43LTIwLjggMTYtMzIuNSA5LjhzLTE2LTIwLjgtOS44LTMyLjVsMzYuMy02Ny41Yy0xLjctMS43LTMuMi0zLjYtNC4zLTUuOEwzNzYgMzQ1LjVWNDAwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDI5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzQ1LjVsLTI2LjkgNDkuOWMtMS4yIDIuMi0yLjYgNC4xLTQuMyA1LjhsMzYuMyA2Ny41YzYuMyAxMS43IDEuOSAyNi4yLTkuOCAzMi41cy0yNi4yIDEuOS0zMi41LTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVwcGVySG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyOC4zIDNjMTEuNi02LjQgMjYuMi0yLjMgMzIuNiA5LjNsNC44IDguN2MxOS4zIDM0LjcgMTkuOCA3NS43IDMuNCAxMTBDNDk1LjggMTU5LjYgNTEyIDE5Ny45IDUxMiAyNDBjMCAxOC41LTMuMSAzNi4zLTguOSA1Mi44Yy02LjEgMTcuMy0yOC41IDE2LjMtMzYuOC0uMWwtMTEuNy0yMy40Yy00LjEtOC4xLTEyLjQtMTMuMy0yMS41LTEzLjNIMzYwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRsLTE3LjEgMGMtMjEuMyAwLTMwLTIzLjktMTAuOC0zMi45QzMwNC43IDg1LjQgMzI3LjcgODAgMzUyIDgwYzI4LjMgMCA1NC44IDcuMyA3Ny44IDIwLjJjNS41LTE4LjIgMy43LTM4LjQtNi01NS44TDQxOSAzNS43Yy02LjQtMTEuNi0yLjMtMjYuMiA5LjMtMzIuNnpNMTcxLjIgMzQ1LjVMMjY0IDE2MGw0MCAwdjgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDc2LjJsMjMuOSA0Ny44QzM3Mi4zIDQ0My45IDI0NC4zIDUxMiAxMDMuMiA1MTJINDQuNEMxOS45IDUxMiAwIDQ5Mi4xIDAgNDY3LjZjMC0yMC44IDE0LjUtMzguOCAzNC44LTQzLjNsNDkuOC0xMS4xYzM3LjYtOC40IDY5LjUtMzMuMiA4Ni43LTY3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcmNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc0LjYgMTE4LjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBsLTMyMCAzMjBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsMzIwLTMyMHpNMTI4IDEyOEE2NCA2NCAwIDEgMCAwIDEyOGE2NCA2NCAwIDEgMCAxMjggMHpNMzg0IDM4NGE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkFycm93RG93blRvTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzNTJWMzUyaDE2djk2SDE4NHptLTY0IDBIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMTUyaDgwSDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNjRWMjU2LjlsMjguNiA0Ny41YzkuMSAxNS4xIDI4LjggMjAgNDMuOSAxMC45czIwLTI4LjggMTAuOS00My45bC01OC4zLTk3Yy0xNy40LTI4LjktNDguNi00Ni42LTgyLjMtNDYuNkgxNzcuMWMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45VjQ0OHpNNDY0IDY0VjMwNi43bC0yNS40LTI1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDgwIDgwYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDgwLTgwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDUyOCAzMDYuN1Y2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQXJyb3dVcEZyb21MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04IDM1MlYzNTJoMTZ2OTZIMTg0em0tNjQgMEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgxNTJoODBINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI2NFYyNTYuOWwyOC42IDQ3LjVjOS4xIDE1LjEgMjguOCAyMCA0My45IDEwLjlzMjAtMjguOCAxMC45LTQzLjlsLTU4LjMtOTdjLTE3LjQtMjguOS00OC42LTQ2LjYtODIuMy00Ni42SDE3Ny4xYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUwxMjAgMjU2LjlWNDQ4ek01OTguNiAxMjEuNGwtODAtODBjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC04MCA4MGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0NjQgMTQxLjMgNDY0IDM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE0MS4zbDI1LjQgMjUuNGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25CaWtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMjcuMiA2NGwtNjEuOC00OC44Yy0xNy4zLTEzLjYtNDEuNy0xMy44LTU5LjEtLjNsLTgzLjEgNjQuMmMtMzAuNyAyMy44LTI4LjUgNzAuOCA0LjMgOTEuNkwyODggMzA1LjFWNDE2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjg4YzAtMTAuNy01LjMtMjAuNy0xNC4yLTI2LjZMMjk1IDIzMi45bDYwLjMtNDguNUwzOTYgMjE3YzUuNyA0LjUgMTIuNyA3IDIwIDdoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDI3LjJ6TTU2IDM4NGE3MiA3MiAwIDEgMSAxNDQgMEE3MiA3MiAwIDEgMSA1NiAzODR6bTIwMCAwQTEyOCAxMjggMCAxIDAgMCAzODRhMTI4IDEyOCAwIDEgMCAyNTYgMHptMTg0IDBhNzIgNzIgMCAxIDEgMTQ0IDAgNzIgNzIgMCAxIDEgLTE0NCAwem0yMDAgMGExMjggMTI4IDAgMSAwIC0yNTYgMCAxMjggMTI4IDAgMSAwIDI1NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Cb290aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMTkyaDY0VjMyem0zMjAgMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMnpNMjI0IDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBIMTkyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnpNMzIwIDBjLTkuMyAwLTE4LjEgNC0yNC4yIDExcy04LjggMTYuMy03LjUgMjUuNWwzMS4yIDIxOC42TDI4OC42IDQwOS43Yy0zLjUgMTcuMyA3LjggMzQuMiAyNS4xIDM3LjdzMzQuMi03LjggMzcuNy0yNS4xbC43LTMuNmMxLjMgMTYuNCAxNS4xIDI5LjQgMzEuOSAyOS40YzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwek0xMTIgODBBNDggNDggMCAxIDAgMTYgODBhNDggNDggMCAxIDAgOTYgMHptMCAyNjEuM1YyNjkuM2w0LjcgNC43YzkgOSAyMS4yIDE0LjEgMzMuOSAxNC4xSDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxNTcuM2wtNDEuNi00MS42Yy0xNC4zLTE0LjMtMzMuOC0yMi40LTU0LTIyLjRDMjcuNiAxNjAgMCAxODcuNiAwIDIyMS42djU1LjdsMCAuOVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzODRsMzIgNDIuN1Y0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MjEuM2MwLTEwLjQtMy40LTIwLjUtOS42LTI4LjhMMTEyIDM0MS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25CcmVhc3RmZWVkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYTgwIDgwIDAgMSAxIDAgMTYwQTgwIDgwIDAgMSAxIDIyNCAwek00MzYuOCAzODIuOEwzNzMuNSA0NjJjLTE2LjYgMjAuNy00Ni44IDI0LjEtNjcuNSA3LjVjLTE3LjYtMTQuMS0yMi43LTM4LjEtMTMuNS01Ny43bC0uOC0uMWMtMzguOS01LjYtNzQuMy0yNS4xLTk5LjctNTQuOFYzMjBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2NDhjMCAuOCAwIDEuNiAuMSAyLjRsMTAxLjQgNTAuN2MyMy43IDExLjkgMzMuMyA0MC43IDIxLjUgNjQuNHMtNDAuNyAzMy4zLTY0LjQgMjEuNUwyNy4yIDQyNy4zYy0xLjEtLjUtMi4yLTEuMS0zLjMtMS43Yy00LjktMi44LTkuMi02LjQtMTIuNi0xMC42Yy00LjYtNS40LTcuOC0xMS43LTkuNi0xOC40Yy0zLjMtMTItMS45LTI1LjIgNC44LTM2LjZjLjYtMS4xIDEuMy0yLjIgMi0zLjJMNzUuNiAyNTYuMWMyNi43LTQwLjEgNzEuNy02NC4xIDExOS44LTY0LjFoNzUuMmM0Ni41IDAgOTAuMSAyMi41IDExNy4yIDYwLjNsNTAuNyA3MC45YzIuMiAzIDQgNi4xIDUuNSA5LjRjMi45IDYuNyA0LjMgMTMuOCA0IDIwLjhjLS4zIDEwLjYtNC4yIDIxLTExLjIgMjkuNHpNMzIwIDMzMmE0NCA0NCAwIDEgMCAtODggMCA0NCA0NCAwIDEgMCA4OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25CdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRWMzUyaDE2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI1Ni45bDI4LjYgNDcuNWM5LjEgMTUuMSAyOC44IDIwIDQzLjkgMTAuOXMyMC0yOC44IDEwLjktNDMuOWwtNTguMy05N2MtMTcuNC0yOC45LTQ4LjYtNDYuNi04Mi4zLTQ2LjZINDY1LjFjLTMzLjcgMC02NC45IDE3LjctODIuMyA0Ni42bC01OC4zIDk3Yy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45TDQwOCAyNTYuOVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNMTkwLjkgMTguMUMxODguNCAxMiAxODIuNiA4IDE3NiA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNzYgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA1MC41LTcuOCAyNC4zLTQwLjUtNTUuMi0zOEwzMTUgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiA0OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem0tOCAxODcuM2w0Ny40IDU3LjFjMTEuMyAxMy42IDMxLjUgMTUuNSA0NS4xIDQuMnMxNS41LTMxLjUgNC4yLTQ1LjFsLTczLjctODguOWMtMTguMi0yMi00NS4zLTM0LjctNzMuOS0zNC43SDE3Ny4xYy0zMy43IDAtNjQuOSAxNy43LTgyLjMgNDYuNmwtNTguMyA5N2MtOS4xIDE1LjEtNC4yIDM0LjggMTAuOSA0My45czM0LjggNC4yIDQzLjktMTAuOUwxMjAgMjU2LjlWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUyaDE2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjIzNS4zek0zNTIgMzc2YzAtNC40IDMuNi04IDgtOHM4IDMuNiA4IDhWNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzc2YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2djhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHYtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQ2hhbGtib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOCAzODRWMzUyaDE2VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE5Mmg1NiA2NCAxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzODRWNjRINTc2VjI1NkgzODRWMjI0SDMyMHY0OGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzY4Yy0yNi41IDAtNDggMjEuNS00OCA0OHY4MEgyNDMuMSAxNzcuMWMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjlMMTIwIDI1Ni45VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNTYuOUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmgyOS43YzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDQ0LjkgNzQuN2MtMTYuMSAxNy42LTI4LjYgMzguNS0zNi42IDYxLjVjLTEuOS0xLjgtMy41LTMuOS00LjktNi4zTDIzMiAyNTYuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDE1MnptMTM2IDE2YTE0NCAxNDQgMCAxIDEgMjg4IDAgMTQ0IDE0NCAwIDEgMSAtMjg4IDB6bTIxMS4zLTQzLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQxNiAzODUuNGwtMjguNy0yOC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDQwIDQwYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDcyLTcyYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDAgMzA0VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyNTYuOUw1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTguMy05N2MxNy40LTI4LjkgNDguNi00Ni42IDgyLjMtNDYuNmgyOS43YzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDQ0LjkgNzQuN2MtMTYuMSAxNy42LTI4LjYgMzguNS0zNi42IDYxLjVjLTEuOS0xLjgtMy41LTMuOS00LjktNi4zTDIzMiAyNTYuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDE1MnpNNDMyIDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTAgMjQwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMC0xOTJjLTguOCAwLTE2IDcuMi0xNiAxNnY4MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjI4OGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNpcmNsZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTUyem0xMzYgMTZhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjI0IDBjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg0OTZjOC44IDAgMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25DaXJjbGVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTUyek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMTYgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NDhIMzY4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzg0aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQ0OFYzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkNpcmNsZVF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNDQuOSA3NC43Yy0xNi4xIDE3LjYtMjguNiAzOC41LTM2LjYgNjEuNWMtMS45LTEuOC0zLjUtMy45LTQuOS02LjNMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJIMTUyek00MzIgMjI0YTE0NCAxNDQgMCAxIDEgMCAyODggMTQ0IDE0NCAwIDEgMSAwLTI4OHptMCAyNDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4ek0zNjggMzIxLjZWMzI4YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZ2LTYuNGMwLTUuMyA0LjMtOS42IDkuNi05LjZoNDAuNWM3LjcgMCAxMy45IDYuMiAxMy45IDEzLjljMCA1LjItMi45IDkuOS03LjQgMTIuM2wtMzIgMTYuOGMtNS4zIDIuOC04LjYgOC4yLTguNiAxNC4yVjM4NGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2di01LjFsMjMuNS0xMi4zYzE1LjEtNy45IDI0LjUtMjMuNiAyNC41LTQwLjZjMC0yNS40LTIwLjYtNDUuOS00NS45LTQ1LjlINDA5LjZjLTIzIDAtNDEuNiAxOC42LTQxLjYgNDEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlMNTkuNCAzMDQuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw0NC45IDc0LjdjLTE2LjEgMTcuNi0yOC42IDM4LjUtMzYuNiA2MS41Yy0xLjktMS44LTMuNS0zLjktNC45LTYuM0wyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxNTJ6TTQzMiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em01OS4zIDEwNy4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBMNDMyIDM0NS40bC0zNi43LTM2LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZMNDA5LjQgMzY4bC0zNi43IDM2LjdjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMEw0MzIgMzkwLjZsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0NTQuNiAzNjhsMzYuNy0zNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25EaWdnaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA2NGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwek05LjggMjE0LjhjNS4xLTEyLjIgMTkuMS0xOCAzMS40LTEyLjlMNjAuNyAyMTBsMjIuOS0zOC4xQzk5LjkgMTQ0LjYgMTI5LjMgMTI4IDE2MSAxMjhjNTEuNCAwIDk3IDMyLjkgMTEzLjMgODEuN2wzNC42IDEwMy43IDc5LjMgMzMuMSAzNC4yLTQ1LjZjNi40LTguNSAxNi42LTEzLjMgMjcuMi0xMi44czIwLjMgNi40IDI1LjggMTUuNWw5NiAxNjBjNS45IDkuOSA2LjEgMjIuMiAuNCAzMi4ycy0xNi4zIDE2LjItMjcuOCAxNi4ySDI4OGMtMTEuMSAwLTIxLjQtNS43LTI3LjItMTUuMnMtNi40LTIxLjItMS40LTMxLjFsMTYtMzJjNS40LTEwLjggMTYuNS0xNy43IDI4LjYtMTcuN2gzMmwyMi41LTMwTDIyLjggMjQ2LjJjLTEyLjItNS4xLTE4LTE5LjEtMTIuOS0zMS40em04Mi44IDkxLjhsMTEyIDQ4YzExLjggNSAxOS40IDE2LjYgMTkuNCAyOS40djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQwNS4xbC02MC42LTI2LTM3IDExMWMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMlMtMy45IDQ4Ni42IDEuNiA0NjkuOWw0OC0xNDQgMTEtMzMgMzIgMTMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uRG90c0Zyb21MaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNzZBODggODggMCAxIDAgMjg4IDBhODggODggMCAxIDAgMCAxNzZ6TTc4LjcgMzcyLjljMTUtMTIuNSA1MC0zNC40IDk3LjMtNTAuMVY0MzJINDAwVjMyMi43YzQ3LjMgMTUuOCA4Mi4zIDM3LjcgOTcuMyA1MC4xYzIwLjQgMTcgNTAuNiAxNC4yIDY3LjYtNi4xczE0LjItNTAuNi02LjEtNjcuNmMtMTItMTAtMzAuMS0yMi41LTUzLjItMzVDNDk3LjIgMjc4LjQgNDgxLjcgMjg4IDQ2NCAyODhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtNC4zIC42LTguNCAxLjYtMTIuNEMzNzkuMSAyMTUuOSAzMzUuMyAyMDggMjg4IDIwOGMtNjAuMiAwLTExNC45IDEyLjktMTYwIDI5LjljMCAuNyAwIDEuNCAwIDIuMWMwIDI2LjUtMjEuNSA0OC00OCA0OGMtMTEuOCAwLTIyLjctNC4zLTMxLTExLjRjLTEzLjEgOC4xLTIzLjcgMTUuOS0zMS43IDIyLjVjLTIwLjQgMTctMjMuMSA0Ny4yLTYuMSA2Ny42czQ3LjIgMjMuMSA2Ny42IDYuMXpNMjQgNDY0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDU1MmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNHpNMjI0IDI4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwem0xMDQgNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4ek05NiAyNDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptMzY4IDE2YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uRHJlc3NCdXJzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMzkwLjIgMzg0SDQwOHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGgxNnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGgxNy44YzEwLjkgMCAxOC42LTEwLjcgMTUuMi0yMS4xTDU0Ni43IDI0OC4xbDMzLjkgNTYuM2M5LjEgMTUuMSAyOC44IDIwIDQzLjkgMTAuOXMyMC0yOC44IDEwLjktNDMuOWwtNTMuNi04OS4yYy0yMC4yLTMzLjctNTYuNy01NC4zLTk2LTU0LjNINDc0LjJjLTM5LjMgMC03NS43IDIwLjYtOTYgNTQuM2wtNTMuNiA4OS4yYy05LjEgMTUuMS00LjIgMzQuOCAxMC45IDQzLjlzMzQuOCA0LjIgNDMuOS0xMC45bDMzLjktNTYuM0wzNzUgMzYyLjljLTMuNSAxMC40IDQuMyAyMS4xIDE1LjIgMjEuMXpNMTkwLjkgMTguMUMxODguNCAxMiAxODIuNiA4IDE3NiA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDU1LjYgNjguOWMtNi4zLTEuOS0xMy4xIC4yLTE3LjIgNS4zcy00LjYgMTIuMi0xLjQgMTcuOWwzOS41IDY5LjFMMTAuOSAyMDYuNGMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdzNi43IDExLjIgMTMuMSAxMi4ybDc4LjcgMTIuMkw5MC42IDMyN2MtLjUgNi41IDMuMSAxMi43IDkgMTUuNXMxMi45IDEuOCAxNy44LTIuNkwxNzYgMjg2LjFsNTguNiA1My45YzQuOCA0LjQgMTEuOSA1LjUgMTcuOCAyLjZzOS41LTkgOS0xNS41bC01LjYtNzkuNCA1MC41LTcuOCAyNC40LTQwLjUtNTUuMi0zOEwzMTUgOTIuMmMzLjMtNS43IDIuNy0xMi44LTEuNC0xNy45cy0xMC45LTcuMi0xNy4yLTUuM0wyMjAuMyA5Mi4xbC0yOS40LTc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25EcmVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTg4IDM4NEg3MC4yYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMUw5My4zIDI0OC4xIDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1My42LTg5LjJjMjAuMy0zMy43IDU2LjctNTQuMyA5Ni01NC4zaDExLjZjMzkuMyAwIDc1LjcgMjAuNiA5NiA1NC4zbDUzLjYgODkuMmM5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOWwtMzMuOS01Ni4zTDI2NSAzNjIuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFIMjMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NEgxNTJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Ecm93bmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWOTYuMmMwIDU0LjEgMjMuNSAxMDQgNjIuMiAxMzguM2wtMjEgMTQ2LjdjNy44IDIuMSAxNS41IDMuMyAyMi44IDMuM2MyMS4xIDAgNDItOC41IDU5LjItMjAuM2MyMi4xLTE1LjUgNTEuNi0xNS41IDczLjcgMGMxMi40IDguNSAyNi4xIDE0LjggMzkuNyAxOGwxNy43LTk3LjZjMTAuNy0xLjIgMjEuMy0zLjEgMzEuOS01LjVsMTA1LTIzLjljMTcuMi0zLjkgMjgtMjEuMSAyNC4xLTM4LjNzLTIxLjEtMjgtMzguMy0yNC4xTDQwMCAyMTYuNmMtNDEgOS4zLTgzLjcgNy41LTEyMy43LTUuMmMtNTAuMi0xNi04NC4zLTYyLjYtODQuMy0xMTUuM1Y2NHpNMzIwIDE5MmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMzA2LjUgMzg5LjljLTExLjEtNy45LTI1LjktNy45LTM3IDBDMjQ3IDQwNS40IDIxOS41IDQxNiAxOTIgNDE2Yy0yNi45IDAtNTUuMy0xMC44LTc3LjQtMjYuMWwwIDBjLTExLjktOC41LTI4LjEtNy44LTM5LjIgMS43Yy0xNC40IDExLjktMzIuNSAyMS01MC42IDI1LjJjLTE3LjIgNC0yNy45IDIxLjItMjMuOSAzOC40czIxLjIgMjcuOSAzOC40IDIzLjljMjQuNS01LjcgNDQuOS0xNi41IDU4LjItMjVDMTI2LjUgNDY5LjcgMTU5IDQ4MCAxOTIgNDgwYzMxLjkgMCA2MC42LTkuOSA4MC40LTE4LjljNS44LTIuNyAxMS4xLTUuMyAxNS42LTcuN2M0LjUgMi40IDkuNyA1LjEgMTUuNiA3LjdjMTkuOCA5IDQ4LjUgMTguOSA4MC40IDE4LjljMzMgMCA2NS41LTEwLjMgOTQuNS0yNS44YzEzLjQgOC40IDMzLjcgMTkuMyA1OC4yIDI1YzE3LjIgNCAzNC40LTYuNyAzOC40LTIzLjlzLTYuNy0zNC40LTIzLjktMzguNGMtMTguMS00LjItMzYuMi0xMy4zLTUwLjYtMjUuMmMtMTEuMS05LjQtMjcuMy0xMC4xLTM5LjItMS43bDAgMEM0MzkuNCA0MDUuMiA0MTAuOSA0MTYgMzg0IDQxNmMtMjcuNSAwLTU1LTEwLjYtNzcuNS0yNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25GYWxsaW5nQnVyc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMybDAgOS44YzAgMzktMjMuNyA3NC01OS45IDg4LjRDNzEuNiAxNTQuNSAzMiAyMTMgMzIgMjc4LjJWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC03My44YzAtMTAgMS42LTE5LjggNC41LTI5TDI2MS4xIDQ5Ny40YzkuNiAxNC44IDI5LjQgMTkuMSA0NC4zIDkuNXMxOS4xLTI5LjQgOS41LTQ0LjNMMjIyLjYgMzIwSDIyNGw4MCAwIDM4LjQgNTEuMmMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44bC00My4yLTU3LjZDMzQxLjMgMjYzLjEgMzI3LjEgMjU2IDMxMiAyNTZsLTcxLjUgMC01Ni44LTgwLjItLjItLjNjNDQuNy0yOSA3Mi41LTc5IDcyLjUtMTMzLjZsMC05Ljh6TTk2IDgwQTQ4IDQ4IDAgMSAwIDAgODBhNDggNDggMCAxIDAgOTYgMHpNNDY0IDI4Ni4xbDU4LjYgNTMuOWM0LjggNC40IDExLjkgNS41IDE3LjggMi42czkuNS05IDktMTUuNWwtNS42LTc5LjQgNzguNy0xMi4yYzYuNS0xIDExLjctNS45IDEzLjEtMTIuMnMtMS4xLTEzLTYuNS0xNi43bC02NS42LTQ1LjFMNjAzIDkyLjJjMy4zLTUuNyAyLjctMTIuOC0xLjQtMTcuOXMtMTAuOS03LjItMTcuMi01LjNMNTA4LjMgOTIuMWwtMjkuNC03NEM0NzYuNCAxMiA0NzAuNiA4IDQ2NCA4cy0xMi40IDQtMTQuOSAxMC4xbC0yOS40IDc0TDM0My42IDY4LjljLTYuMy0xLjktMTMuMSAuMi0xNy4yIDUuM3MtNC42IDEyLjItMS40IDE3LjlsMzkuNSA2OS4xLTY1LjYgNDUuMWMtNS40IDMuNy04IDEwLjMtNi41IDE2LjdjLjEgLjMgLjEgLjYgLjIgLjhsMTkuNCAwYzIwLjEgMCAzOS4yIDcuNSA1My44IDIwLjhsMTguNCAyLjlMMzgzIDI2NS4zbDM2LjIgNDguM2MyLjEgMi44IDMuOSA1LjcgNS41IDguNkw0NjQgMjg2LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbkZhbGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCA5LjhjMCA1NC42LTI3LjkgMTA0LjYtNzIuNSAxMzMuNmwuMiAuM0wzMDQuNSAyNTZsODcuNSAwYzE1LjEgMCAyOS4zIDcuMSAzOC40IDE5LjJsNDMuMiA1Ny42YzEwLjYgMTQuMSA3LjcgMzQuMi02LjQgNDQuOHMtMzQuMiA3LjctNDQuOC02LjRMMzg0IDMyMGwtOTYgMGgtMS40bDkyLjMgMTQyLjZjOS42IDE0LjggNS40IDM0LjYtOS41IDQ0LjNzLTM0LjYgNS40LTQ0LjMtOS41TDE2NC41IDI0OS4yYy0yLjkgOS4yLTQuNSAxOS00LjUgMjlsMCA3My44YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI3OC4yYzAtNjUuMSAzOS42LTEyMy43IDEwMC4xLTE0Ny45QzIzMi4zIDExNS44IDI1NiA4MC44IDI1NiA0MS44bDAtOS44YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0xMTIgMzJhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25IYWxmRHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDBhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2em04IDM1MlYxMjhoNi45YzMzLjcgMCA2NC45IDE3LjcgODIuMyA0Ni42bDU4LjMgOTdjOS4xIDE1LjEgNC4yIDM0LjgtMTAuOSA0My45cy0zNC44IDQuMi00My45LTEwLjlMMjMyIDI1Ni45VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzNTJoMHpNNTguMiAxODIuM2MxOS45LTMzLjEgNTUuMy01My41IDkzLjgtNTQuM1YzODRoMHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODRINzAuMmMtMTAuOSAwLTE4LjYtMTAuNy0xNS4yLTIxLjFMOTMuMyAyNDguMSA1OS40IDMwNC41Yy05LjEgMTUuMS0yOC44IDIwLTQzLjkgMTAuOXMtMjAtMjguOC0xMC45LTQzLjlsNTMuNi04OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25IYXJhc3NpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNNTkuNCAzMDQuNUw4OCAyNTYuOVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTJoMTZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjM1LjNsNDcuNCA1Ny4xYzExLjMgMTMuNiAzMS41IDE1LjUgNDUuMSA0LjJzMTUuNS0zMS41IDQuMi00NS4xbC03My43LTg4LjljLTE4LjItMjItNDUuMy0zNC43LTczLjktMzQuN0gxNDUuMWMtMzMuNyAwLTY0LjkgMTcuNy04Mi4zIDQ2LjZsLTU4LjMgOTdjLTkuMSAxNS4xLTQuMiAzNC44IDEwLjkgNDMuOXMzNC44IDQuMiA0My45LTEwLjl6TTQ4MCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNNDY0IDM0NHY1OC43bC00MS40LTQxLjRjLTcuMy03LjMtMTcuNi0xMC42LTI3LjgtOXMtMTguOSA4LjEtMjMuNSAxNy4zbC00OCA5NmMtNy45IDE1LjgtMS41IDM1IDE0LjMgNDIuOXMzNSAxLjUgNDIuOS0xNC4zTDQwOC44IDQzOGw1NC43IDU0LjdjMTIuNCAxMi40IDI5LjEgMTkuMyA0Ni42IDE5LjNjMzYuNCAwIDY1LjktMjkuNSA2NS45LTY1LjlWMzQ0YzAtMzAuOS0yNS4xLTU2LTU2LTU2cy01NiAyNS4xLTU2IDU2ek0yODggNDhjMCA4LjggNy4yIDE2IDE2IDE2aDU2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMwNGMtOC44IDAtMTYgNy4yLTE2IDE2em0tLjggNDkuN2MtNy45LTQtMTcuNS0uNy0yMS41IDcuMnMtLjcgMTcuNSA3LjIgMjEuNWw0OCAyNGM3LjkgNCAxNy41IC43IDIxLjUtNy4ycy43LTE3LjUtNy4yLTIxLjVsLTQ4LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25IaWtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTUxLjMgMTgyLjdMMjI0LjIgMzA3bDQ5LjcgNDkuN2M5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzk3LjNsLTczLjktNzMuOWMtMTUuOC0xNS44LTIyLjItMzguNi0xNi45LTYwLjNsMjAuNC04NGM4LjMtMzQuMSA0Mi43LTU0LjkgNzYuNy00Ni40YzE5IDQuOCAzNS42IDE2LjQgNDYuNCAzMi43TDMwNS4xIDIwOEgzMzZWMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2NTUuOGMwIC4xIDAgLjIgMCAuMnMwIC4yIDAgLjJWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI3MkgyOTYuNmMtMTYgMC0zMS04LTM5LjktMjEuNGwtMTMuMy0yMHpNODEuMSA0NzEuOUwxMTcuMyAzMzRjMyA0LjIgNi40IDguMiAxMC4xIDExLjlsNDEuOSA0MS45TDE0Mi45IDQ4OC4xYy00LjUgMTcuMS0yMiAyNy4zLTM5LjEgMjIuOHMtMjcuMy0yMi0yMi44LTM5LjF6bTU1LjUtMzQ2TDEwMS40IDI2Ni41Yy0zIDEyLjEtMTQuOSAxOS45LTI3LjIgMTcuOWwtNDcuOS04Yy0xNC0yLjMtMjIuOS0xNi4zLTE5LjItMzBMMzEuOSAxNTVjOS41LTM0LjggNDEuMS01OSA3Ny4yLTU5aDQuMmMxNS42IDAgMjcuMSAxNC43IDIzLjMgMjkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uTWlsaXRhcnlQb2ludGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuOSAxNC4xQzIzNCAxNS4yIDIyNCAyNiAyMjQgMzljMCAxMy44IDExLjIgMjUgMjUgMjVINDAwYzguOCAwIDE2LTcuMiAxNi0xNlYxNy40QzQxNiA4IDQwOCAuNyAzOTguNyAxLjRMMjQ2LjkgMTQuMXpNMjQwIDExMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDI0MS42Yy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZ6TTcyIDIyNGMtMjIuMSAwLTQwIDE3LjktNDAgNDBzMTcuOSA0MCA0MCA0MEgyMjR2ODkuNEwzODYuOCAyMzAuNWMtMTMuMy00LjMtMjcuMy02LjUtNDEuNi02LjVIMjQwIDcyem0zNDUuNyAyMC45TDI0Ni42IDQxNkg0MTZWMzY5LjdsNTMuNiA5MC42YzExLjIgMTkgMzUuOCAyNS4zIDU0LjggMTQuMXMyNS4zLTM1LjggMTQuMS01NC44TDQ2Mi4zIDI5MC44Yy0xMS4yLTE4LjktMjYuNi0zNC41LTQ0LjYtNDUuOXpNMjI0IDQ0OHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDQ4SDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uTWlsaXRhcnlSaWZsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMzljMC0xMyAxMC0yMy44IDIyLjktMjQuOUwzMzQuNyAxLjRDMzQ0IC43IDM1MiA4IDM1MiAxNy40VjQ4YzAgOC44LTcuMiAxNi0xNiAxNkgxODVjLTEzLjggMC0yNS0xMS4yLTI1LTI1em0xNy42IDU3SDMzNC40YzEgNS4yIDEuNiAxMC41IDEuNiAxNmMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTUuNSAuNi0xMC44IDEuNi0xNnptMjI4IDM2NC4zTDM1MiAzNjkuN1Y0ODBjMCAxLjMtLjEgMi41LS4yIDMuOEwxNzcuNSAyMzQuOWMxNi42LTcuMSAzNC42LTEwLjkgNTMuMy0xMC45aDUwLjRjMTUuOSAwIDMxLjMgMi44IDQ1LjggNy45TDQyMS45IDY3LjdjLTcuNy00LjQtMTAuMy0xNC4yLTUuOS0yMS45czE0LjItMTAuMyAyMS45LTUuOWwxMy45IDggMTMuOSA4YzcuNyA0LjQgMTAuMyAxNC4yIDUuOSAyMS45TDQxNiAxNzMuOWwxLjYgLjljMTUuMyA4LjggMjAuNiAyOC40IDExLjcgNDMuN0wzOTIuNiAyODJjMiAyLjggMy45IDUuOCA1LjcgOC44bDc2LjEgMTI4LjhjMTEuMiAxOSA0LjkgNDMuNS0xNC4xIDU0LjhzLTQzLjUgNC45LTU0LjgtMTQuMXpNMzIwIDUxMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM2OS43bC01My42IDkwLjZjLTExLjIgMTktMzUuOCAyNS4zLTU0LjggMTQuMXMtMjUuMy0zNS44LTE0LjEtNTQuOGw3Ni4xLTEyOC44YzkuNC0xNS44IDIxLjctMjkuMyAzNi00MEwzMzEuMSA1MTBjLTMuNSAxLjMtNy4yIDItMTEuMSAyek0yOTYgMzIwYTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uTWlsaXRhcnlUb1BlcnNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MSAxMi41Yy04LjYgMS0xNSA4LjItMTUgMTYuOGMwIDkuMyA3LjUgMTYuOCAxNi43IDE2LjlIMTg0LjFjOC44LS4xIDE1LjktNy4yIDE1LjktMTZWMTZjMC05LjUtOC4zLTE3LTE3LjgtMTUuOUw3MSAxMi41ek0xODkuNSA3OC4xSDY2LjVDNjQuOSA4My44IDY0IDg5LjggNjQgOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NGMwLTYuMi0uOS0xMi4yLTIuNS0xNy45ek0zMiAyNTZ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJIMTkyYzEuOCAwIDMuNS0uMSA1LjItLjRMNTMgMjA4LjZDNDAuMSAyMjAuMyAzMiAyMzcuMiAzMiAyNTZ6bTE5MC4yIDQyLjVjMS4xLTMuMyAxLjgtNi44IDEuOC0xMC41VjI1NmMwLTM1LjMtMjguNy02NC02NC02NEg5NmMtMy43IDAtNy40IC4zLTEwLjkgLjlMMjIyLjIgMjk4LjV6TTM4NCAxNjBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJINDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTM1LjMtMjguNy02NC02NC02NEgzNTJ6TTIxNS44IDQ1MC4xYzUuMi00LjYgOC4yLTExLjEgOC4yLTE4LjFzLTMtMTMuNS04LjItMTguMWwtNjQtNTZjLTcuMS02LjItMTcuMS03LjctMjUuNy0zLjhTMTEyIDM2Ni42IDExMiAzNzZ2MzJsLTg4IDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRsODggMHYzMmMwIDkuNCA1LjUgMTggMTQuMSAyMS45czE4LjYgMi40IDI1LjctMy44bDY0LTU2ek0yODggNDMxLjljMCA2LjkgMi45IDEzLjUgOC4xIDE4LjFsNjQgNTYuNGM3LjEgNi4yIDE3LjEgNy44IDI1LjcgMy45czE0LjEtMTIuNCAxNC4xLTIxLjlsMC0zMi40IDg4IDBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRsLTg4IDAgMC0zMmMwLTkuNC01LjUtMTgtMTQuMS0yMS45cy0xOC42LTIuNC0yNS43IDMuOGwtNjQgNTZjLTUuMiA0LjUtOC4yIDExLjEtOC4yIDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25QcmF5aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiA2NEE2NCA2NCAwIDEgMCAyMjQgNjRhNjQgNjQgMCAxIDAgMTI4IDB6TTIzMi43IDI2NGwyMi45IDMxLjVjNi41IDguOSAxNi4zIDE0LjcgMjcuMiAxNi4xczIxLjktMS43IDMwLjQtOC43bDg4LTcyYzE3LjEtMTQgMTkuNi0zOS4yIDUuNi01Ni4zcy0zOS4yLTE5LjYtNTYuMy01LjZsLTU1LjIgNDUuMi0yNi4yLTM2QzI1My42IDE1Ni43IDIyOC42IDE0NCAyMDIgMTQ0Yy0zMC45IDAtNTkuMiAxNy4xLTczLjYgNDQuNEw3OS44IDI4MC45Yy0yMC4yIDM4LjUtOS40IDg1LjkgMjUuNiAxMTEuOEwxNTguNiA0MzJINzJjLTIyLjEgMC00MCAxNy45LTQwIDQwczE3LjkgNDAgNDAgNDBIMjgwYzE3LjMgMCAzMi42LTExLjEgMzgtMjcuNXMtLjMtMzQuNC0xNC4yLTQ0LjdMMTg3LjcgMzU0bDQ1LTkwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25QcmVnbmFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6TTEyMCAzODNjLTEzLjgtMy42LTI0LTE2LjEtMjQtMzFWMjk2LjlsLTQuNiA3LjZjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE1LTI0LjkgNDAuMy00MS41IDY4LjctNDUuNmM0LjEtLjYgOC4yLTEgMTIuNS0xaDEuMSAxMi41SDE5MmMxLjQgMCAyLjggLjEgNC4xIC4zYzM1LjcgMi45IDY1LjQgMjkuMyA3Mi4xIDY1bDYuMSAzMi41YzQ0LjMgOC42IDc3LjcgNDcuNSA3Ny43IDk0LjN2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzA0IDI2NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODRoLTgtOHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvblJheXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTQwIDMwNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2LjlsLTI4LjYgNDcuNWMtOS4xIDE1LjEtMjguOCAyMC00My45IDEwLjlzLTIwLTI4LjgtMTAuOS00My45bDU4LjMtOTdjMTcuNC0yOC45IDQ4LjYtNDYuNiA4Mi4zLTQ2LjZoMjkuN2MzMy43IDAgNjQuOSAxNy43IDgyLjMgNDYuNmw1OC4zIDk3YzkuMSAxNS4xIDQuMiAzNC44LTEwLjkgNDMuOXMtMzQuOCA0LjItNDMuOS0xMC45TDMyOCAyNTYuOVY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUySDI0OHpNNyA3QzE2LjQtMi4zIDMxLjYtMi4zIDQxIDdsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw3IDQxQy0yLjMgMzEuNi0yLjMgMTYuNCA3IDd6TTQ3MSA3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtODAgODBjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMNDcxIDd6TTcgNTA1Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw4MC04MGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMNDEgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHptNDY0IDBsLTgwLTgwYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsODAgODBjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uUmlmbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY1LjIgMTkyYzI1LjQgMCA0OS44IDcuMSA3MC44IDE5LjlWNTEySDE0NFYzMzcuN0w5MC40IDQyOC4zYy0xMS4yIDE5LTM1LjggMjUuMy01NC44IDE0LjFzLTI1LjMtMzUuOC0xNC4xLTU0LjhMOTcuNyAyNTguOGMyNC41LTQxLjQgNjktNjYuOCAxMTcuMS02Ni44aDUwLjR6TTE2MCA4MGE4MCA4MCAwIDEgMSAxNjAgMEE4MCA4MCAwIDEgMSAxNjAgODB6TTQ0OCAwYzguOCAwIDE2IDcuMiAxNiAxNlYxMzIuM2M5LjYgNS41IDE2IDE1LjkgMTYgMjcuN1YyNjkuM2wxNi01LjNWMjA4YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2ODQuNWMwIDYuOS00LjQgMTMtMTAuOSAxNS4yTDQ4MCAzMjUuM1YzNTJoNDhjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkg0ODRsMjMgOTIuMWMyLjUgMTAuMS01LjEgMTkuOS0xNS41IDE5LjlINDMyYy04LjggMC0xNi03LjItMTYtMTZWNDAwSDQwMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyVjE2MGMwLTExLjggNi40LTIyLjIgMTYtMjcuN1YzMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uUnVubmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTI1LjcgMTc1LjVjOS45LTkuOSAyMy40LTE1LjUgMzcuNS0xNS41YzEuOSAwIDMuOCAuMSA1LjYgLjNMMTM3LjYgMjU0Yy05LjMgMjggMS43IDU4LjggMjYuOCA3NC41bDg2LjIgNTMuOS0yNS40IDg4LjhjLTQuOSAxNyA1IDM0LjcgMjIgMzkuNnMzNC43LTUgMzkuNi0yMmwyOC43LTEwMC40YzUuOS0yMC42LTIuNi00Mi42LTIwLjctNTMuOUwyMzggMjk5bDMwLjktODIuNCA1LjEgMTIuM0MyODkgMjY0LjcgMzIzLjkgMjg4IDM2Mi43IDI4OEgzODRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzYyLjdjLTEyLjkgMC0yNC42LTcuOC0yOS41LTE5LjdsLTYuMy0xNWMtMTQuNi0zNS4xLTQ0LjEtNjEuOS04MC41LTczLjFsLTQ4LjctMTVjLTExLjEtMy40LTIyLjctNS4yLTM0LjQtNS4yYy0zMSAwLTYwLjggMTIuMy04Mi43IDM0LjNMNTcuNCAxNTMuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGwyMy4xLTIzLjF6TTkxLjIgMzUySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDY5LjZjMTkgMCAzNi4yLTExLjIgNDMuOS0yOC41TDE1NyAzNjEuNmwtOS41LTZjLTE3LjUtMTAuOS0zMC41LTI2LjgtMzcuOS00NC45TDkxLjIgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25TaGVsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MS45IDQuMmMtOS44LTUuNi0yMS45LTUuNi0zMS44IDBsLTIyNCAxMjhDNi4yIDEzNy45IDAgMTQ4LjUgMCAxNjBWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMTc4LjZMMjU2IDY4LjkgNDQ4IDE3OC42VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2MGMwLTExLjUtNi4yLTIyLjEtMTYuMS0yNy44bC0yMjQtMTI4ek0yNTYgMjA4YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAxIDAgMCA4MHptLTggMjgwVjQwMGgxNnY4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjMxMy41bDI2LjkgNDkuOWM2LjMgMTEuNyAyMC44IDE2IDMyLjUgOS44czE2LTIwLjggOS44LTMyLjVsLTM3LjktNzAuM2MtMTUuMy0yOC41LTQ1LjEtNDYuMy03Ny41LTQ2LjNIMjQ2LjJjLTMyLjQgMC02Mi4xIDE3LjgtNzcuNSA0Ni4zbC0zNy45IDcwLjNjLTYuMyAxMS43LTEuOSAyNi4yIDkuOCAzMi41czI2LjIgMS45IDMyLjUtOS44TDIwMCAzMTMuNVY0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uU2thdGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTI4IDEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzMTkuNGM0My42IDAgNjQuNiA1My40IDMyLjggODMuMWwtNzQuNCA2OS40IDYwLjIgNjAuMmM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOVY0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzQ5LjNsLTc3LjktNzcuOGMtMjYuNi0yNi42LTI0LjYtNzAuMyA0LjMtOTQuNGwyMC40LTE3SDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTgxLjQgMzUzLjRsODYuOS04Ni45YzQuNiAxMCAxMSAxOS4zIDE5LjMgMjcuNWwyMS44IDIxLjgtODIuNyA4Mi43Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM3ptMzIyLjUgOTUuMWM4LjYgMi4xIDEzLjggMTAuOCAxMS42IDE5LjRsLS40IDEuN2MtNi4yIDI0LjktMjguNiA0Mi40LTU0LjMgNDIuNEgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoODguOGMxMSAwIDIwLjYtNy41IDIzLjMtMTguMmwuNC0xLjdjMi4xLTguNiAxMC44LTEzLjggMTkuNC0xMS42ek0xMzUuMiA0NzguM2wtNi4yIDMuMWMtMjEuNiAxMC44LTQ3LjYgNi42LTY0LjYtMTAuNUw0LjcgNDExLjNjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMGw1OS42IDU5LjZjNy4zIDcuMyAxOC41IDkuMSAyNy43IDQuNWw2LjItMy4xYzcuOS00IDE3LjUtLjcgMjEuNSA3LjJzLjcgMTcuNS03LjIgMjEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uU2tpaW5nTm9yZGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTIyNy4yIDE2MGMxLjkgMCAzLjggLjEgNS42IC4zTDIwMS42IDI1NGMtOS4zIDI4IDEuNyA1OC44IDI2LjggNzQuNWw4Ni4yIDUzLjlMMjkxLjMgNDY0SDIwMi44bDQxLjEtODguMS0zMi40LTIwLjNjLTcuOC00LjktMTQuNy0xMC43LTIwLjYtMTcuM0wxMzIuMiA0NjRIOTkuN2w1NC4yLTI1Ny42YzQuNi0xLjUgOS00LjEgMTIuNy03LjhsMjMuMS0yMy4xYzkuOS05LjkgMjMuNC0xNS41IDM3LjUtMTUuNXpNMTIxLjQgMTk4LjZjLjQgLjQgLjggLjggMS4zIDEuMkw2NyA0NjRIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMTU5LjNjLjQgMCAuOSAwIDEuMyAwSDMxOS4zYy41IDAgMSAwIDEuNCAwSDUwNGMzOS44IDAgNzItMzIuMiA3Mi03MnYtOGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNHY4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDQzNC42bDI3LjYtMTc5LjNjMTAuNS01LjIgMTcuOC0xNi4xIDE3LjgtMjguN2MwLTE3LjctMTQuMy0zMi0zMi0zMkg0MjYuN2MtMTIuOSAwLTI0LjYtNy44LTI5LjUtMTkuN2wtNi4zLTE1Yy0xNC42LTM1LjEtNDQuMS02MS45LTgwLjUtNzMuMWwtNDguNy0xNWMtMTEuMS0zLjQtMjIuNy01LjItMzQuNC01LjJjLTMxIDAtNjAuOCAxMi4zLTgyLjcgMzQuM2wtMjMuMSAyMy4xYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3ptMzA4IDg5LjRMNDAyLjMgNDY0SDM1Ny44bDIxLjYtNzUuNmM1LjktMjAuNi0yLjYtNDIuNi0yMC43LTUzLjlMMzAyIDI5OWwzMC45LTgyLjQgNS4xIDEyLjNDMzUzIDI2NC43IDM4Ny45IDI4OCA0MjYuNyAyODhoMi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25Ta2lpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgwLjcgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMi43IDI2OC45YzYuMS0xMS44IDIwLjYtMTYuMyAzMi40LTEwLjJMMjMyLjcgMzYxLjNsNDYuMi02OS4yLTc1LjEtNzUuMWMtMTQuNi0xNC42LTIwLjQtMzMuOS0xOC40LTUyLjFsMTA4LjggNTIgMzkuMyAzOS4zYzE2LjIgMTYuMiAxOC43IDQxLjUgNiA2MC42TDI4OS44IDM5MWwxMjguNyA2Ni44YzEzLjYgNy4xIDI5LjggNy4yIDQzLjYgLjNsMTUuMi03LjZjMTEuOS01LjkgMjYuMy0xLjEgMzIuMiAxMC43czEuMSAyNi4zLTEwLjcgMzIuMmwtMTUuMiA3LjZjLTI3LjUgMTMuNy01OS45IDEzLjUtODcuMi0uN0wxMi45IDMwMS4zQzEuMiAyOTUuMi0zLjQgMjgwLjcgMi43IDI2OC45ek0xMTguOSA2NS42TDEzNyA3NC4ybDguNy0xNy40YzQtNy45IDEzLjYtMTEuMSAyMS41LTcuMnMxMS4xIDEzLjYgNy4yIDIxLjVsLTguNSAxNi45IDU0LjcgMjYuMmMxLjUtLjcgMy4xLTEuNCA0LjctMi4xbDgzLjQtMzMuNGMzNC4yLTEzLjcgNzIuOCA0LjIgODQuNSAzOS4ybDE3LjEgNTEuMiA1Mi4xIDI2LjFjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOXMtMjcuMSAyMi4yLTQyLjkgMTQuM2wtNTguMS0yOWMtMTEuNC01LjctMjAtMTUuNy0yNC4xLTI3LjhsLTUuOC0xNy4zLTI3LjMgMTIuMS02LjggMy02LjctMy4yTDE1MS41IDExNi43bC05LjIgMTguNGMtNCA3LjktMTMuNiAxMS4xLTIxLjUgNy4ycy0xMS4xLTEzLjYtNy4yLTIxLjVsOS0xOC0xNy42LTguNGMtOC0zLjgtMTEuMy0xMy40LTcuNS0yMS4zczEzLjQtMTEuMyAyMS4zLTcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uU25vd2JvYXJkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOS43IDMuNGMxNS44LTcuOSAzNS0xLjUgNDIuOSAxNC4zbDI1IDUwIDQyLjQgOC41YzE5LjUgMy45IDM3LjggMTIuMyA1My41IDI0LjVsMTI2LjEgOTguMWMxNCAxMC45IDE2LjUgMzEgNS42IDQ0LjlzLTMxIDE2LjUtNDQuOSA1LjZsLTcyLjEtNTYuMS03MS41IDMxLjggMzMuMSAyNy42YzIzLjIgMTkuMyAzMy41IDUwIDI2LjcgNzkuNGwtMTcuNCA3NS4yYy0yLjIgOS40LTguMiAxNi44LTE2LjEgMjFsODYuNSAzMy4xYzQuNiAxLjggOS40IDIuNiAxNC4zIDIuNkg0NzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINDQzLjhjLTEwLjggMC0yMS40LTItMzEuNS01LjhMNjAuMSAzNzEuM2MtMTEuNS00LjQtMjItMTEuMi0zMC44LTIwTDcgMzI5Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMjIuNCAyMi40YzQgNCA4LjcgNy4xIDE0IDkuMWwyMi40IDguNmMtLjgtMS42LTEuNS0zLjItMi4xLTQuOWMtNS42LTE2LjggMy41LTM0LjkgMjAuMi00MC41TDE5MiAyNjQuOWwwLTUzLjJjMC0yNC4yIDEzLjctNDYuNCAzNS40LTU3LjJsNDUuMi0yMi42LTcuNS0xLjVjLTE5LjQtMy45LTM1LjktMTYuNS00NC43LTM0LjFsLTI1LTUwYy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45ek0xMzkgMzUwLjFsMTU5IDYwLjljLTIuMS01LjYtMi42LTExLjktMS4xLTE4LjJsMTcuNC03NS4yYzEuNC01LjktLjctMTItNS4zLTE1LjlsLTUyLjgtNDQgMCAxOC44YzAgMjAuNy0xMy4yIDM5LTMyLjggNDUuNUwxMzkgMzUwLjF6TTQzMiAwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uU3dpbW1pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA5LjUgMTc4LjRMNDQ3LjkgMjk3LjFjLTEuNiAuOS0zLjIgMi00LjggM2MtMTggMTIuNC00MC4xIDIwLjMtNTkuMiAyMC4zYy0xOS42IDAtNDAuOC03LjctNTkuMi0yMC4zYy0yMi4xLTE1LjUtNTEuNi0xNS41LTczLjcgMGMtMTcuMSAxMS44LTM4IDIwLjMtNTkuMiAyMC4zYy0xMC4xIDAtMjEuMS0yLjItMzEuOS02LjJDMTYzLjEgMTkzLjIgMjYyLjIgOTYgMzg0IDk2aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NGMtMjYuOSAwLTUyLjMgNi42LTc0LjUgMTguNHpNMTYwIDE2MEE2NCA2NCAwIDEgMSAzMiAxNjBhNjQgNjQgMCAxIDEgMTI4IDB6TTMwNi41IDMyNS45QzMyOSAzNDEuNCAzNTYuNSAzNTIgMzg0IDM1MmMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSA0MDUuNyA0MTcgNDE2IDM4NCA0MTZjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjQgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyAzNDEuMiAxNjUuMSAzNTIgMTkyIDM1MmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uVGhyb3VnaFdpbmRvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NGwyMjQgMCAwIDkuOGMwIDM5LTIzLjcgNzQtNTkuOSA4OC40QzE2Ny42IDE4Ni41IDEyOCAyNDUgMTI4IDMxMC4ybDAgNzMuOHMwIDAgMCAwSDY0VjY0em0yODggMGwyMjQgMFYzODRINTA4LjNsLTMuNy00LjUtNzUuMi05MC4yYy05LjEtMTAuOS0yMi42LTE3LjMtMzYuOS0xNy4zbC03MS4xIDAtNDEtNjMuMWMtLjMtLjUtLjYtMS0xLTEuNGM0NC43LTI5IDcyLjUtNzkgNzIuNS0xMzMuNmwwLTkuOHptNzMgMzIwSDM3OS4ybDQyLjcgNjRINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OFY0MDBjMCAyNi41IDIxLjUgNDggNDggNDhIMzA4LjJsMzMuMiA0OS44YzkuOCAxNC43IDI5LjcgMTguNyA0NC40IDguOXMxOC43LTI5LjcgOC45LTQ0LjRMMzEwLjUgMzM2bDc0LjYgMCA0MCA0OHptLTE1OS41IDBIMTkyczAgMCAwIDBsMC03My44YzAtMTAuMiAxLjYtMjAuMSA0LjctMjkuNUwyNjUuNSAzODR6TTE5MiAxMjhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uV2Fsa2luZ0Fycm93TG9vcExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDk2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpNMTIzLjcgMjAwLjVjMS0uNCAxLjktLjggMi45LTEuMmwtMTYuOSA2My41Yy01LjYgMjEuMS0uMSA0My42IDE0LjcgNTkuN2w3MC43IDc3LjEgMjIgODguMWM0LjMgMTcuMSAyMS43IDI3LjYgMzguOCAyMy4zczI3LjYtMjEuNyAyMy4zLTM4LjhsLTIzLTkyLjFjLTEuOS03LjgtNS44LTE0LjktMTEuMi0yMC44bC00OS41LTU0IDE5LjMtNjUuNSA5LjYgMjNjNC40IDEwLjYgMTIuNSAxOS4zIDIyLjggMjQuNWwyNi43IDEzLjNjMTUuOCA3LjkgMzUgMS41IDQyLjktMTQuM3MxLjUtMzUtMTQuMy00Mi45TDI4MSAyMzIuN2wtMTUuMy0zNi44QzI0OC41IDE1NC44IDIwOC4zIDEyOCAxNjMuNyAxMjhjLTIyLjggMC00NS4zIDQuOC02Ni4xIDE0bC04IDMuNWMtMzIuOSAxNC42LTU4LjEgNDIuNC02OS40IDc2LjVsLTIuNiA3LjhjLTUuNiAxNi44IDMuNSAzNC45IDIwLjIgNDAuNXMzNC45LTMuNSA0MC41LTIwLjJsMi42LTcuOGM1LjctMTcuMSAxOC4zLTMwLjkgMzQuNy0zOC4ybDgtMy41em0tMzAgMTM1LjFMNjguNyAzOTggOS40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDExNi4zIDQ0MWM0LjYtNC42IDguMi0xMC4xIDEwLjYtMTYuMWwxNC41LTM2LjItNDAuNy00NC40Yy0yLjUtMi43LTQuOC01LjYtNy04LjZ6bTM0Ny43IDExOWMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDQ2MS4zIDM4NEg0ODBjODguNCAwIDE2MC03MS42IDE2MC0xNjBzLTcxLjYtMTYwLTE2MC0xNjBMMzUyIDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDEyOCAwYzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2SDQ2MS4zbDI1LjQtMjUuNGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtODAgODBjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJzb25XYWxraW5nQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjMuNyAyMDAuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlMMjgxIDIzMi43bC0xNS4zLTM2LjhDMjQ4LjUgMTU0LjggMjA4LjMgMTI4IDE2My43IDEyOGMtMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0zMi45IDE0LjYtNTguMSA0Mi40LTY5LjQgNzYuNWwtMi42IDcuOGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwyLjYtNy44YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjV6bS0zMCAxMzUuMUw2OC43IDM5OCA5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTE2LjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnpNNTUwLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDUzMC43IDIyNEgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTMwLjdsLTI1LjQgMjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4MC04MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbldhbGtpbmdEYXNoZWRMaW5lQXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0xMjMuNyAyMDAuNWMxLS40IDEuOS0uOCAyLjktMS4ybC0xNi45IDYzLjVjLTUuNiAyMS4xLS4xIDQzLjYgMTQuNyA1OS43bDcwLjcgNzcuMSAyMiA4OC4xYzQuMyAxNy4xIDIxLjcgMjcuNiAzOC44IDIzLjNzMjcuNi0yMS43IDIzLjMtMzguOGwtMjMtOTIuMWMtMS45LTcuOC01LjgtMTQuOS0xMS4yLTIwLjhsLTQ5LjUtNTQgMTkuMy02NS41IDkuNiAyM2M0LjQgMTAuNiAxMi41IDE5LjMgMjIuOCAyNC41bDI2LjcgMTMuM2MxNS44IDcuOSAzNSAxLjUgNDIuOS0xNC4zczEuNS0zNS0xNC4zLTQyLjlMMjgxIDIzMi43bC0xNS4zLTM2LjhDMjQ4LjUgMTU0LjggMjA4LjMgMTI4IDE2My43IDEyOGMtMjIuOCAwLTQ1LjMgNC44LTY2LjEgMTRsLTggMy41Yy0zMi45IDE0LjYtNTguMSA0Mi40LTY5LjQgNzYuNWwtMi42IDcuOGMtNS42IDE2LjggMy41IDM0LjkgMjAuMiA0MC41czM0LjktMy41IDQwLjUtMjAuMmwyLjYtNy44YzUuNy0xNy4xIDE4LjMtMzAuOSAzNC43LTM4LjJsOC0zLjV6bS0zMCAxMzUuMUw2OC43IDM5OCA5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBMMTE2LjMgNDQxYzQuNi00LjYgOC4yLTEwLjEgMTAuNi0xNi4xbDE0LjUtMzYuMi00MC43LTQ0LjRjLTIuNS0yLjctNC44LTUuNi03LTguNnpNNTUwLjYgMTUzLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDUzMC43IDIyNEgzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINTMwLjdsLTI1LjQgMjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw4MC04MGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtODAtODB6TTM5MiAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNFY3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxNTJjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxNTJ6TTM5MiAzMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0NDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbldhbGtpbmdMdWdnYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTM0Ny43IDIwMC41YzEtLjQgMS45LS44IDIuOS0xLjJsLTE2LjkgNjMuNWMtNS42IDIxLjEtLjEgNDMuNiAxNC43IDU5LjdsNzAuNyA3Ny4xIDIyIDg4LjFjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuM3MyNy42LTIxLjcgMjMuMy0zOC44bC0yMy05Mi4xYy0xLjktNy44LTUuOC0xNC45LTExLjItMjAuOGwtNDkuNS01NCAxOS4zLTY1LjUgOS42IDIzYzQuNCAxMC42IDEyLjUgMTkuMyAyMi44IDI0LjVsMjYuNyAxMy4zYzE1LjggNy45IDM1IDEuNSA0Mi45LTE0LjNzMS41LTM1LTE0LjMtNDIuOUw1MDUgMjMyLjdsLTE1LjMtMzYuOEM0NzIuNSAxNTQuOCA0MzIuMyAxMjggMzg3LjcgMTI4Yy0yMi44IDAtNDUuMyA0LjgtNjYuMSAxNGwtOCAzLjVjLTMyLjkgMTQuNi01OC4xIDQyLjQtNjkuNCA3Ni41bC0yLjYgNy44Yy01LjYgMTYuOCAzLjUgMzQuOSAyMC4yIDQwLjVzMzQuOS0zLjUgNDAuNS0yMC4ybDIuNi03LjhjNS43LTE3LjEgMTguMy0zMC45IDM0LjctMzguMmw4LTMuNXptLTMwIDEzNS4xbC0yNSA2Mi40LTU5LjQgNTkuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwzNDAuMyA0NDFjNC42LTQuNiA4LjItMTAuMSAxMC42LTE2LjFsMTQuNS0zNi4yLTQwLjctNDQuNGMtMi41LTIuNy00LjgtNS42LTctOC42ek0yNTYgMjc0LjFjLTcuNy00LjQtMTcuNC0xLjgtMjEuOSA1LjlsLTMyIDU1LjRMMTQ3LjcgMzA0Yy0xNS4zLTguOC0zNC45LTMuNi00My43IDExLjdMNDAgNDI2LjZjLTguOCAxNS4zLTMuNiAzNC45IDExLjcgNDMuN2w1NS40IDMyYzE1LjMgOC44IDM0LjkgMy42IDQzLjctMTEuN2w2NC0xMTAuOWMxLjUtMi42IDIuNi01LjIgMy4zLThMMjYxLjkgMjk2YzQuNC03LjcgMS44LTE3LjQtNS45LTIxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlcnNvbldhbGtpbmdXaXRoQ2FuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOC40IDMyYy0zNi40IDAtNjkuNiAyMC41LTg1LjkgNTMuMUwzNS40IDI3My43Yy03LjkgMTUuOC0xLjUgMzUgMTQuMyA0Mi45czM1IDEuNSA0Mi45LTE0LjNMMTI4IDIzMS42djQzLjJjMCAxNyA2LjcgMzMuMyAxOC43IDQ1LjNMMjI0IDM5Ny4zVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM5MC42YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMMjI0IDMwNi43VjIxMy4zbDcwLjQgOTMuOWMxMC42IDE0LjEgMzAuNyAxNyA0NC44IDYuNHMxNy0zMC43IDYuNC00NC44TDI2OC44IDE2Ni40QzI1MC43IDE0Mi4yIDIyMi4yIDEyOCAxOTIgMTI4SDE2Ny42ek0xMjguMyAzNDYuOEw5NyA0NzIuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wyMi04OC4yLTUyLjgtNTIuOHpNNDUwLjggNTA1LjFjNSA3LjMgMTUgOS4xIDIyLjMgNHM5LjEtMTUgNC0yMi4zTDM1OC45IDMxNi4xYy0yLjggMy44LTYuMSA3LjMtMTAuMSAxMC4zYy01IDMuOC0xMC41IDYuNC0xNi4yIDcuOUw0NTAuOCA1MDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uV2Fsa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNDhhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpNMTI2LjUgMTk5LjNjLTEgLjQtMS45IC44LTIuOSAxLjJsLTggMy41Yy0xNi40IDcuMy0yOSAyMS4yLTM0LjcgMzguMmwtMi42IDcuOGMtNS42IDE2LjgtMjMuNyAyNS44LTQwLjUgMjAuMnMtMjUuOC0yMy43LTIwLjItNDAuNWwyLjYtNy44YzExLjQtMzQuMSAzNi42LTYxLjkgNjkuNC03Ni41bDgtMy41YzIwLjgtOS4yIDQzLjMtMTQgNjYuMS0xNGM0NC42IDAgODQuOCAyNi44IDEwMS45IDY3LjlMMjgxIDIzMi43bDIxLjQgMTAuN2MxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDI0NyAyODcuM2MtMTAuMy01LjItMTguNC0xMy44LTIyLjgtMjQuNWwtOS42LTIzLTE5LjMgNjUuNSA0OS41IDU0YzUuNCA1LjkgOS4yIDEzIDExLjIgMjAuOGwyMyA5Mi4xYzQuMyAxNy4xLTYuMSAzNC41LTIzLjMgMzguOHMtMzQuNS02LjEtMzguOC0yMy4zbC0yMi04OC4xLTcwLjctNzcuMWMtMTQuOC0xNi4xLTIwLjMtMzguNi0xNC43LTU5LjdsMTYuOS02My41ek02OC43IDM5OGwyNS02Mi40YzIuMSAzIDQuNSA1LjggNyA4LjZsNDAuNyA0NC40LTE0LjUgMzYuMmMtMi40IDYtNiAxMS41LTEwLjYgMTYuMUw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0w2OC43IDM5OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjI1Ni45TDU5LjQgMzA0LjVjLTkuMSAxNS4xLTI4LjggMjAtNDMuOSAxMC45cy0yMC0yOC44LTEwLjktNDMuOWw1OC4zLTk3YzE3LjQtMjguOSA0OC42LTQ2LjYgODIuMy00Ni42aDI5LjdjMzMuNyAwIDY0LjkgMTcuNyA4Mi4zIDQ2LjZsNTguMyA5N2M5LjEgMTUuMSA0LjIgMzQuOC0xMC45IDQzLjlzLTM0LjggNC4yLTQzLjktMTAuOUwyMzIgMjU2LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlc2V0YVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0djk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgOTZWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzUyaDk2Yzc3LjQgMCAxNDItNTUgMTU2LjgtMTI4SDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtMy4yQzMzNCA4NyAyNjkuNCAzMiAxOTIgMzJINjR6TTI4Mi41IDE2MEg5NlY5Nmg5NmM0MS44IDAgNzcuNCAyNi43IDkwLjUgNjR6TTk2IDIyNEgyODIuNWMtMTMuMiAzNy4zLTQ4LjcgNjQtOTAuNSA2NEg5NlYyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlc29TaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzQ2LjMgMzIgMzIgNDYuMyAzMiA2NHY2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwwIDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDAgNjR2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzODRoODBjNjguNCAwIDEyNy43LTM5IDE1Ni44LTk2SDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmgtLjdjLjUtNS4zIC43LTEwLjYgLjctMTZzLS4yLTEwLjctLjctMTZoLjdjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzMyLjhDMzAzLjcgNzEgMjQ0LjQgMzIgMTc2IDMySDY0em0xOTAuNCA5Nkg5NlY5Nmg4MGMzMC41IDAgNTguMiAxMi4yIDc4LjQgMzJ6TTk2IDE5MkgyODYuOWMuNyA1LjIgMS4xIDEwLjYgMS4xIDE2cy0uNCAxMC44LTEuMSAxNkg5NlYxOTJ6bTE1OC40IDk2Yy0yMC4yIDE5LjgtNDcuOSAzMi03OC40IDMySDk2VjI4OEgyNTQuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVGbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ny4xIDI0LjZjNy43LTE4LjYgMjgtMjguNSA0Ny40LTIzLjJsODggMjRDNDk5LjkgMzAuMiA1MTIgNDYgNTEyIDY0YzAgMjQ3LjQtMjAwLjYgNDQ4LTQ0OCA0NDhjLTE4IDAtMzMuOC0xMi4xLTM4LjYtMjkuNWwtMjQtODhjLTUuMy0xOS40IDQuNi0zOS43IDIzLjItNDcuNGw5Ni00MGMxNi4zLTYuOCAzNS4yLTIuMSA0Ni4zIDExLjZMMjA3LjMgMzY4YzcwLjQtMzMuMyAxMjcuNC05MC4zIDE2MC43LTE2MC43TDMxOC43IDE2N2MtMTMuNy0xMS4yLTE4LjQtMzAtMTEuNi00Ni4zbDQwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwMS4yIDUuMWMxMC40LTguMiAyNS41LTYuMyAzMy43IDQuMXM2LjMgMjUuNS00LjEgMzMuN2wtNTkyIDQ2NGMtMTAuNCA4LjItMjUuNSA2LjMtMzMuNy00LjFzLTYuMy0yNS41IDQuMS0zMy43bDE1NS42LTEyMkMxMDEuOCAyNzAgNjQgMTcxLjQgNjQgNjRjMC0xOCAxMi4xLTMzLjggMjkuNS0zOC42bDg4LTI0YzE5LjQtNS4zIDM5LjcgNC42IDQ3LjQgMjMuMmw0MCA5NmM2LjggMTYuMyAyLjEgMzUuMi0xMS42IDQ2LjNMMjA4IDIwNy4zYzEyIDI1LjUgMjcuMiA0OS4yIDQ1IDcwLjdMNjAxLjIgNS4xek0yMzQuMyA0MTUuNmw5MS4zLTcyYzEzLjcgOS4xIDI4IDE3LjMgNDMgMjQuM0w0MDkgMzE4LjdjMTEuMi0xMy43IDMwLTE4LjQgNDYuMy0xMS42bDk2IDQwYzE4LjYgNy43IDI4LjUgMjggMjMuMiA0Ny40bC0yNCA4OEM1NDUuOCA0OTkuOSA1MzAgNTEyIDUxMiA1MTJjLTEwNC45IDAtMjAxLjMtMzYtMjc3LjctOTYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVWb2x1bWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgwIDBDNDA4LjEgMCA1MTIgMTAzLjkgNTEyIDIzMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTggMTkyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptLTMyLTcyYzAtMTMuMyAxMC43LTI0IDI0LTI0Yzc1LjEgMCAxMzYgNjAuOSAxMzYgMTM2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNDguNi0zOS40LTg4LTg4LTg4Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHpNMTE3LjUgMS40YzE5LjQtNS4zIDM5LjcgNC42IDQ3LjQgMjMuMmw0MCA5NmM2LjggMTYuMyAyLjEgMzUuMi0xMS42IDQ2LjNMMTQ0IDIwNy4zYzMzLjMgNzAuNCA5MC4zIDEyNy40IDE2MC43IDE2MC43TDM0NSAzMTguN2MxMS4yLTEzLjcgMzAtMTguNCA0Ni4zLTExLjZsOTYgNDBjMTguNiA3LjcgMjguNSAyOCAyMy4yIDQ3LjRsLTI0IDg4QzQ4MS44IDQ5OS45IDQ2NiA1MTIgNDQ4IDUxMkMyMDAuNiA1MTIgMCAzMTEuNCAwIDY0QzAgNDYgMTIuMSAzMC4yIDI5LjUgMjUuNGw4OC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY0LjkgMjQuNmMtNy43LTE4LjYtMjgtMjguNS00Ny40LTIzLjJsLTg4IDI0QzEyLjEgMzAuMiAwIDQ2IDAgNjRDMCAzMTEuNCAyMDAuNiA1MTIgNDQ4IDUxMmMxOCAwIDMzLjgtMTIuMSAzOC42LTI5LjVsMjQtODhjNS4zLTE5LjQtNC42LTM5LjctMjMuMi00Ny40bC05Ni00MGMtMTYuMy02LjgtMzUuMi0yLjEtNDYuMyAxMS42TDMwNC43IDM2OEMyMzQuMyAzMzQuNyAxNzcuMyAyNzcuNyAxNDQgMjA3LjNMMTkzLjMgMTY3YzEzLjctMTEuMiAxOC40LTMwIDExLjYtNDYuM2wtNDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob3RvRmlsbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMEg1NzZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMjg4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDI1NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjRjMC0zNS4zIDI4LjctNjQgNjQtNjR6TTQ3NiAxMDYuN0M0NzEuNSAxMDAgNDY0IDk2IDQ1NiA5NnMtMTUuNSA0LTIwIDEwLjdsLTU2IDg0TDM2Mi43IDE2OWMtNC42LTUuNy0xMS41LTktMTguNy05cy0xNC4yIDMuMy0xOC43IDlsLTY0IDgwYy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40czEyLjQgMTMuNiAyMS42IDEzLjZoODAgNDhINTUyYzguOSAwIDE3LTQuOSAyMS4yLTEyLjdzMy43LTE3LjMtMS4yLTI0LjZsLTk2LTE0NHpNMzM2IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTY0IDEyOGg5NlYzODR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NEg1MTJ2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MmMwLTM1LjMgMjguNy02NCA2NC02NHptOCA2NGMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNkg4OGM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkg3MnptMCAxMDRjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZIODhjOC44IDAgMTYtNy4yIDE2LTE2VjMxMmMwLTguOC03LjItMTYtMTYtMTZINzJ6bTAgMTA0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2SDg4YzguOCAwIDE2LTcuMiAxNi0xNlY0MTZjMC04LjgtNy4yLTE2LTE2LTE2SDcyem0zMzYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDE2YzguOCAwIDE2LTcuMiAxNi0xNlY0MTZjMC04LjgtNy4yLTE2LTE2LTE2SDQyNGMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWdneUJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDk2bDAgLjdjLTUuMy0uNC0xMC42LS43LTE2LS43SDI1NmMtMTYuNSAwLTMyLjUgMi4xLTQ3LjggNmMtLjEtMi0uMi00LS4yLTZjMC01MyA0My05NiA5Ni05NnM5NiA0MyA5NiA5NnptLTE2IDMyYzMuNSAwIDcgLjEgMTAuNCAuM2M0LjIgLjMgOC40IC43IDEyLjYgMS4zQzQyNC42IDEwOS4xIDQ1MC44IDk2IDQ4MCA5NmgxMS41YzEwLjQgMCAxOCA5LjggMTUuNSAxOS45bC0xMy44IDU1LjJjMTUuOCAxNC44IDI4LjcgMzIuOCAzNy41IDUyLjlINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDUxMmMtOS4xIDEyLjEtMTkuOSAyMi45LTMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDQxNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWNDQ4SDI1NnYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNmMtMzQuOS0yNi4yLTU4LjctNjYuMy02My4yLTExMkg2OGMtMzcuNiAwLTY4LTMwLjQtNjgtNjhzMzAuNC02OCA2OC02OGg0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDY4Yy0xMSAwLTIwIDktMjAgMjBzOSAyMCAyMCAyMEg5OS4yYzEyLjEtNTkuOCA1Ny43LTEwNy41IDExNi4zLTEyMi44YzEyLjktMy40IDI2LjUtNS4yIDQwLjUtNS4ySDM4NHptNjQgMTM2YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiA5NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMjU2aDk2VjE0NGMwLTI2LjUtMjEuNS00OC00OC00OHpNMCAxNDRDMCA4Mi4xIDUwLjEgMzIgMTEyIDMyczExMiA1MC4xIDExMiAxMTJWMzY4YzAgNjEuOS01MC4xIDExMi0xMTIgMTEyUzAgNDI5LjkgMCAzNjhWMTQ0ek01NTQuOSAzOTkuNGMtNy4xIDEyLjMtMjMuNyAxMy4xLTMzLjggMy4xTDMzMy41IDIxNC45Yy0xMC0xMC05LjMtMjYuNyAzLjEtMzMuOEMzNjAgMTY3LjcgMzg3LjEgMTYwIDQxNiAxNjBjODguNCAwIDE2MCA3MS42IDE2MCAxNjBjMCAyOC45LTcuNyA1Ni0yMS4xIDc5LjR6bS01OS41IDU5LjVDNDcyIDQ3Mi4zIDQ0NC45IDQ4MCA0MTYgNDgwYy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MGMwLTI4LjkgNy43LTU2IDIxLjEtNzkuNGM3LjEtMTIuMyAyMy43LTEzLjEgMzMuOC0zLjFMNDk4LjUgNDI1LjFjMTAgMTAgOS4zIDI2LjctMy4xIDMzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpenphU2xpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY5LjcgLjljLTIyLjgtMS42LTQxLjkgMTQtNDcuNSAzNC43TDExMC40IDgwYy41IDAgMS4xIDAgMS42IDBjMTc2LjcgMCAzMjAgMTQzLjMgMzIwIDMyMGMwIC41IDAgMS4xIDAgMS42bDQ0LjQtMTEuOGMyMC44LTUuNSAzNi4zLTI0LjcgMzQuNy00Ny41QzQ5OC41IDE1OS41IDM1Mi41IDEzLjUgMTY5LjcgLjl6TTM5OS44IDQxMC4yYy4xLTMuNCAuMi02LjggLjItMTAuMmMwLTE1OS4xLTEyOC45LTI4OC0yODgtMjg4Yy0zLjQgMC02LjggLjEtMTAuMiAuMkwuNSA0OTEuOWMtMS41IDUuNSAuMSAxMS40IDQuMSAxNS40czkuOSA1LjYgMTUuNCA0LjFMMzk5LjggNDEwLjJ6TTE3NiAyMDhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em02NCAxMjhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNOTYgMzg0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYWNlT2ZXb3JzaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMDkuM1YyMTcuNkwxODMuMyAyNDJjLTE0LjUgOC43LTIzLjMgMjQuMy0yMy4zIDQxLjJWNTEyaDk2VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NHM2NCAyOC43IDY0IDY0djk2aDk2VjI4My4yYzAtMTYuOS04LjgtMzIuNS0yMy4zLTQxLjJMNDE2IDIxNy42VjEwOS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42TDMzMS4zIDExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDIzMy40IDg2LjZjLTYgNi05LjQgMTQuMS05LjQgMjIuNnpNMjQuOSAzMzAuM0M5LjUgMzM4LjggMCAzNTQuOSAwIDM3Mi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MFYyNzMuNkwyNC45IDMzMC4zek01OTIgNTEyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM3Mi40YzAtMTcuNS05LjUtMzMuNi0yNC45LTQyLjFMNTEyIDI3My42VjUxMmg4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVBcnJpdmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS4zIDE2Ni45TDAgNjhDMCA1Ny43IDkuNSA1MC4xIDE5LjUgNTIuM2wzNS42IDcuOWMxMC42IDIuMyAxOS4yIDkuOSAyMyAyMEw5NiAxMjhsMTI3LjMgMzcuNkwxODEuOCAyMC40QzE3OC45IDEwLjIgMTg2LjYgMCAxOTcuMiAwaDQwLjFjMTEuNiAwIDIyLjIgNi4yIDI3LjkgMTYuM2wxMDkgMTkzLjggMTA3LjIgMzEuN2MxNS45IDQuNyAzMC44IDEyLjUgNDMuNyAyMi44bDM0LjQgMjcuNmMyNCAxOS4yIDE4LjEgNTcuMy0xMC43IDY4LjJjLTQxLjIgMTUuNi04Ni4yIDE4LjEtMTI4LjggN0wxMjEuNyAyODkuOGMtMTEuMS0yLjktMjEuMi04LjctMjkuMy0xNi45TDkuNSAxODkuNGMtNS45LTYtOS4zLTE0LjEtOS4zLTIyLjV6TTMyIDQ0OEg2MDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTk2LTgwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEyOC0xNmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjLTM1IDAtNjQgNTkuNS02NCA5My43djg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45djY1LjVjMCAxMC42IDEwLjIgMTguMyAyMC40IDE1LjRsMTcxLjYtNDkgMCA3MC45LTU3LjYgNDMuMmMtNCAzLTYuNCA3LjgtNi40IDEyLjh2NDJjMCA3LjggNi4zIDE0IDE0IDE0YzEuMyAwIDIuNi0uMiAzLjktLjVMMjU2IDQ4MGwxMTAuMSAzMS41YzEuMyAuNCAyLjYgLjUgMy45IC41YzYgMCAxMS4xLTMuNyAxMy4xLTlDMzQ0LjUgNDcwLjcgMzIwIDQyMi4yIDMyMCAzNjhjMC02MC42IDMwLjYtMTE0IDc3LjEtMTQ1LjZMMzIwIDE3OC4zVjkzLjdDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTY0MCAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjLTM1IDAtNjQgNTkuNS02NCA5My43djg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45djY1LjVjMCAxMC42IDEwLjIgMTguMyAyMC40IDE1LjRsMTcxLjYtNDkgMCA3MC45LTU3LjYgNDMuMmMtNCAzLTYuNCA3LjgtNi40IDEyLjh2NDJjMCA3LjggNi4zIDE0IDE0IDE0YzEuMyAwIDIuNi0uMiAzLjktLjVMMjU2IDQ4MGwxMTAuMSAzMS41YzEuMyAuNCAyLjYgLjUgMy45IC41YzYgMCAxMS4xLTMuNyAxMy4xLTlDMzQ0LjUgNDcwLjcgMzIwIDQyMi4yIDMyMCAzNjhjMC02MC42IDMwLjYtMTE0IDc3LjEtMTQ1LjZMMzIwIDE3OC4zVjkzLjdDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0wLTk2YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHptMC0xNDRjOC44IDAgMTYgNy4yIDE2IDE2djgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDBjLTM1IDAtNjQgNTkuNS02NCA5My43djg0LjZMOC4xIDI4My40Yy01IDIuOC04LjEgOC4yLTguMSAxMy45djY1LjVjMCAxMC42IDEwLjIgMTguMyAyMC40IDE1LjRsMTcxLjYtNDkgMCA3MC45LTU3LjYgNDMuMmMtNCAzLTYuNCA3LjgtNi40IDEyLjh2NDJjMCA3LjggNi4zIDE0IDE0IDE0YzEuMyAwIDIuNi0uMiAzLjktLjVMMjU2IDQ4MGwxMTAuMSAzMS41YzEuMyAuNCAyLjYgLjUgMy45IC41YzYgMCAxMS4xLTMuNyAxMy4xLTlDMzQ0LjUgNDcwLjcgMzIwIDQyMi4yIDMyMCAzNjhjMC02MC42IDMwLjYtMTE0IDc3LjEtMTQ1LjZMMzIwIDE3OC4zVjkzLjdDMzIwIDU5LjUgMjkyIDAgMjU2IDB6TTQ5NiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em01OS4zLTE4MC43TDUxOC42IDM2OGwzNi43IDM2LjdjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEw0OTYgMzkwLjZsLTM2LjcgMzYuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNkw0NzMuNCAzNjhsLTM2LjctMzYuN2MtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ5NiAzNDUuNGwzNi43LTM2LjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZURlcGFydHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODEgMTE0LjlMMTg2LjEgNDEuOGMtMTYuNy02LjItMzUuMi01LjMtNTEuMSAyLjdMODkuMSA2Ny40Qzc4IDczIDc3LjIgODguNSA4Ny42IDk1LjJsMTQ2LjkgOTQuNUwxMzYgMjQwIDc3LjggMjE0LjFjLTguNy0zLjktMTguOC0zLjctMjcuMyAuNkwxOC4zIDIzMC44Yy05LjMgNC43LTExLjggMTYuOC01IDI0LjdsNzMuMSA4NS4zYzYuMSA3LjEgMTUgMTEuMiAyNC4zIDExLjJIMjQ4LjRjNSAwIDkuOS0xLjIgMTQuMy0zLjRMNTM1LjYgMjEyLjJjNDYuNS0yMy4zIDgyLjUtNjMuMyAxMDAuOC0xMTJDNjQ1LjkgNzUgNjI3LjIgNDggNjAwLjIgNDhINTQyLjhjLTIwLjIgMC00MC4yIDQuOC01OC4yIDE0TDM4MSAxMTQuOXpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmVMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5My43QzE5MiA1OS41IDIyMSAwIDI1NiAwYzM2IDAgNjQgNTkuNSA2NCA5My43djg0LjZsMTAxLjggNTguMkM0MTggMjQ3LjYgNDE2IDI1OS42IDQxNiAyNzJ2MjQuNmMtMTcuOSAxMC40LTMwLjMgMjkuMS0zMS44IDUwLjlMMzIwIDMyOS4xVjQwMGw1Ny42IDQzLjJjNCAzIDYuNCA3LjggNi40IDEyLjh2MjQgMThjMCA3LjgtNi4zIDE0LTE0IDE0Yy0xLjMgMC0yLjYtLjItMy45LS41TDI1NiA0ODAgMTQ1LjkgNTExLjVjLTEuMyAuNC0yLjYgLjUtMy45IC41Yy03LjggMC0xNC02LjMtMTQtMTRWNDU2YzAtNSAyLjQtOS44IDYuNC0xMi44TDE5MiA0MDBsMC03MC45LTE3MS42IDQ5QzEwLjIgMzgxLjEgMCAzNzMuNCAwIDM2Mi44VjI5Ny4zYzAtNS43IDMuMS0xMSA4LjEtMTMuOUwxOTIgMTc4LjNWOTMuN3pNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDhoNjRWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MHY0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJWMjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC42IDMyMGg3My44YzM0LjIgMCA5My43LTI4IDkzLjctNjRjMC0zNS01OS41LTY0LTkzLjctNjRsLTExNi42IDBMMjk3LjIgMTYuMUMyOTEuNSA2LjIgMjgwLjkgMCAyNjkuNCAwSDIxMy4yYy0xMC42IDAtMTguMyAxMC4yLTE1LjQgMjAuNGw0MC4zIDE0MC45TDM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDQwLjYgMzIwem0tNzguMSA2MS42TDQxLjUgMTI4LjdDMzYgMTMwLjYgMzIgMTM1LjkgMzIgMTQyYzAgMS4zIC4yIDIuNiAuNSAzLjlMNjQgMjU2IDMyLjUgMzY2LjFjLS40IDEuMy0uNSAyLjYtLjUgMy45YzAgNy44IDYuMyAxNCAxNCAxNEg4OGM1IDAgOS44LTIuNCAxMi44LTYuNEwxNDQgMzIwSDI0Ni45bC00OSAxNzEuNmMtMi45IDEwLjIgNC44IDIwLjQgMTUuNCAyMC40bDU2LjIgMGMxMS41IDAgMjIuMS02LjIgMjcuOC0xNi4xbDY1LjMtMTE0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDkzLjdDMTkyIDU5LjUgMjIxIDAgMjU2IDBjMzYgMCA2NCA1OS41IDY0IDkzLjdsMCA2Ni4zTDQ5Ny44IDI3OC41YzguOSA1LjkgMTQuMiAxNS45IDE0LjIgMjYuNnY1Ni43YzAgMTAuOS0xMC43IDE4LjYtMjEuMSAxNS4yTDMyMCAzMjB2ODBsNTcuNiA0My4yYzQgMyA2LjQgNy44IDYuNCAxMi44djQyYzAgNy44LTYuMyAxNC0xNCAxNGMtMS4zIDAtMi42LS4yLTMuOS0uNUwyNTYgNDgwIDE0NS45IDUxMS41Yy0xLjMgLjQtMi42IC41LTMuOSAuNWMtNy44IDAtMTQtNi4zLTE0LTE0VjQ1NmMwLTUgMi40LTkuOCA2LjQtMTIuOEwxOTIgNDAwVjMyMEwyMS4xIDM3N0MxMC43IDM4MC40IDAgMzcyLjcgMCAzNjEuOFYzMDUuMWMwLTEwLjcgNS4zLTIwLjcgMTQuMi0yNi42TDE5MiAxNjBWOTMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgyLjMgMTkyYzM0LjIgMCA5My43IDI5IDkzLjcgNjRjMCAzNi01OS41IDY0LTkzLjcgNjRsLTExNi42IDBMMjY1LjIgNDk1LjljLTUuNyAxMC0xNi4zIDE2LjEtMjcuOCAxNi4xbC01Ni4yIDBjLTEwLjYgMC0xOC4zLTEwLjItMTUuNC0yMC40bDQ5LTE3MS42TDExMiAzMjAgNjguOCAzNzcuNmMtMyA0LTcuOCA2LjQtMTIuOCA2LjRsLTQyIDBjLTcuOCAwLTE0LTYuMy0xNC0xNGMwLTEuMyAuMi0yLjYgLjUtMy45TDMyIDI1NiAuNSAxNDUuOWMtLjQtMS4zLS41LTIuNi0uNS0zLjljMC03LjggNi4zLTE0IDE0LTE0bDQyIDBjNSAwIDkuOCAyLjQgMTIuOCA2LjRMMTEyIDE5MmwxMDIuOSAwLTQ5LTE3MS42QzE2Mi45IDEwLjIgMTcwLjYgMCAxODEuMiAwbDU2LjIgMGMxMS41IDAgMjIuMSA2LjIgMjcuOCAxNi4xTDM2NS43IDE5MmwxMTYuNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFudFdpbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDEyMGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2djEzYy0yOS4zIDEwLTQ4IDM0LjUtNDggNzAuMWMwIDI3LjkgMjUuMyA3NC44IDY2IDExMS42YzMuOCAzLjUgOC45IDUuMyAxNCA1LjNzMTAuMi0xLjggMTQtNS4zYzQwLjctMzYuOCA2Ni04My43IDY2LTExMS42YzAtMzUuNi0xOC43LTYwLjItNDgtNzAuMVYxMjBDNDY0IDUzLjcgNDEwLjMgMCAzNDQgMFMyMjQgNTMuNyAyMjQgMTIwdjIxLjhDMjA3LjMgMTMzIDE4OC4yIDEyOCAxNjggMTI4Yy02Ni4zIDAtMTIwIDUzLjctMTIwIDEyMHYxM2MtMjkuMyAxMC00OCAzNC41LTQ4IDcwLjFDMCAzNTkgMjUuMyA0MDUuOSA2NiA0NDIuN2MzLjggMy41IDguOSA1LjMgMTQgNS4zczEwLjItMS44IDE0LTUuM2M0MC43LTM2LjggNjYtODMuNyA2Ni0xMTEuNmMwLTM1LjYtMTguNy02MC4yLTQ4LTcwLjFWMjQ4YzAtMzAuOSAyNS4xLTU2IDU2LTU2czU2IDI1LjEgNTYgNTZ2MzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjgwIDI0OCAxMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXRlV2hlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwdjE2YzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBWNDhjMC04LjggNy4yLTE2IDE2LTE2ek01NiA2NGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpNMjQgMTM2SDEzNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptOCA5NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1NmMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTI3MiA0OGMwLTguOCA3LjItMTYgMTYtMTZjNDQuMiAwIDgwIDM1LjggODAgODB2MTZjMCA4LjgtNy4yIDE2LTE2IDE2Yy00NC4yIDAtODAtMzUuOC04MC04MFY0OHpNNDAwIDMyYzQ0LjIgMCA4MCAzNS44IDgwIDgwdjE2YzAgOC44LTcuMiAxNi0xNiAxNmMtNDQuMiAwLTgwLTM1LjgtODAtODBWNDhjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNjB2MTZjMCA0NC4yLTM1LjggODAtODAgODBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNTZjMC00NC4yIDM1LjgtODAgODAtODBjOC44IDAgMTYgNy4yIDE2IDE2ek0zNTIgMTc2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDQ0LjItMzUuOCA4MC04MCA4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI1NmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTk2IDE2djE2YzAgNDQuMi0zNS44IDgwLTgwIDgwYy04LjggMC0xNi03LjItMTYtMTZWMjU2YzAtNDQuMiAzNS44LTgwIDgwLTgwYzguOCAwIDE2IDcuMiAxNiAxNnpNMy41IDM0Ny42QzEuNiAzMzIuOSAxMyAzMjAgMjcuOCAzMjBINDg0LjJjMTQuOCAwIDI2LjIgMTIuOSAyNC40IDI3LjZDNTAyLjMgMzk3LjggNDY0LjIgNDM3IDQxNiA0NDZ2MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMydi0yYy00OC4yLTktODYuMy00OC4yLTkyLjUtOTguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03MyAzOWMtMTQuOC05LjEtMzMuNC05LjQtNDguNS0uOVMwIDYyLjYgMCA4MFY0MzJjMCAxNy40IDkuNCAzMy40IDI0LjUgNDEuOXMzMy43IDguMSA0OC41LS45TDM2MSAyOTdjMTQuMy04LjcgMjMtMjQuMiAyMy00MXMtOC43LTMyLjItMjMtNDFMNzMgMzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdWdDaXJjbGVCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMydjMyYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQxMi44YzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyek00MzIgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptNDcuOS0yMjVjNC4zIDMuNyA1LjQgOS45IDIuNiAxNC45TDQ1Mi40IDM1Nkg0ODhjNS4yIDAgOS44IDMuMyAxMS40IDguMnMtLjEgMTAuMy00LjIgMTMuNGwtOTYgNzJjLTQuNSAzLjQtMTAuOCAzLjItMTUuMS0uNnMtNS40LTkuOS0yLjYtMTQuOUw0MTEuNiAzODBIMzc2Yy01LjIgMC05LjgtMy4zLTExLjQtOC4ycy4xLTEwLjMgNC4yLTEzLjRsOTYtNzJjNC41LTMuNCAxMC44LTMuMiAxNS4xIC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVnQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ2MzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDEyLjhjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6TTU3NiAzNjhhMTQ0IDE0NCAwIDEgMCAtMjg4IDAgMTQ0IDE0NCAwIDEgMCAyODggMHptLTc2LjctNDMuM2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQxNiAzODUuNGw2MC43LTYwLjdjNi4yLTYuMiAxNi40LTYuMiAyMi42IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdWdDaXJjbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzc4LjMgMCA2NCAxNC4zIDY0IDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnYzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MTIuOGMxMi4zLTIuNSAyNC4xLTYuNCAzNS4xLTExLjVjLTIuMS0xMC44LTMuMS0yMS45LTMuMS0zMy4zYzAtODAuMyA1My44LTE0OCAxMjcuMy0xNjkuMmMuNS0yLjIgLjctNC41IC43LTYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTAtOTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0wLTE0NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1Z0NpcmNsZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNzguMyAwIDY0IDE0LjMgNjQgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzIgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMydjMyYzAgNzcuNCA1NSAxNDIgMTI4IDE1Ni44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQxMi44YzEyLjMtMi41IDI0LjEtNi40IDM1LjEtMTEuNWMtMi4xLTEwLjgtMy4xLTIxLjktMy4xLTMzLjNjMC04MC4zIDUzLjgtMTQ4IDEyNy4zLTE2OS4yYy41LTIuMiAuNy00LjUgLjctNi44YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyek01NzYgMzY4YTE0NCAxNDQgMCAxIDAgLTI4OCAwIDE0NCAxNDQgMCAxIDAgMjg4IDB6bS02NCAwYzAgOC44LTcuMiAxNi0xNiAxNkgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZINDk2YzguOCAwIDE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1Z0NpcmNsZVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ2MzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDEyLjhjMTIuMy0yLjUgMjQuMS02LjQgMzUuMS0xMS41Yy0yLjEtMTAuOC0zLjEtMjEuOS0zLjEtMzMuM2MwLTgwLjMgNTMuOC0xNDggMTI3LjMtMTY5LjJjLjUtMi4yIC43LTQuNSAuNy02LjhjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6TTQzMiA1MTJhMTQ0IDE0NCAwIDEgMCAwLTI4OCAxNDQgMTQ0IDAgMSAwIDAgMjg4em0xNi0yMDh2NDhoNDhjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINDQ4djQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjM4NEgzNjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNDhWMzA0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdWdDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzc4LjMgMCA2NCAxNC4zIDY0IDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0yODggMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoNjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTMyIDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMnYzMmMwIDc3LjQgNTUgMTQyIDEyOCAxNTYuOFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0MTIuOGMxMi4zLTIuNSAyNC4xLTYuNCAzNS4xLTExLjVjLTIuMS0xMC44LTMuMS0yMS45LTMuMS0zMy4zYzAtODAuMyA1My44LTE0OCAxMjcuMy0xNjkuMmMuNS0yLjIgLjctNC41IC43LTYuOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMnpNNDMyIDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTU5LjMtMTgwLjdMNDU0LjYgMzY4bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQzMiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQwOS40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDMyIDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM3OC4zIDAgNjQgMTQuMyA2NCAzMnY5Nmg2NFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMjg4IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDY0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMiAxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ2MzJjMCA3Ny40IDU1IDE0MiAxMjggMTU2LjhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDEyLjhDMjk3IDM5OCAzNTIgMzMzLjQgMzUyIDI1NlYyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsdXNNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMTQ0SDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDE2MFYzMjBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMDhIMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIyNFYzMnpNMCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzUyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgODBjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWMjI0SDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDE5MlY0MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhINDAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI1NlY4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9kY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTkuNCAzNzJjNDguNS0zMS4zIDgwLjYtODUuOSA4MC42LTE0OGMwLTk3LjItNzguOC0xNzYtMTc2LTE3NlM0OCAxMjYuOCA0OCAyMjRjMCA2Mi4xIDMyLjEgMTE2LjYgODAuNiAxNDhjMS4yIDE3LjMgNCAzOCA3LjIgNTcuMWwuMiAxQzU2IDM5NS44IDAgMzE2LjUgMCAyMjRDMCAxMDAuMyAxMDAuMyAwIDIyNCAwUzQ0OCAxMDAuMyA0NDggMjI0YzAgOTIuNS01NiAxNzEuOS0xMzYgMjA2LjFsLjItMS4xYzMuMS0xOS4yIDYtMzkuOCA3LjItNTd6bS0yLjMtMzguMWMtMS42LTUuNy0zLjktMTEuMS03LTE2LjJjLTUuOC05LjctMTMuNS0xNy0yMS45LTIyLjRjMTkuNS0xNy42IDMxLjgtNDMgMzEuOC03MS4zYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMjguMyAxMi4zIDUzLjggMzEuOCA3MS4zYy04LjQgNS40LTE2LjEgMTIuNy0yMS45IDIyLjRjLTMuMSA1LjEtNS40IDEwLjUtNyAxNi4yQzk5LjggMzA3LjUgODAgMjY4IDgwIDIyNGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NHMxNDQgNjQuNSAxNDQgMTQ0YzAgNDQtMTkuOCA4My41LTUwLjkgMTA5Ljl6TTIyNCAzMTJjMzIuOSAwIDY0IDguNiA2NCA0My44YzAgMzMtMTIuOSAxMDQuMS0yMC42IDEzMi45Yy01LjEgMTktMjQuNSAyMy40LTQzLjQgMjMuNHMtMzguMi00LjQtNDMuNC0yMy40Yy03LjgtMjguNS0yMC42LTk5LjctMjAuNi0xMzIuOGMwLTM1LjEgMzEuMS00My44IDY0LTQzLjh6bTAtMTQ0YTU2IDU2IDAgMSAxIDAgMTEyIDU2IDU2IDAgMSAxIDAtMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb29TdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzYuOSAuMmMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjNjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMWMwIDIxLjctOC41IDM3LjItMjEuOSA0Ny42Yy0xMy44IDEwLjgtMzQgMTctNTcuOCAxN0gxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0YzAgMTIuMiAzLjQgMjMuNSA5LjMgMzMuMkMzMS43IDIxNi4yIDAgMjUyLjQgMCAyOTZjMCA0MC45IDI4IDc1LjQgNjUuOCA4NS4yYy01LjMtMTguNSAxLTM4LjUgMTYuMi01MC43bDE2MC0xMjhjMTcuNi0xNC4xIDQyLjYtMTQgNjAuMiAuMnMyMi44IDM4LjYgMTIuOCA1OC44TDI4NS43IDMyMEgzMDRjMjAuNCAwIDM4LjUgMTIuOSA0NS4zIDMyLjFjMy43IDEwLjYgMy41IDIxLjggMCAzMS45SDM2MGM0OC42IDAgODgtMzkuNCA4OC04OGMwLTQzLjYtMzEuNy03OS44LTczLjMtODYuOGM1LjktOS43IDkuMy0yMS4xIDkuMy0zMy4yYzAtMzUuMy0yOC43LTY0LTY0LTY0aC0xLjRjLjktNS40IDEuNC0xMC45IDEuNC0xNi42YzAtNDguNy0zNi4xLTg4LjktODMuMS05NS4yem00NS4xIDIyNy40Yy01LjgtNC43LTE0LjItNC43LTIwLjEtLjFsLTE2MCAxMjhjLTUuMyA0LjItNy40IDExLjQtNS4xIDE3LjhzOC4zIDEwLjcgMTUuMSAxMC43aDcwLjFMMTI5LjcgNDg4LjhjLTMuNCA2LjctMS42IDE0LjkgNC4zIDE5LjZzMTQuMiA0LjcgMjAuMSAuMWwxNjAtMTI4YzUuMy00LjIgNy40LTExLjQgNS4xLTE3LjhzLTguMy0xMC43LTE1LjEtMTAuN0gyMzMuOWw1Mi40LTEwNC44YzMuNC02LjcgMS42LTE0LjktNC4zLTE5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjguOSAuOWMtNS41LS43LTExIDEuNC0xNC41IDUuN3MtNC42IDEwLjEtMi44IDE1LjRjMi44IDguMiA0LjMgMTYuOSA0LjMgMjYuMWMwIDQ0LjEtMzUuNyA3OS45LTc5LjggODBIMTYwYy0zNS4zIDAtNjQgMjguNy02NCA2NGMwIDE5LjEgOC40IDM2LjMgMjEuNyA0OEgxMDRjLTM5LjggMC03MiAzMi4yLTcyIDcyYzAgMjMuMiAxMSA0My44IDI4IDU3Yy0zNC4xIDUuNy02MCAzNS4zLTYwIDcxYzAgMzkuOCAzMi4yIDcyIDcyIDcySDQ0MGMzOS44IDAgNzItMzIuMiA3Mi03MmMwLTM1LjctMjUuOS02NS4zLTYwLTcxYzE3LTEzLjIgMjgtMzMuOCAyOC01N2MwLTM5LjgtMzIuMi03Mi03Mi03MkgzOTQuM2MxMy4zLTExLjcgMjEuNy0yOC45IDIxLjctNDhjMC0zNS4zLTI4LjctNjQtNjQtNjRoLTUuNWMzLjUtMTAgNS41LTIwLjggNS41LTMyYzAtNDguNi0zNi4yLTg4LjgtODMuMS05NS4xek0xOTIgMjU2YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHptOTYgMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptNjQgMTA4LjNjMCAyLjQtLjcgNC44LTIuMiA2LjdjLTguMiAxMC41LTM5LjUgNDUtOTMuOCA0NXMtODUuNi0zNC42LTkzLjgtNDVjLTEuNS0xLjktMi4yLTQuMy0yLjItNi43YzAtNi44IDUuNS0xMi4zIDEyLjMtMTIuM0gzMzkuN2M2LjggMCAxMi4zIDUuNSAxMi4zIDEyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU0LjQgNi42YzMuNS00LjMgOS02LjUgMTQuNS01LjdDMzE1LjggNy4yIDM1MiA0Ny40IDM1MiA5NmMwIDExLjItMS45IDIyLTUuNSAzMkgzNTJjMzUuMyAwIDY0IDI4LjcgNjQgNjRjMCAxOS4xLTguNCAzNi4zLTIxLjcgNDhINDA4YzM5LjggMCA3MiAzMi4yIDcyIDcyYzAgMjMuMi0xMSA0My44LTI4IDU3YzM0LjEgNS43IDYwIDM1LjMgNjAgNzFjMCAzOS44LTMyLjIgNzItNzIgNzJINzJjLTM5LjggMC03Mi0zMi4yLTcyLTcyYzAtMzUuNyAyNS45LTY1LjMgNjAtNzFjLTE3LTEzLjItMjgtMzMuOC0yOC01N2MwLTM5LjggMzIuMi03MiA3Mi03MmgxMy43QzEwNC40IDIyOC4zIDk2IDIxMS4xIDk2IDE5MmMwLTM1LjMgMjguNy02NCA2NC02NGgxNi4yYzQ0LjEtLjEgNzkuOC0zNS45IDc5LjgtODBjMC05LjItMS41LTE3LjktNC4zLTI2LjFjLTEuOC01LjItLjgtMTEuMSAyLjgtMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG93ZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyek0xNDMuNSAxMjAuNmMxMy42LTExLjMgMTUuNC0zMS41IDQuMS00NS4xcy0zMS41LTE1LjQtNDUuMS00LjFDNDkuNyAxMTUuNCAxNiAxODEuOCAxNiAyNTZjMCAxMzIuNSAxMDcuNSAyNDAgMjQwIDI0MHMyNDAtMTA3LjUgMjQwLTI0MGMwLTc0LjItMzMuOC0xNDAuNi04Ni42LTE4NC42Yy0xMy42LTExLjMtMzMuOC05LjQtNDUuMSA0LjFzLTkuNCAzMy44IDQuMSA0NS4xYzM4LjkgMzIuMyA2My41IDgxIDYzLjUgMTM1LjRjMCA5Ny4yLTc4LjggMTc2LTE3NiAxNzZzLTE3Ni03OC44LTE3Ni0xNzZjMC01NC40IDI0LjctMTAzLjEgNjMuNS0xMzUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uQm90dGxlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NFYzMnptMzIgOTZIMzUyVjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4ek0xNjAgMjQwdjQ4SDExMmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM1Mmg0OGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNkgyMjRWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uQm90dGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJDMCAxNC4zIDE0LjMgMCAzMiAwSDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMlY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0VjMyem0zMiA5NkgzNTJWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDk2Yy0zNS4zIDAtNjQtMjguNy02NC02NFY0MTZIMTQ0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMyVjMyMEgxNDRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzJWMjI0SDE0NGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMlYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByZXNjcmlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAwQzE0LjMgMCAwIDE0LjMgMCAzMlYxOTJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMjRoNTAuN2wxMjggMTI4TDEzNy40IDQ1Ny40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDI4OCAzOTcuMyAzOTMuNCA1MDIuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDMzMy4zIDM1MiA0MzguNiAyNDYuNmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMEwyODggMzA2LjdsLTg1LjgtODUuOEMyNTEuNCAyMDkuMSAyODggMTY0LjggMjg4IDExMkMyODggNTAuMSAyMzcuOSAwIDE3NiAwSDMyek0xNzYgMTYwSDY0VjY0SDE3NmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBDOTIuNyAwIDY0IDI4LjcgNjQgNjR2OTZoNjRWNjRIMzU0LjdMMzg0IDkzLjNWMTYwaDY0VjkzLjNjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNDAwIDE4LjdDMzg4IDYuNyAzNzEuNyAwIDM1NC43IDBIMTI4ek0zODQgMzUydjMyIDY0SDEyOFYzODQgMzY4IDM1MkgzODR6bTY0IDMyaDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTM1LjMtMjguNy02NC02NC02NEg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJINjR2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjM4NHpNNDMyIDI0OGEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1bXBNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAzMnY5NkgyNTZWOTZoNjAuMWM0LjIgMCA4LjMgMS43IDExLjMgNC43bDMzLjkgMzMuOWMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDM3Mi43IDU1LjRjLTE1LTE1LTM1LjQtMjMuNC01Ni42LTIzLjRIMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEySDI4NS4yYzM3LjQgMCA2Ni45LTMyIDYzLjgtNjkuM2wtMTguNy0yMjRjLTIuOC0zMy4yLTMwLjUtNTguNy02My44LTU4LjdIMTE3LjR6TTIxNiAyODB2MzJoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMjE2djMyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjM2MEgxMzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMzJWMjgwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1bXBTb2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAzMnY5NkgyNTZWOTZoNjAuMWM0LjIgMCA4LjMgMS43IDExLjMgNC43bDMzLjkgMzMuOWMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDM3Mi43IDU1LjRjLTE1LTE1LTM1LjQtMjMuNC01Ni42LTIzLjRIMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6TTExNy40IDE2MGMtMzMuMyAwLTYxIDI1LjUtNjMuOCA1OC43TDM1IDQ0Mi43QzMxLjkgNDgwIDYxLjMgNTEyIDk4LjggNTEySDI4NS4yYzM3LjQgMCA2Ni45LTMyIDYzLjgtNjkuM2wtMTguNy0yMjRjLTIuOC0zMy4yLTMwLjUtNTguNy02My44LTU4LjdIMTE3LjR6TTI1NiAzNjBjMCAzNS4zLTI4LjcgNTYtNjQgNTZzLTY0LTIwLjctNjQtNTZjMC0zMi41IDM3LTgwLjkgNTAuOS05Ny45YzMuMi0zLjkgOC4xLTYuMSAxMy4xLTYuMXM5LjkgMi4yIDEzLjEgNi4xQzIxOSAyNzkuMSAyNTYgMzI3LjUgMjU2IDM2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHV6emxlUGllY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDEwNC44YzAtOS4yLTUuOC0xNy4zLTEzLjItMjIuOEMxNjcuMiA3My4zIDE2MCA2MS4zIDE2MCA0OGMwLTI2LjUgMjguNy00OCA2NC00OHM2NCAyMS41IDY0IDQ4YzAgMTMuMy03LjIgMjUuMy0xOC44IDM0Yy03LjQgNS41LTEzLjIgMTMuNi0xMy4yIDIyLjhjMCAxMi44IDEwLjQgMjMuMiAyMy4yIDIzLjJIMzM2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djU2LjhjMCAxMi44IDEwLjQgMjMuMiAyMy4yIDIzLjJjOS4yIDAgMTcuMy01LjggMjIuOC0xMy4yYzguNy0xMS42IDIwLjctMTguOCAzNC0xOC44YzI2LjUgMCA0OCAyOC43IDQ4IDY0cy0yMS41IDY0LTQ4IDY0Yy0xMy4zIDAtMjUuMy03LjItMzQtMTguOGMtNS41LTcuNC0xMy42LTEzLjItMjIuOC0xMy4yYy0xMi44IDAtMjMuMiAxMC40LTIzLjIgMjMuMlY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMjc5LjJjLTEyLjggMC0yMy4yLTEwLjQtMjMuMi0yMy4yYzAtOS4yIDUuOC0xNy4zIDEzLjItMjIuOGMxMS42LTguNyAxOC44LTIwLjcgMTguOC0zNGMwLTI2LjUtMjguNy00OC02NC00OHMtNjQgMjEuNS02NCA0OGMwIDEzLjMgNy4yIDI1LjMgMTguOCAzNGM3LjQgNS41IDEzLjIgMTMuNiAxMy4yIDIyLjhjMCAxMi44LTEwLjQgMjMuMi0yMy4yIDIzLjJINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM0My4yQzAgMzMwLjQgMTAuNCAzMjAgMjMuMiAzMjBjOS4yIDAgMTcuMyA1LjggMjIuOCAxMy4yQzU0LjcgMzQ0LjggNjYuNyAzNTIgODAgMzUyYzI2LjUgMCA0OC0yOC43IDQ4LTY0cy0yMS41LTY0LTQ4LTY0Yy0xMy4zIDAtMjUuMyA3LjItMzQgMTguOEM0MC41IDI1MC4yIDMyLjQgMjU2IDIzLjIgMjU2QzEwLjQgMjU2IDAgMjQ1LjYgMCAyMzIuOFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhIMTY4LjhjMTIuOCAwIDIzLjItMTAuNCAyMy4yLTIzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjU2YzAgODguNCA3MS42IDE2MCAxNjAgMTYwYzI4LjkgMCA1Ni03LjcgNzkuNC0yMS4xbC03Mi04Ni40Yy0xMS4zLTEzLjYtOS41LTMzLjggNC4xLTQ1LjFzMzMuOC05LjUgNDUuMSA0LjFsNzAuOSA4NS4xQzM3MS45IDMyNS44IDM4NCAyOTIuMyAzODQgMjU2YzAtODguNC03MS42LTE2MC0xNjAtMTYwUzY0IDE2Ny42IDY0IDI1NnpNMzQ0LjkgNDQ0LjZDMzEwIDQ2NyAyNjguNSA0ODAgMjI0IDQ4MEMxMDAuMyA0ODAgMCAzNzkuNyAwIDI1NlMxMDAuMyAzMiAyMjQgMzJzMjI0IDEwMC4zIDIyNCAyMjRjMCA1Ni4xLTIwLjYgMTA3LjQtNTQuNyAxNDYuN2w0Ny4zIDU2LjhjMTEuMyAxMy42IDkuNSAzMy44LTQuMSA0NS4xcy0zMy44IDkuNS00NS4xLTQuMWwtNDYuNi01NS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRcmNvZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MEMwIDUzLjUgMjEuNSAzMiA0OCAzMmg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODB6TTY0IDk2djY0aDY0Vjk2SDY0ek0wIDMzNmMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzM2em02NCAxNnY2NGg2NFYzNTJINjR6TTMwNCAzMmg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY5NmMwIDI2LjUtMjEuNSA0OC00OCA0OEgzMDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4em04MCA2NEgzMjB2NjRoNjRWOTZ6TTI1NiAzMDRjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNnM3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2czcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2OTZjMCA4LjgtNy4yIDE2LTE2IDE2SDM2OGMtOC44IDAtMTYtNy4yLTE2LTE2cy03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIMjcyYy04LjggMC0xNi03LjItMTYtMTZWMzA0ek0zNjggNDgwYTE2IDE2IDAgMSAxIDAtMzIgMTYgMTYgMCAxIDEgMCAzMnptNjQgMGExNiAxNiAwIDEgMSAwLTMyIDE2IDE2IDAgMSAxIDAgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDE2MGMwLTM1LjMgMjguNy02NCA2NC02NGgzMmMzNS4zIDAgNjQgMjguNyA2NCA2NHYzLjZjMCAyMS44LTExLjEgNDIuMS0yOS40IDUzLjhsLTQyLjIgMjcuMWMtMjUuMiAxNi4yLTQwLjQgNDQuMS00MC40IDc0VjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMydi0xLjRjMC04LjIgNC4yLTE1LjggMTEtMjAuMmw0Mi4yLTI3LjFjMzYuNi0yMy42IDU4LjgtNjQuMSA1OC44LTEwNy43VjE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgxNDRDNzMuMyAzMiAxNiA4OS4zIDE2IDE2MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyem04MCAzMjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdW90ZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyMTZDMCAxNDkuNyA1My43IDk2IDEyMCA5Nmg4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyaC04Yy0zMC45IDAtNTYgMjUuMS01NiA1NnY4aDY0YzM1LjMgMCA2NCAyOC43IDY0IDY0djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYzMjAgMjg4IDIxNnptMjU2IDBjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBoOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmgtOGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZ2OGg2NGMzNS4zIDAgNjQgMjguNyA2NCA2NHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NEgzMjBjLTM1LjMgMC02NC0yOC43LTY0LTY0VjMyMCAyODggMjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdW90ZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAyOTZjMCA2Ni4zLTUzLjcgMTIwLTEyMCAxMjBoLThjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOGMzMC45IDAgNTYtMjUuMSA1Ni01NnYtOEgzMjBjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE2MGMwLTM1LjMgMjguNy02NCA2NC02NGg2NGMzNS4zIDAgNjQgMjguNyA2NCA2NHYzMiAzMiA3MnptLTI1NiAwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwSDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDhjMzAuOSAwIDU2LTI1LjEgNTYtNTZ2LThINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE2MGMwLTM1LjMgMjguNy02NCA2NC02NGg2NGMzNS4zIDAgNjQgMjguNyA2NCA2NHYzMiAzMiA3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjI4OCA0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzMjBoOTUuM0wyNjEuOCA0NjYuNGMxMC4xIDE0LjUgMzAuMSAxOCA0NC42IDcuOXMxOC0zMC4xIDcuOS00NC42TDIzMC4xIDMwOS41QzI4Mi44IDI4OC4xIDMyMCAyMzYuNCAzMjAgMTc2YzAtNzkuNS02NC41LTE0NC0xNDQtMTQ0SDY0ek0xNzYgMjU2SDY0Vjk2SDE3NmM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFkaWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiAxODYuN2MtMjMuOSAxMy44LTQwIDM5LjctNDAgNjkuM0wzMiAyNTZDMTQuMyAyNTYtLjIgMjQxLjYgMiAyMjQuMUMxMC43IDE1NCA0Ny44IDkyLjcgMTAxLjMgNTJjMTQuMS0xMC43IDMzLjgtNS4zIDQyLjcgMTBsNzIgMTI0Ljd6TTI1NiAzMzZjMTQuNiAwIDI4LjItMy45IDQwLTEwLjdsNzIgMTI0LjhjOC44IDE1LjMgMy43IDM1LjEtMTIuNiA0MS45Yy0zMC42IDEyLjktNjQuMiAyMC05OS40IDIwcy02OC45LTcuMS05OS40LTIwYy0xNi4zLTYuOS0yMS40LTI2LjYtMTIuNi00MS45bDcyLTEyNC44YzExLjggNi44IDI1LjQgMTAuNyA0MCAxMC43em0yMjQtODBsLTE0NCAwYzAtMjkuNi0xNi4xLTU1LjUtNDAtNjkuM0wzNjggNjJjOC44LTE1LjMgMjguNi0yMC43IDQyLjctMTBjNTMuNiA0MC43IDkwLjYgMTAyIDk5LjQgMTcyLjFjMi4yIDE3LjUtMTIuNCAzMS45LTMwIDMxLjl6TTI1NiAyMDhhNDggNDggMCAxIDEgMCA5NiA0OCA0OCAwIDEgMSAwLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTQuOCA0N2MxMi43LTMuNyAyMC0xNy4xIDE2LjMtMjkuOFM0OTQtMi44IDQ4MS4yIDFMNTEuNyAxMjYuOWMtOS40IDIuNy0xNy45IDcuMy0yNS4xIDEzLjJDMTAuNSAxNTEuNyAwIDE3MC42IDAgMTkydjRWMzA0IDQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDIxOC41TDQ5NC44IDQ3ek0zNjggMjQwYTgwIDgwIDAgMSAxIDAgMTYwIDgwIDgwIDAgMSAxIDAtMTYwek04MCAyNTZjMC04LjggNy4yLTE2IDE2LTE2aDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZ6TTY0IDMyMGMwLTguOCA3LjItMTYgMTYtMTZIMjA4YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ6bTE2IDY0YzAtOC44IDcuMi0xNiAxNi0xNmg5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYWluYm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA5NkMxNzguNiA5NiA2NCAyMTAuNiA2NCAzNTJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyQzAgMTc1LjMgMTQzLjMgMzIgMzIwIDMyczMyMCAxNDMuMyAzMjAgMzIwdjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkM1NzYgMjEwLjYgNDYxLjQgOTYgMzIwIDk2em0wIDE5MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyYzAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjh2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xNjAgMzUydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MmMwLTEyMy43IDEwMC4zLTIyNCAyMjQtMjI0czIyNCAxMDAuMyAyMjQgMjI0djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MmMwLTg4LjQtNzEuNi0xNjAtMTYwLTE2MHMtMTYwIDcxLjYtMTYwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFua2luZ1N0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUzLjggNTQuMUwzMzAuMiA2LjNjLTMuOS04LjMtMTYuMS04LjYtMjAuNCAwTDI4Ni4yIDU0LjFsLTUyLjMgNy41Yy05LjMgMS40LTEzLjMgMTIuOS02LjQgMTkuOGwzOCAzNy05IDUyLjFjLTEuNCA5LjMgOC4yIDE2LjUgMTYuOCAxMi4ybDQ2LjktMjQuOCA0Ni42IDI0LjRjOC42IDQuMyAxOC4zLTIuOSAxNi44LTEyLjJsLTktNTIuMSAzOC0zNi42YzYuOC02LjggMi45LTE4LjMtNi40LTE5LjhsLTUyLjMtNy41ek0yNTYgMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI4OGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNTZ6TTMyIDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMySDE2MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNTJjMC0xNy43LTE0LjMtMzItMzItMzJIMzJ6bTQxNiA5NnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDE2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY2VpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMi4yQzIyLjUtMS43IDMyLjUtLjMgMzkuNiA1LjhMODAgNDAuNCAxMjAuNCA1LjhjOS03LjcgMjIuMy03LjcgMzEuMiAwTDE5MiA0MC40IDIzMi40IDUuOGM5LTcuNyAyMi4zLTcuNyAzMS4yIDBMMzA0IDQwLjQgMzQ0LjQgNS44YzcuMS02LjEgMTcuMS03LjUgMjUuNi0zLjZzMTQgMTIuNCAxNCAyMS44VjQ4OGMwIDkuNC01LjUgMTcuOS0xNCAyMS44cy0xOC41IDIuNS0yNS42LTMuNkwzMDQgNDcxLjZsLTQwLjQgMzQuNmMtOSA3LjctMjIuMyA3LjctMzEuMiAwTDE5MiA0NzEuNmwtNDAuNCAzNC42Yy05IDcuNy0yMi4zIDcuNy0zMS4yIDBMODAgNDcxLjYgMzkuNiA1MDYuMmMtNy4xIDYuMS0xNy4xIDcuNS0yNS42IDMuNlMwIDQ5Ny40IDAgNDg4VjI0QzAgMTQuNiA1LjUgNi4xIDE0IDIuMnpNOTYgMTQ0Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDI4OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg5NnpNODAgMzUyYzAgOC44IDcuMiAxNiAxNiAxNkgyODhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnpNOTYgMjQwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDI4OGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjb3JkVmlueWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTAgMjI0YTEyOCAxMjggMCAxIDAgMC0yNTYgMTI4IDEyOCAwIDEgMCAwIDI1NnptMC05NmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY3RhbmdsZUFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjI5LjUgMTczLjNsNzIgMTQ0YzUuOSAxMS45IDEuMSAyNi4zLTEwLjcgMzIuMnMtMjYuMyAxLjEtMzIuMi0xMC43TDI1My4yIDMyOEgxNjIuOGwtNS40IDEwLjdjLTUuOSAxMS45LTIwLjMgMTYuNy0zMi4yIDEwLjdzLTE2LjctMjAuMy0xMC43LTMyLjJsNzItMTQ0YzQuMS04LjEgMTIuNC0xMy4zIDIxLjUtMTMuM3MxNy40IDUuMSAyMS41IDEzLjN6TTIwOCAyMzcuN0wxODYuOCAyODBoNDIuM0wyMDggMjM3Ljd6TTM5MiAyNTZhMjQgMjQgMCAxIDAgMCA0OCAyNCAyNCAwIDEgMCAwLTQ4em0yNC00My45VjE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djk2IDQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0Yy02LjYgMC0xMi42LTIuNy0xNy03Yy05LjQgNC41LTE5LjkgNy0zMSA3Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcyYzguNCAwIDE2LjUgMS40IDI0IDQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjdGFuZ2xlTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek0xMjggMjg4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMzItMTI4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTEyOCAzODRhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em05Ni0yNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDIyNHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg0NDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjI0em0wIDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDQ0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlY3RhbmdsZVhtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMTc1IDE3NWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3IDQ3IDQ3YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTQ3LTQ3LTQ3IDQ3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDQ3LTQ3LTQ3LTQ3Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjeWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzQuNyA0NS4xQzE5Mi4yIDE3IDIyMyAwIDI1NiAwczYzLjggMTcgODEuMyA0NS4xbDM4LjYgNjEuNyAyNy0xNS42YzguNC00LjkgMTguOS00LjIgMjYuNiAxLjdzMTEuMSAxNS45IDguNiAyNS4zbC0yMy40IDg3LjRjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3bC04Ny40LTIzLjRjLTkuNC0yLjUtMTYuMy0xMC40LTE3LjYtMjBzMy40LTE5LjEgMTEuOC0yMy45bDI4LjQtMTYuNEwyODMgNzljLTUuOC05LjMtMTYtMTUtMjctMTVzLTIxLjIgNS43LTI3IDE1bC0xNy41IDI4Yy05LjIgMTQuOC0yOC42IDE5LjUtNDMuNiAxMC41Yy0xNS4zLTkuMi0yMC4yLTI5LjItMTAuNy00NC40bDE3LjUtMjh6TTQyOS41IDI1MS45YzE1LTkgMzQuNC00LjMgNDMuNiAxMC41bDI0LjQgMzkuMWM5LjQgMTUuMSAxNC40IDMyLjQgMTQuNiA1MC4yYy4zIDUzLjEtNDIuNyA5Ni40LTk1LjggOTYuNEwzMjAgNDQ4djMyYzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTY0LTY0Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw2NC02NGM2LjktNi45IDE3LjItOC45IDI2LjItNS4yczE0LjggMTIuNSAxNC44IDIyLjJ2MzJsOTYuMiAwYzE3LjYgMCAzMS45LTE0LjQgMzEuOC0zMmMwLTUuOS0xLjctMTEuNy00LjgtMTYuN2wtMjQuNC0zOS4xYy05LjUtMTUuMi00LjctMzUuMiAxMC43LTQ0LjR6bS0zNjQuNi0zMUwzNiAyMDQuMmMtOC40LTQuOS0xMy4xLTE0LjMtMTEuOC0yMy45czguMi0xNy41IDE3LjYtMjBsODcuNC0yMy40YzEyLjgtMy40IDI2IDQuMiAyOS40IDE3TDE4MiAyNDEuMmMyLjUgOS40LS45IDE5LjMtOC42IDI1LjNzLTE4LjIgNi42LTI2LjYgMS43bC0yNi41LTE1LjNMNjguOCAzMzUuM2MtMy4xIDUtNC44IDEwLjgtNC44IDE2LjdjLS4xIDE3LjYgMTQuMiAzMiAzMS44IDMybDMyLjIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtMzIuMiAwQzQyLjcgNDQ4LS4zIDQwNC44IDAgMzUxLjZjLjEtMTcuOCA1LjEtMzUuMSAxNC42LTUwLjJsNTAuMy04MC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdpc3RlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDg4YzQ0LjIgMCA4MCAzNS44IDgwIDgwYzAgMjgtMTQuNCA1Mi43LTM2LjMgNjdsMzQuMSA3NS4xYzUuNSAxMi4xIC4xIDI2LjMtMTEuOSAzMS44cy0yNi4zIC4xLTMxLjgtMTEuOUwyNjguOSAyODhIMjA4djcyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjI2NCAxNTJ6bTQ4IDg4aDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIwOHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVwZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC01MyA0My05NiA5Ni05NkgzMjB2MzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45UzMyMCAxOS4xIDMyMCAzMlY2NEgxNjBDNzEuNiA2NCAwIDEzNS42IDAgMjI0em01MTIgNjRjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJjMCA1My00MyA5Ni05NiA5NkgxOTJWMzUyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNlY0NDhIMzUyYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseUFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDkuNCAzOS41Yy05LjEtOS42LTI0LjMtMTAtMzMuOS0uOUwzMy44IDE3My4yYy0xOS45IDE4LjktMTkuOSA1MC43IDAgNjkuNkwxNzUuNSAzNzcuNGM5LjYgOS4xIDI0LjggOC43IDMzLjktLjlzOC43LTI0LjgtLjktMzMuOUw2Ni44IDIwOCAyMDguNSA3My40YzkuNi05LjEgMTAtMjQuMyAuOS0zMy45ek0zNTIgNjRjMC0xMi42LTcuNC0yNC4xLTE5LTI5LjJzLTI1LTMtMzQuNCA1LjRsLTE2MCAxNDRjLTYuNyA2LjEtMTAuNiAxNC43LTEwLjYgMjMuOHMzLjkgMTcuNyAxMC42IDIzLjhsMTYwIDE0NGM5LjQgOC41IDIyLjkgMTAuNiAzNC40IDUuNHMxOS0xNi42IDE5LTI5LjJWMjg4aDMyYzUzIDAgOTYgNDMgOTYgOTZjMCAzMC40LTEyLjggNDcuOS0yMi4yIDU2LjdjLTUuNSA1LjEtOS44IDEyLTkuOCAxOS41YzAgMTAuOSA4LjggMTkuNyAxOS43IDE5LjdjMi44IDAgNS42LS42IDguMS0xLjlDNDk0LjUgNDY3LjkgNTc2IDQxNy4zIDU3NiAzMDRjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZIMzUyVjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUgMzQuOGMxMS41IDUuMSAxOSAxNi42IDE5IDI5LjJ2NjRIMzM2Yzk3LjIgMCAxNzYgNzguOCAxNzYgMTc2YzAgMTEzLjMtODEuNSAxNjMuOS0xMDAuMiAxNzQuMWMtMi41IDEuNC01LjMgMS45LTguMSAxLjljLTEwLjkgMC0xOS43LTguOS0xOS43LTE5LjdjMC03LjUgNC4zLTE0LjQgOS44LTE5LjVjOS40LTguOCAyMi4yLTI2LjQgMjIuMi01Ni43YzAtNTMtNDMtOTYtOTYtOTZIMjI0djY0YzAgMTIuNi03LjQgMjQuMS0xOSAyOS4ycy0yNSAzLTM0LjQtNS40bC0xNjAtMTQ0QzMuOSAyMjUuNyAwIDIxNy4xIDAgMjA4czMuOS0xNy43IDEwLjYtMjMuOGwxNjAtMTQ0YzkuNC04LjUgMjIuOS0xMC42IDM0LjQtNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXB1YmxpY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTkyQzAgMTAzLjYgNzEuNiAzMiAxNjAgMzJIMzg0Yzg4LjQgMCAxNjAgNzEuNiAxNjAgMTYwdjY0SDBWMTkyem00MTUuOS02NGMtMi40IDAtNC43IDEuMy01LjcgMy40bC0xMi42IDI0LjYtMjguMiA0Yy0yLjQgLjMtNC40IDItNS4yIDQuMnMtLjEgNC43IDEuNiA2LjNsMjAuNCAxOS4yLTQuOCAyNy4xYy0uNCAyLjMgLjYgNC43IDIuNSA2czQuNiAxLjYgNi43IC41bDI1LjItMTIuOCAyNS4yIDEyLjhjMi4yIDEuMSA0LjggLjkgNi43LS41czMtMy43IDIuNS02bC00LjgtMjcuMUw0NjYgMTcwLjVjMS43LTEuNiAyLjQtNC4xIDEuNi02LjNzLTIuOC0zLjktNS4yLTQuMmwtMjguMi00LTEyLjYtMjQuNmMtMS4xLTIuMS0zLjMtMy40LTUuNy0zLjR6bS0xMzguMyAzLjRjLTEuMS0yLjEtMy4zLTMuNC01LjctMy40cy00LjcgMS4zLTUuNyAzLjRsLTEyLjYgMjQuNi0yOC4yIDRjLTIuNCAuMy00LjQgMi01LjIgNC4ycy0uMSA0LjcgMS42IDYuM2wyMC40IDE5LjItNC44IDI3LjFjLS40IDIuMyAuNiA0LjcgMi41IDZzNC42IDEuNiA2LjcgLjVsMjUuMi0xMi44IDI1LjIgMTIuOGMyLjIgMS4xIDQuOCAuOSA2LjctLjVzMy0zLjcgMi41LTZsLTQuOC0yNy4xTDMyMiAxNzAuNWMxLjctMS42IDIuNC00LjEgMS42LTYuM3MtMi44LTMuOS01LjItNC4ybC0yOC4yLTQtMTIuNi0yNC42ek0xMjcuOSAxMjhjLTIuNCAwLTQuNyAxLjMtNS43IDMuNGwtMTIuNiAyNC42LTI4LjIgNGMtMi40IC4zLTQuNCAyLTUuMiA0LjJzLS4xIDQuNyAxLjYgNi4zbDIwLjQgMTkuMi00LjggMjcuMWMtLjQgMi4zIC42IDQuNyAyLjUgNnM0LjYgMS42IDYuNyAuNWwyNS4yLTEyLjggMjUuMiAxMi44YzIuMiAxLjEgNC44IC45IDYuNy0uNXMzLTMuNyAyLjUtNmwtNC44LTI3LjFMMTc4IDE3MC41YzEuNy0xLjYgMi40LTQuMSAxLjYtNi4zcy0yLjgtMy45LTUuMi00LjJsLTI4LjItNC0xMi42LTI0LjZjLTEuMS0yLjEtMy4zLTMuNC01LjctMy40em0uMSAxNjBIMzIwaDk2IDMyIDY0IDMydjMyIDgwYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzUyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2NDhjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBWMzUySDQ0OHYzMiA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzNTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4NEgxMjh2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjM4NCAyODhIMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXN0cm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MCA0OGE0OCA0OCAwIDEgMSA5NiAwQTQ4IDQ4IDAgMSAxIDgwIDQ4em00MCAzMDRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjMyNS4yYy04LjEgOS4yLTIxLjEgMTMuMi0zMy41IDkuNGMtMTYuOS01LjMtMjYuMy0yMy4yLTIxLTQwLjFsMzAuOS05OS4xQzQ0LjkgMTU1LjMgODIgMTI4IDEyNCAxMjhoOGM0MiAwIDc5LjEgMjcuMyA5MS42IDY3LjRsMzAuOSA5OS4xYzUuMyAxNi45LTQuMSAzNC44LTIxIDQwLjFjLTEyLjQgMy45LTI1LjQtLjItMzMuNS05LjRWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM1MkgxMjB6TTMyMCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDY0IDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTQ0MCA0ODBWMzg0SDQyMi4yYy0xMC45IDAtMTguNi0xMC43LTE1LjItMjEuMWw5LTI2LjljLTMuMiAwLTYuNC0uNS05LjUtMS41Yy0xNi45LTUuMy0yNi4zLTIzLjItMjEtNDAuMWwyOS43LTk1LjJDNDI4LjQgMTU2LjkgNDY3LjYgMTI4IDUxMiAxMjhzODMuNiAyOC45IDk2LjggNzEuMmwyOS43IDk1LjJjNS4zIDE2LjktNC4xIDM0LjgtMjEgNDAuMWMtMy4yIDEtNi40IDEuNS05LjUgMS41bDkgMjYuOWMzLjUgMTAuNC00LjMgMjEuMS0xNS4yIDIxLjFINTg0djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NEg1MDR2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJldHdlZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxNjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE5MmgzMmMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44bDMyIDAgMCAxMjhjMCA1MyA0MyA5NiA5NiA5NkgyNzJ6TTMwNCA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmwxMTIgMGMxNy43IDAgMzIgMTQuMyAzMiAzMmwwIDEyOEg0MTZjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzkuMi05LjIgMTEuOS0yMi45IDYuOS0zNC45cy0xNi42LTE5LjgtMjkuNi0xOS44bC0zMiAwVjE5MmMwLTUzLTQzLTk2LTk2LTk2TDMwNCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmliYm9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMy4yIDMyMi44bDAgMC0xMzMuOS0xNDYgMCAwTDE0NiAxMTguNmM3LjgtNS4xIDM3LTIyLjYgNzgtMjIuNnM3MC4yIDE3LjQgNzggMjIuNkwyNDUuNyAxODBsODUuNiA5My40IDI3LjQtMjkuOGMxNi4zLTE3LjcgMjUuMy00MC45IDI1LjMtNjVWMTQ5LjFjMC0xOS01LjYtMzcuNS0xNi4xLTUzLjNMMzI3LjggMzUuNkMzMTIuOSAxMy40IDI4Ny45IDAgMjYxLjIgMGgtNzZjLTI1LjggMC01MC4xIDEyLjUtNjUuMSAzMy41TDgxLjkgODdDNzAuMyAxMDMuMiA2NCAxMjIuOCA2NCAxNDIuOFYxNjRjMCAyMy4yIDguNCA0NS42IDIzLjYgNjMuMWw1NiA2NC4yIDAgMCA4My4zIDk1LjYgMCAwIDkxLjggMTA1LjNjMTAgMTEuNSAyNi44IDE0LjMgNDAgNi44bDU0LjUtMzEuMWMxNy44LTEwLjIgMjEuNi0zNC4zIDcuNy00OS40bC04Ny43LTk1Ljd6TTIwNS4yIDQxMC42bC04My4zLTk1LjZMMjcuMSA0MTguNWMtMTMuOSAxNS4xLTEwLjEgMzkuMiA3LjcgNDkuNGw1NS4xIDMxLjVjMTMgNy40IDI5LjMgNC45IDM5LjQtNi4xbDc1LjktODIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmlnaHRGcm9tQnJhY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzcuOSAxMDUuOUw1MDAuNyAyMjguN2M3LjIgNy4yIDExLjMgMTcuMSAxMS4zIDI3LjNzLTQuMSAyMC4xLTExLjMgMjcuM0wzNzcuOSA0MDYuMWMtNi40IDYuNC0xNSA5LjktMjQgOS45Yy0xOC43IDAtMzMuOS0xNS4yLTMzLjktMzMuOWwwLTYyLjEtMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDAgMC02Mi4xYzAtMTguNyAxNS4yLTMzLjkgMzMuOS0zMy45YzkgMCAxNy42IDMuNiAyNCA5Ljl6TTE2MCA5Nkw5NiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCAyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJsNjQgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmwtNjQgMGMtNTMgMC05Ni00My05Ni05NkwwIDEyOEMwIDc1IDQzIDMyIDk2IDMybDY0IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpZ2h0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA5NmwzMjAgMFYzMmMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42czI1LjctMi4yIDM0LjkgNi45bDk2IDk2YzYgNiA5LjQgMTQuMSA5LjQgMjIuNnMtMy40IDE2LjYtOS40IDIyLjZsLTk2IDk2Yy05LjIgOS4yLTIyLjkgMTEuOS0zNC45IDYuOXMtMTkuOC0xNi42LTE5LjgtMjkuNlYxNjBMMzIgMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyek00ODAgMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE2MHY2NGMwIDEyLjktNy44IDI0LjYtMTkuOCAyOS42cy0yNS43IDIuMi0zNC45LTYuOWwtOTYtOTZjLTYtNi05LjQtMTQuMS05LjQtMjIuNnMzLjQtMTYuNiA5LjQtMjIuNmw5Ni05NmM5LjItOS4yIDIyLjktMTEuOSAzNC45LTYuOXMxOS44IDE2LjYgMTkuOCAyOS42bDAgNjRINDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSaWdodExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM0LjUgNDE0YzguOCAzLjggMTkgMiAyNi00LjZsMTQ0LTEzNmM0LjgtNC41IDcuNS0xMC44IDcuNS0xNy40cy0yLjctMTIuOS03LjUtMTcuNGwtMTQ0LTEzNmMtNy02LjYtMTcuMi04LjQtMjYtNC42cy0xNC41IDEyLjUtMTQuNSAyMmwwIDcyTDMyIDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmwyODggMCAwIDcyYzAgOS42IDUuNyAxOC4yIDE0LjUgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpZ2h0VG9CcmFja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNy45IDEwNS45TDM0MC43IDIyOC43YzcuMiA3LjIgMTEuMyAxNy4xIDExLjMgMjcuM3MtNC4xIDIwLjEtMTEuMyAyNy4zTDIxNy45IDQwNi4xYy02LjQgNi40LTE1IDkuOS0yNCA5LjljLTE4LjcgMC0zMy45LTE1LjItMzMuOS0zMy45bDAtNjIuMUwzMiAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJsMTI4IDAgMC02Mi4xYzAtMTguNyAxNS4yLTMzLjkgMzMuOS0zMy45YzkgMCAxNy42IDMuNiAyNCA5Ljl6TTM1MiA0MTZsNjQgMGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmw2NCAwYzUzIDAgOTYgNDMgOTYgOTZsMCAyNTZjMCA1My00MyA5Ni05NiA5NmwtNjQgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAyMDhjMCA3LjggNC40IDE4LjcgMTcuMSAzMC4zQzEyNi41IDIxNC4xIDE4OC45IDIwMCAyNTYgMjAwczEyOS41IDE0LjEgMTc0LjkgMzguM0M0NDMuNiAyMjYuNyA0NDggMjE1LjggNDQ4IDIwOGMwLTEyLjMtMTAuOC0zMi00Ny45LTUwLjZDMzY0LjkgMTM5LjggMzE0IDEyOCAyNTYgMTI4cy0xMDguOSAxMS44LTE0NC4xIDI5LjRDNzQuOCAxNzYgNjQgMTk1LjcgNjQgMjA4em0xOTIgNDBjLTQ3IDAtODkuMyA3LjYtMTIyLjkgMTkuN0MxNjYuMyAyODAuMiAyMDguOCAyODggMjU2IDI4OHM4OS43LTcuOCAxMjIuOS0yMC4zQzM0NS4zIDI1NS42IDMwMyAyNDggMjU2IDI0OHpNMCAyMDhjMC00OS42IDM5LjQtODUuOCA4My4zLTEwNy44QzEyOS4xIDc3LjMgMTkwLjMgNjQgMjU2IDY0czEyNi45IDEzLjMgMTcyLjcgMzYuMmM0My45IDIyIDgzLjMgNTguMiA4My4zIDEwNy44djk2YzAgNDkuNi0zOS40IDg1LjgtODMuMyAxMDcuOEMzODIuOSA0MzQuNyAzMjEuNyA0NDggMjU2IDQ0OHMtMTI2LjktMTMuMy0xNzIuNy0zNi4yQzM5LjQgMzg5LjggMCAzNTMuNiAwIDMwNFYyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWRCYXJyaWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjY2LjNMMTQ5LjIgOTZINjRWNjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNS4yIDk2SDMzMC44bC01LjQgMTAuN0wyMzQuOCAyODhoNzQuM2w1LjQtMTAuN0w0MDUuMiA5NnpNMzYyLjggMjg4aDc0LjNsNS40LTEwLjdMNTMzLjIgOTZINDU4LjhsLTUuNCAxMC43TDM2Mi44IDI4OHpNMjAyLjggOTZsLTUuNCAxMC43TDEwNi44IDI4OGg3NC4zbDUuNC0xMC43TDI3Ny4yIDk2SDIwMi44em0yODggMTkySDU3NlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY1My43TDQ5MC44IDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZEJyaWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMEg2MDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDM1MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ4MCAyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djY0YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0em0yNCAxODRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzODR6TTQ4MCA0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY2NGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNMzIgOTZIMjg4djY0SDI0OHY2NGg0MHY5NmMtNTMgMC05NiA0My05NiA5NnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNmMwLTUzLTQzLTk2LTk2LTk2VjIyNEg3MlYxNjBIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6bTE2OCA2NEgxMjB2NjRoODBWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEzLjIgMzJIMjg4Vjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJoNzQuOGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzIuMyAwIDQuNi0uMyA2LjgtLjdjLTQuNSAxNS41LTYuOCAzMS44LTYuOCA0OC43YzAgNS40IC4yIDEwLjcgLjcgMTZsLS43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0SDg2LjZDNTYuNSA0ODAgMzIgNDU1LjUgMzIgNDI1LjRjMC02LjIgMS4xLTEyLjQgMy4xLTE4LjJMMTUyLjkgNzQuNkMxNjIgNDkuMSAxODYuMSAzMiAyMTMuMiAzMnpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0yMTEuMy00My4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0ODAgMzg1LjRsLTI4LjctMjguN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNmw0MCA0MGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGw3Mi03MmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZENpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMy4yIDMySDI4OFY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjMyaDc0LjhjMjcuMSAwIDUxLjMgMTcuMSA2MC4zIDQyLjZsNDIuNyAxMjAuNmMtMTAuOS0yLjEtMjIuMi0zLjItMzMuOC0zLjJjLTU5LjUgMC0xMTIuMSAyOS42LTE0NCA3NC44VjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmMyLjMgMCA0LjYtLjMgNi44LS43Yy00LjUgMTUuNS02LjggMzEuOC02LjggNDguN2MwIDUuNCAuMiAxMC43IC43IDE2bC0uNyAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NEg4Ni42QzU2LjUgNDgwIDMyIDQ1NS41IDMyIDQyNS40YzAtNi4yIDEuMS0xMi40IDMuMS0xOC4yTDE1Mi45IDc0LjZDMTYyIDQ5LjEgMTg2LjEgMzIgMjEzLjIgMzJ6TTQ5NiAyMjRhMTQ0IDE0NCAwIDEgMSAwIDI4OCAxNDQgMTQ0IDAgMSAxIDAtMjg4em0wIDI0MGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bTAtMTkyYy04LjggMC0xNiA3LjItMTYgMTZ2ODBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyODhjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkQ2lyY2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEzLjIgMzJIMjg4Vjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMzJoNzQuOGMyNy4xIDAgNTEuMyAxNy4xIDYwLjMgNDIuNmw0Mi43IDEyMC42Yy0xMC45LTIuMS0yMi4yLTMuMi0zMy44LTMuMmMtNTkuNSAwLTExMi4xIDI5LjYtMTQ0IDc0LjhWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyYzIuMyAwIDQuNi0uMyA2LjgtLjdjLTQuNSAxNS41LTYuOCAzMS44LTYuOCA0OC43YzAgNS40IC4yIDEwLjcgLjcgMTZsLS43IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0SDg2LjZDNTYuNSA0ODAgMzIgNDU1LjUgMzIgNDI1LjRjMC02LjIgMS4xLTEyLjQgMy4xLTE4LjJMMTUyLjkgNzQuNkMxNjIgNDkuMSAxODYuMSAzMiAyMTMuMiAzMnpNNDk2IDIyNGExNDQgMTQ0IDAgMSAxIDAgMjg4IDE0NCAxNDQgMCAxIDEgMC0yODh6bTIyLjYgMTQ0bDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjItMjIuNiAwTDQ5NiAzNDUuNGwtMzYuNy0zNi43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42TDQ3My40IDM2OGwtMzYuNyAzNi43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBMNDk2IDM5MC42bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZMNTE4LjYgMzY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2FkTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJIMjEzLjJjLTI3LjEgMC01MS4zIDE3LjEtNjAuMyA0Mi42TDM1LjEgNDA3LjJjLTIuMSA1LjktMy4xIDEyLTMuMSAxOC4yQzMyIDQ1NS41IDU2LjUgNDgwIDg2LjYgNDgwSDI4OFY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY2NGgzMlYzNTJjMC0yMy43IDEyLjktNDQuNCAzMi01NS40VjI3MmMwLTU4LjMgNDQuNi0xMDYuMiAxMDEuNS0xMTEuNUw0ODcuMSA3NC42QzQ3OCA0OS4xIDQ1My45IDMyIDQyNi44IDMySDM1MlY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMnptNjQgMTkydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyem0xNzYgMTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NDhINDk2VjI3MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptLTgwIDMydjQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MmMwLTE3LjctMTQuMy0zMi0zMi0zMlYyNzJjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWRTcGlrZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTE2LjhjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlMMTkyIDI1NlYxMTYuOGMwLTE1LjggMjAuNS0yMiAyOS4zLTguOUwzMjAgMjU2VjExNi44YzAtMTUuOCAyMC41LTIyIDI5LjMtOC45TDQ0OCAyNTZWMTE2LjhjMC0xNS44IDIwLjUtMjIgMjkuMy04LjlMNjA2LjggMzAyLjJjMTQuMiAyMS4zLTEuMSA0OS43LTI2LjYgNDkuN0g1MTIgNDQ4IDM4NCAzMjAgMjU2IDE5MiA2NFYxMTYuOHpNMzIgMzg0SDYwOGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJIMTgxLjJjLTI3LjEgMC01MS4zIDE3LjEtNjAuMyA0Mi42TDMuMSA0MDcuMkMxLjEgNDEzIDAgNDE5LjIgMCA0MjUuNEMwIDQ1NS41IDI0LjUgNDgwIDU0LjYgNDgwSDI1NlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY2NEg1MjEuNGMzMC4yIDAgNTQuNi0yNC41IDU0LjYtNTQuNmMwLTYuMi0xLjEtMTIuNC0zLjEtMTguMkw0NTUuMSA3NC42QzQ0NiA0OS4xIDQyMS45IDMyIDM5NC44IDMySDMyMFY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMnptNjQgMTkydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2JvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY5Nkg0NzJjMzkuOCAwIDcyIDMyLjIgNzIgNzJWNDQwYzAgMzkuOC0zMi4yIDcyLTcyIDcySDE2OGMtMzkuOCAwLTcyLTMyLjItNzItNzJWMTY4YzAtMzkuOCAzMi4yLTcyIDcyLTcySDI4OFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMjA4IDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyMDh6bTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzA0em05NiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQwMHpNMjY0IDI1NmE0MCA0MCAwIDEgMCAtODAgMCA0MCA0MCAwIDEgMCA4MCAwem0xNTIgNDBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwek00OCAyMjRINjRWNDE2SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyNzJjMC0yNi41IDIxLjUtNDggNDgtNDh6bTU0NCAwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djk2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDU3NlYyMjRoMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTYuNiAzODQuOUwxMjUuNyAzNTRjLTguNS04LjUtMTEuNS0yMC44LTcuNy0zMi4yYzMtOC45IDctMjAuNSAxMS44LTMzLjhMMjQgMjg4Yy04LjYgMC0xNi42LTQuNi0yMC45LTEyLjFzLTQuMi0xNi43IC4yLTI0LjFsNTIuNS04OC41YzEzLTIxLjkgMzYuNS0zNS4zIDYxLjktMzUuM2w4Mi4zIDBjMi40LTQgNC44LTcuNyA3LjItMTEuM0MyODkuMS00LjEgNDExLjEtOC4xIDQ4My45IDUuM2MxMS42IDIuMSAyMC42IDExLjIgMjIuOCAyMi44YzEzLjQgNzIuOSA5LjMgMTk0LjgtMTExLjQgMjc2LjdjLTMuNSAyLjQtNy4zIDQuOC0xMS4zIDcuMnY4Mi4zYzAgMjUuNC0xMy40IDQ5LTM1LjMgNjEuOWwtODguNSA1Mi41Yy03LjQgNC40LTE2LjYgNC41LTI0LjEgLjJzLTEyLjEtMTIuMi0xMi4xLTIwLjlWMzgwLjhjLTE0LjEgNC45LTI2LjQgOC45LTM1LjcgMTEuOWMtMTEuMiAzLjYtMjMuNCAuNS0zMS44LTcuOHpNMzg0IDE2OGE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvdGF0ZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDguNSAyMjRINDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjcyYzAtOS43IDUuOC0xOC41IDE0LjgtMjIuMnMxOS4zLTEuNyAyNi4yIDUuMkw5OC42IDk2LjZjODcuNi04Ni41IDIyOC43LTg2LjIgMzE1LjggMWM4Ny41IDg3LjUgODcuNSAyMjkuMyAwIDMxNi44cy0yMjkuMyA4Ny41LTMxNi44IDBjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBjNjIuNSA2Mi41IDE2My44IDYyLjUgMjI2LjMgMHM2Mi41LTE2My44IDAtMjI2LjNjLTYyLjItNjIuMi0xNjIuNy02Mi41LTIyNS4zLTFMMTg1IDE4M2M2LjkgNi45IDguOSAxNy4yIDUuMiAyNi4ycy0xMi41IDE0LjgtMjIuMiAxNC44SDQ4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvdGF0ZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2My41IDIyNEg0NzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNzJjMC05LjctNS44LTE4LjUtMTQuOC0yMi4ycy0xOS4zLTEuNy0yNi4yIDUuMkw0MTMuNCA5Ni42Yy04Ny42LTg2LjUtMjI4LjctODYuMi0zMTUuOCAxYy04Ny41IDg3LjUtODcuNSAyMjkuMyAwIDMxNi44czIyOS4zIDg3LjUgMzE2LjggMGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGMtNjIuNSA2Mi41LTE2My44IDYyLjUtMjI2LjMgMHMtNjIuNS0xNjMuOCAwLTIyNi4zYzYyLjItNjIuMiAxNjIuNy02Mi41IDIyNS4zLTFMMzI3IDE4M2MtNi45IDYuOS04LjkgMTcuMi01LjIgMjYuMnMxMi41IDE0LjggMjIuMiAxNC44SDQ2My41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb3RhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQyLjkgMTQyLjljNjIuMi02Mi4yIDE2Mi43LTYyLjUgMjI1LjMtMUwzMjcgMTgzYy02LjkgNi45LTguOSAxNy4yLTUuMiAyNi4yczEyLjUgMTQuOCAyMi4yIDE0LjhINDYzLjVjMCAwIDAgMCAwIDBINDcyYzEzLjMgMCAyNC0xMC43IDI0LTI0VjcyYzAtOS43LTUuOC0xOC41LTE0LjgtMjIuMnMtMTkuMy0xLjctMjYuMiA1LjJMNDEzLjQgOTYuNmMtODcuNi04Ni41LTIyOC43LTg2LjItMzE1LjggMUM3My4yIDEyMiA1NS42IDE1MC43IDQ0LjggMTgxLjRjLTUuOSAxNi43IDIuOSAzNC45IDE5LjUgNDAuOHMzNC45LTIuOSA0MC44LTE5LjVjNy43LTIxLjggMjAuMi00Mi4zIDM3LjgtNTkuOHpNMTYgMzEydjcuNiAuN1Y0NDBjMCA5LjcgNS44IDE4LjUgMTQuOCAyMi4yczE5LjMgMS43IDI2LjItNS4ybDQxLjYtNDEuNmM4Ny42IDg2LjUgMjI4LjcgODYuMiAzMTUuOC0xYzI0LjQtMjQuNCA0Mi4xLTUzLjEgNTIuOS04My43YzUuOS0xNi43LTIuOS0zNC45LTE5LjUtNDAuOHMtMzQuOSAyLjktNDAuOCAxOS41Yy03LjcgMjEuOC0yMC4yIDQyLjMtMzcuOCA1OS44Yy02Mi4yIDYyLjItMTYyLjcgNjIuNS0yMjUuMyAxTDE4NSAzMjljNi45LTYuOSA4LjktMTcuMiA1LjItMjYuMnMtMTIuNS0xNC44LTIyLjItMTQuOEg0OC40aC0uN0g0MGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA5NmMwIDUwLjItNTkuMSAxMjUuMS04NC42IDE1NWMtMy44IDQuNC05LjQgNi4xLTE0LjUgNUgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoOTZjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZIMTM5LjZjOC43LTkuOSAxOS4zLTIyLjYgMzAtMzYuOGM2LjMtOC40IDEyLjgtMTcuNiAxOS0yNy4ySDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMjBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZoMzkuOGMtMjEtMzEuNS0zOS44LTY3LjctMzkuOC05NmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2ek0xMTcuMSA0ODkuMWMtMy44IDQuMy03LjIgOC4xLTEwLjEgMTEuM2wtMS44IDItLjItLjJjLTYgNC42LTE0LjYgNC0yMC0xLjhDNTkuOCA0NzMgMCA0MDIuNSAwIDM1MmMwLTUzIDQzLTk2IDk2LTk2czk2IDQzIDk2IDk2YzAgMzAtMjEuMSA2Ny00My41IDk3LjljLTEwLjcgMTQuNy0yMS43IDI4LTMwLjggMzguNWwtLjYgLjd6TTEyOCAzNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNNDE2IDEyOGEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyYzIyOS44IDAgNDE2IDE4Ni4yIDQxNiA0MTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJDMzg0IDI1My42IDIyNi40IDk2IDMyIDk2QzE0LjMgOTYgMCA4MS43IDAgNjR6TTAgNDE2YTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDAgNDE2ek0zMiAxNjBjMTU5LjEgMCAyODggMTI4LjkgMjg4IDI4OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTEyMy43LTEwMC4zLTIyNC0yMjQtMjI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWJsZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJDNzguMyAzMiA2NCA0Ni4zIDY0IDY0VjI1NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NHYzMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjQxNkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTI4VjMyMEgyNDBjNzkuNSAwIDE0NC02NC41IDE0NC0xNDRzLTY0LjUtMTQ0LTE0NC0xNDRIOTZ6TTI0MCAyNTZIMTI4Vjk2SDI0MGM0NC4yIDAgODAgMzUuOCA4MCA4MHMtMzUuOCA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDY0SDU2IDgwVjg4djg4IDgwIDgwIDg4IDI0SDU2IDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDhWMzYwSDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDhWMjgwSDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDhWMjAwSDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0aDhWMTEySDI0QzEwLjcgMTEyIDAgMTAxLjMgMCA4OFMxMC43IDY0IDI0IDY0em04OCAwSDUyOFY0NDhIMTEyVjY0ek02NDAgODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRoLTh2NDBoOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGgtOHYzMmg4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0aC04djMyaDhjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRoLTh2NDBoOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg1ODQgNTYwVjQyNCAzMzYgMjU2IDE3NiA4OCA2NGgyNCAzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXJDb21iaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMiA0NjguOUMyLjcgNDkzLjEgMjMuMSA1MTIgNDggNTEybDk2IDAgMzIwIDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC05NmMwLTI2LjUtMjEuNS00OC00OC00OGwtNDggMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtNjQgMCAwIDgwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtODAtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNjQtODAgMGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmw4MCAwIDAtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhMNDggMEMyMS41IDAgMCAyMS41IDAgNDhMMCAzNjhsMCA5NmMwIDEuNyAuMSAzLjMgLjIgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlckhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMzZjMCAyNi41IDIxLjUgNDggNDggNDhsNTQ0IDBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhsMC0xNjBjMC0yNi41LTIxLjUtNDgtNDgtNDhsLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDAgMCA4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTgwLTY0IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4TDAgMzM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlclZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDIwOGMyNi41IDAgNDggMjEuNSA0OCA0OFY5NkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoODB2NjRIMTc2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2aDgwdjY0SDE3NmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg4MHY2NEgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoODB2NDhjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcuOSA0OTQuMWMtMTguNyAxOC43LTQ5LjEgMTguNy02Ny45IDBMMTcuOSA0MDEuOWMtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlsNTAuNy01MC43IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNDEuNC00MS40IDQ4IDQ4YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNmwtNDgtNDggNTAuNy01MC43YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDkyLjEgOTIuMWMxOC43IDE4LjcgMTguNyA0OS4xIDAgNjcuOUwxNzcuOSA0OTQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVwZWVTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJoODBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRjMCA1OC44LTM1LjIgMTA5LjMtODUuNyAxMzEuN2w1MS40IDEyOC40YzYuNiAxNi40LTEuNCAzNS0xNy44IDQxLjZzLTM1LTEuNC00MS42LTE3LjhMMTA2LjMgMzIwSDY0VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyODggNjR6TTY0IDI1Nmg0OGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MEg2NFYyNTZ6bTI1Ni41IDE2LjRjLS45IDYgMCA4LjcgLjQgOS44Yy40IDEuMSAxLjQgMi42IDQuMiA0LjljNy4yIDUuNyAxOC43IDEwIDM3LjkgMTYuOGwxLjMgLjVjMTYgNS42IDM4LjcgMTMuNiA1NS43IDI4LjFjOS41IDguMSAxNy45IDE4LjYgMjMuMSAzMi4zYzUuMSAxMy43IDYuMSAyOC41IDMuOCA0NGMtNC4yIDI4LjEtMjAuNSA0OS4zLTQzLjggNjAuOWMtMjIuMSAxMS00OC4xIDEyLjUtNzMuMiA4bC0uMiAwIDAgMGMtOS4zLTEuOC0yMC41LTUuNy0yOS4zLTljLTYtMi4zLTEyLjYtNC45LTE3LjctNi45bDAgMGMtMi41LTEtNC42LTEuOC02LjMtMi41Yy0xNi41LTYuNC0yNC42LTI1LTE4LjItNDEuNHMyNC45LTI0LjYgNDEuNC0xOC4yYzIuNiAxIDUuMiAyIDcuOSAzLjFsMCAwYzQuOCAxLjkgOS44IDMuOSAxNS40IDZjOC44IDMuMyAxNS4zIDUuNCAxOC43IDZjMTUuNyAyLjggMjYuNyAuOCAzMi45LTIuM2M1LTIuNSA4LTYgOS4xLTEzYzEtNi45IC4yLTEwLjUtLjUtMTIuM2MtLjYtMS43LTEuOC0zLjYtNC41LTUuOWMtNi45LTUuOC0xOC4yLTEwLjQtMzYuOS0xN2wtMy0xLjFjLTE1LjUtNS40LTM3LTEzLTUzLjMtMjUuOWMtOS41LTcuNS0xOC4zLTE3LjYtMjMuNy0zMWMtNS41LTEzLjQtNi42LTI4LTQuNC00My4yYzguNC01Ny4xIDY3LTc4IDExNi45LTY4LjljNi45IDEuMyAyNy4zIDUuOCAzNS40IDguNGMxNi45IDUuMiAyNi4zIDIzLjIgMjEuMSA0MC4xcy0yMy4yIDI2LjMtNDAuMSAyMS4xYy00LjctMS40LTIyLjMtNS41LTI3LjktNi41Yy0xNC42LTIuNy0yNS44LS40LTMyLjYgMy4yYy02LjMgMy4zLTguOSA3LjYtOS41IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdXBpYWhTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJoODBjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDRjMCA1OC44LTM1LjIgMTA5LjMtODUuNyAxMzEuN2w1MS40IDEyOC40YzYuNiAxNi40LTEuNCAzNS0xNy44IDQxLjZzLTM1LTEuNC00MS42LTE3LjhMMTA2LjMgMzIwSDY0VjQ0OGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyODggNjR6TTY0IDI1Nmg0OGM0NC4yIDAgODAtMzUuOCA4MC04MHMtMzUuOC04MC04MC04MEg2NFYyNTZ6bTI1Ni05Nmg4MGM2MS45IDAgMTEyIDUwLjEgMTEyIDExMnMtNTAuMSAxMTItMTEyIDExMkgzNTJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzUyIDE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptODAgMTYwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4SDM1MnY5Nmg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05OS4xIDEwNS40Qzc5IDExNCA2OC4yIDEyNy4yIDY1LjIgMTQ0LjhjLTIuNCAxNC4xLS43IDIzLjIgMiAyOS40YzIuOCA2LjMgNy45IDEyLjQgMTYuNyAxOC42YzE5LjIgMTMuNCA0OC4zIDIyLjEgODQuOSAzMi41YzEgLjMgMS45IC42IDIuOSAuOGMzMi43IDkuMyA3MiAyMC42IDEwMC45IDQwLjdjMTUuNyAxMC45IDI5LjkgMjUuNSAzOC42IDQ1LjFjOC44IDE5LjggMTAuOCA0MiA2LjYgNjYuM2MtNy4zIDQyLjUtMzUuMyA3MS43LTcxLjggODcuM2MtMzUuNCAxNS4yLTc5LjEgMTcuOS0xMjMuNyAxMC45bC0uMiAwIDAgMGMtMjQtMy45LTYyLjctMTcuMS04Ny42LTI1LjZjLTQuOC0xLjctOS4yLTMuMS0xMi44LTQuM0M1LjEgNDQwLjgtMy45IDQyMi43IDEuNiA0MDUuOXMyMy43LTI1LjggNDAuNS0yMC4zYzQuOSAxLjYgMTAuMiAzLjQgMTUuOSA1LjRjMjUuNCA4LjYgNTYuNCAxOS4yIDc0LjQgMjIuMWMzNi44IDUuNyA2Ny41IDIuNSA4OC41LTYuNWMyMC4xLTguNiAzMC44LTIxLjggMzMuOS0zOS40YzIuNC0xNC4xIC43LTIzLjItMi0yOS40Yy0yLjgtNi4zLTcuOS0xMi40LTE2LjctMTguNmMtMTkuMi0xMy40LTQ4LjMtMjIuMS04NC45LTMyLjVjLTEtLjMtMS45LS42LTIuOS0uOGMtMzIuNy05LjMtNzItMjAuNi0xMDAuOS00MC43Yy0xNS43LTEwLjktMjkuOS0yNS41LTM4LjYtNDUuMWMtOC44LTE5LjgtMTAuOC00Mi02LjYtNjYuM2wzMS41IDUuNUwyLjEgMTMzLjlDOS40IDkxLjQgMzcuNCA2Mi4yIDczLjkgNDYuNmMzNS40LTE1LjIgNzkuMS0xNy45IDEyMy43LTEwLjljMTMgMiA1Mi40IDkuNiA2Ni42IDEzLjRjMTcuMSA0LjUgMjcuMiAyMi4xIDIyLjcgMzkuMnMtMjIuMSAyNy4yLTM5LjIgMjIuN2MtMTEuMi0zLTQ4LjEtMTAuMi02MC4xLTEybDQuOS0zMS41LTQuOSAzMS41Yy0zNi45LTUuOC02Ny41LTIuNS04OC42IDYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Fja0RvbGxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgOTZIMTkyTDE0NC42IDI0LjlDMTM3LjUgMTQuMiAxNDUuMSAwIDE1Ny45IDBIMzU0LjFjMTIuOCAwIDIwLjQgMTQuMiAxMy4zIDI0LjlMMzIwIDk2ek0xOTIgMTI4SDMyMGMzLjggMi41IDguMSA1LjMgMTMgOC40QzM4OS43IDE3Mi43IDUxMiAyNTAuOSA1MTIgNDE2YzAgNTMtNDMgOTYtOTYgOTZIOTZjLTUzIDAtOTYtNDMtOTYtOTZDMCAyNTAuOSAxMjIuMyAxNzIuNyAxNzkgMTM2LjRsMCAwIDAgMGM0LjgtMy4xIDkuMi01LjkgMTMtOC40em04NCA4OGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjB2MTRjLTcuNiAxLjctMTUuMiA0LjQtMjIuMiA4LjVjLTEzLjkgOC4zLTI1LjkgMjIuOC0yNS44IDQzLjljLjEgMjAuMyAxMiAzMy4xIDI0LjcgNDAuN2MxMSA2LjYgMjQuNyAxMC44IDM1LjYgMTRsMS43IC41YzEyLjYgMy44IDIxLjggNi44IDI4IDEwLjdjNS4xIDMuMiA1LjggNS40IDUuOSA4LjJjLjEgNS0xLjggOC01LjkgMTAuNWMtNSAzLjEtMTIuOSA1LTIxLjQgNC43Yy0xMS4xLS40LTIxLjUtMy45LTM1LjEtOC41Yy0yLjMtLjgtNC43LTEuNi03LjItMi40Yy0xMC41LTMuNS0yMS44IDIuMi0yNS4zIDEyLjZzMi4yIDIxLjggMTIuNiAyNS4zYzEuOSAuNiA0IDEuMyA2LjEgMi4xbDAgMCAwIDBjOC4zIDIuOSAxNy45IDYuMiAyOC4yIDguNFY0MjRjMCAxMSA5IDIwIDIwIDIwczIwLTkgMjAtMjBWNDEwLjJjOC0xLjcgMTYtNC41IDIzLjItOWMxNC4zLTguOSAyNS4xLTI0LjEgMjQuOC00NWMtLjMtMjAuMy0xMS43LTMzLjQtMjQuNi00MS42Yy0xMS41LTcuMi0yNS45LTExLjYtMzcuMS0xNWwwIDAtLjctLjJjLTEyLjgtMy45LTIxLjktNi43LTI4LjMtMTAuNWMtNS4yLTMuMS01LjMtNC45LTUuMy02LjdjMC0zLjcgMS40LTYuNSA2LjItOS4zYzUuNC0zLjIgMTMuNi01LjEgMjEuNS01YzkuNiAuMSAyMC4yIDIuMiAzMS4yIDUuMmMxMC43IDIuOCAyMS42LTMuNSAyNC41LTE0LjJzLTMuNS0yMS42LTE0LjItMjQuNWMtNi41LTEuNy0xMy43LTMuNC0yMS4xLTQuN1YyMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhY2tYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgOTZIMzIwbDQ3LjQtNzEuMUMzNzQuNSAxNC4yIDM2Ni45IDAgMzU0LjEgMEgxNTcuOWMtMTIuOCAwLTIwLjQgMTQuMi0xMy4zIDI0LjlMMTkyIDk2em0xMjggMzJIMTkyYy0zLjggMi41LTguMSA1LjMtMTMgOC40bDAgMCAwIDBDMTIyLjMgMTcyLjcgMCAyNTAuOSAwIDQxNmMwIDUzIDQzIDk2IDk2IDk2SDQxNmM1MyAwIDk2LTQzIDk2LTk2YzAtMTY1LjEtMTIyLjMtMjQzLjMtMTc5LTI3OS42Yy00LjgtMy4xLTkuMi01LjktMTMtOC40ek0yODkuOSAzMzZsNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTQ3IDQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWlsYm9hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMTZjMC03IDQuNS0xMy4yIDExLjItMTUuM3MxMy45IC40IDE3LjkgNi4xbDIyNCAzMjBjMy40IDQuOSAzLjggMTEuMyAxLjEgMTYuNnMtOC4yIDguNi0xNC4yIDguNkgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNlYxNnpNMjEyLjEgOTYuNWM3IDEuOSAxMS45IDguMiAxMS45IDE1LjVWMzM2YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtNS43IDAtMTEtMy0xMy44LThzLTIuOS0xMS0uMS0xNmwxMjgtMjI0YzMuNi02LjMgMTEtOS40IDE4LTcuNXpNNS43IDQwNC4zQzIuOCAzOTQuMSAxMC41IDM4NCAyMS4xIDM4NEg1NTQuOWMxMC42IDAgMTguMyAxMC4xIDE1LjQgMjAuM2wtNCAxNC4zQzU1MC43IDQ3My45IDUwMC40IDUxMiA0NDMgNTEySDEzM0M3NS42IDUxMiAyNS4zIDQ3My45IDkuNyA0MTguN2wtNC0xNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXRlbGxpdGVEaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkMzODMuMSAwIDUxMiAxMjguOSA1MTIgMjg4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyQzQ0OCAxNjQuMyAzNDcuNyA2NCAyMjQgNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyek02MC42IDIyMC42TDE2NC43IDMyNC43bDI4LjQtMjguNGMtLjctMi42LTEuMS01LjQtMS4xLTguM2MwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyYy0yLjkgMC01LjYtLjQtOC4zLTEuMWwtMjguNCAyOC40TDI5MS40IDQ1MS40YzE0LjUgMTQuNSAxMS44IDM4LjgtNy4zIDQ2LjNDMjYwLjUgNTA2LjkgMjM0LjkgNTEyIDIwOCA1MTJDOTMuMSA1MTIgMCA0MTguOSAwIDMwNGMwLTI2LjkgNS4xLTUyLjUgMTQuNC03Ni4xYzcuNS0xOSAzMS44LTIxLjggNDYuMy03LjN6TTIyNCA5NmMxMDYgMCAxOTIgODYgMTkyIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2F0ZWxsaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMyA3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtOTYgOTZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDg5LjQgODkuNC0xNS41IDE1LjVDMTUyLjMgMjMwLjQgMTI0LjkgMjI0IDk2IDIyNGMtMzEuNyAwLTYxLjUgNy43LTg3LjggMjEuMmMtOSA0LjctMTAuMyAxNi43LTMuMSAyMy44TDExMi43IDM3Ni43IDk2LjMgMzkzLjFjLTIuNi0uNy01LjQtMS4xLTguMy0xLjFjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTIuOS0uNC01LjYtMS4xLTguM2wxNi40LTE2LjRMMjQyLjkgNTA2LjljNy4yIDcuMiAxOS4yIDUuOSAyMy44LTMuMUMyODAuMyA0NzcuNSAyODggNDQ3LjcgMjg4IDQxNmMwLTI4LjktNi40LTU2LjMtMTcuOC04MC45bDE1LjUtMTUuNUwzNzUgNDA5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDk2LTk2YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC04OS40LTg5LjQgNTUtNTVjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTQ4LTQ4Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNTUgNTVMMjMzIDd6bTE1OSAzNTFsLTcyLjQtNzIuNCA2Mi4xLTYyLjFMNDU0LjEgMjk2IDM5MiAzNTguMXpNMjI2LjMgMTkyLjRMMTUzLjkgMTIwIDIxNiA1Ny45bDcyLjQgNzIuNC02Mi4xIDYyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjYWxlQmFsYW5jZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDUxMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzOTguNGMtNS4yIDI1LjgtMjIuOSA0Ny4xLTQ2LjQgNTcuM1Y0NDhINTEyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyMCAxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMjg4VjE1My4zYy0yMy41LTEwLjMtNDEuMi0zMS42LTQ2LjQtNTcuM0gxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMjU2YzE0LjYtMTkuNCAzNy44LTMyIDY0LTMyczQ5LjQgMTIuNiA2NCAzMnptNTUuNiAyODhINTg0LjRMNTEyIDE5NS44IDQzOS42IDMyMHpNNTEyIDQxNmMtNjIuOSAwLTExNS4yLTM0LTEyNi03OC45Yy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xQzYyNy4yIDM4MiA1NzQuOSA0MTYgNTEyIDQxNnpNMTI2LjggMTk1LjhMNTQuNCAzMjBIMTk5LjNMMTI2LjggMTk1Ljh6TS45IDMzNy4xYy0yLjYtMTEgMS0yMi4zIDYuNy0zMi4xbDk1LjItMTYzLjJjNS04LjYgMTQuMi0xMy44IDI0LjEtMTMuOHMxOS4xIDUuMyAyNC4xIDEzLjhsOTUuMiAxNjMuMmM1LjcgOS44IDkuMyAyMS4xIDYuNyAzMi4xQzI0MiAzODIgMTg5LjcgNDE2IDEyNi44IDQxNlMxMS43IDM4MiAuOSAzMzcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NhbGVVbmJhbGFuY2VkRmxpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTcuOSA2Mi40Yy0xNi44LTUuNi0yNS44LTIzLjctMjAuMi00MC41czIzLjctMjUuOCA0MC41LTIwLjJsMTEzIDM3LjdDMjY1IDE1LjggMjkwLjcgMCAzMjAgMGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDMtLjIgNS45LS41IDguOGwxMjIuNiA0MC45YzE2LjggNS42IDI1LjggMjMuNyAyMC4yIDQwLjVzLTIzLjcgMjUuOC00MC41IDIwLjJMMzY2LjQgMTQ1LjJjLTQuNSAzLjItOS4zIDUuOS0xNC40IDguMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMySDI4OFYxNTMuM2MtMjEtOS4yLTM3LjItMjctNDQuMi00OWwtMTI1LjktNDJ6TTIwMC40IDI4OEwxMjggMTYzLjggNTUuNiAyODhIMjAwLjR6TTEyOCAzODRDNjUuMSAzODQgMTIuOCAzNTAgMiAzMDUuMWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMUMyNDMuMiAzNTAgMTkwLjkgMzg0IDEyOCAzODR6bTM4Mi44LTkyLjJMNDM4LjQgNDE2SDU4My4zTDUxMC44IDI5MS44em0xMjYgMTQxLjNDNjI2IDQ3OCA1NzMuNyA1MTIgNTEwLjggNTEycy0xMTUuMi0zNC0xMjYtNzguOWMtMi42LTExIDEtMjIuMyA2LjctMzIuMWw5NS4yLTE2My4yYzUtOC42IDE0LjItMTMuOCAyNC4xLTEzLjhzMTkuMSA1LjMgMjQuMSAxMy44bDk1LjIgMTYzLjJjNS43IDkuOCA5LjMgMjEuMSA2LjcgMzIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NhbGVVbmJhbGFuY2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyMi4xIDYyLjRjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNVM1MTguNi0zLjkgNTAxLjkgMS42bC0xMTMgMzcuN0MzNzUgMTUuOCAzNDkuMyAwIDMyMCAwYy00NC4yIDAtODAgMzUuOC04MCA4MGMwIDMgLjIgNS45IC41IDguOEwxMTcuOSAxMjkuNmMtMTYuOCA1LjYtMjUuOCAyMy43LTIwLjIgNDAuNXMyMy43IDI1LjggNDAuNSAyMC4ybDEzNS41LTQ1LjJjNC41IDMuMiA5LjMgNS45IDE0LjQgOC4yVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzUyVjE1My4zYzIxLTkuMiAzNy4yLTI3IDQ0LjItNDlsMTI1LjktNDJ6TTQzOS42IDI4OEw1MTIgMTYzLjggNTg0LjQgMjg4SDQzOS42ek01MTIgMzg0YzYyLjkgMCAxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDUzNi4xIDEwOS44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMMzkyLjcgMjczLjFjLTUuNyA5LjgtOS4zIDIxLjEtNi43IDMyLjFDMzk2LjggMzUwIDQ0OS4xIDM4NCA1MTIgMzg0ek0xMjkuMiAyOTEuOEwyMDEuNiA0MTZINTYuN2w3Mi40LTEyNC4yek0zLjIgNDMzLjFDMTQgNDc4IDY2LjMgNTEyIDEyOS4yIDUxMnMxMTUuMi0zNCAxMjYtNzguOWMyLjYtMTEtMS0yMi4zLTYuNy0zMi4xTDE1My4yIDIzNy44Yy01LTguNi0xNC4yLTEzLjgtMjQuMS0xMy44cy0xOS4xIDUuMy0yNC4xIDEzLjhMOS45IDQwMS4xYy01LjcgOS44LTkuMyAyMS4xLTYuNyAzMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2xDaXJjbGVDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzcuOCA1LjRDMzI3LTEuOCAzMTMtMS44IDMwMi4yIDUuNEwxNjYuMyA5Nkg0OEMyMS41IDk2IDAgMTE3LjUgMCAxNDRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDMyMHYwSDI1NlY0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjMgMGguNWMzLjQtMzcuNyAxOC43LTcyLjEgNDIuMi05OS4xQzM1MC4yIDI2MCAzMzUuNiAyNjQgMzIwIDI2NGMtNDguNiAwLTg4LTM5LjQtODgtODhzMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMTguMy01LjYgMzUuMy0xNS4xIDQ5LjRjMjktMjEgNjQuNi0zMy40IDEwMy4xLTMzLjRjNTkuNSAwIDExMi4xIDI5LjYgMTQ0IDc0LjhWMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ3My43TDMzNy44IDUuNHpNOTYgMTkyaDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYyMDhjMC04LjggNy4yLTE2IDE2LTE2em0wIDEyOGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnpNMzIwIDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMzZWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnpNNjQwIDM2OGExNDQgMTQ0IDAgMSAwIC0yODggMCAxNDQgMTQ0IDAgMSAwIDI4OCAwem0tOTkuMy00My4zYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNmwtNzIgNzJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwbC00MC00MGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwTDQ4MCAzODUuNGw2MC43LTYwLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaG9vbENpcmNsZUV4Y2xhbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNy44IDUuNEMzMjctMS44IDMxMy0xLjggMzAyLjIgNS40TDE2Ni4zIDk2SDQ4QzIxLjUgOTYgMCAxMTcuNSAwIDE0NFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMzIwdjBIMjU2VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NGwuMyAwaC41YzMuNC0zNy43IDE4LjctNzIuMSA0Mi4yLTk5LjFDMzUwLjIgMjYwIDMzNS42IDI2NCAzMjAgMjY0Yy00OC42IDAtODgtMzkuNC04OC04OHMzOS40LTg4IDg4LTg4czg4IDM5LjQgODggODhjMCAxOC4zLTUuNiAzNS4zLTE1LjEgNDkuNGMyOS0yMSA2NC42LTMzLjQgMTAzLjEtMzMuNGM1OS41IDAgMTEyLjEgMjkuNiAxNDQgNzQuOFYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhINDczLjdMMzM3LjggNS40ek05NiAxOTJoMzJjOC44IDAgMTYgNy4yIDE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNkg5NmMtOC44IDAtMTYtNy4yLTE2LTE2VjIwOGMwLTguOCA3LjItMTYgMTYtMTZ6bTAgMTI4aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2ek0zMjAgMTI4Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDMzNlYxNDRjMC04LjgtNy4yLTE2LTE2LTE2ek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2xDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzcuOCA1LjRDMzI3LTEuOCAzMTMtMS44IDMwMi4yIDUuNEwxNjYuMyA5Nkg0OEMyMS41IDk2IDAgMTE3LjUgMCAxNDRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDMyMHYwSDI1NlY0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRsLjMgMGguNWMzLjQtMzcuNyAxOC43LTcyLjEgNDIuMi05OS4xQzM1MC4yIDI2MCAzMzUuNiAyNjQgMzIwIDI2NGMtNDguNiAwLTg4LTM5LjQtODgtODhzMzkuNC04OCA4OC04OHM4OCAzOS40IDg4IDg4YzAgMTguMy01LjYgMzUuMy0xNS4xIDQ5LjRjMjktMjEgNjQuNi0zMy40IDEwMy4xLTMzLjRjNTkuNSAwIDExMi4xIDI5LjYgMTQ0IDc0LjhWMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ3My43TDMzNy44IDUuNHpNOTYgMTkyaDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYyMDhjMC04LjggNy4yLTE2IDE2LTE2em0wIDEyOGgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnpNMzIwIDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgzMzZWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnpNNDk2IDUxMmExNDQgMTQ0IDAgMSAwIDAtMjg4IDE0NCAxNDQgMCAxIDAgMCAyODh6bTIyLjYtMTQ0bDM2LjcgMzYuN2M2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwTDQ5NiAzOTAuNmwtMzYuNyAzNi43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42TDQ3My40IDM2OGwtMzYuNy0zNi43Yy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMNDk2IDM0NS40bDM2LjctMzYuN2M2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZMNTE4LjYgMzY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2xGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAwSDQwMGM4LjggMCAxNiA3LjIgMTYgMTZWODBjMCA4LjgtNy4yIDE2LTE2IDE2SDMyMC43bDg5LjYgNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEgzMzZWNDAwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4VjUxMkg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0SDE2NS43TDI1NiA5NS41VjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem00OCAyNDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNODAgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDgwem0zNjggMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2SDQ2NGMtOC44IDAtMTYgNy4yLTE2IDE2ek04MCAzNTJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM2OGMwLTguOC03LjItMTYtMTYtMTZIODB6bTM4NCAwYy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2SDQ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Nob29sTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuMiA1LjRjMTAuNy03LjIgMjQuOC03LjIgMzUuNSAwTDQ3My43IDk2SDU5MmMyNi41IDAgNDggMjEuNSA0OCA0OFYyNzJjMC02MS45LTUwLjEtMTEyLTExMi0xMTJzLTExMiA1MC4xLTExMiAxMTJ2MjQuNmMtMTkuMSAxMS4xLTMyIDMxLjctMzIgNTUuNEgzMjAuM2wtLjMgMGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2OTZoNjR2MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDE2Ni4zTDMwMi4yIDUuNHpNODAgMjA4djY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkg5NmMtOC44IDAtMTYgNy4yLTE2IDE2em0wIDEyOHY2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMzNmMwLTguOC03LjItMTYtMTYtMTZIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnptMjQwLTcyYTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMSAwIDAgMTc2em0xNi0xMjB2MTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzIwYy04LjggMC0xNi03LjItMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bTE5MiA5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDhoNjRWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MHY0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJINDQ4Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYzNTJjMC0xNy43IDE0LjMtMzIgMzItMzJWMjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM3LjggNS40QzMyNy0xLjggMzEzLTEuOCAzMDIuMiA1LjRMMTY2LjMgOTZINDhDMjEuNSA5NiAwIDExNy41IDAgMTQ0VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgyNTZWNDE2YzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR2OTZINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjE0NGMwLTI2LjUtMjEuNS00OC00OC00OEg0NzMuN0wzMzcuOCA1LjR6TTk2IDE5MmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDk2Yy04LjggMC0xNi03LjItMTYtMTZWMjA4YzAtOC44IDcuMi0xNiAxNi0xNnptNDAwIDE2YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDUxMmMtOC44IDAtMTYtNy4yLTE2LTE2VjIwOHpNOTYgMzIwaDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em00MDAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZINTEyYy04LjggMC0xNi03LjItMTYtMTZWMzM2ek0yMzIgMTc2YTg4IDg4IDAgMSAxIDE3NiAwIDg4IDg4IDAgMSAxIC0xNzYgMHptODgtNDhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMzM2VjE0NGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjaXNzb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxOTJsLTM5LjUtMzkuNWM0LjktMTIuNiA3LjUtMjYuMiA3LjUtNDAuNUMyMjQgNTAuMSAxNzMuOSAwIDExMiAwUzAgNTAuMSAwIDExMnM1MC4xIDExMiAxMTIgMTEyYzE0LjMgMCAyNy45LTIuNyA0MC41LTcuNUwxOTIgMjU2bC0zOS41IDM5LjVjLTEyLjYtNC45LTI2LjItNy41LTQwLjUtNy41QzUwLjEgMjg4IDAgMzM4LjEgMCA0MDBzNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEyYzAtMTQuMy0yLjctMjcuOS03LjUtNDAuNUw0OTkuMiA3Ni44YzcuMS03LjEgNy4xLTE4LjUgMC0yNS42Yy0yOC4zLTI4LjMtNzQuMS0yOC4zLTEwMi40IDBMMjU2IDE5MnptMjIuNiAxNTAuNkwzOTYuOCA0NjAuOGMyOC4zIDI4LjMgNzQuMSAyOC4zIDEwMi40IDBjNy4xLTcuMSA3LjEtMTguNSAwLTI1LjZMMzQyLjYgMjc4LjZsLTY0IDY0ek02NCAxMTJhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptNDggMjQwYTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyZXdkcml2ZXJXcmVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzguNiA1QzY5LjEtMi40IDU1LjYtMS41IDQ3IDdMNyA0N2MtOC41IDguNS05LjQgMjItMi4xIDMxLjZsODAgMTA0YzQuNSA1LjkgMTEuNiA5LjQgMTkgOS40aDU0LjFsMTA5IDEwOWMtMTQuNyAyOS0xMCA2NS40IDE0LjMgODkuNmwxMTIgMTEyYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDY0LTY0YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zbC0xMTItMTEyYy0yNC4yLTI0LjItNjAuNi0yOS04OS42LTE0LjNsLTEwOS0xMDlWMTA0YzAtNy41LTMuNS0xNC41LTkuNC0xOUw3OC42IDV6TTE5LjkgMzk2LjFDNy4yIDQwOC44IDAgNDI2LjEgMCA0NDQuMUMwIDQ4MS42IDMwLjQgNTEyIDY3LjkgNTEyYzE4IDAgMzUuMy03LjIgNDgtMTkuOUwyMzMuNyAzNzQuM2MtNy44LTIwLjktOS00My42LTMuNi02NS4xbC02MS43LTYxLjdMMTkuOSAzOTYuMXpNNTEyIDE0NGMwLTEwLjUtMS4xLTIwLjctMy4yLTMwLjVjLTIuNC0xMS4yLTE2LjEtMTQuMS0yNC4yLTZsLTYzLjkgNjMuOWMtMyAzLTcuMSA0LjctMTEuMyA0LjdIMzUyYy04LjggMC0xNi03LjItMTYtMTZWMTAyLjZjMC00LjIgMS43LTguMyA0LjctMTEuM2w2My45LTYzLjljOC4xLTguMSA1LjItMjEuOC02LTI0LjJDMzg4LjcgMS4xIDM3OC41IDAgMzY4IDBDMjg4LjUgMCAyMjQgNjQuNSAyMjQgMTQ0bDAgLjggODUuMyA4NS4zYzM2LTkuMSA3NS44IC41IDEwNCAyOC43TDQyOSAyNzQuNWM0OS0yMyA4My03Mi44IDgzLTEzMC41ek01NiA0MzJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyZXdkcml2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY1IDdjLTguNS04LjUtMjItOS40LTMxLjYtMi4xbC0xMDQgODBjLTUuOSA0LjUtOS40IDExLjYtOS40IDE5djU0LjFsLTg1LjYgODUuNmM2LjcgNC4yIDEzIDkuMyAxOC44IDE1LjFzMTAuOSAxMi4yIDE1LjEgMTguOEwzNTMuOSAxOTJINDA4YzcuNSAwIDE0LjUtMy41IDE5LTkuNGw4MC0xMDRjNy40LTkuNiA2LjUtMjMuMS0yLjEtMzEuNkw0NjUgN3pNMTIxLjQgMjgxLjRsLTExMiAxMTJjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zbDY0IDY0YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDExMi0xMTJjMzAuMi0zMC4yIDMwLjItNzkuMSAwLTEwOS4zcy03OS4xLTMwLjItMTA5LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Nyb2xsVG9yYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNDgwVjMyQzk2IDE0LjMgNzQuNSAwIDQ4IDBTMCAxNC4zIDAgMzJWNDgwYzAgMTcuNyAyMS41IDMyIDQ4IDMyczQ4LTE0LjMgNDgtMzJ6TTUxMiAzMkgxMjhWNDgwSDUxMlYzMnpNNTkyIDBjLTI2LjUgMC00OCAxNC4zLTQ4IDMyVjQ4MGMwIDE3LjcgMjEuNSAzMiA0OCAzMnM0OC0xNC4zIDQ4LTMyVjMyYzAtMTcuNy0yMS41LTMyLTQ4LTMyek0xOTYgMzEzLjdjMC0zLjIgLjktNi40IDIuNS05LjJMMjI2LjcgMjU2bC0yOC4zLTQ4LjVjLTEuNi0yLjgtMi41LTYtMi41LTkuMmMwLTEwLjEgOC4yLTE4LjMgMTguMy0xOC4zSDI3MWwzMS40LTUzLjljMy42LTYuMyAxMC4zLTEwLjEgMTcuNi0xMC4xczEzLjkgMy44IDE3LjYgMTAuMUwzNjkgMTgwaDU2LjdjMTAuMSAwIDE4LjMgOC4yIDE4LjMgMTguM2MwIDMuMi0uOSA2LjQtMi41IDkuMkw0MTMuMyAyNTZsMjguMyA0OC41YzEuNiAyLjggMi41IDYgMi41IDkuMmMwIDEwLjEtOC4yIDE4LjMtMTguMyAxOC4zSDM2OWwtMzEuNCA1My45Yy0zLjYgNi4zLTEwLjMgMTAuMS0xNy42IDEwLjFzLTEzLjktMy44LTE3LjYtMTAuMUwyNzEgMzMySDIxNC4zYy0xMC4xIDAtMTguMy04LjItMTguMy0xOC4zem0xMjQgNTQuN0wzNDEuMiAzMzJIMjk4LjhMMzIwIDM2OC40ek0yNTQuNSAyNTZsMzAuMyA1Mmg3MC40bDMwLjMtNTItMzAuMy01MkgyODQuOGwtMzAuMyA1MnptMTQ0LjkgMjMuOEwzODMgMzA4aDMyLjhsLTE2LjQtMjguMnpNNDE1LjggMjA0SDM4M2wxNi40IDI4LjJMNDE1LjggMjA0ek0zMjAgMTQzLjZMMjk4LjggMTgwaDQyLjRMMzIwIDE0My42ek0yMjQuMiAyMDRsMTYuNCAyOC4yTDI1NyAyMDRIMjI0LjJ6TTI1NyAzMDhsLTE2LjQtMjguMkwyMjQuMiAzMDhIMjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3JvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MHY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg0OCA5NlY4MGMwLTI2LjUtMjEuNS00OC00OC00OFMwIDUzLjUgMCA4MHpNMTEyIDMyYzEwIDEzLjQgMTYgMzAgMTYgNDhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR2LTUuM2MwLTMyLjQgMjYuMy01OC43IDU4LjctNTguN0g0ODBWMTI4YzAtNTMtNDMtOTYtOTYtOTZIMTEyek00NjQgNDgwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyYzAtOC44LTcuMi0xNi0xNi0xNkgzMTQuN2MtMTQuNyAwLTI2LjcgMTEuOS0yNi43IDI2LjdWMzg0YzAgNTMtNDMgOTYtOTYgOTZIMzY4aDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDBIMTQxLjNDMTI0LjMgMCAxMDggNi43IDk2IDE4LjdMMTguNyA5NkM2LjcgMTA4IDAgMTI0LjMgMCAxNDEuM1Y0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xNjAgODh2NDhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWODhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHptODAgMHY0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY4OGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em04MCAwdjQ4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0Vjg4YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQuOSA5NkM2Ny4xIDg0LjQgNzMuNyA3Ni4yIDg2IDcwLjZjMTMuOC02LjIgMzQuOC04LjkgNjEuMi00LjVjOC44IDEuNCAzNi4xIDcuMSA0NC4xIDkuM2MxNyA0LjggMzQuNy01LjEgMzkuNS0yMi4ycy01LjEtMzQuNy0yMi4yLTM5LjVjLTExLjEtMy4xLTQxLTkuMi01MC45LTEwLjhDMTIzLTIuNyA4OC4zLS42IDU5LjcgMTIuM0MyOS45IDI1LjggNy41IDUwLjkgMS42IDg2LjVjLS4xIC41LS4yIDEuMS0uMiAxLjZjLTIuMiAxOS43IC4zIDM3LjkgOC4xIDU0LjFjNy43IDE2LjEgMTkuNCAyOCAzMiAzNi45Yy42IC41IDEuMyAuOSAyIDEuNEMyMi4zIDE5NC4yIDYuNSAyMTUuMSAxLjcgMjQzYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjMgMTkuMyAuNCAzNy4xIDguNCA1M2M3LjkgMTUuNiAxOS44IDI3IDMyLjMgMzUuNWMyMi40IDE1LjIgNTEuOSAyNCA3NS40IDMxbDAgMCAzLjcgMS4xYzI3LjIgOC4yIDQ2LjkgMTQuNiA1OS40IDIzLjhjNS41IDQgOC4yIDcuNiA5LjUgMTAuOWMxLjMgMy4yIDIuNiA4LjYgLjkgMTguMWMtMS43IDEwLjEtNy43IDE4LTIwLjcgMjMuNWMtMTQgNi0zNS40IDguNS02MiA0LjRjLTEyLjgtMi4xLTM1LjEtOS43LTU0LjEtMTYuMmwwIDBjLTQuMy0xLjUtOC41LTIuOS0xMi4zLTQuMkMyNS4zIDQyMCA3LjIgNDI5LjEgMS42IDQ0NS44czMuNSAzNC45IDIwLjMgNDAuNWMyLjYgLjggNS43IDEuOSA5LjIgMy4xYzE4LjYgNi4zIDQ4LjUgMTYuNiA2Ny4zIDE5LjZsMCAwIC4yIDBjMzQuNSA1LjQgNjguOCAzLjQgOTcuMi04LjdjMjkuNC0xMi42IDUyLjUtMzYuNSA1OC41LTcxLjVjMy4zLTE5LjMgMS45LTM3LjQtNS01My45Yy02LjMtMTUtMTYuNC0yNi40LTI3LjYtMzUuMmMxNi41LTEzLjkgMjguNS0zMy4yIDMyLjYtNTguMmMzLjItMTkuOCAxLjktMzguMy00LjgtNTUuMWMtNi43LTE2LjgtMTcuOC0yOS40LTMwLjItMzljLTIyLjgtMTcuNi01My42LTI3LjQtNzcuNy0zNWwtMS40LS41Yy0yNy40LTguNy00Ny44LTE1LjMtNjEuNS0yNWMtNi4xLTQuNC05LjUtOC41LTExLjQtMTIuNGMtMS44LTMuNy0zLjItOS4zLTIuMy0xOC41em03Ni43IDIwOC41Yy0uMi0uMS0uNC0uMS0uNi0uMmwtMS40LS40Yy0yNy40LTguMi00Ny45LTE0LjUtNjEuNy0yMy44Yy02LjItNC4yLTkuMy03LjktMTEtMTEuM2MtMS41LTMtMi45LTcuNy0yLjEtMTUuN2MxLjktOS43IDcuOS0xNy4zIDIwLjUtMjIuN2MxNC02IDM1LjQtOC41IDYyLjEtNC4zbDE2LjQgMi42YzYuMyAyLjkgMTEuNyA2IDE2LjIgOS41YzUuNSA0LjIgOC40IDguMiAxMCAxMi4yYzEuNiA0IDIuOCAxMC40IDEuMSAyMC45Yy0yLjQgMTQuNy0xMi44IDI2LjQtMzcuMSAzMWwtMTIuNCAyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlZWRsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAzMmMwIDExMy42LTg0LjYgMjA3LjUtMTk0LjIgMjIyYy03LjEtNTMuNC0zMC42LTEwMS42LTY1LjMtMTM5LjNDMjkwLjggNDYuMyAzNjQgMCA0NDggMGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnpNMCA5NkMwIDc4LjMgMTQuMyA2NCAzMiA2NEg2NGMxMjMuNyAwIDIyNCAxMDAuMyAyMjQgMjI0djMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzMjBDMTAwLjMgMzIwIDAgMjE5LjcgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VydmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZ2NjRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em0yODAgNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em00OCAyNGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek02NCAyODhjLTM1LjMgMC02NCAyOC43LTY0IDY0djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ0OGMzNS4zIDAgNjQtMjguNyA2NC02NFYzNTJjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTI4MCA3MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTU2IDI0YTI0IDI0IDAgMSAxIDQ4IDAgMjQgMjQgMCAxIDEgLTQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXBlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTUuNCAxNS41QzMwOS43IDUuOSAyOTkuMiAwIDI4OCAwcy0yMS43IDUuOS0yNy40IDE1LjVsLTk2IDE2MGMtNS45IDkuOS02LjEgMjIuMi0uNCAzMi4yczE2LjMgMTYuMiAyNy44IDE2LjJIMzg0YzExLjUgMCAyMi4yLTYuMiAyNy44LTE2LjJzNS41LTIyLjMtLjQtMzIuMmwtOTYtMTYwek0yODggMzEyVjQ1NmMwIDIyLjEgMTcuOSA0MCA0MCA0MEg0NzJjMjIuMSAwIDQwLTE3LjkgNDAtNDBWMzEyYzAtMjIuMS0xNy45LTQwLTQwLTQwSDMyOGMtMjIuMSAwLTQwIDE3LjktNDAgNDB6TTEyOCA1MTJhMTI4IDEyOCAwIDEgMCAwLTI1NiAxMjggMTI4IDAgMSAwIDAgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZUZyb21TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDIyNEgzMDUuNWMtNDUgMC04MS41IDM2LjUtODEuNSA4MS41YzAgMjIuMyAxMC4zIDM0LjMgMTkuMiA0MC41YzYuOCA0LjcgMTIuOCAxMiAxMi44IDIwLjNjMCA5LjgtOCAxNy44LTE3LjggMTcuOGgtMi41Yy0yLjQgMC00LjgtLjQtNy4xLTEuNEMyMTAuOCAzNzQuOCAxMjggMzMzLjQgMTI4IDI0MGMwLTc5LjUgNjQuNS0xNDQgMTQ0LTE0NGg4MFYzNC43QzM1MiAxNS41IDM2Ny41IDAgMzg2LjcgMGM4LjYgMCAxNi44IDMuMiAyMy4yIDguOUw1NDguMSAxMzMuM2M3LjYgNi44IDExLjkgMTYuNSAxMS45IDI2LjdzLTQuMyAxOS45LTExLjkgMjYuN2wtMTM5IDEyNS4xYy01LjkgNS4zLTEzLjUgOC4yLTIxLjQgOC4ySDM4NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjI0ek04MCA5NmMtOC44IDAtMTYgNy4yLTE2IDE2VjQzMmMwIDguOCA3LjIgMTYgMTYgMTZINDAwYzguOCAwIDE2LTcuMiAxNi0xNlYzODRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY0OGMwIDQ0LjItMzUuOCA4MC04MCA4MEg4MGMtNDQuMiAwLTgwLTM1LjgtODAtODBWMTEyQzAgNjcuOCAzNS44IDMyIDgwIDMyaDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZU5vZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAyMjRjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgNCAuMiA4IC43IDExLjlsLTk0LjEgNDdDMTQ1LjQgMTcwLjIgMTIxLjkgMTYwIDk2IDE2MGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NmMyNS45IDAgNDkuNC0xMC4yIDY2LjYtMjYuOWw5NC4xIDQ3Yy0uNSAzLjktLjcgNy44LS43IDExLjljMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZjLTI1LjkgMC00OS40IDEwLjItNjYuNiAyNi45bC05NC4xLTQ3Yy41LTMuOSAuNy03LjggLjctMTEuOXMtLjItOC0uNy0xMS45bDk0LjEtNDdDMzAyLjYgMjEzLjggMzI2LjEgMjI0IDM1MiAyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNyAzNC44Yy0xMS41IDUuMS0xOSAxNi42LTE5IDI5LjJ2NjRIMTc2Qzc4LjggMTI4IDAgMjA2LjggMCAzMDRDMCA0MTcuMyA4MS41IDQ2Ny45IDEwMC4yIDQ3OC4xYzIuNSAxLjQgNS4zIDEuOSA4LjEgMS45YzEwLjkgMCAxOS43LTguOSAxOS43LTE5LjdjMC03LjUtNC4zLTE0LjQtOS44LTE5LjVDMTA4LjggNDMxLjkgOTYgNDE0LjQgOTYgMzg0YzAtNTMgNDMtOTYgOTYtOTZoOTZ2NjRjMCAxMi42IDcuNCAyNC4xIDE5IDI5LjJzMjUgMyAzNC40LTUuNGwxNjAtMTQ0YzYuNy02LjEgMTAuNi0xNC43IDEwLjYtMjMuOHMtMy44LTE3LjctMTAuNi0yMy44bC0xNjAtMTQ0Yy05LjQtOC41LTIyLjktMTAuNi0zNC40LTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hlZXRQbGFzdGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDIyNFYzODRjMC0xNy43IDE0LjMtMzIgMzItMzJIMzg0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgMCAwIDI4LjcgMCA2NFY0NDh6TTE3MS4zIDc1LjNsLTk2IDk2Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42bDk2LTk2YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNnptOTYgMzJsLTE2MCAxNjBjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZsMTYwLTE2MGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZ6TTM4NCAzODRIMjU2VjUxMkwzODQgMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGVrZWxTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRWNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWOTZIMTkyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjMyMGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzMnpNMzIwIDQ4MGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlYzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMTkyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJIMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGRDYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTYwIDE1NC40YzAtNS44IDQuNy0xMC40IDEwLjQtMTAuNGguMmMzLjQgMCA2LjUgMS42IDguNSA0LjNsNDAgNTMuM2MzIDQgNy44IDYuNCAxMi44IDYuNGg0OGM1IDAgOS44LTIuNCAxMi44LTYuNGw0MC01My4zYzItMi43IDUuMi00LjMgOC41LTQuM2guMmM1LjggMCAxMC40IDQuNyAxMC40IDEwLjRWMjcyYzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2VjE1NC40ek0yMTYgMjg4YTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnptOTYtMTZhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkRG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yYy41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMmMxNi43IDggMzYuMSA4IDUyLjggMEM0NTQuNyA0MjAuNyA0OTUuNSAyMzkuMiA0OTYgMTQwYy4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTE2MC45IDI4Ni4yYzQuOCAxLjIgOS45IDEuOCAxNS4xIDEuOGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBoNDQuMmMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43TDMyMCAxOTJoNjRjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgNDQuMi0zNS44IDgwLTgwIDgwSDI3MnY1MC43YzAgNy4zLTUuOSAxMy4zLTEzLjMgMTMuM2MtMS44IDAtMy42LS40LTUuMi0xLjFsLTk4LjctNDIuM2MtNi42LTIuOC0xMC44LTkuMy0xMC44LTE2LjRjMC0yLjggLjYtNS41IDEuOS04bDE1LTMwek0xNjAgMTYwaDQwIDh2MzIgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTc2YzAtOC44IDcuMi0xNiAxNi0xNnptMTI4IDQ4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZEhhbHZlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMGM0LjYgMCA5LjIgMSAxMy40IDIuOUw0NTcuNyA4Mi44YzIyIDkuMyAzOC40IDMxIDM4LjMgNTcuMmMtLjUgOTkuMi00MS4zIDI4MC43LTIxMy42IDM2My4yYy0xNi43IDgtMzYuMSA4LTUyLjggMEM1Ny4zIDQyMC43IDE2LjUgMjM5LjIgMTYgMTQwYy0uMS0yNi4yIDE2LjMtNDcuOSAzOC4zLTU3LjJMMjQyLjcgMi45QzI0Ni44IDEgMjUxLjQgMCAyNTYgMHptMCA2Ni44VjQ0NC44QzM5NCAzNzggNDMxLjEgMjMwLjEgNDMyIDE0MS40TDI1NiA2Ni44bDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjQgMi45QzI2NS4yIDEgMjYwLjcgMCAyNTYgMHMtOS4yIDEtMTMuNCAyLjlMNTQuMyA4Mi44Yy0yMiA5LjMtMzguNCAzMS0zOC4zIDU3LjJjLjUgOTkuMiA0MS4zIDI4MC43IDIxMy42IDM2My4yYzE2LjcgOCAzNi4xIDggNTIuOCAwQzQ1NC43IDQyMC43IDQ5NS41IDIzOS4yIDQ5NiAxNDBjLjEtMjYuMi0xNi4zLTQ3LjktMzguMy01Ny4yTDI2OS40IDIuOXpNMTQ0IDIyMS4zYzAtMzMuOCAyNy40LTYxLjMgNjEuMy02MS4zYzE2LjIgMCAzMS44IDYuNSA0My4zIDE3LjlsNy40IDcuNCA3LjQtNy40YzExLjUtMTEuNSAyNy4xLTE3LjkgNDMuMy0xNy45YzMzLjggMCA2MS4zIDI3LjQgNjEuMyA2MS4zYzAgMTYuMi02LjUgMzEuOC0xNy45IDQzLjNsLTgyLjcgODIuN2MtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBsLTgyLjctODIuN2MtMTEuNS0xMS41LTE3LjktMjcuMS0xNy45LTQzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZFZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OS40IDIuOUMyNjUuMiAxIDI2MC43IDAgMjU2IDBzLTkuMiAxLTEzLjQgMi45TDU0LjMgODIuOGMtMjIgOS4zLTM4LjQgMzEtMzguMyA1Ny4yYy41IDk5LjIgNDEuMyAyODAuNyAyMTMuNiAzNjMuMmMxNi43IDggMzYuMSA4IDUyLjggMEM0NTQuNyA0MjAuNyA0OTUuNSAyMzkuMiA0OTYgMTQwYy4xLTI2LjItMTYuMy00Ny45LTM4LjMtNTcuMkwyNjkuNCAyLjl6TTI1NiAxMTJjOC44IDAgMTYgNy4yIDE2IDE2YzAgMzMgMzkuOSA0OS41IDYzLjIgMjYuMmM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMHM2LjIgMTYuNCAwIDIyLjZDMzM0LjUgMjAwLjEgMzUxIDI0MCAzODQgMjQwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy0zMyAwLTQ5LjUgMzkuOS0yNi4yIDYzLjJjNi4yIDYuMiA2LjIgMTYuNCAwIDIyLjZzLTE2LjQgNi4yLTIyLjYgMEMzMTEuOSAzMzQuNSAyNzIgMzUxIDI3MiAzODRjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZjMC0zMy0zOS45LTQ5LjUtNjMuMi0yNi4yYy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMHMtNi4yLTE2LjQgMC0yMi42QzE3Ny41IDMxMS45IDE2MSAyNzIgMTI4IDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmMzMyAwIDQ5LjUtMzkuOSAyNi4yLTYzLjJjLTYuMi02LjItNi4yLTE2LjQgMC0yMi42czE2LjQtNi4yIDIyLjYgMEMyMDAuMSAxNzcuNSAyNDAgMTYxIDI0MCAxMjhjMC04LjggNy4yLTE2IDE2LTE2ek0yMzIgMjU2YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptNzIgMzJhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYzQuNiAwIDkuMiAxIDEzLjQgMi45TDQ1Ny43IDgyLjhjMjIgOS4zIDM4LjQgMzEgMzguMyA1Ny4yYy0uNSA5OS4yLTQxLjMgMjgwLjctMjEzLjYgMzYzLjJjLTE2LjcgOC0zNi4xIDgtNTIuOCAwQzU3LjMgNDIwLjcgMTYuNSAyMzkuMiAxNiAxNDBjLS4xLTI2LjIgMTYuMy00Ny45IDM4LjMtNTcuMkwyNDIuNyAyLjlDMjQ2LjggMSAyNTEuNCAwIDI1NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDhWMjQwbDQ0LjQgMTQuOGMyMy4xIDcuNyAyOS41IDM3LjUgMTEuNSA1My45bC0xMDEgOTIuNmMtMTYuMiA5LjQtMzQuNyAxNS4xLTUwLjkgMTUuMWMtMTkuNiAwLTQwLjgtNy43LTU5LjItMjAuM2MtMjIuMS0xNS41LTUxLjYtMTUuNS03My43IDBjLTE3LjEgMTEuOC0zOCAyMC4zLTU5LjIgMjAuM2MtMTYuMiAwLTM0LjctNS43LTUwLjktMTUuMWwtMTAxLTkyLjZjLTE4LTE2LjUtMTEuNi00Ni4yIDExLjUtNTMuOUw5NiAyNDBWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjMyek0xNjAgMjE4LjdsMTA3LjgtMzUuOWMxMy4xLTQuNCAyNy4zLTQuNCA0MC41IDBMNDE2IDIxOC43VjEyOEgxNjB2OTAuN3pNMzA2LjUgNDIxLjlDMzI5IDQzNy40IDM1Ni41IDQ0OCAzODQgNDQ4YzI2LjkgMCA1NS40LTEwLjggNzcuNC0yNi4xbDAgMGMxMS45LTguNSAyOC4xLTcuOCAzOS4yIDEuN2MxNC40IDExLjkgMzIuNSAyMSA1MC42IDI1LjJjMTcuMiA0IDI3LjkgMjEuMiAyMy45IDM4LjRzLTIxLjIgMjcuOS0zOC40IDIzLjljLTI0LjUtNS43LTQ0LjktMTYuNS01OC4yLTI1QzQ0OS41IDUwMS43IDQxNyA1MTIgMzg0IDUxMmMtMzEuOSAwLTYwLjYtOS45LTgwLjQtMTguOWMtNS44LTIuNy0xMS4xLTUuMy0xNS42LTcuN2MtNC41IDIuNC05LjcgNS4xLTE1LjYgNy43Yy0xOS44IDktNDguNSAxOC45LTgwLjQgMTguOWMtMzMgMC02NS41LTEwLjMtOTQuNS0yNS44Yy0xMy40IDguNC0zMy43IDE5LjMtNTguMiAyNWMtMTcuMiA0LTM0LjQtNi43LTM4LjQtMjMuOXM2LjctMzQuNCAyMy45LTM4LjRjMTguMS00LjIgMzYuMi0xMy4zIDUwLjYtMjUuMmMxMS4xLTkuNCAyNy4zLTEwLjEgMzkuMi0xLjdsMCAwQzEzNi43IDQzNy4yIDE2NS4xIDQ0OCAxOTIgNDQ4YzI3LjUgMCA1NS0xMC42IDc3LjUtMjYuMWMxMS4xLTcuOSAyNS45LTcuOSAzNyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGlydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTEuOCAwYzcuOCAwIDE0LjMgNS43IDE2LjcgMTMuMkMyNDAuOCA1MS45IDI3Ny4xIDgwIDMyMCA4MHM3OS4yLTI4LjEgOTEuNS02Ni44QzQxMy45IDUuNyA0MjAuNCAwIDQyOC4yIDBoMTIuNmMyMi41IDAgNDQuMiA3LjkgNjEuNSAyMi4zTDYyOC41IDEyNy40YzYuNiA1LjUgMTAuNyAxMy41IDExLjQgMjIuMXMtMi4xIDE3LjEtNy44IDIzLjZsLTU2IDY0Yy0xMS40IDEzLjEtMzEuMiAxNC42LTQ0LjYgMy41TDQ4MCAxOTcuN1Y0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMjI0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxOTcuN2wtNTEuNSA0Mi45Yy0xMy4zIDExLjEtMzMuMSA5LjYtNDQuNi0zLjVsLTU2LTY0Yy01LjctNi41LTguNS0xNS03LjgtMjMuNnM0LjgtMTYuNiAxMS40LTIyLjFMMTM3LjcgMjIuM0MxNTUgNy45IDE3Ni43IDAgMTk5LjIgMGgxMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9lUHJpbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwQzM1Mi4zIDAgMjU2IDMyIDI1NiAzMlYxNjBjNDggMCA3NiAxNiAxMDQgMzJzNTYgMzIgMTA0IDMyYzU2LjQgMCAxNzYtMTYgMTc2LTk2UzUxMiAwIDQxNiAwek0xMjggOTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMzJWMzJIMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NHpNMjg4IDUxMmM5NiAwIDIyNC00OCAyMjQtMTI4cy0xMTkuNi05Ni0xNzYtOTZjLTQ4IDAtNzYgMTYtMTA0IDMycy01NiAzMi0xMDQgMzJWNDgwczk2LjMgMzIgMTYwIDMyek0wIDQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg5NlYzNTJINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9wTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNi44IDE5Mkg0NDkuNmMyMC4yLTE5LjggNDcuOS0zMiA3OC40LTMyYzMwLjUgMCA1OC4xIDEyLjIgNzguMyAzMS45YzE4LjktMS42IDMzLjctMTcuNCAzMy43LTM2LjdjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEgxMjEuN2MtMTYgMC0zMSA4LTM5LjkgMjEuNEw2LjIgMTM0LjdjLTQgNi4xLTYuMiAxMy4yLTYuMiAyMC40QzAgMTc1LjUgMTYuNSAxOTIgMzYuOCAxOTJ6TTM4NCAyMjRIMzIwVjM4NEgxMjhWMjI0SDY0VjM4NHY4MGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgzMzZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzg0IDM1MiAyMjR6bTE0NCAxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEg0OTZWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvcFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTU0LjgtNDNWMjI0SDUxMlYzNzZMMzg0IDI3NS43VjIyNEgzMjB2MS41TDI3Ny4yIDE5Mkg2MDMuMmMyMC4zIDAgMzYuOC0xNi41IDM2LjgtMzYuOGMwLTcuMy0yLjItMTQuNC02LjItMjAuNEw1NTguMiAyMS40QzU0OS4zIDggNTM0LjQgMCA1MTguMyAwSDEyMS43Yy0xNiAwLTMxIDgtMzkuOSAyMS40TDc0LjEgMzIuOCAzOC44IDUuMXpNMzYuOCAxOTJoODVMMjEgMTEyLjUgNi4yIDEzNC43Yy00IDYuMS02LjIgMTMuMi02LjIgMjAuNEMwIDE3NS41IDE2LjUgMTkyIDM2LjggMTkyek0zMjAgMzg0SDEyOFYyMjRINjRWMzg0djgwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDMzNmMyNi41IDAgNDgtMjEuNSA0OC00OFYzOTguNWwtNjQtNTAuNFYzODR6TTU0NCA1MTJsLS4zIDBoLjZsLS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYuOCAxOTJINjAzLjJjMjAuMyAwIDM2LjgtMTYuNSAzNi44LTM2LjhjMC03LjMtMi4yLTE0LjQtNi4yLTIwLjRMNTU4LjIgMjEuNEM1NDkuMyA4IDUzNC40IDAgNTE4LjMgMEgxMjEuN2MtMTYgMC0zMSA4LTM5LjkgMjEuNEw2LjIgMTM0LjdjLTQgNi4xLTYuMiAxMy4yLTYuMiAyMC40QzAgMTc1LjUgMTYuNSAxOTIgMzYuOCAxOTJ6TTY0IDIyNFYzODR2ODBjMCAyNi41IDIxLjUgNDggNDggNDhIMzM2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM4NCAyMjRIMzIwVjM4NEgxMjhWMjI0SDY0em00NDggMFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMjRINTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTMxLjlDNjQgMTEyLjEgODAuMSA5NiA5OS45IDk2YzkuNSAwIDE4LjYgMy44IDI1LjQgMTAuNWwxNi4yIDE2LjJjLTIxIDM4LjktMTcuNCA4Ny41IDEwLjkgMTIzTDE1MSAyNDdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMEwzNDUgMTIxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTEuMyAxLjNjLTM1LjUtMjguMy04NC4yLTMxLjktMTIzLTEwLjlMMTcwLjUgNjEuM0MxNTEuOCA0Mi41IDEyNi40IDMyIDk5LjkgMzJDNDQuNyAzMiAwIDc2LjcgMCAxMzEuOVY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxMzEuOXpNMjU2IDM1MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTY0IDY0YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTAtMTI4YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptNjQgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMC0xMjhhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em02NCA2NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMi0zMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNocmltcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2czI4LjcgNjQgNjQgNjRoMWMzLjcgODguOSA3NyAxNjAgMTY3IDE2MGg1NlYxMjhIMjY0IDg4LjggNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDY0YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDY0ek0yMjQgNDU2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDcyVjQwNy44bC02NC4xLTIyLjRjLTEyLjUtNC40LTI2LjIgMi4yLTMwLjYgMTQuN3MyLjIgMjYuMiAxNC43IDMwLjZsNC41IDEuNkMyMzMgNDMzLjkgMjI0IDQ0My45IDIyNCA0NTZ6bTEyOCAyMy4zYzM2LjQtMy4zIDY5LjUtMTcuNiA5Ni4xLTM5LjZsLTg2LjUtMzQuNmMtMyAxLjgtNi4yIDMuMi05LjYgNC4zdjY5Ljl6TTQ3Mi42IDQxNWMyNC42LTMwLjMgMzkuNC02OC45IDM5LjQtMTExYzAtMTIuMy0xLjMtMjQuMy0zLjctMzUuOUwzODIuOCAzNTUuMWMuOCAzLjQgMS4yIDcgMS4yIDEwLjZjMCA0LjYtLjcgOS0xLjkgMTMuMUw0NzIuNiA0MTV6TTMzNiAxMjhIMzIwVjMyMGgxOC4zYzkuOSAwIDE5LjEgMy4yIDI2LjYgOC41bDEzMy41LTkyLjRDNDcxLjggMTcyLjYgNDA5LjEgMTI4IDMzNiAxMjh6TTE2OCAxOTJhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2h1ZmZsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDMuOCAzNC40YzEyLTUgMjUuNy0yLjIgMzQuOSA2LjlsNjQgNjRjNiA2IDkuNCAxNC4xIDkuNCAyMi42cy0zLjQgMTYuNi05LjQgMjIuNmwtNjQgNjRjLTkuMiA5LjItMjIuOSAxMS45LTM0LjkgNi45cy0xOS44LTE2LjYtMTkuOC0yOS42VjE2MEgzNTJjLTEwLjEgMC0xOS42IDQuNy0yNS42IDEyLjhMMjg0IDIyOS4zIDI0NCAxNzZsMzEuMi00MS42QzI5My4zIDExMC4yIDMyMS44IDk2IDM1MiA5NmgzMlY2NGMwLTEyLjkgNy44LTI0LjYgMTkuOC0yOS42ek0xNjQgMjgyLjdMMjA0IDMzNmwtMzEuMiA0MS42QzE1NC43IDQwMS44IDEyNi4yIDQxNiA5NiA0MTZIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIOTZjMTAuMSAwIDE5LjYtNC43IDI1LjYtMTIuOEwxNjQgMjgyLjd6bTI3NC42IDE4OGMtOS4yIDkuMi0yMi45IDExLjktMzQuOSA2LjlzLTE5LjgtMTYuNi0xOS44LTI5LjZWNDE2SDM1MmMtMzAuMiAwLTU4LjctMTQuMi03Ni44LTM4LjRMMTIxLjYgMTcyLjhjLTYtOC4xLTE1LjUtMTIuOC0yNS42LTEyLjhIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIOTZjMzAuMiAwIDU4LjcgMTQuMiA3Ni44IDM4LjRMMzI2LjQgMzM5LjJjNiA4LjEgMTUuNSAxMi44IDI1LjYgMTIuOGgzMlYzMjBjMC0xMi45IDcuOC0yNC42IDE5LjgtMjkuNnMyNS43LTIuMiAzNC45IDYuOWw2NCA2NGM2IDYgOS40IDE0LjEgOS40IDIyLjZzLTMuNCAxNi42LTkuNCAyMi42bC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2h1dHRsZVNwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzMCA0ODBjNDAuNiAwIDgwLjQtMTEgMTE1LjItMzEuOUwzNTIgMzg0bC0yMjQgMCAwIDk2aDJ6TTM1MiAxMjhMMjQ1LjIgNjMuOUMyMTAuNCA0MyAxNzAuNiAzMiAxMzAgMzJoLTJ2OTZsMjI0IDB6TTk2IDEyOGwwLTk2SDgwQzUzLjUgMzIgMzIgNTMuNSAzMiA4MHY0OGg4Yy0yMi4xIDAtNDAgMTcuOS00MCA0MHYxNlYzMjh2MTZjMCAyMi4xIDE3LjkgNDAgNDAgNDBIMzJ2NDhjMCAyNi41IDIxLjUgNDggNDggNDhIOTZsMC05Nmg4YzI2LjIgMCA0OS40LTEyLjYgNjQtMzJINDU2YzY5LjMgMCAxMzUtMjIuNyAxNzkuMi04MS42YzYuNC04LjUgNi40LTIwLjMgMC0yOC44QzU5MSAxODIuNyA1MjUuMyAxNjAgNDU2IDE2MEgxNjhjLTE0LjYtMTkuNC0zNy44LTMyLTY0LTMybC04IDB6TTUxMiAyNDMuNnYyNC45YzAgMTkuNi0xNS45IDM1LjYtMzUuNiAzNS42Yy0yLjUgMC00LjQtMi00LjQtNC40VjIxMi40YzAtMi41IDItNC40IDQuNC00LjRjMTkuNiAwIDM1LjYgMTUuOSAzNS42IDM1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25IYW5naW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRsMzUyIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJsLTM1MiAwVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMjhIMzJDMTQuMyAxMjggMCAxMTMuNyAwIDk2UzE0LjMgNjQgMzIgNjRINjRWMzJDNjQgMTQuMyA3OC4zIDAgOTYgMHptOTYgMTYwSDQ0OGMxNy43IDAgMzIgMTQuMyAzMiAzMlYzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTQ0OCA5NmMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek0zNTIgMjI0VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnpNMTkyIDI4OGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyek05NiA0MTZ2NjRjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2Ny44YzAgMjcuNy0yLjQgNTUuMy03LjEgODIuNWwtODQuNCAyNS4zYy00MC42IDEyLjItNjguNCA0OS42LTY4LjQgOTJ2NzEuOWMwIDQwIDMyLjUgNzIuNSA3Mi41IDcyLjVjMjYgMCA1MC0xMy45IDYyLjktMzYuNWwxMy45LTI0LjNjMjYuOC00NyA0Ni41LTk3LjcgNTguNC0xNTAuNWw5NC40LTI4LjMtMTIuNSAzNy41Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zSDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0NjAuNGwxOC01My45YzMuOC0xMS4zIC45LTIzLjgtNy40LTMyLjRzLTIwLjctMTEuOC0zMi4yLTguNEwzMTYuNCAxOTguMWMyLjQtMjAuNyAzLjYtNDEuNCAzLjYtNjIuM1YxMjhjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxMjh6bS05LjIgMTc3bDQ5LTE0LjdjLTEwLjQgMzMuOC0yNC41IDY2LjQtNDIuMSA5Ny4ybC0xMy45IDI0LjNjLTEuNSAyLjYtNC4zIDQuMy03LjQgNC4zYy00LjcgMC04LjUtMy44LTguNS04LjVWMzM1LjZjMC0xNC4xIDkuMy0yNi42IDIyLjgtMzAuN3pNMjQgMzY4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDY0LjNjLS4yLTIuOC0uMy01LjYtLjMtOC41VjM2OEgyNHptNTkyIDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDMwNS45Yy02LjcgMTYuMy0xNC4yIDMyLjMtMjIuMyA0OEg2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25zUG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzJINjRDNDYuMyAzMiAzMiA0Ni4zIDMyIDY0djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMySDQ0MS40YzQuMiAwIDguMy0xLjcgMTEuMy00LjdsNDgtNDhjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTQ4LTQ4Yy0zLTMtNy4xLTQuNy0xMS4zLTQuN0gyODhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ6TTQ4MCAyNTZjMC0xNy43LTE0LjMtMzItMzItMzJIMjg4VjE5MkgyMjR2MzJINzAuNmMtNC4yIDAtOC4zIDEuNy0xMS4zIDQuN2wtNDggNDhjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDQ4IDQ4YzMgMyA3LjEgNC43IDExLjMgNC43SDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZ6TTI4OCA0ODBWMzg0SDIyNHY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW1DYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDBIMjQyLjdjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMMzY1LjMgOTZjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1Y0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0QzAgMjguNyAyOC43IDAgNjQgMHpNOTYgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmg2NFYxOTJIOTZ6TTY0IDM1Mmg4MCA5NiA4MFYyODhIMjQwIDE0NCA2NHY2NHpNMzIwIDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNTZ2NjRoNjRWMjI0ek0xNjAgMTkydjY0aDY0VjE5MkgxNjB6TTI4OCA0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzg0SDI1NnY2NGgzMnpNMTYwIDM4NHY2NGg2NFYzODRIMTYwek02NCA0MTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJWMzg0SDY0djMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCA5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyczE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NlYyODhIMTYwVjI2NGMwLTMwLjktMjUuMS01Ni01Ni01Nkg1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg0OGM0LjQgMCA4IDMuNiA4IDh2MjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMjU2IDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0MDBWMjY0YzAtNC40IDMuNi04IDgtOGg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0MDhjLTMwLjkgMC01NiAyNS4xLTU2IDU2djI0SDI4OFY5NnpNNDgwIDQxNlYzODRIMzJ2MzJjMCA1MyA0MyA5NiA5NiA5NkgzODRjNTMgMCA5Ni00MyA5Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2l0ZW1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNjRjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhoLTh2NDBINDY0YzMwLjkgMCA1NiAyNS4xIDU2IDU2djMyaDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDY0Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNjhjMC0yNi41IDIxLjUtNDggNDgtNDhoOFYyODhjMC00LjQtMy42LTgtOC04SDMxMnY0MGg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDI1NmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMzY4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDhWMjgwSDExMmMtNC40IDAtOCAzLjYtOCA4djMyaDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjM2OGMwLTI2LjUgMjEuNS00OCA0OC00OGg4VjI4OGMwLTMwLjkgMjUuMS01NiA1Ni01NkgyNjRWMTkyaC04Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t1bGxDcm9zc2JvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCAxMjhjMCA0NC40LTI1LjQgODMuNS02NCAxMDYuNFYyNTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTc2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMzQuNGMtMzguNi0yMy02NC02Mi4xLTY0LTEwNi40QzgwIDU3LjMgMTQ0LjUgMCAyMjQgMHMxNDQgNTcuMyAxNDQgMTI4ek0xNjggMTc2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTQ0LTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMuNCAyNzMuN2M3LjktMTUuOCAyNy4xLTIyLjIgNDIuOS0xNC4zTDIyNCAzNDguMmwxNzcuNy04OC44YzE1LjgtNy45IDM1LTEuNSA0Mi45IDE0LjNzMS41IDM1LTE0LjMgNDIuOUwyOTUuNiAzODRsMTM0LjggNjcuNGMxNS44IDcuOSAyMi4yIDI3LjEgMTQuMyA0Mi45cy0yNy4xIDIyLjItNDIuOSAxNC4zTDIyNCA0MTkuOCA0Ni4zIDUwOC42Yy0xNS44IDcuOS0zNSAxLjUtNDIuOS0xNC4zcy0xLjUtMzUgMTQuMy00Mi45TDE1Mi40IDM4NCAxNy43IDMxNi42QzEuOSAzMDguNy00LjUgMjg5LjUgMy40IDI3My43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa3VsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzk4LjljNTguNS00MS4xIDk2LTEwNC4xIDk2LTE3NC45QzUxMiAxMDAuMyAzOTcuNCAwIDI1NiAwUzAgMTAwLjMgMCAyMjRjMCA3MC43IDM3LjUgMTMzLjggOTYgMTc0LjljMCAuNCAwIC43IDAgMS4xdjY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4VjQ2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djQ4aDY0VjQ2NGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djQ4aDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQwMGMwLS40IDAtLjcgMC0xLjF6TTk2IDI1NmE2NCA2NCAwIDEgMSAxMjggMEE2NCA2NCAwIDEgMSA5NiAyNTZ6bTI1Ni02NGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4xIDkuMkMxMy4zLTEuMiAyOC40LTMuMSAzOC44IDUuMWw1OTIgNDY0YzEwLjQgOC4yIDEyLjMgMjMuMyA0LjEgMzMuN3MtMjMuMyAxMi4zLTMzLjcgNC4xTDkuMiA0Mi45Qy0xLjIgMzQuNy0zLjEgMTkuNiA1LjEgOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGVpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2VjI1NmMwIDUzIDQzIDk2IDk2IDk2djMyaDY0VjM1MkgzODR2MzJoNjRWMzUyYzUzIDAgOTYtNDMgOTYtOTZWMTYwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDUxMiA0ODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQxLjNjMCAzMC4yLTI0LjUgNTQuNy01NC43IDU0LjdjLTc1LjUgMC0xNDUuNi0zOC45LTE4NS42LTEwMi45bC00LjMtNi45QzE3NC4yIDY3LjYgMTI1IDM3LjYgNzAuNyAzMi43Yy0yLjItLjUtNC40LS43LTYuNy0uN0g1NSAzMnpNNjQwIDM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMnY4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDU1MmM0OC42IDAgODgtMzkuNCA4OC04OHYtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xpZGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQxNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmw1NC43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMmwtMjQ2LjcgMGMtMTIuMy0yOC4zLTQwLjUtNDgtNzMuMy00OHMtNjEgMTkuNy03My4zIDQ4TDMyIDM4NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTEyOCAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTMyMCAyNTZhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMzItODBjLTMyLjggMC02MSAxOS43LTczLjMgNDhMMzIgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMybDI0Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhsNTQuNyAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMybC01NC43IDBjLTEyLjMtMjguMy00MC41LTQ4LTczLjMtNDh6TTE5MiAxMjhhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0em03My4zLTY0QzI1MyAzNS43IDIyNC44IDE2IDE5MiAxNnMtNjEgMTkuNy03My4zIDQ4TDMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMmw4Ni43IDBjMTIuMyAyOC4zIDQwLjUgNDggNzMuMyA0OHM2MS0xOS43IDczLjMtNDhMNDgwIDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkwyNjUuMyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21vZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAxNDRjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRIMjk5LjNjMjIuNiAxOS45IDUyLjIgMzIgODQuNyAzMnM2Mi4xLTEyLjEgODQuNy0zMkg0OTZjNjEuOSAwIDExMi01MC4xIDExMi0xMTJzLTUwLjEtMTEyLTExMi0xMTJjLTEwLjcgMC0yMSAxLjUtMzAuOCA0LjNDNDQzLjggMjcuNyA0MDEuMSAwIDM1MiAwYy0zMi42IDAtNjIuNCAxMi4yLTg1LjEgMzIuM0MyNDIuMSAxMi4xIDIxMC41IDAgMTc2IDBDOTYuNSAwIDMyIDY0LjUgMzIgMTQ0ek02MTYgMzY4SDI4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg2MTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjR6bS02NCA5Nkg0NDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINTUyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0em0tMTkyIDBIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzYwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0ek0yMjQgMzkyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDk2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDIwMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21va2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzJWNDNjMCAzOC4yIDE1LjIgNzQuOCA0Mi4yIDEwMS44bDIxIDIxYzIxIDIxIDMyLjggNDkuNSAzMi44IDc5LjJ2MTFjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjQ1YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlsLTIxLTIxQzQwNS45IDE1MS4xIDM4NCA5OC4xIDM4NCA0M1YzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyek01NzYgMjU2VjI0NWMwLTM4LjItMTUuMi03NC44LTQyLjItMTAxLjhsLTIxLTIxYy0yMS0yMS0zMi44LTQ5LjUtMzIuOC03OS4yVjMyYzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWNDNjMCAxMi43IDUuMSAyNC45IDE0LjEgMzMuOWwyMSAyMWMzOSAzOSA2MC45IDkxLjkgNjAuOSAxNDcuMXYxMWMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMnpNMCA0MTZjMC0zNS4zIDI4LjctNjQgNjQtNjRINDE2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY0MTZ6bTIyNCAwdjMySDM4NFY0MTZIMjI0em0yODgtNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzg0YzAtMTcuNyAxNC4zLTMyIDMyLTMyem05NiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd2ZsYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjYyLjFsMTUtMTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00OSA0OXY3MC4zbDYxLjQtMzUuOCAxNy43LTY2LjFjMy40LTEyLjggMTYuNi0yMC40IDI5LjQtMTdzMjAuNCAxNi42IDE3IDI5LjRsLTUuMiAxOS4zIDIzLjYtMTMuOGMxNS4zLTguOSAzNC45LTMuNyA0My44IDExLjVzMy44IDM0LjktMTEuNSA0My44bC0yNS4zIDE0LjggMjEuNyA1LjhjMTIuOCAzLjQgMjAuNCAxNi42IDE3IDI5LjRzLTE2LjYgMjAuNC0yOS40IDE3bC02Ny43LTE4LjFMMjg3LjUgMjU2bDYwLjkgMzUuNSA2Ny43LTE4LjFjMTIuOC0zLjQgMjYgNC4yIDI5LjQgMTdzLTQuMiAyNi0xNyAyOS40bC0yMS43IDUuOCAyNS4zIDE0LjhjMTUuMyA4LjkgMjAuNCAyOC41IDExLjUgNDMuOHMtMjguNSAyMC40LTQzLjggMTEuNWwtMjMuNi0xMy44IDUuMiAxOS4zYzMuNCAxMi44LTQuMiAyNi0xNyAyOS40cy0yNi00LjItMjkuNC0xN2wtMTcuNy02Ni4xTDI1NiAzMTEuN3Y3MC4zbDQ5IDQ5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTE1LTE1VjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDkuOWwtMTUgMTVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDktNDlWMzExLjdsLTYxLjQgMzUuOC0xNy43IDY2LjFjLTMuNCAxMi44LTE2LjYgMjAuNC0yOS40IDE3cy0yMC40LTE2LjYtMTctMjkuNGw1LjItMTkuM0w0OC4xIDM5NS42Yy0xNS4zIDguOS0zNC45IDMuNy00My44LTExLjVzLTMuNy0zNC45IDExLjUtNDMuOGwyNS4zLTE0LjgtMjEuNy01LjhjLTEyLjgtMy40LTIwLjQtMTYuNi0xNy0yOS40czE2LjYtMjAuNCAyOS40LTE3bDY3LjcgMTguMUwxNjAuNSAyNTYgOTkuNiAyMjAuNSAzMS45IDIzOC42Yy0xMi44IDMuNC0yNi00LjItMjkuNC0xN3M0LjItMjYgMTctMjkuNGwyMS43LTUuOEwxNS45IDE3MS42Qy42IDE2Mi43LTQuNSAxNDMuMSA0LjQgMTI3LjlzMjguNS0yMC40IDQzLjgtMTEuNWwyMy42IDEzLjgtNS4yLTE5LjNjLTMuNC0xMi44IDQuMi0yNiAxNy0yOS40czI2IDQuMiAyOS40IDE3bDE3LjcgNjYuMUwxOTIgMjAwLjNWMTI5LjlMMTQzIDgxYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOXMyNC42LTkuNCAzMy45IDBsMTUgMTVWMzJjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dtYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQxLjEgMTQwLjZjLTIgMy45LTEuNiA4LjYgMS4yIDEyYzcgOC41IDEyLjkgMTguMSAxNy4yIDI4LjRMNDA4IDE2MC4yVjEyMGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djE5LjZsMjIuNS05LjdjMTIuMi01LjIgMjYuMyAuNCAzMS41IDEyLjZzLS40IDI2LjMtMTIuNiAzMS41bC01NiAyNC03My42IDMxLjVjLS41IDkuNS0yLjEgMTguNi00LjggMjcuM2MtMS4yIDMuOC0uMSA4IDIuOCAxMC44QzM5Ni43IDI5Ni45IDQxNiAzMzguMiA0MTYgMzg0YzAgNDQuNy0xOC4zIDg1LTQ3LjggMTE0LjFjLTkuOSA5LjctMjMuNyAxMy45LTM3LjUgMTMuOUgxODEuM2MtMTMuOSAwLTI3LjctNC4yLTM3LjUtMTMuOUMxMTQuMyA0NjkgOTYgNDI4LjcgOTYgMzg0YzAtNDUuOCAxOS4zLTg3LjEgNTAuMS0xMTYuM2MyLjktMi44IDQtNi45IDIuOC0xMC44Yy0yLjctOC43LTQuMy0xNy45LTQuOC0yNy4zTDcwLjUgMTk4LjFsLTU2LTI0QzIuNCAxNjguOC0zLjMgMTU0LjcgMS45IDE0Mi41czE5LjMtMTcuOCAzMS41LTEyLjZMNTYgMTM5LjZWMTIwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2NDAuMkwxNTIuNiAxODFjNC4zLTEwLjMgMTAuMS0xOS45IDE3LjItMjguNGMyLjgtMy40IDMuMy04LjEgMS4yLTEyQzE2NCAxMjcuMiAxNjAgMTEyLjEgMTYwIDk2YzAtNTMgNDMtOTYgOTYtOTZzOTYgNDMgOTYgOTZjMCAxNi4xLTQgMzEuMi0xMC45IDQ0LjZ6TTIyNCA5NmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bTQ4IDEyOGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem0tMTYgODBhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0xNiA0OGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwek0yODggOTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem0tNDggMjR2My4yYzAgMy4yIC44IDYuMyAyLjMgOWw5IDE2LjljLjkgMS43IDIuNyAyLjggNC43IDIuOHMzLjgtMS4xIDQuNy0yLjhsOS0xNi45YzEuNS0yLjggMi4zLTUuOSAyLjMtOVYxMjBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNub3dwbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC45IDY0bDY4LjYgMTYwSDI1NmwtNjQtNjRWNjRIMjk4Ljl6TTQ0NS4xIDI0Mi43bC04Ny40LTIwNEMzNDcuNiAxNS4zIDMyNC41IDAgMjk4LjkgMEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4VjE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWMjk4LjhDMjYuMiAzMTYuOCAwIDM1NS4zIDAgNDAwYzAgNjEuOSA1MC4xIDExMiAxMTIgMTEySDM2OGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMmMwLTE3LjItMy45LTMzLjUtMTAuOC00OEg1MTJ2NTAuN2MwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2w1NC42IDU0LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0w1NzYgNDAyLjdWMzIwIDIzNS4yTDYzMyAxNjRjMTEtMTMuOCA4LjgtMzMuOS01LTQ1cy0zMy45LTguOC00NSA1bC01NyA3MS4yYy05LjEgMTEuMy0xNCAyNS40LTE0IDQwVjI4OEg0NDhWMjU2LjdjLjEtMi40LS4yLTQuOC0uNi03LjFzLTEuMi00LjctMi4yLTYuOHpNMzY4IDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OEgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhIMzY4ek0xNDQgNDAwYTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6bTIxNiAyNGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS01Ni0yNGEyNCAyNCAwIDEgMCAtNDggMCAyNCAyNCAwIDEgMCA0OCAwek0yMDAgNDI0YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek0zMjAgMjU2YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMSAwIDAgMTI4ek00MTYgMzJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMCAxNjBjMCAyNy42LTExLjcgNTIuNS0zMC40IDcwLjFDNDIyLjEgMjc1LjcgNDQ4IDMxMC44IDQ0OCAzNTJjMCA1My00MyA5Ni05NiA5NkgxNjBjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTZoODguNGMtMTUuMi0xNy0yNC40LTM5LjQtMjQuNC02NEg5NmMtNTMgMC05NiA0My05NiA5NlY0MTZjMCA1MyA0MyA5NiA5NiA5Nkg0MTZjNTMgMCA5Ni00MyA5Ni05NlYyODhjMC01My00My05Ni05Ni05NnpNMTYwIDI4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjRzMjguNyA2NCA2NCA2NEgzNTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjRIMzIwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ja3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc1LjIgNDc2LjZjLTkuNy0xOC0xNS4yLTM4LjctMTUuMi02MC42YzAtNDAuMyAxOS03OC4yIDUxLjItMTAyLjRsNjQtNDhjOC4xLTYgMTIuOC0xNS41IDEyLjgtMjUuNlY5NkgxMjhWMjQwYzAgMjAuMS05LjUgMzkuMS0yNS42IDUxLjJsLTY0IDQ4QzE0LjIgMzU3LjMgMCAzODUuOCAwIDQxNmMwIDUzIDQzIDk2IDk2IDk2YzIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDIxLjYtMTYuMnpNMTI4IDY0SDI4OFY0OGMwLTE0LjUgMy45LTI4LjIgMTAuNy0zOS45QzI5MSAzIDI4MS45IDAgMjcyIDBIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OFY2NHpNMzIwIDk2VjI0MGMwIDIwLjEtOS41IDM5LjEtMjUuNiA1MS4ybC02NCA0OEMyMDYuMiAzNTcuMyAxOTIgMzg1LjggMTkyIDQxNmMwIDUzIDQzIDk2IDk2IDk2YzIwLjggMCA0MS02LjcgNTcuNi0xOS4ybDExNS4yLTg2LjRDNDkzIDM4Mi4yIDUxMiAzNDQuMyA1MTIgMzA0Vjk2SDMyMHpNNTEyIDY0VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDM2OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWNjRINTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb2xhclBhbmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMi4yIDBDOTEuNyAwIDY1LjUgMjEuNSA1OS41IDUxLjRMOC4zIDMwNy40Qy40IDM0NyAzMC42IDM4NCA3MSAzODRIMjg4djY0SDIyNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzUyVjM4NEg1NjljNDAuNCAwIDcwLjctMzYuOSA2Mi44LTc2LjZsLTUxLjItMjU2QzU3NC41IDIxLjUgNTQ4LjMgMCA1MTcuOCAwSDEyMi4yek0yNjAuOSA2NEgzNzkuMWwxMC40IDEwNGgtMTM5TDI2MC45IDY0ek0yMDIuMyAxNjhIMTAxLjRMMTIyLjIgNjRoOTAuNEwyMDIuMyAxNjh6TTkxLjggMjE2SDE5Ny41TDE4Ny4xIDMyMEg3MUw5MS44IDIxNnptMTUzLjkgMEgzOTQuM2wxMC40IDEwNC0xNjkuNCAwIDEwLjQtMTA0em0xOTYuOCAwSDU0OC4yTDU2OSAzMjBoLTExNkw0NDIuNSAyMTZ6bTk2LTQ4SDQzNy43TDQyNy4zIDY0aDkwLjRsMzEuNC02LjNMNTE3LjggNjRsMjAuOCAxMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Mi42IDQ3MC42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMTI4LTEyOGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlzMTYuNi0xOS44IDI5LjYtMTkuOEgyODhjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Mi42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xMjggMTI4Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44SDI4OGMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC0xMjgtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNy40IDQxLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGM5LjIgOS4yIDExLjkgMjIuOSA2LjkgMzQuOXMtMTYuNiAxOS44LTI5LjYgMTkuOEgzMmMtMTIuOSAwLTI0LjYtNy44LTI5LjYtMTkuOHMtMi4yLTI1LjcgNi45LTM0LjlsMTI4LTEyOHptMCA0MjkuM2wtMTI4LTEyOGMtOS4yLTkuMi0xMS45LTIyLjktNi45LTM0LjlzMTYuNi0xOS44IDI5LjYtMTkuOEgyODhjMTIuOSAwIDI0LjYgNy44IDI5LjYgMTkuOHMyLjIgMjUuNy02LjkgMzQuOWwtMTI4IDEyOGMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuMSAyMzUuM2MzMy43IDIwLjcgNjIuOSA0OC4xIDg1LjggODAuNWM3IDkuOSAxMy40IDIwLjMgMTkuMSAzMWM1LjctMTAuOCAxMi4xLTIxLjEgMTkuMS0zMWMyMi45LTMyLjQgNTIuMS01OS44IDg1LjgtODAuNUM0MzcuNiAyMDcuOCA0OTAuMSAxOTIgNTQ2IDE5Mmg5LjljMTEuMSAwIDIwLjEgOSAyMC4xIDIwLjFDNTc2IDM2MC4xIDQ1Ni4xIDQ4MCAzMDguMSA0ODBIMjg4IDI2Ny45QzExOS45IDQ4MCAwIDM2MC4xIDAgMjEyLjFDMCAyMDEgOSAxOTIgMjAuMSAxOTJIMzBjNTUuOSAwIDEwOC40IDE1LjggMTUzLjEgNDMuM3pNMzAxLjUgMzcuNmMxNS43IDE2LjkgNjEuMSA3MS44IDg0LjQgMTY0LjZjLTM4IDIxLjYtNzEuNCA1MC44LTk3LjkgODUuNmMtMjYuNS0zNC44LTU5LjktNjMuOS05Ny45LTg1LjZjMjMuMi05Mi44IDY4LjYtMTQ3LjcgODQuNC0xNjQuNkMyNzggMzMuOSAyODIuOSAzMiAyODggMzJzMTAgMS45IDEzLjUgNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGFnaGV0dGlNb25zdGVyRmx5aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCA2NGExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem00OCAwYzAgMTYuMi02IDMxLjEtMTYgNDIuM2wxNS42IDMxLjJjMTguNy02IDM5LjktOS41IDY0LjQtOS41czQ1LjggMy41IDY0LjQgOS41TDQwMCAxMDYuM0MzOTAgOTUuMSAzODQgODAuMiAzODQgNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NGMtMS43IDAtMy40LS4xLTUuMS0uMkw0MjcuOCAxNThjMjEuMSAxMy42IDM3LjcgMzAuMiA1MS40IDQ2LjRjNy4xIDguMyAxMy41IDE2LjYgMTkuMyAyNGwxLjQgMS44YzYuMyA4LjEgMTEuNiAxNC44IDE2LjcgMjAuNEM1MjcuMyAyNjIuMyA1MzIuNyAyNjQgNTM2IDI2NGMyLjUgMCA0LjMtLjYgNy4xLTMuM2MzLjctMy41IDcuMS04LjggMTIuNS0xNy40bC42LS45YzQuNi03LjQgMTEtMTcuNiAxOS40LTI1LjdjOS43LTkuMyAyMi45LTE2LjcgNDAuNC0xNi43YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yLjUgMC00LjMgLjYtNy4xIDMuM2MtMy43IDMuNS03LjEgOC44LTEyLjUgMTcuNGwtLjYgLjljLTQuNiA3LjQtMTEgMTcuNi0xOS40IDI1LjdjLTkuNyA5LjMtMjIuOSAxNi43LTQwLjQgMTYuN2MtMTguNSAwLTMyLjktOC41LTQ0LjMtMTguNmMtMy4xIDQtNi42IDguMy0xMC41IDEyLjdjMS40IDQuMyAyLjggOC41IDQgMTIuNWMuOSAzIDEuOCA1LjggMi42IDguNmMzIDkuOCA1LjUgMTguMiA4LjYgMjUuOWMzLjkgOS44IDcuNCAxNS40IDEwLjggMTguNWMyLjYgMi40IDUuOSA0LjMgMTIuOCA0LjNjOC43IDAgMTYuOS00LjIgMzMuNy0xMy4yYzE1LTggMzUuNy0xOC44IDYyLjMtMTguOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGMtMTMuNCAwLTI0LjcgNS4yLTM5LjcgMTMuMmMtMSAuNi0yLjEgMS4xLTMuMiAxLjdDNTU5LjkgNDE0IDU0MS40IDQyNCA1MjAgNDI0Yy0xOC40IDAtMzMuNi02LjEtNDUuNS0xNy4yYy0xMS4xLTEwLjMtMTcuOS0yMy43LTIyLjctMzZjLTMuNi05LTYuNy0xOS4xLTkuNS0yOC41Yy0xNi40IDEyLjMtMzYuMSAyMy42LTU4LjkgMzEuM2MzLjYgMTAuOCA4LjQgMjMuNSAxNC40IDM2LjJjNy41IDE1LjkgMTYuMiAzMC40IDI1LjggNDAuNUM0MzMgNDYwLjUgNDQxLjIgNDY0IDQ0OCA0NjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRjLTI1LjIgMC00NS0xMy41LTU5LjUtMjguOGMtMTQuNS0xNS40LTI1LjctMzQuOS0zNC4yLTUzYy04LTE3LTE0LjEtMzMuOC0xOC4zLTQ2LjljLTUuMiAuNC0xMC42IC42LTE2IC42cy0xMC44LS4yLTE2LS42Yy00LjIgMTMtMTAuMyAyOS45LTE4LjMgNDYuOWMtOC41IDE4LjEtMTkuOCAzNy42LTM0LjIgNTNDMjM3IDQ5OC41IDIxNy4yIDUxMiAxOTIgNTEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0YzYuOCAwIDE1LTMuNSAyNC41LTEzLjdjOS41LTEwLjEgMTguMy0yNC42IDI1LjgtNDAuNWM1LjktMTIuNiAxMC43LTI1LjQgMTQuNC0zNi4yYy0yMi44LTcuNy00Mi41LTE5LTU4LjktMzEuM2MtMi45IDkuNC02IDE5LjUtOS41IDI4LjVjLTQuOCAxMi4yLTExLjYgMjUuNi0yMi43IDM2QzE1My42IDQxNy45IDEzOC40IDQyNCAxMjAgNDI0Yy0yMS40IDAtMzkuOS0xMC01My4xLTE3LjFsMCAwYy0xLjEtLjYtMi4yLTEuMi0zLjItMS43Yy0xNS04LTI2LjMtMTMuMi0zOS43LTEzLjJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjMjYuNiAwIDQ3LjMgMTAuOCA2Mi4zIDE4LjhjMTYuOCA5IDI1IDEzLjIgMzMuNyAxMy4yYzYuOCAwIDEwLjItMS45IDEyLjgtNC4zYzMuNC0zLjIgNy04LjggMTAuOC0xOC41YzMtNy43IDUuNi0xNi4xIDguNi0yNS45Yy44LTIuNyAxLjctNS42IDIuNi04LjZjMS4yLTQgMi42LTguMiA0LTEyLjVjLTMuOS00LjUtNy40LTguOC0xMC41LTEyLjdDMTM2LjkgMzAzLjUgMTIyLjUgMzEyIDEwNCAzMTJjLTE3LjUgMC0zMC43LTcuNC00MC40LTE2LjdjLTguNC04LjEtMTQuOC0xOC4zLTE5LjQtMjUuN2wtLjYtLjljLTUuNC04LjYtOC44LTEzLjktMTIuNS0xNy40Yy0yLjgtMi43LTQuNi0zLjMtNy4xLTMuM2MtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMxNy41IDAgMzAuNyA3LjQgNDAuNCAxNi43YzguNCA4LjEgMTQuOCAxOC4zIDE5LjQgMjUuN2wuNiAuOWM1LjQgOC42IDguOCAxMy45IDEyLjUgMTcuNGMyLjggMi43IDQuNiAzLjMgNy4xIDMuM2MzLjMgMCA4LjctMS43IDE5LjQtMTMuNGM1LjEtNS42IDEwLjQtMTIuMyAxNi43LTIwLjRsMS40LTEuOGM1LjgtNy40IDEyLjItMTUuNyAxOS4zLTI0YzEzLjgtMTYuMiAzMC4zLTMyLjggNTEuNC00Ni40bC0xNS4xLTMwLjJjLTEuNyAuMS0zLjQgLjItNS4xIC4yYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6bTIwOCAwYTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwZWxsQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDBDOTkuMSAwIDg3LjQgNy44IDgyLjUgMTkuN2wtNjYuNyAxNjAtMTMuMyAzMmMtNi44IDE2LjMgLjkgMzUgMTcuMiA0MS44czM1LS45IDQxLjgtMTcuMkw2Ni43IDIyNGg5MC43bDUuMSAxMi4zYzYuOCAxNi4zIDI1LjUgMjQgNDEuOCAxNy4yczI0LTI1LjUgMTcuMi00MS44bC0xMy4zLTMyLTY2LjctMTYwQzEzNi42IDcuOCAxMjQuOSAwIDExMiAwem0xOC43IDE2MEg5My4zTDExMiAxMTUuMiAxMzAuNyAxNjB6TTI1NiAzMnY5NiA5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MGM0NC4yIDAgODAtMzUuOCA4MC04MGMwLTIzLjEtOS44LTQzLjgtMjUuNC01OC40YzYtMTEuMiA5LjQtMjQgOS40LTM3LjZjMC00NC4yLTM1LjgtODAtODAtODBIMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptOTYgNjRIMzIwVjY0aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2em0tMzIgNjRoMzIgMTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMzIwVjE2MHpNNTY2LjYgMzEwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzUyIDQzNC43bC03My40LTczLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDk2IDk2YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwaWRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTguNCAzMi42YzQuOC0xMi40LTEuNC0yNi4zLTEzLjgtMzFzLTI2LjMgMS40LTMxIDEzLjhMODEuMSAxMDBjLTcuOSAyMC43LTMgNDQuMSAxMi43IDU5LjdsNTcuNCA1Ny40TDcwLjggMTkwLjNjLTIuNC0uOC00LjMtMi43LTUuMS01LjFMNDYuOCAxMjguNEM0Mi42IDExNS44IDI5IDEwOSAxNi40IDExMy4yUy0zIDEzMSAxLjIgMTQzLjZsMTguOSA1Ni44YzUuNiAxNi43IDE4LjcgMjkuOCAzNS40IDM1LjRMMTE2LjEgMjU2IDU1LjYgMjc2LjJjLTE2LjcgNS42LTI5LjggMTguNy0zNS40IDM1LjRMMS4yIDM2OC40Qy0zIDM4MSAzLjggMzk0LjYgMTYuNCAzOTguOHMyNi4yLTIuNiAzMC40LTE1LjJsMTguOS01Ni44Yy44LTIuNCAyLjctNC4zIDUuMS01LjFsODAuNC0yNi44TDkzLjcgMzUyLjNDNzguMSAzNjggNzMuMSAzOTEuNCA4MS4xIDQxMmwzMi41IDg0LjZjNC44IDEyLjQgMTguNiAxOC41IDMxIDEzLjhzMTguNS0xOC42IDEzLjgtMzFsLTMyLjUtODQuNmMtMS4xLTMtLjQtNi4zIDEuOC04LjVMMTYwIDM1My45YzEgNTIuMSA0My42IDk0LjEgOTYgOTQuMXM5NS00MS45IDk2LTk0LjFsMzIuMyAzMi4zYzIuMiAyLjIgMi45IDUuNiAxLjggOC41bC0zMi41IDg0LjZjLTQuOCAxMi40IDEuNCAyNi4zIDEzLjggMzFzMjYuMy0xLjQgMzEtMTMuOEw0MzAuOSA0MTJjNy45LTIwLjcgMy00NC4xLTEyLjctNTkuN2wtNTcuNC01Ny40IDgwLjQgMjYuOGMyLjQgLjggNC4zIDIuNyA1LjEgNS4xbDE4LjkgNTYuOGM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yczE5LjQtMTcuOCAxNS4yLTMwLjRsLTE4LjktNTYuOGMtNS42LTE2LjctMTguNy0yOS44LTM1LjQtMzUuNEwzOTUuOSAyNTZsNjAuNS0yMC4yYzE2LjctNS42IDI5LjgtMTguNyAzNS40LTM1LjRsMTguOS01Ni44YzQuMi0xMi42LTIuNi0yNi4yLTE1LjItMzAuNHMtMjYuMiAyLjYtMzAuNCAxNS4ybC0xOC45IDU2LjhjLS44IDIuNC0yLjcgNC4zLTUuMSA1LjFsLTgwLjQgMjYuOCA1Ny40LTU3LjRjMTUuNi0xNS42IDIwLjYtMzkgMTIuNy01OS43TDM5OC40IDE1LjRDMzkzLjYgMyAzNzkuOC0zLjIgMzY3LjQgMS42cy0xOC41IDE4LjYtMTMuOCAzMWwzMi41IDg0LjZjMS4xIDMgLjQgNi4zLTEuOCA4LjVMMzM2IDE3NC4xVjE2MGMwLTMxLjgtMTguNi01OS4zLTQ1LjUtNzIuMmMtOS4xLTQuNC0xOC41IDMuMy0xOC41IDEzLjRWMTEyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjEwMS4yYzAtMTAuMS05LjQtMTcuNy0xOC41LTEzLjRDMTk0LjYgMTAwLjcgMTc2IDEyOC4yIDE3NiAxNjB2MTQuMWwtNDguMy00OC4zYy0yLjItMi4yLTIuOS01LjYtMS44LTguNWwzMi41LTg0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwaW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6bTAgNDE2YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTQ4IDMwNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTQ2NC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNDIuOSA0MzdBNDggNDggMCAxIDAgNzUgMzY5LjEgNDggNDggMCAxIDAgMTQyLjkgNDM3em0wLTI5NC4yQTQ4IDQ4IDAgMSAwIDc1IDc1YTQ4IDQ4IDAgMSAwIDY3LjkgNjcuOXpNMzY5LjEgNDM3QTQ4IDQ4IDAgMSAwIDQzNyAzNjkuMSA0OCA0OCAwIDEgMCAzNjkuMSA0Mzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwbG90Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4LjUgNjIuM2wyOC4xLTM2LjlDMjQ4LjggOS40IDI2Ny44IDAgMjg4IDBjMjguNSAwIDUzLjYgMTguNyA2MS44IDQ2bDE3LjggNTkuNGMxMC4zIDM0LjQgMzYuMSA2MiA2OS44IDc0LjZsMzkuOCAxNC45YzIwLjkgNy45IDM0LjggMjcuOSAzNC44IDUwLjJjMCAxNi45LTcuOSAzMi44LTIxLjUgNDIuOWwtNjcuMyA1MC41Yy0yNC4zIDE4LjItMzcuMiA0Ny45LTMzLjggNzguMWwyLjUgMjIuN2M0LjMgMzguNy0yNiA3Mi42LTY1IDcyLjZjLTE0LjggMC0yOS4zLTUuMS00MC44LTE0LjNsLTU1LjQtNDQuM2MtNC41LTMuNi05LjMtNi43LTE0LjUtOS4yYy0xNS44LTcuOS0zMy43LTEwLjQtNTEtNy4zTDgyLjQgNDUxLjlDNDcuOCA0NTguMiAxNiA0MzEuNiAxNiAzOTYuNWMwLTEzLjIgNC43LTI2IDEzLjEtMzYuMmwxMS4yLTEzLjRjMTQuNi0xNy40IDIyLjYtMzkuNCAyMi42LTYyLjFjMC0xOC44LTUuNS0zNy4yLTE1LjgtNTNMOC44IDE3My41QzMuMSAxNjQuNyAwIDE1NC40IDAgMTQzLjljMC0zMy40IDMwLjEtNTguOCA2My01My4ybDUxLjMgOC43YzM1LjkgNi4xIDcyLjItOC4yIDk0LjItMzcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Bvb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ1LjggMjIwLjljLTE0LjUtMTcuNi0yMS44LTM5LjItMjEuOC02MC44QzIyNCA4MCAzMjAgMCA0MTYgMGM1MyAwIDk2IDQzIDk2IDk2YzAgOTYtODAgMTkyLTE2MC4yIDE5MmMtMjEuNiAwLTQzLjItNy4zLTYwLjgtMjEuOEw1NC42IDUwMi42Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDUuOCAyMjAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ByYXlDYW5TcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzMnY5NkgyMjRWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMTI4QzExMC4zIDAgOTYgMTQuMyA5NiAzMnptMCAxMjhjLTUzIDAtOTYgNDMtOTYgOTZWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDI3MmMyNi41IDAgNDgtMjEuNSA0OC00OFYyNTZjMC01My00My05Ni05Ni05Nkg5NnptNjQgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6TTM4NCA0OGMwLTEuNC0xLTMtMi4yLTMuNkwzNTIgMzIgMzM5LjYgMi4yQzMzOSAxIDMzNy40IDAgMzM2IDBzLTMgMS0zLjYgMi4yTDMyMCAzMiAyOTAuMiA0NC40QzI4OSA0NSAyODggNDYuNiAyODggNDhjMCAxLjQgMSAzIDIuMiAzLjZMMzIwIDY0bDEyLjQgMjkuOEMzMzMgOTUgMzM0LjYgOTYgMzM2IDk2czMtMSAzLjYtMi4yTDM1MiA2NGwyOS44LTEyLjRDMzgzIDUxIDM4NCA0OS40IDM4NCA0OHptNzYuNCA0NS44QzQ2MSA5NSA0NjIuNiA5NiA0NjQgOTZzMy0xIDMuNi0yLjJMNDgwIDY0bDI5LjgtMTIuNEM1MTEgNTEgNTEyIDQ5LjQgNTEyIDQ4YzAtMS40LTEtMy0yLjItMy42TDQ4MCAzMiA0NjcuNiAyLjJDNDY3IDEgNDY1LjQgMCA0NjQgMHMtMyAxLTMuNiAyLjJMNDQ4IDMyIDQxOC4yIDQ0LjRDNDE3IDQ1IDQxNiA0Ni42IDQxNiA0OGMwIDEuNCAxIDMgMi4yIDMuNkw0NDggNjRsMTIuNCAyOS44em03LjIgMTAwLjRjLS42LTEuMi0yLjItMi4yLTMuNi0yLjJzLTMgMS0zLjYgMi4yTDQ0OCAyMjRsLTI5LjggMTIuNGMtMS4yIC42LTIuMiAyLjItMi4yIDMuNmMwIDEuNCAxIDMgMi4yIDMuNkw0NDggMjU2bDEyLjQgMjkuOGMuNiAxLjIgMi4yIDIuMiAzLjYgMi4yczMtMSAzLjYtMi4yTDQ4MCAyNTZsMjkuOC0xMi40YzEuMi0uNiAyLjItMi4yIDIuMi0zLjZjMC0xLjQtMS0zLTIuMi0zLjZMNDgwIDIyNGwtMTIuNC0yOS44ek00NDggMTQ0YzAtMS40LTEtMy0yLjItMy42TDQxNiAxMjggNDAzLjYgOTguMkM0MDMgOTcgNDAxLjQgOTYgNDAwIDk2cy0zIDEtMy42IDIuMkwzODQgMTI4bC0yOS44IDEyLjRjLTEuMiAuNi0yLjIgMi4yLTIuMiAzLjZjMCAxLjQgMSAzIDIuMiAzLjZMMzg0IDE2MGwxMi40IDI5LjhjLjYgMS4yIDIuMiAyLjIgMy42IDIuMnMzLTEgMy42LTIuMkw0MTYgMTYwbDI5LjgtMTIuNGMxLjItLjYgMi4yLTIuMiAyLjItMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcHJheUNhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5Nkg5NlYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMCAyNTZjMC01MyA0My05NiA5Ni05NkgyMjRjNTMgMCA5NiA0MyA5NiA5NlY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjI1NnptMjQwIDgwQTgwIDgwIDAgMSAwIDgwIDMzNmE4MCA4MCAwIDEgMCAxNjAgMHpNMjU2IDY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTM4NCAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTY0IDMyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTMyIDY0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpNNDQ4IDI1NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwek0zODQgMTI4YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQXJyb3dVcFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NHpNMTYwIDE0NGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg5NC4xTDExOSAzMjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGwxMzUtMTM1VjMyOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE2OGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUNhcmV0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDgwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDB6TTIyNCAzNTJjLTYuNyAwLTEzLTIuOC0xNy42LTcuN2wtMTA0LTExMmMtNi41LTctOC4yLTE3LjItNC40LTI1LjlzMTIuNS0xNC40IDIyLTE0LjRsMjA4IDBjOS41IDAgMTguMiA1LjcgMjIgMTQuNHMyLjEgMTguOS00LjQgMjUuOWwtMTA0IDExMmMtNC41IDQuOS0xMC45IDcuNy0xNy42IDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQ2FyZXRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwYzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZ6TTEyOCAyNTZjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRzMTQuNCAxMi41IDE0LjQgMjJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUNhcmV0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0TDY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZMMCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzIwIDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRsMC0zMjB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNHMtMTQuNC0xMi41LTE0LjQtMjJsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUNhcmV0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjQgMTYwYzYuNyAwIDEzIDIuOCAxNy42IDcuN2wxMDQgMTEyYzYuNSA3IDguMiAxNy4yIDQuNCAyNS45cy0xMi41IDE0LjQtMjIgMTQuNEgxMjBjLTkuNSAwLTE4LjItNS43LTIyLTE0LjRzLTIuMS0xOC45IDQuNC0yNS45bDEwNC0xMTJjNC41LTQuOSAxMC45LTcuNyAxNy42LTcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0zMzcgMjA5TDIwOSAzMzdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDMwMyAxNzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVFbnZlbG9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIxOCAyNzEuN0w2NC4yIDE3Mi40QzY2IDE1Ni40IDc5LjUgMTQ0IDk2IDE0NEgzNTJjMTYuNSAwIDMwIDEyLjQgMzEuOCAyOC40TDIzMCAyNzEuN2MtMS44IDEuMi0zLjkgMS44LTYgMS44cy00LjItLjYtNi0xLjh6bTI5LjQgMjYuOUwzODQgMjEwLjRWMzM2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMTAuNGwxMzYuNiA4OC4yYzcgNC41IDE1LjEgNi45IDIzLjQgNi45czE2LjQtMi40IDIzLjQtNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMEg1MTJWNTEySDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlSCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTMzNiAxNTJWMjU2IDM2MGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYyODBIMTYwbDAgODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRsMC0yMDhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY4MEgyODhWMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZU1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptODggMjAwSDI5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZU5maSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em03NS43IDY0LjZDNjguOCAxNjIuNSA2NCAxNjguOCA2NCAxNzZWMzM2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjMzLjhsNjYuMyAxMTAuNWMzLjcgNi4yIDExLjEgOS4xIDE4IDcuMnMxMS43LTguMiAxMS43LTE1LjRWMTc2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjI3OC4yTDkzLjcgMTY3LjhjLTMuNy02LjItMTEuMS05LjEtMTgtNy4yek0yMjQgMTc2djY0IDk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjU2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDI1NlYxOTJoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMjQwYy04LjggMC0xNiA3LjItMTYgMTZ6bTE2MCAwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2VjMzNmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGFya2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTE5MiAyNTZoNDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkydjY0em00OCA2NEgxOTJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjg4IDE2OGMwLTIyLjEgMTcuOS00MCA0MC00MGg3MmM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMzI1LjggMTM5LjdsMTQuNCAxNC40YzE1LjYgMTUuNiAxNS42IDQwLjkgMCA1Ni42bC0yMS40IDIxLjQtNzEtNzEgMjEuNC0yMS40YzE1LjYtMTUuNiA0MC45LTE1LjYgNTYuNiAwek0xMTkuOSAyODlMMjI1LjEgMTgzLjhsNzEgNzFMMTkwLjkgMzU5LjljLTQuMSA0LjEtOS4yIDctMTQuOSA4LjRsLTYwLjEgMTVjLTUuNSAxLjQtMTEuMi0uMi0xNS4yLTQuMnMtNS42LTkuNy00LjItMTUuMmwxNS02MC4xYzEuNC01LjYgNC4zLTEwLjggOC40LTE0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBlcnNvbkNvbmZpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHptOTYgMTEyYTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6bTgwIDEwNGMwLTMwLjkgMjUuMS01NiA1Ni01NnM1NiAyNS4xIDU2IDU2VjM1MC4xYzAgMzYuNC0yOS41IDY1LjktNjUuOSA2NS45Yy0xNy41IDAtMzQuMy02LjktNDYuNi0xOS4zTDE4NC44IDM0MmwtMjguMSA1Ni4zYy03LjkgMTUuOC0yNy4xIDIyLjItNDIuOSAxNC4zcy0yMi4yLTI3LjEtMTQuMy00Mi45bDQ4LTk2YzQuNi05LjIgMTMuMy0xNS42IDIzLjUtMTcuM3MyMC41IDEuNyAyNy44IDlMMjQwIDMwNi43VjI0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGhvbmVGbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NHptLTkwLjcgOTYuN2MtOS43LTIuNi0xOS45IDIuMy0yMy43IDExLjZsLTIwIDQ4Yy0zLjQgOC4yLTEgMTcuNiA1LjggMjMuMkwyODAgMjMxLjdjLTE2LjYgMzUuMi00NS4xIDYzLjctODAuMyA4MC4zbC0yMC4yLTI0LjdjLTUuNi02LjgtMTUtOS4yLTIzLjItNS44bC00OCAyMGMtOS4zIDMuOS0xNC4yIDE0LTExLjYgMjMuN2wxMiA0NEMxMTEuMSAzNzggMTE5IDM4NCAxMjggMzg0YzEyMy43IDAgMjI0LTEwMC4zIDIyNC0yMjRjMC05LTYtMTYuOS0xNC43LTE5LjNsLTQ0LTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTkwLjcgOTYuN2M5LjctMi42IDE5LjkgMi4zIDIzLjcgMTEuNmwyMCA0OGMzLjQgOC4yIDEgMTcuNi01LjggMjMuMkwxNjggMjMxLjdjMTYuNiAzNS4yIDQ1LjEgNjMuNyA4MC4zIDgwLjNsMjAuMi0yNC43YzUuNi02LjggMTUtOS4yIDIzLjItNS44bDQ4IDIwYzkuMyAzLjkgMTQuMiAxNCAxMS42IDIzLjdsLTEyIDQ0QzMzNi45IDM3OCAzMjkgMzg0IDMyMCAzODRDMTk2LjMgMzg0IDk2IDI4My43IDk2IDE2MGMwLTkgNi0xNi45IDE0LjctMTkuM2w0NC0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIwMCAzNDRWMjgwSDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg2NFYxNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY2NGg2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNDh2NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVBvbGxIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NmMwLTM1LjMtMjguNy02NC02NC02NEw2NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2TDAgNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0bDMyMCAwYzM1LjMgMCA2NC0yOC43IDY0LTY0bDAtMzIwek0yNTYgMTYwYzAgMTcuNy0xNC4zIDMyLTMyIDMybC05NiAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMybDk2IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ6bTY0IDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMybC0xOTIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwxOTIgMHpNMTkyIDM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMmwtMzIgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmwzMiAwYzE3LjcgMCAzMiAxNC4zIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVQb2xsVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em02NCAxOTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMyem02NC02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyVjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxNjB6TTMyMCAyODhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmVSb290VmFyaWFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgyLjYgNzguMWM4LTI3LjMgMzMtNDYuMSA2MS40LTQ2LjFINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM0NEwyMzguNyA0NTdjLTMuNiAxMi4zLTE0LjEgMjEuMi0yNi44IDIyLjhzLTI1LjEtNC42LTMxLjUtMTUuNkw3Ny42IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg3Ny42YzIyLjggMCA0My44IDEyLjEgNTUuMyAzMS44bDY1LjIgMTExLjhMMjgyLjYgNzguMXpNMzkzLjQgMjMzLjRjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBMNDgwIDI3NC43bDQxLjQtNDEuNGMxMi41LTEyLjUgMzIuOC0xMi41IDQ1LjMgMHMxMi41IDMyLjggMCA0NS4zTDUyNS4zIDMyMGw0MS40IDQxLjRjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNzLTMyLjggMTIuNS00NS4zIDBMNDgwIDM2NS4zbC00MS40IDQxLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zTDQzNC43IDMyMGwtNDEuNC00MS40Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUnNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNOTYgMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTExMC41LTg5LjUtMjAwLTIwMC0yMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0YzgzLjkgMCAxNTIgNjguMSAxNTIgMTUyYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0YzAtNTcuNC00Ni42LTEwNC0xMDQtMTA0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMCAxMjBhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlU2hhcmVOb2RlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTM4NCAxNjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRjLTE1LjQgMC0yOS41LTUuNC00MC42LTE0LjVMMTk0LjEgMjU2bDg1LjMgNDYuNWMxMS05LjEgMjUuMi0xNC41IDQwLjYtMTQuNWMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NGMwLTIuNSAuMS00LjkgLjQtNy4zTDE3NC41IDMwMGMtMTEuNyAxMi4zLTI4LjIgMjAtNDYuNSAyMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NGMxOC4zIDAgMzQuOCA3LjcgNDYuNSAyMGw4MS45LTQ0LjdjLS4zLTIuNC0uNC00LjktLjQtNy4zYzAtMzUuMyAyOC43LTY0IDY0LTY0czY0IDI4LjcgNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVVwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0ek0zMjAgMzEzLjRWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkgxNjYuNmMtMTIuNSAwLTIyLjYgMTAuMS0yMi42IDIyLjZjMCA2IDIuNCAxMS44IDYuNiAxNkwxODQgMjMybC02Ni4zIDY2LjNDMTE0IDMwMiAxMTIgMzA2LjkgMTEyIDMxMnMyIDEwIDUuNyAxMy43bDM2LjcgMzYuN2MzLjYgMy42IDguNSA1LjcgMTMuNyA1LjdzMTAtMiAxMy43LTUuN0wyNDggMjk2bDMzLjQgMzMuNGM0LjIgNC4yIDEwIDYuNiAxNiA2LjZjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZVZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjIzLjggOTMuN2MxMy4zIDAgMjQgMTAuNyAyNCAyNGMwIDI5LjMgMzUuNCA0My45IDU2LjEgMjMuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjljLTIwLjcgMjAuNy02IDU2LjEgMjMuMiA1Ni4xYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0Yy0yOS4zIDAtNDMuOSAzNS40LTIzLjIgNTYuMWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwYy0yMC43LTIwLjctNTYuMS02LTU2LjEgMjMuMmMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNGMwLTI5LjMtMzUuNC00My45LTU2LjEtMjMuMmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWMyMC43LTIwLjcgNi01Ni4xLTIzLjItNTYuMWMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGMyOS4zIDAgNDMuOS0zNS40IDIzLjItNTYuMWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwYzIwLjcgMjAuNyA1Ni4xIDYgNTYuMS0yMy4yYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0xOTIgMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptODggMzJhMjQgMjQgMCAxIDAgLTQ4IDAgMjQgMjQgMCAxIDAgNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em03OSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFmZlNuYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMi42IDQzLjJsLS4xIDQuOEgyODhjNTMgMCA5NiA0MyA5NiA5NnMtNDMgOTYtOTYgOTZIMjQ4VjE2MGg0MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyNDggMjIwbC00LjUgMTQ0SDI1NmM1MyAwIDk2IDQzIDk2IDk2cy00MyA5Ni05NiA5NkgyNDBWMzg0aDE2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDIxM2wtMy4xIDk5LjVMMjA4LjUgNDk1bDAgMWMtLjMgOC45LTcuNiAxNi0xNi41IDE2cy0xNi4yLTcuMS0xNi41LTE2bDAtMS0xLTMxSDEzNmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MGgzNmwtMS0zMkgxNTJjLTUzIDAtOTYtNDMtOTYtOTZjMC00Ny42IDM0LjYtODcuMSA4MC05NC43VjI1NmMwIDguOCA3LjIgMTYgMTYgMTZoMTYuNUwxNjQgMTI4SDEzNiAxMjIuNmMtOSAxOC45LTI4LjMgMzItNTAuNiAzMkg1NmMtMzAuOSAwLTU2LTI1LjEtNTYtNTZTMjUuMSA0OCA1NiA0OGg4IDggODkuNWwtLjEtNC44TDE2MSAzMmMwLS43IDAtMS4zIDAtMS45Yy41LTE2LjYgMTQuMS0zMCAzMS0zMHMzMC41IDEzLjQgMzEgMzBjMCAuNiAwIDEuMyAwIDEuOWwtLjQgMTEuMnpNNjQgMTEyYTE2IDE2IDAgMSAwIDAtMzIgMTYgMTYgMCAxIDAgMCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhaXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA2NGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg1NDRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDQ4djk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyMHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgxOTJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOTZWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2VjE5MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg5NlY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDIwMS44YzAtMTcuNCA5LjItMzMuMiAxOS45LTQ3QzM0NC41IDEzOC41IDM1MiAxMTguMSAzNTIgOTZjMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMi4xIDcuNSA0Mi41IDIwLjEgNTguOGMxMC43IDEzLjggMTkuOSAyOS42IDE5LjkgNDdjMCAyOS45LTI0LjMgNTQuMi01NC4yIDU0LjJIMTEyQzUwLjEgMjU2IDAgMzA2LjEgMCAzNjhjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zVjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEg0MzJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDEzLjNjMTguNi02LjYgMzItMjQuNCAzMi00NS4zYzAtNjEuOS01MC4xLTExMi0xMTItMTEySDM2Ni4yYy0yOS45IDAtNTQuMi0yNC4zLTU0LjItNTQuMnpNNDE2IDQxNnYzMkg5NlY0MTZINDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFwbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyOTkuM1YzMDQgNDMyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDUxMiA0NDggNjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJINDQ4VjM2OEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMjE5LjRMMzMuOCAyMTRDMTQuMiAyMTAuNSAwIDE5My41IDAgMTczLjdjMC04LjkgMi45LTE3LjUgOC4yLTI0LjZsMzUuNi00Ny41Qzc2LjcgNTcuOCAxMjguMiAzMiAxODIuOSAzMmMyNyAwIDUzLjYgNi4zIDc3LjggMTguNEw1ODYuOSAyMTMuNUM2MTkuNSAyMjkuNyA2NDAgMjYzIDY0MCAyOTkuM3pNNDQ4IDMwNFYyODhMMTI4IDIzMC45VjMwNEg0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJBbmRDcmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NkMwIDExNC42IDExNC42IDAgMjU2IDBjMzMgMCA2NC42IDYuMyA5My42IDE3LjdjNy40IDIuOSAxMS41IDEwLjcgOS44IDE4LjRzLTguOCAxMy0xNi43IDEyLjRjLTQuOC0uMy05LjctLjUtMTQuNi0uNWMtMTE0LjkgMC0yMDggOTMuMS0yMDggMjA4czkzLjEgMjA4IDIwOCAyMDhjNC45IDAgOS44LS4yIDE0LjYtLjVjNy45LS41IDE1IDQuNyAxNi43IDEyLjRzLTIuNCAxNS41LTkuOCAxOC40QzMyMC42IDUwNS43IDI4OSA1MTIgMjU2IDUxMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnpNMzc1LjQgMTM3LjRjMy41LTcuMSAxMy43LTcuMSAxNy4yIDBsMzEuNSA2My44YzEuNCAyLjggNC4xIDQuOCA3LjIgNS4zbDcwLjQgMTAuMmM3LjkgMS4xIDExIDEwLjggNS4zIDE2LjRsLTUwLjkgNDkuNmMtMi4zIDIuMi0zLjMgNS40LTIuOCA4LjVsMTIgNzAuMWMxLjMgNy44LTYuOSAxMy44LTEzLjkgMTAuMWwtNjMtMzMuMWMtMi44LTEuNS02LjEtMS41LTguOSAwbC02MyAzMy4xYy03IDMuNy0xNS4zLTIuMy0xMy45LTEwLjFsMTItNzAuMWMuNS0zLjEtLjUtNi4zLTIuOC04LjVMMjYxIDIzMy4xYy01LjctNS42LTIuNi0xNS4yIDUuMy0xNi40bDcwLjQtMTAuMmMzLjEtLjUgNS44LTIuNCA3LjItNS4zbDMxLjUtNjMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckhhbGZTdHJva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDM3Ni40bC4xLS4xIDI2LjQgMTQuMSA4NS4yIDQ1LjUtMTYuNS05Ny42LTQuOC0yOC43IDIwLjctMjAuNSA3MC4xLTY5LjMtOTYuMS0xNC4yLTI5LjMtNC4zLTEyLjktMjYuNkwyODguMSA4Ni45bC0uMSAuM1YzNzYuNHptMTc1LjEgOTguM2MyIDEyLTMgMjQuMi0xMi45IDMxLjNzLTIzIDgtMzMuOCAyLjNMMjg4LjEgNDM5LjggMTU5LjggNTA4LjNDMTQ5IDUxNCAxMzUuOSA1MTMuMSAxMjYgNTA2cy0xNC45LTE5LjMtMTIuOS0zMS4zTDEzNy44IDMyOSAzMy42IDIyNS45Yy04LjYtOC41LTExLjctMjEuMi03LjktMzIuN3MxMy43LTE5LjkgMjUuNy0yMS43TDE5NSAxNTAuMyAyNTkuNCAxOGM1LjQtMTEgMTYuNS0xOCAyOC44LTE4czIzLjQgNyAyOC44IDE4bDY0LjMgMTMyLjMgMTQzLjYgMjEuMmMxMiAxLjggMjIgMTAuMiAyNS43IDIxLjdzLjcgMjQuMi03LjkgMzIuN0w0MzguNSAzMjlsMjQuNiAxNDUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjLTEyLjIgLjEtMjMuMyA3LTI4LjYgMThMMTk1IDE1MC4zIDUxLjQgMTcxLjVjLTEyIDEuOC0yMiAxMC4yLTI1LjcgMjEuN3MtLjcgMjQuMiA3LjkgMzIuN0wxMzcuOCAzMjkgMTEzLjIgNDc0LjdjLTIgMTIgMyAyNC4yIDEyLjkgMzEuM3MyMyA4IDMzLjggMi4zTDI4OCA0MzkuOFYwek00MjkuOSA1MTJjMS4xIC4xIDIuMSAuMSAzLjIgMGgtMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyT2ZEYXZpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDQuMiAzMDkuNUwzODMuMSAzNDRoNDIuM2wtMjEuMS0zNC41ek0zNzEuNCAyNTZsLTU0LTg4SDE5NC42bC01NCA4OCA1NCA4OEgzMTcuNGw1NC04OHptNjUuNyAwbDUzLjQgODdjMy42IDUuOSA1LjUgMTIuNyA1LjUgMTkuNmMwIDIwLjctMTYuOCAzNy40LTM3LjQgMzcuNEgzNDguN2wtNTYuMiA5MS41QzI4NC44IDUwNC4zIDI3MC45IDUxMiAyNTYgNTEycy0yOC44LTcuNy0zNi42LTIwLjVMMTYzLjMgNDAwSDUzLjRDMzIuOCA0MDAgMTYgMzgzLjIgMTYgMzYyLjZjMC02LjkgMS45LTEzLjcgNS41LTE5LjZsNTMuNC04N0wyMS41IDE2OWMtMy42LTUuOS01LjUtMTIuNy01LjUtMTkuNkMxNiAxMjguOCAzMi44IDExMiA1My40IDExMkgxNjMuM2w1Ni4yLTkxLjVDMjI3LjIgNy43IDI0MS4xIDAgMjU2IDBzMjguOCA3LjcgMzYuNiAyMC41TDM0OC43IDExMkg0NTguNmMyMC43IDAgMzcuNCAxNi44IDM3LjQgMzcuNGMwIDYuOS0xLjkgMTMuNy01LjUgMTkuNmwtNTMuNCA4N3ptLTU0LTg4bDIxLjEgMzQuNUw0MjUuNCAxNjhIMzgzLjF6TTI4MyAxMTJMMjU2IDY4bC0yNyA0NGg1NHpNMTI4LjkgMTY4SDg2LjZsMjEuMSAzNC41TDEyOC45IDE2OHpNMTA3LjggMzA5LjVMODYuNiAzNDRoNDIuM2wtMjEuMS0zNC41ek0yMjkgNDAwbDI3IDQ0IDI3LTQ0SDIyOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Rhck9mTGlmZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMzJjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMTcyLjlsMTIyLTcwLjRjMTUuMy04LjggMzQuOS0zLjYgNDMuNyAxMS43bDE2IDI3LjdjOC44IDE1LjMgMy42IDM0LjktMTEuNyA0My43TDM1MiAyNTZsMTIyIDcwLjRjMTUuMyA4LjggMjAuNSAyOC40IDExLjcgNDMuN2wtMTYgMjcuN2MtOC44IDE1LjMtMjguNCAyMC42LTQzLjcgMTEuN0wzMDQgMzM5LjFWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDI0MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzM5LjFMODYgNDA5LjZjLTE1LjMgOC44LTM0LjkgMy42LTQzLjctMTEuN2wtMTYtMjcuN2MtOC44LTE1LjMtMy42LTM0LjkgMTEuNy00My43TDE2MCAyNTYgMzggMTg1LjZjLTE1LjMtOC44LTIwLjUtMjguNC0xMS43LTQzLjdsMTYtMjcuN0M1MS4xIDk4LjggNzAuNyA5My42IDg2IDEwMi40bDEyMiA3MC40VjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNi45IDE4QzMxMS42IDcgMzAwLjQgMCAyODguMSAwcy0yMy40IDctMjguOCAxOEwxOTUgMTUwLjMgNTEuNCAxNzEuNWMtMTIgMS44LTIyIDEwLjItMjUuNyAyMS43cy0uNyAyNC4yIDcuOSAzMi43TDEzNy44IDMyOSAxMTMuMiA0NzQuN2MtMiAxMiAzIDI0LjIgMTIuOSAzMS4zczIzIDggMzMuOCAyLjNsMTI4LjMtNjguNSAxMjguMyA2OC41YzEwLjggNS43IDIzLjkgNC45IDMzLjgtMi4zczE0LjktMTkuMyAxMi45LTMxLjNMNDM4LjUgMzI5IDU0Mi43IDIyNS45YzguNi04LjUgMTEuNy0yMS4yIDcuOS0zMi43cy0xMy43LTE5LjktMjUuNy0yMS43TDM4MS4yIDE1MC4zIDMxNi45IDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVybGluZ1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDE2MC40YzAtMzUuNSAyOC44LTY0LjQgNjQuNC02NC40YzYuOSAwIDEzLjggMS4xIDIwLjQgMy4zbDgxLjIgMjcuMWMxNi44IDUuNiAzNC45LTMuNSA0MC41LTIwLjJzLTMuNS0zNC45LTIwLjItNDAuNUwyMTcgMzguNmMtMTMuMS00LjQtMjYuOC02LjYtNDAuNi02LjZDMTA1LjUgMzIgNDggODkuNSA0OCAxNjAuNFYyMjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINDh2NDQuNWMwIDE3LjQtNC43IDM0LjUtMTMuNyA0OS40TDQuNiA0MzEuNWMtNS45IDkuOS02LjEgMjIuMi0uNCAzMi4yUzIwLjUgNDgwIDMyIDQ4MEgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIODguNWwuNy0xLjFDMTA0LjEgMzkwIDExMiAzNjEuNSAxMTIgMzMyLjVWMjg4SDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxMTJWMTYwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZXRob3Njb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Mi40IDIxLjljNS42IDE2LjgtMy41IDM0LjktMjAuMiA0MC41TDk2IDcxLjFWMTkyYzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZWNzEuMWwtMjYuMS04LjdjLTE2LjgtNS42LTI1LjgtMjMuNy0yMC4yLTQwLjVzMjMuNy0yNS44IDQwLjUtMjAuMmwyNi4xIDguN0MzMzQuNCAxOS4xIDM1MiA0My41IDM1MiA3MS4xVjE5MmMwIDc3LjItNTQuNiAxNDEuNi0xMjcuMyAxNTYuN0MyMzEgNDA0LjYgMjc4LjQgNDQ4IDMzNiA0NDhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJWMjY1LjNjLTI4LjMtMTIuMy00OC00MC41LTQ4LTczLjNjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGMwIDMyLjgtMTkuNyA2MS00OCA3My4zVjMzNmMwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtOTIuOSAwLTE2OC45LTcxLjktMTc1LjUtMTYzLjFDODcuMiAzMzQuMiAzMiAyNjkuNiAzMiAxOTJWNzEuMWMwLTI3LjUgMTcuNi01MiA0My44LTYwLjdsMjYuMS04LjdjMTYuOC01LjYgMzQuOSAzLjUgNDAuNSAyMC4yek00ODAgMjI0YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzg0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3B3YXRjaDIwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDE2Vjk4LjRDOTIuMyAxMTMuOCAxNiAyMDAgMTYgMzA0YzAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOHMyMDgtOTMuMSAyMDgtMjA4YzAtNDEuOC0xMi4zLTgwLjctMzMuNS0xMTMuMmwyNC4xLTI0LjFjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzU1LjcgMTQzYy0yOC4xLTIzLTYyLjItMzguOC05OS43LTQ0LjZWNjRoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTc2ek0yODggMjA0YzI4LjcgMCA1MiAyMy4zIDUyIDUydjk2YzAgMjguNy0yMy4zIDUyLTUyIDUycy01Mi0yMy4zLTUyLTUyVjI1NmMwLTI4LjcgMjMuMy01MiA1Mi01MnptLTEyIDUydjk2YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJWMjU2YzAtNi42LTUuNC0xMi0xMi0xMnMtMTIgNS40LTEyIDEyek0xNTkuNSAyNDRjLTUuNCAwLTEwLjIgMy41LTExLjkgOC42bC0uNiAxLjdjLTMuNSAxMC41LTE0LjggMTYuMS0yNS4zIDEyLjZzLTE2LjEtMTQuOC0xMi42LTI1LjNsLjYtMS43YzcuMi0yMS41IDI3LjItMzUuOSA0OS44LTM1LjljMjkgMCA1Mi41IDIzLjUgNTIuNSA1Mi41djIuMmMwIDEzLjQtNC45IDI2LjQtMTMuOCAzNi40bC0zOSA0My45Yy02LjIgNy0xMCAxNS43LTEwLjkgMjQuOUgxOTJjMTEgMCAyMCA5IDIwIDIwcy05IDIwLTIwIDIwSDEyOGMtMTEgMC0yMC05LTIwLTIwVjM2OC4zYzAtMjAuNiA3LjUtNDAuNCAyMS4yLTU1LjhsMzktNDMuOWMyLjQtMi43IDMuNy02LjIgMy43LTkuOHYtMi4yYzAtNi45LTUuNi0xMi41LTEyLjUtMTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcHdhdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDE2Vjk4LjRDOTIuMyAxMTMuOCAxNiAyMDAgMTYgMzA0YzAgMTE0LjkgOTMuMSAyMDggMjA4IDIwOHMyMDgtOTMuMSAyMDgtMjA4YzAtNDEuOC0xMi4zLTgwLjctMzMuNS0xMTMuMmwyNC4xLTI0LjFjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMzU1LjcgMTQzYy0yOC4xLTIzLTYyLjItMzguOC05OS43LTQ0LjZWNjRoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjI0IDE3NnptNzIgMTkyVjMyMGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFYxOTJjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RvcmVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC04Ni44LTY4VjM4NCAyNTIuNmMtNCAxLTggMS44LTEyLjMgMi4zbC0uMSAwYy01LjMgLjctMTAuNyAxLjEtMTYuMiAxLjFjLTEyLjQgMC0yNC4zLTEuOS0zNS40LTUuM1YzNTAuOUwzMDEuMiAyMTAuN2M3LTQuNCAxMy4zLTkuNyAxOC44LTE1LjdjMTUuOSAxNy42IDM5LjEgMjkgNjUuMiAyOWMyNi4yIDAgNDkuMy0xMS40IDY1LjItMjljMTYgMTcuNiAzOS4xIDI5IDY1LjIgMjljNC4xIDAgOC4xLS4zIDEyLjEtLjhjNTUuNS03LjQgODEuOC03Mi41IDUyLjEtMTE5LjRMNTIyLjMgMTMuMUM1MTcuMiA1IDUwOC4xIDAgNDk4LjQgMEgxNDEuNmMtOS43IDAtMTguOCA1LTIzLjkgMTMuMWwtMjIuNyAzNkwzOC44IDUuMXpNNTE0LjkgNTAxLjdMMzY1LjUgMzg0SDE2MFYyNTAuNmMtMTEuMiAzLjUtMjMuMiA1LjQtMzUuNiA1LjRjLTUuNSAwLTExLS40LTE2LjMtMS4xbC0uMSAwYy00LjEtLjYtOC4xLTEuMy0xMi0yLjNWMzg0djY0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDQ4MGMxMi45IDAgMjQuOC0zLjggMzQuOS0xMC4zek0xNTUuMyAyMTguNEw0OC45IDEzNC41Yy02LjEgNDAuNiAxOS41IDgyLjggNjMuMyA4OC43YzQgLjUgOC4xIC44IDEyLjEgLjhjMTEgMCAyMS40LTIgMzEtNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDcuNiAxMDMuOEw0OTAuMyAxMy4xQzQ4NS4yIDUgNDc2LjEgMCA0NjYuNCAwSDEwOS42Qzk5LjkgMCA5MC44IDUgODUuNyAxMy4xTDI4LjMgMTAzLjhjLTI5LjYgNDYuOC0zLjQgMTExLjkgNTEuOSAxMTkuNGM0IC41IDguMSAuOCAxMi4xIC44YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjEgMCA0OS4zLTExLjQgNjUuMi0yOWMxNS45IDE3LjYgMzkuMSAyOSA2NS4yIDI5YzI2LjIgMCA0OS4zLTExLjQgNjUuMi0yOWMxNiAxNy42IDM5LjEgMjkgNjUuMiAyOWM0LjEgMCA4LjEtLjMgMTIuMS0uOGM1NS41LTcuNCA4MS44LTcyLjUgNTIuMS0xMTkuNHpNNDk5LjcgMjU0LjlsLS4xIDBjLTUuMyAuNy0xMC43IDEuMS0xNi4yIDEuMWMtMTIuNCAwLTI0LjMtMS45LTM1LjQtNS4zVjM4NEgxMjhWMjUwLjZjLTExLjIgMy41LTIzLjIgNS40LTM1LjYgNS40Yy01LjUgMC0xMS0uNC0xNi4zLTEuMWwtLjEgMGMtNC4xLS42LTguMS0xLjMtMTItMi4zVjM4NHY2NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMzg0IDI1Mi42Yy00IDEtOCAxLjgtMTIuMyAyLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmVldFZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDY0QTY0IDY0IDAgMSAwIDE5MiA2NGE2NCA2NCAwIDEgMCAxMjggMHptLTk2IDk2Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxLjhsMTEuMSA5OS41YzEuOCAxNi4yIDE1LjUgMjguNSAzMS44IDI4LjVoMzguN2MxNi4zIDAgMzAtMTIuMyAzMS44LTI4LjVMMzE4LjIgMzA0SDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjI0ek0xMzIuMyAzOTQuMmMxMy0yLjQgMjEuNy0xNC45IDE5LjMtMjcuOXMtMTQuOS0yMS43LTI3LjktMTkuM2MtMzIuNCA1LjktNjAuOSAxNC4yLTgyIDI0LjhjLTEwLjUgNS4zLTIwLjMgMTEuNy0yNy44IDE5LjZDNi40IDM5OS41IDAgNDEwLjUgMCA0MjRjMCAyMS40IDE1LjUgMzYuMSAyOS4xIDQ1YzE0LjcgOS42IDM0LjMgMTcuMyA1Ni40IDIzLjRDMTMwLjIgNTA0LjcgMTkwLjQgNTEyIDI1NiA1MTJzMTI1LjgtNy4zIDE3MC40LTE5LjZjMjIuMS02LjEgNDEuOC0xMy44IDU2LjQtMjMuNGMxMy43LTguOSAyOS4xLTIzLjYgMjkuMS00NWMwLTEzLjUtNi40LTI0LjUtMTQtMzIuNmMtNy41LTcuOS0xNy4zLTE0LjMtMjcuOC0xOS42Yy0yMS0xMC42LTQ5LjUtMTguOS04Mi0yNC44Yy0xMy0yLjQtMjUuNSA2LjMtMjcuOSAxOS4zczYuMyAyNS41IDE5LjMgMjcuOWMzMC4yIDUuNSA1My43IDEyLjggNjkgMjAuNWMzLjIgMS42IDUuOCAzLjEgNy45IDQuNWMzLjYgMi40IDMuNiA3LjIgMCA5LjZjLTguOCA1LjctMjMuMSAxMS44LTQzIDE3LjNDMzc0LjMgNDU3IDMxOC41IDQ2NCAyNTYgNDY0cy0xMTguMy03LTE1Ny43LTE3LjljLTE5LjktNS41LTM0LjItMTEuNi00My0xNy4zYy0zLjYtMi40LTMuNi03LjIgMC05LjZjMi4xLTEuNCA0LjgtMi45IDcuOS00LjVjMTUuMy03LjcgMzguOC0xNC45IDY5LTIwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmlrZXRocm91Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYxLjMgMTQ0YzMuMi0xNy4yIDE0LTMwLjEgMzMuNy0zOC42YzIxLjEtOSA1MS44LTEyLjMgODguNi02LjVjMTEuOSAxLjkgNDguOCA5LjEgNjAuMSAxMmMxNy4xIDQuNSAzNC42LTUuNiAzOS4yLTIyLjdzLTUuNi0zNC42LTIyLjctMzkuMmMtMTQuMy0zLjgtNTMuNi0xMS40LTY2LjYtMTMuNGMtNDQuNy03LTg4LjMtNC4yLTEyMy43IDEwLjljLTM2LjUgMTUuNi02NC40IDQ0LjgtNzEuOCA4Ny4zYy0uMSAuNi0uMiAxLjEtLjIgMS43Yy0yLjggMjMuOSAuNSA0NS42IDEwLjEgNjQuNmM0LjUgOSAxMC4yIDE2LjkgMTYuNyAyMy45SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNzAuMWMtLjEgMC0uMy0uMS0uNC0uMWwtMS4xLS4zYy0zNi0xMC44LTY1LjItMTkuNi04NS4yLTMzLjFjLTkuMy02LjMtMTUtMTIuNi0xOC4yLTE5LjFjLTMuMS02LjEtNS4yLTE0LjYtMy44LTI3LjR6TTM0OC45IDMzNy4yYzIuNyA2LjUgNC40IDE1LjggMS45IDMwLjFjLTMgMTcuNi0xMy44IDMwLjgtMzMuOSAzOS40Yy0yMS4xIDktNTEuNyAxMi4zLTg4LjUgNi41Yy0xOC0yLjktNDkuMS0xMy41LTc0LjQtMjIuMWMtNS42LTEuOS0xMS0zLjctMTUuOS01LjRjLTE2LjgtNS42LTM0LjkgMy41LTQwLjUgMjAuM3MzLjUgMzQuOSAyMC4zIDQwLjVjMy42IDEuMiA3LjkgMi43IDEyLjcgNC4zbDAgMCAwIDBjMjQuOSA4LjUgNjMuNiAyMS43IDg3LjYgMjUuNmwwIDAgLjIgMGM0NC43IDcgODguMyA0LjIgMTIzLjctMTAuOWMzNi41LTE1LjYgNjQuNC00NC44IDcxLjgtODcuM2MzLjYtMjEgMi43LTQwLjQtMy4xLTU4LjFIMzM1LjFjNyA1LjYgMTEuNCAxMS4yIDEzLjkgMTcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Ryb29wd2FmZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0zMTIuNiA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgOTcuNiAyMjIuMSA2My43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDMzLjkgMzMuOS00NS4zIDQ1LjMtNTYuNi01Ni42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDU2LjYgNTYuNi00NS4zIDQ1LjNMODYuMyAxOTkuNGMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBzLTYuMiAxNi40IDAgMjIuNkw5Ny42IDI1NiA2My43IDI4OS45Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnMxNi40IDYuMiAyMi42IDBsMzMuOS0zMy45IDQ1LjMgNDUuMy01Ni42IDU2LjZjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42czE2LjQgNi4yIDIyLjYgMGw1Ni42LTU2LjYgNDUuMyA0NS4zLTMzLjkgMzMuOWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZzMTYuNCA2LjIgMjIuNiAwTDI1NiA0MTQuNGwzMy45IDMzLjljNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC0zMy45LTMzLjkgNDUuMy00NS4zIDU2LjYgNTYuNmM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU2LjYtNTYuNiA0NS4zLTQ1LjMgMzMuOSAzMy45YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwczYuMi0xNi40IDAtMjIuNkw0MTQuNCAyNTZsMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTMzLjkgMzMuOS00NS4zLTQ1LjMgNTYuNi01Ni42YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42cy0xNi40LTYuMi0yMi42IDBsLTU2LjYgNTYuNi00NS4zLTQ1LjMgMzMuOS0zMy45YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42ek0xNDIuOSAyNTZsNDUuMy00NS4zTDIzMy40IDI1NmwtNDUuMyA0NS4zTDE0Mi45IDI1NnptNjcuOSA2Ny45TDI1NiAyNzguNmw0NS4zIDQ1LjNMMjU2IDM2OS4xbC00NS4zLTQ1LjN6TTI3OC42IDI1Nmw0NS4zLTQ1LjNMMzY5LjEgMjU2bC00NS4zIDQ1LjNMMjc4LjYgMjU2em0yMi42LTY3LjlMMjU2IDIzMy40bC00NS4zLTQ1LjNMMjU2IDE0Mi45bDQ1LjMgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Vic2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDY0QzE0LjMgNjQgMCA3OC4zIDAgOTZzMTQuMyAzMiAzMiAzMkg0Ny4zbDg5LjYgMTI4TDQ3LjMgMzg0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY0YzEwLjQgMCAyMC4yLTUuMSAyNi4yLTEzLjZMMTc2IDMxMS44bDg1LjggMTIyLjZjNiA4LjYgMTUuOCAxMy42IDI2LjIgMTMuNmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMDQuN0wyMTUuMSAyNTZsODkuNi0xMjhIMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDI4OGMtMTAuNCAwLTIwLjIgNS4xLTI2LjIgMTMuNkwxNzYgMjAwLjIgOTAuMiA3Ny42Qzg0LjIgNjkuMSA3NC40IDY0IDY0IDY0SDMyek00ODAgMzIwYzAtMTEuMS01LjctMjEuNC0xNS4yLTI3LjJzLTIxLjItNi40LTMxLjEtMS40bC0zMiAxNmMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOUMzOTMgMzYxLjUgNDA0LjMgMzY4IDQxNiAzNjh2ODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoMzIgMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJWMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdWl0Y2FzZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0IDQ4SDMyOGM0LjQgMCA4IDMuNiA4IDhWOTZIMTc2VjU2YzAtNC40IDMuNi04IDgtOHptLTU2IDhWOTZ2MzJWNDgwSDM4NFYxMjggOTYgNTZjMC0zMC45LTI1LjEtNTYtNTYtNTZIMTg0Yy0zMC45IDAtNTYgMjUuMS01NiA1NnpNOTYgOTZINjRDMjguNyA5NiAwIDEyNC43IDAgMTYwVjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg5NlY5NnpNNDE2IDQ4MGgzMmMzNS4zIDAgNjQtMjguNyA2NC02NFYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRINDE2VjQ4MHpNMjI0IDIwOGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djQ4aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjg4djQ4YzAgOC44LTcuMiAxNi0xNiAxNkgyNDBjLTguOCAwLTE2LTcuMi0xNi0xNlYzMjBIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMjcyYzAtOC44IDcuMi0xNiAxNi0xNmg0OFYyMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1aXRjYXNlUm9sbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNTZjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHY3MkgxNDRWNTZ6bTE3NiA3MkgyODhWNTZjMC0zMC45LTI1LjEtNTYtNTYtNTZIMTUyQzEyMS4xIDAgOTYgMjUuMSA5NiA1NnY3Mkg2NGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJIMjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTkyYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xMTIgMjI0SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgMTI4SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1aXRjYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA1NlY5NkgzMzZWNTZjMC00LjQtMy42LTgtOC04SDE4NGMtNC40IDAtOCAzLjYtOCA4ek0xMjggOTZWNTZjMC0zMC45IDI1LjEtNTYgNTYtNTZIMzI4YzMwLjkgMCA1NiAyNS4xIDU2IDU2Vjk2djMyVjQ4MEgxMjhWMTI4IDk2ek02NCA5Nkg5NlY0ODBINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE2MGMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDQ4MEg0MTZWOTZoMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdW5QbGFudFdpbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDBjLTYuMyAwLTEyIDMuNy0xNC42IDkuNUwxMjAuNiA2NC45IDYzLjkgNDMuMmMtNS45LTIuMy0xMi42LS44LTE3IDMuNnMtNS45IDExLjEtMy42IDE3bDIxLjcgNTYuN0w5LjUgMTQ1LjRDMy43IDE0OCAwIDE1My43IDAgMTYwczMuNyAxMiA5LjUgMTQuNmw1NS40IDI0LjhMNDMuMiAyNTYuMWMtMi4zIDUuOS0uOCAxMi42IDMuNiAxN3MxMS4xIDUuOSAxNyAzLjZsNTYuNy0yMS43IDI0LjggNTUuNGMyLjYgNS44IDguMyA5LjUgMTQuNiA5LjVzMTItMy43IDE0LjYtOS41bDI0LjgtNTUuNCA1Ni43IDIxLjdjNS45IDIuMyAxMi42IC44IDE3LTMuNnM1LjktMTEuMSAzLjYtMTdsLTIxLjctNTYuNyA1NS40LTI0LjhjNS44LTIuNiA5LjUtOC4zIDkuNS0xNC42cy0zLjctMTItOS41LTE0LjZsLTU1LjQtMjQuOCAyMS43LTU2LjdjMi4zLTUuOSAuOC0xMi42LTMuNi0xN3MtMTEuMS01LjktMTctMy42TDE5OS40IDY0LjkgMTc0LjYgOS41QzE3MiAzLjcgMTY2LjMgMCAxNjAgMHptMCA5NmE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHptMzIgNjRhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptMzEyIDE2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2NTMuNGMtMTQuOCA3LjctMjQgMjMuMS0yNCA0NC42YzAgMTYuOCAxNiA0NCAzNy40IDY3LjJjNS44IDYuMiAxNS41IDYuMiAyMS4yIDBDNjI0IDMxOCA2NDAgMjkwLjcgNjQwIDI3NGMwLTIxLjUtOS4yLTM3LTI0LTQ0LjZWMTc2YzAtNDQuMi0zNS44LTgwLTgwLTgwcy04MCAzNS44LTgwIDgwdjIyLjdjLTkuOC00LjMtMjAuNi02LjctMzItNi43Yy00NC4yIDAtODAgMzUuOC04MCA4MHYyMS40Yy0xNC44IDcuNy0yNCAyMy4xLTI0IDQ0LjZjMCAxNi44IDE2IDQ0IDM3LjQgNjcuMmM1LjggNi4yIDE1LjUgNi4yIDIxLjIgMEM0MDAgMzgyIDQxNiAzNTQuNyA0MTYgMzM4YzAtMjEuNS05LjItMzctMjQtNDQuNlYyNzJjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMnY4VjQ0OEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINTA0VjI4MHYtOFYxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjEuNSAxLjJjNSAyLjEgOC42IDYuNiA5LjYgMTEuOUwzOTEgMTIxbDEwNy45IDE5LjhjNS4zIDEgOS44IDQuNiAxMS45IDkuNnMxLjUgMTAuNy0xLjYgMTUuMkw0NDYuOSAyNTZsNjIuMyA5MC4zYzMuMSA0LjUgMy43IDEwLjIgMS42IDE1LjJzLTYuNiA4LjYtMTEuOSA5LjZMMzkxIDM5MSAzNzEuMSA0OTguOWMtMSA1LjMtNC42IDkuOC05LjYgMTEuOXMtMTAuNyAxLjUtMTUuMi0xLjZMMjU2IDQ0Ni45bC05MC4zIDYyLjNjLTQuNSAzLjEtMTAuMiAzLjctMTUuMiAxLjZzLTguNi02LjYtOS42LTExLjlMMTIxIDM5MSAxMy4xIDM3MS4xYy01LjMtMS05LjgtNC42LTExLjktOS42cy0xLjUtMTAuNyAxLjYtMTUuMkw2NS4xIDI1NiAyLjggMTY1LjdjLTMuMS00LjUtMy43LTEwLjItMS42LTE1LjJzNi42LTguNiAxMS45LTkuNkwxMjEgMTIxIDE0MC45IDEzLjFjMS01LjMgNC42LTkuOCA5LjYtMTEuOXMxMC43LTEuNSAxNS4yIDEuNkwyNTYgNjUuMSAzNDYuMyAyLjhjNC41LTMuMSAxMC4yLTMuNyAxNS4yLTEuNnpNMTYwIDI1NmE5NiA5NiAwIDEgMSAxOTIgMCA5NiA5NiAwIDEgMSAtMTkyIDB6bTIyNCAwYTEyOCAxMjggMCAxIDAgLTI1NiAwIDEyOCAxMjggMCAxIDAgMjU2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cGVyc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzMmMwLTExLjEtNS43LTIxLjQtMTUuMi0yNy4ycy0yMS4yLTYuNC0zMS4xLTEuNGwtMzIgMTZjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlDMzkzIDczLjUgNDA0LjMgODAgNDE2IDgwdjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMyIDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjMyek0zMiA2NEMxNC4zIDY0IDAgNzguMyAwIDk2czE0LjMgMzIgMzIgMzJINDcuM2w4OS42IDEyOEw0Ny4zIDM4NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NGMxMC40IDAgMjAuMi01LjEgMjYuMi0xMy42TDE3NiAzMTEuOGw4NS44IDEyMi42YzYgOC42IDE1LjggMTMuNiAyNi4yIDEzLjZoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzA0LjdMMjE1LjEgMjU2bDg5LjYtMTI4SDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyODhjLTEwLjQgMC0yMC4yIDUuMS0yNi4yIDEzLjZMMTc2IDIwMC4yIDkwLjIgNzcuNkM4NC4yIDY5LjEgNzQuNCA2NCA2NCA2NEgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dhdGNoYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyQzAgMTQuMyAxNC4zIDAgMzIgMEgxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDE2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2VjMyek0yMjMuNiA0MjUuOWMuMy0zLjMgLjQtNi42IC40LTkuOVYxNTRsNzUuNC03NS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDkwLjUgOTAuNWMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM0wyMjMuNiA0MjUuOXpNMTgyLjggNTEybDE5Mi0xOTJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQ4MGMwIDE3LjctMTQuMyAzMi0zMiAzMkgxODIuOHpNMTI4IDY0SDY0djY0aDY0VjY0ek02NCAxOTJ2NjRoNjRWMTkySDY0ek05NiA0NDBhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeW5hZ29ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA5LjggMy43YzUuOS00LjkgMTQuNi00LjkgMjAuNSAwbDEyMSAxMDAuOEM0NjkuNSAxMTkuNyA0ODAgMTQyLjIgNDgwIDE2NlYyODAuMSA1MTJINDY0IDM1MlY0MTZjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2OTZIMTc2IDE2MFYyODAuMSAxNjZjMC0yMy43IDEwLjUtNDYuMyAyOC44LTYxLjVMMzA5LjggMy43ek01MTIgNTEyVjI0NC41bDI4LjEtMzEuMmMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNsNjMuOCA3MC45YzcuOSA4LjggMTIuMyAyMC4zIDEyLjMgMzIuMVY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINTEyek0xMjggMjQ0LjVWNTEySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYzMTYuM2MwLTExLjkgNC40LTIzLjMgMTIuMy0zMi4xbDYzLjgtNzAuOWMzLTMuNCA3LjQtNS4zIDExLjktNS4zczguOSAxLjkgMTEuOSA1LjNMMTI4IDI0NC41ek0zMjcgMTI0LjNjLTMuMS01LjQtMTAuOS01LjQtMTMuOSAwbC0xNS45IDI4LjEtMzIuMy0uM2MtNi4yLS4xLTEwLjEgNi43LTcgMTIuMUwyNzQuMyAxOTJsLTE2LjQgMjcuOGMtMy4yIDUuNCAuNyAxMi4xIDcgMTIuMWwzMi4zLS4zTDMxMyAyNTkuN2MzLjEgNS40IDEwLjkgNS40IDEzLjkgMGwxNS45LTI4LjEgMzIuMyAuM2M2LjIgLjEgMTAuMS02LjcgNy0xMi4xTDM2NS43IDE5MmwxNi40LTI3LjhjMy4yLTUuNC0uNy0xMi4xLTctMTIuMWwtMzIuMyAuM0wzMjcgMTI0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5cmluZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQxIDdsMzIgMzIgMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMTUtMTVMNDE3LjkgMTI4bDU1IDU1YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTcyLTcyTDI5NSA3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDU1IDU1TDQyMi4xIDU2IDQwNyA0MWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwek0yMTAuMyAxNTUuN2w2MS4xLTYxLjFjLjMgLjMgLjYgLjcgMSAxbDE2IDE2IDU2IDU2IDU2IDU2IDE2IDE2Yy4zIC4zIC42IC42IDEgMWwtMTkxIDE5MWMtMTAuNSAxMC41LTI0LjcgMTYuNC0zOS42IDE2LjRIOTcuOUw0MSA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNTctNTdWMzI1LjNjMC0xNC45IDUuOS0yOS4xIDE2LjQtMzkuNmw0My4zLTQzLjMgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01NyA0MS40LTQxLjQgNTcgNTdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBzNi4yLTE2LjQgMC0yMi42bC01Ny01N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZIMTYwVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjk2SDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlQ2VsbHNDb2x1bW5Mb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NS4xYy0zNy44IDUuNC02OS40IDI5LjYtODUuMiA2Mi45TDM2MCAyMjRsMCA2NCA1NiAwIDAgOC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40bC0yNCAwIDAgNjQgMjQgMCAwIDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnptMjA4IDBsMCA2NCA4OCAwIDAtNjQtODggMHptMjQwIDBsLTg4IDAgMCA2NCA4OCAwIDAtNjR6TTIwOCAyMjRsMCA2NCA4OCAwIDAtNjQtODggMHptMCAxMjhsMCA2NCA4OCAwIDAtNjQtODggMHpNNTI4IDI0MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJsMCA0OCA2NCAwIDAtNDhjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MCAzMmMwLTQ0LjIgMzUuOC04MCA4MC04MHM4MCAzNS44IDgwIDgwbDAgNDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJsMCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJsLTE2MCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMmwwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmwwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZUNlbGxzTGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2VjIyNEgyODhWOTZINDQ4em0wIDE5MlY0MTZIMjg4VjI4OEg0NDh6TTIyNCAyMjRINjRWOTZIMjI0VjIyNHpNNjQgMjg4SDIyNFY0MTZINjRWMjg4ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlQ2VsbHNSb3dMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzg0IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCA2NS4xYy0zNy44IDUuNC02OS40IDI5LjYtODUuMiA2Mi45TDM2MCAyMjRsMCA2NCA1NiAwIDAgOC42Yy0xOS4xIDExLjEtMzIgMzEuNy0zMiA1NS40bC0yNCAwIDAgNjQgMjQgMCAwIDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA5NnpNNjQgMjI0bDAgNjQgODggMCAwLTY0LTg4IDB6bTIzMiAwbC04OCAwIDAgNjQgODggMCAwLTY0ek0xNTIgMzUybC04OCAwIDAgNjQgODggMCAwLTY0em01NiAwbDAgNjQgODggMCAwLTY0LTg4IDB6TTUyOCAyNDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMybDAgNDggNjQgMCAwLTQ4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tODAgMzJjMC00NC4yIDM1LjgtODAgODAtODBzODAgMzUuOCA4MCA4MGwwIDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMybDAgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMybC0xNjAgMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJsMC0xMjhjMC0xNy43IDE0LjMtMzIgMzItMzJsMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGVDZWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTg4IDY0djY0SDY0Vjk2aDg4em01NiAwaDg4djY0SDIwOFY5NnptMjQwIDB2NjRIMzYwVjk2aDg4ek02NCAyMjRoODh2NjRINjRWMjI0em0yMzIgMHY2NEgyMDhWMjI0aDg4em02NCAwaDg4djY0SDM2MFYyMjR6TTE1MiAzNTJ2NjRINjRWMzUyaDg4em01NiAwaDg4djY0SDIwOFYzNTJ6bTI0MCAwdjY0SDM2MFYzNTJoODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlQ29sdW1ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em02NCA2NFY0MTZIMjI0VjE2MEg2NHptMzg0IDBIMjg4VjQxNkg0NDhWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZUxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnptNjQgMHY2NGg2NFY5Nkg2NHptMzg0IDBIMTkydjY0SDQ0OFY5NnpNNjQgMjI0djY0aDY0VjIyNEg2NHptMzg0IDBIMTkydjY0SDQ0OFYyMjR6TTY0IDM1MnY2NGg2NFYzNTJINjR6bTM4NCAwSDE5MnY2NEg0NDhWMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZVRlbm5pc1BhZGRsZUJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDI4OGMtNTAuMSAwLTkzLjYgMjguOC0xMTQuNiA3MC44TDEzMi45IDEyNi4zbC42LS42IDYwLjEtNjAuMWM4Ny41LTg3LjUgMjI5LjMtODcuNSAzMTYuOCAwYzY3LjEgNjcuMSA4Mi43IDE2Ni4zIDQ2LjggMjQ4LjNDNTM1LjggMjk3LjYgNTA5IDI4OCA0ODAgMjg4ek0xMTMuMyAxNTEuOUwzNTQuMSAzOTIuN2MtMS40IDcuNS0yLjEgMTUuMy0yLjEgMjMuM2MwIDIzLjIgNi4yIDQ0LjkgMTYuOSA2My43Yy0zIC4yLTYuMSAuMy05LjIgLjNIMzU3Yy0zMy45IDAtNjYuNS0xMy41LTkwLjUtMzcuNWwtOS44LTkuOGMtMTMuMS0xMy4xLTM0LjYtMTIuNC00Ni44IDEuN0wxNTIuMiA1MDFjLTUuOCA2LjctMTQuMiAxMC43LTIzIDExcy0xNy41LTMuMS0yMy44LTkuNGwtMzItMzJjLTYuMy02LjMtOS43LTE0LjktOS40LTIzLjhzNC4zLTE3LjIgMTEtMjNsNjYuNi01Ny43YzE0LTEyLjIgMTQuOC0zMy43IDEuNy00Ni44bC05LjgtOS44Yy0yNC0yNC0zNy41LTU2LjYtMzcuNS05MC41di0yLjdjMC0yMi44IDYuMS00NC45IDE3LjMtNjQuM3pNNDgwIDMyMGE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjU2VjE2MEgyMjR2OTZINjR6bTAgNjRIMjI0djk2SDY0VjMyMHptMjI0IDk2VjMyMEg0NDh2OTZIMjg4ek00NDggMjU2SDI4OFYxNjBINDQ4djk2ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldEJ1dHRvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0ek0yMjQgNDAwYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0U2NyZWVuQnV0dG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0ek0yNTYgNDQ4YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTM4NCA2NEg2NFYzODRIMzg0VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDM4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMTc2IDQzMmg5NmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE0LjMgMjQ3YzE2LjMtMjUgMjUuNy01NC45IDI1LjctODdDNjQwIDcxLjYgNTY4LjQgMCA0ODAgMGMtMzIuMSAwLTYxLjkgOS40LTg3IDI1LjdjLTcuOSA1LjItOC41IDE2LjItMS44IDIyLjlMNTkxLjQgMjQ4LjhjNi43IDYuNyAxNy44IDYuMiAyMi45LTEuOHpNNTY3IDI5NC4zYzcuOS01LjIgOC41LTE2LjIgMS44LTIyLjlMMzY4LjYgNzEuMmMtNi43LTYuNy0xNy44LTYuMi0yMi45IDEuOGMtMTYuMyAyNS0yNS43IDU0LjktMjUuNyA4N2MwIDg4LjQgNzEuNiAxNjAgMTYwIDE2MGMzMi4xIDAgNjEuOS05LjQgODctMjUuN3pNMzAxLjUgMzY4SDE4LjVjLTkuNSAwLTE2LjkgOC4yLTE1IDE3LjVDMTguOSA0NTcuOCA4My4xIDUxMiAxNjAgNTEyczE0MS4xLTU0LjIgMTU2LjUtMTI2LjVjMi05LjMtNS41LTE3LjUtMTUtMTcuNXptMC0zMmM5LjUgMCAxNi45LTguMiAxNS0xNy41QzMwMS4xIDI0Ni4yIDIzNi45IDE5MiAxNjAgMTkyUzE4LjkgMjQ2LjIgMy41IDMxOC41Yy0yIDkuMyA1LjUgMTcuNSAxNSAxNy41SDMwMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWNob2dyYXBoRGlnaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOFYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptMzIgNjRIMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJ6TTY0IDM2OGMwLTguOCA3LjItMTYgMTYtMTZIMzM2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ6bTMyMCAwYzAtOC44IDcuMi0xNiAxNi0xNkg1NjBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINDAwYy04LjggMC0xNi03LjItMTYtMTZ6TTgwIDI4OGExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTQ4IDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6bTgwLTE2YTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnptNDggMTZhMTYgMTYgMCAxIDEgMzIgMCAxNiAxNiAwIDEgMSAtMzIgMHptODAtMTZhMTYgMTYgMCAxIDEgMCAzMiAxNiAxNiAwIDEgMSAwLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA4MFYyMjkuNWMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM2wxNzYgMTc2YzI1IDI1IDY1LjUgMjUgOTAuNSAwTDQxOC43IDMxNy4zYzI1LTI1IDI1LTY1LjUgMC05MC41bC0xNzYtMTc2Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQ4QzIxLjUgMzIgMCA1My41IDAgODB6bTExMiAzMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ1IDM5LjFMNDcyLjggMTY4LjRjNTIuNCA1MyA1Mi40IDEzOC4yIDAgMTkxLjJMMzYwLjggNDcyLjljLTkuMyA5LjQtMjQuNSA5LjUtMzMuOSAuMnMtOS41LTI0LjUtLjItMzMuOUw0MzguNiAzMjUuOWMzMy45LTM0LjMgMzMuOS04OS40IDAtMTIzLjdMMzEwLjkgNzIuOWMtOS4zLTkuNC05LjItMjQuNiAuMi0zMy45czI0LjYtOS4yIDMzLjkgLjJ6TTAgMjI5LjVWODBDMCA1My41IDIxLjUgMzIgNDggMzJIMTk3LjVjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsMTY4IDE2OGMyNSAyNSAyNSA2NS41IDAgOTAuNUwyNzcuMyA0NDIuN2MtMjUgMjUtNjUuNSAyNS05MC41IDBsLTE2OC0xNjhDNi43IDI2Mi43IDAgMjQ2LjUgMCAyMjkuNXpNMTQ0IDE0NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MC44IDQxNmM0MS41LTQwLjcgNjcuMi05Ny4zIDY3LjItMTYwQzQ0OCAxMzIuMyAzNDcuNyAzMiAyMjQgMzJTMCAxMzIuMyAwIDI1NlMxMDAuMyA0ODAgMjI0IDQ4MEg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzgwLjh6TTIyNCAxNjBhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6bTY0IDk2YTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFycERyb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE2MGMtMzUuMyAwLTY0LTI2LjktNjQtNjBjMC0yNCAzMy43LTcwLjEgNTIuMi05My41YzYuMS03LjcgMTcuNS03LjcgMjMuNiAwQzMxOC4zIDI5LjkgMzUyIDc2IDM1MiAxMDBjMCAzMy4xLTI4LjcgNjAtNjQgNjB6TTY0IDEyOEgxOTcuNWMxMy4yIDM3LjMgNDguNyA2NCA5MC41IDY0czc3LjQtMjYuNyA5MC41LTY0SDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NFYzNTJINDQ4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmwwIDEyOEw2NCA1MTJjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MmMwLTM1LjMgMjguNy02NCA2NC02NHpNNDQ4IDUxMmwwLTEyOEg1NzZMNDQ4IDUxMnpNOTYgMjU2YTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFycCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjM4NGMwIDM1LjMgMjguNyA2NCA2NCA2NGwzNTIgMCAwLTEyOGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg1NzZWMTI4ek00NDggNDQ4TDU3NiAzMjBINDQ4bDAgMTI4ek05NiAxMjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXhpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY2NGMwIC4xIDAgLjEgMCAuMmMtMzguNiAyLjItNzIuMyAyNy4zLTg1LjIgNjQuMUwzOS42IDIyOC44QzE2LjQgMjM4LjQgMCAyNjEuMyAwIDI4OFY0MzJ2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJINjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDMySDQxNnY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlY0MzIgMjg4YzAtMjYuNy0xNi40LTQ5LjYtMzkuNi01OS4yTDQzNy4yIDEyOC4zYy0xMi45LTM2LjgtNDYuNi02Mi04NS4yLTY0LjFjMC0uMSAwLS4xIDAtLjJWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMTkyek0xNjUuNCAxMjhIMzQ2LjZjMTMuNiAwIDI1LjcgOC42IDMwLjIgMjEuNEw0MDIuOSAyMjRIMTA5LjFsMjYuMS03NC42YzQuNS0xMi44IDE2LjYtMjEuNCAzMC4yLTIxLjR6TTk2IDI4OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTI4OCAzMmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWV0aE9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJDNDMgMzIgMCA3NSAwIDEyOHY2NGMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtNTMtNDMtOTYtOTYtOTZIOTZ6TTIyNCA5NmMyNi41IDAgNDggMjEuNSA0OCA0OHY1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE0NGMwLTI2LjUgMjEuNS00OCA0OC00OHptODAgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHY1NmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgzMjhjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE0NHpNOTYgMTI4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djI0YzAgMTMuMy0xMC43IDI0LTI0IDI0SDcyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDh6bTMzNiA0OGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djI0YzAgMTMuMy0xMC43IDI0LTI0IDI0SDQ1NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTc2ek05NiA0ODBINDgwYzUzIDAgOTYtNDMgOTYtOTZWMzUyYzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYzMmMwIDUzIDQzIDk2IDk2IDk2em0wLTY0Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRoNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MjRjMCAyNi41LTIxLjUgNDgtNDggNDh6bTgwLTQ4VjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OHptMTc2IDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYzNDRjMC0xMy4zIDEwLjctMjQgMjQtMjRoNDhjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MjRjMCAyNi41LTIxLjUgNDgtNDggNDh6bTgwLTQ4VjM0NGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyNGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVldGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMjhDMCA3NSA0MyAzMiA5NiAzMkg0ODBjNTMgMCA5NiA0MyA5NiA5NlYzODRjMCA1My00MyA5Ni05NiA5Nkg5NmMtNTMgMC05Ni00My05Ni05NlYxMjh6bTE3NiA0OHY1NmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6bTE3Ni00OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTc2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAyMDh2MjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4ek05NiAzODRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNGMwIDI2LjUgMjEuNSA0OCA0OCA0OHptODAtNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OFYzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNHptMTc2IDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMxMmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em04MC0xNzZ2MjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjA4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4em00OCAxNzZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0SDQ1NmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjRjMCAyNi41IDIxLjUgNDggNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbXBlcmF0dXJlQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OFYyNzYuNWMwIDE3LjMgNy4xIDMxLjkgMTUuMyA0Mi41QzI0OS44IDMzMi42IDI1NiAzNDkuNSAyNTYgMzY4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMTguNSA2LjItMzUuNCAxNi43LTQ4LjljOC4yLTEwLjYgMTUuMy0yNS4yIDE1LjMtNDIuNVYxMTJ6TTE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJWMjc2LjRjMCAuMS0uMSAuMy0uMiAuNmMtLjIgLjYtLjggMS42LTEuNyAyLjhDNDMuMiAzMDQuMiAzMiAzMzQuOCAzMiAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZWMTEyQzI4OCA1MC4xIDIzNy45IDAgMTc2IDB6bTAgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM1YyNzJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NTAuN2MtMTguNiA2LjYtMzIgMjQuNC0zMiA0NS4zYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4em0zMzYtNjRINDgwVjY0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjM1MkgzODRjLTEyLjkgMC0yNC42IDcuOC0yOS42IDE5LjhzLTIuMiAyNS43IDYuOSAzNC45bDY0IDY0YzYgNiAxNC4xIDkuNCAyMi42IDkuNHMxNi42LTMuNCAyMi42LTkuNGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVBcnJvd1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OFYyNzYuNWMwIDE3LjMgNy4xIDMxLjkgMTUuMyA0Mi41QzI0OS44IDMzMi42IDI1NiAzNDkuNSAyNTYgMzY4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMTguNSA2LjItMzUuNCAxNi43LTQ4LjljOC4yLTEwLjYgMTUuMy0yNS4yIDE1LjMtNDIuNVYxMTJ6TTE3NiAwQzExNC4xIDAgNjQgNTAuMSA2NCAxMTJWMjc2LjRjMCAuMS0uMSAuMy0uMiAuNmMtLjIgLjYtLjggMS42LTEuNyAyLjhDNDMuMiAzMDQuMiAzMiAzMzQuOCAzMiAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZWMTEyQzI4OCA1MC4xIDIzNy45IDAgMTc2IDB6bTAgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM1YxMTJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMzIyLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHpNNDgwIDE2MGgzMmMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBsLTY0IDY0Yy05LjIgOS4yLTExLjkgMjIuOS02LjkgMzQuOXMxNi42IDE5LjggMjkuNiAxOS44aDMyVjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDhWMjc2LjVjMCAxNy4zIDcuMSAzMS45IDE1LjMgNDIuNUMyMzMuOCAzMzIuNiAyNDAgMzQ5LjUgMjQwIDM2OGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MGMwLTE4LjUgNi4yLTM1LjQgMTYuNy00OC45YzguMi0xMC42IDE1LjMtMjUuMiAxNS4zLTQyLjVWMTEyek0xNjAgMEM5OC4xIDAgNDggNTAuMiA0OCAxMTJWMjc2LjVjMCAuMS0uMSAuMy0uMiAuNmMtLjIgLjYtLjggMS42LTEuNyAyLjhDMjcuMiAzMDQuMiAxNiAzMzQuOCAxNiAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZWMTEyQzI3MiA1MC4yIDIyMS45IDAgMTYwIDB6bTAgNDE2YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMjc2LjVjMCAxNy4zLTcuMSAzMS45LTE1LjMgNDIuNUM4Ni4yIDMzMi42IDgwIDM0OS41IDgwIDM2OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTguNS02LjItMzUuNC0xNi43LTQ4LjljLTguMi0xMC42LTE1LjMtMjUuMi0xNS4zLTQyLjVWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMlYyNzYuNWMwIC4xIC4xIC4zIC4yIC42Yy4yIC42IC44IDEuNiAxLjcgMi44YzE4LjkgMjQuNCAzMC4xIDU1IDMwLjEgODguMWMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNlYxMTJ6TTIwOCAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zVjExMmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjMyMi43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMjc2LjVjMCAxNy4zLTcuMSAzMS45LTE1LjMgNDIuNUM4Ni4yIDMzMi42IDgwIDM0OS41IDgwIDM2OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTguNS02LjItMzUuNC0xNi43LTQ4LjljLTguMi0xMC42LTE1LjMtMjUuMi0xNS4zLTQyLjVWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMlYyNzYuNWMwIC4xIC4xIC4zIC4yIC42Yy4yIC42IC44IDEuNiAxLjcgMi44YzE4LjkgMjQuNCAzMC4xIDU1IDMwLjEgODguMWMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNlYxMTJ6TTIwOCAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zVjIwOGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjMyMi43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiA2NGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6bTAgMTI4QTk2IDk2IDAgMSAwIDQxNiAwYTk2IDk2IDAgMSAwIDAgMTkyek05NiAxMTJjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OFYyNzYuNWMwIDE3LjMgNy4xIDMxLjkgMTUuMyA0Mi41QzIxNy44IDMzMi42IDIyNCAzNDkuNSAyMjQgMzY4YzAgNDQuMi0zNS44IDgwLTgwIDgwcy04MC0zNS44LTgwLTgwYzAtMTguNSA2LjItMzUuNCAxNi43LTQ4LjlDODguOSAzMDguNCA5NiAyOTMuOCA5NiAyNzYuNVYxMTJ6TTE0NCAwQzgyLjEgMCAzMiA1MC4yIDMyIDExMlYyNzYuNWMwIC4xLS4xIC4zLS4yIC42Yy0uMiAuNi0uOCAxLjYtMS43IDIuOEMxMS4yIDMwNC4yIDAgMzM0LjggMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTMzLjItMTEuMi02My44LTMwLjEtODguMWMtLjktMS4yLTEuNS0yLjItMS43LTIuOGMtLjEtLjMtLjItLjUtLjItLjZWMTEyQzI1NiA1MC4yIDIwNS45IDAgMTQ0IDB6bTAgNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjctMzItNDUuM1YxMTJjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZWMzIyLjdjLTE4LjYgNi42LTMyIDI0LjQtMzIgNDUuM2MwIDI2LjUgMjEuNSA0OCA0OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDk2YTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTMyMCA5NmE5NiA5NiAwIDEgMSAxOTIgMEE5NiA5NiAwIDEgMSAzMjAgOTZ6TTE0NCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMjc2LjVjMCAxNy4zLTcuMSAzMS45LTE1LjMgNDIuNUM3MC4yIDMzMi42IDY0IDM0OS41IDY0IDM2OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTguNS02LjItMzUuNC0xNi43LTQ4LjljLTguMi0xMC42LTE1LjMtMjUuMi0xNS4zLTQyLjVWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0zMiAxMTJDMzIgNTAuMiA4Mi4xIDAgMTQ0IDBzMTEyIDUwLjEgMTEyIDExMlYyNzYuNWMwIC4xIC4xIC4zIC4yIC42Yy4yIC42IC44IDEuNiAxLjcgMi44YzE4LjkgMjQuNCAzMC4xIDU1IDMwLjEgODguMWMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMwIDQ0Ny41IDAgMzY4YzAtMzMuMiAxMS4yLTYzLjggMzAuMS04OC4xYy45LTEuMiAxLjUtMi4yIDEuNy0yLjhjLjEtLjMgLjItLjUgLjItLjZWMTEyek0xOTIgMzY4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4cy00OC0yMS41LTQ4LTQ4YzAtMjAuOSAxMy40LTM4LjcgMzItNDUuM1YyNzJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY1MC43YzE4LjYgNi42IDMyIDI0LjQgMzIgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVRdWFydGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2MCA2NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhWMjc2LjVjMCAxNy4zLTcuMSAzMS45LTE1LjMgNDIuNUM4Ni4yIDMzMi42IDgwIDM0OS41IDgwIDM2OGMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMTguNS02LjItMzUuNC0xNi43LTQ4LjljLTguMi0xMC42LTE1LjMtMjUuMi0xNS4zLTQyLjVWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek00OCAxMTJDNDggNTAuMiA5OC4xIDAgMTYwIDBzMTEyIDUwLjEgMTEyIDExMlYyNzYuNWMwIC4xIC4xIC4zIC4yIC42Yy4yIC42IC44IDEuNiAxLjcgMi44YzE4LjkgMjQuNCAzMC4xIDU1IDMwLjEgODguMWMwIDc5LjUtNjQuNSAxNDQtMTQ0IDE0NFMxNiA0NDcuNSAxNiAzNjhjMC0zMy4yIDExLjItNjMuOCAzMC4xLTg4LjFjLjktMS4yIDEuNS0yLjIgMS43LTIuOGMuMS0uMyAuMi0uNSAuMi0uNlYxMTJ6TTIwOCAzNjhjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhjMC0yMC45IDEzLjQtMzguNyAzMi00NS4zVjI3MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djUwLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW1wZXJhdHVyZVRocmVlUXVhcnRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDY0Yy0yNi41IDAtNDggMjEuNS00OCA0OFYyNzYuNWMwIDE3LjMtNy4xIDMxLjktMTUuMyA0Mi41Qzg2LjIgMzMyLjYgODAgMzQ5LjUgODAgMzY4YzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0xOC41LTYuMi0zNS40LTE2LjctNDguOWMtOC4yLTEwLjYtMTUuMy0yNS4yLTE1LjMtNDIuNVYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTQ4IDExMkM0OCA1MC4yIDk4LjEgMCAxNjAgMHMxMTIgNTAuMSAxMTIgMTEyVjI3Ni41YzAgLjEgLjEgLjMgLjIgLjZjLjIgLjYgLjggMS42IDEuNyAyLjhjMTguOSAyNC40IDMwLjEgNTUgMzAuMSA4OC4xYzAgNzkuNS02NC41IDE0NC0xNDQgMTQ0UzE2IDQ0Ny41IDE2IDM2OGMwLTMzLjIgMTEuMi02My44IDMwLjEtODguMWMuOS0xLjIgMS41LTIuMiAxLjctMi44Yy4xLS4zIC4yLS41IC4yLS42VjExMnpNMjA4IDM2OGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OGMwLTIwLjkgMTMuNC0zOC43IDMyLTQ1LjNWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZWMzIyLjdjMTguNiA2LjYgMzIgMjQuNCAzMiA0NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZW5nZVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMCAxOTJjMC0xNy43IDE0LjMtMzIgMzItMzJIMTkyIDM1MmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMjRWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjIyNEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbnRBcnJvd0Rvd25Ub0xpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQxLjggMTExLjljOC45IDkuOSA4LjEgMjUtMS44IDMzLjlsLTgwIDcyYy05LjEgOC4yLTIzIDguMi0zMi4xIDBsLTgwLTcyYy05LjktOC45LTEwLjctMjQtMS44LTMzLjlzMjQtMTAuNyAzMy45LTEuOGwzOS45IDM2TDEyMCAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0bDAgMTIyLjEgMzkuOS0zNmM5LjktOC45IDI1LTguMSAzMy45IDEuOHptMTIyLjggMjIuNmMxMS41LTguNyAyNy4zLTguNyAzOC44IDBsMTY4IDEyOGM2LjYgNSAxMSAxMi41IDEyLjMgMjAuN2wyNCAxNjAgLjcgNC43YzE3LjUgLjIgMzEuNiAxNC40IDMxLjYgMzJjMCAxNy43LTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJIMTU5LjZsLjctNC43IDI0LTE2MGMxLjItOC4yIDUuNi0xNS43IDEyLjMtMjAuN2wxNjgtMTI4ek0zODQgNDQ4aDgwTDQwMi43IDMyNS41Yy0xLjctMy40LTUuMS01LjUtOC44LTUuNWMtNS41IDAtOS45IDQuNC05LjkgOS45VjQ0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVudEFycm93TGVmdFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC4xIDYuMmMtOS45LTguOS0yNS04LjEtMzMuOSAxLjhzLTguMSAyNSAxLjggMzMuOUw0ODkuNSA3MiA4Ni41IDcybDMzLjUtMzAuMmM5LjktOC45IDEwLjctMjQgMS44LTMzLjlTOTcuOC0yLjcgODcuOSA2LjJsLTgwIDcyQzIuOSA4Mi43IDAgODkuMiAwIDk2czIuOSAxMy4zIDcuOSAxNy44bDgwIDcyYzkuOSA4LjkgMjUgOC4xIDMzLjktMS44czguMS0yNS0xLjgtMzMuOUw4Ni41IDEyMGw0MDIuOSAwLTMzLjUgMzAuMmMtOS45IDguOS0xMC43IDI0LTEuOCAzMy45czI0IDEwLjcgMzMuOSAxLjhsODAtNzJjNS4xLTQuNiA3LjktMTEgNy45LTE3LjhzLTIuOS0xMy4zLTcuOS0xNy44bC04MC03MnpNMzA3LjQgMTY2LjVjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMGwtMTY4IDEyOGMtNi42IDUtMTEgMTIuNS0xMi4zIDIwLjdsLTI0IDE2MGMtMS40IDkuMiAxLjMgMTguNiA3LjQgMjUuNlM4Ni43IDUxMiA5NiA1MTJIMjQwaDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM2MS45YzAtNS41IDQuNC05LjkgOS45LTkuOWMzLjcgMCA3LjIgMi4xIDguOCA1LjVsNjguNCAxMzYuOGM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43SDQ2NGgxNmM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbnRBcnJvd1R1cm5MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMC4xIDQxLjhjOS45LTguOSAxMC43LTI0IDEuOC0zMy45Uzk3LjgtMi43IDg3LjkgNi4ybC04MCA3MkMyLjkgODIuNyAwIDg5LjIgMCA5NnMyLjkgMTMuMyA3LjkgMTcuOGw4MCA3MmM5LjkgOC45IDI1IDguMSAzMy45LTEuOHM4LjEtMjUtMS44LTMzLjlMODYuNSAxMjAgNDU2IDEyMGMzOS44IDAgNzIgMzIuMiA3MiA3MnY0MGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjE5MmMwLTY2LjMtNTMuNy0xMjAtMTIwLTEyMEw4Ni41IDcybDMzLjUtMzAuMnpNMzA3LjQgMTY2LjVjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMGwtMTY4IDEyOGMtNi42IDUtMTEgMTIuNS0xMi4zIDIwLjdsLTI0IDE2MGMtMS40IDkuMiAxLjMgMTguNiA3LjQgMjUuNlM4Ni43IDUxMiA5NiA1MTJIMjQwaDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM2MS45YzAtNS41IDQuNC05LjkgOS45LTkuOWMzLjcgMCA3LjIgMi4xIDguOCA1LjVsNjguNCAxMzYuOGM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43SDQ2NGgxNmM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbnRBcnJvd3NEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOS44IDExMS45Yy04LjktOS45LTI0LTEwLjctMzMuOS0xLjhsLTM5LjkgMzZMMTM2IDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0Uzg4IDEwLjcgODggMjRsMCAxMjIuMS0zOS45LTM2Yy05LjktOC45LTI1LTguMS0zMy45IDEuOHMtOC4xIDI1IDEuOCAzMy45bDgwIDcyYzkuMSA4LjIgMjMgOC4yIDMyLjEgMGw4MC03MmM5LjktOC45IDEwLjctMjQgMS44LTMzLjl6bTM1MiAwYy04LjktOS45LTI0LTEwLjctMzMuOS0xLjhsLTM5LjkgMzZWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWMTQ2LjFsLTM5LjktMzZjLTkuOS04LjktMjUtOC4xLTMzLjkgMS44cy04LjEgMjUgMS44IDMzLjlsODAgNzJjOS4xIDguMiAyMyA4LjIgMzIuMSAwbDgwLTcyYzkuOS04LjkgMTAuNy0yNCAxLjgtMzMuOXpNMzA3LjQgMTY2LjVjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMGwtMTY4IDEyOGMtNi42IDUtMTEgMTIuNS0xMi4zIDIwLjdsLTI0IDE2MGMtMS40IDkuMiAxLjMgMTguNiA3LjQgMjUuNlM4Ni43IDUxMiA5NiA1MTJIMjQwaDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM2MS45YzAtNS41IDQuNC05LjkgOS45LTkuOWMzLjcgMCA3LjIgMi4xIDguOCA1LjVsNjguNCAxMzYuOGM1LjQgMTAuOCAxNi41IDE3LjcgMjguNiAxNy43SDQ2NGgxNmM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY5LjQgNkMyODAuNS0yIDI5NS41LTIgMzA2LjYgNmwyMjQgMTYwYzcuNCA1LjMgMTIuMiAxMy41IDEzLjIgMjIuNWwzMiAyODhjMSA5LTEuOSAxOC4xLTggMjQuOXMtMTQuNyAxMC43LTIzLjggMTAuN0g0NjQgNDM1LjhjLTEyLjEgMC0yMy4yLTYuOC0yOC42LTE3LjdMMzA2LjcgMjkzLjVjLTEuNy0zLjQtNS4xLTUuNS04LjgtNS41Yy01LjUgMC05LjkgNC40LTkuOSA5LjlWNDgwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDI0MCAzMmMtOS4xIDAtMTcuOC0zLjktMjMuOC0xMC43cy05LTE1LjgtOC0yNC45bDMyLTI4OGMxLTkgNS44LTE3LjIgMTMuMi0yMi41TDI2OS40IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Ni42IDYuNUwyMzUuOCAxMjkuMWM5LjYgMS44IDE4LjkgNS44IDI3IDEybDE2OCAxMjhjMTMuMiAxMC4xIDIyIDI0LjkgMjQuNSA0MS40bDYuMiA0MS41SDYwOGM5LjMgMCAxOC4yLTQuMSAyNC4yLTExLjFzOC44LTE2LjQgNy40LTI1LjZsLTI0LTE2MGMtMS4yLTguMi01LjYtMTUuNy0xMi4zLTIwLjdsLTE2OC0xMjhjLTExLjUtOC43LTI3LjMtOC43LTM4LjggMHptLTE1My4yIDE2MGMtMTEuNS04LjctMjcuMy04LjctMzguOCAwbC0xNjggMTI4Yy02LjYgNS0xMSAxMi41LTEyLjMgMjAuN2wtMjQgMTYwYy0xLjQgOS4yIDEuMyAxOC42IDcuNCAyNS42UzIyLjcgNTEyIDMyIDUxMkgxNzZoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzYxLjljMC01LjUgNC40LTkuOSA5LjktOS45YzMuNyAwIDcuMiAyLjEgOC44IDUuNWw2OC40IDEzNi44YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdINDAwaDE2YzkuMyAwIDE4LjItNC4xIDI0LjItMTEuMXM4LjgtMTYuNCA3LjQtMjUuNmwtMjQtMTYwYy0xLjItOC4yLTUuNi0xNS43LTEyLjMtMjAuN2wtMTY4LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDg2LjZDLTMuMSA3NC4xLTMuMSA1My45IDkuNCA0MS40czMyLjgtMTIuNSA0NS4zIDBsMTkyIDE5MmMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMTkyIDE5MmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBzLTEyLjUtMzIuOCAwLTQ1LjNMMTc4LjcgMjU2IDkuNCA4Ni42ek0yNTYgNDE2SDU0NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRleHRIZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTI4Vjk2aDY0bDAgMzIwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJsMC0zMjBoNjR2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgxNjAgNDhDMjEuNSAzMiAwIDUzLjUgMCA4MHY0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyek01MDIuNiA0MS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGwtNjQgNjRjLTkuMiA5LjItMTEuOSAyMi45LTYuOSAzNC45czE2LjYgMTkuOCAyOS42IDE5LjhoMzJWMzUySDQxNmMtMTIuOSAwLTI0LjYgNy44LTI5LjYgMTkuOHMtMi4yIDI1LjcgNi45IDM0LjlsNjQgNjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBsNjQtNjRjOS4yLTkuMiAxMS45LTIyLjkgNi45LTM0LjlzLTE2LjYtMTkuOC0yOS42LTE5LjhINTEyVjE2MGgzMmMxMi45IDAgMjQuNi03LjggMjkuNi0xOS44czIuMi0yNS43LTYuOS0zNC45bC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGV4dFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMMzU1LjcgMjUzLjUgNDAwLjIgOTZINTAzTDQ5NyAxMjAuMmMtNC4zIDE3LjEgNi4xIDM0LjUgMjMuMyAzOC44czM0LjUtNi4xIDM4LjgtMjMuM2wxMS00NC4xQzU3Ny42IDYxLjMgNTU0LjcgMzIgNTIzLjUgMzJIMzc2LjFoLS4zSDIwNC41Yy0yMiAwLTQxLjIgMTUtNDYuNiAzNi40bC02LjMgMjUuMkwzOC44IDUuMXptMTY4IDEzMS43Yy4xLS4zIC4yLS43IC4zLTFMMjE3IDk2SDMzMy43TDMwMS4zIDIxMC44bC05NC41LTc0LjF6TTMyNy4zIDM1My45TDI3Mi45IDMxMSAyNDMuMyA0MTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDM1MmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMDkuOGwxNy42LTYyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRleHRXaWR0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMjhWOTZIMTkybDAgMTI4SDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg5NmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgyNTZsMC0xMjhIMzg0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMjI0IDQ4QzIxLjUgMzIgMCA1My41IDAgODB2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpNOS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM2w2NCA2NGM5LjIgOS4yIDIyLjkgMTEuOSAzNC45IDYuOXMxOS44LTE2LjYgMTkuOC0yOS42VjQxNkgzMjB2MzJjMCAxMi45IDcuOCAyNC42IDE5LjggMjkuNnMyNS43IDIuMiAzNC45LTYuOWw2NC02NGMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM2wtNjQtNjRjLTkuMi05LjItMjIuOS0xMS45LTM0LjktNi45cy0xOS44IDE2LjYtMTkuOCAyOS42djMySDEyOFYzMjBjMC0xMi45LTcuOC0yNC42LTE5LjgtMjkuNnMtMjUuNy0yLjItMzQuOSA2LjlsLTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAzODIuMVYyOTMuM2MwLTE0LjkgNS45LTI5LjEgMTYuNC0zOS42bDI3LjMtMjcuMyA1NyA1N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU3LTU3IDQxLjQtNDEuNCA1NyA1N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU3LTU3IDQxLjQtNDEuNCA1NyA1N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMHM2LjItMTYuNCAwLTIyLjZsLTU3LTU3IDQ1LjUtNDUuNUMzNTUuMiAxMC45IDM4MS40IDAgNDA4LjggMEM0NjUuOCAwIDUxMiA0Ni4yIDUxMiAxMDMuMmMwIDI3LjQtMTAuOSA1My42LTMwLjIgNzNMMjU4LjMgMzk5LjZjLTEwLjUgMTAuNS0yNC43IDE2LjQtMzkuNiAxNi40SDEyOS45TDQxIDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw4OS04OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGh1bWJzRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNCA0NzkuMWMyNi01LjIgNDIuOS0zMC41IDM3LjctNTYuNWwtMi4zLTExLjRjLTUuMy0yNi43LTE1LjEtNTIuMS0yOC44LTc1LjJINDY0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4YzAtMTguNS0xMC41LTM0LjYtMjUuOS00Mi42QzQ5NyAyMzYuNiA1MDQgMjIzLjEgNTA0IDIwOGMwLTIzLjQtMTYuOC00Mi45LTM4LjktNDcuMWM0LjQtNy4zIDYuOS0xNS44IDYuOS0yNC45YzAtMjEuMy0xMy45LTM5LjQtMzMuMS00NS42Yy43LTMuMyAxLjEtNi44IDEuMS0xMC40YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI5NC41Yy0xOSAwLTM3LjUgNS42LTUzLjMgMTYuMUwyMDIuNyA3My44QzE3NiA5MS42IDE2MCAxMjEuNiAxNjAgMTUzLjdWMTkydjQ4IDI0LjljMCAyOS4yIDEzLjMgNTYuNyAzNiA3NWw3LjQgNS45YzI2LjUgMjEuMiA0NC42IDUxIDUxLjIgODQuMmwyLjMgMTEuNGM1LjIgMjYgMzAuNSA0Mi45IDU2LjUgMzcuN3pNMzIgMzg0SDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDk2IDAgMTEwLjMgMCAxMjhWMzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaHVtYnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNCAzMi45YzI2IDUuMiA0Mi45IDMwLjUgMzcuNyA1Ni41bC0yLjMgMTEuNGMtNS4zIDI2LjctMTUuMSA1Mi4xLTI4LjggNzUuMkg0NjRjMjYuNSAwIDQ4IDIxLjUgNDggNDhjMCAxOC41LTEwLjUgMzQuNi0yNS45IDQyLjZDNDk3IDI3NS40IDUwNCAyODguOSA1MDQgMzA0YzAgMjMuNC0xNi44IDQyLjktMzguOSA0Ny4xYzQuNCA3LjMgNi45IDE1LjggNi45IDI0LjljMCAyMS4zLTEzLjkgMzkuNC0zMy4xIDQ1LjZjLjcgMy4zIDEuMSA2LjggMS4xIDEwLjRjMCAyNi41LTIxLjUgNDgtNDggNDhIMjk0LjVjLTE5IDAtMzcuNS01LjYtNTMuMy0xNi4xbC0zOC41LTI1LjdDMTc2IDQyMC40IDE2MCAzOTAuNCAxNjAgMzU4LjNWMzIwIDI3MiAyNDcuMWMwLTI5LjIgMTMuMy01Ni43IDM2LTc1bDcuNC01LjljMjYuNS0yMS4yIDQ0LjYtNTEgNTEuMi04NC4ybDIuMy0xMS40YzUuMi0yNiAzMC41LTQyLjkgNTYuNS0zNy43ek0zMiAxOTJIOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyMjRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1idGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMzMiAxNC4zIDQ2LjMgMCA2NCAwSDMyMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyOTAuNWwxMS40IDE0OC4yYzM2LjcgMTkuOSA2NS43IDUzLjIgNzkuNSA5NC43bDEgM2MzLjMgOS44IDEuNiAyMC41LTQuNCAyOC44cy0xNS43IDEzLjMtMjYgMTMuM0gzMmMtMTAuMyAwLTE5LjktNC45LTI2LTEzLjNzLTcuNy0xOS4xLTQuNC0yOC44bDEtM2MxMy44LTQxLjUgNDIuOC03NC44IDc5LjUtOTQuN0w5My41IDY0SDY0QzQ2LjMgNjQgMzIgNDkuNyAzMiAzMnpNMTYwIDM4NGg2NHY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYzODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpY2tldFNpbXBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjRjMCA4LjgtNy40IDE1LjctMTUuNyAxOC42QzU0MS41IDIxNy4xIDUyOCAyMzUgNTI4IDI1NnMxMy41IDM4LjkgMzIuMyA0NS40YzguMyAyLjkgMTUuNyA5LjggMTUuNyAxOC42djY0YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYzMjBjMC04LjggNy40LTE1LjcgMTUuNy0xOC42QzM0LjUgMjk0LjkgNDggMjc3IDQ4IDI1NnMtMTMuNS0zOC45LTMyLjMtNDUuNEM3LjQgMjA3LjcgMCAyMDAuOCAwIDE5MlYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHY2NGMwIDguOCA3LjQgMTUuNyAxNS43IDE4LjZDMzQuNSAyMTcuMSA0OCAyMzUgNDggMjU2cy0xMy41IDM4LjktMzIuMyA0NS40QzcuNCAzMDQuMyAwIDMxMS4yIDAgMzIwdjY0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFYzMjBjMC04LjgtNy40LTE1LjctMTUuNy0xOC42QzU0MS41IDI5NC45IDUyOCAyNzcgNTI4IDI1NnMxMy41LTM4LjkgMzIuMy00NS40YzguMy0yLjkgMTUuNy05LjggMTUuNy0xOC42VjEyOGMwLTM1LjMtMjguNy02NC02NC02NEg2NHptNjQgMTEybDAgMTYwYzAgOC44IDcuMiAxNiAxNiAxNkg0MzJjOC44IDAgMTYtNy4yIDE2LTE2VjE3NmMwLTguOC03LjItMTYtMTYtMTZIMTQ0Yy04LjggMC0xNiA3LjItMTYgMTZ6TTk2IDE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkg0NDhjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaW1lbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNzJhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4em0zMiA5Ny4zYzI4LjMtMTIuMyA0OC00MC41IDQ4LTczLjNjMC00NC4yLTM1LjgtODAtODAtODBTNDggNTEuOCA0OCA5NmMwIDMyLjggMTkuNyA2MSA0OCA3My4zVjIyNEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgyODh2NTQuN2MtMjguMyAxMi4zLTQ4IDQwLjUtNDggNzMuM2MwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzIuOC0xOS43LTYxLTQ4LTczLjNWMjg4SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg1NDRWMTY5LjNjMjguMy0xMi4zIDQ4LTQwLjUgNDgtNzMuM2MwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDMyLjggMTkuNyA2MSA0OCA3My4zVjIyNEgxNjBWMTY5LjN6TTQ4OCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwek0zMjAgMzkyYTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjhjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjhIMTkyYy03MC43IDAtMTI4LTU3LjMtMTI4LTEyOHM1Ny4zLTEyOCAxMjgtMTI4SDM4NHpNNTc2IDI1NmMwLTEwNi04Ni0xOTItMTkyLTE5MkgxOTJDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhIMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkyek0xOTIgMzUyYTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2dnbGVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNjRDODYgNjQgMCAxNTAgMCAyNTZTODYgNDQ4IDE5MiA0NDhIMzg0YzEwNiAwIDE5Mi04NiAxOTItMTkycy04Ni0xOTItMTkyLTE5MkgxOTJ6bTE5MiA5NmE5NiA5NiAwIDEgMSAwIDE5MiA5NiA5NiAwIDEgMSAwLTE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9pbGV0UGFwZXJTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43bC0xMDkuNy04NkM1NjkuOSAzNzQgNjA4IDI5MS45IDYwOCAxOTJDNjA4IDg2IDU2NSAwIDUxMiAwcy05NiA4Ni05NiAxOTJjMCA0OS4xIDkuMiA5My45IDI0LjQgMTI3LjlsLTU5LTQ2LjJjMS42LTI0LjggMi42LTUyIDIuNi04MS42YzAtNjUuNSAxMy4yLTE0Mi40IDYwLjItMTkySDE2MGMtMjQuOCAwLTQ3LjQgMTguOC02NC40IDQ5LjZMMzguOCA1LjF6TTM2Ny4zIDM4NS40TDY2LjUgMTQ4LjRDNjQuOSAxNjIuNCA2NCAxNzcgNjQgMTkyYzAgMTAxLjUtMTEuNyAxNzAuOC0yMyAyMTMuOWMtNS4xIDE5LjQtMTAuNyAzOS45LTIwLjUgNTcuN2MtNS45IDkuOS02LjEgMjIuMS0uNCAzMi4yUzM2LjUgNTEyIDQ4IDUxMkgyODUuOWMyMi4zIDAgNDUuNC0xMi4xIDU1LjQtMzYuMWM3LjQtMTcuNyAxNy41LTQ3LjIgMjYtOTAuNnpNNTQ0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldFBhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NC4yIDBDMzk3LjIgNDkuNiAzODQgMTI2LjUgMzg0IDE5MmMwIDE1OC44LTI3LjMgMjQ3LTQyLjcgMjgzLjljLTEwIDI0LTMzLjIgMzYuMS01NS40IDM2LjFINDhjLTExLjUgMC0yMi4yLTYuMi0yNy44LTE2LjJzLTUuNi0yMi4zIC40LTMyLjJjOS44LTE3LjcgMTUuNC0zOC4yIDIwLjUtNTcuN0M1Mi4zIDM2Mi44IDY0IDI5My41IDY0IDE5MkM2NCA4NiAxMDcgMCAxNjAgMEg0NDQuMnpNNTEyIDM4NGMtNTMgMC05Ni04Ni05Ni0xOTJTNDU5IDAgNTEyIDBzOTYgODYgOTYgMTkycy00MyAxOTItOTYgMTkyem0wLTEyOGMxNy43IDAgMzItMjguNyAzMi02NHMtMTQuMy02NC0zMi02NHMtMzIgMjguNy0zMiA2NHMxNC4zIDY0IDMyIDY0ek0xNDQgMjA4YTE2IDE2IDAgMSAwIC0zMiAwIDE2IDE2IDAgMSAwIDMyIDB6bTY0IDBhMTYgMTYgMCAxIDAgLTMyIDAgMTYgMTYgMCAxIDAgMzIgMHptNDggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyem04MC0xNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXRQb3J0YWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyVjY0SDMyMFYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDAgMCAxNC4zIDAgMzJ6TTI0IDk2SDB2MjRWNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjR2LThIMjcydjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxMjAgOTZIMjk2IDI0ek0yNTYgMjQwdjY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI0MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMEMxMC43IDAgMCAxMC43IDAgMjRTMTAuNyA0OCAyNCA0OGg4VjE5Ni45Yy0xLjkgMS40LTMuOCAyLjktNS42IDQuNEMxMC45IDIxNC41IDAgMjMyLjkgMCAyNTZjMCA0Ni45IDE0LjMgODQuMSAzNyAxMTIuNWMxNC4yIDE3LjcgMzEuMSAzMS4zIDQ4LjUgNDEuOEw2NS42IDQ2OS45Yy0zLjMgOS44LTEuNiAyMC41IDQuNCAyOC44czE1LjcgMTMuMyAyNiAxMy4zSDM1MmMxMC4zIDAgMTkuOS00LjkgMjYtMTMuM3M3LjctMTkuMSA0LjQtMjguOGwtMTkuOC01OS41YzE3LjQtMTAuNSAzNC4zLTI0LjEgNDguNS00MS44YzIyLjctMjguNCAzNy02NS41IDM3LTExMi41YzAtMjMuMS0xMC45LTQxLjUtMjYuNC01NC42Yy0xLjgtMS41LTMuNy0zLTUuNi00LjRWNDhoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgyNHpNMzg0IDI1Ni4zYzAgMS0uMyAyLjYtMy44IDUuNmMtNC44IDQuMS0xNCA5LTI5LjMgMTMuNEMzMjAuNSAyODQgMjc2LjEgMjg4IDIyNCAyODhzLTk2LjUtNC0xMjYuOS0xMi44Yy0xNS4zLTQuNC0yNC41LTkuMy0yOS4zLTEzLjRjLTMuNS0zLTMuOC00LjYtMy44LTUuNmwwLS4zIDAtLjFjMC0xIDAtMi41IDMuOC01LjhjNC44LTQuMSAxNC05IDI5LjMtMTMuNEMxMjcuNSAyMjggMTcxLjkgMjI0IDIyNCAyMjRzOTYuNSA0IDEyNi45IDEyLjhjMTUuMyA0LjQgMjQuNSA5LjMgMjkuMyAxMy40YzMuOCAzLjIgMy44IDQuOCAzLjggNS44bDAgLjEgMCAuM3pNMzI4LjIgMzg0bC0uMiAuNSAwLS41aC4yek0xMTIgNjRoMzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXRzUG9ydGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMEgyMjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNjRIMFYzMkMwIDE0LjMgMTQuMyAwIDMyIDB6TTAgOTZIMjQgMjMyaDI0djI0VjQ4OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHYtOEg0OHY4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjEyMCA5NnpNMTkyIDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNnpNMzUyIDBINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjY0SDMyMFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMzIwIDk2aDI0SDU1MmgyNHYyNFY0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR2LThIMzY4djhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMTIwIDk2ek01MTIgMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb29sYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA4OGwwIDQwIDE2MCAwIDAtNDBjMC00LjQtMy42LTgtOC04TDE4NCA4MGMtNC40IDAtOCAzLjYtOCA4em0tNDggNDBsMC00MGMwLTMwLjkgMjUuMS01NiA1Ni01NmwxNDQgMGMzMC45IDAgNTYgMjUuMSA1NiA1NmwwIDQwIDI4LjEgMGMxMi43IDAgMjQuOSA1LjEgMzMuOSAxNC4xbDUxLjkgNTEuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOWwwIDkyLjEtMTI4IDAgMC0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMyLTEyOCAwIDAtMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJsMCAzMkwwIDMyMGwwLTkyLjFjMC0xMi43IDUuMS0yNC45IDE0LjEtMzMuOWw1MS45LTUxLjljOS05IDIxLjItMTQuMSAzMy45LTE0LjFsMjguMSAwek0wIDQxNmwwLTY0IDEyOCAwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMTI4IDBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmwxMjggMCAwIDY0YzAgMzUuMy0yOC43IDY0LTY0IDY0TDY0IDQ4MGMtMzUuMyAwLTY0LTI4LjctNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvb3RoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xIDUyLjFDMTY5LjMgMzkuMSAxNDguNyAzMiAxMjcuNSAzMkM3NC43IDMyIDMyIDc0LjcgMzIgMTI3LjV2Ni4yYzAgMTUuOCAzLjcgMzEuMyAxMC43IDQ1LjVsMjMuNSA0Ny4xYzQuNSA4LjkgNy42IDE4LjQgOS40IDI4LjJsMzYuNyAyMDUuOGMyIDExLjIgMTEuNiAxOS40IDIyLjkgMTkuOHMyMS40LTcuNCAyNC0xOC40bDI4LjktMTIxLjNDMTkyLjIgMzIzLjcgMjA3IDMxMiAyMjQgMzEyczMxLjggMTEuNyAzNS44IDI4LjNsMjguOSAxMjEuM2MyLjYgMTEuMSAxMi43IDE4LjggMjQgMTguNHMyMC45LTguNiAyMi45LTE5LjhsMzYuNy0yMDUuOGMxLjgtOS44IDQuOS0xOS4zIDkuNC0yOC4ybDIzLjUtNDcuMWM3LjEtMTQuMSAxMC43LTI5LjcgMTAuNy00NS41di0yLjFjMC01NS00NC42LTk5LjYtOTkuNi05OS42Yy0yNC4xIDAtNDcuNCA4LjgtNjUuNiAyNC42bC0zLjIgMi44IDE5LjUgMTUuMmM3IDUuNCA4LjIgMTUuNSAyLjggMjIuNXMtMTUuNSA4LjItMjIuNSAyLjhsLTI0LjQtMTktMzctMjguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9yaWlHYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgODBjMCAyNi41IDIxLjUgNDggNDggNDhINjR2NjRoNjRWMTI4aDk2djY0aDY0VjEyOGg5NnY2NGg2NFYxMjhoMTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMuNEM1MTIgNiA1MDYgMCA0OTguNiAwYy0xLjcgMC0zLjQgLjMtNSAxbC00OSAxOS42QzQyNS43IDI4LjEgNDA1LjUgMzIgMzg1LjIgMzJIMTI2LjhjLTIwLjQgMC00MC41LTMuOS01OS40LTExLjRMMTguNCAxYy0xLjYtLjYtMy4zLTEtNS0xQzYgMCAwIDYgMCAxMy40Vjgwek02NCAyODhWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWMjg4SDM4NFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyODhoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvcm5hZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMlY0NS42QzAgNjIuNyAxLjcgNzkuNiA1IDk2SDM1Ny44YzMuMi02LjkgNy41LTEzLjMgMTMtMTguOGwzOC42LTM4LjZjNC4yLTQuMiA2LjYtMTAgNi42LTE2QzQxNiAxMC4xIDQwNS45IDAgMzkzLjQgMEgzMkMxNC4zIDAgMCAxNC4zIDAgMzJ6bTM1Mi4yIDk2SDEzLjZjMTIuMiAzNS45IDMyLjMgNjguNyA1OC44IDk2SDQxMmwtNDcuMi02Mi45Yy03LjMtOS43LTExLjYtMjEuMi0xMi42LTMzLjF6bS0yMjYgMTM4LjJsMTE2LjQgNjguNWM4LjIgNC44IDE1LjggMTAuNyAyMi41IDE3LjNINDQ1YzItOS44IDMtMTkuOSAzLTMwLjFjMC0yMy01LjMtNDUuNS0xNS4zLTY1LjlIMTEwLjJjNS4yIDMuNiAxMC41IDcgMTYgMTAuMnpNMjg4IDM4NGMxMC4zIDIxLjQgMTMuOCA0NS41IDkuOSA2OWwtNS45IDM1LjdjLTIgMTIuMiA3LjQgMjMuNCAxOS44IDIzLjRjNS4zIDAgMTAuNC0yLjEgMTQuMi01LjlsNzguMi03OC4yYzEyLjgtMTIuOCAyMy4xLTI3LjcgMzAuNC00My45SDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG93ZXJCcm9hZGNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAuMyA0NEM2OS44IDY5LjkgNjQgOTguMiA2NCAxMjhzNS44IDU4LjEgMTYuMyA4NGM2LjYgMTYuNC0xLjMgMzUtMTcuNyA0MS43cy0zNS0xLjMtNDEuNy0xNy43QzcuNCAyMDIuNiAwIDE2Ni4xIDAgMTI4UzcuNCA1My40IDIwLjkgMjBDMjcuNiAzLjYgNDYuMi00LjMgNjIuNiAyLjNTODYuOSAyNy42IDgwLjMgNDR6TTU1NS4xIDIwQzU2OC42IDUzLjQgNTc2IDg5LjkgNTc2IDEyOHMtNy40IDc0LjYtMjAuOSAxMDhjLTYuNiAxNi40LTI1LjMgMjQuMy00MS43IDE3LjdTNDg5LjEgMjI4LjQgNDk1LjcgMjEyYzEwLjUtMjUuOSAxNi4zLTU0LjIgMTYuMy04NHMtNS44LTU4LjEtMTYuMy04NEM0ODkuMSAyNy42IDQ5NyA5IDUxMy40IDIuM3MzNSAxLjMgNDEuNyAxNy43ek0zNTIgMTI4YzAgMjMuNy0xMi45IDQ0LjQtMzIgNTUuNFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWMTgzLjRjLTE5LjEtMTEuMS0zMi0zMS43LTMyLTU1LjRjMC0zNS4zIDI4LjctNjQgNjQtNjRzNjQgMjguNyA2NCA2NHpNMTcwLjYgNzYuOEMxNjMuOCA5Mi40IDE2MCAxMDkuNyAxNjAgMTI4czMuOCAzNS42IDEwLjYgNTEuMmM3LjEgMTYuMi0uMyAzNS4xLTE2LjUgNDIuMXMtMzUuMS0uMy00Mi4xLTE2LjVjLTEwLjMtMjMuNi0xNi00OS42LTE2LTc2LjhzNS43LTUzLjIgMTYtNzYuOGM3LjEtMTYuMiAyNS45LTIzLjYgNDIuMS0xNi41czIzLjYgMjUuOSAxNi41IDQyLjF6TTQ2NCA1MS4yYzEwLjMgMjMuNiAxNiA0OS42IDE2IDc2LjhzLTUuNyA1My4yLTE2IDc2LjhjLTcuMSAxNi4yLTI1LjkgMjMuNi00Mi4xIDE2LjVzLTIzLjYtMjUuOS0xNi41LTQyLjFjNi44LTE1LjYgMTAuNi0zMi45IDEwLjYtNTEuMnMtMy44LTM1LjYtMTAuNi01MS4yYy03LjEtMTYuMiAuMy0zNS4xIDE2LjUtNDIuMXMzNS4xIC4zIDQyLjEgMTYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG93ZXJDZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyLjYgMi4zQzQ2LjItNC4zIDI3LjYgMy42IDIwLjkgMjBDNy40IDUzLjQgMCA4OS45IDAgMTI4czcuNCA3NC42IDIwLjkgMTA4YzYuNiAxNi40IDI1LjMgMjQuMyA0MS43IDE3LjdTODYuOSAyMjguNCA4MC4zIDIxMkM2OS44IDE4Ni4xIDY0IDE1Ny44IDY0IDEyOHM1LjgtNTguMSAxNi4zLTg0Qzg2LjkgMjcuNiA3OSA5IDYyLjYgMi4zem00NTAuOCAwQzQ5NyA5IDQ4OS4xIDI3LjYgNDk1LjcgNDRDNTA2LjIgNjkuOSA1MTIgOTguMiA1MTIgMTI4cy01LjggNTguMS0xNi4zIDg0Yy02LjYgMTYuNCAxLjMgMzUgMTcuNyA0MS43czM1LTEuMyA0MS43LTE3LjdjMTMuNS0zMy40IDIwLjktNjkuOSAyMC45LTEwOHMtNy40LTc0LjYtMjAuOS0xMDhDNTQ4LjQgMy42IDUyOS44LTQuMyA1MTMuNCAyLjN6TTM0MC4xIDE2NS4yYzcuNS0xMC41IDExLjktMjMuMyAxMS45LTM3LjJjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRjMCAxMy45IDQuNCAyNi43IDExLjkgMzcuMkw5OC45IDQ2Ni44Yy03LjMgMTYuMS0uMiAzNS4xIDE1LjkgNDIuNHMzNS4xIC4yIDQyLjQtMTUuOUwxNzcuNyA0NDhIMzk4LjNsMjAuNiA0NS4yYzcuMyAxNi4xIDI2LjMgMjMuMiA0Mi40IDE1LjlzMjMuMi0yNi4zIDE1LjktNDIuNEwzNDAuMSAxNjUuMnpNMzY5LjIgMzg0SDIwNi44bDE0LjUtMzJIMzU0LjdsMTQuNSAzMnpNMjg4IDIwNS4zTDMyNS42IDI4OEgyNTAuNEwyODggMjA1LjN6TTE2My4zIDczLjZjNS4zLTEyLjEtLjItMjYuMy0xMi40LTMxLjZzLTI2LjMgLjItMzEuNiAxMi40QzEwOS41IDc3IDEwNCAxMDEuOSAxMDQgMTI4czUuNSA1MSAxNS4zIDczLjZjNS4zIDEyLjEgMTkuNSAxNy43IDMxLjYgMTIuNHMxNy43LTE5LjUgMTIuNC0zMS42QzE1NiAxNjUuOCAxNTIgMTQ3LjQgMTUyIDEyOHM0LTM3LjggMTEuMy01NC40ek00NTYuNyA1NC40Yy01LjMtMTIuMS0xOS41LTE3LjctMzEuNi0xMi40cy0xNy43IDE5LjUtMTIuNCAzMS42QzQyMCA5MC4yIDQyNCAxMDguNiA0MjQgMTI4cy00IDM3LjgtMTEuMyA1NC40Yy01LjMgMTIuMSAuMiAyNi4zIDEyLjQgMzEuNnMyNi4zLS4yIDMxLjYtMTIuNEM0NjYuNSAxNzkgNDcyIDE1NC4xIDQ3MiAxMjhzLTUuNS01MS0xNS4zLTczLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvd2VyT2JzZXJ2YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQxLjcgMy40YzktNC41IDE5LjYtNC41IDI4LjYgMGwxNjAgODBjMTUuOCA3LjkgMjIuMiAyNy4xIDE0LjMgNDIuOUM0MzkgMTM3LjUgNDI3LjcgMTQ0IDQxNiAxNDR2ODBjMCAxNy43LTE0LjMgMzItMzIgMzJoLTQuOWwzMiAxOTJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDM4NC41Yy0uNCAwLS44IDAtMS4xIDBIMTI4LjZjLS40IDAtLjggMC0xLjEgMEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg2OC45bDMyLTE5MkgxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE0NGMtMTEuNyAwLTIzLTYuNS0yOC42LTE3LjdjLTcuOS0xNS44LTEuNS0zNSAxNC4zLTQyLjlsMTYwLTgwek0zMTQuNSA0NDhMMjU2IDM5OS4yIDE5Ny41IDQ0OGgxMTd6TTE5Ny44IDI1NmwtNC43IDI4LjNMMjU2IDMzNi44bDYyLjktNTIuNUwzMTQuMiAyNTZIMTk3Ljh6bS0xMy45IDgzLjJsLTExLjIgNjdMMjE4LjUgMzY4bC0zNC42LTI4Ljh6TTI5My41IDM2OGw0NS44IDM4LjEtMTEuMi02N0wyOTMuNSAzNjh6TTE3NiAxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMzM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhY3RvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiA2NGMwLTM1LjMgMjguNy02NCA2NC02NEgyNjYuM2MyNi4yIDAgNDkuNyAxNS45IDU5LjQgNDAuMkwzNzMuNyAxNjBINDgwVjEyNi4yYzAtMjQuOCA1LjgtNDkuMyAxNi45LTcxLjZsMi41LTVjNy45LTE1LjggMjcuMS0yMi4yIDQyLjktMTQuM3MyMi4yIDI3LjEgMTQuMyA0Mi45bC0yLjUgNWMtNi43IDEzLjMtMTAuMSAyOC0xMC4xIDQyLjlWMTYwaDU2YzIyLjEgMCA0MCAxNy45IDQwIDQwdjQ1LjRjMCAxNi41LTguNSAzMS45LTIyLjYgNDAuN2wtNDMuMyAyNy4xYy0xNC4yLTUuOS0yOS44LTkuMi00Ni4xLTkuMmMtMzkuMyAwLTc0LjEgMTguOS05NiA0OEgzNTJjMCAxNy43LTE0LjMgMzItMzIgMzJoLTguMmMtMS43IDQuOC0zLjcgOS41LTUuOCAxNC4xbDUuOCA1LjhjMTIuNSAxMi41IDEyLjUgMzIuOCAwIDQ1LjNsLTIyLjYgMjIuNmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTUuOC01LjhjLTQuNiAyLjItOS4zIDQuMS0xNC4xIDUuOFY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMnYtOC4yYy00LjgtMS43LTkuNS0zLjctMTQuMS01LjhsLTUuOCA1LjhjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwTDQwLjIgNDQ5LjFjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDUuOC01LjhjLTIuMi00LjYtNC4xLTkuMy01LjgtMTQuMUgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMzIwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDguMmMxLjctNC44IDMuNy05LjUgNS44LTE0LjFsLTUuOC01LjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zbDIyLjYtMjIuNmM5LTkgMjEuOS0xMS41IDMzLjEtNy42VjE5MiAxNjAgNjR6bTE3MC4zIDBIMTYwdjk2aDMySDMwNC43TDI2Ni4zIDY0ek0xNzYgMjU2YTgwIDgwIDAgMSAwIDAgMTYwIDgwIDgwIDAgMSAwIDAtMTYwek01MjggNDQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMCA2NGMtNDguNiAwLTg4LTM5LjQtODgtODhjMC0yOS44IDE0LjgtNTYuMSAzNy40LTcyYzE0LjMtMTAuMSAzMS44LTE2IDUwLjYtMTZjMi43IDAgNS4zIC4xIDcuOSAuM2M0NC45IDQgODAuMSA0MS43IDgwLjEgODcuN2MwIDQ4LjYtMzkuNCA4OC04OCA4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhZGVtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NS42IDEwOC44Yy04LjMtMTEtMjIuNy0xNS41LTM1LjctMTEuMlMyODggMTE0LjIgMjg4IDEyOFYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyMjRsODYuNCAxMTUuMmM2IDguMSAxNS41IDEyLjggMjUuNiAxMi44czE5LjYtNC43IDI1LjYtMTIuOEw1NzYgMjI0VjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjEyOGMwLTEzLjgtOC44LTI2LTIxLjktMzAuNHMtMjcuNSAuMS0zNS43IDExLjJMNDY0IDI2Ni43IDM0NS42IDEwOC44ek0wIDEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg5NlYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYxNjBoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzJDMTQuMyA5NiAwIDExMC4zIDAgMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFmZmljTGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWMzUyYzAgODguNCA3MS42IDE2MCAxNjAgMTYwczE2MC03MS42IDE2MC0xNjBWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6bTk2IDQxNmE0OCA0OCAwIDEgMSAwLTk2IDQ4IDQ4IDAgMSAxIDAgOTZ6bTQ4LTE3NmE0OCA0OCAwIDEgMSAtOTYgMCA0OCA0OCAwIDEgMSA5NiAwem0tNDgtODBhNDggNDggMCAxIDEgMC05NiA0OCA0OCAwIDEgMSAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDMyQzIxLjUgMzIgMCA1My41IDAgODBWMzM2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4SDY1LjFjNy44LTU0LjMgNTQuNC05NiAxMTAuOS05NnMxMDMuMSA0MS43IDExMC45IDk2SDQ4OGg4SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg1NDRWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTgwIDk2YzguOCAwIDE2IDcuMiAxNiAxNmwwIDEzMS4yYy0xMS40IDUuOS0yMi4yIDEyLjktMzIgMjFWMTEyYzAtOC44IDcuMi0xNiAxNi0xNnptOTYgMTI4Yy01LjQgMC0xMC43IC4yLTE2IC43TDE2MCAxMTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDExMi43Yy01LjMtLjUtMTAuNi0uNy0xNi0uN3ptODAgMTkuMkwyNTYgMTEyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZsMCAxNTIuMmMtOS44LTguMS0yMC42LTE1LjItMzItMjF6TTM2OCA5NmM4LjggMCAxNiA3LjIgMTYgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2em0xMTIgMTZsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0xOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnpNMTc2IDQ4MGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0xMTJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpblN1YndheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAwQzQzIDAgMCA0MyAwIDk2VjM1MmMwIDQ4IDM1LjIgODcuNyA4MS4xIDk0LjlsLTQ2IDQ2QzI4LjEgNDk5LjkgMzMuMSA1MTIgNDMgNTEySDgyLjdjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRMMTYwIDQ0OEgyODhsNTQuNiA1NC42YzYgNiAxNC4xIDkuNCAyMi42IDkuNEg0MDVjMTAgMCAxNS0xMi4xIDcuOS0xOS4xbC00Ni00NmM0Ni03LjEgODEuMS00Ni45IDgxLjEtOTQuOVY5NmMwLTUzLTQzLTk2LTk2LTk2SDk2ek02NCAxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJoODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2OTZjMCAxNy43LTE0LjMgMzItMzIgMzJIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjEyOHpNMjcyIDk2aDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDI3MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTI4YzAtMTcuNyAxNC4zLTMyIDMyLTMyek02NCAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMjg4LTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhaW5UcmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg2LjggNDhjLTEyLjIgMC0yMy42IDUuNS0zMS4yIDE1TDQyLjcgNzlDMzQuNSA4OS4zIDE5LjQgOTEgOSA4Mi43Uy0zIDU5LjQgNS4zIDQ5TDE4IDMzQzM0LjcgMTIuMiA2MCAwIDg2LjggMEgzNjEuMmMyNi43IDAgNTIgMTIuMiA2OC43IDMzbDEyLjggMTZjOC4zIDEwLjQgNi42IDI1LjUtMy44IDMzLjdzLTI1LjUgNi42LTMzLjctMy43TDM5Mi41IDYzYy03LjYtOS41LTE5LjEtMTUtMzEuMi0xNUgyNDhWOTZoNDBjNTMgMCA5NiA0MyA5NiA5NlYzNTJjMCAzMC42LTE0LjMgNTcuOC0zNi42IDc1LjRsNjUuNSA2NS41YzcuMSA3LjEgMi4xIDE5LjEtNy45IDE5LjFIMzY1LjNjLTguNSAwLTE2LjYtMy40LTIyLjYtOS40TDI4OCA0NDhIMTYwbC01NC42IDU0LjZjLTYgNi0xNC4xIDkuNC0yMi42IDkuNEg0M2MtMTAgMC0xNS0xMi4xLTcuOS0xOS4xbDY1LjUtNjUuNUM3OC4zIDQwOS44IDY0IDM4Mi42IDY0IDM1MlYxOTJjMC01MyA0My05NiA5Ni05Nmg0MFY0OEg4Ni44ek0xNjAgMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMkgyODhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE2MHptMzIgMTkyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTk2IDMyYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMEM0MyAwIDAgNDMgMCA5NlYzNTJjMCA0OCAzNS4yIDg3LjcgODEuMSA5NC45bC00NiA0NkMyOC4xIDQ5OS45IDMzLjEgNTEyIDQzIDUxMkg4Mi43YzguNSAwIDE2LjYtMy40IDIyLjYtOS40TDE2MCA0NDhIMjg4bDU0LjYgNTQuNmM2IDYgMTQuMSA5LjQgMjIuNiA5LjRINDA1YzEwIDAgMTUtMTIuMSA3LjktMTkuMWwtNDYtNDZjNDYtNy4xIDgxLjEtNDYuOSA4MS4xLTk0LjlWOTZjMC01My00My05Ni05Ni05Nkg5NnpNNjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJIMzUyYzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NnpNMjI0IDI4OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYW5zZ2VuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAwYzYuNSAwIDEyLjMgMy45IDE0LjggOS45czEuMSAxMi45LTMuNSAxNy40bC0zMSAzMUwxMTIgNzguMWw3LTdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC03IDcgMTUuMiAxNS4yQzE4Ny43IDEwNy42IDIyMC41IDk2IDI1NiA5NnM2OC4zIDExLjYgOTQuOSAzMS4ybDY4LjgtNjguOC0zMS0zMWMtNC42LTQuNi01LjktMTEuNS0zLjUtMTcuNHM4LjMtOS45IDE0LjgtOS45aDk2YzguOCAwIDE2IDcuMiAxNiAxNnY5NmMwIDYuNS0zLjkgMTIuMy05LjkgMTQuOHMtMTIuOSAxLjEtMTcuNC0zLjVsLTMxLTMxLTY4LjggNjguOEM0MDQuNCAxODcuNyA0MTYgMjIwLjUgNDE2IDI1NmMwIDgwLjItNTkgMTQ2LjYtMTM2IDE1OC4yVjQzMmgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyODB2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNHYtOEgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMTZWNDE0LjJDMTU1IDQwMi42IDk2IDMzNi4yIDk2IDI1NmMwLTM1LjUgMTEuNi02OC4zIDMxLjItOTQuOUwxMTIgMTQ1LjlsLTcgN2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw3LTdMNTguMyA5Mi4zbC0zMSAzMWMtNC42IDQuNi0xMS41IDUuOS0xNy40IDMuNVMwIDExOC41IDAgMTEyVjE2QzAgNy4yIDcuMiAwIDE2IDBoOTZ6TTM1MiAyNTZhOTYgOTYgMCAxIDAgLTE5MiAwIDk2IDk2IDAgMSAwIDE5MiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaEFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYzLjggMEgyODQuMmMxMi4xIDAgMjMuMiA2LjggMjguNiAxNy43TDMyMCAzMmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0UzE0LjMgMzIgMzIgMzJoOTZsNy4yLTE0LjNDMTQwLjYgNi44IDE1MS43IDAgMTYzLjggMHpNMzIgMTI4SDQxNkwzOTQuOCA0NjdjLTEuNiAyNS4zLTIyLjYgNDUtNDcuOSA0NUgxMDEuMWMtMjUuMyAwLTQ2LjMtMTkuNy00Ny45LTQ1TDMyIDEyOHptMTkyIDY0Yy02LjQgMC0xMi41IDIuNS0xNyA3bC04MCA4MGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDM5LTM5VjQwOGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI3My45bDM5IDM5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtODAtODBjLTQuNS00LjUtMTAuNi03LTE3LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoQ2FuQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjMuOCAwSDI4NC4yYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmg5Nmw3LjItMTQuM0MxNDAuNiA2LjggMTUxLjcgMCAxNjMuOCAwek0zMiAxMjhINDE2VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg5NmMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4em0xOTIgNjRjLTYuNCAwLTEyLjUgMi41LTE3IDdsLTgwIDgwYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsMzktMzlWNDA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjczLjlsMzkgMzljOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC04MC04MGMtNC41LTQuNS0xMC42LTctMTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhc2hDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM1LjIgMTcuN0MxNDAuNiA2LjggMTUxLjcgMCAxNjMuOCAwSDI4NC4yYzEyLjEgMCAyMy4yIDYuOCAyOC42IDE3LjdMMzIwIDMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDMyQzE0LjMgOTYgMCA4MS43IDAgNjRTMTQuMyAzMiAzMiAzMmg5Nmw3LjItMTQuM3pNMzIgMTI4SDQxNlY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRIOTZjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHptOTYgNjRjLTguOCAwLTE2IDcuMi0xNiAxNlY0MzJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyMDhjMC04LjgtNy4yLTE2LTE2LTE2em05NiAwYy04LjggMC0xNiA3LjItMTYgMTZWNDMyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnptOTYgMGMtOC44IDAtMTYgNy4yLTE2IDE2VjQzMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNS4yIDE3LjdMMTI4IDMySDMyQzE0LjMgMzIgMCA0Ni4zIDAgNjRTMTQuMyA5NiAzMiA5Nkg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMzIwbC03LjItMTQuM0MzMDcuNCA2LjggMjk2LjMgMCAyODQuMiAwSDE2My44Yy0xMi4xIDAtMjMuMiA2LjgtMjguNiAxNy43ek00MTYgMTI4SDMyTDUzLjIgNDY3YzEuNiAyNS4zIDIyLjYgNDUgNDcuOSA0NUgzNDYuOWMyNS4zIDAgNDYuMy0xOS43IDQ3LjktNDVMNDE2IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJlZUNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDQ4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDk2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4VjE5Mmg0MFYxMjBjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY3MmgyNGMyNi41IDAgNDggMjEuNSA0OCA0OFY0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDMyIDMzNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6bTY0IDMydjMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNiA4MGMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTc2YzAtOC44LTcuMi0xNi0xNi0xNkgzNjh6TTM1MiAyNzJ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyNzJjMC04LjgtNy4yLTE2LTE2LTE2SDM2OGMtOC44IDAtMTYgNy4yLTE2IDE2em0xNzYtMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjI3MmMwLTguOC03LjItMTYtMTYtMTZINTI4ek01MTIgMzY4djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNkg1MjhjLTguOCAwLTE2IDcuMi0xNiAxNnpNMjI0IDE2MGMwIDYtMSAxMS0yIDE2YzIwIDE0IDM0IDM4IDM0IDY0YzAgNDUtMzYgODAtODAgODBIMTYwVjQ4MGMwIDE4LTE1IDMyLTMyIDMyYy0xOCAwLTMyLTE0LTMyLTMyVjMyMEg4MGMtNDUgMC04MC0zNS04MC04MGMwLTI2IDEzLTUwIDMzLTY0Yy0xLTUtMS0xMC0xLTE2YzAtNTMgNDItOTYgOTYtOTZjNTMgMCA5NiA0MyA5NiA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTAuNiA1LjlMNjIgMTY5LjRjLTMuOSA0LjItNiA5LjgtNiAxNS41QzU2IDE5Ny43IDY2LjMgMjA4IDc5LjEgMjA4SDEwNEwzMC42IDI4MS40Yy00LjIgNC4yLTYuNiAxMC02LjYgMTZDMjQgMzA5LjkgMzQuMSAzMjAgNDYuNiAzMjBIODBMNS40IDQwOS41QzEuOSA0MTMuNyAwIDQxOSAwIDQyNC41YzAgMTMgMTAuNSAyMy41IDIzLjUgMjMuNUgxOTJ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NDhINDI0LjVjMTMgMCAyMy41LTEwLjUgMjMuNS0yMy41YzAtNS41LTEuOS0xMC44LTUuNC0xNUwzNjggMzIwaDMzLjRjMTIuNSAwIDIyLjYtMTAuMSAyMi42LTIyLjZjMC02LTIuNC0xMS44LTYuNi0xNkwzNDQgMjA4aDI0LjljMTIuNyAwIDIzLjEtMTAuMyAyMy4xLTIzLjFjMC01LjctMi4xLTExLjMtNi0xNS41TDIzNy40IDUuOUMyMzQgMi4xIDIyOS4xIDAgMjI0IDBzLTEwIDIuMS0xMy40IDUuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJpYW5nbGVFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJjMTQuMiAwIDI3LjMgNy41IDM0LjUgMTkuOGwyMTYgMzY4YzcuMyAxMi40IDcuMyAyNy43IC4yIDQwLjFTNDg2LjMgNDgwIDQ3MiA0ODBINDBjLTE0LjMgMC0yNy42LTcuNy0zNC43LTIwLjFzLTctMjcuOCAuMi00MC4xbDIxNi0zNjhDMjI4LjcgMzkuNSAyNDEuOCAzMiAyNTYgMzJ6bTAgMTI4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNFYyOTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYxODRjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTMyIDIyNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcm9waHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDBIMTc2Yy0yNi41IDAtNDguMSAyMS44LTQ3LjEgNDguMmMuMiA1LjMgLjQgMTAuNiAuNyAxNS44SDI0QzEwLjcgNjQgMCA3NC43IDAgODhjMCA5Mi42IDMzLjUgMTU3IDc4LjUgMjAwLjdjNDQuMyA0My4xIDk4LjMgNjQuOCAxMzguMSA3NS44YzIzLjQgNi41IDM5LjQgMjYgMzkuNCA0NS42YzAgMjAuOS0xNyAzNy45LTM3LjkgMzcuOUgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDM1Ny45QzMzNyA0NDggMzIwIDQzMSAzMjAgNDEwLjFjMC0xOS42IDE1LjktMzkuMiAzOS40LTQ1LjZjMzkuOS0xMSA5My45LTMyLjcgMTM4LjItNzUuOEM1NDIuNSAyNDUgNTc2IDE4MC42IDU3NiA4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNEg0NDYuNGMuMy01LjIgLjUtMTAuNCAuNy0xNS44QzQ0OC4xIDIxLjggNDI2LjUgMCA0MDAgMHpNNDguOSAxMTJoODQuNGM5LjEgOTAuMSAyOS4yIDE1MC4zIDUxLjkgMTkwLjZjLTI0LjktMTEtNTAuOC0yNi41LTczLjItNDguM2MtMzItMzEuMS01OC03Ni02My0xNDIuM3pNNDY0LjEgMjU0LjNjLTIyLjQgMjEuOC00OC4zIDM3LjMtNzMuMiA0OC4zYzIyLjctNDAuMyA0Mi44LTEwMC41IDUxLjktMTkwLjZoODQuNGMtNS4xIDY2LjMtMzEuMSAxMTEuMi02MyAxNDIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJvd2VsQnJpY2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MC44IDQuOEMyNTAuMyAxMC42IDI1NiAyMC45IDI1NiAzMnY3Mmg4OWMzLjYtMTMuOCAxNi4xLTI0IDMxLTI0aDg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4SDM3NmMtMTQuOSAwLTI3LjQtMTAuMi0zMS0yNEgyNTZ2NzJjMCAxMS4xLTUuNyAyMS40LTE1LjIgMjcuMnMtMjEuMiA2LjQtMzEuMSAxLjRsLTE5Mi05NkM2LjggMTUxLjIgMCAxNDAuMSAwIDEyOHM2LjgtMjMuMiAxNy43LTI4LjZsMTkyLTk2YzkuOS01IDIxLjctNC40IDMxLjEgMS40ek0yODggMjU2YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI1NnpNMzIgMzg0aDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJ6bTE5MiAwSDQ4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkgyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJvd2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0My45IDIxMy40TDI0NS4zIDMxMmw2NS40IDY1LjRjNy45IDcuOSAxMS4xIDE5LjQgOC40IDMwLjNzLTEwLjggMTkuNi0yMS41IDIyLjlsLTI1NiA4MGMtMTEuNCAzLjUtMjMuOCAuNS0zMi4yLTcuOVMtMi4xIDQ4MS44IDEuNSA0NzAuNWw4MC0yNTZjMy4zLTEwLjcgMTItMTguOSAyMi45LTIxLjVzMjIuNCAuNSAzMC4zIDguNEwyMDAgMjY2LjdsOTguNi05OC42Yy0xNC4zLTE0LjYtMTQuMi0zOCAuMy01Mi41bDk1LjQtOTUuNGMyNi45LTI2LjkgNzAuNS0yNi45IDk3LjUgMHMyNi45IDcwLjUgMCA5Ny41bC05NS40IDk1LjRjLTE0LjUgMTQuNS0zNy45IDE0LjYtNTIuNSAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwSDM2OGMyNi41IDAgNDggMjEuNSA0OCA0OFY5Nmg1MC43YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43TDU4OS4zIDE5MmMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjI1NnYzMiA2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg1NzZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZIMjU2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OHpNNDE2IDI1Nkg1NDRWMjM3LjNMNDY2LjcgMTYwSDQxNnY5NnpNMTYwIDQ2NGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTM2OC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0yNTcgOTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsMzkgMzlIOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjYyLjFsLTM5IDM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODAtODBjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjU3IDk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0Ryb3BsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0OEMwIDIxLjUgMjEuNSAwIDQ4IDBIMzY4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4Vjk2aDUwLjdjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdMNTg5LjMgMTkyYzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNWMjU2djMyIDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDU3NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NkgyNTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjQ4ek00MTYgMjU2SDU0NFYyMzcuM0w0NjYuNyAxNjBINDE2djk2ek0xNjAgNDY0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptMzY4LTQ4YTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTIwOCAyNzJjMzkuOCAwIDcyLTI5LjYgNzItNjZjMC0yNy0zOS40LTgyLjktNTkuOS0xMTAuM2MtNi4xLTguMi0xOC4xLTguMi0yNC4yIDBDMTc1LjQgMTIzIDEzNiAxNzkgMTM2IDIwNmMwIDM2LjUgMzIuMiA2NiA3MiA2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tGYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAwQzg1LjUgMCA2NCAyMS41IDY0IDQ4Vjk2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDY0IDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkg2NCA0OGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNkg2NCAyNDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZINjQgMTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZINjQgMjA4YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDY0VjQxNmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2SDM4NGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjI4OCAyNTYgMjM3LjNjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMNTEyIDExNC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgxMTJ6TTU0NCAyMzcuM1YyNTZINDE2VjE2MGg1MC43TDU0NCAyMzcuM3pNMTYwIDM2OGE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTI3MiA0OGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0ZpZWxkVW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJDNjAuNyAzMiAzMiA2MC43IDMyIDk2djMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMnYzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg2NGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2SDM4NGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjI4OGMwLTM1LjMtMjguNy02NC02NC02NGgtNC4yYy0uNC0xLjEtLjktMi4xLTEuMy0zLjJMNDg1LjcgMTAyYy0xMC4zLTIzLjEtMzMuMi0zOC01OC41LTM4SDM3NS40QzM2NC40IDQ0LjkgMzQzLjcgMzIgMzIwIDMySDk2em0yODggOTZoNDMuMmw0Mi43IDk2SDM4NFYxMjh6TTExMiAzODRhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzY4LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpNMjUzLjMgMTM1LjFsMzQuNyA1MlYxNDRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnY5NmMwIDcuMS00LjYgMTMuMy0xMS40IDE1LjNzLTE0LS42LTE3LjktNi40bC0zNC43LTUyVjI0MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxNDRjMC03LjEgNC42LTEzLjMgMTEuNC0xNS4zczE0IC42IDE3LjkgNi40ek0xMjggMTQ0djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NjRjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrRmllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgOTZjMC0zNS4zIDI4LjctNjQgNjQtNjRIMzIwYzIzLjcgMCA0NC40IDEyLjkgNTUuNCAzMmg1MS44YzI1LjMgMCA0OC4yIDE0LjkgNTguNSAzOGw1Mi44IDExOC44Yy41IDEuMSAuOSAyLjEgMS4zIDMuMkg1NDRjMzUuMyAwIDY0IDI4LjcgNjQgNjR2MzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTc2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDI1NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMlYyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMlY5NnpNMzg0IDIyNGg4NS45bC00Mi43LTk2SDM4NHY5NnpNMTYwIDQzMmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bTM2OC00OGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0Zyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgODBDMCAzNS44IDM1LjggMCA4MCAwSDQzMmM0NC4yIDAgODAgMzUuOCA4MCA4MFYzNjhjMCAyNi4yLTEyLjYgNDkuNC0zMiA2NHY0OGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0MTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ0OEgxMjh2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJINjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQzMkMxMi42IDQxNy40IDAgMzk0LjIgMCAzNjhWODB6bTEyOS45IDcyLjJMMTEyIDIyNEg0MDBsLTE3LjktNzEuOEMzNzguNSAxMzggMzY1LjcgMTI4IDM1MSAxMjhIMTYxYy0xNC43IDAtMjcuNSAxMC0zMSAyNC4yek0xMjggMzIwYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6bTI4OCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ4QzAgMjEuNSAyMS41IDAgNDggMEgzNjhjMjYuNSAwIDQ4IDIxLjUgNDggNDhWOTZoNTAuN2MxNyAwIDMzLjMgNi43IDQ1LjMgMTguN0w1ODkuMyAxOTJjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1YyNTZ2MzIgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINTc2YzAgNTMtNDMgOTYtOTYgOTZzLTk2LTQzLTk2LTk2SDI1NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05Nkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNDh6TTQxNiAyNTZINTQ0VjIzNy4zTDQ2Ni43IDE2MEg0MTZ2OTZ6TTE2MCA0NjRhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0zNjgtNDhhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMTc2IDgwdjQ4bC00OCAwYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMTkyaDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxNDRjMC04LjgtNy4yLTE2LTE2LTE2SDI0MFY4MGMwLTguOC03LjItMTYtMTYtMTZIMTkyYy04LjggMC0xNiA3LjItMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTW9uc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggNjR2NjRINDE2TDM2OCA2NEgyODh6TTQxOS4yIDI1LjZMNDk2IDEyOGg4MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMmMtMjkuMi0zOC45LTc1LjctNjQtMTI4LTY0cy05OC44IDI1LjEtMTI4IDY0SDI4OGMtMjkuMi0zOC45LTc1LjctNjQtMTI4LTY0cy05OC44IDI1LjEtMTI4IDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyVjE2MGMwLTE3LjcgMTQuMy0zMiAzMi0zMkgyMjRWNDhjMC0yNi41IDIxLjUtNDggNDgtNDhoOTZjMjAuMSAwIDM5LjEgOS41IDUxLjIgMjUuNnpNMTUyIDI1NmgxNmMxMi4xIDAgMjIuMSA4LjkgMjMuOCAyMC42YzcuNiAyLjIgMTQuOSA1LjMgMjEuNyA5YzkuNC03IDIyLjgtNi4zIDMxLjMgMi4zbDExLjMgMTEuM2M4LjYgOC42IDkuMyAyMS45IDIuMyAzMS4zYzMuNyA2LjggNi44IDE0LjEgOSAyMS43YzExLjYgMS43IDIwLjYgMTEuNyAyMC42IDIzLjh2MTZjMCAxMi4xLTguOSAyMi4xLTIwLjYgMjMuOGMtMi4yIDcuNi01LjMgMTQuOS05IDIxLjdjNyA5LjQgNi4zIDIyLjgtMi4zIDMxLjNsLTExLjMgMTEuM2MtOC42IDguNi0yMS45IDkuMy0zMS4zIDIuMmMtNi44IDMuNy0xNC4xIDYuOC0yMS43IDlDMTkwLjEgNTAzLjEgMTgwLjEgNTEyIDE2OCA1MTJIMTUyYy0xMi4xIDAtMjIuMS04LjktMjMuOC0yMC42Yy03LjYtMi4yLTE0LjktNS4zLTIxLjctOWMtOS40IDcuMS0yMi44IDYuMy0zMS4zLTIuMkw2My44IDQ2OC45Yy04LjYtOC42LTkuMy0yMS45LTIuMy0zMS4zYy0zLjctNi45LTYuOC0xNC4xLTktMjEuOEM0MC45IDQxNC4xIDMyIDQwNC4xIDMyIDM5MlYzNzZjMC0xMi4xIDguOS0yMi4xIDIwLjYtMjMuOGMyLjItNy42IDUuMy0xNC45IDktMjEuOGMtNy05LjQtNi4zLTIyLjggMi4zLTMxLjNsMTEuMy0xMS4zYzguNi04LjYgMjEuOS05LjMgMzEuMy0yLjNjNi44LTMuNyAxNC4xLTYuOCAyMS43LTljMS43LTExLjYgMTEuNy0yMC42IDIzLjgtMjAuNnptOCAxNzZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2ek00NDguMiAyNzYuNmMxLjctMTEuNiAxMS43LTIwLjYgMjMuOC0yMC42aDE2YzEyLjEgMCAyMi4xIDguOSAyMy44IDIwLjZjNy42IDIuMiAxNC45IDUuMyAyMS44IDljOS40LTcgMjIuOC02LjMgMzEuMyAyLjNsMTEuMyAxMS4zYzguNiA4LjYgOS4zIDIxLjkgMi4yIDMxLjNjMy43IDYuOCA2LjggMTQuMSA5IDIxLjdjMTEuNiAxLjcgMjAuNiAxMS43IDIwLjYgMjMuOHYxNmMwIDEyLjEtOC45IDIyLjEtMjAuNiAyMy44Yy0yLjIgNy42LTUuMyAxNC45LTkgMjEuN2M3IDkuNCA2LjMgMjIuOC0yLjIgMzEuM2wtMTEuMyAxMS4zYy04LjYgOC42LTIxLjkgOS4zLTMxLjMgMi4yYy02LjkgMy43LTE0LjEgNi44LTIxLjggOUM1MTAuMSA1MDMuMSA1MDAuMSA1MTIgNDg4IDUxMkg0NzJjLTEyLjEgMC0yMi4xLTguOS0yMy44LTIwLjZjLTcuNi0yLjItMTQuOS01LjMtMjEuNy05Yy05LjQgNy4xLTIyLjggNi4zLTMxLjMtMi4ybC0xMS4zLTExLjNjLTguNi04LjYtOS4zLTIxLjktMi4yLTMxLjNjLTMuNy02LjktNi44LTE0LjEtOS0yMS44QzM2MC45IDQxNC4xIDM1MiA0MDQuMSAzNTIgMzkyVjM3NmMwLTEyLjEgOC45LTIyLjEgMjAuNi0yMy44YzIuMi03LjYgNS4zLTE0LjkgOS0yMS44Yy03LTkuNC02LjMtMjIuOCAyLjItMzEuM2wxMS4zLTExLjNjOC42LTguNiAyMS45LTkuMyAzMS4zLTIuM2M2LjgtMy43IDE0LjEtNi44IDIxLjctOXpNNTI4IDM4NGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja01vdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjMwNHY4MCAxNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MGMyNi4yIDAgNDkuNC0xMi42IDY0LTMyYzE0LjYgMTkuNCAzNy44IDMyIDY0IDMyYzQ0LjIgMCA4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDQxNmgzMy42Yy0xIDUuMi0xLjYgMTAuNS0xLjYgMTZjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTUuNS0uNi0xMC44LTEuNi0xNkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjg4IDI3MiAyNjEuN2MwLTkuMi0zLjItMTguMi05LTI1LjNsLTU4LjgtNzEuOGMtMTAuNi0xMy0yNi41LTIwLjUtNDMuMy0yMC41SDQ4MFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNNTg1IDI1Nkg0ODBWMTkyaDQ4LjhjMi40IDAgNC43IDEuMSA2LjIgMi45TDU4NSAyNTZ6TTUyOCAzNjhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0ek0xNzYgNDAwYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6TTgwIDM2OGEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrUGlja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OC42IDk2bDc2LjggOTZIMjg4Vjk2aDgwLjZ6TTIyNCA4MFYxOTJINjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDY1LjFjLS43IDUuMi0xLjEgMTAuNi0xLjEgMTZjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMmMwLTUuNC0uNC0xMC44LTEuMS0xNmg2Ni4zYy0uNyA1LjItMS4xIDEwLjYtMS4xIDE2YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJjMC01LjQtLjQtMTAuOC0xLjEtMTZINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg1MjcuNEw0MTguNiA1NmMtMTIuMS0xNS4yLTMwLjUtMjQtNTAtMjRIMjcyYy0yNi41IDAtNDggMjEuNS00OCA0OHptMCAyODhhNDggNDggMCAxIDEgLTk2IDAgNDggNDggMCAxIDEgOTYgMHptMjg4IDBhNDggNDggMCAxIDEgLTk2IDAgNDggNDggMCAxIDEgOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDAgMGMtMzAuNiAwLTU2IDU0LjctNTYgODYuMVYxOTIuNUw3LjggMjc0LjNDMi45IDI3Ny4yIDAgMjgyLjQgMCAyODh2NjRjMCA1LjEgMi40IDkuOCA2LjQgMTIuOHM5LjMgMy45IDE0LjEgMi41bDEyMy40LTM3djgxLjJsLTUwIDQwYy0zLjggMy02IDcuNi02IDEyLjV2MzJjMCA1LjEgMi41IDEwIDYuNiAxM3M5LjUgMy44IDE0LjQgMi4yTDIwMCA0ODAuOSAyOTAuNCA1MTFjLTEuNi00LjctMi40LTkuOC0yLjQtMTVWNDYzLjRjLTE4LjItMTAuNS0zMC43LTI5LjctMzEuOS01MS44bC0uMS0uMVY0MDggMzI1LjUgMTg0bDAtMS4xIDAgMFY4Ni4xQzI1NiA1NC43IDIzMS41IDAgMjAwIDB6bTg4IDE3NlY0MDBjMCAyMC45IDEzLjQgMzguNyAzMiA0NS4zVjQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY0NDhINTQ0djQwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjQ0NS4zYzE4LjYtNi42IDMyLTI0LjQgMzItNDUuM1YxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzM2Yy0yNi41IDAtNDggMjEuNS00OCA0OHptNzkuOCA3OC43YzMuMy04LjcgMTEuMi0xNC43IDIwLjUtMTQuN0g1MzkuN2M5LjIgMCAxNy4yIDYgMjAuNSAxNC43TDU3NiAzMDRIMzUybDE1LjgtNDkuM3pNNTY4IDM1MmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6TTMzNiAzNzZhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJ1Y2tSYW1wQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAwVjQwMGMwIDYxLjktNTAuMSAxMTItMTEyIDExMmMtNjEgMC0xMTAuNS00OC43LTExMi0xMDkuM0w0OC40IDUwMi45Yy0xNy4xIDQuNi0zNC42LTUuNC0zOS4zLTIyLjVzNS40LTM0LjYgMjIuNS0zOS4zTDM1MiAzNTMuOFY2NGMwLTM1LjMgMjguNy02NCA2NC02NEg2NDB6TTU3NiA0MDBhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMjMuMSAyMDcuN2MtNC42LTE3LjEgNS42LTM0LjYgMjIuNi0zOS4ybDQ2LjQtMTIuNCAyMC43IDc3LjNjMi4zIDguNSAxMS4xIDEzLjYgMTkuNiAxMS4zbDMwLjktOC4zYzguNS0yLjMgMTMuNi0xMS4xIDExLjMtMTkuNmwtMjAuNy03Ny4zIDQ2LjQtMTIuNGMxNy4xLTQuNiAzNC42IDUuNiAzOS4yIDIyLjZsNDEuNCAxNTQuNWM0LjYgMTcuMS01LjYgMzQuNi0yMi42IDM5LjJMMTAzLjcgMzg0LjljLTE3LjEgNC42LTM0LjYtNS42LTM5LjItMjIuNkwyMy4xIDIwNy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAwQzIxLjUgMCAwIDIxLjUgMCA0OFYzNjhjMCAyNi41IDIxLjUgNDggNDggNDhINjRjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NkgzODRjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NmgzMmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMlYyODggMjU2IDIzNy4zYzAtMTctNi43LTMzLjMtMTguNy00NS4zTDUxMiAxMTQuN2MtMTItMTItMjguMy0xOC43LTQ1LjMtMTguN0g0MTZWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6TTQxNiAxNjBoNTAuN0w1NDQgMjM3LjNWMjU2SDQxNlYxNjB6TTExMiA0MTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMzY4LTQ4YTQ4IDQ4IDAgMSAxIDAgOTYgNDggNDggMCAxIDEgMC05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjMgMjQxLjNMMTUuMSAyMDAuNmMtOS4yLTE2LjItOC40LTM2LjUgNC41LTUwQzYxLjQgMTA2LjggMTQ0LjcgNDggMjU2IDQ4czE5NC42IDU4LjggMjM2LjQgMTAyLjZjMTIuOSAxMy41IDEzLjcgMzMuOCA0LjUgNTBsLTIzLjEgNDAuN2MtNy41IDEzLjItMjMuMyAxOS4zLTM3LjggMTQuNmwtODEuMS0yNi42Yy0xMy4xLTQuMy0yMi0xNi42LTIyLTMwLjRWMTQ0Yy00OS42LTE4LjEtMTA0LTE4LjEtMTUzLjYgMHY1NC44YzAgMTMuOC04LjkgMjYuMS0yMiAzMC40TDc2LjEgMjU1LjhjLTE0LjUgNC43LTMwLjMtMS40LTM3LjgtMTQuNnpNMzIgMzM2YzAtOC44IDcuMi0xNiAxNi0xNkg4MGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQ4Yy04LjggMC0xNi03LjItMTYtMTZWMzM2em0wIDk2YzAtOC44IDcuMi0xNiAxNi0xNkg4MGM4LjggMCAxNiA3LjIgMTYgMTZ2MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDQ4Yy04LjggMC0xNi03LjItMTYtMTZWNDMyek0xNDQgMzIwaDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTQ0Yy04LjggMC0xNi03LjItMTYtMTZWMzM2YzAtOC44IDcuMi0xNiAxNi0xNnptODAgMTZjMC04LjggNy4yLTE2IDE2LTE2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMjQwYy04LjggMC0xNi03LjItMTYtMTZWMzM2em0xMTItMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkgzMzZjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZjMC04LjggNy4yLTE2IDE2LTE2em04MCAxNmMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djMyYzAgOC44LTcuMiAxNi0xNiAxNkg0MzJjLTguOCAwLTE2LTcuMi0xNi0xNlYzMzZ6bTE2IDgwaDMyYzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZINDMyYy04LjggMC0xNi03LjItMTYtMTZWNDMyYzAtOC44IDcuMi0xNiAxNi0xNnpNMTI4IDQzMmMwLTguOCA3LjItMTYgMTYtMTZIMzY4YzguOCAwIDE2IDcuMiAxNiAxNnYzMmMwIDguOC03LjIgMTYtMTYgMTZIMTQ0Yy04LjggMC0xNi03LjItMTYtMTZWNDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdXJraXNoTGlyYVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJWOTkuM0wyNDcuMiA2NS4yYzE3LTQuOSAzNC43IDUgMzkuNiAyMnMtNSAzNC43LTIyIDM5LjZMMTI4IDE2NS45djI5LjRsMTE5LjItMzQuMWMxNy00LjkgMzQuNyA1IDM5LjYgMjJzLTUgMzQuNy0yMiAzOS42TDEyOCAyNjEuOVY0MTZoNjMuOGM2OC4yIDAgMTI0LjQtNTMuNSAxMjcuOC0xMjEuNmwuNC04Yy45LTE3LjcgMTUuOS0zMS4yIDMzLjYtMzAuNHMzMS4yIDE1LjkgMzAuNCAzMy42bC0uNCA4QzM3OC41IDM5OS44IDI5NC4xIDQ4MCAxOTEuOCA0ODBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjI4MC4xbC0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDIxMy42VjE4NC4xbC0yMy4yIDYuNmMtMTcgNC45LTM0LjctNS0zOS42LTIyczUtMzQuNyAyMi0zOS42TDY0IDExNy42VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdXJuRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAgMzM0LjVjMy44IDguOCAyIDE5LTQuNiAyNmwtMTM2IDE0NGMtNC41IDQuOC0xMC44IDcuNS0xNy40IDcuNXMtMTIuOS0yLjctMTcuNC03LjVsLTEzNi0xNDRjLTYuNi03LTguNC0xNy4yLTQuNi0yNnMxMi41LTE0LjUgMjItMTQuNWg4OGwwLTE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0VjMyQzAgMTQuMyAxNC4zIDAgMzIgMGw4MCAwYzcwLjcgMCAxMjggNTcuMyAxMjggMTI4bDAgMTkyaDg4YzkuNiAwIDE4LjIgNS43IDIyIDE0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR1cm5VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTAgMTc3LjVjMy44LTguOCAyLTE5LTQuNi0yNmwtMTM2LTE0NEMyMDQuOSAyLjcgMTk4LjYgMCAxOTIgMHMtMTIuOSAyLjctMTcuNCA3LjVsLTEzNiAxNDRjLTYuNiA3LTguNCAxNy4yLTQuNiAyNnMxMi41IDE0LjUgMjIgMTQuNWg4OGwwIDE5MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJsODAgMGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOGwwLTE5Mmg4OGM5LjYgMCAxOC4yLTUuNyAyMi0xNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA2NFYzNTJINTc2VjY0SDY0ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEg1NzZjMzUuMyAwIDY0IDI4LjcgNjQgNjRWMzUyYzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTI4IDQ0OEg1MTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjI4OGMwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4VjY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJWMjg4YzAgMTA2LTg2IDE5Mi0xOTIgMTkyUzAgMzk0IDAgMjg4VjY0QzAgNDYuMyAxNC4zIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbWJyZWxsYUJlYWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ni4zIDI3MS44bC02MC4xLTIxLjlMMjE0IDQ0OEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg1NDRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjgyLjFsNjQuMS0xNzYuMnptMTIxLjEtLjJsLTMuMyA5LjEgNjcuNyAyNC42YzE4LjEgNi42IDM4LTQuMiAzOS42LTIzLjRjNi41LTc4LjUtMjMuOS0xNTUuNS04MC44LTIwOC41YzIgOCAzLjIgMTYuMyAzLjQgMjQuOGwuMiA2YzEuOCA1Ny03LjMgMTEzLjgtMjYuOCAxNjcuNHpNNDYyIDk5LjFjLTEuMS0zNC40LTIyLjUtNjQuOC01NC40LTc3LjRjLS45LS40LTEuOS0uNy0yLjgtMS4xYy0zMy0xMS43LTY5LjgtMi40LTkzLjEgMjMuOGwtNCA0LjVDMjcyLjQgODguMyAyNDUgMTM0LjIgMjI2LjggMTg0bC0zLjMgOS4xTDQzNCAyNjkuN2wzLjMtOS4xYzE4LjEtNDkuOCAyNi42LTEwMi41IDI0LjktMTU1LjVsLS4yLTZ6TTEwNy4yIDExMi45Yy0xMS4xIDE1LjctMi44IDM2LjggMTUuMyA0My40bDcxIDI1LjggMy4zLTkuMWMxOS41LTUzLjYgNDkuMS0xMDMgODcuMS0xNDUuNWw0LTQuNWM2LjItNi45IDEzLjEtMTMgMjAuNS0xOC4yYy03OS42IDIuNS0xNTQuNyA0Mi4yLTIwMS4yIDEwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW1icmVsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWNDkuN0M0NTEuOCA2My40IDU1Ny43IDE2MSA1NzMuOSAyODUuOWMyIDE1LjYtMTcuMyAyNC40LTI3LjggMTIuN0M1MzIuMSAyODMgNTA0LjggMjcyIDQ4MCAyNzJjLTM4LjcgMC03MSAyNy41LTc4LjQgNjQuMWMtMS43IDguNy04LjcgMTUuOS0xNy42IDE1LjlzLTE1LjgtNy4yLTE3LjYtMTUuOUMzNTkgMjk5LjUgMzI2LjcgMjcyIDI4OCAyNzJzLTcxIDI3LjUtNzguNCA2NC4xYy0xLjcgOC43LTguNyAxNS45LTE3LjYgMTUuOXMtMTUuOC03LjItMTcuNi0xNS45QzE2NyAyOTkuNSAxMzQuNyAyNzIgOTYgMjcyYy0yNC44IDAtNTIuMSAxMS02Ni4xIDI2LjdDMTkuNCAzMTAuNCAuMSAzMDEuNSAyLjEgMjg1LjlDMTguMyAxNjEgMTI0LjIgNjMuNCAyNTYgNDkuN1YzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnptMCAzMDRjMTIuMyAwIDIzLjUgNC42IDMyIDEyLjJWNDMwLjZjMCA0NS0zNi41IDgxLjQtODEuNCA4MS40Yy0zMC44IDAtNTktMTcuNC03Mi44LTQ1bC0yLjMtNC43Yy03LjktMTUuOC0xLjUtMzUgMTQuMy00Mi45czM1LTEuNSA0Mi45IDE0LjNsMi4zIDQuN2MzIDUuOSA5IDkuNiAxNS42IDkuNmM5LjYgMCAxNy40LTcuOCAxNy40LTE3LjRWMzE2LjJjOC41LTcuNiAxOS43LTEyLjIgMzItMTIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5kZXJsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDk2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEyOFYyMjRjMCA1MyA0MyA5NiA5NiA5NnM5Ni00MyA5Ni05NlY5NkgzMDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0VjIyNGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MHMtMTYwLTcxLjYtMTYwLTE2MFY5Nkg0OEMzMC4zIDk2IDE2IDgxLjcgMTYgNjR6TTAgNDQ4YzAtMTcuNyAxNC4zLTMyIDMyLTMySDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXZlcnNhbEFjY2VzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE2MS41LTg2LjFjLTEyLjItNS4yLTI2LjMgLjQtMzEuNSAxMi42cy40IDI2LjMgMTIuNiAzMS41bDExLjkgNS4xYzE3LjMgNy40IDM1LjIgMTIuOSA1My42IDE2LjN2NTAuMWMwIDQuMy0uNyA4LjYtMi4xIDEyLjZsLTI4LjcgODYuMWMtNC4yIDEyLjYgMi42IDI2LjIgMTUuMiAzMC40czI2LjItMi42IDMwLjQtMTUuMmwyNC40LTczLjJjMS4zLTMuOCA0LjgtNi40IDguOC02LjRzNy42IDIuNiA4LjggNi40bDI0LjQgNzMuMmM0LjIgMTIuNiAxNy44IDE5LjQgMzAuNCAxNS4yczE5LjQtMTcuOCAxNS4yLTMwLjRsLTI4LjctODYuMWMtMS40LTQuMS0yLjEtOC4zLTIuMS0xMi42VjIzNS41YzE4LjQtMy41IDM2LjMtOC45IDUzLjYtMTYuM2wxMS45LTUuMWMxMi4yLTUuMiAxNy44LTE5LjMgMTIuNi0zMS41cy0xOS4zLTE3LjgtMzEuNS0xMi42TDMzOC43IDE3NWMtMjYuMSAxMS4yLTU0LjIgMTctODIuNyAxN3MtNTYuNS01LjgtODIuNy0xN2wtMTEuOS01LjF6TTI1NiAxNjBhNDAgNDAgMCAxIDAgMC04MCA0MCA0MCAwIDEgMCAwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxvY2tLZXlob2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA2NGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDhIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjU2YzAtMzUuMyAyOC43LTY0IDY0LTY0SDgwVjE0NEM4MCA2NC41IDE0NC41IDAgMjI0IDBjNTcuNSAwIDEwNyAzMy43IDEzMC4xIDgyLjNjNy42IDE2IC44IDM1LjEtMTUuMiA0Mi42cy0zNS4xIC44LTQyLjYtMTUuMkMyODMuNCA4Mi42IDI1NS45IDY0IDIyNCA2NHptMzIgMzIwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5sb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxNDRjMC00NC4yIDM1LjgtODAgODAtODBjMzEuOSAwIDU5LjQgMTguNiA3Mi4zIDQ1LjdjNy42IDE2IDI2LjcgMjIuOCA0Mi42IDE1LjJzMjIuOC0yNi43IDE1LjItNDIuNkMzMzEgMzMuNyAyODEuNSAwIDIyNCAwQzE0NC41IDAgODAgNjQuNSA4MCAxNDR2NDhINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjU2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDE0NFYxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwRG93bkxlZnRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguNiA5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC02NCA2NGMtOS4yIDkuMi0xMS45IDIyLjktNi45IDM0LjlzMTYuNiAxOS44IDI5LjYgMTkuOGgzMnY5NkgxMjhWMTkyYzAtMTIuOS03LjgtMjQuNi0xOS44LTI5LjZzLTI1LjctMi4yLTM0LjkgNi45bC02NCA2NGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNsNjQgNjRjOS4yIDkuMiAyMi45IDExLjkgMzQuOSA2LjlzMTkuOC0xNi42IDE5LjgtMjkuNlYyODhoOTZ2OTZIMTkyYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOWw2NCA2NGMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw2NC02NGM5LjItOS4yIDExLjktMjIuOSA2LjktMzQuOXMtMTYuNi0xOS44LTI5LjYtMTkuOEgyODhWMjg4aDk2djMyYzAgMTIuOSA3LjggMjQuNiAxOS44IDI5LjZzMjUuNyAyLjIgMzQuOS02LjlsNjQtNjRjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNsLTY0LTY0Yy05LjItOS4yLTIyLjktMTEuOS0zNC45LTYuOXMtMTkuOCAxNi42LTE5LjggMjkuNnYzMkgyODhWMTI4aDMyYzEyLjkgMCAyNC42LTcuOCAyOS42LTE5LjhzMi4yLTI1LjctNi45LTM0LjlsLTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ1LjYgNy43QzE0MSAyLjggMTM0LjcgMCAxMjggMHMtMTMgMi44LTE3LjYgNy43bC0xMDQgMTEyYy02LjUgNy04LjIgMTcuMi00LjQgMjUuOVMxNC41IDE2MCAyNCAxNjBIODBWMzUySDI0Yy05LjUgMC0xOC4yIDUuNy0yMiAxNC40cy0yLjEgMTguOSA0LjQgMjUuOWwxMDQgMTEyYzQuNSA0LjkgMTAuOSA3LjcgMTcuNiA3LjdzMTMtMi44IDE3LjYtNy43bDEwNC0xMTJjNi41LTcgOC4yLTE3LjIgNC40LTI1LjlzLTEyLjUtMTQuNC0yMi0xNC40SDE3NlYxNjBoNTZjOS41IDAgMTguMi01LjcgMjItMTQuNHMyLjEtMTguOS00LjQtMjUuOWwtMTA0LTExMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXBMb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOCAxNzcuNWMzLjgtOC44IDItMTktNC42LTI2bC0xMzYtMTQ0QzE3Mi45IDIuNyAxNjYuNiAwIDE2MCAwcy0xMi45IDIuNy0xNy40IDcuNWwtMTM2IDE0NGMtNi42IDctOC40IDE3LjItNC42IDI2UzE0LjQgMTkyIDI0IDE5Mkg5NmwwIDI4OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NGMxNy43IDAgMzItMTQuMyAzMi0zMmwwLTI4OGg3MmM5LjYgMCAxOC4yLTUuNyAyMi0xNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcFJpZ2h0QW5kRG93bkxlZnRGcm9tQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0NCAwSDQ4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNFYxNjhjMCA5LjctNS44IDE4LjUtMTQuOCAyMi4ycy0xOS4zIDEuNy0yNi4yLTUuMmwtMzktMzktODcgODdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0zMi0zMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsODctODdMMzI3IDQxYy02LjktNi45LTguOS0xNy4yLTUuMi0yNi4yUzMzNC4zIDAgMzQ0IDB6TTE2OCA1MTJIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjM0NGMwLTkuNyA1LjgtMTguNSAxNC44LTIyLjJzMTkuMy0xLjcgMjYuMiA1LjJsMzkgMzkgODctODdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMzIgMzJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTg3IDg3IDM5IDM5YzYuOSA2LjkgOC45IDE3LjIgNS4yIDI2LjJzLTEyLjUgMTQuOC0yMi4yIDE0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwUmlnaHRGcm9tU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAwYy0xMi45IDAtMjQuNiA3LjgtMjkuNiAxOS44cy0yLjIgMjUuNyA2LjkgMzQuOUwzNzAuNyA5NiAyMDEuNCAyNjUuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEw0MTYgMTQxLjNsNDEuNCA0MS40YzkuMiA5LjIgMjIuOSAxMS45IDM0LjkgNi45czE5LjgtMTYuNiAxOS44LTI5LjZWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMzUyek04MCAzMkMzNS44IDMyIDAgNjcuOCAwIDExMlY0MzJjMCA0NC4yIDM1LjggODAgODAgODBINDAwYzQ0LjIgMCA4MC0zNS44IDgwLTgwVjMyMGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZWMTEyYzAtOC44IDcuMi0xNiAxNi0xNkgxOTJjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTA5LjNWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjEwOS4zbC03My40IDczLjRjLTEyLjUgMTIuNS0zMi44IDEyLjUtNDUuMyAwcy0xMi41LTMyLjggMC00NS4zbDEyOC0xMjhjMTIuNS0xMi41IDMyLjgtMTIuNSA0NS4zIDBsMTI4IDEyOGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM3MtMzIuOCAxMi41LTQ1LjMgMEwyODggMTA5LjN6TTY0IDM1MkgxOTJjMCAzNS4zIDI4LjcgNjQgNjQgNjRzNjQtMjguNyA2NC02NEg0NDhjMzUuMyAwIDY0IDI4LjcgNjQgNjR2MzJjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjQxNmMwLTM1LjMgMjguNy02NCA2NC02NHpNNDMyIDQ1NmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJBc3Ryb25hdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcwLjcgOTYuMUMzNDYuMSAzOS41IDI4OS43IDAgMjI0IDBTMTAxLjkgMzkuNSA3Ny4zIDk2LjFDNjAuOSA5Ny41IDQ4IDExMS4yIDQ4IDEyOHY2NGMwIDE2LjggMTIuOSAzMC41IDI5LjMgMzEuOUMxMDEuOSAyODAuNSAxNTguMyAzMjAgMjI0IDMyMHMxMjIuMS0zOS41IDE0Ni43LTk2LjFjMTYuNC0xLjQgMjkuMy0xNS4xIDI5LjMtMzEuOVYxMjhjMC0xNi44LTEyLjktMzAuNS0yOS4zLTMxLjl6TTMzNiAxNDR2MTZjMCA1My00MyA5Ni05NiA5NkgyMDhjLTUzIDAtOTYtNDMtOTYtOTZWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4SDI4OGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTg5LjMgMTYyLjdsLTYtMjEuMmMtLjktMy4zLTMuOS01LjUtNy4zLTUuNXMtNi40IDIuMi03LjMgNS41bC02IDIxLjItMjEuMiA2Yy0zLjMgLjktNS41IDMuOS01LjUgNy4zczIuMiA2LjQgNS41IDcuM2wyMS4yIDYgNiAyMS4yYy45IDMuMyAzLjkgNS41IDcuMyA1LjVzNi40LTIuMiA3LjMtNS41bDYtMjEuMiAyMS4yLTZjMy4zLS45IDUuNS0zLjkgNS41LTcuM3MtMi4yLTYuNC01LjUtNy4zbC0yMS4yLTZ6TTExMi43IDMxNi41QzQ2LjcgMzQyLjYgMCA0MDcgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDEyOFY0NDhjMC0xNy43IDE0LjMtMzIgMzItMzJIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0bDk4LjMgMGMxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN2MwLTc1LjMtNDYuNy0xMzkuNy0xMTIuNy0xNjUuOEMzMDMuOSAzMzguOCAyNjUuNSAzNTIgMjI0IDM1MnMtNzkuOS0xMy4yLTExMS4zLTM1LjV6TTE3NiA0NDhjLTguOCAwLTE2IDcuMi0xNiAxNnY0OGgzMlY0NjRjMC04LjgtNy4yLTE2LTE2LTE2em05NiAzMmExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGg5MS40QzM2OC4yIDMwNCA0NDggMzgzLjggNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek02MjUgMTc3TDQ5NyAzMDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3TDU5MSAxNDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDBhMTI4IDEyOCAwIDEgMSAwIDI1NkExMjggMTI4IDAgMSAxIDIyNCAwek0xNzguMyAzMDRoOTEuNGMyMC42IDAgNDAuNCAzLjUgNTguOCA5LjlDMzIzIDMzMSAzMjAgMzQ5LjEgMzIwIDM2OGMwIDU5LjUgMjkuNSAxMTIuMSA3NC44IDE0NEgyOS43QzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNHpNMzUyIDM2OGExNDQgMTQ0IDAgMSAxIDI4OCAwIDE0NCAxNDQgMCAxIDEgLTI4OCAwem0xNDQtODBjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOCA3LjIgMTYgMTYgMTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINTEyVjMwNGMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJEb2N0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NkExMjggMTI4IDAgMSAwIDIyNCAwYTEyOCAxMjggMCAxIDAgMCAyNTZ6bS05NiA1NS4yQzU0IDMzMi45IDAgNDAxLjMgMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDQxOC4zYzE2LjQgMCAyOS43LTEzLjMgMjkuNy0yOS43YzAtODEtNTQtMTQ5LjQtMTI4LTE3MS4xVjM2MmMyNy42IDcuMSA0OCAzMi4yIDQ4IDYydjQwYzAgOC44LTcuMiAxNi0xNiAxNkgzMzZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZWNDI0YzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDI1NmMtOC44IDAtMTYtNy4yLTE2LTE2VjQyNGMwLTI5LjggMjAuNC01NC45IDQ4LTYyVjMwNC45Yy02LS42LTEyLjEtLjktMTguMy0uOUgxNzguM2MtNi4yIDAtMTIuMyAuMy0xOC4zIC45djY1LjRjMjMuMSA2LjkgNDAgMjguMyA0MCA1My43YzAgMzAuOS0yNS4xIDU2LTU2IDU2cy01Ni0yNS4xLTU2LTU2YzAtMjUuNCAxNi45LTQ2LjggNDAtNTMuN1YzMTEuMnpNMTQ0IDQ0OGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJHZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYTEyOCAxMjggMCAxIDEgMCAyNTZBMTI4IDEyOCAwIDEgMSAyMjQgMHpNMTc4LjMgMzA0aDkxLjRjMTEuOCAwIDIzLjQgMS4yIDM0LjUgMy4zYy0yLjEgMTguNSA3LjQgMzUuNiAyMS44IDQ0LjhjLTE2LjYgMTAuNi0yNi43IDMxLjYtMjAgNTMuM2M0IDEyLjkgOS40IDI1LjUgMTYuNCAzNy42czE1LjIgMjMuMSAyNC40IDMzYzE1LjcgMTYuOSAzOS42IDE4LjQgNTcuMiA4Ljd2LjljMCA5LjIgMi43IDE4LjUgNy45IDI2LjNIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjNDMCAzODMuOCA3OS44IDMwNCAxNzguMyAzMDR6TTQzNiAyMTguMmMwLTcgNC41LTEzLjMgMTEuMy0xNC44YzEwLjUtMi40IDIxLjUtMy43IDMyLjctMy43czIyLjIgMS4zIDMyLjcgMy43YzYuOCAxLjUgMTEuMyA3LjggMTEuMyAxNC44djE3LjdjMCA3LjggNC44IDE0LjggMTEuNiAxOC43YzYuOCAzLjkgMTUuMSA0LjUgMjEuOCAuNmwxMy44LTcuOWM2LjEtMy41IDEzLjctMi43IDE4LjUgMi40YzcuNiA4LjEgMTQuMyAxNy4yIDIwLjEgMjcuMnMxMC4zIDIwLjQgMTMuNSAzMWMyLjEgNi43LTEuMSAxMy43LTcuMiAxNy4ybC0xNC40IDguM2MtNi41IDMuNy0xMCAxMC45LTEwIDE4LjRzMy41IDE0LjcgMTAgMTguNGwxNC40IDguM2M2LjEgMy41IDkuMiAxMC41IDcuMiAxNy4yYy0zLjMgMTAuNi03LjggMjEtMTMuNSAzMXMtMTIuNSAxOS4xLTIwLjEgMjcuMmMtNC44IDUuMS0xMi41IDUuOS0xOC41IDIuNGwtMTMuOC03LjljLTYuNy0zLjktMTUuMS0zLjMtMjEuOCAuNmMtNi44IDMuOS0xMS42IDEwLjktMTEuNiAxOC43djE3LjdjMCA3LTQuNSAxMy4zLTExLjMgMTQuOGMtMTAuNSAyLjQtMjEuNSAzLjctMzIuNyAzLjdzLTIyLjItMS4zLTMyLjctMy43Yy02LjgtMS41LTExLjMtNy44LTExLjMtMTQuOFY0NjcuOGMwLTcuOS00LjktMTQuOS0xMS43LTE4LjljLTYuOC0zLjktMTUuMi00LjUtMjItLjZsLTEzLjUgNy44Yy02LjEgMy41LTEzLjcgMi43LTE4LjUtMi40Yy03LjYtOC4xLTE0LjMtMTcuMi0yMC4xLTI3LjJzLTEwLjMtMjAuNC0xMy41LTMxYy0yLjEtNi43IDEuMS0xMy43IDcuMi0xNy4ybDE0LTguMWM2LjUtMy44IDEwLjEtMTEuMSAxMC4xLTE4LjZzLTMuNS0xNC44LTEwLjEtMTguNmwtMTQtOC4xYy02LjEtMy41LTkuMi0xMC41LTcuMi0xNy4yYzMuMy0xMC42IDcuNy0yMSAxMy41LTMxczEyLjUtMTkuMSAyMC4xLTI3LjJjNC44LTUuMSAxMi40LTUuOSAxOC41LTIuNGwxMy42IDcuOGM2LjggMy45IDE1LjIgMy4zIDIyLS42YzYuOS0zLjkgMTEuNy0xMSAxMS43LTE4LjlWMjE4LjJ6bTkyLjEgMTMzLjVhNDguMSA0OC4xIDAgMSAwIC05Ni4xIDAgNDguMSA0OC4xIDAgMSAwIDk2LjEgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckdyYWR1YXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxOS4zIC41YzMuMS0uNiA2LjMtLjYgOS40IDBsMjAwIDQwQzQzOS45IDQyLjcgNDQ4IDUyLjYgNDQ4IDY0cy04LjEgMjEuMy0xOS4zIDIzLjVMMzUyIDEwMi45VjE2MGMwIDcwLjctNTcuMyAxMjgtMTI4IDEyOHMtMTI4LTU3LjMtMTI4LTEyOFYxMDIuOUw0OCA5My4zdjY1LjFsMTUuNyA3OC40Yy45IDQuNy0uMyA5LjYtMy4zIDEzLjNzLTcuNiA1LjktMTIuNCA1LjlIMTZjLTQuOCAwLTkuMy0yLjEtMTIuNC01LjlzLTQuMy04LjYtMy4zLTEzLjNMMTYgMTU4LjRWODYuNkM2LjUgODMuMyAwIDc0LjMgMCA2NEMwIDUyLjYgOC4xIDQyLjcgMTkuMyA0MC41bDIwMC00MHpNMTExLjkgMzI3LjdjMTAuNS0zLjQgMjEuOCAuNCAyOS40IDguNWw3MSA3NS41YzYuMyA2LjcgMTcgNi43IDIzLjMgMGw3MS03NS41YzcuNi04LjEgMTguOS0xMS45IDI5LjQtOC41QzQwMSAzNDguNiA0NDggNDA5LjQgNDQ4IDQ4MS4zYzAgMTctMTMuOCAzMC43LTMwLjcgMzAuN0gzMC43QzEzLjggNTEyIDAgNDk4LjIgMCA0ODEuM2MwLTcxLjkgNDctMTMyLjcgMTExLjktMTUzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGg5MS40QzM2OC4yIDMwNCA0NDggMzgzLjggNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek02MDkuMyA1MTJINDcxLjRjNS40LTkuNCA4LjYtMjAuMyA4LjYtMzJ2LThjMC02MC43LTI3LjEtMTE1LjItNjkuOC0xNTEuOGMyLjQtLjEgNC43LS4yIDcuMS0uMmg2MS40QzU2Ny44IDMyMCA2NDAgMzkyLjIgNjQwIDQ4MS4zYzAgMTctMTMuOCAzMC43LTMwLjcgMzAuN3pNNDMyIDI1NmMtMzEgMC01OS0xMi42LTc5LjMtMzIuOUMzNzIuNCAxOTYuNSAzODQgMTYzLjYgMzg0IDEyOGMwLTI2LjgtNi42LTUyLjEtMTguMy03NC4zQzM4NC4zIDQwLjEgNDA3LjIgMzIgNDMyIDMyYzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEycy01MC4xIDExMi0xMTIgMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VySW5qdXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAgODBIMzQyLjdjLTcuOS0xOS41LTIwLjQtMzYuNS0zNi4yLTQ5LjlMMjQwIDgwem0zNy43LTY4LjJDMjYxLjMgNC4yIDI0My4yIDAgMjI0IDBjLTUzLjcgMC05OS43IDMzLjEtMTE4LjcgODBoODEuNGw5MS02OC4yek0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4YzAtNS40LS4zLTEwLjgtMS0xNkg5N2MtLjcgNS4yLTEgMTAuNi0xIDE2YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4ek0xMjQgMzEyLjRjLTkuNyAzLjEtMTkuMSA3LTI4IDExLjdWNTEySDI0My43TDE4MS41IDQwOC4yIDEyNCAzMTIuNHptMzMtNy4yTDIwNC4zIDM4NEgyNzJjNDQuMiAwIDgwIDM1LjggODAgODBjMCAxOC02IDM0LjYtMTYgNDhoODIuM2MxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN0M0NDggMzgzLjggMzY4LjIgMzA0IDI2OS43IDMwNEgxNzguM2MtNy4yIDAtMTQuMyAuNC0yMS4zIDEuM3pNMCA0ODIuM0MwIDQ5OC43IDEzLjMgNTEyIDI5LjcgNTEySDY0VjM0NS40QzI0LjkgMzc4LjEgMCA0MjcuMyAwIDQ4Mi4zek0zMjAgNDY0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDIyMy41bDU3LjEgOTUuMkMzMDMgNTA3LjIgMzIwIDQ4Ny42IDMyMCA0NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJMYXJnZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMMzgxLjkgMjc0YzQ4LjUtMjMuMiA4Mi4xLTcyLjcgODIuMS0xMzBDNDY0IDY0LjUgMzk5LjUgMCAzMjAgMEMyNTAuNCAwIDE5Mi40IDQ5LjMgMTc4LjkgMTE0LjlMMzguOCA1LjF6TTU0NS41IDUxMkg1MjhMMjg0LjMgMzIwaC01OUMxMzYuMiAzMjAgNjQgMzkyLjIgNjQgNDgxLjNjMCAxNyAxMy44IDMwLjcgMzAuNyAzMC43SDU0NS4zbC4zIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMjg4QTE0NCAxNDQgMCAxIDAgMjU2IDBhMTQ0IDE0NCAwIDEgMCAwIDI4OHptLTk0LjcgMzJDNzIuMiAzMjAgMCAzOTIuMiAwIDQ4MS4zYzAgMTcgMTMuOCAzMC43IDMwLjcgMzAuN0g0ODEuM2MxNyAwIDMwLjctMTMuOCAzMC43LTMwLjdDNTEyIDM5Mi4yIDQzOS44IDMyMCAzNTAuNyAzMjBIMTYxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkgzOTIuNmMtNS40LTkuNC04LjYtMjAuMy04LjYtMzJWMzUyYzAtMi4xIC4xLTQuMiAuMy02LjNjLTMxLTI2LTcxLTQxLjctMTE0LjYtNDEuN0gxNzguM3pNNTI4IDI0MGMxNy43IDAgMzIgMTQuMyAzMiAzMnY0OEg0OTZWMjcyYzAtMTcuNyAxNC4zLTMyIDMyLTMyem0tODAgMzJ2NDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMkg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMTcuNy0xNC4zLTMyLTMyLTMyVjI3MmMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAxIDI1NiAwQTEyOCAxMjggMCAxIDEgOTYgMTI4ek0wIDQ4Mi4zQzAgMzgzLjggNzkuOCAzMDQgMTc4LjMgMzA0aDkxLjRDMzY4LjIgMzA0IDQ0OCAzODMuOCA0NDggNDgyLjNjMCAxNi40LTEzLjMgMjkuNy0yOS43IDI5LjdIMjkuN0MxMy4zIDUxMiAwIDQ5OC43IDAgNDgyLjN6TTQ3MiAyMDBINjE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDQ3MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck5pbmphIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZjLTU3LjIgMC0xMDUuNi0zNy41LTEyMi04OS4zYy0xLjEgMS4zLTIuMiAyLjYtMy41IDMuOGMtMTUuOCAxNS44LTM4LjggMjAuNy01My42IDIyLjFjLTguMSAuOC0xNC42LTUuNy0xMy44LTEzLjhjMS40LTE0LjcgNi4zLTM3LjggMjIuMS01My42YzUuOC01LjggMTIuNi0xMC4xIDE5LjYtMTMuNGMtNy0zLjItMTMuOC03LjYtMTkuNi0xMy40QzM3LjQgODIuNyAzMi42IDU5LjcgMzEuMSA0NC45Yy0uOC04LjEgNS43LTE0LjYgMTMuOC0xMy44YzE0LjcgMS40IDM3LjggNi4zIDUzLjYgMjIuMWM0LjggNC44IDguNyAxMC40IDExLjcgMTYuMUMxMzEuNCAyOC4yIDE3NC40IDAgMjI0IDBjNzAuNyAwIDEyOCA1Ny4zIDEyOCAxMjhzLTU3LjMgMTI4LTEyOCAxMjh6TTAgNDgyLjNDMCAzOTkuNSA1Ni40IDMzMCAxMzIuOCAzMDkuOWM2LTEuNiAxMi4yIC45IDE1LjkgNS44bDYyLjUgODMuM2M2LjQgOC41IDE5LjIgOC41IDI1LjYgMGw2Mi41LTgzLjNjMy43LTQuOSA5LjktNy40IDE1LjktNS44QzM5MS42IDMzMCA0NDggMzk5LjUgNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek0xNjAgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZIMjg4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck51cnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOFY3MC4yYzAtMTMuMyA4LjMtMjUuMyAyMC44LTMwbDk2LTM2YzcuMi0yLjcgMTUuMi0yLjcgMjIuNSAwbDk2IDM2YzEyLjUgNC43IDIwLjggMTYuNiAyMC44IDMwVjEyOGgtLjNjLjIgMi42IC4zIDUuMyAuMyA4djQwYzAgNzAuNy01Ny4zIDEyOC0xMjggMTI4cy0xMjgtNTcuMy0xMjgtMTI4VjEzNmMwLTIuNyAuMS01LjQgLjMtOEg5NnptNDggNDhjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MFYxNjBIMTQ0djE2ek0xMTEuOSAzMjcuN2MxMC41LTMuNCAyMS44IC40IDI5LjQgOC41bDcxIDc1LjVjNi4zIDYuNyAxNyA2LjcgMjMuMyAwbDcxLTc1LjVjNy42LTguMSAxOC45LTExLjkgMjkuNC04LjVDNDAxIDM0OC42IDQ0OCA0MDkuNCA0NDggNDgxLjNjMCAxNy0xMy44IDMwLjctMzAuNyAzMC43SDMwLjdDMTMuOCA1MTIgMCA0OTguMiAwIDQ4MS4zYzAtNzEuOSA0Ny0xMzIuNyAxMTEuOS0xNTMuNnpNMjA4IDQ4VjY0SDE5MmMtNC40IDAtOCAzLjYtOCA4Vjg4YzAgNC40IDMuNiA4IDggOGgxNnYxNmMwIDQuNCAzLjYgOCA4IDhoMTZjNC40IDAgOC0zLjYgOC04Vjk2aDE2YzQuNCAwIDgtMy42IDgtOFY3MmMwLTQuNC0zLjYtOC04LThIMjQwVjQ4YzAtNC40LTMuNi04LTgtOEgyMTZjLTQuNCAwLTggMy42LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclBlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2QTEyOCAxMjggMCAxIDAgMjI0IDBhMTI4IDEyOCAwIDEgMCAwIDI1NnptLTQ1LjcgNDhDNzkuOCAzMDQgMCAzODMuOCAwIDQ4Mi4zQzAgNDk4LjcgMTMuMyA1MTIgMjkuNyA1MTJIMzIyLjhjLTMuMS04LjgtMy43LTE4LjQtMS40LTI3LjhsMTUtNjAuMWMyLjgtMTEuMyA4LjYtMjEuNSAxNi44LTI5LjdsNDAuMy00MC4zYy0zMi4xLTMxLTc1LjctNTAuMS0xMjMuOS01MC4xSDE3OC4zem00MzUuNS02OC4zYy0xNS42LTE1LjYtNDAuOS0xNS42LTU2LjYgMGwtMjkuNCAyOS40IDcxIDcxIDI5LjQtMjkuNGMxNS42LTE1LjYgMTUuNi00MC45IDAtNTYuNmwtMTQuNC0xNC40ek0zNzUuOSA0MTdjLTQuMSA0LjEtNyA5LjItOC40IDE0LjlsLTE1IDYwLjFjLTEuNCA1LjUgLjIgMTEuMiA0LjIgMTUuMnM5LjcgNS42IDE1LjIgNC4ybDYwLjEtMTVjNS42LTEuNCAxMC44LTQuMyAxNC45LTguNEw1NzYuMSAzNTguN2wtNzEtNzFMMzc1LjkgNDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGg5MS40QzM2OC4yIDMwNCA0NDggMzgzLjggNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek01MDQgMzEyVjI0OEg0NDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoNjRWMTM2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2NjRoNjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRINTUydjY0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2VjcmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxNmMtNi43IDAtMTAuOC0yLjgtMTUuNS02LjFDMjAxLjkgNS40IDE5NCAwIDE3NiAwYy0zMC41IDAtNTIgNDMuNy02NiA4OS40QzYyLjcgOTguMSAzMiAxMTIuMiAzMiAxMjhjMCAxNC4zIDI1IDI3LjEgNjQuNiAzNS45Yy0uNCA0LS42IDgtLjYgMTIuMWMwIDE3IDMuMyAzMy4yIDkuMyA0OEg0NS40QzM4IDIyNCAzMiAyMzAgMzIgMjM3LjRjMCAxLjcgLjMgMy40IDEgNWwzOC44IDk2LjlDMjguMiAzNzEuOCAwIDQyMy44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkg0MTguM2MxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN2MwLTU4LjUtMjguMi0xMTAuNC03MS43LTE0M0w0MTUgMjQyLjRjLjYtMS42IDEtMy4zIDEtNWMwLTcuNC02LTEzLjQtMTMuNC0xMy40SDM0Mi43YzYtMTQuOCA5LjMtMzEgOS4zLTQ4YzAtNC4xLS4yLTguMS0uNi0xMi4xQzM5MSAxNTUuMSA0MTYgMTQyLjMgNDE2IDEyOGMwLTE1LjgtMzAuNy0yOS45LTc4LTM4LjZDMzI0IDQzLjcgMzAyLjUgMCAyNzIgMGMtMTggMC0yNS45IDUuNC0zMi41IDkuOWMtNC44IDMuMy04LjggNi4xLTE1LjUgNi4xem01NiAyMDhIMjY3LjZjLTE2LjUgMC0zMS4xLTEwLjYtMzYuMy0yNi4yYy0yLjMtNy0xMi4yLTctMTQuNSAwYy01LjIgMTUuNi0xOS45IDI2LjItMzYuMyAyNi4ySDE2OGMtMjIuMSAwLTQwLTE3LjktNDAtNDBWMTY5LjZjMjguMiA0LjEgNjEgNi40IDk2IDYuNHM2Ny44LTIuMyA5Ni02LjRWMTg0YzAgMjIuMS0xNy45IDQwLTQwIDQwem0tODggOTZsMTYgMzJMMTc2IDQ4MCAxMjggMjg4bDY0IDMyem0xMjgtMzJMMjcyIDQ4MCAyNDAgMzUybDE2LTMyIDY0LTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2hpZWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkg0MTguM2MxLjggMCAzLjUtLjIgNS4zLS41Yy03Ni4zLTU1LjEtOTkuOC0xNDEtMTAzLjEtMjAwLjJjLTE2LjEtNC44LTMzLjEtNy4zLTUwLjctNy4zSDE3OC4zem0zMDguOC03OC4zbC0xMjAgNDhDMzU4IDI3Ny40IDM1MiAyODYuMiAzNTIgMjk2YzAgNjMuMyAyNS45IDE2OC44IDEzNC44IDIxNC4yYzUuOSAyLjUgMTIuNiAyLjUgMTguNSAwQzYxNC4xIDQ2NC44IDY0MCAzNTkuMyA2NDAgMjk2YzAtOS44LTYtMTguNi0xNS4xLTIyLjNsLTEyMC00OGMtNS43LTIuMy0xMi4xLTIuMy0xNy44IDB6TTU5MS40IDMxMmMtMy45IDUwLjctMjcuMiAxMTYuNy05NS40IDE0OS43VjI3My44TDU5MS40IDMxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMMzUzLjMgMjUxLjZDNDA3LjkgMjM3IDQ0OCAxODcuMiA0NDggMTI4QzQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBDMjUwLjIgMCAxOTMuNSA1NS44IDE5MiAxMjUuMkwzOC44IDUuMXpNMjY0LjMgMzA0LjNDMTcwLjUgMzA5LjQgOTYgMzg3LjIgOTYgNDgyLjNjMCAxNi40IDEzLjMgMjkuNyAyOS43IDI5LjdINTE0LjNjMy45IDAgNy42LS43IDExLTIuMWwtMjYxLTIwNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkg0MTguM2MxMCAwIDE4LjgtNC45IDI0LjItMTIuNWwtOTkuMi05OS4yYy0xNC45LTE0LjktMjMuMy0zNS4xLTIzLjMtNTYuMXYtMzNjLTE1LjktNC43LTMyLjgtNy4yLTUwLjMtNy4ySDE3OC4zek0zODQgMjI0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4Mi43YzAgMTcgNi43IDMzLjMgMTguNyA0NS4zTDQ3OC4xIDQ5MS4zYzE4LjcgMTguNyA0OS4xIDE4LjcgNjcuOSAwbDczLjQtNzMuNGMxOC43LTE4LjcgMTguNy00OS4xIDAtNjcuOUw1MTIgMjQyLjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdIMzg0em0yNCA4MGEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDEyOGExMjggMTI4IDAgMSAwIDI1NiAwQTEyOCAxMjggMCAxIDAgOTYgMTI4em05NC41IDIwMC4ybDE4LjYgMzFMMTc1LjggNDgzLjFsLTM2LTE0Ni45Yy0yLTguMS05LjgtMTMuNC0xNy45LTExLjNDNTEuOSAzNDIuNCAwIDQwNS44IDAgNDgxLjNjMCAxNyAxMy44IDMwLjcgMzAuNyAzMC43SDE2Mi41YzAgMCAwIDAgLjEgMEgxNjggMjgwaDUuNWMwIDAgMCAwIC4xIDBINDE3LjNjMTcgMCAzMC43LTEzLjggMzAuNy0zMC43YzAtNzUuNS01MS45LTEzOC45LTEyMS45LTE1Ni40Yy04LjEtMi0xNS45IDMuMy0xNy45IDExLjNsLTM2IDE0Ni45TDIzOC45IDM1OS4ybDE4LjYtMzFjNi40LTEwLjctMS4zLTI0LjItMTMuNy0yNC4ySDIyNCAyMDQuM2MtMTIuNCAwLTIwLjEgMTMuNi0xMy43IDI0LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNMCA0ODIuM0MwIDM4My44IDc5LjggMzA0IDE3OC4zIDMwNGg5MS40QzM2OC4yIDMwNCA0NDggMzgzLjggNDQ4IDQ4Mi4zYzAgMTYuNC0xMy4zIDI5LjctMjkuNyAyOS43SDI5LjdDMTMuMyA1MTIgMCA0OTguNyAwIDQ4Mi4zek00NzEgMTQzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDQ3LTQ3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCAyMjQgMGExMjggMTI4IDAgMSAwIDAgMjU2em0tNDUuNyA0OEM3OS44IDMwNCAwIDM4My44IDAgNDgyLjNDMCA0OTguNyAxMy4zIDUxMiAyOS43IDUxMkg0MTguM2MxNi40IDAgMjkuNy0xMy4zIDI5LjctMjkuN0M0NDggMzgzLjggMzY4LjIgMzA0IDI2OS43IDMwNEgxNzguM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNCZXR3ZWVuTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNEMwIDEwLjcgMTAuNyAwIDI0IDBINjE2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDI0QzEwLjcgNDggMCAzNy4zIDAgMjR6TTAgNDg4YzAtMTMuMyAxMC43LTI0IDI0LTI0SDYxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR6TTgzLjIgMTYwYTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMzIgMzIwYzAtMzUuMyAyOC43LTY0IDY0LTY0aDk2YzEyLjIgMCAyMy43IDMuNCAzMy40IDkuNGMtMzcuMiAxNS4xLTY1LjYgNDcuMi03NS44IDg2LjZINjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyem00NjEuNiAzMmMtMTAuMy00MC4xLTM5LjYtNzIuNi03Ny43LTg3LjRjOS40LTUuNSAyMC40LTguNiAzMi4xLTguNmg5NmMzNS4zIDAgNjQgMjguNyA2NCA2NGMwIDE3LjctMTQuMyAzMi0zMiAzMkg0OTMuNnpNMzkxLjIgMjkwLjRjMzIuMSA3LjQgNTguMSAzMC45IDY4LjkgNjEuNmMzLjUgMTAgNS41IDIwLjggNS41IDMyYzAgMTcuNy0xNC4zIDMyLTMyIDMyaC0yMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyYzAtMTEuMiAxLjktMjIgNS41LTMyYzEwLjUtMjkuNyAzNS4zLTUyLjggNjYuMS02MC45YzcuOC0yLjEgMTYtMy4xIDI0LjUtMy4xaDk2YzcuNCAwIDE0LjcgLjggMjEuNiAyLjR6bTQ0LTEzMC40YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpNMzIxLjYgOTZhODAgODAgMCAxIDEgMCAxNjAgODAgODAgMCAxIDEgMC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzR2VhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMTYwQTgwIDgwIDAgMSAwIDE0NCAwYTgwIDgwIDAgMSAwIDAgMTYwem0zNjggMEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpNMCAyOTguN0MwIDMxMC40IDkuNiAzMjAgMjEuMyAzMjBIMjM0LjdjLjIgMCAuNCAwIC43IDBjLTI2LjYtMjMuNS00My4zLTU3LjgtNDMuMy05NmMwLTcuNiAuNy0xNSAxLjktMjIuM2MtMTMuNi02LjMtMjguNy05LjctNDQuNi05LjdIMTA2LjdDNDcuOCAxOTIgMCAyMzkuOCAwIDI5OC43ek0zMjAgMzIwYzI0IDAgNDUuOS04LjggNjIuNy0yMy4zYzIuNS0zLjcgNS4yLTcuMyA4LTEwLjdjMi43LTMuMyA1LjctNi4xIDktOC4zQzQxMCAyNjIuMyA0MTYgMjQzLjkgNDE2IDIyNGMwLTUzLTQzLTk2LTk2LTk2cy05NiA0My05NiA5NnM0MyA5NiA5NiA5NnptNjUuNCA2MC4yYy0xMC4zLTUuOS0xOC4xLTE2LjItMjAuOC0yOC4ySDI2MS4zQzE4Ny43IDM1MiAxMjggNDExLjcgMTI4IDQ4NS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43SDQ1NS4yYy0yLjEtNS4yLTMuMi0xMC45LTMuMi0xNi40di0zYy0xLjMtLjctMi43LTEuNS00LTIuM2wtMi42IDEuNWMtMTYuOCA5LjctNDAuNSA4LTU0LjctOS43Yy00LjUtNS42LTguNi0xMS41LTEyLjQtMTcuNmwtLjEtLjItLjEtLjItMi40LTQuMS0uMS0uMi0uMS0uMmMtMy40LTYuMi02LjQtMTIuNi05LTE5LjNjLTguMi0yMS4yIDIuMi00Mi42IDE5LTUyLjNsMi43LTEuNWMwLS44IDAtMS41IDAtMi4zczAtMS41IDAtMi4zbC0yLjctMS41ek01MzMuMyAxOTJINDkwLjdjLTE1LjkgMC0zMSAzLjUtNDQuNiA5LjdjMS4zIDcuMiAxLjkgMTQuNyAxLjkgMjIuM2MwIDE3LjQtMy41IDMzLjktOS43IDQ5YzIuNSAuOSA0LjkgMiA3LjEgMy4zbDIuNiAxLjVjMS4zLS44IDIuNi0xLjYgNC0yLjN2LTNjMC0xOS40IDEzLjMtMzkuMSAzNS44LTQyLjZjNy45LTEuMiAxNi0xLjkgMjQuMi0xLjlzMTYuMyAuNiAyNC4yIDEuOWMyMi41IDMuNSAzNS44IDIzLjIgMzUuOCA0Mi42djNjMS4zIC43IDIuNyAxLjUgNCAyLjNsMi42LTEuNWMxNi44LTkuNyA0MC41LTggNTQuNyA5LjdjMi4zIDIuOCA0LjUgNS44IDYuNiA4LjdjLTIuMS01Ny4xLTQ5LTEwMi43LTEwNi42LTEwMi43em05MS4zIDE2My45YzYuMy0zLjYgOS41LTExLjEgNi44LTE4Yy0yLjEtNS41LTQuNi0xMC44LTcuNC0xNS45bC0yLjMtNGMtMy4xLTUuMS02LjUtOS45LTEwLjItMTQuNWMtNC42LTUuNy0xMi43LTYuNy0xOS0zbC0yLjkgMS43Yy05LjIgNS4zLTIwLjQgNC0yOS42LTEuM3MtMTYuMS0xNC41LTE2LjEtMjUuMXYtMy40YzAtNy4zLTQuOS0xMy44LTEyLjEtMTQuOWMtNi41LTEtMTMuMS0xLjUtMTkuOS0xLjVzLTEzLjQgLjUtMTkuOSAxLjVjLTcuMiAxLjEtMTIuMSA3LjYtMTIuMSAxNC45djMuNGMwIDEwLjYtNi45IDE5LjgtMTYuMSAyNS4xcy0yMC40IDYuNi0yOS42IDEuM2wtMi45LTEuN2MtNi4zLTMuNi0xNC40LTIuNi0xOSAzYy0zLjcgNC42LTcuMSA5LjUtMTAuMiAxNC42bC0yLjMgMy45Yy0yLjggNS4xLTUuMyAxMC40LTcuNCAxNS45Yy0yLjYgNi44IC41IDE0LjMgNi44IDE3LjlsMi45IDEuN2M5LjIgNS4zIDEzLjcgMTUuOCAxMy43IDI2LjRzLTQuNSAyMS4xLTEzLjcgMjYuNGwtMyAxLjdjLTYuMyAzLjYtOS41IDExLjEtNi44IDE3LjljMi4xIDUuNSA0LjYgMTAuNyA3LjQgMTUuOGwyLjQgNC4xYzMgNS4xIDYuNCA5LjkgMTAuMSAxNC41YzQuNiA1LjcgMTIuNyA2LjcgMTkgM2wyLjktMS43YzkuMi01LjMgMjAuNC00IDI5LjYgMS4zczE2LjEgMTQuNSAxNi4xIDI1LjF2My40YzAgNy4zIDQuOSAxMy44IDEyLjEgMTQuOWM2LjUgMSAxMy4xIDEuNSAxOS45IDEuNXMxMy40LS41IDE5LjktMS41YzcuMi0xLjEgMTIuMS03LjYgMTIuMS0xNC45di0zLjRjMC0xMC42IDYuOS0xOS44IDE2LjEtMjUuMXMyMC40LTYuNiAyOS42LTEuM2wyLjkgMS43YzYuMyAzLjYgMTQuNCAyLjYgMTktM2MzLjctNC42IDcuMS05LjQgMTAuMS0xNC41bDIuNC00LjJjMi44LTUuMSA1LjMtMTAuMyA3LjQtMTUuOGMyLjYtNi44LS41LTE0LjMtNi44LTE3LjlsLTMtMS43Yy05LjItNS4zLTEzLjctMTUuOC0xMy43LTI2LjRzNC41LTIxLjEgMTMuNy0yNi40bDMtMS43ek00NzIgMzg0YTQwIDQwIDAgMSAxIDgwIDAgNDAgNDAgMCAxIDEgLTgwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTEuMiA5NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTMyIDI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4NS42YzEwLjEtMzkuNCAzOC42LTcxLjUgNzUuOC04Ni42Yy05LjctNi0yMS4yLTkuNC0zMy40LTkuNEg5NmMtMzUuMyAwLTY0IDI4LjctNjQgNjR6bTQ2MS42IDMySDU3NmMxNy43IDAgMzItMTQuMyAzMi0zMmMwLTM1LjMtMjguNy02NC02NC02NEg0NDhjLTExLjcgMC0yMi43IDMuMS0zMi4xIDguNmMzOC4xIDE0LjggNjcuNCA0Ny4zIDc3LjcgODcuNHpNMzkxLjIgMjI2LjRjLTYuOS0xLjYtMTQuMi0yLjQtMjEuNi0yLjRoLTk2Yy04LjUgMC0xNi43IDEuMS0yNC41IDMuMWMtMzAuOCA4LjEtNTUuNiAzMS4xLTY2LjEgNjAuOWMtMy41IDEwLTUuNSAyMC44LTUuNSAzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJjMC0xMS4yLTEuOS0yMi01LjUtMzJjLTEwLjgtMzAuNy0zNi44LTU0LjItNjguOS02MS42ek01NjMuMiA5NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTMyMS42IDE5MmE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHpNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNSYXlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxIDdDMzEuNi0yLjMgMTYuNC0yLjMgNyA3Uy0yLjMgMzEuNiA3IDQxbDcyIDcyYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUw0MSA3ek01OTkgN0w1MjcgNzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwek03IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw3Mi03MmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDcgNDcxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXptNTkyIDBjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC03Mi03MmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw3MiA3MnpNMzIwIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpNMjEyLjEgMzM2Yy0yLjcgNy41LTQuMSAxNS42LTQuMSAyNGMwIDEzLjMgMTAuNyAyNCAyNCAyNEg0MDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRjMC04LjQtMS40LTE2LjUtNC4xLTI0Yy0uNS0xLjQtMS0yLjctMS42LTRjLTkuNC0yMi4zLTI5LjgtMzguOS01NC4zLTQzYy0zLjktLjctNy45LTEtMTItMUgyODBjLTQuMSAwLTguMSAuMy0xMiAxYy0uOCAuMS0xLjcgLjMtMi41IC41Yy0yNC45IDUuMS00NS4xIDIzLTUzLjQgNDYuNXpNMTc1LjggMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTI2LjUgMzJDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43aDU2LjFjOC0zNC4xIDMyLjgtNjEuNyA2NS4yLTczLjZjLTcuNS00LjEtMTYuMi02LjQtMjUuMy02LjRIMTQ5LjN6bTM2OCA4MGMxNC43IDAgMjYuNy0xMS45IDI2LjctMjYuN2MwLTI5LjUtMjMuOS01My4zLTUzLjMtNTMuM0g0MjEuM2MtOS4yIDAtMTcuOCAyLjMtMjUuMyA2LjRjMzIuNCAxMS45IDU3LjIgMzkuNSA2NS4yIDczLjZoNTYuMXpNNDY0IDIyNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzUmVjdGFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBDNDMgMCAwIDQzIDAgOTZWNDE2YzAgNTMgNDMgOTYgOTYgOTZINTQ0YzUzIDAgOTYtNDMgOTYtOTZWOTZjMC01My00My05Ni05Ni05Nkg5NnpNNjQgOTZjMC0xNy43IDE0LjMtMzIgMzItMzJINTQ0YzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQxNmMwIDE3LjctMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZ6bTE1OS44IDgwYTQ4IDQ4IDAgMSAwIC05NiAwIDQ4IDQ4IDAgMSAwIDk2IDB6TTk2IDMwOS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43aDU2LjFjOC0zNC4xIDMyLjgtNjEuNyA2NS4yLTczLjZjLTcuNS00LjEtMTYuMi02LjQtMjUuMy02LjRIMTQ5LjNDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zek00NjEuMiAzMzZoNTYuMWMxNC43IDAgMjYuNy0xMS45IDI2LjctMjYuN2MwLTI5LjUtMjMuOS01My4zLTUzLjMtNTMuM0g0MjEuM2MtOS4yIDAtMTcuOCAyLjMtMjUuMyA2LjRjMzIuNCAxMS45IDU3LjIgMzkuNSA2NS4yIDczLjZ6TTM3MiAyODljLTMuOS0uNy03LjktMS0xMi0xSDI4MGMtNC4xIDAtOC4xIC4zLTEyIDFjLTI2IDQuNC00Ny4zIDIyLjctNTUuOSA0N2MtMi43IDcuNS00LjEgMTUuNi00LjEgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDA4YzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtOC40LTEuNC0xNi41LTQuMS0yNGMtOC42LTI0LjMtMjkuOS00Mi42LTU1LjktNDd6TTUxMiAxNzZhNDggNDggMCAxIDAgLTk2IDAgNDggNDggMCAxIDAgOTYgMHpNMzIwIDI1NmE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDEgMCAwIDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDQ0MC42IDMyMEg2MTguN2MxMS44IDAgMjEuMy05LjYgMjEuMy0yMS4zQzY0MCAyMzkuOCA1OTIuMiAxOTIgNTMzLjMgMTkySDQ5MC43Yy0xNS45IDAtMzEgMy41LTQ0LjYgOS43YzEuMyA3LjIgMS45IDE0LjcgMS45IDIyLjNjMCAzMC4yLTEwLjUgNTgtMjggNzkuOWwtMjUuMi0xOS43QzQwOC4xIDI2Ny43IDQxNiAyNDYuOCA0MTYgMjI0YzAtNTMtNDMtOTYtOTYtOTZjLTMxLjEgMC01OC43IDE0LjgtNzYuMyAzNy43bC00MC42LTMxLjhjMTMtMTQuMiAyMC45LTMzLjEgMjAuOS01My45YzAtNDQuMi0zNS44LTgwLTgwLTgwQzExNi4zIDAgOTEuOSAxNC4xIDc3LjUgMzUuNUwzOC44IDUuMXpNMTA2LjcgMTkyQzQ3LjggMTkyIDAgMjM5LjggMCAyOTguN0MwIDMxMC40IDkuNiAzMjAgMjEuMyAzMjBIMjM0LjdjLjIgMCAuNCAwIC43IDBjLTIwLjYtMTguMi0zNS4yLTQyLjgtNDAuOC03MC44TDEyMS44IDE5MkgxMDYuN3pNMjYxLjMgMzUyQzE4Ny43IDM1MiAxMjggNDExLjcgMTI4IDQ4NS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43SDQ4NS4zYzEwLjUgMCAxOS41LTYgMjMuOS0xNC44TDMyNC45IDM1MkgyNjEuM3pNNTEyIDE2MEE4MCA4MCAwIDEgMCA1MTIgMGE4MCA4MCAwIDEgMCAwIDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnNWaWV3ZmluZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQ4aDg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDMyQzE0LjMgMCAwIDE0LjMgMCAzMlYxMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFY0OHpNMTc1LjggMjI0YTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnptLTI2LjUgMzJDMTE5LjkgMjU2IDk2IDI3OS45IDk2IDMwOS4zYzAgMTQuNyAxMS45IDI2LjcgMjYuNyAyNi43aDU2LjFjOC0zNC4xIDMyLjgtNjEuNyA2NS4yLTczLjZjLTcuNS00LjEtMTYuMi02LjQtMjUuMy02LjRIMTQ5LjN6bTM2OCA4MGMxNC43IDAgMjYuNy0xMS45IDI2LjctMjYuN2MwLTI5LjUtMjMuOS01My4zLTUzLjMtNTMuM0g0MjEuM2MtOS4yIDAtMTcuOCAyLjMtMjUuMyA2LjRjMzIuNCAxMS45IDU3LjIgMzkuNSA2NS4yIDczLjZoNTYuMXptLTg5LjQgMGMtOC42LTI0LjMtMjkuOS00Mi42LTU1LjktNDdjLTMuOS0uNy03LjktMS0xMi0xSDI4MGMtNC4xIDAtOC4xIC4zLTEyIDFjLTI2IDQuNC00Ny4zIDIyLjctNTUuOSA0N2MtMi43IDcuNS00LjEgMTUuNi00LjEgMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRINDA4YzEzLjMgMCAyNC0xMC43IDI0LTI0YzAtOC40LTEuNC0xNi41LTQuMS0yNHpNNDY0IDIyNGE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6bS04MC0zMmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6TTUwNCA0OGg4OHY4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDUwNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNHpNNDggNDY0VjM3NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJIMTM2YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDQ4em00NTYgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzc2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djg4SDUwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDBhODAgODAgMCAxIDEgMCAxNjBBODAgODAgMCAxIDEgMTQ0IDB6TTUxMiAwYTgwIDgwIDAgMSAxIDAgMTYwQTgwIDgwIDAgMSAxIDUxMiAwek0wIDI5OC43QzAgMjM5LjggNDcuOCAxOTIgMTA2LjcgMTkyaDQyLjdjMTUuOSAwIDMxIDMuNSA0NC42IDkuN2MtMS4zIDcuMi0xLjkgMTQuNy0xLjkgMjIuM2MwIDM4LjIgMTYuOCA3Mi41IDQzLjMgOTZjLS4yIDAtLjQgMC0uNyAwSDIxLjNDOS42IDMyMCAwIDMxMC40IDAgMjk4Ljd6TTQwNS4zIDMyMGMtLjIgMC0uNCAwLS43IDBjMjYuNi0yMy41IDQzLjMtNTcuOCA0My4zLTk2YzAtNy42LS43LTE1LTEuOS0yMi4zYzEzLjYtNi4zIDI4LjctOS43IDQ0LjYtOS43aDQyLjdDNTkyLjIgMTkyIDY0MCAyMzkuOCA2NDAgMjk4LjdjMCAxMS44LTkuNiAyMS4zLTIxLjMgMjEuM0g0MDUuM3pNMjI0IDIyNGE5NiA5NiAwIDEgMSAxOTIgMCA5NiA5NiAwIDEgMSAtMTkyIDB6TTEyOCA0ODUuM0MxMjggNDExLjcgMTg3LjcgMzUyIDI2MS4zIDM1MkgzNzguN0M0NTIuMyAzNTIgNTEyIDQxMS43IDUxMiA0ODUuM2MwIDE0LjctMTEuOSAyNi43LTI2LjcgMjYuN0gxNTQuN2MtMTQuNyAwLTI2LjctMTEuOS0yNi43LTI2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVV0ZW5zaWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwQzQwMCAwIDI4OCAzMiAyODggMTc2VjI4OGMwIDM1LjMgMjguNyA2NCA2NCA2NGgzMlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYzNTIgMjQwIDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NCAxNkM2NCA3LjggNTcuOSAxIDQ5LjcgLjFTMzQuMiA0LjYgMzIuNCAxMi41TDIuMSAxNDguOEMuNyAxNTUuMSAwIDE2MS41IDAgMTY3LjljMCA0NS45IDM1LjEgODMuNiA4MCA4Ny43VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjI1NS42YzQ0LjktNC4xIDgwLTQxLjggODAtODcuN2MwLTYuNC0uNy0xMi44LTIuMS0xOS4xTDE5MS42IDEyLjVjLTEuOC04LTkuMy0xMy4zLTE3LjQtMTIuNFMxNjAgNy44IDE2MCAxNlYxNTAuMmMwIDUuNC00LjQgOS44LTkuOCA5LjhjLTUuMSAwLTkuMy0zLjktOS44LTlMMTI3LjkgMTQuNkMxMjcuMiA2LjMgMTIwLjMgMCAxMTIgMHMtMTUuMiA2LjMtMTUuOSAxNC42TDgzLjcgMTUxYy0uNSA1LjEtNC43IDktOS44IDljLTUuNCAwLTkuOC00LjQtOS44LTkuOFYxNnptNDguMyAxNTJsLS4zIDAtLjMgMCAuMy0uNyAuMyAuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43IDM0LjVjMTYuMy02LjggMzUgLjkgNDEuOCAxNy4yTDE5MiAzNjQuOCAzMjIuNSA1MS43YzYuOC0xNi4zIDI1LjUtMjQgNDEuOC0xNy4yczI0IDI1LjUgMTcuMiA0MS44bC0xNjAgMzg0Yy01IDExLjktMTYuNiAxOS43LTI5LjUgMTkuN3MtMjQuNi03LjgtMjkuNS0xOS43TDIuNSA3Ni4zYy02LjgtMTYuMyAuOS0zNSAxNy4yLTQxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZhblNodXR0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMTA0djg4aDk2Vjk2SDcyYy00LjQgMC04IDMuNi04IDh6bTQ4MiA4OEw0NjUuMSA5NkgzODR2OTZINTQ2em0tMjI2IDBWOTZIMjI0djk2aDk2ek01OTIgMzg0SDU3NmMwIDUzLTQzIDk2LTk2IDk2cy05Ni00My05Ni05NkgyNTZjMCA1My00MyA5Ni05NiA5NnMtOTYtNDMtOTYtOTZINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjEwNEMwIDY0LjIgMzIuMiAzMiA3MiAzMkgxOTIgMzUyIDQ2NS4xYzE4LjkgMCAzNi44IDguMyA0OSAyMi44TDYyNSAxODYuNWM5LjcgMTEuNSAxNSAyNi4xIDE1IDQxLjJWMzM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0tNjQgMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwek0xNjAgNDMyYTQ4IDQ4IDAgMSAwIDAtOTYgNDggNDggMCAxIDAgMCA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmF1bHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDgwbDE2IDMyaDY0bDE2LTMySDQwMGwxNiAzMmg2NGwxNi0zMmgxNmMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjI0IDMyMGE4MCA4MCAwIDEgMCAwLTE2MCA4MCA4MCAwIDEgMCAwIDE2MHptMC0yNDBhMTYwIDE2MCAwIDEgMSAwIDMyMCAxNjAgMTYwIDAgMSAxIDAtMzIwek00ODAgMjIxLjNWMzM2YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjIyMS4zYy0xOC42LTYuNi0zMi0yNC40LTMyLTQ1LjNjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OGMwIDIwLjktMTMuNCAzOC43LTMyIDQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlY3RvclNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggODBoMzJ2MzJIMzY4Vjgwek0zNTIgMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMySDEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyVjM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJIOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJIMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM4NGMwLTE3LjctMTQuMy0zMi0zMi0zMlYxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjRjMC0xNy43LTE0LjMtMzItMzItMzJIMzUyek05NiAxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJIMzIwYzAgMTcuNyAxNC4zIDMyIDMyIDMyVjM1MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJIMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyVjE2MHpNNDggNDAwSDgwdjMySDQ4VjQwMHptMzIwIDMyVjQwMGgzMnYzMkgzNjh6TTQ4IDExMlY4MEg4MHYzMkg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVudXNEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDI4OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTM2OCAxNzZjMCA4Ni4zLTYyLjEgMTU4LjEtMTQ0IDE3My4xVjM4NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgyMjR2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmgzMlYzNDkuMUM3OC4xIDMzNC4xIDE2IDI2Mi4zIDE2IDE3NkMxNiA3OC44IDk0LjggMCAxOTIgMHMxNzYgNzguOCAxNzYgMTc2ek0zNDQgMzE4YzE0LjYtMTUuNiAyNi44LTMzLjQgMzYtNTNjMTguOCAxNC40IDQyLjQgMjMgNjggMjNjNjEuOSAwIDExMi01MC4xIDExMi0xMTJzLTUwLjEtMTEyLTExMi0xMTJjLTI1LjYgMC00OS4xIDguNi02OCAyM2MtOS4zLTE5LjUtMjEuNS0zNy40LTM2LTUzQzM3My4xIDEyLjYgNDA5LjEgMCA0NDggMGM5Ny4yIDAgMTc2IDc4LjggMTc2IDE3NmMwIDg2LjMtNjIuMSAxNTguMS0xNDQgMTczLjFWMzg0aDMyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDQ4MHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDMyVjM0OS4xYy0yNi42LTQuOS01MS4xLTE1LjctNzItMzEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVudXNNYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAyODhhMTEyIDExMiAwIDEgMCAwLTIyNCAxMTIgMTEyIDAgMSAwIDAgMjI0ek0zNTIgMTc2YzAgODYuMy02Mi4xIDE1OC4xLTE0NCAxNzMuMVYzODRoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMjA4djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgxMTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoMzJWMzQ5LjFDNjIuMSAzMzQuMSAwIDI2Mi4zIDAgMTc2QzAgNzguOCA3OC44IDAgMTc2IDBzMTc2IDc4LjggMTc2IDE3NnpNMjcxLjkgMzYwLjZjMTkuMy0xMC4xIDM2LjktMjMuMSA1Mi4xLTM4LjRjMjAgMTguNSA0Ni43IDI5LjggNzYuMSAyOS44YzYxLjkgMCAxMTItNTAuMSAxMTItMTEycy01MC4xLTExMi0xMTItMTEyYy03LjIgMC0xNC4zIC43LTIxLjEgMmMtNC45LTIxLjUtMTMtNDEuNy0yNC02MC4yQzM2OS4zIDY2IDM4NC40IDY0IDQwMCA2NGMzNyAwIDcxLjQgMTEuNCA5OS44IDMxbDIwLjYtMjAuNkw0ODcgNDFjLTYuOS02LjktOC45LTE3LjItNS4yLTI2LjJTNDk0LjMgMCA1MDQgMEg2MTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRWMTM2YzAgOS43LTUuOCAxOC41LTE0LjggMjIuMnMtMTkuMyAxLjctMjYuMi01LjJsLTMzLjQtMzMuNEw1NDUgMTQwLjJjMTkuNSAyOC40IDMxIDYyLjcgMzEgOTkuOGMwIDk3LjItNzguOCAxNzYtMTc2IDE3NmMtNTAuNSAwLTk2LTIxLjMtMTI4LjEtNTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVudXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgMTc2YTExMiAxMTIgMCAxIDEgMjI0IDBBMTEyIDExMiAwIDEgMSA4MCAxNzZ6TTIyNCAzNDkuMWM4MS45LTE1IDE0NC04Ni44IDE0NC0xNzMuMUMzNjggNzguOCAyODkuMiAwIDE5MiAwUzE2IDc4LjggMTYgMTc2YzAgODYuMyA2Mi4xIDE1OC4xIDE0NCAxNzMuMVYzODRIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyaDMydjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDQ4aDMyYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIyNFYzNDkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVzdFBhdGNoZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUxLjIgNjkuN2w1NS45IDE2Ny43LTExIDMzLjFjLTIuNyA4LjItNC4xIDE2LjctNC4xIDI1LjNWNDY0YzAgMTQuNSAzLjkgMjguMiAxMC43IDM5LjlDMTk1IDUwOSAxODUuOSA1MTIgMTc2IDUxMkg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjcwLjVjMC05LjUgMi44LTE4LjcgOC4xLTI2LjZsNDcuOS03MS44YzUuMy03LjkgOC4xLTE3LjEgOC4xLTI2LjZWMTI4IDU0LjMgNDhDNjQgMjEuNSA4NS41IDAgMTEyIDBoNC41Yy4yIDAgLjQgMCAuNiAwYy40IDAgLjggMCAxLjIgMGMxOC44IDAgMzQuMSA5LjcgNDQuMSAxOC44QzE3MS42IDI3LjIgMTkwLjggNDAgMjI0IDQwczUyLjQtMTIuOCA2MS43LTIxLjJDMjk1LjcgOS43IDMxMSAwIDMyOS43IDBjLjQgMCAuOCAwIDEuMiAwYy4yIDAgLjQgMCAuNiAwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OHY2LjNWMTI4djE3LjVjMCA5LjUgMi44IDE4LjcgOC4xIDI2LjZsNDcuOSA3MS44YzUuMyA3LjkgOC4xIDE3LjEgOC4xIDI2LjZWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDI3MmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjk1LjhjMC01LjIgLjgtMTAuMyAyLjUtMTUuMkwyOTYuOCA2OS43QzI3OS40IDc5LjcgMjU1LjQgODggMjI0IDg4cy01NS40LTguMy03Mi44LTE4LjN6TTk2IDQ1NmE0MCA0MCAwIDEgMCAwLTgwIDQwIDQwIDAgMSAwIDAgODB6TTYzLjUgMjU1LjVjLTQuNyA0LjctNC43IDEyLjMgMCAxN0w3OSAyODggNjMuNSAzMDMuNWMtNC43IDQuNy00LjcgMTIuMyAwIDE3czEyLjMgNC43IDE3IDBMOTYgMzA1bDE1LjUgMTUuNWM0LjcgNC43IDEyLjMgNC43IDE3IDBzNC43LTEyLjMgMC0xN0wxMTMgMjg4bDE1LjUtMTUuNWM0LjctNC43IDQuNy0xMi4zIDAtMTdzLTEyLjMtNC43LTE3IDBMOTYgMjcxIDgwLjUgMjU1LjVjLTQuNy00LjctMTIuMy00LjctMTcgMHpNMzA0IDI4MHY4IDMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMiA4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC04di04YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNy4xIDIzNy40TDE1MS4yIDY5LjdDMTY4LjYgNzkuNyAxOTIuNiA4OCAyMjQgODhzNTUuNC04LjMgNzIuOC0xOC4zTDIyNi41IDI4MC42Yy0xLjYgNC45LTIuNSAxMC0yLjUgMTUuMlY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhINDAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI3MC41YzAtOS41LTIuOC0xOC43LTguMS0yNi42bC00Ny45LTcxLjhjLTUuMy03LjktOC4xLTE3LjEtOC4xLTI2LjZWMTI4IDU0LjMgNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQuNWMtLjIgMC0uNCAwLS42IDBjLS40IDAtLjggMC0xLjIgMEMzMTEgMCAyOTUuNyA5LjcgMjg1LjcgMTguOEMyNzYuNCAyNy4yIDI1Ny4yIDQwIDIyNCA0MHMtNTIuNC0xMi44LTYxLjctMjEuMkMxNTIuMyA5LjcgMTM3IDAgMTE4LjMgMGMtLjQgMC0uOCAwLTEuMiAwYy0uMiAwLS40IDAtLjYgMEgxMTJDODUuNSAwIDY0IDIxLjUgNjQgNDh2Ni4zVjEyOHYxNy41YzAgOS41LTIuOCAxOC43LTguMSAyNi42TDguMSAyNDMuOUMyLjggMjUxLjggMCAyNjEuMSAwIDI3MC41VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OEgxNzZjOS45IDAgMTktMyAyNi43LTguMUMxOTUuOSA0OTIuMiAxOTIgNDc4LjUgMTkyIDQ2NFYyOTUuOGMwLTguNiAxLjQtMTcuMSA0LjEtMjUuM2wxMS0zMy4xek0zNDcuMyAzNTYuN2w0OCA0OGM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwbC00OC00OGMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwem0tMjk0LjYgNDhsNDgtNDhjNi4yLTYuMiAxNi40LTYuMiAyMi42IDBzNi4yIDE2LjQgMCAyMi42bC00OCA0OGMtNi4yIDYuMi0xNi40IDYuMi0yMi42IDBzLTYuMi0xNi40IDAtMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhbENpcmNsZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIOTZoNjQgNjRjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJWMjY2LjhjLTIwLjIgMjguNi0zMiA2My41LTMyIDEwMS4yYzAgMjUuMiA1LjMgNDkuMSAxNC44IDcwLjhDMTg5LjUgNDYzLjcgMTYwLjYgNDgwIDEyOCA0ODBjLTUzIDAtOTYtNDMtOTYtOTZWOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNOTYgOTZ2OTZoNjRWOTZIOTZ6TTIyNCAzNjhhMTQ0IDE0NCAwIDEgMSAyODggMCAxNDQgMTQ0IDAgMSAxIC0yODggMHptMjExLjMtNDMuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMzUyIDM4NS40bC0yOC43LTI4LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwcy02LjIgMTYuNCAwIDIyLjZsNDAgNDBjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsNzItNzJjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWxWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMkMxNC4zIDMyIDAgNDYuMyAwIDY0UzE0LjMgOTYgMzIgOTZWMzg0YzAgNTMgNDMgOTYgOTYgOTZjMjguNiAwIDU0LjItMTIuNSA3MS44LTMyLjNjLjEtMTQuMiA1LjYtMjguMyAxNi40LTM5LjFjLjItLjIgLjEtLjYtLjItLjZjLTMwLjkgMC01Ni0yNS4xLTU2LTU2czI1LjEtNTYgNTYtNTZjLjMgMCAuNC0uNCAuMi0uNmMtMjEuOS0yMS45LTIxLjktNTcuMyAwLTc5LjJjMi40LTIuNCA1LTQuNiA3LjgtNi41Vjk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDE2MCA5NiAzMnpNOTYgMTkyVjk2aDY0djk2SDk2ek0yMTYgMzc2YzI4LjggMCA0My4yIDM0LjggMjIuOSA1NS4yYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBjMjAuNC0yMC40IDU1LjItNS45IDU1LjIgMjIuOWMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMjguOCAzNC44LTQzLjIgNTUuMi0yMi45YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOUM0NDQuOCA0MTAuOCA0NTkuMiAzNzYgNDg4IDM3NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGMtMjguOCAwLTQzLjItMzQuOC0yMi45LTU1LjJjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEM0MTAuOCAyNTkuMiAzNzYgMjQ0LjggMzc2IDIxNmMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGMwIDI4LjgtMzQuOCA0My4yLTU1LjIgMjIuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWMyMC40IDIwLjQgNS45IDU1LjItMjIuOSA1NS4yYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0em0xMDQtODhhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em00MCA5NmEyNCAyNCAwIDEgMSA0OCAwIDI0IDI0IDAgMSAxIC00OCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Mi42IDkuNGMtMTIuNS0xMi41LTMyLjgtMTIuNS00NS4zIDBzLTEyLjUgMzIuOCAwIDQ1LjNsOS40IDkuNEwyOC4xIDM0Mi42QzEwLjEgMzYwLjYgMCAzODUgMCA0MTAuNVY0MTZjMCA1MyA0MyA5NiA5NiA5Nmg1LjVjMjUuNSAwIDQ5LjktMTAuMSA2Ny45LTI4LjFMNDQ4IDIwNS4zbDkuNCA5LjRjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM2wtMzItMzItOTYtOTYtMzItMzJ6TTIwNS4zIDI1NkwzNTIgMTA5LjMgNDAyLjcgMTYwbC05NiA5NkgyMDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NEMwIDQ2LjMgMTQuMyAzMiAzMiAzMkg4OGg0OCA1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMlY0MDBjMCA0NC4yLTM1LjggODAtODAgODBzLTgwLTM1LjgtODAtODBWOTZDMTQuMyA5NiAwIDgxLjcgMCA2NHpNMTM2IDk2SDg4VjI1Nmg0OFY5NnpNMjg4IDY0YzAtMTcuNyAxNC4zLTMyIDMyLTMyaDU2IDQ4IDU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjQwMGMwIDQ0LjItMzUuOCA4MC04MCA4MHMtODAtMzUuOC04MC04MFY5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6TTQyNCA5NkgzNzZWMjU2aDQ4Vjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWRlb1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTg2LjQtNjcuNyAxMy44IDkuMmM5LjggNi41IDIyLjQgNy4yIDMyLjkgMS42czE2LjktMTYuNCAxNi45LTI4LjJWMTI4YzAtMTEuOC02LjUtMjIuNi0xNi45LTI4LjJzLTIzLTUtMzIuOSAxLjZsLTk2IDY0TDQ0OCAxNzQuOVYxOTIgMzIwdjUuOGwtMzItMjUuMVYxMjhjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTEzLjlMMzguOCA1LjF6TTQwNyA0MTYuN0wzMi4zIDEyMS41Yy0uMiAyLjEtLjMgNC4zLS4zIDYuNVYzODRjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzUyYzIzLjQgMCA0My45LTEyLjYgNTUtMzEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4ek01NTkuMSA5OS44YzEwLjQgNS42IDE2LjkgMTYuNCAxNi45IDI4LjJWMzg0YzAgMTEuOC02LjUgMjIuNi0xNi45IDI4LjJzLTIzIDUtMzIuOS0xLjZsLTk2LTY0TDQxNiAzMzcuMVYzMjAgMTkyIDE3NC45bDE0LjItOS41IDk2LTY0YzkuOC02LjUgMjIuNC03LjIgMzIuOS0xLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpaGFyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODEgMjJMMzA1LjggNC43YzEuMy0uOSAyLjctMS44IDQuMS0yLjRDMzEzLjEgLjcgMzE2LjYgMCAzMjAgMHM2LjkgLjcgMTAuMSAyLjJjMS40IC43IDIuOCAxLjUgNC4xIDIuNEwzNTkgMjJDMzkzIDQ1LjggNDMwLjggNjMuNSA0NzAuOCA3NC40bDIzIDYuM2MxLjggLjUgMy42IDEuMSA1LjIgMmMzLjIgMS43IDUuOSA0IDguMSA2LjhjMy44IDQuOSA1LjYgMTEuMyA0LjcgMTcuOGMtLjQgMi44LTEuMiA1LjQtMi41IDcuOGMtMS43IDMuMi00IDUuOS02LjggOC4xYy00LjMgMy4yLTkuNiA1LjEtMTUuMSA0LjlINDgwdjU2LjFsNi40IDUuMSA1LjIgNC4xYzIxLjEgMTYuNyA0NSAyOS42IDcwLjUgMzguMWwyOC45IDkuNmMxLjYgLjUgMy4yIDEuMiA0LjYgMmMzLjEgMS43IDUuOCA0LjEgNy44IDYuOXMzLjUgNi4xIDQuMSA5LjZjLjUgMi43IC42IDUuNSAuMSA4LjNzLTEuNCA1LjQtMi43IDcuOGMtMS43IDMuMS00LjEgNS44LTYuOSA3LjhzLTYuMSAzLjUtOS42IDQuMWMtMS42IC4zLTMuMyAuNC01IC40SDU0NHY2NS45YzIwLjUgMjIuOCA0Ny40IDM5LjIgNzcuNCA0Ni43QzYzMiA0MDMgNjQwIDQxMi42IDY0MCA0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRINTc2djMyYzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyVjQ0OEgzNTJ2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDQ4SDEyOHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlY0NDhIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0YzAtMTEuNCA4LTIxIDE4LjYtMjMuNGMzMC03LjYgNTYuOS0yMy45IDc3LjQtNDYuN1YyODhINTYuNmMtMS43IDAtMy40LS4xLTUtLjRjLTMuNS0uNy02LjgtMi4xLTkuNi00LjFzLTUuMi00LjctNy03LjhjLTEuMy0yLjQtMi4zLTUtMi43LTcuOHMtLjQtNS42IC4xLTguM2MuNy0zLjUgMi4xLTYuOCA0LjEtOS42czQuNy01LjIgNy44LTYuOWMxLjQtLjggMy0xLjUgNC42LTJsMjguOS05LjZjMjUuNS04LjUgNDkuNC0yMS40IDcwLjUtMzguMWw1LjItNC4xIDYuNC01LjFWMTc2IDEyOGgtNy41Yy01LjUgLjEtMTAuOC0xLjctMTUuMS00LjljLTIuOC0yLjEtNS4xLTQuOC02LjgtOC4xYy0xLjItMi40LTIuMS01LTIuNS03LjhjLS45LTYuNSAuOS0xMi44IDQuNy0xNy44YzIuMS0yLjggNC44LTUuMSA4LjEtNi44YzEuNi0uOCAzLjQtMS41IDUuMi0ybDIzLTYuM0MyMDkuMiA2My41IDI0NyA0NS44IDI4MSAyMnpNNDE2IDEyOEgzMjAgMjI0djY0aDcyIDQ4IDcyVjEyOHpNMTYwIDI4OHY2NEgyOTZoMjQgMjRINDgwVjI4OEgzNDQgMzIwaDBIMjk2IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXNDb3ZpZFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdMNDcyLjEgMzQ0LjdjMTEuNC0xOS41IDE5LjEtNDEuNCAyMi4zLTY0LjdINTI4djE2YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djE2SDQ5NC40Yy00LjItMzAuNy0xNi4zLTU4LjgtMzQuMS04Mi4zTDQ4NCAxMjUuOWwxMS4zIDExLjNjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDQ3Mi43IDQ2LjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlMNDUwLjEgOTJsLTIzLjggMjMuOEM0MDIuOCA5Ny45IDM3NC43IDg1LjggMzQ0IDgxLjZWNDhoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjgwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDE2VjgxLjZjLTMwLjcgNC4yLTU4LjggMTYuMy04Mi4zIDM0LjFMMTg5LjkgOTJsMTEuMy0xMS4zYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMTM0LjEgNzkuOCAzOC44IDUuMXptMzYyLjUgNDA3TDE0OS4yIDIxMy41Yy0xLjUgNi0yLjcgMTIuMi0zLjUgMTguNUgxMTJWMjE2YzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0djgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMjgwaDMzLjZjNC4yIDMwLjcgMTYuMyA1OC44IDM0LjEgODIuM0wxNTYgMzg2LjFsLTExLjMtMTEuM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWw1Ni42IDU2LjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45TDE4OS45IDQyMGwyMy44LTIzLjhjMjMuNSAxNy45IDUxLjcgMjkuOSA4Mi4zIDM0LjFWNDY0SDI4MGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNDRWNDMwLjRjMjAuNC0yLjggMzkuNy05LjEgNTcuMy0xOC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c0NvdmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyODBWODEuNmMzMC43IDQuMiA1OC44IDE2LjMgODIuMyAzNC4xTDM4Ni4xIDkyIDM3NC44IDgwLjZjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw1Ni42IDU2LjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMEw0MjAgMTI1LjlsLTIzLjggMjMuOGMxNy45IDIzLjUgMjkuOSA1MS43IDM0LjEgODIuM0g0NjRWMjE2YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR2ODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMjgwSDQzMC40Yy00LjIgMzAuNy0xNi4zIDU4LjgtMzQuMSA4Mi4zTDQyMCAzODYuMWwxMS4zLTExLjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01Ni42IDU2LjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlMMzg2LjEgNDIwbC0yMy44LTIzLjhjLTIzLjUgMTcuOS01MS43IDI5LjktODIuMyAzNC4xVjQ2NGgxNmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRoMTZWNDMwLjRjLTMwLjctNC4yLTU4LjgtMTYuMy04Mi4zLTM0LjFMMTI1LjkgNDIwbDExLjMgMTEuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwTDQ2LjcgNDA4LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMEw5MiAzODYuMWwyMy44LTIzLjhDOTcuOSAzMzguOCA4NS44IDMxMC43IDgxLjYgMjgwSDQ4djE2YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjIxNmMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0djE2SDgxLjZjNC4yLTMwLjcgMTYuMy01OC44IDM0LjEtODIuM0w5MiAxMjUuOSA4MC42IDEzNy4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU2LjYtNTYuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlMMTI1LjkgOTJsMjMuOCAyMy44YzIzLjUtMTcuOSA1MS43LTI5LjkgODIuMy0zNC4xVjQ4SDIxNmMtMTMuMyAwLTI0LTEwLjctMjQtMjR6bTQ4IDIwMGE0OCA0OCAwIDEgMCAtOTYgMCA0OCA0OCAwIDEgMCA5NiAwem02NCAxMDRhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c1NsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4LjggNS4xQzI4LjQtMy4xIDEzLjMtMS4yIDUuMSA5LjJTLTEuMiAzNC43IDkuMiA0Mi45bDU5MiA0NjRjMTAuNCA4LjIgMjUuNSA2LjMgMzMuNy00LjFzNi4zLTI1LjUtNC4xLTMzLjdsLTE1NC4zLTEyMWMtMi0zMC4xIDIwLjgtNjAuMSA1Ni02MC4xSDU0NGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg1MzIuNWMtNDkuOSAwLTc0LjktNjAuMy0zOS42LTk1LjZsOC4yLTguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOC4yIDguMkM0MTIuMyAxMTguNCAzNTIgOTMuNCAzNTIgNDMuNVYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMlY0My41YzAgNDkuOS02MC4zIDc0LjktOTUuNiAzOS42TDE4NC4yIDc1Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMGMtMS42IDEuNi0zLjEgMy40LTQuMyA1LjNMMzguOCA1LjF6bTIyNS44IDE3N2M2LjktMy45IDE0LjktNi4xIDIzLjQtNi4xYzI2LjUgMCA0OCAyMS41IDQ4IDQ4YzAgNC40LS42IDguNy0xLjcgMTIuN2wtNjkuNy01NC42ek00MDIgNDEyLjdMMTQ0LjcgMjEwYy05LjUgOC41LTIyLjIgMTQtMzcuMiAxNEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmgxMS41YzQ5LjkgMCA3NC45IDYwLjMgMzkuNiA5NS42bC04LjIgOC4yYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwbDguMi04LjJjMzUuMy0zNS4zIDk1LjYtMTAuMyA5NS42IDM5LjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJWNDY4LjVjMC0zMS4yIDIzLjYtNTIuNyA1MC01NS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJWNDMuNWMwIDQ5LjktNjAuMyA3NC45LTk1LjYgMzkuNkwxMjAuMiA3NUMxMDcuNyA2Mi41IDg3LjUgNjIuNSA3NSA3NXMtMTIuNSAzMi44IDAgNDUuM2w4LjIgOC4yQzExOC40IDE2My43IDkzLjQgMjI0IDQzLjUgMjI0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQzLjVjNDkuOSAwIDc0LjkgNjAuMyAzOS42IDk1LjZMNzUgMzkxLjhjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsOC4yLTguMmMzNS4zLTM1LjMgOTUuNi0xMC4zIDk1LjYgMzkuNlY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlY0NjguNWMwLTQ5LjkgNjAuMy03NC45IDk1LjYtMzkuNmw4LjIgOC4yYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwczEyLjUtMzIuOCAwLTQ1LjNsLTguMi04LjJjLTM1LjMtMzUuMy0xMC4zLTk1LjYgMzkuNi05NS42SDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg0NjguNWMtNDkuOSAwLTc0LjktNjAuMy0zOS42LTk1LjZsOC4yLTguMmMxMi41LTEyLjUgMTIuNS0zMi44IDAtNDUuM3MtMzIuOC0xMi41LTQ1LjMgMGwtOC4yIDguMkMzNDguMyAxMTguNCAyODggOTMuNCAyODggNDMuNVYzMnpNMTc2IDIyNGE0OCA0OCAwIDEgMSA5NiAwIDQ4IDQ4IDAgMSAxIC05NiAwem0xMjggNTZhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaXJ1c2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjM3LjVjMCAzNS42IDQzLjEgNTMuNSA2OC4zIDI4LjNsOS41LTkuNWM5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjlsLTkuNSA5LjVDMjkzIDEyNC45IDMxMC45IDE2OCAzNDYuNSAxNjhIMzYwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDM0Ni41Yy0zNS42IDAtNTMuNSA0My4xLTI4LjMgNjguM2w5LjUgOS41YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45cy0yNC42IDkuNC0zMy45IDBsLTkuNS05LjVDMjU5LjEgMjkzIDIxNiAzMTAuOSAyMTYgMzQ2LjVWMzYwYzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjM0Ni41YzAtMzUuNi00My4xLTUzLjUtNjguMy0yOC4zbC05LjUgOS41Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDkuNS05LjVDOTEgMjU5LjEgNzMuMSAyMTYgMzcuNSAyMTZIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRIMzcuNWMzNS42IDAgNTMuNS00My4xIDI4LjMtNjguM2wtOS41LTkuNWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDkuNSA5LjVDMTI0LjkgOTEgMTY4IDczLjEgMTY4IDM3LjVWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTQ4IDIyNGExNiAxNiAwIDEgMCAwLTMyIDE2IDE2IDAgMSAwIDAgMzJ6bS00OC02NGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem0zMjAgODBjMCAzMyAzOS45IDQ5LjUgNjMuMiAyNi4yYzYuMi02LjIgMTYuNC02LjIgMjIuNiAwczYuMiAxNi40IDAgMjIuNkM1NzQuNSAzMTIuMSA1OTEgMzUyIDYyNCAzNTJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTMzIDAtNDkuNSAzOS45LTI2LjIgNjMuMmM2LjIgNi4yIDYuMiAxNi40IDAgMjIuNnMtMTYuNCA2LjItMjIuNiAwQzU1MS45IDQ0Ni41IDUxMiA0NjMgNTEyIDQ5NmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTMzLTM5LjktNDkuNS02My4yLTI2LjJjLTYuMiA2LjItMTYuNCA2LjItMjIuNiAwcy02LjItMTYuNCAwLTIyLjZDNDE3LjUgNDIzLjkgNDAxIDM4NCAzNjggMzg0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2YzMzIDAgNDkuNS0zOS45IDI2LjItNjMuMmMtNi4yLTYuMi02LjItMTYuNCAwLTIyLjZzMTYuNC02LjIgMjIuNiAwQzQ0MC4xIDI4OS41IDQ4MCAyNzMgNDgwIDI0MGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2em0wIDExMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2ljZW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDMyMGE4MCA4MCAwIDEgMSAwLTE2MCA4MCA4MCAwIDEgMSAwIDE2MHptMTE5LjggMGMxNS4zLTIyLjkgMjQuMi01MC40IDI0LjItODBjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCAxNjAuNSAwIDI0MHM2NC41IDE0NCAxNDQgMTQ0SDQ5NmM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NHMtMTQ0IDY0LjUtMTQ0IDE0NGMwIDI5LjYgOC45IDU3LjEgMjQuMiA4MEgyNjMuOHpNNDk2IDE2MGE4MCA4MCAwIDEgMSAwIDE2MCA4MCA4MCAwIDEgMSAwLTE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sY2FubyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMTQ0Yy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0YzE1LjcgMCAzMCA1LjYgNDEuMiAxNUMyMTIuNCAxMi40IDIzMi43IDAgMjU2IDBzNDMuNiAxMi40IDU0LjggMzFDMzIyIDIxLjYgMzM2LjMgMTYgMzUyIDE2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0Yy0xNC43IDAtMjguMy01LTM5LjEtMTMuM2wtMzIgNDhDMjc1LjMgMTg3IDI2NiAxOTIgMjU2IDE5MnMtMTkuMy01LTI0LjktMTMuM2wtMzItNDhDMTg4LjMgMTM5IDE3NC43IDE0NCAxNjAgMTQ0ek0xNDQgMzUybDQ4LjQtMjQuMmMxMC4yLTUuMSAyMS42LTcuOCAzMy03LjhjMTkuNiAwIDM4LjQgNy44IDUyLjIgMjEuNmwzMi41IDMyLjVjNi4zIDYuMyAxNC45IDkuOSAyMy44IDkuOWMxMS4zIDAgMjEuOC01LjYgMjgtMTVsOS43LTE0LjYtNTguOS02Ni4zYy05LjEtMTAuMi0yMi4yLTE2LjEtMzUuOS0xNi4xSDIzNS4xYy0xMy43IDAtMjYuOCA1LjktMzUuOSAxNi4xbC01OS45IDY3LjRMMTQ0IDM1MnptMTkuNC05NS44YzE4LjItMjAuNSA0NC4zLTMyLjIgNzEuOC0zMi4yaDQxLjhjMjcuNCAwIDUzLjUgMTEuNyA3MS44IDMyLjJsMTUwLjIgMTY5YzguNSA5LjUgMTMuMiAyMS45IDEzLjIgMzQuN2MwIDI4LjgtMjMuNCA1Mi4yLTUyLjIgNTIuMkg1Mi4yQzIzLjQgNTEyIDAgNDg4LjYgMCA0NTkuOGMwLTEyLjggNC43LTI1LjEgMTMuMi0zNC43bDE1MC4yLTE2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sbGV5YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuOCAyNjcuNGMtMjYuMSA4LjctNTMuNCAxMy44LTgxIDE1LjFjOS4yLTEwNS4zLTMxLjUtMjA0LjItMTAzLjItMjcyLjRDNDM0LjEgNDEuMSA1MTIgMTM5LjUgNTEyIDI1NmMwIDMuOC0uMSA3LjYtLjIgMTEuNHptLTMuOSAzNC43Yy01LjggMzItMTcuNiA2Mi0zNC4yIDg4LjdjLTk3LjUgNDguNS0yMTcuNyA0Mi42LTMxMS45LTI0LjVjMjMuNy0zNi4yIDU1LjQtNjcuNyA5NC41LTkxLjhjNzkuOSA0My4yIDE3MC4xIDUwLjggMjUxLjYgMjcuNnptLTIzNi01NS41Yy0yLjUtOTAuOS00MS4xLTE3Mi43LTEwMS45LTIzMS43QzE5Ni44IDUuMiAyMjUuOCAwIDI1NiAwYzIuNyAwIDUuMyAwIDcuOSAuMWM5MC44IDYwLjIgMTQ1LjcgMTY3LjIgMTM0LjcgMjgyLjNjLTQzLjEtMi40LTg2LjQtMTQuMS0xMjYuOC0zNS45ek0xMzggMjguOGMyMC42IDE4LjMgMzguNyAzOS40IDUzLjcgNjIuNkM5NS45IDEzNi4xIDMwLjYgMjIwLjggNy4zIDMxNi45QzIuNSAyOTcuNCAwIDI3NyAwIDI1NkMwIDE1Ny4yIDU2IDcxLjUgMTM4IDI4Ljh6bTY5LjYgOTAuNWMxOS41IDM4LjYgMzEgODEuOSAzMi4zIDEyNy43QzE2Mi41IDI5NC42IDExMC45IDM2OC45IDkwLjIgNDUxQzY2IDQzMC40IDQ1LjYgNDA1LjQgMzAuNCAzNzcuMmM2LjctMTA4LjcgNzEuOS0yMDkuOSAxNzcuMS0yNTcuOXpNMjU2IDUxMmMtNTAuNyAwLTk4LTE0LjctMTM3LjgtNDAuMmM1LjYtMjcgMTQuOC01My4xIDI3LjQtNzcuN0MyMzIuMiA0NTQuNiAzMzguMSA0NjguOCA0MzMgNDQxYy00NiA0NC0xMDguMyA3MS0xNzcgNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZUhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTMzLjYgMzIuNUM1OTguNSA4NS4yIDY0MCAxNjUuOCA2NDAgMjU2cy00MS41IDE3MC43LTEwNi40IDIyMy41Yy0xMC4zIDguNC0yNS40IDYuOC0zMy44LTMuNXMtNi44LTI1LjQgMy41LTMzLjhDNTU3LjUgMzk4LjIgNTkyIDMzMS4yIDU5MiAyNTZzLTM0LjUtMTQyLjItODguNy0xODYuM2MtMTAuMy04LjQtMTEuOC0yMy41LTMuNS0zMy44czIzLjUtMTEuOCAzMy44LTMuNXpNNDczLjEgMTA3YzQzLjIgMzUuMiA3MC45IDg4LjkgNzAuOSAxNDlzLTI3LjcgMTEzLjgtNzAuOSAxNDljLTEwLjMgOC40LTI1LjQgNi44LTMzLjgtMy41cy02LjgtMjUuNCAzLjUtMzMuOEM0NzUuMyAzNDEuMyA0OTYgMzAxLjEgNDk2IDI1NnMtMjAuNy04NS4zLTUzLjItMTExLjhjLTEwLjMtOC40LTExLjgtMjMuNS0zLjUtMzMuOHMyMy41LTExLjggMzMuOC0zLjV6bS02MC41IDc0LjVDNDM0LjEgMTk5LjEgNDQ4IDIyNS45IDQ0OCAyNTZzLTEzLjkgNTYuOS0zNS40IDc0LjVjLTEwLjMgOC40LTI1LjQgNi44LTMzLjgtMy41cy02LjgtMjUuNCAzLjUtMzMuOEMzOTMuMSAyODQuNCA0MDAgMjcxIDQwMCAyNTZzLTYuOS0yOC40LTE3LjctMzcuM2MtMTAuMy04LjQtMTEuOC0yMy41LTMuNS0zMy44czIzLjUtMTEuOCAzMy44LTMuNXpNMzAxLjEgMzQuOEMzMTIuNiA0MCAzMjAgNTEuNCAzMjAgNjRWNDQ4YzAgMTIuNi03LjQgMjQtMTguOSAyOS4ycy0yNSAzLjEtMzQuNC01LjNMMTMxLjggMzUySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoNjcuOEwyNjYuNyA0MC4xYzkuNC04LjQgMjIuOS0xMC40IDM0LjQtNS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAxLjEgMzQuOEMzMTIuNiA0MCAzMjAgNTEuNCAzMjAgNjRWNDQ4YzAgMTIuNi03LjQgMjQtMTguOSAyOS4ycy0yNSAzLjEtMzQuNC01LjNMMTMxLjggMzUySDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYyMjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoNjcuOEwyNjYuNyA0MC4xYzkuNC04LjQgMjIuOS0xMC40IDM0LjQtNS4zek00MTIuNiAxODEuNUM0MzQuMSAxOTkuMSA0NDggMjI1LjkgNDQ4IDI1NnMtMTMuOSA1Ni45LTM1LjQgNzQuNWMtMTAuMyA4LjQtMjUuNCA2LjgtMzMuOC0zLjVzLTYuOC0yNS40IDMuNS0zMy44QzM5My4xIDI4NC40IDQwMCAyNzEgNDAwIDI1NnMtNi45LTI4LjQtMTcuNy0zNy4zYy0xMC4zLTguNC0xMS44LTIzLjUtMy41LTMzLjhzMjMuNS0xMS44IDMzLjgtMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDY0YzAtMTIuNi03LjQtMjQtMTguOS0yOS4ycy0yNS0zLjEtMzQuNCA1LjNMMTMxLjggMTYwSDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY2NGMwIDM1LjMgMjguNyA2NCA2NCA2NGg2Ny44TDI2Ni43IDQ3MS45YzkuNCA4LjQgMjIuOSAxMC40IDM0LjQgNS4zUzMyMCA0NjAuNiAzMjAgNDQ4VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDEuMSAzNC44QzMxMi42IDQwIDMyMCA1MS40IDMyMCA2NFY0NDhjMCAxMi42LTcuNCAyNC0xOC45IDI5LjJzLTI1IDMuMS0zNC40LTUuM0wxMzEuOCAzNTJINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjIyNGMwLTM1LjMgMjguNy02NCA2NC02NGg2Ny44TDI2Ni43IDQwLjFjOS40LTguNCAyMi45LTEwLjQgMzQuNC01LjN6TTQyNSAxNjdsNTUgNTUgNTUtNTVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NSA1NSA1NSA1NWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC01NS01NS01NSA1NWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw1NS01NS01NS01NWMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWckNhcmRib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgNjRINjRDMjguNyA2NCAwIDkyLjcgMCAxMjhWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0SDE4NC40YzI0LjIgMCA0Ni40LTEzLjcgNTcuMi0zNS40bDMyLTY0YzguOC0xNy41IDI2LjctMjguNiA0Ni4zLTI4LjZzMzcuNSAxMS4xIDQ2LjMgMjguNmwzMiA2NGMxMC44IDIxLjcgMzMgMzUuNCA1Ny4yIDM1LjRINTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHpNOTYgMjQwYTY0IDY0IDAgMSAxIDEyOCAwQTY0IDY0IDAgMSAxIDk2IDI0MHptMzg0LTY0YTY0IDY0IDAgMSAxIDAgMTI4IDY0IDY0IDAgMSAxIDAtMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjggMzRjMTYuNS02LjIgMzUgMi4yIDQxLjIgMTguN2wxMTAuMiAyOTRMMjU3LjMgNTVjNC0xMy43IDE2LjUtMjMgMzAuNy0yM3MyNi43IDkuNCAzMC43IDIzbDg1LjEgMjkxLjdMNTE0IDUyLjhjNi4yLTE2LjUgMjQuNi0yNC45IDQxLjItMTguN3MyNC45IDI0LjcgMTguNyA0MS4ybC0xNDQgMzg0Yy00LjggMTIuOS0xNy40IDIxLjMtMzEuMiAyMC43cy0yNS43LTkuOC0yOS41LTIzTDI4OCAxNzguMyAyMDYuNyA0NTdjLTMuOSAxMy4yLTE1LjggMjIuNS0yOS41IDIzcy0yNi4zLTcuOC0zMS4yLTIwLjdMMiA3NS4yQy00LjIgNTguNyA0LjIgNDAuMiAyMC44IDM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYWxraWVUYWxraWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEyIDI0YzAtMTMuMy0xMC43LTI0LTI0LTI0UzY0IDEwLjcgNjQgMjRWOTZINDhDMjEuNSA5NiAwIDExNy41IDAgMTQ0VjMwMC4xYzAgMTIuNyA1LjEgMjQuOSAxNC4xIDMzLjlsMy45IDMuOWM5IDkgMTQuMSAyMS4yIDE0LjEgMzMuOVY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhIMzA0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjM3MS45YzAtMTIuNyA1LjEtMjQuOSAxNC4xLTMzLjlsMy45LTMuOWM5LTkgMTQuMS0yMS4yIDE0LjEtMzMuOVYxNDRjMC0yNi41LTIxLjUtNDgtNDgtNDhIMzIwYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMySDIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMkgxMTJWMjR6bTAgMTM2SDI3MmM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTAgNjRIMjcyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptMCA2NEgyNzJjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MmMwLTM1LjMtMjguNy02NC02NC02NEg4MGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNkg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINjR6TTQxNiAyNzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYW5kTWFnaWNTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzQuNyA0Mi43TDE5NyA1Ni44Yy0zIDEuMS01IDQtNSA3LjJzMiA2LjEgNSA3LjJsMzcuNyAxNC4xTDI0OC44IDEyM2MxLjEgMyA0IDUgNy4yIDVzNi4xLTIgNy4yLTVsMTQuMS0zNy43TDMxNSA3MS4yYzMtMS4xIDUtNCA1LTcuMnMtMi02LjEtNS03LjJMMjc3LjMgNDIuNyAyNjMuMiA1Yy0xLjEtMy00LTUtNy4yLTVzLTYuMSAyLTcuMiA1TDIzNC43IDQyLjd6TTQ2LjEgMzk1LjRjLTE4LjcgMTguNy0xOC43IDQ5LjEgMCA2Ny45bDM0LjYgMzQuNmMxOC43IDE4LjcgNDkuMSAxOC43IDY3LjkgMEw1MjkuOSAxMTYuNWMxOC43LTE4LjcgMTguNy00OS4xIDAtNjcuOUw0OTUuMyAxNC4xYy0xOC43LTE4LjctNDkuMS0xOC43LTY3LjkgMEw0Ni4xIDM5NS40ek00ODQuNiA4Mi42bC0xMDUgMTA1LTIzLjMtMjMuMyAxMDUtMTA1IDIzLjMgMjMuM3pNNy41IDExNy4yQzMgMTE4LjkgMCAxMjMuMiAwIDEyOHMzIDkuMSA3LjUgMTAuOEw2NCAxNjBsMjEuMiA1Ni41YzEuNyA0LjUgNiA3LjUgMTAuOCA3LjVzOS4xLTMgMTAuOC03LjVMMTI4IDE2MGw1Ni41LTIxLjJjNC41LTEuNyA3LjUtNiA3LjUtMTAuOHMtMy05LjEtNy41LTEwLjhMMTI4IDk2IDEwNi44IDM5LjVDMTA1LjEgMzUgMTAwLjggMzIgOTYgMzJzLTkuMSAzLTEwLjggNy41TDY0IDk2IDcuNSAxMTcuMnptMzUyIDI1NmMtNC41IDEuNy03LjUgNi03LjUgMTAuOHMzIDkuMSA3LjUgMTAuOEw0MTYgNDE2bDIxLjIgNTYuNWMxLjcgNC41IDYgNy41IDEwLjggNy41czkuMS0zIDEwLjgtNy41TDQ4MCA0MTZsNTYuNS0yMS4yYzQuNS0xLjcgNy41LTYgNy41LTEwLjhzLTMtOS4xLTcuNS0xMC44TDQ4MCAzNTJsLTIxLjItNTYuNWMtMS43LTQuNS02LTcuNS0xMC44LTcuNXMtOS4xIDMtMTAuOCA3LjVMNDE2IDM1MmwtNTYuNSAyMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYW5kTWFnaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMSA0NjMuM2MtMTguNy0xOC43LTE4LjctNDkuMSAwLTY3LjlMMzk1LjQgMTQuMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGwzNC42IDM0LjZjMTguNyAxOC43IDE4LjcgNDkuMSAwIDY3LjlMMTE2LjUgNDk3LjljLTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwTDE0LjEgNDYzLjN6TTM0Ny42IDE4Ny42bDEwNS0xMDVMNDI5LjQgNTkuM2wtMTA1IDEwNSAyMy4zIDIzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbmRTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNi4xYzkuNS04LjUgMjQtOC4xIDMzIC45bDggOGM5IDkgOS40IDIzLjUgLjkgMzNsLTg1LjggOTUuOWMtMi42IDIuOS00LjEgNi43LTQuMSAxMC43VjE3NmMwIDguOC03LjIgMTYtMTYgMTZIMzg0LjJjLTQuNiAwLTguOSAxLjktMTEuOSA1LjNMMTAwLjcgNTAwLjlDOTQuMyA1MDggODUuMyA1MTIgNzUuOCA1MTJjLTguOCAwLTE3LjMtMy41LTIzLjUtOS44TDkuNyA0NTkuN0MzLjUgNDUzLjQgMCA0NDUgMCA0MzYuMmMwLTkuNSA0LTE4LjUgMTEuMS0yNC44bDExMS42LTk5LjhjMy40LTMgNS4zLTcuNCA1LjMtMTEuOVYyNzJjMC04LjggNy4yLTE2IDE2LTE2aDM0LjZjMy45IDAgNy43LTEuNSAxMC43LTQuMUw0NjQgNi4xek00MzIgMjg4YzMuNiAwIDYuNyAyLjQgNy43IDUuOGwxNC44IDUxLjcgNTEuNyAxNC44YzMuNCAxIDUuOCA0LjEgNS44IDcuN3MtMi40IDYuNy01LjggNy43bC01MS43IDE0LjgtMTQuOCA1MS43Yy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOGwtMTQuOC01MS43LTUxLjctMTQuOGMtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjggMTQuOC01MS43YzEtMy40IDQuMS01LjggNy43LTUuOHpNODcuNyA2OS44bDE0LjggNTEuNyA1MS43IDE0LjhjMy40IDEgNS44IDQuMSA1LjggNy43cy0yLjQgNi43LTUuOCA3LjdsLTUxLjcgMTQuOEw4Ny43IDIxOC4yYy0xIDMuNC00LjEgNS44LTcuNyA1LjhzLTYuNy0yLjQtNy43LTUuOEw1Ny41IDE2Ni41IDUuOCAxNTEuN2MtMy40LTEtNS44LTQuMS01LjgtNy43czIuNC02LjcgNS44LTcuN2w1MS43LTE0LjhMNzIuMyA2OS44YzEtMy40IDQuMS01LjggNy43LTUuOHM2LjcgMi40IDcuNyA1Ljh6TTIwOCAwYzMuNyAwIDYuOSAyLjUgNy44IDYuMWw2LjggMjcuMyAyNy4zIDYuOGMzLjYgLjkgNi4xIDQuMSA2LjEgNy44cy0yLjUgNi45LTYuMSA3LjhsLTI3LjMgNi44LTYuOCAyNy4zYy0uOSAzLjYtNC4xIDYuMS03LjggNi4xcy02LjktMi41LTcuOC02LjFsLTYuOC0yNy4zLTI3LjMtNi44Yy0zLjYtLjktNi4xLTQuMS02LjEtNy44czIuNS02LjkgNi4xLTcuOGwyNy4zLTYuOCA2LjgtMjcuM2MuOS0zLjYgNC4xLTYuMSA3LjgtNi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXJlaG91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0ODhWMTcxLjNjMC0yNi4yIDE1LjktNDkuNyA0MC4yLTU5LjRMMzA4LjEgNC44YzcuNi0zLjEgMTYuMS0zLjEgMjMuOCAwTDU5OS44IDExMS45YzI0LjMgOS43IDQwLjIgMzMuMyA0MC4yIDU5LjRWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDU2OGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWNDg4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptNDg4IDI0bC0zMzYgMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWNDMySDUxMmwwIDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0ek0xMjggNDAwVjMzNkg1MTJ2NjRIMTI4em0wLTk2VjIyNEg1MTJsMCA4MEgxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhdGVyTGFkZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxMjcuN0MxMjggNzQuOSAxNzAuOSAzMiAyMjMuNyAzMmM0OC4zIDAgODkgMzYgOTUgODMuOWwxIDguMmMyLjIgMTcuNS0xMC4yIDMzLjUtMjcuOCAzNS43cy0zMy41LTEwLjItMzUuNy0yNy44bC0xLTguMmMtMi0xNS45LTE1LjUtMjcuOC0zMS41LTI3LjhjLTE3LjUgMC0zMS43IDE0LjItMzEuNyAzMS43VjIyNEgzODRWMTI3LjdDMzg0IDc0LjkgNDI2LjkgMzIgNDc5LjcgMzJjNDguMyAwIDg5IDM2IDk1IDgzLjlsMSA4LjJjMi4yIDE3LjUtMTAuMiAzMy41LTI3LjggMzUuN3MtMzMuNS0xMC4yLTM1LjctMjcuOGwtMS04LjJjLTItMTUuOS0xNS41LTI3LjgtMzEuNS0yNy44Yy0xNy41IDAtMzEuNyAxNC4yLTMxLjcgMzEuN1YzNjFjLTEuNiAxLTMuMyAyLTQuOCAzLjFjLTE4IDEyLjQtNDAuMSAyMC4zLTU5LjIgMjAuM2gwVjI4OEgxOTJ2OTYuNWMtMTkgMC00MS4yLTcuOS01OS4xLTIwLjNjLTEuNi0xLjEtMy4yLTIuMi00LjktMy4xVjEyNy43ek0zMDYuNSAzODkuOUMzMjkgNDA1LjQgMzU2LjUgNDE2IDM4NCA0MTZjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFsMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDY5LjcgNDE3IDQ4MCAzODQgNDgwYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2wwIDBDMTM2LjcgNDA1LjIgMTY1LjEgNDE2IDE5MiA0MTZjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OS41IDY5LjljMTEuMS03LjkgMjUuOS03LjkgMzcgMEMzMjkgODUuNCAzNTYuNSA5NiAzODQgOTZjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFsMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgMTQ5LjcgNDE3IDE2MCAzODQgMTYwYy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNEM0Mi44IDkyLjYgNjEgODMuNSA3NS4zIDcxLjZjMTEuMS05LjUgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyA4NS4yIDE2NS4xIDk2IDE5MiA5NmMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjF6bTM3IDI4OEMzMjkgMzczLjQgMzU2LjUgMzg0IDM4NCAzODRjMjYuOSAwIDU1LjQtMTAuOCA3Ny40LTI2LjFsMCAwYzExLjktOC41IDI4LjEtNy44IDM5LjIgMS43YzE0LjQgMTEuOSAzMi41IDIxIDUwLjYgMjUuMmMxNy4yIDQgMjcuOSAyMS4yIDIzLjkgMzguNHMtMjEuMiAyNy45LTM4LjQgMjMuOWMtMjQuNS01LjctNDQuOS0xNi41LTU4LjItMjVDNDQ5LjUgNDM3LjcgNDE3IDQ0OCAzODQgNDQ4Yy0zMS45IDAtNjAuNi05LjktODAuNC0xOC45Yy01LjgtMi43LTExLjEtNS4zLTE1LjYtNy43Yy00LjUgMi40LTkuNyA1LjEtMTUuNiA3LjdjLTE5LjggOS00OC41IDE4LjktODAuNCAxOC45Yy0zMyAwLTY1LjUtMTAuMy05NC41LTI1LjhjLTEzLjQgOC40LTMzLjcgMTkuMy01OC4yIDI1Yy0xNy4yIDQtMzQuNC02LjctMzguNC0yMy45czYuNy0zNC40IDIzLjktMzguNGMxOC4xLTQuMiAzNi4yLTEzLjMgNTAuNi0yNS4yYzExLjEtOS40IDI3LjMtMTAuMSAzOS4yLTEuN2wwIDBDMTM2LjcgMzczLjIgMTY1LjEgMzg0IDE5MiAzODRjMjcuNSAwIDU1LTEwLjYgNzcuNS0yNi4xYzExLjEtNy45IDI1LjktNy45IDM3IDB6bTAtMTQ0QzMyOSAyMjkuNCAzNTYuNSAyNDAgMzg0IDI0MGMyNi45IDAgNTUuNC0xMC44IDc3LjQtMjYuMWwwIDBjMTEuOS04LjUgMjguMS03LjggMzkuMiAxLjdjMTQuNCAxMS45IDMyLjUgMjEgNTAuNiAyNS4yYzE3LjIgNCAyNy45IDIxLjIgMjMuOSAzOC40cy0yMS4yIDI3LjktMzguNCAyMy45Yy0yNC41LTUuNy00NC45LTE2LjUtNTguMi0yNUM0NDkuNSAyOTMuNyA0MTcgMzA0IDM4NCAzMDRjLTMxLjkgMC02MC42LTkuOS04MC40LTE4LjljLTUuOC0yLjctMTEuMS01LjMtMTUuNi03LjdjLTQuNSAyLjQtOS43IDUuMS0xNS42IDcuN2MtMTkuOCA5LTQ4LjUgMTguOS04MC40IDE4LjljLTMzIDAtNjUuNS0xMC4zLTk0LjUtMjUuOGMtMTMuNCA4LjQtMzMuNyAxOS4zLTU4LjIgMjVjLTE3LjIgNC0zNC40LTYuNy0zOC40LTIzLjlzNi43LTM0LjQgMjMuOS0zOC40YzE4LjEtNC4yIDM2LjItMTMuMyA1MC42LTI1LjJjMTEuMS05LjUgMjcuMy0xMC4xIDM5LjItMS43bDAgMEMxMzYuNyAyMjkuMiAxNjUuMSAyNDAgMTkyIDI0MGMyNy41IDAgNTUtMTAuNiA3Ny41LTI2LjFjMTEuMS03LjkgMjUuOS03LjkgMzcgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F2ZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggNjRjMC0xNy43IDE0LjMtMzIgMzItMzJIMzIwYzE3LjcgMCAzMiAxNC4zIDMyIDMyVjQxNmg5NlYyNTZjMC0xNy43IDE0LjMtMzIgMzItMzJINjA4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDUxMlY0NDhjMCAxNy43LTE0LjMgMzItMzIgMzJIMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NkgxOTJWMjU2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDk2VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWlnaHRIYW5naW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA5NmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xMjIuNSAzMmMzLjUtMTAgNS41LTIwLjggNS41LTMyYzAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMTEuMiAxLjkgMjIgNS41IDMySDEyMGMtMjIgMC00MS4yIDE1LTQ2LjYgMzYuNGwtNzIgMjg4Yy0zLjYgMTQuMy0uNCAyOS41IDguNyA0MS4yUzMzLjIgNTEyIDQ4IDUxMkg0NjRjMTQuOCAwIDI4LjctNi44IDM3LjgtMTguNXMxMi4zLTI2LjggOC43LTQxLjJsLTcyLTI4OEM0MzMuMiAxNDMgNDE0IDEyOCAzOTIgMTI4SDM0Ni41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWlnaHRTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMTc2YTEyOCAxMjggMCAxIDEgMjU2IDAgMTI4IDEyOCAwIDEgMSAtMjU2IDB6TTM5MS44IDY0QzM1OS41IDI0LjkgMzEwLjcgMCAyNTYgMFMxNTIuNSAyNC45IDEyMC4yIDY0SDY0QzI4LjcgNjQgMCA5Mi43IDAgMTI4VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDM5MS44ek0yOTYgMjI0YzAtMTAuNi00LjEtMjAuMi0xMC45LTI3LjRsMzMuNi03OC4zYzMuNS04LjEtLjMtMTcuNS04LjQtMjFzLTE3LjUgLjMtMjEgOC40TDI1NS43IDE4NGMtMjIgLjEtMzkuNyAxOC0zOS43IDQwYzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoZWF0QXduQ2lyY2xlRXhjbGFtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzgzIDk1Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsODgtODh6TTMwNS41IDI3LjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI3MS41IDM4LjZjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwbC0xMS4zIDExLjNjLTM3LjUgMzcuNS0zNy41IDk4LjMgMCAxMzUuOGwxMC40IDEwLjQtMzAuNSAzMC41Yy0zLjQtMjcuMy0xNS41LTUzLjgtMzYuNS03NC44TDEwMS44IDIzMWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMNjcuOSAyNDIuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNEw5LjQgNDU3LjRjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjggMTIuNSA0NS4zIDBsNjguOS02OC45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMjIuNSAyMi41IDUzLjMgMzEuNSA4Mi40IDI3YzAtMSAwLTIuMSAwLTMuMWMwLTMzLjEgOS4xLTY0LjEgMjUtOTAuNmMtMTUuNS04LjctMzIuNS0xMy44LTQ5LjgtMTUuNWwzMS45LTMxLjkgMTIuMiAxMi4yYzYgNiAxMi42IDExLjEgMTkuNyAxNS4yYzI3LjUtMzQgNjcuMy01Ny41IDExMi42LTYzLjhjLTQuMS0zLjgtOC40LTcuMy0xMi45LTEwLjVMNTA1IDEzN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC01OS40IDU5LjRjLTIwLjYtNC40LTQyLTMuNy02Mi4zIDIuMWM2LjEtMjEuMyA2LjYtNDMuOCAxLjQtNjUuM0w0MDkgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzMjkuMSA1Mi45Yy0zLjctNS03LjgtOS44LTEyLjQtMTQuM0wzMDUuNSAyNy4zek00OTYgNTEyYTE0NCAxNDQgMCAxIDAgMC0yODggMTQ0IDE0NCAwIDEgMCAwIDI4OHptMC05NmEyNCAyNCAwIDEgMSAwIDQ4IDI0IDI0IDAgMSAxIDAtNDh6bTAtMTQ0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhjMC04LjggNy4yLTE2IDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGVhdEF3biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUgNDFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMEwzODMgOTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw4OC04OHpNMzA1LjUgMjcuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMjcxLjUgMzguNmMtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNC0zMC41IDMwLjVjLTMuNC0yNy4zLTE1LjUtNTMuOC0zNi41LTc0LjhsLTExLjMtMTEuM2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTExLjMgMTEuM2MtMzcuNSAzNy41LTM3LjUgOTguMyAwIDEzNS44bDEwLjQgMTAuNC0zMC41IDMwLjVjLTMuNC0yNy4zLTE1LjUtNTMuOC0zNi41LTc0LjhMMTAxLjggMjMxYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw2Ny45IDI0Mi4zYy0zNy41IDM3LjUtMzcuNSA5OC4zIDAgMTM1LjhsMTAuNCAxMC40TDkuNCA0NTcuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMGw2OC45LTY4LjkgMTIuMiAxMi4yYzM3LjUgMzcuNSA5OC4zIDM3LjUgMTM1LjggMGwxMS4zLTExLjNjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTExLjMtMTEuM2MtMjEuOC0yMS44LTQ5LjYtMzQuMS03OC4xLTM2LjlsMzEuOS0zMS45IDEyLjIgMTIuMmMzNy41IDM3LjUgOTguMyAzNy41IDEzNS44IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTIxLjgtMjEuOC00OS42LTM0LjEtNzguMS0zNi45bDMxLjktMzEuOSAxMi4yIDEyLjJjMzcuNSAzNy41IDk4LjMgMzcuNSAxMzUuOCAwTDQ4Ni41IDIzMWM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw0NzUuMiAxOTdjLTUuMi01LjItMTAuNi05LjgtMTYuNC0xMy45TDUwNSAxMzdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTkuNCA1OS40Yy0yMC42LTQuNC00Mi0zLjctNjIuMyAyLjFjNi4xLTIxLjMgNi42LTQzLjggMS40LTY1LjNMNDA5IDQxYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBMMzI5LjEgNTIuOWMtMy43LTUtNy44LTkuOC0xMi40LTE0LjNMMzA1LjUgMjcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2hlZWxjaGFpck1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ4YTQ4IDQ4IDAgMSAxIDk2IDAgNDggNDggMCAxIDEgLTk2IDB6TTIwNC41IDEyMS4zYy01LjQtMi41LTExLjctMS45LTE2LjQgMS43bC00MC45IDMwLjdjLTE0LjEgMTAuNi0zNC4yIDcuNy00NC44LTYuNHMtNy43LTM0LjIgNi40LTQ0LjhsNDAuOS0zMC43YzIzLjctMTcuOCA1NS4zLTIxIDgyLjEtOC40bDkwLjQgNDIuNWMyOS4xIDEzLjcgMzYuOCA1MS42IDE1LjIgNzUuNUwyOTkuMSAyMjRoOTcuNGMzMC4zIDAgNTMgMjcuNyA0Ny4xIDU3LjRMNDE1LjQgNDIyLjNjLTMuNSAxNy4zLTIwLjMgMjguNi0zNy43IDI1LjFzLTI4LjYtMjAuMy0yNS4xLTM3LjdMMzc3IDI4OEgzMDYuN2M4LjYgMTkuNiAxMy4zIDQxLjIgMTMuMyA2NGMwIDg4LjQtNzEuNiAxNjAtMTYwIDE2MFMwIDQ0MC40IDAgMzUyczcxLjYtMTYwIDE2MC0xNjBjMTEuMSAwIDIyIDEuMSAzMi40IDMuM2w1NC4yLTU0LjItNDIuMS0xOS44ek0xNjAgNDQ4YTk2IDk2IDAgMSAwIDAtMTkyIDk2IDk2IDAgMSAwIDAgMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGVlbGNoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiA5NmE0OCA0OCAwIDEgMCAwLTk2IDQ4IDQ4IDAgMSAwIDAgOTZ6TTEyMC41IDI0Ny4yYzEyLjQtNC43IDE4LjctMTguNSAxNC0zMC45cy0xOC41LTE4LjctMzAuOS0xNEM0My4xIDIyNS4xIDAgMjgzLjUgMCAzNTJjMCA4OC40IDcxLjYgMTYwIDE2MCAxNjBjNjEuMiAwIDExNC4zLTM0LjMgMTQxLjItODQuN2M2LjItMTEuNyAxLjgtMjYuMi05LjktMzIuNXMtMjYuMi0xLjgtMzIuNSA5LjlDMjQwIDQ0MCAyMDIuOCA0NjQgMTYwIDQ2NEM5OC4xIDQ2NCA0OCA0MTMuOSA0OCAzNTJjMC00Ny45IDMwLjEtODguOCA3Mi41LTEwNC44ek0yNTkuOCAxNzZsLTEuOS05LjdjLTQuNS0yMi4zLTI0LTM4LjMtNDYuOC0zOC4zYy0zMC4xIDAtNTIuNyAyNy41LTQ2LjggNTdsMjMuMSAxMTUuNWM2IDI5LjkgMzIuMiA1MS40IDYyLjggNTEuNGg1LjFjLjQgMCAuOCAwIDEuMyAwaDk0LjFjNi43IDAgMTIuNiA0LjEgMTUgMTAuNEw0MDIgNDU5LjJjNiAxNi4xIDIzLjggMjQuNiA0MC4xIDE5LjFsNDgtMTZjMTYuOC01LjYgMjUuOC0yMy43IDIwLjItNDAuNXMtMjMuNy0yNS44LTQwLjUtMjAuMmwtMTguNyA2LjItMjUuNS02OGMtMTEuNy0zMS4yLTQxLjYtNTEuOS03NC45LTUxLjlIMjgyLjJsLTkuNi00OEgzMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMjU5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoaXNrZXlHbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAzMmMtOS4zIDAtMTguMSA0LTI0LjIgMTEuMVMtMSA1OS40IC4zIDY4LjZsNTAgMzQyLjljNS43IDM5LjMgMzkuNCA2OC41IDc5LjIgNjguNWgyNTNjMzkuNyAwIDczLjQtMjkuMSA3OS4yLTY4LjVsNTAtMzQyLjljMS4zLTkuMi0xLjQtMTguNS03LjUtMjUuNVM0ODkuMyAzMiA0ODAgMzJIMzJ6TTg3LjcgMjI0TDY5IDk2SDQ0M0w0MjQuMyAyMjRIODcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NC4yIDIwMi45QzEyMy4yIDEzNi43IDIxNi44IDk2IDMyMCA5NnMxOTYuOCA0MC43IDI2NS44IDEwNi45YzEyLjggMTIuMiAzMyAxMS44IDQ1LjItLjlzMTEuOC0zMy0uOS00NS4yQzU0OS43IDc5LjUgNDQwLjQgMzIgMzIwIDMyUzkwLjMgNzkuNSA5LjggMTU2LjdDLTIuOSAxNjktMy4zIDE4OS4yIDguOSAyMDJzMzIuNSAxMy4yIDQ1LjIgLjl6TTMyMCAyNTZjNTYuOCAwIDEwOC42IDIxLjEgMTQ4LjIgNTZjMTMuMyAxMS43IDMzLjUgMTAuNCA0NS4yLTIuOHMxMC40LTMzLjUtMi44LTQ1LjJDNDU5LjggMjE5LjIgMzkzIDE5MiAzMjAgMTkycy0xMzkuOCAyNy4yLTE5MC41IDcyYy0xMy4zIDExLjctMTQuNSAzMS45LTIuOCA0NS4yczMxLjkgMTQuNSA0NS4yIDIuOGMzOS41LTM0LjkgOTEuMy01NiAxNDguMi01NnptNjQgMTYwYTY0IDY0IDAgMSAwIC0xMjggMCA2NCA2NCAwIDEgMCAxMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJIMzUyYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2SDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6bTY0IDM1MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg0MTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzg0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNMTI4IDUxMmgzMmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkgxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMTI4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dNYXhpbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTk2IDk2SDQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93TWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMySDQ4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZG93UmVzdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgNjRIMjA4Yy04LjggMC0xNiA3LjItMTYgMTZWOTZIMTI4VjgwYzAtNDQuMiAzNS44LTgwIDgwLTgwSDQzMmM0NC4yIDAgODAgMzUuOCA4MCA4MFYzMDRjMCA0NC4yLTM1LjggODAtODAgODBINDE2VjMyMGgxNmM4LjggMCAxNi03LjIgMTYtMTZWODBjMC04LjgtNy4yLTE2LTE2LTE2ek0wIDE5MmMwLTM1LjMgMjguNy02NCA2NC02NEgzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxOTJ6bTY0IDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDI4OGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmVCb3R0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkzLjQgOS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAwbDY0IDY0YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zYy0xMS44IDExLjgtMzAuNyAxMi41LTQzLjIgMS45bC05LjUgOS41LTQ4LjggNDguOGMtOS4yIDkuMi0xMS41IDIyLjktOC42IDM1LjZjOS40IDQwLjktMS45IDg1LjYtMzMuOCAxMTcuNUwxOTcuMyA0OTMuM2MtMjUgMjUtNjUuNSAyNS05MC41IDBsLTg4LTg4Yy0yNS0yNS0yNS02NS41IDAtOTAuNUwxODAuMiAxNTMuM2MzMS45LTMxLjkgNzYuNi00My4xIDExNy41LTMzLjhjMTIuNiAyLjkgMjYuNCAuNSAzNS41LTguNmw0OC44LTQ4LjggOS41LTkuNWMtMTAuNi0xMi42LTEwLTMxLjQgMS45LTQzLjJ6TTk5LjMgMzQ3LjNsNjUuNCA2NS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDk3LjQtOTcuNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtNjUuNC02NS40Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw5OS4zIDMyNC43Yy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2luZUdsYXNzRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMEM0Ny40IDAgMzMuNSAxMi44IDMyLjEgMjkuM2wtMTQgMTY4LjRjLTYgNzIgNDIuNSAxMzUuMiAxMDkuOSAxNTAuNlY0NDhIODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJoODAgODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJIMTkyVjM0OC40YzY3LjQtMTUuNCAxMTUuOS03OC42IDEwOS45LTE1MC42bC0xNC0xNjguNEMyODYuNSAxMi44IDI3Mi42IDAgMjU2IDBINjR6TTgxLjkgMjAzLjFMOTMuNCA2NEgyMjYuNmwxMS42IDEzOS4xQzI0MiAyNDguOCAyMDUuOSAyODggMTYwIDI4OHMtODItMzkuMi03OC4xLTg0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmVHbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMi4xIDI5LjNDMzMuNSAxMi44IDQ3LjQgMCA2NCAwSDI1NmMxNi42IDAgMzAuNSAxMi44IDMxLjkgMjkuM2wxNCAxNjguNGM2IDcyLTQyLjUgMTM1LjItMTA5LjkgMTUwLjZWNDQ4aDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDE2MCA4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMmg0OFYzNDguNEM2MC42IDMzMyAxMi4xIDI2OS44IDE4LjEgMTk3LjhsMTQtMTY4LjR6bTU2IDk4LjdIMjMxLjlsLTUuMy02NEg5My40bC01LjMgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvblNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIuNCA1My45QzU2LjggMzcuMSAzOC42IDI4LjEgMjEuOSAzMy42Uy0zLjkgNTcuNCAxLjYgNzQuMUw1MS42IDIyNEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMkg3Mi45bDU2LjcgMTcwLjFjNC41IDEzLjUgMTcuNCAyMi40IDMxLjYgMjEuOXMyNi40LTEwLjQgMjkuOC0yNC4yTDIzMyAyODhoNDZMMzIxIDQ1NS44YzMuNCAxMy44IDE1LjYgMjMuNyAyOS44IDI0LjJzMjcuMS04LjQgMzEuNi0yMS45TDQzOS4xIDI4OEg0ODBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJINDYwLjRsNTAtMTQ5LjljNS42LTE2LjgtMy41LTM0LjktMjAuMi00MC41cy0zNC45IDMuNS00MC41IDIwLjJMMzkyLjkgMjI0SDMyOUwyODcgNTYuMkMyODMuNSA0MiAyNzAuNyAzMiAyNTYgMzJzLTI3LjUgMTAtMzEgMjQuMkwxODMgMjI0aC02NEw2Mi40IDUzLjl6bTc4IDIzNC4xSDE2N2wtMTEuNCA0NS42TDE0MC40IDI4OHpNMjQ5IDIyNGw3LTI4LjEgNyAyOC4xSDI0OXptOTYgNjRoMjYuNmwtMTUuMiA0NS42TDM0NSAyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDk2YzAtNTMgNDMtOTYgOTYtOTZoMzguNEM0MzkuOSAwIDQ4MCA0MC4xIDQ4MCA4OS42VjE3NnYxNlYzNzZjMCA3NS4xLTYwLjkgMTM2LTEzNiAxMzZzLTEzNi02MC45LTEzNi0xMzZWMjk2YzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwVjQ2NGMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OFYyOTZjMC03NS4xIDYwLjktMTM2IDEzNi0xMzZzMTM2IDYwLjkgMTM2IDEzNnY4MGMwIDIyLjEgMTcuOSA0MCA0MCA0MHM0MC0xNy45IDQwLTQwVjE5MkgzNTJjLTUzIDAtOTYtNDMtOTYtOTZ6bTE0NC04YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdyZW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzIwYzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwYzAtMTUuMy0yLjItMzAuMS02LjItNDQuMmMtMy4xLTEwLjgtMTYuNC0xMy4yLTI0LjMtNS4zbC03Ni44IDc2LjhjLTMgMy03LjEgNC43LTExLjMgNC43SDMzNmMtOC44IDAtMTYtNy4yLTE2LTE2VjExOC42YzAtNC4yIDEuNy04LjMgNC43LTExLjNsNzYuOC03Ni44YzcuOS03LjkgNS40LTIxLjItNS4zLTI0LjNDMzgyLjEgMi4yIDM2Ny4zIDAgMzUyIDBDMjYzLjYgMCAxOTIgNzEuNiAxOTIgMTYwYzAgMTkuMSAzLjQgMzcuNSA5LjUgNTQuNUwxOS45IDM5Ni4xQzcuMiA0MDguOCAwIDQyNi4xIDAgNDQ0LjFDMCA0ODEuNiAzMC40IDUxMiA2Ny45IDUxMmMxOCAwIDM1LjMtNy4yIDQ4LTE5LjlMMjk3LjUgMzEwLjVjMTcgNi4yIDM1LjQgOS41IDU0LjUgOS41ek04MCA0MDhhMjQgMjQgMCAxIDEgMCA0OCAyNCAyNCAwIDEgMSAwLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYUmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJINDgwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyVjQxNmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMkgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMlY5NkMxNC4zIDk2IDAgODEuNyAwIDY0ek0yNTYgOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMkgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoODB2NDhIMTI4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2SDI0MHY3MC42TDE4OS4xIDMwN2MtNS4yLTItMTAuNi0zLTE2LjItM2gtMi4xYy0yMy42IDAtNDIuOCAxOS4yLTQyLjggNDIuOGMwIDkuNiAzLjIgMTguOSA5LjEgMjYuNGwxOC4yIDIzLjJjOS43IDEyLjQgMjQuNiAxOS42IDQwLjMgMTkuNkgzMTYuNGMxNS43IDAgMzAuNi03LjIgNDAuMy0xOS42bDE4LjItMjMuMmM1LjktNy41IDkuMS0xNi44IDkuMS0yNi40YzAtMjMuNi0xOS4yLTQyLjgtNDIuOC00Mi44SDMzOWMtNS41IDAtMTEgMS0xNi4yIDNMMjcyIDMyNi42VjI1NkgzODRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZIMjcyVjE3Nmg4MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyNzJWMTEyYzAtOC44LTcuMi0xNi0xNi0xNnpNMjA4IDM1MmExNiAxNiAwIDEgMSAwIDMyIDE2IDE2IDAgMSAxIDAtMzJ6bTgwIDE2YTE2IDE2IDAgMSAxIDMyIDAgMTYgMTYgMCAxIDEgLTMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc2LjYgODQuNWMxMS4zLTEzLjYgOS41LTMzLjgtNC4xLTQ1LjFzLTMzLjgtOS41LTQ1LjEgNC4xTDE5MiAyMDYgNTYuNiA0My41QzQ1LjMgMjkuOSAyNS4xIDI4LjEgMTEuNSAzOS40Uy0zLjkgNzAuOSA3LjQgODQuNUwxNTAuMyAyNTYgNy40IDQyNy41Yy0xMS4zIDEzLjYtOS41IDMzLjggNC4xIDQ1LjFzMzMuOCA5LjUgNDUuMS00LjFMMTkyIDMwNiAzMjcuNCA0NjguNWMxMS4zIDEzLjYgMzEuNSAxNS40IDQ1LjEgNC4xczE1LjQtMzEuNSA0LjEtNDUuMUwyMzMuNyAyNTYgMzc2LjYgODQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQyLjYgMTUwLjZjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMTkyIDIxMC43IDg2LjYgMTA1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zTDE0Ni43IDI1NiA0MS40IDM2MS40Yy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE5MiAzMDEuMyAyOTcuNCA0MDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zTDIzNy4zIDI1NiAzNDIuNiAxNTAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWG1hcmtzTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NFMxNC4zIDk2IDMyIDk2SDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgzMnptMCAzODRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJINjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDMyek03IDE2N2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNTUgNTVMNyAzMTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1TDQxIDE2N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6TTI2NSAxNjdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNTUgNTUtNTUgNTVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45czI0LjYgOS40IDMzLjkgMGw1NS01NSA1NSA1NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTU1LTU1IDU1LTU1YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTU1IDU1LTU1LTU1ek00NTUgMTY3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw1NSA1NS01NSA1NWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU1LTU1IDU1IDU1YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWwtNTUtNTUgNTUtNTVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlzLTI0LjYtOS40LTMzLjkgMGwtNTUgNTUtNTUtNTVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4IDQ1LjRDNDcuOCAzMSAyNy44IDI3LjcgMTMuNCAzOFMtNC4zIDY4LjIgNiA4Mi42TDE2MCAyOTguM1Y0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYyOTguM0wzNzggODIuNmMxMC4zLTE0LjQgNi45LTM0LjQtNy40LTQ0LjZTMzM2LjIgMzEgMzI2IDQ1LjRMMTkyIDIzMi45IDU4IDQ1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVllblNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTguNiA0Ni4yQzQ4LjggMzEuNSAyOSAyNy42IDE0LjMgMzcuNFMtNC40IDY3IDUuNCA4MS43TDEwMC4yIDIyNEg0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg4MHYzMkg0OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMmg4MHY2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjM4NGg4MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMkgxOTJWMjg4aDgwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMySDIxOS44TDMxNC42IDgxLjdjOS44LTE0LjcgNS44LTM0LjYtOC45LTQ0LjRzLTM0LjYtNS44LTQ0LjQgOC45TDE2MCAxOTguMyA1OC42IDQ2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlpbllhbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDY0YzUzIDAgOTYgNDMgOTYgOTZzLTQzIDk2LTk2IDk2cy05NiA0My05NiA5NnM0MyA5NiA5NiA5NkMxNTAgNDQ4IDY0IDM2MiA2NCAyNTZTMTUwIDY0IDI1NiA2NHptMCA0NDhBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyem0zMi0zNTJhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHpNMjI0IDM1MmEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFaIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjRDMCA0Ni4zIDE0LjMgMzIgMzIgMzJIMzUyYzEyLjQgMCAyMy43IDcuMiAyOSAxOC40czMuNiAyNC41LTQuNCAzNC4xTDEwMC4zIDQxNkgzNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJIMzJjLTEyLjQgMC0yMy43LTcuMi0yOS0xOC40cy0zLjYtMjQuNSA0LjQtMzQuMUwyODMuNyA5NkgzMkMxNC4zIDk2IDAgODEuNyAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgNDhjOC44IDAgMTYgNy4yIDE2IDE2VjQ0OGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZIMzg0ek05NiAwQzYwLjcgMCAzMiAyOC43IDMyIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIOTZ6TTI0MCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCA4LjggNy4yIDE2IDE2IDE2SDMzNmM4LjggMCAxNi03LjIgMTYtMTZjMC00NC4yLTM1LjgtODAtODAtODBIMjA4ek01MTIgODBjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlY4MHpNNDk2IDE5MmMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnptMTYgMTQ0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2VjQxNmMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNlY5NmMwLTguOCA3LjItMTYgMTYtMTZINTEyek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg1MTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6TTIwOCAyNTZhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAxIDAgMCAxMjh6bS0zMiAzMmMtNDQuMiAwLTgwIDM1LjgtODAgODBjMCA4LjggNy4yIDE2IDE2IDE2SDMwNGM4LjggMCAxNi03LjIgMTYtMTZjMC00NC4yLTM1LjgtODAtODAtODBIMTc2ek0zNzYgMTQ0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDM3NnptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0JlbGxTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDU0Mi42IDQwMGMyLjctNy44IDEuMy0xNi41LTMuOS0yM2wtMTQuOS0xOC42QzQ5NS41IDMyMi45IDQ4MCAyNzguOCA0ODAgMjMzLjRWMjA4YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMyVjUxLjJjLTQyLjYgOC42LTc5IDM0LjItMTAyIDY5LjNMMzguOCA1LjF6TTIyNCAxNTAuM0MyNDMuNiAxMTcuNyAyNzkuMyA5NiAzMjAgOTZjNjEuOSAwIDExMiA1MC4xIDExMiAxMTJ2MjUuNGMwIDMyLjcgNi40IDY0LjggMTguNyA5NC41TDIyNCAxNTAuM3pNNDA2LjIgNDE2bC02MC45LTQ4SDE2OC4zYzIxLjItMzIuOCAzNC40LTcwLjMgMzguNC0xMDkuMUwxNjAgMjIyLjF2MTEuNGMwIDQ1LjQtMTUuNSA4OS41LTQzLjggMTI0LjlMMTAxLjMgMzc3Yy01LjggNy4yLTYuOSAxNy4xLTIuOSAyNS40czEyLjQgMTMuNiAyMS42IDEzLjZINDA2LjJ6TTM4NCA0NDhIMzIwIDI1NmMwIDE3IDYuNyAzMy4zIDE4LjcgNDUuM3MyOC4zIDE4LjcgNDUuMyAxOC43czMzLjMtNi43IDQ1LjMtMTguN3MxOC43LTI4LjMgMTguNy00NS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdCZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY1MS4yQzExOSA2NiA2NCAxMzAuNiA2NCAyMDh2MjUuNGMwIDQ1LjQtMTUuNSA4OS41LTQzLjggMTI0LjlMNS4zIDM3N2MtNS44IDcuMi02LjkgMTcuMS0yLjkgMjUuNFMxNC44IDQxNiAyNCA0MTZINDI0YzkuMiAwIDE3LjYtNS4zIDIxLjYtMTMuNnMyLjktMTguMi0yLjktMjUuNGwtMTQuOS0xOC42QzM5OS41IDMyMi45IDM4NCAyNzguOCAzODQgMjMzLjRWMjA4YzAtNzcuNC01NS0xNDItMTI4LTE1Ni44VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0wIDk2YzYxLjkgMCAxMTIgNTAuMSAxMTIgMTEydjI1LjRjMCA0Ny45IDEzLjkgOTQuNiAzOS43IDEzNC42SDcyLjNDOTguMSAzMjggMTEyIDI4MS4zIDExMiAyMzMuNFYyMDhjMC02MS45IDUwLjEtMTEyIDExMi0xMTJ6bTY0IDM1MkgyMjQgMTYwYzAgMTcgNi43IDMzLjMgMTguNyA0NS4zczI4LjMgMTguNyA0NS4zIDE4LjdzMzMuMy02LjcgNDUuMy0xOC43czE4LjctMjguMyAxOC43LTQ1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDhDMCAyMS41IDIxLjUgMCA0OCAwbDAgNDhWNDQxLjRsMTMwLjEtOTIuOWM4LjMtNiAxOS42LTYgMjcuOSAwTDMzNiA0NDEuNFY0OEg0OFYwSDMzNmMyNi41IDAgNDggMjEuNSA0OCA0OFY0ODhjMCA5LTUgMTcuMi0xMyAyMS4zcy0xNy42IDMuNC0yNC45LTEuOEwxOTIgMzk3LjUgMzcuOSA1MDcuNWMtNy4zIDUuMi0xNi45IDUuOS0yNC45IDEuOFMwIDQ5NyAwIDQ4OFY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQnVpbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNlY0NDhjMCA4LjggNy4yIDE2IDE2IDE2aDgwVjQwMGMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djY0aDgwYzguOCAwIDE2LTcuMiAxNi0xNlY2NGMwLTguOC03LjItMTYtMTYtMTZINjR6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDMyMGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0em04OCA0MGMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djQ4YzAgOC44LTcuMiAxNi0xNiAxNkgxMDRjLTguOCAwLTE2LTcuMi0xNi0xNlYxMDR6TTIzMiA4OGg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDIzMmMtOC44IDAtMTYtNy4yLTE2LTE2VjEwNGMwLTguOCA3LjItMTYgMTYtMTZ6TTg4IDIzMmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djQ4YzAgOC44LTcuMiAxNi0xNiAxNkgxMDRjLTguOCAwLTE2LTcuMi0xNi0xNlYyMzJ6bTE0NC0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDIzMmMtOC44IDAtMTYtNy4yLTE2LTE2VjIzMmMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNjRIMjk2VjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRWNjRoNDBjMzUuMyAwIDY0IDI4LjcgNjQgNjR2MTYgNDhWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFYxOTIgMTQ0IDEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGg0MFYyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpNNDAwIDE5Mkg0OFY0NDhjMCA4LjggNy4yIDE2IDE2IDE2SDM4NGM4LjggMCAxNi03LjIgMTYtMTZWMTkyek0zMjkgMjk3TDIxNyA0MDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC02NC02NGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlzMjQuNi05LjQgMzMuOSAwbDQ3IDQ3IDk1LTk1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJEYXlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHYxNiA0OFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MiAxNDQgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDM0NFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEgxNTJWMjR6TTQ4IDE5Mmg4MHY1Nkg0OFYxOTJ6bTAgMTA0aDgwdjY0SDQ4VjI5NnptMTI4IDBoOTZ2NjRIMTc2VjI5NnptMTQ0IDBoODB2NjRIMzIwVjI5NnptODAtNDhIMzIwVjE5Mmg4MHY1NnptMCAxNjB2NDBjMCA4LjgtNy4yIDE2LTE2IDE2SDMyMFY0MDhoODB6bS0xMjggMHY1NkgxNzZWNDA4aDk2em0tMTQ0IDB2NTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNlY0MDhoODB6TTI3MiAyNDhIMTc2VjE5Mmg5NnY1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY2NEgyOTZWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNFY2NGg0MGMzNS4zIDAgNjQgMjguNyA2NCA2NHYxNiA0OFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MiAxNDQgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0aDQwVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MDAgMTkySDQ4VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNlYxOTJ6TTI5NiAzNTJIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0SDI5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHYxNiA0OFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MiAxNDQgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDM0NFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEgxNTJWMjR6TTQ4IDE5Mkg0MDBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE5MnptMTc2IDQwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OEgxNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNDh2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNTJoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjQ4VjI1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FsZW5kYXJYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMxMy4zIDAgMjQgMTAuNyAyNCAyNFY2NEgyOTZWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNFY2NGg0MGMzNS4zIDAgNjQgMjguNyA2NCA2NHYxNiA0OFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjE5MiAxNDQgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0aDQwVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0ek00MDAgMTkySDQ4VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNlYxOTJ6bS05NSA4OWwtNDcgNDcgNDcgNDdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtNDctNDctNDcgNDdjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsNDctNDctNDctNDdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0NyA0Ny00N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMHM5LjQgMjQuNiAwIDMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MiAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEg2NEMyOC43IDY0IDAgOTIuNyAwIDEyOHYxNiA0OFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE5MiAxNDQgMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0SDM0NFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY2NEgxNTJWMjR6TTQ4IDE5Mkg0MDBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRWNDA4YzAgMTMuMyAxMC43IDI0IDI0IDI0SDQ4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEg3MmMtMzkuOCAwLTcyLTMyLjItNzItNzJWNTZDMCA0Mi43IDEwLjcgMzIgMjQgMzJ6TTEyOCAxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjRsMjA4IDBjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRsLTIwOCAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHptMjQgNzJIMjk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHptMCA5Nkg0MjRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMTUyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc0Jpc2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQgMEM5MC43IDAgODAgMTAuNyA4MCAyNGMwIDExLjIgNy42IDIwLjYgMTggMjMuMmMtNy44IDgtMTYuMSAxNy0yNC40IDI3QzM4LjIgMTE2LjcgMCAxNzguOCAwIDI1MC45YzAgNDQuOCAyNC42IDcyLjIgNDggODcuOFYzNTJIOTZWMzI1YzAtOS01LTE3LjItMTMtMjEuM2MtMTgtOS4zLTM1LTI0LjctMzUtNTIuN2MwLTU1LjUgMjkuOC0xMDYuOCA2Mi40LTE0NS45YzE2LTE5LjIgMzIuMS0zNC44IDQ0LjItNDUuNWMxLjktMS43IDMuNy0zLjIgNS4zLTQuNmMxLjcgMS40IDMuNCAzIDUuMyA0LjZjMTIuMSAxMC43IDI4LjIgMjYuMyA0NC4yIDQ1LjVjNS4zIDYuMyAxMC41IDEzIDE1LjUgMjBMMTU5IDE5MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDU3LjgtNTcuOGMxMi44IDI1LjkgMjEuMiA1NC4zIDIxLjIgODMuOGMwIDI4LTE3IDQzLjQtMzUgNTIuN2MtOCA0LjEtMTMgMTIuMy0xMyAyMS4zdjI3aDQ4VjMzOC43YzIzLjQtMTUuNiA0OC00Mi45IDQ4LTg3LjhjMC03Mi4xLTM4LjItMTM0LjItNzMuNi0xNzYuN2MtOC4zLTkuOS0xNi42LTE5LTI0LjQtMjdjMTAuMy0yLjcgMTgtMTIuMSAxOC0yMy4yYzAtMTMuMy0xMC43LTI0LTI0LTI0SDE2MCAxMDR6TTUyLjcgNDY0bDE2LjYtMzJIMjUwLjhsMTYuNiAzMkg1Mi43em0yMDcuOS04MEg1OS41Yy0xMiAwLTIyLjkgNi43LTI4LjQgMTcuM0w0LjYgNDUyLjVjLTMgNS44LTQuNiAxMi4yLTQuNiAxOC43QzAgNDkzLjggMTguMiA1MTIgNDAuOCA1MTJIMjc5LjJjMjIuNSAwIDQwLjgtMTguMiA0MC44LTQwLjhjMC02LjUtMS42LTEyLjktNC42LTE4LjdsLTI2LjUtNTEuMmMtNS41LTEwLjYtMTYuNS0xNy4zLTI4LjQtMTcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hlc3NLaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCAyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY1NkgxNjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMzJ2NDBINTkuNkMyNi43IDE0NCAwIDE3MC43IDAgMjAzLjZjMCA4LjIgMS43IDE2LjMgNC45IDIzLjhMNTkuMSAzNTJoNTIuM0w0OSAyMDguMmMtLjYtMS41LTEtMy0xLTQuNmMwLTYuNCA1LjItMTEuNiAxMS42LTExLjZIMjI0IDM4OC40YzYuNCAwIDExLjYgNS4yIDExLjYgMTEuNmMwIDEuNi0uMyAzLjItMSA0LjZMMzM2LjUgMzUyaDUyLjNsNTQuMi0xMjQuNmMzLjMtNy41IDQuOS0xNS42IDQuOS0yMy44YzAtMzIuOS0yNi43LTU5LjYtNTkuNi01OS42SDI0OFYxMDRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjQ4VjI0ek0xMDEuMiA0MzJIMzQ2LjhsMTYuNiAzMkg4NC43bDE2LjYtMzJ6bTI4My43LTMwLjdjLTUuNS0xMC42LTE2LjUtMTcuMy0yOC40LTE3LjNIOTEuNWMtMTIgMC0yMi45IDYuNy0yOC40IDE3LjNMMzYuNiA0NTIuNWMtMyA1LjgtNC42IDEyLjItNC42IDE4LjdDMzIgNDkzLjggNTAuMiA1MTIgNzIuOCA1MTJIMzc1LjJjMjIuNSAwIDQwLjgtMTguMiA0MC44LTQwLjhjMC02LjUtMS42LTEyLjktNC42LTE4LjdsLTI2LjUtNTEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hlc3NLbmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI2LjYgNDhIMTE3LjNsMTcuMSAxMi44YzYgNC41IDkuNiAxMS42IDkuNiAxOS4ycy0zLjYgMTQuNy05LjYgMTkuMmwtNi41IDQuOWMtMTAgNy41LTE2IDE5LjMtMTYgMzEuOWwtLjMgOTFjMCAxMC4yIDQuOSAxOS45IDEzLjIgMjUuOGwxLjkgMS4zYzkuOSA3LjEgMjMuMyA3IDMzLjItLjFsNDkuOS0zNi4zYzEwLjctNy44IDI1LjctNS40IDMzLjUgNS4zczUuNCAyNS43LTUuMyAzMy41bC00OS45IDM2LjMtNTMuOCAzOS4xYy03LjMgNS4zLTEzIDEyLjItMTYuOSAyMC4xSDY2LjhjNS4zLTIyLjEgMTcuOC00MS45IDM1LjktNTYuM2MtMS4zLS44LTIuNi0xLjctMy44LTIuNkw5NyAyOTEuOGMtMjEtMTUtMzMuNC0zOS4yLTMzLjMtNjVsLjMtOTFjLjEtMTkuOCA2LjctMzguNyAxOC42LTUzLjlsLS40LS4zQzcwLjcgNzMgNjQgNTkuNiA2NCA0NS4zQzY0IDIwLjMgODQuMyAwIDEwOS4zIDBIMjI2LjZDMzMxLjIgMCA0MTYgODQuOCA0MTYgMTg5LjRjMCAxMS4xLTEgMjIuMi0yLjkgMzMuMkwzOTAuMSAzNTJIMzQxLjNsMjQuNS0xMzcuOGMxLjUtOC4yIDIuMi0xNi41IDIuMi0yNC44QzM2OCAxMTEuMyAzMDQuNyA0OCAyMjYuNiA0OHpNODUuMiA0MzJMNjguNyA0NjRIMzc5LjNsLTE2LjYtMzJIODUuMnptMzE1LjctMzAuN2wyNi41IDUxLjJjMyA1LjggNC42IDEyLjIgNC42IDE4LjdjMCAyMi41LTE4LjIgNDAuOC00MC44IDQwLjhINTYuOEMzNC4yIDUxMiAxNiA0OTMuOCAxNiA0NzEuMmMwLTYuNSAxLjYtMTIuOSA0LjYtMTguN2wyNi41LTUxLjJDNTIuNSAzOTAuNyA2My41IDM4NCA3NS41IDM4NGgyOTdjMTIgMCAyMi45IDYuNyAyOC40IDE3LjN6TTE3MiAxMjhhMjAgMjAgMCAxIDEgMCA0MCAyMCAyMCAwIDEgMSAwLTQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc1Bhd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyIDE1MkE3MiA3MiAwIDEgMCA4OCAxNTJhNzIgNzIgMCAxIDAgMTQ0IDB6bTI0IDEyMEgyNDMuNGwxMC43IDgwSDIwNS43TDE5NSAyNzJIMTYwIDEyNWwtMTAuNyA4MEg2NS45bDEwLjctODBINjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjRjLTE1LjEtMjAuMS0yNC00NS0yNC03MkM0MCA4NS43IDkzLjcgMzIgMTYwIDMyczEyMCA1My43IDEyMCAxMjBjMCAyNy04LjkgNTEuOS0yNCA3MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNHpNNTIuNyA0NjRIMjY3LjNsLTE2LjYtMzJINjkuMkw1Mi43IDQ2NHptMjA3LjktODBjMTIgMCAyMi45IDYuNyAyOC40IDE3LjNsMjYuNSA1MS4yYzMgNS44IDQuNiAxMi4yIDQuNiAxOC43YzAgMjIuNS0xOC4yIDQwLjgtNDAuOCA0MC44SDQwLjhDMTguMiA1MTIgMCA0OTMuOCAwIDQ3MS4yYzAtNi41IDEuNi0xMi45IDQuNi0xOC43bDI2LjUtNTEuMkMzNi41IDM5MC43IDQ3LjUgMzg0IDU5LjUgMzg0aDIwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hlc3NRdWVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOTZhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2em0tOTUuMi04Yy0xOC4xIDAtMzEuMyAxMi44LTM1LjYgMjYuOWMtOCAyNi4yLTMyLjQgNDUuMi02MS4yIDQ1LjJjLTEwIDAtMTkuNC0yLjMtMjcuNy02LjNjLTcuNi0zLjctMTYuNy0zLjMtMjQgMS4yQy43IDE2Mi4xLTMuMSAxNzcuMSAzLjcgMTg4LjlMOTcuNiAzNTJIMTUzbC04My0xNDQuMWM0MC41LTIuMiA3NS4zLTI1LjkgOTMuMS01OS44YzIyIDI2LjggNTUuNCA0My45IDkyLjggNDMuOXM3MC44LTE3LjEgOTIuOC00My45YzE3LjggMzQgNTIuNiA1Ny43IDkzLjEgNTkuOEwzNTkgMzUyaDU1LjRsOTMuOS0xNjMuMWM2LjgtMTEuNyAzLTI2LjctOC42LTMzLjhjLTcuMy00LjUtMTYuNC00LjktMjQtMS4yYy04LjQgNC0xNy43IDYuMy0yNy43IDYuM2MtMjguOCAwLTUzLjItMTktNjEuMi00NS4yQzM4Mi41IDEwMC44IDM2OS4zIDg4IDM1MS4yIDg4Yy0xNC41IDAtMjYuMyA4LjUtMzIuNCAxOS4zYy0xMi40IDIyLTM1LjkgMzYuNy02Mi44IDM2LjdzLTUwLjQtMTQuOC02Mi44LTM2LjdDMTg3LjEgOTYuNSAxNzUuNCA4OCAxNjAuOCA4OHpNMTMzLjIgNDMySDM3OC44bDE2LjYgMzJIMTE2LjdsMTYuNi0zMnptMjgzLjctMzAuN2MtNS41LTEwLjYtMTYuNS0xNy4zLTI4LjQtMTcuM2gtMjY1Yy0xMiAwLTIyLjkgNi43LTI4LjQgMTcuM0w2OC42IDQ1Mi41Yy0zIDUuOC00LjYgMTIuMi00LjYgMTguN2MwIDIyLjUgMTguMiA0MC44IDQwLjggNDAuOEg0MDcuMmMyMi41IDAgNDAuOC0xOC4yIDQwLjgtNDAuOGMwLTYuNS0xLjYtMTIuOS00LjYtMTguN2wtMjYuNS01MS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVzc1Jvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODAgODBWMTkyYzAgMi41IDEuMiA0LjkgMy4yIDYuNGw1MS4yIDM4LjRjNi44IDUuMSAxMC40IDEzLjQgOS41IDIxLjlMMTMzLjUgMzUySDg1LjJsOS40LTg1TDU0LjQgMjM2LjhDNDAuMyAyMjYuMiAzMiAyMDkuNiAzMiAxOTJWNzJjMC0yMi4xIDE3LjktNDAgNDAtNDBIMzc2YzIyLjEgMCA0MCAxNy45IDQwIDQwVjE5MmMwIDE3LjYtOC4zIDM0LjItMjIuNCA0NC44TDM1My40IDI2N2w5LjQgODVIMzE0LjVsLTEwLjQtOTMuM2MtLjktOC40IDIuNy0xNi44IDkuNS0yMS45bDUxLjItMzguNGMyLTEuNSAzLjItMy45IDMuMi02LjRWODBIMzA0djI0YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjgwSDE5MnYyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY4MEg4MHptNC43IDM4NEgzNjMuM2wtMTYuNi0zMkgxMDEuMkw4NC43IDQ2NHptMjcxLjktODBjMTIgMCAyMi45IDYuNyAyOC40IDE3LjNsMjYuNSA1MS4yYzMgNS44IDQuNiAxMi4yIDQuNiAxOC43YzAgMjIuNS0xOC4yIDQwLjgtNDAuOCA0MC44SDcyLjhDNTAuMiA1MTIgMzIgNDkzLjggMzIgNDcxLjJjMC02LjUgMS42LTEyLjkgNC42LTE4LjdsMjYuNS01MS4yQzY4LjUgMzkwLjcgNzkuNSAzODQgOTEuNSAzODRoMjY1ek0yMDggMjg4Yy04LjggMC0xNi03LjItMTYtMTZWMjI0YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzJ2NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0zNjkgMjA5YzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBsLTExMSAxMTEtNDctNDdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwcy05LjQgMjQuNiAwIDMzLjlsNjQgNjRjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzY5IDIwOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlRG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYtOTZhOTYgOTYgMCAxIDEgMCAxOTIgOTYgOTYgMCAxIDEgMC0xOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ2NGEyMDggMjA4IDAgMSAxIDAtNDE2IDIwOCAyMDggMCAxIDEgMCA0MTZ6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMzc2LjkgMjk0LjZjNC41LTQuMiA3LjEtMTAuMSA3LjEtMTYuM2MwLTEyLjMtMTAtMjIuMy0yMi4zLTIyLjNIMzA0VjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMmwtMzIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZIMTUwLjNDMTM4IDI1NiAxMjggMjY2IDEyOCAyNzguM2MwIDYuMiAyLjYgMTIuMSA3LjEgMTYuM2wxMDcuMSA5OS45YzMuOCAzLjUgOC43IDUuNSAxMy44IDUuNXMxMC4xLTIgMTMuOC01LjVsMTA3LjEtOTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAyNTZhMjA4IDIwOCAwIDEgMSA0MTYgMEEyMDggMjA4IDAgMSAxIDQ4IDI1NnptNDY0IDBBMjU2IDI1NiAwIDEgMCAwIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwek0yMTcuNCAzNzYuOWM0LjIgNC41IDEwLjEgNy4xIDE2LjMgNy4xYzEyLjMgMCAyMi4zLTEwIDIyLjMtMjIuM1YzMDRoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQwYzAtMTcuNy0xNC4zLTMyLTMyLTMySDI1NlYxNTAuM2MwLTEyLjMtMTAtMjIuMy0yMi4zLTIyLjNjLTYuMiAwLTEyLjEgMi42LTE2LjMgNy4xTDExNy41IDI0Mi4yYy0zLjUgMy44LTUuNSA4LjctNS41IDEzLjhzMiAxMC4xIDUuNSAxMy44bDk5LjkgMTA3LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVBhdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yMjQtNzJWMzI4YzAgMTMuMy0xMC43IDI0LTI0IDI0cy0yNC0xMC43LTI0LTI0VjE4NGMwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0em0xMTIgMFYzMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMTg0YzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6TTE4OC4zIDE0Ny4xYzcuNi00LjIgMTYuOC00LjEgMjQuMyAuNWwxNDQgODhjNy4xIDQuNCAxMS41IDEyLjEgMTEuNSAyMC41cy00LjQgMTYuMS0xMS41IDIwLjVsLTE0NCA4OGMtNy40IDQuNS0xNi43IDQuNy0yNC4zIC41cy0xMi4zLTEyLjItMTIuMy0yMC45VjE2OGMwLTguNyA0LjctMTYuNyAxMi4zLTIwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVF1ZXN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNjkuOC05MC43YzcuOS0yMi4zIDI5LjEtMzcuMyA1Mi44LTM3LjNoNTguM2MzNC45IDAgNjMuMSAyOC4zIDYzLjEgNjMuMWMwIDIyLjYtMTIuMSA0My41LTMxLjcgNTQuOEwyODAgMjY0LjRjLS4yIDEzLTEwLjkgMjMuNi0yNCAyMy42Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYyNTAuNWMwLTguNiA0LjYtMTYuNSAxMi4xLTIwLjhsNDQuMy0yNS40YzQuNy0yLjcgNy42LTcuNyA3LjYtMTMuMWMwLTguNC02LjgtMTUuMS0xNS4xLTE1LjFIMjIyLjZjLTMuNCAwLTYuNCAyLjEtNy41IDUuM2wtLjQgMS4yYy00LjQgMTIuNS0xOC4yIDE5LTMwLjYgMTQuNnMtMTktMTguMi0xNC42LTMwLjZsLjQtMS4yek0yMjQgMzUyYTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMSA0OCAyNTZhMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yOTQuNiAxMzUuMWMtNC4yLTQuNS0xMC4xLTcuMS0xNi4zLTcuMUMyNjYgMTI4IDI1NiAxMzggMjU2IDE1MC4zVjIwOEgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDk2djU3LjdjMCAxMi4zIDEwIDIyLjMgMjIuMyAyMi4zYzYuMiAwIDEyLjEtMi42IDE2LjMtNy4xbDk5LjktMTA3LjFjMy41LTMuOCA1LjUtOC43IDUuNS0xMy44cy0yLTEwLjEtNS41LTEzLjhMMjk0LjYgMTM1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZVN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTE5Mi05NkgzMjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzIwYzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTkyYzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTEzNS4xIDIxNy40Yy00LjUgNC4yLTcuMSAxMC4xLTcuMSAxNi4zYzAgMTIuMyAxMCAyMi4zIDIyLjMgMjIuM0gyMDh2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2aDU3LjdjMTIuMyAwIDIyLjMtMTAgMjIuMy0yMi4zYzAtNi4yLTIuNi0xMi4xLTcuMS0xNi4zTDI2OS44IDExNy41Yy0zLjgtMy41LTguNy01LjUtMTMuOC01LjVzLTEwLjEgMi0xMy44IDUuNUwxMzUuMSAyMTcuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2lyY2xlVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDYuNSAzOTkuNkMzODcuNCAzNTIuOSAzNDEuNSAzMjAgMjg4IDMyMEgyMjRjLTUzLjUgMC05OS40IDMyLjktMTE4LjUgNzkuNkM2OS45IDM2Mi4yIDQ4IDMxMS43IDQ4IDI1NkM0OCAxNDEuMSAxNDEuMSA0OCAyNTYgNDhzMjA4IDkzLjEgMjA4IDIwOGMwIDU1LjctMjEuOSAxMDYuMi01Ny41IDE0My42em0tNDAuMSAzMi43QzMzNC40IDQ1Mi40IDI5Ni42IDQ2NCAyNTYgNDY0cy03OC40LTExLjYtMTEwLjUtMzEuN2M3LjMtMzYuNyAzOS43LTY0LjMgNzguNS02NC4zaDY0YzM4LjggMCA3MS4yIDI3LjYgNzguNSA2NC4zek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptMC0yNzJhNDAgNDAgMCAxIDEgMC04MCA0MCA0MCAwIDEgMSAwIDgwem0tODgtNDBhODggODggMCAxIDAgMTc2IDAgODggODggMCAxIDAgLTE3NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGVYbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhhMjA4IDIwOCAwIDEgMSAwIDQxNiAyMDggMjA4IDAgMSAxIDAtNDE2em0wIDQ2NEEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE3NSAxNzVjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDQ3IDQ3LTQ3IDQ3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOXMyNC42IDkuNCAzMy45IDBsNDctNDcgNDcgNDdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC00Ny00NyA0Ny00N2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwbC00NyA0Ny00Ny00N2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2xpcGJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MCA2NGg0MGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOEMwIDkyLjcgMjguNyA2NCA2NCA2NGg0MCA5LjZDMTIxIDI3LjUgMTUzLjMgMCAxOTIgMHM3MSAyNy41IDc4LjQgNjRIMjgwek02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNlY0NDhjMCA4LjggNy4yIDE2IDE2IDE2SDMyMGM4LjggMCAxNi03LjIgMTYtMTZWMTI4YzAtOC44LTcuMi0xNi0xNi0xNkgzMDR2MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMTkyIDEwNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTEySDY0em0xMjgtOGEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMSA0OCAyNTZhMjA4IDIwOCAwIDEgMSA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMCA1MTIgMEEyNTYgMjU2IDAgMSAwIDAgMjU2ek0yMzIgMTIwVjI1NmMwIDggNCAxNS41IDEwLjcgMjBsOTYgNjRjMTEgNy40IDI1LjkgNC40IDMzLjMtNi43czQuNC0yNS45LTYuNy0zMy4zTDI4MCAyNDMuMlYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NEgyODhjOC44IDAgMTYtNy4yIDE2LTE2VjM4NGg0OHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMjI0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDY0djQ4SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNnpNMjI0IDMwNEg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtOC44LTcuMi0xNi0xNi0xNkgyMjRjLTguOCAwLTE2IDcuMi0xNiAxNlYyODhjMCA4LjggNy4yIDE2IDE2IDE2em0tNjQtMTZWNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjI4OGMwIDM1LjMtMjguNyA2NC02NCA2NEgyMjRjLTM1LjMgMC02NC0yOC43LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDbG9zZWRDYXB0aW9uaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA4MGM4LjggMCAxNiA3LjIgMTYgMTZWNDE2YzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2Vjk2YzAtOC44IDcuMi0xNiAxNi0xNkg1MTJ6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjAwIDIwOGMxNC4yIDAgMjcgNi4xIDM1LjggMTZjOC44IDkuOSAyNCAxMC43IDMzLjkgMS45czEwLjctMjQgMS45LTMzLjljLTE3LjUtMTkuNi00My4xLTMyLTcxLjUtMzJjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTZjMjguNCAwIDU0LTEyLjQgNzEuNS0zMmM4LjgtOS45IDgtMjUtMS45LTMzLjlzLTI1LTgtMzMuOSAxLjljLTguOCA5LjktMjEuNiAxNi0zNS44IDE2Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4em0xNDQgNDhjMC0yNi41IDIxLjUtNDggNDgtNDhjMTQuMiAwIDI3IDYuMSAzNS44IDE2YzguOCA5LjkgMjQgMTAuNyAzMy45IDEuOXMxMC43LTI0IDEuOS0zMy45Yy0xNy41LTE5LjYtNDMuMS0zMi03MS41LTMyYy01MyAwLTk2IDQzLTk2IDk2czQzIDk2IDk2IDk2YzI4LjQgMCA1NC0xMi40IDcxLjUtMzJjOC44LTkuOSA4LTI1LTEuOS0zMy45cy0yNS04LTMzLjkgMS45Yy04LjggOS45LTIxLjYgMTYtMzUuOCAxNmMtMjYuNSAwLTQ4LTIxLjUtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OC4yIDM4NC45Yy0xNS01LjQtMzEuNy0zLjEtNDQuNiA2LjRjLTguMiA2LTIyLjMgMTQuOC0zOS40IDIyLjdjNS42LTE0LjcgOS45LTMxLjMgMTEuMy00OS40YzEtMTIuOS0zLjMtMjUuNy0xMS44LTM1LjVDNjAuNCAzMDIuOCA0OCAyNzIgNDggMjQwYzAtNzkuNSA4My4zLTE2MCAyMDgtMTYwczIwOCA4MC41IDIwOCAxNjBzLTgzLjMgMTYwLTIwOCAxNjBjLTMxLjYgMC02MS4zLTUuNS04Ny44LTE1LjF6TTI2LjMgNDIzLjhjLTEuNiAyLjctMy4zIDUuNC01LjEgOC4xbC0uMyAuNWMtMS42IDIuMy0zLjIgNC42LTQuOCA2LjljLTMuNSA0LjctNy4zIDkuMy0xMS4zIDEzLjVjLTQuNiA0LjYtNS45IDExLjQtMy40IDE3LjRjMi41IDYgOC4zIDkuOSAxNC44IDkuOWM1LjEgMCAxMC4yLS4zIDE1LjMtLjhsLjctLjFjNC40LS41IDguOC0xLjEgMTMuMi0xLjljLjgtLjEgMS42LS4zIDIuNC0uNWMxNy44LTMuNSAzNC45LTkuNSA1MC4xLTE2LjFjMjIuOS0xMCA0Mi40LTIxLjkgNTQuMy0zMC42YzMxLjggMTEuNSA2NyAxNy45IDEwNC4xIDE3LjljMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMlMwIDEyNS4xIDAgMjQwYzAgNDUuMSAxNy43IDg2LjggNDcuNyAxMjAuOWMtMS45IDI0LjUtMTEuNCA0Ni4zLTIxLjQgNjIuOXpNMTQ0IDI3MmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6bTE0NC0zMmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwem04MCAzMmEzMiAzMiAwIDEgMCAwLTY0IDMyIDMyIDAgMSAwIDAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIzLjYgMzkxLjNjMTIuOS05LjQgMjkuNi0xMS44IDQ0LjYtNi40YzI2LjUgOS42IDU2LjIgMTUuMSA4Ny44IDE1LjFjMTI0LjcgMCAyMDgtODAuNSAyMDgtMTYwcy04My4zLTE2MC0yMDgtMTYwUzQ4IDE2MC41IDQ4IDI0MGMwIDMyIDEyLjQgNjIuOCAzNS43IDg5LjJjOC42IDkuNyAxMi44IDIyLjUgMTEuOCAzNS41Yy0xLjQgMTguMS01LjcgMzQuNy0xMS4zIDQ5LjRjMTctNy45IDMxLjEtMTYuNyAzOS40LTIyLjd6TTIxLjIgNDMxLjljMS44LTIuNyAzLjUtNS40IDUuMS04LjFjMTAtMTYuNiAxOS41LTM4LjQgMjEuNC02Mi45QzE3LjcgMzI2LjggMCAyODUuMSAwIDI0MEMwIDEyNS4xIDExNC42IDMyIDI1NiAzMnMyNTYgOTMuMSAyNTYgMjA4cy0xMTQuNiAyMDgtMjU2IDIwOGMtMzcuMSAwLTcyLjMtNi40LTEwNC4xLTE3LjljLTExLjkgOC43LTMxLjMgMjAuNi01NC4zIDMwLjZjLTE1LjEgNi42LTMyLjMgMTIuNi01MC4xIDE2LjFjLS44IC4yLTEuNiAuMy0yLjQgLjVjLTQuNCAuOC04LjcgMS41LTEzLjIgMS45Yy0uMiAwLS41IC4xLS43IC4xYy01LjEgLjUtMTAuMiAuOC0xNS4zIC44Yy02LjUgMC0xMi4zLTMuOS0xNC44LTkuOWMtMi41LTYtMS4xLTEyLjggMy40LTE3LjRjNC4xLTQuMiA3LjgtOC43IDExLjMtMTMuNWMxLjctMi4zIDMuMy00LjYgNC44LTYuOWMuMS0uMiAuMi0uMyAuMy0uNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODguMiAzMDkuMWM5LjgtMTguMyA2LjgtNDAuOC03LjUtNTUuOEM1OS40IDIzMC45IDQ4IDIwNCA0OCAxNzZjMC02My41IDYzLjgtMTI4IDE2MC0xMjhzMTYwIDY0LjUgMTYwIDEyOHMtNjMuOCAxMjgtMTYwIDEyOGMtMTMuMSAwLTI1LjgtMS4zLTM3LjgtMy42Yy0xMC40LTItMjEuMi0uNi0zMC43IDQuMmMtNC4xIDIuMS04LjMgNC4xLTEyLjYgNmMtMTYgNy4yLTMyLjkgMTMuNS00OS45IDE4YzIuOC00LjYgNS40LTkuMSA3LjktMTMuNmMxLjEtMS45IDIuMi0zLjkgMy4yLTUuOXpNMCAxNzZjMCA0MS44IDE3LjIgODAuMSA0NS45IDExMC4zYy0uOSAxLjctMS45IDMuNS0yLjggNS4xYy0xMC4zIDE4LjQtMjIuMyAzNi41LTM2LjYgNTIuMWMtNi42IDctOC4zIDE3LjItNC42IDI1LjlDNS44IDM3OC4zIDE0LjQgMzg0IDI0IDM4NGM0MyAwIDg2LjUtMTMuMyAxMjIuNy0yOS43YzQuOC0yLjIgOS42LTQuNSAxNC4yLTYuOGMxNS4xIDMgMzAuOSA0LjUgNDcuMSA0LjVjMTE0LjkgMCAyMDgtNzguOCAyMDgtMTc2UzMyMi45IDAgMjA4IDBTMCA3OC44IDAgMTc2ek00MzIgNDgwYzE2LjIgMCAzMS45LTEuNiA0Ny4xLTQuNWM0LjYgMi4zIDkuNCA0LjYgMTQuMiA2LjhDNTI5LjUgNDk4LjcgNTczIDUxMiA2MTYgNTEyYzkuNiAwIDE4LjItNS43IDIyLTE0LjVjMy44LTguOCAyLTE5LTQuNi0yNS45Yy0xNC4yLTE1LjYtMjYuMi0zMy43LTM2LjYtNTIuMWMtLjktMS43LTEuOS0zLjQtMi44LTUuMUM2MjIuOCAzODQuMSA2NDAgMzQ1LjggNjQwIDMwNGMwLTk0LjQtODcuOS0xNzEuNS0xOTguMi0xNzUuOGM0LjEgMTUuMiA2LjIgMzEuMiA2LjIgNDcuOGwwIC42Yzg3LjIgNi43IDE0NCA2Ny41IDE0NCAxMjcuNGMwIDI4LTExLjQgNTQuOS0zMi43IDc3LjJjLTE0LjMgMTUtMTcuMyAzNy42LTcuNSA1NS44YzEuMSAyIDIuMiA0IDMuMiA1LjljMi41IDQuNSA1LjIgOSA3LjkgMTMuNmMtMTctNC41LTMzLjktMTAuNy00OS45LTE4Yy00LjMtMS45LTguNS0zLjktMTIuNi02Yy05LjUtNC44LTIwLjMtNi4yLTMwLjctNC4yYy0xMi4xIDIuNC0yNC43IDMuNi0zNy44IDMuNmMtNjEuNyAwLTExMC0yNi41LTEzNi44LTYyLjNjLTE2IDUuNC0zMi44IDkuNC01MCAxMS44QzI3OSA0MzkuOCAzNTAgNDgwIDQzMiA0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbXBhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMwNi43IDY5LjFMMTYyLjQgMzgwLjZjLTE5LjQgNy41LTM4LjUtMTEuNi0zMS0zMWw1NS41LTE0NC4zYzMuMy04LjUgOS45LTE1LjEgMTguNC0xOC40bDE0NC4zLTU1LjVjMTkuNC03LjUgMzguNSAxMS42IDMxIDMxTDMyNS4xIDMwNi43Yy0zLjIgOC41LTkuOSAxNS4xLTE4LjQgMTguNHpNMjg4IDI1NmEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMzZIMTkyYy04LjggMC0xNi03LjItMTYtMTZWNjRjMC04LjggNy4yLTE2IDE2LTE2bDE0MC4xIDBMNDAwIDExNS45VjMyMGMwIDguOC03LjIgMTYtMTYgMTZ6TTE5MiAzODRIMzg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjExNS45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMMzY2LjEgMTQuMWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFIMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NFYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjR6TTY0IDEyOGMtMzUuMyAwLTY0IDI4LjctNjQgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NFY0MTZIMjcydjMyYzAgOC44LTcuMiAxNi0xNiAxNkg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE5MmMwLTguOCA3LjItMTYgMTYtMTZIOTZWMTI4SDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xOTkuNCAzMTIuNmMtMzEuMi0zMS4yLTMxLjItODEuOSAwLTExMy4xczgxLjktMzEuMiAxMTMuMSAwYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwczkuNC0yNC42IDAtMzMuOWMtNTAtNTAtMTMxLTUwLTE4MSAwcy01MCAxMzEgMCAxODFzMTMxIDUwIDE4MSAwYzkuNC05LjQgOS40LTI0LjYgMC0zMy45cy0yNC42LTkuNC0zMy45IDBjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ3JlZGl0Q2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgODBjOC44IDAgMTYgNy4yIDE2IDE2djMySDQ4Vjk2YzAtOC44IDcuMi0xNiAxNi0xNkg1MTJ6bTE2IDE0NFY0MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDY0Yy04LjggMC0xNi03LjItMTYtMTZWMjI0SDUyOHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em01NiAzMDRjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTIwem0xMjggMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgzNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFbnZlbG9wZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjQgNDguMmMuMi0uMSAuNC0uMiAuNi0uMnMuNCAuMSAuNiAuMkw0NjAuNiAxOTRjMi4xIDEuNSAzLjQgMy45IDMuNCA2LjV2MTMuNkwyOTEuNSAzNTUuN2MtMjAuNyAxNy01MC40IDE3LTcxLjEgMEw0OCAyMTQuMVYyMDAuNWMwLTIuNiAxLjItNSAzLjQtNi41TDI1NS40IDQ4LjJ6TTQ4IDI3Ni4yTDE5MCAzOTIuOGMzOC40IDMxLjUgOTMuNyAzMS41IDEzMiAwTDQ2NCAyNzYuMlY0NTZjMCA0LjQtMy42IDgtOCA4SDU2Yy00LjQgMC04LTMuNi04LThWMjc2LjJ6TTI1NiAwYy0xMC4yIDAtMjAuMiAzLjItMjguNSA5LjFMMjMuNSAxNTQuOUM4LjcgMTY1LjQgMCAxODIuNCAwIDIwMC41VjQ1NmMwIDMwLjkgMjUuMSA1NiA1NiA1Nkg0NTZjMzAuOSAwIDU2LTI1LjEgNTYtNTZWMjAwLjVjMC0xOC4xLTguNy0zNS4xLTIzLjQtNDUuNkwyODQuNSA5LjFDMjc2LjIgMy4yIDI2Ni4yIDAgMjU2IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0VudmVsb3BlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDExMmMtOC44IDAtMTYgNy4yLTE2IDE2djIyLjFMMjIwLjUgMjkxLjdjMjAuNyAxNyA1MC40IDE3IDcxLjEgMEw0NjQgMTUwLjFWMTI4YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNNDggMjEyLjJWMzg0YzAgOC44IDcuMiAxNiAxNiAxNkg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjIxMi4yTDMyMiAzMjguOGMtMzguNCAzMS41LTkzLjcgMzEuNS0xMzIgMEw0OCAyMTIuMnpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFeWVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOC44IDUuMUMyOC40LTMuMSAxMy4zLTEuMiA1LjEgOS4yUy0xLjIgMzQuNyA5LjIgNDIuOWw1OTIgNDY0YzEwLjQgOC4yIDI1LjUgNi4zIDMzLjctNC4xczYuMy0yNS41LTQuMS0zMy43TDUyNS42IDM4Ni43YzM5LjYtNDAuNiA2Ni40LTg2LjEgNzkuOS0xMTguNGMzLjMtNy45IDMuMy0xNi43IDAtMjQuNmMtMTQuOS0zNS43LTQ2LjItODcuNy05My0xMzEuMUM0NjUuNSA2OC44IDQwMC44IDMyIDMyMCAzMmMtNjguMiAwLTEyNSAyNi4zLTE2OS4zIDYwLjhMMzguOCA1LjF6bTE1MSAxMTguM0MyMjYgOTcuNyAyNjkuNSA4MCAzMjAgODBjNjUuMiAwIDExOC44IDI5LjYgMTU5LjkgNjcuN0M1MTguNCAxODMuNSA1NDUgMjI2IDU1OC42IDI1NmMtMTIuNiAyOC0zNi42IDY2LjgtNzAuOSAxMDAuOWwtNTMuOC00Mi4yYzkuMS0xNy42IDE0LjItMzcuNSAxNC4yLTU4LjdjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhjLTMyLjIgMC02MS43IDExLjktODQuMiAzMS41bC00Ni4xLTM2LjF6TTM5NC45IDI4NC4ybC04MS41LTYzLjljNC4yLTguNSA2LjYtMTguMiA2LjYtMjguM2MwLTUuNS0uNy0xMC45LTItMTZjLjcgMCAxLjMgMCAyIDBjNDQuMiAwIDgwIDM1LjggODAgODBjMCA5LjktMS44IDE5LjQtNS4xIDI4LjJ6bTUxLjMgMTYzLjNsLTQxLjktMzNDMzc4LjggNDI1LjQgMzUwLjcgNDMyIDMyMCA0MzJjLTY1LjIgMC0xMTguOC0yOS42LTE1OS45LTY3LjdDMTIxLjYgMzI4LjUgOTUgMjg2IDgxLjQgMjU2YzguMy0xOC40IDIxLjUtNDEuNSAzOS40LTY0LjhMODMuMSAxNjEuNUM2MC4zIDE5MS4yIDQ0IDIyMC44IDM0LjUgMjQzLjdjLTMuMyA3LjktMy4zIDE2LjcgMCAyNC42YzE0LjkgMzUuNyA0Ni4yIDg3LjcgOTMgMTMxLjFDMTc0LjUgNDQzLjIgMjM5LjIgNDgwIDMyMCA0ODBjNDcuOCAwIDg5LjktMTIuOSAxMjYuMi0zMi41em0tODgtNjkuM0wzMDIgMzM0Yy0yMy41LTUuNC00My4xLTIxLjItNTMuNy00Mi4zbC01Ni4xLTQ0LjJjLS4yIDIuOC0uMyA1LjYtLjMgOC41YzAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4YzEzLjMgMCAyNi4xLTIgMzguMi01Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggODBjLTY1LjIgMC0xMTguOCAyOS42LTE1OS45IDY3LjdDODkuNiAxODMuNSA2MyAyMjYgNDkuNCAyNTZjMTMuNiAzMCA0MC4yIDcyLjUgNzguNiAxMDguM0MxNjkuMiA0MDIuNCAyMjIuOCA0MzIgMjg4IDQzMnMxMTguOC0yOS42IDE1OS45LTY3LjdDNDg2LjQgMzI4LjUgNTEzIDI4NiA1MjYuNiAyNTZjLTEzLjYtMzAtNDAuMi03Mi41LTc4LjYtMTA4LjNDNDA2LjggMTA5LjYgMzUzLjIgODAgMjg4IDgwek05NS40IDExMi42QzE0Mi41IDY4LjggMjA3LjIgMzIgMjg4IDMyczE0NS41IDM2LjggMTkyLjYgODAuNmM0Ni44IDQzLjUgNzguMSA5NS40IDkzIDEzMS4xYzMuMyA3LjkgMy4zIDE2LjcgMCAyNC42Yy0xNC45IDM1LjctNDYuMiA4Ny43LTkzIDEzMS4xQzQzMy41IDQ0My4yIDM2OC44IDQ4MCAyODggNDgwcy0xNDUuNS0zNi44LTE5Mi42LTgwLjZDNDguNiAzNTYgMTcuMyAzMDQgMi41IDI2OC4zYy0zLjMtNy45LTMuMy0xNi43IDAtMjQuNkMxNy4zIDIwOCA0OC42IDE1NiA5NS40IDExMi42ek0yODggMzM2YzQ0LjIgMCA4MC0zNS44IDgwLTgwcy0zNS44LTgwLTgwLTgwYy0uNyAwLTEuMyAwLTIgMGMxLjMgNS4xIDIgMTAuNSAyIDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0Yy01LjUgMC0xMC45LS43LTE2LTJjMCAuNyAwIDEuMyAwIDJjMCA0NC4yIDM1LjggODAgODAgODB6bTAtMjA4YTEyOCAxMjggMCAxIDEgMCAyNTYgMTI4IDEyOCAwIDEgMSAwLTI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUFuZ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnptNzIuNC0xMTguNWM5LjctOSAxMC4yLTI0LjIgMS4yLTMzLjlDMzE1LjMgMzQ0LjMgMjkwLjYgMzI4IDI1NiAzMjhzLTU5LjMgMTYuMy03My41IDMxLjZjLTkgOS43LTguNSAyNC45IDEuMiAzMy45czI0LjkgOC41IDMzLjktMS4yYzcuNC03LjkgMjAtMTYuNCAzOC41LTE2LjRzMzEuMSA4LjUgMzguNSAxNi40YzkgOS43IDI0LjIgMTAuMiAzMy45IDEuMnpNMTc2LjQgMjcyYzE3LjcgMCAzMi0xNC4zIDMyLTMyYzAtMS41LS4xLTMtLjMtNC40bDEwLjkgMy42YzguNCAyLjggMTcuNC0xLjcgMjAuMi0xMC4xcy0xLjctMTcuNC0xMC4xLTIwLjJsLTk2LTMyYy04LjQtMi44LTE3LjQgMS43LTIwLjIgMTAuMXMxLjcgMTcuNCAxMC4xIDIwLjJsMzAuNyAxMC4yYy01LjggNS44LTkuMyAxMy44LTkuMyAyMi42YzAgMTcuNyAxNC4zIDMyIDMyIDMyem0xOTItMzJjMC04LjktMy42LTE3LTkuNS0yMi44bDMwLjItMTAuMWM4LjQtMi44IDEyLjktMTEuOSAxMC4xLTIwLjJzLTExLjktMTIuOS0yMC4yLTEwLjFsLTk2IDMyYy04LjQgMi44LTEyLjkgMTEuOS0xMC4xIDIwLjJzMTEuOSAxMi45IDIwLjIgMTAuMWwxMS43LTMuOWMtLjIgMS41LS4zIDMuMS0uMyA0LjdjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZURpenp5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0yNTYgMzJhNjQgNjQgMCAxIDEgMCAxMjggNjQgNjQgMCAxIDEgMC0xMjh6TTEwMyAxMzVjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjMgMjMgMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC0yMyAyMyAyMyAyM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0yMy0yMy0yMyAyM2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWwyMy0yMy0yMy0yM2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6bTE5MiAwYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIzIDIzIDIzLTIzYzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOWwtMjMgMjMgMjMgMjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlzLTI0LjYgOS40LTMzLjkgMGwtMjMtMjMtMjMgMjNjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwcy05LjQtMjQuNiAwLTMzLjlsMjMtMjMtMjMtMjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlRmx1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDEgNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDB6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTYwLjQgMjQ4YTI0IDI0IDAgMSAwIDAtNDggMjQgMjQgMCAxIDAgMCA0OHptMjE2LTI0YTI0IDI0IDAgMSAwIC00OCAwIDI0IDI0IDAgMSAwIDQ4IDB6TTE5MiAzMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzIwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDE5MnpNMTYwIDE3NmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTAgMTI4YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xNDQtODBhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHptMTI4IDBhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlRnJvd25PcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0xODIuNCAzODIuNWMtMTIuNCA1LjItMjYuNS00LjEtMjEuMS0xNi40YzE2LTM2LjYgNTIuNC02Mi4xIDk0LjgtNjIuMXM3OC44IDI1LjYgOTQuOCA2Mi4xYzUuNCAxMi4zLTguNyAyMS42LTIxLjEgMTYuNGMtMjIuNC05LjUtNDcuNC0xNC44LTczLjctMTQuOHMtNTEuMyA1LjMtNzMuNyAxNC44ek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUZyb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2ek0xNzQuNiAzODQuMWMtNC41IDEyLjUtMTguMiAxOC45LTMwLjcgMTQuNHMtMTguOS0xOC4yLTE0LjQtMzAuN0MxNDYuOSAzMTkuNCAxOTguOSAyODggMjU2IDI4OHMxMDkuMSAzMS40IDEyNi42IDc5LjljNC41IDEyLjUtMiAyNi4yLTE0LjQgMzAuN3MtMjYuMi0yLTMwLjctMTQuNEMzMjguMiAzNTguNSAyOTcuMiAzMzYgMjU2IDMzNnMtNzIuMiAyMi41LTgxLjQgNDguMXpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmltYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZBMjU2IDI1NiAwIDEgMSAwIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwek0xNjggMzIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDhWMzIwaC04em00MCA0OGgzMlYzMjBIMjA4djQ4em05NiAwVjMyMEgyNzJ2NDhoMzJ6bTMyIDBoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGgtOHY0OHpNMTY4IDI4OEgzNDRjMzAuOSAwIDU2IDI1LjEgNTYgNTZzLTI1LjEgNTYtNTYgNTZIMTY4Yy0zMC45IDAtNTYtMjUuMS01Ni01NnMyNS4xLTU2IDU2LTU2em0tMjMuNi04MGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpbkJlYW1Td2VhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYuOCAxMjYuM0M0OTcuMSAxMjAuOCA1MTIgMTAyLjcgNTEyIDgxYzAtMjAtMjguNi02MC40LTQxLjYtNzcuN2MtMy4yLTQuNC05LjYtNC40LTEyLjggMGMtOS41IDEyLjYtMjcuMSAzNy4yLTM2IDU3LjVjLS4zIC43LS42IDEuNC0uOSAyLjFDNDE3LjggNjkuNyA0MTYgNzYgNDE2IDgxYzAgMjYgMjEuNSA0NyA0OCA0N2M0LjQgMCA4LjctLjYgMTIuOC0xLjd6TTM5NS40IDQxLjJDMzU1LjMgMTUuMiAzMDcuNCAwIDI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NlMxMTQuNiA1MTIgMjU2IDUxMnMyNTYtMTE0LjYgMjU2LTI1NmMwLTM1LjgtNy4zLTY5LjktMjAuNi0xMDAuOGMtOC42IDMuMS0xNy44IDQuOC0yNy40IDQuOGMtOC45IDAtMTcuNi0xLjUtMjUuNy00LjJDNDU0LjcgMTg1LjUgNDY0IDIxOS43IDQ2NCAyNTZjMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzQ4IDM3MC45IDQ4IDI1NlMxNDEuMSA0OCAyNTYgNDhjNDguNyAwIDkzLjQgMTYuNyAxMjguOSA0NC43Yy0uNi0zLjgtLjktNy43LS45LTExLjdjMC0xMS40IDMuOC0yMi40IDcuMS0zMC41YzEuMy0zLjEgMi43LTYuMiA0LjMtOS4zek0zNzUgMzM2LjVjMTAuNC0xNi4xLTYuOC0zMi41LTI1LjUtMjguMWMtMjguOSA2LjgtNjAuNSAxMC41LTkzLjYgMTAuNXMtNjQuNy0zLjctOTMuNi0xMC41Yy0xOC43LTQuNC0zNS45IDEyLTI1LjUgMjguMWMyNC42IDM4LjEgNjguNyA2My41IDExOS4xIDYzLjVzOTQuNS0yNS40IDExOS4xLTYzLjV6TTIxNy42IDIyOC44bDAgMCAwIDAgMCAwYzIuMSAyLjggNS43IDMuOSA4LjkgMi44czUuNS00LjEgNS41LTcuNmMwLTE3LjktNi43LTM1LjYtMTYuNi00OC44Yy05LjgtMTMtMjMuOS0yMy4yLTM5LjQtMjMuMnMtMjkuNiAxMC4yLTM5LjQgMjMuMkMxMjYuNyAxODguNCAxMjAgMjA2LjEgMTIwIDIyNGMwIDMuNCAyLjIgNi41IDUuNSA3LjZzNi45IDAgOC45LTIuOGwwIDAgMCAwIDAgMCAuMi0uMmMuMi0uMiAuNC0uNSAuNy0uOWMuNi0uOCAxLjYtMiAyLjgtMy40YzIuNS0yLjggNi02LjYgMTAuMi0xMC4zYzguOC03LjggMTguOC0xNCAyNy43LTE0czE4LjkgNi4yIDI3LjcgMTRjNC4yIDMuNyA3LjcgNy41IDEwLjIgMTAuM2MxLjIgMS40IDIuMiAyLjYgMi44IDMuNGMuMyAuNCAuNiAuNyAuNyAuOWwuMiAuMiAwIDB6bTE2MCAwbDAgMCAwIDBjMi4xIDIuOCA1LjcgMy45IDguOSAyLjhzNS41LTQuMSA1LjUtNy42YzAtMTcuOS02LjctMzUuNi0xNi42LTQ4LjhjLTkuOC0xMy0yMy45LTIzLjItMzkuNC0yMy4ycy0yOS42IDEwLjItMzkuNCAyMy4yQzI4Ni43IDE4OC40IDI4MCAyMDYuMSAyODAgMjI0YzAgMy40IDIuMiA2LjUgNS41IDcuNnM2LjkgMCA4LjktMi44bDAgMCAwIDAgMCAwIC4yLS4yYy4yLS4yIC40LS41IC43LS45Yy42LS44IDEuNi0yIDIuOC0zLjRjMi41LTIuOCA2LTYuNiAxMC4yLTEwLjNjOC44LTcuOCAxOC44LTE0IDI3LjctMTRzMTguOSA2LjIgMjcuNyAxNGM0LjIgMy43IDcuNyA3LjUgMTAuMiAxMC4zYzEuMiAxLjQgMi4yIDIuNiAyLjggMy40Yy4zIC40IC42IC43IC43IC45bC4yIC4yIDAgMCAwIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXpNMjE3LjYgMjI4LjhsMCAwIDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMHptMTYwIDBsMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5IZWFydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTM0OS41IDUyLjRjMTguNy00LjQgMzUuOSAxMiAyNS41IDI4LjFDMzUwLjQgMzc0LjYgMzA2LjMgNDAwIDI1NS45IDQwMHMtOTQuNS0yNS40LTExOS4xLTYzLjVjLTEwLjQtMTYuMSA2LjgtMzIuNSAyNS41LTI4LjFjMjguOSA2LjggNjAuNSAxMC41IDkzLjYgMTAuNXM2NC43LTMuNyA5My42LTEwLjV6TTIxNS4zIDEzNy4xYzE3LjggNC44IDI4LjQgMjMuMSAyMy42IDQwLjhsLTE3LjQgNjVjLTIuMyA4LjUtMTEuMSAxMy42LTE5LjYgMTEuM2wtNjUuMS0xNy40Yy0xNy44LTQuOC0yOC40LTIzLjEtMjMuNi00MC44czIzLjEtMjguNCA0MC44LTIzLjZsMTYuMSA0LjMgNC4zLTE2LjFjNC44LTE3LjggMjMuMS0yOC40IDQwLjgtMjMuNnptMTIyLjMgMjMuNmw0LjMgMTYuMSAxNi4xLTQuM2MxNy44LTQuOCAzNi4xIDUuOCA0MC44IDIzLjZzLTUuOCAzNi4xLTIzLjYgNDAuOGwtNjUuMSAxNy40Yy04LjUgMi4zLTE3LjMtMi44LTE5LjYtMTEuM2wtMTcuNC02NWMtNC44LTE3LjggNS44LTM2LjEgMjMuNi00MC44czM2LjEgNS44IDQwLjkgMjMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW5TcXVpbnRUZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjYuOCAxNC4yQzQ0Ni01IDQ3Ny41LTQuNiA0OTcuMSAxNC45czIwIDUxIC43IDcwLjNjLTE0LjggMTQuOC02NS43IDIzLjYtODguMyAyNi43Yy01LjYgLjktMTAuMy0zLjktOS41LTkuNUM0MDMuMyA3OS45IDQxMiAyOSA0MjYuOCAxNC4yek03NSA3NUMxNTguMi04LjMgMjg0LjUtMjIuMiAzODIuMiAzMy4yYy0xLjUgNC44LTIuOSA5LjYtNC4xIDE0LjNjLTMuMSAxMi4yLTUuNSAyNC42LTcuMyAzNWMtODAuOC01My42LTE5MC43LTQ0LjgtMjYxLjkgMjYuNEMzNy43IDE4MC4xIDI4LjkgMjkwIDgyLjUgMzcwLjhjLTEwLjUgMS44LTIyLjkgNC4yLTM1IDcuM2MtNC43IDEuMi05LjUgMi41LTE0LjMgNC4xQy0yMi4yIDI4NC41LTguMiAxNTguMiA3NSA3NXptMzg5LjYgNTguOWM0LjctMS4yIDkuNS0yLjUgMTQuMy00LjFDNTM0LjIgMjI3LjUgNTIwLjIgMzUzLjggNDM3IDQzN2MtODMuMiA4My4yLTIwOS41IDk3LjItMzA3LjIgNDEuOGMxLjUtNC44IDIuOC05LjYgNC0xNC4zYzMuMS0xMi4yIDUuNS0yNC42IDcuMy0zNWM4MC44IDUzLjYgMTkwLjcgNDQuOCAyNjEuOS0yNi40YzcxLjItNzEuMiA4MC0xODEuMSAyNi40LTI2MS45YzEwLjUtMS44IDIyLjktNC4yIDM1LTcuM3ptLTEwNS40IDkzYzEwLjEtMTYuMyAzMy45LTE2LjkgMzcuOSAxLjljOS41IDQ0LjQtMy43IDkzLjUtMzkuMyAxMjkuMXMtODQuOCA0OC44LTEyOS4xIDM5LjNjLTE4LjctNC0xOC4yLTI3LjgtMS45LTM3LjljMjUuMi0xNS43IDUwLjItMzUuNCA3My42LTU4LjhzNDMuMS00OC40IDU4LjgtNzMuNnpNOTIgMjY1LjNsOTcuNC0yOS43YzExLjYtMy41IDIyLjUgNy4zIDE5IDE5bC0yOS43IDk3LjRjLTIuNiA4LjYtMTMuNCAxMS4zLTE5LjggNC45Yy0yLTItMy4yLTQuNi0zLjQtNy4zbC01LjEtNTYuMS01Ni4xLTUuMWMtMi44LS4zLTUuNC0xLjUtNy4zLTMuNGMtNi4zLTYuMy0zLjYtMTcuMiA0LjktMTkuOHptMTkzLTE3OC4yYzIgMiAzLjIgNC42IDMuNCA3LjNsNS4xIDU2LjEgNTYuMSA1LjFjMi44IC4zIDUuNCAxLjUgNy4zIDMuNGM2LjMgNi4zIDMuNiAxNy4yLTQuOSAxOS44bC05Ny40IDI5LjdjLTExLjYgMy41LTIyLjUtNy4zLTE5LTE5TDI2NS4zIDkyYzIuNi04LjYgMTMuNC0xMS4zIDE5LjgtNC45ek0xNC45IDQ5Ny4xYy0xOS42LTE5LjYtMjAtNTEtLjctNzAuM0MyOSA0MTIgNzkuOCA0MDMuMiAxMDIuNCA0MDAuMWM1LjYtLjkgMTAuMyAzLjkgOS41IDkuNWMtMy4yIDIyLjUtMTEuOSA3My41LTI2LjcgODguM0M2NiA1MTcgMzQuNSA1MTYuNiAxNC45IDQ5Ny4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpblNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXptLTIxNi0xNjEuN2w4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZjMC05IDkuNi0xNC43IDE3LjUtMTAuNXpNMzk2IDE1Ny4xYzAgMi44LTEgNS41LTIuOCA3LjZsLTM2IDQzLjIgMzYgNDMuMmMxLjggMi4xIDIuOCA0LjggMi44IDcuNmMwIDktOS42IDE0LjctMTcuNSAxMC41bC04OS45LTQ3LjljLTEwLjctNS43LTEwLjctMjEuMSAwLTI2LjhsODkuOS00Ny45YzcuOS00LjIgMTcuNSAxLjUgMTcuNSAxMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpblN0YXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTgzLjIgMTMyLjZjLTEuMy0yLjgtNC4xLTQuNi03LjItNC42cy01LjkgMS44LTcuMiA0LjZsLTE2LjYgMzQuNy0zOC4xIDVjLTMuMSAuNC01LjYgMi41LTYuNiA1LjVzLS4xIDYuMiAyLjEgOC4zbDI3LjkgMjYuNS03IDM3LjhjLS42IDMgLjcgNi4xIDMuMiA3LjlzNS44IDIgOC41IC42TDE3NiAyNDAuNWwzMy44IDE4LjNjMi43IDEuNSA2IDEuMyA4LjUtLjZzMy43LTQuOSAzLjItNy45bC03LTM3LjhMMjQyLjQgMTg2YzIuMi0yLjEgMy4xLTUuMyAyLjEtOC4zcy0zLjUtNS4xLTYuNi01LjVsLTM4LjEtNS0xNi42LTM0Ljd6bTE2MCAwYy0xLjMtMi44LTQuMS00LjYtNy4yLTQuNnMtNS45IDEuOC03LjIgNC42bC0xNi42IDM0LjctMzguMSA1Yy0zLjEgLjQtNS42IDIuNS02LjYgNS41cy0uMSA2LjIgMi4xIDguM2wyNy45IDI2LjUtNyAzNy44Yy0uNiAzIC43IDYuMSAzLjIgNy45czUuOCAyIDguNSAuNkwzMzYgMjQwLjVsMzMuOCAxOC4zYzIuNyAxLjUgNiAxLjMgOC41LS42czMuNy00LjkgMy4yLTcuOWwtNy0zNy44TDQwMi40IDE4NmMyLjItMi4xIDMuMS01LjMgMi4xLTguM3MtMy41LTUuMS02LjYtNS41bC0zOC4xLTUtMTYuNi0zNC43em02LjMgMTc1LjhjLTI4LjkgNi44LTYwLjUgMTAuNS05My42IDEwLjVzLTY0LjctMy43LTkzLjYtMTAuNWMtMTguNy00LjQtMzUuOSAxMi0yNS41IDI4LjFjMjQuNiAzOC4xIDY4LjcgNjMuNSAxMTkuMSA2My41czk0LjUtMjUuNCAxMTkuMS02My41YzEwLjQtMTYuMS02LjgtMzIuNS0yNS41LTI4LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluVGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTE2LjEgMzI1LjVjMSAzIDIuMSA2IDMuMyA4LjljMy4zIDguMSA4LjQgMTguNSAxNi41IDI2LjZjMy45IDMuOSA4LjIgNy40IDEyLjcgMTAuM0M1MDYuNCA0NTQuOCA0MTkuOSA1MTIgMzIwIDUxMnMtMTg2LjQtNTcuMi0yMjguNi0xNDAuNmM0LjUtMi45IDguNy02LjMgMTIuNy0xMC4zYzguMS04LjEgMTMuMi0xOC42IDE2LjUtMjYuNmMxLjItMi45IDIuMy01LjkgMy4zLTguOUMxNTIuNSA0MDYuMiAyMjkuNSA0NjQgMzIwIDQ2NHMxNjcuNS01Ny44IDE5Ni4xLTEzOC41ek0zMjAgNDhjLTEwMS40IDAtMTg1LjggNzIuNS0yMDQuMyAxNjguNWMtNi43LTMuMS0xNC4zLTQuMy0yMi4zLTMuMWMtNi44IC45LTE2LjIgMi40LTI2LjYgNC40Qzg1LjMgOTQuNSAxOTEuNiAwIDMyMCAwUzU1NC43IDk0LjUgNTczLjIgMjE3LjdjLTEwLjMtMi0xOS44LTMuNS0yNi42LTQuNGMtOC0xLjItMTUuNyAuMS0yMi4zIDMuMUM1MDUuOCAxMjAuNSA0MjEuNCA0OCAzMjAgNDh6TTc4LjUgMzQxLjFDNjAgMzU2LjcgMzIgMzU1LjUgMTQuMyAzMzcuN2MtMTguNy0xOC43LTE5LjEtNDguOC0uNy02Ny4yYzguNi04LjYgMzAuMS0xNS4xIDUwLjUtMTkuNmMxMy0yLjggMjUuNS00LjggMzMuOS02YzUuNC0uOCA5LjkgMy43IDkgOWMtMy4xIDIxLjUtMTEuNCA3MC4yLTI1LjUgODQuNGMtLjkgMS0xLjkgMS44LTIuOSAyLjd6bTQ4MyAwYy0uOC0uNi0xLjUtMS4zLTIuMy0yYy0uMi0uMi0uNS0uNC0uNy0uN2MtMTQuMS0xNC4xLTIyLjUtNjIuOS0yNS41LTg0LjRjLS44LTUuNCAzLjctOS45IDktOWMxIC4xIDIuMiAuMyAzLjMgLjVjOC4yIDEuMiAxOS4yIDMgMzAuNiA1LjVjMjAuNCA0LjQgNDEuOSAxMC45IDUwLjUgMTkuNmMxOC40IDE4LjQgMTggNDguNS0uNyA2Ny4yYy0xNy43IDE3LjctNDUuNyAxOS02NC4yIDMuNHpNNDM5IDMzNi41QzQxNC40IDM3NC42IDM3MC4zIDQwMCAzMTkuOSA0MDBzLTk0LjUtMjUuNC0xMTkuMS02My41Yy0xMC40LTE2LjEgNi44LTMyLjUgMjUuNS0yOC4xYzI4LjkgNi44IDYwLjUgMTAuNSA5My42IDEwLjVzNjQuNy0zLjcgOTMuNi0xMC41YzE4LjctNC40IDM1LjkgMTIgMjUuNSAyOC4xek0yODEuNiAyMjguOGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwem0xNjAgMGwwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpblRvbmd1ZVNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2YzAtMTE0LjktOTMuMS0yMDgtMjA4LTIwOFM0OCAxNDEuMSA0OCAyNTZjMCA4MS43IDQ3LjEgMTUyLjQgMTE1LjcgMTg2LjRjLTIuNC04LjQtMy43LTE3LjMtMy43LTI2LjRWMzkyLjdjLTI0LTE3LjUtNDMuMS00MS40LTU0LjgtNjkuMmMtNS0xMS44IDctMjIuNSAxOS4zLTE4LjdjMzkuNyAxMi4yIDg0LjUgMTkgMTMxLjggMTlzOTIuMS02LjggMTMxLjgtMTljMTIuMy0zLjggMjQuMyA2LjkgMTkuMyAxOC43Yy0xMS44IDI4LTMxLjEgNTItNTUuNCA2OS42VjQxNmMwIDkuMi0xLjMgMTgtMy43IDI2LjRDNDE2LjkgNDA4LjQgNDY0IDMzNy43IDQ2NCAyNTZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTE2LTk4LjljMC05IDkuNi0xNC43IDE3LjUtMTAuNWw4OS45IDQ3LjljMTAuNyA1LjcgMTAuNyAyMS4xIDAgMjYuOGwtODkuOSA0Ny45Yy03LjkgNC4yLTE3LjUtMS41LTE3LjUtMTAuNWMwLTIuOCAxLTUuNSAyLjgtNy42bDM2LTQzLjItMzYtNDMuMmMtMS44LTIuMS0yLjgtNC44LTIuOC03LjZ6bTI2Mi41LTEwLjVjNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjVjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3Ljl6TTMyMCA0MTZWMzc4LjZjMC0xNC43LTExLjktMjYuNi0yNi42LTI2LjZoLTJjLTExLjMgMC0yMS4xIDcuOS0yMy42IDE4LjljLTIuOCAxMi42LTIwLjggMTIuNi0yMy42IDBjLTIuNS0xMS4xLTEyLjMtMTguOS0yMy42LTE4LjloLTJjLTE0LjcgMC0yNi42IDExLjktMjYuNiAyNi42VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlR3JpblRvbmd1ZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ4LjMgNDQyLjRjMi40LTguNCAzLjctMTcuMyAzLjctMjYuNFYzNjMuNWM4LjgtOCAxNi42LTE3LjEgMjMtMjdjMTAuNC0xNi4xLTYuOC0zMi41LTI1LjUtMjguMWMtMjguOSA2LjgtNjAuNSAxMC41LTkzLjYgMTAuNXMtNjQuNy0zLjctOTMuNi0xMC41Yy0xOC43LTQuNC0zNS45IDEyLTI1LjUgMjguMWM2LjUgMTAgMTQuMyAxOS4xIDIzLjEgMjcuMVY0MTZjMCA5LjIgMS4zIDE4IDMuNyAyNi40Qzk1LjEgNDA4LjQgNDggMzM3LjcgNDggMjU2QzQ4IDE0MS4xIDE0MS4xIDQ4IDI1NiA0OHMyMDggOTMuMSAyMDggMjA4YzAgODEuNy00Ny4xIDE1Mi40LTExNS43IDE4Ni40ek0yNTYgNTEyQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTU5LjYgMjIwYzEwLjYgMCAxOS45IDMuOCAyNS40IDkuN2M3LjYgOC4xIDIwLjIgOC41IDI4LjMgLjlzOC41LTIwLjIgLjktMjguM0MxOTkuNyAxODYuOCAxNzkgMTgwIDE1OS42IDE4MHMtNDAuMSA2LjgtNTQuNiAyMi4zYy03LjYgOC4xLTcuMSAyMC43IC45IDI4LjNzMjAuNyA3LjEgMjguMy0uOWM1LjUtNS44IDE0LjgtOS43IDI1LjQtOS43em0xNzYuNyAxMmEyNCAyNCAwIDEgMCAwLTQ4IDI0IDI0IDAgMSAwIDAgNDh6bS0uNC03MmE0OCA0OCAwIDEgMSAwIDk2IDQ4IDQ4IDAgMSAxIDAtOTZ6bTAgMTI4YTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwek0zMjAgNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0cy02NC0yOC43LTY0LTY0VjM3OC42YzAtMTQuNyAxMS45LTI2LjYgMjYuNi0yNi42aDJjMTEuMyAwIDIxLjEgNy45IDIzLjYgMTguOWMyLjggMTIuNiAyMC44IDEyLjYgMjMuNiAwYzIuNS0xMS4xIDEyLjMtMTguOSAyMy42LTE4LjloMmMxNC43IDAgMjYuNiAxMS45IDI2LjYgMjYuNlY0MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluVG9uZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZjMC0xMTQuOS05My4xLTIwOC0yMDgtMjA4UzQ4IDE0MS4xIDQ4IDI1NmMwIDgxLjcgNDcuMSAxNTIuNCAxMTUuNyAxODYuNGMtMi40LTguNC0zLjctMTcuMy0zLjctMjYuNFYzNjMuNmMtOC45LTgtMTYuNy0xNy4xLTIzLjEtMjcuMWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNWMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMWMtNi40IDkuOS0xNC4yIDE5LTIzIDI3VjQxNmMwIDkuMi0xLjMgMTgtMy43IDI2LjRDNDE2LjkgNDA4LjQgNDY0IDMzNy43IDQ2NCAyNTZ6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTc2LjQtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMzIwIDQxNlYzNzguNmMwLTE0LjctMTEuOS0yNi42LTI2LjYtMjYuNmgtMmMtMTEuMyAwLTIxLjEgNy45LTIzLjYgMTguOWMtMi44IDEyLjYtMjAuOCAxMi42LTIzLjYgMGMtMi41LTExLjEtMTIuMy0xOC45LTIzLjYtMTguOWgtMmMtMTQuNyAwLTI2LjYgMTEuOS0yNi42IDI2LjZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0czY0LTI4LjcgNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluV2lkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXpNMjI0IDE5MmMwIDM1LjMtMTQuMyA2NC0zMiA2NHMtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjR6bTk2IDY0Yy0xNy43IDAtMzItMjguNy0zMi02NHMxNC4zLTY0IDMyLTY0czMyIDI4LjcgMzIgNjRzLTE0LjMgNjQtMzIgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VHcmluV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMzQ5LjUgNTIuNGMxOC43LTQuNCAzNS45IDEyIDI1LjUgMjguMUMzNTAuNCAzNzQuNiAzMDYuMyA0MDAgMjU1LjkgNDAwcy05NC41LTI1LjQtMTE5LjEtNjMuNWMtMTAuNC0xNi4xIDYuOC0zMi41IDI1LjUtMjguMWMyOC45IDYuOCA2MC41IDEwLjUgOTMuNiAxMC41czY0LjctMy43IDkzLjYtMTAuNXpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NS44IDIxLjdjLTcuNiA4LjEtMjAuMiA4LjUtMjguMyAuOXMtOC41LTIwLjItLjktMjguM2MxNC41LTE1LjUgMzUuMi0yMi4zIDU0LjYtMjIuM3M0MC4xIDYuOCA1NC42IDIyLjNjNy42IDguMSA3LjEgMjAuNy0uOSAyOC4zcy0yMC43IDcuMS0yOC4zLS45Yy01LjUtNS44LTE0LjgtOS43LTI1LjQtOS43cy0xOS45IDMuOC0yNS40IDkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUdyaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTM0OS41IDUyLjRjMTguNy00LjQgMzUuOSAxMiAyNS41IDI4LjFDMzUwLjQgMzc0LjYgMzA2LjMgNDAwIDI1NS45IDQwMHMtOTQuNS0yNS40LTExOS4xLTYzLjVjLTEwLjQtMTYuMSA2LjgtMzIuNSAyNS41LTI4LjFjMjguOSA2LjggNjAuNSAxMC41IDkzLjYgMTAuNXM2NC43LTMuNyA5My42LTEwLjV6TTE0NC40IDIwOGEzMiAzMiAwIDEgMSA2NCAwIDMyIDMyIDAgMSAxIC02NCAwem0xOTItMzJhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlS2lzc0JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMwNC43IDQxLjdjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40Yy0yLjcgMS41LTUuNyAzLTguNyA0LjNjMy4xIDEuMyA2IDIuNyA4LjcgNC4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40YzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNEMyNzQuNyA0MjcuMSAyNTcuNCA0MzIgMjQwIDQzMmMtMy42IDAtNi44LTIuNS03LjctNnMuNi03LjIgMy44LTlsMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xYy0uNC0uMi0uNy0uNC0uOS0uNWwtLjItLjEgMCAwIDAgMCAwIDBjLTIuNS0xLjQtNC4xLTQuMS00LjEtN3MxLjYtNS42IDQuMS03bDAgMCAwIDAgMCAwIDAgMCAwIDAgLjItLjFjLjItLjEgLjUtLjMgLjktLjVjLjgtLjUgMi0xLjIgMy40LTIuMWMyLjgtMS45IDYuNS00LjUgMTAuMi03LjZjMy43LTMuMSA3LjItNi42IDkuNi0xMC4xYzIuNS0zLjUgMy41LTYuNCAzLjUtOC42cy0xLTUtMy41LTguNmMtMi41LTMuNS01LjktNi45LTkuNi0xMC4xYy0zLjctMy4xLTcuNC01LjctMTAuMi03LjZjLTEuNC0uOS0yLjYtMS42LTMuNC0yLjFjLS40LS4yLS43LS40LS45LS41bC0uMi0uMSAwIDAgMCAwIDAgMGMtMy4yLTEuOC00LjctNS41LTMuOC05czQuMS02IDcuNy02YzE3LjQgMCAzNC43IDQuOSA0Ny45IDEyLjNjNi42IDMuNyAxMi41IDguMiAxNi43IDEzLjR6bS04Ny4xLTY4LjlsMCAwIDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMHptMTYwIDBsMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUtpc3NXaW5rSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM4LjkgNDQ2LjhjLTI1LjQgMTEtNTMuNCAxNy4yLTgyLjkgMTcuMkMxNDEuMSA0NjQgNDggMzcwLjkgNDggMjU2UzE0MS4xIDQ4IDI1NiA0OHMyMDggOTMuMSAyMDggMjA4YzAgMjIuNC0zLjUgNDMuOS0xMC4xIDY0LjFjMy4xIDQuNSA1LjcgOS40IDcuOCAxNC42YzEyLjctMS42IDI1LjEgLjQgMzYuMiA1YzkuMS0yNi4yIDE0LTU0LjQgMTQtODMuN0M1MTIgMTE0LjYgMzk3LjQgMCAyNTYgMFMwIDExNC42IDAgMjU2UzExNC42IDUxMiAyNTYgNTEyYzM1LjQgMCA2OS4xLTcuMiA5OS43LTIwLjJjLTQuOC01LjUtOC41LTEyLjItMTAuNC0xOS43bC02LjUtMjUuM3pNMjk2IDMxNmMwLTYuOS0zLjEtMTMuMi03LjMtMTguM2MtNC4zLTUuMi0xMC4xLTkuNy0xNi43LTEzLjRDMjU4LjcgMjc2LjkgMjQxLjQgMjcyIDIyNCAyNzJjLTMuNiAwLTYuOCAyLjUtNy43IDZzLjYgNy4yIDMuOCA5bDAgMCAwIDAgMCAwIC4yIC4xYy4yIC4xIC41IC4zIC45IC41Yy44IC41IDIgMS4yIDMuNCAyLjFjMi44IDEuOSA2LjUgNC41IDEwLjIgNy42YzMuNyAzLjEgNy4yIDYuNiA5LjYgMTAuMWMyLjUgMy41IDMuNSA2LjQgMy41IDguNnMtMSA1LTMuNSA4LjZjLTIuNSAzLjUtNS45IDYuOS05LjYgMTAuMWMtMy43IDMuMS03LjQgNS43LTEwLjIgNy42Yy0xLjQgLjktMi42IDEuNi0zLjQgMi4xYy0uNCAuMi0uNyAuNC0uOSAuNWwtLjIgLjEgMCAwIDAgMCAwIDAgMCAwIDAgMGMtMi41IDEuNC00LjEgNC4xLTQuMSA3czEuNiA1LjYgNC4xIDdsMCAwIDAgMCAwIDAgLjIgLjFjLjIgLjEgLjUgLjMgLjkgLjVjLjggLjUgMiAxLjIgMy40IDIuMWMyLjggMS45IDYuNSA0LjUgMTAuMiA3LjZjMy43IDMuMSA3LjIgNi42IDkuNiAxMC4xYzIuNSAzLjUgMy41IDYuNCAzLjUgOC42cy0xIDUtMy41IDguNmMtMi41IDMuNS01LjkgNi45LTkuNiAxMC4xYy0zLjcgMy4xLTcuNCA1LjctMTAuMiA3LjZjLTEuNCAuOS0yLjYgMS42LTMuNCAyLjFjLS40IC4yLS43IC40LS45IC41bC0uMiAuMSAwIDAgMCAwIDAgMCAwIDBjLTMuMiAxLjgtNC43IDUuNS0zLjggOXM0LjEgNiA3LjcgNmMxNy40IDAgMzQuNy00LjkgNDcuOS0xMi4zYzYuNi0zLjcgMTIuNS04LjIgMTYuNy0xMy40YzQuMy01LjEgNy4zLTExLjQgNy4zLTE4LjNzLTMuMS0xMy4yLTcuMy0xOC4zYy00LjMtNS4yLTEwLjEtOS43LTE2LjctMTMuNGMtMi43LTEuNS01LjctMy04LjctNC4zYzMuMS0xLjMgNi0yLjcgOC43LTQuM2M2LjYtMy43IDEyLjUtOC4yIDE2LjctMTMuNGM0LjMtNS4xIDcuMy0xMS40IDcuMy0xOC4zek0xNzYuNCAyNDBhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0em0xNTkuMy0yMGMxMC42IDAgMTkuOSAzLjggMjUuNCA5LjdjNy42IDguMSAyMC4yIDguNSAyOC4zIC45czguNS0yMC4yIC45LTI4LjNDMzc1LjcgMTg2LjggMzU1IDE4MCAzMzUuNiAxODBzLTQwLjEgNi44LTU0LjYgMjIuM2MtNy42IDguMS03LjEgMjAuNyAuOSAyOC4zczIwLjcgNy4xIDI4LjMtLjljNS41LTUuOCAxNC44LTkuNyAyNS40LTkuN3pNNDM0IDM1Mi4zYy02LTIzLjItMjguOC0zNy01MS4xLTMwLjhzLTM1LjQgMzAuMS0yOS41IDUzLjRsMjIuOSA4OS4zYzIuMiA4LjcgMTEuMiAxMy45IDE5LjggMTEuNGw4NC45LTIzLjhjMjIuMi02LjIgMzUuNC0zMC4xIDI5LjUtNTMuNHMtMjguOC0zNy01MS4xLTMwLjhsLTIwLjIgNS42LTUuNC0yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUtpc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTMwNC43IDI1LjdjNC4zIDUuMSA3LjMgMTEuNCA3LjMgMTguM3MtMy4xIDEzLjItNy4zIDE4LjNjLTQuMyA1LjItMTAuMSA5LjctMTYuNyAxMy40Yy0yLjcgMS41LTUuNyAzLTguNyA0LjNjMy4xIDEuMyA2IDIuNyA4LjcgNC4zYzYuNiAzLjcgMTIuNSA4LjIgMTYuNyAxMy40YzQuMyA1LjEgNy4zIDExLjQgNy4zIDE4LjNzLTMuMSAxMy4yLTcuMyAxOC4zYy00LjMgNS4yLTEwLjEgOS43LTE2LjcgMTMuNEMyNzQuNyA0MTEuMSAyNTcuNCA0MTYgMjQwIDQxNmMtMy42IDAtNi44LTIuNS03LjctNnMuNi03LjIgMy44LTlsMCAwIDAgMCAwIDAgMCAwIC4yLS4xYy4yLS4xIC41LS4zIC45LS41Yy44LS41IDItMS4yIDMuNC0yLjFjMi44LTEuOSA2LjUtNC41IDEwLjItNy42YzMuNy0zLjEgNy4yLTYuNiA5LjYtMTAuMWMyLjUtMy41IDMuNS02LjQgMy41LTguNnMtMS01LTMuNS04LjZjLTIuNS0zLjUtNS45LTYuOS05LjYtMTAuMWMtMy43LTMuMS03LjQtNS43LTEwLjItNy42Yy0xLjQtLjktMi42LTEuNi0zLjQtMi4xbC0uOC0uNS0uMS0uMS0uMi0uMSAwIDAgMCAwIDAgMGMtMi41LTEuNC00LjEtNC4xLTQuMS03czEuNi01LjYgNC4xLTdsMCAwIDAgMCAwIDAgMCAwIDAgMCAuMi0uMWMuMi0uMSAuNS0uMyAuOS0uNWMuOC0uNSAyLTEuMiAzLjQtMi4xYzIuOC0xLjkgNi41LTQuNSAxMC4yLTcuNmMzLjctMy4xIDcuMi02LjYgOS42LTEwLjFjMi41LTMuNSAzLjUtNi40IDMuNS04LjZzLTEtNS0zLjUtOC42Yy0yLjUtMy41LTUuOS02LjktOS42LTEwLjFjLTMuNy0zLjEtNy40LTUuNy0xMC4yLTcuNmMtMS40LS45LTIuNi0xLjYtMy40LTIuMWMtLjQtLjItLjctLjQtLjktLjVsLS4yLS4xIDAgMCAwIDAgMCAwYy0zLjItMS44LTQuNy01LjUtMy44LTlzNC4xLTYgNy43LTZjMTcuNCAwIDM0LjcgNC45IDQ3LjkgMTIuM2M2LjYgMy43IDEyLjUgOC4yIDE2LjcgMTMuNHpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VMYXVnaEJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTEzMC43IDU3LjljLTQuMi0xMy42IDcuMS0yNS45IDIxLjMtMjUuOUgzNjQuNWMxNC4yIDAgMjUuNSAxMi40IDIxLjMgMjUuOUMzNjkgMzY4LjQgMzE4LjIgNDA4IDI1OC4yIDQwOHMtMTEwLjgtMzkuNi0xMjcuNS05NC4xem04Ni45LTg1LjFsMCAwIDAgMC0uMi0uMmMtLjItLjItLjQtLjUtLjctLjljLS42LS44LTEuNi0yLTIuOC0zLjRjLTIuNS0yLjgtNi02LjYtMTAuMi0xMC4zYy04LjgtNy44LTE4LjgtMTQtMjcuNy0xNHMtMTguOSA2LjItMjcuNyAxNGMtNC4yIDMuNy03LjcgNy41LTEwLjIgMTAuM2MtMS4yIDEuNC0yLjIgMi42LTIuOCAzLjRjLS4zIC40LS42IC43LS43IC45bC0uMiAuMiAwIDAgMCAwIDAgMGMtMi4xIDIuOC01LjcgMy45LTguOSAyLjhzLTUuNS00LjEtNS41LTcuNmMwLTE3LjkgNi43LTM1LjYgMTYuNi00OC44YzkuOC0xMyAyMy45LTIzLjIgMzkuNC0yMy4yczI5LjYgMTAuMiAzOS40IDIzLjJjOS45IDEzLjIgMTYuNiAzMC45IDE2LjYgNDguOGMwIDMuNC0yLjIgNi41LTUuNSA3LjZzLTYuOSAwLTguOS0yLjhsMCAwIDAgMHptMTYwIDBsMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwIDAgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZUxhdWdoU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xMzAuNyA1Ny45Yy00LjItMTMuNiA3LjEtMjUuOSAyMS4zLTI1LjlIMzY0LjVjMTQuMiAwIDI1LjUgMTIuNCAyMS4zIDI1LjlDMzY5IDM2OC40IDMxOC4yIDQwOCAyNTguMiA0MDhzLTExMC44LTM5LjYtMTI3LjUtOTQuMXptMi44LTE4My4zbDg5LjkgNDcuOWMxMC43IDUuNyAxMC43IDIxLjEgMCAyNi44bC04OS45IDQ3LjljLTcuOSA0LjItMTcuNS0xLjUtMTcuNS0xMC41YzAtMi44IDEtNS41IDIuOC03LjZsMzYtNDMuMi0zNi00My4yYy0xLjgtMi4xLTIuOC00LjgtMi44LTcuNmMwLTkgOS42LTE0LjcgMTcuNS0xMC41ek0zOTYgMTQxLjFjMCAyLjgtMSA1LjUtMi44IDcuNmwtMzYgNDMuMiAzNiA0My4yYzEuOCAyLjEgMi44IDQuOCAyLjggNy42YzAgOS05LjYgMTQuNy0xNy41IDEwLjVsLTg5LjktNDcuOWMtMTAuNy01LjctMTAuNy0yMS4xIDAtMjYuOGw4OS45LTQ3LjljNy45LTQuMiAxNy41IDEuNSAxNy41IDEwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VMYXVnaFdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTEzMC43IDU3LjljLTQuMi0xMy42IDcuMS0yNS45IDIxLjMtMjUuOUgzNjQuNWMxNC4yIDAgMjUuNSAxMi40IDIxLjMgMjUuOUMzNjkgMzY4LjQgMzE4LjIgNDA4IDI1OC4yIDQwOHMtMTEwLjgtMzkuNi0xMjcuNS05NC4xek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTY1LjggMjEuN2MtNy42IDguMS0yMC4yIDguNS0yOC4zIC45cy04LjUtMjAuMi0uOS0yOC4zYzE0LjUtMTUuNSAzNS4yLTIyLjMgNTQuNi0yMi4zczQwLjEgNi44IDU0LjYgMjIuM2M3LjYgOC4xIDcuMSAyMC43LS45IDI4LjNzLTIwLjcgNy4xLTI4LjMtLjljLTUuNS01LjgtMTQuOC05LjctMjUuNC05LjdzLTE5LjkgMy44LTI1LjQgOS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlTGF1Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1NkEyMDggMjA4IDAgMSAwIDQ4IDI1NmEyMDggMjA4IDAgMSAwIDQxNiAwek0wIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwQTI1NiAyNTYgMCAxIDEgMCAyNTZ6bTEzMC43IDU3LjljLTQuMi0xMy42IDcuMS0yNS45IDIxLjMtMjUuOUgzNjQuNWMxNC4yIDAgMjUuNSAxMi40IDIxLjMgMjUuOUMzNjkgMzY4LjQgMzE4LjIgNDA4IDI1OC4yIDQwOHMtMTEwLjgtMzkuNi0xMjcuNS05NC4xek0xNDQuNCAxOTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZU1laEJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAwIDAgNDE2IDIwOCAyMDggMCAxIDAgMC00MTZ6TTUxMiAyNTZBMjU2IDI1NiAwIDEgMSAwIDI1NmEyNTYgMjU2IDAgMSAxIDUxMiAwek0xNDQuNCAyMDhhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHptMTkyLTMyYTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZU1laCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDEgNDggMjU2YTIwOCAyMDggMCAxIDEgNDE2IDB6TTI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJBMjU2IDI1NiAwIDEgMCAyNTYgMHpNMTc2LjQgMjQwYTMyIDMyIDAgMSAwIDAtNjQgMzIgMzIgMCAxIDAgMCA2NHptMTkyLTMyYTMyIDMyIDAgMSAwIC02NCAwIDMyIDMyIDAgMSAwIDY0IDB6TTE4NCAzMjhjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMzI4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDE4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVJvbGxpbmdFeWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGEyMDggMjA4IDAgMSAxIDAgNDE2IDIwOCAyMDggMCAxIDEgMC00MTZ6bTAgNDY0QTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMTY4IDM3NmMwIDEzLjMgMTAuNyAyNCAyNCAyNEgzMjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTkyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptLTgtMTA0Yy0yNi41IDAtNDgtMjEuNS00OC00OGMwLTE0LjMgNi4zLTI3LjIgMTYuMi0zNmMtLjIgMS4zLS4yIDIuNi0uMiA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0xLjQtLjEtMi43LS4yLTRjMTAgOC44IDE2LjIgMjEuNyAxNi4yIDM2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0wIDMyYTgwIDgwIDAgMSAwIDAtMTYwIDgwIDgwIDAgMSAwIDAgMTYwem0xOTItMzJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtMTQuMyA2LjMtMjcuMiAxNi4yLTM2Yy0uMiAxLjMtLjIgMi42LS4yIDRjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMmMwLTEuNC0uMS0yLjctLjItNGMxMCA4LjggMTYuMiAyMS43IDE2LjIgMzZjMCAyNi41LTIxLjUgNDgtNDggNDh6bTAgMzJhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VTYWRDcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQwNi4xVjI4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNFY0NDAuNmMtMjguNyAxNS02MS40IDIzLjQtOTYgMjMuNHMtNjcuMy04LjUtOTYtMjMuNFYyODhjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjRWNDA2LjFDNzIuNiAzNjguMiA0OCAzMTUgNDggMjU2QzQ4IDE0MS4xIDE0MS4xIDQ4IDI1NiA0OHMyMDggOTMuMSAyMDggMjA4YzAgNTktMjQuNiAxMTIuMi02NCAxNTAuMXpNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6TTE1OS42IDIyMGMxMC42IDAgMTkuOSAzLjggMjUuNCA5LjdjNy42IDguMSAyMC4yIDguNSAyOC4zIC45czguNS0yMC4yIC45LTI4LjNDMTk5LjcgMTg2LjggMTc5IDE4MCAxNTkuNiAxODBzLTQwLjEgNi44LTU0LjYgMjIuM2MtNy42IDguMS03LjEgMjAuNyAuOSAyOC4zczIwLjcgNy4xIDI4LjMtLjljNS41LTUuOCAxNC44LTkuNyAyNS40LTkuN3ptMTY2LjYgOS43YzUuNS01LjggMTQuOC05LjcgMjUuNC05LjdzMTkuOSAzLjggMjUuNCA5LjdjNy42IDguMSAyMC4yIDguNSAyOC4zIC45czguNS0yMC4yIC45LTI4LjNDMzkxLjcgMTg2LjggMzcxIDE4MCAzNTEuNiAxODBzLTQwLjEgNi44LTU0LjYgMjIuM2MtNy42IDguMS03LjEgMjAuNyAuOSAyOC4zczIwLjcgNy4xIDI4LjMtLjl6TTIwOCAzMjB2MzJjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OFYzMjBjMC0yNi41LTIxLjUtNDgtNDgtNDhzLTQ4IDIxLjUtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VTYWRUZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NS45IDQ0OGMtMzUtLjEtNjUuNS0yMi42LTc2LTU0LjZDNjcuNiAzNTYuOCA0OCAzMDguNyA0OCAyNTZDNDggMTQxLjEgMTQxLjEgNDggMjU2IDQ4czIwOCA5My4xIDIwOCAyMDhzLTkzLjEgMjA4LTIwOCAyMDhjLTI4LjQgMC01NS41LTUuNy04MC4xLTE2ek0wIDI1NmEyNTYgMjU2IDAgMSAwIDUxMiAwQTI1NiAyNTYgMCAxIDAgMCAyNTZ6TTEyOCAzNjljMCAyNiAyMS41IDQ3IDQ4IDQ3czQ4LTIxIDQ4LTQ3YzAtMjAtMjguNC02MC40LTQxLjYtNzcuN2MtMy4yLTQuNC05LjYtNC40LTEyLjggMEMxNTYuNiAzMDguNiAxMjggMzQ5IDEyOCAzNjl6bTEyOC02NWMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGMzMC43IDAgNTguNyAxMS41IDgwIDMwLjZjOS45IDguOCAyNSA4IDMzLjktMS45czgtMjUtMS45LTMzLjlDMzM4LjMgMzIwLjIgMjk5IDMwNCAyNTYgMzA0em00Ny42LTk2YTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAgLTY0IDB6bS0xMjggMzJhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDEgMCAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlU21pbGVCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzcuNiA2Mi4xQzE5Mi44IDMzNC41IDIxOC44IDM1MiAyNTYgMzUyczYzLjItMTcuNSA3OC40LTMzLjljOS05LjcgMjQuMi0xMC40IDMzLjktMS40czEwLjQgMjQuMiAxLjQgMzMuOWMtMjIgMjMuOC02MCA0OS40LTExMy42IDQ5LjRzLTkxLjctMjUuNS0xMTMuNi00OS40Yy05LTkuNy04LjQtMjQuOSAxLjQtMzMuOXMyNC45LTguNCAzMy45IDEuNHptNDAtODkuM2wwIDAgMCAwLS4yLS4yYy0uMi0uMi0uNC0uNS0uNy0uOWMtLjYtLjgtMS42LTItMi44LTMuNGMtMi41LTIuOC02LTYuNi0xMC4yLTEwLjNjLTguOC03LjgtMTguOC0xNC0yNy43LTE0cy0xOC45IDYuMi0yNy43IDE0Yy00LjIgMy43LTcuNyA3LjUtMTAuMiAxMC4zYy0xLjIgMS40LTIuMiAyLjYtMi44IDMuNGMtLjMgLjQtLjYgLjctLjcgLjlsLS4yIC4yIDAgMCAwIDAgMCAwYy0yLjEgMi44LTUuNyAzLjktOC45IDIuOHMtNS41LTQuMS01LjUtNy42YzAtMTcuOSA2LjctMzUuNiAxNi42LTQ4LjhjOS44LTEzIDIzLjktMjMuMiAzOS40LTIzLjJzMjkuNiAxMC4yIDM5LjQgMjMuMmM5LjkgMTMuMiAxNi42IDMwLjkgMTYuNiA0OC44YzAgMy40LTIuMiA2LjUtNS41IDcuNnMtNi45IDAtOC45LTIuOGwwIDAgMCAwem0xNjAgMGwwIDAtLjItLjJjLS4yLS4yLS40LS41LS43LS45Yy0uNi0uOC0xLjYtMi0yLjgtMy40Yy0yLjUtMi44LTYtNi42LTEwLjItMTAuM2MtOC44LTcuOC0xOC44LTE0LTI3LjctMTRzLTE4LjkgNi4yLTI3LjcgMTRjLTQuMiAzLjctNy43IDcuNS0xMC4yIDEwLjNjLTEuMiAxLjQtMi4yIDIuNi0yLjggMy40Yy0uMyAuNC0uNiAuNy0uNyAuOWwtLjIgLjIgMCAwIDAgMCAwIDBjLTIuMSAyLjgtNS43IDMuOS04LjkgMi44cy01LjUtNC4xLTUuNS03LjZjMC0xNy45IDYuNy0zNS42IDE2LjYtNDguOGM5LjgtMTMgMjMuOS0yMy4yIDM5LjQtMjMuMnMyOS42IDEwLjIgMzkuNCAyMy4yYzkuOSAxMy4yIDE2LjYgMzAuOSAxNi42IDQ4LjhjMCAzLjQtMi4yIDYuNS01LjUgNy42cy02LjkgMC04LjktMi44bDAgMCAwIDAgMCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGYWNlU21pbGVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzcuNiA2Mi4xQzE5Mi44IDMzNC41IDIxOC44IDM1MiAyNTYgMzUyczYzLjItMTcuNSA3OC40LTMzLjljOS05LjcgMjQuMi0xMC40IDMzLjktMS40czEwLjQgMjQuMiAxLjQgMzMuOWMtMjIgMjMuOC02MCA0OS40LTExMy42IDQ5LjRzLTkxLjctMjUuNS0xMTMuNi00OS40Yy05LTkuNy04LjQtMjQuOSAxLjQtMzMuOXMyNC45LTguNCAzMy45IDEuNHpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE2NS44IDIxLjdjLTcuNiA4LjEtMjAuMiA4LjUtMjguMyAuOXMtOC41LTIwLjItLjktMjguM2MxNC41LTE1LjUgMzUuMi0yMi4zIDU0LjYtMjIuM3M0MC4xIDYuOCA1NC42IDIyLjNjNy42IDguMSA3LjEgMjAuNy0uOSAyOC4zcy0yMC43IDcuMS0yOC4zLS45Yy01LjUtNS44LTE0LjgtOS43LTI1LjQtOS43cy0xOS45IDMuOC0yNS40IDkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVNtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzcuNiA2Mi4xQzE5Mi44IDMzNC41IDIxOC44IDM1MiAyNTYgMzUyczYzLjItMTcuNSA3OC40LTMzLjljOS05LjcgMjQuMi0xMC40IDMzLjktMS40czEwLjQgMjQuMiAxLjQgMzMuOWMtMjIgMjMuOC02MCA0OS40LTExMy42IDQ5LjRzLTkxLjctMjUuNS0xMTMuNi00OS40Yy05LTkuNy04LjQtMjQuOSAxLjQtMzMuOXMyNC45LTguNCAzMy45IDEuNHpNMTQ0LjQgMjA4YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTE5Mi0zMmEzMiAzMiAwIDEgMSAwIDY0IDMyIDMyIDAgMSAxIDAtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZhY2VTdXJwcmlzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMjU2QTIwOCAyMDggMCAxIDAgNDggMjU2YTIwOCAyMDggMCAxIDAgNDE2IDB6TTAgMjU2YTI1NiAyNTYgMCAxIDEgNTEyIDBBMjU2IDI1NiAwIDEgMSAwIDI1NnptMTc2LjQtODBhMzIgMzIgMCAxIDEgMCA2NCAzMiAzMiAwIDEgMSAwLTY0em0xMjggMzJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpNMjU2IDI4OGE2NCA2NCAwIDEgMSAwIDEyOCA2NCA2NCAwIDEgMSAwLTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmFjZVRpcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZBMjA4IDIwOCAwIDEgMCA0OCAyNTZhMjA4IDIwOCAwIDEgMCA0MTYgMHpNMCAyNTZhMjU2IDI1NiAwIDEgMSA1MTIgMEEyNTYgMjU2IDAgMSAxIDAgMjU2em0xNzYuNSA2NC4zQzE5Ni4xIDMwMi4xIDIyMy44IDI4OCAyNTYgMjg4czU5LjkgMTQuMSA3OS41IDMyLjNDMzU0LjUgMzM4LjEgMzY4IDM2MiAzNjggMzg0YzAgNS40LTIuNyAxMC40LTcuMiAxMy40cy0xMC4yIDMuNC0xNS4yIDEuM2wtMTcuMi03LjVjLTIyLjgtMTAtNDcuNS0xNS4xLTcyLjQtMTUuMXMtNDkuNiA1LjItNzIuNCAxNS4xbC0xNy4yIDcuNWMtNC45IDIuMi0xMC43IDEuNy0xNS4yLTEuM3MtNy4yLTgtNy4yLTEzLjRjMC0yMiAxMy41LTQ1LjkgMzIuNS02My43em0tNDMtMTczLjZsODkuOSA0Ny45YzEwLjcgNS43IDEwLjcgMjEuMSAwIDI2LjhsLTg5LjkgNDcuOWMtNy45IDQuMi0xNy41LTEuNS0xNy41LTEwLjVjMC0yLjggMS01LjUgMi44LTcuNmwzNi00My4yLTM2LTQzLjJjLTEuOC0yLjEtMi44LTQuOC0yLjgtNy42YzAtOSA5LjYtMTQuNyAxNy41LTEwLjV6TTM5NiAxNTcuMWMwIDIuOC0xIDUuNS0yLjggNy42bC0zNiA0My4yIDM2IDQzLjJjMS44IDIuMSAyLjggNC44IDIuOCA3LjZjMCA5LTkuNiAxNC43LTE3LjUgMTAuNWwtODkuOS00Ny45Yy0xMC43LTUuNy0xMC43LTIxLjEgMC0yNi44bDg5LjktNDcuOWM3LjktNC4yIDE3LjUgMS41IDE3LjUgMTAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NEgzMjBjOC44IDAgMTYtNy4yIDE2LTE2VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ4SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNnpNMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBIMjI5LjVjMTcgMCAzMy4zIDYuNyA0NS4zIDE4LjdsOTAuNSA5MC41YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTkyIDI3MlY0MDBjMCA2LjUtMy45IDEyLjMtOS45IDE0LjhzLTEyLjkgMS4xLTE3LjQtMy41TDEyOS40IDM3NkgxMTJjLTguOCAwLTE2LTcuMi0xNi0xNlYzMTJjMC04LjggNy4yLTE2IDE2LTE2aDE3LjRsMzUuMy0zNS4zYzQuNi00LjYgMTEuNS01LjkgMTcuNC0zLjVzOS45IDguMyA5LjkgMTQuOHptODUuOC00YzExLjYgMjAgMTguMiA0My4zIDE4LjIgNjhzLTYuNiA0OC0xOC4yIDY4Yy02LjYgMTEuNS0yMS4zIDE1LjQtMzIuOCA4LjhzLTE1LjQtMjEuMy04LjgtMzIuOGM3LjUtMTIuOSAxMS44LTI3LjkgMTEuOC00NHMtNC4zLTMxLjEtMTEuOC00NGMtNi42LTExLjUtMi43LTI2LjIgOC44LTMyLjhzMjYuMi0yLjcgMzIuOCA4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNkgyMjR2ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODBWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNkg2NHpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTk3IDI4OWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDc5IDMwM2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsNDggNDhjOS40IDkuNCAyNC42IDkuNCAzMy45IDBzOS40LTI0LjYgMC0zMy45bC0zMS0zMSAzMS0zMXpNMjU3IDI1NWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBzLTkuNCAyNC42IDAgMzMuOWwzMSAzMS0zMSAzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDQ4LTQ4YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUV4Y2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQ0OFY2NGMwLTguOCA3LjItMTYgMTYtMTZIMjI0djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTkwLjkgMjMzLjNjLTguMS0xMC41LTIzLjItMTIuMy0zMy43LTQuMnMtMTIuMyAyMy4yLTQuMiAzMy43TDE2MS42IDMyMGwtNDQuNSA1Ny4zYy04LjEgMTAuNS02LjMgMjUuNSA0LjIgMzMuN3MyNS41IDYuMyAzMy43LTQuMkwxOTIgMzU5LjFsMzcuMSA0Ny42YzguMSAxMC41IDIzLjIgMTIuMyAzMy43IDQuMnMxMi4zLTIzLjIgNC4yLTMzLjdMMjIyLjQgMzIwbDQ0LjUtNTcuM2M4LjEtMTAuNSA2LjMtMjUuNS00LjItMzMuN3MtMjUuNS02LjMtMzMuNyA0LjJMMTkyIDI4MC45bC0zNy4xLTQ3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZIMjI0djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjR6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTU0LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjc0LjcgMTguN0MyNjIuNyA2LjcgMjQ2LjUgMCAyMjkuNSAwSDY0em05NiAyNTZhMzIgMzIgMCAxIDAgLTY0IDAgMzIgMzIgMCAxIDAgNjQgMHptNjkuMiA0Ni45Yy0zLTQuMy03LjktNi45LTEzLjItNi45cy0xMC4yIDIuNi0xMy4yIDYuOWwtNDEuMyA1OS43LTExLjktMTkuMWMtMi45LTQuNy04LjEtNy41LTEzLjYtNy41cy0xMC42IDIuOC0xMy42IDcuNWwtNDAgNjRjLTMuMSA0LjktMy4yIDExLjEtLjQgMTYuMnM4LjIgOC4yIDE0IDguMmg0OCAzMiA0MCA3MmM2IDAgMTEuNC0zLjMgMTQuMi04LjZzMi40LTExLjYtMS0xNi41bC03Mi0xMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVMaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NjRjLTguOCAwLTE2LTcuMi0xNi0xNlY2NGMwLTguOCA3LjItMTYgMTYtMTZIMjI0djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjR6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTU0LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjc0LjcgMTguN0MyNjIuNyA2LjcgMjQ2LjUgMCAyMjkuNSAwSDY0em01NiAyNTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjY0YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDEyMHptMCA5NmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgyNjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NGw0OCAwIDAgNDgtNDggMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRMMCA2NEMwIDI4LjcgMjguNyAwIDY0IDBMMjI5LjUgMGMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w5MC41IDkwLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM0wzODQgMzA0bC00OCAwIDAtMTQ0LTgwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMybDAtODBMNjQgNDhjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDM4NGMwIDguOCA3LjIgMTYgMTYgMTZ6TTE3NiAzNTJsMzIgMGMzMC45IDAgNTYgMjUuMSA1NiA1NnMtMjUuMSA1Ni01NiA1NmwtMTYgMCAwIDMyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDggMC04MGMwLTguOCA3LjItMTYgMTYtMTZ6bTMyIDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0bC0xNiAwIDAgNDggMTYgMHptOTYtODBsMzIgMGMyNi41IDAgNDggMjEuNSA0OCA0OGwwIDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4bC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZsMC0xMjhjMC04LjggNy4yLTE2IDE2LTE2em0zMiAxMjhjOC44IDAgMTYtNy4yIDE2LTE2bDAtNjRjMC04LjgtNy4yLTE2LTE2LTE2bC0xNiAwIDAgOTYgMTYgMHptODAtMTEyYzAtOC44IDcuMi0xNiAxNi0xNmw0OCAwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2bC0zMiAwIDAgMzIgMzIgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtMzIgMCAwIDQ4YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNjQgMC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVBvd2VycG9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNDY0Yy04LjggMC0xNi03LjItMTYtMTZWNjRjMC04LjggNy4yLTE2IDE2LTE2SDIyNHY4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MFY0NDhjMCA4LjgtNy4yIDE2LTE2IDE2SDY0ek02NCAwQzI4LjcgMCAwIDI4LjcgMCA2NFY0NDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRIMzIwYzM1LjMgMCA2NC0yOC43IDY0LTY0VjE1NC41YzAtMTctNi43LTMzLjMtMTguNy00NS4zTDI3NC43IDE4LjdDMjYyLjcgNi43IDI0Ni41IDAgMjI5LjUgMEg2NHptNzIgMjA4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNFYzMzZ2NTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNFYzNjBoNDRjNDIgMCA3Ni0zNCA3Ni03NnMtMzQtNzYtNzYtNzZIMTM2em02OCAxMDRIMTYwVjI1Nmg0NGMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0NjRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MEgyNTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjQ4SDY0Yy04LjggMC0xNiA3LjItMTYgMTZWNDQ4YzAgOC44IDcuMiAxNiAxNiAxNkgzMjB6TTAgNjRDMCAyOC43IDI4LjcgMCA2NCAwSDIyOS41YzE3IDAgMzMuMyA2LjcgNDUuMyAxOC43bDkwLjUgOTAuNWMxMiAxMiAxOC43IDI4LjMgMTguNyA0NS4zVjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjR6TTgwIDI4OGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMnYxNmw0NC45LTI5LjljMi0xLjMgNC40LTIuMSA2LjgtMi4xYzYuOCAwIDEyLjMgNS41IDEyLjMgMTIuM1YzODcuN2MwIDYuOC01LjUgMTIuMy0xMi4zIDEyLjNjLTIuNCAwLTQuOC0uNy02LjgtMi4xTDI0MCAzNjh2MTZjMCAxNy43LTE0LjMgMzItMzIgMzJIMTEyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVXb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDQ0OFY2NGMwLTguOCA3LjItMTYgMTYtMTZIMjI0djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNnpNNjQgMEMyOC43IDAgMCAyOC43IDAgNjRWNDQ4YzAgMzUuMyAyOC43IDY0IDY0IDY0SDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNTQuNWMwLTE3LTYuNy0zMy4zLTE4LjctNDUuM0wyNzQuNyAxOC43QzI2Mi43IDYuNyAyNDYuNSAwIDIyOS41IDBINjR6bTU1IDI0MS4xYy0zLjgtMTIuNy0xNy4yLTE5LjktMjkuOS0xNi4xcy0xOS45IDE3LjItMTYuMSAyOS45bDQ4IDE2MGMzIDEwLjIgMTIuNCAxNy4xIDIzIDE3LjFzMTkuOS03IDIzLTE3LjFsMjUtODMuNCAyNSA4My40YzMgMTAuMiAxMi40IDE3LjEgMjMgMTcuMXMxOS45LTcgMjMtMTcuMWw0OC0xNjBjMy44LTEyLjctMy40LTI2LjEtMTYuMS0yOS45cy0yNi4xIDMuNC0yOS45IDE2LjFsLTI1IDgzLjQtMjUtODMuNGMtMy0xMC4yLTEyLjQtMTcuMS0yMy0xNy4xcy0xOS45IDctMjMgMTcuMWwtMjUgODMuNC0yNS04My40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlWmlwcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjY0YzAtOC44IDcuMi0xNiAxNi0xNmg0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2aDQ4djgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgwVjQ0OGMwIDguOC03LjIgMTYtMTYgMTZINjR6TTY0IDBDMjguNyAwIDAgMjguNyAwIDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NEgzMjBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTU0LjVjMC0xNy02LjctMzMuMy0xOC43LTQ1LjNMMjc0LjcgMTguN0MyNjIuNyA2LjcgMjQ2LjUgMCAyMjkuNSAwSDY0em00OCAxMTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDEyOGMtOC44IDAtMTYgNy4yLTE2IDE2em0wIDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxMjhjLTguOCAwLTE2IDcuMi0xNiAxNnptLTYuMyA3MS44TDgyLjEgMzM1LjljLTEuNCA1LjQtMi4xIDEwLjktMi4xIDE2LjRjMCAzNS4yIDI4LjggNjMuNyA2NCA2My43czY0LTI4LjUgNjQtNjMuN2MwLTUuNS0uNy0xMS4xLTIuMS0xNi40bC0yMy41LTg4LjJjLTMuNy0xNC0xNi40LTIzLjgtMzAuOS0yMy44SDEzNi42Yy0xNC41IDAtMjcuMiA5LjctMzAuOSAyMy44ek0xMjggMzM2aDMyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2SDEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDY0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBIMjU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0OEg2NGMtOC44IDAtMTYgNy4yLTE2IDE2VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzIwek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgyMjkuNWMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w5MC41IDkwLjVjMTIgMTIgMTguNyAyOC4zIDE4LjcgNDUuM1Y0NDhjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4IDI0QzQ4IDEwLjcgMzcuMyAwIDI0IDBTMCAxMC43IDAgMjRWNjQgMzUwLjUgNDAwdjg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzg4bDgwLjMtMjAuMWM0MS4xLTEwLjMgODQuNi01LjUgMTIyLjUgMTMuNGM0NC4yIDIyLjEgOTUuNSAyNC44IDE0MS43IDcuNGwzNC43LTEzYzEyLjUtNC43IDIwLjgtMTYuNiAyMC44LTMwVjY2LjFjMC0yMy0yNC4yLTM4LTQ0LjgtMjcuN2wtOS42IDQuOGMtNDYuMyAyMy4yLTEwMC44IDIzLjItMTQ3LjEgMGMtMzUuMS0xNy42LTc1LjQtMjItMTEzLjUtMTIuNUw0OCA1MlYyNHptMCA3Ny41bDk2LjYtMjQuMmMyNy02LjcgNTUuNS0zLjYgODAuNCA4LjhjNTQuOSAyNy40IDExOC43IDI5LjcgMTc1IDYuOFYzMzQuN2wtMjQuNCA5LjFjLTMzLjcgMTIuNi03MS4yIDEwLjctMTAzLjQtNS40Yy00OC4yLTI0LjEtMTAzLjMtMzAuMS0xNTUuNi0xNy4xTDQ4IDMzOC41di0yMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Zsb3BweURpc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggOTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2VjE3MC41YzAtNC4yLTEuNy04LjMtNC43LTExLjNsMzMuOS0zMy45YzEyIDEyIDE4LjcgMjguMyAxOC43IDQ1LjNWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzMDkuNWMxNyAwIDMzLjMgNi43IDQ1LjMgMTguN2w3NC41IDc0LjUtMzMuOSAzMy45TDMyMC44IDg0LjdjLS4zLS4zLS41LS41LS44LS44VjE4NGMwIDEzLjMtMTAuNyAyNC0yNCAyNEgxMDRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjgwSDY0Yy04LjggMC0xNiA3LjItMTYgMTZ6bTgwLTE2djgwSDI3MlY4MEgxMjh6bTMyIDI0MGE2NCA2NCAwIDEgMSAxMjggMCA2NCA2NCAwIDEgMSAtMTI4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbGRlckNsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDI4OS45TDI0NyA1My4xQzIzMy41IDM5LjYgMjE1LjIgMzIgMTk2LjEgMzJINjR6TTQ4IDk2YzAtOC44IDcuMi0xNiAxNi0xNkgxOTYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDQ1LjMgNDUuM2M3LjUgNy41IDE3LjcgMTEuNyAyOC4zIDExLjdINDQ4YzguOCAwIDE2IDcuMiAxNiAxNnYzMkg0OFY5NnptMCAxNDRINDY0VjQxNmMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbGRlck9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ4MGg0OGMxMS40IDAgMjEuOS02IDI3LjYtMTUuOWwxMTItMTkyYzUuOC05LjkgNS44LTIyLjEgLjEtMzIuMVM1NTUuNSAyMjQgNTQ0IDIyNEgxNDRjLTExLjQgMC0yMS45IDYtMjcuNiAxNS45TDQ4IDM1Ny4xVjk2YzAtOC44IDcuMi0xNiAxNi0xNkgxODEuNWM0LjIgMCA4LjMgMS43IDExLjMgNC43bDI2LjUgMjYuNWMyMSAyMSA0OS41IDMyLjggNzkuMiAzMi44SDQxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MzJoNDhWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDI5OC41Yy0xNyAwLTMzLjMtNi43LTQ1LjMtMTguN0wyMjYuNyA1MC43Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDY0QzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDg3LjcgMzg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgxOTYuMWMxOS4xIDAgMzcuNCA3LjYgNTAuOSAyMS4xTDI4OS45IDk2SDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2ek02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZINDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2SDI4Ni42Yy0xMC42IDAtMjAuOC00LjItMjguMy0xMS43TDIxMy4xIDg3Yy00LjUtNC41LTEwLjYtNy0xNy03SDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGb250QXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS43IDk2QzEwNi4zIDg2LjggMTE2IDcwLjUgMTE2IDUyQzExNiAyMy4zIDkyLjcgMCA2NCAwUzEyIDIzLjMgMTIgNTJjMCAxNi43IDcuOCAzMS41IDIwIDQxbDAgMyAwIDQ4IDAgMjU2IDAgNDggMCA2NCA0OCAwIDAtNjQgMzg5LjYgMGMxNC42IDAgMjYuNC0xMS44IDI2LjQtMjYuNGMwLTMuNy0uOC03LjMtMi4zLTEwLjdMNDMyIDI3Mmw2MS43LTEzOC45YzEuNS0zLjQgMi4zLTcgMi4zLTEwLjdjMC0xNC42LTExLjgtMjYuNC0yNi40LTI2LjRMOTEuNyA5NnpNODAgNDAwbDAtMjU2IDM1Ni40IDBMMzg4LjEgMjUyLjVjLTUuNSAxMi40LTUuNSAyNi42IDAgMzlMNDM2LjQgNDAwIDgwIDQwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRnV0Ym9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNS40IDM2MS4zbC04OS43LTZjLTUuMi0uMy0xMC4zIDEuMS0xNC41IDQuMnMtNy4yIDcuNC04LjQgMTIuNWwtMjIgODcuMmMtMTQuNCAzLjItMjkuNCA0LjgtNDQuOCA0LjhzLTMwLjMtMS43LTQ0LjgtNC44bC0yMi04Ny4yYy0xLjMtNS00LjMtOS40LTguNC0xMi41cy05LjMtNC41LTE0LjUtNC4ybC04OS43IDZDNjEuNyAzMzUuOSA1MS45IDMwNyA0OSAyNzYuMkwxMjUgMjI4LjNjNC40LTIuOCA3LjYtNyA5LjItMTEuOXMxLjQtMTAuMi0uNS0xNUwxMDAuNCAxMThjMTkuOS0yMi40IDQ0LjYtNDAuNSA3Mi40LTUyLjdsNjkuMSA1Ny42YzQgMy4zIDkgNS4xIDE0LjEgNS4xczEwLjItMS44IDE0LjEtNS4xbDY5LjEtNTcuNmMyNy44IDEyLjIgNTIuNSAzMC4zIDcyLjQgNTIuN2wtMzMuNCA4My40Yy0xLjkgNC44LTIuMSAxMC4xLS41IDE1czQuOSA5LjEgOS4yIDExLjlMNDYzIDI3Ni4yYy0zIDMwLjgtMTIuNyA1OS43LTI3LjYgODUuMXpNMjU2IDQ4bC45IDBoLTEuOGwuOSAwek01Ni43IDE5Ni4yYy45LTMgMS45LTYuMSAyLjktOS4xbC0yLjkgOS4xek0xMzIgNDIzbDMuOCAyLjdjLTEuMy0uOS0yLjUtMS44LTMuOC0yLjd6bTI0OC4xLS4xYy0xLjMgMS0yLjcgMi00IDIuOWw0LTIuOXptNzUuMi0yMjYuNmwtMy05LjJjMS4xIDMgMi4xIDYuMSAzIDkuMnpNMjU2IDUxMkEyNTYgMjU2IDAgMSAwIDI1NiAwYTI1NiAyNTYgMCAxIDAgMCA1MTJ6bTE0LjEtMzI1LjdjLTguNC02LjEtMTkuOC02LjEtMjguMiAwTDE5NCAyMjFjLTguNCA2LjEtMTEuOSAxNi45LTguNyAyNi44bDE4LjMgNTYuM2MzLjIgOS45IDEyLjQgMTYuNiAyMi44IDE2LjZoNTkuMmMxMC40IDAgMTkuNi02LjcgMjIuOC0xNi42bDE4LjMtNTYuM2MzLjItOS45LS4zLTIwLjctOC43LTI2LjhsLTQ3LjktMzQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR2VtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2OC41IDcyTDI1NiAxNjVsODcuNS05M2gtMTc1ek0zODMuOSA5OS4xTDMxMS41IDE3NmgxMjlMMzgzLjkgOTkuMXptNTAgMTI0LjlIMjU2IDc4LjFMMjU2IDQyMC4zIDQzMy45IDIyNHpNNzEuNSAxNzZoMTI5TDEyOC4xIDk5LjEgNzEuNSAxNzZ6bTQzNC4zIDQwLjFsLTIzMiAyNTZjLTQuNSA1LTExIDcuOS0xNy44IDcuOXMtMTMuMi0yLjktMTcuOC03LjlsLTIzMi0yNTZjLTcuNy04LjUtOC4zLTIxLjItMS41LTMwLjRsMTEyLTE1MmM0LjUtNi4xIDExLjctOS44IDE5LjMtOS44SDM3NmM3LjYgMCAxNC44IDMuNiAxOS4zIDkuOGwxMTIgMTUyYzYuOCA5LjIgNi4xIDIxLjktMS41IDMwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRCYWNrRmlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmMwIDkuMSA1LjEgMTcuNCAxMy4zIDIxLjVzMTcuOSAzLjIgMjUuMS0yLjNjMi43LTIgNi0zLjIgOS42LTMuMmM4LjggMCAxNiA3LjIgMTYgMTZjMCA5LjEgNS4xIDE3LjQgMTMuMyAyMS41czE3LjkgMy4yIDI1LjEtMi4zYzIuNy0yIDYtMy4yIDkuNi0zLjJjOC44IDAgMTYgNy4yIDE2IDE2YzAgOS4xIDUuMSAxNy40IDEzLjMgMjEuNXMxNy45IDMuMiAyNS4xLTIuM2MyLjctMiA2LTMuMiA5LjYtMy4yYzguOCAwIDE2IDcuMiAxNiAxNlYyNjRjMCAzMS4zLTIwIDU4LTQ4IDY3LjljLTkuNiAzLjQtMTYgMTIuNS0xNiAyMi42VjQ4OGMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjM3MC4yYzM4LTIwLjEgNjQtNjAuMSA2NC0xMDYuMlYxNjBjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTIuOCAwLTUuNiAuMi04LjMgLjVDMzMyLjggNzcuMSAzMTEuOSA2NCAyODggNjRjLTIuOCAwLTUuNiAuMi04LjMgLjVDMjY4LjggNDUuMSAyNDcuOSAzMiAyMjQgMzJjLTIuOCAwLTUuNiAuMi04LjMgLjVDMjA0LjggMTMuMSAxODMuOSAwIDE2MCAwQzEyNC43IDAgOTYgMjguNyA5NiA2NHY2NC4zYy0xMS43IDcuNC0yMi41IDE2LjQtMzIgMjYuOWwxNy44IDE2LjFMNjQgMTU1LjJsLTkuNCAxMC41QzQwIDE4MS44IDMyIDIwMi44IDMyIDIyNC42djEyLjhjMCA0OS42IDI0LjIgOTYuMSA2NC44IDEyNC41bDEzLjgtMTkuN0w5Ni44IDM2MS45bDguOSA2LjJjNi45IDQuOCAxNC40IDguNiAyMi4zIDExLjNWNDg4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMzU5LjljMC0xMi42LTkuOC0yMy4xLTIyLjQtMjMuOWMtNy4zLS41LTE0LjMtMi45LTIwLjMtNy4xbC0xMy4xIDE4LjcgMTMuMS0xOC43LTguOS02LjJDOTYuNiAzMDMuMSA4MCAyNzEuMyA4MCAyMzcuNFYyMjQuNmMwLTkuOSAzLjctMTkuNCAxMC4zLTI2LjhsOS40LTEwLjVjMy44LTQuMiA3LjktOC4xIDEyLjMtMTEuNlYyMDhjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxNDIuMyAxMjggNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzIgMTEyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0SDI0MGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NEgxMzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRIMjg4YzQuNSAwIDguOSAxLjMgMTIuNyAzLjZsNjQgNDBjNyA0LjQgMTEuMyAxMi4xIDExLjMgMjAuNHYyNGMwIDEzLjMtMTAuNyAyNC0yNCAyNHMtMjQtMTAuNy0yNC0yNFY0MTMuM0wyODEuMSAzODRIMTM2Yy0zOS44IDAtNzItMzIuMi03Mi03MnMzMi4yLTcyIDcyLTcySDI0MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkg3MmMtMzkuOCAwLTcyLTMyLjItNzItNzJTMzIuMiA2NCA3MiA2NEgyODEuNmM0Ni43IDAgOTAuOSAyMS41IDExOS43IDU4LjNsNzguNCAxMDAuMWMyMC45IDI2LjcgMzIuMyA1OS43IDMyLjMgOTMuN1Y0MjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWMzE2LjFjMC0yMy4yLTcuOC00NS44LTIyLjEtNjQuMUwzNjMuNSAxNTEuOWMtMTkuNy0yNS4yLTQ5LjktMzkuOS04MS45LTM5LjlINzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQZWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTAuOCAxLjRjLTM1LjItMy43LTY2LjYgMjEuOC03MC4zIDU3TDE3NCAxMTkgMTU2LjcgNjkuNkMxNDUgMzYuMyAxMDguNCAxOC44IDc1LjEgMzAuNVMyNC4yIDc4LjggMzUuOSAxMTIuMUw4OC43IDI2Mi4yQzczLjUgMjc2LjcgNjQgMjk3LjMgNjQgMzIwdjAgMjRjMCA5Mi44IDc1LjIgMTY4IDE2OCAxNjhoNDhjOTIuOCAwIDE2OC03NS4yIDE2OC0xNjhWMjcyIDI1NiAyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTcuOSAwLTE1LjQgMS40LTIyLjQgNGMtMTAuNC0yMS4zLTMyLjMtMzYtNTcuNi0zNmMtLjcgMC0xLjUgMC0yLjIgMGw1LjktNTYuM2MzLjctMzUuMi0yMS44LTY2LjYtNTctNzAuM3ptLS4yIDE1NS40QzI0My45IDE2Ni45IDI0MCAxNzkgMjQwIDE5MnY0OGMwIC43IDAgMS40IDAgMmMtNS4xLTEuMy0xMC41LTItMTYtMmgtNy40bC01LjQtMTUuMyAxNy0xNjEuM2MuOS04LjggOC44LTE1LjIgMTcuNi0xNC4yczE1LjIgOC44IDE0LjIgMTcuNmwtOS41IDkwLjF6TTExMS40IDg1LjZMMTY1LjcgMjQwSDE0NGMtNCAwLTggLjMtMTEuOSAuOUw4MS4yIDk2LjJjLTIuOS04LjMgMS41LTE3LjUgOS44LTIwLjRzMTcuNSAxLjUgMjAuNCA5Ljh6TTI4OCAxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYzMiAxNmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxOTJ6bTM4LjQgMTA4YzEwLjQgMjEuMyAzMi4zIDM2IDU3LjYgMzZjNS41IDAgMTAuOS0uNyAxNi0ydjEwYzAgNjYuMy01My43IDEyMC0xMjAgMTIwSDIzMmMtNjYuMyAwLTEyMC01My43LTEyMC0xMjBsMC0yNCAwIDBjMC0xNy43IDE0LjMtMzIgMzItMzJoODBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZIMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDQwYzM1LjMgMCA2NC0yOC43IDY0LTY0YzAtLjcgMC0xLjQgMC0yYzUuMSAxLjMgMTAuNSAyIDE2IDJjNy45IDAgMTUuNC0xLjQgMjIuNC00ek00MDAgMjcyYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI0MCAyMjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYzMiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA0NDhsMC0xNzcuNmM1LjIgMSAxMC41IDEuNiAxNiAxLjZsMTYgMCAwIDMyIDAgMTQ0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2ek04MCAyMjRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyYzAgMCAwIDAgMCAwbDAtMjRjMC02Ni4zIDUzLjctMTIwIDEyMC0xMjBsNDggMGM1Mi41IDAgOTcuMSAzMy43IDExMy40IDgwLjdjLTMuMS0uNS02LjItLjctOS40LS43Yy0yMCAwLTM3LjkgOS4yLTQ5LjcgMjMuNmMtOS00LjktMTkuNC03LjYtMzAuMy03LjZjLTE1LjEgMC0yOSA1LjMtNDAgMTRjLTExLTguOC0yNC45LTE0LTQwLTE0bC00MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0bDQwIDBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZsLTQwIDAtNDAgMHpNMCAxOTJzMCAwIDAgMGMwIDE4IDYgMzQuNiAxNiA0OGwwIDIwOGMwIDM1LjMgMjguNyA2NCA2NCA2NHM2NC0yOC43IDY0LTY0bDAtODJjNS4xIDEuMyAxMC41IDIgMTYgMmMyNS4zIDAgNDcuMi0xNC43IDU3LjYtMzZjNyAyLjYgMTQuNSA0IDIyLjQgNGMyMCAwIDM3LjktOS4yIDQ5LjctMjMuNmM5IDQuOSAxOS40IDcuNiAzMC4zIDcuNmMzNS4zIDAgNjQtMjguNyA2NC02NGwwLTY0IDAtMjRDMzg0IDc1LjIgMzA4LjggMCAyMTYgMEwxNjggMEM3NS4yIDAgMCA3NS4yIDAgMTY4bDAgMjR6bTMzNiA2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTQ4IDAtMTZjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDY0ek0xNjAgMjcyYzUuNSAwIDEwLjktLjcgMTYtMmwwIDIgMCAzMmMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmwwLTMyIDE2IDB6bTY0LTI0bDAtNDBjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNmwwIDQ4IDAgMTZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZsMC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMjhsMTc3LjYgMGMtMSA1LjItMS42IDEwLjUtMS42IDE2bDAgMTYtMzIgMEw2NCAxNjBjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZ6bTIyNCAxNmMwLTE3LjcgMTQuMy0zMiAzMi0zMmMwIDAgMCAwIDAgMGwyNCAwYzY2LjMgMCAxMjAgNTMuNyAxMjAgMTIwbDAgNDhjMCA1Mi41LTMzLjcgOTcuMS04MC43IDExMy40Yy41LTMuMSAuNy02LjIgLjctOS40YzAtMjAtOS4yLTM3LjktMjMuNi00OS43YzQuOS05IDcuNi0xOS40IDcuNi0zMC4zYzAtMTUuMS01LjMtMjktMTQtNDBjOC44LTExIDE0LTI0LjkgMTQtNDBsMC00MGMwLTEzLjMtMTAuNy0yNC0yNC0yNHMtMjQgMTAuNy0yNCAyNGwwIDQwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2bDAtNDAgMC00MHptMzItODBzMCAwIDAgMGMtMTggMC0zNC42IDYtNDggMTZMNjQgODBDMjguNyA4MCAwIDEwOC43IDAgMTQ0czI4LjcgNjQgNjQgNjRsODIgMGMtMS4zIDUuMS0yIDEwLjUtMiAxNmMwIDI1LjMgMTQuNyA0Ny4yIDM2IDU3LjZjLTIuNiA3LTQgMTQuNS00IDIyLjRjMCAyMCA5LjIgMzcuOSAyMy42IDQ5LjdjLTQuOSA5LTcuNiAxOS40LTcuNiAzMC4zYzAgMzUuMyAyOC43IDY0IDY0IDY0bDY0IDAgMjQgMGM5Mi44IDAgMTY4LTc1LjIgMTY4LTE2OGwwLTQ4YzAtOTIuOC03NS4yLTE2OC0xNjgtMTY4bC0yNCAwek0yNTYgNDAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDQ4IDAgMTYgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNjQgMHpNMjQwIDIyNGMwIDUuNSAuNyAxMC45IDIgMTZsLTIgMC0zMiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDMyIDAgMCAxNnptMjQgNjRsNDAgMGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNmwtNDggMC0xNiAwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2bDI0IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxMjhsLTE3Ny42IDBjMSA1LjIgMS42IDEwLjUgMS42IDE2bDAgMTYgMzIgMCAxNDQgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNnpNMjI0IDE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMmMwIDAgMCAwIDAgMGwtMjQgMGMtNjYuMyAwLTEyMCA1My43LTEyMCAxMjBsMCA0OGMwIDUyLjUgMzMuNyA5Ny4xIDgwLjcgMTEzLjRjLS41LTMuMS0uNy02LjItLjctOS40YzAtMjAgOS4yLTM3LjkgMjMuNi00OS43Yy00LjktOS03LjYtMTkuNC03LjYtMzAuM2MwLTE1LjEgNS4zLTI5IDE0LTQwYy04LjgtMTEtMTQtMjQuOS0xNC00MGwwLTQwYzAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRsMCA0MGMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2bDAtNDAgMC00MHpNMTkyIDY0czAgMCAwIDBjMTggMCAzNC42IDYgNDggMTZsMjA4IDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRsLTgyIDBjMS4zIDUuMSAyIDEwLjUgMiAxNmMwIDI1LjMtMTQuNyA0Ny4yLTM2IDU3LjZjMi42IDcgNCAxNC41IDQgMjIuNGMwIDIwLTkuMiAzNy45LTIzLjYgNDkuN2M0LjkgOSA3LjYgMTkuNCA3LjYgMzAuM2MwIDM1LjMtMjguNyA2NC02NCA2NGwtNjQgMC0yNCAwQzc1LjIgNDQ4IDAgMzcyLjggMCAyODBsMC00OEMwIDEzOS4yIDc1LjIgNjQgMTY4IDY0bDI0IDB6bTY0IDMzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtNDggMC0xNiAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDY0IDB6bTE2LTE3NmMwIDUuNS0uNyAxMC45LTIgMTZsMiAwIDMyIDBjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZsLTMyIDAgMCAxNnptLTI0IDY0bC00MCAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2bDQ4IDAgMTYgMGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmwtMjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgNjRWMjQxLjZjNS4yLTEgMTAuNS0xLjYgMTYtMS42SDk2VjIwOCA2NGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnpNODAgMjg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMmMwIDAgMCAwIDAgMHYyNGMwIDY2LjMgNTMuNyAxMjAgMTIwIDEyMGg0OGM1Mi41IDAgOTcuMS0zMy43IDExMy40LTgwLjdjLTMuMSAuNS02LjIgLjctOS40IC43Yy0yMCAwLTM3LjktOS4yLTQ5LjctMjMuNmMtOSA0LjktMTkuNCA3LjYtMzAuMyA3LjZjLTE1LjEgMC0yOS01LjMtNDAtMTRjLTExIDguOC0yNC45IDE0LTQwIDE0SDEyMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg0MGM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgxMjAgODB6TTAgMzIwczAgMCAwIDBjMC0xOCA2LTM0LjYgMTYtNDhWNjRDMTYgMjguNyA0NC43IDAgODAgMHM2NCAyOC43IDY0IDY0djgyYzUuMS0xLjMgMTAuNS0yIDE2LTJjMjUuMyAwIDQ3LjIgMTQuNyA1Ny42IDM2YzctMi42IDE0LjUtNCAyMi40LTRjMjAgMCAzNy45IDkuMiA0OS43IDIzLjZjOS00LjkgMTkuNC03LjYgMzAuMy03LjZjMzUuMyAwIDY0IDI4LjcgNjQgNjR2NjQgMjRjMCA5Mi44LTc1LjIgMTY4LTE2OCAxNjhIMTY4Qzc1LjIgNTEyIDAgNDM2LjggMCAzNDRWMzIwem0zMzYtNjRjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2NDggMTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNTZ6TTE2MCAyNDBjNS41IDAgMTAuOSAuNyAxNiAydi0yVjIwOGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYzMmgxNnptNjQgMjR2NDBjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYyNTYgMjQwYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlYyMDBjMCAxMC4zIDYuNiAxOS41IDE2LjQgMjIuOHMyMC42LS4xIDI2LjgtOC4zYzMtMy45IDcuNi02LjQgMTIuOC02LjRjOC44IDAgMTYgNy4yIDE2IDE2YzAgMTAuMyA2LjYgMTkuNSAxNi40IDIyLjhzMjAuNi0uMSAyNi44LTguM2MzLTMuOSA3LjYtNi40IDEyLjgtNi40YzcuOCAwIDE0LjMgNS42IDE1LjcgMTNjMS42IDguMiA3LjMgMTUuMSAxNS4xIDE4czE2LjcgMS42IDIzLjMtMy42YzIuNy0yLjEgNi4xLTMuNCA5LjktMy40YzguOCAwIDE2IDcuMiAxNiAxNmwwIDE2VjM5MmMwIDM5LjgtMzIuMiA3Mi03MiA3MkgyNzIgMjEyLjNoLS45Yy0zNy40IDAtNzIuNC0xOC43LTkzLjItNDkuOUw1MC43IDMxMi45Yy00LjktNy40LTIuOS0xNy4zIDQuNC0yMi4yczE3LjMtMi45IDIyLjIgNC40TDExNiAzNTMuMmM1LjkgOC44IDE2LjggMTIuNyAyNi45IDkuN3MxNy0xMi40IDE3LTIzVjMyMCA2NHpNMTc2IDBjLTM1LjMgMC02NCAyOC43LTY0IDY0VjI2MS43QzkxLjIgMjM4IDU1LjUgMjMyLjggMjguNSAyNTAuN0MtLjkgMjcwLjQtOC45IDMxMC4xIDEwLjggMzM5LjVMNzguMyA0NDAuOGMyOS43IDQ0LjUgNzkuNiA3MS4yIDEzMy4xIDcxLjJoLjlIMjcyaDU2YzY2LjMgMCAxMjAtNTMuNyAxMjAtMTIwVjI4OGwwLTE2YzAtMzUuMy0yOC43LTY0LTY0LTY0Yy00LjUgMC04LjggLjUtMTMgMS4zYy0xMS43LTE1LjQtMzAuMi0yNS4zLTUxLTI1LjNjLTYuOSAwLTEzLjUgMS4xLTE5LjcgMy4xQzI4OC43IDE3MC43IDI2OS42IDE2MCAyNDggMTYwYy0yLjcgMC01LjQgLjItOCAuNVY2NGMwLTM1LjMtMjguNy02NC02NC02NHptNDggMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzA0em00OC0xNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnptODAgMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYzMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRTY2lzc29ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMiAyNzYuM2MtMS4yLTM1LjMgMjYuNC02NSA2MS43LTY2LjJsMy4zLS4xTDU3IDIwOC4xQzIyLjUgMjAwLjUgLjcgMTY2LjMgOC4zIDEzMS44UzUwLjIgNzUuNSA4NC43IDgzLjJsMTczIDM4LjNjMi4zLTIuOSA0LjctNS43IDcuMS04LjVsMTguNC0yMC4zQzI5OS45IDc0LjUgMzIzLjUgNjQgMzQ4LjMgNjRsMTAuMiAwYzU0LjEgMCAxMDQuMSAyOC43IDEzMS4zIDc1LjRsMS41IDIuNmMxMy42IDIzLjIgMjAuNyA0OS43IDIwLjcgNzYuNkw1MTIgMzQ0YzAgNjYuMy01My43IDEyMC0xMjAgMTIwbC04IDAtOTYgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRjMC0yLjggLjItNS42IC41LTguM2MtMTkuNC0xMS0zMi41LTMxLjgtMzIuNS01NS43YzAtLjggMC0xLjYgMC0yLjRMNjYuNCAzMzhjLTM1LjMgMS4yLTY1LTI2LjQtNjYuMi02MS43em02My40LTE4LjJjLTguOCAuMy0xNS43IDcuNy0xNS40IDE2LjVzNy43IDE1LjcgMTYuNSAxNS40bDE2MS41LTUuNmM5LjgtLjMgMTguNyA1LjMgMjIuNyAxNC4yczIuMiAxOS4zLTQuNSAyNi40Yy0yLjggMi45LTQuNCA2LjctNC40IDExYzAgOC44IDcuMiAxNiAxNiAxNmM5LjEgMCAxNy40IDUuMSAyMS41IDEzLjNzMy4yIDE3LjktMi4zIDI1LjFjLTIgMi43LTMuMiA2LTMuMiA5LjZjMCA4LjggNy4yIDE2IDE2IDE2bDk2IDAgOCAwYzM5LjggMCA3Mi0zMi4yIDcyLTcybDAtMTI1LjRjMC0xOC40LTQuOS0zNi41LTE0LjItNTIuNGwtMS41LTIuNmMtMTguNi0zMi01Mi44LTUxLjYtODkuOC01MS42bC0xMC4yIDBjLTExLjMgMC0yMiA0LjgtMjkuNiAxMy4xbC0xNy41LTE1LjkgMTcuNSAxNS45LTE4LjQgMjAuM2MtLjYgLjYtMS4xIDEuMy0xLjcgMS45bDU3IDEzLjJjOC42IDIgMTQgMTAuNiAxMiAxOS4ycy0xMC42IDE0LTE5LjIgMTJsLTg1LjYtMTkuN0w3NC4zIDEzMGMtOC42LTEuOS0xNy4yIDMuNS0xOS4xIDEyLjJzMy41IDE3LjIgMTIuMiAxOS4xbDE4Ny41IDQxLjZjMTAuMiAyLjMgMTcuOCAxMC45IDE4LjcgMjEuNGwuMSAxYy42IDYuNi0xLjUgMTMuMS01LjggMTguMXMtMTAuNiA3LjktMTcuMiA4LjJMNjMuNiAyNTguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFNwb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MC4yIDgwLjhDMTYxIDQ3IDE4MC44IDEyIDIxNC42IDIuNGMzNC05LjYgNjkuNCAxMC4yIDc5IDQ0LjJsMzAuMyAxMDcuMUwzMzcuMSA4NGM2LjYtMzQuNyA0MC4xLTU3LjUgNzQuOC01MC45YzMxLjQgNiA1MyAzMy45IDUyIDY0LjljMTAtMi42IDIwLjgtMi44IDMxLjUtLjFjMzQuMyA4LjYgNTUuMSA0My4zIDQ2LjYgNzcuNkw0ODYuNyAzOTcuMkM0NjkuOCA0NjQuNyA0MDkuMiA1MTIgMzM5LjYgNTEyYy0xMS4yIDAtMjIuNSAwLTMzLjcgMGMtNTYuOSAwLTExMi4yLTE5LTE1Ny4yLTUzLjlsLTkyLTcxLjZjLTI3LjktMjEuNy0zMi45LTYxLjktMTEuMi04OS44czYxLjktMzIuOSA4OS44LTExLjJsMTcgMTMuMkwxMDAuNSAxNjcuNWMtMTMtMzIuOSAzLjItNzAuMSAzNi04M2MxMS4xLTQuNCAyMi43LTUuNCAzMy43LTMuN3ptNzcuMS0yMS4yYy0yLjQtOC41LTExLjItMTMuNC0xOS43LTExcy0xMy40IDExLjItMTEgMTkuN2w1NC44IDE4Mi40YzMuNSAxMi4zLTMuMyAyNS4yLTE1LjQgMjkuM3MtMjUuMy0yLTMwLTEzLjlMMTc0LjkgMTM4LjFjLTMuMi04LjItMTIuNS0xMi4zLTIwLjgtOXMtMTIuMyAxMi41LTkgMjAuOGw3My4zIDE4NS42YzEyIDMwLjMtMjMuNyA1Ny00OS40IDM3bC02My4xLTQ5LjFjLTctNS40LTE3LTQuMi0yMi41IDIuOHMtNC4yIDE3IDIuOCAyMi41bDkyIDcxLjZjMzYuNSAyOC40IDgxLjQgNDMuOCAxMjcuNyA0My44YzExLjIgMCAyMi41IDAgMzMuNyAwYzQ3LjUgMCA4OS0zMi40IDEwMC41LTc4LjVsNTUuNC0yMjEuNmMyLjEtOC42LTMuMS0xNy4zLTExLjYtMTkuNHMtMTcuMyAzLjEtMTkuNCAxMS42bC0yNiAxMDRDNDM1LjYgMjcxLjggNDI1IDI4MCA0MTMgMjgwYy0xNi41IDAtMjguOS0xNS0yNS44LTMxLjJMNDE1LjcgOTljMS43LTguNy00LTE3LjEtMTIuNy0xOC43cy0xNy4xIDQtMTguNyAxMi43TDM1Mi41IDI2MGMtMi4yIDExLjYtMTIuNCAyMC0yNC4yIDIwYy0xMSAwLTIwLjctNy4zLTIzLjctMTcuOUwyNDcuNCA1OS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwYy0yNS4zIDAtNDcuMiAxNC43LTU3LjYgMzZjLTctMi42LTE0LjUtNC0yMi40LTRjLTM1LjMgMC02NCAyOC43LTY0IDY0VjI2MS41bC0yLjctMi43Yy0yNS0yNS02NS41LTI1LTkwLjUgMHMtMjUgNjUuNSAwIDkwLjVMMTA2LjUgNDM3YzQ4IDQ4IDExMy4xIDc1IDE4MSA3NUgyOTZoOGMxLjUgMCAzLS4xIDQuNS0uNGM5MS43LTYuMiAxNjUtNzkuNCAxNzEuMS0xNzEuMWMuMy0xLjUgLjQtMyAuNC00LjVWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0Yy01LjUgMC0xMC45IC43LTE2IDJWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTcuOSAwLTE1LjQgMS40LTIyLjQgNEMzMDMuMiAxNC43IDI4MS4zIDAgMjU2IDB6TTI0MCA5Ni4xYzAgMCAwLS4xIDAtLjFWNjRjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNlY5NS45YzAgMCAwIC4xIDAgLjFWMjMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWOTZjMCAwIDAgMCAwLS4xYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2NTUuOWMwIDAgMCAuMSAwIC4xdjgwYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTYwLjFjMCAwIDAtLjEgMC0uMWMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2VjMzMi45Yy0uMSAuNi0uMSAxLjMtLjIgMS45Yy0zLjQgNjkuNy01OS4zIDEyNS42LTEyOSAxMjljLS42IDAtMS4zIC4xLTEuOSAuMkgyOTZoLTguNWMtNTUuMiAwLTEwOC4xLTIxLjktMTQ3LjEtNjAuOUw1Mi43IDMxNS4zYy02LjItNi4yLTYuMi0xNi40IDAtMjIuNnMxNi40LTYuMiAyMi42IDBMMTE5IDMzNi40YzYuOSA2LjkgMTcuMiA4LjkgMjYuMiA1LjJzMTQuOC0xMi41IDE0LjgtMjIuMlY5NmMwLTguOCA3LjItMTYgMTYtMTZjOC44IDAgMTYgNy4xIDE2IDE1LjlWMjMyYzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWOTYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZHNoYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Mi4yIDY0LjZsLTUxLjEgNTEuMWMtMTUuMyA0LjItMjkuNSAxMS45LTQxLjUgMjIuNUwxNTMgMTYxLjlDMTQyLjggMTcxIDEyOS41IDE3NiAxMTUuOCAxNzZIOTZWMzA0YzIwLjQgLjYgMzkuOCA4LjkgNTQuMyAyMy40bDM1LjYgMzUuNiA3IDcgMCAwTDIxOS45IDM5N2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGMxLjctMS43IDMtMy43IDMuNy01LjhjMi44LTcuNyA5LjMtMTMuNSAxNy4zLTE1LjNzMTYuNCAuNiAyMi4yIDYuNUwyOTYuNSAzOTNjMTEuNiAxMS42IDMwLjQgMTEuNiA0MS45IDBjNS40LTUuNCA4LjMtMTIuMyA4LjYtMTkuNGMuNC04LjggNS42LTE2LjYgMTMuNi0yMC40czE3LjMtMyAyNC40IDIuMWM5LjQgNi43IDIyLjUgNS44IDMwLjktMi42YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDM0MC4xIDI0M2wtMzUuOCAzM2MtMjcuMyAyNS4yLTY5LjIgMjUuNi05NyAuOWMtMzEuNy0yOC4yLTMyLjQtNzcuNC0xLjYtMTA2LjVsNzAuMS02Ni4yQzMwMy4yIDc4LjQgMzM5LjQgNjQgMzc3LjEgNjRjMzYuMSAwIDcxIDEzLjMgOTcuOSAzNy4yTDUwNS4xIDEyOEg1NDRoNDAgNDBjOC44IDAgMTYgNy4yIDE2IDE2VjM1MmMwIDE3LjctMTQuMyAzMi0zMiAzMkg1NzZjLTExLjggMC0yMi4yLTYuNC0yNy43LTE2SDQ2My40Yy0zLjQgNi43LTcuOSAxMy4xLTEzLjUgMTguN2MtMTcuMSAxNy4xLTQwLjggMjMuOC02MyAyMC4xYy0zLjYgNy4zLTguNSAxNC4xLTE0LjYgMjAuMmMtMjcuMyAyNy4zLTcwIDMwLTEwMC40IDguMWMtMjUuMSAyMC44LTYyLjUgMTkuNS04Ni00LjFMMTU5IDQwNGwtNy03LTM1LjYtMzUuNmMtNS41LTUuNS0xMi43LTguNy0yMC40LTkuM0M5NiAzNjkuNyA4MS42IDM4NCA2NCAzODRIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjE0NGMwLTguOCA3LjItMTYgMTYtMTZINTYgOTZoMTkuOGMyIDAgMy45LS43IDUuMy0ybDI2LjUtMjMuNkMxNzUuNSA3Ny43IDIxMS40IDY0IDI0OC43IDY0SDI1OWM0LjQgMCA4LjkgLjIgMTMuMiAuNnpNNTQ0IDMyMFYxNzZINDk2Yy01LjkgMC0xMS42LTIuMi0xNS45LTYuMWwtMzYuOS0zMi44Yy0xOC4yLTE2LjItNDEuNy0yNS4xLTY2LjEtMjUuMWMtMjUuNCAwLTQ5LjggOS43LTY4LjMgMjcuMWwtNzAuMSA2Ni4yYy0xMC4zIDkuOC0xMC4xIDI2LjMgLjUgMzUuN2M5LjMgOC4zIDIzLjQgOC4xIDMyLjUtLjNsNzEuOS02Ni40YzkuNy05IDI0LjktOC40IDMzLjkgMS40czguNCAyNC45LTEuNCAzMy45bC0uOCAuOCA3NC40IDc0LjRjMTAgMTAgMTYuNSAyMi4zIDE5LjQgMzUuMUg1NDR6TTY0IDMzNmExNiAxNiAwIDEgMCAtMzIgMCAxNiAxNiAwIDEgMCAzMiAwem01MjggMTZhMTYgMTYgMCAxIDAgMC0zMiAxNiAxNiAwIDEgMCAwIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYXJkRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNlYyNThjNS4xLTEuMyAxMC41LTIgMTYtMkg0NDhjNS41IDAgMTAuOSAuNyAxNiAyVjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNNDggMzIwdjk2YzAgOC44IDcuMiAxNiAxNiAxNkg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGMwLTguOC03LjItMTYtMTYtMTZINjRjLTguOCAwLTE2IDcuMi0xNiAxNnpNMCAzMjBWOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINDQ4YzM1LjMgMCA2NCAyOC43IDY0IDY0VjMyMHY5NmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMzIwem0yODAgNDhhMjQgMjQgMCAxIDEgNDggMCAyNCAyNCAwIDEgMSAtNDggMHptMTIwLTI0YTI0IDI0IDAgMSAxIDAgNDggMjQgMjQgMCAxIDEgMC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI1LjggNDY4LjJsLTIuNS0yLjNMNDguMSAzMDMuMkMxNy40IDI3NC43IDAgMjM0LjcgMCAxOTIuOHYtMy4zYzAtNzAuNCA1MC0xMzAuOCAxMTkuMi0xNDRDMTU4LjYgMzcuOSAxOTguOSA0NyAyMzEgNjkuNmM5IDYuNCAxNy40IDEzLjggMjUgMjIuM2M0LjItNC44IDguNy05LjIgMTMuNS0xMy4zYzMuNy0zLjIgNy41LTYuMiAxMS41LTljMCAwIDAgMCAwIDBDMzEzLjEgNDcgMzUzLjQgMzcuOSAzOTIuOCA0NS40QzQ2MiA1OC42IDUxMiAxMTkuMSA1MTIgMTg5LjV2My4zYzAgNDEuOS0xNy40IDgxLjktNDguMSAxMTAuNEwyODguNyA0NjUuOWwtMi41IDIuM2MtOC4yIDcuNi0xOSAxMS45LTMwLjIgMTEuOXMtMjItNC4yLTMwLjItMTEuOXpNMjM5LjEgMTQ1Yy0uNC0uMy0uNy0uNy0xLTEuMWwtMTcuOC0yMGMwIDAtLjEtLjEtLjEtLjFjMCAwIDAgMCAwIDBjLTIzLjEtMjUuOS01OC0zNy43LTkyLTMxLjJDODEuNiAxMDEuNSA0OCAxNDIuMSA0OCAxODkuNXYzLjNjMCAyOC41IDExLjkgNTUuOCAzMi44IDc1LjJMMjU2IDQzMC43IDQzMS4yIDI2OGMyMC45LTE5LjQgMzIuOC00Ni43IDMyLjgtNzUuMnYtMy4zYzAtNDcuMy0zMy42LTg4LTgwLjEtOTYuOWMtMzQtNi41LTY5IDUuNC05MiAzMS4yYzAgMCAwIDAtLjEgLjFzMCAwLS4xIC4xbC0xNy44IDIwYy0uMyAuNC0uNyAuNy0xIDEuMWMtNC41IDQuNS0xMC42IDctMTYuOSA3cy0xMi40LTIuNS0xNi45LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hvc3BpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MnY4SDcyQzMyLjIgODAgMCAxMTIuMiAwIDE1MlY0NDBjMCAzOS44IDMyLjIgNzIgNzIgNzJoLjIgLjIgLjIgLjIgLjJINzNoLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJINzVoLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJINzdoLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJINzloLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJIODJoLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJIODVoLjIgLjIgLjIgLjJIODZoLjIgLjIgLjIgLjJIODdoLjIgLjIgLjIgLjJIODhoLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJIOThoLjIgLjIgLjIgLjJIOTloLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjIgLjJ2MEg0NTZoOHYwSDU2OGMzOS44IDAgNzItMzIuMiA3Mi03MlYxNTJjMC0zOS44LTMyLjItNzItNzItNzJINDgwVjcyYzAtMzkuOC0zMi4yLTcyLTcyLTcySDIzMnpNNDgwIDEyOGg4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHY0MEg1MzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoNTZ2NDhINTM2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDU2VjQ0MGMwIDEzLjMtMTAuNyAyNC0yNCAyNEg0ODBWMzM2IDEyOHpNNzIgMTI4aDg4VjQ2NGgtLjEtLjItLjItLjJIMTU5aC0uMi0uMi0uMkgxNThoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDE1NGgtLjItLjItLjJIMTUzaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxNTBoLS4yLS4yLS4ySDE0OWgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTQ2aC0uMi0uMi0uMkgxNDVoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDE0MmgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTM5aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMzZoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEzM2gtLjItLjItLjItLjItLjItLjItLjItLjJIMTMxaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMjhoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEyNmgtLjItLjItLjItLjItLjItLjItLjItLjJIMTI0aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMjJoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEyMGgtLjItLjItLjItLjItLjItLjItLjItLjJIMTE4aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMTZoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDExNGgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIMTExaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMDhoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDEwNWgtLjItLjItLjItLjJIMTA0aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkgxMDBoLS4yLS4yLS4yLS4ySDk5aC0uMi0uMi0uMi0uMkg5OGgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJIODhoLS4yLS4yLS4yLS4ySDg3aC0uMi0uMi0uMi0uMkg4NmgtLjItLjItLjItLjJIODVoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDgyaC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkg3OWgtLjItLjItLjItLjItLjItLjItLjItLjItLjItLjJINzdoLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4yLS4ySDc1aC0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMi0uMkg3M2gtLjItLjItLjItLjItLjJINzJjLTEzLjIgMC0yNC0xMC43LTI0LTI0VjMzNmg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg0OFYyNDBoNTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRINDhWMTUyYzAtMTMuMyAxMC43LTI0IDI0LTI0ek0yMDggNzJjMC0xMy4zIDEwLjctMjQgMjQtMjRINDA4YzEzLjMgMCAyNCAxMC43IDI0IDI0VjMzNiA0NjRIMzY4VjQwMGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OHY2NEgyMDhWNzJ6bTg4IDI0djI0SDI3MmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNmgyNHYyNGMwIDguOCA3LjIgMTYgMTYgMTZoMTZjOC44IDAgMTYtNy4yIDE2LTE2VjE2OGgyNGM4LjggMCAxNi03LjIgMTYtMTZWMTM2YzAtOC44LTcuMi0xNi0xNi0xNkgzNDRWOTZjMC04LjgtNy4yLTE2LTE2LTE2SDMxMmMtOC44IDAtMTYgNy4yLTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIb3VyZ2xhc3NIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjRDMCAxMC43IDEwLjcgMCAyNCAwSDM2MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNGgtOFY2N2MwIDQwLjMtMTYgNzktNDQuNSAxMDcuNUwyMjUuOSAyNTZsODEuNSA4MS41QzMzNiAzNjYgMzUyIDQwNC43IDM1MiA0NDV2MTloOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg4VjQ0NWMwLTQwLjMgMTYtNzkgNDQuNS0xMDcuNUwxNTguMSAyNTYgNzYuNSAxNzQuNUM0OCAxNDYgMzIgMTA3LjMgMzIgNjdWNDhIMjRDMTAuNyA0OCAwIDM3LjMgMCAyNHpNMTEwLjUgMzcxLjVjLTMuOSAzLjktNy41IDguMS0xMC43IDEyLjVIMjg0LjJjLTMuMi00LjQtNi44LTguNi0xMC43LTEyLjVMMTkyIDI4OS45bC04MS41IDgxLjV6TTI4NC4yIDEyOEMyOTcgMTEwLjQgMzA0IDg5IDMwNCA2N1Y0OEg4MFY2N2MwIDIyLjEgNyA0My40IDE5LjggNjFIMjg0LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hvdXJnbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAwQzEwLjcgMCAwIDEwLjcgMCAyNFMxMC43IDQ4IDI0IDQ4aDhWNjdjMCA0MC4zIDE2IDc5IDQ0LjUgMTA3LjVMMTU4LjEgMjU2IDc2LjUgMzM3LjVDNDggMzY2IDMyIDQwNC43IDMyIDQ0NXYxOUgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNEgzNjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRoLThWNDQ1YzAtNDAuMy0xNi03OS00NC41LTEwNy41TDIyNS45IDI1Nmw4MS41LTgxLjVDMzM2IDE0NiAzNTIgMTA3LjMgMzUyIDY3VjQ4aDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMjR6TTE5MiAyODkuOWw4MS41IDgxLjVDMjkzIDM5MSAzMDQgNDE3LjQgMzA0IDQ0NXYxOUg4MFY0NDVjMC0yNy42IDExLTU0IDMwLjUtNzMuNUwxOTIgMjg5Ljl6bTAtNjcuOWwtODEuNS04MS41QzkxIDEyMSA4MCA5NC42IDgwIDY3VjQ4SDMwNFY2N2MwIDI3LjYtMTEgNTQtMzAuNSA3My41TDE5MiAyMjIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSWRCYWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNDhWNjRjMCAxNy43LTE0LjMgMzItMzIgMzJIMTYwYy0xNy43IDAtMzItMTQuMy0zMi0zMlY0OEg2NGMtOC44IDAtMTYgNy4yLTE2IDE2VjQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzIwYzguOCAwIDE2LTcuMiAxNi0xNlY2NGMwLTguOC03LjItMTYtMTYtMTZIMjU2ek0wIDY0QzAgMjguNyAyOC43IDAgNjQgMEgzMjBjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDQ4YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY2NHpNMTYwIDMyMGg2NGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDguOC03LjIgMTYtMTYgMTZIOTZjLTguOCAwLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MHptLTMyLTk2YTY0IDY0IDAgMSAxIDEyOCAwIDY0IDY0IDAgMSAxIC0xMjggMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSWRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAxNjBWNDE2YzAgOC44LTcuMiAxNi0xNiAxNkgzMjBjMC00NC4yLTM1LjgtODAtODAtODBIMTc2Yy00NC4yIDAtODAgMzUuOC04MCA4MEg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjE2MEg1Mjh6TTY0IDMyQzI4LjcgMzIgMCA2MC43IDAgOTZWNDE2YzAgMzUuMyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQtMjguNyA2NC02NFY5NmMwLTM1LjMtMjguNy02NC02NC02NEg2NHpNMjcyIDI1NmE2NCA2NCAwIDEgMCAtMTI4IDAgNjQgNjQgMCAxIDAgMTI4IDB6bTEwNC00OGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNGg4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEgzNzZ6bTAgOTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMzc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODBjOC44IDAgMTYgNy4yIDE2IDE2VjQxNS44bC01LTYuNS0xMzYtMTc2Yy00LjUtNS45LTExLjYtOS4zLTE5LTkuM3MtMTQuNCAzLjQtMTkgOS4zTDIwMiAzNDAuN2wtMzAuNS00Mi43QzE2NyAyOTEuNyAxNTkuOCAyODggMTUyIDI4OHMtMTUgMy43LTE5LjUgMTAuMWwtODAgMTEyTDQ4IDQxNi4zbDAtLjNWOTZjMC04LjggNy4yLTE2IDE2LTE2SDQ0OHpNNjQgMzJDMjguNyAzMiAwIDYwLjcgMCA5NlY0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRINDQ4YzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0em04MCAxOTJhNDggNDggMCAxIDAgMC05NiA0OCA0OCAwIDEgMCAwIDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJbWFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDgwSDUxMmM4LjggMCAxNiA3LjIgMTYgMTZWMzIwYzAgOC44LTcuMiAxNi0xNiAxNkg0OTAuOEwzODguMSAxNzguOWMtNC40LTYuOC0xMi0xMC45LTIwLjEtMTAuOXMtMTUuNyA0LjEtMjAuMSAxMC45bC01Mi4yIDc5LjgtMTIuNC0xNi45Yy00LjUtNi4yLTExLjctOS44LTE5LjQtOS44cy0xNC44IDMuNi0xOS40IDkuOEwxNzUuNiAzMzZIMTYwYy04LjggMC0xNi03LjItMTYtMTZWOTZjMC04LjggNy4yLTE2IDE2LTE2ek05NiA5NlYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NC0yOC43IDY0LTY0Vjk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDE2MGMtMzUuMyAwLTY0IDI4LjctNjQgNjR6TTQ4IDEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNFMwIDEwNi43IDAgMTIwVjM0NGMwIDc1LjEgNjAuOSAxMzYgMTM2IDEzNkg0NTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRzLTEwLjctMjQtMjQtMjRIMTM2Yy00OC42IDAtODgtMzkuNC04OC04OFYxMjB6bTIwOCAyNGEzMiAzMiAwIDEgMCAtNjQgMCAzMiAzMiAwIDEgMCA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdLZXlib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAxMTJjLTguOCAwLTE2IDcuMi0xNiAxNlYzODRjMCA4LjggNy4yIDE2IDE2IDE2SDUxMmM4LjggMCAxNi03LjIgMTYtMTZWMTI4YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCAxMjhDMCA5Mi43IDI4LjcgNjQgNjQgNjRINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjM4NGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTI4ek0xNzYgMzIwSDQwMGM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDE3NmMtOC44IDAtMTYtNy4yLTE2LTE2VjMzNmMwLTguOCA3LjItMTYgMTYtMTZ6bS03Mi03MmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgxMjBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDh6bTE2LTk2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMTIwYy04LjggMC0xNi03LjItMTYtMTZWMTY4YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMjAwYy04LjggMC0xNi03LjItMTYtMTZWMjQ4em0xNi05NmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDIwMGMtOC44IDAtMTYtNy4yLTE2LTE2VjE2OGMwLTguOCA3LjItMTYgMTYtMTZ6bTY0IDk2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDI4MGMtOC44IDAtMTYtNy4yLTE2LTE2VjI0OHptMTYtOTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgyODBjLTguOCAwLTE2LTcuMi0xNi0xNlYxNjhjMC04LjggNy4yLTE2IDE2LTE2em02NCA5NmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNkgzNjBjLTguOCAwLTE2LTcuMi0xNi0xNlYyNDh6bTE2LTk2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZIMzYwYy04LjggMC0xNi03LjItMTYtMTZWMTY4YzAtOC44IDcuMi0xNiAxNi0xNnptNjQgOTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZINDQwYy04LjggMC0xNi03LjItMTYtMTZWMjQ4em0xNi05NmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZjMCA4LjgtNy4yIDE2LTE2IDE2SDQ0MGMtOC44IDAtMTYtNy4yLTE2LTE2VjE2OGMwLTguOCA3LjItMTYgMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA4MGMtMy4yIDAtNi4yIC40LTguOSAxLjNDMzQwIDg2LjggMzEzIDkxLjkgMjg0LjggODQuNkMyMjcuNCA2OS43IDE2MC4yIDkyIDExMC4xIDE0Mi4xUzM3LjcgMjU5LjQgNTIuNiAzMTYuOGM3LjMgMjguMiAyLjIgNTUuMi0zLjMgNzQuM2MtLjggMi44LTEuMyA1LjgtMS4zIDguOWMwIDE3LjcgMTQuMyAzMiAzMiAzMmMzLjIgMCA2LjItLjQgOC45LTEuM2MxOS4xLTUuNSA0Ni4xLTEwLjcgNzQuMy0zLjNjNTcuNCAxNC45IDEyNC42LTcuNCAxNzQuNy01Ny41czcyLjQtMTE3LjMgNTcuNS0xNzQuN2MtNy4zLTI4LjItMi4yLTU1LjIgMy4zLTc0LjNjLjgtMi44IDEuMy01LjggMS4zLTguOWMwLTE3LjctMTQuMy0zMi0zMi0zMnptMC00OGM0NC4yIDAgODAgMzUuOCA4MCA4MGMwIDcuNy0xLjEgMTUuMi0zLjEgMjIuM2MtNC42IDE1LjgtNy4xIDMyLjktMyA0OC45YzIwLjEgNzcuNi0xMC45IDE2MS41LTcwIDIyMC43cy0xNDMuMSA5MC4yLTIyMC43IDcwYy0xNi00LjEtMzMtMS42LTQ4LjkgM2MtNy4xIDItMTQuNiAzLjEtMjIuMyAzLjFjLTQ0LjIgMC04MC0zNS44LTgwLTgwYzAtNy43IDEuMS0xNS4yIDMuMS0yMi4zYzQuNi0xNS44IDcuMS0zMi45IDMtNDguOUMtMTQgMjUxLjMgMTcgMTY3LjMgNzYuMiAxMDguMlMyMTkuMyAxOCAyOTYuOCAzOC4xYzE2IDQuMSAzMyAxLjYgNDguOS0zYzcuMS0yIDE0LjYtMy4xIDIyLjMtMy4xek0yNDYuNyAxNjdjLTUyIDE1LjItOTYuNSA1OS43LTExMS43IDExMS43Yy0zLjcgMTIuNy0xNy4xIDIwLTI5LjggMTYuM3MtMjAtMTcuMS0xNi4zLTI5LjhjMTkuOC02Ny43IDc2LjYtMTI0LjUgMTQ0LjMtMTQ0LjNjMTIuNy0zLjcgMjYuMSAzLjYgMjkuOCAxNi4zcy0zLjYgMjYuMS0xNi4zIDI5Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xpZmVSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NS4xIDQxOS4xQzM0OS43IDQ0Ny4yIDMwNC44IDQ2NCAyNTYgNDY0cy05My43LTE2LjgtMTI5LjEtNDQuOWw4MC40LTgwLjRjMTQuMyA4LjQgMzEgMTMuMyA0OC44IDEzLjNzMzQuNS00LjggNDguOC0xMy4zbDgwLjQgODAuNHptNjguMSAuMkM0ODkuOSAzNzQuOSA1MTIgMzE4LjEgNTEyIDI1NnMtMjIuMS0xMTguOS01OC44LTE2My4zTDQ2NSA4MWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOXMtMjQuNi05LjQtMzMuOSAwTDQxOS4zIDU4LjhDMzc0LjkgMjIuMSAzMTguMSAwIDI1NiAwUzEzNy4xIDIyLjEgOTIuNyA1OC44TDgxIDQ3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMHMtOS40IDI0LjYgMCAzMy45TDU4LjggOTIuN0MyMi4xIDEzNy4xIDAgMTkzLjkgMCAyNTZzMjIuMSAxMTguOSA1OC44IDE2My4zTDQ3IDQzMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlzMjQuNiA5LjQgMzMuOSAwbDExLjgtMTEuOEMxMzcuMSA0ODkuOSAxOTMuOSA1MTIgMjU2IDUxMnMxMTguOS0yMi4xIDE2My4zLTU4LjhMNDMxIDQ2NWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMHM5LjQtMjQuNiAwLTMzLjlsLTExLjgtMTEuOHptLTM0LjEtMzQuMWwtODAuNC04MC40YzguNC0xNC4zIDEzLjMtMzEgMTMuMy00OC44cy00LjgtMzQuNS0xMy4zLTQ4LjhsODAuNC04MC40QzQ0Ny4yIDE2Mi4zIDQ2NCAyMDcuMiA0NjQgMjU2cy0xNi44IDkzLjctNDQuOSAxMjkuMXpNMzg1LjEgOTIuOWwtODAuNCA4MC40Yy0xNC4zLTguNC0zMS0xMy4zLTQ4LjgtMTMuM3MtMzQuNSA0LjgtNDguOCAxMy4zTDEyNi45IDkyLjlDMTYyLjMgNjQuOCAyMDcuMiA0OCAyNTYgNDhzOTMuNyAxNi44IDEyOS4xIDQ0Ljl6TTE3My4zIDMwNC44TDkyLjkgMzg1LjFDNjQuOCAzNDkuNyA0OCAzMDQuOCA0OCAyNTZzMTYuOC05My43IDQ0LjktMTI5LjFsODAuNCA4MC40Yy04LjQgMTQuMy0xMy4zIDMxLTEzLjMgNDguOHM0LjggMzQuNSAxMy4zIDQ4Ljh6TTIwOCAyNTZhNDggNDggMCAxIDEgOTYgMCA0OCA0OCAwIDEgMSAtOTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5Ny4yIDI0OC45QzMxMS42IDIyOC4zIDMyMCAyMDMuMiAzMjAgMTc2YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4UzY0IDEwNS4zIDY0IDE3NmMwIDI3LjIgOC40IDUyLjMgMjIuOCA3Mi45YzMuNyA1LjMgOC4xIDExLjMgMTIuOCAxNy43bDAgMGMxMi45IDE3LjcgMjguMyAzOC45IDM5LjggNTkuOGMxMC40IDE5IDE1LjcgMzguOCAxOC4zIDU3LjVIMTA5Yy0yLjItMTItNS45LTIzLjctMTEuOC0zNC41Yy05LjktMTgtMjIuMi0zNC45LTM0LjUtNTEuOGwwIDAgMCAwYy01LjItNy4xLTEwLjQtMTQuMi0xNS40LTIxLjRDMjcuNiAyNDcuOSAxNiAyMTMuMyAxNiAxNzZDMTYgNzguOCA5NC44IDAgMTkyIDBzMTc2IDc4LjggMTc2IDE3NmMwIDM3LjMtMTEuNiA3MS45LTMxLjQgMTAwLjNjLTUgNy4yLTEwLjIgMTQuMy0xNS40IDIxLjRsMCAwIDAgMGMtMTIuMyAxNi44LTI0LjYgMzMuNy0zNC41IDUxLjhjLTUuOSAxMC44LTkuNiAyMi41LTExLjggMzQuNUgyMjYuNGMyLjYtMTguNyA3LjktMzguNiAxOC4zLTU3LjVjMTEuNS0yMC45IDI2LjktNDIuMSAzOS44LTU5LjhsMCAwIDAgMCAwIDBjNC43LTYuNCA5LTEyLjQgMTIuNy0xNy43ek0xOTIgMTI4Yy0yNi41IDAtNDggMjEuNS00OCA0OGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNmMwLTQ0LjIgMzUuOC04MCA4MC04MGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNnptMCAzODRjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjQxNkgyNzJ2MTZjMCA0NC4yLTM1LjggODAtODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjUuNiAzNi4yQzU3Mi4xIDQwLjcgNTc2IDQ4LjEgNTc2IDU2VjM5MmMwIDEwLTYuMiAxOC45LTE1LjUgMjIuNGwtMTY4IDY0Yy01LjIgMi0xMC45IDIuMS0xNi4xIC4zTDE5Mi41IDQxNy41bC0xNjAgNjFjLTcuNCAyLjgtMTUuNyAxLjgtMjIuMi0yLjdTMCA0NjMuOSAwIDQ1NlYxMjBjMC0xMCA2LjEtMTguOSAxNS41LTIyLjRsMTY4LTY0YzUuMi0yIDEwLjktMi4xIDE2LjEtLjNMMzgzLjUgOTQuNWwxNjAtNjFjNy40LTIuOCAxNS43LTEuOCAyMi4yIDIuN3pNNDggMTM2LjVWNDIxLjJsMTIwLTQ1LjdWOTAuOEw0OCAxMzYuNXpNMzYwIDQyMi43VjEzNy4zbC0xNDQtNDhWMzc0LjdsMTQ0IDQ4em00OC0xLjVsMTIwLTQ1LjdWOTAuOEw0MDggMTM2LjVWNDIxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01lc3NhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDM2OGMyNi41IDAgNDggMjEuNSA0OCA0OHYxNmw3Mi41LTU0LjRjOC4zLTYuMiAxOC40LTkuNiAyOC44LTkuNkg0NDhjOC44IDAgMTYtNy4yIDE2LTE2VjY0YzAtOC44LTcuMi0xNi0xNi0xNkg2NGMtOC44IDAtMTYgNy4yLTE2IDE2VjM1MmMwIDguOCA3LjIgMTYgMTYgMTZoOTZ6bTQ4IDEyNGwtLjIgLjItNS4xIDMuOC0xNy4xIDEyLjhjLTQuOCAzLjYtMTEuMyA0LjItMTYuOCAxLjVzLTguOC04LjItOC44LTE0LjNWNDc0Ljd2LTYuNFY0Njh2LTRWNDE2SDExMiA2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWNjRDMCAyOC43IDI4LjcgMCA2NCAwSDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzNTJjMCAzNS4zLTI4LjcgNjQtNjQgNjRIMzA5LjNMMjA4IDQ5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTW9uZXlCaWxsMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMTEyYzAgMzUuMy0yOC43IDY0LTY0IDY0VjMzNmMzNS4zIDAgNjQgMjguNyA2NCA2NEg0NjRjMC0zNS4zIDI4LjctNjQgNjQtNjRWMTc2Yy0zNS4zIDAtNjQtMjguNy02NC02NEgxMTJ6TTAgMTI4QzAgOTIuNyAyOC43IDY0IDY0IDY0SDUxMmMzNS4zIDAgNjQgMjguNyA2NCA2NFYzODRjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0VjEyOHpNMTc2IDI1NmExMTIgMTEyIDAgMSAxIDIyNCAwIDExMiAxMTIgMCAxIDEgLTIyNCAwem04MC00OGMwIDguOCA3LjIgMTYgMTYgMTZ2NjRoLThjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMjQgMjRjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZoLThWMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQuNyA5OC43Yy0yMSAzNC4xLTMzLjEgNzQuMy0zMy4xIDExNy4zYzAgOTggNjIuOCAxODEuNCAxNTAuNCAyMTEuN2MtMTIuNCAyLjgtMjUuMyA0LjMtMzguNiA0LjNDMTI2LjYgNDMyIDQ4IDM1My4zIDQ4IDI1NmMwLTY4LjkgMzkuNC0xMjguNCA5Ni44LTE1Ny4zem02Mi4xLTY2QzkxLjEgNDEuMiAwIDEzNy45IDAgMjU2QzAgMzc5LjcgMTAwIDQ4MCAyMjMuNSA0ODBjNDcuOCAwIDkyLTE1IDEyOC40LTQwLjZjMS45LTEuMyAzLjctMi43IDUuNS00YzQuOC0zLjYgOS40LTcuNCAxMy45LTExLjRjMi43LTIuNCA1LjMtNC44IDcuOS03LjNjNS00LjkgNi4zLTEyLjUgMy4xLTE4LjdzLTEwLjEtOS43LTE3LTguNWMtMy43IC42LTcuNCAxLjItMTEuMSAxLjZjLTUgLjUtMTAuMSAuOS0xNS4zIDFjLTEuMiAwLTIuNSAwLTMuNyAwYy0uMSAwLS4yIDAtLjMgMGMtOTYuOC0uMi0xNzUuMi03OC45LTE3NS4yLTE3NmMwLTU0LjggMjQuOS0xMDMuNyA2NC4xLTEzNmMxLS45IDIuMS0xLjcgMy4yLTIuNmM0LTMuMiA4LjItNi4yIDEyLjUtOWMzLjEtMiA2LjMtNCA5LjYtNS44YzYuMS0zLjUgOS4yLTEwLjUgNy43LTE3LjNzLTcuMy0xMS45LTE0LjMtMTIuNWMtMy42LS4zLTcuMS0uNS0xMC43LS42Yy0yLjctLjEtNS41LS4xLTguMi0uMWMtMy4zIDAtNi41IC4xLTkuOCAuMmMtMi4zIC4xLTQuNiAuMi02LjkgLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ05ld3NwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjggODBjLTEzLjMgMC0yNCAxMC43LTI0IDI0VjQwOGMwIDguNC0xLjQgMTYuNS00LjEgMjRINDQwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjEwNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxNjh6TTcyIDQ4MGMtMzkuOCAwLTcyLTMyLjItNzItNzJWMTEyQzAgOTguNyAxMC43IDg4IDI0IDg4czI0IDEwLjcgMjQgMjRWNDA4YzAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRWMTA0YzAtMzkuOCAzMi4yLTcyIDcyLTcySDQ0MGMzOS44IDAgNzIgMzIuMiA3MiA3MlY0MDhjMCAzOS44LTMyLjIgNzItNzIgNzJINzJ6TTE3NiAxMzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjR2ODBjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjAwYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxMzZ6bTIwMC0yNGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgzNzZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgODBoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjRIMzc2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0ek0yMDAgMjcySDQwOGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMDBjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjR6bTAgODBINDA4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDIwMGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTm90ZVN0aWNreSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZIMjg4VjM1MmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4MFY5NmMwLTguOC03LjItMTYtMTYtMTZINjR6TTI4OCA0ODBINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDM4NGMzNS4zIDAgNjQgMjguNyA2NCA2NFYzMjB2NS41YzAgMTctNi43IDMzLjMtMTguNyA0NS4zbC05MC41IDkwLjVjLTEyIDEyLTI4LjMgMTguNy00NS4zIDE4LjdIMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdPYmplY3RHcm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCAxMTUuOEMzOC4yIDEwNyAzMiA5NC4yIDMyIDgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4YzE0LjIgMCAyNyA2LjIgMzUuOCAxNkg0NjAuMmM4LjgtOS44IDIxLjYtMTYgMzUuOC0xNmMyNi41IDAgNDggMjEuNSA0OCA0OGMwIDE0LjItNi4yIDI3LTE2IDM1LjhWMzk2LjJjOS44IDguOCAxNiAyMS42IDE2IDM1LjhjMCAyNi41LTIxLjUgNDgtNDggNDhjLTE0LjIgMC0yNy02LjItMzUuOC0xNkgxMTUuOGMtOC44IDkuOC0yMS42IDE2LTM1LjggMTZjLTI2LjUgMC00OC0yMS41LTQ4LTQ4YzAtMTQuMiA2LjItMjcgMTYtMzUuOFYxMTUuOHpNMTI1LjMgOTZjLTQuOCAxMy42LTE1LjYgMjQuNC0yOS4zIDI5LjNWMzg2LjdjMTMuNiA0LjggMjQuNCAxNS42IDI5LjMgMjkuM0g0NTAuN2M0LjgtMTMuNiAxNS42LTI0LjQgMjkuMy0yOS4zVjEyNS4zYy0xMy42LTQuOC0yNC40LTE1LjYtMjkuMy0yOS4zSDEyNS4zem0yLjcgNjRjMC0xNy43IDE0LjMtMzIgMzItMzJIMjg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjk2YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE2MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTYwek0yNTYgMzIwaDMyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjIyNGg2NGMxNy43IDAgMzIgMTQuMyAzMiAzMnY5NmMwIDE3LjctMTQuMyAzMi0zMiAzMkgyODhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnT2JqZWN0VW5ncm91cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OC4yIDY2LjhjLS4xLS44LS4yLTEuNy0uMi0yLjVjMC0uMSAwLS4xIDAtLjJjMC04LjggNy4yLTE2IDE2LTE2Yy45IDAgMS45IC4xIDIuOCAuMkM3NC4zIDQ5LjUgODAgNTYuMSA4MCA2NGMwIDguOC03LjIgMTYtMTYgMTZjLTcuOSAwLTE0LjUtNS43LTE1LjgtMTMuMnpNMCA2NGMwIDI2LjkgMTYuNSA0OS45IDQwIDU5LjNWMjI4LjdDMTYuNSAyMzguMSAwIDI2MS4xIDAgMjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0YzI2LjkgMCA0OS45LTE2LjUgNTkuMy00MEgzMjQuN2M5LjUgMjMuNSAzMi41IDQwIDU5LjMgNDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRjMC0yNi45LTE2LjUtNDkuOS00MC01OS4zVjEyMy4zYzIzLjUtOS41IDQwLTMyLjUgNDAtNTkuM2MwLTM1LjMtMjguNy02NC02NC02NGMtMjYuOSAwLTQ5LjkgMTYuNS01OS4zIDQwSDEyMy4zQzExMy45IDE2LjUgOTAuOSAwIDY0IDBDMjguNyAwIDAgMjguNyAwIDY0em0zNjggMGExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek0zMjQuNyA4OGM2LjUgMTYgMTkuMyAyOC45IDM1LjMgMzUuM1YyMjguN2MtMTYgNi41LTI4LjkgMTkuMy0zNS4zIDM1LjNIMTIzLjNjLTYuNS0xNi0xOS4zLTI4LjktMzUuMy0zNS4zVjEyMy4zYzE2LTYuNSAyOC45LTE5LjMgMzUuMy0zNS4zSDMyNC43ek0zODQgMjcyYTE2IDE2IDAgMSAxIDAgMzIgMTYgMTYgMCAxIDEgMC0zMnpNODAgMjg4YzAgNy45LTUuNyAxNC41LTEzLjIgMTUuOGMtLjggLjEtMS43IC4yLTIuNSAuMmwtLjIgMGMtOC44IDAtMTYtNy4yLTE2LTE2YzAtLjkgLjEtMS45IC4yLTIuOEM0OS41IDI3Ny43IDU2LjEgMjcyIDY0IDI3MmM4LjggMCAxNiA3LjIgMTYgMTZ6bTM5MS4zLTQwaDQ1LjRjNi41IDE2IDE5LjMgMjguOSAzNS4zIDM1LjNWMzg4LjdjLTE2IDYuNS0yOC45IDE5LjMtMzUuMyAzNS4zSDMxNS4zYy02LjUtMTYtMTkuMy0yOC45LTM1LjMtMzUuM1YzNTJIMjMydjM2LjdjLTIzLjUgOS41LTQwIDMyLjUtNDAgNTkuM2MwIDM1LjMgMjguNyA2NCA2NCA2NGMyNi45IDAgNDkuOS0xNi41IDU5LjMtNDBINTE2LjdjOS41IDIzLjUgMzIuNSA0MCA1OS4zIDQwYzM1LjMgMCA2NC0yOC43IDY0LTY0YzAtMjYuOS0xNi41LTQ5LjktNDAtNTkuM1YyODMuM2MyMy41LTkuNSA0MC0zMi41IDQwLTU5LjNjMC0zNS4zLTI4LjctNjQtNjQtNjRjLTI2LjkgMC00OS45IDE2LjUtNTkuMyA0MEg0NDh2MTYuNGM5LjggOC44IDE3LjggMTkuNSAyMy4zIDMxLjZ6bTg4LjktMjYuN2ExNiAxNiAwIDEgMSAzMS41IDUuNSAxNiAxNiAwIDEgMSAtMzEuNS01LjV6TTI3MS44IDQ1MC43YTE2IDE2IDAgMSAxIC0zMS41LTUuNSAxNiAxNiAwIDEgMSAzMS41IDUuNXptMzAxLjUgMTNjLTcuNS0xLjMtMTMuMi03LjktMTMuMi0xNS44YzAtOC44IDcuMi0xNiAxNi0xNmM3LjkgMCAxNC41IDUuNyAxNS44IDEzLjJsMCAuMWMuMSAuOSAuMiAxLjggLjIgMi43YzAgOC44LTcuMiAxNi0xNiAxNmMtLjkgMC0xLjktLjEtMi44LS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjEgMjYwLjJjLTIyLjYgMTIuOS0yMC41IDQ3LjMgMy42IDU3LjNMMTYwIDM3NlY0NzkuM2MwIDE4LjEgMTQuNiAzMi43IDMyLjcgMzIuN2M5LjcgMCAxOC45LTQuMyAyNS4xLTExLjhsNjItNzQuMyAxMjMuOSA1MS42YzE4LjkgNy45IDQwLjgtNC41IDQzLjktMjQuN2w2NC00MTZjMS45LTEyLjEtMy40LTI0LjMtMTMuNS0zMS4ycy0yMy4zLTcuNS0zNC0xLjRsLTQ0OCAyNTZ6bTUyLjEgMjUuNUw0MDkuNyA5MC42IDE5MC4xIDMzNmwxLjIgMUw2OC4yIDI4NS43ek00MDMuMyA0MjUuNEwyMzYuNyAzNTUuOSA0NTAuOCAxMTYuNiA0MDMuMyA0MjUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUGFzdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA0LjYgNDhINjRDMjguNyA0OCAwIDc2LjcgMCAxMTJWMzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2VjQwMEg2NGMtOC44IDAtMTYtNy4yLTE2LTE2VjExMmMwLTguOCA3LjItMTYgMTYtMTZIODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzIuNEMyMDIgMTA4LjQgMjI3LjYgOTYgMjU2IDk2aDYyYy03LjEtMjcuNi0zMi4yLTQ4LTYyLTQ4SDIxNS40QzIxMS42IDIwLjkgMTg4LjIgMCAxNjAgMHMtNTEuNiAyMC45LTU1LjQgNDh6TTE0NCA1NmExNiAxNiAwIDEgMSAzMiAwIDE2IDE2IDAgMSAxIC0zMiAwek00NDggNDY0SDI1NmMtOC44IDAtMTYtNy4yLTE2LTE2VjE5MmMwLTguOCA3LjItMTYgMTYtMTZsMTQwLjEgMEw0NjQgMjQzLjlWNDQ4YzAgOC44LTcuMiAxNi0xNiAxNnpNMjU2IDUxMkg0NDhjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOWwtNjcuOS02Ny45Yy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUgyNTZjLTM1LjMgMC02NCAyOC43LTY0IDY0VjQ0OGMwIDM1LjMgMjguNyA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUGVuVG9TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQxIDU4LjlMNDUzLjEgNzFjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDI0IDEzNC4xIDM3Ny45IDg4IDQwNyA1OC45YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwek0yMDkuOCAyNTYuMkwzNDQgMTIxLjkgMzkwLjEgMTY4IDI1NS44IDMwMi4yYy0yLjkgMi45LTYuNSA1LTEwLjQgNi4xbC01OC41IDE2LjcgMTYuNy01OC41YzEuMS0zLjkgMy4yLTcuNSA2LjEtMTAuNHpNMzczLjEgMjVMMTc1LjggMjIyLjJjLTguNyA4LjctMTUgMTkuNC0xOC4zIDMxLjFsLTI4LjYgMTAwYy0yLjQgOC40LS4xIDE3LjQgNi4xIDIzLjZzMTUuMiA4LjUgMjMuNiA2LjFsMTAwLTI4LjZjMTEuOC0zLjQgMjIuNS05LjcgMzEuMS0xOC4zTDQ4NyAxMzguOWMyOC4xLTI4LjEgMjguMS03My43IDAtMTAxLjhMNDc0LjkgMjVDNDQ2LjgtMy4xIDQwMS4yLTMuMSAzNzMuMSAyNXpNODggNjRDMzkuNCA2NCAwIDEwMy40IDAgMTUyVjQyNGMwIDQ4LjYgMzkuNCA4OCA4OCA4OEgzNjBjNDguNiAwIDg4LTM5LjQgODgtODhWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0cy0yNCAxMC43LTI0IDI0VjQyNGMwIDIyLjEtMTcuOSA0MC00MCA0MEg4OGMtMjIuMSAwLTQwLTE3LjktNDAtNDBWMTUyYzAtMjIuMSAxNy45LTQwIDQwLTQwSDIwMGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUmVjdGFuZ2xlTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZINTEyYzguOCAwIDE2LTcuMiAxNi0xNlY5NmMwLTguOC03LjItMTYtMTYtMTZINjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJINTEyYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6bTk2IDY0YTMyIDMyIDAgMSAxIDY0IDAgMzIgMzIgMCAxIDEgLTY0IDB6bTEwNCAwYzAtMTMuMyAxMC43LTI0IDI0LTI0SDQ0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0SDQ0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0wIDk2YzAtMTMuMyAxMC43LTI0IDI0LTI0SDQ0OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0em0tNzItNjRhMzIgMzIgMCAxIDEgMC02NCAzMiAzMiAwIDEgMSAwIDY0ek05NiAzNTJhMzIgMzIgMCAxIDEgNjQgMCAzMiAzMiAwIDEgMSAtNjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUmVjdGFuZ2xlWG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNlY0MTZjMCA4LjggNy4yIDE2IDE2IDE2SDQ0OGM4LjggMCAxNi03LjIgMTYtMTZWOTZjMC04LjgtNy4yLTE2LTE2LTE2SDY0ek0wIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMySDQ0OGMzNS4zIDAgNjQgMjguNyA2NCA2NFY0MTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRINjRjLTM1LjMgMC02NC0yOC43LTY0LTY0Vjk2em0xNzUgNzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBsNDcgNDcgNDctNDdjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC00NyA0NyA0NyA0N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC00Ny00Ny00NyA0N2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBzLTkuNC0yNC42IDAtMzMuOWw0Ny00Ny00Ny00N2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1JlZ2lzdGVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4YTIwOCAyMDggMCAxIDEgMCA0MTYgMjA4IDIwOCAwIDEgMSAwLTQxNnptMCA0NjRBMjU2IDI1NiAwIDEgMCAyNTYgMGEyNTYgMjU2IDAgMSAwIDAgNTEyek0xNjAgMTUyVjI2NHY5NmMwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0VjI4OGg2MC45bDM3LjIgODEuOWM1LjUgMTIuMSAxOS43IDE3LjQgMzEuOCAxMS45czE3LjQtMTkuNyAxMS45LTMxLjhMMzE1LjcgMjc1YzIxLjgtMTQuMyAzNi4zLTM5IDM2LjMtNjdjMC00NC4yLTM1LjgtODAtODAtODBIMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNDggODhWMTc2aDY0YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2hhcmVGcm9tU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAyNTUuNFYyNDAgMjA4YzAtOC44LTcuMi0xNi0xNi0xNkgzNTIgMzM2IDI4OS41Yy01MC45IDAtOTMuOSAzMy41LTEwOC4zIDc5LjZjLTMuMy05LjQtNS4yLTE5LjgtNS4yLTMxLjZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJoNDggMTYgMzJjOC44IDAgMTYtNy4yIDE2LTE2VjgwIDY0LjZMNTA2IDE2MCA0MDAgMjU1LjR6TTMzNiAyNDBoMTZ2NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMy43YzcuOSAwIDE1LjUtMi45IDIxLjQtOC4ybDEzOS0xMjUuMWM3LjYtNi44IDExLjktMTYuNSAxMS45LTI2LjdzLTQuMy0xOS45LTExLjktMjYuN0w0MDkuOSA4LjlDNDAzLjUgMy4yIDM5NS4zIDAgMzg2LjcgMEMzNjcuNSAwIDM1MiAxNS41IDM1MiAzNC43VjgwSDMzNiAzMDQgMjg4Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MGMwIDYwLjQgMzQuNiA5OS4xIDYzLjkgMTIwLjljNS45IDQuNCAxMS41IDguMSAxNi43IDExLjJjNC40IDIuNyA4LjUgNC45IDExLjkgNi42YzMuNCAxLjcgNi4yIDMgOC4yIDMuOWMyLjIgMSA0LjYgMS40IDcuMSAxLjRoMi41YzkuOCAwIDE3LjgtOCAxNy44LTE3LjhjMC03LjgtNS4zLTE0LjctMTEuNi0xOS41bDAgMGMtLjQtLjMtLjctLjUtMS4xLS44Yy0xLjctMS4xLTMuNC0yLjUtNS00LjFjLS44LS44LTEuNy0xLjYtMi41LTIuNnMtMS42LTEuOS0yLjQtMi45Yy0xLjgtMi41LTMuNS01LjMtNS04LjVjLTIuNi02LTQuMy0xMy4zLTQuMy0yMi40YzAtMzYuMSAyOS4zLTY1LjUgNjUuNS02NS41SDMwNGgzMnpNNzIgMzJDMzIuMiAzMiAwIDY0LjIgMCAxMDRWNDQwYzAgMzkuOCAzMi4yIDcyIDcyIDcySDQwOGMzOS44IDAgNzItMzIuMiA3Mi03MlYzNzZjMC0xMy4zLTEwLjctMjQtMjQtMjRzLTI0IDEwLjctMjQgMjR2NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRINzJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjEwNGMwLTEzLjMgMTAuNy0yNCAyNC0yNGg2NGMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNEg3MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU25vd2ZsYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAwYzEzLjMgMCAyNCAxMC43IDI0IDI0VjcwLjFsMjMtMjNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBzOS40IDI0LjYgMCAzMy45bC01NyA1N3Y3Ni41bDY2LjItMzguMiAyMC45LTc3LjhjMy40LTEyLjggMTYuNi0yMC40IDI5LjQtMTdzMjAuNCAxNi42IDE3IDI5LjRMMzczIDE0Mi4ybDM3LjEtMjEuNGMxMS41LTYuNiAyNi4yLTIuNyAzMi44IDguOHMyLjcgMjYuMi04LjggMzIuOEwzOTcgMTgzLjhsMzEuNSA4LjRjMTIuOCAzLjQgMjAuNCAxNi42IDE3IDI5LjRzLTE2LjYgMjAuNC0yOS40IDE3bC03Ny44LTIwLjlMMjcyIDI1Nmw2Ni4yIDM4LjIgNzcuOC0yMC45YzEyLjgtMy40IDI2IDQuMiAyOS40IDE3cy00LjIgMjYtMTcgMjkuNEwzOTcgMzI4LjJsMzcuMSAyMS40YzExLjUgNi42IDE1LjQgMjEuMyA4LjggMzIuOHMtMjEuMyAxNS40LTMyLjggOC44TDM3MyAzNjkuOGw4LjQgMzEuNWMzLjQgMTIuOC00LjIgMjYtMTcgMjkuNHMtMjYtNC4yLTI5LjQtMTdsLTIwLjktNzcuOEwyNDggMjk3LjZ2NzYuNWw1NyA1N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOXMtMjQuNiA5LjQtMzMuOSAwbC0yMy0yM1Y0ODhjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjRWNDQxLjlsLTIzIDIzYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMHMtOS40LTI0LjYgMC0zMy45bDU3LTU3VjI5Ny42bC02Ni4yIDM4LjItMjAuOSA3Ny44Yy0zLjQgMTIuOC0xNi42IDIwLjQtMjkuNCAxN3MtMjAuNC0xNi42LTE3LTI5LjRMNzUgMzY5LjggMzcuOSAzOTEuMmMtMTEuNSA2LjYtMjYuMiAyLjctMzIuOC04LjhzLTIuNy0yNi4yIDguOC0zMi44TDUxIDMyOC4ybC0zMS41LTguNGMtMTIuOC0zLjQtMjAuNC0xNi42LTE3LTI5LjRzMTYuNi0yMC40IDI5LjQtMTdsNzcuOCAyMC45TDE3NiAyNTZsLTY2LjItMzguMkwzMS45IDIzOC42Yy0xMi44IDMuNC0yNi00LjItMjkuNC0xN3M0LjItMjYgMTctMjkuNEw1MSAxODMuOCAxMy45IDE2Mi40Yy0xMS41LTYuNi0xNS40LTIxLjMtOC44LTMyLjhzMjEuMy0xNS40IDMyLjgtOC44TDc1IDE0Mi4ybC04LjQtMzEuNWMtMy40LTEyLjggNC4yLTI2IDE3LTI5LjRzMjYgNC4yIDI5LjQgMTdsMjAuOSA3Ny44TDIwMCAyMTQuNFYxMzcuOUwxNDMgODFjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGwyMyAyM1YyNGMwLTEzLjMgMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlQ2FyZXREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA0MzJjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMHptNjQtMTZjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwYy0zNS4zIDAtNjQtMjguNy02NC02NEwwIDk2QzAgNjAuNyAyOC43IDMyIDY0IDMybDMyMCAwYzM1LjMgMCA2NCAyOC43IDY0IDY0bDAgMzIwek0yMjQgMzUyYy02LjcgMC0xMy0yLjgtMTcuNi03LjdsLTEwNC0xMTJjLTYuNS03LTguMi0xNy4yLTQuNC0yNS45czEyLjUtMTQuNCAyMi0xNC40bDIwOCAwYzkuNSAwIDE4LjIgNS43IDIyIDE0LjRzMi4xIDE4LjktNC40IDI1LjlsLTEwNCAxMTJjLTQuNSA0LjktMTAuOSA3LjctMTcuNiA3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZUNhcmV0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCA0MTZjMCA4LjggNy4yIDE2IDE2IDE2bDMyMCAwYzguOCAwIDE2LTcuMiAxNi0xNmwwLTMyMGMwLTguOC03LjItMTYtMTYtMTZMNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMHptMTYgNjRjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDBjMzUuMyAwIDY0IDI4LjcgNjQgNjRsMCAzMjBjMCAzNS4zLTI4LjcgNjQtNjQgNjRMNjQgNDgwem02NC0yMjRjMC02LjcgMi44LTEzIDcuNy0xNy42bDExMi0xMDRjNy02LjUgMTcuMi04LjIgMjUuOS00LjRzMTQuNCAxMi41IDE0LjQgMjJsMCAyMDhjMCA5LjUtNS43IDE4LjItMTQuNCAyMnMtMTguOSAyLjEtMjUuOS00LjRsLTExMi0xMDRjLTQuOS00LjUtNy43LTEwLjktNy43LTE3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZUNhcmV0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDk2YzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2bDAgMzIwYzAgOC44IDcuMiAxNiAxNiAxNmwzMjAgMGM4LjggMCAxNi03LjIgMTYtMTZsMC0zMjB6TTM4NCAzMmMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJsMzIwIDB6TTMyMCAyNTZjMCA2LjctMi44IDEzLTcuNyAxNy42bC0xMTIgMTA0Yy03IDYuNS0xNy4yIDguMi0yNS45IDQuNHMtMTQuNC0xMi41LTE0LjQtMjJsMC0yMDhjMC05LjUgNS43LTE4LjIgMTQuNC0yMnMxOC45LTIuMSAyNS45IDQuNGwxMTIgMTA0YzQuOSA0LjUgNy43IDEwLjkgNy43IDE3LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZUNhcmV0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgODBjLTguOCAwLTE2IDcuMi0xNiAxNmwwIDMyMGMwIDguOCA3LjIgMTYgMTYgMTZsMzIwIDBjOC44IDAgMTYtNy4yIDE2LTE2bDAtMzIwYzAtOC44LTcuMi0xNi0xNi0xNkw2NCA4MHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMmwzMjAgMGMzNS4zIDAgNjQgMjguNyA2NCA2NGwwIDMyMGMwIDM1LjMtMjguNyA2NC02NCA2NEw2NCA0ODBjLTM1LjMgMC02NC0yOC43LTY0LTY0TDAgOTZ6bTIyNCA2NGM2LjcgMCAxMyAyLjggMTcuNiA3LjdsMTA0IDExMmM2LjUgNyA4LjIgMTcuMiA0LjQgMjUuOXMtMTIuNSAxNC40LTIyIDE0LjRsLTIwOCAwYy05LjUgMC0xOC4yLTUuNy0yMi0xNC40cy0yLjEtMTguOSA0LjQtMjUuOWwxMDQtMTEyYzQuNS00LjkgMTAuOS03LjcgMTcuNi03Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDgwYy04LjggMC0xNiA3LjItMTYgMTZWNDE2YzAgOC44IDcuMiAxNiAxNiAxNkgzODRjOC44IDAgMTYtNy4yIDE2LTE2Vjk2YzAtOC44LTcuMi0xNi0xNi0xNkg2NHpNMCA5NkMwIDYwLjcgMjguNyAzMiA2NCAzMkgzODRjMzUuMyAwIDY0IDI4LjcgNjQgNjRWNDE2YzAgMzUuMy0yOC43IDY0LTY0IDY0SDY0Yy0zNS4zIDAtNjQtMjguNy02NC02NFY5NnpNMzM3IDIwOUwyMDkgMzM3Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtNjQtNjRjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45czI0LjYtOS40IDMzLjkgMGw0NyA0N0wzMDMgMTc1YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwczkuNCAyNC42IDAgMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNDhWNDY0SDQ4VjQ4SDQ2NHpNNDggMEgwVjQ4IDQ2NHY0OEg0OCA0NjRoNDhWNDY0IDQ4IDBINDY0IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTcXVhcmVNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNlY5NmMwLTguOC03LjItMTYtMTYtMTZINjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTE1MiAyMzJIMjk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0SDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3F1YXJlUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA4MGMtOC44IDAtMTYgNy4yLTE2IDE2VjQxNmMwIDguOCA3LjIgMTYgMTYgMTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNlY5NmMwLTguOC03LjItMTYtMTYtMTZINjR6TTAgOTZDMCA2MC43IDI4LjcgMzIgNjQgMzJIMzg0YzM1LjMgMCA2NCAyOC43IDY0IDY0VjQxNmMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWOTZ6TTIwMCAzNDRWMjgwSDEzNmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNGg2NFYxNjhjMC0xMy4zIDEwLjctMjQgMjQtMjRzMjQgMTAuNyAyNCAyNHY2NGg2NGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNEgyNDh2NjRjMCAxMy4zLTEwLjcgMjQtMjQgMjRzLTI0LTEwLjctMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgODBjOC44IDAgMTYgNy4yIDE2IDE2VjQxNmMwIDguOC03LjIgMTYtMTYgMTZINjRjLTguOCAwLTE2LTcuMi0xNi0xNlY5NmMwLTguOCA3LjItMTYgMTYtMTZIMzg0ek02NCAzMkMyOC43IDMyIDAgNjAuNyAwIDk2VjQxNmMwIDM1LjMgMjguNyA2NCA2NCA2NEgzODRjMzUuMyAwIDY0LTI4LjcgNjQtNjRWOTZjMC0zNS4zLTI4LjctNjQtNjQtNjRINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N0YXJIYWxmU3Ryb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOS41IDEzLjVDMzA1LjUgNS4yIDI5Ny4xIDAgMjg3LjkgMHMtMTcuNiA1LjItMjEuNiAxMy41TDE5Ny43IDE1NC44IDQ0LjUgMTc3LjVjLTkgMS4zLTE2LjUgNy42LTE5LjMgMTYuM3MtLjUgMTguMSA1LjkgMjQuNUwxNDIuMiAzMjguNCAxMTYgNDgzLjljLTEuNSA5IDIuMiAxOC4xIDkuNyAyMy41czE3LjMgNiAyNS4zIDEuN2wxMzctNzMuMiAxMzcgNzMuMmM4LjEgNC4zIDE3LjkgMy43IDI1LjMtMS43czExLjItMTQuNSA5LjctMjMuNUw0MzMuNiAzMjguNCA1NDQuOCAyMTguMmM2LjUtNi40IDguNy0xNS45IDUuOS0yNC41cy0xMC4zLTE0LjktMTkuMy0xNi4zTDM3OC4xIDE1NC44IDMwOS41IDEzLjV6TTI4OCAzODQuN1Y3OS4xbDUyLjUgMTA4LjFjMy41IDcuMSAxMC4yIDEyLjEgMTguMSAxMy4zbDExOC4zIDE3LjVMMzkxIDMwM2MtNS41IDUuNS04LjEgMTMuMy02LjggMjFsMjAuMiAxMTkuNkwyOTkuMiAzODcuNWMtMy41LTEuOS03LjQtMi44LTExLjItMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdGFySGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTMuMyAuNmMxMC45IDIuNSAxOC42IDEyLjIgMTguNiAyMy40VjQwOC43YzAgOC45LTQuOSAxNy0xMi43IDIxLjJMMTUxIDUwOS4xYy04LjEgNC4zLTE3LjkgMy43LTI1LjMtMS43cy0xMS4yLTE0LjUtOS43LTIzLjVsMjYuMi0xNTUuNkwzMS4xIDIxOC4zYy02LjUtNi40LTguNy0xNS45LTUuOS0yNC41czEwLjMtMTQuOSAxOS4zLTE2LjNsMTUzLjItMjIuNkwyNjYuMyAxMy41YzQuOS0xMC4xIDE2LjEtMTUuNCAyNy0xMi45ek0yNjMuOSAxMjguNGwtMjguNiA1OC44Yy0zLjUgNy4xLTEwLjIgMTIuMS0xOC4xIDEzLjNMOTkgMjE3LjkgMTg0LjkgMzAzYzUuNSA1LjUgOC4xIDEzLjMgNi44IDIxTDE3MS40IDQ0My43bDkyLjUtNDkuNFYxMjguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODcuOSAwYzkuMiAwIDE3LjYgNS4yIDIxLjYgMTMuNWw2OC42IDE0MS4zIDE1My4yIDIyLjZjOSAxLjMgMTYuNSA3LjYgMTkuMyAxNi4zcy41IDE4LjEtNS45IDI0LjVMNDMzLjYgMzI4LjRsMjYuMiAxNTUuNmMxLjUgOS0yLjIgMTguMS05LjcgMjMuNXMtMTcuMyA2LTI1LjMgMS43bC0xMzctNzMuMkwxNTEgNTA5LjFjLTguMSA0LjMtMTcuOSAzLjctMjUuMy0xLjdzLTExLjItMTQuNS05LjctMjMuNWwyNi4yLTE1NS42TDMxLjEgMjE4LjJjLTYuNS02LjQtOC43LTE1LjktNS45LTI0LjVzMTAuMy0xNC45IDE5LjMtMTYuM2wxNTMuMi0yMi42TDI2Ni4zIDEzLjVDMjcwLjQgNS4yIDI3OC43IDAgMjg3LjkgMHptMCA3OUwyMzUuNCAxODcuMmMtMy41IDcuMS0xMC4yIDEyLjEtMTguMSAxMy4zTDk5IDIxNy45IDE4NC45IDMwM2M1LjUgNS41IDguMSAxMy4zIDYuOCAyMUwxNzEuNCA0NDMuN2wxMDUuMi01Ni4yYzcuMS0zLjggMTUuNi0zLjggMjIuNiAwbDEwNS4yIDU2LjJMMzg0LjIgMzI0LjFjLTEuMy03LjcgMS4yLTE1LjUgNi44LTIxbDg1LjktODUuMUwzNTguNiAyMDAuNWMtNy44LTEuMi0xNC42LTYuMS0xOC4xLTEzLjNMMjg3LjkgNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzUuNyAxOS43Yy0xLjUtOC02LjktMTQuNy0xNC40LTE3LjhzLTE2LjEtMi4yLTIyLjggMi40TDI1NiA2MS4xIDE3My41IDQuMmMtNi43LTQuNi0xNS4zLTUuNS0yMi44LTIuNHMtMTIuOSA5LjgtMTQuNCAxNy44bC0xOC4xIDk4LjVMMTkuNyAxMzYuM2MtOCAxLjUtMTQuNyA2LjktMTcuOCAxNC40cy0yLjIgMTYuMSAyLjQgMjIuOEw2MS4xIDI1NiA0LjIgMzM4LjVjLTQuNiA2LjctNS41IDE1LjMtMi40IDIyLjhzOS44IDEzIDE3LjggMTQuNGw5OC41IDE4LjEgMTguMSA5OC41YzEuNSA4IDYuOSAxNC43IDE0LjQgMTcuOHMxNi4xIDIuMiAyMi44LTIuNEwyNTYgNDUwLjlsODIuNSA1Ni45YzYuNyA0LjYgMTUuMyA1LjUgMjIuOCAyLjRzMTIuOS05LjggMTQuNC0xNy44bDE4LjEtOTguNSA5OC41LTE4LjFjOC0xLjUgMTQuNy02LjkgMTcuOC0xNC40czIuMi0xNi4xLTIuNC0yMi44TDQ1MC45IDI1Nmw1Ni45LTgyLjVjNC42LTYuNyA1LjUtMTUuMyAyLjQtMjIuOHMtOS44LTEyLjktMTcuOC0xNC40bC05OC41LTE4LjFMMzc1LjcgMTkuN3pNMjY5LjYgMTEwbDY1LjYtNDUuMiAxNC40IDc4LjNjMS44IDkuOCA5LjUgMTcuNSAxOS4zIDE5LjNsNzguMyAxNC40TDQwMiAyNDIuNGMtNS43IDguMi01LjcgMTkgMCAyNy4ybDQ1LjIgNjUuNi03OC4zIDE0LjRjLTkuOCAxLjgtMTcuNSA5LjUtMTkuMyAxOS4zbC0xNC40IDc4LjNMMjY5LjYgNDAyYy04LjItNS43LTE5LTUuNy0yNy4yIDBsLTY1LjYgNDUuMi0xNC40LTc4LjNjLTEuOC05LjgtOS41LTE3LjUtMTkuMy0xOS4zTDY0LjggMzM1LjIgMTEwIDI2OS42YzUuNy04LjIgNS43LTE5IDAtMjcuMkw2NC44IDE3Ni44bDc4LjMtMTQuNGM5LjgtMS44IDE3LjUtOS41IDE5LjMtMTkuM2wxNC40LTc4LjNMMjQyLjQgMTEwYzguMiA1LjcgMTkgNS43IDI3LjIgMHpNMjU2IDM2OGExMTIgMTEyIDAgMSAwIDAtMjI0IDExMiAxMTIgMCAxIDAgMCAyMjR6TTE5MiAyNTZhNjQgNjQgMCAxIDEgMTI4IDAgNjQgNjQgMCAxIDEgLTEyOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMy44IDQ3Ny4yYy0zOC4yIDEwLjktNzguMS0xMS4yLTg5LTQ5LjRsLTUuNy0yMGMtMy43LTEzLTEwLjQtMjUtMTkuNS0zNWwtNTEuMy01Ni40Yy04LjktOS44LTguMi0yNSAxLjYtMzMuOXMyNS04LjIgMzMuOSAxLjZsNTEuMyA1Ni40YzE0LjEgMTUuNSAyNC40IDM0IDMwLjEgNTQuMWw1LjcgMjBjMy42IDEyLjcgMTYuOSAyMC4xIDI5LjcgMTYuNXMyMC4xLTE2LjkgMTYuNS0yOS43bC01LjctMjBjLTUuNy0xOS45LTE0LjctMzguNy0yNi42LTU1LjVjLTUuMi03LjMtNS44LTE2LjktMS43LTI0LjlzMTIuMy0xMyAyMS4zLTEzTDQ0OCAyODhjOC44IDAgMTYtNy4yIDE2LTE2YzAtNi44LTQuMy0xMi43LTEwLjQtMTVjLTcuNC0yLjgtMTMtOS0xNC45LTE2LjdzLjEtMTUuOCA1LjMtMjEuN2MyLjUtMi44IDQtNi41IDQtMTAuNmMwLTcuOC01LjYtMTQuMy0xMy0xNS43Yy04LjItMS42LTE1LjEtNy4zLTE4LTE1LjJzLTEuNi0xNi43IDMuNi0yMy4zYzIuMS0yLjcgMy40LTYuMSAzLjQtOS45YzAtNi43LTQuMi0xMi42LTEwLjItMTQuOWMtMTEuNS00LjUtMTcuNy0xNi45LTE0LjQtMjguOGMuNC0xLjMgLjYtMi44IC42LTQuM2MwLTguOC03LjItMTYtMTYtMTZIMjg2LjVjLTEyLjYgMC0yNSAzLjctMzUuNSAxMC43bC02MS43IDQxLjFjLTExIDcuNC0yNS45IDQuNC0zMy4zLTYuN3MtNC40LTI1LjkgNi43LTMzLjNsNjEuNy00MS4xYzE4LjQtMTIuMyA0MC0xOC44IDYyLjEtMTguOEgzODRjMzQuNyAwIDYyLjkgMjcuNiA2NCA2MmMxNC42IDExLjcgMjQgMjkuNyAyNCA1MGMwIDQuNS0uNSA4LjgtMS4zIDEzYzE1LjQgMTEuNyAyNS4zIDMwLjIgMjUuMyA1MWMwIDYuNS0xIDEyLjgtMi44IDE4LjdDNTA0LjggMjM4LjMgNTEyIDI1NC4zIDUxMiAyNzJjMCAzNS4zLTI4LjYgNjQtNjQgNjRsLTkyLjMgMGM0LjcgMTAuNCA4LjcgMjEuMiAxMS44IDMyLjJsNS43IDIwYzEwLjkgMzguMi0xMS4yIDc4LjEtNDkuNCA4OXpNMzIgMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxMjhjMC0xNy43IDE0LjMtMzIgMzItMzJIOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJWMzUyYzAgMTcuNy0xNC4zIDMyLTMyIDMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjMuOCAzNC44Yy0zOC4yLTEwLjktNzguMSAxMS4yLTg5IDQ5LjRsLTUuNyAyMGMtMy43IDEzLTEwLjQgMjUtMTkuNSAzNWwtNTEuMyA1Ni40Yy04LjkgOS44LTguMiAyNSAxLjYgMzMuOXMyNSA4LjIgMzMuOS0xLjZsNTEuMy01Ni40YzE0LjEtMTUuNSAyNC40LTM0IDMwLjEtNTQuMWw1LjctMjBjMy42LTEyLjcgMTYuOS0yMC4xIDI5LjctMTYuNXMyMC4xIDE2LjkgMTYuNSAyOS43bC01LjcgMjBjLTUuNyAxOS45LTE0LjcgMzguNy0yNi42IDU1LjVjLTUuMiA3LjMtNS44IDE2LjktMS43IDI0LjlzMTIuMyAxMyAyMS4zIDEzTDQ0OCAyMjRjOC44IDAgMTYgNy4yIDE2IDE2YzAgNi44LTQuMyAxMi43LTEwLjQgMTVjLTcuNCAyLjgtMTMgOS0xNC45IDE2LjdzLjEgMTUuOCA1LjMgMjEuN2MyLjUgMi44IDQgNi41IDQgMTAuNmMwIDcuOC01LjYgMTQuMy0xMyAxNS43Yy04LjIgMS42LTE1LjEgNy4zLTE4IDE1LjJzLTEuNiAxNi43IDMuNiAyMy4zYzIuMSAyLjcgMy40IDYuMSAzLjQgOS45YzAgNi43LTQuMiAxMi42LTEwLjIgMTQuOWMtMTEuNSA0LjUtMTcuNyAxNi45LTE0LjQgMjguOGMuNCAxLjMgLjYgMi44IC42IDQuM2MwIDguOC03LjIgMTYtMTYgMTZIMjg2LjVjLTEyLjYgMC0yNS0zLjctMzUuNS0xMC43bC02MS43LTQxLjFjLTExLTcuNC0yNS45LTQuNC0zMy4zIDYuN3MtNC40IDI1LjkgNi43IDMzLjNsNjEuNyA0MS4xYzE4LjQgMTIuMyA0MCAxOC44IDYyLjEgMTguOEgzODRjMzQuNyAwIDYyLjktMjcuNiA2NC02MmMxNC42LTExLjcgMjQtMjkuNyAyNC01MGMwLTQuNS0uNS04LjgtMS4zLTEzYzE1LjQtMTEuNyAyNS4zLTMwLjIgMjUuMy01MWMwLTYuNS0xLTEyLjgtMi44LTE4LjdDNTA0LjggMjczLjcgNTEyIDI1Ny43IDUxMiAyNDBjMC0zNS4zLTI4LjYtNjQtNjQtNjRsLTkyLjMgMGM0LjctMTAuNCA4LjctMjEuMiAxMS44LTMyLjJsNS43LTIwYzEwLjktMzguMi0xMS4yLTc4LjEtNDkuNC04OXpNMzIgMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJIOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUcmFzaENhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzAuNSA1MS42TDE1MS41IDgwaDE0NWwtMTktMjguNGMtMS41LTIuMi00LTMuNi02LjctMy42SDE3Ny4xYy0yLjcgMC01LjIgMS4zLTYuNyAzLjZ6bTE0Ny0yNi42TDM1NC4yIDgwSDM2OGg0OCA4YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0aC04VjQzMmMwIDQ0LjItMzUuOCA4MC04MCA4MEgxMTJjLTQ0LjIgMC04MC0zNS44LTgwLTgwVjEyOEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRTMTAuNyA4MCAyNCA4MGg4SDgwIDkzLjhsMzYuNy01NS4xQzE0MC45IDkuNCAxNTguNCAwIDE3Ny4xIDBoOTMuN2MxOC43IDAgMzYuMiA5LjQgNDYuNiAyNC45ek04MCAxMjhWNDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMySDMzNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxMjhIODB6bTgwIDY0VjQwMGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYxOTJjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnptODAgMFY0MDBjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWMTkyYzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ6bTgwIDBWNDAwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjE5MmMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAxMjhhODAgODAgMCAxIDAgLTE2MCAwIDgwIDgwIDAgMSAwIDE2MCAwek05NiAxMjhhMTI4IDEyOCAwIDEgMSAyNTYgMEExMjggMTI4IDAgMSAxIDk2IDEyOHpNNDkuMyA0NjRIMzk4LjdjLTguOS02My4zLTYzLjMtMTEyLTEyOS0xMTJIMTc4LjNjLTY1LjcgMC0xMjAuMSA0OC43LTEyOSAxMTJ6TTAgNDgyLjNDMCAzODMuOCA3OS44IDMwNCAxNzguMyAzMDRoOTEuNEMzNjguMiAzMDQgNDQ4IDM4My44IDQ0OCA0ODIuM2MwIDE2LjQtMTMuMyAyOS43LTI5LjcgMjkuN0gyOS43QzEzLjMgNTEyIDAgNDk4LjcgMCA0ODIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnV2luZG93TWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjMgODkuNUMuMSA5MS42IDAgOTMuOCAwIDk2VjIyNCA0MTZjMCAzNS4zIDI4LjcgNjQgNjQgNjRsMzg0IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMjI0IDk2YzAtMzUuMy0yOC43LTY0LTY0LTY0SDY0Yy0yLjIgMC00LjQgLjEtNi41IC4zYy05LjIgLjktMTcuOCAzLjgtMjUuNSA4LjJDMjEuOCA0Ni41IDEzLjQgNTUuMSA3LjcgNjUuNWMtMy45IDcuMy02LjUgMTUuNC03LjQgMjR6TTQ4IDIyNEg0NjRsMCAxOTJjMCA4LjgtNy4yIDE2LTE2IDE2TDY0IDQzMmMtOC44IDAtMTYtNy4yLTE2LTE2bDAtMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dNaW5pbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA0MzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRINDg4YzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0SDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiA0OEgyMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyVjk2SDEyOFY4MGMwLTQ0LjIgMzUuOC04MCA4MC04MEg0MzJjNDQuMiAwIDgwIDM1LjggODAgODBWMzA0YzAgNDQuMi0zNS44IDgwLTgwIDgwSDQxNlYzMzZoMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWODBjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ4IDQ0OGMwIDguOCA3LjIgMTYgMTYgMTZIMzIwYzguOCAwIDE2LTcuMiAxNi0xNlYyNTZINDhWNDQ4ek02NCAxMjhIMzIwYzM1LjMgMCA2NCAyOC43IDY0IDY0VjQ0OGMwIDM1LjMtMjguNyA2NC02NCA2NEg2NGMtMzUuMyAwLTY0LTI4LjctNjQtNjRWMTkyYzAtMzUuMyAyOC43LTY0IDY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG4iLCJjb25zdCBjb3B5VG9DbGlwYm9hcmQgPSAodmFsdWVUb0NvcHksIHNldElzSnVzdENvcGllZCkgPT4ge1xuICBzZXRJc0p1c3RDb3BpZWQodHJ1ZSk7XG4gIG5hdmlnYXRvcj8uY2xpcGJvYXJkPy53cml0ZVRleHQodmFsdWVUb0NvcHkpLnRoZW4oKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKFwiQ29weSBTdWNjZXNzZnVsbFwiKTtcbiAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBDb3B5IHRleHQ6IFwiLCBlcnJvcik7XG4gICAgc2V0SXNKdXN0Q29waWVkKGZhbHNlKTtcbiAgfSk7XG4gIHNldFRpbWVvdXQoKCkgPT4gc2V0SXNKdXN0Q29waWVkKGZhbHNlKSwgNGUzKTtcbn07XG5cbmV4cG9ydCB7IGNvcHlUb0NsaXBib2FyZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZhQ2hlY2ssIEZhQ2xpcGJvYXJkTGlzdCB9IGZyb20gJ3JlYWN0LWljb25zL2ZhNic7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjb3B5VG9DbGlwYm9hcmQgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcblxuY29uc3QgQ2xpcGJvYXJkV2l0aEljb24gPSBmb3J3YXJkUmVmKFxuICAoeyB2YWx1ZVRvQ29weSwgaWNvbjogSWNvbiA9IEZhQ2xpcGJvYXJkTGlzdCwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIGNsYXNzTmFtZSwgLi4ucmVzdCB9LCByZWYpID0+IHtcbiAgICBjb25zdCBbaXNKdXN0Q29waWVkLCBzZXRJc0p1c3RDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuY2xpcGJvYXJkLndpdGhJY29uLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImJ1dHRvblwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgb25DbGljazogKCkgPT4gY29weVRvQ2xpcGJvYXJkKHZhbHVlVG9Db3B5LCBzZXRJc0p1c3RDb3BpZWQpLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgICByZWYsXG4gICAgICAgIGNoaWxkcmVuOiBpc0p1c3RDb3BpZWQgPyAvKiBAX19QVVJFX18gKi8ganN4KEZhQ2hlY2ssIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24uc3VjY2Vzc0ljb24gfSkgOiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24uZGVmYXVsdEljb24gfSlcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuXG5leHBvcnQgeyBDbGlwYm9hcmRXaXRoSWNvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2xpcGJvYXJkV2l0aEljb24ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGYUNoZWNrLCBGYUNsaXBib2FyZExpc3QgfSBmcm9tICdyZWFjdC1pY29ucy9mYTYnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgY29weVRvQ2xpcGJvYXJkIH0gZnJvbSAnLi9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IENsaXBib2FyZFdpdGhJY29uVGV4dCA9IGZvcndhcmRSZWYoXG4gICh7IHZhbHVlVG9Db3B5LCBpY29uOiBJY29uID0gRmFDbGlwYm9hcmRMaXN0LCBsYWJlbCA9IFwiQ29weVwiLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgY2xhc3NOYW1lLCAuLi5yZXN0IH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IFtpc0p1c3RDb3BpZWQsIHNldElzSnVzdENvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5jbGlwYm9hcmQud2l0aEljb25UZXh0LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImJ1dHRvblwiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgb25DbGljazogKCkgPT4gY29weVRvQ2xpcGJvYXJkKHZhbHVlVG9Db3B5LCBzZXRJc0p1c3RDb3BpZWQpLFxuICAgICAgICAuLi5yZXN0LFxuICAgICAgICByZWYsXG4gICAgICAgIGNoaWxkcmVuOiBpc0p1c3RDb3BpZWQgPyAvKiBAX19QVVJFX18gKi8ganN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxhYmVsLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChGYUNoZWNrLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pY29uLnN1Y2Nlc3NJY29uIH0pLFxuICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYWJlbC5zdWNjZXNzVGV4dCwgY2hpbGRyZW46IFwiQ29waWVkXCIgfSlcbiAgICAgICAgXSB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGFiZWwuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLmljb24uZGVmYXVsdEljb24gfSksXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxhYmVsLmRlZmF1bHRUZXh0LCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgXSB9KVxuICAgICAgfVxuICAgICk7XG4gIH1cbik7XG5cbmV4cG9ydCB7IENsaXBib2FyZFdpdGhJY29uVGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2xpcGJvYXJkV2l0aEljb25UZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAvVG9vbHRpcC5tanMnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkV2l0aEljb24gfSBmcm9tICcuL0NsaXBib2FyZFdpdGhJY29uLm1qcyc7XG5pbXBvcnQgeyBDbGlwYm9hcmRXaXRoSWNvblRleHQgfSBmcm9tICcuL0NsaXBib2FyZFdpdGhJY29uVGV4dC5tanMnO1xuaW1wb3J0IHsgY29weVRvQ2xpcGJvYXJkIH0gZnJvbSAnLi9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IENsaXBib2FyZENvbXBvbmVudCA9IGZvcndhcmRSZWYoXG4gICh7IGNsYXNzTmFtZSwgdmFsdWVUb0NvcHksIGxhYmVsLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucmVzdCB9LCByZWYpID0+IHtcbiAgICBjb25zdCBbaXNKdXN0Q29waWVkLCBzZXRJc0p1c3RDb3BpZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuY2xpcGJvYXJkLmJ1dHRvbiwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFRvb2x0aXAsIHsgY29udGVudDogaXNKdXN0Q29waWVkID8gXCJDb3BpZWRcIiA6IFwiQ29weSB0byBjbGlwYm9hcmRcIiwgY2xhc3NOYW1lOiBcIlsmXypdOmN1cnNvci1wb2ludGVyXCIsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJidXR0b25cIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvcHlUb0NsaXBib2FyZCh2YWx1ZVRvQ29weSwgc2V0SXNKdXN0Q29waWVkKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgcmVmLFxuICAgICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmxhYmVsLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuQ2xpcGJvYXJkQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJDbGlwYm9hcmRcIjtcbkNsaXBib2FyZFdpdGhJY29uLmRpc3BsYXlOYW1lID0gXCJDbGlwYm9hcmQuV2l0aEljb25cIjtcbkNsaXBib2FyZFdpdGhJY29uVGV4dC5kaXNwbGF5TmFtZSA9IFwiQ2xpcGJvYXJkLldpdGhJY29uVGV4dFwiO1xuY29uc3QgQ2xpcGJvYXJkID0gT2JqZWN0LmFzc2lnbihDbGlwYm9hcmRDb21wb25lbnQsIHtcbiAgV2l0aEljb246IENsaXBib2FyZFdpdGhJY29uLFxuICBXaXRoSWNvblRleHQ6IENsaXBib2FyZFdpdGhJY29uVGV4dFxufSk7XG5cbmV4cG9ydCB7IENsaXBib2FyZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Q2xpcGJvYXJkLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgSGVscGVyVGV4dCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbG9yID0gXCJkZWZhdWx0XCIsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB2YWx1ZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5oZWxwZXJUZXh0LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwicFwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIHRoZW1lLnJvb3QuY29sb3JzW2NvbG9yXSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiB2YWx1ZSA/PyBjaGlsZHJlbiA/PyBcIlwiIH0pO1xufTtcbkhlbHBlclRleHQuZGlzcGxheU5hbWUgPSBcIkhlbHBlclRleHRcIjtcblxuZXhwb3J0IHsgSGVscGVyVGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SGVscGVyVGV4dC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBGcmFnbWVudCwganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEhlbHBlclRleHQgfSBmcm9tICcuLi9IZWxwZXJUZXh0L0hlbHBlclRleHQubWpzJztcblxuY29uc3QgVGV4dElucHV0ID0gZm9yd2FyZFJlZihcbiAgKHtcbiAgICBhZGRvbixcbiAgICBjbGFzc05hbWUsXG4gICAgY29sb3IgPSBcImdyYXlcIixcbiAgICBoZWxwZXJUZXh0LFxuICAgIGljb246IEljb24sXG4gICAgcmlnaHRJY29uOiBSaWdodEljb24sXG4gICAgc2hhZG93LFxuICAgIHNpemluZyA9IFwibWRcIixcbiAgICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgICB0eXBlID0gXCJ0ZXh0XCIsXG4gICAgLi4ucHJvcHNcbiAgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS50ZXh0SW5wdXQsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbXG4gICAgICAgIGFkZG9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5hZGRvbiwgY2hpbGRyZW46IGFkZG9uIH0pLFxuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmljb24uYmFzZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmljb24uc3ZnIH0pIH0pLFxuICAgICAgICAgIFJpZ2h0SWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcInJpZ2h0LWljb25cIiwgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5yaWdodEljb24uYmFzZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goUmlnaHRJY29uLCB7IGNsYXNzTmFtZTogdGhlbWUuZmllbGQucmlnaHRJY29uLnN2ZyB9KSB9KSxcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgXCJpbnB1dFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQuYmFzZSxcbiAgICAgICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC5jb2xvcnNbY29sb3JdLFxuICAgICAgICAgICAgICAgIHRoZW1lLmZpZWxkLmlucHV0LnNpemVzW3NpemluZ10sXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQud2l0aEljb25bSWNvbiA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICAgICAgICAgIHRoZW1lLmZpZWxkLmlucHV0LndpdGhSaWdodEljb25bUmlnaHRJY29uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQud2l0aEFkZG9uW2FkZG9uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQud2l0aFNoYWRvd1tzaGFkb3cgPyBcIm9uXCIgOiBcIm9mZlwiXVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgICAgcmVmXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKVxuICAgICAgICBdIH0pXG4gICAgICBdIH0pLFxuICAgICAgaGVscGVyVGV4dCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEhlbHBlclRleHQsIHsgY29sb3IsIGNoaWxkcmVuOiBoZWxwZXJUZXh0IH0pXG4gICAgXSB9KTtcbiAgfVxuKTtcblRleHRJbnB1dC5kaXNwbGF5TmFtZSA9IFwiVGV4dElucHV0XCI7XG5cbmV4cG9ydCB7IFRleHRJbnB1dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGV4dElucHV0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IERhdGVwaWNrZXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlRGF0ZVBpY2tlckNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERhdGVwaWNrZXJDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlRGF0ZVBpY2tlckNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBEYXRlUGlja2VyQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IERhdGVwaWNrZXJDb250ZXh0LCB1c2VEYXRlUGlja2VyQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0ZXBpY2tlckNvbnRleHQubWpzLm1hcFxuIiwidmFyIFZpZXdzID0gLyogQF9fUFVSRV9fICovICgoVmlld3MyKSA9PiB7XG4gIFZpZXdzMltWaWV3czJbXCJEYXlzXCJdID0gMF0gPSBcIkRheXNcIjtcbiAgVmlld3MyW1ZpZXdzMltcIk1vbnRoc1wiXSA9IDFdID0gXCJNb250aHNcIjtcbiAgVmlld3MyW1ZpZXdzMltcIlllYXJzXCJdID0gMl0gPSBcIlllYXJzXCI7XG4gIFZpZXdzMltWaWV3czJbXCJEZWNhZGVzXCJdID0gM10gPSBcIkRlY2FkZXNcIjtcbiAgcmV0dXJuIFZpZXdzMjtcbn0pKFZpZXdzIHx8IHt9KTtcbnZhciBXZWVrU3RhcnQgPSAvKiBAX19QVVJFX18gKi8gKChXZWVrU3RhcnQyKSA9PiB7XG4gIFdlZWtTdGFydDJbV2Vla1N0YXJ0MltcIlN1bmRheVwiXSA9IDBdID0gXCJTdW5kYXlcIjtcbiAgV2Vla1N0YXJ0MltXZWVrU3RhcnQyW1wiTW9uZGF5XCJdID0gMV0gPSBcIk1vbmRheVwiO1xuICBXZWVrU3RhcnQyW1dlZWtTdGFydDJbXCJUdWVzZGF5XCJdID0gMl0gPSBcIlR1ZXNkYXlcIjtcbiAgV2Vla1N0YXJ0MltXZWVrU3RhcnQyW1wiV2VkbmVzZGF5XCJdID0gM10gPSBcIldlZG5lc2RheVwiO1xuICBXZWVrU3RhcnQyW1dlZWtTdGFydDJbXCJUaHVyc2RheVwiXSA9IDRdID0gXCJUaHVyc2RheVwiO1xuICBXZWVrU3RhcnQyW1dlZWtTdGFydDJbXCJGcmlkYXlcIl0gPSA1XSA9IFwiRnJpZGF5XCI7XG4gIFdlZWtTdGFydDJbV2Vla1N0YXJ0MltcIlNhdHVyZGF5XCJdID0gNl0gPSBcIlNhdHVyZGF5XCI7XG4gIHJldHVybiBXZWVrU3RhcnQyO1xufSkoV2Vla1N0YXJ0IHx8IHt9KTtcbmNvbnN0IGlzRGF0ZUluUmFuZ2UgPSAoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSkgPT4ge1xuICBjb25zdCBkYXRlVGltZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkuZ2V0VGltZSgpO1xuICBpZiAobWluRGF0ZSAmJiBtYXhEYXRlKSB7XG4gICAgY29uc3QgbWluRGF0ZVRpbWUgPSBuZXcgRGF0ZShtaW5EYXRlLmdldEZ1bGxZZWFyKCksIG1pbkRhdGUuZ2V0TW9udGgoKSwgbWluRGF0ZS5nZXREYXRlKCkpLmdldFRpbWUoKTtcbiAgICBjb25zdCBtYXhEYXRlVGltZSA9IG5ldyBEYXRlKG1heERhdGUuZ2V0RnVsbFllYXIoKSwgbWF4RGF0ZS5nZXRNb250aCgpLCBtYXhEYXRlLmdldERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIHJldHVybiBkYXRlVGltZSA+PSBtaW5EYXRlVGltZSAmJiBkYXRlVGltZSA8PSBtYXhEYXRlVGltZTtcbiAgfVxuICBpZiAobWluRGF0ZSkge1xuICAgIGNvbnN0IG1pbkRhdGVUaW1lID0gbmV3IERhdGUobWluRGF0ZS5nZXRGdWxsWWVhcigpLCBtaW5EYXRlLmdldE1vbnRoKCksIG1pbkRhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgcmV0dXJuIGRhdGVUaW1lID49IG1pbkRhdGVUaW1lO1xuICB9XG4gIGlmIChtYXhEYXRlKSB7XG4gICAgY29uc3QgbWF4RGF0ZVRpbWUgPSBuZXcgRGF0ZShtYXhEYXRlLmdldEZ1bGxZZWFyKCksIG1heERhdGUuZ2V0TW9udGgoKSwgbWF4RGF0ZS5nZXREYXRlKCkpLmdldFRpbWUoKTtcbiAgICByZXR1cm4gZGF0ZVRpbWUgPD0gbWF4RGF0ZVRpbWU7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xuY29uc3QgaXNEYXRlRXF1YWwgPSAoZGF0ZSwgc2VsZWN0ZWREYXRlKSA9PiB7XG4gIGRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xuICBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSwgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCksIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCkpO1xuICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgPT09IHNlbGVjdGVkRGF0ZS5nZXRUaW1lKCk7XG59O1xuY29uc3QgZ2V0Rmlyc3REYXRlSW5SYW5nZSA9IChkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKSA9PiB7XG4gIGlmICghaXNEYXRlSW5SYW5nZShkYXRlLCBtaW5EYXRlLCBtYXhEYXRlKSkge1xuICAgIGlmIChtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlKSB7XG4gICAgICBkYXRlID0gbWluRGF0ZTtcbiAgICB9IGVsc2UgaWYgKG1heERhdGUgJiYgZGF0ZSA+IG1heERhdGUpIHtcbiAgICAgIGRhdGUgPSBtYXhEYXRlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0ZTtcbn07XG5jb25zdCBnZXRGaXJzdERheU9mVGhlTW9udGggPSAoZGF0ZSwgd2Vla1N0YXJ0KSA9PiB7XG4gIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcbiAgY29uc3QgZGF5T2ZXZWVrID0gZmlyc3REYXlPZk1vbnRoLmdldERheSgpO1xuICBsZXQgZGlmZiA9IGRheU9mV2VlayAtIHdlZWtTdGFydDtcbiAgaWYgKGRpZmYgPCAwKSB7XG4gICAgZGlmZiArPSA3O1xuICB9XG4gIHJldHVybiBhZGREYXlzKGZpcnN0RGF5T2ZNb250aCwgLWRpZmYpO1xufTtcbmNvbnN0IGdldFdlZWtEYXlzID0gKGxhbmcsIHdlZWtTdGFydCkgPT4ge1xuICBjb25zdCB3ZWVrZGF5cyA9IFtdO1xuICBjb25zdCBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKDApO1xuICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBkYXRlLmdldERheSgpICsgd2Vla1N0YXJ0KTtcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQobGFuZywgeyB3ZWVrZGF5OiBcInNob3J0XCIgfSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgd2Vla2RheXMucHVzaChmb3JtYXR0ZXIuZm9ybWF0KGFkZERheXMoZGF0ZSwgaSkpKTtcbiAgfVxuICByZXR1cm4gd2Vla2RheXM7XG59O1xuY29uc3QgYWRkRGF5cyA9IChkYXRlLCBhbW91bnQpID0+IHtcbiAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICBuZXdEYXRlLnNldERhdGUobmV3RGF0ZS5nZXREYXRlKCkgKyBhbW91bnQpO1xuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5jb25zdCBhZGRNb250aHMgPSAoZGF0ZSwgYW1vdW50KSA9PiB7XG4gIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgbmV3RGF0ZS5zZXRNb250aChuZXdEYXRlLmdldE1vbnRoKCkgKyBhbW91bnQpO1xuICByZXR1cm4gbmV3RGF0ZTtcbn07XG5jb25zdCBhZGRZZWFycyA9IChkYXRlLCBhbW91bnQpID0+IHtcbiAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSArIGFtb3VudCk7XG4gIHJldHVybiBuZXdEYXRlO1xufTtcbmNvbnN0IGdldEZvcm1hdHRlZERhdGUgPSAobGFuZ3VhZ2UsIGRhdGUsIG9wdGlvbnMpID0+IHtcbiAgbGV0IGRlZmF1bHRPcHRpb25zID0ge1xuICAgIGRheTogXCJudW1lcmljXCIsXG4gICAgbW9udGg6IFwibG9uZ1wiLFxuICAgIHllYXI6IFwibnVtZXJpY1wiXG4gIH07XG4gIGlmIChvcHRpb25zKSB7XG4gICAgZGVmYXVsdE9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG4gIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChsYW5ndWFnZSwgZGVmYXVsdE9wdGlvbnMpLmZvcm1hdChkYXRlKTtcbn07XG5jb25zdCBzdGFydE9mWWVhclBlcmlvZCA9IChkYXRlLCB5ZWFycykgPT4ge1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICByZXR1cm4gTWF0aC5mbG9vcih5ZWFyIC8geWVhcnMpICogeWVhcnM7XG59O1xuY29uc3QgaXNEYXRlSW5EZWNhZGUgPSAoZGF0ZSwgc3RhcnRZZWFyKSA9PiB7XG4gIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IGVuZFllYXIgPSBzdGFydFllYXIgKyA5O1xuICByZXR1cm4geWVhciA+PSBzdGFydFllYXIgJiYgeWVhciA8PSBlbmRZZWFyO1xufTtcblxuZXhwb3J0IHsgVmlld3MsIFdlZWtTdGFydCwgYWRkRGF5cywgYWRkTW9udGhzLCBhZGRZZWFycywgZ2V0Rmlyc3REYXRlSW5SYW5nZSwgZ2V0Rmlyc3REYXlPZlRoZU1vbnRoLCBnZXRGb3JtYXR0ZWREYXRlLCBnZXRXZWVrRGF5cywgaXNEYXRlRXF1YWwsIGlzRGF0ZUluRGVjYWRlLCBpc0RhdGVJblJhbmdlLCBzdGFydE9mWWVhclBlcmlvZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBGcmFnbWVudCwganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRGF0ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuLi9EYXRlcGlja2VyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgZ2V0V2Vla0RheXMsIGdldEZpcnN0RGF5T2ZUaGVNb250aCwgYWRkRGF5cywgZ2V0Rm9ybWF0dGVkRGF0ZSwgaXNEYXRlRXF1YWwsIGlzRGF0ZUluUmFuZ2UgfSBmcm9tICcuLi9oZWxwZXJzLm1qcyc7XG5cbmNvbnN0IERhdGVwaWNrZXJWaWV3c0RheXMgPSAoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICB0aGVtZTogcm9vdFRoZW1lLFxuICAgIHdlZWtTdGFydCxcbiAgICBtaW5EYXRlLFxuICAgIG1heERhdGUsXG4gICAgdmlld0RhdGUsXG4gICAgc2VsZWN0ZWREYXRlLFxuICAgIGNoYW5nZVNlbGVjdGVkRGF0ZSxcbiAgICBsYW5ndWFnZVxuICB9ID0gdXNlRGF0ZVBpY2tlckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLnZpZXdzLmRheXMsIGN1c3RvbVRoZW1lKTtcbiAgY29uc3Qgd2Vla0RheXMgPSBnZXRXZWVrRGF5cyhsYW5ndWFnZSwgd2Vla1N0YXJ0KTtcbiAgY29uc3Qgc3RhcnREYXRlID0gZ2V0Rmlyc3REYXlPZlRoZU1vbnRoKHZpZXdEYXRlLCB3ZWVrU3RhcnQpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5oZWFkZXIuYmFzZSwgY2hpbGRyZW46IHdlZWtEYXlzLm1hcCgoZGF5LCBpbmRleCkgPT4gLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmhlYWRlci50aXRsZSwgY2hpbGRyZW46IGRheSB9LCBpbmRleCkpIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLml0ZW1zLmJhc2UsIGNoaWxkcmVuOiBbLi4uQXJyYXkoNDIpXS5tYXAoKF9kYXRlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBhZGREYXlzKHN0YXJ0RGF0ZSwgaW5kZXgpO1xuICAgICAgY29uc3QgZGF5ID0gZ2V0Rm9ybWF0dGVkRGF0ZShsYW5ndWFnZSwgY3VycmVudERhdGUsIHsgZGF5OiBcIm51bWVyaWNcIiB9KTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZERhdGUgJiYgaXNEYXRlRXF1YWwoc2VsZWN0ZWREYXRlLCBjdXJyZW50RGF0ZSk7XG4gICAgICBjb25zdCBpc0Rpc2FibGVkID0gIWlzRGF0ZUluUmFuZ2UoY3VycmVudERhdGUsIG1pbkRhdGUsIG1heERhdGUpO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgIHRoZW1lLml0ZW1zLml0ZW0uYmFzZSxcbiAgICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5zZWxlY3RlZCxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5kaXNhYmxlZFxuICAgICAgICAgICksXG4gICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGNoYW5nZVNlbGVjdGVkRGF0ZShjdXJyZW50RGF0ZSwgdHJ1ZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjaGlsZHJlbjogZGF5XG4gICAgICAgIH0sXG4gICAgICAgIGluZGV4XG4gICAgICApO1xuICAgIH0pIH0pXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBEYXRlcGlja2VyVmlld3NEYXlzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXlzLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZURhdGVQaWNrZXJDb250ZXh0IH0gZnJvbSAnLi4vRGF0ZXBpY2tlckNvbnRleHQubWpzJztcbmltcG9ydCB7IHN0YXJ0T2ZZZWFyUGVyaW9kLCBhZGRZZWFycywgaXNEYXRlSW5EZWNhZGUsIGlzRGF0ZUluUmFuZ2UsIFZpZXdzIH0gZnJvbSAnLi4vaGVscGVycy5tanMnO1xuXG5jb25zdCBEYXRlcGlja2VyVmlld3NEZWNhZGVzID0gKHsgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30gfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIHZpZXdEYXRlLCBzZWxlY3RlZERhdGUsIG1pbkRhdGUsIG1heERhdGUsIHNldFZpZXdEYXRlLCBzZXRWaWV3IH0gPSB1c2VEYXRlUGlja2VyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUudmlld3MuZGVjYWRlcywgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBmaXJzdCA9IHN0YXJ0T2ZZZWFyUGVyaW9kKHZpZXdEYXRlLCAxMDApO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaXRlbXMuYmFzZSwgY2hpbGRyZW46IFsuLi5BcnJheSgxMildLm1hcCgoX3llYXIsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgeWVhciA9IGZpcnN0IC0gMTAgKyBpbmRleCAqIDEwO1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh2aWV3RGF0ZS5nZXRUaW1lKCkpO1xuICAgIG5ld0RhdGUuc2V0RnVsbFllYXIoeWVhciArIHZpZXdEYXRlLmdldEZ1bGxZZWFyKCkgJSAxMCk7XG4gICAgY29uc3QgZmlyc3REYXRlID0gbmV3IERhdGUoeWVhciwgMCwgMSk7XG4gICAgY29uc3QgbGFzdERhdGUgPSBhZGRZZWFycyhmaXJzdERhdGUsIDkpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSBzZWxlY3RlZERhdGUgJiYgaXNEYXRlSW5EZWNhZGUoc2VsZWN0ZWREYXRlLCB5ZWFyKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gIWlzRGF0ZUluUmFuZ2UoZmlyc3REYXRlLCBtaW5EYXRlLCBtYXhEYXRlKSAmJiAhaXNEYXRlSW5SYW5nZShsYXN0RGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImJ1dHRvblwiLFxuICAgICAge1xuICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgIHRoZW1lLml0ZW1zLml0ZW0uYmFzZSxcbiAgICAgICAgICBpc1NlbGVjdGVkICYmIHRoZW1lLml0ZW1zLml0ZW0uc2VsZWN0ZWQsXG4gICAgICAgICAgaXNEaXNhYmxlZCAmJiB0aGVtZS5pdGVtcy5pdGVtLmRpc2FibGVkXG4gICAgICAgICksXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNEaXNhYmxlZCkgcmV0dXJuO1xuICAgICAgICAgIHNlbGVjdGVkRGF0ZSAmJiBzZXRWaWV3RGF0ZShhZGRZZWFycyh2aWV3RGF0ZSwgeWVhciAtIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpKSk7XG4gICAgICAgICAgc2V0VmlldyhWaWV3cy5ZZWFycyk7XG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiB5ZWFyXG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9KSB9KTtcbn07XG5cbmV4cG9ydCB7IERhdGVwaWNrZXJWaWV3c0RlY2FkZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURlY2FkZXMubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRGF0ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuLi9EYXRlcGlja2VyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgZ2V0Rm9ybWF0dGVkRGF0ZSwgaXNEYXRlRXF1YWwsIGlzRGF0ZUluUmFuZ2UsIFZpZXdzIH0gZnJvbSAnLi4vaGVscGVycy5tanMnO1xuXG5jb25zdCBEYXRlcGlja2VyVmlld3NNb250aCA9ICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9IH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHRoZW1lOiByb290VGhlbWUsXG4gICAgbWluRGF0ZSxcbiAgICBtYXhEYXRlLFxuICAgIHNlbGVjdGVkRGF0ZSxcbiAgICB2aWV3RGF0ZSxcbiAgICBsYW5ndWFnZSxcbiAgICBzZXRWaWV3RGF0ZSxcbiAgICBzZXRWaWV3XG4gIH0gPSB1c2VEYXRlUGlja2VyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUudmlld3MubW9udGhzLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5pdGVtcy5iYXNlLCBjaGlsZHJlbjogWy4uLkFycmF5KDEyKV0ubWFwKChfbW9udGgsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICAgIG5ld0RhdGUuc2V0TW9udGgoaW5kZXgsIDEpO1xuICAgIG5ld0RhdGUuc2V0RnVsbFllYXIodmlld0RhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgY29uc3QgbW9udGggPSBnZXRGb3JtYXR0ZWREYXRlKGxhbmd1YWdlLCBuZXdEYXRlLCB7IG1vbnRoOiBcInNob3J0XCIgfSk7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZSAmJiBpc0RhdGVFcXVhbChzZWxlY3RlZERhdGUsIG5ld0RhdGUpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAhaXNEYXRlSW5SYW5nZShuZXdEYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgdGhlbWUuaXRlbXMuaXRlbS5iYXNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5zZWxlY3RlZCxcbiAgICAgICAgICBpc0Rpc2FibGVkICYmIHRoZW1lLml0ZW1zLml0ZW0uZGlzYWJsZWRcbiAgICAgICAgKSxcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgIGlmIChpc0Rpc2FibGVkKSByZXR1cm47XG4gICAgICAgICAgc2V0Vmlld0RhdGUobmV3RGF0ZSk7XG4gICAgICAgICAgc2V0VmlldyhWaWV3cy5EYXlzKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IG1vbnRoXG4gICAgICB9LFxuICAgICAgaW5kZXhcbiAgICApO1xuICB9KSB9KTtcbn07XG5cbmV4cG9ydCB7IERhdGVwaWNrZXJWaWV3c01vbnRoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Nb250aHMubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRGF0ZVBpY2tlckNvbnRleHQgfSBmcm9tICcuLi9EYXRlcGlja2VyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgc3RhcnRPZlllYXJQZXJpb2QsIGlzRGF0ZUVxdWFsLCBpc0RhdGVJblJhbmdlLCBWaWV3cyB9IGZyb20gJy4uL2hlbHBlcnMubWpzJztcblxuY29uc3QgRGF0ZXBpY2tlclZpZXdzWWVhcnMgPSAoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgc2VsZWN0ZWREYXRlLCBtaW5EYXRlLCBtYXhEYXRlLCB2aWV3RGF0ZSwgc2V0Vmlld0RhdGUsIHNldFZpZXcgfSA9IHVzZURhdGVQaWNrZXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS52aWV3cy55ZWFycywgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaXRlbXMuYmFzZSwgY2hpbGRyZW46IFsuLi5BcnJheSgxMildLm1hcCgoX3llYXIsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgZmlyc3QgPSBzdGFydE9mWWVhclBlcmlvZCh2aWV3RGF0ZSwgMTApO1xuICAgIGNvbnN0IHllYXIgPSBmaXJzdCArIGluZGV4O1xuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh2aWV3RGF0ZS5nZXRUaW1lKCkpO1xuICAgIG5ld0RhdGUuc2V0RnVsbFllYXIoeWVhcik7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZSAmJiBpc0RhdGVFcXVhbChzZWxlY3RlZERhdGUsIG5ld0RhdGUpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSAhaXNEYXRlSW5SYW5nZShuZXdEYXRlLCBtaW5EYXRlLCBtYXhEYXRlKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgdGhlbWUuaXRlbXMuaXRlbS5iYXNlLFxuICAgICAgICAgIGlzU2VsZWN0ZWQgJiYgdGhlbWUuaXRlbXMuaXRlbS5zZWxlY3RlZCxcbiAgICAgICAgICBpc0Rpc2FibGVkICYmIHRoZW1lLml0ZW1zLml0ZW0uZGlzYWJsZWRcbiAgICAgICAgKSxcbiAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgIGlmIChpc0Rpc2FibGVkKSByZXR1cm47XG4gICAgICAgICAgc2V0Vmlld0RhdGUobmV3RGF0ZSk7XG4gICAgICAgICAgc2V0VmlldyhWaWV3cy5Nb250aHMpO1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogeWVhclxuICAgICAgfSxcbiAgICAgIGluZGV4XG4gICAgKTtcbiAgfSkgfSk7XG59O1xuXG5leHBvcnQgeyBEYXRlcGlja2VyVmlld3NZZWFycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9WWVhcnMubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgdXNlTWVtbywgdXNlU3RhdGUsIHVzZVJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGlDYWxlbmRhciwgSGlBcnJvd0xlZnQsIEhpQXJyb3dSaWdodCB9IGZyb20gJ3JlYWN0LWljb25zL2hpJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFRleHRJbnB1dCB9IGZyb20gJy4uL1RleHRJbnB1dC9UZXh0SW5wdXQubWpzJztcbmltcG9ydCB7IERhdGVwaWNrZXJDb250ZXh0IH0gZnJvbSAnLi9EYXRlcGlja2VyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3REYXRlSW5SYW5nZSwgVmlld3MsIGlzRGF0ZUVxdWFsLCBnZXRGb3JtYXR0ZWREYXRlLCBXZWVrU3RhcnQsIHN0YXJ0T2ZZZWFyUGVyaW9kLCBhZGRZZWFycywgYWRkTW9udGhzIH0gZnJvbSAnLi9oZWxwZXJzLm1qcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmlld3NEYXlzIH0gZnJvbSAnLi9WaWV3cy9EYXlzLm1qcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmlld3NEZWNhZGVzIH0gZnJvbSAnLi9WaWV3cy9EZWNhZGVzLm1qcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmlld3NNb250aCB9IGZyb20gJy4vVmlld3MvTW9udGhzLm1qcyc7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmlld3NZZWFycyB9IGZyb20gJy4vVmlld3MvWWVhcnMubWpzJztcblxuY29uc3QgRGF0ZXBpY2tlclJlbmRlciA9ICh7XG4gIHRpdGxlLFxuICBvcGVuLFxuICBpbmxpbmUgPSBmYWxzZSxcbiAgYXV0b0hpZGUgPSB0cnVlLFxuICAvLyBIaWRlIHdoZW4gc2VsZWN0ZWQgdGhlIGRheVxuICBzaG93Q2xlYXJCdXR0b24gPSB0cnVlLFxuICBsYWJlbENsZWFyQnV0dG9uID0gXCJDbGVhclwiLFxuICBzaG93VG9kYXlCdXR0b24gPSB0cnVlLFxuICBsYWJlbFRvZGF5QnV0dG9uID0gXCJUb2RheVwiLFxuICBkZWZhdWx0VmFsdWUsXG4gIG1pbkRhdGUsXG4gIG1heERhdGUsXG4gIGxhbmd1YWdlID0gXCJlblwiLFxuICB3ZWVrU3RhcnQgPSBXZWVrU3RhcnQuU3VuZGF5LFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBvbkNoYW5nZSxcbiAgbGFiZWwsXG4gIHZhbHVlLFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZGF0ZXBpY2tlciwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBpbml0aWFsRGF0ZSA9IGRlZmF1bHRWYWx1ZSA/IGdldEZpcnN0RGF0ZUluUmFuZ2UoZGVmYXVsdFZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKSA6IG51bGw7XG4gIGNvbnN0IGVmZmVjdGl2ZURlZmF1bHRWaWV3ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSA/IGdldEZpcnN0RGF0ZUluUmFuZ2UoZGVmYXVsdFZhbHVlLCBtaW5EYXRlLCBtYXhEYXRlKSA6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpO1xuICB9LCBbXSk7XG4gIGNvbnN0IFtpc09wZW4sIHNldElzT3Blbl0gPSB1c2VTdGF0ZShvcGVuKTtcbiAgY29uc3QgW3ZpZXcsIHNldFZpZXddID0gdXNlU3RhdGUoVmlld3MuRGF5cyk7XG4gIGNvbnN0IFtzZWxlY3RlZERhdGUsIHNldFNlbGVjdGVkRGF0ZV0gPSB1c2VTdGF0ZSh2YWx1ZSA/PyBpbml0aWFsRGF0ZSk7XG4gIGNvbnN0IFt2aWV3RGF0ZSwgc2V0Vmlld0RhdGVdID0gdXNlU3RhdGUodmFsdWUgPz8gZWZmZWN0aXZlRGVmYXVsdFZpZXcpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgZGF0ZXBpY2tlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgY2hhbmdlU2VsZWN0ZWREYXRlID0gKGRhdGUsIHVzZUF1dG9oaWRlKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWREYXRlKGRhdGUpO1xuICAgIGlmICgoZGF0ZSA9PT0gbnVsbCB8fCBkYXRlKSAmJiBvbkNoYW5nZSkge1xuICAgICAgb25DaGFuZ2UoZGF0ZSk7XG4gICAgfVxuICAgIGlmIChhdXRvSGlkZSAmJiB2aWV3ID09PSBWaWV3cy5EYXlzICYmIHVzZUF1dG9oaWRlID09IHRydWUgJiYgIWlubGluZSkge1xuICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGNsZWFyRGF0ZSA9ICgpID0+IHtcbiAgICBjaGFuZ2VTZWxlY3RlZERhdGUoaW5pdGlhbERhdGUsIHRydWUpO1xuICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHNldFZpZXdEYXRlKGRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuICB9O1xuICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICBmb2N1cygpIHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfSxcbiAgICBjbGVhcigpIHtcbiAgICAgIGNsZWFyRGF0ZSgpO1xuICAgIH1cbiAgfSkpO1xuICBjb25zdCByZW5kZXJWaWV3ID0gKHR5cGUpID0+IHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgVmlld3MuRGVjYWRlczpcbiAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRGF0ZXBpY2tlclZpZXdzRGVjYWRlcywgeyB0aGVtZTogdGhlbWUudmlld3MuZGVjYWRlcyB9KTtcbiAgICAgIGNhc2UgVmlld3MuWWVhcnM6XG4gICAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERhdGVwaWNrZXJWaWV3c1llYXJzLCB7IHRoZW1lOiB0aGVtZS52aWV3cy55ZWFycyB9KTtcbiAgICAgIGNhc2UgVmlld3MuTW9udGhzOlxuICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEYXRlcGlja2VyVmlld3NNb250aCwgeyB0aGVtZTogdGhlbWUudmlld3MubW9udGhzIH0pO1xuICAgICAgY2FzZSBWaWV3cy5EYXlzOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRGF0ZXBpY2tlclZpZXdzRGF5cywgeyB0aGVtZTogdGhlbWUudmlld3MuZGF5cyB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGdldE5leHRWaWV3ID0gKCkgPT4ge1xuICAgIHN3aXRjaCAodmlldykge1xuICAgICAgY2FzZSBWaWV3cy5EYXlzOlxuICAgICAgICByZXR1cm4gVmlld3MuTW9udGhzO1xuICAgICAgY2FzZSBWaWV3cy5Nb250aHM6XG4gICAgICAgIHJldHVybiBWaWV3cy5ZZWFycztcbiAgICAgIGNhc2UgVmlld3MuWWVhcnM6XG4gICAgICAgIHJldHVybiBWaWV3cy5EZWNhZGVzO1xuICAgIH1cbiAgICByZXR1cm4gdmlldztcbiAgfTtcbiAgY29uc3QgZ2V0Vmlld1RpdGxlID0gKCkgPT4ge1xuICAgIHN3aXRjaCAodmlldykge1xuICAgICAgY2FzZSBWaWV3cy5EZWNhZGVzOlxuICAgICAgICByZXR1cm4gYCR7c3RhcnRPZlllYXJQZXJpb2Qodmlld0RhdGUsIDEwMCkgLSAxMH0gLSAke3N0YXJ0T2ZZZWFyUGVyaW9kKHZpZXdEYXRlLCAxMDApICsgMTAwfWA7XG4gICAgICBjYXNlIFZpZXdzLlllYXJzOlxuICAgICAgICByZXR1cm4gYCR7c3RhcnRPZlllYXJQZXJpb2Qodmlld0RhdGUsIDEwKX0gLSAke3N0YXJ0T2ZZZWFyUGVyaW9kKHZpZXdEYXRlLCAxMCkgKyAxMX1gO1xuICAgICAgY2FzZSBWaWV3cy5Nb250aHM6XG4gICAgICAgIHJldHVybiBnZXRGb3JtYXR0ZWREYXRlKGxhbmd1YWdlLCB2aWV3RGF0ZSwgeyB5ZWFyOiBcIm51bWVyaWNcIiB9KTtcbiAgICAgIGNhc2UgVmlld3MuRGF5czpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBnZXRGb3JtYXR0ZWREYXRlKGxhbmd1YWdlLCB2aWV3RGF0ZSwgeyBtb250aDogXCJsb25nXCIsIHllYXI6IFwibnVtZXJpY1wiIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgZ2V0Vmlld0RhdGVQYWdlID0gKHZpZXcyLCBkYXRlLCB2YWx1ZTIpID0+IHtcbiAgICBzd2l0Y2ggKHZpZXcyKSB7XG4gICAgICBjYXNlIFZpZXdzLkRheXM6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShhZGRNb250aHMoZGF0ZSwgdmFsdWUyKSk7XG4gICAgICBjYXNlIFZpZXdzLk1vbnRoczpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGFkZFllYXJzKGRhdGUsIHZhbHVlMikpO1xuICAgICAgY2FzZSBWaWV3cy5ZZWFyczpcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGFkZFllYXJzKGRhdGUsIHZhbHVlMiAqIDEwKSk7XG4gICAgICBjYXNlIFZpZXdzLkRlY2FkZXM6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShhZGRZZWFycyhkYXRlLCB2YWx1ZTIgKiAxMDApKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShhZGRZZWFycyhkYXRlLCB2YWx1ZTIgKiAxMCkpO1xuICAgIH1cbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVEYXRlcGlja2VyID0gZGF0ZXBpY2tlclJlZj8uY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVJbnB1dCA9IGlucHV0UmVmPy5jdXJyZW50Py5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgaWYgKCFjbGlja2VkSW5zaWRlRGF0ZXBpY2tlciAmJiAhY2xpY2tlZEluc2lkZUlucHV0KSB7XG4gICAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9O1xuICB9LCBbaW5wdXRSZWYsIGRhdGVwaWNrZXJSZWYsIHNldElzT3Blbl0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVmZmVjdGl2ZVZhbHVlID0gdmFsdWUgJiYgZ2V0Rmlyc3REYXRlSW5SYW5nZShuZXcgRGF0ZSh2YWx1ZSksIG1pbkRhdGUsIG1heERhdGUpO1xuICAgIGNvbnN0IGVmZmVjdGl2ZVNlbGVjdGVkRGF0ZSA9IHNlbGVjdGVkRGF0ZSAmJiBnZXRGaXJzdERhdGVJblJhbmdlKG5ldyBEYXRlKHNlbGVjdGVkRGF0ZSksIG1pbkRhdGUsIG1heERhdGUpO1xuICAgIGlmIChlZmZlY3RpdmVTZWxlY3RlZERhdGUgJiYgZWZmZWN0aXZlVmFsdWUgJiYgIWlzRGF0ZUVxdWFsKGVmZmVjdGl2ZVZhbHVlLCBlZmZlY3RpdmVTZWxlY3RlZERhdGUpKSB7XG4gICAgICBzZXRTZWxlY3RlZERhdGUoZWZmZWN0aXZlVmFsdWUpO1xuICAgIH1cbiAgICBpZiAoc2VsZWN0ZWREYXRlID09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkRGF0ZShpbml0aWFsRGF0ZSk7XG4gICAgfVxuICB9LCBbdmFsdWUsIHNldFNlbGVjdGVkRGF0ZSwgc2V0Vmlld0RhdGUsIHNlbGVjdGVkRGF0ZV0pO1xuICBjb25zdCBkaXNwbGF5VmFsdWUgPSB2YWx1ZSA9PT0gbnVsbCA/IGxhYmVsIDogZ2V0Rm9ybWF0dGVkRGF0ZShsYW5ndWFnZSwgc2VsZWN0ZWREYXRlIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgRGF0ZXBpY2tlckNvbnRleHQuUHJvdmlkZXIsXG4gICAge1xuICAgICAgdmFsdWU6IHtcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIGxhbmd1YWdlLFxuICAgICAgICBtaW5EYXRlLFxuICAgICAgICBtYXhEYXRlLFxuICAgICAgICB3ZWVrU3RhcnQsXG4gICAgICAgIGlzT3BlbixcbiAgICAgICAgc2V0SXNPcGVuLFxuICAgICAgICB2aWV3LFxuICAgICAgICBzZXRWaWV3LFxuICAgICAgICB2aWV3RGF0ZSxcbiAgICAgICAgc2V0Vmlld0RhdGUsXG4gICAgICAgIHNlbGVjdGVkRGF0ZSxcbiAgICAgICAgc2V0U2VsZWN0ZWREYXRlLFxuICAgICAgICBjaGFuZ2VTZWxlY3RlZERhdGVcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW1xuICAgICAgICAhaW5saW5lICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgVGV4dElucHV0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRoZW1lOiB0aGVtZS5yb290LmlucHV0LFxuICAgICAgICAgICAgaWNvbjogSGlDYWxlbmRhcixcbiAgICAgICAgICAgIHJlZjogaW5wdXRSZWYsXG4gICAgICAgICAgICBvbkZvY3VzOiAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzZWxlY3RlZERhdGUgJiYgIWlzRGF0ZUVxdWFsKHZpZXdEYXRlLCBzZWxlY3RlZERhdGUpKSB7XG4gICAgICAgICAgICAgICAgc2V0Vmlld0RhdGUoc2VsZWN0ZWREYXRlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IGRpc3BsYXlWYWx1ZSxcbiAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBpbml0aWFsRGF0ZSA/IGdldEZvcm1hdHRlZERhdGUobGFuZ3VhZ2UsIGluaXRpYWxEYXRlKSA6IGxhYmVsLFxuICAgICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIChpc09wZW4gfHwgaW5saW5lKSAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgcmVmOiBkYXRlcGlja2VyUmVmLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucG9wdXAucm9vdC5iYXNlLCBpbmxpbmUgJiYgdGhlbWUucG9wdXAucm9vdC5pbmxpbmUpLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnBvcHVwLnJvb3QuaW5uZXIsIGNoaWxkcmVuOiBbXG4gICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnBvcHVwLmhlYWRlci5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgICAgICAgdGl0bGUgJiYgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucG9wdXAuaGVhZGVyLnRpdGxlLCBjaGlsZHJlbjogdGl0bGUgfSksXG4gICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucG9wdXAuaGVhZGVyLnNlbGVjdG9ycy5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUucG9wdXAuaGVhZGVyLnNlbGVjdG9ycy5idXR0b24uYmFzZSxcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUucG9wdXAuaGVhZGVyLnNlbGVjdG9ycy5idXR0b24ucHJldlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHNldFZpZXdEYXRlKGdldFZpZXdEYXRlUGFnZSh2aWV3LCB2aWV3RGF0ZSwgLTEpKSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEhpQXJyb3dMZWZ0LCB7fSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgICAgICAgICB0aGVtZS5wb3B1cC5oZWFkZXIuc2VsZWN0b3JzLmJ1dHRvbi5iYXNlLFxuICAgICAgICAgICAgICAgICAgICB0aGVtZS5wb3B1cC5oZWFkZXIuc2VsZWN0b3JzLmJ1dHRvbi52aWV3XG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4gc2V0VmlldyhnZXROZXh0VmlldygpKSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBnZXRWaWV3VGl0bGUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBvcHVwLmhlYWRlci5zZWxlY3RvcnMuYnV0dG9uLmJhc2UsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBvcHVwLmhlYWRlci5zZWxlY3RvcnMuYnV0dG9uLm5leHRcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBzZXRWaWV3RGF0ZShnZXRWaWV3RGF0ZVBhZ2Uodmlldywgdmlld0RhdGUsIDEpKSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KEhpQXJyb3dSaWdodCwge30pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdIH0pXG4gICAgICAgICAgXSB9KSxcbiAgICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5wb3B1cC52aWV3LmJhc2UsIGNoaWxkcmVuOiByZW5kZXJWaWV3KHZpZXcpIH0pLFxuICAgICAgICAgIChzaG93Q2xlYXJCdXR0b24gfHwgc2hvd1RvZGF5QnV0dG9uKSAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucG9wdXAuZm9vdGVyLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBzaG93VG9kYXlCdXR0b24gJiYgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnBvcHVwLmZvb3Rlci5idXR0b24uYmFzZSwgdGhlbWUucG9wdXAuZm9vdGVyLmJ1dHRvbi50b2RheSksXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdG9kYXkgPSAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgICAgIGNoYW5nZVNlbGVjdGVkRGF0ZSh0b2RheSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICBzZXRWaWV3RGF0ZSh0b2RheSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogbGFiZWxUb2RheUJ1dHRvblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2hvd0NsZWFyQnV0dG9uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5wb3B1cC5mb290ZXIuYnV0dG9uLmJhc2UsIHRoZW1lLnBvcHVwLmZvb3Rlci5idXR0b24uY2xlYXIpLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNoYW5nZVNlbGVjdGVkRGF0ZShudWxsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBsYWJlbENsZWFyQnV0dG9uXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICBdIH0pXG4gICAgICAgIF0gfSkgfSlcbiAgICAgIF0gfSlcbiAgICB9XG4gICk7XG59O1xuY29uc3QgRGF0ZXBpY2tlciA9IGZvcndhcmRSZWYoRGF0ZXBpY2tlclJlbmRlcik7XG5EYXRlcGlja2VyLmRpc3BsYXlOYW1lID0gXCJEYXRlcGlja2VyXCI7XG5cbmV4cG9ydCB7IERhdGVwaWNrZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGVwaWNrZXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgRHJhd2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZURyYXdlckNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERyYXdlckNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VEcmF3ZXJDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgRHJhd2VyQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IERyYXdlckNvbnRleHQsIHVzZURyYXdlckNvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyYXdlckNvbnRleHQubWpzLm1hcFxuIiwiLy8gVEhJUyBGSUxFIElTIEFVVE8gR0VORVJBVEVEXG5pbXBvcnQgeyBHZW5JY29uIH0gZnJvbSAnLi4vbGliL2luZGV4Lm1qcyc7XG5leHBvcnQgZnVuY3Rpb24gTWQxMjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE1SDUuNXYtNC41SDRWOWgzdjZ6bTYuNS0xLjVoLTN2LTFoMmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xSDl2MS41aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxVjE1aDQuNXYtMS41em02IC41di00YzAtLjU1LS40NS0xLTEtMUgxNXYxLjVoM3YxaC0ydjFoMnYxaC0zVjE1aDMuNWMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDNkUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUyIDIxLjQ4QTEwLjQ4NyAxMC40ODcgMCAwIDEgMS41NSAxM0guMDVDLjU2IDE5LjE2IDUuNzEgMjQgMTIgMjRsLjY2LS4wMy0zLjgxLTMuODEtMS4zMyAxLjMyem0uODktNi41MmMtLjE5IDAtLjM3LS4wMy0uNTItLjA4YTEuMDcgMS4wNyAwIDAgMS0uNC0uMjRjLS4xMS0uMS0uMi0uMjItLjI2LS4zNy0uMDYtLjE0LS4wOS0uMy0uMDktLjQ3aC0xLjNjMCAuMzYuMDcuNjguMjEuOTUuMTQuMjcuMzMuNS41Ni42OS4yNC4xOC41MS4zMi44Mi40MS4zLjEuNjIuMTUuOTYuMTUuMzcgMCAuNzItLjA1IDEuMDMtLjE1LjMyLS4xLjYtLjI1LjgzLS40NHMuNDItLjQzLjU1LS43MmMuMTMtLjI5LjItLjYxLjItLjk3IDAtLjE5LS4wMi0uMzgtLjA3LS41NmExLjY3IDEuNjcgMCAwIDAtLjIzLS41MWMtLjEtLjE2LS4yNC0uMy0uNC0uNDMtLjE3LS4xMy0uMzctLjIzLS42MS0uMzFhMi4wOTggMi4wOTggMCAwIDAgLjg5LS43NWMuMS0uMTUuMTctLjMuMjItLjQ2LjA1LS4xNi4wNy0uMzIuMDctLjQ4IDAtLjM2LS4wNi0uNjgtLjE4LS45NmExLjc4IDEuNzggMCAwIDAtLjUxLS42OWMtLjItLjE5LS40Ny0uMzMtLjc3LS40M0M5LjEgOC4wNSA4Ljc2IDggOC4zOSA4Yy0uMzYgMC0uNjkuMDUtMSAuMTYtLjMuMTEtLjU3LjI2LS43OS40NS0uMjEuMTktLjM4LjQxLS41MS42Ny0uMTIuMjYtLjE4LjU0LS4xOC44NWgxLjNjMC0uMTcuMDMtLjMyLjA5LS40NXMuMTQtLjI1LjI1LS4zNGMuMTEtLjA5LjIzLS4xNy4zOC0uMjIuMTUtLjA1LjMtLjA4LjQ4LS4wOC40IDAgLjcuMS44OS4zMS4xOS4yLjI5LjQ5LjI5Ljg2IDAgLjE4LS4wMy4zNC0uMDguNDlhLjg3Ljg3IDAgMCAxLS4yNS4zN2MtLjExLjEtLjI1LjE4LS40MS4yNC0uMTYuMDYtLjM2LjA5LS41OC4wOUg3LjV2MS4wM2guNzdjLjIyIDAgLjQyLjAyLjYuMDdzLjMzLjEzLjQ1LjIzYy4xMi4xMS4yMi4yNC4yOS40LjA3LjE2LjEuMzUuMS41NyAwIC40MS0uMTIuNzItLjM1LjkzLS4yMy4yMy0uNTUuMzMtLjk1LjMzem04LjU1LTUuOTJjLS4zMi0uMzMtLjctLjU5LTEuMTQtLjc3LS40My0uMTgtLjkyLS4yNy0xLjQ2LS4yN0gxMnY4aDIuM2MuNTUgMCAxLjA2LS4wOSAxLjUxLS4yNy40NS0uMTguODQtLjQzIDEuMTYtLjc2LjMyLS4zMy41Ny0uNzMuNzQtMS4xOS4xNy0uNDcuMjYtLjk5LjI2LTEuNTd2LS40YzAtLjU4LS4wOS0xLjEtLjI2LTEuNTctLjE4LS40Ny0uNDMtLjg3LS43NS0xLjJ6bS0uMzkgMy4xNmMwIC40Mi0uMDUuNzktLjE0IDEuMTMtLjEuMzMtLjI0LjYyLS40My44NS0uMTkuMjMtLjQzLjQxLS43MS41My0uMjkuMTItLjYyLjE4LS45OS4xOGgtLjkxVjkuMTJoLjk3Yy43MiAwIDEuMjcuMjMgMS42NC42OS4zOC40Ni41NyAxLjEyLjU3IDEuOTl2LjR6TTEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMzYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NiA4LjQ4aDEuNUMyMy40NCA0Ljg0IDE4LjI5IDAgMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWJjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTFoLTEuNXYtLjVoLTJ2M2gyVjEzSDIxdjFjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXpNOCAxMHY1SDYuNXYtMS41aC0yVjE1SDN2LTVjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF6bS0xLjUuNWgtMlYxMmgydi0xLjV6bTcgMS41Yy41NSAwIDEgLjQ1IDEgMXYxYzAgLjU1LS40NSAxLTEgMWgtNFY5aDRjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek0xMSAxMC41di43NWgydi0uNzVoLTJ6bTIgMi4yNWgtMnYuNzVoMnYtLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NpYmlsaXR5TmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSA2Yy0yLjYxLjctNS42NyAxLTguNSAxcy01Ljg5LS4zLTguNS0xTDMgOGMxLjg2LjUgNCAuODMgNiAxdjEzaDJ2LTZoMnY2aDJWOWMyLS4xNyA0LjE0LS41IDYtMWwtLjUtMnpNMTIgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY2Vzc2liaWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA3aC02djEzaC0ydi02aC0ydjZIOVY5SDNWN2gxOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NpYmxlRm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCI0LjU0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE3aC0yYzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zIDEuMzUtMyAzLTN2LTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNXptMy0zLjVoLTEuODZsMS42Ny0zLjY3QzE3LjQyIDguNSAxNi40NCA3IDE0Ljk2IDdoLTUuMmMtLjgxIDAtMS41NC40Ny0xLjg3IDEuMkw3LjIyIDEwbDEuOTIuNTNMOS43OSA5SDEybC0xLjgzIDQuMWMtLjYgMS4zMy4zOSAyLjkgMS44NSAyLjlIMTd2NWgydi01LjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY2Vzc2libGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM3YtMmMtMS41NC4wMi0zLjA5LS43NS00LjA3LTEuODNsLTEuMjktMS40M2MtLjE3LS4xOS0uMzgtLjM0LS42MS0uNDUtLjAxIDAtLjAxLS4wMS0uMDItLjAxSDEzYy0uMzUtLjItLjc1LS4zLTEuMTktLjI2QzEwLjc2IDcuMTEgMTAgOC4wNCAxMCA5LjA5VjE1YzAgMS4xLjkgMiAyIDJoNXY1aDJ2LTUuNWMwLTEuMS0uOS0yLTItMmgtM3YtMy40NWMxLjI5IDEuMDcgMy4yNSAxLjk0IDUgMS45NXptLTYuMTcgNWMtLjQxIDEuMTYtMS41MiAyLTIuODMgMi0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWE1IDUgMCAxIDAgNS45IDUuOWgtMi4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjb3VudEJhbGFuY2VXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOHYxYzAgMS4xLS45IDItMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2MWgtOWEyIDIgMCAwIDAtMiAydjhhMiAyIDAgMCAwIDIgMmg5em0tOS0yaDEwVjhIMTJ2OHptNC0yLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2NvdW50QmFsYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTBoM3Y3SDR6TTEwLjUgMTBoM3Y3aC0zek0yIDE5aDIwdjNIMnpNMTcgMTBoM3Y3aC0zek0xMiAxIDIgNnYyaDIwVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFjY291bnRCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgM2MxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMy45MyAxMyAxMiAxM3MtMy41LTEuNTctMy41LTMuNVMxMC4wNyA2IDEyIDZ6bTcgMTNINXYtLjIzYzAtLjYyLjI4LTEuMi43Ni0xLjU4QzcuNDcgMTUuODIgOS42NCAxNSAxMiAxNXM0LjUzLjgyIDYuMjQgMi4xOWMuNDguMzguNzYuOTcuNzYgMS41OFYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjb3VudENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgNGMxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMy45MyAxMyAxMiAxM3MtMy41LTEuNTctMy41LTMuNVMxMC4wNyA2IDEyIDZ6bTAgMTRjLTIuMDMgMC00LjQzLS44Mi02LjE0LTIuODhhOS45NDcgOS45NDcgMCAwIDEgMTIuMjggMEMxNi40MyAxOS4xOCAxNC4wMyAyMCAxMiAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDEwdi0ySDR2LTZoMThWNmMwLTEuMTEtLjg5LTItMi0yem0wIDRINFY2aDE2djJ6bTQgOXYyaC0zdjNoLTJ2LTNoLTN2LTJoM3YtM2gydjNoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExYy43IDAgMS4zNy4xIDIgLjI5VjlsLTgtNi04IDZ2MTJoNy42OEE2Ljk5NSA2Ljk5NSAwIDAgMSAxOCAxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0zIDUuNWgtMi41VjIxaC0xdi0yLjVIMTV2LTFoMi41VjE1aDF2Mi41SDIxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTE4LjMxIDYtMi43NiA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5aDJWNmgzVjRoLTNWMWgtMnYzSDh2MmgzdjN6bS00IDljLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOS44My0zLjI1LjAzLS4xMi45LTEuNjNoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy44Ni03LjAxTDE5LjQyIDRoLS4wMWwtMS4xIDItMi43NiA1SDguNTNsLS4xMy0uMjdMNi4xNiA2bC0uOTUtMi0uOTQtMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjEzIDAtLjI1LS4xMS0uMjUtLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRUYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNS4xOCAxMC41OSAxNi42bC00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44MyAxMC0xMEwyMiA1LjE4ek0xMiAyMGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOGMxLjU3IDAgMy4wNC40NiA0LjI4IDEuMjVsMS40NS0xLjQ1QTEwLjAyIDEwLjAyIDAgMCAwIDEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBjMS43MyAwIDMuMzYtLjQ0IDQuNzgtMS4yMmwtMS41LTEuNWMtMSAuNDYtMi4xMS43Mi0zLjI4Ljcyem03LTVoLTN2MmgzdjNoMnYtM2gzdi0yaC0zdi0zaC0ydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFRvRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAyMXYtM2gzdi0yaC0zdi0zaC0ydjNoLTN2MmgzdjNoMnptLTQuOTcuNUg1LjY2Yy0uNzIgMC0xLjM4LS4zOC0xLjczLTFsLTIuMzYtNC4xYy0uMzYtLjYyLS4zNS0xLjM4LjAxLTJMNy45MiAzLjQ5Yy4zNi0uNjEgMS4wMi0uOTkgMS43My0uOTloNC43Yy43MSAwIDEuMzcuMzggMS43My45OWw0LjQ4IDcuNzFhNi4xNzYgNi4xNzYgMCAwIDAtMi40LS4xNEwxNC4zNSA0LjVoLTQuN0wzLjMxIDE1LjQxbDIuMzUgNC4wOWg3Ljg5Yy4zNS43Ny44NSAxLjQ1IDEuNDggMnpNMTMuMzQgMTVjLS4yMi42My0uMzQgMS4zLS4zNCAySDcuMjVsLS43My0xLjI3IDQuNTgtNy45OGgxLjhsMi41MyA0LjQyYy0uNTYuNDItMS4wNS45My0xLjQ0IDEuNTFsLTItMy40OUw5LjI1IDE1aDQuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZGNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNXYyaC0zdjNoLTJWN2gtM1Y1aDNWMmgydjNoM3ptLTMgMTRINVY1aDZWM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi02aC0ydjZ6bS00LTZ2NGgydi00aC0yem0tNCA0aDJWOWgtMnY4em0tMiAwdi02SDd2NmgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZG1pblBhbmVsU2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMWMuMzQgMCAuNjcuMDQgMSAuMDlWNi4yN0wxMC41IDMgMyA2LjI3djQuOTFjMCA0LjU0IDMuMiA4Ljc5IDcuNSA5LjgyLjU1LS4xMyAxLjA4LS4zMiAxLjYtLjU1LS42OS0uOTgtMS4xLTIuMTctMS4xLTMuNDUgMC0zLjMxIDIuNjktNiA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEzYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCAxLjM4Yy42MiAwIDEuMTIuNTEgMS4xMiAxLjEycy0uNTEgMS4xMi0xLjEyIDEuMTItMS4xMi0uNTEtMS4xMi0xLjEyLjUtMS4xMiAxLjEyLTEuMTJ6bTAgNS4zN2MtLjkzIDAtMS43NC0uNDYtMi4yNC0xLjE3LjA1LS43MiAxLjUxLTEuMDggMi4yNC0xLjA4czIuMTkuMzYgMi4yNCAxLjA4Yy0uNS43MS0xLjMxIDEuMTctMi4yNCAxLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZHNDbGljayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjcxIDE3Ljk5QTUuOTkzIDUuOTkzIDAgMCAxIDYgMTJjMC0zLjMxIDIuNjktNiA2LTYgMy4yMiAwIDUuODQgMi41MyA1Ljk5IDUuNzFsLTIuMS0uNjNhMy45OTkgMy45OTkgMCAxIDAtNC44MSA0LjgxbC42MyAyLjF6TTIyIDEyYzAgLjMtLjAxLjYtLjA0LjlsLTEuOTctLjU5Yy4wMS0uMS4wMS0uMjEuMDEtLjMxIDAtNC40Mi0zLjU4LTgtOC04cy04IDMuNTgtOCA4IDMuNTggOCA4IDhjLjEgMCAuMjEgMCAuMzEtLjAxbC41OSAxLjk3Yy0uMy4wMy0uNi4wNC0uOS4wNC01LjUyIDAtMTAtNC40OC0xMC0xMFM2LjQ4IDIgMTIgMnMxMCA0LjQ4IDEwIDEwem0tMy43NyA0LjI2TDIyIDE1bC0xMC0zIDMgMTAgMS4yNi0zLjc3IDQuMjcgNC4yNyAxLjk4LTEuOTgtNC4yOC00LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGFybUFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxhcm1PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzMuODcgMCA3IDMuMTMgNyA3IDAgLjg0LS4xNiAxLjY1LS40MyAyLjRsMS41MiAxLjUyYy41OC0xLjE5LjkxLTIuNTEuOTEtMy45MmE5IDkgMCAwIDAtOS05Yy0xLjQxIDAtMi43My4zMy0zLjkyLjkxTDkuNiA2LjQzQzEwLjM1IDYuMTYgMTEuMTYgNiAxMiA2em0xMC0uMjgtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTIuOTIgMi4yOSAxLjY1IDMuNTcgMi45OCA0LjlsLTEuMTEuOTMgMS40MiAxLjQyIDEuMTEtLjk0LjguOEE4Ljk2NCA4Ljk2NCAwIDAgMCAzIDEzYzAgNC45NyA0LjAyIDkgOSA5IDIuMjUgMCA0LjMxLS44MyA1Ljg5LTIuMmwyLjIgMi4yIDEuMjctMS4yN0wzLjg5IDMuMjdsLS45Ny0uOTh6bTEzLjU1IDE2LjFDMTUuMjYgMTkuMzkgMTMuNyAyMCAxMiAyMGMtMy44NyAwLTctMy4xMy03LTcgMC0xLjcuNjEtMy4yNiAxLjYxLTQuNDdsOS44NiA5Ljg2ek04LjAyIDMuMjggNi42IDEuODZsLS44Ni43MSAxLjQyIDEuNDIuODYtLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGFybU9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNS43Mi00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNNy44OCAzLjM5IDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3ptLTEuNDYtNS40N0w4LjQxIDEyLjRsLTEuMDYgMS4wNiAzLjE4IDMuMTggNi02LTEuMDYtMS4wNi00LjkzIDQuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsYXJtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNS43Mi00LjYtMy44Ni0xLjI5IDEuNTMgNC42IDMuODZMMjIgNS43MnpNNy44OCAzLjM5IDYuNiAxLjg2IDIgNS43MWwxLjI5IDEuNTMgNC41OS0zLjg1ek0xMi41IDhIMTF2Nmw0Ljc1IDIuODUuNzUtMS4yMy00LTIuMzdWOHpNMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE5IDkgMCAwIDAgMC0xOHptMCAxNmMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsbEluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDZoLTRjMCAxLjYyLTEuMzggMy0zIDNzLTMtMS4zOC0zLTNINVY1aDE0djR6bS00IDdoNnYzYzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0ydi0zaDZjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxsT3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi4yMSA0LjE2IDQgNHYtNHptNCAxMi00IDRoNHptLTEyIDQtNC00djR6bS00LTEyIDQtNGgtNHptMTIuOTUtLjk1Yy0yLjczLTIuNzMtNy4xNy0yLjczLTkuOSAwcy0yLjczIDcuMTcgMCA5LjkgNy4xNyAyLjczIDkuOSAwIDIuNzMtNy4xNiAwLTkuOXptLTEuMSA4LjhjLTIuMTMgMi4xMy01LjU3IDIuMTMtNy43IDBzLTIuMTMtNS41NyAwLTcuNyA1LjU3LTIuMTMgNy43IDAgMi4xMyA1LjU3IDAgNy43elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0uMjEuMTZoMjR2MjRoLTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbmFseXRpY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3di01aDJ2NXptNCAwaC0ydi0zaDJ2M3ptMC01aC0ydi0yaDJ2MnptNCA1aC0yVjdoMnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQW5jaG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTUgMS41NSAxLjU1Yy0uOTYgMS42OS0zLjMzIDMuMDQtNS41NSAzLjM3VjExaDNWOWgtM1Y3LjgyQzE0LjE2IDcuNCAxNSA2LjMgMTUgNWMwLTEuNjUtMS4zNS0zLTMtM1M5IDMuMzUgOSA1YzAgMS4zLjg0IDIuNCAyIDIuODJWOUg4djJoM3Y4LjkyYy0yLjIyLS4zMy00LjU5LTEuNjgtNS41NS0zLjM3TDcgMTVsLTQtM3YzYzAgMy44OCA0LjkyIDcgOSA3czktMy4xMiA5LTd2LTNsLTQgM3pNMTIgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy42IDkuNDggMS44NC0zLjE4Yy4xNi0uMzEuMDQtLjY5LS4yNi0uODVhLjYzNy42MzcgMCAwIDAtLjgzLjIybC0xLjg4IDMuMjRhMTEuNDYzIDExLjQ2MyAwIDAgMC04Ljk0IDBMNS42NSA1LjY3YS42NDMuNjQzIDAgMCAwLS44Ny0uMmMtLjI4LjE4LS4zNy41NC0uMjIuODNMNi40IDkuNDhBMTAuNzggMTAuNzggMCAwIDAgMSAxOGgyMmExMC43OCAxMC43OCAwIDAgMC01LjQtOC41MnpNNyAxNS4yNWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41em0xMCAwYTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFubm91bmNlbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNyA5aC0yVjVoMnY2em0wIDRoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCAxMi0yIDItMi0yIDItMiAyIDJ6bS0yLTYgMi4xMiAyLjEyIDIuNS0yLjVMMTIgMSA3LjM4IDUuNjJsMi41IDIuNUwxMiA2em0tNiA2IDIuMTItMi4xMi0yLjUtMi41TDEgMTJsNC42MiA0LjYyIDIuNS0yLjVMNiAxMnptMTIgMC0yLjEyIDIuMTIgMi41IDIuNUwyMyAxMmwtNC42Mi00LjYyLTIuNSAyLjVMMTggMTJ6bS02IDYtMi4xMi0yLjEyLTIuNSAyLjVMMTIgMjNsNC42Mi00LjYyLTIuNS0yLjVMMTIgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcEJsb2NraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bS0yLjUgNEEyLjUgMi41IDAgMCAxIDE4IDkuNWMuNDIgMCAuOC4xMSAxLjE1LjI5bC0zLjM2IDMuMzZjLS4xOC0uMzUtLjI5LS43My0uMjktMS4xNXptMi41IDIuNWMtLjQyIDAtLjgtLjExLTEuMTUtLjI5bDMuMzYtMy4zNmMuMTguMzUuMjkuNzMuMjkgMS4xNWEyLjUgMi41IDAgMCAxLTIuNSAyLjV6TTE3IDE4SDdWNmgxMHYxaDJWM2MwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi00aC0ydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcFNob3J0Y3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMThIN1Y2aDEwdjFoMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2MXpNMjAuMzggOS42MiAyMSAxMWwuNjItMS4zOEwyMyA5bC0xLjM4LS42MkwyMSA3bC0uNjIgMS4zOEwxOSA5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA4LTEuMjUgMi43NUwxMiAxMmwyLjc1IDEuMjVMMTYgMTZsMS4yNS0yLjc1TDIwIDEybC0yLjc1LTEuMjV6TTIxIDEzbC0uNjIgMS4zOEwxOSAxNWwxLjM4LjYyTDIxIDE3bC42Mi0xLjM4TDIzIDE1bC0xLjM4LS42MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDEwVjhoLTJ2NEg4bDQgNCA0LTRoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93Q2lyY2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTBzMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDIgMiA2LjQ4IDIgMTJ6bTEwLTFoNHYyaC00djNsLTQtNCA0LTR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMHptLTEwIDFIOHYtMmg0VjhsNCA0LTQgNHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOG0wIDJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTB6bS0xLTEwdjRoMnYtNGgzbC00LTQtNCA0aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93T3V0d2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNnYyaDguNTlMNSAxNy41OSA2LjQxIDE5IDE2IDkuNDFWMThoMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd1JpZ2h0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMDEgMTFINHYyaDEyLjAxdjNMMjAgMTJsLTMuOTktNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJ0aWNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3BlY3RSYXRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEyaC0ydjNoLTN2Mmg1di01ek03IDloM1Y3SDV2NWgyVjl6bTE0LTZIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzZXNzbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3NpZ25tZW50QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0zIDUuNWgtMi41VjIxaC0xdi0yLjVIMTV2LTFoMi41VjE1aDF2Mi41SDIxdjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjY5IDE1Yy4zNi0uNzUuODQtMS40MyAxLjQzLTJIN3YtMmgxMWMxLjA3IDAgMi4wOS4yNSAzIC42OVY1YzAtMS4xLS45LTItMi0yaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDYuNjljLS40NC0uOTEtLjY5LTEuOTMtLjY5LTMgMC0uMzQuMDMtLjY3LjA4LTFIN3YtMmg0LjY5ek0xMiAyLjc1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNNyA3aDEwdjJIN1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3NpZ25tZW50SW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTAgNGMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTYgMTJINnYtMS40YzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMVYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaWdubWVudExhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02IDE1aC0ydi0yaDJ2MnptMC00aC0yVjhoMnY2em0tMS05Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnRSZXR1cm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNCAxMmgtNHYzbC01LTUgNS01djNoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3NpZ25tZW50UmV0dXJuZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMCAxNS01LTVoM1Y5aDR2NGgzbC01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnRUdXJuZWRJbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMiAxNC00LTQgMS40MS0xLjQxTDEwIDE0LjE3bDYuNTktNi41OUwxOCA5bC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lnbm1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMiAxNEg3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3N1cmVkV29ya2xvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEwaDJ2N0g1ek0xMSAxMGgydjdoLTJ6TTIyIDYgMTIgMSAyIDZ2MmgyMHpNMiAxOXYyaDEyLjRjLS4yMS0uNjQtLjMyLTEuMzEtLjM2LTJIMnpNMTkgMTIuMjZWMTBoLTJ2My4yNnpNMjAgMTRsLTQgMnYyLjU1YzAgMi41MiAxLjcxIDQuODggNCA1LjQ1IDIuMjktLjU3IDQtMi45MyA0LTUuNDVWMTZsLTQtMnptLS43MiA3LTIuMDMtMi4wMyAxLjA2LTEuMDYuOTcuOTcgMi40MS0yLjM4IDEuMDYgMS4wNkwxOS4yOCAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b3JlbmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNnYzbDQtNC00LTR2M2MtNC40MiAwLTggMy41OC04IDggMCAxLjU3LjQ2IDMuMDMgMS4yNCA0LjI2TDYuNyAxNC44QTUuODcgNS44NyAwIDAgMSA2IDEyYzAtMy4zMSAyLjY5LTYgNi02em02Ljc2IDEuNzRMMTcuMyA5LjJjLjQ0Ljg0LjcgMS43OS43IDIuOCAwIDMuMzEtMi42OSA2LTYgNnYtM2wtNCA0IDQgNHYtM2M0LjQyIDAgOC0zLjU4IDgtOCAwLTEuNTctLjQ2LTMuMDMtMS4yNC00LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWNrdXBUYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZ2MTRINnYyaDE0YzEuMSAwIDItLjkgMi0yVjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek05IDE2SDR2LTVoNXY1em03IDBoLTV2LTVoNXY1em0wLTdINFY0aDEydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhY2t1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTQgMTN2NGgtNHYtNEg3bDUtNSA1IDVoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhbGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3LjgzYy44NS0uMyAxLjUzLS45OCAxLjgzLTEuODNIMThsLTMgN2MwIDEuNjYgMS41NyAzIDMuNSAzczMuNS0xLjM0IDMuNS0zbC0zLTdoMlY0aC02LjE3Yy0uNDEtMS4xNy0xLjUyLTItMi44My0ycy0yLjQyLjgzLTIuODMgMkgzdjJoMmwtMyA3YzAgMS42NiAxLjU3IDMgMy41IDNTOSAxNC42NiA5IDEzTDYgNmgzLjE3Yy4zLjg1Ljk4IDEuNTMgMS44MyAxLjgzVjE5SDJ2MmgyMHYtMmgtOVY3Ljgzek0yMC4zNyAxM2gtMy43NGwxLjg3LTQuMzZMMjAuMzcgMTN6bS0xMyAwSDMuNjNMNS41IDguNjQgNy4zNyAxM3pNMTIgNmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXJjb2RlUmVhZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgOC43NWgtNHYtMS41aDR2MS41em0tLjM4LTQuMzhMMjIgM2wtMy42MiAxLjYzTDE5IDZsMy42Mi0xLjYzek0xOSAxMGwtLjYyIDEuMzdMMjIgMTNsLjYyLTEuMzdMMTkgMTB6bS04IDNjLjU1IDAgMSAuNDUgMSAxdjJjMCAuNTUtLjQ1IDEtMSAxSDkuNjRsLS43NCAyLjc4QTIuOTk5IDIuOTk5IDAgMCAxIDYgMjJhMi45OTUgMi45OTUgMCAwIDEtMi45LTMuNzdsMS44Mi02LjhBNC4wMjggNC4wMjggMCAwIDEgMyA4YzAtMi4yMSAxLjc5LTQgNC00aDhjMS40OSAwIDIuNDUgMS41NiAxLjc5IDIuODlsLTIgNEMxNC40NSAxMS41NyAxMy43NSAxMiAxMyAxMmgtMi4wMmwtLjI3IDFIMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdGNoUHJlZGljdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDhIN2MtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTQgMTIuNWgtMlYxOWgydjEuNXptMC0yLjVoLTJjMC0xLjUtMi41LTMtMi41LTUgMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNWMwIDItMi41IDMuNS0yLjUgNXptNS0xMS41SDZDNiA1LjY3IDYuNjcgNSA3LjUgNWg5Yy44MyAwIDEuNS42NyAxLjUgMS41em0tMS0zSDdDNyAyLjY3IDcuNjcgMiA4LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb29rT25saW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6TTcgMThWNmgxMHYxMkg3em05LTdWOS4xNEMxNiA4LjUxIDE1LjU1IDggMTUgOEg5Yy0uNTUgMC0xIC41MS0xIDEuMTR2MS45NmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMXYxLjc2YzAgLjYzLjQ1IDEuMTQgMSAxLjE0aDZjLjU1IDAgMS0uNTEgMS0xLjE0VjEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xem0tMy41IDMuNWgtMXYtMWgxdjF6bTAtMmgtMXYtMWgxdjF6bTAtMmgtMXYtMWgxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA0aDV2OGwtMi41LTEuNUw2IDEyVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvb2ttYXJrQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN2gtMnYyaC0yVjdoLTJWNWgyVjNoMnYyaDJ2MnptLTIgMTQtNy0zLTcgM1Y1YzAtMS4xLjktMiAyLTJoN2E1LjAwMiA1LjAwMiAwIDAgMCA1IDcuOVYyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9va21hcmtBZGRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDIxLTctMy03IDNWNWMwLTEuMS45LTIgMi0yaDdhNS4wMDIgNS4wMDIgMCAwIDAgNSA3LjlWMjF6TTE3LjgzIDkgMTUgNi4xN2wxLjQxLTEuNDEgMS40MSAxLjQxIDMuNTQtMy41NCAxLjQxIDEuNDFMMTcuODMgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9va21hcmtCb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNSAyMWw3LTMgNyAzVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTUtNS0yLjE4TDcgMThWNWgxMHYxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9va21hcmtSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA3aC02VjVoNnYyem0tMiAzLjlBNS4wMDIgNS4wMDIgMCAwIDEgMTQgM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjEwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb29rbWFya3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5IDE4IDIgMVYzYzAtMS4xLS45LTItMi0ySDguOTlDNy44OSAxIDcgMS45IDcgM2gxMGMxLjEgMCAyIC45IDIgMnYxM3pNMTUgNUg1Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjdjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyb3dzZUdhbGxlcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDNhOSA5IDAgMSAwIC4wMDEgMTguMDAxQTkgOSAwIDAgMCA5IDN6bTIuNzkgMTMuMjFMOCAxMi40MVY3aDJ2NC41OWwzLjIxIDMuMjEtMS40MiAxLjQxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45OSAzLjUydjIuMTZBNi45OSA2Ljk5IDAgMCAxIDIyIDEyYzAgMi43OS0xLjY0IDUuMi00LjAxIDYuMzJ2Mi4xNkMyMS40OCAxOS4yNCAyNCAxNS45MSAyNCAxMnMtMi41Mi03LjI0LTYuMDEtOC40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVnUmVwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOGgtMi44MWE1Ljk4NSA1Ljk4NSAwIDAgMC0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJ1aWxkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQuOSAxMy40OS0xLjQgMS40Yy0uMi4yLS41MS4yLS43MSAwbC0zLjQxLTMuNDFjLTEuMjIuNDMtMi42NC4xNy0zLjYyLS44MWEzLjQ2OCAzLjQ2OCAwIDAgMS0uNTktNC4xbDIuMzUgMi4zNSAxLjQxLTEuNDEtMi4zNS0yLjM0YzEuMzItLjcxIDIuOTktLjUyIDQuMS41OS45OC45OCAxLjI0IDIuNC44MSAzLjYybDMuNDEgMy40MWMuMTkuMTkuMTkuNTEgMCAuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVpbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwiLFwiY2xpcFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNyAxOS05LjEtOS4xYy45LTIuMy40LTUtMS41LTYuOS0yLTItNS0yLjQtNy40LTEuM0w5IDYgNiA5IDEuNiA0LjdDLjQgNy4xLjkgMTAuMSAyLjkgMTIuMWMxLjkgMS45IDQuNiAyLjQgNi45IDEuNWw5LjEgOS4xYy40LjQgMSAuNCAxLjQgMGwyLjMtMi4zYy41LS40LjUtMS4xLjEtMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSA4LTQgNGgzYzAgMy4zMS0yLjY5IDYtNiA2YTUuODcgNS44NyAwIDAgMS0yLjgtLjdsLTEuNDYgMS40NkE3LjkzIDcuOTMgMCAwIDAgMTIgMjBjNC40MiAwIDgtMy41OCA4LThoM2wtNC00ek02IDEyYzAtMy4zMSAyLjY5LTYgNi02IDEuMDEgMCAxLjk3LjI1IDIuOC43bDEuNDYtMS40NkE3LjkzIDcuOTMgMCAwIDAgMTIgNGMtNC40MiAwLTggMy41OC04IDhIMWw0IDQgNC00SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGVuZGFyTW9udGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC0xVjJoLTJ2Mkg4VjJINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMjBhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWMTBoMTR2MTB6TTkgMTRIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bS04IDRIN3YtMmgydjJ6bTQgMGgtMnYtMmgydjJ6bTQgMGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGVuZGFyVG9kYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzaC0xVjFoLTJ2Mkg3VjFINXYySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxOEg0VjhoMTZ2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGVuZGFyVmlld0RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTdoMTh2Mkgzem0wLTdoMTh2NUgzem0wLTRoMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxlbmRhclZpZXdNb250aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTggMTFINFY2aDR2NXptNiAwaC00VjZoNHY1em02IDBoLTRWNmg0djV6TTggMThINHYtNWg0djV6bTYgMGgtNHYtNWg0djV6bTYgMGgtNHYtNWg0djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGVuZGFyVmlld1dlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNyAyaDIuNXYxMkgxM1Y2em0tMiAxMkg4LjVWNkgxMXYxMnpNNCA2aDIuNXYxMkg0VjZ6bTE2IDEyaC0yLjVWNkgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhRW5oYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAzIDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJoLTMuMTdMMTUgM0g5em0zIDE1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMTcgMS4yNS0yLjc1TDE2IDEzbC0yLjc1LTEuMjVMMTIgOWwtMS4yNSAyLjc1TDggMTNsMi43NSAxLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW5jZWxTY2hlZHVsZVNlbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDljLS40MiAwLS44My4wNC0xLjI0LjExTDEuMDEgMyAxIDEwbDkgMi05IDIgLjAxIDcgOC4wNy0zLjQ2QzkuNTkgMjEuMTkgMTIuNzEgMjQgMTYuNSAyNGM0LjE0IDAgNy41LTMuMzYgNy41LTcuNVMyMC42NCA5IDE2LjUgOXptMCAxM2MtMy4wMyAwLTUuNS0yLjQ3LTUuNS01LjVzMi40Ny01LjUgNS41LTUuNSA1LjUgMi40NyA1LjUgNS41LTIuNDcgNS41LTUuNSA1LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjI3IDE0LjAzLTEuNzcgMS43Ni0xLjc3LTEuNzYtLjcuNyAxLjc2IDEuNzctMS43NiAxLjc3LjcuNyAxLjc3LTEuNzYgMS43NyAxLjc2LjctLjctMS43Ni0xLjc3IDEuNzYtMS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FyZEdpZnRjYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtMi4xOGMuMTEtLjMxLjE4LS42NS4xOC0xYTIuOTk2IDIuOTk2IDAgMCAwLTUuNS0xLjY1bC0uNS42Ny0uNS0uNjhDMTAuOTYgMi41NCAxMC4wNSAyIDkgMiA3LjM0IDIgNiAzLjM0IDYgNWMwIC4zNS4wNy42OS4xOCAxSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTUtMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDUuMDhMNyAxMC44MyA4LjYyIDEyIDExIDguNzZsMS0xLjM2IDEgMS4zNkwxNS4zOCAxMiAxNyAxMC44MyAxNC45MiA4SDIwdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhcmRNZW1iZXJzaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjExIDAtMiAuODktMiAydjExYzAgMS4xMS44OSAyIDIgMmg0djVsNC0yIDQgMnYtNWg0YzEuMTEgMCAyLS44OSAyLTJWNGMwLTEuMTEtLjg5LTItMi0yem0wIDEzSDR2LTJoMTZ2MnptMC01SDRWNGgxNnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXJkVHJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtM1Y0YzAtMS4xMS0uODktMi0yLTJIOWMtMS4xMSAwLTIgLjg5LTIgMnYySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yek05IDRoNnYySDlWNHptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDN2MmgyVjhoNnYyaDJWOGgzdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYW5nZUhpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuNzcgMTguMzkgMThINS42MUwxMiA3Ljc3TTEyIDQgMiAyMGgyMEwxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGVja0NpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU5IDcuNTggMTAgMTQuMTdsLTMuNTktMy41OEw1IDEybDUgNSA4LTh6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE1LTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hyb21lUmVhZGVyTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNLTc0IDI5aDQ4djQ4aC00OFYyOXpNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTJoN3YxLjVoLTd6bTAtMi41aDdWMTFoLTd6bTAgNWg3VjE2aC03ek0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNWgtOVY2aDl2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENpcmNsZU5vdGlmaWNhdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE2LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNWgzYzAgLjgzLS42NyAxLjUtMS41IDEuNXptNS0yLjVIN3YtMWwxLTF2LTIuNjFDOCA5LjI3IDkuMDMgNy40NyAxMSA3di0uNWMwLS41Ny40My0xIDEtMXMxIC40MyAxIDFWN2MxLjk3LjQ3IDMgMi4yOCAzIDQuMzlWMTRsMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgNGg1djhsLTIuNS0xLjVMNiAxMlY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG9zZUZ1bGxzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzLjQxIDE2LjcxIDguNyAyMCAxMmgtOFY0bDMuMjkgMy4yOUwyMC41OSAyIDIyIDMuNDF6TTMuNDEgMjJsNS4yOS01LjI5TDEyIDIwdi04SDRsMy4yOSAzLjI5TDIgMjAuNTkgMy40MSAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29kZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjE3IDEyLTQuNTgtNC41OUwxNiA2bDYgNi0zLjU5IDMuNTlMMTcgMTQuMTcgMTkuMTcgMTJ6TTEuMzkgNC4yMmw0LjE5IDQuMTlMMiAxMmw2IDYgMS40MS0xLjQxTDQuODMgMTIgNyA5LjgzbDEyLjc4IDEyLjc4IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQgMTYuNiA0LjggMTJsNC42LTQuNkw4IDZsLTYgNiA2IDYgMS40LTEuNHptNS4yIDAgNC42LTQuNi00LjYtNC42TDE2IDZsNiA2LTYgNi0xLjQtMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21tZW50QmFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0xIDExLTIuNS0xLjVMMTQgMTNWNWg1djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbW1pdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjkgMTFhNSA1IDAgMCAwLTkuOCAwSDJ2Mmg1LjFhNSA1IDAgMCAwIDkuOCAwSDIydi0yaC01LjF6TTEyIDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tbXV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRINUMzLjM0IDQgMiA1LjM0IDIgN3Y4YzAgMS42NiAxLjM0IDMgMyAzbC0xIDF2MWgxbDItMi4wM0w5IDE4di01SDRWNS45OEwxMyA2djJoMlY3YzAtMS42Ni0xLjM0LTMtMy0zek01IDE0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTE1LjU3LTQuMzRjLS4xNC0uNC0uNTItLjY2LS45Ny0uNjZoLTcuMTljLS40NiAwLS44My4yNi0uOTguNjZMMTAgMTMuNzdsLjAxIDUuNTFjMCAuMzguMzEuNzIuNjkuNzJoLjYyYy4zOCAwIC42OC0uMzguNjgtLjc2VjE4aDh2MS4yNGMwIC4zOC4zMS43Ni42OS43NmguNjFjLjM4IDAgLjY5LS4zNC42OS0uNzJsLjAxLTEuMzd2LTQuMTRsLTEuNDMtNC4xMXptLTguMTYuMzRoNy4xOWwxLjAzIDNoLTkuMjVsMS4wMy0zek0xMiAxNmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem04IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tcGFyZUFycm93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMDEgMTRIMnYyaDcuMDF2M0wxMyAxNWwtMy45OS00djN6bTUuOTgtMXYtM0gyMlY4aC03LjAxVjVMMTEgOWwzLjk5IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbXByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAxOWgzdjNoMnYtM2gzbC00LTQtNCA0em04LTE1aC0zVjFoLTJ2M0g4bDQgNCA0LTR6TTQgOXYyaDE2VjlINHpNNCAxMmgxNnYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnptLTIgOGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTQgOEg4di0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMTYgMTcuNDNWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RTdXBwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSAyQzYuODEgMiAzIDUuODEgMyAxMC41UzYuODEgMTkgMTEuNSAxOWguNXYzYzQuODYtMi4zNCA4LTcgOC0xMS41QzIwIDUuODEgMTYuMTkgMiAxMS41IDJ6bTEgMTQuNWgtMnYtMmgydjJ6bTAtMy41aC0yYzAtMy4yNSAzLTMgMy01IDAtMS4xLS45LTItMi0ycy0yIC45LTIgMmgtMmMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMi41LTMgMi43NS0zIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RsZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNOC40NiAxNC40NWwtMS4zNi0uNjJjLjI4LS42MS40MS0xLjI0LjQtMS44NmE0LjQyIDQuNDIgMCAwIDAtLjQtMS44bDEuMzYtLjYzYy4zNS43NS41MyAxLjU2LjU0IDIuNC4wMS44Ni0uMTcgMS43LS41NCAyLjUxem0zLjA3IDEuNTYtMS4zLS43NGMuNTItLjkyLjc4LTEuOTguNzgtMy4xNSAwLTEuMTktLjI3LTIuMzMtLjgtMy40bDEuMzQtLjY3Yy42NCAxLjI4Ljk2IDIuNjUuOTYgNC4wNyAwIDEuNDMtLjMzIDIuNzQtLjk4IDMuODl6bTMuMTQgMS4zMi0xLjM1LS42NmMuNzgtMS42IDEuMTgtMy4xOCAxLjE4LTQuNjkgMC0xLjUxLS40LTMuMDctMS4xOC00LjY0bDEuMzQtLjY3Yy45IDEuNzggMS4zNCAzLjU2IDEuMzQgNS4zMSAwIDEuNzQtLjQ0IDMuNTQtMS4zMyA1LjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS44OCA5LjE0YzEuMjguMDYgMS42MSAxLjE1IDEuNjMgMS42NmgxLjc5Yy0uMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQgNy42MSA4IDkgOCAxMi4xNGMwIDEuOTQuOTMgNC4yNCAzLjg0IDQuMjQgMi4yMiAwIDMuNDEtMS42NSAzLjQ0LTIuOTVoLTEuNzljLS4wMy41OS0uNDUgMS4zOC0xLjYzIDEuNDQtMS4zMS0uMDQtMS44Ni0xLjA2LTEuODYtMi43MyAwLTIuODkgMS4yOC0yLjk4IDEuODgtM3pNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyZWRpdENhcmRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45IDIxLjkgMi4xIDIuMS42OSAzLjUxbDEuNTUgMS41NWMtLjE1LjI4LS4yMy42LS4yMy45NEwyIDE4YzAgMS4xMS44OSAyIDIgMmgxMy4xN2wzLjMxIDMuMzEgMS40Mi0xLjQxek00IDEyVjhoMS4xN2w0IDRINHptMi44My04SDIwYzEuMTEgMCAyIC44OSAyIDJ2MTJjMCAuMzQtLjA4LjY2LS4yMy45NEwxNC44MyAxMkgyMFY4aC05LjE3bC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0di02aDE2djZ6bTAtMTBINFY2aDE2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxNHYtMUgxMXYuNWgydi0xaC0yLjVjLS41NSAwLTEtLjQ1LTEtMVYxMGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxSDEzdi0uNWgtMnYxaDIuNWMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF6bTcuNSAxaDNjLjU1IDAgMS0uNDUgMS0xdi0xLjVjMC0uNTUtLjQ1LTEtMS0xaC0yLjV2LTFoMnYuNUgyMXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFoMi41djFoLTJWMTNIMTZ2MWMwIC41NS40NSAxIDEgMXptLTktNWMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTF2LTFINi41di41aC0ydi0zaDJ2LjVIOHYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lFeGNoYW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjg5IDExLjFjLTEuNzgtLjU5LTIuNjQtLjk2LTIuNjQtMS45IDAtMS4wMiAxLjExLTEuMzkgMS44MS0xLjM5IDEuMzEgMCAxLjc5Ljk5IDEuOSAxLjM0bDEuNTgtLjY3Yy0uMTUtLjQ1LS44Mi0xLjkyLTIuNTQtMi4yNFY1aC0ydjEuMjZjLTIuNDguNTYtMi40OSAyLjg2LTIuNDkgMi45NiAwIDIuMjcgMi4yNSAyLjkxIDMuMzUgMy4zMSAxLjU4LjU2IDIuMjggMS4wNyAyLjI4IDIuMDMgMCAxLjEzLTEuMDUgMS42MS0xLjk4IDEuNjEtMS44MiAwLTIuMzQtMS44Ny0yLjQtMi4wOWwtMS42Ni42N2MuNjMgMi4xOSAyLjI4IDIuNzggMi45IDIuOTZWMTloMnYtMS4yNGMuNC0uMDkgMi45LS41OSAyLjktMy4yMiAwLTEuMzktLjYxLTIuNjEtMy4wMS0zLjQ0ek0zIDIxSDF2LTZoNnYySDQuNTJjMS42MSAyLjQxIDQuMzYgNCA3LjQ4IDRhOSA5IDAgMCAwIDktOWgyYzAgNi4wOC00LjkyIDExLTExIDExLTMuNzIgMC03LjAxLTEuODUtOS00LjY3VjIxem0tMi05QzEgNS45MiA1LjkyIDEgMTIgMWMzLjcyIDAgNy4wMSAxLjg1IDkgNC42N1YzaDJ2NmgtNlY3aDIuNDhDMTcuODcgNC41OSAxNS4xMiAzIDEyIDNhOSA5IDAgMCAwLTkgOUgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYW5nZXJvdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTcgMTUuNzQgMTUuNzQgMTcgMTIgMTMuMjYgOC4yNiAxNyA3IDE1Ljc0IDEwLjc0IDEyIDcgOC4yNiA4LjI2IDcgMTIgMTAuNzQgMTUuNzQgNyAxNyA4LjI2IDEzLjI2IDEyIDE3IDE1Ljc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXNoYm9hcmRDdXN0b21pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDNoOHY4SDN6bTEwIDBoOHY4aC04ek0zIDEzaDh2OEgzem0xNSAwaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXNoYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDhWM0gzdjEwem0wIDhoOHYtNkgzdjZ6bTEwIDBoOFYxMWgtOHYxMHptMC0xOHY2aDhWM2gtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YUV4cGxvcmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJjMCAxLjMzLjI2IDIuNjEuNzQgMy43N0w4IDEwLjVsMy4zIDIuNzhMMTQuNTggMTBIMTNWOGg1djVoLTJ2LTEuNThMMTEuNDEgMTZsLTMuMjktMi43OS00LjQgNC40QTkuOTk2IDkuOTk2IDAgMCAwIDEyIDIyaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC01LjUyLTQuNDgtMTAtMTAtMTB6bTcuNSAxOC41Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhdGFUaHJlc2hvbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTguMzMgNS4xNyAyIDIgMy42Ny0zLjY3IDEuNDEgMS40MUwxMi42NyAxM2wtMi0yLTMgMy0xLjQxLTEuNDEgNC40MS00LjQyek01IDE2aDEuNzJMNSAxNy43MlYxNnptLjg0IDMgMy0zaDEuODNsLTMgM0g1Ljg0em0zLjk2IDAgMy0zaDEuNjJsLTMgM0g5Ljh6bTMuNzMgMCAzLTNoMS42MmwtMyAzaC0xLjYyek0xOSAxOWgtMS43M0wxOSAxNy4yN1YxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0ZVJhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMUg3djJoMnYtMnptNCAwaC0ydjJoMnYtMnptNCAwaC0ydjJoMnYtMnptMi03aC0xVjJoLTJ2Mkg4VjJINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMjBhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVsZXRlRm9yZXZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnptMi40Ni03LjEyIDEuNDEtMS40MUwxMiAxMi41OWwyLjEyLTIuMTIgMS40MSAxLjQxTDEzLjQxIDE0bDIuMTIgMi4xMi0xLjQxIDEuNDFMMTIgMTUuNDFsLTIuMTIgMi4xMi0xLjQxLTEuNDFMMTAuNTkgMTRsLTIuMTMtMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVsZXRlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6bTcuNS01LTEtMWgtNWwtMSAxSDV2MmgxNFY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWxldGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTE5IDRoLTMuNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlbnNpdHlMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2gxOHYySDN6TTMgMTloMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZW5zaXR5TWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM3pNMyAxOWgxOHYySDN6TTMgMTFoMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZW5zaXR5U21hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDJoMTh2Mkgzek0zIDIwaDE4djJIM3pNMyAxNGgxOHYySDN6TTMgOGgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0yIDE2SDh2LTJoOHYyem0wLTRIOHYtMmg4djJ6bS0zLTVWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlzYWJsZWRCeURlZmF1bHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2MThoMThWM0gzem0xNCAxMi41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpc2FibGVkVmlzaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk5IDEyLjM0Yy4wMS0uMTEuMDEtLjIzLjAxLS4zNCAwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMmMwIDUuMTcgMy45MyA5LjQzIDguOTYgOS45NWE5LjM0MyA5LjM0MyAwIDAgMS0yLjMyLTIuNjhBOC4wMSA4LjAxIDAgMCAxIDQgMTJjMC0xLjg1LjYzLTMuNTUgMS42OS00LjlsNS42NiA1LjY2Yy41Ni0uNCAxLjE3LS43MyAxLjgyLTFMNy4xIDUuNjlBNy45MDIgNy45MDIgMCAwIDEgMTIgNGM0LjI0IDAgNy43IDMuMjkgNy45OCA3LjQ1LjcxLjIyIDEuMzkuNTIgMi4wMS44OXpNMTcgMTNjLTMuMTggMC01LjkgMS44Ny03IDQuNSAxLjEgMi42MyAzLjgyIDQuNSA3IDQuNXM1LjktMS44NyA3LTQuNWMtMS4xLTIuNjMtMy44Mi00LjUtNy00LjV6bTAgN2EyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXptMS41LTIuNWMwIC44My0uNjcgMS41LTEuNSAxLjVzLTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlzcGxheVNldHRpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTRINFY1aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDguMjVoOHYxLjVINnpNMTYuNSA5Ljc1SDE4di0xLjVoLTEuNVY3SDE1djRoMS41ek0xMCAxMi4yNWg4djEuNWgtOHpNNy41IDE1SDl2LTRINy41djEuMjVINnYxLjVoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxM0g0Yy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTF2LTZjMC0uNTUtLjQ1LTEtMS0xek03IDE5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMjAgM0g0Yy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTFWNGMwLS41NS0uNDUtMS0xLTF6TTcgOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbmVBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA3LTEuNDEtMS40MS02LjM0IDYuMzQgMS40MSAxLjQxTDE4IDd6bTQuMjQtMS40MUwxMS42NiAxNi4xNyA3LjQ4IDEybC0xLjQxIDEuNDFMMTEuNjYgMTlsMTItMTItMS40Mi0xLjQxek0uNDEgMTMuNDEgNiAxOWwxLjQxLTEuNDFMMS44MyAxMiAuNDEgMTMuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbmVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyA1LjAzIDEuNCAxLjRMOC40MyAxOS4xN2wtNS42LTUuNiAxLjQtMS40IDQuMiA0LjJMMTkuNzcgNS4wM20wLTIuODNMOC40MyAxMy41NGwtNC4yLTQuMkwwIDEzLjU3IDguNDMgMjIgMjQgNi40MyAxOS43NyAyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2LjIgNC44IDEybC0xLjQgMS40TDkgMTkgMjEgN2wtMS40LTEuNEw5IDE2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbnV0TGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1LjA4VjJjLTUgLjUtOSA0LjgxLTkgMTBzNCA5LjUgOSAxMHYtMy4wOGMtMy0uNDgtNi0zLjQtNi02LjkyczMtNi40NCA2LTYuOTJ6TTE4Ljk3IDExSDIyYy0uNDctNS00LTguNTMtOS05djMuMDhDMTYgNS41MSAxOC41NCA4IDE4Ljk3IDExek0xMyAxOC45MlYyMmM1LS40NyA4LjUzLTQgOS05aC0zLjAzYy0uNDMgMy0yLjk3IDUuNDktNS45NyA1LjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb251dFNtYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOS4xNlYyYy01IC41LTkgNC43OS05IDEwczQgOS41IDkgMTB2LTcuMTZjLTEtLjQxLTItMS41Mi0yLTIuODRzMS0yLjQzIDItMi44NHpNMTQuODYgMTFIMjJjLS40OC00Ljc1LTQtOC41My05LTl2Ny4xNmMxIC4zIDEuNTIuOTggMS44NiAxLjg0ek0xMyAxNC44NFYyMmM1LS40NyA4LjUyLTQuMjUgOS05aC03LjE0Yy0uMzQuODYtLjg2IDEuNTQtMS44NiAxLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcmFnSW5kaWNhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxOGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6bS0yLThjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDRjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREeW5hbWljRm9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwdi05aC0yVjRoN2wtMiA1aDJsLTUgMTF6bS0yLTd2N0g0Yy0xLjEgMC0yLS45LTItMnYtM2MwLTEuMS45LTIgMi0yaDExem0tOC43NSAyLjc1aC0xLjV2MS41aDEuNXYtMS41ek0xMyA0djdINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDl6TTYuMjUgNi43NWgtMS41djEuNWgxLjV2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWNvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4wNSA4LjA1YTcuMDAxIDcuMDAxIDAgMCAwLS4wMiA5Ljg4YzEuNDctMy40IDQuMDktNi4yNCA3LjM2LTcuOTNBMTUuOTUyIDE1Ljk1MiAwIDAgMCA4IDE5LjMyYzIuNiAxLjIzIDUuOC43OCA3Ljk1LTEuMzdDMTkuNDMgMTQuNDcgMjAgNCAyMCA0UzkuNTMgNC41NyA2LjA1IDguMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIySDVhMiAyIDAgMCAxLTItMmwuMDEtMTRjMC0xLjEuODgtMiAxLjk5LTJoMVYyaDJ2Mmg4VjJoMnYyaDFjMS4xIDAgMiAuOSAyIDJ2NmgtMnYtMkg1djEwaDd2MnptMTAuMTMtNS4wMS43MS0uNzFhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0uNzEtLjcxYS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtLjcxLjcxIDIuMTIgMi4xMnptLS43MS43MS01LjMgNS4zSDE0di0yLjEybDUuMy01LjMgMi4xMiAyLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0RG9jdW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxOS44OFYyMmgyLjEybDUuMTctNS4xNy0yLjEyLTIuMTJ6TTIwIDhsLTYtNkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMTJ2LTIuOTVsOC04Vjh6bS03IDFWMy41TDE4LjUgOUgxM3pNMjIuNzEgMTRsLS43MS0uNzFhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0uNzEuNzFMMjIgMTYuMTJsLjcxLS43MWEuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuMTI2IDguMTI1IDEuOTM3LTEuOTM3IDMuNzQ3IDMuNzQ3LTEuOTM3IDEuOTM4ek0yMC43MSA1LjYzbC0yLjM0LTIuMzRhMSAxIDAgMCAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NUwyMC43MSA3YTEgMSAwIDAgMCAwLTEuMzd6TTIgNWw2LjYzIDYuNjNMMyAxNy4yNVYyMWgzLjc1bDUuNjMtNS42MkwxOCAyMWwyLTJMNCAzIDIgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWRpdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTdWOS45M0wxMy45MyAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTguOTNMMTQuMDcgMTdIN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNWg0LjI0bDcuMi03LjItNC4yNC00LjI0LTcuMiA3LjJ6TTIyLjkxIDIuNDkgMjEuNSAxLjA4Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtMS4wNiAxLjA2IDQuMjQgNC4yNCAxLjA2LTEuMDZjLjc5LS43OC43OS0yLjA1IDAtMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMjRWMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE3aDE0djJINXptNy0xMkw1LjMzIDE1aDEzLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdXJvU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTguNUE2LjQ4IDYuNDggMCAwIDEgOS4yNCAxNUgxNXYtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1VjlIOS4yNEE2LjQ5MSA2LjQ5MSAwIDAgMSAxNSA1LjVjMS42MSAwIDMuMDkuNTkgNC4yMyAxLjU3TDIxIDUuM0E4Ljk1NSA4Ljk1NSAwIDAgMCAxNSAzYy0zLjkyIDAtNy4yNCAyLjUxLTguNDggNkgzdjJoMy4wNmE4LjI2MiA4LjI2MiAwIDAgMCAwIDJIM3YyaDMuNTJjMS4yNCAzLjQ5IDQuNTYgNiA4LjQ4IDYgMi4zMSAwIDQuNDEtLjg3IDYtMi4zbC0xLjc4LTEuNzdjLTEuMTMuOTgtMi42IDEuNTctNC4yMiAxLjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdmVudFJlcGVhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEyVjZjMC0xLjEtLjktMi0yLTJoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg3di0ySDVWMTBoMTR2Mmgyem0tNS4zNiA4YTMuNTA0IDMuNTA0IDAgMCAwIDYuODYtMWMwLTEuOTMtMS41Ny0zLjUtMy41LTMuNS0uOTUgMC0xLjgyLjM4LTIuNDUgMUgxOFYxOGgtNHYtNGgxLjV2MS40M2MuOS0uODggMi4xNC0xLjQzIDMuNS0xLjQzIDIuNzYgMCA1IDIuMjQgNSA1YTUuMDAyIDUuMDAyIDAgMCAxLTkuOSAxaDEuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV2ZW50U2VhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTh2M2gzdi0zaDEwdjNoM3YtNkg0djN6bTE1LThoM3YzaC0zdi0zek0yIDEwaDN2M0gydi0zem0xNSAzSDdWNWMwLTEuMS45LTIgMi0yaDZjMS4xIDAgMiAuOSAyIDJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXZlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmgtNXY1aDV2LTV6TTE2IDF2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yaC0xVjFoLTJ6bTMgMThINVY4aDE0djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeGl0VG9BcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wOSAxNS41OSAxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWEyIDIgMCAwIDAtMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMGgxNnYySDR6TTQgMmgxNnYySDR6bTkgN2gzbC00LTQtNCA0aDN2Nkg4bDQgNCA0LTRoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cGxvcmVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjE5IDE0LjE5LTEuNDEtMS40MS0xLjU2LTEuNTZMMTEgMTEgOS44MSA5LjgxIDQuOTMgNC45MyAyLjI3IDIuMjcgMSAzLjU0bDIuNzggMi43OGMtLjExLjE2LS4yMS4zMi0uMzEuNDgtLjA0LjA3LS4wOS4xNC0uMTMuMjEtLjA5LjE1LS4xNy4zMS0uMjUuNDctLjA1LjEtLjEuMjEtLjE2LjMyLS4wNi4xNC0uMTMuMjgtLjE5LjQzLS4xLjI0LS4xOS40OC0uMjcuNzNsLS4wOS4zYy0uMDUuMi0uMS4zOS0uMTQuNTktLjAyLjExLS4wNC4yMi0uMDcuMzMtLjA0LjItLjA3LjQtLjA5LjYxLS4wMS4xLS4wMy4yLS4wMy4zLS4wMy4yOS0uMDUuNi0uMDUuOTEgMCA1LjUyIDQuNDggMTAgMTAgMTAgLjMxIDAgLjYyLS4wMi45Mi0uMDVsLjMtLjAzYy4yLS4wMi40MS0uMDYuNjEtLjA5LjExLS4wMi4yMi0uMDQuMzMtLjA3LjItLjA0LjM5LS4wOS41OC0uMTUuMS0uMDMuMi0uMDUuMy0uMDkuMjUtLjA4LjQ5LS4xNy43My0uMjcuMTUtLjA2LjI5LS4xMy40My0uMTkuMTEtLjA1LjIyLS4xLjMzLS4xNi4xNi0uMDguMzEtLjE2LjQ2LS4yNS4wNy0uMDQuMTQtLjA5LjIxLS4xMy4xNi0uMS4zMi0uMi40OC0uMzFMMjAuNDYgMjNsMS4yNy0xLjI3LTIuNjYtMi42Ni00Ljg4LTQuODh6TTYgMThsMy02LjQ2TDEyLjQ2IDE1IDYgMTh6bTE2LTZjMCAuMzEtLjAyLjYyLS4wNS45MmwtLjAzLjNjLS4wMi4yLS4wNi40MS0uMDkuNjEtLjAyLjExLS4wNC4yMi0uMDcuMzMtLjA0LjItLjA5LjM5LS4xNS41OC0uMDMuMS0uMDUuMjEtLjA5LjMxLS4wOC4yNS0uMTcuNDktLjI3LjczLS4wNi4xNS0uMTMuMjktLjE5LjQzLS4wNS4xMS0uMS4yMi0uMTYuMzMtLjA4LjE2LS4xNi4zMS0uMjUuNDYtLjA0LjA3LS4wOS4xNC0uMTMuMjEtLjEuMTYtLjIuMzItLjMxLjQ4TDE1IDEyLjQ2IDE4IDZsLTYuNDYgMy01LjIyLTUuMjJjLjE2LS4xMS4zMi0uMjEuNDgtLjMxLjA3LS4wNC4xNC0uMDkuMjEtLjEzLjE1LS4wOS4zMS0uMTcuNDYtLjI1LjExLS4wNS4yMi0uMS4zMy0uMTYuMTQtLjA2LjI4LS4xMy40My0uMTkuMjQtLjEuNDgtLjE5LjczLS4yN2wuMzEtLjA5Yy4xOS0uMDUuMzgtLjExLjU4LS4xNS4xMS0uMDIuMjItLjA0LjMzLS4wNy4yLS4wNC40LS4wNy42MS0uMDkuMS0uMDEuMi0uMDMuMy0uMDMuMjktLjAyLjYtLjA0LjkxLS4wNCA1LjUyIDAgMTAgNC40OCAxMCAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwbG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwLjljLS42MSAwLTEuMS40OS0xLjEgMS4xcy40OSAxLjEgMS4xIDEuMWMuNjEgMCAxLjEtLjQ5IDEuMS0xLjFzLS40OS0xLjEtMS4xLTEuMXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMi4xOSAxMi4xOUw2IDE4bDMuODEtOC4xOUwxOCA2bC0zLjgxIDguMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4dGVuc2lvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc4IDIyLjYxLTEuNjMtMS42M2MtLjA1IDAtLjEuMDItLjE1LjAyaC0zLjhjMC0yLjcxLTIuMTYtMy0yLjctM3MtMi43LjI5LTIuNyAzSDVjLTEuMSAwLTItLjktMi0ydi0zLjhjMi43MSAwIDMtMi4xNiAzLTIuN3MtLjMtMi43LTIuOTktMi43VjZjMC0uMDUuMDItLjA5LjAyLS4xNEwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6bS4yMi01LjQ0VjE1YTIuNSAyLjUgMCAwIDAgMC01VjZjMC0xLjEtLjktMi0yLTJoLTRhMi41IDIuNSAwIDAgMC01IDBINi44M0wyMCAxNy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXh0ZW5zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAxMUgxOVY3YzAtMS4xLS45LTItMi0yaC00VjMuNWEyLjUgMi41IDAgMCAwLTUgMFY1SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2My44SDMuNWMxLjQ5IDAgMi43IDEuMjEgMi43IDIuN3MtMS4yMSAyLjctMi43IDIuN0gyVjIwYzAgMS4xLjkgMiAyIDJoMy44di0xLjVjMC0xLjQ5IDEuMjEtMi43IDIuNy0yLjcgMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdWMjJIMTdjMS4xIDAgMi0uOSAyLTJ2LTRoMS41YTIuNSAyLjUgMCAwIDAgMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMS43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41em02IDBhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LTggMC0uMjkuMDItLjU4LjA1LS44NiAyLjM2LTEuMDUgNC4yMy0yLjk4IDUuMjEtNS4zN2E5Ljk3NCA5Ljk3NCAwIDAgMCAxMC40MSAzLjk3Yy4yMS43MS4zMyAxLjQ3LjMzIDIuMjYgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY3RDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNMTAgMTdINXYtMmg1djJ6bTAtNEg1di0yaDV2MnptMC00SDVWN2g1djJ6bTQuODIgNkwxMiAxMi4xNmwxLjQxLTEuNDEgMS40MSAxLjQyTDE3Ljk5IDlsMS40MiAxLjQyTDE0LjgyIDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYXZvcml0ZUJvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgM2MtMS43NCAwLTMuNDEuODEtNC41IDIuMDlDMTAuOTEgMy44MSA5LjI0IDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDMuNzggMy40IDYuODYgOC41NSAxMS41NEwxMiAyMS4zNWwxLjQ1LTEuMzJDMTguNiAxNS4zNiAyMiAxMi4yOCAyMiA4LjUgMjIgNS40MiAxOS41OCAzIDE2LjUgM3ptLTQuNCAxNS41NS0uMS4xLS4xLS4xQzcuMTQgMTQuMjQgNCAxMS4zOSA0IDguNSA0IDYuNSA1LjUgNSA3LjUgNWMxLjU0IDAgMy4wNC45OSAzLjU3IDIuMzZoMS44N0MxMy40NiA1Ljk5IDE0Ljk2IDUgMTYuNSA1YzIgMCAzLjUgMS41IDMuNSAzLjUgMCAyLjg5LTMuMTQgNS43NC03LjkgMTAuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhdm9yaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMjEuMzUtMS40NS0xLjMyQzUuNCAxNS4zNiAyIDEyLjI4IDIgOC41IDIgNS40MiA0LjQyIDMgNy41IDNjMS43NCAwIDMuNDEuODEgNC41IDIuMDlDMTMuMDkgMy44MSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5aC0xVjRIOHYxNmgxNHYtOGMwLTEuNjYtMS4zNC0zLTMtM3ptLTktM2g2djNoLTZWNnptNCAxMWgtNHYtNWg0djV6bTIgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0wLTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMyAzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAtM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek00LjUgOEEyLjUgMi41IDAgMCAwIDIgMTAuNXY4YTIuNSAyLjUgMCAwIDAgNSAwdi04QTIuNSAyLjUgMCAwIDAgNC41IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZlZWRiYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDEyaC0ydi0yaDJ2MnptMC00aC0yVjZoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlUHJlc2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjdsLTUtNXpNNiAyMFY0aDh2NGg0djEySDZ6bTEwLTEwdjVjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRWOC41YTIuNSAyLjUgMCAwIDEgMi43Ni0yLjQ5YzEuMy4xMyAyLjI0IDEuMzIgMi4yNCAyLjYzVjE1aC0yVjguNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjVWMTVjMCAxLjEuOSAyIDIgMnMyLS45IDItMnYtNWgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJBbHRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43OSA1LjYxQS45OTguOTk4IDAgMCAwIDE5IDRINi44M2w3Ljk3IDcuOTcgNC45OS02LjM2ek0yLjgxIDIuODEgMS4zOSA0LjIyIDEwIDEzdjZjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTIuMTdsNS43OCA1Ljc4IDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0bTAgMjRIMFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjI1IDUuNjFDNi4yNyA4LjIgMTAgMTMgMTAgMTN2NmMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtNnMzLjcyLTQuOCA1Ljc0LTcuMzlBLjk5OC45OTggMCAwIDAgMTguOTUgNEg1LjA0Yy0uODMgMC0xLjMuOTUtLjc5IDEuNjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckxpc3RBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6TTAgMGgyNG0wIDI0SDBcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4yNSA1LjY2Yy4xLjEzIDUuNzQgNy4zMyA1Ljc0IDcuMzNWMTljMCAuNTUuNDUgMSAxLjAxIDFoMi4wMWMuNTUgMCAxLjAxLS40NSAxLjAxLTF2LTYuMDJzNS40OS03LjAyIDUuNzUtNy4zNEMyMC4wMyA1LjMyIDIwIDUgMjAgNWMwLS41NS0uNDUtMS0xLjAxLTFINS4wMUM0LjQgNCA0IDQuNDggNCA1YzAgLjIuMDYuNDQuMjUuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbmRJblBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOS41OVY4bC02LTZINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4Yy40NSAwIC44NS0uMTUgMS4xOS0uNGwtNC40My00LjQzYy0uOC41Mi0xLjc0LjgzLTIuNzYuODMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1YzAgMS4wMi0uMzEgMS45Ni0uODMgMi43NUwyMCAxOS41OXpNOSAxM2MwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmluZFJlcGxhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2YzEuMzggMCAyLjYzLjU2IDMuNTQgMS40NkwxMiAxMGg2VjRsLTIuMDUgMi4wNUE2Ljk3NiA2Ljk3NiAwIDAgMCAxMSA0Yy0zLjUzIDAtNi40MyAyLjYxLTYuOTIgNkg2LjFBNSA1IDAgMCAxIDExIDZ6bTUuNjQgOS4xNEE2Ljg5IDYuODkgMCAwIDAgMTcuOTIgMTJIMTUuOWE1IDUgMCAwIDEtNC45IDRjLTEuMzggMC0yLjYzLS41Ni0zLjU0LTEuNDZMMTAgMTJINHY2bDIuMDUtMi4wNUE2Ljk3NiA2Ljk3NiAwIDAgMCAxMSAxOGMxLjU1IDAgMi45OC0uNTEgNC4xNC0xLjM2TDIwIDIxLjQ5IDIxLjQ5IDIwbC00Ljg1LTQuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbmdlcnByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuODEgNC40N2MtLjA4IDAtLjE2LS4wMi0uMjMtLjA2QzE1LjY2IDMuNDIgMTQgMyAxMi4wMSAzYy0xLjk4IDAtMy44Ni40Ny01LjU3IDEuNDEtLjI0LjEzLS41NC4wNC0uNjgtLjJhLjUwNi41MDYgMCAwIDEgLjItLjY4QzcuODIgMi41MiA5Ljg2IDIgMTIuMDEgMmMyLjEzIDAgMy45OS40NyA2LjAzIDEuNTIuMjUuMTMuMzQuNDMuMjEuNjdhLjQ5LjQ5IDAgMCAxLS40NC4yOHpNMy41IDkuNzJhLjQ5OS40OTkgMCAwIDEtLjQxLS43OWMuOTktMS40IDIuMjUtMi41IDMuNzUtMy4yN0M5Ljk4IDQuMDQgMTQgNC4wMyAxNy4xNSA1LjY1YzEuNS43NyAyLjc2IDEuODYgMy43NSAzLjI1YS41LjUgMCAwIDEtLjEyLjdjLS4yMy4xNi0uNTQuMTEtLjctLjEyYTkuMzg4IDkuMzg4IDAgMCAwLTMuMzktMi45NGMtMi44Ny0xLjQ3LTYuNTQtMS40Ny05LjQuMDEtMS4zNi43LTIuNSAxLjctMy40IDIuOTYtLjA4LjE0LS4yMy4yMS0uMzkuMjF6bTYuMjUgMTIuMDdhLjQ3LjQ3IDAgMCAxLS4zNS0uMTVjLS44Ny0uODctMS4zNC0xLjQzLTIuMDEtMi42NC0uNjktMS4yMy0xLjA1LTIuNzMtMS4wNS00LjM0IDAtMi45NyAyLjU0LTUuMzkgNS42Ni01LjM5czUuNjYgMi40MiA1LjY2IDUuMzljMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41YzAtMi40Mi0yLjA5LTQuMzktNC42Ni00LjM5LTIuNTcgMC00LjY2IDEuOTctNC42NiA0LjM5IDAgMS40NC4zMiAyLjc3LjkzIDMuODUuNjQgMS4xNSAxLjA4IDEuNjQgMS44NSAyLjQyLjE5LjIuMTkuNTEgMCAuNzEtLjExLjEtLjI0LjE1LS4zNy4xNXptNy4xNy0xLjg1Yy0xLjE5IDAtMi4yNC0uMy0zLjEtLjg5LTEuNDktMS4wMS0yLjM4LTIuNjUtMi4zOC00LjM5IDAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41YzAgMS40MS43MiAyLjc0IDEuOTQgMy41Ni43MS40OCAxLjU0LjcxIDIuNTQuNzEuMjQgMCAuNjQtLjAzIDEuMDQtLjEuMjctLjA1LjUzLjEzLjU4LjQxLjA1LjI3LS4xMy41My0uNDEuNTgtLjU3LjExLTEuMDcuMTItMS4yMS4xMnpNMTQuOTEgMjJjLS4wNCAwLS4wOS0uMDEtLjEzLS4wMi0xLjU5LS40NC0yLjYzLTEuMDMtMy43Mi0yLjFhNy4yOTcgNy4yOTcgMCAwIDEtMi4xNy01LjIyYzAtMS42MiAxLjM4LTIuOTQgMy4wOC0yLjk0IDEuNyAwIDMuMDggMS4zMiAzLjA4IDIuOTQgMCAxLjA3LjkzIDEuOTQgMi4wOCAxLjk0czIuMDgtLjg3IDIuMDgtMS45NGMwLTMuNzctMy4yNS02LjgzLTcuMjUtNi44My0yLjg0IDAtNS40NCAxLjU4LTYuNjEgNC4wMy0uMzkuODEtLjU5IDEuNzYtLjU5IDIuOCAwIC43OC4wNyAyLjAxLjY3IDMuNjEuMS4yNi0uMDMuNTUtLjI5LjY0LS4yNi4xLS41NS0uMDQtLjY0LS4yOWExMS4xNCAxMS4xNCAwIDAgMS0uNzMtMy45NmMwLTEuMi4yMy0yLjI5LjY4LTMuMjQgMS4zMy0yLjc5IDQuMjgtNC42IDcuNTEtNC42IDQuNTUgMCA4LjI1IDMuNTEgOC4yNSA3LjgzIDAgMS42Mi0xLjM4IDIuOTQtMy4wOCAyLjk0cy0zLjA4LTEuMzItMy4wOC0yLjk0YzAtMS4wNy0uOTMtMS45NC0yLjA4LTEuOTRzLTIuMDguODctMi4wOCAxLjk0YzAgMS43MS42NiAzLjMxIDEuODcgNC41MS45NS45NCAxLjg2IDEuNDYgMy4yNyAxLjg1LjI3LjA3LjQyLjM1LjM1LjYxLS4wNS4yMy0uMjYuMzgtLjQ3LjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaXRTY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA0aDNjMS4xIDAgMiAuOSAyIDJ2MmgtMlY2aC0zVjR6TTQgOFY2aDNWNEg0Yy0xLjEgMC0yIC45LTIgMnYyaDJ6bTE2IDh2MmgtM3YyaDNjMS4xIDAgMi0uOSAyLTJ2LTJoLTJ6TTcgMThINHYtMkgydjJjMCAxLjEuOSAyIDIgMmgzdi0yek0xOCA4SDZ2OGgxMlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFreSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIm0xNC4wNSAxNy41OC0uMDEuMDEtMi40LTIuNCAxLjA2LTEuMDYgMS4zNSAxLjM1TDE2LjU0IDEzbDEuMDYgMS4wNi0zLjU0IDMuNTQtLjAxLS4wMnpNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6TTcuMzQgNi4yOGwxLjQxIDEuNDEgMS40MS0xLjQxIDEuMDYgMS4wNi0xLjQxIDEuNDEgMS40MSAxLjQxLTEuMDYgMS4wNi0xLjQxLTEuNDEtMS40MSAxLjQxLTEuMDYtMS4wNiAxLjQxLTEuNDEtMS40MS0xLjQxIDEuMDYtMS4wNnpNMTIgMjBjLTIuMiAwLTQuMi0uOS01LjctMi4zTDE3LjcgNi4zQzE5LjEgNy44IDIwIDkuOCAyMCAxMmMwIDQuNC0zLjYgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaWdodExhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMTloMTl2MmgtMTl2LTJ6bTE2Ljg0LTMuMTVjLjguMjEgMS42Mi0uMjYgMS44NC0xLjA2LjIxLS44LS4yNi0xLjYyLTEuMDYtMS44NGwtNS4zMS0xLjQyLTIuNzYtOS4wMkwxMC4xMiAydjguMjhMNS4xNSA4Ljk1bC0uOTMtMi4zMi0xLjQ1LS4zOXY1LjE3bDE2LjU3IDQuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaWdodFRha2VvZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjUgMTloMTl2MmgtMTl2LTJ6bTE5LjU3LTkuMzZjLS4yMS0uOC0xLjA0LTEuMjgtMS44NC0xLjA2TDE0LjkyIDEwbC02LjktNi40My0xLjkzLjUxIDQuMTQgNy4xNy00Ljk3IDEuMzMtMS45Ny0xLjU0LTEuNDUuMzkgMi41OSA0LjQ5czcuMTItMS45IDE2LjU3LTQuNDNjLjgxLS4yMyAxLjI4LTEuMDUgMS4wNy0xLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlwVG9CYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA3SDd2MmgyVjd6bTAgNEg3djJoMnYtMnptMC04YTIgMiAwIDAgMC0yIDJoMlYzem00IDEyaC0ydjJoMnYtMnptNi0xMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS02IDBoLTJ2MmgyVjN6TTkgMTd2LTJIN2EyIDIgMCAwIDAgMiAyem0xMC00aDJ2LTJoLTJ2MnptMC00aDJWN2gtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnpNNSA3SDN2MTJhMiAyIDAgMCAwIDIgMmgxMnYtMkg1Vjd6bTEwLTJoMlYzaC0ydjJ6bTAgMTJoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlwVG9Gcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMiA0di0ySDNhMiAyIDAgMCAwIDIgMnpNMyA5aDJWN0gzdjJ6bTEyIDEyaDJ2LTJoLTJ2MnptNC0xOEg5YTIgMiAwIDAgMC0yIDJ2MTBhMiAyIDAgMCAwIDIgMmgxMGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEySDlWNWgxMHYxMHptLTggNmgydi0yaC0ydjJ6bS00IDBoMnYtMkg3djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsdXR0ZXJEYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDcgMTEuN2MuMjktLjM5LjgxLS41NiAxLjI3LS4zNy4xNy4wNy4zMi4xOC40My4zMy4yMi4yOC4yNS41OS4yMi44NS0uMDUuMzMtLjI1LjYzLS41NC43OSAwIDAtNC44NyAyLjk1LTUuMDcgMi42OXMzLjY5LTQuMjkgMy42OS00LjI5ek0yMiAxMGMwIDIuNS0xIDMtMS41IDMtLjIzIDAtLjQ0LS4xLS42Mi0uMjYtLjQ4IDMuMzItMi4zNiA1LjMxLTUuMzMgNS45OS4xMS40NC40OC43Ny45NS43N2guNThjLjIyIDAgLjQxLjE1LjQ4LjM2LjE3LjUyLjY2IDEuMDIgMS4wMiAxLjMyLjI1LjIxLjI0LjU5LS4wMy43OC0uMzQuMjQtLjkuNDktMS43OS41M2EuNTAxLjUwMSAwIDAgMS0uNDUtLjIyYy0uMTMtLjItLjMxLS41Ni0uMzEtMS4wMSAwLS4zLjA0LS41Ny4wOS0uOC0uNzgtLjE2LTEuMzktLjc4LTEuNTUtMS41Ni0uNDkuMDYtMSAuMS0xLjU0LjEtLjg4IDAtMS43LS4wOS0yLjQ1LS4yNS0uMDIuMDgtLjA1LjE2LS4wNS4yNSAwIC41NS40NSAxIDEgMWguNThjLjIyIDAgLjQxLjE1LjQ4LjM2LjE3LjUyLjY2IDEuMDIgMS4wMiAxLjMyLjI1LjIxLjI0LjU5LS4wMy43OC0uMzQuMjQtLjkuNDktMS43OS41M2EuNTAxLjUwMSAwIDAgMS0uNDUtLjIyYy0uMTMtLjItLjMxLS41Ni0uMzEtMS4wMSAwLS4zLjA0LS41Ny4wOS0uOC0uOS0uMTktMS41OS0xLTEuNTktMS45NiAwLS4xOC4wMy0uMzYuMDgtLjUzLTIuNDYtLjg2LTQuMDMtMi43OC00LjQ2LTUuNzQtLjE4LjE3LS4zOC4yNy0uNjIuMjdDMyAxMyAyIDEyLjUgMiAxMGMwLTIuMjcgMS43LTQuNSAzLTQuNS40MyAwIC40OS40OS41Ljg1YTcuOTg5IDcuOTg5IDAgMCAxIDUuNTUtMy4yOWMuMi0uOTYgMS4wOC0xLjU2IDEuOTUtMS41NnYxcy4zMy0uNSAxLS41Yy42NyAwIDEgLjUgMSAuNS0uNDkgMC0uODUuMzUtLjk2Ljc3IDEuODIuNDggMy4zOSAxLjU5IDQuNDYgMy4wOC4wMS0uMzYuMDctLjg1LjUtLjg1IDEuMyAwIDMgMi4yMyAzIDQuNXpNNSAxMWMwIC44MS4xIDEuNTMuMjUgMi4yMS4xOC0uNjkuNDYtMS4zMy44My0xLjkyYTMuNzcgMy43NyAwIDAgMS0uMzQtMS41NEEzLjc2NiAzLjc2NiAwIDAgMSA5LjUgNmMuOTYgMCAxLjg0LjM3IDIuNS45Ny42Ni0uNiAxLjU0LS45NyAyLjUtLjk3IDIuMDcgMCAzLjc1IDEuNjggMy43NSAzLjc1IDAgLjU1LS4xMiAxLjA3LS4zNCAxLjU0LjM3LjU5LjY2IDEuMjQuODQgMS45NC4xNS0uNjguMjUtMS40MS4yNS0yLjIzIDAtMy44Ni0zLjE0LTctNy03cy03IDMuMTQtNyA3em0xMi45OCA0LjI5YzAtLjEuMDItLjE5LjAyLS4yOSAwLTEuMDEtLjI2LTEuOTUtLjctMi43OC0uNjkuNzgtMS42OCAxLjI4LTIuOCAxLjI4LS4yNyAwLS41NC0uMDMtLjc5LS4wOS4xNC0uMjMuMjMtLjQ5LjI3LS43Ny4wMS0uMDcuMDEtLjEzLjAyLS4xOS4xNy4wMy4zMy4wNS41LjA1IDEuNTIgMCAyLjc1LTEuMjMgMi43NS0yLjc1UzE2LjAyIDcgMTQuNSA3Yy0uNjcgMC0xLjMyLjI1LTEuODMuNzJsLS42Ny42LS42Ny0uNkMxMC44MiA3LjI1IDEwLjE3IDcgOS41IDcgNy45OCA3IDYuNzUgOC4yMyA2Ljc1IDkuNzVjMCAxLjM0Ljk2IDIuNDYgMi4yMyAyLjdsLS43Ni44M2MtLjYtLjIyLTEuMTItLjU5LTEuNTMtMS4wNUE2LjAxIDYuMDEgMCAwIDAgNiAxNWMwIC4wOC4wMS4xNS4wMS4yNEM3LjEzIDE3LjA2IDkuMTQgMTggMTIgMThjMi44OCAwIDQuODgtLjkxIDUuOTgtMi43MXpNMTYgOS43NWMwIC45Ny0uNjcgMS43NS0xLjUgMS43NVMxMyAxMC43MiAxMyA5Ljc1IDEzLjY3IDggMTQuNSA4czEuNS43OCAxLjUgMS43NXptLS43NS0uODdjMC0uMjEtLjE3LS4zOC0uMzgtLjM4cy0uMzcuMTctLjM3LjM4LjE3LjM4LjM4LjM4LjM3LS4xOC4zNy0uMzh6TTExIDkuNzVjMCAuOTctLjY3IDEuNzUtMS41IDEuNzVTOCAxMC43MiA4IDkuNzUgOC42NyA4IDkuNSA4czEuNS43OCAxLjUgMS43NXptLS43NS0uODdjMC0uMjEtLjE3LS4zOC0uMzgtLjM4cy0uMzcuMTctLjM3LjM4LjE3LjM4LjM4LjM4LjM3LS4xOC4zNy0uMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZyZWVDYW5jZWxsYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yMSAyMEg1VjEwaDE0djQuMzhsMi0yVjZjMC0xLjEtLjktMi0yLTJoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGEyIDIgMCAwIDAgMiAyaDguMjFsLTItMnptNS4zMyAyLjVMMTMgMTguOTZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxLTUuNjQgNS42NnpNMTAuNDEgMTQgMTIgMTUuNTkgMTAuNTkgMTcgOSAxNS40MSA3LjQxIDE3IDYgMTUuNTkgNy41OSAxNCA2IDEyLjQxIDcuNDEgMTEgOSAxMi41OSAxMC41OSAxMSAxMiAxMi40MSAxMC40MSAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR1RyYW5zbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNEgxMWwtMS0zSDNjLTEuMSAwLTIgLjktMiAydjE1YzAgMS4xLjkgMiAyIDJoOGwxIDNoOWMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek03IDE2Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01YzEuMzUgMCAyLjQ4LjUgMy4zNSAxLjNMOS4wMyA4LjU3Yy0uMzgtLjM2LTEuMDQtLjc4LTIuMDMtLjc4LTEuNzQgMC0zLjE1IDEuNDQtMy4xNSAzLjIxUzUuMjYgMTQuMjEgNyAxNC4yMWMyLjAxIDAgMi44NC0xLjQ0IDIuOTItMi40MUg3di0xLjcxaDQuNjhjLjA3LjMxLjEyLjYxLjEyIDEuMDJDMTEuOCAxMy45NyA5Ljg5IDE2IDcgMTZ6bTYuMTctNS40MmgzLjdjLS40MyAxLjI1LTEuMTEgMi40My0yLjA1IDMuNDctLjMxLS4zNS0uNi0uNzItLjg2LTEuMWwtLjc5LTIuMzd6bTguMzMgOS45MmMwIC41NS0uNDUgMS0xIDFIMTRsMi0yLjUtMS4wNC0zLjEgMy4xIDMuMS45Mi0uOTItMy4zLTMuMjUuMDItLjAyYzEuMTMtMS4yNSAxLjkzLTIuNjkgMi40LTQuMjJIMjB2LTEuM2gtNC41M1Y4aC0xLjI5djEuMjloLTEuNDRMMTEuNDYgNS41aDkuMDRjLjU1IDAgMSAuNDUgMSAxdjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNS4yNSA4LjA2OSAyLjgzLTIuODI3IDE0LjEzNCAxNC4xNS0yLjgzIDIuODI3ek05LjQ4NiAzLjgyNyAxMi4zMTQuOTk4bDUuNjU3IDUuNjU2LTIuODI4IDIuODN6TS45OTkgMTIuMzE1bDIuODI4LTIuODI5IDUuNjU3IDUuNjU3LTIuODI4IDIuODI4ek0xIDIxaDEydjJIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2VuZXJhdGluZ1Rva2VucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04LTMuNTgtOC04LTh6bTMgNi41aC0ydjVIOHYtNUg2VjloNnYxLjV6bTguMjUtNi43NUwyMyA1bC0yLjc1IDEuMjVMMTkgOWwtMS4yNS0yLjc1TDE1IDVsMi43NS0xLjI1TDE5IDFsMS4yNSAyLjc1em0wIDE0TDIzIDE5bC0yLjc1IDEuMjVMMTkgMjNsLTEuMjUtMi43NUwxNSAxOWwyLjc1LTEuMjVMMTkgMTVsMS4yNSAyLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHZXRBcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5aC00VjNIOXY2SDVsNyA3IDctN3pNNSAxOHYyaDE0di0ySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdpZkJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05LjUgMTN2LTFoMXYxYzAgLjU1LS40NSAxLTEgMWgtMWMtLjU1IDAtMS0uNDUtMS0xdi0yYzAtLjU1LjQ1LTEgMS0xaDFjLjU1IDAgMSAuNDUgMSAxaC0ydjJoMXptMyAxaC0xdi00aDF2NHptNC0zaC0ydi41SDE2djFoLTEuNVYxNGgtMXYtNGgzdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdpZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjUgOUgxM3Y2aC0xLjV6TTkgOUg2Yy0uNiAwLTEgLjUtMSAxdjRjMCAuNS40IDEgMSAxaDNjLjYgMCAxLS41IDEtMXYtMkg4LjV2MS41aC0ydi0zSDEwVjEwYzAtLjUtLjQtMS0xLTF6TTE5IDEwLjVWOWgtNC41djZIMTZ2LTJoMnYtMS41aC0ydi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmFkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE3LjI3IDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmFkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA3aDE2djJINFY3em0wIDZoMTZ2LTJINHYyem0wIDRoN3YtMkg0djJ6bTAgNGg3di0ySDR2MnptMTEuNDEtMi44M0wxNCAxNi43NWwtMS40MSAxLjQxTDE1LjQxIDIxIDIwIDE2LjQyIDE4LjU4IDE1bC0zLjE3IDMuMTd6TTQgM3YyaDE2VjNINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXBXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNOCAxNy41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1ek05LjUgOGEyLjUgMi41IDAgMCAxIDUgMCAyLjUgMi41IDAgMCAxLTUgMHptNi41IDkuNWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVscENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNi45OSAxNWMtLjcgMC0xLjI2LS41Ni0xLjI2LTEuMjYgMC0uNzEuNTYtMS4yNSAxLjI2LTEuMjUuNzEgMCAxLjI1LjU0IDEuMjUgMS4yNS0uMDEuNjktLjU0IDEuMjYtMS4yNSAxLjI2em0zLjAxLTcuNGMtLjc2IDEuMTEtMS40OCAxLjQ2LTEuODcgMi4xNy0uMTYuMjktLjIyLjQ4LS4yMiAxLjQxaC0xLjgyYzAtLjQ5LS4wOC0xLjI5LjMxLTEuOTguNDktLjg3IDEuNDItMS4zOSAxLjk2LTIuMTYuNTctLjgxLjI1LTIuMzMtMS4zNy0yLjMzLTEuMDYgMC0xLjU4LjgtMS44IDEuNDhsLTEuNjUtLjdDOS4wMSA3LjE1IDEwLjIyIDYgMTEuOTkgNmMxLjQ4IDAgMi40OS42NyAzLjAxIDEuNTIuNDQuNzIuNyAyLjA3LjAyIDMuMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlbHBPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMThoMnYtMmgtMnYyem0xLTE2QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMC0xNGMtMi4yMSAwLTQgMS43OS00IDRoMmMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgMi0zIDEuNzUtMyA1aDJjMC0yLjI1IDMtMi41IDMtNSAwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTdoLTJ2LTJoMnYyem0yLjA3LTcuNzUtLjkuOTJDMTMuNDUgMTIuOSAxMyAxMy41IDEzIDE1aC0ydi0uNWMwLTEuMS40NS0yLjEgMS4xNy0yLjgzbDEuMjQtMS4yNmMuMzctLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0ycy0yIC45LTIgMkg4YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAuODgtLjM2IDEuNjgtLjkzIDIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhpZGVTb3VyY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MUwyLjgxIDIuODF6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNDguNDEtMi44NiAxLjEyLTQuMDZsMTAuOTQgMTAuOTRDMTQuODYgMTkuNTkgMTMuNDggMjAgMTIgMjB6TTcuOTQgNS4xMiA2LjQ5IDMuNjZBOS45MSA5LjkxIDAgMCAxIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTAgMCAyLjA0LS42MSAzLjkzLTEuNjYgNS41MWwtMS40Ni0xLjQ2QTcuODY5IDcuODY5IDAgMCAwIDIwIDEyYzAtNC40MS0zLjU5LTgtOC04LTEuNDggMC0yLjg2LjQxLTQuMDYgMS4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlnaGxpZ2h0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNWgtMlYzaDJ2MnptLTIgMTZoMnYtMi41OUwxOS41OSAyMSAyMSAxOS41OSAxOC40MSAxN0gyMXYtMmgtNnY2em00LTEyaDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyem0tOCA4aDJ2LTJoLTJ2MnpNNyA1aDJWM0g3djJ6TTMgMTdoMnYtMkgzdjJ6bTIgNHYtMkgzYzAgMS4xLjkgMiAyIDJ6TTE5IDN2MmgyYzAtMS4xLS45LTItMi0yem0tOCAyaDJWM2gtMnYyek0zIDloMlY3SDN2MnptNCAxMmgydi0ySDd2MnptLTQtOGgydi0ySDN2MnptMC04aDJWM2MtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhpZ2hsaWdodE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDggMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlzdG9yeVRvZ2dsZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjEgMTkuMzcgMSAxLjc0Yy0uOTYuNDQtMi4wMS43My0zLjEuODR2LTIuMDJjLjc0LS4wOSAxLjQ0LS4yOCAyLjEtLjU2ek00LjA3IDEzSDIuMDVjLjExIDEuMS40IDIuMTQuODQgMy4xbDEuNzQtMWMtLjI4LS42Ni0uNDctMS4zNi0uNTYtMi4xek0xNS4xIDQuNjNsMS0xLjc0Yy0uOTYtLjQ0LTItLjczLTMuMS0uODR2Mi4wMmMuNzQuMDkgMS40NC4yOCAyLjEuNTZ6TTE5LjkzIDExaDIuMDJjLS4xMS0xLjEtLjQtMi4xNC0uODQtMy4xbC0xLjc0IDFjLjI4LjY2LjQ3IDEuMzYuNTYgMi4xek04LjkgMTkuMzdsLTEgMS43NGMuOTYuNDQgMi4wMS43MyAzLjEuODR2LTIuMDJjLS43NC0uMDktMS40NC0uMjgtMi4xLS41NnpNMTEgNC4wN1YyLjA1Yy0xLjEuMTEtMi4xNC40LTMuMS44NGwxIDEuNzRjLjY2LS4yOCAxLjM2LS40NyAyLjEtLjU2em03LjM2IDMuMSAxLjc0LTEuMDFjLS42My0uODctMS40LTEuNjQtMi4yNy0yLjI3bC0xLjAxIDEuNzRjLjU5LjQ1IDEuMS45NiAxLjU0IDEuNTR6TTQuNjMgOC45bC0xLjc0LTFjLS40NC45Ni0uNzMgMi0uODQgMy4xaDIuMDJjLjA5LS43NC4yOC0xLjQ0LjU2LTIuMXptMTUuMyA0LjFjLS4wOS43NC0uMjggMS40NC0uNTYgMi4xbDEuNzQgMWMuNDQtLjk2LjczLTIuMDEuODQtMy4xaC0yLjAyem0tMy4xIDUuMzYgMS4wMSAxLjc0Yy44Ny0uNjMgMS42NC0xLjQgMi4yNy0yLjI3bC0xLjc0LTEuMDFjLS40NS41OS0uOTYgMS4xLTEuNTQgMS41NHpNNy4xNyA1LjY0bC0xLTEuNzVjLS44OC42NC0xLjY0IDEuNC0yLjI3IDIuMjhsMS43NCAxLjAxYTcuNyA3LjcgMCAwIDEgMS41My0xLjU0ek01LjY0IDE2LjgzbC0xLjc0IDFjLjYzLjg3IDEuNCAxLjY0IDIuMjcgMi4yN2wxLjAxLTEuNzRhNy43IDcuNyAwIDAgMS0xLjU0LTEuNTN6TTEzIDdoLTJ2NS40MWw0LjI5IDQuMjkgMS40MS0xLjQxLTMuNy0zLjdWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNhOSA5IDAgMCAwLTkgOUgxbDMuODkgMy44OS4wNy4xNEw5IDEySDZjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgNy0zLjEzIDctNyA3Yy0xLjkzIDAtMy42OC0uNzktNC45NC0yLjA2bC0xLjQyIDEuNDJBOC45NTQgOC45NTQgMCAwIDAgMTMgMjFhOSA5IDAgMCAwIDAtMTh6bS0xIDV2NWw0LjI4IDIuNTQuNzItMS4yMS0zLjUtMi4wOFY4SDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIbHNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44MyAxNWgxLjY3Yy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUgxN3YtMWgydi41aDEuNXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFIMTl2MWgtMlYxM2gtMS4xN2wyIDJ6TTggMTAuODNWMTVINi41di0yLjVoLTJWMTVIM1Y5aDEuNXYyaDJWOS4zM0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxLTcuNi03LjZIMTB2LTIuMTdsLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi41IDlIOHY2SDYuNXYtMi41aC0yVjE1SDNWOWgxLjV2MmgyVjl6bTEwIDZoM2MuNTUgMCAxLS40NSAxLTF2LTEuNWMwLS41NS0uNDUtMS0xLTFIMTd2LTFoMnYuNWgxLjV2LTFjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2MS41YzAgLjU1LjQ1IDEgMSAxSDE5djFoLTJWMTNoLTEuNXYxYzAgLjU1LjQ1IDEgMSAxek0xNCAxNXYtMS41aC0yLjVWOUgxMHY2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvbWVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQgOXYxMmg1di03aDZ2N2g1Vjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvcml6b250YWxTcGxpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOWgxOHYtNkgzdjZ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3RlbENsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41OCAxMEgxbDYuMTcgNC40MUw0LjgzIDIyIDExIDE3LjMxIDE3LjE4IDIybC0yLjM1LTcuNTlMMjEgMTBoLTcuNThMMTEgMmwtMi40MiA4em0xMi43OCAxMi0xLjg2LTYuMDFMMjMuNjggMTNoLTMuNDRsLTMuMDggMi4yIDEuNDYgNC43MkwyMS4zNiAyMnpNMTcgOGwtMS44Mi02LTEuMDQgMy40NS43NyAyLjU1SDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3VyZ2xhc3NEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNGg4djMuNWwtMi44NCAyLjg0IDEuMjUgMS4yNUwxOCA4LjAxIDE3Ljk5IDhIMThWMkg2djEuMTdsMiAyek0yLjEgMi4xLjY5IDMuNTFsOC45IDguOUw2IDE2bC4wMS4wMUg2VjIyaDEydi0xLjE3bDIuNDkgMi40OSAxLjQxLTEuNDFMMi4xIDIuMXpNMTYgMjBIOHYtMy41bDIuODQtMi44NEwxNiAxOC44M1YyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG91cmdsYXNzRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMnY2aC4wMUw2IDguMDEgMTAgMTJsLTQgNCAuMDEuMDFINlYyMmgxMnYtNS45OWgtLjAxTDE4IDE2bC00LTQgNC0zLjk5LS4wMS0uMDFIMThWMkg2em0xMCAxNC41VjIwSDh2LTMuNWw0LTQgNCA0em0tNC01LTQtNFY0aDh2My41bC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXJnbGFzc0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMnY2aC4wMUw2IDguMDEgMTAgMTJsLTQgNCAuMDEuMDFINlYyMmgxMnYtNS45OWgtLjAxTDE4IDE2bC00LTQgNC0zLjk5LS4wMS0uMDFIMThWMkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIdG1sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDlINXY2SDMuNXYtMi41aC0yVjE1SDBWOWgxLjV2MmgyVjl6bTE0IDBIMTNjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNXYtNC41aDFWMTRIMTZ2LTMuNTFoMVYxNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xek0xMSA5SDZ2MS41aDEuNzVWMTVoMS41di00LjVIMTFWOXptMTMgNnYtMS41aC0yLjVWOUgyMHY2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEh0dHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSAxMWgtMlY5SDF2NmgxLjV2LTIuNWgyVjE1SDZWOUg0LjV2MnptMi41LS41aDEuNVYxNUgxMHYtNC41aDEuNVY5SDd2MS41em01LjUgMEgxNFYxNWgxLjV2LTQuNUgxN1Y5aC00LjV2MS41em05LTEuNUgxOHY2aDEuNXYtMmgyYy44IDAgMS41LS43IDEuNS0xLjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNXptMCAyLjVoLTJ2LTFoMnYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEh0dHBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0tNiA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMy4xLTlIOC45VjZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjEgMS43MSAwIDMuMSAxLjM5IDMuMSAzLjF2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1wb3J0YW50RGV2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTEuMDEgMTggMTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0uOTktMS0uOTl6TTIzIDIwaC01di03aDV2N3pNMjAgMkgyQy44OSAyIDAgMi44OSAwIDR2MTJhMiAyIDAgMCAwIDIgMmg3djJIN3YyaDh2LTJoLTJ2LTJoMnYtMkgyVjRoMTh2NWgyVjRhMiAyIDAgMCAwLTItMnptLTguMDMgN0wxMSA2bC0uOTcgM0g3bDIuNDcgMS43Ni0uOTQgMi45MSAyLjQ3LTEuOCAyLjQ3IDEuOC0uOTQtMi45MUwxNSA5aC0zLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbmZvT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjJoLTJWN3ptMCA0aDJ2NmgtMnYtNnptMS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5mbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZElucHV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMy4wMUgzYy0xLjEgMC0yIC45LTIgMlY5aDJWNC45OWgxOHYxNC4wM0gzVjE1SDF2NC4wMWMwIDEuMS45IDEuOTggMiAxLjk4aDE4YzEuMSAwIDItLjg4IDItMS45OHYtMTRhMiAyIDAgMCAwLTItMnpNMTEgMTZsNC00LTQtNHYzSDF2MmgxMHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnN0YWxsRGVza3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE3SDRWNWg4VjNINGMtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDR2Mmg4di0yaDRjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTQgNS01LTEuNDEtMS40MUwxOCAxMC4xN1YzaC0ydjcuMTdsLTIuNTktMi41OEwxMiA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnN0YWxsTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMThIN1Y2aDdWMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi01aC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDE0IDUtNS0xLjQxLTEuNDFMMTkgMTAuMTdWM2gtMnY3LjE3bC0yLjU5LTIuNThMMTMgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW50ZWdyYXRpb25JbnN0cnVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIuNzVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjMuNVwiLFwiclwiOlwiLjc1XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIzLjVcIixcInJcIjpcIi43NVwiLFwiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0uMTQgMC0uMjcuMDEtLjQuMDRhMi4wMDggMi4wMDggMCAwIDAtMS40NCAxLjE5Yy0uMS4yMy0uMTYuNDktLjE2Ljc3djE0YzAgLjI3LjA2LjU0LjE2Ljc4cy4yNS40NS40My42NGMuMjcuMjcuNjIuNDcgMS4wMS41NS4xMy4wMi4yNi4wMy40LjAzaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDExLjE3LTEuNDEgMS40Mkw2IDEybDMuNTktMy41OUwxMSA5LjgzIDguODMgMTIgMTEgMTQuMTd6bTEtOS45MmMtLjQxIDAtLjc1LS4zNC0uNzUtLjc1cy4zNC0uNzUuNzUtLjc1Ljc1LjM0Ljc1Ljc1LS4zNC43NS0uNzUuNzV6bTIuNDEgMTEuMzRMMTMgMTQuMTcgMTUuMTcgMTIgMTMgOS44M2wxLjQxLTEuNDJMMTggMTJsLTMuNTkgMy41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW52ZXJ0Q29sb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0LjgxVjE5Yy0zLjMxIDAtNi0yLjYzLTYtNS44NyAwLTEuNTYuNjItMy4wMyAxLjc1LTQuMTRMMTIgNC44MU02LjM1IDcuNTZDNC45IDguOTkgNCAxMC45NiA0IDEzLjEzIDQgMTcuNDggNy41OCAyMSAxMiAyMXM4LTMuNTIgOC03Ljg3YzAtMi4xNy0uOS00LjE0LTIuMzUtNS41N0wxMiAyIDYuMzUgNy41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSmF2YXNjcmlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0di0xaDEuNXYuNWgydi0xSDEzYy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MWgtMS41di0uNWgtMnYxSDE2Yy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXpNOSA5djQuNUg3LjV2LTFINnYxYzAgLjgzLjY3IDEuNSAxLjUgMS41SDljLjgzIDAgMS41LS42NyAxLjUtMS41VjlIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSm9pbkZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEyYzAtLjk3LjIzLTQuMTYgMy4wMy02LjVDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtMi44LTIuMzQtMy4wMy01LjUzLTMuMDMtNi41ek0xNiA1Yy0uOSAwLTEuNzUuMTktMi41My41IDIuOCAyLjM0IDMuMDMgNS41MyAzLjAzIDYuNSAwIC45Ny0uMjMgNC4xNi0zLjAzIDYuNS43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRKb2luSW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wNCAxNi44N2MtLjMzLjA4LS42OC4xMy0xLjA0LjEzLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTVjLjM2IDAgLjcxLjA1IDEuMDQuMTMuMzktLjU2Ljg4LTEuMTIgMS40OS0xLjYzQzkuNzUgNS4xOSA4LjkgNSA4IDVjLTMuODYgMC03IDMuMTQtNyA3czMuMTQgNyA3IDdjLjkgMCAxLjc1LS4xOSAyLjUzLS41LS42MS0uNTEtMS4xLTEuMDctMS40OS0xLjYzek0xNiA1Yy0uOSAwLTEuNzUuMTktMi41My41LjYxLjUxIDEuMSAxLjA3IDEuNDkgMS42My4zMy0uMDguNjgtLjEzIDEuMDQtLjEzIDIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1Yy0uMzYgMC0uNzEtLjA1LTEuMDQtLjEzLS4zOS41Ni0uODggMS4xMi0xLjQ5IDEuNjMuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSm9pbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEyYzAtLjk3LjIzLTQuMTYgMy4wMy02LjVDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtMi44LTIuMzQtMy4wMy01LjUzLTMuMDMtNi41ek0xNiA1Yy0uOSAwLTEuNzUuMTktMi41My41LjYxLjUxIDEuMSAxLjA3IDEuNDkgMS42My4zMy0uMDguNjgtLjEzIDEuMDQtLjEzIDIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1Yy0uMzYgMC0uNzEtLjA1LTEuMDQtLjEzLS4zOS41Ni0uODggMS4xMi0xLjQ5IDEuNjMuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSm9pblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwicnhcIjpcIjNcIixcInJ5XCI6XCI1Ljc0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTJjMCAuOTctLjIzIDQuMTYtMy4wMyA2LjUuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN2MtLjkgMC0xLjc1LjE5LTIuNTMuNSAyLjggMi4zNCAzLjAzIDUuNTMgMy4wMyA2LjV6TTggMTljLjkgMCAxLjc1LS4xOSAyLjUzLS41LS42MS0uNTEtMS4xLTEuMDctMS40OS0xLjYzLS4zMy4wOC0uNjguMTMtMS4wNC4xMy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01Yy4zNiAwIC43MS4wNSAxLjA0LjEzLjM5LS41Ni44OC0xLjEyIDEuNDktMS42M0M5Ljc1IDUuMTkgOC45IDUgOCA1Yy0zLjg2IDAtNyAzLjE0LTcgN3MzLjE0IDcgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYWJlbEltcG9ydGFudE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE5SDNsNC41LTdMMyA1aDEyYy42NSAwIDEuMjYuMzEgMS42My44NEwyMSAxMmwtNC4zNyA2LjE2Yy0uMzcuNTItLjk4Ljg0LTEuNjMuODR6bS04LjUtMkgxNWwzLjUtNUwxNSA3SDYuNWwzLjUgNS0zLjUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFiZWxJbXBvcnRhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuNSAxOC45OSAxMSAuMDFjLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjAuNSAxMmwtNC4zNy02LjE2Yy0uMzYtLjUxLS45Ni0uODQtMS42My0uODRsLTExIC4wMUw4LjM0IDEyIDMuNSAxOC45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFiZWxPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuMjUgMi43NSAxNyAxN0wxOSAyMWwtMi0ySDVjLTEuMSAwLTItLjktMi0yVjdjMC0uNTUuMjMtMS4wNS41OS0xLjQxTDIgNGwxLjI1LTEuMjV6TTIyIDEybC00LjM3LTYuMTZDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVIOGwxMSAxMSAzLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhYmVsT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6TTE2IDE3SDVWN2gxMWwzLjU1IDVMMTYgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjMgNS44NEMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNUw1IDUuMDFDMy45IDUuMDEgMyA1LjkgMyA3djEwYzAgMS4xLjkgMS45OSAyIDEuOTlMMTYgMTljLjY3IDAgMS4yNy0uMzMgMS42My0uODRMMjIgMTJsLTQuMzctNi4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFuZ3VhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem02LjkzIDZoLTIuOTVhMTUuNjUgMTUuNjUgMCAwIDAtMS4zOC0zLjU2QTguMDMgOC4wMyAwIDAgMSAxOC45MiA4ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41NkE3Ljk4NyA3Ljk4NyAwIDAgMSA1LjA4IDE2em0yLjk1LThINS4wOGE3Ljk4NyA3Ljk4NyAwIDAgMSA0LjMzLTMuNTZBMTUuNjUgMTUuNjUgMCAwIDAgOC4wMyA4ek0xMiAxOS45NmMtLjgzLTEuMi0xLjQ4LTIuNTMtMS45MS0zLjk2aDMuODJjLS40MyAxLjQzLTEuMDggMi43Ni0xLjkxIDMuOTZ6TTE0LjM0IDE0SDkuNjZjLS4wOS0uNjYtLjE2LTEuMzItLjE2LTIgMC0uNjguMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMiAwIC42OC0uMDcgMS4zNC0uMTYgMnptLjI1IDUuNTZjLjYtMS4xMSAxLjA2LTIuMzEgMS4zOC0zLjU2aDIuOTVhOC4wMyA4LjAzIDAgMCAxLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoN1YzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0ydjd6TTE0IDN2MmgzLjU5bC05LjgzIDkuODMgMS40MSAxLjQxTDE5IDYuNDFWMTBoMlYzaC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMZWFkZXJib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAyMUgyVjloNS41djEyem03LjI1LTE4aC01LjV2MThoNS41VjN6TTIyIDExaC01LjV2MTBIMjJWMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpZ2h0YnVsYkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTdjLS44MyAwLTEuNS0uNjctMS41LTEuNWgzYzAgLjgzLS42NyAxLjUtMS41IDEuNXptMy0yLjVIOVYxNWg2djEuNXptLS4wMy0yLjVIOS4wM0E0Ljk2NiA0Ljk2NiAwIDAgMSA3IDEwYzAtMi43NiAyLjI0LTUgNS01czUgMi4yNCA1IDVjMCAxLjY0LS44IDMuMDktMi4wMyA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWdodGJ1bGJPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMUg5djF6bTMtMTlDOC4xNCAyIDUgNS4xNCA1IDljMCAyLjM4IDEuMTkgNC40NyAzIDUuNzRWMTdjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTF2LTIuMjZjMS44MS0xLjI3IDMtMy4zNiAzLTUuNzQgMC0zLjg2LTMuMTQtNy03LTd6bTIgMTEuN1YxNmgtNHYtMi4zQzguNDggMTIuNjMgNyAxMS41MyA3IDljMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDIuNDktMS41MSAzLjY1LTMgNC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWdodGJ1bGIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDIxYzAgLjUuNCAxIDEgMWg0Yy42IDAgMS0uNSAxLTF2LTFIOXYxem0zLTE5QzguMSAyIDUgNS4xIDUgOWMwIDIuNCAxLjIgNC41IDMgNS43VjE3YzAgLjUuNCAxIDEgMWg2Yy42IDAgMS0uNSAxLTF2LTIuM2MxLjgtMS4zIDMtMy40IDMtNS43IDAtMy45LTMuMS03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGluZVN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNmg1di0ySDN2MnptNi41IDBoNXYtMmgtNXYyem02LjUgMGg1di0yaC01djJ6TTMgMjBoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMyAxMmg4di0ySDN2MnptMTAgMGg4di0yaC04djJ6TTMgNHY0aDE4VjRIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGluZVdlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTdoMTh2LTJIM3Yyem0wIDNoMTh2LTFIM3Yxem0wLTdoMTh2LTNIM3Yzem0wLTl2NGgxOFY0SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem00IDRoMTR2LTJIN3Yyem0wIDRoMTR2LTJIN3Yyek03IDd2MmgxNFY3SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2tDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuNSAxNC4yIDIuOSAxLjctLjggMS4zTDEzIDE1di01aDEuNXY0LjJ6TTIyIDE0YzAgNC40MS0zLjU5IDgtOCA4LTIuMDIgMC0zLjg2LS43Ni01LjI3LTJINGMtMS4xNSAwLTItLjg1LTItMlY5YzAtMS4xMi44OS0xLjk2IDItMnYtLjVDNCA0LjAxIDYuMDEgMiA4LjUgMmMyLjM0IDAgNC4yNCAxLjc5IDQuNDYgNC4wOC4zNC0uMDUuNjktLjA4IDEuMDQtLjA4IDQuNDEgMCA4IDMuNTkgOCA4ek02IDdoNXYtLjc0QTIuNTA5IDIuNTA5IDAgMCAwIDguNSA0IDIuNSAyLjUgMCAwIDAgNiA2LjVWN3ptMTQgN2MwLTMuMzEtMi42OS02LTYtNnMtNiAyLjY5LTYgNiAyLjY5IDYgNiA2IDYtMi42OSA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02LTloLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDEuOWMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9ja091dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtOWgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJIOC45VjZ6TTE4IDIwSDZWMTBoMTJ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2tQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMWMuNyAwIDEuMzcuMSAyIC4yOVYxMGMwLTEuMS0uOS0yLTItMmgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDYuMjZBNi45OTUgNi45OTUgMCAwIDEgMTggMTF6TTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2Mkg4LjlWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDJjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTguODMgMTggMTggMThzLTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXptMCA2Yy0xLjAzIDAtMS45NC0uNTItMi40OC0xLjMyLjczLS40MiAxLjU3LS42OCAyLjQ4LS42OHMxLjc1LjI2IDIuNDguNjhjLS41NC44LTEuNDUgMS4zMi0yLjQ4IDEuMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2tSZXNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNhOSA5IDAgMCAwLTkgOUgxbDQgNCA0LTRINmMwLTMuODYgMy4xNC03IDctN3M3IDMuMTQgNyA3LTMuMTQgNy03IDdjLTEuOSAwLTMuNjItLjc2LTQuODgtMS45OUw2LjcgMTguNDJBOC45ODIgOC45ODIgMCAwIDAgMTMgMjFhOSA5IDAgMCAwIDAtMTh6bTIgOHYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0tNiA5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptMy4xLTlIOC45VjZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjEgMS43MSAwIDMuMSAxLjM5IDMuMSAzLjF2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9naW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3IDkuNiA4LjRsMi42IDIuNkgydjJoMTAuMmwtMi42IDIuNkwxMSAxN2w1LTUtNS01em05IDEyaC04djJoOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yaC04djJoOHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9nb3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgNy0xLjQxIDEuNDFMMTguMTcgMTFIOHYyaDEwLjE3bC0yLjU4IDIuNThMMTcgMTdsNS01ek00IDVoOFYzSDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoOHYtMkg0VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExveWFsdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS40MSAxMS41OC05LTlDMTIuMDUgMi4yMiAxMS41NSAyIDExIDJINGMtMS4xIDAtMiAuOS0yIDJ2N2MwIC41NS4yMiAxLjA1LjU5IDEuNDJsOSA5Yy4zNi4zNi44Ni41OCAxLjQxLjU4LjU1IDAgMS4wNS0uMjIgMS40MS0uNTlsNy03Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDEgMC0uNTUtLjIzLTEuMDYtLjU5LTEuNDJ6TTUuNSA3QzQuNjcgNyA0IDYuMzMgNCA1LjVTNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNSA2LjMzIDcgNS41IDd6bTExLjc3IDguMjdMMTMgMTkuNTRsLTQuMjctNC4yN0EyLjUgMi41IDAgMCAxIDEwLjUgMTFjLjY5IDAgMS4zMi4yOCAxLjc3Ljc0bC43My43Mi43My0uNzNhMi41IDIuNSAwIDAgMSAzLjU0IDMuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hbmFnZUFjY291bnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC42NyAxMy4wMmMtLjIyLS4wMS0uNDQtLjAyLS42Ny0uMDItMi40MiAwLTQuNjguNjctNi42MSAxLjgyLS44OC41Mi0xLjM5IDEuNS0xLjM5IDIuNTNWMjBoOS4yNmE2Ljk2MyA2Ljk2MyAwIDAgMS0uNTktNi45OHpNMjAuNzUgMTZjMC0uMjItLjAzLS40Mi0uMDYtLjYzbDEuMTQtMS4wMS0xLTEuNzMtMS40NS40OWMtLjMyLS4yNy0uNjgtLjQ4LTEuMDgtLjYzTDE4IDExaC0ybC0uMyAxLjQ5Yy0uNC4xNS0uNzYuMzYtMS4wOC42M2wtMS40NS0uNDktMSAxLjczIDEuMTQgMS4wMWMtLjAzLjIxLS4wNi40MS0uMDYuNjNzLjAzLjQyLjA2LjYzbC0xLjE0IDEuMDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE2IDIxaDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMS4wMWMuMDMtLjIxLjA2LS40MS4wNi0uNjN6TTE3IDE4Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFuYWdlSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjY5IDE4LjM3IDEuMTQtMS0xLTEuNzMtMS40NS40OWMtLjMyLS4yNy0uNjgtLjQ4LTEuMDgtLjYzTDIwIDE0aC0ybC0uMyAxLjQ5Yy0uNC4xNS0uNzYuMzYtMS4wOC42M2wtMS40NS0uNDktMSAxLjczIDEuMTQgMWMtLjA4LjUtLjA4Ljc2IDAgMS4yNmwtMS4xNCAxIDEgMS43MyAxLjQ1LS40OWMuMzIuMjcuNjguNDggMS4wOC42M0wxOCAyNGgybC4zLTEuNDljLjQtLjE1Ljc2LS4zNiAxLjA4LS42M2wxLjQ1LjQ5IDEtMS43My0xLjE0LTFjLjA4LS41MS4wOC0uNzcgMC0xLjI3ek0xOSAyMWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTExIDd2NS40MWwyLjM2IDIuMzYgMS4wNC0xLjc5LTEuNC0xLjM5VjdoLTJ6bTEwIDVhOSA5IDAgMCAwLTktOUM5LjE3IDMgNi42NSA0LjMyIDUgNi4zNlY0SDN2Nmg2VjhINi4yNkE3LjAxIDcuMDEgMCAwIDEgMTIgNWMzLjg2IDAgNyAzLjE0IDcgN2gyem0tMTAuMTQgNi45MWMtMi45OS0uNDktNS4zNS0yLjktNS43OC01LjkxSDMuMDZjLjUgNC41IDQuMzEgOCA4Ljk0IDhoLjA3bC0xLjIxLTIuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmtBc1VucmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguODMgN2gtMi42TDEwLjUgNCA0IDcuNFYxN2MtMS4xIDAtMi0uOS0yLTJWNy4xN2MwLS41My4zMi0xLjA5LjgtMS4zNEwxMC41IDJsNy41NCAzLjgzYy40My4yMy43My43Ljc5IDEuMTd6TTIwIDhIN2MtMS4xIDAtMiAuOS0yIDJ2OWMwIDEuMS45IDIgMiAyaDEzYzEuMSAwIDItLjkgMi0ydi05YzAtMS4xLS45LTItMi0yem0wIDMuNjdMMTMuNSAxNSA3IDExLjY3VjEwbDYuNSAzLjMzTDIwIDEwdjEuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmt1bnJlYWRNYWlsYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0tNjE4LTMwMDBINzgyVjYwMEgtNjE4ek0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNkgxMHY2SDhWNGg2VjBINnY2SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2gxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lZGlhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDEyLTQgNC0xLjQxLTEuNDFMMTguMTcgMTNoLTUuMjNBOC45NzQgOC45NzQgMCAwIDEgOCAyMC4wNSAzLjAwNSAzLjAwNSAwIDAgMSA1IDIzYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zYy45NSAwIDEuNzguNDUgMi4zMyAxLjE0QTYuOTY5IDYuOTY5IDAgMCAwIDEwLjkxIDEzaC0zLjFDNy40IDE0LjE2IDYuMyAxNSA1IDE1Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zYzEuMyAwIDIuNC44NCAyLjgyIDJoMy4xYy0uMzItMi4yMy0xLjY5LTQuMS0zLjU5LTUuMTRDNi43OCA2LjU1IDUuOTUgNyA1IDcgMy4zNCA3IDIgNS42NiAyIDRzMS4zNC0zIDMtM2EyLjk5IDIuOTkgMCAwIDEgMi45OSAyLjk1QTguOTc0IDguOTc0IDAgMCAxIDEyLjkzIDExaDUuMjNsLTEuNTgtMS41OUwxOCA4bDQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWluaW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTloMTJ2Mkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlbFRyYWluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMy41YzAgMi0yLjUgMy41LTIuNSA1aC0yYzAtMS41LTIuNS0zLTIuNS01IDAtMS45MyAxLjU3LTMuNSAzLjUtMy41czMuNSAxLjU3IDMuNSAzLjV6bS0yLjUgNmgtMlYyMWgydi0xLjV6bTYtNi41YzAgMS42OC0uNTkgMy4yMS0xLjU4IDQuNDJsMS40MiAxLjQyYTguOTc4IDguOTc4IDAgMCAwLTEtMTIuNjhsLTEuNDIgMS40MkE2Ljk5MyA2Ljk5MyAwIDAgMSAxOSAxM3ptLTMtOC00LTR2M2E5IDkgMCAwIDAtOSA5YzAgMi4yMy44MiA0LjI3IDIuMTYgNS44NGwxLjQyLTEuNDJBNi45MzggNi45MzggMCAwIDEgNSAxM2MwLTMuODYgMy4xNC03IDctN3YzbDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya1BpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNC42NyAzLjQxIDYuMDkgMiA3LjVsOC41IDguNUg0djJoMTZ2LTJoLTYuNWw1LjE1LTUuMTVBMi41IDIuNSAwIDEgMCAxOS41IDYgMi41IDIuNSAwIDAgMCAxNyA4LjVjMCAuMzUuMDcuNjcuMi45N2wtNS4yIDUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV3TGFiZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxMi00LjM3IDYuMTZjLS4zNy41Mi0uOTguODQtMS42My44NGgtM3YtNkg5di0zSDNWN2MwLTEuMS45LTIgMi0yaDEwYy42NSAwIDEuMjYuMzEgMS42My44NEwyMSAxMnptLTExIDNIN3YtM0g1djNIMnYyaDN2M2gydi0zaDN2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5leHRQbGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNiAxMS45N2gtNWwyLjI2LTIuMjZhNC45NCA0Ljk0IDAgMCAwLTMuNzYtMS43NGMtMi4zNyAwLTQuMzUgMS42Ni00Ljg2IDMuODhsLS45Ni0uMzJjLjY0LTIuNjIgMy00LjU2IDUuODItNC41NiAxLjc4IDAgMy4zNy43OSA0LjQ3IDIuMDNMMTggOC45N3Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROaWdodGxpZ2h0Um91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDEyYzAtMy41NyAyLjItNi42MiA1LjMxLTcuODcuODktLjM2Ljc1LTEuNjktLjE5LTEuOS0xLjEtLjI0LTIuMjctLjMtMy40OC0uMTQtNC41MS42LTguMTIgNC4zMS04LjU5IDguODNDNC40NCAxNi45MyA5LjEzIDIyIDE1LjAxIDIyYy43MyAwIDEuNDMtLjA4IDIuMTItLjIzLjk1LS4yMSAxLjEtMS41My4yLTEuOUE4LjQ2IDguNDYgMCAwIDEgMTIuMDEgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vQWNjb3VudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4xOCAxMC45NGMuMi0uNDQuMzItLjkyLjMyLTEuNDRDMTUuNSA3LjU3IDEzLjkzIDYgMTIgNmMtLjUyIDAtMSAuMTItMS40NC4zMmw0LjYyIDQuNjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTNjLTIuMzIgMC00LjQ1LjgtNi4xNCAyLjEyQTcuOTU3IDcuOTU3IDAgMCAxIDQgMTJjMC0xLjg1LjYzLTMuNTUgMS42OS00LjlsMi44NiAyLjg2YTMuNDcgMy40NyAwIDAgMCAyLjk5IDIuOTlsMi4yIDIuMmMtLjU3LS4xLTEuMTUtLjE1LTEuNzQtLjE1em02LjMxIDEuOUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NC0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9pc2VBd2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE1aC0yYTEuMDAzIDEuMDAzIDAgMCAxLTEuOTUuMzJjLS4xNS0uNDQtLjQtMS4wOC0uOTMtMS42MWwtMS4zNi0xLjM2QzkuMjggMTEuODcgOSAxMS4xOSA5IDEwLjVhMi41IDIuNSAwIDAgMSA0Ljk1LS41aDIuMDJjLS4yNS0yLjI1LTIuMTYtNC00LjQ3LTRDOS4wMiA2IDcgOC4wMiA3IDEwLjVjMCAxLjIyLjQ5IDIuNDEgMS4zNSAzLjI3bDEuMzYgMS4zNmMuMTcuMTcuMzEuNDQuNDQuODJBMy4wMTMgMy4wMTMgMCAwIDAgMTMgMThjMS42NSAwIDMtMS4zNSAzLTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTMuNVwiLFwiY3lcIjpcIjEyLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjYgNi41OCAxLjU4IDEuMjZjLjM1LS41Ny43Ny0xLjEgMS4yNC0xLjU3TDQuODUgNS4wMmMtLjQ3LjQ3LS44OCAxLTEuMjUgMS41NnpNOS40NiA0LjQybC0uODctMS44MWMtLjYzLjIzLTEuMjQuNTItMS44Ljg3bC44NyAxLjgxYy41Ni0uMzYgMS4xNi0uNjUgMS44LS44N3pNNC40OSA5LjI2bC0xLjk2LS40NWMtLjIxLjYzLS4zNiAxLjI4LS40NCAxLjk1bDEuOTYuNDVhNy45IDcuOSAwIDAgMSAuNDQtMS45NXpNMjAuNCA2LjU4YTkuNCA5LjQgMCAwIDAtMS4yNS0xLjU2bC0xLjU4IDEuMjZjLjQ4LjQ3Ljg5Ljk5IDEuMjQgMS41N2wxLjU5LTEuMjd6TTQuMDQgMTIuNzlsLTEuOTYuNDVjLjA4LjY3LjIzIDEuMzMuNDQgMS45NWwxLjk3LS40NWMtLjIyLS42Mi0uMzgtMS4yNy0uNDUtMS45NXpNMTcuMjEgMy40OGMtLjU3LS4zNS0xLjE3LS42NC0xLjgtLjg3bC0uODcgMS44MWMuNjQuMjIgMS4yNC41MSAxLjguODdsLjg3LTEuODF6TTEzIDQuMDdWMi4wNWMtLjMzLS4wMy0uNjYtLjA1LTEtLjA1cy0uNjcuMDItMSAuMDV2Mi4wMmMuMzMtLjA0LjY2LS4wNyAxLS4wN3MuNjcuMDMgMSAuMDd6TTExIDE5LjkzdjIuMDJjLjMzLjAzLjY2LjA1IDEgLjA1cy42Ny0uMDIgMS0uMDV2LTIuMDJjLS4zMy4wNC0uNjYuMDctMSAuMDdzLS42Ny0uMDMtMS0uMDd6TTE5LjUxIDE0Ljc0bDEuOTcuNDVjLjIxLS42My4zNi0xLjI4LjQ0LTEuOTVsLTEuOTYtLjQ1Yy0uMDcuNjgtLjIzIDEuMzMtLjQ1IDEuOTV6TTE5Ljk2IDExLjIxbDEuOTYtLjQ1YTkuNjkgOS42OSAwIDAgMC0uNDQtMS45NWwtMS45Ny40NWMuMjIuNjIuMzggMS4yNy40NSAxLjk1ek0xNy41OCAxNy43M2wxLjU4IDEuMjZjLjQ3LS40OC44OC0xIDEuMjUtMS41NmwtMS41OC0xLjI2YTkuNCA5LjQgMCAwIDEtMS4yNSAxLjU2ek02Ljc5IDIwLjUyYy41Ny4zNSAxLjE3LjY0IDEuOC44N2wuODctMS44MWMtLjY0LS4yMi0xLjI0LS41MS0xLjgtLjg3bC0uODcgMS44MXpNMTQuNTQgMTkuNThsLjg3IDEuODFjLjYzLS4yMyAxLjI0LS41MiAxLjgtLjg3bC0uODctMS44MWMtLjU2LjM2LTEuMTYuNjUtMS44Ljg3ek0zLjYgMTcuNDJhOS40IDkuNCAwIDAgMCAxLjI1IDEuNTZsMS41OC0xLjI2YTcuODcgNy44NyAwIDAgMS0xLjI0LTEuNTdMMy42IDE3LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb2lzZUNvbnRyb2xPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzEuNDQgMCAyLjc5LjM4IDMuOTUgMS4wNUwxNy40IDMuNkMxNS44NSAyLjU5IDEzLjk5IDIgMTIgMnMtMy44NS41OS01LjQxIDEuNTlsMS40NSAxLjQ1QTguMDM0IDguMDM0IDAgMCAxIDEyIDR6TTIwIDEyYzAgMS40NC0uMzggMi43OS0xLjA1IDMuOTVsMS40NSAxLjQ1YzEuMDEtMS41NSAxLjYtMy40MSAxLjYtNS40cy0uNTktMy44NS0xLjU5LTUuNDFsLTEuNDUgMS40NUE4LjAzNCA4LjAzNCAwIDAgMSAyMCAxMnpNMTIgMjBjLTEuNDQgMC0yLjc5LS4zOC0zLjk1LTEuMDVMNi42IDIwLjRDOC4xNSAyMS40MSAxMC4wMSAyMiAxMiAyMnMzLjg1LS41OSA1LjQxLTEuNTlsLTEuNDUtMS40NUE4LjAzNCA4LjAzNCAwIDAgMSAxMiAyMHpNNCAxMmMwLTEuNDQuMzgtMi43OSAxLjA1LTMuOTVMMy41OSA2LjU5QzIuNTkgOC4xNSAyIDEwLjAxIDIgMTJzLjU5IDMuODUgMS41OSA1LjQxbDEuNDUtMS40NUE4LjAzNCA4LjAzNCAwIDAgMSA0IDEyek0xMS41IDZDOS4wMiA2IDcgOC4wMiA3IDEwLjVjMCAxLjIyLjQ5IDIuNDEgMS4zNSAzLjI3bDEuMzYgMS4zNmMuMTcuMTcuMzEuNDQuNDQuODJBMy4wMTMgMy4wMTMgMCAwIDAgMTMgMThjMS42NSAwIDMtMS4zNSAzLTNoLTJhMS4wMDMgMS4wMDMgMCAwIDEtMS45NS4zMmMtLjE1LS40NC0uNC0xLjA4LS45My0xLjYxbC0xLjM2LTEuMzZDOS4yOCAxMS44NyA5IDExLjE5IDkgMTAuNWEyLjUgMi41IDAgMCAxIDQuOTUtLjVoMi4wMmMtLjI1LTIuMjUtMi4xNi00LTQuNDctNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiMTIuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdEFjY2Vzc2libGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCAxMS4wNS0zLjQyLTMuNDJjLjMyLS4zNC43NC0uNTcgMS4yMy0uNjEuNDgtLjA0Ljg0LjA3IDEuMi4yNi4xOS4xLjM5LjIyLjYzLjQ2bDEuMjkgMS40M2MuOTggMS4wOCAyLjUzIDEuODUgNC4wNyAxLjgzdjJjLTEuNzUtLjAxLTMuNzEtLjg4LTUtMS45NXpNMTIgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTIuODEgMi44MSAxLjM5IDQuMjIgMTAgMTIuODNWMTVjMCAxLjEuOSAyIDIgMmgyLjE3bDUuNjEgNS42MSAxLjQxLTEuNDFMMi44MSAyLjgxek0xMCAyMGMtMS42NiAwLTMtMS4zNC0zLTMgMC0xLjMxLjg0LTIuNDEgMi0yLjgzVjEyLjFhNSA1IDAgMSAwIDUuOSA1LjloLTIuMDdjLS40MSAxLjE2LTEuNTIgMi0yLjgzIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdFN0YXJ0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNEg5VjhoMnY4em0xIDBWOGw1IDQtNSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RlQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0yIDE0aC0zdjNoLTJ2LTNIOHYtMmgzdi0zaDJ2M2gzdjJ6bS0zLTdWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT2ZmbGluZUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyLjAyYy01LjUxIDAtOS45OCA0LjQ3LTkuOTggOS45OHM0LjQ3IDkuOTggOS45OCA5Ljk4IDkuOTgtNC40NyA5Ljk4LTkuOThTMTcuNTEgMi4wMiAxMiAyLjAyek0xMS40OCAyMHYtNi4yNkg4TDEzIDR2Ni4yNmgzLjM1TDExLjQ4IDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPZmZsaW5lUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTUgMTZIN3YtMmgxMHYyem0tNi43LTRMNyAxMC43bDEuNC0xLjQgMS45IDEuOSA1LjMtNS4zTDE3IDcuMyAxMC4zIDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPbkRldmljZVRyYWluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTZoMnYxaC0yek0xMiAxMWMtMS4xIDAtMiAuOS0yIDIgMCAuNzQuNCAxLjM4IDEgMS43MnYuNzhoMnYtLjc4Yy42LS4zNSAxLS45OCAxLTEuNzIgMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEuMDEgNiAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE4IDE4SDZWNmgxMnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMDEgMTUuOTVjLjYyLS44My45OS0xLjg0Ljk5LTIuOTVzLS4zNy0yLjEyLS45OS0yLjk1bC0xLjA3IDEuMDdjLjM1LjU0LjU2IDEuMTkuNTYgMS44OHMtLjIxIDEuMzQtLjU2IDEuODhsMS4wNyAxLjA3ek05LjA2IDE0Ljg4Yy0uMzUtLjU0LS41Ni0xLjE5LS41Ni0xLjg4IDAtMS45MyAxLjU3LTMuNSAzLjUtMy41djEuMjVsMi4yNS0yLTIuMjUtMlY4Yy0yLjc2IDAtNSAyLjI0LTUgNSAwIDEuMTEuMzcgMi4xMi45OSAyLjk1bDEuMDctMS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT25saW5lUHJlZGljdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTEuNWMwIDItMi41IDMuNS0yLjUgNWgtMmMwLTEuNS0yLjUtMy0yLjUtNUM4LjUgOS41NyAxMC4wNyA4IDEyIDhzMy41IDEuNTcgMy41IDMuNXptLTIuNSA2aC0yVjE5aDJ2LTEuNXptOS01LjVjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDdsLTEuMDYgMS4wNkE4LjQ4MSA4LjQ4MSAwIDAgMSAyMC41IDEyYzAgMi4zNC0uOTUgNC40Ny0yLjQ5IDYuMDFsMS4wNiAxLjA2QTkuOTY5IDkuOTY5IDAgMCAwIDIyIDEyek0zLjUgMTJjMC0yLjM0Ljk1LTQuNDcgMi40OS02LjAxTDQuOTMgNC45M0E5Ljk2OSA5Ljk2OSAwIDAgMCAyIDEyYzAgMi43NiAxLjEyIDUuMjYgMi45MyA3LjA3bDEuMDYtMS4wNkE4LjQ4MSA4LjQ4MSAwIDAgMSAzLjUgMTJ6bTE0IDBjMCAxLjUyLS42MiAyLjg5LTEuNjEgMy44OWwxLjA2IDEuMDZBNi45NzYgNi45NzYgMCAwIDAgMTkgMTJjMC0xLjkzLS43OC0zLjY4LTIuMDUtNC45NWwtMS4wNiAxLjA2Yy45OSAxIDEuNjEgMi4zNyAxLjYxIDMuODl6TTcuMDUgMTYuOTVsMS4wNi0xLjA2Yy0xLTEtMS42MS0yLjM3LTEuNjEtMy44OXMuNjItMi44OSAxLjYxLTMuODlMNy4wNSA3LjA1QTYuOTc2IDYuOTc2IDAgMCAwIDUgMTJjMCAxLjkzLjc4IDMuNjggMi4wNSA0Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGFjaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAwSDB2MjRoMjRWMHptMCAwSDB2MjRoMjRWMHpNMCAyNGgyNFYwSDB2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjY2IDggMTIgMi4zNSA2LjM0IDhBOC4wMiA4LjAyIDAgMCAwIDQgMTMuNjRjMCAyIC43OCA0LjExIDIuMzQgNS42N2E3Ljk5IDcuOTkgMCAwIDAgMTEuMzIgMGMxLjU2LTEuNTYgMi4zNC0zLjY3IDIuMzQtNS42N1MxOS4yMiA5LjU2IDE3LjY2IDh6TTYgMTRjLjAxLTIgLjYyLTMuMjcgMS43Ni00LjRMMTIgNS4yN2w0LjI0IDQuMzhDMTcuMzggMTAuNzcgMTcuOTkgMTIgMTggMTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3BlbkluQnJvd3NlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYtMkg1VjhoMTR2MTBoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptLTcgNi00IDRoM3Y2aDJ2LTZoM2wtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPcGVuSW5GdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTFWM2gtOGwzLjI5IDMuMjktMTAgMTBMMyAxM3Y4aDhsLTMuMjktMy4yOSAxMC0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3BlbkluTmV3T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNzkgNS44IDE0IDNoN3Y3bC0yLjc5LTIuOC00LjA5IDQuMDktMS40MS0xLjQxIDQuMDgtNC4wOHpNMTkgMTJ2NC4xN2wyIDJWMTJoLTJ6bS43OCAxMC42MUwxOC4xNyAyMUg1YTIgMiAwIDAgMS0yLTJWNS44M0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTE2LjE3IDE5bC00Ljg4LTQuODgtMS41OSAxLjU5LTEuNDEtMS40MSAxLjU5LTEuNTlMNSA3LjgzVjE5aDExLjE3ek03LjgzIDVIMTJWM0g1LjgzbDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3BlbkluTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3BlbldpdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMi01LTV2M2gtM3Y0aDN2M2w1LTV6bS05IDNoLTR2M0g3bDUgNSA1LTVoLTN2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGJvbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xLjg4IDkuNTRMOC45MiAxNi41bC0xLjQxLTEuNDEgNC45Ni00Ljk2TDEwLjM0IDhsNS42NS4wMS4wMSA1LjY1LTIuMTItMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0Ym91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xLjg4IDkuNTRMOC45MiAxNi41bC0xLjQxLTEuNDEgNC45Ni00Ljk2TDEwLjM0IDhsNS42NS4wMS4wMSA1LjY1LTIuMTItMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0Ym94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDQuOTljLTEuMTEgMC0xLjk4LjktMS45OCAyTDMgMTljMCAxLjEuODggMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxMmgtNGMwIDEuNjYtMS4zNSAzLTMgM3MtMy0xLjM0LTMtM0g0Ljk5VjVIMTl2MTB6TTggMTFoMnYzaDR2LTNoMmwtNC00LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0Z29pbmdNYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxMWMuMTcgMCAuMzQuMDEuNS4wM1Y2Ljg3QzE5IDUuODQgMTguMTYgNSAxNy4xMyA1SDMuODdDMi44NCA1IDIgNS44NCAyIDYuODd2MTAuMjZDMiAxOC4xNiAyLjg0IDE5IDMuODcgMTloOS43M2MtLjM4LS43NS0uNi0xLjYtLjYtMi41IDAtMy4wNCAyLjQ2LTUuNSA1LjUtNS41em0tOC4xIDJMNCA5LjE5VjdoLjIzbDYuMTggMy42OEwxNi43NCA3SDE3djIuMTZMMTAuNCAxM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMTMtMS40MSAxLjQxTDE5LjE3IDE2SDE1djJoNC4xN2wtMS41OCAxLjU5TDE5IDIxbDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNOSAxMmMtLjU1IDAtMS0uNDUtMS0xVjhjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjNjMCAuNTUtLjQ1IDEtMSAxem01IDZoLTR2LTJjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYyem0yLTdjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFWOGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0cHV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTcgNS01LTUtNS0xLjQxIDEuNDFMMTguMTcgMTFIOXYyaDkuMTdsLTIuNTggMi41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDE0djJoMlY1YTIgMiAwIDAgMC0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhZ2V2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA5YTIuNSAyLjUgMCAwIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01ek0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTMuMjEgMTQuMjEtMi45MS0yLjkxYy0uNjkuNDQtMS41MS43LTIuMzkuN0M5LjAxIDE2IDcgMTMuOTkgNyAxMS41UzkuMDEgNyAxMS41IDcgMTYgOS4wMSAxNiAxMS41YzAgLjg4LS4yNiAxLjY5LS43IDIuMzlsMi45MSAyLjktMS40MiAxLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLjg4IDE1Ljc2VjE5aC0xLjc1di0xLjI5Yy0uNzQtLjE4LTIuMzktLjc3LTMuMDItMi45NmwxLjY1LS42N2MuMDYuMjIuNTggMi4wOSAyLjQgMi4wOS45MyAwIDEuOTgtLjQ4IDEuOTgtMS42MSAwLS45Ni0uNy0xLjQ2LTIuMjgtMi4wMy0xLjEtLjM5LTMuMzUtMS4wMy0zLjM1LTMuMzEgMC0uMS4wMS0yLjQgMi42Mi0yLjk2VjVoMS43NXYxLjI0YzEuODQuMzIgMi41MSAxLjc5IDIuNjYgMi4yM2wtMS41OC42N2MtLjExLS4zNS0uNTktMS4zNC0xLjktMS4zNC0uNyAwLTEuODEuMzctMS44MSAxLjM5IDAgLjk1Ljg2IDEuMzEgMi42NCAxLjkgMi40LjgzIDMuMDEgMi4wNSAzLjAxIDMuNDUgMCAyLjYzLTIuNSAzLjEzLTMuMDIgMy4yMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFuVG9vbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljk4IDE0LjgyLS42MyA0LjQ2Yy0uMTQuOTktLjk5IDEuNzItMS45OCAxLjcyaC02LjE2Yy0uNTMgMC0xLjI5LS4yMS0xLjY2LS41OUw1IDE1LjYybC44My0uODRjLjI0LS4yNC41OC0uMzUuOTItLjI4bDMuMjUuNzRWNC41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41djZoLjkxYy4zMSAwIC42Mi4wNy44OS4yMWw0LjA5IDIuMDRjLjc3LjM5IDEuMjEgMS4yMiAxLjA5IDIuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhblRvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA1LjVWMjBjMCAyLjItMS44IDQtNCA0aC03LjNjLTEuMDggMC0yLjEtLjQzLTIuODUtMS4xOUwxIDE0LjgzczEuMjYtMS4yMyAxLjMtMS4yNWMuMjItLjE5LjQ5LS4yOS43OS0uMjkuMjIgMCAuNDIuMDYuNi4xNi4wNC4wMSA0LjMxIDIuNDYgNC4zMSAyLjQ2VjRjMC0uODMuNjctMS41IDEuNS0xLjVTMTEgMy4xNyAxMSA0djdoMVYxLjVjMC0uODMuNjctMS41IDEuNS0xLjVTMTUgLjY3IDE1IDEuNVYxMWgxVjIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxMWgxVjUuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGF5bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDR2LTZoMTZ2NnptMC0xMEg0VjZoMTZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVuZGluZ0FjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTEuNjUgNy4zNUwxNi41IDE3LjJWMTRoMXYyLjc5bDEuODUgMS44NS0uNy43MXpNMTggM2gtMy4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINmMtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg2LjExYTYuNzQzIDYuNzQzIDAgMCAxLTEuNDItMkg2VjVoMnYzaDhWNWgydjUuMDhjLjcxLjEgMS4zOC4zMSAyIC42VjVjMC0xLjEtLjktMi0yLTJ6bS02IDJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVuZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTcgMTMuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcmNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTFDOS40MyAxMSAxMSA5LjQzIDExIDcuNVM5LjQzIDQgNy41IDQgNCA1LjU3IDQgNy41IDUuNTcgMTEgNy41IDExem0wLTVDOC4zMyA2IDkgNi42NyA5IDcuNVM4LjMzIDkgNy41IDkgNiA4LjMzIDYgNy41IDYuNjcgNiA3LjUgNnpNNC4wMDIgMTguNTgzIDE4LjU5IDMuOTk2bDEuNDE0IDEuNDE0TDUuNDE3IDE5Ljk5N3pNMTYuNSAxM2MtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNSAzLjUtMS41NyAzLjUtMy41LTEuNTctMy41LTMuNS0zLjV6bTAgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1DYW1lcmFNaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3di0yLjA5Yy0yLjgzLS40OC01LTIuOTQtNS01LjkxaDJjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGgyYzAgMi45Ny0yLjE3IDUuNDMtNSA1LjkxVjIxaDdjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTYgOGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yczIgLjkgMiAydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1Db250YWN0Q2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDNjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem02IDEySDZ2LTFjMC0yIDQtMy4xIDYtMy4xczYgMS4xIDYgMy4xdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1EYXRhU2V0dGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljk5IDExLjVjLjM0IDAgLjY3LjAzIDEgLjA3TDIwIDAgMCAyMGgxMS41NmMtLjA0LS4zMy0uMDctLjY2LS4wNy0xIDAtNC4xNCAzLjM2LTcuNSA3LjUtNy41em0zLjcxIDcuOTljLjAyLS4xNi4wNC0uMzIuMDQtLjQ5IDAtLjE3LS4wMS0uMzMtLjA0LS40OWwxLjA2LS44M2EuMjYuMjYgMCAwIDAgLjA2LS4zMmwtMS0xLjczYy0uMDYtLjExLS4xOS0uMTUtLjMxLS4xMWwtMS4yNC41Yy0uMjYtLjItLjU0LS4zNy0uODUtLjQ5bC0uMTktMS4zMmMtLjAxLS4xMi0uMTItLjIxLS4yNC0uMjFoLTJjLS4xMiAwLS4yMy4wOS0uMjUuMjFsLS4xOSAxLjMyYy0uMy4xMy0uNTkuMjktLjg1LjQ5bC0xLjI0LS41Yy0uMTEtLjA0LS4yNCAwLS4zMS4xMWwtMSAxLjczYy0uMDYuMTEtLjA0LjI0LjA2LjMybDEuMDYuODNhMy45MDggMy45MDggMCAwIDAgMCAuOThsLTEuMDYuODNhLjI2LjI2IDAgMCAwLS4wNi4zMmwxIDEuNzNjLjA2LjExLjE5LjE1LjMxLjExbDEuMjQtLjVjLjI2LjIuNTQuMzcuODUuNDlsLjE5IDEuMzJjLjAyLjEyLjEyLjIxLjI1LjIxaDJjLjEyIDAgLjIzLS4wOS4yNS0uMjFsLjE5LTEuMzJjLjMtLjEzLjU5LS4yOS44NC0uNDlsMS4yNS41Yy4xMS4wNC4yNCAwIC4zMS0uMTFsMS0xLjczYS4yNi4yNiAwIDAgMC0uMDYtLjMybC0xLjA3LS44M3ptLTMuNzEgMS4wMWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1EZXZpY2VJbmZvcm1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnY2aDJ2LTZ6bTQtOS45OUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJtSWRlbnRpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1LjlhMi4xIDIuMSAwIDEgMSAwIDQuMiAyLjEgMi4xIDAgMCAxIDAtNC4ybTAgOWMyLjk3IDAgNi4xIDEuNDYgNi4xIDIuMXYxLjFINS45VjE3YzAtLjY0IDMuMTMtMi4xIDYuMS0yLjFNMTIgNEM5Ljc5IDQgOCA1Ljc5IDggOHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA5Yy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJtTWVkaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZIMHY1aC4wMUwwIDIwYzAgMS4xLjkgMiAyIDJoMTh2LTJIMlY2em0yMC0yaC04bC0yLTJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNyAxNWw0LjUtNiAzLjUgNC41MSAyLjUtMy4wMUwyMSAxNUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJtUGhvbmVNc2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2ExLjAyIDEuMDIgMCAwIDAtMS4wMi4yNGwtMi4yIDIuMmExNS4wNzQgMTUuMDc0IDAgMCAxLTYuNTktNi41OGwyLjItMi4yMWMuMjgtLjI3LjM2LS42Ni4yNS0xLjAxQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek0xMiAzdjEwbDMtM2g2VjNoLTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcm1TY2FuV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNDNi45NSAzIDMuMTUgNC44NSAwIDcuMjNMMTIgMjIgMjQgNy4yNUMyMC44NSA0Ljg3IDE3LjA1IDMgMTIgM3ptMSAxM2gtMnYtNmgydjZ6bS0yLThWNmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjQuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4zNCAxNC44NmMtLjg3LTEuMDItMS42LTEuODktMi40OC0yLjkxLS40Ni0uNTQtMS4wNS0xLjA4LTEuNzUtMS4zMi0uMTEtLjA0LS4yMi0uMDctLjMzLS4wOS0uMjUtLjA0LS41Mi0uMDQtLjc4LS4wNHMtLjUzIDAtLjc5LjA1Yy0uMTEuMDItLjIyLjA1LS4zMy4wOS0uNy4yNC0xLjI4Ljc4LTEuNzUgMS4zMi0uODcgMS4wMi0xLjYgMS44OS0yLjQ4IDIuOTEtMS4zMSAxLjMxLTIuOTIgMi43Ni0yLjYyIDQuNzkuMjkgMS4wMiAxLjAyIDIuMDMgMi4zMyAyLjMyLjczLjE1IDMuMDYtLjQ0IDUuNTQtLjQ0aC4xOGMyLjQ4IDAgNC44MS41OCA1LjU0LjQ0IDEuMzEtLjI5IDIuMDQtMS4zMSAyLjMzLTIuMzIuMzEtMi4wNC0xLjMtMy40OS0yLjYxLTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOWgxLjV2NkgxM3YtMi41aC0yVjE1SDkuNVY5SDExdjJoMlY5em0tNSAxLjV2MWMwIC44LS43IDEuNS0xLjUgMS41aC0ydjJIM1Y5aDMuNWMuOCAwIDEuNS43IDEuNSAxLjV6bS0xLjUgMGgtMnYxaDJ2LTF6bTE1IDB2MWMwIC44LS43IDEuNS0xLjUgMS41aC0ydjJoLTEuNVY5SDIwYy44IDAgMS41LjcgMS41IDEuNXptLTEuNSAwaC0ydjFoMnYtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGljdHVyZUluUGljdHVyZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTFoLTh2Nmg4di02em00IDhWNC45OEMyMyAzLjg4IDIyLjEgMyAyMSAzSDNjLTEuMSAwLTIgLjg4LTIgMS45OFYxOWMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yem0tMiAuMDJIM1Y0Ljk3aDE4djE0LjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaWN0dXJlSW5QaWN0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN2gtOHY2aDhWN3ptMi00SDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4VjVjMC0xLjEtLjktMi0yLTJ6bTAgMTYuMDFIM1Y0Ljk4aDE4djE0LjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaW5FbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMlY2SDR2MTJoMTB2Mkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJ2NmgtMnptLTEgMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bS00LjM0LTZIOXY1LjY2bDIuMTItMi4xMiAyLjgzIDIuODMgMS40MS0xLjQxLTIuODMtMi44M0wxNC42NiA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaW5JbnZva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMnY2YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxMHYySDR2MTJoMTZ2LTZoMnptMC01YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3ptLTEwLjUzIDUuMTItMi44MyAyLjgzIDEuNDEgMS40MSAyLjgzLTIuODNMMTUgMTUuNjZWMTBIOS4zNGwyLjEzIDIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpbmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyLjVWMWg1djVIOS41VjMuNTZMMy41NiA5LjVINlYxMUgxVjZoMS41djIuNDRMOC40NCAyLjVINnptMTYuOTggMTQuMzItLjYzIDQuNDZjLS4xNC45OS0uOTkgMS43Mi0xLjk4IDEuNzJoLTYuMTZjLS41MyAwLTEuMjktLjIxLTEuNjYtLjU5TDggMTcuNjJsLjgzLS44NGMuMjQtLjI0LjU4LS4zNS45Mi0uMjhsMy4yNS43NFY2LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2NmguOTFjLjMxIDAgLjYyLjA3Ljg5LjIxbDQuMDkgMi4wNGMuNzcuMzkgMS4yMSAxLjIyIDEuMDkgMi4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxhZ2lhcmlzbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0xLjA0IDE3LjQ1LTEuODgtMS44OGMtMS4zMy43MS0zLjAxLjUzLTQuMTMtLjU5YTMuNDk1IDMuNDk1IDAgMCAxIDAtNC45NSAzLjQ5NSAzLjQ5NSAwIDAgMSA0Ljk1IDAgMy40OCAzLjQ4IDAgMCAxIC41OSA0LjEzbDEuODggMS44OC0xLjQxIDEuNDF6TTEzIDlWMy41TDE4LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMS41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlGb3JXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNXY1LjU5SDcuNWw0LjUgNC41IDQuNS00LjVIMTNWNWgtMnptLTUgOWMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02aC0yYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvbHltZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0aC00TDcuMTEgMTYuNjMgNC41IDEyIDkgNEg1TC41IDEyIDUgMjBoNGw3Ljg5LTEyLjYzTDE5LjUgMTIgMTUgMjBoNGw0LjUtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG93ZXJTZXR0aW5nc05ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNoLTJ2MTBoMlYzem00LjgzIDIuMTctMS40MiAxLjQyQTYuOTIgNi45MiAwIDAgMSAxOSAxMmMwIDMuODctMy4xMyA3LTcgN0E2Ljk5NSA2Ljk5NSAwIDAgMSA3LjU4IDYuNThMNi4xNyA1LjE3QTguOTMyIDguOTMyIDAgMCAwIDMgMTJhOSA5IDAgMCAwIDE4IDBjMC0yLjc0LTEuMjMtNS4xOC0zLjE3LTYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByZWduYW50V29tYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRjMC0xLjExLjg5LTIgMi0yczIgLjg5IDIgMi0uODkgMi0yIDItMi0uODktMi0yem03IDlhMy4yODUgMy4yODUgMCAwIDAtMi0zYzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzdjdoMnY1aDN2LTVoM3YtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJldmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE2SDVWN2gxNHYxMnptLTUuNS02YzAgLjgzLS42NyAxLjUtMS41IDEuNXMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41ek0xMiA5Yy0yLjczIDAtNS4wNiAxLjY2LTYgNCAuOTQgMi4zNCAzLjI3IDQgNiA0czUuMDYtMS42NiA2LTRjLS45NC0yLjM0LTMuMjctNC02LTR6bTAgNi41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDhINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3ptLTMgMTFIOHYtNWg4djV6bTMtN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMS05SDZ2NGgxMlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcml2YWN5VGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bS0xIDZoMnYyaC0yVjd6bTAgNGgydjZoLTJ2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaXZhdGVDb25uZWN0aXZpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MyAxMWMtLjQ5LTMuMzktMy40LTYtNi45My02cy02LjQ0IDIuNjEtNi45MyA2SDJ2MmgzLjA3Yy40OSAzLjM5IDMuNCA2IDYuOTMgNnM2LjQ0LTIuNjEgNi45My02SDIydi0yaC0zLjA3ek0xNSAxNC41YzAgLjU1LS40NSAxLTEgMWgtNGMtLjU1IDAtMS0uNDUtMS0xdi0zYzAtLjU1LjQ1LTEgMS0xdi0xYTIgMiAwIDAgMSAyLjM0LTEuOTdjLjk4LjE2IDEuNjYgMS4wOCAxLjY2IDIuMDh2Ljg5Yy41NSAwIDEgLjQ1IDEgMXYzek0xMi43NSAxM2MwIC40MS0uMzQuNzUtLjc1Ljc1cy0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NS43NS4zNC43NS43NXpNMTMgOS41djFoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcm9kdWN0aW9uUXVhbnRpdHlMaW1pdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMGgtMlY4aDJ2MnptMC00aC0yVjFoMnY1ek03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yem0xMCAwYy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnptLTguOS01aDcuNDVjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzTDIxIDQuOTYgMTkuMjUgNGwtMy43IDdIOC41M0w0LjI3IDJIMXYyaDJsMy42IDcuNTktMS4zNSAyLjQ0QzQuNTIgMTUuMzcgNS40OCAxNyA3IDE3aDEydi0ySDdsMS4xLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFB1Ymxpc2hlZFdpdGhDaGFuZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNjYgOS41My03LjA3IDcuMDctNC4yNC00LjI0IDEuNDEtMS40MSAyLjgzIDIuODMgNS42Ni01LjY2IDEuNDEgMS40MXpNNCAxMmMwLTIuMzMgMS4wMi00LjQyIDIuNjItNS44OEw5IDguNXYtNkgzbDIuMiAyLjJDMy4yNCA2LjUyIDIgOS4xMSAyIDEyYzAgNS4xOSAzLjk1IDkuNDUgOSA5Ljk1di0yLjAyYy0zLjk0LS40OS03LTMuODYtNy03Ljkzem0xOCAwYzAtNS4xOS0zLjk1LTkuNDUtOS05Ljk1djIuMDJjMy45NC40OSA3IDMuODYgNyA3LjkzIDAgMi4zMy0xLjAyIDQuNDItMi42MiA1Ljg4TDE1IDE1LjV2Nmg2bC0yLjItMi4yYzEuOTYtMS44MiAzLjItNC40MSAzLjItNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWVyeUJ1aWxkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgN0gxMXY2bDUuMjUgMy4xNS43NS0xLjIzLTQuNS0yLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWVzdGlvbkFuc3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZoLTJ2OUg2djJjMCAuNTUuNDUgMSAxIDFoMTFsNCA0VjdjMC0uNTUtLjQ1LTEtMS0xem0tNCA2VjNjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXYxNGw0LTRoMTBjLjU1IDAgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWVzdGlvbk1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wNyAxMi44NWMuNzctMS4zOSAyLjI1LTIuMjEgMy4xMS0zLjQ0LjkxLTEuMjkuNC0zLjctMi4xOC0zLjctMS42OSAwLTIuNTIgMS4yOC0yLjg3IDIuMzRMNi41NCA2Ljk2QzcuMjUgNC44MyA5LjE4IDMgMTEuOTkgM2MyLjM1IDAgMy45NiAxLjA3IDQuNzggMi40MS43IDEuMTUgMS4xMSAzLjMuMDMgNC45LTEuMiAxLjc3LTIuMzUgMi4zMS0yLjk3IDMuNDUtLjI1LjQ2LS4zNS43Ni0uMzUgMi4yNGgtMi44OWMtLjAxLS43OC0uMTMtMi4wNS40OC0zLjE1ek0xNCAyMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1aWNrcmVwbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoOXYtOGg3VjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjUgMTZoLTIuMmwxLjctNGgtNXY2aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmViYXNlRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTlcIixcImN5XCI6XCI1XCIsXCJyXCI6XCIzXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjc2IDkuMjQgMTUgNSAxMC43Ni43NiA5LjM0IDIuMTcgMTEuMTcgNEg3LjgyQzcuNCAyLjg0IDYuMyAyIDUgMiAzLjM0IDIgMiAzLjM0IDIgNWMwIDEuMy44NCAyLjQgMiAyLjgydjguMzdDMi44NCAxNi42IDIgMTcuNyAyIDE5YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNjMC0xLjMtLjg0LTIuNC0yLTIuODJWNy44MmMuODUtLjMxIDEuNTEtLjk3IDEuODItMS44MmgzLjM2TDkuMzQgNy44M2wxLjQyIDEuNDF6TTEwIDE5djNoM2w2LjI2LTYuMjYtMy0zek0yMC4xMiAxMC4yOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuMzggMS4zOCAzIDMgMS4zOC0xLjM4YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMS41OS0xLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWNlaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTdINnYtMmgxMnYyem0wLTRINnYtMmgxMnYyem0wLTRINlY3aDEydjJ6TTMgMjJsMS41LTEuNUw2IDIybDEuNS0xLjVMOSAyMmwxLjUtMS41TDEyIDIybDEuNS0xLjVMMTUgMjJsMS41LTEuNUwxOCAyMmwxLjUtMS41TDIxIDIyVjJsLTEuNSAxLjVMMTggMmwtMS41IDEuNUwxNSAybC0xLjUgMS41TDEyIDJsLTEuNSAxLjVMOSAyIDcuNSAzLjUgNiAyIDQuNSAzLjUgMyAydjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWNvcmRWb2ljZU92ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCI5XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTVjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6bTcuNzYtOS42NC0xLjY4IDEuNjljLjg0IDEuMTguODQgMi43MSAwIDMuODlsMS42OCAxLjY5YzIuMDItMi4wMiAyLjAyLTUuMDcgMC03LjI3ek0yMC4wNyAybC0xLjYzIDEuNjNjMi43NyAzLjAyIDIuNzcgNy41NiAwIDEwLjc0TDIwLjA3IDE2YzMuOS0zLjg5IDMuOTEtOS45NSAwLTE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWRlZW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTFhMi45OTYgMi45OTYgMCAwIDAtNS41LTEuNjVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEuNzkgMTIgNS41OCA1LjU5TDUuOTYgMTkgLjM3IDEzLjQxIDEuNzkgMTJ6bS40NS03Ljc4TDEyLjkgMTQuODlsLTEuMjggMS4yOEw3LjQ0IDEybC0xLjQxIDEuNDFMMTEuNjIgMTlsMi42OS0yLjY5IDQuODkgNC44OSAxLjQxLTEuNDFMMy42NSAyLjgxIDIuMjQgNC4yMnptMTQuOSA5LjI3TDIzLjYyIDcgMjIuMiA1LjU5bC02LjQ4IDYuNDggMS40MiAxLjQyek0xNy45NiA3bC0xLjQxLTEuNDEtMy42NSAzLjY2IDEuNDEgMS40MUwxNy45NiA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmVTaG9wcGluZ0NhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi43MyAyMi43MyAyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOEExLjk5NyAxLjk5NyAwIDAgMCAxNyAyMmMuNjcgMCAxLjI2LS4zMyAxLjYyLS44NEwyMS40NiAyNGwxLjI3LTEuMjd6TTcuNDIgMTVjLS4xNCAwLS4yNS0uMTEtLjI1LS4yNWwuMDMtLjEyLjktMS42M2gyLjM2bDIgMkg3LjQyem04LjEzLTJjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuNTgtNi40OUExLjAwMyAxLjAwMyAwIDAgMCAyMCA0SDYuNTRsOS4wMSA5ek03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNWgxOHYtMkgzdjJ6bTAgNGgxOHYtMkgzdjJ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBhcnRpdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTZIM3Y2em03LjMzLTJ2LTJoMy4zM3YyaC0zLjMzek0xOSAxOWgtMy4zM3YtMkgxOXYyek01IDE3aDMuMzN2Mkg1di0yek02IDEwbDEuNDItMS40Mkw1LjgzIDdIMTdjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAySDN2MmgxNGMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNEg1LjgzbDEuNTktMS41OUw2IDIgMiA2bDQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwb3J0UHJvYmxlbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVxdWVzdFBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0xIDloLTR2MWgzYy41NSAwIDEgLjQ1IDEgMXYzYzAgLjU1LS40NSAxLTEgMWgtMXYxaC0ydi0xSDl2LTJoNHYtMWgtM2MtLjU1IDAtMS0uNDUtMS0xdi0zYzAtLjU1LjQ1LTEgMS0xaDFWOGgydjFoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXN0b3JlRnJvbVRyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTR6TTYgN3YxMmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2em04IDd2NGgtNHYtNEg4bDQtNCA0IDRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RvcmVQYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0tMiAxNmMtMi4wNSAwLTMuODEtMS4yNC00LjU4LTNoMS43MWMuNjMuOSAxLjY4IDEuNSAyLjg3IDEuNSAxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMy45MyA5LjUgMTIgOS41YTMuNSAzLjUgMCAwIDAtMy4xIDEuOWwxLjYgMS42aC00VjlsMS4zIDEuM0M4LjY5IDguOTIgMTAuMjMgOCAxMiA4YzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2E5IDkgMCAwIDAtOSA5SDFsMy44OSAzLjg5LjA3LjE0TDkgMTJINmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3LTMuMTMgNy03IDdjLTEuOTMgMC0zLjY4LS43OS00Ljk0LTIuMDZsLTEuNDIgMS40MkE4Ljk1NCA4Ljk1NCAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgMC0xOHptLTEgNXY1bDQuMjggMi41NC43Mi0xLjIxLTMuNS0yLjA4VjhIMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvY2tldExhdW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMTkgNi4zNWMtMi4wNCAyLjI5LTMuNDQgNS41OC0zLjU3IDUuODlMMiAxMC42OWw0LjA1LTQuMDVjLjQ3LS40NyAxLjE1LS42OCAxLjgxLS41NWwxLjMzLjI2ek0xMS4xNyAxN3MzLjc0LTEuNTUgNS44OS0zLjdjNS40LTUuNCA0LjUtOS42MiA0LjIxLTEwLjU3LS45NS0uMy01LjE3LTEuMTktMTAuNTcgNC4yMUM4LjU1IDkuMDkgNyAxMi44MyA3IDEyLjgzTDExLjE3IDE3em02LjQ4LTIuMTljLTIuMjkgMi4wNC01LjU4IDMuNDQtNS44OSAzLjU3TDEzLjMxIDIybDQuMDUtNC4wNWMuNDctLjQ3LjY4LTEuMTUuNTUtMS44MWwtLjI2LTEuMzN6TTkgMThjMCAuODMtLjM0IDEuNTgtLjg4IDIuMTJDNi45NCAyMS4zIDIgMjIgMiAyMnMuNy00Ljk0IDEuODgtNi4xMkEyLjk5NiAyLjk5NiAwIDAgMSA5IDE4em00LTljMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMi41czQuNSAyLjA0IDQuNSAxMC41YzAgMi40OS0xLjA0IDUuNTctMS42IDdIOS4xYy0uNTYtMS40My0xLjYtNC41MS0xLjYtN0M3LjUgNC41NCAxMiAyLjUgMTIgMi41em0yIDguNWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS02LjMxIDkuNTJjLS40OC0xLjIzLTEuNTItNC4xNy0xLjY3LTYuODdsLTEuMTMuNzVjLS41Ni4zOC0uODkgMS0uODkgMS42N1YyMmwzLjY5LTEuNDh6TTIwIDIydi01LjkzYzAtLjY3LS4zMy0xLjI5LS44OS0xLjY2bC0xLjEzLS43NWMtLjE1IDIuNjktMS4yIDUuNjQtMS42NyA2Ljg3TDIwIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjEzIDIgNSA1LjEzIDUgOWMwIDUuMjUgNyAxMyA3IDEzczctNy43NSA3LTEzYzAtMy44Ny0zLjEzLTctNy03em0wIDkuNWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm91bmRlZENvcm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5aDJ2MmgtMnYtMnptMC0yaDJ2LTJoLTJ2MnpNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0wLThoMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem04IDE2aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6bS04IDBoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6TTIxIDhjMC0yLjc2LTIuMjQtNS01LTVoLTV2Mmg1YzEuNjUgMCAzIDEuMzUgMyAzdjVoMlY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3dpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTQuNSA0IDE5bDEuNSAxLjVMOSAxN2gybC0yLjUtMi41ek0xNSAxYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiAyMC4wMUwxOCAyNGwtMi45OS0zLjAxVjE5LjVsLTcuMS03LjA5Yy0uMzEuMDUtLjYxLjA3LS45MS4wN3YtMi4xNmMxLjY2LjAzIDMuNjEtLjg3IDQuNjctMi4wNGwxLjQtMS41NWMuMzUtLjM5Ljk5LS43MyAxLjY1LS43M2guMDNDMTUuOTkgNi4wMSAxNyA3LjAyIDE3IDguMjZ2NS43NWMwIC44NC0uMzUgMS42MS0uOTIgMi4xNmwtMy41OC0zLjU4di0yLjI3Yy0uNjMuNTItMS40MyAxLjAyLTIuMjkgMS4zOUwxNi41IDE4SDE4bDMgMy4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU0IDExIDEzIDcuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDE2LjU0IDExek0xMSA3SDJ2Mmg5Vjd6bTEwIDYuNDFMMTkuNTkgMTIgMTcgMTQuNTkgMTQuNDEgMTIgMTMgMTMuNDEgMTUuNTkgMTYgMTMgMTguNTkgMTQuNDEgMjAgMTcgMTcuNDEgMTkuNTkgMjAgMjEgMTguNTkgMTguNDEgMTYgMjEgMTMuNDF6TTExIDE1SDJ2Mmg5di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYXRlbGxpdGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS40NC41OS0zLjE4IDMuMThjLS43OC43OC0uNzggMi4wNSAwIDIuODNsMS4yNCAxLjI0LS43MS43MS0xLjI0LTEuMjVjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwTDcuMyA4LjcyYy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDEuMjQgMS4yNC0uNzEuNzEtMS4yMy0xLjI1Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMEwuNTkgMTUuNDNjLS43OC43OC0uNzggMi4wNSAwIDIuODNsMy41NCAzLjU0Yy43OC43OCAyLjA1Ljc4IDIuODMgMGwzLjE4LTMuMThjLjc4LS43OC43OC0yLjA1IDAtMi44M0w4LjkgMTQuNTVsLjcxLS43MSAxLjI0IDEuMjRjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDEuNDEtMS40MWMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDEzLjg0IDkuNmwuNzEtLjcxIDEuMjQgMS4yNGMuNzguNzggMi4wNS43OCAyLjgzIDBsMy4xOC0zLjE4Yy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTguMjYuNThjLS43OC0uNzgtMi4wNC0uNzgtMi44Mi4wMXpNNi42IDE5LjMybC0xLjA2IDEuMDZMMiAxNi44NWwxLjA2LTEuMDYgMy41NCAzLjUzem0yLjEyLTIuMTItMS4wNiAxLjA2LTMuNTQtMy41NCAxLjA2LTEuMDYgMy41NCAzLjU0em05LjU0LTkuNTRMMTcuMiA4LjcybC0zLjU0LTMuNTQgMS4wNi0xLjA2IDMuNTQgMy41NHptMi4xMi0yLjEyTDE5LjMyIDYuNmwtMy41NC0zLjU0TDE2Ljg1IDJsMy41MyAzLjU0ek0xNCAyMXYyYTkgOSAwIDAgMCA5LTloLTJjMCAzLjg3LTMuMTMgNy03IDd6bTAtNHYyYzIuNzYgMCA1LTIuMjQgNS01aC0yYzAgMS42Ni0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYXZlZFNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0em0tMi4xNy0xLjUgMi4xNC0xLjUzIDIuMTQgMS41My0uODMtMi40NiAyLjE1LTEuNWgtMi42Mkw5LjQ3IDZsLS44NCAyLjU0SDZsMi4xNCAxLjQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYXZpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuODMgNy41LTIuMjctMi4yN2MuMDctLjQyLjE4LS44MS4zMi0xLjE1QTEuNDk4IDEuNDk4IDAgMCAwIDE2LjUgMmMtMS42NCAwLTMuMDkuNzktNCAyaC01QzQuNDYgNCAyIDYuNDYgMiA5LjVTNC41IDIxIDQuNSAyMUgxMHYtMmgydjJoNS41bDEuNjgtNS41OSAyLjgyLS45NFY3LjVoLTIuMTd6TTEzIDlIOFY3aDV2MnptMyAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjaGVkdWxlU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMi41SDE1djRsMyAyIC43NS0xLjIzLTIuMjUtMS41MlYxMi41ek0xNiA5IDIgM3Y3bDkgMi05IDJ2N2w3LjI3LTMuMTFDMTAuMDkgMjAuODMgMTIuNzkgMjMgMTYgMjNjMy44NiAwIDctMy4xNCA3LTdzLTMuMTQtNy03LTd6bTAgMTJjLTIuNzUgMC00Ljk4LTIuMjItNS00Ljk3di0uMDdhNS4wMDggNS4wMDggMCAwIDEgNS00Ljk3YzIuNzYgMCA1IDIuMjQgNSA1UzE4Ljc2IDIxIDE2IDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY2hlZHVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA3SDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlYXJjaE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDAgMCA5LjUgM0M2LjA4IDMgMy4yOCA1LjY0IDMuMDMgOWgyLjAyQzUuMyA2Ljc1IDcuMTggNSA5LjUgNSAxMS45OSA1IDE0IDcuMDEgMTQgOS41UzExLjk5IDE0IDkuNSAxNGMtLjE3IDAtLjMzLS4wMy0uNS0uMDV2Mi4wMmMuMTcuMDIuMzMuMDMuNS4wMyAxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDcgMTAuODIgNCAxMy4yOWwtMi40Ny0yLjQ3LS43MS43MUwzLjI5IDE0IC44MiAxNi40N2wuNzEuNzFMNCAxNC43MWwyLjQ3IDIuNDcuNzEtLjcxTDQuNzEgMTRsMi40Ny0yLjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdBNi40NzEgNi40NzEgMCAwIDAgMTYgOS41IDYuNSA2LjUgMCAxIDAgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VnbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxOGgxMnYtMkg5djJ6TTMgNnYyaDE4VjZIM3ptNiA3aDEydi0ySDl2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VuZEFuZEFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEwaC0zTDIgM3Y3bDkgMi05IDJ2N2w4LTMuNVYyMWMwIDEuMS45IDIgMiAyaDljMS4xIDAgMi0uOSAyLTJ2LTljMC0xLjEtLjktMi0yLTJ6bTAgMTFoLTl2LTloOXY5em0tNC41LTFMMTMgMTZoMnYtM2gzdjNoMmwtMy41IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnNvcnNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjE0IDEwLjk2Yy0uMDkuMzMtLjE0LjY4LS4xNCAxLjA0IDAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsLTEuNDIgMS40MkE2LjAxOCA2LjAxOCAwIDAgMSA2IDEyYzAtLjkzLjIxLTEuOC41OC0yLjU5TDUuMTEgNy45NEE3Ljg5NyA3Ljg5NyAwIDAgMCA0IDEyYzAgMi4yMS45IDQuMjEgMi4zNSA1LjY1bC0xLjQyIDEuNDJBOS45NjkgOS45NjkgMCAwIDEgMiAxMmMwLTIuMDQuNjEtMy45MyAxLjY2LTUuNTFMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MUw4LjE0IDEwLjk2em05LjI4IDMuNjNjLjM3LS43OS41OC0xLjY2LjU4LTIuNTkgMC0xLjY2LS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MiAxLjQyYTMuOTUxIDMuOTUxIDAgMCAxIDEuMDQgMy44NmwxLjU2IDEuNTV6TTIwIDEyYzAgMS40OC0uNCAyLjg3LTEuMTEgNC4wNmwxLjQ1IDEuNDVBOS45MSA5LjkxIDAgMCAwIDIyIDEyYzAtMi43Ni0xLjEyLTUuMjYtMi45My03LjA3bC0xLjQyIDEuNDJBNy45NCA3Ljk0IDAgMCAxIDIwIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5zb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NiAxNi4yNEM2LjY3IDE1LjE2IDYgMTMuNjYgNiAxMnMuNjctMy4xNiAxLjc2LTQuMjRsMS40MiAxLjQyQzguNDUgOS45IDggMTAuOSA4IDEyYzAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsLTEuNDEgMS40MXptOC40OCAwQzE3LjMzIDE1LjE2IDE4IDEzLjY2IDE4IDEycy0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDIgMS40MkMxNS41NSA5LjkgMTYgMTAuOSAxNiAxMmMwIDEuMS0uNDUgMi4xLTEuMTcgMi44M2wxLjQxIDEuNDF6TTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptOCAyYzAgMi4yMS0uOSA0LjIxLTIuMzUgNS42NWwxLjQyIDEuNDJDMjAuODggMTcuMjYgMjIgMTQuNzYgMjIgMTJzLTEuMTItNS4yNi0yLjkzLTcuMDdsLTEuNDIgMS40MkE3Ljk0IDcuOTQgMCAwIDEgMjAgMTJ6TTYuMzUgNi4zNSA0LjkzIDQuOTNDMy4xMiA2Ljc0IDIgOS4yNCAyIDEyczEuMTIgNS4yNiAyLjkzIDcuMDdsMS40Mi0xLjQyQzQuOSAxNi4yMSA0IDE0LjIxIDQgMTJzLjktNC4yMSAyLjM1LTUuNjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzQWNjZXNzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjUgNGMtMi42MS43LTUuNjcgMS04LjUgMXMtNS44OS0uMy04LjUtMUwzIDZjMS44Ni41IDQgLjgzIDYgMXYxMmgydi02aDJ2NmgyVjdjMi0uMTcgNC4xNC0uNSA2LTFsLS41LTJ6TTEyIDRjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0FwcGxpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNy03SDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yem0tMS43NSA5YzAgLjIzLS4wMi40Ni0uMDUuNjhsMS40OCAxLjE2Yy4xMy4xMS4xNy4zLjA4LjQ1bC0xLjQgMi40MmMtLjA5LjE1LS4yNy4yMS0uNDMuMTVsLTEuNzQtLjdjLS4zNi4yOC0uNzYuNTEtMS4xOC42OWwtLjI2IDEuODVjLS4wMy4xNy0uMTguMy0uMzUuM2gtMi44Yy0uMTcgMC0uMzItLjEzLS4zNS0uMjlsLS4yNi0xLjg1Yy0uNDMtLjE4LS44Mi0uNDEtMS4xOC0uNjlsLTEuNzQuN2MtLjE2LjA2LS4zNCAwLS40My0uMTVsLTEuNC0yLjQyYS4zNTMuMzUzIDAgMCAxIC4wOC0uNDVsMS40OC0xLjE2Yy0uMDMtLjIzLS4wNS0uNDYtLjA1LS42OSAwLS4yMy4wMi0uNDYuMDUtLjY4bC0xLjQ4LTEuMTZhLjM1My4zNTMgMCAwIDEtLjA4LS40NWwxLjQtMi40MmMuMDktLjE1LjI3LS4yMS40My0uMTVsMS43NC43Yy4zNi0uMjguNzYtLjUxIDEuMTgtLjY5bC4yNi0xLjg1Yy4wMy0uMTcuMTgtLjMuMzUtLjNoMi44Yy4xNyAwIC4zMi4xMy4zNS4yOWwuMjYgMS44NWMuNDMuMTguODIuNDEgMS4xOC42OWwxLjc0LS43Yy4xNi0uMDYuMzQgMCAuNDMuMTVsMS40IDIuNDJjLjA5LjE1LjA1LjM0LS4wOC40NWwtMS40OCAxLjE2Yy4wMy4yMy4wNS40Ni4wNS42OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NCYWNrdXBSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyIC45IDIgMiAyIDItLjkgMi0yem0tMi05YTkgOSAwIDAgMC05IDlIMGw0IDQgNC00SDVjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN2E2Ljk5NSA2Ljk5NSAwIDAgMS0xMS4wNiA1LjdsLTEuNDIgMS40NEE5IDkgMCAxIDAgMTIgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyNGgydi0yaC0ydjJ6bS00IDBoMnYtMkg3djJ6bTggMGgydi0yaC0ydjJ6bTIuNzEtMTguMjlMMTIgMGgtMXY3LjU5TDYuNDEgMyA1IDQuNDEgMTAuNTkgMTAgNSAxNS41OSA2LjQxIDE3IDExIDEyLjQxVjIwaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyAzLjgzbDEuODggMS44OEwxMyA3LjU5VjMuODN6bTEuODggMTAuNDZMMTMgMTYuMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0JyaWdodG5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6TTggMTZoMi41bDEuNSAxLjUgMS41LTEuNUgxNnYtMi41bDEuNS0xLjUtMS41LTEuNVY4aC0yLjVMMTIgNi41IDEwLjUgOEg4djIuNUw2LjUgMTIgOCAxMy41VjE2em00LTdjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NDZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyNGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMTYgLjAxIDggMEM2LjkgMCA2IC45IDYgMnYxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMTZIOFY0aDh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzRXRoZXJuZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc3IDYuNzYgNi4yMyA1LjQ4LjgyIDEybDUuNDEgNi41MiAxLjU0LTEuMjhMMy40MiAxMmw0LjM1LTUuMjR6TTcgMTNoMnYtMkg3djJ6bTEwLTJoLTJ2Mmgydi0yem0tNiAyaDJ2LTJoLTJ2MnptNi43Ny03LjUyLTEuNTQgMS4yOEwyMC41OCAxMmwtNC4zNSA1LjI0IDEuNTQgMS4yOEwyMy4xOCAxMmwtNS40MS02LjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc0lucHV0QW50ZW5uYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVjLTMuODcgMC03IDMuMTMtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xIDkuMjljLjg4LS4zOSAxLjUtMS4yNiAxLjUtMi4yOWEyLjUgMi41IDAgMCAwLTUgMGMwIDEuMDIuNjIgMS45IDEuNSAyLjI5djMuM0w3LjU5IDIxIDkgMjIuNDFsMy0zIDMgM0wxNi40MSAyMSAxMyAxNy41OXYtMy4zek0xMiAxQzUuOTMgMSAxIDUuOTMgMSAxMmgyYTkgOSAwIDAgMSAxOCAwaDJjMC02LjA3LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzSW5wdXRDb21wb25lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjZoNlY2SDVWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMkg5djJ6bS04IDBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNnYtMkgxdjJ6TTIxIDZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjZoNlY2aC0yem0tOC00YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIOXY2aDZWNmgtMlYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0yaC02djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzSW5wdXRDb21wb3NpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjZoNlY2SDVWMnptNCAxNGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDEgMi0xLjUxIDItMi44MnYtMkg5djJ6bS04IDBjMCAxLjMuODQgMi40IDIgMi44MlYyM2gydi00LjE4QzYuMTYgMTguNCA3IDE3LjMgNyAxNnYtMkgxdjJ6TTIxIDZWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXY0aC0ydjZoNlY2aC0yem0tOC00YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjRIOXY2aDZWNmgtMlYyem00IDE0YzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgydi0yaC02djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzSW5wdXRIZG1pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggN1Y0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjNINXY2bDMgNnYzaDh2LTNsMy02VjdoLTF6TTggNGg4djNoLTJWNWgtMXYyaC0yVjVoLTF2Mkg4VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzSW5wdXRTdmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41UzUgMTAuNjcgNSAxMS41IDUuNjcgMTMgNi41IDEzIDggMTIuMzMgOCAxMS41em03LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zQzkuNjcgNSA5IDUuNjcgOSA2LjVTOS42NyA4IDEwLjUgOGgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXpNOC41IDE1Yy0uODMgMC0xLjUuNjctMS41IDEuNVM3LjY3IDE4IDguNSAxOHMxLjUtLjY3IDEuNS0xLjVTOS4zMyAxNSA4LjUgMTV6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyczQuOTMgMTEgMTEgMTEgMTEtNC45MyAxMS0xMVMxOC4wNyAxIDEyIDF6bTAgMjBjLTQuOTYgMC05LTQuMDQtOS05czQuMDQtOSA5LTkgOSA0LjA0IDkgOS00LjA0IDktOSA5em01LjUtMTFjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0tMiA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NPdmVyc2NhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDUuNSAxMCA4aDRsLTEuOTktMi41ek0xOCAxMHY0bDIuNS0xLjk5TDE4IDEwek02IDEwbC0yLjUgMi4wMUw2IDE0di00em04IDZoLTRsMi4wMSAyLjVMMTQgMTZ6bTctMTNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3NQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDloLTJ2MmgyVjl6bTQgMGgtMnYyaDJWOXptMyA2LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA3NCAxNS4wNzQgMCAwIDEtNi41OS02LjU4bDIuMi0yLjIxYy4yOC0uMjcuMzYtLjY2LjI1LTEuMDFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTE5IDl2MmgyVjloLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0yLTIyaC0ydjEwaDJWMnptMy41NiAyLjQ0LTEuNDUgMS40NUE1Ljk2OSA1Ljk2OSAwIDAgMSAxOCAxMWMwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNmMwLTIuMTcgMS4xNi00LjA2IDIuODgtNS4xMkw3LjQ0IDQuNDRBNy45NjEgNy45NjEgMCAwIDAgNCAxMWMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi43Mi0xLjM2LTUuMTItMy40NC02LjU2ek0xNSAyNGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzUmVtb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOUg5Yy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xem0tMyA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNNy4wNSA2LjA1bDEuNDEgMS40MWE1LjAyMiA1LjAyMiAwIDAgMSA3LjA4IDBsMS40MS0xLjQxQzE1LjY4IDQuNzggMTMuOTMgNCAxMiA0cy0zLjY4Ljc4LTQuOTUgMi4wNXpNMTIgMEM4Ljk2IDAgNi4yMSAxLjIzIDQuMjIgMy4yMmwxLjQxIDEuNDFDNy4yNiAzLjAxIDkuNTEgMiAxMiAyczQuNzQgMS4wMSA2LjM2IDIuNjRsMS40MS0xLjQxQzE3Ljc5IDEuMjMgMTUuMDQgMCAxMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc1ZvaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyNGgydi0ySDd2MnptNS0xMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA0YzAtMS42Ni0xLjM0LTMtMy0zUzkgMi4zNCA5IDR2NmMwIDEuNjYgMS4zNCAzIDMgM3ptLTEgMTFoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyem00LTE0aC0xLjdjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDEzIDYuNyAxMEg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIwaDJ2LTMuMjhjMy4yOC0uNDkgNi0zLjMxIDYtNi43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjE0IDEyLjk0Yy4wNC0uMy4wNi0uNjEuMDYtLjk0IDAtLjMyLS4wMi0uNjQtLjA3LS45NGwyLjAzLTEuNThhLjQ5LjQ5IDAgMCAwIC4xMi0uNjFsLTEuOTItMy4zMmEuNDg4LjQ4OCAwIDAgMC0uNTktLjIybC0yLjM5Ljk2Yy0uNS0uMzgtMS4wMy0uNy0xLjYyLS45NGwtLjM2LTIuNTRhLjQ4NC40ODQgMCAwIDAtLjQ4LS40MWgtMy44NGMtLjI0IDAtLjQzLjE3LS40Ny40MWwtLjM2IDIuNTRjLS41OS4yNC0xLjEzLjU3LTEuNjIuOTRsLTIuMzktLjk2Yy0uMjItLjA4LS40NyAwLS41OS4yMkwyLjc0IDguODdjLS4xMi4yMS0uMDguNDcuMTIuNjFsMi4wMyAxLjU4Yy0uMDUuMy0uMDkuNjMtLjA5Ljk0cy4wMi42NC4wNy45NGwtMi4wMyAxLjU4YS40OS40OSAwIDAgMC0uMTIuNjFsMS45MiAzLjMyYy4xMi4yMi4zNy4yOS41OS4yMmwyLjM5LS45NmMuNS4zOCAxLjAzLjcgMS42Mi45NGwuMzYgMi41NGMuMDUuMjQuMjQuNDEuNDguNDFoMy44NGMuMjQgMCAuNDQtLjE3LjQ3LS40MWwuMzYtMi41NGMuNTktLjI0IDEuMTMtLjU2IDEuNjItLjk0bDIuMzkuOTZjLjIyLjA4LjQ3IDAgLjU5LS4yMmwxLjkyLTMuMzJjLjEyLS4yMi4wNy0uNDctLjEyLS42MWwtMi4wMS0xLjU4ek0xMiAxNS42Yy0xLjk4IDAtMy42LTEuNjItMy42LTMuNnMxLjYyLTMuNiAzLjYtMy42IDMuNiAxLjYyIDMuNiAzLjYtMS42MiAzLjYtMy42IDMuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTZ2LTJIM1Y5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA1VjNjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDV2MTFjMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJWNWgtNXptLTYtMmg0djJoLTRWM3ptMCAxMlY4bDUuNSAzLjVMMTIgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3BUd28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkgzVjl6bTE1LTRWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem0wIDEyVjhsNS41IDMtNS41IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDJ2MTNjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmgtNnptLTYtMmg0djJoLTRWNHpNOSAxOFY5bDcuNSA0TDkgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNmgtMmMwLTIuMjEtMS43OS00LTQtNFM4IDMuNzkgOCA2SDZjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTggNGMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVY4aDJ2MnptMi02YzEuMSAwIDIgLjkgMiAyaC00YzAtMS4xLjktMiAyLTJ6bTQgNmMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVY4aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcHBpbmdCYXNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4yMSA5LTQuMzgtNi41NmEuOTkzLjk5MyAwIDAgMC0uODMtLjQyYy0uMzIgMC0uNjQuMTQtLjgzLjQzTDYuNzkgOUgyYy0uNTUgMC0xIC40NS0xIDEgMCAuMDkuMDEuMTguMDQuMjdsMi41NCA5LjI3Yy4yMy44NCAxIDEuNDYgMS45MiAxLjQ2aDEzYy45MiAwIDEuNjktLjYyIDEuOTMtMS40NmwyLjU0LTkuMjdMMjMgMTBjMC0uNTUtLjQ1LTEtMS0xaC00Ljc5ek05IDlsMy00LjRMMTUgOUg5em0zIDhjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG9wcGluZ0NhcnRDaGVja291dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOC45LTVoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNMMjEgNC45NiAxOS4yNSA0bC0zLjcgN0g4LjUzTDQuMjcgMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMnpNMTIgMmw0IDQtNCA0LTEuNDEtMS40MUwxMi4xNyA3SDhWNWg0LjE3bC0xLjU5LTEuNTlMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcHBpbmdDYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGMtMS4xIDAtMS45OS45LTEuOTkgMlM1LjkgMjIgNyAyMnMyLS45IDItMi0uOS0yLTItMnpNMSAydjJoMmwzLjYgNy41OS0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoMTJ2LTJINy40MmMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDcuNDVjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuNTgtNi40OUExLjAwMyAxLjAwMyAwIDAgMCAyMCA0SDUuMjFsLS45NC0ySDF6bTE2IDE2Yy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU21hcnRCdXR0b24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5djZjMCAxLjEtLjkgMi0yIDJoLTF2LTJoMVY5SDR2Nmg2djJINGMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAyem0tNy41IDEwIDEuMDktMi40MUwxOCAxNS41bC0yLjQxLTEuMDlMMTQuNSAxMmwtMS4wOSAyLjQxTDExIDE1LjVsMi40MSAxLjA5TDE0LjUgMTl6bTIuNS01IC42Mi0xLjM4TDE5IDEybC0xLjM4LS42MkwxNyAxMGwtLjYyIDEuMzhMMTUgMTJsMS4zOC42MkwxNyAxNHptLTIuNSA1IDEuMDktMi40MUwxOCAxNS41bC0yLjQxLTEuMDlMMTQuNSAxMmwtMS4wOSAyLjQxTDExIDE1LjVsMi40MSAxLjA5TDE0LjUgMTl6bTIuNS01IC42Mi0xLjM4TDE5IDEybC0xLjM4LS42MkwxNyAxMGwtLjYyIDEuMzhMMTUgMTJsMS4zOC42MkwxNyAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU291cmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS02IDEwSDZ2LTJoOHYyem00LTRINnYtMmgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGFjZURhc2hib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIxSDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmg2djE4em0yIDBoNmMxLjEgMCAyLS45IDItMnYtN2gtOHY5em04LTExVjVjMC0xLjEtLjktMi0yLTJoLTZ2N2g4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGF0aWFsQXVkaW9PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiOVwiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4zOSAxNS41NkMxNC43MSAxNC43IDEyLjUzIDE0IDEwIDE0cy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAyIDE4LjIyVjIxaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTIwLjM2IDFsLTEuNDEgMS40MWE3LjAwNyA3LjAwNyAwIDAgMSAwIDkuOWwxLjQxIDEuNDFhOC45OCA4Ljk4IDAgMCAwIDAtMTIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjU0IDEwLjlhNS4wMDMgNS4wMDMgMCAwIDAgMC03LjA3bC0xLjQxIDEuNDFhMyAzIDAgMCAxIDAgNC4yNGwxLjQxIDEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwYXRpYWxBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI5XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjM5IDE1LjU2QzE0LjcxIDE0LjcgMTIuNTMgMTQgMTAgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDIgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTYgMWgtMmE5IDkgMCAwIDAgOSA5VjhjLTMuODYgMC03LTMuMTQtNy03elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxaC0yYzAgMi43NiAyLjI0IDUgNSA1VjRjLTEuNjUgMC0zLTEuMzUtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGF0aWFsVHJhY2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiOVwiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4zOSAxNS41NkMxNC43MSAxNC43IDEyLjUzIDE0IDEwIDE0cy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAyIDE4LjIyVjIxaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTIwLjA1IDIuNDEgMTguNjQgMWMtMy41MSAzLjUxLTMuNTEgOS4yMSAwIDEyLjczbDEuNDEtMS40MWMtMi43My0yLjc0LTIuNzMtNy4xOCAwLTkuOTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjg4IDUuMjQtMS40MS0xLjQxYTUuMDAzIDUuMDAzIDAgMCAwIDAgNy4wN2wxLjQxLTEuNDFhMy4wMTIgMy4wMTIgMCAwIDEgMC00LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVha2VyTm90ZXNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC41NCAxMS0uNTQtLjU0TDcuNTQgOCA2IDYuNDYgMi4zOCAyLjg0IDEuMjcgMS43MyAwIDNsMi4wMSAyLjAxTDIgMjJsNC00aDlsNS43MyA1LjczTDIyIDIyLjQ2IDE3LjU0IDE4bC03LTd6TTggMTRINnYtMmgydjJ6bS0yLTNWOWwyIDJINnptMTQtOUg0LjA4TDEwIDcuOTJWNmg4djJoLTcuOTJsMSAxSDE4djJoLTQuOTJsNi45OSA2Ljk5QzIxLjE0IDE3Ljk1IDIyIDE3LjA4IDIyIDE2VjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwZWFrZXJOb3RlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDE0SDZ2LTJoMnYyem0wLTNINlY5aDJ2MnptMC0zSDZWNmgydjJ6bTcgNmgtNXYtMmg1djJ6bTMtM2gtOFY5aDh2MnptMC0zaC04VjZoOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVsbGNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNDUgMTZoMi4wOUw5LjQzIDNINy41N0wyLjQ2IDE2aDIuMDlsMS4xMi0zaDUuNjRsMS4xNCAzem0tNi4wMi01TDguNSA1LjQ4IDEwLjU3IDExSDYuNDN6bTE1LjE2LjU5LTguMDkgOC4wOUw5LjgzIDE2bC0xLjQxIDEuNDEgNS4wOSA1LjA5TDIzIDEzbC0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YXJSYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNDMgMTAgMTIgMmwtMi40MyA4SDJsNi4xOCA0LjQxTDUuODMgMjIgMTIgMTcuMzEgMTguMTggMjJsLTIuMzUtNy41OUwyMiAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem00LjI0IDE2TDEyIDE1LjQ1IDcuNzcgMThsMS4xMi00LjgxLTMuNzMtMy4yMyA0LjkyLS40MkwxMiA1bDEuOTIgNC41MyA0LjkyLjQyLTMuNzMgMy4yM0wxNi4yMyAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RpY2t5Tm90ZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDQuOTlDMy44OSAzIDMgMy45IDMgNWwuMDEgMTRjMCAxLjEuODkgMiAxLjk5IDJoMTBsNi02VjVjMC0xLjEtLjktMi0yLTJ6TTcgOGgxMHYySDdWOHptNSA2SDd2LTJoNXYyem0yIDUuNVYxNGg1LjVMMTQgMTkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDR2MmgxNlY0em0xIDEwdi0ybC0xLTVINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF6bS05IDRINnYtNGg2djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1YmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxN0g0djJoMTB2LTJ6bTYtOEg0djJoMTZWOXpNNCAxNWgxNnYtMkg0djJ6TTQgNXYyaDE2VjVINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VidGl0bGVzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg2LjgzbDggOEgyMHYyaC0zLjE3bDQuOTMgNC45M2MuMTUtLjI4LjI0LS41OS4yNC0uOTNWNmMwLTEuMS0uOS0yLTItMnpNMS4wNCAzLjg3bDEuMiAxLjJDMi4wOSA1LjM1IDIgNS42NiAyIDZ2MTJjMCAxLjEuOSAyIDIgMmgxMy4xN2wyLjk2IDIuOTYgMS40MS0xLjQxTDIuNDUgMi40NSAxLjA0IDMuODd6TTggMTJ2Mkg0di0yaDR6bTYgNC44M1YxOEg0di0yaDkuMTdsLjgzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdXBlcnZpc2VkVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJjLTUuNTIgMC0xMCA0LjQ4LTEwIDEwczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMC00LjQ4LTEwLTEwLTEwem0zLjYxIDYuMzRjMS4wNyAwIDEuOTMuODYgMS45MyAxLjkzIDAgMS4wNy0uODYgMS45My0xLjkzIDEuOTMtMS4wNyAwLTEuOTMtLjg2LTEuOTMtMS45My0uMDEtMS4wNy44Ni0xLjkzIDEuOTMtMS45M3ptLTYtMS41OGMxLjMgMCAyLjM2IDEuMDYgMi4zNiAyLjM2IDAgMS4zLTEuMDYgMi4zNi0yLjM2IDIuMzZzLTIuMzYtMS4wNi0yLjM2LTIuMzZjMC0xLjMxIDEuMDUtMi4zNiAyLjM2LTIuMzZ6bTAgOS4xM3YzLjc1Yy0yLjQtLjc1LTQuMy0yLjYtNS4xNC00Ljk2IDEuMDUtMS4xMiAzLjY3LTEuNjkgNS4xNC0xLjY5LjUzIDAgMS4yLjA4IDEuOS4yMi0xLjY0Ljg3LTEuOSAyLjAyLTEuOSAyLjY4ek0xMS45OSAyMGMtLjI3IDAtLjUzLS4wMS0uNzktLjA0di00LjA3YzAtMS40MiAyLjk0LTIuMTMgNC40LTIuMTMgMS4wNyAwIDIuOTIuMzkgMy44NCAxLjE1LTEuMTcgMi45Ny00LjA2IDUuMDktNy40NSA1LjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdXBlcnZpc29yQWNjb3VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTJjMS4zOCAwIDIuNDktMS4xMiAyLjQ5LTIuNVMxNy44OCA3IDE2LjUgN2EyLjUgMi41IDAgMCAwIDAgNXpNOSAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxMC42NiA1IDkgNUM3LjM0IDUgNiA2LjM0IDYgOHMxLjM0IDMgMyAzem03LjUgM2MtMS44MyAwLTUuNS45Mi01LjUgMi43NVYxOWgxMXYtMi4yNWMwLTEuODMtMy42Ny0yLjc1LTUuNS0yLjc1ek05IDEzYy0yLjMzIDAtNyAxLjE3LTcgMy41VjE5aDd2LTIuMjVjMC0uODUuMzMtMi4zNCAyLjM3LTMuNDdDMTAuNSAxMy4xIDkuNjYgMTMgOSAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VwcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTcuNDYgNy4xMi0yLjc4IDEuMTVhNC45ODIgNC45ODIgMCAwIDAtMi45NS0yLjk0bDEuMTUtMi43OGMyLjEuOCAzLjc3IDIuNDcgNC41OCA0LjU3ek0xMiAxNWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6TTkuMTMgNC41NGwxLjE3IDIuNzhhNSA1IDAgMCAwLTIuOTggMi45N0w0LjU0IDkuMTNhNy45ODQgNy45ODQgMCAwIDEgNC41OS00LjU5ek00LjU0IDE0Ljg3bDIuNzgtMS4xNWE0Ljk2OCA0Ljk2OCAwIDAgMCAyLjk3IDIuOTZsLTEuMTcgMi43OGE3Ljk5NiA3Ljk5NiAwIDAgMS00LjU4LTQuNTl6bTEwLjM0IDQuNTktMS4xNS0yLjc4YTQuOTc4IDQuOTc4IDAgMCAwIDIuOTUtMi45N2wyLjc4IDEuMTdhOC4wMDcgOC4wMDcgMCAwIDEtNC41OCA0LjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2FwSG9yaXogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljk5IDExIDMgMTVsMy45OSA0di0zSDE0di0ySDYuOTl2LTN6TTIxIDlsLTMuOTktNHYzSDEwdjJoNy4wMXYzTDIxIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3YXBIb3Jpem9udGFsQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTB6bS03LTUuNSAzLjUgMy41LTMuNSAzLjVWMTFoLTRWOWg0VjYuNXptLTYgMTFMNS41IDE0IDkgMTAuNVYxM2g0djJIOXYyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3YXBWZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTcuMDFWMTBoLTJ2Ny4wMWgtM0wxNSAyMWw0LTMuOTloLTN6TTkgMyA1IDYuOTloM1YxNGgyVjYuOTloM0w5IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3YXBWZXJ0aWNhbENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTYuNSA5IDEwIDUuNSAxMy41IDlIMTF2NEg5VjlINi41em0xMSA2TDE0IDE4LjUgMTAuNSAxNUgxM3YtNGgydjRoMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2lwZURvd25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMy45YTUgNSAwIDEgMC0yIDB2NC4yN2wtMS41OS0xLjU5TDggMThsNCA0IDQtNC0xLjQxLTEuNDFMMTMgMTguMTdWMTMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpcGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy44IDEyLjE4Yy0uMi0uODYtLjMtMS43Ni0uMy0yLjY4IDAtMi44NC45OS01LjQ1IDIuNjMtNy41TDcuMiAzLjA3YTEwLjQ1NyAxMC40NTcgMCAwIDAtMS44OCA4Ljk5bDEuNjItMS42Mkw4IDExLjUgNC41IDE1IDEgMTEuNWwxLjA2LTEuMDYgMS43NCAxLjc0em0xMC4wNS0uNTYtMi42OC01LjM3YTEuNDk4IDEuNDk4IDAgMCAwLTIuMDEtLjY3Yy0uNzUuMzgtMS4wNSAxLjI4LS42OCAyLjAybDQuODEgOS42LTMuMjQuOGMtLjMzLjA5LS41OS4zMy0uNy42Nkw5IDE5Ljc4bDYuMTkgMi4yNWMuNS4xNyAxLjI4LjAyIDEuNzUtLjIybDUuNTEtMi43NWMuODktLjQ1IDEuMzItMS40OCAxLTIuNDJsLTEuNDMtNC4yN2EyIDIgMCAwIDAtMS45LTEuMzdoLTQuNTZjLS4zMSAwLS42Mi4wNy0uODkuMjFsLS44Mi40MVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2lwZUxlZnRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4xIDEzYTUgNSAwIDEgMCAwLTJINS44M2wxLjU5LTEuNTlMNiA4bC00IDQgNCA0IDEuNDEtMS40MUw1LjgzIDEzaDQuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljk4IDE2LjgyLS42MyA0LjQ2Yy0uMTQuOTktLjk5IDEuNzItMS45OCAxLjcyaC02LjE2Yy0uNTMgMC0xLjI5LS4yMS0xLjY2LS41OUw1IDE3LjYybC44My0uODRjLjI0LS4yNC41OC0uMzUuOTItLjI4bDMuMjUuNzRWNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41djZoLjkxYy4zMSAwIC42Mi4wNy44OS4yMWw0LjA5IDIuMDRjLjc3LjM5IDEuMjEgMS4yMiAxLjA5IDIuMDd6TTEyIDIuNWM0Ljc0IDAgNy42NyAyLjUyIDguNDMgNC41SDIyYy0uNzMtMi44OC00LjUxLTYtMTAtNi0zLjIyIDAtNi4xOCAxLjEzLTguNSAzLjAyVjJIMnY1aDVWNS41SDQuMDljMi4xMi0xLjg2IDQuODgtMyA3LjkxLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlUmlnaHRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45IDExYTUgNSAwIDEgMCAwIDJoNC4yN2wtMS41OSAxLjU5TDE4IDE2bDQtNC00LTQtMS40MSAxLjQxTDE4LjE3IDExSDEzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS45OCAxNi44Mi0uNjMgNC40NmMtLjE0Ljk5LS45OSAxLjcyLTEuOTggMS43MmgtNi4xNmMtLjUzIDAtMS4yOS0uMjEtMS42Ni0uNTlMNSAxNy42MmwuODMtLjg0Yy4yNC0uMjQuNTgtLjM1LjkyLS4yOGwzLjI1Ljc0VjYuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNXY2aC45MWMuMzEgMCAuNjIuMDcuODkuMjFsNC4wOSAyLjA0Yy43Ny4zOSAxLjIxIDEuMjIgMS4wOSAyLjA3ek0xOS45MSA1LjVIMTdWN2g1VjJoLTEuNXYyLjAyQTEzLjQxMyAxMy40MTMgMCAwIDAgMTIgMUM2LjUxIDEgMi43MyA0LjEyIDIgN2gxLjU3QzQuMzMgNS4wMiA3LjI2IDIuNSAxMiAyLjVjMy4wMyAwIDUuNzkgMS4xNCA3LjkxIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlVXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA1LjgzIDEuNTkgMS41OUwxNiA2bC00LTQtNCA0IDEuNDEgMS40MUwxMSA1LjgzdjQuMjdhNSA1IDAgMSAwIDIgMFY1LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2lwZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi4wNiA1LjU2IDEgNC41IDQuNSAxIDggNC41IDYuOTQgNS41NiA1LjMyIDMuOTRhMTAuNDU3IDEwLjQ1NyAwIDAgMCAxLjg4IDguOTlMNi4xMyAxNEExMS45NzQgMTEuOTc0IDAgMCAxIDMuNSA2LjVjMC0uOTIuMS0xLjgyLjMtMi42OEwyLjA2IDUuNTZ6bTExLjc5IDYuMDYtMi42OC01LjM3YTEuNDk4IDEuNDk4IDAgMCAwLTIuMDEtLjY3Yy0uNzUuMzgtMS4wNSAxLjI4LS42OCAyLjAybDQuODEgOS42LTMuMjQuOGMtLjMzLjA5LS41OS4zMy0uNy42Nkw5IDE5Ljc4bDYuMTkgMi4yNWMuNS4xNyAxLjI4LjAyIDEuNzUtLjIybDUuNTEtMi43NWMuODktLjQ1IDEuMzItMS40OCAxLTIuNDJsLTEuNDMtNC4yN2EyIDIgMCAwIDAtMS45LTEuMzdoLTQuNTZjLS4zMSAwLS42Mi4wNy0uODkuMjFsLS44Mi40MVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2lwZVZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAzLjVoMi4wMkMxLjEzIDUuODIgMCA4Ljc4IDAgMTJzMS4xMyA2LjE4IDMuMDIgOC41SDFWMjJoNXYtNUg0LjV2Mi45MWMtMS44Ni0yLjExLTMtNC44OC0zLTcuOTFzMS4xNC01Ljc5IDMtNy45MVY3SDZWMkgxdjEuNXptMTIuODUgOC4xMi0yLjY4LTUuMzdhMS40OTggMS40OTggMCAwIDAtMi4wMS0uNjdjLS43NS4zOC0xLjA1IDEuMjgtLjY4IDIuMDJsNC44MSA5LjYtMy4yNC44Yy0uMzMuMDktLjU5LjMzLS43LjY2TDkgMTkuNzhsNi4xOSAyLjI1Yy41LjE3IDEuMjguMDIgMS43NS0uMjJsNS41MS0yLjc1Yy44OS0uNDUgMS4zMi0xLjQ4IDEtMi40MmwtMS40My00LjI3YTIgMiAwIDAgMC0xLjktMS4zN2gtNC41NmMtLjMxIDAtLjYyLjA3LS44OS4yMWwtLjgyLjQxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODkgMTQuNzUtNC4wOS0yLjA0Yy0uMjgtLjE0LS41OC0uMjEtLjg5LS4yMUgxM3YtNmMwLS44My0uNjctMS41LTEuNS0xLjVTMTAgNS42NyAxMCA2LjV2MTAuNzRsLTMuMjUtLjc0YS45OS45OSAwIDAgMC0uOTIuMjhsLS44My44NCA0LjU0IDQuNzljLjM4LjM4IDEuMTQuNTkgMS42Ny41OWg2LjE2YzEgMCAxLjg0LS43MyAxLjk4LTEuNzJsLjYzLTQuNDZjLjEyLS44NS0uMzItMS42OC0xLjA5LTIuMDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjEzIDMuODdDMTguNjkgMi4xNyAxNS42IDEgMTIgMVM1LjMxIDIuMTcgMy44NyAzLjg3TDIgMnY1aDVMNC45MyA0LjkzYzEtMS4yOSAzLjctMi40MyA3LjA3LTIuNDNzNi4wNyAxLjE0IDcuMDcgMi40M0wxNyA3aDVWMmwtMS44NyAxLjg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2l0Y2hBY2Nlc3NTaG9ydGN1dEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDE0aC0ydi0yaC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yek03LjA2IDguOTQgNSA4bDIuMDYtLjk0TDggNWwuOTQgMi4wNkwxMSA4bC0yLjA2Ljk0TDggMTFsLS45NC0yLjA2ek04IDIxbC45NC0yLjA2TDExIDE4bC0yLjA2LS45NEw4IDE1bC0uOTQgMi4wNkw1IDE4bDIuMDYuOTRMOCAyMXptLTMuNjMtOC42M0wzIDEzbDEuMzcuNjNMNSAxNWwuNjMtMS4zN0w3IDEzbC0xLjM3LS42M0w1IDExbC0uNjMgMS4zN3pNMTIgMTJjMC0yLjczIDEuMDgtNS4yNyAyLjc1LTcuMjVMMTIgMmg3djdsLTIuODItMi44MkMxNC44NCA3LjgyIDE0IDkuODggMTQgMTJjMCAzLjMyIDIuMSA2LjM2IDUgNy44MlYyMmMtNC4wOS0xLjU5LTctNS42NS03LTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2l0Y2hBY2Nlc3NTaG9ydGN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDYgOC45NCA1IDhsMi4wNi0uOTRMOCA1bC45NCAyLjA2TDExIDhsLTIuMDYuOTRMOCAxMWwtLjk0LTIuMDZ6TTggMjFsLjk0LTIuMDZMMTEgMThsLTIuMDYtLjk0TDggMTVsLS45NCAyLjA2TDUgMThsMi4wNi45NEw4IDIxem0tMy42My04LjYzTDMgMTNsMS4zNy42M0w1IDE1bC42My0xLjM3TDcgMTNsLTEuMzctLjYzTDUgMTFsLS42MyAxLjM3ek0xMiAxMmMwLTIuNzMgMS4wOC01LjI3IDIuNzUtNy4yNUwxMiAyaDd2N2wtMi44Mi0yLjgyQzE0Ljg0IDcuODIgMTQgOS44OCAxNCAxMmMwIDMuMzIgMi4xIDYuMzYgNSA3LjgyVjIyYy00LjA5LTEuNTktNy01LjY1LTctMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5bmNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxMiA0LTQtNC00djNIM3YyaDE1ek02IDEybC00IDQgNCA0di0zaDE1di0ySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5c3RlbVVwZGF0ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAuNWgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxNi41IDQtNGgtM3YtOWgtMnY5SDhsNCA0em05LTEzaC02djEuOTloNnYxNC4wM0gzVjUuNDloNlYzLjVIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtMTRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYlVuc2VsZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDloMlY3SDF2MnptMCA0aDJ2LTJIMXYyem0wLThoMlYzYy0xLjEgMC0yIC45LTIgMnptOCAxNmgydi0ySDl2MnptLTgtNGgydi0ySDF2MnptMiA0di0ySDFjMCAxLjEuOSAyIDIgMnpNMjEgM2gtOHY2aDEwVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTRoMnYtMmgtMnYyek05IDVoMlYzSDl2MnpNNSAyMWgydi0ySDV2MnpNNSA1aDJWM0g1djJ6bTE2IDE2YzEuMSAwIDItLjkgMi0yaC0ydjJ6bTAtOGgydi0yaC0ydjJ6bS04IDhoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkgzVjVoMTB2NGg4djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZVZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3SDljLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCAydjJIOVY5aDEwem0tNiA2di0yaDJ2MmgtMnptMiAydjJoLTJ2LTJoMnptLTQtMkg5di0yaDJ2MnptNi0yaDJ2MmgtMnYtMnptLTggNGgydjJIOXYtMnptOCAydi0yaDJ2MmgtMnpNNiAxN0g1Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJ2MWgtMlY1SDV2MTBoMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYXNrQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNS4xOCAxMC41OSAxNi42bC00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44MyAxMC0xMEwyMiA1LjE4em0tMi4yMSA1LjA0Yy4xMy41Ny4yMSAxLjE3LjIxIDEuNzggMCA0LjQyLTMuNTggOC04IDhzLTgtMy41OC04LTggMy41OC04IDgtOGMxLjU4IDAgMy4wNC40NiA0LjI4IDEuMjVsMS40NC0xLjQ0QTkuOSA5LjkgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtMS4xOS0uMjItMi4zMy0uNi0zLjM5bC0xLjYxIDEuNjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRlcm1pbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YTIgMiAwIDAgMC0yLTJ6bTAgMTRINFY4aDE2djEwem0tMi0xaC02di0yaDZ2MnpNNy41IDE3bC0xLjQxLTEuNDFMOC42NyAxM2wtMi41OS0yLjU5TDcuNSA5bDQgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHRSb3RhdGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTJ2MS41bDExIDQuNzV2LTIuMWwtMi4yLS45di01bDIuMi0uOXYtMi4xTDMgMTJ6bTcgMi42Mi01LjAyLTEuODdMMTAgMTAuODh2My43NHptOC0xMC4zNy0zIDNoMnYxMi41aDJWNy4yNWgybC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHRSb3RhdGVWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljc1IDVoLTEuNUw5LjUgMTZoMi4xbC45LTIuMmg1bC45IDIuMmgyLjFMMTUuNzUgNXptLTIuNjIgN0wxNSA2Ljk4IDE2Ljg3IDEyaC0zLjc0ek02IDE5Ljc1bDMtM0g3VjQuMjVINXYxMi41SDNsMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXh0Um90YXRpb25BbmdsZWRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS40IDQuOTEtMS4wNi0xLjA2TDcuMiA4LjI3bDEuNDggMS40OCAyLjE5LS45MiAzLjU0IDMuNTQtLjkyIDIuMTkgMS40OCAxLjQ4TDE5LjQgNC45MXptLTYuODEgMy4xIDQuODctMi4yMy0yLjIzIDQuODctMi42NC0yLjY0ek0xNC4yNyAyMXYtNC4yNGwtMS40MSAxLjQxLTguODQtOC44NC0xLjQyIDEuNDIgOC44NCA4Ljg0TDEwLjAzIDIxaDQuMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHRSb3RhdGlvbkFuZ2xldXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjQ5IDQuMjEgMy40MyA1LjI3IDcuODUgMTYuNGwxLjQ4LTEuNDgtLjkyLTIuMTkgMy41NC0zLjU0IDIuMTkuOTIgMS40OC0xLjQ4TDQuNDkgNC4yMXptMy4wOSA2LjhMNS4zNiA2LjE0bDQuODcgMi4yMy0yLjY1IDIuNjR6bTEyLjk5LTEuNjhoLTQuMjRsMS40MSAxLjQxLTguODQgOC44NEwxMC4zMiAyMWw4Ljg0LTguODQgMS40MSAxLjQxVjkuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHRSb3RhdGlvbkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMnYtMS41TDEwIDUuNzV2Mi4xbDIuMi45djVsLTIuMi45djIuMUwyMSAxMnptLTctMi42MiA1LjAyIDEuODdMMTQgMTMuMTJWOS4zOHpNNiAxOS43NWwzLTNIN1Y0LjI1SDV2MTIuNUgzbDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFJvdGF0aW9uTm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjc1IDNoLTEuNUw2LjUgMTRoMi4xbC45LTIuMmg1bC45IDIuMmgyLjFMMTIuNzUgM3ptLTIuNjIgN0wxMiA0Ljk4IDEzLjg3IDEwaC0zLjc0em0xMC4zNyA4LTMtM3YySDV2MmgxMi41djJsMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaGVhdGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDN2MmgtMlYzSDh2Mkg2VjNINHYxOGgydi0yaDJ2Mmg4di0yaDJ2MmgyVjNoLTJ6TTggMTdINnYtMmgydjJ6bTAtNEg2di0yaDJ2MnptMC00SDZWN2gydjJ6bTEwIDhoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRodW1iRG93bk9mZkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0djI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC44OSAxOC4yOC41Ny0yLjg5Yy4xMi0uNTktLjA0LTEuMi0uNDItMS42Ni0uMzgtLjQ2LS45NC0uNzMtMS41NC0uNzNINHYtMS4wOEw2LjU3IDZoOC4wOWMuMTggMCAuMzQuMTYuMzQuMzR2Ny44NGwtNC4xMSA0LjFNMTAgMjJsNi40MS02LjQxYy4zOC0uMzguNTktLjg5LjU5LTEuNDJWNi4zNEMxNyA1LjA1IDE1Ljk1IDQgMTQuNjYgNGgtOC4xYy0uNzEgMC0xLjM2LjM3LTEuNzIuOTdsLTIuNjcgNi4xNWMtLjExLjI1LS4xNy41Mi0uMTcuOFYxM2MwIDEuMS45IDIgMiAyaDUuNWwtLjkyIDQuNjVjLS4wNS4yMi0uMDIuNDYuMDguNjYuMjMuNDUuNTIuODYuODggMS4yMkwxMCAyMnptMTAtN2gyVjRoLTJjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVtYkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MmMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OS02LjU5Yy4zNi0uMzYuNTgtLjg2LjU4LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptNCAwdjEyaDRWM2gtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGh1bWJVcE9mZkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuMTEgNS43Mi0uNTcgMi44OWMtLjEyLjU5LjA0IDEuMi40MiAxLjY2LjM4LjQ2Ljk0LjczIDEuNTQuNzNIMjB2MS4wOEwxNy40MyAxOEg5LjM0YS4zNS4zNSAwIDAgMS0uMzQtLjM0VjkuODJsNC4xMS00LjFNMTQgMiA3LjU5IDguNDFDNy4yMSA4Ljc5IDcgOS4zIDcgOS44M3Y3LjgzQzcgMTguOTUgOC4wNSAyMCA5LjM0IDIwaDguMWMuNzEgMCAxLjM2LS4zNyAxLjcyLS45N2wyLjY3LTYuMTVjLjExLS4yNS4xNy0uNTIuMTctLjhWMTFjMC0xLjEtLjktMi0yLTJoLTUuNWwuOTItNC42NWMuMDUtLjIyLjAyLS40Ni0uMDgtLjY2YTQuOCA0LjggMCAwIDAtLjg4LTEuMjJMMTQgMnpNNCA5SDJ2MTFoMmMuNTUgMCAxLS40NSAxLTF2LTljMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVtYlVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDIxaDRWOUgxdjEyem0yMi0xMWMwLTEuMS0uOS0yLTItMmgtNi4zMWwuOTUtNC41Ny4wMy0uMzJjMC0uNDEtLjE3LS43OS0uNDQtMS4wNkwxNC4xNyAxIDcuNTkgNy41OUM3LjIyIDcuOTUgNyA4LjQ1IDcgOXYxMGMwIDEuMS45IDIgMiAyaDljLjgzIDAgMS41NC0uNSAxLjg0LTEuMjJsMy4wMi03LjA1Yy4wOS0uMjMuMTQtLjQ3LjE0LS43M3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGh1bWJzVXBEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMwLS41NS0uNDUtMS0xLTFINS44MmwuNjYtMy4xOC4wMi0uMjNjMC0uMzEtLjEzLS41OS0uMzMtLjhMNS4zOCAwIC40NCA0Ljk0Qy4xNyA1LjIxIDAgNS41OSAwIDZ2Ni41YzAgLjgzLjY3IDEuNSAxLjUgMS41aDYuNzVjLjYyIDAgMS4xNS0uMzggMS4zOC0uOTFsMi4yNi01LjI5Yy4wNy0uMTcuMTEtLjM2LjExLS41NVY2em0xMC41IDRoLTYuNzVjLS42MiAwLTEuMTUuMzgtMS4zOC45MWwtMi4yNiA1LjI5Yy0uMDcuMTctLjExLjM2LS4xMS41NVYxOGMwIC41NS40NSAxIDEgMWg1LjE4bC0uNjYgMy4xOC0uMDIuMjRjMCAuMzEuMTMuNTkuMzMuOGwuNzkuNzggNC45NC00Ljk0Yy4yNy0uMjcuNDQtLjY1LjQ0LTEuMDZ2LTYuNWMwLS44My0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgOGMwIDEuMS0uOSAyLTIgMmExLjcgMS43IDAgMCAxLS41MS0uMDdsLTMuNTYgMy41NWMuMDUuMTYuMDcuMzQuMDcuNTIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjE4LjAyLS4zNi4wNy0uNTJsLTIuNTUtMi41NWMtLjE2LjA1LS4zNC4wNy0uNTIuMDdzLS4zNi0uMDItLjUyLS4wN2wtNC41NSA0LjU2Yy4wNS4xNi4wNy4zMy4wNy41MSAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjE4IDAgLjM1LjAyLjUxLjA3bDQuNTYtNC41NUM4LjAyIDkuMzYgOCA5LjE4IDggOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgLjE4LS4wMi4zNi0uMDcuNTJsMi41NSAyLjU1Yy4xNi0uMDUuMzQtLjA3LjUyLS4wN3MuMzYuMDIuNTIuMDdsMy41NS0zLjU2QTEuNyAxLjcgMCAwIDEgMTkgOGMwLTEuMS45LTIgMi0yczIgLjkgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaXBzQW5kVXBkYXRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6bS0yLTFoOHYtMkg1djJ6bTExLjUtOS41YzAgMy44Mi0yLjY2IDUuODYtMy43NyA2LjVINS4yN2MtMS4xMS0uNjQtMy43Ny0yLjY4LTMuNzctNi41QzEuNSA1LjM2IDQuODYgMiA5IDJzNy41IDMuMzYgNy41IDcuNXptNC44Ny0yLjEzTDIwIDhsMS4zNy42M0wyMiAxMGwuNjMtMS4zN0wyNCA4bC0xLjM3LS42M0wyMiA2bC0uNjMgMS4zN3pNMTkgNmwuOTQtMi4wNkwyMiAzbC0yLjA2LS45NEwxOSAwbC0uOTQgMi4wNkwxNiAzbDIuMDYuOTRMMTkgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5aDE0VjdIM3Yyem0wIDRoMTR2LTJIM3Yyem0wIDRoMTR2LTJIM3Yyem0xNiAwaDJ2LTJoLTJ2MnptMC0xMHYyaDJWN2gtMnptMCA2aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9kYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpNNyAxMGg1djVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9rZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NyA2LjQzIDEyIDIgNC4wMyA2LjQzIDkuMSA5LjI0QzkuODMgOC40OCAxMC44NiA4IDEyIDhzMi4xNy40OCAyLjkgMS4yNGw1LjA3LTIuODF6TTEwIDEyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTEgOS40NEwzIDE3VjguMTRsNS4xMyAyLjg1Yy0uMDkuMzItLjEzLjY2LS4xMyAxLjAxIDAgMS44NiAxLjI3IDMuNDMgMyAzLjg3djUuNTd6bTIgMHYtNS41N2MxLjczLS40NCAzLTIuMDEgMy0zLjg3IDAtLjM1LS4wNC0uNjktLjEzLTEuMDFMMjEgOC4xNFYxN2wtOCA0LjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6TTMgMTJhNS45OSA1Ljk5IDAgMCAxIDQtNS42NVY0LjI2QzMuNTUgNS4xNSAxIDguMjcgMSAxMnMyLjU1IDYuODUgNiA3Ljc0di0yLjA5QTUuOTkgNS45OSAwIDAgMSAzIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb3VjaEFwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTEuMjRWNy41YTIuNSAyLjUgMCAwIDEgNSAwdjMuNzRjMS4yMS0uODEgMi0yLjE4IDItMy43NEMxNiA1LjAxIDEzLjk5IDMgMTEuNSAzUzcgNS4wMSA3IDcuNWMwIDEuNTYuNzkgMi45MyAyIDMuNzR6bTkuODQgNC42My00LjU0LTIuMjZjLS4xNy0uMDctLjM1LS4xMS0uNTQtLjExSDEzdi02YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxMCA2LjY3IDEwIDcuNXYxMC43NGMtMy42LS43Ni0zLjU0LS43NS0zLjY3LS43NS0uMzEgMC0uNTkuMTMtLjc5LjMzbC0uNzkuOCA0Ljk0IDQuOTRjLjI3LjI3LjY1LjQ0IDEuMDYuNDRoNi43OWMuNzUgMCAxLjMzLS41NSAxLjQ0LTEuMjhsLjc1LTUuMjdjLjAxLS4wNy4wMi0uMTQuMDItLjIgMC0uNjItLjM4LTEuMTYtLjkxLTEuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDdWMkg1djIwaDJ2LThoMTRsLTItNSAyLTV6bS02IDVjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFja0NoYW5nZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjA3IDQuOTMtMS40MSAxLjQxQTguMDE0IDguMDE0IDAgMCAxIDIwIDEyYzAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04YzAtNC4wOCAzLjA1LTcuNDQgNy03LjkzdjIuMDJDOC4xNiA2LjU3IDYgOS4wMyA2IDEyYzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZjMC0xLjY2LS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MSAxLjQxQzE1LjU1IDkuOSAxNiAxMC45IDE2IDEyYzAgMi4yMS0xLjc5IDQtNCA0cy00LTEuNzktNC00YzAtMS44NiAxLjI4LTMuNDEgMy0zLjg2djIuMTRjLS42LjM1LTEgLjk4LTEgMS43MiAwIDEuMS45IDIgMiAyczItLjkgMi0yYzAtLjc0LS40LTEuMzgtMS0xLjcyVjJoLTFDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbnNjcmliZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjkzIDE2IDEuNjMtMS42M2MtMi43Ny0zLjAyLTIuNzctNy41NiAwLTEwLjc0TDE3LjkzIDJjLTMuOSAzLjg5LTMuOTEgOS45NSAwIDE0em00Ljk5LTUuMDVhMy4zMTcgMy4zMTcgMCAwIDEgMC0zLjg5bC0xLjY4LTEuNjljLTIuMDIgMi4wMi0yLjAyIDUuMDcgMCA3LjI3bDEuNjgtMS42OXpNOSAxM2MyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTYuMzkgMi41NkMxMy43MSAxNC43IDExLjUzIDE0IDkgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDEgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbnNsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuODcgMTUuMDctMi41NC0yLjUxLjAzLS4wM0ExNy41MiAxNy41MiAwIDAgMCAxNC4wNyA2SDE3VjRoLTdWMkg4djJIMXYxLjk5aDExLjE3QzExLjUgNy45MiAxMC40NCA5Ljc1IDkgMTEuMzUgOC4wNyAxMC4zMiA3LjMgOS4xOSA2LjY5IDhoLTJjLjczIDEuNjMgMS43MyAzLjE3IDIuOTggNC41NmwtNS4wOSA1LjAyTDQgMTlsNS01IDMuMTEgMy4xMS43Ni0yLjA0ek0xOC41IDEwaC0yTDEyIDIyaDJsMS4xMi0zaDQuNzVMMjEgMjJoMmwtNC41LTEyem0tMi42MiA3IDEuNjItNC4zM0wxOS4xMiAxN2gtMy4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJlbmRpbmdEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgMTggMi4yOS0yLjI5LTQuODgtNC44OC00IDRMMiA3LjQxIDMuNDEgNmw2IDYgNC00IDYuMyA2LjI5TDIyIDEydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyZW5kaW5nRmxhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDEyLTQtNHYzSDN2MmgxNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmVuZGluZ1VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgNiAyLjI5IDIuMjktNC44OCA0Ljg4LTQtNEwyIDE2LjU5IDMuNDEgMThsNi02IDQgNCA2LjMtNi4yOUwyMiAxMlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcm91Ymxlc2hvb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiAyMC41OS00LjY5LTQuNjlBNy45MDIgNy45MDIgMCAwIDAgMTkgMTFjMC00LjQyLTMuNTgtOC04LTgtNC4wOCAwLTcuNDQgMy4wNS03LjkzIDdoMi4wMkM1LjU3IDcuMTcgOC4wMyA1IDExIDVjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZjLTIuNDIgMC00LjUtMS40NC01LjQ1LTMuNUgzLjRDNC40NSAxNi42OSA3LjQ2IDE5IDExIDE5YzEuODUgMCAzLjU1LS42MyA0LjktMS42OUwyMC41OSAyMiAyMiAyMC41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40MyA5LjY5IDkuNjUgMTVoMS42NGwxLjI2LTMuNzguOTUgMi4yOGgyVjEyaC0xbC0xLjI1LTNoLTEuNTRsLTEuMTIgMy4zN0w5LjM1IDdINy43bC0xLjI1IDRIMXYxLjVoNi41NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYuNDMgOS41N0wxMiAxNWwtMS41Ny0zLjQzTDcgMTBsMy40My0xLjU3TDEyIDVsMS41NyAzLjQzTDE3IDEwbC0zLjQzIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1cm5lZEluTm90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1LTUtMi4xOEw3IDE4VjVoMTB2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1cm5lZEluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMjFsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbmZvbGRMZXNzRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTggMS40MSAxNS4xNiAwbC0zLjE3IDMuMTdMOC44MiAwIDcuNDEgMS40MSAxMS45OSA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41OCA2LjQxIDE1LjE2IDVsLTMuMTcgMy4xN0w4LjgyIDUgNy40MSA2LjQxIDExLjk5IDExek03LjQyIDE3LjU5IDguODQgMTlsMy4xNy0zLjE3TDE1LjE4IDE5bDEuNDEtMS40MUwxMi4wMSAxM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40MiAyMi41OSA4Ljg0IDI0bDMuMTctMy4xN0wxNS4xOCAyNGwxLjQxLTEuNDFMMTIuMDEgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVuZm9sZE1vcmVEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjgzIDE1LjE3IDExbDEuNDEtMS40MUwxMiA1IDcuNDEgOS41OSA4LjgzIDExIDEyIDcuODN6bTAtNUwxNS4xNyA2bDEuNDEtMS40MUwxMiAwIDcuNDEgNC41OSA4LjgzIDYgMTIgMi44M3ptMCAxOC4zNEw4LjgzIDE4bC0xLjQxIDEuNDFMMTIgMjRsNC41OS00LjU5TDE1LjE3IDE4IDEyIDIxLjE3em0wLTVMOC44MyAxM2wtMS40MSAxLjQxTDEyIDE5bDQuNTktNC41OUwxNS4xNyAxMyAxMiAxNi4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW5wdWJsaXNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIybDIuMjcgMi4yN0E5LjkxIDkuOTEgMCAwIDAgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAyLjA0IDAgMy45My0uNjEgNS41MS0xLjY2bDIuMjcgMi4yNyAxLjQxLTEuNDJ6bS0xMC42LTQuNTktNC4yNC00LjI0IDEuNDEtMS40MSAyLjgzIDIuODMuMTgtLjE4IDEuNDEgMS40MS0xLjU5IDEuNTl6bTMtNS44NC03LjEtNy4xQTkuOTEgOS45MSAwIDAgMSAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwIDAgMi4wNC0uNjEgMy45My0xLjY2IDUuNTFMMTUgMTIuMTdsMi42NS0yLjY1LTEuNDEtMS40MS0yLjY1IDIuNjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwZGF0ZURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC42NyA1Ljg0IDcuMjIgNC4zOUE4Ljg2IDguODYgMCAwIDEgMTIgM2MyLjc0IDAgNS4xOSAxLjIzIDYuODQgMy4xNkwyMSA0djZoLTZsMi40MS0yLjQxQzE2LjEyIDYuMDIgMTQuMTggNSAxMiA1Yy0xLjIgMC0yLjM0LjMxLTMuMzMuODR6TTEzIDdoLTJ2MS4xN2wyIDJWN3ptNi43OCAxNS42MS0zLTNBOC45NzMgOC45NzMgMCAwIDEgMTIgMjFhOSA5IDAgMCAxLTktOWMwLTEuNzYuNTEtMy40IDEuMzktNC43OGwtMy0zTDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyem0tNC40Ni00LjQ2TDUuODQgOC42N0E3LjA2IDcuMDYgMCAwIDAgNSAxMmMwIDMuODYgMy4xNCA3IDcgNyAxLjIgMCAyLjM0LS4zMSAzLjMyLS44NXpNMjAuOTQgMTNoLTIuMDJjLS4xMi44My0uMzkgMS42MS0uNzcgMi4zMmwxLjQ3IDEuNDdjLjctMS4xMiAxLjE3LTIuNDEgMS4zMi0zLjc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVcGRhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMC4xMmgtNi43OGwyLjc0LTIuODJjLTIuNzMtMi43LTcuMTUtMi44LTkuODgtLjEtMi43MyAyLjcxLTIuNzMgNy4wOCAwIDkuNzlzNy4xNSAyLjcxIDkuODggMEMxOC4zMiAxNS42NSAxOSAxNC4wOCAxOSAxMi4xaDJjMCAxLjk4LS44OCA0LjU1LTIuNjQgNi4yOS0zLjUxIDMuNDgtOS4yMSAzLjQ4LTEyLjcyIDAtMy41LTMuNDctMy41My05LjExLS4wMi0xMi41OHM5LjE0LTMuNDcgMTIuNjUgMEwyMSAzdjcuMTJ6TTEyLjUgOHY0LjI1bDMuNSAyLjA4LS43MiAxLjIxTDExIDEzVjhoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVcGdyYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTh2Mkg4di0yaDh6TTExIDcuOTlWMTZoMlY3Ljk5aDNMMTIgNCA4IDcuOTloM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVyaWZpZWRVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bS0yIDE2LTQtNCAxLjQxLTEuNDFMMTAgMTQuMTdsNi41OS02LjU5TDE4IDlsLTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmVyaWZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMyAxMi0yLjQ0LTIuNzkuMzQtMy42OS0zLjYxLS44Mi0xLjg5LTMuMkwxMiAyLjk2IDguNiAxLjUgNi43MSA0LjY5IDMuMSA1LjVsLjM0IDMuN0wxIDEybDIuNDQgMi43OS0uMzQgMy43IDMuNjEuODJMOC42IDIyLjVsMy40LTEuNDcgMy40IDEuNDYgMS44OS0zLjE5IDMuNjEtLjgyLS4zNC0zLjY5TDIzIDEyem0tMTIuOTEgNC43Mi0zLjgtMy44MSAxLjQ4LTEuNDggMi4zMiAyLjMzIDUuODUtNS44NyAxLjQ4IDEuNDgtNy4zMyA3LjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWZXJ0aWNhbFNwbGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE1aDh2LTJIM3Yyem0wIDRoOHYtMkgzdjJ6bTAtOGg4VjlIM3Yyem0wLTZ2Mmg4VjVIM3ptMTAgMGg4djE0aC04VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdBZ2VuZGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM0g1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTRjMC0xLjEtLjktMi0yLTJ6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdBcnJheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVoLTN2MTRoM1Y1em0tNCAwSDd2MTRoMTBWNXpNNiA1SDN2MTRoM1Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q2Fyb3VzZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDdoNHYxMEgyVjd6bTUgMTJoMTBWNUg3djE0ek0xOCA3aDR2MTBoLTRWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0NvbHVtbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjY3IDV2MTRIOS4zM1Y1aDUuMzR6bTEgMTRIMjFWNWgtNS4zM3YxNHptLTcuMzQgMFY1SDN2MTRoNS4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0NvbWZ5QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS05IDEzSDd2LTRoNHY0em0wLTZIN1Y3aDR2NHptNiA2aC00di00aDR2NHptMC02aC00VjdoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q29tcGFjdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tOC41IDEyLjVoLTR2LTRoNHY0em0wLTVoLTR2LTRoNHY0em01IDVoLTR2LTRoNHY0em0wLTVoLTR2LTRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q296eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tOC43NSAxMi43NWgtNHYtNGg0djR6bTAtNS41aC00di00aDR2NHptNS41IDUuNWgtNHYtNGg0djR6bTAtNS41aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjFoMTl2LTNIMnYzek0yMCA4SDNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE3Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXpNMiAzdjNoMTlWM0gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3SGVhZGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTVoMTZ2LTJINHYyem0wIDRoMTZ2LTJINHYyem0wLThoMTZWOUg0djJ6bTAtNnYyaDE2VjVINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld0luQXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4yNSA3LjYtNS41LTMuMThhMS40OSAxLjQ5IDAgMCAwLTEuNSAwTDUuNzUgNy42Yy0uNDYuMjctLjc1Ljc2LS43NSAxLjN2Ni4zNWMwIC41NC4yOSAxLjAzLjc1IDEuM2w1LjUgMy4xOGMuNDYuMjcgMS4wNC4yNyAxLjUgMGw1LjUtMy4xOGMuNDYtLjI3Ljc1LS43Ni43NS0xLjNWOC45YzAtLjU0LS4yOS0xLjAzLS43NS0xLjN6TTcgMTQuOTZ2LTQuNjJsNCAyLjMydjQuNjFsLTQtMi4zMXptNS00LjAzTDggOC42MWw0LTIuMzEgNCAyLjMxLTQgMi4zMnptMSA2LjM0di00LjYxbDQtMi4zMnY0LjYybC00IDIuMzF6TTcgMkgzLjVDMi42NyAyIDIgMi42NyAyIDMuNVY3aDJWNGgzVjJ6bTEwIDBoMy41Yy44MyAwIDEuNS42NyAxLjUgMS41VjdoLTJWNGgtM1Yyek03IDIySDMuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjE3aDJ2M2gzdjJ6bTEwIDBoMy41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVYxN2gtMnYzaC0zdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdLYW5iYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxN0g3VjdoMnYxMHptNC01aC0yVjdoMnY1em00IDNoLTJWN2gydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNGg0di00SDN2NHptMCA1aDR2LTRIM3Y0ek0zIDloNFY1SDN2NHptNSA1aDEzdi00SDh2NHptMCA1aDEzdi00SDh2NHpNOCA1djRoMTNWNUg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3TW9kdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNjcgNXY2LjVIOS4zM1Y1aDUuMzR6bTEgNi41SDIxVjVoLTUuMzN2Ni41em0tMSA3LjV2LTYuNUg5LjMzVjE5aDUuMzR6bTEtNi41VjE5SDIxdi02LjVoLTUuMzN6bS03LjM0IDBIM1YxOWg1LjMzdi02LjV6bTAtMVY1SDN2Ni41aDUuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdRdWlsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDV2Ni41SDkuMzNWNUgyMXptLTYuMzMgMTR2LTYuNUg5LjMzVjE5aDUuMzR6bTEtNi41VjE5SDIxdi02LjVoLTUuMzN6TTguMzMgMTlWNUgzdjE0aDUuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdTaWRlYmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMjBIMlY0aDE0djE2em0yLTEyaDRWNGgtNHY0em0wIDEyaDR2LTRoLTR2NHptMC02aDR2LTRoLTR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlld1N0cmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTd2LTJjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnYyYzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0yek0zIDd2MmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdUaW1lbGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNEg2di0yaDZ2MnptMy00SDl2LTJoNnYyem0zLTRoLTZWN2g2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zMyAyMEg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMS4zM2MxLjEgMCAyIC45IDIgMnYxMmEyIDIgMCAwIDEtMiAyek0yMiAxOFY2YzAtMS4xLS45LTItMi0yaC0xLjMzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAySDIwYTIgMiAwIDAgMCAyLTJ6bS03LjMzIDBWNmMwLTEuMS0uOS0yLTItMmgtMS4zM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxLjMzYzEuMSAwIDItLjkgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaXNpYmlsaXR5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MyLjc2IDAgNSAyLjI0IDUgNSAwIC42NS0uMTMgMS4yNi0uMzYgMS44M2wyLjkyIDIuOTJjMS41MS0xLjI2IDIuNy0yLjg5IDMuNDMtNC43NS0xLjczLTQuMzktNi03LjUtMTEtNy41LTEuNCAwLTIuNzQuMjUtMy45OC43bDIuMTYgMi4xNkMxMC43NCA3LjEzIDExLjM1IDcgMTIgN3pNMiA0LjI3bDIuMjggMi4yOC40Ni40NkExMS44MDQgMTEuODA0IDAgMCAwIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNSAxLjU1IDAgMy4wMy0uMyA0LjM4LS44NGwuNDIuNDJMMTkuNzMgMjIgMjEgMjAuNzMgMy4yNyAzIDIgNC4yN3pNNy41MyA5LjhsMS41NSAxLjU1Yy0uMDUuMjEtLjA4LjQzLS4wOC42NSAwIDEuNjYgMS4zNCAzIDMgMyAuMjIgMCAuNDQtLjAzLjY1LS4wOGwxLjU1IDEuNTVjLS42Ny4zMy0xLjQxLjUzLTIuMi41My0yLjc2IDAtNS0yLjI0LTUtNSAwLS43OS4yLTEuNTMuNTMtMi4yem00LjMxLS43OCAzLjE1IDMuMTUuMDItLjE2YzAtMS42Ni0xLjM0LTMtMy0zbC0uMTcuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpc2liaWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0LjVDNyA0LjUgMi43MyA3LjYxIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNXM5LjI3LTMuMTEgMTEtNy41Yy0xLjczLTQuMzktNi03LjUtMTEtNy41ek0xMiAxN2MtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6bTAtOGMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvaWNlT3Zlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTkgOS4xOGMwLS4wNi4wMS0uMTIuMDEtLjE4IDAtMi4yMS0xLjc5LTQtNC00LS4wNiAwLS4xMi4wMS0uMTguMDFsNC4xNyA0LjE3em0tNi4xLTMuNTZMNC4yNyAzIDMgNC4yN2wyLjYyIDIuNjJDNS4yMyA3LjUgNSA4LjIyIDUgOWMwIDIuMjEgMS43OSA0IDQgNCAuNzggMCAxLjUtLjIzIDIuMTEtLjYyTDE5LjczIDIxIDIxIDE5LjczbC04LjYyLTguNjItNS40OS01LjQ5ek05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em03Ljc2LTkuNjQtMS42OCAxLjY5Yy44NCAxLjE4Ljg0IDIuNzEgMCAzLjg5bDEuNjggMS42OWMyLjAyLTIuMDIgMi4wMi01LjA3IDAtNy4yN3pNMjAuMDcgMmwtMS42MyAxLjYzYzIuNzcgMy4wMiAyLjc3IDcuNTYgMCAxMC43NEwyMC4wNyAxNmMzLjktMy44OSAzLjkxLTkuOTUgMC0xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F0Y2hMYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem00LjIgMTQuMkwxMSAxM1Y3aDEuNXY1LjJsNC41IDIuNy0uOCAxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdlYmhvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNWg1Ljg4Yy4yNy0uMzEuNjctLjUgMS4xMi0uNS44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjVjLS40NCAwLS44NC0uMTktMS4xMi0uNUgxMS45QTUgNSAwIDEgMSA2IDExLjF2Mi4wN2MtMS4xNi40MS0yIDEuNTMtMiAyLjgzIDAgMS42NSAxLjM1IDMgMyAzczMtMS4zNSAzLTN2LTF6bTIuNS0xMWMxLjY1IDAgMyAxLjM1IDMgM2gyYzAtMi43Ni0yLjI0LTUtNS01YTUuMDAyIDUuMDAyIDAgMCAwLTMuNDUgOC42MmwtMi4zNSAzLjljLS42OC4xNC0xLjIuNzUtMS4yIDEuNDggMCAuODMuNjcgMS41IDEuNSAxLjVhMS40OTggMS40OTggMCAwIDAgMS40My0xLjk1bDMuMzgtNS42M0EzLjAwMyAzLjAwMyAwIDAgMSA5LjUgN2MwLTEuNjUgMS4zNS0zIDMtM3ptNC41IDljLS42NCAwLTEuMjMuMi0xLjcyLjU0bC0zLjA1LTUuMDdDMTEuNTMgOC4zNSAxMSA3Ljc0IDExIDdjMC0uODMuNjctMS41IDEuNS0xLjVTMTQgNi4xNyAxNCA3YzAgLjE1LS4wMi4yOS0uMDYuNDNsMi4xOSAzLjY1Yy4yOC0uMDUuNTctLjA4Ljg3LS4wOCAyLjc2IDAgNSAyLjI0IDUgNXMtMi4yNCA1LTUgNWE1IDUgMCAwIDEtNC4zMy0yLjVoMi42N2MuNDguMzIgMS4wNS41IDEuNjYuNSAxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lkdGhGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgNmgxdjEySDRWNnptMTYgMTJoLTFWNmgxdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWR0aE5vcm1hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDZoNHYxMkg0VjZ6bTE2IDEyaC00VjZoNHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lkdGhXaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgNmgydjEySDRWNnptMTYgMTJoLTJWNmgydjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpUHJvdGVjdGVkU2V0dXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43MSA1LjI5IDE5IDNoLTh2OGwyLjMtMi4zYzEuOTcgMS40NiAzLjI1IDMuNzggMy4yNSA2LjQyIDAgMS4zMS0uMzIgMi41NC0uODggMy42MyAyLjMzLTEuNTIgMy44OC00LjE0IDMuODgtNy4xMyAwLTIuNTItMS4xMS00Ljc3LTIuODQtNi4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40NiA4Ljg4YzAtMS4zMS4zMi0yLjU0Ljg4LTMuNjNhOC40NzkgOC40NzkgMCAwIDAtMy44OCA3LjEzYzAgMi41MiAxLjEgNC43NyAyLjg0IDYuMzNMNSAyMWg4di04bC0yLjMgMi4zYy0xLjk2LTEuNDYtMy4yNC0zLjc4LTMuMjQtNi40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV29ya0hpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMWMxLjQ5IDAgMi44Ny40NyA0IDEuMjZWOGMwLTEuMTEtLjg5LTItMi0yaC00VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmg3LjY4QTYuOTk1IDYuOTk1IDAgMCAxIDE4IDExem0tOC03aDR2MmgtNFY0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTEuNjUgNy4zNUwxNy41IDE4LjJWMTVoMXYyLjc5bDEuODUgMS44NS0uNy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV29ya09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzIDIxLjc0LTEuNDYtMS40Nkw3LjIxIDUuOTUgMy4yNSAxLjk5IDEuOTkgMy4yNWwyLjcgMi43aC0uNjRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMmwtLjAxIDExYzAgMS4xMS44OSAyIDIgMmgxNS42NEwyMS43NCAyMyAyMyAyMS43NHpNMjIgNy45NWMuMDUtMS4xMS0uODQtMi0xLjk1LTEuOTVoLTRWMy45NWMwLTEuMTEtLjg5LTItMi0xLjk1aC00Yy0xLjExLS4wNS0yIC44NC0yIDEuOTV2LjMybDEzLjk1IDE0VjcuOTV6TTE0LjA1IDZIMTBWMy45NWg0LjA1VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmtPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE0IDZWNGgtNHYyaDR6TTQgOHYxMWgxNlY4SDR6bTE2LTJjMS4xMSAwIDIgLjg5IDIgMnYxMWMwIDEuMTEtLjg5IDItMiAySDRjLTEuMTEgMC0yLS44OS0yLTJsLjAxLTExYzAtMS4xMS44OC0yIDEuOTktMmg0VjRjMC0xLjExLjg5LTIgMi0yaDRjMS4xMSAwIDIgLjg5IDIgMnYyaDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC00VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTYgMGgtNFY0aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV3lzaXd5ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE2SDVWN2gxNHYxMnptLTItN0g3di0yaDEwdjJ6bS00IDRIN3YtMmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFlvdXR1YmVTZWFyY2hlZEZvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMDEgMTRoLS44bC0uMjctLjI3YTYuNDUxIDYuNDUxIDAgMCAwIDEuNTctNC4yM2MwLTMuNTktMi45MS02LjUtNi41LTYuNXMtNi41IDMtNi41IDYuNUgybDMuODQgNCA0LjE2LTRINi41MWE0LjUgNC41IDAgMCAxIDkgMCA0LjUwNyA0LjUwNyAwIDAgMS02LjMyIDQuMTJMNy43MSAxNS4xYTYuNDc0IDYuNDc0IDAgMCAwIDcuNTItLjY3bC4yNy4yN3YuNzlsNS4wMSA0Ljk5TDIyIDE5bC00Ljk5LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFpvb21JbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwaC0ydjJIOXYtMkg3VjloMlY3aDF2MmgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFpvb21PdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0ek03IDloNXYxSDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wMSAyMS4wMWMwIDEuMS44OSAxLjk5IDEuOTkgMS45OXMxLjk5LS44OSAxLjk5LTEuOTloLTMuOTh6bTguODctNC4xOVYxMWMwLTMuMjUtMi4yNS01Ljk3LTUuMjktNi42OXYtLjcyQzEzLjU5IDIuNzEgMTIuODggMiAxMiAycy0xLjU5LjcxLTEuNTkgMS41OXYuNzJBNi44NzMgNi44NzMgMCAwIDAgNS4xMiAxMXY1LjgyTDMgMTguOTRWMjBoMTh2LTEuMDZsLTIuMTItMi4xMnpNMTYgMTMuMDFoLTN2M2gtMnYtM0g4VjExaDNWOGgydjNoM3YyLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvRGVsZXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMmgtMy41bC0xLTFoLTVsLTEgMUgxdjJoMTR6TTE2IDljLS43IDAtMS4zNy4xLTIgLjI5VjVIMnYxMmMwIDEuMS45IDIgMiAyaDUuNjhBNi45OTkgNi45OTkgMCAwIDAgMjMgMTZjMC0zLjg3LTMuMTMtNy03LTd6bTAgMTJjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEySDE1djVsMy42IDIuMS44LTEuMi0yLjktMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFcnJvck91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDJ2MmgtMnptMC04aDJ2NmgtMnptLjk5LTVDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25JbXBvcnRhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE2di01YzAtMy4wNy0xLjY0LTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjYzIDUuMzYgNiA3LjkyIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTUgMGgtMnYtMmgydjJ6bTAtNGgtMlY4aDJ2NHptLTEgMTBjMS4xIDAgMi0uOSAyLTJoLTRhMiAyIDAgMCAwIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2FybmluZ0FtYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS45OSAxOS41MyAxOUg0LjQ3TDEyIDUuOTlNMTIgMiAxIDIxaDIyTDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE2aC0ydjJoMnpNMTMgMTBoLTJ2NWgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxMEsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEwLjVoMS41djNIMTB6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek03LjUgMTVINnYtNC41SDQuNVY5aDN2NnptNS41LTFjMCAuNTUtLjQ1IDEtMSAxSDkuNWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xSDEyYy41NSAwIDEgLjQ1IDEgMXY0em02LjUgMWgtMS43NUwxNiAxMi43NVYxNWgtMS41VjlIMTZ2Mi4yNUwxNy43NSA5aDEuNzVsLTIuMjUgMyAyLjI1IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDFrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTkgMTVINy41di00LjVINlY5aDN2NnptNC43NSAwTDEyIDEyLjc1VjE1aC0xLjVWOUgxMnYyLjI1TDEzLjc1IDloMS43NWwtMi4yNSAzIDIuMjUgM2gtMS43NXptNS43NS0yLjVIMThWMTRoLTF2LTEuNWgtMS41di0xSDE3VjEwaDF2MS41aDEuNXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04LjUgMTJIOXYtNC41SDcuNVY5aDN2NnptNyAwaC0xLjc1TDE0IDEyLjc1VjE1aC0xLjVWOUgxNHYyLjI1TDE1Ljc1IDloMS43NWwtMi4yNSAzIDIuMjUgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMmtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkuNSA4LjVjMCAuNTUtLjQ1IDEtMSAxaC0ydjFoM1YxNUg1di0yLjVjMC0uNTUuNDUtMSAxLTFoMnYtMUg1VjloMy41Yy41NSAwIDEgLjQ1IDEgMXYxLjV6bTQuNzUgMy41LTEuNzUtMi4yNVYxNUgxMVY5aDEuNXYyLjI1TDE0LjI1IDlIMTZsLTIuMjUgM0wxNiAxNWgtMS43NXpNMjAgMTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDJLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkgOS41SDh2MWgzVjE1SDYuNXYtMi41YzAtLjU1LjQ1LTEgMS0xaDJ2LTFoLTNWOUgxMGMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMXptOCAyLjVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kM2tQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOS41IDE0YzAgLjU1LS40NSAxLTEgMUg1di0xLjVoM3YtMUg2di0xaDJ2LTFINVY5aDMuNWMuNTUgMCAxIC40NSAxIDF2NHptNi41IDFoLTEuNzVsLTEuNzUtMi4yNVYxNUgxMVY5aDEuNXYyLjI1TDE0LjI1IDlIMTZsLTIuMjUgM0wxNiAxNXptNC0yLjVoLTEuNVYxNGgtMXYtMS41SDE2di0xaDEuNVYxMGgxdjEuNUgyMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDExYzAgLjU1LS40NSAxLTEgMUg2LjV2LTEuNWgzdi0xaC0ydi0xaDJ2LTFoLTNWOUgxMGMuNTUgMCAxIC40NSAxIDF2NHptNyAxaC0xLjc1bC0xLjc1LTIuMjVWMTVIMTNWOWgxLjV2Mi4yNUwxNi4yNSA5SDE4bC0yLjI1IDNMMTggMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDRrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04LjUgMTAuNWgtMVYxNUg4di0xLjVINVY5aDEuNXYzSDhWOWgxLjV2M2gxdjEuNXpNMTYgMTVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxMVY5aDEuNXYyLjI1TDE0LjI1IDlIMTZsLTIuMjUgM0wxNiAxNXptNC0yLjVoLTEuNVYxNGgtMXYtMS41SDE2di0xaDEuNVYxMGgxdjEuNUgyMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ0SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDEwLjVoLTFWMTVIOS41di0xLjVoLTNWOUg4djNoMS41VjlIMTF2M2gxdjEuNXptNiAxLjVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNUcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxM2gydjJoLTVWOWg3YzAtMS4xLS45LTItMi0yaC01Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNGgtNHYyek0zIDEzaDV2MkgzdjJoNWMxLjEgMCAyLS45IDItMnYtMmMwLTEuMS0uOS0yLTItMkg1VjloNVY3SDN2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNWtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkuNSA3LjVoLTN2MWgyYy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFINXYtMS41aDN2LTFINVY5aDQuNXYxLjV6TTE2IDE1aC0xLjc1bC0xLjc1LTIuMjVWMTVIMTFWOWgxLjV2Mi4yNUwxNC4yNSA5SDE2bC0yLjI1IDNMMTYgMTV6bTQtMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNUsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOCA3LjVIOHYxaDJjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg2LjV2LTEuNWgzdi0xaC0zVjlIMTF2MS41em03IDQuNWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQ2a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxMi41SDhWMTRINi41ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkuNSA3LjVoLTN2MWgyYy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFINmMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDMuNXYxLjV6TTE2IDE1aC0xLjc1bC0xLjc1LTIuMjVWMTVIMTFWOWgxLjV2Mi4yNUwxNC4yNSA5SDE2bC0yLjI1IDNMMTYgMTV6bTQtMi41aC0xLjVWMTRoLTF2LTEuNUgxNnYtMWgxLjVWMTBoMXYxLjVIMjB2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNksgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTIuNWgxLjVWMTRIOHpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDcuNUg4djFoMmMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxSDcuNWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xSDExdjEuNXptNyA0LjVoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kN2tQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOCAxNUg2LjI1bDEuMzgtNC41SDVWOWgzLjVjLjY3IDAgMS4xNS42NS45NiAxLjI5TDggMTV6bTggMGgtMS43NWwtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1em00LTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDdLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOS41IDE1SDcuNzVsMS4zOC00LjVINi41VjlIMTBjLjY3IDAgMS4xNS42NS45NiAxLjI5TDkuNSAxNXptOC41IDBoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOGtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMTIuNUg4VjE0SDYuNXptMC0yLjVIOHYxLjVINi41ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOS41IDE0YzAgLjU1LS40NSAxLTEgMUg2Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0em02LjUgMWgtMS43NWwtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1em00LTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDhLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEyLjVoMS41VjE0SDh6TTggMTBoMS41djEuNUg4em0xMS03SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTFjMCAuNTUtLjQ1IDEtMSAxSDcuNWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xSDEwYy41NSAwIDEgLjQ1IDEgMXY0em03IDFoLTEuNzVsLTEuNzUtMi4yNVYxNUgxM1Y5aDEuNXYyLjI1TDE2LjI1IDlIMThsLTIuMjUgM0wxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOWtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgMTBIOHYxLjVINi41ek0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOS41IDE0YzAgLjU1LS40NSAxLTEgMUg1di0xLjVoM3YtMUg2Yy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0em02LjUgMWgtMS43NWwtMS43NS0yLjI1VjE1SDExVjloMS41djIuMjVMMTQuMjUgOUgxNmwtMi4yNSAzTDE2IDE1em00LTIuNWgtMS41VjE0aC0xdi0xLjVIMTZ2LTFoMS41VjEwaDF2MS41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDlLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDEwaDEuNXYxLjVIOHptMTEtN0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDExYzAgLjU1LS40NSAxLTEgMUg2LjV2LTEuNWgzdi0xaC0yYy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFIMTBjLjU1IDAgMSAuNDUgMSAxdjR6bTcgMWgtMS43NWwtMS43NS0yLjI1VjE1SDEzVjloMS41djIuMjVMMTYuMjUgOUgxOGwtMi4yNSAzTDE4IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRUb1F1ZXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg1djJoOHYtMmg1YzEuMSAwIDEuOTktLjkgMS45OS0yTDIzIDVhMiAyIDAgMCAwLTItMnptMCAxNEgzVjVoMTh2MTJ6bS01LTd2MmgtM3YzaC0ydi0zSDh2LTJoM1Y3aDJ2M2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJwbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyMmgxMmwtNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNHYtMkgzVjVoMTh2MTJoLTR2Mmg0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsYnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxNC41Yy0yLjQ5IDAtNC41LTIuMDEtNC41LTQuNVM5LjUxIDcuNSAxMiA3LjVzNC41IDIuMDEgNC41IDQuNS0yLjAxIDQuNS00LjUgNC41em0wLTUuNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnRUcmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEzaC04di0yaDh2MnptMC02aC04djJoOFY3em0tOCAxMGg4di0yaC04djJ6bS0yLTh2NmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNmMxLjEgMCAyIC45IDIgMnptLTEuNSA2LTIuMjUtMy0xLjc1IDIuMjYtMS4yNS0xLjUxTDMuNSAxNWg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdWRpb0ZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTIgMTFoLTN2My43NWMwIDEuMjQtMS4wMSAyLjI1LTIuMjUgMi4yNVM4LjUgMTcuOTkgOC41IDE2Ljc1czEuMDEtMi4yNSAyLjI1LTIuMjVjLjQ2IDAgLjg5LjE0IDEuMjUuMzhWMTFoNHYyem0tMy00VjMuNUwxOC41IDlIMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF2VGltZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxN2MwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptMC0xNHY0aDJWNS4wOGMzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAzLjg3LTMuMTMgNy03IDdzLTctMy4xMy03LTdjMC0xLjY4LjU5LTMuMjIgMS41OC00LjQyTDEyIDEzbDEuNDEtMS40MS02LjgtNi44di4wMkM0LjQyIDYuNDUgMyA5LjA1IDMgMTJjMCA0Ljk3IDQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMThoLTF6bTcgOWMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xek02IDEyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTEtMSAuNDUtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmFuZGluZ1dhdGVybWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTl2LTZoOXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxsVG9BY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDN2LTNoMTh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvc2VkQ2FwdGlvbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi44MyA0SDE5YzEuMSAwIDIgLjkgMiAydjEyYzAgLjA1LS4wMS4xLS4wMi4xNmwtMy4zOC0zLjM4Yy4yNC0uMTkuNC0uNDYuNC0uNzh2LTFoLTEuNXYuNWgtLjE3bC0xLjgzLTEuODNWMTAuNWgydi41SDE4di0xYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdi4xN0w2LjgzIDR6bTEyLjk1IDE4LjYxTDE3LjE3IDIwSDVhMiAyIDAgMCAxLTItMlY2YzAtLjA1LjAyLS4xLjAyLS4xNUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTExIDEzLjgzbC0uODMtLjgzSDkuNXYuNWgtMnYtM2guMTdMNi40IDkuMjJjLS4yNC4xOS0uNC40Ni0uNC43OHY0YzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xdi0uMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3NlZENhcHRpb25PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgNS41djEzaC0xNXYtMTNoMTV6TTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTggN0g5LjV2LS41aC0ydjNoMlYxM0gxMXYxYzAgLjU1LS40NSAxLTEgMUg3Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXptNyAwaC0xLjV2LS41aC0ydjNoMlYxM0gxOHYxYzAgLjU1LS40NSAxLTEgMWgtM2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3NlZENhcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS04IDdIOS41di0uNWgtMnYzaDJWMTNIMTF2MWMwIC41NS0uNDUgMS0xIDFIN2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjF6bTcgMGgtMS41di0uNWgtMnYzaDJWMTNIMTh2MWMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250cm9sQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTQgNS41NCAxMy43NyA3LjMgMTIgNS41NCAxMC4yMyA3LjMgOC40NiA1LjU0IDEyIDJ6bTIuOTIgMTAtMS43Ni0xLjc3TDE4LjQ2IDEybC0xLjc2LTEuNzcgMS43Ni0xLjc3TDIyIDEyem0tMTAgMi45MiAxLjc3LTEuNzZMMTIgMTguNDZsMS43Ny0xLjc2IDEuNzcgMS43NkwxMiAyMnptLTIuOTItMTAgMS43NiAxLjc3TDUuNTQgMTJsMS43NiAxLjc3LTEuNzYgMS43N0wyIDEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXF1YWxpemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMjBoNFY0aC00djE2em0tNiAwaDR2LThINHY4ek0xNiA5djExaDRWOWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwbGljaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNmgtNHYyaDR2MmgtNHYyaDR2Mkg5VjdoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYXN0Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQgMTggOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhc3RSZXdpbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxOFY2bC04LjUgNiA4LjUgNnptLjUtNiA4LjUgNlY2bC04LjUgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmVhdHVyZWRQbGF5TGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDhIM1Y5aDl2MnptMC00SDNWNWg5djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZlYXR1cmVkVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSA5SDNWNWg5djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpYmVyRHZyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAxMC41aDJ2MWgtMnYtMXptLTEzIDBoMnYzaC0ydi0zek0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxOGEyIDIgMCAwIDAgMi0yVjVjMC0xLjExLS44OS0yLTItMnpNOCAxMy41YzAgLjg1LS42NSAxLjUtMS41IDEuNUgzVjloMy41Yy44NSAwIDEuNS42NSAxLjUgMS41djN6bTQuNjIgMS41aC0xLjVMOS4zNyA5aDEuNWwxIDMuNDMgMS0zLjQzaDEuNWwtMS43NSA2ek0yMSAxMS41YzAgLjYtLjQgMS4xNS0uOSAxLjRMMjEgMTVoLTEuNWwtLjg1LTJIMTcuNXYySDE2VjloMy41Yy44NSAwIDEuNS42NSAxLjUgMS41djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpYmVyTWFudWFsUmVjb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWJlck5ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yek04LjUgMTVINy4zbC0yLjU1LTMuNVYxNUgzLjVWOWgxLjI1bDIuNSAzLjVWOUg4LjV2NnptNS00Ljc0SDExdjEuMTJoMi41djEuMjZIMTF2MS4xMWgyLjVWMTVoLTRWOWg0djEuMjZ6bTcgMy43NGMwIC41NS0uNDUgMS0xIDFoLTRjLS41NSAwLTEtLjQ1LTEtMVY5aDEuMjV2NC41MWgxLjEzVjkuOTloMS4yNXYzLjUxaDEuMTJWOWgxLjI1djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpYmVyUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDEwLjVoMnYxaC0yek0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnpNOSAxMS41YzAgLjg1LS42NSAxLjUtMS41IDEuNWgtMnYySDRWOWgzLjVjLjg1IDAgMS41LjY1IDEuNSAxLjV2MXptMy41IDMuNUgxMVY5aDEuNXY2em03LjUgMGgtMS4ybC0yLjU1LTMuNVYxNUgxNVY5aDEuMjVsMi41IDMuNVY5SDIwdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpYmVyU21hcnRSZWNvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjhcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNC4yNnYyLjA5YTUuOTkgNS45OSAwIDAgMSAwIDExLjN2Mi4wOWMzLjQ1LS44OSA2LTQuMDEgNi03Ljc0cy0yLjU1LTYuODUtNi03Ljc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3J3YXJkMTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjg2IDE1Ljk0di00LjI3aC0uMDlMOSAxMi4zdi42OWwxLjAxLS4zMXYzLjI2ek0xMi4yNSAxMy40NHYuNzRjMCAxLjkgMS4zMSAxLjgyIDEuNDQgMS44Mi4xNCAwIDEuNDQuMDkgMS40NC0xLjgydi0uNzRjMC0xLjktMS4zMS0xLjgyLTEuNDQtMS44Mi0uMTQgMC0xLjQ0LS4wOS0xLjQ0IDEuODJ6bTIuMDQtLjEydi45N2MwIC43Ny0uMjEgMS4wMy0uNTkgMS4wM3MtLjYtLjI2LS42LTEuMDN2LS45N2MwLS43NS4yMi0xLjAxLjU5LTEuMDEuMzgtLjAxLjYuMjYuNiAxLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3J3YXJkMzAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNiAyLjY5LTYgNi02djRsNS01LTUtNXY0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LThoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA2IDE1LjM4Yy0uMjkgMC0uNjItLjE3LS42Mi0uNTRoLS44NWMwIC45Ny45IDEuMjMgMS40NSAxLjIzLjg3IDAgMS41MS0uNDYgMS41MS0xLjI1IDAtLjY2LS40NS0uOS0uNzEtMSAuMTEtLjA1LjY1LS4zMi42NS0uOTIgMC0uMjEtLjA1LTEuMjItMS40NC0xLjIyLS42MiAwLTEuNC4zNS0xLjQgMS4xNmguODVjMC0uMzQuMzEtLjQ4LjU3LS40OC41OSAwIC41OC41LjU4LjU0IDAgLjUyLS40MS41OS0uNjMuNTloLS40NnYuNjZoLjQ1Yy42NSAwIC43LjQyLjcuNjQgMCAuMzItLjIxLjU5LS42NS41OXpNMTMuODUgMTEuNjhjLS4xNCAwLTEuNDQtLjA4LTEuNDQgMS44MnYuNzRjMCAxLjkgMS4zMSAxLjgyIDEuNDQgMS44Mi4xNCAwIDEuNDQuMDkgMS40NC0xLjgydi0uNzRjLjAxLTEuOTEtMS4zLTEuODItMS40NC0xLjgyem0uNiAyLjY3YzAgLjc3LS4yMSAxLjAzLS41OSAxLjAzcy0uNi0uMjYtLjYtMS4wM3YtLjk3YzAtLjc1LjIyLTEuMDEuNTktMS4wMS4zOCAwIC42LjI2LjYgMS4wMXYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcndhcmQ1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTYgMi42OS02IDYtNnY0bDUtNS01LTV2NGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMyAxNS4zOGMtLjQ0IDAtLjU4LS4zMS0uNi0uNTZoLS44NGMuMDMuODUuNzkgMS4yNSAxLjQ0IDEuMjUuOTMgMCAxLjQ0LS42MyAxLjQ0LTEuNDMgMC0xLjMzLS45Ny0xLjQ0LTEuMy0xLjQ0LS4yIDAtLjQzLjA1LS42NC4xNmwuMTEtLjkyaDEuN3YtLjcxaC0yLjM5bC0uMjUgMi4xNy42Ny4xN2MuMTMtLjEzLjI4LS4yMy41Ny0uMjMuNCAwIC42OS4yMy42OS43NS0uMDEuMDUuMDIuNzktLjYuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdhbWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNy41VjJIOXY1LjVsMyAzIDMtM3pNNy41IDlIMnY2aDUuNWwzLTMtMy0zek05IDE2LjVWMjJoNnYtNS41bC0zLTMtMyAzek0xNi41IDlsLTMgMyAzIDNIMjJWOWgtNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTggMTJIOS41di0yaC0ydjJINlY5aDEuNXYyLjVoMlY5SDExdjZ6bTItNmg0Yy41NSAwIDEgLjQ1IDEgMXY0YzAgLjU1LS40NSAxLTEgMWgtNFY5em0xLjUgNC41aDJ2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVhcmluZ0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4wMyAzLjJDNy4xNSAyLjQ0IDguNTEgMiAxMCAyYzMuOTMgMCA3IDMuMDcgNyA3IDAgMS4yNi0uMzggMi42NS0xLjA3IDMuOS0uMDIuMDQtLjA1LjA4LS4wOC4xM2wtMS40OC0xLjQ4Yy40LS44Ni42My0xLjc1LjYzLTIuNTUgMC0yLjgtMi4yLTUtNS01LS45MiAwLTEuNzYuMjYtMi41LjY3TDYuMDMgMy4yem0xMS4xOCAxMS4xOCAxLjQzIDEuNDNDMjAuMTEgMTMuOTMgMjEgMTEuNTcgMjEgOWMwLTMuMDQtMS4yMy01Ljc5LTMuMjItNy43OGwtMS40MiAxLjQyQTguOTM3IDguOTM3IDAgMCAxIDE5IDljMCAyLjAyLS42NyAzLjg4LTEuNzkgNS4zOHpNMTAgNi41Yy0uMjEgMC0uNC4wMy0uNTkuMDhsMy4wMSAzLjAxYy4wNS0uMTkuMDgtLjM4LjA4LS41OUEyLjUgMi41IDAgMCAwIDEwIDYuNXptMTEuMTkgMTQuNjlMMi44MSAyLjgxIDEuMzkgNC4yMmwyLjEzIDIuMTNDMy4xOSA3LjE2IDMgOC4wNSAzIDloMmMwLS4zNi4wNS0uNzEuMTItMS4wNWw2LjYxIDYuNjFjLS44OC42OC0xLjc4IDEuNDEtMi4yNyAyLjktLjUgMS41LTEgMi4wMS0xLjcxIDIuMzgtLjE5LjEtLjQ2LjE2LS43NS4xNi0xLjEgMC0yLS45LTItMkgzYTMuOTk5IDMuOTk5IDAgMCAwIDUuNjQgMy42NWMxLjM2LS43MSAyLjEzLTEuNzMgMi43My0zLjU1LjMyLS45OC45LTEuNDMgMS43MS0yLjA1LjAzLS4wMi4wNS0uMDQuMDgtLjA2bDYuNjIgNi42MiAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlYXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMGMtLjI5IDAtLjU2LS4wNi0uNzYtLjE1LS43MS0uMzctMS4yMS0uODgtMS43MS0yLjM4LS41MS0xLjU2LTEuNDctMi4yOS0yLjM5LTMtLjc5LS42MS0xLjYxLTEuMjQtMi4zMi0yLjUzQzkuMjkgMTAuOTggOSA5LjkzIDkgOWMwLTIuOCAyLjItNSA1LTVzNSAyLjIgNSA1aDJjMC0zLjkzLTMuMDctNy03LTdTNyA1LjA3IDcgOWMwIDEuMjYuMzggMi42NSAxLjA3IDMuOS45MSAxLjY1IDEuOTggMi40OCAyLjg1IDMuMTUuODEuNjIgMS4zOSAxLjA3IDEuNzEgMi4wNS42IDEuODIgMS4zNyAyLjg0IDIuNzMgMy41NUEzLjk5OSAzLjk5OSAwIDAgMCAyMSAxOGgtMmMwIDEuMS0uOSAyLTIgMnpNNy42NCAyLjY0IDYuMjIgMS4yMkM0LjIzIDMuMjEgMyA1Ljk2IDMgOXMxLjIzIDUuNzkgMy4yMiA3Ljc4bDEuNDEtMS40MUM2LjAxIDEzLjc0IDUgMTEuNDkgNSA5czEuMDEtNC43NCAyLjY0LTYuMzZ6TTExLjUgOWEyLjUgMi41IDAgMCAwIDUgMCAyLjUgMi41IDAgMCAwLTUgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlnaFF1YWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bS04IDExSDkuNXYtMmgtMnYySDZWOWgxLjV2Mi41aDJWOUgxMXY2em03LTFjMCAuNTUtLjQ1IDEtMSAxaC0uNzV2MS41aC0xLjVWMTVIMTRjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzYy41NSAwIDEgLjQ1IDEgMXY0em0tMy41LS41aDJ2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW50ZXJwcmV0ZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAxNi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjV2LTIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxNWMwIC44My0uNjcgMS41LTEuNSAxLjV6TTIwIDIwaDF2LTEuNTRjMS42OS0uMjQgMy0xLjcgMy0zLjQ2aC0xYTIuNSAyLjUgMCAwIDEtNSAwaC0xYzAgMS43NiAxLjMxIDMuMjIgMyAzLjQ2VjIwek05IDEyYy0yLjIxIDAtNC0xLjc5LTQtNGEzLjk5OSAzLjk5OSAwIDAgMSA1LjM0LTMuNzdBNS45MzggNS45MzggMCAwIDAgOSA4YzAgMS40My41IDIuNzQgMS4zNCAzLjc3LS40Mi4xNS0uODcuMjMtMS4zNC4yM3ptLTEuODkgMS4xM0E0Ljk2NSA0Ljk2NSAwIDAgMCA1IDE3LjIyVjIwSDF2LTIuNzhjMC0xLjEyLjYxLTIuMTUgMS42MS0yLjY2IDEuMjQtLjY0IDIuNzYtMS4xOSA0LjUtMS40M3pNMTEgOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0LTEuNzkgNC00IDQtNC0xLjc5LTQtNHptNy4zMiAxMmE0Ljk5NyA0Ljk5NyAwIDAgMS0yLjgyLTQuNWMwLS44OS4yMy0xLjczLjY0LTIuNDUtLjM3LS4wMy0uNzUtLjA1LTEuMTQtLjA1LTIuNTMgMC00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA3IDE3LjIyVjIwaDExLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWJyYXJ5QWRkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTcuNTMgMTJMOSAxMC41bDEuNC0xLjQxIDIuMDcgMi4wOEwxNy42IDYgMTkgNy40MSAxMi40NyAxNHpNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpYnJhcnlBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0xIDloLTR2NGgtMnYtNEg5VjloNFY1aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpYnJhcnlCb29rcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgOUg5VjloMTB2MnptLTQgNEg5di0yaDZ2MnptNC04SDlWNWgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWJyYXJ5TXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTIgNWgtM3Y1LjVhMi41IDIuNSAwIDAgMS01IDAgMi41IDIuNSAwIDAgMSAyLjUtMi41Yy41NyAwIDEuMDguMTkgMS41LjUxVjVoNHYyek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9vcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRWMUw4IDVsNCA0VjZjMy4zMSAwIDYgMi42OSA2IDYgMCAxLjAxLS4yNSAxLjk3LS43IDIuOGwxLjQ2IDEuNDZBNy45MyA3LjkzIDAgMCAwIDIwIDEyYzAtNC40Mi0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNiAwLTEuMDEuMjUtMS45Ny43LTIuOEw1LjI0IDcuNzRBNy45MyA3LjkzIDAgMCAwIDQgMTJjMCA0LjQyIDMuNTggOCA4IDh2M2w0LTQtNC00djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEx5cmljcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDljMC0yLjA0IDEuMjQtMy43OSAzLTQuNTdWNGMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDljMS4xIDAgMi0uOSAyLTJ2LTIuNDJjLTEuNzYtLjc4LTMtMi41My0zLTQuNTh6bS00IDVINnYtMmg0djJ6bTMtM0g2VjloN3Yyem0wLTNINlY2aDd2MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNi4xOGMtLjMxLS4xMS0uNjUtLjE4LTEtLjE4LTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtM1YzaDJWMWgtNHY1LjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaWNOb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bS0xLjItOS4xYzAtLjY2LjU0LTEuMiAxLjItMS4yLjY2IDAgMS4yLjU0IDEuMiAxLjJsLS4wMSA2LjJjMCAuNjYtLjUzIDEuMi0xLjE5IDEuMi0uNjYgMC0xLjItLjU0LTEuMi0xLjJWNC45em02LjUgNi4xYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaWNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTFoLTEuN2MwIC43NC0uMTYgMS40My0uNDMgMi4wNWwxLjIzIDEuMjNjLjU2LS45OC45LTIuMDkuOS0zLjI4em0tNC4wMi4xN2MwLS4wNi4wMi0uMTEuMDItLjE3VjVjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNXYuMThsNS45OCA1Ljk5ek00LjI3IDMgMyA0LjI3bDYuMDEgNi4wMVYxMWMwIDEuNjYgMS4zMyAzIDIuOTkgMyAuMjIgMCAuNDQtLjAzLjY1LS4wOGwxLjY2IDEuNjZjLS43MS4zMy0xLjUuNTItMi4zMS41Mi0yLjc2IDAtNS4zLTIuMS01LjMtNS4xSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjFoMnYtMy4yOGMuOTEtLjEzIDEuNzctLjQ1IDIuNTQtLjlMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pc3NlZFZpZGVvQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTAuNVY3YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xMWwtNCA0ek0xMCAxNWwtMy44OS0zLjg5djIuNTVINVY5LjIyaDQuNDR2MS4xMUg2Ljg5bDMuMTEgMy4xIDQuMjItNC4yMi43OC43OS01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vdmllRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTBoMThWNmMwLTEuMS0uOS0yLTItMmgtM2wyIDRoLTNsLTItNGgtMmwyIDRoLTNMOSA0SDdsMiA0SDZMNCA0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmg4di0ySDR2LTh6TTE0IDE4Ljg4VjIxaDIuMTJsNS4xNy01LjE3LTIuMTItMi4xMnpNMjIuNzEgMTNsLS43MS0uNzFhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0uNzEuNzFMMjIgMTUuMTJsLjcxLS43MWEuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vdmllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNCAyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNdXNpY1ZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkgzVjVoMTh2MTR6TTggMTVjMC0xLjY2IDEuMzQtMyAzLTMgLjM1IDAgLjY5LjA3IDEgLjE4VjZoNXYyaC0zdjcuMDNBMy4wMDMgMy4wMDMgMCAwIDEgMTEgMThjLTEuNjYgMC0zLTEuMzQtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXdSZWxlYXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzIDEyLTIuNDQtMi43OC4zNC0zLjY4LTMuNjEtLjgyLTEuODktMy4xOEwxMiAzIDguNiAxLjU0IDYuNzEgNC43MmwtMy42MS44MS4zNCAzLjY4TDEgMTJsMi40NCAyLjc4LS4zNCAzLjY5IDMuNjEuODIgMS44OSAzLjE4TDEyIDIxbDMuNCAxLjQ2IDEuODktMy4xOCAzLjYxLS44Mi0uMzQtMy42OEwyMyAxMnptLTEwIDVoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdEludGVyZXN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOCAwLTEuODUuNjMtMy41NSAxLjY5LTQuOUwxNi45IDE4LjMxQTcuOTAyIDcuOTAyIDAgMCAxIDEyIDIwem02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NS0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMTAtNi02SDRjLTEuMSAwLTIgLjktMiAydjEyLjAxYzAgMS4xLjkgMS45OSAyIDEuOTlsMTYtLjAxYzEuMSAwIDItLjg5IDItMS45OXYtOHptLTctNC41IDUuNSA1LjVIMTVWNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXVzZUNpcmNsZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE0SDlWOGgydjh6bTQgMGgtMlY4aDJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGF1c2VDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmgyVjhIOXY4em0zLTE0QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMS00aDJWOGgtMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXVzZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE0SDlWOGgydjh6bTQgMGgtMlY4aDJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE5aDRWNUg2djE0em04LTE0djE0aDRWNWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheUFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1djE0bDExLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlDaXJjbGVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNC41di05bDYgNC41LTYgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5Q2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDE2LjUgNi00LjUtNi00LjV2OXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek05LjUgMTYuNXYtOWw3IDQuNS03IDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0xMS43NSAxMS40Ny0uMTEtLjExLjExLjExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDUuMTlWNWwxMSA3LTIuNTUgMS42M0w4IDUuMTl6bTEyIDE0LjU0LTUuMTEtNS4xMUw4IDcuNzMgNC4yNyA0IDMgNS4yN2w1IDVWMTlsNS4zMy0zLjQgNS40IDUuNEwyMCAxOS43M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheWxpc3RBZGRDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTcgN2g3djJIN1Y3em0wIDNoN3YySDd2LTJ6bTMgNUg3di0yaDN2MnptNC4wNSAzLjM2LTIuODMtMi44MyAxLjQxLTEuNDEgMS40MSAxLjQxTDE3LjU5IDEyIDE5IDEzLjQxbC00Ljk1IDQuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlsaXN0QWRkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEwaDExdjJIM3pNMyA2aDExdjJIM3pNMyAxNGg3djJIM3pNMjAuNTkgMTEuOTNsLTQuMjUgNC4yNC0yLjEyLTIuMTItMS40MSAxLjQxTDE2LjM0IDE5IDIyIDEzLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5bGlzdEFkZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTcgN2g3djJIN1Y3em0zIDhIN3YtMmgzdjJ6bS0zLTN2LTJoN3YySDd6bTEyIDNoLTJ2MmgtMnYtMmgtMnYtMmgydi0yaDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBsYXlsaXN0QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTBIM3YyaDExdi0yem0wLTRIM3YyaDExVjZ6bTQgOHYtNGgtMnY0aC00djJoNHY0aDJ2LTRoNHYtMmgtNHpNMyAxNmg3di0ySDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheWxpc3RQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMGgxMXYySDN6TTMgNmgxMXYySDN6TTMgMTRoN3YySDN6TTE2IDEzdjhsNi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbGF5bGlzdFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwSDN2MmgxMXYtMnptMC00SDN2MmgxMVY2ek0zIDE2aDd2LTJIM3Yyem0xMS40MSA2TDE3IDE5LjQxIDE5LjU5IDIyIDIxIDIwLjU5IDE4LjQxIDE4IDIxIDE1LjQxIDE5LjU5IDE0IDE3IDE2LjU5IDE0LjQxIDE0IDEzIDE1LjQxIDE1LjU5IDE4IDEzIDIwLjU5IDE0LjQxIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWV1ZU11c2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNkgzdjJoMTJWNnptMCA0SDN2MmgxMnYtMnpNMyAxNmg4di0ySDN2MnpNMTcgNnY4LjE4Yy0uMzEtLjExLS42NS0uMTgtMS0uMTgtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zVjhoM1Y2aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRRdWV1ZVBsYXlOZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNXYyaDh2LTJoMnYtMkgzVjVoMTh2OGgyVjVhMiAyIDAgMCAwLTItMnptLTggN1Y3aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTExIDgtNC41IDQuNUwxOCAyMWwzLTMtMy0zIDEuNS0xLjVMMjQgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSA5aC00djRoLTJ2LTRIOVY5aDRWNWgydjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuMjQgNi4xNUMyLjUxIDYuNDMgMiA3LjE3IDIgOHYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOGMwLTEuMTEtLjg5LTItMi0ySDguM2w4LjI2LTMuMzRMMTUuODggMSAzLjI0IDYuMTV6TTcgMjBjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0xMy04aC0ydi0yaC0ydjJINFY4aDE2djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlY2VudEFjdG9ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDV2MTRoMlY1aC0yem0tNCAxNGgyVjVoLTJ2MTR6TTE0IDVIMmMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXpNOCA3Ljc1YzEuMjQgMCAyLjI1IDEuMDEgMi4yNSAyLjI1UzkuMjQgMTIuMjUgOCAxMi4yNSA1Ljc1IDExLjI0IDUuNzUgMTAgNi43NiA3Ljc1IDggNy43NXpNMTIuNSAxN2gtOXYtLjc1YzAtMS41IDMtMi4yNSA0LjUtMi4yNXM0LjUuNzUgNC41IDIuMjVWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZUZyb21RdWV1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnptLTUtN3YySDh2LTJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwZWF0T24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yMSAxSDNjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwZWF0T25lT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yMSAxSDNjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHptLTQtMlY5aC0xbC0yIDF2MWgxLjV2NEgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwZWF0T25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHptLTQtMlY5aC0xbC0yIDF2MWgxLjV2NEgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwbGF5MTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSA1VjFsLTUgNSA1IDVWN2MzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02aC0yYzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODkgMTZoLS44NXYtMy4yNmwtMS4wMS4zMXYtLjY5bDEuNzctLjYzaC4wOVYxNnpNMTUuMTcgMTQuMjRjMCAuMzItLjAzLjYtLjEuODJzLS4xNy40Mi0uMjkuNTctLjI4LjI2LS40NS4zMy0uMzcuMS0uNTkuMS0uNDEtLjAzLS41OS0uMS0uMzMtLjE4LS40Ni0uMzMtLjIzLS4zNC0uMy0uNTctLjExLS41LS4xMS0uODJ2LS43NGMwLS4zMi4wMy0uNi4xLS44MnMuMTctLjQyLjI5LS41Ny4yOC0uMjYuNDUtLjMzLjM3LS4xLjU5LS4xLjQxLjAzLjU5LjEuMzMuMTguNDYuMzMuMjMuMzQuMy41Ny4xMS41LjExLjgydi43NHptLS44NS0uODZjMC0uMTktLjAxLS4zNS0uMDQtLjQ4cy0uMDctLjIzLS4xMi0uMzEtLjExLS4xNC0uMTktLjE3LS4xNi0uMDUtLjI1LS4wNS0uMTguMDItLjI1LjA1LS4xNC4wOS0uMTkuMTctLjA5LjE4LS4xMi4zMS0uMDQuMjktLjA0LjQ4di45N2MwIC4xOS4wMS4zNS4wNC40OHMuMDcuMjQuMTIuMzIuMTEuMTQuMTkuMTcuMTYuMDUuMjUuMDUuMTgtLjAyLjI1LS4wNS4xNC0uMDkuMTktLjE3LjA5LS4xOS4xMS0uMzIuMDQtLjI5LjA0LS40OHYtLjk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBsYXkzMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41NiAxMy40OWguNDVjLjIxIDAgLjM3LS4wNS40OC0uMTZzLjE2LS4yNS4xNi0uNDNhLjUzOC41MzggMCAwIDAtLjE1LS4zOWMtLjA1LS4wNS0uMTEtLjA5LS4xOC0uMTFzLS4xNi0uMDQtLjI1LS4wNGMtLjA4IDAtLjE1LjAxLS4yMi4wM3MtLjEzLjA1LS4xOC4xLS4wOS4wOS0uMTIuMTUtLjA1LjEzLS4wNS4yaC0uODVhMS4wNiAxLjA2IDAgMCAxIC40MS0uODVjLjEzLS4xLjI3LS4xOC40NC0uMjNzLjM1LS4wOC41NC0uMDhjLjIxIDAgLjQxLjAzLjU5LjA4cy4zMy4xMy40Ni4yMy4yMy4yMy4zLjM4LjExLjMzLjExLjUzYS44NDIuODQyIDAgMCAxLS4xNy41MiAxLjEgMS4xIDAgMCAxLS40OC4zOWMuMjQuMDkuNDIuMjEuNTQuMzlzLjE4LjM4LjE4LjYxYzAgLjItLjA0LjM4LS4xMi41M3MtLjE4LjI5LS4zMi4zOS0uMjkuMTktLjQ4LjI0LS4zOC4wOC0uNi4wOGMtLjE4IDAtLjM2LS4wMi0uNTMtLjA3cy0uMzMtLjEyLS40Ni0uMjMtLjI1LS4yMy0uMzMtLjM4LS4xMi0uMzQtLjEyLS41NWguODVjMCAuMDguMDIuMTUuMDUuMjJzLjA3LjEyLjEzLjE3LjEyLjA5LjIuMTEuMTYuMDQuMjUuMDRjLjEgMCAuMTktLjAxLjI3LS4wNHMuMTUtLjA3LjItLjEyLjEtLjExLjEzLS4xOC4wNC0uMTUuMDQtLjI0YzAtLjExLS4wMi0uMjEtLjA1LS4yOXMtLjA4LS4xNS0uMTQtLjItLjEzLS4wOS0uMjItLjExLS4xOC0uMDQtLjI5LS4wNGgtLjQ3di0uNjV6TTE1LjMgMTQuMjRjMCAuMzItLjAzLjYtLjEuODJzLS4xNy40Mi0uMjkuNTctLjI4LjI2LS40NS4zMy0uMzcuMS0uNTkuMS0uNDEtLjAzLS41OS0uMS0uMzMtLjE4LS40Ni0uMzMtLjIzLS4zNC0uMy0uNTctLjExLS41LS4xMS0uODJ2LS43NGMwLS4zMi4wMy0uNi4xLS44MnMuMTctLjQyLjI5LS41Ny4yOC0uMjYuNDUtLjMzLjM3LS4xLjU5LS4xLjQxLjAzLjU5LjEuMzMuMTguNDYuMzMuMjMuMzQuMy41Ny4xMS41LjExLjgydi43NHptLS44NS0uODZjMC0uMTktLjAxLS4zNS0uMDQtLjQ4cy0uMDctLjIzLS4xMi0uMzEtLjExLS4xNC0uMTktLjE3LS4xNi0uMDUtLjI1LS4wNS0uMTguMDItLjI1LjA1LS4xNC4wOS0uMTkuMTctLjA5LjE4LS4xMi4zMS0uMDQuMjktLjA0LjQ4di45N2MwIC4xOS4wMS4zNS4wNC40OHMuMDcuMjQuMTIuMzIuMTEuMTQuMTkuMTcuMTYuMDUuMjUuMDUuMTgtLjAyLjI1LS4wNS4xNC0uMDkuMTktLjE3LjA5LS4xOS4xMS0uMzJjLjAzLS4xMy4wNC0uMjkuMDQtLjQ4di0uOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGxheTUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1VjFMNyA2bDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZINGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04LTMuNTgtOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjY5IDEzLjkuMjUtMi4xN2gyLjM5di43MWgtMS43bC0uMTEuOTJjLjAzLS4wMi4wNy0uMDMuMTEtLjA1cy4wOS0uMDQuMTUtLjA1LjEyLS4wMy4xOC0uMDQuMTMtLjAyLjItLjAyYy4yMSAwIC4zOS4wMy41NS4xcy4zLjE2LjQxLjI4LjIuMjcuMjUuNDUuMDkuMzguMDkuNmMwIC4xOS0uMDMuMzctLjA5LjU0cy0uMTUuMzItLjI3LjQ1LS4yNy4yNC0uNDUuMzEtLjM5LjEyLS42NC4xMmMtLjE4IDAtLjM2LS4wMy0uNTMtLjA4cy0uMzItLjE0LS40Ni0uMjQtLjI0LS4yNC0uMzItLjM5LS4xMy0uMzMtLjEzLS41M2guODRjLjAyLjE4LjA4LjMyLjE5LjQxcy4yNS4xNS40Mi4xNWEuNDkuNDkgMCAwIDAgLjQ1LS4yM2MuMDQtLjA3LjA4LS4xNS4xMS0uMjVzLjAzLS4yLjAzLS4zMS0uMDEtLjIxLS4wNC0uMzEtLjA3LS4xNy0uMTMtLjI0LS4xMy0uMTItLjIxLS4xNS0uMTktLjA1LS4zLS4wNWMtLjA4IDAtLjE1LjAxLS4yLjAycy0uMTEuMDMtLjE1LjA1LS4wOC4wNS0uMTIuMDctLjA3LjA2LS4xLjA5bC0uNjctLjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBsYXlDaXJjbGVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem02IDEwYzAgMy4zMS0yLjY5IDYtNiA2cy02LTIuNjktNi02aDJjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNC0xLjc5LTQtNC00djNMOCA3bDQtNHYzYzMuMzEgMCA2IDIuNjkgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1VjFMNyA2bDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZINGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04LTMuNTgtOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS02IDZoNGMuNTUgMCAxIC40NSAxIDF2NGMwIC41NS0uNDUgMS0xIDFoLTRWOXptLTMuNSA0LjV2LTFIN2MtLjU1IDAtMS0uNDUtMS0xVjEwYzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjFIOS41di0uNWgtMnYxSDEwYy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFIN2MtLjU1IDAtMS0uNDUtMS0xdi0xaDEuNXYuNWgyem01IDBoMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaHVmZmxlT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0yMSAxSDNjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNMTAuNTkgOS4xNyA1LjQxIDQgNCA1LjQxbDUuMTcgNS4xNyAxLjQyLTEuNDF6TTE0LjUgNGwyLjA0IDIuMDRMNCAxOC41OSA1LjQxIDIwIDE3Ljk2IDcuNDYgMjAgOS41VjRoLTUuNXptLjMzIDkuNDEtMS40MSAxLjQxIDMuMTMgMy4xM0wxNC41IDIwSDIwdi01LjVsLTIuMDQgMi4wNC0zLjEzLTMuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNodWZmbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41OSA5LjE3IDUuNDEgNCA0IDUuNDFsNS4xNyA1LjE3IDEuNDItMS40MXpNMTQuNSA0bDIuMDQgMi4wNEw0IDE4LjU5IDUuNDEgMjAgMTcuOTYgNy40NiAyMCA5LjVWNGgtNS41em0uMzMgOS40MS0xLjQxIDEuNDEgMy4xMyAzLjEzTDE0LjUgMjBIMjB2LTUuNWwtMi4wNCAyLjA0LTMuMTMtMy4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2tpcE5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDE4IDguNS02TDYgNnYxMnpNMTYgNnYxMmgyVjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNraXBQcmV2aW91cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNmgydjEySDZ6bTMuNSA2IDguNSA2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNsb3dNb3Rpb25WaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMDUgOS43OSAxMCA3LjV2OWwzLjA1LTIuMjlMMTYgMTJ6bTAgMEwxMCA3LjV2OWwzLjA1LTIuMjlMMTYgMTJ6bTAgMEwxMCA3LjV2OWwzLjA1LTIuMjlMMTYgMTJ6TTExIDQuMDdWMi4wNWMtMi4wMS4yLTMuODQgMS01LjMyIDIuMjFMNy4xIDUuNjlBNy45NDEgNy45NDEgMCAwIDEgMTEgNC4wN3pNNS42OSA3LjEgNC4yNiA1LjY4QTkuOTQ5IDkuOTQ5IDAgMCAwIDIuMDUgMTFoMi4wMmMuMTgtMS40Ni43Ni0yLjc5IDEuNjItMy45ek00LjA3IDEzSDIuMDVjLjIgMi4wMSAxIDMuODQgMi4yMSA1LjMybDEuNDMtMS40M0E3Ljg2OCA3Ljg2OCAwIDAgMSA0LjA3IDEzem0xLjYxIDYuNzRBOS45ODEgOS45ODEgMCAwIDAgMTEgMjEuOTV2LTIuMDJhNy45NDEgNy45NDEgMCAwIDEtMy45LTEuNjJsLTEuNDIgMS40M3pNMjIgMTJjMCA1LjE2LTMuOTIgOS40Mi04Ljk1IDkuOTV2LTIuMDJDMTYuOTcgMTkuNDEgMjAgMTYuMDUgMjAgMTJzLTMuMDMtNy40MS02Ljk1LTcuOTNWMi4wNUMxOC4wOCAyLjU4IDIyIDYuODQgMjIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNub296ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODggMy4zOSA2LjYgMS44NiAyIDUuNzFsMS4yOSAxLjUzIDQuNTktMy44NXpNMjIgNS43MmwtNC42LTMuODYtMS4yOSAxLjUzIDQuNiAzLjg2TDIyIDUuNzJ6TTEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOSA5IDAgMCAwIDAtMTh6bTAgMTZjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3em0tMy05aDMuNjNMOSAxNS4yVjE3aDZ2LTJoLTMuNjNMMTUgMTAuOFY5SDl2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU29ydEJ5QWxwaGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bS43NS43NWgyMi41djIyLjVILjc1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC45NCA0LjY2aC00LjcybDIuMzYtMi4zNnptLTQuNjkgMTQuNzFoNC42NmwtMi4zMyAyLjMzek02LjEgNi4yNyAxLjYgMTcuNzNoMS44NGwuOTItMi40NWg1LjExbC45MiAyLjQ1aDEuODRMNy43NCA2LjI3SDYuMXptLTEuMTMgNy4zNyAxLjk0LTUuMTggMS45NCA1LjE4SDQuOTd6bTEwLjc2IDIuNWg2LjEydjEuNTloLTguNTN2LTEuMjlsNS45Mi04LjU2aC01Ljg4di0xLjZoOC4zdjEuMjZsLTUuOTMgOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjM4IDguNTctMS4yMyAxLjg1YTggOCAwIDAgMS0uMjIgNy41OEg1LjA3QTggOCAwIDAgMSAxNS41OCA2Ljg1bDEuODUtMS4yM0ExMCAxMCAwIDAgMCAzLjM1IDE5YTIgMiAwIDAgMCAxLjcyIDFoMTMuODVhMiAyIDAgMCAwIDEuNzQtMSAxMCAxMCAwIDAgMC0uMjctMTAuNDR6bS05Ljc5IDYuODRhMiAyIDAgMCAwIDIuODMgMGw1LjY2LTguNDktOC40OSA1LjY2YTIgMiAwIDAgMCAwIDIuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0b3BDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem00IDE0SDhWOGg4djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZoMTJ2MTJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3Vic2NyaXB0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhINFY2aDE2djJ6bS0yLTZINnYyaDEyVjJ6bTQgMTB2OGMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMnYtOGMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAyem0tNiA0LTYtMy4yN3Y2LjUzTDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJ0aXRsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCAxMmg0djJINHYtMnptMTAgNkg0di0yaDEwdjJ6bTYgMGgtNHYtMmg0djJ6bTAtNEgxMHYtMmgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdXJyb3VuZFNvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTcuNzYgMTYuMjRsLTEuNDEgMS40MUE3LjkwOSA3LjkwOSAwIDAgMSA0IDEyYzAtMi4wNS43OC00LjEgMi4zNC01LjY2bDEuNDEgMS40MUM2LjU5IDguOTMgNiAxMC40NiA2IDEycy41OSAzLjA3IDEuNzYgNC4yNHpNMTIgMTZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0em01LjY2IDEuNjYtMS40MS0xLjQxQzE3LjQxIDE1LjA3IDE4IDEzLjU0IDE4IDEycy0uNTktMy4wNy0xLjc2LTQuMjRsMS40MS0xLjQxQTcuOTA5IDcuOTA5IDAgMCAxIDIwIDEyYzAgMi4wNS0uNzggNC4xLTIuMzQgNS42NnpNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb0NhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwLjVWN2MwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTFsLTQgNHpNMTQgMTNoLTN2M0g5di0zSDZ2LTJoM1Y4aDJ2M2gzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINi4wMWEyIDIgMCAwIDAtMiAyTDQgMjBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY4bC02LTZ6bS0xIDdWMy41TDE4LjUgOUgxM3ptMSA1IDItMS4wNnY0LjEyTDE0IDE2djFjMCAuNTUtLjQ1IDEtMSAxSDljLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWg0Yy41NSAwIDEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb0xhYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxM0gzVjVoMTh2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvTGlicmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTggMTIuNXYtOWw2IDQuNS02IDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9TZXR0aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNmgxOHY1aDJWNmMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDl2LTJIM1Y2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMiA5IDh2OHpNMjIuNzEgMTguNDNjLjAzLS4yOS4wNC0uNTguMDEtLjg2bDEuMDctLjg1Yy4xLS4wOC4xMi0uMjEuMDYtLjMybC0xLjAzLTEuNzljLS4wNi0uMTEtLjE5LS4xNS0uMzEtLjExbC0xLjI4LjVhMy40NCAzLjQ0IDAgMCAwLS43NS0uNDJsLS4yLTEuMzZhLjI0OS4yNDkgMCAwIDAtLjI1LS4yMmgtMi4wN2MtLjEyIDAtLjIzLjA5LS4yNS4yMWwtLjIgMS4zNmMtLjI2LjExLS41MS4yNi0uNzQuNDJsLTEuMjgtLjVjLS4xMi0uMDUtLjI1IDAtLjMxLjExbC0xLjAzIDEuNzljLS4wNi4xMS0uMDQuMjQuMDYuMzJsMS4wNy44NmMtLjAzLjI5LS4wNC41OC0uMDEuODZsLTEuMDcuODVjLS4xLjA4LS4xMi4yMS0uMDYuMzJsMS4wMyAxLjc5Yy4wNi4xMS4xOS4xNS4zMS4xMWwxLjI3LS41Yy4yMy4xNy40OC4zMS43NS40MmwuMiAxLjM2Yy4wMi4xMi4xMi4yMS4yNS4yMWgyLjA3Yy4xMiAwIC4yMy0uMDkuMjUtLjIxbC4yLTEuMzZjLjI2LS4xMS41MS0uMjYuNzQtLjQybDEuMjguNWMuMTIuMDUuMjUgMCAuMzEtLjExbDEuMDMtMS43OWMuMDYtLjExLjA0LS4yNC0uMDYtLjMybC0xLjA2LS44NXpNMTkgMTkuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvY2FtT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDYuNS00IDRWN2MwLS41NS0uNDUtMS0xLTFIOS44MkwyMSAxNy4xOFY2LjV6TTMuMjcgMiAyIDMuMjcgNC43MyA2SDRjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWgxMmMuMjEgMCAuMzktLjA4LjU0LS4xOEwxOS43MyAyMSAyMSAxOS43MyAzLjI3IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvY2FtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTAuNVY3YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xMWwtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWb2x1bWVEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNy45N3Y4LjA1YzEuNDgtLjczIDIuNS0yLjI1IDIuNS00LjAyUzE1LjQ4IDguNzEgMTQgNy45N3pNMyA5djZoNGw1IDVWNEw3IDlIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9sdW1lRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgMTJBNC41IDQuNSAwIDAgMCAxNiA3Ljk3djguMDVjMS40OC0uNzMgMi41LTIuMjUgMi41LTQuMDJ6TTUgOXY2aDRsNSA1VjRMOSA5SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvbHVtZU11dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDl2Nmg0bDUgNVY0bC01IDVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9sdW1lT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMkE0LjUgNC41IDAgMCAwIDE0IDcuOTd2Mi4yMWwyLjQ1IDIuNDVjLjAzLS4yLjA1LS40MS4wNS0uNjN6bTIuNSAwYzAgLjk0LS4yIDEuODItLjU0IDIuNjRsMS41MSAxLjUxQTguNzk2IDguNzk2IDAgMCAwIDIxIDEyYzAtNC4yOC0yLjk5LTcuODYtNy04Ljc3djIuMDZjMi44OS44NiA1IDMuNTQgNSA2Ljcxek00LjI3IDMgMyA0LjI3IDcuNzMgOUgzdjZoNGw1IDV2LTYuNzNsNC4yNSA0LjI1Yy0uNjcuNTItMS40Mi45My0yLjI1IDEuMTh2Mi4wNmE4Ljk5IDguOTkgMCAwIDAgMy42OS0xLjgxTDE5LjczIDIxIDIxIDE5LjczbC05LTlMNC4yNyAzek0xMiA0IDkuOTEgNi4wOSAxMiA4LjE4VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvbHVtZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5djZoNGw1IDVWNEw3IDlIM3ptMTMuNSAzQTQuNSA0LjUgMCAwIDAgMTQgNy45N3Y4LjA1YzEuNDgtLjczIDIuNS0yLjI1IDIuNS00LjAyek0xNCAzLjIzdjIuMDZjMi44OS44NiA1IDMuNTQgNSA2Ljcxcy0yLjExIDUuODUtNSA2LjcxdjIuMDZjNC4wMS0uOTEgNy00LjQ5IDctOC43N3MtMi45OS03Ljg2LTctOC43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2ViQXNzZXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgzIDRIMjBhMiAyIDAgMCAxIDIgMnYxMmMwIC4zNC0uMDkuNjYtLjIzLjk0TDIwIDE3LjE3VjhoLTkuMTdsLTQtNHptMTMuNjYgMTkuMzFMMTcuMTcgMjBINGEyIDIgMCAwIDEtMi0yVjZjMC0uMzQuMDgtLjY2LjIzLS45NEwuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTE1LjE3IDE4bC0xMC0xMEg0djEwaDExLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZWJBc3NldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmEyIDIgMCAwIDAtMi0yem0wIDE0SDVWOGgxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2ViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzUCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINC4wMWMtMS4xIDAtMiAuOS0yIDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTggNGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTQgOEg4di0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMTYgMTMuNDNWMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZEljQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMjEgNmgtM1YzaC0ydjNoLTN2MmgzdjNoMlY4aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsdGVybmF0ZUVtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMGg1di0yaC01Yy00LjM0IDAtOC0zLjY2LTgtOHMzLjY2LTggOC04IDggMy42NiA4IDh2MS40M2MwIC43OS0uNzEgMS41Ny0xLjUgMS41N3MtMS41LS43OC0xLjUtMS41N1YxMmMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNSAyLjI0IDUgNSA1YzEuMzggMCAyLjY0LS41NiAzLjU0LTEuNDcuNjUuODkgMS43NyAxLjQ3IDIuOTYgMS40NyAxLjk3IDAgMy41LTEuNiAzLjUtMy41N1YxMmMwLTUuNTItNC40OC0xMC0xMC0xMHptMCAxM2MtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcFJlZ2lzdHJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRoNHY0aC00ek00IDE2aDR2NEg0ek00IDEwaDR2NEg0ek00IDRoNHY0SDR6TTE0IDEyLjQyVjEwaC00djRoMi40MnpNMjAuODggMTEuMjlsLTEuMTctMS4xN2EuNDEuNDEgMCAwIDAtLjU4IDBsLS44OC44OEwyMCAxMi43NWwuODgtLjg4YS40MS40MSAwIDAgMCAwLS41OHpNMTEgMTguMjVWMjBoMS43NWw2LjY3LTYuNjctMS43NS0xLjc1ek0xNiA0aDR2NGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVzaW5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgyMFY3SDEyek02IDE5SDR2LTJoMnYyem0wLTRINHYtMmgydjJ6bTAtNEg0VjloMnYyem0wLTRINFY1aDJ2MnptNCAxMkg4di0yaDJ2MnptMC00SDh2LTJoMnYyem0wLTRIOFY5aDJ2MnptMC00SDhWNWgydjJ6bTEwIDEyaC04di0yaDJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDh2MTB6bS0yLThoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxsRW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOWMtMS42IDAtMy4xNS4yNS00LjYuNzJ2My4xYzAgLjM5LS4yMy43NC0uNTYuOS0uOTguNDktMS44NyAxLjEyLTIuNjYgMS44NS0uMTguMTgtLjQzLjI4LS43LjI4LS4yOCAwLS41My0uMTEtLjcxLS4yOUwuMjkgMTMuMDhhLjk1Ni45NTYgMCAwIDEtLjI5LS43YzAtLjI4LjExLS41My4yOS0uNzFDMy4zNCA4Ljc4IDcuNDYgNyAxMiA3czguNjYgMS43OCAxMS43MSA0LjY3Yy4xOC4xOC4yOS40My4yOS43MSAwIC4yOC0uMTEuNTMtLjI5LjcxbC0yLjQ4IDIuNDhjLS4xOC4xOC0uNDMuMjktLjcxLjI5LS4yNyAwLS41Mi0uMTEtLjctLjI4YTExLjI3IDExLjI3IDAgMCAwLTIuNjctMS44NS45OTYuOTk2IDAgMCAxLS41Ni0uOXYtMy4xQzE1LjE1IDkuMjUgMTMuNiA5IDEyIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxNYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA1djJoNi41OUw0IDE4LjU5IDUuNDEgMjAgMTcgOC40MVYxNWgyVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxNZXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIwLjQxIDE4LjQxIDE5IDE1IDE1LjU5IDEzLjU5IDE3IDE3IDIwLjQxek03LjUgOEgxMXY1LjU5TDUuNTkgMTkgNyAyMC40MWw2LTZWOGgzLjVMMTIgMy41IDcuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxsTWlzc2VkT3V0Z29pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zIDguNDEgOSA5IDctN1YxNWgyVjdoLTh2Mmg0LjU5TDEyIDE0LjU5IDQuNDEgNyAzIDguNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxNaXNzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41OSA3IDEyIDE0LjU5IDYuNDEgOUgxMVY3SDN2OGgydi00LjU5bDcgNyA5LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGxSZWNlaXZlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDUuNDEgMTguNTkgNCA3IDE1LjU5VjlINXYxMGgxMHYtMkg4LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYWxsU3BsaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA0IDIuMjkgMi4yOS0yLjg4IDIuODggMS40MiAxLjQyIDIuODgtMi44OEwyMCAxMFY0em0tNCAwSDR2NmwyLjI5LTIuMjkgNC43MSA0LjdWMjBoMnYtOC40MWwtNS4yOS01LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4wMSAxNS4zOGMtMS4yMyAwLTIuNDItLjItMy41My0uNTZhLjk3Ny45NzcgMCAwIDAtMS4wMS4yNGwtMS41NyAxLjk3Yy0yLjgzLTEuMzUtNS40OC0zLjktNi44OS02LjgzbDEuOTUtMS42NmMuMjctLjI4LjM1LS42Ny4yNC0xLjAyLS4zNy0xLjExLS41Ni0yLjMtLjU2LTMuNTMgMC0uNTQtLjQ1LS45OS0uOTktLjk5SDQuMTlDMy42NSAzIDMgMy4yNCAzIDMuOTkgMyAxMy4yOCAxMC43MyAyMSAyMC4wMSAyMWMuNzEgMCAuOTktLjYzLjk5LTEuMTh2LTMuNDVjMC0uNTQtLjQ1LS45OS0uOTktLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW5jZWxQcmVzZW50YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOS4xSDNWNWgxOHYxNC4xek0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjEgMTkuMUgzVjVoMTh2MTQuMXpNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDggMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2VsbFRvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNy4zIDE0LjcgMS4yLTEuMmMtMS0xLTEuNS0yLjMtMS41LTMuNSAwLTEuMy41LTIuNiAxLjUtMy41TDcuMyA1LjNjLTEuMyAxLjMtMiAzLTIgNC43cy43IDMuNCAyIDQuN3pNMTkuMSAyLjlsLTEuMiAxLjJjMS42IDEuNiAyLjQgMy44IDIuNCA1LjkgMCAyLjEtLjggNC4zLTIuNCA1LjlsMS4yIDEuMmMyLTIgMi45LTQuNSAyLjktNy4xIDAtMi42LTEtNS4xLTIuOS03LjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMSA0LjEgNC45IDIuOUMzIDQuOSAyIDcuNCAyIDEwYzAgMi42IDEgNS4xIDIuOSA3LjFsMS4yLTEuMmMtMS42LTEuNi0yLjQtMy44LTIuNC01LjkgMC0yLjEuOC00LjMgMi40LTUuOXpNMTYuNyAxNC43YzEuMy0xLjMgMi0zIDItNC43LS4xLTEuNy0uNy0zLjQtMi00LjdsLTEuMiAxLjJjMSAxIDEuNSAyLjMgMS41IDMuNSAwIDEuMy0uNSAyLjYtMS41IDMuNWwxLjIgMS4yek0xNC41IDEwYTIuNSAyLjUgMCAwIDAtNSAwYzAgLjc2LjM0IDEuNDIuODcgMS44OEw3IDIyaDJsLjY3LTJoNC42N2wuNjYgMmgybC0zLjM3LTEwLjEyYy41My0uNDYuODctMS4xMi44Ny0xLjg4em0tNC4xNyA4TDEyIDEzbDEuNjcgNWgtMy4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2VsbFdpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5Ljk4IDYgMjJoMTZWNS45N2wtNCA0LjAxek0yMCAyMGgtMnYtNy4yMmwyLTJWMjB6TTUuMjIgNy4yMiAzLjkzIDUuOTNjMy45LTMuOTEgMTAuMjQtMy45MSAxNC4xNSAwbC0xLjI5IDEuMjljLTMuMTktMy4xOS04LjM4LTMuMTktMTEuNTcgMHptNy43MSAzLjg1TDExIDEzbC0xLjkzLTEuOTNhMi43NCAyLjc0IDAgMCAxIDMuODYgMHptMS4yOS0xLjI4Yy0xLjc4LTEuNzctNC42Ni0xLjc3LTYuNDMgMEw2LjUgOC41YTYuMzc0IDYuMzc0IDAgMCAxIDkgMGwtMS4yOCAxLjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGF0QnViYmxlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg2bC0yIDJWNGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhdEJ1YmJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNiA5aDEydjJINlY5em04IDVINnYtMmg4djJ6bTQtNkg2VjZoMTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xlYXJBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEzaDE0di0ySDV2MnptLTIgNGgxNHYtMkgzdjJ6TTcgN3YyaDE0VjdIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29QcmVzZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnY4aDJWNWgxOHYxNmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4zOSAxNi41NkMxMy43MSAxNS43IDExLjUzIDE1IDkgMTVzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDEgMTkuMjJWMjJoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk5IDRjMC0xLjEtLjg5LTItMS45OS0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0LS4wMS0xOHpNMTggMTRINnYtMmgxMnYyem0wLTNINlY5aDEydjJ6bTAtM0g2VjZoMTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tbWVudHNEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjgzIDE0SDE4di0yaC0zLjE3bC0xLTFIMThWOWgtNi4xN2wtMS0xSDE4VjZIOC44M2wtNC00SDIwYzEuMSAwIDIgLjkgMiAydjE1LjE3TDE2LjgzIDE0ek0yLjEgMi4xLjY5IDMuNTEgMiA0LjgzVjE2YzAgMS4xLjkgMiAyIDJoMTEuMTdsNS4zMSA1LjMxIDEuNDEtMS40MUwyLjEgMi4xek02IDloLjE3bDIgMkg2Vjl6bTAgNXYtMmgzLjE3bDIgMkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250YWN0RW1lcmdlbmN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0gyQy45IDMgMCAzLjkgMCA1djE0YzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjQgNWMwLTEuMS0uOS0yLTItMnpNOSA4YzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM3pNMi4wOCAxOWMxLjM4LTIuMzkgMy45Ni00IDYuOTItNHM1LjU0IDEuNjEgNi45MiA0SDIuMDh6bTE4Ljg5LTkuMTUtLjc1IDEuMy0xLjQ3LS44NVYxMmgtMS41di0xLjdsLTEuNDcuODUtLjc1LTEuM0wxNi41IDlsLTEuNDctLjg1Ljc1LTEuMyAxLjQ3Ljg1VjZoMS41djEuN2wxLjQ3LS44NS43NSAxLjNMMTkuNSA5bDEuNDcuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RNYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDhWN2wtMyAyLTMtMnYxbDMgMiAzLTJ6bTEtNUgyQy45IDMgMCAzLjkgMCA1djE0YzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjQgNWMwLTEuMS0uOS0yLTItMnpNOCA2YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3ptNiAxMkgydi0xYzAtMiA0LTMuMSA2LTMuMXM2IDEuMSA2IDMuMXYxem04LTZoLThWNmg4djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRhY3RQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIMkMuOSAzIDAgMy45IDAgNXYxNGMwIDEuMS45IDIgMiAyaDIwYzEuMSAwIDEuOTktLjkgMS45OS0yTDI0IDVjMC0xLjEtLjktMi0yLTJ6TTggNmMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTYgMTJIMnYtMWMwLTIgNC0zLjEgNi0zLjFzNiAxLjEgNiAzLjF2MXptMy44NS00aDEuNjRMMjEgMTZsLTEuOTkgMS45OUE3LjUxMiA3LjUxMiAwIDAgMSAxNi4yOCAxNGMtLjE4LS42NC0uMjgtMS4zMS0uMjgtMnMuMS0xLjM2LjI4LTJhNy40NzQgNy40NzQgMCAwIDEgMi43My0zLjk5TDIxIDhsLTEuNTEgMmgtMS42NGMtLjIyLjYzLS4zNSAxLjMtLjM1IDJzLjEzIDEuMzcuMzUgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGFjdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDBINHYyaDE2VjB6TTQgMjRoMTZ2LTJINHYyek0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTggMi43NWMxLjI0IDAgMi4yNSAxLjAxIDIuMjUgMi4yNXMtMS4wMSAyLjI1LTIuMjUgMi4yNVM5Ljc1IDEwLjI0IDkuNzUgOSAxMC43NiA2Ljc1IDEyIDYuNzV6TTE3IDE3SDd2LTEuNWMwLTEuNjcgMy4zMy0yLjUgNS0yLjVzNSAuODMgNSAyLjVWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlc2t0b3BBY2Nlc3NEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTZjMCAxLjEtLjkgMi0yIDJoLTFsLTItMmgzVjRINkw0IDJoMTdjMS4xIDAgMiAuOSAyIDJ2MTJ6bS01LjUgMi0yLTJ6bS0yLjYgMCA2IDYgMS4zLTEuMy00LjctNC43LTItMkwxLjIgMS44IDAgMy4xbDEgMVYxNmMwIDEuMS45IDIgMiAyaDd2Mkg4djJoOHYtMmgtMnYtMmguOXpNMyAxNlY2LjFsOS45IDkuOUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaWFsZXJTaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzaC0xdjVoMVYzem0tMiAyaC0yVjRoMlYzaC0zdjNoMnYxaC0ydjFoM1Y1em0zLTJ2NWgxVjZoMlYzaC0zem0yIDJoLTFWNGgxdjF6bTAgMTAuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhLjk5OC45OTggMCAwIDAtMS4wMS4yNGwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWMuMjctLjI2LjM1LS42NS4yNC0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaWFscGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTljLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek02IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMi04YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTYgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTYgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS02IDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb2N1bWVudFNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDNINHYzSDJWMWg1djJ6bTE1IDNWMWgtNXYyaDN2M2gyek03IDIxSDR2LTNIMnY1aDV2LTJ6bTEzLTN2M2gtM3YyaDV2LTVoLTJ6bS0xIDBjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAydjEyek0xNSA4SDl2Mmg2Vjh6bTAgM0g5djJoNnYtMnptMCAzSDl2Mmg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb21haW5EaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1aDJ2MmgtLjlMMTIgOS45VjloOHY4LjlsMiAyVjdIMTJWM0g1LjFMOCA1Ljl6bTggNmgydjJoLTJ6TTEuMyAxLjguMSAzLjEgMiA1djE2aDE2bDMgMyAxLjMtMS4zLTIxLTIwLjl6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTQgOEg4di0yaDJ2MnptMC00SDh2LTJoMnYyem0yIDR2LTJoMmwyIDJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvbWFpblZlcmlmaWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjYgMTAuODgtMS40Mi0xLjQyLTQuMjQgNC4yNS0yLjEyLTIuMTNMNy40IDEzbDMuNTQgMy41NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YTIgMiAwIDAgMC0yLTJ6bTAgMTRINVY4aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREdW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAyaC04QzYuMzggMiAyIDYuNjYgMiAxMi4yOCAyIDE3LjUgNi40OSAyMiAxMS43MiAyMiAxNy4zOSAyMiAyMiAxNy42MiAyMiAxMlY0YzAtMS4xLS45LTItMi0yem0tMyAxMy0zLTJ2Mkg3VjloN3YybDMtMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0LTggNS04LTVWNmw4IDUgOC01djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNmgtMnY5SDZ2MmMwIC41NS40NSAxIDEgMWgxMWw0IDRWN2MwLS41NS0uNDUtMS0xLTF6bS00IDZWM2MwLS41NS0uNDUtMS0xLTFIM2MtLjU1IDAtMSAuNDUtMSAxdjE0bDQtNGgxMGMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcndhcmRUb0luYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDl2LTJINFY4bDggNSA4LTV2NWgyVjZjMC0xLjEtLjktMi0yLTJ6bS04IDdMNCA2aDE2bC04IDV6bTcgNCA0IDQtNCA0di0zaC00di0yaDR2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXJnbGFzc0JvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDIyLS4wMS02TDE0IDEybDMuOTktNC4wMUwxOCAySDZ2Nmw0IDQtNCAzLjk5VjIyaDEyek04IDcuNVY0aDh2My41bC00IDQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3VyZ2xhc3NUb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDIgLjAxIDZMMTAgMTJsLTMuOTkgNC4wMUw2IDIyaDEydi02bC00LTQgNC0zLjk5VjJINnptMTAgMTQuNVYyMEg4di0zLjVsNC00IDQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC40IDE4LjJjLjM4LjUuNiAxLjEyLjYgMS44IDAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTNjLjQ0IDAgLjg1LjA5IDEuMjMuMjZsMS40MS0xLjc3YTQuNTA0IDQuNTA0IDAgMCAxLTEuMDktMy42OWwtMi4wMy0uNjhBMi45OTcgMi45OTcgMCAwIDEgMCA5LjVjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2MwIC4wNyAwIC4xNC0uMDEuMjFsMi4wMy42OGE0LjQ2OCA0LjQ2OCAwIDAgMSAzLjIyLTIuMzJWNS45MUEzLjAxOCAzLjAxOCAwIDAgMSA5IDNjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2MwIDEuNC0uOTYgMi41Ny0yLjI1IDIuOTF2Mi4xNmMxLjQuMjMgMi41OCAxLjExIDMuMjIgMi4zMkwxOCA5LjcxVjkuNWMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzLTEuMzQgMy0zIDNjLTEuMDYgMC0xLjk4LS41NS0yLjUyLTEuMzdsLTIuMDMuNjhhNC40OSA0LjQ5IDAgMCAxLTEuMDkgMy42OWwxLjQxIDEuNzdjLjM4LS4xOC43OS0uMjcgMS4yMy0uMjcgMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtM2MwLS42OC4yMi0xLjMuNi0xLjhsLTEuNDEtMS43N2MtMS4zNS43NS0zLjAxLjc2LTQuMzcgMEw4LjQgMTguMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1wb3J0Q29udGFjdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDQuNWMtMS45NSAwLTQuMDUuNC01LjUgMS41LTEuNDUtMS4xLTMuNTUtMS41LTUuNS0xLjVTMi40NSA0LjkgMSA2djE0LjY1YzAgLjY1LjczLjQ1Ljc1LjQ1QzMuMSAyMC40NSA1LjA1IDIwIDYuNSAyMGMxLjk1IDAgNC4wNS40IDUuNSAxLjUgMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuNjUgMCAzLjM1LjMgNC43NSAxLjA1LjQxLjIxLjc1LS4xOS43NS0uNDVWNmMtMS40OS0xLjEyLTMuNjMtMS41LTUuNS0xLjV6bTMuNSAxNGMtMS4xLS4zNS0yLjMtLjUtMy41LS41LTEuNyAwLTQuMTUuNjUtNS41IDEuNVY4YzEuMzUtLjg1IDMuOC0xLjUgNS41LTEuNSAxLjIgMCAyLjQuMTUgMy41LjV2MTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1wb3J0RXhwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAzIDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3ptNyAxNC4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW52ZXJ0Q29sb3JzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMmw0LjIgNC4yYTcuNzMgNy43MyAwIDAgMC0xLjYgNC43QzQgMTcuNDggNy41OCAyMSAxMiAyMWMxLjc1IDAgMy4zNi0uNTYgNC42Ny0xLjVsMy4xIDMuMSAxLjQyLTEuNDF6TTEyIDE5Yy0zLjMxIDAtNi0yLjYzLTYtNS44NyAwLTEuMTkuMzYtMi4zMiAxLjAyLTMuMjhMMTIgMTQuODNWMTl6TTguMzggNS41NiAxMiAybDUuNjUgNS41NkMxOS4xIDguOTkgMjAgMTAuOTYgMjAgMTMuMTNjMCAxLjE4LS4yNyAyLjI5LS43NCAzLjNMMTIgOS4xN1Y0LjgxTDkuOCA2Ljk3IDguMzggNS41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuOTEgMTQuMDkgMTcgMTRsMiAyIDQtNC4wNEwyMSAxMGgtOC4xN2w0LjA4IDQuMDl6TTMuOTggNi44MUE2LjAxMiA2LjAxMiAwIDAgMCAxIDEyYzAgMy4zMSAyLjY5IDYgNiA2IDIuMjEgMCA0LjE1LTEuMiA1LjE4LTIuOTlsNy41OSA3LjU5IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIybDIuNTkgMi41OXptNS45MyA1LjkzQTMuMDE1IDMuMDE1IDAgMCAxIDcgMTVjLTEuNjUgMC0zLTEuMzUtMy0zIDAtMS40Ljk3LTIuNTggMi4yNi0yLjkxbDMuNjUgMy42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTBoLTguMzVBNS45OSA1Ljk5IDAgMCAwIDcgNmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNmE1Ljk5IDUuOTkgMCAwIDAgNS42NS00SDEzbDIgMiAyLTIgMiAyIDQtNC4wNEwyMSAxMHpNNyAxNWMtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpc3RBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaXZlSGVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYgMTZoLTJ2LTJoMnYyem0yLjA3LTcuNzUtLjkuOTJDMTMuNDUgMTEuOSAxMyAxMi41IDEzIDE0aC0ydi0uNWMwLTEuMS40NS0yLjEgMS4xNy0yLjgzbDEuMjQtMS4yNmMuMzctLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0ycy0yIC45LTIgMkg4YzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAuODgtLjM2IDEuNjgtLjkzIDIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2F0aW9uT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMTEuNzUgMTEuNDctLjExLS4xMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNi41QTIuNSAyLjUgMCAwIDEgMTQuNSA5YzAgLjc0LS4zMyAxLjM5LS44MyAxLjg1bDMuNjMgMy42M2MuOTgtMS44NiAxLjctMy44IDEuNy01LjQ4IDAtMy44Ny0zLjEzLTctNy03YTcgNyAwIDAgMC01LjA0IDIuMTVsMy4xOSAzLjE5Yy40Ni0uNTIgMS4xMS0uODQgMS44NS0uODR6bTQuMzcgOS42LTQuNjMtNC42My0uMTEtLjExTDMuMjcgMyAyIDQuMjdsMy4xOCAzLjE4QzUuMDcgNy45NSA1IDguNDcgNSA5YzAgNS4yNSA3IDEzIDcgMTNzMS42Ny0xLjg1IDMuMzgtNC4zNUwxOC43MyAyMSAyMCAxOS43M2wtMy42My0zLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhdGlvbk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjEzIDIgNSA1LjEzIDUgOWMwIDUuMjUgNyAxMyA3IDEzczctNy43NSA3LTEzYzAtMy44Ny0zLjEzLTctNy03em0wIDkuNWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFpbExvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5Ljk3VjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTJ2LTUuMDNjMC0yLjc2IDIuMjQtNSA1LTVoMXpNMjAgOGwtOCA1LTgtNVY2bDggNSA4LTV2MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTV2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFpbE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY4bDggNSA4LTV2MTB6bS04LTdMNCA2aDE2bC04IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmtDaGF0UmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjM0IDIwLTMuNTQtMy41NCAxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNEwyMyAxNC4zNCAxNy4zNCAyMHpNMTIgMTdhNi45OTUgNi45OTUgMCAwIDEgMTAtNi4zMlY0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGg2YzAtLjE3LjAxLS4zMy4wMy0uNUE0LjA3IDQuMDcgMCAwIDEgMTIgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmtDaGF0VW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNi45OFYxNmMwIDEuMS0uOSAyLTIgMkg2bC00IDRWNGMwLTEuMS45LTIgMi0yaDEwLjFBNS4wMDIgNS4wMDIgMCAwIDAgMTkgOGMxLjEzIDAgMi4xNi0uMzkgMy0xLjAyek0xNiAzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXJrRW1haWxSZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTlhNi45OTUgNi45OTUgMCAwIDEgMTAtNi4zMlY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOC4wOGMtLjA1LS4zMy0uMDgtLjY2LS4wOC0xek00IDZsOCA1IDgtNXYybC04IDUtOC01VjZ6bTEzLjM0IDE2LTMuNTQtMy41NCAxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNEwyMyAxNi4zNCAxNy4zNCAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFya0VtYWlsVW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOC45OFYxOGMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTAuMWMtLjA2LjMyLS4xLjY2LS4xIDEgMCAxLjQ4LjY1IDIuNzkgMS42NyAzLjcxTDEyIDExIDQgNnYybDggNSA1LjMtMy4zMmMuNTQuMiAxLjEuMzIgMS43LjMyIDEuMTMgMCAyLjE2LS4zOSAzLTEuMDJ6TTE2IDVjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zLTMgMS4zNC0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmtVbnJlYWRDaGF0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOVwiLFwiY3lcIjpcIjNcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4VjZoOS4wM2E0LjkwNiA0LjkwNiAwIDAgMS0uOTItNEg0LjAxYTIgMiAwIDAgMC0yIDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNi45N0MyMS4xNiA3LjYxIDIwLjEzIDggMTkgOEg2em04IDZINnYtMmg4djJ6bTQtM0g2VjloMTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVzc2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMiAxMkg2di0yaDEydjJ6bTAtM0g2VjloMTJ2MnptMC0zSDZWNmgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2JpbGVTY3JlZW5TaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2MThjMCAxLjEuODkgMiAxLjk5IDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0em0tNC4yLTUuNzh2MS43NWwzLjItMi45OUwxMi44IDl2MS43Yy0zLjExLjQzLTQuMzUgMi41Ni00LjggNC43IDEuMTEtMS41IDIuNTgtMi4xOCA0LjgtMi4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9yZVRpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4djZsNC43IDIuOS44LTEuMi00LTIuNFY4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45MiAxMkE2Ljk1NyA2Ljk1NyAwIDAgMSAxMSAyMGMtMy45IDAtNy0zLjEtNy03czMuMS03IDctN2MuNyAwIDEuMzcuMSAyIC4yOVY0LjIzYy0uNjQtLjE1LTEuMzEtLjIzLTItLjIzLTUgMC05IDQtOSA5czQgOSA5IDlhOC45NjMgOC45NjMgMCAwIDAgOC45NC0xMGgtMi4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNVYyaC0ydjNoLTN2MmgzdjNoMlY3aDNWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi44MiAxM0gxMXYtMkg2LjgyQzYuNCA5Ljg0IDUuMyA5IDQgOWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM2MxLjMgMCAyLjQtLjg0IDIuODItMnpNNCAxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMyAxMi00LTN2MmgtNC4wNWMtLjUtNS4wNS00Ljc2LTktOS45NS05djJjNC40MiAwIDggMy41OCA4IDhzLTMuNTggOC04IDh2MmM1LjE5IDAgOS40NS0zLjk1IDkuOTUtOUgxOXYybDQtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9TaW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45OSA1YzAtMS4xLS44OS0yLTEuOTktMmgtN0w3LjY2IDUuMzQgMTkgMTYuNjggMTguOTkgNXpNMy42NSAzLjg4IDIuMzggNS4xNSA1IDcuNzdWMTljMCAxLjEuOSAyIDIgMmgxMC4wMWMuMzUgMCAuNjctLjEuOTYtLjI2bDEuODggMS44OCAxLjI3LTEuMjdMMy42NSAzLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXVzZVByZXNlbnRhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE5LjFIM1Y1aDE4djE0LjF6TTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yMSAxOS4xSDNWNWgxOHYxNC4xek0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA4aDJ2OEg5em00IDBoMnY4aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25BZGREaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMjB2LTJjMC0yLjMtNC4xLTMuNy02LjktMy45bDYgNS45aC45em0tMTEuNi01LjVDOS4yIDE1LjEgNyAxNi4zIDcgMTh2Mmg5LjlsNCA0IDEuMy0xLjMtMjEtMjAuOUwwIDMuMWw0IDRWMTBIMXYyaDN2M2gydi0zaDIuOWwyLjUgMi41ek02IDEwdi0uOWwuOS45SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvblNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI4XCIsXCJyXCI6XCI0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjM1IDE0LjAxQzcuNjIgMTMuOTEgMiAxNS4yNyAyIDE4djJoOS41NGMtMi40Ny0yLjc2LTEuMjMtNS44OS0xLjE5LTUuOTl6TTE5LjQzIDE4LjAyYy4zNi0uNTkuNTctMS4yOC41Ny0yLjAyIDAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0IDEuNzkgNCA0IDRjLjc0IDAgMS40My0uMjIgMi4wMi0uNTdMMjAuNTkgMjIgMjIgMjAuNTlsLTIuNTctMi41N3pNMTYgMThjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzQgMTQuNTQtMS40My0xLjQzYy41Ni0uNzMgMS4wNS0xLjUgMS40Ny0yLjMybC0yLjItMi4yYy0uMjgtLjI4LS4zNi0uNjctLjI1LTEuMDIuMzctMS4xMi41Ny0yLjMyLjU3LTMuNTcgMC0uNTUuNDUtMSAxLTFIMjBjLjU1IDAgMSAuNDUgMSAxIDAgMy45OC0xLjM3IDcuNjQtMy42NiAxMC41NHptLTIuODIgMi44MUExNi44ODQgMTYuODg0IDAgMCAxIDQgMjFjLS41NSAwLTEtLjQ1LTEtMXYtMy40OWMwLS41NS40NS0xIDEtMSAxLjI0IDAgMi40NS0uMiAzLjU3LS41Ny4zNS0uMTIuNzUtLjAzIDEuMDIuMjRsMi4yIDIuMmMuODEtLjQyIDEuNTgtLjkgMi4zLTEuNDZMMS4zOSA0LjIybDEuNDItMS40MUwyMS4xOSAyMS4ybC0xLjQxIDEuNDEtNS4yNi01LjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZUVuYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4zOCAxMC43OS0yLjItMi4yYy0uMjgtLjI4LS4zNi0uNjctLjI1LTEuMDIuMzctMS4xMi41Ny0yLjMyLjU3LTMuNTcgMC0uNTUuNDUtMSAxLTFIMjBjLjU1IDAgMSAuNDUgMSAxIDAgOS4zOS03LjYxIDE3LTE3IDE3LS41NSAwLTEtLjQ1LTEtMXYtMy40OWMwLS41NS40NS0xIDEtMSAxLjI0IDAgMi40NS0uMiAzLjU3LS41Ny4zNS0uMTIuNzUtLjAzIDEuMDIuMjRsMi4yIDIuMmMyLjgzLTEuNDUgNS4xNS0zLjc2IDYuNTktNi41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjYyIDEwLjc5YzEuNDQgMi44MyAzLjc2IDUuMTQgNi41OSA2LjU5bDIuMi0yLjJjLjI3LS4yNy42Ny0uMzYgMS4wMi0uMjQgMS4xMi4zNyAyLjMzLjU3IDMuNTcuNTcuNTUgMCAxIC40NSAxIDFWMjBjMCAuNTUtLjQ1IDEtMSAxLTkuMzkgMC0xNy03LjYxLTE3LTE3IDAtLjU1LjQ1LTEgMS0xaDMuNWMuNTUgMCAxIC40NSAxIDEgMCAxLjI1LjIgMi40NS41NyAzLjU3LjExLjM1LjAzLjc0LS4yNSAxLjAybC0yLjIgMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZWxpbmtFcmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgOC4yLTEtMS00IDQtNC00LTEgMSA0IDQtNCA0IDEgMSA0LTQgNCA0IDEtMS00LTQgNC00ek0xOSAxSDljLTEuMSAwLTIgLjktMiAydjNoMlY0aDEwdjE2SDl2LTJIN3YzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVsaW5rTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMUg5Yy0xLjEgMC0yIC45LTIgMnYzaDJWNGgxMHYxNkg5di0ySDd2M2MwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bS04LjIgMTBWOS41QzEwLjggOC4xIDkuNCA3IDggN1M1LjIgOC4xIDUuMiA5LjVWMTFjLS42IDAtMS4yLjYtMS4yIDEuMnYzLjVjMCAuNy42IDEuMyAxLjIgMS4zaDUuNWMuNyAwIDEuMy0uNiAxLjMtMS4ydi0zLjVjMC0uNy0uNi0xLjMtMS4yLTEuM3ptLTEuMyAwaC0zVjkuNWMwLS44LjctMS4zIDEuNS0xLjNzMS41LjUgMS41IDEuM1YxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVsaW5rUmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMSA3LjctMSAxYzEuOCAxLjggMS44IDQuNiAwIDYuNWwxIDFjMi41LTIuMyAyLjUtNi4xIDAtOC41ek0xOCA5LjhsLTEgMWMuNS43LjUgMS42IDAgMi4zbDEgMWMxLjItMS4yIDEuMi0zIDAtNC4zek0xNCAxSDRjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxOUg0VjRoMTB2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lbGlua1NldHVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODIgMTIuNDljLjAyLS4xNi4wNC0uMzIuMDQtLjQ5IDAtLjE3LS4wMi0uMzMtLjA0LS40OWwxLjA4LS44MmMuMS0uMDcuMTItLjIxLjA2LS4zMmwtMS4wMy0xLjczYy0uMDYtLjExLS4yLS4xNS0uMzEtLjExbC0xLjI4LjVjLS4yNy0uMi0uNTYtLjM2LS44Ny0uNDlsLS4yLTEuMzNjMC0uMTItLjExLS4yMS0uMjQtLjIxSDUuOThhLjI2LjI2IDAgMCAwLS4yNi4yMWwtLjIgMS4zMmMtLjMxLjEyLS42LjMtLjg3LjQ5bC0xLjI4LS41Yy0uMTItLjA1LS4yNSAwLS4zMS4xMWwtMS4wMyAxLjczYy0uMDYuMTItLjAzLjI1LjA3LjMzbDEuMDguODJjLS4wMi4xNi0uMDMuMzMtLjAzLjQ5IDAgLjE3LjAyLjMzLjA0LjQ5bC0xLjA5LjgzYy0uMS4wNy0uMTIuMjEtLjA2LjMybDEuMDMgMS43M2MuMDYuMTEuMi4xNS4zMS4xMWwxLjI4LS41Yy4yNy4yLjU2LjM2Ljg3LjQ5bC4yIDEuMzJjLjAxLjEyLjEyLjIxLjI1LjIxaDIuMDZjLjEzIDAgLjI0LS4wOS4yNS0uMjFsLjItMS4zMmMuMzEtLjEyLjYtLjMuODctLjQ5bDEuMjguNWMuMTIuMDUuMjUgMCAuMzEtLjExbDEuMDMtMS43M2MuMDYtLjExLjA0LS4yNC0uMDYtLjMybC0xLjEtLjgzek03IDEzLjc1Yy0uOTkgMC0xLjgtLjc4LTEuOC0xLjc1cy44MS0xLjc1IDEuOC0xLjc1IDEuOC43OCAxLjggMS43NVM4IDEzLjc1IDcgMTMuNzV6TTE4IDEuMDEgOCAxYy0xLjEgMC0yIC45LTIgMnYzaDJWNWgxMHYxNEg4di0xSDZ2M2MwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvcnRhYmxlV2lmaU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41NiAxNC4yNGMuMjgtLjY5LjQ0LTEuNDUuNDQtMi4yNCAwLTMuMzEtMi42OS02LTYtNi0uNzkgMC0xLjU1LjE2LTIuMjQuNDRsMS42MiAxLjYyYy4yLS4wMy40MS0uMDYuNjItLjA2YTMuOTk5IDMuOTk5IDAgMCAxIDMuOTUgNC42M2wxLjYxIDEuNjF6TTEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjM1LS4zNSAyLjYyLS45NSAzLjc0bDEuNDcgMS40N0E5Ljg2IDkuODYgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMS45MSAwLTMuNjkuNTUtNS4yMSAxLjQ3bDEuNDYgMS40NkM5LjM3IDQuMzQgMTAuNjUgNCAxMiA0ek0zLjI3IDIuNSAyIDMuNzdsMi4xIDIuMUMyLjc5IDcuNTcgMiA5LjY5IDIgMTJjMCAzLjcgMi4wMSA2LjkyIDQuOTkgOC42NWwxLTEuNzNDNS42MSAxNy41MyA0IDE0Ljk2IDQgMTJjMC0xLjc2LjU3LTMuMzggMS41My00LjY5bDEuNDMgMS40NEM2LjM2IDkuNjggNiAxMC44IDYgMTJjMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTlsMS0xLjc0Yy0xLjE5LS43LTItMS45Ny0yLTMuNDUgMC0uNjUuMTctMS4yNS40NC0xLjc5bDEuNTggMS41OEwxMCAxMmMwIDEuMS45IDIgMiAybC4yMS0uMDIuMDEuMDEgNy41MSA3LjUxTDIxIDIwLjIzIDQuMjcgMy41bC0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByZXNlbnRUb0FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjExIDAtMiAuODktMiAydjE0YzAgMS4xMS44OSAyIDIgMmgxOGMxLjExIDAgMi0uODkgMi0yVjVjMC0xLjExLS44OS0yLTItMnptMCAxNi4wMkgzVjQuOThoMTh2MTQuMDR6TTEwIDEySDhsNC00IDQgNGgtMnY0aC00di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcmludERpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4xIDE3SDIydi02YzAtMS43LTEuMy0zLTMtM2gtOWw5LjEgOXptLS4xLTdjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptLTEtM1YzSDZ2MS4xTDkgN3pNMS4yIDEuOCAwIDNsNC45IDVDMy4zIDguMSAyIDkuNCAyIDExdjZoNHY0aDExLjlsMyAzIDEuMy0xLjMtMjEtMjAuOXpNOCAxOXYtNWgyLjlsNSA1SDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFFyQ29kZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMWgtMnYtMmgydjJ6bS0yLTdoLTJ2NWgydi01em04LTJoLTJ2NGgydi00em0tMi0yaC0ydjJoMnYtMnpNNyAxMkg1djJoMnYtMnptLTItMkgzdjJoMnYtMnptNy01aDJWM2gtMnYyem0tNy41LS41djNoM3YtM2gtM3pNOSA5SDNWM2g2djZ6bS00LjUgNy41djNoM3YtM2gtM3pNOSAyMUgzdi02aDZ2NnptNy41LTE2LjV2M2gzdi0zaC0zek0yMSA5aC02VjNoNnY2em0tMiAxMHYtM2gtNHYyaDJ2M2g0di0yaC0yem0tMi03aC00djJoNHYtMnptLTQtMkg3djJoMnYyaDJ2LTJoMnYtMnptMS0xVjdoLTJWNWgtMnY0aDR6TTYuNzUgNS4yNWgtMS41djEuNWgxLjV2LTEuNXptMCAxMmgtMS41djEuNWgxLjV2LTEuNXptMTItMTJoLTEuNXYxLjVoMS41di0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFFyQ29kZVNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgNi41djNoLTN2LTNoM00xMSA1SDV2Nmg2VjV6bS0xLjUgOS41djNoLTN2LTNoM00xMSAxM0g1djZoNnYtNnptNi41LTYuNXYzaC0zdi0zaDNNMTkgNWgtNnY2aDZWNXptLTYgOGgxLjV2MS41SDEzVjEzem0xLjUgMS41SDE2VjE2aC0xLjV2LTEuNXpNMTYgMTNoMS41djEuNUgxNlYxM3ptLTMgM2gxLjV2MS41SDEzVjE2em0xLjUgMS41SDE2VjE5aC0xLjV2LTEuNXpNMTYgMTZoMS41djEuNUgxNlYxNnptMS41LTEuNUgxOVYxNmgtMS41di0xLjV6bTAgM0gxOVYxOWgtMS41di0xLjV6TTIyIDdoLTJWNGgtM1YyaDV2NXptMCAxNXYtNWgtMnYzaC0zdjJoNXpNMiAyMmg1di0ySDR2LTNIMnY1ek0yIDJ2NWgyVjRoM1YySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFFyQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTFoOFYzSDN2OHptMi02aDR2NEg1VjV6TTMgMjFoOHYtOEgzdjh6bTItNmg0djRINXYtNHpNMTMgM3Y4aDhWM2gtOHptNiA2aC00VjVoNHY0ek0xOSAxOWgydjJoLTJ6TTEzIDEzaDJ2MmgtMnpNMTUgMTVoMnYyaC0yek0xMyAxN2gydjJoLTJ6TTE1IDE5aDJ2MmgtMnpNMTcgMTdoMnYyaC0yek0xNyAxM2gydjJoLTJ6TTE5IDE1aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVhZE1vcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aDl2MmgtOXpNMTMgMTVoOXYyaC05ek0xNiAxMWg2djJoLTZ6TTEzIDEyIDggN3Y0SDJ2Mmg2djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJpbmdWb2x1bWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMy43MSAxNi42N0ExNi45NzEgMTYuOTcxIDAgMCAwIDEyIDEyQzcuNDYgMTIgMy4zNCAxMy43OC4yOSAxNi42N2MtLjE4LjE4LS4yOS40My0uMjkuNzEgMCAuMjguMTEuNTMuMjkuNzFsMi40OCAyLjQ4Yy4xOC4xOC40My4yOS43MS4yOS4yNyAwIC41Mi0uMTEuNy0uMjguNzktLjc0IDEuNjktMS4zNiAyLjY2LTEuODUuMzMtLjE2LjU2LS41LjU2LS45di0zLjFjMS40NS0uNDggMy0uNzMgNC42LS43M3MzLjE1LjI1IDQuNi43MnYzLjFjMCAuMzkuMjMuNzQuNTYuOS45OC40OSAxLjg3IDEuMTIgMi42NiAxLjg1LjE4LjE4LjQzLjI4LjcuMjguMjggMCAuNTMtLjExLjcxLS4yOWwyLjQ4LTIuNDhjLjE4LS4xOC4yOS0uNDMuMjktLjcxYS45OS45OSAwIDAgMC0uMjktLjd6TTIxLjE2IDYuMjZsLTEuNDEtMS40MS0zLjU2IDMuNTUgMS40MSAxLjQxczMuNDUtMy41MiAzLjU2LTMuNTV6TTEzIDJoLTJ2NWgyVjJ6TTYuNCA5LjgxIDcuODEgOC40IDQuMjYgNC44NCAyLjg0IDYuMjZjLjExLjAzIDMuNTYgMy41NSAzLjU2IDMuNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJzc0ZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuMThcIixcImN5XCI6XCIxNy44MlwiLFwiclwiOlwiMi4xOFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDQuNDR2Mi44M2M3LjAzIDAgMTIuNzMgNS43IDEyLjczIDEyLjczaDIuODNjMC04LjU5LTYuOTctMTUuNTYtMTUuNTYtMTUuNTZ6bTAgNS42NnYyLjgzYzMuOSAwIDcuMDcgMy4xNyA3LjA3IDcuMDdoMi44M2MwLTUuNDctNC40My05LjktOS45LTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnR0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS4wMyAzLTEuMTEgNy4wN2gyLjYybC43LTQuNWgyLjU4TDExLjggMTguNDNIOS40N0w5LjA2IDIxaDcuMjdsLjQtMi41N2gtMi4zNWwyLTEyLjg2aDIuNThsLS43MSA0LjVoMi42NUwyMiAzSDkuMDN6TTggNUg0bC0uMzEgMmg0TDggNXptLS42MSA0aC00bC0uMzEgMmg0bC4zMS0yem0uOTIgOGgtNkwyIDE5aDZsLjMxLTJ6bS42Mi00aC02bC0uMzEgMmg2LjAxbC4zLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlblNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGMxLjEgMCAxLjk5LS45IDEuOTktMkwyMiA2YTIgMiAwIDAgMC0yLTJINGMtMS4xMSAwLTIgLjg5LTIgMnYxMGEyIDIgMCAwIDAgMiAySDB2MmgyNHYtMmgtNHptLTctMy41M3YtMi4xOWMtMi43OCAwLTQuNjEuODUtNiAyLjcyLjU2LTIuNjcgMi4xMS01LjMzIDYtNS44N1Y3bDQgMy43My00IDMuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbmRUaW1lRXh0ZW5zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmMwLTEuMS0uOS0yLTItMmgtNGEyLjUgMi41IDAgMCAwLTUgMEg1LjAxYy0xLjEgMC0yIC45LTIgMnYzLjhDNS43IDkuOCA2IDExLjk2IDYgMTIuNXMtLjI5IDIuNy0zIDIuN1YxOWMwIDEuMS45IDIgMiAyaDMuOGMwLTIuMTYgMS4zNy0yLjc4IDIuMi0yLjk0di05LjNsOSA0LjVWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTJ2NGw0IDEtNCAxdjRsMTAtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VudGltZW50U2F0aXNmaWVkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0wLTIuNWMyLjMzIDAgNC4zMi0xLjQ1IDUuMTItMy41aC0xLjY3Yy0uNjkgMS4xOS0xLjk3IDItMy40NSAycy0yLjc1LS44MS0zLjQ1LTJINi44OGMuOCAyLjA1IDIuNzkgMy41IDUuMTIgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDEwLjVoMnYxaC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTEwIDYuNUg2LjV2Ljc1SDljLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg1di0xLjVoMy41di0uNzVINmMtLjU1IDAtMS0uNDUtMS0xVjEwYzAtLjU1LjQ1LTEgMS0xaDR2MS41em0zIDQuNWgtMlY5aDJ2NnptNi0zYzAgLjU1LS40NSAxLTEgMWgtMi41djJIMTRWOWg0Yy41NSAwIDEgLjQ1IDEgMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVha2VyUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNy4wNyA4LjQzIDguNWMuOTEtLjkxIDIuMTgtMS40OCAzLjU3LTEuNDhzMi42Ni41NyAzLjU3IDEuNDhMMTcgNy4wN0MxNS43MiA1Ljc5IDEzLjk1IDUgMTIgNXMtMy43Mi43OS01IDIuMDd6TTEyIDFDOC45OCAxIDYuMjQgMi4yMyA0LjI1IDQuMjFsMS40MSAxLjQxQzcuMjggNCA5LjUzIDMgMTIgM3M0LjcyIDEgNi4zNCAyLjYybDEuNDEtMS40MUExMC45NjMgMTAuOTYzIDAgMCAwIDEyIDF6bTIuODYgOS4wMUw5LjE0IDEwQzguNTEgMTAgOCAxMC41MSA4IDExLjE0djkuNzFjMCAuNjMuNTEgMS4xNCAxLjE0IDEuMTRoNS43MWMuNjMgMCAxLjE0LS41MSAxLjE0LTEuMTR2LTkuNzFjLjAxLS42My0uNS0xLjEzLTEuMTMtMS4xM3pNMTUgMjBIOXYtOGg2djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgN2MwIDIuMjEtMS43OSA0LTQgNFM4IDkuMjEgOCA3czEuNzktNCA0LTQgNCAxLjc5IDQgNHptLTkgNmMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTEwIDBjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGF5Q3VycmVudExhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMDEgNyAxIDE3YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0xLjk5LjktMS45OSAyek0xOSA3djEwSDVWN2gxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RheUN1cnJlbnRQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0xLjk5LjktMS45OSAydjE4YzAgMS4xLjg5IDIgMS45OSAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE5SDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RheVByaW1hcnlMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjAxIDcgMSAxN2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMS45OS45LTEuOTkgMnpNMTkgN3YxMEg1VjdoMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YXlQcmltYXJ5UG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMS45OS45LTEuOTkgMnYxOGMwIDEuMS44OSAyIDEuOTkgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0b3BTY3JlZW5TaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuMjIgMTguMDIgMiAySDI0di0yaC0yLjc4em0uNzctMiAuMDEtMTBhMiAyIDAgMCAwLTItMkg3LjIybDUuMjMgNS4yM2MuMTgtLjA0LjM2LS4wNy41NS0uMVY3LjAybDQgMy43My0xLjU4IDEuNDcgNS41NCA1LjU0Yy42MS0uMzMgMS4wMy0uOTkgMS4wMy0xLjc0ek0yLjM5IDEuNzMgMS4xMSAzbDEuNTQgMS41NGMtLjQuMzYtLjY1Ljg5LS42NSAxLjQ4djEwYTIgMiAwIDAgMCAyIDJIMHYyaDE4LjEzbDIuNzEgMi43MSAxLjI3LTEuMjdMMi4zOSAxLjczek03IDE1LjAyYy4zMS0xLjQ4LjkyLTIuOTUgMi4wNy00LjA2bDEuNTkgMS41OWMtMS41NC4zOC0yLjcgMS4xOC0zLjY2IDIuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3YXBDYWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDQtNCA0aDN2N2MwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWOGMwLTIuMjEtMS43OS00LTQtNFM1IDUuNzkgNSA4djdIMmw0IDQgNC00SDdWOGMwLTEuMS45LTIgMi0yczIgLjkgMiAydjdjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNFY4aDNsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dHNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek05IDExSDdWOWgydjJ6bTQgMGgtMlY5aDJ2MnptNCAwaC0yVjloMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbnN1YnNjcmliZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxM2MtMS45MyAwLTMuNSAxLjU3LTMuNSAzLjVzMS41NyAzLjUgMy41IDMuNSAzLjUtMS41NyAzLjUtMy41LTEuNTctMy41LTMuNS0zLjV6bTIgNGgtNHYtMWg0djF6bS02Ljk1IDBjLS4wMi0uMTctLjA1LS4zMy0uMDUtLjUgMC0yLjc2IDIuMjQtNSA1LTUgLjkyIDAgMS43Ni4yNiAyLjUuNjlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDguNTV6TTEyIDEwLjUgNSA3VjVsNyAzLjVMMTkgNXYybC03IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVm9pY2VtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSA2QzE1LjQ2IDYgMTMgOC40NiAxMyAxMS41YzAgMS4zMy40NyAyLjU1IDEuMjYgMy41SDkuNzRjLjc5LS45NSAxLjI2LTIuMTcgMS4yNi0zLjVDMTEgOC40NiA4LjU0IDYgNS41IDZTMCA4LjQ2IDAgMTEuNSAyLjQ2IDE3IDUuNSAxN2gxM2MzLjA0IDAgNS41LTIuNDYgNS41LTUuNVMyMS41NCA2IDE4LjUgNnptLTEzIDlDMy41NyAxNSAyIDEzLjQzIDIgMTEuNVMzLjU3IDggNS41IDggOSA5LjU3IDkgMTEuNSA3LjQzIDE1IDUuNSAxNXptMTMgMGMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVTMTYuNTcgOCAxOC41IDggMjIgOS41NyAyMiAxMS41IDIwLjQzIDE1IDE4LjUgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZwbktleU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjgzIDE4SDIxdi00aDJ2LTRIMTIuODNsOCA4em0tMS4wNSA0LjYxIDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIybDIuNTkgMi41OUE2LjAxMiA2LjAxMiAwIDAgMCAxIDEyYzAgMy4zMSAyLjY5IDYgNiA2IDIuMjEgMCA0LjE1LTEuMiA1LjE4LTIuOTlsNy42IDcuNnpNOC45OSAxMS44MmMuMDEuMDYuMDEuMTIuMDEuMTggMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yYy4wNiAwIC4xMiAwIC4xOC4wMWwxLjgxIDEuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZwbktleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjY1IDEwQTUuOTkgNS45OSAwIDAgMCA3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDZhNS45OSA1Ljk5IDAgMCAwIDUuNjUtNEgxN3Y0aDR2LTRoMnYtNEgxMi42NXpNNyAxNGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlDYWxsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNC45NUMyMS43OSA0Ljc4IDE5LjY3IDMgMTYuNSAzYy0zLjE4IDAtNS4yOSAxLjc4LTUuNSAxLjk1TDE2LjUgMTIgMjIgNC45NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNTFjLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS45OTQuOTk0IDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMGgtNHY0aC0ydi00SDd2LTJoNFY3aDJ2NGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZENpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjRIN3YyaDR2NGgydi00aDR2LTJoLTRWN3ptLTEtNUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFoLTR2NGgtMnYtNEg3di0yaDRWN2gydjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExaDh2Mkg4em0xMi4xIDFIMjJjMC0yLjc2LTIuMjQtNS01LTVoLTR2MS45aDRjMS43MSAwIDMuMSAxLjM5IDMuMSAzLjF6TTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTE5IDEyaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFtcFN0b3JpZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDRoMTB2MTVIN3pNMyA2aDJ2MTFIM3pNMTkgNmgydjExaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNTQgNS4yMy0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNMTIgMTcuNSA2LjUgMTJIMTB2LTJoNHYyaDMuNUwxMiAxNy41ek01LjEyIDVsLjgxLTFoMTJsLjk0IDFINS4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXR0cmlidXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4LjVjLS45MSAwLTIuNzUuNDYtMi43NSAxLjM4djQuNjJoMS41VjE5aDIuNXYtNC41aDEuNVY5Ljg4YzAtLjkxLTEuODQtMS4zOC0yLjc1LTEuMzh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0g3Yy0uNjkgMC0xLjIzLjM1LTEuNTkuODhMMCAxMmw1LjQxIDguMTFjLjM2LjUzLjkuODkgMS41OS44OWgxNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMyAxMi41OUwxNy41OSAxNyAxNCAxMy40MSAxMC40MSAxNyA5IDE1LjU5IDEyLjU5IDEyIDkgOC40MSAxMC40MSA3IDE0IDEwLjU5IDE3LjU5IDcgMTkgOC40MSAxNS40MSAxMiAxOSAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFsbG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTEzIDkuNWg1di0yaC01djJ6bTAgN2g1di0yaC01djJ6bTYgNC41SDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnYxNGMwIDEuMS0uOSAyLTIgMnpNNiAxMWg1VjZINnY1em0xLTRoM3YzSDdWN3pNNiAxOGg1di01SDZ2NXptMS00aDN2M0g3di0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCaW90ZWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOWMtMS4xIDAtMiAuOS0yIDJoMTRjMC0xLjEtLjktMi0yLTJoLTR2LTJoM2MxLjEgMCAyLS45IDItMmgtOGMtMS42NiAwLTMtMS4zNC0zLTMgMC0xLjA5LjU5LTIuMDQgMS40Ni0yLjU2QzguMTcgOS4wMyA4IDguNTQgOCA4YzAtLjIxLjA0LS40Mi4wOS0uNjJBNS4wMSA1LjAxIDAgMCAwIDUgMTJjMCAyLjc2IDIuMjQgNSA1IDV2Mkg3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41NiA1LjUxQzExLjkxIDUuNTQgMTMgNi42NCAxMyA4YzAgLjc1LS4zMyAxLjQxLS44NSAxLjg3bC41OSAxLjYyLjk0LS4zNC4zNC45NCAxLjg4LS42OC0uMzQtLjk0Ljk0LS4zNC0yLjc0LTcuNTMtLjk0LjM0LS4zNC0uOTQtMS44OC42OC4zNC45NC0uOTQuMzUuNTYgMS41NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMC41XCIsXCJjeVwiOlwiOFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsb2NrRmxpcHBlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41LTQuNS0xMC0xMC0xMFMyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTB6TTUuNyA3LjFsMTEuMiAxMS4yYy0xLjMgMS4xLTMgMS43LTQuOSAxLjctNC40IDAtOC0zLjYtOC04IDAtMS45LjYtMy42IDEuNy00Ljl6TTIwIDEyYzAgMS45LS42IDMuNi0xLjcgNC45TDcuMSA1LjdDOC40IDQuNiAxMC4xIDQgMTIgNGM0LjQgMCA4IDMuNiA4IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNCAxMmMwLTQuNDIgMy41OC04IDgtOCAxLjg1IDAgMy41NS42MyA0LjkgMS42OUw1LjY5IDE2LjlBNy45MDIgNy45MDIgMCAwIDEgNCAxMnptOCA4Yy0xLjg1IDAtMy41NS0uNjMtNC45LTEuNjlMMTguMzEgNy4xQTcuOTAyIDcuOTAyIDAgMCAxIDIwIDEyYzAgNC40Mi0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMWgtMWwxLTdINy41Yy0uNTggMC0uNTctLjMyLS4zOC0uNjYuMTktLjM0LjA1LS4wOC4wNy0uMTJDOC40OCAxMC45NCAxMC40MiA3LjU0IDEzIDNoMWwtMSA3aDMuNWMuNDkgMCAuNTYuMzMuNDcuNTFsLS4wNy4xNUMxMi45NiAxNy41NSAxMSAyMSAxMSAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FsY3VsYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01Ljk3IDQuMDZMMTQuMDkgNmwxLjQxIDEuNDFMMTYuOTEgNmwxLjA2IDEuMDYtMS40MSAxLjQxIDEuNDEgMS40MS0xLjA2IDEuMDYtMS40MS0xLjQtMS40MSAxLjQxLTEuMDYtMS4wNiAxLjQxLTEuNDEtMS40MS0xLjQyem0tNi43OC42Nmg1djEuNWgtNXYtMS41ek0xMS41IDE2aC0ydjJIOHYtMkg2di0xLjVoMnYtMmgxLjV2MmgyVjE2em02LjUgMS4yNWgtNXYtMS41aDV2MS41em0wLTIuNWgtNXYtMS41aDV2MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGFuZ2VDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0uMDYgMTd2LTIuMDFIMTJjLTEuMjggMC0yLjU2LS40OS0zLjU0LTEuNDZhNS4wMDYgNS4wMDYgMCAwIDEtLjY0LTYuMjlsMS4xIDEuMWMtLjcxIDEuMzMtLjUzIDMuMDEuNTkgNC4xMy43LjcgMS42MiAxLjAzIDIuNTQgMS4wMXYtMi4xNGwyLjgzIDIuODNMMTIuMDYgMTl6bTQuMTEtNC4yNC0xLjEtMS4xYy43MS0xLjMzLjUzLTMuMDEtLjU5LTQuMTNBMy40ODIgMy40ODIgMCAwIDAgMTIgOC41aC0uMDZ2Mi4xNUw5LjExIDcuODMgMTEuOTQgNXYyLjAyYzEuMy0uMDIgMi42MS40NSAzLjYgMS40NSAxLjcgMS43IDEuOTEgNC4zNS42MyA2LjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDYuNDEgMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGVudENvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxSDRjLTEuMSAwLTIgLjktMiAydjE0aDJWM2gxMlYxem0zIDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMWMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE2SDhWN2gxMXYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29udGVudEN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIyXCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiLjVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMlwiLFwiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjY0IDcuNjRjLjIzLS41LjM2LTEuMDUuMzYtMS42NCAwLTIuMjEtMS43OS00LTQtNFMyIDMuNzkgMiA2czEuNzkgNCA0IDRjLjU5IDAgMS4xNC0uMTMgMS42NC0uMzZMMTAgMTJsLTIuMzYgMi4zNkM3LjE0IDE0LjEzIDYuNTkgMTQgNiAxNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00YzAtLjU5LS4xMy0xLjE0LS4zNi0xLjY0TDEyIDE0bDcgN2gzdi0xTDkuNjQgNy42NHpNNiA4Yy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem0wIDEyYy0xLjEgMC0yLS44OS0yLTJzLjktMiAyLTIgMiAuODkgMiAyLS45IDItMiAyem02LTcuNWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6TTE5IDNsLTYgNiAyIDIgNy03VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRlbnRQYXN0ZUdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA1aDJ2M2gxMFY1aDJ2NmgyVjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNXYtMkg1VjV6bTctMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4wMSAxMy0xLjQyIDEuNDEgMS41OCAxLjU4SDEydjJoNi4xN2wtMS41OCAxLjU5IDEuNDIgMS40MSAzLjk5LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRlbnRQYXN0ZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjIgMyA1LjgzVjE5YzAgMS4xLjkgMiAyIDJoMTMuMTdsMS42MSAxLjYxIDEuNDEtMS40MnpNNSAxOVY3LjgzTDE2LjE3IDE5SDV6TTE3IDhWNWgydjExLjE3bDIgMlY1YzAtMS4xLS45LTItMi0yaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1LjgzbDUgNUgxN3ptLTUtNWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250ZW50UGFzdGVTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnYzaDEwVjVoMnY1aDJWNWMwLTEuMS0uOS0yLTItMmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1di0ySDVWNXptNy0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjMgMTguOWMuNC0uNy43LTEuNS43LTIuNCAwLTIuNS0yLTQuNS00LjUtNC41UzEyIDE0IDEyIDE2LjVzMiA0LjUgNC41IDQuNWMuOSAwIDEuNy0uMyAyLjQtLjdsMi43IDIuNyAxLjQtMS40LTIuNy0yLjd6bS0zLjguMWMtMS40IDAtMi41LTEuMS0yLjUtMi41czEuMS0yLjUgMi41LTIuNSAyLjUgMS4xIDIuNSAyLjUtMS4xIDIuNS0yLjUgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb250ZW50UGFzdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAyaC00LjE4QzE0LjQuODQgMTMuMyAwIDEyIDBjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTcgMThINVY0aDJ2M2gxMFY0aDJ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvcHlBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDljLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOWMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDlWNGg5djEyek0zIDE1di0yaDJ2Mkgzem0wLTUuNWgydjJIM3YtMnpNMTAgMjBoMnYyaC0ydi0yem0tNy0xLjV2LTJoMnYySDN6TTUgMjJjLTEuMSAwLTItLjktMi0yaDJ2MnptMy41IDBoLTJ2LTJoMnYyem01IDB2LTJoMmMwIDEuMS0uOSAyLTIgMnpNNSA2djJIM2MwLTEuMS45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcmVhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjV6TTIwLjcxIDcuMDRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVsZXRlU3dlZXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNmg0djJoLTR6bTAtOGg3djJoLTd6bTAgNGg2djJoLTZ6TTMgMThjMCAxLjEuOSAyIDIgMmg2YzEuMSAwIDItLjkgMi0yVjhIM3YxMHpNMTQgNWgtM2wtMS0xSDZMNSA1SDJ2MmgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVzZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6bTYtMThoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyem04IDRoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wLTRoMlY3aC0ydjJ6bS00LTRoMlYzaC0ydjJ6TTcuODMgNSA3IDQuMTdWM2gydjJINy44M3ptMTIgMTItLjgzLS44M1YxNWgydjJoLTEuMTd6bTEuMzYgNC4xOUwyLjgxIDIuODEgMS4zOSA0LjIyIDQuMTcgN0gzdjJoMlY3LjgzbDIgMlYxN2g3LjE3bDIgMkgxNXYyaDJ2LTEuMTdsMi43OCAyLjc4IDEuNDEtMS40MnpNOSAxNXYtMy4xN0wxMi4xNyAxNUg5em02LTIuODNWOWgtMy4xN2wtMi0ySDE3djcuMTdsLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJhZnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTkgOGMwLS43Mi0uMzctMS4zNS0uOTQtMS43TDEyIDEgMi45NSA2LjNDMi4zOCA2LjY1IDIgNy4yOCAyIDh2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMmwtLjAxLTEwek0xMiAxMyAzLjc0IDcuODQgMTIgM2w4LjI2IDQuODRMMTIgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZER5bmFtaWNGZWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA4SDZ2N2MwIDEuMS45IDIgMiAyaDl2LTJIOFY4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzaC04Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDhoLThWN2g4djR6TTQgMTJIMnY3YzAgMS4xLjkgMiAyIDJoOXYtMkg0di03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWxlQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFINGMtMS4xIDAtMiAuOS0yIDJ2MTRoMlYzaDEyVjF6bS0xIDQgNiA2djEwYzAgMS4xLS45IDItMiAySDcuOTlDNi44OSAyMyA2IDIyLjEgNiAyMWwuMDEtMTRjMC0xLjEuODktMiAxLjk5LTJoN3ptLTEgN2g1LjVMMTQgNi41VjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJMaXN0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuODMgOEgyMVY2SDguODNsMiAyem01IDVIMTh2LTJoLTQuMTdsMiAyek0xNCAxNi44M1YxOGgtNHYtMmgzLjE3bC0zLTNINnYtMmgyLjE3bC0zLTNIM1Y2aC4xN0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxTDE0IDE2LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMThoNHYtMmgtNHYyek0zIDZ2MmgxOFY2SDN6bTMgN2gxMnYtMkg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYWdDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem02IDEzaC01bC0xLTJIOS41djVIOFY3aDZsMSAyaDN2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjQgNiAxNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbnREb3dubG9hZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjU4IDkuNzUtLjg3LS44Ny4yMy0uNjZoLjFsLjU0IDEuNTN6bS0yLjIzLTIuMjNMMTAuOTIgNmgyLjE0bDIuNTUgNi43OUwyMiAxOS4xN1Y0YzAtMS4xLS45LTItMi0ySDQuODNsNS41MiA1LjUyem0xMC4xNCAxNS43OUwxOS4xNyAyMkg0Yy0xLjEgMC0yLS45LTItMlY0LjgzTC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MXptLTguMzktOC4zOC0zLjMtMy4zTDYuNDEgMThoMi4wOGwxLjA5LTMuMDdoMi41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9udERvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcImJhc2VQcm9maWxlXCI6XCJ0aW55XCIsXCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS45MyAxMy41aDQuMTRMMTIgNy45OHpNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS00LjA1IDE2LjUtMS4xNC0zSDkuMTdsLTEuMTIgM0g1Ljk2bDUuMTEtMTNoMS44Nmw1LjExIDEzaC0yLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOFY0bDggOC04IDh2LTRINFY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHZXN0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41OSA2Ljg5Yy43LS43MSAxLjQtMS4zNSAxLjcxLTEuMjIuNS4yIDAgMS4wMy0uMyAxLjUyLS4yNS40Mi0yLjg2IDMuODktMi44NiA2LjMxIDAgMS4yOC40OCAyLjM0IDEuMzQgMi45OC43NS41NiAxLjc0LjczIDIuNjQuNDYgMS4wNy0uMzEgMS45NS0xLjQgMy4wNi0yLjc3IDEuMjEtMS40OSAyLjgzLTMuNDQgNC4wOC0zLjQ0IDEuNjMgMCAxLjY1IDEuMDEgMS43NiAxLjc5LTMuNzguNjQtNS4zOCAzLjY3LTUuMzggNS4zNyAwIDEuNyAxLjQ0IDMuMDkgMy4yMSAzLjA5IDEuNjMgMCA0LjI5LTEuMzMgNC42OS02LjFIMjF2LTIuNWgtMi40N2MtLjE1LTEuNjUtMS4wOS00LjItNC4wMy00LjItMi4yNSAwLTQuMTggMS45MS00Ljk0IDIuODQtLjU4LjczLTIuMDYgMi40OC0yLjI5IDIuNzItLjI1LjMtLjY4Ljg0LTEuMTEuODQtLjQ1IDAtLjcyLS44My0uMzYtMS45Mi4zNS0xLjA5IDEuNC0yLjg2IDEuODUtMy41Mi43OC0xLjE0IDEuMy0xLjkyIDEuMy0zLjI4QzguOTUgMy42OSA3LjMxIDMgNi40NCAzIDUuMTIgMyAzLjk3IDQgMy43MiA0LjI1Yy0uMzYuMzYtLjY2LjY2LS44OC45M2wxLjc1IDEuNzF6bTkuMjkgMTEuNjZjLS4zMSAwLS43NC0uMjYtLjc0LS43MiAwLS42LjczLTIuMiAyLjg3LTIuNzYtLjMgMi42OS0xLjQzIDMuNDgtMi4xMyAzLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3dUb1JlZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOSAxNyAzLTIuOTRhOS4zNCA5LjM0IDAgMCAwLTEtLjA2Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDlsLTMtM3ptMi01YzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNE0xNS40NyAyMC41IDEyIDE3bDEuNC0xLjQxIDIuMDcgMi4wOCA1LjEzLTUuMTcgMS40IDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG93VG9Wb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2gtLjY4bC0yIDJoMS45MUwxOSAxN0g1bDEuNzgtMmgyLjA1bC0yLTJINmwtMyAzdjRjMCAxLjEuODkgMiAxLjk5IDJIMTlhMiAyIDAgMCAwIDItMnYtNGwtMy0zem0tMS01LjA1LTQuOTUgNC45NS0zLjU0LTMuNTQgNC45NS00Ljk1TDE3IDcuOTV6bS00LjI0LTUuNjZMNi4zOSA4LjY2YS45OTYuOTk2IDAgMCAwIDAgMS40MWw0Ljk1IDQuOTVjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDYuMzYtNi4zNmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFMMTQuMTYgMi4zYS45NzUuOTc1IDAgMCAwLTEuNC0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDQuOTljLTEuMTEgMC0xLjk4Ljg5LTEuOTggMkwzIDE5YzAgMS4xLjg4IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxMmgtNGMwIDEuNjYtMS4zNSAzLTMgM3MtMy0xLjM0LTMtM0g0Ljk5VjVIMTl2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2lnaHRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOGMtMS40NSAwLTIuMjYgMS40NC0xLjkzIDIuNTFsLTMuNTUgMy41NmMtLjMtLjA5LS43NC0uMDktMS4wNCAwbC0yLjU1LTIuNTVDMTIuMjcgMTAuNDUgMTEuNDYgOSAxMCA5Yy0xLjQ1IDAtMi4yNyAxLjQ0LTEuOTMgMi41MmwtNC41NiA0LjU1QzIuNDQgMTUuNzQgMSAxNi41NSAxIDE4YzAgMS4xLjkgMiAyIDIgMS40NSAwIDIuMjYtMS40NCAxLjkzLTIuNTFsNC41NS00LjU2Yy4zLjA5Ljc0LjA5IDEuMDQgMGwyLjU1IDIuNTVDMTIuNzMgMTYuNTUgMTMuNTQgMTggMTUgMThjMS40NSAwIDIuMjctMS40NCAxLjkzLTIuNTJsMy41Ni0zLjU1YzEuMDcuMzMgMi41MS0uNDggMi41MS0xLjkzIDAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSA5IC45NC0yLjA3TDE4IDZsLTIuMDYtLjkzTDE1IDNsLS45MiAyLjA3TDEyIDZsMi4wOC45M3pNMy41IDExIDQgOWwyLS41TDQgOGwtLjUtMkwzIDhsLTIgLjVMMyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnZlbnRvcnkyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xIDAtMiAuOS0yIDJ2My4wMWMwIC43Mi40MyAxLjM0IDEgMS42OVYyMGMwIDEuMSAxLjEgMiAyIDJoMTRjLjkgMCAyLS45IDItMlY4LjdjLjU3LS4zNSAxLS45NyAxLTEuNjlWNGMwLTEuMS0xLTItMi0yem0tNSAxMkg5di0yaDZ2MnptNS03SDRWNGgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnZlbnRvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMSAwLTIgLjktMiAydjMuMDFjMCAuNzIuNDMgMS4zNCAxIDEuNjlWMjBjMCAxLjEgMS4xIDIgMiAyaDE0Yy45IDAgMi0uOSAyLTJWOC43Yy41Ny0uMzUgMS0uOTcgMS0xLjY5VjRjMC0xLjEtMS0yLTItMnptLTUgMTJIOXYtMmg2djJ6bTUtN0g0VjRsMTYtLjAyVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpbmtPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDdoLTR2MS45aDRjMS43MSAwIDMuMSAxLjM5IDMuMSAzLjEgMCAxLjQzLS45OCAyLjYzLTIuMzEgMi45OGwxLjQ2IDEuNDZDMjAuODggMTUuNjEgMjIgMTMuOTUgMjIgMTJjMC0yLjc2LTIuMjQtNS01LTV6bS0xIDRoLTIuMTlsMiAySDE2ek0yIDQuMjdsMy4xMSAzLjExQTQuOTkxIDQuOTkxIDAgMCAwIDIgMTJjMCAyLjc2IDIuMjQgNSA1IDVoNHYtMS45SDdjLTEuNzEgMC0zLjEtMS4zOS0zLjEtMy4xIDAtMS41OSAxLjIxLTIuOSAyLjc2LTMuMDdMOC43MyAxMUg4djJoMi43M0wxMyAxNS4yN1YxN2gxLjczbDQuMDEgNEwyMCAxOS43NCAzLjI3IDMgMiA0LjI3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDI0VjBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb3dQcmlvcml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDVoOHYyaC04em0wIDUuNWg4djJoLTh6bTAgNS41aDh2MmgtOHpNMiAxMS41QzIgMTUuMDggNC45MiAxOCA4LjUgMThIOXYybDMtMy0zLTN2MmgtLjVDNi4wMiAxNiA0IDEzLjk4IDQgMTEuNVM2LjAyIDcgOC41IDdIMTJWNUg4LjVDNC45MiA1IDIgNy45MiAyIDExLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgNC04IDUtOC01VjZsOCA1IDgtNXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXJrdW5yZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDQtOCA1LTgtNVY2bDggNSA4LTV2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92ZVRvSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINC45OWMtMS4xMSAwLTEuOTguOS0xLjk4IDJMMyAxOWMwIDEuMS44OCAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEyaC00YzAgMS42Ni0xLjM1IDMtMyAzcy0zLTEuMzQtMy0zSDQuOTlWNUgxOXYxMHptLTMtNWgtMlY3aC00djNIOGw0IDQgNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXh0V2VlayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDdoLTRWNWMwLS41NS0uMjItMS4wNS0uNTktMS40MUMxNS4wNSAzLjIyIDE0LjU1IDMgMTQgM2gtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6bTEgMTMuNS0xLTEgMy0zLTMtMyAxLTEgNCA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZWRGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi0xLTJINXYxN2gydi03aDVsMSAyaDdWNmgtNnptNCA4aC00bC0xLTJIN1Y2aDVsMSAyaDV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9saWN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgNS05LTQtOSA0djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiAyLjMtLjU2IDQuMzMtMS45IDUuODgtMy43MWwtMy4xMi0zLjEyYTQuOTk0IDQuOTk0IDAgMCAxLTYuMjktLjY0IDUuMDAzIDUuMDAzIDAgMCAxIDAtNy4wNyA1LjAwMyA1LjAwMyAwIDAgMSA3LjA3IDAgNS4wMDYgNS4wMDYgMCAwIDEgLjY0IDYuMjlsMi45IDIuOUMyMC4yOSAxNS42OSAyMSAxMy4zOCAyMSAxMVY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHVzaFBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNiA5VjRoMWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDF2NWMwIDEuNjYtMS4zNCAzLTMgM3YyaDUuOTd2N2wxIDEgMS0xdi03SDE5di0yYy0xLjY2IDAtMy0xLjM0LTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZhOC4wMDIgOC4wMDIgMCAwIDEgNy42LTUuNWMxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmVDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMXYyaDEwdi0ySDd6bTUtOUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTUgMTFIN3YtMmgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM0g1di0yaDE0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA4VjVsLTcgNyA3IDd2LTNsLTQtNCA0LTR6bTYgMVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDlWNWwtNyA3IDcgN3YtNC4xYzUgMCA4LjUgMS42IDExIDUuMS0xLTUtNC0xMC0xMS0xMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwb3J0R21haWxlcnJvcnJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xOSAxNC45IDE0LjkgMTlIOS4xTDUgMTQuOVY5LjFMOS4xIDVoNS44TDE5IDkuMXY1Ljh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnY2aC0yek0xMSAxNWgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcG9ydE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnYyLjkybDYuOTEgNi45MSAxLjA5LTEuMVY4LjI3TDE1LjczIDNIOC4yN0w3LjE4IDQuMSAxMSA3Ljkyem0xMS4yNyAxNC43My0yMC0yMC4wMUwxIDIuOTlsMy42NCAzLjY0TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NmwxLjY0LTEuNjNMMjEgMjNsMS4yNy0xLjI3ek0xMiAxNy4zYy0uNzIgMC0xLjMtLjU4LTEuMy0xLjNzLjU4LTEuMyAxLjMtMS4zIDEuMy41OCAxLjMgMS4zLS41OCAxLjMtMS4zIDEuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzMgM0g4LjI3TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NkwyMSAxNS43M1Y4LjI3TDE1LjczIDN6TTEyIDE3LjNjLS43MiAwLTEuMy0uNTgtMS4zLTEuMyAwLS43Mi41OC0xLjMgMS4zLTEuMy43MiAwIDEuMy41OCAxLjMgMS4zIDAgLjcyLS41OCAxLjMtMS4zIDEuM3ptMS00LjNoLTJWN2gydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdmVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMnY3SDV2LTdIM3Y3YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ6bS02IC42NyAyLjU5LTIuNThMMTcgMTEuNWwtNSA1LTUtNSAxLjQxLTEuNDFMMTEgMTIuNjdWM2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYXZlQXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMi40VjdsLTQtNEg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjRsOC42LTguNnpNMTUgMTVjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzek02IDZoOXY0SDZWNnptMTMuOTkgMTAuMjUgMS43NyAxLjc3TDE2Ljc3IDIzSDE1di0xLjc3bDQuOTktNC45OHptMy4yNi4yNi0uODUuODUtMS43Ny0xLjc3Ljg1LS44NWMuMi0uMi41MS0uMi43MSAwbDEuMDYgMS4wNmMuMi4yLjIuNTIgMCAuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZWxlY3RBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVoMlYzYy0xLjEgMC0yIC45LTIgMnptMCA4aDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6TTMgOWgyVjdIM3Yyem0xMC02aC0ydjJoMlYzem02IDB2MmgyYzAtMS4xLS45LTItMi0yek01IDIxdi0ySDNjMCAxLjEuOSAyIDIgMnptLTItNGgydi0ySDN2MnpNOSAzSDd2MmgyVjN6bTIgMThoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6TTcgMTdoMTBWN0g3djEwem0yLThoNnY2SDlWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuMDEgMjEgMjMgMTIgMi4wMSAzIDIgMTBsMTUgMi0xNSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU29ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMThoNnYtMkgzdjJ6TTMgNnYyaDE4VjZIM3ptMCA3aDEydi0ySDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3F1YXJlRm9vdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjY2IDE3LjY2LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNi0xLjk0LTEuOTQtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDZMOS43IDkuN2wtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDZMNCA0djE0YzAgMS4xLjkgMiAyIDJoMTRsLTIuMzQtMi4zNHpNNyAxN3YtNS43NkwxMi43NiAxN0g3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFja2VkQmFyQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloNHYxMUg0ek00IDRoNHY0SDR6TTEwIDdoNHY0aC00ek0xNiAxMGg0djRoLTR6TTE2IDE1aDR2NWgtNHpNMTAgMTJoNHY4aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjIwXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI0XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjIwXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA1IDguNTkgNi4wMyA0LjU1aC0uMDFsLS4zMS0uMzItMS40MiAxLjQxIDQuMDIgNC4wNS4wMS0uMDEuMzEuMzJ6bTMuODkzLjAyNyA0LjQwNS00LjM5MkwxOS43NiA1LjY0bC00LjQwNSA0LjM5M3pNMTAuMDEgMTUuMzZsLTEuNDItMS40MS00LjAzIDQuMDEtLjMyLjMzIDEuNDEgMS40MSA0LjAzLTQuMDJ6bTkuNzUgMi45NC0zLjk5LTQuMDEtLjM2LS4zNUwxNCAxNS4zNWwzLjk5IDQuMDEuMzUuMzV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTBWOGgtNFY0aC0ydjRoLTRWNEg4djRINHYyaDR2NEg0djJoNHY0aDJ2LTRoNHY0aDJ2LTRoNHYtMmgtNHYtNGg0em0tNiA0aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dEZvcm1hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTd2MmgxNHYtMkg1em00LjUtNC4yaDVsLjkgMi4yaDIuMUwxMi43NSA0aC0xLjVMNi41IDE1aDIuMWwuOS0yLjJ6TTEyIDUuOTggMTMuODcgMTFoLTMuNzRMMTIgNS45OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW5hcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNTUgNS4yMi0xLjM5LTEuNjhBMS41MSAxLjUxIDAgMCAwIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTUuNTVMMy40NiA1LjIyQzMuMTcgNS41NyAzIDYuMDEgMyA2LjVWMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDktLjE3LS45My0uNDUtMS4yOHpNMTIgOS41bDUuNSA1LjVIMTR2MmgtNHYtMkg2LjVMMTIgOS41ek01LjEyIDVsLjgyLTFoMTJsLjkzIDFINS4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW5kbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVcGNvbWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjE2IDcuMjYtMS40MS0xLjQxLTMuNTYgMy41NSAxLjQxIDEuNDFzMy40NS0zLjUyIDMuNTYtMy41NXpNMTEgM2gydjVoLTJ6TTYuNCAxMC44MSA3LjgxIDkuNCA0LjI2IDUuODQgMi44NCA3LjI2Yy4xMS4wMyAzLjU2IDMuNTUgMy41NiAzLjU1ek0yMCAxMmgtNWMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtM0g0Yy0xLjEgMC0yIC45LTIgMnY1YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhdmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNi45OWMtMS4zNSAwLTIuMi40Mi0yLjk1LjgtLjY1LjMzLTEuMTguNi0yLjA1LjYtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjU3LS44LTIuOTUtLjhzLTIuMi40Mi0yLjk1LjhjLS42NS4zMy0xLjE3LjYtMi4wNS42djEuOTVjMS4zNSAwIDIuMi0uNDIgMi45NS0uOC42NS0uMzMgMS4xNy0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTcuOCAyLjk1LjhzMi4yLS40MiAyLjk1LS44Yy42NS0uMzMgMS4xOC0uNiAyLjA1LS42LjkgMCAxLjQuMjUgMi4wNS42Ljc1LjM4IDEuNTguOCAyLjk1Ljh2LTEuOTVjLS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzgtMS42LS44LTIuOTUtLjh6bTAtNC40NWMtMS4zNSAwLTIuMi40My0yLjk1LjgtLjY1LjMyLTEuMTguNi0yLjA1LjYtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjU3LS44LTIuOTUtLjhzLTIuMi40My0yLjk1LjhjLS42NS4zMi0xLjE3LjYtMi4wNS42djEuOTVjMS4zNSAwIDIuMi0uNDMgMi45NS0uOC42NS0uMzUgMS4xNS0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTcuOCAyLjk1LjhzMi4yLS40MyAyLjk1LS44Yy42NS0uMzUgMS4xNS0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTguOCAyLjk1Ljh2LTEuOTVjLS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzgtMS42LS44LTIuOTUtLjh6bTIuOTUtOC4wOGMtLjc1LS4zOC0xLjU4LS44LTIuOTUtLjhzLTIuMi40Mi0yLjk1LjhjLS42NS4zMi0xLjE4LjYtMi4wNS42LS45IDAtMS40LS4yNS0yLjA1LS42LS43NS0uMzctMS41Ny0uOC0yLjk1LS44cy0yLjIuNDItMi45NS44Yy0uNjUuMzMtMS4xNy42LTIuMDUuNnYxLjkzYzEuMzUgMCAyLjItLjQzIDIuOTUtLjguNjUtLjMzIDEuMTctLjYgMi4wNS0uNnMxLjQuMjUgMi4wNS42Yy43NS4zOCAxLjU3LjggMi45NS44czIuMi0uNDMgMi45NS0uOGMuNjUtLjMyIDEuMTgtLjYgMi4wNS0uNi45IDAgMS40LjI1IDIuMDUuNi43NS4zOCAxLjU4LjggMi45NS44VjUuMDRjLS45IDAtMS40LS4yNS0yLjA1LS41OHpNMTcgOC4wOWMtMS4zNSAwLTIuMi40My0yLjk1LjgtLjY1LjM1LTEuMTUuNi0yLjA1LjZzLTEuNC0uMjUtMi4wNS0uNmMtLjc1LS4zOC0xLjU3LS44LTIuOTUtLjhzLTIuMi40My0yLjk1LjhjLS42NS4zNS0xLjE1LjYtMi4wNS42djEuOTVjMS4zNSAwIDIuMi0uNDMgMi45NS0uOC42NS0uMzIgMS4xOC0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTcuOCAyLjk1LjhzMi4yLS40MyAyLjk1LS44Yy42NS0uMzIgMS4xOC0uNiAyLjA1LS42LjkgMCAxLjQuMjUgMi4wNS42Ljc1LjM4IDEuNTguOCAyLjk1LjhWOS40OWMtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjYtLjgtMi45NS0uOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2ViU3RvcmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDRjMS4xIDAgMiAuOSAyIDJ2MTJjMCAxLjEtLjkgMi0yIDJWNHpNMiAyMGMwIDEuMS45IDIgMiAyaDljMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxNnptMTktMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXZWVrZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTBjLTEuMSAwLTIgLjktMiAydjNINXYtM2EyIDIgMCAxIDAtNCAwdjVjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnptLTMtNUg2Yy0xLjEgMC0yIC45LTIgMnYyLjE1YzEuMTYuNDEgMiAxLjUyIDIgMi44MVYxNGgxMnYtMi4wM2MwLTEuMy44NC0yLjQgMi0yLjgxVjdjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdoZXJlVG9Wb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYzMuODYgMCA3IDMuMTQgNyA3IDAgNS4yNS03IDEzLTcgMTNTNSAxNC4yNSA1IDljMC0zLjg2IDMuMTQtNyA3LTd6bS0xLjUzIDEyTDE3IDcuNDEgMTUuNiA2bC01LjEzIDUuMThMOC40IDkuMDkgNyAxMC41bDMuNDcgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxeE1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgN2g0djEwSDZWOUg0Vjd6bTExLjgzIDQuNzJMMTguNjYgN2gtMi4zM2wtMS42NiAyLjc3TDEzIDdoLTIuMzNsMi44MyA0LjcyTDEwLjMzIDE3aDIuMzNsMi0zLjM0IDIgMy4zNEgxOWwtMy4xNy01LjI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzMEZwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA1djNoNnYyLjVIM3YzaDVWMTZIMnYzaDZjMS42NiAwIDMtMS4zNCAzLTN2LTEuOUEyLjEgMi4xIDAgMCAwIDguOSAxMiAyLjEgMi4xIDAgMCAwIDExIDkuOVY4YzAtMS42Ni0xLjM0LTMtMy0zSDJ6bTE3IDN2OGgtNFY4aDRtMC0zaC00Yy0xLjY2IDAtMyAxLjM0LTMgM3Y4YzAgMS42NiAxLjM0IDMgMyAzaDRjMS42NiAwIDMtMS4zNCAzLTNWOGMwLTEuNjYtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kM2dNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDd2Mmg1djJINHYyaDR2MkgzdjJoNWMxLjEgMCAyLS45IDItMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY5YzAtMS4xLS45LTItMi0ySDN6bTE4IDR2NGMwIDEuMS0uOSAyLTIgMmgtNWMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDVjMS4xIDAgMiAuOSAyIDJoLTd2Nmg1di0yaC0yLjV2LTJIMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDRnTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA3SDd2NUg1VjdIM3Y3aDR2M2gydi0zaDJ2LTJIOVY3em04IDR2MmgydjJoLTVWOWg3YzAtMS4xLS45LTItMi0yaC01Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNGdQbHVzTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTF2MmgydjJoLTRWOWg2YzAtMS4xLS45LTItMi0yaC00Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNGMxLjEgMCAyLS45IDItMnYtNGgtNHptMTEgMGgtMlY5aC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yek03IDdINXY1SDNWN0gxdjdoNHYzaDJ2LTNoMXYtMkg3Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDYwRnBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4djhoLTRWOGg0bTAtM2gtNGMtMS42NiAwLTMgMS4zNC0zIDN2OGMwIDEuNjYgMS4zNCAzIDMgM2g0YzEuNjYgMCAzLTEuMzQgMy0zVjhjMC0xLjY2LTEuMzQtMy0zLTN6bS05IDNWNUg1QzMuMzQgNSAyIDYuMzQgMiA4djhjMCAxLjY2IDEuMzQgMyAzIDNoM2MxLjY2IDAgMy0xLjM0IDMtM3YtM2MwLTEuNjYtMS4zNC0zLTMtM0g1VjhoNXptLTIgNXYzSDV2LTNoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjZXNzQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjcyLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyLjUgOEgxMXY2bDQuNzUgMi44NS43NS0xLjIzLTQtMi4zN1Y4ek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjZXNzQWxhcm1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0tNjE4LTU2OEg3ODJ2MzYwMEgtNjE4ek0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNS43LTQuNi0zLjktMS4zIDEuNSA0LjYgMy45TDIyIDUuN3pNNy45IDMuNCA2LjYgMS45IDIgNS43bDEuMyAxLjUgNC42LTMuOHpNMTIuNSA4SDExdjZsNC43IDIuOS44LTEuMi00LTIuNFY4ek0xMiA0Yy01IDAtOSA0LTkgOXM0IDkgOSA5IDktNCA5LTktNC05LTktOXptMCAxNmMtMy45IDAtNy0zLjEtNy03czMuMS03IDctNyA3IDMuMSA3IDctMy4xIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2Nlc3NUaW1lRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyem0zLjMgMTQuNzFMMTEgMTIuNDFWN2gydjQuNTlsMy43MSAzLjcxLTEuNDIgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWNjZXNzVGltZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA3SDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkVW5pdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxOEg3VjVoMTB2MTR6TTggNmg4djJIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQWxhcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTIyIDUuNzJsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3ptMS0xMWgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFRvSG9tZVNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMS4wMSA4IDFjLTEuMSAwLTIgLjktMiAydjNoMlY1aDEwdjE0SDh2LTFINnYzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTAgMTVoMlY4SDV2MmgzLjU5TDMgMTUuNTkgNC40MSAxNyAxMCAxMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDE3YzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zaDJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMUgydi0yaDkuNWMxLjY1IDAgMyAxLjM1IDMgM3pNMTkgNi41QzE5IDQuNTcgMTcuNDMgMyAxNS41IDNTMTIgNC41NyAxMiA2LjVoMmMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVMxNi4zMyA4IDE1LjUgOEgydjJoMTMuNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNXptLS41IDQuNUgydjJoMTYuNWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41djJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMjAuNDMgMTEgMTguNSAxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlycGxhbmVUaWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjE5IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMnY0YzEuMSAwIDEuOTkuOSAxLjk5IDJzLS44OSAyLTIgMnY0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uODEtMi0xLjgxLTJ6bS0yLjQ2IDkuMy04Ljg2IDIuMzYtMS42Ni0yLjg4LjkzLS4yNSAxLjI2Ljk5IDIuMzktLjY0LTIuNC00LjE2IDEuNC0uMzggNC4wMSAzLjc0IDIuNDQtLjY1YS45NjcuOTY3IDAgMCAxIDEuMTguNjguOTg4Ljk4OCAwIDAgMS0uNjkgMS4xOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlycGxhbmVtb2RlQWN0aXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNnYtMmwtOC41LTVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjVWOUwyIDE0djJsOC41LTIuNVYxOUw4IDIwLjVWMjJsNC0xIDQgMXYtMS41TDEzLjUgMTl2LTUuNUwyMiAxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlycGxhbmVtb2RlSW5hY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgNy42N1YzLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVWOWw4LjUgNXYybC00LjQ5LTEuMzItNy4wMS03LjAxem05LjI4IDE0Ljk0IDEuNDEtMS40MS03LjY5LTcuNy0zLjk0LTMuOTQtNi43NS02Ljc1LTEuNDIgMS40MSA2LjM4IDYuMzhMMiAxNHYybDguNS0yLjVWMTlMOCAyMC41VjIybDQtMSA0IDF2LTEuNUwxMy41IDE5di0yLjY3bDYuMjggNi4yOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQW9kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOEg3VjZoMTB2MTJ6bS05LThoOHYxLjVIOFYxMHptMSAzaDZ2MS41SDlWMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnkwQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djE0aDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2MTJoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5MkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXYxMGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnkzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djhoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5NEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXY2aDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTVCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2NGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnk2QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djJoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5QWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpNMTMgMThoLTJ2LTJoMnYyem0wLTRoLTJWOWgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlDaGFyZ2luZ0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpNMTEgMjB2LTUuNUg5TDEzIDd2NS41aDJMMTEgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlTYXZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMlYyaC00djJIOGMtLjU1IDAtMSAuNDUtMSAxdjE2YzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xVjVjMC0uNTUtLjQ1LTEtMS0xem0tMSAxMGgtMnYyaC0ydi0ySDl2LTJoMnYtMmgydjJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5U3RkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlVbmtub3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6bS0yLjcyIDEzLjk1aC0xLjl2LTEuOWgxLjl2MS45em0xLjM1LTUuMjZzLS4zOC40Mi0uNjcuNzFjLS40OC40OC0uODMgMS4xNS0uODMgMS42aC0xLjZjMC0uODMuNDYtMS41Mi45My0ybC45My0uOTRBMS40OTggMS40OTggMCAwIDAgMTIgOS41Yy0uODMgMC0xLjUuNjctMS41IDEuNUg5YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDNjMCAuNjYtLjI3IDEuMjYtLjcgMS42OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmxvb2R0eXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy01LjMzIDQuNTUtOCA4LjQ4LTggMTEuOCAwIDQuOTggMy44IDguMiA4IDguMnM4LTMuMjIgOC04LjJjMC0zLjMyLTIuNjctNy4yNS04LTExLjh6bTMgMTZIOXYtMmg2djJ6bTAtNWgtMnYyaC0ydi0ySDl2LTJoMlY5aDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsdWV0b290aENvbm5lY3RlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcgMTItMi0yLTIgMiAyIDIgMi0yem0xMC43MS00LjI5TDEyIDJoLTF2Ny41OUw2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMSAxNC40MVYyMmgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgNS44M2wxLjg4IDEuODhMMTMgOS41OVY1Ljgzem0xLjg4IDEwLjQ2TDEzIDE4LjE3di0zLjc2bDEuODggMS44OHpNMTkgMTBsLTIgMiAyIDIgMi0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmx1ZXRvb3RoRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA1LjgzIDEuODggMS44OC0xLjYgMS42IDEuNDEgMS40MSAzLjAyLTMuMDJMMTIgMmgtMXY1LjAzbDIgMnYtMy4yek01LjQxIDQgNCA1LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMSAxNC40MVYyMmgxbDQuMjktNC4yOSAyLjMgMi4yOUwyMCAxOC41OSA1LjQxIDR6TTEzIDE4LjE3di0zLjc2bDEuODggMS44OEwxMyAxOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmx1ZXRvb3RoRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEwSDQuODFsMS4wNC0zSDE1VjVINS41Yy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwyIDEydjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGgtM2MtMS4xIDAtMi0uOS0yLTJ6bS04LjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTMgNi41IDEzczEuNS42NyAxLjUgMS41UzcuMzMgMTYgNi41IDE2em05IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzLjg1IDE5LjE1IDFoLS41djMuNzlsLTIuMy0yLjI5LS43LjdMMTguNDQgNmwtMi43OSAyLjc5LjcuNzEgMi4zLTIuM1YxMWguNUwyMiA4LjE0IDE5Ljg1IDYgMjIgMy44NXptLTIuMzUtLjk0Ljk0Ljk0LS45NC45NFYyLjkxem0uOTQgNS4yMy0uOTQuOTRWNy4ybC45NC45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmx1ZXRvb3RoU2VhcmNoaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMjQgMTIuMDEgMi4zMiAyLjMyYy4yOC0uNzIuNDQtMS41MS40NC0yLjMzIDAtLjgyLS4xNi0xLjU5LS40My0yLjMxbC0yLjMzIDIuMzJ6bTUuMjktNS4zLTEuMjYgMS4yNmMuNjMgMS4yMS45OCAyLjU3Ljk4IDQuMDJzLS4zNiAyLjgyLS45OCA0LjAybDEuMiAxLjJhOS45MzYgOS45MzYgMCAwIDAgMS41NC01LjMxYy0uMDEtMS44OS0uNTUtMy42Ny0xLjQ4LTUuMTl6bS0zLjgyIDFMMTAgMkg5djcuNTlMNC40MSA1IDMgNi40MSA4LjU5IDEyIDMgMTcuNTkgNC40MSAxOSA5IDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMSA1LjgzbDEuODggMS44OEwxMSA5LjU5VjUuODN6bTEuODggMTAuNDZMMTEgMTguMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy43MSA3LjcxIDEyIDJoLTF2Ny41OUw2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMSAxNC40MVYyMmgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgNS44M2wxLjg4IDEuODhMMTMgOS41OVY1Ljgzem0xLjg4IDEwLjQ2TDEzIDE4LjE3di0zLjc2bDEuODggMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJpZ2h0bmVzc0F1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44NSAxMi42NWgyLjNMMTIgOWwtMS4xNSAzLjY1ek0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5ek0xNC4zIDE2bC0uNy0yaC0zLjJsLS43IDJINy44TDExIDdoMmwzLjIgOWgtMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzSGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptMC0xMGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3NMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS4zMSAyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzTWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuMzEgMjMuMzEgMTIgMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjl6TTEyIDE4VjZjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1VjRjMC0uNTUtLjQ1LTEtMS0xaC0yYy0uNTUgMC0xIC40NS0xIDF2MWgtMXY0YzAgLjU1LjQ1IDEgMSAxaDF2N2MwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWN2MwLTIuMjEtMS43OS00LTQtNFM1IDQuNzkgNSA3djdINGMtLjU1IDAtMSAuNDUtMSAxdjRoMXYxYzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi0xaDF2LTRjMC0uNTUtLjQ1LTEtMS0xSDdWN2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjEwYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTR2LTdoMWMuNTUgMCAxLS40NSAxLTFWNWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhc3dpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3aC0xbC0xLTFoLTRMOSA3SDhjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bS00IDdjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjU3LjUxIDQuNDggNC40OFYyLjA0YzQuNzIuNDcgOC40OCA0LjIzIDguOTUgOC45NWgyQzIzLjM0IDMuMDIgMTUuNDktMS41OSA4LjU3LjUxek0xMC45NSAyMS45NmMtNC43Mi0uNDctOC40OC00LjIzLTguOTUtOC45NUgwYy42NiA3Ljk3IDguNTEgMTIuNTggMTUuNDMgMTAuNDhsLTQuNDgtNC40OHYyLjk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcmVkaXRTY29yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoNXYtMkg0di02aDE4VjZjMC0xLjExLS44OS0yLTItMnptMCA0SDRWNmgxNnYyem0tNS4wNyAxMS4xNy0yLjgzLTIuODMtMS40MSAxLjQxTDE0LjkzIDIyIDIyIDE0LjkzbC0xLjQxLTEuNDEtNS42NiA1LjY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXJrTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNhOSA5IDAgMSAwIDkgOWMwLS40Ni0uMDQtLjkyLS4xLTEuMzZhNS4zODkgNS4zODkgMCAwIDEtNC40IDIuMjYgNS40MDMgNS40MDMgMCAwIDEtMy4xNC05LjhjLS40NC0uMDYtLjktLjEtMS4zNi0uMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YVNhdmVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyLjA1djMuMDNjMy4zOS40OSA2IDMuMzkgNiA2LjkyIDAgLjktLjE4IDEuNzUtLjQ4IDIuNTRsMi42IDEuNTNjLjU2LTEuMjQuODgtMi42Mi44OC00LjA3IDAtNS4xOC0zLjk1LTkuNDUtOS05Ljk1ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTcgMC0zLjUzIDIuNjEtNi40MyA2LTYuOTJWMi4wNWMtNS4wNi41LTkgNC43Ni05IDkuOTUgMCA1LjUyIDQuNDcgMTAgOS45OSAxMCAzLjMxIDAgNi4yNC0xLjYxIDguMDYtNC4wOWwtMi42LTEuNTNBNi45NSA2Ljk1IDAgMCAxIDEyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhU2F2ZXJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOHYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zVjhoLTJ6bTItNS45NXYzLjAzYzMuMzkuNDkgNiAzLjM5IDYgNi45MiAwIC45LS4xOCAxLjc1LS40OCAyLjU0bDIuNiAxLjUzYy41Ni0xLjI0Ljg4LTIuNjIuODgtNC4wNyAwLTUuMTgtMy45NS05LjQ1LTktOS45NXpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03IDAtMy41MyAyLjYxLTYuNDMgNi02LjkyVjIuMDVjLTUuMDYuNS05IDQuNzYtOSA5Ljk1IDAgNS41MiA0LjQ3IDEwIDkuOTkgMTAgMy4zMSAwIDYuMjQtMS42MSA4LjA2LTQuMDlsLTIuNi0xLjUzQTYuOTUgNi45NSAwIDAgMSAxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YVVzYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMi4wNXYzLjAzYzMuMzkuNDkgNiAzLjM5IDYgNi45MiAwIC45LS4xOCAxLjc1LS40OCAyLjU0bDIuNiAxLjUzYy41Ni0xLjI0Ljg4LTIuNjIuODgtNC4wNyAwLTUuMTgtMy45NS05LjQ1LTktOS45NXpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03IDAtMy41MyAyLjYxLTYuNDMgNi02LjkyVjIuMDVjLTUuMDYuNS05IDQuNzYtOSA5Ljk1IDAgNS41MiA0LjQ3IDEwIDkuOTkgMTAgMy4zMSAwIDYuMjQtMS42MSA4LjA2LTQuMDlsLTIuNi0xLjUzQTYuOTUgNi45NSAwIDAgMSAxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YXNldExpbmtlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguMDkgMTdIN3YtNGgzLjY5Yy45NS0uNjMgMi4wOS0xIDMuMzEtMWg2Yy4zNCAwIC42Ny4wNCAxIC4wOVY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMy44MUM4LjMgMjAuMTIgOCAxOS4wOSA4IDE4YzAtLjM0LjA0LS42Ny4wOS0xek0xMyA3aDR2NGgtNFY3ek03IDdoNHY0SDdWN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjMC0xLjEuOS0yIDItMmgydi0yaC0yYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0aDJ2LTJoLTJjLTEuMSAwLTItLjktMi0yek0yMCAxNGgtMnYyaDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyaC0ydjJoMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTdoNnYyaC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREYXRhc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS04IDE0SDd2LTRoNHY0em0wLTZIN1Y3aDR2NHptNiA2aC00di00aDR2NHptMC02aC00VjdoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZlbG9wZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1aDEwdjJoMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5TDcgMWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTguNDEgMTEuNTlMMjAgMTJsLTQuNTktNC41OUwxNCA4LjgzIDE3LjE3IDEyIDE0IDE1LjE3bDEuNDEgMS40MnpNMTAgMTUuMTcgNi44MyAxMiAxMCA4LjgzIDguNTkgNy40MSA0IDEybDQuNTkgNC41OUwxMCAxNS4xN3pNMTcgMTlIN3YtMkg1djRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNGgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZpY2VUaGVybW9zdGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djhjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wOS0yLTR6bS00LThjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxaC0xdjFoMXYyaC0xdjFoMXYyaC0yVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmljZXNGb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM2gtM2MwLTEuNDMtMS40Ny0yLjQtMi43OS0xLjg0bC0zIDEuMjlDMTAuNDggMi43NiAxMCAzLjQ5IDEwIDQuMjlWMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTUuMzNsMS4xMi0uNDhjLjczLS4zMiAxLjIxLTEuMDQgMS4yMS0xLjg0VjVoM3YxNHpNMiAzaDJ2Mkgyek0yIDE5aDJ2Mkgyek0yIDE1aDJ2Mkgyek0yIDExaDJ2Mkgyek0yIDdoMnYySDJ6TTYgM2gydjJINnpNNiAxOWgydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgxOFY0SDRjLTEuMSAwLTIgLjktMiAydjExSDB2M2gxNHYtM0g0VjZ6bTE5IDJoLTZjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXptLTEgOWgtNHYtN2g0djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpc2NvdW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNzkgMjEgMyAxMS4yMXYyYzAgLjUzLjIxIDEuMDQuNTkgMS40MWw3Ljc5IDcuNzljLjc4Ljc4IDIuMDUuNzggMi44MyAwbDYuMjEtNi4yMWMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDEyLjc5IDIxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4zOCAxNy40MWMuNzguNzggMi4wNS43OCAyLjgzIDBsNi4yMS02LjIxYy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTIuNjMuNThBMi4wNCAyLjA0IDAgMCAwIDExLjIxIDBINUMzLjkgMCAzIC45IDMgMnY2LjIxYzAgLjUzLjIxIDEuMDQuNTkgMS40MWw3Ljc5IDcuNzl6TTcuMjUgM2ExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdERpc3R1cmJPblRvdGFsU2lsZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTMuMyAwLTYgMi43LTYgNnMyLjcgNiA2IDYgNi0yLjcgNi02LTIuNi02LTYtNnptMyA3SDl2LTJoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREdnIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNXYyaDh2LTJoNWMxLjEgMCAxLjk5LS45IDEuOTktMkwyMyA1YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnptLTItOUg4djJoMTFWOHptMCA0SDh2MmgxMXYtMnpNNyA4SDV2MmgyVjh6bTAgNEg1djJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRU1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDlWN0g4djEwaDh2LTJoLTZ2LTJoNnYtMmgtNlY5aDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkZ2VzZW5zb3JIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDdoMnY3SDNWN3ptLTMgM2gydjdIMHYtN3ptMjItM2gydjdoLTJWN3ptLTMgM2gydjdoLTJ2LTd6bS0zLTcuOTlMOCAyYy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMTdIOFY3aDh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkZ2VzZW5zb3JMb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgN2gydjdIMlY3em0xOCAzaDJ2N2gtMnYtN3ptLTQtNy45OUw4IDJjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAxN0g4VjdoOHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhc2hsaWdodE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNVYySDZ2MS4xN0w3LjgzIDV6TTE2IDExbDItM1Y3SDkuODNMMTYgMTMuMTd6TTIuODEgMi44MSAxLjM5IDQuMjIgOCAxMC44M1YyMmg4di0zLjE3bDMuNzggMy43OCAxLjQxLTEuNDFMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFzaGxpZ2h0T24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMmgxMnYzSDZ6TTYgN3YxbDIgM3YxMWg4VjExbDItM1Y3SDZ6bTYgOC41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxvdXJlc2NlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgOWgxNHY2SDV6TTExIDJoMnYzaC0yek0xNy4yODYgNi4zOTlsMS43OS0xLjgwMyAxLjQyIDEuNDEtMS43OSAxLjgwMnpNMTEgMTloMnYzaC0yek0xNy4yOSAxNy43MWwxLjc5IDEuOCAxLjQyLTEuNDItMS44LTEuNzl6TTMuNDk1IDYuMDFsMS40MDctMS40MDhMNi42OSA2LjM5MSA1LjI4NCA3Ljc5OHpNMy40OTIgMTguMDc2bDEuODAzLTEuNzkgMS40MDkgMS40Mi0xLjgwMyAxLjc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbHVvcmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA5aDE0djZINXpNMTEgMmgydjNoLTJ6TTE3LjI4NiA2LjM5OWwxLjc5LTEuODAzIDEuNDIgMS40MS0xLjc5IDEuODAyek0xMSAxOWgydjNoLTJ6TTE3LjI5IDE3LjcxbDEuNzkgMS44IDEuNDItMS40Mi0xLjgtMS43OXpNMy40OTUgNi4wMWwxLjQwNy0xLjQwOEw2LjY5IDYuMzkxIDUuMjg0IDcuNzk4ek0zLjQ5MiAxOC4wNzZsMS44MDMtMS43OSAxLjQwOSAxLjQyLTEuODAzIDEuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZtZEJhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC4yIDAtOCAzLjIyLTggOC4yIDAgMy4zMiAyLjY3IDcuMjUgOCAxMS44IDUuMzMtNC41NSA4LTguNDggOC0xMS44QzIwIDUuMjIgMTYuMiAyIDEyIDJ6bTEgMTNoLTJ2LTJoMnYyem0wLTRoLTJWNmgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZtZEdvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQuMiAwLTggMy4yMi04IDguMiAwIDMuMzIgMi42NyA3LjI1IDggMTEuOCA1LjMzLTQuNTUgOC04LjQ4IDgtMTEuOEMyMCA1LjIyIDE2LjIgMiAxMiAyem0wIDEwYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExdjJoMnYySDlWOWg3YzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi00aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcHBCYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTMuNSAxMi4wOS0xLjQxIDEuNDFMMTIgMTMuNDIgOS45MSAxNS41IDguNSAxNC4wOSAxMC41OSAxMiA4LjUgOS45MSA5LjkxIDguNSAxMiAxMC41OWwyLjA5LTIuMDkgMS40MSAxLjQxTDEzLjQyIDEybDIuMDggMi4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3BwR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptLTEuMDYgMTMuNTRMNy40IDEybDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0IDEuNDEgMS40MS01LjY0IDUuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdwcE1heWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem0xIDE0aC0ydi0yaDJ2MnptMC00aC0yVjdoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcHNGaXhlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em04Ljk0IDNBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdwc05vdEZpeGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTQgMTFBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdwc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDExQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2Yy0xLjEzLjEyLTIuMTkuNDYtMy4xNi45N2wxLjUgMS41QTYuOTk1IDYuOTk1IDAgMCAxIDE5IDEyYzAgLjk0LS4xOSAxLjg0LS41MiAyLjY1bDEuNSAxLjVjLjUtLjk2Ljg0LTIuMDIuOTctMy4xNUgyM3YtMmgtMi4wNnpNMyA0LjI3bDIuMDQgMi4wNEE4LjkxNCA4LjkxNCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZjMS43Ny0uMiAzLjM4LS45MSA0LjY5LTEuOThMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzIDMgNC4yN3ptMTMuMjcgMTMuMjdhNi45OTUgNi45OTUgMCAwIDEtOS44MS05LjgxbDkuODEgOS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JhcGhpY0VxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGgyVjZIN3YxMnptNCA0aDJWMmgtMnYyMHptLTgtOGgydi00SDN2NHptMTIgNGgyVjZoLTJ2MTJ6bTQtOHY0aDJ2LTRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyaWQzWDMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwVjhoLTRWNGgtMnY0aC00VjRIOHY0SDR2Mmg0djRINHYyaDR2NGgydi00aDR2NGgydi00aDR2LTJoLTR2LTRoNHptLTYgNGgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyaWQ0WDQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDdWNWgtM1YyaC0ydjNoLTRWMmgtMnYzSDdWMkg1djNIMnYyaDN2NEgydjJoM3Y0SDJ2MmgzdjNoMnYtM2g0djNoMnYtM2g0djNoMnYtM2gzdi0yaC0zdi00aDN2LTJoLTNWN2gzek03IDdoNHY0SDdWN3ptMCAxMHYtNGg0djRIN3ptMTAgMGgtNHYtNGg0djR6bTAtNmgtNFY3aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JpZEdvbGRlbnJhdGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMVY5aC03VjJoLTJ2N2gtMlYySDl2N0gydjJoN3YySDJ2Mmg3djdoMnYtN2gydjdoMnYtN2g3di0yaC03di0yaDd6bS05IDJoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRITW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTFIOVY3SDd2MTBoMnYtNGg2djRoMlY3aC0ydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhQbHVzTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFINlY3SDR2MTBoMnYtNGg2djRoMlY3aC0ydjR6bTEwIDBoLTJWOWgtMnYyaC0ydjJoMnYyaDJ2LTJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyQXV0b1NlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTZINi41djZIMTBjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNUg4di0zaDJ2M3pNMTYuNSAxNkgxM3Y2aDEuNXYtMmgxLjFsLjkgMkgxOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNXptMCAyLjVoLTJ2LTFoMnYxek0zLjUgMThoLTJ2LTJIMHY2aDEuNXYtMi41aDJWMjJINXYtNkgzLjV6TTIyIDE4LjV2LTJoLTEuNXYyaC0yVjIwaDJ2MkgyMnYtMmgydi0xLjV6TTExLjk3IDUuM2wtMS4wMiAyLjg5aDIuMUwxMi4wMyA1LjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC42OSAyIDYgNC42OSA2IDhzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTIuMDQgOS0uNjMtMS43OWgtMi44M0w5Ljk2IDExSDguNzRsMi42My03aDEuMjVsMi42MyA3aC0xLjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wNCA4LjA0aC0uMDlsLTEuNiA0LjU1aDMuMjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTMuMjEgMTUtLjk4LTIuODFIOS43OGwtMSAyLjgxaC0xLjlsNC4xMy0xMWgxLjk3bDQuMTMgMTFoLTEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyT2ZmU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxOC41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTN2NmgxLjV2LTJoMS4xbC45IDJIMThsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJ2LTJIMHY2aDEuNXYtMi41aDJWMjJINXYtNkgzLjV2MnptNi41LTJINi41djZIMTBjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNUg4di0zaDJ2M3ptMTQtLjVoLTJ2MmgtMS41di0yaC0ydi0xLjVoMnYtMkgyMnYyaDJWMjB6TTEwLjk4IDQuMTUgOS40MiAyLjU5YzUuMS0yLjQyIDEwLjQxIDIuODkgNy45OSA3Ljk5bC0xLjU2LTEuNTZjLjgxLTIuOTYtMS45MS01LjY4LTQuODctNC44N3pNNi4zNCAyLjM0IDQuOTMgMy43NmwxLjY2IDEuNjZjLTIuNDIgNS4xIDIuODkgMTAuNDEgNy45OSA3Ljk5bDEuNjYgMS42NiAxLjQxLTEuNDFMNi4zNCAyLjM0em0xLjgxIDQuNjQgNC44NyA0Ljg3Yy0yLjk2LjgxLTUuNjgtMS45MS00Ljg3LTQuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkck9uU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxOC41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTN2NmgxLjV2LTJoMS4xbC45IDJIMThsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJ2LTJIMHY2aDEuNXYtMi41aDJWMjJINXYtNkgzLjV2MnptNi41LTJINi41djZIMTBjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNUg4di0zaDJ2M3ptMTQtLjVoLTJ2MmgtMS41di0yaC0ydi0xLjVoMnYtMkgyMnYyaDJWMjB6TTEyIDRjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDQtNC0xLjc5LTQtNCAxLjc5LTQgNC00bTAtMkM4LjY5IDIgNiA0LjY5IDYgOHMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMjJoOHYtN2gtM3YtNGgtNVY5aDNWMkg4djdoM3YySDZ2NEgzdjdoOHYtN0g4di0yaDh2MmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGVuc0JsdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMyAuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xNSA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAtMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTExIDEwYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNyA3Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0xN2MuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEwIDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em04IC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMgOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCAzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tNC0xMmMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAgOC41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQtNC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC00Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGlnaHRNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6TTIgMTNoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMUgyYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxem0xOCAwaDJjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTJjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF6TTExIDJ2MmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTFWMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXptMCAxOHYyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXYtMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXpNNS45OSA0LjU4YS45OTYuOTk2IDAgMCAwLTEuNDEgMCAuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMS4wNiAxLjA2Yy4zOS4zOSAxLjAzLjM5IDEuNDEgMHMuMzktMS4wMyAwLTEuNDFMNS45OSA0LjU4em0xMi4zNyAxMi4zN2EuOTk2Ljk5NiAwIDAgMC0xLjQxIDAgLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDEuMDYgMS4wNmMuMzkuMzkgMS4wMy4zOSAxLjQxIDBhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0xLjA2LTEuMDZ6bTEuMDYtMTAuOTZhLjk5Ni45OTYgMCAwIDAgMC0xLjQxLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjA2IDEuMDZjLS4zOS4zOS0uMzkgMS4wMyAwIDEuNDFzMS4wMy4zOSAxLjQxIDBsMS4wNi0xLjA2ek03LjA1IDE4LjM2YS45OTYuOTk2IDAgMCAwIDAtMS40MS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS4wNiAxLjA2Yy0uMzkuMzktLjM5IDEuMDMgMCAxLjQxczEuMDMuMzkgMS40MSAwbDEuMDYtMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYXRpb25EaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDExQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2Yy0xLjEzLjEyLTIuMTkuNDYtMy4xNi45N2wxLjUgMS41QTYuOTk1IDYuOTk1IDAgMCAxIDE5IDEyYzAgLjk0LS4xOSAxLjg0LS41MiAyLjY1bDEuNSAxLjVjLjUtLjk2Ljg0LTIuMDIuOTctMy4xNUgyM3YtMmgtMi4wNnpNMyA0LjI3bDIuMDQgMi4wNEE4LjkxNCA4LjkxNCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZjMS43Ny0uMiAzLjM4LS45MSA0LjY5LTEuOThMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzIDMgNC4yN3ptMTMuMjcgMTMuMjdhNi45OTUgNi45OTUgMCAwIDEtOS44MS05LjgxbDkuODEgOS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYXRpb25TZWFyY2hpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NCAxMUE4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMjAuOTQgMTNIMjN2LTJoLTIuMDZ6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTHRlTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNGgzdjJINFY4aDJ2NnptMy00aDJ2Nmgydi02aDJWOEg5djJ6bTEyIDBWOGgtNXY4aDV2LTJoLTN2LTFoM3YtMmgtM3YtMWgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMdGVQbHVzTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNGgzdjJIMVY4aDJ2NnptMi00aDJ2Nmgydi02aDJWOEg1djJ6bTcgNmg1di0yaC0zdi0xaDN2LTJoLTN2LTFoM1Y4aC01djh6bTEyLTVoLTJWOWgtMnYyaC0ydjJoMnYyaDJ2LTJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFjcm9PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45OCAxNy4xNUE4LjkwOSA4LjkwOSAwIDAgMCAyMSAxM2MtMS41IDAtMi45MS4zNy00LjE1IDEuMDJsMy4xMyAzLjEzek0zIDEzYTkgOSAwIDAgMCA5IDkgOSA5IDAgMCAwLTktOXpNMTIgNS41QTIuNSAyLjUgMCAwIDEgMTQuNSA4YzAgLjk5LS41OCAxLjg0LTEuNDIgMi4yNWwyLjQ4IDIuNDhjLjExLjAyLjIzLjAzLjM1LjAzYTIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLTEtLjU5LTEuODUtMS40My0yLjI1Ljg0LS40IDEuNDMtMS4yNSAxLjQzLTIuMjVhMi41IDIuNSAwIDAgMC0zLjkyLTIuMDZsLjAxLS4yYTIuNSAyLjUgMCAwIDAtNSAwbC4wMi4xOWEyLjQ4NSAyLjQ4NSAwIDAgMC0yLjkzLjA4bDMuMTYgMy4xNmMuNDEtLjg1IDEuMjYtMS40MyAyLjI1LTEuNDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjJsNC42NCA0LjY0Yy0uMjcuNC0uNDMuODctLjQzIDEuMzlhMi41IDIuNSAwIDAgMCAyLjUgMi41Yy41MiAwIC45OS0uMTYgMS40LS40M2wuMDIuMDItLjAyLjE2QTIuNSAyLjUgMCAwIDAgMTIgMTVjLjA1IDAgLjEtLjAxLjE2LS4wMmwxLjY0IDEuNjRBOC45MDUgOC45MDUgMCAwIDAgMTIgMjJjMi4wMiAwIDMuODgtLjY3IDUuMzgtMS44bDIuNCAyLjQgMS40MS0xLjQxTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVkaWFCbHVldG9vdGhPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNi4xN1YzaDZ2NGgtNHYxLjE3bC0yLTJ6TTE5LjQyIDE1IDIyIDE3LjU3bC0uOC44LTYuNzgtNi43OC44LS44IDIuNzUgMi43NVY5aC42TDIyIDEyLjQzIDE5LjQyIDE1em0tLjI1LTEuNDUgMS4xMy0xLjEzLTEuMTMtMS4xM3YyLjI2em0yLjAyIDcuNjQtMS40MSAxLjQxLTMuOTgtMy45OC0uNTguNTgtLjg1LS44NS41OC0uNThMMTEgMTMuODNWMTdjMCAyLjIxLTEuNzggNC0zLjk5IDRTMyAxOS4yMSAzIDE3czEuNzktNCA0LjAxLTRjLjczIDAgMS40MS4yMSAyIC41NXYtMS43MkwxLjM5IDQuMjIgMi44IDIuODFsMTguMzkgMTguMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lZGlhQmx1ZXRvb3RoT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkgMyAuMDEgMTAuNTVjLS42LS4zNC0xLjI4LS41NS0yLS41NWE0LjAwMSA0LjAwMSAwIDEgMCAwIDhDOS4yMyAyMSAxMSAxOS4yMSAxMSAxN1Y3aDRWM0g5em0xMiA5LjQzTDE3LjU3IDloLS42djQuNTVsLTIuNzUtMi43NS0uODUuODVMMTYuNzMgMTVsLTMuMzUgMy4zNS44NS44NSAyLjc1LTIuNzVWMjFoLjZMMjEgMTcuNTcgMTguNDIgMTUgMjEgMTIuNDN6bS0yLjgzLTEuMTMgMS4xMyAxLjEzLTEuMTMgMS4xM1YxMS4zem0xLjEzIDYuMjctMS4xMyAxLjEzdi0yLjI2bDEuMTMgMS4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVkaWNhdGlvbkxpcXVpZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2gxMnYySDN6TTE0IDZINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tMSA5aC0yLjV2Mi41aC0zVjE1SDV2LTNoMi41VjkuNWgzVjEySDEzdjN6TTIwIDZjLTEuNjggMC0zIDEuNzYtMyA0IDAgMS43Ny44MyAzLjIyIDIgMy43NlYyMGMwIC41NS40NSAxIDEgMXMxLS40NSAxLTF2LTYuMjRjMS4xNy0uNTQgMi0xLjk5IDItMy43NiAwLTIuMjQtMS4zMi00LTMtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVkaWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzaDEydjJINnpNMTcgNkg3Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0xIDloLTIuNXYyLjVoLTNWMTVIOHYtM2gyLjVWOS41aDNWMTJIMTZ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9iaWxlRnJpZW5kbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxSDljLTEuMSAwLTIgLjktMiAydjNoMlY0aDEwdjE2SDl2LTJIN3YzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNy4wMSAxMy40N2wtMi41NS0yLjU1LTEuMjcgMS4yN0w3IDE2bDcuMTktNy4xOS0xLjI3LTEuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vYmlsZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNzYgMi40OSAxLjQ5IDMuNzYgNSA3LjI3VjIxYzAgMS4xLjkgMiAyIDJoMTBjMS4wMiAwIDEuODUtLjc3IDEuOTgtMS43NWwxLjcyIDEuNzIgMS4yNy0xLjI3TDIuNzYgMi40OXpNNyAxOVY5LjI3TDE2LjczIDE5SDd6TTE3IDV2OS4xN2wyIDJWM2MwLTEuMS0uOS0yLTItMkg3Yy0uODUgMC0xLjU4LjU0LTEuODcgMS4zTDcuODMgNUgxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9iaWxlZGF0YU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgN2gzbC00LTQtNCA0aDN2NC4xN2wyIDJ6TTIuODEgMi44MSAxLjM5IDQuMjIgOCAxMC44M3Y2LjE4bC0zIC4wMUw5IDIxbDQtNC0zIC4wMXYtNC4xOGw5Ljc4IDkuNzggMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlTmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAyYy0xLjgyIDAtMy41My41LTUgMS4zNSAyLjk5IDEuNzMgNSA0Ljk1IDUgOC42NXMtMi4wMSA2LjkyLTUgOC42NWMxLjQ3Ljg1IDMuMTggMS4zNSA1IDEuMzUgNS41MiAwIDEwLTQuNDggMTAtMTBTMTUuMDIgMiA5LjUgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9kZVN0YW5kYnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0zLThjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtMyAzIDEuMzQgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb25pdG9ySGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4xMSAxMi40NSAxNCAxMC4yNGwtMy4xMSA2LjIxYy0uMTYuMzQtLjUxLjU1LS44OS41NXMtLjczLS4yMS0uODktLjU1TDcuMzggMTNIMnY1YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTVoLTZjLS4zOCAwLS43My0uMjEtLjg5LS41NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnY1aDZjLjM4IDAgLjczLjIxLjg5LjU1TDEwIDEzLjc2bDMuMTEtNi4yMWMuMzQtLjY4IDEuNDUtLjY4IDEuNzkgMEwxNi42MiAxMUgyMlY2YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb25pdG9yV2VpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgOWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDguNWgxdjFoLTF6TTExLjUgOC41aDF2MWgtMXpNMTMgOC41aDF2MWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmVhcmJ5RXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDcuNTcgNC40MiA0LjQyTDEyIDE2LjQxbC00LjQyLTQuNDJMMTIgNy41N3ptMCAxMS42Mi03LjItNy4yIDcuMi03LjIgNiA2VjcuMTZsLTQuNTgtNC41OGMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTguMDEgOGMtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2w4LjAxIDhjLjc4Ljc4IDIuMDUuNzggMi44MyAwTDE4IDE2Ljgydi0zLjYzbC02IDZ6bTggLjgxaDJ2MmgtMnYtMnptMi0xMGgtMnY4aDJ2LThcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmVhcmJ5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS40MSAxMy40MiAxOC44MyAxNmwtMS44MS0xLjgxTDE5LjIgMTIgMTIgNC44IDkuODEgNi45OSA4IDUuMTdsMi41OC0yLjU4Yy43OC0uNzggMi4wNS0uNzggMi44MyAwbDggOGMuNzkuNzguNzkgMi4wNCAwIDIuODN6bS0uMjIgNy43Ny0xLjQxIDEuNDFMMTYgMTguODNsLTIuNTggMi41OGMtLjc4Ljc4LTIuMDUuNzgtMi44MyAwbC04LThjLS43OC0uNzgtLjc4LTIuMDUgMC0yLjgzTDUuMTcgOCAxLjM5IDQuMjIgMi44IDIuODFsMTguMzkgMTguMzh6bS03LTQuMTctMS4zOS0xLjM5LS44LjhMNy41OCAxMmwuOC0uOC0xLjQtMS4zOUw0LjggMTJsNy4yIDcuMiAyLjE5LTIuMTh6TTE2LjQyIDEyIDEyIDcuNThsLS44LjggNC40MiA0LjQyLjgtLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5ldHdvcmtDZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMmgyMFYyTDIgMjJ6bTE4LTJoLTNWOS44M2wzLTNWMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5ldHdvcmtXaWZpMUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6bTMuMzIgMTAuODRDMTQuMzQgMTQuMyAxMy4yIDE0IDEyIDE0Yy0xLjIgMC0yLjM0LjMtMy4zMi44NEwyLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTUuNzYgNS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya1dpZmkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHptNC43OCA5LjM4QTguODUzIDguODUzIDAgMCAwIDEyIDEyYy0xLjc2IDAtMy40LjUtNC43OCAxLjM4bC00LjMtNC4zQzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3bC00LjMgNC4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya1dpZmkzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHpNMi45MiA5LjA3QzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3bC0yLjg1IDIuODZBMTAuOTQ1IDEwLjk0NSAwIDAgMCAxMiAxMGMtMi4zMSAwLTQuNDYuNzEtNi4yMyAxLjkzTDIuOTIgOS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya1dpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4em0tMjEuMDguMDlDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTEuNDMgMS40M0MxNy41IDguOTQgMTQuODYgOCAxMiA4cy01LjUuOTQtNy42NSAyLjUxTDIuOTIgOS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmZjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNNCAyMGgxNlY0SDR2MTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDRWNGgxNnYxNnpNMTggNmgtNWMtMS4xIDAtMiAuOS0yIDJ2Mi4yOGMtLjYuMzUtMSAuOTgtMSAxLjcyIDAgMS4xLjkgMiAyIDJzMi0uOSAyLTJjMC0uNzQtLjQtMS4zOC0xLTEuNzJWOGgzdjhIOFY4aDJWNkg2djEyaDEyVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5pZ2h0bGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJjMS44MiAwIDMuNTMuNSA1IDEuMzUtMi45OSAxLjczLTUgNC45NS01IDguNjVzMi4wMSA2LjkyIDUgOC42NUE5Ljk3MyA5Ljk3MyAwIDAgMSAxNCAyMkM4LjQ4IDIyIDQgMTcuNTIgNCAxMlM4LjQ4IDIgMTQgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek05LjEgMTdIN3YtMi4xNGw1Ljk2LTUuOTYgMi4xMiAyLjEyTDkuMSAxN3ptNy43NS03LjczLTEuMDYgMS4wNi0yLjEyLTIuMTIgMS4wNi0xLjA2Yy4yLS4yLjUxLS4yLjcxIDBsMS40MSAxLjQxYy4yLjIuMi41MSAwIC43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFzc3dvcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTdoMjB2Mkgydi0yem0xLjE1LTQuMDVMNCAxMS40N2wuODUgMS40OCAxLjMtLjc1LS44NS0xLjQ4SDd2LTEuNUg1LjNsLjg1LTEuNDdMNC44NSA3IDQgOC40NyAzLjE1IDdsLTEuMy43NS44NSAxLjQ3SDF2MS41aDEuN2wtLjg1IDEuNDggMS4zLjc1em02LjctLjc1IDEuMy43NS44NS0xLjQ4Ljg1IDEuNDggMS4zLS43NS0uODUtMS40OEgxNXYtMS41aC0xLjdsLjg1LTEuNDctMS4zLS43NUwxMiA4LjQ3IDExLjE1IDdsLTEuMy43NS44NSAxLjQ3SDl2MS41aDEuN2wtLjg1IDEuNDh6TTIzIDkuMjJoLTEuN2wuODUtMS40Ny0xLjMtLjc1TDIwIDguNDcgMTkuMTUgN2wtMS4zLjc1Ljg1IDEuNDdIMTd2MS41aDEuN2wtLjg1IDEuNDggMS4zLjc1Ljg1LTEuNDguODUgMS40OCAxLjMtLjc1LS44NS0xLjQ4SDIzdi0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhdHRlcm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem0yIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02LTZjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem02IDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tLjAyIDZjLS43NCAwLTEuMzcuNC0xLjcyIDFoLTIuNTRhMS45OCAxLjk4IDAgMCAwLTMuNDQgMEg4LjQxbDMuMDctMy4wN2MuMTcuMDQuMzQuMDcuNTIuMDcgMS4xIDAgMi0uOSAyLTIgMC0uMTgtLjAzLS4zNS0uMDctLjUxbDMuNTYtMy41NmMuMTYuMDQuMzMuMDcuNTEuMDcgMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyYzAgLjE4LjAzLjM1LjA3LjUxbC0zLjU2IDMuNTZjLS4xNi0uMDQtLjMzLS4wNy0uNTEtLjA3LTEuMSAwLTIgLjktMiAyIDAgLjE4LjAzLjM1LjA3LjUxbC0zLjU2IDMuNTZDNi4zNSAxNi4wMyA2LjE4IDE2IDYgMTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyYy43NCAwIDEuMzctLjQgMS43Mi0xaDIuNTdhMS45OCAxLjk4IDAgMCAwIDMuNDQgMGgyLjU1Yy4zNC42Ljk4IDEgMS43MiAxIDEuMSAwIDItLjkgMi0yLS4wMi0xLjEtLjkyLTItMi4wMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaGlzaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDljMC0xLjMtLjg0LTIuNC0yLTIuODJWMmgtMnY0LjE4QzEzLjg0IDYuNiAxMyA3LjcgMTMgOXMuODQgMi40IDIgMi44MlYxNWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNHYtMWgzTDUgOXY2YzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZ2LTMuMThjMS4xNi0uNDIgMi0xLjUyIDItMi44MnptLTMgMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek03LjY0IDE1SDYuNDl2LTQuNWwtLjkuNjYtLjU4LS44OUw2Ljc3IDloLjg3djZ6bTUuODYgMEg5LjYxdi0xLjAyYzEuMDctMS4wNyAxLjc3LTEuNzcgMi4xMy0yLjE1LjQtLjQyLjU0LS42OS41NC0xLjA2IDAtLjQtLjMxLS43Mi0uODEtLjcyLS41MiAwLS44LjM5LS45LjcybC0xLjAxLS40MmMuMDEtLjAyLjE4LS43NiAxLTEuMTUuNjktLjMzIDEuNDgtLjIgMS45NS4wMy44Ni40NC45MSAxLjI0LjkxIDEuNDggMCAuNjQtLjMxIDEuMjYtLjkyIDEuODYtLjI1LjI1LS43Mi43MS0xLjQgMS4zOWwuMDMuMDVoMi4zN1YxNXptNS4yNS0uODVjLS4wOC4xMy0uNTYuODUtMS43Ni44NS0uMDQgMC0xLjYuMDgtMi4wNS0xLjUxbDEuMDMtLjQxYy4wMy4xLjE5Ljg2IDEuMDIuODYuNDEgMCAuODktLjI4Ljg5LS43NyAwLS41NS0uNDgtLjc5LTEuMDQtLjc5aC0uNXYtMWguNDZjLjMzIDAgLjg4LS4xNC44OC0uNzIgMC0uMzktLjMxLS42NS0uNzUtLjY1LS41IDAtLjc0LjMyLS44NS42NGwtLjk5LS40MUMxNS4yIDkuOSAxNS42OCA5IDE2Ljk0IDljMS4wOSAwIDEuNTQuNjQgMS42Mi43NS4zMy41LjI4IDEuMTYuMDIgMS41Ny0uMTUuMjItLjMyLjM4LS41Mi40OHYuMDdjLjI4LjExLjUxLjI4LjY4LjUyLjM3LjUyLjMzIDEuMjcuMDEgMS43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxheUxlc3NvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTFjLjM0IDAgLjY3LjAzIDEgLjA4VjRjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmg3LjI2QTYuOTk1IDYuOTk1IDAgMCAxIDE4IDExek03IDExVjRoNXY3TDkuNSA5LjUgNyAxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0tMS4yNSA3LjV2LTVsNCAyLjUtNCAyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaWNlQ2hhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptLTggNkg4djFoM2MuNTUgMCAxIC40NSAxIDF2M2MwIC41NS0uNDUgMS0xIDFoLTF2MUg4di0xSDZ2LTJoNHYtMUg3Yy0uNTUgMC0xLS40NS0xLTFWOWMwLS41NS40NS0xIDEtMWgxVjdoMnYxaDJ2MnptNCA2LjI1LTItMmg0bC0yIDJ6TTE0IDEwbDItMiAyIDJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFByaWNlQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzVjljMC0uNTUtLjQ1LTEtMS0xSDdWNmg1VjRIOS41VjNoLTJ2MUg2Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg0djJINXYyaDIuNXYxaDJ2LTFIMTFjLjU1IDAgMS0uNDUgMS0xek0xOS41OSAxMi41MmwtNS42NiA1LjY1LTIuODMtMi44My0xLjQxIDEuNDJMMTMuOTMgMjEgMjEgMTMuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFB1bmNoQ2xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2aC0xVjFINnY1SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpNOCAzaDh2M0g4VjN6bTQgMTZjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDExLjVoLTF2Mi43MWwxLjY0IDEuNjQuNzEtLjcxLTEuMzUtMS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUXVpeiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNS45OSAxM2MtLjU5IDAtMS4wNS0uNDctMS4wNS0xLjA1IDAtLjU5LjQ3LTEuMDQgMS4wNS0xLjA0LjU5IDAgMS4wNC40NSAxLjA0IDEuMDQtLjAxLjU4LS40NSAxLjA1LTEuMDQgMS4wNXptMi41LTYuMTdjLS42My45My0xLjIzIDEuMjEtMS41NiAxLjgxLS4xMy4yNC0uMTguNC0uMTggMS4xOGgtMS41MmMwLS40MS0uMDYtMS4wOC4yNi0xLjY1LjQxLS43MyAxLjE4LTEuMTYgMS42My0xLjguNDgtLjY4LjIxLTEuOTQtMS4xNC0xLjk0LS44OCAwLTEuMzIuNjctMS41IDEuMjNsLTEuMzctLjU3QzExLjUxIDUuOTYgMTIuNTIgNSAxMy45OSA1YzEuMjMgMCAyLjA4LjU2IDIuNTEgMS4yNi4zNy42MS41OCAxLjczLjAxIDIuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjggNy4yIDkgMTBIN0w1Ljg3IDcuMzNINFYxMEgyVjJoNWMxLjEzIDAgMiAuODcgMiAydjEuMzNjMCAuOC0uNTMgMS41NC0xLjIgMS44N3pNNyA0SDR2MS4zM2gzVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43NCAxOC4zM0E5Ljk4NCA5Ljk4NCAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwYTkuOTg0IDkuOTg0IDAgMCAwIDcuMTEtMi45N2MuMDMtLjAzLjA1LS4wNi4wNy0uMDguMi0uMi4zOS0uNDEuNTYtLjYyek0xMiAyMGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4YzAgMS44NS0uNjMgMy41NC0xLjY5IDQuOWwtMS40My0xLjQzYy42OS0uOTggMS4xLTIuMTcgMS4xLTMuNDYgMC0zLjMxLTIuNjktNi02LTZzLTYgMi42OS02IDYgMi42OSA2IDYgNmMxLjMgMCAyLjUxLS40MiAzLjQ5LTEuMTNsMS40MiAxLjQyQTcuODIyIDcuODIyIDAgMCAxIDEyIDIwem0xLjkyLTcuNDljLjE3LS42Ni4wMi0xLjM4LS40OS0xLjlsLS4wMi0uMDJjLS43Ny0uNzctMi0uNzgtMi43OC0uMDQtLjAxLjAxLS4wMy4wMi0uMDUuMDQtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wuMDIuMDJjLjUyLjUxIDEuMjUuNjcgMS45MS40OWwxLjUxIDEuNTFjLS42LjM2LTEuMjkuNTgtMi4wNC41OC0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDRjMCAuNzMtLjIxIDEuNDEtLjU2IDJsLTEuNS0xLjUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZW1lbWJlck1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNC4yMWMtMS41LS43Ny0zLjItMS4yMS01LTEuMjFzLTMuNS40NC01IDEuMjFWNmgxMHY5LjIxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVzZXRUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTBoLTguMDFWN0w5IDExbDMuOTkgNHYtM0gyMXY1SDNWNWgxOHYzaDJWNWMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJ2LTVIMjNjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RhcnRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMkw4IDZsNCA0VjdjMy4zMSAwIDYgMi42OSA2IDYgMCAyLjk3LTIuMTcgNS40My01IDUuOTF2Mi4wMmMzLjk1LS40OSA3LTMuODUgNy03LjkzIDAtNC40Mi0zLjU4LTgtOC04ek02IDEzYzAtMS42NS42Ny0zLjE1IDEuNzYtNC4yNEw2LjM0IDcuMzRBOC4wMTQgOC4wMTQgMCAwIDAgNCAxM2MwIDQuMDggMy4wNSA3LjQ0IDcgNy45M3YtMi4wMmMtMi44My0uNDgtNS0yLjk0LTUtNS45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmV2aWV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYuNDMgOS41N0wxMiAxNWwtMS41Ny0zLjQzTDcgMTBsMy40My0xLjU3TDEyIDVsMS41NyAzLjQzTDE3IDEwbC0zLjQzIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJzdnAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDloMS41bC0xLjc1IDZoLTEuNUwxMi41IDlIMTRsMSAzLjQzTDE2IDl6TTUuMSAxMi45IDYgMTVINC41bC0uODUtMkgyLjV2MkgxVjloMy41Yy44NSAwIDEuNS42NSAxLjUgMS41djFjMCAuNi0uNCAxLjE1LS45IDEuNHptLS42LTIuNGgtMnYxaDJ2LTF6bTE3IDIuNWgtMnYySDE4VjloMy41Yy44MyAwIDEuNS42NyAxLjUgMS41djFjMCAuODMtLjY3IDEuNS0xLjUgMS41em0wLTIuNWgtMnYxaDJ2LTF6TTExLjUgOXYxLjVoLTN2Ljc1aDJjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMUg3di0xLjVoM3YtLjc1SDcuNzVjLS40MSAwLS43NS0uMzQtLjc1LS43NXYtMmMwLS41NS40NS0xIDEtMWgzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlbkxvY2tMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1SDNjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptLTIgMTJINVY3aDE0djEwem0tOS0xaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXYtMWEyIDIgMCAxIDAtNCAwdjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxem0uOC02YzAtLjY2LjU0LTEuMiAxLjItMS4yLjY2IDAgMS4yLjU0IDEuMiAxLjJ2MWgtMi40di0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY3JlZW5Mb2NrUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNmg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF2LTFhMiAyIDAgMSAwLTQgMHYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMXptLjgtNmMwLS42Ni41NC0xLjIgMS4yLTEuMi42NiAwIDEuMi41NCAxLjIgMS4ydjFoLTIuNHYtMXpNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMThIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY3JlZW5Mb2NrUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMy4yNSAxMi43Ny0yLjU3LTIuNTctMS40MSAxLjQxIDIuMjIgMi4yMi01LjY2IDUuNjZMNC41MSA4LjE3bDUuNjYtNS42NiAyLjEgMi4xIDEuNDEtMS40MUwxMS4yMy43NWExLjQ5IDEuNDkgMCAwIDAtMi4xMiAwTDIuNzUgNy4xMWExLjQ5IDEuNDkgMCAwIDAgMCAyLjEybDEyLjAyIDEyLjAyYy41OS41OSAxLjU0LjU5IDIuMTIgMGw2LjM2LTYuMzZjLjU5LS41OS41OS0xLjU0IDAtMi4xMnpNOC40NyAyMC40OEExMC40ODcgMTAuNDg3IDAgMCAxIDIuNSAxMkgxYy41MSA2LjE2IDUuNjYgMTEgMTEuOTUgMTFsLjY2LS4wMy0zLjgxLTMuODItMS4zMyAxLjMzek0xNiA5aDVjLjU1IDAgMS0uNDUgMS0xVjRjMC0uNTUtLjQ1LTEtMS0xdi0uNWEyLjUgMi41IDAgMCAwLTUgMFYzYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjgtNi41YzAtLjk0Ljc2LTEuNyAxLjctMS43czEuNy43NiAxLjcgMS43VjNoLTMuNHYtLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlblJvdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDggMi41MmMzLjI3IDEuNTUgNS42MSA0LjcyIDUuOTcgOC40OGgxLjVDMjMuNDQgNC44NCAxOC4yOSAwIDEyIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMyem0tNi4yNS0uNzdhMS40OSAxLjQ5IDAgMCAwLTIuMTIgMEwxLjc1IDguMTFhMS40OSAxLjQ5IDAgMCAwIDAgMi4xMmwxMi4wMiAxMi4wMmMuNTkuNTkgMS41NC41OSAyLjEyIDBsNi4zNi02LjM2Yy41OS0uNTkuNTktMS41NCAwLTIuMTJMMTAuMjMgMS43NXptNC42IDE5LjQ0TDIuODEgOS4xN2w2LjM2LTYuMzYgMTIuMDIgMTIuMDItNi4zNiA2LjM2em0tNy4zMS4yOUExMC40ODcgMTAuNDg3IDAgMCAxIDEuNTUgMTNILjA1Qy41NiAxOS4xNiA1LjcxIDI0IDEyIDI0bC42Ni0uMDMtMy44MS0zLjgxLTEuMzMgMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NyZWVuU2VhcmNoRGVza3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIixcImVuYWJsZUJhY2tncm91bmRcIjpcIm5ldyAwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42IDE2LjhoNC44djEuOEg5LjZ6XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDZhMiAyIDAgMCAwLTItMkg0Yy0xLjExIDAtMiAuODktMiAydjEwYTIgMiAwIDAgMCAyIDJIMHYyaDI0di0yaC00Wk00IDE2VjZoMTZ2MTAuMDFMNCAxNlptNS4wOTctNi4wNDdjMC0xLjAyNy44MzYtMS44NjQgMS44NjQtMS44NjQgMS4wMjcgMCAxLjg2NC44MzcgMS44NjQgMS44NjRhMS44NjcgMS44NjcgMCAwIDEtMS44NjQgMS44NjQgMS44NjcgMS44NjcgMCAwIDEtMS44NjQtMS44NjRabTcuMDMyIDQuMjM2LTIuNDgyLTIuNDgyYTMuMTkgMy4xOSAwIDAgMCAuNTI3LTEuNzU0QTMuMjE2IDMuMjE2IDAgMCAwIDEwLjk2IDYuNzRhMy4yMTcgMy4yMTcgMCAwIDAtMy4yMTQgMy4yMTMgMy4yMTggMy4yMTggMCAwIDAgMy4yMTQgMy4yMTQgMy4xOSAzLjE5IDAgMCAwIDEuNzI0LS41MWwyLjQ4OSAyLjQ4Ny45NTUtLjk1NVpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjcmVlbnNob3RNb25pdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTRINFY1aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgNy41SDlWNkg1djRoMS41ek0xOSAxMmgtMS41djIuNUgxNVYxNmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY3JlZW5zaG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOEg3VjZoMTB2MTJ6TTkuNSA4LjVIMTJWN0g4djRoMS41VjguNXpNMTIgMTdoNHYtNGgtMS41djIuNUgxMlYxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2RTdG9yYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0LjAyIDggNCAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS02IDZoLTJWNGgydjR6bTMgMGgtMlY0aDJ2NHptMyAwaC0yVjRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZWN1cml0eVVwZGF0ZUdvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE3SDdWNmgxMHYxMnptLTEtNy45NS0xLjQxLTEuNDEtMy41NCAzLjU0LTEuNDEtMS40MS0xLjQxIDEuNDFMMTEuMDUgMTUgMTYgMTAuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlY3VyaXR5VXBkYXRlV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yek0xMSA3aDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0xLjk5LjktMS45OSAydjE4YzAgMS4xLjg5IDIgMS45OSAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTdIN1Y2aDEwdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZWN1cml0eVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAzdjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnptMTIgMTVIN1Y2aDEwdjEyem0tMS02aC0zVjhoLTJ2NEg4bDQgNCA0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjQxIDExLjQxLTguODMtOC44M2MtLjM3LS4zNy0uODgtLjU4LTEuNDEtLjU4SDRjLTEuMSAwLTIgLjktMiAydjcuMTdjMCAuNTMuMjEgMS4wNC41OSAxLjQxbDguODMgOC44M2MuNzguNzggMi4wNS43OCAyLjgzIDBsNy4xNy03LjE3Yy43OC0uNzguNzgtMi4wNC0uMDEtMi44M3pNNi41IDhDNS42NyA4IDUgNy4zMyA1IDYuNVM1LjY3IDUgNi41IDUgOCA1LjY3IDggNi41IDcuMzMgOCA2LjUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VuZFRvTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTdoMnY0YzAgMS4xLS45IDItMiAySDdjLTEuMSAwLTItLjktMi0yVjNjMC0xLjEuOS0xLjk5IDItMS45OUwxNyAxYzEuMSAwIDIgLjkgMiAydjRoLTJWNkg3djEyaDEwdi0xem01LTUtNC00djNoLTV2Mmg1djNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXR0aW5nc1N1Z2dlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy40MSA2LjU5IDE1IDUuNWwyLjQxLTEuMDlMMTguNSAybDEuMDkgMi40MUwyMiA1LjVsLTIuNDEgMS4wOUwxOC41IDlsLTEuMDktMi40MXptMy44NyA2LjEzTDIwLjUgMTFsLS43OCAxLjcyLTEuNzIuNzggMS43Mi43OC43OCAxLjcyLjc4LTEuNzJMMjMgMTMuNWwtMS43Mi0uNzh6bS01LjA0IDEuNjUgMS45NCAxLjQ3LTIuNSA0LjMzLTIuMjQtLjk0Yy0uMi4xMy0uNDIuMjYtLjY0LjM3bC0uMyAyLjRoLTVsLS4zLTIuNDFjLS4yMi0uMTEtLjQzLS4yMy0uNjQtLjM3bC0yLjI0Ljk0LTIuNS00LjMzIDEuOTQtMS40N2MtLjAxLS4xMS0uMDEtLjI0LS4wMS0uMzZzMC0uMjUuMDEtLjM3bC0xLjk0LTEuNDcgMi41LTQuMzMgMi4yNC45NGMuMi0uMTMuNDItLjI2LjY0LS4zN0w3LjUgNmg1bC4zIDIuNDFjLjIyLjExLjQzLjIzLjY0LjM3bDIuMjQtLjk0IDIuNSA0LjMzLTEuOTQgMS40N2MuMDEuMTIuMDEuMjQuMDEuMzdzMCAuMjQtLjAxLjM2ek0xMyAxNGMwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzIDMtMS4zNCAzLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNldHRpbmdzU3lzdGVtRGF5ZHJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2aDYuNWEyLjUgMi41IDAgMCAwIDAtNWgtLjA1Yy0uMjQtMS42OS0xLjY5LTMtMy40NS0zLTEuNCAwLTIuNi44My0zLjE2IDIuMDJoLS4xNkEyLjk5NCAyLjk5NCAwIDAgMCA2IDEzYzAgMS42NiAxLjM0IDMgMyAzek0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOTloMTh2MTQuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoYXJlTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjAyIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQyLTEuNDNhNy45NDEgNy45NDEgMCAwIDEtMy45IDEuNjJ6TTQuMDMgMTJjMC00LjA1IDMuMDMtNy40MSA2Ljk1LTcuOTNWMi4wNUM1Ljk1IDIuNTggMi4wMyA2Ljg0IDIuMDMgMTJjMCA1LjE2IDMuOTIgOS40MiA4Ljk1IDkuOTV2LTIuMDJjLTMuOTItLjUyLTYuOTUtMy44OC02Ljk1LTcuOTN6TTE5Ljk1IDExaDIuMDJjLS4yLTIuMDEtMS0zLjg0LTIuMjEtNS4zMmwtMS40MyAxLjQzYy44NiAxLjEgMS40NCAyLjQzIDEuNjIgMy44OXpNMTguMzQgNC4yNmE5Ljk4MSA5Ljk4MSAwIDAgMC01LjMyLTIuMjF2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOC4zMyAxNi45bDEuNDMgMS40MkE5Ljk0OSA5Ljk0OSAwIDAgMCAyMS45NyAxM2gtMi4wMmE3Ljk0MSA3Ljk0MSAwIDAgMS0xLjYyIDMuOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTEuMUMxNiA4LjYxIDE0LjEgNyAxMiA3cy00IDEuNjEtNCA0LjFjMCAxLjY2IDEuMzMgMy42MyA0IDUuOSAyLjY3LTIuMjcgNC00LjI0IDQtNS45em0tNCAuOWExLjA3MSAxLjA3MSAwIDAgMSAwLTIuMTRBMS4wNzEgMS4wNzEgMCAwIDEgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3J0Y3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxMS02LTZ2NUg4Yy0yLjc2IDAtNSAyLjI0LTUgNXY0aDJ2LTRjMC0xLjY1IDEuMzUtMyAzLTNoN3Y1bDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXIwQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNi44M1YyMEg2LjgzTDIwIDYuODNNMjIgMiAyIDIyaDIwVjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyNEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjJoMjBWMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJBbHQxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNGgzdjZINXYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJBbHQyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNGgzdjZINXYtNnptNi01aDN2MTFoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA0aDN2MTZoLTN6TTUgMTRoM3Y2SDV6bTYtNWgzdjExaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhckNvbm5lY3RlZE5vSW50ZXJuZXQwQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThoMnYtOGgtMnY4em0wIDRoMnYtMmgtMnYyem0tMi0ydjJIMkwyMiAydjZoLTJWNi44M0w2LjgzIDIwSDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhckNvbm5lY3RlZE5vSW50ZXJuZXQ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGgydi04aC0ydjh6bTAgNGgydi0yaC0ydjJ6TTIgMjJoMTZWOGg0VjJMMiAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJOb1NpbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNLTYxOC0yODcySDc4MlY3MjhILTYxOHpNLTEgMGgyNnYyNEgtMXptMSAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljk5IDVjMC0xLjEtLjg5LTItMS45OS0yaC03TDcuNjYgNS4zNCAxOSAxNi42OCAxOC45OSA1ek0zLjY1IDMuODggMi4zOCA1LjE1IDUgNy43N1YxOWMwIDEuMS45IDIgMiAyaDEwLjAxYy4zNSAwIC42Ny0uMS45Ni0uMjZsMS44OCAxLjg4IDEuMjctMS4yN0wzLjY1IDMuODh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS4wMSAwaDI0djI0aC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJOb2RhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEzaC05djlIMkwyMiAydjExem0tMSAyLjQxTDE5LjU5IDE0bC0yLjA5IDIuMDlMMTUuNDEgMTQgMTQgMTUuNDFsMi4wOSAyLjA5TDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhck51bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2LjgzVjIwSDYuODNMMjAgNi44M00yMiAyIDIgMjJoMjBWMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxLTguNTkgOC41OUwyMSAxOC4xOFYxek00Ljc3IDQuNSAzLjUgNS43N2w2LjM2IDYuMzZMMSAyMWgxNy43M2wyIDJMMjIgMjEuNzMgNC43NyA0LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkwQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMzLjMzIDAgNi40OSAxLjA4IDkuMDggMy4wN0wxMiAxOC4xN2wtOS4wOC05LjFDNS41MSA3LjA4IDguNjcgNiAxMiA2bTAtMkM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTRCYXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OCAxMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw2LjM1IDYuMzZMMTIgMjFsMy4wNS0zLjA1VjE1YzAtLjQ1LjA5LS44OC4yMy0xLjI5LjU0LTEuNTcgMi4wMS0yLjcxIDMuNzctMi43MWgyLjkzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNnYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpNEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDIxLjQ5IDIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdsMTEuNjMgMTQuNDkuMDEuMDEuMDEtLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMXYtOWg4Ljk5TDI0IDguOTh6TTE5LjU5IDE0bC0yLjA5IDIuMDlMMTUuNDEgMTQgMTQgMTUuNDFsMi4wOSAyLjA5TDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxIDE5LjU5IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxdi05aDguOTlMMjQgOC45OHpNMTkuNTkgMTRsLTIuMDkgMi4wOUwxNS40MSAxNCAxNCAxNS40MWwyLjA5IDIuMDlMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDEgMTkuNTkgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMy42NCA3Yy0uNDUtLjM0LTQuOTMtNC0xMS42NC00LTEuNSAwLTIuODkuMTktNC4xNS40OEwxOC4xOCAxMy44IDIzLjY0IDd6bS02LjYgOC4yMkwzLjI3IDEuNDQgMiAyLjcybDIuMDUgMi4wNkMxLjkxIDUuNzYuNTkgNi44Mi4zNiA3bDExLjYzIDE0LjQ5LjAxLjAxLjAxLS4wMSAzLjktNC44NiAzLjMyIDMuMzIgMS4yNy0xLjI3LTMuNDYtMy40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhcjRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXJDb25uZWN0ZWROb0ludGVybmV0NCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxbDUtNS4wMVY4aDUuOTJDMTkuOTcgNS41MSAxNi4xNiA0IDEyIDR6TTE5IDE4aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTBoMnY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyTnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHpNMi45MiA5LjA3QzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3TDEyIDE4LjE3bC05LjA4LTkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2ltQ2FyZERvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQgOHYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS02IDE1LTQtNGgzVjkuMDJMMTMgOXY0aDNsLTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BsaXRzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDR2NUg2VjRoMTJtMC0ySDZjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDEzdjVINnYtNWgxMm0wLTJINmMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi01YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNTY29yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNkg5VjRoMnYyem00LTJoLTJ2MmgyVjR6TTkgMTRoMnYtMkg5djJ6bTEwLTRWOGgtMnYyaDJ6bTAgNHYtMmgtMnYyaDJ6bS02IDBoMnYtMmgtMnYyem02LTEwaC0ydjJoMlY0em0tNiA0VjZoLTJ2Mmgyem0tNiAyVjhoMlY2SDdWNEg1djE2aDJ2LThoMnYtMkg3em04IDJoMnYtMmgtMnYyem0tNC0ydjJoMnYtMmgtMnpNOSA4djJoMlY4SDl6bTQgMmgyVjhoLTJ2MnptMi00djJoMlY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTc2lkQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1LjQ3IDEyIDEyIDcuNjIgNy42MiAzIDExVjguNTJMNy44MyA1bDQuMzggNC4zOEwyMSAzdjIuNDd6TTIxIDE1aC00LjdsLTQuMTcgMy4zNEw2IDEyLjQxbC0zIDIuMTNWMTdsMi44LTIgNi4yIDYgNS00aDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0b3JhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIwaDIwdi00SDJ2NHptMi0zaDJ2Mkg0di0yek0yIDR2NGgyMFY0SDJ6bTQgM0g0VjVoMnYyem0tNCA3aDIwdi00SDJ2NHptMi0zaDJ2Mkg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTMgOEMxNi43MiA0LjE4IDExLjgyIDIuODcgOCA1LjA3Yy0xLjQxLjgyLTIuNDggMi0zLjE2IDMuMzctLjEzLTIuMi4yMi00LjQgMS4wMi02LjQ0SDMuNzRDMi4yIDYuNDkgMi41MiAxMS41OCA1LjA3IDE2YTcuOTYgNy45NiAwIDAgMCA0Ljg2IDMuNzJjMS45OC41MyA0LjE2LjMxIDYuMDctLjc5IDEuNDEtLjgyIDIuNDgtMiAzLjE2LTMuMzcuMTMgMi4yLS4yMSA0LjQtMS4wMSA2LjQ0aDIuMTFjMS41My00LjQ5IDEuMjItOS41OC0xLjMzLTE0ek0xNSAxNy4yQTYuMDEyIDYuMDEyIDAgMCAxIDYuOCAxNWMtLjExLS4yLS4yMS0uNC0uMy0uNi0xLjItMi43Ni0uMTctNi4wNiAyLjUtNy42IDIuODYtMS42NSA2LjU0LS42NyA4LjIgMi4yLjExLjIuMjEuNC4zLjYgMS4yIDIuNzYuMTcgNi4wNi0yLjUgNy42ek0xMiAxMGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJtMC0yYy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VtbWFyaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAzSDVjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS44OSAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY5bC02LTZ6TTggMTdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMC00Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAtNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem02IDFWNC41bDUuNSA1LjVIMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5c3RlbVNlY3VyaXR5VXBkYXRlR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTdIN1Y2aDEwdjEyem0tMS03Ljk1LTEuNDEtMS40MS0zLjU0IDMuNTQtMS40MS0xLjQxLTEuNDEgMS40MUwxMS4wNSAxNSAxNiAxMC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3lzdGVtU2VjdXJpdHlVcGRhdGVXYXJuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNWgydjJoLTJ6TTExIDdoMnY2aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxSDdjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2MThjMCAxLjEuODkgMiAxLjk5IDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxN0g3VjZoMTB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5c3RlbVNlY3VyaXR5VXBkYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDN2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAyem0xMiAxNUg3VjZoMTB2MTJ6bS0xLTZoLTNWOGgtMnY0SDhsNCA0IDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0tMy4wNiAxNkw3LjQgMTQuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDEwLjk0IDE4ek0xMyA5VjMuNUwxOC41IDlIMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRoZXJtb3N0YXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEzVjVjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNXY4Yy0xLjIxLjkxLTIgMi4zNy0yIDQgMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNWMwLTEuNjMtLjc5LTMuMDktMi00em0tNC0yVjVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjFoLTF2MWgxdjJoLTF2MWgxdjFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVyMTBTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA4djhoLTNWOGgzbTAtM2gtM0M4LjM0IDUgNyA2LjM0IDcgOHY4YzAgMS42NiAxLjM0IDMgMyAzaDNjMS42NiAwIDMtMS4zNCAzLTNWOGMwLTEuNjYtMS4zNC0zLTMtM3pNMSA4aDJ2MTFoM1Y1SDF2M3ptMTcuNSAzYy0uODMgMC0xLjUuNjgtMS41IDEuNXYyYzAgLjgyLjY3IDEuNSAxLjUgMS41SDIxdjFoLTR2Mmg0LjVjLjgzIDAgMS41LS42NyAxLjUtMS41di0yYzAtLjgzLS42Ny0xLjUtMS41LTEuNUgxOXYtMWg0di0yaC00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpbWVyM1NlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExdjJoLTR2MWgyLjVjLjgzIDAgMS41LjY4IDEuNSAxLjV2MmMwIC44My0uNjcgMS41LTEuNSAxLjVIMTV2LTJoNHYtMWgtMi41Yy0uODIgMC0xLjUtLjY4LTEuNS0xLjV2LTJjMC0uODIuNjgtMS41IDEuNS0xLjVIMjF6TTQgNXYzaDZ2Mi41SDR2M2g2VjE2SDR2M2g2YzEuNjYgMCAzLTEuMzQgMy0zdi0xLjlhMi4xIDIuMSAwIDAgMC0yLjEtMi4xQTIuMSAyLjEgMCAwIDAgMTMgOS45VjhjMC0xLjY2LTEuMzQtMy0zLTNINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVuZ3N0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE5aDJ2M2gtMnpNMiAxMWgzdjJIMnpNMTkgMTFoM3YyaC0zek0xNS44OTQgMTcuODAxbDEuNDA3LTEuNDA3IDIuMTIyIDIuMTIyLTEuNDA4IDEuNDA3ek00LjU4NCAxOC41MDlsMi4xMjEtMi4xMjIgMS40MDggMS40MDctMi4xMjIgMi4xMjJ6TTE1IDguMDJWM0g5djUuMDJjLTEuMjEuOTItMiAyLjM1LTIgMy45OCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wNi0yLTMuOTh6TTExIDVoMnYyLjFjLS4zMi0uMDYtLjY2LS4xLTEtLjFzLS42OC4wNC0xIC4xVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVzYk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDhoNHY0aC0xdjJjMCAuMzQtLjA4LjY2LS4yMy45NEwxNiAxMy4xN1YxMmgtMVY4em0tNCAuMTcgMiAyVjZoMmwtMy00LTMgNGgydjIuMTd6TTEzIDE2djIuMjhjLjYuMzQgMSAuOTggMSAxLjcyIDAgMS4xLS45IDItMiAycy0yLS45LTItMmMwLS43NC40LTEuMzcgMS0xLjcyVjE2SDhjLTEuMTEgMC0yLS44OS0yLTJ2LTIuMjhjLS42LS4zNC0xLS45OC0xLTEuNzIgMC0uNTkuMjYtMS4xMy42OC0xLjQ5TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDEtNi42LTYuNkgxM3ptLTItMnYtLjE3bC0yLjUxLTIuNTFjLS4xNC4xNi0uMzEuMjktLjQ5LjRWMTRoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVXNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgN3Y0aDF2MmgtM1Y1aDJsLTMtNC0zIDRoMnY4SDh2LTIuMDdjLjctLjM3IDEuMi0xLjA4IDEuMi0xLjkzIDAtMS4yMS0uOTktMi4yLTIuMi0yLjItMS4yMSAwLTIuMi45OS0yLjIgMi4yIDAgLjg1LjUgMS41NiAxLjIgMS45M1YxM2MwIDEuMTEuODkgMiAyIDJoM3YzLjA1Yy0uNzEuMzctMS4yIDEuMS0xLjIgMS45NWEyLjIgMi4yIDAgMCAwIDQuNCAwYzAtLjg1LS40OS0xLjU4LTEuMi0xLjk1VjE1aDNjMS4xMSAwIDItLjg5IDItMnYtMmgxVjdoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhbGxwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNGg3VjJINGMtMS4xIDAtMiAuOS0yIDJ2N2gyVjR6bTYgOS00IDVoMTJsLTMtNC0yLjAzIDIuNzFMMTAgMTN6bTctNC41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxNCA3LjY3IDE0IDguNXMuNjcgMS41IDEuNSAxLjVTMTcgOS4zMyAxNyA4LjV6TTIwIDJoLTd2Mmg3djdoMlY0YzAtMS4xLS45LTItMi0yem0wIDE4aC03djJoN2MxLjEgMCAyLS45IDItMnYtN2gtMnY3ek00IDEzSDJ2N2MwIDEuMS45IDIgMiAyaDd2LTJINHYtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk4IDE0SDIyaC0uMDJ6TTUuMzUgMTNjMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNC45OCAzLjMxIDF2LTJjLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxdjJjMS45IDAgMi4xNy0xIDMuMzUtMXptMTMuMzIgMmMtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMSAxLTMuMzQgMS0xLjI0IDAtMS4zOC0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxdjJjMS45NSAwIDIuMTEtMSAzLjM0LTEgMS4yNCAwIDEuMzggMSAzLjMzIDEgMS45NSAwIDIuMS0xIDMuMzQtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk0IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMXYtMmMtMS4yNCAwLTEuMzgtMS0zLjMzLTF6TTUuMzUgOWMxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzEgMVY4Yy0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMUMzLjM4IDcgMy4yNCA4IDIgOHYyYzEuOSAwIDIuMTctMSAzLjM1LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZGdldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxM3Y4aDh2LThoLTh6TTMgMjFoOHYtOEgzdjh6TTMgM3Y4aDhWM0gzem0xMy42Ni0xLjMxTDExIDcuMzQgMTYuNjYgMTNsNS42Ni01LjY2LTUuNjYtNS42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaTFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41MyAxNy40NiAxMiAyMWwtMy41My0zLjU0Yy45LS45IDIuMTUtMS40NiAzLjUzLTEuNDZzMi42My41NiAzLjUzIDEuNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMzLjAzIDAgNS43OCAxLjIzIDcuNzYgMy4yMmwtMi4xMiAyLjEyQTcuOTY3IDcuOTY3IDAgMCAwIDEyIDEzYy0yLjIgMC00LjIuOS01LjY0IDIuMzVsLTIuMTItMi4xMkM2LjIyIDExLjIzIDguOTcgMTAgMTIgMTB6bTAgNmMtMS4zOCAwLTIuNjMuNTYtMy41MyAxLjQ2TDEyIDIxbDMuNTMtMy41NEE0Ljk4IDQuOTggMCAwIDAgMTIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlDYWxsaW5nMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgM2MtMi4yMSAwLTQuMjEuOS01LjY2IDIuMzRsMS4wNiAxLjA2YTYuNDcgNi40NyAwIDAgMSA5LjE4IDBsMS4wNi0xLjA2QTcuOTMyIDcuOTMyIDAgMCAwIDE2LjQ5IDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjAzIDcuNDZhNS4wMjIgNS4wMjIgMCAwIDAtNy4wOCAwbDEuMDYgMS4wNmMuNjMtLjYzIDEuNTEtMS4wMyAyLjQ3LTEuMDNzMS44NC4zOSAyLjQ3IDEuMDNsMS4wOC0xLjA2ek0xNS4wOCA5LjU5IDE2LjQ5IDExbDEuNDEtMS40MWMtLjM2LS4zNy0uODYtLjU5LTEuNDEtLjU5cy0xLjA1LjIyLTEuNDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjYzIDE0LjQtMi41MiAyLjVjLTIuNS0xLjQzLTQuNTctMy41LTYtNmwyLjUtMi41MmMuMjMtLjI0LjMzLS41Ny4yNy0uOUw5LjEzIDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhINGMtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjA1IDUuNiAyLjQzIDcuOTcgMS41OCAyLjczIDMuODUgNC45OSA2LjU3IDYuNTcgMi4zNyAxLjM3IDUuMDggMi4yNiA3Ljk3IDIuNDMuNTYuMDMgMS4wMy0uNDQgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4bC0zLjY3LS43M2EuOTg1Ljk4NSAwIDAgMC0uOS4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUNoYW5uZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAzYy0yLjUxIDAtMy43NyA1LjYxLTQuNCAxMC41N0MxMC43OSAxMC42NiA5LjYxIDggOCA4IDQuNDMgOCAzIDIxIDMgMjFoMi4wMWMuNjEtNS4yNyAyLTkuODIgMi45OS0xMC44Ny45OCAxLjA1IDIuMzggNS42MSAyLjk5IDEwLjg3SDEzYy41LTIuNTMgMi02IDMtNnMyLjUgMy41MyAzIDZoMnMtLjUtMTgtNS0xOHptMCAxMGMtLjk5IDAtMS44Mi42Mi0yLjUgMS41LjU3LTQuNzcgMS41NC04LjYyIDIuNS05LjQ0Ljk3LjgxIDEuOTEgNC42NyAyLjQ5IDkuNDNDMTcuODEgMTMuNjIgMTYuOTggMTMgMTYgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlGaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRjMC0zLjM2IDIuNjQtNiA2LTYgMi4yIDAgNC4wOCAxLjEzIDUuMTMgMi44NkwyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMWwxLjg2LTEuODdDMTIuMTQgMTguMDkgMTEgMTYuMiAxMSAxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRjMC0yLjI0LTEuNzYtNC00LTRzLTQgMS43Ni00IDQgMS43NiA0IDQgNGMuNzUgMCAxLjQ0LS4yMSAyLjAzLS41NkwyMS41OSAyMCAyMyAxOC41OWwtMi41Ni0yLjU2Yy4zNS0uNTkuNTYtMS4yOC41Ni0yLjAzem0tNiAwYzAtMS4xMi44OC0yIDItMnMyIC44OCAyIDItLjg4IDItMiAyLTItLjg4LTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk4IDExIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4bDYuMzUgNi4zNkwxMiAyMWwzLjA1LTMuMDVWMTVjMC0uNDUuMDktLjg4LjIzLTEuMjkuNTQtMS41NyAyLjAxLTIuNzEgMy43Ny0yLjcxaDIuOTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlQYXNzd29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE5di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTJ2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6bTItMTAuMDItMi4xMiAyLjEzQzE5LjM1IDguNTcgMTUuODUgNyAxMiA3cy03LjM1IDEuNTctOS44OCA0LjExTDAgOC45OEMzLjA3IDUuOSA3LjMxIDQgMTIgNHM4LjkzIDEuOSAxMiA0Ljk4ek0xMiAxMGMzLjAzIDAgNS43OCAxLjIzIDcuNzYgMy4yMmwtMi4xMiAyLjEyQTcuOTY3IDcuOTY3IDAgMCAwIDEyIDEzYy0yLjIgMC00LjIuOS01LjY0IDIuMzVsLTIuMTItMi4xMkM2LjIyIDExLjIzIDguOTcgMTAgMTIgMTB6bTMuNTMgNy40NkwxMiAyMWwtMy41My0zLjU0Yy45LS45IDIuMTUtMS40NiAzLjUzLTEuNDZzMi42My41NiAzLjUzIDEuNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmlUZXRoZXJpbmdFcnJvclJvdW5kZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjLTMuMzEgMC02IDIuNjktNiA2IDAgMS42Ni42OCAzLjE1IDEuNzYgNC4yNGwxLjQyLTEuNDJBMy45MzQgMy45MzQgMCAwIDEgOCAxM2MwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMS4xMS0uNDUgMi4xLTEuMTggMi44MmwxLjQyIDEuNDJBNi4wMDMgNi4wMDMgMCAwIDAgMTggMTNjMC0zLjMxLTIuNjktNi02LTZ6bTAtNEM2LjQ4IDMgMiA3LjQ4IDIgMTNjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS40Mi0xLjQyQTcuOTQgNy45NCAwIDAgMSA0IDEzYzAtNC40MiAzLjU4LTggOC04IDIuNTMgMCA0Ljc4IDEuMTcgNi4yNCAzaDIuNDJDMTguOTMgNS4wMSAxNS43IDMgMTIgM3ptMCA4Yy0xLjEgMC0yIC45LTIgMiAwIC41NS4yMyAxLjA1LjU5IDEuNDEuMzYuMzYuODYuNTkgMS40MS41OXMxLjA1LS4yMyAxLjQxLS41OWMuMzYtLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0yem04LTFoMnY2aC0ydi02em0wIDhoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpVGV0aGVyaW5nRXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjLTMuMzEgMC02IDIuNjktNiA2IDAgMS42Ni42OCAzLjE1IDEuNzYgNC4yNGwxLjQyLTEuNDJBMy45MzQgMy45MzQgMCAwIDEgOCAxM2MwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMS4xMS0uNDUgMi4xLTEuMTggMi44MmwxLjQyIDEuNDJBNi4wMDMgNi4wMDMgMCAwIDAgMTggMTNjMC0zLjMxLTIuNjktNi02LTZ6bTAtNEM2LjQ4IDMgMiA3LjQ4IDIgMTNjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS40Mi0xLjQyQTcuOTQgNy45NCAwIDAgMSA0IDEzYzAtNC40MiAzLjU4LTggOC04IDIuNTMgMCA0Ljc4IDEuMTcgNi4yNCAzaDIuNDJDMTguOTMgNS4wMSAxNS43IDMgMTIgM3ptMCA4Yy0xLjEgMC0yIC45LTIgMiAwIC41NS4yMyAxLjA1LjU5IDEuNDEuMzYuMzYuODYuNTkgMS40MS41OXMxLjA1LS4yMyAxLjQxLS41OWMuMzYtLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0yem04LTFoMnY2aC0ydi02em0wIDhoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpVGV0aGVyaW5nT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIybDIuNjkgMi42OUE5Ljk1OCA5Ljk1OCAwIDAgMCAyIDEzYzAgMi43NiAxLjEyIDUuMjYgMi45MyA3LjA3bDEuNDItMS40MmE3Ljk1NyA3Ljk1NyAwIDAgMS0uODQtMTAuMzFsMS40MyAxLjQzYTYuMDAzIDYuMDAzIDAgMCAwIC44MiA3LjQ3bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtLjYzLjE1LTEuMjMuNDEtMS43NmwxLjYxIDEuNjFjMCAuMDUtLjAyLjEtLjAyLjE1IDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5LjA1IDAgLjEtLjAxLjE2LS4wMmw3LjYyIDcuNjIgMS40MS0xLjQxTDIuODEgMi44MXpNMTcuNyAxNC44N2MuMTktLjU5LjMtMS4yMi4zLTEuODcgMC0zLjMxLTIuNjktNi02LTYtLjY1IDAtMS4yOC4xLTEuODcuM2wxLjcxIDEuNzFDMTEuODkgOSAxMS45NSA5IDEyIDljMi4yMSAwIDQgMS43OSA0IDQgMCAuMDUgMCAuMTEtLjAxLjE2bDEuNzEgMS43MXpNMTIgNWM0LjQyIDAgOCAzLjU4IDggOCAwIDEuMjItLjI3IDIuMzctLjc3IDMuNGwxLjQ5IDEuNDlBOS45NTMgOS45NTMgMCAwIDAgMjIgMTNjMC01LjUyLTQuNDgtMTAtMTAtMTAtMS43OCAwLTMuNDQuNDYtNC44OSAxLjI4bDEuNDggMS40OEM5LjYzIDUuMjcgMTAuNzggNSAxMiA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpVGV0aGVyaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDJjMC0zLjMxLTIuNjktNi02LTZzLTYgMi42OS02IDZjMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTlsMS0xLjc0Yy0xLjE5LS43LTItMS45Ny0yLTMuNDUgMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDEuNDgtLjgxIDIuNzUtMiAzLjQ1bDEgMS43NGMxLjc5LTEuMDQgMy0yLjk3IDMtNS4xOXpNMTIgM0M2LjQ4IDMgMiA3LjQ4IDIgMTNjMCAzLjcgMi4wMSA2LjkyIDQuOTkgOC42NWwxLTEuNzNDNS42MSAxOC41MyA0IDE1Ljk2IDQgMTNjMC00LjQyIDMuNTgtOCA4LThzOCAzLjU4IDggOGMwIDIuOTYtMS42MSA1LjUzLTQgNi45MmwxIDEuNzNjMi45OS0xLjczIDUtNC45NSA1LTguNjUgMC01LjUyLTQuNDgtMTAtMTAtMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZENoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDkuOTloMnY3SDZ6bTggM2gydjRoLTJ6bS00LTZoMnYxMGgtMnpNMjAgN1Y0aC0ydjNoLTN2MmgzdjNoMlY5aDNWN3ptLTIgMTJINFY1aDEyVjNINGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNWgtMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OSA0YzAtMS4xLS44OS0yLTEuOTktMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0bDQgNC0uMDEtMTh6TTE3IDExaC00djRoLTJ2LTRIN1Y5aDRWNWgydjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBbGlnbkhvcml6b250YWxDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyaDJ2NWg4djNoLTh2NGg1djNoLTV2NWgtMnYtNUg2di0zaDV2LTRIM1Y3aDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFsaWduSG9yaXpvbnRhbExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIySDJWMmgydjIwek0yMiA3SDZ2M2gxNlY3em0tNiA3SDZ2M2gxMHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxpZ25Ib3Jpem9udGFsUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAyaDJ2MjBoLTJWMnpNMiAxMGgxNlY3SDJ2M3ptNiA3aDEwdi0zSDh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxpZ25WZXJ0aWNhbEJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDIySDJ2LTJoMjB2MnpNMTAgMkg3djE2aDNWMnptNyA2aC0zdjEwaDNWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxpZ25WZXJ0aWNhbENlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExaC01VjZoLTN2NWgtNFYzSDd2OEgxLjg0djJIN3Y4aDN2LThoNHY1aDN2LTVoNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxpZ25WZXJ0aWNhbFRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDJ2MkgyVjJoMjB6TTcgMjJoM1Y2SDd2MTZ6bTctNmgzVjZoLTN2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFyZWFDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTN2N2gxOHYtMS41bC05LTdMOCAxN2wtNS00em0wLTYgNCAzIDUtNyA1IDRoNHY4Ljk3bC05LjQtNy4zMS0zLjk4IDUuNDhMMyAxMC40NFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdHRhY2hGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSA2djExLjVjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRWNWEyLjUgMi41IDAgMCAxIDUgMHYxMC41YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjZIMTB2OS41YTIuNSAyLjUgMCAwIDAgNSAwVjVjMC0yLjIxLTEuNzktNC00LTRTNyAyLjc5IDcgNXYxMi41YzAgMy4wNCAyLjQ2IDUuNSA1LjUgNS41czUuNS0yLjQ2IDUuNS01LjVWNmgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdHRhY2hNb25leSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjggMTAuOWMtMi4yNy0uNTktMy0xLjItMy0yLjE1IDAtMS4wOSAxLjAxLTEuODUgMi43LTEuODUgMS43OCAwIDIuNDQuODUgMi41IDIuMWgyLjIxYy0uMDctMS43Mi0xLjEyLTMuMy0zLjIxLTMuODFWM2gtM3YyLjE2Yy0xLjk0LjQyLTMuNSAxLjY4LTMuNSAzLjYxIDAgMi4zMSAxLjkxIDMuNDYgNC43IDQuMTMgMi41LjYgMyAxLjQ4IDMgMi40MSAwIC42OS0uNDkgMS43OS0yLjcgMS43OS0yLjA2IDAtMi44Ny0uOTItMi45OC0yLjFoLTIuMmMuMTIgMi4xOSAxLjc2IDMuNDIgMy42OCAzLjgzVjIxaDN2LTIuMTVjMS45NS0uMzcgMy41LTEuNSAzLjUtMy41NSAwLTIuODQtMi40My0zLjgxLTQuNy00LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9HcmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjA2IDkuOTQgMTIgOWwyLjA2LS45NEwxNSA2bC45NCAyLjA2TDE4IDlsLTIuMDYuOTRMMTUgMTJsLS45NC0yLjA2ek00IDE0bC45NC0yLjA2TDcgMTFsLTIuMDYtLjk0TDQgOGwtLjk0IDIuMDZMMSAxMWwyLjA2Ljk0TDQgMTR6bTQuNS01IDEuMDktMi40MUwxMiA1LjUgOS41OSA0LjQxIDguNSAyIDcuNDEgNC40MSA1IDUuNWwyLjQxIDEuMDlMOC41IDl6bS00IDExLjUgNi02LjAxIDQgNEwyMyA4LjkzbC0xLjQxLTEuNDEtNy4wOSA3Ljk3LTQtNEwzIDE5bDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhckNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA5aDR2MTFINHpNMTYgMTNoNHY3aC00ek0xMCA0aDR2MTZoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM3YxOGgxOFYzSDN6bTggMTZINXYtNmg2djZ6bTAtOEg1VjVoNnY2em04IDhoLTZ2LTZoNnY2em0wLThoLTZWNWg2djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlckJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTFIN3YyaDJ2LTJ6bTQgNGgtMnYyaDJ2LTJ6TTkgM0g3djJoMlYzem00IDhoLTJ2Mmgydi0yek01IDNIM3YyaDJWM3ptOCA0aC0ydjJoMlY3em00IDRoLTJ2Mmgydi0yem0tNC04aC0ydjJoMlYzem00IDBoLTJ2MmgyVjN6bTIgMTBoMnYtMmgtMnYyem0wIDRoMnYtMmgtMnYyek01IDdIM3YyaDJWN3ptMTQtNHYyaDJWM2gtMnptMCA2aDJWN2gtMnYyek01IDExSDN2Mmgydi0yek0zIDIxaDE4di0ySDN2MnptMi02SDN2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNWgyVjNIN3Yyem0wIDhoMnYtMkg3djJ6bTAgOGgydi0ySDd2MnptNC00aDJ2LTJoLTJ2MnptMCA0aDJ2LTJoLTJ2MnptLTggMGgydi0ySDN2MnptMC00aDJ2LTJIM3Yyem0wLTRoMnYtMkgzdjJ6bTAtNGgyVjdIM3Yyem0wLTRoMlYzSDN2MnptOCA4aDJ2LTJoLTJ2MnptOCA0aDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptLTggMGgyVjdoLTJ2MnptOC02djJoMlYzaC0yem0tOCAyaDJWM2gtMnYyem00IDE2aDJ2LTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnptMC04aDJWM2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJDb2xvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDI0SDJ2LTRoMjB2NHpNMTMuMDYgNS4xOWwzLjc1IDMuNzVMNy43NSAxOEg0di0zLjc1bDkuMDYtOS4wNnptNC44MiAyLjY4LTMuNzUtMy43NSAxLjgzLTEuODNhLjk5Ni45OTYgMCAwIDEgMS40MSAwbDIuMzQgMi4zNGMuMzkuMzkuMzkgMS4wMiAwIDEuNDFsLTEuODMgMS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVySG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMnYtMkgzdjJ6TTUgN0gzdjJoMlY3ek0zIDE3aDJ2LTJIM3Yyem00IDRoMnYtMkg3djJ6TTUgM0gzdjJoMlYzem00IDBIN3YyaDJWM3ptOCAwaC0ydjJoMlYzem0tNCA0aC0ydjJoMlY3em0wLTRoLTJ2MmgyVjN6bTYgMTRoMnYtMmgtMnYyem0tOCA0aDJ2LTJoLTJ2MnptLTgtOGgxOHYtMkgzdjJ6TTE5IDN2MmgyVjNoLTJ6bTAgNmgyVjdoLTJ2MnptLTggOGgydi0yaC0ydjJ6bTQgNGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlcklubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgydi0ySDN2MnptNCAwaDJ2LTJIN3Yyek01IDdIM3YyaDJWN3pNMyAxN2gydi0ySDN2MnpNOSAzSDd2MmgyVjN6TTUgM0gzdjJoMlYzem0xMiAwaC0ydjJoMlYzem0yIDZoMlY3aC0ydjJ6bTAtNnYyaDJWM2gtMnptLTQgMThoMnYtMmgtMnYyek0xMyAzaC0ydjhIM3YyaDh2OGgydi04aDh2LTJoLThWM3ptNiAxOGgydi0yaC0ydjJ6bTAtNGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlckxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMWgydi0yaC0ydjJ6bTAtNGgydi0yaC0ydjJ6bTAtMTJoMlYzaC0ydjJ6bTAgNGgyVjdoLTJ2MnptMCA0aDJ2LTJoLTJ2MnptLTQgOGgydi0ySDd2MnpNNyA1aDJWM0g3djJ6bTAgOGgydi0ySDd2MnptLTQgOGgyVjNIM3YxOHpNMTkgOWgyVjdoLTJ2MnptLTQgMTJoMnYtMmgtMnYyem00LTRoMnYtMmgtMnYyem0wLTE0djJoMlYzaC0yem0wIDEwaDJ2LTJoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQtOGgydi0yaC0ydjJ6bTAtOGgyVjNoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyT3V0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aC0ydjJoMlY3em0wIDRoLTJ2Mmgydi0yem00IDBoLTJ2Mmgydi0yek0zIDN2MThoMThWM0gzem0xNiAxNkg1VjVoMTR2MTR6bS02LTRoLTJ2Mmgydi0yem0tNC00SDd2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCb3JkZXJSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjFoMnYtMkg3djJ6TTMgNWgyVjNIM3Yyem00IDBoMlYzSDd2MnptMCA4aDJ2LTJIN3Yyem0tNCA4aDJ2LTJIM3Yyem04IDBoMnYtMmgtMnYyem0tOC04aDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem04IDhoMnYtMmgtMnYyem00LTRoMnYtMmgtMnYyem00LTEwdjE4aDJWM2gtMnptLTQgMThoMnYtMmgtMnYyem0wLTE2aDJWM2gtMnYyem0tNCA4aDJ2LTJoLTJ2MnptMC04aDJWM2gtMnYyem0wIDRoMlY3aC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlclN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMjFoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyek03IDIxaDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem04LTRoMnYtMmgtMnYyem0wLTRoMnYtMmgtMnYyek0zIDN2MThoMlY1aDE2VjNIM3ptMTYgNmgyVjdoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm9yZGVyVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMWgydi0ySDd2MnptMC04aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem0wIDhoMnYtMmgtMnYyem0tOC00aDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgydi0ySDN2MnptMC00aDJWN0gzdjJ6bTggOGgydi0yaC0ydjJ6bTgtOGgyVjdoLTJ2MnptMCA0aDJ2LTJoLTJ2MnpNMyAzdjJoMThWM0gzem0xNiAxNGgydi0yaC0ydjJ6bS00IDRoMnYtMmgtMnYyek0xMSA5aDJWN2gtMnYyem04IDEyaDJ2LTJoLTJ2MnptLTQtOGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJvcmRlclZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5aDJWN0gzdjJ6bTAtNGgyVjNIM3Yyem00IDE2aDJ2LTJIN3Yyem0wLThoMnYtMkg3djJ6bS00IDBoMnYtMkgzdjJ6bTAgOGgydi0ySDN2MnptMC00aDJ2LTJIM3Yyek03IDVoMlYzSDd2MnptMTIgMTJoMnYtMmgtMnYyem0tOCA0aDJWM2gtMnYxOHptOCAwaDJ2LTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnptMC0xMHYyaDJWM2gtMnptMCA2aDJWN2gtMnYyem0tNC00aDJWM2gtMnYyem0wIDE2aDJ2LTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnViYmxlQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuMlwiLFwiY3lcIjpcIjE0LjRcIixcInJcIjpcIjMuMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjhcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjJcIixcImN5XCI6XCI4LjhcIixcInJcIjpcIjQuOFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW5kbGVzdGlja0NoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0SDd2Mkg1djEyaDJ2Mmgydi0yaDJWNkg5ek0xOSA4aC0yVjRoLTJ2NGgtMnY3aDJ2NWgydi01aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrbGlzdFJ0bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdIMnYyaDlWN3ptMCA4SDJ2Mmg5di0yem01LjM0LTRMMTIuOCA3LjQ2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0TDIyIDUuMzQgMTYuMzQgMTF6bTAgOC0zLjU0LTMuNTQgMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjRMMjIgMTMuMzQgMTYuMzQgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrbGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDdoLTl2Mmg5Vjd6bTAgOGgtOXYyaDl2LTJ6TTUuNTQgMTEgMiA3LjQ2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0IDEuNDEgMS40MUw1LjU0IDExem0wIDhMMiAxNS40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDFMNS41NCAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGF0YUFycmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNHYyaDN2MTJoLTN2Mmg1VjR6TTQgMjBoNXYtMkg2VjZoM1Y0SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERhdGFPYmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDd2MmMwIC41NS0uNDUgMS0xIDFIMnY0aDFjLjU1IDAgMSAuNDUgMSAxdjJjMCAxLjY1IDEuMzUgMyAzIDNoM3YtMkg3Yy0uNTUgMC0xLS40NS0xLTF2LTJjMC0xLjMtLjg0LTIuNDItMi0yLjgzdi0uMzRDNS4xNiAxMS40MiA2IDEwLjMgNiA5VjdjMC0uNTUuNDUtMSAxLTFoM1Y0SDdDNS4zNSA0IDQgNS4zNSA0IDd6TTIxIDEwYy0uNTUgMC0xLS40NS0xLTFWN2MwLTEuNjUtMS4zNS0zLTMtM2gtM3YyaDNjLjU1IDAgMSAuNDUgMSAxdjJjMCAxLjMuODQgMi40MiAyIDIuODN2LjM0Yy0xLjE2LjQxLTIgMS41Mi0yIDIuODN2MmMwIC41NS0uNDUgMS0xIDFoLTN2MmgzYzEuNjUgMCAzLTEuMzUgMy0zdi0yYzAtLjU1LjQ1LTEgMS0xaDF2LTRoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERyYWdIYW5kbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA5SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4Ljg1IDEwLjM5IDEuMDYtMS4wNmMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDE4LjUgNS4wOWMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTEuMDYgMS4wNiA0LjI0IDQuMjR6bS01LjY2LTIuODNMNCAxNi43NlYyMWg0LjI0bDkuMTktOS4xOS00LjI0LTQuMjV6TTE5IDE3LjVjMCAyLjE5LTIuNTQgMy41LTUgMy41LS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFjMS41NCAwIDMtLjczIDMtMS41IDAtLjQ3LS40OC0uODctMS4yMy0xLjJsMS40OC0xLjQ4YzEuMDcuNjMgMS43NSAxLjQ3IDEuNzUgMi42OHpNNC41OCAxMy4zNUMzLjYxIDEyLjc5IDMgMTIuMDYgMyAxMWMwLTEuOCAxLjg5LTIuNjMgMy41Ni0zLjM2QzcuNTkgNy4xOCA5IDYuNTYgOSA2YzAtLjQxLS43OC0xLTItMS0xLjI2IDAtMS44LjYxLTEuODMuNjQtLjM1LjQxLS45OC40Ni0xLjQuMTJhLjk5Mi45OTIgMCAwIDEtLjE1LTEuMzhDMy43MyA0LjI0IDQuNzYgMyA3IDNzNCAxLjMyIDQgM2MwIDEuODctMS45MyAyLjcyLTMuNjQgMy40N0M2LjQyIDkuODggNSAxMC41IDUgMTFjMCAuMzEuNDMuNiAxLjA3Ljg2bC0xLjQ5IDEuNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVkaXROb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMGgxMXYySDN2LTJ6bTAtMmgxMVY2SDN2MnptMCA4aDd2LTJIM3Yyem0xNS4wMS0zLjEzLjcxLS43MWEuOTk2Ljk5NiAwIDAgMSAxLjQxIDBsLjcxLjcxYy4zOS4zOS4zOSAxLjAyIDAgMS40MWwtLjcxLjcxLTIuMTItMi4xMnptLS43MS43MS01LjMgNS4zVjIxaDIuMTJsNS4zLTUuMy0yLjEyLTIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdEFsaWduQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNXYyaDEwdi0ySDd6bS00IDZoMTh2LTJIM3Yyem0wLThoMTh2LTJIM3Yyem00LTZ2MmgxMFY3SDd6TTMgM3YyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0QWxpZ25KdXN0aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgxOHYtMkgzdjJ6bTAtNGgxOHYtMkgzdjJ6bTAtNGgxOHYtMkgzdjJ6bTAtNGgxOFY3SDN2MnptMC02djJoMThWM0gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRBbGlnbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0QWxpZ25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTJIM3Yyem02LTRoMTJ2LTJIOXYyem0tNi00aDE4di0ySDN2MnptNi00aDEyVjdIOXYyek0zIDN2MmgxOFYzSDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdEJvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42IDEwLjc5Yy45Ny0uNjcgMS42NS0xLjc3IDEuNjUtMi43OSAwLTIuMjYtMS43NS00LTQtNEg3djE0aDcuMDRjMi4wOSAwIDMuNzEtMS43IDMuNzEtMy43OSAwLTEuNTItLjg2LTIuODItMi4xNS0zLjQyek0xMCA2LjVoM2MuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41aC0zdi0zem0zLjUgOUgxMHYtM2gzLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0Q2xlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjI3IDUgMiA2LjI3bDYuOTcgNi45N0w2LjUgMTloM2wxLjU3LTMuNjZMMTYuNzMgMjEgMTggMTkuNzMgMy41NSA1LjI3IDMuMjcgNXpNNiA1di4xOEw4LjgyIDhoMi40bC0uNzIgMS42OCAyLjEgMi4xTDE0LjIxIDhIMjBWNUg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRDb2xvckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41NiA4Ljk0IDcuNjIgMCA2LjIxIDEuNDFsMi4zOCAyLjM4LTUuMTUgNS4xNWExLjQ5IDEuNDkgMCAwIDAgMCAyLjEybDUuNSA1LjVjLjI5LjI5LjY4LjQ0IDEuMDYuNDRzLjc3LS4xNSAxLjA2LS40NGw1LjUtNS41Yy41OS0uNTguNTktMS41MyAwLTIuMTJ6TTUuMjEgMTAgMTAgNS4yMSAxNC43OSAxMEg1LjIxek0xOSAxMS41cy0yIDIuMTctMiAzLjVjMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLTEuMzMtMi0zLjUtMi0zLjV6TTIgMjBoMjB2NEgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRDb2xvclJlc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNGMwLTQtNi0xMC44LTYtMTAuOHMtMS4zMyAxLjUxLTIuNzMgMy41Mmw4LjU5IDguNTljLjA5LS40Mi4xNC0uODYuMTQtMS4zMXptLS44OCAzLjEyTDEyLjUgMTIuNSA1LjI3IDUuMjcgNCA2LjU1bDMuMzIgMy4zMkM2LjU1IDExLjMyIDYgMTIuNzkgNiAxNGMwIDMuMzEgMi42OSA2IDYgNiAxLjUyIDAgMi45LS41NyAzLjk2LTEuNWwyLjYzIDIuNjMgMS4yNy0xLjI3LTIuNzQtMi43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0Q29sb3JUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMGgyMHY0SDJ2LTR6bTMuNDktM2gyLjQybDEuMjctMy41OGg1LjY1TDE2LjA5IDE3aDIuNDJMMTMuMjUgM2gtMi41TDUuNDkgMTd6bTQuNDItNS42MSAyLjAzLTUuNzloLjEybDIuMDMgNS43OUg5LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRJbmRlbnREZWNyZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3aDEwdi0ySDExdjJ6bS04LTUgNCA0VjhsLTQgNHptMCA5aDE4di0ySDN2MnpNMyAzdjJoMThWM0gzem04IDZoMTBWN0gxMXYyem0wIDRoMTB2LTJIMTF2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0SW5kZW50SW5jcmVhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDE4di0ySDN2MnpNMyA4djhsNC00LTQtNHptOCA5aDEwdi0ySDExdjJ6TTMgM3YyaDE4VjNIM3ptOCA2aDEwVjdIMTF2MnptMCA0aDEwdi0ySDExdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdEl0YWxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDR2M2gyLjIxbC0zLjQyIDhINnYzaDh2LTNoLTIuMjFsMy40Mi04SDE4VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdExpbmVTcGFjaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA3aDIuNUw1IDMuNSAxLjUgN0g0djEwSDEuNUw1IDIwLjUgOC41IDE3SDZWN3ptNC0ydjJoMTJWNUgxMHptMCAxNGgxMnYtMkgxMHYyem0wLTZoMTJ2LTJIMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0TGlzdEJ1bGxldGVkQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0zIDUuNWgtMi41VjIxaC0xdi0yLjVIMTV2LTFoMi41VjE1aDF2Mi41SDIxdjF6TTcgNWgxM3YySDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMy41XCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMUg3djJoNi4xMWMxLjI2LTEuMjQgMi45OS0yIDQuODktMnpNNyAxN3YyaDQuMDhjLS4wNS0uMzMtLjA4LS42Ni0uMDgtMXMuMDMtLjY3LjA4LTFIN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzLjVcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzLjVcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdExpc3RCdWxsZXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxMC41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMC02Yy0uODMgMC0xLjUuNjctMS41IDEuNVMzLjE3IDcuNSA0IDcuNSA1LjUgNi44MyA1LjUgNiA0LjgzIDQuNSA0IDQuNXptMCAxMmMtLjgzIDAtMS41LjY4LTEuNSAxLjVzLjY4IDEuNSAxLjUgMS41IDEuNS0uNjggMS41LTEuNS0uNjctMS41LTEuNS0xLjV6TTcgMTloMTR2LTJIN3Yyem0wLTZoMTR2LTJIN3Yyem0wLTh2MmgxNFY1SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdExpc3ROdW1iZXJlZFJ0bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE3aDJ2LjVoLTF2MWgxdi41aC0ydjFoM3YtNGgtM3ptMS05aDFWNGgtMnYxaDF6bS0xIDNoMS44TDE4IDEzLjF2LjloM3YtMWgtMS44bDEuOC0yLjFWMTBoLTN6TTIgNWgxNHYySDJ6bTAgMTJoMTR2Mkgyem0wLTZoMTR2MkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRMaXN0TnVtYmVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE3aDJ2LjVIM3YxaDF2LjVIMnYxaDN2LTRIMnYxem0xLTloMVY0SDJ2MWgxdjN6bS0xIDNoMS44TDIgMTMuMXYuOWgzdi0xSDMuMkw1IDEwLjlWMTBIMnYxem01LTZ2MmgxNFY1SDd6bTAgMTRoMTR2LTJIN3Yyem0wLTZoMTR2LTJIN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRQYWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRWM2MwLS41NS0uNDUtMS0xLTFINWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZoMXY0SDl2MTFjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTloOFY0aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRRdW90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTdoM2wyLTRWN0g1djZoM3ptOCAwaDNsMi00VjdoLTZ2NmgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRTaGFwZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA3VjFoLTZ2Mkg3VjFIMXY2aDJ2MTBIMXY2aDZ2LTJoMTB2Mmg2di02aC0yVjdoMnpNMyAzaDJ2MkgzVjN6bTIgMThIM3YtMmgydjJ6bTEyLTJIN3YtMkg1VjdoMlY1aDEwdjJoMnYxMGgtMnYyem00IDJoLTJ2LTJoMnYyek0xOSA1VjNoMnYyaC0yem0tNS4yNyA5aC0zLjQ5bC0uNzMgMkg3Ljg5bDMuNC05aDEuNGwzLjQxIDloLTEuNjNsLS43NC0yem0tMy4wNC0xLjI2aDIuNjFMMTIgOC45MWwtMS4zMSAzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRTaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0djNoNXYxMmgzVjdoNVY0SDl6bS02IDhoM3Y3aDN2LTdoM1Y5SDN2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0U3RyaWtldGhyb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE5aDR2LTNoLTR2M3pNNSA0djNoNXYzaDRWN2g1VjRINXpNMyAxNGgxOHYtMkgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvcm1hdFRleHRkaXJlY3Rpb25MVG9SIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMHY1aDJWNGgydjExaDJWNGgyVjJIOUM2Ljc5IDIgNSAzLjc5IDUgNnMxLjc5IDQgNCA0em0xMiA4LTQtNHYzSDV2MmgxMnYzbDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0VGV4dGRpcmVjdGlvblJUb0wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMHY1aDJWNGgydjExaDJWNGgyVjJoLThDNy43OSAyIDYgMy43OSA2IDZzMS43OSA0IDQgNHptLTIgN3YtM2wtNCA0IDQgNHYtM2gxMnYtMkg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JtYXRVbmRlcmxpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjMy4zMSAwIDYtMi42OSA2LTZWM2gtMi41djhjMCAxLjkzLTEuNTcgMy41LTMuNSAzLjVTOC41IDEyLjkzIDguNSAxMVYzSDZ2OGMwIDMuMzEgMi42OSA2IDYgNnptLTcgMnYyaDE0di0ySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZ1bmN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRINnYybDYuNSA2TDYgMTh2MmgxMnYtM2gtN2w1LTUtNS01aDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDYuOTloM0wxMiAzIDggNi45OWgzdjEwLjAySDhMMTIgMjFsNC0zLjk5aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZXhhZ29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMiAzSDYuOGwtNS4yIDkgNS4yIDloMTAuNGw1LjItOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlnaGxpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAxNCAzIDN2NWg2di01bDMtM1Y5SDZ2NXptNS0xMmgydjNoLTJWMnpNMy41IDUuODhsMS40MS0xLjQxIDIuMTIgMi4xMkw1LjYyIDggMy41IDUuODh6bTEzLjQ2LjcxIDIuMTItMi4xMiAxLjQxIDEuNDFMMTguMzggOGwtMS40Mi0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3Jpem9udGFsRGlzdHJpYnV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjJIMlYyaDJ2MjB6TTIyIDJoLTJ2MjBoMlYyem0tOC41IDVoLTN2MTBoM1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3Jpem9udGFsUnVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk00IDExaDE2djJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5zZXJ0Q2hhcnRPdXRsaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTdIN3YtN2gydjd6bTQgMGgtMlY3aDJ2MTB6bTQgMGgtMnYtNGgydjR6bTIuNSAyLjFoLTE1VjVoMTV2MTQuMXptMC0xNi4xaC0xNWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0bDQgNFY0YzAtMS4xLS45LTItMi0yem0tMiAxMkg2di0yaDEydjJ6bTAtM0g2VjloMTJ2MnptMC0zSDZWNmgxMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnREcml2ZUZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDJjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNCAyMGMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZINnptNyA3VjMuNUwxOC41IDlIMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluc2VydEVtb3RpY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0zLjUtOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTYuMzMgOCAxNS41IDggMTQgOC42NyAxNCA5LjVzLjY3IDEuNSAxLjUgMS41em0tNyAwYy44MyAwIDEuNS0uNjcgMS41LTEuNVM5LjMzIDggOC41IDggNyA4LjY3IDcgOS41IDcuNjcgMTEgOC41IDExem0zLjUgNi41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRJbnZpdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJoLTV2NWg1di01ek0xNiAxdjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMmgtMVYxaC0yem0zIDE4SDVWOGgxNHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5zZXJ0TGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbnNlcnRQYWdlQnJlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0ydi0zSDR2M3pNMjAgOGwtNi02SDZjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2N0gyMFY4em0tNyAxVjMuNUwxOC41IDlIMTN6TTkgMTNoNnYySDl6TTE3IDEzaDZ2MmgtNnpNMSAxM2g2djJIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW5zZXJ0UGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxOVY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMy41bDIuNSAzLjAxTDE0LjUgMTJsNC41IDZINWwzLjUtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaW5lQXhpcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDcuNDMtMS40MS0xLjQxLTQuMDMgNC41M0w5LjUgNCAyIDExLjUxbDEuNSAxLjUgNi4xNC02LjE1IDUuNTkgNS4xOC0xLjczIDEuOTUtNC00TDIgMTcuNSAzLjUgMTlsNi02LjAxIDQgNCAzLjE5LTMuNTkgMy45IDMuNjFMMjIgMTUuNmwtMy45OC0zLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpbmVhclNjYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSA5LjVjLTEuMDMgMC0xLjkuNjItMi4yOSAxLjVoLTIuOTJjLS4zOS0uODgtMS4yNi0xLjUtMi4yOS0xLjVzLTEuOS42Mi0yLjI5IDEuNUg2Ljc5Yy0uMzktLjg4LTEuMjYtMS41LTIuMjktMS41YTIuNSAyLjUgMCAwIDAgMCA1YzEuMDMgMCAxLjktLjYyIDIuMjktMS41aDIuOTJjLjM5Ljg4IDEuMjYgMS41IDIuMjkgMS41czEuOS0uNjIgMi4yOS0xLjVoMi45MmMuMzkuODggMS4yNiAxLjUgMi4yOSAxLjVhMi41IDIuNSAwIDAgMCAwLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcmdpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM3YxOGgxOFYzSDN6bTE2IDE2SDVWNWgxNHYxNHpNMTEgN2gydjJoLTJ6TTcgN2gydjJIN3ptOCAwaDJ2MmgtMnptLTggNGgydjJIN3ptNCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWVyZ2VUeXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMjAuNDEgMTguNDEgMTkgMTUgMTUuNTkgMTMuNTkgMTcgMTcgMjAuNDF6TTcuNSA4SDExdjUuNTlMNS41OSAxOSA3IDIwLjQxbDYtNlY4aDMuNUwxMiAzLjUgNy41IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTkgNGMwLTEuMS0uODktMi0xLjk5LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDQtLjAxLTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlRWRpdE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1ek0yMC43MSA1LjYzbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGVFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1ek0yMC43MSA1LjYzbC0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbmV0aXphdGlvbk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMS40MSAxNi4wOVYyMGgtMi42N3YtMS45M2MtMS43MS0uMzYtMy4xNi0xLjQ2LTMuMjctMy40aDEuOTZjLjEgMS4wNS44MiAxLjg3IDIuNjUgMS44NyAxLjk2IDAgMi40LS45OCAyLjQtMS41OSAwLS44My0uNDQtMS42MS0yLjY3LTIuMTQtMi40OC0uNi00LjE4LTEuNjItNC4xOC0zLjY3IDAtMS43MiAxLjM5LTIuODQgMy4xMS0zLjIxVjRoMi42N3YxLjk1YzEuODYuNDUgMi43OSAxLjg2IDIuODUgMy4zOUgxNC4zYy0uMDUtMS4xMS0uNjQtMS44Ny0yLjIyLTEuODctMS41IDAtMi40LjY4LTIuNCAxLjY0IDAgLjg0LjY1IDEuMzkgMi42NyAxLjkxczQuMTggMS4zOSA0LjE4IDMuOTFjLS4wMSAxLjgzLTEuMzggMi44My0zLjEyIDMuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbmV5T2ZmQ3NyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41MyA3LjQzYy40Mi0uMzEuOTMtLjQ3IDEuNTQtLjQ3czEuMTEuMTYgMS41LjQ5Yy4zOS4zMi42NS43Ljc5IDEuMTJsMS44OS0uOGMtLjI0LS43MS0uNzEtMS4zNS0xLjQtMS45Mi0uNS0uNC0xLjEyLS42NS0xLjg1LS43N1YzaC0ydjIuMTFjLS40MS4wOC0uNzkuMjEtMS4xNC4zOS0uMzUuMTgtLjY0LjM5LS45LjYzbDEuNDMgMS40M2MuMDQtLjA0LjA5LS4wOS4xNC0uMTN6TTIuODEgMi44MSAxLjM5IDQuMjJsMTIuMzUgMTIuMzVjLS40My4yOC0uOTUuNDMtMS41NS40My0uNzEgMC0xLjMyLS4yMy0xLjgzLS43LS41LS40Ny0uODYtMS4wNy0xLjA2LTEuODFsLTEuOTguOGMuMzQgMS4xNy45NSAyLjA4IDEuODMgMi43My41Ny40MiAxLjE5LjY4IDEuODUuODNWMjFoMnYtMi4wOGMuNDQtLjA3Ljg3LS4xNyAxLjI5LS4zNS4zNC0uMTQuNjQtLjMyLjkyLS41M2w0LjU3IDQuNTcgMS40MS0xLjQxTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9uZXlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDYuOWMxLjc4IDAgMi40NC44NSAyLjUgMi4xaDIuMjFjLS4wNy0xLjcyLTEuMTItMy4zLTMuMjEtMy44MVYzaC0zdjIuMTZjLS41My4xMi0xLjAzLjMtMS40OC41NGwxLjQ3IDEuNDdjLjQxLS4xNy45MS0uMjcgMS41MS0uMjd6TTUuMzMgNC4wNiA0LjA2IDUuMzMgNy41IDguNzdjMCAyLjA4IDEuNTYgMy4yMSAzLjkxIDMuOTFsMy41MSAzLjUxYy0uMzQuNDgtMS4wNS45MS0yLjQyLjkxLTIuMDYgMC0yLjg3LS45Mi0yLjk4LTIuMWgtMi4yYy4xMiAyLjE5IDEuNzYgMy40MiAzLjY4IDMuODNWMjFoM3YtMi4xNWMuOTYtLjE4IDEuODItLjU1IDIuNDUtMS4xMmwyLjIyIDIuMjIgMS4yNy0xLjI3TDUuMzMgNC4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92ZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDExYzAgMi40NSAxLjc2IDQuNDcgNC4wOCA0LjkxbC0xLjQ5LTEuNDlMNyAxM2w0IDQuMDFMNyAyMWwtMS40MS0xLjQxIDEuNTgtMS41OHYtLjA2QTcuMDA3IDcuMDA3IDAgMCAxIDEgMTFjMC0zLjg3IDMuMTMtNyA3LTdoM3YySDhjLTIuNzYgMC01IDIuMjQtNSA1ek0yMiAxMVY0aC05djdoOXptLTItMmgtNVY2aDV2M3pNMTMgMTNoOXY3aC05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3ZlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzYzAtMi40NSAxLjc2LTQuNDcgNC4wOC00LjkxbC0xLjQ5IDEuNUw3IDExbDQtNC4wMUw3IDMgNS41OSA0LjQxbDEuNTggMS41OHYuMDZBNy4wMDcgNy4wMDcgMCAwIDAgMSAxM2MwIDMuODcgMy4xMyA3IDcgN2gzdi0ySDhjLTIuNzYgMC01LTIuMjQtNS01ek0xMyAxM3Y3aDl2LTdoLTl6bTcgNWgtNXYtM2g1djN6TTEzIDRoOXY3aC05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNdWx0aWxpbmVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDYuOTItMS40MS0xLjQxLTIuODUgMy4yMUMxNS42OCA2LjQgMTIuODMgNSA5LjYxIDUgNi43MiA1IDQuMDcgNi4xNiAyIDhsMS40MiAxLjQyQzUuMTIgNy45MyA3LjI3IDcgOS42MSA3YzIuNzQgMCA1LjA5IDEuMjYgNi43NyAzLjI0bC0yLjg4IDMuMjQtNC00TDIgMTYuOTlsMS41IDEuNSA2LTYuMDEgNCA0IDQuMDUtNC41NWMuNzUgMS4zNSAxLjI1IDIuOSAxLjQ0IDQuNTVIMjFjLS4yMi0yLjMtLjk1LTQuMzktMi4wNC02LjE0TDIyIDYuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vdGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE4aDEydi0ySDN2MnpNMyA2djJoMThWNkgzem0wIDdoMTh2LTJIM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROdW1iZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNSAxMCAuNS0yaC00bDEtNGgtMmwtMSA0aC00bDEtNGgtMkw5IDhINWwtLjUgMmg0bC0xIDRoLTRMMyAxNmg0bC0xIDRoMmwxLTRoNGwtMSA0aDJsMS00aDRsLjUtMmgtNGwxLTRoNHptLTcgNGgtNGwxLTRoNGwtMSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYWRkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptMTYgMTZINVY1aDE0djE0ek0xMSA3aDJ2MmgtMnpNNyA3aDJ2Mkg3em04IDBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZW50YWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIgOSA0IDEyaDEybDQtMTItMTAtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGllQ2hhcnRPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTEgMi4wN2MzLjYxLjQ1IDYuNDggMy4zMyA2LjkzIDYuOTNIMTNWNC4wN3pNNCAxMmMwLTQuMDYgMy4wNy03LjQ0IDctNy45M3YxNS44N2MtMy45My0uNS03LTMuODgtNy03Ljk0em05IDcuOTNWMTNoNi45M0E4LjAwMiA4LjAwMiAwIDAgMSAxMyAxOS45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGllQ2hhcnRPdXRsaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTEgMi4wN2MzLjYxLjQ1IDYuNDggMy4zMyA2LjkzIDYuOTNIMTNWNC4wN3pNNCAxMmMwLTQuMDYgMy4wNy03LjQ0IDctNy45M3YxNS44N2MtMy45My0uNS03LTMuODgtNy03Ljk0em05IDcuOTNWMTNoNi45M0E4LjAwMiA4LjAwMiAwIDAgMSAxMyAxOS45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGllQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDJ2MjBjLTUuMDctLjUtOS00Ljc5LTktMTBzMy45My05LjUgOS0xMHptMi4wMyAwdjguOTlIMjJjLS40Ny00Ljc0LTQuMjQtOC41Mi04Ljk3LTguOTl6bTAgMTEuMDFWMjJjNC43NC0uNDcgOC41LTQuMjUgOC45Ny04Ljk5aC04Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb2x5bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE2djEuMjZsLTYtM3YtMy4xN0wxMS43IDhIMTZWMmgtNnY0LjlMNy4zIDEwSDN2Nmg1bDcgMy41VjIyaDZ2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvc3RBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxOS4yMkg1VjdoN1Y1SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2Ny4yMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMmgtMnYzaC0zYy4wMS4wMSAwIDIgMCAyaDN2Mi45OWMuMDEuMDEgMiAwIDIgMFY3aDNWNWgtM1Yyek03IDloOHYySDd6TTcgMTJ2Mmg4di0yaC0zek03IDE1aDh2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQdWJsaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0djJoMTRWNEg1em0wIDEwaDR2Nmg2di02aDRsLTctNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFF1ZXJ5U3RhdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44OCAxOC40N2MuNDQtLjcuNy0xLjUxLjctMi4zOSAwLTIuNDktMi4wMS00LjUtNC41LTQuNXMtNC41IDIuMDEtNC41IDQuNSAyLjAxIDQuNSA0LjQ5IDQuNWMuODggMCAxLjctLjI2IDIuMzktLjdMMjEuNTggMjMgMjMgMjEuNThsLTMuMTItMy4xMXptLTMuOC4xMWEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXptLS4zNi04LjVjLS43NC4wMi0xLjQ1LjE4LTIuMS40NWwtLjU1LS44My0zLjggNi4xOC0zLjAxLTMuNTItMy42MyA1LjgxTDEgMTdsNS04IDMgMy41TDEzIDZsMi43MiA0LjA4em0yLjU5LjVjLS42NC0uMjgtMS4zMy0uNDUtMi4wNS0uNDlMMjEuMzggMiAyMyAzLjE4bC00LjY5IDcuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVjdGFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0aDIwdjE2SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjYXR0ZXJQbG90IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiM1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjZcIixcImN5XCI6XCIxNy42XCIsXCJyXCI6XCIzXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjaGVtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDl2MmgtM1Y5SDguNVY3SDExVjFINHY2aDIuNXYySDR2NmgyLjV2Mkg0djZoN3YtNkg4LjV2LTJIMTF2LTJoM3YyaDdWOWgtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMmgxLjV2M2wyLTNoMS43bC0yIDMgMiAzaC0xLjdsLTItM3YzSDEyVjV6TTcgNy4yNWgyLjVWNi41SDdWNWg0djMuNzVIOC41di43NUgxMVYxMUg3VjcuMjV6TTE5IDEzbC02IDYtNC00LTQgNHYtMi41bDQtNCA0IDQgNi02VjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaGFwZUxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDExYzIuNzYgMCA1LTIuMjQgNS01UzguNzYgMSA2IDEgMSAzLjI0IDEgNnMyLjI0IDUgNSA1ek0yMSAxNGgtNWMtMS4xIDAtMiAuOS0yIDJ2NWMwIDEuMS45IDIgMiAyaDVjMS4xIDAgMi0uOSAyLTJ2LTVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcxIDcuN2MuNC4xOS44My4zIDEuMjkuMyAxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzYzAgLjQ2LjExLjg5LjMgMS4yOUw2LjI5IDE2LjNjLS40LS4xOS0uODMtLjMtMS4yOS0uMy0xLjY1IDAtMyAxLjM1LTMgM3MxLjM1IDMgMyAzIDMtMS4zNSAzLTNjMC0uNDYtLjExLS44OS0uMy0xLjI5TDE3LjcxIDcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2hvcnRUZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA5aDE2djJINFY5em0wIDRoMTB2Mkg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaG93Q2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zLjUgMTguNDkgNi02LjAxIDQgNEwyMiA2LjkybC0xLjQxLTEuNDEtNy4wOSA3Ljk3LTQtNEwyIDE2Ljk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGFjZUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOXY0SDZWOUg0djZoMTZWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djE4SDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YWNrZWRMaW5lQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yIDE5Ljk5IDcuNS03LjUxIDQgNCA3LjA5LTcuOTdMMjIgOS45MmwtOC41IDkuNTYtNC00LTYgNi4wMS0xLjUtMS41em0xLjUtNC41IDYtNi4wMSA0IDRMMjIgMy45MmwtMS40MS0xLjQxLTcuMDkgNy45Ny00LTRMMiAxMy45OWwxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJpa2V0aHJvdWdoUyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuODUgNy4wOEM2Ljg1IDQuMzcgOS40NSAzIDEyLjI0IDNjMS42NCAwIDMgLjQ5IDMuOSAxLjI4Ljc3LjY1IDEuNDYgMS43MyAxLjQ2IDMuMjRoLTMuMDFjMC0uMzEtLjA1LS41OS0uMTUtLjg1LS4yOS0uODYtMS4yLTEuMjgtMi4yNS0xLjI4LTEuODYgMC0yLjM0IDEuMDItMi4zNCAxLjcgMCAuNDguMjUuODguNzQgMS4yMS4zOC4yNS43Ny40OCAxLjQxLjdINy4zOWMtLjIxLS4zNC0uNTQtLjg5LS41NC0xLjkyek0yMSAxMnYtMkgzdjJoOS42MmMxLjE1LjQ1IDEuOTYuNzUgMS45NiAxLjk3IDAgMS0uODEgMS42Ny0yLjI4IDEuNjctMS41NCAwLTIuOTMtLjU0LTIuOTMtMi41MUg2LjRjMCAuNTUuMDggMS4xMy4yNCAxLjU4LjgxIDIuMjkgMy4yOSAzLjMgNS42NyAzLjMgMi4yNyAwIDUuMy0uODkgNS4zLTQuMDUgMC0uMy0uMDEtMS4xNi0uNDgtMS45NEgyMVYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3Vic2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMThoLTJ2MWgzdjFoLTR2LTJjMC0uNTUuNDUtMSAxLTFoMnYtMWgtM3YtMWgzYy41NSAwIDEgLjQ1IDEgMXYxYzAgLjU1LS40NSAxLTEgMXpNNS44OCAxOGgyLjY2bDMuNC01LjQyaC4xMmwzLjQgNS40MmgyLjY2bC00LjY1LTcuMjdMMTcuODEgNGgtMi42OGwtMy4wNyA0Ljk5aC0uMTJMOC44NSA0SDYuMTlsNC4zMiA2LjczTDUuODggMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1cGVyc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN2gtMnYxaDN2MWgtNFY3YzAtLjU1LjQ1LTEgMS0xaDJWNWgtM1Y0aDNjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek01Ljg4IDIwaDIuNjZsMy40LTUuNDJoLjEybDMuNCA1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSA2aC0yLjY4bC0zLjA3IDQuOTloLS4xMkw4Ljg1IDZINi4xOWw0LjMyIDYuNzNMNS44OCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFibGVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTAuMDJoNVYyMWgtNXpNMTcgMjFoM2MxLjEgMCAyLS45IDItMnYtOWgtNXYxMXptMy0xOEg1Yy0xLjEgMC0yIC45LTIgMnYzaDE5VjVjMC0xLjEtLjktMi0yLTJ6TTMgMTljMCAxLjEuOSAyIDIgMmgzVjEwSDN2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFibGVSb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOEgzVjRoMTh2NHptMCAySDN2NGgxOHYtNHptMCA2SDN2NGgxOHYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dERlY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk5IDE5aDIuNDJsMS4yNy0zLjU4aDUuNjVMMTEuNTkgMTloMi40Mkw4Ljc1IDVoLTIuNUwuOTkgMTl6bTQuNDItNS42MUw3LjQ0IDcuNmguMTJsMi4wMyA1Ljc5SDUuNDF6TTIzIDExdjJoLTh2LTJoOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dEZpZWxkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNSA0djNoNXYxMmgzVjdoNVY0aC0xM3ptMTkgNWgtOXYzaDN2N2gzdi03aDNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dEluY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk5IDE5aDIuNDJsMS4yNy0zLjU4aDUuNjVMMTEuNTkgMTloMi40Mkw4Ljc1IDVoLTIuNUwuOTkgMTl6bTQuNDItNS42MUw3LjQ0IDcuNmguMTJsMi4wMyA1Ljc5SDUuNDF6TTIwIDExaDN2MmgtM3YzaC0ydi0zaC0zdi0yaDNWOGgydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRpdGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDR2M2g1LjV2MTJoM1Y3SDE5VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR5cGVTcGVjaW1lbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTMuMzcgMTIuNS0uOC0yLjNIMTIuMmwtLjgyIDIuM0g5LjgxbDMuMzgtOWgxLjYxbDMuMzggOWgtMS41NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuOTYgNy4xNy0xLjMxIDMuNzJoMi42OWwtMS4zLTMuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsQWxpZ25Cb3R0b20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxM2gtM1YzaC0ydjEwSDhsNCA0IDQtNHpNNCAxOXYyaDE2di0ySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsQWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE5aDN2NGgydi00aDNsLTQtNC00IDR6bTgtMTRoLTNWMWgtMnY0SDhsNCA0IDQtNHpNNCAxMXYyaDE2di0ySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsQWxpZ25Ub3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExaDN2MTBoMlYxMWgzbC00LTQtNCA0ek00IDN2MmgxNlYzSDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsRGlzdHJpYnV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDJ2MkgyVjJoMjB6TTcgMTAuNXYzaDEwdi0zSDd6TTIgMjB2MmgyMHYtMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXcmFwVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTloNnYtMkg0djJ6TTIwIDVINHYyaDE2VjV6bS0zIDZINHYyaDEzLjI1YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMkgxNXYtMmwtMyAzIDMgM3YtMmgyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcHByb3ZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTZ2NmgxNnYtNmMwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnptMTQgMkg2di0yaDEydjJ6TTEyIDJDOS4yNCAyIDcgNC4yNCA3IDdsNSA3IDUtN2MwLTIuNzYtMi4yNC01LTUtNXptMCA5TDkgN2MwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzbC0zIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF0dGFjaEVtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTBWNGMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0xLjk5LjktMS45OSAyTDEgMTZjMCAxLjEuOSAyIDIgMmgxMXYtNWMwLTEuNjYgMS4zNC0zIDMtM2g0em0tMTAgMUwzIDZWNGw4IDUgOC01djJsLTggNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTR2NGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ2LTQuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYxOGgydi00LjVhMi41IDIuNSAwIDAgMC01IDBWMThjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXR0YWNobWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMi41QzIgOS40NiA0LjQ2IDcgNy41IDdIMThjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDRIOS41YTIuNSAyLjUgMCAwIDEgMC01SDE3djJIOS40MWMtLjU1IDAtLjU1IDEgMCAxSDE4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMkg3LjVDNS41NyA5IDQgMTAuNTcgNCAxMi41UzUuNTcgMTYgNy41IDE2SDE3djJINy41QzQuNDYgMTggMiAxNS41NCAyIDEyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNC41IDE0SDhjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTNsLjE0LjAxQTMuOTggMy45OCAwIDAgMSAxMiA3YzIuMjEgMCA0IDEuNzkgNCA0aC41YTIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZERvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTEwIDE3bC0zLjUtMy41IDEuNDEtMS40MUwxMCAxNC4xNyAxNS4xOCA5bDEuNDEgMS40MUwxMCAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTcgMTNsLTUgNS01LTVoM1Y5aDR2NGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0Yy0xLjQ4IDAtMi44NS40My00LjAxIDEuMTdsMS40NiAxLjQ2YTUuNDk3IDUuNDk3IDAgMCAxIDguMDUgNC44N3YuNUgxOWMxLjY2IDAgMyAxLjM0IDMgMyAwIDEuMTMtLjY0IDIuMTEtMS41NiAyLjYybDEuNDUgMS40NUMyMy4xNiAxOC4xNiAyNCAxNi42OCAyNCAxNWMwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMyA1LjI3bDIuNzUgMi43NEMyLjU2IDguMTUgMCAxMC43NyAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDExLjczbDIgMkwyMSAyMC43MyA0LjI3IDQgMyA1LjI3ek03LjczIDEwbDggOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aDEuNzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNEM5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoLjcxQzcuMzcgNy42OSA5LjQ4IDYgMTIgNmMzLjA0IDAgNS41IDIuNDYgNS41IDUuNXYuNUgxOWMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWRTeW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuNSAxNC45OGMtLjAyIDAtLjAzIDAtLjA1LjAxQTMuNDkgMy40OSAwIDAgMCAxOCAxMmMtMS40IDAtMi42LjgzLTMuMTYgMi4wMkEyLjk4OCAyLjk4OCAwIDAgMCAxMiAxN2MwIDEuNjYgMS4zNCAzIDMgM2w2LjUtLjAyYTIuNSAyLjUgMCAwIDAgMC01ek0xMCA0LjI2djIuMDlDNy42NyA3LjE4IDYgOS4zOSA2IDEyYzAgMS43Ny43OCAzLjM0IDIgNC40NFYxNGgydjZINHYtMmgyLjczQTcuOTQyIDcuOTQyIDAgMCAxIDQgMTJjMC0zLjczIDIuNTUtNi44NSA2LTcuNzR6TTIwIDZoLTIuNzNhNy45OCA3Ljk4IDAgMCAxIDIuNjYgNWgtMi4wMmMtLjIzLTEuMzYtLjkzLTIuNTUtMS45MS0zLjQ0VjEwaC0yVjRoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbG91ZFVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTQgMTN2NGgtNHYtNEg3bDUtNSA1IDVoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcmVhdGVOZXdGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlmZmVyZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDIzSDRjLTEuMSAwLTItLjktMi0yVjdoMnYxNGgxNHYyek0xNSAxSDhjLTEuMSAwLTEuOTkuOS0xLjk5IDJMNiAxN2MwIDEuMS44OSAyIDEuOTkgMkgxOWMxLjEgMCAyLS45IDItMlY3bC02LTZ6bTEuNSAxNGgtNnYtMmg2djJ6bTAtNmgtMnYyaC0yVjloLTJWN2gyVjVoMnYyaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG93bmxvYWREb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTMgNS40MSAxOC43MiA0bC05LjE5IDkuMTktNC4yNS00LjI0LTEuNDEgMS40MSA1LjY2IDUuNjZ6TTUgMThoMTR2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb3dubG9hZEZvck9mZmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0tMSA4VjZoMnY0aDNsLTQgNC00LTRoM3ptNiA3SDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIwaDE0di0ySDV2MnpNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvd25sb2FkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzIgNC4yNkE5Ljk0OSA5Ljk0OSAwIDAgMCAxMyAyLjA1djIuMDJjMS40Ni4xOCAyLjc5Ljc2IDMuOSAxLjYybDEuNDItMS40M3pNMTkuOTMgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMyTDE4LjMxIDcuMWE3Ljk0MSA3Ljk0MSAwIDAgMSAxLjYyIDMuOXptLTEuNjIgNS45IDEuNDMgMS40M2E5Ljk4MSA5Ljk4MSAwIDAgMCAyLjIxLTUuMzJoLTIuMDJhNy45NDUgNy45NDUgMCAwIDEtMS42MiAzLjg5ek0xMyAxOS45M3YyLjAyYzIuMDEtLjIgMy44NC0xIDUuMzItMi4yMWwtMS40My0xLjQzYy0xLjEuODYtMi40MyAxLjQ0LTMuODkgMS42MnpNMTMgMTJWN2gtMnY1SDdsNSA1IDUtNWgtNHptLTIgNy45M3YyLjAyYy01LjA1LS41LTktNC43Ni05LTkuOTVzMy45NS05LjQ1IDktOS45NXYyLjAyQzcuMDUgNC41NiA0IDcuOTIgNCAxMnMzLjA1IDcuNDQgNyA3LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUZpbGVNb3ZlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWOGgxNnYxMHptLTguMDEtOS0xLjQxIDEuNDFMMTIuMTYgMTJIOHYyaDQuMTZsLTEuNTkgMS41OUwxMS45OSAxNyAxNiAxMy4wMSAxMS45OSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUZpbGVNb3ZlUnRsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTggMTEtNC00IDQtNHYzaDR2MmgtNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUZpbGVNb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNiAxMnYtM2gtNHYtNGg0VjhsNSA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJpdmVGaWxlUmVuYW1lT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjQxIDUuOCAxNy4yIDQuNTljLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC0yLjY4IDIuNjhMMyAxNS45NlYyMGg0LjA0bDguNzQtOC43NCAyLjYzLTIuNjNjLjc5LS43OC43OS0yLjA1IDAtMi44M3pNNi4yMSAxOEg1di0xLjIxbDguNjYtOC42NiAxLjIxIDEuMjFMNi4yMSAxOHpNMTEgMjBsNC00aDZ2NEgxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJpdmVGb2xkZXJVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjhoMTZ2MTB6TTggMTMuMDFsMS40MSAxLjQxTDExIDEyLjg0VjE3aDJ2LTQuMTZsMS41OSAxLjU5TDE2IDEzLjAxIDEyLjAxIDkgOCAxMy4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZURvd25sb2FkRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxOGgxNHYySDV2LTJ6bTQuNi0yLjdMNSAxMC43bDItMS45IDIuNiAyLjZMMTcgNGwyIDItOS40IDkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZURvd25sb2FkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2LjE3VjNoNnY2aDRsLTMuNTkgMy41OUw5IDYuMTd6bTEyLjE5IDE1LjAyTDIuODEgMi44MSAxLjM5IDQuMjIgNi4xNyA5SDVsNyA3IC41OS0uNTlMMTUuMTcgMThINXYyaDEyLjE3bDIuNjEgMi42MSAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbGVEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjg5IDIgMS45OSAySDE1di04aDVWOGwtNi02em0tMSA3VjMuNUwxOC41IDlIMTN6bTQgMTIuNjZWMTZoNS42NnYyaC0yLjI0bDIuOTUgMi45NS0xLjQxIDEuNDFMMTkgMTkuNDF2Mi4yNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZVVwbG9hZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsNC43IDQuNjlMNSAxMGgyLjE3TDkgMTEuODNWMTZoNC4xN2wyIDJINXYyaDEyLjE3bDIuNjEgMi42MXpNMTUgMTBoNGwtNy03LTMuMDkgMy4wOUwxNSAxMi4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsZVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA2SDF2MTNjMCAxLjEuOSAyIDIgMmgxN3YtMkgzVjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDRoLTdsLTItMkg3Yy0xLjEgMC0xLjk5LjktMS45OSAyTDUgMTVjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJEZWxldGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA4djEwYzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0ybC4wMS0xMmMwLTEuMS44OS0yIDEuOTktMmg2bDIgMmg4YzEuMSAwIDIgLjkgMiAyem0tNS41IDJWOWgtMnYxSDEydjEuNWgxdjRjMCAuODMuNjcgMS41IDEuNSAxLjVoMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTRoMVYxMGgtMi41em0wIDUuNWgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvbGRlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg2LjgzbDE0LjkzIDE0LjkzYy4xNS0uMjguMjQtLjU5LjI0LS45M1Y4YzAtMS4xLS45LTItMi0yek0yLjEgMi4xLjY5IDMuNTFsMS41NiAxLjU2Yy0uMTUuMjgtLjI0LjU5LS4yNC45M0wyIDE4YzAgMS4xLjkgMiAyIDJoMTMuMTdsMy4zMSAzLjMxIDEuNDEtMS40MUwyLjEgMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY4aDE2djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJTaGFyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTUgM2MxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTQgOGgtOHYtMWMwLTEuMzMgMi42Ny0yIDQtMnM0IC42NyA0IDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9sZGVyWmlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yIDZoLTJ2MmgydjJoLTJ2MmgtMnYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOGgydjJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJoLThsLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ybWF0T3ZlcmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzdjJINVYzaDE0em0tNyA0Yy0zLjg3IDAtNyAzLjEzLTcgN3MzLjEzIDcgNyA3IDctMy4xMyA3LTctMy4xMy03LTctN3ptMCAxMS41Yy0yLjQ5IDAtNC41LTIuMDEtNC41LTQuNVM5LjUxIDkuNSAxMiA5LjVzNC41IDIuMDEgNC41IDQuNS0yLjAxIDQuNS00LjUgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmlkVmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjhoOFYzSDN6bTYgNkg1VjVoNHY0em0tNiA0djhoOHYtOEgzem02IDZINXYtNGg0djR6bTQtMTZ2OGg4VjNoLTh6bTYgNmgtNFY1aDR2NHptLTYgNHY4aDh2LThoLTh6bTYgNmgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgMy0xLjY3IDEuNjdMMTguNjcgMyAxNyA0LjY3IDE1LjMzIDNsLTEuNjYgMS42N0wxMiAzbC0xLjY3IDEuNjdMOC42NyAzIDcgNC42NyA1LjMzIDMgMy42NyA0LjY3IDIgM3YxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjN6TTExIDE5SDR2LTZoN3Y2em05IDBoLTd2LTJoN3Yyem0wLTRoLTd2LTJoN3Yyem0wLTRINFY4aDE2djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlcXVlc3RRdW90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptMSAxMGgtNHYxaDNjLjU1IDAgMSAuNDUgMSAxdjNjMCAuNTUtLjQ1IDEtMSAxaC0xdjFoLTJ2LTFIOXYtMmg0di0xaC0zYy0uNTUgMC0xLS40NS0xLTF2LTNjMC0uNTUuNDUtMSAxLTFoMVY5aDJ2MWgydjJ6bS0yLTRWMy41TDE3LjUgOEgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnVsZUZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yek03LjgzIDE2IDUgMTMuMTdsMS40MS0xLjQxIDEuNDEgMS40MSAzLjU0LTMuNTQgMS40MSAxLjQxTDcuODMgMTZ6bTkuNTgtM0wxOSAxNC41OSAxNy41OSAxNiAxNiAxNC40MSAxNC40MSAxNiAxMyAxNC41OSAxNC41OSAxMyAxMyAxMS40MSAxNC40MSAxMCAxNiAxMS41OSAxNy41OSAxMCAxOSAxMS40MSAxNy40MSAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU25pcHBldEZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljg4IDEwLjUgMS42MiAxLjYydjMuMzhoLTN2LTVoMS4zOHpNMjIgOHYxMGMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMmwuMDEtMTJjMC0xLjEuODktMiAxLjk5LTJoNmwyIDJoOGMxLjEgMCAyIC45IDIgMnptLTMgMy41TDE2LjUgOUgxM3Y4aDZ2LTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGV4dFNuaXBwZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC40MSA4LjQxLTQuODMtNC44M2MtLjM3LS4zNy0uODgtLjU4LTEuNDEtLjU4SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOS44M2MwLS41My0uMjEtMS4wNC0uNTktMS40MnpNNyA3aDd2Mkg3Vjd6bTEwIDEwSDd2LTJoMTB2MnptMC00SDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9waWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTYgMTBINnYtMmg4djJ6bTQtNEg2di0yaDEydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFVwbG9hZEZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoN3Y1aDV2MTF6TTggMTUuMDFsMS40MSAxLjQxTDExIDE0Ljg0VjE5aDJ2LTQuMTZsMS41OSAxLjU5TDE2IDE1LjAxIDEyLjAxIDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIwaDE0di0ySDV2MnptMC0xMGg0djZoNnYtNmg0bC03LTctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3Jrc3BhY2VzRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02LTEwQzkuOCAzIDggNC44IDggN3MxLjggNCA0IDQgNC0xLjggNC00LTEuOC00LTQtNHptNiAxMGMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3Jrc3BhY2VzT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMmMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02LThjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMkM5LjggMyA4IDQuOCA4IDdzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYgMTJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMmMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3Jrc3BhY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02LTEwQzkuOCAzIDggNC44IDggN3MxLjggNCA0IDQgNC0xLjggNC00LTEuOC00LTQtNHptNiAxMGMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGZTY2FubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoLTFWNEg2djhINWMtMS42NiAwLTMgMS4zNC0zIDN2NWgyMHYtNWMwLTEuNjYtMS4zNC0zLTMtM3ptLTMgMEg4VjZoOHY2em0yIDVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJvd3Nlck5vdFN1cHBvcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZ2MTAuNWwxLjk1IDEuOTVjLjAzLS4xNS4wNS0uMy4wNS0uNDVWNmMwLTEuMS0uOS0yLTItMkg2LjVsMiAySDE5ek0zLjIyIDMuMzIgMS45NSA0LjU5IDMgNS42NFYxOGMwIDEuMS45IDIgMiAyaDEyLjM2bDIuMDYgMi4wNiAxLjI3LTEuMjdMMy4yMiAzLjMyek0xNSAxOEg1VjcuNjRMMTUuMzYgMThIMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyb3dzZXJVcGRhdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTN2M2MwIDEuMS0uOSAyLTIgMmgtM2wxIDF2Mkg2di0ybDEtMUg0Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoOHYySDR2MTFoMTZ2LTNoMnptLTcgMi01LTVoNFYzaDJ2N2g0bC01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhc3RDb25uZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIixcIm9wYWNpdHlcIjpcIi4xXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTh2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTR2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xOC03SDV2MS42M2MzLjk2IDEuMjggNy4wOSA0LjQxIDguMzcgOC4zN0gxOVY3ek0xIDEwdjJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0yMC03SDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXN0Rm9yRWR1Y2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek0xIDE4djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC00djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMC00djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0xMCAxLjA5djJMMTQuNSAxNWwzLjUtMS45MXYtMkwxNC41IDEzIDExIDExLjA5ek0xNC41IDYgOSA5bDUuNSAzTDIwIDlsLTUuNS0zelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCIsXCJvcGFjaXR5XCI6XCIuMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek0xIDE4djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC00djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMC00djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb21wdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMkgwdjJoMjR2LTJoLTR6TTQgNmgxNnYxMEg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbm5lY3RlZFR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjVoMTh2MTJ6TTQgMTR2MmgyYzAtMS4xMS0uODktMi0yLTJ6bTAtM3YxLjQzYzEuOTcgMCAzLjU3IDEuNiAzLjU3IDMuNTdIOWMwLTIuNzYtMi4yNC01LTUtNXptMC0zdjEuNDVjMy42MSAwIDYuNTUgMi45MyA2LjU1IDYuNTVIMTJjMC00LjQyLTMuNTktOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnZleW9yQmVsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE1SDVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNoMTRjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTN6bTAgNEg1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDE0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxek05IDR2OGMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMWgtOGMtLjU1IDAtMSAuNDUtMSAxem03IDRoLTRWNi4wMmg0Vjh6TTIgOS4wMmg0Ljk0djEuOTFIMlY5LjAyem0yLjAxLTNoMi45M3YxLjk2SDQuMDFWNi4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVza3RvcE1hYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmg2bC0yIDJ2MWg4di0xbC0yLTJoNmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlc2t0b3BXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDZ2Mkg4djJoOHYtMmgtMnYtMmg2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2ZWxvcGVyQm9hcmRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjgzIDVIMTh2MTAuMTdMMTkuODMgMTdIMjJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDJWN2gtMlY1YzAtMS4xLS45LTItMi0ySDUuODNsMiAyek0xMiA5LjE3VjdoNHYzaC0zLjE3TDEyIDkuMTd6TTkuODMgN0gxMXYxLjE3TDkuODMgN3ptNCA0SDE2djIuMTdMMTMuODMgMTF6TTE4IDIxYy4wNiAwIC4xMSAwIC4xNi0uMDFsMi4zMiAyLjMyIDEuNDEtMS40MUwyLjEgMi4xLjY5IDMuNTFsMS4zMiAxLjMyQzIgNC44OSAyIDQuOTQgMiA1djE0YzAgMS4xLjkgMiAyIDJoMTR6TTQgMTlWNi44M2wyIDJWMTJoMy4xN2wxIDFINnY0aDV2LTMuMTdsMSAxVjE3aDIuMTdsMiAySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmVsb3BlckJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5VjdoLTJWNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi0yaDJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDJ6bS00IDEwSDRWNWgxNHYxNHpNNiAxM2g1djRINnptNi02aDR2M2gtNHpNNiA3aDV2NUg2em02IDRoNHY2aC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERldmljZUh1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDE2LTQtNFY4LjgyQzE0LjE2IDguNCAxNSA3LjMgMTUgNmMwLTEuNjYtMS4zNC0zLTMtM1M5IDQuMzQgOSA2YzAgMS4zLjg0IDIuNCAyIDIuODJWMTJsLTQgNEgzdjVoNXYtMy4wNWw0LTQuMiA0IDQuMlYyMWg1di01aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXZpY2VVbmtub3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMThIN1Y1aDEwdjE0ek0xMiA2LjcyYy0xLjk2IDAtMy41IDEuNTItMy41IDMuNDdoMS43NWMwLS45My44Mi0xLjc1IDEuNzUtMS43NXMxLjc1LjgyIDEuNzUgMS43NWMwIDEuNzUtMi42MyAxLjU3LTIuNjMgNC40NWgxLjc2YzAtMS45NiAyLjYyLTIuMTkgMi42Mi00LjQ1IDAtMS45Ni0xLjU0LTMuNDctMy41LTMuNDd6bS0uODggOC44aDEuNzZ2MS43NmgtMS43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGV2aWNlc090aGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA2aDE4VjRIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg0di0ySDNWNnptMTAgNkg5djEuNzhjLS42MS41NS0xIDEuMzMtMSAyLjIycy4zOSAxLjY3IDEgMi4yMlYyMGg0di0xLjc4Yy42MS0uNTUgMS0xLjM0IDEtMi4yMnMtLjM5LTEuNjctMS0yLjIyVjEyem0tMiA1LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek0yMiA4aC02Yy0uNSAwLTEgLjUtMSAxdjEwYzAgLjUuNSAxIDEgMWg2Yy41IDAgMS0uNSAxLTFWOWMwLS41LS41LTEtMS0xem0tMSAxMGgtNHYtOGg0djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDIzaDh2LTJIOHYyem04LTIxLjk5TDggMWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE1SDhWNWg4djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFYXJidWRzQmF0dGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDdoLTFWNmgtMnYxaC0xYy0uNTUgMC0xIC40NS0xIDF2OWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMVY4YzAtLjU1LS40NS0xLTEtMXpNMTAuNjIgNkM4Ljc2IDYgNy4yNSA3LjUxIDcuMjUgOS4zOHY1LjI1YzAgMS4wNC0uODQgMS44OC0xLjg4IDEuODhzLTEuODctLjg1LTEuODctMS44OXYtNC43Yy4xNi4wNS4zMy4wOC41LjA4IDEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMnY2LjYyQzIgMTYuNDkgMy41MSAxOCA1LjM4IDE4czMuMzgtMS41MSAzLjM4LTMuMzhWOS4zOGMwLTEuMDQuODQtMS44OCAxLjg4LTEuODhzMS44OC44NCAxLjg4IDEuODh2NC43Yy0uMTgtLjA1LS4zNS0uMDgtLjUyLS4wOC0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMlY5LjM4QzE0IDcuNTEgMTIuNDkgNiAxMC42MiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFYXJidWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yIDMuMDFDNC40NCAyLjg5IDMgNC40MiAzIDYuMTlWMTZjMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNVY4YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDN2N2gtLjgzYy0xLjYxIDAtMy4wNiAxLjE4LTMuMTcgMi43OUEzIDMgMCAwIDAgMTcuOCAyMWMxLjc2LjEyIDMuMi0xLjQyIDMuMi0zLjE4VjhjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDV2OGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtM1Y5aC44M0M3LjQ0IDkgOC44OSA3LjgyIDkgNi4yMWMuMTEtMS42OC0xLjE3LTMuMS0yLjgtMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JrbGlmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE3djJoLTVWM2gydjE0aDN6bS02LjI3LTEuODVjLjE3LjQyLjI3Ljg3LjI3IDEuMzUgMCAxLjkzLTEuNTcgMy41LTMuNSAzLjUtMS40IDAtMi42LS44Mi0zLjE2LTJINi44M0EyLjk5IDIuOTkgMCAwIDEgNCAyMGMtMS42NiAwLTMtMS4zNC0zLTMgMC0uODkuMzktMS42OSAxLTIuMjRWMTBoMlY0aDhsNC43MyAxMS4xNXpNNSAxN2MwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xem04LjY1LTQtMi45Ny03SDZ2NGwyLjkyIDNoNC43M3pNMTUgMTYuNWMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRnJvbnRMb2FkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS41IDYuNS0xLjkxIDEuOTFjLS4zOC4zOC0uNTkuODktLjU5IDEuNDJWMTFoLTFWN2MwLTEuNjYtMS4zNC0zLTMtM0g4djVIM2MtMS4xIDAtMiAuOS0yIDJ2NS44NWMwIDEuNTggMS4xNiAzLjAxIDIuNzQgMy4xNGEyLjk5IDIuOTkgMCAwIDAgMy4wNy0xLjk4bDQuMzctLjAxYTIuOTc5IDIuOTc5IDAgMCAwIDMuNDEgMS45NCAzLjAxMyAzLjAxMyAwIDAgMCAyLjM1LTIuMzljLjItMS4xMS0uMjItMi4xMS0uOTUtMi43N1YxM2gxYzAgMS4xLjkgMiAyIDJoNUwxOS41IDYuNXpNNCAxOGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem02LTEyaDNjLjU1IDAgMSAuNDUgMSAxdjRoLTRWNnptNCAxMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHYW1lcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNy41VjJIOXY1LjVsMyAzIDMtM3pNNy41IDlIMnY2aDUuNWwzLTMtMy0zek05IDE2LjVWMjJoNnYtNS41bC0zLTMtMyAzek0xNi41IDlsLTMgMyAzIDNIMjJWOWgtNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFkcGhvbmVzQmF0dGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDdoLTFWNmgtMnYxaC0xYy0uNTUgMC0xIC40NS0xIDF2OWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMVY4YzAtLjU1LS40NS0xLTEtMXpNOCA2Yy0zLjMxIDAtNiAyLjY5LTYgNnY0YzAgMS4xLjkgMiAyIDJoMnYtNUgzLjV2LTFjMC0yLjQ4IDIuMDItNC41IDQuNS00LjVzNC41IDIuMDIgNC41IDQuNXYxSDEwdjVoMmMxLjEgMCAyLS45IDItMnYtNGMwLTMuMzEtMi42OS02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVhZHBob25lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNhOSA5IDAgMCAwLTkgOXY3YzAgMS4xLjkgMiAyIDJoNHYtOEg1di0xYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDd2MWgtNHY4aDRjMS4xIDAgMi0uOSAyLTJ2LTdhOSA5IDAgMCAwLTktOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVhZHNldE1pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCIsXCJvcGFjaXR5XCI6XCIuMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxYTkgOSAwIDAgMC05IDl2N2MwIDEuNjYgMS4zNCAzIDMgM2gzdi04SDV2LTJjMC0zLjg3IDMuMTMtNyA3LTdzNyAzLjEzIDcgN3YyaC00djhoNHYxaC03djJoNmMxLjY2IDAgMy0xLjM0IDMtM1YxMGE5IDkgMCAwIDAtOS05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFkc2V0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzMuODcgMCA3IDMuMTMgNyA3djJoLTIuOTJMMjEgMTcuOTJWMTFhOSA5IDAgMCAwLTktOWMtMS45NSAwLTMuNzYuNjItNS4yMyAxLjY4bDEuNDQgMS40NEE2LjkxNCA2LjkxNCAwIDAgMSAxMiA0ek0yLjI3IDEuNzIgMSAzbDMuMzMgMy4zMkE4Ljg5OSA4Ljg5OSAwIDAgMCAzIDExdjdjMCAxLjY2IDEuMzQgMyAzIDNoM3YtOEg1di0yYzAtMS4xNy4yOS0yLjI2Ljc5LTMuMjJMMTUgMTd2NGgzYy4zIDAgLjU5LS4wNi44Ni0uMTRMMjEgMjNsMS4yNy0xLjI3LTIwLTIwLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIixcIm9wYWNpdHlcIjpcIi4xXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDFhOSA5IDAgMCAwLTkgOXY3YzAgMS42NiAxLjM0IDMgMyAzaDN2LThINXYtMmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3djJoLTR2OGgzYzEuNjYgMCAzLTEuMzQgMy0zdi03YTkgOSAwIDAgMC05LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvbWVNYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1SDVDMi43OSA1IDEgNi43OSAxIDl2NWMwIDIuMjEgMS43OSA0IDQgNGgydjFoMTB2LTFoMmMyLjIxIDAgNC0xLjc5IDQtNFY5YzAtMi4yMS0xLjc5LTQtNC00em0yIDljMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvbWVNaW5pIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNUM0LjE5IDUgMiA5LjQ4IDIgMTJjMCAzLjg2IDMuMTMgNyA2Ljk5IDdoNi4wMkMxNy43IDE5IDIyIDE2LjkyIDIyIDEyYzAgMCAwLTctMTAtN3ptMCAyYzcuNjQgMCA3Ljk5IDQuNTEgOCA1SDRjMC0uMi4wOS01IDgtNXptMi44NiAxMEg5LjE0Yy0yLjEgMC0zLjkyLTEuMjQtNC43MS0zaDE1LjE1Yy0uOCAxLjc2LTIuNjIgMy00LjcyIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNEgzYy0xLjEgMC0yIC45LTIgMnYxM2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTcgMTJ2Mkg1di0yaDJ6bS0yLTJWOGgydjJINXptNiAydjJIOXYtMmgyem0tMi0yVjhoMnYySDl6bTcgNnYxSDh2LTFoOHptLTEtNHYyaC0ydi0yaDJ6bS0yLTJWOGgydjJoLTJ6bTQgNHYtMmgydjJoLTJ6bTItNGgtMlY4aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRBcnJvd0Rvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgOC41OSAxMiAxMy4xN2w0LjU5LTQuNThMMTggMTBsLTYgNi02LTYgMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZEFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDEgMTYuNTkgMTAuODMgMTJsNC41OC00LjU5TDE0IDZsLTYgNiA2IDYgMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZEFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNTkgMTYuNTkgMTMuMTcgMTIgOC41OSA3LjQxIDEwIDZsNiA2LTYgNi0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgMTUuNDEgMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZEJhY2tzcGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExSDYuODNsMy41OC0zLjU5TDkgNmwtNiA2IDYgNiAxLjQxLTEuNDFMNi44MyAxM0gyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRDYXBzbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDguNDEgMTYuNTkgMTMgMTggMTEuNTlsLTYtNi02IDZMNy40MSAxMyAxMiA4LjQxek02IDE4aDEydi0ySDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRDb21tYW5kS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAzQzE1LjU3IDMgMTQgNC41NyAxNCA2LjVWOGgtNFY2LjVDMTAgNC41NyA4LjQzIDMgNi41IDNTMyA0LjU3IDMgNi41IDQuNTcgMTAgNi41IDEwSDh2NEg2LjVDNC41NyAxNCAzIDE1LjU3IDMgMTcuNVM0LjU3IDIxIDYuNSAyMXMzLjUtMS41NyAzLjUtMy41VjE2aDR2MS41YzAgMS45MyAxLjU3IDMuNSAzLjUgMy41czMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNUgxNnYtNGgxLjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTkuNDMgMyAxNy41IDN6TTE2IDhWNi41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzE4LjMzIDggMTcuNSA4SDE2ek02LjUgOEM1LjY3IDggNSA3LjMzIDUgNi41UzUuNjcgNSA2LjUgNSA4IDUuNjcgOCA2LjVWOEg2LjV6bTMuNSA2di00aDR2NGgtNHptNy41IDVjLS44MyAwLTEuNS0uNjctMS41LTEuNVYxNmgxLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNXptLTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDE2IDYuNSAxNkg4djEuNWMwIC44My0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkQ29udHJvbEtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTUgMTIgMS40MSAxLjQxTDEyIDcuODNsNS41OSA1LjU4TDE5IDEybC03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkRG91YmxlQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNi40MSAxNi41OSA1IDEyIDkuNTggNy40MSA1IDYgNi40MWw2IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDEzLTEuNDEtMS40MUwxMiAxNi4xN2wtNC41OS00LjU4TDYgMTNsNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZERvdWJsZUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjU5IDE4IDE5IDE2LjU5IDE0LjQyIDEyIDE5IDcuNDEgMTcuNTkgNmwtNiA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSAxOCAxLjQxLTEuNDFMNy44MyAxMmw0LjU4LTQuNTlMMTEgNmwtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZERvdWJsZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQxIDYgNSA3LjQxIDkuNTggMTIgNSAxNi41OSA2LjQxIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgNi0xLjQxIDEuNDFMMTYuMTcgMTJsLTQuNTggNC41OUwxMyAxOGw2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkRG91YmxlQXJyb3dVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTcuNTkgNy40MSAxOSAxMiAxNC40MiAxNi41OSAxOSAxOCAxNy41OWwtNi02elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02IDExIDEuNDEgMS40MUwxMiA3LjgzbDQuNTkgNC41OEwxOCAxMWwtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZEhpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxNWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS05IDNoMnYyaC0yVjZ6bTAgM2gydjJoLTJWOXpNOCA2aDJ2Mkg4VjZ6bTAgM2gydjJIOFY5em0tMSAySDVWOWgydjJ6bTAtM0g1VjZoMnYyem05IDdIOHYtMmg4djJ6bTAtNGgtMlY5aDJ2MnptMC0zaC0yVjZoMnYyem0zIDNoLTJWOWgydjJ6bTAtM2gtMlY2aDJ2MnptLTcgMTUgNC00SDhsNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLZXlib2FyZE9wdGlvbktleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDVoNnYyaC02ek05IDVIM3YyaDQuODVsNi45MiAxMkgyMXYtMmgtNS4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2V5Ym9hcmRSZXR1cm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3djRINS44M2wzLjU4LTMuNTlMOCA2bC02IDYgNiA2IDEuNDEtMS40MUw1LjgzIDEzSDIxVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkVGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNTkgNy40MSAxNS4xNyAxMUgxdjJoMTQuMTdsLTMuNTkgMy41OUwxMyAxOGw2LTYtNi02LTEuNDEgMS40MXpNMjAgNnYxMmgyVjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkVm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA2YzAtMS42Ni0xLjM0LTMtMy0zUzkgNC4zNCA5IDZ2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE1IDYuNyAxMkg1YzAgMy40MiAyLjcyIDYuMjMgNiA2LjcyVjIyaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtleWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxN2MwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS05IDNoMnYyaC0yVjh6bTAgM2gydjJoLTJ2LTJ6TTggOGgydjJIOFY4em0wIDNoMnYySDh2LTJ6bS0xIDJINXYtMmgydjJ6bTAtM0g1VjhoMnYyem05IDdIOHYtMmg4djJ6bTAtNGgtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnptMyAzaC0ydi0yaDJ2MnptMC0zaC0yVjhoMnYyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhcHRvcENocm9tZWJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOFYzSDJ2MTVIMHYyaDI0di0yaC0yem0tOCAwaC00di0xaDR2MXptNi0zSDRWNWgxNnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGFwdG9wTWFjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAySDBjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAyLS45IDItMmgtNHpNNCA1aDE2djExSDRWNXptOCAxNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXB0b3BXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTh2LTFjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAydjFIMHYyaDI0di0yaC00ek00IDVoMTZ2MTBINFY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXB0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJIMHYyaDI0di0yaC00ek00IDZoMTZ2MTBINFY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZW1vcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA5SDl2Nmg2Vjl6bS0yIDRoLTJ2LTJoMnYyem04LTJWOWgtMlY3YzAtMS4xLS45LTItMi0yaC0yVjNoLTJ2MmgtMlYzSDl2Mkg3Yy0xLjEgMC0yIC45LTIgMnYySDN2MmgydjJIM3YyaDJ2MmMwIDEuMS45IDIgMiAyaDJ2Mmgydi0yaDJ2Mmgydi0yaDJjMS4xIDAgMi0uOSAyLTJ2LTJoMnYtMmgtMnYtMmgyem0tNCA2SDdWN2gxMHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9uaXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDNsLTEgMXYyaDEydi0ybC0xLTFoM2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEzSDRWNWgxNnYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxLjA3VjloN2MwLTQuMDgtMy4wNS03LjQ0LTctNy45M3pNNCAxNWMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04di00SDR2NHptNy0xMy45M0M3LjA1IDEuNTYgNCA0LjkyIDQgOWg3VjEuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTh2NGgzdi0yaDUuNXYyaDN2LTJIMTl2Mmgzdi00ek0xOCAySDZjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTFWM2MwLS41NS0uNDUtMS0xLTF6bS0zIDZIOVY2aDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMUg4QzYuMzQgMSA1IDIuMzQgNSA0djE2YzAgMS42NiAxLjM0IDMgMyAzaDhjMS42NiAwIDMtMS4zNCAzLTNWNGMwLTEuNjYtMS4zNC0zLTMtM3ptLTIgMjBoLTR2LTFoNHYxem0zLjI1LTNINi43NVY0aDEwLjV2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lSXBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxaC04QTIuNSAyLjUgMCAwIDAgNSAzLjV2MTdBMi41IDIuNSAwIDAgMCA3LjUgMjNoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTE3QTIuNSAyLjUgMCAwIDAgMTUuNSAxem0tNCAyMWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQuNS00SDdWNGg5djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZWxpbmtPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNlY0SDYuODJsMiAySDIyek0xLjkyIDEuNjUuNjUgMi45MmwxLjgyIDEuODJDMi4xOCA1LjA4IDIgNS41MiAyIDZ2MTFIMHYzaDE3LjczbDIuMzUgMi4zNSAxLjI3LTEuMjdMMy44OSAzLjYyIDEuOTIgMS42NXpNNCA2LjI3IDE0LjczIDE3SDRWNi4yN3pNMjMgOGgtNmMtLjU1IDAtMSAuNDUtMSAxdjQuMThsMiAyVjEwaDR2N2gtMi4xOGwzIDNIMjNjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZWxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZoMThWNEg0Yy0xLjEgMC0yIC45LTIgMnYxMUgwdjNoMTR2LTNINFY2em0xOSAyaC02Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6bS0xIDloLTR2LTdoNHY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQb2ludE9mU2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDJIN2MtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgNEg3VjRoMTB2MnptMyAxNkg0Yy0xLjEgMC0yLS45LTItMnYtMWgyMHYxYzAgMS4xLS45IDItMiAyem0tMS40Ny0xMS44MUEyLjAwOCAyLjAwOCAwIDAgMCAxNi43IDlINy4zYy0uNzkgMC0xLjUxLjQ3LTEuODMgMS4xOUwyIDE4aDIwbC0zLjQ3LTcuODF6TTkuNSAxNmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTMgNGgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTMgNGgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvd2VySW5wdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgOXYyaDE5VjlIMnptMCA2aDV2LTJIMnYyem03IDBoNXYtMkg5djJ6bTcgMGg1di0yaC01djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjIgNS45LjgtLjhDMTkuNiAzLjcgMTcuOCAzIDE2IDNzLTMuNi43LTUgMi4xbC44LjhDMTMgNC44IDE0LjUgNC4yIDE2IDQuMnMzIC42IDQuMiAxLjd6bS0uOS44Yy0uOS0uOS0yLjEtMS40LTMuMy0xLjRzLTIuNC41LTMuMyAxLjRsLjguOGMuNy0uNyAxLjYtMSAyLjUtMSAuOSAwIDEuOC4zIDIuNSAxbC44LS44ek0xOSAxM2gtMlY5aC0ydjRINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi00YzAtMS4xLS45LTItMi0yek04IDE4SDZ2LTJoMnYyem0zLjUgMGgtMnYtMmgydjJ6bTMuNSAwaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjggMTAuNyA0LjIgNWwtLjcgMS45TDE3LjYgMTJINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi01LjVjMC0uOC0uNS0xLjYtMS4yLTEuOHpNNyAxN0g1di0yaDJ2MnptMTIgMEg5di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlY3VyaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bTAgMTAuOTloN2MtLjUzIDQuMTItMy4yOCA3Ljc5LTcgOC45NFYxMkg1VjYuM2w3LTMuMTF2OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaW1DYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTkgNGMwLTEuMS0uODktMi0xLjk5LTJoLThMNCA4djEyYzAgMS4xLjkgMiAyIDJoMTIuMDFjMS4xIDAgMS45OS0uOSAxLjk5LTJsLS4wMS0xNnpNOSAxOUg3di0yaDJ2MnptOCAwaC0ydi0yaDJ2MnptLTgtNEg3di00aDJ2NHptNCA0aC0ydi00aDJ2NHptMC02aC0ydi0yaDJ2MnptNCAyaC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU21hcnREaXNwbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTkuNSAxNi41di05bDcgNC41LTcgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbWFydFNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVIM2MtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tMyAxMkg2VjdoMTJ2MTB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExLjI1aDEuNXYxLjVIMTV6TTEyLjUgMTEuMjVIMTR2MS41aC0xLjV6TTEwIDExLjI1aDEuNXYxLjVIMTB6TTcuNSAxMS4yNUg5djEuNUg3LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtYXJ0VG95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOVY3YzAtMS4xLS45LTItMi0yaC0zYzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDVINmMtMS4xIDAtMiAuOS0yIDJ2MmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM3Y0YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTRjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTN6TTcuNSAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzkuODMgMTMgOSAxM3MtMS41LS42Ny0xLjUtMS41ek0xNiAxN0g4di0yaDh2MnptLTEtNGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE0LjE3IDEwIDE1IDEwczEuNS42NyAxLjUgMS41UzE1LjgzIDEzIDE1IDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbWFydHBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGVha2VyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4yIDFIOS44QzguODEgMSA4IDEuODEgOCAyLjh2MTQuNGMwIC45OS44MSAxLjc5IDEuOCAxLjc5bDguNC4wMWMuOTkgMCAxLjgtLjgxIDEuOC0xLjhWMi44YzAtLjk5LS44MS0xLjgtMS44LTEuOHpNMTQgM2MxLjEgMCAyIC44OSAyIDJzLS45IDItMiAyLTItLjg5LTItMiAuOS0yIDItMnptMCAxMy41Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjEyLjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDVINHYxNmEyIDIgMCAwIDAgMiAyaDEwdi0ySDZWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BlYWtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDJIN2MtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAxLjk5IDIgMS45OUwxNyAyMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNSAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMmEyIDIgMCAxIDEgMC00em0wIDE2Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41OSA3LjQxIDE4LjE3IDExSDZ2MmgxMi4xN2wtMy41OSAzLjU5TDE2IDE4bDYtNi02LTYtMS40MSAxLjQxek0yIDZ2MTJoMlY2SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxldEFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAwSDZDNC4zNCAwIDMgMS4zNCAzIDN2MThjMCAxLjY2IDEuMzQgMyAzIDNoMTJjMS42NiAwIDMtMS4zNCAzLTNWM2MwLTEuNjYtMS4zNC0zLTMtM3ptLTQgMjJoLTR2LTFoNHYxem01LjI1LTNINC43NVYzaDE0LjV2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhYmxldE1hYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAwaC0xNEEyLjUgMi41IDAgMCAwIDIgMi41djE5QTIuNSAyLjUgMCAwIDAgNC41IDI0aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTlBMi41IDIuNSAwIDAgMCAxOC41IDB6bS03IDIzYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNy41LTRINFYzaDE1djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNmMwLTEuMS0uOS0yLTItMnptLTIgMTRINVY2aDE0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb3lzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNGMwLTEuOTUtMS40LTMuNTctMy4yNS0zLjkyTDE3LjQgNi4wNUEyLjk3OCAyLjk3OCAwIDAgMCAxNC41NiA0SDkuNDRDOC4xNSA0IDcgNC44MiA2LjYgNi4wNUw1LjgxIDguNCA0LjQxIDdsLjI5LS4yOUEuOTk2Ljk5NiAwIDEgMCAzLjI5IDUuM2wtMiAyQS45OTYuOTk2IDAgMSAwIDIuNyA4LjcxbC4zLS4zIDEuNzkgMS43OUMzLjE4IDEwLjcyIDIgMTIuMjIgMiAxNGMwIDEuNS44MyAyLjc5IDIuMDUgMy40OEEzIDMgMCAwIDAgNyAyMGMxLjMgMCAyLjQtLjg0IDIuODItMmg0LjM3Yy40MSAxLjE2IDEuNTEgMiAyLjgyIDJhMyAzIDAgMCAwIDIuOTUtMi41MkMyMS4xNyAxNi43OSAyMiAxNS41IDIyIDE0ek03IDE4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTQtOEg3LjQxbC0uMDItLjAyIDEuMS0zLjNBMSAxIDAgMCAxIDkuNDQgNkgxMXY0em0yLTRoMS41NmExIDEgMCAwIDEgLjk1LjY4bDEuMSAzLjMySDEzVjZ6bTQgMTJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJvbGxleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE0djJINFY0SDJWMmg0djEyaDE1ek01Ljk5IDE3QzQuODkgMTcgNCAxNy45IDQgMTlzLjg5IDIgMS45OSAyQzcuMSAyMSA4IDIwLjEgOCAxOXMtLjktMi0yLjAxLTJ6bTEzIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyUzIxIDIwLjEgMjEgMTlzLS45LTItMi4wMS0yek0xMyAxM0g3VjdoNnY2em03IDBoLTZWN2g2djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjVoMTh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvZ2FtZUFzc2V0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiAzLjMgNi4xM0MyLjU0IDYuNDEgMiA3LjE1IDIgOHY4YzAgMS4xLjkgMiAyIDJoMTEuMTdsNC42MSA0LjYxIDEuNDEtMS40MnpNOSAxM3YySDd2LTJINXYtMmgyVjkuODNMMTAuMTcgMTNIOXptMTEuNyA0Ljg3Yy43Ni0uMjggMS4zLTEuMDIgMS4zLTEuODdWOGMwLTEuMS0uOS0yLTItMkg4LjgzTDIwLjcgMTcuODd6TTE3LjUgOWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41LTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9nYW1lQXNzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMHYyNGgyNFYwSDB6bTIzIDE2YzAgMS4xLS45IDItMiAySDNjLTEuMSAwLTItLjktMi0yVjhjMC0xLjEuOS0yIDItMmgxOGMxLjEgMCAyIC45IDIgMnY4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2SDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tMTAgN0g4djNINnYtM0gzdi0yaDNWOGgydjNoM3Yyem00LjUgMmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQtM2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE4LjY3IDkgMTkuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F0Y2hPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3YzIuNzYgMCA1IDIuMjQgNSA1IDAgLjY0LS4xMyAxLjI1LS4zNSAxLjgybDEuNSAxLjVhNi45NjMgNi45NjMgMCAwIDAtMS43OS04Ljc5TDE1IDJIOWwtLjk2IDMuMjEgMi4xNCAyLjE0QzEwLjc1IDcuMTMgMTEuMzYgNyAxMiA3ek0yLjgxIDIuODEgMS4zOSA0LjIybDQuNDYgNC40NmE2Ljk2MyA2Ljk2MyAwIDAgMCAxLjc5IDguNzlMOSAyMmg2bC45Ni0zLjIxIDMuODIgMy44MiAxLjQxLTEuNDFMMi44MSAyLjgxek0xMiAxN2MtMi43NiAwLTUtMi4yNC01LTUgMC0uNjQuMTMtMS4yNS4zNS0xLjgybDYuNDcgNi40N2MtLjU3LjIyLTEuMTguMzUtMS44Mi4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwiLFwib3BhY2l0eVwiOlwiLjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJjMC0yLjU0LTEuMTktNC44MS0zLjA0LTYuMjdMMTYgMEg4bC0uOTUgNS43M0M1LjE5IDcuMTkgNCA5LjQ1IDQgMTJzMS4xOSA0LjgxIDMuMDUgNi4yN0w4IDI0aDhsLjk2LTUuNzNBNy45NzYgNy45NzYgMCAwIDAgMjAgMTJ6TTYgMTJjMC0zLjMxIDIuNjktNiA2LTZzNiAyLjY5IDYgNi0yLjY5IDYtNiA2LTYtMi42OS02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9Nb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDMgMy41NmMtMS42Ny0xLjM5LTMuNzQtMi4zLTYuMDMtMi41MXYyLjAxYzEuNzMuMTkgMy4zMS44OCA0LjYxIDEuOTJsMS40Mi0xLjQyek0xMSAzLjA2VjEuMDVjLTIuMjkuMi00LjM2IDEuMTItNi4wMyAyLjUxbDEuNDIgMS40MkE4LjkyOCA4LjkyOCAwIDAgMSAxMSAzLjA2ek00Ljk4IDYuMzkgMy41NiA0Ljk3QzIuMTcgNi42NCAxLjI2IDguNzEgMS4wNSAxMWgyLjAxYy4xOS0xLjczLjg4LTMuMzEgMS45Mi00LjYxek0yMC45NCAxMWgyLjAxYy0uMjEtMi4yOS0xLjEyLTQuMzYtMi41MS02LjAzbC0xLjQyIDEuNDJBOC45MjggOC45MjggMCAwIDEgMjAuOTQgMTF6TTcgMTJsMy40NCAxLjU2TDEyIDE3bDEuNTYtMy40NEwxNyAxMmwtMy40NC0xLjU2TDEyIDdsLTEuNTYgMy40NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjFhOC45NiA4Ljk2IDAgMCAxLTcuNDYtNEg3di0ySDF2Nmgydi0yLjdjMS45OSAyLjg0IDUuMjcgNC43IDkgNC43IDQuODcgMCA5LTMuMTcgMTAuNDQtNy41NmwtMS45Ni0uNDVDMTkuMjUgMTguNDggMTUuOTIgMjEgMTIgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJsaW5kc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMTEuMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVzMS43NS0uNzggMS43NS0xLjc1SDIydi0yaC0yem0tMi04aC0yVjloMnYyem0tNCAwSDZWOWg4djJ6bTAgMnYySDZ2LTJoOHptMiAwaDJ2MmgtMnYtMnptMi02aC0yVjVoMnYyem0tNC0ydjJINlY1aDh6TTYgMTl2LTJoOHYySDZ6bTEwIDB2LTJoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbGluZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek0xNiA5aDJ2MmgtMlY5em0tMiAySDZWOWg4djJ6bTQtNGgtMlY1aDJ2MnptLTQtMnYySDZWNWg4ek02IDE5di02aDh2MS44MkExLjc0NiAxLjc0NiAwIDAgMCAxNSAxOGExLjc0NiAxLjc0NiAwIDAgMCAxLTMuMThWMTNoMnY2SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyb2FkY2FzdE9uSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDZjMC0xLjEtLjktMi0yLTJINHYyaDE2djIuNTljLjczLjI5IDEuNC42OSAyIDEuMTdWNnpNOCA5SDNjLS41IDAtMSAuNS0xIDF2OWMwIC41LjUgMSAxIDFoNWMuNSAwIDEtLjUgMS0xdi05YzAtLjUtLjUtMS0xLTF6bS0xIDlINHYtN2gzdjd6TTE3Ljc1IDE2Ljk3Yy4zLS4yMy41LS41Ny41LS45N2ExLjI1IDEuMjUgMCAwIDAtMi41IDBjMCAuNC4yLjc1LjUuOTdWMjJoMS41di01LjAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMy41YTIuNSAyLjUgMCAwIDEgMi41IDIuNWMwIC42OS0uMjggMS4zMS0uNzMgMS43NmwxLjA2IDEuMDZDMjAuNTUgMTguMSAyMSAxNy4xIDIxIDE2YzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0YzAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsMS4wNi0xLjA2QTIuNSAyLjUgMCAwIDEgMTcgMTMuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOS41YTYuNSA2LjUgMCAwIDAtNi41IDYuNWMwIDEuNzkuNzMgMy40MiAxLjkgNC42bDEuMDYtMS4wNkMxMi41NiAxOC42MyAxMiAxNy4zOCAxMiAxNmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS4zNy0uNTYgMi42Mi0xLjQ2IDMuNTJsMS4wNyAxLjA2QTYuNSA2LjUgMCAwIDAgMTcgOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcm9hZGNhc3RPblBlcnNvbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOGMuNyAwIDEuMzguMSAyLjAyLjI3TDEyIDMgNCA5djEyaDYuNzZBNy45OTggNy45OTggMCAwIDEgMTcgOHpNMTcgMTQuNzVjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1IDAgLjQuMi43NS41Ljk3VjIyaDEuNXYtNS4wM2MuMy0uMjMuNS0uNTcuNS0uOTcgMC0uNjktLjU2LTEuMjUtMS4yNS0xLjI1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmMtMi4yMSAwLTQgMS43OS00IDQgMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wxLjA2LTEuMDZBMi41IDIuNSAwIDEgMSAxOS41IDE2YzAgLjY5LS4yOCAxLjMxLS43MyAxLjc2bDEuMDYgMS4wNkMyMC41NSAxOC4xIDIxIDE3LjEgMjEgMTZjMC0yLjIxLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDkuNWE2LjUgNi41IDAgMCAwLTYuNSA2LjVjMCAxLjc5LjczIDMuNDIgMS45IDQuNmwxLjA2LTEuMDZDMTIuNTYgMTguNjMgMTIgMTcuMzggMTIgMTZjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWMwIDEuMzctLjU2IDIuNjItMS40NiAzLjUybDEuMDcgMS4wNkE2LjUgNi41IDAgMCAwIDE3IDkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2xvdWR5U25vd2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMThjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6bTEyIDBjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6bS05IDRjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6bTMtNGMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXptMyA0YzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMS0uNDUtMS0xLTEtMSAuNDUtMSAxem0zLjUtNmgtMTBBNS41MSA1LjUxIDAgMCAxIDIgMTAuNWMwLTIuNzYgMi4wOS01LjA5IDQuNzgtNS40NEE1Ljk3NSA1Ljk3NSAwIDAgMSAxMiAyYzIuOTcgMCA1LjQ1IDIuMTggNS45MiA1LjAyQTQuNSA0LjUgMCAwIDEgMjIgMTEuNWMwIDIuNDgtMi4wMiA0LjUtNC41IDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VydGFpbnNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek0xMSA1aDJ2MTRoLTJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VydGFpbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek04LjE5IDEyYzIuMDQtMS4zNSAzLjUtMy45NCAzLjc2LTdoLjA5Yy4yNiAzLjA2IDEuNzIgNS42NSAzLjc2IDctMi4wNCAxLjM1LTMuNSAzLjk0LTMuNzYgN2gtLjA5Yy0uMjYtMy4wNi0xLjcyLTUuNjUtMy43Ni03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY0JvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC42OSAyLjIxIDQuMzMgMTEuNDljLS42NC41OC0uMjggMS42NS41OCAxLjczTDEzIDE0bC00Ljg1IDYuNzZjLS4yMi4zMS0uMTkuNzQuMDggMS4wMS4zLjMuNzcuMzEgMS4wOC4wMmwxMC4zNi05LjI4Yy42NC0uNTguMjgtMS42NS0uNTgtMS43M0wxMSAxMGw0Ljg1LTYuNzZjLjIyLS4zMS4xOS0uNzQtLjA4LTEuMDFhLjc3Ljc3IDAgMCAwLTEuMDgtLjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY01ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNC45NiAwLTkgNC4wNC05IDkgMCAzLjkxIDIuNTEgNy4yNCA2IDguNDdWMjJoMnYtMi4wNmE4LjI2MiA4LjI2MiAwIDAgMCAyIDBWMjJoMnYtMi41M2MzLjQ5LTEuMjQgNi00LjU3IDYtOC40NyAwLTQuOTYtNC4wNC05LTktOXptMi4yNSAxMi0zIDMtMS41LTEuNUwxMSAxNC4yNSA5Ljc1IDEzbDMtMyAxLjUgMS41TDEzIDEyLjc1IDE0LjI1IDE0ek0xNiA5SDhWN2g4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVuZXJneVNhdmluZ3NMZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM2MtNC44IDAtOSAzLjg2LTkgOSAwIDIuMTIuNzQgNC4wNyAxLjk3IDUuNjFMMyAxOS41OSA0LjQxIDIxbDEuOTctMS45N0E5LjAxMiA5LjAxMiAwIDAgMCAxMiAyMWMyLjMgMCA0LjYxLS44OCA2LjM2LTIuNjRBOC45NSA4Ljk1IDAgMCAwIDIxIDEyVjNoLTl6bTMuODMgOS4yNi01LjE2IDQuNjNjLS4xNi4xNS0uNDEuMTQtLjU2LS4wMWEuMzk3LjM5NyAwIDAgMS0uMDQtLjUybDIuNDQtMy4zMy00LjA1LS40YS41MTQuNTE0IDAgMCAxLS4zLS44OWw1LjE2LTQuNjNjLjE2LS4xNS40MS0uMTQuNTYuMDEuMTQuMTQuMTYuMzYuMDQuNTJsLTIuNDQgMy4zMyA0LjA1LjRjLjQ1LjA0LjYzLjU5LjMuODl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvZ2d5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuOTIgNy4wMkMxNy40NSA0LjE4IDE0Ljk3IDIgMTIgMiA5LjgyIDIgNy44MyAzLjE4IDYuNzggNS4wNiA0LjA5IDUuNDEgMiA3Ljc0IDIgMTAuNSAyIDEzLjUzIDQuNDcgMTYgNy41IDE2aDEwYzIuNDggMCA0LjUtMi4wMiA0LjUtNC41YTQuNSA0LjUgMCAwIDAtNC4wOC00LjQ4em0uMDggOS45OWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMTEgM2MuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tMS0zaDljLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDFINmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMXptNCAzaDdjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDFoLTdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdhc01ldGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMVYyaC0ydjJoLTJWMkg5djJIOEM1Ljc5IDQgNCA1Ljc5IDQgOHYxMGMwIDIuMjEgMS43OSA0IDQgNGg4YzIuMjEgMCA0LTEuNzkgNC00VjhjMC0yLjIxLTEuNzktNC00LTR6bS00IDE0Yy0xLjM4IDAtMi41LTEuMS0yLjUtMi40NiAwLTEuMDkuNDMtMS4zOSAyLjUtMy43OSAyLjA1IDIuMzggMi41IDIuNyAyLjUgMy43OUMxNC41IDE2LjkgMTMuMzggMTggMTIgMTh6bTQtOEg4VjhoOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWF0UHVtcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNi4yNSA0LjA4Yy44Mi4xMiAxLjU3LjQ0IDIuMi45MWwtMi4yIDIuMlY3LjA4em0tMS41IDB2My4xMWwtMi4yLTIuMmMuNjMtLjQ3IDEuMzgtLjc5IDIuMi0uOTF6TTcuOTkgOS4wNWwyLjIgMi4ySDcuMDhjLjEyLS44Mi40NC0xLjU3LjkxLTIuMnptLS45MSAzLjdoMy4xMWwtMi4yIDIuMmMtLjQ3LS42My0uNzktMS4zOC0uOTEtMi4yem00LjE3IDQuMTdjLS44Mi0uMTItMS41Ny0uNDQtMi4yLS45MWwyLjItMi4ydjMuMTF6TTEyIDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS43NSAzLjkydi0zLjExbDIuMiAyLjJjLS42My40Ny0xLjM4Ljc5LTIuMi45MXptMy4yNi0xLjk3LTIuMi0yLjJoMy4xMWMtLjEyLjgyLS40NCAxLjU3LS45MSAyLjJ6bS0yLjItMy43IDIuMi0yLjJjLjQ3LjY0Ljc5IDEuMzkuOTEgMi4yaC0zLjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb2RlRmFuT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuMzQgOC4zNi0yLjI5LjgyYy0uMTgtLjEzLS4zOC0uMjUtLjU4LS4zNC4xNy0uODMuNjMtMS41OCAxLjM2LTIuMDZDMTYuODUgNS40NCAxNi4xOCAyIDEzLjM5IDJjLTMuMDggMC00LjkgMS40Ny01LjMgMy4yNkwxOC43MyAxNS45YzEuNS4zOSAzLjI3LS41MSAzLjI3LTIuNTEgMC00LjM5LTMuMDEtNi4yMy01LjY2LTUuMDN6TTIuODEgMi44MSAxLjM5IDQuMjIgNS4yNyA4LjFDMy43NyA3LjcgMiA4LjYxIDIgMTAuNjFjMCA0LjQgMy4wMSA2LjI0IDUuNjYgNS4wM2wyLjI5LS44MmMuMTguMTMuMzguMjUuNTguMzQtLjE3LjgzLS42MyAxLjU4LTEuMzYgMi4wNkM3LjE1IDE4LjU2IDcuODIgMjIgMTAuNjEgMjJjMy4wOCAwIDQuOS0xLjQ3IDUuMy0zLjI2bDMuODcgMy44NyAxLjQxLTEuNDFMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXN0Q2FtV2lyZWRTdGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjgzIDEuMDEtNC4xMS40MkM4LjQ3IDEuNzUgNiA0LjQ4IDYgNy43NXMyLjQ3IDYgNS43MiA2LjMzbDEuOS4xOS0uNTYuODVjLS4zNS0uMDgtLjctLjEyLTEuMDYtLjEyLTIuNzYgMC01IDIuMjQtNSA1djJjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF2LTJjMC0xLjY3LS44My0zLjE1LTIuMDktNC4wNmwuOTctMS40NWMxLjE0LjA3IDIuMTItLjgzIDIuMTItMS45OVYzYzAtMS4xNy0xLTIuMDktMi4xNy0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPaWxCYXJyZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMVY1aDFjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxdjZINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxdjZINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMXYtNmgxem0tOCAzYy0xLjY2IDAtMy0xLjMyLTMtMi45NSAwLTEuMy41Mi0xLjY3IDMtNC41NSAyLjQ3IDIuODYgMyAzLjI0IDMgNC41NSAwIDEuNjMtMS4zNCAyLjk1LTMgMi45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJvcGFuZVRhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE1djNjMCAyLjIxIDEuNzkgNCA0IDRoOGMyLjIxIDAgNC0xLjc5IDQtNHYtM0g0ek0yMCAxM3YtM2MwLTEuODYtMS4yOC0zLjQxLTMtMy44NlY0YzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAydjIuMTRjLTEuNzIuNDUtMyAyLTMgMy44NnYzaDE2ek05IDRoNnYyaC0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxSDlWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJvcGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZoLTFWNWMwLTEuMS0uOS0yLTItMmgtNGMtMS4xIDAtMiAuOS0yIDJ2MUg3Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2djNoMnYtM2g2djNoMnYtM2MzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNnptLTctMWg0djFoLTRWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9sbGVyU2hhZGVzQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2Mmg4LjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1czEuNzUtLjc4IDEuNzUtMS43NUgyMnYtMmgtMnpNNiAxOXYtMmg1djJINnptNyAwdi0yaDV2MmgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9sbGVyU2hhZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnpNNiAxOXYtNmg1djEuOGMtLjQuMy0uOC44LS44IDEuNCAwIDEgLjggMS44IDEuOCAxLjhzMS44LS44IDEuOC0xLjhjMC0uNi0uMy0xLjEtLjgtMS40VjEzaDV2Nkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5zb3JEb29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxOGgxNlY0YzAtMS4xLS45LTItMi0yem0tMi41IDExLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW5zb3JPY2N1cGllZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pNMTIgMTJjLTEuODQgMC0zLjU2LjUtNS4wMyAxLjM3LS42MS4zNS0uOTcgMS4wMi0uOTcgMS43MlYxN2gxMnYtMS45MWMwLS43LS4zNi0xLjM2LS45Ny0xLjcyQTkuODQ0IDkuODQ0IDAgMCAwIDEyIDEyek0yMS4yMyA4LjE1bDEuODUtLjc3QTEyLjA1NiAxMi4wNTYgMCAwIDAgMTYuNjIuOTJsLS43NyAxLjg1YzIuNDIgMS4wMiA0LjM2IDIuOTYgNS4zOCA1LjM4ek04LjE1IDIuNzcgNy4zOC45MkExMi4wODkgMTIuMDg5IDAgMCAwIC45MiA3LjM4bDEuODUuNzdjMS4wMi0yLjQyIDIuOTYtNC4zNiA1LjM4LTUuMzh6TTIuNzcgMTUuODVsLTEuODUuNzdjMS4yMiAyLjkxIDMuNTUgNS4yNSA2LjQ2IDYuNDZsLjc3LTEuODVhMTAuMTE3IDEwLjExNyAwIDAgMS01LjM4LTUuMzh6TTE1Ljg1IDIxLjIzbC43NyAxLjg1YzIuOTEtMS4yMiA1LjI1LTMuNTUgNi40Ni02LjQ2bC0xLjg1LS43N2ExMC4xMTcgMTAuMTE3IDAgMCAxLTUuMzggNS4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2Vuc29yV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNHYxNkg2VjRoMTJtMC0ySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNyAxOWgxMHYtNkg3djZ6bTMtOWg0djFoM1Y1SDd2Nmgzdi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaGVsdmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMXYySDVWMUgzdjIyaDJ2LTJoMTR2MmgyVjFoLTJ6bTAgNHY2aC02VjdIN3Y0SDVWNWgxNHptLTIgMTR2LTRoLTZ2NEg1di02aDE0djZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoaWVsZE1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem0zLjk3IDEyLjQxYy0xLjg0IDIuMTctNS4yMSAyLjEtNi45Ni0uMDctMi4xOS0yLjcyLS42NS02LjcyIDIuNjktNy4zMy4zNC0uMDYuNjMuMjcuNTEuNi0uNDYgMS4yMy0uMzkgMi42NC4zMiAzLjg2YTQuNTEgNC41MSAwIDAgMCAzLjE4IDIuMmMuMzQuMDUuNDkuNDcuMjYuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNub3dpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEyLjc1YTEuMjUgMS4yNSAwIDEgMSAwIDIuNSAxLjI1IDEuMjUgMCAwIDEgMC0yLjV6TTQuNzUgNmExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0xMiA4YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTAtOGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0tOSAxMmExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0wLThhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMyA0YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTAtOGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0zIDEyYTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTAtOGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb2xhclBvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4zMyAxNkgxMXYtM0g0ek0xMyAxNmg3LjY3TDIwIDEzaC03ek0yMS4xMSAxOEgxM3Y0aDl6TTIgMjJoOXYtNEgyLjg5ek0xMSA4aDJ2M2gtMnpNMTUuNzY0IDcuMjA1bDEuNDE1LTEuNDE0TDE5LjMgNy45MTJsLTEuNDE0IDEuNDE0ek00LjcwNSA3LjkxMyA2LjgyNiA1Ljc5IDguMjQgNy4yMDYgNi4xMiA5LjMyN3pNMyAyaDN2Mkgzek0xOCAyaDN2MmgtM3pNMTIgN2MyLjc2IDAgNS0yLjI0IDUtNUg3YzAgMi43NiAyLjI0IDUgNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdW5ueVNub3dpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1aC0yVjFoMnY0ek0xIDExaDR2Mkgxdi0yem0xOCAydi0yaDR2MmgtNHptLTEuMzQtNS4yNC0xLjQxLTEuNDEgMi44My0yLjgzIDEuNDEgMS40MS0yLjgzIDIuODN6TTMuNTEgNC45M2wxLjQxLTEuNDEgMi44MyAyLjgzLTEuNDEgMS40MS0yLjgzLTIuODN6TTQuNzUgMTdhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHptMTIgMGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0tOSA0YTEuMjUgMS4yNSAwIDEgMCAyLjUgMCAxLjI1IDEuMjUgMCAwIDAtMi41IDB6bTMtNGExLjI1IDEuMjUgMCAxIDAgMi41IDAgMS4yNSAxLjI1IDAgMCAwLTIuNSAwem0zIDRhMS4yNSAxLjI1IDAgMSAwIDIuNSAwIDEuMjUgMS4yNSAwIDAgMC0yLjUgMHpNMTcgMTN2LTFjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDV2MWgxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VubnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA0VjJjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjJjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF6bTcuMzYgMy4wNSAxLjQxLTEuNDJhLjk5Ni45OTYgMCAxIDAtMS40MS0xLjQxbC0xLjQxIDEuNDJhLjk5Ni45OTYgMCAxIDAgMS40MSAxLjQxek0yMiAxMWgtMmMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xem0tMTAgOGMtLjU1IDAtMSAuNDUtMSAxdjJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0yYzAtLjU1LS40NS0xLTEtMXpNNS42NCA3LjA1IDQuMjIgNS42NGMtLjM5LS4zOS0uMzktMS4wMyAwLTEuNDFzMS4wMy0uMzkgMS40MSAwbDEuNDEgMS40MWMuMzkuMzkuMzkgMS4wMyAwIDEuNDFzLTEuMDIuMzktMS40IDB6bTExLjMxIDkuOWEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMS40MSAxLjQxYy4zOS4zOSAxLjAzLjM5IDEuNDEgMGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTEuNDEtMS40MWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDB6TTIgMTNoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMUgyYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxem0zLjY0IDYuNzggMS40MS0xLjQxYy4zOS0uMzkuMzktMS4wMyAwLTEuNDFzLTEuMDMtLjM5LTEuNDEgMGwtMS40MSAxLjQxYS45OTYuOTk2IDAgMCAwIDAgMS40MWMuMzguMzkgMS4wMi4zOSAxLjQxIDB6TTEyIDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWZXJ0aWNhbFNoYWRlc0Nsb3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTEzIDVoMS41djE0SDEzVjV6bS0yIDE0SDkuNVY1SDExdjE0ek02IDVoMS41djE0SDZWNXptMTAuNSAxNFY1SDE4djE0aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZlcnRpY2FsU2hhZGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnptLTEwIDBWNWg0djE0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaW5kUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDNoNnYySDR6TTEgN2g1djJIMXpNMyAxOWg1djJIM3pNMTMuNzMgMTAuNjFjLjc1LjIzIDEuMy43OCAxLjU3IDEuNDZsNC4yNy03LjExYTIuMjggMi4yOCAwIDAgMC0zLjUxLTIuODRsLTMuNDMgMy4yMWMtLjQuMzctLjYzLjktLjYzIDEuNDV2My45M2MuMzYtLjE1Ljk4LS4zMyAxLjczLS4xek0xMC42MSAxMi4yN2MuMTYtLjUyLjQ4LS45Ni44OS0xLjI3SDMuMjhhMi4yNzkgMi4yNzkgMCAwIDAtLjYzIDQuNDdsNC41MSAxLjI5Yy41My4xNSAxLjEuMDggMS41OC0uMjFsMi42OS0xLjYxYTIuNDg3IDIuNDg3IDAgMCAxLS44Mi0yLjY3ek0yMi4yMSAxOC42MWwtMi4yOC00LjFhMi4wNSAyLjA1IDAgMCAwLTEuMjYtLjk3bC0zLjE4LS44Yy4wMy4zMiAwIC42Ni0uMS45OUEyLjQ3OCAyLjQ3OCAwIDAgMSAxMyAxNS41Yy0uNjEgMC0uOTktLjIyLTEtLjIyVjIxYy0xLjEgMC0yIC45LTIgMmg2YzAtMS4xLS45LTItMi0ydi00LjI4bDQuNjEgNC42MWMuODkuODkgMi4zMy44OSAzLjIyIDAgLjcyLS43Mi44OC0xLjgzLjM4LTIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjU2IDE0LjQzYy43OS4yNCAxLjYzLS4yIDEuODctMSAuMjQtLjc5LS4yLTEuNjMtMS0xLjg3LS43OS0uMjQtMS42My4yLTEuODcgMS0uMjQuNzkuMjEgMS42MyAxIDEuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDEwTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgN0gxNXYzaC0xLjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzem02LjUgNWMwIC41NS0uNDUgMS0xIDFIMTNjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bS0xIDMuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTFNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTExIDUuNXY2SDkuNVY3SDhWNS41aDN6bTUgMHY2aC0xLjVWN0gxM1Y1LjVoM3ptLS41IDguNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTJNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6TTE1LjUgOWgtMnYxaDN2MS41SDEyVjljMC0uNTUuNDUtMSAxLTFoMlY3aC0zVjUuNWgzLjVjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem0wIDVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDEzTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzem02LjUgNWMwIC41NS0uNDUgMS0xIDFIMTJWMTBoM1Y5aC0yVjhoMlY3aC0zVjUuNWgzLjVjLjU1IDAgMSAuNDUgMSAxdjR6bS0xIDMuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMTRNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDUuNXY2SDguNVY3SDdWNS41aDN6bTcuNSA0LjVoLTF2MS41SDE1VjEwaC0zVjUuNWgxLjV2M0gxNXYtM2gxLjV2M2gxVjEwem0tMiA0SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxNU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTAgNS41djZIOC41VjdIN1Y1LjVoM3pNMTYuNSA3aC0zdjFoMmMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMUgxMlYxMGgzVjloLTNWNS41aDQuNVY3em0tMSA3SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxNk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDlIMTV2MS41aC0xLjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzem0zIDZjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgzLjVWN2gtM3YxaDJjLjU1IDAgMSAuNDUgMSAxdjEuNWMwIC41NS0uNDUgMS0xIDFIMTN6bTIuNSAyLjVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE3TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzem01IDZoLTEuNzVMMTQuNjIgN0gxMlY1LjVoMy41Yy42NyAwIDEuMTUuNjUuOTYgMS4yOUwxNSAxMS41em0uNSAyLjVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDE4TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA1LjV2Nkg4LjVWN0g3VjUuNWgzem02LjUgNWMwIC41NS0uNDUgMS0xIDFIMTNjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWgyLjVjLjU1IDAgMSAuNDUgMSAxdjR6bS0zIDBIMTVWOWgtMS41djEuNXptMC0yLjVIMTVWNi41aC0xLjVWOHptMiA2SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxOU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgN2gzVjloLTJjLS41NSAwLTEtLjQ1LTEtMVY2LjVjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0YzAgLjU1LS40NSAxLTEgMUgxMlYxMHptMS41LTJIMTVWNi41aC0xLjVWOHpNNyA1LjVoM3Y2SDguNVY3SDdWNS41em01IDEzaC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptNi41LTIuNWMwIC41NS0uNDUgMS0xIDFoLTJ2MS41SDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZ6bS0zLTJIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDIwTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgN0gxNnYzaC0xLjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0yLThjMCAuNTUtLjQ1IDEtMSAxSDE0Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0ek0xMCA5SDh2MWgzdjEuNUg2LjVWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41SDEwYy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptNS41IDVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDIxTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMSA5SDl2MWgzdjEuNUg3LjVWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41SDExYy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptMy0zLjVoM3Y2aC0xLjVWN0gxNFY1LjV6bTEuNSA4LjVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDIyTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41ek0xMCA5SDh2MWgzdjEuNUg2LjVWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41SDEwYy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptNi41IDBoLTJ2MWgzdjEuNUgxM1Y5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVoMy41Yy41NSAwIDEgLjQ1IDEgMVY4YzAgLjU1LS40NSAxLTEgMXptLTEgNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMjNNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6TTEwIDlIOHYxaDN2MS41SDYuNVY5YzAtLjU1LjQ1LTEgMS0xaDJWN2gtM1Y1LjVIMTBjLjU1IDAgMSAuNDUgMSAxVjhjMCAuNTUtLjQ1IDEtMSAxem03LjUgMS41YzAgLjU1LS40NSAxLTEgMUgxM1YxMGgzVjloLTJWOGgyVjdoLTNWNS41aDMuNWMuNTUgMCAxIC40NSAxIDF2NHptLTIgMy41SDE3djEuNWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQyNE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTAgOUg4djFoM3YxLjVINi41VjljMC0uNTUuNDUtMSAxLTFoMlY3aC0zVjUuNUgxMGMuNTUgMCAxIC40NSAxIDFWOGMwIC41NS0uNDUgMS0xIDF6bTguNSAxaC0xdjEuNUgxNlYxMGgtM1Y1LjVoMS41djNIMTZ2LTNoMS41djNoMVYxMHptLTMgNEgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXptLTItOS41aC0ydjFoM3YxLjVIMTBWOWMwLS41NS40NS0xIDEtMWgyVjdoLTNWNS41aDMuNWMuNTUgMCAxIC40NSAxIDFWOGMwIC41NS0uNDUgMS0xIDF6bTIgNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kMzBGcHNTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDR2Mmg1djJINXYyaDR2Mkg0djJoNWMxLjEgMCAyLS45IDItMnYtMS41YzAtLjgzLS4xNy0xLjUtMS0xLjUuODMgMCAxLS42NyAxLTEuNVY2YzAtMS4xLS45LTItMi0ySDR6bTE0IDBjMS4xIDAgMiAuOSAyIDJ2NmMwIDEuMS0uOSAyLTIgMmgtM2MtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDN6bTAgMmgtM3Y2aDNWNnpNNSAyMkgzdi01aDJ2NXptNCAwSDd2LTVoMnY1em00IDBoLTJ2LTVoMnY1em04IDBoLTZ2LTVoNnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0tMS04YzAgLjU1LS40NSAxLTEgMUgxMFYxMGgzVjloLTJWOGgyVjdoLTNWNS41aDMuNWMuNTUgMCAxIC40NSAxIDF2NHptMSAzLjVIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDRNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLTguNWgtMXYxLjVoLTEuNVYxMGgtM1Y1LjVIMTF2M2gxLjV2LTNIMTR2M2gxVjEwem0uNSA4LjVIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0wLTQuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXpNMTQuNSA3aC0zdjFoMmMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMUgxMFYxMGgzVjloLTNWNS41aDQuNVY3em0xIDdIMTd2MS41aC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZDYwRnBzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNnY2aC0zVjZoM3ptMC0yaC0zYy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNyAyVjRINmMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDNjMS4xIDAgMi0uOSAyLTJ2LTJjMC0xLjEtLjktMi0yLTJINlY2aDV6bS0yIDR2Mkg2di0yaDN6TTUgMjJIM3YtNWgydjV6bTQgMEg3di01aDJ2NXptNCAwaC0ydi01aDJ2NXptOCAwaC02di01aDZ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDlIMTN2MS41aC0xLjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptLTEtN2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDMuNVY3aC0zdjFoMmMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMUgxMXptNC41IDdIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0wLTQuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kN01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTcgMTUuNWgtMS41VjE0aC0xdjNIOHYtM0g3djQuNUg1LjV2LTVjMC0uNTUuNDUtMSAxLTFIMTFjLjU1IDAgMSAuNDUgMSAxdjV6bTMuNSAwSDE0di02aDMuNWMuNTUgMCAxIC40NSAxIDFWMTZjMCAuNTUtLjQ1IDEtMSAxaC0ydjEuNXptLTIuNS03aC0xLjc1TDEyLjYyIDdIMTBWNS41aDMuNWMuNjcgMCAxLjE1LjY1Ljk2IDEuMjlMMTMgMTEuNXptMi41IDIuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDlIMTN2MS41aC0xLjV6bTAtMi41SDEzVjhoLTEuNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03IDE1LjVoLTEuNVYxNGgtMXYzSDh2LTNIN3Y0LjVINS41di01YzAtLjU1LjQ1LTEgMS0xSDExYy41NSAwIDEgLjQ1IDEgMXY1em0zLjUgMEgxNHYtNmgzLjVjLjU1IDAgMSAuNDUgMSAxVjE2YzAgLjU1LS40NSAxLTEgMWgtMnYxLjV6bS0xLThjMCAuNTUtLjQ1IDEtMSAxSDExYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0em0xIDMuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kOU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDYuNUgxM1Y4aC0xLjV6TTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNS41aC0xLjVWMTRoLTF2M0g4di0zSDd2NC41SDUuNXYtNWMwLS41NS40NS0xIDEtMUgxMWMuNTUgMCAxIC40NSAxIDF2NXptMy41IDBIMTR2LTZoMy41Yy41NSAwIDEgLjQ1IDEgMVYxNmMwIC41NS0uNDUgMS0xIDFoLTJ2MS41em0tMS04YzAgLjU1LS40NSAxLTEgMUgxMFYxMGgzVjloLTJjLS41NSAwLTEtLjQ1LTEtMVY2LjVjMC0uNTUuNDUtMSAxLTFoMi41Yy41NSAwIDEgLjQ1IDEgMXY0em0xIDMuNUgxN3YxLjVoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQVBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0VjFoMnYzaDN2Mkg1djNIM1Y2SDBWNGgzem0zIDZWN2gzVjRoN2wxLjgzIDJIMjFjMS4xIDAgMiAuOSAyIDJ2MTJjMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJWMTBoM3ptNyA5YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01LTUgMi4yNC01IDUgMi4yNCA1IDUgNXptLTMuMi01YzAgMS43NyAxLjQzIDMuMiAzLjIgMy4yczMuMi0xLjQzIDMuMi0zLjItMS40My0zLjItMy4yLTMuMi0zLjIgMS40My0zLjIgMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRQaG90b0FsdGVybmF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDd2Mi45OXMtMS45OS4wMS0yIDBWN2gtM3MuMDEtMS45OSAwLTJoM1YyaDJ2M2gzdjJoLTN6bS0zIDRWOGgtM1Y1SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LThoLTN6TTUgMTlsMy00IDIgMyAzLTQgNCA1SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFRvUGhvdG9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMSA5aC00djRoLTJ2LTRIOVY5aDRWNWgydjRoNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGp1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMy04YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQW5pbWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMmMtMi43MSAwLTUuMDUgMS41NC02LjIyIDMuNzhhNy4wNjIgNy4wNjIgMCAwIDAtMyAzQTcuMDE0IDcuMDE0IDAgMCAwIDIgMTVjMCAzLjg3IDMuMTMgNyA3IDcgMi43MSAwIDUuMDUtMS41NCA2LjIyLTMuNzhhNy4wNjIgNy4wNjIgMCAwIDAgMy0zQTcuMDE0IDcuMDE0IDAgMCAwIDIyIDljMC0zLjg3LTMuMTMtNy03LTd6TTkgMjBhNS4wMDIgNS4wMDIgMCAwIDEtNC04YzAgMy44NyAzLjEzIDcgNyA3LS44NC42My0xLjg4IDEtMyAxem0zLTNhNS4wMDIgNS4wMDIgMCAwIDEtNC04YzAgMy44NiAzLjEzIDYuOTkgNyA3LS44NC42My0xLjg4IDEtMyAxem00LjctMy4zYy0uNTMuMTktMS4xLjMtMS43LjMtMi43NiAwLTUtMi4yNC01LTUgMC0uNi4xMS0xLjE3LjMtMS43LjUzLS4xOSAxLjEtLjMgMS43LS4zIDIuNzYgMCA1IDIuMjQgNSA1IDAgLjYtLjExIDEuMTctLjMgMS43ek0xOSAxMmMwLTMuODYtMy4xMy02Ljk5LTctN2E1LjAwMiA1LjAwMiAwIDAgMSA3IDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXNzaXN0YW50UGhvdG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC40IDYgMTQgNEg1djE3aDJ2LTdoNS42bC40IDJoN1Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3Npc3RhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTUuMTIgMTAuODhMMTIgMTdsLTEuODgtNC4xMkw2IDExbDQuMTItMS44OEwxMiA1bDEuODggNC4xMkwxOCAxMWwtNC4xMiAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdWRpb3RyYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM3Y5LjI4YTQuMzkgNC4zOSAwIDAgMC0xLjUtLjI4QzguMDEgMTIgNiAxNC4wMSA2IDE2LjVTOC4wMSAyMSAxMC41IDIxYzIuMzEgMCA0LjItMS43NSA0LjQ1LTRIMTVWNmg0VjNoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9Bd2Vzb21lTW9zYWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djE0YTIgMiAwIDAgMCAyIDJoNlYzSDVhMiAyIDAgMCAwLTIgMnptMTYtMmgtNnY4aDhWNWMwLTEuMS0uOS0yLTItMnptLTYgMThoNmMxLjEgMCAyLS45IDItMnYtNmgtOHY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvQXdlc29tZU1vdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINGEyIDIgMCAwIDAtMiAydjEwaDJWNGgxMFYyem00IDRIOGEyIDIgMCAwIDAtMiAydjEwaDJWOGgxMFY2em0yIDRoLThhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoOGMxLjEgMCAyLS45IDItMnYtOGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0F3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSA5IDEuMjUtMi43NUwyMyA1bC0yLjc1LTEuMjVMMTkgMWwtMS4yNSAyLjc1TDE1IDVsMi43NSAxLjI1TDE5IDl6bS03LjUuNUw5IDQgNi41IDkuNSAxIDEybDUuNSAyLjVMOSAyMGwyLjUtNS41TDE3IDEybC01LjUtMi41ek0xOSAxNWwtMS4yNSAyLjc1TDE1IDE5bDIuNzUgMS4yNUwxOSAyM2wxLjI1LTIuNzVMMjMgMTlsLTIuNzUtMS4yNUwxOSAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0ZpeEhpZ2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgNS42IDEwIDcgOC42IDQuNSAxMCAyIDcuNSAzLjQgNSAybDEuNCAyLjVMNSA3em0xMiA5LjhMMTcgMTRsMS40IDIuNUwxNyAxOWwyLjUtMS40TDIyIDE5bC0xLjQtMi41TDIyIDE0ek0yMiAybC0yLjUgMS40TDE3IDJsMS40IDIuNUwxNyA3bDIuNS0xLjRMMjIgN2wtMS40LTIuNXptLTcuNjMgNS4yOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBMMS4yOSAxOC45NmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi4zNCAyLjM0Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMEwxNi43IDExLjA1YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zMy0yLjM1em0tMS4wMyA1LjQ5LTIuMTItMi4xMiAyLjQ0LTIuNDQgMi4xMiAyLjEyLTIuNDQgMi40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXV0b0ZpeE5vcm1hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDItMi41IDEuNEwxNyAybDEuNCAyLjVMMTcgN2wyLjUtMS40TDIyIDdsLTEuNC0yLjV6bS03LjYzIDUuMjlhLjk5Ni45OTYgMCAwIDAtMS40MSAwTDEuMjkgMTguOTZhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDIuMzQgMi4zNGMuMzkuMzkgMS4wMi4zOSAxLjQxIDBMMTYuNyAxMS4wNWEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzMtMi4zNXptLTEuMDMgNS40OS0yLjEyLTIuMTIgMi40NC0yLjQ0IDIuMTIgMi4xMi0yLjQ0IDIuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9GaXhPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgMS0yLjUgMS40TDE4IDFsMS40IDIuNUwxOCA2bDIuNS0xLjRMMjMgNmwtMS40LTIuNUwyMyAxem0tOC4zNCA2LjIyIDIuMTIgMi4xMi0yLjQ0IDIuNDQuODEuODEgMi41NS0yLjU1YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMEwxMS40IDguODRsLjgxLjgxIDIuNDUtMi40M3ptLS43OCA2LjY1LTMuNzUtMy43NS02Ljg2LTYuODZMMiA0LjUzbDYuODYgNi44Ni02LjU3IDYuNTdhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDIuMzQgMi4zNGMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNi41Ny02LjU3TDE5LjQ3IDIybDEuMjctMS4yNy02Ljg2LTYuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEF1dG9TdG9yaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxLTUgNXYxMWw1LTQuNVYxek0xIDZ2MTQuNjVjMCAuMjUuMjUuNS41LjUuMSAwIC4xNS0uMDUuMjUtLjA1QzMuMSAyMC40NSA1LjA1IDIwIDYuNSAyMGMxLjk1IDAgNC4wNS40IDUuNSAxLjVWNmMtMS40NS0xLjEtMy41NS0xLjUtNS41LTEuNVMyLjQ1IDQuOSAxIDZ6bTIyIDEzLjVWNmMtLjYtLjQ1LTEuMjUtLjc1LTItMXYxMy41Yy0xLjEtLjM1LTIuMy0uNS0zLjUtLjUtMS43IDAtNC4xNS42NS01LjUgMS41djJjMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuNjUgMCAzLjM1LjMgNC43NSAxLjA1LjEuMDUuMTUuMDUuMjUuMDUuMjUgMCAuNS0uMjUuNS0uNXYtMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBdXRvZnBzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDMgNi4zaC0uMDZsLTEuMDIgMi44OWgyLjF6TTMgMTdoMnY1SDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE1YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnptLS42My0xMGgxLjI1bDIuNjMgN2gtMS4yMWwtLjYzLTEuNzloLTIuODNMOS45NiAxMkg4Ljc0bDIuNjMtN3pNNyAxN2gydjVIN3pNMTEgMTdoMnY1aC0yek0xNSAxN2g2djVoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZHRpbWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIybDIuMjcgMi4yN0E5Ljk1OSA5Ljk1OSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MiA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MnpNMTIuMzQgMi4wMmMtMi4xOC0uMDctNC4xOS41NS01Ljg1IDEuNjRsNC41OSA0LjU5Yy0uMjctMi4wNS4xLTQuMjIgMS4yNi02LjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWR0aW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMzQgMi4wMkM2LjU5IDEuODIgMiA2LjQyIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMy43MSAwIDYuOTMtMi4wMiA4LjY2LTUuMDItNy41MS0uMjUtMTIuMDktOC40My04LjMyLTE0Ljk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVyQ2lyY3VsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xek03IDkuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTMgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS0zLTNjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zLTZjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xNCA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtMS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptMyA2Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC00Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTItMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMC0zLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmx1ckxpbmVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTcuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxM2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXpNMyAyMWgxOHYtMkgzdjJ6TTUgOS41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjgzIDYuNSA1IDYuNSAzLjUgNy4xNyAzLjUgOCA0LjE3IDkuNSA1IDkuNXptMCA0Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek05IDE3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTgtLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0zIDN2MmgxOFYzSDN6bTE0IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTAgNGMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTEzIDljLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMCA0Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0tLjIgNC40OC4yLjAyYy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41bC4wMi4yYy4wOS42Ny42MSAxLjE5IDEuMjggMS4yOHpNMTQgMy41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXptLTQgMGMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTExIDdjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTggOGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bS00IDEzLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0yLjUgNS4yN2wzLjc4IDMuNzhMNiA5Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMWMwLS4xLS4wMy0uMTktLjA2LS4yOGwyLjgxIDIuODFjLS43MS4xMS0xLjI1LjczLTEuMjUgMS40NyAwIC44My42NyAxLjUgMS41IDEuNS43NCAwIDEuMzYtLjU0IDEuNDctMS4yNWwyLjgxIDIuODFBLjg3NS44NzUgMCAwIDAgMTQgMTdjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDMuNzggMy43OEwyMCAyMC4yMyAzLjc3IDQgMi41IDUuMjd6TTEwIDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTExLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTYgMTNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNMyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDExYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0tMy0zLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVyT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLThjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptLTMgLjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek02IDVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMTUgNS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wLTMuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bS0xMSAxMGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTcgN2MtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMTdjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMCA3Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptOCAuNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtNGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0zIDguNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTE0IDE3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAgMy41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptLTQtMTJjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wIDguNWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem00LTQuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAtNGMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyaWdodG5lc3MxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxMFwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDJjLTEuODIgMC0zLjUzLjUtNSAxLjM1QzcuOTkgNS4wOCAxMCA4LjMgMTAgMTJzLTIuMDEgNi45Mi01IDguNjVDNi40NyAyMS41IDguMTggMjIgMTAgMjJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTUuNTIgMiAxMCAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMmMtMS4wNSAwLTIuMDUuMTYtMyAuNDYgNC4wNiAxLjI3IDcgNS4wNiA3IDkuNTQgMCA0LjQ4LTIuOTQgOC4yNy03IDkuNTQuOTUuMyAxLjk1LjQ2IDMgLjQ2IDUuNTIgMCAxMC00LjQ4IDEwLTEwUzE0LjUyIDIgOSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTEyIDE4Yy0uODkgMC0xLjc0LS4yLTIuNS0uNTVDMTEuNTYgMTYuNSAxMyAxNC40MiAxMyAxMnMtMS40NC00LjUtMy41LTUuNDVDMTAuMjYgNi4yIDExLjExIDYgMTIgNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJpZ2h0bmVzczUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS4zMSAyMy4zMSAxMiAyMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OXpNMTIgMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNi0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjMxIDIzLjMxIDEyIDIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5ek0xMiAxOFY2YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcmlnaHRuZXNzNyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptMC0xMGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJyb2tlbkltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwem0yMSAxOWMwIDEuMS0uOSAyLTIgMkg1Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNXY2LjU5bC0zLTMuMDEtNCA0LjAxLTQtNC00IDQtMy0zLjAxVjVjMC0xLjEuOS0yIDItMmgxNGMxLjEgMCAyIC45IDIgMnptLTMgNi40MiAzIDMuMDFWMTljMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJ2LTYuNThsMyAyLjk5IDQtNCA0IDQgNC0zLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTRjLTEuNjYgMC0zIDEuMzQtMyAzIDAgMS4zMS0xLjE2IDItMiAyIC45MiAxLjIyIDIuNDkgMiA0IDIgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjY2LTEuMzQtMy0zLTN6bTEzLjcxLTkuMzctMS4zNC0xLjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMEw5IDEyLjI1IDExLjc1IDE1bDguOTYtOC45NmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJ1cnN0TW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSA1aDJ2MTRIMXptNCAwaDJ2MTRINXptMTcgMEgxMGMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMVY2YzAtLjU1LS40NS0xLTEtMXpNMTEgMTdsMi41LTMuMTVMMTUuMjkgMTZsMi41LTMuMjJMMjEgMTdIMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMy4yXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMiA3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJIOXptMyAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYUZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMjBINXYyaDV2MmwzLTMtMy0zdjJ6bTQgMHYyaDV2LTJoLTV6TTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTEuOTkuOS0xLjk5IDJTMTAuOSA4IDEyIDh6bTUtOEg3QzUuOSAwIDUgLjkgNSAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnpNNyAyaDEwdjEwLjVjMC0xLjY3LTMuMzMtMi41LTUtMi41cy01IC44My01IDIuNVYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1lcmFSZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMjBINXYyaDV2MmwzLTMtMy0zdjJ6bTQgMHYyaDV2LTJoLTV6bTMtMjBIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6bS01IDZjLTEuMTEgMC0yLS45LTItMnMuODktMiAxLjk5LTIgMiAuOSAyIDJDMTQgNS4xIDEzLjEgNiAxMiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1lcmFSb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNWMwLTEuMS0uOS0yLTItMmgtMVYyYzAtLjU1LS40NS0xLTEtMUg2Yy0uNTUgMC0xIC40NS0xIDF2MUg0Yy0xLjEgMC0yIC45LTIgMnYxNWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJoOFY1aC04em0tMiAxM2gtMnYtMmgydjJ6bTAtOWgtMlY3aDJ2MnptNCA5aC0ydi0yaDJ2MnptMC05aC0yVjdoMnYyem00IDloLTJ2LTJoMnYyem0wLTloLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuNCAxMC41IDQuNzctOC4yNmE5Ljk4NCA5Ljk4NCAwIDAgMC04LjQ5IDIuMDFsMy42NiA2LjM1LjA2LS4xek0yMS41NCA5Yy0uOTItMi45Mi0zLjE1LTUuMjYtNi02LjM0TDExLjg4IDloOS42NnptLjI2IDFoLTcuNDlsLjI5LjUgNC43NiA4LjI1QTkuOTEgOS45MSAwIDAgMCAyMiAxMmMwLS42OS0uMDctMS4zNS0uMi0yek04LjU0IDEybC0zLjktNi43NUE5Ljk1OCA5Ljk1OCAwIDAgMCAyLjIgMTRoNy40OWwtMS4xNS0yem0tNi4wOCAzYy45MiAyLjkyIDMuMTUgNS4yNiA2IDYuMzRMMTIuMTIgMTVIMi40NnptMTEuMjcgMC0zLjkgNi43NmE5Ljk4NCA5Ljk4NCAwIDAgMCA4LjQ5LTIuMDFsLTMuNjYtNi4zNS0uOTMgMS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDZWNGwtMi0yaC01TDkgNHYySDV2MTFzMSAyIDIgMmgxM3MyLS45OCAyLTJWNmgtNHpNNCA5SDJ2MTFjMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJINFY5em03LTRjMC0uNTUuNTMtMSAxLTFoM2MuNDYgMCAxIC41NCAxIDF2MWgtNVY1ek01IDZoMTd2MTFjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2VudGVyRm9jdXNTdHJvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptLTcgN0gzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDZW50ZXJGb2N1c1dlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1SDN2NGMwIDEuMS45IDIgMiAyaDR2LTJINXYtNHpNNSA1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnY0aDJWNXptMTQtMmgtNHYyaDR2NGgyVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6TTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2xsZWN0aW9uc0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTAtMi41LTEuNUwxNSAxMlY0aDV2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29sbGVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNlY0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ6bS0xMS00IDIuMDMgMi43MUwxNiAxMWw0IDVIOGwzLTR6TTIgNnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb2xvckxlbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzYTkgOSAwIDAgMCAwIDE4Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLS4zOS0uMTUtLjc0LS4zOS0xLjAxLS4yMy0uMjYtLjM4LS42MS0uMzgtLjk5IDAtLjgzLjY3LTEuNSAxLjUtMS41SDE2YzIuNzYgMCA1LTIuMjQgNS01IDAtNC40Mi00LjAzLTgtOS04em0tNS41IDljLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDkgNi41IDkgOCA5LjY3IDggMTAuNSA3LjMzIDEyIDYuNSAxMnptMy00QzguNjcgOCA4IDcuMzMgOCA2LjVTOC42NyA1IDkuNSA1czEuNS42NyAxLjUgMS41UzEwLjMzIDggOS41IDh6bTUgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzEzLjY3IDUgMTQuNSA1czEuNS42NyAxLjUgMS41UzE1LjMzIDggMTQuNSA4em0zIDRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNi42NyA5IDE3LjUgOXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbG9yaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNzEgNS42My0yLjM0LTIuMzRhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0zLjEyIDMuMTItMS45My0xLjkxLTEuNDEgMS40MSAxLjQyIDEuNDJMMyAxNi4yNVYyMWg0Ljc1bDguOTItOC45MiAxLjQyIDEuNDIgMS40MS0xLjQxLTEuOTItMS45MiAzLjEyLTMuMTJjLjQtLjQuNC0xLjAzLjAxLTEuNDJ6TTYuOTIgMTkgNSAxNy4wOGw4LjA2LTguMDYgMS45MiAxLjkyTDYuOTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbXBhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNXYyaDJWMWgtMnYyem0wIDE1SDVsNS02djZ6bTktMTVoLTV2Mmg1djEzbC01LTZ2OWg1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRyYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTB6bTEtMTcuOTNjMy45NC40OSA3IDMuODUgNyA3Ljkzcy0zLjA1IDcuNDQtNyA3LjkzVjQuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRyb2xQb2ludER1cGxpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTN6TTIgMTJjMC0yLjc5IDEuNjQtNS4yIDQuMDEtNi4zMlYzLjUyQzIuNTIgNC43NiAwIDguMDkgMCAxMnMyLjUyIDcuMjQgNi4wMSA4LjQ4di0yLjE2QTYuOTkgNi45OSAwIDAgMSAyIDEyem0xMy05Yy00Ljk2IDAtOSA0LjA0LTkgOXM0LjA0IDkgOSA5IDktNC4wNCA5LTktNC4wNC05LTktOXptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbnRyb2xQb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcDE2OSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdINWMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bTAgOEg1VjloMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcDMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNkg1Yy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEg1VjhoMTR2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcDU0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wNzUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1SDVjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxMkg1VjdoMTR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BEaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyb3BGcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wTGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNUg1Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTJINVY3aDE0djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wT3JpZ2luYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS01LjA0LTYuNzEtMi43NSAzLjU0LTEuOTYtMi4zNkw2LjUgMTdoMTFsLTMuNTQtNC43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3JvcFBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM0g3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wUm90YXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQ3IDIxLjQ5QzQuMiAxOS45MyAxLjg2IDE2Ljc2IDEuNSAxM0gwYy41MSA2LjE2IDUuNjYgMTEgMTEuOTUgMTEgLjIzIDAgLjQ0LS4wMi42Ni0uMDNMOC44IDIwLjE1bC0xLjMzIDEuMzR6TTEyLjA1IDBjLS4yMyAwLS40NC4wMi0uNjYuMDRsMy44MSAzLjgxIDEuMzMtMS4zM0MxOS44IDQuMDcgMjIuMTQgNy4yNCAyMi41IDExSDI0Yy0uNTEtNi4xNi01LjY2LTExLTExLjk1LTExek0xNiAxNGgyVjhhMiAyIDAgMCAwLTItMmgtNnYyaDZ2NnptLTggMlY0SDZ2Mkg0djJoMnY4YTIgMiAwIDAgMCAyIDJoOHYyaDJ2LTJoMnYtMkg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNEg2Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINlY2aDEydjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTVoMlY3YzAtMS4xLS45LTItMi0ySDl2Mmg4djh6TTcgMTdWMUg1djRIMXYyaDR2MTBjMCAxLjEuOSAyIDIgMmgxMHY0aDJ2LTRoNHYtMkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeUJpdGNvaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wNiAxMS41N2MuNTktLjY5Ljk0LTEuNTkuOTQtMi41NyAwLTEuODYtMS4yNy0zLjQzLTMtMy44N1YzaC0ydjJoLTJWM0g5djJINnYyaDJ2MTBINnYyaDN2Mmgydi0yaDJ2Mmgydi0yYzIuMjEgMCA0LTEuNzkgNC00IDAtMS40NS0uNzgtMi43My0xLjk0LTMuNDN6TTEwIDdoNGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJoLTRWN3ptNSAxMGgtNXYtNGg1YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lGcmFuYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDVWM0g3djEzSDV2MmgydjNoMnYtM2g0di0ySDl2LTNoOHYtMkg5VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEN1cnJlbmN5TGlyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOC43NlYzaDJ2NC41MUwxNSA1djIuMzZsLTQgMi41MS4wMSAyLjM1TDE1IDkuNzJ2Mi4zNmwtNCAyLjUxVjE5YzIuNzYgMCA1LTIuMjQgNS01aDJjMCAzLjg3LTMuMTMgNy03IDdIOXYtNS4xNmwtMyAxLjg4di0yLjM2bDMtMS44OHYtMi4zNkw2IDEzdi0yLjM2bDMtMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lQb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDIxYzEuOTMgMCAzLjYyLTEuMTcgNC0zbC0xLjc1LS44OEMxNiAxOC4yMSAxNS4zMyAxOSAxNCAxOUg5LjFjLjgzLTEgMS41LTIuMzQgMS41LTQgMC0uMzUtLjAzLS42OS0uMDgtMUgxNHYtMkg5LjgyQzkgMTAuNDIgOCA5LjYgOCA4YTMuNSAzLjUgMCAwIDEgNi43OC0xLjIyTDE2LjYzIDZjLS44LTIuMDUtMi43OS0zLjUtNS4xMy0zLjVDOC40NiAyLjUgNiA0Ljk2IDYgOGMwIDEuNzguNzkgMi45IDEuNDkgNEg2djJoMi40N2MuMDguMzEuMTMuNjQuMTMgMSAwIDIuNy0yLjYgNC0yLjYgNHYyaDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEN1cnJlbmN5UnVibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDNIN3Y5SDV2MmgydjJINXYyaDJ2M2gydi0zaDR2LTJIOXYtMmg0LjVjMy4wNCAwIDUuNS0yLjQ2IDUuNS01LjVTMTYuNTQgMyAxMy41IDN6bTAgOUg5VjVoNC41QzE1LjQzIDUgMTcgNi41NyAxNyA4LjVTMTUuNDMgMTIgMTMuNSAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3VycmVuY3lSdXBlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjY2IDdjLS41Ni0xLjE4LTEuNzYtMi0zLjE2LTJINlYzaDEydjJoLTMuMjZjLjQ4LjU4Ljg0IDEuMjYgMS4wNSAySDE4djJoLTIuMDJjLS4yNSAyLjgtMi42MSA1LTUuNDggNWgtLjczbDYuNzMgN2gtMi43N0w3IDE0di0yaDMuNWMxLjc2IDAgMy4yMi0xLjMgMy40Ni0zSDZWN2g3LjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDdXJyZW5jeVllbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkyIDExSDE4djJoLTV2Mmg1djJoLTV2NGgtMnYtNEg2di0yaDV2LTJINnYtMmg0LjA4TDUgM2gyLjM3TDEyIDEwLjI5IDE2LjYzIDNIMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEN1cnJlbmN5WXVhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjI4IDEySDE4djJoLTV2N2gtMnYtN0g2di0yaDQuNzJMNSAzaDIuMzdMMTIgMTAuMjkgMTYuNjMgM0gxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVibHVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM3YxOGE5IDkgMCAwIDAgMC0xOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzXCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIzXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIyMVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjNcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZWhhemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE1LjV2MmgyMHYtMkgyem0wLTV2MmgyMHYtMkgyem0wLTV2MmgyMHYtMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXRhaWxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyAyIDIxaDIwTDEyIDN6bTEgNS45MkwxOC42IDE5SDEzVjguOTJ6bS0yIDBWMTlINS40TDExIDguOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcnR5TGVucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjk1IDE5SDIwVjdINHYxMmg3LjI0Yy4xNC0uOTguNDItMi4wNS0uMTYtMi40My0uODktLjU5LTEuMjcgMi4wNi0yLjggMS4zNS0xLjM5LTEuMTIgMS4wNS0xLjI5LjUtMy4yNy0uMjItLjc5LTIuMjguMzYtMi40LTEuMjQtLjA4LTEgMS40OS0uNzQgMS41MS0xLjQ5LjAzLS43NS0xLjAzLTEuMDUtLjI1LTEuOTEuMjItLjI0LjcxLS4yNi45MS0uMTkuNzkuMjcgMS41NSAxLjgyIDIuNTEgMS4xOSAxLjAzLS42Ni0xLjg4LTIuMzUgMC0yLjg2IDEuNjQtLjQ0IDEuMzEgMi4wOCAyLjY1IDIuNDQgMS45NC41MiAyLjY1LTQuNTUgNC40MS0yLjMzIDEuODUgMi4zMy0zLjQzIDIuMjctMi44NSA0LjAxLjM0IDEuMDEgMi4xNS0xLjIgMi43Ni41My42NCAxLjgzLTMuMDkuODItMy4wNCAxLjY2LjA2LjgzIDIuNDEuNTUgMS42NCAyLjEyLTEuMTQgMS44Ni0zLTEuMDMtMy44MS4wOS0uMzkuNTctLjA5IDEuNDkuMTMgMi4zM3pNMjAgNWMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY3YzAtMS4xLjktMiAyLTJoMy4xN0w5IDNoNmwxLjgzIDJIMjB6bS0xLjg2IDEzLjAxYy0uNDcgMC0uODYtLjM4LS44Ni0uODZzLjM4LS44Ni44Ni0uODZjLjQ3IDAgLjg2LjM4Ljg2Ljg2cy0uMzguODYtLjg2Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek0yMC43MSA3LjA0YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV1cm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOC41QTYuNDggNi40OCAwIDAgMSA5LjI0IDE1SDE1bDEtMkg4LjU4Yy0uMDUtLjMzLS4wOC0uNjYtLjA4LTFzLjAzLS42Ny4wOC0xSDE1bDEtMkg5LjI0QTYuNDkxIDYuNDkxIDAgMCAxIDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQTguOTU1IDguOTU1IDAgMCAwIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDNsLTEgMmg0LjA2YTguMjYyIDguMjYyIDAgMCAwIDAgMkgzbC0xIDJoNC41MmMxLjI0IDMuNDkgNC41NiA2IDguNDggNiAyLjMxIDAgNC40MS0uODcgNi0yLjNsLTEuNzgtMS43N2MtMS4xMy45OC0yLjYgMS41Ny00LjIyIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cG9zdXJlTmVnMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExdjJoOHYtMkg0em0xNSA3aC0yVjcuMzhMMTQgOC40VjYuN0wxOC43IDVoLjN2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cG9zdXJlTmVnMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS4wNSAxNi4yOSAyLjg2LTMuMDdjLjM4LS4zOS43Mi0uNzkgMS4wNC0xLjE4LjMyLS4zOS41OS0uNzguODItMS4xNy4yMy0uMzkuNDEtLjc4LjU0LTEuMTdzLjE5LS43OS4xOS0xLjE4YzAtLjUzLS4wOS0xLjAyLS4yNy0xLjQ2LS4xOC0uNDQtLjQ0LS44MS0uNzgtMS4xMS0uMzQtLjMxLS43Ny0uNTQtMS4yNi0uNzFBNS43MiA1LjcyIDAgMCAwIDE2LjQ3IDVjLS42OSAwLTEuMzEuMTEtMS44NS4zMi0uNTQuMjEtMSAuNTEtMS4zNi44OC0uMzcuMzctLjY1LjgtLjg0IDEuMy0uMTguNDctLjI3Ljk3LS4yOCAxLjVoMi4xNGMuMDEtLjMxLjA1LS42LjEzLS44Ny4wOS0uMjkuMjMtLjU0LjQtLjc1LjE4LS4yMS40MS0uMzcuNjgtLjQ5LjI3LS4xMi42LS4xOC45Ni0uMTguMzEgMCAuNTguMDUuODEuMTUuMjMuMS40My4yNS41OS40My4xNi4xOC4yOC40LjM3LjY1LjA4LjI1LjEzLjUyLjEzLjgxIDAgLjIyLS4wMy40My0uMDguNjUtLjA2LjIyLS4xNS40NS0uMjkuNy0uMTQuMjUtLjMyLjUzLS41Ni44My0uMjMuMy0uNTIuNjUtLjg4IDEuMDNsLTQuMTcgNC41NVYxOEgyMXYtMS43MWgtNS45NXpNMiAxMXYyaDh2LTJIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwb3N1cmVQbHVzMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA3SDh2NEg0djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0xMCAxMWgtMlY3LjM4TDE1IDguNFY2LjdMMTkuNyA1aC4zdjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBvc3VyZVBsdXMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjA1IDE2LjI5IDIuODYtMy4wN2MuMzgtLjM5LjcyLS43OSAxLjA0LTEuMTguMzItLjM5LjU5LS43OC44Mi0xLjE3LjIzLS4zOS40MS0uNzguNTQtMS4xNy4xMy0uMzkuMTktLjc5LjE5LTEuMTggMC0uNTMtLjA5LTEuMDItLjI3LTEuNDYtLjE4LS40NC0uNDQtLjgxLS43OC0xLjExLS4zNC0uMzEtLjc3LS41NC0xLjI2LS43MUE1LjcyIDUuNzIgMCAwIDAgMTcuNDcgNWMtLjY5IDAtMS4zMS4xMS0xLjg1LjMyLS41NC4yMS0xIC41MS0xLjM2Ljg4LS4zNy4zNy0uNjUuOC0uODQgMS4zLS4xOC40Ny0uMjcuOTctLjI4IDEuNWgyLjE0Yy4wMS0uMzEuMDUtLjYuMTMtLjg3LjA5LS4yOS4yMy0uNTQuNC0uNzUuMTgtLjIxLjQxLS4zNy42OC0uNDkuMjctLjEyLjYtLjE4Ljk2LS4xOC4zMSAwIC41OC4wNS44MS4xNS4yMy4xLjQzLjI1LjU5LjQzLjE2LjE4LjI4LjQuMzcuNjUuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIydi0xLjcxaC01Ljk1ek04IDdINnY0SDJ2Mmg0djRoMnYtNGg0di0ySDhWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwb3N1cmVaZXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMTQgMTIuNWMwIDEtLjEgMS44NS0uMyAyLjU1LS4yLjctLjQ4IDEuMjctLjgzIDEuNy0uMzYuNDQtLjc5Ljc1LTEuMy45NS0uNTEuMi0xLjA3LjMtMS43LjMtLjYyIDAtMS4xOC0uMS0xLjY5LS4zLS41MS0uMi0uOTUtLjUxLTEuMzEtLjk1LS4zNi0uNDQtLjY1LTEuMDEtLjg1LTEuNy0uMi0uNy0uMy0xLjU1LS4zLTIuNTV2LTIuMDRjMC0xIC4xLTEuODUuMy0yLjU1LjItLjcuNDgtMS4yNi44NC0xLjY5LjM2LS40My44LS43NCAxLjMxLS45M0MxMC44MSA1LjEgMTEuMzggNSAxMiA1Yy42MyAwIDEuMTkuMSAxLjcuMjkuNTEuMTkuOTUuNSAxLjMxLjkzLjM2LjQzLjY0Ljk5Ljg0IDEuNjkuMi43LjMgMS41NC4zIDIuNTV2Mi4wNHptLTIuMTEtMi4zNmMwLS42NC0uMDUtMS4xOC0uMTMtMS42Mi0uMDktLjQ0LS4yMi0uNzktLjQtMS4wNi0uMTctLjI3LS4zOS0uNDYtLjY0LS41OC0uMjUtLjEzLS41NC0uMTktLjg2LS4xOS0uMzIgMC0uNjEuMDYtLjg2LjE4cy0uNDcuMzEtLjY0LjU4Yy0uMTcuMjctLjMxLjYyLS40IDEuMDZzLS4xMy45OC0uMTMgMS42MnYyLjY3YzAgLjY0LjA1IDEuMTguMTQgMS42Mi4wOS40NS4yMy44MS40IDEuMDlzLjM5LjQ4LjY0LjYxLjU0LjE5Ljg3LjE5Yy4zMyAwIC42Mi0uMDYuODctLjE5cy40Ni0uMzMuNjMtLjYxYy4xNy0uMjguMy0uNjQuMzktMS4wOS4wOS0uNDUuMTMtLjk5LjEzLTEuNjJ2LTIuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cG9zdXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNiA3aDV2MS41SDZWN3ptMTMgMTJINUwxOSA1djE0em0tNC41LTN2MkgxNnYtMmgydi0xLjVoLTJ2LTJoLTEuNXYyaC0yVjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlUmV0b3VjaGluZ05hdHVyYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC43NyA4LjU4LS45MiAyLjAxYy4wOS40Ni4xNS45My4xNSAxLjQxIDAgNC40MS0zLjU5IDgtOCA4cy04LTMuNTktOC04YzAtLjA1LjAxLS4xIDAtLjE0IDIuNi0uOTggNC42OS0yLjk5IDUuNzQtNS41NUExMCAxMCAwIDAgMCAxNy41IDEwYy40NSAwIC44OS0uMDQgMS4zMy0uMWwtLjYtMS4zMi0uODgtMS45My0xLjkzLS44OC0yLjc5LTEuMjcgMi43OS0xLjI3LjcxLS4zMkE5Ljg2IDkuODYgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtMS40Ny0uMzMtMi44Ny0uOS00LjEzbC0uMzMuNzF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC42IDUuNiAxOS41IDhsLTEuMS0yLjRMMTYgNC41bDIuNC0xLjFMMTkuNSAxbDEuMSAyLjRMMjMgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlUmV0b3VjaGluZ09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTBjLjc1IDAgMS40Ny0uMDkgMi4xNy0uMjQuMjEuNzEuMzMgMS40Ni4zMyAyLjI0IDAgMS4yMi0uMjggMi4zNy0uNzcgMy40bDEuNDkgMS40OUE5Ljk4MSA5Ljk4MSAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0xLjc4IDAtMy40NC40Ny00Ljg5IDEuMjhsNS4zMyA1LjMzYzEuNDkuODggMy4yMSAxLjM5IDUuMDYgMS4zOXpNMS44OSAzLjcybDIuMTkgMi4xOUE5Ljk1OCA5Ljk1OCAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMjkgMCA0LjQtLjc4IDYuMDktMi4wOGwyLjE5IDIuMTkgMS40MS0xLjQxTDMuMzEgMi4zMSAxLjg5IDMuNzJ6bTE0Ljc3IDE0Ljc3QTcuOTEgNy45MSAwIDAgMSAxMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0uMDUuMDEtLjEgMC0uMTRhOS45NDYgOS45NDYgMCAwIDAgMy42NC0yLjM5bDkuMDIgOS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMSAxMGgyVjVoLTR2Mmgydjh6bTctMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS00LTRoLTR2LTJoMmEyIDIgMCAwIDAgMi0yVjdhMiAyIDAgMCAwLTItMmgtNHYyaDR2MmgtMmEyIDIgMCAwIDAtMiAydjRoNnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTEuNWMwLS44My0uNjctMS41LTEuNS0xLjUuODMgMCAxLjUtLjY3IDEuNS0xLjVWN2EyIDIgMCAwIDAtMi0yaC00djJoNHYyaC0ydjJoMnYyaC00djJoNGEyIDIgMCAwIDAgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXI0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTEyIDEwaDJWNWgtMnY0aC0yVjVoLTJ2Nmg0djR6bTYtMTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTJhMiAyIDAgMCAwLTItMmgtMlY3aDRWNWgtNnY2aDR2MmgtNHYyaDRhMiAyIDAgMCAwIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTJWN2g0VjVoLTRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJ6bTAtNGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlcjcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yIDQtOFY1aC02djJoNGwtNCA4aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlcjggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJhMiAyIDAgMCAwIDItMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjUtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTNhMiAyIDAgMCAwIDIgMnptMC04aDJ2MmgtMlY3em0wIDRoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXI5UGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMSA3VjhhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmgxdjFIOXYyaDNhMiAyIDAgMCAwIDItMnptLTMtM1Y4aDF2MWgtMXptMTAtOEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgOGgtMlY3aC0ydjJoLTJ2MmgydjJoMnYtMmgydjZIN1YzaDE0djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlcjkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0xNSA1aC0yYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJ2MmgtNHYyaDRhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6bTAgNGgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyQkFuZFcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi03LTh2OEg1bDctOFY1aDd2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlckNlbnRlckZvY3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0ek0xMiA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVyRHJhbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNGE3LjQ4IDcuNDggMCAwIDAtNi42NCA0LjA0QTUuOTk2IDUuOTk2IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNGgyYzAtMi43Ni0xLjg2LTUuMDgtNC40LTUuNzhDOC42MSA2Ljg4IDEwLjIgNiAxMiA2YzMuMDMgMCA1LjUgMi40NyA1LjUgNS41di41SDE5YzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJGcmFtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC00bC00LTQtNCA0SDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNkg0VjZoNC41MmwzLjUyLTMuNUwxNS41MiA2SDIwdjE0ek0xOCA4SDZ2MTBoMTJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmlsdGVySGRyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpbHRlck5vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJUaWx0U2hpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA0LjA3VjIuMDVjLTIuMDEuMi0zLjg0IDEtNS4zMiAyLjIxTDcuMSA1LjY5QTcuOTQxIDcuOTQxIDAgMCAxIDExIDQuMDd6bTcuMzIuMTlBOS45NDkgOS45NDkgMCAwIDAgMTMgMi4wNXYyLjAyYzEuNDYuMTggMi43OS43NiAzLjkgMS42MmwxLjQyLTEuNDN6TTE5LjkzIDExaDIuMDJjLS4yLTIuMDEtMS0zLjg0LTIuMjEtNS4zMkwxOC4zMSA3LjFhNy45NDEgNy45NDEgMCAwIDEgMS42MiAzLjl6TTUuNjkgNy4xIDQuMjYgNS42OEE5Ljk0OSA5Ljk0OSAwIDAgMCAyLjA1IDExaDIuMDJjLjE4LTEuNDYuNzYtMi43OSAxLjYyLTMuOXpNNC4wNyAxM0gyLjA1Yy4yIDIuMDEgMSAzLjg0IDIuMjEgNS4zMmwxLjQzLTEuNDNBNy44NjggNy44NjggMCAwIDEgNC4wNyAxM3pNMTUgMTJjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDMgMS4zNCAzIDMgMyAzLTEuMzQgMy0zem0zLjMxIDQuOSAxLjQzIDEuNDNhOS45ODEgOS45ODEgMCAwIDAgMi4yMS01LjMyaC0yLjAyYTcuOTQ1IDcuOTQ1IDAgMCAxLTEuNjIgMy44OXpNMTMgMTkuOTN2Mi4wMmMyLjAxLS4yIDMuODQtMSA1LjMyLTIuMjFsLTEuNDMtMS40M2MtMS4xLjg2LTIuNDMgMS40NC0zLjg5IDEuNjJ6bS03LjMyLS4xOUE5Ljk4MSA5Ljk4MSAwIDAgMCAxMSAyMS45NXYtMi4wMmE3Ljk0MSA3Ljk0MSAwIDAgMS0zLjktMS42MmwtMS40MiAxLjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXJWaW50YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNyAxMi40YTYuMDYgNi4wNiAwIDAgMC0uODYtLjRjLjI5LS4xMS41OC0uMjQuODYtLjRhNi4wMTIgNi4wMTIgMCAwIDAgMy01LjE5IDYuMDA3IDYuMDA3IDAgMCAwLTYgMGMtLjI4LjE2LS41NC4zNS0uNzguNTQuMDUtLjMxLjA4LS42My4wOC0uOTUgMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTlDMTAuMjEgMS44NSA5IDMuNzggOSA2YzAgLjMyLjAzLjY0LjA4Ljk1LS4yNC0uMi0uNS0uMzktLjc4LS41NWE2LjAwOCA2LjAwOCAwIDAgMC02IDAgNS45NyA1Ljk3IDAgMCAwIDMgNS4xOWMuMjguMTYuNTcuMjkuODYuNC0uMjkuMTEtLjU4LjI0LS44Ni40YTYuMDEyIDYuMDEyIDAgMCAwLTMgNS4xOSA2LjAwNyA2LjAwNyAwIDAgMCA2IDBjLjI4LS4xNi41NC0uMzUuNzgtLjU0LS4wNS4zMi0uMDguNjQtLjA4Ljk2IDAgMi4yMiAxLjIxIDQuMTUgMyA1LjE5IDEuNzktMS4wNCAzLTIuOTcgMy01LjE5IDAtLjMyLS4wMy0uNjQtLjA4LS45NS4yNC4yLjUuMzguNzguNTRhNi4wMDggNi4wMDggMCAwIDAgNiAwIDYuMDEyIDYuMDEyIDAgMCAwLTMtNS4xOXpNMTIgMTZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS45NiAxMC4yOS0yLjc1IDMuNTQtMS45Ni0yLjM2TDguNSAxNWgxMWwtMy41NC00Ljcxek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTFIMXYyaDZ2LTJ6bTIuMTctMy4yNEw3LjA1IDUuNjQgNS42NCA3LjA1bDIuMTIgMi4xMiAxLjQxLTEuNDF6TTEzIDFoLTJ2NmgyVjF6bTUuMzYgNi4wNS0xLjQxLTEuNDEtMi4xMiAyLjEyIDEuNDEgMS40MSAyLjEyLTIuMTJ6TTE3IDExdjJoNnYtMmgtNnptLTUtMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTIuODMgNy4yNCAyLjEyIDIuMTIgMS40MS0xLjQxLTIuMTItMi4xMi0xLjQxIDEuNDF6bS05LjE5LjcxIDEuNDEgMS40MSAyLjEyLTIuMTItMS40MS0xLjQxLTIuMTIgMi4xMnpNMTEgMjNoMnYtNmgtMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGFzaEF1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDJ2MTJoM3Y5bDctMTJIOWw0LTlIM3ptMTYgMGgtMmwtMy4yIDloMS45bC43LTJoMy4ybC43IDJoMS45TDE5IDJ6bS0yLjE1IDUuNjVMMTggNGwxLjE1IDMuNjVoLTIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxhc2hPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zLjI3IDMgMiA0LjI3bDUgNVYxM2gzdjlsMy41OC02LjE0TDE3LjczIDIwIDE5IDE4LjczIDMuMjcgM3pNMTcgMTBoLTRsNC04SDd2Mi4xOGw4LjQ2IDguNDZMMTcgMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYXNoT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDJ2MTFoM3Y5bDctMTJoLTRsNC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlwQ2FtZXJhQW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtMy0xLjM0LTMtMy0zLTMgMS4zNC0zIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTBWOEg1LjA5QzYuNDcgNS42MSA5LjA1IDQgMTIgNGMzLjcyIDAgNi44NSAyLjU2IDcuNzQgNmgyLjA2Yy0uOTMtNC41Ni00Ljk2LTgtOS44LTgtMy4yNyAwLTYuMTggMS41OC04IDQuMDFWNEgydjZoNnpNMTYgMTR2MmgyLjkxYy0xLjM4IDIuMzktMy45NiA0LTYuOTEgNC0zLjcyIDAtNi44NS0yLjU2LTcuNzQtNkgyLjJjLjkzIDQuNTYgNC45NiA4IDkuOCA4IDMuMjcgMCA2LjE4LTEuNTggOC00LjAxVjIwaDJ2LTZoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsaXBDYW1lcmFJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOCAxM2MtMi43NiAwLTUtMi4yNC01LTVINWwyLjUtMi41TDEwIDEzSDhjMCAyLjIxIDEuNzkgNCA0IDQgLjU4IDAgMS4xMy0uMTMgMS42Mi0uMzVsLjc0Ljc0Yy0uNzEuMzctMS41LjYxLTIuMzYuNjF6bTQuNS0yLjVMMTQgMTNoMmMwLTIuMjEtMS43OS00LTQtNC0uNTggMC0xLjEzLjEzLTEuNjIuMzVsLS43NC0uNzNDMTAuMzUgOC4yNCAxMS4xNCA4IDEyIDhjMi43NiAwIDUgMi4yNCA1IDVoMmwtMi41IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDIxaDJ2LTJoLTJ2MnptNC0xMmgyVjdoLTJ2MnpNMyA1djE0YzAgMS4xLjkgMiAyIDJoNHYtMkg1VjVoNFYzSDVjLTEuMSAwLTIgLjktMiAyem0xNi0ydjJoMmMwLTEuMS0uOS0yLTItMnptLTggMjBoMlYxaC0ydjIyem04LTZoMnYtMmgtMnYyek0xNSA1aDJWM2gtMnYyem00IDhoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JhZGllbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA5aDJ2MmgtMnptLTIgMmgydjJIOXptNCAwaDJ2MmgtMnptMi0yaDJ2MmgtMnpNNyA5aDJ2Mkg3em0xMi02SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOSAxOEg3di0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptNCAwaC0ydi0yaDJ2MnptMi03aC0ydjJoMnYyaC0ydi0yaC0ydjJoLTJ2LTJoLTJ2Mkg5di0ySDd2Mkg1di0yaDJ2LTJINVY1aDE0djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek02IDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDhjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMi04YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptLTQgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JpZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNHYxLjQ1bDIgMlY0aDR2NGgtMy40NWwyIDJIMTR2MS40NWwyIDJWMTBoNHY0aC0zLjQ1bDIgMkgyMHYxLjQ1bDIgMlY0YzAtMS4xLS45LTItMi0ySDQuNTVsMiAySDh6bTggMGg0djRoLTRWNHpNMS4yNyAxLjI3IDAgMi41NWwyIDJWMjBjMCAxLjEuOSAyIDIgMmgxNS40NmwyIDIgMS4yNy0xLjI3TDEuMjcgMS4yN3pNMTAgMTIuNTUgMTEuNDUgMTRIMTB2LTEuNDV6bS02LTZMNS40NSA4SDRWNi41NXpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoMy40NWwuNTUuNTVWMTR6bTYgNmgtNHYtNGgzLjQ1bC41NS41NFYyMHptMiAwdi0xLjQ2TDE3LjQ2IDIwSDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcmlkT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOCAyMEg0di00aDR2NHptMC02SDR2LTRoNHY0em0wLTZINFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHptNiAxMmgtNHYtNGg0djR6bTAtNmgtNHYtNGg0djR6bTAtNmgtNFY0aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGRyRW5oYW5jZWRTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTYgMi42OS02IDYtNnptMCAyQzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0xIDdoLTJWOUg5VjdoMlY1aDJ2MmgydjJoLTJ2MnptMTEgOWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHptLTYtMS41YzAgLjYtLjQgMS4xLS45IDEuNEwxOCAyMmgtMS41bC0uOS0yaC0xLjF2MkgxM3YtNmgzLjVjLjggMCAxLjUuNyAxLjUgMS41djF6bS0xLjUgMHYtMWgtMnYxaDJ6bS0xMy0uNXYtMkg1djZIMy41di0yLjVoLTJWMjJIMHYtNmgxLjV2Mmgyem02LjUtMmMuOCAwIDEuNS43IDEuNSAxLjV2M2MwIC44LS43IDEuNS0xLjUgMS41SDYuNXYtNkgxMHptMCA0LjV2LTNIOHYzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNSAxNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4yLjktLjguOS0xLjR2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY0LjlsMS4xIDEuMWguNHptMC00LjVoMnYxaC0ydi0xem0tNC41IDB2LjRsMS41IDEuNXYtMS45YzAtLjgtLjctMS41LTEuNS0xLjVoLTEuOWwxLjUgMS41aC40em0tMy41LTEtNy03LTEuMSAxTDYuOSA5aC0uNHYyaC0yVjlIM3Y2aDEuNXYtMi41aDJWMTVIOHYtNC45bDEuNSAxLjVWMTVoMy40bDcuNiA3LjYgMS4xLTEuMS0xMi4xLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41SDE2djZoMS41di0yaDEuMWwuOSAySDIxbC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHptLTEuNSAwaC0ydi0xaDJ2MXptLTEzLS41aC0yVjlIM3Y2aDEuNXYtMi41aDJWMTVIOFY5SDYuNXYyek0xMyA5SDkuNXY2SDEzYy44IDAgMS41LS43IDEuNS0xLjV2LTNjMC0uOC0uNy0xLjUtMS41LTEuNXptMCA0LjVoLTJ2LTNoMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDE0LjVoMnYxaC0yek0xNC41IDcuNUgxNnYzaC0xLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTMuNWMwIC42LS40IDEuMS0uOSAxLjRMMTIgMTloLTEuNWwtLjktMkg4LjV2Mkg3di02aDMuNWMuOCAwIDEuNS43IDEuNSAxLjV2MXptMC0zLjVoLTEuNVY5LjVoLTJWMTJIN1Y2aDEuNXYyaDJWNkgxMnY2em01LjUgNEgxNnYxLjVoLTEuNVYxNkgxM3YtMS41aDEuNVYxM0gxNnYxLjQ5aDEuNVYxNnptMC01LjVjMCAuOC0uNyAxLjUtMS41IDEuNWgtM1Y2aDNjLjggMCAxLjUuNyAxLjUgMS41djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhkclN0cm9uZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02ek01IDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZHJXZWFrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMTItMmMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNzMgMTIuMDIgMy45OC0zLjk4YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtNC4zNC00LjM0YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtMy45OCAzLjk4TDggMi4yOWExLjAwMSAxLjAwMSAwIDAgMC0xLjQxIDBMMi4yNSA2LjYzYS45OTYuOTk2IDAgMCAwIDAgMS40MWwzLjk4IDMuOThMMi4yNSAxNmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsNC4zNCA0LjM0Yy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwzLjk4LTMuOTggMy45OCAzLjk4Yy4yLjIuNDUuMjkuNzEuMjkuMjYgMCAuNTEtLjEuNzEtLjI5bDQuMzQtNC4zNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTMuOTktMy45OHpNMTIgOWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tNC43MSAxLjk2TDMuNjYgNy4zNGwzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pNMTAgMTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAyYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTItNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0yLjY2IDkuMzQtMy42My0zLjYyIDMuNjMtMy42MyAzLjYyIDMuNjItMy42MiAzLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZXZjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDExaC0xVjlIM3Y2aDEuNXYtMi41aDFWMTVIN1Y5SDUuNXpNMjEgMTF2LTFjMC0uNTUtLjQ1LTEtMS0xaC0yYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWgyYy41NSAwIDEtLjQ1IDEtMXYtMWgtMS41di41aC0xdi0zaDF2LjVIMjF6TTE0LjI1IDEzLjUgMTMuNSA5SDEybDEgNmgyLjVsMS02SDE1ek04IDl2NmgzLjV2LTEuNWgtMnYtMWgyVjExaC0ydi0uNWgyVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhpZGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVjMC0xLjEtLjktMi0yLTJINS44M0wyMSAxOC4xN1Y1ek0yLjgxIDIuODEgMS4zOSA0LjIyIDMgNS44M1YxOWMwIDEuMS45IDIgMiAyaDEzLjE3bDEuNjEgMS42MSAxLjQxLTEuNDFMMi44MSAyLjgxek02IDE3bDMtNCAyLjI1IDMgLjgyLTEuMSAyLjEgMi4xSDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEltYWdlQXNwZWN0UmF0aW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6bS04LTRINnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6bTgtNkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbWFnZU5vdFN1cHBvcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjkgMjEuOS04LjQ5LTguNDktOS44Mi05LjgyTDIuMSAyLjEuNjkgMy41MSAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wyLjMxIDIuMzEgMS40Mi0xLjQxek01IDE4bDMuNS00LjUgMi41IDMuMDFMMTIuMTcgMTVsMyAzSDV6bTE2IC4xN0w1LjgzIDNIMTljMS4xIDAgMiAuOSAyIDJ2MTMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEltYWdlU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTN2N0g0VjZoNS4wMmMuMDUtLjcxLjIyLTEuMzguNDgtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi01bC0yLTJ6bS0xLjUgNWgtMTFsMi43NS0zLjUzIDEuOTYgMi4zNiAyLjc1LTMuNTR6bTIuOC05LjExYy40NC0uNy43LTEuNTEuNy0yLjM5QzIwIDQuMDEgMTcuOTkgMiAxNS41IDJTMTEgNC4wMSAxMSA2LjVzMi4wMSA0LjUgNC40OSA0LjVjLjg4IDAgMS43LS4yNiAyLjM5LS43TDIxIDEzLjQyIDIyLjQyIDEyIDE5LjMgOC44OXpNMTUuNSA5YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE5VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnpNOC41IDEzLjVsMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1bDMuNS00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluY29tcGxldGVDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0yLjc2IDEuMTItNS4yNiAyLjkzLTcuMDdMMTIgMTJWMmM1LjUyIDAgMTAgNC40OCAxMCAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSXNvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01LjUgNy41aDJ2LTJIOXYyaDJWOUg5djJINy41VjloLTJWNy41ek0xOSAxOUg1TDE5IDV2MTR6bS0yLTJ2LTEuNWgtNVYxN2g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTMuNzUgNSAyLjg1IDMuOC0xLjYgMS4yQzkuODEgMTMuNzUgNyAxMCA3IDEwbC02IDhoMjJMMTQgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGVha0FkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgM0gzdjNjMS42NiAwIDMtMS4zNCAzLTN6bTggMGgtMmE5IDkgMCAwIDEtOSA5djJjNi4wOCAwIDExLTQuOTMgMTEtMTF6bS00IDBIOGMwIDIuNzYtMi4yNCA1LTUgNXYyYzMuODcgMCA3LTMuMTMgNy03em0wIDE4aDJhOSA5IDAgMCAxIDktOXYtMmMtNi4wNyAwLTExIDQuOTMtMTEgMTF6bTggMGgzdi0zYy0xLjY2IDAtMyAxLjM0LTMgM3ptLTQgMGgyYzAtMi43NiAyLjI0LTUgNS01di0yYy0zLjg3IDAtNyAzLjEzLTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGVha1JlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNIOGMwIC4zNy0uMDQuNzItLjEyIDEuMDZsMS41OSAxLjU5QzkuODEgNC44NCAxMCAzLjk0IDEwIDN6TTMgNC4yN2wyLjg0IDIuODRDNS4wMyA3LjY3IDQuMDYgOCAzIDh2MmMxLjYxIDAgMy4wOS0uNTUgNC4yNy0xLjQ2TDguNyA5Ljk3QTguOTkgOC45OSAwIDAgMSAzIDEydjJjMi43MSAwIDUuMTktLjk5IDcuMTEtMi42MmwyLjUgMi41QTExLjA0NCAxMS4wNDQgMCAwIDAgMTAgMjFoMmMwLTIuMTYuNzYtNC4xNCAyLjAzLTUuNjlsMS40MyAxLjQzQTYuOTIyIDYuOTIyIDAgMCAwIDE0IDIxaDJjMC0xLjA2LjMzLTIuMDMuODktMi44NEwxOS43MyAyMSAyMSAxOS43MyA0LjI3IDMgMyA0LjI3ek0xNCAzaC0yYzAgMS41LS4zNyAyLjkxLTEuMDIgNC4xNmwxLjQ2IDEuNDZDMTMuNDIgNi45OCAxNCA1LjA2IDE0IDN6bTUuOTQgMTMuMTJjLjM0LS4wOC42OS0uMTIgMS4wNi0uMTJ2LTJjLS45NCAwLTEuODQuMTktMi42Ni41MmwxLjYgMS42em0tNC41Ni00LjU2IDEuNDYgMS40NkE4Ljk4IDguOTggMCAwIDEgMjEgMTJ2LTJjLTIuMDYgMC0zLjk4LjU4LTUuNjIgMS41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGVucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpbmtlZENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIzLjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCI1XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDMuMzNjMi41OCAwIDQuNjcgMi4wOSA0LjY3IDQuNjdIMjJjMC0zLjMxLTIuNjktNi02LTZ2MS4zM00xNiA2YzEuMTEgMCAyIC44OSAyIDJoMS4zM2MwLTEuODQtMS40OS0zLjMzLTMuMzMtMy4zM1Y2XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDBIMHYyNGgyNFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA5YzAtMS4xMS0uODktMi0yLTJWNEg5TDcuMTcgNkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjloLTV6bS01IDEwYy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9nb0RldiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek03LjY4IDE0Ljk4SDZWOWgxLjcxYzEuMjggMCAxLjcxIDEuMDMgMS43MSAxLjcxdjIuNTZjMCAuNjgtLjQyIDEuNzEtMS43NCAxLjcxem00LjctMy41MnYxLjA3SDExLjJ2MS4zOWgxLjkzdjEuMDdoLTIuMjVjLS40LjAxLS43NC0uMzEtLjc1LS43MVY5Ljc1Yy0uMDEtLjQuMzEtLjc0LjcxLS43NWgyLjI4djEuMDdIMTEuMnYxLjM5aDEuMTh6bTQuNSAyLjc3Yy0uNDggMS4xMS0xLjMzLjg5LTEuNzEgMEwxMy43NyA5aDEuMThsMS4wNyA0LjExTDE3LjA5IDloMS4xOGwtMS4zOSA1LjIzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc3IDEwLjEyaC0uNjN2My43N2guNjNjLjE0IDAgLjI4LS4wNS40Mi0uMTYuMTQtLjEuMjEtLjI2LjIxLS40N3YtMi41MmMwLS4yMS0uMDctLjM3LS4yMS0uNDdhLjcyLjcyIDAgMCAwLS40Mi0uMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvb2tzMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNLjAxIDBoMjR2MjRoLTI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wMSAzaC0xNGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCA3LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41LjgzIDAgMS41LjY3IDEuNSAxLjVWMTVhMiAyIDAgMCAxLTIgMmgtNHYtMmg0di0yaC0ydi0yaDJWOWgtNFY3aDRhMiAyIDAgMCAxIDIgMnYxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvb2tzNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNCAxNGgtMnYtNEg5VjdoMnY0aDJWN2gydjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb29rczUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQgNmgtNHYyaDJhMiAyIDAgMCAxIDIgMnYyYTIgMiAwIDAgMS0yIDJIOXYtMmg0di0ySDlWN2g2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvb2tzNiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDJ2LTJoLTJ2MnptOC0xMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDZoLTR2MmgyYTIgMiAwIDAgMSAyIDJ2MmEyIDIgMCAwIDEtMiAyaC0yYTIgMiAwIDAgMS0yLTJWOWEyIDIgMCAwIDEgMi0yaDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3NPbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTUgMTRoLTJWOWgtMlY3aDR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvb2tzVHdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS00IDhhMiAyIDAgMCAxLTIgMmgtMnYyaDR2Mkg5di00YTIgMiAwIDAgMSAyLTJoMlY5SDlWN2g0YTIgMiAwIDAgMSAyIDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9va3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMtMy44NiAwLTcgMy4xNC03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg2LTMuMTQtNy03LTd6bTAtNEM1LjkzIDYgMSAxMC45MyAxIDE3aDJjMC00Ljk2IDQuMDQtOSA5LTlzOSA0LjA0IDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb3VwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC01LjUxLTQuNDktMTAtMTAtMTB6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaWNFeHRlcm5hbE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjIgNS4xNyA4SDRsMSAxMGgxYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTR2LTEuMTdsNS43OCA1Ljc4IDEuNDEtMS40MnpNMTIgMThjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yaDFsLjU2LTUuNjFMMTIgMTQuODNWMTh6bTItMTJ2NS4xN2wtMi0yVjZjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNHYxMS4xN2wtMi0yVjZjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyem0tNC0xYzAgLjYyLS4yIDEuMTgtLjUyIDEuNjZMNS4zMyAyLjUxQTIuOTk2IDIuOTk2IDAgMCAxIDEwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pY0V4dGVybmFsT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjIyIDdINC43OEM0LjMgNi40NyA0IDUuNzcgNCA1YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDNjMCAuNzctLjMgMS40Ny0uNzggMnpNMTYgMmMyLjIxIDAgNCAxLjc5IDQgNHYxNmgtMlY2YzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNEg1TDQgOGg2TDkgMThIOGMwIDEuMS45IDIgMiAyczItLjkgMi0yVjZjMC0yLjIxIDEuNzktNCA0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vbm9jaHJvbWVQaG90b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6TS03NCAyOWg0OHY0OGgtNDhWMjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMkwxNSAzSDlMNy4yIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC04di0xYy0yLjggMC01LTIuMi01LTVzMi4yLTUgNS01VjdoOHYxMnptLTMtNmMwLTIuOC0yLjItNS01LTV2MS44YzEuOCAwIDMuMiAxLjQgMy4yIDMuMnMtMS40IDMuMi0zLjIgMy4yVjE4YzIuOCAwIDUtMi4yIDUtNXptLTguMiAwYzAgMS44IDEuNCAzLjIgMy4yIDMuMlY5LjhjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW90aW9uUGhvdG9zQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODggNy44OCAxLjU0IDEuNTRDNC4xNSAxMC4yMyA0IDExLjEgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45IDAtMS43Ny4xNS0yLjU4LjQyTDcuODkgMi44OUM5LjE1IDIuMzIgMTAuNTQgMiAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuNDcuMzItMi44Ni44OC00LjEyek03IDUuNUM3IDYuMzMgNi4zMyA3IDUuNSA3UzQgNi4zMyA0IDUuNSA0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41em01LjAzIDMuNDloLS4wN0wxMC44IDEyLjNoMi4zOWwtMS4xNi0zLjMxek0xMiAxOGMzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNi02IDIuNjktNiA2IDIuNjkgNiA2IDZ6bS0uNzEtMTAuNWgxLjQzbDMuMDEgOGgtMS4zOWwtLjcyLTIuMDRoLTMuMjNsLS43MyAyLjA0SDguMjhsMy4wMS04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3Rpb25QaG90b3NPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC44NCAyMC44NCAzLjE2IDMuMTYgMS44OSA0LjQzbDEuODkgMS44OUE5LjkyIDkuOTIgMCAwIDAgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAyLjExIDAgNC4wNy0uNjYgNS42OC0xLjc3bDEuODkgMS44OSAxLjI3LTEuMjh6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNTUuNDUtMyAxLjIyLTQuMjNsMS40NiAxLjQ2QzYuMjUgMTAuMDYgNiAxMSA2IDEyYzAgMy4zMSAyLjY5IDYgNiA2IDEgMCAxLjk0LS4yNSAyLjc3LS42OGwxLjQ2IDEuNDZBNy45NTEgNy45NTEgMCAwIDEgMTIgMjB6TTYuMzIgMy43N0E5Ljk4NiA5Ljk4NiAwIDAgMSAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwIDAgMi4xMS0uNjYgNC4wNy0xLjc3IDUuNjhsLTEuNDUtMS40NUE3Ljk1MSA3Ljk1MSAwIDAgMCAyMCAxMmMwLTQuNDEtMy41OS04LTgtOC0xLjU1IDAtMyAuNDUtNC4yMyAxLjIyTDYuMzIgMy43N3pNMTggMTJjMCAxLS4yNSAxLjk0LS42OCAyLjc3TDkuMjMgNi42OEMxMC4wNiA2LjI1IDExIDYgMTIgNmMzLjMxIDAgNiAyLjY5IDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW90aW9uUGhvdG9zT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjg4IDcuODggMS41NCAxLjU0QzQuMTUgMTAuMjMgNCAxMS4xIDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOSAwLTEuNzcuMTUtMi41OC40Mkw3Ljg5IDIuODlDOS4xNSAyLjMyIDEwLjU0IDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjQ3LjMyLTIuODYuODgtNC4xMnpNNiAxMmMwLTMuMzEgMi42OS02IDYtNnM2IDIuNjkgNiA2LTIuNjkgNi02IDYtNi0yLjY5LTYtNnptMS02LjVDNyA2LjMzIDYuMzMgNyA1LjUgN1M0IDYuMzMgNCA1LjUgNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW90aW9uUGhvdG9zUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjg4IDcuODggMS41NCAxLjU0QzQuMTUgMTAuMjMgNCAxMS4xIDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOSAwLTEuNzcuMTUtMi41OC40Mkw3Ljg5IDIuODlDOS4xNSAyLjMyIDEwLjU0IDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjQ3LjMyLTIuODYuODgtNC4xMnpNNyA1LjVDNyA2LjMzIDYuMzMgNyA1LjUgN1M0IDYuMzMgNCA1LjUgNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNXptNSAuNWMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bS0xIDlIOVY5aDJ2NnptNCAwaC0yVjloMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3Rpb25QaG90b3NQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjE5LjIyLTIuMzIuNi0zLjM4bDEuODguNjhDNC4xNyAxMC4xNCA0IDExLjA1IDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOTUgMC0xLjg1LjE3LTIuNjkuNDhsLS42OC0xLjg5QzkuNjkgMi4yMiAxMC44MiAyIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTB6TTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjVTNC42NyA3IDUuNSA3IDcgNi4zMyA3IDUuNSA2LjMzIDQgNS41IDR6TTExIDE2VjhIOXY4aDJ6bTQgMFY4aC0ydjhoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92aWVDcmVhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDQgMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRIOGwyIDRIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92aWVGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA0IDIgM2gtM2wtMi0zaC0ybDIgM2gtM2wtMi0zSDhsMiAzSDdMNSA0SDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRoLTR6bS02Ljc1IDExLjI1TDEwIDE4bC0xLjI1LTIuNzVMNiAxNGwyLjc1LTEuMjVMMTAgMTBsMS4yNSAyLjc1TDE0IDE0bC0yLjc1IDEuMjV6bTUuNjktMy4zMUwxNiAxNGwtLjk0LTIuMDZMMTMgMTFsMi4wNi0uOTRMMTYgOGwuOTQgMi4wNkwxOSAxMWwtMi4wNi45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek02LjUgOUgxMWMuNTUgMCAxIC40NSAxIDF2NWgtMS41di00LjVoLTF2M0g4di0zSDdWMTVINS41di01YzAtLjU1LjQ1LTEgMS0xem05IDZIMTRWOWgzLjVjLjU1IDAgMSAuNDUgMSAxdjIuNWMwIC41NS0uNDUgMS0xIDFoLTJWMTV6bTAtM0gxN3YtMS41aC0xLjVWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11c2ljTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDN2MTAuNTVjLS41OS0uMzQtMS4yNy0uNTUtMi0uNTUtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00VjdoNFYzaC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNdXNpY09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMjcgMyAzIDQuMjdsOSA5di4yOGMtLjU5LS4zNC0xLjI3LS41NS0yLS41NS0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTR2LTEuNzNMMTkuNzMgMjEgMjEgMTkuNzMgNC4yNyAzek0xNCA3aDRWM2gtNnY1LjE4bDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmF0dXJlUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuMTcgOS4xN2MwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgN0E2Ljk4IDYuOTggMCAwIDAgMTQgMTYuMDZWMjBINnYtM2gxdi00YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2NGgxdjVoMTZ2LTJoLTN2LTMuODhhNyA3IDAgMCAwIDYuMTctNi45NXpNNC41IDExYy44MyAwIDEuNS0uNjcgMS41LTEuNVM1LjMzIDggNC41IDggMyA4LjY3IDMgOS41IDMuNjcgMTEgNC41IDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxNi4xMmE3IDcgMCAwIDAgNi4xNy02Ljk1YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3QTYuOTggNi45OCAwIDAgMCAxMSAxNi4wNlYyMEg1djJoMTR2LTJoLTZ2LTMuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5hdmlnYXRlQmVmb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDEgNy40MSAxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmF2aWdhdGVOZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNiA4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbGV0dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwYTIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLS42MS0uMjMtMS4yLS42NC0xLjY3YS41MjguNTI4IDAgMCAxLS4xMy0uMzNjMC0uMjguMjItLjUuNS0uNUgxNmMzLjMxIDAgNi0yLjY5IDYtNiAwLTQuOTYtNC40OS05LTEwLTl6bTUuNSAxMWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bS0zLTRjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA2IDE0LjUgNnMxLjUuNjcgMS41IDEuNVMxNS4zMyA5IDE0LjUgOXpNNSAxMS41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzcuMzMgMTMgNi41IDEzIDUgMTIuMzMgNSAxMS41em02LTRjMCAuODMtLjY3IDEuNS0xLjUgMS41UzggOC4zMyA4IDcuNSA4LjY3IDYgOS41IDZzMS41LjY3IDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hRmlzaEV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYW5vcmFtYUhvcml6b250YWxTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS40MyA0Yy0uMSAwLS4yLjAyLS4zMS4wNkMxOC4xOCA1LjE2IDE1LjA5IDUuNyAxMiA1LjdzLTYuMTgtLjU1LTkuMTItMS42NEEuOTQuOTQgMCAwIDAgMi41NyA0Yy0uMzQgMC0uNTcuMjMtLjU3LjYzdjE0Ljc1YzAgLjM5LjIzLjYyLjU3LjYyLjEgMCAuMi0uMDIuMzEtLjA2IDIuOTQtMS4xIDYuMDMtMS42NCA5LjEyLTEuNjRzNi4xOC41NSA5LjEyIDEuNjRjLjExLjA0LjIxLjA2LjMxLjA2LjMzIDAgLjU3LS4yMy41Ny0uNjNWNC42M2MwLS40LS4yNC0uNjMtLjU3LS42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNi41NHYxMC45MWMtMi42LS43Ny01LjI4LTEuMTYtOC0xLjE2LTIuNzIgMC01LjQuMzktOCAxLjE2VjYuNTRjMi42Ljc3IDUuMjggMS4xNiA4IDEuMTYgMi43Mi4wMSA1LjQtLjM4IDgtMS4xNk0yMS40MyA0Yy0uMSAwLS4yLjAyLS4zMS4wNkMxOC4xOCA1LjE2IDE1LjA5IDUuNyAxMiA1LjdjLTMuMDkgMC02LjE4LS41NS05LjEyLTEuNjRBLjk0Ljk0IDAgMCAwIDIuNTcgNGMtLjM0IDAtLjU3LjIzLS41Ny42M3YxNC43NWMwIC4zOS4yMy42Mi41Ny42Mi4xIDAgLjItLjAyLjMxLS4wNiAyLjk0LTEuMSA2LjAzLTEuNjQgOS4xMi0xLjY0IDMuMDkgMCA2LjE4LjU1IDkuMTIgMS42NC4xMS4wNC4yMS4wNi4zMS4wNi4zMyAwIC41Ny0uMjMuNTctLjYzVjQuNjNjMC0uNC0uMjQtLjYzLS41Ny0uNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hUGhvdG9zcGhlcmVTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi40OSA4LjUxYy0uNDctLjIzLS45My0uNDQtMS40LS42NEMxOS41MiA0LjQxIDE2LjA1IDIgMTIgMlM0LjQ3IDQuNDEgMi45IDcuODhjLS40Ny4yLS45My40MS0xLjQuNjMtLjMxLjE1LS41LjQ4LS41LjgzdjUuMzJjMCAuMzUuMTkuNjguNTEuODMuNDcuMjMuOTMuNDQgMS4zOS42NCAzLjU1IDcuODMgMTQuNjUgNy44MiAxOC4yIDAgLjQ3LS4yLjkzLS40MSAxLjM5LS42My4zMS0uMTcuNTEtLjQ5LjUxLS44NFY5LjM0YS45MS45MSAwIDAgMC0uNTEtLjgzek0xMiAzLjhjMi42IDAgNC45MSAxLjIzIDYuNDEgMy4xMi00LjEtMS4xOS04LjQ4LTEuMjYtMTIuODMuMDFDNy4wOCA1LjAzIDkuNCAzLjggMTIgMy44ek01LjYgMTcuMDhjNC4xOSAxLjIyIDguNTcgMS4yMyAxMi44Mi0uMDFhOC4xMzYgOC4xMzYgMCAwIDEtMTIuODIuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hUGhvdG9zcGhlcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS40IDExLjMydjIuOTNjLS4xLjA1LTIuMTcuODUtMy4zMyAxLjE3LS45NC4yNi0zLjg0LjczLTYuMDcuNzMtMy43IDAtNy0uNy05LjE2LTEuOC0uMDgtLjA0LS4xNi0uMDYtLjI0LS4xVjkuNzZjNi4wMi0yLjg0IDEyLjYtMi45MiAxOC44IDB2MS41NnptLTkuMzkgOC44OGMtMi41IDAtNC44Ny0xLjE1LTYuNDEtMy4xMiA0LjE5IDEuMjIgOC41NyAxLjIzIDEyLjgyLS4wMWE4LjEzNiA4LjEzNiAwIDAgMS02LjQxIDMuMTN6TTEyIDMuOGMyLjYgMCA0LjkxIDEuMjMgNi40MSAzLjEyLTQuMS0xLjE5LTguNDgtMS4yNi0xMi44My4wMUM3LjA4IDUuMDMgOS40IDMuOCAxMiAzLjh6bTEwLjQ5IDQuNzFjLS40Ny0uMjMtLjkzLS40NC0xLjQtLjY0QzE5LjUyIDQuNDEgMTYuMDUgMiAxMiAyUzQuNDcgNC40MSAyLjkgNy44OGMtLjQ3LjItLjkzLjQxLTEuNC42My0uMzEuMTUtLjUuNDgtLjUuODN2NS4zMmMwIC4zNS4xOS42OC41MS44My40Ny4yMy45My40NCAxLjM5LjY0IDMuNTUgNy44MyAxNC42NSA3LjgyIDE4LjIgMCAuNDctLjIuOTMtLjQxIDEuMzktLjYzLjMxLS4xNy41MS0uNDkuNTEtLjg0VjkuMzRhLjkxLjkxIDAgMCAwLS41MS0uODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hVmVydGljYWxTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45MyAyMS4xMmMtMS4xLTIuOTQtMS42NC02LjAzLTEuNjQtOS4xMnMuNTUtNi4xOCAxLjY0LTkuMTJjLjA1LS4xMS4wNy0uMjIuMDctLjMxIDAtLjM0LS4yNC0uNTctLjY0LS41N0g0LjYyYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcgOC45MSA1LjcgMTJzLS41NSA2LjE4LTEuNjQgOS4xMmMtLjA1LjExLS4wNy4yMi0uMDcuMzEgMCAuMzMuMjMuNTcuNjMuNTdoMTQuNzVjLjM5IDAgLjYzLS4yNC42My0uNTcgMC0uMS0uMDItLjItLjA3LS4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWFWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk0IDIxLjEyYy0xLjEtMi45NC0xLjY0LTYuMDMtMS42NC05LjEyIDAtMy4wOS41NS02LjE4IDEuNjQtOS4xMmEuOTQuOTQgMCAwIDAgLjA2LS4zMWMwLS4zNC0uMjMtLjU3LS42My0uNTdINC42M2MtLjQgMC0uNjMuMjMtLjYzLjU3IDAgLjEuMDIuMi4wNi4zMUM1LjE2IDUuODIgNS43MSA4LjkxIDUuNzEgMTJjMCAzLjA5LS41NSA2LjE4LTEuNjQgOS4xMi0uMDUuMTEtLjA3LjIyLS4wNy4zMSAwIC4zMy4yMy41Ny42My41N2gxNC43NWMuMzkgMCAuNjMtLjI0LjYzLS41Ny0uMDEtLjEtLjAzLS4yLS4wNy0uMzF6TTYuNTQgMjBjLjc3LTIuNiAxLjE2LTUuMjggMS4xNi04IDAtMi43Mi0uMzktNS40LTEuMTYtOGgxMC45MWMtLjc3IDIuNi0xLjE2IDUuMjgtMS4xNiA4IDAgMi43Mi4zOSA1LjQgMS4xNiA4SDYuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hV2lkZUFuZ2xlU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMtMi43MyAwLTUuMjIuMjQtNy45NS43MmwtLjkzLjE2LS4yNS45QzIuMjkgNy44NSAyIDkuOTMgMiAxMnMuMjkgNC4xNS44NyA2LjIybC4yNS44OS45My4xNmMyLjczLjQ5IDUuMjIuNzMgNy45NS43M3M1LjIyLS4yNCA3Ljk1LS43MmwuOTMtLjE2LjI1LS44OWMuNTgtMi4wOC44Ny00LjE2Ljg3LTYuMjNzLS4yOS00LjE1LS44Ny02LjIybC0uMjUtLjg5LS45My0uMTZDMTcuMjIgNC4yNCAxNC43MyA0IDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhbm9yYW1hV2lkZUFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMyLjQ1IDAgNC43MS4yIDcuMjkuNjRBMjEgMjEgMCAwIDEgMjAgMTJhMjEgMjEgMCAwIDEtLjcxIDUuMzZjLTIuNTguNDQtNC44NC42NC03LjI5LjY0cy00LjcxLS4yLTcuMjktLjY0QTIxIDIxIDAgMCAxIDQgMTJhMjEgMjEgMCAwIDEgLjcxLTUuMzZDNy4yOSA2LjIgOS41NSA2IDEyIDZtMC0yYy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFub3JhbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxOFY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJ6TTguNSAxMi41bDIuNSAzLjAxTDE0LjUgMTFsNC41IDZINWwzLjUtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b0FsYnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDJoNXY3bC0yLjUtMS41TDExIDExVjR6TTcgMThsMi4zOC0zLjE3TDExIDE3bDIuNjItMy41TDE3IDE4SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvQ2FtZXJhQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVjMS4xIDAgMiAuOSAyIDJ2MTJjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWN2MwLTEuMS45LTIgMi0yaDMuMTdMOSAzaDZsMS44MyAySDIwem0wIDE0VjdINHYxMmgxNnptLTYtNy0zIDMuNzJMOSAxM2wtMyA0aDEybC00LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxMC40OCA0LTMuOTh2MTFsLTQtMy45OFYxOGMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTJjMS4xIDAgMiAuOSAyIDJ2NC40OHptLTItLjc5VjZINHYxMmgxMlY5LjY5ek0xMCAxMmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTAgMWMxLjM0IDAgNCAuNjcgNCAydjFINnYtMWMwLTEuMzMgMi42Ni0yIDQtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9DYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjMuMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDIgNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAySDl6bTMgMTVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG90b0ZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDIgMTB2OUg1VjVoOVYzSDUuMDJjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ6TTE3IDEwbC45NC0yLjA2TDIwIDdsLTIuMDYtLjk0TDE3IDRsLS45NCAyLjA2TDE0IDdsMi4wNi45NHptLTMuNzUuNzVMMTIgOGwtMS4yNSAyLjc1TDggMTJsMi43NSAxLjI1TDEyIDE2bDEuMjUtMi43NUwxNiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9MaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZWNGMwLTEuMS0uOS0yLTItMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yem0tMTEtNCAyLjAzIDIuNzFMMTYgMTFsNCA1SDhsMy00ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9TaXplU2VsZWN0QWN0dWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM0MyIDMgMSA0IDEgNXYxNGMwIDEuMS45IDIgMiAyaDE4YzEgMCAyLTEgMi0yVjVjMC0xLTEtMi0yLTJ6TTUgMTdsMy41LTQuNSAyLjUgMy4wMUwxNC41IDExbDQuNSA2SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvU2l6ZVNlbGVjdExhcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE1aDJ2MmgtMnYtMnptMC00aDJ2MmgtMnYtMnptMiA4aC0ydjJjMSAwIDItMSAyLTJ6TTEzIDNoMnYyaC0yVjN6bTggNGgydjJoLTJWN3ptMC00djJoMmMwLTEtMS0yLTItMnpNMSA3aDJ2MkgxVjd6bTE2LTRoMnYyaC0yVjN6bTAgMTZoMnYyaC0ydi0yek0zIDNDMiAzIDEgNCAxIDVoMlYzem02IDBoMnYySDlWM3pNNSAzaDJ2Mkg1VjN6bS00IDh2OGMwIDEuMS45IDIgMiAyaDEyVjExSDF6bTIgOCAyLjUtMy4yMSAxLjc5IDIuMTUgMi41LTMuMjJMMTMgMTlIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvdG9TaXplU2VsZWN0U21hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTI0IDI0SDBWMGgyNHYyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTVoLTJ2Mmgydi0yem0wLTRoLTJ2Mmgydi0yem0wIDhoLTJ2MmMxIDAgMi0xIDItMnpNMTUgM2gtMnYyaDJWM3ptOCA0aC0ydjJoMlY3em0tMi00djJoMmMwLTEtMS0yLTItMnpNMyAyMWg4di02SDF2NGMwIDEuMS45IDIgMiAyek0zIDdIMXYyaDJWN3ptMTIgMTJoLTJ2Mmgydi0yem00LTE2aC0ydjJoMlYzem0wIDE2aC0ydjJoMnYtMnpNMyAzQzIgMyAxIDQgMSA1aDJWM3ptMCA4SDF2Mmgydi0yem04LThIOXYyaDJWM3pNNyAzSDV2MmgyVjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yek04LjUgMTMuNWwyLjUgMy4wMUwxNC41IDEybDQuNSA2SDVsMy41LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGljdHVyZUFzUGRmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS04LjUgNy41YzAgLjgzLS42NyAxLjUtMS41IDEuNUg5djJINy41VjdIMTBjLjgzIDAgMS41LjY3IDEuNSAxLjV2MXptNSAyYzAgLjgzLS42NyAxLjUtMS41IDEuNWgtMi41VjdIMTVjLjgzIDAgMS41LjY3IDEuNSAxLjV2M3ptNC0zSDE5djFoMS41VjExSDE5djJoLTEuNVY3aDN2MS41ek05IDkuNWgxdi0xSDl2MXpNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTEwIDUuNWgxdi0zaC0xdjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTIuMjVjMS4yNCAwIDIuMjUtMS4wMSAyLjI1LTIuMjVTMTMuMjQgNy43NSAxMiA3Ljc1IDkuNzUgOC43NiA5Ljc1IDEwczEuMDEgMi4yNSAyLjI1IDIuMjV6bTQuNSA0YzAtMS41LTMtMi4yNS00LjUtMi4yNXMtNC41Ljc1LTQuNSAyLjI1VjE3aDl2LS43NXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYXdPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4xNSAxNC4zMi41OS0yLjM2Ljc2IDMuMDRoMS40OGwxLjUtNmgtMS41bC0uNzQgMy0uNzQtM2gtMS41MmwtLjc0IDMtLjc0LTNIMTRsLjcyIDIuOXpNMS4zOSA0LjIyIDYuMTcgOUgzdjZoMS41di0yaDEuMWwuOSAySDhsLS45LTIuMWMuNS0uMy45LS44LjktMS40di0uNjdsMS40MyAxLjQzTDguNzUgMTVoMS41bC4zOC0xLjVoLjA0bDkuMTEgOS4xMSAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnpNNi41IDExLjVoLTJ2LTFoMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYXdPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA5SDN2NmgxLjV2LTJoMS4xbC45IDJIOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LTFDOCA5LjcgNy4zIDkgNi41IDl6bTAgMi41aC0ydi0xaDJ2MXpNMTAuMjUgOWwtMS41IDZoMS41bC4zOC0xLjVoMS43NWwuMzcgMS41aDEuNWwtMS41LTZoLTIuNXptLjc1IDMgLjI1LTFoLjVsLjI1IDFoLTF6TTE5Ljk4IDlsLS43NCAzLS43NC0zaC0xLjUybC0uNzQgMy0uNzQtM0gxNGwxLjUgNmgxLjQ4bC43Ni0zLjA0Ljc2IDMuMDRoMS40OGwxLjUtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVjZWlwdExvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgMy41IDE4IDJsLTEuNSAxLjVMMTUgMmwtMS41IDEuNUwxMiAybC0xLjUgMS41TDkgMiA3LjUgMy41IDYgMnYxNEgzdjNjMCAxLjY2IDEuMzQgMyAzIDNoMTJjMS42NiAwIDMtMS4zNCAzLTNWMmwtMS41IDEuNXpNMTkgMTljMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF2LTNIOFY1aDExdjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdoNnYySDl6TTE2IDdoMnYyaC0yek05IDEwaDZ2Mkg5ek0xNiAxMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlbW92ZVJlZEV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDQuNUM3IDQuNSAyLjczIDcuNjEgMSAxMmMxLjczIDQuMzkgNiA3LjUgMTEgNy41czkuMjctMy4xMSAxMS03LjVjLTEuNzMtNC4zOS02LTcuNS0xMS03LjV6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptMC04Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm90YXRlOTBEZWdyZWVzQ2N3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4zNCA2LjQxLjg2IDEyLjlsNi40OSA2LjQ4IDYuNDktNi40OC02LjUtNi40OXpNMy42OSAxMi45bDMuNjYtMy42NkwxMSAxMi45bC0zLjY2IDMuNjYtMy42NS0zLjY2em0xNS42Ny02LjI2QTguOTUgOC45NSAwIDAgMCAxMyA0Vi43Nkw4Ljc2IDUgMTMgOS4yNFY2YzEuNzkgMCAzLjU4LjY4IDQuOTUgMi4wNWE3LjAwNyA3LjAwNyAwIDAgMSAwIDkuOSA2Ljk3MyA2Ljk3MyAwIDAgMS03Ljc5IDEuNDRsLTEuNDkgMS40OUMxMC4wMiAyMS42MiAxMS41MSAyMiAxMyAyMmMyLjMgMCA0LjYxLS44OCA2LjM2LTIuNjRhOC45OCA4Ljk4IDAgMCAwIDAtMTIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvdGF0ZTkwRGVncmVlc0N3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC42NCAxOS4zN2MzLjAzIDMuMDMgNy42NyAzLjQ0IDExLjE1IDEuMjVsLTEuNDYtMS40NmMtMi42NiAxLjQzLTYuMDQgMS4wMy04LjI4LTEuMjFhNy4wMDcgNy4wMDcgMCAwIDEgMC05LjlDNy40MiA2LjY5IDkuMjEgNi4wMyAxMSA2LjAzVjlsNC00LTQtNHYzLjAxYy0yLjMgMC00LjYxLjg3LTYuMzYgMi42My0zLjUyIDMuNTEtMy41MiA5LjIxIDAgMTIuNzN6TTExIDEzbDYgNiA2LTYtNi02LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMTEgOC41MyA1LjcgNy4xMUM0LjggOC4yNyA0LjI0IDkuNjEgNC4wNyAxMWgyLjAyYy4xNC0uODcuNDktMS43MiAxLjAyLTIuNDd6TTYuMDkgMTNINC4wN2MuMTcgMS4zOS43MiAyLjczIDEuNjIgMy44OWwxLjQxLTEuNDJjLS41Mi0uNzUtLjg3LTEuNTktMS4wMS0yLjQ3em0xLjAxIDUuMzJjMS4xNi45IDIuNTEgMS40NCAzLjkgMS42MVYxNy45Yy0uODctLjE1LTEuNzEtLjQ5LTIuNDYtMS4wM0w3LjEgMTguMzJ6TTEzIDQuMDdWMUw4LjQ1IDUuNTUgMTMgMTBWNi4wOWMyLjg0LjQ4IDUgMi45NCA1IDUuOTFzLTIuMTYgNS40My01IDUuOTF2Mi4wMmMzLjk1LS40OSA3LTMuODUgNy03Ljkzcy0zLjA1LTcuNDQtNy03LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb3RhdGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjU1IDUuNTUgMTEgMXYzLjA3QzcuMDYgNC41NiA0IDcuOTIgNCAxMnMzLjA1IDcuNDQgNyA3Ljkzdi0yLjAyYy0yLjg0LS40OC01LTIuOTQtNS01LjkxczIuMTYtNS40MyA1LTUuOTFWMTBsNC41NS00LjQ1ek0xOS45MyAxMWE3LjkwNiA3LjkwNiAwIDAgMC0xLjYyLTMuODlsLTEuNDIgMS40MmMuNTQuNzUuODggMS42IDEuMDIgMi40N2gyLjAyek0xMyAxNy45djIuMDJjMS4zOS0uMTcgMi43NC0uNzEgMy45LTEuNjFsLTEuNDQtMS40NGMtLjc1LjU0LTEuNTkuODktMi40NiAxLjAzem0zLjg5LTIuNDIgMS40MiAxLjQxYy45LTEuMTYgMS40NS0yLjUgMS42Mi0zLjg5aC0yLjAyYy0uMTQuODctLjQ4IDEuNzItMS4wMiAyLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaHV0dGVyU3BlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDFIOXYyaDZWMXptNC4wMyA2LjM5IDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJBOC45NjIgOC45NjIgMCAwIDAgMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE4Ljk5NCA4Ljk5NCAwIDAgMCA3LjAzLTE0LjYxek0xMiAyMGMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bS0uMzItNUg2LjM1YTUuOTkyIDUuOTkyIDAgMCAwIDMuNDEgMy41NmwtLjExLS4wNiAyLjAzLTMuNXptNS45Ny00YTYuMDEyIDYuMDEyIDAgMCAwLTMuMzQtMy41NEwxMi4yNiAxMWg1LjM5em0tNy4wNCA3LjgzYy40NS4xMS45MS4xNyAxLjM5LjE3IDEuMzQgMCAyLjU3LS40NSAzLjU3LTEuMTlsLTIuMTEtMy45LTIuODUgNC45MnpNNy41NSA4Ljk5QTUuOTY1IDUuOTY1IDAgMCAwIDYgMTNjMCAuMzQuMDQuNjcuMDkgMWg0LjcyTDcuNTUgOC45OXptOC43OSA4LjE0QTUuOTQgNS45NCAwIDAgMCAxOCAxM2MwLS4zNC0uMDQtLjY3LS4wOS0xaC00LjM0bDIuNzcgNS4xM3ptLTMuMDEtOS45OEMxMi45IDcuMDYgMTIuNDYgNyAxMiA3Yy0xLjQgMC0yLjY5LjQ5LTMuNzEgMS4yOWwyLjMyIDMuNTYgMi43Mi00Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNsaWRlc2hvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDh2OGw1LTQtNS00em05LTVINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RyYWlnaHRlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBIM1Y4aDJ2NGgyVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuNTMgMTkuNjUgMS4zNC41NnYtOS4wM2wtMi40MyA1Ljg2Yy0uNDEgMS4wMi4wOCAyLjE5IDEuMDkgMi42MXptMTkuNS0zLjdMMTcuMDcgMy45OGEyLjAxMyAyLjAxMyAwIDAgMC0xLjgxLTEuMjNjLS4yNiAwLS41My4wNC0uNzkuMTVMNy4xIDUuOTVhMS45OTkgMS45OTkgMCAwIDAtMS4wOCAyLjZsNC45NiAxMS45N2ExLjk5OCAxLjk5OCAwIDAgMCAyLjYgMS4wOGw3LjM2LTMuMDVhMS45OTQgMS45OTQgMCAwIDAgMS4wOS0yLjZ6TTcuODggOC43NWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMiAxMWMwIDEuMS45IDIgMiAyaDEuNDVsLTMuNDUtOC4zNHY2LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTd2l0Y2hDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC0zLjE3TDE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxMS41VjEzSDl2Mi41TDUuNSAxMiA5IDguNVYxMWg2VjguNWwzLjUgMy41LTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXRjaFZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOS41VjZjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXYxMmMwIC41NS40NSAxIDEgMWgxNGMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTEzbC00IDR6bS01IDZWMTNIN3YyLjVMMy41IDEyIDcgOC41VjExaDZWOC41bDMuNSAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGFnRmFjZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRleHR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41MSAzLjA4IDMuMDggMTkuNTFjLjA5LjM0LjI3LjY1LjUxLjkuMjUuMjQuNTYuNDIuOS41MUwyMC45MyA0LjQ5Yy0uMTktLjY5LS43My0xLjIzLTEuNDItMS40MXpNMTEuODggMyAzIDExLjg4djIuODNMMTQuNzEgM2gtMi44M3pNNSAzYy0xLjEgMC0yIC45LTIgMnYybDQtNEg1em0xNCAxOGMuNTUgMCAxLjA1LS4yMiAxLjQxLS41OS4zNy0uMzYuNTktLjg2LjU5LTEuNDF2LTJsLTQgNGgyem0tOS43MSAwaDIuODNMMjEgMTIuMTJWOS4yOUw5LjI5IDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaGVybW9zdGF0QXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEyVjZjMC0xLjY2LTEuMzQtMy0zLTNTNSA0LjM0IDUgNnY2Yy0xLjIxLjkxLTIgMi4zNy0yIDQgMCAxLjEyLjM4IDIuMTQgMSAyLjk3VjE5aC4wMmMuOTEgMS4yMSAyLjM1IDIgMy45OCAyczMuMDYtLjc5IDMuOTgtMkgxMnYtLjAzYy42Mi0uODMgMS0xLjg1IDEtMi45NyAwLTEuNjMtLjc5LTMuMDktMi00em0tNiA0YzAtLjk0LjQ1LTEuODQgMS4yLTIuNEw3IDEzVjZjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjdsLjguNmMuNzUuNTcgMS4yIDEuNDYgMS4yIDIuNEg1ek0xOC42MiA0aC0xLjYxbC0zLjM4IDloMS41NmwuODEtMi4zaDMuNjNsLjggMi4zSDIybC0zLjM4LTl6bS0yLjE1IDUuMzkgMS4zMS0zLjcyaC4wOGwxLjMxIDMuNzJoLTIuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZWxhcHNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMjQgNy43NkE1Ljk3NCA1Ljk3NCAwIDAgMCAxMiA2djZsLTQuMjQgNC4yNGMyLjM0IDIuMzQgNi4xNCAyLjM0IDguNDkgMGE1Ljk5IDUuOTkgMCAwIDAtLjAxLTguNDh6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lcjEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNy43MlY5LjRsMy0xVjE4aDJWNmgtLjI1TDAgNy43MnptMjMuNzggNi42NWMtLjE0LS4yOC0uMzUtLjUzLS42My0uNzQtLjI4LS4yMS0uNjEtLjM5LTEuMDEtLjUzcy0uODUtLjI3LTEuMzUtLjM4YTYuNjQgNi42NCAwIDAgMS0uODctLjIzIDIuNjEgMi42MSAwIDAgMS0uNTUtLjI1LjcxNy43MTcgMCAwIDEtLjI4LS4zLjk3OC45NzggMCAwIDEgLjAxLS44Yy4wNi0uMTMuMTUtLjI1LjI3LS4zNC4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YTIuNTE3IDIuNTE3IDAgMCAwLS45My0xLjk3Yy0uMy0uMjUtLjY2LS40NC0xLjA5LS41OUMyMS40OSA5LjA3IDIxIDkgMjAuNDYgOWMtLjUxIDAtLjk4LjA3LTEuMzkuMjEtLjQxLjE0LS43Ny4zMy0xLjA2LjU3LS4yOS4yNC0uNTEuNTItLjY3Ljg0LS4xNi4zMi0uMjMuNjUtLjIzIDEuMDFzLjA4LjY5LjIzLjk2Yy4xNS4yOC4zNi41Mi42NC43My4yNy4yMS42LjM4Ljk4LjUzLjM4LjE0LjgxLjI2IDEuMjcuMzYuMzkuMDguNzEuMTcuOTUuMjZzLjQzLjE5LjU3LjI5Yy4xMy4xLjIyLjIyLjI3LjM0LjA1LjEyLjA3LjI1LjA3LjM5IDAgLjMyLS4xMy41Ny0uNC43Ny0uMjcuMi0uNjYuMjktMS4xNy4yOS0uMjIgMC0uNDMtLjAyLS42NC0uMDgtLjIxLS4wNS0uNC0uMTMtLjU2LS4yNGExLjMzMyAxLjMzMyAwIDAgMS0uNTktMS4xMWgtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnptLTkuOTYtNy4zMmMtLjM0LS40LS43NS0uNy0xLjIzLS44OC0uNDctLjE4LTEuMDEtLjI3LTEuNTktLjI3LS41OCAwLTEuMTEuMDktMS41OS4yNy0uNDguMTgtLjg5LjQ3LTEuMjMuODgtLjM0LjQxLS42LjkzLS43OSAxLjU5LS4xOC42NS0uMjggMS40NS0uMjggMi4zOXYxLjkyYzAgLjk0LjA5IDEuNzQuMjggMi4zOS4xOS42Ni40NSAxLjE5LjggMS42LjM0LjQxLjc1LjcxIDEuMjMuODkuNDguMTggMS4wMS4yOCAxLjU5LjI4LjU5IDAgMS4xMi0uMDkgMS41OS0uMjguNDgtLjE4Ljg4LS40OCAxLjIyLS44OS4zNC0uNDEuNi0uOTQuNzgtMS42LjE4LS42NS4yOC0xLjQ1LjI4LTIuMzl2LTEuOTJjMC0uOTQtLjA5LTEuNzQtLjI4LTIuMzktLjE4LS42Ni0uNDQtMS4xOS0uNzgtMS41OXptLS45MiA2LjE3YzAgLjYtLjA0IDEuMTEtLjEyIDEuNTMtLjA4LjQyLS4yLjc2LS4zNiAxLjAyLS4xNi4yNi0uMzYuNDUtLjU5LjU3LS4yMy4xMi0uNTEuMTgtLjgyLjE4LS4zIDAtLjU4LS4wNi0uODItLjE4cy0uNDQtLjMxLS42LS41N2MtLjE2LS4yNi0uMjktLjYtLjM4LTEuMDItLjA5LS40Mi0uMTMtLjkzLS4xMy0xLjUzdi0yLjVjMC0uNi4wNC0xLjExLjEzLTEuNTIuMDktLjQxLjIxLS43NC4zOC0xIC4xNi0uMjUuMzYtLjQzLjYtLjU1LjI0LS4xMS41MS0uMTcuODEtLjE3LjMxIDAgLjU4LjA2LjgxLjE3LjI0LjExLjQ0LjI5LjYuNTUuMTYuMjUuMjkuNTguMzcuOTkuMDguNDEuMTMuOTIuMTMgMS41MnYyLjUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lcjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNjEgMTIuOTdjLS4xNi0uMjQtLjM2LS40Ni0uNjItLjY1YTMuMzggMy4zOCAwIDAgMC0uOTMtLjQ4Yy4zLS4xNC41Ny0uMy44LS41LjIzLS4yLjQyLS40MS41Ny0uNjQuMTUtLjIzLjI3LS40Ni4zNC0uNzEuMDgtLjI0LjExLS40OS4xMS0uNzMgMC0uNTUtLjA5LTEuMDQtLjI4LTEuNDYtLjE4LS40Mi0uNDQtLjc3LS43OC0xLjA2LS4zMy0uMjgtLjczLS41LTEuMi0uNjQtLjQ1LS4xMy0uOTctLjItMS41My0uMi0uNTUgMC0xLjA2LjA4LTEuNTIuMjQtLjQ3LjE3LS44Ny40LTEuMi42OS0uMzMuMjktLjYuNjMtLjc4IDEuMDMtLjIuMzktLjI5LjgzLS4yOSAxLjI5aDEuOThjMC0uMjYuMDUtLjQ5LjE0LS42OS4wOS0uMi4yMi0uMzguMzgtLjUyLjE3LS4xNC4zNi0uMjUuNTgtLjMzLjIyLS4wOC40Ni0uMTIuNzMtLjEyLjYxIDAgMS4wNi4xNiAxLjM2LjQ3LjMuMzEuNDQuNzUuNDQgMS4zMiAwIC4yNy0uMDQuNTItLjEyLjc0LS4wOC4yMi0uMjEuNDEtLjM4LjU3LS4xNy4xNi0uMzguMjgtLjYzLjM3LS4yNS4wOS0uNTUuMTMtLjg5LjEzSDYuNzJ2MS41N0g3LjljLjM0IDAgLjY0LjA0LjkxLjExLjI3LjA4LjUuMTkuNjkuMzUuMTkuMTYuMzQuMzYuNDQuNjEuMS4yNC4xNi41NC4xNi44NyAwIC42Mi0uMTggMS4wOS0uNTMgMS40Mi0uMzUuMzMtLjg0LjQ5LTEuNDUuNDktLjI5IDAtLjU2LS4wNC0uOC0uMTMtLjI0LS4wOC0uNDQtLjItLjYxLS4zNi0uMTctLjE2LS4zLS4zNC0uMzktLjU2LS4wOS0uMjItLjE0LS40Ni0uMTQtLjcySDQuMTljMCAuNTUuMTEgMS4wMy4zMiAxLjQ1LjIxLjQyLjUuNzcuODYgMS4wNXMuNzcuNDkgMS4yNC42My45Ni4yMSAxLjQ4LjIxYy41NyAwIDEuMDktLjA4IDEuNTgtLjIzLjQ5LS4xNS45MS0uMzggMS4yNi0uNjguMzYtLjMuNjQtLjY2Ljg0LTEuMS4yLS40My4zLS45My4zLTEuNDggMC0uMjktLjA0LS41OC0uMTEtLjg2LS4wOC0uMjUtLjE5LS41MS0uMzUtLjc2em05LjI2IDEuNGMtLjE0LS4yOC0uMzUtLjUzLS42My0uNzQtLjI4LS4yMS0uNjEtLjM5LTEuMDEtLjUzcy0uODUtLjI3LTEuMzUtLjM4YTYuNjQgNi42NCAwIDAgMS0uODctLjIzIDIuNjEgMi42MSAwIDAgMS0uNTUtLjI1LjcxNy43MTcgMCAwIDEtLjI4LS4zYy0uMDUtLjExLS4wOC0uMjQtLjA4LS4zOWEuOTQ2Ljk0NiAwIDAgMSAuMzYtLjc1Yy4xMi0uMS4yNy0uMTguNDUtLjI0cy40LS4wOS42NC0uMDljLjI1IDAgLjQ3LjA0LjY2LjExLjE5LjA3LjM1LjE3LjQ4LjI5LjEzLjEyLjIyLjI2LjI5LjQyLjA2LjE2LjEuMzIuMS40OWgxLjk1YTIuNTE3IDIuNTE3IDAgMCAwLS45My0xLjk3Yy0uMy0uMjUtLjY2LS40NC0xLjA5LS41OS0uNDMtLjE1LS45Mi0uMjItMS40Ni0uMjItLjUxIDAtLjk4LjA3LTEuMzkuMjEtLjQxLjE0LS43Ny4zMy0xLjA2LjU3LS4yOS4yNC0uNTEuNTItLjY3Ljg0LS4xNi4zMi0uMjMuNjUtLjIzIDEuMDFzLjA4LjY4LjIzLjk2Yy4xNS4yOC4zNy41Mi42NC43My4yNy4yMS42LjM4Ljk4LjUzLjM4LjE0LjgxLjI2IDEuMjcuMzYuMzkuMDguNzEuMTcuOTUuMjZzLjQzLjE5LjU3LjI5Yy4xMy4xLjIyLjIyLjI3LjM0LjA1LjEyLjA3LjI1LjA3LjM5IDAgLjMyLS4xMy41Ny0uNC43Ny0uMjcuMi0uNjYuMjktMS4xNy4yOS0uMjIgMC0uNDMtLjAyLS42NC0uMDgtLjIxLS4wNS0uNC0uMTMtLjU2LS4yNGExLjMzMyAxLjMzMyAwIDAgMS0uNTktMS4xMWgtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1LjE2LjM0LjM5LjY1LjcuOTMuMzEuMjcuNjkuNDkgMS4xNS42Ni40Ni4xNy45OC4yNSAxLjU4LjI1LjUzIDAgMS4wMS0uMDYgMS40NC0uMTkuNDMtLjEzLjgtLjMxIDEuMTEtLjU0LjMxLS4yMy41NC0uNTEuNzEtLjgzLjE3LS4zMi4yNS0uNjcuMjUtMS4wNi0uMDItLjQtLjA5LS43NC0uMjQtMS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDFoNnYySDl6TTEzIDh2Mi4xN2w2Ljk4IDYuOThhOC45NjMgOC45NjMgMCAwIDAtLjk1LTkuNzZsMS40Mi0xLjQyYy0uNDMtLjUxLS45LS45OS0xLjQxLTEuNDFsLTEuNDIgMS40MmE4Ljk2MiA4Ljk2MiAwIDAgMC05Ljc3LS45NkwxMC44MyA4SDEzek0yLjgxIDIuODEgMS4zOSA0LjIybDMuNCAzLjRhOC45OTQgOC45OTQgMCAwIDAgMTIuNTkgMTIuNTlsMi40IDIuNCAxLjQxLTEuNDFMMi44MSAyLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMWg2djJIOXpNMTkuMDMgNy4zOWwxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyQTguOTYyIDguOTYyIDAgMCAwIDEyIDRhOSA5IDAgMCAwLTkgOWMwIDQuOTcgNC4wMiA5IDkgOWE4Ljk5NCA4Ljk5NCAwIDAgMCA3LjAzLTE0LjYxek0xMyAxNGgtMlY4aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVG9uYWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNy45M2MtMy45NC0uNDktNy0zLjg1LTctNy45M3MzLjA1LTcuNDQgNy03LjkzdjE1Ljg2em0yLTE1Ljg2YzEuMDMuMTMgMiAuNDUgMi44Ny45M0gxM3YtLjkzek0xMyA3aDUuMjRjLjI1LjMxLjQ4LjY1LjY4IDFIMTNWN3ptMCAzaDYuNzRjLjA4LjMzLjE1LjY2LjE5IDFIMTN2LTF6bTAgOS45M1YxOWgyLjg3Yy0uODcuNDgtMS44NC44LTIuODcuOTN6TTE4LjI0IDE3SDEzdi0xaDUuOTJjLS4yLjM1LS40My42OS0uNjggMXptMS41LTNIMTN2LTFoNi45M2MtLjA0LjM0LS4xMS42Ny0uMTkgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbnNmb3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTh2LTJIOFY0aDJMNyAxIDQgNGgydjJIMnYyaDR2OGMwIDEuMS45IDIgMiAyaDh2MmgtMmwzIDMgMy0zaC0ydi0yaDR6TTEwIDhoNnY2aDJWOGMwLTEuMS0uOS0yLTItMmgtNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxN3YyaDZ2LTJIM3pNMyA1djJoMTBWNUgzem0xMCAxNnYtMmg4di0yaC04di0yaC0ydjZoMnpNNyA5djJIM3YyaDR2MmgyVjlIN3ptMTQgNHYtMkgxMXYyaDEwem0tNi00aDJWN2g0VjVoLTRWM2gtMnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWRlb0NhbWVyYUJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4ek01IDE2bDIuMzgtMy4xN0w5IDE1bDIuNjItMy41TDE1IDE2SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4ek0xMCA4YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptNCA4SDZ2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAxNCAxNS40M1YxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlkZW9TdGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCAxOFY2aDIuOTVsLTIuMzMgOC43M0wxNi44MiAxOEg0em0xNiAwaC0yLjk1bDIuMzQtOC43M0w3LjE4IDZIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZXdDb21meSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNHY3aDIwVjRIMnptOCAxNmgxMnYtN0gxMHY3em0tOCAwaDZ2LTdIMnY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWaWV3Q29tcGFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMThoMi41di0yLjVINFYxOHptMC00Ljc1aDIuNXYtMi41SDR2Mi41ek00IDguNWgyLjVWNkg0djIuNXpNMTcuNSA2djIuNUgyMFY2aC0yLjV6TTEzIDguNWgyLjVWNkgxM3YyLjV6bTQuNSA5LjVIMjB2LTIuNWgtMi41VjE4em0wLTQuNzVIMjB2LTIuNWgtMi41djIuNXpNOC41IDE4SDExdi0yLjVIOC41VjE4em00LjUgMGgyLjV2LTIuNUgxM1YxOHpNOC41IDguNUgxMVY2SDguNXYyLjV6bTQuNSA0Ljc1aDIuNXYtMi41SDEzdjIuNXptLTQuNSAwSDExdi0yLjVIOC41djIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmlnbmV0dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxNWMtNC40MiAwLTgtMi42OS04LTZzMy41OC02IDgtNiA4IDIuNjkgOCA2LTMuNTggNi04IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZycGFubyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjY5IDQuMDVDMTguNjYgNC43MyAxNS44NiA1LjUgMTIgNS41Yy0zLjg5IDAtNi45NS0uODQtOC42OS0xLjQzQS45OTMuOTkzIDAgMCAwIDIgNS4wMlYxOWMwIC42OC42NiAxLjE3IDEuMzEuOTVDNS4zNiAxOS4yNiA4LjEgMTguNSAxMiAxOC41YzMuODcgMCA2LjY2Ljc2IDguNjkgMS40NUEuOTk5Ljk5OSAwIDAgMCAyMiAxOVY1YzAtLjY4LS42Ni0xLjE2LTEuMzEtLjk1ek0xMiAxNWMtMi4zNCAwLTQuNTIuMTUtNi41Mi40MWwzLjY5LTQuNDIgMiAyLjRMMTQgMTBsNC41MSA1LjRjLTEuOTktLjI1LTQuMjEtLjQtNi41MS0uNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2JBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi44NSAxMi42NWgyLjNMOCA5bC0xLjE1IDMuNjV6TTIyIDdsLTEuMiA2LjI5TDE5LjMgN2gtMS42bC0xLjQ5IDYuMjlMMTUgN2gtLjc2QzEyLjc3IDUuMTcgMTAuNTMgNCA4IDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDhjMy4xMyAwIDUuODQtMS44MSA3LjE1LTQuNDNsLjEuNDNIMTdsMS41LTYuMUwyMCAxNmgxLjc1bDIuMDUtOUgyMnptLTExLjcgOS0uNy0ySDYuNGwtLjcgMkgzLjhMNyA3aDJsMy4yIDloLTEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2JDbG91ZHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNiAxMC4wNEMxOC42NyA2LjU5IDE1LjY0IDQgMTIgNCA5LjExIDQgNi42IDUuNjQgNS4zNSA4LjA0QTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY0LTQuOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdiSW5jYW5kZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy41NSAxOC41NCAxLjQxIDEuNDEgMS43OS0xLjgtMS40MS0xLjQxLTEuNzkgMS44ek0xMSAyMi40NWgyVjE5LjVoLTJ2Mi45NXpNNCAxMC41SDF2Mmgzdi0yem0xMS00LjE5VjEuNUg5djQuODFDNy4yMSA3LjM1IDYgOS4yOCA2IDExLjVjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNmMwLTIuMjItMS4yMS00LjE1LTMtNS4xOXptNSA0LjE5djJoM3YtMmgtM3ptLTIuNzYgNy42NiAxLjc5IDEuOCAxLjQxLTEuNDEtMS44LTEuNzktMS40IDEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2JJcmlkZXNjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE0LjVoMTR2LTZINXY2ek0xMSAuNTVWMy41aDJWLjU1aC0yem04LjA0IDIuNS0xLjc5IDEuNzkgMS40MSAxLjQxIDEuOC0xLjc5LTEuNDItMS40MXpNMTMgMjIuNDVWMTkuNWgtMnYyLjk1aDJ6bTcuNDUtMy45MS0xLjgtMS43OS0xLjQxIDEuNDEgMS43OSAxLjggMS40Mi0xLjQyek0zLjU1IDQuNDZsMS43OSAxLjc5IDEuNDEtMS40MS0xLjc5LTEuNzktMS40MSAxLjQxem0xLjQxIDE1LjQ5IDEuNzktMS44LTEuNDEtMS40MS0xLjc5IDEuNzkgMS40MSAxLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYlNoYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMnYyLjVsNS41IDUuNUgyMnptMCA4aDNsLTMtM3pNOCA0bC02IDZoMnYxMGg4VjEwaDJMOCA0em0xIDEwSDd2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYlN1bm55IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi43NiA0Ljg0LTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuNzkgMS40Mi0xLjQxek00IDEwLjVIMXYyaDN2LTJ6bTktOS45NWgtMlYzLjVoMlYuNTV6bTcuNDUgMy45MS0xLjQxLTEuNDEtMS43OSAxLjc5IDEuNDEgMS40MSAxLjc5LTEuNzl6bS0zLjIxIDEzLjcgMS43OSAxLjggMS40MS0xLjQxLTEuOC0xLjc5LTEuNCAxLjR6TTIwIDEwLjV2Mmgzdi0yaC0zem0tOC01Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptLTEgMTYuOTVoMlYxOS41aC0ydjIuOTV6bS03LjQ1LTMuOTEgMS40MSAxLjQxIDEuNzktMS44LTEuNDEtMS40MS0xLjc5IDEuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2JUd2lnaGxpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45NTQgOC42NiAyLjEyLTIuMTIgMS40MTUgMS40MTQtMi4xMyAyLjEyek0xNy45IDE0Yy0uNS0yLjg1LTIuOTUtNS01LjktNXMtNS40NSAyLjE1LTUuOSA1aDExLjh6TTIgMTZoMjB2NEgyem05LTEyaDJ2M2gtMnpNMy41NCA3LjkyNSA0Ljk1NCA2LjUxbDIuMTIyIDIuMTIyLTEuNDE1IDEuNDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYlR3aWxpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuOTU1IDguNjYyIDIuMTItMi4xMjIgMS40MTYgMS40MTQtMi4xMjEgMi4xMjJ6TTIgMThoMjB2Mkgyek0xMSA0aDJ2M2gtMnpNMy41NDMgNy45MjUgNC45NTcgNi41MWwyLjEyMSAyLjEyLTEuNDE0IDEuNDE1ek01IDE2aDE0YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQzNjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3QzYuNDggNyAyIDkuMjQgMiAxMmMwIDIuMjQgMi45NCA0LjEzIDcgNC43N1YyMGw0LTQtNC00djIuNzNjLTMuMTUtLjU2LTUtMS45LTUtMi43MyAwLTEuMDYgMy4wNC0zIDgtM3M4IDEuOTQgOCAzYzAgLjczLTEuNDYgMS44OS00IDIuNTN2Mi4wNWMzLjUzLS43NyA2LTIuNTMgNi00LjU4IDAtMi43Ni00LjQ4LTUtMTAtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkQnVzaW5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxN2gydi0zaDF2LTJsLTEtNUgybC0xIDV2MmgxdjZoOXYtNmg0djN6bS02IDFINHYtNGg1djR6TTIgNGgxNXYySDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4di0zaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRMb2NhdGlvbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDF2M2gzdjJoLTN2M2gtMlY2aC0zVjRoM1YxaDJ6bS04IDEyYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMi05Ljc1VjdoM3YzaDIuOTJjLjA1LjM5LjA4Ljc5LjA4IDEuMiAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDYuMjIgNy44IDMgMTIgM2MuNjggMCAxLjM1LjA4IDIgLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjE0IDIgNSA1LjE0IDUgOWMwIDUuMjUgNyAxMyA3IDEzczctNy43NSA3LTEzYzAtMy44Ni0zLjE0LTctNy03em00IDhoLTN2M2gtMnYtM0g4VjhoM1Y1aDJ2M2gzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZFJvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOHYtM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMnpNMTggNGgydjloLTJ6TTQgNGgydjE2SDR6TTExIDRoMnY0aC0yek0xMSAxMGgydjRoLTJ6TTExIDE2aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWdyaWN1bHR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDEyYy45MyAwIDEuNzguMjggMi41Ljc2VjhjMC0xLjEtLjktMi0yLTJoLTYuMjlsLTEuMDYtMS4wNiAxLjQxLTEuNDEtLjcxLS43MS0zLjUzIDMuNTMuNzEuNzEgMS40MS0xLjQxTDEzIDYuNzFWOWMwIDEuMS0uOSAyLTIgMmgtLjU0QTUuOTggNS45OCAwIDAgMSAxMiAxNWMwIC4zNC0uMDQuNjctLjA5IDFoMy4xNGMuMjUtMi4yNSAyLjE0LTQgNC40NS00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDEzYy0xLjkzIDAtMy41IDEuNTctMy41IDMuNXMxLjU3IDMuNSAzLjUgMy41IDMuNS0xLjU3IDMuNS0zLjUtMS41Ny0zLjUtMy41LTMuNXptMCA1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNNCA5aDVjMC0xLjEtLjktMi0yLTJINGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXpNOS44MyAxMy44MmwtLjE4LS40Ny45My0uMzVhNC45MiA0LjkyIDAgMCAwLTIuMzEtMi40M2wtLjQuODktLjQ2LS4yMS40LS45QzcuMjYgMTAuMTMgNi42NCAxMCA2IDEwYy0uNTMgMC0xLjA0LjExLTEuNTIuMjZsLjM0LjkxLS40Ny4xOC0uMzUtLjkzYTQuOTIgNC45MiAwIDAgMC0yLjQzIDIuMzFsLjg5LjQtLjIxLjQ2LS45LS40QzEuMTMgMTMuNzQgMSAxNC4zNiAxIDE1YzAgLjUzLjExIDEuMDQuMjYgMS41MmwuOTEtLjM0LjE4LjQ3LS45My4zNWE0LjkyIDQuOTIgMCAwIDAgMi4zMSAyLjQzbC40LS44OS40Ni4yMS0uNC45Yy41NS4yMiAxLjE3LjM1IDEuODEuMzUuNTMgMCAxLjA0LS4xMSAxLjUyLS4yNmwtLjM0LS45MS40Ny0uMTguMzUuOTNhNC45MiA0LjkyIDAgMCAwIDIuNDMtMi4zMWwtLjg5LS40LjIxLS40Ni45LjRjLjIyLS41NS4zNS0xLjE3LjM1LTEuODEgMC0uNTMtLjExLTEuMDQtLjI2LTEuNTJsLS45MS4zNHptLTIuNjggMy45NWMtMS41My42My0zLjI5LS4wOS0zLjkyLTEuNjItLjYzLTEuNTMuMDktMy4yOSAxLjYyLTMuOTIgMS41My0uNjMgMy4yOS4wOSAzLjkyIDEuNjIuNjQgMS41My0uMDkgMy4yOS0xLjYyIDMuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTdG9wcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjIxIDkuMjFDMTUuOTMgMTAuNzggMTMuNDUgMTMuMyAxMyAxN2gydjJIOXYtMmgyYy0uNS00LjUtNC4zNy04LTktOFY3YzQuMzkgMCA4LjIyIDIuNTUgMTAgNi4zIDEuMTMtMi40MyAyLjk5LTQuMjUgNC43OC01LjUyTDE0IDVoN3Y3bC0yLjc5LTIuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNCAyIDIwaDE3bDMtMTZoLTl6bTEuNSAxMGEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWx0Um91dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05Ljc4IDExLjE2LTEuNDIgMS40MmE3LjI4MiA3LjI4MiAwIDAgMS0xLjc5LTIuOTRsMS45NC0uNDljLjMyLjg5Ljc3IDEuNSAxLjI3IDIuMDF6TTExIDYgNyAyIDMgNmgzLjAyYy4wMi44MS4wOCAxLjU0LjE5IDIuMTdsMS45NC0uNDlDOC4wOCA3LjIgOC4wMyA2LjYzIDguMDIgNkgxMXptMTAgMC00LTQtNCA0aDIuOTljLS4xIDMuNjgtMS4yOCA0Ljc1LTIuNTQgNS44OC0uNS40NC0xLjAxLjkyLTEuNDUgMS41NS0uMzQtLjQ5LS43My0uODgtMS4xMy0xLjI0TDkuNDYgMTMuNmMuOTMuODUgMS41NCAxLjU0IDEuNTQgMy40djVoMnYtNWMwLTIuMDIuNzEtMi42NiAxLjc5LTMuNjMgMS4zOC0xLjI0IDMuMDgtMi43OCAzLjItNy4zN0gyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXRtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5djEuNWgyLjI1VjE1aDEuNXYtNC41SDE0Vjl6TTYgOUgzYy0uNTUgMC0xIC40NS0xIDF2NWgxLjV2LTEuNWgyVjE1SDd2LTVjMC0uNTUtLjQ1LTEtMS0xem0tLjUgM2gtMnYtMS41aDJWMTJ6TTIxIDloLTQuNWMtLjU1IDAtMSAuNDUtMSAxdjVIMTd2LTQuNWgxVjE0aDEuNXYtMy41MWgxVjE1SDIydi01YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXR0cmFjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC40MyAxOC43NWMuMzctLjQ2Ljk0LS43NSAxLjU3LS43NS42MyAwIDEuMTkuMjkgMS41Ni43NS4zOS0uMDkuNzYtLjIxIDEuMTItLjM2bC0xLjQyLTMuMThhMy41MjIgMy41MjIgMCAwIDEtMi41Ni0uMDJsLTEuNDMgMy4xOWMuMzguMTYuNzYuMjkgMS4xNi4zN3pNNS4xNSAxMGE3LjA2IDcuMDYgMCAwIDAgLjA4IDRjLjYzLjA1IDEuMjIuNCAxLjU2Ljk5LjMzLjU3LjM1IDEuMjMuMTEgMS43OS4yNy4yNy41Ni41My44Ny43NmwxLjUyLTMuMzljLS40Ny0uNTgtLjc1LTEuMzItLjc1LTIuMTMgMC0xLjg5IDEuNTUtMy40MSAzLjQ2LTMuNDFzMy40NiAxLjUzIDMuNDYgMy40MWMwIC44Mi0uMjkgMS41Ny0uNzggMi4xNmwxLjUgMy4zNWMuMzItLjI0LjYyLS41LjktLjc5LS4yMi0uNTUtLjItMS4yLjEyLTEuNzUuMzMtLjU3LjktLjkyIDEuNTItLjk5YTcuMDI1IDcuMDI1IDAgMCAwIC4wOS00LjAyYy0uNjQtLjA0LTEuMjYtLjM5LTEuNi0xLS4zNi0uNjItLjM1LTEuMzYtLjAzLTEuOTUtLjkxLS45OC0yLjEtMS43MS0zLjQ0LTIuMDVDMTMuMzkgNS42IDEyLjc0IDYgMTIgNnMtMS4zOS0uNDEtMS43NC0xLjAxYTcuMDUzIDcuMDUzIDAgMCAwLTMuNDQgMi4wM2MuMzMuNi4zNSAxLjM1LS4wMiAxLjk4LS4zNS42Mi0uOTkuOTctMS42NSAxem0tMS4zLS40MmMtLjc4LS42LTEuMDItMS43LS41MS0yLjU4LjUxLS44OCAxLjU4LTEuMjMgMi40OS0uODVhOC41MyA4LjUzIDAgMCAxIDQuMTgtMi40MkMxMC4xNSAyLjc1IDEwLjk5IDIgMTIgMnMxLjg1Ljc1IDEuOTggMS43M2MxLjYzLjM5IDMuMDcgMS4yNCA0LjE4IDIuNDJhMS45OSAxLjk5IDAgMCAxIDIuNDkuODVjLjUxLjg4LjI3IDEuOTgtLjUxIDIuNTguMjMuNzcuMzUgMS41OC4zNSAyLjQycy0uMTIgMS42NS0uMzUgMi40MmMuNzguNiAxLjAyIDEuNy41MSAyLjU4LS41MS44OC0xLjU4IDEuMjMtMi40OS44NS0uNC40My0uODUuODEtMS4zNCAxLjE1bDEuMzQgM0gxNi4zbC0uOTctMi4xN2MtLjQzLjE4LS44OC4zMy0xLjM0LjQ0LS4xNC45OC0uOTggMS43My0xLjk5IDEuNzNzLTEuODUtLjc1LTEuOTgtMS43M2MtLjQ4LS4xMi0uOTQtLjI3LTEuMzgtLjQ2TDcuNjYgMjJINS43OGwxLjM2LTMuMDNhOC43MiA4LjcyIDAgMCAxLTEuMy0xLjEyYy0uOTIuMzgtMS45OS4wMy0yLjUtLjg1cy0uMjctMS45OC41MS0yLjU4Yy0uMjMtLjc3LS4zNS0xLjU4LS4zNS0yLjQycy4xMi0xLjY1LjM1LTIuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gtNVY0YzAtMS4xLS45LTItMi0yaC0yYy0xLjEgMC0yIC45LTIgMnYzSDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnpNOSAxMmMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjgzIDE1IDkgMTVzLTEuNS0uNjctMS41LTEuNVM4LjE3IDEyIDkgMTJ6bTMgNkg2di0uNzVjMC0xIDItMS41IDMtMS41czMgLjUgMyAxLjVWMTh6bTEtOWgtMlY0aDJ2NXptNSA3LjVoLTRWMTVoNHYxLjV6bTAtM2gtNFYxMmg0djEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmFrZXJ5RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE5LjI4IDE2LjM0IDE3LjQ2IDE1cy4zMi0uNTkuOTYtMS43OGEuOTQ0Ljk0NCAwIDAgMSAxLjYgMGwuODEgMS4yNmMuMTkuMy4yMS42OC4wNiAxbC0uMjIuNDdhLjk0Ljk0IDAgMCAxLTEuMzkuMzl6bS0xNC41NiAwYS45NDYuOTQ2IDAgMCAxLTEuMzktLjM4bC0uMjMtLjQ3Yy0uMTUtLjMyLS4xMy0uNy4wNi0xbC44MS0xLjI2YS45NDQuOTQ0IDAgMCAxIDEuNiAwYy42NSAxLjE4Ljk3IDEuNzcuOTcgMS43N2wtMS44MiAxLjM0em0xMC42NC02Ljk3Yy4wOS0uNjguNzMtMS4wNiAxLjI3LS43NWwxLjU5LjljLjQ2LjI2LjYzLjkxLjM2IDEuNDFMMTYuNSAxNWgtMS44bC42Ni01LjYzem0tNi43MyAwTDkuMyAxNUg3LjVsLTIuMDktNC4wOGMtLjI3LS41LS4xLTEuMTUuMzYtMS40MWwxLjU5LS45Yy41My0uMyAxLjE4LjA4IDEuMjcuNzZ6TTEzLjggMTVoLTMuNmwtLjc0LTYuODhjLS4wNy0uNTkuMzUtMS4xMi44OC0xLjEyaDMuM2MuNTMgMCAuOTQuNTMuODggMS4xMkwxMy44IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWVuaGVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDFINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE1LjkzYzAgLjY5LjM1IDEuMy44OCAxLjY2TDEyIDIzbDguMTEtNS40MWMuNTMtLjM2Ljg4LS45Ny44OC0xLjY2TDIxIDNjMC0xLjEtLjktMi0yLTJ6bS05IDE1LTUtNSAxLjQxLTEuNDFMMTAgMTMuMTdsNy41OS03LjU5TDE5IDdsLTkgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmlrZVNjb290ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNGguNzRMOC44MiA1LjU2QTIuMDA5IDIuMDA5IDAgMCAwIDYuODcgNEgzdjJoMy44N2wxLjQyIDYuMjVoLS4wMUE2LjAwOCA2LjAwOCAwIDAgMCA0LjA5IDE3SDB2Mmg2di0xYzAtMi4yMSAxLjc5LTQgNC00ek0xOSA4aC0uODJsLTEuMzUtMy42OUExLjk3NiAxLjk3NiAwIDAgMCAxNC45NiAzSDExdjJoMy45NmwxLjEgM0gxMC40bC40NiAySDE1Yy0uNDMuNTgtLjc1IDEuMjUtLjkgMmgtMi43OWwuNDYgMmgyLjMzYy40NCAyLjIzIDIuMzEgMy44OCA0LjY1IDMuOTkgMi44LjEzIDUuMjUtMi4xOSA1LjI1LTVDMjQgMTAuMiAyMS44IDggMTkgOHptMCA4Yy0xLjY4IDAtMy0xLjMyLTMtMyAwLS45My40MS0xLjczIDEuMDUtMi4yOGwuOTYgMi42NCAxLjg4LS42OC0uOTctMi42N2MuMDMgMCAuMDYtLjAxLjA5LS4wMSAxLjY4IDAgMyAxLjMyIDMgM3MtMS4zMyAzLTMuMDEgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnJlYWtmYXN0RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTE4IDNINkMzLjc5IDMgMiA0Ljc5IDIgN2MwIDEuNDguODEgMi43NSAyIDMuNDVWMTljMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtOC41NWMxLjE5LS42OSAyLTEuOTcgMi0zLjQ1IDAtMi4yMS0xLjc5LTQtNC00em0tNCAxMmgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJydW5jaERpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xOCA4aDJWNGgtMnY0em0tMi40OSAxNEgyLjQ5Yy0uMjcgMC0uNDktLjIyLS40OS0uNVYyMGgxNHYxLjVjMCAuMjgtLjIyLjUtLjQ5LjV6TTE4IDE1Ljg5bC0uNC0uNDJhNS44NTIgNS44NTIgMCAwIDEtMS42LTRWMmg2djkuNTFjMCAxLjQ2LS41NCAyLjg3LTEuNTMgMy45NGwtLjQ3LjUyVjIwaDJ2MmgtNHYtNi4xMXpNNyAxNnYtMmg0djJoNC41Yy4yOCAwIC41LjIyLjUuNXYxYzAgLjI4LS4yMi41LS41LjVoLTEzYy0uMjggMC0uNS0uMjItLjUtLjV2LTFjMC0uMjguMjItLjUuNS0uNUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCdXNBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMWE3IDcgMCAwIDAtNS43OCAzLjA1bC4wMi0uMDNDOS44NCA0IDkuNDIgNCA5IDRjLTQuNDIgMC04IC41LTggNHYxMGMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMmExIDEgMCAwIDAgMSAxaDFhMSAxIDAgMCAwIDEtMXYtMWg4djFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIydi0zLjA4QTcgNyAwIDAgMCAxNiAxek00LjUgMTlhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6TTMgMTNWOGg2YzAgMS45Ni44MSAzLjczIDIuMTEgNUgzem0xMC41IDZhMS41IDEuNSAwIDEgMSAwLTMgMS41IDEuNSAwIDAgMSAwIDN6bTIuNS02YTUgNSAwIDEgMSAwLTEwIDUgNSAwIDAgMSAwIDEwem0tMS05aDJ2NWgtMnptMCA2aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FyQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLjUgNmgtMVYzaDF2NHptMCAxdjFoLTFWOGgxem0tLjU5IDVjLjA2LjE2LjA5LjMzLjA5LjUgMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjVjMC0uMzkuMTUtLjc0LjM5LTEuMDFBNy4wMzIgNy4wMzIgMCAwIDEgMTEuNjggOUg1LjgxbDEuMDQtM0gxMWMwLS42OS4xLTEuMzcuMjktMkg2LjVjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTF2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi02LjY4Yy0xLjA1LjUxLTIuMTYuNjktMy4wOS42OHpNNy41IDE1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNi42NyAxMiA3LjUgMTJzMS41LjY3IDEuNSAxLjVTOC4zMyAxNSA3LjUgMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhclJlbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjM5IDlINy42MWMtLjQzIDAtLjgxLjI4LS45NS42OGwtMS42NiA1djYuODFjMCAuMjkuMjMuNTEuNS41MWgxYy4yOCAwIC41LS4yMi41LS41VjIwaDEwdjEuNWMwIC4yOC4yMi41LjUuNWgxYy4yOCAwIC41LS4yMi41LS41di02LjgxbC0xLjY2LTVhMS4wMSAxLjAxIDAgMCAwLS45NS0uNjl6bS04LjYxIDljLS42OCAwLTEuMjItLjU0LTEuMjItMS4yMnMuNTQtMS4yMiAxLjIyLTEuMjJTOSAxNi4xMSA5IDE2Ljc4IDguNDYgMTggNy43OCAxOHptOC40NCAwYy0uNjcgMC0xLjIyLS41NC0xLjIyLTEuMjJzLjU0LTEuMjIgMS4yMi0xLjIyIDEuMjIuNTQgMS4yMiAxLjIyUzE2LjkgMTggMTYuMjIgMTh6bS05LjkzLTQgMS4zMy00aDguNzhsMS4zMyA0SDYuMjl6TTEwLjgzIDNBMy4wMSAzLjAxIDAgMCAwIDggMUM2LjM0IDEgNSAyLjM0IDUgNGMwIDEuNjUgMS4zNCAzIDMgMyAxLjMgMCAyLjQxLS44NCAyLjgzLTJIMTZ2MmgyVjVoMVYzaC04LjE3ek04IDVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FyUmVwYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMjIgMTJjLjY4IDAgMS4yMi0uNTQgMS4yMi0xLjIyIDAtLjY3LS41NC0xLjIyLTEuMjItMS4yMlMxNSAxMC4xMSAxNSAxMC43OGMwIC42OC41NSAxLjIyIDEuMjIgMS4yMnptLTkuNjYtMS4yMmMwIC42Ny41NCAxLjIyIDEuMjIgMS4yMlM5IDExLjQ2IDkgMTAuNzhjMC0uNjctLjU0LTEuMjItMS4yMi0xLjIycy0xLjIyLjU1LTEuMjIgMS4yMnpNNy42MSA0IDYuMjggOGgxMS40M2wtMS4zMy00SDcuNjF6bTguNjctMXMuNTQuMDEuOTIuNTRjLjAyLjAyLjAzLjA0LjA1LjA3LjA3LjExLjE0LjI0LjE5LjQuMjIuNjUgMS41NiA0LjY4IDEuNTYgNC42OHY2LjVjMCAuNDUtLjM1LjgxLS43OC44MWgtLjQ0Yy0uNDMgMC0uNzgtLjM2LS43OC0uODFWMTRIN3YxLjE5YzAgLjQ1LS4zNS44MS0uNzguODFoLS40NGMtLjQzIDAtLjc4LS4zNi0uNzgtLjgxdi02LjVTNi4zNCA0LjY3IDYuNTUgNGMuMDUtLjE2LjEyLS4yOC4xOS0uNC4wMy0uMDIuMDQtLjA0LjA2LS4wNi4zOC0uNTMuOTItLjU0LjkyLS41NGg4LjU2ek00IDE3LjAxaDE2VjE5aC03djNoLTJ2LTNINHYtMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FzdGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOXYyaC0yVjNoLTJ2MmgtMlYzaC0ydjJoLTJWM0g5djJIN1YzSDV2OEgzVjlIMXYxMmg5di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M2g5VjloLTJ6bS0xMCAzSDlWOWgydjN6bTQgMGgtMlY5aDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2F0ZWdvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAyLTUuNSA5aDExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3LjVcIixcImN5XCI6XCIxNy41XCIsXCJyXCI6XCI0LjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMy41aDh2OEgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDZWxlYnJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIgMjIgMTQtNS05LTl6TTE0LjUzIDEyLjUzbDUuNTktNS41OWExLjI1IDEuMjUgMCAwIDEgMS43NyAwbC41OS41OSAxLjA2LTEuMDYtLjU5LS41OWEyLjc1OCAyLjc1OCAwIDAgMC0zLjg5IDBsLTUuNTkgNS41OSAxLjA2IDEuMDZ6TTEwLjA2IDYuODhsLS41OS41OSAxLjA2IDEuMDYuNTktLjU5YTIuNzU4IDIuNzU4IDAgMCAwIDAtMy44OWwtLjU5LS41OS0xLjA2IDEuMDcuNTkuNTljLjQ4LjQ4LjQ4IDEuMjggMCAxLjc2ek0xNy4wNiAxMS44OGwtMS41OSAxLjU5IDEuMDYgMS4wNiAxLjU5LTEuNTlhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMGwxLjYxIDEuNjEgMS4wNi0xLjA2LTEuNjEtMS42MWEyLjc1OCAyLjc1OCAwIDAgMC0zLjg5IDB6TTE1LjA2IDUuODhsLTMuNTkgMy41OSAxLjA2IDEuMDYgMy41OS0zLjU5YTIuNzU4IDIuNzU4IDAgMCAwIDAtMy44OWwtMS41OS0xLjU5LTEuMDYgMS4wNiAxLjU5IDEuNTljLjQ4LjQ5LjQ4IDEuMjkgMCAxLjc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaHVyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMi4yMlY5bC01LTIuNVY1aDJWM2gtMlYxaC0ydjJIOXYyaDJ2MS41TDYgOXYzLjIyTDIgMTR2OGg4di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M2g4di04bC00LTEuNzh6bS02IDEuMjhjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbGVhbmluZ1NlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTFoLTFWM2MwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJ2OEg4Yy0yLjc2IDAtNSAyLjI0LTUgNXY3aDE4di03YzAtMi43Ni0yLjI0LTUtNS01em0zIDEwaC0ydi0zYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNoLTJ2LTNjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M0g5di0zYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNINXYtNWMwLTEuNjUgMS4zNS0zIDMtM2g4YzEuNjUgMCAzIDEuMzUgMyAzdjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvbXBhc3NDYWxpYnJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxN1wiLFwiclwiOlwiNFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMC4wN2MxLjk1IDAgMy43Mi43OSA1IDIuMDdsNS01QzE5LjQ0IDQuNTkgMTUuOSAzIDEyIDNTNC41NiA0LjU5IDIgNy4xNWw1IDVhNy4wNiA3LjA2IDAgMCAxIDUtMi4wOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29ubmVjdGluZ0FpcnBvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNCAxNyAxLjMgNC40aC0xLjFMMTMgMTdoLTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoM2wyLjYtNC40aDEuMUwxNS40IDE1aDIuODVsLjc1LTFoMWwtLjYgMiAuNiAyaC0xbC0uNzUtMUgxNS40ek01Ljc1IDcgNSA2SDRsLjYgMi0uNiAyaDFsLjc1LTFIOC42bC0xLjMgNC40aDEuMUwxMSA5aDNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTNMOC40IDIuNkg3LjNMOC42IDdINS43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3Jpc2lzQWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDIuNWMwIDEuNS0xLjUgNi0xLjUgNmgtMlM5LjUgNCA5LjUgMi41YTIuNSAyLjUgMCAwIDEgNSAwek0xMiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTQuMDgtNC44OWMuMTgtLjc1LjMzLTEuNDcuMzktMi4wNkE5Ljk5NiA5Ljk5NiAwIDAgMSAyMiAxMmMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0zLjkyIDIuMjUtNy4zMSA1LjUzLTguOTUuMDcuNTkuMjEgMS4zMi4zOSAyLjA2QTguMDI4IDguMDI4IDAgMCAwIDQgMTJjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuOTMtMS41OC01LjQ5LTMuOTItNi44OXpNMTggMTJjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTZjMC0yIC45OC0zLjc3IDIuNDgtNC44Ni4yMy44MS42NSAyLjA3LjY1IDIuMDdDOC40MyA5LjkzIDggMTAuOTIgOCAxMmMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00YzAtMS4wOC0uNDMtMi4wNy0xLjEzLTIuNzkgMCAwIC40MS0xLjIyLjY1LTIuMDdBNS45OTggNS45OTggMCAwIDEgMTggMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlbGl2ZXJ5RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN2MwLTEuMS0uOS0yLTItMmgtM3YyaDN2Mi42NUwxMy41MiAxNEgxMFY5SDZjLTIuMjEgMC00IDEuNzktNCA0djNoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDQuNDhMMTkgMTAuMzVWN3pNNyAxN2MtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDZoNXYySDV6TTE5IDEzYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlcGFydHVyZUJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxYy0yLjQgMC00LjUyIDEuMjEtNS43OCAzLjA1LjAxLS4wMS4wMS0uMDIuMDItLjAzQzkuODQgNCA5LjQyIDQgOSA0Yy00LjQyIDAtOCAuNS04IDR2MTBjMCAuODguMzkgMS42NyAxIDIuMjJWMjJjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoOHYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xLjc4Yy42MS0uNTUgMS0xLjM0IDEtMi4yMnYtMy4wOGMzLjM5LS40OSA2LTMuMzkgNi02LjkyIDAtMy44Ny0zLjEzLTctNy03ek00LjUgMTljLS44MyAwLTEuNS0uNjctMS41LTEuNVMzLjY3IDE2IDQuNSAxNnMxLjUuNjcgMS41IDEuNVM1LjMzIDE5IDQuNSAxOXpNMyAxM1Y4aDZjMCAxLjk2LjgxIDMuNzMgMi4xMSA1SDN6bTEwLjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTIuNS02Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXptLjUtOUgxNXY1bDMuNjIgMi4xNi43NS0xLjIzLTIuODctMS42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGVzaWduU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi4yNCAxMS41MSAxLjU3LTEuNTctMy43NS0zLjc1LTEuNTcgMS41Ny00LjE0LTQuMTNjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC0xLjkgMS45Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDQuMTMgNC4xM0wzIDE3LjI1VjIxaDMuNzVsNC43Ni00Ljc2IDQuMTMgNC4xM2MuOTUuOTUgMi4yMy42IDIuODMgMGwxLjktMS45Yy43OC0uNzguNzgtMi4wNSAwLTIuODNsLTQuMTMtNC4xM3ptLTcuMDYtLjQ0TDUuMDQgNi45NGwxLjg5LTEuOUw4LjIgNi4zMSA3LjAyIDcuNWwxLjQxIDEuNDEgMS4xOS0xLjE5IDEuNDUgMS40NS0xLjg5IDEuOXptNy44OCA3Ljg5LTQuMTMtNC4xMyAxLjktMS45IDEuNDUgMS40NS0xLjE5IDEuMTkgMS40MSAxLjQxIDEuMTktMS4xOSAxLjI3IDEuMjctMS45IDEuOXpNMjAuNzEgNy4wNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGMtLjQ3LS40Ny0xLjEyLS4yOS0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaWFtb25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMTYgM2gtLjMyTDkuMjEgOC4yNWg1LjU4ek0xNi40NiA4LjI1aDUuMTZMMTkgM2gtNS4xNnpNMjEuMzggOS43NWgtOC42M1YyMC4xek0xMS4yNSAyMC4xVjkuNzVIMi42MnpNNy41NCA4LjI1IDEwLjE2IDNINUwyLjM4IDguMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpbm5lckRpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTloMjBsLTIgMkg0bC0yLTJ6TTUgNmgxdjFINVY2em0wLTJoMXYxSDVWNHptNCAwdjFIN1Y0aDJ6bTAgM0g3VjZoMnYxem0tMyA4LjIzYy0uMzYuMTEtLjY5LjI4LTEgLjQ3VjhoMXY3LjIzem0tMiAxLjI5Yy0uMzguNDQtLjY4LjkzLS44NCAxLjQ4aDE2LjgyYy4wMS0uMTYuMDMtLjMzLjAzLS41YTUuNDk3IDUuNDk3IDAgMCAwLTEwLjU4LTIuMWMtLjU5LS4yNS0xLjI0LS40LTEuOTMtLjQtLjE3IDAtLjMzLjAyLS41LjA0VjhoMmMxLjAzLjA2IDEuOS0uOTYgMi0yaDEwVjVIMTFjLS4xLTEuMDUtLjk3LTEuOTctMi0ySDN2MWgxdjFIM3YxaDF2MUgzdjFoMXY4LjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQmlrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNNSAxMmMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNSA1LTIuMiA1LTUtMi4yLTUtNS01em0wIDguNWMtMS45IDAtMy41LTEuNi0zLjUtMy41czEuNi0zLjUgMy41LTMuNSAzLjUgMS42IDMuNSAzLjUtMS42IDMuNS0zLjUgMy41em01LjgtMTAgMi40LTIuNC44LjhjMS4zIDEuMyAzIDIuMSA1LjEgMi4xVjljLTEuNSAwLTIuNy0uNi0zLjYtMS41bC0xLjktMS45Yy0uNS0uNC0xLS42LTEuNi0uNnMtMS4xLjItMS40LjZMNy44IDguNGMtLjQuNC0uNi45LS42IDEuNCAwIC42LjIgMS4xLjYgMS40TDExIDE0djVoMnYtNi4ybC0yLjItMi4zek0xOSAxMmMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNSA1LTIuMiA1LTUtMi4yLTUtNS01em0wIDguNWMtMS45IDAtMy41LTEuNi0zLjUtMy41czEuNi0zLjUgMy41LTMuNSAzLjUgMS42IDMuNSAzLjUtMS42IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zQm9hdEZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDIxYy0xLjM5IDAtMi43OC0uNDctNC0xLjMyLTIuNDQgMS43MS01LjU2IDEuNzEtOCAwQzYuNzggMjAuNTMgNS4zOSAyMSA0IDIxSDJ2MmgyYzEuMzggMCAyLjc0LS4zNSA0LS45OWE4Ljc1MiA4Ljc1MiAwIDAgMCA4IDBjMS4yNi42NSAyLjYyLjk5IDQgLjk5aDJ2LTJoLTJ6TTMuOTUgMTlINGMxLjYgMCAzLjAyLS44OCA0LTIgLjk4IDEuMTIgMi40IDIgNCAyczMuMDItLjg4IDQtMmMuOTggMS4xMiAyLjQgMiA0IDJoLjA1bDEuOS02LjY4Yy4xMS0uMzcuMDQtMS4wNi0uNjYtMS4yOEwyMCAxMC42MlY2YzAtMS4xLS45LTItMi0yaC0zVjFIOXYzSDZjLTEuMSAwLTIgLjktMiAydjQuNjJsLTEuMjkuNDJjLS42My4xOS0uODEuODQtLjY2IDEuMjhMMy45NSAxOXpNNiA2aDEydjMuOTdMMTIgOCA2IDkuOTdWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc0JvYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAyMWMtMS4zOSAwLTIuNzgtLjQ3LTQtMS4zMi0yLjQ0IDEuNzEtNS41NiAxLjcxLTggMEM2Ljc4IDIwLjUzIDUuMzkgMjEgNCAyMUgydjJoMmMxLjM4IDAgMi43NC0uMzUgNC0uOTlhOC43NTIgOC43NTIgMCAwIDAgOCAwYzEuMjYuNjUgMi42Mi45OSA0IC45OWgydi0yaC0yek0zLjk1IDE5SDRjMS42IDAgMy4wMi0uODggNC0yIC45OCAxLjEyIDIuNCAyIDQgMnMzLjAyLS44OCA0LTJjLjk4IDEuMTIgMi40IDIgNCAyaC4wNWwxLjg5LTYuNjhjLjA4LS4yNi4wNi0uNTQtLjA2LS43OHMtLjM0LS40Mi0uNi0uNUwyMCAxMC42MlY2YzAtMS4xLS45LTItMi0yaC0zVjFIOXYzSDZjLTEuMSAwLTIgLjktMiAydjQuNjJsLTEuMjkuNDJhMS4wMDcgMS4wMDcgMCAwIDAtLjY2IDEuMjhMMy45NSAxOXpNNiA2aDEydjMuOTdMMTIgOCA2IDkuOTdWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc0J1c0ZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQgMC04IC41LTggNHY5LjVjMCAuOTUuMzggMS44MSAxIDIuNDRWMjBjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoOHYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0yLjA2Yy42Mi0uNjMgMS0xLjQ5IDEtMi40NFY2YzAtMy41LTMuNTgtNC04LTR6TTguNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzcuNjcgMTMgOC41IDEzczEuNS42NyAxLjUgMS41UzkuMzMgMTYgOC41IDE2em03IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0yLjUtNkg2VjdoMTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc0J1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTZjMCAuODguMzkgMS42NyAxIDIuMjJWMjBjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoOHYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xLjc4Yy42MS0uNTUgMS0xLjM0IDEtMi4yMlY2YzAtMy41LTMuNTgtNC04LTRzLTggLjUtOCA0djEwem0zLjUgMWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTQgNy41IDE0czEuNS42NyAxLjUgMS41UzguMzMgMTcgNy41IDE3em05IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0xLjUtNkg2VjZoMTJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc0NhckZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNWgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTcuNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTMgNy41IDEzczEuNS42NyAxLjUgMS41UzguMzMgMTYgNy41IDE2em05IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01LjgxIDEwbDEuMDQtM2gxMC4yOWwxLjA0IDNINS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc0NhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNWgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTMgNi41IDEzczEuNS42NyAxLjUgMS41UzcuMzMgMTYgNi41IDE2em0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNNSAxMWwxLjUtNC41aDExTDE5IDExSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpcmVjdGlvbnNSYWlsd2F5RmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjB2MWgxMnYtMWwtMS41LTFjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00em0wIDE0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTEuMTcgMTMgMTIgMTNzMS41LjY3IDEuNSAxLjVTMTIuODMgMTYgMTIgMTZ6bTYtNkg2VjdoMTJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1JhaWx3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE1LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwLjV2LjVoMTJ2LS41TDE2LjUgMTljMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNWMwLTMuNS0zLjU4LTQtOC00cy04IC41LTggNHYxMC41em04IDEuNWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTYtN0g2VjVoMTJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1J1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjQ5IDUuNDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tMy42IDEzLjkgMS00LjQgMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNjMS4zIDEuNSAzLjMgMi41IDUuNSAyLjV2LTJjLTEuOSAwLTMuNS0xLTQuMy0yLjRsLTEtMS42Yy0uNC0uNi0xLTEtMS43LTEtLjMgMC0uNS4xLS44LjFsLTUuMiAyLjJ2NC43aDJ2LTMuNGwxLjgtLjctMS42IDguMS00LjktMS0uNCAyIDcgMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zU3Vid2F5RmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjB2MWgxMnYtMWwtMS41LTFjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00ek04LjUgMTZjLS44MyAwLTEuNS0uNjctMS41LTEuNVM3LjY3IDEzIDguNSAxM3MxLjUuNjcgMS41IDEuNVM5LjMzIDE2IDguNSAxNnptMi41LTZINlY3aDV2M3ptNC41IDZjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0yLjUtNmgtNVY3aDV2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1N1YndheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQuNDIgMC04IC41LTggNHY5LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwLjV2LjVoMTJ2LS41TDE2LjUgMTljMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00ek03LjUgMTdjLS44MyAwLTEuNS0uNjctMS41LTEuNVM2LjY3IDE0IDcuNSAxNHMxLjUuNjcgMS41IDEuNVM4LjMzIDE3IDcuNSAxN3ptMy41LTZINlY2aDV2NXptNS41IDZjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0xLjUtNmgtNVY2aDV2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1RyYW5zaXRGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMHYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6TTguNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzcuNjcgMTMgOC41IDEzczEuNS42NyAxLjUgMS41UzkuMzMgMTYgOC41IDE2em0yLjUtNkg2VjdoNXYzem00LjUgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTIuNS02aC01VjdoNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zVHJhbnNpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQuNDIgMC04IC41LTggNHY5LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwLjV2LjVoMTJ2LS41TDE2LjUgMTljMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00ek03LjUgMTdjLS44MyAwLTEuNS0uNjctMS41LTEuNVM2LjY3IDE0IDcuNSAxNHMxLjUuNjcgMS41IDEuNVM4LjMzIDE3IDcuNSAxN3ptMy41LTZINlY2aDV2NXptNS41IDZjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em0xLjUtNmgtNVY2aDV2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGlyZWN0aW9uc1dhbGsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTkuOCA4LjkgNyAyM2gyLjFsMS44LTggMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNDMTQuOCAxMiAxNi44IDEzIDE5IDEzdi0yYy0xLjkgMC0zLjUtMS00LjMtMi40bC0xLTEuNmMtLjQtLjYtMS0xLTEuNy0xLS4zIDAtLjUuMS0uOC4xTDYgOC4zVjEzaDJWOS42bDEuOC0uN1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTAuNTktNy45OS04Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtOC4wMSA4Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDguMDEgOGMuNzguNzggMi4wNS43OCAyLjgzIDBsNy45OS04Yy43OS0uNzkuNzktMi4wNSAwLTIuODN6TTEzLjUgMTQuNVYxMkgxMHYzSDh2LTRjMC0uNTUuNDUtMSAxLTFoNC41VjcuNUwxNyAxMWwtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRHJ5Q2xlYW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41NiAxMS4zNiAxMyA4LjQ0VjdjMC0uNTUtLjQ1LTEtMS0xcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMWgyYzAtMS44NC0xLjY2LTMuMy0zLjU2LTIuOTUtMS4xOC4yMi0yLjE1IDEuMTctMi4zOCAyLjM1LS4zIDEuNTYuNiAyLjk0IDEuOTQgMy40MnYuNjNsLTYuNTYgMi45MmMtLjg4LjM4LTEuNDQgMS4yNS0xLjQ0IDIuMnYuMDFDMyAxNC45MiA0LjA4IDE2IDUuNDIgMTZIN3Y2aDEwdi02aDEuNThjMS4zNCAwIDIuNDItMS4wOCAyLjQyLTIuNDJ2LS4wMWMwLS45NS0uNTYtMS44Mi0xLjQ0LTIuMjF6TTE4LjU4IDE0SDE3di0xSDd2MUg1LjQyYy0uMjMgMC0uNDItLjE5LS40Mi0uNDMgMC0uMTcuMS0uMzIuMjUtLjM4bDYuNzUtMyA2Ljc1IDNhLjQyMy40MjMgMCAwIDEtLjE3LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0QXR0cmlidXRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjYzIDdINi4zN0MzLjk2IDcgMiA5LjI0IDIgMTJzMS45NiA1IDQuMzcgNWgxMS4yNmMyLjQxIDAgNC4zNy0yLjI0IDQuMzctNXMtMS45Ni01LTQuMzctNXpNNy4yNCAxNC40NmwtMi41Ny0yLjU3LjctLjcgMS44NyAxLjg3IDMuNTItMy41Mi43LjctNC4yMiA0LjIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0TG9jYXRpb25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45NSAxM0g5VjguMDVsNS42MS01LjYxQTguMTcgOC4xNyAwIDAgMCAxMiAyYy00LjIgMC04IDMuMjItOCA4LjIgMCAzLjMyIDIuNjcgNy4yNSA4IDExLjggNS4zMy00LjU1IDgtOC40OCA4LTExLjggMC0xLjAxLS4xNi0xLjk0LS40NS0yLjhsLTUuNiA1LjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExaDIuMTJsNi4xNi02LjE2LTIuMTItMi4xMkwxMSA4Ljg4ek0yMC43MSAyIDIwIDEuMjljLS4yLS4xOS0uNDUtLjI5LS43MS0uMjktLjEzIDAtLjQ4LjA3LS43MS4yOWwtLjcyLjcyIDIuMTIgMi4xMi43Mi0uNzJjLjQtLjM5LjQtMS4wMi4wMS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0TG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTQgMiA1IDUuMTQgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg2LTMuMTQtNy03LTd6bS0xLjU2IDEwSDl2LTEuNDRsMy4zNS0zLjM0IDEuNDMgMS40M0wxMC40NCAxMnptNC40NS00LjQ1LS43LjctMS40NC0xLjQ0LjctLjdhLjM4LjM4IDAgMCAxIC41NCAwbC45LjljLjE1LjE1LjE1LjM5IDAgLjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0Um9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRoLTJ2Ny45bDItMnpNNCA0aDJ2MTZINHpNMTAgNGgydjRoLTJ6TTEwIDEwaDJ2NGgtMnpNMTAgMTZoMnY0aC0yek0yMi41NiAxMi41OWwtMS4xNS0xLjE1YTEuNDkgMS40OSAwIDAgMC0yLjEyIDBMMTQgMTYuNzNWMjBoMy4yN2w1LjI5LTUuMjljLjU5LS41OS41OS0xLjU0IDAtMi4xMnptLTUuOTggNS44NmgtMS4wM3YtMS4wM0wxOSAxMy45NyAyMC4wMyAxNWwtMy40NSAzLjQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZ2dBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5Yy0yLTItMy4wMS03LTkuMDMtN0M0Ljk1IDIgMS45NCA2IDIgMTEuNTIgMi4wNiAxNy4wNCA2Ljk2IDE5IDkuOTcgMTljMi4wMSAwIDIuMDEgMyA2LjAyIDNDMTkgMjIgMjIgMTkgMjIgMTUuMDIgMjIgMTIgMjEuMDEgMTEgMTkgOXptLTcgNi41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgM0M4LjUgMyA1IDkuMzMgNSAxNGMwIDMuODcgMy4xMyA3IDcgN3M3LTMuMTMgNy03YzAtNC42Ny0zLjUtMTEtNy0xMXptMSAxNWMtMyAwLTUtMS45OS01LTUgMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxYzAgMi45MiAyLjQyIDMgMyAzIC41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbGVjdHJpY0Jpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3aC0uODJsLTEuNy00LjY4QTIuMDA4IDIuMDA4IDAgMCAwIDE0LjYgMUgxMnYyaDIuNmwxLjQ2IDRoLTQuODFsLS4zNi0xSDEyVjRIN3YyaDEuNzVsMS44MiA1SDkuOWMtLjQ0LTIuMjMtMi4zMS0zLjg4LTQuNjUtMy45OUMyLjQ1IDYuODcgMCA5LjIgMCAxMmMwIDIuOCAyLjIgNSA1IDUgMi40NiAwIDQuNDUtMS42OSA0LjktNGg0LjJjLjQ0IDIuMjMgMi4zMSAzLjg4IDQuNjUgMy45OSAyLjguMTMgNS4yNS0yLjE5IDUuMjUtNUMyNCA5LjIgMjEuOCA3IDE5IDd6TTcuODIgMTNjLS40IDEuMTctMS40OSAyLTIuODIgMi0xLjY4IDAtMy0xLjMyLTMtM3MxLjMyLTMgMy0zYzEuMzMgMCAyLjQyLjgzIDIuODIgMkg1djJoMi44MnptNi4yOC0yaC0xLjRsLS43My0ySDE1Yy0uNDQuNTgtLjc2IDEuMjUtLjkgMnptNC45IDRjLTEuNjggMC0zLTEuMzItMy0zIDAtLjkzLjQxLTEuNzMgMS4wNS0yLjI4bC45NiAyLjY0IDEuODgtLjY4LS45Ny0yLjY3Yy4wMiAwIC4wNS0uMDEuMDgtLjAxIDEuNjggMCAzIDEuMzIgMyAzcy0xLjMyIDMtMyAzek0xMSAyMEg3bDYgM3YtMmg0bC02LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZWN0cmljQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgMi4wMUMxOC43MiAxLjQyIDE4LjE2IDEgMTcuNSAxaC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyA4djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMVY4bC0yLjA4LTUuOTl6TTYuNSAxMmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgOSA2LjUgOSA4IDkuNjcgOCAxMC41IDcuMzMgMTIgNi41IDEyem0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01IDdsMS41LTQuNWgxMUwxOSA3SDV6TTcgMjBoNHYtMmw2IDNoLTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxlY3RyaWNNb3BlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVjMC0xLjEtLjktMi0yLTJoLTN2MmgzdjIuNjVMMTMuNTIgMTJIMTBWN0g2Yy0yLjIxIDAtNCAxLjc5LTQgNHYzaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g0LjQ4TDE5IDguMzVWNXpNNyAxNWMtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDRoNXYySDV6TTE5IDExYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTcgMjBoNHYtMmw2IDNoLTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxlY3RyaWNSaWNrc2hhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExLjE4VjkuNzJjMC0uNDctLjE2LS45Mi0uNDYtMS4yOEwxNi42IDMuNzJjLS4zOC0uNDYtLjk0LS43Mi0xLjU0LS43MkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoLjE4QzMuNiAxNi4xNiA0LjcgMTcgNiAxN3MyLjQtLjg0IDIuODItMmg4LjM3YTIuOTk2IDIuOTk2IDAgMCAwIDUuODItMWMtLjAxLTEuMy0uODUtMi40LTIuMDEtMi44MnpNMTguNCA5SDE2VjYuMTJMMTguNCA5ek0zIDVoNHY0SDNWNXptMyAxMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0zLTJ2LTJoM1Y5SDlWNWg1djhIOXptMTEgMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxek03IDIwaDR2LTJsNiAzaC00djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZWN0cmljU2Nvb3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuODIgMTZIMTV2LTFjMC0yLjIxIDEuNzktNCA0LTRoLjc0bC0xLjktOC40NEEyLjAwOSAyLjAwOSAwIDAgMCAxNS44OSAxSDEydjJoMy44OWwxLjQgNi4yNWgtLjAxQTYuMDA4IDYuMDA4IDAgMCAwIDEzLjA5IDE0SDcuODJhMi45OTYgMi45OTYgMCAwIDAtMy40Mi0xLjk0Yy0xLjE4LjIzLTIuMTMgMS4yLTIuMzUgMi4zOEEzLjAwMiAzLjAwMiAwIDAgMCA1IDE4YzEuMyAwIDIuNC0uODQgMi44Mi0yek01IDE2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEyYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTExIDIwSDdsNiAzdi0yaDRsLTYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxlY3RyaWNhbFNlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRjMC0uNTUtLjQ1LTEtMS0xaC0ydjJoMmMuNTUgMCAxLS40NSAxLTF6TTIwIDE3aC0ydjJoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMXpNMTIgMTRoLTJ2NGgyYzAgMS4xLjkgMiAyIDJoM3YtOGgtM2MtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTNjMC0xLjEuOS0yIDItMmgxLjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTAuNDMgNCA4LjUgNEg1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjMzIDkgOC41IDlIN2MtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNGgydi0ySDdjLTEuMSAwLTItLjktMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbWVyZ2VuY3lSZWNvcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4ek0xMiAxMmwzIDEuNzMtMSAxLjczLTMtMS43M1YxN0g5di0zLjI3bC0zIDEuNzMtMS0xLjczTDggMTJsLTMtMS43MyAxLTEuNzMgMyAxLjczVjdoMnYzLjI3bDMtMS43MyAxIDEuNzNMMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtZXJnZW5jeVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOWMtMy4xNSAwLTYgMi40MS02IDYuMTUgMCAyLjQ5IDIgNS40NCA2IDguODUgNC0zLjQxIDYtNi4zNiA2LTguODVDMTggMTEuNDEgMTUuMTUgOSAxMiA5em0wIDcuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTEyIDRjMS45MyAwIDMuNjguNzggNC45NSAyLjA1bC0xLjQxIDEuNDFhNS4wMjIgNS4wMjIgMCAwIDAtNy4wOCAwTDcuMDUgNi4wNUE2Ljk3NiA2Ljk3NiAwIDAgMSAxMiA0em03Ljc4LS43Ny0xLjQxIDEuNDFDMTYuNzQgMy4wMSAxNC40OSAyIDEyLjAxIDJTNy4yNyAzLjAxIDUuNjQgNC42M0w0LjIyIDMuMjJDNi4yMiAxLjIzIDguOTcgMCAxMi4wMSAwczUuNzggMS4yMyA3Ljc3IDMuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtZXJnZW5jeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjc5IDkuMjMtMi0zLjQ2TDE0IDguNTRWM2gtNHY1LjU0TDUuMjEgNS43N2wtMiAzLjQ2TDggMTJsLTQuNzkgMi43NyAyIDMuNDZMMTAgMTUuNDZWMjFoNHYtNS41NGw0Ljc5IDIuNzcgMi0zLjQ2TDE2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFdlN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDcuMjMuMDEtLjAxLTMuNzItMy43MkwxNSA0LjU2bDIuMTEgMi4xMWMtLjk0LjM2LTEuNjEgMS4yNi0xLjYxIDIuMzNhMi41IDIuNSAwIDAgMCAyLjUgMi41Yy4zNiAwIC42OS0uMDggMS0uMjF2Ny4yMWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVYxNGMwLTEuMS0uOS0yLTItMmgtMVY1YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAydjE2aDEwdi03LjVoMS41djVhMi41IDIuNSAwIDAgMCA1IDBWOWMwLS42OS0uMjgtMS4zMi0uNzMtMS43N3pNMTggMTBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNOCAxOHYtNC41SDZMMTAgNnY1aDJsLTQgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEwdjEySDJWMTBsNy0zdjJsNS0ydjNoOHptLTQuOC0xLjVMMTggMmgzbC44IDYuNWgtNC42ek0xMSAxOGgydi00aC0ydjR6bS00IDBoMnYtNEg3djR6bTEwLTRoLTJ2NGgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYXN0Zm9vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjA2IDIyLjk5aDEuNjZjLjg0IDAgMS41My0uNjQgMS42My0xLjQ2TDIzIDUuMDVoLTVWMWgtMS45N3Y0LjA1aC00Ljk3bC4zIDIuMzRjMS43MS40NyAzLjMxIDEuMzIgNC4yNyAyLjI2IDEuNDQgMS40MiAyLjQzIDIuODkgMi40MyA1LjI5djguMDV6TTEgMjEuOTlWMjFoMTUuMDN2Ljk5YzAgLjU1LS40NSAxLTEuMDEgMUgyLjAxYy0uNTYgMC0xLjAxLS40NS0xLjAxLTF6bTE1LjAzLTdjMC04LTE1LjAzLTgtMTUuMDMgMGgxNS4wM3pNMS4wMiAxN2gxNXYyaC0xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmVzdGl2YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1LjdWNGgzbC0xLTEuNDlMMTYgMWgtNXY0LjdMMiAxMnYxMGg3di01bDMuMDMtMkwxNSAxN3Y1aDdWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpcmVIeWRyYW50QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTFoLTFWOGgyVjZoLTIuMzVhNS45OSA1Ljk5IDAgMCAwLTExLjMgMEg0djJoMnYzSDVjLTEuMSAwLTIgLjktMiAydjJjMCAxLjEuOSAyIDIgMmgxdjNINHYyaDE2di0yaC0ydi0zaDFjMS4xIDAgMi0uOSAyLTJ2LTJjMC0xLjEtLjktMi0yLTJ6bS03IDYuNWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVzMS41Ny0zLjUgMy41LTMuNSAzLjUgMS41NyAzLjUgMy41LTEuNTcgMy41LTMuNSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpcmVUcnVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjkgMTAuNjktMS40NC00LjMyQTIuMDEgMi4wMSAwIDAgMCAxOS41NiA1SDE5VjRjMC0uNTUtLjQ1LTEtMS0xaC0xYy0uNTUgMC0xIC40NS0xIDF2MWgtMmMtMS4xIDAtMiAuOS0yIDJ2NEgxdjVjMCAxLjEuOSAyIDIgMmgxYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNGMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDN2LTYuNjhjMC0uMjEtLjAzLS40Mi0uMS0uNjN6TTcgMTljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMTAgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMy04VjdoNS41NmwxLjMzIDRIMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDguNWgtMXYtMmgxVjVIMXYxLjVoMXYySDFWMTBoMTBWOC41em0tNS43NSAwSDMuNXYtMmgxLjc1djJ6bTMuMjUgMEg2Ljc1di0ySDguNXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlnaHRDbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRoLTJjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTkuNSAxNkgxOHYySDkuNDljLS44OCAwLTEuNjYtLjU4LTEuOTItMS40M0w1IDhWNGgydjRsMi41IDh6TTggMTloMTB2Mkg4di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGbGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNnYtMmwtOC01VjMuNWMwLS44My0uNjctMS41LTEuNS0xLjVTMTAgMi42NyAxMCAzLjVWOWwtOCA1djJsOC0yLjVWMTlsLTIgMS41VjIybDMuNS0xIDMuNSAxdi0xLjVMMTMgMTl2LTUuNWw4IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9yZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTIgOSAyIDIgMTJoMS44NkwwIDE4aDd2NGg0di00aDdsLTMuODYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTQgMTJIMjJMMTUgMmwtMi4zOSAzLjQxTDE3LjkyIDEzaC0xLjk1bDMuMjIgNUgyNHpNMTMgMTloNHYzaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3JrTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNDEgMTUuNTkgOCAxN2wtNC00IDQtNCAxLjQxIDEuNDFMNy44MyAxMmMxLjUxLS4zMyAzLjczLjA4IDUuMTcgMS4zNlY2LjgzbC0xLjU5IDEuNTlMMTAgN2w0LTQgNCA0LTEuNDEgMS40MUwxNSA2LjgzVjIxaC0ydi00Yy0uNzMtMi41OC0zLjA3LTMuNDctNS4xNy0zbDEuNTggMS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ya1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNTkgMTUuNTkgMTYgMTdsNC00LTQtNC0xLjQxIDEuNDFMMTYuMTcgMTJjLTEuNTEtLjMzLTMuNzMuMDgtNS4xNyAxLjM2VjYuODNsMS41OSAxLjU5TDE0IDdsLTQtNC00IDQgMS40MSAxLjQxTDkgNi44M1YyMWgydi00Yy43My0yLjU4IDMuMDctMy40NyA1LjE3LTNsLTEuNTggMS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRm9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDN2MmgtMlYzaC0ydjJoLTJWM2gtMnY0bDIgMnYxSDlWOWwyLTJWM0g5djJIN1YzSDV2MkgzVjNIMXY0bDIgMnY2bC0yIDJ2NGg5di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M2g5di00bC0yLTJWOWwyLTJWM2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem01LTRoMnYuNGMtLjEgMi4yLS44IDMuOS0yLjMgNS4xLS41LjQtMS4xLjctMS43LjlWMjJoLTJ2LTZoLTJ2Nkg5VjEwLjFjLS4zLjEtLjUuMi0uNi4zLS45LjctMS4zOSAxLjYtMS40IDMuMXYuNUg1di0uNWMwLTIgLjcxLTMuNTkgMi4xMS00Ljc5QzguMjEgNy44MSAxMCA3IDEyIDdzMi42OC0uNDYgMy40OC0xLjA2QzE2LjQ4IDUuMTQgMTcgNCAxNyAyLjVWMnpNNCAxNmgzdjZINHYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGFuZHltYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS42NyAxOC4xNy01LjMtNS4zaC0uOTlsLTIuNTQgMi41NHYuOTlsNS4zIDUuM2MuMzkuMzkgMS4wMi4zOSAxLjQxIDBsMi4xMi0yLjEyYS45OTYuOTk2IDAgMCAwIDAtMS40MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzQgMTAuMTkgMS40MS0xLjQxIDIuMTIgMi4xMmEzIDMgMCAwIDAgMC00LjI0bC0zLjU0LTMuNTQtMS40MSAxLjQxVjEuNzFsLS43LS43MS0zLjU0IDMuNTQuNzEuNzFoMi44M2wtMS40MSAxLjQxIDEuMDYgMS4wNi0yLjg5IDIuODktNC4xMy00LjEzVjUuMDZMNC44MyAyLjA0IDIgNC44NyA1LjAzIDcuOWgxLjQxbDQuMTMgNC4xMy0uODUuODVINy42bC01LjMgNS4zYS45OTYuOTk2IDAgMCAwIDAgMS40MWwyLjEyIDIuMTJjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDUuMy01LjN2LTIuMTJsNS4xNS01LjE1IDEuMDYgMS4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGFyZHdhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAzLTMgM1YzSDlDNi4yNCAzIDQgNS4yNCA0IDhoNXYzaDZWOGwzIDNoMlYzaC0yek05IDEzdjdjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTdIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZVJlcGFpclNlcnZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNmgtMnYtMUg4djFINnYtMUgydjVoMjB2LTVoLTR6TTIwIDhoLTNWNmMwLTEuMS0uOS0yLTItMkg5Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjRoNHYtMmgydjJoOHYtMmgydjJoNHYtNGMwLTEuMS0uOS0yLTItMnptLTUgMEg5VjZoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3RlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTNjMS42NiAwIDMtMS4zNCAzLTNTOC42NiA3IDcgN3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzem0xMi02aC04djdIM1Y1SDF2MTVoMnYtM2gxOHYzaDJ2LTljMC0yLjIxLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEh2YWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNmMxLjAxIDAgMS45MS0uMzkgMi42Mi0xSDkuMzhjLjcxLjYxIDEuNjEgMSAyLjYyIDF6TTguNTYgMTRoNi44OWMuMjYtLjQ1LjQ0LS45Ni41MS0xLjVoLTcuOWMuMDYuNTQuMjMgMS4wNS41IDEuNXpNMTIgOGMtMS4wMSAwLTEuOTEuMzktMi42MiAxaDUuMjRjLS43MS0uNjEtMS42MS0xLTIuNjItMXpNOC41NiAxMGMtLjI2LjQ1LS40NC45Ni0uNTEgMS41aDcuOWMtLjA3LS41NC0uMjQtMS4wNS0uNTEtMS41SDguNTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAxNWMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEljZWNyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwibTguNzkgMTIuNCAzLjI2IDYuMjIgMy4xNy02LjIxYy0uMTEtLjA4LS4yMS0uMTYtLjMtLjI1LS44NC41My0xLjg1Ljg0LTIuOTIuODRzLTIuMDgtLjMxLTIuOTItLjg0Yy0uMDkuMDktLjE5LjE3LS4yOS4yNHptLTEuOTYuNTlBMi45OTUgMi45OTUgMCAwIDEgNCAxMGEzIDMgMCAwIDEgMi41Mi0yLjk2QzYuNzUgNC4yMiA5LjEyIDIgMTIgMnM1LjI1IDIuMjIgNS40OCA1LjA0QTMgMyAwIDAgMSAyMCAxMGMwIDEuNTktMS4yNCAyLjktMi44MSAyLjk5TDEyLjA3IDIzIDYuODMgMTIuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEtlYmFiRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy43NSA4SDExdjVINy43NXYxaC43NWEyLjUgMi41IDAgMCAxIDAgNWgtLjc1djRoLTEuNXYtNEg1LjVhMi41IDIuNSAwIDAgMSAwLTVoLjc1di0xSDNWOGgzLjI1VjdINS41YTIuNSAyLjUgMCAwIDEgMC01aC43NVYxaDEuNXYxaC43NWEyLjUgMi41IDAgMCAxIDAgNWgtLjc1djF6bTEwLTFoLjc1YTIuNSAyLjUgMCAwIDAgMC01aC0uNzVWMWgtMS41djFoLS43NWEyLjUgMi41IDAgMCAwIDAgNWguNzV2MUgxM3Y1aDMuMjV2MWgtLjc1YTIuNSAyLjUgMCAwIDAgMCA1aC43NXY0aDEuNXYtNGguNzVhMi41IDIuNSAwIDAgMCAwLTVoLS43NXYtMUgyMVY4aC0zLjI1Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExheWVyc0NsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuODEgMTQuOTkgMS4xOS0uOTItMS40My0xLjQzLTEuMTkuOTIgMS40MyAxLjQzem0tLjQ1LTQuNzJMMjEgOWwtOS03LTIuOTEgMi4yNyA3Ljg3IDcuODggMi40LTEuODh6TTMuMjcgMSAyIDIuMjdsNC4yMiA0LjIyTDMgOWwxLjYzIDEuMjdMMTIgMTZsMi4xLTEuNjMgMS40MyAxLjQzTDEyIDE4LjU0bC03LjM3LTUuNzNMMyAxNC4wN2w5IDcgNC45NS0zLjg1TDIwLjczIDIxIDIyIDE5LjczIDMuMjcgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGF5ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuOTkgMTguNTQtNy4zNy01LjczTDMgMTQuMDdsOSA3IDktNy0xLjYzLTEuMjctNy4zOCA1Ljc0ek0xMiAxNmw3LjM2LTUuNzNMMjEgOWwtOS03LTkgNyAxLjYzIDEuMjdMMTIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpcXVvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyMEgzdjJoNnYtMkg3di0zLjE4QzguMTYgMTYuNCA5IDE1LjMgOSAxNFY2SDN2OHptMi02aDJ2M0g1Vjh6TTIwLjYzIDguNTRsLS45NS0uMzJhLjk5MS45OTEgMCAwIDEtLjY4LS45NFYzYzAtLjU1LS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxdjQuMjhjMCAuNDMtLjI4LjgxLS42OC45NWwtLjk1LjMyYy0uODIuMjctMS4zNyAxLjAzLTEuMzcgMS44OVYyMGMwIDEuMS45IDIgMiAyaDdjMS4xIDAgMi0uOSAyLTJ2LTkuNTZjMC0uODYtLjU1LTEuNjItMS4zNy0xLjl6TTE2IDRoMXYxaC0xVjR6bS0zIDYuNDQuOTUtLjMyQzE1LjE4IDkuNzIgMTYgOC41NyAxNiA3LjI4VjdoMXYuMjhhMyAzIDAgMCAwIDIuMDUgMi44NWwuOTUuMzFWMTJoLTd2LTEuNTZ6TTIwIDIwaC03di0yaDd2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxBY3Rpdml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyYzAtMS4xLjktMiAyLTJWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNGMtMS4xIDAtMi0uOS0yLTJ6bS00LjQyIDQuOEwxMiAxNC41bC0zLjU4IDIuMyAxLjA4LTQuMTItMy4yOS0yLjY5IDQuMjQtLjI1TDEyIDUuOGwxLjU0IDMuOTUgNC4yNC4yNS0zLjI5IDIuNjkgMS4wOSA0LjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEFpcnBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0ybC04LjUtNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNVY5TDIgMTR2Mmw4LjUtMi41VjE5TDggMjAuNVYyMmw0LTEgNCAxdi0xLjVMMTMuNSAxOXYtNS41TDIyIDE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEF0bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3aDJ2LTFoMWMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xaC0zdi0xaDRWOGgtMlY3aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDN2MUg5djJoMnYxem05LTEzSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNVYzSDN2Mmw4IDl2NUg2djJoMTJ2LTJoLTV2LTVsOC05ek03LjQzIDcgNS42NiA1aDEyLjY5bC0xLjc4IDJINy40M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxDYWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDR2MTBjMCAyLjIxIDEuNzkgNCA0IDRoNmMyLjIxIDAgNC0xLjc5IDQtNHYtM2gyYTIgMiAwIDAgMCAyLTJWNWMwLTEuMTEtLjg5LTItMi0yem0wIDVoLTJWNWgydjN6TTQgMTloMTZ2Mkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbENhcldhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLTEtMS41LTIuNy0xLjUtMi43cy0xLjUgMS43LTEuNSAyLjdjMCAuODMuNjcgMS41IDEuNSAxLjV6bS01IDBjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtMS0xLjUtMi43LTEuNS0yLjdzLTEuNSAxLjctMS41IDIuN2MwIC44My42NyAxLjUgMS41IDEuNXpNNyA1Yy44MyAwIDEuNS0uNjcgMS41LTEuNUM4LjUgMi41IDcgLjggNyAuOFM1LjUgMi41IDUuNSAzLjVDNS41IDQuMzMgNi4xNyA1IDcgNXptMTEuOTIgMy4wMUMxOC43MiA3LjQyIDE4LjE2IDcgMTcuNSA3aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxNHY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi41IDE4Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyAxNSA2LjUgMTVzMS41LjY3IDEuNSAxLjVTNy4zMyAxOCA2LjUgMTh6bTExIDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01IDEzbDEuNS00LjVoMTFMMTkgMTNINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxDb252ZW5pZW5jZVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN1Y0SDV2M0gydjEzaDh2LTRoNHY0aDhWN2gtM3ptLTggM0g5djFoMnYxSDhWOWgyVjhIOFY3aDN2M3ptNSAyaC0xdi0yaC0yVjdoMXYyaDFWN2gxdjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC4xIDEzLjM0IDIuODMtMi44M0wzLjkxIDMuNWE0LjAwOCA0LjAwOCAwIDAgMCAwIDUuNjZsNC4xOSA0LjE4em02Ljc4LTEuODFjMS41My43MSAzLjY4LjIxIDUuMjctMS4zOCAxLjkxLTEuOTEgMi4yOC00LjY1LjgxLTYuMTItMS40Ni0xLjQ2LTQuMi0xLjEtNi4xMi44MS0xLjU5IDEuNTktMi4wOSAzLjc0LTEuMzggNS4yN0wzLjcgMTkuODdsMS40MSAxLjQxTDEyIDE0LjQxbDYuODggNi44OCAxLjQxLTEuNDFMMTMuNDEgMTNsMS40Ny0xLjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbERyaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMyAyIDIuMDEgMTguMjNDNS4xMyAyMS4yMyA1Ljk3IDIyIDcgMjJoMTBjMS4wMyAwIDEuODctLjc3IDEuOTktMS43N0wyMSAySDN6bTkgMTdjLTEuNjYgMC0zLTEuMzQtMy0zIDAtMiAzLTUuNCAzLTUuNHMzIDMuNCAzIDUuNGMwIDEuNjYtMS4zNCAzLTMgM3ptNi4zMy0xMUg1LjY3bC0uNDQtNGgxMy41M2wtLjQzIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsRmlyZURlcGFydG1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxMi45LTIuMTMgMi4wOWMtLjU2LjU2LS44NyAxLjI5LS44NyAyLjA3QzkgMTguNjggMTAuMzUgMjAgMTIgMjBzMy0xLjMyIDMtMi45NGMwLS43OC0uMzEtMS41Mi0uODctMi4wN0wxMiAxMi45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA2LS40NC41NUMxNC4zOCA4LjAyIDEyIDcuMTkgMTIgNS4zVjJTNCA2IDQgMTNjMCAyLjkyIDEuNTYgNS40NyAzLjg5IDYuODYtLjU2LS43OS0uODktMS43Ni0uODktMi44IDAtMS4zMi41Mi0yLjU2IDEuNDctMy41TDEyIDEwLjFsMy41MyAzLjQ3Yy45NS45MyAxLjQ3IDIuMTcgMS40NyAzLjUgMCAxLjAyLS4zMSAxLjk2LS44NSAyLjc1IDEuODktMS4xNSAzLjI5LTMuMDYgMy43MS01LjMuNjYtMy41NS0xLjA3LTYuOS0zLjg2LTguNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsRmxvcmlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYTkgOSAwIDAgMCA5LTkgOSA5IDAgMCAwLTkgOXpNNS42IDEwLjI1YTIuNSAyLjUgMCAwIDAgMy45MiAyLjA2bC0uMDIuMTlhMi41IDIuNSAwIDAgMCA1IDBsLS4wMi0uMTljLjQuMjguODkuNDQgMS40Mi40NGEyLjUgMi41IDAgMCAwIDIuNS0yLjVjMC0xLS41OS0xLjg1LTEuNDMtMi4yNS44NC0uNCAxLjQzLTEuMjUgMS40My0yLjI1YTIuNSAyLjUgMCAwIDAtMy45Mi0yLjA2bC4wMi0uMTlhMi41IDIuNSAwIDAgMC01IDBsLjAyLjE5Yy0uNC0uMjgtLjg5LS40NC0xLjQyLS40NGEyLjUgMi41IDAgMCAwLTIuNSAyLjVjMCAxIC41OSAxLjg1IDEuNDMgMi4yNS0uODQuNC0xLjQzIDEuMjUtMS40MyAyLjI1ek0xMiA1LjVhMi41IDIuNSAwIDAgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTV6TTMgMTNhOSA5IDAgMCAwIDkgOSA5IDkgMCAwIDAtOS05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEdhc1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyA3LjIzLjAxLS4wMS0zLjcyLTMuNzJMMTUgNC41NmwyLjExIDIuMTFjLS45NC4zNi0xLjYxIDEuMjYtMS42MSAyLjMzYTIuNSAyLjUgMCAwIDAgMi41IDIuNWMuMzYgMCAuNjktLjA4IDEtLjIxdjcuMjFjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTFWMTRjMC0xLjEtLjktMi0yLTJoLTFWNWMwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmgxMHYtNy41aDEuNXY1YTIuNSAyLjUgMCAwIDAgNSAwVjljMC0uNjktLjI4LTEuMzItLjczLTEuNzd6TTEyIDEwSDZWNWg2djV6bTYgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbEdyb2NlcnlTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6TTEgMnYyaDJsMy42IDcuNTktMS4zNSAyLjQ1Yy0uMTYuMjgtLjI1LjYxLS4yNS45NiAwIDEuMS45IDIgMiAyaDEydi0ySDcuNDJjLS4xNCAwLS4yNS0uMTEtLjI1LS4yNWwuMDMtLjEyLjktMS42M2g3LjQ1Yy43NSAwIDEuNDEtLjQxIDEuNzUtMS4wM2wzLjU4LTYuNDlBMS4wMDMgMS4wMDMgMCAwIDAgMjAgNEg1LjIxbC0uOTQtMkgxem0xNiAxNmMtMS4xIDAtMS45OS45LTEuOTkgMnMuODkgMiAxLjk5IDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS0xIDExaC00djRoLTR2LTRINnYtNGg0VjZoNHY0aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxIb3RlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTNjMS42NiAwIDMtMS4zNCAzLTNTOC42NiA3IDcgN3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzem0xMi02aC04djdIM1Y1SDF2MTVoMnYtM2gxOHYzaDJ2LTljMC0yLjIxLTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsTGF1bmRyeVNlcnZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjE3IDE2LjgzYTQuMDA4IDQuMDA4IDAgMCAwIDUuNjYgMCA0LjAwOCA0LjAwOCAwIDAgMCAwLTUuNjZsLTUuNjYgNS42NnpNMTggMi4wMSA2IDJjLTEuMTEgMC0yIC44OS0yIDJ2MTZjMCAxLjExLjg5IDIgMiAyaDEyYzEuMTEgMCAyLS44OSAyLTJWNGMwLTEuMTEtLjg5LTEuOTktMi0xLjk5ek0xMCA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTcgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem01IDE2Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxMaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTEuNTVDOS42NCA5LjM1IDYuNDggOCAzIDh2MTFjMy40OCAwIDYuNjQgMS4zNSA5IDMuNTUgMi4zNi0yLjE5IDUuNTItMy41NSA5LTMuNTVWOGMtMy40OCAwLTYuNjQgMS4zNS05IDMuNTV6TTEyIDhjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbE1hbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2aC0yYzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDIwYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTctM2MxLjY2IDAgMyAxLjM0IDMgM0g5YzAtMS42NiAxLjM0LTMgMy0zem0wIDEwYy0yLjc2IDAtNS0yLjI0LTUtNWgyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoMmMwIDIuNzYtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxNb3ZpZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAzdjJoLTJWM0g4djJINlYzSDR2MThoMnYtMmgydjJoOHYtMmgydjJoMlYzaC0yek04IDE3SDZ2LTJoMnYyem0wLTRINnYtMmgydjJ6bTAtNEg2VjdoMnYyem0xMCA4aC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnptMC00aC0yVjdoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbE9mZmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTEuNTgtOS05QzEyLjA1IDIuMjIgMTEuNTUgMiAxMSAySDRjLTEuMSAwLTIgLjktMiAydjdjMCAuNTUuMjIgMS4wNS41OSAxLjQybDkgOWMuMzYuMzYuODYuNTggMS40MS41OC41NSAwIDEuMDUtLjIyIDEuNDEtLjU5bDctN2MuMzctLjM2LjU5LS44Ni41OS0xLjQxIDAtLjU1LS4yMy0xLjA2LS41OS0xLjQyek01LjUgN0M0LjY3IDcgNCA2LjMzIDQgNS41UzQuNjcgNCA1LjUgNCA3IDQuNjcgNyA1LjUgNi4zMyA3IDUuNSA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFBhcmtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzSDZ2MThoNHYtNmgzYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0uMiA4SDEwVjdoMy4yYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxQaGFybWFjeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVoLTIuNjRsMS4xNC0zLjE0TDE3LjE1IDFsLTEuNDYgNEgzdjJsMiA2LTIgNnYyaDE4di0ybC0yLTYgMi02VjV6bS01IDloLTN2M2gtMnYtM0g4di0yaDNWOWgydjNoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi42MiAxMC43OWMxLjQ0IDIuODMgMy43NiA1LjE0IDYuNTkgNi41OWwyLjItMi4yYy4yNy0uMjcuNjctLjM2IDEuMDItLjI0IDEuMTIuMzcgMi4zMy41NyAzLjU3LjU3LjU1IDAgMSAuNDUgMSAxVjIwYzAgLjU1LS40NSAxLTEgMS05LjM5IDAtMTctNy42MS0xNy0xNyAwLS41NS40NS0xIDEtMWgzLjVjLjU1IDAgMSAuNDUgMSAxIDAgMS4yNS4yIDIuNDUuNTcgMy41Ny4xMS4zNS4wMy43NC0uMjUgMS4wMmwtMi4yIDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxQaXp6YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC40MyAyIDUuMjMgMy41NCAzLjAxIDZMMTIgMjJsOC45OS0xNkMxOC43OCAzLjU1IDE1LjU3IDIgMTIgMnpNNyA3YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTUgOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyYzAtMS4xLjktMiAyLTJWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNGMtMS4xIDAtMi0uOS0yLTJ6bS00LjQyIDQuOEwxMiAxNC41bC0zLjU4IDIuMyAxLjA4LTQuMTItMy4yOS0yLjY5IDQuMjQtLjI1TDEyIDUuOGwxLjU0IDMuOTUgNC4yNC4yNS0zLjI5IDIuNjkgMS4wOSA0LjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMb2NhbFBvbGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00em0yLjUgMTEuNTkuOSAzLjg4LTMuNC0yLjA1LTMuNCAyLjA1LjktMy44Ny0zLTIuNTkgMy45Ni0uMzRMMTIgNi4wMmwxLjU0IDMuNjQgMy45Ni4zNC0zIDIuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUG9zdE9mZmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0LTggNS04LTVWNmw4IDUgOC01djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsUHJpbnRzaG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOEg1Yy0xLjY2IDAtMyAxLjM0LTMgM3Y2aDR2NGgxMnYtNGg0di02YzAtMS42Ni0xLjM0LTMtMy0zem0tMyAxMUg4di01aDh2NXptMy03Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bS0xLTlINnY0aDEyVjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsU2VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIzLjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyIDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJoLTMuMTdMMTUgMkg5em0zIDE1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYWxTaGlwcGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhoLTNWNEgzYy0xLjEgMC0yIC45LTIgMnYxMWgyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDJ2LTVsLTMtNHpNNiAxOC41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptMTMuNS05IDEuOTYgMi41SDE3VjkuNWgyLjV6bS0xLjUgOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2FsVGF4aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNUgxNVYzSDl2Mkg2LjVjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuNSAxNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTMgNi41IDEzczEuNS42NyAxLjUgMS41UzcuMzMgMTYgNi41IDE2em0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNNSAxMWwxLjUtNC41aDExTDE5IDExSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExvY2F0aW9uUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjEzIDIgNSA1LjEzIDUgOWMwIDEuNzQuNSAzLjM3IDEuNDEgNC44NC45NSAxLjU0IDIuMiAyLjg2IDMuMTYgNC40LjQ3Ljc1LjgxIDEuNDUgMS4xNyAyLjI2LjI2LjU1LjQ3IDEuNSAxLjI2IDEuNXMxLS45NSAxLjI1LTEuNWMuMzctLjgxLjctMS41MSAxLjE3LTIuMjYuOTYtMS41MyAyLjIxLTIuODUgMy4xNi00LjRDMTguNSAxMi4zNyAxOSAxMC43NCAxOSA5YzAtMy44Ny0zLjEzLTctNy03em0wIDkuNzVhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEx1bmNoRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMGMuMzItMy4yOC00LjI4LTYtOS45OS02UzEuNyA2LjcyIDIuMDIgMTBIMjJ6TTUuMzUgMTMuNWMuNTUgMCAuNzguMTQgMS4xNS4zNi40NS4yNyAxLjA3LjY0IDIuMTguNjRzMS43My0uMzcgMi4xOC0uNjRjLjM3LS4yMy41OS0uMzYgMS4xNS0uMzYuNTUgMCAuNzguMTQgMS4xNS4zNi40NS4yNyAxLjA3LjY0IDIuMTguNjRzMS43My0uMzcgMi4xOC0uNjRjLjM3LS4yMy41OS0uMzYgMS4xNS0uMzYuNTUgMCAuNzguMTQgMS4xNS4zNi40NS4yNyAxLjA3LjYzIDIuMTcuNjR2LTEuOThzLS43OS0uMTYtMS4xNi0uMzhjLS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOC42NGMtLjM3LjIzLS42LjM2LTEuMTUuMzZzLS43OC0uMTQtMS4xNS0uMzZjLS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOC42NGMtLjM3LjIzLS41OS4zNi0xLjE1LjM2LS41NSAwLS43OC0uMTQtMS4xNS0uMzYtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHMtMS43My4zNy0yLjE4LjY0Yy0uMzcuMjMtLjU5LjM2LTEuMTUuMzZ2MmMxLjExIDAgMS43My0uMzcgMi4yMS0uNjQuMzctLjIzLjU5LS4zNiAxLjE0LS4zNnpNMiAxNnYyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTJIMnpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC41IDMtLjE2LjAzTDE1IDUuMSA5IDMgMy4zNiA0LjljLS4yMS4wNy0uMzYuMjUtLjM2LjQ4VjIwLjVjMCAuMjguMjIuNS41LjVsLjE2LS4wM0w5IDE4LjlsNiAyLjEgNS42NC0xLjljLjIxLS4wNy4zNi0uMjUuMzYtLjQ4VjMuNWMwLS4yOC0uMjItLjUtLjUtLjV6TTE1IDE5bC02LTIuMTFWNWw2IDIuMTFWMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hcHNVZ2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJjMCAxLjU0LjM2IDIuOTguOTcgNC4yOUwxIDIzbDYuNzEtMS45N2MxLjMxLjYxIDIuNzUuOTcgNC4yOS45NyA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTQgMTFoLTN2M2gtMnYtM0g4di0yaDNWOGgydjNoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWRpY2FsSW5mb3JtYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aC01VjRjMC0xLjEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjktMiAydjNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0tOS0zaDJ2NWgtMlY0em0wIDEySDl2Mkg3di0ySDV2LTJoMnYtMmgydjJoMnYyem0yLTEuNVYxM2g2djEuNWgtNnptMCAzVjE2aDR2MS41aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWRpY2FsU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC00VjRjMC0xLjEtLjktMi0yLTJoLTRjLTEuMSAwLTIgLjktMiAydjJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yek0xMCA0aDR2MmgtNFY0em02IDExaC0zdjNoLTJ2LTNIOHYtMmgzdi0zaDJ2M2gzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lbnVCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWMtMS4xMS0uMzUtMi4zMy0uNS0zLjUtLjUtMS45NSAwLTQuMDUuNC01LjUgMS41LTEuNDUtMS4xLTMuNTUtMS41LTUuNS0xLjVTMi40NSA0LjkgMSA2djE0LjY1YzAgLjI1LjI1LjUuNS41LjEgMCAuMTUtLjA1LjI1LS4wNUMzLjEgMjAuNDUgNS4wNSAyMCA2LjUgMjBjMS45NSAwIDQuMDUuNCA1LjUgMS41IDEuMzUtLjg1IDMuOC0xLjUgNS41LTEuNSAxLjY1IDAgMy4zNS4zIDQuNzUgMS4wNS4xLjA1LjE1LjA1LjI1LjA1LjI1IDAgLjUtLjI1LjUtLjVWNmMtLjYtLjQ1LTEuMjUtLjc1LTItMXptMCAxMy41Yy0xLjEtLjM1LTIuMy0uNS0zLjUtLjUtMS43IDAtNC4xNS42NS01LjUgMS41VjhjMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuMiAwIDIuNC4xNSAzLjUuNXYxMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDEwLjVjLjg4IDAgMS43My4wOSAyLjUuMjZWOS4yNGMtLjc5LS4xNS0xLjY0LS4yNC0yLjUtLjI0LTEuNyAwLTMuMjQuMjktNC41LjgzdjEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5ek0xMyAxMi40OXYxLjY2YzEuMTMtLjY0IDIuNy0uOTkgNC41LS45OS44OCAwIDEuNzMuMDkgMi41LjI2VjExLjljLS43OS0uMTUtMS42NC0uMjQtMi41LS4yNC0xLjcgMC0zLjI0LjMtNC41Ljgzek0xNy41IDE0LjMzYy0xLjcgMC0zLjI0LjI5LTQuNS44M3YxLjY2YzEuMTMtLjY0IDIuNy0uOTkgNC41LS45OS44OCAwIDEuNzMuMDkgMi41LjI2di0xLjUyYy0uNzktLjE2LTEuNjQtLjI0LTIuNS0uMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi40MSAyMSA1IDE5LjU5bDQuODMtNC44M2MuNzUtLjc1IDEuMTctMS43NyAxLjE3LTIuODN2LTUuMUw5LjQxIDguNDEgOCA3bDQtNCA0IDQtMS40MSAxLjQxTDEzIDYuODN2NS4xYzAgMS4wNi40MiAyLjA4IDEuMTcgMi44M0wxOSAxOS41OSAxNy41OSAyMSAxMiAxNS40MSA2LjQxIDIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaW5vckNyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgOS4wMUMxOC43MiA4LjQyIDE4LjE2IDggMTcuNSA4aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxNXY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSAxMGgxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTYgMTcuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVM4LjMzIDE5IDcuNSAxOSA2IDE4LjMzIDYgMTcuNXptOSAwYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjV6TTkuNDEgNSA4IDYuNDFsLTMtM0w2LjQxIDJsMyAzek0xNiA2LjQxIDE0LjU5IDVsMy0zTDE5IDMuNDFsLTMgM3pNMTMgNWgtMlYwaDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWlzY2VsbGFuZW91c1NlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMTcgMTMuNzEgMS40LTIuNDJjLjA5LS4xNS4wNS0uMzQtLjA4LS40NWwtMS40OC0xLjE2Yy4wMy0uMjIuMDUtLjQ1LjA1LS42OHMtLjAyLS40Ni0uMDUtLjY5bDEuNDgtMS4xNmMuMTMtLjExLjE3LS4zLjA4LS40NWwtMS40LTIuNDJjLS4wOS0uMTUtLjI3LS4yMS0uNDMtLjE1bC0xLjc0LjdjLS4zNi0uMjgtLjc1LS41MS0xLjE4LS42OWwtLjI2LTEuODVhLjM2NC4zNjQgMCAwIDAtLjM1LS4yOWgtMi44Yy0uMTcgMC0uMzIuMTMtLjM1LjNMNi44IDQuMTVjLS40Mi4xOC0uODIuNDEtMS4xOC42OWwtMS43NC0uN2MtLjE2LS4wNi0uMzQgMC0uNDMuMTVsLTEuNCAyLjQyYy0uMDkuMTUtLjA1LjM0LjA4LjQ1bDEuNDggMS4xNmMtLjAzLjIyLS4wNS40NS0uMDUuNjhzLjAyLjQ2LjA1LjY5bC0xLjQ4IDEuMTZjLS4xMy4xMS0uMTcuMy0uMDguNDVsMS40IDIuNDJjLjA5LjE1LjI3LjIxLjQzLjE1bDEuNzQtLjdjLjM2LjI4Ljc1LjUxIDEuMTguNjlsLjI2IDEuODVjLjAzLjE2LjE4LjI5LjM1LjI5aDIuOGMuMTcgMCAuMzItLjEzLjM1LS4zbC4yNi0xLjg1Yy40Mi0uMTguODItLjQxIDEuMTgtLjY5bDEuNzQuN2MuMTYuMDYuMzQgMCAuNDMtLjE1ek04LjgxIDExYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMjEuOTIgMTguNjdsLS45Ni0uNzRjLjAyLS4xNC4wNC0uMjkuMDQtLjQ0IDAtLjE1LS4wMS0uMy0uMDQtLjQ0bC45NS0uNzRjLjA4LS4wNy4xMS0uMTkuMDUtLjI5bC0uOS0xLjU1Yy0uMDUtLjEtLjE3LS4xMy0uMjgtLjFsLTEuMTEuNDVjLS4yMy0uMTgtLjQ4LS4zMy0uNzYtLjQ0bC0uMTctMS4xOGEuMjE2LjIxNiAwIDAgMC0uMjEtLjJoLTEuNzljLS4xMSAwLS4yMS4wOC0uMjIuMTlsLS4xNyAxLjE4Yy0uMjcuMTItLjUzLjI2LS43Ni40NGwtMS4xMS0uNDVhLjIzLjIzIDAgMCAwLS4yOC4xbC0uOSAxLjU1Yy0uMDUuMS0uMDQuMjIuMDUuMjlsLjk1Ljc0YTMuMTQ1IDMuMTQ1IDAgMCAwIDAgLjg4bC0uOTUuNzRjLS4wOC4wNy0uMTEuMTktLjA1LjI5bC45IDEuNTVjLjA1LjEuMTcuMTMuMjguMWwxLjExLS40NWMuMjMuMTguNDguMzMuNzYuNDRsLjE3IDEuMThjLjAyLjExLjExLjE5LjIyLjE5aDEuNzljLjExIDAgLjIxLS4wOC4yMi0uMTlsLjE3LTEuMThjLjI3LS4xMi41My0uMjYuNzUtLjQ0bDEuMTIuNDVjLjEuMDQuMjIgMCAuMjgtLjFsLjktMS41NWMuMDYtLjA5LjAzLS4yMS0uMDUtLjI4em0tNC4yOS4xNmExLjM1IDEuMzUgMCAxIDEgLjAwMS0yLjcwMSAxLjM1IDEuMzUgMCAwIDEtLjAwMSAyLjcwMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW9kZU9mVHJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMzEgMTguOWMtLjk2IDEtMi4wNiAyLjAzLTMuMzEgMy4xLTUuMzMtNC41NS04LTguNDgtOC0xMS44QzQgNS4yMiA3LjggMiAxMiAyYzQgMCA3LjY0IDIuOTIgNy45NyA3LjVoMy41M0wxOSAxNGwtNC41LTQuNWgzLjQ3QzE3LjY1IDYuMjQgMTUuMTMgNCAxMiA0Yy0zLjM1IDAtNiAyLjU3LTYgNi4yIDAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0LjY0LS41OSAxLjIzLTEuMTYgMS43Ny0xLjcxYTIuNSAyLjUgMCAwIDEtLjI3LTEuMTIgMi41IDIuNSAwIDAgMSA1IDAgMi40OTIgMi40OTIgMCAwIDEtMy4xOSAyLjM5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb25leSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA4aDJ2OEg1em03IDBIOWMtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6bS0xIDZoLTF2LTRoMXY0em03LTZoLTNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xem0tMSA2aC0xdi00aDF2NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNNCA2aDE2djEySDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNHYxNmgyMFY0SDJ6bTIgMTRWNmgxNnYxMkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3BlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdjMC0xLjEtLjktMi0yLTJoLTN2MmgzdjIuNjVMMTMuNTIgMTRIMTBWOUg2Yy0yLjIxIDAtNCAxLjc5LTQgNHYzaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g0LjQ4TDE5IDEwLjM1Vjd6TTcgMTdjLS41NSAwLTEtLjQ1LTEtMWgyYzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA2aDV2Mkg1ek0xOSAxM2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3NxdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDhoMTBjLjI5IDAgLjU3LjA2Ljg0LjEzLjA5LS4zMy4xNi0uNjcuMTYtMS4wNCAwLTEuMzEtLjY1LTIuNTMtMS43NC0zLjI1TDEyIDEgNy43NCAzLjg0QTMuODg3IDMuODg3IDAgMCAwIDYgNy4wOWMwIC4zNy4wNy43MS4xNiAxLjA0LjI3LS4wNy41NS0uMTMuODQtLjEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA3YzAtMS4xLTItMy0yLTNzLTIgMS45LTIgM2MwIC43NC40IDEuMzggMSAxLjcyVjEzaC0ydi0yYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjJIM1Y4LjcyYy42LS4zNCAxLS45OCAxLTEuNzIgMC0xLjEtMi0zLTItM1MwIDUuOSAwIDdjMCAuNzQuNCAxLjM4IDEgMS43MlYyMWg5di00YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NGg5VjguNzJjLjYtLjM0IDEtLjk4IDEtMS43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTW92aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzEgOS43MSAyMiAxMlY2aC02bDIuMjkgMi4yOS00LjE3IDQuMTdhLjk5Ni45OTYgMCAwIDEtMS40MSAwbC0xLjE3LTEuMTdhMyAzIDAgMCAwLTQuMjQgMEwyIDE2LjU5IDMuNDEgMThsNS4yOS01LjI5YS45OTYuOTk2IDAgMCAxIDEuNDEgMGwxLjE3IDEuMTdhMyAzIDAgMCAwIDQuMjQgMGw0LjE5LTQuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE11bHRpcGxlU3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDQgNCA0LTQgNFY5aC00VjdoNFY0em0tNyAzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6TTYgN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0xIDEwaDR2LTJIN3YtM2wtNCA0IDQgNHYtM3ptNyAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTQgMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNdXNldW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMVY5TDEyIDIgMiA5djJoMnY5SDJ2MmgyMHYtMmgtMnYtOWgyem0tNiA3aC0ydi00bC0yIDMtMi0zdjRIOHYtN2gybDIgMyAyLTNoMnY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNeUxvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTguOTQgM0E4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAzLjA2IDExSDF2MmgyLjA2QTguOTk0IDguOTk0IDAgMCAwIDExIDIwLjk0VjIzaDJ2LTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMjAuOTQgMTNIMjN2LTJoLTIuMDZ6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmF2aWdhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIgNC41IDIwLjI5bC43MS43MUwxMiAxOGw2Ljc5IDMgLjcxLS43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmVhck1lRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2LjM0IDIxIDNsLTMuMzQgOUwxMiA2LjM0em0xMC42MSAxMy40NEw0LjIyIDEuMzkgMi44MSAyLjgxbDUuMDcgNS4wN0wzIDkuNjl2MS40MWw3LjA3IDIuODNMMTIuOSAyMWgxLjQxbDEuODEtNC44OCA1LjA3IDUuMDcgMS40Mi0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZWFyTWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDMgMyAxMC41M3YuOThsNi44NCAyLjY1TDEyLjQ4IDIxaC45OEwyMSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROaWdodGxpZmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDVoMTRsLTYgOXY0aDJ2Mkg1di0yaDJ2LTRMMSA1em05LjEgNCAxLjQtMkg0LjQ5bDEuNCAyaDQuMjF6TTE3IDVoNXYzaC0zdjljMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM2EzIDMgMCAwIDEgMSAuMTdWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9DcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDkuMDFDMTguNzIgOC40MiAxOC4xNiA4IDE3LjUgOGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTV2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgMTBoMTAuMjlsMS4wNCAzSDUuODFsMS4wNC0zek02IDE3LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTOC4zMyAxOSA3LjUgMTkgNiAxOC4zMyA2IDE3LjV6bTkgMGMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41ek0xMiA2LjM2IDkuMTcgMy41NGwxLjQxLTEuNDFMMTIgMy41NCAxNS41NCAwbDEuNDEgMS40MUwxMiA2LjM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb01lYWxzT3VsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTRWNmMwLTEuNzYgMi4yNC00IDUtNHYxNi4xN2wtMi0yVjE0aC0zem00LjQ5IDkuMzFMMTAuMDIgMTIuODVjLS4zMy4wOS0uNjYuMTUtMS4wMi4xNXY5SDd2LTljLTIuMjEgMC00LTEuNzktNC00VjUuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek02LjE3IDkgNSA3LjgzVjloMS4xN3pNOSAySDd2Mi4xN2wyIDJWMnptNCA3VjJoLTJ2Ni4xN2wxLjg1IDEuODVjLjA5LS4zMy4xNS0uNjYuMTUtMS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9NZWFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE0VjZjMC0xLjc2IDIuMjQtNCA1LTR2MTYuMTdsLTItMlYxNGgtM3ptNC40OSA5LjMxTDEwLjAyIDEyLjg1Yy0uMzMuMDktLjY2LjE1LTEuMDIuMTV2OUg3di05Yy0yLjIxIDAtNC0xLjc5LTQtNFY1LjgzTC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MXpNNi4xNyA5IDUgNy44M1Y5aDEuMTd6TTkgMkg3djIuMTdsMiAyVjJ6bTQgN1YyaC0ydjYuMTdsMS44NSAxLjg1Yy4wOS0uMzMuMTUtLjY2LjE1LTEuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vVHJhbnNmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4xOSAyMS4xOSAyLjgxIDIuODEgMS4zOSA0LjIyIDQgNi44M1YxNmMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuMDUgMCAuMDktLjAyLjE0LS4wM2wxLjY0IDEuNjQgMS40MS0xLjQyek03LjUgMTdjLS44MyAwLTEuNS0uNjctMS41LTEuNVM2LjY3IDE0IDcuNSAxNHMxLjUuNjcgMS41IDEuNVM4LjMzIDE3IDcuNSAxN3pNNiAxMVY4LjgzTDguMTcgMTFINnptMi44My01TDUuNzggMi45NUM3LjI0IDIuMTYgOS40OCAyIDEyIDJjNC40MiAwIDggLjUgOCA0djEwYzAgLjM1LS4wOC42Ny0uMTkuOThMMTMuODMgMTFIMThWNkg4LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RMaXN0ZWRMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM4LjE0IDIgNSA1LjE0IDUgOWMwIDUuMjUgNyAxMyA3IDEzczctNy43NSA3LTEzYzAtMy44Ni0zLjE0LTctNy03em0uODggMTMuNzVoLTEuNzVWMTRoMS43NXYxLjc1em0wLTIuODdoLTEuNzVjMC0yLjg0IDIuNjItMi42MiAyLjYyLTQuMzggMC0uOTYtLjc5LTEuNzUtMS43NS0xLjc1cy0xLjc1Ljc5LTEuNzUgMS43NUg4LjVDOC41IDYuNTcgMTAuMDcgNSAxMiA1czMuNSAxLjU3IDMuNSAzLjVjMCAyLjE5LTIuNjIgMi40MS0yLjYyIDQuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMmgyTDEyIDIgNS4wNSAxMkg3bC0zLjkgNmg2LjkydjRoMy45NnYtNEgyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVkYWxCaWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMTggMTAtMS43LTQuNjhBMi4wMDggMi4wMDggMCAwIDAgMTQuNiA0SDEydjJoMi42bDEuNDYgNGgtNC44MWwtLjM2LTFIMTJWN0g3djJoMS43NWwxLjgyIDVIOS45Yy0uNDQtMi4yMy0yLjMxLTMuODgtNC42NS0zLjk5QzIuNDUgOS44NyAwIDEyLjIgMCAxNWMwIDIuOCAyLjIgNSA1IDUgMi40NiAwIDQuNDUtMS42OSA0LjktNGg0LjJjLjQ0IDIuMjMgMi4zMSAzLjg4IDQuNjUgMy45OSAyLjguMTMgNS4yNS0yLjE5IDUuMjUtNSAwLTIuOC0yLjItNS01LTVoLS44MnpNNy44MiAxNmMtLjQgMS4xNy0xLjQ5IDItMi44MiAyLTEuNjggMC0zLTEuMzItMy0zczEuMzItMyAzLTNjMS4zMyAwIDIuNDIuODMgMi44MiAySDV2MmgyLjgyem02LjI4LTJoLTEuNGwtLjczLTJIMTVjLS40NC41OC0uNzYgMS4yNS0uOSAyem00LjkgNGMtMS42OCAwLTMtMS4zMi0zLTMgMC0uOTMuNDEtMS43MyAxLjA1LTIuMjhsLjk2IDIuNjQgMS44OC0uNjgtLjk3LTIuNjdjLjAzIDAgLjA2LS4wMS4wOS0uMDEgMS42OCAwIDMgMS4zMiAzIDNzLTEuMzMgMy0zLjAxIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvblBpbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC4xNCAyIDUgNS4xNCA1IDljMCA1LjI1IDcgMTMgNyAxM3M3LTcuNzUgNy0xM2MwLTMuODYtMy4xNC03LTctN3ptMCAyYTIgMiAwIDEgMSAuMDAxIDQuMDAxQTIgMiAwIDAgMSAxMiA0em0wIDEwYy0xLjY3IDAtMy4xNC0uODUtNC0yLjE1LjAyLTEuMzIgMi42Ny0yLjA1IDQtMi4wNXMzLjk4LjczIDQgMi4wNUE0Ljc4MyA0Ljc4MyAwIDAgMSAxMiAxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmE5IDkgMCAwIDAtOSA5YzAgNC4xNyAyLjg0IDcuNjcgNi42OSA4LjY5TDEyIDIybDIuMzEtMi4zMUMxOC4xNiAxOC42NyAyMSAxNS4xNyAyMSAxMWE5IDkgMCAwIDAtOS05em0wIDJjMS42NiAwIDMgMS4zNCAzIDNzLTEuMzQgMy0zIDMtMy0xLjM0LTMtMyAxLjM0LTMgMy0zem0wIDE0LjNhNy4yIDcuMiAwIDAgMS02LTMuMjJjLjAzLTEuOTkgNC0zLjA4IDYtMy4wOCAxLjk5IDAgNS45NyAxLjA5IDYgMy4wOGE3LjIgNy4yIDAgMCAxLTYgMy4yMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVzdENvbnRyb2xSb2RlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS4zMSAxNy4zOC0yLjM5LTIuMTNjLjUyLTIuMzYtMS4zNi00LjI1LTMuNDItNC4yNS0xLjE2IDAtMy41LjktMy41IDMuNSAwIC45Ny4zOSAxLjg0IDEuMDMgMi40N2wtLjcxLjcxQTQuNDU3IDQuNDU3IDAgMCAxIDExIDE0LjVjMC0xLjcuOTYtMy4xNyAyLjM1LTMuOTNhNSA1IDAgMCAwLTIuMjgtLjU3Yy0yLjM4IDAtNC4zNyAxLjY1LTQuOTEgMy44N0EyLjk5NyAyLjk5NyAwIDAgMSA0IDExYzAtMS42NiAxLjM0LTMgMy0zaDIuNWEyLjUgMi41IDAgMCAwIDAtNUg4Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDEuNWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVIN2E1LjAwMiA1LjAwMiAwIDAgMC0xIDkuOXYuMDNDNiAxOC43MyA4LjI3IDIxIDExLjA3IDIxaDguODZjMS44NyAwIDIuODEtMi4zNCAxLjM4LTMuNjJ6TTE4IDE5Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlc3RDb250cm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTV2LTJoLTMuMDdjLS4wNS0uMzktLjEyLS43Ny0uMjItMS4xNGwyLjU4LTEuNDktMS0xLjczTDE2LjkyIDEwYy0uMjgtLjQ4LS42Mi0uOTEtLjk5LTEuMjkuMDQtLjIzLjA3LS40Ni4wNy0uNzEgMC0uOC0uMjQtMS41NS0uNjUtMi4xOEwxNyA0LjE3bC0xLjQxLTEuNDEtMS43MiAxLjcyYy0xLjY4LS44OS0zLjEtLjMzLTMuNzMgMEw4LjQxIDIuNzYgNyA0LjE3bDEuNjUgMS42NUEzLjk5IDMuOTkgMCAwIDAgOCA4YzAgLjI1LjAzLjQ4LjA3LjcyLS4zNy4zOC0uNzEuODEtLjk5IDEuMjhMNC43MSA4LjYzbC0xIDEuNzMgMi41OCAxLjQ5Yy0uMS4zNy0uMTcuNzUtLjIyIDEuMTRIM3YyaDMuMDdjLjA1LjM5LjEyLjc3LjIyIDEuMTRsLTIuNTggMS40OSAxIDEuNzNMNy4wOCAxOGMxLjA4IDEuODEgMi44OCAzIDQuOTIgM3MzLjg0LTEuMTkgNC45Mi0zbDIuMzcgMS4zNyAxLTEuNzMtMi41OC0xLjQ5Yy4xLS4zNy4xNy0uNzUuMjItMS4xNEgyMXptLTggMmgtMnYtNmgydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpbkRyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4YzAtMy4zMS0yLjY5LTYtNi02UzYgNC42OSA2IDhjMCA0LjUgNiAxMSA2IDExczYtNi41IDYtMTF6bS04IDBjMC0xLjEuOS0yIDItMnMyIC45IDIgMmEyIDIgMCAxIDEtNCAwek01IDIwdjJoMTR2LTJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGxhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6bTAgOS41YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQbHVtYmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjI4IDQuOTMtMi4xMi0yLjEyYy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMEwxMS41IDUuNjRsMi4xMiAyLjEyIDIuMTItMi4xMiAzLjU0IDMuNTRhMy4wMTIgMy4wMTIgMCAwIDAgMC00LjI1ek01LjQ5IDEzLjc3Yy41OS41OSAxLjU0LjU5IDIuMTIgMGwyLjQ3LTIuNDctMi4xMi0yLjEzLTIuNDcgMi40N2MtLjU5LjU5LS41OSAxLjU0IDAgMi4xM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuMDQgNy43Ni0uNzEuNzEtLjcxLjcxTDEwLjQ0IDZjLS41OS0uNi0xLjU0LS42LTIuMTItLjAxYTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsMy4xOCAzLjE4LS43MS43MS02LjM2IDYuMzZjLS43OC43OC0uNzggMi4wNSAwIDIuODMuNzguNzggMi4wNS43OCAyLjgzIDBMMTYuNDUgMTJhLjk5Ni45OTYgMCAxIDAgMS40MS0xLjQxbC0yLjgyLTIuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhaWx3YXlBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgOGE3IDcgMCAwIDAtMTEuOTUtNC45NUEzMy44IDMzLjggMCAwIDAgOSAzYy00LjQyIDAtOCAuNS04IDR2MTAuNUEzLjUgMy41IDAgMCAwIDQuNSAyMUwzIDIyLjV2LjVoMTJ2LS41TDEzLjUgMjFhMy41IDMuNSAwIDAgMCAzLjUtMy41di0yLjU4QTcgNyAwIDAgMCAyMyA4ek0zIDEyVjdoNi4wOGE2Ljk2IDYuOTYgMCAwIDAgMS4xOCA1SDN6bTYgN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTcuNzEtNi4wNi0uMi4wM0wxNiAxM2wtLjQ3LS4wMi0uMTYtLjAyLS4yOS0uMDQtLjItLjA0LS4yMi0uMDZhMS41NSAxLjU1IDAgMCAxLS4yMy0uMDdsLS4xMy0uMDVBNC45OSA0Ljk5IDAgMCAxIDExLjEgN2MuMDQtLjE5LjA5LS4zNy4xNS0uNTRsLjA1LS4xNC4xNS0uMzguMDctLjE1LjItLjM2LjA3LS4xMi4zLS40Mi4wMi0uMDJjLjI0LS4zLjUyLS41Ny44Mi0uODFsLjAxLS4wMS40Ni0uMzIuMDMtLjAyQTUuMjUgNS4yNSAwIDAgMSAxNiAzYTUgNSAwIDAgMSAuNzEgOS45NHpNMTUgNGgydjVoLTJ6bTAgNmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhbWVuRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2SDhWNC42NWwxLS4xMlY2em0wIDZIOFY3aDF2NXpNNiA3aDF2NUg2Vjd6bTAtMi4xMiAxLS4xMlY2SDZWNC44OHpNMjIgM1YyTDUgNHY4SDJjMCAzLjY5IDIuNDcgNi44NiA2IDguMjVWMjJoOHYtMS43NWMzLjUzLTEuMzkgNi00LjU2IDYtOC4yNUgxMFY3aDEyVjZIMTBWNC40MUwyMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYW1wTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIxaC0yVjYuODNMOS40MSA4LjQxIDggN2w0LTQgNCA0LTEuNDEgMS40MUwxMyA2LjgzVjljMCA0LjI3IDQuMDMgNy4xMyA2IDguMjdsLTEuNDYgMS40NmMtMS45MS0xLjE2LTMuNDQtMi41My00LjU0LTQuMDJWMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhbXBSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIxaDJWNi44M2wxLjU5IDEuNTlMMTYgN2wtNC00LTQgNCAxLjQxIDEuNDFMMTEgNi44M1Y5YzAgNC4yNy00LjAzIDcuMTMtNiA4LjI3bDEuNDYgMS40NkM4LjM3IDE3LjU2IDkuOSAxNi4xOSAxMSAxNC43VjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYXRlUmV2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMTUuMzUgNi40MS0xLjc3LTEuNzdjLS4yLS4yLS41MS0uMi0uNzEgMEw2IDExLjUzVjE0aDIuNDdsNi44OC02Ljg4Yy4yLS4xOS4yLS41MSAwLS43MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTYgMTR2LTIuNDdsNi44OC02Ljg4Yy4yLS4yLjUxLS4yLjcxIDBsMS43NyAxLjc3Yy4yLjIuMi41MSAwIC43MUw4LjQ3IDE0SDZ6bTEyIDBoLTcuNWwyLTJIMTh2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlUm9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRoMnY5aC0yek00IDRoMnYxNkg0ek0xMSA0aDJ2NGgtMnpNMTEgMTBoMnY0aC0yek0xMSAxNmgydjRoLTJ6TTIyLjUgMTYuNDEgMjEuMDkgMTUgMTkgMTcuMDkgMTYuOTEgMTVsLTEuNDEgMS40MSAyLjA5IDIuMDktMi4wOSAyLjA5TDE2LjkxIDIyIDE5IDE5LjkxIDIxLjA5IDIybDEuNDEtMS40MS0yLjA5LTIuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlc3RhdXJhbnRNZW51IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC4xIDEzLjM0IDIuODMtMi44M0wzLjkxIDMuNWE0LjAwOCA0LjAwOCAwIDAgMCAwIDUuNjZsNC4xOSA0LjE4em02Ljc4LTEuODFjMS41My43MSAzLjY4LjIxIDUuMjctMS4zOCAxLjkxLTEuOTEgMi4yOC00LjY1LjgxLTYuMTItMS40Ni0xLjQ2LTQuMi0xLjEtNi4xMi44MS0xLjU5IDEuNTktMi4wOSAzLjc0LTEuMzggNS4yN0wzLjcgMTkuODdsMS40MSAxLjQxTDEyIDE0LjQxbDYuODggNi44OCAxLjQxLTEuNDFMMTMuNDEgMTNsMS40Ny0xLjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZXN0YXVyYW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOUg5VjJIN3Y3SDVWMkgzdjdjMCAyLjEyIDEuNjYgMy44NCAzLjc1IDMuOTdWMjJoMi41di05LjAzQzExLjM0IDEyLjg0IDEzIDExLjEyIDEzIDlWMmgtMnY3em01LTN2OGgyLjV2OEgyMVYyYy0yLjc2IDAtNSAyLjI0LTUgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm91bmRhYm91dExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wOCA4QTYgNiAwIDAgMSAxNiAzYzMuMzEgMCA2IDIuNjkgNiA2IDAgMi45Ny0yLjE2IDUuNDQtNSA1LjkyVjIxaC0ydi02LjA5YzAtLjk4LjcxLTEuOCAxLjY3LTEuOTdhMy45OTkgMy45OTkgMCAxIDAtNC42MS00LjYxYy0uMTcuOTYtLjk5IDEuNjctMS45NyAxLjY3SDUuODNsMS41OSAxLjU5TDYgMTMgMiA5bDQtNCAxLjQxIDEuNDFMNS44MyA4aDQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvdW5kYWJvdXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkyIDhDMTMuNDQgNS4xNiAxMC45NyAzIDggMyA0LjY5IDMgMiA1LjY5IDIgOWMwIDIuOTcgMi4xNiA1LjQ0IDUgNS45MlYyMWgydi02LjA5YzAtLjk4LS43MS0xLjgtMS42Ny0xLjk3YTMuOTk5IDMuOTk5IDAgMSAxIDQuNjEtNC42MWMuMTcuOTYuOTkgMS42NyAxLjk3IDEuNjdoNC4yNmwtMS41OSAxLjU5TDE4IDEzbDQtNC00LTQtMS40MSAxLjQxTDE4LjE3IDhoLTQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTUuMThWN2MwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNHYxMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWOC44MkM4LjE2IDguNCA5IDcuMyA5IDZjMC0xLjY2LTEuMzQtMy0zLTNTMyA0LjM0IDMgNmMwIDEuMy44NCAyLjQgMiAyLjgyVjE3YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRWN2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjguMThBMi45OTYgMi45OTYgMCAwIDAgMTggMjFjMS42NiAwIDMtMS4zNCAzLTMgMC0xLjMtLjg0LTIuNC0yLTIuODJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJ1bkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEuNSA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIuNSA2Yy0uNyAwLTIuMDEtLjU0LTIuOTEtMS43NmwtLjQxIDIuMzVMMTQgMTQuMDNWMThoLTF2LTMuNThsLTEuMTEtMS4yMS0uNTIgMi42NC0zLjc3LS43Ny4yLS45OCAyLjc4LjU3Ljk2LTQuODktMS41NC41N1YxMkg5VjkuNjVsMy4yOC0xLjIxYy40OS0uMTggMS4wMy4wNiAxLjI2LjUzLjgzIDEuNyAyLjA1IDIuMDMgMi40NiAyLjAzdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNhZmV0eUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptMCAxNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6bTEuNjUtMi42NUwxMS41IDEyLjJWOWgxdjIuNzlsMS44NSAxLjg1LS43LjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYWlsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTMuNVYyTDMgMTMuNWg4em0xMCAwQzIxIDYuNSAxNC41IDEgMTIuNSAxYzAgMCAxIDMgMSA2LjVzLTEgNi0xIDZIMjF6bTEgMS41SDJhNi4yMzMgNi4yMzMgMCAwIDAgMi4zMyAzLjczYy42NS0uMjcgMS4yMi0uNzIgMS42Ny0xLjIzLjczLjg0IDEuOCAxLjUgMyAxLjVzMi4yNy0uNjYgMy0xLjVjLjczLjg0IDEuOCAxLjUgMyAxLjVzMi4yNi0uNjYgMy0xLjVjLjQ1LjUxIDEuMDIuOTYgMS42NyAxLjIzIDEuMTctLjg5IDIuMDItMi4yIDIuMzMtMy43M3ptMCA4di0yaC0xYy0xLjA0IDAtMi4wOC0uMzUtMy0xLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0xLjgzIDEuMy00LjE3IDEuMy02IDAtLjkxLjY1LTEuOTYgMS0zIDFIMnYyaDFjMS4wMyAwIDIuMDUtLjI1IDMtLjc1IDEuODkgMSA0LjExIDEgNiAwIDEuODkgMSA0LjExIDEgNiAwIC45NS41IDEuOTcuNzUgMyAuNzVoMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2F0ZWxsaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUgNC45OWgzQzggNi42NSA2LjY2IDggNSA4VjQuOTl6TTUgMTJ2LTJjMi43NiAwIDUtMi4yNSA1LTUuMDFoMkMxMiA4Ljg2IDguODcgMTIgNSAxMnptMCA2IDMuNS00LjUgMi41IDMuMDFMMTQuNSAxMmw0LjUgNkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY3JlZW5Sb3RhdGlvbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQgNy41OSA1LTVjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBMMjAuMjQgMTFoLTIuODNMMTAuNCA0IDUuNDEgOUg4djJIMlY1aDJ2Mi41OXpNMjAgMTloMnYtNmgtNnYyaDIuNTlsLTQuOTkgNS03LjAxLTdIMy43Nmw4LjQxIDguNDFjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDUtNVYxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2V0TWVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjA1IDE3LjU2LTE3Ljk3Ljk0TDMgMTdsMTcuOTgtLjk0LjA3IDEuNXpNMjEgMTkuNDhIM3YxLjVoMTh2LTEuNXpNMjIgNXY3YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxNmMxLjEgMCAyIC45IDIgMnptLTIgMWMtMS42OCAwLTMuMDQuOTgtMy4yMSAyLjIzLS42NC0uNzMtMi43My0yLjczLTYuNTQtMi43My00LjY3IDAtNi43NSAzLTYuNzUgM3MyLjA4IDMgNi43NSAzYzMuODEgMCA1LjktMiA2LjU0LTIuNzNDMTYuOTYgMTAuMDIgMTguMzIgMTEgMjAgMTFWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbnBvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMGg1bDMtMy0zLTNoLTVWMmgtMnYySDR2Nmg3djJINmwtMyAzIDMgM2g1djRoMnYtNGg3di02aC03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbm93bW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTdjMCAuNTUtLjQ1IDEtMSAxaC0uMTdsLTIuMi0yLjJDMjAuNTggMTUuMzcgMjIgMTQuNCAyMiAxM2MwLTEtOC04LTgtOGgtM3YyaDIuMjVsMS40NSAxLjNMMTEgMTFsLTkuNS0xTDAgMTNsNC41NCAxLjM2LTMuNDkgMS44OEMtLjc3IDE3LjIyLS4wNyAyMCAyIDIwaDZjMi4yMSAwIDQtMS43OSA0LTRoNGwyIDJoLTN2Mmg2YzEuNjYgMCAzLTEuMzQgMy0zaC0yek04IDE4SDJsNS4yNS0yLjgzTDEwIDE2YTIgMiAwIDAgMS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjUgN2gtM2MtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDNjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCA4aC0zVjloM3Y2ek0xIDE1aDR2LTJIM2MtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDR2MkgzdjJoMmMxLjEgMCAyIC45IDIgMnYyYzAgMS4xLS45IDItMiAySDF2LTJ6bTE2IDBoNHYtMmgtMmMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDR2MmgtNHYyaDJjMS4xIDAgMiAuOSAyIDJ2MmMwIDEuMS0uOSAyLTIgMmgtNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU291cEtpdGNoZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQgN2MtLjM0LjU1LS40Ljk3LS40IDEuMzhDNiA5LjE1IDcgMTEgNyAxMmMwIC45NS0uNCAxLjUtLjQgMS41SDUuMXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgxLjV6bTUgMGMtLjM0LjU1LS40Ljk3LS40IDEuMzggMCAuNzcgMSAyLjYyIDEgMy42MiAwIC45NS0uNCAxLjUtLjQgMS41aDEuNXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgtMS41ek04LjE1IDdjLS4zNC41NS0uNC45Ny0uNCAxLjM4IDAgLjc3IDEgMi42MyAxIDMuNjIgMCAuOTUtLjQgMS41LS40IDEuNWgxLjVzLjQtLjU1LjQtMS41YzAtMS0xLTIuODUtMS0zLjYyIDAtLjQxLjA2LS44My40LTEuMzhoLTEuNXptMTMuMzItLjVzLjEzLTEuMDYuMTMtMS41YzAtMS42NS0xLjM1LTMtMy0zLTEuNTQgMC0yLjgxIDEuMTYtMi45OCAyLjY1TDE0LjUzIDE1SDQuMDFjLS42IDAtMS4wOS41My0xIDEuMTNDMy41MyAxOS40NiA2LjM5IDIyIDkuNzUgMjJjMy40OCAwIDYuMzQtMi43MyA2LjcxLTYuMjNMMTcuNjEgNC45Yy4wNS0uNTEuNDctLjkuOTktLjkuNTUgMCAxIC40NSAxIDEgMCAuMy0uMSAxLjI1LS4xIDEuMjVsMS45Ny4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhZGl1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNSAzIDdWM2w0IDJ6bTExLTJ2NGw0LTItNC0yem0tNy0xdjRsNC0yLTQtMnptLTYgOC4wNGMxLjM4LjQ5IDMuNzcuOTYgNyAuOTZzNS42Mi0uNDcgNy0uOTZDMTkgOS44NiAxNi4yMiA5IDEyIDlzLTcgLjg2LTcgMS4wNHpNMTUgMTdIOXY0Ljg4Yy00LjA2LS4zOS03LTEuNTQtNy0yLjg4di05YzAtMS42NiA0LjQ4LTMgMTAtM3MxMCAxLjM0IDEwIDN2OWMwIDEuMzQtMi45NCAyLjQ4LTcgMi44N1YxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcmVNYWxsRGlyZWN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0djJoMTZWNHptMSAxMHYtMmwtMS01SDRsLTEgNXYyaDF2NmgxMHYtNmg0djZoMnYtNmgxem0tOSA0SDZ2LTRoNnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJhaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDYuODMgOS40MSA4LjQxIDggN2w0LTQgNCA0LTEuNDEgMS40MUwxMyA2LjgzVjIxaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdHJlZXR2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNTYgMTQuMzNjLS4zNC4yNy0uNTYuNy0uNTYgMS4xN1YyMWg3YzEuMSAwIDItLjkgMi0ydi01Ljk4Yy0uOTQtLjMzLTEuOTUtLjUyLTMtLjUyLTIuMDMgMC0zLjkzLjctNS40NCAxLjgzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDZjMC0xLjA4LjI3LTIuMS43NC0zSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgLjU1LjIzIDEuMDUuNTkgMS40MWw5LjgyLTkuODJBNi40MzUgNi40MzUgMCAwIDEgMTEuNSA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdWJ3YXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMHYyNGgyNFYwSDB6bTIyIDIySDJWOC44NkMyIDYuMDUgMy41MyAzLjg0IDYuMiAyLjggOCAyLjA5IDEwLjE0IDIgMTIgMmMxLjg2IDAgNCAuMDkgNS44LjhDMjAuNDcgMy44NCAyMiA2LjA1IDIyIDguODZWMjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMSA5aDEwdjVoLTEwek0xNy44IDIuOEMxNiAyLjA5IDEzLjg2IDIgMTIgMmMtMS44NiAwLTQgLjA5LTUuOC44QzMuNTMgMy44NCAyIDYuMDUgMiA4Ljg2VjIyaDIwVjguODZjMC0yLjgxLTEuNTMtNS4wMi00LjItNi4wNnptLjIgMTMuMDhjMCAxLjQ1LTEuMTggMi42Mi0yLjYzIDIuNjJsMS4xMyAxLjEyVjIwSDE1bC0xLjUtMS41aC0yLjgzTDkuMTcgMjBINy41di0uMzhsMS4xMi0xLjEyQzcuMTggMTguNSA2IDE3LjMyIDYgMTUuODhWOWMwLTIuNjMgMy0zIDYtMyAzLjMyIDAgNiAuMzggNiAzdjYuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5bmFnb2d1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgOHYxM2g0di01YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2NWg0VjhsLTYtNS02IDV6bTcuNSAyYzAgLjgzLS42NyAxLjUtMS41IDEuNXMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41ek0zIDVjLTEuMSAwLTIgLjktMiAydjFoNFY3YzAtMS4xLS45LTItMi0yek0xIDloNHYxMkgxek0yMSA1Yy0xLjEgMC0yIC45LTIgMnYxaDRWN2MwLTEuMS0uOS0yLTItMnpNMTkgOWg0djEyaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWtlb3V0RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsUnVsZVwiOlwiZXZlbm9kZFwiLFwiZFwiOlwiTTUuMjYgMTFoMTMuNDhsLS42NyA5SDUuOTNsLS42Ny05em0zLjc2LTdoNS45NUwxOSA3LjM4bDEuNTktMS41OUwyMiA3LjIxIDE5LjIxIDEwSDQuNzlMMiA3LjIxIDMuNDEgNS44IDUgNy4zOCA5LjAyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRheGlBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgOEE3IDcgMCAwIDAgOS42OCA1SDd2Mkg0LjVhMS41IDEuNSAwIDAgMC0xLjQyIDEuMDFMMSAxNHY4YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xaDEydjFhMSAxIDAgMCAwIDEgMWgxYTEgMSAwIDAgMCAxLTF2LTcuNjhBNy4wMSA3LjAxIDAgMCAwIDIzIDh6bS0xOC41LjVoNC41M2E2LjkzIDYuOTMgMCAwIDAgMi4wOCA0LjVIM2wxLjUtNC41em0wIDkuNWExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMTEgMGExLjUgMS41IDAgMSAxIDAtMyAxLjUgMS41IDAgMCAxIDAgM3ptMi45My01LjYzLS4yMS4xMS0uMTguMDlhNC45NyA0Ljk3IDAgMCAxLS40Mi4xNmwtLjIyLjA3LS4yMy4wNi0uMi4wNWE1IDUgMCAwIDEtNS45NC00LjQxQTQuMDcgNC4wNyAwIDAgMSAxMSA4bC4wMi0uNDcuMDItLjE3LjA0LS4yOC4wNC0uMjEuMDUtLjIxLjA3LS4yNC4wNS0uMTNhNC45OSA0Ljk5IDAgMCAxIDkuNjkgMS43IDQuOTYgNC45NiAwIDAgMS0yLjU1IDQuMzh6TTE1IDRoMnY1aC0yem0wIDZoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZW1wbGVCdWRkaGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDkuMDJjMCAxLjA5LS44OSAxLjk4LTEuOTggMS45OEg0Ljk4QzMuODkgMTEgMyAxMC4xMSAzIDkuMDJIMWMwIDEuODYgMS4yOCAzLjQgMyAzLjg0VjIyaDZ2LTNjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYzaDZ2LTkuMTRjLjU1LS4xNCAzLTEuMDQgMy0zLjg2bC0yIC4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA4Ljg2VjEwaDEyVjguODZjLjU1LS4xNCAzLTEuMDQgMy0zLjg2bC0yIC4wMkMxOSA2LjExIDE4LjExIDcgMTcuMDIgN0g2Ljk4QzUuODkgNyA1IDYuMTEgNSA1LjAySDNjMCAxLjg1IDEuMjggMy40IDMgMy44NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSA4LjI1IDZoNy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZW1wbGVIaW5kdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNiAxMWgxMC44bC0uOS0zaC05ek0yMCAxMXYySDR2LTJIMnYxMWg4di01aDR2NWg4VjExek0xNS45IDYgMTUgM1YxaC0ydjJoLTIuMDNWMWgtMnYyLjEyTDguMSA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUZXJyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi0zLjc1IDUgMi44NSAzLjgtMS42IDEuMkM5LjgxIDEzLjc1IDcgMTAgNyAxMGwtNiA4aDIyTDE0IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRoZWF0ZXJDb21lZHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2LjVDMiAxOS41NCA0LjQ2IDIyIDcuNSAyMnM1LjUtMi40NiA1LjUtNS41VjEwSDJ2Ni41em01LjUgMkM2LjEyIDE4LjUgNSAxNy44MyA1IDE3aDVjMCAuODMtMS4xMiAxLjUtMi41IDEuNXpNMTAgMTNjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptLTUgMGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAzdjZoM3YyLjVjMC0uODMgMS4xMi0xLjUgMi41LTEuNXMyLjUuNjcgMi41IDEuNWgtNXYyLjg5Yy43NS4zOCAxLjYuNjEgMi41LjYxIDMuMDQgMCA1LjUtMi40NiA1LjUtNS41VjNIMTF6bTMgNS4wOGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDFjMCAuNTYtLjQ1IDEtMSAxem01IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxYzAgLjU2LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGlyZVJlcGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDdhMS4wMDMgMS4wMDMgMCAwIDAgMS43MS43MWMuNC0uNCAxLjA0LTIuNDYgMS4wNC0yLjQ2cy0yLjA2LjY0LTIuNDYgMS4wNGMtLjE4LjE4LS4yOS40My0uMjkuNzF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJjLTIuNzYgMC01IDIuMjQtNSA1IDAgMi4wNSAxLjIzIDMuODEgMyA0LjU4VjEzaDF2NWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtMmEzLjAwOSAzLjAwOSAwIDAgMC00LTIuODNWNWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDZjMS4xIDAgMi0uOSAyLTJ2LTNjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjJjMCAxLjY1IDEuMzUgMyAzIDNzMy0xLjM1IDMtM3YtNWgxdi0xLjQyYzEuNzctLjc3IDMtMi41MyAzLTQuNTggMC0yLjc2LTIuMjQtNS01LTV6TTYgMTkuNWwtMi0ydi0yLjgzbDIgMnYyLjgzem0wLTUtMi0yVjkuNjdsMiAydjIuODN6bTAtNS0yLTJWNC42N2wyIDJWOS41em00IDgtMiAydi0yLjgzbDItMnYyLjgzem0wLTUtMiAydi0yLjgzbDItMnYyLjgzem0wLTUtMiAyVjYuNjdsMi0yVjcuNXptOSAyLjVjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFmZmljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTBoLTNWOC44NmMxLjcyLS40NSAzLTIgMy0zLjg2aC0zVjRjMC0uNTUtLjQ1LTEtMS0xSDhjLS41NSAwLTEgLjQ1LTEgMXYxSDRjMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMTBINGMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYxNUg0YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjIwYzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xdi0xLjE0YzEuNzItLjQ1IDMtMiAzLTMuODZoLTN2LTEuMTRjMS43Mi0uNDUgMy0yIDMtMy44NnptLTggOWEyIDIgMCAxIDEtLjAwMS0zLjk5OUEyIDIgMCAwIDEgMTIgMTl6bTAtNWEyIDIgMCAxIDEtLjAwMS0zLjk5OUEyIDIgMCAwIDEgMTIgMTR6bTAtNWEyIDIgMCAwIDEtMi0yYzAtMS4xMS44OS0yIDItMmEyIDIgMCAxIDEgMCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgyLjIzbDItMkgxNGwyIDJoMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6TTcuNSAxN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuNjcgMTQgNy41IDE0czEuNS42NyAxLjUgMS41UzguMzMgMTcgNy41IDE3em0zLjUtN0g2VjZoNXY0em0yIDBWNmg1djRoLTV6bTMuNSA3Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTYuOTRWOC41YzAtMi43OS0yLjYxLTMuNC02LjAxLTMuNDlsLjc2LTEuNTFIMTdWMkg3djEuNWg0Ljc1bC0uNzYgMS41MkM3Ljg2IDUuMTEgNSA1LjczIDUgOC41djguNDRjMCAxLjQ1IDEuMTkgMi42NiAyLjU5IDIuOTdMNiAyMS41di41aDIuMjNsMi0ySDE0bDIgMmgydi0uNUwxNi41IDIwaC0uMDhjMS42OSAwIDIuNTgtMS4zNyAyLjU4LTMuMDZ6bS03IDEuNTZjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em01LTQuNUg3VjloMTB2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhbnNmZXJXaXRoaW5BU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ5IDE1LjV2LTEuNzVMMTQgMTYuMjVsMi40OSAyLjVWMTdIMjJ2LTEuNXptMy4wMiA0LjI1SDE0djEuNWg1LjUxVjIzTDIyIDIwLjUgMTkuNTEgMTh6TTkuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek01Ljc1IDguOSAzIDIzaDIuMWwxLjc1LThMOSAxN3Y2aDJ2LTcuNTVMOC45NSAxMy40bC42LTNDMTAuODUgMTIgMTIuOCAxMyAxNSAxM3YtMmMtMS44NSAwLTMuNDUtMS00LjM1LTIuNDVsLS45NS0xLjZDOS4zNSA2LjM1IDguNyA2IDggNmMtLjI1IDAtLjUuMDUtLjc1LjE1TDIgOC4zVjEzaDJWOS42NWwxLjc1LS43NVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUcmFuc2l0RW50ZXJleGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMThINlY4aDN2NC43N0wxNS45OCA2IDE4IDguMDMgMTEuMTUgMTVIMTZ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJpcE9yaWdpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDEyQzIgNi40OCA2LjQ4IDIgMTIgMnMxMCA0LjQ4IDEwIDEwLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyem0xMCA2YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVybkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02LjgzIDExIDEuNTkgMS41OUw3IDE0bC00LTQgNC00IDEuNDEgMS40MUw2LjgzIDlIMTVjMS4xIDAgMiAuOSAyIDJ2OWgtMnYtOUg2LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdXJuUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy4xNyAxMS0xLjU5IDEuNTlMMTcgMTRsNC00LTQtNC0xLjQxIDEuNDFMMTcuMTcgOUg5Yy0xLjEgMC0yIC45LTIgMnY5aDJ2LTloOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVyblNoYXJwTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNi44MyA0LjQxIDguNDEgMyA3bDQtNCA0IDQtMS40MSAxLjQxTDggNi44M1YxM2g4YzEuMSAwIDIgLjkgMiAydjZoLTJ2LTZIOGMtMS4xIDAtMi0uOS0yLTJWNi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHVyblNoYXJwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA2LjgzIDEuNTkgMS41OUwyMSA3bC00LTQtNCA0IDEuNDEgMS40MUwxNiA2LjgzVjEzSDhjLTEuMSAwLTIgLjktMiAydjZoMnYtNmg4YzEuMSAwIDItLjkgMi0yVjYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFR1cm5TbGlnaHRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNjYgNlY0SDZ2NS42NmgyVjcuNDFsNSA1VjIwaDJ2LTcuNThjMC0uNTMtLjIxLTEuMDQtLjU5LTEuNDFsLTUtNWgyLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdXJuU2xpZ2h0UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zNCA2VjRIMTh2NS42NmgtMlY3LjQxbC01IDVWMjBIOXYtNy41OGMwLS41My4yMS0xLjA0LjU5LTEuNDFsNS01aC0yLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUd29XaGVlbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTFjLS4xOCAwLS4zNi4wMy0uNTMuMDVMMTcuNDEgOUgyMFY2bC0zLjcyIDEuODZMMTMuNDEgNUg5djJoMy41OWwyIDJIMTFsLTQgMi0yLTJIMHYyaDRjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNGwyIDJoM2wzLjQ5LTYuMSAxLjAxIDEuMDFjLS45MS43My0xLjUgMS44NC0xLjUgMy4wOSAwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00LTEuNzktNC00LTR6TTQgMTdjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0xNiAwYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVVR1cm5MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOXYxMmgtMlY5YzAtMi4yMS0xLjc5LTQtNC00UzggNi43OSA4IDl2NC4xN2wxLjU5LTEuNTlMMTEgMTNsLTQgNC00LTQgMS40MS0xLjQxTDYgMTMuMTdWOWMwLTMuMzEgMi42OS02IDYtNnM2IDIuNjkgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVVHVyblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA5djEyaDJWOWMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0djQuMTdsLTEuNTktMS41OUwxMyAxM2w0IDQgNC00LTEuNDEtMS40MUwxOCAxMy4xN1Y5YzAtMy4zMS0yLjY5LTYtNi02UzYgNS42OSA2IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvbHVudGVlckFjdGl2aXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAxMWg0djExSDF6TTE2IDMuMjVDMTYuNjUgMi40OSAxNy42NiAyIDE4LjcgMiAyMC41NSAyIDIyIDMuNDUgMjIgNS4zYzAgMi4yNy0yLjkxIDQuOS02IDcuNy0zLjA5LTIuODEtNi01LjQ0LTYtNy43QzEwIDMuNDUgMTEuNDUgMiAxMy4zIDJjMS4wNCAwIDIuMDUuNDkgMi43IDEuMjV6TTIwIDE3aC03bC0yLjA5LS43My4zMy0uOTRMMTMgMTZoMi44MmMuNjUgMCAxLjE4LS41MyAxLjE4LTEuMTggMC0uNDktLjMxLS45My0uNzctMS4xMUw4Ljk3IDExSDd2OS4wMkwxNCAyMmw4LjAxLTNjLS4wMS0xLjEtLjktMi0yLjAxLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhcmVob3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDIxVjdMMTIgMyAyIDd2MTRoNXYtOWgxMHY5aDV6bS0xMS0ySDl2Mmgydi0yem0yLTNoLTJ2Mmgydi0yem0yIDNoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaW5lQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzdjZjMCAyLjk3IDIuMTYgNS40MyA1IDUuOTFWMTlIOHYyaDh2LTJoLTN2LTQuMDljMi44NC0uNDggNS0yLjk0IDUtNS45MVYzSDZ6bTEwIDVIOFY1aDh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV3JvbmdMb2NhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwVjMuMjZjLS42NS0uMTctMS4zMi0uMjYtMi0uMjYtNC4yIDAtOCAzLjIyLTggOC4yIDAgMy4zMiAyLjY3IDcuMjUgOCAxMS44IDUuMzMtNC41NSA4LTguNDggOC0xMS44IDAtLjQxLS4wNC0uODEtLjA5LTEuMkgxNHptLTIgM2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjU0IDIuODgtMS40Mi0xLjQyTDE5IDMuNTlsLTIuMTItMi4xMy0xLjQyIDEuNDJMMTcuNTkgNWwtMi4xMyAyLjEyIDEuNDIgMS40MkwxOSA2LjQxbDIuMTIgMi4xMyAxLjQyLTEuNDJMMjAuNDEgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWm9vbUluTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA5VjNIN3YyLjU5TDMuOTEgMi41IDIuNSAzLjkxIDUuNTkgN0gzdjJoNnptMTIgMFY3aC0yLjU5bDMuMDktMy4wOS0xLjQxLTEuNDFMMTcgNS41OVYzaC0ydjZoNnpNMyAxNXYyaDIuNTlMMi41IDIwLjA5bDEuNDEgMS40MUw3IDE4LjQxVjIxaDJ2LTZIM3ptMTIgMHY2aDJ2LTIuNTlsMy4wOSAzLjA5IDEuNDEtMS40MUwxOC40MSAxN0gyMXYtMmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kWm9vbU91dE1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDMgMi4zIDIuMy0yLjg5IDIuODcgMS40MiAxLjQyTDE4LjcgNi43IDIxIDlWM2gtNnpNMyA5bDIuMy0yLjMgMi44NyAyLjg5IDEuNDItMS40Mkw2LjcgNS4zIDkgM0gzdjZ6bTYgMTItMi4zLTIuMyAyLjg5LTIuODctMS40Mi0xLjQyTDUuMyAxNy4zIDMgMTV2Nmg2em0xMi02LTIuMyAyLjMtMi44Ny0yLjg5LTEuNDIgMS40MiAyLjg5IDIuODdMMTUgMjFoNnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkSG9tZVdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMS42OFYxMUw4IDZsLTcgNXYxMGg1di02aDR2NmgxLjY4Yy0uNDMtLjkxLS42OC0xLjkyLS42OC0zIDAtMi43OSAxLjY0LTUuMTkgNC02LjMyek0yMyAxMy4xMVYzSDEwdjEuOTdsNyA1djEuMTFjLjMzLS4wNS42Ni0uMDggMS0uMDggMS45NiAwIDMuNzMuODEgNSAyLjExek0xNyA3aDJ2MmgtMlY3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxOGMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNSAyLjI0IDUgNSA1IDUtMi4yNCA1LTV6bS01LjUgM3YtMi41SDE1di0xaDIuNVYxNWgxdjIuNUgyMXYxaC0yLjVWMjFoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcFNldHRpbmdzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuODEgMTIuNzQtLjgyLS42M3YtLjIybC44LS42M2MuMTYtLjEyLjItLjM0LjEtLjUxbC0uODUtMS40OGEuMzk1LjM5NSAwIDAgMC0uMzUtLjJjLS4wNSAwLS4xLjAxLS4xNS4wM2wtLjk1LjM4Yy0uMDgtLjA1LS4xMS0uMDctLjE5LS4xMWwtLjE1LTEuMDFhLjQwOC40MDggMCAwIDAtLjQtLjM2aC0xLjcxYy0uMiAwLS4zNy4xNS0uNC4zNGwtLjE0IDEuMDFjLS4wMy4wMi0uMDcuMDMtLjEuMDVsLS4wOS4wNi0uOTUtLjM4YS40MDEuNDAxIDAgMCAwLS41LjE3bC0uODUgMS40OGMtLjEuMTctLjA2LjM5LjEuNTFsLjguNjN2LjIzbC0uOC42M2EuMzkuMzkgMCAwIDAtLjEuNTFsLjg1IDEuNDhjLjA3LjEzLjIxLjIuMzUuMi4wNSAwIC4xLS4wMS4xNS0uMDNsLjk1LS4zN2MuMDguMDUuMTIuMDcuMi4xMWwuMTUgMS4wMWMuMDMuMi4yLjM0LjQuMzRoMS43MWMuMiAwIC4zNy0uMTUuNC0uMzRsLjE1LTEuMDFjLjAzLS4wMi4wNy0uMDMuMS0uMDVsLjA5LS4wNi45NS4zOGEuNDAxLjQwMSAwIDAgMCAuNS0uMTdsLjg1LTEuNDhhLjM5LjM5IDAgMCAwLS4xLS41MXpNMTggMTMuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTE3IDE3aDJ2NGMwIDEuMS0uOSAyLTIgMkg3Yy0xLjEgMC0yLS45LTItMlYzYzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJ2NGgtMlY2SDd2MTJoMTB2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFwcHNPdXRhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDhoNFY0SDR2NHptNiAxMmg0di00aC00djR6bS02IDBoNHYtNEg0djR6bTAtNmg0di00SDR2NHptNiAwaDR2LTRoLTR2NHptNiA2aDR2LTRoLTR2NHptMy0yMGMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS41IDhoLTFWN2gxdjF6bTAtMmgtMVYyaDF2NHpNMTYgMTRoNHYtMi4wN2MtLjMzLjA1LS42Ni4wNy0xIC4wNy0xLjA3IDAtMi4wOS0uMjQtMy0uNjhWMTR6TTEwIDR2NGgyLjY4Yy0uNDQtLjkxLS42OC0xLjkzLS42OC0zIDAtLjM0LjAyLS42Ny4wNy0xSDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcHBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA4aDRWNEg0djR6bTYgMTJoNHYtNGgtNHY0em0tNiAwaDR2LTRINHY0em0wLTZoNHYtNEg0djR6bTYgMGg0di00aC00djR6bTYtMTB2NGg0VjRoLTR6bS02IDRoNFY0aC00djR6bTYgNmg0di00aC00djR6bTAgNmg0di00aC00djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93QmFja0lvc05ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljc3IDMuNzcgMTYgMiA2IDEybDEwIDEwIDEuNzctMS43N0w5LjU0IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0JhY2tJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS42NyAzLjg3IDkuOSAyLjEgMCAxMmw5LjkgOS45IDEuNzctMS43N0wzLjU0IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0JhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd0Rvd253YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMCAxMi0xLjQxLTEuNDFMMTMgMTYuMTdWNGgtMnYxMi4xN2wtNS41OC01LjU5TDQgMTJsOCA4IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dEcm9wRG93bkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTItNC00aDhsLTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dEcm9wRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcgMTAgNSA1IDUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dEcm9wVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm03IDE0IDUtNSA1IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93Rm9yd2FyZElvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4yMyAyMC4yMyA4IDIybDEwLTEwTDggMiA2LjIzIDMuNzcgMTQuNDYgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDQtMS40MSAxLjQxTDE2LjE3IDExSDR2MmgxMi4xN2wtNS41OCA1LjU5TDEyIDIwbDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA3LTUgNSA1IDVWN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMHYyNEgwVjBoMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDE3IDUtNS01LTV2MTB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMjRWMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcnJvd1Vwd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNCAxMiAxLjQxIDEuNDFMMTEgNy44M1YyMGgyVjcuODNsNS41OCA1LjU5TDIwIDEybC04LTgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3Npc3RhbnREaXJlY3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwSDljLS42IDAtMSAuNC0xIDF2NGgydi0zaDR2Mi41bDMuNS0zLjVMMTQgNy41VjEwem0tMi05QzUuOSAxIDEgNS45IDEgMTJzNC45IDExIDExIDExIDExLTQuOSAxMS0xMVMxOC4xIDEgMTIgMXptNy43MyAxMS41OC03LjE5IDcuMjJjLS4zNS4yNy0uNzkuMjctMS4xNSAwTDQuMiAxMi41OGEuOTMyLjkzMiAwIDAgMSAwLTEuMTZsNy4xOS03LjIyYy4zNS0uMjcuNzktLjI3IDEuMTUgMGw3LjE5IDcuMjJjLjM2LjI3LjM2LjggMCAxLjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBc3Npc3RhbnROYXZpZ2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxQzUuOTMgMSAxIDUuOTMgMSAxMnM0LjkzIDExIDExIDExIDExLTQuOTMgMTEtMTFTMTguMDcgMSAxMiAxem0zLjU3IDE2TDEyIDE1LjQyIDguNDMgMTdsLS4zNy0uMzdMMTIgN2wzLjk1IDkuNjMtLjM4LjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDYW1wYWlnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDExdjJoNHYtMmgtNHptLTIgNi42MWMuOTYuNzEgMi4yMSAxLjY1IDMuMiAyLjM5LjQtLjUzLjgtMS4wNyAxLjItMS42LS45OS0uNzQtMi4yNC0xLjY4LTMuMi0yLjQtLjQuNTQtLjggMS4wOC0xLjIgMS42MXpNMjAuNCA1LjZjLS40LS41My0uOC0xLjA3LTEuMi0xLjYtLjk5Ljc0LTIuMjQgMS42OC0zLjIgMi40LjQuNTMuOCAxLjA3IDEuMiAxLjYuOTYtLjcyIDIuMjEtMS42NSAzLjItMi40ek00IDljLTEuMSAwLTIgLjktMiAydjJjMCAxLjEuOSAyIDIgMmgxdjRoMnYtNGgxbDUgM1Y2TDggOUg0em0xMS41IDNjMC0xLjMzLS41OC0yLjUzLTEuNS0zLjM1djYuNjljLjkyLS44MSAxLjUtMi4wMSAxLjUtMy4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FuY2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptNSAxMy41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNi4xNyA0LjgzIDEybC0xLjQyIDEuNDFMOSAxOSAyMSA3bC0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZXZyb25MZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNDEgNy40MSAxNCA2bC02IDYgNiA2IDEuNDEtMS40MUwxMC44MyAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNiA4LjU5IDcuNDEgMTMuMTcgMTJsLTQuNTggNC41OUwxMCAxOGw2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENsb3NlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNi40MSAxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb3VibGVBcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgNUgxMWw1IDctNSA3aDQuNWw1LTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA1SDRsNSA3LTUgN2g0LjVsNS03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgNS0xLjQxIDEuNDFMMTguMTcgMTFIMnYyaDE2LjE3bC00LjU5IDQuNTlMMTUgMTlsNy03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXhwYW5kQ2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMTMuNUw3LjUgMTFsMS40Mi0xLjQxTDEyIDEyLjY3bDMuMDgtMy4wOEwxNi41IDExIDEyIDE1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEV4cGFuZExlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA4LTYgNiAxLjQxIDEuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFeHBhbmRNb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNTkgOC41OSAxMiAxMy4xNyA3LjQxIDguNTkgNiAxMGw2IDYgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGaXJzdFBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjQxIDE2LjU5IDEzLjgyIDEybDQuNTktNC41OUwxNyA2bC02IDYgNiA2ek02IDZoMnYxMkg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZ1bGxzY3JlZW5FeGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmgzdjNoMnYtNUg1djJ6bTMtOEg1djJoNVY1SDh2M3ptNiAxMWgydi0zaDN2LTJoLTV2NXptMi0xMVY1aC0ydjVoNVY4aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGdWxsc2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNEg1djVoNXYtMkg3di0zem0tMi00aDJWN2gzVjVINXY1em0xMiA3aC0zdjJoNXYtNWgtMnYzek0xNCA1djJoM3YzaDJWNWgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG9tZVdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExdjEwaDV2LTZoNHY2aDVWMTFMOCA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzdjEuOTdsNyA1VjExaDJ2MmgtMnYyaDJ2MmgtMnY0aDZWM0gxMHptOSA2aC0yVjdoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMYXN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41OSA3LjQxIDEwLjE4IDEybC00LjU5IDQuNTlMNyAxOGw2LTYtNi02ek0xNiA2aDJ2MTJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExlZ2VuZFRvZ2dsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1SDR2LTJoMTZ2MnptMCAySDR2MmgxNnYtMnptLTUtNiA1LTMuNTVWNWwtNSAzLjU1TDEwIDUgNCA4LjY2VjExbDUuOTItMy42MUwxNSAxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFwc0hvbWVXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDExdjEwaDV2LTZoNHY2aDVWMTFMOCA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAzdjEuOTdsNyA1VjExaDJ2MmgtMnYyaDJ2MmgtMnY0aDZWM0gxMHptOSA2aC0yVjdoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZW51T3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOGgxM3YtMkgzdjJ6bTAtNWgxMHYtMkgzdjJ6bTAtN3YyaDEzVjZIM3ptMTggOS41OUwxNy40MiAxMiAyMSA4LjQxIDE5LjU5IDdsLTUgNSA1IDVMMjEgMTUuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1lbnUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3JlSG9yaXogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTIgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS02IDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb3JlVmVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3J0aEVhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDV2Mmg2LjU5TDQgMTguNTkgNS40MSAyMCAxNyA4LjQxVjE1aDJWNUg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3J0aFdlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDJWOC40MUwxOC41OSAyMCAyMCAxOC41OSA4LjQxIDdIMTVWNUg1djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3J0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTUgOSAxLjQxIDEuNDFMMTEgNS44M1YyMmgyVjUuODNsNC41OSA0LjU5TDE5IDlsLTctNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9mZmxpbmVTaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjYgMTAuMjZ2MS4zMUwxNyA5LjMzIDE0LjYgNy4xdjEuMjhjLTIuMzMuMzItMy4yNiAxLjkyLTMuNiAzLjUyLjgzLTEuMTMgMS45My0xLjY0IDMuNi0xLjY0ek0xNiAyM0g2Yy0xLjEgMC0yLS45LTItMlY1aDJ2MTZoMTB2MnptMi0yMmgtOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTVoLThWNGg4djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXltZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE0VjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yem0tOS0xYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMTMtNnYxMWMwIDEuMS0uOSAyLTIgMkg0di0yaDE3VjdoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGl2b3RUYWJsZUNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOGgxMVY1YzAtMS4xLS45LTItMi0yaC05djV6TTMgOGg1VjNINWMtMS4xIDAtMiAuOS0yIDJ2M3ptMiAxM2gzVjEwSDN2OWMwIDEuMS45IDIgMiAyem04IDEtNC00IDQtNHptMS05IDQtNCA0IDR6TTE0LjU4IDE5SDEzdi0yaDEuNThjMS4zMyAwIDIuNDItMS4wOCAyLjQyLTIuNDJWMTNoMnYxLjU4YzAgMi40NC0xLjk4IDQuNDItNC40MiA0LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWZyZXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjUgNi4zNUE3Ljk1OCA3Ljk1OCAwIDAgMCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4QTUuOTkgNS45OSAwIDAgMSAxMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0bC0yLjM1IDIuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNvdXRoRWFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTJ2Ni41OUw1LjQxIDQgNCA1LjQxIDE1LjU5IDE3SDl2MmgxMFY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3V0aFdlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOXYtMkg4LjQxTDIwIDUuNDEgMTguNTkgNCA3IDE1LjU5VjlINXYxMGgxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU291dGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxNS0xLjQxLTEuNDFMMTMgMTguMTdWMmgtMnYxNi4xN2wtNC41OS00LjU5TDUgMTVsNyA3IDctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3ViZGlyZWN0b3J5QXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSA5IDEuNDIgMS40Mkw4LjgzIDE0SDE4VjRoMnYxMkg4LjgzbDMuNTkgMy41OEwxMSAyMWwtNi02IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3ViZGlyZWN0b3J5QXJyb3dSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMTUtNiA2LTEuNDItMS40MkwxNS4xNyAxNkg0VjRoMnYxMGg5LjE3bC0zLjU5LTMuNThMMTMgOWw2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN3aXRjaExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgOC42MnY2Ljc2TDUuMTIgMTIgOC41IDguNjJNMTAgNWwtNyA3IDcgN1Y1em00IDB2MTRsNy03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpdGNoUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDI0SDBWMGgyNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNS4zOFY4LjYyTDE4Ljg4IDEybC0zLjM4IDMuMzhNMTQgMTlsNy03LTctN3YxNHptLTQgMFY1bC03IDcgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRVbmZvbGRMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40MSAxOC41OSA4LjgzIDIwIDEyIDE2LjgzIDE1LjE3IDIwbDEuNDEtMS40MUwxMiAxNGwtNC41OSA0LjU5em05LjE4LTEzLjE4TDE1LjE3IDQgMTIgNy4xNyA4LjgzIDQgNy40MSA1LjQxIDEyIDEwbDQuNTktNC41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW5mb2xkTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuODMgMTUuMTcgOWwxLjQxLTEuNDFMMTIgMyA3LjQxIDcuNTkgOC44MyA5IDEyIDUuODN6bTAgMTIuMzRMOC44MyAxNWwtMS40MSAxLjQxTDEyIDIxbDQuNTktNC41OUwxNS4xNyAxNSAxMiAxOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F0ZXJmYWxsQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0aDN2MTZoLTN6TTMgMTNoM3Y3SDN6bTExLTloM3YzaC0zem0tNCAxaDN2NGgtM3ptLTMgNWgzdjRIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkgMTkgMS40MS0xLjQxTDUuODMgMTNIMjJ2LTJINS44M2w0LjU5LTQuNTlMOSA1bC03IDcgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY2NvdW50VHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExVjNoLTd2M0g5VjNIMnY4aDdWOGgydjEwaDR2M2g3di04aC03djNoLTJWOGgydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTZjMCAzLjg3IDMuMTMgNyA3IDdzNy0zLjEzIDctN3YtNEg1djR6TTE2LjEyIDQuMzdsMi4xLTIuMS0uODItLjgzLTIuMyAyLjMxQzE0LjE2IDMuMjggMTMuMTIgMyAxMiAzcy0yLjE2LjI4LTMuMDkuNzVMNi42IDEuNDRsLS44Mi44MyAyLjEgMi4xQzYuMTQgNS42NCA1IDcuNjggNSAxMHYxaDE0di0xYzAtMi4zMi0xLjE0LTQuMzYtMi44OC01LjYzek05IDljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNiAwYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFkZENhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMjEgNmgtM1YzaC0ydjNoLTN2MmgzdjNoMlY4aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0RmxhdEFuZ2xlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjI1IDE0LjI5LS42OSAxLjg5TDkuMiAxMS43MWwyLjA4LTUuNjYgOC41NiAzLjA5YTQgNCAwIDAgMSAyLjQxIDUuMTV6TTEuNSAxMi4xNCA4IDE0LjQ4VjE5aDh2LTEuNjNMMjAuNTIgMTlsLjY5LTEuODktMTkuMDItNi44Ni0uNjkgMS44OXptNS44LTEuOTRhMy4wMSAzLjAxIDAgMCAwIDEuNDEtNEEzLjAwNSAzLjAwNSAwIDAgMCA0LjcgNC44YTIuOTkgMi45OSAwIDAgMC0xLjQgNCAyLjk5IDIuOTkgMCAwIDAgNCAxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0RmxhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExdjJIOVY3aDljMi4yMSAwIDQgMS43OSA0IDR6TTIgMTR2Mmg2djJoOHYtMmg2di0ySDJ6bTUuMTQtMS45YTMgMyAwIDAgMC0uMDQtNC4yNCAzIDMgMCAwIDAtNC4yNC4wNCAzIDMgMCAwIDAgLjA0IDQuMjQgMyAzIDAgMCAwIDQuMjQtLjA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJsaW5lU2VhdEluZGl2aWR1YWxTdWl0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxM2MxLjY1IDAgMy0xLjM1IDMtM1M4LjY1IDcgNyA3cy0zIDEuMzUtMyAzIDEuMzUgMyAzIDN6bTEyLTZoLTh2N0gzVjdIMXYxMGgyMnYtNmMwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWlybGluZVNlYXRMZWdyb29tRXh0cmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEyVjNIMnY5YzAgMi43NiAyLjI0IDUgNSA1aDZ2LTJIN2MtMS42NiAwLTMtMS4zNC0zLTN6bTE4LjgzIDUuMjRjLS4zOC0uNzItMS4yOS0uOTctMi4wMy0uNjNsLTEuMDkuNS0zLjQxLTYuOThhMi4wMSAyLjAxIDAgMCAwLTEuNzktMS4xMkwxMSA5VjNINXY4YzAgMS42NiAxLjM0IDMgMyAzaDdsMy40MSA3IDMuNzItMS43Yy43Ny0uMzYgMS4xLTEuMy43LTIuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0TGVncm9vbU5vcm1hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTJWM0gzdjljMCAyLjc2IDIuMjQgNSA1IDVoNnYtMkg4Yy0xLjY2IDAtMy0xLjM0LTMtM3ptMTUuNSA2SDE5di03YzAtMS4xLS45LTItMi0yaC01VjNINnY4YzAgMS42NSAxLjM1IDMgMyAzaDd2N2g0LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0TGVncm9vbVJlZHVjZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS45NyAxOS4yYy4xOC45Ni0uNTUgMS44LTEuNDcgMS44SDE0di0zbDEtNEg5Yy0xLjY1IDAtMy0xLjM1LTMtM1YzaDZ2Nmg1YzEuMSAwIDIgLjkgMiAybC0yIDdoMS40NGMuNzMgMCAxLjM5LjQ5IDEuNTMgMS4yek01IDEyVjNIM3Y5YzAgMi43NiAyLjI0IDUgNSA1aDR2LTJIOGMtMS42NiAwLTMtMS4zNC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0UmVjbGluZUV4dHJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS4zNSA1LjY0Yy0uOS0uNjQtMS4xMi0xLjg4LS40OS0yLjc5LjYzLS45IDEuODgtMS4xMiAyLjc5LS40OS45LjY0IDEuMTIgMS44OC40OSAyLjc5LS42NC45LTEuODggMS4xMi0yLjc5LjQ5ek0xNiAxOUg4LjkzYy0xLjQ4IDAtMi43NC0xLjA4LTIuOTYtMi41NEw0IDdIMmwxLjk5IDkuNzZBNS4wMSA1LjAxIDAgMCAwIDguOTQgMjFIMTZ2LTJ6bS4yMy00aC00Ljg4bC0xLjAzLTQuMWMxLjU4Ljg5IDMuMjggMS41NCA1LjE1IDEuMjJWOS45OWMtMS42My4zMS0zLjQ0LS4yNy00LjY5LTEuMjVMOS4xNCA3LjQ3Yy0uMjMtLjE4LS40OS0uMy0uNzYtLjM4YTIuMjEgMi4yMSAwIDAgMC0uOTktLjA2aC0uMDJhMi4yNjggMi4yNjggMCAwIDAtMS44NCAyLjYxbDEuMzUgNS45MkEzLjAwOCAzLjAwOCAwIDAgMCA5LjgzIDE4aDYuODVsMy44MiAzIDEuNS0xLjUtNS43Ny00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFpcmxpbmVTZWF0UmVjbGluZU5vcm1hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNTkgNS40MWMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODMuNzgtLjc4IDIuMDUtLjc4IDIuODMgMCAuNzguNzguNzggMi4wNSAwIDIuODMtLjc5Ljc5LTIuMDUuNzktMi44MyAwek02IDE2VjdINHY5YzAgMi43NiAyLjI0IDUgNSA1aDZ2LTJIOWMtMS42NiAwLTMtMS4zNC0zLTN6bTE0IDQuMDdMMTQuOTMgMTVIMTEuNXYtMy42OGMxLjQgMS4xNSAzLjYgMi4xNiA1LjUgMi4xNnYtMi4xNmMtMS42Ni4wMi0zLjYxLS44Ny00LjY3LTIuMDRsLTEuNC0xLjU1Yy0uMTktLjIxLS40My0uMzgtLjY5LS41LS4yOS0uMTQtLjYyLS4yMy0uOTYtLjIzaC0uMDNDOC4wMSA3IDcgOC4wMSA3IDkuMjVWMTVjMCAxLjY2IDEuMzQgMyAzIDNoNS4wN2wzLjUgMy41TDIwIDIwLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbHVldG9vdGhBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjI0IDEyLjAxIDIuMzIgMi4zMmMuMjgtLjcyLjQ0LTEuNTEuNDQtMi4zMyAwLS44Mi0uMTYtMS41OS0uNDMtMi4zMWwtMi4zMyAyLjMyem01LjI5LTUuMy0xLjI2IDEuMjZjLjYzIDEuMjEuOTggMi41Ny45OCA0LjAycy0uMzYgMi44Mi0uOTggNC4wMmwxLjIgMS4yYTkuOTM2IDkuOTM2IDAgMCAwIDEuNTQtNS4zMWMtLjAxLTEuODktLjU1LTMuNjctMS40OC01LjE5em0tMy44MiAxTDEwIDJIOXY3LjU5TDQuNDEgNSAzIDYuNDEgOC41OSAxMiAzIDE3LjU5IDQuNDEgMTkgOSAxNC40MVYyMmgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTEgNS44M2wxLjg4IDEuODhMMTEgOS41OVY1Ljgzem0xLjg4IDEwLjQ2TDExIDE4LjE3di0zLjc2bDEuODggMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29uZmlybWF0aW9uTnVtYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBWNmEyIDIgMCAwIDAtMi0ySDRjLTEuMSAwLTEuOTkuODktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJ6bS05IDcuNWgtMnYtMmgydjJ6bTAtNC41aC0ydi0yaDJ2MnptMC00LjVoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREaXJlY3Rpb25zT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODMgMTBoLjY3VjcuNUwxNyAxMWwtMS41OSAxLjU5TDE4LjgzIDE2bDIuNTktMi41OWMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzbC03Ljk5LThjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwTDggNS4xNyAxMi44MyAxMHpNMi44MSAyLjgxIDEuMzkgNC4yMiA1LjE3IDhsLTIuNTkgMi41OWMtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2w4LjAxIDhjLjc4Ljc4IDIuMDUuNzggMi44MyAwTDE2IDE4LjgzbDMuNzggMy43OCAxLjQxLTEuNDFMMi44MSAyLjgxek0xMCAxNUg4di00YzAtLjA1LjAyLS4wOS4wMy0uMTRMMTAgMTIuODNWMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpc2NGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTZoMnYtMmgtMnYyem0wLTl2NWgyVjdoLTJ6TTEwIDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDEwYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9EaXN0dXJiQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOCAwLTEuODUuNjMtMy41NSAxLjY5LTQuOUwxNi45IDE4LjMxQTcuOTAyIDcuOTAyIDAgMCAxIDEyIDIwem02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NS0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9EaXN0dXJiT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMXYyaC0xLjE3bDQuNTEgNC41MUE5LjkxIDkuOTEgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMi4wNCAwLTMuOTMuNjEtNS41MSAxLjY2TDEzLjgzIDExSDE3ek0xLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyek03IDExaDEuMTdsMiAySDd2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvRGlzdHVyYk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExSDd2LTJoMTB2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9EaXN0dXJiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnpNNCAxMmMwLTQuNCAzLjYtOCA4LTggMS44IDAgMy41LjYgNC45IDEuN0w1LjcgMTYuOUM0LjYgMTUuNSA0IDEzLjggNCAxMnptOCA4Yy0xLjggMC0zLjUtLjYtNC45LTEuN0wxOC4zIDcuMUMxOS40IDguNSAyMCAxMC4yIDIwIDEyYzAgNC40LTMuNiA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9Ob3REaXN0dXJiQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0tNjE4LTE0NjRINzgydjM2MDBILTYxOHpNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyek00IDEyYzAtNC40IDMuNi04IDgtOCAxLjggMCAzLjUuNiA0LjkgMS43TDUuNyAxNi45QzQuNiAxNS41IDQgMTMuOCA0IDEyem04IDhjLTEuOCAwLTMuNS0uNi00LjktMS43TDE4LjMgNy4xQzE5LjQgOC41IDIwIDEwLjIgMjAgMTJjMCA0LjQtMy42IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdERpc3R1cmJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExdjJoLTEuNDZsNC42OCA0LjY4QTkuOTIgOS45MiAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0yLjExIDAtNC4wNy42Ni01LjY4IDEuNzhMMTMuNTQgMTFIMTd6TTIuMjcgMi4yNyAxIDMuNTRsMi43OCAyLjc4QTkuOTIgOS45MiAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMTEgMCA0LjA3LS42NiA1LjY4LTEuNzhMMjAuNDYgMjNsMS4yNy0xLjI3TDExIDExIDIuMjcgMi4yN3pNNyAxM3YtMmgxLjQ2bDIgMkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdERpc3R1cmJPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNSAxMUg3di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvTm90RGlzdHVyYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04IDAtMS44NS42My0zLjU1IDEuNjktNC45TDE2LjkgMTguMzFBNy45MDIgNy45MDIgMCAwIDEgMTIgMjB6bTYuMzEtMy4xTDcuMSA1LjY5QTcuOTAyIDcuOTAyIDAgMCAxIDEyIDRjNC40MiAwIDggMy41OCA4IDggMCAxLjg1LS42MyAzLjU1LTEuNjkgNC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcml2ZUV0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDUuMDFDMTguNzIgNC40MiAxOC4xNiA0IDE3LjUgNGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTF2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuNSAxNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTIgNi41IDEyczEuNS42NyAxLjUgMS41UzcuMzMgMTUgNi41IDE1em0xMSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNNSAxMGwxLjUtNC41aDExTDE5IDEwSDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVuaGFuY2VkRW5jcnlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6TTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2Mkg4LjlWNnpNMTYgMTZoLTN2M2gtMnYtM0g4di0yaDN2LTNoMnYzaDN2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXZlbnRBdmFpbGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41MyAxMS4wNiAxNS40NyAxMGwtNC44OCA0Ljg4LTIuMTItMi4xMi0xLjA2IDEuMDZMMTAuNTkgMTdsNS45NC01Ljk0ek0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXZlbnRCdXN5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS4zMSAxNyAyLjQ0LTIuNDRMMTQuMTkgMTdsMS4wNi0xLjA2LTIuNDQtMi40NCAyLjQ0LTIuNDRMMTQuMTkgMTBsLTIuNDQgMi40NEw5LjMxIDEwbC0xLjA2IDEuMDYgMi40NCAyLjQ0LTIuNDQgMi40NEw5LjMxIDE3ek0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMTlhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOGgxNHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXZlbnROb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTBIN3YyaDEwdi0yem0yLTdoLTFWMWgtMnYySDhWMUg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExem0tNS01SDd2Mmg3di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xkZXJTcGVjaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tMi4wNiAxMUwxNSAxNS4yOCAxMi4wNiAxN2wuNzgtMy4zMy0yLjU5LTIuMjQgMy40MS0uMjlMMTUgOGwxLjM0IDMuMTQgMy40MS4yOS0yLjU5IDIuMjQuNzggMy4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW1hZ2VzZWFyY2hSb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAydjZINlY2SDR2NGgxMHY1aDJ2OGgtNnYtOGgydi0zSDJWNGg0VjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTGl2ZVR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2aC03LjU5bDMuMjktMy4yOUwxNiAybC00IDQtNC00LS43MS43MUwxMC41OSA2SDNhMiAyIDAgMCAwLTIgMnYxMmMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhhMiAyIDAgMCAwLTItMnptMCAxNEgzVjhoMTh2MTJ6TTkgMTB2OGw3LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1tcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek01IDE0bDMuNS00LjUgMi41IDMuMDFMMTQuNSA4bDQuNSA2SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1vcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOTcuODkgMS42Ni44OUgyMmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDEzLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROZXR3b3JrQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS45IDVjLS4xNyAwLS4zMi4wOS0uNDEuMjNsLS4wNy4xNS01LjE4IDExLjY1Yy0uMTYuMjktLjI2LjYxLS4yNi45NiAwIDEuMTEuOSAyLjAxIDIuMDEgMi4wMS45NiAwIDEuNzctLjY4IDEuOTYtMS41OWwuMDEtLjAzTDE2LjQgNS41YzAtLjI4LS4yMi0uNS0uNS0uNXpNMSA5bDIgMmMyLjg4LTIuODggNi43OS00LjA4IDEwLjUzLTMuNjJsMS4xOS0yLjY4QzkuODkgMy44NCA0Ljc0IDUuMjcgMSA5em0yMCAyIDItMmExNS4zNjcgMTUuMzY3IDAgMCAwLTUuNTktMy41N2wtLjUzIDIuODJjMS41LjYyIDIuOSAxLjUzIDQuMTIgMi43NXptLTQgNCAyLTJjLS44LS44LTEuNy0xLjQyLTIuNjYtMS44OWwtLjU1IDIuOTJjLjQyLjI3LjgzLjU5IDEuMjEuOTd6TTUgMTNsMiAyYTcuMSA3LjEgMCAwIDEgNC4wMy0ybDEuMjgtMi44OGMtMi42My0uMDgtNS4zLjg3LTcuMzEgMi44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTmV0d29ya0xvY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6bTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDEwYy4xNyAwIC4zMy4wMy41LjA1VjFMMSAyMGgxM3YtM2MwLS44OS4zOS0xLjY4IDEtMi4yM3YtLjI3YzAtMi40OCAyLjAyLTQuNSA0LjUtNC41em0yLjUgNnYtMS41YTIuNSAyLjUgMCAwIDAtNSAwVjE2Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg1Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTF6bS0xIDBoLTN2LTEuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9FbmNyeXB0aW9uR21haWxlcnJvcnJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45IDZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFzMy4xIDEuMzkgMy4xIDMuMXYyaC00LjI3TDIwIDE3LjE3VjEwYzAtMS4xLS45LTItMi0yaC0xVjZjMC0yLjc2LTIuMjQtNS01LTUtMi4yMSAwLTQuMDcgMS40NS00LjczIDMuNDRMOC45IDYuMDdWNnpNMi4xIDIuMS42OSAzLjUxIDUuMyA4LjEzQzQuNTUgOC40MiA0IDkuMTUgNCAxMHYxMGMwIDEuMS45IDIgMiAyaDEyYy4zNCAwIC42NS0uMDkuOTMtLjI0bDEuNTYgMS41NiAxLjQxLTEuNDFMMi4xIDIuMXpNMTIgMTdjLTEuMSAwLTItLjktMi0yIDAtLjU5LjI3LTEuMTIuNjgtMS40OWwyLjgxIDIuODFjLS4zNy40MS0uOS42OC0xLjQ5LjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0VuY3J5cHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMjEuNzggNC4yMiA1IDMgNi4yMmwyLjA0IDIuMDRDNC40MiA4LjYgNCA5LjI1IDQgMTB2MTBjMCAxLjEuOSAyIDIgMmgxMmMuMjMgMCAuNDUtLjA1LjY2LS4xMkwxOS43OCAyMyAyMSAyMS43OHpNOC45IDZjMC0xLjcxIDEuMzktMy4xIDMuMS0zLjFzMy4xIDEuMzkgMy4xIDMuMXYySDkuNjZMMjAgMTguMzRWMTBjMC0xLjEtLjktMi0yLTJoLTFWNmMwLTIuNzYtMi4yNC01LTUtNS0yLjU2IDAtNC42NCAxLjkzLTQuOTQgNC40TDguOSA3LjI0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE9uZGVtYW5kVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnptLTUtNi03IDRWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uYWxWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVCbHVldG9vdGhTcGVha2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzEgOS41IDE3IDcuMjFWMTFoLjVsMi44NS0yLjg1TDE4LjIxIDZsMi4xNS0yLjE1TDE3LjUgMUgxN3YzLjc5TDE0LjcxIDIuNWwtLjcxLjcxTDE2Ljc5IDYgMTQgOC43OWwuNzEuNzF6TTE4IDIuOTFsLjk0Ljk0LS45NC45NFYyLjkxem0wIDQuMy45NC45NC0uOTQuOTRWNy4yMXptMiA4LjI5Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2ExLjAyIDEuMDIgMCAwIDAtMS4wMi4yNGwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lQ2FsbGJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjYyIDEwLjc5YzEuNDQgMi44MyAzLjc2IDUuMTQgNi41OSA2LjU5bDIuMi0yLjJjLjI3LS4yNy42Ny0uMzYgMS4wMi0uMjQgMS4xMi4zNyAyLjMzLjU3IDMuNTcuNTcuNTUgMCAxIC40NSAxIDFWMjBjMCAuNTUtLjQ1IDEtMSAxLTkuMzkgMC0xNy03LjYxLTE3LTE3IDAtLjU1LjQ1LTEgMS0xaDMuNWMuNTUgMCAxIC40NSAxIDEgMCAxLjI1LjIgMi40NS41NyAzLjU3LjExLjM1LjAzLjc0LS4yNSAxLjAybC0yLjIgMi4yem0xMy41NC03LjEtLjcxLS43TDEzIDkuMjlWNWgtMXY2aDZ2LTFoLTQuMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lRm9yd2FyZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMTEgNS01LTUtNXYzaC00djRoNHYzem0yIDQuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhMS4wMiAxLjAyIDAgMCAwLTEuMDIuMjRsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZUluVGFsayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3YTEuMDIgMS4wMiAwIDAgMC0xLjAyLjI0bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNMTkgMTJoMmE5IDkgMCAwIDAtOS05djJjMy44NyAwIDcgMy4xMyA3IDd6bS00IDBoMmMwLTIuNzYtMi4yNC01LTUtNXYyYzEuNjYgMCAzIDEuMzQgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQaG9uZUxvY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNVY0YzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxaC0xdjVoNlY1aC0xem0tMSAwaC0yVjRjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjYzIDE0LjQtMi41MiAyLjVjLTIuNS0xLjQzLTQuNTctMy41LTYtNmwyLjUtMi41MmMuMjMtLjI0LjMzLS41Ny4yNy0uOUw5LjEzIDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhINGMtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjA1IDUuNiAyLjQzIDcuOTcgMS41OCAyLjczIDMuODUgNC45OSA2LjU3IDYuNTcgMi4zNyAxLjM3IDUuMDggMi4yNiA3Ljk3IDIuNDMuNTYuMDMgMS4wMy0uNDQgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4bC0zLjY3LS43M2EuOTg1Ljk4NSAwIDAgMC0uOS4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGhvbmVNaXNzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgNS41IDEyIDExbDctNy0xLTEtNiA2LTQuNS00LjVIMTFWM0g1djZoMS41VjUuNXptMTcuMjEgMTEuMTdBMTYuOTcxIDE2Ljk3MSAwIDAgMCAxMiAxMkM3LjQ2IDEyIDMuMzQgMTMuNzguMjkgMTYuNjdjLS4xOC4xOC0uMjkuNDMtLjI5Ljcxcy4xMS41My4yOS43MWwyLjQ4IDIuNDhjLjE4LjE4LjQzLjI5LjcxLjI5LjI3IDAgLjUyLS4xMS43LS4yOC43OS0uNzQgMS42OS0xLjM2IDIuNjYtMS44NS4zMy0uMTYuNTYtLjUuNTYtLjl2LTMuMWMxLjQ1LS40OCAzLS43MyA0LjYtLjczIDEuNiAwIDMuMTUuMjUgNC42LjcydjMuMWMwIC4zOS4yMy43NC41Ni45Ljk4LjQ5IDEuODcgMS4xMiAyLjY3IDEuODUuMTguMTguNDMuMjguNy4yOC4yOCAwIC41My0uMTEuNzEtLjI5bDIuNDgtMi40OGMuMTgtLjE4LjI5LS40My4yOS0uNzFzLS4xMi0uNTItLjMtLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBob25lUGF1c2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgM2gtMnY3aDJWM3ptMyAxMi41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41N2ExLjAyIDEuMDIgMCAwIDAtMS4wMi4yNGwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTE5IDN2N2gyVjNoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvd2VyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNC40OVY5YzAtMS0xLjAxLTIuMDEtMi0yVjNoLTJ2NGgtNFYzSDh2Mi40OGw5LjUxIDkuNS40OS0uNDl6bS0xLjc2IDEuNzdMNy4yIDcuMmwtLjAxLjAxTDMuOTggNCAyLjcxIDUuMjVsMy4zNiAzLjM2QzYuMDQgOC43NCA2IDguODcgNiA5djUuNDhMOS41IDE4djNoNXYtM2wuNDgtLjQ4TDE5LjQ1IDIybDEuMjYtMS4yOC00LjQ3LTQuNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMDEgNyAxNiAzaC0ydjRoLTRWM0g4djRoLS4wMUM3IDYuOTkgNiA3Ljk5IDYgOC45OXY1LjQ5TDkuNSAxOHYzaDV2LTNsMy41LTMuNTF2LTUuNWMwLTEtMS0yLTEuOTktMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHJpb3JpdHlIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE5XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNoNHYxMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUnVubmluZ1dpdGhFcnJvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMHY4aC0ydi04aDJ6bS0yIDEwdjJoMnYtMmgtMnptLTItMi43MUE3Ljk5IDcuOTkgMCAwIDEgMTIgMjBjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTh2OWw3LjU1LTcuNTVBOS45NjUgOS45NjUgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMGMyLjI1IDAgNC4zMy0uNzQgNi0ydi0yLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZENhcmRBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0LjAyIDggNCAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS01IDE1aC0ydi0yaDJ2MnptMC00aC0yVjhoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQuMDIgOCA0IDIwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYgNmgtMlY0aDJ2NHptMyAwaC0yVjRoMnY0em0zIDBoLTJWNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpbUNhcmRBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNC4wMiA4IDQgMjBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY4aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU21zRmFpbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDEyaC0ydi0yaDJ2MnptMC00aC0yVjZoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNOSAxMUg3VjloMnYyem00IDBoLTJWOWgydjJ6bTQgMGgtMlY5aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3VwcG9ydEFnZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTIuMjJDMjEgNi43MyAxNi43NCAzIDEyIDNjLTQuNjkgMC05IDMuNjUtOSA5LjI4LS42LjM0LTEgLjk4LTEgMS43MnYyYzAgMS4xLjkgMiAyIDJoMXYtNi4xYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDdWMTloLTh2Mmg4YzEuMSAwIDItLjkgMi0ydi0xLjIyYy41OS0uMzEgMS0uOTIgMS0xLjY0di0yLjNjMC0uNy0uNDEtMS4zMS0xLTEuNjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMS4wM0E2LjA0IDYuMDQgMCAwIDAgMTIuMDUgNmMtMy4wMyAwLTYuMjkgMi41MS02LjAzIDYuNDVhOC4wNzUgOC4wNzUgMCAwIDAgNC44Ni01Ljg5YzEuMzEgMi42MyA0IDQuNDQgNy4xMiA0LjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTeW5jRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNi4zNVY0LjI2Yy0uOC4yMS0xLjU1LjU0LTIuMjMuOTZsMS40NiAxLjQ2Yy4yNS0uMTIuNS0uMjQuNzctLjMzem0tNy4xNC0uOTQgMi4zNiAyLjM2YTcuOTI1IDcuOTI1IDAgMCAwIDEuMTQgOS44N0w0IDIwaDZ2LTZsLTIuMjQgMi4yNEE2LjAwMyA2LjAwMyAwIDAgMSA2IDEyYzAtMSAuMjUtMS45NC42OC0yLjc3bDguMDggOC4wOGMtLjI1LjEzLS41LjI1LS43Ny4zNHYyLjA5Yy44LS4yMSAxLjU1LS41NCAyLjIzLS45NmwyLjM2IDIuMzYgMS4yNy0xLjI3TDQuMTQgNC4xNCAyLjg2IDUuNDF6TTIwIDRoLTZ2NmwyLjI0LTIuMjRBNi4wMDMgNi4wMDMgMCAwIDEgMTggMTJjMCAxLS4yNSAxLjk0LS42OCAyLjc3bDEuNDYgMS40NmE3LjkyNSA3LjkyNSAwIDAgMC0xLjE0LTkuODdMMjAgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3luY0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0LjI2djIuMDlDNy42NyA3LjE4IDYgOS4zOSA2IDEyYzAgMS43Ny43OCAzLjM0IDIgNC40NFYxNGgydjZINHYtMmgyLjczQTcuOTQyIDcuOTQyIDAgMCAxIDQgMTJjMC0zLjczIDIuNTUtNi44NSA2LTcuNzR6TTIwIDRoLTZ2NmgyVjcuNTZjMS4yMiAxLjEgMiAyLjY3IDIgNC40NGgyYzAtMi40LTEuMDYtNC41NC0yLjczLTZIMjBWNHptMCAxM3YtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTeW5jUHJvYmxlbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTJjMCAyLjIxLjkxIDQuMiAyLjM2IDUuNjRMMyAyMGg2di02bC0yLjI0IDIuMjRBNi4wMDMgNi4wMDMgMCAwIDEgNSAxMmE1Ljk5IDUuOTkgMCAwIDEgNC01LjY1VjQuMjZDNS41NSA1LjE1IDMgOC4yNyAzIDEyem04IDVoMnYtMmgtMnYyek0yMSA0aC02djZsMi4yNC0yLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDE5IDEyYTUuOTkgNS45OSAwIDAgMS00IDUuNjV2Mi4wOWMzLjQ1LS44OSA2LTQuMDEgNi03Ljc0IDAtMi4yMS0uOTEtNC4yLTIuMzYtNS42NEwyMSA0em0tMTAgOWgyVjdoLTJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3luYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRWMUw4IDVsNCA0VjZjMy4zMSAwIDYgMi42OSA2IDYgMCAxLjAxLS4yNSAxLjk3LS43IDIuOGwxLjQ2IDEuNDZBNy45MyA3LjkzIDAgMCAwIDIwIDEyYzAtNC40Mi0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNiAwLTEuMDEuMjUtMS45Ny43LTIuOEw1LjI0IDcuNzRBNy45MyA3LjkzIDAgMCAwIDQgMTJjMCA0LjQyIDMuNTggOCA4IDh2M2w0LTQtNC00djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN5c3RlbVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDE5SDdWNWgxMHYxNHptLTEtNmgtM1Y4aC0ydjVIOGw0IDQgNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYXBBbmRQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNnYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTAgNHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtOHYyYTkgOSAwIDAgMSA5IDloMmMwLTYuMDgtNC45Mi0xMS0xMS0xMXpNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjcuMzdjLjY5LjE2IDEuMzYuMzcgMiAuNjRWNWgxMHYxM2gtMy4wM2MuNTIgMS4yNS44NCAyLjU5Ljk1IDRIMTdjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGltZVRvTGVhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA1LjAxQzE4LjcyIDQuNDIgMTguMTYgNCAxNy41IDRoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDExdjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02LjUgMTVjLS44MyAwLTEuNS0uNjctMS41LTEuNVM1LjY3IDEyIDYuNSAxMnMxLjUuNjcgMS41IDEuNVM3LjMzIDE1IDYuNSAxNXptMTEgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTUgMTBsMS41LTQuNWgxMUwxOSAxMEg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUdk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMSAzLjU0IDEuNTMgMS41M0MxLjY1IDUuMjggMSA2LjA2IDEgN3YxMmMwIDEuMS45IDIgMiAyaDE1LjQ2bDIgMiAxLjI2LTEuMjdMMi4yNyAyLjI3IDEgMy41NHpNMyAxOVY3aDEuNDZsMTIgMTJIM3pNMjEgNWgtNy41OGwzLjI5LTMuM0wxNiAxbC00IDQtNC00LS43LjdMMTAuNTggNUg3LjUybDIgMkgyMXYxMS40OGwxLjY1IDEuNjVjLjIyLS4zMi4zNS0uNzEuMzUtMS4xM1Y3YzAtMS4xMS0uODktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpYnJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMTVoMlY5SDB2NnptMyAyaDJWN0gzdjEwem0xOS04djZoMlY5aC0yem0tMyA4aDJWN2gtMnYxMHpNMTYuNSAzaC05QzYuNjcgMyA2IDMuNjcgNiA0LjV2MTVjMCAuODMuNjcgMS41IDEuNSAxLjVoOWMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTE1YzAtLjgzLS42Ny0xLjUtMS41LTEuNXpNMTYgMTlIOFY1aDh2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpZGVvQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0zIDExLTItMS45OVYxM2MwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjdjMC0uNTUuNDUtMSAxLTFoNmMuNTUgMCAxIC40NSAxIDF2MS45OUwxNyA3djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZvaWNlQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINmwtMiAyVjRoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjI1IDVoMS41djEwaC0xLjV6TTguNSA3SDEwdjZIOC41ek02IDloMS41djJINnpNMTQgN2gxLjV2NkgxNHpNMTYuNSA5SDE4djJoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVnBuTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDR2LS41YTIuNSAyLjUgMCAwIDAtNSAwVjRjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xVjVjMC0uNTUtLjQ1LTEtMS0xem0tLjggMGgtMy40di0uNWMwLS45NC43Ni0xLjcgMS43LTEuN3MxLjcuNzYgMS43IDEuN1Y0em0tMi4yOCA4Yy4wNC4zMy4wOC42Ni4wOCAxIDAgMi4wOC0uOCAzLjk3LTIuMSA1LjM5LS4yNi0uODEtMS0xLjM5LTEuOS0xLjM5aC0xdi0zYzAtLjU1LS40NS0xLTEtMUg3di0yaDJjLjU1IDAgMS0uNDUgMS0xVjhoMmMxLjEgMCAyLS45IDItMlYzLjQ2Yy0uOTUtLjMtMS45NS0uNDYtMy0uNDZDNS40OCAzIDEgNy40OCAxIDEzczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLS4zNC0uMDItLjY3LS4wNS0xaC0yLjAzek0xMCAyMC45M2MtMy45NS0uNDktNy0zLjg1LTctNy45MyAwLS42Mi4wOC0xLjIxLjIxLTEuNzlMOCAxNnYxYzAgMS4xLjkgMiAyIDJ2MS45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNSAyMnYtNy41SDRWOWMwLTEuMS45LTIgMi0yaDNjMS4xIDAgMiAuOSAyIDJ2NS41SDkuNVYyMmgtNHpNMTggMjJ2LTZoM2wtMi41NC03LjYzQTIuMDEgMi4wMSAwIDAgMCAxNi41NiA3aC0uMTJhMiAyIDAgMCAwLTEuOSAxLjM3TDEyIDE2aDN2Nmgzek03LjUgNmMxLjExIDAgMi0uODkgMi0ycy0uODktMi0yLTItMiAuODktMiAyIC44OSAyIDIgMnptOSAwYzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaWZpT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAuMDFjMC0uMDEgMC0uMDEgMCAwTDAgMHYyNGgyNFYuMDF6TTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjk5IDlDMTkuMTUgNS4xNiAxMy44IDMuNzYgOC44NCA0Ljc4bDIuNTIgMi41MmMzLjQ3LS4xNyA2Ljk5IDEuMDUgOS42MyAzLjdsMi0yem0tNCA0YTkuNzkzIDkuNzkzIDAgMCAwLTQuNDktMi41NmwzLjUzIDMuNTMuOTYtLjk3ek0yIDMuMDUgNS4wNyA2LjFDMy42IDYuODIgMi4yMiA3Ljc4IDEgOWwxLjk5IDJjMS4yNC0xLjI0IDIuNjctMi4xNiA0LjItMi43N2wyLjI0IDIuMjRBOS42ODQgOS42ODQgMCAwIDAgNSAxM3YuMDFMNi45OSAxNWE3LjA0MiA3LjA0MiAwIDAgMSA0LjkyLTIuMDZMMTguOTggMjBsMS4yNy0xLjI2TDMuMjkgMS43OSAyIDMuMDV6TTkgMTdsMyAzIDMtM2E0LjIzNyA0LjIzNyAwIDAgMC02IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xIDkgMiAyYzQuOTctNC45NyAxMy4wMy00Ljk3IDE4IDBsMi0yQzE2LjkzIDIuOTMgNy4wOCAyLjkzIDEgOXptOCA4IDMgMyAzLTNhNC4yMzcgNC4yMzcgMCAwIDAtNiAwem0tNC00IDIgMmE3LjA3NCA3LjA3NCAwIDAgMSAxMCAwbDItMkMxNS4xNCA5LjE0IDguODcgOS4xNCA1IDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBY1VuaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMWgtNC4xN2wzLjI0LTMuMjQtMS40MS0xLjQyTDE1IDExaC0yVjlsNC42Ni00LjY2LTEuNDItMS40MUwxMyA2LjE3VjJoLTJ2NC4xN0w3Ljc2IDIuOTMgNi4zNCA0LjM0IDExIDl2Mkg5TDQuMzQgNi4zNCAyLjkzIDcuNzYgNi4xNyAxMUgydjJoNC4xN2wtMy4yNCAzLjI0IDEuNDEgMS40Mkw5IDEzaDJ2MmwtNC42NiA0LjY2IDEuNDIgMS40MUwxMSAxNy44M1YyMmgydi00LjE3bDMuMjQgMy4yNCAxLjQyLTEuNDFMMTMgMTV2LTJoMmw0LjY2IDQuNjYgMS40MS0xLjQyTDE3LjgzIDEzSDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBaXJwb3J0U2h1dHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDVIM2EyIDIgMCAwIDAtMiAydjloMmMwIDEuNjUgMS4zNCAzIDMgM3MzLTEuMzUgMy0zaDUuNWMwIDEuNjUgMS4zNCAzIDMgM3MzLTEuMzUgMy0zSDIzdi01bC02LTZ6TTMgMTFWN2g0djRIM3ptMyA2LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em03LTYuNUg5VjdoNHY0em00LjUgNi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNMTUgMTFWN2gxbDQgNGgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWxsSW5jbHVzaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC42IDYuNjJjLTEuNDQgMC0yLjguNTYtMy43NyAxLjUzTDEyIDEwLjY2IDEwLjQ4IDEyaC4wMUw3LjggMTQuMzljLS42NC42NC0xLjQ5Ljk5LTIuNC45OS0xLjg3IDAtMy4zOS0xLjUxLTMuMzktMy4zOFMzLjUzIDguNjIgNS40IDguNjJjLjkxIDAgMS43Ni4zNSAyLjQ0IDEuMDNsMS4xMyAxIDEuNTEtMS4zNEw5LjIyIDguMkE1LjM3IDUuMzcgMCAwIDAgNS40IDYuNjJDMi40MiA2LjYyIDAgOS4wNCAwIDEyczIuNDIgNS4zOCA1LjQgNS4zOGMxLjQ0IDAgMi44LS41NiAzLjc3LTEuNTNsMi44My0yLjUuMDEuMDFMMTMuNTIgMTJoLS4wMWwyLjY5LTIuMzljLjY0LS42NCAxLjQ5LS45OSAyLjQtLjk5IDEuODcgMCAzLjM5IDEuNTEgMy4zOSAzLjM4cy0xLjUyIDMuMzgtMy4zOSAzLjM4Yy0uOSAwLTEuNzYtLjM1LTIuNDQtMS4wM2wtMS4xNC0xLjAxLTEuNTEgMS4zNCAxLjI3IDEuMTJhNS4zODYgNS4zODYgMCAwIDAgMy44MiAxLjU3YzIuOTggMCA1LjQtMi40MSA1LjQtNS4zOHMtMi40Mi01LjM3LTUuNC01LjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBcGFydG1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMVYzSDd2NEgzdjE0aDh2LTRoMnY0aDhWMTFoLTR6TTcgMTlINXYtMmgydjJ6bTAtNEg1di0yaDJ2MnptMC00SDVWOWgydjJ6bTQgNEg5di0yaDJ2MnptMC00SDlWOWgydjJ6bTAtNEg5VjVoMnYyem00IDhoLTJ2LTJoMnYyem0wLTRoLTJWOWgydjJ6bTAtNGgtMlY1aDJ2MnptNCAxMmgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhYnlDaGFuZ2luZ1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA4djJoLTNMOC4zMSA4LjgyIDcgMTIuNzVWMjJIM1YxMmwxLjU4LTQuNjNBMi4wMDMgMi4wMDMgMCAwIDEgNy4zIDYuMThsNC4xNSAxLjgzTDE0IDh6TTggMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEgMThoMTJ2LTJIOXYyem0xMC41LTNjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTEzIDEyYzAtLjU1LS40NS0xLTEtMUg5djJoMnYxYzAgMS4xLjkgMiAyIDJoMmMxLjEgMCAyLS45IDItMnYtM2gtMnYyaC0ydi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWNrcGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDh2MTJjMCAxLjEtLjkgMi0yIDJINmMtMS4xIDAtMi0uOS0yLTJWOGMwLTEuODYgMS4yOC0zLjQxIDMtMy44NlYyaDN2Mmg0VjJoM3YyLjE0YzEuNzIuNDUgMyAyIDMgMy44NnpNNiAxMnYyaDEwdjJoMnYtNEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYWxjb255IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTB2Mkg4di0yaDJ6bTYgMnYtMmgtMnYyaDJ6bTUgMnY4SDN2LThoMXYtNGMwLTQuNDIgMy41OC04IDgtOHM4IDMuNTggOCA4djRoMXpNNyAxNkg1djRoMnYtNHptNCAwSDl2NGgydi00em0wLTExLjkyQzguMTYgNC41NiA2IDcuMDMgNiAxMHY0aDVWNC4wOHpNMTMgMTRoNXYtNGMwLTIuOTctMi4xNi01LjQ0LTUtNS45MlYxNHptMiAyaC0ydjRoMnYtNHptNCAwaC0ydjRoMnYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0aHR1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjdcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTNWNC44M0MyMCAzLjI3IDE4LjczIDIgMTcuMTcgMmMtLjc1IDAtMS40Ny4zLTIgLjgzbC0xLjI1IDEuMjVjLS4xNi0uMDUtLjMzLS4wOC0uNTEtLjA4LS40IDAtLjc3LjEyLTEuMDguMzJsMi43NiAyLjc2Yy4yLS4zMS4zMi0uNjguMzItMS4wOCAwLS4xOC0uMDMtLjM0LS4wNy0uNTFsMS4yNS0xLjI1YS44MjguODI4IDAgMCAxIDEuNDEuNTlWMTNoLTYuODVjLS4zLS4yMS0uNTctLjQ1LS44Mi0uNzJsLTEuNC0xLjU1Yy0uMTktLjIxLS40My0uMzgtLjY5LS41QTIuMjUxIDIuMjUxIDAgMCAwIDUgMTIuMjVWMTNIMnY2YzAgMS4xLjkgMiAyIDIgMCAuNTUuNDUgMSAxIDFoMTRjLjU1IDAgMS0uNDUgMS0xIDEuMSAwIDItLjkgMi0ydi02aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWFjaEFjY2VzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzLjEyNyAxNC41NiAxLjQzLTEuNDMgNi40NCA2LjQ0M0wxOS41NyAyMXptNC4yOTMtNS43MyAyLjg2LTIuODZjLTMuOTUtMy45NS0xMC4zNS0zLjk2LTE0LjMtLjAyIDMuOTMtMS4zIDguMzEtLjI1IDExLjQ0IDIuODh6TTUuOTUgNS45OGMtMy45NCAzLjk1LTMuOTMgMTAuMzUuMDIgMTQuM2wyLjg2LTIuODZDNS43IDE0LjI5IDQuNjUgOS45MSA1Ljk1IDUuOTh6bS4wMi0uMDItLjAxLjAxYy0uMzggMy4wMSAxLjE3IDYuODggNC4zIDEwLjAybDUuNzMtNS43M2MtMy4xMy0zLjEzLTcuMDEtNC42OC0xMC4wMi00LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlbnRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTFWNWg0YzEuMSAwIDIgLjkgMiAydjRoLTZ6bTQgOGMxLjEgMCAyLS45IDItMnYtNGgtNnY2aDR6TTE0IDV2MTRINGMtMS4xIDAtMi0uOS0yLTJWN2MwLTEuMS45LTIgMi0yaDEwem0tNC41IDdjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJ1bmdhbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyA0LjIgMTUuNWwxLjcgMS4wNkw3IDE0LjhWMjFoNHYtNWgydjVoNHYtNi4yMWwxLjEgMS43NyAxLjctMS4wNkwxMiAzem0xIDExaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQnVzaW5lc3NDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwem0xMCA1aDR2MmgtNHptMCAwaDR2MmgtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTZ2LTFIMy4wMUwzIDE5YzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0ydi00aC03djFoLTR6bTEwLTloLTQuMDFWNWwtMi0yaC00bC0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYzYzAgMS4xMS44OSAyIDIgMmg2di0yaDR2Mmg2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bS02IDBoLTRWNWg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhYmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMWMwIDEuNjYtMS4zNCAzLTMgMy0uNTUgMC0xIC40NS0xIDFINGMwLTEuNjYgMS4zNC0zIDMtMyAuNTUgMCAxLS40NSAxLTFoMnptMiAyTDYgNy41OFY2SDR2My4xMUwxIDExLjRsMS4yMSAxLjU5TDQgMTEuNjJWMjFoMTZ2LTkuMzhsMS43OSAxLjM2TDIzIDExLjQgMTIgM3ptMS45NCA0aC0zLjg5TDEyIDUuNTIgMTMuOTQgN3ptLTYuNSAyaDkuMTJMMTggMTAuMXYuOUg2di0uOUw3LjQ0IDl6TTE4IDEzdjJINnYtMmgxMnpNNiAxOXYtMmgxMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhcnBlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjczIDE0LjIzIDcgMS41IDMuMTEgNS4zOWw4LjEzIDExLjY3Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzbDEuNDEgMS40MWMuNzguNzggMi4wNS43OCAyLjgzIDBsNC4yNC00LjI0Yy43OS0uNzguNzktMi4wNS4wMS0yLjgzem0tNS42NiA1LjY1LTEuNDEtMS40MSA0LjI0LTQuMjQgMS40MSAxLjQxLTQuMjQgNC4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FzaW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHptMjEuMDIgMTljMCAxLjEtLjkgMi0yIDJoLTE0Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoMTRjMS4xIDAgMiAuOSAyIDJ2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek03LjUgMThjLS44MyAwLTEuNS0uNjctMS41LTEuNVM2LjY3IDE1IDcuNSAxNXMxLjUuNjcgMS41IDEuNVM4LjMzIDE4IDcuNSAxOHptMC05QzYuNjcgOSA2IDguMzMgNiA3LjVTNi42NyA2IDcuNSA2IDkgNi42NyA5IDcuNSA4LjMzIDkgNy41IDl6bTQuNSA0LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41em00LjUgNC41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptMC05Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTUuNjcgNiAxNi41IDZzMS41LjY3IDEuNSAxLjVTMTcuMzMgOSAxNi41IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYWxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDcuNSA3LjUgNy41LTEuNDEgMS40MUwxNSAxNS4zM1YyMGgtNHYtNUg5djVINXYtNC42N2wtMS4wOSAxLjA5TDIuNSAxNSAxMCA3LjV6bTEyLTFoLTEuMTlsLjc1LS43NS0uNzEtLjcxLTEuNDYgMS40NmgtLjg5di0uODlsMS40NS0xLjQ1LS43MS0uNzEtLjc0Ljc0VjNoLTF2MS4xOWwtLjc1LS43NS0uNzEuNzEgMS40NSAxLjQ1di45aC0uODlsLTEuNDUtMS40NS0uNzEuNzEuNzUuNzVIMTR2MWgxLjE5bC0uNzUuNzUuNzEuNzEgMS40NS0xLjQ1aC44OXYuODlsLTEuNDUgMS40NS43MS43MS43NS0uNzVWMTFoMVY5LjgxbC43NS43NS43MS0uNzEtMS40Ni0xLjQ2VjcuNWguODlsMS40NSAxLjQ1LjcxLS43MS0uNzQtLjc0SDIydi0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGFyZ2luZ1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC41IDExLTMgNnYtNGgtMmwzLTZ2NGgyek03IDFoMTBjMS4xIDAgMiAuOSAyIDJ2MThjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWM2MwLTEuMS45LTIgMi0yem0wIDV2MTJoMTBWNkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGVja3Jvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS42IDE4LjIgMTMgMTEuNzV2LS45MWEzLjQ5NiAzLjQ5NiAwIDAgMC0uMTgtNi43NUEzLjUxIDMuNTEgMCAwIDAgOC41IDcuNWgyYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41YzAgLjg0LS42OSAxLjUyLTEuNTMgMS41LS41NC0uMDEtLjk3LjQ1LS45Ny45OXYxLjc2TDIuNCAxOC4yYy0uNzcuNTgtLjM2IDEuOC42IDEuOGgxOGMuOTYgMCAxLjM3LTEuMjIuNi0xLjh6TTYgMThsNi00LjUgNiA0LjVINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hpbGRDYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNC41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjkuNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuOTQgMTIuNjZjLjA0LS4yMS4wNi0uNDMuMDYtLjY2cy0uMDItLjQ1LS4wNi0uNjZhNC4wMDggNC4wMDggMCAwIDAtMi44MS0zLjE3IDkuMTE0IDkuMTE0IDAgMCAwLTIuMTktMi45MUMxNi4zNiAzLjg1IDE0LjI4IDMgMTIgM3MtNC4zNi44NS01Ljk0IDIuMjZjLS45Mi44MS0xLjY3IDEuOC0yLjE5IDIuOTFhMy45OTQgMy45OTQgMCAwIDAtMi44MSAzLjE3Yy0uMDQuMjEtLjA2LjQzLS4wNi42NnMuMDIuNDUuMDYuNjZhNC4wMDggNC4wMDggMCAwIDAgMi44MSAzLjE3IDguOTc3IDguOTc3IDAgMCAwIDIuMTcgMi44OUM3LjYyIDIwLjE0IDkuNzEgMjEgMTIgMjFzNC4zOC0uODYgNS45Ny0yLjI4Yy45LS44IDEuNjUtMS43OSAyLjE3LTIuODlhMy45OTggMy45OTggMCAwIDAgMi44LTMuMTd6TTE5IDE0Yy0uMSAwLS4xOS0uMDItLjI5LS4wMy0uMi42Ny0uNDkgMS4yOS0uODYgMS44NkMxNi42IDE3Ljc0IDE0LjQ1IDE5IDEyIDE5cy00LjYtMS4yNi01Ljg1LTMuMTdjLS4zNy0uNTctLjY2LTEuMTktLjg2LTEuODYtLjEuMDEtLjE5LjAzLS4yOS4wMy0xLjEgMC0yLS45LTItMnMuOS0yIDItMmMuMSAwIC4xOS4wMi4yOS4wMy4yLS42Ny40OS0xLjI5Ljg2LTEuODZDNy40IDYuMjYgOS41NSA1IDEyIDVzNC42IDEuMjYgNS44NSAzLjE3Yy4zNy41Ny42NiAxLjE5Ljg2IDEuODYuMS0uMDEuMTktLjAzLjI5LS4wMyAxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJ6TTcuNSAxNGMuNzYgMS43NyAyLjQ5IDMgNC41IDNzMy43NC0xLjIzIDQuNS0zaC05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDaGlsZEZyaWVuZGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMnY4aDhjMC00LjQyLTMuNTgtOC04LTh6bTYuMzIgMTMuODlBNy45NDggNy45NDggMCAwIDAgMjEgMTFINi40NGwtLjk1LTJIMnYyaDIuMjJzMS44OSA0LjA3IDIuMTIgNC40MmMtMS4xLjU5LTEuODQgMS43NS0xLjg0IDMuMDhDNC41IDIwLjQzIDYuMDcgMjIgOCAyMmMxLjc2IDAgMy4yMi0xLjMgMy40Ni0zaDIuMDhjLjI0IDEuNyAxLjcgMyAzLjQ2IDMgMS45MyAwIDMuNS0xLjU3IDMuNS0zLjUgMC0xLjA0LS40Ni0xLjk3LTEuMTgtMi42MXpNOCAyMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzcuMTcgMTcgOCAxN3MxLjUuNjcgMS41IDEuNVM4LjgzIDIwIDggMjB6bTkgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjE3IDE3IDE3IDE3czEuNS42NyAxLjUgMS41UzE3LjgzIDIwIDE3IDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb3Jwb3JhdGVGYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN1YzSDJ2MThoMjBWN0gxMnptLTIgMTJINHYtMmg2djJ6bTAtNEg0di0yaDZ2MnptMC00SDRWOWg2djJ6bTAtNEg0VjVoNnYyem0xMCAxMmgtOFY5aDh2MTB6bS0yLThoLTR2Mmg0di0yem0wIDRoLTR2Mmg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb3R0YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyA2IDcuNThWNkg0djMuMTFMMSAxMS40bDEuMjEgMS41OUw0IDExLjYyVjIxaDd2LTZoMnY2aDd2LTkuMzhsMS43OSAxLjM2TDIzIDExLjQgMTIgM3ptLTItMmMwIDEuNjYtMS4zNCAzLTMgMy0uNTUgMC0xIC40NS0xIDFINGMwLTEuNjYgMS4zNC0zIDMtMyAuNTUgMCAxLS40NSAxLTFoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ291bnRlcnRvcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMFY3YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzaDJjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjNIOGMxLjEgMCAyLS45IDItMlY0SDR2NGMwIDEuMS45IDIgMiAySDJ2MmgydjhoMTZ2LThoMnYtMmgtNHptLTUgOGgtMnYtNmgydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENyaWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5aC02VjRIOEM1Ljc5IDQgNCA1Ljc5IDQgOHY2YzAgMS4xLjkgMiAyIDJoMnYyLjkzYy0uNjEtLjM1LTEuMTYtLjc4LTEuNjUtMS4yN2wtMS40MiAxLjQyQzYuNzQgMjAuODggOS4yNCAyMiAxMiAyMmMyLjc2IDAgNS4yNi0xLjEyIDcuMDctMi45M2wtMS40Mi0xLjQyYy0uNDkuNDktMS4wNS45Mi0xLjY1IDEuMjdWMTZoMmMxLjEgMCAyLS45IDItMnYtM2MwLTEuMS0uOS0yLTItMnptLTQgMTAuNzVjLS42NC4xNi0xLjMxLjI1LTIgLjI1cy0xLjM2LS4wOS0yLS4yNVYxNmg0djMuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDZ2MTJoMlY4aDEwdjEwaDJ2LTJoNHYyaDJWNkgyem0xOCAydjJoLTRWOGg0em0tNCA2di0yaDR2MmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9Ob3RTdGVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMS4zOSA0LjIyIDcuOSA3LjljLjE4LjIuMTguNS0uMDEuN2EuNDg1LjQ4NSAwIDAgMS0uNyAwTDYuODcgMTEuMWMtLjExLjQtLjI2Ljc4LS40NSAxLjEybDEuNCAxLjRjLjIuMi4yLjUxIDAgLjcxYS40ODUuNDg1IDAgMCAxLS43IDBsLTEuMjctMS4yN2MtLjI0LjI5LS41LjU2LS43Ny44bDEuMjggMS4yOGMuMi4yLjIuNTEgMCAuNzEtLjEuMS0uMjMuMTUtLjM2LjE1cy0uMjYtLjA1LS4zNS0uMTVsLTEuMzgtMS4zOGMtLjY5LjQ2LTEuMzkuNzktMS45NyAxLjAyLS43OC4zMS0xLjMgMS4wNC0xLjMgMS44OFYyMGg5LjVsMy4zMy0zLjMzIDUuOTQgNS45NCAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnptMTcuMTIgMTEuNDYtMS40MS0xLjQxIDQuNDgtNC40OEwyMyAxMS4ybC00LjQ5IDQuNDh6bTIuMzctNi42LTQuNDggNC40OC03LjEtNy4wOUwxMy44IDJsNy4wOCA3LjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb05vdFRvdWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgMTAuMTctMi41LTIuNVYyLjI1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMHY3Ljkyem03IDIuNTh2LTcuNWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTFoLTFWMy4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDB2Ny45Mmw2IDZ2LTQuNDJ6TTkuNSA0LjI1QzkuNSAzLjU2IDguOTQgMyA4LjI1IDNjLS42NyAwLTEuMi41My0xLjI0IDEuMThMOS41IDYuNjdWNC4yNXptMy41IDUuOTItMi41LTIuNVYyLjI1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMHY3Ljkyem03IDIuNTh2LTcuNWExLjI1IDEuMjUgMCAwIDAtMi41IDBWMTFoLTFWMy4yNWExLjI1IDEuMjUgMCAwIDAtMi41IDB2Ny45Mmw2IDZ2LTQuNDJ6TTkuNSA0LjI1QzkuNSAzLjU2IDguOTQgMyA4LjI1IDNjLS42NyAwLTEuMi41My0xLjI0IDEuMThMOS41IDYuNjdWNC4yNXptMTEuNjkgMTYuOTRMMi44MSAyLjgxIDEuMzkgNC4yMmw1LjYzIDUuNjNMNyA5LjgzdjQuM2MtMS4xMS0uNjQtMi41OC0xLjQ3LTIuNi0xLjQ4LS4xNy0uMDktLjM0LS4xNC0uNTQtLjE0LS4yNiAwLS41LjA5LS43LjI2LS4wNC4wMS0xLjE2IDEuMTEtMS4xNiAxLjExbDYuOCA3LjE4Yy41Ny42IDEuMzUuOTQgMi4xOC45NEgxN2MuNjIgMCAxLjE4LS4xOSAxLjY1LS41MmwtLjAyLS4wMiAxLjE1IDEuMTUgMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS42NSA0Ljg2LS4wNy0uMDdjLS41Ny0uNjItLjgyLTEuNDEtLjY3LTIuMkwxNSAyaC0xLjg5bC0uMDYuNDNjLS4yIDEuMzYuMjcgMi43MSAxLjMgMy43MmwuMDcuMDZjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxem00IDAtLjA3LS4wN2MtLjU3LS42Mi0uODItMS40MS0uNjctMi4yTDE5IDJoLTEuODlsLS4wNi40M2MtLjIgMS4zNi4yNyAyLjcxIDEuMyAzLjcybC4wNy4wNmMuNTcuNjIuODIgMS40MS42NyAyLjJsLS4xMS41OWgxLjkxbC4wNi0uNDNjLjIxLTEuMzYtLjI3LTIuNzEtMS4zLTMuNzF6TTkuMTIgNWwtNy4xOCA2Ljc5Yy0uNi41Ni0uOTQgMS4zNS0uOTQgMi4xOFYyMGMwIDEuNjYgMS4zNCAzIDMgM2gxMy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNy43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoOC43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIMTJ2LTFoNi43NWExLjI1IDEuMjUgMCAwIDAgMC0yLjVIOC44NmMuNjQtMS4xMSAxLjQ4LTIuNTggMS40OS0yLjYxYTEuMDY1IDEuMDY1IDAgMCAwLS4xMi0xLjIzQzEwLjIyIDYuMTIgOS4xMiA1IDkuMTIgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRWxldmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNOC41IDZhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNXptMi41IDhoLTF2NEg3di00SDZ2LTIuNWMwLTEuMS45LTIgMi0yaDFjMS4xIDAgMiAuOSAyIDJWMTR6bTQuNSAzTDEzIDEzaDVsLTIuNSA0ek0xMyAxMWwyLjUtNCAyLjUgNGgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRXNjYWxhdG9yV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41UzE3LjgzIDggMTcgOHMtMS41LjY3LTEuNSAxLjV6bTMgMi41aC0yLjg0Yy0uNTguMDEtMS4xNC4zMi0xLjQ1Ljg2bC0uOTIgMS4zMkw5LjcyIDhhMi4wMiAyLjAyIDAgMCAwLTEuNzEtMUg1Yy0xLjEgMC0yIC45LTIgMnY2aDEuNXY3aDVWMTEuNjFMMTIuMDMgMTZoMi4ybC43Ny0xLjFWMjJoNHYtNWgxdi0zLjVjMC0uODItLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFc2NhbGF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgNmgtMS43bC01IDlIN2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzYuMTcgMTUgNyAxNWgxLjdsNS05SDE3Yy44MyAwIDEuNS42NyAxLjUgMS41UzE3LjgzIDkgMTcgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFtaWx5UmVzdHJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNCAxOHYtNmgyLjVsLTIuNTQtNy42M0EyLjAxIDIuMDEgMCAwIDAgMTguMDYgN2gtLjEyYTIgMiAwIDAgMC0xLjkgMS4zN2wtLjg2IDIuNThjMS4wOC42IDEuODIgMS43MyAxLjgyIDMuMDV2OGgzem0tNy41LTEwLjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjVTMTEgOS4xNyAxMSAxMHMuNjcgMS41IDEuNSAxLjV6TTUuNSA2YzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyem0yIDE2di03SDlWOWMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnY2aDEuNXY3aDR6bTYuNSAwdi00aDF2LTRjMC0uODItLjY4LTEuNS0xLjUtMS41aC0yYy0uODIgMC0xLjUuNjgtMS41IDEuNXY0aDF2NGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEydi0yaC0yVjdsLTMtMy0yIDItMi0yLTIgMi0yLTItMyAzdjNIM3YyaDJ2MkgzdjJoMnY0aDE0di00aDJ2LTJoLTJ2LTJoMnptLTUtNS4xNyAxIDFWMTBoLTJWNy44M2wuNDEtLjQxLjU5LS41OXptLTQgMCAuNTkuNTkuNDEuNDFWMTBoLTJWNy44M2wuNDEtLjQxLjU5LS41OXpNMTEgMTR2LTJoMnYyaC0yem0yIDJ2MmgtMnYtMmgyek03IDcuODNsMS0xIC41OS41OS40MS40MVYxMEg3VjcuODN6TTcgMTJoMnYySDd2LTJ6bTAgNGgydjJIN3YtMnptMTAgMmgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpcmVFeHRpbmd1aXNoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE5aDEwdjFjMCAxLjEtLjkgMi0yIDJIOWMtMS4xIDAtMi0uOS0yLTJ2LTF6bTAtMWgxMHYtNUg3djV6TTE3IDN2NmwtMy4xNS0uNjZjLS4wMSAwLS4wMS4wMS0uMDIuMDIgMS41NS42MiAyLjcyIDEuOTggMy4wNyAzLjY0SDcuMWMuMzQtMS42NiAxLjUyLTMuMDIgMy4wNy0zLjY0LS4zMy0uMjYtLjYtLjU4LS44LS45NUw1IDYuNXYtMWw0LjM3LS45MUM5Ljg3IDMuNjUgMTAuODYgMyAxMiAzYy43IDAgMS4zNC4yNSAxLjg1LjY2TDE3IDN6bS00IDNjLS4wMy0uNTktLjQ1LTEtMS0xcy0xIC40NS0xIDEgLjQ1IDEgMSAxIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRml0bmVzc0NlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjU3IDE0Ljg2IDIyIDEzLjQzIDIwLjU3IDEyIDE3IDE1LjU3IDguNDMgNyAxMiAzLjQzIDEwLjU3IDIgOS4xNCAzLjQzIDcuNzEgMiA1LjU3IDQuMTQgNC4xNCAyLjcxIDIuNzEgNC4xNGwxLjQzIDEuNDNMMiA3LjcxbDEuNDMgMS40M0wyIDEwLjU3IDMuNDMgMTIgNyA4LjQzIDE1LjU3IDE3IDEyIDIwLjU3IDEzLjQzIDIybDEuNDMtMS40M0wxNi4yOSAyMmwyLjE0LTIuMTQgMS40MyAxLjQzIDEuNDMtMS40My0xLjQzLTEuNDNMMjIgMTYuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZvb2RCYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyA0IDl2MTJoMTZWOWwtOC02em0uNSA5LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41djRoLTF2LTRjLS44MyAwLTEuNS0uNjctMS41LTEuNXYtM2gxdjNoLjV2LTNoMXYzaC41di0zaDF2M3pNMTUgMThoLTF2LTMuNWgtMXYtM2MwLTEuMS45LTIgMi0yVjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb3VuZGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoM0wxMiAzIDIgMTJoM3YzSDN2MmgydjNoMnYtM2g0djNoMnYtM2g0djNoMnYtM2gydi0yaC0ydi0zek03IDE1di00LjgxbDQtMy42VjE1SDd6bTYgMFY2LjU5bDQgMy42VjE1aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGcmVlQnJlYWtmYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAzSDR2MTBjMCAyLjIxIDEuNzkgNCA0IDRoNmMyLjIxIDAgNC0xLjc5IDQtNHYtM2gyYTIgMiAwIDAgMCAyLTJWNWMwLTEuMTEtLjg5LTItMi0yem0wIDVoLTJWNWgydjN6TTQgMTloMTZ2Mkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNkg5VjRIN3YySDZsLTQgNHY5aDIwdi05bC00LTR6TTQgMTJoMTB2NUg0di01em0xNiA1aC00di02LjE3bDItMiAyIDJWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdvbGZDb3Vyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTkuNVwiLFwiY3lcIjpcIjE5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1LjkyIDkgMnYxOEg3di0xLjczYy0xLjc5LjM1LTMgLjk5LTMgMS43MyAwIDEuMSAyLjY5IDIgNiAyczYtLjkgNi0yYzAtLjk5LTIuMTYtMS44MS01LTEuOTdWOC45OGw2LTMuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdyYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjBIMnYtMmg1Ljc1QTguMDMyIDguMDMyIDAgMCAwIDIgMTIuMjZjLjY0LS4xNiAxLjMxLS4yNiAyLS4yNiA0LjQyIDAgOCAzLjU4IDggOHptMTAtNy43NGMtLjY0LS4xNi0xLjMxLS4yNi0yLS4yNi0yLjkzIDAtNS40OCAxLjU4LTYuODggMy45M2E5LjgyIDkuODIgMCAwIDEgLjg3IDQuMDdoOHYtMmgtNS43NUE4LjA2MSA4LjA2MSAwIDAgMSAyMiAxMi4yNnptLTYuMzYtMS4yNGExMC4wMyAxMC4wMyAwIDAgMSA0LjA5LTVDMTUuNDQgNi4xNiAxMiA5LjY3IDEyIDE0di4wMmMuOTUtMS4yNyAyLjItMi4zIDMuNjQtM3ptLTQuMjItMi4xN0E4LjUyNyA4LjUyNyAwIDAgMCA2LjcgNEM4LjE0IDUuODYgOSA4LjE4IDkgMTAuNzFjMCAuMjEtLjAzLjQxLS4wNC42MS40My4yNC44My41MiAxLjIyLjgyYTkuOTEgOS45MSAwIDAgMSAxLjI0LTMuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvbGlkYXlWaWxsYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMjBWOC4zNUwxMy42NSA0aC0yLjgzTDE2IDkuMThWMjBoMnptNCAwVjYuNjlMMTkuMzEgNGgtMi44M0wyMCA3LjUyVjIwaDJ6TTggNGwtNiA2djEwaDV2LTVoMnY1aDVWMTBMOCA0em0xIDlIN3YtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdFR1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiN1wiLFwiY3lcIjpcIjZcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMTUgMTJjLS4zMS0uMjItLjU5LS40Ni0uODItLjcybC0xLjQtMS41NWMtLjE5LS4yMS0uNDMtLjM4LS42OS0uNS0uMjktLjE0LS42Mi0uMjMtLjk2LS4yM2gtLjAzQzYuMDEgOSA1IDEwLjAxIDUgMTEuMjVWMTJIMnY4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LThIMTEuMTV6TTcgMjBINXYtNmgydjZ6bTQgMEg5di02aDJ2NnptNCAwaC0ydi02aDJ2NnptNCAwaC0ydi02aDJ2NnptLS4zNS0xNC4xNC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTggM2gtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2Yy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MXptLTQgMC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTQgM2gtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2Yy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSG91c2VTaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMmgzTDEyIDMgMiAxMmgzdjhoMnYtMmgxMHYyaDJ2LTh6TTcuMjEgMTBoOS41OGwuMjEuMTlWMTJIN3YtMS44MWwuMjEtLjE5em03LjM2LTJIOS40M0wxMiA1LjY5IDE0LjU3IDh6TTcgMTZ2LTJoMTB2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDkuM1Y0aC0zdjIuNkwxMiAzIDIgMTJoM3Y4aDV2LTZoNHY2aDV2LThoM2wtMy0yLjd6bS05IC43YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEhvdXNlYm9hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE2Yy0xLjk1IDAtMi4xIDEtMy4zNCAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxdjJjMS45IDAgMi4xNy0xIDMuMzUtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOC0xIDMuMzItMXMxLjM3IDEgMy4zMiAxYzEuOTEgMCAyLjE0LTEgMy4zMy0xIDEuMTggMCAxLjQ1IDEgMy4zNSAxdi0yYy0xLjI0IDAtMS4zOC0xLTMuMzMtMS0xLjkxIDAtMi4xNCAxLTMuMzMgMS0xLjI0IDAtMS4zOS0xLTMuMzQtMXptOC4zNC00LjY2LTEuMzcgMS4zN2MtLjE5LjE4LS40NS4yOS0uNzEuMjlIMTdWOS42NWwxLjMyLjk3TDE5LjUgOSAxMiAzLjUgNC41IDlsMS4xOCAxLjYxTDcgOS42NVYxM0g1Ljc0Yy0uMjcgMC0uNTItLjExLS43MS0uMjlsLTEuMzctMS4zNy0xLjQxIDEuNDEgMS4zNyAxLjM3Yy41Ni41NiAxLjMzLjg4IDIuMTIuODhoMTIuNTFjLjggMCAxLjU2LS4zMiAyLjEyLS44OGwxLjM3LTEuMzctMS40LTEuNDF6TTEzIDEzaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSXJvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZjLTEuNjYgMC0zIDEuMzQtMyAzdjRjMCAuNTUtLjQ1IDEtMSAxdi00YzAtMS42Ni0xLjM0LTMtMy0zaC00Yy0xLjY2IDAtMyAxLjM0LTMgM2gyYzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjFINmMtMi4yMSAwLTQgMS43OS00IDR2M2gxNXYtMmMxLjY2IDAgMy0xLjM0IDMtM1Y5YzAtLjU1LjQ1LTEgMS0xaDFWNmgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2l0Y2hlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDlWNGMwLTEuMS0uOS0yLTItMkg2Yy0xLjEgMC0yIC45LTIgMnY1aDE2ek04IDVoMnYzSDhWNXptLTQgNnY5YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTlINHptNiA2SDh2LTVoMnY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNZWV0aW5nUm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNnYxNUgzdi0yaDJWM2g5djFoNXYxNWgydjJoLTRWNmgtM3ptLTQgNXYyaDJ2LTJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1pY3Jvd2F2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOCAxMC42MSA1LjM3IDkuMTlDNS43MyA4Ljc5IDYuNTkgOCA3Ljc1IDhjLjggMCAxLjM5LjM5IDEuODEuNjcuMzEuMjEuNTEuMzMuNjkuMzMuMzcgMCAuOC0uNDEuOTUtLjYxbDEuNDIgMS40MmMtLjM2LjQtMS4yMiAxLjE5LTIuMzcgMS4xOS0uNzkgMC0xLjM3LS4zOC0xLjc5LS42Ni0uMzMtLjIyLS41Mi0uMzQtLjcxLS4zNC0uMzcgMC0uOC40MS0uOTUuNjF6TTcuNzUgMTVjLjE5IDAgLjM4LjEyLjcxLjM0LjQyLjI4IDEgLjY2IDEuNzkuNjYgMS4xNiAwIDIuMDEtLjc5IDIuMzctMS4xOWwtMS40Mi0xLjQyYy0uMTUuMi0uNTkuNjEtLjk1LjYxLS4xOCAwLS4zOC0uMTItLjY5LS4zMy0uNDItLjI4LTEuMDEtLjY3LTEuODEtLjY3LTEuMTYgMC0yLjAyLjc5LTIuMzggMS4xOWwxLjQyIDEuNDJjLjE2LS4yLjU5LS42MS45Ni0uNjF6TTIyIDZ2MTJjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDE2YzEuMSAwIDIgLjkgMiAyem0tOCAwSDR2MTJoMTBWNnptNSAxMGMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMSAuNDUgMSAxIDEgMS0uNDUgMS0xem0wLTRjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDEgLjQ1IDEgMSAxIDEtLjQ1IDEtMXptMC01aC0ydjJoMlY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROaWdodFNoZWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bS0yLjI1IDkuNWExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41ek0xNyAxOGgtMXYtMS41SDhWMThIN3YtN2gxdjQuNWgzLjVWMTJIMTVjMS4xIDAgMiAuOSAyIDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9CYWNrcGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsMi43NiAyLjc2QzQuMDYgNy4zMSA0IDcuNjQgNCA4djEyYzAgMS4xLjkgMiAyIDJoMTJjLjM0IDAgLjY1LS4wOS45My0uMjRsLjg1Ljg1IDEuNDEtMS40MnpNNiAxNHYtMmgzLjE3bDIgMkg2em04LjgzLTJMNi45OCA0LjE1Yy4wMSAwIC4wMS0uMDEuMDItLjAxVjJoM3YyaDRWMmgzdjIuMTRjMS43Mi40NSAzIDIgMyAzLjg2djkuMTdsLTItMlYxMmgtMy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9DZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOC44MyA2LTMuNy0zLjdDNS40MiAxLjU1IDYuMTUgMSA3IDFsMTAgLjAxYzEuMSAwIDIgLjg5IDIgMS45OXYxMy4xN2wtMi0yVjZIOC44M3ptMTAuOTUgMTYuNjEtLjkxLS45MWMtLjI5Ljc1LTEuMDIgMS4zLTEuODcgMS4zSDdjLTEuMSAwLTItLjktMi0yVjcuODNMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyek0xNS4xNyAxOCA3IDkuODNWMThoOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9Ecmlua3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjgzIDNIMjF2MmwtNi4yIDYuOTdMOS44MyA3aDYuNzRsMS43OC0ySDcuODNsLTItMnptMTMuOTUgMTkuNjFMMTggMjAuODNWMjFINnYtMmg1di01bC0xLjM3LTEuNTQtOC4yNC04LjI0TDIuOCAyLjgxIDMgM2wxOC4xOSAxOC4xOS0xLjQxIDEuNDJ6TTE2LjE3IDE5IDEzIDE1LjgzVjE5aDMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vRmxhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45MyAxMy45MyAyLjQ1IDIuNDUgMS4wNCAzLjg3bDUuMyA1LjMtLjIuMjNIMy42Yy0uODggMC0xLjYuNzItMS42IDEuNnY5LjRjMCAuODguNzIgMS42IDEuNiAxLjZoMTIuOGMuNzUgMCAxLjM4LS41MiAxLjU1LTEuMjJsMi4xOCAyLjE4IDEuNDEtMS40MUwxOCAxOGwtNC4wNy00LjA3ek0xMCAyMGMtMi4yMSAwLTQtMS43OS00LTQgMC0xLjk1IDEuNC0zLjU3IDMuMjUtMy45MmwxLjU3IDEuNTdjLS4yNi0uMDktLjUzLS4xNS0uODItLjE1YTIuNSAyLjUgMCAwIDAgMCA1IDIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLS4yOS0uMDYtLjU2LS4xNS0uODJsMS41NyAxLjU3QTMuOTkzIDMuOTkzIDAgMCAxIDEwIDIwem04LTQuODNMMTAuODMgOGgxLjc1bDEuMjggMS40aDIuNTRjLjg4IDAgMS42LjcyIDEuNiAxLjZ2NC4xN3ptMi40LTkuNTdIMjJMMTkgMTFWN2gtMVYyaDRsLTEuNiAzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vRm9vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjM1IDguNTIgMTEgNWg1VjFoMnY0aDVsLTEuMzggMTMuNzlMMTEuMzUgOC41MnpNMSAyMXYxYzAgLjU1LjQ1IDEgMSAxaDEzYy41NSAwIDEtLjQ1IDEtMXYtMUgxem0yMC45LjlMMi4xIDIuMS42OSAzLjUxbDUuNyA1LjdDMy4yOCA5Ljg3IDEgMTEuOTkgMSAxNWgxMS4xN2wyIDJIMXYyaDE1di0uMTdsNC40OSA0LjQ5IDEuNDEtMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9NZWV0aW5nUm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFoLTF2Mmgydi0xbDkuNzMgOS43M0wyMC40NiAyMyAxNCAxNi41NFYyMUgzdi0yaDJWNy41NGwtNC00IDEuMjctMS4yN0wxMSAxMXptMyAuNDlMNS41MSAzSDE0djFoNXYxMi40OWwtMi0yVjZoLTN2NS40OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9QaG90b2dyYXBoeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjk0IDguMTIgNy40OCA0LjY2IDkgM2g2bDEuODMgMkgyMGMxLjEgMCAyIC45IDIgMnYxMmMwIC4wNS0uMDEuMS0uMDIuMTZsLTUuMS01LjFjLjA4LS4zNS4xMi0uNy4xMi0xLjA2IDAtMi43Ni0yLjI0LTUtNS01LS4zNiAwLS43MS4wNC0xLjA2LjEyem05LjU1IDE1LjE5TDE4LjE3IDIxSDRjLTEuMSAwLTItLjktMi0yVjdjMC0uNTkuMjctMS4xMi42OC0xLjQ5bC0yLTJMMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxem0tNi01Ljk5LTEuNS0xLjVjLS4zMi4xLS42NC4xOC0uOTkuMTgtMS42NiAwLTMtMS4zNC0zLTMgMC0uMzUuMDgtLjY3LjE5LS45OGwtMS41LTEuNUE0Ljc0IDQuNzQgMCAwIDAgNyAxM2MwIDIuNzYgMi4yNCA1IDUgNSAuOTEgMCAxLjc2LS4yNSAyLjQ5LS42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm9TdHJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMThjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yek0xOC42NSAzYy0xLjY2IDAtMi41NCAxLjI3LTMuMTggMi4wM2wtMy41IDQuMTFMMTcgMTQuMTd2LTcuOWMuNTgtLjY4Ljk3LTEuMjcgMS42NS0xLjI3Ljc3IDAgMS4zNS42NiAxLjM1IDEuNDhWN2gydi0uNTJDMjIgNC41NiAyMC41MiAzIDE4LjY1IDN6bS03Ljk4IDcuNjdMMi44MSAyLjgxIDEuMzkgNC4yMmw3Ljk3IDcuOTctMi42NiAzLjEyYy0uNTUuNjUtLjA5IDEuNjUuNzYgMS42NWg2LjY2bDEuMTcgMS4xN0MxNC41NCAxOC40MiAxNCAxOS4xNCAxNCAyMGMwIDEuMS45IDIgMiAyIC44NiAwIDEuNTgtLjU0IDEuODctMS4zbDEuOTEgMS45MSAxLjQxLTEuNDEtNC44LTQuOC01LjcyLTUuNzN6bTIuOC01LjY0Yy4yNy0uMzIuNTgtLjcyLjk4LTEuMDlhOS4zNDcgOS4zNDcgMCAwIDAtNy44MS0uMTNsNC4yNSA0LjI1IDIuNTgtMy4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3RoZXJIb3VzZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDEgMTEuNGwxLjIxIDEuNTlMNCAxMS42MlYyMWgxNnYtOS4zOGwxLjc5IDEuMzZMMjMgMTEuNCAxMiAzek04IDE1Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTQgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem00IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9vbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDIxYy0xLjExIDAtMS43My0uMzctMi4xOC0uNjQtLjM3LS4yMi0uNi0uMzYtMS4xNS0uMzYtLjU2IDAtLjc4LjEzLTEuMTUuMzYtLjQ2LjI3LTEuMDcuNjQtMi4xOC42NHMtMS43My0uMzctMi4xOC0uNjRjLS4zNy0uMjItLjYtLjM2LTEuMTUtLjM2LS41NiAwLS43OC4xMy0xLjE1LjM2LS40Ni4yNy0xLjA4LjY0LTIuMTkuNjQtMS4xMSAwLTEuNzMtLjM3LTIuMTgtLjY0LS4zNy0uMjMtLjYtLjM2LTEuMTUtLjM2cy0uNzguMTMtMS4xNS4zNmMtLjQ2LjI3LTEuMDguNjQtMi4xOS42NHYtMmMuNTYgMCAuNzgtLjEzIDEuMTUtLjM2LjQ2LS4yNyAxLjA4LS42NCAyLjE5LS42NHMxLjczLjM3IDIuMTguNjRjLjM3LjIzLjU5LjM2IDEuMTUuMzYuNTYgMCAuNzgtLjEzIDEuMTUtLjM2LjQ2LS4yNyAxLjA4LS42NCAyLjE5LS42NCAxLjExIDAgMS43My4zNyAyLjE4LjY0LjM3LjIyLjYuMzYgMS4xNS4zNnMuNzgtLjEzIDEuMTUtLjM2Yy40NS0uMjcgMS4wNy0uNjQgMi4xOC0uNjRzMS43My4zNyAyLjE4LjY0Yy4zNy4yMy41OS4zNiAxLjE1LjM2djJ6bTAtNC41Yy0xLjExIDAtMS43My0uMzctMi4xOC0uNjQtLjM3LS4yMi0uNi0uMzYtMS4xNS0uMzYtLjU2IDAtLjc4LjEzLTEuMTUuMzYtLjQ1LjI3LTEuMDcuNjQtMi4xOC42NHMtMS43My0uMzctMi4xOC0uNjRjLS4zNy0uMjItLjYtLjM2LTEuMTUtLjM2LS41NiAwLS43OC4xMy0xLjE1LjM2LS40NS4yNy0xLjA3LjY0LTIuMTguNjRzLTEuNzMtLjM3LTIuMTgtLjY0Yy0uMzctLjIyLS42LS4zNi0xLjE1LS4zNnMtLjc4LjEzLTEuMTUuMzZjLS40Ny4yNy0xLjA5LjY0LTIuMi42NHYtMmMuNTYgMCAuNzgtLjEzIDEuMTUtLjM2LjQ1LS4yNyAxLjA3LS42NCAyLjE4LS42NHMxLjczLjM3IDIuMTguNjRjLjM3LjIyLjYuMzYgMS4xNS4zNi41NiAwIC43OC0uMTMgMS4xNS0uMzYuNDUtLjI3IDEuMDctLjY0IDIuMTgtLjY0czEuNzMuMzcgMi4xOC42NGMuMzcuMjIuNi4zNiAxLjE1LjM2cy43OC0uMTMgMS4xNS0uMzZjLjQ1LS4yNyAxLjA3LS42NCAyLjE4LS42NHMxLjczLjM3IDIuMTguNjRjLjM3LjIyLjYuMzYgMS4xNS4zNnYyek04LjY3IDEyYy41NiAwIC43OC0uMTMgMS4xNS0uMzYuNDYtLjI3IDEuMDgtLjY0IDIuMTktLjY0IDEuMTEgMCAxLjczLjM3IDIuMTguNjQuMzcuMjIuNi4zNiAxLjE1LjM2cy43OC0uMTMgMS4xNS0uMzZjLjEyLS4wNy4yNi0uMTUuNDEtLjIzTDEwLjQ4IDVDOC45MyAzLjQ1IDcuNSAyLjk5IDUgM3YyLjVjMS44Mi0uMDEgMi44OS4zOSA0IDEuNWwxIDEtMy4yNSAzLjI1Yy4zMS4xMi41Ni4yNy43Ny4zOS4zNy4yMy41OS4zNiAxLjE1LjM2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSaWNlQm93bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyYzAgMy42OSAyLjQ3IDYuODYgNiA4LjI1VjIyaDh2LTEuNzVjMy41My0xLjM5IDYtNC41NiA2LTguMjV6bS0yIDBoLTRWNS4wOGMyLjM5IDEuMzkgNCAzLjk3IDQgNi45MnptLTYtNy43NFYxMmgtNFY0LjI2Yy42NC0uMTYgMS4zMS0uMjYgMi0uMjZzMS4zNi4xIDIgLjI2ek00IDEyYzAtMi45NSAxLjYxLTUuNTMgNC02LjkyVjEySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJvb2ZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxOGgtMnYtMmgydjJ6bTItNEg5djZoNnYtNnptNC00LjdWNGgtM3YyLjZMMTIgMyAyIDEyaDNsNy02LjMxTDE5IDEyaDNsLTMtMi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb29tUHJlZmVyZW5jZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMS4yNlY2aDN2NGgyVjRoLTVWM0g1djE2SDN2Mmg5LjI2QTYuOTYzIDYuOTYzIDAgMCAxIDExIDE3YzAtMi4zOCAxLjE5LTQuNDcgMy01Ljc0ek0xMCAxMWgydjJoLTJ2LTJ6bTExLjY5IDUuMzcgMS4xNC0xLTEtMS43My0xLjQ1LjQ5Yy0uMzItLjI3LS42OC0uNDgtMS4wOC0uNjNMMTkgMTJoLTJsLS4zIDEuNDljLS40LjE1LS43Ni4zNi0xLjA4LjYzbC0xLjQ1LS40OS0xIDEuNzMgMS4xNCAxYy0uMDguNS0uMDguNzYgMCAxLjI2bC0xLjE0IDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE3IDIyaDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMWMuMDgtLjUxLjA4LS43NyAwLTEuMjd6TTE4IDE5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUm9vbVNlcnZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTdoMjB2Mkgyem0xMS44NC05LjIxQTIuMDA2IDIuMDA2IDAgMCAwIDEyIDVhMi4wMDYgMi4wMDYgMCAwIDAtMS44NCAyLjc5QzYuMjUgOC42IDMuMjcgMTEuOTMgMyAxNmgxOGMtLjI3LTQuMDctMy4yNS03LjQtNy4xNi04LjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSdkhvb2t1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTE0IDExaDR2M2gtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTd2LTZjMC0xLjEtLjktMi0yLTJIN1Y3bC0zIDMgMyAzdi0yaDR2M0g0djNjMCAxLjEuOSAyIDIgMmgyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoOHYtMmgtMnptLTkgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem03LTZoLTR2LTNoNHYzek0xNyAydjJIOXYyaDh2MmwzLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNtb2tlRnJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIgNiA2Ljk5IDdIMnYzaDkuOTlsNyA3IDEuMjYtMS4yNS0xNy0xN3ptMTguNSA3SDIydjNoLTEuNXpNMTggMTNoMS41djNIMTh6bS44NS04LjEyYy42Mi0uNjEgMS0xLjQ1IDEtMi4zOGgtMS41YzAgMS4wMi0uODMgMS44NS0xLjg1IDEuODV2MS41YzIuMjQgMCA0IDEuODMgNCA0LjA3VjEySDIyVjkuOTJjMC0yLjIzLTEuMjgtNC4xNS0zLjE1LTUuMDR6TTE0LjUgOC43aDEuNTNjMS4wNSAwIDEuOTcuNzQgMS45NyAyLjA1VjEyaDEuNXYtMS41OWMwLTEuOC0xLjYtMy4xNi0zLjQ3LTMuMTZIMTQuNWMtMS4wMiAwLTEuODUtLjk4LTEuODUtMnMuODMtMS43NSAxLjg1LTEuNzVWMmEzLjM1IDMuMzUgMCAwIDAgMCA2Ljd6bTIuNSA3LjIzVjEzaC0yLjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTbW9raW5nUm9vbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2aDE1djNIMnptMTguNSAwSDIydjNoLTEuNXpNMTggMTZoMS41djNIMTh6bS44NS04LjI3Yy42Mi0uNjEgMS0xLjQ1IDEtMi4zOEMxOS44NSAzLjUgMTguMzUgMiAxNi41IDJ2MS41YzEuMDIgMCAxLjg1LjgzIDEuODUgMS44NVMxNy41MiA3LjIgMTYuNSA3LjJ2MS41YzIuMjQgMCA0IDEuODMgNCA0LjA3VjE1SDIydi0yLjI0YzAtMi4yMi0xLjI4LTQuMTQtMy4xNS01LjAzem0tMi44MiAyLjQ3SDE0LjVjLTEuMDIgMC0xLjg1LS45OC0xLjg1LTJzLjgzLTEuNzUgMS44NS0xLjc1di0xLjVhMy4zNSAzLjM1IDAgMCAwIDAgNi43aDEuNTNjMS4wNSAwIDEuOTcuNzQgMS45NyAyLjA1VjE1aDEuNXYtMS42NGMwLTEuODEtMS42LTMuMTYtMy40Ny0zLjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb2FwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS4xMiA1LTcuMTggNi43OWMtLjYuNTYtLjk0IDEuMzUtLjk0IDIuMThWMjBjMCAxLjY2IDEuMzQgMyAzIDNoMTMuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDguNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDYuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDguODZjLjY0LTEuMTEgMS40OC0yLjU4IDEuNDktMi42MWExLjA2NSAxLjA2NSAwIDAgMC0uMTItMS4yM0MxMC4yMiA2LjEyIDkuMTIgNSA5LjEyIDV6TTE0IDYuMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1bTAtMS41Yy0xLjI0IDAtMi4yNSAxLjAxLTIuMjUgMi4yNVMxMi43NiA5LjI1IDE0IDkuMjUgMTYuMjUgOC4yNCAxNi4yNSA3IDE1LjI0IDQuNzUgMTQgNC43NXptNS43NS43NWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjUtLjUtLjIyLS41LS41LjIyLS41LjUtLjVtMC0xLjVjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yek0xNi41IDFjLS44MyAwLTEuNS42Ny0xLjUgMS41UzE1LjY3IDQgMTYuNSA0IDE4IDMuMzMgMTggMi41IDE3LjMzIDEgMTYuNSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTEzLjk3IDIxLjQ5Yy0uNjMuMjMtMS4yOS40LTEuOTcuNTEuNjgtLjEyIDEuMzMtLjI5IDEuOTctLjUxek0xMiAyMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41NSAxMnptMTAuNDMtMS42MXpNMTUuNDkgOS42M2MtLjE4LTIuNzktMS4zMS01LjUxLTMuNDMtNy42M2ExMi4xODggMTIuMTg4IDAgMCAwLTMuNTUgNy42M2MxLjI4LjY4IDIuNDYgMS41NiAzLjQ5IDIuNjMgMS4wMy0xLjA2IDIuMjEtMS45NCAzLjQ5LTIuNjN6bS02LjUgMi42NWMtLjE0LS4xLS4zLS4xOS0uNDUtLjI5LjE1LjExLjMxLjE5LjQ1LjI5em02LjQyLS4yNWMtLjEzLjA5LS4yNy4xNi0uNC4yNi4xMy0uMS4yNy0uMTcuNC0uMjZ6TTEyIDE1LjQ1QzkuODUgMTIuMTcgNi4xOCAxMCAyIDEwYzAgNS4zMiAzLjM2IDkuODIgOC4wMyAxMS40OS42My4yMyAxLjI5LjQgMS45Ny41MS42OC0uMTIgMS4zMy0uMjkgMS45Ny0uNTFDMTguNjQgMTkuODIgMjIgMTUuMzIgMjIgMTBjLTQuMTggMC03Ljg1IDIuMTctMTAgNS40NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtMS41NmMuMzUtLjU5LjU2LTEuMjcuNTYtMiAwLTIuMjEtMS43OS00LTQtNC0uMzQgMC0uNjYuMDUtLjk4LjEzQTQuNzA3IDQuNzA3IDAgMCAwIDEwIDIuMDJjLTEuODkgMC0zLjUxIDEuMTEtNC4yNyAyLjcxQzQuMTUgNS4yNiAzIDYuNzQgMyA4LjVjMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMjFoMTF2LTJoMmMxLjEgMCAyLS45IDItMnYtNmMwLTEuMS0uOS0yLTItMnpNNyAxMC41Yy0xLjEgMC0yLS45LTItMiAwLS44NS41NS0xLjYgMS4zNy0xLjg4bC44LS4yNy4zNi0uNzZDOCA0LjYyIDguOTQgNC4wMiAxMCA0LjAyYy43OSAwIDEuMzkuMzUgMS43NC42NWwuNzguNjVTMTMuMTYgNSAxMy45OSA1YzEuMSAwIDIgLjkgMiAyaC0zQzkuNjcgNyA5LjE1IDEwLjUgNyAxMC41ek0xOSAxN2gtMnYtNmgydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YWlycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMSA1aC0yLjQydjMuMzNIMTN2My4zM2gtMi41OFYxOEg2di0yaDIuNDJ2LTMuMzNIMTFWOS4zM2gyLjU4VjZIMTh2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RvcmVmcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjkgOC44OS0xLjA1LTQuMzdjLS4yMi0uOS0xLTEuNTItMS45MS0xLjUySDUuMDVjLS45IDAtMS42OS42My0xLjkgMS41MkwyLjEgOC44OWMtLjI0IDEuMDItLjAyIDIuMDYuNjIgMi44OC4wOC4xMS4xOS4xOS4yOC4yOVYxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi02Ljk0Yy4wOS0uMDkuMi0uMTguMjgtLjI4LjY0LS44Mi44Ny0xLjg3LjYyLTIuODl6bS0yLjk5LTMuOSAxLjA1IDQuMzdjLjEuNDIuMDEuODQtLjI1IDEuMTctLjE0LjE4LS40NC40Ny0uOTQuNDctLjYxIDAtMS4xNC0uNDktMS4yMS0xLjE0TDE2Ljk4IDVsMS45My0uMDF6TTEzIDVoMS45NmwuNTQgNC41MmMuMDUuMzktLjA3Ljc4LS4zMyAxLjA3LS4yMi4yNi0uNTQuNDEtLjk1LjQxLS42NyAwLTEuMjItLjU5LTEuMjItMS4zMVY1ek04LjQ5IDkuNTIgOS4wNCA1SDExdjQuNjljMCAuNzItLjU1IDEuMzEtMS4yOSAxLjMxLS4zNCAwLS42NS0uMTUtLjg5LS40MWExLjQyIDEuNDIgMCAwIDEtLjMzLTEuMDd6bS00LjQ1LS4xNkw1LjA1IDVoMS45N2wtLjU4IDQuODZjLS4wOC42NS0uNiAxLjE0LTEuMjEgMS4xNC0uNDkgMC0uOC0uMjktLjkzLS40Ny0uMjctLjMyLS4zNi0uNzUtLjI2LTEuMTd6TTUgMTl2LTYuMDNjLjA4LjAxLjE1LjAzLjIzLjAzLjg3IDAgMS42Ni0uMzYgMi4yNC0uOTUuNi42IDEuNC45NSAyLjMxLjk1Ljg3IDAgMS42NS0uMzYgMi4yMy0uOTMuNTkuNTcgMS4zOS45MyAyLjI5LjkzLjg0IDAgMS42NC0uMzUgMi4yNC0uOTUuNTguNTkgMS4zNy45NSAyLjI0Ljk1LjA4IDAgLjE1LS4wMi4yMy0uMDNWMTlINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3Ryb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN3YtLjUyQzIyIDQuNTYgMjAuNTIgMyAxOC42NSAzYy0xLjY2IDAtMi41NCAxLjI3LTMuMTggMi4wM2wtOC44IDEwLjMyQzYuMTIgMTYgNi41OCAxNyA3LjQzIDE3SDE1YzEuMSAwIDItLjkgMi0yVjYuMjdjLjU4LS42OC45Ny0xLjI3IDEuNjUtMS4yNy43NyAwIDEuMzUuNjYgMS4zNSAxLjQ4VjdoMnpNMTQuMyA0LjFhOC45NjIgOC45NjIgMCAwIDAtOS41OC42Mmw0Ljg5IDQuODlMMTQuMyA0LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRhcGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBWMWgtOHY5YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjIxaC0ydjJoNnYtMmgtMnYtNy4xNGMxLjcyLS40NSAzLTIgMy0zLjg2em0tMi03djNoLTRWM2g0em0tNy41IDguNUEyLjUgMi41IDAgMCAxIDEwIDE0SDh2OUg2di05SDRhMi41IDIuNSAwIDAgMSAwLTVoMlY4SDRhMi41IDIuNSAwIDAgMSAwLTVoMlYxaDJ2MmgyYTIuNSAyLjUgMCAwIDEgMCA1SDh2MWgyYTIuNSAyLjUgMCAwIDEgMi41IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNGgydjJoLTJWNHptLTEgM2gydjJoLTJWN3ptLTItM2gydjJoLTJWNHptNyA1aC0yVjdoMnYyem0xLTNoLTJWNGgydjJ6bTIgM2gtMlY3aDJ2MnptMS0zaC0yVjRoMnYyem0tNy4zOCA4LjM4TDEyLjEgMTYuOWMtMi41LTEuNDMtNC41Ny0zLjUtNi02bDIuNTItMi41MmMuMjQtLjI0LjM0LS41OC4yOC0uOUw4LjE2IDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhIMy4wM2MtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjAyIDUuNiAyLjQgNy45NyAxLjU4IDIuNzMgMy44NSA0Ljk5IDYuNTcgNi41NyAyLjM3IDEuMzcgNS4wOCAyLjIzIDcuOTcgMi40LjU2LjAzIDEuMDMtLjQ0IDEuMDMtMXYtNC4xNWMwLS40OC0uMzQtLjg5LS44LS45OGwtMy42Ny0uNzNhLjk5Ljk5IDAgMCAwLS45MS4yN3pNMTQgMTBoMnYyaC0ydi0yem0tMyAwaDJ2MmgtMnYtMnptOCAyaC0ydi0yaDJ2MnptMyAwaC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVW1icmVsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDYuOTIgMTMgNS43N1YzLjRjMC0uMjYuMjItLjQ4LjUtLjQ4cy41LjIxLjUuNDhWNGgydi0uNkMxNiAyLjA3IDE0Ljg4IDEgMTMuNSAxUzExIDIuMDcgMTEgMy40djIuMzdMOS41IDYuOTIgNiA2LjA3bDUuMDUgMTUuMjVjLjE1LjQ1LjU1LjY4Ljk1LjY4cy44LS4yMy45NS0uNjlMMTggNi4wN2wtMy41Ljg1ek0xMy4yOCA4LjVsLjc2LjU4LjkyLS4yM0wxMyAxNC44VjguMjlsLjI4LjIxem0tMy4zMi41OS43Ni0uNTguMjgtLjIydjYuNTFMOS4wMyA4Ljg2bC45My4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVmFwZUZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2LjVoMWMxLjMzIDAgMi43MS0uMTggNC0uNXYzYy0xLjI5LS4zMi0yLjY3LS41LTQtLjVIMnYtMnpNMTYuMTcgMTlIOHYtM2g1LjE3TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDEtMy42LTMuNnptMi42Ni0zSDIydjNoLS4xN2wtMy0zek0xMSAxNy41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNS4yMi41LjUuNS41LS4yMi41LS41em0xMS00Ljc0VjE1aC0xLjV2LTIuMjNjMC0yLjI0LTEuNzYtNC4wNy00LTQuMDdWNy4yYzEuMDIgMCAxLjg1LS44MyAxLjg1LTEuODVTMTcuNTIgMy41IDE2LjUgMy41VjJjMS44NSAwIDMuMzUgMS41IDMuMzUgMy4zNSAwIC45My0uMzggMS43Ny0xIDIuMzggMS44Ny44OSAzLjE1IDIuODEgMy4xNSA1LjAzek0xMS4xNSA4LjMyVjguM2MwLTEuODUgMS41LTMuMzUgMy4zNS0zLjM1djEuNWMtMS4wMiAwLTEuODUuNzMtMS44NSAxLjc1cy44MyAyIDEuODUgMmgxLjUzYzEuODcgMCAzLjQ3IDEuMzUgMy40NyAzLjE2VjE1SDE4di0xLjNjMC0xLjMxLS45Mi0yLjA1LTEuOTctMi4wNWgtMS41NWwtMy4zMy0zLjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWYXBpbmdSb29tcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTYuNWgxYzEuMzMgMCAyLjcxLS4xOCA0LS41djNjLTEuMjktLjMyLTIuNjctLjUtNC0uNUgydi0yem0yMC0uNXYzSDh2LTNoMTR6bS0xMSAxLjVjMC0uMjgtLjIyLS41LS41LS41cy0uNS4yMi0uNS41LjIyLjUuNS41LjUtLjIyLjUtLjV6bTExLTQuNzRWMTVoLTEuNXYtMi4yM2MwLTIuMjQtMS43Ni00LjA3LTQtNC4wN1Y3LjJjMS4wMiAwIDEuODUtLjgzIDEuODUtMS44NVMxNy41MiAzLjUgMTYuNSAzLjVWMmMxLjg1IDAgMy4zNSAxLjUgMy4zNSAzLjM1IDAgLjkzLS4zOCAxLjc3LTEgMi4zOCAxLjg3Ljg5IDMuMTUgMi44MSAzLjE1IDUuMDN6bS0yLjUuNlYxNUgxOHYtMS4zYzAtMS4zMS0uOTItMi4wNS0xLjk3LTIuMDVIMTQuNWEzLjM1IDMuMzUgMCAwIDEgMC02Ljd2MS41Yy0xLjAyIDAtMS44NS43My0xLjg1IDEuNzVzLjgzIDIgMS44NSAyaDEuNTNjMS44NyAwIDMuNDcgMS4zNSAzLjQ3IDMuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZpbGxhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMUgzVjhsMTMtNXY3SDd2MTF6bTEyLTExYy0xLjEgMC0yIC45LTIgMkg5djloNXYtNWgydjVoNXYtOWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgOEEyLjUgMi41IDAgMCAwIDIxIDUuNUMyMSAzLjgzIDE4LjUgMSAxOC41IDFTMTYgMy44MyAxNiA1LjVBMi41IDIuNSAwIDAgMCAxOC41IDh6bS01IDFjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjg0LTEuNS0yLjUtMS41LTIuNVMxMiA2LjY2IDEyIDcuNWMwIC44My42NyAxLjUgMS41IDEuNXpNOS4xMiA1bC03LjE4IDYuNzljLS42LjU2LS45NCAxLjM1LS45NCAyLjE4VjIwYzAgMS42NiAxLjM0IDMgMyAzaDEzLjc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg3Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg4Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg2Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUg4Ljg2Yy42NC0xLjExIDEuNDgtMi41OCAxLjQ5LTIuNjFhMS4wNjUgMS4wNjUgMCAwIDAtLjEyLTEuMjNDMTAuMjIgNi4xMiA5LjEyIDUgOS4xMiA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRlckRhbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMiAxMmgzdjhoMTR2LThoM0wxMiAzem0wIDEzYy0xLjEgMC0yLS45LTItMnMyLTQgMi00IDIgMi45IDIgNC0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2hlZWxjaGFpclBpY2t1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNS41IDYuOTVWOWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2gzLjV2LS4xMWMtMS4yNC0xLjI2LTItMi45OS0yLTQuODkgMC0yLjU4IDEuNDEtNC44NCAzLjUtNi4wNXpNMTYuNSAxN2MwIDEuNjUtMS4zNSAzLTMgM3MtMy0xLjM1LTMtM2MwLTEuMTEuNjEtMi4wNiAxLjUtMi41OHYtMi4xNmMtMi4wMi42NC0zLjUgMi41MS0zLjUgNC43NCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01aC0yem0zLjA0LTNIMTVWOGgtMnY4aDUuNDZsMi40NyAzLjcxIDEuNjYtMS4xMS0zLjA1LTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0aHJvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek05IDE4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTAtM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0zIDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMC0zYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTMgM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0wLTNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi0zSDd2LTFjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMC43OFY4YzAtMS42NS0xLjM1LTMtMy0zaC00Yy0uNzcgMC0xLjQ3LjMtMiAuNzgtLjUzLS40OC0xLjIzLS43OC0yLS43OEg2QzQuMzUgNSAzIDYuMzUgMyA4djIuNzhjLS42MS41NS0xIDEuMzQtMSAyLjIydjZoMnYtMmgxNnYyaDJ2LTZjMC0uODgtLjM5LTEuNjctMS0yLjIyek0xNCA3aDRjLjU1IDAgMSAuNDUgMSAxdjJoLTZWOGMwLS41NS40NS0xIDEtMXpNNSA4YzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjJINVY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWRyb29tQmFieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS04IDE2Yy0yLjY0IDAtNS4xMy0xLjAzLTctMi45bDEuMDYtMS4wNmMuMzQuMzQuNzEuNjUgMS4xLjkyTDggMTMuNVY5LjUxbC0xLjU1Ljk5LS45NS0xTDcgNy43NiA2IDdoMy42NWwxLjczIDNIMTd2MWgtMXYyLjVsLjg0IDEuNDZjLjM5LS4yOC43Ni0uNTggMS4xLS45MkwxOSAxNS4xYTkuODQyIDkuODQyIDAgMCAxLTcgMi45elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC42OSAxNC4yNGE3LjcyIDcuNzIgMCAwIDEtNS40IDBsLS44MSAxLjQxLS4wMy4wNmMxLjEuNTIgMi4yOC43OSAzLjUzLjc5czIuNDUtLjI4IDMuNTUtLjc5bC0uMDMtLjA2LS44MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCZWRyb29tQ2hpbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOC41aDZ2Mkg5ek0xNS42NCAxMkg4LjM3YS44Ny44NyAwIDAgMC0uODcuODdoLjAxVjE0aDl2LTEuMTNhLjg3Ljg3IDAgMCAwLS44Ny0uODd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMiAxNWgtMS41di0xLjVoLTlWMTdINnYtNC4xM2MwLTEgLjYyLTEuODUgMS41LTIuMlY5YzAtMS4xLjktMiAyLTJoNWMxLjEgMCAyIC45IDIgMnYxLjY3Yy44OC4zNSAxLjUgMS4yIDEuNSAyLjJWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJlZHJvb21QYXJlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgMTJoLTljLS41NSAwLTEgLjQ1LTEgMXYxaDExdi0xYzAtLjU1LS40NS0xLTEtMXpNNy4yNSA4LjVoNHYyaC00ek0xMi43NSA4LjVoNHYyaC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgMTVoLTEuNXYtMS41aC0xMVYxN0g1di0zLjgzYzAtLjY2LjI1LTEuMjYuNjUtMS43MlY5YzAtMS4xLjktMiAyLTJIMTFjLjM3IDAgLjcyLjEyIDEgLjMyLjI4LS4yLjYzLS4zMiAxLS4zMmgzLjM1YzEuMSAwIDIgLjkgMiAydjIuNDVjLjQuNDYuNjUgMS4wNi42NSAxLjcyVjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbGVuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4xMyAxNS4xMyAxOCAzaC00VjJoLTR2MUg1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMi4yM2wuNjQgNC4xM0M2Ljc0IDE2LjA1IDYgMTcuNDMgNiAxOXYxYzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMnYtMWMwLTEuNTctLjc0LTIuOTUtMS44Ny0zLjg3ek01IDlWNWgxLjMxbC42MiA0SDV6bTcgMTBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi4yOS01SDkuNzJMOC4zMyA1aDcuMzRsLTEuMzggOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2FtZXJhSW5kb29yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bTQgMTMuMDZMMTQgMTV2MWMwIC41NS0uNDUgMS0xIDFIOWMtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjU1LjQ1LTEgMS0xaDRjLjU1IDAgMSAuNDUgMSAxdjFsMi0xLjA2djQuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENhbWVyYU91dGRvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzYzAtLjU1LS40NS0xLTEtMWgtNGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTFsMiAxLjA2di00LjEyTDE4IDE0di0xek0xMiAzIDQgOXYxMmgxNnYtMkg2di05bDYtNC41IDYgNC41djFoMlY5bC04LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoYWlyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjNjMCAxLjEuOSAyIDIgMmgxdjJIN2MtMS4xIDAtMiAuOS0yIDJ2N2gydi0zaDEwdjNoMnYtN2MwLTEuMS0uOS0yLTItMmgtMXYtMmgxek03IDhWNWgxMHYzSDd6bTEwIDhIN3YtMmgxMHYyem0tMy00aC00di0yaDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTF2MmgxMHYtMmMwLTEuODYgMS4yOC0zLjQxIDMtMy44NlY2YzAtMS42NS0xLjM1LTMtMy0zSDdDNS4zNSAzIDQgNC4zNSA0IDZ2MS4xNGMxLjcyLjQ1IDMgMiAzIDMuODZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDljLTEuMSAwLTIgLjktMiAydjRINXYtNGMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2NWMwIDEuNjUgMS4zNSAzIDMgM3YxYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXYtMWMxLjY1IDAgMy0xLjM1IDMtM3YtNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29mZmVlTWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDZWNGgyVjJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNHYtMmgtNC4wM0E0Ljk2NiA0Ljk2NiAwIDAgMCAxOCAxNnYtNUg4djVjMCAxLjY0LjgxIDMuMDkgMi4wMyA0SDZWNGgydjJjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI5XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvZmZlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAzSDZjLTEuMSAwLTIgLjktMiAydjUuNzFjMCAzLjgzIDIuOTUgNy4xOCA2Ljc4IDcuMjkgMy45Ni4xMiA3LjIyLTMuMDYgNy4yMi03di0xaC41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzIwLjQzIDMgMTguNSAzek0xNiA1djNINlY1aDEwem0yLjUgM0gxOFY1aC41Yy44MyAwIDEuNS42NyAxLjUgMS41UzE5LjMzIDggMTguNSA4ek00IDE5aDE2djJINHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTkgOC4zYzAgLjkzLS42NCAxLjcxLTEuNSAxLjkzVjE5SDh2LTYuNzdjLS44Ni0uMjItMS41LTEtMS41LTEuOTNWNi41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjloLjc1VjYuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVY5SDEwVjYuNWMwLS4yOC4yMy0uNS41LS41LjI4IDAgLjUuMjIuNS41djMuOHptNC41OCAyLjI5LS4wOC4wM1YxOUgxNHYtNi4zOGwtLjA4LS4wNGMtLjk3LS40Ny0xLjY3LTEuNy0xLjY3LTMuMTggMC0xLjg4IDEuMTMtMy40IDIuNS0zLjQgMS4zOCAwIDIuNSAxLjUzIDIuNSAzLjQxIDAgMS40OC0uNyAyLjcxLTEuNjcgMy4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9vckJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5VjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MTRIM3YyaDE4di0yaC0yem0tOC02SDl2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb29yRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5VjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MTRIM3YyaDE4di0yaC0yem0tNC02aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9vclNsaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjVjMC0xLjEtLjktMi0yLTJoLTUuMjV2MTZoLTEuNVYzSDZjLTEuMSAwLTIgLjktMiAydjE0SDN2MmgxOHYtMmgtMXptLTEwLTZIOHYtMmgydjJ6bTYgMGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERvb3JiZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bTAgMTQuNWMtLjU1IDAtMS0uNDUtMS0xaDJjMCAuNTUtLjQ1IDEtMSAxem00LTEuNUg4di0xaDF2LTIuMzRjMC0xLjU0LjgyLTIuODIgMi4yNS0zLjE2di0uMjVjMC0uNDEuMzQtLjc1Ljc1LS43NXMuNzUuMzQuNzUuNzV2LjI1YzEuNDQuMzQgMi4yNSAxLjYyIDIuMjUgMy4xNlYxNWgxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4bC01LTV6TTcgN2g1djJIN1Y3em0xMCAxMEg3di0yaDEwdjJ6bTAtNEg3di0yaDEwdjJ6bS0yLTRWNWw0IDRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZsYXR3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA3LjA4YzAgMS43Ny0uODQgMy4yNS0yIDMuODJWMjFoLTJWMTAuOWMtMS4xNi0uNTctMi0yLjA1LTItMy44MkMxMC4wMSA0LjgzIDExLjM1IDMgMTMgM2MxLjY2IDAgMyAxLjgzIDMgNC4wOHpNMTcgM3YxOGgydi04aDJWN2MwLTEuNzYtMS4yNC00LTQtNHpNOC4yOCAzYy0uNCAwLS43Mi4zMi0uNzIuNzJWN2gtLjg0VjMuNzJDNi43MiAzLjMyIDYuNCAzIDYgM3MtLjcyLjMyLS43Mi43MlY3aC0uODRWMy43MmMwLS40LS4zMi0uNzItLjcyLS43MlMzIDMuMzIgMyAzLjcyVjljMCAxLjEuOSAyIDIgMnYxMGgyVjExYzEuMSAwIDItLjkgMi0yVjMuNzJjMC0uNC0uMzItLjcyLS43Mi0uNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEdhcmFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguMzMgNy41LS42NiAyaDguNjZsLS42Ni0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgMTUuNjljMCAuNDUtLjM1LjgxLS43OC44MWgtLjQ0Yy0uNDQgMC0uNzgtLjM2LS43OC0uODFWMTYuNUg3djEuMTljMCAuNDUtLjM1LjgxLS43OC44MWgtLjQ0Yy0uNDMgMC0uNzgtLjM2LS43OC0uODF2LTYuNWMuODItMi40NyAxLjM0LTQuMDMgMS41Ni00LjY5LjA1LS4xNi4xMi0uMjkuMTktLjQuMDItLjAyLjAzLS4wNC4wNS0uMDYuMzgtLjUzLjkyLS41NC45Mi0uNTRoOC41NnMuNTQuMDEuOTIuNTNjLjAyLjAzLjAzLjA1LjA1LjA3LjA3LjExLjE0LjI0LjE5LjQuMjIuNjYuNzQgMi4yMyAxLjU2IDQuNjl2Ni41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRMaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNi4wNlYzaC0ydjMuMDZjLTQuNS41LTggNC4zMS04IDguOTNDMyAxNi4xIDMuOSAxNyA1LjAxIDE3SDhjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGgyLjk5YzEuMTEgMCAyLjAxLS45IDIuMDEtMi4wMSAwLTQuNjItMy41LTguNDMtOC04Ljkzek0xMiAxNUg1YzAtMy44NiAzLjE0LTcgNy03czcgMy4xNCA3IDdoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExpdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMS41Yy0uNTUgMC0xIC40NS0xIDF2MmgtN3YtMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMVYxNmMwIC4yOC4yMi41LjUuNWgxMGMuMjggMCAuNS0uMjIuNS0uNXYtMy41YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTIuNXYuNWg0di0uNWMwLTEuMy45OS0yLjM1IDIuMjUtMi40N1Y5YzAtLjgzLS42Ny0xLjUtMS41LTEuNWgtNS41Yy0uODMgMC0xLjUuNjctMS41IDEuNXYxLjAzQTIuNDggMi40OCAwIDAgMSAxMCAxMi41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTEgMTRjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJ2LTMuNWMwLS45Mi41MS0xLjcyIDEuMjUtMi4xNVY5YzAtMS42NiAxLjM0LTMgMy0zaDUuNWMxLjY2IDAgMyAxLjM0IDMgM3YxLjM1Yy43NC40MyAxLjI1IDEuMjMgMS4yNSAyLjE1VjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYW5hZ2VTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOUgyVjdoNXYyem0wIDNIMnYyaDV2LTJ6bTEzLjU5IDctMy44My0zLjgzYy0uOC41Mi0xLjc0LjgzLTIuNzYuODMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1YzAgMS4wMi0uMzEgMS45Ni0uODMgMi43NUwyMiAxNy41OSAyMC41OSAxOXpNMTcgMTFjMC0xLjY1LTEuMzUtMy0zLTNzLTMgMS4zNS0zIDMgMS4zNSAzIDMgMyAzLTEuMzUgMy0zek0yIDE5aDEwdi0ySDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9kY2FzdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEyYzAgLjc0LS40IDEuMzgtMSAxLjcyVjIyaC0ydi04LjI4Yy0uNi0uMzUtMS0uOTgtMS0xLjcyIDAtMS4xLjktMiAyLTJzMiAuOSAyIDJ6bS0yLTZjLTMuMzEgMC02IDIuNjktNiA2IDAgMS43NC43NSAzLjMxIDEuOTQgNC40bDEuNDItMS40MkEzLjk1NyAzLjk1NyAwIDAgMSA4IDEyYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjE5LS41MyAyLjI1LTEuMzYgMi45OGwxLjQyIDEuNDJBNS45NTcgNS45NTcgMCAwIDAgMTggMTJjMC0zLjMxLTIuNjktNi02LTZ6bTAtNEM2LjQ4IDIgMiA2LjQ4IDIgMTJjMCAyLjg1IDEuMiA1LjQxIDMuMTEgNy4yNGwxLjQyLTEuNDJBNy45ODcgNy45ODcgMCAwIDEgNCAxMmMwLTQuNDEgMy41OS04IDgtOHM4IDMuNTkgOCA4YzAgMi4yOS0uOTggNC4zNi0yLjUzIDUuODJsMS40MiAxLjQyQzIwLjggMTcuNDEgMjIgMTQuODUgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNob3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMTdcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE3XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIxN1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1LjA4VjNoLTJ2Mi4wOEM3LjYxIDUuNTcgNSA4LjQ3IDUgMTJ2MmgxNHYtMmMwLTMuNTMtMi42MS02LjQzLTYtNi45MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjIwXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTZcIixcImN5XCI6XCIyMFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDcuNUMyMiA1LjU3IDE3LjUyIDQgMTIgNFMyIDUuNTcgMiA3LjVjMCAxLjgxIDMuOTUgMy4zMSA5IDMuNDhWMTVIOS4zNWMtLjgyIDAtMS41NS41LTEuODYgMS4yNkw2IDIwaDJsMS4yLTNoNS42bDEuMiAzaDJsLTEuNS0zLjc0Yy0uMy0uNzYtMS4wNC0xLjI2LTEuODUtMS4yNkgxM3YtNC4wMmM1LjA1LS4xNyA5LTEuNjcgOS0zLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUYWJsZVJlc3RhdXJhbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS45NiA5LjczLTEuNDMtNWEuOTk2Ljk5NiAwIDAgMC0uOTYtLjczSDQuNDNjLS40NSAwLS44NC4zLS45Ni43M2wtMS40MyA1Yy0uMTguNjMuMyAxLjI3Ljk2IDEuMjdoMi4yTDQgMjBoMmwuNjctNWgxMC42N2wuNjYgNWgybC0xLjItOUgyMWMuNjYgMCAxLjE0LS42NC45Ni0xLjI3ek02LjkzIDEzbC4yNy0yaDkuNmwuMjcgMkg2LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaW5kb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMVYzSDVjLTEuMSAwLTIgLjktMiAydjZoOHptMiAwaDhWNWMwLTEuMS0uOS0yLTItMmgtNnY4em0tMiAySDN2NmMwIDEuMS45IDIgMiAyaDZ2LTh6bTIgMHY4aDZjMS4xIDAgMi0uOSAyLTJ2LTZoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFlhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDguMjJhMS41NjIgMS41NjIgMCAwIDEgMi40NS0xLjI4bC0uMDEtLjEyYzAtLjg2LjctMS41NiAxLjU2LTEuNTZzMS41Ni43IDEuNTYgMS41NmwtLjAxLjEyQTEuNTYyIDEuNTYyIDAgMCAxIDE2IDguMjJjMCAuNjItLjM3IDEuMTYtLjg5IDEuNC41Mi4yNS44OS43OS44OSAxLjQxIDAgLjg2LS43IDEuNTYtMS41NiAxLjU2LS4zMyAwLS42NC0uMTEtLjg5LS4yOGwuMDEuMTJjMCAuODYtLjcgMS41Ni0xLjU2IDEuNTZzLTEuNTYtLjctMS41Ni0xLjU2bC4wMS0uMTJBMS41NjIgMS41NjIgMCAwIDEgOCAxMS4wM2MwLS42Mi4zNy0xLjE2Ljg5LTEuNEM4LjM3IDkuMzggOCA4Ljg0IDggOC4yMnpNMTIgMTljLTMuMzEgMC02LTIuNjktNi02IDMuMzEgMCA2IDIuNjkgNiA2IDAtMy4zMSAyLjY5LTYgNi02IDAgMy4zMS0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiOS42MlwiLFwiclwiOlwiMS41NlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWQxOFVwUmF0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTIuNWgxLjVWMTRIMTN6TTEzIDEwaDEuNXYxLjVIMTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxMkg4LjV2LTQuNUg3VjloM3Y2em02LTFjMCAuNTUtLjQ1IDEtMSAxaC0yLjVjLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMUgxNWMuNTUgMCAxIC40NSAxIDF2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kNkZ0QXBhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem00IDMuNDNjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDIgOS40M1YxMGg4di0uNTd6TTE4IDZjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem00IDMuNDNjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDE0IDkuNDNWMTBoOHYtLjU3ek0xOSAxN3YtMi4wMUw1IDE1djJsLTMtMyAzLTN2Mi4wMUwxOSAxM3YtMmwzIDMtMyAzem0tOSAydi0xSDcuNWMtLjI4IDAtLjUuMjItLjUuNXYzYzAgLjI4LjIyLjUuNS41aDJjLjI4IDAgLjUtLjIyLjUtLjVWMjBjMC0uMjgtLjIyLS41LS41LS41SDhWMTloMnptLTEgMS41di41SDh2LS41aDF6bTguNS0xLjVoLTF2M2gtMXYtM2gtMXYtMWgzdjF6bS01IDB2LjVoMXYxaC0xVjIyaC0xdi00SDE0djFoLTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQWRkTW9kZXJhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjIyIDIyLjYxYy0uNC4xNS0uOC4yOS0xLjIyLjM5LTUuMTYtMS4yNi05LTYuNDUtOS0xMlY1bDktNCA5IDR2NmMwIC45LS4xMSAxLjc4LS4zIDIuNjUtLjgxLS40MS0xLjczLS42NS0yLjctLjY1LTMuMzEgMC02IDIuNjktNiA2IDAgMS4zNi40NiAyLjYxIDEuMjIgMy42MXpNMTkgMjB2Mi45OXMtMS45OS4wMS0yIDBWMjBoLTN2LTJoM3YtM2gydjNoM3YyaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRBZGRSZWFjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDlWN2gtMlYyLjg0QTkuOTI5IDkuOTI5IDAgMCAwIDExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMmMwLTEuMDUtLjE3LTIuMDUtLjQ3LTNIMTh6bS0yLjUtMWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41LTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXptLTcgMGMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjMzIDExIDguNSAxMSA3IDEwLjMzIDcgOS41IDcuNjcgOCA4LjUgOHptMy41IDkuNWMtMi4zMyAwLTQuMzEtMS40Ni01LjExLTMuNWgxMC4yMmMtLjggMi4wNC0yLjc4IDMuNS01LjExIDMuNXpNMjIgM2gydjJoLTJ2MmgtMlY1aC0yVjNoMlYxaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQXJjaGl0ZWN0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4zNiAxOC43OCA2LjYxIDIxbDEuNjItMS41NCAyLjc3LTcuNmMtLjY4LS4xNy0xLjI4LS41MS0xLjc3LS45OGwtMi44NyA3Ljl6TTE0Ljc3IDEwLjg4Yy0uNDkuNDctMS4xLjgxLTEuNzcuOThsMi43NyA3LjZMMTcuMzkgMjFsLjI2LTIuMjItMi44OC03Ljl6TTE1IDhjMC0xLjMtLjg0LTIuNC0yLTIuODJWM2gtMnYyLjE4QzkuODQgNS42IDkgNi43IDkgOGMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zem0tMyAxYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEFzc2lzdFdhbGtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTIuNVwiLFwiY3lcIjpcIjQuNVwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyAxNy43Mi0uNjQtNi4zN0ExLjQ5IDEuNDkgMCAwIDAgMTcuNjQgMTBIMTZjLTEuNS0uMDItMi44Ni0uNTQtMy43Ni0xLjQ0bC0yLTEuOThBMS45NSAxLjk1IDAgMCAwIDguODMgNmMtLjUxIDAtMS4wMi4yLTEuNDEuNTlMNC4wOCA5LjkxYy0uNTMuNjgtLjUxIDEuNTctLjIxIDIuMTNsMS40MyAyLjgtMy4xNSA0LjA1IDEuNTcgMS4yNEw3LjQgMTUuNGwtLjE3LTEuMzYuNzcuNzFWMjBoMnYtNi4xMmwtMi4xMi0yLjEyIDIuMzYtMi4zNmMuOTQuOTQgMS43MiAxLjgyIDMuNTkgMi4zMkwxMyAyMGgxLjVsLjQxLTMuNWgzLjE4bC4xNCAxLjIyYy0uNDQuMjYtLjczLjc0LS43MyAxLjI4IDAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNWMwLS41NC0uMjktMS4wMi0uNzMtMS4yOHpNMTUuMDkgMTVsLjQxLTMuNWgybC40MSAzLjVoLTIuODJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhY2tIYW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMjRjLTMuMjYgMC02LjE5LTEuOTktNy40LTUuMDJsLTMuMDMtNy42MWExIDEgMCAwIDEgMS4yNC0xLjMybC43OS4yNmMuNTYuMTggMS4wMi42MSAxLjI0IDEuMTZMNy4yNSAxNUg4VjMuMjVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwVjEyaDFWMS4yNWExLjI1IDEuMjUgMCAwIDEgMi41IDBWMTJoMVYyLjc1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMFYxMmgxVjUuNzVhMS4yNSAxLjI1IDAgMCAxIDIuNSAwVjE2YzAgNC40Mi0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCbGluZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTEuNVwiLFwiY3lcIjpcIjMuNVwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4xMyA3LjEyYy0uMTctLjM1LS40NC0uNjUtLjgtLjg1YTEuOTggMS45OCAwIDAgMC0xLjkzLS4wM3YtLjAxTDQgOS4zVjE0aDJ2LTMuNTRsMS41LS44NUM3LjE4IDEwLjcxIDcgMTEuODUgNyAxM3Y1LjMzTDQuNCAyMS44IDYgMjNsMy00IC4yMi0zLjU0TDExIDE4djVoMnYtNi41bC0xLjk3LTIuODFjLS4wNC0uNTItLjE0LTEuNzYuNDUtMy40Ljc1IDEuMTQgMS44OCAxLjk4IDMuMiAyLjQxTDIwLjYzIDIzbC44Ny0uNS01LjQ4LTkuNUgxN3YtMmMtLjQ5IDAtMi44OC4xNy00LjA4LTIuMjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQm95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVMxMi45NyA0IDEyIDRzLTEuNzUuNzgtMS43NSAxLjc1UzExLjAzIDcuNSAxMiA3LjV6TTE0IDIwdi01aDF2LTQuNWMwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJWMTVoMXY1aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YTIgMiAwIDAgMCAyLTJjMC0uMzgtLjEtLjczLS4yOS0xLjAzTDEyIDBsLTEuNzEgMi45N2MtLjE5LjMtLjI5LjY1LS4yOSAxLjAzIDAgMS4xLjkgMiAyIDJ6bTQuNiA5Ljk5LTEuMDctMS4wNy0xLjA4IDEuMDdjLTEuMyAxLjMtMy41OCAxLjMxLTQuODkgMGwtMS4wNy0xLjA3LTEuMDkgMS4wN0M2Ljc1IDE2LjY0IDUuODggMTcgNC45NiAxN2MtLjczIDAtMS40LS4yMy0xLjk2LS42MVYyMWMwIC41NS40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTF2LTQuNjFjLS41Ni4zOC0xLjIzLjYxLTEuOTYuNjEtLjkyIDAtMS43OS0uMzYtMi40NC0xLjAxek0xOCA5aC01VjdoLTJ2Mkg2Yy0xLjY2IDAtMyAxLjM0LTMgM3YxLjU0YzAgMS4wOC44OCAxLjk2IDEuOTYgMS45Ni41MiAwIDEuMDItLjIgMS4zOC0uNTdsMi4xNC0yLjEzIDIuMTMgMi4xM2MuNzQuNzQgMi4wMy43NCAyLjc3IDBsMi4xNC0yLjEzIDIuMTMgMi4xM2MuMzcuMzcuODYuNTcgMS4zOC41NyAxLjA4IDAgMS45Ni0uODggMS45Ni0xLjk2VjEyQzIxIDEwLjM0IDE5LjY2IDkgMTggOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2F0Y2hpbmdQb2tlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNSAxMmEyLjUgMi41IDAgMCAxLTUgMCAyLjUgMi41IDAgMCAxIDUgMHptNy41IDBjMCA1LjUyLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyIDYuNDggMiAxMiAyczEwIDQuNDggMTAgMTB6bS0yIDBoLTRjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDRINGMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDbGVhbkhhbmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuOTkgNSAuNjMgMS4zNyAxLjM3LjYzLTEuMzcuNjNMMTYuOTkgOWwtLjYzLTEuMzdMMTQuOTkgN2wxLjM3LS42My42My0xLjM3TTExIDYuMTNWNGgyYy41NyAwIDEuMS4xNyAxLjU1LjQ1bDEuNDMtMS40M0E0Ljg5OSA0Ljg5OSAwIDAgMCAxMyAySDcuNXYySDl2Mi4xNEE1LjAwNyA1LjAwNyAwIDAgMCA1LjI2IDkuNWgzLjk4TDE1IDExLjY1di0uNjJhNSA1IDAgMCAwLTQtNC45ek0xIDIyaDRWMTFIMXYxMXptMTktNWgtN2wtMi4wOS0uNzMuMzMtLjk0TDEzIDE2aDIuODJjLjY1IDAgMS4xOC0uNTMgMS4xOC0xLjE4IDAtLjQ5LS4zMS0uOTMtLjc3LTEuMTFMOC45NyAxMUg3djkuMDJMMTQgMjJsOC0zYy0uMDEtMS4xLS44OS0yLTItMnptMC0zYzEuMSAwIDItLjkgMi0ycy0yLTQtMi00LTIgMi45LTIgNCAuOSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ28yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOWgtM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xem0tLjUgNC41aC0ydi0zaDJ2M3pNOCAxM3YxYzAgLjU1LS40NSAxLTEgMUg0Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MUg2LjV2LS41aC0ydjNoMlYxM0g4em0xMi41IDIuNWgtMnYxaDNWMThIMTd2LTIuNWMwLS41NS40NS0xIDEtMWgydi0xaC0zVjEyaDMuNWMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29tcG9zdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjg3IDExLjgxQTIuNSAyLjUgMCAwIDEgMTUgOGgxYzEuNTEgMCAyLTEgMi0xcy41NSA2LTMgNmMtLjQ5IDAtLjk0LS4xNC0xLjMyLS4zOC0uMjQuNjQtLjU5IDEuNzYtLjc2IDIuOTYgMS4yNi4yMiAyLjI4Ljg5IDIuNzcgMS43N0E2LjUwNSA2LjUwNSAwIDAgMCAxOC41IDEyaDNjMCA1LjI0LTQuMjYgOS41LTkuNSA5LjVTMi41IDE3LjI0IDIuNSAxMiA2Ljc2IDIuNSAxMiAyLjVWMGw0IDQtNCA0VjUuNWMtMy41OCAwLTYuNSAyLjkyLTYuNSA2LjUgMCAyLjIxIDEuMTEgNC4xNyAyLjgxIDUuMzUuNTEtLjkyIDEuNjMtMS42MiAyLjk4LTEuOC0uMDktLjY5LS4yNi0xLjQyLS40OS0yLjAzLS4zNS4zLS44LjQ4LTEuMy40OC0xLjEgMC0yLS45LTItMnYtLjk5YzAtLjU2LS4xOS0xLjA5LS41LTEuNTEgMCAwIDQuNDUtLjIzIDQuNSAyLjUgMCAuMjktLjA2LjU2LS4xNy44LS40Mi0uMzItLjg2LS42LTEuMzMtLjguNTguNDMgMS4zNyAxLjM3IDIgMi42LjY3LTEuNjIgMS42OC0zLjI3IDMtNC42LS43Ni41Mi0xLjQ3IDEuMTItMi4xMyAxLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRDb25uZWN0V2l0aG91dENvbnRhY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNEg5YTkgOSAwIDAgMSA5LTl2MmMtMy44NyAwLTcgMy4xMy03IDd6bTctM1Y5Yy0yLjc2IDAtNSAyLjI0LTUgNWgyYzAtMS42NiAxLjM0LTMgMy0zek03IDRjMC0xLjExLS44OS0yLTItMnMtMiAuODktMiAyIC44OSAyIDIgMiAyLS44OSAyLTJ6bTQuNDUuNWgtMkEyLjk5IDIuOTkgMCAwIDEgNi41IDdoLTNDMi42NyA3IDIgNy42NyAyIDguNVYxMWg2VjguNzRhNC45NyA0Ljk3IDAgMCAwIDMuNDUtNC4yNHpNMTkgMTdjMS4xMSAwIDItLjg5IDItMnMtLjg5LTItMi0yLTIgLjg5LTIgMiAuODkgMiAyIDJ6bTEuNSAxaC0zYTIuOTkgMi45OSAwIDAgMS0yLjk1LTIuNWgtMkE0Ljk3IDQuOTcgMCAwIDAgMTYgMTkuNzRWMjJoNnYtMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29uc3RydWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuNzgzIDE1LjE3MiAyLjEyMS0yLjEyMSA1Ljk5NiA1Ljk5Ni0yLjEyMSAyLjEyMXpNMTcuNSAxMGMxLjkzIDAgMy41LTEuNTcgMy41LTMuNSAwLS41OC0uMTYtMS4xMi0uNDEtMS42bC0yLjcgMi43LTEuNDktMS40OSAyLjctMi43Yy0uNDgtLjI1LTEuMDItLjQxLTEuNi0uNDFDMTUuNTcgMyAxNCA0LjU3IDE0IDYuNWMwIC40MS4wOC44LjIxIDEuMTZsLTEuODUgMS44NS0xLjc4LTEuNzguNzEtLjcxLTEuNDEtMS40MUwxMiAzLjQ5YTMgMyAwIDAgMC00LjI0IDBMNC4yMiA3LjAzbDEuNDEgMS40MUgyLjgxbC0uNzEuNzEgMy41NCAzLjU0LjcxLS43MVY5LjE1bDEuNDEgMS40MS43MS0uNzEgMS43OCAxLjc4LTcuNDEgNy40MSAyLjEyIDIuMTJMMTYuMzQgOS43OWMuMzYuMTMuNzUuMjEgMS4xNi4yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTUgMTAuOTljLTEuNzktLjAzLTMuNy0xLjk1LTIuNjgtNC4yMi0yLjk4IDEtNS43Ny0xLjU5LTUuMTktNC41NkM2Ljk1LjcxIDIgNi41OCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDUuODkgMCAxMC41NC01LjA4IDkuOTUtMTEuMDF6TTguNSAxNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzcuNjcgMTIgOC41IDEyczEuNS42NyAxLjUgMS41UzkuMzMgMTUgOC41IDE1em0yLTVDOS42NyAxMCA5IDkuMzMgOSA4LjVTOS42NyA3IDEwLjUgN3MxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQuNSA2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENvcm9uYXZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMjUgMTAuNWMtLjQxIDAtLjc1LjM0LS43NS43NWgtMS41NGE2Ljk3OCA2Ljk3OCAwIDAgMC0xLjUyLTMuNjVsMS4wOS0xLjA5LjAxLjAxYy4yOS4yOS43Ny4yOSAxLjA2IDBzLjI5LS43NyAwLTEuMDZMMTguNTQgNC40YS43NTQuNzU0IDAgMCAwLTEuMDYgMGMtLjI5LjI5LS4yOS43Ni0uMDEgMS4wNWwtMS4wOSAxLjA5YTcuMDE1IDcuMDE1IDAgMCAwLTMuNjQtMS41MVYzLjVoLjAxYy40MSAwIC43NS0uMzQuNzUtLjc1UzEzLjE2IDIgMTIuNzUgMmgtMS41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zMy43NC43NC43NXYxLjU1Yy0xLjM3LjE0LTIuNjIuNjktMy42NCAxLjUxTDYuNTEgNS40N2wuMDEtLjAxYy4yOS0uMjkuMjktLjc3IDAtMS4wNmEuNzU0Ljc1NCAwIDAgMC0xLjA2IDBMNC40IDUuNDZjLS4yOS4yOS0uMjkuNzcgMCAxLjA2LjI5LjI5Ljc2LjI5IDEuMDUuMDFsMS4wOSAxLjA5YTYuODkgNi44OSAwIDAgMC0xLjUgMy42M0gzLjVjMC0uNDEtLjM0LS43NS0uNzUtLjc1cy0uNzUuMzQtLjc1Ljc1djEuNWMwIC40MS4zNC43NS43NS43NXMuNzUtLjM0Ljc1LS43NWgxLjU0Yy4xNSAxLjM3LjY5IDIuNjEgMS41IDMuNjNsLTEuMDkgMS4wOWEuNzQyLjc0MiAwIDAgMC0xLjA1LjAxYy0uMjkuMjktLjI5Ljc3IDAgMS4wNmwxLjA2IDEuMDZjLjI5LjI5Ljc3LjI5IDEuMDYgMCAuMjktLjI5LjI5LS43NyAwLTEuMDZsLS4wMS0uMDEgMS4wOS0xLjA5YzEuMDIuODIgMi4yNiAxLjM2IDMuNjMgMS41MXYxLjU1Yy0uNDEuMDEtLjc0LjM0LS43NC43NXMuMzQuNzUuNzUuNzVoMS41Yy40MSAwIC43NS0uMzQuNzUtLjc1cy0uMzQtLjc1LS43NS0uNzVoLS4wMXYtMS41NGMxLjM3LS4xNCAyLjYyLS42OSAzLjY0LTEuNTFsMS4wOSAxLjA5Yy0uMjkuMjktLjI4Ljc2LjAxIDEuMDUuMjkuMjkuNzcuMjkgMS4wNiAwbDEuMDYtMS4wNmMuMjktLjI5LjI5LS43NyAwLTEuMDZhLjc1NC43NTQgMCAwIDAtMS4wNiAwbC0uMDEuMDEtMS4wOS0xLjA5YTcuMDI1IDcuMDI1IDAgMCAwIDEuNTItMy42NWgxLjU0YzAgLjQxLjM0Ljc1Ljc1Ljc1cy43NS0uMzQuNzUtLjc1di0xLjVjLjAxLS40LS4zMy0uNzQtLjc0LS43NHpNMTMuNzUgOGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek0xMiAxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tMS43NS01Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTguNSAxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xLjc1IDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMy41IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLjc1LTRjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxLS40NSAxLTEgMS0xLS40NS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENydWVsdHlGcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuODQgMTQuNTJjLS4yNi0uMTktLjYyLS42My0uNzktLjg0QzE3LjI0IDEyLjAxIDE5IDguODcgMTkgNWMwLTEuOTUtLjc0LTMtMi0zLTEuNTQgMC0zLjk2IDIuMDYtNSA1Ljk3QzEwLjk2IDQuMDYgOC41NCAyIDcgMiA1Ljc0IDIgNSAzLjA1IDUgNWMwIDMuODcgMS43NiA3LjAxIDIuOTUgOC42OC0uMTcuMjEtLjUzLjY1LS43OS44NC0uNS40MS0xLjY2IDEuMzctMS42NiAyLjk4IDAgMi4yMSAxLjc5IDQgNCA0IDEuNTUgMCAyLjUtLjU2IDIuNS0uNTZzLjk1LjU2IDIuNS41NmMyLjIxIDAgNC0xLjc5IDQtNCAwLTEuNjEtMS4xNi0yLjU3LTEuNjYtMi45OHpNOS4zNSAxMi4yQzguMzQgMTAuNyA3IDguMTIgNyA1YzAtLjQ5LjA2LS44LjEyLS45Ny45NC4zMSAzLjI0IDIuNzEgMy4zOCA3LjY0LS40Ny4xMi0uODQuMy0xLjE1LjUzem0xLjE1IDQuNTVjLS4yOCAwLS41LS4zNC0uNS0uNzVzLjIyLS43NS41LS43NS41LjM0LjUuNzUtLjIyLjc1LS41Ljc1ek0xMiAxOS41Yy0uNTUgMC0xLS43Mi0xLTFzLjQ1LS41IDEtLjUgMSAuMjIgMSAuNS0uNDUgMS0xIDF6bTEuNS0yLjc1Yy0uMjggMC0uNS0uMzQtLjUtLjc1cy4yMi0uNzUuNS0uNzUuNS4zNC41Ljc1LS4yMi43NS0uNS43NXptMC01LjA4Yy4xNC00LjkzIDIuNDQtNy4zMyAzLjM4LTcuNjQuMDYuMTcuMTIuNDguMTIuOTcgMCAzLjEyLTEuMzQgNS43LTIuMzUgNy4yLS4zMS0uMjMtLjY4LS40MS0xLjE1LS41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ3ljbG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA3LjQ3VjUuMzVDMjAuMDUgNC43NyAxNi41NiA0IDEyIDRjLTIuMTUgMC00LjExLjg2LTUuNTQgMi4yNC4xMy0uODUuNC0yLjQgMS4wMS00LjI0SDUuMzVDNC43NyAzLjk1IDQgNy40NCA0IDEyYzAgMi4xNS44NiA0LjExIDIuMjQgNS41NC0uODUtLjE0LTIuNC0uNC00LjI0LTEuMDF2Mi4xMkMzLjk1IDE5LjIzIDcuNDQgMjAgMTIgMjBjMi4xNSAwIDQuMTEtLjg2IDUuNTQtMi4yNC0uMTQuODUtLjQgMi40LTEuMDEgNC4yNGgyLjEyYy41OC0xLjk1IDEuMzUtNS40NCAxLjM1LTEwIDAtMi4xNS0uODYtNC4xMS0yLjI0LTUuNTQuODUuMTMgMi40LjQgNC4yNCAxLjAxek0xMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5IDEyIDIgMiA5aDl2MTNoMlY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm00LjE0IDEyLTEuOTYuMzcuODIgNC4zN1YyMmgybC4wMi00SDd2NGgydi02SDQuOXpNMTkuMSAxNkgxNXY2aDJ2LTRoMS45OGwuMDIgNGgydi01LjI2bC44Mi00LjM3LTEuOTYtLjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREZXdQb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEzVjVjMC0xLjY2LTEuMzQtMy0zLTNTNiAzLjM0IDYgNXY4Yy0xLjIxLjkxLTIgMi4zNy0yIDQgMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNWMwLTEuNjMtLjc5LTMuMDktMi00em0tNC0yVjVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjFIOXYxaDF2Mkg5djFoMXYxSDh6bTEzLTQuNWMwLS44NC0xLjUtMi41LTEuNS0yLjVTMTggNS42NiAxOCA2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVTMjEgNy4zMyAyMSA2LjV6bS00IDNjMC0uODQtMS41LTIuNS0xLjUtMi41UzE0IDguNjYgMTQgOS41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNXptNCAzYzAtLjg0LTEuNS0yLjUtMS41LTIuNVMxOCAxMS42NiAxOCAxMi41YzAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRGl2ZXJzaXR5MSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNFwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuMjIgMTcuNThBMi4wMSAyLjAxIDAgMCAwIDAgMTkuNDNWMjFoNC41di0xLjYxYzAtLjgzLjIzLTEuNjEuNjMtMi4yOS0uMzctLjA2LS43NC0uMS0xLjEzLS4xLS45OSAwLTEuOTMuMjEtMi43OC41OHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIyMFwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjc4IDE3LjU4QTYuOTUgNi45NSAwIDAgMCAyMCAxN2MtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYyMUgyNHYtMS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTE2LjI0IDE2LjY1Yy0xLjE3LS41Mi0yLjYxLS45LTQuMjQtLjktMS42MyAwLTMuMDcuMzktNC4yNC45QTIuOTg4IDIuOTg4IDAgMCAwIDYgMTkuMzlWMjFoMTJ2LTEuNjFjMC0xLjE4LS42OC0yLjI2LTEuNzYtMi43NHpNOSAxMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi40OCAxMC44NkMyLjE3IDEwLjEgMiA5LjM2IDIgOC42IDIgNi4wMiA0LjAyIDQgNi42IDRjMi42OCAwIDMuODIgMS43NCA1LjQgMy41OUMxMy41NyA1Ljc2IDE0LjcgNCAxNy40IDQgMTkuOTggNCAyMiA2LjAyIDIyIDguNmMwIC43Ni0uMTcgMS41LS40OCAyLjI2LjY1LjMxIDEuMTguODIgMS41MyAxLjQ0LjYtMS4yLjk1LTIuNDIuOTUtMy43QzI0IDQuOSAyMS4xIDIgMTcuNCAyYy0yLjA5IDAtNC4wOS45Ny01LjQgMi41MUMxMC42OSAyLjk3IDguNjkgMiA2LjYgMiAyLjkgMiAwIDQuOSAwIDguNmMwIDEuMjguMzUgMi41Ljk2IDMuNy4zNS0uNjIuODgtMS4xMyAxLjUyLTEuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpdmVyc2l0eTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC4xIDE1LjkgMS40Mi0xLjQyQzguNzkgMTIuMDUgNyAxMC40MSA3IDguODUgNyA3LjggNy44IDcgOC44NSA3YzEuMTEgMCAxLjU0LjY1IDIuNjggMmguOTNjMS4xMi0xLjMxIDEuNTMtMiAyLjY4LTIgLjg3IDAgMS41NS41NCAxLjc3IDEuMzIuMzUtLjA0LjY4LS4wNiAxLS4wNi4zNiAwIC43LjAzIDEuMDMuMDhDMTguNyA2LjQzIDE3LjEzIDUgMTUuMTUgNWMtLjEyIDAtLjIzLjAzLS4zNS4wNC4xMi0uMzMuMi0uNjcuMi0xLjA0IDAtMS42Ni0xLjM0LTMtMy0zUzkgMi4zNCA5IDRjMCAuMzcuMDguNzEuMiAxLjA0LS4xMi0uMDEtLjIzLS4wNC0uMzUtLjA0QzYuNjkgNSA1IDYuNjkgNSA4Ljg1YzAgMi40MiAyLjA0IDQuMzEgNS4xIDcuMDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjUgMTYuMjRjLS4zMi0uMTgtLjY2LS4yOS0xLS4zNS4wNy0uMS4xNS0uMTguMjEtLjI4IDEuMDgtMS44Ny40Ni00LjE4LTEuNDEtNS4yNi0yLjA5LTEuMjEtNC43Ni0uMzktOC42NS45bC41MiAxLjk0YzMuNDctMS4xNCA1Ljc5LTEuODggNy4xNC0xLjEuOTEuNTMgMS4yIDEuNjEuNjggMi41My0uNTYuOTYtMS4zMyAxLTMuMDcgMS4zMmwtLjQ3LjgxYy41OCAxLjYyLjk3IDIuMzMuMzkgMy4zMi0uNTMuOTEtMS42MSAxLjItMi41My42OC0uMDYtLjAzLS4xMS0uMDktLjE3LS4xMy0uMy42Ny0uNjQgMS4yNC0xLjAzIDEuNzMuMDcuMDQuMTMuMDkuMi4xNCAxLjg3IDEuMDggNC4xOC40NiA1LjI2LTEuNDEuMDYtLjEuMDktLjIxLjE0LS4zMi4yMi4yNy40OC41MS44LjY5IDEuNDMuODMgMy4yNy4zNCA0LjEtMS4xcy4zMi0zLjI5LTEuMTEtNC4xMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMzIgMTQuMDFjLS43NCAzLjU4LTEuMjcgNS45NS0yLjYyIDYuNzMtLjkxLjUzLTIgLjI0LTIuNTMtLjY4LS41Ni0uOTYtLjItMS42Ni4zOS0zLjMybC0uNDYtLjgxYy0xLjctLjMxLTIuNS0uMzMtMy4wNy0xLjMyLS41My0uOTEtLjI0LTIgLjY4LTIuNTMuMDktLjA1LjE5LS4wOC4yOS0uMTEtLjM1LS41Ni0uNjQtMS4xNy0uODItMS44NS0uMTYuMDctLjMyLjE0LS40OC4yMy0xLjg3IDEuMDgtMi40OSAzLjM5LTEuNDEgNS4yNi4wNi4xLjE0LjE4LjIxLjI4LS4zNC4wNi0uNjguMTctMSAuMzUtMS40My44My0xLjkzIDIuNjYtMS4xIDQuMXMyLjY2IDEuOTMgNC4xIDEuMWMuMzItLjE4LjU4LS40Mi44LS42OS4wNS4xMS4wOC4yMi4xNC4zMiAxLjA4IDEuODcgMy4zOSAyLjQ5IDUuMjYgMS40MSAyLjA5LTEuMjEgMi43MS0zLjkzIDMuNTUtNy45NGwtMS45My0uNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZERpdmVyc2l0eTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjMyIDEzLjAxYy45Ni4wMiAxLjg1LjUgMi40NSAxLjM0QTMuOTYxIDMuOTYxIDAgMCAwIDEyIDE2YzEuMjkgMCAyLjUtLjYyIDMuMjMtMS42Ni42LS44NCAxLjQ5LTEuMzIgMi40NS0xLjM0LS43Mi0xLjIyLTMuNi0yLTUuNjgtMi0yLjA3IDAtNC45Ni43OC01LjY4IDIuMDF6TTQgMTNjMS42NiAwIDMtMS4zNCAzLTNTNS42NiA3IDQgN3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzek0yMCAxM2MxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6TTEyIDEwYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRoLTMuMjdjLS43NyAwLTEuMzUuNDUtMS42OC45Mi0uMDQuMDYtMS4zNiAyLjA4LTQuMDUgMi4wOC0xLjQzIDAtMy4wMy0uNjQtNC4wNS0yLjA4LS4zOS0uNTUtMS0uOTItMS42OC0uOTJIM2MtMS4xIDAtMiAuOS0yIDJ2NGg3di0yLjI2YzEuMTUuOCAyLjU0IDEuMjYgNCAxLjI2czIuODUtLjQ2IDQtMS4yNlYyMGg3di00YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb21haW5BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgxNHYtMmgtNHYtMmgydi0yaC0ydi0yaDJ2LTJoLTJWOWg4djZoMlY3SDEyek02IDE5SDR2LTJoMnYyem0wLTRINHYtMmgydjJ6bTAtNEg0VjloMnYyem0wLTRINFY1aDJ2MnptNCAxMkg4di0yaDJ2MnptMC00SDh2LTJoMnYyem0wLTRIOFY5aDJ2MnptMC00SDhWNWgydjJ6bTE0IDEydjJoLTJ2MmgtMnYtMmgtMnYtMmgydi0yaDJ2Mmgyem0tNi04aC0ydjJoMnYtMnptMCA0aC0ydjJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRG9tYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgyMFY3SDEyek02IDE5SDR2LTJoMnYyem0wLTRINHYtMmgydjJ6bTAtNEg0VjloMnYyem0wLTRINFY1aDJ2MnptNCAxMkg4di0yaDJ2MnptMC00SDh2LTJoMnYyem0wLTRIOFY5aDJ2MnptMC00SDhWNWgydjJ6bTEwIDEyaC04di0yaDJ2LTJoLTJ2LTJoMnYtMmgtMlY5aDh2MTB6bS0yLThoLTJ2Mmgydi0yem0wIDRoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWREb3duaGlsbFNraWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgNC41YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTIuNzIgMTYuNC43Ni4yN2E1LjkzMyA1LjkzMyAwIDAgMCA0LjM0LS4xN0wyMiAyMi4xM2MtMS4wNS41NS0yLjI0Ljg3LTMuNS44Ny0uODYgMC0xLjY4LS4xNC0yLjQ1LS40MUwyIDE3LjQ3bC41LTEuNDEgNi45IDIuNTEgMS43Mi00LjQ0LTMuNTctMy43M2MtLjg5LS45NC0uNjctMi40Ny40NS0zLjEybDMuNDgtMi4wMWMxLjEtLjY0IDIuNTItLjEgMi45MSAxLjExbC4zMyAxLjA4YTUuMDE3IDUuMDE3IDAgMCAwIDIuODMgMy4xNGwuNTItMS42IDEuNDMuNDYtMS4xMiAzLjQ1QTcuMDI5IDcuMDI5IDAgMCAxIDEzIDguNTlsLTIuNTMgMS40NSAzLjAzIDMuNDYtMi4yMiA1Ljc2IDMuMDkgMS4xMiAyLjEtNi40NGMuNDYuMTguOTQuMzEgMS40NC40MWwtMi4xMyA2LjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFZGl0Tm90aWZpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjU4IDYuMjUgMS43NyAxLjc3TDE0LjM3IDEzSDEyLjZ2LTEuNzdsNC45OC00Ljk4em0zLjI3LS40NC0xLjA2LTEuMDZjLS4yLS4yLS41MS0uMi0uNzEgMGwtLjg1Ljg1TDIwIDcuMzdsLjg1LS44NWMuMi0uMi4yLS41MiAwLS43MXpNMTggMTIuMlYxN2gydjJINHYtMmgydi03YzAtMi43OSAxLjkxLTUuMTQgNC41LTUuOHYtLjdjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2LjdjLjgyLjIxIDEuNTcuNTkgMi4yMSAxLjA5TDEwLjYgMTAuNFYxNWg0LjZsMi44LTIuOHpNMTAgMjBoNGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZGVybHlXb21hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgMTFjLTEuNTYgMC0yLjkyLS45LTMuNTgtMi4yMWwtLjc5LTEuNjdDMTQuMTIgNy4xIDEzLjYzIDYgMTIuMzQgNiA4LjcyIDYgNiAxNi42OSA2IDE5aDIuNWwtMi4xIDIuOEw4IDIzbDMtNGgydjRoMnYtNC4wM0wxMyAxM2wuNDktMi43MUE2LjAyIDYuMDIgMCAwIDAgMTcgMTIuODF2LjY5aDF2LTFjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVWMjNoMVYxMi41YzAtLjgzLS42Ny0xLjUtMS41LTEuNXpNMTEuNiAyLjkxYy0uMDYuMTktLjEuMzgtLjEuNTkgMCAxLjEuOSAyIDIgMnMyLS45IDItMi0uOS0yLTItMmMtLjIxIDAtLjQuMDQtLjU5LjEtLjE1LS4zNS0uNS0uNi0uOTEtLjYtLjU1IDAtMSAuNDUtMSAxIDAgLjQxLjI1Ljc2LjYuOTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVsZGVybHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYuNSA3VjIzaC0xVjEyLjVjMC0uMjgtLjIyLS41LS41LS41cy0uNS4yMi0uNS41djFoLTF2LS42OWE2LjAyIDYuMDIgMCAwIDEtMy41MS0yLjUyYy0uMzEuODctLjQ5IDEuNzgtLjQ5IDIuNzEgMCAuMjMuMDIuNDYuMDMuNjlMMTUgMTYuNVYyM2gtMnYtNWwtMS43OC0yLjU0TDExIDE5bC0zIDQtMS42LTEuMkw5IDE4LjMzVjEzYzAtMS4xNS4xOC0yLjI5LjUtMy4zOWwtMS41Ljg1VjE0SDZWOS4zbDUuNC0zLjA3di4wMWEyIDIgMCAwIDEgMS45NC4wM2MuMzYuMjEuNjMuNTEuOC44NWwuNzkgMS42N0EzLjk4NyAzLjk4NyAwIDAgMCAxOC41IDExYy44MyAwIDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaUVtb3Rpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNOC41IDhjLjgzIDAgMS41LjY3IDEuNSAxLjVTOS4zMyAxMSA4LjUgMTEgNyAxMC4zMyA3IDkuNSA3LjY3IDggOC41IDh6TTEyIDE4Yy0yLjI4IDAtNC4yMi0xLjY2LTUtNGgxMGMtLjc4IDIuMzQtMi43MiA0LTUgNHptMy41LTdjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxNC42NyA4IDE1LjUgOHMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppRXZlbnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNWgtMlYzSDd2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxYzAgMi41NSAxLjkyIDQuNjMgNC4zOSA0Ljk0QTUuMDEgNS4wMSAwIDAgMCAxMSAxNS45VjE5SDd2MmgxMHYtMmgtNHYtMy4xYTUuMDEgNS4wMSAwIDAgMCAzLjYxLTIuOTZDMTkuMDggMTIuNjMgMjEgMTAuNTUgMjEgOFY3YzAtMS4xLS45LTItMi0yek01IDhWN2gydjMuODJDNS44NCAxMC40IDUgOS4zIDUgOHptMTQgMGMwIDEuMy0uODQgMi40LTIgMi44MlY3aDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1vamlGbGFncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDktMS0ySDdWNS43MmMuNi0uMzQgMS0uOTggMS0xLjcyIDAtMS4xLS45LTItMi0ycy0yIC45LTIgMmMwIC43NC40IDEuMzggMSAxLjcyVjIxaDJ2LTRoNWwxIDJoN1Y5aC02em00IDhoLTRsLTEtMkg3VjloNWwxIDJoNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaUZvb2RCZXZlcmFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNIOXYyLjRsMS44MSAxLjQ1Yy4xMi4wOS4xOS4yNC4xOS4zOXY0LjI2YzAgLjI4LS4yMi41LS41LjVoLTRjLS4yOCAwLS41LS4yMi0uNS0uNVY3LjI0YzAtLjE1LjA3LS4zLjE5LS4zOUw4IDUuNFYzSDR2MTBjMCAyLjIxIDEuNzkgNCA0IDRoNmMyLjIxIDAgNC0xLjc5IDQtNHYtM2gyYTIgMiAwIDAgMCAyLTJWNWMwLTEuMTEtLjg5LTItMi0yem0wIDVoLTJWNWgydjN6TTQgMTloMTZ2Mkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaU5hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk0IDQuODhBMS4zMiAxLjMyIDAgMCAwIDIwLjY4IDRIMTkuNmwtLjMxLS45N0MxOS4xNSAyLjQzIDE4LjYxIDIgMTggMnMtMS4xNS40My0xLjI5IDEuMDRMMTYuNCA0aC0xLjA3Yy0uNTcgMC0xLjA4LjM1LTEuMjYuODgtLjE5LjU2LjA0IDEuMTcuNTYgMS40OGwuODcuNTItLjQgMS4yNGMtLjIzLjU4LS4wNCAxLjI1LjQ1IDEuNjIuMjMuMTcuNTEuMjYuNzguMjYuMzEgMCAuNjEtLjExLjg2LS4zMmwuODEtLjcuODEuN2MuMjUuMjEuNTUuMzIuODYuMzIuMjcgMCAuNTUtLjA5Ljc4LS4yNi41LS4zNy42OC0xLjA0LjQ1LTEuNjJsLS4zOS0xLjI0Ljg3LS41MmMuNTEtLjMxLjc0LS45Mi41Ni0xLjQ4ek0xOCA3Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTEzLjQ5IDEwLjUxYy0uNDMtLjQzLS45NC0uNzMtMS40OS0uOTNWOGgtMXYxLjM4Yy0uMTEtLjAxLS4yMy0uMDMtLjM0LS4wMy0xLjAyIDAtMi4wNS4zOS0yLjgzIDEuMTctLjE2LjE2LS4zLjM0LS40My41M0w2IDEwLjUyYTMuMDEgMy4wMSAwIDAgMC0zLjgzIDEuODJjLS4yNy43NS0uMjMgMS41Ny4xMiAyLjI5LjIzLjQ4LjU4Ljg3IDEgMS4xNi0uMzggMS4zNS0uMDYgMi44NSAxIDMuOTFhMy45ODEgMy45ODEgMCAwIDAgMy45MSAxYy4yOS40Mi42OC43NyAxLjE2IDEgLjQyLjIuODUuMyAxLjI5LjMuMzQgMCAuNjgtLjA2IDEuMDEtLjE3YTMuMDA3IDMuMDA3IDAgMCAwIDEuODItMy44NWwtLjUyLTEuMzdjLjE4LS4xMy4zNi0uMjcuNTMtLjQzLjg3LS44NyAxLjI0LTIuMDQgMS4xNC0zLjE3SDE2di0xaC0xLjU5Yy0uMTktLjU1LS40OS0xLjA2LS45Mi0xLjV6bS04LjgyIDMuNzhjLS4yNS0uMDktLjQ1LS4yNy0uNTctLjUxcy0uMTMtLjUxLS4wNC0uNzZjLjE5LS41Mi43Ni0uNzkgMS4yNi0uNjFsMy4xNiAxLjE5Yy0xLjE1LjYtMi42MyAxLjExLTMuODEuNjl6bTYuMzIgNS42NWMtLjI1LjA5LS41Mi4wOC0uNzYtLjA0YS45ODkuOTg5IDAgMCAxLS41MS0uNTdjLS40Mi0xLjE4LjA5LTIuNjUuNy0zLjhsMS4xOCAzLjEzYy4xOC41Mi0uMDkgMS4xLS42MSAxLjI4em0xLjIxLTUuMzQtLjYxLTEuNjFjMC0uMDEtLjAxLS4wMi0uMDItLjAzbC0uMDYtLjEyYS42NzMuNjczIDAgMCAwLS4wNy0uMTFsLS4wOS0uMDktLjA5LS4wOWMtLjAzLS4wMy0uMDctLjA1LS4xMS0uMDctLjA0LS4wMi0uMDctLjA1LS4xMi0uMDYtLjAxIDAtLjAyLS4wMS0uMDMtLjAybC0xLjYtLjZhMS45NjYgMS45NjYgMCAwIDEgMi42Ny4xM2MuNzMuNzMuNzcgMS44OC4xMyAyLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaU9iamVjdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzYy0uNDYgMC0uOTMuMDQtMS40LjE0LTIuNzYuNTMtNC45NiAyLjc2LTUuNDggNS41Mi0uNDggMi42MS40OCA1LjAxIDIuMjIgNi41Ni40My4zOC42Ni45MS42NiAxLjQ3VjE5YzAgMS4xLjkgMiAyIDJoLjI4YTEuOTggMS45OCAwIDAgMCAzLjQ0IDBIMTRjMS4xIDAgMi0uOSAyLTJ2LTIuMzFjMC0uNTUuMjItMS4wOS42NC0xLjQ2QTYuOTU2IDYuOTU2IDAgMCAwIDE5IDEwYzAtMy44Ny0zLjEzLTctNy03em0yIDE2aC00di0xaDR2MXptMC0yaC00di0xaDR2MXptLTEuNS01LjU5VjE0aC0xdi0yLjU5TDkuNjcgOS41OWwuNzEtLjcxTDEyIDEwLjVsMS42Mi0xLjYyLjcxLjcxLTEuODMgMS44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW1vamlQZW9wbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS44OSA4LjExQzE1LjUgNy43MiAxNC44MyA3IDEzLjUzIDdoLTIuNTRDOC4yNCA2Ljk5IDYgNC43NSA2IDJINGMwIDMuMTYgMi4xMSA1Ljg0IDUgNi43MVYyMmgydi02aDJ2NmgyVjEwLjA1TDE4Ljk1IDE0bDEuNDEtMS40MS00LjQ3LTQuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEVtb2ppU3ltYm9scyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMmg4djJIM3pNNiAxMWgyVjdoM1Y1SDN2Mmgzek0xMi40MDQgMjAuMTgybDcuNzc4LTcuNzc4IDEuNDE0IDEuNDE0LTcuNzc4IDcuNzc4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOS41XCIsXCJjeVwiOlwiMTkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTFBMi41IDIuNSAwIDAgMCAxOCA4LjVWNGgzVjJoLTR2NC41MWMtLjQyLS4zMi0uOTMtLjUxLTEuNS0uNTFhMi41IDIuNSAwIDAgMCAwIDV6TTkuNzQgMTUuOTZsLTEuNDEgMS40MS0uNzEtLjcxLjM1LS4zNWEyLjQ5OSAyLjQ5OSAwIDAgMC0xLjc3LTQuMjcgMi40OTkgMi40OTkgMCAwIDAtMS43NyA0LjI3bC4zNS4zNS0xLjA2IDEuMDZjLS45OC45OC0uOTggMi41NiAwIDMuNTQuNS41IDEuMTQuNzQgMS43OC43NHMxLjI4LS4yNCAxLjc3LS43M2wxLjA2LTEuMDYgMS40MSAxLjQxIDEuNDEtMS40MS0xLjQxLTEuNDEgMS40MS0xLjQxLTEuNDEtMS40M3pNNS44NSAxNC4yYy4xMi0uMTIuMjYtLjE1LjM1LS4xNXMuMjMuMDMuMzUuMTVjLjE5LjIuMTkuNTEgMCAuNzFsLS4zNS4zNS0uMzUtLjM2YS41MDEuNTAxIDAgMCAxIDAtLjd6bTAgNS42NWMtLjEyLjEyLS4yNi4xNS0uMzUuMTVzLS4yMy0uMDMtLjM1LS4xNWEuNTEzLjUxMyAwIDAgMSAwLS43MWwxLjA2LTEuMDYuNzEuNzEtMS4wNyAxLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRFbW9qaVRyYW5zcG9ydGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTcgMTAuNjZjLS4xNC0uNC0uNTItLjY2LS45Ny0uNjZoLTcuMTljLS40NiAwLS44My4yNi0uOTguNjZMMTAgMTQuNzdsLjAxIDUuNTFjMCAuMzguMzEuNzIuNjkuNzJoLjYyYy4zOCAwIC42OC0uMzguNjgtLjc2VjE5aDh2MS4yNGMwIC4zOC4zMS43Ni42OS43NmguNjFjLjM4IDAgLjY5LS4zNC42OS0uNzJsLjAxLTEuMzd2LTQuMTRsLTEuNDMtNC4xMXptLTguMTYuMzRoNy4xOWwxLjAzIDNoLTkuMjVsMS4wMy0zek0xMiAxN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem04IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOWgxVjNIN3Y1SDJ2MTNoMVY5aDVWNGg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDExaDJ2Mkg1ek0xMCA1aDJ2MmgtMnpNNSAxNWgydjJINXpNNSAxOWgydjJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRW5naW5lZXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00ek0yMi4xIDYuODRjLjAxLS4xMS4wMi0uMjIuMDItLjM0IDAtLjEyLS4wMS0uMjMtLjAzLS4zNGwuNzQtLjU4Yy4wNy0uMDUuMDgtLjE1LjA0LS4yMmwtLjctMS4yMWMtLjA0LS4wOC0uMTQtLjEtLjIxLS4wOGwtLjg2LjM1Yy0uMTgtLjE0LS4zOC0uMjUtLjU5LS4zNGwtLjEzLS45M0EuMTgyLjE4MiAwIDAgMCAyMC4yIDNoLTEuNGMtLjA5IDAtLjE2LjA2LS4xNy4xNWwtLjEzLjkzYy0uMjEuMDktLjQxLjIxLS41OS4zNGwtLjg3LS4zNWMtLjA4LS4wMy0uMTcgMC0uMjEuMDhsLS43IDEuMjFjLS4wNC4wOC0uMDMuMTcuMDQuMjJsLjc0LjU4YTEuOTUzIDEuOTUzIDAgMCAwIDAgLjY4bC0uNzQuNThjLS4wNy4wNS0uMDguMTUtLjA0LjIybC43IDEuMjFjLjA0LjA4LjE0LjEuMjEuMDhsLjg3LS4zNWMuMTguMTQuMzguMjUuNTkuMzRsLjEzLjkzYy4wMS4wOS4wOC4xNS4xNy4xNWgxLjRjLjA5IDAgLjE2LS4wNi4xNy0uMTVsLjEzLS45M2MuMjEtLjA5LjQxLS4yMS41OS0uMzRsLjg3LjM1Yy4wOC4wMy4xNyAwIC4yMS0uMDhsLjctMS4yMWMuMDQtLjA4LjAzLS4xNy0uMDQtLjIybC0uNzMtLjU4em0tMi42LjkxYTEuMjUgMS4yNSAwIDEgMSAwLTIuNSAxLjI1IDEuMjUgMCAwIDEgMCAyLjV6TTE5LjkyIDExLjY4bC0uNS0uODdjLS4wMy0uMDYtLjEtLjA4LS4xNS0uMDZsLS42Mi4yNWMtLjEzLS4xLS4yNy0uMTgtLjQyLS4yNGwtLjA5LS42NkEuMTUuMTUgMCAwIDAgMTggMTBoLTFjLS4wNiAwLS4xMS4wNC0uMTIuMTFsLS4wOS42NmMtLjE1LjA2LS4yOS4xNS0uNDIuMjRsLS42Mi0uMjVjLS4wNi0uMDItLjEyIDAtLjE1LjA2bC0uNS44N2MtLjAzLjA2LS4wMi4xMi4wMy4xNmwuNTMuNDFjLS4wMS4wOC0uMDIuMTYtLjAyLjI0IDAgLjA4LjAxLjE3LjAyLjI0bC0uNTMuNDFjLS4wNS4wNC0uMDYuMTEtLjAzLjE2bC41Ljg3Yy4wMy4wNi4xLjA4LjE1LjA2bC42Mi0uMjVjLjEzLjEuMjcuMTguNDIuMjRsLjA5LjY2Yy4wMS4wNy4wNi4xMS4xMi4xMWgxYy4wNiAwIC4xMi0uMDQuMTItLjExbC4wOS0uNjZjLjE1LS4wNi4yOS0uMTUuNDItLjI0bC42Mi4yNWMuMDYuMDIuMTIgMCAuMTUtLjA2bC41LS44N2MuMDMtLjA2LjAyLS4xMi0uMDMtLjE2bC0uNTItLjQxYy4wMS0uMDguMDItLjE2LjAyLS4yNCAwLS4wOC0uMDEtLjE3LS4wMi0uMjRsLjUzLS40MWMuMDUtLjA0LjA2LS4xMS4wNC0uMTd6bS0yLjQyIDEuNjVjLS40NiAwLS44My0uMzgtLjgzLS44MyAwLS40Ni4zOC0uODMuODMtLjgzcy44My4zOC44My44M2MwIC40Ni0uMzcuODMtLjgzLjgzek00Ljc0IDloOC41M2MuMjcgMCAuNDktLjIyLjQ5LS40OXYtLjAyYS40OS40OSAwIDAgMC0uNDktLjQ5SDEzYzAtMS40OC0uODEtMi43NS0yLTMuNDV2Ljk1YzAgLjI4LS4yMi41LS41LjVzLS41LS4yMi0uNS0uNVY0LjE0QzkuNjggNC4wNiA5LjM1IDQgOSA0cy0uNjguMDYtMSAuMTRWNS41YzAgLjI4LS4yMi41LS41LjVTNyA1Ljc4IDcgNS41di0uOTVDNS44MSA1LjI1IDUgNi41MiA1IDhoLS4yNmEuNDkuNDkgMCAwIDAtLjQ5LjQ5di4wM2MwIC4yNi4yMi40OC40OS40OHpNOSAxM2MxLjg2IDAgMy40MS0xLjI4IDMuODYtM0g1LjE0Yy40NSAxLjcyIDIgMyAzLjg2IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2UyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTcgMTMuNTJ2LS4wNEMyMy4yMSAxMi4zOCAyNCAxMC43OCAyNCA5YzAtMy4zMS0yLjY5LTYtNi02LS4yNiAwLS41Mi4wMi0uNzguMDZhNS45OCA1Ljk4IDAgMCAwLTEwLjQ0IDBDNi41MiAzLjAyIDYuMjYgMyA2IDMgMi42OSAzIDAgNS42OSAwIDljMCAxLjc4Ljc5IDMuMzggMi4wMiA0LjQ4di4wNEE2LjAwOCA2LjAwOCAwIDAgMCAwIDE4YzAgMy4zMSAyLjY5IDYgNiA2IDEuMzkgMCAyLjY3LS40OCAzLjY5LTEuMjguNzQuMTggMS41MS4yOCAyLjMxLjI4czEuNTctLjEgMi4zMS0uMjhjMS4wMi44IDIuMyAxLjI4IDMuNjkgMS4yOCAzLjMxIDAgNi0yLjY5IDYtNiAwLTEuNzgtLjc5LTMuMzgtMi4wMy00LjQ4ek0xMiAyMWMtNC40MSAwLTgtMy41OS04LTggMC0zLjcyIDIuNTYtNi44NSA2LTcuNzR2LjA1YzAgMy4zNCAyLjcyIDYuMDYgNi4wNiA2LjA2IDEuMjYgMCAyLjQ1LS4zOSAzLjQ1LTEuMDkuMzEuODYuNDkgMS43Ny40OSAyLjcyIDAgNC40MS0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuOTEgMTEuOTZDMjIuMzkgNi4zMiAxNy42NiAyIDEyIDJTMS42MSA2LjMyIDEuMDkgMTEuOTZsLS45IDkuODZjLS4xIDEuMTcuODIgMi4xOCAyIDIuMThoMTkuNjJjMS4xOCAwIDIuMS0xLjAxIDEuOTktMi4xOGwtLjg5LTkuODZ6TTQuNTQgOS4xM2MuODcuNTUgMS44OS44NyAyLjk2Ljg3IDEuODYgMCAzLjUtLjkzIDQuNS0yLjM1QzEzIDkuMDcgMTQuNjQgMTAgMTYuNSAxMGMxLjA3IDAgMi4wOS0uMzIgMi45Ni0uODcuMzQuODkuNTQgMS44Ni41NCAyLjg3IDAgNC40MS0zLjU5IDgtOCA4cy04LTMuNTktOC04YzAtMS4wMS4yLTEuOTguNTQtMi44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy0uOTYgMC0xLjg4LjE0LTIuNzUuMzlBNC45ODYgNC45ODYgMCAwIDAgNSAwQzIuMjQgMCAwIDIuMjQgMCA1YzAgMS44Ljk2IDMuMzcgMi4zOSA0LjI1QzIuMTQgMTAuMTIgMiAxMS4wNCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwczEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOCAwLS4wNS4wMS0uMS4wMS0uMTUgMi42LS45OCA0LjY4LTIuOTkgNS43NC01LjU1YTkuOTQyIDkuOTQyIDAgMCAwIDkuOTIgMy40NmMuMjEuNzEuMzMgMS40Ni4zMyAyLjI0IDAgNC40MS0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZTUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuMTIuMjMtMi4xOC42NS0zLjE1YS40OTUuNDk1IDAgMCAwIC44NS0uMzVjMC0uMjUtLjE5LS40NS0uNDMtLjQ5LjE1LS4yNi4zMi0uNTEuNDktLjc1LS4wMy4wOC0uMDYuMTUtLjA2LjI0IDAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41UzYuMjggNyA2IDdjLS4xMyAwLS4yNS4wNS0uMzQuMTMuNTItLjY4IDEuMTUtMS4yOCAxLjg2LTEuNzZBLjQ5NS40OTUgMCAwIDAgOCA2YS40OTUuNDk1IDAgMCAwIC4xLS45OGMuMTYtLjA5LjMyLS4xNy40OS0uMjUuMDkuMTQuMjQuMjMuNDEuMjMuMjggMCAuNS0uMjIuNS0uNSAwLS4wMy0uMDEtLjA2LS4wMi0uMDkuMzktLjEzLjc5LS4yMyAxLjIxLS4zLS4xMS4xLS4xOS4yMy0uMTkuMzkgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVhLjUxLjUxIDAgMCAwLS4zLS40NmMuMjYtLjAzLjUzLS4wNC44LS4wNHMuNTQuMDEuOC4wNGMtLjE4LjA4LS4zLjI1LS4zLjQ2IDAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41YzAtLjE2LS4wOC0uMjktLjE5LS4zOC40MS4wNy44Mi4xNyAxLjIxLjMtLjAxLjAyLS4wMi4wNS0uMDIuMDggMCAuMjguMjIuNS41LjUuMTcgMCAuMzItLjA5LjQxLS4yMy4xNy4wOC4zMy4xNi40OS4yNUEuNDk1LjQ5NSAwIDAgMCAxNiA2Yy4yOCAwIC41LS4yMi41LS41IDAtLjA1LS4wMS0uMDktLjAzLS4xMy43MS40OCAxLjM0IDEuMDggMS44NiAxLjc2YS40OTUuNDk1IDAgMCAwLS44My4zN2MwIC4yOC4yMi41LjUuNXMuNS0uMjIuNS0uNWMwLS4wOS0uMDMtLjE2LS4wNy0uMjMuMTguMjQuMzQuNDkuNDkuNzUtLjIzLjAzLS40Mi4yMy0uNDIuNDhhLjQ5NS40OTUgMCAwIDAgLjg1LjM1Yy40Mi45Ny42NSAyLjAzLjY1IDMuMTUgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzXCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjguNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzXCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmFjZTYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHYtLjAzYzIuMzEtLjIyIDMuNDMtMS41OSA0LjM0LTMuNDEuMTctLjM1LjUxLS41Ni45LS41Nmg1LjUzYy4zOCAwIC43Mi4yMS44OS41NS45IDEuOCAxLjk5IDMuMTkgNC4zNCAzLjQxdi4wM2MwIDQuNDItMy41OSA4LjAxLTggOC4wMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZhY2Vib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTBTMiA2LjQ4IDIgMTJjMCA0Ljg0IDMuNDQgOC44NyA4IDkuOFYxNUg4di0zaDJWOS41QzEwIDcuNTcgMTEuNTcgNiAxMy41IDZIMTZ2M2gtMmMtLjU1IDAtMSAuNDUtMSAxdjJoM3YzaC0zdjYuOTVjNS4wNS0uNSA5LTQuNzYgOS05Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGZW1hbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDkuNUMxNy41IDYuNDYgMTUuMDQgNCAxMiA0UzYuNSA2LjQ2IDYuNSA5LjVjMCAyLjcgMS45NCA0LjkzIDQuNSA1LjRWMTdIOXYyaDJ2Mmgydi0yaDJ2LTJoLTJ2LTIuMWMyLjU2LS40NyA0LjUtMi43IDQuNS01LjR6bS05IDBDOC41IDcuNTcgMTAuMDcgNiAxMiA2czMuNSAxLjU3IDMuNSAzLjVTMTMuOTMgMTMgMTIgMTNzLTMuNS0xLjU3LTMuNS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZpcmVwbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMnYyMGgyMFYySDJ6bTkuODYgMTQuOTZjLjc2LS4yNCAxLjQtMS4wNCAxLjUzLTEuNjMuMTMtLjU2LS4xLTEuMDUtLjItMS42LS4wOC0uNDYtLjA3LS44NS4wOC0xLjI4LjU0IDEuMjEgMi4xNSAxLjY0IDEuOTggMy4xOC0uMTkgMS43LTIuMTEgMi4zOC0zLjM5IDEuMzN6TTIwIDIwaC0ydi0yaC0yLjAyQTQuOTggNC45OCAwIDAgMCAxNyAxNWMwLTEuODktMS4wOS0yLjg1LTEuODUtMy4zN0MxMi4yIDkuNjEgMTMgNyAxMyA3Yy02LjczIDMuNTctNi4wMiA3LjQ3LTYgOCAuMDMuOTYuNDkgMi4wNyAxLjIzIDNINnYySDRWNGgxNnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRml0Yml0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuODkgMTMuODljMS4wNCAwIDEuODktLjg1IDEuODktMS44OXMtLjg1LTEuODktMS44OS0xLjg5UzE4IDEwLjk2IDE4IDEycy44NSAxLjg5IDEuODkgMS44OXptLTQuMjQtLjIxYy45MyAwIDEuNjgtLjc1IDEuNjgtMS42OHMtLjc1LTEuNjgtMS42OC0xLjY4Yy0uOTMgMC0xLjY4Ljc1LTEuNjggMS42OHMuNzUgMS42OCAxLjY4IDEuNjh6bTAtNC4yNmMuOTMgMCAxLjY4LS43NSAxLjY4LTEuNjggMC0uOTMtLjc1LTEuNjgtMS42OC0xLjY4LS45MyAwLTEuNjguNzUtMS42OCAxLjY4IDAgLjkzLjc1IDEuNjggMS42OCAxLjY4em0wIDguNTFjLjkzIDAgMS42OC0uNzUgMS42OC0xLjY4IDAtLjkzLS43NS0xLjY4LTEuNjgtMS42OC0uOTMgMC0xLjY4Ljc1LTEuNjggMS42OCAwIC45Mi43NSAxLjY4IDEuNjggMS42OHptLTQuMjQtNC40NmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdzLS42Ni0xLjQ3LTEuNDctMS40N2MtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0wLTQuMjZjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3cy0uNjYtMS40Ny0xLjQ3LTEuNDdjLS44MSAwLTEuNDcuNjYtMS40NyAxLjQ3cy42NSAxLjQ3IDEuNDcgMS40N3ptMCA4LjUyYy44MSAwIDEuNDctLjY2IDEuNDctMS40NyAwLS44MS0uNjYtMS40Ny0xLjQ3LTEuNDctLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDctLjAxLjgxLjY1IDEuNDcgMS40NyAxLjQ3em0wIDQuMjdjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3IDAtLjgxLS42Ni0xLjQ3LTEuNDctMS40Ny0uODEgMC0xLjQ3LjY2LTEuNDcgMS40Ny0uMDEuODEuNjUgMS40NyAxLjQ3IDEuNDd6bTAtMTcuMDZjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3UzEyLjIyIDIgMTEuNDEgMmMtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0tNC4yNSA4LjMyYy43IDAgMS4yNi0uNTcgMS4yNi0xLjI2cy0uNTctMS4yNi0xLjI2LTEuMjZhMS4yNjEgMS4yNjEgMCAwIDAgMCAyLjUyem0wIDQuMjVhMS4yNjEgMS4yNjEgMCAwIDAgMC0yLjUyIDEuMjYxIDEuMjYxIDAgMCAwIDAgMi41MnptMC04LjQ5YTEuMjYxIDEuMjYxIDAgMCAwIDAtMi41MiAxLjI2MSAxLjI2MSAwIDAgMCAwIDIuNTJ6bS0zLjg3IDQuMDNhMS4wNSAxLjA1IDAgMSAwIDAtMi4xIDEuMDUgMS4wNSAwIDAgMCAwIDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kRmxvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC42NyAxOWMtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMSAxLTMuMzQgMS0xLjI0IDAtMS4zOC0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxdjJjMS45NSAwIDIuMTEtMSAzLjM0LTEgMS4yNCAwIDEuMzggMSAzLjMzIDEgMS45NSAwIDIuMS0xIDMuMzQtMSAxLjIyIDAgMS40IDEgMy4zMyAxIDEuOTMgMCAyLjEtMSAzLjMzLTEgMS4yMiAwIDEuNCAxIDMuMzMgMXYtMmMtMS4yNCAwLTEuMzgtMS0zLjMzLTF6TTguNjggMTcuNWMxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzEgMXYtMmMtLjYzIDAtMS0uMjgtMS40OC0uNTVsLTIuMDItNy41MyAyLjA5Ljg1Ljc0LTEuODZMOS43OCAyIDIgMTEuNjFsMS41NyAxLjIzIDEuMzktMS43OC45MyAzLjQ4Yy0uMTgtLjAyLS4zNS0uMDUtLjU2LS4wNS0xLjk1IDAtMi4wOSAxLTMuMzMgMXYyYzEuOSAwIDIuMTctMSAzLjM1LTEgMS4xOS4wMSAxLjQyIDEuMDEgMy4zMyAxLjAxem01LjM2LTcuMzIgMS40MiA1LjMxYy0xLjM0LjA5LTEuNDctLjk5LTMuNDctLjk5LS4zNiAwLS42NS4wNC0uOTEuMWwtLjkxLTMuMzkgMy44Ny0xLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGb2xsb3dUaGVTaWducyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek01Ljc1IDguOSAzIDIzaDIuMWwxLjc1LThMOSAxN3Y2aDJ2LTcuNTVMOC45NSAxMy40bC42LTNDMTAuODUgMTIgMTIuOCAxMyAxNSAxM3YtMmMtMS44NSAwLTMuNDUtMS00LjM1LTIuNDVsLS45NS0xLjZDOS4zNSA2LjM1IDguNyA2IDggNmMtLjI1IDAtLjUuMDUtLjc1LjE1TDIgOC4zVjEzaDJWOS42NWwxLjc1LS43NU0xMyAydjdoMy43NXYxNGgxLjVWOUgyMlYyaC05em01LjAxIDZWNi4yNUgxNC41di0xLjVoMy41MVYzbDIuNDkgMi41TDE4LjAxIDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEZyb250SGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljc1IDhjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1VjE1SDE4Yy0xLjY1IDAtMyAxLjM1LTMgM2gtMWMwLTIuMDQgMS41My0zLjcyIDMuNS0zLjk3VjMuMjVhMS4yNSAxLjI1IDAgMCAwLTIuNSAwVjExaC0xVjEuMjVhMS4yNSAxLjI1IDAgMCAwLTIuNSAwVjExaC0xVjIuNzVhMS4yNSAxLjI1IDAgMCAwLTIuNSAwVjEySDdWNS43NWExLjI1IDEuMjUgMCAwIDAtMi41IDB2MTBjMCA0LjU2IDMuNjkgOC4yNSA4LjI1IDguMjVTMjEgMjAuMzEgMjEgMTUuNzV2LTYuNUMyMSA4LjU2IDIwLjQ0IDggMTkuNzUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR2lybCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDcuNWMuOTcgMCAxLjc1LS43OCAxLjc1LTEuNzVTMTIuOTcgNCAxMiA0cy0xLjc1Ljc4LTEuNzUgMS43NVMxMS4wMyA3LjUgMTIgNy41em0yIDguNXY0aC00di00SDhsMi4zOC02LjM4YTEuNzMzIDEuNzMzIDAgMCAxIDMuMjQgMEwxNiAxNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXBBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOVY3aC0ydjJoLTJ2MmgydjJoMnYtMmgyVjl6TTggMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0ek04IDEzYy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00ek0xMi41MSA0LjA1QzEzLjQzIDUuMTEgMTQgNi40OSAxNCA4cy0uNTcgMi44OS0xLjQ5IDMuOTVDMTQuNDcgMTEuNyAxNiAxMC4wNCAxNiA4cy0xLjUzLTMuNy0zLjQ5LTMuOTV6TTE2LjUzIDEzLjgzQzE3LjQyIDE0LjY2IDE4IDE1LjcgMTggMTd2M2gydi0zYzAtMS40NS0xLjU5LTIuNTEtMy40Ny0zLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDhjMC0xLjQyLS41LTIuNzMtMS4zMy0zLjc2LjQyLS4xNC44Ni0uMjQgMS4zMy0uMjQgMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDRoLS4xOGwtLjc3LS43N2MuNi0uOTQuOTUtMi4wNS45NS0zLjIzem03LjgzIDEySDIzdi0zYzAtMi4xOC0zLjU4LTMuNDctNi4zNC0zLjg3IDEuMS43NSAxLjk1IDEuNzEgMi4yMyAyLjk0TDIyLjgzIDIwek03LjI0IDQuNDFhMy45OTYgMy45OTYgMCAwIDEgNS4zNSA1LjM1TDcuMjQgNC40MXpNOS4xNyAxMkg5Yy0yLjIxIDAtNC0xLjc5LTQtNHYtLjE3TC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MUwxNyAxOS44M1YyMEgxdi0zYzAtMi42NiA1LjMzLTQgOC00IC4zNyAwIC44LjAzIDEuMjUuMDhMOS4xNyAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXBSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA5djJoLTZWOWg2ek04IDRDNS43OSA0IDQgNS43OSA0IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgOWMtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHptNC41MS04Ljk1QzEzLjQzIDUuMTEgMTQgNi40OSAxNCA4cy0uNTcgMi44OS0xLjQ5IDMuOTVDMTQuNDcgMTEuNyAxNiAxMC4wNCAxNiA4cy0xLjUzLTMuNy0zLjQ5LTMuOTV6bTQuMDIgOS43OEMxNy40MiAxNC42NiAxOCAxNS43IDE4IDE3djNoMnYtM2MwLTEuNDUtMS41OS0yLjUxLTMuNDctMy4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxNy42NiA1IDE2IDVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDN6bS04IDBjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTOS42NiA1IDggNUM2LjM0IDUgNSA2LjM0IDUgOHMxLjM0IDMgMyAzem0wIDJjLTIuMzMgMC03IDEuMTctNyAzLjVWMTloMTR2LTIuNWMwLTIuMzMtNC42Ny0zLjUtNy0zLjV6bTggMGMtLjI5IDAtLjYyLjAyLS45Ny4wNSAxLjE2Ljg0IDEuOTcgMS45NyAxLjk3IDMuNDVWMTloNnYtMi41YzAtMi4zMy00LjY3LTMuNS03LTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXBzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjI3IDEyaDMuNDZhMS41IDEuNSAwIDAgMCAxLjQ4LTEuNzVsLS4zLTEuNzlhMi45NTEgMi45NTEgMCAwIDAtNS44Mi4wMWwtLjMgMS43OWMtLjE1LjkxLjU1IDEuNzQgMS40OCAxLjc0ek0xLjY2IDExLjExYy0uMTMuMjYtLjE4LjU3LS4xLjg4LjE2LjY5Ljc2IDEuMDMgMS41MyAxaDEuOTVjLjgzIDAgMS41MS0uNTggMS41MS0xLjI5IDAtLjE0LS4wMy0uMjctLjA3LS40LS4wMS0uMDMtLjAxLS4wNS4wMS0uMDguMDktLjE2LjE0LS4zNC4xNC0uNTMgMC0uMzEtLjE0LS42LS4zNi0uODItLjAzLS4wMy0uMDMtLjA2LS4wMi0uMS4wNy0uMi4wNy0uNDMuMDEtLjY1YTEuMTIgMS4xMiAwIDAgMC0uOTktLjc0LjA5LjA5IDAgMCAxLS4wNy0uMDNDNS4wMyA4LjE0IDQuNzIgOCA0LjM3IDhjLS4zIDAtLjU3LjEtLjc1LjI2LS4wMy4wMy0uMDYuMDMtLjA5LjAyYTEuMjQgMS4yNCAwIDAgMC0xLjcgMS4wM2MwIC4wMi0uMDEuMDQtLjAzLjA2LS4yOS4yNi0uNDYuNjUtLjQxIDEuMDUuMDMuMjIuMTIuNDMuMjUuNi4wMy4wMi4wMy4wNi4wMi4wOXpNMTYuMjQgMTMuNjVjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxNi4zOVYxOGgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek0xLjIyIDE0LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjktLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNTh6TTIyLjc4IDE0LjU4QTYuOTUgNi45NSAwIDAgMCAyMCAxNGMtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYxOEgyNHYtMS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTIyIDExdi0uNWMwLTEuMS0uOS0yLTItMmgtMmMtLjQyIDAtLjY1LjQ4LS4zOS44MWwuNy42M2MtLjE5LjMxLS4zMS42Ny0uMzEgMS4wNiAwIDEuMS45IDIgMiAyczItLjkgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRHcm91cHMzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMjQgMTMuNjVjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxNi4zOVYxOGgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek0xLjIyIDE0LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjktLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNTh6TTIyLjc4IDE0LjU4QTYuOTUgNi45NSAwIDAgMCAyMCAxNGMtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYxOEgyNHYtMS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTEyIDEyYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pNMS40OTcgMTEgNCA4LjQ5NyA2LjUwMyAxMSA0IDEzLjUwM3pNMjAgOWwtMi41IDRoNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kR3JvdXBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTIuNzVjMS42MyAwIDMuMDcuMzkgNC4yNC45IDEuMDguNDggMS43NiAxLjU2IDEuNzYgMi43M1YxOEg2di0xLjYxYzAtMS4xOC42OC0yLjI2IDEuNzYtMi43MyAxLjE3LS41MiAyLjYxLS45MSA0LjI0LS45MXpNNCAxM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTEuMTMgMS4xYy0uMzctLjA2LS43NC0uMS0xLjEzLS4xLS45OSAwLTEuOTMuMjEtMi43OC41OEEyLjAxIDIuMDEgMCAwIDAgMCAxNi40M1YxOGg0LjV2LTEuNjFjMC0uODMuMjMtMS42MS42My0yLjI5ek0yMCAxM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVBNi45NSA2Ljk1IDAgMCAwIDIwIDE0Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjE4SDI0di0xLjU3ek0xMiA2YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGFuZHNoYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDggMTAuNDFjLS4zOS4zOS0xLjA0LjM5LTEuNDMgMGwtNC40Ny00LjQ2LTcuMDUgNy4wNC0uNjYtLjYzYTMgMyAwIDAgMSAwLTQuMjRsNC4yNC00LjI0YTMgMyAwIDAgMSA0LjI0IDBMMTYuNDggOWMuMzkuMzkuMzkgMS4wMiAwIDEuNDF6bS43LTIuMTJjLjc4Ljc4Ljc4IDIuMDUgMCAyLjgzLTEuMjcgMS4yNy0yLjYxLjIyLTIuODMgMGwtMy43Ni0zLjc2LTUuNTcgNS41N2EuOTk2Ljk5NiAwIDAgMCAwIDEuNDFjLjM5LjM5IDEuMDIuMzkgMS40MiAwbDQuNjItNC42Mi43MS43MS00LjYyIDQuNjJhLjk5Ni45OTYgMCAwIDAgMCAxLjQxYy4zOS4zOSAxLjAyLjM5IDEuNDIgMGw0LjYyLTQuNjIuNzEuNzEtNC42MiA0LjYyYS45OTYuOTk2IDAgMSAwIDEuNDEgMS40MWw0LjYyLTQuNjIuNzEuNzEtNC42MiA0LjYyYS45OTYuOTk2IDAgMSAwIDEuNDEgMS40MWw4LjMyLTguMzRhMyAzIDAgMCAwIDAtNC4yNGwtNC4yNC00LjI0YTMuMDAxIDMuMDAxIDAgMCAwLTQuMTgtLjA2bDQuNDcgNC40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGVhbHRoQW5kU2FmZXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSAxM0g4di0zaDIuNVY3LjVoM1YxMEgxNnYzaC0yLjV2Mi41aC0zVjEzek0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIZWFydEJyb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgM2MtLjk2IDAtMS45LjI1LTIuNzMuNjlMMTIgOWgzbC0zIDEwIDEtOWgtM2wxLjU0LTUuMzlDMTAuNDcgMy42MSA5LjAxIDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDQuMTMgNC4xNiA3LjE4IDEwIDEyLjUgNS40Ny00Ljk0IDEwLTguMjYgMTAtMTIuNUMyMiA1LjQyIDE5LjU4IDMgMTYuNSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaWtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgNS4yOGMtMS4yMy0uMzctMi4yMi0xLjE3LTIuOC0yLjE4bC0xLTEuNmMtLjQxLS42NS0xLjExLTEtMS44NC0xLS43OCAwLTEuNTkuNS0xLjc4IDEuNDRTNyAyMyA3IDIzaDIuMWwxLjgtOCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM2MxIDEuMTUgMi40MSAyLjAxIDQgMi4zNFYyM0gxOVY5aC0xLjV2MS43OHpNNy40MyAxMy4xM2wtMi4xMi0uNDFhLjk5OS45OTkgMCAwIDEtLjc5LTEuMTdsLjc2LTMuOTNhMiAyIDAgMCAxIDIuMzQtMS41OGwxLjE2LjIzLTEuMzUgNi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSGlzdG9yeUVkdSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNHYxLjM4Yy0uODMtLjMzLTEuNzItLjUtMi42MS0uNS0xLjc5IDAtMy41OC42OC00Ljk1IDIuMDVsMy4zMyAzLjMzaDEuMTF2MS4xMWMuODYuODYgMS45OCAxLjMxIDMuMTEgMS4zNlYxNUg2djNjMCAxLjEuOSAyIDIgMmgxMGMxLjY2IDAgMy0xLjM0IDMtM1Y0SDl6bS0xLjExIDYuNDFWOC4yNkg1LjYxTDQuNTcgNy4yMmE1LjA3IDUuMDcgMCAwIDEgMS44Mi0uMzRjMS4zNCAwIDIuNTkuNTIgMy41NCAxLjQ2bDEuNDEgMS40MS0uMi4yYTIuNyAyLjcgMCAwIDEtMS45Mi44Yy0uNDcgMC0uOTMtLjEyLTEuMzMtLjM0ek0xOSAxN2MwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXYtMmgtNnYtMi41OWMuNTctLjIzIDEuMS0uNTcgMS41Ni0xLjAzbC4yLS4yTDE1LjU5IDE0SDE3di0xLjQxbC02LTUuOTdWNmg4djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRIaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuNzkgOCAxLjgtMy0xLjgtM2gtMy41OGwtMS44IDMgMS44IDN6TTEwLjIxIDlsLTEuOCAzIDEuOCAzaDMuNThsMS44LTMtMS44LTN6TTE2LjQ1IDExLjUxaDMuNTlsMS43OS0zLTEuNzktM2gtMy41OWwtMS44IDN6TTIwLjA0IDEyLjUxaC0zLjU5bC0xLjggMyAxLjggM2gzLjU5bDEuNzktM3pNNy41NSAxMS41MWwxLjgtMy0xLjgtM0gzLjk2bC0xLjc5IDMgMS43OSAzek03LjU1IDEyLjUxSDMuOTZsLTEuNzkgMyAxLjc5IDNoMy41OWwxLjgtM3pNMTAuMjEgMTZsLTEuOCAzIDEuOCAzaDMuNThsMS44LTMtMS44LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEljZVNrYXRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDguNWMwLS4yOC4yMi0uNS41LS41aDIuNTJMMTEgN0g4LjVjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNUgxMVYzSDN2MTVoM3YySDJ2MmgxNmMyLjc2IDAgNS0yLjI0IDUtNWgtMmMwIDEuNjYtMS4zNCAzLTMgM2gtMnYtMmgzdi0yLjg4YzAtMi4xLTEuNTUtMy41My0zLjAzLTMuODhsLTIuNy0uNjdjLS44Ny0uMjItMS41Ny0uODEtMS45NS0xLjU3SDguNWMtLjI4IDAtLjUtLjIyLS41LS41ek0xNCAyMEg4di0yaDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kSW50ZXJlc3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMiAxM2MtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6TTEzIDEzdjhoOHYtOGgtOHpNNyAybC01IDloMTBMNyAyem0xMi4yNS41Yy0xLjA2IDAtMS44MS41Ni0yLjI1IDEuMTctLjQ0LS42MS0xLjE5LTEuMTctMi4yNS0xLjE3QzEzLjE5IDIuNSAxMiAzLjc4IDEyIDUuMjVjMCAyIDIuNDIgMy40MiA1IDUuNzUgMi41OC0yLjMzIDUtMy43NSA1LTUuNzUgMC0xLjQ3LTEuMTktMi43NS0yLjc1LTIuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZElvc1NoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA1LTEuNDIgMS40Mi0xLjU5LTEuNTlWMTZoLTEuOThWNC44M0w5LjQyIDYuNDIgOCA1bDQtNCA0IDR6bTQgNXYxMWMwIDEuMS0uOSAyLTIgMkg2YTIgMiAwIDAgMS0yLTJWMTBjMC0xLjExLjg5LTIgMi0yaDN2Mkg2djExaDEyVjEwaC0zVjhoM2EyIDIgMCAwIDEgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRLYXlha2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDIzYy0xLjAzIDAtMi4wNi0uMjUtMy0uNzUtMS44OSAxLTQuMTEgMS02IDAtMS44OSAxLTQuMTEgMS02IDAtLjk1LjUtMS45Ny43NS0zIC43NUgydi0yaDFjMS4wNCAwIDIuMDgtLjM1IDMtMSAxLjgzIDEuMyA0LjE3IDEuMyA2IDAgMS44MyAxLjMgNC4xNyAxLjMgNiAwIC45MS42NSAxLjk2IDEgMyAxaDF2MmgtMXpNMTIgNS41Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMTIgMTJzLTEuNTIuNzEtMy45MyAxLjM3Yy0uODItLjIzLTEuNTMtLjc1LTIuMDctMS4zNy0uNzMuODQtMS44IDEuNS0zIDEuNXMtMi4yNy0uNjYtMy0xLjVjLS43My44NC0xLjggMS41LTMgMS41cy0yLjI3LS42Ni0zLTEuNWMtLjU0LjYxLTEuMjUgMS4xMy0yLjA3IDEuMzdDMS41MiAxOC4yMSAwIDE3LjUgMCAxNy41czIuOTMtMS4zNiA3LjEzLTIuMDhsMS4zNS00LjE3Yy4zMS0uOTUgMS4zMi0xLjQ3IDIuMjctMS4xNi4wOS4wMy4xOS4wNy4yNy4xMWwyLjQ3IDEuMyAyLjg0LTEuNSAxLjY1LTMuNzEtLjUxLTEuMzJMMTguOCAyIDIyIDMuNDMgMjAuNjcgNi40bC0xLjMxLjUtMy43MiA4LjM0YzQuODUuNjMgOC4zNiAyLjI2IDguMzYgMi4yNnptLTguOTgtNC41NC0xLjUyLjgtMS43NS0uOTItLjcxIDIuMTdjLjMyIDAgLjY0LS4wMS45Ni0uMDEuNzEgMCAxLjQuMDMgMi4wNy4wOGwuOTUtMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2luZ0JlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTYgN2g1djNINnpNMTMgN2g1djNoLTV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwVjdjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ2M2MtMS4xIDAtMiAuOS0yIDJ2NWgxLjMzTDQgMTloMWwuNjctMmgxMi42N2wuNjYgMmgxbC42Ny0ySDIydi01YzAtMS4xLS45LTItMi0yem0tOSAwSDZWN2g1djN6bTcgMGgtNVY3aDV2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kS2l0ZXN1cmZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDNjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptMTQuMDYtMmgtMi4xMkwxNS41IDMuNDRsMS4wNiAxLjA2IDMuNS0zLjV6TTIyIDIzdi0yaC0xYy0xLjA0IDAtMi4wOC0uMzUtMy0xLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0xLjgzIDEuMy00LjE3IDEuMy02IDAtLjkxLjY1LTEuOTYgMS0zIDFIMnYyaDFjMS4wMyAwIDIuMDUtLjI1IDMtLjc1IDEuODkgMSA0LjExIDEgNiAwIDEuODkgMSA0LjExIDEgNiAwIC45NS41IDEuOTcuNzUgMyAuNzVoMXptLTEtOS43MmMwIDEuNDQtMi4xOSAzLjYyLTUuMDQgNS41OC0uMzEuMDktLjYzLjE0LS45Ni4xNC0xLjIgMC0yLjI3LS42Ni0zLTEuNS0uNzMuODQtMS44IDEuNS0zIDEuNS0uOTQgMC0xLjgxLS40MS0yLjQ5LS45OS40Ni0uMzkuOTYtLjc4IDEuNDktMS4xN2wtMS41NS0yLjk3QTQuMDYgNC4wNiAwIDAgMSA2IDEyVjhjMC0xLjEuOS0yIDItMmgzYzEuMzggMCAyLjYzLS41NiAzLjU0LTEuNDZsMS40MSAxLjQxQTcuMDE4IDcuMDE4IDAgMCAxIDExIDhIOS42djMuNWgyLjhsMS42OSAxLjg4YzEuOTUtLjg0IDMuNzctMS4zOCA1LjA2LTEuMzguODQgMCAxLjg1LjI1IDEuODUgMS4yOHptLTguOC45OS0uNy0uNzctMi41LjEuODMgMi4wMWMuNTktLjM4IDEuODEtMS4wNiAyLjM3LTEuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZExhbmRzbGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjQ3IDEzLjc5LTIuNTgtMS4wM0w2IDE1LjA1bC00LTEuNTR2Mi4xbDQgMS4zNHpNMTAuNTcgMTEuNDIgOCA4SDJ2My42MWw0IDEuMzR6TTYgMTkuMDVsLTQtMS4zM1YyMmgyMGwtNC45Ny02LjYyek0xNyA2VjFsLTUtMS0zIDJ2NGwzIDJ6TTE4LjUgNyAxNiA5djNsMi41IDIgNC41LTJWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTG9jYXRpb25DaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTFWNWwtMy0zLTMgM3YySDN2MTRoMThWMTFoLTZ6bS04IDhINXYtMmgydjJ6bTAtNEg1di0yaDJ2MnptMC00SDVWOWgydjJ6bTYgOGgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6bTAtNGgtMlY5aDJ2MnptMC00aC0yVjVoMnYyem02IDEyaC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTHVnZ2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZoLTJWM2MwLS41NS0uNDUtMS0xLTFoLTRjLS41NSAwLTEgLjQ1LTEgMXYzSDdjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDIgMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xaDZjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xYzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6TTkuNSAxOEg4VjloMS41djl6bTMuMjUgMGgtMS41VjloMS41djl6bS43NS0xMmgtM1YzLjVoM1Y2ek0xNiAxOGgtMS41VjlIMTZ2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuNSAxMWMxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMS40MyAxOCA5LjUgMTggNiAxNi40MyA2IDE0LjUgNy41NyAxMSA5LjUgMTF6bTAtMkM2LjQ2IDkgNCAxMS40NiA0IDE0LjVTNi40NiAyMCA5LjUgMjBzNS41LTIuNDYgNS41LTUuNWMwLTEuMTYtLjM2LTIuMjMtLjk3LTMuMTJMMTggNy40MlYxMGgyVjRoLTZ2MmgyLjU4bC0zLjk3IDMuOTdDMTEuNzMgOS4zNiAxMC42NiA5IDkuNSA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYW4yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgN2gtNGMtMS4xIDAtMiAuOS0yIDJ2NmgyLjV2N2gzdi03SDE2VjljMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hbjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2g0di03aDJWOWMwLTEuMS0uOS0yLTItMnpNMTIgMS43NTEgMTQuMjQ4IDQgMTIgNi4yNDggOS43NSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNYW40IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNzUgN2gtMy41QzkuMDQgNyA4LjExIDguMDcgOC4yNyA5LjI2TDEwIDIyaDRsMS43My0xMi43NEMxNS44OSA4LjA3IDE0Ljk2IDcgMTMuNzUgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgN2gtNGMtMS4xIDAtMiAuOS0yIDJ2NmgydjdoNHYtN2gyVjljMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE1hc2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSA2Yy0xLjMxIDAtMi4zNyAxLjAxLTIuNDggMi4zLTEuODgtLjUtMi44NC0xLjgtNS4wMi0xLjgtMi4xOSAwLTMuMTQgMS4zLTUuMDIgMS44QzYuODcgNy4wMiA1LjgxIDYgNC41IDZBMi41IDIuNSAwIDAgMCAyIDguNVY5YzAgNiAzLjYgNy44MSA2LjUyIDcuOThDOS41MyAxNy42MiAxMC43MiAxOCAxMiAxOHMyLjQ3LS4zOCAzLjQ4LTEuMDJDMTguNCAxNi44MSAyMiAxNSAyMiA5di0uNUEyLjUgMi41IDAgMCAwIDE5LjUgNnptLTE2IDN2LS41YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYzYzAgMS4yOC4zOCAyLjQ3IDEuMDEgMy40OEM0Ljk5IDE0LjI3IDMuNSAxMi42NSAzLjUgOXptMTcgMGMwIDMuNjUtMS40OSA1LjI3LTMuMDEgNS45OC42NC0xLjAxIDEuMDEtMi4yIDEuMDEtMy40OHYtM2MwLS41NS40NS0xIDEtMXMxIC40NSAxIDFWOXptLTkuODEgMS40OGMtLjQ0LjI2LS45Ni41Ni0xLjY5Ljc2VjEwLjJjLjQ4LS4xNy44NC0uMzggMS4xOC0uNThDMTAuNzIgOS4zIDExLjIzIDkgMTIgOXMxLjI3LjMgMS44LjYyYy4zNC4yLjcxLjQyIDEuMi41OXYxLjA0Yy0uNzUtLjIxLTEuMjYtLjUxLTEuNzEtLjc4LS40Ni0uMjctLjgtLjQ3LTEuMjktLjQ3cy0uODQuMi0xLjMxLjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNaWxpdGFyeVRlY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMC40M1YySDd2OC40M2MwIC4zNS4xOC42OC40OS44Nmw0LjE4IDIuNTEtLjk5IDIuMzQtMy40MS4yOSAyLjU5IDIuMjRMOS4wNyAyMiAxMiAyMC4yMyAxNC45MyAyMmwtLjc4LTMuMzMgMi41OS0yLjI0LTMuNDEtLjI5LS45OS0yLjM0IDQuMTgtMi41MWMuMy0uMTguNDgtLjUuNDgtLjg2em0tNCAxLjgtMSAuNi0xLS42VjNoMnY5LjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb29kQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSAzYy0yLjMzIDAtNC4zMSAxLjQ2LTUuMTEgMy41aDEwLjIyYy0uOC0yLjA0LTIuNzgtMy41LTUuMTEtMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRNb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0zLjUtOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTYuMzMgOCAxNS41IDggMTQgOC42NyAxNCA5LjVzLjY3IDEuNSAxLjUgMS41em0tNyAwYy44MyAwIDEuNS0uNjcgMS41LTEuNVM5LjMzIDggOC41IDggNyA4LjY3IDcgOS41IDcuNjcgMTEgOC41IDExem0zLjUgNi41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROaWdodHNTdGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMSAxMi4wOGMtMi4zMy00LjUxLS41LTguNDguNTMtMTAuMDdDNi4yNyAyLjIgMS45OCA2LjU5IDEuOTggMTJjMCAuMTQuMDIuMjguMDIuNDIuNjItLjI3IDEuMjktLjQyIDItLjQyIDEuNjYgMCAzLjE4LjgzIDQuMSAyLjE1QTQuMDEgNC4wMSAwIDAgMSAxMSAxOGMwIDEuNTItLjg3IDIuODMtMi4xMiAzLjUxLjk4LjMyIDIuMDMuNSAzLjExLjUgMy41IDAgNi41OC0xLjggOC4zNy00LjUyLTIuMzYuMjMtNi45OC0uOTctOS4yNi01LjQxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE2aC0uMThDNi40IDE0Ljg0IDUuMyAxNCA0IDE0Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzaDNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb0FkdWx0Q29udGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC0xLjg1LjYzLTMuNTQgMS42OS00LjlMNy41OSA5aDIuODNMNy4xIDUuNjlBNy45MjQgNy45MjQgMCAwIDEgMTIgNGM0LjQxIDAgOCAzLjU5IDggOCAwIDEuODUtLjYzIDMuNTQtMS42OSA0LjlsLTEuOS0xLjloLTIuODNsMy4zMSAzLjMxQTcuODc0IDcuODc0IDAgMCAxIDEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuMjUgMTQtMS41LTIgMS41LTJoLTEuNUwxMiAxMWwtLjc1LTFoLTEuNWwxLjUgMi0xLjUgMmgxLjVsLjc1LTEgLjc1IDF6TTggMTBsLS43NSAxLS43NS0xSDVsMS41IDJMNSAxNGgxLjVsLjc1LTFMOCAxNGgxLjVMOCAxMmwxLjUtMnpNMTYgMTRsLjc1LTEgLjc1IDFIMTlsLTEuNS0yIDEuNS0yaC0xLjVsLS43NSAxLS43NS0xaC0xLjVsMS41IDItMS41IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE5vTHVnZ2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjc1IDl2LjkybDEuNzUgMS43NVY5SDE2djQuMTdsMyAzVjhjMC0xLjEtLjktMi0yLTJoLTJWM2MwLS41NS0uNDUtMS0xLTFoLTRjLS41NSAwLTEgLjQ1LTEgMXYzaC0uMTdsMyAzaC45MnpNMTAuNSAzLjVoM1Y2aC0zVjMuNXptMTAuNjkgMTcuNjlMMi44MSAyLjgxIDEuMzkgNC4yMmwzLjYzIDMuNjNjMCAuMDUtLjAyLjEtLjAyLjE1djExYzAgMS4xLjkgMiAyIDIgMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xaDZjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xYy4zNCAwIC42NS0uMDkuOTMtLjI0bDEuODUgMS44NSAxLjQxLTEuNDJ6TTggMTh2LTcuMTdsMS41IDEuNVYxOEg4em00Ljc1IDBoLTEuNXYtMy45MmwxLjUgMS41VjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3JkaWNXYWxraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMjNoLTEuNXYtOUgxOXY5ek03LjUzIDE0SDZsLTIgOWgxLjUzbDItOXptNS45Ny04LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek05LjggOC45IDcgMjNoMi4xbDEuOC04IDIuMSAydjZoMnYtNy41bC0yLjEtMiAuNi0zQzE0LjggMTIgMTYuOCAxMyAxOSAxM3YtMmMtMS45IDAtMy41LTEtNC4zLTIuNGwtMS0xLjZhMi4xNDUgMi4xNDUgMCAwIDAtMi42NS0uODRMNiA4LjNWMTNoMlY5LjZsMS44LS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAyMGg0YzAgMS4xLS45IDItMiAycy0yLS45LTItMnptNC0xMWMwIDIuNjEgMS42NyA0LjgzIDQgNS42NlYxN2gydjJINHYtMmgydi03YzAtMi43OSAxLjkxLTUuMTQgNC41LTUuOHYtLjdjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2LjdjLjcxLjE4IDEuMzYuNDkgMS45NS45QTUuOTAyIDUuOTAyIDAgMCAwIDE0IDl6bTEwLTFoLTNWNWgtMnYzaC0zdjJoM3YzaDJ2LTNoM1Y4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25zQWN0aXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41OCA0LjA4IDYuMTUgMi42NUMzLjc1IDQuNDggMi4xNyA3LjMgMi4wMyAxMC41aDJhOC40NDUgOC40NDUgMCAwIDEgMy41NS02LjQyem0xMi4zOSA2LjQyaDJjLS4xNS0zLjItMS43My02LjAyLTQuMTItNy44NWwtMS40MiAxLjQzYTguNDk1IDguNDk1IDAgMCAxIDMuNTQgNi40MnpNMTggMTFjMC0zLjA3LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjMgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0ydi01em0tNiAxMWMuMTQgMCAuMjctLjAxLjQtLjA0LjY1LS4xNCAxLjE4LS41OCAxLjQ0LTEuMTguMS0uMjQuMTUtLjUuMTUtLjc4aC00Yy4wMSAxLjEuOSAyIDIuMDEgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kTm90aWZpY2F0aW9uc05vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25zT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTguNjkgNy44NCA2LjE0IDUuMjcgMy40OSA0IDQuNzZsMi44IDIuOHYuMDFjLS41Mi45OS0uOCAyLjE2LS44IDMuNDJ2NWwtMiAydjFoMTMuNzNsMiAyTDIxIDE5LjcybC0xLTEuMDN6TTEyIDIyYzEuMTEgMCAyLS44OSAyLTJoLTRjMCAxLjExLjg5IDIgMiAyem02LTcuMzJWMTFjMC0zLjA4LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4Yy0uMTUuMDMtLjI5LjA4LS40Mi4xMi0uMS4wMy0uMi4wNy0uMy4xMWgtLjAxYy0uMDEgMC0uMDEgMC0uMDIuMDEtLjIzLjA5LS40Ni4yLS42OC4zMSAwIDAtLjAxIDAtLjAxLjAxTDE4IDE0LjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25zUGF1c2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjMS4xIDAgMi0uOSAyLTJoLTRhMiAyIDAgMCAwIDIgMnptNi02di01YzAtMy4wNy0xLjY0LTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjYzIDUuMzYgNiA3LjkzIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTMuNS02LjItMi44IDMuNGgyLjhWMTVoLTV2LTEuOGwyLjgtMy40SDkuNVY4aDV2MS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWROb3RpZmljYXRpb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGEyIDIgMCAwIDAgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjQtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjMgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRkb29yR3JpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMmMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtM2MtMS4zIDAtMi40Ljg0LTIuODIgMkg5LjE0bDEuOTktMy4wNmE2LjM2IDYuMzYgMCAwIDAgMS43NCAwbDEuMDIgMS41N2MuNDItLjUzLjk2LS45NSAxLjYtMS4yMWwtLjYtLjkzQTYuOTkyIDYuOTkyIDAgMCAwIDE5IDhINWMwIDIuODQgMS42OSA1LjI3IDQuMTIgNi4zN2wtMy45NSA2LjA4YTEgMSAwIDAgMCAuMjkgMS4zOCAxIDEgMCAwIDAgMS4zOC0uMjlsMS0xLjU1aDYuMzRDMTQuNiAyMS4xNiAxNS43IDIyIDE3IDIyem0wLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNOS40MSA3aDFjLjE1LTEuMTUuMjMtMS42NC0uODktMi45Ni0uNDItLjUtLjY4LS43Ny0uNDYtMi4wNGgtLjk5Yy0uMjEgMS4xMS4wMyAyLjA1Ljg5IDIuOTYuMjIuMjQuNzkuNjcuNDUgMi4wNHpNMTEuODkgN2gxYy4xNS0xLjE1LjIzLTEuNjQtLjg5LTIuOTYtLjQyLS41LS42OC0uNzgtLjQ2LTIuMDRoLS45OWMtLjIxIDEuMTEuMDMgMi4wNS44OSAyLjk2LjIzLjI0LjguNjcuNDUgMi4wNHpNMTQuNDEgN2gxYy4xNS0xLjE1LjIzLTEuNjQtLjg5LTIuOTYtLjQyLS41LS42OC0uNzctLjQ2LTIuMDRoLS45OWMtLjIxIDEuMTEuMDMgMi4wNS44OSAyLjk2LjIyLjI0Ljc5LjY3LjQ1IDIuMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBhZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1djZoNUw3IDdsNCAxVjNINWMtMS4xIDAtMiAuOS0yIDJ6bTUgOEgzdjZjMCAxLjEuOSAyIDIgMmg2di01bC00IDEgMS00em05IDQtNC0xdjVoNmMxLjEgMCAyLS45IDItMnYtNmgtNWwxIDR6bTItMTRoLTZ2NWw0LTEtMSA0aDVWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGFyYWdsaWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bS0zLjQ4Ljk0QzguMDQgMTcuNTUgNyAxNi43NiA3IDE0SDVjMCAyLjcuOTMgNC40MSAyLjMgNS41LjUuNCAxLjEuNyAxLjcuOVYyNGg2di0zLjZjLjYtLjIgMS4yLS41IDEuNy0uOSAxLjM3LTEuMDkgMi4zLTIuOCAyLjMtNS41aC0yYzAgMi43Ni0xLjA0IDMuNTUtMS41MiAzLjk0QzE0LjY4IDE4LjU0IDE0IDE5IDEyIDE5cy0yLjY4LS40Ni0zLjQ4LTEuMDZ6TTEyIDBDNS45MiAwIDEgMS45IDEgNC4yNXYzLjQ5YzAgLjgxLjg4IDEuMjYgMS41Ni44My4xNC0uMDkuMjgtLjE4LjQ0LS4yNkw1IDEzaDJsMS41LTYuMjhhMjcuODUyIDI3Ljg1MiAwIDAgMSA3IDBMMTcgMTNoMmwyLTQuNjljLjE2LjA5LjMuMTcuNDQuMjYuNjguNDMgMS41Ni0uMDIgMS41Ni0uODNWNC4yNUMyMyAxLjkgMTguMDggMCAxMiAwek01Ljg4IDExLjI0IDQuMzcgNy42OWMuNzUtLjI4IDEuNi0uNTIgMi41My0uNzFsLTEuMDIgNC4yNnptMTIuMjQgMEwxNy4xIDYuOThjLjkzLjE5IDEuNzguNDMgMi41My43MWwtMS41MSAzLjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQYXJ0eU1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0aC0zLjE3TDE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tOCAzYzEuNjMgMCAzLjA2Ljc5IDMuOTggMkgxMmMtMS42NiAwLTMgMS4zNC0zIDMgMCAuMzUuMDcuNjkuMTggMUg3LjFBNS4wMDIgNS4wMDIgMCAwIDEgMTIgN3ptMCAxMGMtMS42MyAwLTMuMDYtLjc5LTMuOTgtMkgxMmMxLjY2IDAgMy0xLjM0IDMtMyAwLS4zNS0uMDctLjY5LS4xOC0xaDIuMDhhNS4wMDIgNS4wMDIgMCAwIDEtNC45IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlb3BsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNi42NyAxMy4xM0MxOC4wNCAxNC4wNiAxOSAxNS4zMiAxOSAxN3YzaDR2LTNjMC0yLjE4LTMuNTctMy40Ny02LjMzLTMuODd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjRcIixcImZpbGxSdWxlXCI6XCJldmVub2RkXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIixcImRcIjpcIk0xNSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNGMtLjQ3IDAtLjkxLjEtMS4zMy4yNGE1Ljk4IDUuOTggMCAwIDEgMCA3LjUyYy40Mi4xNC44Ni4yNCAxLjMzLjI0ek05IDEzYy0yLjY3IDAtOCAxLjM0LTggNHYzaDE2di0zYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZW9wbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxM2MtMS4yIDAtMy4wNy4zNC00LjUgMS0xLjQzLS42Ny0zLjMtMS00LjUtMUM1LjMzIDEzIDEgMTQuMDggMSAxNi4yNVYxOWgyMnYtMi43NWMwLTIuMTctNC4zMy0zLjI1LTYuNS0zLjI1em0tNCA0LjVoLTEwdi0xLjI1YzAtLjU0IDIuNTYtMS43NSA1LTEuNzVzNSAxLjIxIDUgMS43NXYxLjI1em05IDBIMTR2LTEuMjVjMC0uNDYtLjItLjg2LS41Mi0xLjIyLjg4LS4zIDEuOTYtLjUzIDMuMDItLjUzIDIuNDQgMCA1IDEuMjEgNSAxLjc1djEuMjV6TTcuNSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVM5LjQzIDUgNy41IDUgNCA2LjU3IDQgOC41IDUuNTcgMTIgNy41IDEyem0wLTUuNWMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTkgNS41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzE4LjQzIDUgMTYuNSA1IDEzIDYuNTcgMTMgOC41czEuNTcgMy41IDMuNSAzLjV6bTAtNS41YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTFjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTMTcuNjYgNSAxNiA1Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzem0tOCAwYzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zUzkuNjYgNSA4IDVDNi4zNCA1IDUgNi4zNCA1IDhzMS4zNCAzIDMgM3ptMCAyYy0yLjMzIDAtNyAxLjE3LTcgMy41VjE5aDE0di0yLjVjMC0yLjMzLTQuNjctMy41LTctMy41em04IDBjLS4yOSAwLS42Mi4wMi0uOTcuMDUgMS4xNi44NCAxLjk3IDEuOTcgMS45NyAzLjQ1VjE5aDZ2LTIuNWMwLTIuMzMtNC42Ny0zLjUtNy0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBlcnNvbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOSAxNC41NkMxNi43MSAxMy43IDE0LjUzIDEzIDEyIDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTkuNzggMTJoNC40NGMxLjIxIDAgMi4xNC0xLjA2IDEuOTgtMi4yNmwtLjMyLTIuNDVDMTUuNTcgNS4zOSAxMy45MiA0IDEyIDRTOC40MyA1LjM5IDguMTIgNy4yOUw3LjggOS43NGMtLjE2IDEuMi43NyAyLjI2IDEuOTggMi4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM5IDE0LjU2QzE2LjcxIDEzLjcgMTQuNTMgMTMgMTIgMTNzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDQgMTcuMjJWMjBoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTAgMTJoNGMxLjY2IDAgMy0xLjM0IDMtMyAwLS43My0uMjctMS40LS43MS0xLjkyLjEzLS4zMy4yMS0uNy4yMS0xLjA4YTMgMyAwIDAgMC0xLjg2LTIuNzdDMTQgMi40OCAxMy4wNiAyIDEyIDJzLTIgLjQ4LTIuNjQgMS4yM0EzIDMgMCAwIDAgNy41IDZjMCAuMzguMDguNzUuMjEgMS4wOEM3LjI3IDcuNiA3IDguMjcgNyA5YzAgMS42NiAxLjM0IDMgMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb240IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzkgMTQuNTZDMTYuNzEgMTMuNyAxNC41MyAxMyAxMiAxM3MtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgNCAxNy4yMlYyMGgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xMiAxMmMyLjIxIDAgNC0xLjc5IDQtNFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LS41MiAwLS45OC4yNy0xLjI1LjY3LS4yNy0uNC0uNzMtLjY3LTEuMjUtLjY3cy0uOTguMjctMS4yNS42N2MtLjI3LS40LS43My0uNjctMS4yNS0uNjdDOC42NyAzIDggMy42NyA4IDQuNVY4YzAgMi4yMSAxLjc5IDQgNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25BZGRBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGMwLTIuMjEtMS43OS00LTQtNFM1IDUuNzkgNSA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptMiAydjJoM3YzaDJ2LTNoM3YtMmgtM1Y3aC0ydjNoLTN6TTEgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uQWRkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGMwLTIuMjEtMS43OS00LTQtNFM1IDUuNzkgNSA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTIgMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6TTEgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHptMiAwYy4yLS43MSAzLjMtMiA2LTIgMi42OSAwIDUuNzggMS4yOCA2IDJIM3ptMTctM3YtM2gzdi0yaC0zVjdoLTJ2M2gtM3YyaDN2M2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bS05LTJWN0g0djNIMXYyaDN2M2gydi0zaDN2LTJINnptOSA0Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjY1IDUuODJhMy45OTkgMy45OTkgMCAxIDEgNS41MyA1LjUzTDguNjUgNS44MnpNMjAgMTcuMTdjLS4wMi0xLjEtLjYzLTIuMTEtMS42MS0yLjYyLS41NC0uMjgtMS4xMy0uNTQtMS43Ny0uNzZMMjAgMTcuMTd6bTEuMTkgNC4wMkwyLjgxIDIuODEgMS4zOSA0LjIybDguODkgOC44OWMtMS44MS4yMy0zLjM5Ljc5LTQuNjcgMS40NUEyLjk3IDIuOTcgMCAwIDAgNCAxNy4yMlYyMGgxMy4xN2wyLjYxIDIuNjEgMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb25PdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS45YTIuMSAyLjEgMCAxIDEgMCA0LjIgMi4xIDIuMSAwIDAgMSAwLTQuMm0wIDljMi45NyAwIDYuMSAxLjQ2IDYuMSAyLjF2MS4xSDUuOVYxN2MwLS42NCAzLjEzLTIuMSA2LjEtMi4xTTEyIDRDOS43OSA0IDggNS43OSA4IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgOWMtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uUmVtb3ZlQWx0MSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDhjMC0yLjIxLTEuNzktNC00LTRTNiA1Ljc5IDYgOHMxLjc5IDQgNCA0IDQtMS43OSA0LTR6bTMgMnYyaDZ2LTJoLTZ6TTIgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOGMwLTIuMjEtMS43OS00LTQtNFM2IDUuNzkgNiA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptMyAydjJoNnYtMmgtNnpNMiAxOHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00cy04IDEuMzQtOCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQZXJzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAgMmMtMi42NyAwLTggMS4zNC04IDR2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGVyc29uYWxJbmp1cnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDZjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNC0xLjc5IDQtNCA0LTQtMS43OS00LTR6bTkgMTZoMWMxLjEgMCAyLS45IDItMnYtNC43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2LS40My0uMjItLjktLjQzLTEuMzktLjYyVjIyem0tNC42Ni01TDE1IDExLjMzYy0uOTMtLjIxLTEuOTMtLjMzLTMtLjMzLTIuNTMgMC00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE1LjIyVjIyaDIuMzRjLS4yMi0uNDUtLjM0LS45Ni0uMzQtMS41QzYgMTguNTcgNy41NyAxNyA5LjUgMTdoMi44NHpNMTAgMjJsMS40MS0zSDkuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVTOC42NyAyMiA5LjUgMjJoLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpYW5vT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wxLjYxIDEuNjEgMS40MS0xLjQyek04LjI1IDE5SDVWNy44M2wyIDJ2My42N2MwIC41NS40NSAxIDEgMWguMjVWMTl6bTEuNSAwdi00LjVIMTBjLjQ2IDAgLjgyLS4zMS45NC0uNzNsMy4zMSAzLjMxVjE5aC00LjV6TTExIDguMTcgNS44MyAzSDE5YzEuMSAwIDIgLjkgMiAydjEzLjE3bC0yLTJWNWgtMnY4LjVjMCAuMTktLjA3LjM2LS4xNi41MUwxMyAxMC4xN1Y1aC0ydjMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFBpYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDExLjVoLjI1VjE5aC00LjV2LTQuNUgxMGMuNTUgMCAxLS40NSAxLTFWNWgydjguNWMwIC41NS40NSAxIDEgMXpNNSA1aDJ2OC41YzAgLjU1LjQ1IDEgMSAxaC4yNVYxOUg1VjV6bTE0IDE0aC0zLjI1di00LjVIMTZjLjU1IDAgMS0uNDUgMS0xVjVoMnYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGl4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNDUgMTYuNTItMy4wMS0zLjAxYy0uMTEtLjExLS4yNC0uMTMtLjMxLS4xM3MtLjIuMDItLjMxLjEzTDguOCAxNi41M2MtLjM0LjM0LS44Ny44OS0yLjY0Ljg5bDMuNzEgMy43YTMgMyAwIDAgMCA0LjI0IDBsMy43Mi0zLjcxYy0uOTEgMC0xLjY3LS4xOC0yLjM4LS44OXpNOC44IDcuNDdsMy4wMiAzLjAyYy4wOC4wOC4yLjEzLjMxLjEzcy4yMy0uMDUuMzEtLjEzbDIuOTktMi45OWMuNzEtLjc0IDEuNTItLjkxIDIuNDMtLjkxbC0zLjcyLTMuNzFhMyAzIDAgMCAwLTQuMjQgMGwtMy43MSAzLjdjMS43NiAwIDIuMy41OCAyLjYxLjg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS4xMSA5Ljg1LTIuMjUtMi4yNkgxNy42Yy0uNTQgMC0xLjA4LjIyLTEuNDUuNjFsLTMgM2MtLjI4LjI4LS42NS40Mi0xLjAyLjQyYTEuNSAxLjUgMCAwIDEtMS4wMi0uNDJMOC4wOSA4LjE3Yy0uMzgtLjM4LS45LS42LTEuNDUtLjZINS4xN2wtMi4yOSAyLjNhMyAzIDAgMCAwIDAgNC4yNGwyLjI5IDIuM2gxLjQ4Yy41NCAwIDEuMDYtLjIyIDEuNDUtLjZsMy4wMi0zLjAyYy4yOC0uMjguNjUtLjQyIDEuMDItLjQycy43NC4xNCAxLjAyLjQybDMuMDEgMy4wMWMuMzguMzguOS42IDEuNDUuNmgxLjI2bDIuMjUtMi4yNmEzLjA0MiAzLjA0MiAwIDAgMC0uMDItNC4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUGx1c09uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDhIOHY0SDR2Mmg0djRoMnYtNGg0di0yaC00em00LjUtMS45MlY3LjlsMi41LS41VjE4aDJWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUG9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQcmVjaXNpb25NYW51ZmFjdHVyaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkuOTMgOC4yMS0zLjYgMS42OEwxNCA3LjdWNi4zbDIuMzMtMi4xOSAzLjYgMS42OGMuMzguMTguODIuMDEgMS0uMzYuMTgtLjM4LjAxLS44Mi0uMzYtMUwxNi42NSAyLjZhLjk5My45OTMgMCAwIDAtMS4xMy4ybC0xLjc0IDEuNkEuOTc1Ljk3NSAwIDAgMCAxMyA0Yy0uNTUgMC0xIC40NS0xIDF2MUg4LjgyQzguMzQgNC42NSA2Ljk4IDMuNzMgNS40IDQuMDdjLTEuMTYuMjUtMi4xNSAxLjI1LTIuMzYgMi40My0uMjIgMS4zMi40NiAyLjQ3IDEuNDggMy4wOEw3LjA4IDE4SDR2M2gxM3YtM2gtMy42Mkw4LjQxIDguNzdjLjE3LS4yNC4zMS0uNDkuNDEtLjc3SDEydjFjMCAuNTUuNDUgMSAxIDEgLjMyIDAgLjYtLjE2Ljc4LS40bDEuNzQgMS42Yy4zLjMuNzUuMzggMS4xMy4ybDMuOTItMS44M2MuMzgtLjE4LjU0LS42Mi4zNi0xYS43NTMuNzUzIDAgMCAwLTEtLjM2ek02IDhjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHN5Y2hvbG9neUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk0IDkuMDZDMTkuNSA1LjczIDE2LjU3IDMgMTMgMyA5LjQ3IDMgNi41NyA1LjYxIDYuMDggOWwtMS45MyAzLjQ4Yy0uNDEuNjYuMDcgMS41Mi44NSAxLjUyaDF2MmMwIDEuMS45IDIgMiAyaDF2M2g3di00LjY4YTcuMDE2IDcuMDE2IDAgMCAwIDMuOTQtNy4yNnpNMTIuNSAxNGMtLjQxIDAtLjc0LS4zMy0uNzQtLjc0cy4zMy0uNzMuNzQtLjczLjczLjMyLjczLjczLS4zMS43NC0uNzMuNzR6bTEuNzYtNC4zMmMtLjQ0LjY1LS44Ni44NS0xLjA5IDEuMjctLjA5LjE3LS4xMy4yOC0uMTMuODJoLTEuMDZjMC0uMjktLjA0LS43NS4xOC0xLjE2LjI4LS41MS44My0uODEgMS4xNC0xLjI2LjMzLS40Ny4xNS0xLjM2LS44LTEuMzYtLjYyIDAtLjkyLjQ3LTEuMDUuODZsLS45Ni0uNGMuMjctLjc4Ljk3LTEuNDUgMi4wMS0xLjQ1Ljg2IDAgMS40NS4zOSAxLjc1Ljg4LjI2LjQzLjQxIDEuMjIuMDEgMS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRQc3ljaG9sb2d5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOC41N2ExLjQzIDEuNDMgMCAxIDAgMCAyLjg2IDEuNDMgMS40MyAwIDAgMCAwLTIuODZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDNDOS4yNSAzIDYuMiA1Ljk0IDYuMDIgOS42NEw0LjEgMTIuMmEuNS41IDAgMCAwIC40LjhINnYzYzAgMS4xLjkgMiAyIDJoMXYzaDd2LTQuNjhBNi45OTkgNi45OTkgMCAwIDAgMTMgM3ptMyA3YzAgLjEzLS4wMS4yNi0uMDIuMzlsLjgzLjY2Yy4wOC4wNi4xLjE2LjA1LjI1bC0uOCAxLjM5Yy0uMDUuMDktLjE2LjEyLS4yNC4wOWwtLjk5LS40Yy0uMjEuMTYtLjQzLjI5LS42Ny4zOUwxNCAxMy44M2MtLjAxLjEtLjEuMTctLjIuMTdoLTEuNmMtLjEgMC0uMTgtLjA3LS4yLS4xN2wtLjE1LTEuMDZjLS4yNS0uMS0uNDctLjIzLS42OC0uMzlsLS45OS40Yy0uMDkuMDMtLjIgMC0uMjUtLjA5bC0uOC0xLjM5YS4xOS4xOSAwIDAgMSAuMDUtLjI1bC44NC0uNjZjLS4wMS0uMTMtLjAyLS4yNi0uMDItLjM5cy4wMi0uMjcuMDQtLjM5bC0uODUtLjY2Yy0uMDgtLjA2LS4xLS4xNi0uMDUtLjI2bC44LTEuMzhjLjA1LS4wOS4xNS0uMTIuMjQtLjA5bDEgLjRjLjItLjE1LjQzLS4yOS42Ny0uMzlMMTIgNi4xN2MuMDItLjEuMS0uMTcuMi0uMTdoMS42Yy4xIDAgLjE4LjA3LjIuMTdsLjE1IDEuMDZjLjI0LjEuNDYuMjMuNjcuMzlsMS0uNGMuMDktLjAzLjIgMCAuMjQuMDlsLjggMS4zOGEuMi4yIDAgMCAxLS4wNS4yNmwtLjg1LjY2Yy4wMy4xMi4wNC4yNS4wNC4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHVibGljT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOC4xNyA2LjQ5IDMuNjZBOS45MSA5LjkxIDAgMCAxIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTAgMCAyLjA0LS42MSAzLjkzLTEuNjYgNS41MWwtMS40Ni0xLjQ2QTcuODQyIDcuODQyIDAgMCAwIDIwIDEyYzAtMy4zNS0yLjA3LTYuMjItNS03LjQxVjVjMCAxLjEtLjkgMi0yIDJoLTJ2MS4xN3ptMTAuMTkgMTMuMDItMS40MSAxLjQxLTIuMjctMi4yN0E5LjgzOSA5LjgzOSAwIDAgMSAxMiAyMkM2LjQ4IDIyIDIgMTcuNTIgMiAxMmMwLTIuMDQuNjEtMy45MyAxLjY2LTUuNTFMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM5IDE4LjM4ek0xMSAxOGMtMS4xIDAtMi0uOS0yLTJ2LTFsLTQuNzktNC43OUM0LjA4IDEwLjc5IDQgMTEuMzggNCAxMmMwIDQuMDggMy4wNSA3LjQ0IDcgNy45M1YxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUHVibGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTEgMTcuOTNjLTMuOTUtLjQ5LTctMy44NS03LTcuOTMgMC0uNjIuMDgtMS4yMS4yMS0xLjc5TDkgMTV2MWMwIDEuMS45IDIgMiAydjEuOTN6bTYuOS0yLjU0Yy0uMjYtLjgxLTEtMS4zOS0xLjktMS4zOWgtMXYtM2MwLS41NS0uNDUtMS0xLTFIOHYtMmgyYy41NSAwIDEtLjQ1IDEtMVY3aDJjMS4xIDAgMi0uOSAyLTJ2LS40MWMyLjkzIDEuMTkgNSA0LjA2IDUgNy40MSAwIDIuMDgtLjggMy45Ny0yLjEgNS4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVhbEVzdGF0ZUFnZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAyMmg0VjExSDF2MTF6bTE5LTVoLTdsLTIuMDktLjczLjMzLS45NEwxMyAxNmgyLjgyYy42NSAwIDEuMTgtLjUzIDEuMTgtMS4xOCAwLS40OS0uMzEtLjkzLS43Ny0xLjExTDguOTcgMTFIN3Y5LjAyTDE0IDIybDgtM2MtLjAxLTEuMS0uODktMi0yLTJ6TTE0IDEuNWwtNyA1VjloMmw4LjE0IDMuMjZDMTguMjYgMTIuNzEgMTkgMTMuNzkgMTkgMTVoMlY2LjVsLTctNXptLS41IDguNWgtMVY5aDF2MXptMC0yaC0xVjdoMXYxem0yIDJoLTFWOWgxdjF6bTAtMmgtMVY3aDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVjb21tZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmExMCAxMCAwIDEgMCAxMCAxMEExMCAxMCAwIDAgMCAxMiAyem02IDkuOGEuOS45IDAgMCAxLS4xLjVsLTIuMSA0LjlhMS4zNCAxLjM0IDAgMCAxLTEuMy44SDlhMiAyIDAgMCAxLTItMnYtNWExLjI4IDEuMjggMCAwIDEgLjQtMUwxMiA1bC42OS42OWExLjA4IDEuMDggMCAwIDEgLjMuN3YuMkwxMi40MSAxMEgxN2ExIDEgMCAwIDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSZWN5Y2xpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc3IDcuMTUgNy4yIDQuNzhsMS4wMy0xLjcxYy4zOS0uNjUgMS4zMy0uNjUgMS43MiAwbDEuNDggMi40Ni0xLjIzIDIuMDYtMSAxLjYyLTMuNDMtMi4wNnptMTUuOTUgNS44Mi0xLjYtMi42Ni0zLjQ2IDJMMTguODcgMTZIMjBhMiAyIDAgMCAwIDItMmMwLS4zNi0uMS0uNzEtLjI4LTEuMDN6TTE2IDIxaDEuNWEyIDIgMCAwIDAgMS43OS0xLjExTDIwLjc0IDE3SDE2di0ybC00IDQgNCA0di0yem0tNi00SDUuN2wtLjg0IDEuNDFjLS4zLjUtLjMyIDEuMTItLjA2IDEuNjUuMjguNTcuODcuOTQgMS41Mi45NEgxMHYtNHptLTMuODgtMi42NSAxLjczIDEuMDRMNi40OCA5LjkgMSAxMS4yN2wxLjcgMS4wMi0uNDEuNjljLS4zNS41OS0uMzggMS4zMS0uMDcgMS45MmwxLjYzIDMuMjYgMi4yNy0zLjgxem0xMC45LTkuMjEtMS4zLTIuMTdDMTUuMzUgMi4zNyAxNC43IDIgMTQgMmgtMy41M2wzLjEyIDUuMi0xLjcyIDEuMDMgNS40OSAxLjM3IDEuMzctNS40OS0xLjcxIDEuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJlZHVjZUNhcGFjaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem00Ljc4IDMuNThBNi45NSA2Ljk1IDAgMCAwIDE4IDdjLS42NyAwLTEuMzEuMS0xLjkyLjI4LjU4LjU1LjkyIDEuMzIuOTIgMi4xNVYxMGg1di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek02IDZjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0xLjkyIDEuMjhDNy4zMSA3LjEgNi42NyA3IDYgN2MtLjk5IDAtMS45My4yMS0yLjc4LjU4QTIuMDEgMi4wMSAwIDAgMCAyIDkuNDNWMTBoNXYtLjU3YzAtLjgzLjM0LTEuNi45Mi0yLjE1ek0xMCA0YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTYgNkg4di0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMTYgOS40M1YxMHptLTEgNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem02IDZoLTh2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAyMSAyMS40M1YyMnpNNSAxNmMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem02IDZIM3YtLjU3YzAtLjgxLjQ4LTEuNTMgMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMSA1LjU2IDBBMi4wMSAyLjAxIDAgMCAxIDExIDIxLjQzVjIyem0xLjc1LTl2LTJoLTEuNXYySDlsMyAzIDMtM2gtMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kUmVtb3ZlTW9kZXJhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuMjcgMjEuNzMtMy41NC0zLjU1TDUuNzggNS4yMyAyLjI3IDEuNzIgMSAyLjk5IDMuMDEgNUgzdjZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiAyLjE2LS41MyA0LjA4LTEuNzYgNS42LTMuNDFMMjEgMjNsMS4yNy0xLjI3ek0xMyA5LjkybDYuNjcgNi42N0MyMC41MSAxNC44NyAyMSAxMi45NiAyMSAxMVY1bC05LTQtNS40OCAyLjQ0TDExIDcuOTJsMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSb2xsZXJTa2F0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA2LjVjMC0uMjguMjItLjUuNS0uNWgyLjUyTDEyIDVIOS41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVIMTJWMUg0djE1aDE2di0yLjg4YzAtMi4xLTEuNTUtMy41My0zLjAzLTMuODhsLTIuNy0uNjdjLS44Ny0uMjItMS41Ny0uODEtMS45NS0xLjU3SDkuNWMtLjI4IDAtLjUtLjIyLS41LS41ek01IDIzYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3ptMTQgMGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6bS03IDBjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYWZldHlEaXZpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNWgydjE0aC0yVjV6bS02IDdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0yLjc4IDEuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMSAxNS40M1YxNmg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0xOSAxMmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTIuNzggMS41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxNSAxNS40M1YxNmg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTYW5pdGl6ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDYuNUMxNS41IDUuNjYgMTcgNCAxNyA0czEuNSAxLjY2IDEuNSAyLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjV6bTQgOC41YTIuNSAyLjUgMCAwIDAgMi41LTIuNWMwLTEuNjctMi41LTQuNS0yLjUtNC41UzE3IDEwLjgzIDE3IDEyLjVhMi41IDIuNSAwIDAgMCAyLjUgMi41ek0xMyAxNGgtMnYtMkg5djJIN3YyaDJ2Mmgydi0yaDJ2LTJ6bTMtMnYxMEg0VjEyYzAtMi45NyAyLjE2LTUuNDMgNS01LjkxVjRIN1YyaDZjMS4xMyAwIDIuMTUuMzkgMi45OSAxLjAxbC0xLjQzIDEuNDNDMTQuMSA0LjE3IDEzLjU3IDQgMTMgNGgtMnYyLjA5YzIuODQuNDggNSAyLjk0IDUgNS45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMVY4YzQuNTYtLjU4IDgtMy4xIDgtNkgyYzAgMi45IDMuNDQgNS40MiA4IDZ2M2MtMy42OC43My04IDMuNjEtOCAxMWg2di0ySDQuMTNjLjkzLTYuODMgNi42NS03LjIgNy44Ny03LjJzNi45NC4zNyA3Ljg3IDcuMkgxNnYyaDZjMC03LjM5LTQuMzItMTAuMjctOC0xMXptLTIgMTFjLTEuMSAwLTItLjktMi0yIDAtLjU1LjIyLTEuMDUuNTktMS40MUMxMS4zOSAxNy43OSAxNiAxNiAxNiAxNnMtMS43OSA0LjYxLTIuNTkgNS40MWMtLjM2LjM3LS44Ni41OS0xLjQxLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY2hvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEzLjE4djRMMTIgMjFsNy0zLjgydi00TDEyIDE3bC03LTMuODJ6TTEyIDMgMSA5bDExIDYgOS00LjkxVjE3aDJWOUwxMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTY2llbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOCAxOC40IDE0IDEwLjY3VjYuNWwxLjM1LTEuNjljLjI2LS4zMy4wMy0uODEtLjM5LS44MUg5LjA0Yy0uNDIgMC0uNjUuNDgtLjM5LjgxTDEwIDYuNXY0LjE3TDQuMiAxOC40Yy0uNDkuNjYtLjAyIDEuNi44IDEuNmgxNGMuODIgMCAxLjI5LS45NC44LTEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2NvcmVib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTMuNUgxNnYtM2gxLjV2M3pNMjAgNGgtM1YyaC0ydjJIOVYySDd2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTkuNSAxMS41YzAgLjU1LS40NSAxLTEgMWgtMnYxaDNWMTVINXYtMi41YzAtLjU1LjQ1LTEgMS0xaDJ2LTFINVY5aDMuNWMuNTUgMCAxIC40NSAxIDF2MS41em0zLjI1IDYuNWgtMS41di0xLjVoMS41VjE4em0wLTMuNWgtMS41VjEzaDEuNXYxLjV6bTAtMy41aC0xLjVWOS41aDEuNVYxMXptMC0zLjVoLTEuNVY2aDEuNXYxLjV6TTE5IDE0YzAgLjU1LS40NSAxLTEgMWgtMi41Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFIMThjLjU1IDAgMSAuNDUgMSAxdjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNjdWJhRGl2aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMSAxM2MwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem03Ljg5LTIuODkgNC41My0xLjIxLS43OC0yLjktNC41MyAxLjIxYy0uOC4yMS0xLjI4IDEuMDQtMS4wNiAxLjg0LjIyLjggMS4wNCAxLjI4IDEuODQgMS4wNnpNMjAuNSA1LjkgMjMgM2wtMS0xLTMgMy0yIDQtOS40OCAyLjg3Yy0uODIuMi0xLjM5Ljg5LTEuNSAxLjY4TDUuMjQgMTggMi40IDIxLjggNCAyM2wzLTQgMS4xNC0zLjE0TDE0IDE0bDUtMy41IDEuNS00LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbGZJbXByb3ZlbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE2di0yYy0yLjI0IDAtNC4xNi0uOTYtNS42LTIuNjhsLTEuMzQtMS42QTEuOTggMS45OCAwIDAgMCAxMi41MyA5aC0xLjA1Yy0uNTkgMC0xLjE1LjI2LTEuNTMuNzJsLTEuMzQgMS42QzcuMTYgMTMuMDQgNS4yNCAxNCAzIDE0djJjMi43NyAwIDUuMTktMS4xNyA3LTMuMjVWMTVsLTMuODggMS41NWMtLjY3LjI3LTEuMTIuOTMtMS4xMiAxLjY2QzUgMTkuMiA1LjggMjAgNi43OSAyMEg5di0uNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoM2MuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTNjLS44MyAwLTEuNS42Ny0xLjUgMS41di41aDcuMjFjLjk5IDAgMS43OS0uOCAxLjc5LTEuNzkgMC0uNzMtLjQ1LTEuMzktMS4xMi0xLjY2TDE0IDE1di0yLjI1YzEuODEgMi4wOCA0LjIzIDMuMjUgNyAzLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZW50aW1lbnREaXNzYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0wLTMuNWMuNzMgMCAxLjM5LjE5IDEuOTcuNTMuMTItLjE0Ljg2LS45OCAxLjAxLTEuMTRBNS4zOSA1LjM5IDAgMCAwIDEyIDE1Yy0xLjExIDAtMi4xMy4zMy0yLjk5Ljg4Ljk3IDEuMDkuMDEuMDIgMS4wMSAxLjE0LjU5LS4zMyAxLjI1LS41MiAxLjk4LS41MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VudGltZW50TmV1dHJhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNS41aDZ2MUg5di0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2VudGltZW50U2F0aXNmaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjk5IDJDNi40NyAyIDIgNi40OCAyIDEyczQuNDcgMTAgOS45OSAxMEMxNy41MiAyMiAyMiAxNy41MiAyMiAxMlMxNy41MiAyIDExLjk5IDJ6TTEyIDIwYy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptMC00Yy0uNzMgMC0xLjM4LS4xOC0xLjk2LS41Mi0uMTIuMTQtLjg2Ljk4LTEuMDEgMS4xNWE1LjQ5IDUuNDkgMCAwIDAgNS45NS0uMDFjLS45Ny0xLjA5LS4wMS0uMDItMS4wMS0xLjE1LS41OS4zNS0xLjI0LjUzLTEuOTcuNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnRpbWVudFZlcnlEaXNzYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0wLTZjLTIuMzMgMC00LjMyIDEuNDUtNS4xMiAzLjVoMS42N2MuNjktMS4xOSAxLjk3LTIgMy40NS0yczIuNzUuODEgMy40NSAyaDEuNjdjLS44LTIuMDUtMi43OS0zLjUtNS4xMi0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNlbnRpbWVudFZlcnlTYXRpc2ZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0tNS02Yy43OCAyLjM0IDIuNzIgNCA1IDRzNC4yMi0xLjY2IDUtNEg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTZXZlcmVDb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMTAuNDEgNC00TDE0LjU5IDUgMTIgNy41OVY0aC0ydjMuNTlMNy40MSA1IDYgNi40MWw0IDRWMTJIOC40MWwtNC00TDMgOS40MSA1LjU5IDEySDJ2MmgzLjU5TDMgMTYuNTkgNC40MSAxOGw0LTRIMTB2MS41OWwtNCA0TDcuNDEgMjEgMTAgMTguNDFWMjJoMnYtMy41OUwxNC41OSAyMSAxNiAxOS41OWwtNC00VjE0aDEuNTlsNCA0TDE5IDE2LjU5IDE2LjQxIDE0SDIwdi0yaC04ek0xOSAyaDJ2NWgtMnpNMTkgOGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOWMtMS4xIDAtMi0uOS0yLTJzMi00IDItNCAyIDIuOSAyIDQtLjkgMi0yIDJ6bS0zLjUtMmMwLS43My40MS0xLjcxLjkyLTIuNjZBOS45NjUgOS45NjUgMCAwIDAgMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyYzAtLjU1LS4wNi0xLjA5LS4xNC0xLjYyYTMuNSAzLjUgMCAwIDEtLjg2LjEyYy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXptLTEuODguMzggMS4wNiAxLjA2LTEuMDYgMS4wNiAxLjA2IDEuMDYtMS4wNiAxLjA2TDEzLjUgOS41bDIuMTItMi4xMnptLTguMyAxLjA2IDEuMDYtMS4wNkwxMC41IDkuNWwtMi4xMiAyLjEyLTEuMDYtMS4wNkw4LjM4IDkuNSA3LjMyIDguNDR6TTE1LjQ0IDE3Yy0uNjktMS4xOS0xLjk3LTItMy40NC0ycy0yLjc1LjgxLTMuNDQgMkg2Ljg4Yy4zLS43Ni43Ni0xLjQzIDEuMzQtMS45OUw1LjI0IDEzLjNjLS40NS4yNi0xLjAxLjI4LTEuNDkgMGExLjUwMSAxLjUwMSAwIDAgMSAxLjUtMi42Yy40OC4yOC43NC43OC43NCAxLjI5bDMuNTggMi4wN2MuNzMtLjM2IDEuNTUtLjU2IDIuNDMtLjU2IDIuMzMgMCA0LjMyIDEuNDUgNS4xMiAzLjVoLTEuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25MYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyLjQ5IDEzLS45My0xLjg2Yy0uMzctLjc0LS4wNy0xLjY0LjY3LTIuMDFsLjI2LS4xMyA1LjczIDUuNDZjLjUuNDcuNzggMS4xMy43OCAxLjgxdjUuMjNhMi41IDIuNSAwIDAgMS0yLjUgMi41aC0xMWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMUgxMHYtMUg0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDZ2LTFIM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg3di0xSDQuNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg3Ljk5em0tLjcxLTUuODhjLS44NC40LTEuMTcuNjItMS42MyAxLjE5bC0yLjctMi44NUEuOTk2Ljk5NiAwIDEgMSA4LjkgNC4wOWwyLjg4IDMuMDN6TTkuNjQgOS4yMWEzLjQ2IDMuNDYgMCAwIDAtLjIgMS43OWgtLjg2TDYuMzEgOC42MWEuOTg3Ljk4NyAwIDAgMSAuMDQtMS40MS45OTYuOTk2IDAgMCAxIDEuNDEuMDRsMS44OCAxLjk3em0xMC42OSA0LjcuODgtLjgzYy41LS40Ny43OS0xLjEzLjc5LTEuODJWMy4zNWwtLjI3LS4xYy0uNzgtLjI4LTEuNjQuMTItMS45Mi45bC0uNzEgMS45Ni01LjUtNS44YS45OTYuOTk2IDAgMSAwLTEuNDUgMS4zN2wzLjc5IDMuOTktLjczLjY5LTQuODItNS4wOGEuOTk2Ljk5NiAwIDEgMC0xLjQ1IDEuMzdsMy43OCAzLjk4TDE1LjM4IDlsMy42MSAzLjQzLjYxLjU4Yy4yOS4yNy41My41Ny43My45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaW5nbGVCZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMmMwLTEuMS0uOS0yLTItMlY3YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjNjLTEuMSAwLTIgLjktMiAydjVoMS4zM0w2IDE5aDFsLjY3LTJoOC42N2wuNjYgMmgxbC42Ny0ySDIwdi01em0tNC0yaC0zVjdoM3Yzek04IDdoM3YzSDhWN3ptLTIgNWgxMnYzSDZ2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNrYXRlYm9hcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6TTcuMjUgMjIuNWMtLjQxIDAtLjc1LjM0LS43NS43NXMuMzQuNzUuNzUuNzUuNzUtLjM0Ljc1LS43NS0uMzQtLjc1LS43NS0uNzV6bTguNSAwYy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NS43NS0uMzQuNzUtLjc1LS4zNC0uNzUtLjc1LS43NXptMy40OS0zLjVhLjcyLjcyIDAgMCAwLS41OS4zYy0uNTUuNzMtMS40MiAxLjItMi40IDEuMkgxNnYtNmwtNC4zMi0yLjY3IDEuOC0yLjg5QTYuNTA3IDYuNTA3IDAgMCAwIDE5IDEydi0yYy0xLjg1IDAtMy40NC0xLjEyLTQuMTMtMi43MmwtLjUyLTEuMjFDMTQuMTYgNS42NCAxMy42MSA1IDEyLjcgNUg3TDQuNSA5bDEuNyAxLjA2TDguMSA3aDIuMzVsLTIuNCAzLjg0Yy0uMzEuNS0uMzkgMS4xMS0uMjEgMS42N2wxLjM0IDQuMTUtMy4xMiAzLjc2Yy0uNy0uMTYtMS4zLS41Ny0xLjcxLTEuMTJhLjc0OS43NDkgMCAxIDAtMS4yLjljLjgyIDEuMSAyLjEzIDEuOCAzLjYgMS44aDkuNWMxLjQ3IDAgMi43OC0uNyAzLjYtMS44LjEtLjE0LjE1LS4zLjE1LS40NSAwLS4zOS0uMzItLjc1LS43Ni0uNzV6TTE0IDIwLjVIOC42bDIuOS0zLjUtMS0zLjMgMy41IDIuMnY0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNsZWRkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNC41YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptOC44IDE1Ljc0YTQuMDAzIDQuMDAzIDAgMCAxLTUuMDQgMi41N0wxIDE3LjM2bC40Ni0xLjQzIDMuOTMgMS4yOC40Ni0xLjQzLTMuOTItMS4yOC40Ni0xLjQzTDQgMTMuNlY5LjVsNS40Ny0yLjM1Yy4zOS0uMTcuODQtLjIxIDEuMjgtLjA3Ljk1LjMxIDEuNDYgMS4zMiAxLjE2IDIuMjdsLTEuMDUgMy4yNCAyLjE0LS4zNGMuODktLjE1IDEuNzYuMzIgMi4xNCAxLjE0bDIuMDggNC41MSAxLjkzLjYzLS40NiAxLjQzLTMuMzItMS4wOC0uNDcgMS40MiAzLjMyIDEuMDhjMS4zMS40MyAyLjcyLS4yOSAzLjE1LTEuNjEuNDMtMS4zMS0uMjktMi43Mi0xLjYxLTMuMTVsLjQ2LTEuNDNjMi4xMS42OSAzLjI3IDIuOTUgMi41OCA1LjA1ek02IDE0LjI1bDEuMDEuMzNjLS4yMi0uNDItLjI4LS45Mi0uMTItMS40TDcuOTIgMTAgNiAxMC44MnYzLjQzem03Ljk0IDQuMTYtNi42Ni0yLjE2LS40NiAxLjQzIDYuNjYgMi4xNi40Ni0xLjQzem0uNjktMS4zNi0xLjE4LTIuNTYtMy45Ny44OSA1LjE1IDEuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNub3dib2FyZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDNjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNy40IDE3LjA5YS43NDguNzQ4IDAgMCAwLS42NC4xN2MtLjY5LjYtMS42NC44OC0yLjYuNjdMMTcgMjAuNjlsLTEtNi4xOS0zLjMyLTIuNjcgMS44LTIuODlBNi41MDcgNi41MDcgMCAwIDAgMjAgMTJ2LTJjLTEuODUgMC0zLjQ0LTEuMTItNC4xMy0yLjcybC0uNTItMS4yMUMxNS4xNiA1LjY0IDE0LjYxIDUgMTMuNyA1SDhMNS41IDlsMS43IDEuMDZMOS4xIDdoMi4zNWwtMi41MSAzLjk5Yy0uMjguNDUtLjM3IDEtLjI1IDEuNTJMOS41IDE2IDYgMTguMzVsLS40Ny0uMWMtLjk2LS4yLTEuNzEtLjg1LTIuMS0xLjY3YS43NDQuNzQ0IDAgMCAwLS41MS0uNDJjLS40My0uMDktLjgyLjItLjkuNTgtLjA0LjE0LS4wMi4zMS4wNS40Ni41OCAxLjI0IDEuNzEgMi4yIDMuMTUgMi41MWwxMi42MyAyLjY5YzEuNDQuMzEgMi44Ni0uMTEgMy45LTEuMDEuMTMtLjExLjIxLS4yNi4yNC0uNDEuMDctLjM4LS4xNi0uOC0uNTktLjg5ek04LjczIDE4LjkzbDMuMDItMi4wMy0uNDQtMy4zMiAyLjg0IDIuMDIuNzUgNC42NC02LjE3LTEuMzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNub3dzaG9laW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAzLjVjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNNi4zMiAxOS4wM2wtMS4xNC0xLjQ3TDQgMTguNWwyLjM4IDMuMDRjLjUxLjY1IDEuMTYgMS4xNSAxLjg4IDEuNDEuMjguMS41My4wNC43Mi0uMTEuMy0uMjMuNDItLjcuMTItMS4wN2EuODQuODQgMCAwIDAtLjMxLS4yMiAyLjk3IDIuOTcgMCAwIDEtMS4xNC0uODNsLS4wOC0uMUwxMSAxOC4ybC44OS0zLjIyIDIuMTEgMnY0LjUyaC0yVjIzaDMuODdjLjgyIDAgMS42MS0uMjEgMi4yNi0uNjEuMjYtLjE2LjM3LS4zOS4zNy0uNjQgMC0uMzgtLjMtLjc1LS43Ny0uNzUtLjEzIDAtLjI2LjA0LS4zNy4xLS40LjIzLS44Ny4zNy0xLjM2LjR2LTYuMDJsLTIuMTEtMiAuNi0zQzE1Ljc5IDExLjk4IDE3LjggMTMgMjAgMTN2LTJjLTEuOSAwLTMuNTEtMS4wMi00LjMxLTIuNDJsLTEtMS41OGMtLjQtLjYtMS0xLTEuNy0xLS43NSAwLTEuNDEuMzQtNS45OSAyLjI4VjEzaDJWOS41OGwxLjc5LS43TDkuMiAxN2wtMi44OCAyLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb2NpYWxEaXN0YW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNWMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem00Ljc4IDMuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMiAxMC40M1YxMWg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0xOCA3YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMi43OCAxLjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDE0IDEwLjQzVjExaDh2LS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTIyIDE3bC00LTR2M0g2di0zbC00IDQgNCA0di0zaDEydjNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTb3V0aEFtZXJpY2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtMS45NS43LTMuNzQgMS44Ny01LjEzTDkgMTB2MWMwIDEuMS45IDIgMiAydjUuNTljMCAuMjcuMTEuNTIuMjkuNzFsLjcxLjdjLTQuNDIgMC04LTMuNTgtOC04em05IDcuOTRWMThsMy43NS01LjYyYy4xNi0uMjUuMjUtLjU0LjI1LS44M1YxMC41YzAtLjU1LS40NS0xLTEtMWgtMS41bC0xLjQtMS43NWMtLjM4LS40Ny0uOTUtLjc1LTEuNTYtLjc1SDhWNS4wN0E3Ljk3MSA3Ljk3MSAwIDAgMSAxMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgNC4wNy0zLjA2IDcuNDQtNyA3Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNCYXNlYmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMuODEgNi4yOEMyLjY3IDcuOSAyIDkuODcgMiAxMnMuNjcgNC4xIDEuODEgNS43MkM2LjIzIDE2Ljk1IDggMTQuNjggOCAxMlM2LjIzIDcuMDUgMy44MSA2LjI4ek0yMC4xOSA2LjI4QzE3Ljc3IDcuMDUgMTYgOS4zMiAxNiAxMnMxLjc3IDQuOTUgNC4xOSA1LjcyQzIxLjMzIDE2LjEgMjIgMTQuMTMgMjIgMTJzLS42Ny00LjEtMS44MS01LjcyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmMwLTMuMjggMS45Ny02LjA5IDQuNzktNy4zM0MxNy4wMSAzLjAyIDE0LjYzIDIgMTIgMlM2Ljk5IDMuMDIgNS4yMSA0LjY3QzguMDMgNS45MSAxMCA4LjcyIDEwIDEycy0xLjk3IDYuMDktNC43OSA3LjMzQzYuOTkgMjAuOTggOS4zNyAyMiAxMiAyMnM1LjAxLTEuMDIgNi43OS0yLjY3QTguMDAyIDguMDAyIDAgMCAxIDE0IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNCYXNrZXRiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMDkgMTFoNC44NmE5Ljk1MSA5Ljk1MSAwIDAgMC0xLjU0LTQuNCA1Ljk4NyA1Ljk4NyAwIDAgMC0zLjMyIDQuNHpNNi45MSAxMWE1Ljk4NyA1Ljk4NyAwIDAgMC0zLjMyLTQuNEE5Ljk1MSA5Ljk1MSAwIDAgMCAyLjA1IDExaDQuODZ6TTE1LjA3IDExYTcuOTk0IDcuOTk0IDAgMCAxIDQuMDYtNkE5Ljk2OSA5Ljk2OSAwIDAgMCAxMyAyLjA1VjExaDIuMDd6TTguOTMgMTFIMTFWMi4wNUE5Ljk0MyA5Ljk0MyAwIDAgMCA0Ljg3IDVhNy45OTQgNy45OTQgMCAwIDEgNC4wNiA2ek0xNS4wNyAxM0gxM3Y4Ljk1QTkuOTQzIDkuOTQzIDAgMCAwIDE5LjEzIDE5YTcuOTk0IDcuOTk0IDAgMCAxLTQuMDYtNnpNMy41OSAxNy40QTYuMDI5IDYuMDI5IDAgMCAwIDYuOTEgMTNIMi4wNWMuMTYgMS42MS43MSAzLjExIDEuNTQgNC40ek0xNy4wOSAxM2E1Ljk4NyA1Ljk4NyAwIDAgMCAzLjMyIDQuNCA5Ljk1MSA5Ljk1MSAwIDAgMCAxLjU0LTQuNGgtNC44NnpNOC45MyAxM2E3Ljk5NCA3Ljk5NCAwIDAgMS00LjA2IDZBOS45NjkgOS45NjkgMCAwIDAgMTEgMjEuOTVWMTNIOC45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzQ3JpY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjA1IDEyLjgxIDYuNTYgNC4zMmEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBMMi4zMiA3LjE1YS45OTYuOTk2IDAgMCAwIDAgMS40MWw4LjQ5IDguNDljLjM5LjM5IDEuMDIuMzkgMS40MSAwbDIuODMtMi44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6TTE0LjM0MSAxNy43NTZsMS40MTQtMS40MTQgNC4yNDMgNC4yNDMtMS40MTQgMS40MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTguNVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMy41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0VzcG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS41OCAxNi4wOS0xLjA5LTcuNjZBMy45OTYgMy45OTYgMCAwIDAgMTYuNTMgNUg3LjQ3QzUuNDggNSAzLjc5IDYuNDYgMy41MSA4LjQzbC0xLjA5IDcuNjZDMi4yIDE3LjYzIDMuMzkgMTkgNC45NCAxOWMuNjggMCAxLjMyLS4yNyAxLjgtLjc1TDkgMTZoNmwyLjI1IDIuMjVjLjQ4LjQ4IDEuMTMuNzUgMS44Ljc1IDEuNTYgMCAyLjc1LTEuMzcgMi41My0yLjkxek0xMSAxMUg5djJIOHYtMkg2di0xaDJWOGgxdjJoMnYxem00LTFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMiAzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0Zvb3RiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy4wMiAxNS42MmMtLjA4IDIuNDIuMzIgNC4zNC42NyA0LjY5czIuMjguNzYgNC42OS42N2wtNS4zNi01LjM2ek0xMy4wOCAzLjI4Yy0yLjMzLjQyLTQuNzkgMS4zNC02LjYyIDMuMThzLTIuNzYgNC4yOS0zLjE4IDYuNjJsNy42MyA3LjYzYzIuMzQtLjQxIDQuNzktMS4zNCA2LjYyLTMuMThzMi43Ni00LjI5IDMuMTgtNi42MmwtNy42My03LjYzek05LjkgMTUuNWwtMS40LTEuNCA1LjYtNS42IDEuNCAxLjQtNS42IDUuNnpNMjAuOTggOC4zOGMuMDgtMi40Mi0uMzItNC4zNC0uNjctNC42OXMtMi4yOC0uNzYtNC42OS0uNjdsNS4zNiA1LjM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNHb2xmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjMy44NyAwIDctMy4xMyA3LTdzLTMuMTMtNy03LTctNyAzLjEzLTcgNyAzLjEzIDcgNyA3em0wLTEyYzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1LTUtMi4yNC01LTUgMi4yNC01IDUtNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOWgyYzEuMSAwIDIgLjkgMiAydjFoMnYtMWMwLTEuMS45LTIgMi0yaDJ2LTJIN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNHeW1uYXN0aWNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6TTEgOWg2bDctNSAxLjMxIDEuNTItNC4xNyAyLjk4SDE0TDIxLjggNCAyMyA1LjQgMTQuNSAxMiAxNCAyMmgtMmwtLjUtMTBMOCAxMUgxVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0hhbmRiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMjcgNmMtLjU1Ljk1LS4yMiAyLjE4LjczIDIuNzMuOTUuNTUgMi4xOC4yMiAyLjczLS43My41NS0uOTUuMjItMi4xOC0uNzMtMi43My0uOTUtLjU1LTIuMTgtLjIyLTIuNzMuNzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljg0IDEwLjQxLTIuNi0xLjVjLTIuMzgtMS4zOC0zLjItNC40NC0xLjgyLTYuODJsLTEuNzMtMUM4LjEgMy44MyA4LjYgNy4yMSAxMC42NiA5LjRsLTUuMTUgOC45MiAxLjczIDEgMS41LTIuNiAxLjczIDEtMyA1LjIgMS43MyAxIDYuMjktMTAuODlhNS4wMDIgNS4wMDIgMCAwIDEgLjMxIDUuNDZsMS43MyAxYzEuNi0yLjc1IDEuMjgtNi41OC0xLjY5LTkuMDh6TTEyLjc1IDMuOGMuNzIuNDEgMS42My4xNyAyLjA1LS41NS40MS0uNzIuMTctMS42My0uNTUtMi4wNWExLjUwMSAxLjUwMSAwIDAgMC0xLjUgMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNIb2NrZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE3djNoMnYtNEgzYy0uNTUgMC0xIC40NS0xIDF6TTkgMTZINXY0bDQuNjktLjAxYy4zOCAwIC43Mi0uMjEuODktLjU1bC44Ny0xLjktMS41OS0zLjQ4TDkgMTZ6TTIxLjcxIDE2LjI5QS45OTcuOTk3IDAgMCAwIDIxIDE2aC0xdjRoMnYtM2MwLS4yOC0uMTEtLjUzLS4yOS0uNzF6TTEzLjYgMTIuODQgMTcuNjUgNEgxNC4zbC0xLjc2IDMuOTctLjQ5IDEuMS0uMDUuMTRMOS43IDRINi4zNWw0LjA1IDguODQgMS41MiAzLjMyLjA4LjE4IDEuNDIgMy4xYy4xNy4zNC41MS41NS44OS41NUwxOSAyMHYtNGgtNGwtMS40LTMuMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c0thYmFkZGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIyLjM4XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDExLjg4di00LjdsLTUuMDUtMi4xNGMtLjk3LS40MS0yLjA5LS4wNi0yLjY1Ljg0bC0xIDEuNmMtLjY3IDEuMTgtMS45MSAyLjA2LTMuNDEgMi4zMmwuMDYuMDZjLjY5LjY5IDEuNTIgMS4wNyAyLjQ2IDEuMTcuOC0uNDIgMS41Mi0uOTggMi4wOS0xLjY0bC42IDMtMS4xNiAxLjEtLjk0Ljg5djcuNWgydi02bDIuMS0yIDEuOCA4SDIzbC0yLjE4LTExLS42Mi0zLjEgMS44Ljd2My40aDJ6TTEwLjI5IDguMDljLjIyLjE1LjQ3LjI0LjcyLjI5LjEzLjAyLjI1LjA0LjM4LjA0cy4yNi0uMDEuMzgtLjA0Yy4xMy0uMDIuMjUtLjA2LjM3LS4xMS4yNC0uMS40Ny0uMjQuNjYtLjQ0LjQ5LS40OS42Ny0xLjE3LjU1LTEuOC0uMDctLjM3LS4yNS0uNzQtLjU1LTEuMDMtLjE5LS4xOS0uNDItLjM0LS42Ni0uNDQtLjEyLS4wNS0uMjQtLjA5LS4zNy0uMTFzLS4yNS0uMDQtLjM4LS4wNGMtLjEyIDAtLjIzLjAxLS4zNS4wMy0uMTQuMDItLjI4LjA2LS40MS4xMS0uMjMuMTEtLjQ2LjI2LS42NS40NS0uMy4yOS0uNDguNjYtLjU1IDEuMDMtLjEyLjYzLjA2IDEuMzEuNTUgMS44LjA5LjEuMi4xOC4zMS4yNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuMjQgMTAuNTYtMi0yYy0uMS0uMS0uMi0uMTgtLjMxLS4yNmExLjkzIDEuOTMgMCAwIDAtLjcyLS4yOGMtLjEzLS4wMy0uMjUtLjA0LS4zOC0uMDQtLjUxIDAtMS4wMi4yLTEuNDEuNTlsLTMuMzQgMy4zNGMtLjQxLjQxLS42Mi45OC0uNTggMS41NCAwIC4xOC4wNC4zNy4xMS41NWwxLjA3IDIuOTUtMy42MyAzLjYzTDEuNDYgMjJsNC4yNC00LjI0di0yLjIyTDcgMTYuNzV2NS4xM2gydi02bC0yLjEyLTIuMTIgMi4zNi0yLjM2LjcxLjcxYzEuMjkgMS4yNiAyLjk3IDIuMDQgNS4wMyAyLjA0bC0uMTQtMi4wN2MtMS41LS4wMi0yLjctLjYyLTMuNi0xLjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNNYXJ0aWFsQXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjggMi04LjIgNi43LTEuMjEtMS4wNCAzLjYtMi4wOEw5LjQxIDEgOCAyLjQxbDIuNzQgMi43NEw1IDguNDZsLTEuMTkgNC4yOUw2LjI3IDE3IDggMTZsLTIuMDMtMy41Mi4zNS0xLjNMOS41IDEzbC41IDloMmwuNS0xMEwyMSAzLjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNVwiLFwiY3lcIjpcIjVcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzTW1hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMGMwIC41NS40NSAxIDEgMWg4Yy41NSAwIDEtLjQ1IDEtMXYtM0g3djN6TTE4IDdjLS41NSAwLTEgLjQ1LTEgMVY1YzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjUuOGMwIC4xMy4wMS4yNi4wNC4zOWwuOCA0Yy4wOS40Ny41LjguOTguOGgxMC4zNmMuNDUgMCAuODktLjM2Ljk4LS44bC44LTRjLjAzLS4xMy4wNC0uMjYuMDQtLjM5VjhjMC0uNTUtLjQ1LTEtMS0xem0tMyAzSDdWN2g4djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNwb3J0c01vdG9yc3BvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTEuMzljMC0uNjUtLjM5LTEuMjMtLjk4LTEuNDhMNS40NCA3LjU1Yy0xLjQ4IDEuNjgtMi4zMiAzLjctMi44IDUuNDVoNy43NWMuODkgMCAxLjYxLS43MiAxLjYxLTEuNjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk2IDExLjIyYy0uNDEtNC40MS00LjU2LTcuNDktOC45OC03LjItMi41MS4xNi00LjQ0Ljk0LTUuOTMgMi4wNGw0Ljc0IDIuMDFjMS4zMy41NyAyLjIgMS44NyAyLjIgMy4zMiAwIDEuOTktMS42MiAzLjYxLTMuNjEgMy42MUgyLjIxQzIgMTYuMzEgMiAxNy4yIDIgMTcuMnYuOGMwIDEuMS45IDIgMiAyaDEwYzQuNjcgMCA4LjQxLTQuMDEgNy45Ni04Ljc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNSdWdieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjQ5IDMuNTFjLS41Ni0uNTYtMi4xNS0uOTctNC4xNi0uOTctMy4wOCAwLTcuMTUuOTYtOS45OCAzLjc5LTQuNjkgNC43LTQuMjUgMTIuNzQtMi44NCAxNC4xNi41Ni41NiAyLjE1Ljk3IDQuMTYuOTcgMy4wOCAwIDcuMTUtLjk2IDkuOTgtMy43OSA0LjY5LTQuNyA0LjI1LTEyLjc0IDIuODQtMTQuMTZ6TTcuNzYgNy43NmMyLjY0LTIuNjQgNi4zNS0zLjEyIDguMDMtMy4xOS0yLjA1Ljk0LTQuNDYgMi40NS02LjYxIDQuNjFhMjMuNDYyIDIzLjQ2MiAwIDAgMC00LjYyIDYuNjNjLjEtMi40OC44OC01Ljc0IDMuMi04LjA1em04LjQ4IDguNDhjLTIuNjQgMi42NC02LjM1IDMuMTItOC4wMyAzLjE5IDIuMDUtLjk0IDQuNDYtMi40NSA2LjYxLTQuNjEgMi4xNi0yLjE2IDMuNjctNC41OCA0LjYyLTYuNjMtLjEgMi40OC0uODggNS43NC0zLjIgOC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzU29jY2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAzLjMgMS4zNS0uOTVhOC4wMSA4LjAxIDAgMCAxIDQuMzggMy4zNGwtLjM5IDEuMzQtMS4zNS40NkwxMyA2LjdWNS4zem0tMy4zNS0uOTVMMTEgNS4zdjEuNEw3LjAxIDkuNDlsLTEuMzUtLjQ2LS4zOS0xLjM0YTguMTAzIDguMTAzIDAgMCAxIDQuMzgtMy4zNHpNNy4wOCAxNy4xMWwtMS4xNC4xQTcuOTM4IDcuOTM4IDAgMCAxIDQgMTJjMC0uMTIuMDEtLjIzLjAyLS4zNWwxLS43MyAxLjM4LjQ4IDEuNDYgNC4zNC0uNzggMS4zN3ptNy40MiAyLjQ4Yy0uNzkuMjYtMS42My40MS0yLjUuNDFzLTEuNzEtLjE1LTIuNS0uNDFsLS42OS0xLjQ5LjY0LTEuMWg1LjExbC42NCAxLjExLS43IDEuNDh6TTE0LjI3IDE1SDkuNzNsLTEuMzUtNC4wMkwxMiA4LjQ0bDMuNjMgMi41NEwxNC4yNyAxNXptMy43OSAyLjIxLTEuMTQtLjEtLjc5LTEuMzcgMS40Ni00LjM0IDEuMzktLjQ3IDEgLjczYy4wMS4xMS4wMi4yMi4wMi4zNCAwIDEuOTktLjczIDMuODEtMS45NCA1LjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTcG9ydHNUZW5uaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41MiAyLjQ5QzE3LjE4LjE1IDEyLjkuNjIgOS45NyAzLjU1Yy0xLjYgMS42LTIuNTIgMy44Ny0yLjU0IDUuNDYtLjAyIDEuNTguMjYgMy44OS0xLjM1IDUuNWwtNC4yNCA0LjI0IDEuNDIgMS40MiA0LjI0LTQuMjRjMS42MS0xLjYxIDMuOTItMS4zMyA1LjUtMS4zNXMzLjg2LS45NCA1LjQ2LTIuNTRjMi45Mi0yLjkzIDMuNC03LjIxIDEuMDYtOS41NXptLTkuMiA5LjE5Yy0xLjUzLTEuNTMtMS4wNS00LjYxIDEuMDYtNi43MnM1LjE4LTIuNTkgNi43Mi0xLjA2YzEuNTMgMS41MyAxLjA1IDQuNjEtMS4wNiA2Ljcycy01LjE4IDIuNTktNi43MiAxLjA2ek0xOCAxN2MuNTMgMCAxLjA0LjIxIDEuNDEuNTkuNzguNzguNzggMi4wNSAwIDIuODMtLjM3LjM3LS44OC41OC0xLjQxLjU4cy0xLjA0LS4yMS0xLjQxLS41OWMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODMuMzctLjM3Ljg4LS41OCAxLjQxLS41OG0wLTJhMy45OTggMy45OTggMCAwIDAtMi44MyA2LjgzYy43OC43OCAxLjgxIDEuMTcgMi44MyAxLjE3YTMuOTk4IDMuOTk4IDAgMCAwIDIuODMtNi44M0EzLjk5OCAzLjk5OCAwIDAgMCAxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzVm9sbGV5YmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNC4wMUMzLjU4IDUuODQgMiA4LjczIDIgMTJjMCAxLjQ2LjMyIDIuODUuODkgNC4xMUw2IDE0LjMxVjQuMDF6TTExIDExLjQyVjIuMDVjLTEuMDYuMTEtMi4wNy4zOC0zIC43OXYxMC4zMmwzLTEuNzR6TTEyIDEzLjE1bC04LjExIDQuNjhjLjYxLjg0IDEuMzQgMS41OSAyLjE4IDIuMkwxNSAxNC44OWwtMy0xLjc0ek0xMyA3Ljk2djMuNDZsOC4xMSA0LjY4Yy40Mi0uOTMuNy0xLjkzLjgyLTIuOThMMTMgNy45NnpNOC4wNyAyMS4yYzEuMjEuNTEgMi41My44IDMuOTMuOCAzLjM0IDAgNi4yOS0xLjY1IDguMTEtNC4xNkwxNyAxNi4wNCA4LjA3IDIxLjJ6TTIxLjkyIDEwLjgxYy0uNTUtNC42My00LjI2LTguMy04LjkyLTguNzZ2My42bDguOTIgNS4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3BvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjMgNmMtMS42NiAwLTMuMjIuNjYtNC4zNiAxLjczQzYuNTQgNi43MyA1LjYxIDYgNC41IDZhMi41IDIuNSAwIDAgMCAwIDVjLjIxIDAgLjQxLS4wMy42MS0uMDgtLjA1LjI1LS4wOS41MS0uMS43OGE2LjAwNiA2LjAwNiAwIDAgMCA2LjY4IDYuMjdjMi41NS0uMjggNC42OC0yLjI2IDUuMTktNC43Ny4xNS0uNzEuMTUtMS40LjA2LTIuMDYtLjA5LS42LjM4LTEuMTMuOTktMS4xM0gyMlY2SDExLjIzek00LjUgOWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41LjUuMjIuNS41LS4yMi41LS41LjV6bTYuNSA2Yy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN1cmZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAyM2MtMS4wMyAwLTIuMDYtLjI1LTMtLjc1LTEuODkgMS00LjExIDEtNiAwLTEuODkgMS00LjExIDEtNiAwLS45NS41LTEuOTcuNzUtMyAuNzVIMnYtMmgxYzEuMDQgMCAyLjA4LS4zNSAzLTEgMS44MyAxLjMgNC4xNyAxLjMgNiAwIDEuODMgMS4zIDQuMTcgMS4zIDYgMCAuOTEuNjUgMS45NiAxIDMgMWgxdjJoLTF6TTE3IDEuNWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS0yLjU3IDYuOThMMTIuMTggMTAgMTYgMTN2My44NGMuNTMuMzggMS4wMy43OCAxLjQ5IDEuMTctLjY4LjU4LTEuNTUuOTktMi40OS45OS0xLjIgMC0yLjI3LS42Ni0zLTEuNS0uNzMuODQtMS44IDEuNS0zIDEuNS0uMzMgMC0uNjUtLjA1LS45Ni0uMTRDNS4xOSAxNi45IDMgMTQuNzIgMyAxMy4yOCAzIDEyLjI1IDQuMDEgMTIgNC44NSAxMmMuOTggMCAyLjI4LjMxIDMuNy44M2wtLjUzLTMuMWMtLjExLS42Ny4xOC0xLjM4Ljc4LTEuNzlsMi4xNS0xLjQ1LTItLjM3LTIuODIgMS45M0w1IDYuNCA4LjUgNGw1LjU1IDEuMDNjLjQ1LjA5LjkzLjM3IDEuMjIuODlsLjg4IDEuNTVBNS4wMDcgNS4wMDcgMCAwIDAgMjAuNSAxMHYyYTcuMDEgNy4wMSAwIDAgMS02LjA3LTMuNTJ6TTEwLjMgMTEuMWwuNDQgMi42NWMuOTIuNDIgMi40OCAxLjI3IDMuMjYgMS43NVYxNGwtMy43LTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3dpdGNoQWNjb3VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTYgMmMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6bTYgMTJIOHYtMS41YzAtMS45OSA0LTMgNi0zczYgMS4wMSA2IDNWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRodW1iRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0djI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA0aC0yYy0uNTUgMC0xIC40NS0xIDF2OWMwIC41NS40NSAxIDEgMWgyVjR6TTIuMTcgMTEuMTJjLS4xMS4yNS0uMTcuNTItLjE3LjhWMTNjMCAxLjEuOSAyIDIgMmg1LjVsLS45MiA0LjY1Yy0uMDUuMjItLjAyLjQ2LjA4LjY2LjIzLjQ1LjUyLjg2Ljg4IDEuMjJMMTAgMjJsNi40MS02LjQxYy4zOC0uMzguNTktLjg5LjU5LTEuNDJWNi4zNEMxNyA1LjA1IDE1Ljk1IDQgMTQuNjYgNGgtOC4xYy0uNzEgMC0xLjM2LjM3LTEuNzIuOTdsLTIuNjcgNi4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVGh1bWJVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0djI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIwaDJjLjU1IDAgMS0uNDUgMS0xdi05YzAtLjU1LS40NS0xLTEtMUgydjExem0xOS44My03LjEyYy4xMS0uMjUuMTctLjUyLjE3LS44VjExYzAtMS4xLS45LTItMi0yaC01LjVsLjkyLTQuNjVjLjA1LS4yMi4wMi0uNDYtLjA4LS42NmE0LjggNC44IDAgMCAwLS44OC0xLjIyTDE0IDIgNy41OSA4LjQxQzcuMjEgOC43OSA3IDkuMyA3IDkuODN2Ny44NEEyLjM0IDIuMzQgMCAwIDAgOS4zNCAyMGg4LjExYy43IDAgMS4zNi0uMzcgMS43Mi0uOTdsMi42Ni02LjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUaHVuZGVyc3Rvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45MiA3LjAyQzE3LjQ1IDQuMTggMTQuOTcgMiAxMiAyIDkuODIgMiA3LjgzIDMuMTggNi43OCA1LjA2IDQuMDkgNS40MSAyIDcuNzQgMiAxMC41IDIgMTMuNTMgNC40NyAxNiA3LjUgMTZoMTBjMi40OCAwIDQuNS0yLjAyIDQuNS00LjVhNC41IDQuNSAwIDAgMC00LjA4LTQuNDh6TTE0LjggMTdsLTIuOSAzLjMyIDIgMUwxMS41NSAyNGgyLjY1bDIuOS0zLjMyLTItMUwxNy40NSAxN3pNOC44IDE3bC0yLjkgMy4zMiAyIDFMNS41NSAyNEg4LjJsMi45LTMuMzItMi0xTDExLjQ1IDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRUb3JuYWRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTEgOCAyMyAzSDFsMi44OSA1ek03Ljk1IDE1IDEyIDIybDQuMDUtN3pNMTguOTUgMTBINS4wNWwxLjc0IDNoMTAuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRyYW5zZ2VuZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMxLjkzIDAgMy41IDEuNTcgMy41IDMuNVMxMy45MyAxNSAxMiAxNXMtMy41LTEuNTctMy41LTMuNVMxMC4wNyA4IDEyIDh6bTQuNTMuMzggMy45Ny0zLjk2VjdoMlYxaC02djJoMi41OGwtMy45NyAzLjk3QzE0LjIzIDYuMzYgMTMuMTYgNiAxMiA2cy0yLjIzLjM2LTMuMTEuOTdsLS42NS0uNjUgMS40MS0xLjQxLTEuNDEtMS40Mkw2LjgyIDQuOSA0LjkyIDNINy41VjFoLTZ2NmgyVjQuNDJsMS45MSAxLjktMS40MiAxLjQyTDUuNCA5LjE1bDEuNDEtMS40MS42NS42NWMtLjYuODgtLjk2IDEuOTUtLjk2IDMuMTFhNS41IDUuNSAwIDAgMCA0LjUgNS40MVYxOUg5djJoMnYyaDJ2LTJoMnYtMmgtMnYtMi4wOWE1LjUgNS41IDAgMCAwIDMuNTMtOC41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHJhdmVsRXhwbG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjMgMTYuOWMuNC0uNy43LTEuNS43LTIuNCAwLTIuNS0yLTQuNS00LjUtNC41UzExIDEyIDExIDE0LjVzMiA0LjUgNC41IDQuNWMuOSAwIDEuNy0uMyAyLjQtLjdsMy4yIDMuMiAxLjQtMS40LTMuMi0zLjJ6bS0zLjguMWMtMS40IDAtMi41LTEuMS0yLjUtMi41czEuMS0yLjUgMi41LTIuNSAyLjUgMS4xIDIuNSAyLjUtMS4xIDIuNS0yLjUgMi41ek0xMiAyMHYyQzYuNDggMjIgMiAxNy41MiAyIDEyUzYuNDggMiAxMiAyYzQuODQgMCA4Ljg3IDMuNDQgOS44IDhoLTIuMDdBOCA4IDAgMCAwIDE1IDQuNTlWNWMwIDEuMS0uOSAyLTIgMmgtMnYyYzAgLjU1LS40NSAxLTEgMUg4djJoMnYzSDlsLTQuNzktNC43OUM0LjA4IDEwLjc5IDQgMTEuMzggNCAxMmMwIDQuNDEgMy41OSA4IDggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kVHN1bmFtaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjY3IDE3LjYzYy0zLjggMi44LTYuMTIuNC02LjY3IDAtLjY2LjQ5LTIuOTIgMi43Ni02LjY3IDBDMy40MyAxOS4wMyAyLjY1IDE5IDIgMTl2MmMxLjE2IDAgMi4zLS4zMiAzLjMzLS45M2E2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDAgNi41MzUgNi41MzUgMCAwIDAgNi42NyAwYzEuMDMuNjEgMi4xNy45MyAzLjMzLjkzdi0yYy0uNjYgMC0xLjUtLjAyLTMuMzMtMS4zN3pNMTkuMzMgMTJIMjJ2LTJoLTIuNjdDMTcuNSAxMCAxNiA4LjUgMTYgNi42N2MwLTEuMDIuMzgtMS43NCAxLjA5LTMuMzQtMS4zNy0uMjEtMi0uMzMtMy4wOS0uMzNDNy4zNiAzIDIuMTUgOC4wMyAyLjAxIDE0LjVsLS4wMSAyYzEuMTYgMCAyLjMtLjMyIDMuMzMtLjkzYTYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMCA2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDBjMS4wMy42MSAyLjE3LjkzIDMuMzMuOTN2LTJjLS42NiAwLTEuNS0uMDItMy4zMy0xLjM3LTMuOCAyLjgtNi4xMi40LTYuNjcgMC0uOS42Ny0uNTQuNDEtLjkxLjYzLS43LS45NC0xLjA5LTIuMDYtMS4wOS0zLjI2IDAtMi41OCAxLjc3LTQuNzQgNC4yMS01LjMzLS4xMy41MS0uMjEgMS4wMi0uMjEgMS41QzE0IDkuNjEgMTYuMzkgMTIgMTkuMzMgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFZhY2NpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNS41SDhWNGguNWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMUg2djEuNUgzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxVjE1YzAgMS4xLjkgMiAyIDJoMXY0bDIgMS41VjE3aDFjMS4xIDAgMi0uOSAyLTJWNy41Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xek05IDlINy4yNWMtLjQxIDAtLjc1LjM0LS43NS43NXMuMzQuNzUuNzUuNzVIOVYxMkg3LjI1Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NUg5VjE1SDVWNy41aDRWOXptMTAuNSAxLjVWMTBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF2LjVjMCAuNS0xLjUgMS4xNi0xLjUgM1YyMGMwIDEuMS45IDIgMiAyaDRjMS4xIDAgMi0uOSAyLTJ2LTYuNWMwLTEuODQtMS41LTIuNS0xLjUtM3ptLTMgMFYxMGgxdi41YzAgMS42IDEuNSAyIDEuNSAzdi41aC00di0uNWMwLTEgMS41LTEuNCAxLjUtM3pNMTUgMjB2LTEuNWg0VjIwaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRWb2xjYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtN2wtMiA1SDZsLTQgOWgyMHpNMTMgMWgydjRoLTJ6TTE2LjEyMSA1LjQ2OCAxOC45NSAyLjY0bDEuNDE0IDEuNDE0LTIuODI5IDIuODI4ek03LjY0IDQuMDVsMS40MTQtMS40MTQgMi44MjggMi44MjktMS40MTQgMS40MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRINkMzLjc5IDQgMiA1Ljc5IDIgOHY4YzAgMi4yMSAxLjc5IDQgNCA0aDEyYzIuMjEgMCA0LTEuNzkgNC00VjhjMC0yLjIxLTEuNzktNC00LTR6bS0xLjg2IDkuNzdjLS4yNC4yLS41Ny4yOC0uODguMkw0LjE1IDExLjI1QzQuNDUgMTAuNTIgNS4xNiAxMCA2IDEwaDEyYy42NyAwIDEuMjYuMzQgMS42My44NGwtMy40OSAyLjkzek02IDZoMTJjMS4xIDAgMiAuOSAyIDJ2LjU1Yy0uNTktLjM0LTEuMjctLjU1LTItLjU1SDZjLS43MyAwLTEuNDEuMjEtMiAuNTVWOGMwLTEuMS45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXYXRlckRyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy01LjMzIDQuNTUtOCA4LjQ4LTggMTEuOCAwIDQuOTggMy44IDguMiA4IDguMnM4LTMuMjIgOC04LjJjMC0zLjMyLTIuNjctNy4yNS04LTExLjh6TTcuODMgMTRjLjM3IDAgLjY3LjI2Ljc0LjYyLjQxIDIuMjIgMi4yOCAyLjk4IDMuNjQgMi44Ny40My0uMDIuNzkuMzIuNzkuNzUgMCAuNC0uMzIuNzMtLjcyLjc1LTIuMTMuMTMtNC42Mi0xLjA5LTUuMTktNC4xMmEuNzUuNzUgMCAwIDEgLjc0LS44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2F2aW5nSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE3YzAgMy4zMS0yLjY5IDYtNiA2di0xLjVjMi40OCAwIDQuNS0yLjAyIDQuNS00LjVIMjN6TTEgN2MwLTMuMzEgMi42OS02IDYtNnYxLjVDNC41MiAyLjUgMi41IDQuNTIgMi41IDdIMXptNy4wMS0yLjY4LTQuNiA0LjZjLTMuMjIgMy4yMi0zLjIyIDguNDUgMCAxMS42N3M4LjQ1IDMuMjIgMTEuNjcgMGw3LjA3LTcuMDdjLjQ5LS40OS40OS0xLjI4IDAtMS43N2ExLjI1IDEuMjUgMCAwIDAtMS43NyAwbC00LjQyIDQuNDItLjcxLS43MSA2LjU0LTYuNTRjLjQ5LS40OS40OS0xLjI4IDAtMS43N3MtMS4yOC0uNDktMS43NyAwbC01LjgzIDUuODMtLjcxLS43MSA2Ljg5LTYuODljLjQ5LS40OS40OS0xLjI4IDAtMS43N3MtMS4yOC0uNDktMS43NyAwbC02Ljg5IDYuODktLjY5LS43IDUuNDgtNS40OGMuNDktLjQ5LjQ5LTEuMjggMC0xLjc3cy0xLjI4LS40OS0xLjc3IDBsLTcuNjIgNy42MmE0LjAwMyA0LjAwMyAwIDAgMS0uMzMgNS4yOGwtLjcxLS43MWEzIDMgMCAwIDAgMC00LjI0bC0uMzUtLjM1IDQuMDctNC4wN2MuNDktLjQ5LjQ5LTEuMjggMC0xLjc3YTEuMjcgMS4yNyAwIDAgMC0xLjc4LjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXaGF0c2FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjA1IDQuOTFBOS44MTYgOS44MTYgMCAwIDAgMTIuMDQgMmMtNS40NiAwLTkuOTEgNC40NS05LjkxIDkuOTEgMCAxLjc1LjQ2IDMuNDUgMS4zMiA0Ljk1TDIuMDUgMjJsNS4yNS0xLjM4YzEuNDUuNzkgMy4wOCAxLjIxIDQuNzQgMS4yMSA1LjQ2IDAgOS45MS00LjQ1IDkuOTEtOS45MSAwLTIuNjUtMS4wMy01LjE0LTIuOS03LjAxem0tNy4wMSAxNS4yNGMtMS40OCAwLTIuOTMtLjQtNC4yLTEuMTVsLS4zLS4xOC0zLjEyLjgyLjgzLTMuMDQtLjItLjMxYTguMjY0IDguMjY0IDAgMCAxLTEuMjYtNC4zOGMwLTQuNTQgMy43LTguMjQgOC4yNC04LjI0IDIuMiAwIDQuMjcuODYgNS44MiAyLjQyYTguMTgzIDguMTgzIDAgMCAxIDIuNDEgNS44M2MuMDIgNC41NC0zLjY4IDguMjMtOC4yMiA4LjIzem00LjUyLTYuMTZjLS4yNS0uMTItMS40Ny0uNzItMS42OS0uODEtLjIzLS4wOC0uMzktLjEyLS41Ni4xMi0uMTcuMjUtLjY0LjgxLS43OC45Ny0uMTQuMTctLjI5LjE5LS41NC4wNi0uMjUtLjEyLTEuMDUtLjM5LTEuOTktMS4yMy0uNzQtLjY2LTEuMjMtMS40Ny0xLjM4LTEuNzItLjE0LS4yNS0uMDItLjM4LjExLS41MS4xMS0uMTEuMjUtLjI5LjM3LS40M3MuMTctLjI1LjI1LS40MWMuMDgtLjE3LjA0LS4zMS0uMDItLjQzcy0uNTYtMS4zNC0uNzYtMS44NGMtLjItLjQ4LS40MS0uNDItLjU2LS40M2gtLjQ4Yy0uMTcgMC0uNDMuMDYtLjY2LjMxLS4yMi4yNS0uODYuODUtLjg2IDIuMDcgMCAxLjIyLjg5IDIuNCAxLjAxIDIuNTYuMTIuMTcgMS43NSAyLjY3IDQuMjMgMy43NC41OS4yNiAxLjA1LjQxIDEuNDEuNTIuNTkuMTkgMS4xMy4xNiAxLjU2LjEuNDgtLjA3IDEuNDctLjYgMS42Ny0xLjE4LjIxLS41OC4yMS0xLjA3LjE0LTEuMThzLS4yMi0uMTYtLjQ3LS4yOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2hhdHNob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41LjY3cy43NCAyLjY1Ljc0IDQuOGMwIDIuMDYtMS4zNSAzLjczLTMuNDEgMy43My0yLjA3IDAtMy42My0xLjY3LTMuNjMtMy43M2wuMDMtLjM2QzUuMjEgNy41MSA0IDEwLjYyIDQgMTRjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOEMyMCA4LjYxIDE3LjQxIDMuOCAxMy41LjY3ek0xMS43MSAxOWMtMS43OCAwLTMuMjItMS40LTMuMjItMy4xNCAwLTEuNjIgMS4wNS0yLjc2IDIuODEtMy4xMiAxLjc3LS4zNiAzLjYtMS4yMSA0LjYyLTIuNTguMzkgMS4yOS41OSAyLjY1LjU5IDQuMDQgMCAyLjY1LTIuMTUgNC44LTQuOCA0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFdvbWFuMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk0IDguMzFDMTMuNjIgNy41MiAxMi44NSA3IDEyIDdzLTEuNjIuNTItMS45NCAxLjMxTDcgMTZoMy41djZoM3YtNkgxN2wtMy4wNi03LjY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb21hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk0IDguMzFDMTMuNjIgNy41MiAxMi44NSA3IDEyIDdzLTEuNjIuNTItMS45NCAxLjMxTDcgMTZoM3Y2aDR2LTZoM2wtMy4wNi03LjY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNFwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRXb3Jrc3BhY2VQcmVtaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42OCAxMy42OSAxMiAxMS45M2wyLjMxIDEuNzYtLjg4LTIuODVMMTUuNzUgOWgtMi44NEwxMiA2LjE5IDExLjA5IDlIOC4yNWwyLjMxIDEuODQtLjg4IDIuODV6TTIwIDEwYzAtNC40Mi0zLjU4LTgtOC04cy04IDMuNTgtOCA4YzAgMi4wMy43NiAzLjg3IDIgNS4yOFYyM2w2LTIgNiAydi03LjcyQTcuOTYgNy45NiAwIDAgMCAyMCAxMHptLTgtNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02IDIuNjktNiA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZENoZWNrQm94T3V0bGluZUJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQ2hlY2tCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNWEyIDIgMCAwIDAtMi0yem0tOSAxNC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEluZGV0ZXJtaW5hdGVDaGVja0JveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMiAxMEg3di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFJhZGlvQnV0dG9uQ2hlY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wLTVDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRSYWRpb0J1dHRvblVuY2hlY2tlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTdGFyQm9yZGVyUHVycGxlNTAwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA4Ljg5Ljk0IDMuMTFoMi44MmwtMi4yNyAxLjYyLjkzIDMuMDFMMTIgMTQuNzlsLTIuNDIgMS44NC45My0zLjAxTDguMjQgMTJoMi44MkwxMiA4Ljg5TTEyIDJsLTIuNDIgOEgybDYuMTcgNC40MUw1LjgzIDIyIDEyIDE3LjMxIDE4LjE4IDIybC0yLjM1LTcuNTlMMjIgMTBoLTcuNThMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhckJvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDkuMjQtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNGwtMy43NiAyLjI3IDEtNC4yOC0zLjMyLTIuODggNC4zOC0uMzhMMTIgNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA5LjI0LTcuMTktLjYyTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yNyAxOC4xOCAyMWwtMS42My03LjAzTDIyIDkuMjR6TTEyIDE1LjRWNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3Rhck91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDkuMjQtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNGwtMy43NiAyLjI3IDEtNC4yOC0zLjMyLTIuODggNC4zOC0uMzhMMTIgNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU3RhclB1cnBsZTUwMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgOC44OS45NCAzLjExaDIuODJsLTIuMjcgMS42Mi45MyAzLjAxTDEyIDE0Ljc5bC0yLjQyIDEuODQuOTMtMy4wMUw4LjI0IDEyaDIuODJMMTIgOC44OU0xMiAybC0yLjQyIDhIMmw2LjE3IDQuNDFMNS44MyAyMiAxMiAxNy4zMSAxOC4xOCAyMmwtMi4zNS03LjU5TDIyIDEwaC03LjU4TDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFN0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTcuMjcgMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvZ2dsZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWgxMGMyLjc2IDAgNS0yLjI0IDUtNXMtMi4yNC01LTUtNXpNNyAxNWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFRvZ2dsZU9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDEwYzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01em0wIDhjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRGYWNlVW5sb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4yNSAxM2ExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwek0xNSAxMS43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41em03IC4yNWMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMHpNMTAuNjYgNC4xMkMxMi4wNiA2LjQ0IDE0LjYgOCAxNy41IDhjLjQ2IDAgLjkxLS4wNSAxLjM0LS4xMkMxNy40NCA1LjU2IDE0LjkgNCAxMiA0Yy0uNDYgMC0uOTEuMDUtMS4zNC4xMnpNNC40MiA5LjQ3YTguMDQ2IDguMDQ2IDAgMCAwIDMuNjYtNC40NCA4LjA0NiA4LjA0NiAwIDAgMC0zLjY2IDQuNDR6TTIwIDEyYzAtLjc4LS4xMi0xLjUzLS4zMy0yLjI0LS43LjE1LTEuNDIuMjQtMi4xNy4yNGExMCAxMCAwIDAgMS03Ljc2LTMuNjlBMTAuMDE2IDEwLjAxNiAwIDAgMSA0IDExLjg2Yy4wMS4wNCAwIC4wOSAwIC4xNCAwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5MjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTd2My42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxN0g3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE3IDUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM1YxN2gxMFY1LjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5MzAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjE1aDEwVjUuMzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTV2NS42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxNUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5NTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjEzaDEwVjUuMzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTN2Ny42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxM0g3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5NjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjExaDEwVjUuMzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTF2OS42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1YxMUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRCYXR0ZXJ5ODAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjloMTBWNS4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA5djExLjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjlIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeTkwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE3IDUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM1Y4aDEwVjUuMzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOHYxMi42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y4SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlDaGFyZ2luZzIwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyMHYtM0g3djMuNjdDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWMTdoLTQuNEwxMSAyMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM1YxN2g0di0yLjVIOUwxMyA3djUuNWgyTDEyLjYgMTdIMTdWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlDaGFyZ2luZzMwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjkuMTdoMkwxMyA3djUuNWgybC0xLjA3IDJIMTdWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIwdi01LjVIN3Y2LjE3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjE0LjVoLTMuMDdMMTEgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlDaGFyZ2luZzUwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC40NyAxMy41IDExIDIwdi01LjVIOWwuNTMtMUg3djcuMTdDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWMTMuNWgtMi41M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3Y4LjE3aDIuNTNMMTMgN3Y1LjVoMmwtLjUzIDFIMTdWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZEJhdHRlcnlDaGFyZ2luZzYwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzVjExaDMuODdMMTMgN3Y0aDRWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEyLjVoMkwxMSAyMHYtNS41SDlsMS44Ny0zLjVIN3Y5LjY3QzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjExaC00djEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nODAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWOWg0LjkzTDEzIDd2Mmg0VjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMi41aDJMMTEgMjB2LTUuNUg5TDExLjkzIDlIN3YxMS42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y5aC00djMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kQmF0dGVyeUNoYXJnaW5nOTAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzNWOGg1LjQ3TDEzIDd2MWg0VjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMi41aDJMMTEgMjB2LTUuNUg5TDEyLjQ3IDhIN3YxMi42N0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y4aC00djQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsQ2VsbHVsYXIxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIgMjJoMjBWMkwyIDIyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMiAyIDIyaDEwVjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxDZWxsdWxhcjJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMiAyMmgyMFYyTDIgMjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwIDIgMjJoMTJWMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyM0JhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yIDIyaDIwVjJMMiAyMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNyAyIDIyaDE1Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjIgOFYyTDIgMjJoMTZWOGg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMHY4aDJ2LThoLTJ6bS04IDEyVjEyTDIgMjJoMTB6bTggMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjIgOFYyTDIgMjJoMTZWOGg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAyMlYxMEwyIDIyaDEyem02LTEydjhoMnYtOGgtMnptMCAxMmgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjIgOFYyTDIgMjJoMTZWOGg0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMlY2TDIgMjJoMTZ6bTItMTJ2OGgydi04aC0yem0wIDEyaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaTFCYXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE1LjUgMTQuNWMwLTIuOCAyLjItNSA1LTUgLjM2IDAgLjcxLjA0IDEuMDUuMTFMMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNEM1LjI4IDMgLjgxIDYuNjYuMzYgN0wxMiAyMS41bDMuNS00LjM2VjE0LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTQuNWMwLS4yMy4wNC0uNDYuMDctLjY4LS45Mi0uNDMtMi4xNC0uODItMy41Ny0uODItMyAwLTUuMSAxLjctNS4zIDEuOWw1LjMgNi42IDMuNS00LjM2VjE0LjV6TTIzIDE2di0xLjVjMC0xLjQtMS4xLTIuNS0yLjUtMi41UzE4IDEzLjEgMTggMTQuNVYxNmMtLjUgMC0xIC41LTEgMXY0YzAgLjUuNSAxIDEgMWg1Yy41IDAgMS0uNSAxLTF2LTRjMC0uNS0uNS0xLTEtMXptLTEgMGgtM3YtMS41YzAtLjguNy0xLjUgMS41LTEuNXMxLjUuNyAxLjUgMS41VjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpMUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xMi4wMSAyMS40OSAyMy42NCA3Yy0uNDUtLjM0LTQuOTMtNC0xMS42NC00QzUuMjggMyAuODEgNi42Ni4zNiA3bDExLjYzIDE0LjQ5LjAxLjAxLjAxLS4wMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi42NyAxNC44NiAxMiAyMS40OXYuMDFsLjAxLS4wMSA1LjMzLTYuNjNDMTcuMDYgMTQuNjUgMTUuMDMgMTMgMTIgMTNzLTUuMDYgMS42NS01LjMzIDEuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkyQmFyTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS41IDE0LjVjMC0yLjggMi4yLTUgNS01IC4zNiAwIC43MS4wNCAxLjA1LjExTDIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdMMTIgMjEuNWwzLjUtNC4zNlYxNC41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE0LjVjMC0xLjM0LjUxLTIuNTMgMS4zNC0zLjQyQzE1LjYyIDEwLjUxIDEzLjk4IDEwIDEyIDEwYy00LjEgMC02LjggMi4yLTcuMiAyLjVsNy4yIDkgMy41LTQuMzhWMTQuNXpNMjMgMTZ2LTEuNWMwLTEuNC0xLjEtMi41LTIuNS0yLjVTMTggMTMuMSAxOCAxNC41VjE2Yy0uNSAwLTEgLjUtMSAxdjRjMCAuNS41IDEgMSAxaDVjLjUgMCAxLS41IDEtMXYtNGMwLS41LS41LTEtMS0xem0tMSAwaC0zdi0xLjVjMC0uOC43LTEuNSAxLjUtMS41czEuNS43IDEuNSAxLjVWMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdMMTIgMjEuNSAyMy42NCA3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljc5IDEyLjUyIDEyIDIxLjVsNy4yMS04Ljk5QzE4Ljg1IDEyLjI0IDE2LjEgMTAgMTIgMTBzLTYuODUgMi4yNC03LjIxIDIuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmkzQmFyTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNS41IDE0LjVjMC0yLjggMi4yLTUgNS01IC4zNiAwIC43MS4wNCAxLjA1LjExTDIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdMMTIgMjEuNWwzLjUtNC4zNlYxNC41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxNnYtMS41YzAtMS40LTEuMS0yLjUtMi41LTIuNVMxOCAxMy4xIDE4IDE0LjVWMTZjLS41IDAtMSAuNS0xIDF2NGMwIC41LjUgMSAxIDFoNWMuNSAwIDEtLjUgMS0xdi00YzAtLjUtLjUtMS0xLTF6bS0xIDBoLTN2LTEuNWMwLS44LjctMS41IDEuNS0xLjVzMS41LjcgMS41IDEuNVYxNnptLTYuNS0xLjVhNC45MiA0LjkyIDAgMCAxIDMuMjctNC42OEMxNy4yOSA4Ljk4IDE0Ljk0IDggMTIgOGMtNC44MSAwLTguMDQgMi42Mi04LjQ3IDIuOTVMMTIgMjEuNWwzLjUtNC4zNlYxNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpM0JhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0yMy42NCA3Yy0uNDUtLjM0LTQuOTMtNC0xMS42NC00QzUuMjggMyAuODEgNi42Ni4zNiA3TDEyIDIxLjUgMjMuNjQgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41MyAxMC45NSAxMiAyMS41bDguNDctMTAuNTVDMjAuMDQgMTAuNjIgMTYuODEgOCAxMiA4cy04LjA0IDIuNjItOC40NyAyLjk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjF2LTloOC45OUwyNCA4Ljk4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS41OSAxNC0yLjA5IDIuMDktLjMtLjNMMTUuNDEgMTQgMTQgMTUuNDFsMS43OSAxLjc5LjMuM0wxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaUNvbm5lY3RlZE5vSW50ZXJuZXQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTEyIDEyaDguOTlMMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNi4zNSA2LjM2QTcuOTMyIDcuOTMyIDAgMCAxIDEyIDEzdi0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMXYtOGMtMi4yMSAwLTQuMi44OS01LjY1IDIuMzRMMTIgMjF6bTktNS41OUwxOS41OSAxNGwtMi4wOSAyLjA5TDE1LjQxIDE0IDE0IDE1LjQxbDIuMDkgMi4wOUwxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaUNvbm5lY3RlZE5vSW50ZXJuZXQyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE4LjMxIDEyaDIuNjdMMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNC4yMyA0LjI0QTEwLjk2IDEwLjk2IDAgMCAxIDEyIDEwYzIuMzUgMCA0LjUyLjc0IDYuMzEgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTBjLTMuMDMgMC01Ljc4IDEuMjMtNy43NyAzLjIyTDEyIDIxdi05aDYuMzJjLTEuOC0xLjI2LTMuOTctMi02LjMyLTJ6bTkgNS40MUwxOS41OSAxNGwtMi4wOSAyLjA5TDE1LjQxIDE0IDE0IDE1LjQxbDIuMDkgMi4wOUwxNCAxOS41OSAxNS40MSAyMWwyLjA5LTIuMDhMMTkuNTkgMjEgMjEgMTkuNTlsLTIuMDgtMi4wOUwyMSAxNS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaUNvbm5lY3RlZE5vSW50ZXJuZXQzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIxLjE4IDExLjggMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsMi44MiAyLjgyQzUuMTcgOS40NSA4LjQxIDggMTIgOHM2LjgzIDEuNDUgOS4xOCAzLjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE4IDExLjhDMTguODMgOS40NSAxNS41OSA4IDEyIDhzLTYuODMgMS40NS05LjE4IDMuOEwxMiAyMXYtOWg4Ljk5bC4xOS0uMnpNMTkuNTkgMTRsLTIuMDkgMi4wOUwxNS40MSAxNCAxNCAxNS40MWwyLjA5IDIuMDlMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDEgMTkuNTkgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXIxQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE3LjY1IDE1LjM0IDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4bDYuMzUgNi4zNkM3LjggMTMuODkgOS43OSAxMyAxMiAxM3M0LjIuODkgNS42NSAyLjM0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42NSAxNS4zNEMxNi4yIDEzLjg5IDE0LjIxIDEzIDEyIDEzcy00LjIuODktNS42NSAyLjM0TDEyIDIxbDUuNjUtNS42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhcjJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTkuNzcgMTMuMjIgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNC4yMyA0LjI0QzYuMjIgMTEuMjMgOC45NyAxMCAxMiAxMHM1Ljc4IDEuMjMgNy43NyAzLjIyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43NyAxMy4yMkMxNy43OCAxMS4yMyAxNS4wMyAxMCAxMiAxMHMtNS43OCAxLjIzLTcuNzcgMy4yMkwxMiAyMWw3Ljc3LTcuNzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXIzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTIxLjE4IDExLjggMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsMi44MiAyLjgyQzUuMTcgOS40NSA4LjQxIDggMTIgOHM2LjgzIDEuNDUgOS4xOCAzLjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE4IDExLjhDMTguODMgOS40NSAxNS41OSA4IDEyIDhzLTYuODMgMS40NS05LjE4IDMuOEwxMiAyMWw5LjE4LTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhckNvbm5lY3RlZE5vSW50ZXJuZXQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE3IDE0Ljc2VjhoNS45MkMxOS45NyA1LjUxIDE2LjE2IDQgMTIgNCA3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4bDYuMzUgNi4zNkE3Ljk1IDcuOTUgMCAwIDEgMTIgMTNjMS44OSAwIDMuNjMuNjYgNSAxLjc2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjM1IDE1LjM0IDEyIDIxbDUtNS4wMXYtMS4yM0E3Ljk2MyA3Ljk2MyAwIDAgMCAxMiAxM2MtMi4yMSAwLTQuMi44OS01LjY1IDIuMzR6TTE5IDE4aDJ2MmgtMnpNMTkgMTBoMnY2aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyQ29ubmVjdGVkTm9JbnRlcm5ldDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbE9wYWNpdHlcIjpcIi4zXCIsXCJkXCI6XCJNMTcgMTEuMjFWOGg1LjkyQzE5Ljk3IDUuNTEgMTYuMTYgNCAxMiA0IDcuMzEgNCAzLjA3IDUuOSAwIDguOThsNC4yMyA0LjI0QTEwLjk2IDEwLjk2IDAgMCAxIDE3IDExLjIxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjIzIDEzLjIyIDEyIDIxbDUtNS4wMXYtNC43OGExMC45NiAxMC45NiAwIDAgMC0xMi43NyAyLjAxek0xOSAxOGgydjJoLTJ6TTE5IDEwaDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kU2lnbmFsV2lmaVN0YXR1c2JhckNvbm5lY3RlZE5vSW50ZXJuZXQzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE3IDlWOGg1LjkyQzE5Ljk3IDUuNTEgMTYuMTYgNCAxMiA0IDcuMzEgNCAzLjA3IDUuOSAwIDguOThsMi44MiAyLjgyQTEyLjkzIDEyLjkzIDAgMCAxIDEyIDhjMS43NyAwIDMuNDYuMzYgNSAxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgyIDExLjggMTIgMjFsNS01LjAxVjljLTEuNTQtLjY0LTMuMjMtMS01LTEtMy41OSAwLTYuODMgMS40NS05LjE4IDMuOHpNMTkgMThoMnYyaC0yek0xOSAxMGgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZFNpZ25hbFdpZmlTdGF0dXNiYXJDb25uZWN0ZWROb0ludGVybmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOGgydjJoLTJ6TTE5IDEwaDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOGg1LjkyQzE5Ljk3IDUuNTEgMTYuMTYgNCAxMiA0IDcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjFsNS01LjAxVjh6XCIsXCJvcGFjaXR5XCI6XCIuM1wifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRTaWduYWxXaWZpU3RhdHVzYmFyTm90Q29ubmVjdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41MiAxNS4xNmMuNDEtLjczIDEuMTgtMS4xNiAxLjYzLTEuOC40OC0uNjguMjEtMS45NC0xLjE0LTEuOTQtLjg4IDAtMS4zMi42Ny0xLjUgMS4yM2wtMS4zNy0uNTdDMTYuNTEgMTAuOTYgMTcuNTIgMTAgMTkgMTBjMS4yMyAwIDIuMDguNTYgMi41MSAxLjI2LjM3LjYuNTggMS43My4wMSAyLjU3LS42My45My0xLjIzIDEuMjEtMS41NiAxLjgxLS4xMy4yNC0uMTguNC0uMTggMS4xOGgtMS41MmMwLS40MS0uMDctMS4wOC4yNi0xLjY2em0tLjU3IDMuNzljMC0uNTkuNDctMS4wNCAxLjA1LTEuMDQuNTkgMCAxLjA0LjQ1IDEuMDQgMS4wNCAwIC41OC0uNDQgMS4wNS0xLjA0IDEuMDUtLjU4IDAtMS4wNS0uNDctMS4wNS0xLjA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE0IDEzYzAtMi43NiAyLjI0LTUgNS01IDEuNjMgMCAzLjA3Ljc5IDMuOTggMkwyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMWw0LjAxLTQuMDJDMTQuOCAxNi4wNyAxNCAxNC42MyAxNCAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUNhbGxpbmcxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE2LjQ5IDQuNWMxLjc5IDAgMy40Mi43MyA0LjU5IDEuOTFsMS4wNi0xLjA2QTcuOTQgNy45NCAwIDAgMCAxNi40OSAzYy0yLjIxIDAtNC4yMS45LTUuNjYgMi4zNGwxLjA2IDEuMDZhNi41NDUgNi41NDUgMCAwIDEgNC42LTEuOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsT3BhY2l0eVwiOlwiLjNcIixcImRcIjpcIk0xNi40OSA2Yy0xLjM4IDAtMi42My41Ni0zLjU0IDEuNDZsMS4wNiAxLjA2Yy42My0uNjMgMS41MS0xLjAzIDIuNDctMS4wM3MxLjg0LjM5IDIuNDcgMS4wM2wxLjA2LTEuMDZBNC45NCA0Ljk0IDAgMCAwIDE2LjQ5IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ5IDljLS41NSAwLTEuMDUuMjItMS40MS41OUwxNi40OSAxMWwxLjQxLTEuNDFjLS4zNi0uMzctLjg2LS41OS0xLjQxLS41OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTcuODNjMS4yOS41NCAyLjYzLjg5IDQgMS4wN3YtMi4yM2wtMi4zNS0uNDdMMTUgMTcuODN6TTcuMzMgNUg1LjFjLjE4IDEuMzcuNTMgMi43IDEuMDcgNEw3LjggNy4zNSA3LjMzIDV6XCIsXCJvcGFjaXR5XCI6XCIuM1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4yIDE0Ljg3LTMuNjctLjczYy0uNS0uMS0uODMuMi0uOS4yN2wtMi41MiAyLjVjLTIuNS0xLjQzLTQuNTctMy41LTYtNmwyLjUtMi41MmMuMjMtLjI0LjMzLS41Ny4yNy0uOUw5LjEzIDMuOGMtLjA5LS40Ni0uNS0uOC0uOTgtLjhINGMtLjU2IDAtMS4wMy40Ny0xIDEuMDMuMTcgMi44OSAxLjA1IDUuNiAyLjQzIDcuOTcgMS41OCAyLjczIDMuODUgNC45OSA2LjU3IDYuNTcgMi4zNyAxLjM3IDUuMDggMi4yNiA3Ljk3IDIuNDMuNTUuMDMgMS4wMy0uNDMgMS4wMy0xdi00LjE1YzAtLjQ4LS4zNC0uODktLjgtLjk4ek01LjEgNWgyLjIzbC40NyAyLjM1TDYuMTcgOWMtLjU0LTEuMy0uOS0yLjYzLTEuMDctNHpNMTkgMTguOWMtMS4zNy0uMTgtMi43LS41My00LTEuMDdsMS42NS0xLjYzIDIuMzUuNDd2Mi4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kV2lmaUNhbGxpbmcyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxPcGFjaXR5XCI6XCIuM1wiLFwiZFwiOlwiTTE2LjQ5IDQuNWMxLjc5IDAgMy40Mi43MyA0LjU5IDEuOTFsMS4wNi0xLjA2QTcuOTQgNy45NCAwIDAgMCAxNi40OSAzYy0yLjIxIDAtNC4yMS45LTUuNjYgMi4zNGwxLjA2IDEuMDZhNi41NDUgNi41NDUgMCAwIDEgNC42LTEuOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgNmMtMS4zOCAwLTIuNjMuNTYtMy41NCAxLjQ2bDEuMDYgMS4wNmMuNjMtLjYzIDEuNTEtMS4wMyAyLjQ3LTEuMDNzMS44NC4zOSAyLjQ3IDEuMDNsMS4wNi0xLjA2QTQuOTQgNC45NCAwIDAgMCAxNi40OSA2ek0xNi40OSA5Yy0uNTUgMC0xLjA1LjIyLTEuNDEuNTlMMTYuNDkgMTFsMS40MS0xLjQxYy0uMzYtLjM3LS44Ni0uNTktMS40MS0uNTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE3LjgzYzEuMjkuNTQgMi42My44OSA0IDEuMDd2LTIuMjNsLTIuMzUtLjQ3TDE1IDE3Ljgzek03LjMzIDVINS4xYy4xOCAxLjM3LjUzIDIuNyAxLjA3IDRMNy44IDcuMzUgNy4zMyA1elwiLFwib3BhY2l0eVwiOlwiLjNcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMiAxNC44Ny0zLjY3LS43M2MtLjUtLjEtLjgzLjItLjkuMjdsLTIuNTIgMi41Yy0yLjUtMS40My00LjU3LTMuNS02LTZsMi41LTIuNTJjLjIzLS4yNC4zMy0uNTcuMjctLjlMOS4xMyAzLjhjLS4wOS0uNDYtLjUtLjgtLjk4LS44SDRjLS41NiAwLTEuMDMuNDctMSAxLjAzLjE3IDIuODkgMS4wNSA1LjYgMi40MyA3Ljk3IDEuNTggMi43MyAzLjg1IDQuOTkgNi41NyA2LjU3IDIuMzcgMS4zNyA1LjA4IDIuMjYgNy45NyAyLjQzLjU1LjAzIDEuMDMtLjQzIDEuMDMtMXYtNC4xNWMwLS40OC0uMzQtLjg5LS44LS45OHpNNS4xIDVoMi4yM2wuNDcgMi4zNUw2LjE3IDljLS41NC0xLjMtLjktMi42My0xLjA3LTR6TTE5IDE4LjljLTEuMzctLjE4LTIuNy0uNTMtNC0xLjA3bDEuNjUtMS42MyAyLjM1LjQ3djIuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxMjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE1SDUuNXYtNC41SDRWOWgzdjZ6bTYuNS0xLjVoLTN2LTFoMmMuNTUgMCAxLS40NSAxLTFWMTBjMC0uNTUtLjQ1LTEtMS0xSDl2MS41aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxVjE1aDQuNXYtMS41em02IC41di00YzAtLjU1LS40NS0xLTEtMUgxNXYxLjVoM3YxaC0ydjFoMnYxaC0zVjE1aDMuNWMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzZFJvdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUzIDIxLjQ4QTEwLjQ4NyAxMC40ODcgMCAwIDEgMS41NiAxM0guMDZjLjUxIDYuMTYgNS42NiAxMSAxMS45NSAxMWwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6bS44OS02LjUyYy0uMTkgMC0uMzctLjAzLS41Mi0uMDhhMS4wNyAxLjA3IDAgMCAxLS40LS4yNGMtLjExLS4xLS4yLS4yMi0uMjYtLjM3LS4wNi0uMTQtLjA5LS4zLS4wOS0uNDdoLTEuM2MwIC4zNi4wNy42OC4yMS45NS4xNC4yNy4zMy41LjU2LjY5LjI0LjE4LjUxLjMyLjgyLjQxLjMuMS42Mi4xNS45Ni4xNS4zNyAwIC43Mi0uMDUgMS4wMy0uMTUuMzItLjEuNi0uMjUuODMtLjQ0cy40Mi0uNDMuNTUtLjcyLjItLjYxLjItLjk3YzAtLjE5LS4wMi0uMzgtLjA3LS41NmExLjY3IDEuNjcgMCAwIDAtLjIzLS41MWMtLjEtLjE2LS4yNC0uMy0uNC0uNDMtLjE3LS4xMy0uMzctLjIzLS42MS0uMzFhMi4wOTggMi4wOTggMCAwIDAgLjg5LS43NWMuMS0uMTUuMTctLjMuMjItLjQ2cy4wNy0uMzIuMDctLjQ4YzAtLjM2LS4wNi0uNjgtLjE4LS45NnMtLjI5LS41MS0uNTEtLjY5Yy0uMi0uMTktLjQ3LS4zMy0uNzctLjQzQzkuMTEgOC4wNSA4Ljc3IDggOC40IDhjLS4zNiAwLS42OS4wNS0xIC4xNi0uMy4xMS0uNTcuMjYtLjc5LjQ1LS4yMS4xOS0uMzguNDEtLjUxLjY3LS4xMi4yNi0uMTguNTQtLjE4Ljg1aDEuM2MwLS4xNy4wMy0uMzIuMDktLjQ1cy4xNC0uMjUuMjUtLjM0LjIzLS4xNy4zOC0uMjIuMy0uMDguNDgtLjA4Yy40IDAgLjcuMS44OS4zMS4xOS4yLjI5LjQ5LjI5Ljg2IDAgLjE4LS4wMy4zNC0uMDguNDlzLS4xNC4yNy0uMjUuMzdjLS4xMS4xLS4yNS4xOC0uNDEuMjQtLjE2LjA2LS4zNi4wOS0uNTguMDloLS43N3YxLjAzaC43N2MuMjIgMCAuNDIuMDIuNi4wN3MuMzMuMTMuNDUuMjNjLjEyLjExLjIyLjI0LjI5LjRzLjEuMzUuMS41N2MwIC40MS0uMTIuNzItLjM1LjkzLS4yMy4yMy0uNTUuMzMtLjk1LjMzem04LjU1LTUuOTJjLS4zMi0uMzMtLjctLjU5LTEuMTQtLjc3LS40NC0uMTgtLjkzLS4yNy0xLjQ3LS4yN0gxMnY4aDIuM2MuNTUgMCAxLjA2LS4wOSAxLjUxLS4yN3MuODQtLjQzIDEuMTYtLjc2Yy4zMi0uMzMuNTctLjczLjc0LTEuMTkuMTctLjQ3LjI2LS45OS4yNi0xLjU3di0uNGMwLS41OC0uMDktMS4xLS4yNi0xLjU3cy0uNDItLjg3LS43NC0xLjJ6bS0uMzkgMy4xNmMwIC40Mi0uMDUuNzktLjE0IDEuMTMtLjEuMzMtLjI0LjYyLS40My44NS0uMTkuMjMtLjQzLjQxLS43MS41My0uMjkuMTItLjYyLjE4LS45OS4xOGgtLjkxVjkuMTJoLjk3Yy43MiAwIDEuMjcuMjMgMS42NC42OS4zOC40Ni41NyAxLjEyLjU3IDEuOTl2LjR6TTEyLjAxIDBsLS42Ni4wMyAzLjgxIDMuODEgMS4zMy0xLjMzYzMuMjcgMS41NSA1LjYxIDQuNzIgNS45NiA4LjQ4aDEuNUMyMy40NSA0Ljg0IDE4LjMgMCAxMi4wMSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWJjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTFoLTEuNXYtLjVoLTJ2M2gyVjEzSDIxdjFjMCAuNTUtLjQ1IDEtMSAxaC0zYy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MXpNOCAxMHY1SDYuNXYtMS41aC0yVjE1SDN2LTVjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF6bS0xLjUuNWgtMlYxMmgydi0xLjV6bTcgMS41Yy41NSAwIDEgLjQ1IDEgMXYxYzAgLjU1LS40NSAxLTEgMWgtNFY5aDRjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek0xMSAxMC41di43NWgydi0uNzVoLTJ6bTIgMi4yNWgtMnYuNzVoMnYtLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzaWJpbGl0eU5ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSA2Yy0yLjYxLjctNS42NyAxLTguNSAxcy01Ljg5LS4zLTguNS0xTDMgOGMxLjg2LjUgNCAuODMgNiAxdjEzaDJ2LTZoMnY2aDJWOWMyLS4xNyA0LjE0LS41IDYtMWwtLjUtMnpNMTIgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NpYmlsaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA3aC02djEzaC0ydi02aC0ydjZIOVY5SDNWN2gxOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzaWJsZUZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCI0LjU0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE3aC0yYzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zIDEuMzUtMyAzLTN2LTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNXptMy0zLjVoLTEuODZsMS42Ny0zLjY3QzE4LjQyIDguNSAxNy40NCA3IDE1Ljk2IDdoLTUuMmMtLjgxIDAtMS41NC40Ny0xLjg3IDEuMkw4LjIyIDEwbDEuOTIuNTMuNjUtMS41M0gxM2wtMS44MyA0LjFjLS42IDEuMzMuMzkgMi45IDEuODUgMi45SDE4djVoMnYtNS41YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTN2LTJjLTEuNTQuMDItMy4wOS0uNzUtNC4wNy0xLjgzbC0xLjI5LTEuNDNjLS4xNy0uMTktLjM4LS4zNC0uNjEtLjQ1LS4wMSAwLS4wMS0uMDEtLjAyLS4wMUgxM2MtLjM1LS4yLS43NS0uMy0xLjE5LS4yNkMxMC43NiA3LjExIDEwIDguMDQgMTAgOS4wOVYxNWMwIDEuMS45IDIgMiAyaDV2NWgydi01LjVjMC0xLjEtLjktMi0yLTJoLTN2LTMuNDVjMS4yOSAxLjA3IDMuMjUgMS45NCA1IDEuOTV6bS05IDdjLTEuNjYgMC0zLTEuMzQtMy0zIDAtMS4zMS44NC0yLjQxIDItMi44M1YxMi4xYTUgNSAwIDEgMCA1LjkgNS45aC0yLjA3Yy0uNDEgMS4xNi0xLjUyIDItMi44MyAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjb3VudEJhbGFuY2VXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDcuMjhWNWMwLTEuMS0uOS0yLTItMkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtMi4yOEEyIDIgMCAwIDAgMjIgMTVWOWEyIDIgMCAwIDAtMS0xLjcyek0yMCA5djZoLTdWOWg3ek01IDE5VjVoMTR2MmgtNmMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDZ2Mkg1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjb3VudEJhbGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAxMGgtMnY3aDJ2LTd6bTYgMGgtMnY3aDJ2LTd6bTguNSA5SDJ2MmgxOXYtMnptLTIuNS05aC0ydjdoMnYtN3ptLTctNi43NEwxNi43MSA2SDYuMjlsNS4yMS0yLjc0bTAtMi4yNkwyIDZ2MmgxOVY2bC05LjUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY291bnRCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgMTZIN3YtLjI0QzguNDIgMTcuNjIgMTAuMTYgMTcgMTIgMTdzMy41OC42MiA1IDEuNzZWMTl6bTItMS4xNEMxNy4yIDE2LjA5IDE0LjczIDE1IDEyIDE1cy01LjIgMS4wOS03IDIuODZWNWgxNHYxMi44NnpNMTIgMTNjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgNiAxMiA2IDguNSA3LjU3IDguNSA5LjUgMTAuMDcgMTMgMTIgMTN6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNVMxMi44MyAxMSAxMiAxMXMtMS41LS42Ny0xLjUtMS41UzExLjE3IDggMTIgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY291bnRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek03LjM1IDE4LjVDOC42NiAxNy41NiAxMC4yNiAxNyAxMiAxN3MzLjM0LjU2IDQuNjUgMS41Yy0xLjMxLjk0LTIuOTEgMS41LTQuNjUgMS41cy0zLjM0LS41Ni00LjY1LTEuNXptMTAuNzktMS4zOGE5Ljk0NyA5Ljk0NyAwIDAgMC0xMi4yOCAwQTcuOTU3IDcuOTU3IDAgMCAxIDQgMTJjMC00LjQyIDMuNTgtOCA4LThzOCAzLjU4IDggOGMwIDEuOTUtLjcgMy43My0xLjg2IDUuMTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjLTEuOTMgMC0zLjUgMS41Ny0zLjUgMy41UzEwLjA3IDEzIDEyIDEzczMuNS0xLjU3IDMuNS0zLjVTMTMuOTMgNiAxMiA2em0wIDVjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMS4xNyA4IDEyIDhzMS41LjY3IDEuNSAxLjVTMTIuODMgMTEgMTIgMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTB2LTJINHYtNmgxOFY2YzAtMS4xMS0uODktMi0yLTJ6bTAgNEg0VjZoMTZ2MnptNCA5djJoLTN2M2gtMnYtM2gtM3YtMmgzdi0zaDJ2M2gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDUuNSA2IDQuNXYxYy43IDAgMS4zNy4xIDIgLjI5VjlsLTgtNi04IDZ2MTJoNy42OGMtLjMtLjYyLS41LTEuMjktLjYtMkg2di05bDYtNC41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTMgNS41aC0yLjVWMjFoLTF2LTIuNUgxNXYtMWgyLjVWMTVoMXYyLjVIMjF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOWgyVjZoM1Y0aC0zVjFoLTJ2M0g4djJoM3Yzem0tNCA5Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yem0xMCAwYy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnptLTguOS01aDcuNDVjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuODYtNy4wMUwxOS40MiA0bC0zLjg3IDdIOC41M0w0LjI3IDJIMXYyaDJsMy42IDcuNTktMS4zNSAyLjQ0QzQuNTIgMTUuMzcgNS40OCAxNyA3IDE3aDEydi0ySDdsMS4xLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRUYXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNS4xOCAxMC41OSAxNi42bC00LjI0LTQuMjQgMS40MS0xLjQxIDIuODMgMi44MyAxMC0xMEwyMiA1LjE4ek0xMiAyMGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOGMxLjU3IDAgMy4wNC40NiA0LjI4IDEuMjVsMS40NS0xLjQ1QTEwLjAyIDEwLjAyIDAgMCAwIDEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBjMS43MyAwIDMuMzYtLjQ0IDQuNzgtMS4yMmwtMS41LTEuNWMtMSAuNDYtMi4xMS43Mi0zLjI4Ljcyem03LTVoLTN2MmgzdjNoMnYtM2gzdi0yaC0zdi0zaC0ydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRUb0RyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTFjLjE3IDAgLjMzLjAxLjQ5LjAyTDE1IDNIOWw1LjY4IDkuODRBNS45ODYgNS45ODYgMCAwIDEgMTkgMTF6TTguMTUgNC41MiAyIDE1LjUgNSAyMWw2LjMzLTEwLjk3ek0xMy4yIDE1LjVIOS45TDYuNzMgMjFoNy44MUE1LjkzIDUuOTMgMCAwIDEgMTMgMTdjMC0uNTIuMDctMS4wMi4yLTEuNXpNMjAgMTZ2LTNoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRjaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDV2MmgtM3YzaC0yVjdoLTNWNWgzVjJoMnYzaDN6bS0zIDE0SDVWNWg2VjNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNmgtMnY2em0tNC02djRoMnYtNGgtMnptLTQgNGgyVjloLTJ2OHptLTIgMHYtNkg3djZoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkbWluUGFuZWxTZXR0aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxN1wiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuMTJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTcuNWMtLjczIDAtMi4xOS4zNi0yLjI0IDEuMDguNS43MSAxLjMyIDEuMTcgMi4yNCAxLjE3czEuNzQtLjQ2IDIuMjQtMS4xN2MtLjA1LS43Mi0xLjUxLTEuMDgtMi4yNC0xLjA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMS4wOVY2LjI3TDEwLjUgMyAzIDYuMjd2NC45MWMwIDQuNTQgMy4yIDguNzkgNy41IDkuODIuNTUtLjEzIDEuMDgtLjMyIDEuNi0uNTVBNS45NzMgNS45NzMgMCAwIDAgMTcgMjNjMy4zMSAwIDYtMi42OSA2LTYgMC0yLjk3LTIuMTYtNS40My01LTUuOTF6TTExIDE3YzAgLjU2LjA4IDEuMTEuMjMgMS42Mi0uMjQuMTEtLjQ4LjIyLS43My4zLTMuMTctMS01LjUtNC4yNC01LjUtNy43NHYtMy42bDUuNS0yLjQgNS41IDIuNHYzLjUxYy0yLjg0LjQ4LTUgMi45NC01IDUuOTF6bTYgNGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkc0NsaWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNzEgMTcuOTlBNS45OTMgNS45OTMgMCAwIDEgNiAxMmMwLTMuMzEgMi42OS02IDYtNiAzLjIyIDAgNS44NCAyLjUzIDUuOTkgNS43MWwtMi4xLS42M2EzLjk5OSAzLjk5OSAwIDEgMC00LjgxIDQuODFsLjYzIDIuMXpNMjIgMTJjMCAuMy0uMDEuNi0uMDQuOWwtMS45Ny0uNTljLjAxLS4xLjAxLS4yMS4wMS0uMzEgMC00LjQyLTMuNTgtOC04LThzLTggMy41OC04IDggMy41OCA4IDggOGMuMSAwIC4yMSAwIC4zMS0uMDFsLjU5IDEuOTdjLS4zLjAzLS42LjA0LS45LjA0LTUuNTIgMC0xMC00LjQ4LTEwLTEwUzYuNDggMiAxMiAyczEwIDQuNDggMTAgMTB6bS0zLjc3IDQuMjZMMjIgMTVsLTEwLTMgMyAxMCAxLjI2LTMuNzcgNC4yNyA0LjI3IDEuOTgtMS45OC00LjI4LTQuMjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGFybUFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzM3IDEuODEgNC42MDcgMy44NDUtMS4yOCAxLjUzNS00LjYxLTMuODQzem0tMTAuNjc0IDAgMS4yODIgMS41MzZMMy4zMzcgNy4xOWwtMS4yOC0xLjUzNnpNMTIgNGE5IDkgMCAxIDAgLjAwMSAxOC4wMDFBOSA5IDAgMCAwIDEyIDR6bTAgMTZjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTcgNyAzLjE0IDcgNy0zLjE0IDctNyA3em0xLTExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGFybU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDQgNi4yOUMxMC42NiA2LjExIDExLjMyIDYgMTIgNmMzLjg2IDAgNyAzLjE0IDcgNyAwIC42OC0uMTEgMS4zNC0uMjkgMS45NmwxLjU2IDEuNTZjLjQ3LTEuMDguNzMtMi4yNy43My0zLjUyQTkgOSAwIDAgMCA4LjQ3IDQuNzJsMS41NyAxLjU3em03LjI5Ny00LjQ4IDQuNjA3IDMuODQ1LTEuMjggMS41MzUtNC42MS0zLjg0M3pNMy4wMiAyLjEgMS42MSAzLjUxbDEuMzcgMS4zNy0uOTIuNzcgMS4yOCAxLjU0IDEuMDYtLjg4LjguOEE4Ljk2NCA4Ljk2NCAwIDAgMCAzIDEzYTkgOSAwIDAgMCA5IDljMi4yNSAwIDQuMzEtLjgzIDUuODktMi4ybDIuMSAyLjEgMS40MS0xLjQxTDMuMDIgMi4xek0xMiAyMGMtMy44NiAwLTctMy4xNC03LTcgMC0xLjcuNjEtMy4yNiAxLjYyLTQuNDdsOS44NSA5Ljg1QTYuOTU2IDYuOTU2IDAgMCAxIDEyIDIwek03LjQ4IDMuNzNsLjQ2LS4zOC0xLjI4LTEuNTQtLjYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsYXJtT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjU0IDE0LjUzIDguNDEgMTIuNGwtMS4wNiAxLjA2IDMuMTggMy4xOCA2LTYtMS4wNi0xLjA2em02Ljc5Ny0xMi43MiA0LjYwNyAzLjg0NS0xLjI4IDEuNTM1LTQuNjEtMy44NDN6bS0xMC42NzQgMCAxLjI4MiAxLjUzNkwzLjMzNyA3LjE5bC0xLjI4LTEuNTM2ek0xMiA0YTkgOSAwIDEgMCAuMDAxIDE4LjAwMUE5IDkgMCAwIDAgMTIgNHptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGFybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA4SDExdjZsNC43NSAyLjg1Ljc1LTEuMjMtNC0yLjM3em00LjgzNy02LjE5IDQuNjA3IDMuODQ1LTEuMjggMS41MzUtNC42MS0zLjg0M3ptLTEwLjY3NCAwIDEuMjgyIDEuNTM2TDMuMzM3IDcuMTlsLTEuMjgtMS41MzZ6TTEyIDRhOSA5IDAgMSAwIC4wMDEgMTguMDAxQTkgOSAwIDAgMCAxMiA0em0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsbEluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01IDEwaDMuMTNjLjIxLjc4LjY3IDEuNDcgMS4yNyAySDV2LTJ6bTE0IDJoLTQuNGMuNi0uNTMgMS4wNi0xLjIyIDEuMjctMkgxOXYyem0wLTRoLTV2MWMwIDEuMDctLjkzIDItMiAycy0yLS45My0yLTJWOEg1VjVoMTR2M3ptLTIgN2gtM3YxYzAgLjQ3LS4xOS45LS40OCAxLjI1LS4zNy40NS0uOTIuNzUtMS41Mi43NXMtMS4xNS0uMy0xLjUyLS43NWMtLjI5LS4zNS0uNDgtLjc4LS40OC0xLjI1di0xSDN2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi00aC00ek01IDE3aDMuMTNjLjAyLjA5LjA2LjE3LjA5LjI1LjI0LjY4LjY1IDEuMjggMS4xOCAxLjc1SDV2LTJ6bTE0IDJoLTQuNGMuNTQtLjQ3Ljk1LTEuMDcgMS4xOC0xLjc1LjAzLS4wOC4wNy0uMTYuMDktLjI1SDE5djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGxPdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNHY0bDQtNHptMTIgMCA0IDRWNHptNCAxNnYtNGwtNCA0ek00IDIwaDRsLTQtNHptMTUtOGMwLTMuODctMy4xMy03LTctN3MtNyAzLjEzLTcgNyAzLjEzIDcgNyA3IDctMy4xMyA3LTd6bS03IDVjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNS0yLjI0IDUtNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQW5hbHl0aWNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDEyaDJ2NUg3ek0xNSA3aDJ2MTBoLTJ6TTExIDE0aDJ2M2gtMnpNMTEgMTBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQW5jaG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTUgMS41NSAxLjU1Yy0uOTYgMS42OS0zLjMzIDMuMDQtNS41NSAzLjM3VjExaDNWOWgtM1Y3LjgyQzE0LjE2IDcuNCAxNSA2LjMgMTUgNWMwLTEuNjUtMS4zNS0zLTMtM1M5IDMuMzUgOSA1YzAgMS4zLjg0IDIuNCAyIDIuODJWOUg4djJoM3Y4LjkyYy0yLjIyLS4zMy00LjU5LTEuNjgtNS41NS0zLjM3TDcgMTVsLTQtM3YzYzAgMy44OCA0LjkyIDcgOSA3czktMy4xMiA5LTd2LTNsLTQgM3pNMTIgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuNiA5LjQ4IDEuODQtMy4xOGMuMTYtLjMxLjA0LS42OS0uMjYtLjg1YS42MzcuNjM3IDAgMCAwLS44My4yMmwtMS44OCAzLjI0YTExLjQ2MyAxMS40NjMgMCAwIDAtOC45NCAwTDUuNjUgNS42N2EuNjQzLjY0MyAwIDAgMC0uODctLjJjLS4yOC4xOC0uMzcuNTQtLjIyLjgzTDYuNCA5LjQ4QTEwLjc4IDEwLjc4IDAgMCAwIDEgMThoMjJhMTAuNzggMTAuNzggMCAwIDAtNS40LTguNTJ6TTcgMTUuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNXptMTAgMGExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQW5ub3VuY2VtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyek0xMSA1aDJ2NmgtMnptMCA4aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0IDEyLTIgMi0yLTIgMi0yIDIgMnptLTItNiAyLjEyIDIuMTIgMi41LTIuNUwxMiAxIDcuMzggNS42MmwyLjUgMi41TDEyIDZ6bS02IDYgMi4xMi0yLjEyLTIuNS0yLjVMMSAxMmw0LjYyIDQuNjIgMi41LTIuNUw2IDEyem0xMiAwLTIuMTIgMi4xMiAyLjUgMi41TDIzIDEybC00LjYyLTQuNjItMi41IDIuNUwxOCAxMnptLTYgNi0yLjEyLTIuMTItMi41IDIuNUwxMiAyM2w0LjYyLTQuNjItMi41LTIuNUwxMiAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwcEJsb2NraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bS0yLjUgNEEyLjUgMi41IDAgMCAxIDE4IDkuNWMuNDIgMCAuOC4xMSAxLjE1LjI5bC0zLjM2IDMuMzZjLS4xOC0uMzUtLjI5LS43My0uMjktMS4xNXptMi41IDIuNWMtLjQyIDAtLjgtLjExLTEuMTUtLjI5bDMuMzYtMy4zNmMuMTguMzUuMjkuNzMuMjkgMS4xNWEyLjUgMi41IDAgMCAxLTIuNSAyLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE4SDdWNmgxMHYxaDJWM2MwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0ydi00aC0ydjF6TTcgM2gxMHYxSDdWM3ptMTAgMThIN3YtMWgxMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBwU2hvcnRjdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxOEg3VjZoMTB2MWgyVjNjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNGgtMnYxek03IDNoMTB2MUg3VjN6bTEwIDE4SDd2LTFoMTB2MXpNMjAuMzggOS42MiAyMSAxMWwuNjItMS4zOEwyMyA5bC0xLjM4LS42MkwyMSA3bC0uNjIgMS4zOEwxOSA5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA4LTEuMjUgMi43NUwxMiAxMmwyLjc1IDEuMjVMMTYgMTZsMS4yNS0yLjc1TDIwIDEybC0yLjc1LTEuMjV6TTIxIDEzbC0uNjIgMS4zOEwxOSAxNWwxLjM4LjYyTDIxIDE3bC42Mi0xLjM4TDIzIDE1bC0xLjM4LS42MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93Q2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDgtOC0zLjU5LTgtOCAzLjU5LTggOC04bTAtMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxMFY4aC0ydjRIOGw0IDQgNC00aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMHMxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMiAyIDYuNDggMiAxMnptMTggMGMwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOCAzLjU4LTggOC04IDggMy41OCA4IDh6TTggMTJsNC00IDEuNDEgMS40MUwxMS44MyAxMUgxNnYyaC00LjE3bDEuNTkgMS41OUwxMiAxNmwtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMHpNNCAxMmMwLTQuNDIgMy41OC04IDgtOHM4IDMuNTggOCA4LTMuNTggOC04IDgtOC0zLjU4LTgtOHptMTIgMC00IDQtMS40MS0xLjQxTDEyLjE3IDEzSDh2LTJoNC4xN2wtMS41OS0xLjU5TDEyIDhsNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOG0wIDJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTB6bS0xLTEwdjRoMnYtNGgzbC00LTQtNCA0aDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd091dHdhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDZ2Mmg4LjU5TDUgMTcuNTkgNi40MSAxOSAxNiA5LjQxVjE4aDJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93UmlnaHRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjAxIDExSDR2MmgxMi4wMXYzTDIwIDEybC0zLjk5LTR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFydGljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxN0g3di0yaDd2MnptMy00SDd2LTJoMTB2MnptMC00SDdWN2gxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNwZWN0UmF0aW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEyaC0ydjNoLTN2Mmg1di01ek03IDloM1Y3SDV2NWgyVjl6bTE0LTZIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2Vzc21lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNNyAxMGgydjdIN3ptNC0zaDJ2MTBoLTJ6bTQgNmgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3NpZ25tZW50SW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03LS4yNWMuMjIgMCAuNDEuMS41NS4yNS4xMi4xMy4yLjMxLjIuNSAwIC40MS0uMzQuNzUtLjc1Ljc1cy0uNzUtLjM0LS43NS0uNzVjMC0uMTkuMDgtLjM3LjItLjUuMTQtLjE1LjMzLS4yNS41NS0uMjV6TTE5IDE5SDVWNWgxNHYxNHpNMTIgNmMtMS42NSAwLTMgMS4zNS0zIDNzMS4zNSAzIDMgMyAzLTEuMzUgMy0zLTEuMzUtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tNiA2LjQ3VjE4aDEydi0xLjUzYzAtMi41LTMuOTctMy41OC02LTMuNThzLTYgMS4wNy02IDMuNTh6TTguMzEgMTZjLjY5LS41NiAyLjM4LTEuMTIgMy42OS0xLjEyczMuMDEuNTYgMy42OSAxLjEySDguMzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3NpZ25tZW50TGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem04LTRoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLS4xNCAwLS4yNy4wMS0uNC4wNGEyLjAwOCAyLjAwOCAwIDAgMC0xLjQ0IDEuMTljLS4xLjIzLS4xNi40OS0uMTYuNzd2MTRjMCAuMjcuMDYuNTQuMTYuNzhzLjI1LjQ1LjQzLjY0Yy4yNy4yNy42Mi40NyAxLjAxLjU1LjEzLjAyLjI2LjAzLjQuMDNoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaWdubWVudFJldHVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRoNHYtNGgtNFY3bC01IDUgNSA1em03LTExaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMWMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0uMTQgMC0uMjcuMDEtLjQuMDRhMi4wMDggMi4wMDggMCAwIDAtMS40NCAxLjE5Yy0uMS4yMy0uMTYuNDktLjE2Ljc3djE0YzAgLjI3LjA2LjU0LjE2Ljc4cy4yNS40NS40My42NGMuMjcuMjcuNjIuNDcgMS4wMS41NS4xMy4wMi4yNi4wMy40LjAzaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS03LS4yNWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzUtLjc1LS4zNC0uNzUtLjc1LjM0LS43NS43NS0uNzV6TTE5IDE5SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lnbm1lbnRSZXR1cm5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJoLTNWOGgtNHY0SDdsNSA1em0yLTloLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLS4xNCAwLS4yNy4wMS0uNC4wNGEyLjAwOCAyLjAwOCAwIDAgMC0xLjQ0IDEuMTljLS4xLjIzLS4xNi40OS0uMTYuNzd2MTRjMCAuMjcuMDYuNTQuMTYuNzhzLjI1LjQ1LjQzLjY0Yy4yNy4yNy42Mi40NyAxLjAxLjU1LjEzLjAyLjI2LjAzLjQuMDNoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaWdubWVudFR1cm5lZEluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA5LTEuNDEtMS40MkwxMCAxNC4xN2wtMi41OS0yLjU4TDYgMTNsNCA0em0xLTZoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxYy0xLjMgMC0yLjQuODQtMi44MiAySDVjLS4xNCAwLS4yNy4wMS0uNC4wNGEyLjAwOCAyLjAwOCAwIDAgMC0xLjQ0IDEuMTljLS4xLjIzLS4xNi40OS0uMTYuNzd2MTRjMCAuMjcuMDYuNTQuMTYuNzhzLjI1LjQ1LjQzLjY0Yy4yNy4yNy42Mi40NyAxLjAxLjU1LjEzLjAyLjI2LjAzLjQuMDNoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaWdubWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNWg3djJIN3ptMC00aDEwdjJIN3ptMC00aDEwdjJIN3ptMTItNGgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtLjE0IDAtLjI3LjAxLS40LjA0YTIuMDA4IDIuMDA4IDAgMCAwLTEuNDQgMS4xOWMtLjEuMjMtLjE2LjQ5LS4xNi43N3YxNGMwIC4yNy4wNi41NC4xNi43OHMuMjUuNDUuNDMuNjRjLjI3LjI3LjYyLjQ3IDEuMDEuNTUuMTMuMDIuMjYuMDMuNC4wM2gxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxOUg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBc3N1cmVkV29ya2xvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEwaDJ2N0g1ek0xMSAxMGgydjdoLTJ6TTIyIDYgMTIgMSAyIDZ2MmgyMFY2ek02LjQ3IDYgMTIgMy4yNCAxNy41MyA2SDYuNDd6TTIgMTl2MmgxMi40Yy0uMjEtLjY0LS4zMi0xLjMxLS4zNi0ySDJ6TTE5IDEyLjI2VjEwaC0ydjMuMjZ6TTIwIDE0bC00IDJ2Mi41NWMwIDIuNTIgMS43MSA0Ljg4IDQgNS40NSAyLjI5LS41NyA0LTIuOTMgNC01LjQ1VjE2bC00LTJ6bS0uNzIgNy0yLjAzLTIuMDMgMS4wNi0xLjA2Ljk3Ljk3IDIuNDEtMi4zOCAxLjA2IDEuMDZMMTkuMjggMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvcmVuZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOEE1Ljg3IDUuODcgMCAwIDEgNiAxMmMwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhY2t1cFRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNnYxNEg2djJoMTRjMS4xIDAgMi0uOSAyLTJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgMTZINHYtNWg1djV6bTcgMGgtNXYtNWg1djV6bTAtN0g0VjRoMTJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhY2t1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ2OSA1LjQ2OSAwIDAgMSAxMiA2YzIuNjIgMCA0Ljg4IDEuODYgNS4zOSA0LjQzbC4zIDEuNSAxLjUzLjExQTIuOTggMi45OCAwIDAgMSAyMiAxNWMwIDEuNjUtMS4zNSAzLTMgM3pNOCAxM2gyLjU1djNoMi45di0zSDE2bC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWxhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNy44M2MuODUtLjMgMS41My0uOTggMS44My0xLjgzSDE4bC0zIDdjMCAxLjY2IDEuNTcgMyAzLjUgM3MzLjUtMS4zNCAzLjUtM2wtMy03aDJWNGgtNi4xN2MtLjQxLTEuMTctMS41Mi0yLTIuODMtMnMtMi40Mi44My0yLjgzIDJIM3YyaDJsLTMgN2MwIDEuNjYgMS41NyAzIDMuNSAzUzkgMTQuNjYgOSAxM0w2IDZoMy4xN2MuMy44NS45OCAxLjUzIDEuODMgMS44M1YxOUgydjJoMjB2LTJoLTlWNy44M3pNMjAuMzcgMTNoLTMuNzRsMS44Ny00LjM2TDIwLjM3IDEzem0tMTMgMEgzLjYzTDUuNSA4LjY0IDcuMzcgMTN6TTEyIDZjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdGNoUHJlZGljdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDhIN2MtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnptLTQgMTIuNWgtMlYxOWgydjEuNXptMC0yLjVoLTJjMC0xLjUtMi41LTMtMi41LTUgMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNWMwIDItMi41IDMuNS0yLjUgNXptNS0xMS41SDZDNiA1LjY3IDYuNjcgNSA3LjUgNWg5Yy44MyAwIDEuNS42NyAxLjUgMS41em0tMS0zSDdDNyAyLjY3IDcuNjcgMiA4LjUgMmg3Yy44MyAwIDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9va09ubGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDRIN1YzaDEwdjF6bTAgMTdIN3YtMWgxMHYxem0wLTIwSDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNyA2aDEwdjEySDdWNnptOSA1VjkuMTRDMTYgOC41MSAxNS41NSA4IDE1IDhIOWMtLjU1IDAtMSAuNTEtMSAxLjE0djEuOTZjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDF2MS43NmMwIC42My40NSAxLjE0IDEgMS4xNGg2Yy41NSAwIDEtLjUxIDEtMS4xNFYxM2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMXptLTMuNSAzLjVoLTF2LTFoMXYxem0wLTJoLTF2LTFoMXYxem0wLTJoLTF2LTFoMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgNGgydjVsLTEtLjc1TDkgOVY0em05IDE2SDZWNGgxdjlsMy0yLjI1TDEzIDEzVjRoNXYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvb2ttYXJrQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTF2Ni45N2wtNS0yLjE0LTUgMi4xNFY1aDZWM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjExaC0yem00LTRoLTJ2MmgtMlY3aC0yVjVoMlYzaDJ2MmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rbWFya0FkZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTF2Ni45N2wtNS0yLjE0LTUgMi4xNFY1aDZWM0g3Yy0xLjEgMC0yIC45LTIgMnYxNmw3LTMgNyAzVjExaC0yem0uODMtMkwxNSA2LjE3bDEuNDEtMS40MSAxLjQxIDEuNDEgMy41NC0zLjU0IDEuNDEgMS40MUwxNy44MyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9va21hcmtCb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMiAuOS0yIDJ2MTZsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yem0wIDE1LTUtMi4xOEw3IDE4VjVoMTB2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb29rbWFya1JlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExdjYuOTdsLTUtMi4xNC01IDIuMTRWNWg2VjNIN2MtMS4xIDAtMiAuOS0yIDJ2MTZsNy0zIDcgM1YxMWgtMnptNC00aC02VjVoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9va21hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMiAuOS0yIDJ2MTZsNy0zIDcgM1Y1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9va21hcmtzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3djEyLjk3bC00LjIxLTEuODEtLjc5LS4zNC0uNzkuMzRMNSAxOS45N1Y3aDEwbTQtNkg4Ljk5QzcuODkgMSA3IDEuOSA3IDNoMTBjMS4xIDAgMiAuOSAyIDJ2MTNsMiAxVjNjMC0xLjEtLjktMi0yLTJ6bS00IDRINWMtMS4xIDAtMiAuOS0yIDJ2MTZsNy0zIDcgM1Y3YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJvd3NlR2FsbGVyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgM2E5IDkgMCAxIDAgLjAwMSAxOC4wMDFBOSA5IDAgMCAwIDkgM3ptMCAxNmMtMy44NiAwLTctMy4xNC03LTdzMy4xNC03IDctNyA3IDMuMTQgNyA3LTMuMTQgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDdIOHY1LjQxbDMuNzkgMy44IDEuNDItMS40Mi0zLjIxLTMuMnpNMTcuOTkgMy41MnYyLjE2QTYuOTkgNi45OSAwIDAgMSAyMiAxMmMwIDIuNzktMS42NCA1LjItNC4wMSA2LjMydjIuMTZDMjEuNDggMTkuMjQgMjQgMTUuOTEgMjQgMTJzLTIuNTItNy4yNC02LjAxLTguNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdWdSZXBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhoLTIuODFhNS45ODUgNS45ODUgMCAwIDAtMS44Mi0xLjk2TDE3IDQuNDEgMTUuNTkgM2wtMi4xNyAyLjE3QzEyLjk2IDUuMDYgMTIuNDkgNSAxMiA1cy0uOTYuMDYtMS40MS4xN0w4LjQxIDMgNyA0LjQxbDEuNjIgMS42M0M3Ljg4IDYuNTUgNy4yNiA3LjIyIDYuODEgOEg0djJoMi4wOWMtLjA1LjMzLS4wOS42Ni0uMDkgMXYxSDR2MmgydjFjMCAuMzQuMDQuNjcuMDkgMUg0djJoMi44MWMxLjA0IDEuNzkgMi45NyAzIDUuMTkgM3M0LjE1LTEuMjEgNS4xOS0zSDIwdi0yaC0yLjA5Yy4wNS0uMzMuMDktLjY2LjA5LTF2LTFoMnYtMmgtMnYtMWMwLS4zNC0uMDQtLjY3LS4wOS0xSDIwVjh6bS00IDR2M2MwIC4yMi0uMDMuNDctLjA3LjdsLS4xLjY1LS4zNy42NWMtLjcyIDEuMjQtMi4wNCAyLTMuNDYgMnMtMi43NC0uNzctMy40Ni0ybC0uMzctLjY0LS4xLS42NUE0LjI3IDQuMjcgMCAwIDEgOCAxNXYtNGMwLS4yMy4wMy0uNDguMDctLjdsLjEtLjY1LjM3LS42NWMuMy0uNTIuNzItLjk3IDEuMjEtMS4zMWwuNTctLjM5Ljc0LS4xOGEzLjc4NyAzLjc4NyAwIDAgMSAxLjg5IDBsLjY4LjE2LjYxLjQyYy41LjM0LjkxLjc4IDEuMjEgMS4zMWwuMzguNjUuMS42NWMuMDQuMjIuMDcuNDcuMDcuNjl2MXptLTYgMmg0djJoLTR6bTAtNGg0djJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdWlsZENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjQ5IDExLjM4Yy40My0xLjIyLjE3LTIuNjQtLjgxLTMuNjJhMy40NjggMy40NjggMCAwIDAtNC4xLS41OWwyLjM1IDIuMzUtMS40MSAxLjQxLTIuMzUtMi4zNWMtLjcxIDEuMzItLjUyIDIuOTkuNTkgNC4xLjk4Ljk4IDIuNCAxLjI0IDMuNjIuODFsMy40MSAzLjQxYy4yLjIuNTEuMi43MSAwbDEuNC0xLjRjLjItLjIuMi0uNTEgMC0uNzFsLTMuNDEtMy40MXpcIn0sXCJjaGlsZFwiOltdfV19XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnVpbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjYxIDE4Ljk5LTkuMDgtOS4wOGMuOTMtMi4zNC40NS01LjEtMS40NC03QzkuNzkuNjEgNi4yMS40IDMuNjYgMi4yNkw3LjUgNi4xMSA2LjA4IDcuNTIgMi4yNSAzLjY5Qy4zOSA2LjIzLjYgOS44MiAyLjkgMTIuMTFjMS44NiAxLjg2IDQuNTcgMi4zNSA2Ljg5IDEuNDhsOS4xMSA5LjExYy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwyLjMtMi4zYy40LS4zOC40LTEuMDEgMC0xLjQxem0tMyAxLjYtOS40Ni05LjQ2Yy0uNjEuNDUtMS4yOS43Mi0yIC44Mi0xLjM2LjItMi43OS0uMjEtMy44My0xLjI1QzMuMzcgOS43NiAyLjkzIDguNSAzIDcuMjZsMy4wOSAzLjA5IDQuMjQtNC4yNC0zLjA5LTMuMDljMS4yNC0uMDcgMi40OS4zNyAzLjQ0IDEuMzFhNC40NjkgNC40NjkgMCAwIDEgMS4yNCAzLjk2IDQuMzUgNC4zNSAwIDAgMS0uODggMS45Nmw5LjQ1IDkuNDUtLjg4Ljg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FjaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSA4LTQgNGgzYzAgMy4zMS0yLjY5IDYtNiA2YTUuODcgNS44NyAwIDAgMS0yLjgtLjdsLTEuNDYgMS40NkE3LjkzIDcuOTMgMCAwIDAgMTIgMjBjNC40MiAwIDgtMy41OCA4LThoM2wtNC00ek02IDEyYzAtMy4zMSAyLjY5LTYgNi02IDEuMDEgMCAxLjk3LjI1IDIuOC43bDEuNDYtMS40NkE3LjkzIDcuOTMgMCAwIDAgMTIgNGMtNC40MiAwLTggMy41OC04IDhIMWw0IDQgNC00SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxlbmRhck1vbnRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDIwYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjEwaDE0djEwem0wLTEySDVWNmgxNHYyek05IDE0SDd2LTJoMnYyem00IDBoLTJ2LTJoMnYyem00IDBoLTJ2LTJoMnYyem0tOCA0SDd2LTJoMnYyem00IDBoLTJ2LTJoMnYyem00IDBoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsZW5kYXJUb2RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM2gtMVYxaC0ydjJIN1YxSDV2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMThINFYxMGgxNnYxMXptMC0xM0g0VjVoMTZ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGVuZGFyVmlld0RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxN2gxOHYySDN6bTE2LTV2MUg1di0xaDE0bTItMkgzdjVoMTh2LTV6TTMgNmgxOHYySDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxlbmRhclZpZXdNb250aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTggMTFINFY2aDR2NXptNiAwaC00VjZoNHY1em02IDBoLTRWNmg0djV6TTggMThINHYtNWg0djV6bTYgMGgtNHYtNWg0djV6bTYgMGgtNHYtNWg0djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxlbmRhclZpZXdXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptLTcgMmgyLjV2MTJIMTNWNnptLTIgMTJIOC41VjZIMTF2MTJ6TTQgNmgyLjV2MTJINFY2em0xNiAxMmgtMi41VjZIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmFFbmhhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxMC0uOTQgMi4wNkw5IDEzbDIuMDYuOTRMMTIgMTZsLjk0LTIuMDZMMTUgMTNsLTIuMDYtLjk0em04LTVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY3aDQuMDVsLjU5LS42NUw5Ljg4IDVoNC4yNGwxLjI0IDEuMzUuNTkuNjVIMjB2MTJ6TTEyIDhjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDhjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTMgMyAxLjM1IDMgMy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FuY2VsU2NoZWR1bGVTZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSA5Yy0uNDIgMC0uODMuMDQtMS4yNC4xMUwxLjAxIDMgMSAxMGwxMC4wNiAxLjM0Yy0uNDIuNDQtLjc4LjkzLTEuMDkgMS40NkwxIDE0bC4wMSA3IDguMDctMy40NkM5LjU5IDIxLjE5IDEyLjcxIDI0IDE2LjUgMjRjNC4xNCAwIDcuNS0zLjM2IDcuNS03LjVTMjAuNjQgOSAxNi41IDl6TTMgOC4yNWwuMDEtMi4yMiA3LjUxIDMuMjItNy41Mi0xem02LjEgNy4xMUwzIDE3Ljk3di0yLjIybDYuMTctLjgyYy0uMDMuMTQtLjA1LjI4LS4wNy40M3pNMTYuNSAyMmMtMy4wMyAwLTUuNS0yLjQ3LTUuNS01LjVzMi40Ny01LjUgNS41LTUuNSA1LjUgMi40NyA1LjUgNS41LTIuNDcgNS41LTUuNSA1LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjI3IDE0LjAzLTEuNzcgMS43Ni0xLjc3LTEuNzYtLjcuNyAxLjc2IDEuNzctMS43NiAxLjc3LjcuNyAxLjc3LTEuNzYgMS43NyAxLjc2LjctLjctMS43Ni0xLjc3IDEuNzYtMS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhcmRHaWZ0Y2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtMi4xOGMuMTEtLjMxLjE4LS42NS4xOC0xYTIuOTk2IDIuOTk2IDAgMCAwLTUuNS0xLjY1bC0uNS42Ny0uNS0uNjhDMTAuOTYgMi41NCAxMC4wNSAyIDkgMiA3LjM0IDIgNiAzLjM0IDYgNWMwIC4zNS4wNy42OS4xOCAxSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE5YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjhjMC0xLjExLS44OS0yLTItMnptLTUtMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek05IDRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDUuMDhMNyAxMC44MyA4LjYyIDEyIDEyIDcuNGwzLjM4IDQuNkwxNyAxMC44MyAxNC45MiA4SDIwdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXJkTWVtYmVyc2hpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjExIDAtMiAuODktMiAydjExYzAgMS4xMS44OSAyIDIgMmg0djVsNC0yIDQgMnYtNWg0YzEuMTEgMCAyLS44OSAyLTJWNGMwLTEuMTEtLjg5LTItMi0yem0wIDEzSDR2LTJoMTZ2MnptMC01SDRWNGgxNnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FyZFRyYXZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtM1Y0YzAtMS4xMS0uODktMi0yLTJIOWMtMS4xMSAwLTIgLjg5LTIgMnYySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTFjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yek05IDRoNnYySDlWNHptMTEgMTVINHYtMmgxNnYyem0wLTVINFY4aDN2MmgyVjhoNnYyaDJWOGgzdjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGFuZ2VIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3Ljc3IDE4LjM5IDE4SDUuNjFMMTIgNy43N00xMiA0IDIgMjBoMjBMMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrQ2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTQuNTktMTIuNDJMMTAgMTQuMTdsLTIuNTktMi41OEw2IDEzbDQgNCA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTQuNTktMTIuNDJMMTAgMTQuMTdsLTIuNTktMi41OEw2IDEzbDQgNCA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaHJvbWVSZWFkZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNMyAxOVY2aDh2MTNIM3ptMTggMGgtOFY2aDh2MTN6bS03LTkuNWg2VjExaC02em0wIDIuNWg2djEuNWgtNnptMCAyLjVoNlYxNmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNpcmNsZU5vdGlmaWNhdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4LjVjLjgzIDAgMS41LS42NyAxLjUtMS41aC0zYzAgLjgzLjY3IDEuNSAxLjUgMS41ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptNC04LjYxYzAtMi4xMS0xLjAzLTMuOTItMy00LjM5di0uNWMwLS41Ny0uNDMtMS0xLTFzLTEgLjQzLTEgMVY3Yy0xLjk3LjQ3LTMgMi4yNy0zIDQuMzlWMTRIN3YyaDEwdi0yaC0xdi0yLjYxek0xNCAxNGgtNHYtM2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgNGgydjVsLTEtLjc1TDkgOVY0em05IDE2SDZWNGgxdjlsMy0yLjI1TDEzIDEzVjRoNXYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3NlRnVsbHNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDMuNDEgMTYuNzEgOC43IDIwIDEyaC04VjRsMy4yOSAzLjI5TDIwLjU5IDIgMjIgMy40MXpNMy40MSAyMmw1LjI5LTUuMjlMMTIgMjB2LThINGwzLjI5IDMuMjlMMiAyMC41OSAzLjQxIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29kZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjE3IDEyLTQuNTgtNC41OUwxNiA2bDYgNi0zLjU5IDMuNTlMMTcgMTQuMTcgMTkuMTcgMTJ6TTEuMzkgNC4yMmw0LjE5IDQuMTlMMiAxMmw2IDYgMS40MS0xLjQxTDQuODMgMTIgNyA5LjgzbDEyLjc4IDEyLjc4IDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS40IDE2LjYgNC44IDEybDQuNi00LjZMOCA2bC02IDYgNiA2IDEuNC0xLjR6bTUuMiAwIDQuNi00LjYtNC42LTQuNkwxNiA2bDYgNi02IDYtMS40LTEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbW1lbnRCYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTRWNmgtNXY4bDIuNS0xLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINmwtMiAyVjRoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21taXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi45IDExYTUgNSAwIDAgMC05LjggMEgydjJoNS4xYTUgNSAwIDAgMCA5LjggMEgyMnYtMmgtNS4xek0xMiAxNWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21tdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0SDVDMy4zNCA0IDIgNS4zNCAyIDd2OGMwIDEuNjYgMS4zNCAzIDMgM2wtMSAxdjFoMWwyLTJoMnYtNUg0VjZoOXYyaDJWN2MwLTEuNjYtMS4zNC0zLTMtM3pNNSAxNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xNS41Ny00LjM0Yy0uMTQtLjQtLjUyLS42Ni0uOTctLjY2aC03LjE5Yy0uNDYgMC0uODMuMjYtLjk4LjY2bC0xLjQyIDQuMTF2NS41MWMwIC4zOC4zMS43Mi42OS43MmguNjJjLjM4IDAgLjY4LS4zOC42OC0uNzZWMThoOHYxLjI0YzAgLjM4LjMxLjc2LjY5Ljc2aC42MWMuMzggMCAuNjktLjM0LjY5LS43MmwuMDEtMS4zN3YtNC4xNGwtMS40My00LjExem0tOC4xNi4zNGg3LjE5bDEuMDMgM2gtOS4yNWwxLjAzLTN6TTEyIDE2Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTggMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tcGFyZUFycm93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wMSAxNEgydjJoNy4wMXYzTDEzIDE1bC0zLjk5LTR2M3ptNS45OC0xdi0zSDIyVjhoLTcuMDFWNUwxMSA5bDMuOTkgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbXByZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDl2MmgxNlY5SDR6bTEyLTUtMS40MS0xLjQxTDEzIDQuMTdWMWgtMnYzLjE5TDkuMzkgMi42MSA4IDRsNCA0IDQtNHpNNCAxNGgxNnYtMkg0djJ6bTQgNSAxLjM5IDEuMzlMMTEgMTguODFWMjJoMnYtMy4xN2wxLjU5IDEuNTlMMTYgMTlsLTQtNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250YWN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjE3IDQgMTggOC44M1YyMEg2VjRoNy4xN00xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0tMiAxMmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgOCAxNy40M1YxOGg4di0uNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250YWN0U3VwcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjMuNTl2LTMuNmMtNS4wMS0uMjYtOS00LjQyLTktOS40OUMyIDUuMjYgNi4yNiAxIDExLjUgMVMyMSA1LjI2IDIxIDEwLjVjMCA0Ljk1LTMuNDQgOS45My04LjU3IDEyLjRsLTEuNDMuNjl6TTExLjUgM0M3LjM2IDMgNCA2LjM2IDQgMTAuNVM3LjM2IDE4IDExLjUgMThIMTN2Mi4zYzMuNjQtMi4zIDYtNi4wOCA2LTkuOEMxOSA2LjM2IDE1LjY0IDMgMTEuNSAzem0tMSAxMS41aDJ2MmgtMnptMi0xLjVoLTJjMC0zLjI1IDMtMyAzLTUgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyaC0yYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAyLjUtMyAyLjc1LTMgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRhY3RsZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMSAxMC4xOGE0LjM4NCA0LjM4NCAwIDAgMSAwIDMuNjZsMS4zNy42MmMuMzctLjgxLjU1LTEuNjUuNTQtMi41LS4wMS0uODQtLjE5LTEuNjUtLjU0LTIuNGwtMS4zNy42MnpNMTMuMzMgNy4zM2MuNzggMS41NyAxLjE4IDMuMTQgMS4xOCA0LjY0IDAgMS41MS0uNCAzLjA5LTEuMTggNC42OWwxLjM1LjY2Yy44OC0xLjgxIDEuMzMtMy42MSAxLjMzLTUuMzUgMC0xLjc0LS40NS0zLjUzLTEuMzMtNS4zMWwtMS4zNS42N3pNMTAuMiA4LjcyYy41MyAxLjA3LjggMi4yMS44IDMuNCAwIDEuMTctLjI2IDIuMjMtLjc4IDMuMTVsMS4zLjc0Yy42NS0xLjE1Ljk4LTIuNDUuOTgtMy44OSAwLTEuNDItLjMyLTIuNzktLjk2LTQuMDdsLTEuMzQuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA4IDEwLjg2Yy4wNS0uMzMuMTYtLjYyLjMtLjg3cy4zNC0uNDYuNTktLjYyYy4yNC0uMTUuNTQtLjIyLjkxLS4yMy4yMy4wMS40NC4wNS42My4xMy4yLjA5LjM4LjIxLjUyLjM2cy4yNS4zMy4zNC41My4xMy40Mi4xNC42NGgxLjc5Yy0uMDItLjQ3LS4xMS0uOS0uMjgtMS4yOXMtLjQtLjczLS43LTEuMDEtLjY2LS41LTEuMDgtLjY2LS44OC0uMjMtMS4zOS0uMjNjLS42NSAwLTEuMjIuMTEtMS43LjM0cy0uODguNTMtMS4yLjkyLS41Ni44NC0uNzEgMS4zNlM4IDExLjI5IDggMTEuODd2LjI3YzAgLjU4LjA4IDEuMTIuMjMgMS42NHMuMzkuOTcuNzEgMS4zNS43Mi42OSAxLjIuOTFjLjQ4LjIyIDEuMDUuMzQgMS43LjM0LjQ3IDAgLjkxLS4wOCAxLjMyLS4yM3MuNzctLjM2IDEuMDgtLjYzLjU2LS41OC43NC0uOTQuMjktLjc0LjMtMS4xNWgtMS43OWMtLjAxLjIxLS4wNi40LS4xNS41OHMtLjIxLjMzLS4zNi40Ni0uMzIuMjMtLjUyLjNjLS4xOS4wNy0uMzkuMDktLjYuMS0uMzYtLjAxLS42Ni0uMDgtLjg5LS4yMy0uMjUtLjE2LS40NS0uMzctLjU5LS42MnMtLjI1LS41NS0uMy0uODgtLjA4LS42Ny0uMDgtMXYtLjI3YzAtLjM1LjAzLS42OC4wOC0xLjAxek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyZWRpdENhcmRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgzIDRIMjBjMS4xMSAwIDIgLjg5IDIgMnYxMmMwIC4zNC0uMDguNjYtLjIzLjk0TDIwIDE3LjE3VjEyaC01LjE3bC00LTRIMjBWNkg4LjgzbC0yLTJ6bTEzLjY2IDE5LjMxTDE3LjE3IDIwSDRjLTEuMTEgMC0yLS44OS0yLTJsLjAxLTEyYzAtLjM0LjA4LS42Ni4yMy0uOTNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek00IDYuODNWOGgxLjE3TDQgNi44M3pNMTUuMTcgMThsLTYtNkg0djZoMTEuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0di02aDE2djZ6bTAtMTBINFY2aDE2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTR2LTFIMTF2LjVoMnYtMWgtMi41Yy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MUgxM3YtLjVoLTJ2MWgyLjVjLjU1IDAgMSAuNDUgMSAxVjE0YzAgLjU1LS40NSAxLTEgMWgtM2MtLjU1IDAtMS0uNDUtMS0xem03LjUgMWgzYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMWgtMi41di0xaDJ2LjVIMjF2LTFjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2MS41YzAgLjU1LjQ1IDEgMSAxaDIuNXYxaC0yVjEzSDE2djFjMCAuNTUuNDUgMSAxIDF6bS05LTVjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDNjLjU1IDAgMS0uNDUgMS0xdi0xSDYuNXYuNWgtMnYtM2gydi41SDh2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeUV4Y2hhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuODkgMTEuMWMtMS43OC0uNTktMi42NC0uOTYtMi42NC0xLjkgMC0xLjAyIDEuMTEtMS4zOSAxLjgxLTEuMzkgMS4zMSAwIDEuNzkuOTkgMS45IDEuMzRsMS41OC0uNjdjLS4xNS0uNDUtLjgyLTEuOTItMi41NC0yLjI0VjVoLTJ2MS4yNmMtMi40OC41Ni0yLjQ5IDIuODYtMi40OSAyLjk2IDAgMi4yNyAyLjI1IDIuOTEgMy4zNSAzLjMxIDEuNTguNTYgMi4yOCAxLjA3IDIuMjggMi4wMyAwIDEuMTMtMS4wNSAxLjYxLTEuOTggMS42MS0xLjgyIDAtMi4zNC0xLjg3LTIuNC0yLjA5bC0xLjY2LjY3Yy42MyAyLjE5IDIuMjggMi43OCAyLjkgMi45NlYxOWgydi0xLjI0Yy40LS4wOSAyLjktLjU5IDIuOS0zLjIyIDAtMS4zOS0uNjEtMi42MS0zLjAxLTMuNDR6TTMgMjFIMXYtNmg2djJINC41MmMxLjYxIDIuNDEgNC4zNiA0IDcuNDggNGE5IDkgMCAwIDAgOS05aDJjMCA2LjA4LTQuOTIgMTEtMTEgMTEtMy43MiAwLTcuMDEtMS44NS05LTQuNjdWMjF6bS0yLTlDMSA1LjkyIDUuOTIgMSAxMiAxYzMuNzIgMCA3LjAxIDEuODUgOSA0LjY3VjNoMnY2aC02VjdoMi40OEMxNy44NyA0LjU5IDE1LjEyIDMgMTIgM2E5IDkgMCAwIDAtOSA5SDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYW5nZXJvdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xOSAxNC45IDE0LjkgMTlIOS4xTDUgMTQuOVY5LjFMOS4xIDVoNS44TDE5IDkuMXY1Ljh6bS00LjE3LTcuMTRMMTIgMTAuNTkgOS4xNyA3Ljc2IDcuNzYgOS4xNyAxMC41OSAxMmwtMi44MyAyLjgzIDEuNDEgMS40MUwxMiAxMy40MWwyLjgzIDIuODMgMS40MS0xLjQxTDEzLjQxIDEybDIuODMtMi44My0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXNoYm9hcmRDdXN0b21pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTFoOFYzSDN2OHptMi02aDR2NEg1VjV6TTEzIDN2OGg4VjNoLTh6bTYgNmgtNFY1aDR2NHpNMyAyMWg4di04SDN2OHptMi02aDR2NEg1di00ek0xOCAxM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhc2hib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYyaC00VjVoNE05IDV2Nkg1VjVoNG0xMCA4djZoLTR2LTZoNE05IDE3djJINXYtMmg0TTIxIDNoLTh2Nmg4VjN6TTExIDNIM3YxMGg4VjN6bTEwIDhoLTh2MTBoOFYxMXptLTEwIDRIM3Y2aDh2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhRXhwbG9yYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC01LjUyLTQuNDgtMTAtMTAtMTB6bTAgMThjLTIuODkgMC01LjQzLTEuNTQtNi44My0zLjg0bDIuOTUtMi45NUwxMS40MSAxNiAxNiAxMS40MlYxM2gyVjhoLTV2MmgxLjU4bC0zLjI4IDMuMjhMOCAxMC41bC0zLjY5IDMuN0M0LjExIDEzLjUgNCAxMi43NiA0IDEyYzAtNC40MSAzLjU5LTggOC04czggMy41OSA4IDgtMy41OSA4LTggOHptNy41LjVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURhdGFUaHJlc2hvbGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtMS43M0wxOSAxNy4yN1YxOXptMC0zaC0uODVsLTMgM2gtMS42MmwzLTNoLTIuMTJsLTMgM0g5LjhsMy0zaC0yLjEybC0zIDNINS44NGwzLTNINi43Mkw1IDE3LjcyVjVoMTR2MTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjY3IDExIDIgMiA1LjA4LTUuMDktMS40MS0xLjQxLTMuNjcgMy42Ny0yLTItNC40MiA0LjQyTDcuNjYgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRlUmFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTFoMnYySDd2LTJ6bTE0LTV2MTRjMCAxLjEtLjkgMi0yIDJINWEyIDIgMCAwIDEtMi0ybC4wMS0xNGMwLTEuMS44OC0yIDEuOTktMmgxVjJoMnYyaDhWMmgydjJoMWMxLjEgMCAyIC45IDIgMnpNNSA4aDE0VjZINXYyem0xNCAxMlYxMEg1djEwaDE0em0tNC03aDJ2LTJoLTJ2MnptLTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZWxldGVGb3JldmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4xMiAxMC40NyAxMiAxMi41OWwtMi4xMy0yLjEyLTEuNDEgMS40MUwxMC41OSAxNGwtMi4xMiAyLjEyIDEuNDEgMS40MUwxMiAxNS40MWwyLjEyIDIuMTIgMS40MS0xLjQxTDEzLjQxIDE0bDIuMTItMi4xMnpNMTUuNSA0bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek04IDloOHYxMEg4Vjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZWxldGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6TTggOWg4djEwSDhWOXptNy41LTUtMS0xaC01bC0xIDFINXYyaDE0VjRoLTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbGV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOXYxMEg4VjloOG0tMS41LTZoLTVsLTEgMUg1djJoMTRWNGgtMy41bC0xLTF6TTE4IDdINnYxMmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbnNpdHlMYXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2gxOHYySDN6TTMgMTloMTh2MkgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVuc2l0eU1lZGl1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgM2gxOHYySDN6TTMgMTloMTh2Mkgzek0zIDExaDE4djJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbnNpdHlTbWFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMmgxOHYySDN6TTMgMjBoMTh2Mkgzek0zIDE0aDE4djJIM3pNMyA4aDE4djJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE2aDh2Mkg4em0wLTRoOHYySDh6bTYtMTBINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3djVoNXYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpc2FibGVkQnlEZWZhdWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDE0djE0ek0zIDN2MThoMThWM0gzem0xNCAxMi41OUwxNS41OSAxNyAxMiAxMy40MSA4LjQxIDE3IDcgMTUuNTkgMTAuNTkgMTIgNyA4LjQxIDguNDEgNyAxMiAxMC41OSAxNS41OSA3IDE3IDguNDEgMTMuNDEgMTIgMTcgMTUuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXNhYmxlZFZpc2libGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNWMxLjk1IDAgMy43Ni45OCA0Ljc1IDIuNS0uOTkgMS41Mi0yLjggMi41LTQuNzUgMi41cy0zLjc2LS45OC00Ljc1LTIuNWMuOTktMS41MiAyLjgtMi41IDQuNzUtMi41em0wLTJjLTMuMTggMC01LjkgMS44Ny03IDQuNSAxLjEgMi42MyAzLjgyIDQuNSA3IDQuNXM1LjktMS44NyA3LTQuNWMtMS4xLTIuNjMtMy44Mi00LjUtNy00LjV6bTAgNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE2LjE3IDE2IDE3IDE2czEuNS42NyAxLjUgMS41UzE3LjgzIDE5IDE3IDE5em00Ljk5LTYuNjZjLjAxLS4xMS4wMS0uMjMuMDEtLjM0IDAtNS41Mi00LjQ4LTEwLTEwLTEwUzIgNi40OCAyIDEyYzAgNS4xNyAzLjkzIDkuNDMgOC45NiA5Ljk1YTkuMzQzIDkuMzQzIDAgMCAxLTIuMzItMi42OEE4LjAxIDguMDEgMCAwIDEgNCAxMmMwLTEuODUuNjMtMy41NSAxLjY5LTQuOWw1LjY2IDUuNjZjLjU2LS40IDEuMTctLjczIDEuODItMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuMjQgMCA3LjcgMy4yOSA3Ljk4IDcuNDUuNzEuMjIgMS4zOS41MiAyLjAxLjg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlzcGxheVNldHRpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTRINFY1aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDguMjVoOHYxLjVINnpNMTYuNSA5Ljc1SDE4di0xLjVoLTEuNVY3SDE1djRoMS41ek0xMCAxMi4yNWg4djEuNWgtOHpNNy41IDE1SDl2LTRINy41djEuMjVINnYxLjVoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNXY0SDV2LTRoMTRtMS0ySDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMXYtNmMwLS41NS0uNDUtMS0xLTF6TTcgMTguNWMtLjgyIDAtMS41LS42Ny0xLjUtMS41cy42OC0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6TTE5IDV2NEg1VjVoMTRtMS0ySDRjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDE2Yy41NSAwIDEtLjQ1IDEtMVY0YzAtLjU1LS40NS0xLTEtMXpNNyA4LjVjLS44MiAwLTEuNS0uNjctMS41LTEuNVM2LjE4IDUuNSA3IDUuNXMxLjUuNjggMS41IDEuNVM3LjgzIDguNSA3IDguNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbmVBbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDctMS40MS0xLjQxLTYuMzQgNi4zNCAxLjQxIDEuNDFMMTggN3ptNC4yNC0xLjQxTDExLjY2IDE2LjE3IDcuNDggMTJsLTEuNDEgMS40MUwxMS42NiAxOWwxMi0xMi0xLjQyLTEuNDF6TS40MSAxMy40MSA2IDE5bDEuNDEtMS40MUwxLjgzIDEyIC40MSAxMy40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbmVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyA0LjkzIDEuNCAxLjRMOC40MyAxOS4wN2wtNS42LTUuNiAxLjQtMS40IDQuMiA0LjJMMTkuNzcgNC45M20wLTIuODNMOC40MyAxMy40NGwtNC4yLTQuMkwwIDEzLjQ3bDguNDMgOC40M0wyNCA2LjMzIDE5Ljc3IDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTYuMiA0LjggMTJsLTEuNCAxLjRMOSAxOSAyMSA3bC0xLjQtMS40TDkgMTYuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbnV0TGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDUuMDhBNyA3IDAgMCAxIDE4LjkyIDExaDMuMDNjLS40Ny00LjcyLTQuMjMtOC40OC04Ljk1LTguOTV2My4wM3pNMTguOTIgMTNBNyA3IDAgMCAxIDEzIDE4LjkydjMuMDNjNC43Mi0uNDcgOC40OC00LjIzIDguOTUtOC45NWgtMy4wM3pNMTEgMTguOTJjLTMuMzktLjQ5LTYtMy40LTYtNi45MnMyLjYxLTYuNDMgNi02LjkyVjIuMDVjLTUuMDUuNS05IDQuNzYtOSA5Ljk1IDAgNS4xOSAzLjk1IDkuNDUgOSA5Ljk1di0zLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9udXRTbWFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuODIgMTFoNy4xM2MtLjQ3LTQuNzItNC4yMy04LjQ4LTguOTUtOC45NXY3LjEzYy44NS4zMSAxLjUxLjk3IDEuODIgMS44MnpNMTUgNC41OEMxNyA1LjQgMTguNiA3IDE5LjQyIDloLTMuNDNjLS4yOC0uMzctLjYyLS43MS0uOTktLjk5VjQuNTh6TTIgMTJjMCA1LjE5IDMuOTUgOS40NSA5IDkuOTV2LTcuMTNDOS44NCAxNC40IDkgMTMuMyA5IDEyYzAtMS4zLjg0LTIuNCAyLTIuODJWMi4wNWMtNS4wNS41LTkgNC43Ni05IDkuOTV6bTctNy40MnYzLjQ0Yy0xLjIzLjkyLTIgMi4zOS0yIDMuOTggMCAxLjU5Ljc3IDMuMDYgMiAzLjk5djMuNDRDNi4wNCAxOC4yNCA0IDE1LjM1IDQgMTJjMC0zLjM1IDIuMDQtNi4yNCA1LTcuNDJ6bTQgMTAuMjR2Ny4xM2M0LjcyLS40NyA4LjQ4LTQuMjMgOC45NS04Ljk1aC03LjEzYy0uMzEuODUtLjk3IDEuNTEtMS44MiAxLjgyem0yIDEuMTdjLjM3LS4yOC43MS0uNjEuOTktLjk5aDMuNDNDMTguNiAxNyAxNyAxOC42IDE1IDE5LjQydi0zLjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJhZ0luZGljYXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMThjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem0tMi04Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiA0YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUR5bmFtaWNGb3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTFINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDl2N3pNNCA5aDdWNkg0djN6bTExIDExSDRjLTEuMSAwLTItLjktMi0ydi0zYzAtMS4xLjktMiAyLTJoMTF2N3pNNCAxOGg5di0zSDR2M3ptMTgtOWgtMmwyLTVoLTd2N2gydjlsNS0xMXpNNC43NSAxNy4yNWgxLjV2LTEuNWgtMS41djEuNXptMC05aDEuNXYtMS41aC0xLjV2MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWNvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4wNSA4LjA1YTcuMDA3IDcuMDA3IDAgMCAwIDAgOS45QzcuNDIgMTkuMzIgOS4yMSAyMCAxMSAyMHMzLjU4LS42OCA0Ljk1LTIuMDVDMTkuNDMgMTQuNDcgMjAgNCAyMCA0UzkuNTMgNC41NyA2LjA1IDguMDV6bTguNDkgOC40OWMtLjk1Ljk0LTIuMiAxLjQ2LTMuNTQgMS40Ni0uODkgMC0xLjczLS4yNS0yLjQ4LS42OC45Mi0yLjg4IDIuNjItNS40MSA0Ljg4LTcuMzItMi42MyAxLjM2LTQuODQgMy40Ni02LjM3IDYtMS40OC0xLjk2LTEuMzUtNC43NS40NC02LjU0QzkuMjEgNy43MiAxNC4wNCA2LjY1IDE3LjggNi4yYy0uNDUgMy43Ni0xLjUyIDguNTktMy4yNiAxMC4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkaXRDYWxlbmRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTBoMTR2MmgyVjZjMC0xLjEtLjktMi0yLTJoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xMSAwLTEuOTkuOS0xLjk5IDJMMyAyMGEyIDIgMCAwIDAgMiAyaDd2LTJINVYxMHptMC00aDE0djJINVY2em0xNy44NCAxMC4yOC0uNzEuNzEtMi4xMi0yLjEyLjcxLS43MWEuOTk2Ljk5NiAwIDAgMSAxLjQxIDBsLjcxLjcxYy4zOS4zOS4zOSAxLjAyIDAgMS40MXptLTMuNTQtLjcgMi4xMiAyLjEyLTUuMyA1LjNIMTR2LTIuMTJsNS4zLTUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkaXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjA2IDkuMDIuOTIuOTItMS4xMSAxLjExIDEuNDEgMS40MSAyLjUyLTIuNTItMy43NS0zLjc1LTIuNTIgMi41MiAxLjQxIDEuNDEgMS4xMi0xLjF6bTYuNjUtMS45OGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGMtLjItLjItLjQ1LS4yOS0uNzEtLjI5cy0uNTEuMS0uNy4yOWwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6TTIuODEgMi44MSAxLjM5IDQuMjJsNy4zMiA3LjMyTDMgMTcuMjVWMjFoMy43NWw1LjcxLTUuNzEgNy4zMiA3LjMyIDEuNDEtMS40MUwyLjgxIDIuODF6TTUuOTIgMTlINXYtLjkybDUuMTMtNS4xMy45Mi45Mkw1LjkyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTdoMTR2Mkg1em03LTEyTDUuMzMgMTVoMTMuMzRMMTIgNXptMCAzLjYgMi45MyA0LjRIOS4wN0wxMiA4LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdXJvU3ltYm9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxOC41QTYuNDggNi40OCAwIDAgMSA5LjI0IDE1SDE1di0ySDguNThjLS4wNS0uMzMtLjA4LS42Ni0uMDgtMXMuMDMtLjY3LjA4LTFIMTVWOUg5LjI0QTYuNDkxIDYuNDkxIDAgMCAxIDE1IDUuNWMxLjYxIDAgMy4wOS41OSA0LjIzIDEuNTdMMjEgNS4zQTguOTU1IDguOTU1IDAgMCAwIDE1IDNjLTMuOTIgMC03LjI0IDIuNTEtOC40OCA2SDN2MmgzLjA2YTguMjYyIDguMjYyIDAgMCAwIDAgMkgzdjJoMy41MmMxLjI0IDMuNDkgNC41NiA2IDguNDggNiAyLjMxIDAgNC40MS0uODcgNi0yLjNsLTEuNzgtMS43N2MtMS4xMy45OC0yLjYgMS41Ny00LjIyIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdmVudFJlcGVhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDEyVjZjMC0xLjEtLjktMi0yLTJoLTFWMmgtMnYySDhWMkg2djJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg3di0ySDVWMTBoMTR2Mmgyem0tMi00SDVWNmgxNHYyem0tMy4zNiAxMmEzLjUwNCAzLjUwNCAwIDAgMCA2Ljg2LTFjMC0xLjkzLTEuNTctMy41LTMuNS0zLjUtLjk1IDAtMS44Mi4zOC0yLjQ1IDFIMThWMThoLTR2LTRoMS41djEuNDNjLjktLjg4IDIuMTQtMS40MyAzLjUtMS40MyAyLjc2IDAgNSAyLjI0IDUgNWE1LjAwMiA1LjAwMiAwIDAgMS05LjkgMWgxLjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXZlbnRTZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA1djdIOVY1aDZtMC0ySDljLTEuMSAwLTIgLjktMiAydjloMTBWNWMwLTEuMS0uOS0yLTItMnptNyA3aC0zdjNoM3YtM3pNNSAxMEgydjNoM3YtM3ptMTUgNUg0djZoMnYtNGgxMnY0aDJ2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdmVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNGgtMVYyaC0ydjJIOFYySDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDIwYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjEwaDE0djEwem0wLTEySDVWNmgxNHYyem0tNyA1aDV2NWgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4aXRUb0FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDkgMTUuNTkgMTEuNSAxN2w1LTUtNS01LTEuNDEgMS40MUwxMi42NyAxMUgzdjJoOS42N2wtMi41OCAyLjU5ek0xOSAzSDVhMiAyIDAgMCAwLTIgMnY0aDJWNWgxNHYxNEg1di00SDN2NGEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjBoMTZ2Mkg0ek00IDJoMTZ2Mkg0ek05LjQxIDEzLjU5IDggMTVsNCA0IDQtNC0xLjQxLTEuNDFMMTMgMTUuMTdWOC44M2wxLjU5IDEuNThMMTYgOWwtNC00LTQgNCAxLjQxIDEuNDFMMTEgOC44M3Y2LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwbG9yZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOCAwIDEuNDgtLjQxIDIuODYtMS4xMiA0LjA2bDEuNDYgMS40NkE5Ljk2NyA5Ljk2NyAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMC0yLjA0IDAtMy45My42MS01LjUxIDEuNjZsMS40NiAxLjQ2QTcuODY5IDcuODY5IDAgMCAxIDEyIDR6bTIuOTEgOC4wOEwxNy41IDYuNWwtNS41OCAyLjU5IDIuOTkgMi45OXpNMi4xIDQuOTNsMS41NiAxLjU2QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMS41NiAxLjU2IDEuNDEtMS40MUwzLjUxIDMuNTEgMi4xIDQuOTN6bTMuMDIgMy4wMSAzLjk4IDMuOTgtMi42IDUuNTggNS41OC0yLjU5IDMuOTggMy45OGMtMS4yLjctMi41OCAxLjExLTQuMDYgMS4xMS00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNDguNDEtMi44NiAxLjEyLTQuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBsb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLTUuNS0yLjUgNy41MS0zLjQ5TDE3LjUgNi41IDkuOTkgOS45OSA2LjUgMTcuNXptNS41LTYuNmMuNjEgMCAxLjEuNDkgMS4xIDEuMXMtLjQ5IDEuMS0xLjEgMS4xLTEuMS0uNDktMS4xLTEuMS40OS0xLjEgMS4xLTEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4dGVuc2lvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEuMzkgNC4yMiAxLjYyIDEuNjJjMCAuMDUtLjAxLjEtLjAxLjE2djMuOGMyLjcgMCAzIDIuMTYgMyAyLjdzLS4yOSAyLjctMyAyLjdWMTljMCAxLjEuOSAyIDIgMmgzLjhjMC0yLjcxIDIuMTYtMyAyLjctM3MyLjcuMjkgMi43IDNIMThjLjA2IDAgLjExIDAgLjE2LS4wMWwxLjYxIDEuNjEgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6TTExLjUgMTZjLTEuNSAwLTMuNTcuODMtNC4zNyAzSDV2LTIuMTNjMi4xNy0uOCAzLTIuODcgMy00LjM3IDAtLjY5LS4xOC0xLjUtLjU4LTIuMjVsNi4zMyA2LjMzQTQuODkgNC44OSAwIDAgMCAxMS41IDE2ek04LjgzIDZsLTItMkg5YTIuNSAyLjUgMCAwIDEgNSAwaDRjMS4xIDAgMiAuOSAyIDJ2NGEyLjUgMi41IDAgMCAxIDAgNXYyLjE3bC0yLTJWMTNoMmMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41aC0yVjZoLTZWNGMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjV2Mkg4LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXh0ZW5zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDQuNWMuMjggMCAuNS4yMi41LjV2Mmg2djZoMmMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTJ2NmgtMi4xMmMtLjY4LTEuNzUtMi4zOS0zLTQuMzgtM3MtMy43IDEuMjUtNC4zOCAzSDR2LTIuMTJjMS43NS0uNjggMy0yLjM5IDMtNC4zOCAwLTEuOTktMS4yNC0zLjctMi45OS00LjM4TDQgN2g2VjVjMC0uMjguMjItLjUuNS0uNW0wLTJBMi41IDIuNSAwIDAgMCA4IDVINGMtMS4xIDAtMS45OS45LTEuOTkgMnYzLjhoLjI5YzEuNDkgMCAyLjcgMS4yMSAyLjcgMi43cy0xLjIxIDIuNy0yLjcgMi43SDJWMjBjMCAxLjEuOSAyIDIgMmgzLjh2LS4zYzAtMS40OSAxLjIxLTIuNyAyLjctMi43czIuNyAxLjIxIDIuNyAyLjd2LjNIMTdjMS4xIDAgMi0uOSAyLTJ2LTRhMi41IDIuNSAwIDAgMCAwLTVWN2MwLTEuMS0uOS0yLTItMmgtNGEyLjUgMi41IDAgMCAwLTIuNS0yLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlVW5sb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4yNSAxM2ExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwek0xNSAxMS43NWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41em03IC4yNWMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTIgNi40OCAyIDEyIDJzMTAgNC40OCAxMCAxMHpNMTAuNjYgNC4xMkMxMi4wNiA2LjQ0IDE0LjYgOCAxNy41IDhjLjQ2IDAgLjkxLS4wNSAxLjM0LS4xMkMxNy40NCA1LjU2IDE0LjkgNCAxMiA0Yy0uNDYgMC0uOTEuMDUtMS4zNC4xMnpNNC40MiA5LjQ3YTguMDQ2IDguMDQ2IDAgMCAwIDMuNjYtNC40NCA4LjA0NiA4LjA0NiAwIDAgMC0zLjY2IDQuNDR6TTIwIDEyYzAtLjc4LS4xMi0xLjUzLS4zMy0yLjI0LS43LjE1LTEuNDIuMjQtMi4xNy4yNGExMCAxMCAwIDAgMS03Ljc2LTMuNjlBMTAuMDE2IDEwLjAxNiAwIDAgMSA0IDExLjg2Yy4wMS4wNCAwIC4wOSAwIC4xNCAwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMjUgMTNhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMHpNMTUgMTEuNzVhMS4yNSAxLjI1IDAgMSAwIDAgMi41IDEuMjUgMS4yNSAwIDAgMCAwLTIuNXptNyAuMjVjMCA1LjUyLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyIDYuNDggMiAxMiAyczEwIDQuNDggMTAgMTB6TTEwLjY2IDQuMTJDMTIuMDYgNi40NCAxNC42IDggMTcuNSA4Yy40NiAwIC45MS0uMDUgMS4zNC0uMTJDMTcuNDQgNS41NiAxNC45IDQgMTIgNGMtLjQ2IDAtLjkxLjA1LTEuMzQuMTJ6TTQuNDIgOS40N2E4LjA0NiA4LjA0NiAwIDAgMCAzLjY2LTQuNDQgOC4wNDYgOC4wNDYgMCAwIDAtMy42NiA0LjQ0ek0yMCAxMmMwLS43OC0uMTItMS41My0uMzMtMi4yNC0uNy4xNS0xLjQyLjI0LTIuMTcuMjRhMTAgMTAgMCAwIDEtNy43Ni0zLjY5QTEwLjAxNiAxMC4wMTYgMCAwIDEgNCAxMS44NmMuMDEuMDQgMCAuMDkgMCAuMTQgMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY3RDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFJ1bGVcIjpcImV2ZW5vZGRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINFY1aDE2djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS40MSAxMC40MiAxNy45OSA5bC0zLjE3IDMuMTctMS40MS0xLjQyTDEyIDEyLjE2IDE0LjgyIDE1ek01IDdoNXYySDV6TTUgMTFoNXYySDV6TTUgMTVoNXYySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhdm9yaXRlQm9yZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDNjLTEuNzQgMC0zLjQxLjgxLTQuNSAyLjA5QzEwLjkxIDMuODEgOS4yNCAzIDcuNSAzIDQuNDIgMyAyIDUuNDIgMiA4LjVjMCAzLjc4IDMuNCA2Ljg2IDguNTUgMTEuNTRMMTIgMjEuMzVsMS40NS0xLjMyQzE4LjYgMTUuMzYgMjIgMTIuMjggMjIgOC41IDIyIDUuNDIgMTkuNTggMyAxNi41IDN6bS00LjQgMTUuNTUtLjEuMS0uMS0uMUM3LjE0IDE0LjI0IDQgMTEuMzkgNCA4LjUgNCA2LjUgNS41IDUgNy41IDVjMS41NCAwIDMuMDQuOTkgMy41NyAyLjM2aDEuODdDMTMuNDYgNS45OSAxNC45NiA1IDE2LjUgNWMyIDAgMy41IDEuNSAzLjUgMy41IDAgMi44OS0zLjE0IDUuNzQtNy45IDEwLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmF2b3JpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDIxLjM1LTEuNDUtMS4zMkM1LjQgMTUuMzYgMiAxMi4yOCAyIDguNSAyIDUuNDIgNC40MiAzIDcuNSAzYzEuNzQgMCAzLjQxLjgxIDQuNSAyLjA5QzEzLjA5IDMuODEgMTQuNzYgMyAxNi41IDMgMTkuNTggMyAyMiA1LjQyIDIyIDguNWMwIDMuNzgtMy40IDYuODYtOC41NSAxMS41NEwxMiAyMS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZheCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDloLTFWNEg4djVoLS43OEM2LjY3IDguMzkgNS44OSA4IDUgOGMtMS42NiAwLTMgMS4zNC0zIDN2N2MwIDEuNjYgMS4zNCAzIDMgMyAuODkgMCAxLjY3LS4zOSAyLjIyLTFIMjJ2LThjMC0xLjY2LTEuMzQtMy0zLTN6TTYgMThjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF2LTdjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjd6bTQtMTJoNnYzaC02VjZ6bTEwIDEySDh2LTdoMTFjLjU1IDAgMSAuNDUgMSAxdjZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEyaDR2NUg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmVlZGJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdsLS41OS41OS0uNTguNThWNGgxNnYxMnptLTktNGgydjJoLTJ6bTAtNmgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlUHJlc2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoOHY0aDR2MTJ6bS02LTNjLTEuMSAwLTItLjktMi0yVjkuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYxNWgyVjkuNWEyLjUgMi41IDAgMCAwLTUgMFYxNWMwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00di00aC0ydjRjMCAxLjEtLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJBbHRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45NSA2LTMuNTcgNC41NSAxLjQzIDEuNDNjMS4wMy0xLjMxIDQuOTgtNi4zNyA0Ljk4LTYuMzdBLjk5OC45OTggMCAwIDAgMTkgNEg2LjgzbDIgMmg4LjEyek0yLjgxIDIuODEgMS4zOSA0LjIyIDEwIDEzdjZjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTIuMTdsNS43OCA1Ljc4IDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNG0wIDI0SDBcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA2aDEwbC01LjAxIDYuM0w3IDZ6bS0yLjc1LS4zOUM2LjI3IDguMiAxMCAxMyAxMCAxM3Y2YzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi02czMuNzItNC44IDUuNzQtNy4zOUEuOTk4Ljk5OCAwIDAgMCAxOC45NSA0SDUuMDRjLS44MyAwLTEuMy45NS0uNzkgMS42MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbmRJblBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnpNNiA0aDdsNSA1djguNThsLTEuODQtMS44NGE0Ljk5MiA0Ljk5MiAwIDAgMC0uNjQtNi4yOEE0Ljk2IDQuOTYgMCAwIDAgMTIgOGE1IDUgMCAwIDAtMy41MyAxLjQ2IDQuOTggNC45OCAwIDAgMCAwIDcuMDUgNC45ODIgNC45ODIgMCAwIDAgNi4yOC42M0wxNy42IDIwSDZWNHptOC4xMSAxMS4xYy0uNTYuNTYtMS4zMS44OC0yLjExLjg4cy0xLjU1LS4zMS0yLjExLS44OGMtLjU2LS41Ni0uODgtMS4zMS0uODgtMi4xMXMuMzEtMS41NS44OC0yLjExYy41Ni0uNTcgMS4zMS0uODggMi4xMS0uODhzMS41NS4zMSAyLjExLjg4Yy41Ni41Ni44OCAxLjMxLjg4IDIuMTFzLS4zMSAxLjU1LS44OCAyLjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmluZFJlcGxhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZjMS4zOCAwIDIuNjMuNTYgMy41NCAxLjQ2TDEyIDEwaDZWNGwtMi4wNSAyLjA1QTYuOTc2IDYuOTc2IDAgMCAwIDExIDRjLTMuNTMgMC02LjQzIDIuNjEtNi45MiA2SDYuMUE1IDUgMCAwIDEgMTEgNnptNS42NCA5LjE0QTYuODkgNi44OSAwIDAgMCAxNy45MiAxMkgxNS45YTUgNSAwIDAgMS00LjkgNGMtMS4zOCAwLTIuNjMtLjU2LTMuNTQtMS40NkwxMCAxMkg0djZsMi4wNS0yLjA1QTYuOTc2IDYuOTc2IDAgMCAwIDExIDE4YzEuNTUgMCAyLjk4LS41MSA0LjE0LTEuMzZMMjAgMjEuNDkgMjEuNDkgMjBsLTQuODUtNC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbmdlcnByaW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44MSA0LjQ3Yy0uMDggMC0uMTYtLjAyLS4yMy0uMDZDMTUuNjYgMy40MiAxNCAzIDEyLjAxIDNjLTEuOTggMC0zLjg2LjQ3LTUuNTcgMS40MS0uMjQuMTMtLjU0LjA0LS42OC0uMmEuNTA2LjUwNiAwIDAgMSAuMi0uNjhDNy44MiAyLjUyIDkuODYgMiAxMi4wMSAyYzIuMTMgMCAzLjk5LjQ3IDYuMDMgMS41Mi4yNS4xMy4zNC40My4yMS42N2EuNDkuNDkgMCAwIDEtLjQ0LjI4ek0zLjUgOS43MmEuNDk5LjQ5OSAwIDAgMS0uNDEtLjc5Yy45OS0xLjQgMi4yNS0yLjUgMy43NS0zLjI3QzkuOTggNC4wNCAxNCA0LjAzIDE3LjE1IDUuNjVjMS41Ljc3IDIuNzYgMS44NiAzLjc1IDMuMjVhLjUuNSAwIDAgMS0uMTIuN2MtLjIzLjE2LS41NC4xMS0uNy0uMTJhOS4zODggOS4zODggMCAwIDAtMy4zOS0yLjk0Yy0yLjg3LTEuNDctNi41NC0xLjQ3LTkuNC4wMS0xLjM2LjctMi41IDEuNy0zLjQgMi45Ni0uMDguMTQtLjIzLjIxLS4zOS4yMXptNi4yNSAxMi4wN2EuNDcuNDcgMCAwIDEtLjM1LS4xNWMtLjg3LS44Ny0xLjM0LTEuNDMtMi4wMS0yLjY0LS42OS0xLjIzLTEuMDUtMi43My0xLjA1LTQuMzQgMC0yLjk3IDIuNTQtNS4zOSA1LjY2LTUuMzlzNS42NiAyLjQyIDUuNjYgNS4zOWMwIC4yOC0uMjIuNS0uNS41cy0uNS0uMjItLjUtLjVjMC0yLjQyLTIuMDktNC4zOS00LjY2LTQuMzlzLTQuNjYgMS45Ny00LjY2IDQuMzljMCAxLjQ0LjMyIDIuNzcuOTMgMy44NS42NCAxLjE1IDEuMDggMS42NCAxLjg1IDIuNDIuMTkuMi4xOS41MSAwIC43MS0uMTEuMS0uMjQuMTUtLjM3LjE1em03LjE3LTEuODVjLTEuMTkgMC0yLjI0LS4zLTMuMS0uODktMS40OS0xLjAxLTIuMzgtMi42NS0yLjM4LTQuMzkgMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjVjMCAxLjQxLjcyIDIuNzQgMS45NCAzLjU2LjcxLjQ4IDEuNTQuNzEgMi41NC43MS4yNCAwIC42NC0uMDMgMS4wNC0uMS4yNy0uMDUuNTMuMTMuNTguNDEuMDUuMjctLjEzLjUzLS40MS41OC0uNTcuMTEtMS4wNy4xMi0xLjIxLjEyek0xNC45MSAyMmMtLjA0IDAtLjA5LS4wMS0uMTMtLjAyLTEuNTktLjQ0LTIuNjMtMS4wMy0zLjcyLTIuMWE3LjI5NyA3LjI5NyAwIDAgMS0yLjE3LTUuMjJjMC0xLjYyIDEuMzgtMi45NCAzLjA4LTIuOTRzMy4wOCAxLjMyIDMuMDggMi45NGMwIDEuMDcuOTMgMS45NCAyLjA4IDEuOTRzMi4wOC0uODcgMi4wOC0xLjk0YzAtMy43Ny0zLjI1LTYuODMtNy4yNS02LjgzLTIuODQgMC01LjQ0IDEuNTgtNi42MSA0LjAzLS4zOS44MS0uNTkgMS43Ni0uNTkgMi44IDAgLjc4LjA3IDIuMDEuNjcgMy42MS4xLjI2LS4wMy41NS0uMjkuNjQtLjI2LjEtLjU1LS4wNC0uNjQtLjI5YTExLjE0IDExLjE0IDAgMCAxLS43My0zLjk2YzAtMS4yLjIzLTIuMjkuNjgtMy4yNCAxLjMzLTIuNzkgNC4yOC00LjYgNy41MS00LjYgNC41NSAwIDguMjUgMy41MSA4LjI1IDcuODMgMCAxLjYyLTEuMzggMi45NC0zLjA4IDIuOTRzLTMuMDgtMS4zMi0zLjA4LTIuOTRjMC0xLjA3LS45My0xLjk0LTIuMDgtMS45NHMtMi4wOC44Ny0yLjA4IDEuOTRjMCAxLjcxLjY2IDMuMzEgMS44NyA0LjUxLjk1Ljk0IDEuODYgMS40NiAzLjI3IDEuODUuMjcuMDcuNDIuMzUuMzUuNjEtLjA1LjIzLS4yNi4zOC0uNDcuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXRTY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTZoMTJWOEg2djh6bTItNmg4djRIOHYtNHptLTQgNUgydjNjMCAxLjEuOSAyIDIgMmgzdi0ySDR2LTN6bTAtOWgzVjRINGMtMS4xIDAtMiAuOS0yIDJ2M2gyVjZ6bTE2LTJoLTN2MmgzdjNoMlY2YzAtMS4xLS45LTItMi0yem0wIDE0aC0zdjJoM2MxLjEgMCAyLS45IDItMnYtM2gtMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxha3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJtMTQuMDUgMTcuNTgtLjAxLjAxLTIuNC0yLjQgMS4wNi0xLjA2IDEuMzUgMS4zNUwxNi41NCAxM2wxLjA2IDEuMDYtMy41NCAzLjU0LS4wMS0uMDJ6TTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyek03LjM0IDYuMjhsMS40MSAxLjQxIDEuNDEtMS40MSAxLjA2IDEuMDYtMS40MSAxLjQxIDEuNDEgMS40MS0xLjA2IDEuMDYtMS40MS0xLjQxLTEuNDEgMS40MS0xLjA2LTEuMDYgMS40MS0xLjQxLTEuNDEtMS40MSAxLjA2LTEuMDZ6TTEyIDIwYy0yLjIgMC00LjItLjktNS43LTIuM0wxNy43IDYuM0MxOS4xIDcuOCAyMCA5LjggMjAgMTJjMCA0LjQtMy42IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxpZ2h0TGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDE5aDE5djJoLTE5di0yem0xNi44NC0zLjE1Yy44LjIxIDEuNjItLjI2IDEuODQtMS4wNi4yMS0uOC0uMjYtMS42Mi0xLjA2LTEuODRsLTUuMzEtMS40Mi0yLjc2LTkuMDJMMTAuMTIgMnY4LjI4TDUuMTUgOC45NWwtLjkzLTIuMzItMS40NS0uMzl2NS4xN2wxNi41NyA0LjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxpZ2h0VGFrZW9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDE5aDE5djJoLTE5di0yem0xOS41Ny05LjM2Yy0uMjEtLjgtMS4wNC0xLjI4LTEuODQtMS4wNkwxNC45MiAxMGwtNi45LTYuNDMtMS45My41MSA0LjE0IDcuMTctNC45NyAxLjMzLTEuOTctMS41NC0xLjQ1LjM5IDIuNTkgNC40OUwyMSAxMS40OWMuODEtLjIzIDEuMjgtMS4wNSAxLjA3LTEuODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlwVG9CYWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdIN3YyaDJWN3ptMCA0SDd2Mmgydi0yem0wLThhMiAyIDAgMCAwLTIgMmgyVjN6bTQgMTJoLTJ2Mmgydi0yem02LTEydjJoMmMwLTEuMS0uOS0yLTItMnptLTYgMGgtMnYyaDJWM3pNOSAxN3YtMkg3YTIgMiAwIDAgMCAyIDJ6bTEwLTRoMnYtMmgtMnYyem0wLTRoMlY3aC0ydjJ6bTAgOGMxLjEgMCAyLS45IDItMmgtMnYyek01IDdIM3YxMmEyIDIgMCAwIDAgMiAyaDEydi0ySDVWN3ptMTAtMmgyVjNoLTJ2MnptMCAxMmgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlwVG9Gcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxM2gydi0ySDN2MnptMCA0aDJ2LTJIM3Yyem0yIDR2LTJIM2EyIDIgMCAwIDAgMiAyek0zIDloMlY3SDN2MnptMTIgMTJoMnYtMmgtMnYyem00LTE4SDlhMiAyIDAgMCAwLTIgMnYxMGEyIDIgMCAwIDAgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTJIOVY1aDEwdjEwem0tOCA2aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsdXR0ZXJEYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDcgMTEuN2MuMjktLjM5LjgxLS41NiAxLjI3LS4zNy4xNy4wNy4zMi4xOC40My4zMy4yMi4yOC4yNS41OS4yMi44NS0uMDUuMzMtLjI1LjYzLS41NC43OSAwIDAtNC44NyAyLjk1LTUuMDcgMi42OXMzLjY5LTQuMjkgMy42OS00LjI5ek0yMiAxMGMwIDIuNS0xIDMtMS41IDMtLjIzIDAtLjQ0LS4xLS42Mi0uMjYtLjQ4IDMuMzItMi4zNiA1LjMxLTUuMzMgNS45OS4xMS40NC40OC43Ny45NS43N2guNThjLjIyIDAgLjQxLjE1LjQ4LjM2LjE3LjUyLjY2IDEuMDIgMS4wMiAxLjMyLjI1LjIxLjI0LjU5LS4wMy43OC0uMzQuMjQtLjkuNDktMS43OS41M2EuNTAxLjUwMSAwIDAgMS0uNDUtLjIyYy0uMTMtLjItLjMxLS41Ni0uMzEtMS4wMSAwLS4zLjA0LS41Ny4wOS0uOC0uNzgtLjE2LTEuMzktLjc4LTEuNTUtMS41Ni0uNDkuMDYtMSAuMS0xLjU0LjEtLjg4IDAtMS43LS4wOS0yLjQ1LS4yNS0uMDIuMDgtLjA1LjE2LS4wNS4yNSAwIC41NS40NSAxIDEgMWguNThjLjIyIDAgLjQxLjE1LjQ4LjM2LjE3LjUyLjY2IDEuMDIgMS4wMiAxLjMyLjI1LjIxLjI0LjU5LS4wMy43OC0uMzQuMjQtLjkuNDktMS43OS41M2EuNTAxLjUwMSAwIDAgMS0uNDUtLjIyYy0uMTMtLjItLjMxLS41Ni0uMzEtMS4wMSAwLS4zLjA0LS41Ny4wOS0uOC0uOS0uMTktMS41OS0xLTEuNTktMS45NiAwLS4xOC4wMy0uMzYuMDgtLjUzLTIuNDYtLjg2LTQuMDMtMi43OC00LjQ2LTUuNzQtLjE4LjE3LS4zOC4yNy0uNjIuMjdDMyAxMyAyIDEyLjUgMiAxMGMwLTIuMjcgMS43LTQuNSAzLTQuNS40MyAwIC40OS40OS41Ljg1YTcuOTg5IDcuOTg5IDAgMCAxIDUuNTUtMy4yOWMuMi0uOTYgMS4wOC0xLjU2IDEuOTUtMS41NnYxcy4zMy0uNSAxLS41Yy42NyAwIDEgLjUgMSAuNS0uNDkgMC0uODUuMzUtLjk2Ljc3IDEuODIuNDggMy4zOSAxLjU5IDQuNDYgMy4wOC4wMS0uMzYuMDctLjg1LjUtLjg1IDEuMyAwIDMgMi4yMyAzIDQuNXpNNSAxMWMwIC44MS4xIDEuNTMuMjUgMi4yMS4xOC0uNjkuNDYtMS4zMy44My0xLjkyYTMuNzcgMy43NyAwIDAgMS0uMzQtMS41NEEzLjc2NiAzLjc2NiAwIDAgMSA5LjUgNmMuOTYgMCAxLjg0LjM3IDIuNS45Ny42Ni0uNiAxLjU0LS45NyAyLjUtLjk3IDIuMDcgMCAzLjc1IDEuNjggMy43NSAzLjc1IDAgLjU1LS4xMiAxLjA3LS4zNCAxLjU0LjM3LjU5LjY2IDEuMjQuODQgMS45NC4xNS0uNjguMjUtMS40MS4yNS0yLjIzIDAtMy44Ni0zLjE0LTctNy03cy03IDMuMTQtNyA3em0xMi45OCA0LjI5YzAtLjEuMDItLjE5LjAyLS4yOSAwLTEuMDEtLjI2LTEuOTUtLjctMi43OC0uNjkuNzgtMS42OCAxLjI4LTIuOCAxLjI4LS4yNyAwLS41NC0uMDMtLjc5LS4wOS4xNC0uMjMuMjMtLjQ5LjI3LS43Ny4wMS0uMDcuMDEtLjEzLjAyLS4xOS4xNy4wMy4zMy4wNS41LjA1IDEuNTIgMCAyLjc1LTEuMjMgMi43NS0yLjc1UzE2LjAyIDcgMTQuNSA3Yy0uNjcgMC0xLjMyLjI1LTEuODMuNzJsLS42Ny42LS42Ny0uNkMxMC44MiA3LjI1IDEwLjE3IDcgOS41IDcgNy45OCA3IDYuNzUgOC4yMyA2Ljc1IDkuNzVjMCAxLjM0Ljk2IDIuNDYgMi4yMyAyLjdsLS43Ni44M2MtLjYtLjIyLTEuMTItLjU5LTEuNTMtMS4wNUE2LjAxIDYuMDEgMCAwIDAgNiAxNWMwIC4wOC4wMS4xNS4wMS4yNEM3LjEzIDE3LjA2IDkuMTQgMTggMTIgMThjMi44OCAwIDQuODgtLjkxIDUuOTgtMi43MXpNMTYgOS43NWMwIC45Ny0uNjcgMS43NS0xLjUgMS43NVMxMyAxMC43MiAxMyA5Ljc1IDEzLjY3IDggMTQuNSA4czEuNS43OCAxLjUgMS43NXptLS43NS0uODdjMC0uMjEtLjE3LS4zOC0uMzgtLjM4cy0uMzcuMTctLjM3LjM4LjE3LjM4LjM4LjM4LjM3LS4xOC4zNy0uMzh6TTExIDkuNzVjMCAuOTctLjY3IDEuNzUtMS41IDEuNzVTOCAxMC43MiA4IDkuNzUgOC42NyA4IDkuNSA4czEuNS43OCAxLjUgMS43NXptLS43NS0uODdjMC0uMjEtLjE3LS4zOC0uMzgtLjM4cy0uMzcuMTctLjM3LjM4LjE3LjM4LjM4LjM4LjM3LS4xOC4zNy0uMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGcmVlQ2FuY2VsbGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjEgMjBINVYxMGgxNHY0LjM4bDItMlY2YzAtMS4xLS45LTItMi0yaC0xVjJoLTJ2Mkg4VjJINnYySDVjLTEuMTEgMC0xLjk5LjktMS45OSAyTDMgMjBhMiAyIDAgMCAwIDIgMmg4LjIxbC0yLTJ6TTUgNmgxNHYySDVWNnptMTEuNTQgMTYuNUwxMyAxOC45NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNCAxLjQxIDEuNDEtNS42NCA1LjY2ek0xMC40MSAxNCAxMiAxNS41OSAxMC41OSAxNyA5IDE1LjQxIDcuNDEgMTcgNiAxNS41OSA3LjU5IDE0IDYgMTIuNDEgNy40MSAxMSA5IDEyLjU5IDEwLjU5IDExIDEyIDEyLjQxIDEwLjQxIDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR1RyYW5zbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtOS4xMkwxMCAySDRjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoN2wxIDNoOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yek03LjE3IDE0LjU5Yy0yLjI1IDAtNC4wOS0xLjgzLTQuMDktNC4wOXMxLjgzLTQuMDkgNC4wOS00LjA5YzEuMDQgMCAxLjk5LjM3IDIuNzQgMS4wN2wuMDcuMDYtMS4yMyAxLjE4LS4wNi0uMDVjLS4yOS0uMjctLjc4LS41OS0xLjUyLS41OS0xLjMxIDAtMi4zOCAxLjA5LTIuMzggMi40MnMxLjA3IDIuNDIgMi4zOCAyLjQyYzEuMzcgMCAxLjk2LS44NyAyLjEyLTEuNDZINy4wOFY5LjkxaDMuOTVsLjAxLjA3Yy4wNC4yMS4wNS40LjA1LjYxIDAgMi4zNS0xLjYxIDQtMy45MiA0em02LjAzLTEuNzFjLjMzLjYuNzQgMS4xOCAxLjE5IDEuN2wtLjU0LjUzLS42NS0yLjIzem0uNzctLjc2aC0uOTlsLS4zMS0xLjA0aDMuOTlzLS4zNCAxLjMxLTEuNTYgMi43NGMtLjUyLS42Mi0uODktMS4yMy0xLjEzLTEuN3pNMjEgMjBjMCAuNTUtLjQ1IDEtMSAxaC03bDItMi0uODEtMi43Ny45Mi0uOTJMMTcuNzkgMThsLjczLS43My0yLjcxLTIuNjhjLjktMS4wMyAxLjYtMi4yNSAxLjkyLTMuNTFIMTl2LTEuMDRoLTMuNjRWOWgtMS4wNHYxLjA0aC0xLjk2TDExLjE4IDZIMjBjLjU1IDAgMSAuNDUgMSAxdjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2F2ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjFoMTJ2Mkgxdi0yek01LjI0IDguMDdsMi44My0yLjgzIDE0LjE0IDE0LjE0LTIuODMgMi44M0w1LjI0IDguMDd6TTEyLjMyIDFsNS42NiA1LjY2LTIuODMgMi44My01LjY2LTUuNjZMMTIuMzIgMXpNMy44MyA5LjQ4bDUuNjYgNS42Ni0yLjgzIDIuODNMMSAxMi4zMWwyLjgzLTIuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHZW5lcmF0aW5nVG9rZW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6bTMtNy41aC0ydjVIOHYtNUg2VjloNnYxLjV6bTguMjUtNi43NUwyMyA1bC0yLjc1IDEuMjVMMTkgOWwtMS4yNS0yLjc1TDE1IDVsMi43NS0xLjI1TDE5IDFsMS4yNSAyLjc1em0wIDE0TDIzIDE5bC0yLjc1IDEuMjVMMTkgMjNsLTEuMjUtMi43NUwxNSAxOWwyLjc1LTEuMjVMMTkgMTVsMS4yNSAyLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2V0QXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA1djZoMS4xN0wxMiAxMy4xNyA5LjgzIDExSDExVjVoMm0yLTJIOXY2SDVsNyA3IDctN2gtNFYzem00IDE1SDV2MmgxNHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdpZkJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5SDVWNWgxNHYxNHpNNSAzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJINXptNi41IDExaDF2LTRoLTF2NHptMiAwaDF2LTEuNUgxNnYtMWgtMS41VjExaDJ2LTFoLTN2NHptLTQtMnYxaC0xdi0yaDJjMC0uNTUtLjQ1LTEtMS0xaC0xYy0uNTUgMC0xIC40NS0xIDF2MmMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdpZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSA5SDEzdjZoLTEuNVY5ek05IDlINmMtLjYgMC0xIC41LTEgMXY0YzAgLjUuNCAxIDEgMWgzYy42IDAgMS0uNSAxLTF2LTJIOC41djEuNWgtMnYtM0gxMFYxMGMwLS41LS40LTEtMS0xem0xMCAxLjVWOWgtNC41djZIMTZ2LTJoMnYtMS41aC0ydi0xaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmFkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNy4xMy45NyAyLjI5LjQ3IDEuMTEgMS4yLjEgMi40Ny4yMS0xLjg4IDEuNjMtLjkxLjc5LjI3IDEuMTguNTYgMi40MS0yLjEyLTEuMjgtMS4wMy0uNjQtMS4wMy42Mi0yLjEyIDEuMjguNTYtMi40MS4yNy0xLjE4LS45MS0uNzktMS44OC0xLjYzIDIuNDctLjIxIDEuMi0uMS40Ny0xLjExLjk3LTIuMjdNMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjY0LTcuMDNMMjIgOS4yNGwtNy4xOS0uNjFMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDdoMTZ2Mkg0Vjd6bTAgNmgxNnYtMkg0djJ6bTAgNGg3di0ySDR2MnptMCA0aDd2LTJINHYyem0xMS40MS0yLjgzTDE0IDE2Ljc1bC0xLjQxIDEuNDFMMTUuNDEgMjEgMjAgMTYuNDIgMTguNTggMTVsLTMuMTcgMy4xN3pNNCAzdjJoMTZWM0g0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JvdXBXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjhcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNlwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWxwQ2VudGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMjUgMTYuNzRjMCAuNjktLjUzIDEuMjYtMS4yNSAxLjI2LS43IDAtMS4yNi0uNTYtMS4yNi0xLjI2IDAtLjcxLjU2LTEuMjUgMS4yNi0xLjI1LjcxIDAgMS4yNS41NSAxLjI1IDEuMjV6TTExLjk5IDZjLTEuNzcgMC0yLjk4IDEuMTUtMy40MyAyLjQ5bDEuNjQuNjljLjIyLS42Ny43NC0xLjQ4IDEuOC0xLjQ4IDEuNjIgMCAxLjk0IDEuNTIgMS4zNyAyLjMzLS41NC43Ny0xLjQ3IDEuMjktMS45NiAyLjE2LS4zOS42OS0uMzEgMS40OS0uMzEgMS45OGgxLjgyYzAtLjkzLjA3LTEuMTIuMjItMS40MS4zOS0uNzIgMS4xMS0xLjA2IDEuODctMi4xNy42OC0xIC40Mi0yLjM2LS4wMi0zLjA4LS41MS0uODQtMS41Mi0xLjUxLTMtMS41MXpNMTkgNUg1djE0aDE0VjVtMC0yYzEuMSAwIDIgLjkgMiAydjE0YzAgMS4xLS45IDItMiAySDVjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmgxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlbHBPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxOGgydi0yaC0ydjJ6bTEtMTZDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0yLjIxIDAtNCAxLjc5LTQgNGgyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJjMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxN2gtMnYtMmgydjJ6bTIuMDctNy43NS0uOS45MkMxMy40NSAxMi45IDEzIDEzLjUgMTMgMTVoLTJ2LS41YzAtMS4xLjQ1LTIuMSAxLjE3LTIuODNsMS4yNC0xLjI2Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJzLTIgLjktMiAySDhjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIC44OC0uMzYgMS42OC0uOTMgMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpZGVTb3VyY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MUwyLjgxIDIuODF6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNDguNDEtMi44NiAxLjEyLTQuMDZsMTAuOTQgMTAuOTRDMTQuODYgMTkuNTkgMTMuNDggMjAgMTIgMjB6TTcuOTQgNS4xMiA2LjQ5IDMuNjZBOS45MSA5LjkxIDAgMCAxIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTAgMCAyLjA0LS42MSAzLjkzLTEuNjYgNS41MWwtMS40Ni0xLjQ2QTcuODY5IDcuODY5IDAgMCAwIDIwIDEyYzAtNC40MS0zLjU5LTgtOC04LTEuNDggMC0yLjg2LjQxLTQuMDYgMS4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpZ2hsaWdodEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDVoLTJWM2gydjJ6bS0yIDEwdjZsMi4yOS0yLjI5IDIuMyAyLjI5TDIxIDE5LjU5bC0yLjI5LTIuMjlMMjEgMTVoLTZ6bTQtNmgyVjdoLTJ2MnptMCA0aDJ2LTJoLTJ2MnptLTggOGgydi0yaC0ydjJ6TTcgNWgyVjNIN3Yyek0zIDE3aDJ2LTJIM3Yyem0yIDR2LTJIM2MwIDEuMS45IDIgMiAyek0xOSAzdjJoMmMwLTEuMS0uOS0yLTItMnptLTggMmgyVjNoLTJ2MnpNMyA5aDJWN0gzdjJ6bTQgMTJoMnYtMkg3djJ6bS00LThoMnYtMkgzdjJ6bTAtOGgyVjNjLTEuMSAwLTIgLjktMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlnaGxpZ2h0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41OSA4IDEyIDEwLjU5IDkuNDEgOCA4IDkuNDEgMTAuNTkgMTIgOCAxNC41OSA5LjQxIDE2IDEyIDEzLjQxIDE0LjU5IDE2IDE2IDE0LjU5IDEzLjQxIDEyIDE2IDkuNDEgMTQuNTkgOHpNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaXN0b3J5VG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuMSAxOS4zNyAxIDEuNzRjLS45Ni40NC0yLjAxLjczLTMuMS44NHYtMi4wMmMuNzQtLjA5IDEuNDQtLjI4IDIuMS0uNTZ6TTQuMDcgMTNIMi4wNWMuMTEgMS4xLjQgMi4xNC44NCAzLjFsMS43NC0xYy0uMjgtLjY2LS40Ny0xLjM2LS41Ni0yLjF6TTE1LjEgNC42M2wxLTEuNzRjLS45Ni0uNDQtMi0uNzMtMy4xLS44NHYyLjAyYy43NC4wOSAxLjQ0LjI4IDIuMS41NnpNMTkuOTMgMTFoMi4wMmMtLjExLTEuMS0uNC0yLjE0LS44NC0zLjFsLTEuNzQgMWMuMjguNjYuNDcgMS4zNi41NiAyLjF6TTguOSAxOS4zN2wtMSAxLjc0Yy45Ni40NCAyLjAxLjczIDMuMS44NHYtMi4wMmMtLjc0LS4wOS0xLjQ0LS4yOC0yLjEtLjU2ek0xMSA0LjA3VjIuMDVjLTEuMS4xMS0yLjE0LjQtMy4xLjg0bDEgMS43NGMuNjYtLjI4IDEuMzYtLjQ3IDIuMS0uNTZ6bTcuMzYgMy4xIDEuNzQtMS4wMWMtLjYzLS44Ny0xLjQtMS42NC0yLjI3LTIuMjdsLTEuMDEgMS43NGMuNTkuNDUgMS4xLjk2IDEuNTQgMS41NHpNNC42MyA4LjlsLTEuNzQtMWMtLjQ0Ljk2LS43MyAyLS44NCAzLjFoMi4wMmMuMDktLjc0LjI4LTEuNDQuNTYtMi4xem0xNS4zIDQuMWMtLjA5Ljc0LS4yOCAxLjQ0LS41NiAyLjFsMS43NCAxYy40NC0uOTYuNzMtMi4wMS44NC0zLjFoLTIuMDJ6bS0zLjEgNS4zNiAxLjAxIDEuNzRjLjg3LS42MyAxLjY0LTEuNCAyLjI3LTIuMjdsLTEuNzQtMS4wMWMtLjQ1LjU5LS45NiAxLjEtMS41NCAxLjU0ek03LjE3IDUuNjRsLTEtMS43NWMtLjg4LjY0LTEuNjQgMS40LTIuMjcgMi4yOGwxLjc0IDEuMDFhNy43IDcuNyAwIDAgMSAxLjUzLTEuNTR6TTUuNjQgMTYuODNsLTEuNzQgMWMuNjMuODcgMS40IDEuNjQgMi4yNyAyLjI3bDEuMDEtMS43NGE3LjcgNy43IDAgMCAxLTEuNTQtMS41M3pNMTMgN2gtMnY1LjQxbDQuMjkgNC4yOSAxLjQxLTEuNDEtMy43LTMuN1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlzdG9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2E5IDkgMCAwIDAtOSA5SDFsMy44OSAzLjg5LjA3LjE0TDkgMTJINmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3LTMuMTMgNy03IDdjLTEuOTMgMC0zLjY4LS43OS00Ljk0LTIuMDZsLTEuNDIgMS40MkE4Ljk1NCA4Ljk1NCAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgMC0xOHptLTEgNXY1bDQuMjUgMi41Mi43Ny0xLjI4LTMuNTItMi4wOVY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGxzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuODMgMTVoMS42N2MuNTUgMCAxLS40NSAxLTF2LTEuNWMwLS41NS0uNDUtMS0xLTFIMTd2LTFoMnYuNWgxLjV2LTFjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2MS41YzAgLjU1LjQ1IDEgMSAxSDE5djFoLTJWMTNoLTEuMTdsMiAyek04IDEwLjgzVjE1SDYuNXYtMi41aC0yVjE1SDNWOWgxLjV2MmgyVjkuMzNMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MS03LjYtNy42SDEwdi0yLjE3bC0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgOUg4djZINi41di0yLjVoLTJWMTVIM1Y5aDEuNXYyaDJWOXptMTAgNmgzYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUgxN3YtMWgydi41aDEuNXYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFIMTl2MWgtMlYxM2gtMS41djFjMCAuNTUuNDUgMSAxIDF6TTE0IDE1di0xLjVoLTIuNVY5SDEwdjZoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDUuNjkgNSA0LjVWMThoLTJ2LTZIOXY2SDd2LTcuODFsNS00LjVNMTIgMyAyIDEyaDN2OGg2di02aDJ2Nmg2di04aDNMMTIgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvcml6b250YWxTcGxpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTV2Mkg1di0yaDE0bTItMTBIM3YyaDE4VjV6bTAgNEgzdjJoMThWOXptMCA0SDN2NmgxOHYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdGVsQ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSA4Ljg5Ljk0IDMuMTFoMi44MmwtMi4yNyAxLjYyLjkzIDMuMDFMMTEgMTQuNzlsLTIuNDIgMS44NC45My0zLjAxTDcuMjQgMTJoMi44MkwxMSA4Ljg5ek04LjU4IDEwSDFsNi4xNyA0LjQxTDQuODMgMjIgMTEgMTcuMzEgMTcuMTggMjJsLTIuMzUtNy41OUwyMSAxMGgtNy41OEwxMSAybC0yLjQyIDh6bTEyLjc4IDEyLTEuODYtNi4wMUwyMy42OCAxM2gtMy40NGwtMy4wOCAyLjIgMS40NiA0LjcyTDIxLjM2IDIyek0xNyA4bC0xLjgyLTYtMS4wNCAzLjQ1Ljc3IDIuNTVIMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3VyZ2xhc3NEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggNGg4djMuNWwtMi44NCAyLjg0IDEuMjUgMS4yNUwxOCA4LjAxIDE3Ljk5IDhIMThWMkg2djEuMTdsMiAyek0yLjEgMi4xLjY5IDMuNTFsOC45IDguOUw2IDE2bC4wMS4wMUg2VjIyaDEydi0xLjE3bDIuNDkgMi40OSAxLjQxLTEuNDFMMi4xIDIuMXpNMTYgMjBIOHYtMy41bDIuODQtMi44NEwxNiAxOC44M1YyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdXJnbGFzc0VtcHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDJ2NmguMDFMNiA4LjAxIDEwIDEybC00IDQgLjAxLjAxSDZWMjJoMTJ2LTUuOTloLS4wMUwxOCAxNmwtNC00IDQtMy45OS0uMDEtLjAxSDE4VjJINnptMTAgMTQuNVYyMEg4di0zLjVsNC00IDQgNHptLTQtNS00LTRWNGg4djMuNWwtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91cmdsYXNzRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAydjZoLjAxTDYgOC4wMSAxMCAxMmwtNCA0IC4wMS4wMUg2VjIyaDEydi01Ljk5aC0uMDFMMTggMTZsLTQtNCA0LTMuOTktLjAxLS4wMUgxOFYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIdG1sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy41IDlINXY2SDMuNXYtMi41aC0yVjE1SDBWOWgxLjV2MmgyVjl6bTE0IDBIMTNjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNXYtNC41aDFWMTRIMTZ2LTMuNTFoMVYxNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xek0xMSA5SDZ2MS41aDEuNzVWMTVoMS41di00LjVIMTFWOXptMTMgNnYtMS41aC0yLjVWOUgyMHY2aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIdHRwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC41IDExaC0yVjlIMXY2aDEuNXYtMi41aDJWMTVINlY5SDQuNXYyem0yLjUtLjVoMS41VjE1SDEwdi00LjVoMS41VjlIN3YxLjV6bTUuNSAwSDE0VjE1aDEuNXYtNC41SDE3VjloLTQuNXYxLjV6bTktMS41SDE4djZoMS41di0yaDJjLjggMCAxLjUtLjcgMS41LTEuNXYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIdHRwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek05IDZjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3YySDlWNnptOSAxNEg2VjEwaDEydjEwem0tNi0zYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltcG9ydGFudERldmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDExLjAxIDE4IDExYy0uNTUgMC0xIC40NS0xIDF2OWMwIC41NS40NSAxIDEgMWg1Yy41NSAwIDEtLjQ1IDEtMXYtOWMwLS41NS0uNDUtLjk5LTEtLjk5ek0yMyAyMGgtNXYtN2g1djd6TTIwIDJIMkMuODkgMiAwIDIuODkgMCA0djEyYTIgMiAwIDAgMCAyIDJoN3YySDd2Mmg4di0yaC0ydi0yaDJ2LTJIMlY0aDE4djVoMlY0YTIgMiAwIDAgMC0yLTJ6bS04LjAzIDdMMTEgNmwtLjk3IDNIN2wyLjQ3IDEuNzYtLjk0IDIuOTEgMi40Ny0xLjggMi40NyAxLjgtLjk0LTIuOTFMMTUgOWgtMy4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluZm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnYyaC0yem0wIDRoMnY2aC0yem0xLTlDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5wdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMy4wMUgzYy0xLjEgMC0yIC45LTIgMlY5aDJWNC45OWgxOHYxNC4wM0gzVjE1SDF2NC4wMWMwIDEuMS45IDEuOTggMiAxLjk4aDE4YzEuMSAwIDItLjg4IDItMS45OHYtMTRhMiAyIDAgMCAwLTItMnpNMTEgMTZsNC00LTQtNHYzSDF2MmgxMHYzek0yMSAzLjAxSDNjLTEuMSAwLTIgLjktMiAyVjloMlY0Ljk5aDE4djE0LjAzSDNWMTVIMXY0LjAxYzAgMS4xLjkgMS45OCAyIDEuOThoMThjMS4xIDAgMi0uODggMi0xLjk4di0xNGEyIDIgMCAwIDAtMi0yek0xMSAxNmw0LTQtNC00djNIMXYyaDEwdjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnN0YWxsRGVza3RvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE3SDRWNWg4VjNINGMtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDR2Mmg4di0yaDRjMS4xIDAgMi0uOSAyLTJ2LTNoLTJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgMTQgNS01LTEuNDEtMS40MUwxOCAxMC4xN1YzaC0ydjcuMTdsLTIuNTktMi41OEwxMiA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zdGFsbE1vYmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE4SDdWNmg3VjRIN1YzaDdWMS4wMUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTVoLTJ2MnptMCAzSDd2LTFoMTB2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMTQgNS01LTEuNDEtMS40MUwxOSAxMC4xN1YzaC0ydjcuMTdsLTIuNTktMi41OEwxMyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW50ZWdyYXRpb25JbnN0cnVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIuNzVcIixcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjMuNVwiLFwiclwiOlwiLjc1XCIsXCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTUgMTV2NGgxNFY1SDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0LjE3IDguODMgMTIgMTEgOS44MyA5LjU5IDguNDEgNiAxMmwzLjU5IDMuNTl6TTE0LjQxIDE1LjU5IDE4IDEybC0zLjU5LTMuNTlMMTMgOS44MyAxNS4xNyAxMiAxMyAxNC4xN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtLjE0IDAtLjI3LjAxLS40LjA0YTIuMDA4IDIuMDA4IDAgMCAwLTEuNDQgMS4xOWMtLjEuMjMtLjE2LjQ5LS4xNi43N3YxNGMwIC4yNy4wNi41NC4xNi43OHMuMjUuNDUuNDMuNjRjLjI3LjI3LjYyLjQ3IDEuMDEuNTUuMTMuMDIuMjYuMDMuNC4wM2gxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNy0uMjVjLjQxIDAgLjc1LjM0Ljc1Ljc1cy0uMzQuNzUtLjc1Ljc1LS43NS0uMzQtLjc1LS43NS4zNC0uNzUuNzUtLjc1ek0xOSAxNXY0SDVWNWgxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUludmVydENvbG9ycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNC44MVYxOWMtMy4zMSAwLTYtMi42My02LTUuODcgMC0xLjU2LjYyLTMuMDMgMS43NS00LjE0TDEyIDQuODFNMTIgMiA2LjM1IDcuNTZDNC45IDguOTkgNCAxMC45NiA0IDEzLjEzIDQgMTcuNDggNy41OCAyMSAxMiAyMXM4LTMuNTIgOC03Ljg3YzAtMi4xNy0uOS00LjE0LTIuMzUtNS41N0wxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSmF2YXNjcmlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0di0xaDEuNXYuNWgydi0xSDEzYy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MWgtMS41di0uNWgtMnYxSDE2Yy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFoLTNjLS41NSAwLTEtLjQ1LTEtMXpNOSA5djQuNUg3LjV2LTFINnYxYzAgLjgzLjY3IDEuNSAxLjUgMS41SDljLjgzIDAgMS41LS42NyAxLjUtMS41VjlIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUpvaW5GdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImVsbGlwc2VcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwicnhcIjpcIjNcIixcInJ5XCI6XCI1Ljc0XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxMmMwLS45Ny4yMy00LjE2IDMuMDMtNi41QzkuNzUgNS4xOSA4LjkgNSA4IDVjLTMuODYgMC03IDMuMTQtNyA3czMuMTQgNyA3IDdjLjkgMCAxLjc1LS4xOSAyLjUzLS41LTIuOC0yLjM0LTMuMDMtNS41My0zLjAzLTYuNXpNMTYgNWMtLjkgMC0xLjc1LjE5LTIuNTMuNSAyLjggMi4zNCAzLjAzIDUuNTMgMy4wMyA2LjUgMCAuOTctLjIzIDQuMTYtMy4wMyA2LjUuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUpvaW5Jbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjA0IDE2Ljg3Yy0uMzMuMDgtLjY4LjEzLTEuMDQuMTMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNWMuMzYgMCAuNzEuMDUgMS4wNC4xMy4zOS0uNTYuODgtMS4xMiAxLjQ5LTEuNjNDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtLjYxLS41MS0xLjEtMS4wNy0xLjQ5LTEuNjN6TTE2IDVjLS45IDAtMS43NS4xOS0yLjUzLjUuNjEuNTEgMS4xIDEuMDcgMS40OSAxLjYzLjMzLS4wOC42OC0uMTMgMS4wNC0uMTMgMi43NiAwIDUgMi4yNCA1IDVzLTIuMjQgNS01IDVjLS4zNiAwLS43MS0uMDUtMS4wNC0uMTMtLjM5LjU2LS44OCAxLjEyLTEuNDkgMS42My43OC4zMSAxLjYzLjUgMi41My41IDMuODYgMCA3LTMuMTQgNy03cy0zLjE0LTctNy03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSm9pbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiZWxsaXBzZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyeFwiOlwiM1wiLFwicnlcIjpcIjUuNzRcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDEyYzAtLjk3LjIzLTQuMTYgMy4wMy02LjVDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN2MuOSAwIDEuNzUtLjE5IDIuNTMtLjUtMi44LTIuMzQtMy4wMy01LjUzLTMuMDMtNi41ek0xNiA1Yy0uOSAwLTEuNzUuMTktMi41My41LjYxLjUxIDEuMSAxLjA3IDEuNDkgMS42My4zMy0uMDguNjgtLjEzIDEuMDQtLjEzIDIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1Yy0uMzYgMC0uNzEtLjA1LTEuMDQtLjEzLS4zOS41Ni0uODggMS4xMi0xLjQ5IDEuNjMuNzguMzEgMS42My41IDIuNTMuNSAzLjg2IDAgNy0zLjE0IDctN3MtMy4xNC03LTctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUpvaW5SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJlbGxpcHNlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJ4XCI6XCIzXCIsXCJyeVwiOlwiNS43NFwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEyYzAgLjk3LS4yMyA0LjE2LTMuMDMgNi41Ljc4LjMxIDEuNjMuNSAyLjUzLjUgMy44NiAwIDctMy4xNCA3LTdzLTMuMTQtNy03LTdjLS45IDAtMS43NS4xOS0yLjUzLjUgMi44IDIuMzQgMy4wMyA1LjUzIDMuMDMgNi41ek04IDE5Yy45IDAgMS43NS0uMTkgMi41My0uNS0uNjEtLjUxLTEuMS0xLjA3LTEuNDktMS42My0uMzMuMDgtLjY4LjEzLTEuMDQuMTMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNWMuMzYgMCAuNzEuMDUgMS4wNC4xMy4zOS0uNTYuODgtMS4xMiAxLjQ5LTEuNjNDOS43NSA1LjE5IDguOSA1IDggNWMtMy44NiAwLTcgMy4xNC03IDdzMy4xNCA3IDcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhYmVsSW1wb3J0YW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE4Ljk5aDExYy42NyAwIDEuMjctLjMyIDEuNjMtLjgzTDIxIDEybC00LjM3LTYuMTZDMTYuMjcgNS4zMyAxNS42NyA1IDE1IDVINGw1IDctNSA2Ljk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFiZWxPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDcgMy41NSA1LTEuNjMgMi4yOSAxLjQzIDEuNDNMMjIgMTJsLTQuMzctNi4xNkMxNy4yNyA1LjMzIDE2LjY3IDUgMTYgNWwtNy4zNy4wMSAyIDEuOTlIMTZ6TTIgNC4wM2wxLjU4IDEuNThDMy4yMiA1Ljk2IDMgNi40NiAzIDd2MTBjMCAxLjEuOSAxLjk5IDIgMS45OUwxNiAxOWMuMjggMCAuNTUtLjA3Ljc5LS4xOEwxOC45NyAyMWwxLjQxLTEuNDFMMy40MSAyLjYyIDIgNC4wM3pNMTQuOTcgMTdINVY3LjAzTDE0Ljk3IDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFiZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjYzIDUuODRDMTcuMjcgNS4zMyAxNi42NyA1IDE2IDVMNSA1LjAxQzMuOSA1LjAxIDMgNS45IDMgN3YxMGMwIDEuMS45IDEuOTkgMiAxLjk5TDE2IDE5Yy42NyAwIDEuMjctLjMzIDEuNjMtLjg0TDIyIDEybC00LjM3LTYuMTZ6TTE2IDE3SDVWN2gxMWwzLjU1IDVMMTYgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1YTE1LjY1IDE1LjY1IDAgMCAwLTEuMzgtMy41NkE4LjAzIDguMDMgMCAwIDEgMTguOTIgOHpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDJzLjA2IDEuMzQuMTQgMkg0LjI2em0uODIgMmgyLjk1Yy4zMiAxLjI1Ljc4IDIuNDUgMS4zOCAzLjU2QTcuOTg3IDcuOTg3IDAgMCAxIDUuMDggMTZ6bTIuOTUtOEg1LjA4YTcuOTg3IDcuOTg3IDAgMCAxIDQuMzMtMy41NkExNS42NSAxNS42NSAwIDAgMCA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMnMuMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMnMtLjA3IDEuMzQtLjE2IDJ6bS4yNSA1LjU2Yy42LTEuMTEgMS4wNi0yLjMxIDEuMzgtMy41NmgyLjk1YTguMDMgOC4wMyAwIDAgMS00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0ycy0uMDYtMS4zNC0uMTQtMmgzLjM4Yy4xNi42NC4yNiAxLjMxLjI2IDJzLS4xIDEuMzYtLjI2IDJoLTMuMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYXVuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5SDVWNWg3VjNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNMTQgM3YyaDMuNTlsLTkuODMgOS44MyAxLjQxIDEuNDFMMTkgNi40MVYxMGgyVjNoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMZWFkZXJib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDExVjNIOHY2SDJ2MTJoMjBWMTFoLTZ6bS02LTZoNHYxNGgtNFY1em0tNiA2aDR2OEg0di04em0xNiA4aC00di02aDR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpZ2h0YnVsYkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVoLTNjMCAuODMuNjcgMS41IDEuNSAxLjV6TTkgMTVoNnYxLjVIOXpNMTIgNWMtMi43NiAwLTUgMi4yNC01IDUgMCAxLjY0LjggMy4wOSAyLjAzIDRoNS45NUE0Ljk4NSA0Ljk4NSAwIDAgMCAxNyAxMGMwLTIuNzYtMi4yNC01LTUtNXptMi40MyA3LjVIOS41N0EzLjQ3MyAzLjQ3MyAwIDAgMSA4LjUgMTBjMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNWMwIC45NS0uMzkgMS44NC0xLjA3IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpZ2h0YnVsYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMjFjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTFIOXYxem0zLTE5QzguMTQgMiA1IDUuMTQgNSA5YzAgMi4zOCAxLjE5IDQuNDcgMyA1Ljc0VjE3YzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xdi0yLjI2YzEuODEtMS4yNyAzLTMuMzYgMy01Ljc0IDAtMy44Ni0zLjE0LTctNy03em0yLjg1IDExLjEtLjg1LjZWMTZoLTR2LTIuM2wtLjg1LS42QTQuOTk3IDQuOTk3IDAgMCAxIDcgOWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS42My0uOCAzLjE2LTIuMTUgNC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGluZVN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNmg1di0ySDN2MnptNi41IDBoNXYtMmgtNXYyem02LjUgMGg1di0yaC01djJ6TTMgMjBoMnYtMkgzdjJ6bTQgMGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpNMyAxMmg4di0ySDN2MnptMTAgMGg4di0yaC04djJ6TTMgNHY0aDE4VjRIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpbmVXZWlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3aDE4di0ySDN2MnptMCAzaDE4di0xSDN2MXptMC03aDE4di0zSDN2M3ptMC05djRoMThWNEgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDJ2LTJIM3Yyem0wIDRoMnYtMkgzdjJ6bTAtOGgyVjdIM3Yyem00IDRoMTR2LTJIN3Yyem0wIDRoMTR2LTJIN3Yyek03IDd2MmgxNFY3SDd6bS00IDZoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTQgNGgxNHYtMkg3djJ6bTAgNGgxNHYtMkg3djJ6TTcgN3YyaDE0VjdIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2tDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAyMFYxMGgxMnYxYy43IDAgMS4zNy4xIDIgLjI5VjEwYzAtMS4xLS45LTItMi0yaC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoNi4yNmMtLjQyLS42LS43NS0xLjI4LS45Ny0ySDZ6TTkgNmMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzdjJIOVY2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxM2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTEuNjUgNy4zNUwxNy41IDE4LjJWMTVoMXYyLjc5bDEuODUgMS44NS0uNy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2tPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNmgyYzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDN2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yem0wIDEySDZWMTBoMTJ2MTB6bS02LTNjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9ja1BlcnNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMjBWMTBoMTJ2MWMuNyAwIDEuMzcuMSAyIC4yOVYxMGMwLTEuMS0uOS0yLTItMmgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDYuMjZjLS40Mi0uNi0uNzUtMS4yOC0uOTctMkg2ek05IDZjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3YySDlWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDJjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTguODMgMTggMTggMThzLTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXptMCA2Yy0xLjAzIDAtMS45NC0uNTItMi40OC0xLjMyLjczLS40MiAxLjU3LS42OCAyLjQ4LS42OHMxLjc1LjI2IDIuNDguNjhjLS41NC44LTEuNDUgMS4zMi0yLjQ4IDEuMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NrUmVzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYTkgOSAwIDAgMC05IDljMCAuMDYuMDEuMTIuMDEuMTlsLTEuODQtMS44NC0xLjQxIDEuNDFMNSAxNmw0LjI0LTQuMjQtMS40MS0xLjQxLTEuODIgMS44MmMwLS4wNi0uMDEtLjExLS4wMS0uMTcgMC0zLjg2IDMuMTQtNyA3LTdzNyAzLjE0IDcgNy0zLjE0IDctNyA3Yy0xLjkgMC0zLjYyLS43Ni00Ljg4LTEuOTlMNi43IDE4LjQyQTguOTgyIDguOTgyIDAgMCAwIDEzIDIxYTkgOSAwIDAgMCAwLTE4em0yIDh2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek05IDZjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3YySDlWNnptOSAxNEg2VjEwaDEydjEwem0tNi0zYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNyA5LjYgOC40bDIuNiAyLjZIMnYyaDEwLjJsLTIuNiAyLjZMMTEgMTdsNS01LTUtNXptOSAxMmgtOHYyaDhjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMmgtOHYyaDh2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2dvdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDgtMS40MSAxLjQxTDE3LjE3IDExSDl2Mmg4LjE3bC0xLjU4IDEuNThMMTcgMTZsNC00LTQtNHpNNSA1aDdWM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDd2LTJINVY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG95YWx0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTEuNTgtOS05QzEyLjA1IDIuMjIgMTEuNTUgMiAxMSAySDRjLTEuMSAwLTIgLjktMiAydjdjMCAuNTUuMjIgMS4wNS41OSAxLjQybDkgOWMuMzYuMzYuODYuNTggMS40MS41OHMxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MXMtLjIzLTEuMDYtLjU5LTEuNDJ6TTEzIDIwLjAxIDQgMTFWNGg3di0uMDFsOSA5LTcgNy4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjkgMTIuNTVjMCAuNTcuMjMgMS4wNy42IDEuNDVsMy41IDMuNSAzLjUtMy41YTIuMDUzIDIuMDUzIDAgMCAwLTIuOS0yLjlsLS42LjYtLjYtLjU5Yy0uMzctLjM4LS44OS0uNjEtMS40NS0uNjEtMS4xMyAwLTIuMDUuOTItMi4wNSAyLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFuYWdlQWNjb3VudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTh2LS42NWMwLS4zNC4xNi0uNjYuNDEtLjgxQzYuMSAxNS41MyA4LjAzIDE1IDEwIDE1Yy4wMyAwIC4wNSAwIC4wOC4wMS4xLS43LjMtMS4zNy41OS0xLjk4LS4yMi0uMDItLjQ0LS4wMy0uNjctLjAzLTIuNDIgMC00LjY4LjY3LTYuNjEgMS44Mi0uODguNTItMS4zOSAxLjUtMS4zOSAyLjUzVjIwaDkuMjZjLS40Mi0uNi0uNzUtMS4yOC0uOTctMkg0ek0xMCAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTIwLjc1IDE2YzAtLjIyLS4wMy0uNDItLjA2LS42M2wxLjE0LTEuMDEtMS0xLjczLTEuNDUuNDljLS4zMi0uMjctLjY4LS40OC0xLjA4LS42M0wxOCAxMWgtMmwtLjMgMS40OWMtLjQuMTUtLjc2LjM2LTEuMDguNjNsLTEuNDUtLjQ5LTEgMS43MyAxLjE0IDEuMDFjLS4wMy4yMS0uMDYuNDEtLjA2LjYzcy4wMy40Mi4wNi42M2wtMS4xNCAxLjAxIDEgMS43MyAxLjQ1LS40OWMuMzIuMjcuNjguNDggMS4wOC42M0wxNiAyMWgybC4zLTEuNDljLjQtLjE1Ljc2LS4zNiAxLjA4LS42M2wxLjQ1LjQ5IDEtMS43My0xLjE0LTEuMDFjLjAzLS4yMS4wNi0uNDEuMDYtLjYzek0xNyAxOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYW5hZ2VIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuNjkgMTguMzcgMS4xNC0xLTEtMS43My0xLjQ1LjQ5Yy0uMzItLjI3LS42OC0uNDgtMS4wOC0uNjNMMjAgMTRoLTJsLS4zIDEuNDljLS40LjE1LS43Ni4zNi0xLjA4LjYzbC0xLjQ1LS40OS0xIDEuNzMgMS4xNCAxYy0uMDguNS0uMDguNzYgMCAxLjI2bC0xLjE0IDEgMSAxLjczIDEuNDUtLjQ5Yy4zMi4yNy42OC40OCAxLjA4LjYzTDE4IDI0aDJsLjMtMS40OWMuNC0uMTUuNzYtLjM2IDEuMDgtLjYzbDEuNDUuNDkgMS0xLjczLTEuMTQtMWMuMDgtLjUxLjA4LS43NyAwLTEuMjd6TTE5IDIxYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNMTEgN3Y1LjQxbDIuMzYgMi4zNiAxLjA0LTEuNzktMS40LTEuMzlWN2gtMnptMTAgNWE5IDkgMCAwIDAtOS05QzkuMTcgMyA2LjY1IDQuMzIgNSA2LjM2VjRIM3Y2aDZWOEg2LjI2QTcuMDEgNy4wMSAwIDAgMSAxMiA1YzMuODYgMCA3IDMuMTQgNyA3aDJ6bS0xMC4xNCA2LjkxYy0yLjk5LS40OS01LjM1LTIuOS01Ljc4LTUuOTFIMy4wNmMuNSA0LjUgNC4zMSA4IDguOTQgOGguMDdsLTEuMjEtMi4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hcmtBc1VucmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMjMgN2gyLjZjLS4wNi0uNDctLjM2LS45NC0uNzktMS4xN0wxMC41IDIgMi44IDUuODNjLS40OC4yNi0uOC44MS0uOCAxLjM0VjE1YzAgMS4xLjkgMiAyIDJWNy40TDEwLjUgNGw1LjczIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhIN2MtMS4xIDAtMiAuOS0yIDJ2OWMwIDEuMS45IDIgMiAyaDEzYzEuMSAwIDItLjkgMi0ydi05YzAtMS4xLS45LTItMi0yem0wIDExSDd2LTdsNi41IDMuMzNMMjAgMTJ2N3ptLTYuNS01LjY3TDcgMTBoMTNsLTYuNSAzLjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya3VucmVhZE1haWxib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2SDEwdjJoMTB2MTJINFY4aDJ2NGgyVjRoNlYwSDZ2Nkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXhpbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDE4djJIM1YzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVkaWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggMTYgNC00LTQtNHYzaC01LjA2QTguOTc0IDguOTc0IDAgMCAwIDggMy45NSAzLjAwNSAzLjAwNSAwIDAgMCA1IDFDMy4zNCAxIDIgMi4zNCAyIDRzMS4zNCAzIDMgM2MuOTUgMCAxLjc4LS40NSAyLjMzLTEuMTRDOS4yMyA2LjkgMTAuNiA4Ljc3IDEwLjkyIDExaC0zLjFDNy40IDkuODQgNi4zIDkgNSA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzYzEuMyAwIDIuNC0uODQgMi44Mi0yaDMuMWMtLjMyIDIuMjMtMS42OSA0LjEtMy41OCA1LjE0QzYuNzggMTcuNDUgNS45NSAxNyA1IDE3Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzYTIuOTkgMi45OSAwIDAgMCAyLjk5LTIuOTVBOC45NzQgOC45NzQgMCAwIDAgMTIuOTMgMTNIMTh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pbmltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE5aDEydjJINnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVsVHJhaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDEzLjVjMCAyLTIuNSAzLjUtMi41IDVoLTJjMC0xLjUtMi41LTMtMi41LTUgMC0xLjkzIDEuNTctMy41IDMuNS0zLjVzMy41IDEuNTcgMy41IDMuNXptLTIuNSA2aC0yVjIxaDJ2LTEuNXptNi02LjVjMCAxLjY4LS41OSAzLjIxLTEuNTggNC40MmwxLjQyIDEuNDJhOC45NzggOC45NzggMCAwIDAtMS0xMi42OGwtMS40MiAxLjQyQTYuOTkzIDYuOTkzIDAgMCAxIDE5IDEzem0tMy04LTQtNHYzYTkgOSAwIDAgMC05IDljMCAyLjIzLjgyIDQuMjcgMi4xNiA1Ljg0bDEuNDItMS40MkE2LjkzOCA2LjkzOCAwIDAgMSA1IDEzYzAtMy44NiAzLjE0LTcgNy03djNsNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya1BpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNC42NyAzLjQxIDYuMDkgMiA3LjVsOC41IDguNUg0djJoMTZ2LTJoLTYuNWw1LjE1LTUuMTVBMi41IDIuNSAwIDEgMCAxOS41IDYgMi41IDIuNSAwIDAgMCAxNyA4LjVjMCAuMzUuMDcuNjcuMi45N2wtNS4yIDUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ld0xhYmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgMTItNC4zNyA2LjE2Yy0uMzcuNTItLjk4Ljg0LTEuNjMuODRoLTN2LTJoM2wzLjU1LTVMMTUgN0g1djNIM1Y3YzAtMS4xLjktMiAyLTJoMTBjLjY1IDAgMS4yNi4zMSAxLjYzLjg0TDIxIDEyem0tMTEgM0g3di0zSDV2M0gydjJoM3YzaDJ2LTNoM3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5leHRQbGFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljk3IDExLjAzQzE0Ljg3IDkuNzkgMTMuMjggOSAxMS41IDljLTIuODIgMC01LjE4IDEuOTUtNS44MiA0LjU2bC45Ni4zMkM3LjE1IDExLjY2IDkuMTMgMTAgMTEuNSAxMGMxLjUxIDAgMi44NS42OCAzLjc2IDEuNzRMMTMgMTRoNVY5bC0yLjAzIDIuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOaWdodGxpZ2h0Um91bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDIyYzEuMDUgMCAyLjA1LS4xNiAzLS40Ni00LjA2LTEuMjctNy01LjA2LTctOS41NHMyLjk0LTguMjcgNy05LjU0Yy0uOTUtLjMtMS45NS0uNDYtMy0uNDYtNS41MiAwLTEwIDQuNDgtMTAgMTBzNC40OCAxMCAxMCAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vQWNjb3VudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS4xOCAxMC45NGMuMi0uNDQuMzItLjkyLjMyLTEuNDRDMTUuNSA3LjU3IDEzLjkzIDYgMTIgNmMtLjUyIDAtMSAuMTItMS40NC4zMmw0LjYyIDQuNjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC0xLjg1LjYzLTMuNTUgMS42OS00LjlsMi44NiAyLjg2YTMuNDcgMy40NyAwIDAgMCAyLjk5IDIuOTlsMi4yIDIuMmMtLjU3LS4xLTEuMTUtLjE1LTEuNzQtLjE1LTIuMzIgMC00LjQ1LjgtNi4xNCAyLjEyQTcuOTU3IDcuOTU3IDAgMCAxIDQgMTJ6bTggOGMtMS43NCAwLTMuMzQtLjU2LTQuNjUtMS41QzguNjYgMTcuNTYgMTAuMjYgMTcgMTIgMTdzMy4zNC41NiA0LjY1IDEuNWMtMS4zMS45NC0yLjkxIDEuNS00LjY1IDEuNXptNi4zMS0zLjFMNy4xIDUuNjlBNy45MDIgNy45MDIgMCAwIDEgMTIgNGM0LjQyIDAgOCAzLjU4IDggOCAwIDEuODUtLjYzIDMuNTQtMS42OSA0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb2lzZUF3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTVoLTJhMS4wMDMgMS4wMDMgMCAwIDEtMS45NS4zMmMtLjE1LS40NC0uNC0xLjA4LS45My0xLjYxbC0xLjM2LTEuMzZDOS4yOCAxMS44NyA5IDExLjE5IDkgMTAuNWEyLjUgMi41IDAgMCAxIDQuOTUtLjVoMi4wMmMtLjI1LTIuMjUtMi4xNi00LTQuNDctNEM5LjAyIDYgNyA4LjAyIDcgMTAuNWMwIDEuMjIuNDkgMi40MSAxLjM1IDMuMjdsMS4zNiAxLjM2Yy4xNy4xNy4zMS40NC40NC44MkEzLjAxMyAzLjAxMyAwIDAgMCAxMyAxOGMxLjY1IDAgMy0xLjM1IDMtM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiMTIuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuNiA2LjU4IDEuNTggMS4yNmMuMzUtLjU3Ljc3LTEuMSAxLjI0LTEuNTdMNC44NSA1LjAyYy0uNDcuNDctLjg4IDEtMS4yNSAxLjU2ek05LjQ2IDQuNDJsLS44Ny0xLjgxYy0uNjMuMjMtMS4yNC41Mi0xLjguODdsLjg3IDEuODFjLjU2LS4zNiAxLjE2LS42NSAxLjgtLjg3ek00LjQ5IDkuMjZsLTEuOTYtLjQ1Yy0uMjEuNjMtLjM2IDEuMjgtLjQ0IDEuOTVsMS45Ni40NWE3LjkgNy45IDAgMCAxIC40NC0xLjk1ek0yMC40IDYuNThhOS40IDkuNCAwIDAgMC0xLjI1LTEuNTZsLTEuNTggMS4yNmMuNDguNDcuODkuOTkgMS4yNCAxLjU3bDEuNTktMS4yN3pNNC4wNCAxMi43OWwtMS45Ni40NWMuMDguNjcuMjMgMS4zMy40NCAxLjk1bDEuOTctLjQ1Yy0uMjItLjYyLS4zOC0xLjI3LS40NS0xLjk1ek0xNy4yMSAzLjQ4Yy0uNTctLjM1LTEuMTctLjY0LTEuOC0uODdsLS44NyAxLjgxYy42NC4yMiAxLjI0LjUxIDEuOC44N2wuODctMS44MXpNMTMgNC4wN1YyLjA1Yy0uMzMtLjAzLS42Ni0uMDUtMS0uMDVzLS42Ny4wMi0xIC4wNXYyLjAyYy4zMy0uMDQuNjYtLjA3IDEtLjA3cy42Ny4wMyAxIC4wN3pNMTEgMTkuOTN2Mi4wMmMuMzMuMDMuNjYuMDUgMSAuMDVzLjY3LS4wMiAxLS4wNXYtMi4wMmMtLjMzLjA0LS42Ni4wNy0xIC4wN3MtLjY3LS4wMy0xLS4wN3pNMTkuNTEgMTQuNzRsMS45Ny40NWMuMjEtLjYzLjM2LTEuMjguNDQtMS45NWwtMS45Ni0uNDVjLS4wNy42OC0uMjMgMS4zMy0uNDUgMS45NXpNMTkuOTYgMTEuMjFsMS45Ni0uNDVhOS42OSA5LjY5IDAgMCAwLS40NC0xLjk1bC0xLjk3LjQ1Yy4yMi42Mi4zOCAxLjI3LjQ1IDEuOTV6TTE3LjU4IDE3LjczbDEuNTggMS4yNmMuNDctLjQ4Ljg4LTEgMS4yNS0xLjU2bC0xLjU4LTEuMjZhOS40IDkuNCAwIDAgMS0xLjI1IDEuNTZ6TTYuNzkgMjAuNTJjLjU3LjM1IDEuMTcuNjQgMS44Ljg3bC44Ny0xLjgxYy0uNjQtLjIyLTEuMjQtLjUxLTEuOC0uODdsLS44NyAxLjgxek0xNC41NCAxOS41OGwuODcgMS44MWMuNjMtLjIzIDEuMjQtLjUyIDEuOC0uODdsLS44Ny0xLjgxYy0uNTYuMzYtMS4xNi42NS0xLjguODd6TTMuNiAxNy40MmE5LjQgOS40IDAgMCAwIDEuMjUgMS41NmwxLjU4LTEuMjZhNy44NyA3Ljg3IDAgMCAxLTEuMjQtMS41N0wzLjYgMTcuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb2lzZUNvbnRyb2xPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzEuNDQgMCAyLjc5LjM4IDMuOTUgMS4wNUwxNy40IDMuNkMxNS44NSAyLjU5IDEzLjk5IDIgMTIgMnMtMy44NS41OS01LjQxIDEuNTlsMS40NSAxLjQ1QTguMDM0IDguMDM0IDAgMCAxIDEyIDR6TTIwIDEyYzAgMS40NC0uMzggMi43OS0xLjA1IDMuOTVsMS40NSAxLjQ1YzEuMDEtMS41NSAxLjYtMy40MSAxLjYtNS40cy0uNTktMy44NS0xLjU5LTUuNDFsLTEuNDUgMS40NUE4LjAzNCA4LjAzNCAwIDAgMSAyMCAxMnpNMTIgMjBjLTEuNDQgMC0yLjc5LS4zOC0zLjk1LTEuMDVMNi42IDIwLjRDOC4xNSAyMS40MSAxMC4wMSAyMiAxMiAyMnMzLjg1LS41OSA1LjQxLTEuNTlsLTEuNDUtMS40NUE4LjAzNCA4LjAzNCAwIDAgMSAxMiAyMHpNNCAxMmMwLTEuNDQuMzgtMi43OSAxLjA1LTMuOTVMMy41OSA2LjU5QzIuNTkgOC4xNSAyIDEwLjAxIDIgMTJzLjU5IDMuODUgMS41OSA1LjQxbDEuNDUtMS40NUE4LjAzNCA4LjAzNCAwIDAgMSA0IDEyek0xMS41IDZDOS4wMiA2IDcgOC4wMiA3IDEwLjVjMCAxLjIyLjQ5IDIuNDEgMS4zNSAzLjI3bDEuMzYgMS4zNmMuMTcuMTcuMzEuNDQuNDQuODJBMy4wMTMgMy4wMTMgMCAwIDAgMTMgMThjMS42NSAwIDMtMS4zNSAzLTNoLTJhMS4wMDMgMS4wMDMgMCAwIDEtMS45NS4zMmMtLjE1LS40NC0uNC0xLjA4LS45My0xLjYxbC0xLjM2LTEuMzZDOS4yOCAxMS44NyA5IDExLjE5IDkgMTAuNWEyLjUgMi41IDAgMCAxIDQuOTUtLjVoMi4wMmMtLjI1LTIuMjUtMi4xNi00LTQuNDctNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiMTIuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RBY2Nlc3NpYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNGMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem05IDl2LTJjLTEuNTQuMDItMy4wOS0uNzUtNC4wNy0xLjgzbC0xLjI5LTEuNDNjLS4yNC0uMjQtLjQ0LS4zNi0uNjMtLjQ2LS4zNi0uMTktLjcyLS4zLTEuMi0uMjYtLjQ5LjA0LS45MS4yNy0xLjIzLjYxTDE0IDExLjA1YzEuMjkgMS4wNyAzLjI1IDEuOTQgNSAxLjk1em0tOSA3Yy0xLjY2IDAtMy0xLjM0LTMtMyAwLTEuMzEuODQtMi40MSAyLTIuODNWMTIuMWE1IDUgMCAxIDAgNS45IDUuOWgtMi4wN2MtLjQxIDEuMTYtMS41MiAyLTIuODMgMnpNMi44MSAyLjgxIDEuMzkgNC4yMiAxMCAxMi44M1YxNWMwIDEuMS45IDIgMiAyaDIuMTdsNS42MSA1LjYxIDEuNDEtMS40MUwyLjgxIDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RTdGFydGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSA2SDl2OGgyVjh6bTYgNC01LTR2OGw1LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RlQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMWgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zem0xLTlINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3djVoNXYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9mZmxpbmVCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMi4wMmMtNS41MSAwLTkuOTggNC40Ny05Ljk4IDkuOThzNC40NyA5Ljk4IDkuOTggOS45OCA5Ljk4LTQuNDcgOS45OC05Ljk4UzE3LjUxIDIuMDIgMTIgMi4wMnptMCAxNy45NmMtNC40IDAtNy45OC0zLjU4LTcuOTgtNy45OFM3LjYgNC4wMiAxMiA0LjAyIDE5Ljk4IDcuNiAxOS45OCAxMiAxNi40IDE5Ljk4IDEyIDE5Ljk4ek0xMi43NSA1bC00LjUgOC41aDMuMTRWMTlsNC4zNi04LjVoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPZmZsaW5lUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjUgMiAyIDYuNSAyIDEyczQuNSAxMCAxMCAxMCAxMC00LjUgMTAtMTBTMTcuNSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0tNS01aDEwdjJIN3ptMy4zLTMuOEw4LjQgOS4zIDcgMTAuN2wzLjMgMy4zTDE3IDcuM2wtMS40LTEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9uRGV2aWNlVHJhaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxNmgydjFoLTJ6TTEyIDExYy0xLjEgMC0yIC45LTIgMiAwIC43NC40IDEuMzggMSAxLjcydi43OGgydi0uNzhjLjYtLjM1IDEtLjk4IDEtMS43MiAwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMS4wMSA2IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTggMjFINnYtMWgxMnYxem0wLTNINlY2aDEydjEyem0wLTE0SDZWM2gxMnYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4wMSAxNS45NWMuNjItLjgzLjk5LTEuODQuOTktMi45NXMtLjM3LTIuMTItLjk5LTIuOTVsLTEuMDcgMS4wN2MuMzUuNTQuNTYgMS4xOS41NiAxLjg4cy0uMjEgMS4zNC0uNTYgMS44OGwxLjA3IDEuMDd6TTkuMDYgMTQuODhjLS4zNS0uNTQtLjU2LTEuMTktLjU2LTEuODggMC0xLjkzIDEuNTctMy41IDMuNS0zLjV2MS4yNWwyLjI1LTItMi4yNS0yVjhjLTIuNzYgMC01IDIuMjQtNSA1IDAgMS4xMS4zNyAyLjEyLjk5IDIuOTVsMS4wNy0xLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT25saW5lUHJlZGljdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTEuNWMwIDItMi41IDMuNS0yLjUgNWgtMmMwLTEuNS0yLjUtMy0yLjUtNUM4LjUgOS41NyAxMC4wNyA4IDEyIDhzMy41IDEuNTcgMy41IDMuNXptLTIuNSA2aC0yVjE5aDJ2LTEuNXptOS01LjVjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDdsLTEuMDYgMS4wNkE4LjQ4MSA4LjQ4MSAwIDAgMSAyMC41IDEyYzAgMi4zNC0uOTUgNC40Ny0yLjQ5IDYuMDFsMS4wNiAxLjA2QTkuOTY5IDkuOTY5IDAgMCAwIDIyIDEyek0zLjUgMTJjMC0yLjM0Ljk1LTQuNDcgMi40OS02LjAxTDQuOTMgNC45M0E5Ljk2OSA5Ljk2OSAwIDAgMCAyIDEyYzAgMi43NiAxLjEyIDUuMjYgMi45MyA3LjA3bDEuMDYtMS4wNkE4LjQ4MSA4LjQ4MSAwIDAgMSAzLjUgMTJ6bTE0IDBjMCAxLjUyLS42MiAyLjg5LTEuNjEgMy44OWwxLjA2IDEuMDZBNi45NzYgNi45NzYgMCAwIDAgMTkgMTJjMC0xLjkzLS43OC0zLjY4LTIuMDUtNC45NWwtMS4wNiAxLjA2Yy45OSAxIDEuNjEgMi4zNyAxLjYxIDMuODl6TTcuMDUgMTYuOTVsMS4wNi0xLjA2Yy0xLTEtMS42MS0yLjM3LTEuNjEtMy44OXMuNjItMi44OSAxLjYxLTMuODlMNy4wNSA3LjA1QTYuOTc2IDYuOTc2IDAgMCAwIDUgMTJjMCAxLjkzLjc4IDMuNjggMi4wNSA0Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3BhY2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMEgwdjI0aDI0VjB6bTAgMEgwdjI0aDI0VjB6TTAgMjRoMjRWMEgwdjI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42NiA4IDEyIDIuMzUgNi4zNCA4QTguMDIgOC4wMiAwIDAgMCA0IDEzLjY0YzAgMiAuNzggNC4xMSAyLjM0IDUuNjdhNy45OSA3Ljk5IDAgMCAwIDExLjMyIDBjMS41Ni0xLjU2IDIuMzQtMy42NyAyLjM0LTUuNjdTMTkuMjIgOS41NiAxNy42NiA4ek02IDE0Yy4wMS0yIC42Mi0zLjI3IDEuNzYtNC40TDEyIDUuMjdsNC4yNCA0LjM4QzE3LjM4IDEwLjc3IDE3Ljk5IDEyIDE4IDE0SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPcGVuSW5Ccm93c2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDR2LTJINVY4aDE0djEwaC00djJoNGMxLjEgMCAyLS45IDItMlY2YTIgMiAwIDAgMC0yLTJ6bS03IDYtNCA0aDN2Nmgydi02aDNsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9wZW5JbkZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMVYzaC04bDMuMjkgMy4yOS0xMCAxMEwzIDEzdjhoOGwtMy4yOS0zLjI5IDEwLTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3BlbkluTmV3T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNzkgNS44IDE0IDNoN3Y3bC0yLjc5LTIuOC00LjA5IDQuMDktMS40MS0xLjQxIDQuMDgtNC4wOHpNMTkgMTJ2NC4xN2wyIDJWMTJoLTJ6bS43OCAxMC42MUwxOC4xNyAyMUg1YTIgMiAwIDAgMS0yLTJWNS44M0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTE2LjE3IDE5bC00Ljg4LTQuODgtMS41OSAxLjU5LTEuNDEtMS40MSAxLjU5LTEuNTlMNSA3LjgzVjE5aDExLjE3ek03LjgzIDVIMTJWM0g1LjgzbDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9wZW5Jbk5ldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9wZW5XaXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMi01LTV2M2gtM3Y0aDN2M2w1LTV6bS05IDNoLTR2M0g3bDUgNSA1LTVoLTN2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPdXRib25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xLjg4IDkuNTRMOC45MiAxNi41bC0xLjQxLTEuNDEgNC45Ni00Ljk2TDEwLjM0IDhsNS42NS4wMS4wMSA1LjY1LTIuMTItMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dGJvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xLjg4IDkuNTRMOC45MiAxNi41bC0xLjQxLTEuNDEgNC45Ni00Ljk2TDEwLjM0IDhsNS42NS4wMS4wMSA1LjY1LTIuMTItMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dGJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDkuODNWMTRoMlY5LjgzbDEuNTkgMS41OEwxNiAxMGwtNC00LTQgNCAxLjQxIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDV2LTNoMy4wMmMuOTEgMS4yMSAyLjM1IDIgMy45OCAyczMuMDYtLjc5IDMuOTgtMkgxOXYzem0wLTVoLTQuMThjLS40MSAxLjE2LTEuNTEgMi0yLjgyIDJzLTIuNC0uODQtMi44Mi0ySDVWNWgxNHY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT3V0bGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiA5VjhjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMXMxLS40NSAxLTF6bTYgMFY4YzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xem0tMiA1YzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYyaDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPdXRwdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNyA1LTUtNS01LTEuNDEgMS40MUwxOC4xNyAxMUg5djJoOS4xN2wtMi41OCAyLjU5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoMTR2MmgyVjVhMiAyIDAgMCAwLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhZ2V2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS40OSAxNmMuODggMCAxLjctLjI2IDIuMzktLjdsMi40NCAyLjQ0IDEuNDItMS40Mi0yLjQ0LTIuNDNjLjQ0LS43LjctMS41MS43LTIuMzlDMTYgOS4wMSAxMy45OSA3IDExLjUgN1M3IDkuMDEgNyAxMS41IDkuMDEgMTYgMTEuNDkgMTZ6bS4wMS03YTIuNSAyLjUgMCAwIDEgMCA1IDIuNSAyLjUgMCAwIDEgMC01ek0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bS44OS04LjljLTEuNzgtLjU5LTIuNjQtLjk2LTIuNjQtMS45IDAtMS4wMiAxLjExLTEuMzkgMS44MS0xLjM5IDEuMzEgMCAxLjc5Ljk5IDEuOSAxLjM0bDEuNTgtLjY3Yy0uMTUtLjQ0LS44Mi0xLjkxLTIuNjYtMi4yM1Y1aC0xLjc1djEuMjZjLTIuNi41Ni0yLjYyIDIuODUtMi42MiAyLjk2IDAgMi4yNyAyLjI1IDIuOTEgMy4zNSAzLjMxIDEuNTguNTYgMi4yOCAxLjA3IDIuMjggMi4wMyAwIDEuMTMtMS4wNSAxLjYxLTEuOTggMS42MS0xLjgyIDAtMi4zNC0xLjg3LTIuNC0yLjA5bC0xLjY2LjY3Yy42MyAyLjE5IDIuMjggMi43OCAzLjAyIDIuOTZWMTloMS43NXYtMS4yNGMuNTItLjA5IDMuMDItLjU5IDMuMDItMy4yMi4wMS0xLjM5LS42LTIuNjEtMy0zLjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFuVG9vbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4Ljg5IDExLjc3LTMuOC0xLjY3Yy0uMTMtLjA2LS4yOC0uMS0uNDQtLjFIMTRWNS41YTIuNSAyLjUgMCAwIDAtNSAwdjguMTVsLTEuODctLjRjLS4xOS0uMDMtMS4wMi0uMTUtMS43My41Nkw0IDE1LjIybDUuMTIgNS4xOWMuMzcuMzguODguNTkgMS40MS41OWg2LjU1Yy45OCAwIDEuODEtLjcgMS45Ny0xLjY3bC45Mi01LjQ0YTIgMiAwIDAgMC0xLjA4LTIuMTJ6TTE3LjA4IDE5aC02LjU1bC0zLjctMy43OCA0LjE3Ljg5VjUuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY2LjE4aDEuNzZMMTggMTMuNTYgMTcuMDggMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5Ub29sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMjRoLTYuNTVjLTEuMDggMC0yLjE0LS40NS0yLjg5LTEuMjNsLTcuMy03LjYxIDIuMDctMS44M2MuNjItLjU1IDEuNTMtLjY2IDIuMjYtLjI3TDggMTQuMzRWNC43OWEyLjUgMi41IDAgMCAxIDMuMDEtMi40NUMxMS4xIDEuMDQgMTIuMTguMDEgMTMuNS4wMWMuODYgMCAxLjYxLjQzIDIuMDYgMS4wOS4yOS0uMTIuNjEtLjE4Ljk0LS4xOGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2LjI4YTIuNSAyLjUgMCAwIDEgMyAyLjQ1VjIwYzAgMi4yMS0xLjc5IDQtNCA0ek00LjE0IDE1LjI4bDUuODYgNi4xYy4zOC4zOS45LjYyIDEuNDQuNjJIMThjMS4xIDAgMi0uOSAyLTJWNi4xNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjVWMTJoLTJWMy40MmMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjVWMTJoLTJWMi41MWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjVWMTJoLTJWNC43OWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIzLS41LjV2MTIuODdsLTUuMzUtMi44My0uNTEuNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXltZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0di02aDE2djZ6bTAtMTBINFY2aDE2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZW5kaW5nQWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDE2LjUgMTcuMlYxNGgxdjIuNzlsMS44NSAxLjg1LS43Ljcxek0xOCAzaC0zLjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNWMwIDEuMS45IDIgMiAyaDYuMTFhNi43NDMgNi43NDMgMCAwIDEtMS40Mi0ySDZWNWgydjNoOFY1aDJ2NS4wOGMuNzEuMSAxLjM4LjMxIDIgLjZWNWMwLTEuMS0uOS0yLTItMnptLTYgMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVuZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDRDNS41NyA0IDQgNS41NyA0IDcuNVM1LjU3IDExIDcuNSAxMSAxMSA5LjQzIDExIDcuNSA5LjQzIDQgNy41IDR6bTAgNUM2LjY3IDkgNiA4LjMzIDYgNy41UzYuNjcgNiA3LjUgNiA5IDYuNjcgOSA3LjUgOC4zMyA5IDcuNSA5em05IDRjLTEuOTMgMC0zLjUgMS41Ny0zLjUgMy41czEuNTcgMy41IDMuNSAzLjUgMy41LTEuNTcgMy41LTMuNS0xLjU3LTMuNS0zLjUtMy41em0wIDVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek01LjQxIDIwIDQgMTguNTkgMTguNTkgNCAyMCA1LjQxIDUuNDEgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtQ2FtZXJhTWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJzMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptOC0xaC0zLjE3bC0xLjg2LTJIOC45Nkw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC03di0xLjA5YzIuODMtLjQ4IDUtMi45NCA1LTUuOTFoLTJjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRINmMwIDIuOTcgMi4xNyA1LjQzIDUgNS45MVYxOUg0VjdoNC4yMWwuNTktLjY1TDEwLjA0IDVoNC4yNGwxLjI0IDEuMzUuNTkuNjVIMjB2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtQ29udGFjdENhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC44NCA0LjIyYy0uMDUtLjEyLS4xMS0uMjMtLjE4LS4zNC0uMTQtLjIxLS4zMy0uNC0uNTQtLjU0LS4xMS0uMDctLjIyLS4xMy0uMzQtLjE4LS4yNC0uMS0uNS0uMTYtLjc4LS4xNmgtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0uNDIgMC0uOC4xMy0xLjEyLjM0LS4yMS4xNC0uNC4zMy0uNTQuNTQtLjA3LjExLS4xMy4yMi0uMTguMzQtLjEuMjQtLjE2LjUtLjE2Ljc4djE0YTIgMiAwIDAgMCAyIDJoMTRjLjI4IDAgLjU0LS4wNi43OC0uMTYuMTItLjA1LjIzLS4xMS4zNC0uMTguMjEtLjE0LjQtLjMzLjU0LS41NC4yMS0uMzIuMzQtLjcxLjM0LTEuMTJWNWMwLS4yOC0uMDYtLjU0LS4xNi0uNzh6TTUgMTlWNWgxNHYxNEg1em03LTYuMTJjLTIuMDMgMC02IDEuMDgtNiAzLjU4VjE4aDEydi0xLjUzYzAtMi41MS0zLjk3LTMuNTktNi0zLjU5ek04LjMxIDE2Yy42OS0uNTYgMi4zOC0xLjEyIDMuNjktMS4xMnMzLjAxLjU2IDMuNjkgMS4xMkg4LjMxek0xMiAxMmMxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzIDEuMzUgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVybURhdGFTZXR0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy45OSAxMS41N0gyMFYwTDAgMjBoMTEuNTZ2LTJINC44M0wxNy45OSA0LjgzdjYuNzR6bTUuNzggOC43NS0xLjA3LS44M2MuMDItLjE2LjA0LS4zMi4wNC0uNDkgMC0uMTctLjAxLS4zMy0uMDQtLjQ5bDEuMDYtLjgzYS4yNi4yNiAwIDAgMCAuMDYtLjMybC0xLTEuNzNjLS4wNi0uMTEtLjE5LS4xNS0uMzEtLjExbC0xLjI0LjVjLS4yNi0uMi0uNTQtLjM3LS44NS0uNDlsLS4xOS0xLjMyYy0uMDEtLjEyLS4xMi0uMjEtLjI0LS4yMWgtMmMtLjEyIDAtLjIzLjA5LS4yNS4yMWwtLjE5IDEuMzJjLS4zLjEzLS41OS4yOS0uODUuNDlsLTEuMjQtLjVjLS4xMS0uMDQtLjI0IDAtLjMxLjExbC0xIDEuNzNjLS4wNi4xMS0uMDQuMjQuMDYuMzJsMS4wNi44M2EzLjkwOCAzLjkwOCAwIDAgMCAwIC45OGwtMS4wNi44M2EuMjYuMjYgMCAwIDAtLjA2LjMybDEgMS43M2MuMDYuMTEuMTkuMTUuMzEuMTFsMS4yNC0uNWMuMjYuMi41NC4zNy44NS40OWwuMTkgMS4zMmMuMDIuMTIuMTIuMjEuMjUuMjFoMmMuMTIgMCAuMjMtLjA5LjI1LS4yMWwuMTktMS4zMmMuMy0uMTMuNTktLjI5Ljg0LS40OWwxLjI1LjVjLjExLjA0LjI0IDAgLjMxLS4xMWwxLTEuNzNhLjI2LjI2IDAgMCAwLS4wNi0uMzJ6bS00Ljc4LjE4Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1EZXZpY2VJbmZvcm1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjJoLTJ6bTAgNGgydjZoLTJ6bTYtOS45OUw3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyek03IDRWM2gxMHYxSDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtSWRlbnRpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAgOWMyLjcgMCA1LjggMS4yOSA2IDJ2MUg2di0uOTljLjItLjcyIDMuMy0yLjAxIDYtMi4wMW0wLTExQzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDljLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJtTWVkaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgNkgwdjVoLjAxTDAgMjBjMCAxLjEuOSAyIDIgMmgxOHYtMkgyVjZ6bTUgOWgxNGwtMy41LTQuNS0yLjUgMy4wMUwxMS41IDl6TTIyIDRoLThsLTItMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDEySDZWNGg1LjE3bDEuNDEgMS40MS41OS41OUgyMnYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcm1QaG9uZU1zZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjEtLjAzLS4yMS0uMDUtLjMxLS4wNS0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMDc0IDE1LjA3NCAwIDAgMS02LjU5LTYuNThsMi4yLTIuMjFjLjI4LS4yNy4zNi0uNjYuMjUtMS4wMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWMuMDcuODguMjIgMS43NS40NiAyLjU5TDUuNzkgOC44Yy0uNDEtMS4yMS0uNjctMi40OC0uNzYtMy44ek0xOSAxOC45N2MtMS4zMi0uMDktMi42LS4zNS0zLjgtLjc2bDEuMi0xLjJjLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNTF6TTEyIDN2MTBsMy0zaDZWM2gtOXptNyA1aC01VjVoNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVybVNjYW5XaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzQzYuOTUgMyAzLjE1IDQuODUgMCA3LjIzTDEyIDIyIDI0IDcuMjVDMjAuODUgNC44NyAxNy4wNSAzIDEyIDN6TTIuOTIgNy42NUM1LjggNS44NSA4Ljc0IDUgMTIgNWMzLjI1IDAgNi4xOC44NSA5LjA4IDIuNjdMMTIgMTguODMgMi45MiA3LjY1ek0xMSAxMGgydjZoLTJ6bTAtNGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjQuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjUuNVwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4zNCAxNC44NmMtLjg3LTEuMDItMS42LTEuODktMi40OC0yLjkxLS40Ni0uNTQtMS4wNS0xLjA4LTEuNzUtMS4zMi0uMTEtLjA0LS4yMi0uMDctLjMzLS4wOS0uMjUtLjA0LS41Mi0uMDQtLjc4LS4wNHMtLjUzIDAtLjc5LjA1Yy0uMTEuMDItLjIyLjA1LS4zMy4wOS0uNy4yNC0xLjI4Ljc4LTEuNzUgMS4zMi0uODcgMS4wMi0xLjYgMS44OS0yLjQ4IDIuOTEtMS4zMSAxLjMxLTIuOTIgMi43Ni0yLjYyIDQuNzkuMjkgMS4wMiAxLjAyIDIuMDMgMi4zMyAyLjMyLjczLjE1IDMuMDYtLjQ0IDUuNTQtLjQ0aC4xOGMyLjQ4IDAgNC44MS41OCA1LjU0LjQ0IDEuMzEtLjI5IDIuMDQtMS4zMSAyLjMzLTIuMzIuMzEtMi4wNC0xLjMtMy40OS0yLjYxLTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBocCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDloMS41djZIMTN2LTIuNWgtMlYxNUg5LjVWOUgxMXYyaDJWOXptLTUgMS41djFjMCAuOC0uNyAxLjUtMS41IDEuNWgtMnYySDNWOWgzLjVjLjggMCAxLjUuNyAxLjUgMS41em0tMS41IDBoLTJ2MWgydi0xem0xNSAwdjFjMCAuOC0uNyAxLjUtMS41IDEuNWgtMnYyaC0xLjVWOUgyMGMuOCAwIDEuNS43IDEuNSAxLjV6bS0xLjUgMGgtMnYxaDJ2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaWN0dXJlSW5QaWN0dXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtOHY2aDh2LTZ6bS0yIDRoLTR2LTJoNHYyem00LTEySDNjLTEuMSAwLTIgLjg4LTIgMS45OFYxOWMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjQuOThDMjMgMy44OCAyMi4xIDMgMjEgM3ptMCAxNi4wMkgzVjQuOTdoMTh2MTQuMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaWN0dXJlSW5QaWN0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3aC04djZoOFY3em0tMiA0aC00VjloNHYyem00LThIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAxLjk4IDIgMS45OGgxOGMxLjEgMCAyLS44OCAyLTEuOThWNWMwLTEuMS0uOS0yLTItMnptMCAxNi4wMUgzVjQuOThoMTh2MTQuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaW5FbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMlY2SDR2MTJoMTB2Mkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJ2NmgtMnptLTEgMmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bS00LjM0LTZIOXY1LjY2aDJ2LTIuMjRsMi45NSAyLjk1IDEuNDEtMS40MUwxMi40MSAxMGgyLjI0Vjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaW5JbnZva2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMnY2YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxMHYySDR2MTJoMTZ2LTZoMnptMC01YzAtMS42Ni0xLjM0LTMtMy0zcy0zIDEuMzQtMyAzIDEuMzQgMyAzIDMgMy0xLjM0IDMtM3pNOS4zNCAxMmgyLjI0bC0yLjk1IDIuOTUgMS40MSAxLjQxTDEzIDEzLjQydjIuMjRoMlYxMEg5LjM0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMi41VjFoNXY1SDkuNVYzLjU2TDMuNTYgOS41SDZWMTFIMVY2aDEuNXYyLjQ0TDguNDQgMi41SDZ6bTE1Ljg5IDExLjI3LTMuOC0xLjY3Yy0uMTMtLjA2LS4yOC0uMS0uNDQtLjFIMTdWNy41YTIuNSAyLjUgMCAwIDAtNSAwdjguMTVsLTEuODctLjRjLS4xOS0uMDMtMS4wMi0uMTUtMS43My41Nkw3IDE3LjIybDUuMTIgNS4xOWMuMzcuMzguODguNTkgMS40MS41OWg2LjU1Yy45OCAwIDEuODEtLjcgMS45Ny0xLjY3bC45Mi01LjQ0YTIgMiAwIDAgMC0xLjA4LTIuMTJ6TTIwLjA4IDIxaC02LjU1bC0zLjctMy43OCA0LjE3Ljg5VjcuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY2LjE4aDEuNzZMMjEgMTUuNTYgMjAuMDggMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGFnaWFyaXNtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjAzIDExLjAzYTMuNDk1IDMuNDk1IDAgMCAwIDAgNC45NSAzLjQ4IDMuNDggMCAwIDAgNC4xMy41OWwxLjg4IDEuODggMS40MS0xLjQxLTEuODgtMS44OGMuNzEtMS4zMy41My0zLjAxLS41OS00LjEzYTMuNDk1IDMuNDk1IDAgMCAwLTQuOTUgMHptMy41MyAzLjUzYy0uNTkuNTktMS41NC41OS0yLjEyIDBhMS40OSAxLjQ5IDAgMCAxIDAtMi4xMiAxLjQ5IDEuNDkgMCAwIDEgMi4xMiAwYy41OS41OS41OSAxLjUzIDAgMi4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlGb3JXb3JrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA1djUuNTlINy41bDQuNSA0LjUgNC41LTQuNUgxM1Y1aC0yem0tNSA5YzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZoLTJjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvbHltZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRoLTRMNy4xMSAxNi42MyA0LjUgMTIgOSA0SDVMLjUgMTIgNSAyMGg0bDcuODktMTIuNjNMMTkuNSAxMiAxNSAyMGg0bDQuNS04TDE5IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb3dlclNldHRpbmdzTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3LTEuNDIgMS40MkE2LjkyIDYuOTIgMCAwIDEgMTkgMTJjMCAzLjg3LTMuMTMgNy03IDdBNi45OTUgNi45OTUgMCAwIDEgNy41OCA2LjU4TDYuMTcgNS4xN0E4LjkzMiA4LjkzMiAwIDAgMCAzIDEyYTkgOSAwIDAgMCAxOCAwYzAtMi43NC0xLjIzLTUuMTgtMy4xNy02LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJlZ25hbnRXb21hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTcgOWEzLjI4NSAzLjI4NSAwIDAgMC0yLTNjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDN2N2gydjVoM3YtNWgzdi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJldmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE2SDVWN2gxNHYxMnptLTctOC41YzEuODQgMCAzLjQ4Ljk2IDQuMzQgMi41LS44NiAxLjU0LTIuNSAyLjUtNC4zNCAyLjVzLTMuNDgtLjk2LTQuMzQtMi41Yy44Ni0xLjU0IDIuNS0yLjUgNC4zNC0yLjVNMTIgOWMtMi43MyAwLTUuMDYgMS42Ni02IDQgLjk0IDIuMzQgMy4yNyA0IDYgNHM1LjA2LTEuNjYgNi00Yy0uOTQtMi4zNC0zLjI3LTQtNi00em0wIDUuNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOGgtMVYzSDZ2NUg1Yy0xLjY2IDAtMyAxLjM0LTMgM3Y2aDR2NGgxMnYtNGg0di02YzAtMS42Ni0xLjM0LTMtMy0zek04IDVoOHYzSDhWNXptOCAxMnYySDh2LTRoOHYyem0yLTJ2LTJINnYySDR2LTRjMC0uNTUuNDUtMSAxLTFoMTRjLjU1IDAgMSAuNDUgMSAxdjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcml2YWN5VGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMy4xOSA3IDMuMTFWMTFjMCA0LjUyLTIuOTggOC42OS03IDkuOTMtNC4wMi0xLjI0LTctNS40MS03LTkuOTNWNi4zbDctMy4xMU0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptLTEgNmgydjJoLTJWN3ptMCA0aDJ2NmgtMnYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaXZhdGVDb25uZWN0aXZpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3YzIuNzYgMCA1IDIuMjQgNSA1cy0yLjI0IDUtNSA1LTUtMi4yNC01LTUgMi4yNC01IDUtNXptLTYuOTMgNmMuNDkgMy4zOSAzLjQgNiA2LjkzIDZzNi40NC0yLjYxIDYuOTMtNkgyMnYtMmgtMy4wN2MtLjQ5LTMuMzktMy40LTYtNi45My02cy02LjQ0IDIuNjEtNi45MyA2SDJ2MmgzLjA3ek0xNCAxMC41di0uODljMC0xLS42OC0xLjkyLTEuNjYtMi4wOEEyIDIgMCAwIDAgMTAgOS41djFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTIgMy4yNWMtLjQxIDAtLjc1LS4zNC0uNzUtLjc1cy4zNC0uNzUuNzUtLjc1Ljc1LjM0Ljc1Ljc1LS4zNC43NS0uNzUuNzV6bTEtMy4yNWgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByb2R1Y3Rpb25RdWFudGl0eUxpbWl0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwaC0yVjhoMnYyem0wLTRoLTJWMWgydjV6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOC45LTVoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNMMjEgNC45NiAxOS4yNSA0bC0zLjcgN0g4LjUzTDQuMjcgMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVB1Ymxpc2hlZFdpdGhDaGFuZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNiAxOS41SDIxdjJoLTZ2LTZoMnYyLjczYzEuODMtMS40NyAzLTMuNzEgMy02LjIzIDAtNC4wNy0zLjA2LTcuNDQtNy03LjkzVjIuMDVjNS4wNS41IDkgNC43NiA5IDkuOTUgMCAyLjk5LTEuMzIgNS42Ny0zLjQgNy41ek00IDEyYzAtMi41MiAxLjE3LTQuNzcgMy02LjIzVjguNWgydi02SDN2MmgyLjRBOS45NjYgOS45NjYgMCAwIDAgMiAxMmMwIDUuMTkgMy45NSA5LjQ1IDkgOS45NXYtMi4wMmMtMy45NC0uNDktNy0zLjg2LTctNy45M3ptMTIuMjQtMy44OS01LjY2IDUuNjYtMi44My0yLjgzLTEuNDEgMS40MSA0LjI0IDQuMjQgNy4wNy03LjA3LTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVF1ZXJ5QnVpbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0uNS0xM0gxMXY2bDUuMjUgMy4xNS43NS0xLjIzLTQuNS0yLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVlc3Rpb25BbnN3ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDR2N0g1LjE3bC0uNTkuNTktLjU4LjU4VjRoMTFtMS0ySDNjLS41NSAwLTEgLjQ1LTEgMXYxNGw0LTRoMTBjLjU1IDAgMS0uNDUgMS0xVjNjMC0uNTUtLjQ1LTEtMS0xem01IDRoLTJ2OUg2djJjMCAuNTUuNDUgMSAxIDFoMTFsNCA0VjdjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVlc3Rpb25NYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMDcgMTIuODVjLjc3LTEuMzkgMi4yNS0yLjIxIDMuMTEtMy40NC45MS0xLjI5LjQtMy43LTIuMTgtMy43LTEuNjkgMC0yLjUyIDEuMjgtMi44NyAyLjM0TDYuNTQgNi45NkM3LjI1IDQuODMgOS4xOCAzIDExLjk5IDNjMi4zNSAwIDMuOTYgMS4wNyA0Ljc4IDIuNDEuNyAxLjE1IDEuMTEgMy4zLjAzIDQuOS0xLjIgMS43Ny0yLjM1IDIuMzEtMi45NyAzLjQ1LS4yNS40Ni0uMzUuNzYtLjM1IDIuMjRoLTIuODljLS4wMS0uNzgtLjEzLTIuMDUuNDgtMy4xNXpNMTQgMjBjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVpY2tyZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTcuMTdWNGgxNnY2aDJWNGMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDl2LTJINS4xN0w0IDE3LjE3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi41IDE2aC0yLjJsMS43LTRoLTV2NmgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWNlaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDMuNSAxOCAybC0xLjUgMS41TDE1IDJsLTEuNSAxLjVMMTIgMmwtMS41IDEuNUw5IDIgNy41IDMuNSA2IDIgNC41IDMuNSAzIDJ2MjBsMS41LTEuNUw2IDIybDEuNS0xLjVMOSAyMmwxLjUtMS41TDEyIDIybDEuNS0xLjVMMTUgMjJsMS41LTEuNUwxOCAyMmwxLjUtMS41TDIxIDIyVjJsLTEuNSAxLjV6TTE5IDE5LjA5SDVWNC45MWgxNHYxNC4xOHpNNiAxNWgxMnYySDZ6bTAtNGgxMnYySDZ6bTAtNGgxMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWNvcmRWb2ljZU92ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTNjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem0wIDhjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6bS02IDRjLjIyLS43MiAzLjMxLTIgNi0yIDIuNyAwIDUuOCAxLjI5IDYgMkgzek0xNS4wOCA3LjA1Yy44NCAxLjE4Ljg0IDIuNzEgMCAzLjg5bDEuNjggMS42OWMyLjAyLTIuMDIgMi4wMi01LjA3IDAtNy4yN2wtMS42OCAxLjY5ek0yMC4wNyAybC0xLjYzIDEuNjNjMi43NyAzLjAyIDIuNzcgNy41NiAwIDEwLjc0TDIwLjA3IDE2YzMuOS0zLjg5IDMuOTEtOS45NSAwLTE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVkZWVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC0yLjE4Yy4xMS0uMzEuMTgtLjY1LjE4LTFhMi45OTYgMi45OTYgMCAwIDAtNS41LTEuNjVsLS41LjY3LS41LS42OEMxMC45NiAyLjU0IDEwLjA1IDIgOSAyIDcuMzQgMiA2IDMuMzQgNiA1YzAgLjM1LjA3LjY5LjE4IDFINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0tNS0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTkgNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMSAxNUg0di0yaDE2djJ6bTAtNUg0VjhoNS4wOEw3IDEwLjgzIDguNjIgMTIgMTEgOC43NmwxLTEuMzYgMSAxLjM2TDE1LjM4IDEyIDE3IDEwLjgzIDE0LjkyIDhIMjB2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZURvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Ljg0IDEuOTggMy40MyAzLjM5bDEwLjM4IDEwLjM4LTEuNDEgMS40MS00LjI0LTQuMjQtMS40MSAxLjQxIDUuNjYgNS42NiAyLjgzLTIuODMgNi42IDYuNiAxLjQxLTEuNDFMNC44NCAxLjk4em0xMy4yMSAxMC4zOEwyMyA3LjQgMjEuNTcgNmwtNC45NCA0Ljk0IDEuNDIgMS40MnptLS43MS00Ljk2LTEuNDEtMS40MS0yLjEyIDIuMTIgMS40MSAxLjQxIDIuMTItMi4xMnpNMS4wOCAxMi4zNWw1LjY2IDUuNjYgMS40MS0xLjQxLTUuNjYtNS42Ni0xLjQxIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVTaG9wcGluZ0NhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEuNDEgMS4xMyAwIDIuNTRsNC4zOSA0LjM5IDIuMjEgNC42Ni0xLjM1IDIuNDVjLS4xNi4yOC0uMjUuNjEtLjI1Ljk2IDAgMS4xLjkgMiAyIDJoNy40NmwxLjM4IDEuMzhBMS45OTcgMS45OTcgMCAwIDAgMTcgMjJjLjY3IDAgMS4yNi0uMzMgMS42Mi0uODRMMjEuNDYgMjRsMS40MS0xLjQxTDEuNDEgMS4xM3pNNyAxNWwxLjEtMmgyLjM2bDIgMkg3ek0yMCA0SDcuMTJsMiAyaDkuMTlsLTIuNzYgNWgtMS40NGwxLjk0IDEuOTRjLjU0LS4xNC45OS0uNDkgMS4yNS0uOTdsMy41OC02LjQ5QzIxLjI1IDQuODIgMjAuNzYgNCAyMCA0ek03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVvcmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNWgxOHYtMkgzdjJ6bTAgNGgxOHYtMkgzdjJ6bTAtOGgxOFY5SDN2MnptMC02djJoMThWNUgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwYXJ0aXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDE4di02SDN2NnptNy4zMy0ydi0yaDMuMzN2MmgtMy4zM3pNMTkgMTloLTMuMzN2LTJIMTl2MnpNNSAxN2gzLjMzdjJINXYtMnpNNiAxMGwxLjQyLTEuNDJMNS44MyA3SDE3YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMkgzdjJoMTRjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTRINS44M2wxLjU5LTEuNTlMNiAyIDIgNmw0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBvcnRQcm9ibGVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1Ljk5IDE5LjUzIDE5SDQuNDdMMTIgNS45OU0xMiAyIDEgMjFoMjJMMTIgMnptMSAxNGgtMnYyaDJ2LTJ6bTAtNmgtMnY0aDJ2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXF1ZXN0UGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjE3IDQgMTggOC44M1YyMEg2VjRoNy4xN00xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0xIDloLTR2MWgzYy41NSAwIDEgLjQ1IDEgMXYzYzAgLjU1LS40NSAxLTEgMWgtMXYxaC0ydi0xSDl2LTJoNHYtMWgtM2MtLjU1IDAtMS0uNDUtMS0xdi0zYzAtLjU1LjQ1LTEgMS0xaDFWOGgydjFoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzdG9yZUZyb21UcmFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUuNSA0LTEtMWgtNWwtMSAxSDV2MmgxNFY0ek02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTItNVY5aDh2MTBIOHYtNXptMiA0aDR2LTRoMmwtNC00LTQgNGgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzdG9yZVBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoNy4xN0wxOCA4LjgzVjIwem0tOS41NS05LjQzTDcuMjggOS40VjEzaDMuNmwtMS40NC0xLjQ0YTMuMTUgMy4xNSAwIDAgMSAyLjc5LTEuNzEgMy4xNSAzLjE1IDAgMSAxIDAgNi4zIDMuMTQgMy4xNCAwIDAgMS0yLjU4LTEuMzVIOC4xYTQuNTEgNC41MSAwIDAgMCA0LjEyIDIuN2MyLjQ4IDAgNC41LTIuMDIgNC41LTQuNXMtMi4wMi00LjUtNC41LTQuNWMtMS41OSAwLTIuOTcuODMtMy43NyAyLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgM2E5IDkgMCAwIDAtOSA5SDFsNCAzLjk5TDkgMTJINmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3LTMuMTMgNy03IDdjLTEuOTMgMC0zLjY4LS43OS00Ljk0LTIuMDZsLTEuNDIgMS40MkE4Ljk1NCA4Ljk1NCAwIDAgMCAxMyAyMWE5IDkgMCAwIDAgMC0xOHptLTEgNXY1bDQuMjUgMi41Mi43Ny0xLjI4LTMuNTItMi4wOVY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm9ja2V0TGF1bmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxNWMtLjgzIDAtMS41OC4zNC0yLjEyLjg4QzIuNyAxNy4wNiAyIDIyIDIgMjJzNC45NC0uNyA2LjEyLTEuODhBMi45OTYgMi45OTYgMCAwIDAgNiAxNXptLjcxIDMuNzFjLS4yOC4yOC0yLjE3Ljc2LTIuMTcuNzZzLjQ3LTEuODguNzYtMi4xN2MuMTctLjE5LjQyLS4zLjctLjNhMS4wMDMgMS4wMDMgMCAwIDEgLjcxIDEuNzF6bTEwLjcxLTUuMDZjNi4zNi02LjM2IDQuMjQtMTEuMzEgNC4yNC0xMS4zMVMxNi43MS4yMiAxMC4zNSA2LjU4bC0yLjQ5LS41YTIuMDMgMi4wMyAwIDAgMC0xLjgxLjU1TDIgMTAuNjlsNSAyLjE0TDExLjE3IDE3bDIuMTQgNSA0LjA1LTQuMDVjLjQ3LS40Ny42OC0xLjE1LjU1LTEuODFsLS40OS0yLjQ5ek03LjQxIDEwLjgzbC0xLjkxLS44MiAxLjk3LTEuOTcgMS40NC4yOWMtLjU3LjgzLTEuMDggMS43LTEuNSAyLjV6bTYuNTggNy42Ny0uODItMS45MWMuOC0uNDIgMS42Ny0uOTMgMi40OS0xLjVsLjI5IDEuNDQtMS45NiAxLjk3ek0xNiAxMi4yNGMtMS4zMiAxLjMyLTMuMzggMi40LTQuMDQgMi43M2wtMi45My0yLjkzYy4zMi0uNjUgMS40LTIuNzEgMi43My00LjA0IDQuNjgtNC42OCA4LjIzLTMuOTkgOC4yMy0zLjk5cy42OSAzLjU1LTMuOTkgOC4yM3pNMTUgMTFjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyIC45IDIgMiAyIDItLjkgMi0yem0tNi4wMiA3LjI1Yy0uMjktLjktLjU3LTEuOTQtLjc2LTNMNiAxNi4wN3YyLjk4bDEuOTgtLjh6TTEyIDJzNSAyIDUgMTFsMi4xMSAxLjQxYy41Ni4zNy44OSAxIC44OSAxLjY2VjIybC01LTJIOWwtNSAydi01LjkzYzAtLjY3LjMzLTEuMjkuODktMS42Nkw3IDEzYzAtOSA1LTExIDUtMTF6bTAgMi4zNlM5IDYuMzggOSAxM2MwIDIuMjUgMSA1IDEgNWg0czEtMi43NSAxLTVjMC02LjYyLTMtOC42NC0zLTguNjR6bTYgMTQuNjl2LTIuOThsLTEuMjItLjgxYy0uMTkgMS4wNS0uNDcgMi4xLS43NiAzbDEuOTguNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6TTcgOWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMi44OC0yLjg4IDcuMTktNSA5Ljg4QzkuOTIgMTYuMjEgNyAxMS44NSA3IDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI5XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdW5kZWRDb3JuZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOWgydjJoLTJ2LTJ6bTAtMmgydi0yaC0ydjJ6TTMgMTNoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTAtNGgyVjNIM3Yyem00IDBoMlYzSDd2MnptOCAxNmgydi0yaC0ydjJ6bS00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyem0tOCAwaDJ2LTJIN3Yyem0tNCAwaDJ2LTJIM3Yyek0yMSA4YzAtMi43Ni0yLjI0LTUtNS01aC01djJoNWMxLjY1IDAgMyAxLjM1IDMgM3Y1aDJWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvd2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxNC41IDQgMTlsMS41IDEuNUw5IDE3aDJsLTIuNS0yLjV6TTE1IDFjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem02IDIwLjAxTDE4IDI0bC0yLjk5LTMuMDFWMTkuNWwtNy4xLTcuMDljLS4zMS4wNS0uNjEuMDctLjkxLjA3di0yLjE2YzEuNjYuMDMgMy42MS0uODcgNC42Ny0yLjA0bDEuNC0xLjU1Yy4xOS0uMjEuNDMtLjM4LjY5LS41LjI5LS4xNC42Mi0uMjMuOTYtLjIzaC4wM0MxNS45OSA2LjAxIDE3IDcuMDIgMTcgOC4yNnY1Ljc1YzAgLjg0LS4zNSAxLjYxLS45MiAyLjE2bC0zLjU4LTMuNTh2LTIuMjdjLS42My41Mi0xLjQzIDEuMDItMi4yOSAxLjM5TDE2LjUgMThIMThsMyAzLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU0IDExIDEzIDcuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDE2LjU0IDExek0xMSA3SDJ2Mmg5Vjd6bTEwIDYuNDFMMTkuNTkgMTIgMTcgMTQuNTkgMTQuNDEgMTIgMTMgMTMuNDEgMTUuNTkgMTYgMTMgMTguNTkgMTQuNDEgMjAgMTcgMTcuNDEgMTkuNTkgMjAgMjEgMTguNTkgMTguNDEgMTYgMjEgMTMuNDF6TTExIDE1SDJ2Mmg5di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2F0ZWxsaXRlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRoMmE5IDkgMCAwIDEtOSA5di0yYzMuODcgMCA3LTMuMTMgNy03em0tNyAzdjJjMi43NiAwIDUtMi4yNCA1LTVoLTJjMCAxLjY2LTEuMzQgMy0zIDN6TTE4LjI2LjU5bDMuNTQgMy41NGMuNzguNzguNzggMi4wNSAwIDIuODNsLTMuMTggMy4xOGMtLjc4Ljc4LTIuMDUuNzgtMi44MyAwTDE0LjU1IDguOWwtLjcxLjcgMS4yNCAxLjI0Yy43OC43OC43OCAyLjA1IDAgMi44M2wtMS40MSAxLjQxYy0uNzguNzgtMi4wNS43OC0yLjgzIDBMOS42IDEzLjg0bC0uNzEuNzEgMS4yNCAxLjI0Yy43OC43OC43OCAyLjA1IDAgMi44M0w2Ljk1IDIxLjhjLS43OC43OC0yLjA1Ljc4LTIuODMgMEwuNTggMTguMjZjLS43OC0uNzgtLjc4LTIuMDUgMC0yLjgzbDMuMTgtMy4xOGMuNzgtLjc4IDIuMDUtLjc4IDIuODMgMGwxLjI0IDEuMjQuNzEtLjcxLTEuMjQtMS4yM2MtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNMOC43MiA3LjNjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBsMS4yNCAxLjI0LjcxLS43MS0xLjI1LTEuMjNjLS43OC0uNzgtLjc4LTIuMDUgMC0yLjgzTDE1LjQzLjU5Yy43OS0uNzkgMi4wNS0uNzkgMi44MyAwem0tMTUuMiAxNS4yTDIgMTYuODVsMy41NCAzLjU0IDEuMDYtMS4wNi0zLjU0LTMuNTR6bTIuMTItMi4xMi0xLjA2IDEuMDYgMy41NCAzLjU0IDEuMDYtMS4wNi0zLjU0LTMuNTR6bTQuOTUtNC45NS0xLjQxIDEuNDEgMy41NCAzLjU0IDEuNDEtMS40MS0zLjU0LTMuNTR6bTQuNi00LjYtMS4wNiAxLjA2IDMuNTQgMy41NCAxLjA2LTEuMDYtMy41NC0zLjU0ek0xNi44NSAybC0xLjA2IDEuMDYgMy41NCAzLjU0IDEuMDYtMS4wNkwxNi44NSAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2F2ZWRTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC43MyAxMy4zMUE2LjM4OCA2LjM4OCAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS40MyAwIDIuNzQtLjQ4IDMuODEtMS4yN0wxOS41OSAyMSAyMSAxOS41OWwtNi4yNy02LjI4ek05LjUgMTRDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjI5IDguNDQgOS41IDZsLS43OSAyLjQ0SDYuMjVsMi4wMSAxLjU5LS43NyAyLjQ3IDIuMDEtMS41MyAyLjAxIDEuNTMtLjc3LTIuNDcgMi4wMS0xLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2F2aW5ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEwYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMS0uNDUgMS0xIDEtMS0uNDUtMS0xek04IDloNVY3SDh2MnptMTQtMS41djYuOTdsLTIuODIuOTRMMTcuNSAyMUgxMnYtMmgtMnYySDQuNVMyIDEyLjU0IDIgOS41IDQuNDYgNCA3LjUgNGg1Yy45MS0xLjIxIDIuMzYtMiA0LTJhMS40OTggMS40OTggMCAwIDEgMS4zOCAyLjA4Yy0uMTQuMzQtLjI2LjczLS4zMiAxLjE1bDIuMjcgMi4yN0gyMnptLTIgMmgtMUwxNS41IDZjMC0uNjUuMDktMS4yOS4yNi0xLjkxLS45Ny4yNS0xLjc2Ljk3LTIuMDkgMS45MUg3LjVDNS41NyA2IDQgNy41NyA0IDkuNWMwIDEuODggMS4yMiA2LjY1IDIuMDEgOS41SDh2LTJoNnYyaDIuMDFsMS41NS01LjE1IDIuNDQtLjgyVjkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjaGVkdWxlU2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDE2LjUgMTcuMlYxNGgxdjIuNzlsMS44NSAxLjg1LS43LjcxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSAxMi02LTEuNVY3LjAxbDguODcgMy43NGMuOTQtLjQ3IDItLjc1IDMuMTMtLjc1LjEgMCAuMTkuMDEuMjguMDFMMyA0djE2bDctMi45NVYxN2MwLS44LjE0LTEuNTYuMzktMi4yOEw1IDE2Ljk5VjEzLjVsNi0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY2hlZHVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0uNS0xM0gxMXY2bDUuMjUgMy4xNS43NS0xLjIzLTQuNS0yLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VhcmNoT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMCAwIDkuNSAzQzYuMDggMyAzLjI4IDUuNjQgMy4wMyA5aDIuMDJDNS4zIDYuNzUgNy4xOCA1IDkuNSA1IDExLjk5IDUgMTQgNy4wMSAxNCA5LjVTMTEuOTkgMTQgOS41IDE0Yy0uMTcgMC0uMzMtLjAzLS41LS4wNXYyLjAyYy4xNy4wMi4zMy4wMy41LjAzIDEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi40NyAxMC44MiA0IDEzLjI5bC0yLjQ3LTIuNDctLjcxLjcxTDMuMjkgMTQgLjgyIDE2LjQ3bC43MS43MUw0IDE0LjcxbDIuNDcgMi40Ny43MS0uNzFMNC43MSAxNGwyLjQ3LTIuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VnbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMThoMTJ2LTJIOXYyek0zIDZ2MmgxOFY2SDN6bTYgN2gxMnYtMkg5djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW5kQW5kQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDEyLTYtMS41VjcuMDFsOC44NyAzLjczYy45NC0uNDcgMi0uNzUgMy4xMy0uNzUuMSAwIC4xOS4wMS4yOC4wMUwzIDR2MTZsNy0yLjk1VjE3YzAtLjguMTQtMS41Ni4zOS0yLjI4TDUgMTYuOTlWMTMuNWw2LTEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0wIDgtMy0zIC43MS0uNzEgMS43OSAxLjc5VjE0aDF2NC4wOWwxLjc5LTEuNzkuNzEuNy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW5zb3JzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4xNCAxMC45NmMtLjA5LjMzLS4xNC42OC0uMTQgMS4wNCAwIDEuMS40NSAyLjEgMS4xNyAyLjgzbC0xLjQyIDEuNDJBNi4wMTggNi4wMTggMCAwIDEgNiAxMmMwLS45My4yMS0xLjguNTgtMi41OUw1LjExIDcuOTRBNy44OTcgNy44OTcgMCAwIDAgNCAxMmMwIDIuMjEuOSA0LjIxIDIuMzUgNS42NWwtMS40MiAxLjQyQTkuOTY5IDkuOTY5IDAgMCAxIDIgMTJjMC0yLjA0LjYxLTMuOTMgMS42Ni01LjUxTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDFMOC4xNCAxMC45NnptOS4yOCAzLjYzYy4zNy0uNzkuNTgtMS42Ni41OC0yLjU5IDAtMS42Ni0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDIgMS40MmEzLjk1MSAzLjk1MSAwIDAgMSAxLjA0IDMuODZsMS41NiAxLjU1ek0yMCAxMmMwIDEuNDgtLjQgMi44Ny0xLjExIDQuMDZsMS40NSAxLjQ1QTkuOTEgOS45MSAwIDAgMCAyMiAxMmMwLTIuNzYtMS4xMi01LjI2LTIuOTMtNy4wN2wtMS40MiAxLjQyQTcuOTQgNy45NCAwIDAgMSAyMCAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnNvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc2IDE2LjI0QzYuNjcgMTUuMTYgNiAxMy42NiA2IDEycy42Ny0zLjE2IDEuNzYtNC4yNGwxLjQyIDEuNDJDOC40NSA5LjkgOCAxMC45IDggMTJjMCAxLjEuNDUgMi4xIDEuMTcgMi44M2wtMS40MSAxLjQxem04LjQ4IDBDMTcuMzMgMTUuMTYgMTggMTMuNjYgMTggMTJzLS42Ny0zLjE2LTEuNzYtNC4yNGwtMS40MiAxLjQyQzE1LjU1IDkuOSAxNiAxMC45IDE2IDEyYzAgMS4xLS40NSAyLjEtMS4xNyAyLjgzbDEuNDEgMS40MXpNMTIgMTBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem04IDJjMCAyLjIxLS45IDQuMjEtMi4zNSA1LjY1bDEuNDIgMS40MkMyMC44OCAxNy4yNiAyMiAxNC43NiAyMiAxMnMtMS4xMi01LjI2LTIuOTMtNy4wN2wtMS40MiAxLjQyQTcuOTQgNy45NCAwIDAgMSAyMCAxMnpNNi4zNSA2LjM1IDQuOTMgNC45M0MzLjEyIDYuNzQgMiA5LjI0IDIgMTJzMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJDNC45IDE2LjIxIDQgMTQuMjEgNCAxMnMuOS00LjIxIDIuMzUtNS42NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzQWNjZXNzaWJpbGl0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjUgNGMtMi42MS43LTUuNjcgMS04LjUgMXMtNS44OS0uMy04LjUtMUwzIDZjMS44Ni41IDQgLjgzIDYgMXYxMmgydi02aDJ2NmgyVjdjMi0uMTcgNC4xNC0uNSA2LTFsLS41LTJ6TTEyIDRjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek03IDI0aDJ2LTJIN3Yyem00IDBoMnYtMmgtMnYyem00IDBoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NBcHBsaWNhdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTYuMjEgMTMuOTcgMS4yIDIuMDdjLjA4LjEzLjIzLjE4LjM3LjEzbDEuNDktLjZjLjMxLjI0LjY0LjQ0IDEuMDEuNTlsLjIyIDEuNTljLjAzLjE0LjE1LjI1LjMuMjVoMi40Yy4xNSAwIC4yNy0uMTEuMy0uMjZsLjIyLTEuNTljLjM2LS4xNS43LS4zNSAxLjAxLS41OWwxLjQ5LjZjLjE0LjA1LjI5IDAgLjM3LS4xM2wxLjItMi4wN2MuMDgtLjEzLjA0LS4yOS0uMDctLjM5bC0xLjI3LS45OWMuMDMtLjE5LjA0LS4zOS4wNC0uNTggMC0uMi0uMDItLjM5LS4wNC0uNTlsMS4yNy0uOTljLjExLS4wOS4xNS0uMjYuMDctLjM5bC0xLjItMi4wN2EuMzA2LjMwNiAwIDAgMC0uMzctLjEzbC0xLjQ5LjZjLS4zMS0uMjQtLjY0LS40NC0xLjAxLS41OWwtLjIyLTEuNTlhLjMxLjMxIDAgMCAwLS4zLS4yNWgtMi40YS4zMS4zMSAwIDAgMC0uMy4yNmwtLjIyIDEuNTljLS4zNi4xNS0uNzEuMzQtMS4wMS41OGwtMS40OS0uNmMtLjE0LS4wNS0uMjkgMC0uMzcuMTNsLTEuMiAyLjA3Yy0uMDguMTMtLjA0LjI5LjA3LjM5bDEuMjcuOTljLS4wMy4yLS4wNS4zOS0uMDUuNTkgMCAuMi4wMi4zOS4wNC41OWwtMS4yNy45OWMtLjExLjEtLjE0LjI2LS4wNi4zOXpNMTIgMTAuMjljLjk0IDAgMS43MS43NyAxLjcxIDEuNzFzLS43NyAxLjcxLTEuNzEgMS43MS0xLjcxLS43Ny0xLjcxLTEuNzEuNzctMS43MSAxLjcxLTEuNzF6TTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NCYWNrdXBSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMmMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDIgLjkgMiAyIDIgMi0uOSAyLTJ6bS0yLTlhOSA5IDAgMCAwLTkgOUgwbDQgNCA0LTRINWMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3YTYuOTk1IDYuOTk1IDAgMCAxLTExLjA2IDUuN2wtMS40MiAxLjQ0QTkgOSAwIDEgMCAxMiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDI0aDJ2LTJoLTJ2MnptLTQgMGgydi0ySDd2MnptOCAwaDJ2LTJoLTJ2MnptMi43MS0xOC4yOUwxMiAwaC0xdjcuNTlMNi40MSAzIDUgNC40MSAxMC41OSAxMCA1IDE1LjU5IDYuNDEgMTcgMTEgMTIuNDFWMjBoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTEzIDMuODNsMS44OCAxLjg4TDEzIDcuNTlWMy44M3ptMS44OCAxMC40NkwxMyAxNi4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0JyaWdodG5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpNOCAxNmgyLjVsMS41IDEuNSAxLjUtMS41SDE2di0yLjVsMS41LTEuNS0xLjUtMS41VjhoLTIuNUwxMiA2LjUgMTAuNSA4SDh2Mi41TDYuNSAxMiA4IDEzLjVWMTZ6bTQtN2MxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NDZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIyaDJ2Mkg3em00IDBoMnYyaC0yem00IDBoMnYyaC0yek0xNiAuMDEgOCAwQzYuOSAwIDYgLjkgNiAydjE2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlYyYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNiAxOEg4di0xaDh2MXptMC0zSDhWNWg4djEwem0wLTEySDhWMmg4djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0V0aGVybmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc3IDYuNzYgNi4yMyA1LjQ4LjgyIDEybDUuNDEgNi41MiAxLjU0LTEuMjhMMy40MiAxMmw0LjM1LTUuMjR6TTcgMTNoMnYtMkg3djJ6bTEwLTJoLTJ2Mmgydi0yem0tNiAyaDJ2LTJoLTJ2MnptNi43Ny03LjUyLTEuNTQgMS4yOEwyMC41OCAxMmwtNC4zNSA1LjI0IDEuNTQgMS4yOEwyMy4xOCAxMmwtNS40MS02LjUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NJbnB1dEFudGVubmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVjLTMuODcgMC03IDMuMTMtNyA3aDJjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0xIDkuMjljLjg4LS4zOSAxLjUtMS4yNiAxLjUtMi4yOWEyLjUgMi41IDAgMCAwLTUgMGMwIDEuMDIuNjIgMS45IDEuNSAyLjI5djMuM0w3LjU5IDIxIDkgMjIuNDFsMy0zIDMgM0wxNi40MSAyMSAxMyAxNy41OXYtMy4zek0xMiAxQzUuOTMgMSAxIDUuOTMgMSAxMmgyYTkgOSAwIDAgMSAxOCAwaDJjMC02LjA3LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0lucHV0Q29tcG9uZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOEM2LjE2IDE4LjQgNyAxNy4zIDcgMTZWNkg1VjJ6TTQgMTdjLS41NSAwLTEtLjQ1LTEtMXYtMmgydjJjMCAuNTUtLjQ1IDEtMSAxem0tMS01VjhoMnY0SDN6TTEzIDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MiAyLTEuNTIgMi0yLjgyVjZoLTJWMnptLTEgMTVjLS41NSAwLTEtLjQ1LTEtMXYtMmgydjJjMCAuNTUtLjQ1IDEtMSAxem0tMS01VjhoMnY0aC0yem0xMC02VjJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NGgtMnYxMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDIgMi0xLjUyIDItMi44MlY2aC0yem0tMSAxMWMtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0lucHV0Q29tcG9zaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEgxdjEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOEM2LjE2IDE4LjQgNyAxNy4zIDcgMTZWNkg1VjJ6TTQgMTdjLS41NSAwLTEtLjQ1LTEtMXYtMmgydjJjMCAuNTUtLjQ1IDEtMSAxem0tMS01VjhoMnY0SDN6TTEzIDJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NEg5djEwYzAgMS4zLjg0IDIuNCAyIDIuODJWMjNoMnYtNC4xOGMxLjE2LS40MiAyLTEuNTIgMi0yLjgyVjZoLTJWMnptLTEgMTVjLS41NSAwLTEtLjQ1LTEtMXYtMmgydjJjMCAuNTUtLjQ1IDEtMSAxem0tMS01VjhoMnY0aC0yem0xMC02VjJjMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDF2NGgtMnYxMGMwIDEuMy44NCAyLjQgMiAyLjgyVjIzaDJ2LTQuMThjMS4xNi0uNDIgMi0xLjUyIDItMi44MlY2aC0yem0tMSAxMWMtLjU1IDAtMS0uNDUtMS0xdi0yaDJ2MmMwIC41NS0uNDUgMS0xIDF6bS0xLTVWOGgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0lucHV0SGRtaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggN1Y0YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAydjNINXY2bDMgNnYzaDh2LTNsMy02VjdoLTF6TTggNGg4djNoLTIuMDFWNWgtMXYySDExVjVoLTF2Mkg4VjR6bTkgOC41My0zIDZWMjBoLTR2LTEuNDdsLTMtNlY5aDEwdjMuNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc0lucHV0U3ZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41UzUgMTAuNjcgNSAxMS41IDUuNjcgMTMgNi41IDEzIDggMTIuMzMgOCAxMS41em03LTVjMC0uODMtLjY3LTEuNS0xLjUtMS41aC0zQzkuNjcgNSA5IDUuNjcgOSA2LjVTOS42NyA4IDEwLjUgOGgzYy44MyAwIDEuNS0uNjcgMS41LTEuNXpNOC41IDE1Yy0uODMgMC0xLjUuNjctMS41IDEuNVM3LjY3IDE4IDguNSAxOHMxLjUtLjY3IDEuNS0xLjVTOS4zMyAxNSA4LjUgMTV6TTEyIDFDNS45MyAxIDEgNS45MyAxIDEyczQuOTMgMTEgMTEgMTEgMTEtNC45MyAxMS0xMVMxOC4wNyAxIDEyIDF6bTAgMjBjLTQuOTYgMC05LTQuMDQtOS05czQuMDQtOSA5LTkgOSA0LjA0IDkgOS00LjA0IDktOSA5em01LjUtMTFjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0tMiA1Yy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzT3ZlcnNjYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDUuNSAxMCA4aDRsLTEuOTktMi41ek0xOCAxMHY0bDIuNS0xLjk5TDE4IDEwek02IDEwbC0yLjUgMi4wMUw2IDE0di00em04IDZoLTRsMi4wMSAyLjVMMTQgMTZ6bTctMTNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMnYyaC0yem00IDBoMnYyaC0yem01IDYuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjEtLjAzLS4yMS0uMDUtLjMxLS4wNS0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMDc0IDE1LjA3NCAwIDAgMS02LjU5LTYuNThsMi4yLTIuMjFjLjI4LS4yNy4zNi0uNjYuMjUtMS4wMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWMuMDcuODguMjIgMS43NS40NiAyLjU5TDUuNzkgOC44Yy0uNDEtMS4yMS0uNjctMi40OC0uNzYtMy44ek0xOSAxOC45N2MtMS4zMi0uMDktMi42LS4zNS0zLjgtLjc2bDEuMi0xLjJjLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNTF6TTE5IDloMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyNGgydi0ySDd2MnptNCAwaDJ2LTJoLTJ2MnptMi0yMmgtMnYxMGgyVjJ6bTMuNTYgMi40NC0xLjQ1IDEuNDVBNS45NjkgNS45NjkgMCAwIDEgMTggMTFjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTZjMC0yLjE3IDEuMTYtNC4wNiAyLjg4LTUuMTJMNy40NCA0LjQ0QTcuOTYxIDcuOTYxIDAgMCAwIDQgMTFjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuNzItMS4zNi01LjEyLTMuNDQtNi41NnpNMTUgMjRoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NSZW1vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDlIOWMtLjU1IDAtMSAuNDUtMSAxdjEyYzAgLjU1LjQ1IDEgMSAxaDZjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMXptLTEgMTJoLTRWMTFoNHYxMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcuMDUgNi4wNSAxLjQxIDEuNDFhNS4wMjIgNS4wMjIgMCAwIDEgNy4wOCAwbDEuNDEtMS40MUMxNS42OCA0Ljc4IDEzLjkzIDQgMTIgNHMtMy42OC43OC00Ljk1IDIuMDV6TTEyIDBDOC45NiAwIDYuMjEgMS4yMyA0LjIyIDMuMjJsMS40MSAxLjQxQzcuMjYgMy4wMSA5LjUxIDIgMTIgMnM0Ljc0IDEuMDEgNi4zNiAyLjY0bDEuNDEtMS40MUMxNy43OSAxLjIzIDE1LjA0IDAgMTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzVm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjJoMnYySDd6bTUtOWMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zUzkgMi4zNCA5IDR2NmMwIDEuNjYgMS4zNCAzIDMgM3ptLTEtOWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NmMwIC41Ni0uNDQgMS0xIDEtLjU1IDAtMS0uNDUtMS0xVjR6bTAgMThoMnYyaC0yem00IDBoMnYyaC0yem00LTEyaC0xLjdjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDEzIDYuNyAxMEg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIwaDJ2LTMuMjhjMy4yOC0uNDkgNi0zLjMxIDYtNi43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldHRpbmdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS40MyAxMi45OGMuMDQtLjMyLjA3LS42NC4wNy0uOTggMC0uMzQtLjAzLS42Ni0uMDctLjk4bDIuMTEtMS42NWMuMTktLjE1LjI0LS40Mi4xMi0uNjRsLTItMy40NmEuNS41IDAgMCAwLS42MS0uMjJsLTIuNDkgMWMtLjUyLS40LTEuMDgtLjczLTEuNjktLjk4bC0uMzgtMi42NUEuNDg4LjQ4OCAwIDAgMCAxNCAyaC00Yy0uMjUgMC0uNDYuMTgtLjQ5LjQybC0uMzggMi42NWMtLjYxLjI1LTEuMTcuNTktMS42OS45OGwtMi40OS0xYS41NjYuNTY2IDAgMCAwLS4xOC0uMDNjLS4xNyAwLS4zNC4wOS0uNDMuMjVsLTIgMy40NmMtLjEzLjIyLS4wNy40OS4xMi42NGwyLjExIDEuNjVjLS4wNC4zMi0uMDcuNjUtLjA3Ljk4IDAgLjMzLjAzLjY2LjA3Ljk4bC0yLjExIDEuNjVjLS4xOS4xNS0uMjQuNDItLjEyLjY0bDIgMy40NmEuNS41IDAgMCAwIC42MS4yMmwyLjQ5LTFjLjUyLjQgMS4wOC43MyAxLjY5Ljk4bC4zOCAyLjY1Yy4wMy4yNC4yNC40Mi40OS40Mmg0Yy4yNSAwIC40Ni0uMTguNDktLjQybC4zOC0yLjY1Yy42MS0uMjUgMS4xNy0uNTkgMS42OS0uOThsMi40OSAxYy4wNi4wMi4xMi4wMy4xOC4wMy4xNyAwIC4zNC0uMDkuNDMtLjI1bDItMy40NmMuMTItLjIyLjA3LS40OS0uMTItLjY0bC0yLjExLTEuNjV6bS0xLjk4LTEuNzFjLjA0LjMxLjA1LjUyLjA1LjczIDAgLjIxLS4wMi40My0uMDUuNzNsLS4xNCAxLjEzLjg5LjcgMS4wOC44NC0uNyAxLjIxLTEuMjctLjUxLTEuMDQtLjQyLS45LjY4Yy0uNDMuMzItLjg0LjU2LTEuMjUuNzNsLTEuMDYuNDMtLjE2IDEuMTMtLjIgMS4zNWgtMS40bC0uMTktMS4zNS0uMTYtMS4xMy0xLjA2LS40M2MtLjQzLS4xOC0uODMtLjQxLTEuMjMtLjcxbC0uOTEtLjctMS4wNi40My0xLjI3LjUxLS43LTEuMjEgMS4wOC0uODQuODktLjctLjE0LTEuMTNjLS4wMy0uMzEtLjA1LS41NC0uMDUtLjc0cy4wMi0uNDMuMDUtLjczbC4xNC0xLjEzLS44OS0uNy0xLjA4LS44NC43LTEuMjEgMS4yNy41MSAxLjA0LjQyLjktLjY4Yy40My0uMzIuODQtLjU2IDEuMjUtLjczbDEuMDYtLjQzLjE2LTEuMTMuMi0xLjM1aDEuMzlsLjE5IDEuMzUuMTYgMS4xMyAxLjA2LjQzYy40My4xOC44My40MSAxLjIzLjcxbC45MS43IDEuMDYtLjQzIDEuMjctLjUxLjcgMS4yMS0xLjA3Ljg1LS44OS43LjE0IDEuMTN6TTEyIDhjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2hvcDIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTZ2LTJIM1Y5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA1VjNjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDV2MTFjMCAxLjExLjg5IDIgMiAyaDE0YzEuMTEgMCAyLS44OSAyLTJWNWgtNXptLTYtMmg0djJoLTRWM3ptOSAxM0g3VjdoMTR2OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOHY3bDUuNS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9wVHdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDlIMXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMkgzVjl6bTE1LTRWM2MwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINXYxMWMwIDEuMTEuODkgMiAyIDJoMTRjMS4xMSAwIDItLjg5IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem05IDEzSDdWN2gxNHY5em0tOS0xIDUuNS00TDEyIDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2VjRjMC0xLjExLS44OS0yLTItMmgtNGMtMS4xMSAwLTIgLjg5LTIgMnYySDJ2MTNjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmgtNnptLTYtMmg0djJoLTRWNHptMTAgMTVINFY4aDE2djExek05IDE4bDcuNS01TDkgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNmgtMmMwLTIuMjEtMS43OS00LTQtNFM4IDMuNzkgOCA2SDZjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTYtMmMxLjEgMCAyIC45IDIgMmgtNGMwLTEuMS45LTIgMi0yem02IDE2SDZWOGgydjJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xVjhoNHYyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMVY4aDJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9wcGluZ0Jhc2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOWgtNC43OWwtNC4zOC02LjU2Yy0uMTktLjI4LS41MS0uNDItLjgzLS40MnMtLjY0LjE0LS44My40M0w2Ljc5IDlIMmMtLjU1IDAtMSAuNDUtMSAxIDAgLjA5LjAxLjE4LjA0LjI3bDIuNTQgOS4yN2MuMjMuODQgMSAxLjQ2IDEuOTIgMS40NmgxM2MuOTIgMCAxLjY5LS42MiAxLjkzLTEuNDZsMi41NC05LjI3TDIzIDEwYzAtLjU1LS40NS0xLTEtMXpNMTIgNC44IDE0LjggOUg5LjJMMTIgNC44ek0xOC41IDE5bC0xMi45OS4wMUwzLjMxIDExSDIwLjdsLTIuMiA4ek0xMiAxM2MtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9wcGluZ0NhcnRDaGVja291dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6bTEwIDBjLTEuMSAwLTEuOTkuOS0xLjk5IDJzLjg5IDIgMS45OSAyIDItLjkgMi0yLS45LTItMi0yem0tOC45LTVoNy40NWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNMMjEgNC45NiAxOS4yNSA0bC0zLjcgN0g4LjUzTDQuMjcgMkgxdjJoMmwzLjYgNy41OS0xLjM1IDIuNDRDNC41MiAxNS4zNyA1LjQ4IDE3IDcgMTdoMTJ2LTJIN2wxLjEtMnpNMTIgMmw0IDQtNCA0LTEuNDEtMS40MUwxMi4xNyA3SDhWNWg0LjE3bC0xLjU5LTEuNTlMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3BwaW5nQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTUgMTNjLjc1IDAgMS40MS0uNDEgMS43NS0xLjAzbDMuNTgtNi40OUEuOTk2Ljk5NiAwIDAgMCAyMC4wMSA0SDUuMjFsLS45NC0ySDF2MmgybDMuNiA3LjU5LTEuMzUgMi40NEM0LjUyIDE1LjM3IDUuNDggMTcgNyAxN2gxMnYtMkg3bDEuMS0yaDcuNDV6TTYuMTYgNmgxMi4xNWwtMi43NiA1SDguNTNMNi4xNiA2ek03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yem0xMCAwYy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtYXJ0QnV0dG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOXY2YzAgMS4xLS45IDItMiAyaC0xdi0yaDFWOUg0djZoNnYySDRjLTEuMSAwLTItLjktMi0yVjljMC0xLjEuOS0yIDItMmgxNmMxLjEgMCAyIC45IDIgMnptLTcuNSAxMCAxLjA5LTIuNDFMMTggMTUuNWwtMi40MS0xLjA5TDE0LjUgMTJsLTEuMDkgMi40MUwxMSAxNS41bDIuNDEgMS4wOUwxNC41IDE5em0yLjUtNSAuNjItMS4zOEwxOSAxMmwtMS4zOC0uNjJMMTcgMTBsLS42MiAxLjM4TDE1IDEybDEuMzguNjJMMTcgMTR6bS0yLjUgNSAxLjA5LTIuNDFMMTggMTUuNWwtMi40MS0xLjA5TDE0LjUgMTJsLTEuMDkgMi40MUwxMSAxNS41bDIuNDEgMS4wOUwxNC41IDE5em0yLjUtNSAuNjItMS4zOEwxOSAxMmwtMS4zOC0uNjJMMTcgMTBsLS42MiAxLjM4TDE1IDEybDEuMzguNjJMMTcgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3VyY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6bS0yLTZINnYtMmgxMnYyem0tNCA0SDZ2LTJoOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BhY2VEYXNoYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNNSAxOVY1aDZ2MTRINXptMTQgMGgtNnYtN2g2djd6bTAtOWgtNlY1aDZ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwYXRpYWxBdWRpb09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEzYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNMTYuMzkgMTUuNTZDMTQuNzEgMTQuNyAxMi41MyAxNCAxMCAxNHMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMiAxOC4yMlYyMWgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xNiAxOUg0di0uNzhjMC0uMzguMi0uNzIuNTItLjg4QzUuNzEgMTYuNzMgNy42MyAxNiAxMCAxNmMyLjM3IDAgNC4yOS43MyA1LjQ4IDEuMzQuMzIuMTYuNTIuNS41Mi44OFYxOXpNMjAuMzYgMWwtMS40MSAxLjQxYTcuMDA3IDcuMDA3IDAgMCAxIDAgOS45bDEuNDEgMS40MWE4Ljk4IDguOTggMCAwIDAgMC0xMi43MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNTQgMTAuOWE1LjAwMyA1LjAwMyAwIDAgMCAwLTcuMDdsLTEuNDEgMS40MWEzIDMgMCAwIDEgMCA0LjI0bDEuNDEgMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwYXRpYWxBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEzYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnpNMTYuMzkgMTUuNTZDMTQuNzEgMTQuNyAxMi41MyAxNCAxMCAxNHMtNC43MS43LTYuMzkgMS41NkEyLjk3IDIuOTcgMCAwIDAgMiAxOC4yMlYyMWgxNnYtMi43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xNiAxOUg0di0uNzhjMC0uMzguMi0uNzIuNTItLjg4QzUuNzEgMTYuNzMgNy42MyAxNiAxMCAxNmMyLjM3IDAgNC4yOS43MyA1LjQ4IDEuMzQuMzIuMTYuNTIuNS41Mi44OFYxOXpNMTYgMWgtMmE5IDkgMCAwIDAgOSA5VjhjLTMuODYgMC03LTMuMTQtNy03elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxaC0yYzAgMi43NiAyLjI0IDUgNSA1VjRjLTEuNjUgMC0zLTEuMzUtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BhdGlhbFRyYWNraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTNjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yek0xNi4zOSAxNS41NkMxNC43MSAxNC43IDEyLjUzIDE0IDEwIDE0cy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAyIDE4LjIyVjIxaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE2IDE5SDR2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNS43MSAxNi43MyA3LjYzIDE2IDEwIDE2YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE5ek0yMC4wNSAyLjQxIDE4LjY0IDFjLTMuNTEgMy41MS0zLjUxIDkuMjEgMCAxMi43M2wxLjQxLTEuNDFjLTIuNzMtMi43NC0yLjczLTcuMTggMC05LjkxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi44OCA1LjI0LTEuNDEtMS40MWE1LjAwMyA1LjAwMyAwIDAgMCAwIDcuMDdsMS40MS0xLjQxYTMuMDEyIDMuMDEyIDAgMCAxIDAtNC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWFrZXJOb3Rlc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNHYxMmgtMS4zNGwxLjkxIDEuOTFBMi4wMSAyLjAxIDAgMCAwIDIyIDE2VjRjMC0xLjEtLjktMi0yLTJINC42NmwyIDJIMjB6TTYgMTJoMnYySDZ6bTEyLTNoLTYuMzRsMiAySDE4em0wLTNoLTh2MS4zNGwuNjYuNjZIMTh6TTEuNDEgMS41OSAwIDNsMi4wMSAyLjAxTDIgMjJsNC00aDlsNS43MyA1LjczIDEuNDEtMS40MUwxLjQxIDEuNTl6TTUuMTcgMTYgNCAxNy4xN1Y3bDIgMnYyaDJsNSA1SDUuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGVha2VyTm90ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdsLS41OS41OS0uNTguNThWNGgxNnYxMnpNNiAxMmgydjJINnptMC0zaDJ2Mkg2em0wLTNoMnYySDZ6bTQgNmg1djJoLTV6bTAtM2g4djJoLTh6bTAtM2g4djJoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGVsbGNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi40NSAxNmgyLjA5TDkuNDMgM0g3LjU3TDIuNDYgMTZoMi4wOWwxLjEyLTNoNS42NGwxLjE0IDN6bS02LjAyLTVMOC41IDUuNDggMTAuNTcgMTFINi40M3ptMTUuMTYuNTktOC4wOSA4LjA5TDkuODMgMTZsLTEuNDEgMS40MSA1LjA5IDUuMDlMMjMgMTNsLTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJSYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgOC44OS45NCAzLjExaDIuODJsLTIuMjcgMS42Mi45MyAzLjAxTDEyIDE0Ljc5bC0yLjQyIDEuODQuOTMtMy4wMUw4LjI0IDEyaDIuODJMMTIgOC44OU0xMiAybC0yLjQyIDhIMmw2LjE3IDQuNDFMNS44MyAyMiAxMiAxNy4zMSAxOC4xOCAyMmwtMi4zNS03LjU5TDIyIDEwaC03LjU4TDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNy40OCA3LjE2LTUuMDEtLjQzLTItNC43MWMzLjIxLjE5IDUuOTEgMi4yNyA3LjAxIDUuMTR6bS01LjA3IDYuMjZMMTIgMTMuOThsLTIuMzkgMS40NC42My0yLjcyLTIuMTEtMS44MyAyLjc4LS4yNEwxMiA4LjA2bDEuMDkgMi41NiAyLjc4LjI0LTIuMTEgMS44My42NCAyLjczem0tMi44Ni0xMS40LTIgNC43Mi01LjAyLjQzYzEuMS0yLjg4IDMuOC00Ljk3IDcuMDItNS4xNXpNNCAxMmMwLS42NC4wOC0xLjI2LjIzLTEuODZsMy43OSAzLjI4LTEuMTEgNC43NUE3Ljk4MiA3Ljk4MiAwIDAgMSA0IDEyem0zLjg0IDYuODJMMTIgMTYuMzFsNC4xNiAyLjVBNy45MjQgNy45MjQgMCAwIDEgMTEuOTkgMjBjLTEuNTIgMC0yLjk0LS40NC00LjE1LTEuMTh6bTkuMjUtLjY1LTEuMTEtNC43NSAzLjc5LTMuMjhjLjE0LjU5LjIzIDEuMjIuMjMgMS44NiAwIDIuNDgtMS4xNCA0LjctMi45MSA2LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RpY2t5Tm90ZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djloLTV2NUg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTBsNi02VjVjMC0xLjEtLjktMi0yLTJ6bS03IDExSDd2LTJoNXYyem01LTRIN1Y4aDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguMzYgOSAuNiAzSDUuMDRsLjYtM2gxMi43Mk0yMCA0SDR2MmgxNlY0em0wIDNINGwtMSA1djJoMXY2aDEwdi02aDR2Nmgydi02aDF2LTJsLTEtNXpNNiAxOHYtNGg2djRINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YmplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDE3SDR2MmgxMHYtMnptNi04SDR2MmgxNlY5ek00IDE1aDE2di0ySDR2MnpNNCA1djJoMTZWNUg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VidGl0bGVzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg2LjgzbDIgMkgyMHYxMS4xN2wxLjc2IDEuNzZjLjE1LS4yOC4yNC0uNTkuMjQtLjkzVjZjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEwaC01LjE3bDIgMkgxOHpNMS4wNCAzLjg3bDEuMiAxLjJDMi4wOSA1LjM1IDIgNS42NiAyIDZ2MTJjMCAxLjEuOSAyIDIgMmgxMy4xN2wyLjk2IDIuOTYgMS40MS0xLjQxTDIuNDUgMi40NSAxLjA0IDMuODd6TTQgNi44MyA3LjE3IDEwSDZ2Mmgydi0xLjE3TDExLjE3IDE0SDZ2Mmg3LjE3bDIgMkg0VjYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdXBlcnZpc2VkVXNlckNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMGMwLTEuNjUtMS4zNS0zLTMtM3MtMyAxLjM1LTMgMyAxLjM1IDMgMyAzIDMtMS4zNSAzLTN6bS0zIDFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNi41IDJjMS4xMSAwIDItLjg5IDItMiAwLTEuMTEtLjg5LTItMi0yLTEuMTEgMC0yLjAxLjg5LTIgMiAwIDEuMTEuODkgMiAyIDJ6TTExLjk5IDIuMDFjLTUuNTIgMC0xMCA0LjQ4LTEwIDEwczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMC00LjQ4LTEwLTEwLTEwek01Ljg0IDE3LjEyYy42OC0uNTQgMi4yNy0xLjExIDMuNjYtMS4xMS4wNyAwIC4xNS4wMS4yMy4wMS4yNC0uNjQuNjctMS4yOSAxLjMtMS44NkE5LjA1IDkuMDUgMCAwIDAgOS41IDE0Yy0xLjMgMC0zLjM5LjQ1LTQuNzMgMS40My0uNS0xLjA0LS43OC0yLjItLjc4LTMuNDMgMC00LjQxIDMuNTktOCA4LThzOCAzLjU5IDggOGMwIDEuMi0uMjcgMi4zNC0uNzUgMy4zNy0xLS41OS0yLjM2LS44Ny0zLjI0LS44Ny0xLjUyIDAtNC41LjgxLTQuNSAyLjd2Mi43OGE3LjkzNSA3LjkzNSAwIDAgMS01LjY2LTIuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdXBlcnZpc29yQWNjb3VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxMC45MyA1IDkgNSA1LjUgNi41NyA1LjUgOC41IDcuMDcgMTIgOSAxMnptMC01Yy44MyAwIDEuNS42NyAxLjUgMS41UzkuODMgMTAgOSAxMHMtMS41LS42Ny0xLjUtMS41UzguMTcgNyA5IDd6bS4wNSAxMEg0Ljc3Yy45OS0uNSAyLjctMSA0LjIzLTEgLjExIDAgLjIzLjAxLjM0LjAxLjM0LS43My45My0xLjMzIDEuNjQtMS44MS0uNzMtLjEzLTEuNDItLjItMS45OC0uMi0yLjM0IDAtNyAxLjE3LTcgMy41VjE5aDd2LTEuNWMwLS4xNy4wMi0uMzQuMDUtLjV6bTcuNDUtMi41Yy0xLjg0IDAtNS41IDEuMDEtNS41IDNWMTloMTF2LTEuNWMwLTEuOTktMy42Ni0zLTUuNS0zem0xLjIxLTEuODJjLjc2LS40MyAxLjI5LTEuMjQgMS4yOS0yLjE4YTIuNSAyLjUgMCAwIDAtNSAwYzAgLjk0LjUzIDEuNzUgMS4yOSAyLjE4LjM2LjIuNzcuMzIgMS4yMS4zMnMuODUtLjEyIDEuMjEtLjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VwcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTcuNDYgNy4xMi0yLjc4IDEuMTVhNC45ODIgNC45ODIgMCAwIDAtMi45NS0yLjk0bDEuMTUtMi43OGMyLjEuOCAzLjc3IDIuNDcgNC41OCA0LjU3ek0xMiAxNWMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6TTkuMTMgNC41NGwxLjE3IDIuNzhhNSA1IDAgMCAwLTIuOTggMi45N0w0LjU0IDkuMTNhNy45ODQgNy45ODQgMCAwIDEgNC41OS00LjU5ek00LjU0IDE0Ljg3bDIuNzgtMS4xNWE0Ljk2OCA0Ljk2OCAwIDAgMCAyLjk3IDIuOTZsLTEuMTcgMi43OGE3Ljk5NiA3Ljk5NiAwIDAgMS00LjU4LTQuNTl6bTEwLjM0IDQuNTktMS4xNS0yLjc4YTQuOTc4IDQuOTc4IDAgMCAwIDIuOTUtMi45N2wyLjc4IDEuMTdhOC4wMDcgOC4wMDcgMCAwIDEtNC41OCA0LjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dhcEhvcml6IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02Ljk5IDExIDMgMTVsMy45OSA0di0zSDE0di0ySDYuOTl2LTN6TTIxIDlsLTMuOTktNHYzSDEwdjJoNy4wMXYzTDIxIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2FwSG9yaXpvbnRhbENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMtMTMuNVY5aC00djJoNHYyLjVsMy41LTMuNXptLTYgNEw1LjUgMTQgOSAxNy41VjE1aDR2LTJIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3YXBWZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNy4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzIDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3ptNyAxNC4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pNOSAzIDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3YXBWZXJ0aWNhbENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6TTYuNSA5IDEwIDUuNSAxMy41IDlIMTF2NEg5Vjl6bTExIDZMMTQgMTguNSAxMC41IDE1SDEzdi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEzLjlhNSA1IDAgMSAwLTIgMHY0LjI3bC0xLjU5LTEuNTlMOCAxOGw0IDQgNC00LTEuNDEtMS40MUwxMyAxOC4xN1YxMy45ek0xNSA5YzAgMS42Ni0xLjM0IDMtMyAzcy0zLTEuMzQtMy0zIDEuMzQtMyAzLTMgMyAxLjM0IDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjIyIDEwLTQuMTUuMDFhLjk3NS45NzUgMCAwIDAtLjQ1LjA4bC0uNTkuMjYtMS44My00LjFjLS41Ni0xLjI2LTIuMDQtMS44My0zLjMtMS4yN3MtMS44MyAyLjA0LTEuMjcgMy4zbDMuMyA3LjQ1LTEuODcuMzljLS4xOS4wNS0uOTkuMjctMS4zNiAxLjIxTDggMTkuMTlsNi43OCAyLjY3Yy40OS4xOSAxLjA1LjE4IDEuNTMtLjA0bDUuOTktMi42NWMuODktLjQgMS4zNy0xLjM4IDEuMTMtMi4zMmwtMS4zNi01LjM0Yy0uMjItLjg2LS45Ny0xLjQ3LTEuODUtMS41MXptMS4yNyA3LjM0TDE1LjUgMjBsLTQuOTItMS45NiA0LjE4LS44OC00LjMtOS43Yy0uMTEtLjI1IDAtLjU1LjI1LS42Ni4yNS0uMTEuNTUgMCAuNjYuMjVsMi41IDUuNjUgMS42MS0uNzEgNC42NS4wMSAxLjM2IDUuMzR6TTMuOCAxMi4xOGMtLjItLjg2LS4zLTEuNzYtLjMtMi42OCAwLTIuODQuOTktNS40NSAyLjYzLTcuNUw3LjIgMy4wN2ExMC40NTcgMTAuNDU3IDAgMCAwLTEuODggOC45OWwxLjYyLTEuNjJMOCAxMS41IDQuNSAxNSAxIDExLjVsMS4wNi0xLjA2IDEuNzQgMS43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlTGVmdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjEgMTNhNSA1IDAgMSAwIDAtMkg1LjgzbDEuNTktMS41OUw2IDhsLTQgNCA0IDQgMS40MS0xLjQxTDUuODMgMTNoNC4yN3ptNC45IDJjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODkgMTMuNzctMy44LTEuNjdjLS4xMy0uMDYtLjI4LS4xLS40NC0uMUgxNFY3LjVhMi41IDIuNSAwIDAgMC01IDB2OC4xNWwtMS44Ny0uNGMtLjE5LS4wMy0xLjAyLS4xNS0xLjczLjU2TDQgMTcuMjJsNS4xMiA1LjE5Yy4zNy4zOC44OC41OSAxLjQxLjU5aDYuNTVjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjkyLTUuNDRhMiAyIDAgMCAwLTEuMDgtMi4xMnpNMTcuMDggMjFoLTYuNTVsLTMuNy0zLjc4IDQuMTcuODlWNy41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djYuMThoMS43NkwxOCAxNS41NiAxNy4wOCAyMXpNNC4wOSA1LjVIN1Y3SDJWMmgxLjV2Mi4wMkM1LjgyIDIuMTMgOC43OCAxIDEyIDFjNS40OSAwIDkuMjcgMy4xMiAxMCA2aC0xLjU3Yy0uNzYtMS45OC0zLjY5LTQuNS04LjQzLTQuNS0zLjAzIDAtNS43OSAxLjE0LTcuOTEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlUmlnaHRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45IDExYTUgNSAwIDEgMCAwIDJoNC4yN2wtMS41OSAxLjU5TDE4IDE2bDQtNC00LTQtMS40MSAxLjQxTDE4LjE3IDExSDEzLjl6TTkgOWMxLjY2IDAgMyAxLjM0IDMgM3MtMS4zNCAzLTMgMy0zLTEuMzQtMy0zIDEuMzQtMyAzLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2lwZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTguODkgMTMuNzctMy44LTEuNjdjLS4xMy0uMDYtLjI4LS4xLS40NC0uMUgxNFY3LjVhMi41IDIuNSAwIDAgMC01IDB2OC4xNWwtMS44Ny0uNGMtLjE5LS4wMy0xLjAyLS4xNS0xLjczLjU2TDQgMTcuMjJsNS4xMiA1LjE5Yy4zNy4zOC44OC41OSAxLjQxLjU5aDYuNTVjLjk4IDAgMS44MS0uNyAxLjk3LTEuNjdsLjkyLTUuNDRhMiAyIDAgMCAwLTEuMDgtMi4xMnpNMTcuMDggMjFoLTYuNTVsLTMuNy0zLjc4IDQuMTcuODlWNy41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djYuMThoMS43NkwxOCAxNS41NiAxNy4wOCAyMXpNMTIgMi41QzcuMjYgMi41IDQuMzMgNS4wMiAzLjU3IDdIMmMuNzMtMi44OCA0LjUxLTYgMTAtNiAzLjIyIDAgNi4xOCAxLjEzIDguNSAzLjAyVjJIMjJ2NWgtNVY1LjVoMi45MWMtMi4xMi0xLjg2LTQuODgtMy03LjkxLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2lwZVVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgNS44MyAxLjU5IDEuNTlMMTYgNmwtNC00LTQgNCAxLjQxIDEuNDFMMTEgNS44M3Y0LjI3YTUgNSAwIDEgMCAyIDBWNS44M3pNMTIgMThjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjIyIDEwLTQuMTUuMDFhLjk3NS45NzUgMCAwIDAtLjQ1LjA4bC0uNTkuMjYtMS44My00LjFjLS41Ni0xLjI2LTIuMDQtMS44My0zLjMtMS4yN3MtMS44MyAyLjA0LTEuMjcgMy4zbDMuMyA3LjQ1LTEuODcuMzljLS4xOS4wNS0uOTkuMjctMS4zNiAxLjIxTDggMTkuMTlsNi43OCAyLjY3Yy40OS4xOSAxLjA1LjE4IDEuNTMtLjA0bDUuOTktMi42NWMuODktLjQgMS4zNy0xLjM4IDEuMTMtMi4zMmwtMS4zNi01LjM0Yy0uMjItLjg2LS45Ny0xLjQ3LTEuODUtMS41MXptMS4yNyA3LjM0TDE1LjUgMjBsLTQuOTItMS45NiA0LjE4LS44OC00LjMtOS43Yy0uMTEtLjI1IDAtLjU1LjI1LS42Ni4yNS0uMTEuNTUgMCAuNjYuMjVsMi41IDUuNjUgMS42MS0uNzEgNC42NS4wMSAxLjM2IDUuMzR6TTIuMDYgNS41NiAxIDQuNSA0LjUgMSA4IDQuNSA2Ljk0IDUuNTYgNS4zMiAzLjk0YTEwLjQ1NyAxMC40NTcgMCAwIDAgMS44OCA4Ljk5TDYuMTMgMTRBMTEuOTc0IDExLjk3NCAwIDAgMSAzLjUgNi41YzAtLjkyLjEtMS44Mi4zLTIuNjhMMi4wNiA1LjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpcGVWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMmg1djVINC41VjQuMDljLTEuODYgMi4xMS0zIDQuODgtMyA3LjkxczEuMTQgNS43OSAzIDcuOTFWMTdINnY1SDF2LTEuNWgyLjAyQzEuMTMgMTguMTggMCAxNS4yMiAwIDEyczEuMTMtNi4xOCAzLjAyLTguNUgxVjJ6bTE5LjIyIDgtNC4xNS4wMWEuOTc1Ljk3NSAwIDAgMC0uNDUuMDhsLS41OS4yNi0xLjgzLTQuMWMtLjU2LTEuMjYtMi4wNC0xLjgzLTMuMy0xLjI3cy0xLjgzIDIuMDQtMS4yNyAzLjNsMy4zIDcuNDUtMS44Ny4zOWMtLjE5LjA1LS45OS4yNy0xLjM2IDEuMjFMOCAxOS4xOWw2Ljc4IDIuNjdjLjQ5LjE5IDEuMDUuMTggMS41My0uMDRsNS45OS0yLjY1Yy44OS0uNCAxLjM3LTEuMzggMS4xMy0yLjMybC0xLjM2LTUuMzRjLS4yMi0uODYtLjk3LTEuNDctMS44NS0xLjUxem0xLjI3IDcuMzRMMTUuNSAyMGwtNC45Mi0xLjk2IDQuMTgtLjg4LTQuMy05LjdjLS4xMS0uMjUgMC0uNTUuMjUtLjY2LjI1LS4xMS41NSAwIC42Ni4yNWwyLjUgNS42NSAxLjYxLS43MSA0LjY1LjAxIDEuMzYgNS4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAydjIuMDJDMTguMTggMi4xMyAxNS4yMiAxIDEyIDFTNS44MiAyLjEzIDMuNSA0LjAyVjJIMnY1aDVWNS41SDQuMDljMi4xMS0xLjg2IDQuODgtMyA3LjkxLTNzNS43OSAxLjE0IDcuOTEgM0gxN1Y3aDVWMmgtMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC44OSAxMy43Ny0zLjgtMS42N2MtLjEzLS4wNi0uMjgtLjEtLjQ0LS4xSDE0VjcuNjNjMC0xLjMyLS45Ni0yLjUtMi4yNy0yLjYyQTIuNTA4IDIuNTA4IDAgMCAwIDkgNy41djguMTVsLTEuODctLjRjLS4xOS0uMDMtMS4wMi0uMTUtMS43My41Nkw0IDE3LjIybDUuMTIgNS4xOWMuMzcuMzguODguNTkgMS40MS41OWg2LjU1Yy45OCAwIDEuODEtLjcgMS45Ny0xLjY3bC45Mi01LjQ0YTIgMiAwIDAgMC0xLjA4LTIuMTJ6TTE4IDE1LjU2IDE3LjA4IDIxaC02LjU1bC0zLjctMy43OCA0LjE3Ljg5VjcuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY2LjE4aDEuNzZMMTggMTUuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hBY2Nlc3NTaG9ydGN1dEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDYgOC45NCA1IDhsMi4wNi0uOTRMOCA1bC45NCAyLjA2TDExIDhsLTIuMDYuOTRMOCAxMWwtLjk0LTIuMDZ6TTggMjFsLjk0LTIuMDZMMTEgMThsLTIuMDYtLjk0TDggMTVsLS45NCAyLjA2TDUgMThsMi4wNi45NEw4IDIxem0tMy42My04LjYzTDMgMTNsMS4zNy42M0w1IDE1bC42My0xLjM3TDcgMTNsLTEuMzctLjYzTDUgMTFsLS42MyAxLjM3ek0xMiAxMmMwLTMuMDkgMS4zOC01Ljk0IDMuNDQtOEgxMlYyaDd2N2gtMlY1LjI4Yy0xLjggMS43NC0zIDQuMi0zIDYuNzIgMCAzLjMyIDIuMSA2LjM2IDUgNy44MlYyMmMtNC4wOS0xLjU5LTctNS42NS03LTEwem0xMiAyaC0ydi0yaC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpdGNoQWNjZXNzU2hvcnRjdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjA2IDguOTQgNSA4bDIuMDYtLjk0TDggNWwuOTQgMi4wNkwxMSA4bC0yLjA2Ljk0TDggMTFsLS45NC0yLjA2ek04IDIxbC45NC0yLjA2TDExIDE4bC0yLjA2LS45NEw4IDE1bC0uOTQgMi4wNkw1IDE4bDIuMDYuOTRMOCAyMXptLTMuNjMtOC42M0wzIDEzbDEuMzcuNjNMNSAxNWwuNjMtMS4zN0w3IDEzbC0xLjM3LS42M0w1IDExbC0uNjMgMS4zN3pNMTIgMTJjMC0zLjA5IDEuMzgtNS45NCAzLjQ0LThIMTJWMmg3djdoLTJWNS4yOGMtMS44IDEuNzQtMyA0LjItMyA2LjcyIDAgMy4zMiAyLjEgNi4zNiA1IDcuODJWMjJjLTQuMDktMS41OS03LTUuNjUtNy0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5bmNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQxIDEzLjQxIDYgMTJsLTQgNCA0IDQgMS40MS0xLjQxTDUuODMgMTdIMjF2LTJINS44M3pNMTYuNTkgMTAuNTkgMTggMTJsNC00LTQtNC0xLjQxIDEuNDFMMTguMTcgN0gzdjJoMTUuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTeXN0ZW1VcGRhdGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDE2IDQtNGgtM1YzaC0ydjlIOGw0IDR6bTktMTNoLTZ2MS45OWg2djE0LjAzSDNWNC45OWg2VjNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tOSAxMyA0LTRoLTNWM2gtMnY5SDhsNCA0em05LTEzaC02djEuOTloNnYxNC4wM0gzVjQuOTloNlYzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYlVuc2VsZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgOWgyVjdIMXYyem0wIDRoMnYtMkgxdjJ6bTAtOGgyVjNjLTEuMSAwLTIgLjktMiAyem04IDE2aDJ2LTJIOXYyem0tOC00aDJ2LTJIMXYyem0yIDR2LTJIMWMwIDEuMS45IDIgMiAyek0yMSAzaC04djZoMTBWNWMwLTEuMS0uOS0yLTItMnptMCAxNGgydi0yaC0ydjJ6TTkgNWgyVjNIOXYyek01IDIxaDJ2LTJINXYyek01IDVoMlYzSDV2MnptMTYgMTZjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC04aDJ2LTJoLTJ2MnptLTggOGgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWJsZVZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3SDljLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptMCAydjJIOVY5aDEwem0tNiA2di0yaDJ2MmgtMnptMiAydjJoLTJ2LTJoMnptLTQtMkg5di0yaDJ2MnptNi0yaDJ2MmgtMnYtMnptLTggNGgydjJIOXYtMnptOCAydi0yaDJ2MmgtMnpNNiAxN0g1Yy0xLjEgMC0yLS45LTItMlY1YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJ2MWgtMlY1SDV2MTBoMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFza0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDUuMTggMTAuNTkgMTYuNmwtNC4yNC00LjI0IDEuNDEtMS40MSAyLjgzIDIuODMgMTAtMTBMMjIgNS4xOHptLTIuMjEgNS4wNGMuMTMuNTcuMjEgMS4xNy4yMSAxLjc4IDAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04IDMuNTgtOCA4LThjMS41OCAwIDMuMDQuNDYgNC4yOCAxLjI1bDEuNDQtMS40NEE5LjkgOS45IDAgMCAwIDEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLTEuMTktLjIyLTIuMzMtLjYtMy4zOWwtMS42MSAxLjYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptMCAxNEg0VjhoMTZ2MTB6bS0yLTFoLTZ2LTJoNnYyek03LjUgMTdsLTEuNDEtMS40MUw4LjY3IDEzbC0yLjU5LTIuNTlMNy41IDlsNCA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRSb3RhdGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNC0zIDNoMnYxM2gyVjdoMmwtMy0zem0tNi4yIDExLjV2LTVsMi4yLS45VjcuNUwzIDEyLjI1djEuNWwxMSA0Ljc1di0yLjFsLTIuMi0uOXpNNC45OCAxMyAxMCAxMS4xM3YzLjc0TDQuOTggMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0Um90YXRlVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ljc1IDVoLTEuNUw5LjUgMTZoMi4xbC45LTIuMmg1bC45IDIuMmgyLjFMMTUuNzUgNXptLTIuNjIgN0wxNSA2Ljk4IDE2Ljg3IDEyaC0zLjc0ek02IDIwbDMtM0g3VjRINXYxM0gzbDMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRSb3RhdGlvbkFuZ2xlZG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMjF2LTQuMjRsLTEuNDEgMS40MS05LjItOS4xOS0xLjQxIDEuNDEgOS4xOSA5LjE5TDEwLjc2IDIxSDE1ek0xMS4yNSA4LjQ4bDMuNTQgMy41NC0uOTIgMi4xOSAxLjQ4IDEuNDggNC40Mi0xMS4xNC0xLjA2LTEuMDVMNy41NyA3LjkyIDkuMDYgOS40bDIuMTktLjkyem02LjU5LTMuMDUtMi4yMyA0Ljg3LTIuNjQtMi42NCA0Ljg3LTIuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0Um90YXRpb25BbmdsZXVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi43NiA5IDEuNDEgMS40MS05LjE5IDkuMTkgMS40MSAxLjQxIDkuMTktOS4xOUwyMSAxMy4yNFY5aC00LjI0em0tOC4yOCAzLjc1IDMuNTQtMy41NCAyLjE5LjkyIDEuNDgtMS40OEw0LjU2IDQuMjMgMy41IDUuMjlsNC40MiAxMS4xNCAxLjQ4LTEuNDgtLjkyLTIuMnptLS44Mi0xLjcyTDUuNDMgNi4xNmw0Ljg3IDIuMjMtMi42NCAyLjY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dFJvdGF0aW9uRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAyMCAzLTNIN1Y0SDV2MTNIM2wzIDN6bTYuMi0xMS41djVsLTIuMi45djIuMWwxMS00Ljc1di0xLjVMMTAgNS41djIuMWwyLjIuOXptNi44MiAyLjVMMTQgMTIuODdWOS4xM0wxOS4wMiAxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRSb3RhdGlvbk5vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDE4LTMtM3YySDV2MmgxM3YybDMtM3pNOS41IDExLjhoNWwuOSAyLjJoMi4xTDEyLjc1IDNoLTEuNUw2LjUgMTRoMi4xbC45LTIuMnpNMTIgNC45OCAxMy44NyAxMGgtMy43NEwxMiA0Ljk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGhlYXRlcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDN2MmgtMlYzSDh2Mkg2VjNINHYxOGgydi0yaDJ2Mmg4di0yaDJ2MmgyVjNoLTJ6TTggMTdINnYtMmgydjJ6bTAtNEg2di0yaDJ2MnptMC00SDZWN2gydjJ6bTYgMTBoLTRWNWg0djE0em00LTJoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyem0wLTRoLTJWN2gydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaHVtYkRvd25PZmZBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MmMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OS02LjU5Yy4zNi0uMzYuNTgtLjg2LjU4LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptMCAxMi00LjM0IDQuMzRMMTIgMTRIM3YtMmwzLTdoOXYxMHptNC0xMmg0djEyaC00VjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaHVtYkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINmMtLjgzIDAtMS41NC41LTEuODQgMS4yMmwtMy4wMiA3LjA1Yy0uMDkuMjMtLjE0LjQ3LS4xNC43M3YyYzAgMS4xLjkgMiAyIDJoNi4zMWwtLjk1IDQuNTctLjAzLjMyYzAgLjQxLjE3Ljc5LjQ0IDEuMDZMOS44MyAyM2w2LjU5LTYuNTljLjM2LS4zNi41OC0uODYuNTgtMS40MVY1YzAtMS4xLS45LTItMi0yem0wIDEyLTQuMzQgNC4zNEwxMiAxNEgzdi0ybDMtN2g5djEwem00LTEyaDR2MTJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaHVtYlVwT2ZmQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAyMWg5Yy44MyAwIDEuNTQtLjUgMS44NC0xLjIybDMuMDItNy4wNWMuMDktLjIzLjE0LS40Ny4xNC0uNzN2LTJjMC0xLjEtLjktMi0yLTJoLTYuMzFsLjk1LTQuNTcuMDMtLjMyYzAtLjQxLS4xNy0uNzktLjQ0LTEuMDZMMTQuMTcgMSA3LjU4IDcuNTlDNy4yMiA3Ljk1IDcgOC40NSA3IDl2MTBjMCAxLjEuOSAyIDIgMnpNOSA5bDQuMzQtNC4zNEwxMiAxMGg5djJsLTMgN0g5Vjl6TTEgOWg0djEySDFWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW1iVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMjFoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0yYzAtMS4xLS45LTItMi0yaC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OCA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJ6TTkgOWw0LjM0LTQuMzRMMTIgMTBoOXYybC0zIDdIOVY5ek0xIDloNHYxMkgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGh1bWJzVXBEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzAtLjU1LS40NS0xLTEtMUg1LjgybC42Ni0zLjE4LjAyLS4yM2MwLS4zMS0uMTMtLjU5LS4zMy0uOEw1LjM4IDAgLjQ0IDQuOTRDLjE3IDUuMjEgMCA1LjU5IDAgNnY2LjVjMCAuODMuNjcgMS41IDEuNSAxLjVoNi43NWMuNjIgMCAxLjE1LS4zOCAxLjM4LS45MWwyLjI2LTUuMjljLjA3LS4xNy4xMS0uMzYuMTEtLjU1VjZ6bS0yIDEuMTNMNy45MiAxMkgyVjYuMjFsMS45My0xLjkzTDMuMzYgN0gxMHYuMTN6TTIyLjUgMTBoLTYuNzVjLS42MiAwLTEuMTUuMzgtMS4zOC45MWwtMi4yNiA1LjI5Yy0uMDcuMTctLjExLjM2LS4xMS41NVYxOGMwIC41NS40NSAxIDEgMWg1LjE4bC0uNjYgMy4xOC0uMDIuMjRjMCAuMzEuMTMuNTkuMzMuOGwuNzkuNzggNC45NC00Ljk0Yy4yNy0uMjcuNDQtLjY1LjQ0LTEuMDZ2LTYuNWMwLS44My0uNjctMS41LTEuNS0xLjV6bS0uNSA3Ljc5LTEuOTMgMS45My41Ny0yLjcySDE0di0uMTNMMTYuMDggMTJIMjJ2NS43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpbWVsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgOGMwIDEuMS0uOSAyLTIgMmExLjcgMS43IDAgMCAxLS41MS0uMDdsLTMuNTYgMy41NWMuMDUuMTYuMDcuMzQuMDcuNTIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjE4LjAyLS4zNi4wNy0uNTJsLTIuNTUtMi41NWMtLjE2LjA1LS4zNC4wNy0uNTIuMDdzLS4zNi0uMDItLjUyLS4wN2wtNC41NSA0LjU2Yy4wNS4xNi4wNy4zMy4wNy41MSAwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTJjLjE4IDAgLjM1LjAyLjUxLjA3bDQuNTYtNC41NUM4LjAyIDkuMzYgOCA5LjE4IDggOWMwLTEuMS45LTIgMi0yczIgLjkgMiAyYzAgLjE4LS4wMi4zNi0uMDcuNTJsMi41NSAyLjU1Yy4xNi0uMDUuMzQtLjA3LjUyLS4wN3MuMzYuMDIuNTIuMDdsMy41NS0zLjU2QTEuNyAxLjcgMCAwIDEgMTkgOGMwLTEuMS45LTIgMi0yczIgLjkgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGlwc0FuZFVwZGF0ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIwaDRjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yem0tMi0xaDh2LTJINXYyem0xMS41LTkuNWMwIDMuODItMi42NiA1Ljg2LTMuNzcgNi41SDUuMjdjLTEuMTEtLjY0LTMuNzctMi42OC0zLjc3LTYuNUMxLjUgNS4zNiA0Ljg2IDIgOSAyczcuNSAzLjM2IDcuNSA3LjV6bS0yIDBDMTQuNSA2LjQ3IDEyLjAzIDQgOSA0UzMuNSA2LjQ3IDMuNSA5LjVjMCAyLjQ3IDEuNDkgMy44OSAyLjM1IDQuNWg2LjNjLjg2LS42MSAyLjM1LTIuMDMgMi4zNS00LjV6bTYuODctMi4xM0wyMCA4bDEuMzcuNjNMMjIgMTBsLjYzLTEuMzdMMjQgOGwtMS4zNy0uNjNMMjIgNmwtLjYzIDEuMzd6TTE5IDZsLjk0LTIuMDZMMjIgM2wtMi4wNi0uOTRMMTkgMGwtLjk0IDIuMDZMMTYgM2wyLjA2Ljk0TDE5IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgOWgxNFY3SDN2MnptMCA0aDE0di0ySDN2MnptMCA0aDE0di0ySDN2MnptMTYgMGgydi0yaC0ydjJ6bTAtMTB2MmgyVjdoLTJ6bTAgNmgydi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb2RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWOWgxNHYxMHptMC0xMkg1VjVoMTR2MnpNNyAxMWg1djVIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRva2VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEgNy05LTUtOSA1djEwbDkgNSA5LTVWN3ptLTktMi43MSA1LjkxIDMuMjgtMy4wMSAxLjY3QzE0LjE3IDguNDggMTMuMTQgOCAxMiA4cy0yLjE3LjQ4LTIuOSAxLjI0TDYuMDkgNy41NyAxMiA0LjI5em0tMSAxNC44Ny02LTMuMzNWOS4yNkw4LjEzIDExYy0uMDkuMzEtLjEzLjY1LS4xMyAxIDAgMS44NiAxLjI3IDMuNDMgMyAzLjg3djMuMjl6TTEwIDEyYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTMgNy4xNnYtMy4yOGMxLjczLS40NCAzLTIuMDEgMy0zLjg3IDAtLjM1LS4wNC0uNjktLjEzLTEuMDFMMTkgOS4yNnY2LjU3bC02IDMuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb2xsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6TTMgMTJhNS45OSA1Ljk5IDAgMCAxIDQtNS42NVY0LjI2QzMuNTUgNS4xNSAxIDguMjcgMSAxMnMyLjU1IDYuODUgNiA3Ljc0di0yLjA5QTUuOTkgNS45OSAwIDAgMSAzIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG91Y2hBcHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4xOSAxMi40NC0zLjI0LTEuNjJjMS4yOS0xIDIuMTItMi41NiAyLjEyLTQuMzIgMC0zLjAzLTIuNDctNS41LTUuNS01LjVzLTUuNSAyLjQ3LTUuNSA1LjVjMCAyLjEzIDEuMjIgMy45OCAzIDQuODl2My4yNmMtMi4xNS0uNDYtMi4wMi0uNDQtMi4yNi0uNDQtLjUzIDAtMS4wMy4yMS0xLjQxLjU5TDQgMTYuMjJsNS4wOSA1LjA5Yy40My40NCAxLjAzLjY5IDEuNjUuNjloNi4zYy45OCAwIDEuODEtLjcgMS45Ny0xLjY3bC44LTQuNzFjLjIyLTEuMy0uNDMtMi41OC0xLjYyLTMuMTh6bS0uMzUgMi44NS0uOCA0LjcxaC02LjNjLS4wOSAwLS4xNy0uMDQtLjI0LS4xbC0zLjY4LTMuNjggNC4yNS44OVY2LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2NmgxLjc2bDMuNDYgMS43M2MuNC4yLjYyLjYzLjU1IDEuMDZ6TTguMDcgNi41YzAtMS45MyAxLjU3LTMuNSAzLjUtMy41czMuNSAxLjU3IDMuNSAzLjVjMCAuOTUtLjM4IDEuODEtMSAyLjQ0VjYuNWEyLjUgMi41IDAgMCAwLTUgMHYyLjQ0Yy0uNjItLjYzLTEtMS40OS0xLTIuNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb3VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNEg3VjJINXYyMGgydi04aDE0bC0yLTUgMi01em0tMy44NiA1Ljc0LjkgMi4yNkg3VjZoMTEuMDVsLS45IDIuMjYtLjMuNzQuMjkuNzR6TTE0IDljMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhY2tDaGFuZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS4wNyA0LjkzLTEuNDEgMS40MUE4LjAxNCA4LjAxNCAwIDAgMSAyMCAxMmMwIDQuNDItMy41OCA4LTggOHMtOC0zLjU4LTgtOGMwLTQuMDggMy4wNS03LjQ0IDctNy45M3YyLjAyQzguMTYgNi41NyA2IDkuMDMgNiAxMmMwIDMuMzEgMi42OSA2IDYgNnM2LTIuNjkgNi02YzAtMS42Ni0uNjctMy4xNi0xLjc2LTQuMjRsLTEuNDEgMS40MUMxNS41NSA5LjkgMTYgMTAuOSAxNiAxMmMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNGMwLTEuODYgMS4yOC0zLjQxIDMtMy44NnYyLjE0Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlYyaC0xQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBjMC0yLjc2LTEuMTItNS4yNi0yLjkzLTcuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFuc2NyaWJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxM2MyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTYuMzkgOC41NkMxMy43MSAxNC43IDExLjUzIDE0IDkgMTRzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDEgMTguMjJWMjFoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTUgMTlIM3YtLjc4YzAtLjM4LjItLjcyLjUyLS44OEM0LjcxIDE2LjczIDYuNjMgMTYgOSAxNmMyLjM3IDAgNC4yOS43MyA1LjQ4IDEuMzQuMzIuMTYuNTIuNS41Mi44OFYxOXptMi45My0zIDEuNjMtMS42M2MtMi43Ny0zLjAyLTIuNzctNy41NiAwLTEwLjc0TDE3LjkzIDJjLTMuOSAzLjg5LTMuOTEgOS45NSAwIDE0em00Ljk5LTUuMDVhMy4zMTcgMy4zMTcgMCAwIDEgMC0zLjg5bC0xLjY4LTEuNjljLTIuMDIgMi4wMi0yLjAyIDUuMDcgMCA3LjI3bDEuNjgtMS42OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYW5zbGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuODcgMTUuMDctMi41NC0yLjUxLjAzLS4wM0ExNy41MiAxNy41MiAwIDAgMCAxNC4wNyA2SDE3VjRoLTdWMkg4djJIMXYxLjk5aDExLjE3QzExLjUgNy45MiAxMC40NCA5Ljc1IDkgMTEuMzUgOC4wNyAxMC4zMiA3LjMgOS4xOSA2LjY5IDhoLTJjLjczIDEuNjMgMS43MyAzLjE3IDIuOTggNC41NmwtNS4wOSA1LjAyTDQgMTlsNS01IDMuMTEgMy4xMS43Ni0yLjA0ek0xOC41IDEwaC0yTDEyIDIyaDJsMS4xMi0zaDQuNzVMMjEgMjJoMmwtNC41LTEyem0tMi42MiA3IDEuNjItNC4zM0wxOS4xMiAxN2gtMy4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyZW5kaW5nRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgMTggMi4yOS0yLjI5LTQuODgtNC44OC00IDRMMiA3LjQxIDMuNDEgNmw2IDYgNC00IDYuMyA2LjI5TDIyIDEydjZoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmVuZGluZ0ZsYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDEyLTQtNHYzSDN2MmgxNXYzbDQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyZW5kaW5nVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDYgMi4yOSAyLjI5LTQuODggNC44OC00LTRMMiAxNi41OSAzLjQxIDE4bDYtNiA0IDQgNi4zLTYuMjlMMjIgMTJWNmgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyb3VibGVzaG9vdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDIwLjU5LTQuNjktNC42OUE3LjkwMiA3LjkwMiAwIDAgMCAxOSAxMWMwLTQuNDItMy41OC04LTgtOC00LjA4IDAtNy40NCAzLjA1LTcuOTMgN2gyLjAyQzUuNTcgNy4xNyA4LjAzIDUgMTEgNWMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNmMtMi40MiAwLTQuNS0xLjQ0LTUuNDUtMy41SDMuNEM0LjQ1IDE2LjY5IDcuNDYgMTkgMTEgMTljMS44NSAwIDMuNTUtLjYzIDQuOS0xLjY5TDIwLjU5IDIyIDIyIDIwLjU5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjQzIDkuNjkgOS42NSAxNWgxLjY0bDEuMjYtMy43OC45NSAyLjI4aDJWMTJoLTFsLTEuMjUtM2gtMS41NGwtMS4xMiAzLjM3TDkuMzUgN0g3LjdsLTEuMjUgNEgxdjEuNWg2LjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg1LjE3TDQgMTcuMTdWNGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMTUgMS41Ny0zLjQzTDE3IDEwbC0zLjQzLTEuNTdMMTIgNWwtMS41NyAzLjQzTDcgMTBsMy40MyAxLjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVybmVkSW5Ob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnptMCAxNS01LTIuMThMNyAxOFY1aDEwdjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVybmVkSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMS45OS45LTEuOTkgMkw1IDIxbDctMyA3IDNWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVuZm9sZExlc3NEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41OCAxLjQxIDE1LjE2IDBsLTMuMTcgMy4xN0w4LjgyIDAgNy40MSAxLjQxIDExLjk5IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU4IDYuNDEgMTUuMTYgNWwtMy4xNyAzLjE3TDguODIgNSA3LjQxIDYuNDEgMTEuOTkgMTF6TTcuNDIgMTcuNTkgOC44NCAxOWwzLjE3LTMuMTdMMTUuMTggMTlsMS40MS0xLjQxTDEyLjAxIDEzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQyIDIyLjU5IDguODQgMjRsMy4xNy0zLjE3TDE1LjE4IDI0bDEuNDEtMS40MUwxMi4wMSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVuZm9sZE1vcmVEb3VibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjgzIDE1LjE3IDExbDEuNDEtMS40MUwxMiA1IDcuNDEgOS41OSA4LjgzIDExIDEyIDcuODN6bTAtNUwxNS4xNyA2bDEuNDEtMS40MUwxMiAwIDcuNDEgNC41OSA4LjgzIDYgMTIgMi44M3ptMCAxOC4zNEw4LjgzIDE4bC0xLjQxIDEuNDFMMTIgMjRsNC41OS00LjU5TDE1LjE3IDE4IDEyIDIxLjE3em0wLTVMOC44MyAxM2wtMS40MSAxLjQxTDEyIDE5bDQuNTktNC41OUwxNS4xNyAxMyAxMiAxNi4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVucHVibGlzaGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy45NCA1LjEyIDYuNDkgMy42NkE5LjkxIDkuOTEgMCAwIDEgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMCAwIDIuMDQtLjYxIDMuOTMtMS42NiA1LjUxbC0xLjQ2LTEuNDZBNy44NjkgNy44NjkgMCAwIDAgMjAgMTJjMC00LjQxLTMuNTktOC04LTgtMS40OCAwLTIuODYuNDEtNC4wNiAxLjEyem05LjcyIDQuNDEtMS40MS0xLjQxLTIuNjUgMi42NSAxLjQxIDEuNDEgMi42NS0yLjY1em0yLjEyIDEzLjA4LTIuMjctMi4yN0E5LjkxIDkuOTEgMCAwIDEgMTIgMjJDNi40OCAyMiAyIDE3LjUyIDIgMTJjMC0yLjA0LjYxLTMuOTMgMS42Ni01LjUxTDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnptLTMuNzItMy43M0wxMi4xOCAxNWwtMS41OSAxLjU5LTQuMjQtNC4yNCAxLjQxLTEuNDEgMi44MyAyLjgzLjE4LS4xOC01LjY1LTUuNjVBNy45MzIgNy45MzIgMCAwIDAgNCAxMmMwIDQuNDEgMy41OSA4IDggOCAxLjQ4IDAgMi44Ni0uNDEgNC4wNi0xLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXBkYXRlRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NCAxM2E4Ljg2NSA4Ljg2NSAwIDAgMS0xLjMzIDMuNzlsLTEuNDctMS40N2MuMzgtLjcxLjY1LTEuNDkuNzctMi4zMmgyLjAzek04LjY3IDUuODRBNy4wNiA3LjA2IDAgMCAxIDEyIDVhNy4wMSA3LjAxIDAgMCAxIDUuNzQgM0gxNXYyaDZWNGgtMnYyLjM2QzE3LjM1IDQuMzIgMTQuODMgMyAxMiAzYy0xLjc2IDAtMy40LjUxLTQuNzggMS4zOWwxLjQ1IDEuNDV6TTExIDd2MS4xN2wyIDJWN2gtMnptOC43OCAxNS42MS0zLTNBOC45NzMgOC45NzMgMCAwIDEgMTIgMjFhOSA5IDAgMCAxLTktOWMwLTEuNzYuNTEtMy40IDEuMzktNC43OGwtMy0zTDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyem0tNC40Ni00LjQ2TDUuODQgOC42N0E3LjA2IDcuMDYgMCAwIDAgNSAxMmMwIDMuODYgMy4xNCA3IDcgNyAxLjIgMCAyLjM0LS4zMSAzLjMyLS44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDh2NWw0LjI1IDIuNTIuNzctMS4yOC0zLjUyLTIuMDlWOEgxMXptMTAgMlYzbC0yLjY0IDIuNjRBOC45MzcgOC45MzcgMCAwIDAgMTIgM2E5IDkgMCAxIDAgOSA5aC0yYzAgMy44Ni0zLjE0IDctNyA3cy03LTMuMTQtNy03IDMuMTQtNyA3LTdjMS45MyAwIDMuNjguNzkgNC45NSAyLjA1TDE0IDEwaDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVcGdyYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTh2Mkg4di0yaDh6TTExIDcuOTlWMTZoMlY3Ljk5aDNMMTIgNCA4IDcuOTloM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcmlmaWVkVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMSAzIDV2NmMwIDUuNTUgMy44NCAxMC43NCA5IDEyIDUuMTYtMS4yNiA5LTYuNDUgOS0xMlY1bC05LTR6bTcgMTBjMCA0LjUyLTIuOTggOC42OS03IDkuOTMtNC4wMi0xLjI0LTctNS40MS03LTkuOTNWNi4zbDctMy4xMSA3IDMuMTFWMTF6bS0xMS41OS41OUw2IDEzbDQgNCA4LTgtMS40MS0xLjQyTDEwIDE0LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVyaWZpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxMS45OSAyMC41NiA5LjJsLjM0LTMuNjktMy42MS0uODJMMTUuNCAxLjUgMTIgMi45NiA4LjYgMS41IDYuNzEgNC42OSAzLjEgNS41bC4zNCAzLjdMMSAxMS45OWwyLjQ0IDIuNzktLjM0IDMuNyAzLjYxLjgyIDEuODkgMy4yIDMuNC0xLjQ3IDMuNCAxLjQ2IDEuODktMy4xOSAzLjYxLS44Mi0uMzQtMy42OSAyLjQ0LTIuOHptLTMuOTUgMS40OC0uNTYuNjUuMDguODUuMTggMS45NS0xLjkuNDMtLjg0LjE5LS40NC43NC0uOTkgMS42OC0xLjc4LS43Ny0uOC0uMzQtLjc5LjM0LTEuNzguNzctLjk5LTEuNjctLjQ0LS43NC0uODQtLjE5LTEuOS0uNDMuMTgtMS45Ni4wOC0uODUtLjU2LS42NUwzLjY3IDEybDEuMjktMS40OC41Ni0uNjUtLjA5LS44Ni0uMTgtMS45NCAxLjktLjQzLjg0LS4xOS40NC0uNzQuOTktMS42OCAxLjc4Ljc3LjguMzQuNzktLjM0IDEuNzgtLjc3Ljk5IDEuNjguNDQuNzQuODQuMTkgMS45LjQzLS4xOCAxLjk1LS4wOC44NS41Ni42NSAxLjI5IDEuNDctMS4yOCAxLjQ4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC4wOSAxMy43NS0yLjMyLTIuMzMtMS40OCAxLjQ5IDMuOCAzLjgxIDcuMzQtNy4zNi0xLjQ4LTEuNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWZXJ0aWNhbFNwbGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDh2Mkgzem0wIDRoOHYySDN6bTAtOGg4djJIM3ptMC00aDh2Mkgzem0xNiAydjEwaC00VjdoNG0yLTJoLTh2MTRoOFY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0FnZW5kYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzSDVjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtNGMwLTEuMS0uOS0yLTItMnptMCA2SDV2LTRoMTR2NHpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnY0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA2SDVWNWgxNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0FycmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgN3YxMEg5VjdoNnptNi0yaC0zdjE0aDNWNXptLTQgMEg3djE0aDEwVjV6TTYgNUgzdjE0aDNWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdDYXJvdXNlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgN2g0djEwSDJWN3ptNSAxMmgxMFY1SDd2MTR6TTkgN2g2djEwSDlWN3ptOSAwaDR2MTBoLTRWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdDb2x1bW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRoMThWNUgzem01LjMzIDEySDVWN2gzLjMzdjEwem01LjM0IDBoLTMuMzNWN2gzLjMzdjEwek0xOSAxN2gtMy4zM1Y3SDE5djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0NvbWZ5QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDR2NEg3ek0xMyA3aDR2NGgtNHpNNyAxM2g0djRIN3pNMTMgMTNoNHY0aC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3Q29tcGFjdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDcuNWg0djRoLTR6TTEyLjUgNy41aDR2NGgtNHpNNy41IDEyLjVoNHY0aC00ek0xMi41IDEyLjVoNHY0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0NvenkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjI1IDcuMjVoNHY0aC00ek0xMi43NSA3LjI1aDR2NGgtNHpNNy4yNSAxMi43NWg0djRoLTR6TTEyLjc1IDEyLjc1aDR2NGgtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0RheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMThIMnYyaDE5di0yem0tMi04djRINHYtNGgxNW0xLTJIM2MtLjU1IDAtMSAuNDUtMSAxdjZjMCAuNTUuNDUgMSAxIDFoMTdjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xem0xLTRIMnYyaDE5VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3SGVhZGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTVoMTZ2LTJINHYyem0wIDRoMTZ2LTJINHYyem0wLThoMTZWOUg0djJ6bTAtNnYyaDE2VjVINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdJbkFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA0YzAtLjU1LjQ1LTEgMS0xaDJWMUg0QzIuMzQgMSAxIDIuMzQgMSA0djJoMlY0ek0zIDIwdi0ySDF2MmMwIDEuNjYgMS4zNCAzIDMgM2gydi0ySDRjLS41NSAwLTEtLjQ1LTEtMXpNMjAgMWgtMnYyaDJjLjU1IDAgMSAuNDUgMSAxdjJoMlY0YzAtMS42Ni0xLjM0LTMtMy0zek0yMSAyMGMwIC41NS0uNDUgMS0xIDFoLTJ2MmgyYzEuNjYgMCAzLTEuMzQgMy0zdi0yaC0ydjJ6TTE5IDE0Ljg3VjkuMTNjMC0uNzItLjM4LTEuMzgtMS0xLjczbC01LTIuODhjLS4zMS0uMTgtLjY1LS4yNy0xLS4yN3MtLjY5LjA5LTEgLjI3TDYgNy4zOWMtLjYyLjM2LTEgMS4wMi0xIDEuNzR2NS43NGMwIC43Mi4zOCAxLjM4IDEgMS43M2w1IDIuODhjLjMxLjE4LjY1LjI3IDEgLjI3cy42OS0uMDkgMS0uMjdsNS0yLjg4Yy42Mi0uMzUgMS0xLjAxIDEtMS43M3ptLTggMi4zLTQtMi4zdi00LjYzbDQgMi4zM3Y0LjZ6bTEtNi4zM0w4LjA0IDguNTMgMTIgNi4yNWwzLjk2IDIuMjhMMTIgMTAuODR6bTUgNC4wMy00IDIuM3YtNC42bDQtMi4zM3Y0LjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0thbmJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgN2gydjEwSDd6TTExIDdoMnY1aC0yek0xNSA3aDJ2OGgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0xpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRoMThWNUgzem00IDJ2Mkg1VjdoMnptLTIgNnYtMmgydjJINXptMCAyaDJ2Mkg1di0yem0xNCAySDl2LTJoMTB2MnptMC00SDl2LTJoMTB2MnptMC00SDlWN2gxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld01vZHVsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGgxOFY1SDN6bTE2IDZoLTMuMzNWN0gxOXY0em0tNS4zMyAwaC0zLjMzVjdoMy4zM3Y0ek04LjMzIDd2NEg1VjdoMy4zM3pNNSAxN3YtNGgzLjMzdjRINXptNS4zMyAwdi00aDMuMzN2NGgtMy4zM3ptNS4zNCAwdi00SDE5djRoLTMuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3UXVpbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRoMThWNUgzem01LjMzIDEySDVWN2gzLjMzdjEwem01LjM0IDBoLTMuMzN2LTRoMy4zM3Y0ek0xOSAxN2gtMy4zM3YtNEgxOXY0em0wLTZoLTguNjdWN0gxOXY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld1NpZGViYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDR2MTZoMjBWNEgyem0xOCA0LjY3aC0yLjVWNkgyMHYyLjY3em0tMi41IDJIMjB2Mi42N2gtMi41di0yLjY3ek00IDZoMTEuNXYxMkg0VjZ6bTEzLjUgMTJ2LTIuNjdIMjBWMThoLTIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdTdHJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDd2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAyem0xNiAxMEg1di00aDE0djR6TTUgMTFWN2gxNHY0SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWV3VGltZWxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE1aDZ2Mkg2ek0xMiA3aDZ2MmgtNnpNOSAxMWg2djJIOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld1dlZWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNOCAxOEg0VjZoNHYxMnptNiAwaC00VjZoNHYxMnptNiAwaC00VjZoNHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpc2liaWxpdHlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZhOS43NyA5Ljc3IDAgMCAxIDguODIgNS41IDkuNjQ3IDkuNjQ3IDAgMCAxLTIuNDEgMy4xMmwxLjQxIDEuNDFjMS4zOS0xLjIzIDIuNDktMi43NyAzLjE4LTQuNTNDMjEuMjcgNy4xMSAxNyA0IDEyIDRjLTEuMjcgMC0yLjQ5LjItMy42NC41N2wxLjY1IDEuNjVDMTAuNjYgNi4wOSAxMS4zMiA2IDEyIDZ6bS0xLjA3IDEuMTRMMTMgOS4yMWMuNTcuMjUgMS4wMy43MSAxLjI4IDEuMjhsMi4wNyAyLjA3Yy4wOC0uMzQuMTQtLjcuMTQtMS4wN0MxNi41IDkuMDEgMTQuNDggNyAxMiA3Yy0uMzcgMC0uNzIuMDUtMS4wNy4xNHpNMi4wMSAzLjg3bDIuNjggMi42OEExMS43MzggMTEuNzM4IDAgMCAwIDEgMTEuNUMyLjczIDE1Ljg5IDcgMTkgMTIgMTljMS41MiAwIDIuOTgtLjI5IDQuMzItLjgybDMuNDIgMy40MiAxLjQxLTEuNDFMMy40MiAyLjQ1IDIuMDEgMy44N3ptNy41IDcuNSAyLjYxIDIuNjFjLS4wNC4wMS0uMDguMDItLjEyLjAyYTIuNSAyLjUgMCAwIDEtMi41LTIuNWMwLS4wNS4wMS0uMDguMDEtLjEzem0tMy40LTMuNCAxLjc1IDEuNzVhNC42IDQuNiAwIDAgMC0uMzYgMS43OCA0LjUwNyA0LjUwNyAwIDAgMCA2LjI3IDQuMTRsLjk4Ljk4Yy0uODguMjQtMS44LjM4LTIuNzUuMzhhOS43NyA5Ljc3IDAgMCAxLTguODItNS41Yy43LTEuNDMgMS43Mi0yLjYxIDIuOTMtMy41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpc2liaWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZhOS43NyA5Ljc3IDAgMCAxIDguODIgNS41QzE5LjE3IDE0Ljg3IDE1Ljc5IDE3IDEyIDE3cy03LjE3LTIuMTMtOC44Mi01LjVBOS43NyA5Ljc3IDAgMCAxIDEyIDZtMC0yQzcgNCAyLjczIDcuMTEgMSAxMS41IDIuNzMgMTUuODkgNyAxOSAxMiAxOXM5LjI3LTMuMTEgMTEtNy41QzIxLjI3IDcuMTEgMTcgNCAxMiA0em0wIDVhMi41IDIuNSAwIDAgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTVtMC0yYy0yLjQ4IDAtNC41IDIuMDItNC41IDQuNVM5LjUyIDE2IDEyIDE2czQuNS0yLjAyIDQuNS00LjVTMTQuNDggNyAxMiA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVm9pY2VPdmVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi43NiA1LjM2LTEuNjggMS42OWMuOCAxLjEzLjgzIDIuNTguMDkgMy43NGwxLjcgMS43YzEuOS0yLjAyIDEuODctNC45OC0uMTEtNy4xM3pNMjAuMDcgMmwtMS42MyAxLjYzYzIuNzIgMi45NyAyLjc2IDcuMzkuMTQgMTAuNTZsMS42NCAxLjY0YzMuNzQtMy44OSAzLjcxLTkuODQtLjE1LTEzLjgzek05LjQzIDUuMDRsMy41MyAzLjUzYTMuOTc5IDMuOTc5IDAgMCAwLTMuNTMtMy41M3pNNC40MSAyLjg2IDMgNC4yN2wyLjYyIDIuNjJDNS4yMyA3LjUgNSA4LjIyIDUgOWMwIDIuMjEgMS43OSA0IDQgNCAuNzggMCAxLjUtLjIzIDIuMTEtLjYybDQuNCA0LjRDMTMuNzQgMTUuNiAxMC43OCAxNSA5IDE1Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtLjM3LS4xMS0uNy0uMjktMS4wMkwxOS43MyAyMWwxLjQxLTEuNDFMNC40MSAyLjg2ek0zIDE5Yy4yMi0uNzIgMy4zMS0yIDYtMiAyLjcgMCA1LjggMS4yOSA2IDJIM3ptNi04Yy0xLjEgMC0yLS45LTItMiAwLS4yMi4wNC0uNDIuMTEtLjYybDIuNTEgMi41MWMtLjIuMDctLjQuMTEtLjYyLjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0Y2hMYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLjUtMTNIMTF2Nmw1LjIgMy4yLjgtMS4zLTQuNS0yLjdWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdlYmhvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNWg1Ljg4Yy4yNy0uMzEuNjctLjUgMS4xMi0uNS44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjVjLS40NCAwLS44NC0uMTktMS4xMi0uNUgxMS45QTUgNSAwIDEgMSA2IDExLjF2Mi4wN2MtMS4xNi40MS0yIDEuNTMtMiAyLjgzIDAgMS42NSAxLjM1IDMgMyAzczMtMS4zNSAzLTN2LTF6bTIuNS0xMWMxLjY1IDAgMyAxLjM1IDMgM2gyYzAtMi43Ni0yLjI0LTUtNS01YTUuMDAyIDUuMDAyIDAgMCAwLTMuNDUgOC42MmwtMi4zNSAzLjljLS42OC4xNC0xLjIuNzUtMS4yIDEuNDggMCAuODMuNjcgMS41IDEuNSAxLjVhMS40OTggMS40OTggMCAwIDAgMS40My0xLjk1bDMuMzgtNS42M0EzLjAwMyAzLjAwMyAwIDAgMSA5LjUgN2MwLTEuNjUgMS4zNS0zIDMtM3ptNC41IDljLS42NCAwLTEuMjMuMi0xLjcyLjU0bC0zLjA1LTUuMDdDMTEuNTMgOC4zNSAxMSA3Ljc0IDExIDdjMC0uODMuNjctMS41IDEuNS0xLjVTMTQgNi4xNyAxNCA3YzAgLjE1LS4wMi4yOS0uMDYuNDNsMi4xOSAzLjY1Yy4yOC0uMDUuNTctLjA4Ljg3LS4wOCAyLjc2IDAgNSAyLjI0IDUgNXMtMi4yNCA1LTUgNWE1IDUgMCAwIDEtNC4zMy0yLjVoMi42N2MuNDguMzIgMS4wNS41IDEuNjYuNSAxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZHRoRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDE4VjZoMXYxMkg0em0zIDBWNmgxMHYxMkg3em0xMyAwaC0xVjZoMXYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZHRoTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgMThWNmg0djEySDR6bTYgMFY2aDR2MTJoLTR6bTEwIDBoLTRWNmg0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lkdGhXaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgMThWNmgydjEySDR6bTQgMFY2aDh2MTJIOHptMTIgMGgtMlY2aDJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpUHJvdGVjdGVkU2V0dXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi43MSA1LjI5IDE5IDNoLTh2OGwyLjMtMi4zYzEuOTcgMS40NiAzLjI1IDMuNzggMy4yNSA2LjQyIDAgMS4zMS0uMzIgMi41NC0uODggMy42MyAyLjMzLTEuNTIgMy44OC00LjE0IDMuODgtNy4xMyAwLTIuNTItMS4xMS00Ljc3LTIuODQtNi4zM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy40NiA4Ljg4YzAtMS4zMS4zMi0yLjU0Ljg4LTMuNjNhOC40NzkgOC40NzkgMCAwIDAtMy44OCA3LjEzYzAgMi41MiAxLjEgNC43NyAyLjg0IDYuMzNMNSAyMWg4di04bC0yLjMgMi4zYy0xLjk2LTEuNDYtMy4yNC0zLjc4LTMuMjQtNi40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvcmtIaXN0b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOVY4aDE2djMuMjljLjcyLjIyIDEuNC41NCAyIC45N1Y4YzAtMS4xMS0uODktMi0yLTJoLTRWNGMwLTEuMTEtLjg5LTItMi0yaC00Yy0xLjExIDAtMiAuODktMiAydjJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMTljMCAxLjExLjg5IDIgMiAyaDcuNjhjLS4zLS42Mi0uNS0xLjI5LS42LTJINHptNi0xNWg0djJoLTRWNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0xLjY1IDcuMzVMMTcuNSAxOC4yVjE1aDF2Mi43OWwxLjg1IDEuODUtLjcuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXb3JrT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0aDR2MmgtMy42bDIgMkgyMHY3LjZsMiAyVjhjMC0xLjExLS44OS0yLTItMmgtNFY0YzAtMS4xMS0uODktMi0yLTJoLTRjLS45OSAwLTEuOC43LTEuOTYgMS42NEwxMCA1LjZWNHpNMy40IDEuODQgMS45OSAzLjI1IDQuNzQgNkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTUuNzRsMiAyIDEuNDEtMS40MUwzLjQgMS44NHpNNCAxOVY4aDIuNzRsMTEgMTFINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvcmtPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA2VjRoLTR2Mmg0ek00IDh2MTFoMTZWOEg0em0xNi0yYzEuMTEgMCAyIC44OSAyIDJ2MTFjMCAxLjExLS44OSAyLTIgMkg0Yy0xLjExIDAtMi0uODktMi0ybC4wMS0xMWMwLTEuMTEuODgtMiAxLjk5LTJoNFY0YzAtMS4xMS44OS0yIDItMmg0YzEuMTEgMCAyIC44OSAyIDJ2Mmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtNFY0YzAtMS4xMS0uODktMi0yLTJoLTRjLTEuMTEgMC0yIC44OS0yIDJ2Mkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOWMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS02IDBoLTRWNGg0djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXeXNpd3lnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTZINVY3aDE0djEyem0tMi03SDd2LTJoMTB2MnptLTQgNEg3di0yaDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVlvdXR1YmVTZWFyY2hlZEZvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMDEgMTRoLS44bC0uMjctLjI3YTYuNDUxIDYuNDUxIDAgMCAwIDEuNTctNC4yM2MwLTMuNTktMi45MS02LjUtNi41LTYuNXMtNi41IDMtNi41IDYuNUgybDMuODQgNCA0LjE2LTRINi41MWE0LjUgNC41IDAgMCAxIDkgMCA0LjUwNyA0LjUwNyAwIDAgMS02LjMyIDQuMTJMNy43MSAxNS4xYTYuNDc0IDYuNDc0IDAgMCAwIDcuNTItLjY3bC4yNy4yN3YuNzlsNS4wMSA0Ljk5TDIyIDE5bC00Ljk5LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVab29tSW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTRoLS43OWwtLjI4LS4yN0E2LjQ3MSA2LjQ3MSAwIDAgMCAxNiA5LjUgNi41IDYuNSAwIDEgMCA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0em0uNS03SDl2Mkg3djFoMnYyaDF2LTJoMlY5aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lWm9vbU91dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QTYuNDcxIDYuNDcxIDAgMCAwIDE2IDkuNSA2LjUgNi41IDAgMSAwIDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6TTcgOWg1djFIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wMSAyMS4wMWMwIDEuMS44OSAxLjk5IDEuOTkgMS45OXMxLjk5LS44OSAxLjk5LTEuOTloLTMuOTh6TTEyIDZjMi43NiAwIDUgMi4yNCA1IDV2N0g3di03YzAtMi43NiAyLjI0LTUgNS01em0wLTQuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjV2MS4xN0M3LjM2IDQuODUgNSA3LjY1IDUgMTF2NmwtMiAydjFoMTh2LTFsLTItMnYtNmMwLTMuMzUtMi4zNi02LjE1LTUuNS02LjgzVjNjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xMyA4aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvRGVsZXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMmgtMy41bC0xLTFoLTVsLTEgMUgxdjJoMTR6TTE2IDljLS43IDAtMS4zNy4xLTIgLjI5VjVIMnYxMmMwIDEuMS45IDIgMiAyaDUuNjhBNi45OTkgNi45OTkgMCAwIDAgMjMgMTZjMC0zLjg3LTMuMTMtNy03LTd6bS03IDdjMCAuMzQuMDMuNjcuMDggMUg0VjdoOHYzLjI2Yy0xLjgxIDEuMjctMyAzLjM2LTMgNS43NHptNyA1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSAxMkgxNXY1bDMuNiAyLjEuOC0xLjItMi45LTEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVycm9yT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0ydi0yem0wLThoMnY2aC0yVjd6bS45OS01QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFcnJvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtMmgydjJ6bTAtNGgtMlY3aDJ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGlmaWNhdGlvbkltcG9ydGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMDEgMjEuMDFjMCAxLjEuODkgMS45OSAxLjk5IDEuOTlzMS45OS0uODkgMS45OS0xLjk5aC0zLjk4ek0xMiA2YzIuNzYgMCA1IDIuMjQgNSA1djdIN3YtN2MwLTIuNzYgMi4yNC01IDUtNXptMC00LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41djEuMTdDNy4zNiA0Ljg1IDUgNy42NSA1IDExdjZsLTIgMnYxaDE4di0xbC0yLTJ2LTZjMC0zLjM1LTIuMzYtNi4xNS01LjUtNi44M1YzYzAtLjgzLS42Ny0xLjUtMS41LTEuNXpNMTEgOGgydjRoLTJ6bTAgNmgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXJuaW5nQW1iZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuOTkgMTkuNTMgMTlINC40N0wxMiA1Ljk5TTEyIDIgMSAyMWgyMkwxMiAyem0xIDE0aC0ydjJoMnYtMnptMC02aC0ydjRoMnYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdhcm5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTEwSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDZ2MTBINXYtOC41aDFWMTVoMS41VjlINVY1aDE0djR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgMTEuMjVWOUgxNHY2aDEuNXYtMi4yNUwxNy4yNSAxNUgxOWwtMi4yNS0zTDE5IDloLTEuNzV6TTkuNSAxNUgxMmMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDkuNWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTQuNWgxLjV2M0gxMHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTFrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE1SDlWOUg2djEuNWgxLjV6TTEyIDEyLjc1IDEzLjc1IDE1aDEuNzVsLTIuMjUtMyAyLjI1LTNoLTEuNzVMMTIgMTEuMjVWOWgtMS41djZIMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDE1SDEwVjlIN3YxLjVoMS41ek0xMy41IDEyLjc1IDE1LjI1IDE1SDE3bC0yLjI1LTNMMTcgOWgtMS43NWwtMS43NSAyLjI1VjlIMTJ2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUya1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEzLjVINy41di0xSDljLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMUg2djEuNWgyLjV2MUg3Yy0uNTUgMC0xIC40NS0xIDFWMTVoNHYtMS41ek0xMi41IDEyLjc1IDE0LjI1IDE1SDE2bC0yLjI1LTNMMTYgOWgtMS43NWwtMS43NSAyLjI1VjlIMTF2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUySyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTMuNUg4di0xaDJjLjU1IDAgMS0uNDUgMS0xVjEwYzAtLjU1LS40NS0xLTEtMUg2LjV2MS41aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxVjE1SDExdi0xLjV6TTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTNrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTR2LTRjMC0uNTUtLjQ1LTEtMS0xSDUuNXYxLjVoM3YxaC0ydjFoMnYxaC0zVjE1SDljLjU1IDAgMS0uNDUgMS0xek0xMi41IDEyLjc1IDE0LjI1IDE1SDE2bC0yLjI1LTNMMTYgOWgtMS43NWwtMS43NSAyLjI1VjlIMTF2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzSyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTR2LTRjMC0uNTUtLjQ1LTEtMS0xSDYuNXYxLjVoM3YxaC0ydjFoMnYxaC0zVjE1SDEwYy41NSAwIDEtLjQ1IDEtMXpNMTQuNSAxMi43NSAxNi4yNSAxNUgxOGwtMi4yNS0zTDE4IDloLTEuNzVsLTEuNzUgMi4yNVY5SDEzdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNGtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTVIMTB2LTEuNWgxVjEyaC0xVjlIOC41djNIN1Y5SDUuNXY0LjVoM3pNMTMgMTIuNzUgMTQuNzUgMTVoMS43NWwtMi4yNS0zIDIuMjUtM2gtMS43NUwxMyAxMS4yNVY5aC0xLjV2NkgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTRLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE2SDVWNWgxNHYxNHptLTkuNS00SDExdi0xLjQ5aDFWMTJoLTFWOUg5LjV2M0g4VjlINi41djQuNWgzem04LjcgMC0yLTMgMi0zaC0xLjdsLTIgMyAyIDN6bS0zLjctM1Y5SDEzdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNUcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEzSDE5djJoLTVWOWg3YzAtMS4xLS45LTItMi0yaC01Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNGgtNC41djJ6TTMgMTNoNXYySDN2Mmg1YzEuMSAwIDItLjkgMi0ydi0yYzAtMS4xLS45LTItMi0ySDVWOWg1VjdIM3Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNWtQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNHYtMS41YzAtLjU1LS40NS0xLTEtMUg3LjV2LTFIMTBWOUg2djMuNWgyLjV2MUg2VjE1aDNjLjU1IDAgMS0uNDUgMS0xek0xMi41IDEyLjc1IDE0LjI1IDE1SDE2bC0yLjI1LTNMMTYgOWgtMS43NWwtMS43NSAyLjI1VjlIMTF2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU1SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTR2LTEuNWMwLS41NS0uNDUtMS0xLTFIOHYtMWgzVjlINi41djMuNWgzdjFoLTNWMTVIMTBjLjU1IDAgMS0uNDUgMS0xek0xNC41IDEyLjc1IDE2LjI1IDE1SDE4bC0yLjI1LTNMMTggOWgtMS43NWwtMS43NSAyLjI1VjlIMTN2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU2a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpNNyAxNWgyYy41NSAwIDEtLjQ1IDEtMXYtMS41YzAtLjU1LS40NS0xLTEtMUg3LjV2LTFIMTBWOUg3Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtMi41aDFWMTRoLTF2LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTZLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEyLjc1IDE2LjI1IDE1SDE4bC0yLjI1LTNMMTggOWgtMS43NWwtMS43NSAyLjI1VjlIMTN2NmgxLjV6TTcuNSAxNUgxMGMuNTUgMCAxLS40NSAxLTF2LTEuNWMwLS41NS0uNDUtMS0xLTFIOHYtMWgzVjlINy41Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtMi41aDEuNVYxNEg4di0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU3a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCA4LjVoLTEuNVYxMGgtMXYxLjVIMTV2MWgxLjVWMTRoMXYtMS41SDE5VjE5SDVWNWgxNHY2LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNzUgMTVIOC41bDEuNDYtNC43MUMxMC4xNSA5LjY1IDkuNjcgOSA5IDlINS41djEuNWgyLjYzTDYuNzUgMTV6TTEyLjUgMTIuNzUgMTQuMjUgMTVIMTZsLTIuMjUtM0wxNiA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxMXY2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTdLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljc1IDE1SDkuNWwxLjQ2LTQuNzFDMTEuMTUgOS42NSAxMC42NyA5IDEwIDlINi41djEuNWgyLjYzTDcuNzUgMTV6TTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZThrUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTVoMmMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS01aDF2MS41aC0xVjEwem0wIDIuNWgxVjE0aC0xdi0xLjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDguNWgtMS41VjEwaC0xdjEuNUgxNXYxaDEuNVYxNGgxdi0xLjVIMTlWMTlINVY1aDE0djYuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAxMi43NSAxNC4yNSAxNUgxNmwtMi4yNS0zTDE2IDloLTEuNzVsLTEuNzUgMi4yNVY5SDExdjZoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lOEsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTVIMTBjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMUg3LjVjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS01aDEuNXYxLjVIOFYxMHptMCAyLjVoMS41VjE0SDh2LTEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEyLjc1IDE2LjI1IDE1SDE4bC0yLjI1LTNMMTggOWgtMS43NWwtMS43NSAyLjI1VjlIMTN2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU5a1BsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNHYtNGMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjEuNWMwIC41NS40NSAxIDEgMWgxLjV2MUg2VjE1aDNjLjU1IDAgMS0uNDUgMS0xem0tMS41LTIuNWgtMVYxMGgxdjEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOC41aC0xLjVWMTBoLTF2MS41SDE1djFoMS41VjE0aDF2LTEuNUgxOVYxOUg1VjVoMTR2Ni41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDEyLjc1IDE0LjI1IDE1SDE2bC0yLjI1LTNMMTYgOWgtMS43NWwtMS43NSAyLjI1VjlIMTF2NmgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU5SyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0di00YzAtLjU1LS40NS0xLTEtMUg3LjVjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFoMnYxaC0zVjE1SDEwYy41NSAwIDEtLjQ1IDEtMXptLTEuNS0yLjVIOFYxMGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTIuNzUgMTYuMjUgMTVIMThsLTIuMjUtM0wxOCA5aC0xLjc1bC0xLjc1IDIuMjVWOUgxM3Y2aDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFRvUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDJ2LTNoM3YtMmgtM1Y3aC0ydjNIOHYyaDN6TTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMi0uOSAyLTJWNWEyIDIgMCAwIDAtMi0yem0wIDE0SDNWNWgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcnBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMjJoMTJsLTYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDR2LTJIM1Y1aDE4djEyaC00djJoNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxidW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTEyLjVjLTIuNDkgMC00LjUgMi4wMS00LjUgNC41czIuMDEgNC41IDQuNSA0LjUgNC41LTIuMDEgNC41LTQuNS0yLjAxLTQuNS00LjUtNC41em0wIDUuNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJ0VHJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEzaC04di0yaDh2MnptMC02aC04djJoOFY3em0tOCAxMGg4di0yaC04djJ6bS0yLTh2NmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNmMxLjEgMCAyIC45IDIgMnptLTEuNSA2LTIuMjUtMy0xLjc1IDIuMjYtMS4yNS0xLjUxTDMuNSAxNWg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXVkaW9GaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnpNNiAyMFY0aDd2NWg1djExSDZ6bTEwLTloLTR2My44OGEyLjI0NyAyLjI0NyAwIDAgMC0zLjUgMS44N2MwIDEuMjQgMS4wMSAyLjI1IDIuMjUgMi4yNVMxMyAxNy45OSAxMyAxNi43NVYxM2gzdi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXZUaW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTdjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xLS40NS0xLTEtMS0xIC40NS0xIDF6bTAtMTR2NGgyVjUuMDhjMy4zOS40OSA2IDMuMzkgNiA2LjkyIDAgMy44Ny0zLjEzIDctNyA3cy03LTMuMTMtNy03YzAtMS42OC41OS0zLjIyIDEuNTgtNC40MkwxMiAxM2wxLjQxLTEuNDEtNi44LTYuOHYuMDJDNC40MiA2LjQ1IDMgOS4wNSAzIDEyYzAgNC45NyA0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4aC0xem03IDljMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDEgLjQ1IDEgMSAxIDEtLjQ1IDEtMXpNNiAxMmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xLTEgLjQ1LTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyYW5kaW5nV2F0ZXJtYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkgzVjVoMTh2MTR6bS0xMC03aDl2NmgtOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGxUb0FjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDE4djE0ek01IDE1aDE0djNINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3NlZENhcHRpb25EaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwYzAtLjU1LjQ1LTEgMS0xaDNjLjU1IDAgMSAuNDUgMSAxdjFoLTEuNXYtLjVoLTJ2MUwxMyAxMHptMy41IDMuNSAxLjIxIDEuMjFjLjE4LS4xOS4yOS0uNDQuMjktLjcxdi0xaC0xLjV2LjV6TTguODMgNkgxOXYxMC4xN2wxLjk4IDEuOThjMC0uMDUuMDItLjEuMDItLjE2VjZjMC0xLjEtLjktMi0yLTJINi44M2wyIDJ6bTEwLjk1IDE2LjYxTDE3LjE3IDIwSDVhMiAyIDAgMCAxLTItMlY2YzAtLjA1LjAyLS4xLjAyLS4xNUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTcuNSAxMy41aDJWMTNoLjY3bC0yLjUtMi41SDcuNXYzem03LjY3IDQuNUwxMSAxMy44M1YxNGMwIC41NS0uNDUgMS0xIDFIN2MtLjU1IDAtMS0uNDUtMS0xdi00YzAtLjMyLjE2LS41OS40LS43OEw1IDcuODNWMThoMTAuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG9zZWRDYXB0aW9uT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDVWNmgxNHYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNWgzYy41NSAwIDEtLjQ1IDEtMXYtMUg5LjV2LjVoLTJ2LTNoMnYuNUgxMXYtMWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6TTE0IDE1aDNjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTJ2LTNoMnYuNUgxOHYtMWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvc2VkQ2FwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNEg1YTIgMiAwIDAgMC0yIDJ2MTJhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDVWNmgxNHYxMnpNNyAxNWgzYy41NSAwIDEtLjQ1IDEtMXYtMUg5LjV2LjVoLTJ2LTNoMnYuNUgxMXYtMWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bTcgMGgzYy41NSAwIDEtLjQ1IDEtMXYtMWgtMS41di41aC0ydi0zaDJ2LjVIMTh2LTFjMC0uNTUtLjQ1LTEtMS0xaC0zYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRyb2xDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNTQgOC40NiAyIDEybDMuNTQgMy41NCAxLjc2LTEuNzdMNS41NCAxMmwxLjc2LTEuNzd6bTYuNDYgMTAtMS43Ny0xLjc2LTEuNzcgMS43NkwxMiAyMmwzLjU0LTMuNTQtMS43Ny0xLjc2em02LjQ2LTEwLTEuNzYgMS43N0wxOC40NiAxMmwtMS43NiAxLjc3IDEuNzYgMS43N0wyMiAxMnptLTEwLTIuOTIgMS43NyAxLjc2TDEyIDUuNTRsMS43NyAxLjc2IDEuNzctMS43NkwxMiAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjNcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVxdWFsaXplciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMjBoNFY0aC00djE2em0tNiAwaDR2LThINHY4ek0xNiA5djExaDRWOWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cGxpY2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS00LTRoLTR2LTJoNHYtMmgtNFY5aDRWN0g5djEwaDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYXN0Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOS44NiAxOC4wMyAxMiAxNSAxNC4xNFY5Ljg2bS05IDBMOS4wMyAxMiA2IDE0LjE0VjkuODZNMTMgNnYxMmw4LjUtNkwxMyA2ek00IDZ2MTJsOC41LTZMNCA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFzdFJld2luZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOS44NnY0LjI4TDE0Ljk3IDEyIDE4IDkuODZtLTkgMHY0LjI4TDUuOTcgMTIgOSA5Ljg2TTIwIDZsLTguNSA2IDguNSA2VjZ6bS05IDAtOC41IDYgOC41IDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZlYXR1cmVkUGxheUxpc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxOHYxNHpNNSAxMGg5djJINXptMC0zaDl2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmVhdHVyZWRWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIM1Y1aDE4djE0ek00IDZoOXY3SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWJlckR2ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEuODcgMTIuNDMtMS0zLjQzaC0xLjVsMS43NSA2aDEuNWwxLjc1LTZoLTEuNXpNMjEgMTEuNXYtMWMwLS44NS0uNjUtMS41LTEuNS0xLjVIMTZ2NmgxLjV2LTJoMS4xNWwuODUgMkgyMWwtLjktMi4xYy41LS4yNS45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxek02LjUgOUgzdjZoMy41Yy44NSAwIDEuNS0uNjUgMS41LTEuNXYtM0M4IDkuNjUgNy4zNSA5IDYuNSA5em0wIDQuNWgtMnYtM2gydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWJlck1hbnVhbFJlY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02IDIuNjktNiA2LTZtMC0yYy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpYmVyTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjI1IDEyLjUgNC43NSA5SDMuNXY2aDEuMjV2LTMuNUw3LjMgMTVoMS4yVjlINy4yNXpNOS41IDE1aDR2LTEuMjVIMTF2LTEuMTFoMi41di0xLjI2SDExdi0xLjEyaDIuNVY5aC00em05Ljc1LTZ2NC41aC0xLjEyVjkuOTloLTEuMjV2My41MmgtMS4xM1Y5SDE0LjV2NWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMVY5aC0xLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmliZXJQaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDEuNVY5SDExdjZ6bTcuNzUtNnYzLjVMMTYuMjUgOUgxNXY2aDEuMjV2LTMuNUwxOC44IDE1SDIwVjloLTEuMjV6TTcuNSA5SDR2NmgxLjV2LTJoMmMuODUgMCAxLjUtLjY1IDEuNS0xLjV2LTFDOSA5LjY1IDguMzUgOSA3LjUgOXptMCAyLjVoLTJ2LTFoMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmliZXJTbWFydFJlY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNiA2IDIuNjkgNiA2LTIuNjkgNi02IDZ6bTgtMTMuNzR2Mi4wOWE1Ljk5IDUuOTkgMCAwIDEgMCAxMS4zdjIuMDljMy40NS0uODkgNi00LjAxIDYtNy43NCAwLTMuNzMtMi41NS02Ljg1LTYtNy43NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcndhcmQxMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTYgMi42OS02IDYtNnY0bDUtNS01LTV2NGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC45IDE2di00LjI3aC0uMDlsLTEuNzcuNjN2LjY5bDEuMDEtLjMxVjE2ek0xNC4zMiAxMS43OGMtLjE4LS4wNy0uMzctLjEtLjU5LS4xcy0uNDEuMDMtLjU5LjEtLjMzLjE4LS40NS4zMy0uMjMuMzQtLjI5LjU3LS4xLjUtLjEuODJ2Ljc0YzAgLjMyLjA0LjYuMTEuODJzLjE3LjQyLjMuNTcuMjguMjYuNDYuMzMuMzcuMS41OS4xLjQxLS4wMy41OS0uMS4zMy0uMTguNDUtLjMzLjIyLS4zNC4yOS0uNTcuMS0uNS4xLS44MnYtLjc0YzAtLjMyLS4wNC0uNi0uMTEtLjgycy0uMTctLjQyLS4zLS41Ny0uMjktLjI2LS40Ni0uMzN6bS4wMSAyLjU3YzAgLjE5LS4wMS4zNS0uMDQuNDhzLS4wNi4yNC0uMTEuMzItLjExLjE0LS4xOS4xNy0uMTYuMDUtLjI1LjA1LS4xOC0uMDItLjI1LS4wNS0uMTQtLjA5LS4xOS0uMTctLjA5LS4xOS0uMTItLjMyLS4wNC0uMjktLjA0LS40OHYtLjk3YzAtLjE5LjAxLS4zNS4wNC0uNDhzLjA2LS4yMy4xMi0uMzEuMTEtLjE0LjE5LS4xNy4xNi0uMDUuMjUtLjA1LjE4LjAyLjI1LjA1LjE0LjA5LjE5LjE3LjA5LjE4LjEyLjMxLjA0LjI5LjA0LjQ4di45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcndhcmQzMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTYgMi42OS02IDYtNnY0bDUtNS01LTV2NGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04aC0yem0tNy40NiAyLjIyYy0uMDYuMDUtLjEyLjA5LS4yLjEycy0uMTcuMDQtLjI3LjA0YS42OS42OSAwIDAgMS0uNDUtLjE1Yy0uMDYtLjA1LS4xLS4xLS4xMy0uMTdzLS4wNS0uMTQtLjA1LS4yMmgtLjg1YzAgLjIxLjA0LjM5LjEyLjU1cy4xOS4yOC4zMy4zOC4yOS4xOC40Ni4yMy4zNS4wNy41My4wN2MuMjEgMCAuNDEtLjAzLjYtLjA4cy4zNC0uMTQuNDgtLjI0LjI0LS4yNC4zMi0uMzkuMTItLjMzLjEyLS41M2MwLS4yMy0uMDYtLjQ0LS4xOC0uNjFzLS4zLS4zLS41NC0uMzljLjEtLjA1LjItLjEuMjgtLjE3cy4xNS0uMTQuMi0uMjIuMS0uMTYuMTMtLjI1LjA0LS4xOC4wNC0uMjdjMC0uMi0uMDQtLjM3LS4xMS0uNTNzLS4xNy0uMjgtLjMtLjM4LS4yOC0uMTgtLjQ2LS4yMy0uMzctLjA4LS41OS0uMDhjLS4xOSAwLS4zOC4wMy0uNTQuMDhzLS4zMi4xMy0uNDQuMjMtLjIzLjIyLS4zLjM3LS4xMS4zLS4xMS40OGguODVhLjQ1NS40NTUgMCAwIDEgLjE3LS4zNWMuMDUtLjA0LjExLS4wNy4xOC0uMXMuMTQtLjAzLjIyLS4wM2MuMSAwIC4xOC4wMS4yNS4wNHMuMTMuMDYuMTguMTEuMDguMTEuMTEuMTcuMDQuMTQuMDQuMjJjMCAuMTgtLjA1LjMyLS4xNi40M3MtLjI2LjE2LS40OC4xNmgtLjQzdi42NmguNDVjLjExIDAgLjIuMDEuMjkuMDRzLjE2LjA2LjIyLjExLjExLjEyLjE0LjIuMDUuMTguMDUuMjljMCAuMDktLjAxLjE3LS4wNC4yNHMtLjA4LjExLS4xMy4xN3ptMy45LTMuNDRjLS4xOC0uMDctLjM3LS4xLS41OS0uMXMtLjQxLjAzLS41OS4xLS4zMy4xOC0uNDUuMzMtLjIzLjM0LS4yOS41Ny0uMS41LS4xLjgydi43NGMwIC4zMi4wNC42LjExLjgycy4xNy40Mi4zLjU3LjI4LjI2LjQ2LjMzLjM3LjEuNTkuMS40MS0uMDMuNTktLjEuMzMtLjE4LjQ1LS4zMy4yMi0uMzQuMjktLjU3LjEtLjUuMS0uODJ2LS43NGMwLS4zMi0uMDQtLjYtLjExLS44MnMtLjE3LS40Mi0uMy0uNTctLjI4LS4yNi0uNDYtLjMzem0uMDEgMi41N2MwIC4xOS0uMDEuMzUtLjA0LjQ4cy0uMDYuMjQtLjExLjMyLS4xMS4xNC0uMTkuMTctLjE2LjA1LS4yNS4wNS0uMTgtLjAyLS4yNS0uMDUtLjE0LS4wOS0uMTktLjE3LS4wOS0uMTktLjEyLS4zMi0uMDQtLjI5LS4wNC0uNDh2LS45N2MwLS4xOS4wMS0uMzUuMDQtLjQ4cy4wNi0uMjMuMTItLjMxLjExLS4xNC4xOS0uMTcuMTYtLjA1LjI1LS4wNS4xOC4wMi4yNS4wNS4xNC4wOS4xOS4xNy4wOS4xOC4xMi4zMS4wNC4yOS4wNC40OHYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3J3YXJkNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuOTUgMTNjMCAzLjMxLTIuNjkgNi02IDZzLTYtMi42OS02LTYgMi42OS02IDYtNnY0bDUtNS01LTV2NGMtNC40MiAwLTggMy41OC04IDhzMy41OCA4IDggOCA4LTMuNTggOC04aC0yem0tNS41MiAyLjE1Yy0uMDUuMDctLjExLjEzLS4xOC4xN3MtLjE3LjA2LS4yNy4wNmMtLjE3IDAtLjMxLS4wNS0uNDItLjE1cy0uMTctLjI0LS4xOS0uNDFoLS44NGMuMDEuMi4wNS4zNy4xMy41M3MuMTkuMjguMzIuMzkuMjkuMTkuNDYuMjQuMzUuMDguNTMuMDhjLjI0IDAgLjQ2LS4wNC42NC0uMTJzLjMzLS4xOC40NS0uMzEuMjEtLjI4LjI3LS40NS4wOS0uMzUuMDktLjU0YzAtLjIyLS4wMy0uNDMtLjA5LS42cy0uMTQtLjMzLS4yNS0uNDUtLjI1LS4yMi0uNDEtLjI4LS4zNC0uMS0uNTUtLjFjLS4wNyAwLS4xNC4wMS0uMi4wMnMtLjEzLjAyLS4xOC4wNC0uMS4wMy0uMTUuMDUtLjA4LjA0LS4xMS4wNWwuMTEtLjkyaDEuN3YtLjcxSDEwLjlsLS4yNSAyLjE3LjY3LjE3Yy4wMy0uMDMuMDYtLjA2LjEtLjA5cy4wNy0uMDUuMTItLjA3LjEtLjA0LjE1LS4wNS4xMy0uMDIuMi0uMDJjLjEyIDAgLjIyLjAyLjMuMDVzLjE2LjA5LjIxLjE1LjEuMTQuMTMuMjQuMDQuMTkuMDQuMzEtLjAxLjIyLS4wMy4zMS0uMDYuMTctLjExLjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2FtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDR2Mi42N2wtMSAxLTEtMVY0aDJtNyA3djJoLTIuNjdsLTEtMSAxLTFIMjBNNi42NyAxMWwxIDEtMSAxSDR2LTJoMi42N00xMiAxNi4zM2wxIDFWMjBoLTJ2LTIuNjdsMS0xTTE1IDJIOXY1LjVsMyAzIDMtM1Yyem03IDdoLTUuNWwtMyAzIDMgM0gyMlY5ek03LjUgOUgydjZoNS41bDMtMy0zLTN6bTQuNSA0LjUtMyAzVjIyaDZ2LTUuNWwtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTcuNSAxM2gydjJIMTFWOUg5LjV2Mi41aC0yVjlINnY2aDEuNXpNMTggMTR2LTRjMC0uNTUtLjQ1LTEtMS0xaC00djZoNGMuNTUgMCAxLS40NSAxLTF6bS0xLjUtLjVoLTJ2LTNoMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhcmluZ0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNi4wMyAzLjJDNy4xNSAyLjQ0IDguNTEgMiAxMCAyYzMuOTMgMCA3IDMuMDcgNyA3IDAgMS4yNi0uMzggMi42NS0xLjA3IDMuOS0uMDIuMDQtLjA1LjA4LS4wOC4xM2wtMS40OC0xLjQ4Yy40LS44Ni42My0xLjc1LjYzLTIuNTUgMC0yLjgtMi4yLTUtNS01LS45MiAwLTEuNzYuMjYtMi41LjY3TDYuMDMgMy4yem0xMS4xOCAxMS4xOCAxLjQzIDEuNDNDMjAuMTEgMTMuOTMgMjEgMTEuNTcgMjEgOWMwLTMuMDQtMS4yMy01Ljc5LTMuMjItNy43OGwtMS40MiAxLjQyQTguOTM3IDguOTM3IDAgMCAxIDE5IDljMCAyLjAyLS42NyAzLjg4LTEuNzkgNS4zOHpNMTAgNi41Yy0uMjEgMC0uNC4wMy0uNTkuMDhsMy4wMSAzLjAxYy4wNS0uMTkuMDgtLjM4LjA4LS41OUEyLjUgMi41IDAgMCAwIDEwIDYuNXptMTEuMTkgMTQuNjlMMi44MSAyLjgxIDEuMzkgNC4yMmwyLjEzIDIuMTNDMy4xOSA3LjE2IDMgOC4wNSAzIDloMmMwLS4zNi4wNS0uNzEuMTItMS4wNWw2LjYxIDYuNjFjLS44OC42OC0xLjc4IDEuNDEtMi4yNyAyLjktLjUgMS41LTEgMi4wMS0xLjcxIDIuMzgtLjE5LjEtLjQ2LjE2LS43NS4xNi0xLjEgMC0yLS45LTItMkgzYTMuOTk5IDMuOTk5IDAgMCAwIDUuNjQgMy42NWMxLjM2LS43MSAyLjEzLTEuNzMgMi43My0zLjU1LjMyLS45OC45LTEuNDMgMS43MS0yLjA1LjAzLS4wMi4wNS0uMDQuMDgtLjA2bDYuNjIgNi42MiAxLjQxLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFyaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMGMtLjI5IDAtLjU2LS4wNi0uNzYtLjE1LS43MS0uMzctMS4yMS0uODgtMS43MS0yLjM4LS41MS0xLjU2LTEuNDctMi4yOS0yLjM5LTMtLjc5LS42MS0xLjYxLTEuMjQtMi4zMi0yLjUzQzkuMjkgMTAuOTggOSA5LjkzIDkgOWMwLTIuOCAyLjItNSA1LTVzNSAyLjIgNSA1aDJjMC0zLjkzLTMuMDctNy03LTdTNyA1LjA3IDcgOWMwIDEuMjYuMzggMi42NSAxLjA3IDMuOS45MSAxLjY1IDEuOTggMi40OCAyLjg1IDMuMTUuODEuNjIgMS4zOSAxLjA3IDEuNzEgMi4wNS42IDEuODIgMS4zNyAyLjg0IDIuNzMgMy41NUEzLjk5OSAzLjk5OSAwIDAgMCAyMSAxOGgtMmMwIDEuMS0uOSAyLTIgMnpNNy42NCAyLjY0IDYuMjIgMS4yMkM0LjIzIDMuMjEgMyA1Ljk2IDMgOXMxLjIzIDUuNzkgMy4yMiA3Ljc4bDEuNDEtMS40MUM2LjAxIDEzLjc0IDUgMTEuNDkgNSA5czEuMDEtNC43NCAyLjY0LTYuMzZ6TTExLjUgOWEyLjUgMi41IDAgMCAwIDUgMCAyLjUgMi41IDAgMCAwLTUgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpZ2hRdWFsaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINVY2aDE0djEyek03LjUgMTNoMnYySDExVjlIOS41djIuNWgtMlY5SDZ2NmgxLjV6bTYuNSAyaC43NXYxLjVoMS41VjE1SDE3Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS00LjVoMnYzaC0ydi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW50ZXJwcmV0ZXJNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNSAxNi41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjV2LTIuNWMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNVYxNWMwIC44My0uNjcgMS41LTEuNSAxLjV6TTIwIDIwaDF2LTEuNTRjMS42OS0uMjQgMy0xLjcgMy0zLjQ2aC0xYTIuNSAyLjUgMCAwIDEtNSAwaC0xYzAgMS43NiAxLjMxIDMuMjIgMyAzLjQ2VjIwek05IDEyYy0yLjIxIDAtNC0xLjc5LTQtNGEzLjk5OSAzLjk5OSAwIDAgMSA1LjM0LTMuNzdBNS45MzggNS45MzggMCAwIDAgOSA4YzAgMS40My41IDIuNzQgMS4zNCAzLjc3LS40Mi4xNS0uODcuMjMtMS4zNC4yM3ptLTEuODkgMS4xM0E0Ljk2NSA0Ljk2NSAwIDAgMCA1IDE3LjIyVjIwSDF2LTIuNzhjMC0xLjEyLjYxLTIuMTUgMS42MS0yLjY2IDEuMjQtLjY0IDIuNzYtMS4xOSA0LjUtMS40M3pNMTEgOGMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0LTEuNzkgNC00IDQtNC0xLjc5LTQtNHptMiAwYzAgMS4xLjkgMiAyIDJzMi0uOSAyLTItLjktMi0yLTItMiAuOS0yIDJ6bTIgN2MtMi4zNyAwLTQuMjkuNzMtNS40OCAxLjM0LS4zMi4xNi0uNTIuNS0uNTIuODhWMThoNy4xN2MuNS44NiAxLjI1IDEuNTYgMi4xNSAySDd2LTIuNzhjMC0xLjEyLjYxLTIuMTUgMS42MS0yLjY2QzEwLjI5IDEzLjcgMTIuNDcgMTMgMTUgMTNjLjM5IDAgLjc3LjAyIDEuMTQuMDUtLjMzLjU5LS41NSAxLjI2LS42MiAxLjk2LS4xNy0uMDEtLjM0LS4wMS0uNTItLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlicmFyeUFkZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0djEySDhWNGgxMm0wLTJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNy41MyAxMkw5IDEwLjVsMS40LTEuNDEgMi4wNyAyLjA4TDE3LjYgNiAxOSA3LjQxIDEyLjQ3IDE0ek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpYnJhcnlBZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6bS03LTJoMnYtM2gzVjloLTNWNmgtMnYzaC0zdjJoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpYnJhcnlCb29rcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6bTE2LTRIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDhWNGgxMnYxMnpNMTAgOWg4djJoLTh6bTAgM2g0djJoLTR6bTAtNmg4djJoLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaWJyYXJ5TXVzaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDhWNGgxMnYxMnptLTcuNS0xYTIuNSAyLjUgMCAwIDAgMi41LTIuNVY3aDNWNWgtNHY1LjUxYy0uNDItLjMyLS45My0uNTEtMS41LS41MWEyLjUgMi41IDAgMCAwIDAgNXpNNCA2SDJ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0VjFMOCA1bDQgNFY2YzMuMzEgMCA2IDIuNjkgNiA2IDAgMS4wMS0uMjUgMS45Ny0uNyAyLjhsMS40NiAxLjQ2QTcuOTMgNy45MyAwIDAgMCAyMCAxMmMwLTQuNDItMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTYgMC0xLjAxLjI1LTEuOTcuNy0yLjhMNS4yNCA3Ljc0QTcuOTMgNy45MyAwIDAgMCA0IDEyYzAgNC40MiAzLjU4IDggOCA4djNsNC00LTQtNHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTHlyaWNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2aDd2Mkg2ek02IDEyaDR2Mkg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMS45N1YxNkg2bC0yIDJWNGgxMXYyLjAzYy41Mi0uNjkgMS4yLTEuMjUgMi0xLjZWNGMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDljMS4xIDAgMi0uOSAyLTJ2LTIuNDJhNS4xNiA1LjE2IDAgMCAxLTItMS42MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA5aDd2Mkg2ek0yMCA2LjE4Yy0uMzEtLjExLS42NS0uMTgtMS0uMTgtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zVjNoMlYxaC00djUuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaWNOb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNGMxLjY2IDAgMy0xLjM0IDMtM1Y1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptLTEtOWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NmMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVY1em02IDZjMCAyLjc2LTIuMjQgNS01IDVzLTUtMi4yNC01LTVINWMwIDMuNTMgMi42MSA2LjQzIDYgNi45MlYyMWgydi0zLjA4YzMuMzktLjQ5IDYtMy4zOSA2LTYuOTJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaWNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjggNC45YzAtLjY2LjU0LTEuMiAxLjItMS4yczEuMi41NCAxLjIgMS4ybC0uMDEgMy45MUwxNSAxMC42VjVjMC0xLjY2LTEuMzQtMy0zLTMtMS41NCAwLTIuNzkgMS4xNi0yLjk2IDIuNjVsMS43NiAxLjc2VjQuOXpNMTkgMTFoLTEuN2MwIC41OC0uMSAxLjEzLS4yNyAxLjY0bDEuMjcgMS4yN2MuNDQtLjg4LjctMS44Ny43LTIuOTF6TTQuNDEgMi44NiAzIDQuMjdsNiA2VjExYzAgMS42NiAxLjM0IDMgMyAzIC4yMyAwIC40NC0uMDMuNjUtLjA4bDEuNjYgMS42NmMtLjcxLjMzLTEuNS41Mi0yLjMxLjUyLTIuNzYgMC01LjMtMi4xLTUuMy01LjFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YTcuMTMgNy4xMyAwIDAgMCAyLjU1LS45bDQuMiA0LjIgMS40MS0xLjQxTDQuNDEgMi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTRjMS42NiAwIDMtMS4zNCAzLTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDExYzAgMi43Ni0yLjI0IDUtNSA1cy01LTIuMjQtNS01SDVjMCAzLjUzIDIuNjEgNi40MyA2IDYuOTJWMjFoMnYtMy4wOGMzLjM5LS40OSA2LTMuMzkgNi02LjkyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWlzc2VkVmlkZW9DYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMC41VjdjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWgxMmMuNTUgMCAxLS40NSAxLTF2LTMuNWw0IDR2LTExbC00IDR6bS0yLTEuODNWMTZINVY4aDEwdi42N3ptLTcuODkgMi40NEwxMSAxNWwzLjc3LTMuNzktLjc4LS43OUwxMSAxMy40M2wtMy4xMS0zLjFoMi41NVY5LjIySDZ2NC40NGgxLjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92aWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNi40NyA1Ljc2IDEwSDIwdjhINFY2LjQ3TTIyIDRoLTRsMiA0aC0zbC0yLTRoLTJsMiA0aC0zbC0yLTRIOGwyIDRIN0w1IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU11c2ljVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxOHYxNHpNOCAxNWMwLTEuNjYgMS4zNC0zIDMtMyAuMzUgMCAuNjkuMDcgMSAuMThWNmg1djJoLTN2Ny4wM0EzLjAwMyAzLjAwMyAwIDAgMSAxMSAxOGMtMS42NiAwLTMtMS4zNC0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXdSZWxlYXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgMTItMi40NC0yLjc4LjM0LTMuNjgtMy42MS0uODItMS44OS0zLjE4TDEyIDMgOC42IDEuNTQgNi43MSA0LjcybC0zLjYxLjgxLjM0IDMuNjhMMSAxMmwyLjQ0IDIuNzgtLjM0IDMuNjkgMy42MS44MiAxLjg5IDMuMThMMTIgMjFsMy40IDEuNDYgMS44OS0zLjE4IDMuNjEtLjgyLS4zNC0zLjY4TDIzIDEyem0tNC41MSAyLjExLjI2IDIuNzktMi43NC42Mi0xLjQzIDIuNDFMMTIgMTguODJsLTIuNTggMS4xMS0xLjQzLTIuNDEtMi43NC0uNjIuMjYtMi44TDMuNjYgMTJsMS44NS0yLjEyLS4yNi0yLjc4IDIuNzQtLjYxIDEuNDMtMi40MUwxMiA1LjE4bDIuNTgtMS4xMSAxLjQzIDIuNDEgMi43NC42Mi0uMjYgMi43OUwyMC4zNCAxMmwtMS44NSAyLjExek0xMSAxNWgydjJoLTJ6bTAtOGgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RJbnRlcmVzdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOCAwLTEuODUuNjMtMy41NSAxLjY5LTQuOUwxNi45IDE4LjMxQTcuOTAyIDcuOTAyIDAgMCAxIDEyIDIwem02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NS0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTIuMDFjMCAxLjEuOSAxLjk5IDIgMS45OWgxNmMxLjEgMCAyLS45IDItMnYtOGwtNi02ek00IDE4LjAxVjZoMTF2NWg1djcuMDFINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhdXNlQ2lyY2xlRmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMSAxNEg5VjhoMnY4em00IDBoLTJWOGgydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXVzZUNpcmNsZU91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTZoMlY4SDl2OHptMy0xNEM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTEtNGgyVjhoLTJ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmgyVjhIOXY4em0zLTE0QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMS00aDJWOGgtMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTloNFY1SDZ2MTR6bTgtMTR2MTRoNFY1aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUFycm93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA4LjY0IDE1LjI3IDEyIDEwIDE1LjM2VjguNjRNOCA1djE0bDExLTdMOCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheUNpcmNsZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTQuNXYtOWw2IDQuNS02IDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMCAxNi41IDYtNC41LTYtNC41ek0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLTIuNS0zLjUgNy00LjUtNy00LjV2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlEaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ1IDEzLjYyIDE5IDEyIDggNXYuMTd6TTIuODEgMi44MSAxLjM5IDQuMjIgOCAxMC44M1YxOWw0Ljk5LTMuMTggNi43OCA2Ljc4IDEuNDEtMS40MUwyLjgxIDIuODF6TTEwIDE1LjM2di0yLjUzbDEuNTUgMS41NS0xLjU1Ljk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheWxpc3RBZGRDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDgtOC0zLjU5LTgtOCAzLjU5LTggOC04em0wLTJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTIgOEg3djJoN3YtMnptMC0zSDd2Mmg3Vjd6bS03IDhoM3YtMkg3djJ6bTEyLTEuNTlMMTcuNTkgMTJsLTMuNTQgMy41NC0xLjQxLTEuNDEtMS40MSAxLjQxIDIuODMgMi44M0wxOSAxMy40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlsaXN0QWRkQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEwaDExdjJIM3pNMyA2aDExdjJIM3pNMyAxNGg3djJIM3pNMjAuNTkgMTEuOTNsLTQuMjUgNC4yNC0yLjEyLTIuMTItMS40MSAxLjQxTDE2LjM0IDE5IDIyIDEzLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGxheWxpc3RBZGRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMi0xMEg3djJoN3YtMnptMC0zSDd2Mmg3Vjd6bS03IDhoM3YtMkg3djJ6bTEyLTJ2MmgtMnYyaC0ydi0yaC0ydi0yaDJ2LTJoMnYyaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5bGlzdEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwSDN2MmgxMXYtMnptMC00SDN2MmgxMVY2em00IDh2LTRoLTJ2NGgtNHYyaDR2NGgydi00aDR2LTJoLTR6TTMgMTZoN3YtMkgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5bGlzdFBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEwaDExdjJIM3pNMyA2aDExdjJIM3pNMyAxNGg3djJIM3pNMTYgMTN2OGw2LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGF5bGlzdFJlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEwSDN2MmgxMXYtMnptMC00SDN2MmgxMVY2ek0zIDE2aDd2LTJIM3Yyem0xMS40MSA2TDE3IDE5LjQxIDE5LjU5IDIyIDIxIDIwLjU5IDE4LjQxIDE4IDIxIDE1LjQxIDE5LjU5IDE0IDE3IDE2LjU5IDE0LjQxIDE0IDEzIDE1LjQxIDE1LjU5IDE4IDEzIDIwLjU5IDE0LjQxIDIyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVldWVNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDZoLTV2OC4xOGMtLjMxLS4xMS0uNjUtLjE4LTEtLjE4LTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtM1Y4aDNWNnptLTcgMEgzdjJoMTJWNnptMCA0SDN2MmgxMnYtMnptLTQgNEgzdjJoOHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVF1ZXVlUGxheU5leHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmEyIDIgMCAwIDAgMiAyaDV2Mmg4di0yaDJ2LTJIM1Y1aDE4djhoMlY1YTIgMiAwIDAgMC0yLTJ6bS04IDdWN2gtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zem0xMSA4LTQuNSA0LjVMMTggMjFsMy0zLTMtMyAxLjUtMS41TDI0IDE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6bS03LTFoMnYtNGg0VjloLTRWNWgtMnY0SDl2Mmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZIOC4zbDguMjYtMy4zNEwxNS44OCAxIDMuMjQgNi4xNUMyLjUxIDYuNDMgMiA3LjE3IDIgOHYxMmEyIDIgMCAwIDAgMiAyaDE2YTIgMiAwIDAgMCAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0wIDJ2M2gtMlY5aC0ydjJINFY4aDE2ek00IDIwdi03aDE2djdINHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4XCIsXCJjeVwiOlwiMTYuNDhcIixcInJcIjpcIjIuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVjZW50QWN0b3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1aDJ2MTRoLTJ6bS00IDBoMnYxNGgtMnptLTMgMEgyYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xem0tMSAxMkgzVjdoMTB2MTB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOFwiLFwiY3lcIjpcIjkuOTRcIixcInJcIjpcIjEuOTVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuODkgMTUuMzVjMC0xLjMtMi41OS0xLjk1LTMuODktMS45NXMtMy44OS42NS0zLjg5IDEuOTVWMTZoNy43OHYtLjY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVtb3ZlRnJvbVF1ZXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg1djJoOHYtMmg1YzEuMSAwIDItLjkgMi0yVjVhMiAyIDAgMCAwLTItMnptMCAxNEgzVjVoMTh2MTJ6bS01LTd2Mkg4di0yaDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBlYXRPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIM2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0tMiAxOEg2LjgzbDEuNTggMS41OEw3IDIybC00LTQgNC00IDEuNDEgMS40Mkw2LjgzIDE3SDE3di00aDJ2NnptLTItOS0xLjQxLTEuNDJMMTcuMTcgN0g3djRINVY1aDEyLjE3bC0xLjU4LTEuNThMMTcgMmw0IDQtNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwZWF0T25lT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxSDNjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptLTIgMThINi44M2wxLjU4IDEuNThMNyAyMmwtNC00IDQtNCAxLjQxIDEuNDJMNi44MyAxN0gxN3YtNGgydjZ6bS05LTguNVY5aDN2NmgtMS41di00LjVIMTB6bTctLjUtMS40MS0xLjQyTDE3LjE3IDdIN3Y0SDVWNWgxMi4xN2wtMS41OC0xLjU4TDE3IDJsNCA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGVhdE9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHptLTQtMlY5aC0xbC0yIDF2MWgxLjV2NEgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGVhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3aDEwdjNsNC00LTQtNHYzSDV2NmgyVjd6bTEwIDEwSDd2LTNsLTQgNCA0IDR2LTNoMTJ2LTZoLTJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGxheTEwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSA1VjFsLTUgNSA1IDVWN2MzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02aC0yYzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHptLTEuMSAxMWgtLjg1di0zLjI2bC0xLjAxLjMxdi0uNjlsMS43Ny0uNjNoLjA5VjE2em00LjI4LTEuNzZjMCAuMzItLjAzLjYtLjEuODJzLS4xNy40Mi0uMjkuNTctLjI4LjI2LS40NS4zMy0uMzcuMS0uNTkuMS0uNDEtLjAzLS41OS0uMS0uMzMtLjE4LS40Ni0uMzMtLjIzLS4zNC0uMy0uNTctLjExLS41LS4xMS0uODJ2LS43NGMwLS4zMi4wMy0uNi4xLS44MnMuMTctLjQyLjI5LS41Ny4yOC0uMjYuNDUtLjMzLjM3LS4xLjU5LS4xLjQxLjAzLjU5LjEuMzMuMTguNDYuMzMuMjMuMzQuMy41Ny4xMS41LjExLjgydi43NHptLS44NS0uODZjMC0uMTktLjAxLS4zNS0uMDQtLjQ4cy0uMDctLjIzLS4xMi0uMzEtLjExLS4xNC0uMTktLjE3LS4xNi0uMDUtLjI1LS4wNS0uMTguMDItLjI1LjA1LS4xNC4wOS0uMTkuMTctLjA5LjE4LS4xMi4zMS0uMDQuMjktLjA0LjQ4di45N2MwIC4xOS4wMS4zNS4wNC40OHMuMDcuMjQuMTIuMzIuMTEuMTQuMTkuMTcuMTYuMDUuMjUuMDUuMTgtLjAyLjI1LS4wNS4xNC0uMDkuMTktLjE3LjA5LS4xOS4xMS0uMzIuMDQtLjI5LjA0LS40OHYtLjk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwbGF5MzAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVWMUw3IDZsNSA1VjdjMy4zMSAwIDYgMi42OSA2IDZzLTIuNjkgNi02IDYtNi0yLjY5LTYtNkg0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LTgtMy41OC04LTgtOHptLTIuNDQgOC40OWguNDVjLjIxIDAgLjM3LS4wNS40OC0uMTZzLjE2LS4yNS4xNi0uNDNhLjUzOC41MzggMCAwIDAtLjE1LS4zOWMtLjA1LS4wNS0uMTEtLjA5LS4xOC0uMTFzLS4xNi0uMDQtLjI1LS4wNGMtLjA4IDAtLjE1LjAxLS4yMi4wM3MtLjEzLjA1LS4xOC4xLS4wOS4wOS0uMTIuMTUtLjA1LjEzLS4wNS4yaC0uODVhMS4wNiAxLjA2IDAgMCAxIC40MS0uODVjLjEzLS4xLjI3LS4xOC40NC0uMjNzLjM1LS4wOC41NC0uMDhjLjIxIDAgLjQxLjAzLjU5LjA4cy4zMy4xMy40Ni4yMy4yMy4yMy4zLjM4LjExLjMzLjExLjUzYS44NDIuODQyIDAgMCAxLS4xNy41MiAxLjEgMS4xIDAgMCAxLS40OC4zOWMuMjQuMDkuNDIuMjEuNTQuMzlzLjE4LjM4LjE4LjYxYzAgLjItLjA0LjM4LS4xMi41M3MtLjE4LjI5LS4zMi4zOS0uMjkuMTktLjQ4LjI0LS4zOC4wOC0uNi4wOGMtLjE4IDAtLjM2LS4wMi0uNTMtLjA3cy0uMzMtLjEyLS40Ni0uMjMtLjI1LS4yMy0uMzMtLjM4LS4xMi0uMzQtLjEyLS41NWguODVjMCAuMDguMDIuMTUuMDUuMjJzLjA3LjEyLjEzLjE3LjEyLjA5LjIuMTEuMTYuMDQuMjUuMDRjLjEgMCAuMTktLjAxLjI3LS4wNHMuMTUtLjA3LjItLjEyLjEtLjExLjEzLS4xOC4wNC0uMTUuMDQtLjI0YzAtLjExLS4wMi0uMjEtLjA1LS4yOXMtLjA4LS4xNS0uMTQtLjItLjEzLS4wOS0uMjItLjExLS4xOC0uMDQtLjI5LS4wNGgtLjQ3di0uNjV6bTUuNzQuNzVjMCAuMzItLjAzLjYtLjEuODJzLS4xNy40Mi0uMjkuNTctLjI4LjI2LS40NS4zMy0uMzcuMS0uNTkuMS0uNDEtLjAzLS41OS0uMS0uMzMtLjE4LS40Ni0uMzMtLjIzLS4zNC0uMy0uNTctLjExLS41LS4xMS0uODJ2LS43NGMwLS4zMi4wMy0uNi4xLS44MnMuMTctLjQyLjI5LS41Ny4yOC0uMjYuNDUtLjMzLjM3LS4xLjU5LS4xLjQxLjAzLjU5LjEuMzMuMTguNDYuMzMuMjMuMzQuMy41Ny4xMS41LjExLjgydi43NHptLS44NS0uODZjMC0uMTktLjAxLS4zNS0uMDQtLjQ4cy0uMDctLjIzLS4xMi0uMzEtLjExLS4xNC0uMTktLjE3LS4xNi0uMDUtLjI1LS4wNS0uMTguMDItLjI1LjA1LS4xNC4wOS0uMTkuMTctLjA5LjE4LS4xMi4zMS0uMDQuMjktLjA0LjQ4di45N2MwIC4xOS4wMS4zNS4wNC40OHMuMDcuMjQuMTIuMzIuMTEuMTQuMTkuMTcuMTYuMDUuMjUuMDUuMTgtLjAyLjI1LS4wNS4xNC0uMDkuMTktLjE3LjA5LS4xOS4xMS0uMzJjLjAzLS4xMy4wNC0uMjkuMDQtLjQ4di0uOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBsYXk1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1VjFMNyA2bDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZINGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04LTMuNTgtOC04LTh6bS0xLjMxIDguOS4yNS0yLjE3aDIuMzl2LjcxaC0xLjdsLS4xMS45MmMuMDMtLjAyLjA3LS4wMy4xMS0uMDVzLjA5LS4wNC4xNS0uMDUuMTItLjAzLjE4LS4wNC4xMy0uMDIuMi0uMDJjLjIxIDAgLjM5LjAzLjU1LjFzLjMuMTYuNDEuMjguMi4yNy4yNS40NS4wOS4zOC4wOS42YzAgLjE5LS4wMy4zNy0uMDkuNTRzLS4xNS4zMi0uMjcuNDUtLjI3LjI0LS40NS4zMS0uMzkuMTItLjY0LjEyYy0uMTggMC0uMzYtLjAzLS41My0uMDhzLS4zMi0uMTQtLjQ2LS4yNC0uMjQtLjI0LS4zMi0uMzktLjEzLS4zMy0uMTMtLjUzaC44NGMuMDIuMTguMDguMzIuMTkuNDFzLjI1LjE1LjQyLjE1YS40OS40OSAwIDAgMCAuNDUtLjIzYy4wNC0uMDcuMDgtLjE1LjExLS4yNXMuMDMtLjIuMDMtLjMxLS4wMS0uMjEtLjA0LS4zMS0uMDctLjE3LS4xMy0uMjQtLjEzLS4xMi0uMjEtLjE1LS4xOS0uMDUtLjMtLjA1Yy0uMDggMC0uMTUuMDEtLjIuMDJzLS4xMS4wMy0uMTUuMDUtLjA4LjA1LS4xMi4wNy0uMDcuMDYtLjEuMDlsLS42Ny0uMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBsYXlDaXJjbGVGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE2LjVjLTMuMzEgMC02LTIuNjktNi02aDJjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNGMwLTIuMjQtMS44NS00LjA5LTQuMTYtMy45OWwxLjU3IDEuNTdMMTIgMTEuNWwtNC00IDQtNCAxLjQxIDEuNDEtMS42IDEuNkMxNS4yOCA2LjQgMTggOS4xOCAxOCAxMi41YzAgMy4zMS0yLjY5IDYtNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1VjFMNyA2bDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZINGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04LTMuNTgtOC04LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTVoM2MuNTUgMCAxLS40NSAxLTF2LTEuNWMwLS41NS0uNDUtMS0xLTFINy41di0xaDJ2LjVIMTF2LTFjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXYxLjVjMCAuNTUuNDUgMSAxIDFoMi41djFoLTJWMTNINnYxYzAgLjU1LjQ1IDEgMSAxek0xOCAxNHYtNGMwLS41NS0uNDUtMS0xLTFoLTR2Nmg0Yy41NSAwIDEtLjQ1IDEtMXptLTEuNS0uNWgtMnYtM2gydjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaHVmZmxlT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxSDNjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNS40MSA0bDUuMTggNS4xNy0xLjQxIDEuNDJMNCA1LjQyIDUuNDEgNHpNMjAgMjBoLTZ2LTJoMi42MWwtMy4yLTMuMiAxLjQyLTEuNDIgMy4xMyAzLjEzLjA0LjA0VjE0aDJ2NnptMC0xMGgtMlY3LjQyTDUuNDEgMjAgNCAxOC41OSAxNi41OCA2SDE0VjRoNnY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2h1ZmZsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNTkgOS4xNyA1LjQxIDQgNCA1LjQxbDUuMTcgNS4xNyAxLjQyLTEuNDF6TTE0LjUgNGwyLjA0IDIuMDRMNCAxOC41OSA1LjQxIDIwIDE3Ljk2IDcuNDYgMjAgOS41VjRoLTUuNXptLjMzIDkuNDEtMS40MSAxLjQxIDMuMTMgMy4xM0wxNC41IDIwSDIwdi01LjVsLTIuMDQgMi4wNC0zLjEzLTMuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTa2lwTmV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAxOCA4LjUtNkw2IDZ2MTJ6bTItOC4xNEwxMS4wMyAxMiA4IDE0LjE0VjkuODZ6TTE2IDZoMnYxMmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNraXBQcmV2aW91cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2aDJ2MTJINnptMy41IDYgOC41IDZWNmwtOC41IDZ6bTYuNSAyLjE0TDEyLjk3IDEyIDE2IDkuODZ2NC4yOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNsb3dNb3Rpb25WaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuMDUgOS43OSAxMCA3LjV2OWwzLjA1LTIuMjlMMTYgMTJsLTIuOTUtMi4yMXptMCAwTDEwIDcuNXY5bDMuMDUtMi4yOUwxNiAxMmwtMi45NS0yLjIxem0wIDBMMTAgNy41djlsMy4wNS0yLjI5TDE2IDEybC0yLjk1LTIuMjF6TTExIDQuMDdWMi4wNWMtMi4wMS4yLTMuODQgMS01LjMyIDIuMjFMNy4xIDUuNjlBNy45NDEgNy45NDEgMCAwIDEgMTEgNC4wN3pNNS42OSA3LjEgNC4yNiA1LjY4QTkuOTQ5IDkuOTQ5IDAgMCAwIDIuMDUgMTFoMi4wMmMuMTgtMS40Ni43Ni0yLjc5IDEuNjItMy45ek00LjA3IDEzSDIuMDVjLjIgMi4wMSAxIDMuODQgMi4yMSA1LjMybDEuNDMtMS40M0E3Ljg2OCA3Ljg2OCAwIDAgMSA0LjA3IDEzem0xLjYxIDYuNzRBOS45ODEgOS45ODEgMCAwIDAgMTEgMjEuOTV2LTIuMDJhNy45NDEgNy45NDEgMCAwIDEtMy45LTEuNjJsLTEuNDIgMS40M3pNMjIgMTJjMCA1LjE2LTMuOTIgOS40Mi04Ljk1IDkuOTV2LTIuMDJDMTYuOTcgMTkuNDEgMjAgMTYuMDUgMjAgMTJzLTMuMDMtNy40MS02Ljk1LTcuOTNWMi4wNUMxOC4wOCAyLjU4IDIyIDYuODQgMjIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbm9vemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTFoMy42M0w5IDE1LjJWMTdoNnYtMmgtMy42M0wxNSAxMC44VjlIOXYyem03LjA1Ni03LjY1NCAxLjI4Mi0xLjUzNSA0LjYwNyAzLjg1LTEuMjggMS41NHpNMy4zMzYgNy4xOWwtMS4yOC0xLjUzNkw2LjY2MiAxLjgxbDEuMjggMS41MzZ6TTEyIDZjMy44NiAwIDcgMy4xNCA3IDdzLTMuMTQgNy03IDctNy0zLjE0LTctNyAzLjE0LTcgNy03bTAtMmE5IDkgMCAxIDAgLjAwMSAxOC4wMDFBOSA5IDAgMCAwIDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3J0QnlBbHBoYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuOTQgNC42NmgtNC43MmwyLjM2LTIuMzYgMi4zNiAyLjM2em0tNC42OSAxNC43MWg0LjY2bC0yLjMzIDIuMzMtMi4zMy0yLjMzek02LjEgNi4yNyAxLjYgMTcuNzNoMS44NGwuOTItMi40NWg1LjExbC45MiAyLjQ1aDEuODRMNy43NCA2LjI3SDYuMXptLTEuMTMgNy4zNyAxLjk0LTUuMTggMS45NCA1LjE4SDQuOTd6bTEwLjc2IDIuNWg2LjEydjEuNTloLTguNTN2LTEuMjlsNS45Mi04LjU2aC01Ljg4di0xLjZoOC4zdjEuMjZsLTUuOTMgOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4zOCA4LjU3LTEuMjMgMS44NWE4IDggMCAwIDEtLjIyIDcuNThINS4wN0E4IDggMCAwIDEgMTUuNTggNi44NWwxLjg1LTEuMjNBMTAgMTAgMCAwIDAgMy4zNSAxOWEyIDIgMCAwIDAgMS43MiAxaDEzLjg1YTIgMiAwIDAgMCAxLjc0LTEgMTAgMTAgMCAwIDAtLjI3LTEwLjQ0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41OSAxNS40MWEyIDIgMCAwIDAgMi44MyAwbDUuNjYtOC40OS04LjQ5IDUuNjZhMiAyIDAgMCAwIDAgMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0b3BDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHptNC00SDhWOGg4djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA4djhIOFY4aDhtMi0ySDZ2MTJoMTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YnNjcmlwdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgxNnYySDR6bTItNGgxMnYySDZ6bTE0IDhINGMtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi04YzAtMS4xLS45LTItMi0yem0wIDEwSDR2LThoMTZ2OHptLTEwLTcuMjd2Ni41M0wxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YnRpdGxlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyek02IDEwaDJ2Mkg2em0wIDRoOHYySDZ6bTEwIDBoMnYyaC0yem0tNi00aDh2MmgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1cnJvdW5kU291bmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119XX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC4yOSAxNS43MUE1LjIzMyA1LjIzMyAwIDAgMSA2Ljc1IDEyYzAtMS4zNS41Mi0yLjY5IDEuNTMtMy43Mkw3LjA1IDcuMDVDNS42OCA4LjQxIDUgMTAuMjEgNSAxMnMuNjggMy41OSAyLjA2IDQuOTRsMS4yMy0xLjIzek0xMiAxNS41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzEzLjkzIDguNSAxMiA4LjUgOC41IDEwLjA3IDguNSAxMnMxLjU3IDMuNSAzLjUgMy41em0wLTVjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNS0xLjUtLjY3LTEuNS0xLjUuNjctMS41IDEuNS0xLjV6TTE1LjcyIDE1LjcybDEuMjMgMS4yM0MxOC4zMiAxNS41OSAxOSAxMy43OSAxOSAxMnMtLjY4LTMuNTktMi4wNi00Ljk0bC0xLjIzIDEuMjNBNS4yMzMgNS4yMzMgMCAwIDEgMTcuMjUgMTJjMCAxLjM1LS41MiAyLjY5LTEuNTMgMy43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvQ2FsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTAuNVY3YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xMWwtNCA0ek0xNSAxNkg1VjhoMTB2OHptLTYtMWgydi0yaDJ2LTJoLTJWOUg5djJIN3YyaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb0ZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWOGwtNi02ek02IDIwVjRoN3Y1aDV2MTFINnptOC02IDItMS4wNnY0LjEyTDE0IDE2djFjMCAuNTUtLjQ1IDEtMSAxSDljLS41NSAwLTEtLjQ1LTEtMXYtNGMwLS41NS40NS0xIDEtMWg0Yy41NSAwIDEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9MYWJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTNIM1Y1aDE4djExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9MaWJyYXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyek0xMiA1LjV2OWw2LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvU2V0dGluZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDZoMTh2NWgyVjZjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg5di0ySDNWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTIgOSA4djh6TTIyLjcxIDE4LjQzYy4wMy0uMjkuMDQtLjU4LjAxLS44NmwxLjA3LS44NWMuMS0uMDguMTItLjIxLjA2LS4zMmwtMS4wMy0xLjc5Yy0uMDYtLjExLS4xOS0uMTUtLjMxLS4xMWwtMS4yOC41YTMuNDQgMy40NCAwIDAgMC0uNzUtLjQybC0uMi0xLjM2YS4yNDkuMjQ5IDAgMCAwLS4yNS0uMjJoLTIuMDdjLS4xMiAwLS4yMy4wOS0uMjUuMjFsLS4yIDEuMzZjLS4yNi4xMS0uNTEuMjYtLjc0LjQybC0xLjI4LS41Yy0uMTItLjA1LS4yNSAwLS4zMS4xMWwtMS4wMyAxLjc5Yy0uMDYuMTEtLjA0LjI0LjA2LjMybDEuMDcuODZjLS4wMy4yOS0uMDQuNTgtLjAxLjg2bC0xLjA3Ljg1Yy0uMS4wOC0uMTIuMjEtLjA2LjMybDEuMDMgMS43OWMuMDYuMTEuMTkuMTUuMzEuMTFsMS4yNy0uNWMuMjMuMTcuNDguMzEuNzUuNDJsLjIgMS4zNmMuMDIuMTIuMTIuMjEuMjUuMjFoMi4wN2MuMTIgMCAuMjMtLjA5LjI1LS4yMWwuMi0xLjM2Yy4yNi0uMTEuNTEtLjI2Ljc0LS40MmwxLjI4LjVjLjEyLjA1LjI1IDAgLjMxLS4xMWwxLjAzLTEuNzljLjA2LS4xMS4wNC0uMjQtLjA2LS4zMmwtMS4wNi0uODV6TTE5IDE5LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9jYW1PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkuNTYgOC0yLTItNC4xNS00LjE0TDIgMy4yNyA0LjczIDZINGMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDEyYy4yMSAwIC4zOS0uMDguNTUtLjE4TDE5LjczIDIxbDEuNDEtMS40MS04Ljg2LTguODZMOS41NiA4ek01IDE2VjhoMS43M2w4IDhINXptMTAtOHYyLjYxbDYgNlY2LjVsLTQgNFY3YzAtLjU1LS40NS0xLTEtMWgtNS42MWwyIDJIMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb2NhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOHY4SDVWOGgxMG0xLTJINGMtLjU1IDAtMSAuNDUtMSAxdjEwYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMXYtMy41bDQgNHYtMTFsLTQgNFY3YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbHVtZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDcuOTd2OC4wNWMxLjQ4LS43MyAyLjUtMi4yNSAyLjUtNC4wMkE0LjUgNC41IDAgMCAwIDE2IDcuOTd6TTUgOXY2aDRsNSA1VjRMOSA5SDV6bTctLjE3djYuMzRMOS44MyAxM0g3di0yaDIuODNMMTIgOC44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbHVtZU11dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDguODN2Ni4zNEwxMS44MyAxM0g5di0yaDIuODNMMTQgOC44M00xNiA0bC01IDVIN3Y2aDRsNSA1VjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWb2x1bWVPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuMzQgMi45MyAyLjkzIDQuMzQgNy4yOSA4LjcgNyA5SDN2Nmg0bDUgNXYtNi41OWw0LjE4IDQuMThjLS42NS40OS0xLjM4Ljg4LTIuMTggMS4xMXYyLjA2YTguOTQgOC45NCAwIDAgMCAzLjYxLTEuNzVsMi4wNSAyLjA1IDEuNDEtMS40MUw0LjM0IDIuOTN6TTEwIDE1LjE3IDcuODMgMTNINXYtMmgyLjgzbC44OC0uODhMMTAgMTEuNDF2My43NnpNMTkgMTJjMCAuODItLjE1IDEuNjEtLjQxIDIuMzRsMS41MyAxLjUzYy41Ni0xLjE3Ljg4LTIuNDguODgtMy44NyAwLTQuMjgtMi45OS03Ljg2LTctOC43N3YyLjA2YzIuODkuODYgNSAzLjU0IDUgNi43MXptLTctOC0xLjg4IDEuODhMMTIgNy43NnptNC41IDhBNC41IDQuNSAwIDAgMCAxNCA3Ljk3djEuNzlsMi40OCAyLjQ4Yy4wMS0uMDguMDItLjE2LjAyLS4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvbHVtZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDl2Nmg0bDUgNVY0TDcgOUgzem03LS4xN3Y2LjM0TDcuODMgMTNINXYtMmgyLjgzTDEwIDguODN6TTE2LjUgMTJBNC41IDQuNSAwIDAgMCAxNCA3Ljk3djguMDVjMS40OC0uNzMgMi41LTIuMjUgMi41LTQuMDJ6TTE0IDMuMjN2Mi4wNmMyLjg5Ljg2IDUgMy41NCA1IDYuNzFzLTIuMTEgNS44NS01IDYuNzF2Mi4wNmM0LjAxLS45MSA3LTQuNDkgNy04Ljc3IDAtNC4yOC0yLjk5LTcuODYtNy04Ljc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2ViQXNzZXRPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgzIDRIMjBhMiAyIDAgMCAxIDIgMnYxMmMwIC4zNC0uMDkuNjYtLjIzLjk0TDIwIDE3LjE3VjhoLTkuMTdsLTQtNHptMTMuNjYgMTkuMzFMMTcuMTcgMjBINGEyIDIgMCAwIDEtMi0yVjZjMC0uMzQuMDgtLjY2LjIzLS45NEwuNjkgMy41MSAyLjEgMi4xbDE5LjggMTkuOC0xLjQxIDEuNDF6TTE1LjE3IDE4bC0xMC0xMEg0djEwaDExLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2ViQXNzZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDRINWEyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmEyIDIgMCAwIDAtMi0yem0wIDE0SDVWOGgxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdlYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yek00IDloMTAuNXYzLjVINFY5em0wIDUuNWgxMC41VjE4SDR2LTMuNXpNMjAgMThoLTMuNVY5SDIwdjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzUCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINC4wMWMtMS4xIDAtMiAuOS0yIDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg1LjE3TDQgMTcuMTdWNGgxNnYxMnptLTgtNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgOCAxMy40M1YxNGg4di0uNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRJY0NhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjQ1Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMS0uMDMtLjIxLS4wNS0uMzEtLjA1LS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTEgMTEuMzYgMTEuMzYgMCAwIDEtLjU3LTMuNTdjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTUuMDMgNC45NWgxLjVjLjA3Ljg4LjIyIDEuNzUuNDUgMi41OGwtMS4yIDEuMjFjLS40LTEuMjEtLjY2LTIuNDctLjc1LTMuNzl6TTE5IDE4LjkyYy0xLjMyLS4wOS0yLjYtLjM1LTMuOC0uNzZsMS4yLTEuMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS41MXpNMTggNS45NXYtM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsdGVybmF0ZUVtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxLjk1Yy01LjUyIDAtMTAgNC40OC0xMCAxMHM0LjQ4IDEwIDEwIDEwaDV2LTJoLTVjLTQuMzQgMC04LTMuNjYtOC04czMuNjYtOCA4LTggOCAzLjY2IDggOHYxLjQzYzAgLjc5LS43MSAxLjU3LTEuNSAxLjU3cy0xLjUtLjc4LTEuNS0xLjU3di0xLjQzYzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1IDIuMjQgNSA1IDVjMS4zOCAwIDIuNjQtLjU2IDMuNTQtMS40Ny42NS44OSAxLjc3IDEuNDcgMi45NiAxLjQ3IDEuOTcgMCAzLjUtMS42IDMuNS0zLjU3di0xLjQzYzAtNS41Mi00LjQ4LTEwLTEwLTEwem0wIDEzYy0xLjY2IDAtMy0xLjM0LTMtM3MxLjM0LTMgMy0zIDMgMS4zNCAzIDMtMS4zNCAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwcFJlZ2lzdHJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDRoNHY0aC00ek00IDE2aDR2NEg0ek00IDEwaDR2NEg0ek00IDRoNHY0SDR6TTE2IDRoNHY0aC00ek0xMSAxNy44NlYyMGgyLjFsNS45OC01Ljk3LTIuMTItMi4xMnpNMTQgMTIuMDNWMTBoLTR2NGgyLjAzek0yMC44NSAxMS41NmwtMS40MS0xLjQxYy0uMi0uMi0uNTEtLjItLjcxIDBsLTEuMDYgMS4wNiAyLjEyIDIuMTIgMS4wNi0xLjA2Yy4yLS4yLjItLjUxIDAtLjcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnVzaW5lc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDIwVjdIMTJ6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTAtNEg0VjVoMnYyem00IDEySDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTAtNEg4VjloMnYyem0wLTRIOFY1aDJ2MnptMTAgMTJoLTh2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloOHYxMHptLTItOGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxsRW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC41OSAxMC41MmMxLjA1LjUxIDIuMDQgMS4xNSAyLjk2IDEuOTFsLTEuMDcgMS4wN2MtLjU4LS40Ny0xLjIxLS44OS0xLjg4LTEuMjd2LTEuNzFtLTEzLjIgMHYxLjdjLS42NS4zNy0xLjI4Ljc5LTEuODcgMS4yN2wtMS4wNy0xLjA3Yy45MS0uNzUgMS45LTEuMzggMi45NC0xLjlNMTIgN0M3LjQ2IDcgMy4zNCA4Ljc4LjI5IDExLjY3Yy0uMTguMTgtLjI5LjQzLS4yOS43MXMuMTEuNTMuMjkuN2wyLjQ4IDIuNDhjLjE4LjE4LjQzLjI5LjcxLjI5LjI3IDAgLjUyLS4xLjctLjI4Ljc5LS43MyAxLjY4LTEuMzYgMi42Ni0xLjg1LjMzLS4xNi41Ni0uNTEuNTYtLjl2LTMuMUM4Ljg1IDkuMjUgMTAuNCA5IDEyIDlzMy4xNS4yNSA0LjU5LjczdjMuMWMwIC40LjIzLjc0LjU2LjkuOTguNDkgMS44OCAxLjExIDIuNjcgMS44NS4xOC4xNy40My4yOC43LjI4LjI4IDAgLjUzLS4xMS43MS0uMjlsMi40OC0yLjQ4Yy4xOC0uMTguMjktLjQzLjI5LS43MXMtLjExLS41My0uMjktLjcxQTE2Ljk3MSAxNi45NzEgMCAwIDAgMTIgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGxNYWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDV2Mmg2LjU5TDQgMTguNTkgNS40MSAyMCAxNyA4LjQxVjE1aDJWNUg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbE1lcmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMC40MSAxOC40MSAxOSAxNSAxNS41OSAxMy41OSAxNyAxNyAyMC40MXpNNy41IDhIMTF2NS41OUw1LjU5IDE5IDcgMjAuNDFsNi02VjhoMy41TDEyIDMuNSA3LjUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGxNaXNzZWRPdXRnb2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMgOC40MSA5IDkgNy03VjE1aDJWN2gtOHYyaDQuNTlMMTIgMTQuNTkgNC40MSA3IDMgOC40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGxNaXNzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjU5IDcgMTIgMTQuNTkgNi40MSA5SDExVjdIM3Y4aDJ2LTQuNTlsNyA3IDktOUwxOS41OSA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbFJlY2VpdmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1LjQxIDE4LjU5IDQgNyAxNS41OVY5SDV2MTBoMTB2LTJIOC40MUwyMCA1LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FsbFNwbGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA0IDIuMjkgMi4yOS0yLjg4IDIuODggMS40MiAxLjQyIDIuODgtMi44OEwyMCAxMFY0aC02em0tNCAwSDR2NmwyLjI5LTIuMjkgNC43MSA0LjdWMjBoMnYtOC40MWwtNS4yOS01LjNMMTAgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTQgNWMuMDYuODkuMjEgMS43Ni40NSAyLjU5bC0xLjIgMS4yYy0uNDEtMS4yLS42Ny0yLjQ3LS43Ni0zLjc5aDEuNTFtOS44NiAxMi4wMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS40OWMtMS4zMi0uMDktMi41OS0uMzUtMy44LS43NWwxLjItMS4xOU03LjUgM0g0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMS0xLjI0IDAtMi40NS0uMi0zLjU3LS41N2EuODQuODQgMCAwIDAtLjMxLS4wNWMtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjE0OSAxNS4xNDkgMCAwIDEtNi41OS02LjU5bDIuMi0yLjJjLjI4LS4yOC4zNi0uNjcuMjUtMS4wMkExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW5jZWxQcmVzZW50YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxOHYxNHpNOS40MSAxNS45NSAxMiAxMy4zNmwyLjU5IDIuNTlMMTYgMTQuNTRsLTIuNTktMi41OUwxNiA5LjM2bC0xLjQxLTEuNDFMMTIgMTAuNTQgOS40MSA3Ljk1IDggOS4zNmwyLjU5IDIuNTlMOCAxNC41NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNlbGxUb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcuMyAxNC43IDEuMi0xLjJjLTEtMS0xLjUtMi4zLTEuNS0zLjUgMC0xLjMuNS0yLjYgMS41LTMuNUw3LjMgNS4zYy0xLjMgMS4zLTIgMy0yIDQuN3MuNyAzLjQgMiA0Ljd6TTE5LjEgMi45bC0xLjIgMS4yYzEuNiAxLjYgMi40IDMuOCAyLjQgNS45IDAgMi4xLS44IDQuMy0yLjQgNS45bDEuMiAxLjJjMi0yIDIuOS00LjUgMi45LTcuMSAwLTIuNi0xLTUuMS0yLjktNy4xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjEgNC4xIDQuOSAyLjlDMyA0LjkgMiA3LjQgMiAxMGMwIDIuNiAxIDUuMSAyLjkgNy4xbDEuMi0xLjJjLTEuNi0xLjYtMi40LTMuOC0yLjQtNS45IDAtMi4xLjgtNC4zIDIuNC01Ljl6TTE2LjcgMTQuN2MxLjMtMS4zIDItMyAyLTQuNy0uMS0xLjctLjctMy40LTItNC43bC0xLjIgMS4yYzEgMSAxLjUgMi4zIDEuNSAzLjUgMCAxLjMtLjUgMi42LTEuNSAzLjVsMS4yIDEuMnpNMTQuNSAxMGEyLjUgMi41IDAgMCAwLTUgMGMwIC43Ni4zNCAxLjQyLjg3IDEuODhMNyAyMmgybC42Ny0yaDQuNjdsLjY2IDJoMmwtMy4zNy0xMC4xMmMuNTMtLjQ2Ljg3LTEuMTIuODctMS44OHptLTQuMTcgOEwxMiAxM2wxLjY3IDVoLTMuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDZWxsV2lmaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMjJoMTZWNS45N0w2IDIyem0xNC0yaC0ydi03LjIybDItMlYyMHpNNS4yMiA3LjIyIDMuOTMgNS45M2MzLjktMy45MSAxMC4yNC0zLjkxIDE0LjE1IDBsLTEuMjkgMS4yOWMtMy4xOS0zLjE5LTguMzgtMy4xOS0xMS41NyAwem03LjcxIDMuODVMMTEgMTNsLTEuOTMtMS45M2EyLjc0IDIuNzQgMCAwIDEgMy44NiAwem0xLjI5LTEuMjhjLTEuNzgtMS43Ny00LjY2LTEuNzctNi40MyAwTDYuNSA4LjVhNi4zNzQgNi4zNzQgMCAwIDEgOSAwbC0xLjI4IDEuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGF0QnViYmxlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg2bC0yIDJWNGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYXRCdWJibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRoMTZ2MTJINS4xN0w0IDE3LjE3VjRtMC0yYy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJINHptMiAxMGg4djJINnYtMnptMC0zaDEydjJINlY5em0wLTNoMTJ2Mkg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbGVhckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxM2gxNHYtMkg1djJ6bS0yIDRoMTR2LTJIM3Yyek03IDd2MmgxNFY3SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb1ByZXNlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMSAwLTIgLjktMiAydjhoMlY1aDE4djE2YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEwYzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0IDEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTYgMGMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yek0xNS4zOSAxNi41NkMxMy43MSAxNS43IDExLjUzIDE1IDkgMTVzLTQuNzEuNy02LjM5IDEuNTZBMi45NyAyLjk3IDAgMCAwIDEgMTkuMjJWMjJoMTZ2LTIuNzhjMC0xLjEyLS42MS0yLjE1LTEuNjEtMi42NnpNMTUgMjBIM2MwLS43Mi0uMS0xLjM0LjUyLTEuNjZDNC43MSAxNy43MyA2LjYzIDE3IDkgMTdjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjYzLjMyLjUyLjk1LjUyIDEuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OSA0YzAtMS4xLS44OS0yLTEuOTktMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE0bDQgNC0uMDEtMTh6TTIwIDR2MTMuMTdMMTguODMgMTZINFY0aDE2ek02IDEyaDEydjJINnptMC0zaDEydjJINnptMC0zaDEydjJINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbW1lbnRzRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC44MyAxNkgyMFY0SDYuODNsLTItMkgyMGMxLjEgMCAyIC45IDIgMnYxNS4xN0wxOC44MyAxNnpNMTggNkg4LjgzbDIgMkgxOFY2em0wIDNoLTYuMTdsMiAySDE4Vjl6bTAgNXYtMmgtMy4xN2wyIDJIMTh6bTMuOSA3LjktMS40MSAxLjQxTDE1LjE3IDE4SDRjLTEuMSAwLTItLjktMi0yVjQuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5Ljh6TTEzLjE3IDE2bC0yLTJINnYtMmgzLjE3bC0xLTFINlY5aC4xN0w0IDYuODNWMTZoOS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRhY3RFbWVyZ2VuY3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE0YzEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMC00Yy41NCAwIDEgLjQ2IDEgMXMtLjQ2IDEtMSAxLTEtLjQ2LTEtMSAuNDYtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIMkMuOSAzIDAgMy45IDAgNXYxNGMwIDEuMS45IDIgMiAyaDIwYzEuMSAwIDEuOTktLjkgMS45OS0yTDI0IDVjMC0xLjEtLjktMi0yLTJ6TTQuNTQgMTljMS4xLTEuMjIgMi42OS0yIDQuNDYtMnMzLjM2Ljc4IDQuNDYgMkg0LjU0ek0yMiAxOWgtNi4wOGMtMS4zOC0yLjM5LTMuOTYtNC02LjkyLTRzLTUuNTQgMS42MS02LjkyIDRIMlY1aDIwdjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS43OCAxMS4xNSAxLjQ3LS44NVYxMmgxLjV2LTEuN2wxLjQ3Ljg1Ljc1LTEuM0wxOS41IDlsMS40Ny0uODUtLjc1LTEuMy0xLjQ3Ljg1VjZoLTEuNXYxLjdsLTEuNDctLjg1LS43NSAxLjNMMTYuNSA5bC0xLjQ3Ljg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGFjdE1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDJDLjkgMyAwIDMuOSAwIDV2MTRjMCAxLjEuOSAyIDIgMmgyMGMxLjEgMCAxLjk5LS45IDEuOTktMkwyNCA1YzAtMS4xLS45LTItMi0yem0wIDE2SDJWNWgyMHYxNHpNMjEgNmgtN3Y1aDdWNnptLTEgMi0yLjUgMS43NUwxNSA4VjdsMi41IDEuNzVMMjAgN3Yxek05IDEyYzEuNjUgMCAzLTEuMzUgMy0zcy0xLjM1LTMtMy0zLTMgMS4zNS0zIDMgMS4zNSAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTYgOC41OWMwLTIuNS0zLjk3LTMuNTgtNi0zLjU4cy02IDEuMDgtNiAzLjU4VjE4aDEydi0xLjQxek01LjQ4IDE2Yy43NC0uNSAyLjIyLTEgMy41Mi0xczIuNzcuNDkgMy41MiAxSDUuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250YWN0UGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDNIMkMuOSAzIDAgMy45IDAgNXYxNGMwIDEuMS45IDIgMiAyaDIwYzEuMSAwIDEuOTktLjkgMS45OS0yTDI0IDVjMC0xLjEtLjktMi0yLTJ6bTAgMTZIMlY1aDIwdjE0em0tMi45OS0xLjAxTDIxIDE2bC0xLjUxLTJoLTEuNjRjLS4yMi0uNjMtLjM1LTEuMy0uMzUtMnMuMTMtMS4zNy4zNS0yaDEuNjRMMjEgOGwtMS45OS0xLjk5QTcuNDc0IDcuNDc0IDAgMCAwIDE2LjI4IDEwYy0uMTguNjQtLjI4IDEuMzEtLjI4IDJzLjEgMS4zNi4yOCAyYTcuNTEyIDcuNTEyIDAgMCAwIDIuNzMgMy45OXpNOSAxMmMxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzIDEuMzUgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem02IDguNTljMC0yLjUtMy45Ny0zLjU4LTYtMy41OHMtNiAxLjA4LTYgMy41OFYxOGgxMnYtMS40MXpNNS40OCAxNmMuNzQtLjUgMi4yMi0xIDMuNTItMXMyLjc3LjQ5IDMuNTIgMUg1LjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGFjdHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWNmgxNnYxMnpNNCAwaDE2djJINHptMCAyMmgxNnYySDR6bTgtMTBhMi41IDIuNSAwIDAgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDV6bTAtMy41Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTUgNy40OUMxNyAxMy45IDEzLjY5IDEzIDEyIDEzcy01IC45LTUgMi45OVYxN2gxMHYtMS4wMXptLTguMTktLjQ5Yy42MS0uNTIgMi4wMy0xIDMuMTktMSAxLjE3IDAgMi41OS40OCAzLjIgMUg4LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVza3RvcEFjY2Vzc0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjQxIDEuNjkgMCAzLjFsMSAuOTlWMTZjMCAxLjEuODkgMiAxLjk5IDJIMTB2Mkg4djJoOHYtMmgtMnYtMmguOWw2IDYgMS40MS0xLjQxLTIwLjktMjAuOXpNMi45OSAxNlY2LjA5TDEyLjkgMTZIMi45OXpNNC41NSAybDIgMkgyMXYxMmgtMi40NWwyIDJoLjQ0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJINC41NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpYWxlclNpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgM2gxdjVoLTF6bS0xIDJoLTJWNGgyVjNoLTN2M2gydjFoLTJ2MWgzem0zLTJ2NWgxVjZoMlYzaC0zem0yIDJoLTFWNGgxdjF6bTAgMTAuNWMtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTdhLjk4NC45ODQgMCAwIDAtMS4wMS4yNGwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWMuMjctLjI2LjM1LS42NS4yNC0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjVjMC0uNTUtLjQ1LTEtMS0xek01LjAzIDVoMS41Yy4wNy44OC4yMiAxLjc1LjQ2IDIuNTlMNS43OSA4LjhjLS40MS0xLjIxLS42Ny0yLjQ4LS43Ni0zLjh6TTE5IDE4Ljk3Yy0xLjMyLS4wOS0yLjU5LS4zNS0zLjgtLjc1bDEuMi0xLjJjLjg1LjI0IDEuNzEuMzkgMi41OS40NXYxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaWFscGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgMWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyLThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tNiA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMC02Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTYgMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb2N1bWVudFNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDNINHYzSDJWMWg1djJ6bTE1IDNWMWgtNXYyaDN2M2gyek03IDIxSDR2LTNIMnY1aDV2LTJ6bTEzLTN2M2gtM3YyaDV2LTVoLTJ6TTE3IDZIN3YxMmgxMFY2em0yIDEyYzAgMS4xLS45IDItMiAySDdjLTEuMSAwLTItLjktMi0yVjZjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMnYxMnpNMTUgOEg5djJoNlY4em0wIDNIOXYyaDZ2LTJ6bTAgM0g5djJoNnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvbWFpbkRpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjQxIDEuNjkgMCAzLjFsMiAyVjIxaDE1LjlsMyAzIDEuNDEtMS40MS0yMC45LTIwLjl6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptLTItNFY5aDJ2Mkg0em02IDhIOHYtMmgydjJ6bS0yLTR2LTJoMnYySDh6bTQgNHYtMmgxLjlsMiAySDEyek04IDVoMnYyaC0uNDVMMTIgOS40NVY5aDh2OC40NWwyIDJWN0gxMlYzSDUuNTVMOCA1LjQ1em04IDZoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9tYWluVmVyaWZpY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuNiAxMC44OC0xLjQyLTEuNDItNC4yNCA0LjI1LTIuMTItMi4xM0w3LjQgMTNsMy41NCAzLjU0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVhMiAyIDAgMCAwLTIgMnYxMmEyIDIgMCAwIDAgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjZhMiAyIDAgMCAwLTItMnptMCAxNEg1VjhoMTR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEdW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJoLThDNi4zOCAyIDIgNi42NiAyIDEyLjI4IDIgMTcuNSA2LjQ5IDIyIDExLjcyIDIyIDE3LjM5IDIyIDIyIDE3LjYyIDIyIDEyVjRjMC0xLjEtLjktMi0yLTJ6bS0zIDEzLTMtMnYySDdWOWg3djJsMy0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbWFpbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZ6bS0yIDAtOCA1LTgtNWgxNnptMCAxMkg0VjhsOCA1IDgtNXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcnVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA0djdINS4xN0w0IDEyLjE3VjRoMTFtMS0ySDNjLS41NSAwLTEgLjQ1LTEgMXYxNGw0LTRoMTBjLjU1IDAgMS0uNDUgMS0xVjNjMC0uNTUtLjQ1LTEtMS0xem01IDRoLTJ2OUg2djJjMCAuNTUuNDUgMSAxIDFoMTFsNCA0VjdjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9yd2FyZFRvSW5ib3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoOXYtMkg0VjhsOCA1IDgtNXY1aDJWNmMwLTEuMS0uOS0yLTItMnptLTggN0w0IDZoMTZsLTggNXptNyA0IDQgNC00IDR2LTNoLTR2LTJoNHYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdXJnbGFzc0JvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDIyLS4wMS02TDE0IDEybDMuOTktNC4wMUwxOCAySDZ2Nmw0IDQtNCAzLjk5VjIyaDEyek04IDcuNVY0aDh2My41bC00IDQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91cmdsYXNzVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAyIC4wMSA2TDEwIDEybC0zLjk5IDQuMDFMNiAyMmgxMnYtNmwtNC00IDQtMy45OVYySDZ6bTEwIDE0LjVWMjBIOHYtMy41bDQtNCA0IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIdWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA2LjVhMi45OTYgMi45OTYgMCAwIDAtMi45OSAzLjIxbC0yLjAzLjY4YTQuNDY4IDQuNDY4IDAgMCAwLTMuMjItMi4zMlY1LjkxQTMuMDE4IDMuMDE4IDAgMCAwIDE1IDNjMC0xLjY2LTEuMzQtMy0zLTNTOSAxLjM0IDkgM2MwIDEuNC45NiAyLjU3IDIuMjUgMi45MXYyLjE2Yy0xLjQuMjMtMi41OCAxLjExLTMuMjIgMi4zMmwtMi4wNC0uNjhDNiA5LjY0IDYgOS41NyA2IDkuNWMwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzYzEuMDYgMCAxLjk4LS41NSAyLjUyLTEuMzdsMi4wMy42OGMtLjIgMS4yOS4xNyAyLjY2IDEuMDkgMy42OWwtMS40MSAxLjc3QzYuODUgMTcuMDkgNi40NCAxNyA2IDE3Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTNjMC0uNjgtLjIyLTEuMy0uNi0xLjhsMS40MS0xLjc3YzEuMzYuNzYgMy4wMi43NSA0LjM3IDBsMS40MSAxLjc3Yy0uMzcuNS0uNTkgMS4xMi0uNTkgMS44IDAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtM2MtLjQ0IDAtLjg1LjA5LTEuMjMuMjZsLTEuNDEtMS43N2E0LjQ5IDQuNDkgMCAwIDAgMS4wOS0zLjY5bDIuMDMtLjY4Yy41My44MiAxLjQ2IDEuMzcgMi41MiAxLjM3IDEuNjYgMCAzLTEuMzQgMy0zUzIyLjY2IDYuNSAyMSA2LjV6bS0xOCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTYgMjFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptNS0xOGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDEtLjQ1IDEtMSAxLTEtLjQ1LTEtMXptMSAxMmEyLjUgMi41IDAgMCAxIDAtNSAyLjUgMi41IDAgMCAxIDAgNXptNiA0Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTMtOC41Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbXBvcnRDb250YWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVjLTEuMTEtLjM1LTIuMzMtLjUtMy41LS41LTEuOTUgMC00LjA1LjQtNS41IDEuNS0xLjQ1LTEuMS0zLjU1LTEuNS01LjUtMS41UzIuNDUgNC45IDEgNnYxNC42NWMwIC4yNS4yNS41LjUuNS4xIDAgLjE1LS4wNS4yNS0uMDVDMy4xIDIwLjQ1IDUuMDUgMjAgNi41IDIwYzEuOTUgMCA0LjA1LjQgNS41IDEuNSAxLjM1LS44NSAzLjgtMS41IDUuNS0xLjUgMS42NSAwIDMuMzUuMyA0Ljc1IDEuMDUuMS4wNS4xNS4wNS4yNS4wNS4yNSAwIC41LS4yNS41LS41VjZjLS42LS40NS0xLjI1LS43NS0yLTF6bTAgMTMuNWMtMS4xLS4zNS0yLjMtLjUtMy41LS41LTEuNyAwLTQuMTUuNjUtNS41IDEuNVY4YzEuMzUtLjg1IDMuOC0xLjUgNS41LTEuNSAxLjIgMCAyLjQuMTUgMy41LjV2MTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltcG9ydEV4cG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAzIDUgNi45OWgzVjE0aDJWNi45OWgzTDkgM3ptNyAxNC4wMVYxMGgtMnY3LjAxaC0zTDE1IDIxbDQtMy45OWgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUludmVydENvbG9yc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsNC4yIDQuMmE3LjczIDcuNzMgMCAwIDAtMS42IDQuN0M0IDE3LjQ4IDcuNTggMjEgMTIgMjFjMS43NSAwIDMuMzYtLjU2IDQuNjctMS41bDMuMSAzLjEgMS40Mi0xLjQxek0xMiAxOWMtMy4zMSAwLTYtMi42My02LTUuODcgMC0xLjE5LjM2LTIuMzIgMS4wMi0zLjI4TDEyIDE0LjgzVjE5ek04LjM4IDUuNTYgMTIgMmw1LjY1IDUuNTZDMTkuMSA4Ljk5IDIwIDEwLjk2IDIwIDEzLjEzYzAgMS4xOC0uMjcgMi4yOS0uNzQgMy4zTDEyIDkuMTdWNC44MUw5LjggNi45NyA4LjM4IDUuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMC43IDEzLjUzLTEuNzEtMS43MWMuMDEuMDYuMDEuMTIuMDEuMTggMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yYy4wNiAwIC4xMiAwIC4xOC4wMUw1LjQ3IDguM0M0LjAyIDguOSAzIDEwLjMzIDMgMTJjMCAyLjIxIDEuNzkgNCA0IDQgMS42NyAwIDMuMS0xLjAyIDMuNy0yLjQ3em0xLjQ5IDEuNDlBNi4wMTIgNi4wMTIgMCAwIDEgNyAxOGMtMy4zMSAwLTYtMi42OS02LTYgMC0yLjIxIDEuMi00LjE1IDIuOTgtNS4xOUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxLTcuNTgtNy41OHptNC4wNy0xLjU5IDEuMjQtLjkzIDEuODEgMS4zNkwyMS4xNyAxMmwtMS0xaC02LjM0bC0yLTJIMjFsMyAzLTQuNSA0LjUtLjY5LS41MS0yLjU1LTIuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMGgtOC4zNUE1Ljk5IDUuOTkgMCAwIDAgNyA2Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2YTUuOTkgNS45OSAwIDAgMCA1LjY1LTRIMTNsMiAyIDItMiAyIDIgNC00LjA0TDIxIDEwek03IDE1Yy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpc3RBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoNnYyaC02em0wIDRoNnYyaC02em0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3ek0yMC4xIDNIMy45Yy0uNSAwLS45LjQtLjkuOXYxNi4yYzAgLjQuNC45LjkuOWgxNi4yYy40IDAgLjktLjUuOS0uOVYzLjljMC0uNS0uNS0uOS0uOS0uOXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGl2ZUhlbHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNmgtNC44M2wtLjU5LjU5TDEyIDIwLjE3bC0xLjU5LTEuNTktLjU4LS41OEg1VjRoMTR2MTR6bS04LTNoMnYyaC0yem0xLThjMS4xIDAgMiAuOSAyIDIgMCAyLTMgMS43NS0zIDVoMmMwLTIuMjUgMy0yLjUgMy01IDAtMi4yMS0xLjc5LTQtNC00UzggNi43OSA4IDloMmMwLTEuMS45LTIgMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYXRpb25PZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjMi43NiAwIDUgMi4yNCA1IDUgMCAxLjA2LS4zOSAyLjMyLTEgMy42MmwxLjQ5IDEuNDlDMTguMzcgMTIuMzYgMTkgMTAuNTcgMTkgOWMwLTMuODctMy4xMy03LTctNy0xLjg0IDAtMy41LjcxLTQuNzUgMS44NmwxLjQzIDEuNDNDOS41NiA0LjUgMTAuNzIgNCAxMiA0em0wIDIuNWMtLjU5IDAtMS4xMy4yMS0xLjU2LjU2bDMuNSAzLjVjLjM1LS40My41Ni0uOTcuNTYtMS41NkEyLjUgMi41IDAgMCAwIDEyIDYuNXpNMy40MSAyLjg2IDIgNC4yN2wzLjE4IDMuMThDNS4wNyA3Ljk1IDUgOC40NyA1IDljMCA1LjI1IDcgMTMgNyAxM3MxLjY3LTEuODUgMy4zOC00LjM1TDE4LjczIDIxbDEuNDEtMS40MUwzLjQxIDIuODZ6TTEyIDE4Ljg4Yy0yLjAxLTIuNTgtNC44LTYuNzQtNC45OC05LjU5bDYuOTIgNi45MmMtLjY1Ljk4LTEuMzMgMS44OS0xLjk0IDIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhdGlvbk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguMTMgMiA1IDUuMTMgNSA5YzAgNS4yNSA3IDEzIDcgMTNzNy03Ljc1IDctMTNjMC0zLjg3LTMuMTMtNy03LTd6TTcgOWMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMi44OC0yLjg4IDcuMTktNSA5Ljg4QzkuOTIgMTYuMjEgNyAxMS44NSA3IDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI5XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1haWxMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNCA4IDggNSA4LTV2MmgyVjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTJ2LTJINFY4em0xNi0yLTggNS04LTVoMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDE1di0xYzAtMS4xLS45LTItMi0ycy0yIC45LTIgMnYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF6bS0zIDB2LTFjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjFoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYWlsT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0wIDE0SDRWOGw4IDUgOC01djEwem0tOC03TDQgNmgxNmwtOCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya0NoYXRSZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThINmwtNCA0VjRjMC0xLjEuOS0yIDItMmgxNmMxLjEgMCAyIC45IDIgMnY3aC0yVjRINHYxMmg4djJ6bTExLTMuNjYtMS40MS0xLjQxLTQuMjQgNC4yNC0yLjEyLTIuMTItMS40MSAxLjQxTDE3LjM0IDIwIDIzIDE0LjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya0NoYXRVbnJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2Ljk4VjE2YzAgMS4xLS45IDItMiAySDZsLTQgNFY0YzAtMS4xLjktMiAyLTJoMTAuMWMtLjA2LjMyLS4xLjY2LS4xIDFzLjA0LjY4LjEgMUg0djEyaDE2VjcuOWMuNzQtLjE1IDEuNDItLjQ4IDItLjkyek0xNiAzYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTMtMS4zNC0zLTMtMy0zIDEuMzQtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya0VtYWlsUmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoOHYtMkg0VjhsOCA1IDgtNXY1aDJWNmMwLTEuMS0uOS0yLTItMnptLTggN0w0IDZoMTZsLTggNXptNS4zNCAxMS0zLjU0LTMuNTQgMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjRMMjMgMTYuMzQgMTcuMzQgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXJrRW1haWxVbnJlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA4Ljk4VjE4YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0ybC4wMS0xMmMwLTEuMS44OS0yIDEuOTktMmgxMC4xYy0uMDYuMzItLjEuNjYtLjEgMXMuMDQuNjguMSAxSDRsOCA1IDMuNjctMi4yOWMuNDcuNDMgMS4wMi43NiAxLjYzLjk4TDEyIDEzIDQgOHYxMGgxNlY5LjljLjc0LS4xNSAxLjQyLS40OCAyLS45MnpNMTYgNWMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hcmtVbnJlYWRDaGF0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTZINFY0aDEwLjFhNSA1IDAgMCAxIDAtMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNi45OGMtLjU4LjQ0LTEuMjYuNzctMiAuOTJWMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTlcIixcImN5XCI6XCIzXCIsXCJyXCI6XCIzXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTJoOHYySDZ6TTYgOWgxMnYySDZ6TTYgOGgxMnYtLjFBNS4wMTMgNS4wMTMgMCAwIDEgMTUuMDMgNkg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZXNzYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRoMTZ2MTJINS4xN0w0IDE3LjE3VjRtMC0yYy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJINHptMiAxMGgxMnYySDZ2LTJ6bTAtM2gxMnYySDZWOXptMC0zaDEydjJINlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9iaWxlU2NyZWVuU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMS45OS44NS0xLjk5IDEuOTV2MThDNS4wMSAyMi4wNSA1LjkgMjMgNyAyM2gxMGMxLjEgMCAyLS45NSAyLTIuMDV2LTE4QzE5IDEuODUgMTguMSAxIDE3IDF6bTAgMThIN1Y1aDEwdjE0em0tNC4yLTUuNzZ2MS43NUwxNiAxMmwtMy4yLTIuOTh2MS43Yy0zLjExLjQzLTQuMzUgMi41Ni00LjggNC43IDEuMTEtMS41IDIuNTgtMi4xOCA0LjgtMi4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vcmVUaW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOHY2bDQuNyAyLjkuOC0xLjItNC0yLjRWOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuOTIgMTJBNi45NTcgNi45NTcgMCAwIDEgMTEgMjBjLTMuOSAwLTctMy4xLTctN3MzLjEtNyA3LTdjLjcgMCAxLjM3LjEgMiAuMjlWNC4yM2MtLjY0LS4xNS0xLjMxLS4yMy0yLS4yMy01IDAtOSA0LTkgOXM0IDkgOSA5YTguOTYzIDguOTYzIDAgMCAwIDguOTQtMTBoLTIuMDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVWMmgtMnYzaC0zdjJoM3YzaDJWN2gzVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjgyIDEzSDExdi0ySDYuODJDNi40IDkuODQgNS4zIDkgNCA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzYzEuMyAwIDIuNC0uODQgMi44Mi0yek00IDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIzIDEyLTQtM3YyaC00LjA1Yy0uNS01LjA1LTQuNzYtOS05Ljk1LTl2MmM0LjQyIDAgOCAzLjU4IDggOHMtMy41OCA4LTggOHYyYzUuMTkgMCA5LjQ1LTMuOTUgOS45NS05SDE5djJsNC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9TaW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS4yNiAyMS4yMSAzLjc5IDMuNzQgMi4zOCA1LjE1bDIuNzQgMi43NC0uMTIuMTJWMTljMCAxLjEuOSAyIDIgMmgxMGMuMzUgMCAuNjgtLjEuOTctLjI2bDEuODggMS44OCAxLjQxLTEuNDF6TTcgMTlWOS43N0wxNi4yMyAxOUg3em0zLjg0LTE0SDE3djkuMTFsMiAyVjVjMC0xLjEtLjktMi0yLTJoLTYuOTlMNy45NSA1LjA2bDEuNDEgMS40MUwxMC44NCA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF1c2VQcmVzZW50YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuODUtMiAxLjk1djE0YzAgMS4xLjkgMi4wNSAyIDIuMDVoMThjMS4xIDAgMi0uOTUgMi0yLjA1di0xNEMyMyAzLjg1IDIyLjEgMyAyMSAzem0wIDE2SDNWNWgxOHYxNHpNOSA4aDJ2OEg5em00IDBoMnY4aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uQWRkRGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDZjMS4xIDAgMiAuOSAyIDJhMiAyIDAgMCAxLTEuNjcgMS45N2wtMi4zMS0yLjMxQzEzLjE5IDYuNzIgMTQuMDEgNiAxNSA2bTAtMmMtMi4yMSAwLTQgMS43OS00IDQgMCAuMTguMDMuMzUuMDUuNTJsMy40MyAzLjQzYy4xNy4wMi4zNC4wNS41Mi4wNSAyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNHptMS42OSAxMC4xNkwyMi41MyAyMEgyM3YtMmMwLTIuMTQtMy41Ni0zLjUtNi4zMS0zLjg0em0tMy42OCAxLjk3TDE0Ljg4IDE4SDljLjA4LS4yNC44OC0xLjAxIDIuOTEtMS41N2wxLjEtLjNNMS40MSAxLjcxIDAgMy4xMmw0IDRWMTBIMXYyaDN2M2gydi0zaDIuODhsMi41MSAyLjUxQzkuMTkgMTUuMTEgNyAxNi4zIDcgMTh2Mmg5Ljg4bDQgNCAxLjQxLTEuNDFMMS40MSAxLjcxek02IDEwdi0uODhsLjg4Ljg4SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25TZWFyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTQgMThjLjIyLS43MiAzLjMxLTIgNi0yIDAtLjcuMTMtMS4zNy4zNS0xLjk5QzcuNjIgMTMuOTEgMiAxNS4yNyAyIDE4djJoOS41NGMtLjUyLS41OC0uOTMtMS4yNS0xLjE5LTJINHpNMTkuNDMgMTguMDJjLjM2LS41OS41Ny0xLjI4LjU3LTIuMDIgMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDQgMS43OSA0IDQgNGMuNzQgMCAxLjQzLS4yMiAyLjAyLS41N0wyMC41OSAyMiAyMiAyMC41OWMtMS41LTEuNS0uNzktLjgtMi41Ny0yLjU3ek0xNiAxOGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzQgMTQuNTQtMS40My0xLjQzYy41Ni0uNzMgMS4wNS0xLjUgMS40Ny0yLjMybC0yLjItMi4yYy0uMjgtLjI4LS4zNi0uNjctLjI1LTEuMDIuMzctMS4xMi41Ny0yLjMyLjU3LTMuNTcgMC0uNTUuNDUtMSAxLTFIMjBjLjU1IDAgMSAuNDUgMSAxIDAgMy45OC0xLjM3IDcuNjQtMy42NiAxMC41NHptLTIuODIgMi44MUExNi44ODQgMTYuODg0IDAgMCAxIDQgMjFjLS41NSAwLTEtLjQ1LTEtMXYtMy40OWMwLS41NS40NS0xIDEtMSAxLjI0IDAgMi40NS0uMiAzLjU3LS41Ny4xLS4wNC4yMS0uMDUuMzEtLjA1LjI2IDAgLjUxLjEuNzEuMjlsMi4yIDIuMmMuODEtLjQyIDEuNTgtLjkgMi4zLTEuNDZMMS4zOSA0LjIybDEuNDItMS40MUwyMS4xOSAyMS4ybC0xLjQxIDEuNDEtNS4yNi01LjI2em0tNi45Mi0uMzNjLS44NS4yNC0xLjcyLjM5LTIuNi40NXYxLjQ5YzEuMzItLjA5IDIuNTktLjM1IDMuOC0uNzVsLTEuMi0xLjE5ek0xNy40NiA1Yy0uMDYuODktLjIxIDEuNzYtLjQ1IDIuNTlsMS4yIDEuMmMuNDEtMS4yLjY3LTIuNDcuNzYtMy43OWgtMS41MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lRW5hYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjQ2IDVjLS4wNi44OS0uMjEgMS43Ni0uNDUgMi41OWwxLjIgMS4yYy40MS0xLjIuNjctMi40Ny43Ni0zLjc5aC0xLjUxek03LjYgMTcuMDJjLS44NS4yNC0xLjcyLjM5LTIuNi40NXYxLjQ5YzEuMzItLjA5IDIuNTktLjM1IDMuOC0uNzVsLTEuMi0xLjE5ek0xNi41IDNIMjBjLjU1IDAgMSAuNDUgMSAxIDAgOS4zOS03LjYxIDE3LTE3IDE3LS41NSAwLTEtLjQ1LTEtMXYtMy40OWMwLS41NS40NS0xIDEtMSAxLjI0IDAgMi40NS0uMiAzLjU3LS41Ny4xLS4wNC4yMS0uMDUuMzEtLjA1LjI2IDAgLjUxLjEuNzEuMjlsMi4yIDIuMmMyLjgzLTEuNDUgNS4xNS0zLjc2IDYuNTktNi41OWwtMi4yLTIuMmMtLjI4LS4yOC0uMzYtLjY3LS4yNS0xLjAyLjM3LTEuMTIuNTctMi4zMi41Ny0zLjU3IDAtLjU1LjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTQgNWMuMDYuODkuMjEgMS43Ni40NSAyLjU5bC0xLjIgMS4yYy0uNDEtMS4yLS42Ny0yLjQ3LS43Ni0zLjc5aDEuNTFtOS44NiAxMi4wMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS40OWMtMS4zMi0uMDktMi41OS0uMzUtMy44LS43NWwxLjItMS4xOU03LjUgM0g0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMS0xLjI0IDAtMi40NS0uMi0zLjU3LS41N2EuODQuODQgMCAwIDAtLjMxLS4wNWMtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjE0OSAxNS4xNDkgMCAwIDEtNi41OS02LjU5bDIuMi0yLjJjLjI4LS4yOC4zNi0uNjcuMjUtMS4wMkExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZWxpbmtFcmFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgOC4yLTEtMS00IDQtNC00LTEgMSA0IDQtNCA0IDEgMSA0LTQgNCA0IDEtMS00LTQgNC00ek0xOSAxSDljLTEuMSAwLTIgLjktMiAydjNoMlY0aDEwdjE2SDl2LTJIN3YzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lbGlua0xvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDFIOWMtMS4xIDAtMiAuOS0yIDJ2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0tOC4yIDEwVjkuNUMxMC44IDguMSA5LjQgNyA4IDdTNS4yIDguMSA1LjIgOS41VjExYy0uNiAwLTEuMi42LTEuMiAxLjJ2My41YzAgLjcuNiAxLjMgMS4yIDEuM2g1LjVjLjcgMCAxLjMtLjYgMS4zLTEuMnYtMy41YzAtLjctLjYtMS4zLTEuMi0xLjN6bS0xLjMgMGgtM1Y5LjVjMC0uOC43LTEuMyAxLjUtMS4zczEuNS41IDEuNSAxLjNWMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZWxpbmtSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC4xIDcuNy0xIDFjMS44IDEuOCAxLjggNC42IDAgNi41bDEgMWMyLjUtMi4zIDIuNS02LjEgMC04LjV6TTE4IDkuOGwtMSAxYy41LjcuNSAxLjYgMCAyLjNsMSAxYzEuMi0xLjIgMS4yLTMgMC00LjN6TTE0IDFINGMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE5SDRWNGgxMHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lbGlua1NldHVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDN2M2gyVjRoMTB2MTZIOXYtMkg3djNjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0ySDljLTEuMSAwLTIgLjktMiAyem0yLjUgMTIuNWMuMjktLjEyLjU1LS4yOS44LS40OGwtLjAyLjAzIDEuMDEuMzljLjIzLjA5LjQ5IDAgLjYxLS4yMmwuODQtMS40NmMuMTItLjIxLjA3LS40OS0uMTItLjY0bC0uODUtLjY4LS4wMi4wM2MuMDItLjE2LjA1LS4zMi4wNS0uNDhzLS4wMy0uMzItLjA1LS40OGwuMDIuMDMuODUtLjY4Yy4xOS0uMTUuMjQtLjQzLjEyLS42NGwtLjg0LTEuNDZhLjQ5OS40OTkgMCAwIDAtLjYxLS4yMmwtMS4wMS4zOS4wMi4wM2MtLjI1LS4xNy0uNTEtLjM0LS44LS40NmwtLjE3LTEuMDhBLjQ4OC40ODggMCAwIDAgOC44NCA3SDcuMTZjLS4yNSAwLS40Ni4xOC0uNDkuNDJMNi41IDguNWMtLjI5LjEyLS41NS4yOS0uOC40OGwuMDItLjAzLTEuMDItLjM5Yy0uMjMtLjA5LS40OSAwLS42MS4yMmwtLjg0IDEuNDZjLS4xMi4yMS0uMDcuNDkuMTIuNjRsLjg1LjY4LjAyLS4wM2MtLjAyLjE1LS4wNS4zMS0uMDUuNDdzLjAzLjMyLjA1LjQ4bC0uMDItLjAzLS44NS42OGMtLjE5LjE1LS4yNC40My0uMTIuNjRsLjg0IDEuNDZjLjEyLjIxLjM4LjMxLjYxLjIybDEuMDEtLjM5LS4wMS0uMDRjLjI1LjE5LjUxLjM2LjguNDhsLjE3IDEuMDdjLjAzLjI1LjI0LjQzLjQ5LjQzaDEuNjhjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjE3LTEuMDh6TTYgMTJjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvcnRhYmxlV2lmaU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy40MiAyLjM2IDIuMDEgMy43OCA0LjEgNS44N0MyLjc5IDcuNTcgMiA5LjY5IDIgMTJjMCAzLjcgMi4wMSA2LjkyIDQuOTkgOC42NWwxLTEuNzNDNS42MSAxNy41MyA0IDE0Ljk2IDQgMTJjMC0xLjc2LjU3LTMuMzggMS41My00LjY5bDEuNDMgMS40NEM2LjM2IDkuNjggNiAxMC44IDYgMTJjMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTlsMS0xLjc0Yy0xLjE5LS43LTItMS45Ny0yLTMuNDUgMC0uNjUuMTctMS4yNS40NC0xLjc5bDEuNTggMS41OEwxMCAxMmMwIDEuMS45IDIgMiAybC4yMS0uMDIgNy41MiA3LjUyIDEuNDEtMS40MUwzLjQyIDIuMzZ6bTE0LjI5IDExLjQ2Yy4xOC0uNTcuMjktMS4xOS4yOS0xLjgyIDAtMy4zMS0yLjY5LTYtNi02LS42MyAwLTEuMjUuMTEtMS44Mi4yOWwxLjcyIDEuNzJjLjAzIDAgLjA2LS4wMS4xLS4wMSAyLjIxIDAgNCAxLjc5IDQgNCAwIC4wNC0uMDEuMDctLjAxLjExbDEuNzIgMS43MXpNMTIgNGM0LjQyIDAgOCAzLjU4IDggOCAwIDEuMi0uMjkgMi4zMi0uNzcgMy4zNWwxLjQ5IDEuNDlBOS44MiA5LjgyIDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTEuNzYgMC0zLjQuNDgtNC44NCAxLjI4bDEuNDggMS40OEM5LjY2IDQuMjggMTAuOCA0IDEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmVzZW50VG9BbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxNGMwIDEuMTEuODkgMiAyIDJoMThjMS4xMSAwIDItLjg5IDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bTAgMTYuMDJIM1Y0Ljk4aDE4djE0LjA0ek0xMCAxMkg4bDQtNCA0IDRoLTJ2NGgtNHYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaW50RGlzYWJsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjQxIDEuNiAwIDMuMDEgNSA4Yy0xLjY2IDAtMyAxLjM0LTMgM3Y2aDR2NGgxMmwyLjk1IDIuOTYgMS40MS0xLjQxTDEuNDEgMS42ek02IDE1SDR2LTRjMC0uNTUuNDUtMSAxLTFoMmwzIDNINnYyem0yIDR2LTRoNGw0IDRIOHpNOCA1aDh2M2gtNS4zNGwyIDJIMTljLjU1IDAgMSAuNDUgMSAxdjRsLTIgLjAxVjEzaC0yLjM0bDQgNEgyMnYtNmMwLTEuNjYtMS4zNC0zLTMtM2gtMVYzSDZ2LjM2bDIgMlY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiMTEuNTFcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVFyQ29kZTIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMWgtMnYtMmgydjJ6bS0yLTdoLTJ2NWgydi01em04LTJoLTJ2NGgydi00em0tMi0yaC0ydjJoMnYtMnpNNyAxMkg1djJoMnYtMnptLTItMkgzdjJoMnYtMnptNy01aDJWM2gtMnYyem0tNy41LS41djNoM3YtM2gtM3pNOSA5SDNWM2g2djZ6bS00LjUgNy41djNoM3YtM2gtM3pNOSAyMUgzdi02aDZ2NnptNy41LTE2LjV2M2gzdi0zaC0zek0yMSA5aC02VjNoNnY2em0tMiAxMHYtM2gtNHYyaDJ2M2g0di0yaC0yem0tMi03aC00djJoNHYtMnptLTQtMkg3djJoMnYyaDJ2LTJoMnYtMnptMS0xVjdoLTJWNWgtMnY0aDR6TTYuNzUgNS4yNWgtMS41djEuNWgxLjV2LTEuNXptMCAxMmgtMS41djEuNWgxLjV2LTEuNXptMTItMTJoLTEuNXYxLjVoMS41di0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVRckNvZGVTY2FubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDYuNXYzaC0zdi0zaDNNMTEgNUg1djZoNlY1em0tMS41IDkuNXYzaC0zdi0zaDNNMTEgMTNINXY2aDZ2LTZ6bTYuNS02LjV2M2gtM3YtM2gzTTE5IDVoLTZ2Nmg2VjV6bS02IDhoMS41djEuNUgxM1YxM3ptMS41IDEuNUgxNlYxNmgtMS41di0xLjV6TTE2IDEzaDEuNXYxLjVIMTZWMTN6bS0zIDNoMS41djEuNUgxM1YxNnptMS41IDEuNUgxNlYxOWgtMS41di0xLjV6TTE2IDE2aDEuNXYxLjVIMTZWMTZ6bTEuNS0xLjVIMTlWMTZoLTEuNXYtMS41em0wIDNIMTlWMTloLTEuNXYtMS41ek0yMiA3aC0yVjRoLTNWMmg1djV6bTAgMTV2LTVoLTJ2M2gtM3YyaDV6TTIgMjJoNXYtMkg0di0zSDJ2NXpNMiAydjVoMlY0aDNWMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXJDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMWg4VjNIM3Y4em0yLTZoNHY0SDVWNXpNMyAyMWg4di04SDN2OHptMi02aDR2NEg1di00ek0xMyAzdjhoOFYzaC04em02IDZoLTRWNWg0djR6TTE5IDE5aDJ2MmgtMnpNMTMgMTNoMnYyaC0yek0xNSAxNWgydjJoLTJ6TTEzIDE3aDJ2MmgtMnpNMTUgMTloMnYyaC0yek0xNyAxN2gydjJoLTJ6TTE3IDEzaDJ2MmgtMnpNMTkgMTVoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVhZE1vcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3aDl2MmgtOXpNMTMgMTVoOXYyaC05ek0xNiAxMWg2djJoLTZ6TTEzIDEyIDggN3Y0SDJ2Mmg2djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSaW5nVm9sdW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMy43MSAxNi42N0ExNi45NzEgMTYuOTcxIDAgMCAwIDEyIDEyQzcuNDYgMTIgMy4zNCAxMy43OC4yOSAxNi42N2MtLjE4LjE4LS4yOS40My0uMjkuNzEgMCAuMjguMTEuNTMuMjkuNzFsMi40OCAyLjQ4Yy4xOC4xOC40My4yOS43MS4yOS4yNyAwIC41Mi0uMTEuNy0uMjguNzktLjc0IDEuNjktMS4zNiAyLjY2LTEuODUuMzMtLjE2LjU2LS41LjU2LS45di0zLjFjMS40NS0uNDggMy0uNzMgNC42LS43MyAxLjYgMCAzLjE1LjI1IDQuNi43MnYzLjFjMCAuMzkuMjMuNzQuNTYuOS45OC40OSAxLjg3IDEuMTIgMi42NiAxLjg1LjE4LjE4LjQzLjI4LjcuMjguMjggMCAuNTMtLjExLjcxLS4yOWwyLjQ4LTIuNDhjLjE4LS4xOC4yOS0uNDMuMjktLjcxYS45OS45OSAwIDAgMC0uMjktLjd6bS0xOC4zMS41NmMtLjY2LjM3LTEuMjkuOC0xLjg3IDEuMjdsLTEuMDctMS4wN2MuOTEtLjc1IDEuOS0xLjM5IDIuOTUtMS45djEuN3ptMTUuMDcgMS4yNmMtLjU5LS40OC0xLjIxLS45LTEuODctMS4yN3YtMS43YzEuMDQuNTEgMi4wMyAxLjE1IDIuOTQgMS45bC0xLjA3IDEuMDd6bS42OS0xMi4yMy0xLjQxLTEuNDEtMy41NiAzLjU1IDEuNDEgMS40MXMzLjQ1LTMuNTIgMy41Ni0zLjU1ek0xMSAyaDJ2NWgtMnpNNi40IDkuODEgNy44MSA4LjQgNC4yNiA0Ljg0IDIuODQgNi4yNmMuMTEuMDMgMy41NiAzLjU1IDMuNTYgMy41NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJzc0ZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi4xOFwiLFwiY3lcIjpcIjE3LjgyXCIsXCJyXCI6XCIyLjE4XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNC40NHYyLjgzYzcuMDMgMCAxMi43MyA1LjcgMTIuNzMgMTIuNzNoMi44M2MwLTguNTktNi45Ny0xNS41Ni0xNS41Ni0xNS41NnptMCA1LjY2djIuODNjMy45IDAgNy4wNyAzLjE3IDcuMDcgNy4wN2gyLjgzYzAtNS40Ny00LjQzLTkuOS05LjktOS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUnR0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS4wMyAzLTEuMTEgNy4wN2gyLjYybC43LTQuNWgyLjU4TDExLjggMTguNDNIOS40N0w5LjA2IDIxaDcuMjdsLjQtMi41N2gtMi4zNWwyLTEyLjg2aDIuNThsLS43MSA0LjVoMi42NUwyMiAzSDkuMDN6TTggNUg0bC0uMzEgMmg0TDggNXptLS42MSA0aC00bC0uMzEgMmg0bC4zMS0yem0uOTIgOGgtNkwyIDE5aDZsLjMxLTJ6bS42Mi00aC02bC0uMzEgMmg2LjAxbC4zLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5TaGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNmEyIDIgMCAwIDAtMi0ySDRjLTEuMTEgMC0yIC44OS0yIDJ2MTBhMiAyIDAgMCAwIDIgMkgwdjJoMjR2LTJoLTR6TTQgMTZWNmgxNnYxMC4wMUw0IDE2em05LTYuODdjLTMuODkuNTQtNS40NCAzLjItNiA1Ljg3IDEuMzktMS44NyAzLjIyLTIuNzIgNi0yLjcydjIuMTlsNC0zLjc0TDEzIDd2Mi4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbmRUaW1lRXh0ZW5zaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNnY2LjI2bDIgMVY2YzAtMS4xLS45LTItMi0yaC00YTIuNSAyLjUgMCAwIDAtNSAwSDUuMDFjLTEuMSAwLTIgLjktMiAydjMuOEM1LjcgOS44IDYgMTEuOTYgNiAxMi41cy0uMjkgMi43LTMgMi43VjE5YzAgMS4xLjkgMiAyIDJoMy44YzAtMi4xNiAxLjM3LTIuNzggMi4yLTIuOTR2LTIuMDNjLTEuNDMuMTctMy4xNSAxLjA0LTMuODcgMi45N0g1di0yLjEzYzIuMTctLjggMy0yLjg3IDMtNC4zNyAwLTEuNDktLjgzLTMuNTYtMi45OS00LjM3VjZIMTFWNGMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXYyaDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDEydjRsNCAxLTQgMXY0bDEwLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnRTYXRpc2ZpZWRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjLTEuNDggMC0yLjc1LS44MS0zLjQ1LTJINi44OGE1LjQ5NSA1LjQ5NSAwIDAgMCAxMC4yNCAwaC0xLjY3Yy0uNjkgMS4xOS0xLjk3IDItMy40NSAyem0tLjAxLTE0QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRoMTZjMS4xIDAgMiAuOSAyIDJ2MTJjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yem0wIDJ2MTJoMTZWNkg0em03IDNoMnY2aC0yVjl6bTMgMGg0Yy41NSAwIDEgLjQ1IDEgMXYyYzAgLjU1LS40NSAxLTEgMWgtMi41djJIMTRWOXptMy41IDEuNWgtMnYxaDJ2LTF6bS0xMSAuNzVIOWMuNTUgMCAxIC40NSAxIDFWMTRjMCAuNTUtLjQ1IDEtMSAxSDV2LTEuNWgzLjV2LS43NUg2Yy0uNTUgMC0xLS40NS0xLTFWMTBjMC0uNTUuNDUtMSAxLTFoNHYxLjVINi41di43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwZWFrZXJQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA3LjA3IDguNDMgOC41Yy45MS0uOTEgMi4xOC0xLjQ4IDMuNTctMS40OHMyLjY2LjU3IDMuNTcgMS40OEwxNyA3LjA3QzE1LjcyIDUuNzkgMTMuOTUgNSAxMiA1cy0zLjcyLjc5LTUgMi4wN3pNMTIgMUM4Ljk4IDEgNi4yNCAyLjIzIDQuMjUgNC4yMWwxLjQxIDEuNDFDNy4yOCA0IDkuNTMgMyAxMiAzczQuNzIgMSA2LjM0IDIuNjJsMS40MS0xLjQxQTEwLjk2MyAxMC45NjMgMCAwIDAgMTIgMXptMi44NiA5LjAxTDkuMTQgMTBDOC41MSAxMCA4IDEwLjUxIDggMTEuMTR2OS43MWMwIC42My41MSAxLjE0IDEuMTQgMS4xNGg1LjcxYy42MyAwIDEuMTQtLjUxIDEuMTQtMS4xNHYtOS43MWMuMDEtLjYzLS41LTEuMTMtMS4xMy0xLjEzek0xNSAyMEg5di04aDZ2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgN2MwLTIuMjEtMS43OS00LTQtNFM4IDQuNzkgOCA3czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTQgMmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bS01IDRjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0xMC02Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXlDdXJyZW50TGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xLjAxIDcgMSAxN2MwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJIM2MtMS4xIDAtMS45OS45LTEuOTkgMnpNMTkgN3YxMEg1VjdoMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGF5Q3VycmVudFBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMS45OS45LTEuOTkgMnYxOGMwIDEuMS44OSAyIDEuOTkgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGF5UHJpbWFyeUxhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4wMSA3IDEgMTdjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTEuOTkuOS0xLjk5IDJ6TTE5IDd2MTBINVY3aDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RheVByaW1hcnlQb3J0cmFpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2MThjMCAxLjEuODkgMiAxLjk5IDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RvcFNjcmVlblNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNzkgMTggMiAySDI0di0yaC0yLjIxek0xLjExIDIuOThsMS41NSAxLjU2Yy0uNDEuMzctLjY2Ljg5LS42NiAxLjQ4VjE2YzAgMS4xLjkgMiAyLjAxIDJIMHYyaDE4LjEzbDIuNzEgMi43MSAxLjQxLTEuNDFMMi41MiAxLjU3IDEuMTEgMi45OHpNNCA2LjAyaC4xM2w0Ljk1IDQuOTNDNy45NCAxMi4wNyA3LjMxIDEzLjUyIDcgMTVjLjk2LTEuMjkgMi4xMy0yLjA4IDMuNjctMi40NmwzLjQ2IDMuNDhINHYtMTB6bTE2IDB2MTAuMTlsMS4zIDEuM2MuNDItLjM3LjctLjg5LjctMS40OXYtMTBhMiAyIDAgMCAwLTItMkg3LjhsMiAySDIwem0tNy4wNyAzLjEzIDIuNzkgMi43OCAxLjI4LTEuMkwxMyA3djIuMTNsLS4wNy4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3YXBDYWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTggNC00IDRoM3Y3YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY4YzAtMi4yMS0xLjc5LTQtNC00UzUgNS43OSA1IDh2N0gybDQgNCA0LTRIN1Y4YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2N2MwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00VjhoM2wtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dHNtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxOGw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg2bC0yIDJWNGgxNnYxMnpNNyA5aDJ2Mkg3em00IDBoMnYyaC0yem00IDBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5zdWJzY3JpYmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk5IDE0LjA0VjVjMC0xLjEtLjktMi0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMC4wNWMuMjggMS45MiAyLjEgMy4zNSA0LjE4IDIuOTMgMS4zNC0uMjcgMi40My0xLjM3IDIuNy0yLjcxLjI1LTEuMjQtLjE2LTIuMzktLjk0LTMuMTh6bS0yLTkuMDRMMTIgOC41IDUgNWgxMy45OXptLTMuNjQgMTBINVY3bDcgMy41TDE5IDd2Ni4wNWMtLjE2LS4wMi0uMzMtLjA1LS41LS4wNS0xLjM5IDAtMi41OS44Mi0zLjE1IDJ6bTUuMTUgMmgtNHYtMWg0djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWb2ljZW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgNkMxNS40NiA2IDEzIDguNDYgMTMgMTEuNWMwIDEuMzMuNDcgMi41NSAxLjI2IDMuNUg5Ljc0Yy43OS0uOTUgMS4yNi0yLjE3IDEuMjYtMy41QzExIDguNDYgOC41NCA2IDUuNSA2UzAgOC40NiAwIDExLjUgMi40NiAxNyA1LjUgMTdoMTNjMy4wNCAwIDUuNS0yLjQ2IDUuNS01LjVTMjEuNTQgNiAxOC41IDZ6bS0xMyA5QzMuNTcgMTUgMiAxMy40MyAyIDExLjVTMy41NyA4IDUuNSA4IDkgOS41NyA5IDExLjUgNy40MyAxNSA1LjUgMTV6bTEzIDBjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41UzE2LjU3IDggMTguNSA4IDIyIDkuNTcgMjIgMTEuNSAyMC40MyAxNSAxOC41IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVnBuS2V5T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmwyLjU5IDIuNTlBNi4wMTIgNi4wMTIgMCAwIDAgMSAxMmMwIDMuMzEgMi42OSA2IDYgNiAyLjIyIDAgNC4xNS0xLjIxIDUuMTktM2w3LjU5IDcuNjEgMS40MS0xLjQxTDIuODEgMi44MXpNNyAxNmMtMi4yMSAwLTQtMS43OS00LTQgMC0xLjY3IDEuMDItMy4xIDIuNDctMy43bDEuNzEgMS43MUM3LjEyIDEwIDcuMDYgMTAgNyAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTJjMC0uMDYgMC0uMTItLjAxLS4xOGwxLjc0IDEuNzRDMTAuMjIgMTQuNDggOS4xNCAxNiA3IDE2em0xMC0xLjgzVjEzaC0xLjE3TDE3IDE0LjE3ek0xMy44MyAxMUgyMXYyaC0ydjNsMiAydi0zaDJWOUgxMS44M2wyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWcG5LZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE5aC02di00aC0yLjY4Yy0xLjE0IDIuNDItMy42IDQtNi4zMiA0LTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTdjMi43MiAwIDUuMTcgMS41OCA2LjMyIDRIMjR2NmgtMnY0em0tNC0yaDJ2LTRoMnYtMkgxMS45NGwtLjIzLS42N0MxMS4wMSA4LjM0IDkuMTEgNyA3IDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDVjMi4xMSAwIDQuMDEtMS4zNCA0LjcxLTMuMzNsLjIzLS42N0gxOHY0ek03IDE1Yy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3ptMC00Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpQ2FsbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjUxYy0xLjI0IDAtMi40NS0uMi0zLjU3LS41N2EuODQuODQgMCAwIDAtLjMxLS4wNWMtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjE0OSAxNS4xNDkgMCAwIDEtNi41OS02LjU5bDIuMi0yLjJjLjI4LS4yOC4zNi0uNjcuMjUtMS4wMkExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy40OWMwLS41NS0uNDUtMS0xLTF6TTUuMDMgNWgxLjVhMTMgMTMgMCAwIDAgLjQ2IDIuNTlsLTEuMiAxLjJjLS40MS0xLjItLjY3LTIuNDctLjc2LTMuNzl6TTE5IDE4Ljk3Yy0xLjMyLS4wOS0yLjU5LS4zNS0zLjgtLjc1bDEuMTktMS4xOWMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS40OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNC45NUMyMS43OSA0Ljc4IDE5LjY3IDMgMTYuNSAzYy0zLjE4IDAtNS4yOSAxLjc4LTUuNSAxLjk1TDE2LjUgMTIgMjIgNC45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHptLTgtMmgydi00aDR2LTJoLTRWN2gtMnY0SDd2Mmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQ2lyY2xlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem01IDExaC00djRoLTJ2LTRIN3YtMmg0VjdoMnY0aDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZExpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDExaDh2Mkg4di0yem0xMi4xIDFIMjJjMC0yLjc2LTIuMjQtNS01LTVoLTR2MS45aDRjMS43MSAwIDMuMSAxLjM5IDMuMSAzLjF6TTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTE5IDEyaC0ydjNoLTN2MmgzdjNoMnYtM2gzdi0yaC0zdi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxM2gtNnY2aC0ydi02SDV2LTJoNlY1aDJ2Nmg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbXBTdG9yaWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOWgxMFY0SDd2MTV6TTkgNmg2djExSDlWNnpNMyA2aDJ2MTFIM3pNMTkgNmgydjExaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJjaGl2ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuNTQgNS4yMy0xLjM5LTEuNjhDMTguODggMy4yMSAxOC40NyAzIDE4IDNINmMtLjQ3IDAtLjg4LjIxLTEuMTYuNTVMMy40NiA1LjIzQzMuMTcgNS41NyAzIDYuMDIgMyA2LjVWMTljMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY2LjVjMC0uNDgtLjE3LS45My0uNDYtMS4yN3pNNi4yNCA1aDExLjUybC44MS45N0g1LjQ0bC44LS45N3pNNSAxOVY4aDE0djExSDV6bTguNDUtOWgtMi45djNIOGw0IDQgNC00aC0yLjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0cmlidXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDguNWMtLjkxIDAtMi43NS40Ni0yLjc1IDEuMzh2NC42MmgxLjVWMTloMi41di00LjVoMS41VjkuODhjMC0uOTEtMS44NC0xLjM4LTIuNzUtMS4zOHpNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAzSDdjLS42OSAwLTEuMjMuMzUtMS41OS44OEwwIDEybDUuNDEgOC4xMWMuMzYuNTMuOS44OSAxLjU5Ljg5aDE1YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINy4wN0wyLjQgMTJsNC42Ni03SDIydjE0em0tMTEuNTktMkwxNCAxMy40MSAxNy41OSAxNyAxOSAxNS41OSAxNS40MSAxMiAxOSA4LjQxIDE3LjU5IDcgMTQgMTAuNTkgMTAuNDEgNyA5IDguNDEgMTIuNTkgMTIgOSAxNS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhbGxvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgNy41aDV2MmgtNXptMCA3aDV2MmgtNXpNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0ek0xMSA2SDZ2NWg1VjZ6bS0xIDRIN1Y3aDN2M3ptMSAzSDZ2NWg1di01em0tMSA0SDd2LTNoM3YzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmlvdGVjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTljLTEuMSAwLTIgLjktMiAyaDE0YzAtMS4xLS45LTItMi0yaC00di0yaDNjMS4xIDAgMi0uOSAyLTJoLThjLTEuNjYgMC0zLTEuMzQtMy0zYTMgMyAwIDAgMSAxLjQ3LTIuNTdjLjQxLjU5IDEuMDYgMSAxLjgzIDEuMDYuNy4wNiAxLjM2LS4xOSAxLjg1LS42MmwuNTkgMS42MS45NC0uMzQuMzQuOTQgMS44OC0uNjgtLjM0LS45NC45NC0uMzQtMi43NC03LjUyLS45NC4zNC0uMzQtLjk0LTEuODguNjguMzQuOTQtLjk0LjM1LjU2IDEuNTVjLTEuMTctLjA0LTIuMTkuNzUtMi40OCAxLjg2QTUuMDEgNS4wMSAwIDAgMCA1IDEyYzAgMi43NiAyLjI0IDUgNSA1djJIN3ptNS44Ni0xNC40OCAxLjcxIDQuNy0uOTQuMzQtMS43MS00LjcuOTQtLjM0ek0xMC41IDdjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtNC40MiAzLjU4LTggOC04IDEuODUgMCAzLjU1LjYzIDQuOSAxLjY5TDUuNjkgMTYuOUE3LjkwMiA3LjkwMiAwIDAgMSA0IDEyem04IDhjLTEuODUgMC0zLjU1LS42My00LjktMS42OUwxOC4zMSA3LjFBNy45MDIgNy45MDIgMCAwIDEgMjAgMTJjMCA0LjQyLTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjFoLTFsMS03SDcuNWMtLjg4IDAtLjMzLS43NS0uMzEtLjc4QzguNDggMTAuOTQgMTAuNDIgNy41NCAxMy4wMSAzaDFsLTEgN2gzLjUxYy40IDAgLjYyLjE5LjQuNjZDMTIuOTcgMTcuNTUgMTEgMjEgMTEgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWxjdWxhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjUgNy43Mmg1djEuNWgtNXpNMTMgMTUuNzVoNXYxLjVoLTV6TTEzIDEzLjI1aDV2MS41aC01ek04IDE4aDEuNXYtMmgydi0xLjVoLTJ2LTJIOHYySDZWMTZoMnpNMTQuMDkgMTAuOTVsMS40MS0xLjQxIDEuNDEgMS40MSAxLjA2LTEuMDYtMS40MS0xLjQyIDEuNDEtMS40MUwxNi45MSA2IDE1LjUgNy40MSAxNC4wOSA2bC0xLjA2IDEuMDYgMS40MSAxLjQxLTEuNDEgMS40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYW5nZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em00LjE3LTUuMjQtMS4xLTEuMWMuNzEtMS4zMy41My0zLjAxLS41OS00LjEzQTMuNDgyIDMuNDgyIDAgMCAwIDEyIDguNWMtLjAzIDAtLjA2LjAxLS4wOS4wMUwxMyA5LjZsLTEuMDYgMS4wNi0yLjgzLTIuODNMMTEuOTQgNSAxMyA2LjA2bC0uOTYuOTZjMS4yNy4wMSAyLjUzLjQ4IDMuNSAxLjQ0IDEuNyAxLjcxIDEuOTEgNC4zNi42MyA2LjN6bS0xLjI4IDEuNDFMMTIuMDYgMTkgMTEgMTcuOTRsLjk1LS45NWE0Ljk3IDQuOTcgMCAwIDEtMy40OC0xLjQ2IDUuMDA2IDUuMDA2IDAgMCAxLS42NC02LjI5bDEuMSAxLjFjLS43MSAxLjMzLS41MyAzLjAxLjU5IDQuMTMuNy43IDEuNjMgMS4wNCAyLjU2IDEuMDFMMTEgMTQuNGwxLjA2LTEuMDYgMi44MyAyLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDYuNDEgMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMiAxOSA2LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudENvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDFINGMtMS4xIDAtMiAuOS0yIDJ2MTRoMlYzaDEyVjF6bTMgNEg4Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDExYzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTZIOFY3aDExdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudEN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42NCA3LjY0Yy4yMy0uNS4zNi0xLjA1LjM2LTEuNjQgMC0yLjIxLTEuNzktNC00LTRTMiAzLjc5IDIgNnMxLjc5IDQgNCA0Yy41OSAwIDEuMTQtLjEzIDEuNjQtLjM2TDEwIDEybC0yLjM2IDIuMzZDNy4xNCAxNC4xMyA2LjU5IDE0IDYgMTRjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNGMwLS41OS0uMTMtMS4xNC0uMzYtMS42NEwxMiAxNGw3IDdoM3YtMUw5LjY0IDcuNjR6TTYgOGMtMS4xIDAtMi0uODktMi0ycy45LTIgMi0yIDIgLjg5IDIgMi0uOSAyLTIgMnptMCAxMmMtMS4xIDAtMi0uODktMi0ycy45LTIgMi0yIDIgLjg5IDIgMi0uOSAyLTIgMnptNi03LjVjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNS41LjIyLjUuNS0uMjIuNS0uNS41ek0xOSAzbC02IDYgMiAyIDctN1YzaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudFBhc3RlR28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDVoMnYzaDEwVjVoMnY2aDJWNWMwLTEuMS0uOS0yLTItMmgtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFzLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1di0ySDVWNXptNy0yYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjAxIDEzLTEuNDIgMS40MSAxLjU4IDEuNThIMTJ2Mmg2LjE3bC0xLjU4IDEuNTkgMS40MiAxLjQxIDMuOTktNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRlbnRQYXN0ZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjIgMyA1LjgzVjE5YzAgMS4xLjkgMiAyIDJoMTMuMTdsMS42MSAxLjYxIDEuNDEtMS40MnpNNSAxOVY3LjgzTDE2LjE3IDE5SDV6TTE3IDhWNWgydjExLjE3bDIgMlY1YzAtMS4xLS45LTItMi0yaC00LjE4QzE0LjQgMS44NCAxMy4zIDEgMTIgMXMtMi40Ljg0LTIuODIgMkg1LjgzbDUgNUgxN3ptLTUtNWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29udGVudFBhc3RlU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA1aDJ2M2gxMFY1aDJ2NWgyVjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNXYtMkg1VjV6bTctMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4zIDE4LjljLjQtLjcuNy0xLjUuNy0yLjQgMC0yLjUtMi00LjUtNC41LTQuNVMxMiAxNCAxMiAxNi41czIgNC41IDQuNSA0LjVjLjkgMCAxLjctLjMgMi40LS43bDIuNyAyLjcgMS40LTEuNC0yLjctMi43em0tMy44LjFjLTEuNCAwLTIuNS0xLjEtMi41LTIuNXMxLjEtMi41IDIuNS0yLjUgMi41IDEuMSAyLjUgMi41LTEuMSAyLjUtMi41IDIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRlbnRQYXN0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMmgtNC4xOEMxNC40Ljg0IDEzLjMgMCAxMiAwUzkuNi44NCA5LjE4IDJINWMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTcgMThINVY0aDJ2M2gxMFY0aDJ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb3B5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMkg5Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDljMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg5VjRoOXYxMnpNMyAxNXYtMmgydjJIM3ptMC01LjVoMnYySDN2LTJ6TTEwIDIwaDJ2MmgtMnYtMnptLTctMS41di0yaDJ2Mkgzek01IDIyYy0xLjEgMC0yLS45LTItMmgydjJ6bTMuNSAwaC0ydi0yaDJ2MnptNSAwdi0yaDJjMCAxLjEtLjkgMi0yIDJ6TTUgNnYySDNjMC0xLjEuOS0yIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyZWF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NUwzIDE3LjI1ek01LjkyIDE5SDV2LS45Mmw5LjA2LTkuMDYuOTIuOTJMNS45MiAxOXpNMjAuNzEgNS42M2wtMi4zNC0yLjM0Yy0uMi0uMi0uNDUtLjI5LS43MS0uMjlzLS41MS4xLS43LjI5bC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZWxldGVTd2VlcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTZoNHYyaC00em0wLThoN3YyaC03em0wIDRoNnYyaC02ek0zIDE4YzAgMS4xLjkgMiAyIDJoNmMxLjEgMCAyLS45IDItMlY4SDN2MTB6bTItOGg2djhINXYtOHptNS02SDZMNSA1SDJ2MmgxMlY1aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVzZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEzaDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6bTYtMThoLTJ2MmgyVjN6bTYgMHYyaDJjMC0xLjEtLjktMi0yLTJ6TTUgMjF2LTJIM2MwIDEuMS45IDIgMiAyem0tMi00aDJ2LTJIM3Yyem04IDRoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wLTRoMlY3aC0ydjJ6bS00LTRoMlYzaC0ydjJ6TTcuODMgNSA3IDQuMTdWM2gydjJINy44M3ptMTIgMTItLjgzLS44M1YxNWgydjJoLTEuMTd6bTEuMzYgNC4xOUwyLjgxIDIuODEgMS4zOSA0LjIyIDQuMTcgN0gzdjJoMlY3LjgzbDIgMlYxN2g3LjE3bDIgMkgxNXYyaDJ2LTEuMTdsMi43OCAyLjc4IDEuNDEtMS40MnpNOSAxNXYtMy4xN0wxMi4xNyAxNUg5em02LTIuODNWOWgtMy4xN2wtMi0ySDE3djcuMTdsLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURyYWZ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTkgOGMwLS43Mi0uMzctMS4zNS0uOTQtMS43TDEyIDEgMi45NSA2LjNDMi4zOCA2LjY1IDIgNy4yOCAyIDh2MTBjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMmwtLjAxLTEwem0tMiAwdi4wMUwxMiAxMyA0IDhsOC00LjY4TDE5Ljk5IDh6TTQgMTh2LTcuNjZsOCA1LjAyIDcuOTktNC45OUwyMCAxOEg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHluYW1pY0ZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDhINnY3YzAgMS4xLjkgMiAyIDJoOXYtMkg4Vjh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNoLThjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOGgtOFY3aDh2NHpNNCAxMkgydjdjMCAxLjEuOSAyIDIgMmg5di0ySDR2LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMUg0Yy0xLjEgMC0yIC45LTIgMnYxNGgyVjNoMTJWMXptLTEgNEg4Yy0xLjEgMC0xLjk5LjktMS45OSAyTDYgMjFjMCAxLjEuODkgMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWMTFsLTYtNnpNOCAyMVY3aDZ2NWg1djlIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckxpc3RPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC44MyA4SDIxVjZIOC44M2wyIDJ6bTUgNUgxOHYtMmgtNC4xN2wyIDJ6TTE0IDE2LjgzVjE4aC00di0yaDMuMTdsLTMtM0g2di0yaDIuMTdsLTMtM0gzVjZoLjE3TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQxIDEuNDFMMTQgMTYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxOGg0di0yaC00djJ6TTMgNnYyaDE4VjZIM3ptMyA3aDEydi0ySDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsYWdDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgOS0xLTJIOHYxMWgxLjV2LTVIMTJsMSAyaDVWOWgtM3ptMS41IDQuNWgtMi41N2wtMS0ySDkuNXYtM2gzLjU3bDEgMmgyLjQzdjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi4zNiA2IC40IDJIMTh2NmgtMy4zNmwtLjQtMkg3VjZoNS4zNk0xNCA0SDV2MTdoMnYtN2g1LjZsLjQgMmg3VjZoLTUuNkwxNCA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9udERvd25sb2FkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC44MyAySDIwYzEuMSAwIDIgLjkgMiAydjE1LjE3bC0yLTJWNEg2LjgzbC0yLTJ6bTYuMDkgNC0uNTcgMS41MiAxLjM2IDEuMzYuMjMtLjY2aC4xbC41NCAxLjUyIDMuMDQgMy4wNEwxMy4wNyA2aC0yLjE1em05LjU3IDE3LjMxTDE5LjE3IDIySDRjLTEuMSAwLTItLjktMi0yVjQuODNMLjY5IDMuNTEgMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek0xNy4xNyAyMGwtNS4wNy01LjA3SDkuNThMOC40OSAxOEg2LjQxbDIuMzktNi4zN0w0IDYuODNWMjBoMTMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb250RG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMTcgMTUuNWg1LjY0bDEuMTQgM2gyLjA5bC01LjExLTEzaC0xLjg2bC01LjExIDEzaDIuMDlsMS4xMi0zek0xMiA3Ljk4bDIuMDcgNS41Mkg5LjkzTDEyIDcuOTh6TTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDRWNGgxNnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDguODMgMTcuMTcgMTIgMTQgMTUuMTdWMTRINnYtNGg4VjguODNNMTIgNHY0SDR2OGg4djRsOC04LTgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdlc3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNTkgNi44OWMuNy0uNzEgMS40LTEuMzUgMS43MS0xLjIyLjUuMiAwIDEuMDMtLjMgMS41Mi0uMjUuNDItMi44NiAzLjg5LTIuODYgNi4zMSAwIDEuMjguNDggMi4zNCAxLjM0IDIuOTguNzUuNTYgMS43NC43MyAyLjY0LjQ2IDEuMDctLjMxIDEuOTUtMS40IDMuMDYtMi43NyAxLjIxLTEuNDkgMi44My0zLjQ0IDQuMDgtMy40NCAxLjYzIDAgMS42NSAxLjAxIDEuNzYgMS43OS0zLjc4LjY0LTUuMzggMy42Ny01LjM4IDUuMzcgMCAxLjcgMS40NCAzLjA5IDMuMjEgMy4wOSAxLjYzIDAgNC4yOS0xLjMzIDQuNjktNi4xSDIxdi0yLjVoLTIuNDdjLS4xNS0xLjY1LTEuMDktNC4yLTQuMDMtNC4yLTIuMjUgMC00LjE4IDEuOTEtNC45NCAyLjg0LS41OC43My0yLjA2IDIuNDgtMi4yOSAyLjcyLS4yNS4zLS42OC44NC0xLjExLjg0LS40NSAwLS43Mi0uODMtLjM2LTEuOTIuMzUtMS4wOSAxLjQtMi44NiAxLjg1LTMuNTIuNzgtMS4xNCAxLjMtMS45MiAxLjMtMy4yOEM4Ljk1IDMuNjkgNy4zMSAzIDYuNDQgMyA1LjEyIDMgMy45NyA0IDMuNzIgNC4yNWMtLjM2LjM2LS42Ni42Ni0uODguOTNsMS43NSAxLjcxem05LjI5IDExLjY2Yy0uMzEgMC0uNzQtLjI2LS43NC0uNzIgMC0uNi43My0yLjIgMi44Ny0yLjc2LS4zIDIuNjktMS40MyAzLjQ4LTIuMTMgMy40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvd1RvUmVnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTUgMThjLjItLjYzIDIuNTctMS42OCA0Ljk2LTEuOTRsMi4wNC0yYTkuMzQgOS4zNCAwIDAgMC0xLS4wNmMtMi42NyAwLTggMS4zNC04IDR2Mmg5bC0yLTJINXptMTUuNi01LjUtNS4xMyA1LjE3LTIuMDctMi4wOEwxMiAxN2wzLjQ3IDMuNUwyMiAxMy45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvd1RvVm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNoLS42OGwtMiAyaDEuOTFMMTkgMTdINWwxLjc4LTJoMi4wNWwtMi0ySDZsLTMgM3Y0YzAgMS4xLjg5IDIgMS45OSAySDE5YTIgMiAwIDAgMCAyLTJ2LTRsLTMtM3ptMSA3SDV2LTFoMTR2MXptLTcuNjYtNC45OGMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsNi4zNi02LjM2YS45OTYuOTk2IDAgMCAwIDAtMS40MUwxNC4xNiAyLjNhLjk3NS45NzUgMCAwIDAtMS40LS4wMUw2LjM5IDguNjZhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDQuOTUgNC45NXptMi4xMi0xMC42MUwxNyA3Ljk1bC00Ljk1IDQuOTUtMy41NC0zLjU0IDQuOTUtNC45NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1di0zaDMuNTZjLjY5IDEuMTkgMS45NyAyIDMuNDUgMnMyLjc1LS44MSAzLjQ1LTJIMTl2M3ptMC01aC00Ljk5YzAgMS4xLS45IDItMiAycy0yLS45LTItMkg1VjVoMTR2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2lnaHRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOGMtMS40NSAwLTIuMjYgMS40NC0xLjkzIDIuNTFsLTMuNTUgMy41NmMtLjMtLjA5LS43NC0uMDktMS4wNCAwbC0yLjU1LTIuNTVDMTIuMjcgMTAuNDUgMTEuNDYgOSAxMCA5Yy0xLjQ1IDAtMi4yNyAxLjQ0LTEuOTMgMi41MmwtNC41NiA0LjU1QzIuNDQgMTUuNzQgMSAxNi41NSAxIDE4YzAgMS4xLjkgMiAyIDIgMS40NSAwIDIuMjYtMS40NCAxLjkzLTIuNTFsNC41NS00LjU2Yy4zLjA5Ljc0LjA5IDEuMDQgMGwyLjU1IDIuNTVDMTIuNzMgMTYuNTUgMTMuNTQgMTggMTUgMThjMS40NSAwIDIuMjctMS40NCAxLjkzLTIuNTJsMy41Ni0zLjU1YzEuMDcuMzMgMi41MS0uNDggMi41MS0xLjkzIDAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSA5IC45NC0yLjA3TDE4IDZsLTIuMDYtLjkzTDE1IDNsLS45MiAyLjA3TDEyIDZsMi4wOC45M3pNMy41IDExIDQgOWwyLS41TDQgOGwtLjUtMkwzIDhsLTIgLjVMMyA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW52ZW50b3J5MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMSAwLTIgLjktMiAydjMuMDFjMCAuNzIuNDMgMS4zNCAxIDEuNjlWMjBjMCAxLjEgMS4xIDIgMiAyaDE0Yy45IDAgMi0uOSAyLTJWOC43Yy41Ny0uMzUgMS0uOTcgMS0xLjY5VjRjMC0xLjEtMS0yLTItMnptLTEgMThINVY5aDE0djExem0xLTEzSDRWNGgxNnYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDEyaDZ2Mkg5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW52ZW50b3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA1aDJ2M2gxMFY1aDJ2NWgyVjVjMC0xLjEtLjktMi0yLTJoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoNnYtMkg1VjV6bTctMmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMS41IDE1LjUxIDE3bC0zLjAxLTMtMS41IDEuNSA0LjUxIDQuNSA2Ljk5LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaW5rT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4zOSAxMSAxNiAxMi42MVYxMXpNMTcgN2gtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMSAwIDEuMjctLjc3IDIuMzctMS44NyAyLjg0bDEuNCAxLjRBNC45ODYgNC45ODYgMCAwIDAgMjIgMTJjMC0yLjc2LTIuMjQtNS01LTV6TTIgNC4yN2wzLjExIDMuMTFBNC45OTEgNC45OTEgMCAwIDAgMiAxMmMwIDIuNzYgMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjEgMC0xLjU5IDEuMjEtMi45IDIuNzYtMy4wN0w4LjczIDExSDh2MmgyLjczTDEzIDE1LjI3VjE3aDEuNzNsNC4wMSA0LjAxIDEuNDEtMS40MUwzLjQxIDIuODYgMiA0LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgN2gtNHYyaDRjMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDNoLTR2Mmg0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01em0tNiA4SDdjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTNoNFY3SDdjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDVoNHYtMnptLTMtNGg4djJIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvd1ByaW9yaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA1aDh2MmgtOFY1em0wIDUuNWg4djJoLTh2LTJ6bTAgNS41aDh2MmgtOHYtMnpNMiAxMS41QzIgMTUuMDggNC45MiAxOCA4LjUgMThIOXYybDMtMy0zLTN2MmgtLjVDNi4wMiAxNiA0IDEzLjk4IDQgMTEuNVM2LjAyIDcgOC41IDdIMTJWNUg4LjVDNC45MiA1IDIgNy45MiAyIDExLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNnptLTIgMC04IDQuOTlMNCA2aDE2em0wIDEySDRWOGw4IDUgOC01djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFya3VucmVhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZ6bS0yIDAtOCA1LTgtNWgxNnptMCAxMkg0VjhsOCA1IDgtNXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdmVUb0luYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5aC0yLjU1VjZoLTIuOXYzSDhsNCA0em0zLTZINC45OUMzLjg4IDMgMyAzLjkgMyA1djE0YzAgMS4xLjg4IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINXYtM2gzLjU2Yy42OSAxLjE5IDEuOTcgMiAzLjQ1IDJzMi43NS0uODEgMy40NS0ySDE5djN6bTAtNWgtNC45OWMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJINWwtLjAxLTlIMTl2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5leHRXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMSAxOC41IDQtNC00LTQtMSAxIDMgMy0zIDN6TTIwIDdoLTRWNWMwLS41NS0uMjItMS4wNS0uNTktMS40MUMxNS4wNSAzLjIyIDE0LjU1IDMgMTQgM2gtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMWMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6bTEwIDE1SDRWOWgxNnYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dGxpbmVkRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi0xLTJINXYxN2gydi03aDVsMSAyaDdWNmgtNnptNCA4aC00bC0xLTJIN1Y2aDVsMSAyaDV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvbGljeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00em03IDEwYzAgMS44NS0uNTEgMy42NS0xLjM4IDUuMjFsLTEuNDUtMS40NWE0Ljk5NCA0Ljk5NCAwIDAgMC0uNjQtNi4yOSA1LjAwMyA1LjAwMyAwIDAgMC03LjA3IDAgNS4wMDMgNS4wMDMgMCAwIDAgMCA3LjA3IDUuMDA2IDUuMDA2IDAgMCAwIDYuMjkuNjRsMS43MiAxLjcyYy0xLjE5IDEuNDItMi43MyAyLjUxLTQuNDcgMy4wNC00LjAyLTEuMjUtNy01LjQyLTctOS45NFY2LjNsNy0zLjExIDcgMy4xMVYxMXptLTcgNGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQdXNoUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNHY1YzAgMS4xMi4zNyAyLjE2IDEgM0g5Yy42NS0uODYgMS0xLjkgMS0zVjRoNG0zLTJIN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMWgxdjVjMCAxLjY2LTEuMzQgMy0zIDN2Mmg1Ljk3djdsMSAxIDEtMXYtN0gxOXYtMmMtMS42NiAwLTMtMS4zNC0zLTNWNGgxYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVkbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmE4LjAwMiA4LjAwMiAwIDAgMSA3LjYtNS41YzEuOTUgMCAzLjczLjcyIDUuMTIgMS44OEwxMyAxNmg5VjdsLTMuNiAzLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVDaXJjbGVPdXRsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDExdjJoMTB2LTJIN3ptNS05QzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlbW92ZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNSAxMUg3di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEzSDV2LTJoMTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlcGx5QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDhWNWwtNyA3IDcgN3YtM2wtNC00IDQtNHptNiAxVjVsLTcgNyA3IDd2LTQuMWM1IDAgOC41IDEuNiAxMSA1LjEtMS01LTQtMTAtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOVY1bC03IDcgNyA3di00LjFjNSAwIDguNSAxLjYgMTEgNS4xLTEtNS00LTEwLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwb3J0R21haWxlcnJvcnJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNzMgM0g4LjI3TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NkwyMSAxNS43M1Y4LjI3TDE1LjczIDN6TTE5IDE0LjkgMTQuOSAxOUg5LjFMNSAxNC45VjkuMUw5LjEgNWg1LjhMMTkgOS4xdjUuOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDdoMnY3aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwb3J0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjEgNWg1LjhMMTkgOS4xdjUuOGwtLjIyLjIyIDEuNDIgMS40MS44LS44VjguMjdMMTUuNzMgM0g4LjI3bC0uOC44IDEuNDEgMS40MnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDkuMzNWN2gtMnYuMzN6TTIuNDEgMS41OCAxIDIuOTlsMy42NCAzLjY0TDMgOC4yN3Y3LjQ2TDguMjcgMjFoNy40NmwxLjY0LTEuNjRMMjEuMDEgMjNsMS40MS0xLjQxTDIuNDEgMS41OHpNMTQuOSAxOUg5LjFMNSAxNC45VjkuMWwxLjA1LTEuMDUgOS45IDkuOUwxNC45IDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTkgMTQuOSAxNC45IDE5SDkuMUw1IDE0LjlWOS4xTDkuMSA1aDUuOEwxOSA5LjF2NS44elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgN2gydjdoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXZlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMnY3SDV2LTdIM3Y3YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ6bS02IC42NyAyLjU5LTIuNThMMTcgMTEuNWwtNSA1LTUtNSAxLjQxLTEuNDFMMTEgMTIuNjdWM2gydjkuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYXZlQXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMi40VjdsLTQtNEg1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmg3LjRsMi0ySDVWNWgxMS4xN0wxOSA3LjgzdjYuNTdsMi0yek0xNSAxNWMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6TTYgNmg5djRINlY2em0xMy45OSAxMC4yNSAxLjc3IDEuNzdMMTYuNzcgMjNIMTV2LTEuNzdsNC45OS00Ljk4em0zLjI2LjI2LS44NS44NS0xLjc3LTEuNzcuODUtLjg1Yy4yLS4yLjUxLS4yLjcxIDBsMS4wNiAxLjA2Yy4yLjIuMi41MiAwIC43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2wtNC00em0yIDE2SDVWNWgxMS4xN0wxOSA3LjgzVjE5em0tNy03Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pNNiA2aDl2NEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VsZWN0QWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVoMlYzYy0xLjEgMC0yIC45LTIgMnptMCA4aDJ2LTJIM3Yyem00IDhoMnYtMkg3djJ6TTMgOWgyVjdIM3Yyem0xMC02aC0ydjJoMlYzem02IDB2MmgyYzAtMS4xLS45LTItMi0yek01IDIxdi0ySDNjMCAxLjEuOSAyIDIgMnptLTItNGgydi0ySDN2MnpNOSAzSDd2MmgyVjN6bTIgMThoMnYtMmgtMnYyem04LThoMnYtMmgtMnYyem0wIDhjMS4xIDAgMi0uOSAyLTJoLTJ2MnptMC0xMmgyVjdoLTJ2MnptMCA4aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6TTcgMTdoMTBWN0g3djEwem0yLThoNnY2SDlWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQuMDEgNi4wMyA3LjUxIDMuMjItNy41Mi0xIC4wMS0yLjIybTcuNSA4LjcyTDQgMTcuOTd2LTIuMjJsNy41MS0xTTIuMDEgMyAyIDEwbDE1IDItMTUgMiAuMDEgN0wyMyAxMiAyLjAxIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M3YtNC43bDYtMi4yNSA2IDIuMjV2NC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU29ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOGg2di0ySDN2MnpNMyA2djJoMThWNkgzem0wIDdoMTJ2LTJIM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3F1YXJlRm9vdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjY2IDE3LjY2LTEuMDYgMS4wNi0uNzEtLjcxIDEuMDYtMS4wNi0xLjk0LTEuOTQtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDZMOS43IDkuN2wtMS4wNiAxLjA2LS43MS0uNzEgMS4wNi0xLjA2LTEuOTQtMS45NC0xLjA2IDEuMDYtLjcxLS43MSAxLjA2LTEuMDZMNCA0djE0YzAgMS4xLjkgMiAyIDJoMTRsLTIuMzQtMi4zNHpNNyAxN3YtNS43NkwxMi43NiAxN0g3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhY2tlZEJhckNoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA5aDR2MTFINHpNNCA0aDR2NEg0ek0xMCA3aDR2NGgtNHpNMTYgMTBoNHY0aC00ek0xNiAxNWg0djVoLTR6TTEwIDEyaDR2OGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0cmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMjBcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjRcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMjBcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuOTQzIDguNjE5IDQuNDA0LTQuMzkyIDEuNDEzIDEuNDE2LTQuNDA1IDQuMzkyek04LjMyIDkuNjhsLjMxLjMyIDEuNDItMS40MS00LjAyLTQuMDRoLS4wMWwtLjMxLS4zMi0xLjQyIDEuNDEgNC4wMiA0LjA1ek0xNS40MSAxMy45NCAxNCAxNS4zNWwzLjk5IDQuMDEuMzUuMzUgMS40Mi0xLjQxLTMuOTktNC4wMXpNOC41OSAxMy45NWwtNC4wMyA0LjAxLS4zMi4zMyAxLjQxIDEuNDEgNC4wMy00LjAyLjMzLS4zMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEwVjhoLTRWNGgtMnY0aC00VjRIOHY0SDR2Mmg0djRINHYyaDR2NGgydi00aDR2NGgydi00aDR2LTJoLTR2LTRoNHptLTYgNGgtNHYtNGg0djR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0Rm9ybWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE3djJoMTR2LTJINXptNC41LTQuMmg1bC45IDIuMmgyLjFMMTIuNzUgNGgtMS41TDYuNSAxNWgyLjFsLjktMi4yek0xMiA1Ljk4IDEzLjg3IDExaC0zLjc0TDEyIDUuOTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVbmFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjU0IDUuMjMtMS4zOS0xLjY4QzE4Ljg4IDMuMjEgMTguNDcgMyAxOCAzSDZjLS40NyAwLS44OC4yMS0xLjE2LjU1TDMuNDYgNS4yM0MzLjE3IDUuNTcgMyA2LjAyIDMgNi41VjE5YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNi41YzAtLjQ4LS4xNy0uOTMtLjQ2LTEuMjd6TTYuMjQgNWgxMS41MmwuODMgMUg1LjQybC44Mi0xek01IDE5VjhoMTR2MTFINXptMy01aDIuNTV2M2gyLjl2LTNIMTZsLTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVVuZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXBjb21pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy42IDEwLjgxIDE2LjE5IDkuNGwzLjU2LTMuNTUgMS40MSAxLjQxYy0uMTEuMDMtMy41NiAzLjU1LTMuNTYgMy41NXpNMTMgM2gtMnY1aDJWM3ptLTYuNiA3LjgxTDcuODEgOS40IDQuMjYgNS44NCAyLjg0IDcuMjZjLjExLjAzIDMuNTYgMy41NSAzLjU2IDMuNTV6TTIwIDE0aC0zLjQyYy0uNzcgMS43Ni0yLjU0IDMtNC41OCAzcy0zLjgxLTEuMjQtNC41OC0zSDR2NWgxNnYtNW0wLTJjMS4xIDAgMiAuOSAyIDJ2NWMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMnYtNWMwLTEuMS45LTIgMi0yaDVjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F2ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDE2Ljk5Yy0xLjM1IDAtMi4yLjQyLTIuOTUuOC0uNjUuMzMtMS4xOC42LTIuMDUuNi0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQyLTIuOTUuOGMtLjY1LjMzLTEuMTcuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MiAyLjk1LS44LjY1LS4zMyAxLjE3LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQyIDIuOTUtLjhjLjY1LS4zMyAxLjE4LS42IDIuMDUtLjYuOSAwIDEuNC4yNSAyLjA1LjYuNzUuMzggMS41OC44IDIuOTUuOHYtMS45NWMtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjYtLjgtMi45NS0uOHptMC00LjQ1Yy0xLjM1IDAtMi4yLjQzLTIuOTUuOC0uNjUuMzItMS4xOC42LTIuMDUuNi0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQzLTIuOTUuOGMtLjY1LjMyLTEuMTcuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MyAyLjk1LS44LjY1LS4zNSAxLjE1LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQzIDIuOTUtLjhjLjY1LS4zNSAxLjE1LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41OC44IDIuOTUuOHYtMS45NWMtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zOC0xLjYtLjgtMi45NS0uOHptMi45NS04LjA4Yy0uNzUtLjM4LTEuNTgtLjgtMi45NS0uOHMtMi4yLjQyLTIuOTUuOGMtLjY1LjMyLTEuMTguNi0yLjA1LjYtLjkgMC0xLjQtLjI1LTIuMDUtLjYtLjc1LS4zNy0xLjU3LS44LTIuOTUtLjhzLTIuMi40Mi0yLjk1LjhjLS42NS4zMy0xLjE3LjYtMi4wNS42djEuOTNjMS4zNSAwIDIuMi0uNDMgMi45NS0uOC42NS0uMzMgMS4xNy0uNiAyLjA1LS42czEuNC4yNSAyLjA1LjZjLjc1LjM4IDEuNTcuOCAyLjk1LjhzMi4yLS40MyAyLjk1LS44Yy42NS0uMzIgMS4xOC0uNiAyLjA1LS42LjkgMCAxLjQuMjUgMi4wNS42Ljc1LjM4IDEuNTguOCAyLjk1LjhWNS4wNGMtLjkgMC0xLjQtLjI1LTIuMDUtLjU4ek0xNyA4LjA5Yy0xLjM1IDAtMi4yLjQzLTIuOTUuOC0uNjUuMzUtMS4xNS42LTIuMDUuNnMtMS40LS4yNS0yLjA1LS42Yy0uNzUtLjM4LTEuNTctLjgtMi45NS0uOHMtMi4yLjQzLTIuOTUuOGMtLjY1LjM1LTEuMTUuNi0yLjA1LjZ2MS45NWMxLjM1IDAgMi4yLS40MyAyLjk1LS44LjY1LS4zMiAxLjE4LS42IDIuMDUtLjZzMS40LjI1IDIuMDUuNmMuNzUuMzggMS41Ny44IDIuOTUuOHMyLjItLjQzIDIuOTUtLjhjLjY1LS4zMiAxLjE4LS42IDIuMDUtLjYuOSAwIDEuNC4yNSAyLjA1LjYuNzUuMzggMS41OC44IDIuOTUuOFY5LjQ5Yy0uOSAwLTEuNC0uMjUtMi4wNS0uNi0uNzUtLjM4LTEuNi0uOC0yLjk1LS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2ViU3RvcmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDR2MTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNMTMgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDljMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg0VjRoOXYxNnpNMjEgNnYxMmMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTljMC0uODMtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2Vla2VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgOVY3YzAtMS42NS0xLjM1LTMtMy0zSDZDNC4zNSA0IDMgNS4zNSAzIDd2MmMtMS42NSAwLTMgMS4zNS0zIDN2NWMwIDEuNjUgMS4zNSAzIDMgM2gxOGMxLjY1IDAgMy0xLjM1IDMtM3YtNWMwLTEuNjUtMS4zNS0zLTMtM3pNNSA3YzAtLjU1LjQ1LTEgMS0xaDEyYy41NSAwIDEgLjQ1IDEgMXYyLjc4Yy0uNjEuNTUtMSAxLjM0LTEgMi4yMnYySDZ2LTJjMC0uODgtLjM5LTEuNjctMS0yLjIyVjd6bTE3IDEwYzAgLjU1LS40NSAxLTEgMUgzYy0uNTUgMC0xLS40NS0xLTF2LTVjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjRoMTZ2LTRjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaGVyZVRvVm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMUM3LjU5IDEgNCA0LjU5IDQgOWMwIDUuNTcgNi45NiAxMy4zNCA3LjI2IDEzLjY3bC43NC44Mi43NC0uODJDMTMuMDQgMjIuMzQgMjAgMTQuNTcgMjAgOWMwLTQuNDEtMy41OS04LTgtOHptMCAxOS40N0M5LjgyIDE3Ljg2IDYgMTIuNTQgNiA5YzAtMy4zMSAyLjY5LTYgNi02czYgMi42OSA2IDZjMCAzLjgzLTQuMjUgOS4zNi02IDExLjQ3em0tMS41My05LjNMOC43MSA5LjRsLTEuNDIgMS40MkwxMC40NyAxNGw2LjAxLTYuMDEtMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMXhNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDdoNHYxMEg2VjlINFY3em0xMS44MyA0LjcyTDE4LjY2IDdoLTIuMzNsLTEuNjYgMi43N0wxMyA3aC0yLjMzbDIuODMgNC43MkwxMC4zMyAxN2gyLjMzbDItMy4zNCAyIDMuMzRIMTlsLTMuMTctNS4yOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTMwRnBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDV2M2g2djIuNUgzdjNoNVYxNkgydjNoNmMxLjY2IDAgMy0xLjM0IDMtM3YtMS45QTIuMSAyLjEgMCAwIDAgOC45IDEyIDIuMSAyLjEgMCAwIDAgMTEgOS45VjhjMC0xLjY2LTEuMzQtMy0zLTNIMnptMTcgM3Y4aC00VjhoNG0wLTNoLTRjLTEuNjYgMC0zIDEuMzQtMyAzdjhjMCAxLjY2IDEuMzQgMyAzIDNoNGMxLjY2IDAgMy0xLjM0IDMtM1Y4YzAtMS42Ni0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lM2dNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDd2Mmg1djJINHYyaDR2MkgzdjJoNWMxLjEgMCAyLS45IDItMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY5YzAtMS4xLS45LTItMi0ySDN6bTE4IDR2NGMwIDEuMS0uOSAyLTIgMmgtNWMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDVjMS4xIDAgMiAuOSAyIDJoLTd2Nmg1di0yaC0yLjV2LTJIMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU0Z01vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgN0g3djVINVY3SDN2N2g0djNoMnYtM2gydi0ySDlWN3ptOCA0djJoMnYyaC01VjloN2MwLTEuMS0uOS0yLTItMmgtNWMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDVjMS4xIDAgMi0uOSAyLTJ2LTRoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU0Z1BsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMXYyaDJ2MmgtNFY5aDZjMC0xLjEtLjktMi0yLTJoLTRjLTEuMSAwLTIgLjktMiAydjZjMCAxLjEuOSAyIDIgMmg0YzEuMSAwIDItLjkgMi0ydi00aC00em0xMSAwaC0yVjloLTJ2MmgtMnYyaDJ2Mmgydi0yaDJ2LTJ6TTcgN0g1djVIM1Y3SDF2N2g0djNoMnYtM2gxdi0ySDdWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTYwRnBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4djhoLTRWOGg0bTAtM2gtNGMtMS42NiAwLTMgMS4zNC0zIDN2OGMwIDEuNjYgMS4zNCAzIDMgM2g0YzEuNjYgMCAzLTEuMzQgMy0zVjhjMC0xLjY2LTEuMzQtMy0zLTN6bS05IDNWNUg1QzMuMzQgNSAyIDYuMzQgMiA4djhjMCAxLjY2IDEuMzQgMyAzIDNoM2MxLjY2IDAgMy0xLjM0IDMtM3YtM2MwLTEuNjYtMS4zNC0zLTMtM0g1VjhoNXptLTIgNXYzSDV2LTNoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY2Vzc0FsYXJtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMiA1LjcyLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTEyLjUgOEgxMXY2bDQuNzUgMi44NS43NS0xLjIzLTQtMi4zN1Y4ek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFjY2Vzc0FsYXJtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNS43LTQuNi0zLjktMS4zIDEuNSA0LjYgMy45TDIyIDUuN3pNNy45IDMuNCA2LjYgMS45IDIgNS43bDEuMyAxLjUgNC42LTMuOHpNMTIuNSA4SDExdjZsNC43IDIuOS44LTEuMi00LTIuNFY4ek0xMiA0Yy01IDAtOSA0LTkgOXM0IDkgOSA5IDktNCA5LTktNC05LTktOXptMCAxNmMtMy45IDAtNy0zLjEtNy03czMuMS03IDctNyA3IDMuMSA3IDctMy4xIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjZXNzVGltZUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptMy4zIDE0LjcxTDExIDEyLjQxVjdoMnY0LjU5bDMuNzEgMy43MS0xLjQyIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY2Nlc3NUaW1lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bS41LTEzSDExdjZsNS4yNSAzLjE1Ljc1LTEuMjMtNC41LTIuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZFVuaXRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6TTcgNFYzaDEwdjFIN3ptMCAxNFY2aDEwdjEySDd6bTAgM3YtMWgxMHYxSDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDdIOHYyaDhWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEFsYXJtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03Ljg4IDMuMzkgNi42IDEuODYgMiA1LjcxbDEuMjkgMS41MyA0LjU5LTMuODV6TTIyIDUuNzJsLTQuNi0zLjg2LTEuMjkgMS41MyA0LjYgMy44NkwyMiA1Ljcyek0xMiA0Yy00Ljk3IDAtOSA0LjAzLTkgOXM0LjAyIDkgOSA5YTkgOSAwIDAgMCAwLTE4em0wIDE2Yy0zLjg3IDAtNy0zLjEzLTctN3MzLjEzLTcgNy03IDcgMy4xMyA3IDctMy4xMyA3LTcgN3ptMS0xMWgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zVjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRUb0hvbWVTY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEuMDEgOCAxYy0xLjEgMC0yIC45LTIgMnYzaDJWNWgxMHYxNEg4di0xSDZ2M2MwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTEwIDE1aDJWOEg1djJoMy41OUwzIDE1LjU5IDQuNDEgMTcgMTAgMTEuNDFWMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTdjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTNoMmMwIC41NS40NSAxIDEgMXMxLS40NSAxLTEtLjQ1LTEtMS0xSDJ2LTJoOS41YzEuNjUgMCAzIDEuMzUgMyAzek0xOSA2LjVDMTkgNC41NyAxNy40MyAzIDE1LjUgM1MxMiA0LjU3IDEyIDYuNWgyYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzE2LjMzIDggMTUuNSA4SDJ2MmgxMy41YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41em0tLjUgNC41SDJ2MmgxNi41Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjV2MmMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMyMC40MyAxMSAxOC41IDExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlycGxhbmVUaWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjE5IDRINGMtMS4xIDAtMS45OS45LTEuOTkgMnY0YzEuMSAwIDEuOTkuOSAxLjk5IDJzLS44OSAyLTIgMnY0YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uODEtMi0xLjgxLTJ6TTIwIDE4SDR2LTIuNTRjMS4xOS0uNjkgMi0xLjk5IDItMy40NiAwLTEuNDgtLjgtMi43Ny0xLjk5LTMuNDZMNCA2aDE2djEyek04Ljg3IDE1LjY2bC0xLjY2LTIuODguOTMtLjI1IDEuMjYuOTkgMi4zOS0uNjQtMi40LTQuMTYgMS40LS4zOCA0LjAxIDMuNzQgMi40NC0uNjVhLjk2Ny45NjcgMCAwIDEgMS4xOC42OC45ODguOTg4IDAgMCAxLS42OSAxLjE5bC04Ljg2IDIuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJwbGFuZW1vZGVBY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0ybC04LjUtNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNVY5TDIgMTR2Mmw4LjUtMi41VjE5TDggMjAuNVYyMmw0LTEgNCAxdi0xLjVMMTMuNSAxOXYtNS41TDIyIDE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlycGxhbmVtb2RlSW5hY3RpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjUgNy42N1YzLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVWOWw4LjUgNXYybC00LjQ5LTEuMzItNy4wMS03LjAxem05LjI4IDE0Ljk0IDEuNDEtMS40MS03LjY5LTcuNy0zLjk0LTMuOTQtNi43NS02Ljc1LTEuNDIgMS40MSA2LjM4IDYuMzhMMiAxNHYybDguNS0yLjVWMTlMOCAyMC41VjIybDQtMSA0IDF2LTEuNUwxMy41IDE5di0yLjY3bDYuMjggNi4yOHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFvZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxem0tOSA2aDh2MS41SDhWMTB6bTEgM2g2djEuNUg5VjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2MTRoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2MTJoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTJCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2MTBoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2OGg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5NEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDV2MTZjMCAuNTUtLjQ1IDEtMSAxSDhjLS41NSAwLTEtLjQ1LTEtMVY1YzAtLjU1LjQ1LTEgMS0xaDJWMmg0djJoMmMuNTUgMCAxIC40NSAxIDF6bS0yIDFIOXY2aDZWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnk1QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNXYxNmMwIC41NS0uNDUgMS0xIDFIOGMtLjU1IDAtMS0uNDUtMS0xVjVjMC0uNTUuNDUtMSAxLTFoMlYyaDR2MmgyYy41NSAwIDEgLjQ1IDEgMXptLTIgMUg5djRoNlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeTZCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djE2YzAgLjU1LS40NSAxLTEgMUg4Yy0uNTUgMC0xLS40NS0xLTFWNWMwLS41NS40NS0xIDEtMWgyVjJoNHYyaDJjLjU1IDAgMSAuNDUgMSAxem0tMiAxSDl2Mmg2VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5QWxlcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjE1LjMzQzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0ek0xMyAxOGgtMnYtMmgydjJ6bTAtNGgtMlY5aDJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnlDaGFyZ2luZ0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjY3IDRIMTRWMmgtNHYySDguMzNDNy42IDQgNyA0LjYgNyA1LjMzdjE1LjMzQzcgMjEuNCA3LjYgMjIgOC4zMyAyMmg3LjMzYy43NCAwIDEuMzQtLjYgMS4zNC0xLjMzVjUuMzNDMTcgNC42IDE2LjQgNCAxNS42NyA0ek0xMSAyMHYtNS41SDlMMTMgN3Y1LjVoMkwxMSAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnlGdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42NyA0SDE0VjJoLTR2Mkg4LjMzQzcuNiA0IDcgNC42IDcgNS4zM3YxNS4zM0M3IDIxLjQgNy42IDIyIDguMzMgMjJoNy4zM2MuNzQgMCAxLjM0LS42IDEuMzQtMS4zM1Y1LjMzQzE3IDQuNiAxNi40IDQgMTUuNjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdHRlcnlTYXZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGgtMlYyaC00djJIOGMtLjU1IDAtMSAuNDUtMSAxdjE2YzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xVjVjMC0uNTUtLjQ1LTEtMS0xem0tMSAxMGgtMnYyaC0ydi0ySDl2LTJoMnYtMmgydjJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmF0dGVyeVN0ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYXR0ZXJ5VW5rbm93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNjcgNEgxNFYyaC00djJIOC4zM0M3LjYgNCA3IDQuNiA3IDUuMzN2MTUuMzNDNyAyMS40IDcuNiAyMiA4LjMzIDIyaDcuMzNjLjc0IDAgMS4zNC0uNiAxLjM0LTEuMzNWNS4zM0MxNyA0LjYgMTYuNCA0IDE1LjY3IDR6TTEzIDE4aC0ydi0yaDJ2MnptMS4zLTUuMzFzLS4zOC40Mi0uNjcuNzFjLS40OC40OC0uODMgMS4xNS0uODMgMS42aC0xLjZjMC0uODMuNDYtMS41Mi45My0ybC45My0uOTRBMS40OTggMS40OTggMCAwIDAgMTIgOS41Yy0uODMgMC0xLjUuNjctMS41IDEuNUg5YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDNjMCAuNjYtLjI3IDEuMjYtLjcgMS42OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsb29kdHlwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNmg2djJIOXpNMTMgOWgtMnYySDl2MmgydjJoMnYtMmgydi0yaC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy01LjMzIDQuNTUtOCA4LjQ4LTggMTEuOCAwIDQuOTggMy44IDguMiA4IDguMnM4LTMuMjIgOC04LjJjMC0zLjMyLTIuNjctNy4yNS04LTExLjh6bTAgMThjLTMuMzUgMC02LTIuNTctNi02LjIgMC0yLjM0IDEuOTUtNS40NCA2LTkuMTQgNC4wNSAzLjcgNiA2Ljc5IDYgOS4xNCAwIDMuNjMtMi42NSA2LjItNiA2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbHVldG9vdGhDb25uZWN0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcgMTItMi0yLTIgMiAyIDIgMi0yem0xMC43MS00LjI5TDEyIDJoLTF2Ny41OUw2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMSAxNC40MVYyMmgxbDUuNzEtNS43MS00LjMtNC4yOSA0LjMtNC4yOXpNMTMgNS44M2wxLjg4IDEuODhMMTMgOS41OVY1Ljgzem0xLjg4IDEwLjQ2TDEzIDE4LjE3di0zLjc2bDEuODggMS44OHpNMTkgMTBsLTIgMiAyIDIgMi0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aERpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMyA1LjgzIDEuODggMS44OC0xLjYgMS42IDEuNDEgMS40MSAzLjAyLTMuMDJMMTIgMmgtMXY1LjAzbDIgMnYtMy4yek01LjQxIDQgNCA1LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMSAxNC40MVYyMmgxbDQuMjktNC4yOSAyLjMgMi4yOUwyMCAxOC41OSA1LjQxIDR6TTEzIDE4LjE3di0zLjc2bDEuODggMS44OEwxMyAxOC4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aERyaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTdINHYtNWgxMXYtMkg0LjgxbDEuMDQtM0gxNVY1SDUuNWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMiAxMnY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThoLTJ2NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMy44NSAxOS4xNSAxaC0uNXYzLjc5bC0yLjMtMi4yOS0uNy43TDE4LjQ0IDZsLTIuNzkgMi43OS43LjcxIDIuMy0yLjNWMTFoLjVMMjIgOC4xNCAxOS44NSA2IDIyIDMuODV6bS0yLjM1LS45NC45NC45NC0uOTQuOTRWMi45MXptLjk0IDUuMjMtLjk0Ljk0VjcuMmwuOTQuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbHVldG9vdGhTZWFyY2hpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjI0IDEyLjAxIDIuMzIgMi4zMmMuMjgtLjcyLjQ0LTEuNTEuNDQtMi4zM3MtLjE2LTEuNTktLjQzLTIuMzFsLTIuMzMgMi4zMnptNS4yOS01LjMtMS4yNiAxLjI2Yy42MyAxLjIxLjk4IDIuNTcuOTggNC4wMnMtLjM2IDIuODItLjk4IDQuMDJsMS4yIDEuMmE5LjkzNiA5LjkzNiAwIDAgMCAxLjU0LTUuMzFjLS4wMS0xLjg5LS41NS0zLjY3LTEuNDgtNS4xOXptLTMuODIgMUwxMCAySDl2Ny41OUw0LjQxIDUgMyA2LjQxIDguNTkgMTIgMyAxNy41OSA0LjQxIDE5IDkgMTQuNDFWMjJoMWw1LjcxLTUuNzEtNC4zLTQuMjkgNC4zLTQuMjl6TTExIDUuODNsMS44OCAxLjg4TDExIDkuNTlWNS44M3ptMS44OCAxMC40NkwxMSAxOC4xN3YtMy43NmwxLjg4IDEuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcxIDcuNzEgMTIgMmgtMXY3LjU5TDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDExIDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMyA1LjgzbDEuODggMS44OEwxMyA5LjU5VjUuODN6bTEuODggMTAuNDZMMTMgMTguMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzc0F1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDctMy4yIDloMS45bC43LTJoMy4ybC43IDJoMS45TDEzIDdoLTJ6bS0uMTUgNS42NUwxMiA5bDEuMTUgMy42NWgtMi4zek0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5em0tMiA1Ljc5VjE4aC0zLjUyTDEyIDIwLjQ4IDkuNTIgMThINnYtMy41MkwzLjUyIDEyIDYgOS41MlY2aDMuNTJMMTIgMy41MiAxNC40OCA2SDE4djMuNTJMMjAuNDggMTIgMTggMTQuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzSGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC42OVY0aC00LjY5TDEyIC42OSA4LjY5IDRINHY0LjY5TC42OSAxMiA0IDE1LjMxVjIwaDQuNjlMMTIgMjMuMzEgMTUuMzEgMjBIMjB2LTQuNjlMMjMuMzEgMTIgMjAgOC42OXptLTIgNS43OVYxOGgtMy41MkwxMiAyMC40OCA5LjUyIDE4SDZ2LTMuNTJMMy41MiAxMiA2IDkuNTJWNmgzLjUyTDEyIDMuNTIgMTQuNDggNkgxOHYzLjUyTDIwLjQ4IDEyIDE4IDE0LjQ4ek0xMiA2Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnptMCAxMGMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMi41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcmlnaHRuZXNzTG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5em0tMiA1Ljc5VjE4aC0zLjUyTDEyIDIwLjQ4IDkuNTIgMThINnYtMy41MkwzLjUyIDEyIDYgOS41MlY2aDMuNTJMMTIgMy41MiAxNC40OCA2SDE4djMuNTJMMjAuNDggMTIgMTggMTQuNDh6TTEyIDZjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwYy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3NNZWRpdW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIgNnYxMmMzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1VjRjMC0uNTUtLjQ1LTEtMS0xaC0yYy0uNTUgMC0xIC40NS0xIDF2MWgtMXY0YzAgLjU1LjQ1IDEgMSAxaDF2N2MwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJWN2MwLTIuMjEtMS43OS00LTQtNFM1IDQuNzkgNSA3djdINGMtLjU1IDAtMSAuNDUtMSAxdjRoMXYxYzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi0xaDF2LTRjMC0uNTUtLjQ1LTEtMS0xSDdWN2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjEwYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTR2LTdoMWMuNTUgMCAxLS40NSAxLTFWNWgtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYXN3aXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgN2gtMWwtMS0xaC00TDkgN0g4Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDhIOFY5aDEuODNsMS0xaDIuMzRsMSAxSDE2djZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxMlwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjU3LjUyIDEzLjA1IDVsMS40MS0xLjQxLTEuNTQtMS41NEMxNy43IDIuNDYgMjEuNTMgNi4yNCAyMiAxMWgyQzIzLjM2IDMuMyAxNS43OS0xLjY3IDguNTcuNTJ6TTkuNTQgMjAuNDFsMS41NCAxLjU0QzYuMyAyMS41NCAyLjQ3IDE3Ljc2IDIgMTNIMGMuNjQgNy43IDguMjEgMTIuNjcgMTUuNDMgMTAuNDhMMTAuOTUgMTlsLTEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyZWRpdFNjb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmg1di0ySDR2LTZoMThWNmMwLTEuMTEtLjg5LTItMi0yem0wIDRINFY2aDE2djJ6bS01LjA3IDExLjE3LTIuODMtMi44My0xLjQxIDEuNDFMMTQuOTMgMjIgMjIgMTQuOTNsLTEuNDEtMS40MS01LjY2IDUuNjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXJrTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMzcgNS41MUE3LjM1IDcuMzUgMCAwIDAgOS4xIDcuNWMwIDQuMDggMy4zMiA3LjQgNy40IDcuNC42OCAwIDEuMzUtLjA5IDEuOTktLjI3QTcuMDE0IDcuMDE0IDAgMCAxIDEyIDE5Yy0zLjg2IDAtNy0zLjE0LTctNyAwLTIuOTMgMS44MS01LjQ1IDQuMzctNi40OXpNMTIgM2E5IDkgMCAxIDAgOSA5YzAtLjQ2LS4wNC0uOTItLjEtMS4zNmE1LjM4OSA1LjM4OSAwIDAgMS00LjQgMi4yNiA1LjQwMyA1LjQwMyAwIDAgMS0zLjE0LTkuOGMtLjQ0LS4wNi0uOS0uMS0xLjM2LS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGF0YVNhdmVyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyLjA1djMuMDNjMy4zOS40OSA2IDMuMzkgNiA2LjkyIDAgLjktLjE4IDEuNzUtLjQ4IDIuNTRsMi42IDEuNTNjLjU2LTEuMjQuODgtMi42Mi44OC00LjA3IDAtNS4xOC0zLjk1LTkuNDUtOS05Ljk1ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTcgMC0zLjUzIDIuNjEtNi40MyA2LTYuOTJWMi4wNWMtNS4wNi41LTkgNC43Ni05IDkuOTUgMCA1LjUyIDQuNDcgMTAgOS45OSAxMCAzLjMxIDAgNi4yNC0xLjYxIDguMDYtNC4wOWwtMi42LTEuNTNBNi45NSA2Ljk1IDAgMCAxIDEyIDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGF0YVNhdmVyT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDh2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM1Y4aC0yem0yLTUuOTV2My4wM2MzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAuOS0uMTggMS43NS0uNDggMi41NGwyLjYgMS41M2MuNTYtMS4yNC44OC0yLjYyLjg4LTQuMDcgMC01LjE4LTMuOTUtOS40NS05LTkuOTV6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctNyAwLTMuNTMgMi42MS02LjQzIDYtNi45MlYyLjA1Yy01LjA2LjUtOSA0Ljc2LTkgOS45NSAwIDUuNTIgNC40NyAxMCA5Ljk5IDEwIDMuMzEgMCA2LjI0LTEuNjEgOC4wNi00LjA5bC0yLjYtMS41M0E2Ljk1IDYuOTUgMCAwIDEgMTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhVXNhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIuMDV2My4wM2MzLjM5LjQ5IDYgMy4zOSA2IDYuOTIgMCAuOS0uMTggMS43NS0uNDggMi41NGwyLjYgMS41M2MuNTYtMS4yNC44OC0yLjYyLjg4LTQuMDcgMC01LjE4LTMuOTUtOS40NS05LTkuOTV6TTEyIDE5Yy0zLjg3IDAtNy0zLjEzLTctNyAwLTMuNTMgMi42MS02LjQzIDYtNi45MlYyLjA1Yy01LjA2LjUtOSA0Ljc2LTkgOS45NSAwIDUuNTIgNC40NyAxMCA5Ljk5IDEwIDMuMzEgMCA2LjI0LTEuNjEgOC4wNi00LjA5bC0yLjYtMS41M0E2Ljk1IDYuOTUgMCAwIDEgMTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhc2V0TGlua2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxN2gxLjA5Yy4yOC0xLjY3IDEuMjQtMy4xIDIuNi00SDd2NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxOVY1aDE0djdoMWMuMzQgMCAuNjcuMDQgMSAuMDlWNWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDMuODFjLS4zNS0uNjEtLjYtMS4yOC0uNzItMkg1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoNHY0SDd6TTEzIDdoNHY0aC00ek0xNiAyMGgtMmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMnYtMmgtMmMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNGgydi0yek0yMCAxNGgtMnYyaDJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyaC0ydjJoMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTl2LTJoLTZ2Mmg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGF0YXNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTNoNHY0SDd6TTEzIDEzaDR2NGgtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDdoNHY0SDd6TTEzIDdoNHY0aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2ZWxvcGVyTW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1aDEwdjJoMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5TDcgMWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTguNDEgMTEuNTlMMjAgMTJsLTQuNTktNC41OUwxNCA4LjgzIDE3LjE3IDEyIDE0IDE1LjE3bDEuNDEgMS40MnpNMTAgMTUuMTcgNi44MyAxMiAxMCA4LjgzIDguNTkgNy40MSA0IDEybDQuNTkgNC41OUwxMCAxNS4xN3pNMTcgMTlIN3YtMkg1djRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMnYtNGgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2aWNlVGhlcm1vc3RhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djhjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wOS0yLTR6bS00LTJWNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MWgtMXYxaDF2MmgtMXYxaDF2MWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURldmljZXNGb2xkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM2gtM2MwLTEuNDQtMS40Ny0yLjQtMi43OS0xLjg0bC0zIDEuMjlDMTAuNDggMi43NiAxMCAzLjQ5IDEwIDQuMjlWMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDEzLjY4LTMgMS4yOVY0LjI5TDE1IDN2MTMuNjh6TTIwIDE5aC01LjMzbDEuMTItLjQ4Yy43My0uMzIgMS4yMS0xLjA0IDEuMjEtMS44NFY1aDN2MTR6TTIgM2gydjJIMnpNMiAxOWgydjJIMnpNMiAxNWgydjJIMnpNMiAxMWgydjJIMnpNMiA3aDJ2Mkgyek02IDNoMnYySDZ6TTYgMTloMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZoMThWNEg0Yy0xLjEgMC0yIC45LTIgMnYxMUgwdjNoMTR2LTNINFY2em0xOSAyaC02Yy0uNTUgMC0xIC40NS0xIDF2MTBjMCAuNTUuNDUgMSAxIDFoNmMuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTF6bS0xIDloLTR2LTdoNHY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlzY291bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi43OSAyMSAzIDExLjIxdjJjMCAuNTMuMjEgMS4wNC41OSAxLjQxbDcuNzkgNy43OWMuNzguNzggMi4wNS43OCAyLjgzIDBsNi4yMS02LjIxYy43OC0uNzguNzgtMi4wNSAwLTIuODNMMTIuNzkgMjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjM4IDE3LjQxYy4zOS4zOS45LjU5IDEuNDEuNTkuNTEgMCAxLjAyLS4yIDEuNDEtLjU5bDYuMjEtNi4yMWMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDEyLjYyLjU4QzEyLjI1LjIxIDExLjc0IDAgMTEuMjEgMEg1QzMuOSAwIDMgLjkgMyAydjYuMjFjMCAuNTMuMjEgMS4wNC41OSAxLjQxbDcuNzkgNy43OXpNNSAyaDYuMjFMMTkgOS43OSAxMi43OSAxNiA1IDguMjFWMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjI1XCIsXCJjeVwiOlwiNC4yNVwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9Ob3REaXN0dXJiT25Ub3RhbFNpbGVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0wLTE0Yy0zLjMgMC02IDIuNy02IDZzMi43IDYgNiA2IDYtMi43IDYtNi0yLjYtNi02LTZ6bTMgN0g5di0yaDZ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUR2ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjVoMTh2MTJ6bS0yLTlIOHYyaDExVjh6bTAgNEg4djJoMTF2LTJ6TTcgOEg1djJoMlY4em0wIDRINXYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOVY3SDh2MTBoOHYtMmgtNnYtMmg2di0yaC02VjloNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVkZ2VzZW5zb3JIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDdoMnY3SDNWN3ptLTMgM2gydjdIMHYtN3ptMjItM2gydjdoLTJWN3ptLTMgM2gydjdoLTJ2LTd6bS0zLTcuOTlMOCAyYy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMjBIOHYtMWg4djF6bTAtM0g4VjdoOHYxMHpNOCA1VjRoOHYxSDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGdlc2Vuc29yTG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDdoMnY3SDJWN3ptMTggM2gydjdoLTJ2LTd6bS00LTcuOTlMOCAyYy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0xLjk5LTItMS45OXpNMTYgMjBIOHYtMWg4djF6bTAtM0g4VjdoOHYxMHpNOCA1VjRoOHYxSDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFzaGxpZ2h0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIyIDggMTAuODNWMjJoOHYtMy4xN2wzLjc4IDMuNzggMS40MS0xLjQxTDIuODEgMi44MXpNMTQgMjBoLTR2LTcuMTdsNCA0VjIwek0xNiA0djFINy44M2wyIDJIMTZ2LjM5bC0yIDMuMDF2Ljc3bDIgMlYxMWwyLTNWMkg2djEuMTdsLjgzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxhc2hsaWdodE9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAySDZ2NmwyIDN2MTFoOFYxMWwyLTNWMnptLTIgMnYxSDhWNGg4em0tMiA2LjRWMjBoLTR2LTkuNjFsLTItM1Y3aDh2LjM5bC0yIDMuMDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbG91cmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNWgxNFY5SDV2NnptMi00aDEwdjJIN3YtMnpNMTEgMmgydjNoLTJ6TTE3LjI4NiA2LjM5OWwxLjc5LTEuODAzIDEuNDIgMS40MS0xLjc5IDEuODAyek0xMSAxOWgydjNoLTJ6TTE3LjI5IDE3LjcxbDEuNzkgMS44IDEuNDItMS40Mi0xLjgtMS43OXpNMy40OTUgNi4wMWwxLjQwNy0xLjQwOEw2LjY5IDYuMzkxIDUuMjg0IDcuNzk4ek0zLjQ5MiAxOC4wNzZsMS44MDMtMS43OSAxLjQwOSAxLjQyLTEuODAzIDEuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbHVvcmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNWgxNFY5SDV2NnptMi00aDEwdjJIN3YtMnpNMTEgMmgydjNoLTJ6TTE3LjI4NiA2LjM5OWwxLjc5LTEuODAzIDEuNDIgMS40MS0xLjc5IDEuODAyek0xMSAxOWgydjNoLTJ6TTE3LjI5IDE3LjcxbDEuNzkgMS44IDEuNDItMS40Mi0xLjgtMS43OXpNMy40OTUgNi4wMWwxLjQwNy0xLjQwOEw2LjY5IDYuMzkxIDUuMjg0IDcuNzk4ek0zLjQ5MiAxOC4wNzZsMS44MDMtMS43OSAxLjQwOSAxLjQyLTEuODAzIDEuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbWRCYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQuMiAwLTggMy4yMi04IDguMiAwIDMuMzIgMi42NyA3LjI1IDggMTEuOCA1LjMzLTQuNTUgOC04LjQ4IDgtMTEuOEMyMCA1LjIyIDE2LjIgMiAxMiAyem0wIDE3LjMzYy00LjA1LTMuNy02LTYuNzktNi05LjE0QzYgNi41NyA4LjY1IDQgMTIgNHM2IDIuNTcgNiA2LjJjMCAyLjM0LTEuOTUgNS40NC02IDkuMTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDZoMnY1aC0yek0xMSAxM2gydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbWRHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTYtMS44QzE4IDYuNTcgMTUuMzUgNCAxMiA0cy02IDIuNTctNiA2LjJjMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQgNC4wNS0zLjcgNi02LjggNi05LjE0ek0xMiAyYzQuMiAwIDggMy4yMiA4IDguMiAwIDMuMzItMi42NyA3LjI1LTggMTEuOC01LjMzLTQuNTUtOC04LjQ4LTgtMTEuOEM0IDUuMjIgNy44IDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMXYyaDJ2Mkg5VjloN2MwLTEuMS0uOS0yLTItMkg5Yy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoNWMxLjEgMCAyLS45IDItMnYtNGgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdwcEJhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptNiA5LjA5YzAgNC0yLjU1IDcuNy02IDguODMtMy40NS0xLjEzLTYtNC44Mi02LTguODN2LTQuN2w2LTIuMjUgNiAyLjI1djQuN3pNOS45MSA4LjUgOC41IDkuOTEgMTAuNTkgMTIgOC41IDE0LjA5bDEuNDEgMS40MUwxMiAxMy40MmwyLjA5IDIuMDggMS40MS0xLjQxTDEzLjQyIDEybDIuMDgtMi4wOS0xLjQxLTEuNDFMMTIgMTAuNTkgOS45MSA4LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcHBHb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M1Y2LjMxbDYtMi4xMiA2IDIuMTJ2NC43OHptLTkuMTgtLjVMNy40IDEybDMuNTQgMy41NCA1LjY2LTUuNjYtMS40MS0xLjQxLTQuMjQgNC4yNC0yLjEzLTIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcHBNYXliZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptNiA5LjA5YzAgNC0yLjU1IDcuNy02IDguODMtMy40NS0xLjEzLTYtNC44Mi02LTguODN2LTQuN2w2LTIuMjUgNiAyLjI1djQuN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTRoMnYyaC0yek0xMSA3aDJ2NWgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdwc0ZpeGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptOC45NCAzQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAyMC45NCAxM0gyM3YtMmgtMi4wNnpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3BzTm90Rml4ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk0IDExQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAyMC45NCAxM0gyM3YtMmgtMi4wNnpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3BzT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC45NCAxMUE4Ljk5NCA4Ljk5NCAwIDAgMCAxMyAzLjA2VjFoLTJ2Mi4wNmMtLjk4LjExLTEuOTEuMzgtMi43Ny43OGwxLjUzIDEuNTNhNi45OTUgNi45OTUgMCAwIDEgOC44NyA4Ljg3bDEuNTMgMS41M2MuNC0uODYuNjctMS43OS43OC0yLjc3SDIzdi0yaC0yLjA2ek0zIDQuMjdsMi4wNCAyLjA0QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNmMxLjc3LS4yIDMuMzgtLjkxIDQuNjktMS45OEwxOS43MyAyMWwxLjQxLTEuNDFMNC40MSAyLjg2IDMgNC4yN3ptMTMuMjcgMTMuMjdhNi45OTUgNi45OTUgMCAwIDEtOS44MS05LjgxbDkuODEgOS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYXBoaWNFcSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxOGgyVjZIN3YxMnptNCA0aDJWMmgtMnYyMHptLTgtOGgydi00SDN2NHptMTIgNGgyVjZoLTJ2MTJ6bTQtOHY0aDJ2LTRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkM1gzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMFY4aC00VjRoLTJ2NGgtNFY0SDh2NEg0djJoNHY0SDR2Mmg0djRoMnYtNGg0djRoMnYtNGg0di0yaC00di00aDR6bS02IDRoLTR2LTRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JpZDRYNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN1Y1aC0zVjJoLTJ2M2gtNFYyaC0ydjNIN1YySDV2M0gydjJoM3Y0SDJ2MmgzdjRIMnYyaDN2M2gydi0zaDR2M2gydi0zaDR2M2gydi0zaDN2LTJoLTN2LTRoM3YtMmgtM1Y3aDN6TTcgN2g0djRIN1Y3em0wIDEwdi00aDR2NEg3em0xMCAwaC00di00aDR2NHptMC02aC00VjdoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JpZEdvbGRlbnJhdGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMVY5aC03VjJoLTJ2N2gtMlYySDl2N0gydjJoN3YySDJ2Mmg3djdoMnYtN2gydjdoMnYtN2g3di0yaC03di0yaDd6bS05IDJoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSE1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExSDlWN0g3djEwaDJ2LTRoNnY0aDJWN2gtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSFBsdXNNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMUg2VjdINHYxMGgydi00aDZ2NGgyVjdoLTJ2NHptMTAgMGgtMlY5aC0ydjJoLTJ2MmgydjJoMnYtMmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyQXV0b1NlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTZINi41djZIMTBjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNUg4di0zaDJ2M3pNMy41IDE4aC0ydi0ySDB2NmgxLjV2LTIuNWgyVjIySDV2LTZIMy41ek0yMiAxOC41di0yaC0xLjV2MmgtMlYyMGgydjJIMjJ2LTJoMnYtMS41ek0xNi41IDE2SDEzdjZoMS41di0yaDEuMWwuOSAySDE4bC0uOS0yLjFjLjUtLjMuOS0uOC45LTEuNHYtMWMwLS44LS43LTEuNS0xLjUtMS41em0wIDIuNWgtMnYtMWgydjF6TTExLjk3IDUuM2wtMS4wMiAyLjg5aDIuMUwxMi4wMyA1LjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDOC42OSAyIDYgNC42OSA2IDhzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTIuMDQgOS0uNjMtMS43OWgtMi44M0w5Ljk2IDExSDguNzRsMi42My03aDEuMjVsMi42MyA3aC0xLjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bS0uOTktMTRMNi44OCAxN2gxLjlsMS0yLjgxaDQuNDRsLjk5IDIuODFoMS45TDEyLjk4IDZoLTEuOTd6bS0uNjYgNi41OSAxLjYtNC41NWguMDlsMS42IDQuNTVoLTMuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJPZmZTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE4LjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxM3Y2aDEuNXYtMmgxLjFsLjkgMkgxOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMnYtMkgwdjZoMS41di0yLjVoMlYyMkg1di02SDMuNXYyem02LjUtMkg2LjV2NkgxMGMuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41SDh2LTNoMnYzem0xNC0uNWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHpNMTAuOTggNC4xNSA5LjQyIDIuNTljNS4xLTIuNDIgMTAuNDEgMi44OSA3Ljk5IDcuOTlsLTEuNTYtMS41NmMuODEtMi45Ni0xLjkxLTUuNjgtNC44Ny00Ljg3ek02LjM0IDIuMzQgNC45MyAzLjc2bDEuNjYgMS42NmMtMi40MiA1LjEgMi44OSAxMC40MSA3Ljk5IDcuOTlsMS42NiAxLjY2IDEuNDEtMS40MUw2LjM0IDIuMzR6bTEuODEgNC42NCA0Ljg3IDQuODdjLTIuOTYuODEtNS42OC0xLjkxLTQuODctNC44N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhkck9uU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxOC41di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTN2NmgxLjV2LTJoMS4xbC45IDJIMThsLS45LTIuMWMuNS0uMy45LS44LjktMS40em0tMS41IDBoLTJ2LTFoMnYxem0tMTMtLjVoLTJ2LTJIMHY2aDEuNXYtMi41aDJWMjJINXYtNkgzLjV2MnptNi41LTJINi41djZIMTBjLjggMCAxLjUtLjcgMS41LTEuNXYtM2MwLS44LS43LTEuNS0xLjUtMS41em0wIDQuNUg4di0zaDJ2M3ptMTQtLjVoLTJ2MmgtMS41di0yaC0ydi0xLjVoMnYtMkgyMnYyaDJWMjB6TTEyIDRjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDQtNC0xLjc5LTQtNCAxLjc5LTQgNC00bTAtMkM4LjY5IDIgNiA0LjY5IDYgOHMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDIyaDh2LTdoLTN2LTRoLTVWOWgzVjJIOHY3aDN2Mkg2djRIM3Y3aDh2LTdIOHYtMmg4djJoLTN2N3pNMTAgN1Y0aDR2M2gtNHpNOSAxN3YzSDV2LTNoNHptMTAgMHYzaC00di0zaDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMZW5zQmx1ciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zIC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiA1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTE1IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC0zLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tMTEgMTBjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTE3Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTAgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTggLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMyA4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0xNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS00LTEyYy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMCA4LjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNC00LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlnaHRNb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOWMxLjY1IDAgMyAxLjM1IDMgM3MtMS4zNSAzLTMgMy0zLTEuMzUtMy0zIDEuMzUtMyAzLTNtMC0yYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXpNMiAxM2gyYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xSDJjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF6bTE4IDBoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtMmMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXpNMTEgMnYyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMVYyYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxem0wIDE4djJjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxek01Ljk5IDQuNThhLjk5Ni45OTYgMCAwIDAtMS40MSAwIC45OTYuOTk2IDAgMCAwIDAgMS40MWwxLjA2IDEuMDZjLjM5LjM5IDEuMDMuMzkgMS40MSAwcy4zOS0xLjAzIDAtMS40MUw1Ljk5IDQuNTh6bTEyLjM3IDEyLjM3YS45OTYuOTk2IDAgMCAwLTEuNDEgMCAuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMS4wNiAxLjA2Yy4zOS4zOSAxLjAzLjM5IDEuNDEgMGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTEuMDYtMS4wNnptMS4wNi0xMC45NmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuMDYgMS4wNmMtLjM5LjM5LS4zOSAxLjAzIDAgMS40MXMxLjAzLjM5IDEuNDEgMGwxLjA2LTEuMDZ6TTcuMDUgMTguMzZhLjk5Ni45OTYgMCAwIDAgMC0xLjQxLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjA2IDEuMDZjLS4zOS4zOS0uMzkgMS4wMyAwIDEuNDFzMS4wMy4zOSAxLjQxIDBsMS4wNi0xLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYXRpb25EaXNhYmxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMgMTN2LTJoLTIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZjLS45OC4xMS0xLjkxLjM4LTIuNzcuNzhsMS41MyAxLjUzYTYuOTk1IDYuOTk1IDAgMCAxIDguODcgOC44N2wxLjUzIDEuNTNjLjQtLjg2LjY3LTEuNzkuNzgtMi43N0gyM3pNNC40MSAyLjg2IDMgNC4yN2wyLjA0IDIuMDRBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2YzEuNzctLjIgMy4zOC0uOTEgNC42OS0xLjk4TDE5LjczIDIxbDEuNDEtMS40MUw0LjQxIDIuODZ6TTEyIDE5QTYuOTk1IDYuOTk1IDAgMCAxIDYuNDYgNy43M2w5LjgxIDkuODFBNi45NzIgNi45NzIgMCAwIDEgMTIgMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhdGlvblNlYXJjaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuOTQgMTFBOC45OTQgOC45OTQgMCAwIDAgMTMgMy4wNlYxaC0ydjIuMDZBOC45OTQgOC45OTQgMCAwIDAgMy4wNiAxMUgxdjJoMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAxMSAyMC45NFYyM2gydi0yLjA2QTguOTk0IDguOTk0IDAgMCAwIDIwLjk0IDEzSDIzdi0yaC0yLjA2ek0xMiAxOWMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMdGVNb2JpbGVkYXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE0aDN2Mkg0VjhoMnY2em0zLTRoMnY2aDJ2LTZoMlY4SDl2MnptMTIgMFY4aC01djhoNXYtMmgtM3YtMWgzdi0yaC0zdi0xaDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMdGVQbHVzTW9iaWxlZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxNGgzdjJIMVY4aDJ2NnptMi00aDJ2Nmgydi02aDJWOEg1djJ6bTcgNmg1di0yaC0zdi0xaDN2LTJoLTN2LTFoM1Y4aC01djh6bTEyLTVoLTJWOWgtMnYyaC0ydjJoMnYyaDJ2LTJoMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hY3JvT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC42NiA0LjkzYy4yNCAwIC40Ni4wNy42NC4ybC44MS41NmMtLjI5LjI0LS41NC41NC0uNzIuODdsMS42NiAxLjY2QzExLjAzIDguMTQgMTEgOC4wOCAxMSA4YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMS0uNDUgMS0xIDFjLS4wOCAwLS4xNC0uMDMtLjIyLS4wNGw0LjA2IDQuMDZhMy4xMyAzLjEzIDAgMCAwIDIuNjMtMy4wOWMwLS43MS0uMjUtMS4zOS0uNjctMS45My40My0uNTQuNjctMS4yMi42Ny0xLjkzYTMuMTQ1IDMuMTQ1IDAgMCAwLTMuNTctMy4xMUMxNC40NCAxLjgxIDEzLjMxIDEgMTIgMXMtMi40NC44MS0yLjkxIDEuOTZhMy4xMzIgMy4xMzIgMCAwIDAtMi41Mi43OGwxLjQyIDEuNDJjLjItLjEzLjQyLS4yMy42Ny0uMjN6bTYuNjggNi4xNGMtLjI0IDAtLjQ2LS4wNy0uNjQtLjJsLS44MS0uNTdjLjU1LS40NS45NC0xLjA5IDEuMDYtMS44M2wuODguNDJjLjQuMTkuNjYuNTkuNjYgMS4wMyAwIC42NC0uNTIgMS4xNS0xLjE1IDEuMTV6bS0uNjUtNS45NGMuMi0uMTMuNDItLjIuNjUtLjIuNjMgMCAxLjE0LjUxIDEuMTQgMS4xNCAwIC40NC0uMjUuODMtLjY2IDEuMDNsLS44OC40MmMtLjEyLS43NC0uNTEtMS4zOC0xLjA3LTEuODNsLjgyLS41NnpNMTIgM2MuNjIgMCAxLjEyLjQ5IDEuMTQgMS4xbC0uMTEgMS4wOUMxMi43MSA1LjA3IDEyLjM2IDUgMTIgNXMtLjcuMDctMS4wMi4xOWwtLjEyLTEuMDljLjAyLS42MS41Mi0xLjEgMS4xNC0xLjF6TTE5Ljk4IDE3LjE1QTguOTA5IDguOTA5IDAgMCAwIDIxIDEzYy0xLjUgMC0yLjkxLjM3LTQuMTUgMS4wMmwzLjEzIDMuMTN6TTMgMTNhOSA5IDAgMCAwIDkgOSA5IDkgMCAwIDAtOS05em0yLjQ0IDIuNDRjMS45LjcxIDMuNDIgMi4yMiA0LjEyIDQuMTJhNy4wNCA3LjA0IDAgMCAxLTQuMTItNC4xMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmw0LjQyIDQuNDJjLS4xOS40LS4zLjg0LS4zIDEuMjlhMy4xNDcgMy4xNDcgMCAwIDAgMy41OCAzLjExQTMuMTUgMy4xNSAwIDAgMCAxMiAxNWMuMDUgMCAuMTEtLjAxLjE2LS4wMWwxLjY0IDEuNjRBOC44NTMgOC44NTMgMCAwIDAgMTIgMjJjMi4wMiAwIDMuODgtLjY3IDUuMzgtMS44bDIuNCAyLjQgMS40MS0xLjQxTDIuODEgMi44MXptMTEuNjMgMTYuNzVjLjItLjU0LjQ3LTEuMDQuNzktMS41bC43Mi43MmMtLjQ3LjMxLS45Ny41OC0xLjUxLjc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVkaWFCbHVldG9vdGhPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNi4xN1YzaDZ2NGgtNHYxLjE3bC0yLTJ6TTE5LjQyIDE1IDIyIDE3LjU3bC0uOC44LTYuNzgtNi43OC44LS44IDIuNzUgMi43NVY5aC42TDIyIDEyLjQzIDE5LjQyIDE1em0tLjI1LTEuNDUgMS4xMy0xLjEzLTEuMTMtMS4xM3YyLjI2em0yLjAyIDcuNjQtMS40MSAxLjQxLTMuOTgtMy45OC0uNTguNTgtLjg1LS44NS41OC0uNThMMTEgMTMuODNWMTdjMCAyLjIxLTEuNzggNC0zLjk5IDRTMyAxOS4yMSAzIDE3czEuNzktNCA0LjAxLTRjLjczIDAgMS40MS4yMSAyIC41NXYtMS43MkwxLjM5IDQuMjIgMi44IDIuODFsMTguMzkgMTguMzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpYUJsdWV0b290aE9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05IDMgLjAxIDEwLjU1Yy0uNi0uMzQtMS4yOC0uNTUtMi0uNTVhNC4wMDEgNC4wMDEgMCAxIDAgMCA4QzkuMjMgMjEgMTEgMTkuMjEgMTEgMTdWN2g0VjNIOXptMTIgOS40M0wxNy41NyA5aC0uNnY0LjU1bC0yLjc1LTIuNzUtLjg1Ljg1TDE2LjczIDE1bC0zLjM1IDMuMzUuODUuODUgMi43NS0yLjc1VjIxaC42TDIxIDE3LjU3IDE4LjQyIDE1IDIxIDEyLjQzem0tMi44My0xLjEzIDEuMTMgMS4xMy0xLjEzIDEuMTNWMTEuM3ptMS4xMyA2LjI3LTEuMTMgMS4xM3YtMi4yNmwxLjEzIDEuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZWRpY2F0aW9uTGlxdWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzaDEydjJIM3pNMiAyMWgxNFY2SDJ2MTV6bTMtOWgyLjVWOS41aDNWMTJIMTN2M2gtMi41djIuNWgtM1YxNUg1di0zek0yMCA2Yy0xLjY4IDAtMyAxLjc2LTMgNCAwIDEuNzcuODMgMy4yMiAyIDMuNzZWMjFoMnYtNy4yNGMxLjE3LS41NCAyLTEuOTkgMi0zLjc2IDAtMi4yNC0xLjMyLTQtMy00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVkaWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuNSAxNUg4di0zaDIuNVY5LjVoM1YxMkgxNnYzaC0yLjV2Mi41aC0zVjE1ek0xOSA4djExYzAgMS4xLS45IDItMiAySDdjLTEuMSAwLTItLjktMi0yVjhjMC0xLjEuOS0yIDItMmgxMGMxLjEgMCAyIC45IDIgMnptLTIgMEg3djExaDEwVjh6bTEtNUg2djJoMTJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vYmlsZUZyaWVuZGx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxSDljLTEuMSAwLTIgLjktMiAydjNoMlY0aDEwdjE2SDl2LTJIN3YzYzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnpNNy4wMSAxMy40N2wtMi41NS0yLjU1LTEuMjcgMS4yN0w3IDE2bDcuMTktNy4xOS0xLjI3LTEuMjctNS45MSA1LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9iaWxlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1djguNjFsMiAyVjNjMC0xLjEtLjktMi0yLTJIN2MtLjcxIDAtMS4zMy4zNy0xLjY4LjkzTDguMzkgNUgxN3pNMS40OSAzLjc2IDUgNy4yN1YyMWMwIDEuMS45IDIgMiAyaDEwYzEuMDIgMCAxLjg1LS43NyAxLjk4LTEuNzVsMS43MiAxLjcyIDEuNDEtMS40MUwyLjkgMi4zNSAxLjQ5IDMuNzZ6TTcgOS4yNyAxNi43MyAxOUg3VjkuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2JpbGVkYXRhT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNiA2LjgyIDEuNTkgMS41OUwxOSA3bC00LTQtNCA0IDEuNDEgMS40MUwxNCA2LjgydjQuMzVsMiAyek0xLjM5IDQuMjIgOCAxMC44M3Y2LjM1bC0xLjU5LTEuNTlMNSAxN2w0IDQgNC00LTEuNDEtMS40MUwxMCAxNy4xOHYtNC4zNWw5Ljc4IDkuNzggMS40MS0xLjQyTDIuODEgMi44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVOaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDhjLS4zNCAwLS42OC0uMDItMS4wMS0uMDcgMS45MS0yLjE2IDMuMDEtNC45OCAzLjAxLTcuOTNzLTEuMS01Ljc3LTMuMDEtNy45M0M4LjgyIDQuMDIgOS4xNiA0IDkuNSA0bTAtMmMtMS44MiAwLTMuNTMuNS01IDEuMzUgMi45OSAxLjczIDUgNC45NSA1IDguNjVzLTIuMDEgNi45Mi01IDguNjVjMS40Ny44NSAzLjE4IDEuMzUgNSAxLjM1IDUuNTIgMCAxMC00LjQ4IDEwLTEwUzE1LjAyIDIgOS41IDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2RlU3RhbmRieSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMtOGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb25pdG9ySGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjNoMlY2aDE2djNoMlY2YzAtMS4xLS45LTItMi0yek0yMCAxOEg0di0zSDJ2M2MwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi0zaC0ydjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljg5IDcuNTVjLS4zNC0uNjgtMS40NS0uNjgtMS43OSAwTDEwIDEzLjc2bC0xLjExLTIuMjFBLjk4OC45ODggMCAwIDAgOCAxMUgydjJoNS4zOGwxLjcyIDMuNDVjLjE4LjM0LjUyLjU1LjkuNTVzLjcyLS4yMS44OS0uNTVMMTQgMTAuMjRsMS4xMSAyLjIxYy4xNy4zNC41MS41NS44OS41NWg2di0yaC01LjM4bC0xLjczLTMuNDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb25pdG9yV2VpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTEyIDZjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0tMSAzLjVoLTF2LTFoMXYxem0xLjUgMGgtMXYtMWgxdjF6bTEuNSAwaC0xdi0xaDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5lYXJieUVycm9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA3LjU3IDQuNDIgNC40MkwxMiAxNi40MWwtNC40Mi00LjQyTDEyIDcuNTd6bTAgMTEuNjItNy4yLTcuMiA3LjItNy4yIDYgNlY3LjE2bC00LjU4LTQuNThjLS43OC0uNzgtMi4wNS0uNzgtMi44MyAwbC04LjAxIDhjLS43OC43OC0uNzggMi4wNSAwIDIuODNsOC4wMSA4Yy43OC43OCAyLjA1Ljc4IDIuODMgMEwxOCAxNi44MnYtMy42M2wtNiA2em04IC44MWgydjJoLTJ2LTJ6bTItMTBoLTJ2OGgydi04XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZWFyYnlPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjQxIDEzLjQyIDE4LjgzIDE2bC0xLjgxLTEuODFMMTkuMiAxMiAxMiA0LjggOS44MSA2Ljk5IDggNS4xN2wyLjU4LTIuNThjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBsOCA4Yy43OS43OC43OSAyLjA0IDAgMi44M3ptLS4yMiA3Ljc3LTEuNDEgMS40MUwxNiAxOC44M2wtMi41OCAyLjU4Yy0uNzguNzgtMi4wNS43OC0yLjgzIDBsLTgtOGMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNMNS4xNyA4IDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHptLTctNC4xNy0xLjM5LTEuMzktLjguOEw3LjU4IDEybC44LS44LTEuNC0xLjM5TDQuOCAxMmw3LjIgNy4yIDIuMTktMi4xOHpNMTYuNDIgMTIgMTIgNy41OGwtLjguOCA0LjQyIDQuNDIuOC0uOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtDZWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIyaDIwVjJMMiAyMnptMTgtMmgtM1Y5LjgzbDMtM1YyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtXaWZpMUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6bTMuMzIgMTAuODRDMTQuMzQgMTQuMyAxMy4yIDE0IDEyIDE0Yy0xLjIgMC0yLjM0LjMtMy4zMi44NEwyLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTUuNzYgNS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtXaWZpMkJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6bTQuNzggOS4zOEE4Ljg1MyA4Ljg1MyAwIDAgMCAxMiAxMmMtMS43NiAwLTMuNC41LTQuNzggMS4zOGwtNC4zLTQuM0M1LjUxIDcuMDggOC42NyA2IDEyIDZzNi40OSAxLjA4IDkuMDggMy4wN2wtNC4zIDQuMzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXR3b3JrV2lmaTNCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0ek0yLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdsLTIuODUgMi44NkExMC45NDUgMTAuOTQ1IDAgMCAwIDEyIDEwYy0yLjMxIDAtNC40Ni43MS02LjIzIDEuOTNMMi45MiA5LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmV0d29ya1dpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OEwxMiAyMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDR6bTAgNGMtMi44NiAwLTUuNS45NC03LjY1IDIuNTFMMi45MiA5LjA3QzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3bC0xLjQzIDEuNDNBMTIuOTkgMTIuOTkgMCAwIDAgMTIgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5mYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThINFY0aDE2djE2ek0xOCA2aC01Yy0xLjEgMC0yIC45LTIgMnYyLjI4Yy0uNi4zNS0xIC45OC0xIDEuNzIgMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLS43NC0uNC0xLjM4LTEtMS43MlY4aDN2OEg4VjhoMlY2SDZ2MTJoMTJWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5pZ2h0bGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDRjLjM0IDAgLjY4LjAyIDEuMDEuMDdDMTMuMSA2LjIzIDEyIDkuMDUgMTIgMTJzMS4xIDUuNzcgMy4wMSA3LjkzYy0uMzMuMDUtLjY3LjA3LTEuMDEuMDctNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOG0wLTJDOC40OCAyIDQgNi40OCA0IDEyczQuNDggMTAgMTAgMTBjMS44MiAwIDMuNTMtLjUgNS0xLjM1LTIuOTktMS43My01LTQuOTUtNS04LjY1czIuMDEtNi45MiA1LTguNjVBOS45NzMgOS45NzMgMCAwIDAgMTQgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNoLTQuMThDMTQuNCAxLjg0IDEzLjMgMSAxMiAxcy0yLjQuODQtMi44MiAySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTctLjI1Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NXpNMTkgMTlINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS4wOCAxMS4wMy0yLjEyLTIuMTJMNyAxNC44NlYxN2gyLjF6TTE2Ljg1IDkuMjdjLjItLjIuMi0uNTEgMC0uNzFsLTEuNDEtMS40MWMtLjItLjItLjUxLS4yLS43MSAwbC0xLjA2IDEuMDYgMi4xMiAyLjEyIDEuMDYtMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhc3N3b3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE3aDIwdjJIMnYtMnptMS4xNS00LjA1TDQgMTEuNDdsLjg1IDEuNDggMS4zLS43NS0uODUtMS40OEg3di0xLjVINS4zbC44NS0xLjQ3TDQuODUgNyA0IDguNDcgMy4xNSA3bC0xLjMuNzUuODUgMS40N0gxdjEuNWgxLjdsLS44NSAxLjQ4IDEuMy43NXptNi43LS43NSAxLjMuNzUuODUtMS40OC44NSAxLjQ4IDEuMy0uNzUtLjg1LTEuNDhIMTV2LTEuNWgtMS43bC44NS0xLjQ3LTEuMy0uNzVMMTIgOC40NyAxMS4xNSA3bC0xLjMuNzUuODUgMS40N0g5djEuNWgxLjdsLS44NSAxLjQ4ek0yMyA5LjIyaC0xLjdsLjg1LTEuNDctMS4zLS43NUwyMCA4LjQ3IDE5LjE1IDdsLTEuMy43NS44NSAxLjQ3SDE3djEuNWgxLjdsLS44NSAxLjQ4IDEuMy43NS44NS0xLjQ4Ljg1IDEuNDggMS4zLS43NS0uODUtMS40OEgyM3YtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF0dGVybiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTIgOGMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYtNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYgMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS0uMDIgNmMtLjc0IDAtMS4zNy40LTEuNzIgMWgtMi41NGExLjk4IDEuOTggMCAwIDAtMy40NCAwSDguNDFsMy4wNy0zLjA3Yy4xNy4wNC4zNC4wNy41Mi4wNyAxLjEgMCAyLS45IDItMiAwLS4xOC0uMDMtLjM1LS4wNy0uNTFsMy41Ni0zLjU2Yy4xNi4wNC4zMy4wNy41MS4wNyAxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDJjMCAuMTguMDMuMzUuMDcuNTFsLTMuNTYgMy41NmMtLjE2LS4wNC0uMzMtLjA3LS41MS0uMDctMS4xIDAtMiAuOS0yIDIgMCAuMTguMDMuMzUuMDcuNTFsLTMuNTYgMy41NkM2LjM1IDE2LjAzIDYuMTggMTYgNiAxNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJjLjc0IDAgMS4zNy0uNCAxLjcyLTFoMi41N2ExLjk4IDEuOTggMCAwIDAgMy40NCAwaDIuNTVjLjM0LjYuOTggMSAxLjcyIDEgMS4xIDAgMi0uOSAyLTItLjAyLTEuMS0uOTItMi0yLjAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaGlzaGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDYuMThWMmgtMnY0LjE4QzEzLjg0IDYuNiAxMyA3LjcgMTMgOXMuODQgMi40IDIgMi44MlYxNWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNHYtMS4xN2wxLjU5IDEuNTlMMTAgMTQgNSA5djZjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNnYtMy4xOGMxLjE2LS40MSAyLTEuNTEgMi0yLjgycy0uODQtMi40LTItMi44MnpNMTYgMTBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQ5IDEwLjVWMTVoMS4xNVY5aC0uODdsLTEuNzYgMS4yNy41OC44OXpNMTEuNDcgMTAuMDVjLjUgMCAuODEuMzIuODEuNzIgMCAuMzctLjE0LjY0LS41NCAxLjA2LS4zNi4zOC0xLjA2IDEuMDgtMi4xMyAyLjE1VjE1aDMuODl2LS45OWgtMi4zN2wtLjAzLS4wNWMuNjgtLjY4IDEuMTUtMS4xNCAxLjQtMS4zOS42MS0uNi45Mi0xLjIyLjkyLTEuODYgMC0uMjQtLjA1LTEuMDQtLjkxLTEuNDgtLjQ3LS4yMy0xLjI2LS4zNi0xLjk1LS4wMy0uODIuMzktLjk5IDEuMTMtMSAxLjE1bDEuMDEuNDJjLjEtLjMzLjM4LS43Mi45LS43MnpNMTYuOTkgMTMuOTRjLS44MyAwLS45OS0uNzYtMS4wMi0uODZsLTEuMDMuNDFjLjQ1IDEuNTkgMi4wMSAxLjUxIDIuMDUgMS41MSAxLjIgMCAxLjY4LS43MiAxLjc2LS44NS4zMi0uNDkuMzYtMS4yNC0uMDEtMS43Ni0uMTctLjI0LS40LS40MS0uNjgtLjUydi0uMDdjLjItLjEuMzctLjI2LjUyLS40OC4yNi0uNDEuMzEtMS4wNy0uMDItMS41Ny0uMDgtLjExLS41My0uNzUtMS42Mi0uNzUtMS4yNiAwLTEuNzQuOS0xLjg1IDEuMjRsLjk5LjQxYy4xMS0uMzIuMzUtLjY0Ljg1LS42NC40NCAwIC43NS4yNi43NS42NSAwIC41OC0uNTUuNzItLjg4LjcyaC0uNDZ2MWguNWMuNTYgMCAxLjA0LjI0IDEuMDQuNzkgMCAuNDktLjQ4Ljc3LS44OS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBsYXlMZXNzb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMjBWNGgydjdsMi41LTEuNUwxMiAxMVY0aDV2Ny4wOGMuMzMtLjA1LjY2LS4wOCAxLS4wOHMuNjcuMDMgMSAuMDhWNGMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDcuMjZjLS40Mi0uNi0uNzUtMS4yOC0uOTctMkg1em0xMy03Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLTEuMjUgNy41di01bDQgMi41LTQgMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJpY2VDaGFuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTdoMnYtMWgxYy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTFIOHYtMWg0VjhoLTJWN0g4djFIN2MtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDZ2MmgydjF6TTIwIDRINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWNmMwLTEuMTEtLjg5LTItMi0yem0wIDE0SDRWNmgxNnYxMnptLTYtOCAyLTIgMiAybTAgNC4yNS0yIDItMi0yXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcmljZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxM1Y5YzAtLjU1LS40NS0xLTEtMUg2VjZoNVY0SDguNVYzaC0ydjFINWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoNHYySDR2MmgyLjV2MWgydi0xSDEwYy41NSAwIDEtLjQ1IDEtMXpNMTkuNTkgMTIuNTJsLTUuNjYgNS42NS0yLjgzLTIuODMtMS40MSAxLjQyTDEzLjkzIDIxIDIxIDEzLjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHVuY2hDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZoLTFWMUg2djVINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yek04IDNoOHYzSDhWM3ptMTEgMTdINVY4aDE0djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA5Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMCA4LjVjLTEuOTMgMC0zLjUtMS41Ny0zLjUtMy41czEuNTctMy41IDMuNS0zLjUgMy41IDEuNTcgMy41IDMuNS0xLjU3IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDExLjVoLTF2Mi43MWwxLjY0IDEuNjQuNzEtLjcxLTEuMzUtMS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVF1aXogKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNkgydjE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2em0xNi00SDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg4VjRoMTJ2MTJ6bS02LjQ5LTUuODRjLjQxLS43MyAxLjE4LTEuMTYgMS42My0xLjguNDgtLjY4LjIxLTEuOTQtMS4xNC0xLjk0LS44OCAwLTEuMzIuNjctMS41IDEuMjNsLTEuMzctLjU3QzExLjUxIDUuOTYgMTIuNTIgNSAxMy45OSA1YzEuMjMgMCAyLjA4LjU2IDIuNTEgMS4yNi4zNy42LjU4IDEuNzMuMDEgMi41Ny0uNjMuOTMtMS4yMyAxLjIxLTEuNTYgMS44MS0uMTMuMjQtLjE4LjQtLjE4IDEuMThoLTEuNTJjLjAxLS40MS0uMDYtMS4wOC4yNi0xLjY2em0tLjU2IDMuNzljMC0uNTkuNDctMS4wNCAxLjA1LTEuMDQuNTkgMCAxLjA0LjQ1IDEuMDQgMS4wNCAwIC41OC0uNDQgMS4wNS0xLjA0IDEuMDUtLjU4IDAtMS4wNS0uNDctMS4wNS0xLjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUk1vYmlsZWRhdGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuOCA3LjIgOSAxMEg3TDUuODcgNy4zM0g0VjEwSDJWMmg1YzEuMTMgMCAyIC44NyAyIDJ2MS4zM2MwIC44LS41MyAxLjU0LTEuMiAxLjg3ek03IDRINHYxLjMzaDNWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43NCAxOC4zM0E5Ljk4NCA5Ljk4NCAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwYTkuOTg0IDkuOTg0IDAgMCAwIDcuMTEtMi45N2MuMDMtLjAzLjA1LS4wNi4wNy0uMDguMi0uMi4zOS0uNDEuNTYtLjYyek0xMiAyMGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4YzAgMS44NS0uNjMgMy41NC0xLjY5IDQuOWwtMS40My0xLjQzYy42OS0uOTggMS4xLTIuMTcgMS4xLTMuNDYgMC0zLjMxLTIuNjktNi02LTZzLTYgMi42OS02IDYgMi42OSA2IDYgNmMxLjMgMCAyLjUxLS40MiAzLjQ5LTEuMTNsMS40MiAxLjQyQTcuODIyIDcuODIyIDAgMCAxIDEyIDIwem0xLjkyLTcuNDljLjE3LS42Ni4wMi0xLjM4LS40OS0xLjlsLS4wMi0uMDJjLS43Ny0uNzctMi0uNzgtMi43OC0uMDQtLjAxLjAxLS4wMy4wMi0uMDUuMDQtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wuMDIuMDJjLjUyLjUxIDEuMjUuNjcgMS45MS40OWwxLjUxIDEuNTFjLS42LjM2LTEuMjkuNTgtMi4wNC41OC0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDRjMCAuNzMtLjIxIDEuNDEtLjU2IDJsLTEuNS0xLjUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVtZW1iZXJNZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMjBIN3YtMWgxMHYxem0wLTNIN3YtLjQ4YzEuNDctLjk5IDMuMjItMS41MiA1LTEuNTJzMy41My41MyA1IDEuNTJWMTh6bTAtMi43OWMtMS41LS43Ny0zLjItMS4yMS01LTEuMjFzLTMuNS40NC01IDEuMjFWNmgxMHY5LjIxek0xNyA0SDdWM2gxMHYxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxM2MxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzZXRUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgOFY1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNHYyaDh2LTJoNGMxLjEgMCAxLjk5LS45IDEuOTktMnYtNUgyMmMwLTEuMS0uOS0yLTItMmgtNy4xN2wxLjgzLTEuODMtMS40MS0xLjQxQzkuNjkgMTAuMzEgMTAuODggOS4xMiA5IDExbDQuMjQgNC4yNCAxLjQxLTEuNDFMMTIuODMgMTJIMjB2NUg0VjVoMTZ2M2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVzdGFydEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MwLTEuNjUuNjctMy4xNSAxLjc2LTQuMjRMNi4zNCA3LjM0QTguMDE0IDguMDE0IDAgMCAwIDQgMTNjMCA0LjA4IDMuMDUgNy40NCA3IDcuOTN2LTIuMDJjLTIuODMtLjQ4LTUtMi45NC01LTUuOTF6bTE0IDBjMC00LjQyLTMuNTgtOC04LTgtLjA2IDAtLjEyLjAxLS4xOC4wMWwxLjA5LTEuMDlMMTEuNSAyLjUgOCA2bDMuNSAzLjUgMS40MS0xLjQxLTEuMDgtMS4wOGMuMDYgMCAuMTItLjAxLjE3LS4wMSAzLjMxIDAgNiAyLjY5IDYgNiAwIDIuOTctMi4xNyA1LjQzLTUgNS45MXYyLjAyYzMuOTUtLjQ5IDctMy44NSA3LTcuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXZpZXdzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxNSAxLjU3LTMuNDNMMTcgMTBsLTMuNDMtMS41N0wxMiA1bC0xLjU3IDMuNDNMNyAxMGwzLjQzIDEuNTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSc3ZwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA5aDEuNWwtMS43NSA2aC0xLjVMMTIuNSA5SDE0bDEgMy40M0wxNiA5ek01LjEgMTIuOSA2IDE1SDQuNWwtLjg1LTJIMi41djJIMVY5aDMuNWMuODUgMCAxLjUuNjUgMS41IDEuNXYxYzAgLjYtLjQgMS4xNS0uOSAxLjR6bS0uNi0yLjRoLTJ2MWgydi0xem0xNyAyLjVoLTJ2MkgxOFY5aDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxYzAgLjgzLS42NyAxLjUtMS41IDEuNXptMC0yLjVoLTJ2MWgydi0xek0xMS41IDl2MS41aC0zdi43NWgyYy41NSAwIDEgLjQ1IDEgMVYxNGMwIC41NS0uNDUgMS0xIDFIN3YtMS41aDN2LS43NUg3Ljc1Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzV2LTJjMC0uNTUuNDUtMSAxLTFoMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuTG9ja0xhbmRzY2FwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNUgzYy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bS0yIDEySDVWN2gxNHYxMHptLTktMWg0Yy41NSAwIDEtLjQ1IDEtMXYtM2MwLS41NS0uNDUtMS0xLTF2LTFhMiAyIDAgMSAwLTQgMHYxYy0uNTUgMC0xIC40NS0xIDF2M2MwIC41NS40NSAxIDEgMXptLjgtNmMwLS42Ni41NC0xLjIgMS4yLTEuMnMxLjIuNTQgMS4yIDEuMnYxaC0yLjR2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5Mb2NrUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE2aDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXYtMWEyIDIgMCAxIDAtNCAwdjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxem0uOC02YzAtLjY2LjU0LTEuMiAxLjItMS4yczEuMi41NCAxLjIgMS4ydjFoLTIuNHYtMXpNMTcgMUg3Yy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMThIN1Y1aDEwdjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuTG9ja1JvdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMi4zIDEzLjc3LTIuNTctMi41Ny0xLjQxIDEuNDEgMi4yMiAyLjIyLTUuNjYgNS42NkwzLjU2IDkuMTdsNS42Ni01LjY2IDIuMSAyLjEgMS40MS0xLjQxLTIuNDUtMi40NWExLjQ5IDEuNDkgMCAwIDAtMi4xMiAwTDEuOCA4LjExYTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsMTIuMDIgMTIuMDJjLjU5LjU5IDEuNTQuNTkgMi4xMiAwbDYuMzYtNi4zNmMuNTktLjU5LjU5LTEuNTQgMC0yLjEyek03LjUyIDIxLjQ4QTEwLjQ4NyAxMC40ODcgMCAwIDEgMS41NSAxM0guMDVDLjU2IDE5LjE2IDUuNzEgMjQgMTIgMjRsLjY2LS4wMy0zLjgxLTMuODItMS4zMyAxLjMzek0xNS4wNSAxMGg1Yy41NSAwIDEtLjQ1IDEtMVY1YzAtLjU1LS40NS0xLTEtMXYtLjVhMi41IDIuNSAwIDAgMC01IDBWNGMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS44LTYuNWMwLS45NC43Ni0xLjcgMS43LTEuN3MxLjcuNzYgMS43IDEuN1Y0aC0zLjR2LS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuUm90YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ4IDIuNTJjMy4yNyAxLjU1IDUuNjEgNC43MiA1Ljk3IDguNDhoMS41QzIzLjQ0IDQuODQgMTguMjkgMCAxMiAwbC0uNjYuMDMgMy44MSAzLjgxIDEuMzMtMS4zMnptLTYuMjUtLjc3YTEuNDkgMS40OSAwIDAgMC0yLjEyIDBMMS43NSA4LjExYTEuNDkgMS40OSAwIDAgMCAwIDIuMTJsMTIuMDIgMTIuMDJjLjU5LjU5IDEuNTQuNTkgMi4xMiAwbDYuMzYtNi4zNmMuNTktLjU5LjU5LTEuNTQgMC0yLjEyTDEwLjIzIDEuNzV6bTQuNiAxOS40NEwyLjgxIDkuMTdsNi4zNi02LjM2IDEyLjAyIDEyLjAyLTYuMzYgNi4zNnptLTcuMzEuMjlBMTAuNDg3IDEwLjQ4NyAwIDAgMSAxLjU1IDEzSC4wNUMuNTYgMTkuMTYgNS43MSAyNCAxMiAyNGwuNjYtLjAzLTMuODEtMy44MS0xLjMzIDEuMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY3JlZW5TZWFyY2hEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE4aDE2YzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDVjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMnpNNCA1aDE2djExSDRWNXpNMSAxOWgyMnYySDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjk3IDcuNTNjLTEuMzctMS4zNy0zLjU4LTEuMzctNC45NSAwcy0xLjM3IDMuNTggMCA0Ljk1YzEuMTggMS4xOCAzIDEuMzQgNC4zNi40N2wyLjA5IDIuMDkgMS4wNi0xLjA2LTIuMDktMi4wOWMuODctMS4zNi43Mi0zLjE4LS40Ny00LjM2em0tMS4wNiAzLjg4Yy0uNzguNzgtMi4wNS43OC0yLjgzIDAtLjc4LS43OC0uNzgtMi4wNSAwLTIuODNzMi4wNS0uNzggMi44MyAwYy43OC43OS43OCAyLjA1IDAgMi44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjcmVlbnNob3RNb25pdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjExIDAtMiAuODktMiAydjEyYTIgMiAwIDAgMCAyIDJoNHYyaDh2LTJoNGMxLjEgMCAyLS45IDItMlY1YTIgMiAwIDAgMC0yLTJ6bTAgMTRINFY1aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjUgNy41SDlWNkg1djRoMS41ek0xOSAxMmgtMS41djIuNUgxNVYxNmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuc2hvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxek05LjUgOC41SDEyVjdIOHY0aDEuNVY4LjV6TTEyIDE3aDR2LTRoLTEuNXYyLjVIMTJWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZFN0b3JhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDR2MTZINlY4LjgzTDEwLjgzIDRIMThtMC0yaC04TDQgOHYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6TTkgN2gydjRIOXptMyAwaDJ2NGgtMnptMyAwaDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlY3VyaXR5VXBkYXRlR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxem0tMSA2LjA1LTEuNDEtMS40MS0zLjU0IDMuNTQtMS40MS0xLjQxLTEuNDEgMS40MUwxMS4wNSAxNSAxNiAxMC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlY3VyaXR5VXBkYXRlV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yek0xMSA3aDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VjdXJpdHlVcGRhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDIxSDd2LTFoMTB2MXptMC0zSDdWNmgxMHYxMnpNNyA0VjNoMTB2MUg3em05IDgtNCA0LTQtNCAxLjQxLTEuNDFMMTEgMTIuMTdWOGgydjQuMTdsMS41OS0xLjU5TDE2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTEuNDEtOC44My04LjgzYy0uMzctLjM3LS44OC0uNTgtMS40MS0uNThINGMtMS4xIDAtMiAuOS0yIDJ2Ny4xN2MwIC41My4yMSAxLjA0LjU5IDEuNDFsOC44MyA4LjgzYy43OC43OCAyLjA1Ljc4IDIuODMgMGw3LjE3LTcuMTdjLjc4LS43OC43OC0yLjA0LS4wMS0yLjgzek0xMi44MyAyMCA0IDExLjE3VjRoNy4xN0wyMCAxMi44MyAxMi44MyAyMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VuZFRvTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA4IDQgNC00IDQtMS40MS0xLjQxTDE4LjE3IDEzSDEzdi0yaDUuMTdsLTEuNTktMS41OUwxOCA4ek03IDEuMDEgMTcgMWMxLjEgMCAyIC45IDIgMnY0aC0yVjZIN3YxMmgxMHYtMWgydjRjMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJWM2MwLTEuMS45LTEuOTkgMi0xLjk5ek03IDIxaDEwdi0xSDd2MXpNNyA0aDEwVjNIN3YxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2V0dGluZ3NTdWdnZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTNjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMW0wLTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem04LjUtMiAxLjA5LTIuNDFMMjIgNS41bC0yLjQxLTEuMDlMMTguNSAybC0xLjA5IDIuNDFMMTUgNS41bDIuNDEgMS4wOUwxOC41IDl6bTIuNzggMy43MkwyMC41IDExbC0uNzggMS43Mi0xLjcyLjc4IDEuNzIuNzguNzggMS43Mi43OC0xLjcyTDIzIDEzLjVsLTEuNzItLjc4ek0xNi4yNSAxNGMwLS4xMiAwLS4yNS0uMDEtLjM3bDEuOTQtMS40Ny0yLjUtNC4zMy0yLjI0Ljk0Yy0uMi0uMTMtLjQyLS4yNi0uNjQtLjM3TDEyLjUgNmgtNWwtLjMgMi40MWMtLjIyLjExLS40My4yNC0uNjQuMzdsLTIuMjQtLjk1LTIuNSA0LjMzIDEuOTQgMS40N2MtLjAxLjEyLS4wMS4yNS0uMDEuMzdzMCAuMjUuMDEuMzdsLTEuOTQgMS40NyAyLjUgNC4zMyAyLjI0LS45NGMuMi4xMy40Mi4yNi42NC4zN2wuMyAyLjRoNWwuMy0yLjQxYy4yMi0uMTEuNDMtLjIzLjY0LS4zN2wyLjI0Ljk0IDIuNS00LjMzLTEuOTQtMS40N2MuMDEtLjExLjAxLS4yNC4wMS0uMzZ6bS0xLjQyIDMuNjQtMS43My0uNzNjLS41Ni42LTEuMyAxLjA0LTIuMTMgMS4yM0wxMC43MyAyMEg5LjI3bC0uMjMtMS44NmMtLjgzLS4xOS0xLjU3LS42My0yLjEzLTEuMjNsLTEuNzMuNzMtLjczLTEuMjcgMS40OS0xLjEzYy0uMTItLjM5LS4xOC0uOC0uMTgtMS4yMyAwLS40My4wNi0uODQuMTgtMS4yM2wtMS40OS0xLjEzLjczLTEuMjcgMS43My43M2MuNTYtLjYgMS4zLTEuMDQgMi4xMy0xLjIzTDkuMjcgOGgxLjQ3bC4yMyAxLjg2Yy44My4xOSAxLjU3LjYzIDIuMTMgMS4yM2wxLjczLS43My43MyAxLjI3LTEuNDkgMS4xM2MuMTIuMzkuMTguOC4xOCAxLjIzIDAgLjQzLS4wNi44NC0uMTggMS4yM2wxLjQ5IDEuMTMtLjczIDEuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXR0aW5nc1N5c3RlbURheWRyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE3SDljLTIuMjEgMC00LTEuNzktNC00YTMuOTggMy45OCAwIDAgMSAzLjIyLTMuOTJBNC41MTQgNC41MTQgMCAwIDEgMTIgN2MxLjk1IDAgMy42NiAxLjI4IDQuMjYgMy4wOSAxLjU4LjM2IDIuNzQgMS43NSAyLjc0IDMuNDEgMCAxLjkzLTEuNTcgMy41LTMuNSAzLjV6bS02Ljc2LTUuOThDNy43NCAxMS4xNSA3IDExLjk5IDcgMTNjMCAxLjEuOSAyIDIgMmg2LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjVoLS44N2wtLjE3LS44NkEyLjQ5NiAyLjQ5NiAwIDAgMCAxMiA5Yy0uOTYgMC0xLjg0LjU3LTIuMjYgMS40NWwtLjI3LjU3aC0uNzN6TTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2LjAxSDNWNC45OWgxOHYxNC4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNoYXJlTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjAyIDE5LjkzdjIuMDJjMi4wMS0uMiAzLjg0LTEgNS4zMi0yLjIxbC0xLjQyLTEuNDNhNy45NDEgNy45NDEgMCAwIDEtMy45IDEuNjJ6TTQuMDMgMTJjMC00LjA1IDMuMDMtNy40MSA2Ljk1LTcuOTNWMi4wNUM1Ljk1IDIuNTggMi4wMyA2Ljg0IDIuMDMgMTJjMCA1LjE2IDMuOTIgOS40MiA4Ljk1IDkuOTV2LTIuMDJjLTMuOTItLjUyLTYuOTUtMy44OC02Ljk1LTcuOTN6TTE5Ljk1IDExaDIuMDJjLS4yLTIuMDEtMS0zLjg0LTIuMjEtNS4zMmwtMS40MyAxLjQzYy44NiAxLjEgMS40NCAyLjQzIDEuNjIgMy44OXpNMTguMzQgNC4yNmE5Ljk4MSA5Ljk4MSAwIDAgMC01LjMyLTIuMjF2Mi4wMmMxLjQ2LjE4IDIuNzkuNzYgMy45IDEuNjJsMS40Mi0xLjQzek0xOC4zMyAxNi45bDEuNDMgMS40MkE5Ljk0OSA5Ljk0OSAwIDAgMCAyMS45NyAxM2gtMi4wMmE3Ljk0MSA3Ljk0MSAwIDAgMS0xLjYyIDMuOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTEuMUMxNiA4LjYxIDE0LjEgNyAxMiA3cy00IDEuNjEtNCA0LjFjMCAxLjY2IDEuMzMgMy42MyA0IDUuOSAyLjY3LTIuMjcgNC00LjI0IDQtNS45em0tNCAuOWExLjA3MSAxLjA3MSAwIDAgMSAwLTIuMTRBMS4wNzEgMS4wNzEgMCAwIDEgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9ydGN1dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTUgNS0xLjQxIDEuNDFMMTUgNy44MyAxNy4xNyAxMEg4Yy0yLjc2IDAtNSAyLjI0LTUgNXY0aDJ2LTRjMC0xLjY1IDEuMzUtMyAzLTNoOS4xN0wxNSAxNC4xN2wtMS40MSAxLjQxTDE1IDE3bDYtNi02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhcjBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjJoMjBWMkwyIDIyem0xOC0ySDYuODNMMjAgNi44M1YyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyNEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAyMmgyMFYyTDIgMjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhckFsdDFCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE0aDN2Nkg1di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXJBbHQyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNGgzdjZINXYtNnptNi01aDN2MTFoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA0aDN2MTZoLTNWNHpNNSAxNGgzdjZINXYtNnptNi01aDN2MTFoLTNWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyQ29ubmVjdGVkTm9JbnRlcm5ldDBCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGgydi04aC0ydjh6bTAgNGgydi0yaC0ydjJ6bS0yLTJ2MkgyTDIyIDJ2NmgtMlY2LjgzTDYuODMgMjBIMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhckNvbm5lY3RlZE5vSW50ZXJuZXQ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOGgydi04aC0ydjh6bTAgNGgydi0yaC0ydjJ6TTIgMjJoMTZWOGg0VjJMMiAyMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbENlbGx1bGFyTm9TaW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjgzIDVIMTd2OS4xMWwyIDJWNWMwLTEuMS0uOS0yLTItMmgtN0w3Ljk0IDUuMDZsMS40MiAxLjQyTDEwLjgzIDV6bTEwLjQzIDE2LjIxTDMuNzkgMy43NCAyLjM4IDUuMTUgNSA3Ljc3VjE5YTIgMiAwIDAgMCAyIDJoMTEuMjNsMS42MiAxLjYyIDEuNDEtMS40MXpNNyAxOVY5Ljc5TDE2LjIzIDE5SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhck5vZGF0YSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTNoLTl2OUgyTDIyIDJ2MTF6bS0xIDIuNDFMMTkuNTkgMTRsLTIuMDkgMi4wOUwxNS40MSAxNCAxNCAxNS40MWwyLjA5IDIuMDlMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxDZWxsdWxhck51bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDYuODNWMjBINi44M0wyMCA2LjgzTTIyIDIgMiAyMmgyMFYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsQ2VsbHVsYXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxIDEtOC4zMSA4LjMxIDguMzEgOC4zek00LjkxIDQuMzYgMy41IDUuNzdsNi4zNiA2LjM3TDEgMjFoMTcuNzNsMiAyIDEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbFdpZmkwQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0ek0yLjkyIDkuMDdDNS41MSA3LjA4IDguNjcgNiAxMiA2czYuNDkgMS4wOCA5LjA4IDMuMDdMMTIgMTguMTdsLTkuMDgtOS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaTRCYXJMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45OCAxMSAyNCA4Ljk4QTE2Ljg4IDE2Ljg4IDAgMCAwIDEyIDRDNy4zMSA0IDMuMDcgNS45IDAgOC45OGw2LjM1IDYuMzZMMTIgMjFsMy4wNS0zLjA1VjE1YzAtLjQ1LjA5LS44OC4yMy0xLjI5LjU0LTEuNTcgMi4wMS0yLjcxIDMuNzctMi43MWgyLjkzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNnYtMWMwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJ2MWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xem0tMSAwaC0ydi0xYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaTRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjAxIDIxLjQ5IDIzLjY0IDdjLS40NS0uMzQtNC45My00LTExLjY0LTRDNS4yOCAzIC44MSA2LjY2LjM2IDdsMTEuNjMgMTQuNDkuMDEuMDEuMDEtLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaUJhZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjF2LTloOC45OUwyNCA4Ljk4ek0xOS41OSAxNGwtMi4wOSAyLjA5LS4zLS4zTDE1LjQxIDE0IDE0IDE1LjQxbDEuNzkgMS43OS4zLjNMMTQgMTkuNTkgMTUuNDEgMjFsMi4wOS0yLjA4TDE5LjU5IDIxIDIxIDE5LjU5bC0yLjA4LTIuMDlMMjEgMTUuNDEgMTkuNTkgMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpQ29ubmVjdGVkTm9JbnRlcm5ldDQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxdi05aDguOTlMMjQgOC45OHpNMTkuNTkgMTRsLTIuMDkgMi4wOS0uMy0uM0wxNS40MSAxNCAxNCAxNS40MWwxLjc5IDEuNzkuMy4zTDE0IDE5LjU5IDE1LjQxIDIxbDIuMDktMi4wOEwxOS41OSAyMSAyMSAxOS41OWwtMi4wOC0yLjA5TDIxIDE1LjQxIDE5LjU5IDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMuNjQgN2MtLjQ1LS4zNC00LjkzLTQtMTEuNjQtNC0xLjMyIDAtMi41NS4xNC0zLjY5LjM4TDE4LjQzIDEzLjUgMjMuNjQgN3pNMy40MSAxLjMxIDIgMi43MmwyLjA1IDIuMDVDMS45MSA1Ljc2LjU5IDYuODIuMzYgN0wxMiAyMS41bDMuOTEtNC44NyAzLjMyIDMuMzIgMS40MS0xLjQxTDMuNDEgMS4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25hbFdpZmlTdGF0dXNiYXI0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2lnbmFsV2lmaVN0YXR1c2JhckNvbm5lY3RlZE5vSW50ZXJuZXQ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThMMTIgMjFsNS01LjAxVjhoNS45MkMxOS45NyA1LjUxIDE2LjE2IDQgMTIgNHpNMTkgMThoMnYyaC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMGgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduYWxXaWZpU3RhdHVzYmFyTnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxIDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNHpNMi45MiA5LjA3QzUuNTEgNy4wOCA4LjY3IDYgMTIgNnM2LjQ5IDEuMDggOS4wOCAzLjA3TDEyIDE4LjE3bC05LjA4LTkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpbUNhcmREb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0IDh2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDJ2MTZINlY4LjgzTDEwLjgzIDRIMTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDEzLTQgNC00LTQgMS40MS0xLjQxTDExIDEzLjE3VjkuMDJMMTMgOXY0LjE3bDEuNTktMS41OUwxNiAxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwbGl0c2NyZWVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0djVINlY0aDEybTAtMkg2Yy0xLjEgMC0yIC45LTIgMnY1YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxM3Y1SDZ2LTVoMTJtMC0ySDZjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c1Njb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA2SDlWNGgydjJ6bTQtMmgtMnYyaDJWNHpNOSAxNGgydi0ySDl2MnptMTAtNFY4aC0ydjJoMnptMCA0di0yaC0ydjJoMnptLTYgMGgydi0yaC0ydjJ6bTYtMTBoLTJ2MmgyVjR6bS02IDRWNmgtMnYyaDJ6bS02IDJWOGgyVjZIN1Y0SDV2MTZoMnYtOGgydi0ySDd6bTggMmgydi0yaC0ydjJ6bS00LTJ2Mmgydi0yaC0yek05IDh2MmgyVjhIOXptNCAyaDJWOGgtMnYyem0yLTR2MmgyVjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTc2lkQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA1LjQ3IDEyIDEyIDcuNjIgNy42MiAzIDExVjguNTJMNy44MyA1bDQuMzggNC4zOEwyMSAzdjIuNDd6TTIxIDE1aC00LjdsLTQuMTcgMy4zNEw2IDEyLjQxbC0zIDIuMTNWMTdsMi44LTIgNi4yIDYgNS00aDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9yYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIwaDIwdi00SDJ2NHptMi0zaDJ2Mkg0di0yek0yIDR2NGgyMFY0SDJ6bTQgM0g0VjVoMnYyem0tNCA3aDIwdi00SDJ2NHptMi0zaDJ2Mkg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Rvcm0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkzIDhDMTYuNzIgNC4xOCAxMS44MiAyLjg3IDggNS4wN2MtMS40MS44Mi0yLjQ4IDItMy4xNiAzLjM3LS4xMy0yLjIuMjItNC40IDEuMDItNi40NEgzLjc0QzIuMiA2LjQ5IDIuNTIgMTEuNTggNS4wNyAxNmE3Ljk2IDcuOTYgMCAwIDAgNC44NiAzLjcyYzEuOTguNTMgNC4xNi4zMSA2LjA3LS43OSAxLjQxLS44MiAyLjQ4LTIgMy4xNi0zLjM3LjEzIDIuMi0uMjEgNC40LTEuMDEgNi40NGgyLjExYzEuNTMtNC40OSAxLjIyLTkuNTgtMS4zMy0xNHpNMTUgMTcuMkE2LjAxMiA2LjAxMiAwIDAgMSA2LjggMTVjLS4xMS0uMi0uMjEtLjQtLjMtLjYtMS4yLTIuNzYtLjE3LTYuMDYgMi41LTcuNiAyLjg2LTEuNjUgNi41NC0uNjcgOC4yIDIuMi4xMS4yLjIxLjQuMy42IDEuMiAyLjc2LjE3IDYuMDYtMi41IDcuNnpNMTIgMTBjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMmMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdW1tYXJpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDNINWMtMS4xIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMS45OSAySDE5YzEuMSAwIDItLjkgMi0yVjlsLTYtNnpNNSAxOVY1aDl2NWg1djlINXpNOSA4YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6bTAgNGMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxem0wIDRjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5c3RlbVNlY3VyaXR5VXBkYXRlR29vZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxem0tMSA2LjA1LTEuNDEtMS40MS0zLjU0IDMuNTQtMS40MS0xLjQxLTEuNDEgMS40MUwxMS4wNSAxNSAxNiAxMC4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5c3RlbVNlY3VyaXR5VXBkYXRlV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTVoMnYyaC0yek0xMSA3aDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMjFIN3YtMWgxMHYxem0wLTNIN1Y2aDEwdjEyem0wLTE0SDdWM2gxMHYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3lzdGVtU2VjdXJpdHlVcGRhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEuMDEgNyAxYy0xLjEgMC0yIC45LTIgMnYxOGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE3IDIxSDd2LTFoMTB2MXptMC0zSDdWNmgxMHYxMnpNNyA0VjNoMTB2MUg3em05IDgtNCA0LTQtNCAxLjQxLTEuNDFMMTEgMTIuMTdWOGgydjQuMTdsMS41OS0xLjU5TDE2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em00IDE4SDZWNGg3djVoNXYxMXptLTkuMTgtNi45NUw3LjQgMTQuNDYgMTAuOTQgMThsNS42Ni01LjY2LTEuNDEtMS40MS00LjI0IDQuMjQtMi4xMy0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGhlcm1vc3RhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTNWNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djhjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wOS0yLTR6bS00LThjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxaC0xdjFoMXYyaC0xdjFoMXYyaC0yVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lcjEwU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOHY4aC0zVjhoM20wLTNoLTNDOC4zNCA1IDcgNi4zNCA3IDh2OGMwIDEuNjYgMS4zNCAzIDMgM2gzYzEuNjYgMCAzLTEuMzQgMy0zVjhjMC0xLjY2LTEuMzQtMy0zLTN6TTEgOGgydjExaDNWNUgxdjN6bTE3LjUgM2MtLjgzIDAtMS41LjY4LTEuNSAxLjV2MmMwIC44Mi42NyAxLjUgMS41IDEuNUgyMXYxaC00djJoNC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMmMwLS44My0uNjctMS41LTEuNS0xLjVIMTl2LTFoNHYtMmgtNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGltZXIzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTF2MmgtNHYxaDIuNWMuODMgMCAxLjUuNjggMS41IDEuNXYyYzAgLjgzLS42NyAxLjUtMS41IDEuNUgxNXYtMmg0di0xaC0yLjVjLS44MiAwLTEuNS0uNjgtMS41LTEuNXYtMmMwLS44Mi42OC0xLjUgMS41LTEuNUgyMXpNNCA1djNoNnYyLjVINHYzaDZWMTZINHYzaDZjMS42NiAwIDMtMS4zNCAzLTN2LTEuOWEyLjEgMi4xIDAgMCAwLTIuMS0yLjFBMi4xIDIuMSAwIDAgMCAxMyA5LjlWOGMwLTEuNjYtMS4zNC0zLTMtM0g0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVuZ3N0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE5aDJ2M2gtMnpNMiAxMWgzdjJIMnpNMTkgMTFoM3YyaC0zek0xNS44OTQgMTcuODAxbDEuNDA3LTEuNDA3IDIuMTIyIDIuMTIyLTEuNDA4IDEuNDA3ek00LjU4NCAxOC41MDlsMi4xMjEtMi4xMjIgMS40MDggMS40MDctMi4xMjIgMi4xMjJ6TTE1IDguMDJWM0g5djUuMDJjLTEuMjEuOTItMiAyLjM1LTIgMy45OCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01YzAtMS42My0uNzktMy4wNi0yLTMuOTh6TTExIDVoMnYyLjFjLS4zMi0uMDYtLjY2LS4xLTEtLjFzLS42OC4wNC0xIC4xVjV6bTEgMTBjLTEuNjUgMC0zLTEuMzUtMy0zczEuMzUtMyAzLTMgMyAxLjM1IDMgMy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXNiT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgOGg0djRoLTF2MmMwIC4zNC0uMDguNjYtLjIzLjk0TDE2IDEzLjE3VjEyaC0xVjh6bS00IC4xNyAyIDJWNmgybC0zLTQtMyA0aDJ2Mi4xN3pNMTMgMTZ2Mi4yOGMuNi4zNCAxIC45OCAxIDEuNzIgMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yYzAtLjc0LjQtMS4zNyAxLTEuNzJWMTZIOGMtMS4xMSAwLTItLjg5LTItMnYtMi4yOGMtLjYtLjM0LTEtLjk4LTEtMS43MiAwLS41OS4yNi0xLjEzLjY4LTEuNDlMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNDEgMS40MS02LjYtNi42SDEzem0tMi0ydi0uMTdsLTIuNTEtMi41MWMtLjE0LjE2LS4zMS4yOS0uNDkuNFYxNGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA3djRoMXYyaC0zVjVoMmwtMy00LTMgNGgydjhIOHYtMi4wN2MuNy0uMzcgMS4yLTEuMDggMS4yLTEuOTMgMC0xLjIxLS45OS0yLjItMi4yLTIuMlM0LjggNy43OSA0LjggOWMwIC44NS41IDEuNTYgMS4yIDEuOTNWMTNjMCAxLjExLjg5IDIgMiAyaDN2My4wNWMtLjcxLjM3LTEuMiAxLjEtMS4yIDEuOTVhMi4yIDIuMiAwIDAgMCA0LjQgMGMwLS44NS0uNDktMS41OC0xLjItMS45NVYxNWgzYzEuMTEgMCAyLS44OSAyLTJ2LTJoMVY3aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2FsbHBhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDRoN1YySDRjLTEuMSAwLTIgLjktMiAydjdoMlY0em02IDktNCA1aDEybC0zLTQtMi4wMyAyLjcxTDEwIDEzem03LTQuNWMwLS44My0uNjctMS41LTEuNS0xLjVTMTQgNy42NyAxNCA4LjVzLjY3IDEuNSAxLjUgMS41UzE3IDkuMzMgMTcgOC41ek0yMCAyaC03djJoN3Y3aDJWNGMwLTEuMS0uOS0yLTItMnptMCAxOGgtN3YyaDdjMS4xIDAgMi0uOSAyLTJ2LTdoLTJ2N3pNNCAxM0gydjdjMCAxLjEuOSAyIDIgMmg3di0ySDR2LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTggMTRIMjJoLS4wMnpNNS4zNSAxM2MxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40MiAxIDMuMzMgMSAxLjk1IDAgMi4wOS0xIDMuMzMtMSAxLjE5IDAgMS40Ljk4IDMuMzEgMXYtMmMtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDF2MmMxLjkgMCAyLjE3LTEgMy4zNS0xem0xMy4zMiAyYy0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4xIDEtMy4zNCAxLTEuMjQgMC0xLjM4LTEtMy4zMy0xLTEuOTUgMC0yLjEgMS0zLjM0IDF2MmMxLjk1IDAgMi4xMS0xIDMuMzQtMSAxLjI0IDAgMS4zOCAxIDMuMzMgMSAxLjk1IDAgMi4xLTEgMy4zNC0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTQgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxdi0yYy0xLjI0IDAtMS4zOC0xLTMuMzMtMXpNNS4zNSA5YzEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA5LTEgMy4zMy0xIDEuMTkgMCAxLjQuOTggMy4zMSAxVjhjLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xQzMuMzggNyAzLjI0IDggMiA4djJjMS45IDAgMi4xNy0xIDMuMzUtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZGdldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjY2IDQuNTIgMi44MyAyLjgzLTIuODMgMi44My0yLjgzLTIuODMgMi44My0yLjgzTTkgNXY0SDVWNWg0bTEwIDEwdjRoLTR2LTRoNE05IDE1djRINXYtNGg0bTcuNjYtMTMuMzFMMTEgNy4zNCAxNi42NiAxM2w1LjY2LTUuNjYtNS42Ni01LjY1ek0xMSAzSDN2OGg4VjN6bTEwIDEwaC04djhoOHYtOHptLTEwIDBIM3Y4aDh2LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpMUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUzIDE3LjQ2IDEyIDIxbC0zLjUzLTMuNTRjLjktLjkgMi4xNS0xLjQ2IDMuNTMtMS40NnMyLjYzLjU2IDMuNTMgMS40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmkyQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMzLjAzIDAgNS43OCAxLjIzIDcuNzYgMy4yMmwtMi4xMiAyLjEyQTcuOTY3IDcuOTY3IDAgMCAwIDEyIDEzYy0yLjIgMC00LjIuOS01LjY0IDIuMzVsLTIuMTItMi4xMkM2LjIyIDExLjIzIDguOTcgMTAgMTIgMTB6bTAgNmMtMS4zOCAwLTIuNjMuNTYtMy41MyAxLjQ2TDEyIDIxbDMuNTMtMy41NEE0Ljk4IDQuOTggMCAwIDAgMTIgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpQ2FsbGluZzMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjQ5IDQuNWMxLjc5IDAgMy40Mi43MyA0LjU5IDEuOTFsMS4wNi0xLjA2QTcuOTQgNy45NCAwIDAgMCAxNi40OSAzYy0yLjIxIDAtNC4yMS45LTUuNjYgMi4zNGwxLjA2IDEuMDZhNi41NDUgNi41NDUgMCAwIDEgNC42LTEuOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNDkgNmMtMS4zOCAwLTIuNjMuNTYtMy41NCAxLjQ2bDEuMDYgMS4wNmMuNjMtLjYzIDEuNTEtMS4wMyAyLjQ3LTEuMDNzMS44NC4zOSAyLjQ3IDEuMDNsMS4wNi0xLjA2QTQuOTQgNC45NCAwIDAgMCAxNi40OSA2ek0xNi40OSA5Yy0uNTUgMC0xLjA1LjIyLTEuNDEuNTlMMTYuNDkgMTFsMS40MS0xLjQxYy0uMzYtLjM3LS44Ni0uNTktMS40MS0uNTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjIgMTQuODctMy42Ny0uNzNjLS41LS4xLS44My4yLS45LjI3bC0yLjUyIDIuNWMtMi41LTEuNDMtNC41Ny0zLjUtNi02bDIuNS0yLjUyYy4yMy0uMjQuMzMtLjU3LjI3LS45TDkuMTMgMy44Yy0uMDktLjQ2LS41LS44LS45OC0uOEg0Yy0uNTYgMC0xLjAzLjQ3LTEgMS4wMy4xNyAyLjg5IDEuMDUgNS42IDIuNDMgNy45NyAxLjU4IDIuNzMgMy44NSA0Ljk5IDYuNTcgNi41NyAyLjM3IDEuMzcgNS4wOCAyLjI2IDcuOTcgMi40My41NS4wMyAxLjAzLS40MyAxLjAzLTF2LTQuMTVjMC0uNDgtLjM0LS44OS0uOC0uOTh6TTUuMSA1aDIuMjNsLjQ3IDIuMzVMNi4xNyA5Yy0uNTQtMS4zLS45LTIuNjMtMS4wNy00ek0xOSAxOC45Yy0xLjM3LS4xOC0yLjctLjUzLTQtMS4wN2wxLjY1LTEuNjMgMi4zNS40N3YyLjIzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaUNoYW5uZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAzYy0yLjUxIDAtMy43NyA1LjYxLTQuNCAxMC41N0MxMC43OSAxMC42NiA5LjYxIDggOCA4IDQuNDMgOCAzIDIxIDMgMjFoMi4wMWMuNjEtNS4yNyAyLTkuODIgMi45OS0xMC44Ny45OCAxLjA1IDIuMzggNS42MSAyLjk5IDEwLjg3SDEzYy41LTIuNTMgMi02IDMtNnMyLjUgMy41MyAzIDZoMnMtLjUtMTgtNS0xOHptMCAxMGMtLjk5IDAtMS44Mi42Mi0yLjUgMS41LjU3LTQuNzcgMS41NC04LjYyIDIuNS05LjQ0Ljk3LjgxIDEuOTEgNC42NyAyLjQ5IDkuNDNDMTcuODEgMTMuNjIgMTYuOTggMTMgMTYgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpRmluZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDZjNC4xNCAwIDcuODggMS42OCAxMC41OSA0LjM5TDI0IDguOThBMTYuODggMTYuODggMCAwIDAgMTIgNEM3LjMxIDQgMy4wNyA1LjkgMCA4Ljk4TDEyIDIxbDEuNDEtMS40MkwyLjkzIDkuMDhDNS40NSA3LjE2IDguNTkgNiAxMiA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxNGMwLTIuMjQtMS43Ni00LTQtNHMtNCAxLjc2LTQgNCAxLjc2IDQgNCA0Yy43NSAwIDEuNDQtLjIxIDIuMDMtLjU2TDIxLjU5IDIwIDIzIDE4LjU5bC0yLjU2LTIuNTZjLjM1LS41OS41Ni0xLjI4LjU2LTIuMDN6bS00IDJjLTEuMTIgMC0yLS44OC0yLTJzLjg4LTIgMi0yIDIgLjg4IDIgMi0uODggMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTggMTEgMjQgOC45OEExNi44OCAxNi44OCAwIDAgMCAxMiA0QzcuMzEgNCAzLjA3IDUuOSAwIDguOThsNi4zNSA2LjM2TDEyIDIxbDMuMDUtMy4wNVYxNWMwLS40NS4wOS0uODguMjMtMS4yOS41NC0xLjU3IDIuMDEtMi43MSAzLjc3LTIuNzFoMi45M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTZ2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlQYXNzd29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTI0IDguOTgtMi4xMiAyLjEzQzE5LjM1IDguNTcgMTUuODUgNyAxMiA3cy03LjM1IDEuNTctOS44OCA0LjExTDAgOC45OEMzLjA3IDUuOSA3LjMxIDQgMTIgNHM4LjkzIDEuOSAxMiA0Ljk4ek00LjI0IDEzLjIybDIuMTIgMi4xMkE3Ljk2NyA3Ljk2NyAwIDAgMSAxMiAxM2MyLjIgMCA0LjIuOSA1LjY0IDIuMzVsMi4xMi0yLjEyQzE3Ljc4IDExLjIzIDE1LjAzIDEwIDEyIDEwYy0zLjAzIDAtNS43OCAxLjIzLTcuNzYgMy4yMnpNMjQgMjB2M2MwIC41NS0uNDUgMS0xIDFoLTRjLS41NSAwLTEtLjQ1LTEtMXYtM2MwLS41NS40NS0xIDEtMXYtMWMwLTEuMS45LTIgMi0yczIgLjkgMiAydjFjLjU1IDAgMSAuNDUgMSAxem0tMi0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjFoMnYtMXptLTEwLTJjLTEuMzggMC0yLjYzLjU2LTMuNTMgMS40NkwxMiAyMWwzLjUzLTMuNTRBNC45OCA0Ljk4IDAgMCAwIDEyIDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaVRldGhlcmluZ0Vycm9yUm91bmRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMy4zMSAwLTYgMi42OS02IDYgMCAxLjY2LjY4IDMuMTUgMS43NiA0LjI0bDEuNDItMS40MkEzLjkzNCAzLjkzNCAwIDAgMSA4IDEzYzAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjExLS40NSAyLjEtMS4xOCAyLjgybDEuNDIgMS40MkE2LjAwMyA2LjAwMyAwIDAgMCAxOCAxM2MwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMyAyIDcuNDggMiAxM2MwIDIuNzYgMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJBNy45NCA3Ljk0IDAgMCAxIDQgMTNjMC00LjQyIDMuNTgtOCA4LTggMi41MyAwIDQuNzggMS4xNyA2LjI0IDNoMi40MkMxOC45MyA1LjAxIDE1LjcgMyAxMiAzem0wIDhjLTEuMSAwLTIgLjktMiAyIDAgLjU1LjIzIDEuMDUuNTkgMS40MS4zNi4zNi44Ni41OSAxLjQxLjU5czEuMDUtLjIzIDEuNDEtLjU5Yy4zNi0uMzYuNTktLjg2LjU5LTEuNDEgMC0xLjEtLjktMi0yLTJ6bTgtMWgydjZoLTJ2LTZ6bTAgOGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpVGV0aGVyaW5nRXJyb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdjLTMuMzEgMC02IDIuNjktNiA2IDAgMS42Ni42OCAzLjE1IDEuNzYgNC4yNGwxLjQyLTEuNDJBMy45MzQgMy45MzQgMCAwIDEgOCAxM2MwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0YzAgMS4xMS0uNDUgMi4xLTEuMTggMi44MmwxLjQyIDEuNDJBNi4wMDMgNi4wMDMgMCAwIDAgMTggMTNjMC0zLjMxLTIuNjktNi02LTZ6bTAtNEM2LjQ4IDMgMiA3LjQ4IDIgMTNjMCAyLjc2IDEuMTIgNS4yNiAyLjkzIDcuMDdsMS40Mi0xLjQyQTcuOTQgNy45NCAwIDAgMSA0IDEzYzAtNC40MiAzLjU4LTggOC04IDIuNTMgMCA0Ljc4IDEuMTcgNi4yNCAzaDIuNDJDMTguOTMgNS4wMSAxNS43IDMgMTIgM3ptMCA4Yy0xLjEgMC0yIC45LTIgMiAwIC41NS4yMyAxLjA1LjU5IDEuNDEuMzYuMzYuODYuNTkgMS40MS41OXMxLjA1LS4yMyAxLjQxLS41OWMuMzYtLjM2LjU5LS44Ni41OS0xLjQxIDAtMS4xLS45LTItMi0yem04LTFoMnY2aC0ydi02em0wIDhoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2lmaVRldGhlcmluZ09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMmwyLjY5IDIuNjlBOS45NTggOS45NTggMCAwIDAgMiAxM2MwIDIuNzYgMS4xMiA1LjI2IDIuOTMgNy4wN2wxLjQyLTEuNDJhNy45NTcgNy45NTcgMCAwIDEtLjg0LTEwLjMxbDEuNDMgMS40M2E2LjAwMyA2LjAwMyAwIDAgMCAuODIgNy40N2wxLjQyLTEuNDJBMy45MzQgMy45MzQgMCAwIDEgOCAxM2MwLS42My4xNS0xLjIzLjQxLTEuNzZsMS42MSAxLjYxYzAgLjA1LS4wMi4xLS4wMi4xNSAwIC41NS4yMyAxLjA1LjU5IDEuNDEuMzYuMzYuODYuNTkgMS40MS41OS4wNSAwIC4xLS4wMS4xNi0uMDJsNy42MiA3LjYyIDEuNDEtMS40MUwyLjgxIDIuODF6TTE3LjcgMTQuODdjLjE5LS41OS4zLTEuMjIuMy0xLjg3IDAtMy4zMS0yLjY5LTYtNi02LS42NSAwLTEuMjguMS0xLjg3LjNsMS43MSAxLjcxQzExLjg5IDkgMTEuOTUgOSAxMiA5YzIuMjEgMCA0IDEuNzkgNCA0IDAgLjA1IDAgLjExLS4wMS4xNmwxLjcxIDEuNzF6TTEyIDVjNC40MiAwIDggMy41OCA4IDggMCAxLjIyLS4yNyAyLjM3LS43NyAzLjRsMS40OSAxLjQ5QTkuOTUzIDkuOTUzIDAgMCAwIDIyIDEzYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTEuNzggMC0zLjQ0LjQ2LTQuODkgMS4yOGwxLjQ4IDEuNDhDOS42MyA1LjI3IDEwLjc4IDUgMTIgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmlUZXRoZXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNiAyYzAtMy4zMS0yLjY5LTYtNi02cy02IDIuNjktNiA2YzAgMi4yMiAxLjIxIDQuMTUgMyA1LjE5bDEtMS43NGMtMS4xOS0uNy0yLTEuOTctMi0zLjQ1IDAtMi4yMSAxLjc5LTQgNC00czQgMS43OSA0IDRjMCAxLjQ4LS44MSAyLjc1LTIgMy40NWwxIDEuNzRjMS43OS0xLjA0IDMtMi45NyAzLTUuMTl6TTEyIDNDNi40OCAzIDIgNy40OCAyIDEzYzAgMy43IDIuMDEgNi45MiA0Ljk5IDguNjVsMS0xLjczQzUuNjEgMTguNTMgNCAxNS45NiA0IDEzYzAtNC40MiAzLjU4LTggOC04czggMy41OCA4IDhjMCAyLjk2LTEuNjEgNS41My00IDYuOTJsMSAxLjczYzIuOTktMS43MyA1LTQuOTUgNS04LjY1IDAtNS41Mi00LjQ4LTEwLTEwLTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOUg1VjVoOVYzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ2OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTNoMnY0aC0yek03IDEwaDJ2N0g3ek0xMSA3aDJ2MTBoLTJ6TTE5IDVWM2gtMnYyaC0ydjJoMnYyaDJWN2gyVjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA0YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0VjR6bS0yIDEzLjE3TDE4LjgzIDE2SDRWNGgxNnYxMy4xN3pNMTMgNWgtMnY0SDd2Mmg0djRoMnYtNGg0VjloLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGlnbkhvcml6b250YWxDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAyaDJ2NWg4djNoLTh2NGg1djNoLTV2NWgtMnYtNUg2di0zaDV2LTRIM1Y3aDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGlnbkhvcml6b250YWxMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAyMkgyVjJoMnYyMHpNMjIgN0g2djNoMTZWN3ptLTYgN0g2djNoMTB2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGlnbkhvcml6b250YWxSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJoMnYyMGgtMlYyek0yIDEwaDE2VjdIMnYzem02IDdoMTB2LTNIOHYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxpZ25WZXJ0aWNhbEJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDIySDJ2LTJoMjB2MnpNMTAgMkg3djE2aDNWMnptNyA2aC0zdjEwaDNWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFsaWduVmVydGljYWxDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMWgtNVY2aC0zdjVoLTRWM0g3djhIMS44NHYySDd2OGgzdi04aDR2NWgzdi01aDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbGlnblZlcnRpY2FsVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMnYySDJWMmgyMHpNNyAyMmgzVjZIN3YxNnptNy02aDNWNmgtM3YxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFyZWFDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3IDctNS00LTUgNy00LTN2MTNoMThWN2gtNHptMiA5Ljk1LTctNS40NUw4IDE3bC0zLTIuNFYxMWwyLjQ0IDEuODMgNC45Ni02Ljk1TDE2LjMgOUgxOXY3Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0YWNoRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuNSA2djExLjVjMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRWNWEyLjUgMi41IDAgMCAxIDUgMHYxMC41YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xVjZIMTB2OS41YTIuNSAyLjUgMCAwIDAgNSAwVjVjMC0yLjIxLTEuNzktNC00LTRTNyAyLjc5IDcgNXYxMi41YzAgMy4wNCAyLjQ2IDUuNSA1LjUgNS41czUuNS0yLjQ2IDUuNS01LjVWNmgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0YWNoTW9uZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjggMTAuOWMtMi4yNy0uNTktMy0xLjItMy0yLjE1IDAtMS4wOSAxLjAxLTEuODUgMi43LTEuODUgMS43OCAwIDIuNDQuODUgMi41IDIuMWgyLjIxYy0uMDctMS43Mi0xLjEyLTMuMy0zLjIxLTMuODFWM2gtM3YyLjE2Yy0xLjk0LjQyLTMuNSAxLjY4LTMuNSAzLjYxIDAgMi4zMSAxLjkxIDMuNDYgNC43IDQuMTMgMi41LjYgMyAxLjQ4IDMgMi40MSAwIC42OS0uNDkgMS43OS0yLjcgMS43OS0yLjA2IDAtMi44Ny0uOTItMi45OC0yLjFoLTIuMmMuMTIgMi4xOSAxLjc2IDMuNDIgMy42OCAzLjgzVjIxaDN2LTIuMTVjMS45NS0uMzcgMy41LTEuNSAzLjUtMy41NSAwLTIuODQtMi40My0zLjgxLTQuNy00LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvR3JhcGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4wNiA5Ljk0IDEyIDlsMi4wNi0uOTRMMTUgNmwuOTQgMi4wNkwxOCA5bC0yLjA2Ljk0TDE1IDEybC0uOTQtMi4wNnpNNCAxNGwuOTQtMi4wNkw3IDExbC0yLjA2LS45NEw0IDhsLS45NCAyLjA2TDEgMTFsMi4wNi45NEw0IDE0em00LjUtNSAxLjA5LTIuNDFMMTIgNS41IDkuNTkgNC40MSA4LjUgMiA3LjQxIDQuNDEgNSA1LjVsMi40MSAxLjA5TDguNSA5em0tNCAxMS41IDYtNi4wMSA0IDRMMjMgOC45M2wtMS40MS0xLjQxLTcuMDkgNy45Ny00LTRMMyAxOWwxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFyQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloNHYxMUg0ek0xNiAxM2g0djdoLTR6TTEwIDRoNHYxNmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlckFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptOCAxNkg1di02aDZ2NnptMC04SDVWNWg2djZ6bTggOGgtNnYtNmg2djZ6bTAtOGgtNlY1aDZ2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlckJvdHRvbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMUg3djJoMnYtMnptNCA0aC0ydjJoMnYtMnpNOSAzSDd2MmgyVjN6bTQgOGgtMnYyaDJ2LTJ6TTUgM0gzdjJoMlYzem04IDRoLTJ2MmgyVjd6bTQgNGgtMnYyaDJ2LTJ6bS00LThoLTJ2MmgyVjN6bTQgMGgtMnYyaDJWM3ptMiAxMGgydi0yaC0ydjJ6bTAgNGgydi0yaC0ydjJ6TTUgN0gzdjJoMlY3em0xNC00djJoMlYzaC0yem0wIDZoMlY3aC0ydjJ6TTUgMTFIM3YyaDJ2LTJ6TTMgMjFoMTh2LTJIM3Yyem0yLTZIM3YyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyA1aDJWM0g3djJ6bTAgOGgydi0ySDd2MnptMCA4aDJ2LTJIN3Yyem00LTRoMnYtMmgtMnYyem0wIDRoMnYtMmgtMnYyem0tOCAwaDJ2LTJIM3Yyem0wLTRoMnYtMkgzdjJ6bTAtNGgydi0ySDN2MnptMC00aDJWN0gzdjJ6bTAtNGgyVjNIM3Yyem04IDhoMnYtMmgtMnYyem04IDRoMnYtMmgtMnYyem0wLTRoMnYtMmgtMnYyem0wIDhoMnYtMmgtMnYyem0wLTEyaDJWN2gtMnYyem0tOCAwaDJWN2gtMnYyem04LTZ2MmgyVjNoLTJ6bS04IDJoMlYzaC0ydjJ6bTQgMTZoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyem0wLThoMlYzaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJDb2xvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjgxIDguOTQtMy43NS0zLjc1TDQgMTQuMjVWMThoMy43NWw5LjA2LTkuMDZ6TTYgMTZ2LS45Mmw3LjA2LTcuMDYuOTIuOTJMNi45MiAxNkg2ek0xOS43MSA2LjA0YS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0YTEuMDAxIDEuMDAxIDAgMCAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6TTIgMjBoMjB2NEgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVySG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgydi0ySDN2MnpNNSA3SDN2MmgyVjd6TTMgMTdoMnYtMkgzdjJ6bTQgNGgydi0ySDd2MnpNNSAzSDN2MmgyVjN6bTQgMEg3djJoMlYzem04IDBoLTJ2MmgyVjN6bS00IDRoLTJ2MmgyVjd6bTAtNGgtMnYyaDJWM3ptNiAxNGgydi0yaC0ydjJ6bS04IDRoMnYtMmgtMnYyem0tOC04aDE4di0ySDN2MnpNMTkgM3YyaDJWM2gtMnptMCA2aDJWN2gtMnYyem0tOCA4aDJ2LTJoLTJ2MnptNCA0aDJ2LTJoLTJ2MnptNCAwaDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlcklubmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDJ2LTJIM3Yyem00IDBoMnYtMkg3djJ6TTUgN0gzdjJoMlY3ek0zIDE3aDJ2LTJIM3Yyek05IDNIN3YyaDJWM3pNNSAzSDN2MmgyVjN6bTEyIDBoLTJ2MmgyVjN6bTIgNmgyVjdoLTJ2MnptMC02djJoMlYzaC0yem0tNCAxOGgydi0yaC0ydjJ6TTEzIDNoLTJ2OEgzdjJoOHY4aDJ2LThoOHYtMmgtOFYzem02IDE4aDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlckxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDIxaDJ2LTJoLTJ2MnptMC00aDJ2LTJoLTJ2MnptMC0xMmgyVjNoLTJ2MnptMCA0aDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyem0tNCA4aDJ2LTJIN3Yyek03IDVoMlYzSDd2MnptMCA4aDJ2LTJIN3Yyem0tNCA4aDJWM0gzdjE4ek0xOSA5aDJWN2gtMnYyem0tNCAxMmgydi0yaC0ydjJ6bTQtNGgydi0yaC0ydjJ6bTAtMTR2MmgyVjNoLTJ6bTAgMTBoMnYtMmgtMnYyem0wIDhoMnYtMmgtMnYyem0tNC04aDJ2LTJoLTJ2MnptMC04aDJWM2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyT3V0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2MmgyVjd6bTAgNGgtMnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6TTMgM3YxOGgxOFYzSDN6bTE2IDE2SDVWNWgxNHYxNHptLTYtNGgtMnYyaDJ2LTJ6bS00LTRIN3YyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCb3JkZXJSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAyMWgydi0ySDd2MnpNMyA1aDJWM0gzdjJ6bTQgMGgyVjNIN3Yyem0wIDhoMnYtMkg3djJ6bS00IDhoMnYtMkgzdjJ6bTggMGgydi0yaC0ydjJ6bS04LThoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJWN0gzdjJ6bTggOGgydi0yaC0ydjJ6bTQtNGgydi0yaC0ydjJ6bTQtMTB2MThoMlYzaC0yem0tNCAxOGgydi0yaC0ydjJ6bTAtMTZoMlYzaC0ydjJ6bS00IDhoMnYtMmgtMnYyem0wLThoMlYzaC0ydjJ6bTAgNGgyVjdoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlclN0eWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMWgydi0yaC0ydjJ6bTQgMGgydi0yaC0ydjJ6TTcgMjFoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTgtNGgydi0yaC0ydjJ6bTAtNGgydi0yaC0ydjJ6TTMgM3YxOGgyVjVoMTZWM0gzem0xNiA2aDJWN2gtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm9yZGVyVG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDIxaDJ2LTJIN3Yyem0wLThoMnYtMkg3djJ6bTQgMGgydi0yaC0ydjJ6bTAgOGgydi0yaC0ydjJ6bS04LTRoMnYtMkgzdjJ6bTAgNGgydi0ySDN2MnptMC04aDJ2LTJIM3Yyem0wLTRoMlY3SDN2MnptOCA4aDJ2LTJoLTJ2MnptOC04aDJWN2gtMnYyem0wIDRoMnYtMmgtMnYyek0zIDN2MmgxOFYzSDN6bTE2IDE0aDJ2LTJoLTJ2MnptLTQgNGgydi0yaC0ydjJ6TTExIDloMlY3aC0ydjJ6bTggMTJoMnYtMmgtMnYyem0tNC04aDJ2LTJoLTJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJvcmRlclZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDloMlY3SDN2MnptMC00aDJWM0gzdjJ6bTQgMTZoMnYtMkg3djJ6bTAtOGgydi0ySDd2MnptLTQgMGgydi0ySDN2MnptMCA4aDJ2LTJIM3Yyem0wLTRoMnYtMkgzdjJ6TTcgNWgyVjNIN3Yyem0xMiAxMmgydi0yaC0ydjJ6bS04IDRoMlYzaC0ydjE4em04IDBoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyem0wLTEwdjJoMlYzaC0yem0wIDZoMlY3aC0ydjJ6bS00LTRoMlYzaC0ydjJ6bTAgMTZoMnYtMmgtMnYyem0wLThoMnYtMmgtMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnViYmxlQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTBjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem04LjAxLTFjLTEuNjUgMC0zIDEuMzUtMyAzczEuMzUgMyAzIDMgMy0xLjM1IDMtMy0xLjM1LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNMTYuNSAzQzEzLjQ3IDMgMTEgNS40NyAxMSA4LjVzMi40NyA1LjUgNS41IDUuNVMyMiAxMS41MyAyMiA4LjUgMTkuNTMgMyAxNi41IDN6bTAgOWMtMS45MyAwLTMuNS0xLjU3LTMuNS0zLjVTMTQuNTcgNSAxNi41IDUgMjAgNi41NyAyMCA4LjUgMTguNDMgMTIgMTYuNSAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbmRsZXN0aWNrQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDRIN3YySDV2MTJoMnYyaDJ2LTJoMlY2SDlWNHptMCAxMkg3VjhoMnY4ek0xOSA4aC0yVjRoLTJ2NGgtMnY3aDJ2NWgydi01aDJWOHptLTIgNWgtMnYtM2gydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGVja2xpc3RSdGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA3SDJ2Mmg5Vjd6bTAgOEgydjJoOXYtMnptNS4zNC00TDEyLjggNy40NmwxLjQxLTEuNDEgMi4xMiAyLjEyIDQuMjQtNC4yNEwyMiA1LjM0IDE2LjM0IDExem0wIDgtMy41NC0zLjU0IDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0TDIyIDEzLjM0IDE2LjM0IDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hlY2tsaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN2gtOXYyaDlWN3ptMCA4aC05djJoOXYtMnpNNS41NCAxMSAyIDcuNDZsMS40MS0xLjQxIDIuMTIgMi4xMiA0LjI0LTQuMjQgMS40MSAxLjQxTDUuNTQgMTF6bTAgOEwyIDE1LjQ2bDEuNDEtMS40MSAyLjEyIDIuMTIgNC4yNC00LjI0IDEuNDEgMS40MUw1LjU0IDE5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGF0YUFycmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNHYyaDN2MTJoLTN2Mmg1VjR6TTQgMjBoNXYtMkg2VjZoM1Y0SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEYXRhT2JqZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA3djJjMCAuNTUtLjQ1IDEtMSAxSDJ2NGgxYy41NSAwIDEgLjQ1IDEgMXYyYzAgMS42NSAxLjM1IDMgMyAzaDN2LTJIN2MtLjU1IDAtMS0uNDUtMS0xdi0yYzAtMS4zLS44NC0yLjQyLTItMi44M3YtLjM0QzUuMTYgMTEuNDIgNiAxMC4zIDYgOVY3YzAtLjU1LjQ1LTEgMS0xaDNWNEg3QzUuMzUgNCA0IDUuMzUgNCA3ek0yMSAxMGMtLjU1IDAtMS0uNDUtMS0xVjdjMC0xLjY1LTEuMzUtMy0zLTNoLTN2MmgzYy41NSAwIDEgLjQ1IDEgMXYyYzAgMS4zLjg0IDIuNDIgMiAyLjgzdi4zNGMtMS4xNi40MS0yIDEuNTItMiAyLjgzdjJjMCAuNTUtLjQ1IDEtMSAxaC0zdjJoM2MxLjY1IDAgMy0xLjM1IDMtM3YtMmMwLS41NS40NS0xIDEtMWgxdi00aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJhZ0hhbmRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDlINHYyaDE2Vjl6TTQgMTVoMTZ2LTJINHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4Ljg1IDEwLjM5IDEuMDYtMS4wNmMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzTDE4LjUgNS4wOWMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBsLTEuMDYgMS4wNiA0LjI0IDQuMjR6bS00LjI0IDEuNDJMNy40MSAxOUg2di0xLjQxbDcuMTktNy4xOSAxLjQyIDEuNDF6bS0xLjQyLTQuMjVMNCAxNi43NlYyMWg0LjI0bDkuMTktOS4xOS00LjI0LTQuMjV6TTE5IDE3LjVjMCAyLjE5LTIuNTQgMy41LTUgMy41LS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFjMS41NCAwIDMtLjczIDMtMS41IDAtLjQ3LS40OC0uODctMS4yMy0xLjJsMS40OC0xLjQ4YzEuMDcuNjMgMS43NSAxLjQ3IDEuNzUgMi42OHpNNC41OCAxMy4zNUMzLjYxIDEyLjc5IDMgMTIuMDYgMyAxMWMwLTEuOCAxLjg5LTIuNjMgMy41Ni0zLjM2QzcuNTkgNy4xOCA5IDYuNTYgOSA2YzAtLjQxLS43OC0xLTItMS0xLjI2IDAtMS44LjYxLTEuODMuNjQtLjM1LjQxLS45OC40Ni0xLjQuMTJhLjk5Mi45OTIgMCAwIDEtLjE1LTEuMzhDMy43MyA0LjI0IDQuNzYgMyA3IDNzNCAxLjMyIDQgM2MwIDEuODctMS45MyAyLjcyLTMuNjQgMy40N0M2LjQyIDkuODggNSAxMC41IDUgMTFjMCAuMzEuNDMuNiAxLjA3Ljg2bC0xLjQ5IDEuNDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0Tm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTBoMTF2Mkgzdi0yem0wLTJoMTFWNkgzdjJ6bTAgOGg3di0ySDN2MnptMTUuMDEtMy4xMy43MS0uNzFhLjk5Ni45OTYgMCAwIDEgMS40MSAwbC43MS43MWMuMzkuMzkuMzkgMS4wMiAwIDEuNDFsLS43MS43MS0yLjEyLTIuMTJ6bS0uNzEuNzEtNS4zIDUuM1YyMWgyLjEybDUuMy01LjMtMi4xMi0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0QWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTV2MmgxMHYtMkg3em0tNCA2aDE4di0ySDN2MnptMC04aDE4di0ySDN2MnptNC02djJoMTBWN0g3ek0zIDN2MmgxOFYzSDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRBbGlnbkp1c3RpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMTh2LTJIM3Yyem0wLTRoMTh2LTJIM3Yyem0wLTRoMTh2LTJIM3Yyem0wLTRoMThWN0gzdjJ6bTAtNnYyaDE4VjNIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdEFsaWduTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTVIM3YyaDEydi0yem0wLThIM3YyaDEyVjd6TTMgMTNoMTh2LTJIM3Yyem0wIDhoMTh2LTJIM3Yyek0zIDN2MmgxOFYzSDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRBbGlnblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDE4di0ySDN2MnptNi00aDEydi0ySDl2MnptLTYtNGgxOHYtMkgzdjJ6bTYtNGgxMlY3SDl2MnpNMyAzdjJoMThWM0gzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0Qm9sZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNiAxMC43OWMuOTctLjY3IDEuNjUtMS43NyAxLjY1LTIuNzkgMC0yLjI2LTEuNzUtNC00LTRIN3YxNGg3LjA0YzIuMDkgMCAzLjcxLTEuNyAzLjcxLTMuNzkgMC0xLjUyLS44Ni0yLjgyLTIuMTUtMy40MnpNMTAgNi41aDNjLjgzIDAgMS41LjY3IDEuNSAxLjVzLS42NyAxLjUtMS41IDEuNWgtM3YtM3ptMy41IDlIMTB2LTNoMy41Yy44MyAwIDEuNS42NyAxLjUgMS41cy0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRDbGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOFY1SDYuMzlsMyAzaDEuODNsLS41NSAxLjI4IDIuMDkgMi4xTDE0LjIxIDh6TTMuNDEgNC44NiAyIDYuMjdsNi45NyA2Ljk3TDYuNSAxOWgzbDEuNTctMy42NkwxNi43MyAyMWwxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRDb2xvckZpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41NiA4Ljk0IDcuNjIgMCA2LjIxIDEuNDFsMi4zOCAyLjM4LTUuMTUgNS4xNWExLjQ5IDEuNDkgMCAwIDAgMCAyLjEybDUuNSA1LjVjLjI5LjI5LjY4LjQ0IDEuMDYuNDRzLjc3LS4xNSAxLjA2LS40NGw1LjUtNS41Yy41OS0uNTguNTktMS41MyAwLTIuMTJ6TTUuMjEgMTAgMTAgNS4yMSAxNC43OSAxMEg1LjIxek0xOSAxMS41cy0yIDIuMTctMiAzLjVjMCAxLjEuOSAyIDIgMnMyLS45IDItMmMwLTEuMzMtMi0zLjUtMi0zLjV6TTIgMjBoMjB2NEgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0Q29sb3JSZXNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNi4zNmMxLjUzIDIgMy4wOCA0LjQzIDMuNzEgNi4yNGwyLjIzIDIuMjNjLjAzLS4yNy4wNi0uNTUuMDYtLjgzIDAtMy45OC02LTEwLjgtNi0xMC44cy0xLjE4IDEuMzUtMi41IDMuMTlsMS40NCAxLjQ0Yy4zNC0uNTEuNy0xIDEuMDYtMS40N3pNNS40MSA1LjE0IDQgNi41NWwzLjMyIDMuMzJDNi41NSAxMS4zMyA2IDEyLjc5IDYgMTRjMCAzLjMxIDIuNjkgNiA2IDYgMS41MiAwIDIuOS0uNTcgMy45NS0xLjVsMi42MyAyLjYzTDIwIDE5LjcyIDUuNDEgNS4xNHpNMTIgMThjLTIuMjEgMC00LTEuNzktNC00IDAtLjY5LjMyLTEuNjIuODEtMi42NGw1LjcyIDUuNzJjLS43LjU2LTEuNTcuOTItMi41My45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdENvbG9yVGV4dCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMjBoMjB2NEgydi00em0zLjQ5LTNoMi40MmwxLjI3LTMuNThoNS42NUwxNi4wOSAxN2gyLjQyTDEzLjI1IDNoLTIuNUw1LjQ5IDE3em00LjQyLTUuNjEgMi4wMy01Ljc5aC4xMmwyLjAzIDUuNzlIOS45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdEluZGVudERlY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxN2gxMHYtMkgxMXYyem0tOC01IDQgNFY4bC00IDR6bTAgOWgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3ptOCA2aDEwVjdIMTF2MnptMCA0aDEwdi0ySDExdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRJbmRlbnRJbmNyZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyMWgxOHYtMkgzdjJ6TTMgOHY4bDQtNC00LTR6bTggOWgxMHYtMkgxMXYyek0zIDN2MmgxOFYzSDN6bTggNmgxMFY3SDExdjJ6bTAgNGgxMHYtMkgxMXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0SXRhbGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0djNoMi4yMWwtMy40MiA4SDZ2M2g4di0zaC0yLjIxbDMuNDItOEgxOFY0aC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0TGluZVNwYWNpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgN2gyLjVMNSAzLjUgMS41IDdINHYxMEgxLjVMNSAyMC41IDguNSAxN0g2Vjd6bTQtMnYyaDEyVjVIMTB6bTAgMTRoMTJ2LTJIMTB2MnptMC02aDEydi0ySDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRMaXN0QnVsbGV0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTAuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTAtNmMtLjgzIDAtMS41LjY3LTEuNSAxLjVTMy4xNyA3LjUgNCA3LjUgNS41IDYuODMgNS41IDYgNC44MyA0LjUgNCA0LjV6bTAgMTJjLS44MyAwLTEuNS42OC0xLjUgMS41cy42OCAxLjUgMS41IDEuNSAxLjUtLjY4IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41ek03IDE5aDE0di0ySDd2MnptMC02aDE0di0ySDd2MnptMC04djJoMTRWNUg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0TGlzdE51bWJlcmVkUnRsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxN2gydi41aC0xdjFoMXYuNWgtMnYxaDN2LTRoLTN2MXptMS05aDFWNGgtMnYxaDF2M3ptLTEgM2gxLjhMMTggMTMuMXYuOWgzdi0xaC0xLjhsMS44LTIuMVYxMGgtM3Yxek0yIDVoMTR2MkgyVjV6bTAgMTJoMTR2Mkgydi0yem0wLTZoMTR2Mkgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0TGlzdE51bWJlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE3aDJ2LjVIM3YxaDF2LjVIMnYxaDN2LTRIMnYxem0xLTloMVY0SDJ2MWgxdjN6bS0xIDNoMS44TDIgMTMuMXYuOWgzdi0xSDMuMkw1IDEwLjlWMTBIMnYxem01LTZ2MmgxNFY1SDd6bTAgMTRoMTR2LTJIN3Yyem0wLTZoMTR2LTJIN3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0UGFpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRWM2MwLS41NS0uNDUtMS0xLTFINWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZoMXY0SDl2MTFjMCAuNTUuNDUgMSAxIDFoMmMuNTUgMCAxLS40NSAxLTF2LTloOFY0aC0zem0tMiAySDZWNGgxMHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0UXVvdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjYyIDE4aC01LjI0bDItNEgxM1Y2aDh2Ny4yNEwxOC42MiAxOHptLTItMmguNzZMMTkgMTIuNzZWOGgtNHY0aDMuNjJsLTIgNHptLTggMkgzLjM4bDItNEgzVjZoOHY3LjI0TDguNjIgMTh6bS0yLTJoLjc2TDkgMTIuNzZWOEg1djRoMy42MmwtMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0U2hhcGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyA3VjFoLTZ2Mkg3VjFIMXY2aDJ2MTBIMXY2aDZ2LTJoMTB2Mmg2di02aC0yVjdoMnpNMyAzaDJ2MkgzVjN6bTIgMThIM3YtMmgydjJ6bTEyLTJIN3YtMkg1VjdoMlY1aDEwdjJoMnYxMGgtMnYyem00IDJoLTJ2LTJoMnYyek0xOSA1VjNoMnYyaC0yem0tNS4yNyA5aC0zLjQ5bC0uNzMgMkg3Ljg5bDMuNC05aDEuNGwzLjQxIDloLTEuNjNsLS43NC0yem0tMy4wNC0xLjI2aDIuNjFMMTIgOC45MWwtMS4zMSAzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0U2l6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0djNoNXYxMmgzVjdoNVY0SDl6bS02IDhoM3Y3aDN2LTdoM1Y5SDN2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdFN0cmlrZXRocm91Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE5aDR2LTNoLTR2M3pNNSA0djNoNXYzaDRWN2g1VjRINXpNMyAxNGgxOHYtMkgzdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JtYXRUZXh0ZGlyZWN0aW9uTFRvUiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0djRjLTEuMSAwLTItLjktMi0ycy45LTIgMi0ybTgtMkg5QzYuNzkgMiA1IDMuNzkgNSA2czEuNzkgNCA0IDR2NWgyVjRoMnYxMWgyVjRoMlYyem0wIDEydjNINXYyaDEydjNsNC00LTQtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvcm1hdFRleHRkaXJlY3Rpb25SVG9MIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0djRjLTEuMSAwLTItLjktMi0ycy45LTIgMi0ybTgtMmgtOEM3Ljc5IDIgNiAzLjc5IDYgNnMxLjc5IDQgNCA0djVoMlY0aDJ2MTFoMlY0aDJWMnpNOCAxNGwtNCA0IDQgNHYtM2gxMnYtMkg4di0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0VW5kZXJsaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjMy4zMSAwIDYtMi42OSA2LTZWM2gtMi41djhjMCAxLjkzLTEuNTcgMy41LTMuNSAzLjVTOC41IDEyLjkzIDguNSAxMVYzSDZ2OGMwIDMuMzEgMi42OSA2IDYgNnptLTcgMnYyaDE0di0ySDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGdW5jdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRINnYybDYuNSA2TDYgMTh2MmgxMnYtM2gtN2w1LTUtNS01aDdWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDYuOTloM0wxMiAzIDggNi45OWgzdjEwLjAySDhMMTIgMjFsNC0zLjk5aC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGV4YWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjIgM0g2LjhsLTUuMiA5IDUuMiA5aDEwLjRsNS4yLTktNS4yLTl6bS0xLjE1IDE2aC04LjFsLTQuMDQtNyA0LjA0LTdoOC4wOWw0LjA0IDctNC4wMyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlnaGxpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAxNCAzIDN2NWg2di01bDMtM1Y5SDZ2NXptMi0zaDh2Mi4xN2wtMyAzVjIwaC0ydi0zLjgzbC0zLTNWMTF6bTMtOWgydjNoLTJ6TTMuNTAyIDUuODc0IDQuOTE2IDQuNDZsMi4xMjIgMi4xMi0xLjQxNCAxLjQxNXptMTMuNDU4LjcwOCAyLjEyMy0yLjEyIDEuNDEzIDEuNDE2LTIuMTIzIDIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3Jpem9udGFsRGlzdHJpYnV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMjJIMlYyaDJ2MjB6TTIyIDJoLTJ2MjBoMlYyem0tOC41IDVoLTN2MTBoM1Y3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG9yaXpvbnRhbFJ1bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNNCAxMWgxNnYySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRDaGFydE91dGxpbmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE3SDd2LTdoMnY3em00IDBoLTJWN2gydjEwem00IDBoLTJ2LTRoMnY0em0yIDJINVY1aDE0djE0em0wLTE2SDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluc2VydENoYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTcgMTBoMnY3SDd6bTQtM2gydjEwaC0yem00IDZoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zZXJ0Q29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNHYxMy4xN0wxOC44MyAxNkg0VjRoMTZtMC0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRsNCA0VjRjMC0xLjEtLjktMi0yLTJ6bS0yIDEwSDZ2MmgxMnYtMnptMC0zSDZ2MmgxMlY5em0wLTNINnYyaDEyVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnREcml2ZUZpbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnpNNiAyMFY0aDd2NWg1djExSDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRFbW90aWNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0zLjUtOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTYuMzMgOCAxNS41IDggMTQgOC42NyAxNCA5LjVzLjY3IDEuNSAxLjUgMS41em0tNyAwYy44MyAwIDEuNS0uNjcgMS41LTEuNVM5LjMzIDggOC41IDggNyA4LjY3IDcgOS41IDcuNjcgMTEgOC41IDExem0zLjUgNi41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zZXJ0SW52aXRhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YTIgMiAwIDAgMCAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjloMTR2MTB6bTAtMTJINVY1aDE0djJ6bS0yIDVoLTV2NWg1di01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW5zZXJ0TGluayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMy45IDEyYzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xaDRWN0g3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1aDR2LTEuOUg3Yy0xLjcxIDAtMy4xLTEuMzktMy4xLTMuMXpNOCAxM2g4di0ySDh2MnptOS02aC00djEuOWg0YzEuNzEgMCAzLjEgMS4zOSAzLjEgMy4xcy0xLjM5IDMuMS0zLjEgMy4xaC00VjE3aDRjMi43NiAwIDUtMi4yNCA1LTVzLTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRQYWdlQnJlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMEg2di0zSDR2M2MwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi0zaC0ydjN6TTYgNGg3djVoNXYyaDJWOGwtNi02SDZjLTEuMSAwLTIgLjktMiAydjdoMlY0ek05IDEzaDZ2Mkg5ek0xNyAxM2g2djJoLTZ6TTEgMTNoNnYySDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbnNlcnRQaG90byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQuODYgOC44Ni0zIDMuODdMOSAxMy4xNCA2IDE3aDEybC0zLjg2LTUuMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaW5lQXhpcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDcuNDMtMS40MS0xLjQxLTQuMDMgNC41M0w5LjUgNCAyIDExLjUxbDEuNSAxLjUgNi4xNC02LjE1IDUuNTkgNS4xOC0xLjczIDEuOTUtNC00TDIgMTcuNSAzLjUgMTlsNi02LjAxIDQgNCAzLjE5LTMuNTkgMy45IDMuNjFMMjIgMTUuNmwtMy45OC0zLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaW5lYXJTY2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjUgOS41Yy0xLjAzIDAtMS45LjYyLTIuMjkgMS41aC0yLjkyYy0uMzktLjg4LTEuMjYtMS41LTIuMjktMS41cy0xLjkuNjItMi4yOSAxLjVINi43OWMtLjM5LS44OC0xLjI2LTEuNS0yLjI5LTEuNWEyLjUgMi41IDAgMCAwIDAgNWMxLjAzIDAgMS45LS42MiAyLjI5LTEuNWgyLjkyYy4zOS44OCAxLjI2IDEuNSAyLjI5IDEuNXMxLjktLjYyIDIuMjktMS41aDIuOTJjLjM5Ljg4IDEuMjYgMS41IDIuMjkgMS41YTIuNSAyLjUgMCAwIDAgMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFyZ2luIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptMTYgMTZINVY1aDE0djE0ek0xMSA3aDJ2MmgtMlY3ek03IDdoMnYySDdWN3ptOCAwaDJ2MmgtMlY3em0tOCA0aDJ2Mkg3di0yem00IDBoMnYyaC0ydi0yem00IDBoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVyZ2VUeXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAyMC40MSAxOC40MSAxOSAxNSAxNS41OSAxMy41OSAxNyAxNyAyMC40MXpNNy41IDhIMTF2NS41OUw1LjU5IDE5IDcgMjAuNDFsNi02VjhoMy41TDEyIDMuNSA3LjUgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVDb21tZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNy4xNyAxOC44MyAxNkg0VjRoMTZ2MTMuMTd6TTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDRWNGMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGVFZGl0T3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNVYyMXptMi0yLjkyIDkuMDYtOS4wNi45Mi45Mkw1LjkyIDE5SDV2LS45MnpNMTguMzcgMy4yOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzYS45OTYuOTk2IDAgMCAwIDAtMS40MWwtMi4zNC0yLjM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZUVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1TDMgMTcuMjVWMjF6bTItMi45MiA5LjA2LTkuMDYuOTIuOTJMNS45MiAxOUg1di0uOTJ6TTE4LjM3IDMuMjlhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjA2IDkuMDIuOTIuOTJMNS45MiAxOUg1di0uOTJsOS4wNi05LjA2TTE3LjY2IDNjLS4yNSAwLS41MS4xLS43LjI5bC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGMtLjItLjItLjQ1LS4yOS0uNzEtLjI5em0tMy42IDMuMTlMMyAxNy4yNVYyMWgzLjc1TDE3LjgxIDkuOTRsLTMuNzUtMy43NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbmV0aXphdGlvbk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptLjMxLTguODZjLTEuNzctLjQ1LTIuMzQtLjk0LTIuMzQtMS42NyAwLS44NC43OS0xLjQzIDIuMS0xLjQzIDEuMzggMCAxLjkuNjYgMS45NCAxLjY0aDEuNzFjLS4wNS0xLjM0LS44Ny0yLjU3LTIuNDktMi45N1Y1SDEwLjl2MS42OWMtMS41MS4zMi0yLjcyIDEuMy0yLjcyIDIuODEgMCAxLjc5IDEuNDkgMi42OSAzLjY2IDMuMjEgMS45NS40NiAyLjM0IDEuMTUgMi4zNCAxLjg3IDAgLjUzLS4zOSAxLjM5LTIuMSAxLjM5LTEuNiAwLTIuMjMtLjcyLTIuMzItMS42NEg4LjA0Yy4xIDEuNyAxLjM2IDIuNjYgMi44NiAyLjk3VjE5aDIuMzR2LTEuNjdjMS41Mi0uMjkgMi43Mi0xLjE2IDIuNzMtMi43Ny0uMDEtMi4yLTEuOS0yLjk2LTMuNjYtMy40MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbmV5T2ZmQ3NyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgNi45YzEuNzggMCAyLjQ0Ljg1IDIuNSAyLjFoMi4yMWMtLjA3LTEuNzItMS4xMi0zLjMtMy4yMS0zLjgxVjNoLTN2Mi4xNmMtLjM5LjA4LS43NS4yMS0xLjEuMzZsMS41MSAxLjUxYy4zMi0uMDguNjktLjEzIDEuMDktLjEzek01LjQ3IDMuOTIgNC4wNiA1LjMzIDcuNSA4Ljc3YzAgMi4wOCAxLjU2IDMuMjIgMy45MSAzLjkxbDMuNTEgMy41MWMtLjM0LjQ5LTEuMDUuOTEtMi40Mi45MS0yLjA2IDAtMi44Ny0uOTItMi45OC0yLjFoLTIuMmMuMTIgMi4xOSAxLjc2IDMuNDIgMy42OCAzLjgzVjIxaDN2LTIuMTVjLjk2LS4xOCAxLjgzLS41NSAyLjQ2LTEuMTJsMi4yMiAyLjIyIDEuNDEtMS40MUw1LjQ3IDMuOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb25leU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSA2LjljMS43OCAwIDIuNDQuODUgMi41IDIuMWgyLjIxYy0uMDctMS43Mi0xLjEyLTMuMy0zLjIxLTMuODFWM2gtM3YyLjE2Yy0uMzkuMDgtLjc1LjIxLTEuMS4zNmwxLjUxIDEuNTFjLjMyLS4wOC42OS0uMTMgMS4wOS0uMTN6TTUuNDcgMy45MiA0LjA2IDUuMzMgNy41IDguNzdjMCAyLjA4IDEuNTYgMy4yMiAzLjkxIDMuOTFsMy41MSAzLjUxYy0uMzQuNDktMS4wNS45MS0yLjQyLjkxLTIuMDYgMC0yLjg3LS45Mi0yLjk4LTIuMWgtMi4yYy4xMiAyLjE5IDEuNzYgMy40MiAzLjY4IDMuODNWMjFoM3YtMi4xNWMuOTYtLjE4IDEuODMtLjU1IDIuNDYtMS4xMmwyLjIyIDIuMjIgMS40MS0xLjQxTDUuNDcgMy45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdmVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxMWMwIDIuNDUgMS43NiA0LjQ3IDQuMDggNC45MWwtMS40OS0xLjQ5TDcgMTNsNCA0LjAxTDcgMjFsLTEuNDEtMS40MSAxLjU4LTEuNTh2LS4wNkE3LjAwNyA3LjAwNyAwIDAgMSAxIDExYzAtMy44NyAzLjEzLTcgNy03aDN2Mkg4Yy0yLjc2IDAtNSAyLjI0LTUgNXpNMjIgMTFWNGgtOXY3aDl6bS0yLTJoLTVWNmg1djN6TTEzIDEzaDl2N2gtOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTNjMC0yLjQ1IDEuNzYtNC40NyA0LjA4LTQuOTFsLTEuNDkgMS41TDcgMTFsNC00LjAxTDcgMyA1LjU5IDQuNDFsMS41OCAxLjU4di4wNkE3LjAwNyA3LjAwNyAwIDAgMCAxIDEzYzAgMy44NyAzLjEzIDcgNyA3aDN2LTJIOGMtMi43NiAwLTUtMi4yNC01LTV6TTEzIDEzdjdoOXYtN2gtOXptNyA1aC01di0zaDV2M3pNMTMgNGg5djdoLTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNdWx0aWxpbmVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgNi45Mi0xLjQxLTEuNDEtMi44NSAzLjIxQzE1LjY4IDYuNCAxMi44MyA1IDkuNjEgNSA2LjcyIDUgNC4wNyA2LjE2IDIgOGwxLjQyIDEuNDJDNS4xMiA3LjkzIDcuMjcgNyA5LjYxIDdjMi43NCAwIDUuMDkgMS4yNiA2Ljc3IDMuMjRsLTIuODggMy4yNC00LTRMMiAxNi45OWwxLjUgMS41IDYtNi4wMSA0IDQgNC4wNS00LjU1Yy43NSAxLjM1IDEuMjUgMi45IDEuNDQgNC41NUgyMWMtLjIyLTIuMy0uOTUtNC4zOS0yLjA0LTYuMTRMMjIgNi45MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMS4wMSAzIDExdjJoMTh6TTMgMTZoMTJ2Mkgzek0yMSA2SDN2Mi4wMUwyMSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTnVtYmVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjUgMTAgLjUtMmgtNGwxLTRoLTJsLTEgNGgtNGwxLTRoLTJMOSA4SDVsLS41IDJoNGwtMSA0aC00TDMgMTZoNGwtMSA0aDJsMS00aDRsLTEgNGgybDEtNGg0bC41LTJoLTRsMS00aDR6bS03IDRoLTRsMS00aDRsLTEgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhZGRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDV2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDVjLTEuMSAwLTIgLjktMiAyem0xNiAxNEg1VjVoMTR2MTR6TTExIDdoMnYyaC0yVjd6TTcgN2gydjJIN1Y3em04IDBoMnYyaC0yVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZW50YWdvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjYzIDkuNzggMTYuNTYgMTlINy40NEw0LjM3IDkuNzggMTIgNC40NGw3LjYzIDUuMzR6TTIgOWw0IDEyaDEybDQtMTItMTAtN0wyIDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaWVDaGFydE91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyem0xIDIuMDdjMy42MS40NSA2LjQ4IDMuMzMgNi45MyA2LjkzSDEzVjQuMDd6TTQgMTJjMC00LjA2IDMuMDctNy40NCA3LTcuOTN2MTUuODdjLTMuOTMtLjUtNy0zLjg4LTctNy45NHptOSA3LjkzVjEzaDYuOTNBOC4wMDIgOC4wMDIgMCAwIDEgMTMgMTkuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaWVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptNy45MyA5SDEzVjQuMDdjMy42MS40NSA2LjQ4IDMuMzIgNi45MyA2Ljkzek00IDEyYzAtNC4wNyAzLjA2LTcuNDQgNy03LjkzdjE1Ljg2Yy0zLjk0LS40OS03LTMuODYtNy03Ljkzem05IDcuOTNWMTNoNi45M0E4LjAwMiA4LjAwMiAwIDAgMSAxMyAxOS45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvbHlsaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTZ2MS4yNmwtNi0zdi0zLjE3TDExLjcgOEgxNlYyaC02djQuOUw3LjMgMTBIM3Y2aDVsNyAzLjVWMjJoNnYtNmgtNnpNMTIgNGgydjJoLTJWNHpNNyAxNEg1di0yaDJ2MnptMTIgNmgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb3N0QWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTkuMjJINVY3aDdWNUg1Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi03aC0ydjcuMjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJoLTJ2M2gtM2MuMDEuMDEgMCAyIDAgMmgzdjIuOTljLjAxLjAxIDIgMCAyIDBWN2gzVjVoLTNWMnpNNyA5aDh2Mkg3ek03IDEydjJoOHYtMmgtM3pNNyAxNWg4djJIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVB1Ymxpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNGgxNHYySDV6bTAgMTBoNHY2aDZ2LTZoNGwtNy03LTcgN3ptOC0ydjZoLTJ2LTZIOS44M0wxMiA5LjgzIDE0LjE3IDEySDEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUXVlcnlTdGF0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljg4IDE4LjQ3Yy40NC0uNy43LTEuNTEuNy0yLjM5IDAtMi40OS0yLjAxLTQuNS00LjUtNC41cy00LjUgMi4wMS00LjUgNC41IDIuMDEgNC41IDQuNDkgNC41Yy44OCAwIDEuNy0uMjYgMi4zOS0uN0wyMS41OCAyMyAyMyAyMS41OGwtMy4xMi0zLjExem0tMy44LjExYTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1em0tLjM2LTguNWMtLjc0LjAyLTEuNDUuMTgtMi4xLjQ1bC0uNTUtLjgzLTMuOCA2LjE4LTMuMDEtMy41Mi0zLjYzIDUuODFMMSAxN2w1LTggMyAzLjVMMTMgNmwyLjcyIDQuMDh6bTIuNTkuNWMtLjY0LS4yOC0xLjMzLS40NS0yLjA1LS40OUwyMS4zOCAyIDIzIDMuMThsLTQuNjkgNy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVjdGFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0djE2aDIwVjRIMnptMTggMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NhdHRlclBsb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMThjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0em0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem00LTJjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0em0wLTZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem01LjYgMTcuNmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNCA0IDEuNzkgNCA0LTEuNzkgNC00IDR6bTAtNmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY2hlbWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5djJoLTNWOUg4LjVWN0gxMVYxSDR2NmgyLjV2Mkg0djZoMi41djJINHY2aDd2LTZIOC41di0ySDExdi0yaDN2Mmg3VjloLTd6TTYgM2gzdjJINlYzem0zIDE4SDZ2LTJoM3Yyem0wLThINnYtMmgzdjJ6bTEwIDBoLTN2LTJoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVsNC00IDQgNCA2LTZ2NnptMC04LjUtNiA2LTQtNC00IDRWNWgxNHY1LjV6TTEzLjUgOVY2SDEydjZoMS41em0zLjcgMy0yLTMgMi0zaC0xLjdsLTIgMyAyIDN6TTExIDEwLjVIOC41di0uNzVIMTFWNkg3djEuNWgyLjV2Ljc1SDdWMTJoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNoYXBlTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTFjMi43NiAwIDUtMi4yNCA1LTVTOC43NiAxIDYgMSAxIDMuMjQgMSA2czIuMjQgNSA1IDV6bTAtOGMxLjY1IDAgMyAxLjM1IDMgM1M3LjY1IDkgNiA5IDMgNy42NSAzIDZzMS4zNS0zIDMtM3pNMjEgMTRoLTVjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmg1YzEuMSAwIDItLjkgMi0ydi01YzAtMS4xLS45LTItMi0yem0wIDdoLTV2LTVoNXY1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy43MSA3LjdjLjQuMTkuODMuMyAxLjI5LjMgMS42NSAwIDMtMS4zNSAzLTNzLTEuMzUtMy0zLTMtMyAxLjM1LTMgM2MwIC40Ni4xMS44OS4zIDEuMjlMNi4yOSAxNi4zYy0uNC0uMTktLjgzLS4zLTEuMjktLjMtMS42NSAwLTMgMS4zNS0zIDNzMS4zNSAzIDMgMyAzLTEuMzUgMy0zYzAtLjQ2LS4xMS0uODktLjMtMS4yOUwxNy43MSA3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG9ydFRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDloMTZ2Mkg0Vjl6bTAgNGgxMHYySDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaG93Q2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMuNSAxOC40OSA2LTYuMDEgNCA0TDIyIDYuOTJsLTEuNDEtMS40MS03LjA5IDcuOTctNC00TDIgMTYuOTlsMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwYWNlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5djRINlY5SDR2NmgxNlY5aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAzdjE4aDE4VjNIM3ptMTYgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhY2tlZExpbmVDaGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIgMTkuOTkgNy41LTcuNTEgNCA0IDcuMDktNy45N0wyMiA5LjkybC04LjUgOS41Ni00LTQtNiA2LjAxLTEuNS0xLjV6bTEuNS00LjUgNi02LjAxIDQgNEwyMiAzLjkybC0xLjQxLTEuNDEtNy4wOSA3Ljk3LTQtNEwyIDEzLjk5bDEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdHJpa2V0aHJvdWdoUyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMjQgOC43NWMtLjI2LS40OC0uMzktMS4wMy0uMzktMS42NyAwLS42MS4xMy0xLjE2LjQtMS42Ny4yNi0uNS42My0uOTMgMS4xMS0xLjI5YTUuNzMgNS43MyAwIDAgMSAxLjctLjgzYy42Ni0uMTkgMS4zOS0uMjkgMi4xOC0uMjkuODEgMCAxLjU0LjExIDIuMjEuMzQuNjYuMjIgMS4yMy41NCAxLjY5Ljk0LjQ3LjQuODMuODggMS4wOCAxLjQzcy4zOCAxLjE1LjM4IDEuODFoLTMuMDFjMC0uMzEtLjA1LS41OS0uMTUtLjg1LS4wOS0uMjctLjI0LS40OS0uNDQtLjY4LS4yLS4xOS0uNDUtLjMzLS43NS0uNDQtLjMtLjEtLjY2LS4xNi0xLjA2LS4xNi0uMzkgMC0uNzQuMDQtMS4wMy4xM3MtLjUzLjIxLS43Mi4zNmMtLjE5LjE2LS4zNC4zNC0uNDQuNTUtLjEuMjEtLjE1LjQzLS4xNS42NiAwIC40OC4yNS44OC43NCAxLjIxLjM4LjI1Ljc3LjQ4IDEuNDEuN0g3LjM5Yy0uMDUtLjA4LS4xMS0uMTctLjE1LS4yNXpNMjEgMTJ2LTJIM3YyaDkuNjJjLjE4LjA3LjQuMTQuNTUuMi4zNy4xNy42Ni4zNC44Ny41MXMuMzUuMzYuNDMuNTdjLjA3LjIuMTEuNDMuMTEuNjkgMCAuMjMtLjA1LjQ1LS4xNC42Ni0uMDkuMi0uMjMuMzgtLjQyLjUzLS4xOS4xNS0uNDIuMjYtLjcxLjM1LS4yOS4wOC0uNjMuMTMtMS4wMS4xMy0uNDMgMC0uODMtLjA0LTEuMTgtLjEzcy0uNjYtLjIzLS45MS0uNDJjLS4yNS0uMTktLjQ1LS40NC0uNTktLjc1cy0uMjUtLjc2LS4yNS0xLjIxSDYuNGMwIC41NS4wOCAxLjEzLjI0IDEuNThzLjM3Ljg1LjY1IDEuMjFjLjI4LjM1LjYuNjYuOTguOTIuMzcuMjYuNzguNDggMS4yMi42NS40NC4xNy45LjMgMS4zOC4zOS40OC4wOC45Ni4xMyAxLjQ0LjEzLjggMCAxLjUzLS4wOSAyLjE4LS4yOHMxLjIxLS40NSAxLjY3LS43OWMuNDYtLjM0LjgyLS43NyAxLjA3LTEuMjdzLjM4LTEuMDcuMzgtMS43MWMwLS42LS4xLTEuMTQtLjMxLTEuNjEtLjA1LS4xMS0uMTEtLjIzLS4xNy0uMzNIMjFWMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdWJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOGgtMnYxaDN2MWgtNHYtMmMwLS41NS40NS0xIDEtMWgydi0xaC0zdi0xaDNjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek01Ljg4IDE4aDIuNjZsMy40LTUuNDJoLjEybDMuNCA1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSA0aC0yLjY4bC0zLjA3IDQuOTloLS4xMkw4Ljg1IDRINi4xOWw0LjMyIDYuNzNMNS44OCAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1cGVyc2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgN2gtMnYxaDN2MWgtNFY3YzAtLjU1LjQ1LTEgMS0xaDJWNWgtM1Y0aDNjLjU1IDAgMSAuNDUgMSAxdjFjMCAuNTUtLjQ1IDEtMSAxek01Ljg4IDIwaDIuNjZsMy40LTUuNDJoLjEybDMuNCA1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSA2aC0yLjY4bC0zLjA3IDQuOTloLS4xMkw4Ljg1IDZINi4xOWw0LjMyIDYuNzNMNS44OCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxlQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDJ2M0g1VjVoMTV6bS01IDE0aC01di05aDV2OXpNNSAxMGgzdjlINXYtOXptMTIgOXYtOWgzdjloLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWJsZVJvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAydjNINVY1aDE0em0wIDV2NEg1di00aDE0ek01IDE5di0zaDE0djNINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHREZWNyZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS45OSAxOWgyLjQybDEuMjctMy41OGg1LjY1TDExLjU5IDE5aDIuNDJMOC43NSA1aC0yLjVMLjk5IDE5em00LjQyLTUuNjFMNy40NCA3LjZoLjEybDIuMDMgNS43OUg1LjQxek0yMyAxMXYyaC04di0yaDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZXh0RmllbGRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDR2M2g1djEyaDNWN2g1VjRoLTEzem0xOSA1aC05djNoM3Y3aDN2LTdoM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dEluY3JlYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjk5IDE5aDIuNDJsMS4yNy0zLjU4aDUuNjVMMTEuNTkgMTloMi40Mkw4Ljc1IDVoLTIuNUwuOTkgMTl6bTQuNDItNS42MUw3LjQ0IDcuNmguMTJsMi4wMyA1Ljc5SDUuNDF6TTIwIDExaDN2MmgtM3YzaC0ydi0zaC0zdi0yaDNWOGgydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaXRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA0djNoNS41djEyaDNWN0gxOVY0SDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUeXBlU3BlY2ltZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4xOSAxMi4yaDMuNjNsLjggMi4zaDEuNTZsLTMuMzgtOWgtMS42bC0zLjM4IDloMS41NmwuODEtMi4zem0xLjc3LTUuMDNoLjA4bDEuMzEgMy43MmgtMi42OWwxLjMtMy43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcnRpY2FsQWxpZ25Cb3R0b20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEzaC0zVjNoLTJ2MTBIOGw0IDQgNC00ek00IDE5djJoMTZ2LTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcnRpY2FsQWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTloM3Y0aDJ2LTRoM2wtNC00LTQgNHptOC0xNGgtM1YxaC0ydjRIOGw0IDQgNC00ek00IDExdjJoMTZ2LTJINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcnRpY2FsQWxpZ25Ub3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTFoM3YxMGgyVjExaDNsLTQtNC00IDR6TTQgM3YyaDE2VjNINHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZlcnRpY2FsRGlzdHJpYnV0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDJ2MkgyVjJoMjB6TTcgMTAuNXYzaDEwdi0zSDd6TTIgMjB2MmgyMHYtMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV3JhcFRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTloNnYtMkg0djJ6TTIwIDVINHYyaDE2VjV6bS0zIDZINHYyaDEzLjI1YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMkgxNXYtMmwtMyAzIDMgM3YtMmgyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBwcm92YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDE2djZoMTZ2LTZjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ6bTE0IDJINnYtMmgxMnYyek0xMiAyQzkuMjQgMiA3IDQuMjQgNyA3bDUgNyA1LTdjMC0yLjc2LTIuMjQtNS01LTV6bTAgOUw5IDdjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM2wtMyA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0YWNoRW1haWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0zIDYgOCA1IDgtNXYzaDJWNGMwLTEuMS0uOS0yLTItMkgzYy0xLjEgMC0xLjk5LjktMS45OSAyTDEgMTZjMCAxLjEuOSAyIDIgMmgxMHYtMkgzVjZ6bTE2LTItOCA1LTgtNWgxNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTR2NGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTJ2LTQuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYxOGgydi00LjVhMi41IDIuNSAwIDAgMC01IDBWMThjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtNGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF0dGFjaG1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgMTZIN2MtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGgxMi41YTIuNSAyLjUgMCAwIDEgMCA1SDljLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoOS41VjkuNUg5YTIuNSAyLjUgMCAwIDAgMCA1aDEwLjVjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTRIN2MtMy4wNCAwLTUuNSAyLjQ2LTUuNSA1LjVzMi40NiA1LjUgNS41IDUuNWgxMS41VjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWRDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em00LjI5LTkuODFhNC4zNzMgNC4zNzMgMCAwIDAtOC4xNy0xLjE2QTMuNDgzIDMuNDgzIDAgMCAwIDUgMTIuNUM1IDE0LjQzIDYuNTcgMTYgOC41IDE2aDcuNThjMS42MSAwIDIuOTItMS4zMSAyLjkyLTIuOTIgMC0xLjU0LTEuMi0yLjc5LTIuNzEtMi44OXpNMTYgMTRIOC41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy42NyAxMSA4LjUgMTFoLjlsLjQ5LTEuMDVhMi4zNzcgMi4zNzcgMCAwIDEgNC40NC42M2wuMjggMS40MkgxNmMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkRG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ2OSA1LjQ2OSAwIDAgMSAxMiA2YzIuNjIgMCA0Ljg4IDEuODYgNS4zOSA0LjQzbC4zIDEuNSAxLjUzLjExQTIuOTggMi45OCAwIDAgMSAyMiAxNWMwIDEuNjUtMS4zNSAzLTMgM3ptLTktMy44Mi0yLjA5LTIuMDlMNi41IDEzLjUgMTAgMTdsNi4wMS02LjAxLTEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkRG93bmxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTQgMC0yLjA1IDEuNTMtMy43NiAzLjU2LTMuOTdsMS4wNy0uMTEuNS0uOTVBNS40NjkgNS40NjkgMCAwIDEgMTIgNmMyLjYyIDAgNC44OCAxLjg2IDUuMzkgNC40M2wuMyAxLjUgMS41My4xMUEyLjk4IDIuOTggMCAwIDEgMjIgMTVjMCAxLjY1LTEuMzUgMy0zIDN6bS01LjU1LThoLTIuOXYzSDhsNCA0IDQtNGgtMi41NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCAxNWMwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NkE3LjQ5IDcuNDkgMCAwIDAgMTIgNGMtMS4zMyAwLTIuNTcuMzYtMy42NS45N2wxLjQ5IDEuNDlDMTAuNTEgNi4xNyAxMS4yMyA2IDEyIDZjMy4wNCAwIDUuNSAyLjQ2IDUuNSA1LjV2LjVIMTlhMi45OTYgMi45OTYgMCAwIDEgMS43OSA1LjRsMS40MSAxLjQxYzEuMDktLjkyIDEuOC0yLjI3IDEuOC0zLjgxek00LjQxIDMuODYgMyA1LjI3bDIuNzcgMi43N2gtLjQyQTUuOTk0IDUuOTk0IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTEuNzNsMiAyIDEuNDEtMS40MUw0LjQxIDMuODZ6TTYgMThjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoMS43M2w4IDhINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsb3VkUXVldWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjM1IDEwLjA0QTcuNDkgNy40OSAwIDAgMCAxMiA0QzkuMTEgNCA2LjYgNS42NCA1LjM1IDguMDRBNS45OTQgNS45OTQgMCAwIDAgMCAxNGMwIDMuMzEgMi42OSA2IDYgNmgxM2MyLjc2IDAgNS0yLjI0IDUtNSAwLTIuNjQtMi4wNS00Ljc4LTQuNjUtNC45NnpNMTkgMThINmMtMi4yMSAwLTQtMS43OS00LTRzMS43OS00IDQtNGguNzFDNy4zNyA3LjY5IDkuNDggNiAxMiA2YzMuMDQgMCA1LjUgMi40NiA1LjUgNS41di41SDE5YzEuNjYgMCAzIDEuMzQgMyAzcy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xvdWRTeW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuNSAxNC45OGMtLjAyIDAtLjAzIDAtLjA1LjAxQTMuNDkgMy40OSAwIDAgMCAxOCAxMmMtMS40IDAtMi42LjgzLTMuMTYgMi4wMkEyLjk4OCAyLjk4OCAwIDAgMCAxMiAxN2MwIDEuNjYgMS4zNCAzIDMgM2w2LjUtLjAyYTIuNSAyLjUgMCAwIDAgMC01em0uMDEgMy4wMkgxNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWgxLjI1di0uMjVjMC0uOTcuNzgtMS43NSAxLjc1LTEuNzVzMS43NS43OCAxLjc1IDEuNzVWMTdoMS43NmMuMjggMCAuNS4yMi41LjUtLjAxLjI3LS4yMy41LS41LjV6TTEwIDQuMjZ2Mi4wOUM3LjY3IDcuMTggNiA5LjM5IDYgMTJjMCAxLjc3Ljc4IDMuMzQgMiA0LjQ0VjE0aDJ2Nkg0di0yaDIuNzNBNy45NDIgNy45NDIgMCAwIDEgNCAxMmMwLTMuNzMgMi41NS02Ljg1IDYtNy43NHpNMjAgNmgtMi43M2E3Ljk4IDcuOTggMCAwIDEgMi42NiA1aC0yLjAyYy0uMjMtMS4zNi0uOTMtMi41NS0xLjkxLTMuNDRWMTBoLTJWNGg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG91ZFVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMzUgMTAuMDRBNy40OSA3LjQ5IDAgMCAwIDEyIDRDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2ek0xOSAxOEg2Yy0yLjIxIDAtNC0xLjc5LTQtNCAwLTIuMDUgMS41My0zLjc2IDMuNTYtMy45N2wxLjA3LS4xMS41LS45NUE1LjQ2OSA1LjQ2OSAwIDAgMSAxMiA2YzIuNjIgMCA0Ljg4IDEuODYgNS4zOSA0LjQzbC4zIDEuNSAxLjUzLjExQTIuOTggMi45OCAwIDAgMSAyMiAxNWMwIDEuNjUtMS4zNSAzLTMgM3pNOCAxM2gyLjU1djNoMi45di0zSDE2bC00LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMyLjYyIDAgNC44OCAxLjg2IDUuMzkgNC40M2wuMyAxLjUgMS41My4xMUEyLjk4IDIuOTggMCAwIDEgMjIgMTVjMCAxLjY1LTEuMzUgMy0zIDNINmMtMi4yMSAwLTQtMS43OS00LTQgMC0yLjA1IDEuNTMtMy43NiAzLjU2LTMuOTdsMS4wNy0uMTEuNS0uOTVBNS40NjkgNS40NjkgMCAwIDEgMTIgNm0wLTJDOS4xMSA0IDYuNiA1LjY0IDUuMzUgOC4wNEE1Ljk5NCA1Ljk5NCAwIDAgMCAwIDE0YzAgMy4zMSAyLjY5IDYgNiA2aDEzYzIuNzYgMCA1LTIuMjQgNS01IDAtMi42NC0yLjA1LTQuNzgtNC42NS00Ljk2QTcuNDkgNy40OSAwIDAgMCAxMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JlYXRlTmV3Rm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTgtNGgydjJoMnYtMmgydi0yaC0ydi0yaC0ydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaWZmZXJlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMjNINGMtMS4xIDAtMi0uOS0yLTJWN2gydjE0aDE0djJ6TTE0LjUgN1Y1aC0ydjJoLTJ2MmgydjJoMlY5aDJWN2gtMnptMiA2aC02djJoNnYtMnpNMTUgMUg4Yy0xLjEgMC0xLjk5LjktMS45OSAyTDYgMTdjMCAxLjEuODkgMiAxLjk5IDJIMTljMS4xIDAgMi0uOSAyLTJWN2wtNi02em00IDE2SDhWM2g2LjE3TDE5IDcuODNWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb3dubG9hZERvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMThoMTR2Mkg1di0yem00LjYtMi43TDUgMTAuN2wyLTEuOSAyLjYgMi42TDE3IDRsMiAyLTkuNCA5LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb3dubG9hZEZvck9mZmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwIDEwLTQuNDkgMTAtMTBTMTcuNTEgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHptMi41OS0xMS40MUwxNiAxMGwtNCA0LTQtNCAxLjQxLTEuNDFMMTEgMTAuMTdWNmgydjQuMTdsMS41OS0xLjU4ek0xNyAxN0g3di0yaDEwdjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWgtNFYzSDl2Nkg1bDcgNyA3LTd6bS04IDJWNWgydjZoMS4xN0wxMiAxMy4xNyA5LjgzIDExSDExem0tNiA3aDE0djJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvd25sb2FkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzIgNC4yNkE5Ljk0OSA5Ljk0OSAwIDAgMCAxMyAyLjA1djIuMDJjMS40Ni4xOCAyLjc5Ljc2IDMuOSAxLjYybDEuNDItMS40M3pNMTkuOTMgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMyTDE4LjMxIDcuMWE3Ljk0MSA3Ljk0MSAwIDAgMSAxLjYyIDMuOXptLTEuNjIgNS45IDEuNDMgMS40M2E5Ljk4MSA5Ljk4MSAwIDAgMCAyLjIxLTUuMzJoLTIuMDJhNy45NDUgNy45NDUgMCAwIDEtMS42MiAzLjg5ek0xMyAxOS45M3YyLjAyYzIuMDEtLjIgMy44NC0xIDUuMzItMi4yMWwtMS40My0xLjQzYy0xLjEuODYtMi40MyAxLjQ0LTMuODkgMS42MnptMi41OS05LjM0TDEzIDEzLjE3VjdoLTJ2Ni4xN2wtMi41OS0yLjU5TDcgMTJsNSA1IDUtNS0xLjQxLTEuNDF6TTExIDE5LjkzdjIuMDJjLTUuMDUtLjUtOS00Ljc2LTktOS45NXMzLjk1LTkuNDUgOS05Ljk1djIuMDJDNy4wNSA0LjU2IDQgNy45MiA0IDEyczMuMDUgNy40NCA3IDcuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEcml2ZUZpbGVNb3ZlUnRsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6bS02LjU5LTIuNDFMMTIgMTdsLTQtNCA0LTQgMS40MSAxLjQxTDExLjgzIDEySDE2djJoLTQuMTdsMS41OCAxLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJpdmVGaWxlTW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMS40MSAxLjQxLjU5LjU5SDIwdjEwem0tNy44NC02SDh2Mmg0LjE2bC0xLjU5IDEuNTlMMTEuOTkgMTcgMTYgMTMuMDEgMTEuOTkgOWwtMS40MSAxLjQxTDEyLjE2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJpdmVGaWxlUmVuYW1lT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDE2LTQgNGgxMHYtNHpNMTIuMDYgNy4xOSAzIDE2LjI1VjIwaDMuNzVsOS4wNi05LjA2LTMuNzUtMy43NXpNNS45MiAxOEg1di0uOTJsNy4wNi03LjA2LjkyLjkyTDUuOTIgMTh6TTE4LjcxIDguMDRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRhMS4wMDEgMS4wMDEgMCAwIDAtMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURyaXZlRm9sZGVyVXBsb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAxOGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTJINFY2aDUuMTdsMiAySDIwdjEwek05LjQxIDE0LjQyIDExIDEyLjg0VjE3aDJ2LTQuMTZsMS41OSAxLjU5TDE2IDEzLjAxIDEyLjAxIDkgOCAxMy4wMWwxLjQxIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWxlRG93bmxvYWREb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMTMgNS40MSAxOC43MiA0bC05LjE5IDkuMTktNC4yNS00LjI0LTEuNDEgMS40MSA1LjY2IDUuNjZ6TTUgMThoMTR2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsZURvd25sb2FkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTUuMTdWMTVoMnYyLjE3bC0yLTJ6bS0yLjU5LTIuNThMMTcgMTFsLTEuNDEtMS40MUwxNCAxMS4xN2wxLjQxIDEuNDJ6TTEzIDEwLjE3VjRoLTJ2NC4xN2wyIDJ6bTguMTkgMTEuMDItMS43OC0xLjc4LTE2LjYtMTYuNi0xLjQyIDEuNDEgNi4xOSA2LjE5TDcgMTFsNSA1IC41OS0uNTlMMTUuMTcgMThINnYtM0g0djNjMCAxLjEuOSAyIDIgMmgxMS4xN2wyLjYxIDIuNjEgMS40MS0xLjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsZURvd25sb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTV2M0g2di0zSDR2M2MwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi0zaC0yem0tMS00LTEuNDEtMS40MUwxMyAxMi4xN1Y0aC0ydjguMTdMOC40MSA5LjU5IDcgMTFsNSA1IDUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbGVPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMjJINmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDhsNiA2djZoLTJWOWgtNVY0SDZ2MTZoOXYyem00LS4zNHYtMi4yNGwyLjk1IDIuOTUgMS40MS0xLjQxTDIwLjQxIDE4aDIuMjR2LTJIMTd2NS42NmgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsZVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE1djNINnYtM0g0djNjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMnYtM2gtMnpNNyA5bDEuNDEgMS40MUwxMSA3LjgzVjE2aDJWNy44M2wyLjU5IDIuNThMMTcgOWwtNS01LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlckNvcHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE5aDE3djJIM2MtMS4xIDAtMi0uOS0yLTJWNmgydjEzek0yMyA2djljMCAxLjEtLjkgMi0yIDJIN2MtMS4xIDAtMi0uOS0yLTJsLjAxLTExYzAtMS4xLjg5LTIgMS45OS0yaDVsMiAyaDdjMS4xIDAgMiAuOSAyIDJ6TTcgMTVoMTRWNmgtNy44M2wtMi0ySDd2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXJEZWxldGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi41IDEwVjloLTJ2MUgxMnYxLjVoMXY0YzAgLjgzLjY3IDEuNSAxLjUgMS41aDJjLjgzIDAgMS41LS42NyAxLjUtMS41di00aDFWMTBoLTIuNXptMCA1LjVoLTJ2LTRoMnY0ek0yMCA2aC04bC0yLTJINGMtMS4xMSAwLTEuOTkuODktMS45OSAyTDIgMThjMCAxLjExLjg5IDIgMiAyaDE2YzEuMTEgMCAyLS44OSAyLTJWOGMwLTEuMTEtLjg5LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGRlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg3LjE3bDQgNEgyMHY5LjE3bDEuNzYgMS43NmMuMTUtLjI4LjI0LS41OS4yNC0uOTNWOGMwLTEuMS0uOS0yLTItMnpNMi4xIDIuMS42OSAzLjUxbDEuNTYgMS41NmMtLjE1LjI4LS4yNC41OS0uMjQuOTNMMiAxOGMwIDEuMS45IDIgMiAyaDEzLjE3bDMuMzEgMy4zMSAxLjQxLTEuNDFMMi4xIDIuMXpNNCAxOFY2LjgzTDE1LjE3IDE4SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjhoMTZ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXJTaGFyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHptLTUtNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bS00IDRoOHYtMWMwLTEuMzMtMi42Ny0yLTQtMnMtNCAuNjctNCAydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb2xkZXJaaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptLTQgMTBoMnYtMmgtMnYtMmgydi0yaC0yVjhoNHYxMGgtNHYtMnptMCAwaC0ydjJINFY2aDUuMTdsMiAySDE0djJoMnYyaC0ydjJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05LjE3IDYgMiAySDIwdjEwSDRWNmg1LjE3TTEwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMmgtOGwtMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ybWF0T3ZlcmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzdjJINVYzaDE0em0tNyA0Yy0zLjg3IDAtNyAzLjEzLTcgN3MzLjEzIDcgNyA3IDctMy4xMyA3LTctMy4xMy03LTctN3ptMCAxMS41Yy0yLjQ5IDAtNC41LTIuMDEtNC41LTQuNVM5LjUxIDkuNSAxMiA5LjVzNC41IDIuMDEgNC41IDQuNS0yLjAxIDQuNS00LjUgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JpZFZpZXcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDN2OGg4VjNIM3ptNiA2SDVWNWg0djR6bS02IDR2OGg4di04SDN6bTYgNkg1di00aDR2NHptNC0xNnY4aDhWM2gtOHptNiA2aC00VjVoNHY0em0tNiA0djhoOHYtOGgtOHptNiA2aC00di00aDR2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ld3NwYXBlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDMtMS42NyAxLjY3TDE4LjY3IDMgMTcgNC42NyAxNS4zMyAzbC0xLjY2IDEuNjdMMTIgM2wtMS42NyAxLjY3TDguNjcgMyA3IDQuNjcgNS4zMyAzIDMuNjcgNC42NyAyIDN2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlYzek0xMSAxOUg0di02aDd2NnptOSAwaC03di0yaDd2MnptMC00aC03di0yaDd2MnptMC00SDRWOGgxNnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVxdWVzdFF1b3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMkg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhsLTYtNnpNNiAyMFY0aDd2NGg1djEySDZ6bTUtMWgydi0xaDFjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMWgtM3YtMWg0di0yaC0yVjloLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjNjMCAuNTUuNDUgMSAxIDFoM3YxSDl2MmgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSdWxlRm9sZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44MyAxNiA1IDEzLjE3bDEuNDEtMS40MSAxLjQxIDEuNDEgMy41NC0zLjU0IDEuNDEgMS40MUw3LjgzIDE2em05LjU4LTNMMTkgMTQuNTkgMTcuNTkgMTYgMTYgMTQuNDEgMTQuNDEgMTYgMTMgMTQuNTkgMTQuNTkgMTMgMTMgMTEuNDEgMTQuNDEgMTAgMTYgMTEuNTkgMTcuNTkgMTAgMTkgMTEuNDEgMTcuNDEgMTN6TTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0wIDEySDRWNmg1LjE3bDIgMkgyMHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNuaXBwZXRGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2aC04bC0yLTJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6bS0yLjUtNS44OHYzLjM4aC0zdi01aDEuMzhsMS42MiAxLjYyek0xMyA5djhoNnYtNS41TDE2LjUgOUgxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRleHRTbmlwcGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMTcgNSAxOSA5LjgzVjE5SDVWNWg5LjE3bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjkuODNjMC0uNTMtLjIxLTEuMDQtLjU5LTEuNDFsLTQuODMtNC44M2MtLjM3LS4zOC0uODgtLjU5LTEuNDEtLjU5ek03IDE1aDEwdjJIN3YtMnptMC00aDEwdjJIN3YtMnptMC00aDd2Mkg3Vjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb3BpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNi43N2MuNjggMCAxLjIzLS41NiAxLjIzLTEuMjNWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6bS0yLTZINnYtMmgxMnYyem0tNCA0SDZ2LTJoOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVXBsb2FkRmlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDJINmMtMS4xIDAtMS45OS45LTEuOTkgMkw0IDIwYzAgMS4xLjg5IDIgMS45OSAySDE4YzEuMSAwIDItLjkgMi0yVjhsLTYtNnptNCAxOEg2VjRoN3Y1aDV2MTF6TTggMTUuMDFsMS40MSAxLjQxTDExIDE0Ljg0VjE5aDJ2LTQuMTZsMS41OSAxLjU5TDE2IDE1LjAxIDEyLjAxIDExIDggMTUuMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTZoNnYtNmg0bC03LTctNyA3aDR2NnptMy0xMC4xN0wxNC4xNyA4SDEzdjZoLTJWOEg5LjgzTDEyIDUuODN6TTUgMThoMTR2Mkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV29ya3NwYWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgMTVjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMmMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00em02LThjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMkM5LjggMyA4IDQuOCA4IDdzMS44IDQgNCA0IDQtMS44IDQtNC0xLjgtNC00LTR6bTYgMTJjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0ybTAtMmMtMi4yIDAtNCAxLjgtNCA0czEuOCA0IDQgNCA0LTEuOCA0LTQtMS44LTQtNC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRmU2Nhbm5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEyaC0xVjRINnY4SDVjLTEuNjYgMC0zIDEuMzQtMyAzdjVoMjB2LTVjMC0xLjY2LTEuMzQtMy0zLTN6TTggNmg4djZIOFY2em0xMiAxMkg0di0zYzAtLjU1LjQ1LTEgMS0xaDE0Yy41NSAwIDEgLjQ1IDEgMXYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiMTZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyb3dzZXJOb3RTdXBwb3J0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2djEwLjVsMS45NSAxLjk1Yy4wMy0uMTUuMDUtLjMuMDUtLjQ1VjZjMC0xLjEtLjktMi0yLTJINi41bDIgMkgxOXpNMy4yMiAzLjMyIDEuOTUgNC41OSAzIDUuNjRWMThjMCAxLjEuOSAyIDIgMmgxMi4zNmwyLjA2IDIuMDYgMS4yNy0xLjI3TDMuMjIgMy4zMnpNMTUgMThINVY3LjY0TDE1LjM2IDE4SDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJvd3NlclVwZGF0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxM3YzYzAgMS4xLS45IDItMiAyaC0zbDEgMXYySDZ2LTJsMS0xSDRjLTEuMSAwLTItLjktMi0yVjVjMC0xLjEuOS0yIDItMmg4djJINHYxMWgxNnYtM2gyem0tNyAyLTUtNSAxLjQxLTEuNDFMMTQgMTEuMTdWM2gydjguMTdsMi41OS0yLjU4TDIwIDEwbC01IDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXN0Q29ubmVjdGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDE4djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC00djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMC00djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkzLTExLTExLTExem0yMC03SDNjLTEuMSAwLTIgLjktMiAydjNoMlY1aDE4djE0aC03djJoN2MxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01IDd2MmgxMnY2aC0zdjJoNVY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FzdEZvckVkdWNhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYzaDJWNWgxOHYxNGgtN3YyaDdjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpNMSAxOHYzaDNjMC0xLjY2LTEuMzQtMy0zLTN6bTAtNHYyYzIuNzYgMCA1IDIuMjQgNSA1aDJjMC0zLjg3LTMuMTMtNy03LTd6bTAtNHYyYTkgOSAwIDAgMSA5IDloMmMwLTYuMDgtNC45My0xMS0xMS0xMXptMTAgMS4wOXYyTDE0LjUgMTVsMy41LTEuOTF2LTJMMTQuNSAxMyAxMSAxMS4wOXpNMTQuNSA2IDkgOWw1LjUgM0wyMCA5bC01LjUtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2M2gyVjVoMTh2MTRoLTd2Mmg3YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTEgMTh2M2gzYzAtMS42Ni0xLjM0LTMtMy0zem0wLTR2MmMyLjc2IDAgNSAyLjI0IDUgNWgyYzAtMy44Ny0zLjEzLTctNy03em0wLTR2MmE5IDkgMCAwIDEgOSA5aDJjMC02LjA4LTQuOTMtMTEtMTEtMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb21wdXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAySDB2MmgyNHYtMmgtNHpNNCA2aDE2djEwSDRWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbm5lY3RlZFR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDR2Mmg4di0yaDRjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjIgNWMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjVoMTZ2MTJ6TTUgMTR2MmgyYzAtMS4xMS0uODktMi0yLTJ6bTAtM3YxLjQzYzEuOTcgMCAzLjU3IDEuNiAzLjU3IDMuNTdIMTBjMC0yLjc2LTIuMjQtNS01LTV6bTAtM3YxLjQ1YzMuNjEgMCA2LjU1IDIuOTMgNi41NSA2LjU1SDEzYzAtNC40Mi0zLjU5LTgtOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVza3RvcE1hYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDdsLTIgM3YxaDh2LTFsLTItM2g3YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTJIM1Y0aDE4djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVza3RvcFdpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDJIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3djJIOHYyaDh2LTJoLTJ2LTJoN2MxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNGgxOHYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURldmVsb3BlckJvYXJkT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44MyA1SDE4djEwLjE3TDE5LjgzIDE3SDIydi0yaC0ydi0yaDJ2LTJoLTJWOWgyVjdoLTJWNWMwLTEuMS0uOS0yLTItMkg1LjgzbDIgMnpNMTIgOS4xN1Y3aDR2M2gtMy4xN0wxMiA5LjE3ek05LjgzIDdIMTF2MS4xN0w5LjgzIDd6bTQgNEgxNnYyLjE3TDEzLjgzIDExek0xOCAyMWMuMDYgMCAuMTEgMCAuMTYtLjAxbDIuMzIgMi4zMiAxLjQxLTEuNDFMMi4xIDIuMS42OSAzLjUxbDEuMzIgMS4zMkMyIDQuODkgMiA0Ljk0IDIgNXYxNGMwIDEuMS45IDIgMiAyaDE0ek00IDE5VjYuODNsMiAyVjEyaDMuMTdsMSAxSDZ2NGg1di0zLjE3bDEgMVYxN2gyLjE3bDIgMkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2ZWxvcGVyQm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDlWN2gtMlY1YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloMnptLTQgMTBINFY1aDE0djE0ek02IDEzaDV2NEg2di00em02LTZoNHYzaC00Vjd6TTYgN2g1djVINlY3em02IDRoNHY2aC00di02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV2aWNlSHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNyAxNi00LTRWOC44MkMxNC4xNiA4LjQgMTUgNy4zIDE1IDZjMC0xLjY2LTEuMzQtMy0zLTNTOSA0LjM0IDkgNmMwIDEuMy44NCAyLjQgMiAyLjgyVjEybC00IDRIM3Y1aDV2LTMuMDVsNC00LjIgNCA0LjJWMjFoNXYtNWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURldmljZVVua25vd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDFIN2MtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE4SDdWNWgxMHYxNHpNMTIgNi43MmMtMS45NiAwLTMuNSAxLjUyLTMuNSAzLjQ3aDEuNzVjMC0uOTMuODItMS43NSAxLjc1LTEuNzVzMS43NS44MiAxLjc1IDEuNzVjMCAxLjc1LTIuNjMgMS41Ny0yLjYzIDQuNDVoMS43NmMwLTEuOTYgMi42Mi0yLjE5IDIuNjItNC40NSAwLTEuOTYtMS41NC0zLjQ3LTMuNS0zLjQ3ek0xMSAxNmgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXZpY2VzT3RoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNmgxOFY0SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoNHYtMkgzVjZ6bTEwIDZIOXYxLjc4Yy0uNjEuNTUtMSAxLjMzLTEgMi4yMiAwIC44OS4zOSAxLjY3IDEgMi4yMlYyMGg0di0xLjc4Yy42MS0uNTUgMS0xLjM0IDEtMi4yMnMtLjM5LTEuNjctMS0yLjIyVjEyem0tMiA1LjVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41ek0yMiA4aC02Yy0uNSAwLTEgLjUtMSAxdjEwYzAgLjUuNSAxIDEgMWg2Yy41IDAgMS0uNSAxLTFWOWMwLS41LS41LTEtMS0xem0tMSAxMGgtNHYtOGg0djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDIzaDh2LTJIOHYyem04LTIxLjk5TDggMWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMS45OS0yLTEuOTl6TTE2IDE1SDhWNWg4djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWFyYnVkc0JhdHRlcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA3aC0xVjZoLTJ2MWgtMWMtLjU1IDAtMSAuNDUtMSAxdjljMCAuNTUuNDUgMSAxIDFoNGMuNTUgMCAxLS40NSAxLTFWOGMwLS41NS0uNDUtMS0xLTF6bS0xIDloLTJWOWgydjd6bS02LTYuNjJDMTQgNy41MSAxMi40OSA2IDEwLjYyIDZTNy4yNSA3LjUxIDcuMjUgOS4zOHY1LjI1YzAgMS4wNC0uODQgMS44OC0xLjg4IDEuODhzLTEuODctLjg1LTEuODctMS44OXYtNC43Yy4xNi4wNS4zMy4wOC41LjA4IDEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMnY2LjYyQzIgMTYuNDkgMy41MSAxOCA1LjM4IDE4czMuMzgtMS41MSAzLjM4LTMuMzhWOS4zOGMwLTEuMDQuODQtMS44OCAxLjg4LTEuODhzMS44OC44NCAxLjg4IDEuODh2NC43Yy0uMTgtLjA1LS4zNS0uMDgtLjUyLS4wOC0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMlY5LjM4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWFyYnVkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNjLTIuNzYgMC01IDIuMjQtNSA1djhjMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTNWOWguODNDNy40NCA5IDguODkgNy44MiA5IDYuMjFBMyAzIDAgMCAwIDYuMiAzQzQuNDQgMi44OSAzIDQuNDIgMyA2LjE5VjE2YzAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVWOGMwLTEuNjYgMS4zNC0zIDMtM3MzIDEuMzQgMyAzdjdoLS44M2MtMS42MSAwLTMuMDYgMS4xOC0zLjE3IDIuNzlBMyAzIDAgMCAwIDE3LjggMjFjMS43Ni4xMiAzLjItMS40MiAzLjItMy4xOFY4YzAtMi43Ni0yLjI0LTUtNS01ek01IDZjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxLS40NSAxLTEgMUg1VjZ6bTE0IDEyYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMWgxdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHYW1lcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA0djIuNjdsLTEgMS0xLTFWNGgybTcgN3YyaC0yLjY3bC0xLTEgMS0xSDIwTTYuNjcgMTFsMSAxLTEgMUg0di0yaDIuNjdNMTIgMTYuMzNsMSAxVjIwaC0ydi0yLjY3bDEtMU0xNSAySDl2NS41bDMgMyAzLTNWMnptNyA3aC01LjVsLTMgMyAzIDNIMjJWOXpNNy41IDlIMnY2aDUuNWwzLTMtMy0zem00LjUgNC41LTMgM1YyMmg2di01LjVsLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYWRwaG9uZXNCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgN2gtMVY2aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXY5YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xVjhjMC0uNTUtLjQ1LTEtMS0xem0tMSA5aC0yVjloMnY3ek04IDZjLTMuMzEgMC02IDIuNjktNiA2djRjMCAxLjEuOSAyIDIgMmgydi01SDMuNXYtMWMwLTIuNDggMi4wMi00LjUgNC41LTQuNXM0LjUgMi4wMiA0LjUgNC41djFIMTB2NWgyYzEuMSAwIDItLjkgMi0ydi00YzAtMy4zMS0yLjY5LTYtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhZHBob25lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNhOSA5IDAgMCAwLTkgOXY3YzAgMS4xLjkgMiAyIDJoNHYtOEg1di0xYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDd2MWgtNHY4aDRjMS4xIDAgMi0uOSAyLTJ2LTdhOSA5IDAgMCAwLTktOXpNNyAxNXY0SDV2LTRoMnptMTIgNGgtMnYtNGgydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFkc2V0TWljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNHY0aC0ydi00aDJNNyAxNHY0SDZjLS41NSAwLTEtLjQ1LTEtMXYtM2gybTUtMTNhOSA5IDAgMCAwLTkgOXY3YzAgMS42NiAxLjM0IDMgMyAzaDN2LThINXYtMmMwLTMuODcgMy4xMy03IDctN3M3IDMuMTMgNyA3djJoLTR2OGg0djFoLTd2Mmg2YzEuNjYgMCAzLTEuMzQgMy0zVjEwYTkgOSAwIDAgMC05LTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFkc2V0T2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMzLjg3IDAgNyAzLjEzIDcgN3YxaC00di4xN0wxNi44MyAxNEgxOXYyLjE3bDIgMlYxMWE5IDkgMCAwIDAtOS05Yy0yLjAyIDAtMy44OC42Ny01LjM4IDEuOGwxLjQzIDEuNDNBNi44NzggNi44NzggMCAwIDEgMTIgNHpNMi4xIDIuMS42OSAzLjUxbDMuMzMgMy4zM0E4Ljk4IDguOTggMCAwIDAgMyAxMXY3YzAgMS4xLjkgMiAyIDJoNHYtOEg1di0xYzAtLjk0LjE5LTEuODMuNTItMi42NUwxNSAxNy44M1YyMGgyLjE3bDEgMUgxMnYyaDdjLjM0IDAgLjY1LS4wOS45My0uMjRsLjU1LjU1IDEuNDEtMS40MUwyLjEgMi4xek03IDE0djRINXYtNGgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGVhZHNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTR2M2MwIC41NS0uNDUgMS0xIDFoLTF2LTRoMk03IDE0djRINmMtLjU1IDAtMS0uNDUtMS0xdi0zaDJtNS0xM2E5IDkgMCAwIDAtOSA5djdjMCAxLjY2IDEuMzQgMyAzIDNoM3YtOEg1di0yYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDd2MmgtNHY4aDNjMS42NiAwIDMtMS4zNCAzLTN2LTdhOSA5IDAgMCAwLTktOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvbWVNYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1SDVDMi43OSA1IDEgNi43OSAxIDl2NWMwIDIuMjEgMS43OSA0IDQgNGgydjFoMTB2LTFoMmMyLjIxIDAgNC0xLjc5IDQtNFY5YzAtMi4yMS0xLjc5LTQtNC00em0yIDljMCAxLjEtLjkgMi0yIDJINWMtMS4xIDAtMi0uOS0yLTJWOWMwLTEuMS45LTIgMi0yaDE0YzEuMSAwIDIgLjkgMiAydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb21lTWluaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDVDNC4xOSA1IDIgOS40OCAyIDEyYzAgMy44NiAzLjEzIDcgNi45OSA3aDYuMDJDMTcuNyAxOSAyMiAxNi45MiAyMiAxMmMwIDAgMC03LTEwLTd6bTAgMmM3LjY0IDAgNy45OSA0LjUxIDggNUg0YzAtLjIuMDktNSA4LTV6bTIuODYgMTBIOS4xNGMtMi4xIDAtMy45Mi0xLjI0LTQuNzEtM2gxNS4xNWMtLjggMS43Ni0yLjYyIDMtNC43MiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEzYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNUgzVjZoMTh2MTN6TTkgOGgydjJIOVY4ek01IDhoMnYySDVWOHptMyA4aDh2MUg4di0xem01LThoMnYyaC0yVjh6bS00IDRoMnYySDl2LTJ6bS00IDBoMnYySDV2LTJ6bTggMGgydjJoLTJ2LTJ6bTQtNGgydjJoLTJWOHptMCA0aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQxIDguNTkgMTIgMTMuMTdsNC41OS00LjU4TDE4IDEwbC02IDYtNi02IDEuNDEtMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS40MSAxNi41OSAxMC44MyAxMmw0LjU4LTQuNTlMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZEFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNTkgMTYuNTkgMTMuMTcgMTIgOC41OSA3LjQxIDEwIDZsNiA2LTYgNi0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZEFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDEgMTUuNDEgMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2IDEuNDEgMS40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMUg2LjgzbDMuNTgtMy41OUw5IDZsLTYgNiA2IDYgMS40MS0xLjQxTDYuODMgMTNIMjF2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZENhcHNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4LjQxIDE2LjU5IDEzIDE4IDExLjU5bC02LTYtNiA2TDcuNDEgMTMgMTIgOC40MXpNNiAxOGgxMnYtMkg2djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZENvbW1hbmRLZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDNDMTUuNTcgMyAxNCA0LjU3IDE0IDYuNVY4aC00VjYuNUMxMCA0LjU3IDguNDMgMyA2LjUgM1MzIDQuNTcgMyA2LjUgNC41NyAxMCA2LjUgMTBIOHY0SDYuNUM0LjU3IDE0IDMgMTUuNTcgMyAxNy41UzQuNTcgMjEgNi41IDIxczMuNS0xLjU3IDMuNS0zLjVWMTZoNHYxLjVjMCAxLjkzIDEuNTcgMy41IDMuNSAzLjVzMy41LTEuNTcgMy41LTMuNS0xLjU3LTMuNS0zLjUtMy41SDE2di00aDEuNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMxOS40MyAzIDE3LjUgM3pNMTYgOFY2LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTMTguMzMgOCAxNy41IDhIMTZ6TTYuNSA4QzUuNjcgOCA1IDcuMzMgNSA2LjVTNS42NyA1IDYuNSA1IDggNS42NyA4IDYuNVY4SDYuNXptMy41IDZ2LTRoNHY0aC00em03LjUgNWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjE2aDEuNWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41em0tMTEgMGMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzUuNjcgMTYgNi41IDE2SDh2MS41YzAgLjgzLS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkQ29udHJvbEtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTUgMTIgMS40MSAxLjQxTDEyIDcuODNsNS41OSA1LjU4TDE5IDEybC03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZERvdWJsZUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDYuNDEgMTYuNTkgNSAxMiA5LjU4IDcuNDEgNSA2IDYuNDFsNiA2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCAxMy0xLjQxLTEuNDFMMTIgMTYuMTdsLTQuNTktNC41OEw2IDEzbDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkRG91YmxlQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNTkgMTggMTkgMTYuNTkgMTQuNDIgMTIgMTkgNy40MSAxNy41OSA2bC02IDZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExIDE4IDEuNDEtMS40MUw3LjgzIDEybDQuNTgtNC41OUwxMSA2bC02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZERvdWJsZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQxIDYgNSA3LjQxIDkuNTggMTIgNSAxNi41OSA2LjQxIDE4bDYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgNi0xLjQxIDEuNDFMMTYuMTcgMTJsLTQuNTggNC41OUwxMyAxOGw2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLZXlib2FyZERvdWJsZUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDE3LjU5IDcuNDEgMTkgMTIgMTQuNDIgMTYuNTkgMTkgMTggMTcuNTlsLTYtNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNiAxMSAxLjQxIDEuNDFMMTIgNy44M2w0LjU5IDQuNThMMTggMTFsLTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkSGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgM0g0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTVjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDEySDRWNWgxNnYxMHptLTktOWgydjJoLTJ6bTAgM2gydjJoLTJ6TTggNmgydjJIOHptMCAzaDJ2Mkg4ek01IDloMnYySDV6bTAtM2gydjJINXptMyA2aDh2Mkg4em02LTNoMnYyaC0yem0wLTNoMnYyaC0yem0zIDNoMnYyaC0yem0wLTNoMnYyaC0yem0tNSAxNyA0LTRIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkT3B0aW9uS2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgNWg2djJoLTZ6TTkgNUgzdjJoNC44NWw2LjkyIDEySDIxdi0yaC01LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmRSZXR1cm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDd2NEg1LjgzbDMuNTgtMy41OUw4IDZsLTYgNiA2IDYgMS40MS0xLjQxTDUuODMgMTNIMjFWN2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkVGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41OSA3LjQxIDE1LjE3IDExSDF2MmgxNC4xN2wtMy41OSAzLjU5TDEzIDE4bDYtNi02LTYtMS40MSAxLjQxek0yMCA2djEyaDJWNmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtleWJvYXJkVm9pY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE1YzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDZjMC0xLjY2LTEuMzQtMy0zLTNTOSA0LjM0IDkgNnY2YzAgMS42NiAxLjM0IDMgMyAzem0tMS4yLTkuMWMwLS42Ni41NC0xLjIgMS4yLTEuMnMxLjIuNTQgMS4yIDEuMmwtLjAxIDYuMmMwIC42Ni0uNTMgMS4yLTEuMTkgMS4ycy0xLjItLjU0LTEuMi0xLjJWNS45em02LjUgNi4xYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNSA2LjcgMTJINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMmgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2V5Ym9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDd2MTBINFY3aDE2bTAtMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMnptMCAzaDJ2MmgtMnpNOCA4aDJ2Mkg4em0wIDNoMnYySDh6bS0zIDBoMnYySDV6bTAtM2gydjJINXptMyA2aDh2Mkg4em02LTNoMnYyaC0yem0wLTNoMnYyaC0yem0zIDNoMnYyaC0yem0wLTNoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFwdG9wQ2hyb21lYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMThWM0gydjE1SDB2MmgyNHYtMmgtMnptLTggMGgtNHYtMWg0djF6bTYtM0g0VjVoMTZ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYXB0b3BNYWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDVjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMkgwYzAgMS4xLjkgMiAyIDJoMjBjMS4xIDAgMi0uOSAyLTJoLTR6TTQgNWgxNnYxMUg0VjV6bTggMTRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhcHRvcFdpbmRvd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4di0xYzEuMSAwIDEuOTktLjkgMS45OS0yTDIyIDVjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMnYxSDB2MmgyNHYtMmgtNHpNNCA1aDE2djEwSDRWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhcHRvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE4YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMkgwdjJoMjR2LTJoLTR6TTQgNmgxNnYxMEg0VjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZW1vcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9uaXRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgzbC0xIDF2MmgxMnYtMmwtMS0xaDNjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxM0g0VjVoMTZ2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOWMtLjA0LTQuMzktMy42LTcuOTMtOC03LjkzUzQuMDQgNC42MSA0IDl2NmMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04Vjl6bS0yIDBoLTVWMy4xNmMyLjgxLjQ3IDQuOTYgMi45IDUgNS44NHptLTctNS44NFY5SDZhNi4wMDUgNi4wMDUgMCAwIDEgNS01Ljg0ek0xOCAxNWMwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNnYtNGgxMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxSDhDNi4zNCAxIDUgMi4zNCA1IDR2MTZjMCAxLjY2IDEuMzQgMyAzIDNoOGMxLjY2IDAgMy0xLjM0IDMtM1Y0YzAtMS42Ni0xLjM0LTMtMy0zem0xIDE3SDdWNGgxMHYxNHptLTMgM2gtNHYtMWg0djF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZUlwaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxaC04QTIuNSAyLjUgMCAwIDAgNSAzLjV2MTdBMi41IDIuNSAwIDAgMCA3LjUgMjNoOGEyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTE3QTIuNSAyLjUgMCAwIDAgMTUuNSAxem0tNCAyMWMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQuNS00SDdWNGg5djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVsaW5rT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA2VjRINy4zOWwyIDJ6bTIgMTNWOWMwLS41NS0uNDUtMS0xLTFoLTZjLS41NSAwLTEgLjQ1LTEgMXYzLjYxbDIgMlYxMGg0djdoLTEuNjFsMi45MyAyLjkzYy4zOS0uMTMuNjgtLjQ5LjY4LS45M3pNMi4wNiAxLjUxLjY1IDIuOTJsMS44MiAxLjgyQzIuMTggNS4wOCAyIDUuNTIgMiA2djExSDB2M2gxNy43M2wyLjM1IDIuMzUgMS40MS0xLjQxTDIuMDYgMS41MXpNNCAxN1Y2LjI3TDE0LjczIDE3SDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZWxpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNmgxOFY0SDRjLTEuMSAwLTIgLjktMiAydjExSDB2M2gxNHYtM0g0VjZ6bTE5IDJoLTZjLS41NSAwLTEgLjQ1LTEgMXYxMGMwIC41NS40NSAxIDEgMWg2Yy41NSAwIDEtLjQ1IDEtMVY5YzAtLjU1LS40NS0xLTEtMXptLTEgOWgtNHYtN2g0djd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb2ludE9mU2FsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDJIN2MtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgNEg3VjRoMTB2MnptMyAxNkg0Yy0xLjEgMC0yLS45LTItMnYtMWgyMHYxYzAgMS4xLS45IDItMiAyem0tMS40Ny0xMS44MUEyLjAwOCAyLjAwOCAwIDAgMCAxNi43IDlINy4zYy0uNzkgMC0xLjUxLjQ3LTEuODMgMS4xOUwyIDE4aDIwbC0zLjQ3LTcuODF6TTkuNSAxNmgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTMgNGgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6bTMgNGgtMWMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41em0wLTJoLTFjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgxYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNXptMC0yaC0xYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb3dlcklucHV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDl2MmgxOVY5SDJ6bTAgNmg1di0ySDJ2MnptNyAwaDV2LTJIOXYyem03IDBoNXYtMmgtNXYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm91dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA0LjJjMS41IDAgMyAuNiA0LjIgMS43bC44LS44QzE5LjYgMy43IDE3LjggMyAxNiAzcy0zLjYuNy01IDIuMWwuOC44QzEzIDQuOCAxNC41IDQuMiAxNiA0LjJ6bS0zLjMgMi41LjguOGMuNy0uNyAxLjYtMSAyLjUtMXMxLjguMyAyLjUgMWwuOC0uOGMtLjktLjktMi4xLTEuNC0zLjMtMS40cy0yLjQuNS0zLjMgMS40ek0xOSAxM2gtMlY5aC0ydjRINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi00YzAtMS4xLS45LTItMi0yem0wIDZINXYtNGgxNHY0ek02IDE2aDJ2Mkg2em0zLjUgMGgydjJoLTJ6bTMuNSAwaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjYW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjggMTAuNyA0LjIgNWwtLjcgMS45TDE3LjYgMTJINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi01LjVjMC0uOC0uNS0xLjYtMS4yLTEuOHpNMTkgMThINXYtNGgxNHY0ek02IDE1aDJ2Mkg2em00IDBoOHYyaC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VjdXJpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEgMyA1djZjMCA1LjU1IDMuODQgMTAuNzQgOSAxMiA1LjE2LTEuMjYgOS02LjQ1IDktMTJWNWwtOS00em0wIDEwLjk5aDdjLS41MyA0LjEyLTMuMjggNy43OS03IDguOTRWMTJINVY2LjNsNy0zLjExdjguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpbUNhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNCA4djEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAydjE2SDZWOC44M0wxMC44MyA0SDE4ek03IDE3aDJ2Mkg3em04IDBoMnYyaC0yem0tOC02aDJ2NEg3em00IDRoMnY0aC0yem0wLTRoMnYyaC0yem00IDBoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU21hcnREaXNwbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDcuNXY5bDctNC41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNC4wMUg0VjUuOTloMTZ2MTIuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbWFydFNjcmVlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTEuMjVIMTR2MS41aC0xLjV6TTE1IDExLjI1aDEuNXYxLjVIMTV6TTEwIDExLjI1aDEuNXYxLjVIMTB6TTcuNSAxMS4yNUg5djEuNUg3LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVIM2MtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yek00IDE3SDNWN2gxdjEwem0xNCAwSDZWN2gxMnYxMHptMyAwaC0xVjdoMXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNtYXJ0VG95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOVY3YzAtMS4xLS45LTItMi0yaC0zYzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDVINmMtMS4xIDAtMiAuOS0yIDJ2MmMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM3Y0YzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTRjMS42NiAwIDMtMS4zNCAzLTNzLTEuMzQtMy0zLTN6bS0yIDEwSDZWN2gxMnYxMnptLTktNmMtLjgzIDAtMS41LS42Ny0xLjUtMS41UzguMTcgMTAgOSAxMHMxLjUuNjcgMS41IDEuNVM5LjgzIDEzIDkgMTN6bTcuNS0xLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjUuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjV6TTggMTVoOHYySDh2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbWFydHBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2MThjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5ek0xNyAxOUg3VjVoMTB2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGVha2VyR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjIgMUg5LjhDOC44MSAxIDggMS44MSA4IDIuOHYxNC40YzAgLjk5LjgxIDEuNzkgMS44IDEuNzlsOC40LjAxYy45OSAwIDEuOC0uODEgMS44LTEuOFYyLjhjMC0uOTktLjgxLTEuOC0xLjgtMS44ek0xOCAxN2wtOC0uMDFWM2g4djE0em0tNC05YzEuMSAwIDItLjg5IDItMnMtLjktMi0yLTItMiAuODktMiAyIC45IDIgMiAyem0wIDhjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTUuOTMgOSAxNCA5cy0zLjUgMS41Ny0zLjUgMy41UzEyLjA3IDE2IDE0IDE2em0wLTVjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTQuODMgMTQgMTQgMTRzLTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXpNNiA1SDR2MTZhMiAyIDAgMCAwIDIgMmgxMHYtMkg2VjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGVha2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAySDdjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMS45OSAyIDEuOTlMMTcgMjJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnpNNyAyMFY0aDEwdjE2SDd6bTUtMTFjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yYTIgMiAwIDEgMCAwIDR6bTAgMmMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjU5IDcuNDEgMTguMTcgMTFINnYyaDEyLjE3bC0zLjU5IDMuNTlMMTYgMThsNi02LTYtNi0xLjQxIDEuNDF6TTIgNnYxMmgyVjZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxldEFuZHJvaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDBINkM0LjM0IDAgMyAxLjM0IDMgM3YxOGMwIDEuNjYgMS4zNCAzIDMgM2gxMmMxLjY2IDAgMy0xLjM0IDMtM1YzYzAtMS42Ni0xLjM0LTMtMy0zem0tNCAyMmgtNHYtMWg0djF6bTUuMjUtM0g0Ljc1VjNoMTQuNXYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxldE1hYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAwaC0xNEEyLjUgMi41IDAgMCAwIDIgMi41djE5QTIuNSAyLjUgMCAwIDAgNC41IDI0aDE0YTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTlBMi41IDIuNSAwIDAgMCAxOC41IDB6bS03IDIzYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXptNy41LTRINFYzaDE1djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFibGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNmMwLTEuMS0uOS0yLTItMnptLTIgMTRINVY2aDE0djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG95cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNzUgMTAuMDggMTcuNCA2LjA1QTIuOTc4IDIuOTc4IDAgMCAwIDE0LjU2IDRIOS40NEM4LjE1IDQgNyA0LjgyIDYuNiA2LjA1TDUuODEgOC40IDQuNDEgN2wuMjktLjI5QS45OTYuOTk2IDAgMSAwIDMuMjkgNS4zbC0yIDJBLjk5Ni45OTYgMCAxIDAgMi43IDguNzFsLjMtLjMgMS43OSAxLjc5QzMuMTggMTAuNzIgMiAxMi4yMiAyIDE0YzAgMS40OS44MyAyLjc4IDIuMDUgMy40N0EyLjk5MSAyLjk5MSAwIDAgMCA3IDIwYzEuMyAwIDIuNC0uODQgMi44Mi0yaDQuMzdjLjQxIDEuMTYgMS41MSAyIDIuODIgMiAxLjQ5IDAgMi43My0xLjEgMi45NS0yLjUzQzIxLjE3IDE2Ljc4IDIyIDE1LjQ5IDIyIDE0YzAtMS45NS0xLjQtMy41Ny0zLjI1LTMuOTJ6TTEzIDZoMS41NmExIDEgMCAwIDEgLjk1LjY4bDEuMSAzLjMySDEzVjZ6bS00LjUxLjY4QTEgMSAwIDAgMSA5LjQ0IDZIMTF2NEg3LjQxbC0uMDItLjAyIDEuMS0zLjN6TTcgMThjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMTAgMGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLjQ5LTIuNjhBMy4wMjggMy4wMjggMCAwIDAgMTcgMTRjLTEuMyAwLTIuNC44NC0yLjgyIDJIOS44MkM5LjQgMTQuODQgOC4zIDE0IDcgMTRjLTEuMDMgMC0xLjk1LjUzLTIuNDkgMS4zMkM0LjIgMTQuOTcgNCAxNC41MSA0IDE0YzAtMS4xLjktMiAyLTJoMTJjMS4xIDAgMiAuOSAyIDIgMCAuNTEtLjIuOTctLjUxIDEuMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMS45OS0uOSAxLjk5LTJMMjMgNWMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjVoMTh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb2dhbWVBc3NldE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgOWMuODMgMCAxLjUuNjcgMS41IDEuNXMtLjY3IDEuNS0xLjUgMS41LTEuNS0uNjctMS41LTEuNS42Ny0xLjUgMS41LTEuNXptLTYuNjctMUgyMHY4aC0xLjE3bDEuODcgMS44N2MuNzUtLjI5IDEuMy0xLjAyIDEuMy0xLjg3VjhjMC0xLjEtLjktMi0yLTJIOC44M2wyIDJ6bTguOTUgMTQuNjFMMTUuMTcgMThINGMtMS4xIDAtMi0uOS0yLTJWOGMwLS44NS41NS0xLjU4IDEuMy0xLjg3TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOCAxOC4zOC0xLjQgMS40MnpNMTMuMTcgMTZsLTMtM0g5djJIN3YtMkg1di0yaDJWOS44M0w1LjE3IDhINHY4aDkuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb2dhbWVBc3NldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMEgzVjhoMTh2OHpNNiAxNWgydi0yaDJ2LTJIOFY5SDZ2Mkg0djJoMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNC41XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTguNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0Y2hPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3YzIuNzYgMCA1IDIuMjQgNSA1IDAgLjY0LS4xMyAxLjI1LS4zNSAxLjgybDEuNSAxLjVhNi45NjMgNi45NjMgMCAwIDAtMS43OS04Ljc5TDE1IDJIOWwtLjk2IDMuMjEgMi4xNCAyLjE0QzEwLjc1IDcuMTMgMTEuMzYgNyAxMiA3em0tMS41MS0zaDMuMDJsLjM4IDEuMjdjLS41NS0uMTYtMS45Ny0uNTEtMy43OCAwTDEwLjQ5IDR6TTIuODEgMi44MSAxLjM5IDQuMjJsNC40NiA0LjQ2YTYuOTYzIDYuOTYzIDAgMCAwIDEuNzkgOC43OUw5IDIyaDZsLjk2LTMuMjEgMy44MiAzLjgyIDEuNDEtMS40MUwyLjgxIDIuODF6TTEzLjUxIDIwaC0zLjAybC0uMzgtMS4yN2MuNTUuMTUgMS45Ny41MSAzLjc4IDBMMTMuNTEgMjB6TTEyIDE3Yy0yLjc2IDAtNS0yLjI0LTUtNSAwLS42NC4xMy0xLjI1LjM1LTEuODJsNi40NyA2LjQ3Yy0uNTcuMjItMS4xOC4zNS0xLjgyLjM1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjMxIDIgLjQxIDIuNDhDMTMuODcgNC4xNyAxMi45NiA0IDEyIDRjLS45NSAwLTEuODcuMTctMi43MS40N0w5LjcgMmg0LjYxbS40MSAxNy41MkwxNC4zMSAyMkg5LjdsLS40MS0yLjQ3Yy44NC4zIDEuNzYuNDcgMi43MS40Ny45NiAwIDEuODctLjE3IDIuNzItLjQ4TTE2IDBIOGwtLjk1IDUuNzNDNS4xOSA3LjE5IDQgOS40NSA0IDEyczEuMTkgNC44MSAzLjA1IDYuMjdMOCAyNGg4bC45Ni01LjczQzE4LjgxIDE2LjgxIDIwIDE0LjU0IDIwIDEycy0xLjE5LTQuODEtMy4wNC02LjI3TDE2IDB6bS00IDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9Nb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDMgMy41NmMtMS42Ny0xLjM5LTMuNzQtMi4zLTYuMDMtMi41MXYyLjAxYzEuNzMuMTkgMy4zMS44OCA0LjYxIDEuOTJsMS40Mi0xLjQyek0xMSAzLjA2VjEuMDVjLTIuMjkuMi00LjM2IDEuMTItNi4wMyAyLjUxbDEuNDIgMS40MkE4LjkyOCA4LjkyOCAwIDAgMSAxMSAzLjA2ek00Ljk4IDYuMzkgMy41NiA0Ljk3QzIuMTcgNi42NCAxLjI2IDguNzEgMS4wNSAxMWgyLjAxYy4xOS0xLjczLjg4LTMuMzEgMS45Mi00LjYxek0yMC45NCAxMWgyLjAxYy0uMjEtMi4yOS0xLjEyLTQuMzYtMi41MS02LjAzbC0xLjQyIDEuNDJBOC45MjggOC45MjggMCAwIDEgMjAuOTQgMTF6TTcgMTJsMy40NCAxLjU2TDEyIDE3bDEuNTYtMy40NEwxNyAxMmwtMy40NC0xLjU2TDEyIDdsLTEuNTYgMy40NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjFhOC45NiA4Ljk2IDAgMCAxLTcuNDYtNEg3di0ySDF2Nmgydi0yLjdjMS45OSAyLjg0IDUuMjcgNC43IDkgNC43IDQuODcgMCA5LTMuMTcgMTAuNDQtNy41NmwtMS45Ni0uNDVDMTkuMjUgMTguNDggMTUuOTIgMjEgMTIgMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbGluZHNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDExLjI1YzAgLjk3Ljc4IDEuNzUgMS43NSAxLjc1czEuNzUtLjc4IDEuNzUtMS43NUgyMnYtMmgtMnptLTItOGgtMlY5aDJ2MnptLTQgMEg2VjloOHYyem0wIDJ2Mkg2di0yaDh6bTIgMGgydjJoLTJ2LTJ6bTItNmgtMlY1aDJ2MnptLTQtMnYySDZWNWg4ek02IDE5di0yaDh2Mkg2em0xMCAwdi0yaDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsaW5kcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTE2IDloMnYyaC0yVjl6bS0yIDJINlY5aDh2MnptNC00aC0yVjVoMnYyem0tNC0ydjJINlY1aDh6TTYgMTl2LTZoOHYxLjgyQTEuNzQ2IDEuNzQ2IDAgMCAwIDE1IDE4YTEuNzQ2IDEuNzQ2IDAgMCAwIDEtMy4xOFYxM2gydjZINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyb2FkY2FzdE9uSG9tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDZjMC0xLjEtLjktMi0yLTJINHYyaDE2djIuNTljLjczLjI5IDEuNC42OSAyIDEuMTdWNnpNOCA5SDNjLS41IDAtMSAuNS0xIDF2OWMwIC41LjUgMSAxIDFoNWMuNSAwIDEtLjUgMS0xdi05YzAtLjUtLjUtMS0xLTF6bS0xIDlINHYtN2gzdjd6TTE3Ljc1IDE2Ljk3Yy4zLS4yMy41LS41Ny41LS45N2ExLjI1IDEuMjUgMCAwIDAtMi41IDBjMCAuNC4yLjc1LjUuOTdWMjJoMS41di01LjAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMy41YTIuNSAyLjUgMCAwIDEgMi41IDIuNWMwIC42OS0uMjggMS4zMS0uNzMgMS43NmwxLjA2IDEuMDZDMjAuNTUgMTguMSAyMSAxNy4xIDIxIDE2YzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0YzAgMS4xLjQ1IDIuMSAxLjE3IDIuODNsMS4wNi0xLjA2QTIuNSAyLjUgMCAwIDEgMTcgMTMuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOS41YTYuNSA2LjUgMCAwIDAtNi41IDYuNWMwIDEuNzkuNzMgMy40MiAxLjkgNC42bDEuMDYtMS4wNkMxMi41NiAxOC42MyAxMiAxNy4zOCAxMiAxNmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS4zNy0uNTYgMi42Mi0xLjQ2IDMuNTJsMS4wNyAxLjA2QTYuNSA2LjUgMCAwIDAgMTcgOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJvYWRjYXN0T25QZXJzb25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgMTl2LTlsNi00LjUgNC4wOCAzLjA2Yy44MS0uMzIgMS42OS0uNTEgMi42MS0uNTRMMTAgMyAyIDl2MTJoOC43NmMtLjQ4LS42LS44OC0xLjI3LTEuMTctMkg0ek0xNyAxNC43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjUgMCAuNC4yLjc1LjUuOTdWMjJoMS41di01LjAzYy4zLS4yMy41LS41Ny41LS45NyAwLS42OS0uNTYtMS4yNS0xLjI1LTEuMjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYy0yLjIxIDAtNCAxLjc5LTQgNCAwIDEuMS40NSAyLjEgMS4xNyAyLjgzbDEuMDYtMS4wNkEyLjUgMi41IDAgMSAxIDE5LjUgMTZjMCAuNjktLjI4IDEuMzEtLjczIDEuNzZsMS4wNiAxLjA2QzIwLjU1IDE4LjEgMjEgMTcuMSAyMSAxNmMwLTIuMjEtMS43OS00LTQtNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOS41YTYuNSA2LjUgMCAwIDAtNi41IDYuNWMwIDEuNzkuNzMgMy40MiAxLjkgNC42bDEuMDYtMS4wNkMxMi41NiAxOC42MyAxMiAxNy4zOCAxMiAxNmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMS4zNy0uNTYgMi42Mi0xLjQ2IDMuNTJsMS4wNyAxLjA2QTYuNSA2LjUgMCAwIDAgMTcgOS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3VydGFpbnNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek0xMyA1djE0aC0yVjVoMnpNNiA1aDN2MTRINlY1em05IDE0VjVoM3YxNGgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnRhaW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTlWM0g0djE2SDJ2MmgyMHYtMmgtMnptLTItOC4xNGMtMi4wNS0uNTgtMy42NC0yLjkzLTMuOTQtNS44NkgxOHY1Ljg2ek0xNS44MSAxMmMtMi4wNCAxLjM1LTMuNSAzLjk0LTMuNzYgN2gtLjA5Yy0uMjYtMy4wNi0xLjcyLTUuNjUtMy43Ni03IDIuMDQtMS4zNSAzLjUtMy45NCAzLjc2LTdoLjA5Yy4yNiAzLjA2IDEuNzIgNS42NSAzLjc2IDd6TTkuOTQgNWMtLjMgMi45My0xLjg5IDUuMjctMy45NCA1Ljg2VjVoMy45NHpNNiAxMy4xNGMyLjA1LjU4IDMuNjQgMi45MyAzLjk0IDUuODZINnYtNS44NnpNMTQuMDYgMTljLjMtMi45MyAxLjg5LTUuMjcgMy45NC01Ljg2VjE5aC0zLjk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNCb2x0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNjkgMi4yMSA0LjMzIDExLjQ5Yy0uNjQuNTgtLjI4IDEuNjUuNTggMS43M0wxMyAxNGwtNC44NSA2Ljc2Yy0uMjIuMzEtLjE5Ljc0LjA4IDEuMDEuMy4zLjc3LjMxIDEuMDguMDJsMTAuMzYtOS4yOGMuNjQtLjU4LjI4LTEuNjUtLjU4LTEuNzNMMTEgMTBsNC44NS02Ljc2Yy4yMi0uMzEuMTktLjc0LS4wOC0xLjAxYS43Ny43NyAwIDAgMC0xLjA4LS4wMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZWN0cmljTWV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAxMWE5IDkgMCAwIDAtMTggMGMwIDMuOTIgMi41MSA3LjI0IDYgOC40OFYyMmgydi0yLjA2YTguMjYyIDguMjYyIDAgMCAwIDIgMFYyMmgydi0yLjUyYzMuNDktMS4yNCA2LTQuNTYgNi04LjQ4em0tOSA3Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA3aDh2Mkg4ek0xMi43NSAxMGwtMyAzTDExIDE0LjI1IDkuNzUgMTUuNWwxLjUgMS41IDMtM0wxMyAxMi43NWwxLjI1LTEuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbmVyZ3lTYXZpbmdzTGVhZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNjLTQuOCAwLTkgMy44Ni05IDkgMCAyLjEyLjc0IDQuMDcgMS45NyA1LjYxTDMgMTkuNTkgNC40MSAyMWwxLjk3LTEuOTdBOS4wMTIgOS4wMTIgMCAwIDAgMTIgMjFjMi4zIDAgNC42MS0uODggNi4zNi0yLjY0QTguOTUgOC45NSAwIDAgMCAyMSAxMlYzaC05em03IDljMCAxLjg3LS43MyAzLjYzLTIuMDUgNC45NUE2Ljk2IDYuOTYgMCAwIDEgMTIgMTljLTMuODYgMC03LTMuMTQtNy03IDAtMS45Ljc0LTMuNjggMi4xLTQuOTlBNi45NCA2Ljk0IDAgMCAxIDEyIDVoN3Y3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjQ2IDEyLjYzIDQuMDUuNC0yLjQ0IDMuMzNjLS4xMS4xNi0uMS4zOC4wNC41Mi4xNS4xNS40LjE2LjU2LjAxbDUuMTYtNC42M2MuMzMtLjMuMTUtLjg1LS4zLS44OWwtNC4wNS0uNCAyLjQ0LTMuMzNjLjExLS4xNi4xLS4zOC0uMDQtLjUyYS40MDUuNDA1IDAgMCAwLS41Ni0uMDFsLTUuMTYgNC42M2MtLjMyLjMtLjE0Ljg1LjMuODl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHYXNNZXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRoLTFWMmgtMnYyaC0yVjJIOXYySDhDNS43OSA0IDQgNS43OSA0IDh2MTBjMCAyLjIxIDEuNzkgNCA0IDRoOGMyLjIxIDAgNC0xLjc5IDQtNFY4YzAtMi4yMS0xLjc5LTQtNC00em0yIDE0YzAgMS4xLS45IDItMiAySDhjLTEuMSAwLTItLjktMi0yVjhjMC0xLjEuOS0yIDItMmg4YzEuMSAwIDIgLjkgMiAydjEwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTUuNTRDOS41IDE2LjkgMTAuNjIgMTggMTIgMThzMi41LTEuMSAyLjUtMi40NmMwLTEuMDktLjQ1LTEuNDEtMi41LTMuNzktMi4wNyAyLjQtMi41IDIuNzEtMi41IDMuNzl6TTggOGg4djJIOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYXRQdW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxOGMzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNi02IDIuNjktNiA2IDIuNjkgNiA2IDZ6bS0uNzUtMi4wOGMtLjU1LS4xLTEuMDUtLjMyLTEuNS0uNjJsMS41LTEuNXYyLjEyem0xLjUgMHYtMi4xMWwxLjUgMS41Yy0uNDUuMy0uOTUuNTEtMS41LjYxem0yLjU2LTEuNjctMS41LTEuNWgyLjExYy0uMS41NS0uMzEgMS4wNS0uNjEgMS41em0uNjEtM2gtMi4xMWwxLjUtMS41Yy4zLjQ1LjUxLjk1LjYxIDEuNXptLTMuMTctMy4xN2MuNTUuMSAxLjA1LjMyIDEuNS42MmwtMS41IDEuNVY4LjA4ek0xMiAxMWMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tLjc1LTIuOTJ2Mi4xMWwtMS41LTEuNWMuNDUtLjMuOTUtLjUxIDEuNS0uNjF6TTguNjkgOS43NWwxLjUgMS41SDguMDhjLjEtLjU1LjMxLTEuMDUuNjEtMS41em0xLjUgMy0xLjUgMS41Yy0uMy0uNDQtLjUxLS45NS0uNjItMS41aDIuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb2RlRmFuT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGMtMS4wNiAwLTEuNjQuMjktMy45MSAxLjE5LS4xOS0uMTQtLjQtLjI3LS42Mi0uMzcuMjUtMS4wMy42MS0xLjUzIDEuMzMtMi4wNC44MS0uNTcgMS4yLTEuMzQgMS4yLTIuMjggMC0xLjIyLS45NS0yLjUtMi42LTIuNS0zLjA4IDAtNC45MiAxLjQ3LTUuMzIgMy4yNmwyLjMzIDIuMzNDMTAuMDcgNi42OSAxMCA2LjM4IDEwIDZjMC0xLjE4IDEuNC0yIDMuNC0yIC41NyAwIC42LjQyLjYuNSAwIC4yNy0uMDUuNDMtLjM1LjY1LTEuMjcuOS0xLjgzIDEuOTEtMi4xNiAzLjM5bC0uMDIuMSA3LjI1IDcuMjVjLjI0LjA2LjUuMTEuNzguMTEgMS4yMiAwIDIuNS0uOTUgMi41LTIuNkMyMiA5LjkxIDIwLjExIDggMTggOHptMS41IDZjLS4yNyAwLS40My0uMDUtLjY1LS4zNS0uOS0xLjI3LTEuOTEtMS44My0zLjM5LTIuMTZhMy4xMiAzLjEyIDAgMCAwLS4xNS0uNjJjMS44LS43NSAyLjE4LS44NyAyLjY5LS44NyAxLjE4IDAgMiAxLjQgMiAzLjQgMCAuNTctLjQyLjYtLjUuNnpNMS4zOSA0LjIybDMuODkgMy44OUM1LjA0IDguMDUgNC43OCA4IDQuNSA4IDMuMjggOCAyIDguOTUgMiAxMC42IDIgMTQuMDkgMy44OSAxNiA2IDE2YzEuMDYgMCAxLjY0LS4yOSAzLjkxLTEuMTkuMTkuMTQuNC4yNy42Mi4zNy0uMjUgMS4wMy0uNjEgMS41My0xLjMzIDIuMDQtLjgxLjU3LTEuMiAxLjM0LTEuMiAyLjI4IDAgMS4yMi45NSAyLjUgMi42IDIuNSAzLjA4IDAgNC45Mi0xLjQ3IDUuMzItMy4yNmwzLjg2IDMuODYgMS40MS0xLjQxTDIuODEgMi44MSAxLjM5IDQuMjJ6bTExLjEzIDExLjI0Yy4wMyAwIC4wNi0uMDIuMDktLjAybC45Ny45N2MuMzUuOS40MiAxLjIxLjQyIDEuNTkgMCAxLjE4LTEuNCAyLTMuNCAyLS41NyAwLS42LS40Mi0uNi0uNSAwLS4yNy4wNS0uNDMuMzUtLjY1IDEuMjgtLjg5IDEuODMtMS45MSAyLjE3LTMuMzl6bS0zLjk4LTIuOTRjLjAzLjIyLjA4LjQyLjE1LjYyLTEuOC43NC0yLjE4Ljg2LTIuNjkuODYtMS4xOCAwLTItMS40LTItMy40IDAtLjU3LjQyLS42LjUtLjYuMjcgMCAuNDMuMDUuNjUuMzUuODkgMS4yOCAxLjkxIDEuODMgMy4zOSAyLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmVzdENhbVdpcmVkU3RhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxYy0uMTUgMCAuMTEtLjAyLTQuMjguNDJDOC40NyAxLjc1IDYgNC40OCA2IDcuNzVzMi40NyA2IDUuNzIgNi4zM2wxLjkuMTktLjU2Ljg1Yy0uMzUtLjA4LS43LS4xMi0xLjA2LS4xMi0yLjc2IDAtNSAyLjI0LTUgNXYyYzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xdi0yYzAtMS42Ny0uODMtMy4xNS0yLjA5LTQuMDZsLjk3LTEuNDVjLjA0IDAgLjA5LjAxLjEzLjAxIDEuMDkgMCAyLS44OSAyLTJWM0MxOCAxLjg5IDE3LjA5IDEgMTYgMXptLTEgMjBIOXYtMWMwLTEuNjUgMS4zNS0zIDMtM3MzIDEuMzUgMyAzdjF6TTggNy43NWMwLTIuMjUgMS42OS00LjExIDMuOTItNC4zNEwxNiAzbC4wMyA5LjUtNC4xMS0uNDJBNC4zMzYgNC4zMzYgMCAwIDEgOCA3Ljc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT2lsQmFycmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMy4wNUM5IDE0LjY4IDEwLjM0IDE2IDEyIDE2czMtMS4zMiAzLTIuOTVjMC0xLjMxLS41My0xLjY5LTMtNC41NS0yLjQ4IDIuODgtMyAzLjI1LTMgNC41NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTFWNWgxYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMXY2SDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMXY2SDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMTZjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTF2LTZoMXptLTMgNkg3di02Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xVjVoMTB2NmMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMXY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHJvcGFuZVRhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA2LjE0VjRjMC0xLjEtLjktMi0yLTJIOWMtMS4xIDAtMiAuOS0yIDJ2Mi4xNGMtMS43Mi40NS0zIDItMyAzLjg2djhjMCAyLjIxIDEuNzkgNCA0IDRoOGMyLjIxIDAgNC0xLjc5IDQtNHYtOGMwLTEuODYtMS4yOC0zLjQxLTMtMy44NnpNOSA0aDZ2MmgtMmMwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMUg5VjR6TTggOGg4YzEuMSAwIDIgLjkgMiAydjNINnYtM2MwLTEuMS45LTIgMi0yem04IDEySDhjLTEuMSAwLTItLjktMi0ydi0zaDEydjNjMCAxLjEtLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQcm9wYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNmgtMVY1YzAtMS4xLS45LTItMi0yaC00Yy0xLjEgMC0yIC45LTIgMnYxSDdjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDZ2M2gydi0zaDZ2M2gydi0zYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0tNy0xaDR2MWgtNFY1em03IDExSDdjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoMTBjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb2xsZXJTaGFkZXNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDguMjVjMCAuOTcuNzggMS43NSAxLjc1IDEuNzVzMS43NS0uNzggMS43NS0xLjc1SDIydi0yaC0yek0xOCA1djEwSDZWNWgxMnpNNiAxOXYtMmg1djJINnptNyAwdi0yaDV2MmgtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvbGxlclNoYWRlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE5VjNINHYxNkgydjJoMjB2LTJoLTJ6TTE4IDV2Nkg2VjVoMTJ6TTYgMTl2LTZoNXYxLjgyQTEuNzQ2IDEuNzQ2IDAgMCAwIDEyIDE4YTEuNzQ2IDEuNzQ2IDAgMCAwIDEtMy4xOFYxM2g1djZINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnNvckRvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0djE2SDZWNGgxMm0wLTJINmMtMS4xIDAtMiAuOS0yIDJ2MThoMTZWNGMwLTEuMS0uOS0yLTItMnptLTIuNSA4LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNVMxNyAxMi44MyAxNyAxMnMtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2Vuc29yT2NjdXBpZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMWMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek0xMiAxMmMtMS44NCAwLTMuNTYuNS01LjAzIDEuMzctLjYxLjM1LS45NyAxLjAyLS45NyAxLjcyVjE3aDEydi0xLjkxYzAtLjctLjM2LTEuMzYtLjk3LTEuNzJBOS44NDQgOS44NDQgMCAwIDAgMTIgMTJ6bS0zLjg2IDNjMS4xOC0uNjUgMi41MS0xIDMuODYtMXMyLjY4LjM1IDMuODUgMUg4LjE0ek0yMS4yMyA4LjE1bDEuODUtLjc3QTEyLjA1NiAxMi4wNTYgMCAwIDAgMTYuNjIuOTJsLS43NyAxLjg1YzIuNDIgMS4wMiA0LjM2IDIuOTYgNS4zOCA1LjM4ek04LjE1IDIuNzcgNy4zOC45MkExMi4wODkgMTIuMDg5IDAgMCAwIC45MiA3LjM4bDEuODUuNzdjMS4wMi0yLjQyIDIuOTYtNC4zNiA1LjM4LTUuMzh6TTIuNzcgMTUuODVsLTEuODUuNzdjMS4yMiAyLjkxIDMuNTUgNS4yNSA2LjQ2IDYuNDZsLjc3LTEuODVhMTAuMTE3IDEwLjExNyAwIDAgMS01LjM4LTUuMzh6TTE1Ljg1IDIxLjIzbC43NyAxLjg1YzIuOTEtMS4yMiA1LjI1LTMuNTUgNi40Ni02LjQ2bC0xLjg1LS43N2ExMC4xMTcgMTAuMTE3IDAgMCAxLTUuMzggNS4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbnNvcldpbmRvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDJ2N2gtNHYtMWgtNHYxSDZWNGgxMnpNNiAyMHYtN2gxMnY3SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaGllbGRNb29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMiA0IDV2Ni4wOWMwIDUuMDUgMy40MSA5Ljc2IDggMTAuOTEgNC41OS0xLjE1IDgtNS44NiA4LTEwLjkxVjVsLTgtM3ptNiA5LjA5YzAgNC0yLjU1IDcuNy02IDguODMtMy40NS0xLjEzLTYtNC44Mi02LTguODN2LTQuN2w2LTIuMjUgNiAyLjI1djQuN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4wMSAxNC4zM2MxLjc1IDIuMTcgNS4xMiAyLjI0IDYuOTYuMDcuMjMtLjI3LjA4LS42OC0uMjYtLjc0YTQuNDkxIDQuNDkxIDAgMCAxLTMuMTgtMi4yIDQuNTAzIDQuNTAzIDAgMCAxLS4zMi0zLjg2LjQ1My40NTMgMCAwIDAtLjUxLS42Yy0zLjM0LjYyLTQuODkgNC42MS0yLjY5IDcuMzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb2xhclBvd2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJINEwyIDIyaDIwbC0yLTEwem0tMS42NCAyIC40IDJIMTN2LTJoNS4zNnpNMTEgMTR2Mkg1LjI0bC40LTJIMTF6bS02LjE2IDRIMTF2Mkg0LjQ0bC40LTJ6TTEzIDIwdi0yaDYuMTZsLjQgMkgxM3pNMTEgOGgydjNoLTJ6TTE1Ljc2NCA3LjIwNWwxLjQxNS0xLjQxNEwxOS4zIDcuOTEybC0xLjQxNCAxLjQxNHpNNC43MDUgNy45MTMgNi44MjYgNS43OSA4LjI0IDcuMjA2IDYuMTIgOS4zMjd6TTMgMmgzdjJIM3pNMTggMmgzdjJoLTN6TTEyIDdjMi43NiAwIDUtMi4yNCA1LTVoLTJjMCAxLjY1LTEuMzUgMy0zIDNTOSAzLjY1IDkgMkg3YzAgMi43NiAyLjI0IDUgNSA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxTaGFkZXNDbG9zZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek0xMyA1aDEuNXYxNEgxM1Y1em0tMiAxNEg5LjVWNUgxMXYxNHpNNiA1aDEuNXYxNEg2VjV6bTEwLjUgMTRWNUgxOHYxNGgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmVydGljYWxTaGFkZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxOVYzSDR2MTZIMnYyaDIwdi0yaC0yek0xNCA1djE0aC00VjVoNHpNNiA1aDJ2MTRINlY1em0xMCAxNFY1aDJ2MTRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaW5kUG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDNoNnYySDR6TTEgN2g1djJIMXpNMyAxOWg1djJIM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuMjEgMTguNjEtMi4yOC00LjFhMi4wNSAyLjA1IDAgMCAwLTEuMjYtLjk3bC0yLjY5LS42N2EyLjk1IDIuOTUgMCAwIDAtLjM3LTEuMzNsMy45Ni02LjU5Yy42NS0xLjA4LjMtMi40OC0uNzgtMy4xM2EyLjI4OCAyLjI4OCAwIDAgMC0yLjczLjNsLTMuNDMgMy4yMWMtLjQuMzctLjYzLjktLjYzIDEuNDV2My40Yy0uNDcuMTctLjg5LjQ1LTEuMjMuODJIMy4yOGEyLjI3OSAyLjI3OSAwIDAgMC0uNjMgNC40N2w0LjUxIDEuMjljLjE4LjA1LjM3LjA4LjU1LjA4LjM2IDAgLjcyLS4xIDEuMDMtLjI5bDIuMjQtMS4zNGMuMjkuMjYuNjMuNDcgMS4wMi42MVYyMWMtMS4xIDAtMiAuOS0yIDJoNmMwLTEuMS0uOS0yLTItMnYtNC4yOGw0LjYxIDQuNjFjLjQ1LjQ1IDEuMDMuNjcgMS42MS42Ny41OCAwIDEuMTctLjIyIDEuNjEtLjY3LjcyLS43Mi44OC0xLjgzLjM4LTIuNzJ6TTcuNzIgMTQuODQgMy4yIDEzLjU1YS4yNzkuMjc5IDAgMCAxLS4yLS4yN2MwLS4xNS4xMy0uMjguMjgtLjI4aDYuNzNjMCAuMTUuMDEuMy4wMy40NGwtMi4zMiAxLjR6TTEzIDE0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTEtMy44NlY2Ljc4bDMuNDMtMy4yMWMuMDUtLjA1LjE5LS4xMi4zNC0uMDQuMTMuMDguMTguMjUuMS4zOGwtMy43NCA2LjI0LS4xMy0uMDF6bTYuNDIgOS43OGMtLjA1LjA1LS4yNC4xNi0uNCAwbC00Ljg1LTQuODVjLjA4LS4wOS4xNi0uMTguMjQtLjI4bDIuNzguNjkgMi4yOCA0LjFjLjA2LjExLjA0LjI1LS4wNS4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTEwTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMS41aDIuNWMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDEzYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtNC41SDE1djNoLTEuNVY3ek03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxMU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTEuNUgxMXYtNkg4VjdoMS41ek0xNC41IDExLjVIMTZ2LTZoLTNWN2gxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxMk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjUgMTEuNUgxMHYtNkg3VjdoMS41ek0xNi41IDEwaC0zVjloMmMuNTUgMCAxLS40NSAxLTFWNi41YzAtLjU1LS40NS0xLTEtMUgxMlY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNWg0LjVWMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxM01wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTYuNSAxMC41di00YzAtLjU1LS40NS0xLTEtMUgxMlY3aDN2MWgtMnYxaDJ2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTRNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTIuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV6bTMgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxMS41SDEwdi02SDdWN2gxLjV6TTE1IDExLjVoMS41VjEwaDFWOC41aC0xdi0zSDE1djNoLTEuNXYtM0gxMlYxMGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTVNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTYuNSAxMC41VjljMC0uNTUtLjQ1LTEtMS0xaC0yVjdoM1Y1LjVIMTJWOWgzdjFoLTN2MS41aDMuNWMuNTUgMCAxLS40NSAxLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUxNk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMS41aDIuNWMuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTFoLTJWN2gzVjUuNUgxM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTIuNUgxNXYxLjVoLTEuNVY5ek04LjUgMTEuNUgxMHYtNkg3VjdoMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMTdNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTMuMjUgMTEuNUgxNWwxLjQ2LTQuNzFjLjE5LS42NC0uMjktMS4yOS0uOTYtMS4yOUgxMlY3aDIuNjJsLTEuMzcgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMThNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDExLjVIMTB2LTZIN1Y3aDEuNXpNMTMgMTEuNWgyLjVjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMUgxM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTVIMTVWOGgtMS41VjYuNXptMCAyLjVIMTV2MS41aC0xLjVWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTE5TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDE4LjVIMTVWMTdoMmMuNTUgMCAxLS40NSAxLTF2LTIuNWMwLS41NS0uNDUtMS0xLTFoLTMuNXY2ek0xNSAxNGgxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxMS41SDEwdi02SDdWN2gxLjV6TTE2LjUgMTAuNXYtNGMwLS41NS0uNDUtMS0xLTFIMTNjLS41NSAwLTEgLjQ1LTEgMVY4YzAgLjU1LjQ1IDEgMSAxaDJ2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpNMTUgOGgtMS41VjYuNUgxNVY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMjBNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTIuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV6bTMgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDExLjVoMi41Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFIMTRjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS00LjVIMTZ2M2gtMS41Vjd6TTExIDEwSDhWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDYuNVY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNUgxMVYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTIxTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTEuNUgxNnYtNmgtM1Y3aDEuNXpNMTIgMTBIOVY5aDJjLjU1IDAgMS0uNDUgMS0xVjYuNWMwLS41NS0uNDUtMS0xLTFINy41VjdoM3YxaC0yYy0uNTUgMC0xIC40NS0xIDF2Mi41SDEyVjEwek03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xNSAxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZIMTVWMTd6bTAtM2gxLjV2MS41SDE1VjE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMjJNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTIuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV6bTMgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEwSDhWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDYuNVY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNUgxMVYxMHpNMTcuNSAxMGgtM1Y5aDJjLjU1IDAgMS0uNDUgMS0xVjYuNWMwLS41NS0uNDUtMS0xLTFIMTNWN2gzdjFoLTJjLS41NSAwLTEgLjQ1LTEgMXYyLjVoNC41VjEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMjNNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTIuNXY2SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV6bTMgM0gxNVYxNGgxLjV2MS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEwSDhWOWgyYy41NSAwIDEtLjQ1IDEtMVY2LjVjMC0uNTUtLjQ1LTEtMS0xSDYuNVY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNUgxMVYxMHpNMTcuNSAxMC41di00YzAtLjU1LS40NS0xLTEtMUgxM1Y3aDN2MWgtMnYxaDJ2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTI0TXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xNyAxMi41aC0zLjV2NkgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMXptLS41IDNIMTVWMTRoMS41djEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMEg4VjloMmMuNTUgMCAxLS40NSAxLTFWNi41YzAtLjU1LS40NS0xLTEtMUg2LjVWN2gzdjFoLTJjLS41NSAwLTEgLjQ1LTEgMXYyLjVIMTFWMTB6TTE2IDExLjVoMS41VjEwaDFWOC41aC0xdi0zSDE2djNoLTEuNXYtM0gxM1YxMGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMk1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEwaC0zVjloMmMuNTUgMCAxLS40NSAxLTFWNi41YzAtLjU1LS40NS0xLTEtMUgxMFY3aDN2MWgtMmMtLjU1IDAtMSAuNDUtMSAxdjIuNWg0LjVWMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzMEZwc1NlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgNHYyaDV2Mkg1djJoNHYySDR2Mmg1YzEuMSAwIDItLjkgMi0ydi0xLjVjMC0uODMtLjE3LTEuNS0xLTEuNS44MyAwIDEtLjY3IDEtMS41VjZjMC0xLjEtLjktMi0yLTJINHptMTQgMGMxLjEgMCAyIC45IDIgMnY2YzAgMS4xLS45IDItMiAyaC0zYy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJoM3ptMCAyaC0zdjZoM1Y2ek01IDIySDN2LTVoMnY1em00IDBIN3YtNWgydjV6bTQgMGgtMnYtNWgydjV6bTggMGgtNnYtNWg2djV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmUzTXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjUgMTRoMXYzSDEwdi0zaDF2NC41aDEuNXYtNWMwLS41NS0uNDUtMS0xLTFIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41VjE0ek0xMy41IDEyLjV2NkgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41em0zIDNIMTVWMTRoMS41djEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEwLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDEwVjdoM3YxaC0ydjFoMnYxaC0zdjEuNWgzLjVjLjU1IDAgMS0uNDUgMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDExLjVIMTRWMTBoMVY4LjVoLTF2LTNoLTEuNXYzSDExdi0zSDkuNVYxMGgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lNU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEwLjVWOWMwLS41NS0uNDUtMS0xLTFoLTJWN2gzVjUuNUgxMFY5aDN2MWgtM3YxLjVoMy41Yy41NSAwIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTYwRnBzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNnY2aC0zVjZoM3ptMC0yaC0zYy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNyAyVjRINmMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDNjMS4xIDAgMi0uOSAyLTJ2LTJjMC0xLjEtLjktMi0yLTJINlY2aDV6bS0yIDR2Mkg2di0yaDN6TTUgMjJIM3YtNWgydjV6bTQgMEg3di01aDJ2NXptNCAwaC0ydi01aDJ2NXptOCAwaC02di01aDZ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTZNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTEuNWgyLjVjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xaC0yVjdoM1Y1LjVIMTFjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxem0uNS0yLjVIMTN2MS41aC0xLjVWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZTdNcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNSAxNGgxdjNIMTB2LTNoMXY0LjVoMS41di01YzAtLjU1LS40NS0xLTEtMUg3Yy0uNTUgMC0xIC40NS0xIDF2NWgxLjVWMTR6TTEzLjUgMTguNUgxNVYxN2gyYy41NSAwIDEtLjQ1IDEtMXYtMi41YzAtLjU1LS40NS0xLTEtMWgtMy41djZ6TTE1IDE0aDEuNXYxLjVIMTVWMTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuMjUgMTEuNUgxM2wxLjQ2LTQuNzFjLjE5LS42NC0uMjktMS4yOS0uOTYtMS4yOUgxMFY3aDIuNjJsLTEuMzcgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lOE1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSAxMS41aDIuNWMuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xSDExYy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMXptLjUtNUgxM1Y4aC0xLjVWNi41em0wIDIuNUgxM3YxLjVoLTEuNVY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lOU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy41IDE0aDF2M0gxMHYtM2gxdjQuNWgxLjV2LTVjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNVYxNHpNMTMuNSAxOC41SDE1VjE3aDJjLjU1IDAgMS0uNDUgMS0xdi0yLjVjMC0uNTUtLjQ1LTEtMS0xaC0zLjV2NnpNMTUgMTRoMS41djEuNUgxNVYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDEwLjV2LTRjMC0uNTUtLjQ1LTEtMS0xSDExYy0uNTUgMC0xIC40NS0xIDFWOGMwIC41NS40NSAxIDEgMWgydjFoLTN2MS41aDMuNWMuNTUgMCAxLS40NSAxLTF6TTEzIDhoLTEuNVY2LjVIMTNWOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEFQaG90byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZoLTMuMTdMMTYgNGgtNnYyaDUuMTJsMS44MyAySDIxdjEySDV2LTlIM3Y5YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnpNOCAxNGMwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01LTIuMjQtNS01LTUtNSAyLjI0LTUgNXptNS0zYzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM3pNNSA2aDNWNEg1VjFIM3YzSDB2MmgzdjNoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFBob3RvQWx0ZXJuYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyMEg0VjZoOVY0SDRjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJ2LTloLTJ2OXptLTcuNzktMy4xNy0xLjk2LTIuMzZMNS41IDE4aDExbC0zLjU0LTQuNzF6TTIwIDRWMWgtMnYzaC0zYy4wMS4wMSAwIDIgMCAyaDN2Mi45OWMuMDEuMDEgMiAwIDIgMFY2aDNWNGgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZFRvUGhvdG9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyem0tNy0xaDJ2LTRoNFY5aC00VjVoLTJ2NEg5djJoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkanVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ5IDIgMiA2LjQ5IDIgMTJzNC40OSAxMCAxMCAxMCAxMC00LjQ5IDEwLTEwUzE3LjUxIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMtOGMwIDEuNjYtMS4zNCAzLTMgM3MtMy0xLjM0LTMtMyAxLjM0LTMgMy0zIDMgMS4zNCAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBbmltYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyYy0yLjcxIDAtNS4wNSAxLjU0LTYuMjIgMy43OGE3LjA2MiA3LjA2MiAwIDAgMC0zIDNBNy4wMTQgNy4wMTQgMCAwIDAgMiAxNWMwIDMuODcgMy4xMyA3IDcgNyAyLjcxIDAgNS4wNS0xLjU0IDYuMjItMy43OGE3LjA2MiA3LjA2MiAwIDAgMCAzLTNBNy4wMTQgNy4wMTQgMCAwIDAgMjIgOWMwLTMuODctMy4xMy03LTctN3pNOSAyMGE1LjAwMiA1LjAwMiAwIDAgMS00LThjMCAzLjg3IDMuMTMgNyA3IDctLjg0LjYzLTEuODggMS0zIDF6bTMtM2E1LjAwMiA1LjAwMiAwIDAgMS00LThjMCAzLjg2IDMuMTMgNi45OSA3IDctLjg0LjYzLTEuODggMS0zIDF6bTQuNy0zLjNjLS41My4xOS0xLjEuMy0xLjcuMy0yLjc2IDAtNS0yLjI0LTUtNSAwLS42LjExLTEuMTcuMy0xLjcuNTMtLjE5IDEuMS0uMyAxLjctLjMgMi43NiAwIDUgMi4yNCA1IDUgMCAuNi0uMTEgMS4xNy0uMyAxLjd6TTE5IDEyYzAtMy44Ni0zLjEzLTYuOTktNy03YTUuMDAyIDUuMDAyIDAgMCAxIDcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lzdGFudFBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi4zNiA2IC4wOC4zOS4zMiAxLjYxSDE4djZoLTMuMzZsLS4wOC0uMzktLjMyLTEuNjFIN1Y2aDUuMzZNMTQgNEg1djE3aDJ2LTdoNS42bC40IDJoN1Y2aC01LjZMMTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lzdGFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDRsMyAzIDMtM2g0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTQuODNsLS41OS41OUwxMiAyMC4xN2wtMS41OS0xLjU5LS41OC0uNThINVY0aDE0djE0em0tNy0xIDEuODgtNC4xMkwxOCAxMWwtNC4xMi0xLjg4TDEyIDVsLTEuODggNC4xMkw2IDExbDQuMTIgMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1ZGlvdHJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDN2MTAuNTVjLS41OS0uMzQtMS4yNy0uNTUtMi0uNTUtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00VjdoNFYzaC02em0tMiAxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvQXdlc29tZU1vc2FpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXYxNGEyIDIgMCAwIDAgMiAyaDZWM0g1YTIgMiAwIDAgMC0yIDJ6bTYgMTRINVY1aDR2MTR6TTE5IDNoLTZ2OGg4VjVjMC0xLjEtLjktMi0yLTJ6bTAgNmgtNFY1aDR2NHpNMTMgMjFoNmMxLjEgMCAyLS45IDItMnYtNmgtOHY4em0yLTZoNHY0aC00di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXV0b0F3ZXNvbWVNb3Rpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAySDRjLTEuMSAwLTIgLjktMiAydjEwaDJWNGgxMFYyem00IDRIOGMtMS4xIDAtMiAuOS0yIDJ2MTBoMlY4aDEwVjZ6bTIgNGgtOGMtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC0xLjEtLjktMi0yLTJ6bTAgMTBoLTh2LThoOHY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXV0b0F3ZXNvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSA5IDEuMjUtMi43NUwyMyA1bC0yLjc1LTEuMjVMMTkgMWwtMS4yNSAyLjc1TDE1IDVsMi43NSAxLjI1ek0xOSAxNWwtMS4yNSAyLjc1TDE1IDE5bDIuNzUgMS4yNUwxOSAyM2wxLjI1LTIuNzVMMjMgMTlsLTIuNzUtMS4yNXpNMTEuNSA5LjUgOSA0IDYuNSA5LjUgMSAxMmw1LjUgMi41TDkgMjBsMi41LTUuNUwxNyAxMmwtNS41LTIuNXptLTEuNTEgMy40OUw5IDE1LjE3bC0uOTktMi4xOEw1LjgzIDEybDIuMTgtLjk5TDkgOC44M2wuOTkgMi4xOCAyLjE4Ljk5LTIuMTguOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvRml4SGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwIDcgLjk0LTIuMDZMMjMgNGwtMi4wNi0uOTRMMjAgMWwtLjk0IDIuMDZMMTcgNGwyLjA2Ljk0ek04LjUgN2wuOTQtMi4wNkwxMS41IDRsLTIuMDYtLjk0TDguNSAxbC0uOTQgMi4wNkw1LjUgNGwyLjA2Ljk0ek0yMCAxMi41bC0uOTQgMi4wNi0yLjA2Ljk0IDIuMDYuOTQuOTQgMi4wNi45NC0yLjA2TDIzIDE1LjVsLTIuMDYtLjk0ek0xNy43MSA5LjEybC0yLjgzLTIuODNjLS4yLS4xOS0uNDUtLjI5LS43MS0uMjktLjI2IDAtLjUxLjEtLjcxLjI5TDIuMjkgMTcuNDZhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDIuODMgMi44M2MuMi4yLjQ1LjMuNzEuM3MuNTEtLjEuNzEtLjI5bDExLjE3LTExLjE3Yy4zOS0uMzkuMzktMS4wMyAwLTEuNDJ6bS0zLjU0LS43IDEuNDEgMS40MUwxNC40MSAxMSAxMyA5LjU5bDEuMTctMS4xN3pNNS44MyAxOS41OWwtMS40MS0xLjQxTDExLjU5IDExIDEzIDEyLjQxbC03LjE3IDcuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvRml4Tm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAgNyAuOTQtMi4wNkwyMyA0bC0yLjA2LS45NEwyMCAxbC0uOTQgMi4wNkwxNyA0bDIuMDYuOTR6TTE3LjcxIDkuMTJsLTIuODMtMi44M2MtLjItLjE5LS40NS0uMjktLjcxLS4yOS0uMjYgMC0uNTEuMS0uNzEuMjlMMi4yOSAxNy40NmEuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi44MyAyLjgzYy4yLjIuNDUuMy43MS4zcy41MS0uMS43MS0uMjlsMTEuMTctMTEuMTdjLjM5LS4zOS4zOS0xLjAzIDAtMS40MnptLTMuNTQtLjcgMS40MSAxLjQxTDE0LjQxIDExIDEzIDkuNTlsMS4xNy0xLjE3ek01LjgzIDE5LjU5bC0xLjQxLTEuNDFMMTEuNTkgMTEgMTMgMTIuNDFsLTcuMTcgNy4xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF1dG9GaXhPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMCA3IC45NC0yLjA2TDIzIDRsLTIuMDYtLjk0TDIwIDFsLS45NCAyLjA2TDE3IDRsMi4wNi45NHpNMTQuMTcgOC40MmwxLjQxIDEuNDEtMS40NiAxLjQ2IDEuNDEgMS40MSAyLjE3LTIuMTdhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjgzLTIuODNhLjk4NC45ODQgMCAwIDAtLjctLjI5Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMTcgMi4xNyAxLjQxIDEuNDEgMS40Ny0xLjQ1ek0xLjM5IDQuMjJsNy4wNyA3LjA3LTYuMTcgNi4xN2EuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMi44MyAyLjgzYy4yLjIuNDUuMy43MS4zcy41MS0uMS43MS0uMjlsNi4xNy02LjE3IDcuMDcgNy4wNyAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnptOS45IDkuOS01LjQ2IDUuNDYtMS40MS0xLjQxIDUuNDYtNS40NiAxLjQxIDEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvU3RvcmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjQ3IDUuMmMtLjQ3LS4yNC0uOTYtLjQ0LTEuNDctLjYxdjEyLjAzYy0xLjE0LS40MS0yLjMxLS42Mi0zLjUtLjYyLTEuOSAwLTMuNzguNTQtNS41IDEuNThWNS40OEMxMC4zOCA0LjU1IDguNTEgNCA2LjUgNGMtMS43OSAwLTMuNDguNDQtNC45NyAxLjItLjMzLjE2LS41My41MS0uNTMuODh2MTIuMDhjMCAuNTguNDcuOTkgMSAuOTkuMTYgMCAuMzItLjA0LjQ4LS4xMkMzLjY5IDE4LjQgNS4wNSAxOCA2LjUgMThjMi4wNyAwIDMuOTguODIgNS41IDIgMS41Mi0xLjE4IDMuNDMtMiA1LjUtMiAxLjQ1IDAgMi44MS40IDQuMDIgMS4wNC4xNi4wOC4zMi4xMi40OC4xMi41MiAwIDEtLjQxIDEtLjk5VjYuMDhjMC0uMzctLjItLjcyLS41My0uODh6TTEwIDE2LjYyQzguODYgMTYuMjEgNy42OSAxNiA2LjUgMTZzLTIuMzYuMjEtMy41LjYyVjYuNzFDNC4xMSA2LjI0IDUuMjggNiA2LjUgNmMxLjIgMCAyLjM5LjI1IDMuNS43MnY5Ljl6TTE5IC41bC01IDVWMTVsNS00LjVWLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBdXRvZnBzU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMDMgNi4zaC0uMDZsLTEuMDIgMi44OWgyLjF6TTMgMTdoMnY1SDN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE1YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnptLS42My0xMGgxLjI1bDIuNjMgN2gtMS4yMWwtLjYzLTEuNzloLTIuODNMOS45NiAxMkg4Ljc0bDIuNjMtN3pNNyAxN2gydjVIN3pNMTEgMTdoMnY1aC0yek0xNSAxN2g2djVoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCZWR0aW1lT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS4yNyA0LjQ5Yy0uMTMuNTktLjIgMS4xNS0uMjQgMS43MWwyLjA1IDIuMDVjLS4yNy0yLjA1LjEtNC4yMiAxLjI2LTYuMjMtLjEyIDAtLjIzLS4wMS0uMzUtLjAxYTkuOSA5LjkgMCAwIDAtNS41IDEuNjVsMS40NiAxLjQ2Yy40Mi0uMjQuODYtLjQ2IDEuMzItLjYzem0tNy44OC0uMjcgMi4yNyAyLjI3QTkuOTM0IDkuOTM0IDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4wNCAwIDMuOTItLjYzIDUuNS0xLjY3bDIuMjggMi4yOCAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnptMy43NCAzLjc0IDEwLjkyIDEwLjkyQzE0Ljg0IDE5LjYgMTMuNDUgMjAgMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMS40OC40Mi0yLjg1IDEuMTMtNC4wNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlZHRpbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjI3IDQuNDljLTEuNjMgNy41NCAzLjc1IDEyLjQxIDcuNjYgMTMuOEE3Ljk5MyA3Ljk5MyAwIDAgMSAxMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0zLjQ1IDIuMi02LjQgNS4yNy03LjUxbTIuNzItMi40OEM2LjQgMi4wMSAyIDYuNTQgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAzLjcxIDAgNi45My0yLjAyIDguNjYtNS4wMi03LjUxLS4yNS0xMi4wOS04LjQzLTguMzItMTQuOTdoLS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdXJDaXJjdWxhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0zIDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0tMy0zYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptMy02Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTQgOWMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTEuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bTMgNmMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtNGMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0yLTMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bTAtMy41Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCbHVyTGluZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE3LjVjLjgzIDAgMS41LS42NyAxLjUtMS41cy0uNjctMS41LTEuNS0xLjUtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6TTkgMTNjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC00Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6TTMgMjFoMTh2LTJIM3Yyek01IDkuNWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTNS44MyA2LjUgNSA2LjUgMy41IDcuMTcgMy41IDggNC4xNyA5LjUgNSA5LjV6bTAgNGMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNOSAxN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem04LS41Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMyAzdjJoMThWM0gzem0xNCA1LjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0wIDRjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41ek0xMyA5Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTAgNGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdXJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzLjggMTEuNDguMi4wMmMuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNWwuMDIuMmMuMDkuNjcuNjEgMS4xOSAxLjI4IDEuMjh6TTE0IDMuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6bS00IDBjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTAuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAyMC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptNy03Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXptLTE4IDBjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMThcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDExYy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi41IDUuMjcgNiA4Ljc3bC4yOC4yOEw2IDljLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xYzAtLjEtLjAzLS4xOS0uMDYtLjI4bDIuODEgMi44MWMtLjcxLjExLTEuMjUuNzMtMS4yNSAxLjQ3IDAgLjgzLjY3IDEuNSAxLjUgMS41Ljc0IDAgMS4zNi0uNTQgMS40Ny0xLjI1bDIuODEgMi44MUEuODc1Ljg3NSAwIDAgMCAxNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTFjMC0uMS0uMDMtLjE5LS4wNi0uMjhsMy43OCAzLjc4aC4wMWwxLjQxLTEuNDFMMy45MSAzLjg2IDIuNSA1LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmx1ck9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMC04Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0zIC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNS41LS4yMi41LS41LS4yMi0uNS0uNS0uNXpNNiA1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTE1IDUuNWMuMjggMCAuNS0uMjIuNS0uNXMtLjIyLS41LS41LS41LS41LjIyLS41LjUuMjIuNS41LjV6TTE0IDdjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMC0zLjVjLjI4IDAgLjUtLjIyLjUtLjVzLS4yMi0uNS0uNS0uNS0uNS4yMi0uNS41LjIyLjUuNS41em0tMTEgMTBjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em03IDdjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41em0wLTE3Yy4yOCAwIC41LS4yMi41LS41cy0uMjItLjUtLjUtLjUtLjUuMjItLjUuNS4yMi41LjUuNXpNMTAgN2MuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDUuNWMtLjgzIDAtMS41LjY3LTEuNSAxLjVzLjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNS0uNjctMS41LTEuNS0xLjV6bTggLjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMCA0Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTAtOGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wLTRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptMyA4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41LjUtLjIyLjUtLjUtLjIyLS41LS41LS41ek0xNCAxN2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem0wIDMuNWMtLjI4IDAtLjUuMjItLjUuNXMuMjIuNS41LjUuNS0uMjIuNS0uNS0uMjItLjUtLjUtLjV6bS00LTEyYy0uODMgMC0xLjUuNjctMS41IDEuNXMuNjcgMS41IDEuNSAxLjUgMS41LS42NyAxLjUtMS41LS42Ny0xLjUtMS41LTEuNXptMCA4LjVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNC00LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41em0wLTRjLS44MyAwLTEuNS42Ny0xLjUgMS41cy42NyAxLjUgMS41IDEuNSAxLjUtLjY3IDEuNS0xLjUtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDgtOC0zLjU5LTgtOCAzLjU5LTggOC04bTAtMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3MyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA0YzQuNDEgMCA4IDMuNTkgOCA4cy0zLjU5IDgtOCA4Yy0uMzQgMC0uNjgtLjAyLTEuMDEtLjA3QzEwLjkgMTcuNzcgMTIgMTQuOTUgMTIgMTJzLTEuMS01Ljc3LTMuMDEtNy45M0M5LjMyIDQuMDIgOS42NiA0IDEwIDRtMC0yYy0xLjgyIDAtMy41My41LTUgMS4zNUM3Ljk5IDUuMDggMTAgOC4zIDEwIDEycy0yLjAxIDYuOTItNSA4LjY1QzYuNDcgMjEuNSA4LjE4IDIyIDEwIDIyYzUuNTIgMCAxMC00LjQ4IDEwLTEwUzE1LjUyIDIgMTAgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3MzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi43IDQuOTFBOCA4IDAgMCAxIDE3IDEyYTggOCAwIDAgMS00LjMgNy4wOWMxLjQ2LTIgMi4zLTQuNDYgMi4zLTcuMDlzLS44NC01LjA5LTIuMy03LjA5TTkgMmMtMS4wNSAwLTIuMDUuMTYtMyAuNDYgNC4wNiAxLjI3IDcgNS4wNiA3IDkuNTRzLTIuOTQgOC4yNy03IDkuNTRjLjk1LjMgMS45NS40NiAzIC40NiA1LjUyIDAgMTAtNC40OCAxMC0xMFMxNC41MiAyIDkgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3M0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5em0tMiA1Ljc5VjE4aC0zLjUyTDEyIDIwLjQ4IDkuNTIgMThINnYtMy41MkwzLjUyIDEyIDYgOS41MlY2aDMuNTJMMTIgMy41MiAxNC40OCA2SDE4djMuNTJMMjAuNDggMTIgMTggMTQuNDh6TTEyLjI5IDdjLS43NCAwLTEuNDUuMTctMi4wOC40NiAxLjcyLjc5IDIuOTIgMi41MyAyLjkyIDQuNTRzLTEuMiAzLjc1LTIuOTIgNC41NGMuNjMuMjkgMS4zNC40NiAyLjA4LjQ2IDIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIgNi41Yy0zLjAzIDAtNS41IDIuNDctNS41IDUuNXMyLjQ3IDUuNSA1LjUgNS41IDUuNS0yLjQ3IDUuNS01LjUtMi40Ny01LjUtNS41LTUuNXptMCA5Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJyaWdodG5lc3M2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4LjY5VjRoLTQuNjlMMTIgLjY5IDguNjkgNEg0djQuNjlMLjY5IDEyIDQgMTUuMzFWMjBoNC42OUwxMiAyMy4zMSAxNS4zMSAyMEgyMHYtNC42OUwyMy4zMSAxMiAyMCA4LjY5em0tMiA1Ljc5VjE4aC0zLjUyTDEyIDIwLjQ4IDkuNTIgMThINnYtMy41MkwzLjUyIDEyIDYgOS41MlY2aDMuNTJMMTIgMy41MiAxNC40OCA2SDE4djMuNTJMMjAuNDggMTIgMTggMTQuNDh6TTEyIDYuNXYxMWMzLjAzIDAgNS41LTIuNDcgNS41LTUuNVMxNS4wMyA2LjUgMTIgNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJpZ2h0bmVzczcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDguNjlWNGgtNC42OUwxMiAuNjkgOC42OSA0SDR2NC42OUwuNjkgMTIgNCAxNS4zMVYyMGg0LjY5TDEyIDIzLjMxIDE1LjMxIDIwSDIwdi00LjY5TDIzLjMxIDEyIDIwIDguNjl6bS0yIDUuNzlWMThoLTMuNTJMMTIgMjAuNDggOS41MiAxOEg2di0zLjUyTDMuNTIgMTIgNiA5LjUyVjZoMy41MkwxMiAzLjUyIDE0LjQ4IDZIMTh2My41MkwyMC40OCAxMiAxOCAxNC40OHpNMTIgNi41Yy0zLjAzIDAtNS41IDIuNDctNS41IDUuNXMyLjQ3IDUuNSA1LjUgNS41IDUuNS0yLjQ3IDUuNS01LjUtMi40Ny01LjUtNS41LTUuNXptMCA5Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcm9rZW5JbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINXYtNC41OGwuOTkuOTkgNC00IDQgNCA0LTMuOTlMMTkgMTIuNDNWMTl6bTAtOS40MS0xLjAxLTEuMDEtNCA0LjAxLTQtNC00IDQtLjk5LTFWNWgxNHY0LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJ1c2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTZjLjU1IDAgMSAuNDUgMSAxIDAgMS4xLS45IDItMiAyLS4xNyAwLS4zMy0uMDItLjUtLjA1LjMxLS41NS41LTEuMjEuNS0xLjk1IDAtLjU1LjQ1LTEgMS0xTTE4LjY3IDNjLS4yNiAwLS41MS4xLS43MS4yOUw5IDEyLjI1IDExLjc1IDE1bDguOTYtOC45NmEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTEuMzQtMS4zNGMtLjItLjItLjQ1LS4yOS0uNy0uMjl6TTcgMTRjLTEuNjYgMC0zIDEuMzQtMyAzIDAgMS4zMS0xLjE2IDItMiAyIC45MiAxLjIyIDIuNDkgMiA0IDIgMi4yMSAwIDQtMS43OSA0LTQgMC0xLjY2LTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdXJzdE1vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDVoMnYxNEgxem00IDBoMnYxNEg1em0xNyAwSDEwYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTJjLjU1IDAgMS0uNDUgMS0xVjZjMC0uNTUtLjQ1LTEtMS0xem0tMSAxMkgxMVY3aDEwdjEwem0tMy41Ny00LjM4LTIgMi41N0wxNCAxMy40N2wtMiAyLjUyaDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmFBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDQuMDVsMS44My0yaDQuMjRsMS44MyAySDIwdjEyek0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMCA4Yy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYUZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDIwdjJoNXYybDMtMy0zLTN2MnptOSAwaDV2MmgtNXpNMTEuOTkgOEMxMy4xIDggMTQgNy4xIDE0IDZzLS45LTItMi4wMS0yUzEwIDQuOSAxMCA2cy44OSAyIDEuOTkgMnpNMTcgMEg3QzUuOSAwIDUgLjkgNSAydjE0YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptMCAxNkg3di0yaDEwdjJ6bTAtMy41YzAtMS42Ny0zLjMzLTIuNS01LTIuNXMtNSAuODMtNSAyLjVWMmgxMHYxMC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtZXJhUmVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAyMHYyaDV2MmwzLTMtMy0zdjJ6bTkgMGg1djJoLTV6bTMtMjBIN0M1LjkgMCA1IC45IDUgMnYxNGMwIDEuMS45IDIgMiAyaDEwYzEuMSAwIDItLjkgMi0yVjJjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YyaDEwdjE0em0tNS05YzEuMSAwIDItLjkgMS45OS0yIDAtMS4xLS45LTItMi0yUzEwIDMuOSAxMCA1cy44OSAyIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhbWVyYVJvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDVjMC0xLjEtLjktMi0yLTJoLTFWMmMwLS41NS0uNDUtMS0xLTFINmMtLjU1IDAtMSAuNDUtMSAxdjFINGMtMS4xIDAtMiAuOS0yIDJ2MTVjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yaDhWNWgtOHptNiAxM2gtOHYySDRWNWgzVjNoMnYyaDN2Mmg4djExek05IDE1aDJ2Mkg5em0wLTdoMnYySDl6bTQgN2gydjJoLTJ6bTAtN2gydjJoLTJ6bTQgN2gydjJoLTJ6bTAtN2gydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE0LjI1IDIuMjYtLjA4LS4wNC0uMDEuMDJDMTMuNDYgMi4wOSAxMi43NCAyIDEyIDIgNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMGMwLTQuNzUtMy4zMS04LjcyLTcuNzUtOS43NHpNMTkuNDEgOWgtNy45OWwyLjcxLTQuN2MyLjQuNjYgNC4zNSAyLjQyIDUuMjggNC43ek0xMy4xIDQuMDggMTAuMjcgOWwtMS4xNSAyTDYuNCA2LjNBNy45NTggNy45NTggMCAwIDEgMTIgNGMuMzcgMCAuNzQuMDMgMS4xLjA4ek01LjcgNy4wOSA4LjU0IDEybDEuMTUgMkg0LjI2QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJjMC0xLjg1LjY0LTMuNTUgMS43LTQuOTF6TTQuNTkgMTVoNy45OGwtMi43MSA0LjdBOC4wMzMgOC4wMzMgMCAwIDEgNC41OSAxNXptNi4zMSA0LjkxTDE0Ljg5IDEzbDIuNzIgNC43QTggOCAwIDAgMSAxMiAyMGMtLjM4IDAtLjc0LS4wNC0xLjEtLjA5em03LjQtMy00LTYuOTFoNS40M2MuMTcuNjQuMjcgMS4zMS4yNyAyIDAgMS44NS0uNjQgMy41NS0xLjcgNC45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhc2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA5SDF2MTFjMCAxLjExLjg5IDIgMiAyaDE3di0ySDNWOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNVYzYzAtMS4xLS45LTItMi0yaC00Yy0xLjEgMC0yIC45LTIgMnYySDV2MTFjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1aC01em0tNi0yaDR2MmgtNFYzem05IDEzSDdWN2gxNHY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2VudGVyRm9jdXNTdHJvbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEyYzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1IDIuMjQgNSA1IDUgNS0yLjI0IDUtNXptLTUgM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6bS03IDBIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00ek01IDVoNFYzSDVjLTEuMSAwLTIgLjktMiAydjRoMlY1em0xNC0yaC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtNHYyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNlbnRlckZvY3VzV2VhayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTcgM2MtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTctMTFoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2xsZWN0aW9uc0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTYtNEg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS0zIDJ2NWwtMS0uNzVMMTUgOVY0aDJ6bTMgMTJIOFY0aDV2OWwzLTIuMjVMMTkgMTNWNGgxdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29sbGVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDR2MTJIOFY0aDEybTAtMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS04LjUgOS42NyAxLjY5IDIuMjYgMi40OC0zLjFMMTkgMTVIOXpNMiA2djE0YzAgMS4xLjkgMiAyIDJoMTR2LTJINFY2SDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2xvckxlbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMkM2LjQ5IDIyIDIgMTcuNTEgMiAxMlM2LjQ5IDIgMTIgMnMxMCA0LjA0IDEwIDljMCAzLjMxLTIuNjkgNi02IDZoLTEuNzdjLS4yOCAwLS41LjIyLS41LjUgMCAuMTIuMDUuMjMuMTMuMzMuNDEuNDcuNjQgMS4wNi42NCAxLjY3QTIuNSAyLjUgMCAwIDEgMTIgMjJ6bTAtMThjLTQuNDEgMC04IDMuNTktOCA4czMuNTkgOCA4IDhjLjI4IDAgLjUtLjIyLjUtLjVhLjU0LjU0IDAgMCAwLS4xNC0uMzVjLS40MS0uNDYtLjYzLTEuMDUtLjYzLTEuNjVhMi41IDIuNSAwIDAgMSAyLjUtMi41SDE2YzIuMjEgMCA0LTEuNzkgNC00IDAtMy44Ni0zLjU5LTctOC03elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjYuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjkuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTcuNVwiLFwiY3lcIjpcIjExLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29sb3JpemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjY2IDUuNDEuOTIuOTItMi42OSAyLjY5LS45Mi0uOTIgMi42OS0yLjY5TTE3LjY3IDNjLS4yNiAwLS41MS4xLS43MS4yOWwtMy4xMiAzLjEyLTEuOTMtMS45MS0xLjQxIDEuNDEgMS40MiAxLjQyTDMgMTYuMjVWMjFoNC43NWw4LjkyLTguOTIgMS40MiAxLjQyIDEuNDEtMS40MS0xLjkyLTEuOTIgMy4xMi0zLjEyYy40LS40LjQtMS4wMy4wMS0xLjQybC0yLjM0LTIuMzRjLS4yLS4xOS0uNDUtLjI5LS43LS4yOXpNNi45MiAxOSA1IDE3LjA4bDguMDYtOC4wNiAxLjkyIDEuOTJMNi45MiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbXBhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg1djJoMlYxaC0ydjJ6bTAgMTVINWw1LTZ2NnptOS0xNWgtNXYyaDV2MTNsLTUtNnY5aDVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRyYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjNS41MiAwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTB6bTEtMTcuOTNjMy45NC40OSA3IDMuODUgNyA3Ljkzcy0zLjA1IDcuNDQtNyA3LjkzVjQuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb250cm9sUG9pbnREdXBsaWNhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDhoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJoLTNWOHpNMiAxMmMwLTIuNzkgMS42NC01LjIgNC4wMS02LjMyVjMuNTJDMi41MiA0Ljc2IDAgOC4wOSAwIDEyczIuNTIgNy4yNCA2LjAxIDguNDh2LTIuMTZBNi45OSA2Ljk5IDAgMCAxIDIgMTJ6bTEzLTljLTQuOTYgMC05IDQuMDQtOSA5czQuMDQgOSA5IDkgOS00LjA0IDktOS00LjA0LTktOS05em0wIDE2Yy0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03IDcgMy4xNCA3IDctMy4xNCA3LTcgN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbnRyb2xQb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgN2gtMnY0SDd2Mmg0djRoMnYtNGg0di0yaC00Vjd6bS0xLTVDNi40OSAyIDIgNi40OSAyIDEyczQuNDkgMTAgMTAgMTAgMTAtNC40OSAxMC0xMFMxNy41MSAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcDE2OSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdINWMtMS4xIDAtMiAuOS0yIDJ2NmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjljMC0xLjEtLjktMi0yLTJ6bTAgOEg1VjloMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3AzMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDZINWMtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBINVY4aDE0djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wNTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA0SDVjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg1VjZoMTR2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wNzUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1SDVjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxMkg1VjdoMTR2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wRGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3JvcEZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNXY0aDJWNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ6bTIgMTBIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00em0xNCA0aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0em0wLTE2aC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BMYW5kc2NhcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVINWMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDEySDVWN2gxNHYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BPcmlnaW5hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNS4wNC02LjcxLTIuNzUgMy41NC0xLjk2LTIuMzZMNi41IDE3aDExbC0zLjU0LTQuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wUG9ydHJhaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDNIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxMGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyb3BSb3RhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNDcgMjEuNDlDNC4yIDE5LjkzIDEuODYgMTYuNzYgMS41IDEzSDBjLjUxIDYuMTYgNS42NiAxMSAxMS45NSAxMSAuMjMgMCAuNDQtLjAyLjY2LS4wM0w4LjggMjAuMTVsLTEuMzMgMS4zNHpNMTIuMDUgMGMtLjIzIDAtLjQ0LjAyLS42Ni4wNGwzLjgxIDMuODEgMS4zMy0xLjMzQzE5LjggNC4wNyAyMi4xNCA3LjI0IDIyLjUgMTFIMjRjLS41MS02LjE2LTUuNjYtMTEtMTEuOTUtMTF6TTE2IDE0aDJWOGEyIDIgMCAwIDAtMi0yaC02djJoNnY2em0tOCAyVjRINnYySDR2MmgydjhhMiAyIDAgMCAwIDIgMmg4djJoMnYtMmgydi0ySDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0SDZjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg2VjZoMTJ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxNWgyVjdjMC0xLjEtLjktMi0yLTJIOXYyaDh2OHpNNyAxN1YxSDV2NEgxdjJoNHYxMGMwIDEuMS45IDIgMiAyaDEwdjRoMnYtNGg0di0ySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeUJpdGNvaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4wNiAxMS41N2MuNTktLjY5Ljk0LTEuNTkuOTQtMi41NyAwLTEuODYtMS4yNy0zLjQzLTMtMy44N1YzaC0ydjJoLTJWM0g5djJINnYyaDJ2MTBINnYyaDN2Mmgydi0yaDJ2Mmgydi0yYzIuMjEgMCA0LTEuNzkgNC00IDAtMS40NS0uNzgtMi43My0xLjk0LTMuNDN6TTEwIDdoNGMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDJoLTRWN3ptNSAxMGgtNXYtNGg1YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUN1cnJlbmN5RnJhbmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA1VjNIN3YxM0g1djJoMnYzaDJ2LTNoNHYtMkg5di0zaDh2LTJIOVY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3VycmVuY3lMaXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA4Ljc2VjNoMnY0LjUxTDE1IDV2Mi4zNmwtNCAyLjUxLjAxIDIuMzVMMTUgOS43MnYyLjM2bC00IDIuNTFWMTljMi43NiAwIDUtMi4yNCA1LTVoMmMwIDMuODctMy4xMyA3LTcgN0g5di01LjE2bC0zIDEuODh2LTIuMzZsMy0xLjg4di0yLjM2TDYgMTN2LTIuMzZsMy0xLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ3VycmVuY3lQb3VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDIxYzEuOTMgMCAzLjYyLTEuMTcgNC0zbC0xLjc1LS44OEMxNiAxOC4yMSAxNS4zMyAxOSAxNCAxOUg5LjFjLjgzLTEgMS41LTIuMzQgMS41LTQgMC0uMzUtLjAzLS42OS0uMDgtMUgxNHYtMkg5LjgyQzkgMTAuNDIgOCA5LjYgOCA4YTMuNSAzLjUgMCAwIDEgNi43OC0xLjIyTDE2LjYzIDZjLS44LTIuMDUtMi43OS0zLjUtNS4xMy0zLjVDOC40NiAyLjUgNiA0Ljk2IDYgOGMwIDEuNzguNzkgMi45IDEuNDkgNEg2djJoMi40N2MuMDguMzEuMTMuNjQuMTMgMSAwIDIuNy0yLjYgNC0yLjYgNHYyaDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeVJ1YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSAzSDd2OUg1djJoMnYySDV2MmgydjNoMnYtM2g0di0ySDl2LTJoNC41YzMuMDQgMCA1LjUtMi40NiA1LjUtNS41UzE2LjU0IDMgMTMuNSAzem0wIDlIOVY1aDQuNUMxNS40MyA1IDE3IDYuNTcgMTcgOC41UzE1LjQzIDEyIDEzLjUgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeVJ1cGVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNjYgN2MtLjU2LTEuMTgtMS43Ni0yLTMuMTYtMkg2VjNoMTJ2MmgtMy4yNmMuNDguNTguODQgMS4yNiAxLjA1IDJIMTh2MmgtMi4wMmMtLjI1IDIuOC0yLjYxIDUtNS40OCA1aC0uNzNsNi43MyA3aC0yLjc3TDcgMTR2LTJoMy41YzEuNzYgMCAzLjIyLTEuMyAzLjQ2LTNINlY3aDcuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeVllbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkyIDExSDE4djJoLTV2Mmg1djJoLTV2NGgtMnYtNEg2di0yaDV2LTJINnYtMmg0LjA4TDUgM2gyLjM3TDEyIDEwLjI5IDE2LjYzIDNIMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDdXJyZW5jeVl1YW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy4yOCAxMkgxOHYyaC01djdoLTJ2LTdINnYtMmg0LjcyTDUgM2gyLjM3TDEyIDEwLjI5IDE2LjYzIDNIMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZWJsdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxOFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjZcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjNcIixcImN5XCI6XCIxMFwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjNcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjIxXCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiM1wiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjZcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjE0XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjEwXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDN2MmMzLjg2IDAgNyAzLjE0IDcgN3MtMy4xNCA3LTcgN3YyYzQuOTYgMCA5LTQuMDQgOS05cy00LjA0LTktOS05elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVoYXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2djJoMjB2LTJIMnptMC01djJoMjB2LTJIMnptMC01djJoMjBWNkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGV0YWlscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMiAyMWgyMEwxMiAzem0xIDUuOTJMMTguNiAxOUgxM1Y4Ljkyem0tMiAwVjE5SDUuNEwxMSA4LjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlydHlMZW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNGgtNy4wMmMtLjIyLS44NC0uNTItMS43Ni0uMTMtMi4zMy44MS0xLjEyIDIuNjcgMS43NyAzLjgxLS4wOS43Ny0xLjU3LTEuNTgtMS4yOS0xLjY0LTIuMTItLjA1LS44NCAzLjY4LjE3IDMuMDQtMS42Ni0uNjEtMS43My0yLjQyLjQ4LTIuNzYtLjUzLS41OC0xLjc0IDQuNy0xLjY4IDIuODUtNC4wMS0xLjc2LTIuMjItMi40NyAyLjg1LTQuNDEgMi4zMy0xLjM0LS4zNi0xLjAxLTIuODgtMi42NS0yLjQ0LTEuODguNTEgMS4wMyAyLjIgMCAyLjg2LS45Ni42My0xLjcyLS45Mi0yLjUxLTEuMTktLjItLjA3LS42OS0uMDUtLjkxLjE5LS43OC44Ni4yOCAxLjE2LjI1IDEuOTEtLjAyLjc1LTEuNTkuNDktMS41MSAxLjQ5LjEyIDEuNiAyLjE4LjQ1IDIuNCAxLjI0LjU1IDEuOTgtMS44OSAyLjE1LS41IDMuMjcgMS41My43MSAxLjkxLTEuOTQgMi44LTEuMzUuNTguMzguMyAxLjQ1LjE2IDIuNDNINFY3aDQuMDVsMS44My0yaDQuMjRsMS44MyAySDIwdjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy4yOCAxNy4xNWMwIC40OC4zOS44Ni44Ni44Ni40OCAwIC44Ni0uMzguODYtLjg2cy0uMzktLjg2LS44Ni0uODZjLS40OCAwLS44Ni4zOC0uODYuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4wNiA5LjAyLjkyLjkyTDUuOTIgMTlINXYtLjkybDkuMDYtOS4wNk0xNy42NiAzYy0uMjUgMC0uNTEuMS0uNy4yOWwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODNhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjM0LTIuMzRjLS4yLS4yLS40NS0uMjktLjcxLS4yOXptLTMuNiAzLjE5TDMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTguNUE2LjQ4IDYuNDggMCAwIDEgOS4yNCAxNUgxNWwxLTJIOC41OGMtLjA1LS4zMy0uMDgtLjY2LS4wOC0xcy4wMy0uNjcuMDgtMUgxNWwxLTJIOS4yNEE2LjQ5MSA2LjQ5MSAwIDAgMSAxNSA1LjVjMS42MSAwIDMuMDkuNTkgNC4yMyAxLjU3TDIxIDUuM0E4Ljk1NSA4Ljk1NSAwIDAgMCAxNSAzYy0zLjkyIDAtNy4yNCAyLjUxLTguNDggNkgzbC0xIDJoNC4wNmE4LjI2MiA4LjI2MiAwIDAgMCAwIDJIM2wtMSAyaDQuNTJjMS4yNCAzLjQ5IDQuNTYgNiA4LjQ4IDYgMi4zMSAwIDQuNDEtLjg3IDYtMi4zbC0xLjc4LTEuNzdjLTEuMTMuOTgtMi42IDEuNTctNC4yMiAxLjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwb3N1cmVOZWcxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExdjJoOHYtMkg0em0xNSA3aC0yVjcuMzhMMTQgOC40VjYuN0wxOC43IDVoLjN2MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBvc3VyZU5lZzIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjA1IDE2LjI5IDIuODYtMy4wN2MuMzgtLjM5LjcyLS43OSAxLjA0LTEuMTguMzItLjM5LjU5LS43OC44Mi0xLjE3cy40MS0uNzguNTQtMS4xNy4xOS0uNzkuMTktMS4xOGMwLS41My0uMDktMS4wMi0uMjctMS40NnMtLjQ0LS44MS0uNzgtMS4xMWMtLjM0LS4zMS0uNzctLjU0LTEuMjYtLjcxQTUuNzIgNS43MiAwIDAgMCAxNi40NyA1Yy0uNjkgMC0xLjMxLjExLTEuODUuMzItLjU0LjIxLTEgLjUxLTEuMzYuODgtLjM3LjM3LS42NS44LS44NCAxLjMtLjE4LjQ3LS4yNy45Ny0uMjggMS41aDIuMTRjLjAxLS4zMS4wNS0uNi4xMy0uODcuMDktLjI5LjIzLS41NC40LS43NS4xOC0uMjEuNDEtLjM3LjY4LS40OXMuNi0uMTguOTYtLjE4Yy4zMSAwIC41OC4wNS44MS4xNXMuNDMuMjUuNTkuNDMuMjguNC4zNy42NWMuMDguMjUuMTMuNTIuMTMuODEgMCAuMjItLjAzLjQzLS4wOC42NS0uMDYuMjItLjE1LjQ1LS4yOS43LS4xNC4yNS0uMzIuNTMtLjU2LjgzLS4yMy4zLS41Mi42NS0uODggMS4wM2wtNC4xNyA0LjU1VjE4SDIxdi0xLjcxaC01Ljk1ek0yIDExdjJoOHYtMkgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwb3N1cmVQbHVzMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgN0g4djRINHYyaDR2NGgydi00aDR2LTJoLTRWN3ptMTAgMTFoLTJWNy4zOEwxNSA4LjRWNi43TDE5LjcgNWguM3YxM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV4cG9zdXJlUGx1czIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2LjA1IDE2LjI5IDIuODYtMy4wN2MuMzgtLjM5LjcyLS43OSAxLjA0LTEuMTguMzItLjM5LjU5LS43OC44Mi0xLjE3cy40MS0uNzguNTQtMS4xN2MuMTMtLjM5LjE5LS43OS4xOS0xLjE4IDAtLjUzLS4wOS0xLjAyLS4yNy0xLjQ2cy0uNDQtLjgxLS43OC0xLjExYy0uMzQtLjMxLS43Ny0uNTQtMS4yNi0uNzFBNS43MiA1LjcyIDAgMCAwIDE3LjQ3IDVjLS42OSAwLTEuMzEuMTEtMS44NS4zMi0uNTQuMjEtMSAuNTEtMS4zNi44OC0uMzcuMzctLjY1LjgtLjg0IDEuMy0uMTguNDctLjI3Ljk3LS4yOCAxLjVoMi4xNGMuMDEtLjMxLjA1LS42LjEzLS44Ny4wOS0uMjkuMjMtLjU0LjQtLjc1LjE4LS4yMS40MS0uMzcuNjgtLjQ5cy42LS4xOC45Ni0uMThjLjMxIDAgLjU4LjA1LjgxLjE1cy40My4yNS41OS40My4yOC40LjM3LjY1Yy4wOC4yNS4xMy41Mi4xMy44MSAwIC4yMi0uMDMuNDMtLjA4LjY1LS4wNi4yMi0uMTUuNDUtLjI5LjctLjE0LjI1LS4zMi41My0uNTYuODMtLjIzLjMtLjUyLjY1LS44OCAxLjAzbC00LjE3IDQuNTVWMThIMjJ2LTEuNzFoLTUuOTV6TTggN0g2djRIMnYyaDR2NGgydi00aDR2LTJIOFY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwb3N1cmVaZXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4xNCAxMi41YzAgMS0uMSAxLjg1LS4zIDIuNTVzLS40OCAxLjI3LS44MyAxLjdjLS4zNi40NC0uNzkuNzUtMS4zLjk1cy0xLjA3LjMtMS43LjNjLS42MiAwLTEuMTgtLjEtMS42OS0uMy0uNTEtLjItLjk1LS41MS0xLjMxLS45NXMtLjY1LTEuMDEtLjg1LTEuN2MtLjItLjctLjMtMS41NS0uMy0yLjU1di0yLjA0YzAtMSAuMS0xLjg1LjMtMi41NS4yLS43LjQ4LTEuMjYuODQtMS42OS4zNi0uNDMuOC0uNzQgMS4zMS0uOTNDMTAuODEgNS4xIDExLjM4IDUgMTIgNWMuNjMgMCAxLjE5LjEgMS43LjI5LjUxLjE5Ljk1LjUgMS4zMS45My4zNi40My42NC45OS44NCAxLjY5LjIuNy4zIDEuNTQuMyAyLjU1djIuMDRoLS4wMXptLTIuMTEtMi4zNmMwLS42NC0uMDUtMS4xOC0uMTMtMS42Mi0uMDktLjQ0LS4yMi0uNzktLjQtMS4wNi0uMTctLjI3LS4zOS0uNDYtLjY0LS41OC0uMjUtLjEzLS41NC0uMTktLjg2LS4xOXMtLjYxLjA2LS44Ni4xOC0uNDcuMzEtLjY0LjU4LS4zMS42Mi0uNCAxLjA2LS4xMy45OC0uMTMgMS42MnYyLjY3YzAgLjY0LjA1IDEuMTguMTQgMS42Mi4wOS40NS4yMy44MS40IDEuMDlzLjM5LjQ4LjY0LjYxLjU0LjE5Ljg3LjE5LjYyLS4wNi44Ny0uMTkuNDYtLjMzLjYzLS42MS4zLS42NC4zOS0xLjA5LjEzLS45OS4xMy0xLjYydi0yLjY2aC0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBvc3VyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMS40MSAyTDUgMTcuNTlWNWgxMi41OXpNNi40MSAxOSAxOSA2LjQxVjE5SDYuNDF6TTYgN2g1djEuNUg2em0xMCA1LjVoLTEuNXYyaC0yVjE2aDJ2MkgxNnYtMmgydi0xLjVoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlUmV0b3VjaGluZ05hdHVyYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS44OSAxMC43NWMuMDcuNDEuMTEuODIuMTEgMS4yNSAwIDQuNDEtMy41OSA4LTggOHMtOC0zLjU5LTgtOGMwLS4wNS4wMS0uMSAwLS4xNCAyLjYtLjk4IDQuNjktMi45OSA1Ljc0LTUuNTUgMy4zOCA0LjE0IDcuOTcgMy43MyA4Ljk5IDMuNjFsLS44OS0xLjkzYy0uMTMuMDEtNC42Mi4zOC03LjE4LTMuODYgMS4wMS0uMTYgMS43MS0uMTUgMi41OS0uMDEgMi41Mi0xLjE1IDEuOTMtLjg5IDIuNzYtMS4yNkE5LjYyIDkuNjIgMCAwIDAgMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtMS40My0uMy0yLjc4LS44NC00LjAxbC0xLjI3IDIuNzZ6TTguMDggNS4wM2E4LjA0NiA4LjA0NiAwIDAgMS0zLjY2IDQuNDQgOC4wNDYgOC4wNDYgMCAwIDEgMy42Ni00LjQ0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjMgNC41LTIuNC0xLjFMMTkuNSAxbC0xLjEgMi40TDE2IDQuNWwyLjQgMS4xTDE5LjUgOGwxLjEtMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZVJldG91Y2hpbmdPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDEwYy43NSAwIDEuNDctLjA5IDIuMTctLjI0LjIxLjcxLjMzIDEuNDYuMzMgMi4yNCAwIDEuMjItLjI4IDIuMzctLjc3IDMuNGwxLjQ5IDEuNDlBOS45ODEgOS45ODEgMCAwIDAgMjIgMTJjMC01LjUyLTQuNDgtMTAtMTAtMTAtMS43OCAwLTMuNDQuNDctNC44OSAxLjI4bDUuMzMgNS4zM2MxLjQ5Ljg4IDMuMjEgMS4zOSA1LjA2IDEuMzl6bS02Ljg0LTUuODhjLjQzLS4wNy44OC0uMTIgMS4zNC0uMTIgMi45IDAgNS40NCAxLjU2IDYuODQgMy44OC0uNDMuMDctLjg4LjEyLTEuMzQuMTItMi45IDAtNS40NC0xLjU2LTYuODQtMy44OHpNMS44OSAzLjcybDIuMTkgMi4xOUE5Ljk1OCA5Ljk1OCAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMjkgMCA0LjQtLjc4IDYuMDktMi4wOGwyLjE5IDIuMTkgMS40MS0xLjQxTDMuMzEgMi4zMSAxLjg5IDMuNzJ6bTE0Ljc3IDE0Ljc3QTcuOTEgNy45MSAwIDAgMSAxMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0uMDUuMDEtLjEgMC0uMTRhOS45NDYgOS45NDYgMCAwIDAgMy42NC0yLjM5bDkuMDIgOS4wMnpNNi4yMyA4LjA2Yy0uNTMuNTUtMS4xNCAxLjAzLTEuODEgMS40MS4yNi0uNzcuNjMtMS40OCAxLjA5LTIuMTNsLjcyLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyMSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTExIDEwaDJWNWgtNHYyaDJ2OHptNy0xNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE4LTRIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHptLTQtNGgtNHYtMmgyYTIgMiAwIDAgMCAyLTJWN2EyIDIgMCAwIDAtMi0yaC00djJoNHYyaC0yYTIgMiAwIDAgMC0yIDJ2NGg2di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMUg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTQgOHYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YTIgMiAwIDAgMC0yLTJoLTR2Mmg0djJoLTJ2MmgydjJoLTR2Mmg0YTIgMiAwIDAgMCAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTIgMTBoMlY1aC0ydjRoLTJWNWgtMnY2aDR2NHptNi0xNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyNSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDFIN2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTItMi0yem0wIDE2SDdWM2gxNHYxNHpNMyA1SDF2MTZjMCAxLjEuOSAyIDIgMmgxNnYtMkgzVjV6bTE0IDh2LTJhMiAyIDAgMCAwLTItMmgtMlY3aDRWNWgtNnY2aDR2MmgtNHYyaDRhMiAyIDAgMCAwIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlcjYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6bS04LTJoMmEyIDIgMCAwIDAgMi0ydi0yYTIgMiAwIDAgMC0yLTJoLTJWN2g0VjVoLTRhMiAyIDAgMCAwLTIgMnY2YTIgMiAwIDAgMCAyIDJ6bTAtNGgydjJoLTJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yIDQtOFY1aC02djJoNGwtNCA4aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0em0tOC0yaDJhMiAyIDAgMCAwIDItMnYtMS41YzAtLjgzLS42Ny0xLjUtMS41LTEuNS44MyAwIDEuNS0uNjcgMS41LTEuNVY3YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnYxLjVjMCAuODMuNjcgMS41IDEuNSAxLjUtLjgzIDAtMS41LjY3LTEuNSAxLjVWMTNhMiAyIDAgMCAwIDIgMnptMC04aDJ2MmgtMlY3em0wIDRoMnYyaC0ydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyOVBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xMSA3VjhhMiAyIDAgMCAwLTItMmgtMWEyIDIgMCAwIDAtMiAydjFhMiAyIDAgMCAwIDIgMmgxdjFIOXYyaDNhMiAyIDAgMCAwIDItMnptLTMtM1Y4aDF2MWgtMXptMTAtOEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgOGgtMlY3aC0ydjJoLTJ2MmgydjJoMnYtMmgydjZIN1YzaDE0djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXI5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDVIMXYxNmMwIDEuMS45IDIgMiAyaDE2di0ySDNWNXptMTgtNEg3Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZIN1YzaDE0djE0ek0xNSA1aC0yYTIgMiAwIDAgMC0yIDJ2MmEyIDIgMCAwIDAgMiAyaDJ2MmgtNHYyaDRhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJ6bTAgNGgtMlY3aDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckJBbmRXIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNi03LTh2OEg1bDctOFY1aDd2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJDZW50ZXJGb2N1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNUgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6TTUgNWg0VjNINWMtMS4xIDAtMiAuOS0yIDJ2NGgyVjV6bTE0LTJoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC00djJoNGMxLjEgMCAyLS45IDItMnYtNGgtMnY0ek0xMiA5Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckRyYW1hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4zNSAxMC4wNEE3LjQ5IDcuNDkgMCAwIDAgMTIgNGE3LjQ4IDcuNDggMCAwIDAtNi42NCA0LjA0QTUuOTk2IDUuOTk2IDAgMCAwIDAgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY1LTQuOTZ6TTE5IDE4SDZjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNGgyYzAtMi43Ni0xLjg2LTUuMDgtNC40LTUuNzhDOC42MSA2Ljg4IDEwLjIgNiAxMiA2YzMuMDMgMCA1LjUgMi40NyA1LjUgNS41di41SDE5YzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlsdGVyRnJhbWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGgtNGwtNC00LTQgNEg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTZINFY2aDQuNTJsMy41Mi0zLjVMMTUuNTIgNkgyMHYxNHpNNiAxOGgxMlY4SDZ2MTB6bTItOGg4djZIOHYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlckhkciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi00LjIyIDUuNjMgMS4yNSAxLjY3TDE0IDkuMzMgMTkgMTZoLTguNDZsLTQuMDEtNS4zN0wxIDE4aDIyTDE0IDZ6TTUgMTZsMS41Mi0yLjAzTDguMDQgMTZINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpbHRlck5vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJUaWx0U2hpZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDQuMDdWMi4wNWMtMi4wMS4yLTMuODQgMS01LjMyIDIuMjFMNy4xIDUuNjlBNy45NDEgNy45NDEgMCAwIDEgMTEgNC4wN3ptNy4zMi4xOUE5Ljk0OSA5Ljk0OSAwIDAgMCAxMyAyLjA1djIuMDJjMS40Ni4xOCAyLjc5Ljc2IDMuOSAxLjYybDEuNDItMS40M3pNMTkuOTMgMTFoMi4wMmMtLjItMi4wMS0xLTMuODQtMi4yMS01LjMyTDE4LjMxIDcuMWE3Ljk0MSA3Ljk0MSAwIDAgMSAxLjYyIDMuOXpNNS42OSA3LjEgNC4yNiA1LjY4QTkuOTQ5IDkuOTQ5IDAgMCAwIDIuMDUgMTFoMi4wMmMuMTgtMS40Ni43Ni0yLjc5IDEuNjItMy45ek00LjA3IDEzSDIuMDVjLjIgMi4wMSAxIDMuODQgMi4yMSA1LjMybDEuNDMtMS40M0E3Ljg2OCA3Ljg2OCAwIDAgMSA0LjA3IDEzek0xNSAxMmMwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzIDMtMS4zNCAzLTN6bTMuMzEgNC45IDEuNDMgMS40M2E5Ljk4MSA5Ljk4MSAwIDAgMCAyLjIxLTUuMzJoLTIuMDJhNy45NDUgNy45NDUgMCAwIDEtMS42MiAzLjg5ek0xMyAxOS45M3YyLjAyYzIuMDEtLjIgMy44NC0xIDUuMzItMi4yMWwtMS40My0xLjQzYy0xLjEuODYtMi40MyAxLjQ0LTMuODkgMS42MnptLTcuMzItLjE5QTkuOTgxIDkuOTgxIDAgMCAwIDExIDIxLjk1di0yLjAyYTcuOTQxIDcuOTQxIDAgMCAxLTMuOS0xLjYybC0xLjQyIDEuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXJWaW50YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC43IDEyLjRhNi4wNiA2LjA2IDAgMCAwLS44Ni0uNGMuMjktLjExLjU4LS4yNC44Ni0uNGE2LjAxMiA2LjAxMiAwIDAgMCAzLTUuMTljLS45MS0uNTItMS45NS0uOC0zLjAxLS44LTEuMDIgMC0yLjA1LjI2LTIuOTkuOC0uMjguMTYtLjU0LjM1LS43OC41NC4wNS0uMzEuMDgtLjYzLjA4LS45NSAwLTIuMjItMS4yMS00LjE1LTMtNS4xOUMxMC4yMSAxLjg1IDkgMy43OCA5IDZjMCAuMzIuMDMuNjQuMDguOTUtLjI0LS4yLS41LS4zOS0uNzgtLjU1LS45NC0uNTQtMS45Ny0uOC0yLjk5LS44LTEuMDUgMC0yLjEuMjgtMy4wMS44YTUuOTcgNS45NyAwIDAgMCAzIDUuMTljLjI4LjE2LjU3LjI5Ljg2LjQtLjI5LjExLS41OC4yNC0uODYuNGE2LjAxMiA2LjAxMiAwIDAgMC0zIDUuMTljLjkxLjUyIDEuOTUuOCAzLjAxLjggMS4wMiAwIDIuMDUtLjI2IDIuOTktLjguMjgtLjE2LjU0LS4zNS43OC0uNTQtLjA1LjMyLS4wOC42NC0uMDguOTYgMCAyLjIyIDEuMjEgNC4xNSAzIDUuMTkgMS43OS0xLjA0IDMtMi45NyAzLTUuMTkgMC0uMzItLjAzLS42NC0uMDgtLjk1LjI0LjIuNS4zOC43OC41NC45NC41NCAxLjk3LjggMi45OS44IDEuMDUgMCAyLjEtLjI4IDMuMDEtLjhhNi4wMTIgNi4wMTIgMCAwIDAtMy01LjE5em0tMi41NC0zLjg4Yy4yMS0uMTcuMzgtLjI5LjU0LS4zNy42MS0uMzUgMS4zLS41NCAyLS41NC4yNyAwIC41My4wMy43OS4wOC0uMzEuOTEtLjk0IDEuNjktMS43OCAyLjE4LS4xNy4xLS4zNi4xOC0uNTguMjdsLTEuMzguNTJjLS4xNy0uNDYtLjQxLS44Ny0uNzItMS4yNGwxLjEzLS45ek0xMiAzLjM3Yy42My43MiAxIDEuNjYgMSAyLjYzIDAgLjE5LS4wMi40MS0uMDUuNjNsLS4yMyAxLjQ0QzEyLjQ4IDguMDMgMTIuMjQgOCAxMiA4cy0uNDguMDMtLjcxLjA3bC0uMjMtMS40NEMxMS4wMiA2LjQxIDExIDYuMTkgMTEgNmMwLS45OC4zNy0xLjkxIDEtMi42M3pNNC41MSA3LjY4Yy4yNi0uMDYuNTMtLjA4LjgtLjA4LjY5IDAgMS4zOC4xOCAxLjk5LjU0LjE1LjA5LjMyLjIuNDkuMzVsMS4xNS45NmMtLjMuMzYtLjUzLjc2LS43IDEuMmwtMS4zOC0uNTJjLS4yMS0uMDktLjQtLjE4LS41Ni0uMjctLjg3LS41LTEuNDktMS4yNy0xLjc5LTIuMTh6bTMuMzMgNy43OWMtLjIxLjE3LS4zOC4yOS0uNTQuMzctLjYxLjM1LTEuMy41NC0yIC41NC0uMjcgMC0uNTMtLjAzLS43OS0uMDguMzEtLjkxLjk0LTEuNjkgMS43OC0yLjE4LjE3LS4xLjM2LS4xOC41OC0uMjdsMS4zOC0uNTJjLjE2LjQ2LjQxLjg4LjcyIDEuMjRsLTEuMTMuOXpNMTIgMjAuNjNjLS42My0uNzItMS0xLjY2LTEtMi42MyAwLS4yLjAyLS40MS4wNi0uNjVsLjIyLTEuNDJjLjIzLjA0LjQ3LjA3LjcyLjA3LjI0IDAgLjQ4LS4wMy43MS0uMDdsLjIzIDEuNDRjLjA0LjIyLjA2LjQ0LjA2LjYzIDAgLjk4LS4zNyAxLjkxLTEgMi42M3ptNi42OS00LjI0YTMuOTE2IDMuOTE2IDAgMCAxLTIuNDgtLjg4bC0xLjE1LS45NmMuMy0uMzYuNTQtLjc2LjctMS4yMWwxLjM4LjUyYy4yMi4wOC40MS4xNy41Ny4yNi44NS40OSAxLjQ3IDEuMjcgMS43OCAyLjE4LS4yNy4wNy0uNTQuMDktLjguMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljk2IDEwLjI5LTIuNzUgMy41NC0xLjk2LTIuMzZMOC41IDE1aDExbC0zLjU0LTQuNzF6TTMgNUgxdjE2YzAgMS4xLjkgMiAyIDJoMTZ2LTJIM1Y1em0xOC00SDdjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0yLTItMnptMCAxNkg3VjNoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMUgxdjJoNnYtMnptMi4xNy0zLjI0TDcuMDUgNS42NCA1LjY0IDcuMDVsMi4xMiAyLjEyIDEuNDEtMS40MXpNMTMgMWgtMnY2aDJWMXptNS4zNiA2LjA1LTEuNDEtMS40MS0yLjEyIDIuMTIgMS40MSAxLjQxIDIuMTItMi4xMnpNMTcgMTF2Mmg2di0yaC02em0tNS0yYy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMi44MyA3LjI0IDIuMTIgMi4xMiAxLjQxLTEuNDEtMi4xMi0yLjEyLTEuNDEgMS40MXptLTkuMTkuNzEgMS40MSAxLjQxIDIuMTItMi4xMi0xLjQxLTEuNDEtMi4xMiAyLjEyek0xMSAyM2gydi02aC0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGFzaEF1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMnYxMmgzdjlsNy0xMkg5bDQtOUgzem0xNiAwaC0ybC0zLjIgOWgxLjlsLjctMmgzLjJsLjcgMmgxLjlMMTkgMnptLTIuMTUgNS42NUwxOCA0bDEuMTUgMy42NWgtMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxhc2hPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwaC0zLjYxbDIuMjggMi4yOHptMC04SDd2MS42MWw2LjEzIDYuMTN6bS0xMy41OS44NkwyIDQuMjdsNSA1VjEzaDN2OWwzLjU4LTYuMTVMMTcuNzMgMjBsMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmxhc2hPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAydjExaDN2OWw3LTEyaC00bDMtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsaXBDYW1lcmFBbmRyb2lkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3ptNCAwYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTBWOEg1LjA5QzYuNDcgNS42MSA5LjA1IDQgMTIgNGMzLjcyIDAgNi44NSAyLjU2IDcuNzQgNmgyLjA2Yy0uOTMtNC41Ni00Ljk2LTgtOS44LTgtMy4yNyAwLTYuMTggMS41OC04IDQuMDFWNEgydjZoNnpNMTYgMTR2MmgyLjkxYy0xLjM4IDIuMzktMy45NiA0LTYuOTEgNC0zLjcyIDAtNi44NS0yLjU2LTcuNzQtNkgyLjJjLjkzIDQuNTYgNC45NiA4IDkuOCA4IDMuMjcgMCA2LjE4LTEuNTggOC00LjAxVjIwaDJ2LTZoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlwQ2FtZXJhSW9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNWgtMy4xN0wxNSAzSDlMNy4xNyA1SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCAxNEg0VjdoNC4wNWwuNTktLjY1TDkuODggNWg0LjI0bDEuMjQgMS4zNS41OS42NUgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjLTIuMjEgMC00LTEuNzktNC00aDJsLTIuNS0yLjVMNSAxM2gyYzAgMi43NiAyLjI0IDUgNSA1IC44NiAwIDEuNjUtLjI0IDIuMzYtLjYybC0uNzQtLjc0Yy0uNDkuMjMtMS4wNC4zNi0xLjYyLjM2ek0xMiA4Yy0uODYgMC0xLjY1LjI0LTIuMzYuNjJsLjc0LjczQzEwLjg3IDkuMTMgMTEuNDIgOSAxMiA5YzIuMjEgMCA0IDEuNzkgNCA0aC0ybDIuNSAyLjVMMTkgMTNoLTJjMC0yLjc2LTIuMjQtNS01LTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAyMWgydi0yaC0ydjJ6bTQtMTJoMlY3aC0ydjJ6TTMgNXYxNGMwIDEuMS45IDIgMiAyaDR2LTJINVY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMTYtMnYyaDJjMC0xLjEtLjktMi0yLTJ6bS04IDIwaDJWMWgtMnYyMnptOC02aDJ2LTJoLTJ2MnpNMTUgNWgyVjNoLTJ2MnptNCA4aDJ2LTJoLTJ2MnptMCA4YzEuMSAwIDItLjkgMi0yaC0ydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmFkaWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDloMnYyaC0yVjl6bS0yIDJoMnYySDl2LTJ6bTQgMGgydjJoLTJ2LTJ6bTItMmgydjJoLTJWOXpNNyA5aDJ2Mkg3Vjl6bTEyLTZINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek05IDE4SDd2LTJoMnYyem00IDBoLTJ2LTJoMnYyem00IDBoLTJ2LTJoMnYyem0yLTdoLTJ2MmgydjJoLTJ2LTJoLTJ2MmgtMnYtMmgtMnYySDl2LTJIN3YySDV2LTJoMnYtMkg1VjVoMTR2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxMmMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6TTYgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTAgOGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyLThjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tNCA4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptLTQtNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS00LTRjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JpZE9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA0di44OWwyIDJWNGg0djRoLTIuODlsMiAySDE0di44OWwyIDJWMTBoNHY0aC0yLjg5bDIgMkgyMHYuODlsMiAyVjRjMC0xLjEtLjktMi0yLTJINS4xMWwyIDJIOHptOCAwaDR2NGgtNFY0ek0xLjQxIDEuMTQgMCAyLjU1bDIgMlYyMGMwIDEuMS45IDIgMiAyaDE1LjQ1bDIuMDEgMi4wMSAxLjQxLTEuNDFMMS40MSAxLjE0ek0xMCAxMi41NSAxMS40NSAxNEgxMHYtMS40NXptLTYtNkw1LjQ1IDhINFY2LjU1ek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGgzLjQ1bC41NS41NVYxNHptNiA2aC00di00aDMuNDVsLjU1LjU1VjIwem0yIDB2LTEuNDVMMTcuNDUgMjBIMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcmlkT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yek04IDIwSDR2LTRoNHY0em0wLTZINHYtNGg0djR6bTAtNkg0VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0em02IDEyaC00di00aDR2NHptMC02aC00di00aDR2NHptMC02aC00VjRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyRW5oYW5jZWRTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTYgMi42OS02IDYtNnptMCAyQzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0xIDdoLTJWOUg5VjdoMlY1aDJ2MmgydjJoLTJ2MnptMTEgOWgtMnYyaC0xLjV2LTJoLTJ2LTEuNWgydi0ySDIydjJoMlYyMHptLTYtMS41YzAgLjYtLjQgMS4xLS45IDEuNEwxOCAyMmgtMS41bC0uOS0yaC0xLjF2MkgxM3YtNmgzLjVjLjggMCAxLjUuNyAxLjUgMS41djF6bS0xLjUgMHYtMWgtMnYxaDJ6bS0xMy0uNXYtMkg1djZIMy41di0yLjVoLTJWMjJIMHYtNmgxLjV2Mmgyem02LjUtMmMuOCAwIDEuNS43IDEuNSAxLjV2M2MwIC44LS43IDEuNS0xLjUgMS41SDYuNXYtNkgxMHptMCA0LjV2LTNIOHYzaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZHJPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjUgMTV2LTJoMS4xbC45IDJIMjFsLS45LTIuMWMuNS0uMy45LS44LjktMS40di0xYzAtLjgtLjctMS41LTEuNS0xLjVIMTZ2NC44NkwxNy4xNCAxNWguMzZ6bTAtNC41aDJ2MWgtMnYtMXptLTQuNSAwdi4zNmwxLjUgMS41VjEwLjVjMC0uOC0uNy0xLjUtMS41LTEuNWgtMS44NmwxLjUgMS41SDEzek0yLjUxIDIuNDkgMS40NSAzLjU1IDYuOSA5aC0uNHYyaC0yVjlIM3Y2aDEuNXYtMi41aDJWMTVIOHYtNC45bDEuNSAxLjVWMTVoMy40bDcuNiA3LjYgMS4wNi0xLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExLjV2LTFjMC0uOC0uNy0xLjUtMS41LTEuNUgxNnY2aDEuNXYtMmgxLjFsLjkgMkgyMWwtLjktMi4xYy41LS4zLjktLjguOS0xLjR6bS0xLjUgMGgtMnYtMWgydjF6bS0xMy0uNWgtMlY5SDN2NmgxLjV2LTIuNWgyVjE1SDhWOUg2LjV2MnpNMTMgOUg5LjV2NkgxM2MuOCAwIDEuNS0uNyAxLjUtMS41di0zYzAtLjgtLjctMS41LTEuNS0xLjV6bTAgNC41aC0ydi0zaDJ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhkclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjEzIDE5YzEuMTUuNjQgMi40NyAxIDMuODcgMSA0LjQxIDAgOC0zLjU5IDgtOHMtMy41OS04LTgtOC04IDMuNTktOCA4YzAgMi41MiAxLjE3IDQuNzcgMyA2LjI0VjEzaDMuNWMuOCAwIDEuNS43IDEuNSAxLjV2MWMwIC42LS40IDEuMS0uOSAxLjRMMTIgMTloLTEuNWwtLjktMkg4LjV2MmgtLjM3ek0xMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMiA2LjQ4IDIgMTIgMnptNS41IDE0SDE2djEuNWgtMS41VjE2SDEzdi0xLjVoMS41VjEzSDE2djEuNDloMS41VjE2em0tNy0uNXYtMWgtMnYxaDJ6bTAtNy41VjZIMTJ2NmgtMS41VjkuNWgtMlYxMkg3VjZoMS41djJoMnpNMTYgNmMuOCAwIDEuNS43IDEuNSAxLjV2M2MwIC44LS43IDEuNS0xLjUgMS41aC0zVjZoM3ptMCA0LjV2LTNoLTEuNXYzSDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGRyU3Ryb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA2Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2IDYtMi42OSA2LTYtMi42OS02LTYtNnpNNSA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptMCA2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhkcldlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTEyLTJjLTMuMzEgMC02IDIuNjktNiA2czIuNjkgNiA2IDYgNi0yLjY5IDYtNi0yLjY5LTYtNi02em0wIDEwYy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00IDQgMS43OSA0IDQtMS43OSA0LTQgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhlYWxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjczIDEyLjAyIDMuOTgtMy45OGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTQuMzQtNC4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTMuOTggMy45OEw4IDIuMjlhMS4wMDEgMS4wMDEgMCAwIDAtMS40MSAwTDIuMjUgNi42M2EuOTk2Ljk5NiAwIDAgMCAwIDEuNDFsMy45OCAzLjk4TDIuMjUgMTZhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDQuMzQgNC4zNGMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsMy45OC0zLjk4IDMuOTggMy45OGMuMi4yLjQ1LjI5LjcxLjI5LjI2IDAgLjUxLS4xLjcxLS4yOWw0LjM0LTQuMzRhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0zLjk5LTMuOTh6TTEyIDljLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptLTQuNzEgMS45NkwzLjY2IDcuMzRsMy42My0zLjYzIDMuNjIgMy42Mi0zLjYyIDMuNjN6TTEwIDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTIgMmMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0yLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMi42NiA5LjM0LTMuNjMtMy42MiAzLjYzLTMuNjMgMy42MiAzLjYyLTMuNjIgMy42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhldmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjUgMTFoLTFWOUgzdjZoMS41di0yLjVoMVYxNUg3VjlINS41ek0yMSAxMXYtMWMwLS41NS0uNDUtMS0xLTFoLTJjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDJjLjU1IDAgMS0uNDUgMS0xdi0xaC0xLjV2LjVoLTF2LTNoMXYuNUgyMXpNMTQuMjUgMTMuNSAxMy41IDlIMTJsMSA2aDIuNWwxLTZIMTV6TTggOXY2aDMuNXYtMS41aC0ydi0xaDJWMTFoLTJ2LS41aDJWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhpZGVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDV2MTEuMTdsMiAyVjVjMC0xLjEtLjktMi0yLTJINS44M2wyIDJIMTl6TTIuODEgMi44MSAxLjM5IDQuMjIgMyA1LjgzVjE5YzAgMS4xLjkgMiAyIDJoMTMuMTdsMS42MSAxLjYxIDEuNDEtMS40MUwyLjgxIDIuODF6TTUgMTlWNy44M2w3LjA3IDcuMDctLjgyIDEuMUw5IDEzbC0zIDRoOC4xN2wyIDJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUltYWdlQXNwZWN0UmF0aW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxMGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6bS04LTRINnYyaDJ2LTJ6bTQgMGgtMnYyaDJ2LTJ6bTgtNkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY2aDE2djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW1hZ2VOb3RTdXBwb3J0ZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS45IDIxLjktNi4xLTYuMS0yLjY5LTIuNjlMNSA1IDMuNTkgMy41OSAyLjEgMi4xLjY5IDMuNTEgMyA1LjgzVjE5YzAgMS4xLjkgMiAyIDJoMTMuMTdsMi4zMSAyLjMxIDEuNDItMS40MXpNNSAxOVY3LjgzbDYuODQgNi44NC0uODQgMS4wNUw5IDEzbC0zIDRoOC4xN2wyIDJINXpNNy44MyA1bC0yLTJIMTljMS4xIDAgMiAuOSAyIDJ2MTMuMTdsLTItMlY1SDcuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbWFnZVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTN2N0g0VjZoNS4wMmMuMDUtLjcxLjIyLTEuMzguNDgtMkg0Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi01bC0yLTJ6bS0xLjUgNWgtMTFsMi43NS0zLjUzIDEuOTYgMi4zNiAyLjc1LTMuNTRMMTYuNSAxOHptMi44LTkuMTFjLjQ0LS43LjctMS41MS43LTIuMzlDMjAgNC4wMSAxNy45OSAyIDE1LjUgMlMxMSA0LjAxIDExIDYuNXMyLjAxIDQuNSA0LjQ5IDQuNWMuODggMCAxLjctLjI2IDIuMzktLjdMMjEgMTMuNDIgMjIuNDIgMTIgMTkuMyA4Ljg5ek0xNS41IDlhMi41IDIuNSAwIDAgMSAwLTUgMi41IDIuNSAwIDAgMSAwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTQuODYgOC44Ni0zIDMuODdMOSAxMy4xNCA2IDE3aDEybC0zLjg2LTUuMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJbmNvbXBsZXRlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTJjMCA1LjUyLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyYzAtMi43NiAxLjEyLTUuMjYgMi45My03LjA3TDEyIDEyVjJjNS41MiAwIDEwIDQuNDggMTAgMTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJc28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yek01LjUgNy41aDJ2LTJIOXYyaDJWOUg5djJINy41VjloLTJWNy41ek0xOSAxOUg1TDE5IDV2MTR6bS0yLTJ2LTEuNWgtNVYxN2g1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFuZHNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA2LTQuMjIgNS42MyAxLjI1IDEuNjdMMTQgOS4zMyAxOSAxNmgtOC40NmwtNC4wMS01LjM3TDEgMThoMjJMMTQgNnpNNSAxNmwxLjUyLTIuMDNMOC4wNCAxNkg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGVha0FkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAzSDN2M2MxLjY2IDAgMy0xLjM0IDMtM3ptOCAwaC0yYTkgOSAwIDAgMS05IDl2MmM2LjA4IDAgMTEtNC45MyAxMS0xMXptLTQgMEg4YzAgMi43Ni0yLjI0IDUtNSA1djJjMy44NyAwIDctMy4xMyA3LTd6bTAgMThoMmE5IDkgMCAwIDEgOS05di0yYy02LjA3IDAtMTEgNC45My0xMSAxMXptOCAwaDN2LTNjLTEuNjYgMC0zIDEuMzQtMyAzem0tNCAwaDJjMC0yLjc2IDIuMjQtNSA1LTV2LTJjLTMuODcgMC03IDMuMTMtNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGVha1JlbW92ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2gtMmMwIDEuMzUtLjMxIDIuNjMtLjg0IDMuNzdsMS40OSAxLjQ5QzEzLjUxIDYuNyAxNCA0LjkxIDE0IDN6bTcgOXYtMmMtMS45MSAwLTMuNy40OS01LjI3IDEuMzVsMS40OSAxLjQ5YzEuMTUtLjUzIDIuNDMtLjg0IDMuNzgtLjg0em0wIDR2LTJjLS43OSAwLTEuNTQuMTMtMi4yNC4zN2wxLjY4IDEuNjhjLjE5LS4wMS4zNy0uMDUuNTYtLjA1ek0xMCAzSDhjMCAuMTktLjA0LjM3LS4wNi41NmwxLjY4IDEuNjhjLjI1LS43LjM4LTEuNDYuMzgtMi4yNHptLTUuNTktLjE0TDMgNC4yN2wyLjg0IDIuODRDNS4wMyA3LjY3IDQuMDYgOCAzIDh2MmMxLjYxIDAgMy4wOS0uNTUgNC4yNy0xLjQ2TDguNyA5Ljk3QTguOTkgOC45OSAwIDAgMSAzIDEydjJjMi43MiAwIDUuMi0uOTkgNy4xMS0yLjYybDIuNTEgMi41MUMxMC45OSAxNS44MSAxMCAxOC4yOSAxMCAyMWgyYzAtMi4xNi43Ni00LjE0IDIuMDMtNS43bDEuNDMgMS40M0E2Ljk3MiA2Ljk3MiAwIDAgMCAxNCAyMWgyYzAtMS4wNi4zMy0yLjAzLjg5LTIuODRMMTkuNzMgMjFsMS40MS0xLjQxTDQuNDEgMi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxlbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDgtOC0zLjU5LTgtOCAzLjU5LTggOC04bTAtMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpbmtlZENhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOXYxMUg0VjhoNC4wNWwxLjgzLTJIMTVWNEg5TDcuMTcgNkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjloLTJ6bS42Ny0xLjAxSDIyQTYuMDAzIDYuMDAzIDAgMCAwIDE2IDJ2MS4zM2MyLjU4IDAgNC42NiAyLjA4IDQuNjcgNC42NnptLTIuNjcgMGgxLjMzQTMuMzI3IDMuMzI3IDAgMCAwIDE2IDQuNjdWNmMxLjExIDAgMS45OS44OSAyIDEuOTl6TTcgMTRjMCAyLjc2IDIuMjQgNSA1IDVzNS0yLjI0IDUtNS0yLjI0LTUtNS01LTUgMi4yNC01IDV6bTggMGMwIDEuNjUtMS4zNSAzLTMgM3MtMy0xLjM1LTMtMyAxLjM1LTMgMy0zIDMgMS4zNCAzIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2dvRGV2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTcuNjggMTQuOThINlY5aDEuNzFjMS4yOCAwIDEuNzEgMS4wMyAxLjcxIDEuNzF2Mi41NmMwIC42OC0uNDIgMS43MS0xLjc0IDEuNzF6bTQuNy0zLjUydjEuMDdIMTEuMnYxLjM5aDEuOTN2MS4wN2gtMi4yNWMtLjQuMDEtLjc0LS4zMS0uNzUtLjcxVjkuNzVjLS4wMS0uNC4zMS0uNzQuNzEtLjc1aDIuMjh2MS4wN0gxMS4ydjEuMzloMS4xOHptNC41IDIuNzdjLS40OCAxLjExLTEuMzMuODktMS43MSAwTDEzLjc3IDloMS4xOGwxLjA3IDQuMTFMMTcuMDkgOWgxLjE4bC0xLjM5IDUuMjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuNzcgMTAuMTJoLS42M3YzLjc3aC42M2MuMTQgMCAuMjgtLjA1LjQyLS4xNi4xNC0uMS4yMS0uMjYuMjEtLjQ3di0yLjUyYzAtLjIxLS4wNy0uMzctLjIxLS40N2EuNzIuNzIgMCAwIDAtLjQyLS4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzMyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNC00di0xLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LjgzIDAgMS41LS42NyAxLjUtMS41VjlhMiAyIDAgMCAwLTItMkg5djJoNHYyaC0ydjJoMnYySDl2Mmg0YTIgMiAwIDAgMCAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29rczQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTS4wNCAwaDI0djI0aC0yNFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS4wNCAzaC0xNGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2aC0xNFY1aDE0djE0em0tNi0yaDJWN2gtMnY0aC0yVjdoLTJ2Nmg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9va3M1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6bS00LTR2LTJhMiAyIDAgMCAwLTItMmgtMlY5aDRWN0g5djZoNHYySDl2Mmg0YTIgMiAwIDAgMCAyLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29rczYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3aDJhMiAyIDAgMCAwIDItMnYtMmEyIDIgMCAwIDAtMi0yaC0yVjloNFY3aC00YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyem0wLTRoMnYyaC0ydi0yem04LTEwSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29rc09uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNy0yaDJWN2gtNHYyaDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb29rc1R3byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tNC00aC00di0yaDJhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJIOXYyaDR2MmgtMmEyIDIgMCAwIDAtMiAydjRoNnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvb2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMtMy44NiAwLTcgMy4xNC03IDdoMmMwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1aDJjMC0zLjg2LTMuMTQtNy03LTd6bTAtNEM1LjkzIDYgMSAxMC45MyAxIDE3aDJjMC00Ljk2IDQuMDQtOSA5LTlzOSA0LjA0IDkgOWgyYzAtNi4wNy00LjkzLTExLTExLTExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG91cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDdoLTJ2NEg3djJoNHY0aDJ2LTRoNHYtMmgtNFY3em0tMS01QzYuNDkgMiAyIDYuNDkgMiAxMnM0LjQ5IDEwIDEwIDEwaDhjMS4xIDAgMi0uOSAyLTJ2LThjMC01LjUxLTQuNDktMTAtMTAtMTB6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWljRXh0ZXJuYWxPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA1YzAtMS42Ni0xLjM0LTMtMy0zLS42MiAwLTEuMTkuMTktMS42Ny41bDQuMTUgNC4xNUM5LjggNi4xOCAxMCA1LjYxIDEwIDV6TTE0IDZjMC0xLjEuOS0yIDItMnMyIC45IDIgMnY5LjE3bDIgMlY2YzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0djMuMTdsMiAyVjZ6TTIuMSAyLjEuNjkgMy41MSA1LjE3IDhINGwxIDEwaDFjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNHYtMS4xN2w2LjQ5IDYuNDkgMS40MS0xLjQxTDIuMSAyLjF6TTcuMTkgMTZoLS4zOGwtLjYtNmguOTZsLjU2LjU2TDcuMTkgMTZ6TTEyIDE4YzAgMS4xLS45IDItMiAycy0yLS45LTItMmgxbC41Ni01LjYxTDEyIDE0LjgzVjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWljRXh0ZXJuYWxPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkuMjIgN2MuNDgtLjUzLjc4LTEuMjMuNzgtMiAwLTEuNjYtMS4zNC0zLTMtM1M0IDMuMzQgNCA1YzAgLjc3LjMgMS40Ny43OCAyaDQuNDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDJjLTIuMjEgMC00IDEuNzktNCA0djEyYzAgMS4xLS45IDItMiAycy0yLS45LTItMmgxbDEtMTBINGwxIDEwaDFjMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNFY2YzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2MTZoMlY2YzAtMi4yMS0xLjc5LTQtNC00ek03LjE5IDE2aC0uMzhsLS42LTZoMS41OGwtLjYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vbm9jaHJvbWVQaG90b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMkwxNSAzSDlMNy4yIDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0aC04di0xYy0yLjggMC01LTIuMi01LTVzMi4yLTUgNS01VjdoOHYxMnptLTMtNmMwLTIuOC0yLjItNS01LTV2MS44YzEuOCAwIDMuMiAxLjQgMy4yIDMuMnMtMS40IDMuMi0zLjIgMy4yVjE4YzIuOCAwIDUtMi4yIDUtNXptLTguMiAwYzAgMS44IDEuNCAzLjIgMy4yIDMuMlY5LjhjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdGlvblBob3Rvc0F1dG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yLjg4IDcuODggMS41NCAxLjU0QzQuMTUgMTAuMjMgNCAxMS4xIDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOSAwLTEuNzcuMTUtMi41OC40Mkw3Ljg5IDIuODlDOS4xNSAyLjMyIDEwLjU0IDIgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMHMtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjQ3LjMyLTIuODYuODgtNC4xMnpNNyA1LjVDNyA2LjMzIDYuMzMgNyA1LjUgN1M0IDYuMzMgNCA1LjUgNC42NyA0IDUuNSA0IDcgNC42NyA3IDUuNXptNS4wMyAzLjQ5aC0uMDdMMTAuOCAxMi4zaDIuMzlsLTEuMTYtMy4zMXptLS43NC0xLjQ5aDEuNDNsMy4wMSA4aC0xLjM5bC0uNzItMi4wNGgtMy4yM2wtLjczIDIuMDRIOC4yOGwzLjAxLTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3Rpb25QaG90b3NPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjgxIDIuODEgMS4zOSA0LjIybDIuMjcgMi4yN0E5LjkxIDkuOTEgMCAwIDAgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMCAyLjA0IDAgMy45My0uNjEgNS41MS0xLjY2bDIuMjcgMi4yNyAxLjQxLTEuNDJMMi44MSAyLjgxek0xMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0xLjQ4LjQxLTIuODYgMS4xMi00LjA2bDEwLjkzIDEwLjk0QTcuODY5IDcuODY5IDAgMCAxIDEyIDIwek0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS40OC0uNDEgMi44Ni0xLjEyIDQuMDVsMS40NSAxLjQ1QTkuNzgyIDkuNzgyIDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTIuMDQgMC0zLjkzLjYxLTUuNTEgMS42NmwxLjQ1IDEuNDVDOS4xNCA0LjQxIDEwLjUyIDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdGlvblBob3Rvc09uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMi44OCA3Ljg4IDEuNTQgMS41NEM0LjE1IDEwLjIzIDQgMTEuMSA0IDEyYzAgNC40MSAzLjU5IDggOCA4czgtMy41OSA4LTgtMy41OS04LTgtOGMtLjkgMC0xLjc3LjE1LTIuNTguNDJMNy44OSAyLjg5QzkuMTUgMi4zMiAxMC41NCAyIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTBzLTQuNDggMTAtMTAgMTBTMiAxNy41MiAyIDEyYzAtMS40Ny4zMi0yLjg2Ljg4LTQuMTJ6TTcgNS41QzcgNi4zMyA2LjMzIDcgNS41IDdTNCA2LjMzIDQgNS41IDQuNjcgNCA1LjUgNCA3IDQuNjcgNyA1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3Rpb25QaG90b3NQYXVzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuODggNy44OCAxLjU0IDEuNTRDNC4xNSAxMC4yMyA0IDExLjEgNCAxMmMwIDQuNDEgMy41OSA4IDggOHM4LTMuNTkgOC04LTMuNTktOC04LThjLS45IDAtMS43Ny4xNS0yLjU4LjQyTDcuODkgMi44OUM5LjE1IDIuMzIgMTAuNTQgMiAxMiAyYzUuNTIgMCAxMCA0LjQ4IDEwIDEwcy00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTEuNDcuMzItMi44Ni44OC00LjEyek03IDUuNUM3IDYuMzMgNi4zMyA3IDUuNSA3UzQgNi4zMyA0IDUuNSA0LjY3IDQgNS41IDQgNyA0LjY3IDcgNS41em00IDkuNUg5VjloMnY2em00IDBoLTJWOWgydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3Rpb25QaG90b3NQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwIDUuNTItNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJjMC0xLjE5LjIyLTIuMzIuNi0zLjM4bDEuODguNjhDNC4xNyAxMC4xNCA0IDExLjA1IDQgMTJjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOC0zLjU5LTgtOC04Yy0uOTUgMC0xLjg1LjE3LTIuNjkuNDhsLS42OC0xLjg5QzkuNjkgMi4yMiAxMC44MiAyIDEyIDJjNS41MiAwIDEwIDQuNDggMTAgMTB6TTUuNSA0QzQuNjcgNCA0IDQuNjcgNCA1LjVTNC42NyA3IDUuNSA3IDcgNi4zMyA3IDUuNSA2LjMzIDQgNS41IDR6TTExIDE2VjhIOXY4aDJ6bTQgMFY4aC0ydjhoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vdmllQ3JlYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuNzYgMTBIMjB2OEg0VjYuNDdNMjIgNGgtNGwyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb3ZpZUZpbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTEtLjk0IDIuMDZMNyAxNGwyLjA2Ljk0TDEwIDE3bC45NC0yLjA2TDEzIDE0bC0yLjA2LS45NHptOC4wMS03IDIgNGgtM2wtMi00aC0ybDIgNGgtM2wtMi00aC0ybDIgNGgtM2wtMi00aC0xYy0xLjEgMC0xLjk5LjktMS45OSAybC0uMDEgMTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAxLjk5LS45IDEuOTktMlY0aC0zLjk5em0yIDE0aC0xNlY2LjQ3TDUuNzcgMTBIMTZsLS42MyAxLjM3TDE0IDEybDEuMzcuNjNMMTYgMTRsLjYzLTEuMzdMMTggMTJsLTEuMzctLjYzTDE2IDEwaDQuMDF2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgOWgtMy41djZIMTV2LTEuNWgyYy41NSAwIDEtLjQ1IDEtMVYxMGMwLS41NS0uNDUtMS0xLTF6bS0uNSAzSDE1di0xLjVoMS41VjEyek0xMS41IDlIN2MtLjU1IDAtMSAuNDUtMSAxdjVoMS41di00LjVoMXYzSDEwdi0zaDFWMTVoMS41di01YzAtLjU1LS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6TTUgMTlWNWgxNHYxNEg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTXVzaWNOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAzIC4wMSAxMC41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NWE0LjAwMSA0LjAwMSAwIDEgMCAwIDhjMi4yMiAwIDMuOTktMS43OSAzLjk5LTRWN2g0VjNoLTZ6bS0xLjk5IDE2Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU11c2ljT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aDRWM2gtNnY0LjYxbDIgMnptLTIgMy40NEw0LjQxIDIuODYgMyA0LjI3bDkgOXYuMjhjLS45NC0uNTQtMi4xLS43NS0zLjMzLS4zMi0xLjM0LjQ4LTIuMzcgMS42Ny0yLjYxIDMuMDdhNC4wMDcgNC4wMDcgMCAwIDAgNC41OSA0LjY1YzEuOTYtLjMxIDMuMzUtMi4xMSAzLjM1LTQuMXYtMS41OEwxOS43MyAyMWwxLjQxLTEuNDFMMTIgMTAuNDR6TTEwIDE5Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5hdHVyZVBlb3BsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI0LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi4xNyA5LjE3YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3QTYuOTggNi45OCAwIDAgMCAxNCAxNi4wNlYyMEg2di0zaDF2LTRjMC0uNTUtLjQ1LTEtMS0xSDNjLS41NSAwLTEgLjQ1LTEgMXY0aDF2NWgxNnYtMmgtM3YtMy44OGE3IDcgMCAwIDAgNi4xNy02Ljk1em0tNyA1Yy0yLjc2IDAtNS0yLjI0LTUtNXMyLjI0LTUgNS01IDUgMi4yNCA1IDUtMi4yNCA1LTUgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTYuMTJoLS4wM2MzLjQ5LS40IDYuMi0zLjM2IDYuMi02Ljk1IDAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3QTYuOTggNi45OCAwIDAgMCAxMSAxNi4wNlYyMEg1djJoMTR2LTJoLTZ2LTMuODh6TTcuMTcgOS4xN2MwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1LTIuMjQgNS01IDUtNS0yLjI0LTUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5hdmlnYXRlQmVmb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS42MSA3LjQxIDE0LjIgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTEuMDMgMTJsNC41OC00LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmF2aWdhdGVOZXh0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC4wMiA2IDguNjEgNy40MSAxMy4xOSAxMmwtNC41OCA0LjU5TDEwLjAyIDE4bDYtNi02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYWxldHRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJDNi40OSAyMiAyIDE3LjUxIDIgMTJTNi40OSAyIDEyIDJzMTAgNC4wNCAxMCA5YzAgMy4zMS0yLjY5IDYtNiA2aC0xLjc3Yy0uMjggMC0uNS4yMi0uNS41IDAgLjEyLjA1LjIzLjEzLjMzLjQxLjQ3LjY0IDEuMDYuNjQgMS42N0EyLjUgMi41IDAgMCAxIDEyIDIyem0wLTE4Yy00LjQxIDAtOCAzLjU5LTggOHMzLjU5IDggOCA4Yy4yOCAwIC41LS4yMi41LS41YS41NC41NCAwIDAgMC0uMTQtLjM1Yy0uNDEtLjQ2LS42My0xLjA1LS42My0xLjY1YTIuNSAyLjUgMCAwIDEgMi41LTIuNUgxNmMyLjIxIDAgNC0xLjc5IDQtNCAwLTMuODYtMy41OS03LTgtN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5LjVcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0LjVcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3LjVcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hRmlzaEV5ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYUhvcml6b250YWxTZWxlY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA1LjVjLTMuODkgMC02Ljk1LS44NC04LjY5LTEuNDNBLjk5My45OTMgMCAwIDAgMiA1LjAyVjE5YzAgLjY4LjY2IDEuMTcgMS4zMS45NUM1LjM2IDE5LjI2IDguMSAxOC41IDEyIDE4LjVjMy44NyAwIDYuNjYuNzYgOC42OSAxLjQ1QS45OTkuOTk5IDAgMCAwIDIyIDE5VjVjMC0uNjgtLjY2LTEuMTctMS4zMS0uOTUtMi4wMy42OC00LjgzIDEuNDUtOC42OSAxLjQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWFIb3Jpem9udGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA2LjU0djEwLjkxYy0yLjYtLjc3LTUuMjgtMS4xNi04LTEuMTZzLTUuNC4zOS04IDEuMTZWNi41NGMyLjYuNzcgNS4yOCAxLjE2IDggMS4xNiAyLjcyLjAxIDUuNC0uMzggOC0xLjE2TTIxLjQzIDRjLS4xIDAtLjIuMDItLjMxLjA2QzE4LjE4IDUuMTYgMTUuMDkgNS43IDEyIDUuN3MtNi4xOC0uNTUtOS4xMi0xLjY0QS45NC45NCAwIDAgMCAyLjU3IDRjLS4zNCAwLS41Ny4yMy0uNTcuNjN2MTQuNzVjMCAuMzkuMjMuNjIuNTcuNjIuMSAwIC4yLS4wMi4zMS0uMDYgMi45NC0xLjEgNi4wMy0xLjY0IDkuMTItMS42NHM2LjE4LjU1IDkuMTIgMS42NGMuMTEuMDQuMjEuMDYuMzEuMDYuMzMgMCAuNTctLjIzLjU3LS42M1Y0LjYzYzAtLjQtLjI0LS42My0uNTctLjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWFQaG90b3NwaGVyZVNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk1IDguMTVjLS4yOS0uMTYtLjYxLS4zMS0uOTMtLjQ2QzE5LjQgNC4zMyAxNS45OCAyIDEyIDIgOC4wMiAyIDQuNiA0LjMzIDIuOTkgNy42OGMtLjMzLjE1LS42NC4zLS45My40NkMxLjQxIDguNSAxIDkuMTcgMSA5LjkxdjQuMThjMCAuNzQuNDEgMS40MSAxLjA1IDEuNzcuMjkuMTYuNjEuMzEuOTMuNDZDNC42IDE5LjY3IDguMDIgMjIgMTIgMjJjMy45OCAwIDcuNC0yLjMzIDkuMDEtNS42OC4zMy0uMTUuNjQtLjMuOTMtLjQ2LjY1LS4zNiAxLjA2LTEuMDMgMS4wNi0xLjc3VjkuOTFjMC0uNzQtLjQxLTEuNDEtMS4wNS0xLjc2ek0xMiA0YzIuMzcgMCA0LjQ5IDEuMDQgNS45NSAyLjY4QzE2LjE3IDYuMjUgMTQuMTUgNiAxMiA2Yy0yLjE1IDAtNC4xNy4yNS01Ljk1LjY4QTcuOTQzIDcuOTQzIDAgMCAxIDEyIDR6bTAgMTZjLTIuMzcgMC00LjQ5LTEuMDQtNS45NS0yLjY4IDEuNzguNDMgMy44LjY4IDUuOTUuNjhzNC4xNy0uMjUgNS45NS0uNjhBNy45NDMgNy45NDMgMCAwIDEgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYVBob3Rvc3BoZXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuOTUgOC4xNWMtLjI5LS4xNi0uNjEtLjMxLS45My0uNDZDMTkuNCA0LjMzIDE1Ljk4IDIgMTIgMiA4LjAyIDIgNC42IDQuMzMgMi45OSA3LjY4Yy0uMzMuMTUtLjY0LjMtLjkzLjQ2QzEuNDEgOC41IDEgOS4xNyAxIDkuOTF2NC4xOGMwIC43NC40MSAxLjQxIDEuMDUgMS43Ny4yOS4xNi42MS4zMS45My40NkM0LjYgMTkuNjcgOC4wMiAyMiAxMiAyMmMzLjk4IDAgNy40LTIuMzMgOS4wMS01LjY4LjMzLS4xNS42NC0uMy45My0uNDYuNjUtLjM2IDEuMDYtMS4wMyAxLjA2LTEuNzdWOS45MWMwLS43NC0uNDEtMS40MS0xLjA1LTEuNzZ6TTIxIDkuOTF2NC4xOWMtMi4xOSAxLjIxLTUuNDcgMS45LTkgMS45LTMuNTMgMC02LjgxLS43LTktMS45MVY5LjkxQzUuMiA4LjY5IDguNDcgOCAxMiA4YzMuNTMgMCA2LjgxLjcgOSAxLjkxek0xMiA0YzIuMzcgMCA0LjQ5IDEuMDQgNS45NSAyLjY4QzE2LjE3IDYuMjUgMTQuMTUgNiAxMiA2Yy0yLjE1IDAtNC4xNy4yNS01Ljk1LjY4QTcuOTQzIDcuOTQzIDAgMCAxIDEyIDR6bTAgMTZjLTIuMzcgMC00LjQ5LTEuMDQtNS45NS0yLjY4IDEuNzguNDMgMy44LjY4IDUuOTUuNjhzNC4xNy0uMjUgNS45NS0uNjhBNy45NDMgNy45NDMgMCAwIDEgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYVZlcnRpY2FsU2VsZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxMmMwLTMuODkuODQtNi45NSAxLjQzLTguNjlBLjk5My45OTMgMCAwIDAgMTguOTggMkg1Yy0uNjggMC0xLjE2LjY2LS45NSAxLjMxQzQuNzQgNS4zNiA1LjUgOC4xIDUuNSAxMmMwIDMuODctLjc2IDYuNjYtMS40NSA4LjY5LS4yMS42NS4yNyAxLjMxLjk1IDEuMzFoMTRjLjY4IDAgMS4xNy0uNjYuOTUtMS4zMS0uNjgtMi4wMy0xLjQ1LTQuODMtMS40NS04LjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFub3JhbWFWZXJ0aWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTQgMjEuMTJjLTEuMS0yLjk0LTEuNjQtNi4wMy0xLjY0LTkuMTJzLjU1LTYuMTggMS42NC05LjEyYS45NC45NCAwIDAgMCAuMDYtLjMxYzAtLjM0LS4yMy0uNTctLjYzLS41N0g0LjYzYy0uNCAwLS42My4yMy0uNjMuNTcgMCAuMS4wMi4yLjA2LjMxQzUuMTYgNS44MiA1LjcxIDguOTEgNS43MSAxMnMtLjU1IDYuMTgtMS42NCA5LjEyYy0uMDUuMTEtLjA3LjIyLS4wNy4zMSAwIC4zMy4yMy41Ny42My41N2gxNC43NWMuMzkgMCAuNjMtLjI0LjYzLS41Ny0uMDEtLjEtLjAzLS4yLS4wNy0uMzF6TTYuNTQgMjBjLjc3LTIuNiAxLjE2LTUuMjggMS4xNi04cy0uMzktNS40LTEuMTYtOGgxMC45MWMtLjc3IDIuNi0xLjE2IDUuMjgtMS4xNiA4cy4zOSA1LjQgMS4xNiA4SDYuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYW5vcmFtYVdpZGVBbmdsZVNlbGVjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjLTMuOTcgMC02Ljg1LjYzLTkgMS0uNTUgMS45Ny0xIDMuOTItMSA3IDAgMy4wMy40NSA1LjA1IDEgNyAyLjE1LjM3IDQuOTggMSA5IDEgMy45NyAwIDYuODUtLjYzIDktMSAuNTctMi4wMiAxLTMuOTkgMS03IDAtMy4wMy0uNDUtNS4wNS0xLTctMi4xNS0uMzctNC45OC0xLTktMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hV2lkZUFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzIuNDUgMCA0LjcxLjIgNy4yOS42NC40NyAxLjc4LjcxIDMuNTguNzEgNS4zNnMtLjI0IDMuNTgtLjcxIDUuMzZjLTIuNTguNDQtNC44NC42NC03LjI5LjY0cy00LjcxLS4yLTcuMjktLjY0QzQuMjQgMTUuNTggNCAxMy43OCA0IDEycy4yNC0zLjU4LjcxLTUuMzZDNy4yOSA2LjIgOS41NSA2IDEyIDZtMC0yYy0yLjczIDAtNS4yMi4yNC03Ljk1LjcybC0uOTMuMTYtLjI1LjlDMi4yOSA3Ljg1IDIgOS45MyAyIDEycy4yOSA0LjE1Ljg3IDYuMjJsLjI1Ljg5LjkzLjE2YzIuNzMuNDkgNS4yMi43MyA3Ljk1LjczczUuMjItLjI0IDcuOTUtLjcybC45My0uMTYuMjUtLjg5Yy41OC0yLjA4Ljg3LTQuMTYuODctNi4yM3MtLjI5LTQuMTUtLjg3LTYuMjJsLS4yNS0uODktLjkzLS4xNkMxNy4yMiA0LjI0IDE0LjczIDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhbm9yYW1hIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA0SDNjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjZoMTh2MTJ6bS02LjUtN0wxMSAxNS41MSA4LjUgMTIuNSA1IDE3aDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9BbGJ1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJINmMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE4SDZWNGg1djdsMi41LTEuNUwxNiAxMVY0aDJ2MTZ6bS00LjM4LTYuNUwxNyAxOEg3bDIuMzgtMy4xN0wxMSAxN2wyLjYyLTMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvQ2FtZXJhQmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDVoLTMuMTdMMTUgM0g5TDcuMTcgNUg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTRINFY3aDQuMDVsMS44My0yaDQuMjRsMS44MyAySDIwdjEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yNSAxNiA5IDEzbC0zIDRoMTJsLTMuNzUtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvQ2FtZXJhRnJvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1aC0zLjE3TDE1IDNIOUw3LjE3IDVINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0wIDE0SDRWN2g0LjA1bDEuODMtMmg0LjI0bDEuODMgMkgyMHYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjExXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ljc4IDE0LjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDggMTYuNDNWMTdoOHYtLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvQ2FtZXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4xMiA0IDEuODMgMkgyMHYxMkg0VjZoNC4wNWwxLjgzLTJoNC4yNE0xNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMmgtMy4xN0wxNSAyem0tMyA3YzEuNjUgMCAzIDEuMzUgMyAzcy0xLjM1IDMtMyAzLTMtMS4zNS0zLTMgMS4zNS0zIDMtM20wLTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9GaWx0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDEwdjlINC45OFY1aDlWM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi05aC0yem0tMi45NC0yLjA2TDE3IDEwbC45NC0yLjA2TDIwIDdsLTIuMDYtLjk0TDE3IDRsLS45NCAyLjA2TDE0IDd6TTEyIDhsLTEuMjUgMi43NUw4IDEybDIuNzUgMS4yNUwxMiAxNmwxLjI1LTIuNzVMMTYgMTJsLTIuNzUtMS4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvTGlicmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNHYxMkg4VjRoMTJtMC0ySDhjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptLTguNSA5LjY3IDEuNjkgMi4yNiAyLjQ4LTMuMUwxOSAxNUg5ek0yIDZ2MTRjMCAxLjEuOSAyIDIgMmgxNHYtMkg0VjZIMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvU2l6ZVNlbGVjdEFjdHVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgM0gzQzIgMyAxIDQgMSA1djE0YzAgMS4xLjkgMiAyIDJoMThjMSAwIDItMSAyLTJWNWMwLTEtMS0yLTItMnptMCAxNS45MmMtLjAyLjAzLS4wNi4wNi0uMDguMDhIM1Y1LjA4TDMuMDggNWgxNy44M2MuMDMuMDIuMDYuMDYuMDguMDh2MTMuODR6bS0xMC0zLjQxTDguNSAxMi41IDUgMTdoMTRsLTQuNS02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvdG9TaXplU2VsZWN0TGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE1aDJ2MmgtMnYtMnptMC00aDJ2MmgtMnYtMnptMiA4aC0ydjJjMSAwIDItMSAyLTJ6TTEzIDNoMnYyaC0yVjN6bTggNGgydjJoLTJWN3ptMC00djJoMmMwLTEtMS0yLTItMnpNMSA3aDJ2MkgxVjd6bTE2LTRoMnYyaC0yVjN6bTAgMTZoMnYyaC0ydi0yek0zIDNDMiAzIDEgNCAxIDVoMlYzem02IDBoMnYySDlWM3pNNSAzaDJ2Mkg1VjN6bS00IDh2OGMwIDEuMS45IDIgMiAyaDEyVjExSDF6bTIgOCAyLjUtMy4yMSAxLjc5IDIuMTUgMi41LTMuMjJMMTMgMTlIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvU2l6ZVNlbGVjdFNtYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxNWgtMnYyaDJ2LTJ6bTAtNGgtMnYyaDJ2LTJ6bTAgOGgtMnYyYzEgMCAyLTEgMi0yek0xNSAzaC0ydjJoMlYzem04IDRoLTJ2MmgyVjd6bS0yLTR2MmgyYzAtMS0xLTItMi0yek0zIDIxaDh2LTZIMXY0YzAgMS4xLjkgMiAyIDJ6TTMgN0gxdjJoMlY3em0xMiAxMmgtMnYyaDJ2LTJ6bTQtMTZoLTJ2MmgyVjN6bTAgMTZoLTJ2Mmgydi0yek0zIDNDMiAzIDEgNCAxIDVoMlYzem0wIDhIMXYyaDJ2LTJ6bTgtOEg5djJoMlYzek03IDNINXYyaDJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob3RvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNC44NiA4Ljg2LTMgMy44N0w5IDEzLjE0IDYgMTdoMTJsLTMuODYtNS4xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpY3R1cmVBc1BkZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg4Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRIOFY0aDEydjEyek00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTIgNlY5YzAtLjU1LS40NS0xLTEtMWgtMnY1aDJjLjU1IDAgMS0uNDUgMS0xem0tMi0zaDF2M2gtMVY5em00IDJoMXYtMWgtMVY5aDFWOGgtMnY1aDF6bS04IDBoMWMuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTFIOXY1aDF2LTJ6bTAtMmgxdjFoLTFWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMmMxLjY1IDAgMy0xLjM1IDMtM3MtMS4zNS0zLTMtMy0zIDEuMzUtMyAzIDEuMzUgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem02IDguNThjMC0yLjUtMy45Ny0zLjU4LTYtMy41OHMtNiAxLjA4LTYgMy41OFYxOGgxMnYtMS40MnpNOC40OCAxNmMuNzQtLjUxIDIuMjMtMSAzLjUyLTFzMi43OC40OSAzLjUyIDFIOC40OHpNMTkgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhd09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE3LjE1IDE0LjMyLjU5LTIuMzYuNzYgMy4wNGgxLjQ4bDEuNS02aC0xLjVsLS43NCAzLS43NC0zaC0xLjUybC0uNzQgMy0uNzQtM0gxNGwuNzIgMi45ek0xLjM5IDQuMjIgNi4xNyA5SDN2NmgxLjV2LTJoMS4xbC45IDJIOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LS42N2wxLjQzIDEuNDNMOC43NSAxNWgxLjVsLjM4LTEuNWguMDRsOS4xMSA5LjExIDEuNDEtMS40MUwyLjgxIDIuODEgMS4zOSA0LjIyek02LjUgMTEuNWgtMnYtMWgydjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYXdPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSA5SDN2NmgxLjV2LTJoMS4xbC45IDJIOGwtLjktMi4xYy41LS4zLjktLjguOS0xLjR2LTFDOCA5LjcgNy4zIDkgNi41IDl6bTAgMi41aC0ydi0xaDJ2MXpNMTAuMjUgOWwtMS41IDZoMS41bC4zOC0xLjVoMS43NWwuMzcgMS41aDEuNWwtMS41LTZoLTIuNXptLjc1IDMgLjI1LTFoLjVsLjI1IDFoLTF6TTE5Ljk4IDlsLS43NCAzLS43NC0zaC0xLjUybC0uNzQgMy0uNzQtM0gxNGwxLjUgNmgxLjQ4bC43Ni0zLjA0Ljc2IDMuMDRoMS40OGwxLjUtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlY2VpcHRMb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41IDMuNSAxOCAybC0xLjUgMS41TDE1IDJsLTEuNSAxLjVMMTIgMmwtMS41IDEuNUw5IDIgNy41IDMuNSA2IDJ2MTRIM3YzYzAgMS42NiAxLjM0IDMgMyAzaDEyYzEuNjYgMCAzLTEuMzQgMy0zVjJsLTEuNSAxLjV6TTE1IDIwSDZjLS41NSAwLTEtLjQ1LTEtMXYtMWgxMHYyem00LTFjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF2LTNIOFY1aDExdjE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDdoNnYySDl6TTE2IDdoMnYyaC0yek05IDEwaDZ2Mkg5ek0xNiAxMGgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVSZWRFeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDYuNWE5Ljc3IDkuNzcgMCAwIDEgOC44MiA1LjVjLTEuNjUgMy4zNy01LjAyIDUuNS04LjgyIDUuNVM0LjgzIDE1LjM3IDMuMTggMTJBOS43NyA5Ljc3IDAgMCAxIDEyIDYuNW0wLTJDNyA0LjUgMi43MyA3LjYxIDEgMTJjMS43MyA0LjM5IDYgNy41IDExIDcuNXM5LjI3LTMuMTEgMTEtNy41Yy0xLjczLTQuMzktNi03LjUtMTEtNy41em0wIDVhMi41IDIuNSAwIDAgMSAwIDUgMi41IDIuNSAwIDAgMSAwLTVtMC0yYy0yLjQ4IDAtNC41IDIuMDItNC41IDQuNXMyLjAyIDQuNSA0LjUgNC41IDQuNS0yLjAyIDQuNS00LjUtMi4wMi00LjUtNC41LTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdGF0ZTkwRGVncmVlc0NjdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4zNCA2LjQxLjg2IDEyLjlsNi40OSA2LjQ4IDYuNDktNi40OC02LjUtNi40OXpNMy42OSAxMi45bDMuNjYtMy42NkwxMSAxMi45bC0zLjY2IDMuNjYtMy42NS0zLjY2em0xNS42Ny02LjI2QTguOTUgOC45NSAwIDAgMCAxMyA0Vi43Nkw4Ljc2IDUgMTMgOS4yNFY2YzEuNzkgMCAzLjU4LjY4IDQuOTUgMi4wNWE3LjAwNyA3LjAwNyAwIDAgMSAwIDkuOSA2Ljk3MyA2Ljk3MyAwIDAgMS03Ljc5IDEuNDRsLTEuNDkgMS40OUMxMC4wMiAyMS42MiAxMS41MSAyMiAxMyAyMmMyLjMgMCA0LjYxLS44OCA2LjM2LTIuNjRhOC45OCA4Ljk4IDAgMCAwIDAtMTIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3RhdGU5MERlZ3JlZXNDdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTNhOSA5IDAgMCAwIDEzLjc5IDcuNjJsLTEuNDYtMS40NmMtLjk5LjUzLTIuMTMuODQtMy4zMy44NC0zLjg2IDAtNy0zLjE0LTctN3MzLjE0LTcgNy03aC4xN0w5LjU5IDcuNTkgMTEgOWw0LTQtNC00LTEuNDIgMS40MUwxMS4xNyA0SDExYTkgOSAwIDAgMC05IDl6bTkgMCA2IDYgNi02LTYtNi02IDZ6bTYgMy4xN0wxMy44MyAxMyAxNyA5LjgzIDIwLjE3IDEzIDE3IDE2LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm90YXRlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4xMSA4LjUzIDUuNyA3LjExQzQuOCA4LjI3IDQuMjQgOS42MSA0LjA3IDExaDIuMDJjLjE0LS44Ny40OS0xLjcyIDEuMDItMi40N3pNNi4wOSAxM0g0LjA3Yy4xNyAxLjM5LjcyIDIuNzMgMS42MiAzLjg5bDEuNDEtMS40MmMtLjUyLS43NS0uODctMS41OS0xLjAxLTIuNDd6bTEuMDEgNS4zMmMxLjE2LjkgMi41MSAxLjQ0IDMuOSAxLjYxVjE3LjljLS44Ny0uMTUtMS43MS0uNDktMi40Ni0xLjAzTDcuMSAxOC4zMnpNMTMgNC4wN1YxTDguNDUgNS41NSAxMyAxMFY2LjA5YzIuODQuNDggNSAyLjk0IDUgNS45MXMtMi4xNiA1LjQzLTUgNS45MXYyLjAyYzMuOTUtLjQ5IDctMy44NSA3LTcuOTNzLTMuMDUtNy40NC03LTcuOTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3RhdGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNTUgNS41NSAxMSAxdjMuMDdDNy4wNiA0LjU2IDQgNy45MiA0IDEyczMuMDUgNy40NCA3IDcuOTN2LTIuMDJjLTIuODQtLjQ4LTUtMi45NC01LTUuOTFzMi4xNi01LjQzIDUtNS45MVYxMGw0LjU1LTQuNDV6TTE5LjkzIDExYTcuOTA2IDcuOTA2IDAgMCAwLTEuNjItMy44OWwtMS40MiAxLjQyYy41NC43NS44OCAxLjYgMS4wMiAyLjQ3aDIuMDJ6TTEzIDE3Ljl2Mi4wMmMxLjM5LS4xNyAyLjc0LS43MSAzLjktMS42MWwtMS40NC0xLjQ0Yy0uNzUuNTQtMS41OS44OS0yLjQ2IDEuMDN6bTMuODktMi40MiAxLjQyIDEuNDFjLjktMS4xNiAxLjQ1LTIuNSAxLjYyLTMuODloLTIuMDJjLS4xNC44Ny0uNDggMS43Mi0xLjAyIDIuNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaHV0dGVyU3BlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDFIOXYyaDZWMXptNC4wMyA2LjM5IDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJBOC45NjIgOC45NjIgMCAwIDAgMTIgNGMtNC45NyAwLTkgNC4wMy05IDlzNC4wMiA5IDkgOWE4Ljk5NCA4Ljk5NCAwIDAgMCA3LjAzLTE0LjYxek0xMiAyMGMtMy44NyAwLTctMy4xMy03LTdzMy4xMy03IDctNyA3IDMuMTMgNyA3LTMuMTMgNy03IDd6bS0uMzItNUg2LjM1YTUuOTkyIDUuOTkyIDAgMCAwIDMuNDEgMy41NmwtLjExLS4wNiAyLjAzLTMuNXptNS45Ny00YTYuMDEyIDYuMDEyIDAgMCAwLTMuMzQtMy41NEwxMi4yNiAxMWg1LjM5em0tNy4wNCA3LjgzYy40NS4xMS45MS4xNyAxLjM5LjE3IDEuMzQgMCAyLjU3LS40NSAzLjU3LTEuMTlsLTIuMTEtMy45LTIuODUgNC45MnpNNy41NSA4Ljk5QTUuOTY1IDUuOTY1IDAgMCAwIDYgMTNjMCAuMzQuMDQuNjcuMDkgMWg0LjcyTDcuNTUgOC45OXptOC43OSA4LjE0QTUuOTQgNS45NCAwIDAgMCAxOCAxM2MwLS4zNC0uMDQtLjY3LS4wOS0xaC00LjM0bDIuNzcgNS4xM3ptLTMuMDEtOS45OEMxMi45IDcuMDYgMTIuNDYgNyAxMiA3Yy0xLjQgMC0yLjY5LjQ5LTMuNzEgMS4yOWwyLjMyIDMuNTYgMi43Mi00Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbGlkZXNob3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDh2OGw1LTQtNS00em05LTVINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0cmFpZ2h0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDZIM2MtMS4xIDAtMiAuOS0yIDJ2OGMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTBIM1Y4aDJ2NGgyVjhoMnY0aDJWOGgydjRoMlY4aDJ2NGgyVjhoMnY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3R5bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIuNTMgMTkuNjUgMS4zNC41NnYtOS4wM2wtMi40MyA1Ljg2Yy0uNDEgMS4wMi4wOCAyLjE5IDEuMDkgMi42MXptMTkuNS0zLjdMMTcuMDcgMy45OGEyLjAxMyAyLjAxMyAwIDAgMC0xLjgxLTEuMjNjLS4yNiAwLS41My4wNC0uNzkuMTVMNy4xIDUuOTVhMS45OTkgMS45OTkgMCAwIDAtMS4wOCAyLjZsNC45NiAxMS45N2ExLjk5OCAxLjk5OCAwIDAgMCAyLjYgMS4wOGw3LjM2LTMuMDVhMS45OTQgMS45OTQgMCAwIDAgMS4wOS0yLjZ6bS05LjIgMy44TDcuODcgNy43OWw3LjM1LTMuMDRoLjAxbDQuOTUgMTEuOTUtNy4zNSAzLjA1elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiOVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljg4IDE5Ljc1YzAgMS4xLjkgMiAyIDJoMS40NWwtMy40NS04LjM0djYuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hDYW1lcmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDRoLTMuMTdMMTUgMkg5TDcuMTcgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTkuODggNGg0LjI0bDEuODMgMkgyMHYxMkg0VjZoNC4wNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMUg5VjguNUw1LjUgMTIgOSAxNS41VjEzaDZ2Mi41bDMuNS0zLjVMMTUgOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3dpdGNoVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMTNoNHYybDMtMy0zLTN2Mkg4VjlsLTMgMyAzIDN6bTEwLTMuNVY2YzAtLjU1LS40NS0xLTEtMUgzYy0uNTUgMC0xIC40NS0xIDF2MTJjMCAuNTUuNDUgMSAxIDFoMTRjLjU1IDAgMS0uNDUgMS0xdi0zLjVsNCA0di0xM2wtNCA0ek0xNiAxN0g0VjdoMTJ2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYWdGYWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4em0zLjUtOWMuODMgMCAxLjUtLjY3IDEuNS0xLjVTMTYuMzMgOCAxNS41IDggMTQgOC42NyAxNCA5LjVzLjY3IDEuNSAxLjUgMS41em0tNyAwYy44MyAwIDEuNS0uNjcgMS41LTEuNVM5LjMzIDggOC41IDggNyA4LjY3IDcgOS41IDcuNjcgMTEgOC41IDExem0zLjUgNi41YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGV4dHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNTEgMy4wOCAzLjA4IDE5LjUxYy4wOS4zNC4yNy42NS41MS45LjI1LjI0LjU2LjQyLjkuNTFMMjAuOTMgNC40OWMtLjE5LS42OS0uNzMtMS4yMy0xLjQyLTEuNDF6TTExLjg4IDMgMyAxMS44OHYyLjgzTDE0LjcxIDNoLTIuODN6TTUgM2MtMS4xIDAtMiAuOS0yIDJ2Mmw0LTRINXptMTQgMThjLjU1IDAgMS4wNS0uMjIgMS40MS0uNTkuMzctLjM2LjU5LS44Ni41OS0xLjQxdi0ybC00IDRoMnptLTkuNzEgMGgyLjgzTDIxIDEyLjEyVjkuMjlMOS4yOSAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRoZXJtb3N0YXRBdXRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTJWNmMwLTEuNjYtMS4zNC0zLTMtM1M1IDQuMzQgNSA2djZjLTEuMjEuOTEtMiAyLjM3LTIgNCAwIDEuMTIuMzggMi4xNCAxIDIuOTdWMTloLjAyYy45MSAxLjIxIDIuMzUgMiAzLjk4IDJzMy4wNi0uNzkgMy45OC0ySDEydi0uMDNjLjYyLS44MyAxLTEuODUgMS0yLjk3IDAtMS42My0uNzktMy4wOS0yLTR6bS02IDRjMC0uOTQuNDUtMS44NCAxLjItMi40TDcgMTNWNmMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2N2wuOC42Yy43NS41NyAxLjIgMS40NiAxLjIgMi40SDV6TTE4LjYyIDRoLTEuNjFsLTMuMzggOWgxLjU2bC44MS0yLjNoMy42M2wuOCAyLjNIMjJsLTMuMzgtOXptLTIuMTUgNS4zOSAxLjMxLTMuNzJoLjA4bDEuMzEgMy43MmgtMi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGltZWxhcHNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yNCA3Ljc1QTUuOTc0IDUuOTc0IDAgMCAwIDEyIDUuOTl2NmwtNC4yNCA0LjI0YzIuMzQgMi4zNCA2LjE0IDIuMzQgOC40OSAwYTUuOTkgNS45OSAwIDAgMC0uMDEtOC40OHpNMTIgMS45OWMtNS41MiAwLTEwIDQuNDgtMTAgMTBzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwLTQuNDgtMTAtMTAtMTB6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGltZXIxMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLS4wMSA3LjcyVjkuNGwzLTFWMThoMlY2aC0uMjVMLS4wMSA3Ljcyem0yMy43OCA2LjY1Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhhNi42NCA2LjY0IDAgMCAxLS44Ny0uMjNjLS4yMy0uMDgtLjQxLS4xNi0uNTUtLjI1cy0uMjMtLjE5LS4yOC0uM2EuOTc4Ljk3OCAwIDAgMSAuMDEtLjhjLjA2LS4xMy4xNS0uMjUuMjctLjM0LjEyLS4xLjI3LS4xOC40NS0uMjRzLjQtLjA5LjY0LS4wOWMuMjUgMCAuNDcuMDQuNjYuMTFzLjM1LjE3LjQ4LjI5LjIyLjI2LjI5LjQyYy4wNi4xNi4xLjMyLjEuNDloMS45NUEyLjUxNyAyLjUxNyAwIDAgMCAyMyA5LjgxYy0uMy0uMjUtLjY2LS40NC0xLjA5LS41OS0uNDMtLjE1LS45Mi0uMjItMS40Ni0uMjItLjUxIDAtLjk4LjA3LTEuMzkuMjFzLS43Ny4zMy0xLjA2LjU3Yy0uMjkuMjQtLjUxLjUyLS42Ny44NC0uMTYuMzItLjIzLjY1LS4yMyAxLjAxcy4wOC42OS4yMy45NmMuMTUuMjguMzYuNTIuNjQuNzMuMjcuMjEuNi4zOC45OC41My4zOC4xNC44MS4yNiAxLjI3LjM2LjM5LjA4LjcxLjE3Ljk1LjI2cy40My4xOS41Ny4yOWMuMTMuMS4yMi4yMi4yNy4zNC4wNS4xMi4wNy4yNS4wNy4zOSAwIC4zMi0uMTMuNTctLjQuNzdzLS42Ni4yOS0xLjE3LjI5Yy0uMjIgMC0uNDMtLjAyLS42NC0uMDgtLjIxLS4wNS0uNC0uMTMtLjU2LS4yNGExLjMzMyAxLjMzMyAwIDAgMS0uNTktMS4xMWgtMS44OWMwIC4zNi4wOC43MS4yNCAxLjA1cy4zOS42NS43LjkzYy4zMS4yNy42OS40OSAxLjE1LjY2cy45OC4yNSAxLjU4LjI1Yy41MyAwIDEuMDEtLjA2IDEuNDQtLjE5LjQzLS4xMy44LS4zMSAxLjExLS41NC4zMS0uMjMuNTQtLjUxLjcxLS44My4xNy0uMzIuMjUtLjY3LjI1LTEuMDYtLjAyLS40LS4wOS0uNzQtLjI0LTEuMDJ6bS05Ljk2LTcuMzJjLS4zNC0uNC0uNzUtLjctMS4yMy0uODgtLjQ3LS4xOC0xLjAxLS4yNy0xLjU5LS4yN3MtMS4xMS4wOS0xLjU5LjI3Yy0uNDguMTgtLjg5LjQ3LTEuMjMuODgtLjM0LjQxLS42LjkzLS43OSAxLjU5LS4xOC42NS0uMjggMS40NS0uMjggMi4zOXYxLjkyYzAgLjk0LjA5IDEuNzQuMjggMi4zOS4xOS42Ni40NSAxLjE5LjggMS42LjM0LjQxLjc1LjcxIDEuMjMuODlzMS4wMS4yOCAxLjU5LjI4Yy41OSAwIDEuMTItLjA5IDEuNTktLjI4LjQ4LS4xOC44OC0uNDggMS4yMi0uODlzLjYtLjk0Ljc4LTEuNmMuMTgtLjY1LjI4LTEuNDUuMjgtMi4zOXYtMS45MmMwLS45NC0uMDktMS43NC0uMjgtMi4zOS0uMTgtLjY2LS40NC0xLjE5LS43OC0xLjU5em0tLjkyIDYuMTdjMCAuNi0uMDQgMS4xMS0uMTIgMS41M3MtLjIuNzYtLjM2IDEuMDJjLS4xNi4yNi0uMzYuNDUtLjU5LjU3LS4yMy4xMi0uNTEuMTgtLjgyLjE4LS4zIDAtLjU4LS4wNi0uODItLjE4cy0uNDQtLjMxLS42LS41N2MtLjE2LS4yNi0uMjktLjYtLjM4LTEuMDJzLS4xMy0uOTMtLjEzLTEuNTN2LTIuNWMwLS42LjA0LTEuMTEuMTMtMS41MnMuMjEtLjc0LjM4LTFjLjE2LS4yNS4zNi0uNDMuNi0uNTUuMjQtLjExLjUxLS4xNy44MS0uMTcuMzEgMCAuNTguMDYuODEuMTcuMjQuMTEuNDQuMjkuNi41NS4xNi4yNS4yOS41OC4zNy45OXMuMTMuOTIuMTMgMS41MnYyLjUxaC0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lcjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjYxIDEyLjk3Yy0uMTYtLjI0LS4zNi0uNDYtLjYyLS42NWEzLjM4IDMuMzggMCAwIDAtLjkzLS40OGMuMy0uMTQuNTctLjMuOC0uNS4yMy0uMi40Mi0uNDEuNTctLjY0LjE1LS4yMy4yNy0uNDYuMzQtLjcxLjA4LS4yNC4xMS0uNDkuMTEtLjczIDAtLjU1LS4wOS0xLjA0LS4yOC0xLjQ2LS4xOC0uNDItLjQ0LS43Ny0uNzgtMS4wNi0uMzMtLjI4LS43My0uNS0xLjItLjY0LS40NS0uMTMtLjk3LS4yLTEuNTMtLjItLjU1IDAtMS4wNi4wOC0xLjUyLjI0LS40Ny4xNy0uODcuNC0xLjIuNjktLjMzLjI5LS42LjYzLS43OCAxLjAzLS4yLjM5LS4yOS44My0uMjkgMS4yOWgxLjk4YzAtLjI2LjA1LS40OS4xNC0uNjkuMDktLjIuMjItLjM4LjM4LS41Mi4xNy0uMTQuMzYtLjI1LjU4LS4zM3MuNDYtLjEyLjczLS4xMmMuNjEgMCAxLjA2LjE2IDEuMzYuNDcuMy4zMS40NC43NS40NCAxLjMyIDAgLjI3LS4wNC41Mi0uMTIuNzQtLjA4LjIyLS4yMS40MS0uMzguNTdzLS4zOC4yOC0uNjMuMzctLjU1LjEzLS44OS4xM0g2LjcydjEuNTdINy45Yy4zNCAwIC42NC4wNC45MS4xMS4yNy4wOC41LjE5LjY5LjM1LjE5LjE2LjM0LjM2LjQ0LjYxLjEuMjQuMTYuNTQuMTYuODcgMCAuNjItLjE4IDEuMDktLjUzIDEuNDItLjM1LjMzLS44NC40OS0xLjQ1LjQ5LS4yOSAwLS41Ni0uMDQtLjgtLjEzLS4yNC0uMDgtLjQ0LS4yLS42MS0uMzZzLS4zLS4zNC0uMzktLjU2Yy0uMDktLjIyLS4xNC0uNDYtLjE0LS43Mkg0LjE5YzAgLjU1LjExIDEuMDMuMzIgMS40NS4yMS40Mi41Ljc3Ljg2IDEuMDVzLjc3LjQ5IDEuMjQuNjMuOTYuMjEgMS40OC4yMWMuNTcgMCAxLjA5LS4wOCAxLjU4LS4yM3MuOTEtLjM4IDEuMjYtLjY4Yy4zNi0uMy42NC0uNjYuODQtMS4xLjItLjQzLjMtLjkzLjMtMS40OCAwLS4yOS0uMDQtLjU4LS4xMS0uODYtLjA4LS4yNS0uMTktLjUxLS4zNS0uNzZ6bTkuMjYgMS40Yy0uMTQtLjI4LS4zNS0uNTMtLjYzLS43NC0uMjgtLjIxLS42MS0uMzktMS4wMS0uNTNzLS44NS0uMjctMS4zNS0uMzhhNi42NCA2LjY0IDAgMCAxLS44Ny0uMjNjLS4yMy0uMDgtLjQxLS4xNi0uNTUtLjI1cy0uMjMtLjE5LS4yOC0uM2MtLjA1LS4xMS0uMDgtLjI0LS4wOC0uMzlzLjAzLS4yOC4wOS0uNDEuMTUtLjI1LjI3LS4zNGMuMTItLjEuMjctLjE4LjQ1LS4yNHMuNC0uMDkuNjQtLjA5Yy4yNSAwIC40Ny4wNC42Ni4xMXMuMzUuMTcuNDguMjkuMjIuMjYuMjkuNDJjLjA2LjE2LjEuMzIuMS40OWgxLjk1YTIuNTE3IDIuNTE3IDAgMCAwLS45My0xLjk3Yy0uMy0uMjUtLjY2LS40NC0xLjA5LS41OS0uNDMtLjE1LS45Mi0uMjItMS40Ni0uMjItLjUxIDAtLjk4LjA3LTEuMzkuMjFzLS43Ny4zMy0xLjA2LjU3Yy0uMjkuMjQtLjUxLjUyLS42Ny44NHMtLjIzLjY1LS4yMyAxLjAxLjA4LjY4LjIzLjk2LjM3LjUyLjY0LjczYy4yNy4yMS42LjM4Ljk4LjUzLjM4LjE0LjgxLjI2IDEuMjcuMzYuMzkuMDguNzEuMTcuOTUuMjZzLjQzLjE5LjU3LjI5Yy4xMy4xLjIyLjIyLjI3LjM0LjA1LjEyLjA3LjI1LjA3LjM5IDAgLjMyLS4xMy41Ny0uNC43N3MtLjY2LjI5LTEuMTcuMjljLS4yMiAwLS40My0uMDItLjY0LS4wOC0uMjEtLjA1LS40LS4xMy0uNTYtLjI0YTEuMzMzIDEuMzMzIDAgMCAxLS41OS0xLjExaC0xLjg5YzAgLjM2LjA4LjcxLjI0IDEuMDVzLjM5LjY1LjcuOTNjLjMxLjI3LjY5LjQ5IDEuMTUuNjYuNDYuMTcuOTguMjUgMS41OC4yNS41MyAwIDEuMDEtLjA2IDEuNDQtLjE5LjQzLS4xMy44LS4zMSAxLjExLS41NC4zMS0uMjMuNTQtLjUxLjcxLS44My4xNy0uMzIuMjUtLjY3LjI1LTEuMDYtLjAyLS40LS4wOS0uNzQtLjI0LTEuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMWg2djJIOXpNMTIgNmMzLjg3IDAgNyAzLjEzIDcgNyAwIC45NC0uMTkgMS44My0uNTIgMi42NWwxLjUgMS41YTguOTYzIDguOTYzIDAgMCAwLS45NS05Ljc2bDEuNDItMS40MmMtLjQzLS41MS0uOS0uOTktMS40MS0xLjQxbC0xLjQyIDEuNDJhOC45NjIgOC45NjIgMCAwIDAtOS43Ny0uOTZsMS41IDEuNUE3LjA3IDcuMDcgMCAwIDEgMTIgNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgOC4xNyAyIDJWOGgtMnpNMi44MSAyLjgxIDEuMzkgNC4yMmwzLjQgMy40YTguOTk0IDguOTk0IDAgMCAwIDEyLjU5IDEyLjU5bDIuNCAyLjQgMS40MS0xLjQxTDIuODEgMi44MXpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03IDAtMS40Ny40NS0yLjgzIDEuMjItMy45NWw5LjczIDkuNzNBNi45NDUgNi45NDUgMCAwIDEgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUaW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDFIOXYyaDZWMXptLTQgMTNoMlY4aC0ydjZ6bTguMDMtNi42MSAxLjQyLTEuNDJjLS40My0uNTEtLjktLjk5LTEuNDEtMS40MWwtMS40MiAxLjQyQTguOTYyIDguOTYyIDAgMCAwIDEyIDRjLTQuOTcgMC05IDQuMDMtOSA5czQuMDIgOSA5IDlhOC45OTQgOC45OTQgMCAwIDAgNy4wMy0xNC42MXpNMTIgMjBjLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVG9uYWxpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0xIDE3LjkzYy0zLjk0LS40OS03LTMuODUtNy03LjkzczMuMDUtNy40NCA3LTcuOTN2MTUuODZ6bTItMTUuODZjMS4wMy4xMyAyIC40NSAyLjg3LjkzSDEzdi0uOTN6TTEzIDdoNS4yNGMuMjUuMzEuNDguNjUuNjggMUgxM1Y3em0wIDNoNi43NGMuMDguMzMuMTUuNjYuMTkgMUgxM3YtMXptMCA5LjkzVjE5aDIuODdjLS44Ny40OC0xLjg0LjgtMi44Ny45M3pNMTguMjQgMTdIMTN2LTFoNS45MmMtLjIuMzUtLjQzLjY5LS42OCAxem0xLjUtM0gxM3YtMWg2LjkzYy0uMDQuMzQtLjExLjY3LS4xOSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhbnNmb3JtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxOHYtMkg4VjRoMkw3IDEgNCA0aDJ2MkgydjJoNHY4YzAgMS4xLjkgMiAyIDJoOHYyaC0ybDMgMyAzLTNoLTJ2LTJoNHpNMTAgOGg2djZoMlY4YzAtMS4xLS45LTItMi0yaC02djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDE3djJoNnYtMkgzek0zIDV2MmgxMFY1SDN6bTEwIDE2di0yaDh2LTJoLTh2LTJoLTJ2Nmgyek03IDl2MkgzdjJoNHYyaDJWOUg3em0xNCA0di0ySDExdjJoMTB6bS02LTRoMlY3aDRWNWgtNFYzaC0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb0NhbWVyYUJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMC40OFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJ2LTQuNDhsNCAzLjk4di0xMWwtNCAzLjk4ek0xNiAxOEg0VjZoMTJ2MTJ6bS00LjM4LTYuNUw5IDE1bC0xLjYyLTIuMTdMNSAxNmgxMGwtMy4zOC00LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWRlb0NhbWVyYUZyb250IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTAuNDhWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi00LjQ4bDQgMy45OHYtMTFsLTQgMy45OHptLTItLjc5VjE4SDRWNmgxMnYzLjY5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTUuNDNjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDYgMTUuNDNWMTZoOHYtLjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlkZW9TdGFibGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnpNNCAxOFY2aDIuOTVsLTIuMzMgOC43M0wxNi44MiAxOEg0em0xMS42Mi0yLjM5LTguNTUtMi4yOUw4LjM4IDguNGw4LjU2IDIuMjktMS4zMiA0Ljkyek0yMCAxOGgtMi45NWwyLjM0LTguNzNMNy4xOCA2SDIwdjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVmlld0NvbWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0djE2aDIwVjRIMnptMiAyaDE2djVINFY2em0wIDEydi01aDR2NUg0em02IDB2LTVoMTB2NUgxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZXdDb21wYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0djE2aDIwVjRIMnptNC41IDE0SDR2LTIuNWgyLjVWMTh6bTAtNC43NUg0di0yLjVoMi41djIuNXptMC00Ljc1SDRWNmgyLjV2Mi41ek0xMSAxOEg4LjV2LTIuNUgxMVYxOHptMC00Ljc1SDguNXYtMi41SDExdjIuNXptMC00Ljc1SDguNVY2SDExdjIuNXptNC41IDkuNUgxM3YtMi41aDIuNVYxOHptMC00Ljc1SDEzdi0yLjVoMi41djIuNXptMC00Ljc1SDEzVjZoMi41djIuNXpNMjAgMThoLTIuNXYtMi41SDIwVjE4em0wLTQuNzVoLTIuNXYtMi41SDIwdjIuNXptMC00Ljc1aC0yLjVWNkgyMHYyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWaWduZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNXYxNEgzVjVoMThtMC0ySDNjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMThjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkgNWMzLjI1IDAgNiAxLjgzIDYgNHMtMi43NSA0LTYgNC02LTEuODMtNi00IDIuNzUtNCA2LTRtMC0yYy00LjQyIDAtOCAyLjY5LTggNnMzLjU4IDYgOCA2IDgtMi42OSA4LTYtMy41OC02LTgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZycGFubyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjAxIDRDMjAuNDUgNCAxNy40IDUuNSAxMiA1LjVjLTUuMzEgMC04LjQ5LTEuNDktOS4wMS0xLjQ5LS41MyAwLS45OS40NC0uOTkgMS4wMVYxOWMwIC41Ny40NiAxIC45OSAxIC41NyAwIDMuNTUtMS41IDkuMDEtMS41IDUuNDIgMCA4LjQ0IDEuNSA5LjAxIDEuNS41MyAwIC45OS0uNDMuOTktMVY1YzAtLjU3LS40Ni0xLS45OS0xek0yMCAxNy42M2MtMi4wMS0uNTktNC42Mi0xLjEzLTgtMS4xMy0zLjM5IDAtNS45OS41NC04IDEuMTNWNi4zOGMyLjU4LjczIDUuMzIgMS4xMiA4IDEuMTIgMy4zOCAwIDUuOTktLjU0IDgtMS4xM3YxMS4yNnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS4xNyAxMC45OS0zLjY5IDQuNDJjMi0uMjYgNC4xOC0uNDEgNi41Mi0uNDEgMi4zIDAgNC41Mi4xNSA2LjUxLjRMMTQgMTBsLTIuODMgMy4zOS0yLTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdiQXV0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyA3LTMuMiA5aDEuOWwuNy0yaDMuMmwuNyAyaDEuOUw5IDdIN3ptLS4xNSA1LjY1TDggOWwxLjE1IDMuNjVoLTIuM3pNMjIgN2wtMS4yIDYuMjlMMTkuMyA3aC0xLjZsLTEuNDkgNi4yOUwxNSA3aC0uNzZsLS4wMS4wMUMxMi43NiA1LjE4IDEwLjUzIDQgOCA0Yy00LjQyIDAtOCAzLjU4LTggOHMzLjU4IDggOCA4YzIuOTYgMCA1LjU1LTEuNjEgNi45My00IC4wMy0uMDYuMDUtLjEyLjA4LS4xOC4wNS0uMDguMDktLjE3LjE0LS4yNWwuMS40M0gxN2wxLjUtNi4xTDIwIDE2aDEuNzVsMi4wNS05SDIyem0tOC42MyA3LjY3QzEyLjM4IDE2LjY0IDEwLjM1IDE4IDggMThjLTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTYgNiAyLjY5IDYgNmMwIC45Ni0uMjMgMS44Ni0uNjMgMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdiQ2xvdWR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMSA2YzIuNjEgMCA0Ljg5IDEuODYgNS40IDQuNDNsLjMgMS41IDEuNTIuMTFjMS41Ni4xMSAyLjc4IDEuNDEgMi43OCAyLjk2IDAgMS42NS0xLjM1IDMtMyAzaC0xM2MtMi4yMSAwLTQtMS43OS00LTQgMC0yLjA1IDEuNTMtMy43NiAzLjU2LTMuOTdsMS4wNy0uMTEuNS0uOTVBNS40NTcgNS40NTcgMCAwIDEgMTIuMDEgNm0wLTJDOS4xMiA0IDYuNiA1LjY0IDUuMzUgOC4wNCAyLjM1IDguMzYuMDEgMTAuOTEuMDEgMTRjMCAzLjMxIDIuNjkgNiA2IDZoMTNjMi43NiAwIDUtMi4yNCA1LTUgMC0yLjY0LTIuMDUtNC43OC00LjY0LTQuOTZDMTguNjggNi41OSAxNS42NSA0IDEyLjAxIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYkluY2FuZGVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMy41NSAxOS4wOSAxLjQxIDEuNDEgMS43OS0xLjgtMS40MS0xLjQxek0xMSAyMGgydjNoLTJ6TTEgMTFoM3YySDF6bTEyLTYuOTV2My45NmwxIC41OGMxLjI0LjcyIDIgMi4wNCAyIDMuNDYgMCAyLjIxLTEuNzkgNC00IDRzLTQtMS43OS00LTRjMC0xLjQyLjc3LTIuNzQgMi0zLjQ2bDEtLjU4VjQuMDVoMm0yLTJIOXY0LjgxQzcuMjEgNy45IDYgOS44MyA2IDEyLjA1YzAgMy4zMSAyLjY5IDYgNiA2czYtMi42OSA2LTZjMC0yLjIyLTEuMjEtNC4xNS0zLTUuMTlWMi4wNXpNMjAgMTFoM3YyaC0zem0tMi43NiA3LjcxIDEuNzkgMS44IDEuNDEtMS40MS0xLjgtMS43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdiSXJpZGVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNWgxNFY5SDV2NnptMi00aDEwdjJIN3YtMnptNC0xMGgydjNoLTJ6bTkuNDYgNC4wMUwxOS4wNCAzLjZsLTEuNzkgMS43OSAxLjQxIDEuNDF6TTExIDIwaDJ2M2gtMnptNi4yNC0xLjI5IDEuNzkgMS44IDEuNDItMS40Mi0xLjgtMS43OXpNNC45NiAzLjU5NWwxLjc4OCAxLjc5TDUuMzQgNi43OSAzLjU1MyA1LjAwM3pNMy41NSAxOS4wOGwxLjQxIDEuNDIgMS43OS0xLjgtMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2JTaGFkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEydjIuNWw1LjUgNS41SDIybC04LTh6bTAgOGgzbC0zLTN2M3pNOCA0bC02IDZoMnYxMGg4VjEwaDJMOCA0em0xIDEwSDd2LTRoMnY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2JTdW5ueSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNi43NiA0Ljg0LTEuOC0xLjc5LTEuNDEgMS40MSAxLjc5IDEuNzl6TTEgMTAuNWgzdjJIMXpNMTEgLjU1aDJWMy41aC0yem04LjA0IDIuNDk1IDEuNDA4IDEuNDA3LTEuNzkgMS43OS0xLjQwNy0xLjQwOHptLTEuOCAxNS4xMTUgMS43OSAxLjggMS40MS0xLjQxLTEuOC0xLjc5ek0yMCAxMC41aDN2MmgtM3ptLTgtNWMtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNiA2LTIuNjkgNi02LTIuNjktNi02LTZ6bTAgMTBjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTQgNCAxLjc5IDQgNC0xLjc5IDQtNCA0em0tMSA0aDJ2Mi45NWgtMnptLTcuNDUtLjk2IDEuNDEgMS40MSAxLjc5LTEuOC0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYlR3aWxpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYuOTU1IDguNjYyIDIuMTItMi4xMjIgMS40MTYgMS40MTQtMi4xMjEgMi4xMjJ6TTIgMThoMjB2Mkgyek0xMSA0aDJ2M2gtMnpNMy41NDMgNy45MjUgNC45NTcgNi41MWwyLjEyMSAyLjEyLTEuNDE0IDEuNDE1ek01IDE2aDE0YzAtMy44Ny0zLjEzLTctNy03cy03IDMuMTMtNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMzYwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3QzYuNDggNyAyIDkuMjQgMiAxMmMwIDIuMjQgMi45NCA0LjEzIDcgNC43N1YyMGw0LTQtNC00djIuNzNjLTMuMTUtLjU2LTUtMS45LTUtMi43MyAwLTEuMDYgMy4wNC0zIDgtM3M4IDEuOTQgOCAzYzAgLjczLTEuNDYgMS44OS00IDIuNTN2Mi4wNWMzLjUzLS43NyA2LTIuNTMgNi00LjU4IDAtMi43Ni00LjQ4LTUtMTAtNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZEJ1c2luZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA0aDE1djJIMnpNMTUgMTdoMnYtM2gxdi0ybC0xLTVIMmwtMSA1djJoMXY2aDl2LTZoNHYzem0tNiAxSDR2LTRoNXY0em0tNS45Ni02IC42LTNoMTEuNzJsLjYgM0gzLjA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAxOGgtM3YtM2gtMnYzaC0zdjJoM3YzaDJ2LTNoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkZExvY2F0aW9uQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMXYzaDN2MmgtM3YzaC0yVjZoLTNWNGgzVjFoMnptLTggMTJjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0xLTkuOTR2Mi4wMkE2LjUzIDYuNTMgMCAwIDAgMTIgNWMtMy4zNSAwLTYgMi41Ny02IDYuMiAwIDIuMzQgMS45NSA1LjQ0IDYgOS4xNCA0LjA1LTMuNyA2LTYuNzkgNi05LjE0VjExaDJ2LjJjMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA2LjIyIDcuOCAzIDEyIDNjLjM0IDAgLjY3LjAyIDEgLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA2djNoM3YyaC0zdjNoLTJ2LTNIOFY5aDNWNmgyem01IDQuMkMxOCA2LjU3IDE1LjM1IDQgMTIgNHMtNiAyLjU3LTYgNi4yYzAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0IDQuMDUtMy43IDYtNi44IDYtOS4xNHpNMTIgMmM0LjIgMCA4IDMuMjIgOCA4LjIgMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTh2LTNoLTJ2M2gtM3YyaDN2M2gydi0zaDN2LTJ6TTE4IDRoMnY5aC0yek00IDRoMnYxNkg0ek0xMSA0aDJ2NGgtMnpNMTEgMTBoMnY0aC0yek0xMSAxNmgydjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZ3JpY3VsdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOWg1YzAtMS4xLS45LTItMi0ySDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE0LjA2VjhjMC0xLjEtLjktMi0yLTJoLTYuMjlsLTEuMDYtMS4wNiAxLjQxLTEuNDEtLjcxLS43MS0zLjUzIDMuNTMuNzEuNzEgMS40MS0xLjQxTDEzIDYuNzFWOWMwIDEuMS0uOSAyLTIgMkg4Ljk2Yy0uMjItLjE2LS40NS0uMy0uNjktLjQzbC0uNC44OS0uNDYtLjIxLjQtLjlDNy4yNiAxMC4xMyA2LjY0IDEwIDYgMTBjLS41MyAwLTEuMDQuMTEtMS41Mi4yNmwuMzQuOTEtLjQ3LjE4LS4zNS0uOTNhNC45MiA0LjkyIDAgMCAwLTIuNDMgMi4zMWwuODkuNC0uMjEuNDYtLjktLjRDMS4xMyAxMy43NCAxIDE0LjM2IDEgMTVjMCAuNTMuMTEgMS4wNC4yNiAxLjUybC45MS0uMzQuMTguNDctLjkzLjM1YTQuOTIgNC45MiAwIDAgMCAyLjMxIDIuNDNsLjQtLjg5LjQ2LjIxLS40LjljLjU1LjIyIDEuMTcuMzUgMS44MS4zNS41MyAwIDEuMDQtLjExIDEuNTItLjI2bC0uMzQtLjkxLjQ3LS4xOC4zNS45M2E0LjkyIDQuOTIgMCAwIDAgMi40My0yLjMxbC0uODktLjQuMjEtLjQ2LjkuNGMuMS0uMjYuMTgtLjU0LjI0LS44Mmg1LjE2Yy0uMDIuMTctLjA1LjM0LS4wNS41MSAwIDEuOTMgMS41NyAzLjUgMy41IDMuNXMzLjUtMS41NyAzLjUtMy41YzAtLjk1LS4zOC0xLjgxLTEtMi40NHpNNiAxOGMtMS42NiAwLTMtMS4zNC0zLTNzMS4zNC0zIDMtMyAzIDEuMzQgMyAzLTEuMzQgMy0zIDN6bTQuODctNGMtLjA0LS4xOC0uMDgtLjM1LS4xMy0uNTJsLS45MS4zNC0uMTgtLjQ3LjkzLS4zNUgxMWMyLjIxIDAgNC0xLjc5IDQtNFY4aDV2NS4wNWMtLjE2LS4wMi0uMzMtLjA1LS41LS4wNS0uOTUgMC0xLjgxLjM4LTIuNDQgMWgtNi4xOXptOC42MyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVTdG9wcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDguN2MtMi40NiAxLjUtNS41IDQuMTctNiA4LjNoMnYySDl2LTJoMmMtLjUtNC41LTQuMzctOC05LThWN2M0LjM5IDAgOC4yMiAyLjU1IDEwIDYuMyAxLjM4LTIuOTcgMy44Ni01LjAzIDUuOTYtNi4zMUwxNCA3VjVoN3Y3aC0yVjguN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMzQgMThINS44bDguMjUtMTJoNS41NGwtMi4yNSAxMnpNMTMgNCAyIDIwaDE3bDMtMTZoLTl6bTEuNSA1YTIuNSAyLjUgMCAwIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWx0Um91dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm05Ljc4IDExLjE2LTEuNDIgMS40MmE3LjI4MiA3LjI4MiAwIDAgMS0xLjc5LTIuOTRsMS45NC0uNDljLjMyLjg5Ljc3IDEuNSAxLjI3IDIuMDF6TTExIDYgNyAyIDMgNmgzLjAyYy4wMi44MS4wOCAxLjU0LjE5IDIuMTdsMS45NC0uNDlDOC4wOCA3LjIgOC4wMyA2LjYzIDguMDIgNkgxMXptMTAgMC00LTQtNCA0aDIuOTljLS4xIDMuNjgtMS4yOCA0Ljc1LTIuNTQgNS44OC0uNS40NC0xLjAxLjkyLTEuNDUgMS41NS0uMzQtLjQ5LS43My0uODgtMS4xMy0xLjI0TDkuNDYgMTMuNmMuOTMuODUgMS41NCAxLjU0IDEuNTQgMy40djVoMnYtNWMwLTIuMDIuNzEtMi42NiAxLjc5LTMuNjMgMS4zOC0xLjI0IDMuMDgtMi43OCAzLjItNy4zN0gyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUF0bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA5djEuNWgyLjI1VjE1aDEuNXYtNC41SDE0VjlIOHpNNiA5SDNjLS41NSAwLTEgLjQ1LTEgMXY1aDEuNXYtMS41aDJWMTVIN3YtNWMwLS41NS0uNDUtMS0xLTF6bS0uNSAzaC0ydi0xLjVoMlYxMnpNMjEgOWgtNC41Yy0uNTUgMC0xIC40NS0xIDF2NUgxN3YtNC41aDFWMTRoMS41di0zLjUxaDFWMTVIMjJ2LTVjMC0uNTUtLjQ1LTEtMS0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXR0cmFjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC4xNSAxNC40MmMuMjMtLjc3LjM1LTEuNTguMzUtMi40MnMtLjEyLTEuNjUtLjM1LTIuNDJjLjc4LS42IDEuMDItMS43LjUxLTIuNThzLTEuNTgtMS4yMy0yLjQ5LS44NWE4LjUzIDguNTMgMCAwIDAtNC4xOC0yLjQyQzEzLjg1IDIuNzUgMTMuMDEgMiAxMiAycy0xLjg1Ljc1LTEuOTggMS43M2E4LjU2MSA4LjU2MSAwIDAgMC00LjE5IDIuNDJjLS45MS0uMzgtMS45OC0uMDMtMi40OS44NXMtLjI3IDEuOTguNTEgMi41OGMtLjIzLjc3LS4zNSAxLjU4LS4zNSAyLjQycy4xMiAxLjY1LjM1IDIuNDJjLS43OC42LTEuMDIgMS43LS41MSAyLjU4czEuNTggMS4yMyAyLjQ5Ljg1Yy40LjQyLjgzLjc5IDEuMyAxLjEyTDUuNzggMjJoMS44OGwuOTgtMi4xOWMuNDQuMTkuOS4zNCAxLjM4LjQ2LjEzLjk4Ljk3IDEuNzMgMS45OCAxLjczczEuODUtLjc1IDEuOTgtMS43M2MuNDYtLjExLjkxLS4yNiAxLjM0LS40NEwxNi4zIDIyaDEuODhsLTEuMzQtM2MuNDgtLjM0LjkzLS43MiAxLjM0LTEuMTUuOTEuMzggMS45OS4wMyAyLjQ5LS44NS41LS44OC4yNi0xLjk4LS41Mi0yLjU4em0tNi41OSA0LjMzYy0uMzctLjQ2LS45My0uNzUtMS41Ni0uNzVzLTEuMi4yOS0xLjU3Ljc1Yy0uNC0uMDktLjc5LS4yMS0xLjE2LS4zN2wxLjQzLTMuMTlhMy41MjIgMy41MjIgMCAwIDAgMi41Ni4wMmwxLjQyIDMuMThjLS4zNi4xNS0uNzMuMjctMS4xMi4zNnptLTMuMDgtNi43M2MwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41em04LjIzIDEuOTljLS42MS4wNy0xLjE4LjQxLTEuNTIuOTktLjMyLjU2LS4zNCAxLjItLjEyIDEuNzUtLjI4LjI5LS41OC41NS0uOS43OWwtMS41LTMuMzVjLjQ5LS41OS43OC0xLjM0Ljc4LTIuMTYgMC0xLjg5LTEuNTUtMy40MS0zLjQ2LTMuNDFzLTMuNDYgMS41My0zLjQ2IDMuNDFjMCAuOC4yOCAxLjU0Ljc1IDIuMTNsLTEuNTIgMy4zOWMtLjMxLS4yMy0uNi0uNDgtLjg3LS43Ni4yNi0uNTYuMjQtMS4yMi0uMDktMS43OS0uMzQtLjU5LS45My0uOTQtMS41Ni0uOTktLjIyLS42OC0uMzMtMS40LS4zMy0yLjE1IDAtLjY0LjA5LTEuMjYuMjUtMS44NS42Ni0uMDMgMS4zLS4zOCAxLjY1LTEgLjM3LS42My4zNS0xLjM4LjAxLTEuOTguOTItLjk4IDIuMTEtMS42OSAzLjQ1LTIuMDMuMzQuNTkuOTkgMSAxLjczIDFzMS4zOS0uNCAxLjczLTFjMS4zNC4zNCAyLjUzIDEuMDcgMy40NCAyLjA1LS4zMi41OS0uMzMgMS4zMy4wMyAxLjk1LjM1LjYuOTYuOTUgMS42IDEgLjE2LjU5LjI1IDEuMjEuMjUgMS44NiAwIC43NS0uMTIgMS40Ny0uMzQgMi4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJoNHYxLjVoLTR6TTE0IDE1aDR2MS41aC00elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3aC01VjRjMC0xLjEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjktMiAydjNINGMtMS4xIDAtMiAuOS0yIDJ2MTFjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0tOSAwVjRoMnY1aC0yVjd6bTkgMTNINFY5aDVjMCAxLjEuOSAyIDIgMmgyYzEuMSAwIDItLjkgMi0yaDV2MTF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4wOCAxNi4xOGMtLjY0LS4yOC0xLjM0LS40My0yLjA4LS40M3MtMS40NC4xNS0yLjA4LjQzYy0uNTYuMjQtLjkyLjc4LS45MiAxLjM5VjE4aDZ2LS40M2MwLS42MS0uMzYtMS4xNS0uOTItMS4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJha2VyeURpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjUgMTAuOTRjLjEzLS4zMi4xLS4yMy4xNS0uMzkuMy0xLjIxLS4zNC0yLjQ3LTEuNS0yLjkzbC0yLjAxLS44Yy0uNDYtLjE4LS45NS0uMjEtMS40MS0uMTItLjExLS4zMy0uMjktLjYzLS41Mi0uODktLjQ4LS41Mi0xLjE1LS44MS0xLjg1LS44MWgtMi43MWMtLjcxIDAtMS4zOC4yOS0xLjg1LjgxLS4yNC4yNi0uNDIuNTYtLjUzLjg4LS40Ni0uMDktLjk1LS4wNi0xLjQxLjEybC0yLjAxLjhjLTEuMTYuNDYtMS44IDEuNzItMS41IDIuOTNsLjE1LjM4QzEuMSAxNS41NSAxIDE1LjU1IDEgMTYuMzhjMCAuOTEuNDYgMS43NCAxLjI0IDIuMjIgMS40Mi44OCAyLjQ5LjE0IDQtLjYxaDExLjUzYzEuNTIuNzYgMS44NiAxLjAxIDIuNjMgMS4wMSAxIDAgMi42MS0uNzcgMi42MS0yLjYxLS4wMS0uODUtLjEzLS44OC0yLjUxLTUuNDV6bS0uMzggNS45OS0xLjY4LS44NCAxLjA4LTIuNyAxLjQxIDIuNzFjLjI4LjUzLS4yOSAxLjA5LS44MS44M3ptLTUuMDMtLjk0LjYyLTYuOWMuMDMtLjMzLjM3LS41NC42OC0uNDJsMi4wMS44Yy4yMi4wOS4zNC4zMS4zMS41NGwtMi40IDUuOThoLTEuMjJ6bS03LjQxIDAtMi40LTUuOThjLS4wMy0uMjMuMDktLjQ1LjMxLS41NGwyLjAxLS44Yy4zMS0uMTIuNjUuMDguNjguNDJsLjYyIDYuOUg3LjY4em0tNC42MS4xMSAxLjQxLTIuNzIgMS4wOCAyLjcxLTEuNjguODRjLS41Mi4yNi0xLjA5LS4zLS44MS0uODN6bTcuMDgtOC41NmEuNS41IDAgMCAxIC41LS41NGgyLjcxYS41LjUgMCAwIDEgLjUuNTRsLS43NyA4LjQ1aC0yLjE3bC0uNzctOC40NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlZW5oZXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxSDVjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMyAxNS45M2MwIC42OS4zNSAxLjMuODggMS42NkwxMiAyM2w4LjExLTUuNDFjLjUzLS4zNi44OC0uOTcuODgtMS42NkwyMSAzYzAtMS4xLS45LTItMi0yem0tNyAxOS42LTctNC42NlYzaDE0djEyLjkzbC03IDQuNjd6bS0yLjAxLTcuNDItMi41OC0yLjU5TDYgMTJsNCA0IDgtOC0xLjQyLTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCaWtlU2Nvb3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDE0aC43NEw4LjgyIDUuNTZBMi4wMDkgMi4wMDkgMCAwIDAgNi44NyA0SDN2MmgzLjg3bDEuNDIgNi4yNWgtLjAxQTYuMDA4IDYuMDA4IDAgMCAwIDQuMDkgMTdIMHYyaDZ2LTFjMC0yLjIxIDEuNzktNCA0LTR6TTE5IDhoLS44MmwtMS4zNS0zLjY5QTEuOTc2IDEuOTc2IDAgMCAwIDE0Ljk2IDNIMTF2MmgzLjk2bDEuMSAzSDEwLjRsLjQ2IDJIMTVjLS40My41OC0uNzUgMS4yNS0uOSAyaC0yLjc5bC40NiAyaDIuMzNjLjQ0IDIuMjMgMi4zMSAzLjg4IDQuNjUgMy45OSAyLjguMTMgNS4yNS0yLjE5IDUuMjUtNUMyNCAxMC4yIDIxLjggOCAxOSA4em0wIDhjLTEuNjggMC0zLTEuMzItMy0zIDAtLjkzLjQxLTEuNzMgMS4wNS0yLjI4bC45NiAyLjY0IDEuODgtLjY4LS45Ny0yLjY3Yy4wMyAwIC4wNi0uMDEuMDktLjAxIDEuNjggMCAzIDEuMzIgMyAzcy0xLjMzIDMtMy4wMSAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxNWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnJlYWtmYXN0RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggM0g2QzMuNzkgMyAyIDQuNzkgMiA3YzAgMS40OC44MSAyLjc1IDIgMy40NVYxOWMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi04LjU1YzEuMTktLjY5IDItMS45NyAyLTMuNDUgMC0yLjIxLTEuNzktNC00LTR6bTEgNS43Mi0xIC41OFYxOUg2VjkuMzFsLS45OS0uNThDNC4zOCA4LjM1IDQgNy43MSA0IDdjMC0xLjEuOS0yIDItMmgxMmMxLjEgMCAyIC45IDIgMiAwIC43MS0uMzggMS4zNi0xIDEuNzJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjcxIDkuMjlDMTIuNTEgOS4xIDEyLjI2IDkgMTIgOXMtLjUxLjEtLjcxLjI5bC0zIDNhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDMgM2MuMi4yLjQ1LjMuNzEuM3MuNTEtLjEuNzEtLjI5bDMtM2EuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTMtMy4wMXpNMTIgMTQuNTggMTAuNDEgMTMgMTIgMTEuNDEgMTMuNTkgMTMgMTIgMTQuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCcnVuY2hEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDIxLjVjMCAuMjguMjIuNS40OS41aDEzLjAyYy4yNyAwIC40OS0uMjIuNDktLjVWMjBIMnYxLjV6TTE1LjUgMTZIMTF2LTJIN3YySDIuNWMtLjI4IDAtLjUuMjItLjUuNVYxOGgxNHYtMS41YzAtLjI4LS4yMi0uNS0uNS0uNXpNMjAuNDcgMTUuNDVBNS43OTYgNS43OTYgMCAwIDAgMjIgMTEuNTFWMmgtNnY5LjQ3YzAgMS40OC41OCAyLjkyIDEuNiA0bC40LjQyVjIyaDR2LTJoLTJ2LTQuMDNsLjQ3LS41MnpNMTggNGgydjRoLTJWNHptMS4wMyAxMC4wN2EzLjg5MyAzLjg5MyAwIDAgMS0xLjAzLTIuNlYxMGgydjEuNTFjMCAuOTUtLjM0IDEuODUtLjk3IDIuNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdXNBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNi41XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTMuNVwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExVjhoNy4yOUMxMS4xIDcuMzcgMTEgNi43IDExIDZINC40M2MuODMtLjcxIDIuOTgtMS4wOSA2LjY1LS45OC4xLS43LjMtMS4zNy41OS0xLjk5QzIuOTcgMi42NyAyIDUuMDIgMiA3djkuNWMwIC45NS4zOCAxLjgxIDEgMi40NFYyMWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTIuMDZjLjYyLS42MyAxLTEuNDkgMS0yLjQ0VjEzYy0xLjkxIDAtMy42My0uNzYtNC44OS0ySDR6bTEyIDVjMCAxLjEtLjkgMi0yIDJINmMtMS4xIDAtMi0uOS0yLTJ2LTNoMTJ2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMWMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS41IDhoLTFWOGgxdjF6bTAtMmgtMVYzaDF2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhckNyYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMWMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bS41IDZoLTFWM2gxdjR6bTAgMXYxaC0xVjhoMXpNNiAxMy41YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41UzguMzMgMTUgNy41IDE1IDYgMTQuMzMgNiAxMy41em0xMy0uNTdhNi43MiA2LjcyIDAgMCAwIDItLjZWMTljMCAuNTUtLjQ1IDEtMSAxaC0xYy0uNTUgMC0xLS40NS0xLTF2LTFINnYxYzAgLjU1LS40NSAxLTEgMUg0Yy0uNTUgMC0xLS40NS0xLTF2LThsMi4wOC01Ljk5QzUuMjkgNC40MiA1Ljg0IDQgNi41IDRoNC43OWMtLjE5LjYzLS4yOSAxLjMxLS4yOSAySDYuODVMNS44MSA5aDUuODZjLjM2Ljc1Ljg0IDEuNDMgMS40MyAySDV2NWgxNHYtMy4wN3ptLTEuMDkuMDdhNi45MiA2LjkyIDAgMCAxLTIuNTMtLjUxYy0uMjMuMjctLjM4LjYyLS4zOCAxLjAxIDAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNWMwLS4xOC0uMDMtLjM0LS4wOS0uNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhclJlbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjE2LjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjE2LjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuMjUgOS42Yy0uMDItLjAyLS4wMy0uMDQtLjA1LS4wNy0uMzgtLjUyLS45Mi0uNTMtLjkyLS41M0g3Ljcycy0uNTQuMDEtLjkyLjU0Yy0uMDIuMDItLjAzLjA0LS4wNS4wNi0uMDcuMTEtLjE0LjI0LS4xOS40LS4yMi42Ni0uNzQgMi4yMi0xLjU2IDQuNjl2Ni41YzAgLjQ1LjM1LjgxLjc4LjgxaC40NGMuNDMgMCAuNzgtLjM2Ljc4LS44MVYyMGgxMHYxLjE5YzAgLjQ1LjM0LjgxLjc4LjgxaC40NGMuNDMgMCAuNzgtLjM2Ljc4LS44MXYtNi41Yy0uODItMi40Ni0xLjM0LTQuMDMtMS41Ni00LjY5LS4wNS0uMTYtLjEyLS4yOS0uMTktLjR6TTguMzMgMTFoNy4zNGwuMjMuNjkuNDMgMS4zMUg3LjY3bC42Ni0yek0xNyAxOEg3di0zaDEwdjN6TTEwLjgzIDNBMy4wMSAzLjAxIDAgMCAwIDggMUM2LjM0IDEgNSAyLjM0IDUgNGMwIDEuNjUgMS4zNCAzIDMgMyAxLjMgMCAyLjQxLS44NCAyLjgzLTJIMTZ2MmgyVjVoMVYzaC04LjE3ek04IDVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhclJlcGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS43OCAxNmguNDRjLjQzIDAgLjc4LS4zNi43OC0uODFWMTRoMTB2MS4xOWMwIC40NS4zNC44MS43OC44MWguNDRjLjQzIDAgLjc4LS4zNi43OC0uODF2LTYuNUwxNy40NCA0Yy0uMDUtLjE2LS4xMi0uMjktLjE5LS40LS4wMi0uMDItLjAzLS4wNC0uMDUtLjA3LS4zOC0uNTItLjkyLS41My0uOTItLjUzSDcuNzJzLS41NC4wMS0uOTIuNTRjLS4wMi4wMi0uMDMuMDQtLjA1LjA2LS4wNy4xMS0uMTQuMjQtLjE5LjRMNSA4LjY5djYuNWMwIC40NS4zNS44MS43OC44MXpNOC4zMyA1aDcuMzRsLjIzLjY5LjQzIDEuMzFINy42N2wuNjYtMnpNNyA5LjAxVjloMTB2M0g3VjkuMDF6TTQgMTcuMDFWMTloN3YzaDJ2LTNoN3YtMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhc3RsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDl2MmgtMlYzaC0ydjJoLTJWM2gtMnYyaC0yVjNIOXYySDdWM0g1djhIM1Y5SDF2MTJoOXYtM2MwLTEuMS45LTIgMi0yczIgLjkgMiAydjNoOVY5aC0yem0wIDEwaC01di0xYzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0djFIM3YtNmg0VjdoMTB2Nmg0djZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOWgydjNIOXpNMTMgOWgydjNoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXRlZ29yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgMi01LjUgOWgxMUwxMiAyem0wIDMuODRMMTMuOTMgOWgtMy44N0wxMiA1Ljg0ek0xNy41IDEzYy0yLjQ5IDAtNC41IDIuMDEtNC41IDQuNXMyLjAxIDQuNSA0LjUgNC41IDQuNS0yLjAxIDQuNS00LjUtMi4wMS00LjUtNC41LTQuNXptMCA3YTIuNSAyLjUgMCAwIDEgMC01IDIuNSAyLjUgMCAwIDEgMCA1ek0zIDIxLjVoOHYtOEgzdjh6bTItNmg0djRINXYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNlbGVicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiAyMiAxNC01LTktOS01IDE0em0xMC4zNS01LjgyTDUuMyAxOC43bDIuNTItNy4wNSA0LjUzIDQuNTN6TTE0LjUzIDEyLjUzbDUuNTktNS41OWExLjI1IDEuMjUgMCAwIDEgMS43NyAwbC41OS41OSAxLjA2LTEuMDYtLjU5LS41OWEyLjc1OCAyLjc1OCAwIDAgMC0zLjg5IDBsLTUuNTkgNS41OSAxLjA2IDEuMDZ6TTEwLjA2IDYuODhsLS41OS41OSAxLjA2IDEuMDYuNTktLjU5YTIuNzU4IDIuNzU4IDAgMCAwIDAtMy44OWwtLjU5LS41OS0xLjA2IDEuMDcuNTkuNTljLjQ4LjQ4LjQ4IDEuMjggMCAxLjc2ek0xNy4wNiAxMS44OGwtMS41OSAxLjU5IDEuMDYgMS4wNiAxLjU5LTEuNTlhMS4yNSAxLjI1IDAgMCAxIDEuNzcgMGwxLjYxIDEuNjEgMS4wNi0xLjA2LTEuNjEtMS42MWEyLjc1OCAyLjc1OCAwIDAgMC0zLjg5IDB6TTE1LjA2IDUuODhsLTMuNTkgMy41OSAxLjA2IDEuMDYgMy41OS0zLjU5YTIuNzU4IDIuNzU4IDAgMCAwIDAtMy44OWwtMS41OS0xLjU5LTEuMDYgMS4wNiAxLjU5IDEuNTljLjQ4LjQ5LjQ4IDEuMjkgMCAxLjc3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2h1cmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTIuMjJWOWwtNS0yLjVWNWgyVjNoLTJWMWgtMnYySDl2MmgydjEuNUw2IDl2My4yMkwyIDE0djhoOXYtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NGg5di04bC00LTEuNzh6TTIwIDIwaC01di0yLjA0YzAtMS42OS0xLjM1LTMuMDYtMy0zLjA2cy0zIDEuMzctMyAzLjA2VjIwSDR2LTQuNzlsNC0xLjgxdi0zLjM1TDEyIDhsNCAyLjA0djMuMzVsNCAxLjgxVjIwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2xlYW5pbmdTZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDExaC0xVjNjMC0xLjEtLjktMi0yLTJoLTJjLTEuMSAwLTIgLjktMiAydjhIOGMtMi43NiAwLTUgMi4yNC01IDV2N2gxOHYtN2MwLTIuNzYtMi4yNC01LTUtNXptLTUtOGgydjhoLTJWM3ptOCAxOGgtMnYtM2MwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXYzaC0ydi0zYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNIOXYtM2MwLS41NS0uNDUtMS0xLTFzLTEgLjQ1LTEgMXYzSDV2LTVjMC0xLjY1IDEuMzUtMyAzLTNoOGMxLjY1IDAgMyAxLjM1IDMgM3Y1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29tcGFzc0NhbGlicmF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgOGMtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6bTAtMTdDOC4xIDMgNC41NiA0LjU5IDIgNy4xNWw1IDVhNy4wNiA3LjA2IDAgMCAxIDEwLS4wMWw1LTVDMTkuNDQgNC41OSAxNS45IDMgMTIgM3ptNC44NCA2LjQ3Yy0xLjQ0LS45MS0zLjEtMS40LTQuODQtMS40LTEuNzQgMC0zLjQxLjQ5LTQuODUgMS40MUw0Ljk0IDcuMjZDNi45OSA1Ljc5IDkuNDQgNSAxMiA1YzIuNTYgMCA1IC43OSA3LjA1IDIuMjZsLTIuMjEgMi4yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbm5lY3RpbmdBaXJwb3J0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjQgMTcgMS4zIDQuNGgtMS4xTDEzIDE3aC0zYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xaDNsMi42LTQuNGgxLjFMMTUuNCAxNWgyLjg1bC43NS0xaDFsLS42IDIgLjYgMmgtMWwtLjc1LTFIMTUuNHpNNS43NSA3IDUgNkg0bC42IDItLjYgMmgxbC43NS0xSDguNmwtMS4zIDQuNGgxLjFMMTEgOWgzYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xaC0zTDguNCAyLjZINy4zTDguNiA3SDUuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDcmlzaXNBbGVydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMi41YzAgMS41LTEuNSA2LTEuNSA2aC0yUzkuNSA0IDkuNSAyLjVhMi41IDIuNSAwIDAgMSA1IDB6TTEyIDEwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptNC4wOC00Ljg5Yy4xOC0uNzUuMzMtMS40Ny4zOS0yLjA2QTkuOTk2IDkuOTk2IDAgMCAxIDIyIDEyYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMmMwLTMuOTIgMi4yNS03LjMxIDUuNTMtOC45NS4wNy41OS4yMSAxLjMyLjM5IDIuMDZBOC4wMjggOC4wMjggMCAwIDAgNCAxMmMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04YzAtMi45My0xLjU4LTUuNDktMy45Mi02Ljg5ek0xOCAxMmMwIDMuMzEtMi42OSA2LTYgNnMtNi0yLjY5LTYtNmMwLTIgLjk4LTMuNzcgMi40OC00Ljg2LjIzLjgxLjY1IDIuMDcuNjUgMi4wN0M4LjQzIDkuOTMgOCAxMC45MiA4IDEyYzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRjMC0xLjA4LS40My0yLjA3LTEuMTMtMi43OSAwIDAgLjQxLTEuMjIuNjUtMi4wN0E1Ljk5OCA1Ljk5OCAwIDAgMSAxOCAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlbGl2ZXJ5RGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN2MwLTEuMS0uOS0yLTItMmgtM3YyaDN2Mi42NUwxMy41MiAxNEgxMFY5SDZjLTIuMjEgMC00IDEuNzktNCA0djNoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDQuNDhMMTkgMTAuMzVWN3pNNCAxNHYtMWMwLTEuMS45LTIgMi0yaDJ2M0g0em0zIDNjLS41NSAwLTEtLjQ1LTEtMWgyYzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA2aDV2Mkg1ek0xOSAxM2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGVwYXJ0dXJlQm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNS41XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTIuNVwiLFwiY3lcIjpcIjE2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxYTYuOTggNi45OCAwIDAgMC01Ljc1IDMuMDJDOS44NCA0LjAxIDkuNDMgNCA5IDRjLTQuNDIgMC04IC41LTggNHYxMGMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMmMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIydi0zLjA4YzMuMzktLjQ5IDYtMy4zOSA2LTYuOTIgMC0zLjg3LTMuMTMtNy03LTd6TTkgNmguMjljLS4wOS4zMi0uMTYuNjYtLjIxLjk5SDMuMzRDMy44OSA2LjQ2IDUuMzEgNiA5IDZ6TTMgOC45OWg2LjA4Yy4xNiAxLjExLjU3IDIuMTMgMS4xOCAzLjAxSDNWOC45OXpNMTUgMThjMCAuMzctLjIxLjYyLS4zNC43M2wtLjI5LjI3SDMuNjNsLS4yOS0uMjdBLjk2OC45NjggMCAwIDEgMyAxOHYtNGg5LjQxYy43OC40NyAxLjY1Ljc5IDIuNTkuOTJWMTh6bTEtNWMtMi43NiAwLTUtMi4yNC01LTVzMi4yNC01IDUtNSA1IDIuMjQgNSA1LTIuMjQgNS01IDV6bS41LTlIMTV2NWwzLjYyIDIuMTYuNzUtMS4yMy0yLjg3LTEuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNpZ25TZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjk3IDcuMjdhLjk5Ni45OTYgMCAwIDAgMC0xLjQxbC0yLjgzLTIuODNhLjk5Ni45OTYgMCAwIDAtMS40MSAwbC00LjQ5IDQuNDktMy44OS0zLjg5Yy0uNzgtLjc4LTIuMDUtLjc4LTIuODMgMGwtMS45IDEuOWMtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wzLjg5IDMuODlMMyAxNi43NlYyMWg0LjI0bDQuNTItNC41MiAzLjg5IDMuODljLjk1Ljk1IDIuMjMuNiAyLjgzIDBsMS45LTEuOWMuNzgtLjc4Ljc4LTIuMDUgMC0yLjgzbC0zLjg5LTMuODkgNC40OC00LjQ4ek01LjA0IDYuOTRsMS44OS0xLjlMOC4yIDYuMzEgNy4wMiA3LjVsMS40MSAxLjQxIDEuMTktMS4xOSAxLjIgMS4yLTEuOSAxLjktMy44OC0zLjg4em0xMS4yMyA3LjQ0LTEuMTkgMS4xOSAxLjQxIDEuNDEgMS4xOS0xLjE5IDEuMjcgMS4yNy0xLjkgMS45LTMuODktMy44OSAxLjktMS45IDEuMjEgMS4yMXpNNi40MSAxOUg1di0xLjQxbDkuNjEtOS42MSAxLjMgMS4zLjExLjExTDYuNDEgMTl6bTkuNjEtMTIuNDQgMS40MS0xLjQxIDEuNDEgMS40MS0xLjQxIDEuNDEtMS40MS0xLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlhbW9uZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINUwyIDlsMTAgMTJMMjIgOWwtMy02ek05LjYyIDhsMS41LTNoMS43NmwxLjUgM0g5LjYyek0xMSAxMHY2LjY4TDUuNDQgMTBIMTF6bTIgMGg1LjU2TDEzIDE2LjY4VjEwem02LjI2LTJoLTIuNjVsLTEuNS0zaDIuNjVsMS41IDN6TTYuMjQgNWgyLjY1bC0xLjUgM0g0Ljc0bDEuNS0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlubmVyRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMiAxOSAyIDJoMTZsMi0yek0zIDE4aDE2Ljk3Yy4yOS0zLjI2LTIuMjgtNi01LjQ4LTYtMi4zNSAwLTQuMzUgMS40OC01LjE0IDMuNTUtLjQxLS4yMy0uODctLjM4LTEuMzUtLjQ3VjloMS43NUMxMC45OSA5IDEyIDcuOTkgMTIgNi43NWg5di0xLjVoLTlDMTIgNC4wMSAxMC45OSAzIDkuNzUgM0gzdjEuNWgxdi43NUgzdjEuNWgxdi43NUgzVjloMXY3LjM5Yy0uNDQuNDYtLjc4IDEtMSAxLjYxem0xMS41LTRjLjk5IDAgMS45MS40IDIuNTggMS4xNC4yNC4yNi40NC41NS41OC44NmgtNi4zMmMuNTgtMS4yMSAxLjgxLTIgMy4xNi0yek04IDQuNWgydi43NUg4VjQuNXptMCAyLjI1aDJ2Ljc1SDh2LS43NXpNNS41IDQuNWgxdi43NWgtMVY0LjV6bTAgMi4yNWgxdi43NWgtMXYtLjc1ek01LjUgOWgxdjYuMDZjLS4zNS4wNi0uNjguMTctMSAuM1Y5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0Jpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgNS41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNNSAxMmMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNSA1LTIuMiA1LTUtMi4yLTUtNS01em0wIDguNWMtMS45IDAtMy41LTEuNi0zLjUtMy41czEuNi0zLjUgMy41LTMuNSAzLjUgMS42IDMuNSAzLjUtMS42IDMuNS0zLjUgMy41em01LjgtMTAgMi40LTIuNC44LjhjMS4zIDEuMyAzIDIuMSA1LjEgMi4xVjljLTEuNSAwLTIuNy0uNi0zLjYtMS41bC0xLjktMS45Yy0uNS0uNC0xLS42LTEuNi0uNnMtMS4xLjItMS40LjZMNy44IDguNGMtLjQuNC0uNi45LS42IDEuNCAwIC42LjIgMS4xLjYgMS40TDExIDE0djVoMnYtNi4ybC0yLjItMi4zek0xOSAxMmMtMi44IDAtNSAyLjItNSA1czIuMiA1IDUgNSA1LTIuMiA1LTUtMi4yLTUtNS01em0wIDguNWMtMS45IDAtMy41LTEuNi0zLjUtMy41czEuNi0zLjUgMy41LTMuNSAzLjUgMS42IDMuNSAzLjUtMS42IDMuNS0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0JvYXRGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyAxMi42Ni0xLjEyIDMuOTdjLS43OC0uNDMtMS4wNy0uODYtMi42NS0yLjY3LTEuNiAxLjgyLTIuNDMgMy4wNC00IDMuMDQtMS41MyAwLTIuMzQtMS4xNS00LTMuMDQtMS42IDEuODItMS44NyAyLjIxLTIuNjUgMi42NWwtMS4xMy0zLjk2TDEyIDEwLjExbDcuNzcgMi41NXpNMTUgMUg5djNINmMtMS4xIDAtMiAuOS0yIDJ2NC42MmwtMS4yOS40MmMtLjYzLjE5LS44MS44NC0uNjYgMS4yOEwzLjk1IDE5SDRjMS42IDAgMy4wMi0uODggNC0yIC45OCAxLjEyIDIuNCAyIDQgMnMzLjAyLS44OCA0LTJjLjk4IDEuMTIgMi40IDIgNCAyaC4wNWwxLjkxLTYuNjhjLjExLS4zNy4wNC0xLjA2LS42Ni0xLjI4bC0xLjMtLjQyVjZjMC0xLjEtLjktMi0yLTJoLTNWMXpNNiA5Ljk3VjZoMTJ2My45N0wxMiA4IDYgOS45N3ptMTAgOS43MWMtMS4yMi44NS0yLjYxIDEuMjgtNCAxLjI4cy0yLjc4LS40My00LTEuMjhDNi43OCAyMC41MyA1LjM5IDIxIDQgMjFIMnYyaDJjMS4zOCAwIDIuNzQtLjM1IDQtLjk5IDEuMjYuNjQgMi42My45NyA0IC45N3MyLjc0LS4zMiA0LS45N2MxLjI2LjY1IDIuNjIuOTkgNCAuOTloMnYtMmgtMmMtMS4zOSAwLTIuNzgtLjQ3LTQtMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNCb2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzdjFoLTJWM2gybS0xIDcuMTEgNS4zOCAxLjc3IDIuMzkuNzgtMS4xMiAzLjk3Yy0uNTQtLjMtLjk0LS43MS0xLjE0LS45NEwxNiAxMy45NmwtMS41MSAxLjcyYy0uMzQuNC0xLjI4IDEuMzItMi40OSAxLjMycy0yLjE1LS45Mi0yLjQ5LTEuMzJMOCAxMy45NmwtMS41MSAxLjcyYy0uMi4yMy0uNi42My0xLjE0LjkzbC0xLjEzLTMuOTYgMi40LS43OUwxMiAxMC4xMU0xNSAxSDl2M0g2Yy0xLjEgMC0yIC45LTIgMnY0LjYybC0xLjI5LjQyYTEuMDA3IDEuMDA3IDAgMCAwLS42NiAxLjI4TDMuOTUgMTlINGMxLjYgMCAzLjAyLS44OCA0LTIgLjk4IDEuMTIgMi40IDIgNCAyczMuMDItLjg4IDQtMmMuOTggMS4xMiAyLjQgMiA0IDJoLjA1bDEuODktNi42OGMuMDgtLjI2LjA2LS41NC0uMDYtLjc4cy0uMzQtLjQyLS42LS41TDIwIDEwLjYyVjZjMC0xLjEtLjktMi0yLTJoLTNWMXpNNiA5Ljk3VjZoMTJ2My45N0wxMiA4IDYgOS45N3ptMTAgOS43MWMtMS4yMi44NS0yLjYxIDEuMjgtNCAxLjI4cy0yLjc4LS40My00LTEuMjhDNi43OCAyMC41MyA1LjM5IDIxIDQgMjFIMnYyaDJjMS4zOCAwIDIuNzQtLjM1IDQtLjk5IDEuMjYuNjQgMi42My45NyA0IC45N3MyLjc0LS4zMiA0LS45N2MxLjI2LjY1IDIuNjIuOTkgNCAuOTloMnYtMmgtMmMtMS4zOSAwLTIuNzgtLjQ3LTQtMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNCdXNGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41YzAgLjk1LjM4IDEuODEgMSAyLjQ0VjIwYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDh2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMi4wNmMuNjItLjYzIDEtMS40OSAxLTIuNDRWNmMwLTMuNS0zLjU4LTQtOC00em0wIDJjMy43MSAwIDUuMTMuNDYgNS42NyAxSDYuNDNjLjYtLjUyIDIuMDUtMSA1LjU3LTF6bTYgMTFjMCAxLjEtLjkgMi0yIDJIOGMtMS4xIDAtMi0uOS0yLTJ2LTNoMTJ2M3ptMC01SDZWN2gxMnYzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNCdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQuNDIgMC04IC41LTggNHYxMGMwIC44OC4zOSAxLjY3IDEgMi4yMlYyMGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWg4djFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTEuNzhjLjYxLS41NSAxLTEuMzQgMS0yLjIyVjZjMC0zLjUtMy41OC00LTgtNHptNS42NiAyLjk5SDYuMzRDNi44OSA0LjQ2IDguMzEgNCAxMiA0czUuMTEuNDYgNS42Ni45OXptLjM0IDJWMTBINlY2Ljk5aDEyem0tLjM0IDkuNzQtLjI5LjI3SDYuNjNsLS4yOS0uMjdBLjk2OC45NjggMCAwIDEgNiAxNnYtNGgxMnY0YzAgLjM3LS4yMS42Mi0uMzQuNzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc0NhckZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNWgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgN2gxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTE5IDE3SDV2LTVoMTR2NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA2LjAxQzE4LjcyIDUuNDIgMTguMTYgNSAxNy41IDVoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDEydjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDdoMTAuMjlsMS4wOCAzLjExSDUuNzdMNi44NSA3ek0xOSAxN0g1di01aDE0djV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1JhaWx3YXlGaWxsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyYy00IDAtOCAuNS04IDR2OS41QzQgMTcuNDMgNS41NyAxOSA3LjUgMTlMNiAyMHYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6bTAgMmMzLjcxIDAgNS4xMy40NiA1LjY3IDFINi40M2MuNi0uNTIgMi4wNS0xIDUuNTctMXptNiAxMS41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNXptMC01LjVINlY3aDEydjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNSYWlsd2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxYy00LjQyIDAtOCAuNS04IDR2MTAuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY1YzAtMy41LTMuNTgtNC04LTR6bTAgMmM2IDAgNiAxLjIgNiAySDZjMC0uOCAwLTIgNi0yem02IDR2M0g2VjdoMTJ6bS0xLjUgMTBoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxMmgxMnYzLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41ek0xMiAxMi41Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNSdW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjQ5IDUuNDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0tMy42IDEzLjkgMS00LjQgMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNjMS4zIDEuNSAzLjMgMi41IDUuNSAyLjV2LTJjLTEuOSAwLTMuNS0xLTQuMy0yLjRsLTEtMS42Yy0uNC0uNi0xLTEtMS43LTEtLjMgMC0uNS4xLS44LjFsLTUuMiAyLjJ2NC43aDJ2LTMuNGwxLjgtLjctMS42IDguMS00LjktMS0uNCAyIDcgMS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1N1YndheUZpbGxlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTQgMC04IC41LTggNHY5LjVDNCAxNy40MyA1LjU3IDE5IDcuNSAxOUw2IDIwdjFoMTJ2LTFsLTEuNS0xYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtMy41OC00LTgtNHptMCAyYzMuNzEgMCA1LjEzLjQ2IDUuNjcgMUg2LjQzYy42LS41MiAyLjA1LTEgNS41Ny0xek02IDdoNXYzSDZWN3ptMTIgOC41YzAgLjgzLS42NyAxLjUtMS41IDEuNWgtOWMtLjgzIDAtMS41LS42Ny0xLjUtMS41VjEyaDEydjMuNXptMC01LjVoLTVWN2g1djN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc1N1YndheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6bTUuNjYgM0g2LjQzYy42MS0uNTIgMi4wNi0xIDUuNTctMSAzLjcxIDAgNS4xMi40NiA1LjY2IDF6TTExIDd2M0g2VjdoNXptMiAwaDV2M2gtNVY3em0zLjUgMTBoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxMmgxMnYzLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNUcmFuc2l0RmlsbGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjB2MWgxMnYtMWwtMS41LTFjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVWNmMwLTMuNS0zLjU4LTQtOC00em0wIDJjMy43MSAwIDUuMTMuNDYgNS42NyAxSDYuNDNjLjYtLjUyIDIuMDUtMSA1LjU3LTF6TTYgN2g1djNINlY3em0xMiA4LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTJoMTJ2My41em0wLTUuNWgtNVY3aDV2M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI4LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXJlY3Rpb25zVHJhbnNpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgxMnYtLjVMMTYuNSAxOWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVY2YzAtMy41LTMuNTgtNC04LTR6bTUuNjYgM0g2LjQzYy42MS0uNTIgMi4wNi0xIDUuNTctMSAzLjcxIDAgNS4xMi40NiA1LjY2IDF6TTExIDd2M0g2VjdoNXptMiAwaDV2M2gtNVY3em0zLjUgMTBoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxMmgxMnYzLjVjMCAuODMtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnNXYWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTkuOCA4LjkgNyAyM2gyLjFsMS44LTggMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNDMTQuOCAxMiAxNi44IDEzIDE5IDEzdi0yYy0xLjkgMC0zLjUtMS00LjMtMi40bC0xLTEuNmEyLjE0NSAyLjE0NSAwIDAgMC0yLjY1LS44NEw2IDguM1YxM2gyVjkuNmwxLjgtLjdcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpcmVjdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjQzIDEwLjU5LTkuMDEtOS4wMWMtLjc1LS43NS0yLjA3LS43Ni0yLjgzIDBsLTkgOWMtLjc4Ljc4LS43OCAyLjA0IDAgMi44Mmw5IDljLjM5LjM5LjkuNTggMS40MS41OC41MSAwIDEuMDItLjE5IDEuNDEtLjU4bDguOTktOC45OWMuNzktLjc2LjgtMi4wMi4wMy0yLjgyem0tMTAuNDIgMTAuNC05LTkgOS05IDkgOS05IDl6TTggMTF2NGgydi0zaDR2Mi41bDMuNS0zLjVMMTQgNy41VjEwSDljLS41NSAwLTEgLjQ1LTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURyeUNsZWFuaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNTYgMTEuMzYgMTMgOC40NFY3YzAtLjU1LS40NS0xLTEtMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDFoMmMwLTEuODQtMS42Ni0zLjMtMy41Ni0yLjk1LTEuMTguMjItMi4xNSAxLjE3LTIuMzggMi4zNS0uMyAxLjU2LjYgMi45NCAxLjk0IDMuNDJ2LjYzbC02LjU2IDIuOTJjLS44OC4zOC0xLjQ0IDEuMjUtMS40NCAyLjJ2LjAxQzMgMTQuOTIgNC4wOCAxNiA1LjQyIDE2SDd2NmgxMHYtNmgxLjU4YzEuMzQgMCAyLjQyLTEuMDggMi40Mi0yLjQydi0uMDFjMC0uOTUtLjU2LTEuODItMS40NC0yLjIxek0xNSAyMEg5di01aDZ2NXptMy41OC02SDE3di0xSDd2MUg1LjQyYy0uNDYgMC0uNTgtLjY1LS4xNy0uODFsNi43NS0zIDYuNzUgM2MuNDIuMTkuMjguODEtLjE3LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdEF0dHJpYnV0ZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjYzIDdINi4zN0MzLjk2IDcgMiA5LjI0IDIgMTJzMS45NiA1IDQuMzcgNWgxMS4yNmMyLjQxIDAgNC4zNy0yLjI0IDQuMzctNXMtMS45Ni01LTQuMzctNXptMCA4SDYuMzdDNS4wOSAxNSA0IDEzLjYzIDQgMTJzMS4wOS0zIDIuMzctM2gxMS4yNkMxOC45MSA5IDIwIDEwLjM3IDIwIDEycy0xLjA5IDMtMi4zNyAzek03LjI0IDEzLjA2bC0xLjg3LTEuODctLjcuNyAyLjU3IDIuNTcgNC4yMi00LjIyLS43LS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdExvY2F0aW9uQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTFoMi4xMmw2LjE2LTYuMTYtMi4xMi0yLjEyTDExIDguODhWMTF6bTkuNzEtOUwyMCAxLjI5YS45OTYuOTk2IDAgMCAwLTEuNDEgMGwtLjcyLjcyIDIuMTIgMi4xMi43Mi0uNzJhLjk5Ni45OTYgMCAwIDAgMC0xLjQxek0xNy45IDkuMDVjLjA2LjM2LjEuNzQuMSAxLjE1IDAgMS43MS0xLjA4IDQuNjQtNiA5LjE0LTQuOTItNC40OS02LTcuNDMtNi05LjE0QzYgNi4xNyA5LjA5IDQgMTIgNGMuMzIgMCAuNjUuMDMuOTcuMDhsMS42NS0xLjY1QTguNTYgOC41NiAwIDAgMCAxMiAyYy00LjIgMC04IDMuMjItOCA4LjIgMCAzLjMyIDIuNjcgNy4yNSA4IDExLjggNS4zMy00LjU1IDgtOC40OCA4LTExLjggMC0xLjAxLS4xNi0xLjk0LS40NS0yLjhMMTcuOSA5LjA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMTcgNC45MSAxNy4xIDMuODRsLTUuNTUgNS41NXYxLjA4aDEuMDhsNS41NC01LjU2ek0xNiAyLjc0bDEuMjktMS4yOWExLjQ5IDEuNDkgMCAwIDEgMi4xMiAwbDEuMTUgMS4xNWMuNTkuNTkuNTkgMS41NCAwIDIuMTJsLS42OC42OC0uMDIuMDItLjU4LjU4LTYgNkgxMFY4Ljc0bDYtNnptLTIuMjgtLjU1LS41NS41NS0xLjI3IDEuMjdjLTMuMy4wNS01LjkgMi42LTUuOSA2LjIgMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQgNC4wNS0zLjcgNi02Ljc5IDYtOS4xNHYtLjFsMS44LTEuOGMuMTMuNi4yIDEuMjQuMiAxLjkgMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjggMC00Ljk4IDMuOC04LjIgOC04LjIuNTggMCAxLjE2LjA2IDEuNzIuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFZGl0Um9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRoLTJ2Ny45bDItMnpNNCA0aDJ2MTZINHpNMTAgNGgydjRoLTJ6TTEwIDEwaDJ2NGgtMnpNMTAgMTZoMnY0aC0yek0yMi41NiAxMi41OWwtMS4xNS0xLjE1YTEuNDkgMS40OSAwIDAgMC0yLjEyIDBMMTQgMTYuNzNWMjBoMy4yN2w1LjI5LTUuMjljLjU5LS41OS41OS0xLjU0IDAtMi4xMnptLTUuOTggNS44NmgtMS4wM3YtMS4wM0wxOSAxMy45NyAyMC4wMyAxNWwtMy40NSAzLjQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWdnQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOWMtMi0yLTMuMDEtNy05LjAzLTdDNC45NSAyIDEuOTQgNiAyIDExLjUyIDIuMDYgMTcuMDQgNi45NiAxOSA5Ljk3IDE5YzIuMDEgMCAyLjAxIDMgNi4wMiAzQzE5IDIyIDIyIDE5IDIyIDE1LjAyIDIyIDEyIDIxLjAxIDExIDE5IDl6bS0zLjAxIDExYy0xLjQ5IDAtMS45Ni0uNS0yLjY4LTEuMjYtLjY1LS42OS0xLjY1LTEuNzQtMy4zNC0xLjc0LTEuNjQgMC01LjkyLS45OS01Ljk3LTUuNS0uMDMtMi41MS42OC00LjYyIDEuOTktNS45NUM3LjAxIDQuNTIgOC4zNSA0IDkuOTcgNGMzLjM0IDAgNC41MSAxLjg2IDUuODYgNC4wMi41NS44OCAxLjA3IDEuNzEgMS43NiAyLjM5IDEuOSAxLjg5IDIuNDEgMi40IDIuNDEgNC42MSAwIDIuODUtMi4xMiA0Ljk4LTQuMDEgNC45OHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIzLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVnZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNDOC41IDMgNSA5LjMzIDUgMTRjMCAzLjg3IDMuMTMgNyA3IDdzNy0zLjEzIDctN2MwLTQuNjctMy41LTExLTctMTF6bTAgMTZjLTIuNzYgMC01LTIuMjQtNS01IDAtNC4wOSAzLjA3LTkgNS05czUgNC45MSA1IDljMCAyLjc2LTIuMjQgNS01IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDE2Yy0uNTggMC0zLS4wOC0zLTMgMC0uNTUtLjQ1LTEtMS0xcy0xIC40NS0xIDFjMCAzIDEuOTkgNSA1IDUgLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY0Jpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA3aC0uODJsLTEuNy00LjY4QTIuMDA4IDIuMDA4IDAgMCAwIDE0LjYgMUgxMnYyaDIuNmwxLjQ2IDRoLTQuODFsLS4zNi0xSDEyVjRIN3YyaDEuNzVsMS44MiA1SDkuOWMtLjQ0LTIuMjMtMi4zMS0zLjg4LTQuNjUtMy45OUMyLjQ1IDYuODcgMCA5LjIgMCAxMmMwIDIuOCAyLjIgNSA1IDUgMi40NiAwIDQuNDUtMS42OSA0LjktNGg0LjJjLjQ0IDIuMjMgMi4zMSAzLjg4IDQuNjUgMy45OSAyLjguMTMgNS4yNS0yLjE5IDUuMjUtNUMyNCA5LjIgMjEuOCA3IDE5IDd6TTcuODIgMTNjLS40IDEuMTctMS40OSAyLTIuODIgMi0xLjY4IDAtMy0xLjMyLTMtM3MxLjMyLTMgMy0zYzEuMzMgMCAyLjQyLjgzIDIuODIgMkg1djJoMi44MnptNi4yOC0yaC0xLjRsLS43My0ySDE1Yy0uNDQuNTgtLjc2IDEuMjUtLjkgMnptNC45IDRjLTEuNjggMC0zLTEuMzItMy0zIDAtLjkzLjQxLTEuNzMgMS4wNS0yLjI4bC45NiAyLjY0IDEuODgtLjY4LS45Ny0yLjY3Yy4wMiAwIC4wNS0uMDEuMDgtLjAxIDEuNjggMCAzIDEuMzIgMyAzcy0xLjMyIDMtMyAzek0xMSAyMEg3bDYgM3YtMmg0bC02LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbGVjdHJpY0NhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDIuMDFDMTguNzIgMS40MiAxOC4xNiAxIDE3LjUgMWgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgOHY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTFWOGwtMi4wOC01Ljk5ek02Ljg1IDNoMTAuMjlsMS4wOCAzLjExSDUuNzdMNi44NSAzek0xOSAxM0g1VjhoMTR2NXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxMC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjBoNHYtMmw2IDNoLTR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZWN0cmljTW9wZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1YzAtMS4xLS45LTItMi0yaC0zdjJoM3YyLjY1TDEzLjUyIDEySDEwVjdINmMtMi4yMSAwLTQgMS43OS00IDR2M2gyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNC40OEwxOSA4LjM1VjV6TTQgMTJ2LTFjMC0xLjEuOS0yIDItMmgydjNINHptMyAzYy0uNTUgMC0xLS40NS0xLTFoMmMwIC41NS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgNGg1djJINXpNMTkgMTFjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNNyAyMGg0di0ybDYgM2gtNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNSaWNrc2hhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDExLjE4VjkuNzJjMC0uNDctLjE2LS45Mi0uNDYtMS4yOEwxNi42IDMuNzJjLS4zOC0uNDYtLjk0LS43Mi0xLjU0LS43MkgzYy0xLjEgMC0yIC45LTIgMnY4YzAgMS4xLjkgMiAyIDJoLjE4QzMuNiAxNi4xNiA0LjcgMTcgNiAxN3MyLjQtLjg0IDIuODItMmg4LjM3YTIuOTk2IDIuOTk2IDAgMCAwIDUuODItMWMtLjAxLTEuMy0uODUtMi40LTIuMDEtMi44MnpNNiAxNWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0xLTMuODNBMy4wMTQgMy4wMTQgMCAwIDAgMy4xNyAxM0gzdi0zaDR2MS4xN3pNNyA4SDNWNWg0djN6bTcgNUg5di0zaDNWOEg5VjVoNXY4em0yLTYuODhMMTguNCA5SDE2VjYuMTJ6TTE3LjE3IDEzSDE2di0yaDN2LjE3Yy0uODUuMy0xLjUzLjk4LTEuODMgMS44M3pNMjAgMTVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNNyAyMGg0di0ybDYgM2gtNHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNTY29vdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy44MiAxNkgxNXYtMWMwLTIuMjEgMS43OS00IDQtNGguNzRsLTEuOS04LjQ0QTIuMDA5IDIuMDA5IDAgMCAwIDE1Ljg5IDFIMTJ2MmgzLjg5bDEuNCA2LjI1aC0uMDFBNi4wMDggNi4wMDggMCAwIDAgMTMuMDkgMTRINy44MmEyLjk5NiAyLjk5NiAwIDAgMC0zLjQyLTEuOTRjLTEuMTguMjMtMi4xMyAxLjItMi4zNSAyLjM4QTMuMDAyIDMuMDAyIDAgMCAwIDUgMThjMS4zIDAgMi40LS44NCAyLjgyLTJ6TTUgMTZjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpNMTEgMjBIN2w2IDN2LTJoNGwtNi0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxlY3RyaWNhbFNlcnZpY2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRjMC0uNTUtLjQ1LTEtMS0xaC0ydjJoMmMuNTUgMCAxLS40NSAxLTF6TTIwIDE3aC0ydjJoMmMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMXpNMTIgMTRoLTJ2NGgyYzAgMS4xLjkgMiAyIDJoM3YtOGgtM2MtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTNjMC0xLjEuOS0yIDItMmgxLjVjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTAuNDMgNCA4LjUgNEg1Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxaDMuNWMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjMzIDkgOC41IDlIN2MtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNGgydi0ySDdjLTEuMSAwLTItLjktMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1lcmdlbmN5UmVjb3JkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTAuNDhWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0ydi00LjQ4bDQgMy45OHYtMTFsLTQgMy45OHpNMTYgMThINFY2aDEydjEyem0tNC02IDMgMS43My0xIDEuNzMtMy0xLjczVjE3SDl2LTMuMjdsLTMgMS43My0xLTEuNzNMOCAxMmwtMy0xLjczIDEtMS43MyAzIDEuNzNWN2gydjMuMjdsMy0xLjczIDEgMS43M0wxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtZXJnZW5jeVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGMxLjkzIDAgMy42OC43OCA0Ljk1IDIuMDVsLTEuNDEgMS40MWE1LjAyMiA1LjAyMiAwIDAgMC03LjA4IDBMNy4wNSA2LjA1QTYuOTc2IDYuOTc2IDAgMCAxIDEyIDR6bTcuNzgtLjc3LTEuNDEgMS40MUMxNi43NCAzLjAxIDE0LjQ5IDIgMTIuMDEgMlM3LjI3IDMuMDEgNS42NCA0LjYzTDQuMjIgMy4yMkM2LjIyIDEuMjMgOC45NyAwIDEyLjAxIDBzNS43OCAxLjIzIDcuNzcgMy4yM3pNMTIgMTFjMS45NCAwIDQgMS40NSA0IDQuMTUgMCAuOTQtLjU1IDIuOTMtNCA2LjE3LTMuNDUtMy4yNC00LTUuMjMtNC02LjE3IDAtMi43IDIuMDYtNC4xNSA0LTQuMTV6bTAtMmMtMy4xNSAwLTYgMi40MS02IDYuMTUgMCAyLjQ5IDIgNS40NCA2IDguODUgNC0zLjQxIDYtNi4zNiA2LTguODVDMTggMTEuNDEgMTUuMTUgOSAxMiA5em0xLjUgNmMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41IDEuNS0uNjcgMS41LTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtZXJnZW5jeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjI5IDEzLjkgMTggMTJsMy4yOS0xLjljLjQ4LS4yOC42NC0uODkuMzctMS4zN2wtMi0zLjQ2YTEuMDEgMS4wMSAwIDAgMC0xLjM3LS4zN0wxNSA2LjhWM2MwLS41NS0uNDUtMS0xLTFoLTRjLS41NSAwLTEgLjQ1LTEgMXYzLjhMNS43MSA0LjlhMS4wMSAxLjAxIDAgMCAwLTEuMzcuMzdsLTIgMy40NmMtLjI4LjQ4LS4xMSAxLjA5LjM3IDEuMzdMNiAxMmwtMy4yOSAxLjljLS40OC4yOC0uNjQuODktLjM3IDEuMzdsMiAzLjQ2Yy4yOC40OC44OS42NCAxLjM3LjM3TDkgMTcuMlYyMWMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMy44bDMuMjkgMS45Yy40OC4yOCAxLjA5LjExIDEuMzctLjM3bDItMy40NmMuMjgtLjQ4LjExLTEuMDktLjM3LTEuMzd6bS0yLjg2IDIuOTctNC42OC0yLjdjLS4zMy0uMi0uNzUuMDQtLjc1LjQzVjIwaC0ydi01LjRjMC0uMzgtLjQyLS42My0uNzUtLjQzbC00LjY4IDIuNy0xLTEuNzMgNC42OC0yLjdjLjMzLS4xOS4zMy0uNjcgMC0uODdsLTQuNjgtMi43IDEtMS43MyA0LjY4IDIuN2MuMzMuMTkuNzUtLjA1Ljc1LS40NFY0aDJ2NS40YzAgLjM4LjQyLjYzLjc1LjQzbDQuNjgtMi43IDEgMS43My00LjY4IDIuN2MtLjMzLjE5LS4zMy42NyAwIC44N2w0LjY4IDIuNy0xIDEuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdlN0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDcuMjMuMDEtLjAxLTMuNzItMy43MkwxNSA0LjU2bDIuMTEgMi4xMWMtLjk0LjM2LTEuNjEgMS4yNi0xLjYxIDIuMzNhMi41IDIuNSAwIDAgMCAyLjUgMi41Yy4zNiAwIC42OS0uMDggMS0uMjF2Ny4yMWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVYxNGMwLTEuMS0uOS0yLTItMmgtMVY1YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAydjE2aDEwdi03LjVoMS41djVhMi41IDIuNSAwIDAgMCA1IDBWOWMwLS42OS0uMjgtMS4zMi0uNzMtMS43N3pNMTIgMTF2OEg2VjVoNnY2em02LTFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLTgtNC00IDcuNWgyVjE4bDQtN2gtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAyMkgyVjEwbDctM3YybDUtMnYzaDNsMS04aDNsMSA4djEyek0xMiA5Ljk1bC01IDJWMTBsLTMgMS4zMlYyMGgxNnYtOGgtOFY5Ljk1ek0xMSAxOGgydi00aC0ydjR6bS00IDBoMnYtNEg3djR6bTEwLTRoLTJ2NGgydi00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFzdGZvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMjEuOThjMCAuNTYuNDUgMS4wMSAxLjAxIDEuMDFIMTVjLjU2IDAgMS4wMS0uNDUgMS4wMS0xLjAxVjIxSDF2Ljk4ek04LjUgOC45OUM0Ljc1IDguOTkgMSAxMSAxIDE1aDE1YzAtNC0zLjc1LTYuMDEtNy41LTYuMDF6TTMuNjIgMTNjMS4xMS0xLjU1IDMuNDctMi4wMSA0Ljg4LTIuMDFzMy43Ny40NiA0Ljg4IDIuMDFIMy42MnpNMSAxN2gxNXYySDF6TTE4IDVWMWgtMnY0aC01bC4yMyAyaDkuNTZsLTEuNCAxNEgxOHYyaDEuNzJjLjg0IDAgMS41My0uNjUgMS42My0xLjQ3TDIzIDVoLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGZXN0aXZhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDExVjljLTYtMi0xMS03LTExLTdTNyA3IDEgOXYyYzAgMS40OS45MyAyLjc1IDIuMjQgMy4yNkMzLjIgMTYuNzYgMi45MiAxOS42OSAyIDIyaDIwYy0uOTItMi4zMS0xLjItNS4yNC0xLjI0LTcuNzRBMy40OTYgMy40OTYgMCAwIDAgMjMgMTF6TTEyIDQuNzFjMS4zMyAxLjE0IDMuNDkgMi44NCA2LjExIDQuMjlINS44OUM4LjUxIDcuNTUgMTAuNjcgNS44NSAxMiA0Ljcxek0xMyAxMWgzYzAgLjgzLS42NyAxLjUtMS41IDEuNVMxMyAxMS44MyAxMyAxMXptLTMuNSAxLjVjLS44MyAwLTEuNS0uNjctMS41LTEuNWgzYzAgLjgzLS42NyAxLjUtMS41IDEuNXpNNiAxMWMwIC44My0uNjcgMS41LTEuNSAxLjVTMyAxMS44MyAzIDExaDN6bS0xLjM0IDljLjM5LTEuODYuNTQtMy44Mi41Ny01LjU4LjY4LS4xNSAxLjI5LS40OSAxLjc2LS45OC4yNS4yNS41NC40NS44NS42Mi0uMSAxLjg3LS4yNiA0LS41MiA1LjkzSDQuNjZ6bTQuNjkgMGMuMjQtMS44My4zOS0zLjc4LjQ4LTUuNTMuODQtLjA4IDEuNjEtLjQ1IDIuMTctMS4wMi41Ni41NyAxLjMyLjk0IDIuMTcgMS4wMi4xIDEuNzUuMjQgMy43LjQ4IDUuNTNoLTUuM3ptNy4zMiAwYy0uMjctMS45NC0uNDMtNC4wNy0uNTItNS45My4zMS0uMTcuNjEtLjM3Ljg1LS42Mi40Ny40OCAxLjA4LjgzIDEuNzYuOTguMDMgMS43Ni4xOCAzLjcyLjU3IDUuNThoLTIuNjZ6bTIuODMtNy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVoM2MwIC44My0uNjcgMS41LTEuNSAxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXJlSHlkcmFudEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEwLjVjLTEuOTMgMC0zLjUgMS41Ny0zLjUgMy41czEuNTcgMy41IDMuNSAzLjUgMy41LTEuNTcgMy41LTMuNS0xLjU3LTMuNS0zLjUtMy41em0wIDVjLS44MyAwLTEuNS0uNjctMS41LTEuNXMuNjctMS41IDEuNS0xLjUgMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxMWgtMVY4aDJWNmgtMi4zNWE1Ljk5IDUuOTkgMCAwIDAtMTEuMyAwSDR2MmgydjNINWMtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDF2M0g0djJoMTZ2LTJoLTJ2LTNoMWMxLjEgMCAyLS45IDItMnYtMmMwLTEuMS0uOS0yLTItMnptLTctN2MxLjQ3IDAgMi43NS44MSAzLjQ0IDJIOC41NmMuNjktMS4xOSAxLjk3LTIgMy40NC0yem03IDExaC0zdjVIOHYtNUg1di0yaDNWOGg4djVoM3YyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmlyZVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIuOSAxMC42OS0xLjQ0LTQuMzJBMi4wMSAyLjAxIDAgMCAwIDE5LjU2IDVIMTlWNGMwLS41NS0uNDUtMS0xLTFoLTFjLS41NSAwLTEgLjQ1LTEgMXYxaC0yYy0xLjEgMC0yIC45LTIgMnY0SDF2NWMwIDEuMS45IDIgMiAyaDFjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g0YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoM3YtNi42OGMwLS4yMS0uMDMtLjQyLS4xLS42M3pNMTQgN2g1LjU2bDEuMzMgNEgxNFY3ek03IDE5Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTUtM0g5LjIyYy0uNTUtLjYxLTEuMzMtMS0yLjIyLTFzLTEuNjcuMzktMi4yMiAxSDN2LTNoOXYzem01IDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi4yMi0zYy0uNTUtLjYxLTEuMzQtMS0yLjIyLTFzLTEuNjcuMzktMi4yMiAxSDE0di0zaDd2M2gtMS43OHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgOC41aC0xdi0yaDFWNUgxdjEuNWgxdjJIMVYxMGgxMFY4LjV6bS0yLjUgMEg2Ljc1di0ySDguNXYyem0tNS0yaDEuNzV2MkgzLjV2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlnaHRDbGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRoLTJjLTEuMSAwLTIgLjktMiAydjVjMCAxLjEuOSAyIDIgMmgyYzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6bTAgN2gtMlY2aDJ2NXptLTYuNSA1SDE4djJIOS40OWMtLjg4IDAtMS42Ni0uNTgtMS45Mi0xLjQzTDUgOFY0aDJ2NGwyLjUgOHpNOCAxOWgxMHYySDh2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE2di0ybC04LTVWMy41YzAtLjgzLS42Ny0xLjUtMS41LTEuNVMxMCAyLjY3IDEwIDMuNVY5bC04IDV2Mmw4LTIuNVYxOWwtMiAxLjVWMjJsMy41LTEgMy41IDF2LTEuNUwxMyAxOXYtNS41bDggMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9yZXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjQgMTgtMy44Ni02SDIyTDE1IDJsLTMgNC4yOUw5IDIgMiAxMmgxLjg2TDAgMThoN3Y0aDR2LTRoMnY0aDR2LTRoN3pNMTUgNS40OSAxOC4xNiAxMGgtMS42OGwzLjg2IDZoLTMuNjJsLTIuNTctNEgxNmwtMi43OC0zLjk3TDE1IDUuNDl6TTMuNjYgMTZsMy44Ni02SDUuODRMOSA1LjQ5IDEyLjE2IDEwaC0xLjY4bDMuODYgNkgzLjY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ya0xlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjQxIDE1LjU5IDggMTdsLTQtNCA0LTQgMS40MSAxLjQxTDcuODMgMTJjMS41MS0uMzMgMy43My4wOCA1LjE3IDEuMzZWNi44M2wtMS41OSAxLjU5TDEwIDdsNC00IDQgNC0xLjQxIDEuNDFMMTUgNi44M1YyMWgtMnYtNGMtLjczLTIuNTgtMy4wNy0zLjQ3LTUuMTctM2wxLjU4IDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3JrUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41OSAxNS41OSAxNiAxN2w0LTQtNC00LTEuNDEgMS40MUwxNi4xNyAxMmMtMS41MS0uMzMtMy43My4wOC01LjE3IDEuMzZWNi44M2wxLjU5IDEuNTlMMTQgN2wtNC00LTQgNCAxLjQxIDEuNDFMOSA2LjgzVjIxaDJ2LTRjLjczLTIuNTggMy4wNy0zLjQ3IDUuMTctM2wtMS41OCAxLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDN2MmgtMlYzaC0ydjJoLTJWM2gtMnY0bDIgMnYxSDlWOWwyLTJWM0g5djJIN1YzSDV2MkgzVjNIMXY0bDIgMnY2bC0yIDJ2NGg5di0zYzAtMS4xLjktMiAyLTJzMiAuOSAyIDJ2M2g5di00bC0yLTJWOWwyLTJWM2gtMnptMCAxNmgtNXYtMWMwLTIuMjEtMS43OS00LTQtNHMtNCAxLjc5LTQgNHYxSDN2LTEuMTdsMi0yVjguMTdMMy44MyA3aDQuMzRMNyA4LjE3VjEyaDEwVjguMTdMMTUuODMgN2g0LjM0TDE5IDguMTd2Ny42NmwyIDJWMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTUtNGgyYzAgMi43LS45MyA0LjQxLTIuMyA1LjUtLjUuNC0xLjEuNy0xLjcuOVYyMmgtMnYtNmgtMnY2SDlWMTAuMWMtLjMuMS0uNS4yLS42LjMtLjUzLjQxLTEuNCAxLjAzLTEuNCAzLjZINWMwLTIuMDYuMzUtMy43OCAyLjExLTUuMjlDOC4yMSA3LjgxIDEwIDcgMTIgN3MyLjY4LS40NiAzLjQ4LTEuMDZDMTUuOTYgNS41NSAxNyA0Ljc2IDE3IDJ6TTQgMTZoM3Y2SDR2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIYW5keW1hbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjY3IDE4LjE3LTUuMy01LjNoLS45OWwtMi41NCAyLjU0di45OWw1LjMgNS4zYy4zOS4zOSAxLjAyLjM5IDEuNDEgMGwyLjEyLTIuMTJhLjk5Ni45OTYgMCAwIDAgMC0xLjQxem0tMi44MyAxLjQyLTQuMjQtNC4yNC43MS0uNzEgNC4yNCA0LjI0LS43MS43MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMzQgMTAuMTkgMS40MS0xLjQxIDIuMTIgMi4xMmEzIDMgMCAwIDAgMC00LjI0bC0zLjU0LTMuNTQtMS40MSAxLjQxVjEuNzFsLS43LS43MS0zLjU0IDMuNTQuNzEuNzFoMi44M2wtMS40MSAxLjQxIDEuMDYgMS4wNi0yLjg5IDIuODktNC4xMy00LjEzVjUuMDZMNC44MyAyLjA0IDIgNC44NyA1LjAzIDcuOWgxLjQxbDQuMTMgNC4xMy0uODUuODVINy42bC01LjMgNS4zYS45OTYuOTk2IDAgMCAwIDAgMS40MWwyLjEyIDIuMTJjLjM5LjM5IDEuMDIuMzkgMS40MSAwbDUuMy01LjN2LTIuMTJsNS4xNS01LjE1IDEuMDYgMS4wNXptLTcuOTggNS4xNS00LjI0IDQuMjQtLjcxLS43MSA0LjI0LTQuMjQuNzEuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIYXJkd2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4IDMtMyAzVjNIOUM2LjI0IDMgNCA1LjI0IDQgOGg1djEyYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xVjhsMyAzaDJWM2gtMnptLTUgMTZoLTJ2LTZoMnY2em0tMi04VjZINi43N0M3LjMyIDUuMzkgOC4xMSA1IDkgNWg0djZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb21lUmVwYWlyU2VydmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDhoLTNWNmMwLTEuMS0uOS0yLTItMkg5Yy0xLjEgMC0yIC45LTIgMnYySDRjLTEuMSAwLTIgLjktMiAydjEwaDIwVjEwYzAtMS4xLS45LTItMi0yek05IDZoNnYySDlWNnptMTEgMTJINHYtM2gydjFoMnYtMWg4djFoMnYtMWgydjN6bS0yLTV2LTFoLTJ2MUg4di0xSDZ2MUg0di0zaDE2djNoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb3RlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNGMxLjY2IDAgMy0xLjM0IDMtM1M4LjY2IDggNyA4cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMi0zaC04djhIM1Y1SDF2MTVoMnYtM2gxOHYzaDJ2LTljMC0yLjIxLTEuNzktNC00LTR6bTIgOGgtOFY5aDZjMS4xIDAgMiAuOSAyIDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUh2YWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE4YzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02LTYgMi42OS02IDYgMi42OSA2IDYgNnptMy40NC04Yy4yNi40NS40NC45Ni41MSAxLjVoLTcuOWMuMDctLjU0LjI0LTEuMDUuNTEtMS41aDYuODh6bS41MSAyLjVjLS4wNy41NC0uMjQgMS4wNS0uNTEgMS41SDguNTZjLS4yNi0uNDUtLjQ0LS45Ni0uNTEtMS41aDcuOXpNOS4zOCAxNWg1LjI0Yy0uNy42MS0xLjYxIDEtMi42MiAxcy0xLjkxLS4zOS0yLjYyLTF6bTUuMjQtNkg5LjM4Yy43LS42MSAxLjYxLTEgMi42Mi0xczEuOTEuMzkgMi42MiAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSWNlY3JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOCA2LjI0QzE3Ljc5IDMuMjQgMTUuMTQgMSAxMiAxUzYuMjEgMy4yNCA1LjYyIDYuMjRBNC4wMTQgNC4wMTQgMCAwIDAgMyAxMGMwIDIuMjEgMS43OSA0IDQgNCAuMTIgMCAuMjMtLjAyLjM0LS4wMkwxMi4wNyAyM2w0LjYxLTkuMDNjLjExLjAxLjIxLjAzLjMyLjAzIDIuMjEgMCA0LTEuNzkgNC00IDAtMS43MS0xLjA4LTMuMTktMi42Mi0zLjc2em0tNi4zMyAxMi4zOS0yLjczLTUuMjFhNi40NjggNi40NjggMCAwIDAgNS40LS4wMmwtMi42NyA1LjIzek0xNyAxMmMtLjUyIDAtMS4wMS0uMi0xLjM5LS41NmwtLjU2LS41NC0uNjYuNDJhNC41MiA0LjUyIDAgMCAxLTQuNzgtLjAxbC0uNjYtLjQxLS41Ni41NGMtLjM4LjM1LS44Ny41Ni0xLjM5LjU2YTEuOTk5IDEuOTk5IDAgMCAxLS4zMi0zLjk3bC43Ny0uMTMuMDYtLjc4QzcuNzEgNC44IDkuNjYgMyAxMiAzczQuMjkgMS44IDQuNDggNC4xMmwuMDYuNzguNzcuMTJjLjk3LjE2IDEuNjkuOTkgMS42OSAxLjk4IDAgMS4xLS45IDItMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2ViYWJEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy43NSA3aC43NWEyLjUgMi41IDAgMCAwIDAtNWgtLjc1VjFoLTEuNXYxaC0uNzVhMi41IDIuNSAwIDAgMCAwIDVoLjc1djFIMTN2NWgzLjI1djFoLS43NWEyLjUgMi41IDAgMCAwIDAgNWguNzV2NGgxLjV2LTRoLjc1YTIuNSAyLjUgMCAwIDAgMC01aC0uNzV2LTFIMjFWOGgtMy4yNVY3ek0xNS41IDVjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgzYy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNWgtM3ptMyAxMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTNjLS4yOCAwLS41LS4yMi0uNS0uNXMuMjItLjUuNS0uNWgzem0uNS02djFoLTR2LTFoNHpNNy43NSA3aC43NWEyLjUgMi41IDAgMCAwIDAtNWgtLjc1VjFoLTEuNXYxSDUuNWEyLjUgMi41IDAgMCAwIDAgNWguNzV2MUgzdjVoMy4yNXYxSDUuNWEyLjUgMi41IDAgMCAwIDAgNWguNzV2NGgxLjV2LTRoLjc1YTIuNSAyLjUgMCAwIDAgMC01aC0uNzV2LTFIMTFWOEg3Ljc1Vjd6TTUuNSA1Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoM2MuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTN6bTMgMTFjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41aC0zYy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjVoM3ptLjUtNnYxSDV2LTFoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxheWVyc0NsZWFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0LjUzIDE3Ljc0IDlsLTEuODkgMS40NyAxLjQzIDEuNDJMMjEgOWwtOS03LTIuNTkgMi4wMiAxLjQyIDEuNDJ6bTkgOS41NC0xLjYzLTEuMjctLjY3LjUyIDEuNDMgMS40M3pNMy40MS44NiAyIDIuMjdsNC4yMiA0LjIyTDMgOWw5IDcgMi4xLTEuNjMgMS40MiAxLjQyLTMuNTMgMi43NS03LjM3LTUuNzNMMyAxNC4wN2w5IDcgNC45NS0zLjg1TDIwLjczIDIxbDEuNDEtMS40MUwzLjQxLjg2ek0xMiAxMy40NyA2LjI2IDlsMS4zOS0xLjA4IDUuMDIgNS4wMi0uNjcuNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMYXllcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTExLjk5IDE4LjU0LTcuMzctNS43M0wzIDE0LjA3bDkgNyA5LTctMS42My0xLjI3ek0xMiAxNmw3LjM2LTUuNzNMMjEgOWwtOS03LTkgNyAxLjYzIDEuMjdMMTIgMTZ6bTAtMTEuNDdMMTcuNzQgOSAxMiAxMy40NyA2LjI2IDkgMTIgNC41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpcXVvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMTRjMCAxLjMuODQgMi40IDIgMi44MlYyMEgzdjJoNnYtMkg3di0zLjE4QzguMTYgMTYuNCA5IDE1LjMgOSAxNFY2SDN2OHptMi02aDJ2M0g1Vjh6bTAgNWgydjFjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTF2LTF6TTIwLjY0IDguNTRsLS45Ni0uMzJhMSAxIDAgMCAxLS42OC0uOTVWM2MwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY0LjI4YTEgMSAwIDAgMS0uNjguOTVsLS45Ni4zMmMtLjgxLjI4LTEuMzYgMS4wNC0xLjM2IDEuOVYyMGMwIDEuMS45IDIgMiAyaDdjMS4xIDAgMi0uOSAyLTJ2LTkuNTZjMC0uODYtLjU1LTEuNjItMS4zNi0xLjl6TTE2IDRoMXYxaC0xVjR6bTQgMTZoLTd2LTJoN3Yyem0wLTRoLTd2LTJoN3Yyem0wLTRoLTd2LTEuNTZsLjk1LS4zMkMxNS4xOCA5LjcyIDE2IDguNTcgMTYgNy4yOFY3aDF2LjI4YTMgMyAwIDAgMCAyLjA1IDIuODVsLjk1LjMxVjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxBY3Rpdml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBWNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJ6bS0yLTEuNDZjLTEuMTkuNjktMiAxLjk5LTIgMy40NnMuODEgMi43NyAyIDMuNDZWMThINHYtMi41NGMxLjE5LS42OSAyLTEuOTkgMi0zLjQ2IDAtMS40OC0uOC0yLjc3LTEuOTktMy40Nkw0IDZoMTZ2Mi41NHpNOS4wNyAxNiAxMiAxNC4xMiAxNC45MyAxNmwtLjg5LTMuMzYgMi42OS0yLjItMy40Ny0uMjFMMTIgN2wtMS4yNyAzLjIyLTMuNDcuMjEgMi42OSAyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEFpcnBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDE2di0ybC04LjUtNVYzLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNVY5TDIgMTR2Mmw4LjUtMi41VjE5TDggMjAuNVYyMmw0LTEgNCAxdi0xLjVMMTMuNSAxOXYtNS41TDIyIDE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxBdG0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE3aDJ2LTFoMWMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xaC0zdi0xaDRWOGgtMlY3aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDN2MUg5djJoMnYxem05LTEzSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuNzcgOSAxMiAxMi4xMSA5LjIzIDloNS41NE0yMSAzSDN2Mmw4IDl2NUg2djJoMTJ2LTJoLTV2LTVsOC05VjN6TTcuNDMgNyA1LjY2IDVoMTIuNjlsLTEuNzggMkg3LjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxDYWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA1djhjMCAxLjEtLjkgMi0yIDJIOGMtMS4xIDAtMi0uOS0yLTJWNWgxMG00LTJINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJjMS4xMSAwIDItLjg5IDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bS0yIDVWNWgydjNoLTJ6bTIgMTFIMnYyaDE4di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxDYXJXYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyA1Yy44MyAwIDEuNS0uNjcgMS41LTEuNSAwLTEtMS41LTIuNy0xLjUtMi43cy0xLjUgMS43LTEuNSAyLjdjMCAuODMuNjcgMS41IDEuNSAxLjV6bS01IDBjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtMS0xLjUtMi43LTEuNS0yLjdzLTEuNSAxLjctMS41IDIuN2MwIC44My42NyAxLjUgMS41IDEuNXpNNyA1Yy44MyAwIDEuNS0uNjcgMS41LTEuNUM4LjUgMi41IDcgLjggNyAuOFM1LjUgMi41IDUuNSAzLjVDNS41IDQuMzMgNi4xNyA1IDcgNXptMTEuOTIgMy4wMUMxOC43MiA3LjQyIDE4LjE2IDcgMTcuNSA3aC0xMWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMyAxNHY4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLTIuMDgtNS45OXpNNi44NSA5aDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMTlINXYtNC42NmwuMTItLjM0aDEzLjc3bC4xMS4zNFYxOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3LjVcIixcImN5XCI6XCIxNi41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbENvbnZlbmllbmNlU3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDdWNEg1djNIMnYxM2g4di00aDR2NGg4VjdoLTN6bTEgMTFoLTR2LTRIOHY0SDRWOWgzVjZoMTB2M2gzdjl6TTggOGgydjFIOHYzaDN2LTFIOXYtMWgyVjdIOHptNyAxaC0xVjdoLTF2M2gydjJoMVY3aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguMSAxMy4zNCAyLjgzLTIuODNMMy45MSAzLjVhNC4wMDggNC4wMDggMCAwIDAgMCA1LjY2bDQuMTkgNC4xOHptNi43OC0xLjgxYzEuNTMuNzEgMy42OC4yMSA1LjI3LTEuMzggMS45MS0xLjkxIDIuMjgtNC42NS44MS02LjEyLTEuNDYtMS40Ni00LjItMS4xLTYuMTIuODEtMS41OSAxLjU5LTIuMDkgMy43NC0xLjM4IDUuMjdMMy43IDE5Ljg3bDEuNDEgMS40MUwxMiAxNC40MWw2Ljg4IDYuODggMS40MS0xLjQxTDEzLjQxIDEzbDEuNDctMS40N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsRHJpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTMgMiAyLjAxIDE4LjIzQzUuMTMgMjEuMjMgNS45NyAyMiA3IDIyaDEwYzEuMDMgMCAxLjg3LS43NyAxLjk5LTEuNzdMMjEgMkgzem0xNCAxOC0xMCAuMDFMNS44OSAxMEgxOC4xTDE3IDIwem0xLjMzLTEySDUuNjdsLS40NC00aDEzLjUzbC0uNDMgNHpNMTIgMTljMS42NiAwIDMtMS4zNCAzLTMgMC0yLTMtNS40LTMtNS40UzkgMTQgOSAxNmMwIDEuNjYgMS4zNCAzIDMgM3ptMC01LjA5Yy41OS45MSAxIDEuNzMgMSAyLjA5IDAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xYzAtLjM3LjQxLTEuMTkgMS0yLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxGaXJlRGVwYXJ0bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDYtLjQ0LjU1Yy0uNDIuNTItLjk4Ljc1LTEuNTQuNzVDMTMgNy4zIDEyIDYuNTIgMTIgNS4zVjJTNCA2IDQgMTNjMCA0LjQyIDMuNTggOCA4IDhzOC0zLjU4IDgtOGMwLTIuOTYtMS42MS01LjYyLTQtN3ptLTQgMTNjLTEuMSAwLTItLjg3LTItMS45NCAwLS41MS4yLS45OS41OC0xLjM2TDEyIDE0LjNsMS40MyAxLjRjLjM3LjM3LjU3Ljg1LjU3IDEuMzYgMCAxLjA3LS45IDEuOTQtMiAxLjk0em0zLjk2LTEuNWMuMDQtLjM2LjIyLTEuODktMS4xMy0zLjIyTDEyIDExLjVsLTIuODMgMi43OEM3LjgxIDE1LjYyIDggMTcuMTYgOC4wNCAxNy41QTUuOTgyIDUuOTgyIDAgMCAxIDYgMTNjMC0zLjE2IDIuMTMtNS42NSA0LjAzLTcuMjVhNC4wMjQgNC4wMjQgMCAwIDAgMy45OSAzLjU1Yy43OCAwIDEuNTQtLjIzIDIuMTgtLjY2QTYuMTc1IDYuMTc1IDAgMCAxIDE4IDEzYzAgMS43OS0uNzkgMy40LTIuMDQgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxGbG9yaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjY2IDEzLjA3Yy4xNSAwIC4yOS0uMDEuNDMtLjAzQzkuNTYgMTQuMTkgMTAuNjkgMTUgMTIgMTVzMi40NC0uODEgMi45MS0xLjk2YTMuMTQ1IDMuMTQ1IDAgMCAwIDMuNTctMy4xMWMwLS43MS0uMjUtMS4zOS0uNjctMS45My40My0uNTQuNjctMS4yMi42Ny0xLjkzYTMuMTQ1IDMuMTQ1IDAgMCAwLTMuNTctMy4xMUMxNC40NCAxLjgxIDEzLjMxIDEgMTIgMXMtMi40NC44MS0yLjkxIDEuOTZhMy4xNDUgMy4xNDUgMCAwIDAtMy41NyAzLjExYzAgLjcxLjI1IDEuMzkuNjcgMS45My0uNDMuNTQtLjY4IDEuMjItLjY4IDEuOTMgMCAxLjczIDEuNDEgMy4xNCAzLjE1IDMuMTR6TTEyIDEzYy0uNjIgMC0xLjEyLS40OS0xLjE0LTEuMWwuMTItMS4wOWMuMzIuMTIuNjYuMTkgMS4wMi4xOXMuNzEtLjA3IDEuMDMtLjE5bC4xMSAxLjA5Yy0uMDIuNjEtLjUyIDEuMS0xLjE0IDEuMXptMy4zNC0xLjkzYy0uMjQgMC0uNDYtLjA3LS42NC0uMmwtLjgxLS41N2MuNTUtLjQ1Ljk0LTEuMDkgMS4wNi0xLjgzbC44OC40MmMuNC4xOS42Ni41OS42NiAxLjAzIDAgLjY0LS41MiAxLjE1LTEuMTUgMS4xNXptLS42NS01Ljk0Yy4yLS4xMy40Mi0uMi42NS0uMi42MyAwIDEuMTQuNTEgMS4xNCAxLjE0IDAgLjQ0LS4yNS44My0uNjYgMS4wM2wtLjg4LjQyYy0uMTItLjc0LS41MS0xLjM4LTEuMDctMS44M2wuODItLjU2ek0xMiAzYy42MiAwIDEuMTIuNDkgMS4xNCAxLjFsLS4xMSAxLjA5QzEyLjcxIDUuMDcgMTIuMzYgNSAxMiA1cy0uNy4wNy0xLjAyLjE5bC0uMTItMS4wOWMuMDItLjYxLjUyLTEuMSAxLjE0LTEuMXpNOC42NiA0LjkzYy4yNCAwIC40Ni4wNy42NC4ybC44MS41NmMtLjU1LjQ1LS45NCAxLjA5LTEuMDYgMS44M2wtLjg4LS40MmMtLjQtLjItLjY2LS41OS0uNjYtMS4wMyAwLS42My41Mi0xLjE0IDEuMTUtMS4xNHpNOC4xNyA4LjlsLjg4LS40MmMuMTIuNzQuNTEgMS4zOCAxLjA3IDEuODNsLS44MS41NWMtLjIuMTMtLjQyLjItLjY1LjItLjYzIDAtMS4xNC0uNTEtMS4xNC0xLjE0LS4wMS0uNDMuMjUtLjgyLjY1LTEuMDJ6TTEyIDIyYTkgOSAwIDAgMCA5LTkgOSA5IDAgMCAwLTkgOXptMi40NC0yLjQ0Yy43MS0xLjkgMi4yMi0zLjQyIDQuMTItNC4xMmE3LjA0IDcuMDQgMCAwIDEtNC4xMiA0LjEyek0zIDEzYTkgOSAwIDAgMCA5IDkgOSA5IDAgMCAwLTktOXptMi40NCAyLjQ0YzEuOS43MSAzLjQyIDIuMjIgNC4xMiA0LjEyYTcuMDQgNy4wNCAwIDAgMS00LjEyLTQuMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEdhc1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5Ljc3IDcuMjMuMDEtLjAxLTMuNzItMy43MkwxNSA0LjU2bDIuMTEgMi4xMWMtLjk0LjM2LTEuNjEgMS4yNi0xLjYxIDIuMzNhMi41IDIuNSAwIDAgMCAyLjUgMi41Yy4zNiAwIC42OS0uMDggMS0uMjF2Ny4yMWMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMVYxNGMwLTEuMS0uOS0yLTItMmgtMVY1YzAtMS4xLS45LTItMi0ySDZjLTEuMSAwLTIgLjktMiAydjE2aDEwdi03LjVoMS41djVhMi41IDIuNSAwIDAgMCA1IDBWOWMwLS42OS0uMjgtMS4zMi0uNzMtMS43N3pNMTIgMTMuNVYxOUg2di03aDZ2MS41em0wLTMuNUg2VjVoNnY1em02IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsR3JvY2VyeVN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE4Yy0xLjEgMC0xLjk5LjktMS45OSAyUzUuOSAyMiA3IDIyczItLjkgMi0yLS45LTItMi0yem0xMCAwYy0xLjEgMC0xLjk5LjktMS45OSAycy44OSAyIDEuOTkgMiAyLS45IDItMi0uOS0yLTItMnptLTEuNDUtNWMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5QS45OTYuOTk2IDAgMCAwIDIwLjAxIDRINS4yMWwtLjk0LTJIMXYyaDJsMy42IDcuNTktMS4zNSAyLjQ0QzQuNTIgMTUuMzcgNS40OCAxNyA3IDE3aDEydi0ySDdsMS4xLTJoNy40NXpNNi4xNiA2aDEyLjE1bC0yLjc2IDVIOC41M0w2LjE2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbEhvc3BpdGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMyAxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0em0tOC41LTJoM3YtMy41SDE3di0zaC0zLjVWN2gtM3YzLjVIN3YzaDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsSG90ZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTRjMS42NiAwIDMtMS4zNCAzLTNTOC42NiA4IDcgOHMtMyAxLjM0LTMgMyAxLjM0IDMgMyAzem0wLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptMTItM2gtOHY4SDNWNUgxdjE1aDJ2LTNoMTh2M2gydi05YzAtMi4yMS0xLjc5LTQtNC00em0yIDhoLThWOWg2YzEuMSAwIDIgLjkgMiAydjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbExhdW5kcnlTZXJ2aWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyLjAxIDYgMmMtMS4xMSAwLTIgLjg5LTIgMnYxNmMwIDEuMTEuODkgMiAyIDJoMTJjMS4xMSAwIDItLjg5IDItMlY0YzAtMS4xMS0uODktMS45OS0yLTEuOTl6TTE4IDIwSDZMNS45OSA0SDE4djE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTFcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE5YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01LTUgMi4yNC01IDUgMi4yNCA1IDUgNXptMi4zNi03LjM2YzEuMyAxLjMgMS4zIDMuNDIgMCA0LjcyLTEuMyAxLjMtMy40MiAxLjMtNC43MiAwbDQuNzItNC43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsTGlicmFyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOWMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTAgOC41NUM5LjY0IDkuMzUgNi40OCA4IDMgOHYxMWMzLjQ4IDAgNi42NCAxLjM1IDkgMy41NSAyLjM2LTIuMTkgNS41Mi0zLjU1IDktMy41NVY4Yy0zLjQ4IDAtNi42NCAxLjM1LTkgMy41NXptNyA1LjU4Yy0yLjUzLjM0LTQuOTMgMS4zLTcgMi44MmExNS4yIDE1LjIgMCAwIDAtNy0yLjgzdi02Ljk1YzIuMS4zOCA0LjA1IDEuMzUgNS42NCAyLjgzTDEyIDE0LjI4bDEuMzYtMS4yN0ExMS4xOCAxMS4xOCAwIDAgMSAxOSAxMC4xOHY2Ljk1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxNYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA2aC0yYzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZINWMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tNy0zYzEuNjYgMCAzIDEuMzQgMyAzSDljMC0xLjY2IDEuMzQtMyAzLTN6bTcgMTdINVY4aDE0djEyem0tNy04Yy0xLjY2IDAtMy0xLjM0LTMtM0g3YzAgMi43NiAyLjI0IDUgNSA1czUtMi4yNCA1LTVoLTJjMCAxLjY2LTEuMzQgMy0zIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbE1vdmllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgNXYxNGgtNFY1aDRtNi0yaC0ydjJoLTJWM0g4djJINlYzSDR2MThoMnYtMmgydjJoOHYtMmgydjJoMlYzem0tNCA2VjdoMnYyaC0yek02IDlWN2gydjJINnptMTAgNHYtMmgydjJoLTJ6TTYgMTN2LTJoMnYySDZ6bTEwIDR2LTJoMnYyaC0yek02IDE3di0yaDJ2Mkg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxPZmZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNDEgMTEuNTgtOS05QzEyLjA1IDIuMjIgMTEuNTUgMiAxMSAySDRjLTEuMSAwLTIgLjktMiAydjdjMCAuNTUuMjIgMS4wNS41OSAxLjQybDkgOWMuMzYuMzYuODYuNTggMS40MS41OHMxLjA1LS4yMiAxLjQxLS41OWw3LTdjLjM3LS4zNi41OS0uODYuNTktMS40MXMtLjIzLTEuMDYtLjU5LTEuNDJ6TTEzIDIwLjAxIDQgMTFWNGg3di0uMDFsOSA5LTcgNy4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQYXJraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzSDZ2MThoNHYtNmgzYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0uMiA4SDEwVjdoMy4yYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUGhhcm1hY3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVoLTIuNjRsMS4xNC0zLjE0TDE3LjE1IDFsLTEuNDYgNEgzdjJsMiA2LTIgNnYyaDE4di0ybC0yLTYgMi02VjV6bS0zLjkgOC42M0wxOC44OSAxOUg1LjExbDEuNzktNS4zNy4yMS0uNjMtLjIxLS42M0w1LjExIDdoMTMuNzhsLTEuNzkgNS4zNy0uMjEuNjMuMjEuNjN6TTEzIDloLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTQgNWMuMDYuODkuMjEgMS43Ni40NSAyLjU5bC0xLjIgMS4yYy0uNDEtMS4yLS42Ny0yLjQ3LS43Ni0zLjc5aDEuNTFtOS44NiAxMi4wMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS40OWMtMS4zMi0uMDktMi41OS0uMzUtMy44LS43NWwxLjItMS4xOU03LjUgM0g0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMS0xLjI0IDAtMi40NS0uMi0zLjU3LS41N2EuODQuODQgMCAwIDAtLjMxLS4wNWMtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjE0OSAxNS4xNDkgMCAwIDEtNi41OS02LjU5bDIuMi0yLjJjLjI4LS4yOC4zNi0uNjcuMjUtMS4wMkExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFBpenphIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzguNDMgMiA1LjIzIDMuNTQgMy4wMSA2TDEyIDIybDguOTktMTZDMTguNzggMy41NSAxNS41NyAyIDEyIDJ6bTAgMTUuOTJMNS41MSA2LjM2QzcuMzIgNC44NSA5LjYyIDQgMTIgNHM0LjY4Ljg1IDYuNDkgMi4zNkwxMiAxNy45MnpNOSA1LjVjLS44MyAwLTEuNS42Ny0xLjUgMS41UzguMTcgOC41IDkgOC41czEuNS0uNjcgMS41LTEuNVM5LjgyIDUuNSA5IDUuNXptMS41IDcuNWMwIC44My42NyAxLjUgMS41IDEuNS44MiAwIDEuNS0uNjcgMS41LTEuNXMtLjY4LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMFY2YzAtMS4xLS45LTItMi0ySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJ2NGMxLjEgMCAxLjk5LjkgMS45OSAycy0uODkgMi0yIDJ2NGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi00Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMnptLTItMS40NmMtMS4xOS42OS0yIDEuOTktMiAzLjQ2cy44MSAyLjc3IDIgMy40NlYxOEg0di0yLjU0YzEuMTktLjY5IDItMS45OSAyLTMuNDYgMC0xLjQ4LS44LTIuNzctMS45OS0zLjQ2TDQgNmgxNnYyLjU0ek05LjA3IDE2IDEyIDE0LjEyIDE0LjkzIDE2bC0uODktMy4zNiAyLjY5LTIuMi0zLjQ3LS4yMUwxMiA3bC0xLjI3IDMuMjItMy40Ny4yMSAyLjY5IDIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUG9saWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuNSAxMi41OS45IDMuODgtMy40LTIuMDUtMy40IDIuMDUuOS0zLjg3LTMtMi41OSAzLjk2LS4zNEwxMiA2LjAybDEuNTQgMy42NCAzLjk2LjM0LTMgMi41OXpNMTIgMy4xOWw3IDMuMTFWMTFjMCA0LjUyLTIuOTggOC42OS03IDkuOTMtNC4wMi0xLjI0LTctNS40MS03LTkuOTNWNi4zbDctMy4xMU0xMiAxIDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUG9zdE9mZmljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNmMwLTEuMS0uOS0yLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZ6bS0yIDAtOCA1LTgtNWgxNnptMCAxMkg0VjhsOCA1IDgtNXYxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxvY2FsUHJpbnRzaG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4aC0xVjNINnY1SDVjLTEuNjYgMC0zIDEuMzQtMyAzdjZoNHY0aDEydi00aDR2LTZjMC0xLjY2LTEuMzQtMy0zLTN6TTggNWg4djNIOFY1em04IDE0SDh2LTRoOHY0em0yLTR2LTJINnYySDR2LTRjMC0uNTUuNDUtMSAxLTFoMTRjLjU1IDAgMSAuNDUgMSAxdjRoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMThcIixcImN5XCI6XCIxMS41XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFNlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGgtMy4xN0wxNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoNC4wNWwuNTktLjY1TDkuODggNGg0LjI0bDEuMjQgMS4zNS41OS42NUgyMHYxMnpNMTIgN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6bTAgOC4yYy0xLjc3IDAtMy4yLTEuNDMtMy4yLTMuMiAwLTEuNzcgMS40My0zLjIgMy4yLTMuMnMzLjIgMS40MyAzLjIgMy4yYzAgMS43Ny0xLjQzIDMuMi0zLjIgMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTG9jYWxTaGlwcGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOGgtM1Y0SDNjLTEuMSAwLTIgLjktMiAydjExaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g2YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoMnYtNWwtMy00em0tLjUgMS41IDEuOTYgMi41SDE3VjkuNWgyLjV6TTYgMThjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMi4yMi0zYy0uNTUtLjYxLTEuMzMtMS0yLjIyLTFzLTEuNjcuMzktMi4yMiAxSDNWNmgxMnY5SDguMjJ6TTE4IDE4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhbFRheGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDYuMDFDMTguNzIgNS40MiAxOC4xNiA1IDE3LjUgNUgxNVYzSDl2Mkg2LjVjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTJ2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgN2gxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTE5IDE3SDV2LTQuNjZsLjEyLS4zNGgxMy43N2wuMTEuMzRWMTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTQuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTHVuY2hEaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE5YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJ2LTNIMnYzem0yLTFoMTZ2MUg0di0xek0xOC42NiAxMS41Yy0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMS0xLjE5IDAtMS40Mi0xLTMuMzMtMS0xLjk1IDAtMi4wOSAxLTMuMzMgMXYyYzEuOSAwIDIuMTctMSAzLjM1LTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNC45OCAzLjMyIDFsLS4wMS0xLjk4Yy0xLjYxLS4zMy0xLjYyLTEuMDItMy4zMy0xLjAyek0yMiA5Yy4wMi00LTQuMjgtNi0xMC02QzYuMjkgMyAyIDUgMiA5djFoMjBWOXpNNC4xOCA4QzUuMDEgNS44MSA4LjYxIDUgMTIgNWMzLjMxIDAgNS45My43MyA3LjE5IDEuOTkuMy4zMS41Mi42NC42NSAxLjAxSDQuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwLjUgMy0uMTYuMDNMMTUgNS4xIDkgMyAzLjM2IDQuOWMtLjIxLjA3LS4zNi4yNS0uMzYuNDhWMjAuNWMwIC4yOC4yMi41LjUuNWwuMTYtLjAzTDkgMTguOWw2IDIuMSA1LjY0LTEuOWMuMjEtLjA3LjM2LS4yNS4zNi0uNDhWMy41YzAtLjI4LS4yMi0uNS0uNS0uNXpNMTAgNS40N2w0IDEuNHYxMS42NmwtNC0xLjRWNS40N3ptLTUgLjk5IDMtMS4wMXYxMS43bC0zIDEuMTZWNi40NnptMTQgMTEuMDgtMyAxLjAxVjYuODZsMy0xLjE2djExLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFwc1VnYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDRjNC40MSAwIDggMy41OSA4IDhzLTMuNTkgOC04IDhjLTEuMTggMC0yLjM0LS4yNi0zLjQzLS43OC0uMjctLjEzLS41Ni0uMTktLjg2LS4xOS0uMTkgMC0uMzguMDMtLjU2LjA4bC0zLjIuOTQuOTQtMy4yYy4xNC0uNDcuMS0uOTgtLjExLTEuNDJBNy45MjUgNy45MjUgMCAwIDEgNCAxMmMwLTQuNDEgMy41OS04IDgtOG0wLTJDNi40OCAyIDIgNi40OCAyIDEyYzAgMS41NC4zNiAyLjk4Ljk3IDQuMjlMMSAyM2w2LjcxLTEuOTdjMS4zMS42MSAyLjc1Ljk3IDQuMjkuOTcgNS41MiAwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxSdWxlXCI6XCJldmVub2RkXCIsXCJkXCI6XCJNMTMgOGgtMnYzSDh2MmgzdjNoMnYtM2gzdi0yaC0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVkaWNhbEluZm9ybWF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gtNVY0YzAtMS4xLS45LTItMi0yaC0yYy0xLjEgMC0yIC45LTIgMnYzSDRjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOWMwLTEuMS0uOS0yLTItMnptLTktM2gydjVoLTJWNHptOSAxNkg0VjloNWMwIDEuMS45IDIgMiAyaDJjMS4xIDAgMi0uOSAyLTJoNXYxMXptLTktNEg5djJIN3YtMkg1di0yaDJ2LTJoMnYyaDJ2MnptMi0xLjVWMTNoNnYxLjVoLTZ6bTAgM1YxNmg0djEuNWgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lZGljYWxTZXJ2aWNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDZoLTRWNGMwLTEuMS0uOS0yLTItMmgtNGMtMS4xIDAtMiAuOS0yIDJ2Mkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6TTEwIDRoNHYyaC00VjR6bTEwIDE2SDRWOGgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBoLTJ2M0g4djJoM3YzaDJ2LTNoM3YtMmgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lbnVCb29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNWMtMS4xMS0uMzUtMi4zMy0uNS0zLjUtLjUtMS45NSAwLTQuMDUuNC01LjUgMS41LTEuNDUtMS4xLTMuNTUtMS41LTUuNS0xLjVTMi40NSA0LjkgMSA2djE0LjY1YzAgLjI1LjI1LjUuNS41LjEgMCAuMTUtLjA1LjI1LS4wNUMzLjEgMjAuNDUgNS4wNSAyMCA2LjUgMjBjMS45NSAwIDQuMDUuNCA1LjUgMS41IDEuMzUtLjg1IDMuOC0xLjUgNS41LTEuNSAxLjY1IDAgMy4zNS4zIDQuNzUgMS4wNS4xLjA1LjE1LjA1LjI1LjA1LjI1IDAgLjUtLjI1LjUtLjVWNmMtLjYtLjQ1LTEuMjUtLjc1LTItMXptMCAxMy41Yy0xLjEtLjM1LTIuMy0uNS0zLjUtLjUtMS43IDAtNC4xNS42NS01LjUgMS41VjhjMS4zNS0uODUgMy44LTEuNSA1LjUtMS41IDEuMiAwIDIuNC4xNSAzLjUuNXYxMS41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDEwLjVjLjg4IDAgMS43My4wOSAyLjUuMjZWOS4yNGMtLjc5LS4xNS0xLjY0LS4yNC0yLjUtLjI0LTEuNyAwLTMuMjQuMjktNC41LjgzdjEuNjZjMS4xMy0uNjQgMi43LS45OSA0LjUtLjk5ek0xMyAxMi40OXYxLjY2YzEuMTMtLjY0IDIuNy0uOTkgNC41LS45OS44OCAwIDEuNzMuMDkgMi41LjI2VjExLjljLS43OS0uMTUtMS42NC0uMjQtMi41LS4yNC0xLjcgMC0zLjI0LjMtNC41Ljgzek0xNy41IDE0LjMzYy0xLjcgMC0zLjI0LjI5LTQuNS44M3YxLjY2YzEuMTMtLjY0IDIuNy0uOTkgNC41LS45OS44OCAwIDEuNzMuMDkgMi41LjI2di0xLjUyYy0uNzktLjE2LTEuNjQtLjI0LTIuNS0uMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNZXJnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNDEgMjEgNSAxOS41OWw0LjgzLTQuODNjLjc1LS43NSAxLjE3LTEuNzcgMS4xNy0yLjgzdi01LjFMOS40MSA4LjQxIDggN2w0LTQgNCA0LTEuNDEgMS40MUwxMyA2LjgzdjUuMWMwIDEuMDYuNDIgMi4wOCAxLjE3IDIuODNMMTkgMTkuNTkgMTcuNTkgMjEgMTIgMTUuNDEgNi40MSAyMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pbm9yQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA5LjAxQzE4LjcyIDguNDIgMTguMTYgOCAxNy41IDhoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDE1djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDEwaDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMjBINXYtNWgxNHY1ek02IDE3LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTOC4zMyAxOSA3LjUgMTkgNiAxOC4zMyA2IDE3LjV6bTkgMGMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41ek05LjQxIDUgOCA2LjQxbC0zLTNMNi40MSAybDMgM3pNMTYgNi40MSAxNC41OSA1bDMtM0wxOSAzLjQxbC0zIDN6TTEzIDVoLTJWMGgydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNaXNjZWxsYW5lb3VzU2VydmljZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4xNyAxMy43MSAxLjQtMi40MmMuMDktLjE1LjA1LS4zNC0uMDgtLjQ1bC0xLjQ4LTEuMTZjLjAzLS4yMi4wNS0uNDUuMDUtLjY4cy0uMDItLjQ2LS4wNS0uNjlsMS40OC0xLjE2Yy4xMy0uMTEuMTctLjMuMDgtLjQ1bC0xLjQtMi40MmMtLjA5LS4xNS0uMjctLjIxLS40My0uMTVsLTEuNzQuN2MtLjM2LS4yOC0uNzUtLjUxLTEuMTgtLjY5bC0uMjYtMS44NWEuMzY0LjM2NCAwIDAgMC0uMzUtLjI5aC0yLjhjLS4xNyAwLS4zMi4xMy0uMzUuM0w2LjggNC4xNWMtLjQyLjE4LS44Mi40MS0xLjE4LjY5bC0xLjc0LS43Yy0uMTYtLjA2LS4zNCAwLS40My4xNWwtMS40IDIuNDJjLS4wOS4xNS0uMDUuMzQuMDguNDVsMS40OCAxLjE2Yy0uMDMuMjItLjA1LjQ1LS4wNS42OHMuMDIuNDYuMDUuNjlsLTEuNDggMS4xNmMtLjEzLjExLS4xNy4zLS4wOC40NWwxLjQgMi40MmMuMDkuMTUuMjcuMjEuNDMuMTVsMS43NC0uN2MuMzYuMjguNzUuNTEgMS4xOC42OWwuMjYgMS44NWMuMDMuMTYuMTguMjkuMzUuMjloMi44Yy4xNyAwIC4zMi0uMTMuMzUtLjNsLjI2LTEuODVjLjQyLS4xOC44Mi0uNDEgMS4xOC0uNjlsMS43NC43Yy4xNi4wNi4zNCAwIC40My0uMTV6TTguODEgMTFjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyek0yMS45MiAxOC42N2wtLjk2LS43NGMuMDItLjE0LjA0LS4yOS4wNC0uNDQgMC0uMTUtLjAxLS4zLS4wNC0uNDRsLjk1LS43NGMuMDgtLjA3LjExLS4xOS4wNS0uMjlsLS45LTEuNTVjLS4wNS0uMS0uMTctLjEzLS4yOC0uMWwtMS4xMS40NWMtLjIzLS4xOC0uNDgtLjMzLS43Ni0uNDRsLS4xNy0xLjE4YS4yMTYuMjE2IDAgMCAwLS4yMS0uMmgtMS43OWMtLjExIDAtLjIxLjA4LS4yMi4xOWwtLjE3IDEuMThjLS4yNy4xMi0uNTMuMjYtLjc2LjQ0bC0xLjExLS40NWEuMjMuMjMgMCAwIDAtLjI4LjFsLS45IDEuNTVjLS4wNS4xLS4wNC4yMi4wNS4yOWwuOTUuNzRhMy4xNDUgMy4xNDUgMCAwIDAgMCAuODhsLS45NS43NGMtLjA4LjA3LS4xMS4xOS0uMDUuMjlsLjkgMS41NWMuMDUuMS4xNy4xMy4yOC4xbDEuMTEtLjQ1Yy4yMy4xOC40OC4zMy43Ni40NGwuMTcgMS4xOGMuMDIuMTEuMTEuMTkuMjIuMTloMS43OWMuMTEgMCAuMjEtLjA4LjIyLS4xOWwuMTctMS4xOGMuMjctLjEyLjUzLS4yNi43NS0uNDRsMS4xMi40NWMuMS4wNC4yMiAwIC4yOC0uMWwuOS0xLjU1Yy4wNi0uMDkuMDMtLjIxLS4wNS0uMjh6bS00LjI5LjE2YTEuMzUgMS4zNSAwIDEgMSAuMDAxLTIuNzAxIDEuMzUgMS4zNSAwIDAgMS0uMDAxIDIuNzAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9kZU9mVHJhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMzEgMTguOWMtLjk2IDEtMi4wNiAyLjAzLTMuMzEgMy4xLTUuMzMtNC41NS04LTguNDgtOC0xMS44QzQgNS4yMiA3LjggMiAxMiAyYzQuMTkgMCA3Ljk5IDMuMjEgOCA4LjE3bDIuMDktMi4wOUwyMy41IDkuNSAxOSAxNGwtNC41LTQuNSAxLjQxLTEuNDFMMTggMTAuMTdDMTcuOTkgNi41NSAxNS4zNCA0IDEyIDRjLTMuMzUgMC02IDIuNTctNiA2LjIgMCAyLjM0IDEuOTUgNS40NCA2IDkuMTQuNjQtLjU5IDEuMjMtMS4xNiAxLjc3LTEuNzFhMi41IDIuNSAwIDAgMS0uMjctMS4xMiAyLjUgMi41IDAgMCAxIDUgMCAyLjQ5MiAyLjQ5MiAwIDAgMS0zLjE5IDIuMzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb25leSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTZoM2MuNTUgMCAxLS40NSAxLTFWOWMwLS41NS0uNDUtMS0xLTFoLTNjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxem0xLTZoMXY0aC0xdi00em0tNyA2aDNjLjU1IDAgMS0uNDUgMS0xVjljMC0uNTUtLjQ1LTEtMS0xSDljLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxem0xLTZoMXY0aC0xdi00ek01IDhoMnY4SDV6TTIgNHYxNmgyMFY0SDJ6bTE4IDE0SDRWNmgxNnYxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vcGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgN2MwLTEuMS0uOS0yLTItMmgtM3YyaDN2Mi42NUwxMy41MiAxNEgxMFY5SDZjLTIuMjEgMC00IDEuNzktNCA0djNoMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDQuNDhMMTkgMTAuMzVWN3pNNCAxNHYtMWMwLTEuMS45LTIgMi0yaDJ2M0g0em0zIDNjLS41NSAwLTEtLjQ1LTEtMWgyYzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSA2aDV2Mkg1ek0xOSAxM2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9zcXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgN2MwLTEuMS0yLTMtMi0zcy0yIDEuOS0yIDNjMCAuNzQuNCAxLjM4IDEgMS43MlYxM2gtMnYtMmMwLS45NS0uNjYtMS43NC0xLjU1LTEuOTQuMzQtLjU4LjU1LTEuMjUuNTUtMS45NyAwLTEuMzEtLjY1LTIuNTMtMS43NC0zLjI1TDEyIDEgNy43NCAzLjg0QTMuODg3IDMuODg3IDAgMCAwIDYgNy4wOWMwIC43Mi4yMSAxLjM5LjU1IDEuOTZDNS42NiA5LjI2IDUgMTAuMDUgNSAxMXYySDNWOC43MmMuNi0uMzQgMS0uOTggMS0xLjcyIDAtMS4xLTItMy0yLTNTMCA1LjkgMCA3YzAgLjc0LjQgMS4zOCAxIDEuNzJWMjFoMTB2LTRjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxdjRoMTBWOC43MmMuNi0uMzQgMS0uOTggMS0xLjcyek04Ljg1IDUuNSAxMiAzLjRsMy4xNSAyLjFjLjUzLjM2Ljg1Ljk1Ljg1IDEuNTlDMTYgOC4xNCAxNS4xNCA5IDE0LjA5IDlIOS45MUM4Ljg2IDkgOCA4LjE0IDggNy4wOWMwLS42NC4zMi0xLjIzLjg1LTEuNTl6TTIxIDE5aC02di0yYzAtMS42NS0xLjM1LTMtMy0zcy0zIDEuMzUtMyAzdjJIM3YtNGg0di00aDEwdjRoNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW92aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOS40MlYxMmgyVjZoLTZ2MmgyLjU4bC00LjQ2IDQuNDZhLjk5Ni45OTYgMCAwIDEtMS40MSAwbC0xLjE3LTEuMTdhMyAzIDAgMCAwLTQuMjQgMEwyIDE2LjU5IDMuNDEgMThsNS4yOS01LjI5YS45OTYuOTk2IDAgMCAxIDEuNDEgMGwxLjE3IDEuMTdhMyAzIDAgMCAwIDQuMjQgMEwyMCA5LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTXVsdGlwbGVTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcgNCA0IDQtNCA0VjloLTRWN2g0VjR6bS03IDNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNNiA3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTEgMTBoNHYtMkg3di0zbC00IDQgNCA0di0zem03IDBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptNCAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNdXNldW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMVY5TDEyIDIgMiA5djJoMnY5SDJ2MmgyMHYtMmgtMnYtOWgyem0tNCA5SDZWOWgxMnYxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTAgMTQgMiAzIDItM3Y0aDJ2LTdoLTJsLTIgMy0yLTNIOHY3aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNeUxvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTQtMS43OS00LTQtNHptOC45NCAzQTguOTk0IDguOTk0IDAgMCAwIDEzIDMuMDZWMWgtMnYyLjA2QTguOTk0IDguOTk0IDAgMCAwIDMuMDYgMTFIMXYyaDIuMDZBOC45OTQgOC45OTQgMCAwIDAgMTEgMjAuOTRWMjNoMnYtMi4wNkE4Ljk5NCA4Ljk5NCAwIDAgMCAyMC45NCAxM0gyM3YtMmgtMi4wNnpNMTIgMTljLTMuODcgMC03LTMuMTMtNy03czMuMTMtNyA3LTcgNyAzLjEzIDcgNy0zLjEzIDctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTmF2aWdhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNy4yNyA0LjI4IDEwLjQzLTMuNDctMS41My0uODEtLjM2LS44MS4zNi0zLjQ3IDEuNTNMMTIgNy4yN00xMiAyIDQuNSAyMC4yOWwuNzEuNzFMMTIgMThsNi43OSAzIC43MS0uNzFMMTIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5lYXJNZURpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNi4zNCAyMSAzbC0zLjM0IDktMS41Ni0xLjU2IDEuNS00LjA1LTQuMDUgMS41TDEyIDYuMzR6bTkuMTkgMTQuODUtNS4wNy01LjA3TDE0LjMxIDIxSDEyLjlsLTIuODMtNy4wN0wzIDExLjFWOS42OWw0Ljg4LTEuODEtNS4wNy01LjA3TDQuMjIgMS40IDIyLjYgMTkuNzhsLTEuNDEgMS40MXptLTYuNjItNi42Mkw5LjQzIDkuNDNsLTIuNzEgMS4wMSA0Ljg5IDEuOTUgMS45NSA0Ljg5IDEuMDEtMi43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5lYXJNZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMjcgNi43My00LjI0IDEwLjEzLTEuMzItMy40Mi0uMzItLjgzLS44Mi0uMzItMy40My0xLjMzIDEwLjEzLTQuMjNNMjEgMyAzIDEwLjUzdi45OGw2Ljg0IDIuNjVMMTIuNDggMjFoLjk4TDIxIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOaWdodGxpZmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDVoMTRsLTYgOXY0aDJ2Mkg1di0yaDJ2LTRMMSA1em05LjEgNCAxLjQtMkg0LjQ5bDEuNCAyaDQuMjF6TTE3IDVoNXYzaC0zdjljMCAxLjY2LTEuMzQgMy0zIDNzLTMtMS4zNC0zLTMgMS4zNC0zIDMtM2EzIDMgMCAwIDEgMSAuMTdWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA5LjAxQzE4LjcyIDguNDIgMTguMTYgOCAxNy41IDhoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDE1djhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDEwaDEwLjI5bDEuMDQgM0g1LjgxbDEuMDQtM3pNMTkgMjBINXYtNWgxNHY1ek02IDE3LjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVTOC4zMyAxOSA3LjUgMTkgNiAxOC4zMyA2IDE3LjV6bTkgMGMwLS44My42Ny0xLjUgMS41LTEuNXMxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjUtMS41LS42Ny0xLjUtMS41ek0xMiA2LjM2IDkuMTcgMy41NGwxLjQxLTEuNDFMMTIgMy41NCAxNS41NCAwbDEuNDEgMS40MUwxMiA2LjM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9NZWFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE0VjZjMC0xLjc2IDIuMjQtNCA1LTR2MTYuMTdsLTItMlYxNGgtM3ptNC40OSA5LjMxTDEwLjAyIDEyLjg1Yy0uMzMuMDktLjY2LjE1LTEuMDIuMTV2OUg3di05Yy0yLjIxIDAtNC0xLjc5LTQtNFY1LjgzTC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MXpNNi4xNyA5IDUgNy44M1Y5aDEuMTd6TTkgMkg3djIuMTdsMiAyVjJ6bTQgN1YyaC0ydjYuMTdsMS44NSAxLjg1Yy4wOS0uMzMuMTUtLjY2LjE1LTEuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb1RyYW5zZmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDEzYy44MyAwIDEuNS42NyAxLjUgMS41UzkuMzMgMTYgOC41IDE2IDcgMTUuMzMgNyAxNC41IDcuNjcgMTMgOC41IDEzem0xMS4yOCA5LjYxLTEuNjQtMS42NGMtLjA1LjAxLS4wOS4wMy0uMTQuMDNoLTFjLS41NSAwLTEtLjQ1LTEtMXYtMUg4djFjMCAuNTUtLjQ1IDEtMSAxSDZjLS41NSAwLTEtLjQ1LTEtMXYtMS43OGMtLjYxLS41NS0xLTEuMzQtMS0yLjIyVjYuODNMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyek02IDguODNWMTBoMS4xN0w2IDguODN6TTE0LjE3IDE3bC01LTVINnY0YzAgLjM3LjIxLjYyLjM0LjczbC4yOS4yN2g3LjU0ek0xMiA0YzMuNjkgMCA1LjExLjQ2IDUuNjYuOTlINy44MmwyIDJIMThWMTBoLTUuMTdsMiAySDE4djMuMTdsMS44MSAxLjgxYy4xMS0uMzEuMTktLjYzLjE5LS45OFY2YzAtMy41LTMuNTgtNC04LTQtMi41MiAwLTQuNzYuMTYtNi4yMi45NWwxLjUzIDEuNTNDOC4xNyA0LjIgOS42IDQgMTIgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdExpc3RlZExvY2F0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMSAxNmEuOTkuOTkgMCAwIDEtLjcxLS4yOS45NS45NSAwIDAgMS0uMjktLjcxYy0uMDEtLjU1LjQzLS45OS45OC0xaC4wMmMuMjggMCAuNTEuMS43MS4yOS4xOC4xOS4yOC40My4yOC43cy0uMS41MS0uMjkuNzEtLjQzLjMtLjcuM3ptLS44OC0zLjY2YzAtLjQ1LjEtLjg0LjI5LTEuMTYuMTktLjMzLjUzLS43IDEtMS4xMi4yOC0uMjUuNDgtLjQ3LjYxLS42NnMuMTktLjQuMTktLjY0YzAtLjI5LS4xMS0uNTMtLjMyLS43NC0uMjEtLjItLjUtLjMtLjg1LS4zLS4zNyAwLS43NC4xLS45Ni4zLS4yMS4yLS40LjQ1LS40Ljk4SDljMC0xLjAxLjQ2LTEuNzMuOTctMi4yMUMxMC41MyA2LjI4IDExLjI1IDYgMTIgNmMuNTkgMCAxLjExLjEyIDEuNTcuMzVzLjc5LjU1IDEuMDUuOTYuMzguODYuMzggMS4zNS0uMS45LS4zMSAxLjI1LS40OC43MS0uODkgMS4wOWMtLjMyLjMtLjUzLjU2LS42NS43N3MtLjE4LjQ5LS4xOC44MVYxM2gtMS44NXYtLjY2aC4wMXpNMTggMTAuMkMxOCA2LjU3IDE1LjM1IDQgMTIgNHMtNiAyLjU3LTYgNi4yYzAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0IDQuMDUtMy43IDYtNi44IDYtOS4xNHpNMTIgMmM0LjIgMCA4IDMuMjIgOCA4LjIgMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJoMkwxMiAyIDUuMDUgMTJIN2wtMy45IDZoNi45MnY0aDMuOTV2LTRIMjFsLTQtNnpNNi43OSAxNmwzLjktNkg4Ljg4bDMuMTMtNC41IDMuMTUgNC41aC0xLjlsNCA2SDYuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZWRhbEJpa2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC4xOCAxMC0xLjctNC42OEEyLjAwOCAyLjAwOCAwIDAgMCAxNC42IDRIMTJ2MmgyLjZsMS40NiA0aC00LjgxbC0uMzYtMUgxMlY3SDd2MmgxLjc1bDEuODIgNUg5LjljLS40NC0yLjIzLTIuMzEtMy44OC00LjY1LTMuOTlDMi40NSA5Ljg3IDAgMTIuMiAwIDE1YzAgMi44IDIuMiA1IDUgNSAyLjQ2IDAgNC40NS0xLjY5IDQuOS00aDQuMmMuNDQgMi4yMyAyLjMxIDMuODggNC42NSAzLjk5IDIuOC4xMyA1LjI1LTIuMTkgNS4yNS01IDAtMi44LTIuMi01LTUtNWgtLjgyek03LjgyIDE2Yy0uNCAxLjE3LTEuNDkgMi0yLjgyIDItMS42OCAwLTMtMS4zMi0zLTNzMS4zMi0zIDMtM2MxLjMzIDAgMi40Mi44MyAyLjgyIDJINXYyaDIuODJ6bTYuMjgtMmgtMS40bC0uNzMtMkgxNWMtLjQ0LjU4LS43NiAxLjI1LS45IDJ6bTQuOSA0Yy0xLjY4IDAtMy0xLjMyLTMtMyAwLS45My40MS0xLjczIDEuMDUtMi4yOGwuOTYgMi42NCAxLjg4LS42OC0uOTctMi42N2MuMDMgMCAuMDYtLjAxLjA5LS4wMSAxLjY4IDAgMyAxLjMyIDMgM3MtMS4zMyAzLTMuMDEgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvblBpbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDExYzEuMzMgMCA0IC42NyA0IDJ2LjE2Yy0uOTcgMS4xMi0yLjQgMS44NC00IDEuODRzLTMuMDMtLjcyLTQtMS44NFYxM2MwLTEuMzMgMi42Ny0yIDQtMnptMC0xYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNiAuMkMxOCA2LjU3IDE1LjM1IDQgMTIgNHMtNiAyLjU3LTYgNi4yYzAgMi4zNCAxLjk1IDUuNDQgNiA5LjE0IDQuMDUtMy43IDYtNi44IDYtOS4xNHpNMTIgMmM0LjIgMCA4IDMuMjIgOCA4LjIgMCAzLjMyLTIuNjcgNy4yNS04IDExLjgtNS4zMy00LjU1LTgtOC40OC04LTExLjhDNCA1LjIyIDcuOCAyIDEyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25QaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDJINWEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoNGwzIDMgMy0zaDRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNmgtNC44M2wtLjU5LjU5TDEyIDIwLjE3bC0xLjU5LTEuNTktLjU4LS41OEg1VjRoMTR2MTR6bS03LTdjMS42NSAwIDMtMS4zNSAzLTNzLTEuMzUtMy0zLTMtMyAxLjM1LTMgMyAxLjM1IDMgMyAzem0wLTRjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNiA4LjU4YzAtMi41LTMuOTctMy41OC02LTMuNThzLTYgMS4wOC02IDMuNThWMTdoMTJ2LTEuNDJ6TTguNDggMTVjLjc0LS41MSAyLjIzLTEgMy41Mi0xczIuNzguNDkgMy41MiAxSDguNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXN0Q29udHJvbFJvZGVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCIxN1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMC44NiAxNC45Ny0uOTMtLjg0Yy40OC0zLjQ1LTIuODctNi4wNC02LjA1LTQuODJBNS43OSA1Ljc5IDAgMCAwIDEyIDljLTQuMjYgMC01LjY1IDMuNTgtNS44OSA0Ljg1QTIuOTgzIDIuOTgzIDAgMCAxIDQgMTFjMC0xLjY2IDEuMzQtMyAzLTNoMi41YTIuNSAyLjUgMCAwIDAgMC01SDhjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDFoMS41Yy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNUg3Yy0yLjc2IDAtNSAyLjI0LTUgNSAwIDIuNDQgMS43NiA0LjQ3IDQuMDcgNC45MUE1Ljk5OCA1Ljk5OCAwIDAgMCAxMiAyMWg2LjUzYzMuMTEgMCA0LjctMy44OSAyLjMzLTYuMDN6TTE4LjUzIDE5SDEyYy0xLjIxIDAtMi4zNC0uNTQtMy4xMS0xLjQ4LS43OC0uOTUtMS4wNi0yLjE2LS44LTMuNDFhMy45NSAzLjk1IDAgMCAxIDIuOTktMy4wMWMuMjItLjA1LjQ1LS4wNi42Ny0uMDctLjQ3LjcxLS43NSAxLjU1LS43NSAyLjQ3IDAgMS4yNC41IDIuMzcgMS4zMiAzLjE4bDEuNDEtMS40MWMtLjQ1LS40NS0uNzMtMS4wOC0uNzMtMS43NyAwLTEuNDIgMS4yLTIuNSAyLjUtMi41YTIuNSAyLjUgMCAwIDEgMi41IDIuNWMwIC40Ni0uMTMuODgtLjM1IDEuMjVsMS44NyAxLjdjLjMxLjI4LjQ4LjY3LjQ4IDEuMDkgMCAuOC0uNjYgMS40Ni0xLjQ3IDEuNDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXN0Q29udHJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE1di0yaC0zLjA3Yy0uMDUtLjM5LS4xMi0uNzctLjIyLTEuMTRsMi41OC0xLjQ5LTEtMS43M0wxNi45MiAxMGMtLjI4LS40OC0uNjItLjkxLS45OS0xLjI5LjEtLjU2LjItMS42OS0uNTgtMi44OUwxNyA0LjE3bC0xLjQxLTEuNDEtMS43MiAxLjcyYy0xLjY4LS44OS0zLjEtLjMzLTMuNzMgMEw4LjQxIDIuNzYgNyA0LjE3bDEuNjUgMS42NWMtLjc4IDEuMi0uNjggMi4zNC0uNTggMi44OS0uMzcuMzktLjcxLjgyLS45OSAxLjI5TDQuNzEgOC42M2wtMSAxLjczIDIuNTggMS40OWMtLjEuMzctLjE3Ljc1LS4yMiAxLjE0SDN2MmgzLjA3Yy4wNS4zOS4xMi43Ny4yMiAxLjE0bC0yLjU4IDEuNDkgMSAxLjczTDcuMDggMThjMS4wOCAxLjgxIDIuODggMyA0LjkyIDNzMy44NC0xLjE5IDQuOTItM2wyLjM3IDEuMzcgMS0xLjczLTIuNTgtMS40OWMuMS0uMzcuMTctLjc1LjIyLTEuMTRIMjF6bS05LTljLjg4IDAgMS42Mi41NyAxLjg4IDEuMzZDMTMuMjkgNy4xMyAxMi42NiA3IDEyIDdzLTEuMjkuMTMtMS44OC4zNkMxMC4zOCA2LjU3IDExLjEyIDYgMTIgNnptMCAxM2MtMi4yMSAwLTQtMi4yNC00LTVzMS43OS01IDQtNSA0IDIuMjQgNCA1LTEuNzkgNS00IDV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDExaDJ2NmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpbkRyb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzEuOTMgMCA1IDEuNCA1IDUuMTUgMCAyLjE2LTEuNzIgNC42Ny01IDcuMzItMy4yOC0yLjY1LTUtNS4xNy01LTcuMzJDNyA1LjQgMTAuMDcgNCAxMiA0bTAtMkM4LjczIDIgNSA0LjQ2IDUgOS4xNWMwIDMuMTIgMi4zMyA2LjQxIDcgOS44NSA0LjY3LTMuNDQgNy02LjczIDctOS44NUMxOSA0LjQ2IDE1LjI3IDIgMTIgMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN2MtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDJhMiAyIDAgMSAwIDAtNHpNNSAyMGgxNHYySDV2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQbGFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDEyYy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnptNi0xLjhDMTggNi41NyAxNS4zNSA0IDEyIDRzLTYgMi41Ny02IDYuMmMwIDIuMzQgMS45NSA1LjQ0IDYgOS4xNCA0LjA1LTMuNyA2LTYuOCA2LTkuMTR6TTEyIDJjNC4yIDAgOCAzLjIyIDggOC4yIDAgMy4zMi0yLjY3IDcuMjUtOCAxMS44LTUuMzMtNC41NS04LTguNDgtOC0xMS44QzQgNS4yMiA3LjggMiAxMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGx1bWJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS4yOCA0LjkzLTIuMTItMi4xMmMtLjc4LS43OC0yLjA1LS43OC0yLjgzIDBMMTEuNSA1LjY0bDIuMTIgMi4xMiAyLjEyLTIuMTIgMy41NCAzLjU0YTMuMDEyIDMuMDEyIDAgMCAwIDAtNC4yNXpNNS40OSAxMy43N2MuNTkuNTkgMS41NC41OSAyLjEyIDBsMi40Ny0yLjQ3LTIuMTItMi4xMy0yLjQ3IDIuNDdjLS41OS41OS0uNTkgMS41NCAwIDIuMTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1LjA0IDcuNzYtLjcxLjcxLS43MS43MUwxMC40NCA2Yy0uNTktLjYtMS41NC0uNi0yLjEyLS4wMWExLjQ5IDEuNDkgMCAwIDAgMCAyLjEybDMuMTggMy4xOC0uNzEuNzEtNi4zNiA2LjM2Yy0uNzguNzgtLjc4IDIuMDUgMCAyLjgzLjc4Ljc4IDIuMDUuNzggMi44MyAwTDE2LjQ1IDEyYS45OTYuOTk2IDAgMSAwIDEuNDEtMS40MWwtMi44Mi0yLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFpbHdheUFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMFwiLFwiY3lcIjpcIjE1LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDExVjhoNy4yOUMxMS4xIDcuMzcgMTEgNi43IDExIDZINC40M2MuOS0uNzcgMy4yOC0xLjA4IDYuNjUtLjk4LjEtLjcuMy0xLjM3LjU5LTEuOTlDMi45NyAyLjY3IDIgNS4wMiAyIDd2OS41QzIgMTguNDMgMy41NyAyMCA1LjUgMjBMNCAyMXYxaDEydi0xbC0xLjUtMWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVYxM2MtMS45MSAwLTMuNjMtLjc2LTQuODktMkg0em0xMiA1LjVjMCAuODMtLjY3IDEuNS0xLjUgMS41aC05Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVWMTNoMTJ2My41elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxYy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptLjUgOGgtMVY4aDF2MXptMC0yaC0xVjNoMXY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFtZW5EaW5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS42NiAxNGMtLjY2IDEuOTItMi4yNCAzLjU0LTQuNCA0LjM5bC0xLjI2LjVWMjBoLTR2LTEuMTFsLTEuMjctLjVjLTIuMTYtLjg1LTMuNzQtMi40Ny00LjQtNC4zOWgxNS4zM00yMiAyIDQgMy45OVYxMkgyYzAgMy42OSAyLjQ3IDYuODYgNiA4LjI1VjIyaDh2LTEuNzVjMy41My0xLjM5IDYtNC41NiA2LTguMjVIMTAuNVY4SDIyVjYuNUgxMC41VjQuNzhMMjIgMy41MVYyek04IDYuNVY1LjA2bDEtLjExVjYuNUg4em0tMi41IDBWNS4zNGwxLS4xMVY2LjVoLTF6TTggMTJWOGgxdjRIOHptLTIuNSAwVjhoMXY0aC0xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFtcExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAyMWgtMlY2LjgzTDkuNDEgOC40MSA4IDdsNC00IDQgNC0xLjQxIDEuNDFMMTMgNi44M1Y5YzAgNC4yNyA0LjAzIDcuMTMgNiA4LjI3bC0xLjQ2IDEuNDZjLTEuOTEtMS4xNi0zLjQ0LTIuNTMtNC41NC00LjAyVjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmFtcFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMjFoMlY2LjgzbDEuNTkgMS41OUwxNiA3bC00LTQtNCA0IDEuNDEgMS40MUwxMSA2LjgzVjljMCA0LjI3LTQuMDMgNy4xMy02IDguMjdsMS40NiAxLjQ2QzguMzcgMTcuNTYgOS45IDE2LjE5IDExIDE0LjdWMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYXRlUmV2aWV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTEuOTkuOS0xLjk5IDJMMiAyMmw0LTRoMTRjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxNEg1LjE3bC0uNTkuNTktLjU4LjU4VjRoMTZ2MTJ6bS05LjUtMkgxOHYtMmgtNS41em0zLjg2LTUuODdjLjItLjIuMi0uNTEgMC0uNzFsLTEuNzctMS43N2MtLjItLjItLjUxLS4yLS43MSAwTDYgMTEuNTNWMTRoMi40N2w1Ljg5LTUuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVSb2FkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggNGgydjloLTJ6TTQgNGgydjE2SDR6TTExIDRoMnY0aC0yek0xMSAxMGgydjRoLTJ6TTExIDE2aDJ2NGgtMnpNMjIuNSAxNi40MSAyMS4wOSAxNSAxOSAxNy4wOSAxNi45MSAxNWwtMS40MSAxLjQxIDIuMDkgMi4wOS0yLjA5IDIuMDlMMTYuOTEgMjIgMTkgMTkuOTEgMjEuMDkgMjJsMS40MS0xLjQxLTIuMDktMi4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlc3RhdXJhbnRNZW51IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm04LjEgMTMuMzQgMi44My0yLjgzTDMuOTEgMy41YTQuMDA4IDQuMDA4IDAgMCAwIDAgNS42Nmw0LjE5IDQuMTh6bTYuNzgtMS44MWMxLjUzLjcxIDMuNjguMjEgNS4yNy0xLjM4IDEuOTEtMS45MSAyLjI4LTQuNjUuODEtNi4xMi0xLjQ2LTEuNDYtNC4yLTEuMS02LjEyLjgxLTEuNTkgMS41OS0yLjA5IDMuNzQtMS4zOCA1LjI3TDMuNyAxOS44N2wxLjQxIDEuNDFMMTIgMTQuNDFsNi44OCA2Ljg4IDEuNDEtMS40MUwxMy40MSAxM2wxLjQ3LTEuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZXN0YXVyYW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiA2djhoM3Y4aDJWMmMtMi43NiAwLTUgMi4yNC01IDR6bS01IDNIOVYySDd2N0g1VjJIM3Y3YzAgMi4yMSAxLjc5IDQgNCA0djloMnYtOWMyLjIxIDAgNC0xLjc5IDQtNFYyaC0ydjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3VuZGFib3V0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwLjA4IDhBNiA2IDAgMCAxIDE2IDNjMy4zMSAwIDYgMi42OSA2IDYgMCAyLjk3LTIuMTYgNS40NC01IDUuOTJWMjFoLTJ2LTYuMDljMC0uOTguNzEtMS44IDEuNjctMS45N2EzLjk5OSAzLjk5OSAwIDEgMC00LjYxLTQuNjFjLS4xNy45Ni0uOTkgMS42Ny0xLjk3IDEuNjdINS44M2wxLjU5IDEuNTlMNiAxMyAyIDlsNC00IDEuNDEgMS40MUw1LjgzIDhoNC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvdW5kYWJvdXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjkyIDhDMTMuNDQgNS4xNiAxMC45NyAzIDggMyA0LjY5IDMgMiA1LjY5IDIgOWMwIDIuOTcgMi4xNiA1LjQ0IDUgNS45MlYyMWgydi02LjA5YzAtLjk4LS43MS0xLjgtMS42Ny0xLjk3YTMuOTk5IDMuOTk5IDAgMSAxIDQuNjEtNC42MWMuMTcuOTYuOTkgMS42NyAxLjk3IDEuNjdoNC4yNmwtMS41OSAxLjU5TDE4IDEzbDQtNC00LTQtMS40MSAxLjQxTDE4LjE3IDhoLTQuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb3V0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE1LjE4VjdjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDR2MTBjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yVjguODJDOC4xNiA4LjQgOSA3LjMgOSA2YzAtMS42Ni0xLjM0LTMtMy0zUzMgNC4zNCAzIDZjMCAxLjMuODQgMi40IDIgMi44MlYxN2MwIDIuMjEgMS43OSA0IDQgNHM0LTEuNzkgNC00VjdjMC0xLjEuOS0yIDItMnMyIC45IDIgMnY4LjE4QTIuOTk2IDIuOTk2IDAgMCAwIDE4IDIxYzEuNjYgMCAzLTEuMzQgMy0zIDAtMS4zLS44NC0yLjQtMi0yLjgyek02IDdjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMTIgMTJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJ1bkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41NCA4Ljk3Yy0uMjMtLjQ3LS43Ni0uNzEtMS4yNi0uNTNMOSA5LjY1VjEyaDF2LTEuNjVsMS41NC0uNTctLjk2IDQuODktMi43OC0uNTctLjIuOTggMy43Ni43Ny41Mi0yLjY0TDEzIDE0LjQyVjE4aDF2LTMuOTdsLTEuMzItMS40NC40MS0yLjM1QzEzLjk5IDExLjQ2IDE1LjMgMTIgMTYgMTJ2LTFjLS40MSAwLTEuNjMtLjMzLTIuNDYtMi4wM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMy41XCIsXCJjeVwiOlwiN1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2FmZXR5Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyIDQgNXY2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSA0LjU5LTEuMTUgOC01Ljg2IDgtMTAuOTFWNWwtOC0zem02IDkuMDljMCA0LTIuNTUgNy43LTYgOC44My0zLjQ1LTEuMTMtNi00LjgyLTYtOC44M3YtNC43bDYtMi4yNSA2IDIuMjV2NC43ek0xMiA3Yy0yLjc2IDAtNSAyLjI0LTUgNXMyLjI0IDUgNSA1IDUtMi4yNCA1LTUtMi4yNC01LTUtNXptMS42NSA3LjM1TDExLjUgMTIuMlY5aDF2Mi43OWwxLjg1IDEuODUtLjcuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYWlsaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMTMuNVYyTDMgMTMuNWg4em0tMi0ySDYuODNMOSA4LjM4djMuMTJ6bTEyIDJDMjEgNi41IDE0LjUgMSAxMi41IDFjMCAwIDEgMyAxIDYuNXMtMSA2LTEgNkgyMXptLTUuNjItOC4yNmMxLjQyIDEuNTIgMi44OCAzLjcyIDMuNDEgNi4yNmgtMy42OGMuMjEtMS4xLjM5LTIuNDYuMzktNCAwLS43OS0uMDUtMS41NS0uMTItMi4yNnpNMjIgMTVIMmE2LjIzMyA2LjIzMyAwIDAgMCAyLjMzIDMuNzNjLjY1LS4yNyAxLjIyLS43MiAxLjY3LTEuMjMuNzMuODQgMS44IDEuNSAzIDEuNXMyLjI3LS42NiAzLTEuNWMuNzMuODQgMS44IDEuNSAzIDEuNXMyLjI2LS42NiAzLTEuNWMuNDUuNTEgMS4wMi45NiAxLjY3IDEuMjMgMS4xNy0uODkgMi4wMi0yLjIgMi4zMy0zLjczem0wIDh2LTJoLTFjLTEuMDQgMC0yLjA4LS4zNS0zLTEtMS44MyAxLjMtNC4xNyAxLjMtNiAwLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0uOTEuNjUtMS45NiAxLTMgMUgydjJoMWMxLjAzIDAgMi4wNS0uMjUgMy0uNzUgMS44OSAxIDQuMTEgMSA2IDAgMS44OSAxIDQuMTEgMSA2IDAgLjk1LjUgMS45Ny43NSAzIC43NWgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2F0ZWxsaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTguNTcgNkg2djIuNThjMS40MiAwIDIuNTctMS4xNiAyLjU3LTIuNTh6TTEyIDZoLTEuNzFjMCAyLjM2LTEuOTIgNC4yOS00LjI5IDQuMjlWMTJjMy4zMiAwIDYtMi42OSA2LTZ6bTIuMTQgNS44Ni0zIDMuODdMOSAxMy4xNSA2IDE3aDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NyZWVuUm90YXRpb25BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm00IDcuNTkgNS01Yy43OC0uNzggMi4wNS0uNzggMi44MyAwTDIwLjI0IDExaC0yLjgzTDEwLjQgNCA1LjQxIDlIOHYySDJWNWgydjIuNTl6TTIwIDE5aDJ2LTZoLTZ2MmgyLjU5bC00Ljk5IDUtNy4wMS03SDMuNzZsOC40MSA4LjQxYy43OC43OCAyLjA1Ljc4IDIuODMgMGw1LTVWMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZXRNZWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuMDUgMTcuNTYtMTcuOTcuOTRMMyAxN2wxNy45OC0uOTQuMDcgMS41ek0yMSAxOS40OEgzdjEuNWgxOHYtMS41ek0yMyAxM1Y0YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjljMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMnptLTIgMEgzVjRoMTh2OXptLTEtN2MtMS42OCAwLTMuMDQuOTgtMy4yMSAyLjIzLS42NC0uNzMtMi43My0yLjczLTYuNTQtMi43My00LjY3IDAtNi43NSAzLTYuNzUgM3MyLjA4IDMgNi43NSAzYzMuODEgMCA1LjktMiA2LjU0LTIuNzNDMTYuOTYgMTAuMDIgMTguMzIgMTEgMjAgMTFWNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpZ25wb3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMTBoNWwzLTMtMy0zaC01VjJoLTJ2Mkg0djZoN3YySDZsLTMgMyAzIDNoNXY0aDJ2LTRoN3YtNmgtN3YtMnpNNiA2aDExLjE3bDEgMS0xIDFINlY2em0xMiAxMEg2LjgzbC0xLTEgMS0xSDE4djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbm93bW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTdjMCAuNTUtLjQ1IDEtMSAxaC0uMTdsLTIuMi0yLjJDMjAuNTggMTUuMzcgMjIgMTQuNCAyMiAxM2MwLTEtOC04LTgtOGgtM3YyaDIuMjVsLjguNzJMMTEgMTAgMiA5bC0yIDQgNC41NCAxLjM2LTMuNDkgMS44OEMtLjc3IDE3LjIyLS4wNyAyMCAyIDIwaDZjMi4yMSAwIDQtMS43OSA0LTRoNGwyIDJoLTN2Mmg2YzEuNjYgMCAzLTEuMzQgMy0zaC0yek04IDE4SDJsNS4yNS0yLjgzTDEwIDE2YTIgMiAwIDAgMS0yIDJ6bTktNGgtNi43bC03LjQ1LTIuMjMuMzEtLjYyIDguNDQuODUgMy45My0yLjk0czMuNzcgMy40NCA0LjI3IDQuMTRjMCAwLTEuMS44LTIuOC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU29zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSA3aC0zYy0xLjEgMC0yIC45LTIgMnY2YzAgMS4xLjkgMiAyIDJoM2MxLjEgMCAyLS45IDItMlY5YzAtMS4xLS45LTItMi0yem0wIDhoLTNWOWgzdjZ6TTEgMTVoNHYtMkgzYy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNHYySDN2MmgyYzEuMSAwIDIgLjkgMiAydjJjMCAxLjEtLjkgMi0yIDJIMXYtMnptMTYgMGg0di0yaC0yYy0xLjEgMC0yLS45LTItMlY5YzAtMS4xLjktMiAyLTJoNHYyaC00djJoMmMxLjEgMCAyIC45IDIgMnYyYzAgMS4xLS45IDItMiAyaC00di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU291cEtpdGNoZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjQgN2MtLjM0LjU1LS40Ljk3LS40IDEuMzhDNiA5LjE1IDcgMTEgNyAxMmMwIC45NS0uNCAxLjUtLjQgMS41SDUuMXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgxLjV6bTUgMGMtLjM0LjU1LS40Ljk3LS40IDEuMzggMCAuNzcgMSAyLjYyIDEgMy42MiAwIC45NS0uNCAxLjUtLjQgMS41aDEuNXMuNC0uNTUuNC0xLjVjMC0xLTEtMi44NS0xLTMuNjIgMC0uNDEuMDYtLjgzLjQtMS4zOGgtMS41ek04LjE1IDdjLS4zNC41NS0uNC45Ny0uNCAxLjM4IDAgLjc3IDEgMi42MyAxIDMuNjIgMCAuOTUtLjQgMS41LS40IDEuNWgxLjVzLjQtLjU1LjQtMS41YzAtMS0xLTIuODUtMS0zLjYyIDAtLjQxLjA2LS44My40LTEuMzhoLTEuNXpNMTguNiAyYy0xLjU0IDAtMi44MSAxLjE2LTIuOTggMi42NUwxNC41MyAxNUg0LjAxYy0uNiAwLTEuMDkuNTMtMSAxLjEzQzMuNTMgMTkuNDYgNi4zOSAyMiA5Ljc1IDIyYzMuNDggMCA2LjM0LTIuNzMgNi43MS02LjIzTDE3LjYxIDQuOWMuMDUtLjUxLjQ3LS45Ljk5LS45LjU1IDAgMSAuNDUgMSAxIDAgLjMtLjEgMS4yNS0uMSAxLjI1bDEuOTcuMjVzLjEzLTEuMDYuMTMtMS41YzAtMS42NS0xLjM1LTMtMy0zek05Ljc1IDIwYy0xLjk0IDAtMy42Ny0xLjIzLTQuNDMtM2g4Ljc5Yy0uNzIgMS43OC0yLjQyIDMtNC4zNiAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhZGl1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgNSAzIDdWM2w0IDJ6bTExLTJ2NGw0LTItNC0yem0tNy0xdjRsNC0yLTQtMnptMiAxNmgtMnY0Yy01LjA1LS4xNS05LTEuNDQtOS0zdi05YzAtMS42NiA0LjQ4LTMgMTAtM3MxMCAxLjM0IDEwIDN2OWMwIDEuNTYtMy45NSAyLjg1LTkgM3YtNHptLTgtNy45NmMxLjM4LjQ5IDMuNzcuOTYgNyAuOTZzNS42Mi0uNDcgNy0uOTZDMTkgOS44NiAxNi4yMiA5IDEyIDlzLTcgLjg2LTcgMS4wNHptMTUgMS43NmMtMS44Mi43My00LjczIDEuMi04IDEuMnMtNi4xOC0uNDctOC0xLjJ2Ni43OGMuNjEuNDEgMi4zNiAxLjAxIDUgMS4yOFYxNmg2djMuODZjMi42NC0uMjcgNC4zOS0uODcgNS0xLjI4VjExLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdG9yZU1hbGxEaXJlY3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE4LjM2IDkgLjYgM0g1LjA0bC42LTNoMTIuNzJNMjAgNEg0djJoMTZWNHptMCAzSDRsLTEgNXYyaDF2NmgxMHYtNmg0djZoMnYtNmgxdi0ybC0xLTV6TTYgMTh2LTRoNnY0SDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdHJhaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDYuODMgOS40MSA4LjQxIDggN2w0LTQgNCA0LTEuNDEgMS40MUwxMyA2LjgzVjIxaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RyZWV0dmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNTYgMTQuMzNjLS4zNC4yNy0uNTYuNy0uNTYgMS4xN1YyMWg3YzEuMSAwIDItLjkgMi0ydi01Ljk4Yy0uOTQtLjMzLTEuOTUtLjUyLTMtLjUyLTIuMDMgMC0zLjkzLjctNS40NCAxLjgzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE4XCIsXCJjeVwiOlwiNlwiLFwiclwiOlwiNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDZjMC0xLjA4LjI3LTIuMS43NC0zSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgLjU1LjIzIDEuMDUuNTkgMS40MWw5LjgyLTkuODJBNi40MzUgNi40MzUgMCAwIDEgMTEuNSA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3Vid2F5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy44IDIuOEMxNiAyLjA5IDEzLjg2IDIgMTIgMnMtNCAuMDktNS44LjhDMy41MyAzLjg0IDIgNi4wNSAyIDguODZWMjJoMjBWOC44NmMwLTIuODEtMS41My01LjAyLTQuMi02LjA2ek05LjE3IDIwbDEuNS0xLjVoMi42NmwxLjUgMS41SDkuMTd6bS0yLjE2LTZWOWgxMHY1aC0xMHptOS40OSAyYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6bS04LTFjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXpNMjAgMjBoLTMuNXYtLjM4bC0xLjE1LTEuMTZBMi45NzkgMi45NzkgMCAwIDAgMTggMTUuNVY5YzAtMi42My0zLTMtNi0zcy02IC4zNy02IDN2Ni41YzAgMS41NCAxLjE2IDIuNzkgMi42NSAyLjk2TDcuNSAxOS42MlYyMEg0VjguODZjMC0yIDEuMDEtMy40NSAyLjkzLTQuMkM4LjQxIDQuMDggMTAuMzIgNCAxMiA0czMuNTkuMDggNS4wNy42NmMxLjkyLjc1IDIuOTMgMi4yIDIuOTMgNC4yVjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3luYWdvZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGMtMS42NiAwLTMgMS4zNC0zIDN2LjI5TDEyIDMgNyA3LjI5VjdjMC0xLjY2LTEuMzQtMy0zLTNTMSA1LjM0IDEgN3YxNGgxMHYtNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NWgxMFY3YzAtMS42Ni0xLjM0LTMtMy0zem0wIDJjLjU1IDAgMSAuNDUgMSAxdjFoLTJWN2MwLS41NS40NS0xIDEtMXpNNCA2Yy41NSAwIDEgLjQ1IDEgMXYxSDNWN2MwLS41NS40NS0xIDEtMXpNMyAxOXYtOWgydjlIM3ptMTQgMGgtMnYtM2MwLTEuNjUtMS4zNS0zLTMtM3MtMyAxLjM1LTMgM3YzSDdWOS45Mmw1LTQuMjkgNSA0LjI5VjE5em0yIDB2LTloMnY5aC0yelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTBcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGFrZW91dERpbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTcuNzkgMTgtLjUxLTdoOS40NmwtLjUxIDdINy43OXpNOS44MyA1aDQuMzNsMi44IDIuNzNMMTYuODcgOUg3LjEybC0uMDktMS4yN0w5LjgzIDV6TTIyIDcuNDZsLTEuNDEtMS40MUwxOSA3LjYzbC4wMy0uNTZMMTQuOTggM0g5LjAyTDQuOTcgNy4wN2wuMDMuNS0xLjU5LTEuNTZMMiA3LjQ0bDMuMjMgMy4xMS43IDkuNDVoMTIuMTRsLjctOS40NEwyMiA3LjQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGF4aUFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI2LjVcIixcImN5XCI6XCIxNS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNS41XCIsXCJjeVwiOlwiMTUuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDEzdjVINHYtNWgxNGMtMS45MSAwLTMuNjMtLjc2LTQuODktMmgtOC4zbDEuMDQtM2g1LjQ0QzExLjEgNy4zNyAxMSA2LjcgMTEgNnMuMS0xLjM3LjI5LTJIOHYySDUuNWMtLjY2IDAtMS4yMS40Mi0xLjQyIDEuMDFMMiAxM3Y4YzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LThsLS4wOS0uMjdjLS42MS4xNy0xLjI1LjI3LTEuOTEuMjd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDFjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0uNSA4aC0xVjhoMXYxem0wLTJoLTFWM2gxdjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUZW1wbGVCdWRkaGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDkuMDJjMCAxLjA5LS44OSAxLjk4LTEuOTggMS45OEgxOFY4Ljg2YzEuNzItLjQ0IDMtMS45OSAzLTMuODRWNWwtMiAuMDJDMTkgNi4xMSAxOC4xMSA3IDE3LjAyIDdoLS41MkwxMiAxIDcuNSA3aC0uNTJDNS44OSA3IDUgNi4xMSA1IDUuMDJIM2MwIDEuODYgMS4yOCAzLjQgMyAzLjg0VjExSDQuOThDMy44OSAxMSAzIDEwLjExIDMgOS4wMkgxYzAgMS44NiAxLjI4IDMuNCAzIDMuODRWMjJoN3YtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NGg3di05LjE0YzEuNzItLjQ0IDMtMS45OSAzLTMuODRWOWwtMiAuMDJ6bS05LTQuNjlMMTQgN2gtNGwyLTIuNjd6TTggOWg4djJIOFY5em0xMCAxMWgtM3YtMmMwLTEuNjUtMS4zNS0zLTMtM3MtMyAxLjM1LTMgM3YySDZ2LTdoMTJ2N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRlbXBsZUhpbmR1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTF2MmgtMkwxNSAzVjFoLTJ2MmgtMi4wM1YxaC0ydjIuMTJMNiAxM0g0di0ySDJ2MTFoOXYtNWgydjVoOVYxMWgtMnptLTQuNjkgMEg4LjY5bC42LTJoNS40MmwuNiAyem0tMS4yLTRIOS44OWwuNi0yaDMuMDJsLjYgMnpNMjAgMjBoLTV2LTVIOXY1SDR2LTVoMy40OWwuNi0yaDcuODJsLjYgMkgyMHY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGVycmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQgNi00LjIyIDUuNjMgMS4yNSAxLjY3TDE0IDkuMzMgMTkgMTZoLTguNDZsLTQuMDEtNS4zN0wxIDE4aDIyTDE0IDZ6TTUgMTZsMS41Mi0yLjAzTDguMDQgMTZINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRoZWF0ZXJDb21lZHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuOTkgOWMtMS4zOCAwLTIuNS44NC0yLjUgMS44OGg1YzAtMS4wNC0xLjEyLTEuODgtMi41LTEuODh6TTEgMTZjMCAzLjMxIDIuNjkgNiA2IDZzNi0yLjY5IDYtNlY5SDF2N3ptMi01aDh2NWMwIDIuMjEtMS43OSA0LTQgNHMtNC0xLjc5LTQtNHYtNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgMnY1LjVoMlY0aDh2NWMwIDIuMjEtMS43OSA0LTQgNC0uOTUgMC0xLjgxLS4zNS0yLjUtLjl2Mi4zNWMuNzYuMzUgMS42MS41NSAyLjUuNTUgMy4zMSAwIDYtMi42OSA2LTZWMkgxMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI1XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTcuODhjMS4zOCAwIDIuNS0uODQgMi41LTEuODhoLTVjMCAxLjA0IDEuMTIgMS44OCAyLjUgMS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRpcmVSZXBhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA4YTEuMDAzIDEuMDAzIDAgMCAxLS43MS0xLjcxYy40LS40IDIuNDYtMS4wNCAyLjQ2LTEuMDRzLS42NCAyLjA2LTEuMDQgMi40NmMtLjE4LjE4LS40My4yOS0uNzEuMjl6bTEgNXY1YzAgMS42NS0xLjM1IDMtMyAzcy0zLTEuMzUtMy0zdi0yYzAtLjU1LS40NS0xLTEtMXMtMSAuNDUtMSAxdjNjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNWMwLTEuMS45LTIgMi0yaDZjMS4xIDAgMiAuOSAyIDJ2OC4xN0EzLjAwOSAzLjAwOSAwIDAgMSAxNiAxNnYyYzAgLjU1LjQ1IDEgMSAxczEtLjQ1IDEtMXYtNWgtMXYtMS40MmMtMS43Ny0uNzctMy0yLjUzLTMtNC41OCAwLTIuNzYgMi4yNC01IDUtNXM1IDIuMjQgNSA1YzAgMi4wNS0xLjIzIDMuODEtMyA0LjU4VjEzaC0xem0yLTZjMC0xLjY2LTEuMzQtMy0zLTNzLTMgMS4zNC0zIDMgMS4zNCAzIDMgMyAzLTEuMzQgMy0zek0xMCA3IDggOVY2LjE3TDkuMTcgNUg0LjgzTDYgNi4xN1Y5TDQgN3YyLjE3bDIgMlYxNGwtMi0ydjIuMTdsMiAyVjE5bC0yLTJ2Mmg2di0ybC0yIDJ2LTIuODNsMi0yVjEybC0yIDJ2LTIuODNsMi0yVjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFmZmljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxMGgtM1Y4Ljg2YzEuNzItLjQ1IDMtMiAzLTMuODZoLTNWNGMwLS41NS0uNDUtMS0xLTFIOGMtLjU1IDAtMSAuNDUtMSAxdjFINGMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYxMEg0YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjE1SDRjMCAxLjg2IDEuMjggMy40MSAzIDMuODZWMjBjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF2LTEuMTRjMS43Mi0uNDUgMy0yIDMtMy44NmgtM3YtMS4xNGMxLjcyLS40NSAzLTIgMy0zLjg2em0tNSA5SDlWNWg2djE0em0tMy0xYy44MyAwIDEuNS0uNjcgMS41LTEuNVMxMi44MyAxNSAxMiAxNXMtMS41LjY3LTEuNSAxLjUuNjcgMS41IDEuNSAxLjV6bTAtNC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41LTEuNS42Ny0xLjUgMS41LjY3IDEuNSAxLjUgMS41ek0xMiA5Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxMi44MyA2IDEyIDZzLTEuNS42Ny0xLjUgMS41UzExLjE3IDkgMTIgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCIxNC41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtNCAwLTggLjUtOCA0djkuNUM0IDE3LjQzIDUuNTcgMTkgNy41IDE5TDYgMjAuNXYuNWgybDItMmg0bDIgMmgydi0uNUwxNi41IDE5YzEuOTMgMCAzLjUtMS41NyAzLjUtMy41VjZjMC0zLjUtNC00LTgtNHptMCAyYzMuNTEgMCA0Ljk2LjQ4IDUuNTcgMUg2LjQzYy42MS0uNTIgMi4wNi0xIDUuNTctMXpNNiA3aDV2M0g2Vjd6bTEyIDguNWMwIC44My0uNjcgMS41LTEuNSAxLjVoLTljLS44MyAwLTEuNS0uNjctMS41LTEuNVYxMmgxMnYzLjV6bTAtNS41aC01VjdoNXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMgNSAuNzUtMS41SDE3VjJIN3YxLjVoNC43NUwxMSA1Yy0zLjEzLjA5LTYgLjczLTYgMy41VjE3YzAgMS41IDEuMTEgMi43MyAyLjU1IDIuOTVMNiAyMS41di41aDJsMi0yaDRsMiAyaDJ2LS41bC0xLjU1LTEuNTVoLS4wMS4wMUMxNy44OSAxOS43MyAxOSAxOC41IDE5IDE3VjguNWMwLTIuNzctMi44Ny0zLjQxLTYtMy41em0tMS45NyAyaDEuOTRjMi43NS4wOCAzLjYyLjU4IDMuOSAxSDcuMTNjLjI4LS40MiAxLjE1LS45MiAzLjktMXptLS4xOCAxMC45NUg3Ljc0QS45NzQuOTc0IDAgMCAxIDcgMTd2LTFoMy44OWMtLjI0LjI3LS4zOS42MS0uMzkgMSAwIC4zNi4xMy42OS4zNS45NXpNMTcgMTdjMCAuNDUtLjMuODQtLjc0Ljk1aC0zLjExYy4yMi0uMjYuMzUtLjU5LjM1LS45NSAwLS4zOS0uMTUtLjczLS4zOS0xSDE3djF6bTAtM0g3di00aDEwdjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFuc2ZlcldpdGhpbkFTdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi40OSAxNS41di0xLjc1TDE0IDE2LjI1bDIuNDkgMi41VjE3SDIydi0xLjVoLTUuNTF6bTMuMDIgNC4yNUgxNHYxLjVoNS41MVYyM0wyMiAyMC41IDE5LjUxIDE4djEuNzV6TTkuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyek01Ljc1IDguOSAzIDIzaDIuMWwxLjc1LThMOSAxN3Y2aDJ2LTcuNTVMOC45NSAxMy40bC42LTNDMTAuODUgMTIgMTIuOCAxMyAxNSAxM3YtMmMtMS44NSAwLTMuNDUtMS00LjM1LTIuNDVsLS45NS0xLjZDOS4zNSA2LjM1IDguNyA2IDggNmMtLjI1IDAtLjUuMDUtLjc1LjE1TDIgOC4zVjEzaDJWOS42NWwxLjc1LS43NVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHJhbnNpdEVudGVyZXhpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMThINlY4aDN2NC43N0wxNS45OCA2IDE4IDguMDMgMTEuMTUgMTVIMTZ2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRyaXBPcmlnaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMTJDMiA2LjQ4IDYuNDggMiAxMiAyczEwIDQuNDggMTAgMTAtNC40OCAxMC0xMCAxMFMyIDE3LjUyIDIgMTJ6bTEwIDZjMy4zMSAwIDYtMi42OSA2LTZzLTIuNjktNi02LTYtNiAyLjY5LTYgNiAyLjY5IDYgNiA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVybkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm02LjgzIDExIDEuNTkgMS41OUw3IDE0bC00LTQgNC00IDEuNDEgMS40MUw2LjgzIDlIMTVjMS4xIDAgMiAuOSAyIDJ2OWgtMnYtOUg2LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVyblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTcuMTcgMTEtMS41OSAxLjU5TDE3IDE0bDQtNC00LTQtMS40MSAxLjQxTDE3LjE3IDlIOWMtMS4xIDAtMiAuOS0yIDJ2OWgydi05aDguMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuU2hhcnBMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2LjgzIDQuNDEgOC40MSAzIDdsNC00IDQgNC0xLjQxIDEuNDFMOCA2LjgzVjEzaDhjMS4xIDAgMiAuOSAyIDJ2NmgtMnYtNkg4Yy0xLjEgMC0yLS45LTItMlY2LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHVyblNoYXJwUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOCA2LjgzIDEuNTkgMS41OUwyMSA3bC00LTQtNCA0IDEuNDEgMS40MUwxNiA2LjgzVjEzSDhjLTEuMSAwLTIgLjktMiAydjZoMnYtNmg4YzEuMSAwIDItLjkgMi0yVjYuODN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUdXJuU2xpZ2h0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjY2IDZWNEg2djUuNjZoMlY3LjQxbDUgNVYyMGgydi03LjU4YzAtLjUzLS4yMS0xLjA0LS41OS0xLjQxbC01LTVoMi4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVR1cm5TbGlnaHRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjM0IDZWNEgxOHY1LjY2aC0yVjcuNDFsLTUgNVYyMEg5di03LjU4YzAtLjUzLjIxLTEuMDQuNTktMS40MWw1LTVoLTIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUd29XaGVlbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNC4xNyAxMUg0aC4xN205LjI0LTZIOXYyaDMuNTlsMiAySDExbC00IDItMi0ySDB2Mmg0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRsMiAyaDNsMy40OS02LjEgMS4wMSAxLjAxYy0uOTEuNzMtMS41IDEuODQtMS41IDMuMDkgMCAyLjIxIDEuNzkgNCA0IDRzNC0xLjc5IDQtNC0xLjc5LTQtNC00Yy0uMTggMC0uMzYuMDMtLjUzLjA1TDE3LjQxIDlIMjBWNmwtMy43MiAxLjg2TDEzLjQxIDV6TTIwIDE3Yy0xLjEgMC0yLS45LTItMnMuOS0yIDItMiAyIC45IDIgMi0uOSAyLTIgMnpNNCAxN2MtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVVHVybkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5djEyaC0yVjljMC0yLjIxLTEuNzktNC00LTRTOCA2Ljc5IDggOXY0LjE3bDEuNTktMS41OUwxMSAxM2wtNCA0LTQtNCAxLjQxLTEuNDFMNiAxMy4xN1Y5YzAtMy4zMSAyLjY5LTYgNi02czYgMi42OSA2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVVHVyblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA5djEyaDJWOWMwLTIuMjEgMS43OS00IDQtNHM0IDEuNzkgNCA0djQuMTdsLTEuNTktMS41OUwxMyAxM2w0IDQgNC00LTEuNDEtMS40MUwxOCAxMy4xN1Y5YzAtMy4zMS0yLjY5LTYtNi02UzYgNS42OSA2IDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWb2x1bnRlZXJBY3RpdmlzbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEzYzMuMDktMi44MSA2LTUuNDQgNi03LjdDMjIgMy40NSAyMC41NSAyIDE4LjcgMmMtMS4wNCAwLTIuMDUuNDktMi43IDEuMjVDMTUuMzQgMi40OSAxNC4zNCAyIDEzLjMgMiAxMS40NSAyIDEwIDMuNDUgMTAgNS4zYzAgMi4yNiAyLjkxIDQuODkgNiA3Ljd6bS0yLjctOWMuNDQgMCAuODkuMjEgMS4xOC41NUwxNiA2LjM0bDEuNTItMS43OWMuMjktLjM0Ljc0LS41NSAxLjE4LS41NS43NCAwIDEuMy41NiAxLjMgMS4zIDAgMS4xMi0yLjA0IDMuMTctNCA0Ljk5LTEuOTYtMS44Mi00LTMuODgtNC00Ljk5IDAtLjc0LjU2LTEuMyAxLjMtMS4zek0xOSAxNmgtMmMwLTEuMi0uNzUtMi4yOC0xLjg3LTIuN0w4Ljk3IDExSDF2MTFoNnYtMS40NGw3IDEuOTQgOC0yLjV2LTFjMC0xLjY2LTEuMzQtMy0zLTN6TTMgMjB2LTdoMnY3SDN6bTEwLjk3LjQxTDcgMTguNDhWMTNoMS42MWw1LjgyIDIuMTdjLjM0LjEzLjU3LjQ2LjU3LjgzIDAgMC0xLjk5LS4wNS0yLjMtLjE1bC0yLjM4LS43OS0uNjMgMS45IDIuMzguNzljLjUxLjE3IDEuMDQuMjYgMS41OC4yNkgxOWMuMzkgMCAuNzQuMjMuOS41NmwtNS45MyAxLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2FyZWhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOC4zNVYxOWgtMnYtOEg2djhINFY4LjM1bDgtMy4yIDggMy4yek0yMiAyMVY3TDEyIDMgMiA3djE0aDZ2LThoOHY4aDZ6bS0xMS0ySDl2Mmgydi0yem0yLTNoLTJ2Mmgydi0yem0yIDNoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2luZUJhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgM3Y2YzAgMi45NyAyLjE2IDUuNDMgNSA1LjkxVjE5SDh2Mmg4di0yaC0zdi00LjA5YzIuODQtLjQ4IDUtMi45NCA1LTUuOTFWM0g2em02IDEwYy0xLjg2IDAtMy40MS0xLjI4LTMuODYtM2g3LjcyYy0uNDUgMS43Mi0yIDMtMy44NiAzem00LTVIOFY1aDh2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdyb25nTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMXYuMmMwIDIuMzQtMS45NSA1LjQ0LTYgOS4xNC00LjA1LTMuNy02LTYuNzktNi05LjE0QzYgNy41NyA4LjY1IDUgMTIgNWMuMzQgMCAuNjguMDMgMSAuMDhWMy4wNmMtLjMzLS4wNC0uNjYtLjA2LTEtLjA2LTQuMiAwLTggMy4yMi04IDguMiAwIDMuMzIgMi42NyA3LjI1IDggMTEuOCA1LjMzLTQuNTUgOC04LjQ4IDgtMTEuOFYxMWgtMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjExXCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyLjU0IDIuODgtMS40Mi0xLjQyTDE5IDMuNTlsLTIuMTItMi4xMy0xLjQyIDEuNDJMMTcuNTkgNWwtMi4xMyAyLjEyIDEuNDIgMS40MkwxOSA2LjQxbDIuMTIgMi4xMyAxLjQyLTEuNDJMMjAuNDEgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVpvb21Jbk1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgOVYzSDd2Mi41OUwzLjkxIDIuNSAyLjUgMy45MSA1LjU5IDdIM3YyaDZ6bTEyIDBWN2gtMi41OWwzLjA5LTMuMDktMS40MS0xLjQxTDE3IDUuNTlWM2gtMnY2aDZ6TTMgMTV2MmgyLjU5TDIuNSAyMC4wOWwxLjQxIDEuNDFMNyAxOC40MVYyMWgydi02SDN6bTEyIDB2Nmgydi0yLjU5bDMuMDkgMy4wOSAxLjQxLTEuNDFMMTguNDEgMTdIMjF2LTJoLTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVab29tT3V0TWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNSAzIDIuMyAyLjMtMi44OSAyLjg3IDEuNDIgMS40MkwxOC43IDYuNyAyMSA5VjNoLTZ6TTMgOWwyLjMtMi4zIDIuODcgMi44OSAxLjQyLTEuNDJMNi43IDUuMyA5IDNIM3Y2em02IDEyLTIuMy0yLjMgMi44OS0yLjg3LTEuNDItMS40Mkw1LjMgMTcuMyAzIDE1djZoNnptMTItNi0yLjMgMi4zLTIuODctMi44OS0xLjQyIDEuNDIgMi44OSAyLjg3TDE1IDIxaDZ2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRIb21lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0SDV2NUgzdi02Ljk3bDUtMy41NyA1IDMuNTd2MS4wOGMuNTctLjU5IDEuMjUtMS4wNyAyLTEuNDJWMTFMOCA2bC03IDV2MTBoNnYtNWgydjVoMi42OGMtLjQzLS45MS0uNjgtMS45Mi0uNjgtM3YtNHpNMTcgN2gydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzIDEzLjExVjNIMTB2MS45N2wyIDEuNDNWNWg5djYuNjhjLjc1LjM2IDEuNDMuODQgMiAxLjQzek0yMyAxOGMwLTIuNzYtMi4yNC01LTUtNXMtNSAyLjI0LTUgNSAyLjI0IDUgNSA1IDUtMi4yNCA1LTV6bS01LjUgM3YtMi41SDE1di0xaDIuNVYxNWgxdjIuNUgyMXYxaC0yLjVWMjFoLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcHBTZXR0aW5nc0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTcgMjBoMTB2MUg3ek03IDNoMTB2MUg3elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMS44MSAxMi43NC0uODItLjYzdi0uMjJsLjgtLjYzYy4xNi0uMTIuMi0uMzQuMS0uNTFsLS44NS0xLjQ4YS4zOTUuMzk1IDAgMCAwLS4zNS0uMmMtLjA1IDAtLjEuMDEtLjE1LjAzbC0uOTUuMzhjLS4wOC0uMDUtLjExLS4wNy0uMTktLjExbC0uMTUtMS4wMWEuNDA4LjQwOCAwIDAgMC0uNC0uMzZoLTEuNzFjLS4yIDAtLjM3LjE1LS40LjM0bC0uMTQgMS4wMWMtLjAzLjAyLS4wNy4wMy0uMS4wNWwtLjA5LjA2LS45NS0uMzhhLjQwMS40MDEgMCAwIDAtLjUuMTdsLS44NSAxLjQ4Yy0uMS4xNy0uMDYuMzkuMS41MWwuOC42M3YuMjNsLS44LjYzYS4zOS4zOSAwIDAgMC0uMS41MWwuODUgMS40OGMuMDcuMTMuMjEuMi4zNS4yLjA1IDAgLjEtLjAxLjE1LS4wM2wuOTUtLjM3Yy4wOC4wNS4xMi4wNy4yLjExbC4xNSAxLjAxYy4wMy4yLjIuMzQuNC4zNGgxLjcxYy4yIDAgLjM3LS4xNS40LS4zNGwuMTUtMS4wMWMuMDMtLjAyLjA3LS4wMy4xLS4wNWwuMDktLjA2Ljk1LjM4YS40MDEuNDAxIDAgMCAwIC41LS4xN2wuODUtMS40OGEuMzkuMzkgMCAwIDAtLjEtLjUxek0xOCAxMy41Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVzLjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXpNMTcgMThIN1Y2aDEwdjFoMlYzYzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2MXpNNyAzaDEwdjFIN1Yzem0xMCAxOEg3di0xaDEwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcHBzT3V0YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCA4aDRWNEg0djR6bTYgMTJoNHYtNGgtNHY0em0tNiAwaDR2LTRINHY0em0wLTZoNHYtNEg0djR6bTYgMGg0di00aC00djR6bTYgNmg0di00aC00djR6bTMtMjBjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0uNSA4aC0xVjdoMXYxem0wLTJoLTFWMmgxdjR6TTE2IDE0aDR2LTIuMDdjLS4zMy4wNS0uNjYuMDctMSAuMDctMS4wNyAwLTIuMDktLjI0LTMtLjY4VjE0ek0xMCA0djRoMi42OGMtLjQ0LS45MS0uNjgtMS45My0uNjgtMyAwLS4zNC4wMi0uNjcuMDctMUgxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFwcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQgOGg0VjRINHY0em02IDEyaDR2LTRoLTR2NHptLTYgMGg0di00SDR2NHptMC02aDR2LTRINHY0em02IDBoNHYtNGgtNHY0em02LTEwdjRoNFY0aC00em0tNiA0aDRWNGgtNHY0em02IDZoNHYtNGgtNHY0em0wIDZoNHYtNGgtNHY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dCYWNrSW9zTmV3IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNzcgMy43NyAxNiAyIDYgMTJsMTAgMTAgMS43Ny0xLjc3TDkuNTQgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0JhY2tJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNTEgMy44NyAxNS43MyAyLjEgNS44NCAxMmw5LjkgOS45IDEuNzctMS43N0w5LjM4IDEybDguMTMtOC4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93QmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTFINy44M2w1LjU5LTUuNTlMMTIgNGwtOCA4IDggOCAxLjQxLTEuNDFMNy44MyAxM0gyMHYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93RG93bndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwIDEyLTEuNDEtMS40MUwxMyAxNi4xN1Y0aC0ydjEyLjE3bC01LjU4LTUuNTlMNCAxMmw4IDggOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dEcm9wRG93bkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNGM0LjQxIDAgOCAzLjU5IDggOHMtMy41OSA4LTggOC04LTMuNTktOC04IDMuNTktOCA4LThtMC0yQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDEzLTQtNGg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dEcm9wRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyAxMCA1IDUgNS01SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0Ryb3BVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNyAxNCA1LTUgNSA1SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd0ZvcndhcmRJb3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuMjMgMjAuMjMgOCAyMmwxMC0xMEw4IDIgNi4yMyAzLjc3IDE0LjQ2IDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiA0LTEuNDEgMS40MUwxNi4xNyAxMUg0djJoMTIuMTdsLTUuNTggNS41OUwxMiAyMGw4LTgtOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXJyb3dMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAwdjI0SDBWMGgyNHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA3LTUgNSA1IDVWN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDE3IDUtNS01LTV2MTB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcnJvd1Vwd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtNCAxMiAxLjQxIDEuNDFMMTEgNy44M1YyMGgyVjcuODNsNS41OCA1LjU5TDIwIDEybC04LTgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXNzaXN0YW50RGlyZWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxQzUuOSAxIDEgNS45IDEgMTJzNC45IDExIDExIDExIDExLTQuOSAxMS0xMVMxOC4xIDEgMTIgMXptMCAyMGMtNC45OSAwLTktNC4wMS05LTlzNC4wMS05IDktOSA5IDQuMDEgOSA5LTQuMDEgOS05IDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5LjczIDExLjQyIDEyLjU0IDQuMmMtLjM2LS4yNy0uOC0uMjctMS4xNSAwTDQuMiAxMS40MmMtLjI3LjM2LS4yNy44IDAgMS4xNmw3LjE5IDcuMjJjLjM2LjI3LjguMjcgMS4xNSAwbDcuMTktNy4yMmMuMzYtLjM2LjM2LS44OSAwLTEuMTZ6TTEzLjUgMTQuNWwtMS40MS0xLjQxTDEzLjE3IDEySDEwdjNIOHYtNGMwLS42LjQtMSAxLTFoNC4xN2wtMS4wOS0xLjA5TDEzLjUgNy41IDE3IDExbC0zLjUgMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtcGFpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMXYyaDR2LTJoLTR6TTE2IDE3LjYxYy45Ni43MSAyLjIxIDEuNjUgMy4yIDIuMzkuNC0uNTMuOC0xLjA3IDEuMi0xLjYtLjk5LS43NC0yLjI0LTEuNjgtMy4yLTIuNC0uNC41NC0uOCAxLjA4LTEuMiAxLjYxek0yMC40IDUuNmMtLjQtLjUzLS44LTEuMDctMS4yLTEuNi0uOTkuNzQtMi4yNCAxLjY4LTMuMiAyLjQuNC41My44IDEuMDcgMS4yIDEuNi45Ni0uNzIgMi4yMS0xLjY1IDMuMi0yLjR6TTQgOWMtMS4xIDAtMiAuOS0yIDJ2MmMwIDEuMS45IDIgMiAyaDF2NGgydi00aDFsNSAzVjZMOCA5SDR6bTUuMDMgMS43MUwxMSA5LjUzdjQuOTRsLTEuOTctMS4xOC0uNDgtLjI5SDR2LTJoNC41NWwuNDgtLjI5ek0xNS41IDEyYzAtMS4zMy0uNTgtMi41My0xLjUtMy4zNXY2LjY5Yy45Mi0uODEgMS41LTIuMDEgMS41LTMuMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW5jZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMuNTktMTNMMTIgMTAuNTkgOC40MSA3IDcgOC40MSAxMC41OSAxMiA3IDE1LjU5IDguNDEgMTcgMTIgMTMuNDEgMTUuNTkgMTcgMTcgMTUuNTkgMTMuNDEgMTIgMTcgOC40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE2LjE3IDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MUw5IDE2LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjQxIDcuNDEgMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJsNC41OC00LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hldnJvblJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2IDguNTkgNy40MSAxMy4xNyAxMmwtNC41OCA0LjU5TDEwIDE4bDYtNi02LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDbG9zZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNi40MSAxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyIDE5IDYuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb3VibGVBcnJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjUgNUgxMWw1IDctNSA3aDQuNWw1LTd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSA1SDRsNSA3LTUgN2g0LjVsNS03elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1IDUtMS40MSAxLjQxTDE4LjE3IDExSDJ2MmgxNi4xN2wtNC41OSA0LjU5TDE1IDE5bDctNy03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFeHBhbmRDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuMDggOS41OSAxMiAxMi42NyA4LjkyIDkuNTkgNy41IDExbDQuNSA0LjUgNC41LTQuNS0xLjQyLTEuNDF6TTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwYW5kTGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgOC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNGwtNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXhwYW5kTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0djI0elwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjU5IDguNTkgMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNi0xLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXJzdFBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTI0IDB2MjRIMFYwaDI0elwiLFwib3BhY2l0eVwiOlwiLjg3XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjQxIDE2LjU5IDEzLjgyIDEybDQuNTktNC41OUwxNyA2bC02IDYgNiA2IDEuNDEtMS40MXpNNiA2aDJ2MTJINlY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRnVsbHNjcmVlbkV4aXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUgMTZoM3YzaDJ2LTVINXYyem0zLThINXYyaDVWNUg4djN6bTYgMTFoMnYtM2gzdi0yaC01djV6bTItMTFWNWgtMnY1aDVWOGgtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZ1bGxzY3JlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTRINXY1aDV2LTJIN3YtM3ptLTItNGgyVjdoM1Y1SDV2NXptMTIgN2gtM3YyaDV2LTVoLTJ2M3pNMTQgNXYyaDN2M2gyVjVoLTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb21lV29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEgMTF2MTBoNnYtNWgydjVoNlYxMUw4IDZsLTcgNXptMTIgOGgtMnYtNUg1djVIM3YtNi45N2w1LTMuNTcgNSAzLjU3VjE5ek0xNyA3aDJ2MmgtMnpNMTcgMTFoMnYyaC0yek0xNyAxNWgydjJoLTJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDN2MS45N2wyIDEuNDNWNWg5djE0aC00djJoNlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGFzdFBhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41OSA3LjQxIDEwLjE4IDEybC00LjU5IDQuNTlMNyAxOGw2LTYtNi02LTEuNDEgMS40MXpNMTYgNmgydjEyaC0yVjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMZWdlbmRUb2dnbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNUg0di0yaDE2djJ6bTAgMkg0djJoMTZ2LTJ6bS01LTYgNS0zLjU1VjVsLTUgMy41NUwxMCA1IDQgOC42NlYxMWw1LjkyLTMuNjFMMTUgMTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYXBzSG9tZVdvcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDdoMnYyaC0yek0xNyAxMWgydjJoLTJ6TTE3IDE1aDJ2MmgtMnpNMSAxMXYxMGg2di01aDJ2NWg2VjExTDggNmwtNyA1em0xMiA4aC0ydi01SDV2NUgzdi03bDUtMy41IDUgMy41djd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDN2MS45N2wyIDEuNDNWNWg5djE0aC00djJoNlYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVudU9wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMgMThoMTN2LTJIM3Yyem0wLTVoMTB2LTJIM3Yyem0wLTd2MmgxM1Y2SDN6bTE4IDkuNTlMMTcuNDIgMTIgMjEgOC40MSAxOS41OSA3bC01IDUgNSA1TDIxIDE1LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWVudSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAxOGgxOHYtMkgzdjJ6bTAtNWgxOHYtMkgzdjJ6bTAtN3YyaDE4VjZIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vcmVIb3JpeiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bTEyIDBjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0tNiAwYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1vcmVWZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA4YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMCAyYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMCA2Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vcnRoRWFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgNXYyaDYuNTlMNCAxOC41OSA1LjQxIDIwIDE3IDguNDFWMTVoMlY1SDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3J0aFdlc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDE1aDJWOC40MUwxOC41OSAyMCAyMCAxOC41OSA4LjQxIDdIMTVWNUg1djEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9ydGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm01IDkgMS40MSAxLjQxTDExIDUuODNWMjJoMlY1LjgzbDQuNTkgNC41OUwxOSA5bC03LTctNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lT2ZmbGluZVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02IDVINHYxNmMwIDEuMS45IDIgMiAyaDEwdi0ySDZWNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMWgtOGMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjNjMC0xLjEtLjktMi0yLTJ6bTAgMTZoLTh2LTFoOHYxem0wLTNoLThWNmg4djh6bTAtMTBoLThWM2g4djF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTAuMjVoMS42M2wtLjY5LjY5TDE0LjUgMTIgMTcgOS41IDE0LjUgN2wtMS4wNiAxLjA2LjY5LjY5SDEyYy0uNTUgMC0xIC40NS0xIDFWMTJoMS41di0xLjc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGF5bWVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxNFY2YzAtMS4xLS45LTItMi0ySDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnptLTIgMEgzVjZoMTR2OHptLTctN2MtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTEzIDB2MTFjMCAxLjEtLjkgMi0yIDJINHYtMmgxN1Y3aDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaXZvdFRhYmxlQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDVjMC0xLjEtLjktMi0yLTJoLTl2NWgxMVY1ek0zIDE5YzAgMS4xLjkgMiAyIDJoM1YxMEgzdjl6TTMgNXYzaDVWM0g1Yy0xLjEgMC0yIC45LTIgMnptMTUgMy45OUwxNCAxM2wxLjQxIDEuNDEgMS41OS0xLjZWMTVjMCAxLjEtLjkgMi0yIDJoLTIuMTdsMS41OS0xLjU5TDEzIDE0bC00IDQgNCA0IDEuNDEtMS40MUwxMi44MyAxOUgxNWMyLjIxIDAgNC0xLjc5IDQtNHYtMi4xOGwxLjU5IDEuNkwyMiAxM2wtNC00LjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVmcmVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuNjUgNi4zNUE3Ljk1OCA3Ljk1OCAwIDAgMCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4QTUuOTkgNS45OSAwIDAgMSAxMiAxOGMtMy4zMSAwLTYtMi42OS02LTZzMi42OS02IDYtNmMxLjY2IDAgMy4xNC42OSA0LjIyIDEuNzhMMTMgMTFoN1Y0bC0yLjM1IDIuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTb3V0aEVhc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA5aC0ydjYuNTlMNS40MSA0IDQgNS40MSAxNS41OSAxN0g5djJoMTBWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvdXRoV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDE5di0ySDguNDFMMjAgNS40MSAxOC41OSA0IDcgMTUuNTlWOUg1djEwaDEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU291dGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOSAxNS0xLjQxLTEuNDFMMTMgMTguMTdWMmgtMnYxNi4xN2wtNC41OS00LjU5TDUgMTVsNyA3IDctN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1YmRpcmVjdG9yeUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTEgOSAxLjQyIDEuNDJMOC44MyAxNEgxOFY0aDJ2MTJIOC44M2wzLjU5IDMuNThMMTEgMjFsLTYtNiA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdWJkaXJlY3RvcnlBcnJvd1JpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAyNEgwVjBoMjR2MjR6XCIsXCJvcGFjaXR5XCI6XCIuODdcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTkgMTUtNiA2LTEuNDItMS40MkwxNS4xNyAxNkg0VjRoMnYxMGg5LjE3bC0zLjU5LTMuNThMMTMgOWw2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC41IDguNjJ2Ni43Nkw1LjEyIDEyIDguNSA4LjYyTTEwIDVsLTcgNyA3IDdWNXptNCAwdjE0bDctNy03LTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTd2l0Y2hSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMjQgMjRIMFYwaDI0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNS41IDE1LjM4VjguNjJMMTguODggMTJsLTMuMzggMy4zOE0xNCAxOWw3LTctNy03djE0em0tNCAwVjVsLTcgNyA3IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVVbmZvbGRMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0yNCAwdjI0SDBWMGgyNHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjQxIDE4LjU5IDguODMgMjAgMTIgMTYuODMgMTUuMTcgMjBsMS40MS0xLjQxTDEyIDE0bC00LjU5IDQuNTl6bTkuMTgtMTMuMThMMTUuMTcgNCAxMiA3LjE3IDguODMgNCA3LjQxIDUuNDEgMTIgMTBsNC41OS00LjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW5mb2xkTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNS44MyAxNS4xNyA5bDEuNDEtMS40MUwxMiAzIDcuNDEgNy41OSA4LjgzIDkgMTIgNS44M3ptMCAxMi4zNEw4LjgzIDE1bC0xLjQxIDEuNDFMMTIgMjFsNC41OS00LjU5TDE1LjE3IDE1IDEyIDE4LjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0ZXJmYWxsQ2hhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDRoM3YxNmgtM1Y0ek0zIDEzaDN2N0gzdi03em0xMS05aDN2M2gtM1Y0em0tNCAxaDN2NGgtM1Y1em0tMyA1aDN2NEg3di00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2VzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTkgMTkgMS40MS0xLjQxTDUuODMgMTNIMjJ2LTJINS44M2w0LjU5LTQuNTlMOSA1bC03IDcgNyA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWNjb3VudFRyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzaDd6TTcgOUg0VjVoM3Y0em0xMCA2aDN2NGgtM3YtNHptMC0xMGgzdjRoLTNWNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFkYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxNmMwIDMuODcgMy4xMyA3IDcgN3M3LTMuMTMgNy03di00SDV2NHpNMTYuMTIgNC4zN2wyLjEtMi4xLS44Mi0uODMtMi4zIDIuMzFDMTQuMTYgMy4yOCAxMy4xMiAzIDEyIDNzLTIuMTYuMjgtMy4wOS43NUw2LjYgMS40NGwtLjgyLjgzIDIuMSAyLjFDNi4xNCA1LjY0IDUgNy42OCA1IDEwdjFoMTR2LTFjMC0yLjMyLTEuMTQtNC4zNi0yLjg4LTUuNjN6TTkgOWMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem02IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVTZWF0RmxhdEFuZ2xlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiA2LjVjLjMxIDAgLjcuMTUuOS41Ni4yNC41LjAyIDEuMS0uNDcgMS4zNGEuOTc5Ljk3OSAwIDAgMS0xLjMyLS40Ni45ODYuOTg2IDAgMCAxIC40Ni0xLjM0Yy4xNC0uMDYuMjgtLjEuNDMtLjFtNi40NyAyLjExIDYuNjkgMi40MWMuNTIuMTkuOTMuNTYgMS4xNSAxLjA1LjIyLjQ4LjI1IDEuMDMuMDYgMS41M2wtLjAxLjAyLTguNTktMy4xMS43LTEuOU0xMCAxNS4xOWw0IDEuNDRWMTdoLTR2LTEuODFNNiA0LjVjLS40NCAwLS44OC4xLTEuMy4zYTIuOTkgMi45OSAwIDAgMC0xLjQgNCAyLjk4OCAyLjk4OCAwIDAgMCA0IDEuNCAzLjAxIDMuMDEgMCAwIDAgMS40MS00QTMuMDEzIDMuMDEzIDAgMCAwIDYgNC41em01LjI4IDEuNTVMOS4yIDExLjcxbDEyLjM2IDQuNDcuNjktMS44OWE0IDQgMCAwIDAtMi40MS01LjE1bC04LjU2LTMuMDl6bS05LjA5IDQuMi0uNjkgMS44OUw4IDE0LjQ4VjE5aDh2LTEuNjNMMjAuNTIgMTlsLjY5LTEuODktMTkuMDItNi44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVTZWF0RmxhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNSAxM2EzIDMgMCAwIDAgMi4xLTUuMTRDNi41MSA3LjI5IDUuNzUgNyA1IDdhMyAzIDAgMCAwLTIuMSA1LjE0Yy41OS41NyAxLjM1Ljg2IDIuMS44NnptLS43MS0zLjdhMSAxIDAgMCAxIDEuNDEtLjAyYy40LjM5LjQgMS4wMS4wMiAxLjQxLS4yLjItLjQ1LjMxLS43Mi4zMS0uMjYgMC0uNTEtLjEtLjctLjI4LS40LS40LS40LTEuMDItLjAxLTEuNDJ6TTE4IDdIOXY2aDEzdi0yYzAtMi4yMS0xLjc5LTQtNC00em0tNyA0VjloN2MxLjEgMCAyIC45IDIgMmgtOXptLTkgNWg2djJoOHYtMmg2di0ySDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJsaW5lU2VhdEluZGl2aWR1YWxTdWl0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNGMxLjY2IDAgMy0xLjM0IDMtM1M4LjY2IDggNyA4cy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0xMi0zaC04djhIM1Y3SDF2MTBoMjJ2LTZjMC0yLjIxLTEuNzktNC00LTR6bTIgOGgtOFY5aDZjMS4xIDAgMiAuOSAyIDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFpcmxpbmVTZWF0TGVncm9vbUV4dHJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEyVjNIMnY5YzAgMi43NiAyLjI0IDUgNSA1aDZ2LTJIN2MtMS42NiAwLTMtMS4zNC0zLTN6bTE4LjgzIDUuMjRjLS4zOC0uNzItMS4yOS0uOTctMi4wMy0uNjNsLTEuMDkuNS0zLjQxLTYuOThBMi4wMTkgMi4wMTkgMCAwIDAgMTQuNTEgOUgxMVYzSDV2OGMwIDEuNjYgMS4zNCAzIDMgM2g3bDMuNDEgNyAzLjcyLTEuN2MuNzctLjM2IDEuMS0xLjMuNy0yLjA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRMZWdyb29tTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDEyVjNIM3Y5YzAgMi43NiAyLjI0IDUgNSA1aDZ2LTJIOGMtMS42NiAwLTMtMS4zNC0zLTN6bTE1LjUgNkgxOXYtN2MwLTEuMS0uOS0yLTItMmgtNVYzSDZ2OGMwIDEuNjUgMS4zNSAzIDMgM2g3djdoNC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRMZWdyb29tUmVkdWNlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTcgMTkuMmMuMTguOTYtLjU1IDEuOC0xLjQ3IDEuOEgxNHYtM2wxLTRIOWMtMS42NSAwLTMtMS4zNS0zLTNWM2g2djZoNWMxLjEgMCAyIC45IDIgMmwtMiA3aDEuNDRjLjczIDAgMS4zOS40OSAxLjUzIDEuMnpNNSAxMlYzSDN2OWMwIDIuNzYgMi4yNCA1IDUgNWg0di0ySDhjLTEuNjYgMC0zLTEuMzQtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRSZWNsaW5lRXh0cmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuMzUgNS42NGMtLjktLjY0LTEuMTItMS44OC0uNDktMi43OS42My0uOSAxLjg4LTEuMTIgMi43OS0uNDkuOS42NCAxLjEyIDEuODguNDkgMi43OS0uNjQuOS0xLjg4IDEuMTItMi43OS40OXpNMTYgMTlIOC45M2MtMS40OCAwLTIuNzQtMS4wOC0yLjk2LTIuNTRMNCA3SDJsMS45OSA5Ljc2QTUuMDEgNS4wMSAwIDAgMCA4Ljk0IDIxSDE2di0yem0uMjMtNGgtNC44OGwtMS4wMy00LjFjMS41OC44OSAzLjI4IDEuNTQgNS4xNSAxLjIyVjkuOTljLTEuNjMuMzEtMy40NC0uMjctNC42OS0xLjI1TDkuMTQgNy40N2MtLjIzLS4xOC0uNDktLjMtLjc2LS4zOGEyLjIxIDIuMjEgMCAwIDAtLjk5LS4wNmgtLjAyYTIuMjY4IDIuMjY4IDAgMCAwLTEuODQgMi42MWwxLjM1IDUuOTJBMy4wMDggMy4wMDggMCAwIDAgOS44MyAxOGg2Ljg1bDMuODIgMyAxLjUtMS41LTUuNzctNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWlybGluZVNlYXRSZWNsaW5lTm9ybWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjU5IDUuNDFjLS43OC0uNzgtLjc4LTIuMDUgMC0yLjgzczIuMDUtLjc4IDIuODMgMCAuNzggMi4wNSAwIDIuODNjLS43OS43OS0yLjA1Ljc5LTIuODMgMHpNNiAxNlY3SDR2OWMwIDIuNzYgMi4yNCA1IDUgNWg2di0ySDljLTEuNjYgMC0zLTEuMzQtMy0zem0xNCA0LjA3TDE0LjkzIDE1SDExLjV2LTMuNjhjMS40IDEuMTUgMy42IDIuMTYgNS41IDIuMTZ2LTIuMTZjLTEuNjYuMDItMy42MS0uODctNC42Ny0yLjA0bC0xLjQtMS41NWMtLjE5LS4yMS0uNDMtLjM4LS42OS0uNS0uMjktLjE0LS42Mi0uMjMtLjk2LS4yM2gtLjAzQzguMDEgNyA3IDguMDEgNyA5LjI1VjE1YzAgMS42NiAxLjM0IDMgMyAzaDUuMDdsMy41IDMuNUwyMCAyMC4wN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsdWV0b290aEF1ZGlvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4yNCAxMi4wMSAyLjMyIDIuMzJjLjI4LS43Mi40NC0xLjUxLjQ0LTIuMzNzLS4xNi0xLjU5LS40My0yLjMxbC0yLjMzIDIuMzJ6bTUuMjktNS4zLTEuMjYgMS4yNmMuNjMgMS4yMS45OCAyLjU3Ljk4IDQuMDJzLS4zNiAyLjgyLS45OCA0LjAybDEuMiAxLjJhOS45MzYgOS45MzYgMCAwIDAgMS41NC01LjMxYy0uMDEtMS44OS0uNTUtMy42Ny0xLjQ4LTUuMTl6bS0zLjgyIDFMMTAgMkg5djcuNTlMNC40MSA1IDMgNi40MSA4LjU5IDEyIDMgMTcuNTkgNC40MSAxOSA5IDE0LjQxVjIyaDFsNS43MS01LjcxLTQuMy00LjI5IDQuMy00LjI5ek0xMSA1LjgzbDEuODggMS44OEwxMSA5LjU5VjUuODN6bTEuODggMTAuNDZMMTEgMTguMTd2LTMuNzZsMS44OCAxLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29uZmlybWF0aW9uTnVtYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBWNmEyIDIgMCAwIDAtMi0ySDRjLTEuMSAwLTEuOTkuODktMS45OSAydjRjMS4xIDAgMS45OS45IDEuOTkgMnMtLjg5IDItMiAydjRjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMnYtNGMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJ6bS0yLTEuNDZjLTEuMTkuNjktMiAxLjk5LTIgMy40NnMuODEgMi43NyAyIDMuNDZWMThINHYtMi41NGMxLjE5LS42OSAyLTEuOTkgMi0zLjQ2IDAtMS40OC0uOC0yLjc3LTEuOTktMy40Nkw0IDZoMTZ2Mi41NHpNMTEgMTVoMnYyaC0yem0wLTRoMnYyaC0yem0wLTRoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGlyZWN0aW9uc09mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjcxIDExLjI5LTktOWEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBMOC4yMSA1LjM4bDEuNDEgMS40MUwxMiA0LjQyIDE5LjU4IDEybC0yLjM4IDIuMzggMS40MSAxLjQxIDMuMDktMy4wOWMuNC0uMzcuNC0xIC4wMS0xLjQxelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyA3LjV2Mi42N2wyLjE3IDIuMTdMMTYuNSAxMXpNMS4zOSA0LjIybDMuOTkgMy45OS0zLjA5IDMuMDlhLjk5Ni45OTYgMCAwIDAgMCAxLjQxbDkgOWMuMzkuMzkgMS4wMi4zOSAxLjQxIDBsMy4wOS0zLjA5IDMuOTkgMy45OSAxLjQxLTEuNDFMMi44MSAyLjgxIDEuMzkgNC4yMnptNi42NCA2LjYzYy0uMDEuMDUtLjA0LjEtLjA0LjE1djRoMnYtMi4xOGw0LjM4IDQuMzhMMTIgMTkuNTggNC40MiAxMiA2LjggOS42MmwxLjIzIDEuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXNjRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gydjVoLTJ6TTEwIDRjLTQuNDIgMC04IDMuNTgtOCA4czMuNTggOCA4IDggOC0zLjU4IDgtOC0zLjU4LTgtOC04em0wIDE0Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnptMTAtNGgydjJoLTJ6bS0xMC00Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvRGlzdHVyYkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi41IDIgMiA2LjUgMiAxMnM0LjUgMTAgMTAgMTAgMTAtNC41IDEwLTEwUzE3LjUgMiAxMiAyek00IDEyYzAtNC40IDMuNi04IDgtOCAxLjggMCAzLjUuNiA0LjkgMS43TDUuNyAxNi45QzQuNiAxNS41IDQgMTMuOCA0IDEyem04IDhjLTEuOCAwLTMuNS0uNi00LjktMS43TDE4LjMgNy4xQzE5LjQgOC41IDIwIDEwLjIgMjAgMTJjMCA0LjQtMy42IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9EaXN0dXJiT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS40MS0uMzcgMi43My0xLjAxIDMuODhsMS40NiAxLjQ2QTkuOTYgOS45NiAwIDAgMCAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMGE5LjkgOS45IDAgMCAwLTUuMzMgMS41NWwxLjQ2IDEuNDZBNy44ODMgNy44ODMgMCAwIDEgMTIgNHptNSA3aC0yLjg4bDIgMkgxN3pNMi40MSAyLjEzIDEgMy41NGwyLjc4IDIuNzhBOS45MiA5LjkyIDAgMCAwIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgMi4xMSAwIDQuMDctLjY2IDUuNjgtMS43OEwyMC40NiAyM2wxLjQxLTEuNDFMMi40MSAyLjEzek0xMiAyMGMtNC40MSAwLTgtMy41OS04LTggMC0xLjU2LjQ1LTMgMS4yMy00LjIzTDguNDYgMTFIN3YyaDMuNDZsNS43NyA1Ljc3QTcuODQ2IDcuODQ2IDAgMCAxIDEyIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9EaXN0dXJiT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4em0tNS05aDEwdjJIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvRGlzdHVyYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LTggMC0xLjg1LjYzLTMuNTUgMS42OS00LjlMMTYuOSAxOC4zMUE3LjkwMiA3LjkwMiAwIDAgMSAxMiAyMHptNi4zMS0zLjFMNy4xIDUuNjlBNy45MDIgNy45MDIgMCAwIDEgMTIgNGM0LjQyIDAgOCAzLjU4IDggOCAwIDEuODUtLjYzIDMuNTUtMS42OSA0Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb05vdERpc3R1cmJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNSAyIDIgNi41IDIgMTJzNC41IDEwIDEwIDEwIDEwLTQuNSAxMC0xMFMxNy41IDIgMTIgMnpNNCAxMmMwLTQuNCAzLjYtOCA4LTggMS44IDAgMy41LjYgNC45IDEuN0w1LjcgMTYuOUM0LjYgMTUuNSA0IDEzLjggNCAxMnptOCA4Yy0xLjggMC0zLjUtLjYtNC45LTEuN0wxOC4zIDcuMUMxOS40IDguNSAyMCAxMC4yIDIwIDEyYzAgNC40LTMuNiA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90RGlzdHVyYk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuOTQgNS4xMkM5LjE0IDQuNDEgMTAuNTIgNCAxMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS40OC0uNDEgMi44Ni0xLjEyIDQuMDZsMS40NiAxLjQ2QTkuOTY3IDkuOTY3IDAgMCAwIDIyIDEyYzAtNS41Mi00LjQ4LTEwLTEwLTEwLTIuMDQgMC0zLjkzLjYxLTUuNTEgMS42NmwxLjQ1IDEuNDZ6TTIuODEgMi44MSAxLjM5IDQuMjJsMi4yNyAyLjI3QTkuOTEgOS45MSAwIDAgMCAyIDEyYzAgNS41MiA0LjQ4IDEwIDEwIDEwIDIuMDQgMCAzLjkzLS42MSA1LjUxLTEuNjZsMi4yNyAyLjI3IDEuNDEtMS40MUwyLjgxIDIuODF6TTEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuNDguNDEtMi44NiAxLjEyLTQuMDZMOC4xNyAxMUg3djJoMy4xN2w1Ljg4IDUuODhBNy44NjkgNy44NjkgMCAwIDEgMTIgMjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEzLjgzIDExIDIgMkgxN3YtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvTm90RGlzdHVyYk9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxMXYyaDEwdi0ySDd6bTUtOUM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb05vdERpc3R1cmIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOCAwLTEuODUuNjMtMy41NSAxLjY5LTQuOUwxNi45IDE4LjMxQTcuOTAyIDcuOTAyIDAgMCAxIDEyIDIwem02LjMxLTMuMUw3LjEgNS42OUE3LjkwMiA3LjkwMiAwIDAgMSAxMiA0YzQuNDIgMCA4IDMuNTggOCA4IDAgMS44NS0uNjMgMy41NS0xLjY5IDQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURyaXZlRXRhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC45MiA1LjAxQzE4LjcyIDQuNDIgMTguMTYgNCAxNy41IDRoLTExYy0uNjYgMC0xLjIxLjQyLTEuNDIgMS4wMUwzIDExdjhjMCAuNTUuNDUgMSAxIDFoMWMuNTUgMCAxLS40NSAxLTF2LTFoMTJ2MWMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtOGwtMi4wOC01Ljk5ek02Ljg1IDZoMTAuMjlsMS4wNCAzSDUuODFsMS4wNC0zek0xOSAxNkg1di00LjY2bC4xMi0uMzRoMTMuNzdsLjExLjM0VjE2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjcuNVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2LjVcIixcImN5XCI6XCIxMy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVuaGFuY2VkRW5jcnlwdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtMVY2YzAtMi43Ni0yLjI0LTUtNS01UzcgMy4yNCA3IDZ2Mkg2Yy0xLjEgMC0yIC45LTIgMnYxMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjEwYzAtMS4xLS45LTItMi0yek04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYySDguOVY2ek0xOCAyMEg2VjEwaDEydjEwem0tNS05aC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFdmVudEF2YWlsYWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY5aDE0djEwek01IDdWNWgxNHYySDV6bTUuNTYgMTAuNDYgNS45My01LjkzLTEuMDYtMS4wNi00Ljg3IDQuODctMi4xMS0yLjExLTEuMDYgMS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUV2ZW50QnVzeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY5aDE0djEwek01IDdWNWgxNHYySDV6bTMuMjMgOS40MSAxLjA2IDEuMDYgMi40NC0yLjQ0IDIuNDQgMi40NCAxLjA2LTEuMDYtMi40NC0yLjQ0IDIuNDQtMi40NC0xLjA2LTEuMDYtMi40NCAyLjQ0LTIuNDQtMi40NC0xLjA2IDEuMDYgMi40NCAyLjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXZlbnROb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzaC0xVjFoLTJ2Mkg4VjFINnYySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjloMTR2MTB6TTUgN1Y1aDE0djJINXptMiA0aDEwdjJIN3ptMCA0aDd2Mkg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRm9sZGVyU3BlY2lhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNmgtOGwtMi0ySDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWOGMwLTEuMS0uOS0yLTItMnptMCAxMkg0VjZoNS4xN2wyIDJIMjB2MTB6bS02LjkyLTMuOTZMMTIuMzkgMTcgMTUgMTUuNDcgMTcuNjEgMTdsLS42OS0yLjk2IDIuMy0xLjk5LTMuMDMtLjI2TDE1IDlsLTEuMTkgMi43OS0zLjAzLjI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW1hZ2VzZWFyY2hSb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA3VjNjMC0uNTUtLjQ1LTEtMS0xSDdjLS41NSAwLTEgLjQ1LTEgMXYxSDRjLTEuMSAwLTIgLjktMiAydjRjMCAxLjEuOSAyIDIgMmg4djNoLTFjLS41NSAwLTEgLjQ1LTEgMXY2YzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi02YzAtLjU1LS40NS0xLTEtMWgtMXYtM2MwLTEuMS0uOS0yLTItMkg0VjZoMnYxYzAgLjU1LjQ1IDEgMSAxaDEyYy41NSAwIDEtLjQ1IDEtMXpNOCA0aDEwdjJIOFY0em02IDE3aC0ydi00aDJ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxpdmVUdiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMHY4bDctNHptMTItNGgtNy41OGwzLjI5LTMuMjlMMTYgMmwtNCA0aC0uMDNsLTQtNC0uNjkuNzFMMTAuNTYgNkgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE4YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bTAgMTRIM1Y4aDE4djEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW1zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyem0tNS41LThMMTEgMTIuNTEgOC41IDkuNSA1IDE0aDE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTW9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgM0g3Yy0uNjkgMC0xLjIzLjM1LTEuNTkuODhMMCAxMmw1LjQxIDguMTFjLjM2LjUzLjk3Ljg5IDEuNjYuODlIMjJjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg3LjA3TDIuNCAxMmw0LjY2LTdIMjJ2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNFwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOVwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5ldHdvcmtDaGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuOSA1Yy0uMTcgMC0uMzIuMDktLjQxLjIzbC0uMDcuMTUtNS4xOCAxMS42NWMtLjE2LjI5LS4yNi42MS0uMjYuOTYgMCAxLjExLjkgMi4wMSAyLjAxIDIuMDEuOTYgMCAxLjc3LS42OCAxLjk2LTEuNTlsLjAxLS4wM0wxNi40IDUuNWMwLS4yOC0uMjItLjUtLjUtLjV6TTEgOWwyIDJjMi44OC0yLjg4IDYuNzktNC4wOCAxMC41My0zLjYybDEuMTktMi42OEM5Ljg5IDMuODQgNC43NCA1LjI3IDEgOXptMjAgMiAyLTJhMTUuMzY3IDE1LjM2NyAwIDAgMC01LjU5LTMuNTdsLS41MyAyLjgyYzEuNS42MiAyLjkgMS41MyA0LjEyIDIuNzV6bS00IDQgMi0yYy0uOC0uOC0xLjctMS40Mi0yLjY2LTEuODlsLS41NSAyLjkyYy40Mi4yNy44My41OSAxLjIxLjk3ek01IDEzbDIgMmE3LjEgNy4xIDAgMCAxIDQuMDMtMmwxLjI4LTIuODhjLTIuNjMtLjA4LTUuMy44Ny03LjMxIDIuODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOZXR3b3JrTG9ja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxNnYtLjVhMi41IDIuNSAwIDAgMC01IDB2LjVjLS41NSAwLTEgLjQ1LTEgMXY0YzAgLjU1LjQ1IDEgMSAxaDVjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMXptLTEgMGgtM3YtLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjV2LjV6TTE4IDUuODN2NS40M2MuNDctLjE2Ljk3LS4yNiAxLjUtLjI2LjE3IDAgLjMzLjAzLjUuMDVWMUwxIDIwaDEzdi0ySDUuODNMMTggNS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vRW5jcnlwdGlvbkdtYWlsZXJyb3JyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguOSA2YzAtMS43MSAxLjM5LTMuMSAzLjEtMy4xczMuMSAxLjM5IDMuMSAzLjF2MmgtNC42NmwyIDJIMTh2NS41NmwyIDJWMTBjMC0xLjEtLjktMi0yLTJoLTFWNmMwLTIuNzYtMi4yNC01LTUtNS0yLjMyIDAtNC4yNiAxLjU5LTQuODIgMy43NEw4LjkgNi40NlY2ek00LjQxIDQuODEgMyA2LjIybDIuMDQgMi4wNEM0LjQyIDguNiA0IDkuMjUgNCAxMHYxMGMwIDEuMS45IDIgMiAyaDEyLjc4bDEgMSAxLjQxLTEuNDFMNC40MSA0Ljgxek02IDIwVjEwaC43OGwxMCAxMEg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9FbmNyeXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjkgNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMXMzLjEgMS4zOSAzLjEgMy4xdjJoLTQuNjZsMiAySDE4djUuNTZsMiAyVjEwYzAtMS4xLS45LTItMi0yaC0xVjZjMC0yLjc2LTIuMjQtNS01LTUtMi4zMiAwLTQuMjYgMS41OS00LjgyIDMuNzRMOC45IDYuNDZWNnpNNC40MSA0LjgxIDMgNi4yMmwyLjA0IDIuMDRDNC40MiA4LjYgNCA5LjI1IDQgMTB2MTBjMCAxLjEuOSAyIDIgMmgxMi43OGwxIDEgMS40MS0xLjQxTDQuNDEgNC44MXpNNiAyMFYxMGguNzhsMTAgMTBINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU9uZGVtYW5kVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgN3Y4bDctNHptMTItNEgzYy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDV2Mmg4di0yaDVjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNEgzVjVoMTh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25hbFZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAzSDNjLTEuMTEgMC0yIC44OS0yIDJ2MTJhMiAyIDAgMCAwIDIgMmg1djJoOHYtMmg1YzEuMSAwIDEuOTktLjkgMS45OS0yTDIzIDVhMiAyIDAgMCAwLTItMnptMCAxNEgzVjVoMTh2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZUJsdWV0b290aFNwZWFrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDE1LjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3LS4xLS4wMy0uMjEtLjA1LS4zMS0uMDUtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWMuMDcuODguMjIgMS43NS40NSAyLjU4bC0xLjIgMS4yMWMtLjQtMS4yMS0uNjYtMi40Ny0uNzUtMy43OXpNMTkgMTguOTdjLTEuMzItLjA5LTIuNi0uMzUtMy44LS43NmwxLjItMS4yYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjUxek0xNC43MSA5LjUgMTcgNy4yMVYxMWguNWwyLjg1LTIuODVMMTguMjEgNmwyLjE1LTIuMTVMMTcuNSAxSDE3djMuNzlMMTQuNzEgMi41bC0uNzEuNzFMMTYuNzkgNiAxNCA4Ljc5bC43MS43MXpNMTggMi45MWwuOTQuOTQtLjk0Ljk0VjIuOTF6bTAgNC4zLjk0Ljk0LS45NC45NFY3LjIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVDYWxsYmFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTUuNTFjLTEuMjQgMC0yLjQ1LS4yLTMuNTctLjU3YS44NC44NCAwIDAgMC0uMzEtLjA1Yy0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMTQ5IDE1LjE0OSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMmMuMjgtLjI4LjM2LS42Ny4yNS0xLjAyQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMUg0Yy0uNTUgMC0xIC40NS0xIDEgMCA5LjM5IDcuNjEgMTcgMTcgMTcgLjU1IDAgMS0uNDUgMS0xdi0zLjQ5YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWExMyAxMyAwIDAgMCAuNDYgMi41OWwtMS4yIDEuMmMtLjQxLTEuMi0uNjctMi40Ny0uNzYtMy43OXpNMTkgMTguOTdjLTEuMzItLjA5LTIuNTktLjM1LTMuOC0uNzVsMS4xOS0xLjE5Yy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjQ5ek0xOCA5aC0yLjU5bDUuMDItNS4wMi0xLjQxLTEuNDFMMTQgNy41OVY1aC0ydjZoNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lRm9yd2FyZGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxNS41Yy0xLjI1IDAtMi40NS0uMi0zLjU3LS41Ny0uMS0uMDMtLjIxLS4wNS0uMzEtLjA1LS4yNiAwLS41MS4xLS43MS4yOWwtMi4yIDIuMmExNS4wNDUgMTUuMDQ1IDAgMCAxLTYuNTktNi41OWwyLjItMi4yMWEuOTYuOTYgMCAwIDAgLjI1LTFBMTEuMzYgMTEuMzYgMCAwIDEgOC41IDRjMC0uNTUtLjQ1LTEtMS0xSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTF6TTUuMDMgNWgxLjVjLjA3Ljg4LjIyIDEuNzUuNDUgMi41OGwtMS4yIDEuMjFjLS40LTEuMjEtLjY2LTIuNDctLjc1LTMuNzl6TTE5IDE4Ljk3Yy0xLjMyLS4wOS0yLjYtLjM1LTMuOC0uNzZsMS4yLTEuMmMuODUuMjQgMS43Mi4zOSAyLjYuNDV2MS41MXpNMTggMTFsNS01LTUtNXYzaC00djRoNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBob25lSW5UYWxrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAxMmgyYzAtMi43Ni0yLjI0LTUtNS01djJjMS42NiAwIDMgMS4zNCAzIDN6bTQgMGgyYTkgOSAwIDAgMC05LTl2MmMzLjg3IDAgNyAzLjEzIDcgN3ptMSAzLjVjLTEuMjUgMC0yLjQ1LS4yLTMuNTctLjU3LS4xLS4wMy0uMjEtLjA1LS4zMS0uMDUtLjI2IDAtLjUxLjEtLjcxLjI5bC0yLjIgMi4yYTE1LjA0NSAxNS4wNDUgMCAwIDEtNi41OS02LjU5bDIuMi0yLjIxYS45Ni45NiAwIDAgMCAuMjUtMUExMS4zNiAxMS4zNiAwIDAgMSA4LjUgNGMwLS41NS0uNDUtMS0xLTFINGMtLjU1IDAtMSAuNDUtMSAxIDAgOS4zOSA3LjYxIDE3IDE3IDE3IC41NSAwIDEtLjQ1IDEtMXYtMy41YzAtLjU1LS40NS0xLTEtMXpNNS4wMyA1aDEuNWMuMDcuODguMjIgMS43NS40NSAyLjU4bC0xLjIgMS4yMWMtLjQtMS4yMS0uNjYtMi40Ny0uNzUtMy43OXpNMTkgMTguOTdjLTEuMzItLjA5LTIuNi0uMzUtMy44LS43NmwxLjItMS4yYy44NS4yNCAxLjcyLjM5IDIuNi40NXYxLjUxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVMb2NrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1VjRjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFoLTF2NWg2VjVoLTF6bS0xIDBoLTJWNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjAuMiAxNC44Ny0zLjY3LS43M2MtLjUtLjEtLjgzLjItLjkuMjdsLTIuNTIgMi41Yy0yLjUtMS40My00LjU3LTMuNS02LTZsMi41LTIuNTJjLjIzLS4yNC4zMy0uNTcuMjctLjlMOS4xMyAzLjhjLS4wOS0uNDYtLjUtLjgtLjk4LS44SDRjLS41NiAwLTEuMDMuNDctMSAxLjAzLjE3IDIuODkgMS4wNSA1LjYgMi40MyA3Ljk3IDEuNTggMi43MyAzLjg1IDQuOTkgNi41NyA2LjU3IDIuMzcgMS4zNyA1LjA4IDIuMjYgNy45NyAyLjQzLjU1LjAzIDEuMDMtLjQzIDEuMDMtMXYtNC4xNWMwLS40OC0uMzQtLjg5LS44LS45OHpNNS4xIDVoMi4yM2wuNDcgMi4zNUw2LjE3IDljLS41NC0xLjMtLjktMi42My0xLjA3LTR6TTE5IDE4LjljLTEuMzctLjE4LTIuNy0uNTMtNC0xLjA3bDEuNjUtMS42MyAyLjM1LjQ3djIuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaG9uZU1pc3NlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMuNzEgMTYuNjdDMjAuNjYgMTMuNzggMTYuNTQgMTIgMTIgMTJTMy4zNCAxMy43OC4yOSAxNi42N2MtLjE4LjE4LS4yOS40My0uMjkuNzEgMCAuMjguMTEuNTMuMjkuNzFsMi40OCAyLjQ4Yy4xOC4xOC40My4yOS43MS4yOS4yNyAwIC41Mi0uMTEuNy0uMjguNzktLjc0IDEuNjktMS4zNiAyLjY2LTEuODUuMzMtLjE2LjU2LS41LjU2LS45di0zLjFjMS40NS0uNDggMy0uNzMgNC42LS43M3MzLjE1LjI1IDQuNi43MnYzLjFjMCAuMzkuMjMuNzQuNTYuOS45OC40OSAxLjg3IDEuMTIgMi42NyAxLjg1LjE4LjE4LjQzLjI4LjcuMjguMjggMCAuNTMtLjExLjcxLS4yOWwyLjQ4LTIuNDhjLjE4LS4xOC4yOS0uNDMuMjktLjcxIDAtLjI4LS4xMi0uNTItLjMtLjd6bS0xOC4zMS41NmMtLjY2LjM3LTEuMjkuOC0xLjg3IDEuMjdsLTEuMDctMS4wN2MuOTEtLjc1IDEuOS0xLjM5IDIuOTUtMS45djEuN3ptMTUuMDggMS4yNmMtLjYtLjQ4LTEuMjItLjktMS44OC0xLjI3di0xLjdjMS4wNS41MSAyLjAzIDEuMTUgMi45NSAxLjlsLTEuMDcgMS4wN3pNNyA2LjQzbDQuOTQgNC45NCA3LjA3LTcuMDctMS40MS0xLjQyLTUuNjYgNS42Nkw4LjQgNUgxMVYzSDV2NmgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGhvbmVQYXVzZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNTQgNWMuMDYuODguMjEgMS43NS40NCAyLjU4bC0xLjIgMS4yMWMtLjQtMS4yMS0uNjYtMi40Ny0uNzUtMy43OWgxLjUxbTkuODYgMTIuMDFjLjg1LjI0IDEuNzIuMzkgMi42LjQ1djEuNWMtMS4zMi0uMDktMi42LS4zNS0zLjgtLjc2bDEuMi0xLjE5TTcuNSAzSDRjLS41NSAwLTEgLjQ1LTEgMSAwIDkuMzkgNy42MSAxNyAxNyAxNyAuNTUgMCAxLS40NSAxLTF2LTMuNWMwLS41NS0uNDUtMS0xLTEtMS4yNSAwLTIuNDUtLjItMy41Ny0uNTctLjEtLjAzLS4yMS0uMDUtLjMxLS4wNS0uMjYgMC0uNTEuMS0uNzEuMjlsLTIuMiAyLjJhMTUuMDQ1IDE1LjA0NSAwIDAgMS02LjU5LTYuNTlsMi4yLTIuMjFhLjk2Ljk2IDAgMCAwIC4yNS0xQTExLjM2IDExLjM2IDAgMCAxIDguNSA0YzAtLjU1LS40NS0xLTEtMXpNMTUgM2gydjdoLTJ6bTQgMGgydjdoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb3dlck9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgM0g4djEuODhsMiAyem02IDZ2My44OGwxLjggMS44LjItLjJWOWMwLTEuMS0uOS0yLTItMlYzaC0ydjRoLTMuODhsMiAySDE2ek00LjEyIDMuODQgMi43MSA1LjI1IDYgOC41NHY1Ljk2TDkuNSAxOHYzaDV2LTNsLjQ4LS40OCA0LjQ3IDQuNDcgMS40MS0xLjQxTDQuMTIgMy44NHptOC4zOCAxMy4zM1YxOWgtMXYtMS44M0w4IDEzLjY1di0zLjExbDUuNTcgNS41Ny0xLjA3IDEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgOXY0LjY2bC0zLjUgMy41MVYxOWgtMXYtMS44M0w4IDEzLjY1VjloOG0wLTZoLTJ2NGgtNFYzSDh2NGgtLjAxQzYuOSA2Ljk5IDYgNy44OSA2IDguOTh2NS41Mkw5LjUgMTh2M2g1di0zbDMuNS0zLjUxVjljMC0xLjEtLjktMi0yLTJWM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByaW9yaXR5SGlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE5XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDNoNHYxMmgtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJ1bm5pbmdXaXRoRXJyb3JzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTB2OGgtMnYtOGgyem0tMiAxMHYyaDJ2LTJoLTJ6bS0yLTIuNzFBNy45OSA3Ljk5IDAgMCAxIDEyIDIwYy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04djlsNy41NS03LjU1QTkuOTY1IDkuOTY1IDAgMCAwIDEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTBjMi4yNSAwIDQuMzMtLjc0IDYtMnYtMi43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNkQ2FyZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAyaC04TDQuMDIgOCA0IDIwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg2VjguODNMMTAuODMgNEgxOHYxNnptLTctNWgydjJoLTJ6bTAtN2gydjVoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDJoLThMNCA4djEyYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg2VjguODNMMTAuODMgNEgxOHYxNnpNOSA3aDJ2NEg5em0zIDBoMnY0aC0yem0zIDBoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2ltQ2FyZEFsZXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMmgtOEw0LjAyIDggNCAyMGMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMThINlY4LjgzTDEwLjgzIDRIMTh2MTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE1aDJ2MmgtMnpNMTEgOGgydjVoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbXNGYWlsZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMiAuOS0yIDJ2MThsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6bS05LTRoMnYyaC0yem0wLTZoMnY0aC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE4bDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyek03IDloMnYySDd6bTggMGgydjJoLTJ6bS00IDBoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3VwcG9ydEFnZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTIuMjJDMjEgNi43MyAxNi43NCAzIDEyIDNjLTQuNjkgMC05IDMuNjUtOSA5LjI4LS42LjM0LTEgLjk4LTEgMS43MnYyYzAgMS4xLjkgMiAyIDJoMXYtNi4xYzAtMy44NyAzLjEzLTcgNy03czcgMy4xMyA3IDdWMTloLTh2Mmg4YzEuMSAwIDItLjkgMi0ydi0xLjIyYy41OS0uMzEgMS0uOTIgMS0xLjY0di0yLjNjMC0uNy0uNDEtMS4zMS0xLTEuNjJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxMS4wM0E2LjA0IDYuMDQgMCAwIDAgMTIuMDUgNmMtMy4wMyAwLTYuMjkgMi41MS02LjAzIDYuNDVhOC4wNzUgOC4wNzUgMCAwIDAgNC44Ni01Ljg5YzEuMzEgMi42MyA0IDQuNDQgNy4xMiA0LjQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3luY0Rpc2FibGVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwem0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCA2LjM1VjQuMjZjLS42Ni4xNy0xLjI5LjQzLTEuODguNzVsMS41IDEuNWMuMTMtLjA1LjI1LS4xMS4zOC0uMTZ6TTIwIDEyYzAtMi4yMS0uOTEtNC4yLTIuMzYtNS42NEwyMCA0aC02djZsMi4yNC0yLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDE4IDEyYzAgLjg1LS4xOSAxLjY1LS41MSAyLjM4bDEuNSAxLjVBNy45MjEgNy45MjEgMCAwIDAgMjAgMTJ6TTQuMjcgNCAyLjg2IDUuNDFsMi4zNiAyLjM2YTcuOTI1IDcuOTI1IDAgMCAwIDEuMTQgOS44N0w0IDIwaDZ2LTZsLTIuMjQgMi4yNEE2LjAwMyA2LjAwMyAwIDAgMSA2IDEyYzAtMSAuMjUtMS45NC42OC0yLjc3bDguMDggOC4wOGMtLjI1LjEzLS41LjI0LS43Ni4zNHYyLjA5Yy44LS4yMSAxLjU1LS41NCAyLjIzLS45NmwyLjU4IDIuNTggMS40MS0xLjQxTDQuMjcgNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5bmNMb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgNC4yNnYyLjA5QzcuNjcgNy4xOCA2IDkuMzkgNiAxMmMwIDEuNzcuNzggMy4zNCAyIDQuNDRWMTRoMnY2SDR2LTJoMi43M0E3Ljk0MiA3Ljk0MiAwIDAgMSA0IDEyYzAtMy43MyAyLjU1LTYuODUgNi03Ljc0ek0yMCA0aC02djZoMlY3LjU2YzEuMjIgMS4xIDIgMi42NyAyIDQuNDRoMmMwLTIuNC0xLjA2LTQuNTQtMi43My02SDIwVjR6bTAgMTN2LTFjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAydjFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDRjLjU1IDAgMS0uNDUgMS0xdi0zYzAtLjU1LS40NS0xLTEtMXptLTEgMGgtMnYtMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5bmNQcm9ibGVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zIDEyYzAgMi4yMS45MSA0LjIgMi4zNiA1LjY0TDMgMjBoNnYtNmwtMi4yNCAyLjI0QTYuMDAzIDYuMDAzIDAgMCAxIDUgMTJhNS45OSA1Ljk5IDAgMCAxIDQtNS42NVY0LjI2QzUuNTUgNS4xNSAzIDguMjcgMyAxMnptOCA1aDJ2LTJoLTJ2MnpNMjEgNGgtNnY2bDIuMjQtMi4yNEE2LjAwMyA2LjAwMyAwIDAgMSAxOSAxMmE1Ljk5IDUuOTkgMCAwIDEtNCA1LjY1djIuMDljMy40NS0uODkgNi00LjAxIDYtNy43NCAwLTIuMjEtLjkxLTQuMi0yLjM2LTUuNjRMMjEgNHptLTEwIDloMlY3aC0ydjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTeW5jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0uMDEgMGgyNHYyNGgtMjRWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNFYxTDggNWw0IDRWNmMzLjMxIDAgNiAyLjY5IDYgNiAwIDEuMDEtLjI1IDEuOTctLjcgMi44bDEuNDYgMS40NkE3LjkzIDcuOTMgMCAwIDAgMjAgMTJjMC00LjQyLTMuNTgtOC04LTh6bTAgMTRjLTMuMzEgMC02LTIuNjktNi02IDAtMS4wMS4yNS0xLjk3LjctMi44TDUuMjQgNy43NEE3LjkzIDcuOTMgMCAwIDAgNCAxMmMwIDQuNDIgMy41OCA4IDggOHYzbDQtNC00LTR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN5c3RlbVVwZGF0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMS4wMSA3IDFjLTEuMSAwLTIgLjktMiAydjE4YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJWM2MwLTEuMS0uOS0xLjk5LTItMS45OXpNMTcgMTlIN1Y1aDEwdjE0em0tMS02aC0zVjhoLTJ2NUg4bDQgNCA0LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUYXBBbmRQbGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yIDE2djJjMi43NiAwIDUgMi4yNCA1IDVoMmMwLTMuODctMy4xMy03LTctN3ptMCA0djNoM2MwLTEuNjYtMS4zNC0zLTMtM3ptMC04djJhOSA5IDAgMCAxIDkgOWgyYzAtNi4wOC00LjkyLTExLTExLTExek0xNyAxLjAxIDcgMWMtMS4xIDAtMiAuOS0yIDJ2Ny4zN2MuNjkuMTYgMS4zNi4zNyAyIC42NFY1aDEwdjEzaC0zLjAzYy41MiAxLjI1Ljg0IDIuNTkuOTUgNEgxN2MxLjEgMCAyLS45IDItMlYzYzAtMS4xLS45LTEuOTktMi0xLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGltZVRvTGVhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjkyIDUuMDFDMTguNzIgNC40MiAxOC4xNiA0IDE3LjUgNGgtMTFjLS42NiAwLTEuMjEuNDItMS40MiAxLjAxTDMgMTF2OGMwIC41NS40NSAxIDEgMWgxYy41NSAwIDEtLjQ1IDEtMXYtMWgxMnYxYzAgLjU1LjQ1IDEgMSAxaDFjLjU1IDAgMS0uNDUgMS0xdi04bC0yLjA4LTUuOTl6TTYuODUgNmgxMC4yOWwxLjA0IDNINS44MWwxLjA0LTN6TTE5IDE2SDV2LTQuNjZsLjEyLS4zNGgxMy43N2wuMTEuMzRWMTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjEzLjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHZPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDd2MTAuODhsMS44NSAxLjg1Yy4wOS0uMjMuMTUtLjQ3LjE1LS43M1Y3YzAtMS4xMS0uODktMi0yLTJoLTcuNThsMy4yOS0zLjNMMTYgMWwtNCA0LTQtNC0uNy43TDEwLjU4IDVIOC4xMmwyIDJIMjF6bS0uNTQgMTYgMS4yNi0xLjI3LTEuMjYgMS4yNnpNMi40MSAyLjEzbC0uMTQuMTRMMSAzLjU0bDEuNTMgMS41M0MxLjY1IDUuMjggMSA2LjA2IDEgN3YxMmMwIDEuMS45IDIgMiAyaDE1LjQ2bDEuOTkgMS45OSAxLjI2LTEuMjYuMTUtLjE1TDIuNDEgMi4xM3pNMyAxOVY3aDEuNDZsMTIgMTJIM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpYnJhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNWgyVjlIMHY2em0zIDJoMlY3SDN2MTB6bTE5LTh2NmgyVjloLTJ6bS0zIDhoMlY3aC0ydjEwek0xNi41IDNoLTlDNi42NyAzIDYgMy42NyA2IDQuNXYxNWMwIC44My42NyAxLjUgMS41IDEuNWg5Yy44MyAwIDEuNS0uNjcgMS41LTEuNXYtMTVjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xNiAxOUg4VjVoOHYxNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpZGVvQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDJINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDIybDQtNGgxNGMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDUuMTdMNCAxNy4xN1Y0aDE2djEyelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE0aDZjLjU1IDAgMS0uNDUgMS0xdi0xLjk5TDE3IDEzVjdsLTIgMS45OVY3YzAtLjU1LS40NS0xLTEtMUg4Yy0uNTUgMC0xIC40NS0xIDF2NmMwIC41NS40NSAxIDEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZvaWNlQ2hhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMkg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMjJsNC00aDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bTAgMTRINS4xN0w0IDE3LjE3VjRoMTZ2MTJ6bS02LTUuNCAzIDIuNFY3bC0zIDIuNFY3SDd2Nmg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVnBuTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguOTIgMTJjLjA0LjMzLjA4LjY2LjA4IDEgMCAyLjA4LS44IDMuOTctMi4xIDUuMzktLjI2LS44MS0xLTEuMzktMS45LTEuMzloLTF2LTNjMC0uNTUtLjQ1LTEtMS0xSDd2LTJoMmMuNTUgMCAxLS40NSAxLTFWOGgyYzEuMSAwIDItLjkgMi0yVjMuNDZjLS45NS0uMy0xLjk1LS40Ni0zLS40NkM1LjQ4IDMgMSA3LjQ4IDEgMTNzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwYzAtLjM0LS4wMi0uNjctLjA1LTFoLTIuMDN6TTEwIDIwLjkzYy0zLjk1LS40OS03LTMuODUtNy03LjkzIDAtLjYyLjA4LTEuMjEuMjEtMS43OUw4IDE2djFjMCAxLjEuOSAyIDIgMnYxLjkzek0yMiA0di0uNWEyLjUgMi41IDAgMCAwLTUgMFY0Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg1Yy41NSAwIDEtLjQ1IDEtMVY1YzAtLjU1LS40NS0xLTEtMXptLTEgMGgtM3YtLjVjMC0uODMuNjctMS41IDEuNS0xLjVzMS41LjY3IDEuNSAxLjVWNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdjIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0uMDEgMGgyNHYyNGgtMjRWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNS41IDIydi03LjVINFY5YzAtMS4xLjktMiAyLTJoM2MxLjEgMCAyIC45IDIgMnY1LjVIOS41VjIyaC00ek0xOCAyMnYtNmgzbC0yLjU0LTcuNjNBMi4wMSAyLjAxIDAgMCAwIDE2LjU2IDdoLS4xMmEyIDIgMCAwIDAtMS45IDEuMzdMMTIgMTZoM3Y2aDN6TTcuNSA2YzEuMTEgMCAyLS44OSAyLTJzLS44OS0yLTItMi0yIC44OS0yIDIgLjg5IDIgMiAyem05IDBjMS4xMSAwIDItLjg5IDItMnMtLjg5LTItMi0yLTIgLjg5LTIgMiAuODkgMiAyIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXaWZpT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxMSAyLTJjLTMuNzMtMy43My04Ljg3LTUuMTUtMTMuNy00LjMxbDIuNTggMi41OGMzLjMtLjAyIDYuNjEgMS4yMiA5LjEyIDMuNzN6bS0yIDJhOS44OTUgOS44OTUgMCAwIDAtMy43Mi0yLjMzbDMuMDIgMy4wMi43LS42OXpNOSAxN2wzIDMgMy0zYTQuMjM3IDQuMjM3IDAgMCAwLTYgMHpNMy40MSAxLjY0IDIgMy4wNSA1LjA1IDYuMUMzLjU5IDYuODMgMi4yMiA3Ljc5IDEgOWwyIDJjMS4yMy0xLjIzIDIuNjUtMi4xNiA0LjE3LTIuNzhsMi4yNCAyLjI0QTkuODIzIDkuODIzIDAgMCAwIDUgMTNsMiAyYTYuOTk5IDYuOTk5IDAgMCAxIDQuODktMi4wNmw3LjA4IDcuMDggMS40MS0xLjQxTDMuNDEgMS42NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdpZmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEgOSAyIDJjNC45Ny00Ljk3IDEzLjAzLTQuOTcgMTggMGwyLTJDMTYuOTMgMi45MyA3LjA4IDIuOTMgMSA5em04IDggMyAzIDMtM2E0LjIzNyA0LjIzNyAwIDAgMC02IDB6bS00LTQgMiAyYTcuMDc0IDcuMDc0IDAgMCAxIDEwIDBsMi0yQzE1LjE0IDkuMTQgOC44NyA5LjE0IDUgMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBY1VuaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDExaC00LjE3bDMuMjQtMy4yNC0xLjQxLTEuNDJMMTUgMTFoLTJWOWw0LjY2LTQuNjYtMS40Mi0xLjQxTDEzIDYuMTdWMmgtMnY0LjE3TDcuNzYgMi45MyA2LjM0IDQuMzQgMTEgOXYySDlMNC4zNCA2LjM0IDIuOTMgNy43NiA2LjE3IDExSDJ2Mmg0LjE3bC0zLjI0IDMuMjQgMS40MSAxLjQyTDkgMTNoMnYybC00LjY2IDQuNjYgMS40MiAxLjQxTDExIDE3LjgzVjIyaDJ2LTQuMTdsMy4yNCAzLjI0IDEuNDItMS40MUwxMyAxNXYtMmgybDQuNjYgNC42NiAxLjQxLTEuNDJMMTcuODMgMTNIMjJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBaXJwb3J0U2h1dHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNUgzYTIgMiAwIDAgMC0yIDJ2OWgyYzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTNoNmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zaDJ2LTVsLTYtNnptLTIgMmgxbDMgM2gtNFY3ek05IDdoNHYzSDlWN3pNMyA3aDR2M0gzVjd6bTMgMTAuMjVhMS4yNSAxLjI1IDAgMSAxIDAtMi41IDEuMjUgMS4yNSAwIDAgMSAwIDIuNXptMTIgMGExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41ek0yMSAxNGgtLjc4Yy0uNTUtLjYxLTEuMzQtMS0yLjIyLTFzLTEuNjcuMzktMi4yMiAxSDguMjJjLS41NS0uNjEtMS4zMy0xLTIuMjItMXMtMS42Ny4zOS0yLjIyIDFIM3YtMmgxOHYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWxsSW5jbHVzaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC42IDYuNjJjLTEuNDQgMC0yLjguNTYtMy43NyAxLjUzTDcuOCAxNC4zOWMtLjY0LjY0LTEuNDkuOTktMi40Ljk5LTEuODcgMC0zLjM5LTEuNTEtMy4zOS0zLjM4UzMuNTMgOC42MiA1LjQgOC42MmMuOTEgMCAxLjc2LjM1IDIuNDQgMS4wM2wxLjEzIDEgMS41MS0xLjM0TDkuMjIgOC4yQTUuMzcgNS4zNyAwIDAgMCA1LjQgNi42MkMyLjQyIDYuNjIgMCA5LjA0IDAgMTJzMi40MiA1LjM4IDUuNCA1LjM4YzEuNDQgMCAyLjgtLjU2IDMuNzctMS41M2w3LjAzLTYuMjRjLjY0LS42NCAxLjQ5LS45OSAyLjQtLjk5IDEuODcgMCAzLjM5IDEuNTEgMy4zOSAzLjM4cy0xLjUyIDMuMzgtMy4zOSAzLjM4Yy0uOSAwLTEuNzYtLjM1LTIuNDQtMS4wM2wtMS4xNC0xLjAxLTEuNTEgMS4zNCAxLjI3IDEuMTJhNS4zODYgNS4zODYgMCAwIDAgMy44MiAxLjU3YzIuOTggMCA1LjQtMi40MSA1LjQtNS4zOHMtMi40Mi01LjM3LTUuNC01LjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQXBhcnRtZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTFWM0g3djRIM3YxNGg4di00aDJ2NGg4VjExaC00ek03IDE5SDV2LTJoMnYyem0wLTRINXYtMmgydjJ6bTAtNEg1VjloMnYyem00IDRIOXYtMmgydjJ6bTAtNEg5VjloMnYyem0wLTRIOVY1aDJ2MnptNCA4aC0ydi0yaDJ2MnptMC00aC0yVjloMnYyem0wLTRoLTJWNWgydjJ6bTQgMTJoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmFieUNoYW5naW5nU3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDh2MmgtM0w4LjMxIDguODIgNyAxMi43NVYyMkgzVjEybDEuNTgtNC42M0EyLjAwMyAyLjAwMyAwIDAgMSA3LjMgNi4xOGw0LjE1IDEuODNMMTQgOHpNOCAxYy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptMSAxOGgxMnYtMkg5djJ6bTEwLjUtM2MuODMgMCAxLjUtLjY3IDEuNS0xLjVzLS42Ny0xLjUtMS41LTEuNS0xLjUuNjctMS41IDEuNS42NyAxLjUgMS41IDEuNXpNMTMgMTJjMC0uNTUtLjQ1LTEtMS0xSDl2MmgydjFjMCAxLjEuOSAyIDIgMmgyYzEuMSAwIDItLjkgMi0ydi0zaC0ydjJoLTJ2LTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWNrcGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNC4xNFYyaC0zdjJoLTRWMkg3djIuMTRjLTEuNzIuNDUtMyAyLTMgMy44NnYxMmMwIDEuMS45IDIgMiAyaDEyYzEuMSAwIDItLjkgMi0yVjhjMC0xLjg2LTEuMjgtMy40MS0zLTMuODZ6TTE4IDIwSDZWOGMwLTEuMS45LTIgMi0yaDhjMS4xIDAgMiAuOSAyIDJ2MTJ6bS0xLjUtOHY0aC0ydi0yaC03di0yaDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMHYyNGgyNFYwSDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWxjb255IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMTB2Mkg4di0yaDJ6bTYgMnYtMmgtMnYyaDJ6bTUgMnY4SDN2LThoMXYtNGMwLTQuNDIgMy41OC04IDgtOHM4IDMuNTggOCA4djRoMXpNNyAxNkg1djRoMnYtNHptNCAwSDl2NGgydi00em0wLTExLjkyQzguMTYgNC41NiA2IDcuMDMgNiAxMHY0aDVWNC4wOHpNMTMgMTRoNXYtNGMwLTIuOTctMi4xNi01LjQ0LTUtNS45MlYxNHptMiAyaC0ydjRoMnYtNHptNCAwaC0ydjRoMnYtNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdGh0dWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI3XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEzVjQuODNDMjAgMy4yNyAxOC43MyAyIDE3LjE3IDJjLS43NSAwLTEuNDcuMy0yIC44M2wtMS4yNSAxLjI1Yy0uMTYtLjA1LS4zMy0uMDgtLjUxLS4wOC0uNCAwLS43Ny4xMi0xLjA4LjMybDIuNzYgMi43NmMuMi0uMzEuMzItLjY4LjMyLTEuMDggMC0uMTgtLjAzLS4zNC0uMDctLjUxbDEuMjUtMS4yNWEuODI4LjgyOCAwIDAgMSAxLjQxLjU5VjEzaC02Ljg1Yy0uMy0uMjEtLjU3LS40NS0uODItLjcybC0xLjQtMS41NWMtLjE5LS4yMS0uNDMtLjM4LS42OS0uNUEyLjI1MSAyLjI1MSAwIDAgMCA1IDEyLjI1VjEzSDJ2NmMwIDEuMS45IDIgMiAyIDAgLjU1LjQ1IDEgMSAxaDE0Yy41NSAwIDEtLjQ1IDEtMSAxLjEgMCAyLS45IDItMnYtNmgtMnptMCA2SDR2LTRoMTZ2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlYWNoQWNjZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0yMSAxOS41Ny0xLjQyNyAxLjQyOC02LjQ0Mi02LjQ0MiAxLjQzLTEuNDI4ek0xMy4xMiAzYy0yLjU4IDAtNS4xNi45OC03LjE0IDIuOTVsLS4wMS4wMWMtMy45NSAzLjk1LTMuOTUgMTAuMzYgMCAxNC4zMWwxNC4zLTE0LjMxQTEwLjA4NiAxMC4wODYgMCAwIDAgMTMuMTIgM3pNNi4xNCAxNy4yN2E4LjA2MyA4LjA2MyAwIDAgMS0uNjgtNi44MmMuMTkgMS45MS44OSAzLjc5IDIuMDcgNS40NGwtMS4zOSAxLjM4em0yLjg0LTIuODRDNy42MyAxMi4zOCA3LjEyIDkuOTMgNy42IDcuNmMuNTgtLjEyIDEuMTYtLjE4IDEuNzUtLjE4IDEuOCAwIDMuNTUuNTUgNS4wOCAxLjU2bC01LjQ1IDUuNDV6bTEuNDctOC45N2E4LjA2MyA4LjA2MyAwIDAgMSA2LjgyLjY4bC0xLjM5IDEuMzlhMTEuMjUgMTEuMjUgMCAwIDAtNS40My0yLjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVudG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA1SDRjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWN2MwLTEuMS0uOS0yLTItMnptMCA2aC02VjdoNnY0ek00IDdoOHYxMEg0Vjd6bTEwIDEwdi00aDZ2NGgtNnptLTQuNS01YzAgLjgzLS42NyAxLjUtMS41IDEuNXMtMS41LS42Ny0xLjUtMS41LjY3LTEuNSAxLjUtMS41IDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQnVuZ2Fsb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxNGgtMnYtMmgydjJ6bTUuMSAyLjU2TDE3IDE0Ljc5VjIxSDd2LTYuMmwtMS4xIDEuNzYtMS43LTEuMDZMMTIgM2w3LjggMTIuNS0xLjcgMS4wNnpNMTUgMTEuNTlsLTMtNC44LTMgNC44VjE5aDJ2LTNoMnYzaDJ2LTcuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCdXNpbmVzc0NlbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgN2gtNFY1bC0yLTJoLTRMOCA1djJINGMtMS4xIDAtMiAuOS0yIDJ2NWMwIC43NS40IDEuMzggMSAxLjczVjE5YzAgMS4xMS44OSAyIDIgMmgxNGMxLjExIDAgMi0uODkgMi0ydi0zLjI4Yy41OS0uMzUgMS0uOTkgMS0xLjcyVjljMC0xLjEtLjktMi0yLTJ6TTEwIDVoNHYyaC00VjV6TTQgOWgxNnY1aC01di0zSDl2M0g0Vjl6bTkgNmgtMnYtMmgydjJ6bTYgNEg1di0zaDR2MWg2di0xaDR2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhYmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgMWMwIDEuNjYtMS4zNCAzLTMgMy0uNTUgMC0xIC40NS0xIDFINGMwLTEuNjYgMS4zNC0zIDMtMyAuNTUgMCAxLS40NSAxLTFoMnptMiAyTDYgNy41OFY2SDR2My4xMUwxIDExLjRsMS4yMSAxLjU5TDQgMTEuNjJWMjFoMTZ2LTkuMzhsMS43OSAxLjM2TDIzIDExLjQgMTIgM3ptMS45NCA0aC0zLjg5TDEyIDUuNTIgMTMuOTQgN3ptLTYuNSAyaDkuMTJMMTggMTAuMXYuOUg2di0uOUw3LjQ0IDl6TTE4IDEzdjJINnYtMmgxMnpNNiAxOXYtMmgxMnYySDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXJwZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS43MyAxNC4yMyA3IDEuNSAzLjExIDUuMzlsOC4xMyAxMS42N2MtLjc4Ljc4LS43OCAyLjA1IDAgMi44M2wxLjQxIDEuNDFjLjc4Ljc4IDIuMDUuNzggMi44MyAwbDQuMjQtNC4yNGMuNzktLjc4Ljc5LTIuMDUuMDEtMi44M3pNNS43MSA1LjYyIDcgNC4zM2w4LjQ5IDguNDktMi44MSAyLjgxTDUuNzEgNS42MnptOC4zNiAxNC4yNi0xLjQxLTEuNDEgNC4yNC00LjI0IDEuNDEgMS40MS00LjI0IDQuMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYXNpbm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNy41XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjEyXCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiMTYuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjcuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGFsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDE1IDEwIDcuNSAyLjUgMTVsMS40MSAxLjQxTDUgMTUuMzNWMjBoMTB2LTQuNjdsMS4wOSAxLjA5TDE3LjUgMTV6TTEzIDE4aC0ydi0zSDl2M0g3di00LjY3bDMtMyAzIDNWMTh6bTktMTAuNWgtMS4xOWwuNzUuNzUtLjcxLjcxLTEuNDYtMS40NmgtLjg5di44OWwxLjQ1IDEuNDUtLjcxLjcxLS43NC0uNzRWMTFoLTFWOS44MWwtLjc1Ljc1LS43MS0uNzEgMS40NS0xLjQ1di0uOWgtLjg5bC0xLjQ1IDEuNDUtLjcxLS43MS43NS0uNzVIMTR2LTFoMS4xOWwtLjc1LS43NS43MS0uNzEgMS40NSAxLjQ1aC44OXYtLjg3bC0xLjQ1LTEuNDUuNzEtLjcxLjc1Ljc1VjNoMXYxLjE5bC43NS0uNzUuNzEuNzEtMS40NiAxLjQ2di44OWguODlsMS40NS0xLjQ1LjcxLjcxLS43NC43NEgyMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hhcmdpbmdTdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTQuNSAxMS0zIDZ2LTRoLTJsMy02djRoMnpNMTcgM0g3djFoMTBWM20wIDE3SDd2MWgxMHYtMW0wLTE5YzEuMSAwIDIgLjkgMiAydjE4YzAgMS4xLS45IDItMiAySDdjLTEuMSAwLTItLjktMi0yVjNjMC0xLjEuOS0yIDItMmgxMHpNNyAxOGgxMFY2SDd2MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDaGVja3Jvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS42IDE4LjIgMTMgMTEuNzV2LS45MWEzLjQ5NiAzLjQ5NiAwIDAgMC0uMTgtNi43NUEzLjUxIDMuNTEgMCAwIDAgOC41IDcuNWgyYzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41YzAgLjg0LS42OSAxLjUyLTEuNTMgMS41LS41NC0uMDEtLjk3LjQ1LS45Ny45OXYxLjc2TDIuNCAxOC4yYy0uNzcuNTgtLjM2IDEuOC42IDEuOGgxOGMuOTYgMCAxLjM3LTEuMjIuNi0xLjh6TTYgMThsNi00LjUgNiA0LjVINnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoaWxkQ2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNC41XCIsXCJjeVwiOlwiMTAuNVwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjkuNVwiLFwiY3lcIjpcIjEwLjVcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuOTQgMTEuMzRhNC4wMDggNC4wMDggMCAwIDAtMi44MS0zLjE3IDkuMTE0IDkuMTE0IDAgMCAwLTIuMTktMi45MUMxNi4zNiAzLjg1IDE0LjI4IDMgMTIgM3MtNC4zNi44NS01Ljk0IDIuMjZjLS45Mi44MS0xLjY3IDEuOC0yLjE5IDIuOTFhMy45OTQgMy45OTQgMCAwIDAtMi44MSAzLjE3Yy0uMDQuMjEtLjA2LjQzLS4wNi42NiAwIC4yMy4wMi40NS4wNi42NmE0LjAwOCA0LjAwOCAwIDAgMCAyLjgxIDMuMTcgOC45NzcgOC45NzcgMCAwIDAgMi4xNyAyLjg5QzcuNjIgMjAuMTQgOS43MSAyMSAxMiAyMXM0LjM4LS44NiA1Ljk3LTIuMjhjLjktLjggMS42NS0xLjc5IDIuMTctMi44OWEzLjk5OCAzLjk5OCAwIDAgMCAyLjgtMy4xN2MuMDQtLjIxLjA2LS40My4wNi0uNjYgMC0uMjMtLjAyLS40NS0uMDYtLjY2ek0xOSAxNGMtLjEgMC0uMTktLjAyLS4yOS0uMDMtLjIuNjctLjQ5IDEuMjktLjg2IDEuODZDMTYuNiAxNy43NCAxNC40NSAxOSAxMiAxOXMtNC42LTEuMjYtNS44NS0zLjE3Yy0uMzctLjU3LS42Ni0xLjE5LS44Ni0xLjg2LS4xLjAxLS4xOS4wMy0uMjkuMDMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJjLjEgMCAuMTkuMDIuMjkuMDMuMi0uNjcuNDktMS4yOS44Ni0xLjg2QzcuNCA2LjI2IDkuNTUgNSAxMiA1czQuNiAxLjI2IDUuODUgMy4xN2MuMzcuNTcuNjYgMS4xOS44NiAxLjg2LjEtLjAxLjE5LS4wMy4yOS0uMDMgMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyem0tNyAzYzIuMDEgMCAzLjc0LTEuMjMgNC41LTNoLTljLjc2IDEuNzcgMi40OSAzIDQuNSAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hpbGRGcmllbmRseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMnY4aDhjMC00LjQyLTMuNTgtOC04LTh6bTIgNlY0LjM0YzEuNy42IDMuMDUgMS45NSAzLjY2IDMuNjZIMTV6bS04LjU2IDMtLjk1LTJIMnYyaDIuMjJzMS44OSA0LjA3IDIuMTIgNC40MmMtMS4xLjU5LTEuODQgMS43NS0xLjg0IDMuMDhDNC41IDIwLjQzIDYuMDcgMjIgOCAyMmMxLjc2IDAgMy4yMi0xLjMgMy40Ni0zaDIuMDhjLjI0IDEuNyAxLjcgMyAzLjQ2IDMgMS45MyAwIDMuNS0xLjU3IDMuNS0zLjUgMC0xLjA0LS40Ni0xLjk3LTEuMTgtMi42MUE3Ljk0OCA3Ljk0OCAwIDAgMCAyMSAxMUg2LjQ0ek04IDIwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNy4xNyAxNyA4IDE3czEuNS42NyAxLjUgMS41UzguODMgMjAgOCAyMHptOSAwYy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuMTcgMTcgMTcgMTdzMS41LjY3IDEuNSAxLjVTMTcuODMgMjAgMTcgMjB6bS43NC01LjM0LS4yOS4zN0EzLjUwNSAzLjUwNSAwIDAgMCAxMy44NCAxN2gtMi42OGMtLjUtMS4wNC0xLjUtMS44LTIuNjgtMS45N2wtLjQ0LS42N2MtLjEtLjE3LS4zNC0uNjktLjY3LTEuMzZoMTEuMjljLS4yMS41OS0uNTIgMS4xNS0uOTIgMS42NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvcnBvcmF0ZUZhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3VjNIMnYxOGgyMFY3SDEyem0tMiAxMkg0di0yaDZ2MnptMC00SDR2LTJoNnYyem0wLTRINFY5aDZ2MnptMC00SDRWNWg2djJ6bTEwIDEyaC04VjloOHYxMHptLTItOGgtNHYyaDR2LTJ6bTAgNGgtNHYyaDR2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb3R0YWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMyA2IDcuNThWNkg0djMuMTFMMSAxMS40bDEuMjEgMS41OUw0IDExLjYyVjIxaDE2di05LjM4bDEuNzkgMS4zNkwyMyAxMS40IDEyIDN6bTYgMTZoLTV2LTRoLTJ2NEg2di04LjlsNi00LjU4IDYgNC41OFYxOXpNMTAgMWMwIDEuNjYtMS4zNCAzLTMgMy0uNTUgMC0xIC40NS0xIDFINGMwLTEuNjYgMS4zNC0zIDMtMyAuNTUgMCAxLS40NSAxLTFoMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvdW50ZXJ0b3BzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBoLTRWN2MwLTEuNjYtMS4zNC0zLTMtM3MtMyAxLjM0LTMgM2gyYzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYzSDhjMS4xIDAgMi0uOSAyLTJWNEg0djRjMCAxLjEuOSAyIDIgMkgydjJoMnY4aDE2di04aDJ2LTJ6TTYgNmgydjJINlY2em0wIDEydi02aDV2Nkg2em0xMiAwaC01di02aDV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNyaWIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA5aC02VjRIOEM1Ljc5IDQgNCA1Ljc5IDQgOHY2YzAgMS4xLjkgMiAyIDJoMnYyLjkzYy0uNjEtLjM1LTEuMTYtLjc4LTEuNjUtMS4yN2wtMS40MiAxLjQyQzYuNzQgMjAuODggOS4yNCAyMiAxMiAyMmMyLjc2IDAgNS4yNi0xLjEyIDcuMDctMi45M2wtMS40Mi0xLjQyYy0uNDkuNDktMS4wNS45Mi0xLjY1IDEuMjdWMTZoMmMxLjEgMCAyLS45IDItMnYtM2MwLTEuMS0uOS0yLTItMnptLTQgMTAuNzVjLS42NC4xNi0xLjMxLjI1LTIgLjI1cy0xLjM2LS4wOS0yLS4yNVYxNmg0djMuNzV6TTE4IDE0SDZWOGMwLTEuMS45LTIgMi0yaDJ2NWg4djN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEZXNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiA2djEyaDJWOGgxMHYxMGgydi0yaDR2MmgyVjZIMnptMTggMnYyaC00VjhoNHptLTQgNnYtMmg0djJoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb05vdFN0ZXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOC41MSAxNS42OC0xLjQxLTEuNDEgNC40OC00LjQ4TDIzIDExLjJsLTQuNDkgNC40OHptLTMuNTMtMy41MyAzLjA3LTMuMDctNC4yNS00LjI2LTMuMDggMy4wN0w5LjMgNi40NyAxMy44IDJsNy4wOCA3LjA4LTQuNDggNC40OC0xLjQyLTEuNDF6bTYuMiA5LjA1LTEuNDEgMS40MS01Ljk0LTUuOTRMMTAuNSAyMEgxdi0yLjYzYzAtLjg0LjUyLTEuNTcgMS4zLTEuODguNTgtLjIzIDEuMjgtLjU2IDEuOTctMS4wMmwxLjM4IDEuMzhjLjA5LjEuMjIuMTUuMzUuMTVzLjI2LS4wNS4zNi0uMTVjLjItLjIuMi0uNTEgMC0uNzFsLTEuMjgtMS4yOGMuMjctLjI0LjUzLS41MS43Ny0uOGwxLjI3IDEuMjdhLjQ4NS40ODUgMCAwIDAgLjcgMGMuMi0uMi4yLS41MSAwLS43MWwtMS40LTEuNGMuMTktLjM0LjM0LS43Mi40NS0xLjEybDEuNzEgMS43MmEuNDg1LjQ4NSAwIDAgMCAuNyAwYy4xOS0uMi4xOS0uNS4wMS0uN2wtNy45LTcuOSAxLjQyLTEuNDFMMjEuMTggMjEuMnptLTguNzYtNS45NC0xLjY3LTEuNjgtMy4zMyAzLjMyYy0uNzguNzgtMi4wNS43OC0yLjgzLS4wMWwtLjE5LS4xNy0uNDcuMjRjLS4yOS4xNC0uNTkuMjctLjg5LjM5bC0uMDEuNjVoNi42NGwyLjc1LTIuNzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb05vdFRvdWNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMi44MSAyLjgxIDEuMzkgNC4yMiA3IDkuODN2NC4zbC0yLjYtMS40OGMtLjE3LS4wOS0uMzQtLjE0LS41NC0uMTQtLjI2IDAtLjUuMDktLjcuMjZMMiAxMy44OGw2LjggNy4xOGMuNTcuNiAxLjM1Ljk0IDIuMTguOTRIMTdjLjYyIDAgMS4xOC0uMTkgMS42Ni0uNTJsMS4xMiAxLjEyIDEuNDEtMS40MUwyLjgxIDIuODF6TTE3IDIwaC02Yy0uMzkgMC0uNjQtLjIzLS43NS0uMzZMNi44NyAxNkg5di00LjE3bDguMTQgOC4xNGMtLjA1LjAxLS4wOS4wMy0uMTQuMDN6bS0zLjE3LTlIMTRWMy4yNWExLjI1IDEuMjUgMCAwIDEgMi41IDBWMTFoMVY1LjI1YTEuMjUgMS4yNSAwIDAgMSAyLjUgMHYxMS45MmwtMi0yVjEzaC0yLjE3bC0yLTJ6bS0uODMtLjgzVjIuMjVhMS4yNSAxLjI1IDAgMCAwLTIuNSAwdjUuNDJsMi41IDIuNXptLTMuNS0zLjVWNC4yNUM5LjUgMy41NiA4Ljk0IDMgOC4yNSAzYy0uNjcgMC0xLjIuNTMtMS4yNCAxLjE4TDkuNSA2LjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRHJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNzUgMTZhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDYuNzVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1IDAtLjY3LS41My0xLjItMS4xOC0xLjI0TDguODcgMTBsMS40OC0yLjZjLjA5LS4xNy4xNC0uMzQuMTQtLjU0IDAtLjI2LS4wOS0uNS0uMjYtLjdMOS4xMiA1bC03LjE4IDYuOGMtLjYuNTYtLjk0IDEuMzUtLjk0IDIuMTdWMjBjMCAxLjY2IDEuMzQgMyAzIDNoMTMuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDguNzV6TTEwIDIxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNmMwLS4zOS4yMy0uNjQuMzYtLjc1TDcgOS44N1YxMmgzdjl6bTUuNjUtMTYuMTQtLjA3LS4wN2MtLjU3LS42Mi0uODItMS40MS0uNjctMi4yTDE1IDJoLTEuODlsLS4wNi40M2MtLjIgMS4zNi4yNyAyLjcxIDEuMyAzLjcybC4wNy4wNmMuNTcuNjIuODIgMS40MS42NyAyLjJsLS4xMS41OWgxLjkxbC4wNi0uNDNjLjIxLTEuMzYtLjI3LTIuNzEtMS4zLTMuNzF6bTQgMC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTkgMmgtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2Yy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZXZhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTkgMTV2LTRoMXYtMi41YzAtMS4xLS45LTItMi0ySDhjLTEuMSAwLTIgLjktMiAyVjE0aDF2NGgzek04LjUgOC41YTEuMjUgMS4yNSAwIDEgMCAwLTIuNSAxLjI1IDEuMjUgMCAwIDAgMCAyLjV6TTE4IDExbC0yLjUtNC0yLjUgNGg1em0tNSAyIDIuNSA0IDIuNS00aC01elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXNjYWxhdG9yV2FybmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuNSAyYzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptOSA3LjVjMCAuODMuNjcgMS41IDEuNSAxLjVzMS41LS42NyAxLjUtMS41UzE3LjgzIDggMTcgOHMtMS41LjY3LTEuNSAxLjV6bTMgMi41aC0yLjg0Yy0uNTguMDEtMS4xNC4zMi0xLjQ1Ljg2bC0uOTIgMS4zMkw5LjcyIDhhMi4wMiAyLjAyIDAgMCAwLTEuNzEtMUg1Yy0xLjEgMC0yIC45LTIgMnY2aDEuNXY3aDVWMTEuNjFMMTIuMDMgMTZoMi4ybC43Ny0xLjFWMjJoNHYtNWgxdi0zLjVjMC0uODItLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRXNjYWxhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgNXYxNEg1VjVoMTRtMC0ySDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptLTIgM2gtMy4zbC01IDlIN2MtLjgzIDAtMS41LjY3LTEuNSAxLjVTNi4xNyAxOCA3IDE4aDMuM2w1LTlIMTdjLjgzIDAgMS41LS42NyAxLjUtMS41UzE3LjgzIDYgMTcgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhbWlseVJlc3Ryb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNGMwLTEuMTEuODktMiAyLTJzMiAuODkgMiAyLS44OSAyLTIgMi0yLS44OS0yLTJ6bTQgMTh2LTZoMi41bC0yLjU0LTcuNjNBMi4wMSAyLjAxIDAgMCAwIDE4LjA2IDdoLS4xMmEyIDIgMCAwIDAtMS45IDEuMzdsLS44NiAyLjU4YzEuMDguNiAxLjgyIDEuNzMgMS44MiAzLjA1djhoM3ptLTcuNS0xMC41Yy44MyAwIDEuNS0uNjcgMS41LTEuNXMtLjY3LTEuNS0xLjUtMS41UzExIDkuMTcgMTEgMTBzLjY3IDEuNSAxLjUgMS41ek01LjUgNmMxLjExIDAgMi0uODkgMi0ycy0uODktMi0yLTItMiAuODktMiAyIC44OSAyIDIgMnptMiAxNnYtN0g5VjljMC0xLjEtLjktMi0yLTJINGMtMS4xIDAtMiAuOS0yIDJ2NmgxLjV2N2g0em02LjUgMHYtNGgxdi00YzAtLjgyLS42OC0xLjUtMS41LTEuNWgtMmMtLjgyIDAtMS41LjY4LTEuNSAxLjV2NGgxdjRoM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZlbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTJ2LTJoLTJWN2wtMy0zLTIgMi0yLTItMiAyLTItMi0zIDN2M0gzdjJoMnYySDN2MmgydjRoMTR2LTRoMnYtMmgtMnYtMmgyem0tNS01LjE3IDEgMVYxMGgtMlY3LjgzbC40MS0uNDEuNTktLjU5em0tNCAwIC41OS41OS40MS40MVYxMGgtMlY3LjgzbC40MS0uNDEuNTktLjU5ek0xMSAxNHYtMmgydjJoLTJ6bTIgMnYyaC0ydi0yaDJ6TTcgNy44M2wxLTEgLjU5LjU5LjQxLjQxVjEwSDdWNy44M3pNNyAxMmgydjJIN3YtMnptMCA0aDJ2Mkg3di0yem0xMCAyaC0ydi0yaDJ2MnptMC00aC0ydi0yaDJ2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpcmVFeHRpbmd1aXNoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDE5aDEwdjFjMCAxLjEtLjkgMi0yIDJIOWMtMS4xIDAtMi0uOS0yLTJ2LTF6bTAtMWgxMHYtNUg3djV6TTE3IDN2NmwtMy4xNS0uNjZjLS4wMSAwLS4wMS4wMS0uMDIuMDIgMS41NS42MiAyLjcyIDEuOTggMy4wNyAzLjY0SDcuMWMuMzQtMS42NiAxLjUyLTMuMDIgMy4wNy0zLjY0LS4zMy0uMjYtLjYtLjU4LS44LS45NUw1IDYuNXYtMWw0LjM3LS45MUM5Ljg3IDMuNjUgMTAuODYgMyAxMiAzYy43IDAgMS4zNC4yNSAxLjg1LjY2TDE3IDN6bS00IDNjLS4wMy0uNTktLjQ1LTEtMS0xcy0xIC40NS0xIDEgLjQ1IDEgMSAxIDEtLjQ1IDEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZpdG5lc3NDZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjU3IDE0Ljg2IDIyIDEzLjQzIDIwLjU3IDEyIDE3IDE1LjU3IDguNDMgNyAxMiAzLjQzIDEwLjU3IDIgOS4xNCAzLjQzIDcuNzEgMiA1LjU3IDQuMTQgNC4xNCAyLjcxIDIuNzEgNC4xNGwxLjQzIDEuNDNMMiA3LjcxbDEuNDMgMS40M0wyIDEwLjU3IDMuNDMgMTIgNyA4LjQzIDE1LjU3IDE3IDEyIDIwLjU3IDEzLjQzIDIybDEuNDMtMS40M0wxNi4yOSAyMmwyLjE0LTIuMTQgMS40MyAxLjQzIDEuNDMtMS40My0xLjQzLTEuNDNMMjIgMTYuMjlsLTEuNDMtMS40M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvb2RCYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNS41IDYgNC41djlINnYtOWw2LTQuNU0xMiAzIDQgOXYxMmgxNlY5bC04LTZ6bS0uNSA2LjV2M0gxMXYtM2gtMXYzaC0uNXYtM2gtMXYzYzAgLjgzLjY3IDEuNSAxLjUgMS41djRoMXYtNGMuODMgMCAxLjUtLjY3IDEuNS0xLjV2LTNoLTF6bTEuNSAydjNoMVYxOGgxVjkuNWMtMS4xIDAtMiAuOS0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGb3VuZGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoM0wxMiAzIDIgMTJoM3YzSDN2MmgydjNoMnYtM2g0djNoMnYtM2g0djNoMnYtM2gydi0yaC0ydi0zek03IDE1di00LjgxbDQtMy42VjE1SDd6bTYgMFY2LjU5bDQgMy42VjE1aC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRnJlZUJyZWFrZmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNCAxOWgxNnYySDR6TTIwIDNINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJhMiAyIDAgMCAwIDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bS00IDEwYzAgMS4xLS45IDItMiAySDhjLTEuMSAwLTItLjktMi0yVjVoMTB2OHptNC01aC0yVjVoMnYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2l0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDZIOVY0SDd2Mkg2bC00IDR2OWgyMHYtOWwtNC00ek00IDEyaDEwdjVINHYtNXptMTYgNWgtNHYtNi4xN2wyLTIgMiAyVjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR29sZkNvdXJzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxOS41XCIsXCJjeVwiOlwiMTkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDUuOTIgOSAydjE4SDd2LTEuNzNjLTEuNzkuMzUtMyAuOTktMyAxLjczIDAgMS4xIDIuNjkgMiA2IDJzNi0uOSA2LTJjMC0uOTktMi4xNi0xLjgxLTUtMS45N1Y4Ljk4bDYtMy4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjBIMnYtMmg1Ljc1QTguMDMyIDguMDMyIDAgMCAwIDIgMTIuMjZjLjY0LS4xNiAxLjMxLS4yNiAyLS4yNiA0LjQyIDAgOCAzLjU4IDggOHptMTAtNy43NGMtLjY0LS4xNi0xLjMxLS4yNi0yLS4yNi0yLjkzIDAtNS40OCAxLjU4LTYuODggMy45M2E5LjgyIDkuODIgMCAwIDEgLjg3IDQuMDdoOHYtMmgtNS43NUE4LjA2MSA4LjA2MSAwIDAgMSAyMiAxMi4yNnptLTYuMzYtMS4yNGExMC4wMyAxMC4wMyAwIDAgMSA0LjA5LTVDMTUuNDQgNi4xNiAxMiA5LjY3IDEyIDE0di4wMmMuOTUtMS4yNyAyLjItMi4zIDMuNjQtM3ptLTQuMjItMi4xN0E4LjUyNyA4LjUyNyAwIDAgMCA2LjcgNEM4LjE0IDUuODYgOSA4LjE4IDkgMTAuNzFjMCAuMjEtLjAzLjQxLS4wNC42MS40My4yNC44My41MiAxLjIyLjgyYTkuOTEgOS45MSAwIDAgMSAxLjI0LTMuMjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIb2xpZGF5VmlsbGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTggNC02IDZ2MTBoMTJWMTBMOCA0em00IDE0SDl2LTNIN3YzSDR2LTcuMTdsNC00IDQgNFYxOHptLTMtNUg3di0yaDJ2MnptOSA3VjguMzVMMTMuNjUgNGgtMi44M0wxNiA5LjE4VjIwaDJ6bTQgMFY2LjY5TDE5LjMxIDRoLTIuODNMMjAgNy41MlYyMGgyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG90VHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjdcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjE1IDEyYy0uMzEtLjIyLS41OS0uNDYtLjgyLS43MmwtMS40LTEuNTVjLS4xOS0uMjEtLjQzLS4zOC0uNjktLjUtLjI5LS4xNC0uNjItLjIzLS45Ni0uMjNoLS4wM0M2LjAxIDkgNSAxMC4wMSA1IDExLjI1VjEySDJ2OGMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0ydi04SDExLjE1ek03IDIwSDV2LTZoMnY2em00IDBIOXYtNmgydjZ6bTQgMGgtMnYtNmgydjZ6bTQgMGgtMnYtNmgydjZ6TTE3LjQyIDcuMjFjLjU3LjYyLjgyIDEuNDEuNjcgMi4ybC0uMTEuNTloMS45MWwuMDYtLjQzYy4yMS0xLjM2LS4yNy0yLjcxLTEuMy0zLjcxbC0uMDctLjA3Yy0uNTctLjYyLS44Mi0xLjQxLS42Ny0yLjJMMTggM2gtMS44OWwtLjA2LjQzYy0uMiAxLjM2LjI3IDIuNzEgMS4zIDMuNzJsLjA3LjA2em0tNCAwYy41Ny42Mi44MiAxLjQxLjY3IDIuMmwtLjExLjU5aDEuOTFsLjA2LS40M2MuMjEtMS4zNi0uMjctMi43MS0xLjMtMy43MWwtLjA3LS4wN2MtLjU3LS42Mi0uODItMS40MS0uNjctMi4yTDE0IDNoLTEuODlsLS4wNi40M2MtLjIgMS4zNi4yNyAyLjcxIDEuMyAzLjcybC4wNy4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdXNlU2lkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTJoM0wxMiAzIDIgMTJoM3Y4aDJ2LTJoMTB2Mmgydi04ek03LjIxIDEwaDkuNThsLjIxLjE5VjEySDd2LTEuODFsLjIxLS4xOXptNy4zNi0ySDkuNDNMMTIgNS42OSAxNC41NyA4ek03IDE2di0yaDEwdjJIN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgOS4zVjRoLTN2Mi42TDEyIDMgMiAxMmgzdjhoNnYtNmgydjZoNnYtOGgzbC0zLTIuN3pNMTcgMThoLTJ2LTZIOXY2SDd2LTcuODFsNS00LjUgNSA0LjVWMTh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwIDEwaDRjMC0xLjEtLjktMi0yLTJzLTIgLjktMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSG91c2Vib2F0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTZjLTEuOTUgMC0yLjEgMS0zLjM0IDEtMS4xOSAwLTEuNDItMS0zLjMzLTEtMS45NSAwLTIuMDkgMS0zLjMzIDF2MmMxLjkgMCAyLjE3LTEgMy4zNS0xIDEuMTkgMCAxLjQyIDEgMy4zMyAxIDEuOTUgMCAyLjA4LTEgMy4zMi0xczEuMzcgMSAzLjMyIDFjMS45MSAwIDIuMTQtMSAzLjMzLTEgMS4xOCAwIDEuNDUgMSAzLjM1IDF2LTJjLTEuMjQgMC0xLjM4LTEtMy4zMy0xLTEuOTEgMC0yLjE0IDEtMy4zMyAxLTEuMjQgMC0xLjM5LTEtMy4zNC0xem04LjM0LTQuNjYtMS4zNyAxLjM3Yy0uMTkuMTgtLjQ1LjI5LS43MS4yOUgxN1Y5LjY1bDEuMzIuOTdMMTkuNSA5IDEyIDMuNSA0LjUgOWwxLjE4IDEuNjFMNyA5LjY1VjEzSDUuNzRjLS4yNyAwLS41Mi0uMTEtLjcxLS4yOWwtMS4zNy0xLjM3LTEuNDEgMS40MSAxLjM3IDEuMzdjLjU2LjU2IDEuMzMuODggMi4xMi44OGgxMi41MWMuOCAwIDEuNTYtLjMyIDIuMTItLjg4bDEuMzctMS4zNy0xLjQtMS40MXpNMTMgMTN2LTJoLTJ2Mkg5VjguMThsMy0yLjIgMyAyLjJWMTNoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVJcm9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgNmMtMS42NiAwLTMgMS4zNC0zIDN2NGMwIC41NS0uNDUgMS0xIDF2LTRjMC0xLjY2LTEuMzQtMy0zLTNoLTRjLTEuNjYgMC0zIDEuMzQtMyAzaDJjMC0uNTUuNDUtMSAxLTFoNGMuNTUgMCAxIC40NSAxIDF2MUg2Yy0yLjIxIDAtNCAxLjc5LTQgNHYzaDE1di0yYzEuNjYgMCAzLTEuMzQgMy0zVjljMC0uNTUuNDUtMSAxLTFoMVY2aC0xem0tNiAxMEg0di0xYzAtMS4xLjktMiAyLTJoOXYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2l0Y2hlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCA1aDJ2M0g4em0wIDdoMnY1SDh6bTEwLTkuOTlMNiAyYTIgMiAwIDAgMC0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xMS0uOS0xLjk5LTItMS45OXpNMTggMjBINnYtOS4wMmgxMlYyMHptMC0xMUg2VjRoMTJ2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1lZXRpbmdSb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSAxOVY0aC00VjNINXYxNkgzdjJoMTJWNmgydjE1aDR2LTJoLTJ6bS02IDBIN1Y1aDZ2MTR6bS0zLThoMnYyaC0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWljcm93YXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNEg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjZjMC0xLjEtLjktMi0yLTJ6TTQgNmgxMHYxMkg0VjZ6bTE2IDEyaC00VjZoNHYxMnptLTEtOWgtMlY3aDJ2MnptLTEgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptLTcuNzUtMWMtLjc5IDAtMS4zNy0uMzgtMS43OS0uNjYtLjMzLS4yMi0uNTItLjM0LS43MS0uMzQtLjM3IDAtLjguNDEtLjk1LjYxbC0xLjQyLTEuNDJjLjM1LS40IDEuMjEtMS4xOSAyLjM3LTEuMTkuOCAwIDEuMzkuMzkgMS44MS42Ny4zMS4yMS41MS4zMy42OS4zMy4zNyAwIC44LS40MS45NS0uNjFsMS40MiAxLjQyYy0uMzYuNC0xLjIxIDEuMTktMi4zNyAxLjE5em0wLTVjLS43OSAwLTEuMzctLjM4LTEuNzktLjY2LS4zMy0uMjItLjUyLS4zNC0uNzEtLjM0LS4zNyAwLS44LjQxLS45NS42MUw1LjM3IDkuMTlDNS43MyA4Ljc5IDYuNTkgOCA3Ljc1IDhjLjggMCAxLjM5LjM5IDEuODEuNjcuMzEuMjEuNTEuMzMuNjkuMzMuMzcgMCAuOC0uNDEuOTUtLjYxbDEuNDIgMS40MmMtLjM2LjQtMS4yMSAxLjE5LTIuMzcgMS4xOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5pZ2h0U2hlbHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEyIDUuNSA2IDQuNXY5SDZ2LTlsNi00LjVNMTIgMyA0IDl2MTJoMTZWOWwtOC02em0zIDloLTMuNXYzLjVIOFYxMUg3djdoMXYtMS41aDhWMThoMXYtNGMwLTEuMS0uOS0yLTItMnptLTUuMjUuNWExLjI1IDEuMjUgMCAxIDAgMCAyLjUgMS4yNSAxLjI1IDAgMCAwIDAtMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9CYWNrcGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYuOTggNC4xNWMuMDEgMCAuMDEtLjAxLjAyLS4wMVYyaDN2Mmg0VjJoM3YyLjE0YzEuNzIuNDUgMyAyIDMgMy44NnY5LjE3bC0yLTJWOGMwLTEuMS0uOS0yLTItMkg4LjgzTDYuOTggNC4xNXpNMTQuODMgMTJsMS42NyAxLjY3VjEyaC0xLjY3em00Ljk1IDEwLjYxLS44NS0uODVjLS4yOC4xNS0uNTkuMjQtLjkzLjI0SDZjLTEuMSAwLTItLjktMi0yVjhjMC0uMzYuMDYtLjY5LjE1LTEuMDJMMS4zOSA0LjIyIDIuOCAyLjgxbDE4LjM4IDE4LjM4LTEuNCAxLjQyek0xNy4xNyAyMGwtNi02SDcuNXYtMmgxLjY3TDYgOC44M1YyMGgxMS4xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vQ2VsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZ2OC4xN2wyIDJWM2MwLTEuMS0uOS0xLjk5LTItMS45OUw3IDFjLS44NSAwLTEuNTguNTUtMS44NyAxLjNMOC44MyA2SDE3ek03IDNoMTB2MUg3VjN6bTE0LjE5IDE4LjE5TDE5IDE5bC0yLTJMNyA3IDUgNSAyLjgxIDIuODEgMS4zOSA0LjIyIDUgNy44M1YyMWMwIDEuMS45IDIgMiAyaDEwYy44NSAwIDEuNTgtLjU1IDEuODctMS4zbC45MS45MSAxLjQxLTEuNDJ6TTE3IDIxSDd2LTFoMTB2MXpNNyAxOFY5LjgzTDE1LjE3IDE4SDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb0RyaW5rcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjE5IDIxLjE5IDIuODEgMi44MSAxLjM5IDQuMjJsOC4yMyA4LjIzTDExIDE0djVINnYyaDEydi0uMTdsMS43OCAxLjc4IDEuNDEtMS40MnpNMTMgMTl2LTMuMTdMMTYuMTcgMTlIMTN6TTcuODMgNWwtMi0ySDIxdjJsLTYuMiA2Ljk3LTEuNDItMS40MkwxNC43NyA5aC0yLjk0bC0yLTJoNi43NGwxLjc4LTJINy44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vRmxhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjQgNS42SDIyTDE5IDExVjdoLTFWMmg0bC0xLjYgMy42ek0xNiAxMS40djEuNzdsMiAyVjExYzAtLjg4LS43Mi0xLjYtMS42LTEuNmgtMi41NEwxMi41OCA4aC0xLjc1bDMuNCAzLjRIMTZ6TTIuMSAyLjEuNjkgMy41MWw1LjY2IDUuNjYtLjIxLjIzSDMuNmMtLjg4IDAtMS42LjcyLTEuNiAxLjZ2OS40YzAgLjg4LjcyIDEuNiAxLjYgMS42aDEyLjhjLjc1IDAgMS4zOC0uNTIgMS41NS0xLjIybDIuNTQgMi41NCAxLjQxLTEuNDFMMi4xIDIuMXptOS40IDEzLjRjMCAuODMtLjY3IDEuNS0xLjUgMS41cy0xLjUtLjY3LTEuNS0xLjVTOS4xNyAxNCAxMCAxNHMxLjUuNjcgMS41IDEuNXptNC40NiA0LjVINHYtOC42aDMuMDJsLjU5LS42NS4xNS0uMTYgMS41IDEuNUEzLjQ4NiAzLjQ4NiAwIDAgMCA2LjUgMTUuNWMwIDEuOTMgMS41NyAzLjUgMy41IDMuNSAxLjY4IDAgMy4wNy0xLjE4IDMuNDItMi43NmwyLjU1IDIuNTUtLjAxIDEuMjF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb0Zvb2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDIxaDE1LjAxdi45OGMwIC41Ni0uNDUgMS4wMS0xLjAxIDEuMDFIMi4wMWMtLjU2IDAtMS4wMS0uNDUtMS4wMS0xLjAxVjIxem0xOS40OSAyLjMxTDE2IDE4LjgzVjE5SDF2LTJoMTMuMTdsLTItMkgxYzAtMy4yNCAyLjQ2LTUuMTcgNS4zOC01Ljc5bC01LjctNS43TDIuMSAyLjEgMTMgMTNsMiAyIDYuOSA2LjktMS40MSAxLjQxek0xMC4xNyAxM2wtMi0yYy0xLjQyLjA2LTMuNTIuNTYtNC41NSAyaDYuNTV6TTIzIDVoLTVWMWgtMnY0aC01bC4yMyAyaDkuNTZsLTEgOS45NyAxLjgzIDEuODNMMjMgNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vTWVldGluZ1Jvb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDV2My44OGwyIDJWNmgzdjcuODhsMiAyVjRoLTVWM0g2LjEybDIgMnpNMi40MSAyLjEzIDEgMy41NGw0IDRWMTlIM3YyaDExdi00LjQ2TDIwLjQ2IDIzbDEuNDEtMS40MUwyLjQxIDIuMTN6TTEyIDE5SDdWOS41NGw1IDVWMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb1Bob3RvZ3JhcGh5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOC45IDYuMDcgNy40OCA0LjY2IDkgM2g2bDEuODMgMkgyMGMxLjEgMCAyIC45IDIgMnYxMmMwIC4wNS0uMDEuMS0uMDIuMTZMMjAgMTcuMTdWN2gtNC4wNWwtMS44My0ySDkuODhMOC45IDYuMDd6bTExLjU5IDE3LjI0TDE4LjE3IDIxSDRjLTEuMSAwLTItLjktMi0yVjdjMC0uNTkuMjctMS4xMi42OC0xLjQ5bC0yLTJMMi4xIDIuMWwxOS44IDE5LjgtMS40MSAxLjQxek05LjE5IDEyLjAyYy0uMTEuMzEtLjE5LjYzLS4xOS45OCAwIDEuNjYgMS4zNCAzIDMgMyAuMzUgMCAuNjctLjA4Ljk4LS4xOWwtMy43OS0zLjc5ek0xNi4xNyAxOWwtMS42OC0xLjY4Yy0uNzMuNDMtMS41OC42OC0yLjQ5LjY4LTIuNzYgMC01LTIuMjQtNS01IDAtLjkxLjI1LTEuNzYuNjgtMi40OUw0LjE3IDdINHYxMmgxMi4xN3ptLTEuMzYtNy4wMiAyLjA3IDIuMDdjLjA4LS4zNC4xMi0uNjkuMTItMS4wNSAwLTIuNzYtMi4yNC01LTUtNS0uMzYgMC0uNzEuMDQtMS4wNi4xMmwyLjA3IDIuMDdjLjg0LjMgMS41Ljk2IDEuOCAxLjc5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9TdHJvbGxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjBjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyem03LTExLjM0djMuNTFsMiAydi03LjljLjU4LS42OC45Ny0xLjI3IDEuNjUtMS4yNy43NyAwIDEuMzUuNjYgMS4zNSAxLjQ4VjdoMnYtLjUyQzIyIDQuNTYgMjAuNTIgMyAxOC42NSAzYy0xLjY2IDAtMi41NCAxLjI3LTMuMTggMi4wM2wtMy41IDQuMTEgMS40MiAxLjQyTDE1IDguNjZ6bTQuNzggMTMuOTUtMS45MS0xLjkxYy0uMjkuNzYtMS4wMSAxLjMtMS44NyAxLjMtMS4xIDAtMi0uOS0yLTIgMC0uODYuNTQtMS41OCAxLjMtMS44N0wxNC4xNyAxN0g3LjQzYy0uODUgMC0xLjMxLTEtLjc2LTEuNjVsMi42OS0zLjE2LTcuOTctNy45N0wyLjggMi44MWw3Ljg2IDcuODYgMS40MiAxLjQyIDkuMTEgOS4xMS0xLjQxIDEuNDF6TTEyLjE3IDE1bC0xLjM5LTEuMzlMOS42IDE1aDIuNTd6TTEwIDVjLjI5IDAgLjU4LjAyLjg2LjA1TDkuNDkgNi42N2wxLjQyIDEuNDJMMTQuMyA0LjFDMTMuMDMgMy40IDExLjU2IDMgMTAgM2MtMS4yMyAwLTIuNC4yNS0zLjQ3LjdMOC4xIDUuMjdBNy4wOSA3LjA5IDAgMCAxIDEwIDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVPdGhlckhvdXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMSAxMS40bDEuMjEgMS41OUw0IDExLjYyVjIxaDE2di05LjM4bDEuNzkgMS4zNkwyMyAxMS40IDEyIDN6bTYgMTZINnYtOC45bDYtNC41OCA2IDQuNThWMTl6bS05LTVjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXptMy0xYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTMgMWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDEtLjQ1IDEtMSAxLTEtLjQ1LTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwIDgtMy4yNSAzLjI1Yy4zMS4xMi41Ni4yNy43Ny4zOS4zNy4yMy41OS4zNiAxLjE1LjM2cy43OC0uMTMgMS4xNS0uMzZjLjQ2LS4yNyAxLjA4LS42NCAyLjE5LS42NHMxLjczLjM3IDIuMTguNjRjLjM3LjIyLjYuMzYgMS4xNS4zNi41NSAwIC43OC0uMTMgMS4xNS0uMzYuMTItLjA3LjI2LS4xNS40MS0uMjNMMTAuNDggNUM4LjkzIDMuNDUgNy41IDIuOTkgNSAzdjIuNWMxLjgyLS4wMSAyLjg5LjM5IDQgMS41bDEgMXptMTIgOC41aC0uMDIuMDJ6bS0xNi42NS0xYy41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjczLS4zNyAyLjE4LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDcuNjQgMi4xOC42NHMxLjczLS4zNyAyLjE4LS42NGMuMzctLjIzLjU5LS4zNiAxLjE1LS4zNi41NSAwIC43OC4xNCAxLjE1LjM2LjQ1LjI3IDEuMDYuNjMgMi4xNi42NHYtMmMtLjU1IDAtLjc4LS4xNC0xLjE1LS4zNi0uNDUtLjI3LTEuMDctLjY0LTIuMTgtLjY0cy0xLjczLjM3LTIuMTguNjRjLS4zNy4yMy0uNi4zNi0xLjE1LjM2cy0uNzgtLjE0LTEuMTUtLjM2Yy0uNDUtLjI3LTEuMDctLjY0LTIuMTgtLjY0cy0xLjczLjM3LTIuMTguNjRjLS4zNy4yMy0uNTkuMzYtMS4xNS4zNi0uNTUgMC0uNzgtLjE0LTEuMTUtLjM2LS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOC42NGMtLjM3LjIzLS41OS4zNi0xLjE1LjM2djJjMS4xMSAwIDEuNzMtLjM3IDIuMi0uNjQuMzctLjIzLjYtLjM2IDEuMTUtLjM2ek0xOC42NyAxOGMtMS4xMSAwLTEuNzMuMzctMi4xOC42NC0uMzcuMjMtLjYuMzYtMS4xNS4zNi0uNTUgMC0uNzgtLjE0LTEuMTUtLjM2LS40NS0uMjctMS4wNy0uNjQtMi4xOC0uNjRzLTEuNzMuMzctMi4xOS42NGMtLjM3LjIzLS41OS4zNi0xLjE1LjM2cy0uNzgtLjEzLTEuMTUtLjM2Yy0uNDUtLjI3LTEuMDctLjY0LTIuMTgtLjY0cy0xLjczLjM3LTIuMTkuNjRjLS4zNy4yMy0uNTkuMzYtMS4xNS4zNnYyYzEuMTEgMCAxLjczLS4zNyAyLjE5LS42NC4zNy0uMjMuNi0uMzYgMS4xNS0uMzYuNTUgMCAuNzguMTMgMS4xNS4zNi40NS4yNyAxLjA3LjY0IDIuMTguNjRzMS43My0uMzcgMi4xOS0uNjRjLjM3LS4yMy41OS0uMzYgMS4xNS0uMzYuNTUgMCAuNzguMTQgMS4xNS4zNi40NS4yNyAxLjA3LjY0IDIuMTguNjRzMS43Mi0uMzcgMi4xOC0uNjRjLjM3LS4yMy41OS0uMzYgMS4xNS0uMzYuNTUgMCAuNzguMTQgMS4xNS4zNi40NS4yNyAxLjA3LjY0IDIuMTguNjR2LTJjLS41NiAwLS43OC0uMTMtMS4xNS0uMzYtLjQ1LS4yNy0xLjA3LS42NC0yLjE4LS42NHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNi41XCIsXCJjeVwiOlwiNS41XCIsXCJyXCI6XCIyLjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJpY2VCb3dsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNjYgMTRjLS42NiAxLjkyLTIuMjQgMy41NC00LjQgNC4zOWwtMS4yNi40OVYyMGgtNHYtMS4xMmwtMS4yNy0uNWMtMi4xNi0uODUtMy43NC0yLjQ3LTQuNC00LjM5aDE1LjMzTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyYzAgMy42OSAyLjQ3IDYuODYgNiA4LjI1VjIyaDh2LTEuNzVjMy41My0xLjM5IDYtNC41NiA2LTguMjUgMC01LjUyLTQuNDgtMTAtMTAtMTB6bS0yIDEwVjQuMjZjLjY0LS4xNiAxLjMxLS4yNiAyLS4yNnMxLjM2LjEgMiAuMjZWMTJoLTR6bTYgMFY1LjA4YzIuMzkgMS4zOSA0IDMuOTYgNCA2LjkyaC00ek00IDEyYzAtMi45NSAxLjYxLTUuNTMgNC02LjkyVjEySDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb29maW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgMThoLTJ2LTJoMnYyem0yLTRIOXY2aDZ2LTZ6bTQtNC43VjRoLTN2Mi42TDEyIDMgMiAxMmgzbDctNi4zMUwxOSAxMmgzbC0zLTIuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJvb21QcmVmZXJlbmNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjY5IDE2LjM3IDEuMTQtMS0xLTEuNzMtMS40NS40OWMtLjMyLS4yNy0uNjgtLjQ4LTEuMDgtLjYzTDE5IDEyaC0ybC0uMyAxLjQ5Yy0uNC4xNS0uNzYuMzYtMS4wOC42M2wtMS40NS0uNDktMSAxLjczIDEuMTQgMWMtLjA4LjUtLjA4Ljc2IDAgMS4yNmwtMS4xNCAxIDEgMS43MyAxLjQ1LS40OWMuMzIuMjcuNjguNDggMS4wOC42M0wxNyAyMmgybC4zLTEuNDljLjQtLjE1Ljc2LS4zNiAxLjA4LS42M2wxLjQ1LjQ5IDEtMS43My0xLjE0LTFjLjA4LS41MS4wOC0uNzcgMC0xLjI3ek0xOCAxOWMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTEtMTV2NmgtMlY2aC0ydjZoLTJWNUg3djE0aDV2Mkgzdi0yaDJWM2gxMHYxaDR6bS03IDloLTJ2LTJoMnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUm9vbVNlcnZpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ljk4IDE3SDJ2MmgyMHYtMnpNMjEgMTZjLS4yNy00LjA3LTMuMjUtNy40LTcuMTYtOC4yMUEyLjAwNiAyLjAwNiAwIDAgMCAxMiA1YTIuMDA2IDIuMDA2IDAgMCAwLTEuODQgMi43OUM2LjI1IDguNiAzLjI3IDExLjkzIDMgMTZoMTh6bS05LTYuNDJjMi45NSAwIDUuNDcgMS44MyA2LjUgNC40MWgtMTNBNy4wMDIgNy4wMDIgMCAwIDEgMTIgOS41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJ2SG9va3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAxN3YtNmMwLTEuMS0uOS0yLTItMkg3VjdsLTMgMyAzIDN2LTJoNHYzSDR2M2MwIDEuMS45IDIgMiAyaDJjMCAxLjY2IDEuMzQgMyAzIDNzMy0xLjM0IDMtM2g4di0yaC0yem0tOSAzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTctNmgtNHYtM2g0djN6TTE3IDJ2Mkg5djJoOHYybDMtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbW9rZUZyZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjUgMTNIMjJ2M2gtMS41ek0xOCAxM2gxLjV2M0gxOHptLTEgMGgtMi4zNEwxNyAxNS4zNHptLTIuNS00LjM1aDEuNTNjMS4wNSAwIDEuOTcuNzQgMS45NyAyLjA1VjEyaDEuNXYtMS42NGMwLTEuODEtMS42LTMuMTYtMy40Ny0zLjE2SDE0LjVjLTEuMDIgMC0xLjg1LS45OC0xLjg1LTJzLjgzLTEuNzUgMS44NS0xLjc1di0xLjVhMy4zNSAzLjM1IDAgMCAwIDAgNi43em00LjM1LTMuOTJjLjYyLS42MSAxLTEuNDUgMS0yLjM4aC0xLjVjMCAxLjAyLS44MyAxLjg1LTEuODUgMS44NXYxLjVjMi4yNCAwIDQgMS44MyA0IDQuMDdWMTJIMjJWOS43NmMwLTIuMjItMS4yOC00LjE0LTMuMTUtNS4wM3pNMy40MSA0LjU5IDIgNmw3IDdIMnYzaDEwbDcgNyAxLjQxLTEuNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbW9raW5nUm9vbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDE2aDEuNXYzSDE4ek0yIDE2aDE1djNIMnptMTQuMDMtNS44SDE0LjVjLTEuMDIgMC0xLjg1LS45OC0xLjg1LTJzLjgzLTEuNzUgMS44NS0xLjc1di0xLjVhMy4zNSAzLjM1IDAgMCAwIDAgNi43aDEuNTNjMS4wNSAwIDEuOTcuNzQgMS45NyAyLjA1VjE1aDEuNXYtMS42NGMwLTEuODEtMS42LTMuMTYtMy40Ny0zLjE2ek0yMC41IDE2SDIydjNoLTEuNXptLTEuNjUtOC4yN2MuNjItLjYxIDEtMS40NSAxLTIuMzhDMTkuODUgMy41IDE4LjM1IDIgMTYuNSAydjEuNWMxLjAyIDAgMS44NS44MyAxLjg1IDEuODVTMTcuNTIgNy4yIDE2LjUgNy4ydjEuNWMyLjI0IDAgNCAxLjgzIDQgNC4wN1YxNUgyMnYtMi4yNGMwLTIuMjItMS4yOC00LjE0LTMuMTUtNS4wM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC4yNSA2Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NS0uNzUtLjM0LS43NS0uNzUuMzQtLjc1Ljc1LS43NW0wLTEuNUMxMy4wMSA0LjUgMTIgNS41MSAxMiA2Ljc1UzEzLjAxIDkgMTQuMjUgOXMyLjI1LTEuMDEgMi4yNS0yLjI1LTEuMDEtMi4yNS0yLjI1LTIuMjV6bTUuNzUgMWMuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjUtLjUtLjIyLS41LS41LjIyLS41LjUtLjVNMjAgNGMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS0zLjUtM2MtLjgzIDAtMS41LjY3LTEuNSAxLjVTMTUuNjcgNCAxNi41IDQgMTggMy4zMyAxOCAyLjUgMTcuMzMgMSAxNi41IDF6bTQuMjUgMTVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDYuNzVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1IDAtLjY3LS41My0xLjItMS4xOC0xLjI0TDguODcgMTBsMS40OC0yLjZjLjA5LS4xNy4xNC0uMzQuMTQtLjU0IDAtLjI2LS4wOS0uNS0uMjYtLjdMOS4xMiA1bC03LjE4IDYuOGMtLjYuNTYtLjk0IDEuMzUtLjk0IDIuMTdWMjBjMCAxLjY2IDEuMzQgMyAzIDNoMTMuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDcuNzVhMS4yNSAxLjI1IDAgMCAwIDAtMi41SDEydi0xaDguNzV6TTEwIDIxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNmMwLS4zOS4yMy0uNjQuMzYtLjc1TDcgOS44N1YxMmgzdjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1LjQ5IDkuNjNjLS4xOC0yLjc5LTEuMzEtNS41MS0zLjQzLTcuNjNhMTIuMTg4IDEyLjE4OCAwIDAgMC0zLjU1IDcuNjNjMS4yOC42OCAyLjQ2IDEuNTYgMy40OSAyLjYzIDEuMDMtMS4wNiAyLjIxLTEuOTQgMy40OS0yLjYzem0tMy40NC00LjQ0Yy42MyAxLjAzIDEuMDcgMi4xOCAxLjMgMy4zOC0uNDcuMy0uOTEuNjMtMS4zNC45OC0uNDItLjM0LS44Ny0uNjctMS4zMy0uOTcuMjUtMS4yLjcxLTIuMzUgMS4zNy0zLjM5ek0xMiAxNS40NWExMi4xMSAxMi4xMSAwIDAgMC0zLjA2LTMuMmMtLjEzLS4wOS0uMjctLjE2LS40LS4yNi4xMy4wOS4yNy4xNy4zOS4yNUExMS43NzcgMTEuNzc3IDAgMCAwIDIgMTBjMCA1LjMyIDMuMzYgOS44MiA4LjAzIDExLjQ5LjYzLjIzIDEuMjkuNCAxLjk3LjUxLjY4LS4xMiAxLjMzLS4yOSAxLjk3LS41MUMxOC42NCAxOS44MiAyMiAxNS4zMiAyMiAxMGMtNC4xOCAwLTcuODUgMi4xNy0xMCA1LjQ1em0xLjMyIDQuMTVjLS40NC4xNS0uODguMjctMS4zMy4zNy0uNDQtLjA5LS44Ny0uMjEtMS4yOC0uMzYtMy4yOS0xLjE4LTUuNy0zLjk5LTYuNDUtNy4zNSAxLjEuMjYgMi4xNS43MSAzLjEyIDEuMzNsLS4wMi4wMWMuMTMuMDkuMjYuMTguMzkuMjVsLjA3LjA0Yy45OS43MiAxLjg0IDEuNjEgMi41MSAyLjY1TDEyIDE5LjFsMS42Ny0yLjU1YTEwLjE5IDEwLjE5IDAgMCAxIDIuNTMtMi42NmwuMDctLjA1Yy4wOS0uMDUuMTgtLjExLjI3LS4xN2wtLjAxLS4wMmMuOTgtLjY1IDIuMDctMS4xMyAzLjIxLTEuNC0uNzUgMy4zNy0zLjE1IDYuMTgtNi40MiA3LjM1em0tNC4zMy03LjMyYy0uMDItLjAxLS4wNC0uMDMtLjA1LS4wNCAwIDAgLjAxIDAgLjAxLjAxLjAxLjAxLjAyLjAyLjA0LjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUgMTlIOHYtNi42M2MxLjI2LS4zNCAyLjExLTEuMjcgMi43Ny0xLjk5QzExLjYgOS40NyAxMi4wOCA5IDEzIDloMnYxMHpNMTAgMi4wMmMtMS44OSAwLTMuNTEgMS4xMS00LjI3IDIuNzFDNC4xNSA1LjI2IDMgNi43NCAzIDguNWMwIDEuODYgMS4yOCAzLjQxIDMgMy44NlYyMWgxMXYtMmgyYzEuMSAwIDItLjkgMi0ydi02YzAtMS4xLS45LTItMi0yaC0xLjU2Yy4zNS0uNTkuNTYtMS4yNy41Ni0yIDAtMi4yMS0xLjc5LTQtNC00LS4zNCAwLS42Ni4wNS0uOTguMTNBNC43MDcgNC43MDcgMCAwIDAgMTAgMi4wMnpNNyAxMC41Yy0xLjEgMC0yLS45LTItMiAwLS44NS41NS0xLjYgMS4zNy0xLjg4bC44LS4yNy4zNi0uNzZDOCA0LjYyIDguOTQgNC4wMiAxMCA0LjAyYy43OSAwIDEuMzkuMzUgMS43NC42NWwuNzguNjVTMTMuMTYgNSAxMy45OSA1YzEuMSAwIDIgLjkgMiAyaC0zQzkuNjcgNyA5LjE1IDEwLjUgNyAxMC41ek0xNyAxN3YtNmgydjZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFpcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tMSAzaC00LjQydjMuMzNIMTF2My4zM0g4LjQyVjE2SDZ2Mmg0LjQydi0zLjMzSDEzdi0zLjMzaDIuNThWOEgxOFY2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RvcmVmcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjkgOC44OS0xLjA1LTQuMzdjLS4yMi0uOS0xLTEuNTItMS45MS0xLjUySDUuMDVjLS45IDAtMS42OS42My0xLjkgMS41MkwyLjEgOC44OWMtLjI0IDEuMDItLjAyIDIuMDYuNjIgMi44OC4wOC4xMS4xOS4xOS4yOC4yOVYxOWMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi02Ljk0Yy4wOS0uMDkuMi0uMTguMjgtLjI4LjY0LS44Mi44Ny0xLjg3LjYyLTIuODl6bS0yLjk5LTMuOSAxLjA1IDQuMzdjLjEuNDIuMDEuODQtLjI1IDEuMTctLjE0LjE4LS40NC40Ny0uOTQuNDctLjYxIDAtMS4xNC0uNDktMS4yMS0xLjE0TDE2Ljk4IDVsMS45My0uMDF6TTEzIDVoMS45NmwuNTQgNC41MmMuMDUuMzktLjA3Ljc4LS4zMyAxLjA3LS4yMi4yNi0uNTQuNDEtLjk1LjQxLS42NyAwLTEuMjItLjU5LTEuMjItMS4zMVY1ek04LjQ5IDkuNTIgOS4wNCA1SDExdjQuNjljMCAuNzItLjU1IDEuMzEtMS4yOSAxLjMxLS4zNCAwLS42NS0uMTUtLjg5LS40MWExLjQyIDEuNDIgMCAwIDEtLjMzLTEuMDd6bS00LjQ1LS4xNkw1LjA1IDVoMS45N2wtLjU4IDQuODZjLS4wOC42NS0uNiAxLjE0LTEuMjEgMS4xNC0uNDkgMC0uOC0uMjktLjkzLS40Ny0uMjctLjMyLS4zNi0uNzUtLjI2LTEuMTd6TTUgMTl2LTYuMDNjLjA4LjAxLjE1LjAzLjIzLjAzLjg3IDAgMS42Ni0uMzYgMi4yNC0uOTUuNi42IDEuNC45NSAyLjMxLjk1Ljg3IDAgMS42NS0uMzYgMi4yMy0uOTMuNTkuNTcgMS4zOS45MyAyLjI5LjkzLjg0IDAgMS42NC0uMzUgMi4yNC0uOTUuNTguNTkgMS4zNy45NSAyLjI0Ljk1LjA4IDAgLjE1LS4wMi4yMy0uMDNWMTlINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0cm9sbGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMjBjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIC45LTIgMi0yIDIgLjkgMiAyek02IDE4Yy0xLjEgMC0yIC45LTIgMnMuOSAyIDIgMiAyLS45IDItMi0uOS0yLTItMnptOS05LjM0TDkuNiAxNUgxNVY4LjY2TTE4LjY1IDNDMjAuNTIgMyAyMiA0LjU2IDIyIDYuNDhWN2gtMnYtLjUyQzIwIDUuNjYgMTkuNDIgNSAxOC42NSA1Yy0uNjggMC0xLjA3LjU5LTEuNjUgMS4yN1YxNWMwIDEuMS0uOSAyLTIgMkg3LjQzYy0uODUgMC0xLjMxLTEtLjc2LTEuNjVsOC44LTEwLjMyQzE2LjExIDQuMjcgMTYuOTkgMyAxOC42NSAzek0xMCA1Yy0uNjUgMC0xLjI5LjA5LTEuOTEuMjdsMS40IDEuNCAxLjM3LTEuNjFBNi4xMSA2LjExIDAgMCAwIDEwIDVtMC0yYzEuNTYgMCAzLjAzLjQgNC4zIDEuMUw5LjYgOS42MSA0LjcyIDQuNzJBOC45NjIgOC45NjIgMCAwIDEgMTAgM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhcGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgMTBWMWgtOHY5YzAgMS44NiAxLjI4IDMuNDEgMyAzLjg2VjIxaC0ydjJoNnYtMmgtMnYtNy4xNGMxLjcyLS40NSAzLTIgMy0zLjg2em0tMi03djNoLTRWM2g0em0tNCA3VjhoNHYyYzAgMS4xLS45IDItMiAycy0yLS45LTItMnptLTYtMUg4VjhoMmEyLjUgMi41IDAgMCAwIDAtNUg4VjFINnYySDRhMi41IDIuNSAwIDAgMCAwIDVoMnYxSDRhMi41IDIuNSAwIDAgMCAwIDVoMnY5aDJ2LTloMmEyLjUgMi41IDAgMCAwIDAtNXpNNCA2Yy0uMjggMC0uNS0uMjItLjUtLjVTMy43MiA1IDQgNWg2Yy4yOCAwIC41LjIyLjUuNXMtLjIyLjUtLjUuNUg0em02IDZINGMtLjI4IDAtLjUtLjIyLS41LS41cy4yMi0uNS41LS41aDZjLjI4IDAgLjUuMjIuNS41cy0uMjIuNS0uNS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNmgtMlY0aDJ2MnptMiAxaC0ydjJoMlY3em0xIDJoMlY3aC0ydjJ6bTAtNWgtMnYyaDJWNHptLTQgM2gtMnYyaDJWN3ptNCAzaC0ydjJoMnYtMnptLTMgMGgtMnYyaDJ2LTJ6bS0zLTZoLTJ2MmgyVjR6bTcgMTEuODJ2NC4xNWMwIC41Ni0uNDcgMS4wMy0xLjAzIDEtMi44OS0uMTctNS42LTEuMDMtNy45Ny0yLjRBMTcuOTk5IDE3Ljk5OSAwIDAgMSA0LjQzIDEyYTE3Ljg5IDE3Ljg5IDAgMCAxLTIuNC03Ljk3QzIgMy40NyAyLjQ3IDMgMy4wMyAzaDQuMTVjLjQ4IDAgLjg5LjM0Ljk4LjhsLjc0IDMuNjhhLjk5Ljk5IDAgMCAxLS4yNy45TDYuMSAxMC45YzEuNDMgMi41IDMuNSA0LjU3IDYgNmwyLjUyLTIuNTJhLjk4Ljk4IDAgMCAxIC45LS4yN2wzLjY3LjczYy40Ny4wOS44MS41LjgxLjk4ek01LjE4IDguOTlsMS42NS0xLjY1TDYuMzYgNUg0LjEzYy4xNyAxLjM3LjUzIDIuNzEgMS4wNSAzLjk5ek0xOCAxNi42NGwtMi4zNC0uNDctMS42NSAxLjY1YzEuMjguNTIgMi42My44NyAzLjk5IDEuMDV2LTIuMjN6TTIwIDR2MmgyVjRoLTJ6bTAgOGgydi0yaC0ydjJ6bS03LTJoLTJ2Mmgydi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVW1icmVsbGEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC41IDYuOTIgMTMgNS43N1YzLjRjMC0uMjYuMjItLjQ4LjUtLjQ4cy41LjIxLjUuNDhWNGgydi0uNkMxNiAyLjA3IDE0Ljg4IDEgMTMuNSAxUzExIDIuMDcgMTEgMy40djIuMzdMOS41IDYuOTIgNiA2LjA3bDUuMDUgMTUuMjVjLjE1LjQ1LjU1LjY4Ljk1LjY4cy44LS4yMy45NS0uNjlMMTggNi4wN2wtMy41Ljg1ek0xMy4yOCA4LjVsLjc2LjU4LjkyLS4yM0wxMyAxNC44VjguMjlsLjI4LjIxem0tMy4zMi41OS43Ni0uNTguMjgtLjIydjYuNTFMOS4wMyA4Ljg2bC45My4yM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZhcGVGcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNi41aDFjMS4zMyAwIDIuNzEtLjE4IDQtLjV2M2MtMS4yOS0uMzItMi42Ny0uNS00LS41SDJ2LTJ6TTE2LjE3IDE5SDh2LTNoNS4xN0wxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40MSAxLjQxLTMuNi0zLjZ6bTIuNjYtM0gyMnYzaC0uMTdsLTMtM3pNMTEgMTcuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjUuMjIuNS41LjUuNS0uMjIuNS0uNXptMTEtNC43NFYxNWgtMS41di0yLjIzYzAtMi4yNC0xLjc2LTQuMDctNC00LjA3VjcuMmMxLjAyIDAgMS44NS0uODMgMS44NS0xLjg1UzE3LjUyIDMuNSAxNi41IDMuNVYyYzEuODUgMCAzLjM1IDEuNSAzLjM1IDMuMzUgMCAuOTMtLjM4IDEuNzctMSAyLjM4IDEuODcuODkgMy4xNSAyLjgxIDMuMTUgNS4wM3pNMTEuMTUgOC4zMlY4LjNjMC0xLjg1IDEuNS0zLjM1IDMuMzUtMy4zNXYxLjVjLTEuMDIgMC0xLjg1LjczLTEuODUgMS43NXMuODMgMiAxLjg1IDJoMS41M2MxLjg3IDAgMy40NyAxLjM1IDMuNDcgMy4xNlYxNUgxOHYtMS4zYzAtMS4zMS0uOTItMi4wNS0xLjk3LTIuMDVoLTEuNTVsLTMuMzMtMy4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZhcGluZ1Jvb21zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxNi41aDFjMS4zMyAwIDIuNzEtLjE4IDQtLjV2M2MtMS4yOS0uMzItMi42Ny0uNS00LS41SDJ2LTJ6bTIwLS41djNIOHYtM2gxNHptLTExIDEuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjUuMjIuNS41LjUuNS0uMjIuNS0uNXptMTEtNC43NFYxNWgtMS41di0yLjIzYzAtMi4yNC0xLjc2LTQuMDctNC00LjA3VjcuMmMxLjAyIDAgMS44NS0uODMgMS44NS0xLjg1UzE3LjUyIDMuNSAxNi41IDMuNVYyYzEuODUgMCAzLjM1IDEuNSAzLjM1IDMuMzUgMCAuOTMtLjM4IDEuNzctMSAyLjM4IDEuODcuODkgMy4xNSAyLjgxIDMuMTUgNS4wM3ptLTIuNS42VjE1SDE4di0xLjNjMC0xLjMxLS45Mi0yLjA1LTEuOTctMi4wNUgxNC41YTMuMzUgMy4zNSAwIDAgMSAwLTYuN3YxLjVjLTEuMDIgMC0xLjg1LjczLTEuODUgMS43NXMuODMgMiAxLjg1IDJoMS41M2MxLjg3IDAgMy40NyAxLjM1IDMuNDcgMy4xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZpbGxhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTBjLTEuMSAwLTIgLjktMiAyaC0xVjNMMyA4djEzaDE4di05YzAtMS4xLS45LTItMi0yek01IDkuMzdsOS0zLjQ2VjEySDl2N0g1VjkuMzd6TTE5IDE5aC0zdi0zaC0ydjNoLTN2LTVoOHY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2FzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwLjc1IDE2YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg2Ljc1Yy42OSAwIDEuMjUtLjU2IDEuMjUtMS4yNSAwLS42Ny0uNTMtMS4yLTEuMTgtMS4yNEw4Ljg3IDEwbDEuNDgtMi42Yy4wOS0uMTcuMTQtLjM0LjE0LS41NCAwLS4yNi0uMDktLjUtLjI2LS43TDkuMTIgNWwtNy4xOCA2LjhjLS42LjU2LS45NCAxLjM1LS45NCAyLjE3VjIwYzAgMS42NiAxLjM0IDMgMyAzaDEzLjc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg3Ljc1YTEuMjUgMS4yNSAwIDAgMCAwLTIuNUgxMnYtMWg4Ljc1ek0xMCAyMUg0Yy0uNTUgMC0xLS40NS0xLTF2LTZjMC0uMzkuMjMtLjY0LjM2LS43NUw3IDkuODdWMTJoM3Y5em0zLjUtMTJjLjgzIDAgMS41LS42NyAxLjUtMS41IDAtLjg0LTEuNS0yLjUtMS41LTIuNVMxMiA2LjY2IDEyIDcuNWMwIC44My42NyAxLjUgMS41IDEuNXptNS04UzE2IDMuODMgMTYgNS41YTIuNSAyLjUgMCAwIDAgNSAwQzIxIDMuODMgMTguNSAxIDE4LjUgMXptMCA1LjVjLS41NSAwLTEtLjQ1LTEtMSAwLS40LjQzLTEuMjIgMS0yLjA1LjU3LjgzIDEgMS42NSAxIDIuMDUgMCAuNTUtLjQ1IDEtMSAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F0ZXJEYW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAzIDIgMTJoM3Y4aDE0di04aDNMMTIgM3pNNyAxOHYtNy44MWw1LTQuNSA1IDQuNVYxOEg3em03LTRjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yIDItNCAyLTQgMiAyLjkgMiA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2hlZWxjaGFpclBpY2t1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQuNSA0YzAtMS4xMS44OS0yIDItMnMyIC44OSAyIDItLjg5IDItMiAyLTItLjg5LTItMnptNS41IDYuOTVWOWMwLTEuMS0uOS0yLTItMkg1Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2gzLjV2LS4xMWMtMS4yNC0xLjI2LTItMi45OS0yLTQuODkgMC0yLjU4IDEuNDEtNC44NCAzLjUtNi4wNXpNMTYuNSAxN2MwIDEuNjUtMS4zNSAzLTMgM3MtMy0xLjM1LTMtM2MwLTEuMTEuNjEtMi4wNiAxLjUtMi41OHYtMi4xNmMtMi4wMi42NC0zLjUgMi41MS0zLjUgNC43NCAwIDIuNzYgMi4yNCA1IDUgNXM1LTIuMjQgNS01aC0yem0zLjA0LTNIMTVWOGgtMnY4aDUuNDZsMi40NyAzLjcxIDEuNjYtMS4xMS0zLjA1LTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJhdGhyb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDE0YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMS0uNDUgMS0xIDEtMS0uNDUtMS0xem00IDFjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptMyAwYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bS0zLTcuNWMtMS43NiAwLTMuMjIgMS4zMS0zLjQ2IDNoNi45M2EzLjUyIDMuNTIgMCAwIDAtMy40Ny0zTTEyIDZjMi43NiAwIDUgMi4yNCA1IDV2MUg3di0xYzAtMi43NiAyLjI0LTUgNS01ek05IDE4Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bTMgMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0zIDBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTEtMSAuNDUtMSAxIC40NSAxIDEgMXptNS0xNEg0djE2aDE2VjRtMC0yYzEuMSAwIDIgLjkgMiAydjE2YzAgMS4xLS45IDItMiAySDRjLTEuMSAwLTItLjktMi0yVjRjMC0xLjEuOS0yIDItMmgxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTAuNzhWOGMwLTEuNjUtMS4zNS0zLTMtM2gtNGMtLjc3IDAtMS40Ny4zLTIgLjc4LS41My0uNDgtMS4yMy0uNzgtMi0uNzhINkM0LjM1IDUgMyA2LjM1IDMgOHYyLjc4Yy0uNjEuNTUtMSAxLjM0LTEgMi4yMnY2aDJ2LTJoMTZ2Mmgydi02YzAtLjg4LS4zOS0xLjY3LTEtMi4yMnpNMTQgN2g0Yy41NSAwIDEgLjQ1IDEgMXYyaC02VjhjMC0uNTUuNDUtMSAxLTF6TTUgOGMwLS41NS40NS0xIDEtMWg0Yy41NSAwIDEgLjQ1IDEgMXYySDVWOHptLTEgN3YtMmMwLS41NS40NS0xIDEtMWgxNGMuNTUgMCAxIC40NSAxIDF2Mkg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVkcm9vbUJhYnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljk0IDE0LjA0Yy0uMzQuMzQtLjcxLjY0LTEuMS45MkwxNiAxMy41VjExaDF2LTFoLTUuNjJMOS42NSA3SDZsMSAuNzZMNS41IDkuNWwuOTUgMUw4IDkuNTF2My45OWwtLjg0IDEuNDZjLS4zOS0uMjctLjc2LS41OC0xLjEtLjkyTDUgMTUuMWMxLjg3IDEuODcgNC4zNiAyLjkgNyAyLjlzNS4xMy0xLjAzIDctMi45bC0xLjA2LTEuMDZ6bS05LjQ5IDEuNjcuMDMtLjA2LjgxLTEuNDFjMS43NC42NSAzLjY2LjY1IDUuNCAwbC44MSAxLjQxLjAzLjA2Yy0xLjEuNTEtMi4zLjc5LTMuNTUuNzlzLTIuNDMtLjI3LTMuNTMtLjc5ek0yMCA0djE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmVkcm9vbUNoaWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA0djE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tMy41IDguNjdWOWMwLTEuMS0uOS0yLTItMmgtNWMtMS4xIDAtMiAuOS0yIDJ2MS42N2MtLjg4LjM1LTEuNSAxLjItMS41IDIuMlYxN2gxLjV2LTEuNWg5VjE3SDE4di00LjEzYzAtMS0uNjItMS44NS0xLjUtMi4yek0xNSA4LjV2Mkg5di0yaDZ6bS03LjUgNC4zN2MwLS40OC4zOS0uODcuODctLjg3aDcuMjdjLjQ4IDAgLjg3LjM5Ljg3Ljg3VjE0aC05di0xLjEzSDcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJlZHJvb21QYXJlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjM1IDExLjQ1VjljMC0xLjEtLjktMi0yLTJIMTNjLS4zNyAwLS43Mi4xMi0xIC4zMi0uMjgtLjItLjYzLS4zMi0xLS4zMkg3LjY1Yy0xLjEgMC0yIC45LTIgMnYyLjQ1Yy0uNC40Ni0uNjUgMS4wNi0uNjUgMS43MlYxN2gxLjV2LTEuNWgxMVYxN0gxOXYtMy44M2MwLS42Ni0uMjUtMS4yNi0uNjUtMS43MnptLTEuNi0uOTVoLTR2LTJoNHYyem0tOS41LTJoNHYyaC00di0yek0xNy41IDE0aC0xMXYtMWMwLS41NS40NS0xIDEtMWg5Yy41NSAwIDEgLjQ1IDEgMXYxek0yMCA0djE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQmxlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYuMTMgMTUuMTMgMTggM2gtNFYyaC00djFINWMtMS4xIDAtMiAuOS0yIDJ2NGMwIDEuMS45IDIgMiAyaDIuMjNsLjY0IDQuMTNDNi43NCAxNi4wNSA2IDE3LjQzIDYgMTl2MWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJ2LTFjMC0xLjU3LS43NC0yLjk1LTEuODctMy44N3pNNSA5VjVoMS4zMWwuNjIgNEg1em0xMC42Ny00LTEuMzggOUg5LjcyTDguMzMgNWg3LjM0ek0xNiAyMEg4di0xYzAtMS42NSAxLjM1LTMgMy0zaDJjMS42NSAwIDMgMS4zNSAzIDN2MXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjE4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYW1lcmFJbmRvb3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDEzdi0xYzAtLjU1LS40NS0xLTEtMUg5Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMWwyIDEuMDZ2LTQuMTJMMTQgMTN6bS0yLTcuNSA2IDQuNXY5SDZ2LTlsNi00LjVNMTIgMyA0IDl2MTJoMTZWOWwtOC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2FtZXJhT3V0ZG9vciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjMC0uNTUtLjQ1LTEtMS0xaC00Yy0uNTUgMC0xIC40NS0xIDF2NGMwIC41NS40NSAxIDEgMWg0Yy41NSAwIDEtLjQ1IDEtMXYtMWwyIDEuMDZ2LTQuMTJMMTggMTR2LTF6TTEyIDMgNCA5djEyaDE2di0ySDZ2LTlsNi00LjUgNiA0LjV2MWgyVjlsLTgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYWlyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNyAxMGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0ySDdjLTEuMSAwLTIgLjktMiAydjNjMCAxLjEuOSAyIDIgMmgxdjJIN2MtMS4xIDAtMiAuOS0yIDJ2N2gydi0zaDEwdjNoMnYtN2MwLTEuMS0uOS0yLTItMmgtMXYtMmgxek03IDhWNWgxMHYzSDd6bTEwIDhIN3YtMmgxMHYyem0tMy00aC00di0yaDR2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoYWlyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCA4VjZjMC0xLjY1LTEuMzUtMy0zLTNIN0M1LjM1IDMgNCA0LjM1IDQgNnYyYy0xLjY1IDAtMyAxLjM1LTMgM3Y1YzAgMS42NSAxLjM1IDMgMyAzdjFjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0xaDEydjFjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xdi0xYzEuNjUgMCAzLTEuMzUgMy0zdi01YzAtMS42NS0xLjM1LTMtMy0zek02IDZjMC0uNTUuNDUtMSAxLTFoMTBjLjU1IDAgMSAuNDUgMSAxdjIuNzhjLS42MS41NS0xIDEuMzQtMSAyLjIydjJIN3YtMmMwLS44OC0uMzktMS42Ny0xLTIuMjJWNnptMTUgMTBjMCAuNTUtLjQ1IDEtMSAxSDRjLS41NSAwLTEtLjQ1LTEtMXYtNWMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NGgxNHYtNGMwLS41NS40NS0xIDEtMXMxIC40NSAxIDF2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvZmZlZU1ha2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA2VjRoMlYySDZjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTR2LTJoLTQuMDNBNC45NjYgNC45NjYgMCAwIDAgMTggMTZ2LTVIOHY1YzAgMS42NC44MSAzLjA5IDIuMDMgNEg2VjRoMnYyYzAgLjU1LjQ1IDEgMSAxaDhjLjU1IDAgMS0uNDUgMS0xem0tOCAxMHYtM2g2djNjMCAxLjY1LTEuMzUgMy0zIDNzLTMtMS4zNS0zLTN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTNcIixcImN5XCI6XCI5XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDb2ZmZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgM0g2Yy0xLjEgMC0yIC45LTIgMnY1LjcxYzAgMy44MyAyLjk1IDcuMTggNi43OCA3LjI5IDMuOTYuMTIgNy4yMi0zLjA2IDcuMjItN3YtMWguNWMxLjkzIDAgMy41LTEuNTcgMy41LTMuNVMyMC40MyAzIDE4LjUgM3pNMTYgNXYzSDZWNWgxMHptMCA1djFjMCAyLjc2LTIuMjQgNS01IDVzLTUtMi4yNC01LTV2LTFtMTIuNS0ySDE4VjVoLjVjLjgzIDAgMS41LjY3IDEuNSAxLjVTMTkuMzMgOCAxOC41IDh6TTQgMTloMTZ2Mkg0di0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGluaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNC43NSA2Yy0xLjM3IDAtMi41IDEuNTItMi41IDMuNCAwIDEuNDguNyAyLjcxIDEuNjcgMy4xOGwuMDguMDRWMTloMS41di02LjM4bC4wOC0uMDNjLjk3LS40NyAxLjY3LTEuNyAxLjY3LTMuMTggMC0xLjg4LTEuMTItMy40MS0yLjUtMy40MU0xMC41IDZjLS4yNyAwLS41LjIyLS41LjVWOWgtLjc1VjYuNWMwLS4yOC0uMjItLjUtLjUtLjVzLS41LjIyLS41LjVWOUg3LjVWNi41YzAtLjI4LS4yMi0uNS0uNS0uNXMtLjUuMjItLjUuNXYzLjhjMCAuOTMuNjQgMS43MSAxLjUgMS45M1YxOWgxLjV2LTYuNzdjLjg2LS4yMiAxLjUtMSAxLjUtMS45M1Y2LjVjMC0uMjgtLjIyLS41LS41LS41ek0yMCA0SDR2MTZoMTZWNG0wLTJjMS4xIDAgMiAuOSAyIDJ2MTZjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9vckJhY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDE5VjVjMC0xLjEtLjktMi0yLTJIN2MtMS4xIDAtMiAuOS0yIDJ2MTRIM3YyaDE4di0yaC0yem0tMiAwSDdWNWgxMHYxNHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMWgydjJIOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvb3JGcm9udCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgMTlWNWMwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnYxNEgzdjJoMTh2LTJoLTJ6bS0yIDBIN1Y1aDEwdjE0em0tNC04aDJ2MmgtMnYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURvb3JTbGlkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMCAxM0g4di0yaDJ2MnptNi0yaC0ydjJoMnYtMnptNSA4djJIM3YtMmgxVjVjMC0xLjEuOS0yIDItMmgxMmMxLjEgMCAyIC45IDIgMnYxNGgxek0xMSA1SDZ2MTRoNVY1em03IDBoLTV2MTRoNVY1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9vcmJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE2LjVoMmMwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMXptNC0xLjV2LTIuMzRjMC0xLjU0LS44MS0yLjgyLTIuMjUtMy4xNnYtLjI1YzAtLjQxLS4zNC0uNzUtLjc1LS43NXMtLjc1LjM0LS43NS43NXYuMjVDOS44MiA5Ljg0IDkgMTEuMTIgOSAxMi42NlYxNUg4djFoOHYtMWgtMXptLTMtOS41TDYgMTB2OWgxMnYtOWwtNi00LjVNMTIgM2w4IDZ2MTJINFY5bDgtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZlZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY4bC01LTV6bTMgMTZINVY1aDEwdjRoNHYxMHpNNyAxN2gxMHYtMkg3djJ6bTUtMTBIN3YyaDVWN3ptLTUgNmgxMHYtMkg3djJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGbGF0d2FyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgNy4wOGMwIDEuNzctLjg0IDMuMjUtMiAzLjgyVjIxaC0yVjEwLjljLTEuMTYtLjU3LTItMi4wNS0yLTMuODJDMTAuMDEgNC44MyAxMS4zNSAzIDEzIDNjMS42NiAwIDMgMS44MyAzIDQuMDh6TTE3IDN2MThoMnYtOGgyVjdjMC0xLjc2LTEuMjQtNC00LTR6TTguMjggM2MtLjQgMC0uNzIuMzItLjcyLjcyVjdoLS44NFYzLjcyQzYuNzIgMy4zMiA2LjQgMyA2IDNzLS43Mi4zMi0uNzIuNzJWN2gtLjg0VjMuNzJjMC0uNC0uMzItLjcyLS43Mi0uNzJTMyAzLjMyIDMgMy43MlY5YzAgMS4xLjkgMiAyIDJ2MTBoMlYxMWMxLjEgMCAyLS45IDItMlYzLjcyYzAtLjQtLjMyLS43Mi0uNzItLjcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR2FyYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMCAySDRjLTEuMSAwLTIgLjktMiAydjE2YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNGMwLTEuMS0uOS0yLTItMnptMCAxOEg0VjRoMTZ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc4IDE4LjVoLjQ0Yy40MyAwIC43OC0uMzYuNzgtLjgxVjE2LjVoMTB2MS4xOWMwIC40NS4zNC44MS43OC44MWguNDRjLjQzIDAgLjc4LS4zNi43OC0uODF2LTYuNWMtLjgyLTIuNDYtMS4zNC00LjAzLTEuNTYtNC42OS0uMDUtLjE2LS4xMi0uMjktLjE5LS40LS4wMi0uMDItLjAzLS4wNC0uMDUtLjA3LS4zOC0uNTItLjkyLS41My0uOTItLjUzSDcuNzJzLS41NC4wMS0uOTIuNTRjLS4wMi4wMi0uMDMuMDQtLjA1LjA2LS4wNy4xMS0uMTQuMjQtLjE5LjQtLjIyLjY2LS43NCAyLjIyLTEuNTYgNC42OXY2LjVjMCAuNDUuMzUuODEuNzguODF6bTIuNTUtMTFoNy4zNGwuMjMuNjkuNDMgMS4zMUg3LjY3bC42Ni0yek03IDExLjUxdi0uMDFoMTB2M0g3di0yLjk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTGlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzIDYuMDZWM2gtMnYzLjA2Yy00LjUuNS04IDQuMzEtOCA4LjkzQzMgMTYuMSAzLjkgMTcgNS4wMSAxN0g4YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRoMi45OWMxLjExIDAgMi4wMS0uOSAyLjAxLTIuMDEgMC00LjYyLTMuNS04LjQzLTgtOC45M3pNMTIgMTljLTEuMSAwLTItLjktMi0yaDRjMCAxLjEtLjkgMi0yIDJ6bTAtNEg1YzAtMy44NiAzLjE0LTcgNy03czcgMy4xNCA3IDdoLTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMaXZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Ljc1IDEwLjM1VjljMC0xLjY2LTEuMzQtMy0zLTNoLTUuNWMtMS42NiAwLTMgMS4zNC0zIDN2MS4zNUM1LjUxIDEwLjc4IDUgMTEuNTggNSAxMi41VjE2YzAgMS4xLjkgMiAyIDJoMTBjMS4xIDAgMi0uOSAyLTJ2LTMuNWMwLS45Mi0uNTEtMS43Mi0xLjI1LTIuMTV6TTkuMjUgNy41aDUuNWMuODMgMCAxLjUuNjcgMS41IDEuNXYxLjAzQTIuNDggMi40OCAwIDAgMCAxNCAxMi41di41aC00di0uNWMwLTEuMy0uOTktMi4zNS0yLjI1LTIuNDdWOWMwLS44My42Ny0xLjUgMS41LTEuNXpNMTcuNSAxNmMwIC4yOC0uMjIuNS0uNS41SDdjLS4yOCAwLS41LS4yMi0uNS0uNXYtMy41YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYyaDd2LTJjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxVjE2ek0yMCA0djE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFuYWdlU2VhcmNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03IDlIMlY3aDV2MnptMCAzSDJ2Mmg1di0yem0xMy41OSA3LTMuODMtMy44M2MtLjguNTItMS43NC44My0yLjc2LjgzLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTUgNSAyLjI0IDUgNWMwIDEuMDItLjMxIDEuOTYtLjgzIDIuNzVMMjIgMTcuNTkgMjAuNTkgMTl6TTE3IDExYzAtMS42NS0xLjM1LTMtMy0zcy0zIDEuMzUtMyAzIDEuMzUgMyAzIDMgMy0xLjM1IDMtM3pNMiAxOWgxMHYtMkgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQb2RjYXN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgMTJjMCAuNzQtLjQgMS4zOC0xIDEuNzJWMjJoLTJ2LTguMjhjLS42LS4zNS0xLS45OC0xLTEuNzIgMC0xLjEuOS0yIDItMnMyIC45IDIgMnptLTItNmMtMy4zMSAwLTYgMi42OS02IDYgMCAxLjc0Ljc1IDMuMzEgMS45NCA0LjRsMS40Mi0xLjQyQTMuOTU3IDMuOTU3IDAgMCAxIDggMTJjMC0yLjIxIDEuNzktNCA0LTRzNCAxLjc5IDQgNGMwIDEuMTktLjUzIDIuMjUtMS4zNiAyLjk4bDEuNDIgMS40MkE1Ljk1NyA1Ljk1NyAwIDAgMCAxOCAxMmMwLTMuMzEtMi42OS02LTYtNnptMC00QzYuNDggMiAyIDYuNDggMiAxMmMwIDIuODUgMS4yIDUuNDEgMy4xMSA3LjI0bDEuNDItMS40MkE3Ljk4NyA3Ljk4NyAwIDAgMSA0IDEyYzAtNC40MSAzLjU5LTggOC04czggMy41OSA4IDhjMCAyLjI5LS45OCA0LjM2LTIuNTMgNS44MmwxLjQyIDEuNDJDMjAuOCAxNy40MSAyMiAxNC44NSAyMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNob3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxN2MwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMSAuNDUtMSAxLTEgMSAuNDUgMSAxem0zLTFjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXptNCAwYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMtNHYySDV2LTJjMC0zLjUzIDIuNjEtNi40MyA2LTYuOTJWM2gydjIuMDhjMy4zOS40OSA2IDMuMzkgNiA2Ljkyem0tMiAwYzAtMi43Ni0yLjI0LTUtNS01cy01IDIuMjQtNSA1aDEwem0tOSA3Yy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTQgMGMtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMSAxLS40NSAxLTEtLjQ1LTEtMS0xem00IDBjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxlQmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIgNy41QzIyIDUuNTcgMTcuNTIgNCAxMiA0UzIgNS41NyAyIDcuNWMwIDEuODEgMy45NSAzLjMxIDkgMy40OFYxNUg5LjM1Yy0uODIgMC0xLjU1LjUtMS44NiAxLjI2TDYgMjBoMmwxLjItM2g1LjZsMS4yIDNoMmwtMS41LTMuNzRjLS4zLS43Ni0xLjA0LTEuMjYtMS44NS0xLjI2SDEzdi00LjAyYzUuMDUtLjE3IDktMS42NyA5LTMuNDh6TTEyIDZjNC4wNSAwIDYuNzQuODYgNy43MiAxLjVDMTguNzQgOC4xNCAxNi4wNSA5IDEyIDlzLTYuNzQtLjg2LTcuNzItMS41QzUuMjYgNi44NiA3Ljk1IDYgMTIgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRhYmxlUmVzdGF1cmFudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjk2IDkuNzMtMS40My01YS45OTYuOTk2IDAgMCAwLS45Ni0uNzNINC40M2MtLjQ1IDAtLjg0LjMtLjk2LjczbC0xLjQzIDVjLS4xOC42My4zIDEuMjcuOTYgMS4yN2gyLjJMNCAyMGgybC42Ny01aDEwLjY3bC42NiA1aDJsLTEuMi05SDIxYy42NiAwIDEuMTQtLjY0Ljk2LTEuMjd6TTYuOTMgMTNsLjI3LTJoOS42bC4yNyAySDYuOTN6bS0yLjYtNCAuODYtM2gxMy42M2wuODYgM0g0LjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2luZG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgOGgtNlY1aDZ2NnptLTgtNnY2SDVWNWg2em0tNiA4aDZ2Nkg1di02em04IDZ2LTZoNnY2aC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lWWFyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggMTNjLTMuMzEgMC02IDIuNjktNiA2IDMuMzEgMCA2LTIuNjkgNi02ek02IDEzYzAgMy4zMSAyLjY5IDYgNiA2IDAtMy4zMS0yLjY5LTYtNi02em0yLTEuOTdhMS41NjIgMS41NjIgMCAwIDAgMi40NSAxLjI4bC0uMDEuMTJjMCAuODYuNyAxLjU2IDEuNTYgMS41NnMxLjU2LS43IDEuNTYtMS41NmwtLjAxLS4xMmMuMjUuMTcuNTYuMjguODkuMjguODYgMCAxLjU2LS43IDEuNTYtMS41NiAwLS42Mi0uMzctMS4xNi0uODktMS40MS41Mi0uMjQuODktLjc4Ljg5LTEuNGExLjU2MiAxLjU2MiAwIDAgMC0yLjQ1LTEuMjhsLjAxLS4xMmMwLS44Ni0uNy0xLjU2LTEuNTYtMS41NnMtMS41Ni43LTEuNTYgMS41NmwuMDEuMTJBMS41NjIgMS41NjIgMCAwIDAgOCA4LjIyYzAgLjYyLjM3IDEuMTYuODkgMS40MS0uNTIuMjQtLjg5Ljc4LS44OSAxLjR6bTQtMi45N2MuODYgMCAxLjU2LjcgMS41NiAxLjU2cy0uNyAxLjU2LTEuNTYgMS41Ni0xLjU2LS43LTEuNTYtMS41Ni43LTEuNTYgMS41Ni0xLjU2ek0yMCA0djE2SDRWNGgxNm0wLTJINGMtMS4xIDAtMiAuOS0yIDJ2MTZjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lMThVcFJhdGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTguNSAxNUgxMFY5SDd2MS41aDEuNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi41IDE1SDE1Yy41NSAwIDEtLjQ1IDEtMXYtNGMwLS41NS0uNDUtMS0xLTFoLTIuNWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDF6bS41LTVoMS41djEuNUgxM1YxMHptMCAyLjVoMS41VjE0SDEzdi0xLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmU2RnRBcGFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMiA5LjQzVjEwaDh2LS41N3pNMTggNmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTQgMy40M2MwLS44MS0uNDgtMS41My0xLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMTQgOS40M1YxMGg4di0uNTd6TTE5IDE3di0yLjAxTDUgMTV2MmwtMy0zIDMtM3YyLjAxTDE5IDEzdi0ybDMgMy0zIDN6bS05IDJ2LTFINy41Yy0uMjggMC0uNS4yMi0uNS41djNjMCAuMjguMjIuNS41LjVoMmMuMjggMCAuNS0uMjIuNS0uNVYyMGMwLS4yOC0uMjItLjUtLjUtLjVIOFYxOWgyem0tMSAxLjV2LjVIOHYtLjVoMXptOC41LTEuNWgtMXYzaC0xdi0zaC0xdi0xaDN2MXptLTUgMHYuNWgxdjFoLTFWMjJoLTF2LTRIMTR2MWgtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQWRkTW9kZXJhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNiAxMS4wOXYtNC43bDYtMi4yNSA2IDIuMjV2My42OWMuNzEuMSAxLjM4LjMxIDIgLjZWNWwtOC0zLTggM3Y2LjA5YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MS4wMy0uMDEuMDUtLjAyLjA4LS4wMi0uNzktLjc4LTEuNC0xLjc2LTEuNzUtMi44NEM3Ljc2IDE3LjUzIDYgMTQuNDIgNiAxMS4wOXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTJjLTIuNzYgMC01IDIuMjQtNSA1czIuMjQgNSA1IDUgNS0yLjI0IDUtNS0yLjI0LTUtNS01em0zIDUuNWgtMi41VjIwaC0xdi0yLjVIMTR2LTFoMi41VjE0aDF2Mi41SDIwdjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBZGRSZWFjdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgOS41QzcgOC42NyA3LjY3IDggOC41IDhzMS41LjY3IDEuNSAxLjVTOS4zMyAxMSA4LjUgMTEgNyAxMC4zMyA3IDkuNXptNSA4YzIuMzMgMCA0LjMxLTEuNDYgNS4xMS0zLjVINi44OWMuOCAyLjA0IDIuNzggMy41IDUuMTEgMy41em0zLjUtNi41Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6TTIyIDFoLTJ2MmgtMnYyaDJ2MmgyVjVoMlYzaC0yVjF6bS0yIDExYzAgNC40Mi0zLjU4IDgtOCA4cy04LTMuNTgtOC04IDMuNTgtOCA4LThjMS40NiAwIDIuODIuNCA0IDEuMDhWMi44NEE5LjkyOSA5LjkyOSAwIDAgMCAxMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJjMC0xLjA1LS4xNy0yLjA1LS40Ny0zSDE5LjRjLjM4LjkzLjYgMS45NC42IDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVBcmNoaXRlY3R1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjM2IDE4Ljc4IDYuNjEgMjFsMS42Mi0xLjU0IDIuNzctNy42Yy0uNjgtLjE3LTEuMjgtLjUxLTEuNzctLjk4bC0yLjg3IDcuOXpNMTQuNzcgMTAuODhjLS40OS40Ny0xLjEuODEtMS43Ny45OGwyLjc3IDcuNkwxNy4zOSAyMWwuMjYtMi4yMi0yLjg4LTcuOXpNMTUgOGMwLTEuMy0uODQtMi40LTItMi44MlYzaC0ydjIuMThDOS44NCA1LjYgOSA2LjcgOSA4YzAgMS42NiAxLjM0IDMgMyAzczMtMS4zNCAzLTN6bS0zIDFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUFzc2lzdFdhbGtlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTIuNVwiLFwiY3lcIjpcIjQuNVwiLFwiclwiOlwiMlwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS43NyAxNy43Mi0uNjQtNi4zN0ExLjQ5IDEuNDkgMCAwIDAgMTcuNjQgMTBIMTZjLTEuNS0uMDItMi44Ni0uNTQtMy43Ni0xLjQ0bC0yLTEuOThBMS45NSAxLjk1IDAgMCAwIDguODMgNmMtLjUxIDAtMS4wMi4yLTEuNDEuNTlMNC4wOCA5LjkxYy0uNTMuNjgtLjUxIDEuNTctLjIxIDIuMTNsMS40MyAyLjgtMy4xNSA0LjA1IDEuNTcgMS4yNEw3LjQgMTUuNGwtLjE3LTEuMzYuNzcuNzFWMjBoMnYtNi4xMmwtMi4xMi0yLjEyIDIuMzYtMi4zNmMuOTQuOTQgMS43MiAxLjgyIDMuNTkgMi4zMkwxMyAyMGgxLjVsLjQxLTMuNWgzLjE4bC4xNCAxLjIyYy0uNDQuMjYtLjczLjc0LS43MyAxLjI4IDAgLjgzLjY3IDEuNSAxLjUgMS41czEuNS0uNjcgMS41LTEuNWMwLS41NC0uMjktMS4wMi0uNzMtMS4yOHpNMTUuMDkgMTVsLjQxLTMuNWgybC40MSAzLjVoLTIuODJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVCYWNrSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDdhMi41IDIuNSAwIDAgMC0zLTIuNDVWNGEyLjUgMi41IDAgMCAwLTMuMTctMi40MUEyLjUwOSAyLjUwOSAwIDAgMCAxMi41IDBjLTEuMjMgMC0yLjI1Ljg5LTIuNDYgMi4wNkEyLjUgMi41IDAgMCAwIDcgNC41djUuODljLS4zNC0uMzEtLjc2LS41NC0xLjIyLS42NmwtLjc3LS4yMWMtLjgzLS4yMy0xLjcuMDktMi4xOS44My0uMzguNTctLjQgMS4zMS0uMTUgMS45NWwyLjU2IDYuNDNBOC4zNTQgOC4zNTQgMCAwIDAgMTMgMjRjNC40MiAwIDgtMy41OCA4LThWN3ptLTIgOWMwIDMuMzEtMi42OSA2LTYgNi0yLjYxIDAtNC45NS0xLjU5LTUuOTEtNC4wMWwtMi42LTYuNTQuNTMuMTRjLjQ2LjEyLjgzLjQ2IDEgLjlMNyAxNWgyVjQuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYxMmgyVjIuNWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYxMmgyVjRjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2OGgyVjdjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUJsaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMS41XCIsXCJjeVwiOlwiMy41XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjEzIDcuMTJjLS4xNy0uMzUtLjQ0LS42NS0uOC0uODVhMS45OCAxLjk4IDAgMCAwLTEuOTMtLjAzdi0uMDFMNCA5LjNWMTRoMnYtMy41NGwxLjUtLjg1QzcuMTggMTAuNzEgNyAxMS44NSA3IDEzdjUuMzNMNC40IDIxLjggNiAyM2wzLTQgLjIyLTMuNTRMMTEgMTh2NWgydi02LjVsLTEuOTctMi44MWMtLjA0LS41Mi0uMTQtMS43Ni40NS0zLjQuNzUgMS4xNCAxLjg4IDEuOTggMy4yIDIuNDFMMjAuNjMgMjNsLjg3LS41LTUuNDgtOS41SDE3di0yYy0uNDkgMC0yLjg4LjE3LTQuMDgtMi4yMVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQm95IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgNy41Yy45NyAwIDEuNzUtLjc4IDEuNzUtMS43NVMxMi45NyA0IDEyIDRzLTEuNzUuNzgtMS43NSAxLjc1UzExLjAzIDcuNSAxMiA3LjV6TTE0IDIwdi01aDF2LTQuNWMwLTEuMS0uOS0yLTItMmgtMmMtMS4xIDAtMiAuOS0yIDJWMTVoMXY1aDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YTIgMiAwIDAgMCAyLTJjMC0uMzgtLjEtLjczLS4yOS0xLjAzTDEyIDBsLTEuNzEgMi45N2MtLjE5LjMtLjI5LjY1LS4yOSAxLjAzIDAgMS4xLjkgMiAyIDJ6bTYgM2gtNVY3aC0ydjJINmMtMS42NiAwLTMgMS4zNC0zIDN2OWMwIC41NS40NSAxIDEgMWgxNmMuNTUgMCAxLS40NSAxLTF2LTljMC0xLjY2LTEuMzQtMy0zLTN6bTEgMTFINXYtM2MuOS0uMDEgMS43Ni0uMzcgMi40LTEuMDFsMS4wOS0xLjA3IDEuMDcgMS4wN2MxLjMxIDEuMzEgMy41OSAxLjMgNC44OSAwbDEuMDgtMS4wNyAxLjA3IDEuMDdjLjY0LjY0IDEuNSAxIDIuNCAxLjAxdjN6bTAtNC41Yy0uNTEtLjAxLS45OS0uMi0xLjM1LS41N2wtMi4xMy0yLjEzLTIuMTQgMi4xM2MtLjc0Ljc0LTIuMDMuNzQtMi43NyAwTDguNDggMTIuOGwtMi4xNCAyLjEzYy0uMzUuMzYtLjgzLjU2LTEuMzQuNTdWMTJjMC0uNTUuNDUtMSAxLTFoMTJjLjU1IDAgMSAuNDUgMSAxdjMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNhdGNoaW5nUG9rZW1vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0LjUgMTJhMi41IDIuNSAwIDAgMS01IDAgMi41IDIuNSAwIDAgMSA1IDB6bTcuNSAwYzAgNS41Mi00LjQ4IDEwLTEwIDEwUzIgMTcuNTIgMiAxMiA2LjQ4IDIgMTIgMnMxMCA0LjQ4IDEwIDEwem0tMiAwaC00YzAtMi4yMS0xLjc5LTQtNC00cy00IDEuNzktNCA0SDRjMCA0LjQxIDMuNTkgOCA4IDhzOC0zLjU5IDgtOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNsZWFuSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNi45OSA1IC42MyAxLjM3IDEuMzcuNjMtMS4zNy42M0wxNi45OSA5bC0uNjMtMS4zN0wxNC45OSA3bDEuMzctLjYzLjYzLTEuMzdNMjAgMTRjMS4xIDAgMi0uOSAyLTJzLTItNC0yLTQtMiAyLjktMiA0IC45IDIgMiAyem0tOS03LjlWNGgyYy41NyAwIDEuMS4xNyAxLjU1LjQ1bDEuNDMtMS40M0E0Ljg5OSA0Ljg5OSAwIDAgMCAxMyAySDcuNXYySDl2Mi4xMWMtMS43OC4zNy0zLjIgMS42OC0zLjc1IDMuMzloMi4xNkM3Ljk0IDguNjEgOC44OSA4IDEwIDhjMS42MiAwIDIuOTQgMS4yOSAyLjk5IDIuOWwyLjAxLjc1VjExYTUgNSAwIDAgMC00LTQuOXpNMjIgMTl2MWwtOCAyLjUtNy0xLjk0VjIySDFWMTFoNy45N2w2LjE2IDIuM0EyLjg5IDIuODkgMCAwIDEgMTcgMTZoMmMxLjY2IDAgMyAxLjM0IDMgM3pNNSAyMHYtN0gzdjdoMnptMTQuOS0xLjQzYy0uMTYtLjMzLS41MS0uNTYtLjktLjU2aC01LjM1Yy0uNTQgMC0xLjA3LS4wOS0xLjU4LS4yNmwtMi4zOC0uNzkuNjMtMS45IDIuMzguNzljLjMxLjEgMi4zLjE1IDIuMy4xNSAwLS4zNy0uMjMtLjctLjU3LS44M0w4LjYxIDEzSDd2NS40OGw2Ljk3IDEuOTMgNS45My0xLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ28yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOWgtM2MtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFoM2MuNTUgMCAxLS40NSAxLTF2LTRjMC0uNTUtLjQ1LTEtMS0xem0tLjUgNC41aC0ydi0zaDJ2M3pNOCAxM3YxYzAgLjU1LS40NSAxLTEgMUg0Yy0uNTUgMC0xLS40NS0xLTF2LTRjMC0uNTUuNDUtMSAxLTFoM2MuNTUgMCAxIC40NSAxIDF2MUg2LjV2LS41aC0ydjNoMlYxM0g4em0xMi41IDIuNWgtMnYxaDNWMThIMTd2LTIuNWMwLS41NS40NS0xIDEtMWgydi0xaC0zVjEyaDMuNWMuNTUgMCAxIC40NSAxIDF2MS41YzAgLjU1LS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbXBvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi44NyAxMS44MUEyLjUgMi41IDAgMCAxIDE1IDhoMWMxLjUxIDAgMi0xIDItMXMuNTUgNi0zIDZjLS40OSAwLS45NC0uMTQtMS4zMi0uMzgtLjI0LjY0LS41OSAxLjc2LS43NiAyLjk2IDEuMjYuMjIgMi4yOC44OSAyLjc3IDEuNzdBNi41MDUgNi41MDUgMCAwIDAgMTguNSAxMmgzYzAgNS4yNC00LjI2IDkuNS05LjUgOS41UzIuNSAxNy4yNCAyLjUgMTIgNi43NiAyLjUgMTIgMi41VjBsNCA0LTQgNFY1LjVjLTMuNTggMC02LjUgMi45Mi02LjUgNi41IDAgMi4yMSAxLjExIDQuMTcgMi44MSA1LjM1LjUxLS45MiAxLjYzLTEuNjIgMi45OC0xLjgtLjA5LS42OS0uMjYtMS40Mi0uNDktMi4wMy0uMzUuMy0uOC40OC0xLjMuNDgtMS4xIDAtMi0uOS0yLTJ2LS45OWMwLS41Ni0uMTktMS4wOS0uNS0xLjUxIDAgMCA0LjQ1LS4yMyA0LjUgMi41IDAgLjI5LS4wNi41Ni0uMTcuOC0uNDItLjMyLS44Ni0uNi0xLjMzLS44LjU4LjQzIDEuMzcgMS4zNyAyIDIuNi42Ny0xLjYyIDEuNjgtMy4yNyAzLTQuNi0uNzYuNTItMS40NyAxLjEyLTIuMTMgMS44MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvbm5lY3RXaXRob3V0Q29udGFjdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDE0SDlhOSA5IDAgMCAxIDktOXYyYy0zLjg3IDAtNyAzLjEzLTcgN3ptNy0zVjljLTIuNzYgMC01IDIuMjQtNSA1aDJjMC0xLjY2IDEuMzQtMyAzLTN6TTcgNGMwLTEuMTEtLjg5LTItMi0ycy0yIC44OS0yIDIgLjg5IDIgMiAyIDItLjg5IDItMnptNC40NS41aC0yQTIuOTkgMi45OSAwIDAgMSA2LjUgN2gtM0MyLjY3IDcgMiA3LjY3IDIgOC41VjExaDZWOC43NGE0Ljk3IDQuOTcgMCAwIDAgMy40NS00LjI0ek0xOSAxN2MxLjExIDAgMi0uODkgMi0ycy0uODktMi0yLTItMiAuODktMiAyIC44OSAyIDIgMnptMS41IDFoLTNhMi45OSAyLjk5IDAgMCAxLTIuOTUtMi41aC0yQTQuOTcgNC45NyAwIDAgMCAxNiAxOS43NFYyMmg2di0yLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29uc3RydWN0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTMuNzgzIDE1LjE3MiAyLjEyMS0yLjEyMSA1Ljk5NiA1Ljk5Ni0yLjEyMSAyLjEyMXpNMTcuNSAxMGMxLjkzIDAgMy41LTEuNTcgMy41LTMuNSAwLS41OC0uMTYtMS4xMi0uNDEtMS42bC0yLjcgMi43LTEuNDktMS40OSAyLjctMi43Yy0uNDgtLjI1LTEuMDItLjQxLTEuNi0uNDFDMTUuNTcgMyAxNCA0LjU3IDE0IDYuNWMwIC40MS4wOC44LjIxIDEuMTZsLTEuODUgMS44NS0xLjc4LTEuNzguNzEtLjcxLTEuNDEtMS40MUwxMiAzLjQ5YTMgMyAwIDAgMC00LjI0IDBMNC4yMiA3LjAzbDEuNDEgMS40MUgyLjgxbC0uNzEuNzEgMy41NCAzLjU0LjcxLS43MVY5LjE1bDEuNDEgMS40MS43MS0uNzEgMS43OCAxLjc4LTcuNDEgNy40MSAyLjEyIDIuMTJMMTYuMzQgOS43OWMuMzYuMTMuNzUuMjEgMS4xNi4yMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNvb2tpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTAuNVwiLFwiY3lcIjpcIjguNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiMTMuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxNVwiLFwiclwiOlwiMVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMS45NSAxMC45OWMtMS43OS0uMDMtMy43LTEuOTUtMi42OC00LjIyLTIuOTcgMS01Ljc4LTEuNTktNS4xOS00LjU2QzcuMTEuNzQgMiA2LjQxIDIgMTJjMCA1LjUyIDQuNDggMTAgMTAgMTAgNS44OSAwIDEwLjU0LTUuMDggOS45NS0xMS4wMXpNMTIgMjBjLTQuNDEgMC04LTMuNTktOC04IDAtMy4zMSAyLjczLTguMTggOC4wOC04LjAyLjQyIDIuNTQgMi40NCA0LjU2IDQuOTkgNC45NC4wNy4zNi41MiAyLjU1IDIuOTIgMy42M0MxOS43IDE2Ljg2IDE2LjA2IDIwIDEyIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ29yb25hdmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTJjMCAuNTUtLjQ1IDEtMSAxcy0xLS40NS0xLTEgLjQ1LTEgMS0xIDEgLjQ1IDEgMXptNC4yNS0yYy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xLTEgLjQ1LTEgMSAuNDUgMSAxIDF6bS0zLjUgMGMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMS0xIC40NS0xIDEgLjQ1IDEgMSAxem0wIDRjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpNMjIgMTEuMjV2MS41YzAgLjQxLS4zNC43NS0uNzUuNzVzLS43NS0uMzQtLjc1LS43NWgtMS41NGE2Ljk3OCA2Ljk3OCAwIDAgMS0xLjUyIDMuNjVsMS4wOSAxLjA5LjAxLS4wMWMuMjktLjI5Ljc3LS4yOSAxLjA2IDAgLjI5LjI5LjI5Ljc3IDAgMS4wNmwtMS4wNiAxLjA2Yy0uMjkuMjktLjc3LjI5LTEuMDYgMGEuNzUyLjc1MiAwIDAgMS0uMDEtMS4wNWwtMS4wOS0xLjA5YTcuMDE1IDcuMDE1IDAgMCAxLTMuNjQgMS41MXYxLjU0aC4wMWMuNDEgMCAuNzUuMzQuNzUuNzVzLS4zNC43NS0uNzUuNzVoLTEuNWMtLjQxIDAtLjc1LS4zNC0uNzUtLjc1cy4zMy0uNzQuNzQtLjc1di0xLjU1YTYuOTQ4IDYuOTQ4IDAgMCAxLTMuNjMtMS41MWwtMS4wOSAxLjA5LjAxLjAxYy4yOS4yOS4yOS43NyAwIDEuMDYtLjI5LjI5LS43Ny4yOS0xLjA2IDBMNC40IDE4LjU0YS43NTQuNzU0IDAgMCAxIDAtMS4wNmMuMjktLjI5Ljc2LS4yOSAxLjA1LS4wMWwxLjA5LTEuMDlhNi44OSA2Ljg5IDAgMCAxLTEuNS0zLjYzSDMuNWMwIC40MS0uMzQuNzUtLjc1Ljc1UzIgMTMuMTYgMiAxMi43NXYtMS41YzAtLjQxLjM0LS43NS43NS0uNzVzLjc1LjM0Ljc1Ljc1aDEuNTRjLjE1LTEuMzcuNjktMi42MSAxLjUtMy42M0w1LjQ1IDYuNTNjLS4yOS4yOC0uNzYuMjgtMS4wNS0uMDFhLjc1NC43NTQgMCAwIDEgMC0xLjA2TDUuNDYgNC40Yy4yOS0uMjkuNzctLjI5IDEuMDYgMCAuMjkuMjkuMjkuNzcgMCAxLjA2bC0uMDEuMDFMNy42IDYuNTZhNi45ODIgNi45ODIgMCAwIDEgMy42My0xLjUxVjMuNWEuNzUzLjc1MyAwIDAgMS0uNzQtLjc1Ljc3Ljc3IDAgMCAxIC43Ni0uNzVoMS41Yy40MSAwIC43NS4zNC43NS43NXMtLjM0Ljc1LS43NS43NWgtLjAxdjEuNTRjMS4zNy4xNCAyLjYyLjY5IDMuNjQgMS41MWwxLjA5LTEuMDlhLjc0Mi43NDIgMCAwIDEgLjAxLTEuMDVjLjI5LS4yOS43Ny0uMjkgMS4wNiAwbDEuMDYgMS4wNmMuMjkuMjkuMjkuNzcgMCAxLjA2cy0uNzcuMjktMS4wNiAwbC0uMDEtLjAxLTEuMDkgMS4wOGE3LjAyNSA3LjAyNSAwIDAgMSAxLjUyIDMuNjVoMS41NGMwLS40MS4zNC0uNzUuNzUtLjc1cy43NS4zNC43NS43NXpNMTcgMTJjMC0yLjc2LTIuMjQtNS01LTVzLTUgMi4yNC01IDUgMi4yNCA1IDUgNSA1LTIuMjQgNS01em0tNS0xYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bTMuNSAwYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxIDEtLjQ1IDEtMS0uNDUtMS0xLTF6bS0xLjc1IDNjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDEgMS0uNDUgMS0xLS40NS0xLTEtMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNydWVsdHlGcmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgMTRjLS4yNC0uMjQtLjQ0LS40OS0uNjUtLjc1QzE3LjUxIDExLjUgMTkgOC41NiAxOSA1YzAtMS45NS0uNzQtMy0yLTMtMS41NCAwLTMuOTYgMi4wNi01IDUuOTdDMTAuOTYgNC4wNiA4LjU0IDIgNyAyIDUuNzQgMiA1IDMuMDUgNSA1YzAgMy41NiAxLjQ5IDYuNSAyLjY1IDguMjUtLjIxLjI2LS40MS41MS0uNjUuNzUtLjI1LjI1LTIgMS4zOS0yIDMuNUM1IDE5Ljk4IDcuMDIgMjIgOS41IDIyYzEuNSAwIDIuNS0uNSAyLjUtLjVzMSAuNSAyLjUuNWMyLjQ4IDAgNC41LTIuMDIgNC41LTQuNSAwLTIuMTEtMS43NS0zLjI1LTItMy41em0tLjEyLTkuOTdjLjA2LjE3LjEyLjQ4LjEyLjk3IDAgMi44NC0xLjExIDUuMjQtMi4wNyA2Ljc4LS4zOC0uMjYtLjgzLS40OC0xLjQtLjYyLjI0LTQuNTIgMi40NC02LjgzIDMuMzUtNy4xM3pNNyA1YzAtLjQ5LjA2LS44LjEyLS45Ny45MS4zIDMuMTEgMi42MSAzLjM2IDcuMTMtLjU4LjE0LTEuMDMuMzUtMS40LjYyQzguMTEgMTAuMjQgNyA3Ljg0IDcgNXptNy41IDE1Yy0xIDAtMS44LS4zMy0yLjIyLS41Ni40Mi0uMTguNzItLjcxLjcyLS45NCAwLS4yOC0uNDUtLjUtMS0uNXMtMSAuMjItMSAuNWMwIC4yMy4zLjc2LjcyLjk0LS40Mi4yMy0xLjIyLjU2LTIuMjIuNTZBMi41IDIuNSAwIDAgMSA3IDE3LjVjMC0uNy40My0xLjI0IDEtMS43My40NC0uMzYuNjEtLjUyIDEuMy0xLjM3Ljc2LS45NSAxLjA5LTEuNCAyLjctMS40czEuOTQuNDUgMi43IDEuNGMuNjkuODUuODYgMS4wMSAxLjMgMS4zNy41Ny40OSAxIDEuMDMgMSAxLjczYTIuNSAyLjUgMCAwIDEtMi41IDIuNXptLS41LTRjMCAuNDEtLjIyLjc1LS41Ljc1cy0uNS0uMzQtLjUtLjc1LjIyLS43NS41LS43NS41LjM0LjUuNzV6bS0zIDBjMCAuNDEtLjIyLjc1LS41Ljc1cy0uNS0uMzQtLjUtLjc1LjIyLS43NS41LS43NS41LjM0LjUuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVDeWNsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgOGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDcuNDdWNS4zNUMyMC4wNSA0Ljc3IDE2LjU2IDQgMTIgNGMtMi4xNSAwLTQuMTEuODYtNS41NCAyLjI0LjEzLS44NS40LTIuNCAxLjAxLTQuMjRINS4zNUM0Ljc3IDMuOTUgNCA3LjQ0IDQgMTJjMCAyLjE1Ljg2IDQuMTEgMi4yNCA1LjU0LS44NS0uMTQtMi40LS40LTQuMjQtMS4wMXYyLjEyQzMuOTUgMTkuMjMgNy40NCAyMCAxMiAyMGMyLjE1IDAgNC4xMS0uODYgNS41NC0yLjI0LS4xNC44NS0uNCAyLjQtMS4wMSA0LjI0aDIuMTJjLjU4LTEuOTUgMS4zNS01LjQ0IDEuMzUtMTAgMC0yLjE1LS44Ni00LjExLTIuMjQtNS41NC44NS4xMyAyLjQuNCA0LjI0IDEuMDF6TTEyIDE4Yy0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02IDYgMi42OSA2IDYtMi42OSA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5IDEyIDIgMiA5aDl2MTNoMlY5aDl6TTEyIDQuNDQgMTUuNjYgN0g4LjM0TDEyIDQuNDR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTQuMTQgMTItMS45Ni4zNy44MiA0LjM3VjIyaDJsLjAyLTRIN3Y0aDJ2LTZINC45ek0xOS4xIDE2SDE1djZoMnYtNGgxLjk4bC4wMiA0aDJ2LTUuMjZsLjgyLTQuMzctMS45Ni0uMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEaXZlcnNpdHkxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI0XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMS4yMiAxNy41OEEyLjAxIDIuMDEgMCAwIDAgMCAxOS40M1YyMWg0LjV2LTEuNjFjMC0uODMuMjMtMS42MS42My0yLjI5LS4zNy0uMDYtLjc0LS4xLTEuMTMtLjEtLjk5IDAtMS45My4yMS0yLjc4LjU4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjIwXCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNzggMTcuNThBNi45NSA2Ljk1IDAgMCAwIDIwIDE3Yy0uMzkgMC0uNzYuMDQtMS4xMy4xLjQuNjguNjMgMS40Ni42MyAyLjI5VjIxSDI0di0xLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMTYuMjQgMTYuNjVjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxOS4zOVYyMWgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek04LjA3IDE5YS45Ni45NiAwIDAgMSAuNDktLjUyYzEuMS0uNDkgMi4yNi0uNzMgMy40My0uNzMgMS4xOCAwIDIuMzMuMjUgMy40My43My4yMy4xLjQuMjkuNDkuNTJIOC4wN3pNOSAxMmMwIDEuNjYgMS4zNCAzIDMgM3MzLTEuMzQgMy0zLTEuMzQtMy0zLTMtMyAxLjM0LTMgM3ptNCAwYzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xIC40NS0xIDEtMSAxIC40NSAxIDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIuNDggMTAuODZDMi4xNyAxMC4xIDIgOS4zNiAyIDguNiAyIDYuMDIgNC4wMiA0IDYuNiA0YzIuNjggMCAzLjgyIDEuNzQgNS40IDMuNTlDMTMuNTcgNS43NiAxNC43IDQgMTcuNCA0IDE5Ljk4IDQgMjIgNi4wMiAyMiA4LjZjMCAuNzYtLjE3IDEuNS0uNDggMi4yNi42NS4zMSAxLjE4LjgyIDEuNTMgMS40NC42LTEuMi45NS0yLjQyLjk1LTMuN0MyNCA0LjkgMjEuMSAyIDE3LjQgMmMtMi4wOSAwLTQuMDkuOTctNS40IDIuNTFDMTAuNjkgMi45NyA4LjY5IDIgNi42IDIgMi45IDIgMCA0LjkgMCA4LjZjMCAxLjI4LjM1IDIuNS45NiAzLjcuMzUtLjYyLjg4LTEuMTMgMS41Mi0xLjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRGl2ZXJzaXR5MiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTEwLjEgMTUuOSAxLjQyLTEuNDJDOC43OSAxMi4wNSA3IDEwLjQxIDcgOC44NSA3IDcuOCA3LjggNyA4Ljg1IDdjMS4xMSAwIDEuNTQuNjUgMi42OCAyaC45M2MxLjEyLTEuMzEgMS41My0yIDIuNjgtMiAuODcgMCAxLjU1LjU0IDEuNzcgMS4zMi4zNS0uMDQuNjgtLjA2IDEtLjA2LjM2IDAgLjcuMDMgMS4wMy4wOEMxOC43IDYuNDMgMTcuMTMgNSAxNS4xNSA1Yy0uMTIgMC0uMjMuMDMtLjM1LjA0LjEyLS4zMy4yLS42Ny4yLTEuMDQgMC0xLjY2LTEuMzQtMy0zLTNTOSAyLjM0IDkgNGMwIC4zNy4wOC43MS4yIDEuMDQtLjEyLS4wMS0uMjMtLjA0LS4zNS0uMDRDNi42OSA1IDUgNi42OSA1IDguODVjMCAyLjQyIDIuMDQgNC4zMSA1LjEgNy4wNXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIuNSAxNi4yNGMtLjMyLS4xOC0uNjYtLjI5LTEtLjM1LjA3LS4xLjE1LS4xOC4yMS0uMjggMS4wOC0xLjg3LjQ2LTQuMTgtMS40MS01LjI2LTIuMDktMS4yMS00Ljc2LS4zOS04LjY1LjlsLjUyIDEuOTRjMy40Ny0xLjE0IDUuNzktMS44OCA3LjE0LTEuMS45MS41MyAxLjIgMS42MS42OCAyLjUzLS41Ni45Ni0xLjMzIDEtMy4wNyAxLjMybC0uNDcuODFjLjU4IDEuNjIuOTcgMi4zMy4zOSAzLjMyLS41My45MS0xLjYxIDEuMi0yLjUzLjY4LS4wNi0uMDMtLjExLS4wOS0uMTctLjEzLS4zLjY3LS42NCAxLjI0LTEuMDMgMS43My4wNy4wNC4xMy4wOS4yLjE0IDEuODcgMS4wOCA0LjE4LjQ2IDUuMjYtMS40MS4wNi0uMS4wOS0uMjEuMTQtLjMyLjIyLjI3LjQ4LjUxLjguNjkgMS40My44MyAzLjI3LjM0IDQuMS0xLjFzLjMyLTMuMjktMS4xMS00LjExelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4zMiAxNC4wMWMtLjc0IDMuNTgtMS4yNyA1Ljk1LTIuNjIgNi43My0uOTEuNTMtMiAuMjQtMi41My0uNjgtLjU2LS45Ni0uMi0xLjY2LjM5LTMuMzJsLS40Ni0uODFjLTEuNy0uMzEtMi41LS4zMy0zLjA3LTEuMzItLjUzLS45MS0uMjQtMiAuNjgtMi41My4wOS0uMDUuMTktLjA4LjI5LS4xMS0uMzUtLjU2LS42NC0xLjE3LS44Mi0xLjg1LS4xNi4wNy0uMzIuMTQtLjQ4LjIzLTEuODcgMS4wOC0yLjQ5IDMuMzktMS40MSA1LjI2LjA2LjEuMTQuMTguMjEuMjgtLjM0LjA2LS42OC4xNy0xIC4zNS0xLjQzLjgzLTEuOTMgMi42Ni0xLjEgNC4xczIuNjYgMS45MyA0LjEgMS4xYy4zMi0uMTguNTgtLjQyLjgtLjY5LjA1LjExLjA4LjIyLjE0LjMyIDEuMDggMS44NyAzLjM5IDIuNDkgNS4yNiAxLjQxIDIuMDktMS4yMSAyLjcxLTMuOTMgMy41NS03Ljk0bC0xLjkzLS41M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZURpdmVyc2l0eTMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjMyIDEzLjAxYy45Ni4wMiAxLjg1LjUgMi40NSAxLjM0QTMuOTYxIDMuOTYxIDAgMCAwIDEyIDE2YzEuMjkgMCAyLjUtLjYyIDMuMjMtMS42Ni42LS44NCAxLjQ5LTEuMzIgMi40NS0xLjM0LS43Mi0xLjIyLTMuNi0yLTUuNjgtMi0yLjA3IDAtNC45Ni43OC01LjY4IDIuMDF6TTQgMTNjMS42NiAwIDMtMS4zNCAzLTNTNS42NiA3IDQgN3MtMyAxLjM0LTMgMyAxLjM0IDMgMyAzek0yMCAxM2MxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6TTEyIDEwYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMTRoLTMuMjdjLS43NyAwLTEuMzUuNDUtMS42OC45Mi0uMDQuMDYtMS4zNiAyLjA4LTQuMDUgMi4wOC0xLjQzIDAtMy4wMy0uNjQtNC4wNS0yLjA4LS4zOS0uNTUtMS0uOTItMS42OC0uOTJIM2MtMS4xIDAtMiAuOS0yIDJ2NGg3di0yLjI2YzEuMTUuOCAyLjU0IDEuMjYgNCAxLjI2czIuODUtLjQ2IDQtMS4yNlYyMGg3di00YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRG9tYWluQWRkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgN1YzSDJ2MThoMTR2LTJoLTR2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloOHY2aDJWN0gxMnpNNiAxOUg0di0yaDJ2MnptMC00SDR2LTJoMnYyem0wLTRINFY5aDJ2MnptMC00SDRWNWgydjJ6bTQgMTJIOHYtMmgydjJ6bTAtNEg4di0yaDJ2MnptMC00SDhWOWgydjJ6bTAtNEg4VjVoMnYyem0xNCAxMnYyaC0ydjJoLTJ2LTJoLTJ2LTJoMnYtMmgydjJoMnptLTYtOGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb21haW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDdWM0gydjE4aDIwVjdIMTJ6TTYgMTlINHYtMmgydjJ6bTAtNEg0di0yaDJ2MnptMC00SDRWOWgydjJ6bTAtNEg0VjVoMnYyem00IDEySDh2LTJoMnYyem0wLTRIOHYtMmgydjJ6bTAtNEg4VjloMnYyem0wLTRIOFY1aDJ2MnptMTAgMTJoLTh2LTJoMnYtMmgtMnYtMmgydi0yaC0yVjloOHYxMHptLTItOGgtMnYyaDJ2LTJ6bTAgNGgtMnYyaDJ2LTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVEb3duaGlsbFNraWluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgNC41YzAgMS4xLS45IDItMiAycy0yLS45LTItMiAuOS0yIDItMiAyIC45IDIgMnptLTIuNzIgMTYuNC43Ni4yN2E1LjkzMyA1LjkzMyAwIDAgMCA0LjM0LS4xN0wyMiAyMi4xM2MtMS4wNS41NS0yLjI0Ljg3LTMuNS44Ny0uODYgMC0xLjY4LS4xNC0yLjQ1LS40MUwyIDE3LjQ3bC41LTEuNDEgNi45IDIuNTEgMS43Mi00LjQ0LTMuNTctMy43M2MtLjg5LS45NC0uNjctMi40Ny40NS0zLjEybDMuNDgtMi4wMWMxLjEtLjY0IDIuNTItLjEgMi45MSAxLjExbC4zMyAxLjA4YTUuMDE3IDUuMDE3IDAgMCAwIDIuODMgMy4xNGwuNTItMS42IDEuNDMuNDYtMS4xMiAzLjQ1QTcuMDI5IDcuMDI5IDAgMCAxIDEzIDguNTlsLTIuNTMgMS40NSAzLjAzIDMuNDYtMi4yMiA1Ljc2IDMuMDkgMS4xMiAyLjEtNi40NGMuNDYuMTguOTQuMzEgMS40NC40MWwtMi4xMyA2LjU1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWRpdE5vdGlmaWNhdGlvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNy41OCA2LjI1IDEuNzcgMS43N0wxNC4zNyAxM0gxMi42di0xLjc3bDQuOTgtNC45OHptMy4yNy0uNDQtMS4wNi0xLjA2Yy0uMi0uMi0uNTEtLjItLjcxIDBsLS44NS44NUwyMCA3LjM3bC44NS0uODVjLjItLjIuMi0uNTIgMC0uNzF6TTE4IDEyLjJWMTdoMnYySDR2LTJoMnYtN2MwLTIuNzkgMS45MS01LjE0IDQuNS01Ljh2LS43YzAtLjgzLjY3LTEuNSAxLjUtMS41czEuNS42NyAxLjUgMS41di43Yy44Mi4yMSAxLjU3LjU5IDIuMjEgMS4wOWwtMS40MyAxLjQzQTMuODkgMy44OSAwIDAgMCAxMiA2Yy0yLjIxIDAtNCAxLjc5LTQgNHY3aDh2LTIuOGwyLTJ6TTEwIDIwaDRjMCAxLjEtLjkgMi0yIDJzLTItLjktMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRWxkZXJseVdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNSAxMWMtMS41NiAwLTIuOTItLjktMy41OC0yLjIxbC0uNzktMS42N0MxNC4xMiA3LjEgMTMuNjMgNiAxMi4zNCA2IDguNzIgNiA2IDE2LjY5IDYgMTloMi41bC0yLjEgMi44TDggMjNsMy00aDJ2NGgydi00LjAzTDEzIDEzbC40OS0yLjcxQTYuMDIgNi4wMiAwIDAgMCAxNyAxMi44MXYuNjloMXYtMWMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNVYyM2gxVjEyLjVjMC0uODMtLjY3LTEuNS0xLjUtMS41ek0xMS42IDIuOTFjLS4wNi4xOS0uMS4zOC0uMS41OSAwIDEuMS45IDIgMiAyczItLjkgMi0yLS45LTItMi0yYy0uMjEgMC0uNC4wNC0uNTkuMS0uMTUtLjM1LS41LS42LS45MS0uNi0uNTUgMC0xIC40NS0xIDEgMCAuNDEuMjUuNzYuNi45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVsZGVybHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTYuNSA3VjIzaC0xVjEyLjVjMC0uMjgtLjIyLS41LS41LS41cy0uNS4yMi0uNS41djFoLTF2LS42OWE2LjAyIDYuMDIgMCAwIDEtMy41MS0yLjUyYy0uMzEuODctLjQ5IDEuNzgtLjQ5IDIuNzEgMCAuMjMuMDIuNDYuMDMuNjlMMTUgMTYuNVYyM2gtMnYtNWwtMS43OC0yLjU0TDExIDE5bC0zIDQtMS42LTEuMkw5IDE4LjMzVjEzYzAtMS4xNS4xOC0yLjI5LjUtMy4zOWwtMS41Ljg1VjE0SDZWOS4zbDUuNC0zLjA3di4wMWEyIDIgMCAwIDEgMS45NC4wM2MuMzYuMjEuNjMuNTEuOC44NWwuNzkgMS42N0EzLjk4NyAzLjk4NyAwIDAgMCAxOC41IDExYy44MyAwIDEuNS42NyAxLjUgMS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlFbW90aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMThjMi4yOCAwIDQuMjItMS42NiA1LTRIN2MuNzggMi4zNCAyLjcyIDQgNSA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbW9qaUV2ZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDVoLTJWM0g3djJINWMtMS4xIDAtMiAuOS0yIDJ2MWMwIDIuNTUgMS45MiA0LjYzIDQuMzkgNC45NEE1LjAxIDUuMDEgMCAwIDAgMTEgMTUuOVYxOUg3djJoMTB2LTJoLTR2LTMuMWE1LjAxIDUuMDEgMCAwIDAgMy42MS0yLjk2QzE5LjA4IDEyLjYzIDIxIDEwLjU1IDIxIDhWN2MwLTEuMS0uOS0yLTItMnpNNSA4VjdoMnYzLjgyQzUuODQgMTAuNCA1IDkuMyA1IDh6bTcgNmMtMS42NSAwLTMtMS4zNS0zLTNWNWg2djZjMCAxLjY1LTEuMzUgMy0zIDN6bTctNmMwIDEuMy0uODQgMi40LTIgMi44MlY3aDJ2MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppRmxhZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNCA5LTEtMkg3VjUuNzJjLjYtLjM0IDEtLjk4IDEtMS43MiAwLTEuMS0uOS0yLTItMnMtMiAuOS0yIDJjMCAuNzQuNCAxLjM4IDEgMS43MlYyMWgydi00aDVsMSAyaDdWOWgtNnptNCA4aC00bC0xLTJIN1Y5aDVsMSAyaDV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppRm9vZEJldmVyYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxOWgxOHYySDJ6TTIwIDNINHYxMGMwIDIuMjEgMS43OSA0IDQgNGg2YzIuMjEgMCA0LTEuNzkgNC00di0zaDJjMS4xMSAwIDItLjg5IDItMlY1YzAtMS4xMS0uODktMi0yLTJ6bS00IDEwYzAgMS4xLS45IDItMiAySDhjLTEuMSAwLTItLjktMi0yVjVoM3YxLjRMNy4xOSA3Ljg1Yy0uMTIuMDktLjE5LjI0LS4xOS4zOXY0LjI2YzAgLjI4LjIyLjUuNS41aDRjLjI4IDAgLjUtLjIyLjUtLjVWOC4yNGMwLS4xNS0uMDctLjMtLjE5LS4zOUwxMCA2LjRWNWg2djh6TTkuNSA3LjI4bDEuNSAxLjJWMTJIOFY4LjQ4bDEuNS0xLjJ6TTIwIDhoLTJWNWgydjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbW9qaU5hdHVyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk0IDQuODhBMS4zMiAxLjMyIDAgMCAwIDIwLjY4IDRIMTkuNmwtLjMxLS45N0MxOS4xNSAyLjQzIDE4LjYxIDIgMTggMnMtMS4xNS40My0xLjI5IDEuMDRMMTYuNCA0aC0xLjA3Yy0uNTcgMC0xLjA4LjM1LTEuMjYuODgtLjE5LjU2LjA0IDEuMTcuNTYgMS40OGwuODcuNTItLjQgMS4yNGMtLjIzLjU4LS4wNCAxLjI1LjQ1IDEuNjIuMjMuMTcuNTEuMjYuNzguMjYuMzEgMCAuNjEtLjExLjg2LS4zMmwuODEtLjcuODEuN2MuMjUuMjEuNTUuMzIuODYuMzIuMjcgMCAuNTUtLjA5Ljc4LS4yNi41LS4zNy42OC0xLjA0LjQ1LTEuNjJsLS4zOS0xLjI0Ljg3LS41MmMuNTEtLjMxLjc0LS45Mi41Ni0xLjQ4ek0xOCA3Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6TTEzLjQ5IDEwLjUxYy0uNDMtLjQzLS45NC0uNzMtMS40OS0uOTNWOGgtMXYxLjM4Yy0uMTEtLjAxLS4yMy0uMDMtLjM0LS4wMy0xLjAyIDAtMi4wNS4zOS0yLjgzIDEuMTdsLS41LjUtMS4zMy0uNWEzLjAxIDMuMDEgMCAwIDAtMy44MyAxLjgyYy0uMjcuNzUtLjIzIDEuNTcuMTIgMi4yOS4yMy40OC41OC44NyAxIDEuMTYtLjM4IDEuMzUtLjA2IDIuODUgMSAzLjkxLjc4Ljc4IDEuOCAxLjE3IDIuODMgMS4xNy4zNyAwIC43My0uMDcgMS4wOS0uMTcuMjkuNDIuNjguNzcgMS4xNiAxIC40MS4yLjg0LjMgMS4yOC4zLjM0IDAgLjY4LS4wNiAxLjAxLS4xN2EzLjAwNyAzLjAwNyAwIDAgMCAxLjgyLTMuODVsLS40OS0xLjMuNS0uNWMuODctLjg3IDEuMjQtMi4wNCAxLjE0LTMuMTdIMTZ2LTFoLTEuNTljLS4xOS0uNTUtLjQ5LTEuMDYtLjkyLTEuNXptLTUuOTEgOC4zMWMtLjE1LjA0LS4zLjA2LS40Ni4wNi0uNTMgMC0xLjA0LS4yMS0xLjQxLS41OS0uMzgtLjM4LS41OS0uODgtLjU5LTEuNDEgMC0uMTYuMDMtLjMyLjA2LS40Ny4xNC4wMS4yOC4wMy40Mi4wMy44NSAwIDEuNjgtLjIgMi40NC0uNDgtLjMyLjg5LS41NCAxLjg3LS40NiAyLjg2em0tMi45MS00LjUzYy0uMjUtLjA5LS40NS0uMjctLjU3LS41MXMtLjEzLS41MS0uMDQtLjc2Yy4xOS0uNTIuNzYtLjc5IDEuMjYtLjYxbDMuMTYgMS4xOWMtMS4xNS42LTIuNjMgMS4xMS0zLjgxLjY5em02LjMyIDUuNjVjLS4yNS4wOS0uNTIuMDgtLjc2LS4wNGEuOTg5Ljk4OSAwIDAgMS0uNTEtLjU3Yy0uNDItMS4xOC4wOS0yLjY1LjctMy44bDEuMTggMy4xM2MuMTguNTItLjA5IDEuMS0uNjEgMS4yOHptMS4yMS01LjM0LS42MS0xLjYxYzAtLjAxLS4wMS0uMDItLjAyLS4wM2wtLjA2LS4xMmEuNjczLjY3MyAwIDAgMC0uMDctLjExbC0uMDktLjA5LS4wOS0uMDljLS4wMy0uMDMtLjA3LS4wNS0uMTEtLjA3LS4wNC0uMDItLjA3LS4wNS0uMTItLjA2LS4wMSAwLS4wMi0uMDEtLjAzLS4wMmwtMS42LS42YTEuOTY2IDEuOTY2IDAgMCAxIDIuNjcuMTNjLjczLjczLjc3IDEuODguMTMgMi42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppT2JqZWN0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDNjLS40NiAwLS45My4wNC0xLjQuMTQtMi43Ni41My00Ljk2IDIuNzYtNS40OCA1LjUyLS40OCAyLjYxLjQ4IDUuMDEgMi4yMiA2LjU2LjQzLjM4LjY2LjkxLjY2IDEuNDdWMTljMCAxLjEuOSAyIDIgMmguMjhhMS45OCAxLjk4IDAgMCAwIDMuNDQgMEgxNGMxLjEgMCAyLS45IDItMnYtMi4zMWMwLS41NS4yMi0xLjA5LjY0LTEuNDZBNi45NTYgNi45NTYgMCAwIDAgMTkgMTBjMC0zLjg3LTMuMTMtNy03LTd6bTIgMTRoLTR2LTFoNHYxem0tNCAydi0xaDR2MWgtNHptNS4zMS01LjI2Yy0uMDkuMDgtLjE2LjE4LS4yNC4yNkg4LjkyYy0uMDgtLjA5LS4xNS0uMTktLjI0LS4yNy0xLjMyLTEuMTgtMS45MS0yLjk0LTEuNTktNC43LjM2LTEuOTQgMS45Ni0zLjU1IDMuODktMy45My4zNC0uMDcuNjgtLjEgMS4wMi0uMSAyLjc2IDAgNSAyLjI0IDUgNSAwIDEuNDMtLjYxIDIuNzktMS42OSAzLjc0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS41IDExaDF2M2gtMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtOS42NzIgOS41OC43MDctLjcwNiAyLjEyMiAyLjEyMS0uNzA3LjcwN3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIuMjA4IDExLjcxMi0uNzA3LS43MDcgMi4xMjEtMi4xMjEuNzA3LjcwN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVtb2ppUGVvcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuODkgOC4xMUMxNS41IDcuNzIgMTQuODMgNyAxMy41MyA3aC0yLjU0QzguMjQgNi45OSA2IDQuNzUgNiAySDRjMCAzLjE2IDIuMTEgNS44NCA1IDYuNzFWMjJoMnYtNmgydjZoMlYxMC4wNUwxOC45NSAxNGwxLjQxLTEuNDEtNC40Ny00LjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRW1vamlTeW1ib2xzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMyAyaDh2Mkgzek02IDExaDJWN2gzVjVIM3YyaDN6TTEyLjQwNCAyMC4xODJsNy43NzgtNy43NzggMS40MTQgMS40MTQtNy43NzggNy43Nzh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTQuNVwiLFwiY3lcIjpcIjE0LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE5LjVcIixcImN5XCI6XCIxOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSAxMUEyLjUgMi41IDAgMCAwIDE4IDguNVY0aDNWMmgtNHY0LjUxYy0uNDItLjMyLS45My0uNTEtMS41LS41MWEyLjUgMi41IDAgMCAwIDAgNXpNOS43NCAxNS45NmwtMS40MSAxLjQxLS43MS0uNzEuMzUtLjM1YTIuNDk5IDIuNDk5IDAgMCAwLTEuNzctNC4yNyAyLjQ5OSAyLjQ5OSAwIDAgMC0xLjc3IDQuMjdsLjM1LjM1LTEuMDYgMS4wNmMtLjk4Ljk4LS45OCAyLjU2IDAgMy41NC41LjUgMS4xNC43NCAxLjc4Ljc0czEuMjgtLjI0IDEuNzctLjczbDEuMDYtMS4wNiAxLjQxIDEuNDEgMS40MS0xLjQxLTEuNDEtMS40MSAxLjQxLTEuNDEtMS40MS0xLjQzek01Ljg1IDE0LjJjLjEyLS4xMi4yNi0uMTUuMzUtLjE1cy4yMy4wMy4zNS4xNWMuMTkuMi4xOS41MSAwIC43MWwtLjM1LjM1LS4zNS0uMzZhLjUwMS41MDEgMCAwIDEgMC0uN3ptMCA1LjY1Yy0uMTIuMTItLjI2LjE1LS4zNS4xNXMtLjIzLS4wMy0uMzUtLjE1YS41MTMuNTEzIDAgMCAxIDAtLjcxbDEuMDYtMS4wNi43MS43MS0xLjA3IDEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVFbW9qaVRyYW5zcG9ydGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuNTcgMTAuNjZjLS4xNC0uNC0uNTItLjY2LS45Ny0uNjZoLTcuMTljLS40NiAwLS44My4yNi0uOTguNjZMMTAgMTQuNzdsLjAxIDUuNTFjMCAuMzguMzEuNzIuNjkuNzJoLjYyYy4zOCAwIC42OC0uMzguNjgtLjc2VjE5aDh2MS4yNGMwIC4zOC4zMS43Ni42OS43NmguNjFjLjM4IDAgLjY5LS4zNC42OS0uNzJsLjAxLTEuMzd2LTQuMTRsLTEuNDMtNC4xMXptLTguMTYuMzRoNy4xOWwxLjAzIDNoLTkuMjVsMS4wMy0zek0xMiAxN2MtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem04IDBjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOWgxVjNIN3Y1SDJ2MTNoMVY5aDVWNGg2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01IDExaDJ2Mkg1ek0xMCA1aDJ2MmgtMnpNNSAxNWgydjJINXpNNSAxOWgydjJINXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUVuZ2luZWVyaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxNWMtMi42NyAwLTggMS4zNC04IDR2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHptLTYgNGMuMjItLjcyIDMuMzEtMiA2LTIgMi43IDAgNS44IDEuMjkgNiAySDN6TTQuNzQgOUg1YzAgMi4yMSAxLjc5IDQgNCA0czQtMS43OSA0LTRoLjI2Yy4yNyAwIC40OS0uMjIuNDktLjQ5di0uMDJhLjQ5LjQ5IDAgMCAwLS40OS0uNDlIMTNjMC0xLjQ4LS44MS0yLjc1LTItMy40NXYuOTVjMCAuMjgtLjIyLjUtLjUuNXMtLjUtLjIyLS41LS41VjQuMTRDOS42OCA0LjA2IDkuMzUgNCA5IDRzLS42OC4wNi0xIC4xNFY1LjVjMCAuMjgtLjIyLjUtLjUuNVM3IDUuNzggNyA1LjV2LS45NUM1LjgxIDUuMjUgNSA2LjUyIDUgOGgtLjI2YS40OS40OSAwIDAgMC0uNDkuNDl2LjAzYzAgLjI2LjIyLjQ4LjQ5LjQ4ek0xMSA5YzAgMS4xLS45IDItMiAycy0yLS45LTItMmg0ek0yMS45OCA2LjIzbC45My0uODMtLjc1LTEuMy0xLjE5LjM5Yy0uMTQtLjExLS4zLS4yLS40Ny0uMjdMMjAuMjUgM2gtMS41bC0uMjUgMS4yMmMtLjE3LjA3LS4zMy4xNi0uNDguMjdsLTEuMTgtLjM5LS43NSAxLjMuOTMuODNjLS4wMi4xNy0uMDIuMzUgMCAuNTJsLS45My44NS43NSAxLjMgMS4yLS4zOGMuMTMuMS4yOC4xOC40My4yNWwuMjggMS4yM2gxLjVsLjI3LTEuMjJjLjE2LS4wNy4zLS4xNS40NC0uMjVsMS4xOS4zOC43NS0xLjMtLjkzLS44NWMuMDMtLjE5LjAyLS4zNi4wMS0uNTN6TTE5LjUgNy43NWExLjI1IDEuMjUgMCAxIDEgMC0yLjUgMS4yNSAxLjI1IDAgMCAxIDAgMi41ek0xOS40IDEwLjc5bC0uODUuMjhjLS4xLS4wOC0uMjEtLjE0LS4zMy0uMTlsLS4xOC0uODhoLTEuMDdsLS4xOC44N2MtLjEyLjA1LS4yNC4xMi0uMzQuMTlsLS44NC0uMjgtLjU0LjkzLjY2LjU5Yy0uMDEuMTMtLjAxLjI1IDAgLjM3bC0uNjYuNjEuNTQuOTMuODYtLjI3Yy4xLjA3LjIuMTMuMzEuMThsLjE4Ljg4aDEuMDdsLjE5LS44N2MuMTEtLjA1LjIyLS4xMS4zMi0uMThsLjg1LjI3LjU0LS45My0uNjYtLjYxYy4wMS0uMTMuMDEtLjI1IDAtLjM3bC42Ni0uNTktLjUzLS45M3ptLTEuOSAyLjZjLS40OSAwLS44OS0uNC0uODktLjg5cy40LS44OS44OS0uODkuODkuNC44OS44OS0uNC44OS0uODkuODl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGYWNlMiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk3IDEzLjUydi0uMDRDMjMuMjEgMTIuMzggMjQgMTAuNzggMjQgOWMwLTMuMzEtMi42OS02LTYtNi0uMjYgMC0uNTIuMDItLjc4LjA2YTUuOTggNS45OCAwIDAgMC0xMC40NCAwQzYuNTIgMy4wMiA2LjI2IDMgNiAzIDIuNjkgMyAwIDUuNjkgMCA5YzAgMS43OC43OSAzLjM4IDIuMDIgNC40OHYuMDRBNi4wMDggNi4wMDggMCAwIDAgMCAxOGMwIDMuMzEgMi42OSA2IDYgNiAxLjM5IDAgMi42Ny0uNDggMy42OS0xLjI4Ljc0LjE4IDEuNTEuMjggMi4zMS4yOHMxLjU3LS4xIDIuMzEtLjI4YzEuMDIuOCAyLjMgMS4yOCAzLjY5IDEuMjggMy4zMSAwIDYtMi42OSA2LTYgMC0xLjc4LS43OS0zLjM4LTIuMDMtNC40OHpNMjIgOWMwIC41NS0uMTIgMS4wNy0uMzIgMS41NEExMCAxMCAwIDAgMCAxNy45OCA1SDE4YzIuMjEgMCA0IDEuNzkgNCA0em0tOS45Ny00YzIuNzMuMDEgNS4xMyAxLjM5IDYuNTcgMy40OC0uNzEuNTctMS42Ljg5LTIuNTMuODlBNC4wNTkgNC4wNTkgMCAwIDEgMTIgNS4zMWMwLS4xLjAyLS4yLjAzLS4zMXpNMTIgMmMxLjI1IDAgMi4zNi41OSAzLjEgMS41LS45OC0uMzItMi4wMi0uNS0zLjEtLjVzLTIuMTIuMTgtMy4xLjVDOS42NCAyLjU5IDEwLjc1IDIgMTIgMnpNNiA1aC4wMmExMCAxMCAwIDAgMC0zLjcgNS41NEMyLjEyIDEwLjA3IDIgOS41NSAyIDljMC0yLjIxIDEuNzktNCA0LTR6bTAgMTdjLTIuMjEgMC00LTEuNzktNC00IDAtLjY5LjE5LTEuMzIuNS0xLjg4LjggMi40NCAyLjUyIDQuNDcgNC43NCA1LjY4LS4zOS4xMy0uOC4yLTEuMjQuMnptLTItOWMwLTMuNzIgMi41Ni02Ljg1IDYtNy43NHYuMDVjMCAzLjM0IDIuNzIgNi4wNiA2LjA2IDYuMDYgMS4yNiAwIDIuNDUtLjM5IDMuNDUtMS4wOS4zMS44Ni40OSAxLjc3LjQ5IDIuNzIgMCA0LjQxLTMuNTkgOC04IDhzLTgtMy41OS04LTh6bTE0IDljLS40NCAwLS44NS0uMDctMS4yNS0uMiAyLjIzLTEuMjEgMy45NC0zLjI0IDQuNzQtNS42OC4zMS41Ni41IDEuMi41IDEuODguMDEgMi4yMS0xLjc4IDQtMy45OSA0elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjlcIixcImN5XCI6XCIxNFwiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTRcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2UzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI5XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyLjkxIDExLjk2QzIyLjM5IDYuMzIgMTcuNjYgMiAxMiAyUzEuNjEgNi4zMiAxLjA5IDExLjk2bC0uOSA5Ljg2Yy0uMSAxLjE3LjgyIDIuMTggMiAyLjE4aDE5LjYyYzEuMTggMCAyLjEtMS4wMSAxLjk5LTIuMThsLS44OS05Ljg2ek0xMyA0LjA3YzIuMjYuMjggNC4yMiAxLjUxIDUuNDkgMy4yOC0uNTguNC0xLjI2LjY1LTEuOTkuNjVDMTQuNTcgOCAxMyA2LjQzIDEzIDQuNXYtLjQzem0tMiAwdi40M0MxMSA2LjQzIDkuNDMgOCA3LjUgOGMtLjczIDAtMS40MS0uMjUtMS45OS0uNjUgMS4yNy0xLjc3IDMuMjMtMyA1LjQ5LTMuMjh6TTQuNTQgOS4xM2MuODcuNTUgMS44OS44NyAyLjk2Ljg3IDEuODYgMCAzLjUtLjkzIDQuNS0yLjM1QzEzIDkuMDcgMTQuNjQgMTAgMTYuNSAxMGMxLjA3IDAgMi4wOS0uMzIgMi45Ni0uODcuMzQuODkuNTQgMS44Ni41NCAyLjg3IDAgNC40MS0zLjU5IDgtOCA4cy04LTMuNTktOC04YzAtMS4wMS4yLTEuOTguNTQtMi44N3pNMTIgMjJIMi4xOWwuNTYtNi4yQzQuMjUgMTkuNDQgNy44MiAyMiAxMiAyMnM3Ljc1LTIuNTYgOS4yNS02LjJsLjU2IDYuMkgxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2U0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMmMtLjk2IDAtMS44OC4xNC0yLjc1LjM5QTQuOTg2IDQuOTg2IDAgMCAwIDUgMEMyLjI0IDAgMCAyLjI0IDAgNWMwIDEuOC45NiAzLjM3IDIuMzkgNC4yNUMyLjE0IDEwLjEyIDIgMTEuMDQgMiAxMmMwIDUuNTIgNC40OCAxMCAxMCAxMHMxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAyYzIuOSAwIDUuNDQgMS41NiA2Ljg0IDMuODgtLjQzLjA3LS44OC4xMi0xLjM0LjEyLTIuOSAwLTUuNDQtMS41Ni02Ljg0LTMuODguNDMtLjA3Ljg4LS4xMiAxLjM0LS4xMnpNNC40MiA5LjQ3YTguMDQ2IDguMDQ2IDAgMCAxIDMuNjYtNC40NCA4LjA0NiA4LjA0NiAwIDAgMS0zLjY2IDQuNDR6TTIgNWMwLTEuNjUgMS4zNS0zIDMtMyAuOTUgMCAxLjguNDYgMi4zNSAxLjE1LTEuNzkuOTQtMy4yNiAyLjQxLTQuMiA0LjJDMi40NiA2LjggMiA1Ljk1IDIgNXptMTAgMTVjLTQuNDEgMC04LTMuNTktOC04IDAtLjA1LjAxLS4xLjAxLS4xNSAyLjYtLjk4IDQuNjgtMi45OSA1Ljc0LTUuNTVhOS45NDIgOS45NDIgMCAwIDAgOS45MiAzLjQ2Yy4yMS43MS4zMyAxLjQ2LjMzIDIuMjQgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZTUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOCAwLTEuMTIuMjMtMi4xOC42NS0zLjE1YS40OTUuNDk1IDAgMCAwIC44NS0uMzVjMC0uMjUtLjE5LS40NS0uNDMtLjQ5LjE1LS4yNi4zMi0uNTEuNDktLjc1LS4wMy4wOC0uMDYuMTUtLjA2LjI0IDAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41UzYuMjggNyA2IDdjLS4xMyAwLS4yNS4wNS0uMzQuMTMuNTItLjY4IDEuMTUtMS4yOCAxLjg2LTEuNzZBLjQ5NS40OTUgMCAwIDAgOCA2YS40OTUuNDk1IDAgMCAwIC4xLS45OGMuMTYtLjA5LjMyLS4xNy40OS0uMjUuMDkuMTQuMjQuMjMuNDEuMjMuMjggMCAuNS0uMjIuNS0uNSAwLS4wMy0uMDEtLjA2LS4wMi0uMDkuMzktLjEzLjc5LS4yMyAxLjIxLS4zLS4xMS4xLS4xOS4yMy0uMTkuMzkgMCAuMjguMjIuNS41LjVzLjUtLjIyLjUtLjVhLjUxLjUxIDAgMCAwLS4zLS40NmMuMjYtLjAzLjUzLS4wNC44LS4wNHMuNTQuMDEuOC4wNGMtLjE4LjA4LS4zLjI1LS4zLjQ2IDAgLjI4LjIyLjUuNS41cy41LS4yMi41LS41YzAtLjE2LS4wOC0uMjktLjE5LS4zOC40MS4wNy44Mi4xNyAxLjIxLjMtLjAxLjAyLS4wMi4wNS0uMDIuMDggMCAuMjguMjIuNS41LjUuMTcgMCAuMzItLjA5LjQxLS4yMy4xNy4wOC4zMy4xNi40OS4yNUEuNDk1LjQ5NSAwIDAgMCAxNiA2Yy4yOCAwIC41LS4yMi41LS41IDAtLjA1LS4wMS0uMDktLjAzLS4xMy43MS40OCAxLjM0IDEuMDggMS44NiAxLjc2YS40OTUuNDk1IDAgMCAwLS44My4zN2MwIC4yOC4yMi41LjUuNXMuNS0uMjIuNS0uNWMwLS4wOS0uMDMtLjE2LS4wNy0uMjMuMTguMjQuMzQuNDkuNDkuNzUtLjIzLjAzLS40Mi4yMy0uNDIuNDhhLjQ5NS40OTUgMCAwIDAgLjg1LjM1Yy40Mi45Ny42NSAyLjAzLjY1IDMuMTUgMCA0LjQxLTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI1LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTdcIixcImN5XCI6XCI2LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjYuNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzXCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiNi41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE0XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE2XCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEwXCIsXCJjeVwiOlwiNy41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjhcIixcImN5XCI6XCI3LjVcIixcInJcIjpcIi41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjguNVwiLFwiclwiOlwiLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCI3XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEzXCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3XCIsXCJjeVwiOlwiOC41XCIsXCJyXCI6XCIuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1XCIsXCJjeVwiOlwiMTNcIixcInJcIjpcIjEuMjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZhY2U2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAyYzMuNjggMCA2Ljc4IDIuNTEgNy43MSA1LjktLjYtLjE2LTEuMzMtLjM3LTIuMjYtMi4yNEEyLjk5MiAyLjk5MiAwIDAgMCAxNC43NiA2SDkuMjRjLTEuMTUgMC0yLjE4LjY0LTIuNjkgMS42Ni0uOTMgMS44Ni0xLjU4IDIuMDYtMi4yNiAyLjI0QzUuMjIgNi41MSA4LjMyIDQgMTIgNHptMCAxNmMtNC40MSAwLTgtMy41OS04LTh2LS4wM2MyLjMxLS4yMiAzLjQzLTEuNTkgNC4zNC0zLjQxLjE3LS4zNS41MS0uNTYuOS0uNTZoNS41M2MuMzggMCAuNzIuMjEuODkuNTUuOSAxLjggMS45OSAzLjE5IDQuMzQgMy40MXYuMDNjMCA0LjQyLTMuNTkgOC4wMS04IDguMDF6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOVwiLFwiY3lcIjpcIjEzXCIsXCJyXCI6XCIxLjI1XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTVcIixcImN5XCI6XCIxM1wiLFwiclwiOlwiMS4yNVwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRmFjZWJvb2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiAxMmMwLTUuNTItNC40OC0xMC0xMC0xMFMyIDYuNDggMiAxMmMwIDQuODQgMy40NCA4Ljg3IDggOS44VjE1SDh2LTNoMlY5LjVDMTAgNy41NyAxMS41NyA2IDEzLjUgNkgxNnYzaC0yYy0uNTUgMC0xIC40NS0xIDF2MmgzdjNoLTN2Ni45NWM1LjA1LS41IDktNC43NiA5LTkuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGZW1hbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNy41IDkuNUMxNy41IDYuNDYgMTUuMDQgNCAxMiA0UzYuNSA2LjQ2IDYuNSA5LjVjMCAyLjcgMS45NCA0LjkzIDQuNSA1LjRWMTdIOXYyaDJ2Mmgydi0yaDJ2LTJoLTJ2LTIuMWMyLjU2LS40NyA0LjUtMi43IDQuNS01LjR6bS05IDBDOC41IDcuNTcgMTAuMDcgNiAxMiA2czMuNSAxLjU3IDMuNSAzLjVTMTMuOTMgMTMgMTIgMTNzLTMuNS0xLjU3LTMuNS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVGaXJlcGxhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi4wMSAxMi40NmMtLjE1LjQyLS4xNS44Mi0uMDggMS4yOC4xLjU1LjMzIDEuMDQuMiAxLjYtLjEzLjU5LS43NyAxLjM4LTEuNTMgMS42MyAxLjI4IDEuMDUgMy4yLjM3IDMuMzktMS4zMi4xNy0xLjU0LTEuNDQtMS45OC0xLjk4LTMuMTl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMnYyMGgyMFYySDJ6bTEwIDE2Yy0xLjU4IDAtMi45Ny0xLjg4LTMtMy4wNiAwLS4wNS0uMDEtLjEzLS4wMS0uMjItLjEzLTEuNzMgMS0zLjIgMi40Ny00LjM3LjQ3IDEuMDEgMS4yNyAyLjAzIDIuNTcgMi45Mi41OC40Mi45Ny44Ni45NyAxLjczIDAgMS42NS0xLjM1IDMtMyAzem04IDJoLTJ2LTJoLTIuMDJBNC45OCA0Ljk4IDAgMCAwIDE3IDE1YzAtMS44OS0xLjA5LTIuODUtMS44NS0zLjM3QzEyLjIgOS42MSAxMyA3IDEzIDdjLTYuNzMgMy41Ny02LjAyIDcuNDctNiA4IC4wMy45Ni40OSAyLjA3IDEuMjMgM0g2djJINFY0aDE2djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lRml0Yml0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuODkgMTMuODljMS4wNCAwIDEuODktLjg1IDEuODktMS44OXMtLjg1LTEuODktMS44OS0xLjg5UzE4IDEwLjk2IDE4IDEycy44NSAxLjg5IDEuODkgMS44OXptLTQuMjQtLjIxYy45MyAwIDEuNjgtLjc1IDEuNjgtMS42OHMtLjc1LTEuNjgtMS42OC0xLjY4Yy0uOTMgMC0xLjY4Ljc1LTEuNjggMS42OHMuNzUgMS42OCAxLjY4IDEuNjh6bTAtNC4yNmMuOTMgMCAxLjY4LS43NSAxLjY4LTEuNjggMC0uOTMtLjc1LTEuNjgtMS42OC0xLjY4LS45MyAwLTEuNjguNzUtMS42OCAxLjY4IDAgLjkzLjc1IDEuNjggMS42OCAxLjY4em0wIDguNTFjLjkzIDAgMS42OC0uNzUgMS42OC0xLjY4IDAtLjkzLS43NS0xLjY4LTEuNjgtMS42OC0uOTMgMC0xLjY4Ljc1LTEuNjggMS42OCAwIC45Mi43NSAxLjY4IDEuNjggMS42OHptLTQuMjQtNC40NmMuODEgMCAxLjQ3LS42NiAxLjQ3LTEuNDdzLS42Ni0xLjQ3LTEuNDctMS40N2MtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0wLTQuMjZjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3cy0uNjYtMS40Ny0xLjQ3LTEuNDdjLS44MSAwLTEuNDcuNjYtMS40NyAxLjQ3cy42NSAxLjQ3IDEuNDcgMS40N3ptMCA4LjUyYy44MSAwIDEuNDctLjY2IDEuNDctMS40NyAwLS44MS0uNjYtMS40Ny0xLjQ3LTEuNDctLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDctLjAxLjgxLjY1IDEuNDcgMS40NyAxLjQ3em0wIDQuMjdjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3IDAtLjgxLS42Ni0xLjQ3LTEuNDctMS40Ny0uODEgMC0xLjQ3LjY2LTEuNDcgMS40Ny0uMDEuODEuNjUgMS40NyAxLjQ3IDEuNDd6bTAtMTcuMDZjLjgxIDAgMS40Ny0uNjYgMS40Ny0xLjQ3UzEyLjIyIDIgMTEuNDEgMmMtLjgxIDAtMS40Ny42Ni0xLjQ3IDEuNDdzLjY1IDEuNDcgMS40NyAxLjQ3em0tNC4yNSA4LjMyYy43IDAgMS4yNi0uNTcgMS4yNi0xLjI2cy0uNTctMS4yNi0xLjI2LTEuMjZhMS4yNjEgMS4yNjEgMCAwIDAgMCAyLjUyem0wIDQuMjVhMS4yNjEgMS4yNjEgMCAwIDAgMC0yLjUyIDEuMjYxIDEuMjYxIDAgMCAwIDAgMi41MnptMC04LjQ5YTEuMjYxIDEuMjYxIDAgMCAwIDAtMi41MiAxLjI2MSAxLjI2MSAwIDAgMCAwIDIuNTJ6bS0zLjg3IDQuMDNhMS4wNSAxLjA1IDAgMSAwIDAtMi4xIDEuMDUgMS4wNSAwIDAgMCAwIDIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZsb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguNjcgMTljLTEuOTUgMC0yLjA5IDEtMy4zMyAxLTEuMTkgMC0xLjQyLTEtMy4zMy0xLTEuOTUgMC0yLjEgMS0zLjM0IDEtMS4yNCAwLTEuMzgtMS0zLjMzLTEtMS45NSAwLTIuMSAxLTMuMzQgMXYyYzEuOTUgMCAyLjExLTEgMy4zNC0xIDEuMjQgMCAxLjM4IDEgMy4zMyAxIDEuOTUgMCAyLjEtMSAzLjM0LTEgMS4yMiAwIDEuNCAxIDMuMzMgMSAxLjkzIDAgMi4xLTEgMy4zMy0xIDEuMjIgMCAxLjQgMSAzLjMzIDF2LTJjLTEuMjQgMC0xLjM4LTEtMy4zMy0xek04LjY4IDE3LjVjMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNDIgMSAzLjMzIDEgMS45NSAwIDIuMDktMSAzLjMzLTEgMS4xOSAwIDEuNC45OCAzLjMxIDF2LTJjLS42MyAwLTEtLjI4LTEuNDgtLjU1bC0yLjAyLTcuNTMgMi4wOS44NS43NC0xLjg2TDkuNzggMiAyIDExLjYxbDEuNTcgMS4yMyAxLjM5LTEuNzguOTMgMy40OGMtLjE4LS4wMi0uMzUtLjA1LS41Ni0uMDUtMS45NSAwLTIuMDkgMS0zLjMzIDF2MmMxLjkgMCAyLjE3LTEgMy4zNS0xIDEuMTkuMDEgMS40MiAxLjAxIDMuMzMgMS4wMXptMS43NC0xMy4wOSA1Ljc0IDIuMDkgMi4xNSA4LjAyYy0xLjU0LjExLTEuODIuODktMi44NS45NmwtMS40Mi01LjMxLTMuODYgMS4wNC45MSAzLjM5Yy0xLjEyLjI1LTEuNDEuOS0yLjQyLjktLjE4IDAtLjMzLS4wMi0uNDUtLjA1TDYuNSA5LjA5bDMuOTItNC42OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZvbGxvd1RoZVNpZ25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDUuNWMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6TTUuNzUgOC45IDMgMjNoMi4xbDEuNzUtOEw5IDE3djZoMnYtNy41NUw4Ljk1IDEzLjRsLjYtM0MxMC44NSAxMiAxMi44IDEzIDE1IDEzdi0yYy0xLjg1IDAtMy40NS0xLTQuMzUtMi40NWwtLjk1LTEuNkM5LjM1IDYuMzUgOC43IDYgOCA2Yy0uMjUgMC0uNS4wNS0uNzUuMTVMMiA4LjNWMTNoMlY5LjY1bDEuNzUtLjc1TTEzIDJ2N2gzLjc1djE0aDEuNVY5SDIyVjJoLTl6bTUuMDEgNlY2LjI1SDE0LjV2LTEuNWgzLjUxVjNsMi40OSAyLjVMMTguMDEgOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUZyb250SGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjUgOGMtLjE3IDAtLjM0LjAyLS41LjA1VjQuNWEyLjUgMi41IDAgMCAwLTMuMDQtMi40NEEyLjUwMiAyLjUwMiAwIDAgMCAxMi41IDBjLTEuMDYgMC0xLjk2LjY2LTIuMzMgMS41OUEyLjUgMi41IDAgMCAwIDcgNHYuNTVBMi41IDIuNSAwIDAgMCA0IDd2OC41YzAgNC42OSAzLjgxIDguNSA4LjUgOC41czguNS0zLjgxIDguNS04LjV2LTVBMi41IDIuNSAwIDAgMCAxOC41IDh6bS41IDcuNWE2LjUgNi41IDAgMSAxLTEzIDBWN2MwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY1aDJWNGMwLS4yOC4yMi0uNS41LS41cy41LjIyLjUuNXY3aDJWMi41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41VjExaDJWNC41YzAtLjI4LjIyLS41LjUtLjVzLjUuMjIuNS41djguOTJjLTEuNzcuNzctMyAyLjUzLTMgNC41OGgyYzAtMS42NiAxLjM0LTMgMy0zdi00LjVjMC0uMjguMjItLjUuNS0uNXMuNS4yMi41LjV2NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdpcmwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA3LjVjLjk3IDAgMS43NS0uNzggMS43NS0xLjc1UzEyLjk3IDQgMTIgNHMtMS43NS43OC0xLjc1IDEuNzVTMTEuMDMgNy41IDEyIDcuNXptMiA4LjV2NGgtNHYtNEg4bDIuMzgtNi4zOGExLjczMyAxLjczMyAwIDAgMSAzLjI0IDBMMTYgMTZoLTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cEFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcImdcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMiA5VjdoLTJ2MmgtMnYyaDJ2Mmgydi0yaDJWOXpNOCAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTggMTNjLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6bTYgNUgydi0uOTlDMi4yIDE2LjI5IDUuMyAxNSA4IDE1czUuOCAxLjI5IDYgMnYxek0xMi41MSA0LjA1QzEzLjQzIDUuMTEgMTQgNi40OSAxNCA4cy0uNTcgMi44OS0xLjQ5IDMuOTVDMTQuNDcgMTEuNyAxNiAxMC4wNCAxNiA4cy0xLjUzLTMuNy0zLjQ5LTMuOTV6TTE2LjUzIDEzLjgzQzE3LjQyIDE0LjY2IDE4IDE1LjcgMTggMTd2M2gydi0zYzAtMS40NS0xLjU5LTIuNTEtMy40Ny0zLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JvdXBPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSA4YzAtMS40Mi0uNS0yLjczLTEuMzMtMy43Ni40Mi0uMTQuODYtLjI0IDEuMzMtLjI0IDIuMjEgMCA0IDEuNzkgNCA0cy0xLjc5IDQtNCA0aC0uMThsLS43Ny0uNzdjLjYtLjk0Ljk1LTIuMDUuOTUtMy4yM3ptNy44MyAxMkgyM3YtM2MwLTIuMTgtMy41OC0zLjQ3LTYuMzQtMy44NyAxLjEuNzUgMS45NSAxLjcxIDIuMjMgMi45NEwyMi44MyAyMHpNOSA2Yy0uMDYgMC0uMTEgMC0uMTYuMDFsLTEuNi0xLjZhMy45OTYgMy45OTYgMCAwIDEgNS4zNSA1LjM1bC0xLjYtMS42Yy4wMS0uMDUuMDEtLjEuMDEtLjE2IDAtMS4xLS45LTItMi0yem0uMTcgNkg5Yy0yLjIxIDAtNC0xLjc5LTQtNHYtLjE3TC42OSAzLjUxIDIuMSAyLjFsMTkuOCAxOS44LTEuNDEgMS40MUwxNyAxOS44M1YyMEgxdi0zYzAtMi42NiA1LjMzLTQgOC00IC4zNyAwIC44LjAzIDEuMjUuMDhMOS4xNyAxMnpNOSAxNWMtMi43IDAtNS44IDEuMjktNiAyLjAxVjE4aDEydi0uMTdsLTIuMTEtMi4xMUMxMS43NiAxNS4zMSAxMC4zMyAxNSA5IDE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JvdXBSZW1vdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNCA5djJoLTZWOWg2ek04IDRDNS43OSA0IDQgNS43OSA0IDhzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6bTAgM2MtMi42NyAwLTggMS4zNC04IDR2M2gxNnYtM2MwLTIuNjYtNS4zMy00LTgtNHptNiA1SDJ2LS45OUMyLjIgMTYuMjkgNS4zIDE1IDggMTVzNS44IDEuMjkgNiAydjF6TTEyLjUxIDQuMDVDMTMuNDMgNS4xMSAxNCA2LjQ5IDE0IDhzLS41NyAyLjg5LTEuNDkgMy45NUMxNC40NyAxMS43IDE2IDEwLjA0IDE2IDhzLTEuNTMtMy43LTMuNDktMy45NXptNC4wMiA5Ljc4QzE3LjQyIDE0LjY2IDE4IDE1LjcgMTggMTd2M2gydi0zYzAtMS40NS0xLjU5LTIuNTEtMy40Ny0zLjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lR3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkgMTMuNzVjLTIuMzQgMC03IDEuMTctNyAzLjVWMTloMTR2LTEuNzVjMC0yLjMzLTQuNjYtMy41LTctMy41ek00LjM0IDE3Yy44NC0uNTggMi44Ny0xLjI1IDQuNjYtMS4yNXMzLjgyLjY3IDQuNjYgMS4yNUg0LjM0ek05IDEyYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzEwLjkzIDUgOSA1IDUuNSA2LjU3IDUuNSA4LjUgNy4wNyAxMiA5IDEyem0wLTVjLjgzIDAgMS41LjY3IDEuNSAxLjVTOS44MyAxMCA5IDEwcy0xLjUtLjY3LTEuNS0xLjVTOC4xNyA3IDkgN3ptNy4wNCA2LjgxYzEuMTYuODQgMS45NiAxLjk2IDEuOTYgMy40NFYxOWg0di0xLjc1YzAtMi4wMi0zLjUtMy4xNy01Ljk2LTMuNDR6TTE1IDEyYzEuOTMgMCAzLjUtMS41NyAzLjUtMy41UzE2LjkzIDUgMTUgNWMtLjU0IDAtMS4wNC4xMy0xLjUuMzUuNjMuODkgMSAxLjk4IDEgMy4xNXMtLjM3IDIuMjYtMSAzLjE1Yy40Ni4yMi45Ni4zNSAxLjUuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cHMyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAuMjcgMTJoMy40NmExLjUgMS41IDAgMCAwIDEuNDgtMS43NWwtLjMtMS43OWEyLjk1MSAyLjk1MSAwIDAgMC01LjgyLjAxbC0uMyAxLjc5Yy0uMTUuOTEuNTUgMS43NCAxLjQ4IDEuNzR6bS43OS0zLjIxYy4wOC0uNDYuNDctLjc5Ljk0LS43OXMuODYuMzMuOTQuNzlsLjIgMS4yMWgtMi4yOGwuMi0xLjIxek0xLjY2IDExLjExYy0uMTMuMjYtLjE4LjU3LS4xLjg4LjE2LjY5Ljc2IDEuMDMgMS41MyAxaDEuOTVjLjgzIDAgMS41MS0uNTggMS41MS0xLjI5IDAtLjE0LS4wMy0uMjctLjA3LS40LS4wMS0uMDMtLjAxLS4wNS4wMS0uMDguMDktLjE2LjE0LS4zNC4xNC0uNTMgMC0uMzEtLjE0LS42LS4zNi0uODItLjAzLS4wMy0uMDMtLjA2LS4wMi0uMS4wNy0uMi4wNy0uNDMuMDEtLjY1YTEuMTIgMS4xMiAwIDAgMC0uOTktLjc0LjA5LjA5IDAgMCAxLS4wNy0uMDNDNS4wMyA4LjE0IDQuNzIgOCA0LjM3IDhjLS4zIDAtLjU3LjEtLjc1LjI2LS4wMy4wMy0uMDYuMDMtLjA5LjAyYTEuMjQgMS4yNCAwIDAgMC0xLjcgMS4wM2MwIC4wMi0uMDEuMDQtLjAzLjA2LS4yOS4yNi0uNDYuNjUtLjQxIDEuMDUuMDMuMjIuMTIuNDMuMjUuNi4wMy4wMi4wMy4wNi4wMi4wOXpNMTYuMjQgMTMuNjVjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxNi4zOVYxOGgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek04LjA3IDE2YS45Ni45NiAwIDAgMSAuNDktLjUyYzEuMS0uNDkgMi4yNi0uNzMgMy40My0uNzMgMS4xOCAwIDIuMzMuMjUgMy40My43My4yMy4xLjQuMjkuNDkuNTJIOC4wN3pNMS4yMiAxNC41OEEyLjAxIDIuMDEgMCAwIDAgMCAxNi40M1YxOGg0LjV2LTEuNjFjMC0uODMuMjMtMS42MS42My0yLjI5LS4zNy0uMDYtLjc0LS4xLTEuMTMtLjEtLjk5IDAtMS45My4yMS0yLjc4LjU4ek0yMi43OCAxNC41OEE2Ljk1IDYuOTUgMCAwIDAgMjAgMTRjLS4zOSAwLS43Ni4wNC0xLjEzLjEuNC42OC42MyAxLjQ2LjYzIDIuMjlWMThIMjR2LTEuNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0yMiAxMXYtLjVjMC0xLjEtLjktMi0yLTJoLTJjLS40MiAwLS42NS40OC0uMzkuODFsLjcuNjNjLS4xOS4zMS0uMzEuNjctLjMxIDEuMDYgMCAxLjEuOSAyIDIgMnMyLS45IDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUdyb3VwczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNi4yNCAxMy42NWMtMS4xNy0uNTItMi42MS0uOS00LjI0LS45LTEuNjMgMC0zLjA3LjM5LTQuMjQuOUEyLjk4OCAyLjk4OCAwIDAgMCA2IDE2LjM5VjE4aDEydi0xLjYxYzAtMS4xOC0uNjgtMi4yNi0xLjc2LTIuNzR6TTguMDcgMTZhLjk2Ljk2IDAgMCAxIC40OS0uNTJjMS4xLS40OSAyLjI2LS43MyAzLjQzLS43MyAxLjE4IDAgMi4zMy4yNSAzLjQzLjczLjIzLjEuNC4yOS40OS41Mkg4LjA3ek0xLjIyIDE0LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjktLjM3LS4wNi0uNzQtLjEtMS4xMy0uMS0uOTkgMC0xLjkzLjIxLTIuNzguNTh6TTIyLjc4IDE0LjU4QTYuOTUgNi45NSAwIDAgMCAyMCAxNGMtLjM5IDAtLjc2LjA0LTEuMTMuMS40LjY4LjYzIDEuNDYuNjMgMi4yOVYxOEgyNHYtMS41N2MwLS44MS0uNDgtMS41My0xLjIyLTEuODV6TTEyIDEyYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDMgMS4zNCAzIDMgM3ptMC00Yy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6TTEuNDk3IDExIDQgOC40OTcgNi41MDMgMTEgNCAxMy41MDN6TTIwIDlsLTIuNSA0aDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVHcm91cHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDEzYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMS4xMyAxLjFjLS4zNy0uMDYtLjc0LS4xLTEuMTMtLjEtLjk5IDAtMS45My4yMS0yLjc4LjU4QTIuMDEgMi4wMSAwIDAgMCAwIDE2LjQzVjE4aDQuNXYtMS42MWMwLS44My4yMy0xLjYxLjYzLTIuMjl6TTIwIDEzYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptNCAzLjQzYzAtLjgxLS40OC0xLjUzLTEuMjItMS44NUE2Ljk1IDYuOTUgMCAwIDAgMjAgMTRjLS4zOSAwLS43Ni4wNC0xLjEzLjEuNC42OC42MyAxLjQ2LjYzIDIuMjlWMThIMjR2LTEuNTd6bS03Ljc2LTIuNzhjLTEuMTctLjUyLTIuNjEtLjktNC4yNC0uOS0xLjYzIDAtMy4wNy4zOS00LjI0LjlBMi45ODggMi45ODggMCAwIDAgNiAxNi4zOVYxOGgxMnYtMS42MWMwLTEuMTgtLjY4LTIuMjYtMS43Ni0yLjc0ek04LjA3IDE2Yy4wOS0uMjMuMTMtLjM5LjkxLS42OS45Ny0uMzggMS45OS0uNTYgMy4wMi0uNTZzMi4wNS4xOCAzLjAyLjU2Yy43Ny4zLjgxLjQ2LjkxLjY5SDguMDd6TTEyIDhjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMW0wLTJjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGFuZHNoYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuMjIgMTkuODVjLS4xOC4xOC0uNS4yMS0uNzEgMGEuNTA0LjUwNCAwIDAgMSAwLS43MWwzLjM5LTMuMzktMS40MS0xLjQxLTMuMzkgMy4zOWMtLjE5LjItLjUxLjE5LS43MSAwYS41MDQuNTA0IDAgMCAxIDAtLjcxbDMuMzktMy4zOS0xLjQxLTEuNDEtMy4zOSAzLjM5Yy0uMTguMTgtLjUuMjEtLjcxIDBhLjUxMy41MTMgMCAwIDEgMC0uNzFsMy4zOS0zLjM5LTEuNDItMS40MS0zLjM5IDMuMzljLS4xOC4xOC0uNS4yMS0uNzEgMGEuNTEzLjUxMyAwIDAgMSAwLS43MUw5LjUyIDguNGwxLjg3IDEuODZjLjk1Ljk1IDIuNTkuOTQgMy41NCAwIC45OC0uOTguOTgtMi41NiAwLTMuNTRsLTEuODYtMS44Ni4yOC0uMjhjLjc4LS43OCAyLjA1LS43OCAyLjgzIDBsNC4yNCA0LjI0Yy43OC43OC43OCAyLjA1IDAgMi44M2wtOC4yIDguMnptOS42MS02Ljc4YTQuMDA4IDQuMDA4IDAgMCAwIDAtNS42NmwtNC4yNC00LjI0YTQuMDA4IDQuMDA4IDAgMCAwLTUuNjYgMGwtLjI4LjI4LS4yOC0uMjhhNC4wMDggNC4wMDggMCAwIDAtNS42NiAwTDIuMTcgNi43MWEzLjk5MiAzLjk5MiAwIDAgMC0uNCA1LjE5bDEuNDUtMS40NWEyIDIgMCAwIDEgLjM3LTIuMzNsMy41NC0zLjU0Yy43OC0uNzggMi4wNS0uNzggMi44MyAwbDMuNTYgMy41NmMuMTguMTguMjEuNSAwIC43MS0uMjEuMjEtLjUzLjE4LS43MSAwTDkuNTIgNS41N2wtNS44IDUuNzljLS45OC45Ny0uOTggMi41NiAwIDMuNTQuMzkuMzkuODkuNjMgMS40Mi43YTIuNDU4IDIuNDU4IDAgMCAwIDIuMTIgMi4xMiAyLjQ1OCAyLjQ1OCAwIDAgMCAyLjEyIDIuMTJjLjA3LjU0LjMxIDEuMDMuNyAxLjQyLjQ3LjQ3IDEuMS43MyAxLjc3LjczLjY3IDAgMS4zLS4yNiAxLjc3LS43M2w4LjIxLTguMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFsdGhBbmRTYWZldHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMC41IDEzSDh2LTNoMi41VjcuNWgzVjEwSDE2djNoLTIuNXYyLjVoLTNWMTN6TTEyIDIgNCA1djYuMDljMCA1LjA1IDMuNDEgOS43NiA4IDEwLjkxIDQuNTktMS4xNSA4LTUuODYgOC0xMC45MVY1bC04LTN6bTYgOS4wOWMwIDQtMi41NSA3LjctNiA4LjgzLTMuNDUtMS4xMy02LTQuODItNi04Ljgzdi00LjdsNi0yLjI1IDYgMi4yNXY0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIZWFydEJyb2tlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjUgM2MtLjk2IDAtMS45LjI1LTIuNzMuNjlMMTIgOWgzbC0zIDEwIDEtOWgtM2wxLjU0LTUuMzlDMTAuNDcgMy42MSA5LjAxIDMgNy41IDMgNC40MiAzIDIgNS40MiAyIDguNWMwIDQuMTMgNC4xNiA3LjE4IDEwIDEyLjUgNS40Ny00Ljk0IDEwLTguMjYgMTAtMTIuNUMyMiA1LjQyIDE5LjU4IDMgMTYuNSAzem0tNi4yNiAxMy43M0M2LjQ1IDEzLjM0IDQgMTEgNCA4LjUgNCA2LjU0IDUuNTQgNSA3LjUgNWMuNTkgMCAxLjE5LjE1IDEuNzMuNDJMNy4zNSAxMmgzLjQybC0uNTMgNC43M3ptNC44OS0xLjJMMTcuNjkgN2gtMi45MWwuNjEtMS44MmMuMzYtLjEyLjc0LS4xOCAxLjExLS4xOEMxOC40NiA1IDIwIDYuNTQgMjAgOC41YzAgMi4yMS0yLjAyIDQuNDMtNC44NyA3LjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSGlraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuNSA1LjVjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem00IDUuMjhjLTEuMjMtLjM3LTIuMjItMS4xNy0yLjgtMi4xOGwtMS0xLjZjLS40MS0uNjUtMS4xMS0xLTEuODQtMS0uNzggMC0xLjU5LjUtMS43OCAxLjQ0UzcgMjMgNyAyM2gyLjFsMS44LTggMi4xIDJ2Nmgydi03LjVsLTIuMS0yIC42LTNjMSAxLjE1IDIuNDEgMi4wMSA0IDIuMzRWMjNIMTlWOWgtMS41djEuNzh6TTcuNDMgMTMuMTNsLTIuMTItLjQxYS45OTkuOTk5IDAgMCAxLS43OS0xLjE3bC43Ni0zLjkzYTIgMiAwIDAgMSAyLjM0LTEuNThsMS4xNi4yMy0xLjM1IDYuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaXN0b3J5RWR1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA0djEuMzhjLS44My0uMzMtMS43Mi0uNS0yLjYxLS41LTEuNzkgMC0zLjU4LjY4LTQuOTUgMi4wNWwzLjMzIDMuMzNoMS4xMXYxLjExYy44Ni44NiAxLjk4IDEuMzEgMy4xMSAxLjM2VjE1SDZ2M2MwIDEuMS45IDIgMiAyaDEwYzEuNjYgMCAzLTEuMzQgMy0zVjRIOXptLTEuMTEgNi40MVY4LjI2SDUuNjFMNC41NyA3LjIyYTUuMDcgNS4wNyAwIDAgMSAxLjgyLS4zNGMxLjM0IDAgMi41OS41MiAzLjU0IDEuNDZsMS40MSAxLjQxLS4yLjJhMi43IDIuNyAwIDAgMS0xLjkyLjhjLS40NyAwLS45My0uMTItMS4zMy0uMzR6TTE5IDE3YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xdi0yaC02di0yLjU5Yy41Ny0uMjMgMS4xLS41NyAxLjU2LTEuMDNsLjItLjJMMTUuNTkgMTRIMTd2LTEuNDFsLTYtNS45N1Y2aDh2MTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVIaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNSA5LTIuMjUtNGgtMy4zMWwtMS42OS0zaC00LjVMOC4wNiA1SDQuNzVMMi41IDlsMS42OSAzLTEuNjkgMyAyLjI1IDRoMy4zMWwxLjY5IDNoNC41bDEuNjktM2gzLjMxbDIuMjUtNC0xLjY5LTMgMS42OS0zem0tMi4yOSAwLTEuMTIgMmgtMi4xNGwtMS4xMi0yIDEuMTItMmgyLjE0bDEuMTIgMnptLTguMjcgNS0xLjEyLTIgMS4xMi0yaDIuMTJsMS4xMiAyLTEuMTIgMmgtMi4xMnptMi4xNC0xMCAxLjEyIDEuOThMMTMuMDYgOGgtMi4xMkw5LjggNS45OCAxMC45MiA0aDIuMTZ6TTUuOTIgN2gyLjE0bDEuMTIgMi0xLjEyIDJINS45Mkw0Ljc5IDlsMS4xMy0yem0tMS4xMyA4IDEuMTItMmgyLjE0bDEuMTIgMi0xLjEyIDJINS45MmwtMS4xMy0yem02LjEzIDVMOS44IDE4LjAyIDEwLjk0IDE2aDIuMTJsMS4xMyAyLjAyTDEzLjA4IDIwaC0yLjE2em03LjE2LTNoLTIuMTRsLTEuMTItMiAxLjEyLTJoMi4xNGwxLjEyIDItMS4xMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSWNlU2thdGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE3YzAgMS42Ni0xLjM0IDMtMyAzaC0ydi0yaDN2LTRhMy45NiAzLjk2IDAgMCAwLTIuOTEtMy44MmwtMi42Mi0uNzRDMTIuNjIgOS4xOSAxMiA4LjM5IDEyIDcuNVYzSDN2MTVoM3YySDJ2MmgxNmMyLjc2IDAgNS0yLjI0IDUtNWgtMnpNNSAxNlY1aDV2MUg4LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41SDEwbC4xIDFIOC41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNWgxLjgxYy40NSAxLjEyIDEuNCAyLjAxIDIuNiAyLjM2bDIuNjIuNzNDMTYuNCAxMi4zMyAxNyAxMy4xIDE3IDE0djJINXptOSA0SDh2LTJoNnYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lSW50ZXJlc3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNy4wMiAxM2MtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNCA0LTEuNzkgNC00LTEuNzktNC00LTR6bTAgNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTIgMiAuOSAyIDItLjkgMi0yIDJ6TTEzIDEzdjhoOHYtOGgtOHptNiA2aC00di00aDR2NHpNNyAybC01IDloMTBMNyAyem0wIDQuMTJMOC42IDlINS40TDcgNi4xMnpNMTkuMjUgMi41Yy0xLjA2IDAtMS44MS41Ni0yLjI1IDEuMTctLjQ0LS42MS0xLjE5LTEuMTctMi4yNS0xLjE3QzEzLjE5IDIuNSAxMiAzLjc4IDEyIDUuMjVjMCAyIDIuNDIgMy40MiA1IDUuNzUgMi41OC0yLjMzIDUtMy43NSA1LTUuNzUgMC0xLjQ3LTEuMTktMi43NS0yLjc1LTIuNzV6TTE3IDguMzVjLTEuNDUtMS4yMi0zLTIuNC0zLTMuMSAwLS40My4zNS0uNzUuNzUtLjc1LjMxIDAgLjUyLjE3LjczLjM3TDE3IDYuM2wxLjUyLTEuNDNjLjIxLS4yLjQyLS4zNy43My0uMzcuNCAwIC43NS4zMi43NS43NSAwIC43LTEuNTUgMS44OC0zIDMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUlvc1NoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTYgNS0xLjQyIDEuNDItMS41OS0xLjU5VjE2aC0xLjk4VjQuODNMOS40MiA2LjQyIDggNWw0LTQgNCA0em00IDV2MTFjMCAxLjEtLjkgMi0yIDJINmEyIDIgMCAwIDEtMi0yVjEwYzAtMS4xMS44OS0yIDItMmgzdjJINnYxMWgxMlYxMGgtM1Y4aDNhMiAyIDAgMCAxIDIgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUtheWFraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEgMjNjLTEuMDMgMC0yLjA2LS4yNS0zLS43NS0xLjg5IDEtNC4xMSAxLTYgMC0xLjg5IDEtNC4xMSAxLTYgMC0uOTUuNS0xLjk3Ljc1LTMgLjc1SDJ2LTJoMWMxLjA0IDAgMi4wOC0uMzUgMy0xIDEuODMgMS4zIDQuMTcgMS4zIDYgMCAxLjgzIDEuMyA0LjE3IDEuMyA2IDAgLjkxLjY1IDEuOTYgMSAzIDFoMXYyaC0xek0xMiA1LjVjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0xMiAxMnMtMS41Mi43MS0zLjkzIDEuMzdjLS44Mi0uMjMtMS41My0uNzUtMi4wNy0xLjM3LS43My44NC0xLjggMS41LTMgMS41cy0yLjI3LS42Ni0zLTEuNWMtLjczLjg0LTEuOCAxLjUtMyAxLjVzLTIuMjctLjY2LTMtMS41Yy0uNTQuNjEtMS4yNSAxLjEzLTIuMDcgMS4zN0MxLjUyIDE4LjIxIDAgMTcuNSAwIDE3LjVzMi45My0xLjM2IDcuMTMtMi4wOGwxLjM1LTQuMTdjLjMxLS45NSAxLjMyLTEuNDcgMi4yNy0xLjE2LjA5LjAzLjE5LjA3LjI3LjExbDIuNDcgMS4zIDIuODQtMS41IDEuNjUtMy43MS0uNTEtMS4zMkwxOC44IDIgMjIgMy40MyAyMC42NyA2LjRsLTEuMzEuNS0zLjcyIDguMzRjNC44NS42MyA4LjM2IDIuMjYgOC4zNiAyLjI2em0tOC45OC00LjU0LTEuNTIuOC0xLjc1LS45Mi0uNzEgMi4xN2MuMzIgMCAuNjQtLjAxLjk2LS4wMS43MSAwIDEuNC4wMyAyLjA3LjA4bC45NS0yLjEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lS2luZ0JlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyIDEyYzAtMS4xLS45LTItMi0yVjdjMC0xLjEtLjktMi0yLTJINmMtMS4xIDAtMiAuOS0yIDJ2M2MtMS4xIDAtMiAuOS0yIDJ2NWgxLjMzTDQgMTloMWwuNjctMmgxMi42N2wuNjYgMmgxbC42Ny0ySDIydi01em0tNC0yaC01VjdoNXYzek02IDdoNXYzSDZWN3ptLTIgNWgxNnYzSDR2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVLaXRlc3VyZmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYgM2MwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem0xNC4wNi0yaC0yLjEyTDE1LjUgMy40NGwxLjA2IDEuMDYgMy41LTMuNXpNMjIgMjN2LTJoLTFjLTEuMDQgMC0yLjA4LS4zNS0zLTEtMS44MyAxLjMtNC4xNyAxLjMtNiAwLTEuODMgMS4zLTQuMTcgMS4zLTYgMC0uOTEuNjUtMS45NiAxLTMgMUgydjJoMWMxLjAzIDAgMi4wNS0uMjUgMy0uNzUgMS44OSAxIDQuMTEgMSA2IDAgMS44OSAxIDQuMTEgMSA2IDAgLjk1LjUgMS45Ny43NSAzIC43NWgxem0tMS05LjcyYzAgMS40NC0yLjE5IDMuNjItNS4wNCA1LjU4LS4zMS4wOS0uNjMuMTQtLjk2LjE0LTEuMiAwLTIuMjctLjY2LTMtMS41LS43My44NC0xLjggMS41LTMgMS41LS45NCAwLTEuODEtLjQxLTIuNDktLjk5LjQ2LS4zOS45Ni0uNzggMS40OS0xLjE3bC0xLjU1LTIuOTdBNC4wNiA0LjA2IDAgMCAxIDYgMTJWOGMwLTEuMS45LTIgMi0yaDNjMS4zOCAwIDIuNjMtLjU2IDMuNTQtMS40NmwxLjQxIDEuNDFBNy4wMTggNy4wMTggMCAwIDEgMTEgOEg5LjZ2My41aDIuOGwxLjY5IDEuODhjMS45NS0uODQgMy43Ny0xLjM4IDUuMDYtMS4zOC44NCAwIDEuODUuMjUgMS44NSAxLjI4em0tOC44Ljk5LS43LS43Ny0yLjUuMS44MyAyLjAxYy41OS0uMzggMS44MS0xLjA2IDIuMzctMS4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUxhbmRzbGlkZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExIDEyIDggOEgydjE0aDIwbC02LTgtNS0yem0xLjUzIDIuNzdMNiAxNi45NWwtMi0uNjd2LTEuODlsMiAuNjcgMy45NS0xLjMyIDIuNTggMS4wM3pNNyAxMGwxLjU3IDIuMDktMi41Ny44Ni0yLS42N1YxMGgzek00IDIwdi0xLjYxbDIgLjY3IDkuMDMtMy4wMUwxOCAyMEg0ek0xNyA2VjFsLTUtMS0zIDJ2NGwzIDIgNS0yem0tNi0yLjkzIDEuNDItLjk1IDIuNTguNTJ2Mi4wMWwtMi43NyAxLjExTDExIDQuOTNWMy4wN3pNMTguNSA3IDE2IDl2M2wyLjUgMiA0LjUtMlY4bC00LjUtMXptMi41IDMuNy0yLjIuOTgtLjgtLjY0VjkuOTZsMS0uOCAyIC40NHYxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMb2NhdGlvbkNpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDExVjVsLTMtMy0zIDN2MkgzdjE0aDE4VjExaC02em0tOCA4SDV2LTJoMnYyem0wLTRINXYtMmgydjJ6bTAtNEg1VjloMnYyem02IDhoLTJ2LTJoMnYyem0wLTRoLTJ2LTJoMnYyem0wLTRoLTJWOWgydjJ6bTAtNGgtMlY1aDJ2MnptNiAxMmgtMnYtMmgydjJ6bTAtNGgtMnYtMmgydjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVMdWdnYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS41IDE4SDhWOWgxLjV2OXptMy4yNSAwaC0xLjVWOWgxLjV2OXpNMTYgMThoLTEuNVY5SDE2djl6bTEtMTJoLTJWM2MwLS41NS0uNDUtMS0xLTFoLTRjLS41NSAwLTEgLjQ1LTEgMXYzSDdjLTEuMSAwLTIgLjktMiAydjExYzAgMS4xLjkgMiAyIDIgMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xaDZjMCAuNTUuNDUgMSAxIDFzMS0uNDUgMS0xYzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS02LjUtMi41aDNWNmgtM1YzLjV6TTE3IDE5SDdWOGgxMHYxMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgMTFjMS45MyAwIDMuNSAxLjU3IDMuNSAzLjVTMTEuNDMgMTggOS41IDE4IDYgMTYuNDMgNiAxNC41IDcuNTcgMTEgOS41IDExem0wLTJDNi40NiA5IDQgMTEuNDYgNCAxNC41UzYuNDYgMjAgOS41IDIwczUuNS0yLjQ2IDUuNS01LjVjMC0xLjE2LS4zNi0yLjIzLS45Ny0zLjEyTDE4IDcuNDJWMTBoMlY0aC02djJoMi41OGwtMy45NyAzLjk3QzExLjczIDkuMzYgMTAuNjYgOSA5LjUgOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDIuNXY3aDN2LTdIMTZWOWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hbjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2g0di03aDJWOWMwLTEuMS0uOS0yLTItMnpNMTIgMS43NTEgMTQuMjQ4IDQgMTIgNi4yNDggOS43NSA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTWFuNCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzLjc1IDdoLTMuNUM5LjA0IDcgOC4xMSA4LjA3IDguMjcgOS4yNkwxMCAyMmg0bDEuNzMtMTIuNzRDMTUuODkgOC4wNyAxNC45NiA3IDEzLjc1IDd6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA3aC00Yy0xLjEgMC0yIC45LTIgMnY2aDJ2N2g0di03aDJWOWMwLTEuMS0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1hc2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNSA2Yy0xLjMxIDAtMi4zNyAxLjAxLTIuNDggMi4zLTEuODgtLjUtMi44NC0xLjgtNS4wMi0xLjgtMi4xOSAwLTMuMTQgMS4zLTUuMDIgMS44QzYuODcgNy4wMiA1LjgxIDYgNC41IDZBMi41IDIuNSAwIDAgMCAyIDguNVY5YzAgNiAzLjYgNy44MSA2LjUyIDcuOThDOS41MyAxNy42MiAxMC43MiAxOCAxMiAxOHMyLjQ3LS4zOCAzLjQ4LTEuMDJDMTguNCAxNi44MSAyMiAxNSAyMiA5di0uNUEyLjUgMi41IDAgMCAwIDE5LjUgNnptLTE2IDN2LS41YzAtLjU1LjQ1LTEgMS0xczEgLjQ1IDEgMXYzYzAgMS4yOC4zOCAyLjQ3IDEuMDEgMy40OEM0Ljk5IDE0LjI3IDMuNSAxMi42NSAzLjUgOXpNNyAxMS41VjkuODVjMS4xMi0uMjMgMS45NS0uNjkgMi42Ni0xLjA4QzEwLjQ4IDguMzMgMTEuMDcgOCAxMiA4Yy45MyAwIDEuNTIuMzMgMi4zNC43OC43MS4zOSAxLjU0Ljg0IDIuNjYgMS4wOHYxLjY1YzAgMi43Ni0yLjI0IDUtNSA1cy01LTIuMjUtNS01LjAxek0yMC41IDljMCAzLjY1LTEuNDkgNS4yNy0zLjAxIDUuOTguNjQtMS4wMSAxLjAxLTIuMiAxLjAxLTMuNDh2LTNjMC0uNTUuNDUtMSAxLTFzMSAuNDUgMSAxVjl6bS05LjgxIDEuNDhjLS40NC4yNi0uOTYuNTYtMS42OS43NlYxMC4yYy40OC0uMTcuODQtLjM4IDEuMTgtLjU4QzEwLjcyIDkuMyAxMS4yMyA5IDEyIDlzMS4yNy4zIDEuOC42MmMuMzQuMi43MS40MiAxLjIuNTl2MS4wNGMtLjc1LS4yMS0xLjI2LS41MS0xLjcxLS43OC0uNDYtLjI3LS44LS40Ny0xLjI5LS40N3MtLjg0LjItMS4zMS40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU1pbGl0YXJ5VGVjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwLjQzVjJIN3Y4LjQzYzAgLjM1LjE4LjY4LjQ5Ljg2bDQuMTggMi41MS0uOTkgMi4zNC0zLjQxLjI5IDIuNTkgMi4yNEw5LjA3IDIyIDEyIDIwLjIzIDE0LjkzIDIybC0uNzgtMy4zMyAyLjU5LTIuMjQtMy40MS0uMjktLjk5LTIuMzQgNC4xOC0yLjUxYy4zLS4xOC40OC0uNS40OC0uODZ6bS02IC42NC0yLTEuMlY0aDJ2Ny4wN3ptNC0xLjItMiAxLjJWNGgydjUuODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb29kQmFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSAyLjVjLTIuMzMgMC00LjMxIDEuNDYtNS4xMSAzLjVoMTAuMjJjLS44LTIuMDQtMi43OC0zLjUtNS4xMS0zLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVNb29kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTMuNS05Yy44MyAwIDEuNS0uNjcgMS41LTEuNVMxNi4zMyA4IDE1LjUgOCAxNCA4LjY3IDE0IDkuNXMuNjcgMS41IDEuNSAxLjV6bS03IDBjLjgzIDAgMS41LS42NyAxLjUtMS41UzkuMzMgOCA4LjUgOCA3IDguNjcgNyA5LjUgNy42NyAxMSA4LjUgMTF6bTMuNSA2LjVjMi4zMyAwIDQuMzEtMS40NiA1LjExLTMuNUg2Ljg5Yy44IDIuMDQgMi43OCAzLjUgNS4xMSAzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOaWdodHNTdGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuNzggMTcuNTFjLTIuNDcgMC02LjU3LTEuMzMtOC42OC01LjQzLTIuMzMtNC41MS0uNS04LjQ4LjUzLTEwLjA3QzYuMjcgMi4yIDEuOTggNi41OSAxLjk4IDEyYzAgLjE0LjAyLjI4LjAyLjQyLjYxLS4yNiAxLjI4LS40MiAxLjk4LS40MiAwLTMuMDkgMS43My01Ljc3IDQuMy03LjEtLjUgMi4xOS0uNTQgNS4wNCAxLjA0IDguMSAxLjU3IDMuMDQgNC4xOCA0Ljk1IDYuOCA1Ljg2YTggOCAwIDAgMS01LjYxIDEuMDFjLS4zNy43LS45NCAxLjI3LTEuNjQgMS42NC45OC4zMiAyLjAzLjUgMy4xMS41IDMuNSAwIDYuNTgtMS44IDguMzctNC41Mi0uMTcuMDEtLjM3LjAyLS41Ny4wMnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNyAxNmgtLjE4QzYuNCAxNC44NCA1LjMgMTQgNCAxNGMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM2gzYzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vQWR1bHRDb250ZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnpNNCAxMmMwLTEuODUuNjMtMy41NCAxLjY5LTQuOUw3LjU5IDloMi44M0w3LjEgNS42OUE3LjkyNCA3LjkyNCAwIDAgMSAxMiA0YzQuNDEgMCA4IDMuNTkgOCA4IDAgMS44NS0uNjMgMy41NC0xLjY5IDQuOWwtMS45LTEuOWgtMi44M2wzLjMxIDMuMzFBNy44NzQgNy44NzQgMCAwIDEgMTIgMjBjLTQuNDEgMC04LTMuNTktOC04elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNC4yNSAxNC0xLjUtMiAxLjUtMmgtMS41TDEyIDExbC0uNzUtMWgtMS41bDEuNSAyLTEuNSAyaDEuNWwuNzUtMSAuNzUgMXpNOCAxMGwtLjc1IDEtLjc1LTFINWwxLjUgMkw1IDE0aDEuNWwuNzUtMUw4IDE0aDEuNUw4IDEybDEuNS0yek0xNiAxNGwuNzUtMSAuNzUgMUgxOWwtMS41LTIgMS41LTJoLTEuNWwtLjc1IDEtLjc1LTFoLTEuNWwxLjUgMi0xLjUgMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vTHVnZ2FnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE2IDEzLjE3LTEuNS0xLjVWOUgxNnY0LjE3em0zLjc4IDkuNDQtMS44NS0xLjg1Yy0uMjguMTUtLjU5LjI0LS45My4yNCAwIC41NS0uNDUgMS0xIDFzLTEtLjQ1LTEtMUg5YzAgLjU1LS40NSAxLTEgMXMtMS0uNDUtMS0xYy0xLjEgMC0yLS45LTItMlY4YzAtLjA1LjAyLS4xLjAyLS4xNUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzggMTguMzgtMS40IDEuNDJ6TTE2LjE3IDE5bC0zLjQyLTMuNDJWMThoLTEuNXYtMy45Mkw5LjUgMTIuMzNWMThIOHYtNy4xN2wtMS0xVjE5aDkuMTd6TTEyLjc1IDloLS45MmwuOTIuOTJWOXpNMTkgOHY4LjE3bC0yLTJWOGgtNi4xN2wtLjk5LS45OUw5IDYuMTdWM2MwLS41NS40NS0xIDEtMWg0Yy41NSAwIDEgLjQ1IDEgMXYzaDJjMS4xIDAgMiAuOSAyIDJ6bS04LjUtMmgzVjMuNWgtM1Y2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm9yZGljV2Fsa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDIzaC0xLjV2LTlIMTl2OXpNNy41MyAxNEg2bC0yIDloMS41M2wyLTl6bTUuOTctOC41YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnpNOS44IDguOSA3IDIzaDIuMWwxLjgtOCAyLjEgMnY2aDJ2LTcuNWwtMi4xLTIgLjYtM0MxNC44IDEyIDE2LjggMTMgMTkgMTN2LTJjLTEuOSAwLTMuNS0xLTQuMy0yLjRsLTEtMS42YTIuMTQ1IDIuMTQ1IDAgMCAwLTIuNjUtLjg0TDYgOC4zVjEzaDJWOS42bDEuOC0uN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU5vdGlmaWNhdGlvbkFkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE0djNIOHYtN2MwLTIuMjEgMS43OS00IDQtNCAuODUgMCAxLjY0LjI2IDIuMjguNzJsMS40My0xLjQzQTUuODcgNS44NyAwIDAgMCAxMy41IDQuMnYtLjdjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuN0M3LjkxIDQuODYgNiA3LjIxIDYgMTB2N0g0djJoMTZ2LTJoLTJ2LTNoLTJ6bS00IDhjMS4xIDAgMi0uOSAyLTJoLTRjMCAxLjEuOSAyIDIgMnpNMjQgOGgtM1Y1aC0ydjNoLTN2MmgzdjNoMnYtM2gzVjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RpZmljYXRpb25zQWN0aXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem02LTZ2LTVjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4QzcuNjQgNS4zNiA2IDcuOTIgNiAxMXY1bC0yIDJ2MWgxNnYtMWwtMi0yem0tMiAxSDh2LTZjMC0yLjQ4IDEuNTEtNC41IDQtNC41czQgMi4wMiA0IDQuNXY2ek03LjU4IDQuMDggNi4xNSAyLjY1QzMuNzUgNC40OCAyLjE3IDcuMyAyLjAzIDEwLjVoMmE4LjQ0NSA4LjQ0NSAwIDAgMSAzLjU1LTYuNDJ6bTEyLjM5IDYuNDJoMmMtLjE1LTMuMi0xLjczLTYuMDItNC4xMi03Ljg1bC0xLjQyIDEuNDNhOC40OTUgOC40OTUgMCAwIDEgMy41NCA2LjQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90aWZpY2F0aW9uc05vbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDIyYzEuMSAwIDItLjkgMi0yaC00YzAgMS4xLjkgMiAyIDJ6bTYtNnYtNWMwLTMuMDctMS42My01LjY0LTQuNS02LjMyVjRjMC0uODMtLjY3LTEuNS0xLjUtMS41cy0xLjUuNjctMS41IDEuNXYuNjhDNy42NCA1LjM2IDYgNy45MiA2IDExdjVsLTIgMnYxaDE2di0xbC0yLTJ6bS0yIDFIOHYtNmMwLTIuNDggMS41MS00LjUgNC00LjVzNCAyLjAyIDQgNC41djZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RpZmljYXRpb25zT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyMmMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyem0wLTE1LjVjMi40OSAwIDQgMi4wMiA0IDQuNXYuMWwyIDJWMTFjMC0zLjA3LTEuNjMtNS42NC00LjUtNi4zMlY0YzAtLjgzLS42Ny0xLjUtMS41LTEuNXMtMS41LjY3LTEuNSAxLjV2LjY4Yy0uMjQuMDYtLjQ3LjE1LS42OS4yM2wxLjY0IDEuNjRjLjE4LS4wMi4zNi0uMDUuNTUtLjA1ek01LjQxIDMuMzUgNCA0Ljc2bDIuODEgMi44MUM2LjI5IDguNTcgNiA5Ljc0IDYgMTF2NWwtMiAydjFoMTQuMjRsMS43NCAxLjc0IDEuNDEtMS40MUw1LjQxIDMuMzV6TTE2IDE3SDh2LTZjMC0uNjguMTItMS4zMi4zNC0xLjlMMTYgMTYuNzZWMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVOb3RpZmljYXRpb25zUGF1c2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05LjUgOS44aDIuOGwtMi44IDMuNFYxNWg1di0xLjhoLTIuOGwyLjgtMy40VjhoLTV6TTE4IDE2di01YzAtMy4wNy0xLjYzLTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjY0IDUuMzYgNiA3LjkyIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTIgMUg4di02YzAtMi40OCAxLjUxLTQuNSA0LTQuNXM0IDIuMDIgNCA0LjV2NnptLTQgNWMxLjEgMCAyLS45IDItMmgtNGMwIDEuMS45IDIgMiAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lTm90aWZpY2F0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMjJjMS4xIDAgMi0uOSAyLTJoLTRjMCAxLjEuOSAyIDIgMnptNi02di01YzAtMy4wNy0xLjYzLTUuNjQtNC41LTYuMzJWNGMwLS44My0uNjctMS41LTEuNS0xLjVzLTEuNS42Ny0xLjUgMS41di42OEM3LjY0IDUuMzYgNiA3LjkyIDYgMTF2NWwtMiAydjFoMTZ2LTFsLTItMnptLTIgMUg4di02YzAtMi40OCAxLjUxLTQuNSA0LTQuNXM0IDIuMDIgNCA0LjV2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZU91dGRvb3JHcmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDIyYzEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zYy0xLjMgMC0yLjQuODQtMi44MiAySDkuMTRsMS45OS0zLjA2YTYuMzYgNi4zNiAwIDAgMCAxLjc0IDBsMS4wMiAxLjU3Yy40Mi0uNTMuOTYtLjk1IDEuNi0xLjIxbC0uNi0uOTNBNi45OTIgNi45OTIgMCAwIDAgMTkgOEg1YzAgMi44NCAxLjY5IDUuMjcgNC4xMiA2LjM3bC0zLjk1IDYuMDhhMSAxIDAgMCAwIC4yOSAxLjM4IDEgMSAwIDAgMCAxLjM4LS4yOWwxLTEuNTVoNi4zNEMxNC42IDIxLjE2IDE1LjcgMjIgMTcgMjJ6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem0tOS41OC04aDkuMTZjLS43NyAxLjc2LTIuNTQgMy00LjU4IDNzLTMuODEtMS4yNC00LjU4LTN6TTkuNDEgN2gxYy4xNS0xLjE1LjIzLTEuNjQtLjg5LTIuOTYtLjQyLS41LS42OC0uNzctLjQ2LTIuMDRoLS45OWMtLjIxIDEuMTEuMDMgMi4wNS44OSAyLjk2LjIyLjI0Ljc5LjY3LjQ1IDIuMDR6TTExLjg5IDdoMWMuMTUtMS4xNS4yMy0xLjY0LS44OS0yLjk2LS40Mi0uNS0uNjgtLjc4LS40Ni0yLjA0aC0uOTljLS4yMSAxLjExLjAzIDIuMDUuODkgMi45Ni4yMy4yNC44LjY3LjQ1IDIuMDR6TTE0LjQxIDdoMWMuMTUtMS4xNS4yMy0xLjY0LS44OS0yLjk2LS40Mi0uNS0uNjgtLjc3LS40Ni0yLjA0aC0uOTljLS4yMSAxLjExLjAzIDIuMDUuODkgMi45Ni4yMi4yNC43OS42Ny40NSAyLjA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGFnZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNiAyaDZ2NmgtM2wxLTQtNCAxVjV6TTUgNWg2djNMNyA3bDEgNEg1VjV6bTYgMTRINXYtNmgzbC0xIDQgNC0xdjN6bTggMGgtNnYtM2w0IDEtMS00aDN2NnptLTQuMzctNC4zN0wxMiAxMy43MmwtMi42My45MS45MS0yLjYzLS45MS0yLjYzIDIuNjMuOTEgMi42My0uOTEtLjkxIDIuNjMuOTEgMi42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhcmFnbGlkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTdjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjQ4Ljk0QzE0LjY4IDE4LjU0IDE0IDE5IDEyIDE5cy0yLjY4LS40Ni0zLjQ4LTEuMDZDOC4wNCAxNy41NSA3IDE2Ljc2IDcgMTRINWMwIDIuNy45MyA0LjQxIDIuMyA1LjUuNS40IDEuMS43IDEuNy45VjI0aDZ2LTMuNmMuNi0uMiAxLjItLjUgMS43LS45IDEuMzctMS4wOSAyLjMtMi44IDIuMy01LjVoLTJjMCAyLjc2LTEuMDQgMy41NS0xLjUyIDMuOTR6TTIzIDQuMjV2My40OWMwIC44LS44OCAxLjI2LTEuNTYuODMtLjE0LS4wOS0uMjgtLjE4LS40NC0uMjZMMTkgMTNoLTJsLTEuNS02LjI4YTI3Ljg1MiAyNy44NTIgMCAwIDAtNyAwTDcgMTNINUwzIDguMzFjLS4xNi4wOC0uMy4xNy0uNDQuMjZDMS44OCA5IDEgOC41NSAxIDcuNzRWNC4yNUMxIDEuOSA1LjkyIDAgMTIgMHMxMSAxLjkgMTEgNC4yNXpNNi45IDYuOThjLS45My4xOS0xLjc4LjQzLTIuNTMuNzFsMS41MSAzLjU1TDYuOSA2Ljk4em0xMi43My43MWMtLjc1LS4yOC0xLjYtLjUyLTIuNTMtLjcxbDEuMDIgNC4yNSAxLjUxLTMuNTR6TTIxIDQuMzFDMjAuNjUgMy42MyAxNy41NyAyIDEyIDJTMy4zNSAzLjYzIDMgNC4zMXYxLjc3QzUuMzQgNS4wNyA4LjU2IDQuNSAxMiA0LjVzNi42Ni41NyA5IDEuNThWNC4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBhcnR5TW9kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNGgtMy4xN0wxNSAySDlMNy4xNyA0SDRjLTEuMSAwLTIgLjktMiAydjEyYzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCAxNEg0VjZoNC4wNWwuNTktLjY1TDkuODggNGg0LjI0bDEuMjQgMS4zNS41OS42NUgyMHYxMnpNOSAxMmMwLTEuNjYgMS4zNC0zIDMtM2gzLjk4Yy0uOTItMS4yMS0yLjM1LTItMy45OC0yYTUuMDAyIDUuMDAyIDAgMCAwLTQuOSA2aDIuMDhjLS4xMS0uMzEtLjE4LS42NS0uMTgtMXptNiAwYzAgMS42Ni0xLjM0IDMtMyAzSDguMDJjLjkyIDEuMjEgMi4zNSAyIDMuOTggMmE1LjAwMiA1LjAwMiAwIDAgMCA0LjktNmgtMi4wOGMuMTEuMzEuMTguNjUuMTggMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlb3BsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2LjY3IDEzLjEzQzE4LjA0IDE0LjA2IDE5IDE1LjMyIDE5IDE3djNoNHYtM2MwLTIuMTgtMy41Ny0zLjQ3LTYuMzMtMy44N3pNMTUgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTRjLS40NyAwLS45MS4xLTEuMzMuMjRhNS45OCA1Ljk4IDAgMCAxIDAgNy41MmMuNDIuMTQuODYuMjQgMS4zMy4yNHpNOSAxMmMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6TTkgMTNjLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6bTYgNUgzdi0uOTlDMy4yIDE2LjI5IDYuMyAxNSA5IDE1czUuOCAxLjI5IDYgMnYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVvcGxlT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMy43NWMtMi4zNCAwLTcgMS4xNy03IDMuNVYxOWgxNHYtMS43NWMwLTIuMzMtNC42Ni0zLjUtNy0zLjV6TTQuMzQgMTdjLjg0LS41OCAyLjg3LTEuMjUgNC42Ni0xLjI1czMuODIuNjcgNC42NiAxLjI1SDQuMzR6TTkgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTAuOTMgNSA5IDUgNS41IDYuNTcgNS41IDguNSA3LjA3IDEyIDkgMTJ6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjgzIDEwIDkgMTBzLTEuNS0uNjctMS41LTEuNVM4LjE3IDcgOSA3em03LjA0IDYuODFjMS4xNi44NCAxLjk2IDEuOTYgMS45NiAzLjQ0VjE5aDR2LTEuNzVjMC0yLjAyLTMuNS0zLjE3LTUuOTYtMy40NHpNMTUgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTYuOTMgNSAxNSA1Yy0uNTQgMC0xLjA0LjEzLTEuNS4zNS42My44OSAxIDEuOTggMSAzLjE1cy0uMzcgMi4yNi0xIDMuMTVjLjQ2LjIyLjk2LjM1IDEuNS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlb3BsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSAxMy43NWMtMi4zNCAwLTcgMS4xNy03IDMuNVYxOWgxNHYtMS43NWMwLTIuMzMtNC42Ni0zLjUtNy0zLjV6TTQuMzQgMTdjLjg0LS41OCAyLjg3LTEuMjUgNC42Ni0xLjI1czMuODIuNjcgNC42NiAxLjI1SDQuMzR6TTkgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTAuOTMgNSA5IDUgNS41IDYuNTcgNS41IDguNSA3LjA3IDEyIDkgMTJ6bTAtNWMuODMgMCAxLjUuNjcgMS41IDEuNVM5LjgzIDEwIDkgMTBzLTEuNS0uNjctMS41LTEuNVM4LjE3IDcgOSA3em03LjA0IDYuODFjMS4xNi44NCAxLjk2IDEuOTYgMS45NiAzLjQ0VjE5aDR2LTEuNzVjMC0yLjAyLTMuNS0zLjE3LTUuOTYtMy40NHpNMTUgMTJjMS45MyAwIDMuNS0xLjU3IDMuNS0zLjVTMTYuOTMgNSAxNSA1Yy0uNTQgMC0xLjA0LjEzLTEuNS4zNS42My44OSAxIDEuOTggMSAzLjE1cy0uMzcgMi4yNi0xIDMuMTVjLjQ2LjIyLjk2LjM1IDEuNS4zNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOSAxNC41NkMxNi43MSAxMy43IDE0LjUzIDEzIDEyIDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE4IDE4SDZ2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNy43MSAxNS43MyA5LjYzIDE1IDEyIDE1YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE4ek05Ljc4IDEyaDQuNDRjMS4yMSAwIDIuMTQtMS4wNiAxLjk4LTIuMjZsLS4zMi0yLjQ1QzE1LjU3IDUuMzkgMTMuOTIgNCAxMiA0UzguNDMgNS4zOSA4LjEyIDcuMjlMNy44IDkuNzRjLS4xNiAxLjIuNzcgMi4yNiAxLjk4IDIuMjZ6bS4zMi00LjQxQzEwLjI2IDYuNjcgMTEuMDYgNiAxMiA2czEuNzQuNjcgMS45IDEuNTlsLjMyIDIuNDFIOS43OGwuMzItMi40MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbjMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOSAxNC41NkMxNi43MSAxMy43IDE0LjUzIDEzIDEyIDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE4IDE4SDZ2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNy43MSAxNS43MyA5LjYzIDE1IDEyIDE1YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE4ek0xMCAxMmg0YzEuNjYgMCAzLTEuMzQgMy0zIDAtLjczLS4yNy0xLjQtLjcxLTEuOTIuMTMtLjMzLjIxLS43LjIxLTEuMDhhMyAzIDAgMCAwLTEuODYtMi43N0MxNCAyLjQ4IDEzLjA2IDIgMTIgMnMtMiAuNDgtMi42NCAxLjIzQTMgMyAwIDAgMCA3LjUgNmMwIC4zOC4wOC43NS4yMSAxLjA4QzcuMjcgNy42IDcgOC4yNyA3IDljMCAxLjY2IDEuMzQgMyAzIDN6bS0uNzYtMy42M2MuODctMS4wNC4yNi0yIC4yNi0yLjM3IDAtLjQxLjI0LS43Ny42Mi0uOTIuMjktLjEyLjU1LS4zMS43NS0uNTQuMTctLjIxLjU1LS41NCAxLjEzLS41NHMuOTYuMzMgMS4xMy41M2MuMi4yNC40Ni40Mi43NS41NGExIDEgMCAwIDEgLjYyLjkzYzAgLjM3LS42MSAxLjMzLjI2IDIuMzcuNTguNjkuMDQgMS42My0uNzYgMS42M2gtNGMtLjggMC0xLjM0LS45NC0uNzYtMS42M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbjQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOC4zOSAxNC41NkMxNi43MSAxMy43IDE0LjUzIDEzIDEyIDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE4IDE4SDZ2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNy43MSAxNS43MyA5LjYzIDE1IDEyIDE1YzIuMzcgMCA0LjI5LjczIDUuNDggMS4zNC4zMi4xNi41Mi41LjUyLjg4VjE4ek0xMiAxMmMyLjIxIDAgNC0xLjc5IDQtNFY0LjVjMC0uODMtLjY3LTEuNS0xLjUtMS41LS41MiAwLS45OC4yNy0xLjI1LjY3LS4yNy0uNC0uNzMtLjY3LTEuMjUtLjY3cy0uOTguMjctMS4yNS42N2MtLjI3LS40LS43My0uNjctMS4yNS0uNjdDOC42NyAzIDggMy42NyA4IDQuNVY4YzAgMi4yMSAxLjc5IDQgNCA0em0tMi02LjVoNFY4YzAgMS4xLS45IDItMiAycy0yLS45LTItMlY1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25BZGRBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMgOGMwLTIuMjEtMS43OS00LTQtNFM1IDUuNzkgNSA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTIgMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6TTEgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHptMiAwYy4yLS43MSAzLjMtMiA2LTIgMi42OSAwIDUuNzggMS4yOCA2IDJIM3ptMTctM3YtM2gzdi0yaC0zVjdoLTJ2M2gtM3YyaDN2M2gyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uQWRkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgOVY2aC0ydjNoLTN2MmgzdjNoMnYtM2gzVjloLTN6TTkgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wLTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyLTItLjktMi0yIC45LTIgMi0yem02LjM5IDguNTZDMTMuNzEgMTMuNyAxMS41MyAxMyA5IDEzcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCAxIDE3LjIyVjIwaDE2di0yLjc4YzAtMS4xMi0uNjEtMi4xNS0xLjYxLTIuNjZ6TTE1IDE4SDN2LS43OGMwLS4zOC4yLS43Mi41Mi0uODhDNC43MSAxNS43MyA2LjYzIDE1IDkgMTVjMi4zNyAwIDQuMjkuNzMgNS40OCAxLjM0LjMyLjE2LjUyLjUuNTIuODhWMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25BZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1IDEyYzIuMjEgMCA0LTEuNzkgNC00cy0xLjc5LTQtNC00LTQgMS43OS00IDQgMS43OSA0IDQgNHptMC02YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMnptMCA4Yy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00em0tNiA0Yy4yMi0uNzIgMy4zMS0yIDYtMiAyLjcgMCA1LjggMS4yOSA2IDJIOXptLTMtM3YtM2gzdi0ySDZWN0g0djNIMXYyaDN2M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbk9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIwIDE3LjE3LTMuMzctMy4zOGMuNjQuMjIgMS4yMy40OCAxLjc3Ljc2Ljk3LjUxIDEuNTggMS41MiAxLjYgMi42MnptMS4xOSA0LjAyLTEuNDEgMS40MS0yLjYxLTIuNkg0di0yLjc4YzAtMS4xMi42MS0yLjE1IDEuNjEtMi42NiAxLjI5LS42NiAyLjg3LTEuMjIgNC42Ny0xLjQ1TDEuMzkgNC4yMiAyLjggMi44MWwxOC4zOSAxOC4zOHpNMTUuMTcgMThsLTMtM0gxMmMtMi4zNyAwLTQuMjkuNzMtNS40OCAxLjM0LS4zMi4xNi0uNTIuNS0uNTIuODhWMThoOS4xN3pNMTIgNmMxLjEgMCAyIC45IDIgMiAwIC44Ni0uNTQgMS41OS0xLjMgMS44N2wxLjQ4IDEuNDhhMy45OTkgMy45OTkgMCAxIDAtNS41My01LjUzbDEuNDggMS40OEExLjk5IDEuOTkgMCAwIDEgMTIgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBlcnNvbk91dGxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDUuOWEyLjEgMi4xIDAgMSAxIDAgNC4yIDIuMSAyLjEgMCAwIDEgMC00LjJtMCA5YzIuOTcgMCA2LjEgMS40NiA2LjEgMi4xdjEuMUg1LjlWMTdjMC0uNjQgMy4xMy0yLjEgNi4xLTIuMU0xMiA0QzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDljLTIuNjcgMC04IDEuMzQtOCA0djNoMTZ2LTNjMC0yLjY2LTUuMzMtNC04LTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQZXJzb25SZW1vdmVBbHQxIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOGMwLTIuMjEtMS43OS00LTQtNFM2IDUuNzkgNiA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTIgMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6TTIgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHptMiAwYy4yLS43MSAzLjMtMiA2LTIgMi42OSAwIDUuNzcgMS4yOCA2IDJINHpNMTcgMTBoNnYyaC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uUmVtb3ZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgOGMwLTIuMjEtMS43OS00LTQtNFM2IDUuNzkgNiA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNHptLTIgMGMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6TTIgMTh2MmgxNnYtMmMwLTIuNjYtNS4zMy00LTgtNHMtOCAxLjM0LTggNHptMiAwYy4yLS43MSAzLjMtMiA2LTIgMi42OSAwIDUuNzcgMS4yOCA2IDJINHpNMTcgMTBoNnYyaC02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiA2YzEuMSAwIDIgLjkgMiAycy0uOSAyLTIgMi0yLS45LTItMiAuOS0yIDItMm0wIDEwYzIuNyAwIDUuOCAxLjI5IDYgMkg2Yy4yMy0uNzIgMy4zMS0yIDYtMm0wLTEyQzkuNzkgNCA4IDUuNzkgOCA4czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDEwYy0yLjY3IDAtOCAxLjM0LTggNHYyaDE2di0yYzAtMi42Ni01LjMzLTQtOC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGVyc29uYWxJbmp1cnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMGMyLjIxIDAgNC0xLjc5IDQtNHMtMS43OS00LTQtNC00IDEuNzktNCA0IDEuNzkgNCA0IDR6bTAtNmMxLjEgMCAyIC45IDIgMnMtLjkgMi0yIDItMi0uOS0yLTIgLjktMiAyLTJ6bTYuMzkgOC41NkMxNi43MSAxMS43IDE0LjUzIDExIDEyIDExcy00LjcxLjctNi4zOSAxLjU2QTIuOTcgMi45NyAwIDAgMCA0IDE1LjIyVjIyaDJ2LTYuNzhjMC0uMzguMi0uNzIuNTItLjg4QzcuNzEgMTMuNzMgOS42MyAxMyAxMiAxM2MuNzYgMCAxLjQ3LjA3IDIuMTMuMmwtMS41NSAzLjNIOS43NUM4LjIzIDE2LjUgNyAxNy43MyA3IDE5LjI1UzguMjMgMjIgOS43NSAyMkgxOGMxLjEgMCAyLS45IDItMnYtNC43OGMwLTEuMTItLjYxLTIuMTUtMS42MS0yLjY2ek0xMC45NCAyMEg5Ljc1Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzVzLjM0LS43NS43NS0uNzVoMS44OWwtLjcgMS41ek0xOCAyMGgtNC44NWwyLjk0LTYuMjdjLjU0LjIgMS4wMS40MSAxLjQuNjEuMzEuMTYuNTEuNS41MS44OFYyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBpYW5vT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEuMTkgMjEuMTkgMi44MSAyLjgxIDEuMzkgNC4yMiAzIDUuODNWMTljMCAxLjEuOSAyIDIgMmgxMy4xN2wxLjYxIDEuNjEgMS40MS0xLjQyek04LjI1IDE5SDVWNy44M2wyIDJ2My42N2MwIC41NS40NSAxIDEgMWguMjVWMTl6bTEuNSAwdi00LjVIMTBjLjQ2IDAgLjgyLS4zMS45NC0uNzNsMy4zMSAzLjMxVjE5aC00LjV6TTExIDguMTcgNS44MyAzSDE5YzEuMSAwIDIgLjkgMiAydjEzLjE3bC0yLTJWNWgtMnY4LjVjMCAuMTktLjA3LjM2LS4xNi41MUwxMyAxMC4xN1Y1aC0ydjMuMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaWFubyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNSAxMS41aC4yNVYxOWgtNC41di00LjVIMTBjLjU1IDAgMS0uNDUgMS0xVjVoMnY4LjVjMCAuNTUuNDUgMSAxIDF6TTUgNWgydjguNWMwIC41NS40NSAxIDEgMWguMjVWMTlINVY1em0xNCAxNGgtMy4yNXYtNC41SDE2Yy41NSAwIDEtLjQ1IDEtMVY1aDJ2MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS40NSAxNi41Mi0zLjAxLTMuMDFjLS4xMS0uMTEtLjI0LS4xMy0uMzEtLjEzcy0uMi4wMi0uMzEuMTNMOC44IDE2LjUzYy0uMzQuMzQtLjg3Ljg5LTIuNjQuODlsMy43MSAzLjdhMyAzIDAgMCAwIDQuMjQgMGwzLjcyLTMuNzFjLS45MSAwLTEuNjctLjE4LTIuMzgtLjg5ek04LjggNy40N2wzLjAyIDMuMDJjLjA4LjA4LjIuMTMuMzEuMTNzLjIzLS4wNS4zMS0uMTNsMi45OS0yLjk5Yy43MS0uNzQgMS41Mi0uOTEgMi40My0uOTFsLTMuNzItMy43MWEzIDMgMCAwIDAtNC4yNCAwbC0zLjcxIDMuN2MxLjc2IDAgMi4zLjU4IDIuNjEuODl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIxLjExIDkuODUtMi4yNS0yLjI2SDE3LjZjLS41NCAwLTEuMDguMjItMS40NS42MWwtMyAzYy0uMjguMjgtLjY1LjQyLTEuMDIuNDJhMS41IDEuNSAwIDAgMS0xLjAyLS40Mkw4LjA5IDguMTdjLS4zOC0uMzgtLjktLjYtMS40NS0uNkg1LjE3bC0yLjI5IDIuM2EzIDMgMCAwIDAgMCA0LjI0bDIuMjkgMi4zaDEuNDhjLjU0IDAgMS4wNi0uMjIgMS40NS0uNmwzLjAyLTMuMDJjLjI4LS4yOC42NS0uNDIgMS4wMi0uNDJzLjc0LjE0IDEuMDIuNDJsMy4wMSAzLjAxYy4zOC4zOC45LjYgMS40NS42aDEuMjZsMi4yNS0yLjI2YTMuMDQyIDMuMDQyIDAgMCAwLS4wMi00LjI5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUGx1c09uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAgOEg4djRINHYyaDR2NGgydi00aDR2LTJoLTRWOHptNC41LTEuOTJWNy45bDIuNS0uNVYxOGgyVjVsLTQuNSAxLjA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUG9sbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY1aDE0djE0ek03IDEwaDJ2N0g3em00LTNoMnYxMGgtMnptNCA2aDJ2NGgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVByZWNpc2lvbk1hbnVmYWN0dXJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xOS45MyA4LjM1LTMuNiAxLjY4TDE0IDcuN1Y2LjNsMi4zMy0yLjMzIDMuNiAxLjY4Yy4zOC4xOC44Mi4wMSAxLS4zNi4xOC0uMzguMDEtLjgyLS4zNi0xbC0zLjkyLTEuODNhLjk5My45OTMgMCAwIDAtMS4xMy4yTDEzLjc4IDQuNEEuOTc1Ljk3NSAwIDAgMCAxMyA0Yy0uNTUgMC0xIC40NS0xIDF2MUg4LjgyQzguNCA0Ljg0IDcuMyA0IDYgNCA0LjM0IDQgMyA1LjM0IDMgN2MwIDEuMS42IDIuMDUgMS40OCAyLjU4TDcuMDggMThINmMtMS4xIDAtMiAuOS0yIDJ2MWgxM3YtMWMwLTEuMS0uOS0yLTItMmgtMS42Mkw4LjQxIDguNzdjLjE3LS4yNC4zMS0uNDkuNDEtLjc3SDEydjFjMCAuNTUuNDUgMSAxIDEgLjMyIDAgLjYtLjE2Ljc4LS40bDEuNzQgMS43NGMuMy4zLjc1LjM4IDEuMTMuMmwzLjkyLTEuODNjLjM4LS4xOC41NC0uNjIuMzYtMWEuNzUzLjc1MyAwIDAgMC0xLS4zNnpNNiA4Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTUuMTEgMTBIOS4xN2wtMi40Ni04aC4xbDQuMyA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHN5Y2hvbG9neUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ljk0IDkuMDZDMTkuNSA1LjczIDE2LjU3IDMgMTMgMyA5LjQ3IDMgNi41NyA1LjYxIDYuMDggOWwtMS45MyAzLjQ4Yy0uNDEuNjYuMDcgMS41Mi44NSAxLjUyaDF2MmMwIDEuMS45IDIgMiAyaDF2M2g3di00LjY4YTcuMDE2IDcuMDE2IDAgMCAwIDMuOTQtNy4yNnptLTUuMDUgNS41Ny0uODkuNDJWMTloLTN2LTNIOHYtNEg2LjdsMS4zMy0yLjMzQzguMjEgNy4wNiAxMC4zNSA1IDEzIDVjMi43NiAwIDUgMi4yNCA1IDUgMCAyLjA5LTEuMjkgMy44OC0zLjExIDQuNjN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjUgMTIuNTRjLS40MSAwLS43NC4zMS0uNzQuNzMgMCAuNDEuMzMuNzQuNzQuNzQuNDIgMCAuNzMtLjMzLjczLS43NGEuNzEuNzEgMCAwIDAtLjczLS43M3pNMTIuNSA3Yy0xLjAzIDAtMS43NC42Ny0yIDEuNDVsLjk2LjRjLjEzLS4zOS40My0uODYgMS4wNS0uODYuOTUgMCAxLjEzLjg5LjggMS4zNi0uMzIuNDUtLjg2Ljc1LTEuMTQgMS4yNi0uMjMuNC0uMTguODctLjE4IDEuMTZoMS4wNmMwLS41NS4wNC0uNjUuMTMtLjgyLjIzLS40Mi42NS0uNjIgMS4wOS0xLjI3LjQtLjU5LjI1LTEuMzgtLjAxLTEuOC0uMzEtLjQ5LS45LS44OC0xLjc2LS44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVBzeWNob2xvZ3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS44MiA3LjIyLTEgLjRjLS4yMS0uMTYtLjQzLS4yOS0uNjctLjM5TDE0IDYuMTdjLS4wMi0uMS0uMS0uMTctLjItLjE3aC0xLjZjLS4xIDAtLjE4LjA3LS4xOS4xN2wtLjE1IDEuMDZjLS4yNC4xLS40Ny4yMy0uNjcuMzlsLTEtLjRjLS4wOS0uMDMtLjIgMC0uMjQuMDlsLS44IDEuMzhhLjIuMiAwIDAgMCAuMDUuMjZsLjg1LjY2Yy0uMDMuMTItLjA1LjI2LS4wNS4zOXMuMDEuMjYuMDMuMzlsLS44NC42NmEuMTkuMTkgMCAwIDAtLjA1LjI1bC44IDEuMzljLjA1LjA5LjE1LjEyLjI1LjA5bC45OS0uNGMuMjEuMTYuNDMuMjkuNjguMzlsLjE0IDEuMDZjLjAyLjEuMS4xNy4yLjE3aDEuNmMuMSAwIC4xOC0uMDcuMi0uMTdsLjE1LTEuMDZjLjI0LS4xLjQ3LS4yMy42Ny0uMzlsLjk5LjRjLjA5LjA0LjIgMCAuMjQtLjA5bC44LTEuMzljLjA1LS4wOS4wMy0uMTktLjA1LS4yNWwtLjgzLS42NmEyLjU2MSAyLjU2MSAwIDAgMCAwLS43OGwuODUtLjY2YS4yLjIgMCAwIDAgLjA1LS4yNmwtLjgtMS4zOGMtLjA1LS4wOS0uMTYtLjEyLS4yNS0uMDl6TTEzIDExLjQzYTEuNDMgMS40MyAwIDEgMSAwLTIuODYgMS40MyAxLjQzIDAgMCAxIDAgMi44NnpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuOTQgOS4wNmMtLjQzLTMuMjctMy4yMy01Ljg2LTYuNTMtNi4wNUMxMy4yNyAzIDEzLjE0IDMgMTMgMyA5LjQ3IDMgNi41NyA1LjYxIDYuMDggOWwtMS45MyAzLjQ4Yy0uNDEuNjYuMDcgMS41Mi44NSAxLjUyaDF2MmMwIDEuMS45IDIgMiAyaDF2M2g3di00LjY4YTcuMDE2IDcuMDE2IDAgMCAwIDMuOTQtNy4yNnptLTUuMDUgNS41Ny0uODkuNDJWMTloLTN2LTNIOHYtNEg2LjdsMS4zMy0yLjMzQzguMjEgNy4wNiAxMC4zNSA1IDEzIDVjMi43NiAwIDUgMi4yNCA1IDUgMCAyLjA5LTEuMjkgMy44OC0zLjExIDQuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVQdWJsaWNPZmYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMSA4LjE3IDYuNDkgMy42NkE5LjkxIDkuOTEgMCAwIDEgMTIgMmM1LjUyIDAgMTAgNC40OCAxMCAxMCAwIDIuMDQtLjYxIDMuOTMtMS42NiA1LjUxbC0xLjQ2LTEuNDZBNy44NDIgNy44NDIgMCAwIDAgMjAgMTJjMC0zLjM1LTIuMDctNi4yMi01LTcuNDFWNWMwIDEuMS0uOSAyLTIgMmgtMnYxLjE3em0xMC4xOSAxMy4wMi0xLjQxIDEuNDEtMi4yNy0yLjI3QTkuODM5IDkuODM5IDAgMCAxIDEyIDIyQzYuNDggMjIgMiAxNy41MiAyIDEyYzAtMi4wNC42MS0zLjkzIDEuNjYtNS41MUwxLjM5IDQuMjIgMi44IDIuODFsMTguMzkgMTguMzh6TTExIDE4Yy0xLjEgMC0yLS45LTItMnYtMWwtNC43OS00Ljc5QzQuMDggMTAuNzkgNCAxMS4zOCA0IDEyYzAgNC4wOCAzLjA1IDcuNDQgNyA3LjkzVjE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUHVibGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek00IDEyYzAtLjYxLjA4LTEuMjEuMjEtMS43OEw4Ljk5IDE1djFjMCAxLjEuOSAyIDIgMnYxLjkzQzcuMDYgMTkuNDMgNCAxNi4wNyA0IDEyem0xMy44OSA1LjRjLS4yNi0uODEtMS0xLjQtMS45LTEuNGgtMXYtM2MwLS41NS0uNDUtMS0xLTFoLTZ2LTJoMmMuNTUgMCAxLS40NSAxLTFWN2gyYzEuMSAwIDItLjkgMi0ydi0uNDFDMTcuOTIgNS43NyAyMCA4LjY1IDIwIDEyYzAgMi4wOC0uODEgMy45OC0yLjExIDUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJlYWxFc3RhdGVBZ2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDYuNVYxNGgtMlY3LjVMMTQgNCA5IDcuNVY5SDdWNi41bDctNSA3IDV6bS01LjUuNWgtMXYxaDFWN3ptLTIgMGgtMXYxaDFWN3ptMiAyaC0xdjFoMVY5em0tMiAwaC0xdjFoMVY5em01LjUgN2gtMmMwLTEuMi0uNzUtMi4yOC0xLjg3LTIuN0w4Ljk3IDExSDF2MTFoNnYtMS40NGw3IDEuOTQgOC0yLjV2LTFjMC0xLjY2LTEuMzQtMy0zLTN6TTMgMjB2LTdoMnY3SDN6bTEwLjk3LjQxTDcgMTguNDhWMTNoMS42MWw1LjgyIDIuMTdjLjM0LjEzLjU3LjQ2LjU3LjgzIDAgMC0xLjk5LS4wNS0yLjMtLjE1bC0yLjM4LS43OS0uNjMgMS45IDIuMzguNzljLjUxLjE3IDEuMDQuMjYgMS41OC4yNkgxOWMuMzkgMCAuNzQuMjMuOS41NmwtNS45MyAxLjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lUmVjb21tZW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDEwaC00LjU5bC41OC0zLjQxdi0uMmMtLjAxLS4yNi0uMTItLjUxLS4zLS43TDEyIDVsLTQuNiA1Yy0uMjcuMjYtLjQyLjYyLS40IDF2NWMwIDEuMS45IDIgMiAyaDUuNWMuNTYuMDMgMS4wOC0uMjkgMS4zLS44bDIuMS00LjljLjA4LS4xNS4xMi0uMzMuMS0uNVYxMWMwLS41NS0uNDUtMS0xLTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWN5Y2xpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01Ljc3IDcuMTUgNy4yIDQuNzhsMS4wMy0xLjcxYy4zOS0uNjUgMS4zMy0uNjUgMS43MiAwbDEuNDggMi40Ni0xLjIzIDIuMDYtMSAxLjYyLTMuNDMtMi4wNnptMTUuOTUgNS44Mi0xLjYtMi42Ni0zLjQ2IDJMMTguODcgMTZIMjBhMiAyIDAgMCAwIDItMmMwLS4zNi0uMS0uNzEtLjI4LTEuMDN6TTE2IDIxaDEuNWEyIDIgMCAwIDAgMS43OS0xLjExTDIwLjc0IDE3SDE2di0ybC00IDQgNCA0di0yem0tNi00SDUuN2wtLjg0IDEuNDFjLS4zLjUtLjMyIDEuMTItLjA2IDEuNjUuMjguNTcuODcuOTQgMS41Mi45NEgxMHYtNHptLTMuODgtMi42NSAxLjczIDEuMDRMNi40OCA5LjkgMSAxMS4yN2wxLjcgMS4wMi0uNDEuNjljLS4zNS41OS0uMzggMS4zMS0uMDcgMS45MmwxLjYzIDMuMjYgMi4yNy0zLjgxem0xMC45LTkuMjEtMS4zLTIuMTdDMTUuMzUgMi4zNyAxNC43IDIgMTQgMmgtMy41M2wzLjEyIDUuMi0xLjcyIDEuMDMgNS40OSAxLjM3IDEuMzctNS40OS0xLjcxIDEuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZWR1Y2VDYXBhY2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDRjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNC43OCAzLjU4QTYuOTUgNi45NSAwIDAgMCAxOCA3Yy0uNjcgMC0xLjMxLjEtMS45Mi4yOC41OC41NS45MiAxLjMyLjkyIDIuMTVWMTBoNXYtLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNNiA2YzEuMSAwIDItLjkgMi0ycy0uOS0yLTItMi0yIC45LTIgMiAuOSAyIDIgMnptMS45MiAxLjI4QzcuMzEgNy4xIDYuNjcgNyA2IDdjLS45OSAwLTEuOTMuMjEtMi43OC41OEEyLjAxIDIuMDEgMCAwIDAgMiA5LjQzVjEwaDV2LS41N2MwLS44My4zNC0xLjYuOTItMi4xNXpNMTAgNGMwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem02IDZIOHYtLjU3YzAtLjgxLjQ4LTEuNTMgMS4yMi0xLjg1YTYuOTUgNi45NSAwIDAgMSA1LjU2IDBBMi4wMSAyLjAxIDAgMCAxIDE2IDkuNDNWMTB6bS0xIDZjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNiA2aC04di0uNTdjMC0uODEuNDgtMS41MyAxLjIyLTEuODVhNi45NSA2Ljk1IDAgMCAxIDUuNTYgMEEyLjAxIDIuMDEgMCAwIDEgMjEgMjEuNDNWMjJ6TTUgMTZjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNiA2SDN2LS41N2MwLS44MS40OC0xLjUzIDEuMjItMS44NWE2Ljk1IDYuOTUgMCAwIDEgNS41NiAwQTIuMDEgMi4wMSAwIDAgMSAxMSAyMS40M1YyMnptMS43NS05di0yaC0xLjV2Mkg5bDMgMyAzLTNoLTIuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSZW1vdmVNb2RlcmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJnXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMTIgNC4xNCA2IDIuMjV2NC43YzAgMS4xOS0uMjMgMi4zNi0uNjQgMy40NGwxLjUxIDEuNTFjLjcyLTEuNTMgMS4xMy0zLjIyIDEuMTMtNC45NVY1bC04LTMtNS4yMiAxLjk2IDEuNTUgMS41NUwxMiA0LjE0ek0yLjgxIDIuODEgMS4zOSA0LjIyIDQgNi44M3Y0LjI2YzAgNS4wNSAzLjQxIDkuNzYgOCAxMC45MSAxLjcyLS40MyAzLjI4LTEuMzYgNC41NS0yLjYybDMuMjMgMy4yMyAxLjQxLTEuNDFMMi44MSAyLjgxek0xMiAxOS45MmMtMy40NS0xLjEzLTYtNC44Mi02LTguODNWOC44M2w5LjE0IDkuMTRjLS45Ljg4LTEuOTcgMS41Ny0zLjE0IDEuOTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSb2xsZXJTa2F0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgMTJhMy45NiAzLjk2IDAgMCAwLTIuOTEtMy44MmwtMi42Mi0uNzRDMTMuNjIgNy4xOSAxMyA2LjM5IDEzIDUuNVYxSDR2MTVoMTZ2LTR6bS0yIDJINlYzaDV2MUg5LjVjLS4yOCAwLS41LjIyLS41LjVzLjIyLjUuNS41SDExbC4xIDFIOS41Yy0uMjggMC0uNS4yMi0uNS41cy4yMi41LjUuNWgxLjgxYy40NSAxLjEyIDEuNCAyLjAxIDIuNiAyLjM2bDIuNjIuNzNDMTcuNCAxMC4zMyAxOCAxMS4xIDE4IDEydjJ6TTUgMTdjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zem0wIDRjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXptMTQtNGMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6bTAgNGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMSAxIC40NSAxIDEtLjQ1IDEtMSAxem0tNy00Yy0xLjY2IDAtMyAxLjM0LTMgM3MxLjM0IDMgMyAzIDMtMS4zNCAzLTMtMS4zNC0zLTMtM3ptMCA0Yy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTYWZldHlEaXZpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNWgydjE0aC0yVjV6bS02IDdjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0yLjc4IDEuNThhNi45NSA2Ljk1IDAgMCAwLTUuNTYgMEEyLjAxIDIuMDEgMCAwIDAgMSAxNS40M1YxNmg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1ek0xOSAxMmMxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTIuNzggMS41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxNSAxNS40M1YxNmg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2FuaXRpemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUuNSA2LjVDMTUuNSA1LjY2IDE3IDQgMTcgNHMxLjUgMS42NiAxLjUgMi41YzAgLjgzLS42NyAxLjUtMS41IDEuNXMtMS41LS42Ny0xLjUtMS41em00IDguNWEyLjUgMi41IDAgMCAwIDIuNS0yLjVjMC0xLjY3LTIuNS00LjUtMi41LTQuNVMxNyAxMC44MyAxNyAxMi41YTIuNSAyLjUgMCAwIDAgMi41IDIuNXpNMTMgMTRoLTJ2LTJIOXYySDd2MmgydjJoMnYtMmgydi0yem0zLTJ2OGMwIDEuMS0uOSAyLTIgMkg2Yy0xLjEgMC0yLS45LTItMnYtOGMwLTIuOTcgMi4xNi01LjQzIDUtNS45MVY0SDdWMmg2YzEuMTMgMCAyLjE1LjM5IDIuOTkgMS4wMWwtMS40MyAxLjQzQzE0LjEgNC4xNyAxMy41NyA0IDEzIDRoLTJ2Mi4wOWMyLjg0LjQ4IDUgMi45NCA1IDUuOTF6bS0yIDBjMC0yLjIxLTEuNzktNC00LTRzLTQgMS43OS00IDR2OGg4di04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCAxMVY4YzQuNTYtLjU4IDgtMy4xIDgtNkgyYzAgMi45IDMuNDQgNS40MiA4IDZ2M2MtMy42OC43My04IDMuNjEtOCAxMWg2di0ySDQuMTNjLjkzLTYuODMgNi42NS03LjIgNy44Ny03LjJzNi45NC4zNyA3Ljg3IDcuMkgxNnYyaDZjMC03LjM5LTQuMzItMTAuMjctOC0xMXptNC44Ny03QzE3LjUgNS4xOSAxNSA2LjEyIDEyIDYuMTJTNi41IDUuMTkgNS4xMyA0aDEzLjc0ek0xMiAyMmMtMS4xIDAtMi0uOS0yLTIgMC0uNTUuMjItMS4wNS41OS0xLjQxQzExLjM5IDE3Ljc5IDE2IDE2IDE2IDE2cy0xLjc5IDQuNjEtMi41OSA1LjQxYy0uMzYuMzctLjg2LjU5LTEuNDEuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTY2hvb2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDMgMSA5bDQgMi4xOHY2TDEyIDIxbDctMy44MnYtNmwyLTEuMDlWMTdoMlY5TDEyIDN6bTYuODIgNkwxMiAxMi43MiA1LjE4IDkgMTIgNS4yOCAxOC44MiA5ek0xNyAxNS45OWwtNSAyLjczLTUtMi43M3YtMy43MkwxMiAxNWw1LTIuNzN2My43MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNjaWVuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAxMS4zMyAxOCAxOEg2bDUtNi42N1Y2aDJtMi45Ni0ySDguMDRjLS40MiAwLS42NS40OC0uMzkuODFMOSA2LjV2NC4xN0wzLjIgMTguNGMtLjQ5LjY2LS4wMiAxLjYuOCAxLjZoMTZjLjgyIDAgMS4yOS0uOTQuOC0xLjZMMTUgMTAuNjdWNi41bDEuMzUtMS42OWMuMjYtLjMzLjAzLS44MS0uMzktLjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2NvcmVib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4IDloLTIuNWMtLjU1IDAtMSAuNDUtMSAxdjRjMCAuNTUuNDUgMSAxIDFIMThjLjU1IDAgMS0uNDUgMS0xdi00YzAtLjU1LS40NS0xLTEtMXptLS41IDQuNUgxNnYtM2gxLjV2M3ptLTggMS41SDV2LTIuNWMwLS41NS40NS0xIDEtMWgydi0xSDVWOWgzLjVjLjU1IDAgMSAuNDUgMSAxdjEuNWMwIC41NS0uNDUgMS0xIDFoLTJ2MWgzVjE1em0zLjI1LTRoLTEuNVY5LjVoMS41VjExem0wIDMuNWgtMS41VjEzaDEuNXYxLjV6TTIyIDZ2MTJjMCAxLjEtLjkgMi0yIDJINGMtMS4xIDAtMi0uOS0yLTJWNmMwLTEuMS45LTIgMi0yaDNWMmgydjJoNlYyaDJ2MmgzYzEuMSAwIDIgLjkgMiAyem0tMiAxMlY2aC03LjI1djEuNWgtMS41VjZINHYxMmg3LjI1di0xLjVoMS41VjE4SDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2N1YmFEaXZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xIDEzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6bTcuODktMi44OSA0LjUzLTEuMjEtLjc4LTIuOS00LjUzIDEuMjFjLS44LjIxLTEuMjggMS4wNC0xLjA2IDEuODQuMjIuOCAxLjA0IDEuMjggMS44NCAxLjA2ek0yMC41IDUuOSAyMyAzbC0xLTEtMyAzLTIgNC05LjQ4IDIuODdjLS44Mi4yLTEuMzkuODktMS41IDEuNjhMNS4yNCAxOCAyLjQgMjEuOCA0IDIzbDMtNCAxLjE0LTMuMTRMMTQgMTRsNS0zLjUgMS41LTQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNlbGZJbXByb3ZlbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxIDE2di0yYy0yLjI0IDAtNC4xNi0uOTYtNS42LTIuNjhsLTEuMzQtMS42QTEuOTggMS45OCAwIDAgMCAxMi41MyA5aC0xLjA1Yy0uNTkgMC0xLjE1LjI2LTEuNTMuNzJsLTEuMzQgMS42QzcuMTYgMTMuMDQgNS4yNCAxNCAzIDE0djJjMi43NyAwIDUuMTktMS4xNyA3LTMuMjVWMTVsLTMuODggMS41NWMtLjY3LjI3LTEuMTIuOTMtMS4xMiAxLjY2QzUgMTkuMiA1LjggMjAgNi43OSAyMEg5di0uNWEyLjUgMi41IDAgMCAxIDIuNS0yLjVoM2MuMjggMCAuNS4yMi41LjVzLS4yMi41LS41LjVoLTNjLS44MyAwLTEuNS42Ny0xLjUgMS41di41aDcuMjFjLjk5IDAgMS43OS0uOCAxLjc5LTEuNzkgMC0uNzMtLjQ1LTEuMzktMS4xMi0xLjY2TDE0IDE1di0yLjI1YzEuODEgMi4wOCA0LjIzIDMuMjUgNyAzLjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VudGltZW50RGlzc2F0aXNmaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE0Yy0yLjMzIDAtNC4zMiAxLjQ1LTUuMTIgMy41aDEuNjdjLjY5LTEuMTkgMS45Ny0yIDMuNDUtMnMyLjc1LjgxIDMuNDUgMmgxLjY3Yy0uOC0yLjA1LTIuNzktMy41LTUuMTItMy41em0tLjAxLTEyQzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnROZXV0cmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05IDE0aDZ2MS41SDl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTUuNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiOC41XCIsXCJjeVwiOlwiOS41XCIsXCJyXCI6XCIxLjVcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU2VudGltZW50U2F0aXNmaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE1LjVcIixcImN5XCI6XCI5LjVcIixcInJcIjpcIjEuNVwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjguNVwiLFwiY3lcIjpcIjkuNVwiLFwiclwiOlwiMS41XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE2Yy0xLjQ4IDAtMi43NS0uODEtMy40NS0ySDYuODhhNS40OTUgNS40OTUgMCAwIDAgMTAuMjQgMGgtMS42N2MtLjcgMS4xOS0xLjk3IDItMy40NSAyem0tLjAxLTE0QzYuNDcgMiAyIDYuNDggMiAxMnM0LjQ3IDEwIDkuOTkgMTBDMTcuNTIgMjIgMjIgMTcuNTIgMjIgMTJTMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnRWZXJ5RGlzc2F0aXNmaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxMy41Yy0yLjMzIDAtNC4zMSAxLjQ2LTUuMTEgMy41aDEwLjIyYy0uOC0yLjA0LTIuNzgtMy41LTUuMTEtMy41ek03LjgyIDEybDEuMDYtMS4wNkw5Ljk0IDEyIDExIDEwLjk0IDkuOTQgOS44OCAxMSA4LjgyIDkuOTQgNy43NiA4Ljg4IDguODIgNy44MiA3Ljc2IDYuNzYgOC44MmwxLjA2IDEuMDYtMS4wNiAxLjA2em00LjE3LTEwQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDkuOTkgMTBTMjIgMTcuNTMgMjIgMTIgMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTQuMTgtMTIuMjQtMS4wNiAxLjA2LTEuMDYtMS4wNkwxMyA4LjgybDEuMDYgMS4wNkwxMyAxMC45NCAxNC4wNiAxMmwxLjA2LTEuMDZMMTYuMTggMTJsMS4wNi0xLjA2LTEuMDYtMS4wNiAxLjA2LTEuMDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTZW50aW1lbnRWZXJ5U2F0aXNmaWVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS45OSAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDkuOTkgMTBTMjIgMTcuNTMgMjIgMTIgMTcuNTIgMiAxMS45OSAyek0xMiAyMGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6bTEtMTAuMDZMMTQuMDYgMTFsMS4wNi0xLjA2TDE2LjE4IDExbDEuMDYtMS4wNi0yLjEyLTIuMTJMMTMgOS45NHptLTQuMTIgMEw5Ljk0IDExIDExIDkuOTQgOC44OCA3LjgyIDYuNzYgOS45NCA3LjgyIDExbDEuMDYtMS4wNnpNMTIgMTcuNWMyLjMzIDAgNC4zMS0xLjQ2IDUuMTEtMy41SDYuODljLjggMi4wNCAyLjc4IDMuNSA1LjExIDMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNldmVyZUNvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMiAxMC40MSA0LTRMMTQuNTkgNSAxMiA3LjU5VjRoLTJ2My41OUw3LjQxIDUgNiA2LjQxbDQgNFYxMkg4LjQxbC00LTRMMyA5LjQxIDUuNTkgMTJIMnYyaDMuNTlMMyAxNi41OSA0LjQxIDE4bDQtNEgxMHYxLjU5bC00IDRMNy40MSAyMSAxMCAxOC40MVYyMmgydi0zLjU5TDE0LjU5IDIxIDE2IDE5LjU5bC00LTRWMTRoMS41OWw0IDRMMTkgMTYuNTkgMTYuNDEgMTRIMjB2LTJoLTh6TTE5IDJoMnY1aC0yek0xOSA4aDJ2MmgtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCAxNi4wOGMtLjc2IDAtMS40NC4zLTEuOTYuNzdMOC45MSAxMi43Yy4wNS0uMjMuMDktLjQ2LjA5LS43cy0uMDQtLjQ3LS4wOS0uN2w3LjA1LTQuMTFjLjU0LjUgMS4yNS44MSAyLjA0LjgxIDEuNjYgMCAzLTEuMzQgMy0zcy0xLjM0LTMtMy0zLTMgMS4zNC0zIDNjMCAuMjQuMDQuNDcuMDkuN0w4LjA0IDkuODFDNy41IDkuMzEgNi43OSA5IDYgOWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgM2MuNzkgMCAxLjUtLjMxIDIuMDQtLjgxbDcuMTIgNC4xNmMtLjA1LjIxLS4wOC40My0uMDguNjUgMCAxLjYxIDEuMzEgMi45MiAyLjkyIDIuOTJzMi45Mi0xLjMxIDIuOTItMi45MmMwLTEuNjEtMS4zMS0yLjkyLTIuOTItMi45MnpNMTggNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xek02IDEzYy0uNTUgMC0xLS40NS0xLTFzLjQ1LTEgMS0xIDEgLjQ1IDEgMS0uNDUgMS0xIDF6bTEyIDcuMDJjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTEgMSAuNDUgMSAxLS40NSAxLTEgMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk03LjMyIDEwLjU2IDguMzggOS41IDcuMzIgOC40NGwxLjA2LTEuMDZMMTAuNSA5LjVsLTIuMTIgMi4xMi0xLjA2LTEuMDZ6TTQuNSA5Yy4wMyAwIC4wNS4wMS4wOC4wMUE4LjAwMiA4LjAwMiAwIDAgMSAxMiA0YzIuMTkgMCA0LjE2Ljg4IDUuNjEgMi4zLjE1LS42LjQ1LTEuMjkuODEtMS45NkE5Ljk2NSA5Ljk2NSAwIDAgMCAxMS45OSAyYy00Ljg4IDAtOC45NCAzLjUxLTkuODEgOC4xNEMyLjc0IDkuNDQgMy41OSA5IDQuNSA5ek0yMSAxMC41Yy0uNDIgMC0uODItLjA5LTEuMTktLjIyLjEyLjU1LjE5IDEuMTMuMTkgMS43MiAwIDQuNDItMy41OCA4LTggOC0zLjM2IDAtNi4yMy0yLjA3LTcuNDItNS4wMS0uMDMgMC0uMDUuMDEtLjA4LjAxLS41MiAwLTEuMDQtLjE0LTEuNS0uNC0uMzItLjE4LS41OS0uNDItLjgyLS43Ljg5IDQuNjEgNC45MyA4LjEgOS44IDguMUMxNy41MiAyMiAyMiAxNy41MiAyMiAxMmMwLS41NS0uMDYtMS4wOS0uMTQtMS42MmEzLjUgMy41IDAgMCAxLS44Ni4xMnpNMjEgM3MtMiAyLjktMiA0IC45IDIgMiAyIDItLjkgMi0yLTItNC0yLTR6bS01LjM4IDQuMzhMMTMuNSA5LjVsMi4xMiAyLjEyIDEuMDYtMS4wNi0xLjA2LTEuMDYgMS4wNi0xLjA2LTEuMDYtMS4wNnpNOC41NiAxN2MuNjktMS4xOSAxLjk3LTIgMy40NC0yczIuNzUuODEgMy40NCAyaDEuNjhjLS44LTIuMDUtMi43OS0zLjUtNS4xMi0zLjUtLjg3IDAtMS43LjItMi40My41N0w1Ljk5IDEyYzAtLjUyLS4yNi0xLjAyLS43NC0xLjI5LS43Mi0uNDEtMS42My0uMTctMi4wNS41NS0uNDEuNzItLjE3IDEuNjMuNTUgMi4wNS40OC4yOCAxLjA1LjI1IDEuNDkgMGwyLjk3IDEuNzJjLS41Ny41My0xLjAzIDEuMjEtMS4zMyAxLjk3aDEuNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTaWduTGFuZ3VhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMi40OSAxMy0uOTMtMS44NmMtLjM3LS43NC0uMDctMS42NC42Ny0yLjAxbC4yNi0uMTMgNS43MyA1LjQ2Yy41LjQ3Ljc4IDEuMTMuNzggMS44MXY1LjIzYTIuNSAyLjUgMCAwIDEtMi41IDIuNWgtMTFjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFIMTB2LTFINGMtLjU1IDAtMS0uNDUtMS0xcy40NS0xIDEtMWg2di0xSDNjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoN3YtMUg0LjVjLS41NSAwLTEtLjQ1LTEtMXMuNDUtMSAxLTFoNy45OXptMS41MS4yVjE1aC0ydjdoNGMuNTUgMCAxLS40NSAxLTF2LTQuNTNjMC0uMjctLjExLS41NC0uMzEtLjczTDE0IDEzLjJ6bS0yLjIyLTYuMDhjLS44NC40LTEuMTcuNjItMS42MyAxLjE5bC0yLjctMi44NUEuOTk2Ljk5NiAwIDEgMSA4LjkgNC4wOWwyLjg4IDMuMDN6TTkuNjQgOS4yMWEzLjQ2IDMuNDYgMCAwIDAtLjIgMS43OWgtLjg2TDYuMzEgOC42MWEuOTg3Ljk4NyAwIDAgMSAuMDQtMS40MS45OTYuOTk2IDAgMCAxIDEuNDEuMDRsMS44OCAxLjk3em0xMC42OSA0LjcuODgtLjgzYy41LS40Ny43OS0xLjEzLjc5LTEuODJWMy4zNWwtLjI3LS4xYy0uNzgtLjI4LTEuNjQuMTItMS45Mi45bC0uNzEgMS45Ni01LjUtNS44YS45OTYuOTk2IDAgMSAwLTEuNDUgMS4zN2wzLjc5IDMuOTktLjczLjY5LTQuODItNS4wOGEuOTk2Ljk5NiAwIDEgMC0xLjQ1IDEuMzdsMy43OCAzLjk4TDE1LjM4IDlsMS45My0xLjg3IDEuMzggMS40NUwyMCA3LjM0djMuN2MwIC4yOC0uMTEuNTQtLjMxLjczbC0uNy42Ni42MS41OGMuMjkuMjcuNTMuNTcuNzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNpbmdsZUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwIDEyYzAtMS4xLS45LTItMi0yVjdjMC0xLjEtLjktMi0yLTJIOGMtMS4xIDAtMiAuOS0yIDJ2M2MtMS4xIDAtMiAuOS0yIDJ2NWgxLjMzTDYgMTloMWwuNjctMmg4LjY3bC42NiAyaDFsLjY3LTJIMjB2LTV6bS00LTJoLTNWN2gzdjN6TTggN2gzdjNIOFY3em0tMiA1aDEydjNINnYtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNrYXRlYm9hcmRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMyAzYzAtMS4xLjktMiAyLTJzMiAuOSAyIDItLjkgMi0yIDItMi0uOS0yLTJ6TTcuMjUgMjIuNWMtLjQxIDAtLjc1LjM0LS43NS43NXMuMzQuNzUuNzUuNzUuNzUtLjM0Ljc1LS43NS0uMzQtLjc1LS43NS0uNzV6bTguNSAwYy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NS43NS0uMzQuNzUtLjc1LS4zNC0uNzUtLjc1LS43NXptMy40OS0zLjVhLjcyLjcyIDAgMCAwLS41OS4zYy0uNTUuNzMtMS40MiAxLjItMi40IDEuMkgxNnYtNmwtNC4zMi0yLjY3IDEuOC0yLjg5QTYuNTA3IDYuNTA3IDAgMCAwIDE5IDEydi0yYy0xLjg1IDAtMy40NC0xLjEyLTQuMTMtMi43MmwtLjUyLTEuMjFDMTQuMTYgNS42NCAxMy42MSA1IDEyLjcgNUg3TDQuNSA5bDEuNyAxLjA2TDguMSA3aDIuMzVsLTIuNCAzLjg0Yy0uMzEuNS0uMzkgMS4xMS0uMjEgMS42N2wxLjM0IDQuMTUtMy4xMiAzLjc2Yy0uNy0uMTYtMS4zLS41Ny0xLjcxLTEuMTJhLjc0OS43NDkgMCAxIDAtMS4yLjljLjgyIDEuMSAyLjEzIDEuOCAzLjYgMS44aDkuNWMxLjQ3IDAgMi43OC0uNyAzLjYtMS44LjEtLjE0LjE1LS4zLjE1LS40NSAwLS4zOS0uMzItLjc1LS43Ni0uNzV6TTE0IDIwLjVIOC42bDIuOS0zLjUtMS0zLjMgMy41IDIuMnY0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTbGVkZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDQuNWMwIDEuMS0uOSAyLTIgMnMtMi0uOS0yLTIgLjktMiAyLTIgMiAuOSAyIDJ6bTguOCAxNS43NGE0LjAwMyA0LjAwMyAwIDAgMS01LjA0IDIuNTdMMSAxNy4zNmwuNDYtMS40MyAzLjkzIDEuMjguNDYtMS40My0zLjkyLTEuMjguNDYtMS40M0w0IDEzLjZWOS41bDUuNDctMi4zNWMuMzktLjE3Ljg0LS4yMSAxLjI4LS4wNy45NS4zMSAxLjQ2IDEuMzIgMS4xNiAyLjI3bC0xLjA1IDMuMjQgMi4xNC0uMzRjLjg5LS4xNSAxLjc2LjMyIDIuMTQgMS4xNGwyLjA4IDQuNTEgMS45My42My0uNDYgMS40My0zLjMyLTEuMDgtLjQ3IDEuNDIgMy4zMiAxLjA4YzEuMzEuNDMgMi43Mi0uMjkgMy4xNS0xLjYxLjQzLTEuMzEtLjI5LTIuNzItMS42MS0zLjE1bC40Ni0xLjQzYzIuMTEuNjkgMy4yNyAyLjk1IDIuNTggNS4wNXpNNiAxNC4yNWwxLjAxLjMzYy0uMjItLjQyLS4yOC0uOTItLjEyLTEuNEw3LjkyIDEwIDYgMTAuODJ2My40M3ptNy45NCA0LjE2LTYuNjYtMi4xNi0uNDYgMS40MyA2LjY2IDIuMTYuNDYtMS40M3ptLjY5LTEuMzYtMS4xOC0yLjU2LTMuOTcuODkgNS4xNSAxLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU25vd2JvYXJkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQgM2MwLTEuMS45LTIgMi0yczIgLjkgMiAyLS45IDItMiAyLTItLjktMi0yem03LjQgMTcuMDlhLjc0OC43NDggMCAwIDAtLjY0LjE3Yy0uNjkuNi0xLjY0Ljg4LTIuNi42N0wxNyAyMC42OWwtMS02LjE5LTMuMzItMi42NyAxLjgtMi44OUE2LjUwNyA2LjUwNyAwIDAgMCAyMCAxMnYtMmMtMS44NSAwLTMuNDQtMS4xMi00LjEzLTIuNzJsLS41Mi0xLjIxQzE1LjE2IDUuNjQgMTQuNjEgNSAxMy43IDVIOEw1LjUgOWwxLjcgMS4wNkw5LjEgN2gyLjM1bC0yLjUxIDMuOTljLS4yOC40NS0uMzcgMS0uMjUgMS41Mkw5LjUgMTYgNiAxOC4zNWwtLjQ3LS4xYy0uOTYtLjItMS43MS0uODUtMi4xLTEuNjdhLjc0NC43NDQgMCAwIDAtLjUxLS40MmMtLjQzLS4wOS0uODIuMi0uOS41OC0uMDQuMTQtLjAyLjMxLjA1LjQ2LjU4IDEuMjQgMS43MSAyLjIgMy4xNSAyLjUxbDEyLjYzIDIuNjljMS40NC4zMSAyLjg2LS4xMSAzLjktMS4wMS4xMy0uMTEuMjEtLjI2LjI0LS40MS4wNy0uMzgtLjE2LS44LS41OS0uODl6TTguNzMgMTguOTNsMy4wMi0yLjAzLS40NC0zLjMyIDIuODQgMi4wMi43NSA0LjY0LTYuMTctMS4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNub3dzaG9laW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuNSAzLjVjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNNi4zMiAxOS4wM2wtMS4xNC0xLjQ3TDQgMTguNWwyLjM4IDMuMDRjLjUxLjY1IDEuMTYgMS4xNSAxLjg4IDEuNDEuMjguMS41My4wNC43Mi0uMTEuMy0uMjMuNDItLjcuMTItMS4wN2EuODQuODQgMCAwIDAtLjMxLS4yMiAyLjk3IDIuOTcgMCAwIDEtMS4xNC0uODNsLS4wOC0uMUwxMSAxOC4ybC44OS0zLjIyIDIuMTEgMnY0LjUyaC0yVjIzaDMuODdjLjgyIDAgMS42MS0uMjEgMi4yNi0uNjEuMjYtLjE2LjM3LS4zOS4zNy0uNjQgMC0uMzgtLjMtLjc1LS43Ny0uNzUtLjEzIDAtLjI2LjA0LS4zNy4xLS40LjIzLS44Ny4zNy0xLjM2LjR2LTYuMDJsLTIuMTEtMiAuNi0zQzE1Ljc5IDExLjk4IDE3LjggMTMgMjAgMTN2LTJjLTEuOSAwLTMuNTEtMS4wMi00LjMxLTIuNDJsLTEtMS41OGMtLjQtLjYtMS0xLTEuNy0xLS43NSAwLTEuNDEuMzQtNS45OSAyLjI4VjEzaDJWOS41OGwxLjc5LS43TDkuMiAxN2wtMi44OCAyLjAzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU29jaWFsRGlzdGFuY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDVjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnptNC43OCAzLjU4YTYuOTUgNi45NSAwIDAgMC01LjU2IDBBMi4wMSAyLjAxIDAgMCAwIDIgMTAuNDNWMTFoOHYtLjU3YzAtLjgxLS40OC0xLjUzLTEuMjItMS44NXpNMTggN2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6bTIuNzggMS41OGE2Ljk1IDYuOTUgMCAwIDAtNS41NiAwQTIuMDEgMi4wMSAwIDAgMCAxNCAxMC40M1YxMWg4di0uNTdjMC0uODEtLjQ4LTEuNTMtMS4yMi0xLjg1em0tMi43NyA0LjQzLTEuNDEgMS40MUwxOC4xNyAxNkg1LjgzbDEuNTgtMS41OUw2IDEzbC00IDQgMy45OSAzLjk5IDEuNDEtMS40MUw1LjgzIDE4aDEyLjM0bC0xLjU4IDEuNThMMTggMjAuOTkgMjIgMTdsLTMuOTktMy45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNvdXRoQW1lcmljYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTQgMTJjMC0xLjk1LjctMy43NCAxLjg3LTUuMTNMOSAxMHYxYzAgMS4xLjkgMiAyIDJ2NS41OWMwIC4yNy4xMS41Mi4yOS43MWwuNzEuN2MtNC40MiAwLTgtMy41OC04LTh6bTkgNy45NFYxOGwzLjc1LTUuNjJjLjE2LS4yNS4yNS0uNTQuMjUtLjgzVjEwLjVjMC0uNTUtLjQ1LTEtMS0xaC0xLjVsLTEuNC0xLjc1Yy0uMzgtLjQ3LS45NS0uNzUtMS41Ni0uNzVIOFY1LjA3QTcuOTcxIDcuOTcxIDAgMCAxIDEyIDRjNC40MSAwIDggMy41OSA4IDggMCA0LjA3LTMuMDYgNy40NC03IDcuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNCYXNlYmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6TTUuNjEgMTYuNzhDNC42IDE1LjQ1IDQgMTMuOCA0IDEycy42LTMuNDUgMS42MS00Ljc4YTUuOTc1IDUuOTc1IDAgMCAxIDAgOS41NnpNMTIgMjBjLTEuODkgMC0zLjYzLS42Ni01LTEuNzYgMS44My0xLjQ3IDMtMy43MSAzLTYuMjRTOC44MyA3LjIzIDcgNS43NkM4LjM3IDQuNjYgMTAuMTEgNCAxMiA0czMuNjMuNjYgNSAxLjc2Yy0xLjgzIDEuNDctMyAzLjcxLTMgNi4yNHMxLjE3IDQuNzcgMyA2LjI0QTcuOTYzIDcuOTYzIDAgMCAxIDEyIDIwem02LjM5LTMuMjJhNS45NzUgNS45NzUgMCAwIDEgMC05LjU2QzE5LjQgOC41NSAyMCAxMC4yIDIwIDEycy0uNiAzLjQ1LTEuNjEgNC43OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0Jhc2tldGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek01LjIzIDcuNzVDNi4xIDguNjIgNi43IDkuNzQgNi45MSAxMUg0LjA3YTguMTIgOC4xMiAwIDAgMSAxLjE2LTMuMjV6TTQuMDcgMTNoMi44NGE1Ljk3MiA1Ljk3MiAwIDAgMS0xLjY4IDMuMjVBOC4xMiA4LjEyIDAgMCAxIDQuMDcgMTN6TTExIDE5LjkzYy0xLjczLS4yMi0zLjI5LTEtNC40OS0yLjE0QTcuOTUyIDcuOTUyIDAgMCAwIDguOTMgMTNIMTF2Ni45M3pNMTEgMTFIOC45M0E3Ljk5IDcuOTkgMCAwIDAgNi41IDYuMiA4LjAzNSA4LjAzNSAwIDAgMSAxMSA0LjA3VjExem04LjkzIDBoLTIuODRjLjIxLTEuMjYuODEtMi4zOCAxLjY4LTMuMjUuNi45NyAxLjAxIDIuMDcgMS4xNiAzLjI1ek0xMyA0LjA3YzEuNzMuMjIgMy4yOS45OSA0LjUgMi4xM2E3Ljk5IDcuOTkgMCAwIDAtMi40MyA0LjhIMTNWNC4wN3ptMCAxNS44NlYxM2gyLjA3YTguMDA2IDguMDA2IDAgMCAwIDIuNDIgNC43OUE3Ljk4OCA3Ljk4OCAwIDAgMSAxMyAxOS45M3ptNS43Ny0zLjY4QTYuMDA0IDYuMDA0IDAgMCAxIDE3LjA5IDEzaDIuODRhOC4xMiA4LjEyIDAgMCAxLTEuMTYgMy4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0NyaWNrZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xNS4wNCAxMi43OS04LjUtOC41QzYuMzUgNC4xIDYuMDkgNCA1LjgzIDRzLS41MS4xLS43LjI5TDIuMjkgNy4xM2MtLjM5LjM5LS4zOSAxLjAzIDAgMS40Mmw4LjUgOC41Yy4yLjIuNDUuMjkuNzEuMjkuMjYgMCAuNTEtLjEuNzEtLjI5bDIuODMtMi44M2MuMzktLjQuMzktMS4wNCAwLTEuNDN6bS0zLjU0IDIuMTNMNC40MSA3LjgzbDEuNDItMS40MiA3LjA5IDcuMDktMS40MiAxLjQyek0xNC4zNDEgMTcuNzU2bDEuNDE0LTEuNDE0IDQuMjQzIDQuMjQzLTEuNDE0IDEuNDE0ek0xOC41IDJDMTYuNTcgMiAxNSAzLjU3IDE1IDUuNVMxNi41NyA5IDE4LjUgOSAyMiA3LjQzIDIyIDUuNSAyMC40MyAyIDE4LjUgMnptMCA1Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTcuNjcgNCAxOC41IDRzMS41LjY3IDEuNSAxLjVTMTkuMzMgNyAxOC41IDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNFc3BvcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjEuNTggMTYuMDktMS4wOS03LjY2QTMuOTk2IDMuOTk2IDAgMCAwIDE2LjUzIDVINy40N0M1LjQ4IDUgMy43OSA2LjQ2IDMuNTEgOC40M2wtMS4wOSA3LjY2QzIuMiAxNy42MyAzLjM5IDE5IDQuOTQgMTljLjY4IDAgMS4zMi0uMjcgMS44LS43NUw5IDE2aDZsMi4yNSAyLjI1Yy40OC40OCAxLjEzLjc1IDEuOC43NSAxLjU2IDAgMi43NS0xLjM3IDIuNTMtMi45MXptLTIuMS43MmEuNTQuNTQgMCAwIDEtLjQyLjE5Yy0uMTUgMC0uMjktLjA2LS4zOS0uMTZMMTUuODMgMTRIOC4xN2wtMi44NCAyLjg0Yy0uMS4xLS4yNC4xNi0uMzkuMTZhLjU0LjU0IDAgMCAxLS40Mi0uMTkuNTIuNTIgMCAwIDEtLjEzLS40NGwxLjA5LTcuNjZDNS42MyA3Ljc0IDYuNDggNyA3LjQ3IDdoOS4wNmMuOTkgMCAxLjg0Ljc0IDEuOTggMS43MmwxLjA5IDcuNjZjLjAzLjItLjA1LjM0LS4xMi40M3pcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOSA4SDh2Mkg2djFoMnYyaDF2LTJoMnYtMUg5elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjE3XCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxNVwiLFwiY3lcIjpcIjlcIixcInJcIjpcIjFcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0Zvb3RiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAuMzEgMy42OWMtLjMyLS4zMy0xLjk0LS42OS00LjA1LS42OS0zLjAzIDAtNy4wOS43NS05LjggMy40Ni00LjU5IDQuNTktMy41NiAxMy4wNi0yLjc3IDEzLjg1LjMyLjMzIDEuOTQuNjkgNC4wNS42OSAzLjAzIDAgNy4wOS0uNzUgOS44LTMuNDYgNC41OS00LjU5IDMuNTYtMTMuMDYgMi43Ny0xMy44NXpNNy43NCAxOWMtMS4xNCAwLTIuMDItLjEyLTIuNTMtLjIzLS4xOC0uNzktLjMtMi4yMS0uMTctMy44M2w0LjAxIDQuMDFjLS41Mi4wNC0uOTcuMDUtMS4zMS4wNXptOC4zOS0yLjg3Yy0xLjMzIDEuMzMtMy4wNiAyLjA1LTQuNjYgMi40NGwtNi4wNC02LjA0Yy40Mi0xLjY4IDEuMTYtMy4zNyAyLjQ1LTQuNjUgMS4zMi0xLjMyIDMuMDUtMi4wNCA0LjY0LTIuNDNsNi4wNSA2LjA1Yy0uNDIgMS42Ny0xLjE3IDMuMzUtMi40NCA0LjYzem0yLjgzLTcuMDQtNC4wMy00LjAzYy41Mi0uMDUuOTgtLjA2IDEuMzMtLjA2IDEuMTQgMCAyLjAyLjEyIDIuNTMuMjMuMTguNzkuMyAyLjIyLjE3IDMuODZ6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTguNSAxNC4xIDUuNi01LjYgMS40IDEuNC01LjYgNS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzR29sZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDE2YzMuODcgMCA3LTMuMTMgNy03cy0zLjEzLTctNy03LTcgMy4xMy03IDcgMy4xMyA3IDcgN3ptMC0xMmMyLjc2IDAgNSAyLjI0IDUgNXMtMi4yNCA1LTUgNS01LTIuMjQtNS01IDIuMjQtNSA1LTV6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTBcIixcImN5XCI6XCI4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTRcIixcImN5XCI6XCI4XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI2XCIsXCJyXCI6XCIxXCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMTloMmMxLjEgMCAyIC45IDIgMnYxaDJ2LTFjMC0xLjEuOS0yIDItMmgydi0ySDd2MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0d5bW5hc3RpY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZjMC0xLjEuOS0yIDItMnMyIC45IDIgMi0uOSAyLTIgMi0yLS45LTItMnpNMSA5aDZsNy01IDEuMzEgMS41Mi00LjE3IDIuOThIMTRMMjEuOCA0IDIzIDUuNCAxNC41IDEyIDE0IDIyaC0ybC0uNS0xMEw4IDExSDFWOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c0hhbmRiYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQuMjcgNmMtLjU1Ljk1LS4yMiAyLjE4LjczIDIuNzMuOTUuNTUgMi4xOC4yMiAyLjczLS43My41NS0uOTUuMjItMi4xOC0uNzMtMi43My0uOTUtLjU1LTIuMTgtLjIyLTIuNzMuNzN6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE1Ljg0IDEwLjQxLTIuNi0xLjVjLTIuMzgtMS4zOC0zLjItNC40NC0xLjgyLTYuODJsLTEuNzMtMUM4LjEgMy44MyA4LjYgNy4yMSAxMC42NiA5LjRsLTUuMTUgOC45MiAxLjczIDEgMS41LTIuNiAxLjczIDEtMyA1LjIgMS43MyAxIDYuMjktMTAuODlhNS4wMDIgNS4wMDIgMCAwIDEgLjMxIDUuNDZsMS43MyAxYzEuNi0yLjc1IDEuMjgtNi41OC0xLjY5LTkuMDh6TTEyLjc1IDMuOGMuNzIuNDEgMS42My4xNyAyLjA1LS41NS40MS0uNzIuMTctMS42My0uNTUtMi4wNWExLjUwMSAxLjUwMSAwIDAgMC0xLjUgMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzSG9ja2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMiAxN3YzaDJ2LTRIM2MtLjU1IDAtMSAuNDUtMSAxek05IDE2SDV2NGw0LjY5LS4wMWMuMzggMCAuNzItLjIxLjg5LS41NWwuODctMS45LTEuNTktMy40OEw5IDE2ek0yMS43MSAxNi4yOUEuOTk3Ljk5NyAwIDAgMCAyMSAxNmgtMXY0aDJ2LTNjMC0uMjgtLjExLS41My0uMjktLjcxek0xMy42IDEyLjg0IDE3LjY1IDRIMTQuM2wtMS43NiAzLjk3LS40OSAxLjEtLjA1LjE0TDkuNyA0SDYuMzVsNC4wNSA4Ljg0IDEuNTIgMy4zMi4wOC4xOCAxLjQyIDMuMWMuMTcuMzQuNTEuNTUuODkuNTVMMTkgMjB2LTRoLTRsLTEuNC0zLjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzS2FiYWRkaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTYuNVwiLFwiY3lcIjpcIjIuMzhcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQgMTEuODh2LTQuN2wtNS4wNS0yLjE0Yy0uOTctLjQxLTIuMDktLjA2LTIuNjUuODRsLTEgMS42Yy0uNjcgMS4xOC0xLjkxIDIuMDYtMy40MSAyLjMybC4wNi4wNmMuNjkuNjkgMS41MiAxLjA3IDIuNDYgMS4xNy44LS40MiAxLjUyLS45OCAyLjA5LTEuNjRsLjYgMy0xLjE2IDEuMS0uOTQuODl2Ny41aDJ2LTZsMi4xLTIgMS44IDhIMjNsLTIuMTgtMTEtLjYyLTMuMSAxLjguN3YzLjRoMnpNMTAuMjkgOC4wOWMuMjIuMTUuNDcuMjQuNzIuMjkuMTMuMDIuMjUuMDQuMzguMDRzLjI2LS4wMS4zOC0uMDRjLjEzLS4wMi4yNS0uMDYuMzctLjExLjI0LS4xLjQ3LS4yNC42Ni0uNDQuNDktLjQ5LjY3LTEuMTcuNTUtMS44LS4wNy0uMzctLjI1LS43NC0uNTUtMS4wMy0uMTktLjE5LS40Mi0uMzQtLjY2LS40NC0uMTItLjA1LS4yNC0uMDktLjM3LS4xMXMtLjI1LS4wNC0uMzgtLjA0Yy0uMTIgMC0uMjMuMDEtLjM1LjAzLS4xNC4wMi0uMjguMDYtLjQxLjExLS4yMy4xMS0uNDYuMjYtLjY1LjQ1LS4zLjI5LS40OC42Ni0uNTUgMS4wMy0uMTIuNjMuMDYgMS4zMS41NSAxLjguMDkuMS4yLjE4LjMxLjI2elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIm0xMS4yNCAxMC41Ni0yLTJjLS4xLS4xLS4yLS4xOC0uMzEtLjI2YTEuOTMgMS45MyAwIDAgMC0uNzItLjI4Yy0uMTMtLjAzLS4yNS0uMDQtLjM4LS4wNC0uNTEgMC0xLjAyLjItMS40MS41OWwtMy4zNCAzLjM0Yy0uNDEuNDEtLjYyLjk4LS41OCAxLjU0IDAgLjE4LjA0LjM3LjExLjU1bDEuMDcgMi45NS0zLjYzIDMuNjNMMS40NiAyMmw0LjI0LTQuMjR2LTIuMjJMNyAxNi43NXY1LjEzaDJ2LTZsLTIuMTItMi4xMiAyLjM2LTIuMzYuNzEuNzFjMS4yOSAxLjI2IDIuOTcgMi4wNCA1LjAzIDIuMDRsLS4xNC0yLjA3Yy0xLjUtLjAyLTIuNy0uNjItMy42LTEuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNNYXJ0aWFsQXJ0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTE5LjggMi04LjIgNi43LTEuMjEtMS4wNCAzLjYtMi4wOEw5LjQxIDEgOCAyLjQxbDIuNzQgMi43NEw1IDguNDZsLTEuMTkgNC4yOUw2LjI3IDE3IDggMTZsLTIuMDMtMy41Mi4zNS0xLjNMOS41IDEzbC41IDloMmwuNS0xMEwyMSAzLjR6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiNVwiLFwiY3lcIjpcIjVcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c01tYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcgMjBjMCAuNTUuNDUgMSAxIDFoOGMuNTUgMCAxLS40NSAxLTF2LTNIN3Yzek0xOCA3Yy0uNTUgMC0xIC40NS0xIDFWNWMwLTEuMS0uOS0yLTItMkg3Yy0xLjEgMC0yIC45LTIgMnY1LjhjMCAuMTMuMDEuMjYuMDQuMzlsLjggNGMuMDkuNDcuNS44Ljk4LjhIMTdjLjU1IDAgMS4wOS0uNDQgMS4yLS45OGwuNzctMy44M2MuMDItLjEyLjAzLS4yNS4wMy0uMzhWOGMwLS41NS0uNDUtMS0xLTF6bS0xIDMuNmMwIC4xMy0uNjQgMy40LS42NCAzLjRINy42NFM3IDEwLjc0IDcgMTAuNlY1aDh2NWgydi42elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDdoNnYzSDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNNb3RvcnNwb3J0cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxLjk2IDExLjIyQzIxLjU3IDcuMDEgMTcuNzYgNCAxMy41NiA0Yy0uMTkgMC0uMzguMDEtLjU3LjAyQzIgNC43NCAyIDE3LjIgMiAxNy4ydi44YzAgMS4xLjkgMiAyIDJoMTBjNC42NyAwIDguNDEtNC4wMSA3Ljk2LTguNzh6bS0xNi43LjM0Yy41Ny0xLjI5IDEuMjgtMi4zNSAyLjE0LTMuMTlsMy42MiAxLjUzYy42LjI1Ljk4LjgzLjk4IDEuNDggMCAuODktLjcyIDEuNjEtMS42MSAxLjYxSDQuNzJjLjE1LS40Ni4zMi0uOTQuNTQtMS40M3ptMTMuMTggNC40OEE2LjAyMiA2LjAyMiAwIDAgMSAxNCAxOEg0di0uOGMwLS4wMi4wMS0uOTIuMjQtMi4yaDYuMTVjMS45OSAwIDMuNjEtMS42MiAzLjYxLTMuNjEgMC0xLjQ1LS44Ny0yLjc2LTIuMi0zLjMyTDkuMyA3LjAxYzEuMS0uNTcgMi4zNy0uOSAzLjgyLS45OS4xNS0uMDIuMy0uMDIuNDQtLjAyIDMuMzEgMCA2LjEzIDIuMzcgNi40MSA1LjQxLjE2IDEuNzItLjM4IDMuMzYtMS41MyA0LjYzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3BvcnRzUnVnYnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMC40OSAzLjUxYy0uNTYtLjU2LTIuMTUtLjk3LTQuMTYtLjk3LTMuMDggMC03LjE1Ljk2LTkuOTggMy43OS00LjY5IDQuNy00LjI1IDEyLjc0LTIuODQgMTQuMTYuNTYuNTYgMi4xNS45NyA0LjE2Ljk3IDMuMDggMCA3LjE1LS45NiA5Ljk4LTMuNzkgNC42OS00LjcgNC4yNS0xMi43NCAyLjg0LTE0LjE2ek01LjcxIDE4LjI5Yy42My0xLjg5IDIuMTYtNC45OSA0Ljg3LTcuNyAyLjY4LTIuNjggNS43OC00LjIzIDcuNy00Ljg4LS42MyAxLjg5LTIuMTYgNC45OS00Ljg4IDcuNy0yLjY2IDIuNjgtNS43NiA0LjIzLTcuNjkgNC44OHpNNy43NiA3Ljc2YzIuNjQtMi42NCA2LjM0LTMuMTIgOC4wMy0zLjE5LTIuMDUuOTQtNC40NiAyLjQ2LTYuNjEgNC42MWEyMy4yMDYgMjMuMjA2IDAgMCAwLTQuNjEgNi42M2MuMDktMi40OC44Ny01Ljc0IDMuMTktOC4wNXptOC40OCA4LjQ4Yy0yLjY0IDIuNjQtNi4zNCAzLjEyLTguMDMgMy4xOSAyLjA1LS45NCA0LjQ2LTIuNDYgNi42MS00LjYxIDIuMTYtMi4xNiAzLjY3LTQuNTggNC42Mi02LjYzLS4xIDIuNDgtLjg4IDUuNzQtMy4yIDguMDV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNTb2NjZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDMuMyAxLjM1LS45NWE4LjAxIDguMDEgMCAwIDEgNC4zOCAzLjM0bC0uMzkgMS4zNC0xLjM1LjQ2TDEzIDYuN1Y1LjN6bS0zLjM1LS45NUwxMSA1LjN2MS40TDcuMDEgOS40OWwtMS4zNS0uNDYtLjM5LTEuMzRhOC4xMDMgOC4xMDMgMCAwIDEgNC4zOC0zLjM0ek03LjA4IDE3LjExbC0xLjE0LjFBNy45MzggNy45MzggMCAwIDEgNCAxMmMwLS4xMi4wMS0uMjMuMDItLjM1bDEtLjczIDEuMzguNDggMS40NiA0LjM0LS43OCAxLjM3em03LjQyIDIuNDhjLS43OS4yNi0xLjYzLjQxLTIuNS40MXMtMS43MS0uMTUtMi41LS40MWwtLjY5LTEuNDkuNjQtMS4xaDUuMTFsLjY0IDEuMTEtLjcgMS40OHpNMTQuMjcgMTVIOS43M2wtMS4zNS00LjAyTDEyIDguNDRsMy42MyAyLjU0TDE0LjI3IDE1em0zLjc5IDIuMjEtMS4xNC0uMS0uNzktMS4zNyAxLjQ2LTQuMzQgMS4zOS0uNDcgMSAuNzNjLjAxLjExLjAyLjIyLjAyLjM0IDAgMS45OS0uNzMgMy44MS0xLjk0IDUuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHNUZW5uaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOS41MiAyLjQ5QzE3LjE4LjE1IDEyLjkuNjIgOS45NyAzLjU1Yy0xLjYgMS42LTIuNTIgMy44Ny0yLjU0IDUuNDYtLjAyIDEuNTguMjYgMy44OS0xLjM1IDUuNWwtNC4yNCA0LjI0IDEuNDIgMS40MiA0LjI0LTQuMjRjMS42MS0xLjYxIDMuOTItMS4zMyA1LjUtMS4zNXMzLjg2LS45NCA1LjQ2LTIuNTRjMi45Mi0yLjkzIDMuNC03LjIxIDEuMDYtOS41NXptLTkuMiA5LjE5Yy0xLjUzLTEuNTMtMS4wNS00LjYxIDEuMDYtNi43MnM1LjE4LTIuNTkgNi43Mi0xLjA2YzEuNTMgMS41MyAxLjA1IDQuNjEtMS4wNiA2Ljcycy01LjE4IDIuNTktNi43MiAxLjA2ek0xOCAxN2MuNTMgMCAxLjA0LjIxIDEuNDEuNTkuNzguNzguNzggMi4wNSAwIDIuODMtLjM3LjM3LS44OC41OC0xLjQxLjU4cy0xLjA0LS4yMS0xLjQxLS41OWMtLjc4LS43OC0uNzgtMi4wNSAwLTIuODMuMzctLjM3Ljg4LS41OCAxLjQxLS41OG0wLTJhMy45OTggMy45OTggMCAwIDAtMi44MyA2LjgzYy43OC43OCAxLjgxIDEuMTcgMi44MyAxLjE3YTMuOTk4IDMuOTk4IDAgMCAwIDIuODMtNi44M0EzLjk5OCAzLjk5OCAwIDAgMCAxOCAxNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVNwb3J0c1ZvbGxleWJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDIuMDdjMy4wNy4zOCA1LjU3IDIuNTIgNi41NCA1LjM2TDEzIDUuNjVWNC4wN3pNOCA1LjA4YzEuMTgtLjY5IDMuMzMtMS4wNiAzLTEuMDJ2Ny4zNWwtMyAxLjczVjUuMDh6TTQuNjMgMTUuMWMtLjQtLjk2LS42My0yLS42My0zLjEgMC0yLjAyLjc2LTMuODYgMi01LjI3djcuNThsLTEuMzcuNzl6bTEuMDEgMS43M0wxMiAxMy4xNWwzIDEuNzMtNi45OCA0LjAzYTcuNzk0IDcuNzk0IDAgMCAxLTIuMzgtMi4wOHpNMTIgMjBjLS41NCAwLTEuMDctLjA2LTEuNTgtLjE2bDYuNTgtMy44IDEuMzYuNzhDMTYuOSAxOC43NSAxNC42IDIwIDEyIDIwem0xLTguNThWNy45Nmw3IDQuMDVjMCAxLjEtLjIzIDIuMTQtLjYzIDMuMDlMMTMgMTEuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTcG9ydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMS4yMyA2Yy0xLjY2IDAtMy4yMi42Ni00LjM2IDEuNzNDNi41NCA2LjczIDUuNjEgNiA0LjUgNmEyLjUgMi41IDAgMCAwIDAgNWMuMjEgMCAuNDEtLjAzLjYxLS4wOC0uMDUuMjUtLjA5LjUxLS4xLjc4YTYuMDA2IDYuMDA2IDAgMCAwIDYuNjggNi4yN2MyLjU1LS4yOCA0LjY4LTIuMjYgNS4xOS00Ljc3LjE1LS43MS4xNS0xLjQuMDYtMi4wNi0uMDktLjYuMzgtMS4xMy45OS0xLjEzSDIyVjZIMTEuMjN6TTQuNSA5Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXptNi41IDZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjExXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN1cmZpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSAyM2MtMS4wMyAwLTIuMDYtLjI1LTMtLjc1LTEuODkgMS00LjExIDEtNiAwLTEuODkgMS00LjExIDEtNiAwLS45NS41LTEuOTcuNzUtMyAuNzVIMnYtMmgxYzEuMDQgMCAyLjA4LS4zNSAzLTEgMS44MyAxLjMgNC4xNyAxLjMgNiAwIDEuODMgMS4zIDQuMTcgMS4zIDYgMCAuOTEuNjUgMS45NiAxIDMgMWgxdjJoLTF6TTE3IDEuNWMtMS4xIDAtMiAuOS0yIDJzLjkgMiAyIDIgMi0uOSAyLTItLjktMi0yLTJ6bS0yLjU3IDYuOThMMTIuMTggMTAgMTYgMTN2My44NGMuNTMuMzggMS4wMy43OCAxLjQ5IDEuMTctLjY4LjU4LTEuNTUuOTktMi40OS45OS0xLjIgMC0yLjI3LS42Ni0zLTEuNS0uNzMuODQtMS44IDEuNS0zIDEuNS0uMzMgMC0uNjUtLjA1LS45Ni0uMTRDNS4xOSAxNi45IDMgMTQuNzIgMyAxMy4yOCAzIDEyLjI1IDQuMDEgMTIgNC44NSAxMmMuOTggMCAyLjI4LjMxIDMuNy44M2wtLjUzLTMuMWMtLjExLS42Ny4xOC0xLjM4Ljc4LTEuNzlsMi4xNS0xLjQ1LTItLjM3LTIuODIgMS45M0w1IDYuNCA4LjUgNGw1LjU1IDEuMDNjLjQ1LjA5LjkzLjM3IDEuMjIuODlsLjg4IDEuNTVBNS4wMDcgNS4wMDcgMCAwIDAgMjAuNSAxMHYyYTcuMDEgNy4wMSAwIDAgMS02LjA3LTMuNTJ6TTEwLjMgMTEuMWwuNDQgMi42NWMuOTIuNDIgMi40OCAxLjI3IDMuMjYgMS43NVYxNGwtMy43LTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN3aXRjaEFjY291bnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00IDZIMnYxNGMwIDEuMS45IDIgMiAyaDE0di0ySDRWNnptMTAgNWMxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzIDEuMzQgMyAzIDN6bTAtNGMuNTUgMCAxIC40NSAxIDFzLS40NSAxLTEgMS0xLS40NS0xLTEgLjQ1LTEgMS0xem02LTVIOGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0tOS4zMSAxNGE1Ljk3NyA1Ljk3NyAwIDAgMSA2LjYyIDBoLTYuNjJ6bTkuMzEtLjI3QzE4LjUzIDE0LjA2IDE2LjQgMTMgMTQgMTNzLTQuNTMgMS4wNi02IDIuNzNWNGgxMnYxMS43M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW1iRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNSAzSDZjLS44MyAwLTEuNTQuNS0xLjg0IDEuMjJsLTMuMDIgNy4wNWMtLjA5LjIzLS4xNC40Ny0uMTQuNzN2MmMwIDEuMS45IDIgMiAyaDYuMzFsLS45NSA0LjU3LS4wMy4zMmMwIC40MS4xNy43OS40NCAxLjA2TDkuODMgMjNsNi41OC02LjU5Yy4zNy0uMzYuNTktLjg2LjU5LTEuNDFWNWMwLTEuMS0uOS0yLTItMnptMCAxMi00LjM0IDQuMzRMMTEuNzcgMTRIM3YtMmwzLTdoOXYxMHptNC0xMmg0djEyaC00elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVGh1bWJVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIixcIm9wYWNpdHlcIjpcIi44N1wifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMSA4aC02LjMxbC45NS00LjU3LjAzLS4zMmMwLS40MS0uMTctLjc5LS40NC0xLjA2TDE0LjE3IDEgNy41OSA3LjU5QzcuMjIgNy45NSA3IDguNDUgNyA5djEwYzAgMS4xLjkgMiAyIDJoOWMuODMgMCAxLjU0LS41IDEuODQtMS4yMmwzLjAyLTcuMDVjLjA5LS4yMy4xNC0uNDcuMTQtLjczdi0yYzAtMS4xLS45LTItMi0yem0wIDQtMyA3SDlWOWw0LjM0LTQuMzRMMTIuMjMgMTBIMjF2MnpNMSA5aDR2MTJIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRodW5kZXJzdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjkyIDcuMDJDMTcuNDUgNC4xOCAxNC45NyAyIDEyIDIgOS44MiAyIDcuODMgMy4xOCA2Ljc4IDUuMDYgNC4wOSA1LjQxIDIgNy43NCAyIDEwLjUgMiAxMy41MyA0LjQ3IDE2IDcuNSAxNmgxMGMyLjQ4IDAgNC41LTIuMDIgNC41LTQuNWE0LjUgNC41IDAgMCAwLTQuMDgtNC40OHpNMTcuNSAxNGgtMTBDNS41NyAxNCA0IDEyLjQzIDQgMTAuNWEzLjUxIDMuNTEgMCAwIDEgMy4wNC0zLjQ2bC45OS0uMTMuNDktLjg3QTMuOTk4IDMuOTk4IDAgMCAxIDEyIDRjMS45NCAwIDMuNjMgMS40NCAzLjk1IDMuMzVsLjI1IDEuNTIgMS41NC4xNGMxLjI3LjEyIDIuMjYgMS4yMSAyLjI2IDIuNDlhMi41IDIuNSAwIDAgMS0yLjUgMi41ek0xNC44IDE3bC0yLjkgMy4zMiAyIDFMMTEuNTUgMjRoMi42NWwyLjktMy4zMi0yLTFMMTcuNDUgMTd6TTguOCAxN2wtMi45IDMuMzIgMiAxTDUuNTUgMjRIOC4ybDIuOS0zLjMyLTItMUwxMS40NSAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvcm5hZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMyAzSDFsMTEgMTlMMjMgM3ptLTMuNDcgMi0xLjc0IDNINi4yMUw0LjQ3IDVoMTUuMDZ6bS05LjI3IDEwaDMuNDhMMTIgMTguMDEgMTAuMjYgMTV6bTQuNjQtMkg5LjFsLTEuNzQtM2g5LjI3bC0xLjczIDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmFuc2dlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDhjMS45MyAwIDMuNSAxLjU3IDMuNSAzLjVTMTMuOTMgMTUgMTIgMTVzLTMuNS0xLjU3LTMuNS0zLjVTMTAuMDcgOCAxMiA4em00LjUzLjM4IDMuOTctMy45NlY3aDJWMWgtNnYyaDIuNThsLTMuOTcgMy45N0MxNC4yMyA2LjM2IDEzLjE2IDYgMTIgNnMtMi4yMy4zNi0zLjExLjk3bC0uNjUtLjY1IDEuNDEtMS40MS0xLjQxLTEuNDJMNi44MiA0LjkgNC45MiAzSDcuNVYxaC02djZoMlY0LjQybDEuOTEgMS45LTEuNDIgMS40Mkw1LjQgOS4xNWwxLjQxLTEuNDEuNjUuNjVjLS42Ljg4LS45NiAxLjk1LS45NiAzLjExYTUuNSA1LjUgMCAwIDAgNC41IDUuNDFWMTlIOXYyaDJ2Mmgydi0yaDJ2LTJoLTJ2LTIuMDlhNS41IDUuNSAwIDAgMCAzLjUzLTguNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUcmF2ZWxFeHBsb3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMyAxNi45Yy40LS43LjctMS41LjctMi40IDAtMi41LTItNC41LTQuNS00LjVTMTEgMTIgMTEgMTQuNXMyIDQuNSA0LjUgNC41Yy45IDAgMS43LS4zIDIuNC0uN2wzLjIgMy4yIDEuNC0xLjQtMy4yLTMuMnptLTMuOC4xYy0xLjQgMC0yLjUtMS4xLTIuNS0yLjVzMS4xLTIuNSAyLjUtMi41IDIuNSAxLjEgMi41IDIuNS0xLjEgMi41LTIuNSAyLjV6TTEyIDIwdjJDNi40OCAyMiAyIDE3LjUyIDIgMTJTNi40OCAyIDEyIDJjNC44NCAwIDguODcgMy40NCA5LjggOGgtMi4wN0E4IDggMCAwIDAgMTUgNC41OVY1YzAgMS4xLS45IDItMiAyaC0ydjJjMCAuNTUtLjQ1IDEtMSAxSDh2MmgydjNIOWwtNC43OS00Ljc5QzQuMDggMTAuNzkgNCAxMS4zOCA0IDEyYzAgNC40MSAzLjU5IDggOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lVHN1bmFtaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4LjY3IDE3LjYzYy0zLjggMi44LTYuMTIuNC02LjY3IDAtLjY2LjQ5LTIuOTIgMi43Ni02LjY3IDBDMy40MyAxOS4wMyAyLjY1IDE5IDIgMTl2MmMxLjE2IDAgMi4zLS4zMiAzLjMzLS45M2E2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDAgNi41MzUgNi41MzUgMCAwIDAgNi42NyAwYzEuMDMuNjEgMi4xNy45MyAzLjMzLjkzdi0yYy0uNjYgMC0xLjUtLjAyLTMuMzMtMS4zN3pNMTkuMzMgMTJIMjJ2LTJoLTIuNjdDMTcuNSAxMCAxNiA4LjUgMTYgNi42N2MwLTEuMDIuMzgtMS43NCAxLjA5LTMuMzQtMS4zNy0uMjEtMi0uMzMtMy4wOS0uMzNDNy4zNiAzIDIuMTUgOC4wMyAyLjAxIDE0LjVsLS4wMSAyYzEuMTYgMCAyLjMtLjMyIDMuMzMtLjkzYTYuNTM1IDYuNTM1IDAgMCAwIDYuNjcgMCA2LjUzNSA2LjUzNSAwIDAgMCA2LjY3IDBjMS4wMy42MSAyLjE3LjkzIDMuMzMuOTN2LTJjLS42NiAwLTEuNS0uMDItMy4zMy0xLjM3LTMuOCAyLjgtNi4xMi40LTYuNjcgMC0uOS42Ny0uNTQuNDEtLjkxLjYzLS43LS45NC0xLjA5LTIuMDYtMS4wOS0zLjI2IDAtMi41OCAxLjc3LTQuNzQgNC4yMS01LjMzLS4xMy41MS0uMjEgMS4wMi0uMjEgMS41QzE0IDkuNjEgMTYuMzkgMTIgMTkuMzMgMTJ6bS0xNCAxLjEzYy0uNjIuNDYtLjgyLjYzLTEuMy44Ny4yNy0zLjUzIDIuMzgtNi40OCA1LjQzLTcuOTZBNy40OSA3LjQ5IDAgMCAwIDggMTAuNWMwIDEuNDIuNCAyLjc3IDEuMTMgMy45NS0uNzIuMDctMS43OS4xNS0zLjgtMS4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVZhY2NpbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEgNS41SDhWNGguNWMuNTUgMCAxLS40NSAxLTFzLS40NS0xLTEtMWgtM2MtLjU1IDAtMSAuNDUtMSAxcy40NSAxIDEgMUg2djEuNUgzYy0uNTUgMC0xIC40NS0xIDFzLjQ1IDEgMSAxVjE1YzAgMS4xLjkgMiAyIDJoMXY0bDIgMS41VjE3aDFjMS4xIDAgMi0uOSAyLTJWNy41Yy41NSAwIDEtLjQ1IDEtMXMtLjQ1LTEtMS0xek05IDlINy4yNWMtLjQxIDAtLjc1LjM0LS43NS43NXMuMzQuNzUuNzUuNzVIOVYxMkg3LjI1Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NUg5VjE1SDVWNy41aDRWOXptMTAuNSAxLjVWMTBjLjU1IDAgMS0uNDUgMS0xcy0uNDUtMS0xLTFoLTVjLS41NSAwLTEgLjQ1LTEgMXMuNDUgMSAxIDF2LjVjMCAuNS0xLjUgMS4xNi0xLjUgM1YyMGMwIDEuMS45IDIgMiAyaDRjMS4xIDAgMi0uOSAyLTJ2LTYuNWMwLTEuODQtMS41LTIuNS0xLjUtM3ptLTMgMFYxMGgxdi41YzAgMS42IDEuNSAyIDEuNSAzdi41aC00di0uNWMwLTEgMS41LTEuNCAxLjUtM3ptMi41IDVWMTdoLTR2LTEuNWg0ek0xNSAyMHYtMS41aDRWMjBoLTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVWb2xjYW5vIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTggOGgtN2wtMiA1SDZsLTQgOWgyMEwxOCA4ek03LjMgMTVoMy4wNWwuNS0xLjI2IDEuNS0zLjc0aDQuMTRsMi44NiAxMEg1LjA4bDIuMjItNXpNMTMgMWgydjRoLTJ6TTE2LjEyMSA1LjQ2OCAxOC45NSAyLjY0bDEuNDE0IDEuNDE0LTIuODI5IDIuODI4ek03LjY0IDQuMDVsMS40MTQtMS40MTQgMi44MjggMi44MjktMS40MTQgMS40MTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOCA0SDZDMy43OSA0IDIgNS43OSAyIDh2OGMwIDIuMjEgMS43OSA0IDQgNGgxMmMyLjIxIDAgNC0xLjc5IDQtNFY4YzAtMi4yMS0xLjc5LTQtNC00em0tMS44NiA5Ljc3Yy0uMjQuMi0uNTcuMjgtLjg4LjJMNC4xNSAxMS4yNUM0LjQ1IDEwLjUyIDUuMTYgMTAgNiAxMGgxMmMuNjcgMCAxLjI2LjM0IDEuNjMuODRsLTMuNDkgMi45M3pNNiA2aDEyYzEuMSAwIDIgLjkgMiAydi41NWMtLjU5LS4zNC0xLjI3LS41NS0yLS41NUg2Yy0uNzMgMC0xLjQxLjIxLTIgLjU1VjhjMC0xLjEuOS0yIDItMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdhdGVyRHJvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJjLTUuMzMgNC41NS04IDguNDgtOCAxMS44IDAgNC45OCAzLjggOC4yIDggOC4yczgtMy4yMiA4LTguMmMwLTMuMzItMi42Ny03LjI1LTgtMTEuOHptMCAxOGMtMy4zNSAwLTYtMi41Ny02LTYuMiAwLTIuMzQgMS45NS01LjQ0IDYtOS4xNCA0LjA1IDMuNyA2IDYuNzkgNiA5LjE0IDAgMy42My0yLjY1IDYuMi02IDYuMnptLTQuMTctNmMuMzcgMCAuNjcuMjYuNzQuNjIuNDEgMi4yMiAyLjI4IDIuOTggMy42NCAyLjg3LjQzLS4wMi43OS4zMi43OS43NSAwIC40LS4zMi43My0uNzIuNzUtMi4xMy4xMy00LjYyLTEuMDktNS4xOS00LjEyYS43NS43NSAwIDAgMSAuNzQtLjg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2F2aW5nSGFuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcuMDMgNC45NSAzLjQ5IDguNDljLTMuMzIgMy4zMi0zLjMyIDguNyAwIDEyLjAyczguNyAzLjMyIDEyLjAyIDBsNi4wMS02LjAxYTIuNTE3IDIuNTE3IDAgMCAwLS4zOS0zLjg2bC4zOS0uMzljLjk3LS45Ny45Ny0yLjU2IDAtMy41NC0uMTYtLjE2LS4zNS0uMy0uNTQtLjQxYTIuNDk3IDIuNDk3IDAgMCAwLTMuNzItMy4wNSAyLjUxNyAyLjUxNyAwIDAgMC0zLjg4LS40MmwtMi41MSAyLjUxYTIuNDkzIDIuNDkzIDAgMCAwLTMuODQtLjM5em0xLjQxIDEuNDJjLjItLjIuNTEtLjIuNzEgMCAuMi4yLjIuNTEgMCAuNzFsLTMuMTggMy4xOGEzIDMgMCAwIDEgMCA0LjI0bDEuNDEgMS40MWE1LjAwNCA1LjAwNCAwIDAgMCAxLjEyLTUuMzZsNi4zLTYuM2MuMi0uMi41MS0uMi43MSAwcy4yLjUxIDAgLjcxbC00LjYgNC42IDEuNDEgMS40MSA2LjAxLTYuMDFjLjItLjIuNTEtLjIuNzEgMCAuMi4yLjIuNTEgMCAuNzFsLTYuMDEgNi4wMSAxLjQxIDEuNDEgNC45NS00Ljk1Yy4yLS4yLjUxLS4yLjcxIDAgLjIuMi4yLjUxIDAgLjcxbC01LjY2IDUuNjYgMS40MSAxLjQxIDMuNTQtMy41NGMuMi0uMi41MS0uMi43MSAwIC4yLjIuMi41MSAwIC43MWwtNiA2LjAxYy0yLjU0IDIuNTQtNi42NSAyLjU0LTkuMTkgMHMtMi41NC02LjY1IDAtOS4xOWwzLjUzLTMuNTR6TTIzIDE3YzAgMy4zMS0yLjY5IDYtNiA2di0xLjVjMi40OCAwIDQuNS0yLjAyIDQuNS00LjVIMjN6TTEgN2MwLTMuMzEgMi42OS02IDYtNnYxLjVDNC41MiAyLjUgMi41IDQuNTIgMi41IDdIMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdoYXRzYXBwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkuMDUgNC45MUE5LjgxNiA5LjgxNiAwIDAgMCAxMi4wNCAyYy01LjQ2IDAtOS45MSA0LjQ1LTkuOTEgOS45MSAwIDEuNzUuNDYgMy40NSAxLjMyIDQuOTVMMi4wNSAyMmw1LjI1LTEuMzhjMS40NS43OSAzLjA4IDEuMjEgNC43NCAxLjIxIDUuNDYgMCA5LjkxLTQuNDUgOS45MS05LjkxIDAtMi42NS0xLjAzLTUuMTQtMi45LTcuMDF6bS03LjAxIDE1LjI0Yy0xLjQ4IDAtMi45My0uNC00LjItMS4xNWwtLjMtLjE4LTMuMTIuODIuODMtMy4wNC0uMi0uMzFhOC4yNjQgOC4yNjQgMCAwIDEtMS4yNi00LjM4YzAtNC41NCAzLjctOC4yNCA4LjI0LTguMjQgMi4yIDAgNC4yNy44NiA1LjgyIDIuNDJhOC4xODMgOC4xODMgMCAwIDEgMi40MSA1LjgzYy4wMiA0LjU0LTMuNjggOC4yMy04LjIyIDguMjN6bTQuNTItNi4xNmMtLjI1LS4xMi0xLjQ3LS43Mi0xLjY5LS44MS0uMjMtLjA4LS4zOS0uMTItLjU2LjEyLS4xNy4yNS0uNjQuODEtLjc4Ljk3LS4xNC4xNy0uMjkuMTktLjU0LjA2LS4yNS0uMTItMS4wNS0uMzktMS45OS0xLjIzLS43NC0uNjYtMS4yMy0xLjQ3LTEuMzgtMS43Mi0uMTQtLjI1LS4wMi0uMzguMTEtLjUxLjExLS4xMS4yNS0uMjkuMzctLjQzcy4xNy0uMjUuMjUtLjQxYy4wOC0uMTcuMDQtLjMxLS4wMi0uNDNzLS41Ni0xLjM0LS43Ni0xLjg0Yy0uMi0uNDgtLjQxLS40Mi0uNTYtLjQzaC0uNDhjLS4xNyAwLS40My4wNi0uNjYuMzEtLjIyLjI1LS44Ni44NS0uODYgMi4wNyAwIDEuMjIuODkgMi40IDEuMDEgMi41Ni4xMi4xNyAxLjc1IDIuNjcgNC4yMyAzLjc0LjU5LjI2IDEuMDUuNDEgMS40MS41Mi41OS4xOSAxLjEzLjE2IDEuNTYuMS40OC0uMDcgMS40Ny0uNiAxLjY3LTEuMTguMjEtLjU4LjIxLTEuMDcuMTQtMS4xOHMtLjIyLS4xNi0uNDctLjI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lV2hhdHNob3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExLjU3IDEzLjE2Yy0xLjM2LjI4LTIuMTcgMS4xNi0yLjE3IDIuNDEgMCAxLjM0IDEuMTEgMi40MiAyLjQ5IDIuNDIgMi4wNSAwIDMuNzEtMS42NiAzLjcxLTMuNzEgMC0xLjA3LS4xNS0yLjEyLS40Ni0zLjEyLS43OSAxLjA3LTIuMiAxLjcyLTMuNTcgMnpNMTMuNS42N3MuNzQgMi42NS43NCA0LjhjMCAyLjA2LTEuMzUgMy43My0zLjQxIDMuNzMtMi4wNyAwLTMuNjMtMS42Ny0zLjYzLTMuNzNsLjAzLS4zNkM1LjIxIDcuNTEgNCAxMC42MiA0IDE0YzAgNC40MiAzLjU4IDggOCA4czgtMy41OCA4LThDMjAgOC42MSAxNy40MSAzLjggMTMuNS42N3pNMTIgMjBjLTMuMzEgMC02LTIuNjktNi02IDAtMS41My4zLTMuMDQuODYtNC40M2E1LjU4MiA1LjU4MiAwIDAgMCAzLjk3IDEuNjNjMi42NiAwIDQuNzUtMS44MyA1LjI4LTQuNDNBMTQuNzcgMTQuNzcgMCAwIDEgMTggMTRjMCAzLjMxLTIuNjkgNi02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXb21hbjIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMy45NCA4LjMxQzEzLjYyIDcuNTIgMTIuODUgNyAxMiA3cy0xLjYyLjUyLTEuOTQgMS4zMUw3IDE2aDMuNXY2aDN2LTZIMTdsLTMuMDYtNy42OXpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcImNpcmNsZVwiLFwiYXR0clwiOntcImN4XCI6XCIxMlwiLFwiY3lcIjpcIjRcIixcInJcIjpcIjJcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVdvbWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMuOTQgOC4zMUMxMy42MiA3LjUyIDEyLjg1IDcgMTIgN3MtMS42Mi41Mi0xLjk0IDEuMzFMNyAxNmgzdjZoNHYtNmgzbC0zLjA2LTcuNjl6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJjaXJjbGVcIixcImF0dHJcIjp7XCJjeFwiOlwiMTJcIixcImN5XCI6XCI0XCIsXCJyXCI6XCIyXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVXb3Jrc3BhY2VQcmVtaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOS42OCAxMy42OSAxMiAxMS45M2wyLjMxIDEuNzYtLjg4LTIuODVMMTUuNzUgOWgtMi44NEwxMiA2LjE5IDExLjA5IDlIOC4yNWwyLjMxIDEuODQtLjg4IDIuODV6TTIwIDEwYzAtNC40Mi0zLjU4LTgtOC04cy04IDMuNTgtOCA4YzAgMi4wMy43NiAzLjg3IDIgNS4yOFYyM2w2LTIgNiAydi03LjcyQTcuOTYgNy45NiAwIDAgMCAyMCAxMHptLTgtNmMzLjMxIDAgNiAyLjY5IDYgNnMtMi42OSA2LTYgNi02LTIuNjktNi02IDIuNjktNiA2LTZ6bTAgMTUtNCAxLjAydi0zLjFjMS4xOC42OCAyLjU0IDEuMDggNCAxLjA4czIuODItLjQgNC0xLjA4djMuMUwxMiAxOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUNoZWNrQm94T3V0bGluZUJsYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOSA1djE0SDVWNWgxNG0wLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lQ2hlY2tCb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNMTcuOTkgOWwtMS40MS0xLjQyLTYuNTkgNi41OS0yLjU4LTIuNTctMS40MiAxLjQxIDQgMy45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZUluZGV0ZXJtaW5hdGVDaGVja0JveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDVWNWgxNHYxNHpNNyAxMWgxMHYySDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVSYWRpb0J1dHRvbkNoZWNrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTAgMThjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4elwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwiY2lyY2xlXCIsXCJhdHRyXCI6e1wiY3hcIjpcIjEyXCIsXCJjeVwiOlwiMTJcIixcInJcIjpcIjVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVJhZGlvQnV0dG9uVW5jaGVja2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMFYwelwifSxcImNoaWxkXCI6W119LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0wIDE4Yy00LjQyIDAtOC0zLjU4LTgtOHMzLjU4LTggOC04IDggMy41OCA4IDgtMy41OCA4LTggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJCb3JkZXJQdXJwbGU1MDAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDkuMjQtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNGwtMy43NiAyLjI3IDEtNC4yOC0zLjMyLTIuODggNC4zOC0uMzhMMTIgNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJCb3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI0IDI0XCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZmlsbFwiOlwibm9uZVwiLFwiZFwiOlwiTTAgMGgyNHYyNEgwVjB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwibTIyIDkuMjQtNy4xOS0uNjJMMTIgMiA5LjE5IDguNjMgMiA5LjI0bDUuNDYgNC43M0w1LjgyIDIxIDEyIDE3LjI3IDE4LjE4IDIxbC0xLjYzLTcuMDNMMjIgOS4yNHpNMTIgMTUuNGwtMy43NiAyLjI3IDEtNC4yOC0zLjMyLTIuODggNC4zOC0uMzhMMTIgNi4xbDEuNzEgNC4wNCA0LjM4LjM4LTMuMzIgMi44OCAxIDQuMjhMMTIgMTUuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVN0YXJIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIixcImRcIjpcIk0wIDBoMjR2MjRIMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40VjYuMWwxLjcxIDQuMDQgNC4zOC4zOC0zLjMyIDIuODggMSA0LjI4TDEyIDE1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFyT3V0bGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJtMjIgOS4yNC03LjE5LS42MkwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjcgMTguMTggMjFsLTEuNjMtNy4wM0wyMiA5LjI0ek0xMiAxNS40bC0zLjc2IDIuMjcgMS00LjI4LTMuMzItMi44OCA0LjM4LS4zOEwxMiA2LjFsMS43MSA0LjA0IDQuMzguMzgtMy4zMiAyLjg4IDEgNC4yOEwxMiAxNS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gTWRPdXRsaW5lU3RhclB1cnBsZTUwMCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTcuMjcgMTguMTggMjFsLTEuNjQtNy4wM0wyMiA5LjI0bC03LjE5LS42MUwxMiAyIDkuMTkgOC42MyAyIDkuMjRsNS40NiA0LjczTDUuODIgMjEgMTIgMTcuMjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVTdGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNCAyNFwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwiZ1wiLFwiYXR0clwiOntcImZpbGxcIjpcIm5vbmVcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfV19LHtcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMiAxNy4yNyAxOC4xOCAyMWwtMS42NC03LjAzTDIyIDkuMjRsLTcuMTktLjYxTDEyIDIgOS4xOSA4LjYzIDIgOS4yNGw1LjQ2IDQuNzNMNS44MiAyMSAxMiAxNy4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIE1kT3V0bGluZVRvZ2dsZU9mZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDBWMHpcIn0sXCJjaGlsZFwiOltdfSx7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcgNkg3Yy0zLjMxIDAtNiAyLjY5LTYgNnMyLjY5IDYgNiA2aDEwYzMuMzEgMCA2LTIuNjkgNi02cy0yLjY5LTYtNi02em0wIDEwSDdjLTIuMjEgMC00LTEuNzktNC00czEuNzktNCA0LTRoMTBjMi4yMSAwIDQgMS43OSA0IDRzLTEuNzkgNC00IDR6TTcgOWMtMS42NiAwLTMgMS4zNC0zIDNzMS4zNCAzIDMgMyAzLTEuMzQgMy0zLTEuMzQtMy0zLTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBNZE91dGxpbmVUb2dnbGVPbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjQgMjRcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJmaWxsXCI6XCJub25lXCIsXCJkXCI6XCJNMCAwaDI0djI0SDB6XCJ9LFwiY2hpbGRcIjpbXX0se1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3IDZIN2MtMy4zMSAwLTYgMi42OS02IDZzMi42OSA2IDYgNmgxMGMzLjMxIDAgNi0yLjY5IDYtNnMtMi42OS02LTYtNnptMCAxMEg3Yy0yLjIxIDAtNC0xLjc5LTQtNHMxLjc5LTQgNC00aDEwYzIuMjEgMCA0IDEuNzkgNCA0cy0xLjc5IDQtNCA0em0wLTdjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDMgMy0xLjM0IDMtMy0xLjM0LTMtMy0zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1kQ2xvc2UsIE1kSG9tZSB9IGZyb20gJ3JlYWN0LWljb25zL21kJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlRHJhd2VyQ29udGV4dCB9IGZyb20gJy4vRHJhd2VyQ29udGV4dC5tanMnO1xuXG5jb25zdCBEcmF3ZXJIZWFkZXIgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjbG9zZUljb246IENsb3NlSWNvbiA9IE1kQ2xvc2UsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB0aXRsZSxcbiAgdGl0bGVJY29uOiBUaXRsZUljb24gPSBNZEhvbWUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgY29uc3QgeyBpZDogbWFpbkRpdklkLCBpc09wZW4sIG9uQ2xvc2UsIHRoZW1lOiByb290VGhlbWUgfSA9IHVzZURyYXdlckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmhlYWRlciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWUsIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiaDVcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmlubmVyLnRpdGxlVGV4dCwgaWQ6IG1haW5EaXZJZCwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goVGl0bGVJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pbm5lci50aXRsZUljb24gfSksXG4gICAgICB0aXRsZVxuICAgIF0gfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJidXR0b25cIiwgeyBvbkNsaWNrOiBvbkNsb3NlLCBcImRhdGEtdGVzdGlkXCI6IFwiY2xvc2UtZHJhd2VyXCIsIGNsYXNzTmFtZTogdGhlbWUuaW5uZXIuY2xvc2VCdXR0b24sIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KENsb3NlSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaW5uZXIuY2xvc2VJY29uIH0pLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IFwic3Itb25seVwiLCBjaGlsZHJlbjogXCJDbG9zZSBtZW51XCIgfSlcbiAgICBdIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5jb2xsYXBzZWRbaXNPcGVuID8gXCJvblwiIDogXCJvZmZcIl0sIGlkOiBgZmxvd2JpdGUtZHJhd2VyLWhlYWRlci0ke2lkfWAsIGNoaWxkcmVuIH0pXG4gIF0gfSk7XG59O1xuRHJhd2VySGVhZGVyLmRpc3BsYXlOYW1lID0gXCJEcmF3ZXIuSGVhZGVyXCI7XG5cbmV4cG9ydCB7IERyYXdlckhlYWRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJhd2VySGVhZGVyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZURyYXdlckNvbnRleHQgfSBmcm9tICcuL0RyYXdlckNvbnRleHQubWpzJztcblxuY29uc3QgRHJhd2VySXRlbXMgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZURyYXdlckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLml0ZW1zLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWRyYXdlci1pdGVtc1wiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbkRyYXdlckl0ZW1zLmRpc3BsYXlOYW1lID0gXCJEcmF3ZXIuSXRlbXNcIjtcblxuZXhwb3J0IHsgRHJhd2VySXRlbXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyYXdlckl0ZW1zLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUlkLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBEcmF3ZXJDb250ZXh0IH0gZnJvbSAnLi9EcmF3ZXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBEcmF3ZXJIZWFkZXIgfSBmcm9tICcuL0RyYXdlckhlYWRlci5tanMnO1xuaW1wb3J0IHsgRHJhd2VySXRlbXMgfSBmcm9tICcuL0RyYXdlckl0ZW1zLm1qcyc7XG5cbmNvbnN0IERyYXdlckNvbXBvbmVudCA9ICh7XG4gIGJhY2tkcm9wID0gdHJ1ZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZWRnZSA9IGZhbHNlLFxuICBwb3NpdGlvbiA9IFwibGVmdFwiLFxuICBvbkNsb3NlLFxuICBvcGVuOiBpc09wZW4gPSBmYWxzZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5kcmF3ZXIsIGN1c3RvbVRoZW1lKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVFc2NhcGVLZXkgPSAoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIgJiYgaXNPcGVuICYmIG9uQ2xvc2UpIHtcbiAgICAgICAgb25DbG9zZSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlRXNjYXBlS2V5KTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlRXNjYXBlS2V5KTtcbiAgfSwgW29uQ2xvc2UsIGlzT3Blbl0pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRHJhd2VyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgb25DbG9zZSwgaXNPcGVuLCBpZCB9LCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImRpdlwiLFxuICAgICAge1xuICAgICAgICBcImFyaWEtbW9kYWxcIjogdHJ1ZSxcbiAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IGBkcmF3ZXItZGlhbG9nLSR7aWR9YCxcbiAgICAgICAgcm9sZTogXCJkaWFsb2dcIixcbiAgICAgICAgdGFiSW5kZXg6IC0xLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZHJhd2VyXCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICB0aGVtZS5yb290LmJhc2UsXG4gICAgICAgICAgdGhlbWUucm9vdC5wb3NpdGlvbltwb3NpdGlvbl1baXNPcGVuID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgZWRnZSAmJiAhaXNPcGVuICYmIHRoZW1lLnJvb3QuZWRnZSxcbiAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgKSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICB9XG4gICAgKSxcbiAgICBpc09wZW4gJiYgYmFja2Ryb3AgJiYgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IG9uQ2xpY2s6ICgpID0+IG9uQ2xvc2UoKSwgY2xhc3NOYW1lOiB0aGVtZS5yb290LmJhY2tkcm9wIH0pXG4gIF0gfSk7XG59O1xuRHJhd2VyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJEcmF3ZXJcIjtcbmNvbnN0IERyYXdlciA9IE9iamVjdC5hc3NpZ24oRHJhd2VyQ29tcG9uZW50LCB7XG4gIEhlYWRlcjogRHJhd2VySGVhZGVyLFxuICBJdGVtczogRHJhd2VySXRlbXNcbn0pO1xuXG5leHBvcnQgeyBEcmF3ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyYXdlci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBEcm9wZG93bkNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VEcm9wZG93bkNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KERyb3Bkb3duQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZURyb3Bkb3duQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIERyb3Bkb3duQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IERyb3Bkb3duQ29udGV4dCwgdXNlRHJvcGRvd25Db250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IHVzZURyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd25Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IERyb3Bkb3duRGl2aWRlciA9ICh7IGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lIH0gPSB1c2VEcm9wZG93bkNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBjdXN0b21UaGVtZS5kaXZpZGVyID8/IHJvb3RUaGVtZS5mbG9hdGluZy5kaXZpZGVyO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMgfSk7XG59O1xuXG5leHBvcnQgeyBEcm9wZG93bkRpdmlkZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURyb3Bkb3duRGl2aWRlci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBGcmFnbWVudCwganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IHVzZURyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd25Db250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpdmlkZXIgfSBmcm9tICcuL0Ryb3Bkb3duRGl2aWRlci5tanMnO1xuXG5jb25zdCBEcm9wZG93bkhlYWRlciA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSB9ID0gdXNlRHJvcGRvd25Db250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gY3VzdG9tVGhlbWUuaGVhZGVyID8/IHJvb3RUaGVtZS5mbG9hdGluZy5oZWFkZXI7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbiB9KSxcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KERyb3Bkb3duRGl2aWRlciwge30pXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBEcm9wZG93bkhlYWRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RHJvcGRvd25IZWFkZXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlTGlzdEl0ZW0sIHVzZU1lcmdlUmVmcyB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgQnV0dG9uQmFzZSB9IGZyb20gJy4uL0J1dHRvbi9CdXR0b25CYXNlLm1qcyc7XG5pbXBvcnQgeyB1c2VEcm9wZG93bkNvbnRleHQgfSBmcm9tICcuL0Ryb3Bkb3duQ29udGV4dC5tanMnO1xuXG5jb25zdCBEcm9wZG93bkl0ZW0gPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBpY29uOiBJY29uLCBvbkNsaWNrLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyByZWY6IGxpc3RJdGVtUmVmLCBpbmRleCB9ID0gdXNlTGlzdEl0ZW0oeyBsYWJlbDogdHlwZW9mIGNoaWxkcmVuID09PSBcInN0cmluZ1wiID8gY2hpbGRyZW4gOiB2b2lkIDAgfSk7XG4gICAgY29uc3QgcmVmID0gdXNlTWVyZ2VSZWZzKFtmb3J3YXJkZWRSZWYsIGxpc3RJdGVtUmVmXSk7XG4gICAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBhY3RpdmVJbmRleCwgZGlzbWlzc09uQ2xpY2ssIGdldEl0ZW1Qcm9wcywgaGFuZGxlU2VsZWN0IH0gPSB1c2VEcm9wZG93bkNvbnRleHQoKTtcbiAgICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBpbmRleDtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuZmxvYXRpbmcuaXRlbSwgY3VzdG9tVGhlbWUpO1xuICAgIGNvbnN0IHRoZWlyUHJvcHMgPSBwcm9wcztcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImxpXCIsIHsgcm9sZTogXCJtZW51aXRlbVwiLCBjbGFzc05hbWU6IHRoZW1lLmNvbnRhaW5lciwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgQnV0dG9uQmFzZSxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4udGhlaXJQcm9wcyxcbiAgICAgICAgLi4uZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNsaWNrPy4oKTtcbiAgICAgICAgICAgIGRpc21pc3NPbkNsaWNrICYmIGhhbmRsZVNlbGVjdChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWJJbmRleDogaXNBY3RpdmUgPyAwIDogLTEsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2xhc3NOYW1lOiB0aGVtZS5pY29uIH0pLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApIH0pO1xuICB9XG4pO1xuRHJvcGRvd25JdGVtLmRpc3BsYXlOYW1lID0gXCJEcm9wZG93bkl0ZW1cIjtcblxuZXhwb3J0IHsgRHJvcGRvd25JdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bkl0ZW0ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVR5cGVhaGVhZCwgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nTGlzdCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlRWZmZWN0LCBjbG9uZUVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIaU91dGxpbmVDaGV2cm9uRG93biwgSGlPdXRsaW5lQ2hldnJvblVwLCBIaU91dGxpbmVDaGV2cm9uUmlnaHQsIEhpT3V0bGluZUNoZXZyb25MZWZ0IH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlQmFzZUZMb2F0aW5nLCB1c2VGbG9hdGluZ0ludGVyYWN0aW9ucyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZS1mbG9hdGluZy5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uL0J1dHRvbi5tanMnO1xuaW1wb3J0ICcuLi9CdXR0b24vQnV0dG9uR3JvdXAubWpzJztcbmltcG9ydCB7IERyb3Bkb3duQ29udGV4dCB9IGZyb20gJy4vRHJvcGRvd25Db250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpdmlkZXIgfSBmcm9tICcuL0Ryb3Bkb3duRGl2aWRlci5tanMnO1xuaW1wb3J0IHsgRHJvcGRvd25IZWFkZXIgfSBmcm9tICcuL0Ryb3Bkb3duSGVhZGVyLm1qcyc7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW0gfSBmcm9tICcuL0Ryb3Bkb3duSXRlbS5tanMnO1xuXG5jb25zdCBpY29ucyA9IHtcbiAgdG9wOiBIaU91dGxpbmVDaGV2cm9uVXAsXG4gIHJpZ2h0OiBIaU91dGxpbmVDaGV2cm9uUmlnaHQsXG4gIGJvdHRvbTogSGlPdXRsaW5lQ2hldnJvbkRvd24sXG4gIGxlZnQ6IEhpT3V0bGluZUNoZXZyb25MZWZ0XG59O1xuY29uc3QgVHJpZ2dlciA9ICh7XG4gIHJlZnMsXG4gIGNoaWxkcmVuLFxuICBpbmxpbmUsXG4gIHRoZW1lLFxuICBkaXNhYmxlZCxcbiAgc2V0QnV0dG9uV2lkdGgsXG4gIGdldFJlZmVyZW5jZVByb3BzLFxuICByZW5kZXJUcmlnZ2VyLFxuICAuLi5idXR0b25Qcm9wc1xufSkgPT4ge1xuICBjb25zdCByZWYgPSByZWZzLnJlZmVyZW5jZTtcbiAgY29uc3QgYTExeVByb3BzID0gZ2V0UmVmZXJlbmNlUHJvcHMoKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVmLmN1cnJlbnQpIHtcbiAgICAgIHNldEJ1dHRvbldpZHRoPy4ocmVmLmN1cnJlbnQuY2xpZW50V2lkdGgpO1xuICAgIH1cbiAgfSwgW3JlZiwgc2V0QnV0dG9uV2lkdGhdKTtcbiAgaWYgKHJlbmRlclRyaWdnZXIpIHtcbiAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHJlbmRlclRyaWdnZXIodGhlbWUpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQodHJpZ2dlckVsZW1lbnQsIHsgcmVmOiByZWZzLnNldFJlZmVyZW5jZSwgZGlzYWJsZWQsIC4uLmExMXlQcm9wcywgLi4udHJpZ2dlckVsZW1lbnQucHJvcHMgfSk7XG4gIH1cbiAgcmV0dXJuIGlubGluZSA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJidXR0b25cIiwgeyB0eXBlOiBcImJ1dHRvblwiLCByZWY6IHJlZnMuc2V0UmVmZXJlbmNlLCBjbGFzc05hbWU6IHRoZW1lPy5pbmxpbmVXcmFwcGVyLCBkaXNhYmxlZCwgLi4uYTExeVByb3BzLCBjaGlsZHJlbiB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goQnV0dG9uLCB7IC4uLmJ1dHRvblByb3BzLCBkaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgcmVmOiByZWZzLnNldFJlZmVyZW5jZSwgLi4uYTExeVByb3BzLCBjaGlsZHJlbiB9KTtcbn07XG5jb25zdCBEcm9wZG93bkNvbXBvbmVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGRpc21pc3NPbkNsaWNrID0gdHJ1ZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIGVuYWJsZVR5cGVBaGVhZCA9IHRydWUsXG4gIHJlbmRlclRyaWdnZXIsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtidXR0b25XaWR0aCwgc2V0QnV0dG9uV2lkdGhdID0gdXNlU3RhdGUodm9pZCAwKTtcbiAgY29uc3QgZWxlbWVudHNSZWYgPSB1c2VSZWYoW10pO1xuICBjb25zdCBsYWJlbHNSZWYgPSB1c2VSZWYoW10pO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmRyb3Bkb3duLCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IHRoZWlyUHJvcHMgPSBwcm9wcztcbiAgY29uc3QgZGF0YVRlc3RJZCA9IHByb3BzW1wiZGF0YS10ZXN0aWRcIl0gfHwgXCJmbG93Yml0ZS1kcm9wZG93bi10YXJnZXRcIjtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9IHByb3BzLmlubGluZSA/IFwiYm90dG9tLXN0YXJ0XCIgOiBcImJvdHRvbVwiLFxuICAgIHRyaWdnZXIgPSBcImNsaWNrXCIsXG4gICAgbGFiZWwsXG4gICAgaW5saW5lLFxuICAgIGFycm93SWNvbiA9IHRydWUsXG4gICAgLi4uYnV0dG9uUHJvcHNcbiAgfSA9IHRoZWlyUHJvcHM7XG4gIGNvbnN0IGhhbmRsZVNlbGVjdCA9IHVzZUNhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG4gIGNvbnN0IGhhbmRsZVR5cGVhaGVhZE1hdGNoID0gdXNlQ2FsbGJhY2soXG4gICAgKGluZGV4KSA9PiB7XG4gICAgICBpZiAob3Blbikge1xuICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVTZWxlY3QoaW5kZXgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29wZW4sIGhhbmRsZVNlbGVjdF1cbiAgKTtcbiAgY29uc3QgeyBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgcmVmcyB9ID0gdXNlQmFzZUZMb2F0aW5nKHtcbiAgICBvcGVuLFxuICAgIHNldE9wZW4sXG4gICAgcGxhY2VtZW50XG4gIH0pO1xuICBjb25zdCBsaXN0TmF2ID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgIGxpc3RSZWY6IGVsZW1lbnRzUmVmLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXhcbiAgfSk7XG4gIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgbGlzdFJlZjogbGFiZWxzUmVmLFxuICAgIGFjdGl2ZUluZGV4LFxuICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgb25NYXRjaDogaGFuZGxlVHlwZWFoZWFkTWF0Y2gsXG4gICAgZW5hYmxlZDogZW5hYmxlVHlwZUFoZWFkXG4gIH0pO1xuICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUZsb2F0aW5nSW50ZXJhY3Rpb25zKHtcbiAgICBjb250ZXh0LFxuICAgIHJvbGU6IFwibWVudVwiLFxuICAgIHRyaWdnZXIsXG4gICAgaW50ZXJhY3Rpb25zOiBbbGlzdE5hdiwgdHlwZWFoZWFkXVxuICB9KTtcbiAgY29uc3QgSWNvbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IFtwXSA9IHBsYWNlbWVudC5zcGxpdChcIi1cIik7XG4gICAgcmV0dXJuIGljb25zW3BdID8/IEhpT3V0bGluZUNoZXZyb25Eb3duO1xuICB9LCBbcGxhY2VtZW50XSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhEcm9wZG93bkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgdGhlbWUsIGFjdGl2ZUluZGV4LCBkaXNtaXNzT25DbGljaywgZ2V0SXRlbVByb3BzLCBoYW5kbGVTZWxlY3QgfSwgY2hpbGRyZW46IFtcbiAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgIFRyaWdnZXIsXG4gICAgICB7XG4gICAgICAgIC4uLmJ1dHRvblByb3BzLFxuICAgICAgICByZWZzLFxuICAgICAgICBpbmxpbmUsXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IGRhdGFUZXN0SWQsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5mbG9hdGluZy50YXJnZXQsIGJ1dHRvblByb3BzLmNsYXNzTmFtZSksXG4gICAgICAgIHNldEJ1dHRvbldpZHRoLFxuICAgICAgICBnZXRSZWZlcmVuY2VQcm9wcyxcbiAgICAgICAgcmVuZGVyVHJpZ2dlcixcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICBhcnJvd0ljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IGNsYXNzTmFtZTogdGhlbWUuYXJyb3dJY29uIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApLFxuICAgIG9wZW4gJiYgLyogQF9fUFVSRV9fICovIGpzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJkaXZcIixcbiAgICAgIHtcbiAgICAgICAgcmVmOiByZWZzLnNldEZsb2F0aW5nLFxuICAgICAgICBzdHlsZTogeyAuLi5mbG9hdGluZ1N0eWxlcywgbWluV2lkdGg6IGJ1dHRvbldpZHRoIH0sXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1kcm9wZG93blwiLFxuICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogb3BlbixcbiAgICAgICAgLi4uZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUuZmxvYXRpbmcuYmFzZSxcbiAgICAgICAgICAgIHRoZW1lLmZsb2F0aW5nLmFuaW1hdGlvbixcbiAgICAgICAgICAgIFwiZHVyYXRpb24tMTAwXCIsXG4gICAgICAgICAgICAhb3BlbiAmJiB0aGVtZS5mbG9hdGluZy5oaWRkZW4sXG4gICAgICAgICAgICB0aGVtZS5mbG9hdGluZy5zdHlsZS5hdXRvLFxuICAgICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICAgKVxuICAgICAgICB9KSxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxvYXRpbmdMaXN0LCB7IGVsZW1lbnRzUmVmLCBsYWJlbHNSZWYsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwidWxcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbnRlbnQsIHRhYkluZGV4OiAtMSwgY2hpbGRyZW4gfSkgfSlcbiAgICAgIH1cbiAgICApIH0pXG4gIF0gfSk7XG59O1xuRHJvcGRvd25Db21wb25lbnQuZGlzcGxheU5hbWUgPSBcIkRyb3Bkb3duXCI7XG5Ecm9wZG93bkhlYWRlci5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd24uSGVhZGVyXCI7XG5Ecm9wZG93bkRpdmlkZXIuZGlzcGxheU5hbWUgPSBcIkRyb3Bkb3duLkRpdmlkZXJcIjtcbmNvbnN0IERyb3Bkb3duID0gT2JqZWN0LmFzc2lnbihEcm9wZG93bkNvbXBvbmVudCwge1xuICBJdGVtOiBEcm9wZG93bkl0ZW0sXG4gIEhlYWRlcjogRHJvcGRvd25IZWFkZXIsXG4gIERpdmlkZXI6IERyb3Bkb3duRGl2aWRlclxufSk7XG5cbmV4cG9ydCB7IERyb3Bkb3duIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ecm9wZG93bi5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBGcmFnbWVudCwganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEhlbHBlclRleHQgfSBmcm9tICcuLi9IZWxwZXJUZXh0L0hlbHBlclRleHQubWpzJztcblxuY29uc3QgRmlsZUlucHV0ID0gZm9yd2FyZFJlZihcbiAgKHsgY2xhc3NOYW1lLCBjb2xvciA9IFwiZ3JheVwiLCBoZWxwZXJUZXh0LCBzaXppbmcgPSBcIm1kXCIsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZpbGVJbnB1dCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJpbnB1dFwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgdGhlbWUuZmllbGQuaW5wdXQuYmFzZSxcbiAgICAgICAgICAgIHRoZW1lLmZpZWxkLmlucHV0LmNvbG9yc1tjb2xvcl0sXG4gICAgICAgICAgICB0aGVtZS5maWVsZC5pbnB1dC5zaXplc1tzaXppbmddXG4gICAgICAgICAgKSxcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICB0eXBlOiBcImZpbGVcIixcbiAgICAgICAgICByZWZcbiAgICAgICAgfVxuICAgICAgKSB9KSB9KSxcbiAgICAgIGhlbHBlclRleHQgJiYgLyogQF9fUFVSRV9fICovIGpzeChIZWxwZXJUZXh0LCB7IGNvbG9yLCBjaGlsZHJlbjogaGVscGVyVGV4dCB9KVxuICAgIF0gfSk7XG4gIH1cbik7XG5GaWxlSW5wdXQuZGlzcGxheU5hbWUgPSBcIkZpbGVJbnB1dFwiO1xuXG5leHBvcnQgeyBGaWxlSW5wdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZpbGVJbnB1dC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgRmxvYXRpbmdMYWJlbCA9IGZvcndhcmRSZWYoXG4gICh7XG4gICAgbGFiZWwsXG4gICAgaGVscGVyVGV4dCxcbiAgICBjb2xvciA9IFwiZGVmYXVsdFwiLFxuICAgIHNpemluZyA9IFwibWRcIixcbiAgICB2YXJpYW50LFxuICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gICAgY2xhc3NOYW1lLFxuICAgIC4uLnByb3BzXG4gIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHJhbmRvbUlkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZsb2F0aW5nTGFiZWwsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UoXCJyZWxhdGl2ZVwiLCB2YXJpYW50ID09PSBcInN0YW5kYXJkXCIgPyBcInotMFwiIDogXCJcIiksIGNoaWxkcmVuOiBbXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgXCJpbnB1dFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgaWQ6IHByb3BzLmlkID8gcHJvcHMuaWQgOiBcImZsb2F0aW5nTGFiZWxcIiArIHJhbmRvbUlkLFxuICAgICAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IFwib3V0bGluZWRfc3VjY2Vzc19oZWxwXCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuaW5wdXRbY29sb3JdW3ZhcmlhbnRdW3NpemluZ10sIGNsYXNzTmFtZSksXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogXCIgXCIsXG4gICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvYXRpbmctbGFiZWxcIixcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICByZWZcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgXCJsYWJlbFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGh0bWxGb3I6IHByb3BzLmlkID8gcHJvcHMuaWQgOiBcImZsb2F0aW5nTGFiZWxcIiArIHJhbmRvbUlkLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmxhYmVsW2NvbG9yXVt2YXJpYW50XVtzaXppbmddLCBjbGFzc05hbWUpLFxuICAgICAgICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICBdIH0pLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInBcIiwgeyBpZDogXCJvdXRsaW5lZF9oZWxwZXJfdGV4dFwiICsgcmFuZG9tSWQsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5oZWxwZXJUZXh0W2NvbG9yXSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IGhlbHBlclRleHQgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuRmxvYXRpbmdMYWJlbC5kaXNwbGF5TmFtZSA9IFwiRmxvYXRpbmdMYWJlbFwiO1xuXG5leHBvcnQgeyBGbG9hdGluZ0xhYmVsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GbG9hdGluZ0xhYmVsLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgRm9vdGVyQnJhbmQgPSAoe1xuICBhbHQsXG4gIGNsYXNzTmFtZSxcbiAgY2hpbGRyZW4sXG4gIGhyZWYsXG4gIG5hbWUsXG4gIHNyYyxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZm9vdGVyLmJyYW5kLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2hpbGRyZW46IGhyZWYgPyAvKiBAX19QVVJFX18gKi8ganN4cyhcImFcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLWJyYW5kXCIsIGhyZWYsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiaW1nXCIsIHsgYWx0LCBzcmMsIGNsYXNzTmFtZTogdGhlbWUuaW1nIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3Rlci1icmFuZC1zcGFuXCIsIGNsYXNzTmFtZTogdGhlbWUuc3BhbiwgY2hpbGRyZW46IG5hbWUgfSksXG4gICAgY2hpbGRyZW5cbiAgXSB9KSA6IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJpbWdcIixcbiAgICB7XG4gICAgICBhbHQsXG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLWJyYW5kXCIsXG4gICAgICBzcmMsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuaW1nLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHNcbiAgICB9XG4gICkgfSk7XG59O1xuXG5leHBvcnQgeyBGb290ZXJCcmFuZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9vdGVyQnJhbmQubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJDb3B5cmlnaHQgPSAoe1xuICBieSxcbiAgY2xhc3NOYW1lLFxuICBocmVmLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgeWVhcixcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIuY29weXJpZ2h0LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1mb290ZXItY29weXJpZ2h0XCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICBcIlxceEE5IFwiLFxuICAgIHllYXIsXG4gICAgaHJlZiA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJhXCIsIHsgaHJlZiwgY2xhc3NOYW1lOiB0aGVtZS5ocmVmLCBjaGlsZHJlbjogYnkgfSkgOiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1mb290ZXItY29weXJpZ2h0LXNwYW5cIiwgY2xhc3NOYW1lOiB0aGVtZS5zcGFuLCBjaGlsZHJlbjogYnkgfSlcbiAgXSB9KTtcbn07XG5cbmV4cG9ydCB7IEZvb3RlckNvcHlyaWdodCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9vdGVyQ29weXJpZ2h0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgRm9vdGVyRGl2aWRlciA9ICh7IGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIuZGl2aWRlciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImhyXCIsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZvb3Rlci1kaXZpZGVyXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcyB9KTtcbn07XG5cbmV4cG9ydCB7IEZvb3RlckRpdmlkZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZvb3RlckRpdmlkZXIubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJJY29uID0gKHtcbiAgYXJpYUxhYmVsLFxuICBjbGFzc05hbWUsXG4gIGhyZWYsXG4gIGljb246IEljb24sXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZvb3Rlci5pY29uLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2hpbGRyZW46IGhyZWYgPyAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiYVwiLFxuICAgIHtcbiAgICAgIFwiYXJpYS1sYWJlbFwiOiBhcmlhTGFiZWwsXG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtZm9vdGVyLWljb25cIixcbiAgICAgIGhyZWYsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjbGFzc05hbWU6IHRoZW1lLnNpemUgfSlcbiAgICB9XG4gICkgOiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3Rlci1pY29uXCIsIGNsYXNzTmFtZTogdGhlbWUuc2l6ZSwgLi4ucHJvcHMgfSkgfSk7XG59O1xuXG5leHBvcnQgeyBGb290ZXJJY29uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJJY29uLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgRm9vdGVyTGluayA9ICh7XG4gIGFzOiBDb21wb25lbnQgPSBcImFcIixcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgaHJlZixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZm9vdGVyLmdyb3VwTGluay5saW5rLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcG9uZW50LCB7IGhyZWYsIGNsYXNzTmFtZTogdGhlbWUuaHJlZiwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pIH0pO1xufTtcblxuZXhwb3J0IHsgRm9vdGVyTGluayB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Rm9vdGVyTGluay5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEZvb3RlckxpbmtHcm91cCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbCA9IGZhbHNlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5mb290ZXIuZ3JvdXBMaW5rLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwidWxcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZm9vdGVyLWdyb3VwTGlua1wiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY29sICYmIHRoZW1lLmNvbCwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgRm9vdGVyTGlua0dyb3VwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJMaW5rR3JvdXAubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBGb290ZXJUaXRsZSA9ICh7XG4gIGFzOiBDb21wb25lbnQgPSBcImgyXCIsXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHRpdGxlLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmZvb3Rlci50aXRsZSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb21wb25lbnQsIHsgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3Rlci10aXRsZVwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiB0aXRsZSB9KTtcbn07XG5cbmV4cG9ydCB7IEZvb3RlclRpdGxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXJUaXRsZS5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBGb290ZXJCcmFuZCB9IGZyb20gJy4vRm9vdGVyQnJhbmQubWpzJztcbmltcG9ydCB7IEZvb3RlckNvcHlyaWdodCB9IGZyb20gJy4vRm9vdGVyQ29weXJpZ2h0Lm1qcyc7XG5pbXBvcnQgeyBGb290ZXJEaXZpZGVyIH0gZnJvbSAnLi9Gb290ZXJEaXZpZGVyLm1qcyc7XG5pbXBvcnQgeyBGb290ZXJJY29uIH0gZnJvbSAnLi9Gb290ZXJJY29uLm1qcyc7XG5pbXBvcnQgeyBGb290ZXJMaW5rIH0gZnJvbSAnLi9Gb290ZXJMaW5rLm1qcyc7XG5pbXBvcnQgeyBGb290ZXJMaW5rR3JvdXAgfSBmcm9tICcuL0Zvb3RlckxpbmtHcm91cC5tanMnO1xuaW1wb3J0IHsgRm9vdGVyVGl0bGUgfSBmcm9tICcuL0Zvb3RlclRpdGxlLm1qcyc7XG5cbmNvbnN0IEZvb3RlckNvbXBvbmVudCA9ICh7XG4gIGJnRGFyayA9IGZhbHNlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXIgPSBmYWxzZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuZm9vdGVyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiZm9vdGVyXCIsXG4gICAge1xuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWZvb3RlclwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgYmdEYXJrICYmIHRoZW1lLnJvb3QuYmdEYXJrLCBjb250YWluZXIgJiYgdGhlbWUucm9vdC5jb250YWluZXIsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcbkZvb3RlckNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyXCI7XG5Gb290ZXJDb3B5cmlnaHQuZGlzcGxheU5hbWUgPSBcIkZvb3Rlci5Db3B5cmlnaHRcIjtcbkZvb3RlckxpbmsuZGlzcGxheU5hbWUgPSBcIkZvb3Rlci5MaW5rXCI7XG5Gb290ZXJCcmFuZC5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLkJyYW5kXCI7XG5Gb290ZXJMaW5rR3JvdXAuZGlzcGxheU5hbWUgPSBcIkZvb3Rlci5MaW5rR3JvdXBcIjtcbkZvb3Rlckljb24uZGlzcGxheU5hbWUgPSBcIkZvb3Rlci5JY29uXCI7XG5Gb290ZXJUaXRsZS5kaXNwbGF5TmFtZSA9IFwiRm9vdGVyLlRpdGxlXCI7XG5Gb290ZXJEaXZpZGVyLmRpc3BsYXlOYW1lID0gXCJGb290ZXIuRGl2aWRlclwiO1xuY29uc3QgRm9vdGVyID0gT2JqZWN0LmFzc2lnbihGb290ZXJDb21wb25lbnQsIHtcbiAgQ29weXJpZ2h0OiBGb290ZXJDb3B5cmlnaHQsXG4gIExpbms6IEZvb3RlckxpbmssXG4gIExpbmtHcm91cDogRm9vdGVyTGlua0dyb3VwLFxuICBCcmFuZDogRm9vdGVyQnJhbmQsXG4gIEljb246IEZvb3Rlckljb24sXG4gIFRpdGxlOiBGb290ZXJUaXRsZSxcbiAgRGl2aWRlcjogRm9vdGVyRGl2aWRlclxufSk7XG5cbmV4cG9ydCB7IEZvb3RlciwgRm9vdGVyQ29tcG9uZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Gb290ZXIubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZhUXVvdGVSaWdodCB9IGZyb20gJ3JlYWN0LWljb25zL2ZhNic7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IEhSSWNvbiA9IGZvcndhcmRSZWYoXG4gICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCBpY29uOiBJY29uID0gRmFRdW90ZVJpZ2h0LCBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuaHIuaWNvbiwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuYmFzZSwgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwiaHJcIixcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5ockxpbmUsIGNsYXNzTmFtZSksXG4gICAgICAgICAgcm9sZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtaHItaWNvblwiLFxuICAgICAgICAgIHJlZixcbiAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUuaWNvbi5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5pY29uLmljb24gfSkgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuXG5leHBvcnQgeyBIUkljb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhSSWNvbi5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBIUlNxdWFyZSA9IGZvcndhcmRSZWYoXG4gICh7IHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuaHIuc3F1YXJlLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcImhyXCIsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgICByb2xlOiBcInNlcGFyYXRvclwiLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtaHItc3F1YXJlXCIsXG4gICAgICAgIHJlZixcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuXG5leHBvcnQgeyBIUlNxdWFyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFJTcXVhcmUubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgSFJUZXh0ID0gZm9yd2FyZFJlZihcbiAgKHsgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIHRleHQsIGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5oci50ZXh0LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgXCJoclwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmhyTGluZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtaHItdGV4dFwiLFxuICAgICAgICAgIHJvbGU6IFwic2VwYXJhdG9yXCIsXG4gICAgICAgICAgcmVmLFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUudGV4dCwgY2hpbGRyZW46IHRleHQgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuXG5leHBvcnQgeyBIUlRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhSVGV4dC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBIUlRyaW1tZWQgPSBmb3J3YXJkUmVmKFxuICAoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmhyLnRyaW1tZWQsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiaHJcIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAgIHJvbGU6IFwic2VwYXJhdG9yXCIsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1oci10cmltbWVkXCIsXG4gICAgICAgIHJlZixcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuXG5leHBvcnQgeyBIUlRyaW1tZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUhSVHJpbW1lZC5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgSFJJY29uIH0gZnJvbSAnLi9IUkljb24ubWpzJztcbmltcG9ydCB7IEhSU3F1YXJlIH0gZnJvbSAnLi9IUlNxdWFyZS5tanMnO1xuaW1wb3J0IHsgSFJUZXh0IH0gZnJvbSAnLi9IUlRleHQubWpzJztcbmltcG9ydCB7IEhSVHJpbW1lZCB9IGZyb20gJy4vSFJUcmltbWVkLm1qcyc7XG5cbmNvbnN0IEhSQ29tcG9uZW50ID0gZm9yd2FyZFJlZigoeyB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5oci5yb290LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiaHJcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgcm9sZTogXCJzZXBhcmF0b3JcIiwgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWhyXCIsIHJlZiwgLi4ucHJvcHMgfSk7XG59KTtcbkhSQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJIUlwiO1xuSFJUcmltbWVkLmRpc3BsYXlOYW1lID0gXCJIUi5UcmltbWVkXCI7XG5IUkljb24uZGlzcGxheU5hbWUgPSBcIkhSLkljb25cIjtcbkhSVGV4dC5kaXNwbGF5TmFtZSA9IFwiSFIuVGV4dFwiO1xuSFJTcXVhcmUuZGlzcGxheU5hbWUgPSBcIkhSLlNxdWFyZVwiO1xuY29uc3QgSFIgPSBPYmplY3QuYXNzaWduKEhSQ29tcG9uZW50LCB7XG4gIFRyaW1tZWQ6IEhSVHJpbW1lZCxcbiAgSWNvbjogSFJJY29uLFxuICBUZXh0OiBIUlRleHQsXG4gIFNxdWFyZTogSFJTcXVhcmVcbn0pO1xuXG5leHBvcnQgeyBIUiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFIubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4cywganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuXG5jb25zdCBMaXN0SXRlbSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGljb246IEljb24sIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubGlzdC5pdGVtLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImxpXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLndpdGhJY29uW0ljb24gPyBcIm9uXCIgOiBcIm9mZlwiXSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuOiBbXG4gICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KEljb24sIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmljb24pIH0pLFxuICAgIGNoaWxkcmVuXG4gIF0gfSk7XG59O1xuXG5leHBvcnQgeyBMaXN0SXRlbSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGlzdEl0ZW0ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuL0xpc3RJdGVtLm1qcyc7XG5cbmNvbnN0IExpc3RDb21wb25lbnQgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB1bnN0eWxlZCxcbiAgbmVzdGVkLFxuICBvcmRlcmVkLFxuICBob3Jpem9udGFsLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5saXN0LCBjdXN0b21UaGVtZSk7XG4gIGNvbnN0IENvbXBvbmVudCA9IG9yZGVyZWQgPyBcIm9sXCIgOiBcInVsXCI7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIENvbXBvbmVudCxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIHRoZW1lLnJvb3QuYmFzZSxcbiAgICAgICAgdGhlbWUucm9vdC5vcmRlcmVkW29yZGVyZWQgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgdW5zdHlsZWQgJiYgdGhlbWUucm9vdC51bnN0eWxlZCxcbiAgICAgICAgbmVzdGVkICYmIHRoZW1lLnJvb3QubmVzdGVkLFxuICAgICAgICBob3Jpem9udGFsICYmIHRoZW1lLnJvb3QuaG9yaXpvbnRhbCxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKTtcbn07XG5MaXN0Q29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJMaXN0XCI7XG5MaXN0SXRlbS5kaXNwbGF5TmFtZSA9IFwiTGlzdC5JdGVtXCI7XG5jb25zdCBMaXN0ID0gT2JqZWN0LmFzc2lnbihMaXN0Q29tcG9uZW50LCB7IEl0ZW06IExpc3RJdGVtIH0pO1xuXG5leHBvcnQgeyBMaXN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1MaXN0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgTGlzdEdyb3VwSXRlbSA9ICh7XG4gIGFjdGl2ZTogaXNBY3RpdmUsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGhyZWYsXG4gIGljb246IEljb24sXG4gIG9uQ2xpY2ssXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBkaXNhYmxlZCxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5saXN0R3JvdXAuaXRlbSwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBpc0xpbmsgPSB0eXBlb2YgaHJlZiAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgY29uc3QgQ29tcG9uZW50ID0gaXNMaW5rID8gXCJhXCIgOiBcImJ1dHRvblwiO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImxpXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICBDb21wb25lbnQsXG4gICAge1xuICAgICAgaHJlZixcbiAgICAgIG9uQ2xpY2ssXG4gICAgICB0eXBlOiBpc0xpbmsgPyB2b2lkIDAgOiBcImJ1dHRvblwiLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgIHRoZW1lLmxpbmsuYWN0aXZlW2lzQWN0aXZlID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgIHRoZW1lLmxpbmsuZGlzYWJsZWRbZGlzYWJsZWQgPyBcIm9uXCIgOiBcIm9mZlwiXSxcbiAgICAgICAgdGhlbWUubGluay5iYXNlLFxuICAgICAgICB0aGVtZS5saW5rLmhyZWZbaXNMaW5rID8gXCJvblwiIDogXCJvZmZcIl1cbiAgICAgICksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIEljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLWxpc3QtZ3JvdXAtaXRlbS1pY29uXCIsIGNsYXNzTmFtZTogdGhlbWUubGluay5pY29uIH0pLFxuICAgICAgICBjaGlsZHJlblxuICAgICAgXVxuICAgIH1cbiAgKSB9KTtcbn07XG5cbmV4cG9ydCB7IExpc3RHcm91cEl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUxpc3RHcm91cEl0ZW0ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgTGlzdEdyb3VwSXRlbSB9IGZyb20gJy4vTGlzdEdyb3VwSXRlbS5tanMnO1xuXG5jb25zdCBMaXN0R3JvdXBDb21wb25lbnQgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLmxpc3RHcm91cCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcInVsXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcbkxpc3RHcm91cENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiTGlzdEdyb3VwXCI7XG5MaXN0R3JvdXBJdGVtLmRpc3BsYXlOYW1lID0gXCJMaXN0R3JvdXAuSXRlbVwiO1xuY29uc3QgTGlzdEdyb3VwID0gT2JqZWN0LmFzc2lnbihMaXN0R3JvdXBDb21wb25lbnQsIHtcbiAgSXRlbTogTGlzdEdyb3VwSXRlbVxufSk7XG5cbmV4cG9ydCB7IExpc3RHcm91cCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TGlzdEdyb3VwLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IE5hdmJhckNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VOYXZiYXJDb250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChOYXZiYXJDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlTmF2QmFyQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIE5hdmJhckNvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBOYXZiYXJDb250ZXh0LCB1c2VOYXZiYXJDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZiYXJDb250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZU5hdmJhckNvbnRleHQgfSBmcm9tICcuL05hdmJhckNvbnRleHQubWpzJztcblxuY29uc3QgTmF2YmFyQnJhbmQgPSAoe1xuICBhczogQ29tcG9uZW50ID0gXCJhXCIsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZU5hdmJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmJyYW5kLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbXBvbmVudCwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgTmF2YmFyQnJhbmQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hdmJhckJyYW5kLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZU5hdmJhckNvbnRleHQgfSBmcm9tICcuL05hdmJhckNvbnRleHQubWpzJztcblxuY29uc3QgTmF2YmFyQ29sbGFwc2UgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGlzT3BlbiB9ID0gdXNlTmF2YmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuY29sbGFwc2UsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtbmF2YmFyLWNvbGxhcHNlXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgdGhlbWUuaGlkZGVuWyFpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ1bFwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGlzdCwgY2hpbGRyZW4gfSlcbiAgICB9XG4gICk7XG59O1xuXG5leHBvcnQgeyBOYXZiYXJDb2xsYXBzZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TmF2YmFyQ29sbGFwc2UubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlTmF2YmFyQ29udGV4dCB9IGZyb20gJy4vTmF2YmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBOYXZiYXJMaW5rID0gKHtcbiAgYWN0aXZlLFxuICBhczogQ29tcG9uZW50ID0gXCJhXCIsXG4gIGRpc2FibGVkLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgb25DbGljayxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBzZXRJc09wZW4gfSA9IHVzZU5hdmJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmxpbmssIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHtcbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgIG9uQ2xpY2s/LihldmVudCk7XG4gIH07XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBDb21wb25lbnQsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICB0aGVtZS5iYXNlLFxuICAgICAgICBhY3RpdmUgJiYgdGhlbWUuYWN0aXZlLm9uLFxuICAgICAgICAhYWN0aXZlICYmICFkaXNhYmxlZCAmJiB0aGVtZS5hY3RpdmUub2ZmLFxuICAgICAgICB0aGVtZS5kaXNhYmxlZFtkaXNhYmxlZCA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICksXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICkgfSk7XG59O1xuXG5leHBvcnQgeyBOYXZiYXJMaW5rIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXZiYXJMaW5rLm1qcy5tYXBcbiIsIi8vIFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRFxuaW1wb3J0IHsgR2VuSWNvbiB9IGZyb20gJy4uL2xpYi9pbmRleC5tanMnO1xuZXhwb3J0IGZ1bmN0aW9uIEZhNTAwUHggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAzLjMgMzQ0LjNjLTYuNS0xNC4yLTYuOS0xOC4zIDcuNC0yMy4xIDI1LjYtOCA4IDkuMiA0My4yIDQ5LjJoLjN2LTkzLjljMS4yLTUwLjIgNDQtOTIuMiA5Ny43LTkyLjIgNTMuOSAwIDk3LjcgNDMuNSA5Ny43IDk2LjggMCA2My40LTYwLjggMTEzLjItMTI4LjUgOTMuMy0xMC41LTQuMi0yLjEtMzEuNyA4LjUtMjguNiA1MyAwIDg5LjQtMTAuMSA4OS40LTY0LjQgMC02MS03Ny4xLTg5LjYtMTE2LjktNDQuNi0yMy41IDI2LjQtMTcuNiA0Mi4xLTE3LjYgMTU3LjYgNTAuNyAzMSAxMTguMyAyMiAxNjAuNC0yMC4xIDI0LjgtMjQuOCAzOC41LTU4IDM4LjUtOTMgMC0zNS4yLTEzLjgtNjguMi0zOC44LTkzLjMtMjQuOC0yNC44LTU3LjgtMzguNS05My4zLTM4LjVzLTY4LjggMTMuOC05My41IDM4LjVjLS4zLjMtMTYgMTYuNS0yMS4yIDIzLjlsLS41LjZjLTMuMyA0LjctNi4zIDkuMS0yMC4xIDYuMS02LjktMS43LTE0LjMtNS44LTE0LjMtMTEuOFYyMGMwLTUgMy45LTEwLjUgMTAuNS0xMC41aDI0MS4zYzguMyAwIDguMyAxMS42IDguMyAxNS4xIDAgMy45IDAgMTUuMS04LjMgMTUuMUgxMzAuM3YxMzIuOWguM2MxMDQuMi0xMDkuOCAyODIuOC0zNiAyODIuOCAxMDguOSAwIDE3OC4xLTI0NC44IDIyMC4zLTMxMC4xIDYyLjh6bTYzLjMtMjYwLjhjLS41IDQuMiA0LjYgMjQuNSAxNC42IDIwLjZDMzA2IDU2LjYgMzg0IDE0NC41IDM5MC42IDE0NC41YzQuOCAwIDIyLjgtMTUuMyAxNC4zLTIyLjgtOTMuMi04OS0yMzQuNS01Ny0yMzguMy0zOC4yek0zOTMgNDE0LjdDMjgzIDUyNC42IDk0IDQ3NS41IDYxIDMxMC41YzAtMTIuMi0zMC40LTcuNC0yOC45IDMuMyAyNCAxNzMuNCAyNDYgMjU2LjkgMzgxLjYgMTIxLjMgNi45LTcuOC0xMi42LTI4LjQtMjAuNy0yMC40ek0yMTMuNiAzMDYuNmMwIDQgNC4zIDcuMyA1LjUgOC41IDMgMyA2LjEgNC40IDguNSA0LjQgMy44IDAgMi42LjIgMjIuMy0xOS41IDE5LjYgMTkuMyAxOS4xIDE5LjUgMjIuMyAxOS41IDUuNCAwIDE4LjUtMTAuNCAxMC43LTE4LjJMMjY1LjYgMjg0bDE4LjItMTguMmM2LjMtNi44LTEwLjEtMjEuOC0xNi4yLTE1LjdMMjQ5LjcgMjY4Yy0xOC42LTE4LjgtMTguNC0xOS41LTIxLjUtMTkuNS01IDAtMTggMTEuNy0xMi40IDE3LjNMMjM0IDI4NGMtMTguMSAxNy45LTIwLjQgMTkuMi0yMC40IDIyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFjY2Vzc2libGVJY29uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy45IDI1NS44TDQxMSA0MTMuMWMtMy4zIDQwLjctNjMuOSAzNS4xLTYwLjYtNC45bDEwLTEyMi41LTQxLjEgMi4zYzEwLjEgMjAuNyAxNS44IDQzLjkgMTUuOCA2OC41IDAgNDEuMi0xNi4xIDc4LjctNDIuMyAxMDYuNWwtMzkuMy0zOS4zYzU3LjktNjMuNyAxMy4xLTE2Ny4yLTc0LTE2Ny4yLTI1LjkgMC00OS41IDkuOS02Ny4yIDI2TDczIDI0My4yYzIyLTIwLjcgNTAuMS0zNS4xIDgxLjQtNDAuMmw3NS4zLTg1LjctNDIuNi0yNC44LTUxLjYgNDZjLTMwIDI2LjgtNzAuNi0xOC41LTQwLjUtNDUuNGw2OC02MC43YzkuOC04LjggMjQuMS0xMC4yIDM1LjUtMy42IDAgMCAxMzkuMyA4MC45IDEzOS41IDgxLjEgMTYuMiAxMC4xIDIwLjcgMzYgNi4xIDUyLjZMMjg1LjcgMjI5bDEwNi4xLTUuOWMxOC41LTEuMSAzMy42IDE0LjQgMzIuMSAzMi43em0tNjQuOS0xNTRjMjguMSAwIDUwLjktMjIuOCA1MC45LTUwLjlDNDA5LjkgMjIuOCAzODcuMSAwIDM1OSAwYy0yOC4xIDAtNTAuOSAyMi44LTUwLjkgNTAuOSAwIDI4LjEgMjIuOCA1MC45IDUwLjkgNTAuOXpNMTc5LjYgNDU2LjVjLTgwLjYgMC0xMjcuNC05MC42LTgyLjctMTU2LjFsLTM5LjctMzkuN0MzNi40IDI4NyAyNCAzMjAuMyAyNCAzNTYuNGMwIDEzMC43IDE1MC43IDIwMS40IDI1MS40IDEyMi41bC0zOS43LTM5LjdjLTE2IDEwLjktMzUuMyAxNy4zLTU2LjEgMTcuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWNjdXNvZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIyLjEgMjUydi0xbC01MS4yLTY1LjhzLTEyIDEuNi0yNSAxNS4xYy05IDkuMy0yNDIuMSAyMzkuMS0yNDMuNCAyNDAuOS03IDEwIDEuNiA2LjggMTUuNyAxLjcuOCAwIDExNC41LTM2LjYgMTE0LjUtMzYuNi41LS42LS4xLS4xLjYtLjYtLjQtNS4xLS44LTI2LjItMS0yNy43LS42LTUuMiAyLjItNi45IDctOC45bDkyLjYtMzMuOGMuNi0uOCA4OC41LTgxLjcgOTAuMi04My4zem0xNjAuMSAxMjAuMWMxMy4zIDE2LjEgMjAuNyAxMy4zIDMwLjggOS4zIDMuMi0xLjIgMTE1LjQtNDcuNiAxMTcuOC00OC45IDgtNC4zLTEuNy0xNi43LTcuMi0yMy40LTIuMS0yLjUtMjA1LjEtMjQ1LjYtMjA3LjItMjQ4LjMtOS43LTEyLjItMTQuMy0xMi45LTM4LjQtMTIuOC0xMC4yIDAtMTA2LjguNS0xMTYuNS42LTE5LjIuMS0zMi45LS4zLTE5LjIgMTYuOUMyNTAgNzUgNDc2LjUgMzY1LjIgNDgyLjIgMzcyLjF6bTE1Mi43IDEuNmMtMi4zLS4zLTI0LjYtNC43LTM4LTcuMiAwIDAtMTE1IDUwLjQtMTE3LjUgNTEuNi0xNiA3LjMtMjYuOS0zLjItMzYuNy0xNC42bC01Ny4xLTc0Yy01LjQtLjktNjAuNC05LjYtNjUuMy05LjMtMy4xLjItOS42LjgtMTQuNCAyLjktNC45IDIuMS0xNDUuMiA1Mi44LTE1MC4yIDU0LjctNS4xIDItMTEuNCAzLjYtMTEuMSA3LjYuMiAyLjUgMiAyLjYgNC42IDMuNSAyLjcuOCAzMDAuOSA2Ny42IDMwOCA2OS4xIDE1LjYgMy4zIDM4LjUgMTAuNSA1My42IDEuNyAyLjEtMS4yIDEyMy44LTc2LjQgMTI1LjgtNzcuOCA1LjQtNCA0LjMtNi44LTEuNy04LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFjcXVpc2l0aW9uc0luY29ycG9yYXRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTcuNDUgNDY4LjJjLTEuMi03LjctMS4zLTcuNi05LjYtNy42LTk5LjguMi0xMTEuOC0yLjQtMTEyLjctMi42LTEyLjMtMS43LTIwLjYtMTAuNS0yMS0yMy4xLS4xLTEuNi0uMi03MS42LTEtMTI5LjEtLjEtNC43IDEuNi02LjQgNS45LTcuNSAxMi41LTMgMjQuOS02LjEgMzcuMy05LjcgNC4zLTEuMyA2LjgtLjIgOC40IDMuNSA0LjUgMTAuMyA4LjggMjAuNiAxMy4yIDMwLjkgMS42IDMuNy4xIDQuNC0zLjQgNC40LTEwLS4yLTIwLS4xLTMwLjQtLjF2MjdoMTE2Yy0xLjQtOS41LTIuNy0xOC4xLTQtMjcuNS03IDAtMTMuOC40LTIwLjQtLjEtMjIuNi0xLjYtMTguMy00LjQtODQtMTU4LjYtOC44LTIwLjEtMjcuOS02Mi4xLTM2LjUtODkuMi00LjQtMTQgNS41LTI1LjQgMTguOS0yNi42IDE4LjYtMS43IDM3LjUtMS42IDU2LjItMiAyMC42LS40IDQxLjItLjQgNjEuOC0uNSAzLjEgMCA0LTEuNCA0LjMtNC4zIDEuMi05LjggMi43LTE5LjUgNC0yOS4yLjgtNS4zIDEuNi0xMC43IDIuNC0xNi4xTDIzLjc1IDBjLTMuNiAwLTUuMyAxLjEtNC42IDUuMyAyLjIgMTMuMi0uOC44IDYuNCA0NS4zIDYzLjQgMCA3MS44LjkgMTAxLjguNSAxMi4zLS4yIDM3IDMuNSAzNy43IDIyLjEuNCAxMS40LTEuMSAxMS4zLTMyLjYgODcuNC01My44IDEyOS44LTUwLjcgMTIwLjMtNjcuMyAxNjEtMS43IDQuMS0zLjYgNS4yLTcuNiA1LjItOC41LS4yLTE3LS4zLTI1LjQuMS0xLjkuMS01LjIgMS44LTUuNSAzLjItMS41IDguMS0yLjIgMTYuMy0zLjIgMjQuOWgxMTQuM3YtMjcuNmMtNi45IDAtMzMuNS40LTM1LjMtMi45IDUuMy0xMi4zIDEwLjQtMjQuNCAxNS43LTM2LjcgMTYuMyA0IDMxLjkgNy44IDQ3LjYgMTEuNyAzLjQuOSA0LjYgMyA0LjYgNi44LS4xIDQyLjkuMSA4NS45LjIgMTI4LjggMCAxMC4yLTUuNSAxOS4xLTE0LjkgMjMuMS02LjUgMi43LTMuMyAzLjQtMTIxLjQgMi40LTUuMyAwLTcuMSAyLTcuNiA2LjgtMS41IDEyLjktMi45IDI1LjktNSAzOC44LS44IDUgMS4zIDUuNyA1LjMgNS43IDE4My4yLjYtMzAuNyAwIDMzNy4xIDAtMi41LTE1LTQuNC0yOS40LTYuNi00My43em0tMTc0LjktMjA1LjdjLTEzLjMtNC4yLTI2LjYtOC4yLTM5LjktMTIuNWE0NC41MyA0NC41MyAwIDAgMS01LjgtMi45YzE3LjItNDQuMyAzNC4yLTg4LjEgNTEuMy0xMzIuMSA3LjUgMi40IDcuOS0uOCA5LjQgMCA5LjMgMjIuNSAxOC4xIDYwLjEgMjcgODIuOCA2LjYgMTYuNyAxMyAzMy41IDE5LjcgNTAuOWEzNS43OCAzNS43OCAwIDAgMS0zLjkgMi4xYy0xMy4xIDMuOS0yNi40IDcuNS0zOS40IDExLjdhMjcuNjYgMjcuNjYgMCAwIDEtMTguNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZG4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDE2Ny41bDY0LjkgOTguOEgxODMuMWw2NC45LTk4Ljh6TTQ5NiAyNTZjMCAxMzYuOS0xMTEuMSAyNDgtMjQ4IDI0OFMwIDM5Mi45IDAgMjU2IDExMS4xIDggMjQ4IDhzMjQ4IDExMS4xIDI0OCAyNDh6bS05OS44IDgyLjdMMjQ4IDExNS41IDk5LjggMzM4LjdoMzAuNGwzMy42LTUxLjdoMTY4LjZsMzMuNiA1MS43aDMwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkdmVyc2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Mi4xIDMySDI4LjdDNS44IDMyIDAgMzcuOSAwIDYwLjl2MzkwLjJDMCA0NzQuNCA1LjggNDgwIDI4LjcgNDgwaDQ1My40YzI0LjQgMCAyOS45LTUuMiAyOS45LTI5LjdWNjIuMmMwLTI0LjYtNS40LTMwLjItMjkuOS0zMC4yek0xNzguNCAyMjAuM2MtMjcuNS0yMC4yLTcyLjEtOC43LTg0LjIgMjMuNC00LjMgMTEuMS05LjMgOS41LTE3LjUgOC4zLTkuNy0xLjUtMTcuMi0zLjItMjIuNS01LjUtMjguOC0xMS40IDguNi01NS4zIDI0LjktNjQuMyA0MS4xLTIxLjQgODMuNC0yMi4yIDEyNS4zLTQuOCA0MC45IDE2LjggMzQuNSA1OS4yIDM0LjUgMTI4LjUgMi43IDI1LjgtNC4zIDU4LjMgOS4zIDg4LjggMS45IDQuNC40IDcuOS0yLjcgMTAuNy04LjQgNi43LTM5LjMgMi4yLTQ2LjYtNy40LTEuOS0yLjItMS44LTMuNi0zLjktNi4yLTMuNi0zLjktNy4zLTIuMi0xMS45IDEtNTcuNCAzNi40LTE0MC4zIDIxLjQtMTQ3LTQzLjMtMy4xLTI5LjMgMTIuNC01Ny4xIDM5LjYtNzEgMzguMi0xOS41IDExMi4yLTExLjggMTE0LTMwLjkgMS4xLTEwLjItMS45LTIwLjEtMTEuMy0yNy4zem0yODYuNyAyMjJjMCAxNS4xLTExLjEgOS45LTE3LjggOS45SDUyLjRjLTcuNCAwLTE4LjIgNC44LTE3LjgtMTAuNy40LTEzLjkgMTAuNS05LjEgMTcuMS05LjEgMTMyLjMtLjQgMjY0LjUtLjQgMzk2LjggMCA2LjggMCAxNi42LTQuNCAxNi42IDkuOXptMy44LTM0MC41djI5MWMwIDUuNy0uNyAxMy45LTguMSAxMy45LTEyLjQtLjQtMjcuNSA3LjEtMzYuMS01LjYtNS44LTguNy03LjgtNC0xMi40LTEuMi01My40IDI5LjctMTI4LjEgNy4xLTE0NC40LTg1LjItNi4xLTMzLjQtLjctNjcuMSAxNS43LTEwMCAxMS44LTIzLjkgNTYuOS03Ni4xIDEzNi4xLTMwLjV2LTcxYzAtMjYuMi0uMS0yNi4yIDI2LTI2LjIgMy4xIDAgNi42LjQgOS43IDAgMTAuMS0uOCAxMy42IDQuNCAxMy42IDE0LjMtLjEuMi0uMS4zLS4xLjV6bS01MS41IDIzMi4zYy0xOS41IDQ3LjYtNzIuOSA0My4zLTkwIDUuMi0xNS4xLTMzLjMtMTUuNS02OC4yLjQtMTAxLjUgMTYuMy0zNC4xIDU5LjctMzUuNyA4MS41LTQuOCAyMC42IDI4LjggMTQuOSA4NC42IDguMSAxMDEuMXptLTI5NC44IDM1LjNjLTcuNS0xLjMtMzMtMy4zLTMzLjctMjcuOC0uNC0xMy45IDcuOC0yMyAxOS44LTI1LjggMjQuNC01LjkgNDkuMy05LjkgNzMuNy0xNC43IDguOS0yIDcuNCA0LjQgNy44IDkuNSAxLjQgMzMtMjYuMSA1OS4yLTY3LjYgNTguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWZmaWxpYXRldGhlbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU5LjcgMjM3LjRDMTA4LjQgMzA4LjMgNDMuMSAzNDguMiAxNCAzMjYuNi0xNS4yIDMwNC45IDIuOCAyMzAgNTQuMiAxNTkuMWM1MS4zLTcwLjkgMTE2LjYtMTEwLjggMTQ1LjctODkuMiAyOS4xIDIxLjYgMTEuMSA5Ni42LTQwLjIgMTY3LjV6bTM1MS4yLTU3LjNDNDM3LjEgMzAzLjUgMzE5IDM2Ny44IDI0Ni40IDMyMy43Yy0yNS0xNS4yLTQxLjMtNDEuMi00OS03My44LTMzLjYgNjQuOC05Mi44IDExMy44LTE2NC4xIDEzMy4yIDQ5LjggNTkuMyAxMjQuMSA5Ni45IDIwNyA5Ni45IDE1MCAwIDI3MS42LTEyMy4xIDI3MS42LTI3NC45LjEtOC41LS4zLTE2LjgtMS0yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWlyYm5iIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzNzMuMTJjLTI1LjI0LTMxLjY3LTQwLjA4LTU5LjQzLTQ1LTgzLjE4LTIyLjU1LTg4IDExMi42MS04OCA5MC4wNiAwLTUuNDUgMjQuMjUtMjAuMjkgNTItNDUgODMuMTh6bTEzOC4xNSA3My4yM2MtNDIuMDYgMTguMzEtODMuNjctMTAuODgtMTE5LjMtNTAuNDcgMTAzLjktMTMwLjA3IDQ2LjExLTIwMC0xOC44NS0yMDAtNTQuOTIgMC04NS4xNiA0Ni41MS03My4yOCAxMDAuNSA2LjkzIDI5LjE5IDI1LjIzIDYyLjM5IDU0LjQzIDk5LjUtMzIuNTMgMzYuMDUtNjAuNTUgNTIuNjktODUuMTUgNTQuOTItNTAgNy40My04OS4xMS00MS4wNi03MS4zLTkxLjA5IDE1LjEtMzkuMTYgMTExLjcyLTIzMS4xOCAxMTUuODctMjQxLjU2IDE1Ljc1LTMwLjA3IDI1LjU2LTU3LjQgNTkuMzgtNTcuNCAzMi4zNCAwIDQzLjQgMjUuOTQgNjAuMzcgNTkuODcgMzYgNzAuNjIgODkuMzUgMTc3LjQ4IDExNC44NCAyMzkuMDkgMTMuMTcgMzMuMDctMS4zNyA3MS4yOS0zNy4wMSA4Ni42NHptNDctMTM2LjEyQzI4MC4yNyAzNS45MyAyNzMuMTMgMzIgMjI0IDMyYy00NS41MiAwLTY0Ljg3IDMxLjY3LTg0LjY2IDcyLjc5QzMzLjE4IDMxNy4xIDIyLjg5IDM0Ny4xOSAyMiAzNDkuODEtMy4yMiA0MTkuMTQgNDguNzQgNDgwIDExMS42MyA0ODBjMjEuNzEgMCA2MC42MS02LjA2IDExMi4zNy02Mi40IDU4LjY4IDYzLjc4IDEwMS4yNiA2Mi40IDExMi4zNyA2Mi40IDYyLjg5LjA1IDExNC44NS02MC44NiA4OS42MS0xMzAuMTkuMDItMy44OS0xNi44Mi0zOC45LTE2LjgyLTM5LjU4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbGdvbGlhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyOS4zIDE4Mi42Yy00OS4zIDAtODkuMiAzOS45LTg5LjIgODkuMiAwIDQ5LjMgMzkuOSA4OS4yIDg5LjIgODkuMnM4OS4yLTM5LjkgODkuMi04OS4yYzAtNDkuMy00MC04OS4yLTg5LjItODkuMnptNjIuNyA1Ni42bC01OC45IDMwLjZjLTEuOC45LTMuOC0uNC0zLjgtMi4zVjIwMWMwLTEuNSAxLjMtMi43IDIuNy0yLjYgMjYuMiAxIDQ4LjkgMTUuNyA2MS4xIDM3LjEuNyAxLjMuMiAzLTEuMSAzLjd6TTM4OS4xIDMySDU4LjlDMjYuNCAzMiAwIDU4LjQgMCA5MC45VjQyMWMwIDMyLjYgMjYuNCA1OSA1OC45IDU5SDM4OWMzMi42IDAgNTguOS0yNi40IDU4LjktNTguOVY5MC45QzQ0OCA1OC40IDQyMS42IDMyIDM4OS4xIDMyem0tMjAyLjYgODQuN2MwLTEwLjggOC43LTE5LjUgMTkuNS0xOS41aDQ1LjNjMTAuOCAwIDE5LjUgOC43IDE5LjUgMTkuNXYxNS40YzAgMS44LTEuNyAzLTMuMyAyLjUtMTIuMy0zLjQtMjUuMS01LjEtMzguMS01LjEtMTMuNSAwLTI2LjcgMS44LTM5LjQgNS41LTEuNy41LTMuNC0uOC0zLjQtMi41di0xNS44em0tODQuNCAzN2w5LjItOS4yYzcuNi03LjYgMTkuOS03LjYgMjcuNSAwbDcuNyA3LjdjMS4xIDEuMSAxIDMtLjMgNC02LjIgNC41LTEyLjEgOS40LTE3LjYgMTQuOS01LjQgNS40LTEwLjQgMTEuMy0xNC44IDE3LjQtMSAxLjMtMi45IDEuNS00IC4zbC03LjctNy43Yy03LjYtNy41LTcuNi0xOS44IDAtMjcuNHptMTI3LjIgMjQ0LjhjLTcwIDAtMTI2LjYtNTYuNy0xMjYuNi0xMjYuNnM1Ni43LTEyNi42IDEyNi42LTEyNi42YzcwIDAgMTI2LjYgNTYuNiAxMjYuNiAxMjYuNiAwIDY5LjgtNTYuNyAxMjYuNi0xMjYuNiAxMjYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpcGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny43NCAzMkg3MC4yNkMzMS40MSAzMiAwIDYzLjQxIDAgMTAyLjI2djMwNy40OEMwIDQ0OC41OSAzMS40MSA0ODAgNzAuMjYgNDgwaDMwNy40OGMzOC41MiAwIDY5Ljc2LTMxLjA4IDcwLjI2LTY5LjYtNDUuOTYtMjUuNjItMTEwLjU5LTYwLjM0LTE3MS42LTg4LjQ0LTMyLjA3IDQzLjk3LTg0LjE0IDgxLTE0OC42MiA4MS03MC41OSAwLTkzLjczLTQ1LjMtOTcuMDQtNzYuMzctMy45Ny0zOS4wMSAxNC44OC04MS41IDk5LjUyLTgxLjUgMzUuMzggMCA3OS4zNSAxMC4yNSAxMjcuMTMgMjQuOTYgMTYuNTMtMzAuMDkgMjYuNDUtNjAuMzQgMjYuNDUtNjAuMzRoLTE3OC4ydi0xNi43aDkyLjA4di0zMS4yNEg4OC4yOHYtMTkuMDFoMTA5LjQ0VjkyLjM0aDUwLjkydjUwLjQyaDEwOS40NHYxOS4wMUgyNDguNjN2MzEuMjRoODguNzdzLTE1LjIxIDQ2LjYyLTM4LjM1IDkwLjkyYzQ4LjkzIDE2LjcgMTAwLjAxIDM2LjA0IDE0OC42MiA1Mi43NFYxMDIuMjZDNDQ3LjgzIDYzLjU3IDQxNi40MyAzMiAzNzcuNzQgMzJ6TTQ3LjI4IDMyMi45NWMuOTkgMjAuMTcgMTAuMjUgNTMuNzMgNjkuOTMgNTMuNzMgNTIuMDcgMCA5Mi41OC0zOS42OCAxMTcuODctNzIuOS00NC42My0xOC42OC04NC40OC0zMS40MS0xMDkuNDQtMzEuNDEtNjcuNDUgMC03OS4zNSAzMy4wNi03OC4zNiA1MC41OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1hem9uUGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0IDMyNS4zYzIuMy00LjIgNS4yLTQuOSA5LjctMi41IDEwLjQgNS42IDIwLjYgMTEuNCAzMS4yIDE2LjdhNTk1Ljg4IDU5NS44OCAwIDAgMCAxMjcuNCA0Ni4zIDYxNi42MSA2MTYuNjEgMCAwIDAgNjMuMiAxMS44IDYwMy4zMyA2MDMuMzMgMCAwIDAgOTUgNS4yYzE3LjQtLjQgMzQuOC0xLjggNTIuMS0zLjhhNjAzLjY2IDYwMy42NiAwIDAgMCAxNjMuMy00Mi44YzIuOS0xLjIgNS45LTIgOS4xLTEuMiA2LjcgMS44IDkgOSA0LjEgMTMuOWE3MCA3MCAwIDAgMS05LjYgNy40Yy0zMC43IDIxLjEtNjQuMiAzNi40LTk5LjYgNDcuOWE0NzMuMzEgNDczLjMxIDAgMCAxLTc1LjEgMTcuNiA0MzEgNDMxIDAgMCAxLTUzLjIgNC44IDIxLjMgMjEuMyAwIDAgMC0yLjUuM0gzMDhhMjEuMyAyMS4zIDAgMCAwLTIuNS0uM2MtMy42LS4yLTcuMi0uMy0xMC43LS40YTQyNi4zIDQyNi4zIDAgMCAxLTUwLjQtNS4zQTQ0OC40IDQ0OC40IDAgMCAxIDE2NCA0MjBhNDQzLjMzIDQ0My4zMyAwIDAgMS0xNDUuNi04N2MtMS44LTEuNi0zLTMuOC00LjQtNS43ek0xNzIgNjUuMWwtNC4zLjZhODAuOTIgODAuOTIgMCAwIDAtMzggMTUuMWMtMi40IDEuNy00LjYgMy41LTcuMSA1LjRhNC4yOSA0LjI5IDAgMCAxLS40LTEuNGMtLjQtMi43LS44LTUuNS0xLjMtOC4yLS43LTQuNi0zLTYuNi03LjYtNi42aC0xMS41Yy02LjkgMC04LjIgMS4zLTguMiA4LjJ2MjA5LjNjMCAxIDAgMiAuMSAzIC4yIDMgMiA0LjkgNC45IDUgNyAuMSAxNC4xLjEgMjEuMSAwIDIuOSAwIDQuNy0yIDUtNSAuMS0xIC4xLTIgLjEtM3YtNzIuNGMxLjEuOSAxLjcgMS40IDIuMiAxLjkgMTcuOSAxNC45IDM4LjUgMTkuOCA2MSAxNS40IDIwLjQtNCAzNC42LTE2LjUgNDMuOC0zNC45IDctMTMuOSA5LjktMjguNyAxMC4zLTQ0LjEuNS0xNy4xLTEuMi0zMy45LTguMS00OS44LTguNS0xOS42LTIyLjYtMzIuNS00My45LTM2LjktMy4yLS43LTYuNS0xLTkuOC0xLjUtMi44LS4xLTUuNS0uMS04LjMtLjF6TTEyNC42IDEwN2EzLjQ4IDMuNDggMCAwIDEgMS43LTMuM2MxMy43LTkuNSAyOC44LTE0LjUgNDUuNi0xMy4yIDE0LjkgMS4xIDI3LjEgOC40IDMzLjUgMjUuOSAzLjkgMTAuNyA0LjkgMjEuOCA0LjkgMzMgMCAxMC40LS44IDIwLjYtNCAzMC42LTYuOCAyMS4zLTIyLjQgMjkuNC00Mi42IDI4LjUtMTQtLjYtMjYuMi02LTM3LjQtMTMuOWEzLjU3IDMuNTcgMCAwIDEtMS43LTMuM2MuMS0xNC4xIDAtMjguMSAwLTQyLjJzLjEtMjggMC00Mi4xem0yMDUuNy00MS45Yy0xIC4xLTIgLjMtMi45LjRhMTQ4IDE0OCAwIDAgMC0yOC45IDQuMWMtNi4xIDEuNi0xMiAzLjgtMTcuOSA1LjgtMy42IDEuMi01LjQgMy44LTUuMyA3LjcuMSAzLjMtLjEgNi42IDAgOS45LjEgNC44IDIuMSA2LjEgNi44IDQuOSA3LjgtMiAxNS42LTQuMiAyMy41LTUuNyAxMi4zLTIuMyAyNC43LTMuMyAzNy4yLTEuNCA2LjUgMSAxMi42IDIuOSAxNi44IDguNCAzLjcgNC44IDUuMSAxMC41IDUuMyAxNi40LjMgOC4zLjIgMTYuNi4zIDI0LjlhNy44NCA3Ljg0IDAgMCAxLS4yIDEuNGMtLjUtLjEtLjkgMC0xLjMtLjFhMTgwLjU2IDE4MC41NiAwIDAgMC0zMi00LjljLTExLjMtLjYtMjIuNS4xLTMzLjMgMy45LTEyLjkgNC41LTIzLjMgMTIuMy0yOS40IDI0LjktNC43IDkuOC01LjQgMjAuMi0zLjkgMzAuNyAyIDE0IDkgMjQuOCAyMS40IDMxLjcgMTEuOSA2LjYgMjQuOCA3LjQgMzcuOSA1LjQgMTUuMS0yLjMgMjguNS04LjcgNDAuMy0xOC40YTcuMzYgNy4zNiAwIDAgMSAxLjYtMS4xYy42IDMuOCAxLjEgNy40IDEuOCAxMSAuNiAzLjEgMi41IDUuMSA1LjQgNS4yIDUuNC4xIDEwLjkuMSAxNi4zIDBhNC44NCA0Ljg0IDAgMCAwIDQuOC00LjcgMjYuMiAyNi4yIDAgMCAwIC4xLTIuOHYtMTA2YTgwIDgwIDAgMCAwLS45LTEyLjljLTEuOS0xMi45LTcuNC0yMy41LTE5LTMwLjQtNi43LTQtMTQuMS02LTIxLjgtNy4xLTMuNi0uNS03LjItLjgtMTAuOC0xLjMtMy45LjEtNy45LjEtMTEuOS4xem0zNSAxMjcuN2EzLjMzIDMuMzMgMCAwIDEtMS41IDNjLTExLjIgOC4xLTIzLjUgMTMuNS0zNy40IDE0LjktNS43LjYtMTEuNC40LTE2LjgtMS44YTIwLjA4IDIwLjA4IDAgMCAxLTEyLjQtMTMuMyAzMi45IDMyLjkgMCAwIDEtLjEtMTkuNGMyLjUtOC4zIDguNC0xMyAxNi40LTE1LjZhNjEuMzMgNjEuMzMgMCAwIDEgMjQuOC0yLjJjOC40LjcgMTYuNiAyLjMgMjUgMy40IDEuNi4yIDIuMSAxIDIuMSAyLjYtLjEgNC44IDAgOS41IDAgMTQuM3MtLjIgOS40LS4xIDE0LjF6bTI1OS45IDEyOS40Yy0xLTUtNC44LTYuOS05LjEtOC4zYTg4LjQyIDg4LjQyIDAgMCAwLTIxLTMuOSAxNDcuMzIgMTQ3LjMyIDAgMCAwLTM5LjIgMS45Yy0xNC4zIDIuNy0yNy45IDcuMy00MCAxNS42YTEzLjc1IDEzLjc1IDAgMCAwLTMuNyAzLjUgNS4xMSA1LjExIDAgMCAwLS41IDRjLjQgMS41IDIuMSAxLjkgMy42IDEuOGExNi4yIDE2LjIgMCAwIDAgMi4yLS4xYzcuOC0uOCAxNS41LTEuNyAyMy4zLTIuNSAxMS40LTEuMSAyMi45LTEuOCAzNC4zLS45YTcxLjY0IDcxLjY0IDAgMCAxIDE0LjQgMi43YzUuMSAxLjQgNy40IDUuMiA3LjYgMTAuNC40IDgtMS40IDE1LjctMy41IDIzLjMtNC4xIDE1LjQtMTAgMzAuMy0xNS44IDQ1LjFhMTcuNiAxNy42IDAgMCAwLTEgM2MtLjUgMi45IDEuMiA0LjggNC4xIDQuMWExMC41NiAxMC41NiAwIDAgMCA0LjgtMi41IDE0NS45MSAxNDUuOTEgMCAwIDAgMTIuNy0xMy40YzEyLjgtMTYuNCAyMC4zLTM1LjMgMjQuNy01NS42LjgtMy42IDEuNC03LjMgMi4xLTEwLjl2LTE3LjN6TTQ5My4xIDE5OXEtMTkuMzUtNTMuNTUtMzguNy0xMDcuMmMtMi01LjctNC4yLTExLjMtNi4zLTE2LjktMS4xLTIuOS0zLjItNC44LTYuNC00LjgtNy42LS4xLTE1LjItLjItMjIuOS0uMS0yLjUgMC0zLjcgMi0zLjIgNC41YTQzLjEgNDMuMSAwIDAgMCAxLjkgNi4xcTI5LjQgNzIuNzUgNTkuMSAxNDUuNWMxLjcgNC4xIDIuMSA3LjYuMiAxMS44LTMuMyA3LjMtNS45IDE1LTkuMyAyMi4zLTMgNi41LTggMTEuNC0xNS4yIDEzLjNhNDIuMTMgNDIuMTMgMCAwIDEtMTUuNCAxLjFjLTIuNS0uMi01LS44LTcuNS0xLTMuNC0uMi01LjEgMS4zLTUuMiA0LjhxLS4xNSA1IDAgOS45Yy4xIDUuNSAyIDggNy40IDguOWExMDguMTggMTA4LjE4IDAgMCAwIDE2LjkgMmMxNy4xLjQgMzAuNy02LjUgMzkuNS0yMS40YTEzMS42MyAxMzEuNjMgMCAwIDAgOS4yLTE4LjRxMzUuNTUtODkuNyA3MC42LTE3OS42YTI2LjYyIDI2LjYyIDAgMCAwIDEuNi01LjVjLjQtMi44LS45LTQuNC0zLjctNC40LTYuNi0uMS0xMy4zIDAtMTkuOSAwYTcuNTQgNy41NCAwIDAgMC03LjcgNS4yYy0uNSAxLjQtMS4xIDIuNy0xLjYgNC4xbC0zNC44IDEwMGMtMi41IDcuMi01LjEgMTQuNS03LjcgMjIuMi0uNC0xLjEtLjYtMS43LS45LTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1hem9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ny4yIDE2Mi43Yy00OC43IDEuOC0xNjkuNSAxNS41LTE2OS41IDExNy41IDAgMTA5LjUgMTM4LjMgMTE0IDE4My41IDQzLjIgNi41IDEwLjIgMzUuNCAzNy41IDQ1LjMgNDYuOGw1Ni44LTU2UzM0MSAyODguOSAzNDEgMjYxLjRWMTE0LjNDMzQxIDg5IDMxNi41IDMyIDIyOC43IDMyIDE0MC43IDMyIDk0IDg3IDk0IDEzNi4zbDczLjUgNi44YzE2LjMtNDkuNSA1NC4yLTQ5LjUgNTQuMi00OS41IDQwLjctLjEgMzUuNSAyOS44IDM1LjUgNjkuMXptMCA4Ni44YzAgODAtODQuMiA2OC04NC4yIDE3LjIgMC00Ny4yIDUwLjUtNTYuNyA4NC4yLTU3Ljh2NDAuNnptMTM2IDE2My41Yy03LjcgMTAtNzAgNjctMTc0LjUgNjdTMzQuMiA0MDguNSA5LjcgMzc5Yy02LjgtNy43IDEtMTEuMyA1LjUtOC4zQzg4LjUgNDE1LjIgMjAzIDQ4OC41IDM4Ny43IDQwMWM3LjUtMy43IDEzLjMgMiA1LjUgMTJ6bTM5LjggMi4yYy02LjUgMTUuOC0xNiAyNi44LTIxLjIgMzEtNS41IDQuNS05LjUgMi43LTYuNS0zLjhzMTkuMy00Ni41IDEyLjctNTVjLTYuNS04LjMtMzctNC4zLTQ4LTMuMi0xMC44IDEtMTMgMi0xNC0uMy0yLjMtNS43IDIxLjctMTUuNSAzNy41LTE3LjUgMTUuNy0xLjggNDEtLjggNDYgNS43IDMuNyA1LjEgMCAyNy4xLTYuNSA0My4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbWlsaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQwLjEgMzJjLTYxLjkgMC0xMzEuNSAxNi45LTE4NC4yIDU1LjQtNS4xIDMuMS05LjEgOS4yLTcuMiAxOS40IDEuMSA1LjEgNS4xIDI3LjQgMTAuMiAzOS42IDQuMSAxMC4yIDE0LjIgMTAuMiAyMC4zIDYuMSAzMi41LTIyLjMgOTYuNS00Ny43IDE1Mi4zLTQ3LjcgNTcuOSAwIDU4LjkgMjguNCA1OC45IDczLjF2MzguNUMyMDMgMjI3LjcgNzguMiAyNTEgNDYuNyAyNjQuMiAxMS4yIDI4MC41IDE2LjMgMzU3LjcgMTYuMyAzNzZzMTUuMiAxMDQgMTI0LjkgMTA0YzQ3LjggMCAxMTMuNy0yMC43IDE1My4zLTQyLjF2MjUuNGMwIDMgMi4xIDguMiA2LjEgOS4xIDMuMSAxIDUwLjcgMiA1OS45IDJzNjIuNS4zIDY2LjUtLjdjNC4xLTEgNS4xLTYuMSA1LjEtOS4xVjE2OGMtLjEtODAuMy01Ny45LTEzNi0xOTItMTM2em01MC4yIDM0OGMtMjEuNCAxMy4yLTQ4LjcgMjQuNC03OS4xIDI0LjQtNTIuOCAwLTU4LjktMzMuNS01OS00NC43IDAtMTIuMi0zLTQyLjcgMTguMy01Mi45IDI0LjMtMTMuMiA3NS4xLTI5LjQgMTE5LjgtMzMuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5kcm9pZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjAuNTUsMzAxLjkzYTI0LDI0LDAsMSwxLDI0LTI0LDI0LDI0LDAsMCwxLTI0LDI0bS0yNjUuMSwwYTI0LDI0LDAsMSwxLDI0LTI0LDI0LDI0LDAsMCwxLTI0LDI0bTI3My43LTE0NC40OCw0Ny45NC04M2ExMCwxMCwwLDEsMC0xNy4yNy0xMGgwbC00OC41NCw4NC4wN2EzMDEuMjUsMzAxLjI1LDAsMCwwLTI0Ni41NiwwTDExNi4xOCw2NC40NWExMCwxMCwwLDEsMC0xNy4yNywxMGgwbDQ3Ljk0LDgzQzY0LjUzLDIwMi4yMiw4LjI0LDI4NS41NSwwLDM4NEg1NzZjLTguMjQtOTguNDUtNjQuNTQtMTgxLjc4LTE0Ni44NS0yMjYuNTVcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nZWxsaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0Ny4xIDIxNS40YzExLjctMzIuNiA0NS40LTEyNi45IDQ1LjQtMTU3LjEgMC0yNi42LTE1LjctNDguOS00My43LTQ4LjktNDQuNiAwLTg0LjYgMTMxLjctOTcuMSAxNjMuMUMyNDIgMTQ0IDE5Ni42IDAgMTU2LjYgMGMtMzEuMSAwLTQ1LjcgMjIuOS00NS43IDUxLjcgMCAzNS4zIDM0LjIgMTI2LjggNDYuNiAxNjItNi4zLTIuMy0xMy4xLTQuMy0yMC00LjMtMjMuNCAwLTQ4LjMgMjkuMS00OC4zIDUyLjYgMCA4LjkgNC45IDIxLjQgOCAyOS43LTM2LjkgMTAtNTEuMSAzNC42LTUxLjEgNzEuN0M0NiA0MzUuNiAxMTQuNCA1MTIgMjEwLjYgNTEyYzExOCAwIDE5MS40LTg4LjYgMTkxLjQtMjAyLjkgMC00My4xLTYuOS04Mi01NC45LTkzLjd6TTMxMS43IDEwOGM0LTEyLjMgMjEuMS02NC4zIDM3LjEtNjQuMyA4LjYgMCAxMC45IDguOSAxMC45IDE2IDAgMTkuMS0zOC42IDEyNC42LTQ3LjEgMTQ4bC0zNC02IDMzLjEtOTMuN3pNMTQyLjMgNDguM2MwLTExLjkgMTQuNS00NS43IDQ2LjMgNDcuMWwzNC42IDEwMC4zYy0xNS42LTEuMy0yNy43LTMtMzUuNCAxLjQtMTAuOS0yOC44LTQ1LjUtMTE5LjctNDUuNS0xNDguOHpNMTQwIDI0NGMyOS4zIDAgNjcuMSA5NC42IDY3LjEgMTA3LjQgMCA1LjEtNC45IDExLjQtMTAuNiAxMS40LTIwLjkgMC03Ni45LTc2LjktNzYuOS05Ny43LjEtNy43IDEyLjctMjEuMSAyMC40LTIxLjF6bTE4NC4zIDE4Ni4zYy0yOS4xIDMyLTY2LjMgNDguNi0xMDkuNyA0OC42LTU5LjQgMC0xMDYuMy0zMi42LTEyOC45LTg4LjMtMTcuMS00My40IDMuOC02OC4zIDIwLjYtNjguMyAxMS40IDAgNTQuMyA2MC4zIDU0LjMgNzMuMSAwIDQuOS03LjcgOC4zLTExLjcgOC4zLTE2LjEgMC0yMi40LTE1LjUtNTEuMS01MS40LTI5LjcgMjkuNyAyMC41IDg2LjkgNTguMyA4Ni45IDI2LjEgMCA0My4xLTI0LjIgMzgtNDIgMy43IDAgOC4zLjMgMTEuNy0uNiAxLjEgMjcuMSA5LjEgNTkuNCA0MS43IDYxLjcgMC0uOSAyLTcuMSAyLTcuNCAwLTE3LjQtMTAuNi0zMi42LTEwLjYtNTAuMyAwLTI4LjMgMjEuNy01NS43IDQzLjctNzEuNyA4LTYgMTcuNy05LjcgMjcuMS0xMy4xIDkuNy0zLjcgMjAtOCAyNy40LTE1LjQtMS4xLTExLjItNS43LTIxLjEtMTYuOS0yMS4xLTI3LjcgMC0xMjAuNiA0LTEyMC42LTM5LjcgMC02LjcuMS0xMy4xIDE3LjQtMTMuMSAzMi4zIDAgMTE0LjMgOCAxMzguMyAyOS4xIDE4LjEgMTYuMSAyNC4zIDExMy4yLTMxIDE3NC43em0tOTguNi0xMjZjOS43IDMuMSAxOS43IDQgMjkuNyA2LTcuNCA1LjQtMTQgMTItMjAuMyAxOS4xLTIuOC04LjUtNi4yLTE2LjgtOS40LTI1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ3J5Y3JlYXRpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQwIDIzOC4ybC0zLjIgMjguMi0zNC41IDIuMy0yIDE4LjEgMzQuNS0yLjMtMy4yIDI4LjItMzQuNCAyLjItMi4zIDIwLjEgMzQuNC0yLjItMyAyNi4xLTY0LjcgNC4xIDEyLjctMTEzLjJMNTI3IDM2NS4ybC0zMS45IDItMjMuOC0xMTcuOCAzMC4zLTIgMTMuNiA3OS40IDMxLjctODIuNCA5My4xLTYuMnpNNDI2LjggMzcxLjVsMjguMy0xLjhMNDY4IDI0OS42bC0yOC40IDEuOS0xMi44IDEyMHpNMTYyIDM4OC4xbC0xOS40LTM2LTMuNSAzNy40LTI4LjIgMS43IDIuNy0yOS4xYy0xMSAxOC0zMiAzNC4zLTU2LjkgMzUuOEMyMy45IDM5OS45LTMgMzc3IC4zIDMzOS43YzIuNi0yOS4zIDI2LjctNjIuOCA2Ny41LTY1LjQgMzcuNy0yLjQgNDcuNiAyMy4yIDUxLjMgMjguOGwyLjgtMzAuOCAzOC45LTIuNWMyMC4xLTEuMyAzOC43IDMuNyA0Mi41IDIzLjdsMi42LTI2LjYgNjQuOC00LjItMi43IDI3LjktMzYuNCAyLjQtMS43IDE3LjkgMzYuNC0yLjMtMi43IDI3LjktMzYuNCAyLjMtMS45IDE5LjkgMzYuMy0yLjMtMi4xIDIwLjggNTUtMTE3LjIgMjMuOC0xLjZMMzcwLjQgMzY5bDguOS04NS42LTIyLjMgMS40IDIuOS0yNy45IDc1LTQuOS0zIDI4LTI0LjMgMS42LTkuNyA5MS45LTU4IDMuNy00LjMtMTUuNi0zOS40IDIuNS04IDE2LjMtMTI2LjIgNy43em0tNDQuMy03MC4ybC0yNi40IDEuN0M4NC42IDMwNy4yIDc2LjkgMzAzIDY1IDMwMy44Yy0xOSAxLjItMzMuMyAxNy41LTM0LjYgMzMuMy0xLjQgMTYgNy4zIDMyLjUgMjguNyAzMS4yIDEyLjgtLjggMjEuMy04LjYgMjguOS0xOC45bDI3LTEuNyAyLjctMjkuOHptNTYuMS03LjdjMS4yLTEyLjktNy42LTEzLjYtMjYuMS0xMi40bC0yLjcgMjguNWMxNC4yLS45IDI3LjUtMi4xIDI4LjgtMTYuMXptMjEuMSA3MC44bDUuOC02MGMtNSAxMy41LTE0LjcgMjEuMS0yNy45IDI2LjZsMjIuMSAzMy40em0xMzUuNC00NWwtNy45LTM3LjgtMTUuOCAzOS4zIDIzLjctMS41em0tMTcwLjEtNzQuNmwtNC4zLTE3LjUtMzkuNiAyLjYtOC4xIDE4LjItMzEuOSAyLjEgNTctMTIxLjkgMjMuOS0xLjYgMzAuNyAxMDIgOS45LTEwNC43IDI3LTEuOCAzNy44IDYzLjYgNi41LTY2LjYgMjguNS0xLjktNCA0MS4yYzcuNC0xMy41IDIyLjktNDQuNyA2My42LTQ3LjUgNDAuNS0yLjggNTIuNCAyOS4zIDUzLjQgMzAuM2wzLjMtMzIgMzkuMy0yLjdjMTIuNy0uOSAyNy44LjMgMzYuMyA5LjdsLTQuNC0xMS45IDMyLjItMi4yIDEyLjkgNDMuMiAyMy00NS43IDMxLTIuMi00My42IDc4LjQtNC44IDQ0LjMtMjguNCAxLjkgNC44LTQ0LjMtMTUuOC00M2MxIDIyLjMtOS4yIDQwLjEtMzIgNDkuNmwyNS4yIDM4LjgtMzYuNCAyLjQtMTkuMi0zNi44LTQgMzguMy0yOC40IDEuOSAzLjMtMzEuNWMtNi43IDkuMy0xOS43IDM1LjQtNTkuNiAzOC0yNi4yIDEuNy00NS42LTEwLjMtNTUuNC0zOS4ybC00IDQwLjMtMjUgMS42LTM3LjYtNjMuMy02LjMgNjYuMi01Ni44IDMuN3ptMjc2LjYtODIuMWMxMC4yLS43IDE3LjUtMi4xIDIxLjYtNC4zIDQuNS0yLjQgNy02LjQgNy42LTEyLjEuNi01LjMtLjYtOC44LTMuNC0xMC40LTMuNi0yLjEtMTAuNi0yLjgtMjIuOS0ybC0yLjkgMjguOHpNMzI3LjcgMjE0YzUuNiA1LjkgMTIuNyA4LjUgMjEuMyA3LjkgNC43LS4zIDkuMS0xLjggMTMuMy00LjEgNS41LTMgMTAuNi04IDE1LjEtMTQuM2wtMzQuMiAyLjMgMi40LTIzLjkgNjMuMS00LjMgMS4yLTEyLTMxLjIgMi4xYy00LjEtMy43LTcuOC02LjYtMTEuMS04LjEtNC0xLjctOC4xLTIuOC0xMi4yLTIuNS04IC41LTE1LjMgMy42LTIyIDkuMi03LjcgNi40LTEyIDE0LjUtMTIuOSAyNC40LTEuMSA5LjYgMS40IDE3LjMgNy4yIDIzLjN6bS0yMDEuMyA4LjJsMjMuOC0xLjYtOC4zLTM3LjYtMTUuNSAzOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmd1bGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4NS43IDI2OC4xaDc2LjJsLTM4LjEtOTEuNi0zOC4xIDkxLjZ6TTIyMy44IDMyTDE2IDEwNi40bDMxLjggMjc1LjcgMTc2IDk3LjkgMTc2LTk3LjkgMzEuOC0yNzUuN3pNMzU0IDM3My44aC00OC42bC0yNi4yLTY1LjRIMTY4LjZsLTI2LjIgNjUuNEg5My43TDIyMy44IDgxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFwcFN0b3JlSW9zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTEyNyAzODQuNWMtNS41IDkuNi0xNy44IDEyLjgtMjcuMyA3LjMtOS42LTUuNS0xMi44LTE3LjgtNy4zLTI3LjNsMTQuMy0yNC43YzE2LjEtNC45IDI5LjMtMS4xIDM5LjYgMTEuNEwxMjcgMzg0LjV6bTEzOC45LTUzLjlIODRjLTExIDAtMjAtOS0yMC0yMHM5LTIwIDIwLTIwaDUxbDY1LjQtMTEzLjItMjAuNS0zNS40Yy01LjUtOS42LTIuMi0yMS44IDcuMy0yNy4zIDkuNi01LjUgMjEuOC0yLjIgMjcuMyA3LjNsOC45IDE1LjQgOC45LTE1LjRjNS41LTkuNiAxNy44LTEyLjggMjcuMy03LjMgOS42IDUuNSAxMi44IDE3LjggNy4zIDI3LjNsLTg1LjggMTQ4LjZoNjIuMWMyMC4yIDAgMzEuNSAyMy43IDIyLjcgNDB6bTk4LjEgMGgtMjlsMTkuNiAzMy45YzUuNSA5LjYgMi4yIDIxLjgtNy4zIDI3LjMtOS42IDUuNS0yMS44IDIuMi0yNy4zLTcuMy0zMi45LTU2LjktNTcuNS05OS43LTc0LTEyOC4xLTE2LjctMjktNC44LTU4IDcuMS02Ny44IDEzLjEgMjIuNyAzMi43IDU2LjcgNTguOSAxMDJoNTJjMTEgMCAyMCA5IDIwIDIwIDAgMTEuMS05IDIwLTIwIDIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuOSAxMjAuOWw5LjEtMTUuN2M1LjYtOS44IDE4LjEtMTMuMSAyNy45LTcuNSA5LjggNS42IDEzLjEgMTguMSA3LjUgMjcuOWwtODcuNSAxNTEuNWg2My4zYzIwLjUgMCAzMiAyNC4xIDIzLjEgNDAuOEgxMTMuOGMtMTEuMyAwLTIwLjQtOS4xLTIwLjQtMjAuNCAwLTExLjMgOS4xLTIwLjQgMjAuNC0yMC40aDUybDY2LjYtMTE1LjQtMjAuOC0zNi4xYy01LjYtOS44LTIuMy0yMi4yIDcuNS0yNy45IDkuOC01LjYgMjIuMi0yLjMgMjcuOSA3LjVsOC45IDE1Ljd6bS03OC43IDIxOGwtMTkuNiAzNGMtNS42IDkuOC0xOC4xIDEzLjEtMjcuOSA3LjUtOS44LTUuNi0xMy4xLTE4LjEtNy41LTI3LjlsMTQuNi0yNS4yYzE2LjQtNS4xIDI5LjgtMS4yIDQwLjQgMTEuNnptMTY4LjktNjEuN2g1My4xYzExLjMgMCAyMC40IDkuMSAyMC40IDIwLjQgMCAxMS4zLTkuMSAyMC40LTIwLjQgMjAuNGgtMjkuNWwxOS45IDM0LjVjNS42IDkuOCAyLjMgMjIuMi03LjUgMjcuOS05LjggNS42LTIyLjIgMi4zLTI3LjktNy41LTMzLjUtNTguMS01OC43LTEwMS42LTc1LjQtMTMwLjYtMTcuMS0yOS41LTQuOS01OS4xIDcuMi02OS4xIDEzLjQgMjMgMzMuNCA1Ny43IDYwLjEgMTA0ek0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0yMTYgMjQ4YzAgMTE4LjctOTYuMSAyMTYtMjE2IDIxNi0xMTguNyAwLTIxNi05Ni4xLTIxNi0yMTYgMC0xMTguNyA5Ni4xLTIxNiAyMTYtMjE2IDExOC43IDAgMjE2IDk2LjEgMjE2IDIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIuMSAyMzkuMWMyMi4yIDAgMjkgMi44IDMzLjUgMTQuNmguOHYtMjIuOWMwLTExLjMtNC44LTE1LjQtMTcuOS0xNS40LTExLjMgMC0xNC40IDIuNS0xNS4xIDEyLjhINC44Yy4zLTEzLjkgMS41LTE5LjEgNS44LTI0LjRDMTcuOSAxOTUgMjkuNSAxOTIgNTYuNyAxOTJjMzMgMCA0Ny4xIDUgNTMuOSAxOC45IDIgNC4zIDQgMTUuNiA0IDIzLjd2NzYuM0g3Ni4zbDEuMy0xOS4xaC0xYy01LjMgMTUuNi0xMy42IDIwLjQtMzUuNSAyMC40LTMwLjMgMC00MS4xLTEwLjEtNDEuMS0zNy4zIDAtMjUuMiAxMi4zLTM1LjggNDIuMS0zNS44em0xNy4xIDQ4LjFjMTMuMSAwIDE2LjktMyAxNi45LTEzLjQgMC05LjEtNC4zLTExLjYtMTkuNi0xMS42LTEzLjEgMC0xNy45IDMtMTcuOSAxMi4xLS4xIDEwLjQgMy43IDEyLjkgMjAuNiAxMi45em03Ny44LTk0LjloMzguM2wtMS41IDIwLjZoLjhjOS4xLTE3LjEgMTUuOS0yMC45IDM3LjUtMjAuOSAxNC40IDAgMjQuNyAzIDMxLjUgOS4xIDkuOCA4LjYgMTIuOCAyMC40IDEyLjggNDguMSAwIDMwLTMgNDMuMS0xMi4xIDUyLjktNi44IDcuMy0xNi40IDEwLjEtMzMuMiAxMC4xLTIwLjQgMC0yOS4yLTUuNS0zMy44LTIxLjJoLS44djcwLjNIMTM3di0xNjl6bTgwLjkgNjAuN2MwLTI3LjUtMy4zLTMyLjUtMjAuNy0zMi41LTE2LjkgMC0yMC43IDUtMjAuNyAyOC43IDAgMjggMy41IDMzLjUgMjEuMiAzMy41IDE2LjQgMCAyMC4yLTUuNiAyMC4yLTI5Ljd6bTU3LjktNjAuN2gzOC4zbC0xLjUgMjAuNmguOGM5LjEtMTcuMSAxNS45LTIwLjkgMzcuNS0yMC45IDE0LjQgMCAyNC43IDMgMzEuNSA5LjEgOS44IDguNiAxMi44IDIwLjQgMTIuOCA0OC4xIDAgMzAtMyA0My4xLTEyLjEgNTIuOS02LjggNy4zLTE2LjQgMTAuMS0zMy4zIDEwLjEtMjAuNCAwLTI5LjItNS41LTMzLjgtMjEuMmgtLjh2NzAuM2gtMzkuNXYtMTY5em04MC45IDYwLjdjMC0yNy41LTMuMy0zMi41LTIwLjctMzIuNS0xNi45IDAtMjAuNyA1LTIwLjcgMjguNyAwIDI4IDMuNSAzMy41IDIxLjIgMzMuNSAxNi40IDAgMjAuMi01LjYgMjAuMi0yOS43em01My44LTMuOGMwLTI1LjQgMy4zLTM3LjggMTIuMy00NS44IDguOC04LjEgMjIuMi0xMS4zIDQ1LjEtMTEuMyA0Mi44IDAgNTUuNyAxMi44IDU1LjcgNTUuN3YxMS4xaC03NS4zYy0uMyAyLS4zIDQtLjMgNC44IDAgMTYuOSA0LjUgMjEuOSAyMC4xIDIxLjkgMTMuOSAwIDE3LjktMyAxNy45LTEzLjloMzcuNXYyLjNjMCA5LjgtMi41IDE4LjktNi44IDI0LjctNy4zIDkuOC0xOS42IDEzLjYtNDQuMyAxMy42LTI3LjUgMC00MS42LTMuMy01MC42LTEyLjMtOC41LTguNS0xMS4zLTIxLjMtMTEuMy01MC44em03Ni40LTExLjZjLS4zLTEuOC0uMy0zLjMtLjMtMy44IDAtMTIuMy0zLjMtMTQuNi0xOS42LTE0LjYtMTQuNCAwLTE3LjEgMy0xOC4xIDE1LjFsLS4zIDMuM2gzOC4zem01NS42LTQ1LjNoMzguM2wtMS44IDE5LjloLjdjNi44LTE0LjkgMTQuNC0yMC4yIDI5LjctMjAuMiAxMC44IDAgMTkuMSAzLjMgMjMuNCA5LjMgNS4zIDcuMyA2LjggMTQuNCA2LjggMzQgMCAxLjUgMCA1IC4yIDkuM2gtMzVjLjMtMS44LjMtMy4zLjMtNCAwLTE1LjQtMi0xOS40LTEwLjMtMTkuNC02LjMgMC0xMC44IDMuMy0xMy4xIDkuMy0xIDMtMSA0LjMtMSAxMi4zdjY4aC0zOC4zVjE5Mi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTYuOSAxNTguNWMtNy41IDguOS0xOS41IDE1LjktMzEuNSAxNC45LTEuNS0xMiA0LjQtMjQuOCAxMS4zLTMyLjYgNy41LTkuMSAyMC42LTE1LjYgMzEuMy0xNi4xIDEuMiAxMi40LTMuNyAyNC43LTExLjEgMzMuOG0xMC45IDE3LjJjLTE3LjQtMS0zMi4zIDkuOS00MC41IDkuOS04LjQgMC0yMS05LjQtMzQuOC05LjEtMTcuOS4zLTM0LjUgMTAuNC00My42IDI2LjUtMTguOCAzMi4zLTQuOSA4MCAxMy4zIDEwNi4zIDguOSAxMyAxOS41IDI3LjMgMzMuNSAyNi44IDEzLjMtLjUgMTguNS04LjYgMzQuNS04LjYgMTYuMSAwIDIwLjggOC42IDM0LjggOC40IDE0LjUtLjMgMjMuNi0xMyAzMi41LTI2IDEwLjEtMTQuOCAxNC4zLTI5LjEgMTQuNS0yOS45LS4zLS4zLTI4LTEwLjktMjguMy00Mi45LS4zLTI2LjggMjEuOS0zOS41IDIyLjktNDAuMy0xMi41LTE4LjYtMzItMjAuNi0zOC44LTIxLjFtMTAwLjQtMzYuMnYxOTQuOWgzMC4zdi02Ni42aDQxLjljMzguMyAwIDY1LjEtMjYuMyA2NS4xLTY0LjNzLTI2LjQtNjQtNjQuMS02NGgtNzMuMnptMzAuMyAyNS41aDM0LjljMjYuMyAwIDQxLjMgMTQgNDEuMyAzOC42cy0xNSAzOC44LTQxLjQgMzguOGgtMzQuOFYxNjV6bTE2Mi4yIDE3MC45YzE5IDAgMzYuNi05LjYgNDQuNi0yNC45aC42djIzLjRoMjh2LTk3YzAtMjguMS0yMi41LTQ2LjMtNTcuMS00Ni4zLTMyLjEgMC01NS45IDE4LjQtNTYuOCA0My42aDI3LjNjMi4zLTEyIDEzLjQtMTkuOSAyOC42LTE5LjkgMTguNSAwIDI4LjkgOC42IDI4LjkgMjQuNXYxMC44bC0zNy44IDIuM2MtMzUuMSAyLjEtNTQuMSAxNi41LTU0LjEgNDEuNS4xIDI1LjIgMTkuNyA0MiA0Ny44IDQyem04LjItMjMuMWMtMTYuMSAwLTI2LjQtNy44LTI2LjQtMTkuNiAwLTEyLjMgOS45LTE5LjQgMjguOC0yMC41bDMzLjYtMi4xdjExYzAgMTguMi0xNS41IDMxLjItMzYgMzEuMnptMTAyLjUgNzQuNmMyOS41IDAgNDMuNC0xMS4zIDU1LjUtNDUuNEw2NDAgMTkzaC0zMC44bC0zNS42IDExNS4xaC0uNkw1MzcuNCAxOTNoLTMxLjZMNTU3IDMzNC45bC0yLjggOC42Yy00LjYgMTQuNi0xMi4xIDIwLjMtMjUuNSAyMC4zLTIuNCAwLTctLjMtOC45LS41djIzLjRjMS44LjQgOS4zLjcgMTEuNi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcHBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNyAyNjguN2MtLjItMzYuNyAxNi40LTY0LjQgNTAtODQuOC0xOC44LTI2LjktNDcuMi00MS43LTg0LjctNDQuNi0zNS41LTIuOC03NC4zIDIwLjctODguNSAyMC43LTE1IDAtNDkuNC0xOS43LTc2LjQtMTkuN0M2My4zIDE0MS4yIDQgMTg0LjggNCAyNzMuNXEwIDM5LjMgMTQuNCA4MS4yYzEyLjggMzYuNyA1OSAxMjYuNyAxMDcuMiAxMjUuMiAyNS4yLS42IDQzLTE3LjkgNzUuOC0xNy45IDMxLjggMCA0OC4zIDE3LjkgNzYuNCAxNy45IDQ4LjYtLjcgOTAuNC04Mi41IDEwMi42LTExOS4zLTY1LjItMzAuNy02MS43LTkwLTYxLjctOTEuOXptLTU2LjYtMTY0LjJjMjcuMy0zMi40IDI0LjgtNjEuOSAyNC03Mi41LTI0LjEgMS40LTUyIDE2LjQtNjcuOSAzNC45LTE3LjUgMTkuOC0yNy44IDQ0LjMtMjUuNiA3MS45IDI2LjEgMiA0OS45LTExLjQgNjkuNS0zNC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnRzdGF0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIgMzc3LjRsNDMgNzQuM0E1MS4zNSA1MS4zNSAwIDAgMCA5MC45IDQ4MGgyODUuNGwtNTkuMi0xMDIuNnpNNTAxLjggMzUwTDMzNS42IDU5LjNBNTEuMzggNTEuMzggMCAwIDAgMjkwLjIgMzJoLTg4LjRsMjU3LjMgNDQ3LjYgNDAuNy03MC41YzEuOS0zLjIgMjEtMjkuNyAyLTU5LjF6TTI3NSAzMDQuNWwtMTE1LjUtMjAwTDQ0IDMwNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBc3ltbWV0cmlrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxNy41IDMwOS4yYzM4LjgtNDAgNTguMS04MCA1OC41LTExNi4xLjgtNjUuNS01OS40LTExOC4yLTE2OS40LTEzNUMyNzcuOSAzOC40IDExOC4xIDczLjYgMCAxNDAuNSA1MiAxMTQgMTEwLjYgOTIuMyAxNzAuNyA4Mi4zYzc0LjUtMjAuNSAxNTMtMjUuNCAyMjEuMy0xNC44QzU0NC41IDkxLjMgNTg4LjggMTk1IDQ5MC44IDI5OS4yYy0xMC4yIDEwLjgtMjIgMjEuMS0zNSAzMC42TDMwNC45IDEwMy40IDExNC43IDM4OC45Yy02NS42LTI5LjQtNzYuNS05MC4yLTE5LjEtMTUxLjIgMjAuOC0yMi4yIDQ4LjMtNDEuOSA3OS41LTU4LjEgMjAtMTIuMiAzOS43LTIyLjYgNjItMzAuNy02NS4xIDIwLjMtMTIyLjcgNTIuOS0xNjEuNiA5Mi45LTI3LjcgMjguNi00MS40IDU3LjEtNDEuNyA4Mi45LS41IDM1LjEgMjMuNCA2NS4xIDY4LjQgODNsLTM0LjUgNTEuN2gxMDEuNmwyMi0zNC40YzIyLjIgMSA0NS4zIDAgNjguNi0yLjdsLTIyLjggMzcuMWgxMzUuNUwzNDAgNDA2LjNjMTguNi01LjMgMzYuOS0xMS41IDU0LjUtMTguN2w0NS45IDcxLjhINTQyTDQ2OC42IDM0OWMxOC41LTEyLjEgMzUtMjUuNSA0OC45LTM5Ljh6bS0xODcuNiA4MC41bC0yNS00MC42LTMyLjcgNTMuM2MtMjMuNCAzLjUtNDYuNyA1LjEtNjkuMiA0LjRsMTAxLjktMTU5LjMgNzguNyAxMjNjLTE3LjIgNy40LTM1LjMgMTMuOS01My43IDE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0bGFzc2lhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTIuMiAyMzYuNGMtNy43LTguMi0xOS43LTcuNy0yNC44IDIuOEwxLjYgNDkwLjJjLTUgMTAgMi40IDIxLjcgMTMuNCAyMS43aDE3NWM1LjguMSAxMS0zLjIgMTMuNC04LjQgMzcuOS03Ny44IDE1LjEtMTk2LjMtNTEuMi0yNjcuMXpNMjQ0LjQgOC4xYy0xMjIuMyAxOTMuNC04LjUgMzQ4LjYgNjUgNDk1LjUgMi41IDUuMSA3LjcgOC40IDEzLjQgOC40SDQ5N2MxMS4yIDAgMTguNC0xMS44IDEzLjQtMjEuNyAwIDAtMjM0LjUtNDcwLjYtMjQwLjQtNDgyLjMtNS4zLTEwLjYtMTguOC0xMC44LTI1LjYuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXVkaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMTk5Ljl2NTRsLTMyMCAyMDBMMCAyNTR2LTU0bDMyMCAyMDAgMzIwLTIwMC4xem0tMTk0LjUgNzJsNDcuMS0yOS40Yy0zNy4yLTU1LjgtMTAwLjctOTIuNi0xNzIuNy05Mi42LTcyIDAtMTM1LjUgMzYuNy0xNzIuNiA5Mi40aC4zYzIuNS0yLjMgNS4xLTQuNSA3LjctNi43IDg5LjctNzQuNCAyMTkuNC01OC4xIDI5MC4yIDM2LjN6bS0yMjAuMSAxOC44YzE2LjktMTEuOSAzNi41LTE4LjcgNTcuNC0xOC43IDM0LjQgMCA2NS4yIDE4LjQgODYuNCA0Ny42bDQ1LjQtMjguNGMtMjAuOS0yOS45LTU1LjYtNDkuNS05NC44LTQ5LjUtMzguOSAwLTczLjQgMTkuNC05NC40IDQ5ek0xMDMuNiAxNjEuMWMxMzEuOC0xMDQuMyAzMTguMi03Ni40IDQxNy41IDYyLjFsLjcgMSA0OC44LTMwLjRDNTE3LjEgMTEyLjEgNDI0LjggNTguMSAzMTkuOSA1OC4xYy0xMDMuNSAwLTE5Ni42IDUzLjUtMjUwLjUgMTM1LjYgOS45LTEwLjUgMjIuNy0yMy41IDM0LjItMzIuNnptNDY3IDMyLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF1dG9wcmVmaXhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguNCAxNmwtMTYxIDQ4MGg3Ny41bDI1LjQtODEuNGgxMTkuNUw0MDUgNDk2aDc3LjVMMzE4LjQgMTZ6bS00MC4zIDM0MS45bDQxLjItMTMwLjRoMS41bDQwLjkgMTMwLjRoLTgzLjZ6TTY0MCA0MDVsLTEwLTMxLjRMNDYyLjEgMzU4bDE5LjQgNTYuNUw2NDAgNDA1em0tNDYyLjEtNDdMMTAgMzczLjcgMCA0MDVsMTU4LjUgOS40IDE5LjQtNTYuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXZpYW5leCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTMuMSAzMmgtMzEyYy0zOC45IDAtNzYuMiAzMS4yLTgzLjMgNjkuN0wxLjIgNDEwLjNDLTUuOSA0NDguOCAxOS45IDQ4MCA1OC45IDQ4MGgzMTJjMzguOSAwIDc2LjItMzEuMiA4My4zLTY5LjdsNTYuNy0zMDguNWM3LTM4LjYtMTguOC02OS44LTU3LjgtNjkuOHptLTU4LjIgMzQ3LjNsLTMyIDEzLjUtMTE1LjQtMTEwYy0xNC43IDEwLTI5LjIgMTkuNS00MS43IDI3LjFsMjIuMSA2NC4yLTE3LjkgMTIuNy00MC42LTYxLTUyLjQtNDguMSAxNS43LTE1LjQgNTggMzEuMWM5LjMtMTAuNSAyMC44LTIyLjYgMzIuOC0zNC45TDIwMyAyMjguOWwtNjguOC05OS44IDE4LjgtMjguOSA4LjktNC44TDI2NSAyMDcuOGw0LjkgNC41YzE5LjQtMTguOCAzMy44LTMyLjQgMzMuOC0zMi40IDcuNy02LjUgMjEuNS0yLjkgMzAuNyA3LjkgOSAxMC41IDEwLjYgMjQuNyAyLjcgMzEuMy0xLjggMS4zLTE1LjUgMTEuNC0zNS4zIDI1LjZsNC41IDcuMyA5NC45IDExOS40LTYuMyA3Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF2aWF0byAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDcuMiAyODMuNWwtMTktNDEuOEgzNi4xbC0xOSA0MS44SDBsNjIuMi0xMzEuNCA2Mi4yIDEzMS40aC0xNy4yem0tNDUtOTguMWwtMTkuNiA0Mi41aDM5LjJsLTE5LjYtNDIuNXptMTEyLjcgMTAyLjRsLTYyLjItMTMxLjRoMTcuMWw0NS4xIDk2IDQ1LjEtOTZoMTdsLTYyLjEgMTMxLjR6bTgwLjYtNC4zVjE1Ni40SDI3MXYxMjcuMWgtMTUuNXptMjA5LjEtMTE1LjZ2MTE1LjZoLTE3LjNWMTY3LjloLTQxLjJ2LTExLjVoOTkuNnYxMS41aC00MS4xek02NDAgMjE4LjhjMCA5LjItMS43IDE3LjgtNS4xIDI1LjgtMy40IDgtOC4yIDE1LjEtMTQuMiAyMS4xLTYgNi0xMy4xIDEwLjgtMjEuMSAxNC4yLTggMy40LTE2LjYgNS4xLTI1LjggNS4xcy0xNy44LTEuNy0yNS44LTUuMWMtOC0zLjQtMTUuMS04LjItMjEuMS0xNC4yLTYtNi0xMC44LTEzLTE0LjItMjEuMS0zLjQtOC01LjEtMTYuNi01LjEtMjUuOHMxLjctMTcuOCA1LjEtMjUuOGMzLjQtOCA4LjItMTUuMSAxNC4yLTIxLjEgNi02IDEzLTguNCAyMS4xLTExLjkgOC0zLjQgMTYuNi01LjEgMjUuOC01LjFzMTcuOCAxLjcgMjUuOCA1LjFjOCAzLjQgMTUuMSA1LjggMjEuMSAxMS45IDYgNiAxMC43IDEzLjEgMTQuMiAyMS4xIDMuNCA4IDUuMSAxNi42IDUuMSAyNS44em0tMTUuNSAwYzAtNy4zLTEuMy0xNC0zLjktMjAuMy0yLjYtNi4zLTYuMi0xMS43LTEwLjgtMTYuMy00LjYtNC42LTEwLTguMi0xNi4yLTEwLjktNi4yLTIuNy0xMi44LTQtMTkuOC00cy0xMy42IDEuMy0xOS44IDRjLTYuMiAyLjctMTEuNiA2LjMtMTYuMiAxMC45LTQuNiA0LjYtOC4yIDEwLTEwLjggMTYuMy0yLjYgNi4zLTMuOSAxMy4xLTMuOSAyMC4zIDAgNy4zIDEuMyAxNCAzLjkgMjAuMyAyLjYgNi4zIDYuMiAxMS43IDEwLjggMTYuMyA0LjYgNC42IDEwIDguMiAxNi4yIDEwLjkgNi4yIDIuNyAxMi44IDQgMTkuOCA0czEzLjYtMS4zIDE5LjgtNGM2LjItMi43IDExLjYtNi4zIDE2LjItMTAuOSA0LjYtNC42IDguMi0xMCAxMC44LTE2LjMgMi42LTYuMyAzLjktMTMuMSAzLjktMjAuM3ptLTk0LjggOTYuN3YtNi4zbDg4LjktMTAtMjQyLjkgMTMuNGMuNi0yLjIgMS4xLTQuNiAxLjQtNy4yLjMtMiAuNS00LjIuNi02LjVsNjQuOC04LjEtNjQuOSAxLjljMC0uNC0uMS0uNy0uMS0xLjEtMi44LTE3LjItMjUuNS0yMy43LTI1LjUtMjMuN2wtMS4xLTI2LjNoMjMuOGwxOSA0MS44aDE3LjFMMzQ4LjYgMTUybC02Mi4yIDEzMS40aDE3LjFsMTktNDEuOGgyMy42TDM0NSAyNjhzLTIyLjcgNi41LTI1LjUgMjMuN2MtLjEuMy0uMS43LS4xIDEuMWwtNjQuOS0xLjkgNjQuOCA4LjFjLjEgMi4zLjMgNC40LjYgNi41LjMgMi42LjggNSAxLjQgNy4yTDc4LjQgMjk5LjJsODguOSAxMHY2LjNjLTUuOS45LTEwLjUgNi0xMC41IDEyLjIgMCA2LjggNS42IDEyLjQgMTIuNCAxMi40IDYuOCAwIDEyLjQtNS42IDEyLjQtMTIuNCAwLTYuMi00LjYtMTEuMy0xMC41LTEyLjJ2LTUuOGw4MC4zIDl2NS40Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yIDYuOCAwIDEyLjQtMy40IDEyLjQtMTAuMiAwLTYtNC4zLTExLTkuOS0xMi4xdi00LjlsMjguNCAzLjJ2MjMuN2gtNS45VjM2MGg1Ljl2LTYuNmg1djYuNmg1Ljl2LTEzLjhoLTUuOVYzMjNsMzguMyA0LjNjOC4xIDExLjQgMTkgMTMuNiAxOSAxMy42bC0uMSA2LjctNS4xLjItLjEgMTIuMWg0LjFsLjEtNWg1LjJsLjEgNWg0LjFsLS4xLTEyLjEtNS4xLS4yLS4xLTYuN3MxMC45LTIuMSAxOS0xMy42bDM4LjMtNC4zdjIzLjJoLTUuOVYzNjBoNS45di02LjZoNXY2LjZoNS45di0xMy44aC01Ljl2LTIzLjdsMjguNC0zLjJ2NC45Yy01LjcgMS4xLTkuOSA2LjItOS45IDEyLjEgMCA2LjggNS42IDEwLjIgMTIuNCAxMC4yIDYuOCAwIDEyLjQtMy40IDEyLjQtMTAuMiAwLTYtNC4zLTExLTkuOS0xMi4xdi01LjRsODAuMy05djUuOGMtNS45LjktMTAuNSA2LTEwLjUgMTIuMiAwIDYuOCA1LjYgMTIuNCAxMi40IDEyLjQgNi44IDAgMTIuNC01LjYgMTIuNC0xMi40LS4yLTYuMy00LjctMTEuNC0xMC43LTEyLjN6bS0yMDAuOC04Ny42bDE5LjYtNDIuNSAxOS42IDQyLjVoLTE3LjlsLTEuNy00MC4zLTEuNyA0MC4zaC0xNy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBd3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTgwLjQxIDIwMy4wMWMtLjcyIDIyLjY1IDEwLjYgMzIuNjggMTAuODggMzkuMDVhOC4xNjQgOC4xNjQgMCAwIDEtNC4xIDYuMjdsLTEyLjggOC45NmExMC42NiAxMC42NiAwIDAgMS01LjYzIDEuOTJjLS40My0uMDItOC4xOSAxLjgzLTIwLjQ4LTI1LjYxYTc4LjYwOCA3OC42MDggMCAwIDEtNjIuNjEgMjkuNDVjLTE2LjI4Ljg5LTYwLjQtOS4yNC01OC4xMy01Ni4yMS0xLjU5LTM4LjI4IDM0LjA2LTYyLjA2IDcwLjkzLTYwLjA1IDcuMS4wMiAyMS42LjM3IDQ2Ljk5IDYuMjd2LTE1LjYyYzIuNjktMjYuNDYtMTQuNy00Ni45OS00NC44MS00My45MS0yLjQuMDEtMTkuNC0uNS00NS44NCAxMC4xMS03LjM2IDMuMzgtOC4zIDIuODItMTAuNzUgMi44Mi03LjQxIDAtNC4zNi0yMS40OC0yLjk0LTI0LjIgNS4yMS02LjQgMzUuODYtMTguMzUgNjUuOTQtMTguMThhNzYuODU3IDc2Ljg1NyAwIDAgMSA1NS42OSAxNy4yOCA3MC4yODUgNzAuMjg1IDAgMCAxIDE3LjY3IDUyLjM2bC0uMDEgNjkuMjl6TTkzLjk5IDIzNS40YzMyLjQzLS40NyA0Ni4xNi0xOS45NyA0OS4yOS0zMC40NyAyLjQ2LTEwLjA1IDIuMDUtMTYuNDEgMi4wNS0yNy40LTkuNjctMi4zMi0yMy41OS00Ljg1LTM5LjU2LTQuODctMTUuMTUtMS4xNC00Mi44MiA1LjYzLTQxLjc0IDMyLjI2LTEuMjQgMTYuNzkgMTEuMTIgMzEuNCAyOS45NiAzMC40OHptMTcwLjkyIDIzLjA1Yy03Ljg2LjcyLTExLjUyLTQuODYtMTIuNjgtMTAuMzdsLTQ5LjgtMTY0LjY1Yy0uOTctMi43OC0xLjYxLTUuNjUtMS45Mi04LjU4YTQuNjEgNC42MSAwIDAgMSAzLjg2LTUuMjVjLjI0LS4wNC0yLjEzIDAgMjIuMjUgMCA4Ljc4LS44OCAxMS42NCA2LjAzIDEyLjU1IDEwLjM3bDM1LjcyIDE0MC44MyAzMy4xNi0xNDAuODNjLjUzLTMuMjIgMi45NC0xMS4wNyAxMi44LTEwLjI0aDE3LjE2YzIuMTctLjE4IDExLjExLS41IDEyLjY4IDEwLjM3bDMzLjQyIDE0Mi42M0w0MjAuOTggODAuMWMuNDgtMi4xOCAyLjcyLTExLjM3IDEyLjY4LTEwLjM3aDE5LjcyYy44NS0uMTMgNi4xNS0uODEgNS4yNSA4LjU4LS40MyAxLjg1IDMuNDEtMTAuNjYtNTIuNzUgMTY5LjktMS4xNSA1LjUxLTQuODIgMTEuMDktMTIuNjggMTAuMzdoLTE4LjY5Yy0xMC45NCAxLjE1LTEyLjUxLTkuNjYtMTIuNjgtMTAuNzVMMzI4LjY3IDExMC43bC0zMi43OCAxMzYuOTljLS4xNiAxLjA5LTEuNzMgMTEuOS0xMi42OCAxMC43NWgtMTguM3ptMjczLjQ4IDUuNjNjLTUuODguMDEtMzMuOTItLjMtNTcuMzYtMTIuMjlhMTIuODAyIDEyLjgwMiAwIDAgMS03LjgxLTExLjkxdi0xMC43NWMwLTguNDUgNi4yLTYuOSA4LjgzLTUuODkgMTAuMDQgNC4wNiAxNi40OCA3LjE0IDI4LjgxIDkuNiAzNi42NSA3LjUzIDUyLjc3LTIuMyA1Ni43Mi00LjQ4IDEzLjE1LTcuODEgMTQuMTktMjUuNjggNS4yNS0zNC45NS0xMC40OC04Ljc5LTE1LjQ4LTkuMTItNTMuMTMtMjEtNC42NC0xLjI5LTQzLjctMTMuNjEtNDMuNzktNTIuMzYtLjYxLTI4LjI0IDI1LjA1LTU2LjE4IDY5LjUyLTU1Ljk1IDEyLjY3LS4wMSA0Ni40MyA0LjEzIDU1LjU3IDE1LjYyIDEuMzUgMi4wOSAyLjAyIDQuNTUgMS45MiA3LjA0djEwLjExYzAgNC40NC0xLjYyIDYuNjYtNC44NyA2LjY2LTcuNzEtLjg2LTIxLjM5LTExLjE3LTQ5LjE2LTEwLjc1LTYuODktLjM2LTM5Ljg5LjkxLTM4LjQxIDI0Ljk3LS40MyAxOC45NiAyNi42MSAyNi4wNyAyOS43IDI2Ljg5IDM2LjQ2IDEwLjk3IDQ4LjY1IDEyLjc5IDYzLjEyIDI5LjU4IDE3LjE0IDIyLjI1IDcuOSA0OC4zIDQuMzUgNTUuNDQtMTkuMDggMzcuNDktNjguNDIgMzQuNDQtNjkuMjYgMzQuNDJ6bTQwLjIgMTA0Ljg2Yy03MC4wMyA1MS43Mi0xNzEuNjkgNzkuMjUtMjU4LjQ5IDc5LjI1QTQ2OS4xMjcgNDY5LjEyNyAwIDAgMSAyLjgzIDMyNy40NmMtNi41My01Ljg5LS43Ny0xMy45NiA3LjE3LTkuNDdhNjM3LjM3IDYzNy4zNyAwIDAgMCAzMTYuODggODQuMTIgNjMwLjIyIDYzMC4yMiAwIDAgMCAyNDEuNTktNDkuNTVjMTEuNzgtNSAyMS43NyA3LjggMTAuMTIgMTYuMzh6bTI5LjE5LTMzLjI5Yy04Ljk2LTExLjUyLTU5LjI4LTUuMzgtODEuODEtMi42OS02Ljc5Ljc3LTcuOTQtNS4xMi0xLjc5LTkuNDcgNDAuMDctMjguMTcgMTA1Ljg4LTIwLjEgMTEzLjQ0LTEwLjYzIDcuNTUgOS40Ny0yLjA1IDc1LjQxLTM5LjU2IDEwNi45MS01Ljc2IDQuODctMTEuMjcgMi4zLTguNzEtNC4xIDguNDQtMjEuMjUgMjcuMzktNjguNDkgMTguNDMtODAuMDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbmRjYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhabTQ4LjIsMzI2LjFoLTE4MUwyMDcuOSwxNzhoMTgxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0bGVOZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LjYxIDIyNS42MmMyNi44Ny4xOCAzNS41Ny03LjQzIDM4LjkyLTEyLjM3IDEyLjQ3LTE2LjMyLTcuMDYtNDcuNi01Mi44NS03MS4zMyAxNy43Ni0zMy41OCAzMC4xMS02My42OCAzNi4zNC04NS4zIDMuMzgtMTEuODMgMS4wOS0xOSAuNDUtMjAuMjUtMS43MiAxMC41Mi0xNS44NSA0OC40Ni00OC4yIDEwMC4wNS0yNS0xMS4yMi01Ni41Mi0yMC4xLTkzLjc3LTIzLjgtOC45NC0xNi45NC0zNC44OC02My44Ni02MC40OC04OC45M0MyNTIuMTggNy4xNCAyMzguNyAxLjA3IDIyOC4xOC4yMmgtLjA1Yy0xMy44My0xLjU1LTIyLjY3IDUuODUtMjcuNCAxMS0xNy4yIDE4LjUzLTI0LjMzIDQ4Ljg3LTI1IDg0LjA3LTcuMjQtMTIuMzUtMTcuMTctMjQuNjMtMjguNS0yNS45M2gtLjE4Yy0yMC42Ni0zLjQ4LTM4LjM5IDI5LjIyLTM2IDgxLjI5LTM4LjM2IDEuMzgtNzEgNS43NS05MyAxMS4yMy05LjkgMi40NS0xNi4yMiA3LjI3LTE3Ljc2IDkuNzIgMS0uMzggMjIuNC05LjIyIDExMS41Ni05LjIyIDUuMjIgNTMgMjkuNzUgMTAxLjgyIDI2IDkzLjE5LTkuNzMgMTUuNC0zOC4yNCA2Mi4zNi00Ny4zMSA5Ny43LTUuODcgMjIuODgtNC4zNyAzNy42MS4xNSA0Ny4xNCA1LjU3IDEyLjc1IDE2LjQxIDE2LjcyIDIzLjIgMTguMjYgMjUgNS43MSA1NS4zOC0zLjYzIDg2LjctMjEuMTQtNy41MyAxMi44NC0xMy45IDI4LjUxLTkuMDYgMzkuMzQgNy4zMSAxOS42NSA0NC40OSAxOC42NiA4OC40NC05LjQ1IDIwLjE4IDMyLjE4IDQwLjA3IDU3Ljk0IDU1LjcgNzQuMTJhMzkuNzkgMzkuNzkgMCAwIDAgOC43NSA3LjA5YzUuMTQgMy4yMSA4LjU4IDMuMzcgOC41OCAzLjM3LTguMjQtNi43NS0zNC0zOC02Mi41NC05MS43OCAyMi4yMi0xNiA0NS42NS0zOC44NyA2Ny40Ny02OS4yNyAxMjIuODIgNC42IDE0My4yOS0yNC43NiAxNDgtMzEuNjQgMTQuNjctMTkuODggMy40My01Ny40NC01Ny4zMi05My42OXptLTc3Ljg1IDEwNi4yMmMyMy44MS0zNy43MSAzMC4zNC02Ny43NyAyOS40NS05Mi4zMyAyNy44NiAxNy41NyA0Ny4xOCAzNy41OCA0OS4wNiA1OC44MyAxLjE0IDEyLjkzLTguMSAyOS4xMi03OC41MSAzMy41ek0yMTYuOSAzODcuNjljOS43Ni02LjIzIDE5LjUzLTEzLjEyIDI5LjItMjAuNDkgNi42OCAxMy4zMyAxMy42IDI2LjEgMjAuNiAzOC4xOS00MC42IDIxLjg2LTY4Ljg0IDEyLjc2LTQ5LjgtMTcuN3ptMjE1LTE3MS4zNWMtMTAuMjktNS4zNC0yMS4xNi0xMC4zNC0zMi4zOC0xNS4wNWE3MjIuNDU5IDcyMi40NTkgMCAwIDAgMjIuNzQtMzYuOWMzOS4wNiAyNC4xIDQ1LjkgNTMuMTggOS42NCA1MS45NXpNMjc5LjE4IDM5OGMtNS41MS0xMS4zNS0xMS0yMy41LTE2LjUtMzYuNDQgNDMuMjUgMS4yNyA2Mi40Mi0xOC43MyA2My4yOC0yMC40MSAwIC4wNy0yNSAxNS42NC02Mi41MyAxMi4yNWE3MTguNzggNzE4Ljc4IDAgMCAwIDg1LjA2LTg0cTEzLjA2LTE1LjMxIDI0LjkzLTMxLjExYy0uMzYtLjI5LTEuNTQtMy0xNi41MS0xMi01MS43IDYwLjI3LTEwMi4zNCA5OC0xMzIuNzUgMTE1LjkyLTIwLjU5LTExLjE4LTQwLjg0LTMxLjc4LTU1LjcxLTYxLjQ5LTIwLTM5LjkyLTMwLTgyLjM5LTMxLjU3LTExNi4wNyAxMi4zLjkxIDI1LjI3IDIuMTcgMzguODUgMy44OC0yMi4yOSAzNi44LTE0LjM5IDYzLTEzLjQ3IDY0LjIzIDAtLjA3LS45NS0yOS4xNyAyMC4xNC01OS41N2E2OTUuMjMgNjk1LjIzIDAgMCAwIDQ0LjY3IDE1Mi44NGMuOTMtLjM4IDEuODQuODggMTguNjctOC4yNS0yNi4zMy03NC40Ny0zMy43Ni0xMzguMTctMzQtMTczLjQzIDIwLTEyLjQyIDQ4LjE4LTE5LjggODEuNjMtMTcuODEgNDQuNTcgMi42NyA4Ni4zNiAxNS4yNSAxMTYuMzIgMzAuNzFxLTEwLjY5IDE1LjY2LTIzLjMzIDMyLjQ3QzM2NS42MyAxNTIgMzM5LjEgMTQ1Ljg0IDMzNy41IDE0NmMuMTEgMCAyNS45IDE0LjA3IDQxLjUyIDQ3LjIyYTcxNy42MyA3MTcuNjMgMCAwIDAtMTE1LjM0LTMxLjcxIDY0Ni42MDggNjQ2LjYwOCAwIDAgMC0zOS4zOS02LjA1Yy0uMDcuNDUtMS44MSAxLjg1LTIuMTYgMjAuMzNDMzAwIDE5MC4yOCAzNTguNzggMjE1LjY4IDM4OS4zNiAyMzNjLjc0IDIzLjU1LTYuOTUgNTEuNjEtMjUuNDEgNzkuNTctMjQuNiAzNy4zMS01Ni4zOSA2Ny4yMy04NC43NyA4NS40M3ptMjcuNC0yODdjLTQ0LjU2LTEuNjYtNzMuNTggNy40My05NC42OSAyMC42NyAyLTUyLjMgMjEuMzEtNzYuMzggMzguMjEtNzUuMjhDMjY3IDUyLjE1IDMwNSAxMDguNTUgMzA2LjU4IDExMXptLTEzMC42NSAzLjFjLjQ4IDEyLjExIDEuNTkgMjQuNjIgMy4yMSAzNy4yOC0xNC41NS0uODUtMjguNzQtMS4yNS00Mi40LTEuMjYtLjA4IDMuMjQtLjEyLTUxIDI0LjY3LTQ5LjU5aC4wOWM1Ljc2IDEuMDkgMTAuNjMgNi44OCAxNC40MyAxMy41N3ptLTI4LjA2IDE2MmMyMC43NiAzOS43IDQzLjMgNjAuNTcgNjUuMjUgNzIuMzEtNDYuNzkgMjQuNzYtNzcuNTMgMjAtODQuOTIgNC41MS0uMi0uMjEtMTEuMTMtMTUuMyAxOS42Ny03Ni44MXptMjEwLjA2IDc0LjhcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVoYW5jZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuNSAyOTNjMCAxOS4zLTE0IDI1LjQtMzEuMiAyNS40aC00NS4xdi01Mi45aDQ2YzE4LjYuMSAzMC4zIDcuOCAzMC4zIDI3LjV6bS03LjctODIuM2MwLTE3LjctMTMuNy0yMS45LTI4LjktMjEuOWgtMzkuNnY0NC44SDE1M2MxNS4xIDAgMjUuOC02LjYgMjUuOC0yMi45em0xMzIuMyAyMy4yYy0xOC4zIDAtMzAuNSAxMS40LTMxLjcgMjkuN2g2Mi4yYy0xLjctMTguNS0xMS4zLTI5LjctMzAuNS0yOS43ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTI3MS43IDE4NWg3Ny44di0xOC45aC03Ny44VjE4NXptLTQzIDExMC4zYzAtMjQuMS0xMS40LTQ0LjktMzUtNTEuNiAxNy4yLTguMiAyNi4yLTE3LjcgMjYuMi0zNyAwLTM4LjItMjguNS00Ny41LTYxLjQtNDcuNUg2OHYxOTJoOTMuMWMzNC45LS4yIDY3LjYtMTYuOSA2Ny42LTU1Ljl6TTM4MCAyODAuNWMwLTQxLjEtMjQuMS03NS40LTY3LjYtNzUuNC00Mi40IDAtNzEuMSAzMS44LTcxLjEgNzMuNiAwIDQzLjMgMjcuMyA3MyA3MS4xIDczIDMzLjIgMCA1NC43LTE0LjkgNjUuMS00Ni44aC0zMy43Yy0zLjcgMTEuOS0xOC42IDE4LjEtMzAuMiAxOC4xLTIyLjQgMC0zNC4xLTEzLjEtMzQuMS0zNS4zaDEwMC4yYy4xLTIuMy4zLTQuOC4zLTcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVoYW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzIgMjM3LjJjMzEuOC0xNS4yIDQ4LjQtMzguMiA0OC40LTc0IDAtNzAuNi01Mi42LTg3LjgtMTEzLjMtODcuOEgwdjM1NC40aDE3MS44YzY0LjQgMCAxMjQuOS0zMC45IDEyNC45LTEwMi45IDAtNDQuNS0yMS4xLTc3LjQtNjQuNy04OS43ek03Ny45IDEzNS45SDE1MWMyOC4xIDAgNTMuNCA3LjkgNTMuNCA0MC41IDAgMzAuMS0xOS43IDQyLjItNDcuNSA0Mi4yaC03OXYtODIuN3ptODMuMyAyMzMuN0g3Ny45VjI3Mmg4NC45YzM0LjMgMCA1NiAxNC4zIDU2IDUwLjYgMCAzNS44LTI1LjkgNDctNTcuNiA0N3ptMzU4LjUtMjQwLjdIMzc2Vjk0aDE0My43djM0Ljl6TTU3NiAzMDUuMmMwLTc1LjktNDQuNC0xMzkuMi0xMjQuOS0xMzkuMi03OC4yIDAtMTMxLjMgNTguOC0xMzEuMyAxMzUuOCAwIDc5LjkgNTAuMyAxMzQuNyAxMzEuMyAxMzQuNyA2MS4zIDAgMTAxLTI3LjYgMTIwLjEtODYuM0g1MDljLTYuNyAyMS45LTM0LjMgMzMuNS01NS43IDMzLjUtNDEuMyAwLTYzLTI0LjItNjMtNjUuM2gxODUuMWMuMy00LjIuNi04LjcuNi0xMy4yek0zOTAuNCAyNzRjMi4zLTMzLjcgMjQuNy01NC44IDU4LjUtNTQuOCAzNS40IDAgNTMuMiAyMC44IDU2LjIgNTQuOEgzOTAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmltb2JqZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMkgzMkMxNC40IDMyIDAgNDYuNCAwIDY0djM4NGMwIDE3LjYgMTQuNCAzMiAzMiAzMmgzODRjMTcuNiAwIDMyLTE0LjQgMzItMzJWNjRjMC0xNy42LTE0LjQtMzItMzItMzJ6bS02NCAyNTcuNGMwIDQ5LjQtMTEuNCA4Mi42LTEwMy44IDgyLjZoLTE2LjljLTQ0LjEgMC02Mi40LTE0LjktNzAuNC0zOC44aC0uOVYzNjhIOTZWMTM2aDY0djc0LjdoMS4xYzQuNi0zMC41IDM5LjctMzguOCA2OS43LTM4LjhoMTcuM2M5Mi40IDAgMTAzLjggMzMuMSAxMDMuOCA4Mi41djM1em0tNjQtMjguOXYyMi45YzAgMjEuNy0zLjQgMzMuOC0zOC40IDMzLjhoLTQ1LjNjLTI4LjkgMC00NC4xLTYuNS00NC4xLTM1Ljd2LTE5YzAtMjkuMyAxNS4yLTM1LjcgNDQuMS0zNS43aDQ1LjNjMzUtLjIgMzguNCAxMiAzOC40IDMzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpdGJ1Y2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMi4yIDMyQTE2IDE2IDAgMCAwIDYgNDcuOGEyNi4zNSAyNi4zNSAwIDAgMCAuMiAyLjhsNjcuOSA0MTIuMWEyMS43NyAyMS43NyAwIDAgMCAyMS4zIDE4LjJoMzI1LjdhMTYgMTYgMCAwIDAgMTYtMTMuNEw1MDUgNTAuN2ExNiAxNiAwIDAgMC0xMy4yLTE4LjMgMjQuNTggMjQuNTggMCAwIDAtMi44LS4yTDIyLjIgMzJ6bTI4NS45IDI5Ny44aC0xMDRsLTI4LjEtMTQ3aDE1Ny4zbC0yNS4yIDE0N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQml0Y29pbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHptLTE0MS42NTEtMzUuMzNjNC45MzctMzIuOTk5LTIwLjE5MS01MC43MzktNTQuNTUtNjIuNTczbDExLjE0Ni00NC43MDItMjcuMjEzLTYuNzgxLTEwLjg1MSA0My41MjRjLTcuMTU0LTEuNzgzLTE0LjUwMi0zLjQ2NC0yMS44MDMtNS4xM2wxMC45MjktNDMuODEtMjcuMTk4LTYuNzgxLTExLjE1MyA0NC42ODZjLTUuOTIyLTEuMzQ5LTExLjczNS0yLjY4Mi0xNy4zNzctNC4wODRsLjAzMS0uMTQtMzcuNTMtOS4zNy03LjIzOSAyOS4wNjJzMjAuMTkxIDQuNjI3IDE5Ljc2NSA0LjkxM2MxMS4wMjIgMi43NTEgMTMuMDE0IDEwLjA0NCAxMi42OCAxNS44MjVsLTEyLjY5NiA1MC45MjVjLjc2LjE5NCAxLjc0NC40NzMgMi44MjkuOTA3LS45MDctLjIyNS0xLjg3Ni0uNDczLTIuODc2LS43MTNsLTE3Ljc5NiA3MS4zMzhjLTEuMzQ5IDMuMzQ4LTQuNzY3IDguMzctMTIuNDcxIDYuNDY0LjI3MS4zOTUtMTkuNzgtNC45MzctMTkuNzgtNC45MzdsLTEzLjUxIDMxLjE0NyAzNS40MTQgOC44MjdjNi41ODggMS42NTEgMTMuMDQ1IDMuMzc5IDE5LjQgNS4wMDZsLTExLjI2MiA0NS4yMTMgMjcuMTgyIDYuNzgxIDExLjE1My00NC43MzNhMTAzOC4yMDkgMTAzOC4yMDkgMCAwIDAgMjEuNjg3IDUuNjI3bC0xMS4xMTUgNDQuNTIzIDI3LjIxMyA2Ljc4MSAxMS4yNjItNDUuMTI4YzQ2LjQwNCA4Ljc4MSA4MS4yOTkgNS4yMzkgOTUuOTg2LTM2LjcyNyAxMS44MzYtMzMuNzktLjU4OS01My4yODEtMjUuMDA0LTY1Ljk5MSAxNy43OC00LjA5OCAzMS4xNzQtMTUuNzkyIDM0Ljc0Ny0zOS45NDl6bS02Mi4xNzcgODcuMTc5Yy04LjQxIDMzLjc5LTY1LjMwOCAxNS41MjMtODMuNzU1IDEwLjk0M2wxNC45NDQtNTkuODk5YzE4LjQ0NiA0LjYwMyA3Ny42IDEzLjcxNyA2OC44MTEgNDguOTU2em04LjQxNy04Ny42NjdjLTcuNjczIDMwLjczNi01NS4wMzEgMTUuMTItNzAuMzkzIDExLjI5MmwxMy41NDgtNTQuMzI3YzE1LjM2MyAzLjgyOCA2NC44MzYgMTAuOTczIDU2Ljg0NSA0My4wMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzguNCA2Ny4yQzE3My44LTIyIDMyNC41LTI0IDQyMS41IDcxYzE0LjMgMTQuMS02LjQgMzcuMS0yMi40IDIxLjUtODQuOC04Mi40LTIxNS44LTgwLjMtMjk4LjktMy4yLTE2LjMgMTUuMS0zNi41LTguMy0yMS44LTIyLjF6bTk4LjkgNDE4LjZjMTkuMyA1LjcgMjkuMy0yMy42IDcuOS0zMEM3MyA0MjEuOSA5LjQgMzA2LjEgMzcuNyAxOTQuOGM1LTE5LjYtMjQuOS0yOC4xLTMwLjItNy4xLTMyLjEgMTI3LjQgNDEuMSAyNTkuOCAxNjkuOCAyOTguMXptMTQ4LjEtMmMxMjEuOS00MC4yIDE5Mi45LTE2Ni45IDE2NC40LTI5MS00LjUtMTkuNy0zNC45LTEzLjgtMzAgNy45IDI0LjIgMTA3LjctMzcuMSAyMTcuOS0xNDMuMiAyNTMuNC0yMS4yIDctMTAuNCAzNiA4LjggMjkuN3ptLTYyLjktNzlsLjItNzEuOGMwLTguMi02LjYtMTQuOC0xNC44LTE0LjgtOC4yIDAtMTQuOCA2LjctMTQuOCAxNC44bC0uMiA3MS44YzAgOC4yIDYuNiAxNC44IDE0LjggMTQuOHMxNC44LTYuNiAxNC44LTE0Ljh6bTcxLTI2OWMyLjEgOTAuOSA0LjcgMTMxLjktODUuNSAxMzIuNS05Mi41LS43LTg2LjktNDQuMy04NS41LTEzMi41IDAtMjEuOC0zMi41LTE5LjYtMzIuNSAwdjcxLjZjMCA2OS4zIDYwLjcgOTAuOSAxMTggOTAuMSA1Ny4zLjggMTE4LTIwLjggMTE4LTkwLjF2LTcxLjZjMC0xOS42LTMyLjUtMjEuOC0zMi41IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsYWNrVGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0zMTYuNSAzMjUuMkwyMjQgNDQ1LjlsLTkyLjUtODguNyA2NC41LTE4NC02NC41LTg2LjZoMTg0LjlMMjUyIDE3My4ybDY0LjUgMTg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbGFja2JlcnJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NiAxMTYuOWMwIDIzLjQtMTYuNCA0OS4xLTcyLjUgNDkuMUgyMy40bDIxLTg4LjhoNjcuOGM0Mi4xIDAgNTMuOCAyMy4zIDUzLjggMzkuN3ptMTI2LjItMzkuN2gtNjcuOEwyMDUuNyAxNjZoNzAuMWM1My44IDAgNzAuMS0yNS43IDcwLjEtNDkuMS4xLTE2LjQtMTEuNi0zOS43LTUzLjctMzkuN3pNODguOCAyMDguMUgyMUwwIDI5Ni45aDcwLjFjNTYuMSAwIDcyLjUtMjMuNCA3Mi41LTQ5LjEgMC0xNi4zLTExLjctMzkuNy01My44LTM5Ljd6bTE4MC4xIDBoLTY3LjhsLTE4LjcgODguOGg3MC4xYzUzLjggMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS43LTM5LjctNTMuNy0zOS43em0xODkuMy01My44aC02Ny44bC0xOC43IDg4LjhoNzAuMWM1My44IDAgNzAuMS0yMy40IDcwLjEtNDkuMS4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3ptLTI4IDEzNy45aC02Ny44TDM0My43IDM4MWg3MC4xYzU2LjEgMCA3MC4xLTIzLjQgNzAuMS00OS4xIDAtMTYuMy0xMS42LTM5LjctNTMuNy0zOS43ek0yNDAuOCAzNDZIMTczbC0xOC43IDg4LjhoNzAuMWM1Ni4xIDAgNzAuMS0yNS43IDcwLjEtNDkuMS4xLTE2LjMtMTEuNi0zOS43LTUzLjctMzkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxvZ2dlckIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ2LjYgMjIyLjdjLTEuOC04LTYuOC0xNS40LTEyLjUtMTguNS0xLjgtMS0xMy0yLjItMjUtMi43LTIwLjEtLjktMjIuMy0xLjMtMjguNy01LTEwLjEtNS45LTEyLjgtMTIuMy0xMi45LTI5LjUtLjEtMzMtMTMuOC02My43LTQwLjktOTEuMy0xOS4zLTE5LjctNDAuOS0zMy02NS41LTQwLjUtNS45LTEuOC0xOS4xLTIuNC02My4zLTIuOS02OS40LS44LTg0LjguNi0xMDguNCAxMEM0NS45IDU5LjUgMTQuNyA5Ni4xIDMuMyAxNDIuOSAxLjIgMTUxLjcuNyAxNjUuOC4yIDI0Ni44Yy0uNiAxMDEuNS4xIDExNi40IDYuNCAxMzYuNSAxNS42IDQ5LjYgNTkuOSA4Ni4zIDEwNC40IDk0LjMgMTQuOCAyLjcgMTk3LjMgMy4zIDIxNiAuOCAzMi41LTQuNCA1OC0xNy41IDgxLjktNDEuOSAxNy4zLTE3LjcgMjguMS0zNi44IDM1LjItNjIuMSA0LjktMTcuNiA0LjUtMTQyLjggMi41LTE1MS43em0tMzIyLjEtNjMuNmM3LjgtNy45IDEwLTguMiA1OC44LTguMiA0My45IDAgNDUuNC4xIDUxLjggMy40IDkuMyA0LjcgMTMuNCAxMS4zIDEzLjQgMjEuOSAwIDkuNS0zLjggMTYuMi0xMi4zIDIxLjYtNC42IDIuOS03LjMgMy4xLTUwLjMgMy4zLTI2LjUuMi00Ny43LS40LTUwLjgtMS4yLTE2LjYtNC43LTIyLjgtMjguNS0xMC42LTQwLjh6bTE5MS44IDE5OS44bC0xNC45IDIuNC03Ny41LjljLTY4LjEuOC04Ny4zLS40LTkwLjktMi03LjEtMy4xLTEzLjgtMTEuNy0xNC45LTE5LjQtMS4xLTcuMyAyLjYtMTcuMyA4LjItMjIuNCA3LjEtNi40IDEwLjItNi42IDk3LjMtNi43IDg5LjYtLjEgODkuMS0uMSA5Ny42IDcuOCAxMi4xIDExLjMgOS41IDMxLjItNC45IDM5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsb2dnZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYyLjQgMTk2YzQuOC00LjkgNi4yLTUuMSAzNi40LTUuMSAyNy4yIDAgMjguMS4xIDMyLjEgMi4xIDUuOCAyLjkgOC4zIDcgOC4zIDEzLjYgMCA1LjktMi40IDEwLTcuNiAxMy40LTIuOCAxLjgtNC41IDEuOS0zMS4xIDIuMS0xNi40LjEtMjkuNS0uMi0zMS41LS44LTEwLjMtMi45LTE0LjEtMTcuNy02LjYtMjUuM3ptNjEuNCA5NC41Yy01My45IDAtNTUuOC4yLTYwLjIgNC4xLTMuNSAzLjEtNS43IDkuNC01LjEgMTMuOS43IDQuNyA0LjggMTAuMSA5LjIgMTIgMi4yIDEgMTQuMSAxLjcgNTYuMyAxLjJsNDcuOS0uNiA5LjItMS41YzktNS4xIDEwLjUtMTcuNCAzLjEtMjQuNC01LjMtNC43LTUtNC43LTYwLjQtNC43em0yMjMuNCAxMzAuMWMtMy41IDI4LjQtMjMgNTAuNC01MS4xIDU3LjUtNy4yIDEuOC05LjcgMS45LTE3Mi45IDEuOC0xNTcuOCAwLTE2NS45LS4xLTE3Mi0xLjgtOC40LTIuMi0xNS42LTUuNS0yMi4zLTEwLTUuNi0zLjgtMTMuOS0xMS44LTE3LTE2LjQtMy44LTUuNi04LjItMTUuMy0xMC0yMkMuMSA0MjMgMCA0MjAuMyAwIDI1Ni4zIDAgOTMuMiAwIDg5LjcgMS44IDgyLjYgOC4xIDU3LjkgMjcuNyAzOSA1MyAzMy40YzcuMy0xLjYgMzMyLjEtMS45IDM0MC0uMyAyMS4yIDQuMyAzNy45IDE3LjEgNDcuNiAzNi40IDcuNyAxNS4zIDctMS41IDcuMyAxODAuNi4yIDExNS44IDAgMTY0LjUtLjcgMTcwLjV6bS04NS40LTE4NS4yYy0xLjEtNS00LjItOS42LTcuNy0xMS41LTEuMS0uNi04LTEuMy0xNS41LTEuNy0xMi40LS42LTEzLjgtLjgtMTcuOC0zLjEtNi4yLTMuNi03LjktNy42LTgtMTguMyAwLTIwLjQtOC41LTM5LjQtMjUuMy01Ni41LTEyLTEyLjItMjUuMy0yMC41LTQwLjYtMjUuMS0zLjYtMS4xLTExLjgtMS41LTM5LjItMS44LTQyLjktLjUtNTIuNS40LTY3LjEgNi4yLTI3IDEwLjctNDYuMyAzMy40LTUzLjQgNjIuNC0xLjMgNS40LTEuNiAxNC4yLTEuOSA2NC4zLS40IDYyLjggMCA3Mi4xIDQgODQuNSA5LjcgMzAuNyAzNy4xIDUzLjQgNjQuNiA1OC40IDkuMiAxLjcgMTIyLjIgMi4xIDEzMy43LjUgMjAuMS0yLjcgMzUuOS0xMC44IDUwLjctMjUuOSAxMC43LTEwLjkgMTcuNC0yMi44IDIxLjgtMzguNSAzLjItMTAuOSAyLjktODguNCAxLjctOTMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmx1ZXRvb3RoQiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTYuNDggMjYwLjAyM2w5Mi42MjYtMTAzLjMzM0wxNDMuMTI1IDB2MjA2LjMzbC04Ni4xMTEtODYuMTExLTMxLjQwNiAzMS40MDUgMTA4LjA2MSAxMDguMzk5TDI1LjYwOCAzNjguNDIybDMxLjQwNiAzMS40MDUgODYuMTExLTg2LjExMUwxNDUuODQgNTEybDE0OC41NTItMTQ4LjY0NC05Ny45MTItMTAzLjMzM3ptNDAuODYtMTAyLjk5NmwtNDkuOTc3IDQ5Ljk3OC0uMzM4LTEwMC4yOTUgNTAuMzE1IDUwLjMxN3pNMTg3LjM2MyAzMTMuMDRsNDkuOTc3IDQ5Ljk3OC01MC4zMTUgNTAuMzE2LjMzOC0xMDAuMjk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCbHVldG9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkyLjYgMTcxLjFMMjQ5LjcgMjE0bC0uMy04NiA0My4yIDQzLjFtLTQzLjIgMjE5LjhsNDMuMS00My4xLTQyLjktNDIuOS0uMiA4NnpNNDE2IDI1OS40QzQxNiA0NjUgMzQ0LjEgNTEyIDIzMC45IDUxMlMzMiA0NjUgMzIgMjU5LjQgMTE1LjQgMCAyMjguNiAwIDQxNiA1My45IDQxNiAyNTkuNHptLTE1OC41IDBsNzkuNC04OC42TDIxMS44IDM2LjV2MTc2LjlMMTM4IDEzOS42bC0yNyAyNi45IDkyLjcgOTMtOTIuNyA5MyAyNi45IDI2LjkgNzMuOC03My44IDIuMyAxNzAgMTI3LjQtMTI3LjUtODMuOS04OC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb290c3RyYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMzLjUsMjAxLjRjMC0yMi4xLTE1LjYtMzQuMy00My0zNC4zaC01MC40djcxLjJoNDIuNUMzMTUuNCwyMzguMiwzMzMuNSwyMjUsMzMzLjUsMjAxLjR6IE01MTcsMTg4LjYgYy05LjUtMzAuOS0xMC45LTY4LjgtOS44LTk4LjFjMS4xLTMwLjUtMjIuNy01OC41LTU0LjctNTguNUgxMjMuN2MtMzIuMSwwLTU1LjgsMjguMS01NC43LDU4LjVjMSwyOS4zLTAuMyw2Ny4yLTkuOCw5OC4xIGMtOS42LDMxLTI1LjcsNTAuNi01Mi4yLDUzLjF2MjguNWMyNi40LDIuNSw0Mi42LDIyLjEsNTIuMiw1My4xYzkuNSwzMC45LDEwLjksNjguOCw5LjgsOTguMWMtMS4xLDMwLjUsMjIuNyw1OC41LDU0LjcsNTguNWgzMjguNyBjMzIuMSwwLDU1LjgtMjguMSw1NC43LTU4LjVjLTEtMjkuMywwLjMtNjcuMiw5LjgtOTguMWM5LjYtMzEsMjUuNy01MC42LDUyLjEtNTMuMXYtMjguNUM1NDIuNywyMzkuMiw1MjYuNSwyMTkuNiw1MTcsMTg4LjZ6IE0zMDAuMiwzNzUuMWgtOTcuOVYxMzYuOGg5Ny40YzQzLjMsMCw3MS43LDIzLjQsNzEuNyw1OS40YzAsMjUuMy0xOS4xLDQ3LjktNDMuNSw1MS44djEuM2MzMy4yLDMuNiw1NS41LDI2LjYsNTUuNSw1OC4zIEMzODMuNCwzNDkuNywzNTIuMSwzNzUuMSwzMDAuMiwzNzUuMXogTTI5MC4yLDI2Ni40aC01MC4xdjc4LjRoNTIuM2MzNC4yLDAsNTIuMy0xMy43LDUyLjMtMzkuNSBDMzQ0LjcsMjc5LjYsMzI2LjEsMjY2LjQsMjkwLjIsMjY2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ0YyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTAuMjA0IDI0Mi42MzhjMjcuNzMtMTQuMTggNDUuMzc3LTM5LjM5IDQxLjI4LTgxLjMtNS4zNTgtNTcuMzUxLTUyLjQ1OC03Ni41NzMtMTE0Ljg1LTgxLjkyOVYwaC00OC41Mjh2NzcuMjAzYy0xMi42MDUgMC0yNS41MjUuMzE1LTM4LjQ0NC42M1YwaC00OC41Mjh2NzkuNDA5Yy0xNy44NDIuNTM5LTM4LjYyMi4yNzYtOTcuMzcgMHY1MS42NzhjMzguMzE0LS42NzggNTguNDE3LTMuMTQgNjMuMDIzIDIxLjQyN3YyMTcuNDI5Yy0yLjkyNSAxOS40OTItMTguNTI0IDE2LjY4NS01My4yNTUgMTYuMDcxTDMuNzY1IDQ0My42OGM4OC40ODEgMCA5Ny4zNy4zMTUgOTcuMzcuMzE1VjUxMmg0OC41Mjh2LTY3LjA2YzEzLjIzNC4zMTUgMjYuMTU0LjMxNSAzOC40NDQuMzE1VjUxMmg0OC41Mjh2LTY4LjAwNWM4MS4yOTktNC40MTIgMTM1LjY0Ny0yNC44OTQgMTQyLjg5NS0xMDEuNDY3IDUuNjcxLTYxLjQ0Ni0yMy4zMi04OC44NjItNjkuMzI2LTk5Ljg5ek0xNTAuNjA4IDEzNC41NTNjMjcuNDE1IDAgMTEzLjEyNi04LjUwNyAxMTMuMTI2IDQ4LjUyOCAwIDU0LjUxNS04NS43MSA0OC4yMTItMTEzLjEyNiA0OC4yMTJ2LTk2Ljc0em0wIDI1MS43NzZWMjc5LjgyMWMzMi43NzIgMCAxMzMuMTI3LTkuMTM4IDEzMy4xMjcgNTMuMjU1LS4wMDEgNjAuMTg2LTEwMC4zNTUgNTMuMjUzLTEzMy4xMjcgNTMuMjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWZmZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI3Ljg0IDM4MC42N2wtMTk2LjUgOTcuODJhMTguNiAxOC42IDAgMCAxLTE0LjY3IDBMMjAuMTYgMzgwLjY3Yy00LTItNC01LjI4IDAtNy4yOUw2Ny4yMiAzNTBhMTguNjUgMTguNjUgMCAwIDEgMTQuNjkgMGwxMzQuNzYgNjdhMTguNTEgMTguNTEgMCAwIDAgMTQuNjcgMGwxMzQuNzYtNjdhMTguNjIgMTguNjIgMCAwIDEgMTQuNjggMGw0Ny4wNiAyMy40M2M0LjA1IDEuOTYgNC4wNSA1LjI0IDAgNy4yNHptMC0xMzYuNTNsLTQ3LjA2LTIzLjQzYTE4LjYyIDE4LjYyIDAgMCAwLTE0LjY4IDBsLTEzNC43NiA2Ny4wOGExOC42OCAxOC42OCAwIDAgMS0xNC42NyAwTDgxLjkxIDIyMC43MWExOC42NSAxOC42NSAwIDAgMC0xNC42OSAwbC00Ny4wNiAyMy40M2MtNCAyLTQgNS4yOSAwIDcuMzFsMTk2LjUxIDk3LjhhMTguNiAxOC42IDAgMCAwIDE0LjY3IDBsMTk2LjUtOTcuOGM0LjA1LTIuMDIgNC4wNS01LjMgMC03LjMxek0yMC4xNiAxMzAuNDJsMTk2LjUgOTAuMjlhMjAuMDggMjAuMDggMCAwIDAgMTQuNjcgMGwxOTYuNTEtOTAuMjljNC0xLjg2IDQtNC44OSAwLTYuNzRMMjMxLjMzIDMzLjRhMTkuODggMTkuODggMCAwIDAtMTQuNjcgMGwtMTk2LjUgOTAuMjhjLTQuMDUgMS44NS00LjA1IDQuODggMCA2Ljc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXJvbW9iZWxleHBlcnRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2MTI4aDEyOFYzMkgwem0xMjAgMTIwSDhWNDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMzJIMTYwem0xMjAgMTIwSDE2OFY0MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzMkgzMjB6bTEyMCAxMjBIMzI4VjQwaDExMnYxMTJ6TTAgMTkydjEyOGgxMjhWMTkySDB6bTEyMCAxMjBIOFYyMDBoMTEydjExMnptNDAtMTIwdjEyOGgxMjhWMTkySDE2MHptMTIwIDEyMEgxNjhWMjAwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjE5MkgzMjB6bTEyMCAxMjBIMzI4VjIwMGgxMTJ2MTEyek0wIDM1MnYxMjhoMTI4VjM1Mkgwem0xMjAgMTIwSDhWMzYwaDExMnYxMTJ6bTQwLTEyMHYxMjhoMTI4VjM1MkgxNjB6bTEyMCAxMjBIMTY4VjM2MGgxMTJ2MTEyem00MC0xMjB2MTI4aDEyOFYzNTJIMzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXlOTGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyQzEzMy4yNyAzMiA3Ljc5IDEzMi4zMiA3Ljc5IDI1NlMxMzMuMjcgNDgwIDI4OCA0ODBzMjgwLjIxLTEwMC4zMiAyODAuMjEtMjI0UzQ0Mi43MyAzMiAyODggMzJ6bS04NS4zOSAzNTcuMTlMNjQuMSAzOTAuNTVsNzcuMjUtMjkwLjc0aDEzMy40NGM2My4xNSAwIDg0LjkzIDI4LjY1IDc4IDcyLjg0YTYwLjI0IDYwLjI0IDAgMCAxLTEuNSA2Ljg1IDc3LjM5IDc3LjM5IDAgMCAwLTE3LjIxLTEuOTNjLTQyLjM1IDAtNzYuNjkgMzMuODgtNzYuNjkgNzUuNjUgMCAzNy4xNCAyNy4xNCA2OCA2Mi45MyA3NC40NS0xOC4yNCAzNy4xNi01Ni4xNiA2MC45Mi0xMTcuNzEgNjEuNTJ6TTM1OCAyMDcuMTFoMzJsLTIyLjE2IDkwLjMxaC0zNS40MWwtMTEuMTktMzUuNjMtNy44MyAzNS42M2gtMzcuODNsMjYuNjMtOTAuMzFoMzEuMzRsMTUgMzYuNzV6bTE0NS44NiAxODIuMDhIMzA2Ljc5TDMyMi42MyAzMjhhNzguOCA3OC44IDAgMCAwIDExLjQ3LjgzYzQyLjM0IDAgNzYuNjktMzMuODcgNzYuNjktNzUuNjUgMC0zMi42NS0yMS02MC40Ni01MC4zOC03MS4wNmwyMS4zMy04Mi4zNWg5Mi41bC01My4wNSAyMDUuMzZoMTAzLjg3ek0yMTEuNyAyNjkuMzlIMTg3bC0xMy44IDU2LjQ3aDI0LjdjMTYuMTQgMCAzMi4xMS0zLjE4IDM3Ljk0LTI2LjY1IDUuNTYtMjIuMzEtNy45OS0yOS44Mi0yNC4xNC0yOS44MnpNMjMzIDE3MGgtMjEuMzRMMjAwIDIxNy43MWgyMS4zN2MxOCAwIDM1LjM4LTE0LjY0IDM5LjIxLTMwLjE0QzI2NS4yMyAxNjguNzEgMjUxLjA3IDE3MCAyMzMgMTcwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXlzZWxsYWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxNTAuN2w0Mi45IDE2MC43aC04NS44TDIyNCAxNTAuN3pNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNjUuMyAzMjUuM2wtOTQuNS0yOTguN0gxNTkuOEw2NS4zIDQwNS4zSDE1NmwxMTEuNy05MS42IDI0LjIgOTEuNmg5MC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW5hZGlhbk1hcGxlTGVhZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODMuOCAzNTEuN2MyLjUtMi41IDEwNS4yLTkyLjQgMTA1LjItOTIuNGwtMTcuNS03LjVjLTEwLTQuOS03LjQtMTEuNS01LTE3LjQgMi40LTcuNiAyMC4xLTY3LjMgMjAuMS02Ny4zcy00Ny43IDEwLTU3LjcgMTIuNWMtNy41IDIuNC0xMC0yLjUtMTIuNS03LjVzLTE1LTMyLjQtMTUtMzIuNC01Mi42IDU5LjktNTUuMSA2Mi4zYy0xMCA3LjUtMjAuMSAwLTE3LjYtMTAgMC0xMCAyNy42LTEyOS42IDI3LjYtMTI5LjZzLTMwLjEgMTcuNC00MC4xIDIyLjRjLTcuNSA1LTEyLjYgNS0xNy42LTVDMjkzLjUgNzIuMyAyNTUuOSAwIDI1NS45IDBzLTM3LjUgNzIuMy00Mi41IDc5LjhjLTUgMTAtMTAgMTAtMTcuNiA1LTEwLTUtNDAuMS0yMi40LTQwLjEtMjIuNFMxODMuMyAxODIgMTgzLjMgMTkyYzIuNSAxMC03LjUgMTcuNS0xNy42IDEwLTIuNS0yLjUtNTUuMS02Mi4zLTU1LjEtNjIuM1M5OC4xIDE2NyA5NS42IDE3MnMtNSA5LjktMTIuNSA3LjVDNzMgMTc3IDI1LjQgMTY3IDI1LjQgMTY3czE3LjYgNTkuNyAyMC4xIDY3LjNjMi40IDYgNSAxMi41LTUgMTcuNEwyMyAyNTkuM3MxMDIuNiA4OS45IDEwNS4yIDkyLjRjNS4xIDUgMTAgNy41IDUuMSAyMi41LTUuMSAxNS0xMC4xIDM1LjEtMTAuMSAzNS4xczk1LjItMjAuMSAxMDUuMy0yMi42YzguNy0uOSAxOC4zIDIuNSAxOC4zIDEyLjVTMjQxIDUxMiAyNDEgNTEyaDMwcy01LjgtMTAyLjctNS44LTExMi44IDkuNS0xMy40IDE4LjQtMTIuNWMxMCAyLjUgMTA1LjIgMjIuNiAxMDUuMiAyMi42cy01LTIwLjEtMTAtMzUuMSAwLTE3LjUgNS0yMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0FtYXpvblBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjQuNyAyMDEuOGMuMS0xMS44IDAtMjMuNSAwLTM1LjN2LTM1LjNjMC0xLjMuNC0yIDEuNC0yLjcgMTEuNS04IDI0LjEtMTIuMSAzOC4yLTExLjEgMTIuNS45IDIyLjcgNyAyOC4xIDIxLjcgMy4zIDguOSA0LjEgMTguMiA0LjEgMjcuNyAwIDguNy0uNyAxNy4zLTMuNCAyNS42LTUuNyAxNy44LTE4LjcgMjQuNy0zNS43IDIzLjktMTEuNy0uNS0yMS45LTUtMzEuNC0xMS43LS45LS44LTEuNC0xLjYtMS4zLTIuOHptMTU0LjkgMTQuNmM0LjYgMS44IDkuMyAyIDE0LjEgMS41IDExLjYtMS4yIDIxLjktNS43IDMxLjMtMTIuNS45LS42IDEuMy0xLjMgMS4zLTIuNS0uMS0zLjkgMC03LjkgMC0xMS44IDAtNC0uMS04IDAtMTIgMC0xLjQtLjQtMi0xLjgtMi4yLTctLjktMTMuOS0yLjItMjAuOS0yLjktNy0uNi0xNC0uMy0yMC44IDEuOS02LjcgMi4yLTExLjcgNi4yLTEzLjcgMTMuMS0xLjYgNS40LTEuNiAxMC44LjEgMTYuMiAxLjYgNS41IDUuMiA5LjIgMTAuNCAxMS4yek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS0yMDcuNSAyMy45Yy40IDEuNy45IDMuNCAxLjYgNS4xIDE2LjUgNDAuNiAzMi45IDgxLjMgNDkuNSAxMjEuOSAxLjQgMy41IDEuNyA2LjQuMiA5LjktMi44IDYuMi00LjkgMTIuNi03LjggMTguNy0yLjYgNS41LTYuNyA5LjUtMTIuNyAxMS4yLTQuMiAxLjEtOC41IDEuMy0xMi45LjktMi4xLS4yLTQuMi0uNy02LjMtLjgtMi44LS4yLTQuMiAxLjEtNC4zIDQtLjEgMi44LS4xIDUuNiAwIDguMy4xIDQuNiAxLjYgNi43IDYuMiA3LjUgNC43LjggOS40IDEuNiAxNC4yIDEuNyAxNC4zLjMgMjUuNy01LjQgMzMuMS0xNy45IDIuOS00LjkgNS42LTEwLjEgNy43LTE1LjQgMTkuOC01MC4xIDM5LjUtMTAwLjMgNTkuMi0xNTAuNS42LTEuNSAxLjEtMyAxLjMtNC42LjQtMi40LS43LTMuNi0zLjEtMy43LTUuNi0uMS0xMS4xIDAtMTYuNyAwLTMuMSAwLTUuMyAxLjQtNi40IDQuMy0uNCAxLjEtLjkgMi4zLTEuMyAzLjRsLTI5LjEgODMuN2MtMi4xIDYuMS00LjIgMTIuMS02LjUgMTguNi0uNC0uOS0uNi0xLjQtLjgtMS45LTEwLjgtMjkuOS0yMS42LTU5LjktMzIuNC04OS44LTEuNy00LjctMy41LTkuNS01LjMtMTQuMi0uOS0yLjUtMi43LTQtNS40LTQtNi40LS4xLTEyLjgtLjItMTkuMi0uMS0yLjIgMC0zLjMgMS42LTIuOCAzLjd6TTI0Mi40IDIwNmMxLjcgMTEuNyA3LjYgMjAuOCAxOCAyNi42IDkuOSA1LjUgMjAuNyA2LjIgMzEuNyA0LjYgMTIuNy0xLjkgMjMuOS03LjMgMzMuOC0xNS41LjQtLjMuOC0uNiAxLjQtMSAuNSAzLjIuOSA2LjIgMS41IDkuMi41IDIuNiAyLjEgNC4zIDQuNSA0LjQgNC42LjEgOS4xLjEgMTMuNyAwIDIuMy0uMSAzLjgtMS42IDQtMy45LjEtLjguMS0xLjYuMS0yLjN2LTg4LjhjMC0zLjYtLjItNy4yLS43LTEwLjgtMS42LTEwLjgtNi4yLTE5LjctMTUuOS0yNS40LTUuNi0zLjMtMTEuOC01LTE4LjItNS45LTMtLjQtNi0uNy05LjEtMS4xaC0xMGMtLjguMS0xLjYuMy0yLjUuMy04LjIuNC0xNi4zIDEuNC0yNC4yIDMuNS01LjEgMS4zLTEwIDMuMi0xNSA0LjktMyAxLTQuNSAzLjItNC40IDYuNS4xIDIuOC0uMSA1LjYgMCA4LjMuMSA0LjEgMS44IDUuMiA1LjcgNC4xIDYuNS0xLjcgMTMuMS0zLjUgMTkuNy00LjggMTAuMy0xLjkgMjAuNy0yLjcgMzEuMS0xLjIgNS40LjggMTAuNSAyLjQgMTQuMSA3IDMuMSA0IDQuMiA4LjggNC40IDEzLjcuMyA2LjkuMiAxMy45LjMgMjAuOCAwIC40LS4xLjctLjIgMS4yLS40IDAtLjggMC0xLjEtLjEtOC44LTIuMS0xNy43LTMuNi0yNi44LTQuMS05LjUtLjUtMTguOS4xLTI3LjkgMy4yLTEwLjggMy44LTE5LjUgMTAuMy0yNC42IDIwLjgtNC4xIDguMy00LjYgMTctMy40IDI1Ljh6TTk4LjcgMTA2Ljl2MTc1LjNjMCAuOCAwIDEuNy4xIDIuNS4yIDIuNSAxLjcgNC4xIDQuMSA0LjIgNS45LjEgMTEuOC4xIDE3LjcgMCAyLjUgMCA0LTEuNyA0LjEtNC4xLjEtLjguMS0xLjcuMS0yLjV2LTYwLjdjLjkuNyAxLjQgMS4yIDEuOSAxLjYgMTUgMTIuNSAzMi4yIDE2LjYgNTEuMSAxMi45IDE3LjEtMy40IDI4LjktMTMuOSAzNi43LTI5LjIgNS44LTExLjYgOC4zLTI0LjEgOC43LTM3IC41LTE0LjMtMS0yOC40LTYuOC00MS43LTcuMS0xNi40LTE4LjktMjcuMy0zNi43LTMwLjktMi43LS42LTUuNS0uOC04LjItMS4yaC03Yy0xLjIuMi0yLjQuMy0zLjYuNS0xMS43IDEuNC0yMi4zIDUuOC0zMS44IDEyLjctMiAxLjQtMy45IDMtNS45IDQuNS0uMS0uNS0uMy0uOC0uNC0xLjItLjQtMi4zLS43LTQuNi0xLjEtNi45LS42LTMuOS0yLjUtNS41LTYuNC01LjZoLTkuN2MtNS45LS4xLTYuOSAxLTYuOSA2Ljh6TTQ5My42IDMzOWMtMi43LS43LTUuMSAwLTcuNiAxLTQzLjkgMTguNC04OS41IDMwLjItMTM2LjggMzUuOC0xNC41IDEuNy0yOS4xIDIuOC00My43IDMuMi0yNi42LjctNTMuMi0uOC03OS42LTQuMy0xNy44LTIuNC0zNS41LTUuNy01My05LjktMzctOC45LTcyLjctMjEuNy0xMDYuNy0zOC44LTguOC00LjQtMTcuNC05LjMtMjYuMS0xNC0zLjgtMi4xLTYuMi0xLjUtOC4yIDIuMXYxLjdjMS4yIDEuNiAyLjIgMy40IDMuNyA0LjggMzYgMzIuMiA3Ni42IDU2LjUgMTIyIDcyLjkgMjEuOSA3LjkgNDQuNCAxMy43IDY3LjMgMTcuNSAxNCAyLjMgMjggMy44IDQyLjIgNC41IDMgLjEgNiAuMiA5IC40LjcgMCAxLjQuMiAyLjEuM2gxNy43Yy43LS4xIDEuNC0uMyAyLjEtLjMgMTQuOS0uNCAyOS44LTEuOCA0NC42LTQgMjEuNC0zLjIgNDIuNC04LjEgNjIuOS0xNC43IDI5LjYtOS42IDU3LjctMjIuNCA4My40LTQwLjEgMi44LTEuOSA1LjctMy44IDgtNi4yIDQuMy00LjQgMi4zLTEwLjQtMy4zLTExLjl6bTUwLjQtMjcuN2MtLjgtNC4yLTQtNS44LTcuNi03LTUuNy0xLjktMTEuNi0yLjgtMTcuNi0zLjMtMTEtLjktMjItLjQtMzIuOCAxLjYtMTIgMi4yLTIzLjQgNi4xLTMzLjUgMTMuMS0xLjIuOC0yLjQgMS44LTMuMSAzLS42LjktLjcgMi4zLS41IDMuNC4zIDEuMyAxLjcgMS42IDMgMS41LjYgMCAxLjIgMCAxLjgtLjFsMTkuNS0yLjFjOS42LS45IDE5LjItMS41IDI4LjgtLjggNC4xLjMgOC4xIDEuMiAxMiAyLjIgNC4zIDEuMSA2LjIgNC40IDYuNCA4LjcuMyA2LjctMS4yIDEzLjEtMi45IDE5LjUtMy41IDEyLjktOC4zIDI1LjQtMTMuMyAzNy44LS4zLjgtLjcgMS43LS44IDIuNS0uNCAyLjUgMSA0IDMuNCAzLjUgMS40LS4zIDMtMS4xIDQtMi4xIDMuNy0zLjYgNy41LTcuMiAxMC42LTExLjIgMTAuNy0xMy44IDE3LTI5LjYgMjAuNy00Ni42LjctMyAxLjItNi4xIDEuNy05LjEuMi00LjcuMi05LjYuMi0xNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY0FtZXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI1LjEgMTY3LjhjMC0xNi40LTE0LjEtMTguNC0yNy40LTE4LjRsLTM5LjEtLjN2NjkuM0gyNzV2LTI1LjFoMThjMTguNCAwIDE0LjUgMTAuMyAxNC44IDI1LjFoMTYuNnYtMTMuNWMwLTkuMi0xLjUtMTUuMS0xMS0xOC40IDcuNC0zIDExLjgtMTAuNyAxMS43LTE4Ljd6bS0yOS40IDExLjNIMjc1di0xNS4zaDIxYzUuMSAwIDEwLjcgMSAxMC43IDcuNCAwIDYuNi01LjMgNy45LTExIDcuOXpNMjc5IDI2OC42aC01Mi43bC0yMSAyMi44LTIwLjUtMjIuOGgtNjYuNWwtLjEgNjkuM2g2NS40bDIxLjMtMjMgMjAuNCAyM2gzMi4ybC4xLTIzLjNjMTguOSAwIDQ5LjMgNC42IDQ5LjMtMjMuMyAwLTE3LjMtMTIuMy0yMi43LTI3LjktMjIuN3ptLTEwMy44IDU0LjdoLTQwLjZ2LTEzLjhoMzYuM3YtMTQuMWgtMzYuM3YtMTIuNWg0MS43bDE3LjkgMjAuMnptNjUuOCA4LjJsLTI1LjMtMjguMUwyNDEgMjc2em0zNy44LTMxaC0yMS4ydi0xNy42aDIxLjVjNS42IDAgMTAuMiAyLjMgMTAuMiA4LjQgMCA2LjQtNC42IDkuMi0xMC41IDkuMnptLTMxLjYtMTM2Ljd2LTE0LjZoLTU1LjV2NjkuM2g1NS41di0xNC4zaC0zOC45di0xMy44aDM3Ljh2LTE0LjFoLTM3Ljh2LTEyLjV6TTU3NiAyNTUuNGgtLjJ6bS0xOTQuNiAzMS45YzAtMTYuNC0xNC4xLTE4LjctMjcuMS0xOC43aC0zOS40bC0uMSA2OS4zaDE2LjZsLjEtMjUuM2gxNy42YzExIDAgMTQuOCAyIDE0LjggMTMuOGwtLjEgMTEuNWgxNi42bC4xLTEzLjhjMC04LjktMS44LTE1LjEtMTEtMTguNCA3LjctMy4xIDExLjgtMTAuOCAxMS45LTE4LjR6bS0yOS4yIDExLjJoLTIwLjd2LTE1LjZoMjFjNS4xIDAgMTAuNyAxIDEwLjcgNy40IDAgNi45LTUuNCA4LjItMTEgOC4yem0tMTcyLjgtODB2LTY5LjNoLTI3LjZsLTE5LjcgNDctMjEuNy00N0g4My4zdjY1LjdsLTI4LjEtNjUuN0gzMC43TDEgMjE4LjVoMTcuOWw2LjQtMTUuM2gzNC41bDYuNCAxNS4zSDEwMHYtNTQuMmwyNCA1NC4yaDE0LjZsMjQtNTQuMnY1NC4yek0zMS4yIDE4OC44bDExLjItMjcuNiAxMS41IDI3LjZ6bTQ3Ny40IDE1OC45di00LjVjLTEwLjggNS42LTMuOSA0LjUtMTU2LjcgNC41IDAtMjUuMi4xLTIzLjkgMC0yNS4yLTEuNy0uMS0zLjItLjEtOS40LS4xIDAgMTcuOS0uMSA2LjgtLjEgMjUuM2gtMzkuNmMwLTEyLjEuMS0xNS4zLjEtMjkuMi0xMCA2LTIyLjggNi40LTM0LjMgNi4yIDAgMTQuNy0uMSA4LjMtLjEgMjNoLTQ4LjljLTUuMS01LjctMi43LTMuMS0xNS40LTE3LjQtMy4yIDMuNS0xMi44IDEzLjktMTYuMSAxNy40aC04MnYtOTIuM2g4My4xYzUgNS42IDIuOCAzLjEgMTUuNSAxNy4yIDMuMi0zLjUgMTIuMi0xMy40IDE1LjctMTcuMmg1OGM5LjggMCAxOCAxLjkgMjQuMyA1LjZ2LTUuNmM1NC4zIDAgNjQuMy0xLjQgNzUuNyA1LjF2LTUuMWg3OC4ydjUuMmMxMS40LTYuOSAxOS42LTUuMiA2NC45LTUuMnY1YzEwLjMtNS45IDE2LjYtNS4yIDU0LjMtNVY4MGMwLTI2LjUtMjEuNS00OC00OC00OGgtNDgwYy0yNi41IDAtNDggMjEuNS00OCA0OHYxMDkuOGM5LjQtMjEuOSAxOS43LTQ2IDIzLjEtNTMuOWgzOS43YzQuMyAxMC4xIDEuNiAzLjcgOSAyMS4xdi0yMS4xaDQ2YzIuOSA2LjIgMTEuMSAyNCAxMy45IDMwIDUuOC0xMy42IDEwLjEtMjMuOSAxMi42LTMwaDEwM2MwLS4xIDExLjUgMCAxMS42IDAgNDMuNy4yIDUzLjYtLjggNjQuNCA1LjN2LTUuM0gzNjN2OS4zYzcuNi02LjEgMTcuOS05LjMgMzAuNy05LjNoMjcuNmMwIC41IDEuOS4zIDIuMy4zSDQ1NmM0LjIgOS44IDIuNiA2IDguOCAyMC42di0yMC42aDQzLjNjNC45IDgtMS0xLjggMTEuMiAxOC40di0xOC40aDM5Ljl2OTJoLTQxLjZjLTUuNC05LTEuNC0yLjItMTMuMi0yMS45djIxLjloLTUyLjhjLTYuNC0xNC44LS4xLS4zLTYuNi0xNS4zaC0xOWMtNC4yIDEwLTIuMiA1LjItNi40IDE1LjNoLTI2LjhjLTEyLjMgMC0yMi4zLTMtMjkuNy04Ljl2OC45aC02Ni41Yy0uMy0xMy45LS4xLTI0LjgtLjEtMjQuOC0xLjgtLjMtMy40LS4yLTkuOC0uMnYyNS4xSDE1MS4ydi0xMS40Yy0yLjUgNS42LTIuNyA1LjktNS4xIDExLjRoLTI5LjVjLTQtOC45LTIuOS02LjQtNS4xLTExLjR2MTEuNEg1OC42Yy00LjItMTAuMS0yLjItNS4zLTYuNC0xNS4zSDMzYy00LjIgMTAtMi4yIDUuMi02LjQgMTUuM0gwVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODAuMWMyNi41IDAgNDgtMjEuNSA0OC00OHYtOTAuNGMtMTIuNyA4LjMtMzIuNyA2LjEtNjcuNSA2LjF6bTM2LjMtNjQuNUg1NzV2LTE0LjZoLTMyLjljLTEyLjggMC0yMy44IDYuNi0yMy44IDIwLjcgMCAzMyA0Mi43IDEyLjggNDIuNyAyNy40IDAgNS4xLTQuMyA2LjQtOC40IDYuNGgtMzJsLS4xIDE0LjhoMzJjOC40IDAgMTcuNi0xLjggMjIuNS04Ljl2LTI1LjhjLTEwLjUtMTMuOC0zOS4zLTEuMy0zOS4zLTEzLjUgMC01LjggNC42LTYuNSA5LjItNi41em0tNTcgMzkuOGgtMzIuMmwtLjEgMTQuOGgzMi4yYzE0LjggMCAyNi4yLTUuNiAyNi4yLTIyIDAtMzMuMi00Mi45LTExLjItNDIuOS0yNi4zIDAtNS42IDQuOS02LjQgOS4yLTYuNGgzMC40di0xNC42aC0zMy4yYy0xMi44IDAtMjMuNSA2LjYtMjMuNSAyMC43IDAgMzMgNDIuNyAxMi41IDQyLjcgMjcuNC0uMSA1LjQtNC43IDYuNC04LjggNi40em0tNDIuMi00MC4xdi0xNC4zaC01NS4ybC0uMSA2OS4zaDU1LjJsLjEtMTQuMy0zOC42LS4zdi0xMy44SDQ0NXYtMTQuMWgtMzcuOHYtMTIuNXptLTU2LjMtMTA4LjFjLS4zLjItMS40IDIuMi0xLjQgNy42IDAgNiAuOSA3LjcgMS4xIDcuOS4yLjEgMS4xLjUgMy40LjVsNy4zLTE2LjljLTEuMSAwLTIuMS0uMS0zLjEtLjEtNS42IDAtNyAuNy03LjMgMXptMjAuNC0xMC41aC0uMXptLTE2LjItMTUuMmMtMjMuNSAwLTM0IDEyLTM0IDM1LjMgMCAyMi4yIDEwLjIgMzQgMzMgMzRoMTkuMmw2LjQtMTUuM2gzNC4zbDYuNiAxNS4zaDMzLjd2LTUxLjlsMzEuMiA1MS45aDIzLjZ2LTY5aC0xNi45djQ4LjFsLTI5LjEtNDguMWgtMjUuM3Y2NS40bC0yNy45LTY1LjRoLTI0LjhsLTIzLjUgNTQuNWgtNy40Yy0xMy4zIDAtMTYuMS04LjEtMTYuMS0xOS45IDAtMjMuOCAxNS43LTIwIDMzLjEtMTkuN3YtMTUuMnptNDIuMSAxMi4xbDExLjIgMjcuNmgtMjIuOHptLTEwMS4xLTEydjY5LjNoMTYuOXYtNjkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NBcHBsZVBheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuMiAyMTguNGMwIDE3LjItMTAuNSAyNy4xLTI5IDI3LjFoLTI0LjN2LTU0LjJoMjQuNGMxOC40IDAgMjguOSA5LjggMjguOSAyNy4xem00Ny41IDYyLjZjMCA4LjMgNy4yIDEzLjcgMTguNSAxMy43IDE0LjQgMCAyNS4yLTkuMSAyNS4yLTIxLjl2LTcuN2wtMjMuNSAxLjVjLTEzLjMuOS0yMC4yIDUuOC0yMC4yIDE0LjR6TTU3NiA3OXYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4Vjc5YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI3LjggMTk3LjJjOC40LjcgMTYuOC00LjIgMjIuMS0xMC40IDUuMi02LjQgOC42LTE1IDcuNy0yMy43LTcuNC4zLTE2LjYgNC45LTIxLjkgMTEuMy00LjggNS41LTguOSAxNC40LTcuOSAyMi44em02MC42IDc0LjVjLS4yLS4yLTE5LjYtNy42LTE5LjgtMzAtLjItMTguNyAxNS4zLTI3LjcgMTYtMjguMi04LjgtMTMtMjIuNC0xNC40LTI3LjEtMTQuNy0xMi4yLS43LTIyLjYgNi45LTI4LjQgNi45LTUuOSAwLTE0LjctNi42LTI0LjMtNi40LTEyLjUuMi0yNC4yIDcuMy0zMC41IDE4LjYtMTMuMSAyMi42LTMuNCA1NiA5LjMgNzQuNCA2LjIgOS4xIDEzLjcgMTkuMSAyMy41IDE4LjcgOS4zLS40IDEzLTYgMjQuMi02IDExLjMgMCAxNC41IDYgMjQuMyA1LjkgMTAuMi0uMiAxNi41LTkuMSAyMi44LTE4LjIgNi45LTEwLjQgOS44LTIwLjQgMTAtMjF6bTEzNS40LTUzLjRjMC0yNi42LTE4LjUtNDQuOC00NC45LTQ0LjhoLTUxLjJ2MTM2LjRoMjEuMnYtNDYuNmgyOS4zYzI2LjggMCA0NS42LTE4LjQgNDUuNi00NXptOTAgMjMuN2MwLTE5LjctMTUuOC0zMi40LTQwLTMyLjQtMjIuNSAwLTM5LjEgMTIuOS0zOS43IDMwLjVoMTkuMWMxLjYtOC40IDkuNC0xMy45IDIwLTEzLjkgMTMgMCAyMC4yIDYgMjAuMiAxNy4ydjcuNWwtMjYuNCAxLjZjLTI0LjYgMS41LTM3LjkgMTEuNi0zNy45IDI5LjEgMCAxNy43IDEzLjcgMjkuNCAzMy40IDI5LjQgMTMuMyAwIDI1LjYtNi43IDMxLjItMTcuNGguNFYzMTBoMTkuNnYtNjh6TTUxNiAyMTAuOWgtMjEuNWwtMjQuOSA4MC42aC0uNGwtMjQuOS04MC42SDQyMmwzNS45IDk5LjMtMS45IDZjLTMuMiAxMC4yLTguNSAxNC4yLTE3LjkgMTQuMi0xLjcgMC00LjktLjItNi4yLS4zdjE2LjRjMS4yLjQgNi41LjUgOC4xLjUgMjAuNyAwIDMwLjQtNy45IDM4LjktMzEuOEw1MTYgMjEwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjRGluZXJzQ2x1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuNyA3OS45Yy05Ni45IDAtMTc1LjggNzguNi0xNzUuOCAxNzUuOCAwIDk2LjkgNzguOSAxNzUuOCAxNzUuOCAxNzUuOCA5Ny4yIDAgMTc1LjgtNzguOSAxNzUuOC0xNzUuOCAwLTk3LjItNzguNi0xNzUuOC0xNzUuOC0xNzUuOHptLTM5LjkgMjc5LjZjLTQxLjctMTUuOS03MS40LTU2LjQtNzEuNC0xMDMuOHMyOS43LTg3LjkgNzEuNC0xMDQuMXYyMDcuOXptNzkuOC4zVjE1MS42YzQxLjcgMTYuMiA3MS40IDU2LjcgNzEuNCAxMDQuMXMtMjkuNyA4Ny45LTcxLjQgMTA0LjF6TTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTMyOS43IDQ0OGgtOTAuM2MtMTA2LjIgMC0xOTMuOC04NS41LTE5My44LTE5MC4yQzQ1LjYgMTQzLjIgMTMzLjIgNjQgMjM5LjQgNjRoOTAuM2MxMDUgMCAyMDAuNyA3OS4yIDIwMC43IDE5My44IDAgMTA0LjctOTUuNyAxOTAuMi0yMDAuNyAxOTAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NEaXNjb3ZlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjAuNCAxOTYuMWMwLTcuOS01LjUtMTIuMS0xNS42LTEyLjFoLTQuOXYyNC45aDQuN2MxMC4zIDAgMTUuOC00LjQgMTUuOC0xMi44ek01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNDQuMSAxMzguOWMyMi42IDAgNTIuOS00LjEgNTIuOSAyNC40IDAgMTIuNi02LjYgMjAuNy0xOC43IDIzLjJsMjUuOCAzNC40aC0xOS42bC0yMi4yLTMyLjhoLTIuMnYzMi44aC0xNnptLTU1LjkuMWg0NS4zdjE0SDQ0NHYxOC4yaDI4LjNWMjE3SDQ0NHYyMi4yaDI5LjNWMjUzSDQyOHptLTY4LjcgMGwyMS45IDU1LjIgMjIuMi01NS4yaDE3LjVsLTM1LjUgODQuMmgtOC42bC0zNS04NC4yem0tNTUuOS0zYzI0LjcgMCA0NC42IDIwIDQ0LjYgNDQuNiAwIDI0LjctMjAgNDQuNi00NC42IDQ0LjYtMjQuNyAwLTQ0LjYtMjAtNDQuNi00NC42IDAtMjQuNyAyMC00NC42IDQ0LjYtNDQuNnptLTQ5LjMgNi4xdjE5Yy0yMC4xLTIwLjEtNDYuOC00LjctNDYuOCAxOSAwIDI1IDI3LjUgMzguNSA0Ni44IDE5LjJ2MTljLTI5LjcgMTQuMy02My4zLTUuNy02My4zLTM4LjIgMC0zMS4yIDMzLjEtNTMgNjMuMy0zOHptLTk3LjIgNjYuM2MxMS40IDAgMjIuNC0xNS4zLTMuMy0yNC40LTE1LTUuNS0yMC4yLTExLjQtMjAuMi0yMi43IDAtMjMuMiAzMC42LTMxLjQgNDkuNy0xNC4zbC04LjQgMTAuOGMtMTAuNC0xMS42LTI0LjktNi4yLTI0LjkgMi41IDAgNC40IDIuNyA2LjkgMTIuMyAxMC4zIDE4LjIgNi42IDIzLjYgMTIuNSAyMy42IDI1LjYgMCAyOS41LTM4LjggMzcuNC01Ni42IDExLjNsMTAuMy05LjljMy43IDcuMSA5LjkgMTAuOCAxNy41IDEwLjh6TTU1LjQgMjUzSDMydi04MmgyMy40YzI2LjEgMCA0NC4xIDE3IDQ0LjEgNDEuMSAwIDE4LjUtMTMuMiA0MC45LTQ0LjEgNDAuOXptNjcuNSAwaC0xNnYtODJoMTZ6TTU0NCA0MzNjMCA4LjItNi44IDE1LTE1IDE1SDEyOGMxODkuNi0zNS42IDM4Mi43LTEzOS4yIDQxNi0xNjB6TTc0LjEgMTkxLjZjLTUuMi00LjktMTEuNi02LjYtMjEuOS02LjZINDh2NTQuMmg0LjJjMTAuMyAwIDE3LTIgMjEuOS02LjQgNS43LTUuMiA4LjktMTIuOCA4LjktMjAuN3MtMy4yLTE1LjUtOC45LTIwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjSmNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMS41IDI0NC4zVjIxMmM0MS4yIDAgMzguNS4yIDM4LjUuMiA3LjMgMS4zIDEzLjMgNy4zIDEzLjMgMTYgMCA4LjgtNiAxNC41LTEzLjMgMTUuOC0xLjIuNC0zLjMuMy0zOC41LjN6bTQyLjggMjAuMmMtMi44LS43LTMuMy0uNS00Mi44LS41djM1YzM5LjYgMCA0MCAuMiA0Mi44LS41IDcuNS0xLjUgMTMuNS04IDEzLjUtMTcgMC04LjctNi0xNS41LTEzLjUtMTd6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTgyIDE5Mi4zaC01N2MwIDY3LjEgMTAuNyAxMDkuNy0zNS44IDEwOS43LTE5LjUgMC0zOC44LTUuNy01Ny4yLTE0Ljh2MjhjMzAgOC4zIDY4IDguMyA2OCA4LjMgOTcuOSAwIDgyLTQ3LjcgODItMTMxLjJ6bTE3OC41IDQuNWMtNjMuNC0xNi0xNjUtMTQuOS0xNjUgNTkuMyAwIDc3LjEgMTA4LjIgNzMuNiAxNjUgNTkuMlYyODdDMzEyLjkgMzExLjcgMjUzIDMwOSAyNTMgMjU2czU5LjgtNTUuNiAxMDcuNS0zMS4ydi0yOHpNNTQ0IDI4Ni41YzAtMTguNS0xNi41LTMwLjUtMzgtMzJ2LS44YzE5LjUtMi43IDMwLjMtMTUuNSAzMC4zLTMwLjIgMC0xOS0xNS43LTMwLTM3LTMxIDAgMCA2LjMtLjMtMTIwLjMtLjN2MTI3LjVoMTIyLjdjMjQuMy4xIDQyLjMtMTIuOSA0Mi4zLTMzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjTWFzdGVyY2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODIuOSA0MTAuM2MwIDYuOC00LjYgMTEuNy0xMS4yIDExLjctNi44IDAtMTEuMi01LjItMTEuMi0xMS43IDAtNi41IDQuNC0xMS43IDExLjItMTEuNyA2LjYgMCAxMS4yIDUuMiAxMS4yIDExLjd6bS0zMTAuOC0xMS43Yy03LjEgMC0xMS4yIDUuMi0xMS4yIDExLjcgMCA2LjUgNC4xIDExLjcgMTEuMiAxMS43IDYuNSAwIDEwLjktNC45IDEwLjktMTEuNy0uMS02LjUtNC40LTExLjctMTAuOS0xMS43em0xMTcuNS0uM2MtNS40IDAtOC43IDMuNS05LjUgOC43aDE5LjFjLS45LTUuNy00LjQtOC43LTkuNi04Ljd6bTEwNy44LjNjLTYuOCAwLTEwLjkgNS4yLTEwLjkgMTEuNyAwIDYuNSA0LjEgMTEuNyAxMC45IDExLjcgNi44IDAgMTEuMi00LjkgMTEuMi0xMS43IDAtNi41LTQuNC0xMS43LTExLjItMTEuN3ptMTA1LjkgMjYuMWMwIC4zLjMuNS4zIDEuMSAwIC4zLS4zLjUtLjMgMS4xLS4zLjMtLjMuNS0uNS44LS4zLjMtLjUuNS0xLjEuNS0uMy4zLS41LjMtMS4xLjMtLjMgMC0uNSAwLTEuMS0uMy0uMyAwLS41LS4zLS44LS41LS4zLS4zLS41LS41LS41LS44LS4zLS41LS4zLS44LS4zLTEuMSAwLS41IDAtLjguMy0xLjEgMC0uNS4zLS44LjUtMS4xLjMtLjMuNS0uMy44LS41LjUtLjMuOC0uMyAxLjEtLjMuNSAwIC44IDAgMS4xLjMuNS4zLjguMyAxLjEuNXMuMi42LjUgMS4xem0tMi4yIDEuNGMuNSAwIC41LS4zLjgtLjMuMy0uMy4zLS41LjMtLjggMC0uMyAwLS41LS4zLS44LS4zIDAtLjUtLjMtMS4xLS4zaC0xLjZ2My41aC44VjQyNmguM2wxLjEgMS40aC44bC0xLjEtMS4zek01NzYgODF2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MWMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTY0IDIyMC42YzAgNzYuNSA2Mi4xIDEzOC41IDEzOC41IDEzOC41IDI3LjIgMCA1My45LTguMiA3Ni41LTIzLjEtNzIuOS01OS4zLTcyLjQtMTcxLjIgMC0yMzAuNS0yMi42LTE1LTQ5LjMtMjMuMS03Ni41LTIzLjEtNzYuNC0uMS0xMzguNSA2Mi0xMzguNSAxMzguMnptMjI0IDEwOC44YzcwLjUtNTUgNzAuMi0xNjIuMiAwLTIxNy41LTcwLjIgNTUuMy03MC41IDE2Mi42IDAgMjE3LjV6bS0xNDIuMyA3Ni4zYzAtOC43LTUuNy0xNC40LTE0LjctMTQuNy00LjYgMC05LjUgMS40LTEyLjggNi41LTIuNC00LjEtNi41LTYuNS0xMi4yLTYuNS0zLjggMC03LjYgMS40LTEwLjYgNS40VjM5MmgtOC4ydjM2LjdoOC4yYzAtMTguOS0yLjUtMzAuMiA5LTMwLjIgMTAuMiAwIDguMiAxMC4yIDguMiAzMC4yaDcuOWMwLTE4LjMtMi41LTMwLjIgOS0zMC4yIDEwLjIgMCA4LjIgMTAgOC4yIDMwLjJoOC4ydi0yM3ptNDQuOS0xMy43aC03Ljl2NC40Yy0yLjctMy4zLTYuNS01LjQtMTEuNy01LjQtMTAuMyAwLTE4LjIgOC4yLTE4LjIgMTkuMyAwIDExLjIgNy45IDE5LjMgMTguMiAxOS4zIDUuMiAwIDktMS45IDExLjctNS40djQuNmg3LjlWMzkyem00MC41IDI1LjZjMC0xNS0yMi45LTguMi0yMi45LTE1LjIgMC01LjcgMTEuOS00LjggMTguNS0xLjFsMy4zLTYuNWMtOS40LTYuMS0zMC4yLTYtMzAuMiA4LjIgMCAxNC4zIDIyLjkgOC4zIDIyLjkgMTUgMCA2LjMtMTMuNSA1LjgtMjAuNy44bC0zLjUgNi4zYzExLjIgNy42IDMyLjYgNiAzMi42LTcuNXptMzUuNCA5LjNsLTIuMi02LjhjLTMuOCAyLjEtMTIuMiA0LjQtMTIuMi00LjF2LTE2LjZoMTMuMVYzOTJoLTEzLjF2LTExLjJoLTguMlYzOTJoLTcuNnY3LjNoNy42VjQxNmMwIDE3LjYgMTcuMyAxNC40IDIyLjYgMTAuOXptMTMuMy0xMy40aDI3LjVjMC0xNi4yLTcuNC0yMi42LTE3LjQtMjIuNi0xMC42IDAtMTguMiA3LjktMTguMiAxOS4zIDAgMjAuNSAyMi42IDIzLjkgMzMuOCAxNC4ybC0zLjgtNmMtNy44IDYuNC0xOS42IDUuOC0yMS45LTQuOXptNTkuMS0yMS41Yy00LjYtMi0xMS42LTEuOC0xNS4yIDQuNFYzOTJoLTguMnYzNi43aDguMlY0MDhjMC0xMS42IDkuNS0xMC4xIDEyLjgtOC40bDIuNC03LjZ6bTEwLjYgMTguM2MwLTExLjQgMTEuNi0xNS4xIDIwLjctOC40bDMuOC02LjVjLTExLjYtOS4xLTMyLjctNC4xLTMyLjcgMTUgMCAxOS44IDIyLjQgMjMuOCAzMi43IDE1bC0zLjgtNi41Yy05LjIgNi41LTIwLjcgMi42LTIwLjctOC42em02Ni43LTE4LjNINDA4djQuNGMtOC4zLTExLTI5LjktNC44LTI5LjkgMTMuOSAwIDE5LjIgMjIuNCAyNC43IDI5LjkgMTMuOXY0LjZoOC4yVjM5MnptMzMuNyAwYy0yLjQtMS4yLTExLTIuOS0xNS4yIDQuNFYzOTJoLTcuOXYzNi43aDcuOVY0MDhjMC0xMSA5LTEwLjMgMTIuOC04LjRsMi40LTcuNnptNDAuMy0xNC45aC03Ljl2MTkuM2MtOC4yLTEwLjktMjkuOS01LjEtMjkuOSAxMy45IDAgMTkuNCAyMi41IDI0LjYgMjkuOSAxMy45djQuNmg3Ljl2LTUxLjd6bTcuNi03NS4xdjQuNmguOFYzMDJoMS45di0uOGgtNC42di44aDEuOXptNi42IDEyMy44YzAtLjUgMC0xLjEtLjMtMS42LS4zLS4zLS41LS44LS44LTEuMS0uMy0uMy0uOC0uNS0xLjEtLjgtLjUgMC0xLjEtLjMtMS42LS4zLS4zIDAtLjguMy0xLjQuMy0uNS4zLS44LjUtMS4xLjgtLjUuMy0uOC44LS44IDEuMS0uMy41LS4zIDEuMS0uMyAxLjYgMCAuMyAwIC44LjMgMS40IDAgLjMuMy44LjggMS4xLjMuMy41LjUgMS4xLjguNS4zIDEuMS4zIDEuNC4zLjUgMCAxLjEgMCAxLjYtLjMuMy0uMy44LS41IDEuMS0uOC4zLS4zLjUtLjguOC0xLjEuMy0uNi4zLTEuMS4zLTEuNHptMy4yLTEyNC43aC0xLjRsLTEuNiAzLjUtMS42LTMuNWgtMS40djUuNGguOHYtNC4xbDEuNiAzLjVoMS4xbDEuNC0zLjV2NC4xaDEuMXYtNS40em00LjQtODAuNWMwLTc2LjItNjIuMS0xMzguMy0xMzguNS0xMzguMy0yNy4yIDAtNTMuOSA4LjItNzYuNSAyMy4xIDcyLjEgNTkuMyA3My4yIDE3MS41IDAgMjMwLjUgMjIuNiAxNSA0OS41IDIzLjEgNzYuNSAyMy4xIDc2LjQuMSAxMzguNS02MS45IDEzOC41LTEzOC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDY1BheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuMyAyNTguMmMwIDEyLjItOS43IDIxLjUtMjIgMjEuNS05LjIgMC0xNi01LjItMTYtMTUgMC0xMi4yIDkuNS0yMiAyMS43LTIyIDkuMyAwIDE2LjMgNS43IDE2LjMgMTUuNXpNODAuNSAyMDkuN2gtNC43Yy0xLjUgMC0zIDEtMy4yIDIuN2wtNC4zIDI2LjcgOC4yLS4zYzExIDAgMTkuNS0xLjUgMjEuNS0xNC4yIDIuMy0xMy40LTYuMi0xNC45LTE3LjUtMTQuOXptMjg0IDBIMzYwYy0xLjggMC0zIDEtMy4yIDIuN2wtNC4yIDI2LjcgOC0uM2MxMyAwIDIyLTMgMjItMTgtLjEtMTAuNi05LjYtMTEuMS0xOC4xLTExLjF6TTU3NiA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpNMTI4LjMgMjE1LjRjMC0yMS0xNi4yLTI4LTM0LjctMjhoLTQwYy0yLjUgMC01IDItNS4yIDQuN0wzMiAyOTQuMmMtLjMgMiAxLjIgNCAzLjIgNGgxOWMyLjcgMCA1LjItMi45IDUuNS01LjdsNC41LTI2LjZjMS03LjIgMTMuMi00LjcgMTgtNC43IDI4LjYgMCA0Ni4xLTE3IDQ2LjEtNDUuOHptODQuMiA4LjhoLTE5Yy0zLjggMC00IDUuNS00LjIgOC4yLTUuOC04LjUtMTQuMi0xMC0yMy43LTEwLTI0LjUgMC00My4yIDIxLjUtNDMuMiA0NS4yIDAgMTkuNSAxMi4yIDMyLjIgMzEuNyAzMi4yIDkgMCAyMC4yLTQuOSAyNi41LTExLjktLjUgMS41LTEgNC43LTEgNi4yIDAgMi4zIDEgNCAzLjIgNEgyMDBjMi43IDAgNS0yLjkgNS41LTUuN2wxMC4yLTY0LjNjLjMtMS45LTEuMi0zLjktMy4yLTMuOXptNDAuNSA5Ny45bDYzLjctOTIuNmMuNS0uNS41LTEgLjUtMS43IDAtMS43LTEuNS0zLjUtMy4yLTMuNWgtMTkuMmMtMS43IDAtMy41IDEtNC41IDIuNWwtMjYuNSAzOS0xMS0zNy41Yy0uOC0yLjItMy00LTUuNS00aC0xOC43Yy0xLjcgMC0zLjIgMS44LTMuMiAzLjUgMCAxLjIgMTkuNSA1Ni44IDIxLjIgNjIuMS0yLjcgMy44LTIwLjUgMjguNi0yMC41IDMxLjYgMCAxLjggMS41IDMuMiAzLjIgMy4yaDE5LjJjMS44LS4xIDMuNS0xLjEgNC41LTIuNnptMTU5LjMtMTA2LjdjMC0yMS0xNi4yLTI4LTM0LjctMjhoLTM5LjdjLTIuNyAwLTUuMiAyLTUuNSA0LjdsLTE2LjIgMTAyYy0uMiAyIDEuMyA0IDMuMiA0aDIwLjVjMiAwIDMuNS0xLjUgNC0zLjJsNC41LTI5YzEtNy4yIDEzLjItNC43IDE4LTQuNyAyOC40IDAgNDUuOS0xNyA0NS45LTQ1Ljh6bTg0LjIgOC44aC0xOWMtMy44IDAtNCA1LjUtNC4zIDguMi01LjUtOC41LTE0LTEwLTIzLjctMTAtMjQuNSAwLTQzLjIgMjEuNS00My4yIDQ1LjIgMCAxOS41IDEyLjIgMzIuMiAzMS43IDMyLjIgOS4zIDAgMjAuNS00LjkgMjYuNS0xMS45LS4zIDEuNS0xIDQuNy0xIDYuMiAwIDIuMyAxIDQgMy4yIDRINDg0YzIuNyAwIDUtMi45IDUuNS01LjdsMTAuMi02NC4zYy4zLTEuOS0xLjItMy45LTMuMi0zLjl6bTQ3LjUtMzMuM2MwLTItMS41LTMuNS0zLjItMy41aC0xOC41Yy0xLjUgMC0zIDEuMi0zLjIgMi43bC0xNi4yIDEwNC0uMy41YzAgMS44IDEuNSAzLjUgMy41IDMuNWgxNi41YzIuNSAwIDUtMi45IDUuMi01LjdMNTQ0IDE5MS4ydi0uM3ptLTkwIDUxLjhjLTEyLjIgMC0yMS43IDkuNy0yMS43IDIyIDAgOS43IDcgMTUgMTYuMiAxNSAxMiAwIDIxLjctOS4yIDIxLjctMjEuNS4xLTkuOC02LjktMTUuNS0xNi4yLTE1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNjU3RyaXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Mi40IDIyMC44Yy04LjkgMC0xOC43IDYuNy0xOC43IDIyLjdoMzYuN2MwLTE2LTkuMy0yMi43LTE4LTIyLjd6TTM3NSAyMjMuNGMtOC4yIDAtMTMuMyAyLjktMTcgN2wuMiA1Mi44YzMuNSAzLjcgOC41IDYuNyAxNi44IDYuNyAxMy4xIDAgMjEuOS0xNC4zIDIxLjktMzMuNCAwLTE4LjYtOS0zMy4yLTIxLjktMzMuMXpNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTIyLjIgMjgxLjFjMCAyNS42LTIwLjMgNDAuMS00OS45IDQwLjMtMTIuMiAwLTI1LjYtMi40LTM4LjgtOC4xdi0zMy45YzEyIDYuNCAyNy4xIDExLjMgMzguOSAxMS4zIDcuOSAwIDEzLjYtMi4xIDEzLjYtOC43IDAtMTctNTQtMTAuNi01NC00OS45IDAtMjUuMiAxOS4yLTQwLjIgNDgtNDAuMiAxMS44IDAgMjMuNSAxLjggMzUuMyA2LjV2MzMuNGMtMTAuOC01LjgtMjQuNS05LjEtMzUuMy05LjEtNy41IDAtMTIuMSAyLjItMTIuMSA3LjcgMCAxNiA1NC4zIDguNCA1NC4zIDUwLjd6bTY4LjgtNTYuNmgtMjdWMjc1YzAgMjAuOSAyMi41IDE0LjQgMjcgMTIuNnYyOC45Yy00LjcgMi42LTEzLjMgNC43LTI0LjkgNC43LTIxLjEgMC0zNi45LTE1LjUtMzYuOS0zNi41bC4yLTExMy45IDM0LjctNy40djMwLjhIMTkxem03NCAyLjRjLTQuNS0xLjUtMTguNy0zLjYtMjcuMSA3LjR2ODQuNGgtMzUuNVYxOTQuMmgzMC43bDIuMiAxMC41YzguMy0xNS4zIDI0LjktMTIuMiAyOS42LTEwLjVoLjF6bTQ0LjEgOTEuOGgtMzUuN1YxOTQuMmgzNS43em0wLTE0Mi45bC0zNS43IDcuNnYtMjguOWwzNS43LTcuNnptNzQuMSAxNDUuNWMtMTIuNCAwLTIwLTUuMy0yNS4xLTlsLS4xIDQwLjItMzUuNSA3LjVWMTk0LjJoMzEuM2wxLjggOC44YzQuOS00LjUgMTMuOS0xMS4xIDI3LjgtMTEuMSAyNC45IDAgNDguNCAyMi41IDQ4LjQgNjMuOCAwIDQ1LjEtMjMuMiA2NS41LTQ4LjYgNjUuNnptMTYwLjQtNTEuNWgtNjkuNWMxLjYgMTYuNiAxMy44IDIxLjUgMjcuNiAyMS41IDE0LjEgMCAyNS4yLTMgMzQuOS03LjlWMzEyYy05LjcgNS4zLTIyLjQgOS4yLTM5LjQgOS4yLTM0LjYgMC01OC44LTIxLjctNTguOC02NC41IDAtMzYuMiAyMC41LTY0LjkgNTQuMy02NC45IDMzLjcgMCA1MS4zIDI4LjcgNTEuMyA2NS4xIDAgMy41LS4zIDEwLjktLjQgMTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2NWaXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MC4xIDIzMS4zczcuNiAzNy4yIDkuMyA0NUg0NDZjMy4zLTguOSAxNi00My41IDE2LTQzLjUtLjIuMyAzLjMtOS4xIDUuMy0xNC45bDIuOCAxMy40ek01NzYgODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGg0ODBjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTE1Mi41IDMzMS4yTDIxNS43IDE3NmgtNDIuNWwtMzkuMyAxMDYtNC4zLTIxLjUtMTQtNzEuNGMtMi4zLTkuOS05LjQtMTIuNy0xOC4yLTEzLjFIMzIuN2wtLjcgMy4xYzE1LjggNCAyOS45IDkuOCA0Mi4yIDE3LjFsMzUuOCAxMzVoNDIuNXptOTQuNC4yTDI3Mi4xIDE3NmgtNDAuMmwtMjUuMSAxNTUuNGg0MC4xem0xMzkuOS01MC44Yy4yLTE3LjctMTAuNi0zMS4yLTMzLjctNDIuMy0xNC4xLTcuMS0yMi43LTExLjktMjIuNy0xOS4yLjItNi42IDcuMy0xMy40IDIzLjEtMTMuNCAxMy4xLS4zIDIyLjcgMi44IDI5LjkgNS45bDMuNiAxLjcgNS41LTMzLjZjLTcuOS0zLjEtMjAuNS02LjYtMzYtNi42LTM5LjcgMC02Ny42IDIxLjItNjcuOCA1MS40LS4zIDIyLjMgMjAgMzQuNyAzNS4yIDQyLjIgMTUuNSA3LjYgMjAuOCAxMi42IDIwLjggMTkuMy0uMiAxMC40LTEyLjYgMTUuMi0yNC4xIDE1LjItMTYgMC0yNC42LTIuNS0zNy43LTguM2wtNS4zLTIuNS01LjYgMzQuOWM5LjQgNC4zIDI2LjggOC4xIDQ0LjggOC4zIDQyLjIuMSA2OS43LTIwLjggNzAtNTN6TTUyOCAzMzEuNEw0OTUuNiAxNzZoLTMxLjFjLTkuNiAwLTE2LjkgMi44LTIxIDEyLjlsLTU5LjcgMTQyLjVINDI2czYuOS0xOS4yIDguNC0yMy4zSDQ4NmMxLjIgNS41IDQuOCAyMy4zIDQuOCAyMy4zSDUyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2VudGVyY29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjkuMiAyNjguNmMtMy44IDM1LjItMzUuNCA2MC42LTcwLjYgNTYuOC0zNS4yLTMuOC02MC42LTM1LjQtNTYuOC03MC42IDMuOC0zNS4yIDM1LjQtNjAuNiA3MC42LTU2LjggMzUuMSAzLjggNjAuNiAzNS40IDU2LjggNzAuNnptLTg1LjggMjM1LjFDOTYuNyA0OTYtOC4yIDM2NS41IDEwLjEgMjI0LjNjMTEuMi04Ni42IDY1LjgtMTU2LjkgMTM5LjEtMTkyIDE2MS03Ny4xIDM0OS43IDM3LjQgMzU0LjcgMjE2LjYgNC4xIDE0Ny0xMTguNCAyNjIuMi0yNjAuNSAyNTQuOHptMTc5LjktMTgwYzI3LjktMTE4LTE2MC41LTIwNS45LTIzNy4yLTIzNC4yLTU3LjUgNTYuMy02OS4xIDE4OC42LTMzLjggMzQ0LjQgNjguOCAxNS44IDE2OS4xLTI2LjQgMjcxLTExMC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZW50b3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg5LjYgOTcuNWwzMS42IDMxLjctNzYuMyA3Ni41Vjk3LjV6bS0xNjIuNCAzMS43bDc2LjMgNzYuNVY5Ny41aC00NC43em00MS41LTQxLjZoNDQuN3YxMjcuOWwxMC44IDEwLjggMTAuOC0xMC44Vjg3LjZoNDQuN0wyMjQuMiAzMnptMjYuMiAxNjguMWwtMTAuOC0xMC44SDU1LjV2LTQ0LjhMMCAyNTUuN2w1NS41IDU1LjZ2LTQ0LjhoMTI4LjZsMTAuOC0xMC44em03OS4zLTIwLjdoMTA3Ljl2LTQ0LjhsLTMxLjYtMzEuN3ptMTczLjMgMjAuN0wzOTIgMjAwLjF2NDQuOEgyNjQuM2wtMTAuOCAxMC44IDEwLjggMTAuOEgzOTJ2NDQuOGw1NS41LTU1LjZ6TTY1LjQgMTc2LjJsMzIuNS0zMS43IDkwLjMgOTAuNWgxNS4zdi0xNS4zbC05MC4zLTkwLjUgMzEuNi0zMS43SDY1LjR6bTMxNi43LTc4LjdoLTc4LjVsMzEuNiAzMS43LTkwLjMgOTAuNVYyMzVoMTUuM2w5MC4zLTkwLjUgMzEuNiAzMS43ek0yMDMuNSA0MTMuOVYzMDUuOGwtNzYuMyA3Ni41IDMxLjYgMzEuN2g0NC43ek02NS40IDIzNWgxMDguOGwtNzYuMy03Ni41LTMyLjUgMzEuN3ptMzE2LjcgMTAwLjJsLTMxLjYgMzEuNy05MC4zLTkwLjVoLTE1LjN2MTUuM2w5MC4zIDkwLjUtMzEuNiAzMS43aDc4LjV6bTAtNTguOEgyNzQuMmw3Ni4zIDc2LjUgMzEuNi0zMS43em0tNjAuOSAxMDUuOGwtNzYuMy03Ni41djEwOC4xaDQ0Ljd6TTk3LjkgMzUyLjlsNzYuMy03Ni41SDY1LjR2NDQuOHptMTgxLjggNzAuOUgyMzVWMjk1LjlsLTEwLjgtMTAuOC0xMC44IDEwLjh2MTI3LjloLTQ0LjdsNTUuNSA1NS42em0tMTY2LjUtNDEuNmw5MC4zLTkwLjV2LTE1LjNoLTE1LjNsLTkwLjMgOTAuNS0zMi41LTMxLjd2NzguN2g3OS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaHJvbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMxLjUgMjE3LjVMNTUuMSAxMDAuMWM0Ny42LTU5LjIgMTE5LTkxLjggMTkyLTkyLjEgNDIuMy0uMyA4NS41IDEwLjUgMTI0LjggMzMuMiA0My40IDI1LjIgNzYuNCA2MS40IDk3LjQgMTAzTDI2NCAxMzMuNGMtNTguMS0zLjQtMTEzLjQgMjkuMy0xMzIuNSA4NC4xem0zMi45IDM4LjVjMCA0Ni4yIDM3LjQgODMuNiA4My42IDgzLjZzODMuNi0zNy40IDgzLjYtODMuNi0zNy40LTgzLjYtODMuNi04My42LTgzLjYgMzcuMy04My42IDgzLjZ6bTMxNC45LTg5LjJMMzM5LjYgMTc0YzM3LjkgNDQuMyAzOC41IDEwOC4yIDYuNiAxNTcuMkwyMzQuMSA1MDMuNmM0Ni41IDIuNSA5NC40LTcuNyAxMzcuOC0zMi45IDEwNy40LTYyIDE1MC45LTE5MiAxMDcuNC0zMDMuOXpNMTMzLjcgMzAzLjZMNDAuNCAxMjAuMUMxNC45IDE1OS4xIDAgMjA1LjkgMCAyNTZjMCAxMjQgOTAuOCAyMjYuNyAyMDkuNSAyNDQuOWw2My43LTEyNC44Yy01Ny42IDEwLjgtMTEzLjItMjAuOC0xMzkuNS03Mi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaHJvbWVjYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ny44LDY0SDY0Yy0yMy42LDAtNDIuNywxOS4xLTQyLjcsNDIuN3Y2My45SDY0di02My45aDM4My44djI5OC42SDI5OC42VjQ0OEg0NDhjMjMuNiwwLDQyLjctMTkuMSw0Mi43LTQyLjdWMTA2LjcgQzQ5MC43LDgzLjEsNDcxLjQsNjQsNDQ3LjgsNjR6IE0yMS4zLDM4My42TDIxLjMsMzgzLjZsMCw2My45aDYzLjlDODUuMiw0MTIuMiw1Ni42LDM4My42LDIxLjMsMzgzLjZMMjEuMywzODMuNnogTTIxLjMsMjk4LjZWMzQxIGM1OC45LDAsMTA2LjYsNDguMSwxMDYuNiwxMDdoNDIuN0MxNzAuNywzNjUuNiwxMDMuNywyOTguNywyMS4zLDI5OC42eiBNMjEzLjQsNDQ4aDQyLjdjLTAuNS0xMjkuNS0xMDUuMy0yMzQuMy0yMzQuOC0yMzQuNmwwLDQyLjQgQzEyNy4zLDI1NS42LDIxMy4zLDM0MiwyMTMuNCw0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkZmxhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA3LjkwNiwzMTkuOTEzbC0yMzAuOC0yLjkyOGE0LjU4LDQuNTgsMCwwLDEtMy42MzItMS45MjYsNC42NDgsNC42NDgsMCwwLDEtLjQ5NC00LjE0Nyw2LjE0Myw2LjE0MywwLDAsMSw1LjM2MS00LjA3Nkw0MTEuMjgxLDMwMy45YzI3LjYzMS0xLjI2LDU3LjU0Ni0yMy41NzQsNjguMDIyLTUwLjc4NGwxMy4yODYtMzQuNTQyYTcuOTQ0LDcuOTQ0LDAsMCwwLC41MjQtMi45MzYsNy43MzUsNy43MzUsMCwwLDAtLjE2NC0xLjYzMUExNTEuOTEsMTUxLjkxLDAsMCwwLDIwMS4yNTcsMTk4LjQsNjguMTIsNjguMTIsMCwwLDAsOTQuMiwyNjkuNTlDNDEuOTI0LDI3MS4xMDYsMCwzMTMuNzI4LDAsMzY2LjEyYTk2LjA1NCw5Ni4wNTQsMCwwLDAsMS4wMjksMTMuOTU4LDQuNTA4LDQuNTA4LDAsMCwwLDQuNDQ1LDMuODcxbDQyNi4xLjA1MWMuMDQzLDAsLjA4LS4wMTkuMTIyLS4wMmE1LjYwNiw1LjYwNiwwLDAsMCw1LjI3MS00bDMuMjczLTExLjI2NWMzLjktMTMuNCwyLjQ0OC0yNS44LTQuMS0zNC45QzQzMC4xMjQsMzI1LjQyMyw0MjAuMDksMzIwLjQ4Nyw0MDcuOTA2LDMxOS45MTNaTTUxMy44NTYsMjIxLjFjLTIuMTQxLDAtNC4yNzEuMDYyLTYuMzkxLjE2NGEzLjc3MSwzLjc3MSwwLDAsMC0zLjMyNCwyLjY1M2wtOS4wNzcsMzEuMTkzYy0zLjksMTMuNC0yLjQ0OSwyNS43ODYsNC4xLDM0Ljg5LDYuMDIsOC40LDE2LjA1NCwxMy4zMjMsMjguMjM4LDEzLjlsNDkuMiwyLjkzOWE0LjQ5MSw0LjQ5MSwwLDAsMSwzLjUxLDEuODk0LDQuNjQsNC42NCwwLDAsMSwuNTE0LDQuMTY5LDYuMTUzLDYuMTUzLDAsMCwxLTUuMzUxLDQuMDc1bC01MS4xMjUsMi45MzljLTI3Ljc1NCwxLjI3LTU3LjY2OSwyMy41NzQtNjguMTQ1LDUwLjc4NGwtMy42OTUsOS42MDZhMi43MTYsMi43MTYsMCwwLDAsMi40MjcsMy42OGMuMDQ2LDAsLjA4OC4wMTcuMTM2LjAxN2gxNzUuOTFhNC42OSw0LjY5LDAsMCwwLDQuNTM5LTMuMzcsMTI0LjgwNywxMjQuODA3LDAsMCwwLDQuNjgyLTM0QzY0MCwyNzcuMyw1ODMuNTI0LDIyMS4xLDUxMy44NTYsMjIxLjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3Vkc2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE4LjEgMTU0bC05LjQgNy42Yy0yMi41LTE5LjMtNTEuNS0zMy42LTgzLjMtMzMuNkMxNTMuOCAxMjggOTYgMTg4LjggOTYgMjYwLjNjMCA2LjYuNCAxMy4xIDEuNCAxOS40LTItNTYgNDEuOC05Ny40IDkyLjYtOTcuNCAyNC4yIDAgNDYuMiA5LjQgNjIuNiAyNC43bC0yNS4yIDIwLjRjLTguMy0uOS0xNi44IDEuOC0yMy4xIDguMS0xMS4xIDExLTExLjEgMjguOSAwIDQwIDExLjEgMTEgMjguOSAxMSA0MCAwIDYuMy02LjMgOS0xNC45IDguMS0yMy4xbDc1LjItODguOGM2LjMtNi41LTMuMy0xNS45LTkuNS05LjZ6bS04My44IDExMS41Yy01LjYgNS41LTE0LjYgNS41LTIwLjIgMC01LjYtNS42LTUuNi0xNC42IDAtMjAuMnMxNC42LTUuNiAyMC4yIDAgNS42IDE0LjcgMCAyMC4yek0yMjQgMzJDMTAwLjUgMzIgMCAxMzIuNSAwIDI1NnMxMDAuNSAyMjQgMjI0IDIyNCAyMjQtMTAwLjUgMjI0LTIyNFMzNDcuNSAzMiAyMjQgMzJ6bTAgMzg0Yy04OC4yIDAtMTYwLTcxLjgtMTYwLTE2MFMxMzUuOCA5NiAyMjQgOTZzMTYwIDcxLjggMTYwIDE2MC03MS44IDE2MC0xNjAgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZHNtaXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMzIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMi41IDQxOS45YzAgNDYuNC0zNy42IDg0LjEtODQgODQuMXMtODQtMzcuNy04NC04NC4xIDM3LjYtODQgODQtODQgODQgMzcuNiA4NCA4NHptLTg0LTI0My45YzQ2LjQgMCA4MC0zNy42IDgwLTg0cy0zMy42LTg0LTgwLTg0LTg4IDM3LjYtODggODQtMjkuNiA3Ni03NiA3Ni04NCA0MS42LTg0IDg4IDM3LjYgODAgODQgODAgODQtMzMuNiA4NC04MCAzMy42LTgwIDgwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZHZlcnNpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDYxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ4LjYgMzA0YzguMiA2OC41IDY3LjQgMTE1LjUgMTQ2IDExMS4zIDUxLjIgNDMuMyAxMzYuOCA0NS44IDE4Ni40LTUuNiA2OS4yIDEuMSAxMTguNS00NC42IDEzMS41LTk5LjUgMTQuOC02Mi41LTE4LjItMTMyLjUtOTIuMS0xNTUuMS0zMy04OC4xLTEzMS40LTEwMS41LTE4Ni41LTg1LTU3LjMgMTcuMy04NC4zIDUzLjItOTkuMyAxMDkuNy03LjggMi43LTI2LjUgOC45LTQ1IDI0LjEgMTEuNyAwIDE1LjIgOC45IDE1LjIgMTkuNXYyMC40YzAgMTAuNy04LjcgMTkuNS0xOS41IDE5LjVoLTIwLjJjLTEwLjcgMC0xOS41LTYtMTkuNS0xNi43VjI0MEg5OC44Qzk1IDI0MCA4OCAyNDQuMyA4OCAyNTEuOXY0MC40YzAgNi40IDUuMyAxMS44IDExLjcgMTEuOGg0OC45em0yMjcuNCA4Yy0xMC43IDQ2LjMgMjEuNyA3Mi40IDU1LjMgODYuOEMzMjQuMSA0MzIuNiAyNTkuNyAzNDggMjk2IDI4OGMtMzMuMiAyMS42LTMzLjcgNzEuMi0yOS4yIDkyLjktMTcuOS0xMi40LTUzLjgtMzIuNC01Ny40LTc5LjgtMy0zOS45IDIxLjUtNzUuNyA1Ny05My45QzI5NyAxOTEuNCAzNjkuOSAxOTguNyA0MDAgMjQ4Yy0xNC4xLTQ4LTUzLjgtNzAuMS0xMDEuOC03NC44IDMwLjktMzAuNyA2NC40LTUwLjMgMTE0LjItNDMuNyA2OS44IDkuMyAxMzMuMiA4Mi44IDY3LjcgMTUwLjUgMzUtMTYuMyA0OC43LTU0LjQgNDcuNS03Ni45bDEwLjUgMTkuNmMxMS44IDIyIDE1LjIgNDcuNiA5LjQgNzItOS4yIDM5LTQwLjYgNjguOC03OS43IDc2LjUtMzIuMSA2LjMtODMuMS01LjEtOTEuOC01OS4yek0xMjggMjA4SDg4LjJjLTguOSAwLTE2LjItNy4zLTE2LjItMTYuMnYtMzkuNmMwLTguOSA3LjMtMTYuMiAxNi4yLTE2LjJIMTI4YzguOSAwIDE2LjIgNy4zIDE2LjIgMTYuMnYzOS42YzAgOC45LTcuMyAxNi4yLTE2LjIgMTYuMnpNMTAuMSAxNjhDNC41IDE2OCAwIDE2My41IDAgMTU3Ljl2LTI3LjhjMC01LjYgNC41LTEwLjEgMTAuMS0xMC4xaDI3LjdjNS41IDAgMTAuMSA0LjUgMTAuMSAxMC4xdjI3LjhjMCA1LjYtNC41IDEwLjEtMTAuMSAxMC4xSDEwLjF6TTE2OCAxNDIuN3YtMjEuNGMwLTUuMSA0LjItOS4zIDkuMy05LjNoMjEuNGM1LjEgMCA5LjMgNC4yIDkuMyA5LjN2MjEuNGMwIDUuMS00LjIgOS4zLTkuMyA5LjNoLTIxLjRjLTUuMSAwLTkuMy00LjItOS4zLTkuM3pNNTYgMjM1LjV2MjVjMCA2LjMtNS4xIDExLjUtMTEuNCAxMS41SDE5LjRDMTMuMSAyNzIgOCAyNjYuOCA4IDI2MC41di0yNWMwLTYuMyA1LjEtMTEuNSAxMS40LTExLjVoMjUuMWM2LjQgMCAxMS41IDUuMiAxMS41IDExLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVwZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjI4NSAxNTkuNzA0bC0yMzQtMTU2Yy03Ljk4Ny00LjkxNS0xNi41MTEtNC45Ni0yNC41NzEgMGwtMjM0IDE1NkMzLjcxNCAxNjMuNzAzIDAgMTcwLjg0NyAwIDE3Ny45ODl2MTU1Ljk5OWMwIDcuMTQzIDMuNzE0IDE0LjI4NiA5LjcxNSAxOC4yODZsMjM0IDE1Ni4wMjJjNy45ODcgNC45MTUgMTYuNTExIDQuOTYgMjQuNTcxIDBsMjM0LTE1Ni4wMjJjNi0zLjk5OSA5LjcxNS0xMS4xNDMgOS43MTUtMTguMjg2VjE3Ny45ODljLS4wMDEtNy4xNDItMy43MTUtMTQuMjg2LTkuNzE2LTE4LjI4NXpNMjc4IDYzLjEzMWwxNzIuMjg2IDExNC44NTgtNzYuODU3IDUxLjQyOUwyNzggMTY1LjcwM1Y2My4xMzF6bS00NCAwdjEwMi41NzJsLTk1LjQyOSA2My43MTUtNzYuODU3LTUxLjQyOUwyMzQgNjMuMTMxek00NCAyMTkuMTMybDU1LjE0MyAzNi44NTdMNDQgMjkyLjg0NnYtNzMuNzE0em0xOTAgMjI5LjcxNUw2MS43MTQgMzMzLjk4OWw3Ni44NTctNTEuNDI5TDIzNCAzNDYuMjc1djEwMi41NzJ6bTIyLTE0MC44NThsLTc3LjcxNS01MiA3Ny43MTUtNTIgNzcuNzE1IDUyLTc3LjcxNSA1MnptMjIgMTQwLjg1OFYzNDYuMjc1bDk1LjQyOS02My43MTUgNzYuODU3IDUxLjQyOUwyNzggNDQ4Ljg0N3ptMTkwLTE1Ni4wMDFsLTU1LjE0My0zNi44NTdMNDY4IDIxOS4xMzJ2NzMuNzE0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2RpZXBpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDcyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjIuNSAyMDIuOWMzMC43IDAgMzMuNSA1My4xLS4zIDUzLjFoLTEwLjh2NDQuM2gtMjYuNnYtOTcuNGgzNy43ek00NzIgMzUyLjZDNDI5LjkgNDQ0LjUgMzUwLjQgNTA0IDI0OCA1MDQgMTExIDUwNCAwIDM5MyAwIDI1NlMxMTEgOCAyNDggOGM5Ny40IDAgMTcyLjggNTMuNyAyMTguMiAxMzguNGwtMTg2IDEwOC44TDQ3MiAzNTIuNnptLTM4LjUgMTIuNWwtNjAuMy0zMC43Yy0yNy4xIDQ0LjMtNzAuNCA3MS40LTEyMi40IDcxLjQtODIuNSAwLTE0OS4yLTY2LjctMTQ5LjItMTQ4LjkgMC04Mi41IDY2LjctMTQ5LjIgMTQ5LjItMTQ5LjIgNDguNCAwIDg4LjkgMjMuNSAxMTYuOSA2My40bDU5LjUtMzQuNmMtNDAuNy02Mi42LTEwNC43LTEwMC0xNzkuMi0xMDAtMTIxLjIgMC0yMTkuNSA5OC4zLTIxOS41IDIxOS41UzEyNi44IDQ3NS41IDI0OCA0NzUuNWM3OC42IDAgMTQ2LjUtNDIuMSAxODUuNS0xMTAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29uZmx1ZW5jZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yLjMgNDEyLjJjLTQuNSA3LjYtMi4xIDE3LjUgNS41IDIyLjJsMTA1LjkgNjUuMmM3LjcgNC43IDE3LjcgMi40IDIyLjQtNS4zIDAtLjEuMS0uMi4xLS4yIDY3LjEtMTEyLjIgODAuNS05NS45IDI4MC45LS43IDguMSAzLjkgMTcuOC40IDIxLjctNy43LjEtLjEuMS0uMy4yLS40bDUwLjQtMTE0LjFjMy42LTguMS0uMS0xNy42LTguMS0yMS4zLTIyLjItMTAuNC02Ni4yLTMxLjItMTA1LjktNTAuM0MxMjcuNSAxNzkgNDQuNiAzNDUuMyAyLjMgNDEyLjJ6bTUwNy40LTMxMi4xYzQuNS03LjYgMi4xLTE3LjUtNS41LTIyLjJMMzk4LjQgMTIuOGMtNy41LTUtMTcuNi0zLjEtMjIuNiA0LjQtLjIuMy0uNC42LS42IDEtNjcuMyAxMTIuNi04MS4xIDk1LjYtMjgwLjYuOS04LjEtMy45LTE3LjgtLjQtMjEuNyA3LjctLjEuMS0uMS4zLS4yLjRMMjIuMiAxNDEuM2MtMy42IDguMS4xIDE3LjYgOC4xIDIxLjMgMjIuMiAxMC40IDY2LjMgMzEuMiAxMDYgNTAuNCAyNDggMTIwIDMzMC44LTQ1LjQgMzczLjQtMTEyLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbm5lY3RkZXZlbG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MC41IDI0MWwtNTAuMDg5LTg2Ljc4NmMxLjA3MS0yLjE0MiAxLjg3NS00LjU1MyAxLjg3NS03LjIzMiAwLTguMDM2LTYuNjk2LTE0LjczMy0xNC43MzItMTUuMDAxbC01NS40NDctOTUuODkzYy41MzYtMS42MDcgMS4wNzEtMy4yMTQgMS4wNzEtNC44MjEgMC04LjU3MS02Ljk2NC0xNS4yNjgtMTUuMjY4LTE1LjI2OC00LjgyMSAwLTguODM5IDIuMTQzLTExLjc4NiA1LjYyNUgyOTkuNTE4QzI5Ni44MzkgMTguMTQzIDI5Mi44MjEgMTYgMjg4IDE2cy04LjgzOSAyLjE0My0xMS41MTggNS42MjVIMTcwLjQxMUMxNjcuNDY0IDE4LjE0MyAxNjMuNDQ3IDE2IDE1OC42MjUgMTZjLTguMzAzIDAtMTUuMjY4IDYuNjk2LTE1LjI2OCAxNS4yNjggMCAxLjYwNy41MzYgMy40ODIgMS4wNzIgNC44MjFsLTU1Ljk4MyA5Ny4yMzNjLTUuMzU2IDIuNDEtOS4xMDcgNy41LTkuMTA3IDEzLjY2MSAwIC41MzUuMjY4IDEuMDcxLjI2OCAxLjYwN2wtNTMuMzA0IDkyLjE0M2MtNy4yMzIgMS4zMzktMTIuNTkgNy41LTEyLjU5IDE1IDAgNy4yMzIgNS4wODkgMTMuMzkzIDEyLjA1NCAxNWw1NS4xNzkgOTUuMzU4Yy0uNTM2IDEuNjA3LS44MDQgMi45NDYtLjgwNCA0LjgyMSAwIDcuMjMyIDUuMDg5IDEzLjM5MyAxMi4wNTQgMTQuNzMybDUxLjY5NyA4OS43MzJjLS41MzYgMS42MDctMS4wNzEgMy40ODItMS4wNzEgNS4zNTcgMCA4LjU3MSA2Ljk2NCAxNS4yNjggMTUuMjY4IDE1LjI2OCA0LjgyMSAwIDguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDYuODc1QzI3OS4xNjEgNDkzLjg1NyAyODMuNDQ3IDQ5NiAyODggNDk2czguODM5LTIuMTQzIDExLjUxOC01LjM1N2gxMDcuMTQzYzIuNjc4IDIuOTQ2IDYuNjk2IDQuODIxIDEwLjk4MiA0LjgyMSA4LjU3MSAwIDE1LjI2OC02Ljk2NCAxNS4yNjgtMTUuMjY4IDAtMS42MDctLjI2Ny0yLjk0Ni0uODAzLTQuMjg1bDUxLjY5Ny05MC4yNjhjNi45NjQtMS4zMzkgMTIuMDU0LTcuNSAxMi4wNTQtMTQuNzMyIDAtMS42MDctLjI2OC0zLjIxNC0uODA0LTQuODIxbDU0LjkxMS05NS4zNThjNi45NjQtMS4zMzkgMTIuMzIyLTcuNSAxMi4zMjItMTUtLjAwMi03LjIzMi01LjA5Mi0xMy4zOTMtMTEuNzg4LTE0LjczMnpNMTUzLjUzNSA0NTAuNzMybC00My42Ni03NS44MDNoNDMuNjZ2NzUuODAzem0wLTgzLjgzOWgtNDMuNjZjLS4yNjgtMS4wNzEtLjgwNC0yLjE0Mi0xLjMzOS0zLjIxNGw0NC45OTktNDcuNDF2NTAuNjI0em0wLTYyLjQxMWwtNTAuMzU3IDUzLjMwNGMtMS4zMzktLjUzNi0yLjY3OS0xLjM0LTQuMDE4LTEuNjA3TDQzLjQ0NyAyNTkuNzVjLjUzNS0xLjMzOS41MzUtMi42NzkuNTM1LTQuMDE4czAtMi40MS0uMjY4LTMuNDgybDUxLjk2NS05MGMyLjY3OS0uMjY4IDUuMzU3LTEuMDcyIDcuNzY4LTIuNjc5bDUwLjA4OSA1MS45NjV2OTIuOTQ2em0wLTEwMi4zMjJsLTQ1LjgwMy00Ny40MWMxLjMzOS0yLjE0MyAyLjE0My00LjgyMSAyLjE0My03Ljc2NyAwLS4yNjgtLjI2OC0uODA0LS4yNjgtMS4wNzJsNDMuOTI4LTE1LjgwNHY3Mi4wNTN6bTAtODAuNjI1bC00My42NiAxNS44MDQgNDMuNjYtNzUuNTM2djU5LjczMnptMzI2LjUxOSAzOS4xMDhsLjgwNCAxLjMzOUw0NDUuNSAzMjkuMTI1bC02My43NS02Ny4yMzIgOTguMDM2LTEwMS41MTguMjY4LjI2OHpNMjkxLjc1IDM1NS4xMDdsMTEuNTE4IDExLjc4NkgyODAuNWwxMS4yNS0xMS43ODZ6bS0uMjY4LTExLjI1bC04My4zMDMtODUuNDQ2IDc5LjU1My04NC4zNzUgODMuMDM2IDg3LjU4OS03OS4yODYgODIuMjMyem01LjM1NyA1Ljg5M2w3OS4yODYtODIuMjMyIDY3LjUgNzEuMjUtNS44OTIgMjguMTI1SDMxMy43MTRsLTE2Ljg3NS0xNy4xNDN6TTQxMC40MTEgNDQuMzkzYzEuMDcxLjUzNiAyLjE0MiAxLjA3MiAzLjQ4MiAxLjM0bDU3Ljg1NyAxMDAuNzE0di41MzZjMCAyLjk0Ni44MDMgNS42MjQgMi4xNDMgNy43NjdMMzc2LjM5MyAyNTZsLTgzLjAzNS04Ny41ODlMNDEwLjQxMSA0NC4zOTN6bS05LjEwNy0yLjE0M0wyODcuNzMyIDE2Mi41MThsLTU3LjA1NC02MC4yNjggMTY2LjMzOS02MGg0LjI4N3ptLTEyMy40ODMgMGMyLjY3OCAyLjY3OCA2LjE2IDQuMjg1IDEwLjE3OSA0LjI4NXM3LjUtMS42MDcgMTAuMTc5LTQuMjg1aDc1TDIyNC43ODYgOTUuODIxIDE3My44OTMgNDIuMjVoMTAzLjkyOHptLTExNi4yNDkgNS42MjVsMS4wNzEtMi4xNDJhMzMuODM0IDMzLjgzNCAwIDAgMCAyLjY3OS0uODA0bDUxLjE2MSA1My44NC01NC45MTEgMTkuODIxVjQ3Ljg3NXptMCA3OS4yODZsNjAuODAzLTIxLjk2NCA1OS43MzIgNjMuMjE0LTc5LjU1MyA4NC4xMDctNDAuOTgyLTQyLjA1M3YtODMuMzA0em0wIDkyLjY3OEwxOTggMjU3LjYwN2wtMzYuNDI4IDM4LjMwNHYtNzYuMDcyem0wIDg3Ljg1OGw0Mi4wNTMtNDQuNDY0IDgyLjc2OCA4NS45ODItMTcuMTQzIDE3LjY3OEgxNjEuNTcydi01OS4xOTZ6bTYuOTY0IDE2Mi4wNTNjLTEuNjA3LTEuNjA3LTMuNDgyLTIuNjc4LTUuODkzLTMuNDgybC0xLjA3MS0xLjYwN3YtODkuNzMyaDk5LjkxbC05MS42MDcgOTQuODIxaC0xLjMzOXptMTI5LjkxMSAwYy0yLjY3OS0yLjQxLTYuNDI4LTQuMjg1LTEwLjQ0Ny00LjI4NXMtNy43NjcgMS44NzUtMTAuNDQ3IDQuMjg1aC05Ni40MjlsOTEuNjA3LTk0LjgyMWgzOC4zMDRsOTEuNjA3IDk0LjgyMUgyOTguNDQ3em0xMjAtMTEuNzg2bC00LjI4NiA3LjVjLTEuMzM5LjI2OC0yLjQxLjgwMy0zLjQ4MiAxLjMzOWwtODkuMTk2LTkxLjg3NWgxMTQuMzc2bC0xNy40MTIgODMuMDM2em0xMi44NTYtMjIuMjMybDEyLjg1OC02MC44MDNoMjEuOTY0bC0zNC44MjIgNjAuODAzem0zNC44MjItNjguODM5aC0yMC4zNTdsNC41NTMtMjEuMTYgMTcuMTQzIDE4LjIxNGMtLjUzNS44MDMtMS4wNzEgMS44NzQtMS4zMzkgMi45NDZ6bTY2LjE2MS0xMDcuNDExbC01NS40NDcgOTYuNjk3Yy0xLjMzOS41MzUtMi42NzkgMS4wNzEtNC4wMTggMS44NzRsLTIwLjYyNS0yMS45NjQgMzQuNTU0LTE2My45MjggNDUuODAzIDc5LjI4NmMtLjI2NyAxLjMzOS0uODAzIDIuNjc4LS44MDMgNC4yODUgMCAxLjMzOS4yNjggMi40MTEuNTM2IDMuNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbnRhbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NS40IDMwNWMxNC40IDY3LjEgMjYuNCAxMjkgNjguMiAxNzVIMzRjLTE4LjcgMC0zNC0xNS4yLTM0LTM0VjY2YzAtMTguNyAxNS4yLTM0IDM0LTM0aDU3LjdDNzcuOSA0NC42IDY1LjYgNTkuMiA1NC44IDc1LjZjLTQ1LjQgNzAtMjcgMTQ2LjgtOS40IDIyOS40ek00NzggMzJoLTkwLjJjMjEuNCAyMS40IDM5LjIgNDkuNSA1Mi43IDg0LjFsLTEzNy4xIDI5LjNjLTE0LjktMjktMzcuOC01My4zLTgyLjYtNDMuOS0yNC42IDUuMy00MSAxOS4zLTQ4LjMgMzQuNi04LjggMTguNy0xMy4yIDM5LjggOC4yIDE0MC4zIDIxLjEgMTAwLjIgMzMuNyAxMTcuNyA0OS41IDEzMS4yIDEyLjkgMTEuMSAzMy40IDE3IDU4LjMgMTEuNyA0NC41LTkuNCA1NS43LTQwLjcgNTcuNC03My4ybDEzNy40LTI5LjZjMy4yIDcxLjUtMTguNyAxMjUuMi01Ny40IDE2My42SDQ3OGMxOC43IDAgMzQtMTUuMiAzNC0zNFY2NmMwLTE4LjgtMTUuMi0zNC0zNC0zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ290dG9uQnVyZWF1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3NC4zMSAzMzAuNDFjLTIzLjY2IDkxLjg1LTk0LjIzIDE0NC41OS0yMDEuOSAxNDguMzVWNDI5LjZjMC00OCAyNi40MS03NC4zOSA3NC4zOS03NC4zOSA2MiAwIDk5LjItMzcuMiA5OS4yLTk5LjIxIDAtNjEuMzctMzYuNTMtOTguMjgtOTcuMzgtOTkuMDYtMzMtNjkuMzItMTQ2LjUtNjQuNjUtMTc3LjI0IDBDMTEwLjUyIDE1Ny43MiA3NCAxOTQuNjMgNzQgMjU2YzAgNjIuMTMgMzcuMjcgOTkuNDEgOTkuNCA5OS40MSA0OCAwIDc0LjU1IDI2LjIzIDc0LjU1IDc0LjM5VjQ3OWMtMTM0LjQzLTUtMjExLjEtODUuMDctMjExLjEtMjIzIDAtMTQxLjgyIDgxLjM1LTIyMy4yIDIyMy4yLTIyMy4yIDExNC43NyAwIDE4OS44NCA1My4yIDIxNC42OSAxNDguODFINTAwQzQ3My44OCA3MS41MSAzODguMjIgOCAyNTkuODIgOCAxMDUgOCAxMiAxMDEuMTkgMTIgMjU1LjgyIDEyIDQxMS4xNCAxMDUuMTkgNTA0LjM0IDI1OS44MiA1MDRjMTI4LjI3IDAgMjEzLjg3LTYzLjgxIDIzOS42Ny0xNzMuNTl6TTM1NyAxODIuMzNjNDEuMzcgMy40NSA2NC4yIDI5IDY0LjIgNzMuNjcgMCA0OC0yNi40MyA3NC40MS03NC40IDc0LjQxLTI4LjYxIDAtNDkuMzMtOS41OS02MS41OS0yNy4zMyA4My4wNi0xNi41NSA3NS41OS05OS42NyA3MS43OS0xMjAuNzV6bS04MS42OCA5Ny4zNmMtMi40Ni0xMC4zNC0xNi4zMy04NyA1Ni4yMy05NyAyLjI3IDEwLjA5IDE2LjUyIDg3LjExLTU2LjI2IDk3ek0yNjAgMTMyYzI4LjYxIDAgNDkgOS42NyA2MS40NCAyNy42MS0yOC4zNiA1LjQ4LTQ5LjM2IDIwLjU5LTYxLjU5IDQzLjQ1LTEyLjIzLTIyLjg2LTMzLjIzLTM4LTYxLjYtNDMuNDUgMTIuNDEtMTcuNjkgMzMuMjctMjcuMzUgNjEuNTctMjcuMzV6bS03MS41MiA1MC43MmM3My4xNyAxMC41NyA1OC45MSA4Ni44MSA1Ni40OSA5Ny03Mi40MS05Ljg0LTU5LTg2Ljk1LTU2LjI1LTk3ek0xNzMuMiAzMzAuNDFjLTQ4IDAtNzQuNC0yNi40LTc0LjQtNzQuNDEgMC00NC4zNiAyMi44Ni03MCA2NC4yMi03My42Ny02Ljc1IDM3LjItMS4zOCAxMDYuNTMgNzEuNjUgMTIwLjc1LTEyLjE0IDE3LjYzLTMyLjg0IDI3LjMtNjEuMTQgMjcuM3ptNTMuMjEgMTIuMzlBODAuOCA4MC44IDAgMCAwIDI2MCAzMDkuMjVjNy43NyAxNC40OSAxOS4zMyAyNS41NCAzMy44MiAzMy41NWE4MC4yOCA4MC4yOCAwIDAgMC0zMy41OCAzMy44M2MtOC0xNC41LTE5LjA3LTI2LjIzLTMzLjU2LTMzLjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcGFuZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEwLjMgMjIwLjJjLTUuNi0yNC44LTI2LjktNDEuMi01MS00MS4yaC0zN2MtNy4xIDAtMTIuNSA0LjUtMTQuMyAxMC45TDczLjEgMzIwbDI0LjctLjFjNi44IDAgMTIuMy00LjUgMTQuMi0xMC43bDI1LjgtOTUuN2gxOS44YzguNCAwIDE2LjIgNS42IDE4LjMgMTQuOCAyLjUgMTAuOS01LjkgMjIuNi0xOC4zIDIyLjZoLTEwLjNjLTcgMC0xMi41IDQuNi0xNC4zIDEwLjhsLTYuNCAyMy44aDMyYzM3LjIgMCA1OC4zLTM2LjIgNTEuNy02NS4zem0tMTU2LjUgMjhoMTguNmM2LjkgMCAxMi40LTQuNCAxNC4zLTEwLjlsNi4yLTIzLjZoLTQwQzMwIDIxMy43IDkgMjI3LjggMS43IDI1NC44LTcgMjg4LjYgMTguNSAzMjAgNTIgMzIwaDEyLjRsNy4xLTI2LjFjMS4yLTQuNC0yLjItOC4zLTYuNC04LjNINTMuOGMtMjQuNyAwLTI0LjktMzcuNCAwLTM3LjR6bTI0Ny41LTM0LjhoLTc3LjlsLTMuNSAxMy40Yy0yLjQgOS42IDQuNSAxOC41IDE0LjIgMTguNWg1Ny41YzQgMCAyLjQgNC4zIDIuMSA1LjNsLTguNiAzMS44Yy0uNCAxLjQtLjkgNS4zLTUuNSA1LjNoLTM0LjljLTUuMyAwLTUuMy03LjkgMC03LjloMjEuNmM2LjggMCAxMi4zLTQuNiAxNC4yLTEwLjhsMy41LTEzLjJoLTQ4LjRjLTM5LjIgMC00My42IDYzLjgtLjcgNjMuOGw1Ny41LjJjMTEuMiAwIDIwLjYtNy4yIDIzLjQtMTcuOGwxNC01MS44YzQuOC0xOS4yLTkuNy0zNi44LTI4LjUtMzYuOHpNNjMzLjEgMTc5aC0xOC45Yy00LjkgMC05LjIgMy4yLTEwLjQgNy45TDU2OC4yIDMyMGMyMC43IDAgMzkuOC0xMy44IDQ0LjktMzQuNWwyNi41LTk4LjJjMS4yLTQuMy0yLTguMy02LjUtOC4zem0tMjM2LjMgMzQuN3YuMWgtNDguM2wtMjYuMiA5OGMtMS4yIDQuNCAyLjIgOC4zIDYuNCA4LjNoMTguOWM0LjggMCA5LjItMyAxMC40LTcuOGwxNy4yLTY0SDM5NWMxMi41IDAgMjEuNCAxMS44IDE4LjEgMjMuNGwtMTAuNiA0MGMtMS4yIDQuMyAxLjkgOC4zIDYuNCA4LjNINDI4YzQuNiAwIDkuMS0yLjkgMTAuMy03LjhsOC44LTMzLjFjOS0zMy4xLTE1LjktNjUuNC01MC4zLTY1LjR6bTk4LjMgNzQuNmMtMy42IDAtNi0zLjQtNS4xLTYuN2w4LTMwYy45LTMuOSAzLjctNiA3LjgtNmgzMi45YzIuNiAwIDQuNiAyLjQgMy45IDUuMWwtLjcgMi42Yy0uNiAyLTEuOSAzLTMuOSAzaC0yMS42Yy03IDAtMTIuNiA0LjYtMTQuMiAxMC44bC0zLjUgMTNoNTMuNGMxMC41IDAgMjAuMy02LjYgMjMuMi0xNy42bDMuMi0xMmM0LjktMTkuMS05LjMtMzYuOC0yOC4zLTM2LjhoLTQ3LjNjLTE3LjkgMC0zMy44IDEyLTM4LjYgMjkuNmwtMTAuOCA0MGMtNSAxNy43IDguMyAzNi43IDI4LjMgMzYuN2g2Ni43YzYuOCAwIDEyLjMtNC41IDE0LjItMTAuN2w1LjctMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc0J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxNC45IDE5NC40djEwMS40aC0yOC4zdjEyMC41aC03Ny4xVjI5NS45aC0yOC4zVjE5NC40YzAtNC40IDEuNi04LjIgNC42LTExLjMgMy4xLTMuMSA2LjktNC43IDExLjMtNC43SDI5OWM0LjEgMCA3LjggMS42IDExLjEgNC43IDMuMSAzLjIgNC44IDYuOSA0LjggMTEuM3ptLTEwMS41LTYzLjdjMC0yMy4zIDExLjUtMzUgMzQuNS0zNXMzNC41IDExLjcgMzQuNSAzNWMwIDIzLTExLjUgMzQuNS0zNC41IDM0LjVzLTM0LjUtMTEuNS0zNC41LTM0LjV6TTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNOY0V1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny43IDhDMTAzLjYgOCAwIDEyNC44IDAgMjU2YzAgMTM2LjMgMTExLjcgMjQ4IDI0Ny43IDI0OEMzNzcuOSA1MDQgNDk2IDQwMy4xIDQ5NiAyNTYgNDk2IDExNyAzODguNCA4IDI0Ny43IDh6bS42IDQ1MC43Yy0xMTIgMC0yMDMuNi05Mi41LTIwMy42LTIwMi43IDAtMjMuMiAzLjctNDUuMiAxMC45LTY2bDY1LjcgMjkuMWgtNC43djI5LjVoMjMuM2MwIDYuMi0uNCAzLjItLjQgMTkuNWgtMjIuOHYyOS41aDI3YzExLjQgNjcgNjcuMiAxMDEuMyAxMjQuNiAxMDEuMyAyNi42IDAgNTAuNi03LjkgNjQuOC0xNS44bC0xMC00Ni4xYy04LjcgNC42LTI4LjIgMTAuOC00Ny4zIDEwLjgtMjguMiAwLTU4LjEtMTAuOS02Ny4zLTUwLjJoOTAuM2wxMjguMyA1Ni44Yy0xLjUgMi4xLTU2LjIgMTA0LjMtMTc4LjggMTA0LjN6bS0xNi43LTE5MC42bC0uNS0uNC45LjRoLS40em03Ny4yLTE5LjVoMy43di0yOS41aC03MC4zbC0yOC42LTEyLjZjMi41LTUuNSA1LjQtMTAuNSA4LjgtMTQuMyAxMi45LTE1LjggMzEuMS0yMi40IDUxLjEtMjIuNCAxOC4zIDAgMzUuMyA1LjQgNDYuMSAxMGwxMS42LTQ3LjNjLTE1LTYuNi0zNy0xMi40LTYyLjMtMTIuNC0zOSAwLTcyLjIgMTUuOC05NS45IDQyLjMtNS4zIDYuMS05LjggMTIuOS0xMy45IDIwLjFsLTgxLjYtMzYuMWM2NC42LTk2LjggMTU3LjctOTMuNiAxNzAuNy05My42IDExMyAwIDIwMyA5MC4yIDIwMyAyMDMuNCAwIDE4LjctMi4xIDM2LjMtNi4zIDUyLjlsLTEzNi4xLTYwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jSnAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjcgOEMxMDMuNiA4IDAgMTI0LjggMCAyNTZjMCAxMzYuNCAxMTEuOCAyNDggMjQ3LjcgMjQ4QzM3Ny45IDUwNCA0OTYgNDAzLjIgNDk2IDI1NiA0OTYgMTE3LjIgMzg4LjUgOCAyNDcuNyA4em0uNiA0NTAuN2MtMTEyIDAtMjAzLjYtOTIuNS0yMDMuNi0yMDIuNyAwLTIxLjEgMy00MS4yIDktNjAuM2wxMjcgNTYuNWgtMjcuOXYzOC42aDU4LjFsNS43IDExLjh2MTguN2gtNjMuOFYzNjBoNjMuOHY1Nmg2MS43di01Nmg2NC4ydi0zNS43bDgxIDM2LjFjLTEuNSAyLjItNTcuMSA5OC4zLTE3NS4yIDk4LjN6bTg3LjYtMTM3LjNoLTU3LjZ2LTE4LjdsMi45LTUuNiA1NC43IDI0LjN6bTYuNS01MS40di0xNy44aC0zOC42bDYzLTExNkgzMDFsLTQzLjQgOTYtMjMtMTAuMi0zOS42LTg1LjdoLTY1LjhsMjcuMyA1MS04MS45LTM2LjVjMjcuOC00NC4xIDgyLjYtOTguMSAxNzMuNy05OC4xIDExMi44IDAgMjAzIDkwIDIwMyAyMDMuNCAwIDIxLTIuNyA0MC42LTcuOSA1OWwtMTAxLTQ1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc05jIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg3LjQgOCA0OTYgMTE1LjkgNDk2IDI1NmMwIDE0Ny4yLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjEgNTA0IDAgMzkzLjIgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6TTU1LjggMTg5LjFjLTcuNCAyMC40LTExLjEgNDIuNy0xMS4xIDY2LjkgMCAxMTAuOSA5Mi4xIDIwMi40IDIwMy43IDIwMi40IDEyMi40IDAgMTc3LjItMTAxLjggMTc4LjUtMTA0LjFsLTkzLjQtNDEuNmMtNy43IDM3LjEtNDEuMiA1My02OC4yIDU1LjR2MzguMWgtMjguOFYzNjhjLTI3LjUtLjMtNTIuNi0xMC4yLTc1LjMtMjkuN2wzNC4xLTM0LjVjMzEuNyAyOS40IDg2LjQgMzEuOCA4Ni40LTIuMiAwLTYuMi0yLjItMTEuMi02LjYtMTUuMS0xNC4yLTYtMS44LS4xLTIxOS4zLTk3LjR6TTI0OC40IDUyLjNjLTM4LjQgMC0xMTIuNCA4LjctMTcwLjUgOTNsOTQuOCA0Mi41YzEwLTMxLjMgNDAuNC00Mi45IDYzLjgtNDQuM3YtMzguMWgyOC44djM4LjFjMjIuNyAxLjIgNDMuNCA4LjkgNjIgMjNMMjk1IDE5OS43Yy00Mi43LTI5LjktODMuNS04LTcwIDExLjEgNTMuNCAyNC4xIDQzLjggMTkuOCA5MyA0MS42bDEyNy4xIDU2LjdjNC4xLTE3LjQgNi4yLTM1LjEgNi4yLTUzLjEgMC01Ny0xOS44LTEwNS01OS4zLTE0My45LTM5LjMtMzkuOS04Ny4yLTU5LjgtMTQzLjYtNTkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zTmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTk0IDE0NC4zdjQyLjVIMTYyLjFWMTk3aDE4MC4zem0wIDc5Ljh2NDIuNUgxNjIuMXYtNDIuNWgxODAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMxMDQuNyA4IDAgMTIzLjEgMCAyNTZjMCAxMzguNSAxMTMuNiAyNDggMjQ3LjYgMjQ4QzM3Ny41IDUwNCA0OTYgNDAzLjEgNDk2IDI1NiA0OTYgMTE4LjEgMzg5LjQgOCAyNDcuNiA4em0uOCA0NTAuOGMtMTEyLjUgMC0yMDMuNy05My0yMDMuNy0yMDIuOCAwLTEwNS40IDg1LjUtMjAzLjMgMjAzLjctMjAzLjMgMTEyLjYgMCAyMDIuOSA4OS41IDIwMi44IDIwMy4zIDAgMTIxLjctOTkuNiAyMDIuOC0yMDIuOCAyMDIuOHpNMzE2LjcgMTg2aC01My4ydjEzNy4yaDUzLjJjMjEuNCAwIDcwLTUuMSA3MC02OC42IDAtNjMuNC00OC42LTY4LjYtNzAtNjguNnptLjggMTA4LjVoLTE5Ljl2LTc5LjdsMTkuNC0uMWMzLjggMCAzNS0yLjEgMzUgMzkuOSAwIDI0LjYtMTAuNSAzOS45LTM0LjUgMzkuOXpNMjAzLjcgMTg2aC02OC4ydjEzNy4zaDM0LjZWMjc5aDI3YzU0LjEgMCA1Ny4xLTM3LjUgNTcuMS00Ni41IDAtMzEtMTYuOC00Ni41LTUwLjUtNDYuNXptLTQuOSA2Ny4zaC0yOS4ydi00MS42aDI4LjNjMzAuOSAwIDI4LjggNDEuNi45IDQxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1BkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5LjEgMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OEM0OTYgMTE5LjEgMzg1IDggMjQ4IDh6bTAgNDQ5LjVjLTEzOS4yIDAtMjM1LjgtMTM4LTE5MC4yLTI2Ny45bDc4LjggMzUuMWMtMi4xIDEwLjUtMy4zIDIxLjUtMy4zIDMyLjkgMCA5OSA3My45IDEyNi45IDEyMC40IDEyNi45IDIyLjkgMCA1My41LTYuNyA3OS40LTI5LjVMMjk3IDMxMS4xYy01LjUgNi4zLTE3LjYgMTYuNy0zNi4zIDE2LjctMzcuOCAwLTUzLjctMzkuOS01My45LTcxLjkgMjMwLjQgMTAyLjYgMjE2LjUgOTYuNSAyMTcuOSA5Ni44LTM0LjMgNjIuNC0xMDAuNiAxMDQuOC0xNzYuNyAxMDQuOHptMTk0LjItMTUwbC0yMjQtMTAwYzE4LjgtMzQgNTQuOS0zMC43IDc0LjctMTFsNDAuNC00MS42Yy0yNy4xLTIzLjMtNTgtMjcuNS03OC4xLTI3LjUtNDcuNCAwLTgwLjkgMjAuNS0xMDAuNyA1MS42bC03NC45LTMzLjRjMzYuMS01NC45IDk4LjEtOTEuMiAxNjguNS05MS4yIDExMS4xIDAgMjAxLjUgOTAuNCAyMDEuNSAyMDEuNSAwIDE4LTIuNCAzNS40LTYuOCA1Mi0uMy0uMS0uNC0uMi0uNi0uNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zUmVtaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTE2MS43IDIwNy43bDQuOSAyLjJ2NzBjLTcuMiAzLjYtNjMuNCAyNy41LTY3LjMgMjguOC02LjUtMS44LTExMy43LTQ2LjgtMTM3LjMtNTYuMmwtNjQuMiAyNi42LTYzLjMtMjcuNXYtNjMuOGw1OS4zLTI0LjhjLS43LS43LS40IDUtLjQtNzAuNGw2Ny4zLTI5LjdMMzYxIDE3OC41djYxLjZsNDkuMSAyMC4zem0tNzAuNCA4MS41di00My44aC0uNHYtMS44bC0xMTMuOC00Ni41VjI5NWwxMTMuOCA0Ni45di0uNGwuNC40em03LjUtNTcuNmwzOS45LTE2LjQtMzYuOC0xNS41LTM5IDE2LjQgMzUuOSAxNS41em01Mi4zIDM4LjF2LTQzTDM1NS4yIDI5OHY0My40bDQ0LjMtMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWF0aXZlQ29tbW9uc1NhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zek0xMzcuNyAyMjFjMTMtODMuOSA4MC41LTk1LjcgMTA4LjktOTUuNyA5OS44IDAgMTI3LjUgODIuNSAxMjcuNSAxMzQuMiAwIDYzLjYtNDEgMTMyLjktMTI4LjkgMTMyLjktMzguOSAwLTk5LjEtMjAtMTA5LjQtOTdoNjIuNWMxLjUgMzAuMSAxOS42IDQ1LjIgNTQuNSA0NS4yIDIzLjMgMCA1OC0xOC4yIDU4LTgyLjggMC04Mi41LTQ5LjEtODAuNi01Ni43LTgwLjYtMzMuMSAwLTUxLjcgMTQuNi01NS44IDQzLjhoMTguMmwtNDkuMiA0OS4yLTQ5LTQ5LjJoMTkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmdQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0xMDcgMjA1LjZjLTQuNyAwLTkgMi44LTEwLjcgNy4ybC00IDkuNS0xMS05Mi44Yy0xLjctMTMuOS0yMi0xMy40LTIzLjEuNGwtNC4zIDUxLjQtNS4yLTY4LjhjLTEuMS0xNC4zLTIyLjEtMTQuMi0yMy4yIDBsLTMuNSA0NC45LTUuOS05NC4zYy0uOS0xNC41LTIyLjMtMTQuNC0yMy4yIDBsLTUuMSA4My43LTQuMy02Ni4zYy0uOS0xNC40LTIyLjItMTQuNC0yMy4yIDBsLTUuMyA4MC4yLTQuMS01N2MtMS4xLTE0LjMtMjItMTQuMy0yMy4yLS4ybC03LjcgODkuOC0xLjgtMTIuMmMtMS43LTExLjQtMTcuMS0xMy42LTIyLTMuM2wtMTMuMiAyNy43SDg3LjV2MjMuMmg1MS4zYzQuNCAwIDguNC0yLjUgMTAuNC02LjRsMTAuNyA3My4xYzIgMTMuNSAyMS45IDEzIDIzLjEtLjdsMy44LTQzLjYgNS43IDc4LjNjMS4xIDE0LjQgMjIuMyAxNC4yIDIzLjItLjFsNC42LTcwLjQgNC44IDczLjNjLjkgMTQuNCAyMi4zIDE0LjQgMjMuMi0uMWw0LjktODAuNSA0LjUgNzEuOGMuOSAxNC4zIDIyLjEgMTQuNSAyMy4yLjJsNC42LTU4LjYgNC45IDY0LjRjMS4xIDE0LjMgMjIgMTQuMiAyMy4xLjFsNi44LTgzIDIuNyAyMi4zYzEuNCAxMS44IDE3LjcgMTQuMSAyMi4zIDMuMWwxOC00My40aDUwLjVWMjU4bC01OC40LjN6bS03OCA1LjJoLTIxLjl2MjEuOWMwIDQuMS0zLjMgNy41LTcuNSA3LjUtNC4xIDAtNy41LTMuMy03LjUtNy41di0yMS45aC0yMS45Yy00LjEgMC03LjUtMy4zLTcuNS03LjUgMC00LjEgMy40LTcuNSA3LjUtNy41aDIxLjl2LTIxLjljMC00LjEgMy40LTcuNSA3LjUtNy41czcuNSAzLjMgNy41IDcuNXYyMS45aDIxLjljNC4xIDAgNy41IDMuMyA3LjUgNy41IDAgNC4xLTMuNCA3LjUtNy41IDcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2FtcGxpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTMuNiA1My4yYzIuOC0uMyAxMS41IDEgMTEuNSAxMS41bDYuNiAxMDcuMiA0LjktNTkuM2MwLTYgNC43LTEwLjYgMTAuNi0xMC42IDUuOSAwIDEwLjYgNC43IDEwLjYgMTAuNiAwIDIuNS0uNS01LjcgNS43IDgxLjVsNS44LTY0LjJjLjMtMi45IDIuOS05LjMgMTAuMi05LjMgMy44IDAgOS45IDIuMyAxMC42IDguOWwxMS41IDk2LjUgNS4zLTEyLjhjMS44LTQuNCA1LjItNi42IDEwLjItNi42aDU4djIxLjNoLTUwLjlsLTE4LjIgNDQuM2MtMy45IDkuOS0xOS41IDkuMS0yMC44LTMuMWwtNC0zMS45LTcuNSA5Mi42Yy0uMyAzLTMgOS4zLTEwLjIgOS4zLTMgMC05LjgtMi4xLTEwLjYtOS4zIDAtMS45LjYgNS44LTYuMi03Ny45bC01LjMgNzIuMmMtMS4xIDQuOC00LjggOS4zLTEwLjYgOS4zLTIuOSAwLTkuOC0yLTEwLjYtOS4zIDAtMS45LjUgNi43LTUuOC04Ny43bC01LjggOTQuOGMwIDYuMy0zLjYgMTIuNC0xMC42IDEyLjQtNS4yIDAtMTAuNi00LjEtMTAuNi0xMmwtNS44LTg3LjdjLTUuOCA5Mi41LTUuMyA4NC01LjMgODUuOS0xLjEgNC44LTQuOCA5LjMtMTAuNiA5LjMtMyAwLTkuOC0yLjEtMTAuNi05LjMgMC0uNy0uNC0xLjEtLjQtMi42bC02LjItODguNkwxODIgMzQ4Yy0uNyA2LjUtNi43IDkuMy0xMC42IDkuMy01LjggMC05LjYtNC4xLTEwLjYtOC45TDE0OS43IDI3MmMtMiA0LTMuNSA4LjQtMTEuMSA4LjRIODcuMnYtMjEuM0gxMzJsMTMuNy0yNy45YzQuNC05LjkgMTguMi03LjIgMTkuOSAyLjdsMy4xIDIwLjQgOC40LTk3LjljMC02IDQuOC0xMC42IDEwLjYtMTAuNi41IDAgMTAuNi0uMiAxMC42IDEyLjRsNC45IDY5LjEgNi42LTkyLjZjMC0xMC4xIDkuNS0xMC42IDEwLjItMTAuNi42IDAgMTAuNi43IDEwLjYgMTAuNmw1LjMgODAuNiA2LjItOTcuOWMuMS0xLjEtLjYtMTAuMyA5LjktMTEuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zU2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ3LjYgOEMzODkuNCA4IDQ5NiAxMTguMSA0OTYgMjU2YzAgMTQ3LjEtMTE4LjUgMjQ4LTI0OC40IDI0OEMxMTMuNiA1MDQgMCAzOTQuNSAwIDI1NiAwIDEyMy4xIDEwNC43IDggMjQ3LjYgOHptLjggNDQuN0MxMzAuMiA1Mi43IDQ0LjcgMTUwLjYgNDQuNyAyNTZjMCAxMDkuOCA5MS4yIDIwMi44IDIwMy43IDIwMi44IDEwMy4yIDAgMjAyLjgtODEuMSAyMDIuOC0yMDIuOC4xLTExMy44LTkwLjItMjAzLjMtMjAyLjgtMjAzLjN6bTEwMSAxMzIuNGM3LjggMCAxMy43IDYuMSAxMy43IDEzLjd2MTgyLjVjMCA3LjctNi4xIDEzLjctMTMuNyAxMy43SDIxNC4zYy03LjcgMC0xMy43LTYtMTMuNy0xMy43di01NGgtNTRjLTcuOCAwLTEzLjctNi0xMy43LTEzLjdWMTMxLjFjMC04LjIgNi42LTEyLjcgMTIuNC0xMy43aDEzNi40YzcuNyAwIDEzLjcgNiAxMy43IDEzLjd2NTRoNTR6TTE1OS45IDMwMC4zaDQwLjdWMTk4LjljMC03LjQgNS44LTEyLjYgMTItMTMuN2g1NS44di00MC4zSDE1OS45djE1NS40em0xNzYuMi04OC4xSDIyNy42djE1NS40aDEwOC41VjIxMi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcmVhdGl2ZUNvbW1vbnNaZXJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0Ny42IDhDMzg5LjQgOCA0OTYgMTE4LjEgNDk2IDI1NmMwIDE0Ny4xLTExOC41IDI0OC0yNDguNCAyNDhDMTEzLjYgNTA0IDAgMzk0LjUgMCAyNTYgMCAxMjMuMSAxMDQuNyA4IDI0Ny42IDh6bS44IDQ0LjdDMTMwLjIgNTIuNyA0NC43IDE1MC42IDQ0LjcgMjU2YzAgMTA5LjggOTEuMiAyMDIuOCAyMDMuNyAyMDIuOCAxMDMuMiAwIDIwMi44LTgxLjEgMjAyLjgtMjAyLjguMS0xMTMuOC05MC4yLTIwMy4zLTIwMi44LTIwMy4zem0tLjQgNjAuNWMtODEuOSAwLTEwMi41IDc3LjMtMTAyLjUgMTQyLjggMCA2NS41IDIwLjYgMTQyLjggMTAyLjUgMTQyLjhTMzUwLjUgMzIxLjUgMzUwLjUgMjU2YzAtNjUuNS0yMC42LTE0Mi44LTEwMi41LTE0Mi44em0wIDUzLjljMy4zIDAgNi40LjUgOS4yIDEuMiA1LjkgNS4xIDguOCAxMi4xIDMuMSAyMS45bC01NC41IDEwMC4yYy0xLjctMTIuNy0xLjktMjUuMS0xLjktMzQuNCAwLTI4LjggMi04OC45IDQ0LjEtODguOXptNDAuOCA0Ni4yYzIuOSAxNS40IDMuMyAzMS40IDMuMyA0Mi43IDAgMjguOS0yIDg4LjktNDQuMSA4OC45LTEzLjUgMC0zMi42LTcuNy0yMC4xLTI2LjRsNjAuOS0xMDUuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JlYXRpdmVDb21tb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0NS44MyAyMTQuODdsLTMzLjIyIDE3LjI4Yy05LjQzLTE5LjU4LTI1LjI0LTE5LjkzLTI3LjQ2LTE5LjkzLTIyLjEzIDAtMzMuMjIgMTQuNjEtMzMuMjIgNDMuODQgMCAyMy41NyA5LjIxIDQzLjg0IDMzLjIyIDQzLjg0IDE0LjQ3IDAgMjQuNjUtNy4wOSAzMC41Ny0yMS4yNmwzMC41NSAxNS41Yy02LjE3IDExLjUxLTI1LjY5IDM4Ljk4LTY1LjEgMzguOTgtMjIuNiAwLTczLjk2LTEwLjMyLTczLjk2LTc3LjA1IDAtNTguNjkgNDMtNzcuMDYgNzIuNjMtNzcuMDYgMzAuNzItLjAxIDUyLjcgMTEuOTUgNjUuOTkgMzUuODZ6bTE0My4wNSAwbC0zMi43OCAxNy4yOGMtOS41LTE5Ljc3LTI1LjcyLTE5LjkzLTI3LjktMTkuOTMtMjIuMTQgMC0zMy4yMiAxNC42MS0zMy4yMiA0My44NCAwIDIzLjU1IDkuMjMgNDMuODQgMzMuMjIgNDMuODQgMTQuNDUgMCAyNC42NS03LjA5IDMwLjU0LTIxLjI2bDMxIDE1LjVjLTIuMSAzLjc1LTIxLjM5IDM4Ljk4LTY1LjA5IDM4Ljk4LTIyLjY5IDAtNzMuOTYtOS44Ny03My45Ni03Ny4wNSAwLTU4LjY3IDQyLjk3LTc3LjA2IDcyLjYzLTc3LjA2IDMwLjcxLS4wMSA1Mi41OCAxMS45NSA2NS41NiAzNS44NnpNMjQ3LjU2IDguMDVDMTA0Ljc0IDguMDUgMCAxMjMuMTEgMCAyNTYuMDVjMCAxMzguNDkgMTEzLjYgMjQ4IDI0Ny41NiAyNDggMTI5LjkzIDAgMjQ4LjQ0LTEwMC44NyAyNDguNDQtMjQ4IDAtMTM3Ljg3LTEwNi42Mi0yNDgtMjQ4LjQ0LTI0OHptLjg3IDQ1MC44MWMtMTEyLjU0IDAtMjAzLjctOTMuMDQtMjAzLjctMjAyLjgxIDAtMTA1LjQyIDg1LjQzLTIwMy4yNyAyMDMuNzItMjAzLjI3IDExMi41MyAwIDIwMi44MiA4OS40NiAyMDIuODIgMjAzLjI2LS4wMSAxMjEuNjktOTkuNjggMjAyLjgyLTIwMi44NCAyMDIuODJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyaXRpY2FsUm9sZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUuODIgMGMuMjYuMTUgMjE2LjU3IDEyNC41MSAyMTcuMTIgMTI0LjcyIDMgMS4xOCAzLjcgMy40NiAzLjcgNi41NnEtLjExIDEyNS4xNyAwIDI1MC4zNmE1Ljg4IDUuODggMCAwIDEtMy4zOCA1Ljc4Yy0yMS4zNyAxMi0yMDcuODYgMTE4LjI5LTIxOC45MyAxMjQuNThoLTNDMTQyIDQ2Ni4zNCAzLjA4IDM4Ni41NiAyLjkzIDM4Ni40OGEzLjI5IDMuMjkgMCAwIDEtMS44OC0zLjI0YzAtLjg3IDAtMjI1Ljk0LS4wNS0yNTMuMWE1IDUgMCAwIDEgMi45My00LjkzQzI3LjE5IDExMi4xMSAyMTMuMiA2IDIyNC4wNyAwek0yMTUuNCAyMC40MmwtLjIyLS4xNlExMTguMDYgNzUuNTUgMjEgMTMwLjg3YzAgLjEyLjA4LjIzLjEzLjM1bDMwLjg2IDExLjY0Yy03LjcxIDYtOC4zMiA2LTEwLjY1IDUuMTMtLjEgMC0yNC4xNy05LjI4LTI2LjgtMTB2MjMwLjQzYy44OC0xLjQxIDY0LjA3LTExMC45MSA2NC4xMy0xMTEgMS42Mi0yLjgyIDMtMS45MiA5LjEyLTEuNTIgMS40LjA5IDEuNDguMjIuNzggMS40Mi00MS4xOSA3MS4zMy0zNi40IDYzLTY3LjQ4IDExNi45NC0uODEgMS40LS42MSAxLjEzIDEuMjUgMS4xM2gxODYuNWMxLjQ0IDAgMS42OS0uMjMgMS43LTEuNjR2LTguODhjMC0xLjM0IDIuMzYtLjgxLTE4LjM3LTEtNy40Ni0uMDctMTQuMTQtMy4yMi0yMS4zOC0xMi43LTcuMzgtOS42Ni0xNC42Mi0xOS40My0yMS44NS0yOS4yMS0yLjI4LTMuMDgtMy40NS0yLjM4LTE2Ljc2LTIuMzgtMS43NSAwLTEuNzggMC0xLjc2IDEuODIuMjkgMjYuMjEuMTUgMjUuMjcgMSAzMi42Ni41MiA0LjM3IDIuMTYgNC4yIDkuNjkgNC44MSAzLjE0LjI2IDMuODggNC4wOC41MiA0LjkyLTEuNTcuMzktMzEuNi41MS0zMy42Ny0uMWEyLjQyIDIuNDIgMCAwIDEgLjMtNC43M2MzLjI5LS43NiA2LjE2LjgxIDYuNjYtNC40NCAxLjMtMTMuNjYgMS4xNy05IDEuMS03OS40MiAwLTEwLjgyLS4zNS0xMi41OC01LjM2LTEzLjU1LTEuMjItLjI0LTMuNTQtLjE2LTQuNjktLjU1LTIuODgtMS0yLTQuODQgMS43Ny00Ljg1IDMzLjY3IDAgNDYuMDgtMS4wNyA1Ni4wNiA0Ljg2IDcuNzQgNC42MSAxMiAxMS40OCAxMi41MSAyMC40Ljg4IDE0LjU5LTYuNTEgMjIuMzUtMTUgMzIuNTlhMS40NiAxLjQ2IDAgMCAwIDAgMi4yMmMyLjYgMy4yNSA1IDYuNjMgNy43MSA5LjgzIDI3LjU2IDMzLjIzIDI0LjExIDMwLjU0IDQxLjI4IDMzLjA2Ljg5LjEzIDEtLjQyIDEtMS4xNXYtMTFjMC0xIC4zMi0xLjQzIDEuNDEtMS4yNmE3Mi4zNyA3Mi4zNyAwIDAgMCAyMy41OC0uM2MxLjA4LS4xNSAxLjUuMiAxLjQ4IDEuMzMgMCAuMTEuODggMjYuNjkuODcgMjYuOC0uMDUgMS41Mi42NyAxLjYyIDEuODkgMS42MmgxODYuNzFRMzg2LjUxIDMwNC42IDM0NiAyMzQuMzNjMi4yNi0uNjYtLjQgMCA2LjY5LTEuMzkgMi0uMzkgMi4wNS0uNDEgMy4xMSAxLjQ0IDcuMzEgMTIuNjQgNzcuMzEgMTM0IDc3LjM3IDEzNC4wNlYxMzhjLTEuNzIuNS0xMDMuMyAzOC43Mi0xMDUuNzYgMzkuNjgtMS4wOC40Mi0xLjU1LjItMS45MS0uODgtLjYzLTEuOS0xLjM0LTMuNzYtMi4wOS01LjYyLS4zMi0uNzktLjA5LTEuMTMuNjUtMS4zOS4xIDAgOTUuNTMtMzUuODUgMTAzLTM4Ljc3LTY1LjQyLTM3LjU3LTEzMC41Ni03NS0xOTYtMTEyLjZsODYuODIgMTUwLjM5LS4yOC4zM2MtOS41Ny0uOS0xMC40Ni0xLjYtMTEuOC0zLjk0LTEtMS42OS03My41LTEyNy43MS04Mi0xNDIuMTYtOS4xIDE0LjY3LTgzLjU2IDE0Ni4yMS04NS4zNyAxNDYuMzItMi45My4xNy01Ljg4LjA4LTkuMjUuMDhxNDMuMjUtNzQuNzQgODYuMTgtMTQ5em01MS45MyAxMjkuOTJhMzcuNjggMzcuNjggMCAwIDAgNS41NC0uODVjMS42OS0uMyAyLjUzLjIgMi42IDEuOTIgMCAuMTEuMDcgMTkuMDYtLjg2IDIwLjQ1cy0xLjg4IDEuMjItMi42LS4xOWMtNS05LjY5IDYuMjItOS42Ni0zOS4xMi0xMi0uNyAwLTEgLjIzLTEgLjkzIDAgLjEzIDMuNzIgMTIyIDMuNzMgMTIyLjExIDAgLjg5LjUyIDEuMiAxLjIxIDEuNTFhODMuOTIgODMuOTIgMCAwIDEgOC43IDQuMDVjNy4zMSA0LjMzIDExLjM4IDEwLjg0IDEyLjQxIDE5LjMxIDEuNDQgMTEuOC0yLjc3IDM1Ljc3LTMyLjIxIDM3LjE0LTIuNzUuMTMtMjguMjYgMS4wOC0zNC4xNC0yMy4yNS00LjY2LTE5LjI2IDguMjYtMzIuNyAxOS44OS0zNi40YTIuNDUgMi40NSAwIDAgMCAyLTIuNjZjLjEtNS42MyAzLTEwNy4xIDMuNzEtMTIxLjM1LjA1LTEuMDgtLjYyLTEuMTYtMS4zNS0xLjE1LTMyLjM1LjUyLTM2Ljc1LS4zNC00MC4yMiA4LjUyLTIuNDIgNi4xOC00LjE0IDEuMzItMy45NS4yM3ExLjU5LTkgMy4zMS0xOGMuNC0yLjExIDEuNDMtMi42MSAzLjQzLTEuODYgNS41OSAyLjExIDYuNzIgMS43IDM3LjI1IDEuOTIgMS43MyAwIDEuNzgtLjA4IDEuODItMS44NS42OC0yNy40OS41OC0yMi41OSAxLTI5LjU1YTIuNjkgMi42OSAwIDAgMC0xLjYzLTIuOGMtNS42LTIuOTEtOC43NS03LjU1LTguOS0xMy44Ny0uMzUtMTQuODEgMTcuNzItMjEuNjcgMjcuMzgtMTEuNTEgNi44NCA3LjE5IDUuOCAxOC45MS0yLjQ1IDI0LjE1YTQuMzUgNC4zNSAwIDAgMC0yLjIyIDQuMzRjMCAuNTktLjExLTQuMzEgMSAzMC4wNSAwIC45LjQzIDEuMTIgMS4yNCAxLjExLjEgMCAyMy0uMDkgMzQuNDctLjM3ek02OC4yNyAxNDEuN2MxOS44NC00LjUxIDMyLjY4LS41NiA1Mi40OSAxLjY5IDIuNzYuMzEgMy43NCAxLjIyIDMuNjIgNC0uMjEgNS0xLjE2IDIyLjMzLTEuMjQgMjMuMTVhMi42NSAyLjY1IDAgMCAxLTEuNjMgMi4zNGMtNC4wNiAxLjctMy42MS00LjQ1LTQtNy4yOS0zLjEzLTIyLjQzLTczLjg3LTMyLjctNzQuNjMgMjUuNC0uMzEgMjMuOTIgMTcgNTMuNjMgNTQuMDggNTAuODggMjcuMjQtMiAxOS0yMC4xOSAyNC44NC0yMC40N2EyLjcyIDIuNzIgMCAwIDEgMyAzLjM2Yy0xLjgzIDEwLjg1LTMuNDIgMTguOTUtMy40NSAxOS4xNS0xLjU0IDkuMTctODYuNyAyMi4wOS05My4zNS00Mi4wNi0yLjcxLTI1Ljg1IDEwLjQ0LTUzLjM3IDQwLjI3LTYwLjE1em04MCA4Ny42N2gtMTkuNDlhMi41NyAyLjU3IDAgMCAxLTIuNjYtMS43OWMyLjM4LTMuNzUgNS44OS45MiA1Ljg2LTYuMTQtLjA4LTI1Ljc1LjIxLTM4IC4yMy00MC4xIDAtMy40Mi0uNTMtNC42NS0zLjMyLTQuOTQtNy0uNzItMy4xMS0zLjM3LTEuMTEtMy4zOCAxMS44NC0uMSAyMi42Mi0uMTggMzAuMDUuNzIgOC43NyAxLjA3IDE2LjcxIDEyLjYzIDcuOTMgMjIuNjItMiAyLjI1LTQgNC40Mi02LjE0IDYuNzMuOTUgMS4xNSA2LjkgOC44MiAxNy4yOCAxOS42OCAyLjY2IDIuNzggNi4xNSAzLjUxIDkuODggMy4xM2EyLjIxIDIuMjEgMCAwIDAgMi4yMy0yLjEyYy4zLTMuNDIuMjYgNC43My40NS00MC41OCAwLTUuNjUtLjM0LTYuNTgtMy4yMy02LjgzLTMuOTUtLjM1LTQtMi4yNi0uNjktMy4zN2wxOS4wOS0uMDljLjMyIDAgNC40OS41MyAxIDMuMzggMCAuMDUtLjE2IDAtLjI0IDAtMy42MS4yNi0zLjk0IDEtNCA0LjYyLS4yNyA0My45My4wNyA0MC4yMy40MSA0Mi44Mi4xMS44NC4yNyAyLjIzIDUuMSAyLjE0IDIuNDkgMCAzLjg2IDMuMzcgMCAzLjQtMTAuMzcuMDgtMjAuNzQgMC0zMS4xMS4wNy0xMC42NyAwLTEzLjQ3LTYuMi0yNC4yMS0yMC44Mi0xLjYtMi4xOC04LjMxLTIuMzYtOC4yLS4zNy44OCAxNi40NyAwIDE3Ljc4IDQgMTcuNjcgNC43NS0uMSA0LjczIDMuNTcuODMgMy41NXptMjc1LTEwLjE1Yy0xLjIxIDcuMTMuMTcgMTAuMzgtNS4zIDEwLjM0LTYxLjU1LS40Mi00Ny44Mi0uMjItNTAuNzItLjMxYTE4LjQgMTguNCAwIDAgMS0zLjYzLS43M2MtMi41My0uNiAxLjQ4LTEuMjMtLjM4LTUuNi0xLjQzLTMuMzctMi43OC02Ljc4LTQuMTEtMTAuMTlhMS45NCAxLjk0IDAgMCAwLTItMS40NCAxMzggMTM4IDAgMCAwLTE0LjU4LjA3IDIuMjMgMi4yMyAwIDAgMC0xLjYyIDEuMDZjLTEuNTggMy42Mi0zLjA3IDcuMjktNC41MSAxMS0xLjI3IDMuMjMgNy44NiAxLjMyIDEyLjE5IDIuMTYgMyAuNTcgNC41MyAzLjcyLjY2IDMuNzNIMzIyLjljLTIuOTIgMC0zLjA5LTMuMTUtLjc0LTMuMjFhNi4zIDYuMyAwIDAgMCA1LjkyLTMuNDdjMS41LTMgMi44LTYgNC4xMS05LjA5IDE4LjE4LTQyLjE0IDE3LjA2LTQwLjE3IDE4LjQyLTQxLjYxYTEuODMgMS44MyAwIDAgMSAzIDBjMi45MyAzLjM0IDE4LjQgNDQuNzEgMjMuNjIgNTEuOTIgMiAyLjcgNS43NCAyIDYuMzYgMiAzLjYxLjEzIDQtMS4xMSA0LjEzLTQuMjkuMDktMS44Ny4wOCAxLjE3LjA3LTQxLjI0IDAtNC40Ni0yLjM2LTMuNzQtNS41NS00LjI3LS4yNiAwLTIuNTYtLjYzLS4wOC0zLjA2LjIxLS4yLS44OS0uMjQgMjEuNy0uMTUgMi4zMiAwIDUuMzIgMi43NS0xLjIxIDMuNDVhMi41NiAyLjU2IDAgMCAwLTIuNjYgMi44M2MtLjA3IDEuNjMtLjE5IDM4Ljg5LjI5IDQxLjIxYTMuMDYgMy4wNiAwIDAgMCAzLjIzIDIuNDNjMTMuMjUuNDMgMTQuOTIuNDQgMTYtMy40MSAxLjY3LTUuNzggNC4xMy0yLjUyIDMuNzMtLjE5em0tMTA0LjcyIDY0LjM3Yy00LjI0IDAtNC40Mi0zLjM5LS42MS0zLjQxIDM1LjkxLS4xNiAyOC4xMS4zOCAzNy4xOS0uNjUgMS42OC0uMTkgMi4zOC4yNCAyLjI1IDEuODktLjI2IDMuMzktLjY0IDYuNzgtMSAxMC4xNi0uMjUgMi4xNi0zLjIgMi42MS0zLjQtLjE1LS4zOC01LjMxLTIuMTUtNC40NS0xNS42My01LjA4LTEuNTgtLjA3LTEuNjQgMC0xLjY0IDEuNTJWMzA0YzAgMS42NSAwIDEuNiAxLjYyIDEuNDcgMy4xMi0uMjUgMTAuMzEuMzQgMTUuNjktMS41Mi40Ny0uMTYgMy4zLTEuNzkgMy4wNyAxLjc2IDAgLjIxLS43NiAxMC4zNS0xLjE4IDExLjM5LS41MyAxLjI5LTEuODggMS41MS0yLjU4LjMyLTEuMTctMiAwLTUuMDgtMy43MS01LjMtMTUuNDItLjktMTIuOTEtMi41NS0xMi45MSA2IDAgMTIuMjUtLjc2IDE2LjExIDMuODkgMTYuMjQgMTYuNjQuNDggMTQuNCAwIDE2LjQzLTUuNzEuODQtMi4zNyAzLjUtMS43NyAzLjE4LjU4LS40NCAzLjIxLS44NSA2LjQzLTEuMjMgOS42NCAwIC4zNi0uMTYgMi40LTQuNjYgMi4zOS0zNy4xNi0uMDgtMzQuNTQtLjE5LTM1LjIxLS4zMS0yLjcyLS41MS0yLjItMyAuMjItMy40NSAxLjEtLjE5IDQgLjU0IDQuMTYtMi41NiAyLjQ0LTU2LjIyLS4wNy01MS4zNC0zLjkxLTUxLjMzem0tLjQxLTEwOS41MmMyLjQ2LjYxIDMuMTMgMS43NiAyLjk1IDQuNjUtLjMzIDUuMy0uMzQgOS0uNTUgOS42OS0uNjYgMi4yMy0zLjE1IDIuMTItMy4zNC0uMjctLjM4LTQuODEtMy4wNS03LjgyLTcuNTctOS4xNS0yNi4yOC03LjczLTMyLjgxIDE1LjQ2LTI3LjE3IDMwLjIyIDUuODggMTUuNDEgMjIgMTUuOTIgMjguODYgMTMuNzggNS45Mi0xLjg1IDUuODgtNi41IDYuOTEtNy41OCAxLjIzLTEuMyAyLjI1LTEuODQgMy4xMiAxLjEgMCAuMS41NyAxMS44OS02IDEyLjc1LTEuNi4yMS0xOS4zOCAzLjY5LTMyLjY4LTMuMzktMjEtMTEuMTktMTYuNzQtMzUuNDctNi44OC00NS4zMyAxNC0xNC4wNiAzOS45MS03LjA2IDQyLjMyLTYuNDd6TTI4OS44IDI4MC4xNGMzLjI4IDAgMy42NiAzIC4xNiAzLjQzLTIuNjEuMzItNS0uNDItNSA1LjQ2IDAgMi0uMTkgMjkuMDUuNCA0MS40NS4xMSAyLjI5IDEuMTUgMy41MiAzLjQ0IDMuNjUgMjIgMS4yMSAxNC45NS0xLjY1IDE4Ljc5LTYuMzQgMS44My0yLjI0IDIuNzYuODQgMi43NiAxLjA4LjM1IDEzLjYyLTQgMTIuMzktNS4xOSAxMi40bC0zOC4xNi0uMTljLTEuOTMtLjIzLTIuMDYtMy0uNDItMy4zOCAyLS40OCA0Ljk0LjQgNS4xMy0yLjggMS0xNS44Ny41Ny00NC42NS4zNC00Ny44MS0uMjctMy43Ny0yLjgtMy4yNy01LjY4LTMuNzEtMi40Ny0uMzgtMi0zLjIyLjM0LTMuMjIgMS40NS0uMDIgMTcuOTctLjAzIDIzLjA5LS4wMnptLTMxLjYzLTU3Ljc5Yy4wNyA0LjA4IDIuODYgMy40NiA2IDMuNTggMi42MS4xIDIuNTMgMy40MS0uMDcgMy40My02LjQ4IDAtMTMuNyAwLTIxLjYxLS4wNi0zLjg0IDAtMy4zOC0zLjM1IDAtMy4zNyA0LjQ5IDAgMy4yNCAxLjYxIDMuNDEtNDUuNTQgMC01LjA4LTMuMjctMy41NC00LjcyLTQuMjMtMi41OC0xLjIzLTEuMzYtMy4wOS40MS0zLjE1IDEuMjkgMCAyMC4xOS0uNDEgMjEuMTcuMjFzMS44NyAxLjY1LS40MiAyLjg2Yy0xIC41Mi0zLjg2LS4yOC00LjE1IDIuNDcgMCAuMjEtLjgyIDEuNjMtLjA3IDQzLjh6bS0zNi45MSAyNzQuMjdhMi45MyAyLjkzIDAgMCAwIDMuMjYgMGMxNy05Ljc5IDE4Mi0xMDMuNTcgMTk3LjQyLTExMi41MS0uMTQtLjQzIDExLjI2LS4xOC0xODEuNTItLjI3LTEuMjIgMC0xLjU3LjM3LTEuNTMgMS41NiAwIC4xIDEuMjUgNDQuNTEgMS4yMiA1MC4zOGEyOC4zMyAyOC4zMyAwIDAgMS0xLjM2IDcuNzFjLS41NSAxLjgzLjM4LS41LTEzLjUgMzIuMjMtLjczIDEuNzItMSAyLjIxLTItLjA4LTQuMTktMTAuMzQtOC4yOC0yMC43Mi0xMi41Ny0zMWEyMy42IDIzLjYgMCAwIDEtMi0xMC43OWMuMTYtMi40Ni44LTE2LjEyIDEuNTEtNDggMC0xLjk1IDAtMi0yLTJoLTE4M2MyLjU4IDEuNjMgMTc4LjMyIDEwMi41NyAxOTYgMTEyLjc2em0tOTAuOS0xODguNzVjMCAyLjQuMzYgMi43OSAyLjc2IDMgMTEuNTQgMS4xNyAyMSAzLjc0IDI1LjY0LTcuMzIgNi0xNC40NiAyLjY2LTM0LjQxLTEyLjQ4LTM4Ljg0LTItLjU5LTE2LTIuNzYtMTUuOTQgMS41MS4wNSA4LjA0LjAxIDExLjYxLjAyIDQxLjY1em0xMDUuNzUtMTUuMDVjMCAyLjEzIDEuMDcgMzguNjggMS4wOSAzOS4xMy4zNCA5Ljk0LTI1LjU4IDUuNzctMjUuMjMtMi41OS4wOC0yIDEuMzctMzcuNDIgMS4xLTM5LjQzLTE0LjEgNy40NC0xNC40MiA0MC4yMSA2LjQ0IDQ4LjhhMTcuOSAxNy45IDAgMCAwIDIyLjM5LTcuMDdjNC45MS03Ljc2IDYuODQtMjkuNDctNS40My0zOWEyLjUzIDIuNTMgMCAwIDEtLjM2LjEyem0tMTIuMjgtMTk4Yy05LjgzIDAtOS43MyAxNC43NS0uMDcgMTQuODdzMTAuMS0xNC44OC4wNy0xNC45MXptLTgwLjE1IDEwMy44M2MwIDEuOC40MSAyLjQgMi4xNyAyLjU4IDEzLjYyIDEuMzkgMTIuNTEtMTEgMTIuMTYtMTMuMzYtMS42OS0xMS4yMi0xNC4zOC0xMC4yLTE0LjM1LTcuODEuMDUgNC41LS4wMyAxMy42OC4wMiAxOC41OXptMjEyLjMyIDYuNGwtNi4xLTE1Ljg0Yy0yLjE2IDUuNDgtNC4xNiAxMC41Ny02LjIzIDE1Ljg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDc3MzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsMzQuOSAzOTUuOEwxOTIgNDgwbDE1Ny4xLTUyLjJMMzg0IDMySDB6bTMxMy4xIDgwbC00LjggNDcuM0wxOTMgMjA4LjZsLS4zLjFoMTExLjVsLTEyLjggMTQ2LjYtOTguMiAyOC43LTk4LjgtMjkuMi02LjQtNzMuOWg0OC45bDMuMiAzOC4zIDUyLjYgMTMuMyA1NC43LTE1LjQgMy43LTYxLjYtMTY2LjMtLjV2LS4xbC0uMi4xLTMuNi00Ni4zTDE5My4xIDE2Mmw2LjUtMi43SDc2LjdMNzAuOSAxMTJoMjQyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNzczMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMybC02NCAzNjgtMjIzLjMgODBMMCA0MDBsMTkuNi05NC44aDgybC04IDQwLjZMMjEwIDM5MC4ybDEzNC4xLTQ0LjQgMTguOC05Ny4xSDI5LjVsMTYtODJoMzMzLjdsMTAuNS01Mi43SDU2LjNsMTYuMy04Mkg0ODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUN1dHRsZWZpc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDMwNS41Yy0xNy41IDMxLjYtNTcuNCA1NC41LTk2IDU0LjUtNTYuNiAwLTEwNC00Ny40LTEwNC0xMDRzNDcuNC0xMDQgMTA0LTEwNGMzOC42IDAgNzguNSAyMi45IDk2IDU0LjUgMTMuNy01MC45IDQxLjctOTMuMyA4Ny0xMTcuOEMzODUuNyAzOS4xIDMyMC41IDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4YzcyLjUgMCAxMzcuNy0zMS4xIDE4My04MC43LTQ1LjMtMjQuNS03My4zLTY2LjktODctMTE3Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURBbmREQmV5b25kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy44IDI0MS41YzEzLjggMCAyMS0xMC4xIDI0LjgtMTcuOS0xLTEuMS01LTQuMi03LjQtNi42LTIuNCA0LjMtOC4yIDEwLjctMTMuOSAxMC43LTEwLjIgMC0xNS40LTE0LjctMy4yLTI2LjYtLjUtLjItNC4zLTEuOC04IDIuNCAwLTMgMS01LjEgMi4xLTYuNi0zLjUgMS4zLTkuOCA1LjYtMTEuNCA3LjkuMi01LjggMS42LTcuNS42LTlsLS4yLS4ycy04LjUgNS42LTkuMyAxNC43YzAgMCAxLjEtMS42IDIuMS0xLjkuNi0uMyAxLjMgMCAuNiAxLjktLjIuNi01LjggMTUuNyA1LjEgMjYtLjYtMS42LTEuOS03LjYgMi40LTEuOS0uMy4xIDUuOCA3LjEgMTUuNyA3LjF6bTUyLjQtMjEuMWMwLTQtNC45LTQuNC01LjYtNC41IDIgMy45LjkgNy41LjIgOSAyLjUtLjQgNS40LTEuNiA1LjQtNC41em0xMC4zIDUuMmMwLTYuNC02LjItMTEuNC0xMy41LTEwLjcgOCAxLjMgNS42IDEzLjgtNSAxMS40IDMuNy0yLjYgMy4yLTkuOS0xLjMtMTIuNSAxLjQgNC4yLTMgOC4yLTcuNCA0LjYtMi40LTEuOS04LTYuNi0xMC42LTguNi0yLjQtMi4xLTUuNS0xLTYuNi0xLjgtMS4zLTEuMS0uNS0zLjgtMi4yLTUtMS42LS44LTMtLjMtNC44LTEtMS42LS42LTIuNy0xLjktMi42LTMuNS0yLjUgNC40IDMuNCA2LjMgNC41IDguNSAxIDEuOS0uOCA0LjggNCA4LjUgMTQuOCAxMS42IDkuMSA4IDEwLjQgMTguMS42IDQuMyA0LjIgNi43IDYuNCA3LjQtMi4xLTEuOS0yLjktNi40IDAtOS4zIDAgMTMuOSAxOS4yIDEzLjMgMjMuMSA2LjQtMi40IDEuMS03LS4yLTktMS45IDcuNyAxIDE0LjItNC4xIDE0LjYtMTAuNnptLTM5LjQtMTguNGMyIC44IDEuNi43IDYuNCA0LjUgMTAuMi0yNC41IDIxLjctMTUuNyAyMi0xNS41IDIuMi0xLjkgOS44LTMuOCAxMy44LTIuNy0yLjQtMi43LTcuNS02LjItMTMuMy02LjItNC43IDAtNy40IDIuMi04IDEuMy0uOC0xLjQgMy4yLTMuNCAzLjItMy40LTUuNC4yLTkuNiA2LjctMTEuMiA1LjktMS4xLS41IDEuNC0zLjcgMS40LTMuNy01LjEgMi45LTkuMyA5LjEtMTAuMiAxMyA0LjYtNS44IDEzLjgtOS44IDE5LjctOS0xMC41LjUtMTkuNSA5LjctMjMuOCAxNS44em0yNDIuNSA1MS45Yy0yMC43IDAtNDAgMS4zLTUwLjMgMi4xbDcuNCA4LjJ2NzcuMmwtNy40IDguMmMxMC40LjggMzAuOSAyLjEgNTEuNiAyLjEgNDIuMSAwIDU5LjEtMjAuNyA1OS4xLTQ4LjkgMC0yOS4zLTIzLjItNDguOS02MC40LTQ4Ljl6bS0xNS4xIDc1LjZ2LTUzLjNjMzAuMS0zLjMgNDYuOCAzLjggNDYuOCAyNi4zIDAgMjUuNi0yMS40IDMwLjItNDYuOCAyN3pNMzAxLjYgMTgxYy0xLTMuNC0uMi02LjkgMS4xLTkuNCAxIDMgMi42IDYuNCA3LjUgOS0uNS0yLjQtLjItNS42LjUtOC0xLjQtNS40IDIuMS05LjkgNi40LTkuOSA2LjkgMCA4LjUgOC44IDQuNyAxNC40IDIuMSAzLjIgNS41IDUuNiA3LjcgNy44IDMuMi0zLjcgNS41LTkuNSA1LjUtMTMuOCAwLTguMi01LjUtMTUuOS0xNi43LTE2LjUtMjAtLjktMjAuMiAxNi42LTIwIDE4LjkuNSA1LjIgMy40IDcuOCAzLjMgNy41em0tLjQgNmMtLjUgMS44LTcgMy43LTEwLjIgNi45IDQuOC0xIDctLjIgNy44IDEuOC41IDEuNC0uMiAzLjQtLjUgNS42IDEuNi0xLjggNy01LjUgMTEtNi4yLTEtLjMtMy40LS44LTQuMy0uOCAyLjktMy40IDkuMy00LjUgMTIuOC0zLjctMi4yLS4yLTYuNyAxLjEtOC41IDIuNiAxLjYuMyAzIC42IDQuMyAxLjEtMi4xLjgtNC44IDMuNC01LjggNi4xIDctNSAxMy4xIDUuMiA3IDguMi44LjIgMi43IDAgMy41LS41LS4zIDEuMS0xLjkgMy0zIDMuNCAyLjkgMCA3LTEuOSA4LjItNC42IDAgMC0xLjguNi0yLjYtLjJzLjMtNC4zLjMtNC4zYy0yLjMgMi45LTMuNC0xLjMtMS4zLTQuMi0xLS4zLTMuNS0uNi00LjYtLjUgMy4yLTEuMSAxMC40LTEuOCAxMS4yLS4zLjYgMS4xLTEgMy40LTEgMy40IDQtLjUgOC4zIDEuMSA2LjcgNS4xIDIuOS0xLjQgNS41LTUuOSA0LjgtMTAuNC0uMyAxLTEuNiAyLjQtMi45IDIuNy4yLTEuNC0xLTIuMi0xLjktMi42IDEuNy05LjYtMTQuNi0xNC4yLTE0LjEtMjMuOS0xIDEuMy0xLjggNS0uOCA3LjEgMi43IDMuMiA4LjcgNi43IDEwLjEgMTIuMi0yLjYtNi40LTE1LjEtMTEuNC0xNC42LTIwLjItMS42IDEuNi0yLjYgNy44LTEuMyAxMSAyLjQgMS40IDQuNSAzLjggNC44IDYuMS0yLjItNS4xLTExLjQtNi4xLTEzLjktMTIuMi0uNiAyLjItLjMgNSAxIDYuNyAwIDAtMi4yLS44LTctLjYgMS43LjYgNS4xIDMuNSA0LjggNS4yem0yNS45IDcuNGMtMi43IDAtMy41LTIuMS00LjItNC4zIDMuMyAxLjMgNC4yIDQuMyA0LjIgNC4zem0zOC45IDMuN2wtMS0uNmMtMS4xLTEtMi45LTEuNC00LjctMS40LTIuOSAwLTUuOCAxLjMtNy41IDMuNC0uOC44LTEuNCAxLjgtMi4xIDIuNnYxNS43YzMuNSAyLjYgNy4xLTIuOSAzLTcuMiAxLjUuMyA0LjYgMi43IDUuMSAzLjIgMCAwIDIuNi0uNSA1LS41IDIuMSAwIDMuOS4zIDUuNiAxLjFWMTk2Yy0xLjEuNS0yLjIgMS0yLjcgMS40ek03OS45IDMwNS45YzE3LjItNC42IDE2LjItMTggMTYuMi0xOS45IDAtMjAuNi0yNC4xLTI1LTM3LTI1SDNsOC4zIDguNnYyOS41SDBsMTEuNCAxNC42VjM0NkwzIDM1NC42YzYxLjcgMCA3My44IDEuNSA4Ni40LTUuOSA2LjctNCA5LjktOS44IDkuOS0xNy42IDAtNS4xIDIuNi0xOC44LTE5LjQtMjUuMnptLTQxLjMtMjcuNWMyMCAwIDI5LjYtLjggMjkuNiA5LjF2M2MwIDEyLjEtMTkgOC44LTI5LjYgOC44em0wIDU5LjJWMzE1YzEyLjIgMCAzMi43LTIuMyAzMi43IDguOHY0LjVoLjJjMCAxMS4yLTEyLjUgOS4zLTMyLjkgOS4zem0xMDEuMi0xOS4zbDIzLjEuMnYtLjJsMTQuMS0yMS4yaC0zNy4ydi0xNC45aDUyLjRsLTE0LjEtMjF2LS4ybC03My41LjIgNy40IDguMnY3Ny4xbC03LjQgOC4yaDgxLjJsMTQuMS0yMS4yLTYwLjEuMnptMjE0LjctNjAuMWMtNzMuOSAwLTc3LjUgOTkuMy0uMyA5OS4zIDc3LjkgMCA3NC4xLTk5LjMuMy05OS4zem0tLjMgNzcuNWMtMzcuNCAwLTM2LjktNTUuMy4yLTU1LjMgMzYuOC4xIDM4LjggNTUuMy0uMiA1NS4zem0tOTEuMy04LjNsNDQuMS02Ni4yaC00MS43bDYuMSA3LjItMjAuNSAzNy4yaC0uM2wtMjEtMzcuMiA2LjQtNy4yaC00NC45bDQ0LjEgNjUuOC4yIDE5LjQtNy43IDguMmg0Mi42bC03LjItOC4yem0tMjguNC0xNTEuM2MxLjYgMS4zIDIuOSAyLjQgMi45IDYuNnYzOC44YzAgNC4yLS44IDUuMy0yLjcgNi40LS4xLjEtNy41IDQuNS03LjkgNC42aDM1LjFjMTAgMCAxNy40LTEuNSAyNi04LjYtLjYtNSAuMi05LjUuOC0xMiAwLS4yLTEuOCAxLjQtMi43IDMuNSAwLTUuNyAxLjYtMTUuNCA5LjYtMjAuNS0uMSAwLTMuNy0uOC05IDEuMSAyLTMuMSAxMC03LjkgMTAuNC03LjktOC4yLTI2LTM4LTIyLjktMzIuMi0yMi45LTMwLjkgMC0zMi42LjMtMzkuOS00IC4xLjguNSA4LjIgOS42IDE0Ljl6bTIxLjUgNS41YzQuNiAwIDIzLjEtMy4zIDIzLjEgMTcuMyAwIDIwLjctMTguNCAxNy4zLTIzLjEgMTcuM3ptMjI4LjkgNzkuNmw3IDguM1YzMTJoLS4zYy01LjQtMTQuNC00Mi4zLTQxLjUtNDUuMi01MC45aC0zMS42bDcuNCA4LjV2NzYuOWwtNy4yIDguM2gzOWwtNy40LTguMnYtNDcuNGguM2MzLjcgMTAuNiA0NC41IDQyLjkgNDguNSA1NS42aDIxLjN2LTg1LjJsNy40LTguM3ptLTEwNi43LTk2LjFjLTMyLjIgMC0zMi44LjItMzkuOS00IC4xLjcuNSA4LjMgOS42IDE0LjkgMy4xIDIgMi45IDQuMyAyLjkgOS41IDEuOC0xLjEgMy44LTIuMiA2LjEtMy0xLjEgMS4xLTIuNyAyLjctMy41IDQuNSAxLTEuMSA3LjUtNS4xIDE0LjYtMy41LTEuNi4zLTQgMS4xLTYuMSAyLjkuMSAwIDIuMS0xLjEgNy41LS4zdi00LjNjNC43IDAgMjMuMS0zLjQgMjMuMSAxNy4zIDAgMjAuNS0xOC41IDE3LjMtMTkuNyAxNy4zIDUuNyA0LjQgNS44IDEyIDIuMiAxNi4zaC4zYzMzLjQgMCAzNi43LTI3LjMgMzYuNy0zNCAwLTMuOC0xLjEtMzItMzMuOC0zMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEQW5kRCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04Mi41IDk4LjljLS42LTE3LjIgMi0zMy44IDEyLjctNDguMi4zIDcuNCAxLjIgMTQuNSA0LjIgMjEuNiA1LjktMjcuNSAxOS43LTQ5LjMgNDIuMy02NS41LTEuOSA1LjktMy41IDExLjgtMyAxNy43IDguNy03LjQgMTguOC0xNy44IDQ0LjQtMjIuNyAxNC43LTIuOCAyOS43LTIgNDIuMSAxIDM4LjUgOS4zIDYxIDM0LjMgNjkuNyA3Mi4zIDUuMyAyMy4xLjcgNDUtOC4zIDY2LjQtNS4yIDEyLjQtMTIgMjQuNC0yMC43IDM1LjEtMi0xLjktMy45LTMuOC01LjgtNS42LTQyLjgtNDAuOC0yNi44LTI1LjItMzcuNC0zNy40LTEuMS0xLjItMS0yLjItLjEtMy42IDguMy0xMy41IDExLjgtMjguMiAxMC00NC0xLjEtOS44LTQuMy0xOC45LTExLjMtMjYuMi0xNC41LTE1LjMtMzkuMi0xNS01My41LjYtMTEuNCAxMi41LTE0LjEgMjcuNC0xMC45IDQzLjYuMiAxLjMuNCAyLjcgMCAzLjktMy40IDEzLjctNC42IDI3LjYtMi41IDQxLjYuMS41LjEgMS4xLjEgMS42IDAgLjMtLjEuNS0uMiAxLjEtMjEuOC0xMS0zNi0yOC4zLTQzLjItNTIuMi04LjMgMTcuOC0xMS4xIDM1LjUtNi42IDU0LjEtMTUuNi0xNS4yLTIxLjMtMzQuMy0yMi01NS4yem00NjkuNiAxMjMuMmMtMTEuNi0xMS42LTI1LTIwLjQtNDAuMS0yNi42LTEyLjgtNS4yLTI2LTcuOS0zOS45LTcuMS0xMCAuNi0xOS42IDMuMS0yOSA2LjQtMi41LjktNS4xIDEuNi03LjcgMi4yLTQuOSAxLjItNy4zLTMuMS00LjctNi44IDMuMi00LjYgMy40LTQuMiAxNS0xMiAuNi0uNCAxLjItLjggMi4yLTEuNWgtMi41Yy0uNiAwLTEuMi4yLTEuOS4zLTE5LjMgMy4zLTMwLjcgMTUuNS00OC45IDI5LjYtMTAuNCA4LjEtMTMuOCAzLjgtMTItLjUgMS40LTMuNSAzLjMtNi43IDUuMS0xMCAxLTEuOCAyLjMtMy40IDMuNS01LjEtLjItLjItLjUtLjMtLjctLjUtMjcgMTguMy00Ni43IDQyLjQtNTcuNyA3My4zLjMuMy43LjYgMSAuOS4zLS42LjUtMS4yLjktMS43IDEwLjQtMTIuMSAyMi44LTIxLjggMzYuNi0yOS44IDE4LjItMTAuNiAzNy41LTE4LjMgNTguNy0yMC4yIDQuMy0uNCA4LjctLjEgMTMuMS0uMS0xLjguNy0zLjUuOS01LjMgMS4xLTE4LjUgMi40LTM1LjUgOS01MS41IDE4LjUtMzAuMiAxNy45LTU0LjUgNDIuMi03NS4xIDcwLjQtLjMuNC0uNC45LS43IDEuMyAxNC41IDUuMyAyNCAxNy4zIDM2LjEgMjUuNi4yLS4xLjMtLjIuNC0uNGwxLjItMi43YzEyLjItMjYuOSAyNy01Mi4zIDQ2LjctNzQuNSAxNi43LTE4LjggMzgtMjUuMyA2Mi41LTIwIDUuOSAxLjMgMTEuNCA0LjQgMTcuMiA2LjggMi4zLTEuNCA1LjEtMy4yIDgtNC43IDguNC00LjMgMTcuNC03IDI2LjctOSAxNC43LTMuMSAyOS41LTQuOSA0NC41LTEuM3YtLjVjLS41LS40LTEuMi0uOC0xLjctMS40ek0zMTYuNyAzOTcuNmMtMzkuNC0zMy0yMi44LTE5LjUtNDIuNy0zNS42LS44LjkgMC0uMi0xLjkgMy0xMS4yIDE5LjEtMjUuNSAzNS4zLTQ0IDQ3LjYtMTAuMyA2LjgtMjEuNSAxMS44LTM0LjEgMTEuOC0yMS42IDAtMzguMi05LjUtNDkuNC0yNy44LTEyLTE5LjUtMTMuMy00MC43LTguMi02Mi42IDcuOC0zMy44IDMwLjEtNTUuMiAzOC42LTY0LjMtMTguNy02LjItMzMgMS43LTQ2LjQgMTMuOS44LTEzLjkgNC4zLTI2LjIgMTEuOC0zNy4zLTI0LjMgMTAuNi00NS45IDI1LTY0LjggNDMuOS0uMy01LjggNS40LTQzLjcgNS42LTQ0LjcuMy0yLjctLjYtNS4zLTMtNy40LTI0LjIgMjQuNy00NC41IDUxLjgtNTYuMSA4NC42IDcuNC01LjkgMTQuOS0xMS40IDIzLjYtMTYuMi04LjMgMjIuMy0xOS42IDUyLjgtNy44IDEwMS4xIDQuNiAxOSAxMS45IDM2LjggMjQuMSA1Mi4zIDIuOSAzLjcgNi4zIDYuOSA5LjUgMTAuMy4yLS4yLjQtLjMuNi0uNS0xLjQtNy0yLjItMTQuMS0xLjUtMjEuOSAyLjIgMy4yIDMuOSA2IDUuOSA4LjYgMTIuNiAxNiAyOC43IDI3LjQgNDcuMiAzNS42IDI1IDExLjMgNTEuMSAxMy4zIDc3LjkgOC42IDU0LjktOS43IDkwLjctNDguNiAxMTYtOTguOCAxLTEuOC42LTIuOS0uOS00LjJ6bTE3Mi00Ni40Yy05LjUtMy4xLTIyLjItNC4yLTI4LjctMi45IDkuOSA0IDE0LjEgNi42IDE4LjggMTIgMTIuNiAxNC40IDEwLjQgMzQuNy01LjQgNDUuNi0xMS43IDguMS0yNC45IDEwLjUtMzguOSA5LjEtMS4yLS4xLTIuMy0uNC0zLS42IDIuOC0zLjcgNi03IDguMS0xMC44IDkuNC0xNi44IDUuNC00Mi4xLTguNy01Ni4xLTIuMS0yLjEtNC42LTMuOS03LTUuOS0uMyAxLjMtLjEgMi4xLjEgMi44IDQuMiAxNi42LTguMSAzMi40LTI0LjggMzEuOC03LjYtLjMtMTMuOS0zLjgtMTkuNi04LjUtMTkuNS0xNi4xLTM5LjEtMzIuMS01OC41LTQ4LjMtNS45LTQuOS0xMi41LTguMS0yMC4xLTguNy00LjYtLjQtOS4zLS42LTEzLjktLjktNS45LS40LTguOC0yLjgtMTAuNC04LjQtLjktMy40LTEuNS02LjgtMi4yLTEwLjItMS41LTguMS02LjItMTMtMTQuMy0xNC4yLTQuNC0uNy04LjktMS0xMy4zLTEuNS0xMy0xLjQtMTkuOC03LjQtMjIuNi0yMC4zLTUgMTEtMS42IDIyLjQgNy4zIDI5LjkgNC41IDMuOCA5LjMgNy4zIDEzLjggMTEuMiA0LjYgMy44IDcuNCA4LjcgNy45IDE0LjguNCA0LjcuOCA5LjUgMS44IDE0LjEgMi4yIDEwLjYgOC45IDE4LjQgMTcgMjUuMSAxNi41IDEzLjcgMzMgMjcuMyA0OS41IDQxLjEgMTcuOSAxNSAxMy45IDMyLjggMTMgNTYtLjkgMjIuOSAxMi4yIDQyLjkgMzMuNSA1MS4yIDEgLjQgMiAuNiAzLjYgMS4xLTE1LjctMTguMi0xMC4xLTQ0LjEuNy01Mi4zLjMgMi4yLjQgNC4zLjkgNi40IDkuNCA0NC4xIDQ1LjQgNjQuMiA4NSA1Ni45IDE2LTIuOSAzMC42LTguOSA0Mi45LTE5LjggMi0xLjggMy43LTQuMSA1LjktNi41LTE5LjMgNC42LTM1LjguMS01MC45LTEwLjYuNy0uMyAxLjMtLjMgMS45LS4zIDIxLjMgMS44IDQwLjYtMy40IDU3LTE3LjQgMTkuNS0xNi42IDI2LjYtNDIuOSAxNy40LTY2LTguMy0yMC4xLTIzLjYtMzIuMy00My44LTM4Ljl6TTk5LjQgMTc5LjNjLTUuMy05LjItMTMuMi0xNS42LTIyLjEtMjEuMyAxMy43LS41IDI2LjYuMiAzOS42IDMuNy03LTEyLjItOC41LTI0LjctNS0zOC43IDUuMyAxMS45IDEzLjcgMjAuMSAyMy42IDI2LjggMTkuNyAxMy4yIDM1LjcgMTkuNiA0Ni43IDMwLjIgMy40IDMuMyA2LjMgNy4xIDkuNiAxMC45LS44LTIuMS0xLjQtNC4xLTIuMi02LTUtMTAuNi0xMy0xOC42LTIyLjYtMjUtMS44LTEuMi0yLjgtMi41LTMuNC00LjUtMy4zLTEyLjUtMy0yNS4xLS43LTM3LjYgMS01LjUgMi44LTEwLjkgNC41LTE2LjMuOC0yLjQgMi4zLTQuNiA0LTYuNi42IDYuOSAwIDI1LjUgMTkuNiA0NiAxMC44IDExLjMgMjIuNCAyMS45IDMzLjkgMzIuNyA5IDguNSAxOC4zIDE2LjcgMjUuNSAyNi44IDEuMSAxLjYgMi4yIDMuMyAzLjggNC43LTUtMTMtMTQuMi0yNC4xLTI0LjItMzMuOC05LjYtOS4zLTE5LjQtMTguNC0yOS4yLTI3LjQtMy4zLTMtNC42LTYuNy01LjEtMTAuOS0xLjItMTAuNCAwLTIwLjYgNC4zLTMwLjIuNS0xIDEuMS0yIDEuOS0zLjMuNSA0LjIuNiA3LjkgMS40IDExLjYgNC44IDIzLjEgMjAuNCAzNi4zIDQ5LjMgNjMuNSAxMCA5LjQgMTkuMyAxOS4yIDI1LjYgMzEuNiA0LjggOS4zIDcuMyAxOSA1LjcgMjkuNi0uMS42LjUgMS43IDEuMSAyIDYuMiAyLjYgMTAgNi45IDkuNyAxNC4zIDcuNy0yLjYgMTIuNS04IDE2LjQtMTQuNSA0LjIgMjAuMi05LjEgNTAuMy0yNy4yIDU4LjcuNC00LjUgNS0yMy40LTE2LjUtMjcuNy02LjgtMS4zLTEyLjgtMS4zLTIyLjktMi4xIDQuNy05IDEwLjQtMjAuNi41LTIyLjQtMjQuOS00LjYtNTIuOCAxLjktNTcuOCA0LjYgOC4yLjQgMTYuMyAxIDIzLjUgMy4zLTIgNi41LTQgMTIuNy01LjggMTguOS0xLjkgNi41IDIuMSAxNC42IDkuMyA5LjYgMS4yLS45IDIuMy0xLjkgMy4zLTIuNy0zLjEgMTcuOS0yLjkgMTUuOS0yLjggMTguMy4zIDEwLjIgOS41IDcuOCAxNS43IDcuMy0yLjUgMTEuOC0yOS41IDI3LjMtNDUuNCAyNS44IDctNC43IDEyLjctMTAuMyAxNS45LTE3LjktNi41LjgtMTIuOSAxLjYtMTkuMiAyLjRsLS4zLS45YzQuNy0zLjQgOC03LjggMTAuMi0xMy4xIDguNy0yMS4xLTMuNi0zOC0yNS0zOS45LTkuMS0uOC0xNy44LjgtMjUuOSA1LjUgNi4yLTE1LjYgMTcuMi0yNi42IDMyLjYtMzQuNS0xNS4yLTQuMy04LjktMi43LTI0LjYtNi4zIDE0LjYtOS4zIDMwLjItMTMuMiA0Ni41LTE0LjYtNS4yLTMuMi00OC4xLTMuNi03MC4yIDIwLjkgNy45IDEuNCAxNS41IDIuOCAyMy4yIDQuMi0yMy44IDctNDQgMTkuNy02Mi40IDM1LjYgMS4xLTQuOCAyLjctOS41IDMuMy0xNC4zLjYtNC41LjgtOS4yLjEtMTMuNi0xLjUtOS40LTguOS0xNS4xLTE5LjctMTYuMy03LjktLjktMTUuNi4xLTIzLjMgMS4zLS45LjEtMS43LjMtMi45IDAgMTUuOC0xNC44IDM2LTIxLjcgNTMuMS0zMy41IDYtNC41IDYuOC04LjIgMy0xNC45em0xMjguNCAyNi44YzMuMyAxNiAxMi42IDI1LjUgMjMuOCAyNC4zLTQuNi0xMS4zLTEyLjEtMTkuNS0yMy44LTI0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhaWx5bW90aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC45MywyNjdhNDguNCw0OC40LDAsMCwwLTI0LjM2LTYuMjFxLTE5LjgzLDAtMzMuNDQsMTMuMjd0LTEzLjYxLDMzLjQycTAsMjEuMTYsMTMuMjgsMzQuNnQzMy40MywxMy40NHEyMC41LDAsMzQuMTEtMTMuNzhUMzIyLDMwNy40N0E0Ny4xMyw0Ny4xMywwLDAsMCwzMTUuOSwyODQsNDQuMTMsNDQuMTMsMCwwLDAsMjk4LjkzLDI2N1pNMCwzMlY0ODBINDQ4VjMyWk0zNzQuNzEsNDA1LjI2aC01My4xVjM4MS4zN2gtLjY3cS0xNS43OSwyNi4yLTU1Ljc4LDI2LjItMjcuNTYsMC00OC44OS0xMy4xYTg4LjI5LDg4LjI5LDAsMCwxLTMyLjk0LTM1Ljc3cS0xMS42LTIyLjY4LTExLjU5LTUwLjg5LDAtMjcuNTYsMTEuNzYtNTAuMjJhODkuOSw4OS45LDAsMCwxLDMyLjkzLTM1Ljc4cTIxLjE4LTEzLjA5LDQ3LjcyLTEzLjFhODAuODcsODAuODcsMCwwLDEsMjkuNzQsNS4yMXExMy4yOCw1LjIxLDI1LDE3VjE1M2w1NS43OS0xMi4wOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGFzaGN1YmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI2LjYgMTA0SDExMC40Yy01MS4xIDAtOTEuMiA0My4zLTkxLjIgOTMuNVY0MjdjMCA1MC41IDQwLjEgODUgOTEuMiA4NWgyMjcuMmM1MS4xIDAgOTEuMi0zNC41IDkxLjItODVWMEwzMjYuNiAxMDR6TTE1My45IDQxNi41Yy0xNy43IDAtMzIuNC0xNS4xLTMyLjQtMzIuOFYyNDAuOGMwLTE3LjcgMTQuNy0zMi41IDMyLjQtMzIuNWgxNDAuN2MxNy43IDAgMzIgMTQuOCAzMiAzMi41djEyMy41bDUxLjEgNTIuM0gxNTMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVlemVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1MS40NiwyNDQuNzFINTc2VjE3Mkg0NTEuNDZabTAtMTczLjg5djcyLjY3SDU3NlY3MC44MlptMCwyNzUuMDZINTc2VjI3My4ySDQ1MS40NlpNMCw0NDcuMDlIMTI0LjU0VjM3NC40MkgwWm0xNTAuNDcsMEgyNzVWMzc0LjQySDE1MC40N1ptMTUwLjUyLDBINDI1LjUzVjM3NC40MkgzMDFabTE1MC40NywwSDU3NlYzNzQuNDJINDUxLjQ2Wk0zMDEsMzQ1Ljg4SDQyNS41M1YyNzMuMkgzMDFabS0xNTAuNTIsMEgyNzVWMjczLjJIMTUwLjQ3Wm0wLTEwMS4xN0gyNzVWMTcySDE1MC40N1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGVsaWNpb3VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni41IDY4Yy0uNC0xLjUtLjktMy0xLjQtNC41LS45LTIuNS0yLTQuOC0zLjMtNy4xLTEuNC0yLjQtMy00LjgtNC43LTYuOS0yLjEtMi41LTQuNC00LjgtNi45LTYuOC0xLjEtLjktMi4yLTEuNy0zLjMtMi41LTEuMy0uOS0yLjYtMS43LTQtMi40LTEuOC0xLTMuNi0xLjgtNS41LTIuNS0xLjctLjctMy41LTEuMy01LjQtMS43LTMuOC0xLTcuOS0xLjUtMTItMS41SDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgNC4xLjUgOC4yIDEuNSAxMiAyIDcuNyA1LjggMTQuNiAxMSAyMC4zIDEgMS4xIDIuMSAyLjIgMy4zIDMuMyA1LjcgNS4yIDEyLjYgOSAyMC4zIDExIDMuOCAxIDcuOSAxLjUgMTIgMS41aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMtLjEtNC4xLS42LTguMi0xLjYtMTJ6TTQxNiA0MzJjMCA4LjgtNy4yIDE2LTE2IDE2SDIyNFYyNTZIMzJWODBjMC04LjggNy4yLTE2IDE2LTE2aDE3NnYxOTJoMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXBsb3lkb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgyLjIgMTM2aDUxLjd2MjM5LjZoLTUxLjd2LTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlWMTM2em0tNjQuNyAxNjEuOGMwIDE4LjIgMTMuNiAzMy41IDMzLjIgMzMuNSAxOS44IDAgMzMuMi0xNi40IDMzLjItMzIuOSAwLTE3LjEtMTMuNy0zMy4yLTMzLjItMzMuMi0xOS42IDAtMzMuMiAxNi40LTMzLjIgMzIuNnpNMTg4LjUgMTM2aDUxLjd2MjM5LjZoLTUxLjd2LTIwLjdjLTE5LjggMjQuOC01Mi44IDI0LjEtNzMuOCAxNC43LTI2LjItMTEuNy00NC4zLTM4LjEtNDQuMy03MS44IDAtMjkuOCAxNC44LTU3LjkgNDMuMy03MC44IDIwLjItOS4xIDUyLjctMTAuNiA3NC44IDEyLjlWMTM2em0tNjQuNyAxNjEuOGMwIDE4LjIgMTMuNiAzMy41IDMzLjIgMzMuNSAxOS44IDAgMzMuMi0xNi40IDMzLjItMzIuOSAwLTE3LjEtMTMuNy0zMy4yLTMzLjItMzMuMi0xOS43IDAtMzMuMiAxNi40LTMzLjIgMzIuNnpNNDQ4IDk2YzE3LjUgMCAzMiAxNC40IDMyIDMydjI1NmMwIDE3LjUtMTQuNCAzMi0zMiAzMkg2NGMtMTcuNSAwLTMyLTE0LjQtMzItMzJWMTI4YzAtMTcuNSAxNC40LTMyIDMyLTMyaDM4NG0wLTMySDY0QzI4LjggNjQgMCA5Mi44IDAgMTI4djI1NmMwIDM1LjIgMjguOCA2NCA2NCA2NGgzODRjMzUuMiAwIDY0LTI4LjggNjQtNjRWMTI4YzAtMzUuMi0yOC44LTY0LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXNrcHJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNS45IDUxMmwzMS4xLTM4LjRjMTIuMy0uMiAyNS42LTEuNCAzNi41LTYuNiAzOC45LTE4LjYgMzguNC02MS45IDM4LjMtNjMuOC0uMS01LS44LTQuNC0yOC45LTM3LjRIMzYyYy0uMiA1MC4xLTcuMyA2OC41LTEwLjIgNzUuNy05LjQgMjMuNy00My45IDYyLjgtOTUuMiA2OS40LTguNyAxLjEtMzIuOCAxLjItNTAuNyAxLjF6bTIwMC40LTE2Ny43YzM4LjYgMCA1OC41LTEzLjYgNzMuNy0zMC45bC0xNzUuNS0uMy0xNy40IDMxLjMgMTE5LjItLjF6bS00My42LTIyMy45djE2OC4zaC03My41bC0zMi43IDU1LjVIMjUwYy01Mi4zIDAtNTguMS01Ni41LTU4LjMtNTguOS0xLjItMTMuMi0yMS4zLTExLjYtMjAuMSAxLjggMS40IDE1LjggOC44IDQwIDI2LjQgNTcuMWgtOTFjLTI1LjUgMC0xMTAuOC0yNi44LTEwNy0xMTRWMTYuOUMwIC45IDkuNy4zIDE1IC4xaDgyYy4yIDAgLjMuMS41LjEgNC4zLS40IDUwLjEtMi4xIDUwLjEgNDMuNyAwIDEzLjMgMjAuMiAxMy40IDIwLjIgMCAwLTE4LjItNS41LTMyLjgtMTUuOC00My43aDg0LjJjMTA4LjctLjQgMTI2LjUgNzkuNCAxMjYuNSAxMjAuMnptLTEzMi41IDU2bDY0IDI5LjNjMTMuMy00NS41LTQyLjItNzEuNy02NC0yOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjEyIDIwOC4yOWMtMy44OC0yLjktNy43Ny00LjM1LTExLjY1LTQuMzVIOTEuMDN2MTA0LjQ3aDE3LjQ1YzMuODggMCA3Ljc3LTEuNDUgMTEuNjUtNC4zNSAzLjg4LTIuOSA1LjgyLTcuMjUgNS44Mi0xMy4wNnYtNjkuNjVjLS4wMS01LjgtMS45Ni0xMC4xNi01LjgzLTEzLjA2ek00MDQuMSAzMkg0My45QzE5LjcgMzIgLjA2IDUxLjU5IDAgNzUuOHYzNjAuNEMuMDYgNDYwLjQxIDE5LjcgNDgwIDQzLjkgNDgwaDM2MC4yYzI0LjIxIDAgNDMuODQtMTkuNTkgNDMuOS00My44Vjc1LjhjLS4wNi0yNC4yMS0xOS43LTQzLjgtNDMuOS00My44ek0xNTQuMiAyOTEuMTljMCAxOC44MS0xMS42MSA0Ny4zMS00OC4zNiA0Ny4yNWgtNDYuNFYxNzIuOThoNDcuMzhjMzUuNDQgMCA0Ny4zNiAyOC40NiA0Ny4zNyA0Ny4yOGwuMDEgNzAuOTN6bTEwMC42OC04OC42NkgyMDEuNnYzOC40MmgzMi41N3YyOS41N0gyMDEuNnYzOC40MWg1My4yOXYyOS41N2gtNjIuMThjLTExLjE2LjI5LTIwLjQ0LTguNTMtMjAuNzItMTkuNjlWMTkzLjdjLS4yNy0xMS4xNSA4LjU2LTIwLjQxIDE5LjcxLTIwLjY5aDYzLjE5bC0uMDEgMjkuNTJ6bTEwMy42NCAxMTUuMjljLTEzLjIgMzAuNzUtMzYuODUgMjQuNjMtNDcuNDQgMGwtMzguNTMtMTQ0LjhoMzIuNTdsMjkuNzEgMTEzLjcyIDI5LjU3LTExMy43MmgzMi41OGwtMzguNDYgMTQ0Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURldmlhbnRhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDkzLjJsLTk4LjIgMTc5LjEgNy40IDkuNUgzMjB2MTI3LjdIMTU5LjFsLTEzLjUgOS4yLTQzLjcgODRjLS4zIDAtOC42IDguNi05LjIgOS4ySDB2LTkzLjJsOTMuMi0xNzkuNC03LjQtOS4ySDBWMTAyLjVoMTU2bDEzLjUtOS4yIDQzLjctODRjLjMgMCA4LjYtOC42IDkuMi05LjJIMzIwdjkzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURobCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzggMzAxLjJoNTguN0wzMTkgMjcxaC01OC43TDIzOCAzMDEuMnpNMCAyODIuOXY2LjRoODEuOGw0LjctNi40SDB6TTE3Mi45IDI3MWMtOC43IDAtNi0zLjYtNC42LTUuNSAyLjgtMy44IDcuNi0xMC40IDEwLjQtMTQuMSAyLjgtMy43IDIuOC01LjktMi44LTUuOWgtNTFsLTQxLjEgNTUuOGgxMDAuMWMzMy4xIDAgNTEuNS0yMi41IDU3LjItMzAuM2gtNjguMnptMzE3LjUtNi45bDM5LjMtNTMuNGgtNjIuMmwtMzkuMyA1My40aDYyLjJ6TTk1LjMgMjcxSDB2Ni40aDkwLjZsNC43LTYuNHptMTExLTI2LjZjLTIuOCAzLjgtNy41IDEwLjQtMTAuMyAxNC4yLTEuNCAyLTQuMSA1LjUgNC42IDUuNWg0NS42czcuMy0xMCAxMy41LTE4LjRjOC40LTExLjQuNy0zNS0yOS4yLTM1SDExMi42bC0yMC40IDI3LjhoMTExLjRjNS42IDAgNS41IDIuMiAyLjcgNS45ek0wIDMwMS4yaDczLjFsNC43LTYuNEgwdjYuNHptMzIzIDBoNTguN0w0MDQgMjcxaC01OC43Yy0uMSAwLTIyLjMgMzAuMi0yMi4zIDMwLjJ6bTIyMiAuMWg5NXYtNi40aC05MC4zbC00LjcgNi40em0yMi4zLTMwLjNsLTQuNyA2LjRINjQwVjI3MWgtNzIuN3ptLTEzLjUgMTguM0g2NDB2LTYuNGgtODEuNWwtNC43IDYuNHptLTE2NC4yLTc4LjZsLTIyLjUgMzAuNmgtMjYuMmwyMi41LTMwLjZoLTU4LjdsLTM5LjMgNTMuNEg0MDlsMzkuMy01My40aC01OC43em0zMy41IDYwLjNzLTQuMyA1LjktNi40IDguN2MtNy40IDEwLS45IDIxLjYgMjMuMiAyMS42aDk0LjNsMjIuMy0zMC4zSDQyMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWFzcG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTEuNjQgMzU0LjU1Yy0xLjQgMC04OCAxMTkuOS04OC43IDExOS45Uzc2LjM0IDQxNCA3NiA0MTMuMjVzODYuNi0xMjUuNyA4Ni42LTEyNy40YzAtMi4yLTEyOS42LTQ0LTEzNy42LTQ3LjEtMS4zLS41IDMxLjQtMTAxLjggMzEuNy0xMDIuMS42LS43IDE0NC40IDQ3IDE0NS41IDQ3IC40IDAgLjktLjYgMS0xLjMuNC0yIDEtMTQ4LjYgMS43LTE0OS42LjgtMS4yIDEwNC41LS43IDEwNS4xLS4zIDEuNSAxIDMuNSAxNTYuMSA2LjEgMTU2LjEgMS40IDAgMTM4LjctNDcgMTM5LjMtNDYuMy44LjkgMzEuOSAxMDIuMiAzMS41IDEwMi42LS45LjktMTQwLjIgNDcuMS0xNDAuNiA0OC44LS4zIDEuNCA4Mi44IDEyMi4xIDgyLjUgMTIyLjlzLTg1LjUgNjMuNS04Ni4zIDYzLjVjLTEtLjItODktMTI1LjUtOTAuOS0xMjUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlnZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MS43IDE3Mi4zSDB2MTc0LjRoMTMyLjdWOTZoLTUxdjc2LjN6bTAgMTMzLjRINTAuOXYtOTIuM2gzMC44djkyLjN6bTI5Ny4yLTEzMy40djE3NC40aDgxLjh2MjguNWgtODEuOFY0MTZINTEyVjE3Mi4zSDM3OC45em04MS44IDEzMy40aC0zMC44di05Mi4zaDMwLjh2OTIuM3ptLTIzNS42IDQxaDgyLjF2MjguNWgtODIuMVY0MTZoMTMzLjNWMTcyLjNIMjI1LjF2MTc0LjR6bTUxLjItMTMzLjNoMzAuOHY5Mi4zaC0zMC44di05Mi4zek0xNTMuMyA5Nmg1MS4zdjUxaC01MS4zVjk2em0wIDc2LjNoNTEuM3YxNzQuNGgtNTEuM1YxNzIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlnaXRhbE9jZWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg3IDQ4MS44aDczLjd2LTczLjZIODd6TTI1LjQgMzQ2LjZ2NjEuNkg4N3YtNjEuNnptNDY2LjItMTY5LjdjLTIzLTc0LjItODIuNC0xMzMuMy0xNTYuNi0xNTYuNkMxNjQuOS0zMi44IDggOTMuNyA4IDI1NS45aDk1LjhjMC0xMDEuOCAxMDEtMTgwLjUgMjA4LjEtMTQxLjcgMzkuNyAxNC4zIDcxLjUgNDYuMSA4NS44IDg1LjcgMzkuMSAxMDctMzkuNyAyMDcuOC0xNDEuNCAyMDh2LjNoLS4zVjUwNGMxNjIuNiAwIDI4OC44LTE1Ni44IDIzNS42LTMyNy4xem0tMjM1LjMgMjMxdi05NS4zaC05NS42djk1LjZIMjU2di0uM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzY29yZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjQuNTMxLDY5LjgzNmExLjUsMS41LDAsMCwwLS43NjQtLjdBNDg1LjA2NSw0ODUuMDY1LDAsMCwwLDQwNC4wODEsMzIuMDNhMS44MTYsMS44MTYsMCwwLDAtMS45MjMuOTEsMzM3LjQ2MSwzMzcuNDYxLDAsMCwwLTE0LjksMzAuNiw0NDcuODQ4LDQ0Ny44NDgsMCwwLDAtMTM0LjQyNiwwLDMwOS41NDEsMzA5LjU0MSwwLDAsMC0xNS4xMzUtMzAuNiwxLjg5LDEuODksMCwwLDAtMS45MjQtLjkxQTQ4My42ODksNDgzLjY4OSwwLDAsMCwxMTYuMDg1LDY5LjEzN2ExLjcxMiwxLjcxMiwwLDAsMC0uNzg4LjY3NkMzOS4wNjgsMTgzLjY1MSwxOC4xODYsMjk0LjY5LDI4LjQzLDQwNC4zNTRhMi4wMTYsMi4wMTYsMCwwLDAsLjc2NSwxLjM3NUE0ODcuNjY2LDQ4Ny42NjYsMCwwLDAsMTc2LjAyLDQ3OS45MThhMS45LDEuOSwwLDAsMCwyLjA2My0uNjc2QTM0OC4yLDM0OC4yLDAsMCwwLDIwOC4xMiw0MzAuNGExLjg2LDEuODYsMCwwLDAtMS4wMTktMi41ODgsMzIxLjE3MywzMjEuMTczLDAsMCwxLTQ1Ljg2OC0yMS44NTMsMS44ODUsMS44ODUsMCwwLDEtLjE4NS0zLjEyNmMzLjA4Mi0yLjMwOSw2LjE2Ni00LjcxMSw5LjEwOS03LjEzN2ExLjgxOSwxLjgxOSwwLDAsMSwxLjktLjI1NmM5Ni4yMjksNDMuOTE3LDIwMC40MSw0My45MTcsMjk1LjUsMGExLjgxMiwxLjgxMiwwLDAsMSwxLjkyNC4yMzNjMi45NDQsMi40MjYsNi4wMjcsNC44NTEsOS4xMzIsNy4xNmExLjg4NCwxLjg4NCwwLDAsMS0uMTYyLDMuMTI2LDMwMS40MDcsMzAxLjQwNywwLDAsMS00NS44OSwyMS44MywxLjg3NSwxLjg3NSwwLDAsMC0xLDIuNjExLDM5MS4wNTUsMzkxLjA1NSwwLDAsMCwzMC4wMTQsNDguODE1LDEuODY0LDEuODY0LDAsMCwwLDIuMDYzLjdBNDg2LjA0OCw0ODYuMDQ4LDAsMCwwLDYxMC43LDQwNS43MjlhMS44ODIsMS44ODIsMCwwLDAsLjc2NS0xLjM1MkM2MjMuNzI5LDI3Ny41OTQsNTkwLjkzMywxNjcuNDY1LDUyNC41MzEsNjkuODM2Wk0yMjIuNDkxLDMzNy41OGMtMjguOTcyLDAtNTIuODQ0LTI2LjU4Ny01Mi44NDQtNTkuMjM5UzE5My4wNTYsMjE5LjEsMjIyLjQ5MSwyMTkuMWMyOS42NjUsMCw1My4zMDYsMjYuODIsNTIuODQzLDU5LjIzOUMyNzUuMzM0LDMxMC45OTMsMjUxLjkyNCwzMzcuNTgsMjIyLjQ5MSwzMzcuNThabTE5NS4zOCwwYy0yOC45NzEsMC01Mi44NDMtMjYuNTg3LTUyLjg0My01OS4yMzlTMzg4LjQzNywyMTkuMSw0MTcuODcxLDIxOS4xYzI5LjY2NywwLDUzLjMwNywyNi44Miw1Mi44NDQsNTkuMjM5QzQ3MC43MTUsMzEwLjk5Myw0NDcuNTM4LDMzNy41OCw0MTcuODcxLDMzNy41OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzY291cnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS45IDMyQzEwMy4zIDMyIDAgMTMwLjUgMCAyNTIuMSAwIDI1NiAuMSA0ODAgLjEgNDgwbDIyNS44LS4yYzEyMi43IDAgMjIyLjEtMTAyLjMgMjIyLjEtMjIzLjlDNDQ4IDEzNC4zIDM0OC42IDMyIDIyNS45IDMyek0yMjQgMzg0Yy0xOS40IDAtMzcuOS00LjMtNTQuNC0xMi4xTDg4LjUgMzkybDIyLjktNzVjLTkuOC0xOC4xLTE1LjQtMzguOS0xNS40LTYxIDAtNzAuNyA1Ny4zLTEyOCAxMjgtMTI4czEyOCA1Ny4zIDEyOCAxMjgtNTcuMyAxMjgtMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9jaHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5Ny45IDE2MEgyNTZWMTkuNkwzOTcuOSAxNjB6TTMwNCAxOTJ2MTMwYzAgNjYuOC0zNi41IDEwMC4xLTExMy4zIDEwMC4xSDk2Vjg0LjhoOTQuN2MxMiAwIDIzLjEuOCAzMy4xIDIuNXYtODRDMjEyLjkgMS4xIDIwMS40IDAgMTg5LjIgMEgwdjUxMmgxODkuMkMzMjkuNyA1MTIgNDAwIDQ0Ny40IDQwMCAzMTguMVYxOTJoLTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2NrZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ5LjkgMjM2LjNoLTY2LjF2LTU5LjRoNjYuMXY1OS40em0wLTIwNC4zaC02Ni4xdjYwLjdoNjYuMVYzMnptNzguMiAxNDQuOEgzNjJ2NTkuNGg2Ni4xdi01OS40em0tMTU2LjMtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTc4LjEgMGgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6bTI3Ni44IDEwMGMtMTQuNC05LjctNDcuNi0xMy4yLTczLjEtOC40LTMuMy0yNC0xNi43LTQ0LjktNDEuMS02My43bC0xNC05LjMtOS4zIDE0Yy0xOC40IDI3LjgtMjMuNCA3My42LTMuNyAxMDMuOC04LjcgNC43LTI1LjggMTEuMS00OC40IDEwLjdIMi40Yy04LjcgNTAuOCA1LjggMTE2LjggNDQgMTYyLjEgMzcuMSA0My45IDkyLjcgNjYuMiAxNjUuNCA2Ni4yIDE1Ny40IDAgMjczLjktNzIuNSAzMjguNC0yMDQuMiAyMS40LjQgNjcuNi4xIDkxLjMtNDUuMiAxLjUtMi41IDYuNi0xMy4yIDguNS0xNy4xbC0xMy4zLTguOXptLTUxMS4xLTI3LjloLTY2djU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptNzguMSAwaC02Ni4xdjU5LjRoNjYuMXYtNTkuNHptLTc4LjEtNzIuMWgtNjYuMXY2MC4xaDY2LjF2LTYwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyYWZ0MkRpZ2l0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDM5OC4xbC0xNDQtODIuMnY2NC43aC05MS4zYzMwLjgtMzUgODEuOC05NS45IDExMS44LTE0OS4zIDM1LjItNjIuNiAxNi4xLTEyMy40LTEyLjgtMTUzLjMtNC40LTQuNi02Mi4yLTYyLjktMTY2LTQxLjItNTkuMSAxMi40LTg5LjQgNDMuNC0xMDQuMyA2Ny4zLTEzLjEgMjAuOS0xNyAzOS44LTE4LjIgNDcuNy01LjUgMzMgMTkuNCA2Ny4xIDU2LjcgNjcuMSAzMS43IDAgNTcuMy0yNS43IDU3LjMtNTcuNCAwLTI3LjEtMTkuNy01Mi4xLTQ4LTU2LjggMS44LTcuMyAxNy43LTIxLjEgMjYuMy0yNC43IDQxLjEtMTcuMyA3OCA1LjIgODMuMyAzMy41IDguMyA0NC4zLTM3LjEgOTAuNC02OS43IDEyNy42Qzg0LjUgMzI4LjEgMTguMyAzOTYuOCAwIDQxNS45bDMzNi0uMVY0ODB6TTM2OS45IDM3MWw0Ny4xIDI3LjItNDcuMSAyNy4yek0xMzQuMiAxNjEuNGMwIDEyLjQtMTAgMjIuNC0yMi40IDIyLjRzLTIyLjQtMTAtMjIuNC0yMi40IDEwLTIyLjQgMjIuNC0yMi40IDIyLjQgMTAuMSAyMi40IDIyLjR6TTgyLjUgMzgwLjVjMjUuNi0yNy40IDk3LjctMTA0LjcgMTUwLjgtMTY5LjkgMzUuMS00My4xIDQwLjMtODIuNCAyOC40LTExMi43LTcuNC0xOC44LTE3LjUtMzAuMi0yNC4zLTM1LjcgNDUuMyAyLjEgNjggMjMuNCA4Mi4yIDM4LjMgMCAwIDQyLjQgNDguMiA1LjggMTEzLjMtMzcgNjUuOS0xMTAuOSAxNDcuNS0xMjguNSAxNjYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJpYmJibGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTAuMiAyMjguMmM4LjktNDIuNCAzNy40LTc3LjcgNzUuNy05NS43IDMuNiA0LjkgMjggMzguOCA1MC43IDc5LTY0IDE3LTEyMC4zIDE2LjgtMTI2LjQgMTYuN3pNMzE0LjYgMTU0Yy0zMy42LTI5LjgtNzkuMy00MS4xLTEyMi42LTMwLjYgMy44IDUuMSAyOC42IDM4LjkgNTEgODAgNDguNi0xOC4zIDY5LjEtNDUuOSA3MS42LTQ5LjR6TTE0MC4xIDM2NGM0MC41IDMxLjYgOTMuMyAzNi43IDEzNy4zIDE4LTItMTItMTAtNTMuOC0yOS4yLTEwMy42LTU1LjEgMTguOC05My44IDU2LjQtMTA4LjEgODUuNnptOTguOC0xMDguMmMtMy40LTcuOC03LjItMTUuNS0xMS4xLTIzLjJDMTU5LjYgMjUzIDkzLjQgMjUyLjIgODcuNCAyNTJjMCAxLjQtLjEgMi44LS4xIDQuMiAwIDM1LjEgMTMuMyA2Ny4xIDM1LjEgOTEuNCAyMi4yLTM3LjkgNjcuMS03Ny45IDExNi41LTkxLjh6bTM0LjkgMTYuM2MxNy45IDQ5LjEgMjUuMSA4OS4xIDI2LjUgOTcuNCAzMC43LTIwLjcgNTIuNS01My42IDU4LjYtOTEuNi00LjYtMS41LTQyLjMtMTIuNy04NS4xLTUuOHptLTIwLjMtNDguNGM0LjggOS44IDguMyAxNy44IDEyIDI2LjggNDUuNS01LjcgOTAuNyAzLjQgOTUuMiA0LjQtLjMtMzIuMy0xMS44LTYxLjktMzAuOS04NS4xLTIuOSAzLjktMjUuOCAzMy4yLTc2LjMgNTMuOXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNjQgMTc2YzAtODguMi03MS44LTE2MC0xNjAtMTYwUzY0IDE2Ny44IDY0IDI1NnM3MS44IDE2MCAxNjAgMTYwIDE2MC03MS44IDE2MC0xNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURyaWJiYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4yNTIgOCA4IDExOS4yNTIgOCAyNTZzMTExLjI1MiAyNDggMjQ4IDI0OCAyNDgtMTExLjI1MiAyNDgtMjQ4UzM5Mi43NDggOCAyNTYgOHptMTYzLjk3IDExNC4zNjZjMjkuNTAzIDM2LjA0NiA0Ny4zNjkgODEuOTU3IDQ3LjgzNSAxMzEuOTU1LTYuOTg0LTEuNDc3LTc3LjAxOC0xNS42ODItMTQ3LjUwMi02LjgxOC01Ljc1Mi0xNC4wNDEtMTEuMTgxLTI2LjM5My0xOC42MTctNDEuNjE0IDc4LjMyMS0zMS45NzcgMTEzLjgxOC03Ny40ODIgMTE4LjI4NC04My41MjN6TTM5Ni40MjEgOTcuODdjLTMuODEgNS40MjctMzUuNjk3IDQ4LjI4Ni0xMTEuMDIxIDc2LjUxOS0zNC43MTItNjMuNzc2LTczLjE4NS0xMTYuMTY4LTc5LjA0LTEyNC4wMDggNjcuMTc2LTE2LjE5MyAxMzcuOTY2IDEuMjcgMTkwLjA2MSA0Ny40ODl6bS0yMzAuNDgtMzMuMjVjNS41ODUgNy42NTkgNDMuNDM4IDYwLjExNiA3OC41MzcgMTIyLjUwOS05OS4wODcgMjYuMzEzLTE4Ni4zNiAyNS45MzQtMTk1LjgzNCAyNS44MDlDNjIuMzggMTQ3LjIwNSAxMDYuNjc4IDkyLjU3MyAxNjUuOTQxIDY0LjYyek00NC4xNyAyNTYuMzIzYzAtMi4xNjYuMDQzLTQuMzIyLjEwOC02LjQ3MyA5LjI2OC4xOSAxMTEuOTIgMS41MTMgMjE3LjcwNi0zMC4xNDYgNi4wNjQgMTEuODY4IDExLjg1NyAyMy45MTUgMTcuMTc0IDM1Ljk0OS03Ni41OTkgMjEuNTc1LTE0Ni4xOTQgODMuNTI3LTE4MC41MzEgMTQyLjMwNkM2NC43OTQgMzYwLjQwNSA0NC4xNyAzMTAuNzMgNDQuMTcgMjU2LjMyM3ptODEuODA3IDE2Ny4xMTNjMjIuMTI3LTQ1LjIzMyA4Mi4xNzgtMTAzLjYyMiAxNjcuNTc5LTEzMi43NTYgMjkuNzQgNzcuMjgzIDQyLjAzOSAxNDIuMDUzIDQ1LjE4OSAxNjAuNjM4LTY4LjExMiAyOS4wMTMtMTUwLjAxNSAyMS4wNTMtMjEyLjc2OC0yNy44ODJ6bTI0OC4zOCA4LjQ4OWMtMi4xNzEtMTIuODg2LTEzLjQ0Ni03NC44OTctNDEuMTUyLTE1MS4wMzMgNjYuMzgtMTAuNjI2IDEyNC43IDYuNzY4IDEzMS45NDcgOS4wNTUtOS40NDIgNTguOTQxLTQzLjI3MyAxMDkuODQ0LTkwLjc5NSAxNDEuOTc4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcm9wYm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MjggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2NC40IDExNi4zbC0xMzIgODQuMyAxMzIgODQuMy0xMzIgODQuM0wwIDI4NC4xbDEzMi4zLTg0LjNMMCAxMTYuMyAxMzIuMyAzMmwxMzIuMSA4NC4zek0xMzEuNiAzOTUuN2wxMzItODQuMyAxMzIgODQuMy0xMzIgODQuMy0xMzItODQuM3ptMTMyLjgtMTExLjZsMTMyLTg0LjMtMTMyLTgzLjZMMzk1LjcgMzIgNTI4IDExNi4zbC0xMzIuMyA4NC4zTDUyOCAyODQuOGwtMTMyLjMgODQuMy0xMzEuMy04NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1cGFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxOS41IDExNC43Yy0yMi4yLTE0LTQzLjUtMTkuNS02NC43LTMzLjUtMTMtOC44LTMxLjMtMzAtNDYuNS00OC4zLTIuNyAyOS4zLTExLjUgNDEuMi0yMiA0OS41LTIxLjMgMTctMzQuOCAyMi4yLTUzLjUgMzIuM0MxMTcgMTIzIDMyIDE4MS41IDMyIDI5MC41IDMyIDM5OS43IDEyMy44IDQ4MCAyMjUuOCA0ODAgMzI3LjUgNDgwIDQxNiA0MDYgNDE2IDI5NGMwLTExMi4zLTgzLTE3MS05Ni41LTE3OS4zem0yLjUgMzI1LjZjLTIwLjEgMjAuMS05MC4xIDI4LjctMTE2LjcgNC4yLTQuOC00LjguMy0xMiA2LjUtMTIgMCAwIDE3IDEzLjMgNTEuNSAxMy4zIDI3IDAgNDYtNy43IDU0LjUtMTQgNi4xLTQuNiA4LjQgNC4zIDQuMiA4LjV6bS01NC41LTUyLjZjOC43LTMuNiAyOS0zLjggMzYuOCAxLjMgNC4xIDIuOCAxNi4xIDE4LjggNi4yIDIzLjctOC40IDQuMi0xLjItMTUuNy0yNi41LTE1LjctMTQuNyAwLTE5LjUgNS4yLTI2LjcgMTEtNyA2LTkuOCA4LTEyLjIgNC43LTYtOC4yIDE1LjktMjIuMyAyMi40LTI1ek0zNjAgNDA1Yy0xNS4yLTEtNDUuNS00OC44LTY1LTQ5LjUtMzAuOS0uOS0xMDQuMSA4MC43LTE2MS4zIDQyLTM4LjgtMjYuNi0xNC42LTEwNC44IDUxLjgtMTA1LjIgNDkuNS0uNSA4My44IDQ5IDEwOC41IDQ4LjUgMjEuMy0uMyA2MS44LTQxLjggODEuOC00MS44IDQ4LjcgMCAyMy4zIDEwOS4zLTE1LjggMTA2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEeWFsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnYxMTkuMmg2NFY5NmgxMDcuMkMyODQuNiA5NiAzNTIgMTc2LjIgMzUyIDI1NS45IDM1MiAzMzIgMjkzLjQgNDE2IDE3MS4yIDQxNkgwdjY0aDE3MS4yQzMzMS45IDQ4MCA0MTYgMzY3LjMgNDE2IDI1NS45YzAtNTguNy0yMi4xLTExMy40LTYyLjMtMTU0LjNDMzA4LjkgNTYgMjQ1LjcgMzIgMTcxLjIgMzJIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWFybHliaXJkcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuMiA0Ny41YzEuMi0xMyAyMS4zLTE0IDM2LjYtOC43LjkuMyAyNi4yIDkuNyAxOSAxNS4yLTI3LjktNy40LTU2LjQgMTguMi01NS42LTYuNXptLTIwMSA2LjljMzAuNy04LjEgNjIgMjAgNjEuMS03LjEtMS4zLTE0LjItMjMuNC0xNS4zLTQwLjItOS42LTEgLjMtMjguNyAxMC41LTIwLjkgMTYuN3pNMzE5LjQgMTYwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZ6bS0xNTkuNyAwYy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZ6bTMxOC41IDE2My4yYy05LjkgMjQtNDAuNyAxMS02My45LTEuMi0xMy41IDY5LjEtNTguMSAxMTEuNC0xMjYuMyAxMjQuMi4zLjktMi0uMSAyNCAxIDMzLjYgMS40IDYzLjgtMy4xIDk3LjQtOC0xOS44LTEzLjgtMTEuNC0zNy4xLTkuOC0zOC4xIDEuNC0uOSAxNC43IDEuNyAyMS42IDExLjUgOC42LTEyLjUgMjguNC0xNC44IDMwLjItMTMuNiAxLjYgMS4xIDYuNiAyMC45LTYuOSAzNC42IDQuNy0uOSA4LjItMS42IDkuOC0yLjEgMi42LS44IDE3LjcgMTEuMyAzLjEgMTMuMy0xNC4zIDIuMy0yMi42IDUuMS00Ny4xIDEwLjgtNDUuOSAxMC43LTg1LjkgMTEuOC0xMTcuNyAxMi44bDEgMTEuNmMzLjggMTguMS0yMy40IDI0LjMtMjcuNiA2LjIuOCAxNy45LTI3LjEgMjEuOC0yOC40LTFsLS41IDUuM2MtLjcgMTguNC0yOC40IDE3LjktMjguMy0uNi03LjUgMTMuNS0yOC4xIDYuOC0yNi40LTguNWwxLjItMTIuNGMtMzYuNy45LTU5LjcgMy4xLTYxLjggMy4xLTIwLjkgMC0yMC45LTMxLjYgMC0zMS42IDIuNCAwIDI3LjcgMS4zIDYzLjIgMi44LTYxLjEtMTUuNS0xMDMuNy01NS0xMTQuOS0xMTguMi0yNSAxMi44LTU3LjUgMjYuOC02OC4yLjgtMTAuNS0yNS40IDIxLjUtNDIuNiA2Ni44LTczLjQuNy02LjYgMS42LTEzLjMgMi43LTE5LjgtMTQuNC0xOS42LTExLjYtMzYuMy0xNi4xLTYwLjQtMTYuOCAyLjQtMjMuMi05LjEtMjMuNi0yMy4xLjMtNy4zIDIuMS0xNC45IDIuNC0xNS40IDEuMS0xLjggMTAuMS0yIDEyLjctMi42IDYtMzEuNyA1MC42LTMzLjIgOTAuOS0zNC41IDE5LjctMjEuOCA0NS4yLTQxLjUgODAuOS00OC4zQzIwMy4zIDI5IDIxNS4yIDguNSAyMTYuMiA4YzEuNy0uOCAyMS4yIDQuMyAyNi4zIDIzLjIgNS4yLTguOCAxOC4zLTExLjQgMTkuNi0xMC43IDEuMS42IDYuNCAxNS00LjkgMjUuOSA0MC4zIDMuNSA3Mi4yIDI0LjcgOTYgNTAuNyAzNi4xIDEuNSA3MS44IDUuOSA3Ny4xIDM0IDIuNy42IDExLjYuOCAxMi43IDIuNi4zLjUgMi4xIDguMSAyLjQgMTUuNC0uNSAxMy45LTYuOCAyNS40LTIzLjYgMjMuMS0zLjIgMTcuMy0yLjcgMzIuOS04LjcgNDcuNyAyLjQgMTEuNyA0IDIzLjggNC44IDM2LjQgMzcgMjUuNCA3MC4zIDQyLjUgNjAuMyA2Ni45ek0yMDcuNCAxNTkuOWMuOS00NC0zNy45LTQyLjItNzguNi00MC4zLTIxLjcgMS0zOC45IDEuOS00NS41IDEzLjktMTEuNCAyMC45IDUuOSA5Mi45IDIzLjIgMTAxLjIgOS44IDQuNyA3My40IDcuOSA4Ni4zLTcuMSA4LjItOS40IDE1LTQ5LjQgMTQuNi02Ny43em01MiA1OC4zYy00LjMtMTIuNC02LTMwLjEtMTUuMy0zMi43LTItLjUtOS0uNS0xMSAwLTEwIDIuOC0xMC44IDIyLjEtMTcgMzcuMiAxNS40IDAgMTkuMyA5LjcgMjMuNyA5LjcgNC4zIDAgNi4zLTExLjMgMTkuNi0xNC4yem0xMzUuNy04NC43Yy02LjYtMTIuMS0yNC44LTEyLjktNDYuNS0xMy45LTQwLjItMS45LTc4LjItMy44LTc3LjMgNDAuMy0uNSAxOC4zIDUgNTguMyAxMy4yIDY3LjggMTMgMTQuOSA3Ni42IDExLjggODYuMyA3LjEgMTUuOC03LjYgMzYuNS03OC45IDI0LjMtMTAxLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUViYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA2IDE4OS41bC01NC44IDEwOS45LTU0LjktMTA5LjloLTM3LjVsMTAuOSAyMC42Yy0xMS41LTE5LTM1LjktMjYtNjMuMy0yNi0zMS44IDAtNjcuOSA4LjctNzEuNSA0My4xaDMzLjdjMS40LTEzLjggMTUuNy0yMS44IDM1LTIxLjggMjYgMCA0MSA5LjYgNDEgMzN2My40Yy0xMi43IDAtMjggLjEtNDEuNy40LTQyLjQuOS02OS42IDEwLTc2LjcgMzQuNCAxLTUuMiAxLjUtMTAuNiAxLjUtMTYuMiAwLTUyLjEtMzkuNy03Ni4yLTc1LjQtNzYuMi0yMS4zIDAtNDMgNS41LTU4LjcgMjQuMnYtODAuNmgtMzIuMXYxNjkuNWMwIDEwLjMtLjYgMjIuOS0xLjEgMzMuMWgzMS41Yy43LTYuMyAxLjEtMTIuOSAxLjEtMTkuNSAxMy42IDE2LjYgMzUuNCAyNC45IDU4LjcgMjQuOSAzNi45IDAgNjQuOS0yMS45IDczLjMtNTQuMi0uNSAyLjgtLjcgNS44LS43IDkgMCAyNC4xIDIxLjEgNDUgNjAuNiA0NSAyNi42IDAgNDUuOC01LjcgNjEuOS0yNS41IDAgNi42LjMgMTMuMyAxLjEgMjAuMmgyOS44Yy0uNy04LjItMS0xNy41LTEtMjYuOHYtNjUuNmMwLTkuMy0xLjctMTcuMi00LjgtMjMuOGw2MS41IDExNi4xLTI4LjUgNTQuMWgzNS45TDY0MCAxODkuNXpNMjQzLjcgMzEzLjhjLTI5LjYgMC01MC4yLTIxLjUtNTAuMi01My44IDAtMzIuNCAyMC42LTUzLjggNTAuMi01My44IDI5LjggMCA1MC4yIDIxLjQgNTAuMiA1My44IDAgMzIuMy0yMC40IDUzLjgtNTAuMiA1My44em0yMDAuOS00Ny4zYzAgMzAtMTcuOSA0OC40LTUxLjYgNDguNC0yNS4xIDAtMzUtMTMuNC0zNS0yNS44IDAtMTkuMSAxOC4xLTI0LjQgNDcuMi0yNS4zIDEzLjEtLjUgMjcuNi0uNiAzOS40LS42em0tNDExLjkgMS42aDEyOC44di04LjVjMC01MS43LTMzLjEtNzUuNC03OC40LTc1LjQtNTYuOCAwLTgzIDMwLjgtODMgNzcuNiAwIDQyLjUgMjUuMyA3NCA4Mi41IDc0IDMxLjQgMCA2OC0xMS43IDc0LjQtNDYuMWgtMzMuMWMtMTIgMzUuOC04Ny43IDM2LjctOTEuMi0yMS42em05NS0yMS40SDMzLjNjNi45LTU2LjYgOTIuMS01NC43IDk0LjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRnZUxlZ2FjeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNS43MSwyMjguMTZsLjM1LS40OGMwLC4xNiwwLC4zMi0uMDcuNDhabTQ2MC41OCwxNS41MWMwLTQ0LTcuNzYtODQuNDYtMjguODEtMTIyLjRDNDE2LjUsNDcuODgsMzQzLjkxLDgsMjU4Ljg5LDgsMTE5LDcuNzIsNDAuNjIsMTEzLjIxLDI2LjA2LDIyNy42OGM0Mi40Mi02MS4zMSwxMTcuMDctMTIxLjM4LDIyMC4zNy0xMjUsMCwwLDEwOS42NywwLDk5LjQyLDEwNUgxNzBjNi4zNy0zNy4zOSwxOC41NS01OSwzNC4zNC03OC45My03NS4wNSwzNC45LTEyMS44NSw5Ni4xLTEyMC43NSwxODguMzIuODMsNzEuNDUsNTAuMTMsMTQ0Ljg0LDEyMC43NSwxNzIsODMuMzUsMzEuODQsMTkyLjc3LDcuMiwyNDAuMTMtMjEuMzNWMzYzLjMxQzM2My42LDQxOS44LDE3My42LDQyNC4yMywxNzIuMjEsMjk1Ljc0SDQ4Ni4yOVYyNDMuNjdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVkZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgxLjkyLDEzNC40OEM0NDAuODcsNTQuMTgsMzUyLjI2LDgsMjU1LjkxLDgsMTM3LjA1LDgsMzcuNTEsOTEuNjgsMTMuNDcsMjAzLjY2YzI2LTQ2LjQ5LDg2LjIyLTc5LjE0LDE0OS40Ni03OS4xNCw3OS4yNywwLDEyMS4wOSw0OC45MywxMjIuMjUsNTAuMTgsMjIsMjMuOCwzMyw1MC4zOSwzMyw4My4xLDAsMTAuNC01LjMxLDI1LjgyLTE1LjExLDM4LjU3LTEuNTcsMi02LjM5LDQuODQtNi4zOSwxMSwwLDUuMDYsMy4yOSw5LjkyLDkuMTQsMTQsMjcuODYsMTkuMzcsODAuMzcsMTYuODEsODAuNTEsMTYuODFBMTE1LjM5LDExNS4zOSwwLDAsMCw0NDQuOTQsMzIyYTExOC45MiwxMTguOTIsMCwwLDAsNTguOTUtMTAyLjQ0QzUwNC4zOSwxNzYuMTMsNDg4LjM5LDE0Ny4yNiw0ODEuOTIsMTM0LjQ4Wk0yMTIuNzcsNDc1LjY3YTE1NC44OCwxNTQuODgsMCwwLDEtNDYuNjQtNDVjLTMyLjk0LTQ3LjQyLTM0LjI0LTk1LjYtMjAuMS0xMzZBMTU1LjUsMTU1LjUsMCwwLDEsMjAzLDIxNS43NWM1OS00NS4yLDk0Ljg0LTUuNjUsOTkuMDYtMWE4MCw4MCwwLDAsMC00Ljg5LTEwLjE0Yy05LjI0LTE1LjkzLTI0LTM2LjQxLTU2LjU2LTUzLjUxLTMzLjcyLTE3LjY5LTcwLjU5LTE4LjU5LTc3LjY0LTE4LjU5LTM4LjcxLDAtNzcuOSwxMy0xMDcuNTMsMzUuNjlDMzUuNjgsMTgzLjMsMTIuNzcsMjA4LjcyLDguNiwyNDNjLTEuMDgsMTIuMzEtMi43NSw2Mi44LDIzLDExOC4yN2EyNDgsMjQ4LDAsMCwwLDI0OC4zLDE0MS42MUMyNDEuNzgsNDk2LjI2LDIxNC4wNSw0NzYuMjQsMjEyLjc3LDQ3NS42N1ptMjUwLjcyLTk4LjMzYTcuNzYsNy43NiwwLDAsMC03LjkyLS4yMywxODEuNjYsMTgxLjY2LDAsMCwxLTIwLjQxLDkuMTIsMTk3LjU0LDE5Ny41NCwwLDAsMS02OS41NSwxMi41MmMtOTEuNjcsMC0xNzEuNTItNjMuMDYtMTcxLjUyLTE0NEE2MS4xMiw2MS4xMiwwLDAsMSwyMDAuNjEsMjI4LDE2OC43MiwxNjguNzIsMCwwLDAsMTYxLjg1LDI3OGMtMTQuOTIsMjkuMzctMzMsODguMTMsMTMuMzMsMTUxLjY2LDYuNTEsOC45MSwyMywzMCw1Niw0Ny42NywyMy41NywxMi42NSw0OSwxOS42MSw3MS43LDE5LjYxLDM1LjE0LDAsMTE1LjQzLTMzLjQ0LDE2My0xMDguODdBNy43NSw3Ljc1LDAsMCwwLDQ2My40OSwzNzcuMzRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVsZW1lbnRvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjUuNiAzMkgyMi40QzEwIDMyIDAgNDIgMCA1NC40djQwMy4yQzAgNDcwIDEwIDQ4MCAyMi40IDQ4MGg0MDMuMmMxMi40IDAgMjIuNC0xMCAyMi40LTIyLjRWNTQuNEM0NDggNDIgNDM4IDMyIDQyNS42IDMyTTE2NC4zIDM1NS41aC0zOS44di0xOTloMzkuOHYxOTl6bTE1OS4zIDBIMjA0LjF2LTM5LjhoMTE5LjV2MzkuOHptMC03OS42SDIwNC4xdi0zOS44aDExOS41djM5Ljh6bTAtNzkuN0gyMDQuMXYtMzkuOGgxMTkuNXYzOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE0My44NCAyODUuMkMzNzUuMzEgMzU4LjUxIDMxNS43OSA0MDQuOCAyNDggNDA0LjhzLTEyNy4zMS00Ni4yOS0xNDMuODQtMTExLjZjLTEuNjUtNy40NCAyLjQ4LTE1LjcxIDkuOTItMTcuMzYgNy40NC0xLjY1IDE1LjcxIDIuNDggMTcuMzYgOS45MiAxNC4wNSA1Mi45MSA2MiA5MC4xMSAxMTYuNTYgOTAuMTFzMTAyLjUxLTM3LjIgMTE2LjU2LTkwLjExYzEuNjUtNy40NCA5LjkyLTEyLjQgMTcuMzYtOS45MiA3LjQ0IDEuNjUgMTIuNCA5LjkyIDkuOTIgMTcuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVtYmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzOS45IDI1NC42Yy0xLjEtMTAuNy0xMC43LTYuOC0xMC43LTYuOHMtMTUuNiAxMi4xLTI5LjMgMTAuN2MtMTMuNy0xLjMtOS40LTMyLTkuNC0zMnMzLTI4LjEtNS4xLTMwLjRjLTguMS0yLjQtMTggNy4zLTE4IDcuM3MtMTIuNCAxMy43LTE4LjMgMzEuMmwtMS42LjVzMS45LTMwLjYtLjMtMzcuNmMtMS42LTMuNS0xNi40LTMuMi0xOC44IDNzLTE0LjIgNDkuMi0xNSA2Ny4yYzAgMC0yMy4xIDE5LjYtNDMuMyAyMi44cy0yNS05LjQtMjUtOS40IDU0LjgtMTUuMyA1Mi45LTU5LjEtNDQuMi0yNy42LTQ5LTI0Yy00LjYgMy41LTI5LjQgMTguNC0zNi42IDU5LjctLjIgMS40LS43IDcuNS0uNyA3LjVzLTIxLjIgMTQuMi0zMyAxOGMwIDAgMzMtNTUuNi03LjMtODAuOS0xMS40LTYuOC0yMS4zLS41LTI3LjIgNS4zIDEzLjYtMTcuMyA0Ni40LTY0LjIgMzYuOS0xMDUuMi01LjgtMjQuNC0xOC0yNy4xLTI5LjItMjMuMS0xNyA2LjctMjMuNSAxNi43LTIzLjUgMTYuN3MtMjIgMzItMjcuMSA3OS41LTEyLjYgMTA1LjEtMTIuNiAxMDUuMS0xMC41IDEwLjItMjAuMiAxMC43LTUuNC0yOC43LTUuNC0yOC43IDcuNS00NC42IDctNTIuMS0xLjEtMTEuNi05LjktMTQuMmMtOC45LTIuNy0xOC41IDguNi0xOC41IDguNnMtMjUuNSAzOC43LTI3LjcgNDQuNmwtMS4zIDIuNC0xLjMtMS42czE4LTUyLjcuOC01My41LTI4LjUgMTguOC0yOC41IDE4LjgtMTkuNiAzMi44LTIwLjQgMzYuNWwtMS4zLTEuNnM4LjEtMzguMiA2LjQtNDcuNmMtMS42LTkuNC0xMC41LTcuNS0xMC41LTcuNXMtMTEuMy0xLjMtMTQuMiA1LjktMTMuNyA1NS4zLTE1IDcwLjdjMCAwLTI4LjIgMjAuMi00Ni44IDIwLjQtMTguNS4zLTE2LjctMTEuOC0xNi43LTExLjhzNjgtMjMuMyA0OS40LTY5LjJjLTguMy0xMS44LTE4LTE1LjUtMzEuNy0xNS4zLTEzLjcuMy0zMC4zIDguNi00MS4zIDMzLjMtNS4zIDExLjgtNi44IDIzLTcuOCAzMS41IDAgMC0xMi4zIDIuNC0xOC44LTIuOXMtMTAgMC0xMCAwLTExLjIgMTQtLjEgMTguMyAyOC4xIDYuMSAyOC4xIDYuMWMxLjYgNy41IDYuMiAxOS41IDE5LjYgMjkuNyAyMC4yIDE1LjMgNTguOC0xLjMgNTguOC0xLjNsMTUuOS04LjhzLjUgMTQuNiAxMi4xIDE2LjcgMTYuNCAxIDM2LjUtNDcuOWMxMS44LTI1IDEyLjYtMjMuNiAxMi42LTIzLjZsMS4zLS4zcy05LjEgNDYuOC01LjYgNTkuN0MxODcuNyAzMTkuNCAyMDMgMzE4IDIwMyAzMThzOC4zIDIuNCAxNS0yMS4yIDE5LjYtNDkuOSAxOS42LTQ5LjloMS42cy01LjYgNDguMSAzIDYzLjcgMzAuOSA1LjMgMzAuOSA1LjMgMTUuNi03LjggMTgtMTAuMmMwIDAgMTguNSAxNS44IDQ0LjYgMTIuOSA1OC4zLTExLjUgNzkuMS0yNS45IDc5LjEtMjUuOXMxMCAyNC40IDQxLjEgMjYuN2MzNS41IDIuNyA1NC44LTE4LjYgNTQuOC0xOC42cy0uMyAxMy41IDEyLjEgMTguNiAyMC43LTIyLjggMjAuNy0yMi44bDIwLjctNTcuMmgxLjlzMS4xIDM3LjMgMjEuNSA0My4yIDQ3LTEzLjcgNDctMTMuNyA2LjQtMy41IDUuMy0xNC4zem0tNTc4IDUuM2MuOC0zMiAyMS44LTQ1LjkgMjktMzkgNy4zIDcgNC42IDIyLTkuMSAzMS40LTEzLjcgOS41LTE5LjkgNy42LTE5LjkgNy42em0yNzIuOC0xMjMuOHMxOS4xLTQ5LjcgMjMuNi0yNS41LTQwIDk2LjItNDAgOTYuMmMuNS0xNi4yIDE2LjQtNzAuNyAxNi40LTcwLjd6bTIyLjggMTM4LjRjLTEyLjYgMzMtNDMuMyAxOS42LTQzLjMgMTkuNnMtMy41LTExLjggNi40LTQ0LjkgMzMuMy0yMC4yIDMzLjMtMjAuMiAxNi4yIDEyLjQgMy42IDQ1LjV6bTg0LjYtMTQuNnMtMy0xMC41IDguMS0zMC42YzExLTIwLjIgMTkuNi05LjEgMTkuNi05LjFzOS40IDEwLjItMS4zIDI1LjUtMjYuNCAxNC4yLTI2LjQgMTQuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW1waXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4Ny42IDU0LjJjLTEwLjgtMi4yLTIyLjEtMy4zLTMzLjUtMy42VjMyLjRjNzguMSAyLjIgMTQ2LjEgNDQgMTg0LjYgMTA2LjZsLTE1LjggOS4xYy02LjEtOS43LTEyLjctMTguOC0yMC4yLTI3LjFsLTE4IDE1LjVjLTI2LTI5LjYtNjEuNC01MC43LTEwMS45LTU4LjRsNC44LTIzLjl6TTUzLjQgMzIyLjRsMjMtNy43Yy02LjQtMTguMy0xMC0zOC4yLTEwLTU4LjdzMy4zLTQwLjQgOS43LTU4LjdsLTIyLjctNy43YzMuNi0xMC44IDguMy0yMS4zIDEzLjYtMzFsLTE1LjgtOS4xQzM0IDE4MSAyNC4xIDIxNy41IDI0LjEgMjU2czEwIDc1IDI3LjEgMTA2LjZsMTUuOC05LjFjLTUuMy0xMC05LjctMjAuMy0xMy42LTMxLjF6TTIxMy4xIDQzNGMtNDAuNC04LTc1LjgtMjkuMS0xMDEuOS01OC43bC0xOCAxNS44Yy03LjUtOC42LTE0LjQtMTcuNy0yMC4yLTI3LjRsLTE2IDkuNGMzOC41IDYyLjMgMTA2LjggMTA0LjMgMTg0LjkgMTA2LjZ2LTE4LjNjLTExLjMtLjMtMjIuNy0xLjctMzMuNS0zLjZsNC43LTIzLjh6TTkzLjMgMTIwLjlsMTggMTUuNWMyNi0yOS42IDYxLjQtNTAuNyAxMDEuOS01OC40bC00LjctMjMuOGMxMC44LTIuMiAyMi4xLTMuMyAzMy41LTMuNlYzMi40QzE2My45IDM0LjYgOTUuOSA3Ni40IDU3LjQgMTM5bDE1LjggOS4xYzYtOS43IDEyLjYtMTguOSAyMC4xLTI3LjJ6bTMwOS40IDI3MC4ybC0xOC0xNS44Yy0yNiAyOS42LTYxLjQgNTAuNy0xMDEuOSA1OC43bDQuNyAyMy44Yy0xMC44IDEuOS0yMi4xIDMuMy0zMy41IDMuNnYxOC4zYzc4LjEtMi4yIDE0Ni40LTQ0LjMgMTg0LjktMTA2LjZsLTE2LjEtOS40Yy01LjcgOS43LTEyLjYgMTguOC0yMC4xIDI3LjR6TTQ5NiAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzAgMzkzIDAgMjU2IDExMSA4IDI0OCA4czI0OCAxMTEgMjQ4IDI0OHptLTEyLjIgMGMwLTEzMC4xLTEwNS43LTIzNS44LTIzNS44LTIzNS44UzEyLjIgMTI1LjkgMTIuMiAyNTYgMTE3LjkgNDkxLjggMjQ4IDQ5MS44IDQ4My44IDM4Ni4xIDQ4My44IDI1NnptLTM5LTEwNi42bC0xNS44IDkuMWM1LjMgOS43IDEwIDIwLjIgMTMuNiAzMWwtMjIuNyA3LjdjNi40IDE4LjMgOS43IDM4LjIgOS43IDU4LjdzLTMuNiA0MC40LTEwIDU4LjdsMjMgNy43Yy0zLjkgMTAuOC04LjMgMjEtMTMuNiAzMWwxNS44IDkuMUM0NjIgMzMxIDQ3MS45IDI5NC41IDQ3MS45IDI1NnMtOS45LTc1LTI3LjEtMTA2LjZ6bS0xODMgMTc3LjdjMTYuMy0zLjMgMzAuNC0xMS42IDQwLjctMjMuNWw1MS4yIDQ0LjhjMTEuOS0xMy42IDIxLjMtMjkuMyAyNy4xLTQ2LjhsLTY0LjItMjIuMWMyLjUtNy41IDMuOS0xNS4yIDMuOS0yMy41cy0xLjQtMTYuMS0zLjktMjMuNWw2NC41LTIyLjFjLTYuMS0xNy40LTE1LjUtMzMuMi0yNy40LTQ2LjhsLTUxLjIgNDQuOGMtMTAuMi0xMS45LTI0LjQtMjAuNS00MC43LTIzLjhsMTMuMy02Ni40Yy04LjYtMS45LTE3LjctMi44LTI3LjEtMi44LTkuNCAwLTE4LjUuOC0yNy4xIDIuOGwxMy4zIDY2LjRjLTE2LjMgMy4zLTMwLjQgMTEuOS00MC43IDIzLjhsLTUxLjItNDQuOGMtMTEuOSAxMy42LTIxLjMgMjkuMy0yNy40IDQ2LjhsNjQuNSAyMi4xYy0yLjUgNy41LTMuOSAxNS4yLTMuOSAyMy41czEuNCAxNi4xIDMuOSAyMy41bC02NC4yIDIyLjFjNS44IDE3LjQgMTUuMiAzMy4yIDI3LjEgNDYuOGw1MS4yLTQ0LjhjMTAuMiAxMS45IDI0LjQgMjAuMiA0MC43IDIzLjVsLTEzLjMgNjYuN2M4LjYgMS43IDE3LjcgMi44IDI3LjEgMi44IDkuNCAwIDE4LjUtMS4xIDI3LjEtMi44bC0xMy4zLTY2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmlyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMyYzQ3Ny42IDAgMzY2LjYgMzE3LjMgMzY3LjEgMzY2LjNMNDQ4IDQ4MGgtMjZsLTcwLjQtNzEuMmMtMzkgNC4yLTEyNC40IDM0LjUtMjE0LjQtMzdDNDcgMzAwLjMgNTIgMjE0LjcgMCAzMnptNzkuNyA0NmMtNDkuNy0yMy41LTUuMiA5LjItNS4yIDkuMiA0NS4yIDMxLjIgNjYgNzMuNyA5MC4yIDExOS45IDMxLjUgNjAuMiA3OSAxMzkuNyAxNDQuMiAxNjcuNyA2NSAyOCAzNC4yIDEyLjUgNi04LjUtMjguMi0yMS4yLTY4LjItODctOTEtMTMwLjItMzEuNy02MC02MS0xMTguNi0xNDQuMi0xNTguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXJsYW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg3LjIgNTMuNUgwdjQwNWgxMDAuNGMtNDkuNy01Mi42LTc4LjgtMTI1LjMtNzguNy0yMTIuMS0uMS03Ni43IDI0LTE0Mi43IDY1LjUtMTkyLjl6bTIzOC4yIDkuN2MtNDUuOS4xLTg1LjEgMzMuNS04OS4yIDgzLjJoMTY5LjljLTEuMS00OS43LTM0LjUtODMuMS04MC43LTgzLjJ6bTIzMC43LTkuNmguM2wtLjEtLjF6bS4zIDBjMzEuNCA0Mi43IDQ4LjcgOTcuNSA0Ni4yIDE2Mi43LjUgNiAuNSAxMS43IDAgMjQuMUgyMzAuMmMtLjIgMTA5LjcgMzguOSAxOTQuOSAxMzguNiAxOTUuMyA2OC41LS4zIDExOC01MSAxNTEuOS0xMDYuMWw5Ni40IDQ4LjJjLTE3LjQgMzAuOS0zNi41IDU3LjgtNTcuOSA4MC44SDY0MHYtNDA1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdGhlcmV1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTEuOSAyNjAuOEwxNjAgMzUzLjYgOCAyNjAuOCAxNjAgMGwxNTEuOSAyNjAuOHpNMTYwIDM4My40TDggMjkwLjYgMTYwIDUxMmwxNTItMjIxLjQtMTUyIDkyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV0c3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM0OGMtMS43NSAxMC43NS0xMy43NSAxMTAtMTUuNSAxMzItMTE3Ljg3OS00LjI5OS0yMTkuODk1LTQuNzQzLTM2OC41IDB2LTI1LjVjNDUuNDU3LTguOTQ4IDYwLjYyNy04LjAxOSA2MS0zNS4yNSAxLjc5My03Mi4zMjIgMy41MjQtMjQ0LjE0MyAwLTMyMi0xLjAyOS0yOC40Ni0xMi4xMy0yNi43NjUtNjEtMzZ2LTI1LjVjNzMuODg2IDIuMzU4IDI1NS45MzMgOC41NTEgMzYyLjk5OS0zLjc1LTMuNSAzOC4yNS03Ljc1IDEyNi41LTcuNzUgMTI2LjVIMzMyQzMyMC45NDcgMTE1LjY2NSAzMTMuMjQxIDY4IDI3Ny4yNSA2OGgtMTM3Yy0xMC4yNSAwLTEwLjc1IDMuNS0xMC43NSA5Ljc1VjI0MS41YzU4IC41IDg4LjUtMi41IDg4LjUtMi41IDI5Ljc3LS45NTEgMjcuNTYtOC41MDIgNDAuNzUtNjUuMjUxaDI1Ljc1Yy00LjQwNyAxMDEuMzUxLTMuOTEgNjEuODI5LTEuNzUgMTYwLjI1SDI1N2MtOS4xNTUtNDAuMDg2LTkuMDY1LTYxLjA0NS0zOS41MDEtNjEuNSAwIDAtMjEuNS0yLTg4LTJ2MTM5YzAgMjYgMTQuMjUgMzguMjUgNDQuMjUgMzguMjVIMjYzYzYzLjYzNiAwIDY2LjU2NC0yNC45OTYgOTguNzUxLTk5Ljc1SDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXZlcm5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIwLjgyIDEzMi4yMWMxLjYgMjIuMzEtMTcuNTUgMjEuNTktMjEuNjEgMjEuNTktNjguOTMgMC03My42NC0xLTgzLjU4IDMuMzQtLjU2LjIyLS43NCAwLS4zNy0uMzdMMTIzLjc5IDQ2LjQ1Yy4zOC0uMzcuNi0uMjIuMzguMzctNC4zNSA5Ljk5LTMuMzUgMTUuMDktMy4zNSA4NS4zOXptNzkgMzA4Yy0xNC42OC0zNy4wOCAxMy03Ni45MyA1Mi41Mi03Ni42MiAxNy40OSAwIDIyLjYgMjMuMjEgNy45NSAzMS40Mi02LjE5IDMuMy0yNC45NSAxLjc0LTI1LjE0IDE5LjItLjA1IDE3LjA5IDE5LjY3IDI1IDMxLjIgMjQuODlBNDUuNjQgNDUuNjQgMCAwIDAgMzEyIDM5My40NXYtLjA4YzAtMTEuNjMtNy43OS00Ny4yMi00Ny41NC01NS4zNC03LjcyLTEuNTQtNjUtNi4zNS02OC4zNS01MC41Mi0zLjc0IDE2LjkzLTE3LjQgNjMuNDktNDMuMTEgNjkuMDktOC43NCAxLjk0LTY5LjY4IDcuNjQtMTEyLjkyLTM2Ljc3IDAgMC0xOC41Ny0xNS4yMy0yOC4yMy01Ny45NS0zLjM4LTE1Ljc1LTkuMjgtMzkuNy0xMS4xNC02MiAwLTE4IDExLjE0LTMwLjQ1IDI1LjA3LTMyLjIgODEgMCA5MCAyLjMyIDEwMS03LjggOS44Mi05LjI0IDcuOC0xNS41IDcuOC0xMDIuNzggMS04LjMgNy43OS0zMC44MSA1My40MS0yNC4xNCA2IC44NiAzMS45MSA0LjE4IDM3LjQ4IDMwLjY0bDY0LjI2IDExLjE1YzIwLjQzIDMuNzEgNzAuOTQgNyA4MC42IDU3Ljk0IDIyLjY2IDEyMS4wOSA4LjkxIDIzOC40NiA3LjggMjM4LjQ2QzM2Mi4xNSA0ODUuNTMgMjY3LjA2IDQ4MCAyNjcuMDYgNDgwYy0xOC45NS0uMjMtNTQuMjUtOS40LTY3LjI3LTM5Ljgzem04MC45NC0yMDQuODRjLTEgMS45Mi0yLjIgNiAuODUgNyAxNC4wOSA0LjkzIDM5Ljc1IDYuODQgNDUuODggNS41MyAzLjExLS4yNSAzLjA1LTQuNDMgMi40OC02LjY1LTMuNTMtMjEuODUtNDAuODMtMjYuNS00OS4yNC01LjkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBlZGl0ZWRzc2wgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDQzLjRDMTMwLjYgNDMuNCAzNS40IDEzOC42IDM1LjQgMjU2UzEzMC42IDQ2OC42IDI0OCA0NjguNiA0NjAuNiAzNzMuNCA0NjAuNiAyNTYgMzY1LjQgNDMuNCAyNDggNDMuNHptLTk3LjQgMTMyLjljMC01My43IDQzLjctOTcuNCA5Ny40LTk3LjRzOTcuNCA0My43IDk3LjQgOTcuNHYyNi42YzAgNS0zLjkgOC45LTguOSA4LjloLTE3LjdjLTUgMC04LjktMy45LTguOS04Ljl2LTI2LjZjMC04Mi4xLTEyNC04Mi4xLTEyNCAwdjI2LjZjMCA1LTMuOSA4LjktOC45IDguOWgtMTcuN2MtNSAwLTguOS0zLjktOC45LTguOXYtMjYuNnpNMzg5LjcgMzgwYzAgOS43LTggMTcuNy0xNy43IDE3LjdIMTI0Yy05LjcgMC0xNy43LTgtMTcuNy0xNy43VjIzOC4zYzAtOS43IDgtMTcuNyAxNy43LTE3LjdoMjQ4YzkuNyAwIDE3LjcgOCAxNy43IDE3LjdWMzgwem0tMjQ4LTEzNy4zdjEzMi45YzAgMi41LTEuOSA0LjQtNC40IDQuNGgtOC45Yy0yLjUgMC00LjQtMS45LTQuNC00LjRWMjQyLjdjMC0yLjUgMS45LTQuNCA0LjQtNC40aDguOWMyLjUgMCA0LjQgMS45IDQuNCA0LjR6bTE0MS43IDQ4LjdjMCAxMy03LjIgMjQuNC0xNy43IDMwLjR2MzEuNmMwIDUtMy45IDguOS04LjkgOC45aC0xNy43Yy01IDAtOC45LTMuOS04LjktOC45di0zMS42Yy0xMC41LTYuMS0xNy43LTE3LjQtMTcuNy0zMC40IDAtMTkuNyAxNS44LTM1LjQgMzUuNC0zNS40czM1LjUgMTUuOCAzNS41IDM1LjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDc4LjNDMTIxIDQ4Ni4zIDE3LjcgMzgzIDE3LjcgMjU2UzEyMSAyNS43IDI0OCAyNS43IDQ3OC4zIDEyOSA0NzguMyAyNTYgMzc1IDQ4Ni4zIDI0OCA0ODYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFjZWJvb2tGIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OS4xNCAyODhsMTQuMjItOTIuNjZoLTg4Ljkxdi02MC4xM2MwLTI1LjM1IDEyLjQyLTUwLjA2IDUyLjI0LTUwLjA2aDQwLjQyVjYuMjZTMjYwLjQzIDAgMjI1LjM2IDBjLTczLjIyIDAtMTIxLjA4IDQ0LjM4LTEyMS4wOCAxMjQuNzJ2NzAuNjJIMjIuODlWMjg4aDgxLjM5djIyNGgxMDAuMTdWMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9va01lc3NlbmdlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuNTUgOEMxMTYuNTIgOCA4IDExMC4zNCA4IDI0OC41N2MwIDcyLjMgMjkuNzEgMTM0Ljc4IDc4LjA3IDE3Ny45NCA4LjM1IDcuNTEgNi42MyAxMS44NiA4LjA1IDU4LjIzQTE5LjkyIDE5LjkyIDAgMCAwIDEyMiA1MDIuMzFjNTIuOTEtMjMuMyA1My41OS0yNS4xNCA2Mi41Ni0yMi43QzMzNy44NSA1MjEuOCA1MDQgNDIzLjcgNTA0IDI0OC41NyA1MDQgMTEwLjM0IDM5Ni41OSA4IDI1Ni41NSA4em0xNDkuMjQgMTg1LjEzbC03MyAxMTUuNTdhMzcuMzcgMzcuMzcgMCAwIDEtNTMuOTEgOS45M2wtNTguMDgtNDMuNDdhMTUgMTUgMCAwIDAtMTggMGwtNzguMzcgNTkuNDRjLTEwLjQ2IDcuOTMtMjQuMTYtNC42LTE3LjExLTE1LjY3bDczLTExNS41N2EzNy4zNiAzNy4zNiAwIDAgMSA1My45MS05LjkzbDU4LjA2IDQzLjQ2YTE1IDE1IDAgMCAwIDE4IDBsNzguNDEtNTkuMzhjMTAuNDQtNy45OCAyNC4xNCA0LjU0IDE3LjA5IDE1LjYyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9va1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhBNDggNDggMCAwIDAgMCA4MHYzNTJhNDggNDggMCAwIDAgNDggNDhoMTM3LjI1VjMyNy42OWgtNjNWMjU2aDYzdi01NC42NGMwLTYyLjE1IDM3LTk2LjQ4IDkzLjY3LTk2LjQ4IDI3LjE0IDAgNTUuNTIgNC44NCA1NS41MiA0Ljg0djYxaC0zMS4yN2MtMzAuODEgMC00MC40MiAxOS4xMi00MC40MiAzOC43M1YyNTZoNjguNzhsLTExIDcxLjY5aC01Ny43OFY0ODBINDAwYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjgwYTQ4IDQ4IDAgMCAwLTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYWNlYm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZjMCAxMjMuNzggOTAuNjkgMjI2LjM4IDIwOS4yNSAyNDVWMzI3LjY5aC02M1YyNTZoNjN2LTU0LjY0YzAtNjIuMTUgMzctOTYuNDggOTMuNjctOTYuNDggMjcuMTQgMCA1NS41MiA0Ljg0IDU1LjUyIDQuODR2NjFoLTMxLjI4Yy0zMC44IDAtNDAuNDEgMTkuMTItNDAuNDEgMzguNzNWMjU2aDY4Ljc4bC0xMSA3MS42OWgtNTcuNzhWNTAxQzQxMy4zMSA0ODIuMzggNTA0IDM3OS43OCA1MDQgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYW50YXN5RmxpZ2h0R2FtZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyLjg2TDMyLjg2IDI1NiAyNTYgNDc5LjE0IDQ3OS4xNCAyNTYgMjU2IDMyLjg2ek04OC4zNCAyNTUuODNjMS45Ni0yIDExLjkyLTEyLjMgOTYuNDktOTcuNDggNDEuNDUtNDEuNzUgODYuMTktNDMuNzcgMTE5Ljc3LTE4LjY5IDI0LjYzIDE4LjQgNjIuMDYgNTguOSA2Mi4xNSA1OSAuNjguNzQgMS4wNyAyLjg2LjU4IDMuMzgtMTEuMjcgMTEuODQtMjIuNjggMjMuNTQtMzMuNSAzNC42OS0zNC4yMS0zMi4zMS00MC41Mi0zOC4yNC00OC41MS00My45NS0xNy43Ny0xMi42OS00MS40LTEwLjEzLTU2Ljk4IDUuMS0yLjE3IDIuMTMtMS43OSAzLjQzLjEyIDUuMzUgMi45NCAyLjk1IDI4LjEgMjguMzMgMzUuMDkgMzUuNzgtMTEuOTUgMTEuNi0yMy42NiAyMi45Ny0zNS42OSAzNC42Ni0xMi4wMi0xMi41NC0yNC40OC0yNS41My0zNi41NC0zOC4xMS0yMS4zOSAyMS4wOS00MS42OSA0MS4xMS02MS44NSA2MC45OWE0MjU2OS4wMSA0MjU2OS4wMSAwIDAgMS00MS4xMy00MC43MnptMjM0LjgyIDEwMS42Yy0zNS40OSAzNS40My03OC4wOSAzOC4xNC0xMDYuOTkgMjAuNDctMjIuMDgtMTMuNS0zOS4zOC0zMi4wOC03Mi45My02Ni44NCAxMi4wNS0xMi4zNyAyMy43OS0yNC40MiAzNS4zNy0zNi4zMSAzMy4wMiAzMS45MSAzNy4wNiAzNi4wMSA0NC42OCA0Mi4wOSAxOC40OCAxNC43NCA0Mi41MiAxMy42NyA1OS4zMi0xLjggMy42OC0zLjM5IDMuNjktMy42NC4xNC03LjI0LTEwLjU5LTEwLjczLTIxLjE5LTIxLjQ0LTMxLjc3LTMyLjE4LTEuMzItMS4zNC0zLjAzLTIuNDgtLjgtNC42OSAxMC43OS0xMC43MSAyMS40OC0yMS41MiAzMi4yMS0zMi4yOS4yNi0uMjYuNjUtLjM4IDEuOTEtMS4wNyAxMi4zNyAxMi44NyAyNC45MiAyNS45MiAzNy4yNSAzOC43NSAyMS4wMS0yMC43MyA0MS4yNC00MC42OCA2MS4yNS02MC40MiAxMy42OCAxMy40IDI3LjEzIDI2LjU4IDQwLjg2IDQwLjAzLTIwLjE3IDIwLjg2LTgxLjY4IDgyLjcxLTEwMC41IDEwMS41ek0yNTYgMEwwIDI1NmwyNTYgMjU2IDI1Ni0yNTZMMjU2IDB6TTE2IDI1NkwyNTYgMTZsMjQwIDI0MC0yNDAgMjQwTDE2IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmVkZXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTg2IDI4NC41bDUzLjMtNTkuOWgtNjIuNGwtMjEuNyAyNC44LTIyLjUtMjQuOEg0MTR2LTE2aDU2LjF2LTQ4LjFIMzE4LjlWMjM2aC0uNWMtOS42LTExLTIxLjUtMTQuOC0zNS40LTE0LjgtMjguNCAwLTQ5LjggMTkuNC01Ny4zIDQ0LjktMTgtNTkuNC05Ny40LTU3LjYtMTIxLjktMTR2LTI0LjJINDl2LTI2LjJoNjB2LTQxLjFIMFYzNDVoNDl2LTc3LjVoNDguOWMtMS41IDUuNy0yLjMgMTEuOC0yLjMgMTguMiAwIDczLjEgMTAyLjYgOTEuNCAxMzAuMiAyMy43aC00MmMtMTQuNyAyMC45LTQ1LjggOC45LTQ1LjgtMTQuNmg4NS41YzMuNyAzMC41IDI3LjQgNTYuOSA2MC4xIDU2LjkgMTQuMSAwIDI3LTYuOSAzNC45LTE4LjZoLjVWMzQ1aDIxMi4ybDIyLjEtMjUgMjIuMyAyNUg2NDBsLTU0LTYwLjV6bS00NDYuNy0xNi42YzYuMS0yNi4zIDQxLjctMjUuNiA0Ni41IDBoLTQ2LjV6bTE1My40IDQ4LjljLTM0LjYgMC0zNC02Mi44IDAtNjIuOCAzMi42IDAgMzQuNSA2Mi44IDAgNjIuOHptMTY3LjggMTkuMWgtOTQuNFYxNjkuNGg5NXYzMC4ySDQwNXYzMy45aDU1LjV2MjguMWgtNTYuMXY0NC43aDU2LjF2MjkuNnptLTQ1LjktMzkuOHYtMjQuNGg1Ni4xdi00NGw1MC43IDU3LTUwLjcgNTd2LTQ1LjZoLTU2LjF6bTEzOC42IDEwLjNsLTI2LjEgMjkuNUg0ODlsNDUuNi01MS4yLTQ1LjYtNTEuMmgzOS43bDI2LjYgMjkuMyAyNS42LTI5LjNoMzguNWwtNDUuNCA1MSA0NiA1MS40aC00MC41bC0yNi4zLTI5LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlZG9yYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjUgMzJDMTAxLjMgMzEuNy44IDEzMS43LjQgMjU1LjRMMCA0MjUuN2E1My42IDUzLjYgMCAwIDAgNTMuNiA1My45bDE3MC4yLjRjMTIzLjcuMyAyMjQuMy05OS43IDIyNC42LTIyMy40UzM0OC43IDMyLjMgMjI1IDMyem0xNjkuOCAxNTcuMkwzMzMgMTI2LjZjMi4zLTQuNyAzLjgtOS4yIDMuOC0xNC4zdi0xLjZsNTUuMiA1Ni4xYTEwMSAxMDEgMCAwIDEgMi44IDIyLjR6TTMzMSA5NC4zYTEwNi4wNiAxMDYuMDYgMCAwIDEgNTguNSA2My44bC01NC4zLTU0LjZhMjYuNDggMjYuNDggMCAwIDAtNC4yLTkuMnpNMTE4LjEgMjQ3LjJhNDkuNjYgNDkuNjYgMCAwIDAtNy43IDExLjRsLTguNS04LjVhODUuNzggODUuNzggMCAwIDEgMTYuMi0yLjl6TTk3IDI1MS40bDExLjggMTEuOS0uOSA4YTM0Ljc0IDM0Ljc0IDAgMCAwIDIuNCAxMi41bC0yNy0yNy4yYTgwLjYgODAuNiAwIDAgMSAxMy43LTUuMnptLTE4LjIgNy40bDM4LjIgMzguNGE1My4xNyA1My4xNyAwIDAgMC0xNC4xIDQuN0w2Ny42IDI2NmExMDcgMTA3IDAgMCAxIDExLjItNy4yem0tMTUuMiA5LjhsMzUuMyAzNS41YTY3LjI1IDY3LjI1IDAgMCAwLTEwLjUgOC41TDUzLjUgMjc4YTY0LjMzIDY0LjMzIDAgMCAxIDEwLjEtOS40em0tMTMuMyAxMi4zbDM0LjkgMzVhNTYuODQgNTYuODQgMCAwIDAtNy43IDExLjRsLTM1LjgtMzUuOWMyLjgtMy44IDUuNy03LjIgOC42LTEwLjV6bS0xMSAxNC4zbDM2LjQgMzYuNmE0OC4yOSA0OC4yOSAwIDAgMC0zLjYgMTUuMmwtMzkuNS0zOS44YTk5LjgxIDk5LjgxIDAgMCAxIDYuNy0xMnptLTguOCAxNi4zbDQxLjMgNDEuOGE2My40NyA2My40NyAwIDAgMCA2LjcgMjYuMkwyNS44IDMyNmMxLjQtNC45IDIuOS05LjYgNC43LTE0LjV6bS03LjkgNDNsNjEuOSA2Mi4yYTMxLjI0IDMxLjI0IDAgMCAwLTMuNiAxNC4zdjEuMWwtNTUuNC01NS43YTg4LjI3IDg4LjI3IDAgMCAxLTIuOS0yMS45em01LjMgMzAuN2w1NC4zIDU0LjZhMjguNDQgMjguNDQgMCAwIDAgNC4yIDkuMiAxMDYuMzIgMTA2LjMyIDAgMCAxLTU4LjUtNjMuOHptLTUuMy0zN2E4MC42OSA4MC42OSAwIDAgMSAyLjEtMTdsNzIuMiA3Mi41YTM3LjU5IDM3LjU5IDAgMCAwLTkuOSA4Ljd6bTI1My4zLTUxLjhsLTQyLjYtLjEtLjEgNTZjLS4yIDY5LjMtNjQuNCAxMTUuOC0xMjUuNyAxMDIuOS01LjcgMC0xOS45LTguNy0xOS45LTI0LjJhMjQuODkgMjQuODkgMCAwIDEgMjQuNS0yNC42YzYuMyAwIDYuMyAxLjYgMTUuNyAxLjZhNTUuOTEgNTUuOTEgMCAwIDAgNTYuMS01NS45bC4xLTQ3YzAtNC41LTQuNS05LTguOS05bC0zMy42LS4xYy0zMi42LS4xLTMyLjUtNDkuNC4xLTQ5LjNsNDIuNi4xLjEtNTZhMTA1LjE4IDEwNS4xOCAwIDAgMSAxMDUuNi0xMDUgODYuMzUgODYuMzUgMCAwIDEgMjAuMiAyLjNjMTEuMiAxLjggMTkuOSAxMS45IDE5LjkgMjQgMCAxNS41LTE0LjkgMjcuOC0zMC4zIDIzLjktMjcuNC01LjktNjUuOSAxNC40LTY2IDU0LjlsLS4xIDQ3YTguOTQgOC45NCAwIDAgMCA4LjkgOWwzMy42LjFjMzIuNS4yIDMyLjQgNDkuNS0uMiA0OS40em0yMy41LS4zYTM1LjU4IDM1LjU4IDAgMCAwIDcuNi0xMS40bDguNSA4LjVhMTAyIDEwMiAwIDAgMS0xNi4xIDIuOXptMjEtNC4yTDMwOC42IDI4MGwuOS04LjFhMzQuNzQgMzQuNzQgMCAwIDAtMi40LTEyLjVsMjcgMjcuMmE3NC44OSA3NC44OSAwIDAgMS0xMy43IDUuM3ptMTgtNy40bC0zOC0zOC40YzQuOS0xLjEgOS42LTIuNCAxMy43LTQuN2wzNi4yIDM1LjljLTMuOCAyLjUtNy45IDUtMTEuOSA3LjJ6bTE1LjUtOS44bC0zNS4zLTM1LjVhNjEuMDYgNjEuMDYgMCAwIDAgMTAuNS04LjVsMzQuOSAzNWExMjQuNTYgMTI0LjU2IDAgMCAxLTEwLjEgOXptMTMuMi0xMi4zbC0zNC45LTM1YTYzLjE4IDYzLjE4IDAgMCAwIDcuNy0xMS40bDM1LjggMzUuOWExMzAuMjggMTMwLjI4IDAgMCAxLTguNiAxMC41em0xMS0xNC4zbC0zNi40LTM2LjZhNDguMjkgNDguMjkgMCAwIDAgMy42LTE1LjJsMzkuNSAzOS44YTg3LjcyIDg3LjcyIDAgMCAxLTYuNyAxMnptMTMuNS0zMC45YTE0MC42MyAxNDAuNjMgMCAwIDEtNC43IDE0LjNMMzQ1LjYgMTkwYTU4LjE5IDU4LjE5IDAgMCAwLTcuMS0yNi4yem0xLTUuNmwtNzEuOS03Mi4xYTMyIDMyIDAgMCAwIDkuOS05LjJsNjQuMyA2NC43YTkwLjkzIDkwLjkzIDAgMCAxLTIuMyAxNi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWdtYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNCA5NS43OTI0QzE0IDQyLjg4NzcgNTYuODg3OCAwIDEwOS43OTMgMEgyNzQuMTYxQzMyNy4wNjYgMCAzNjkuOTU0IDQyLjg4NzcgMzY5Ljk1NCA5NS43OTI0QzM2OS45NTQgMTI5LjI5MiAzNTIuNzU4IDE1OC43NzYgMzI2LjcxMSAxNzUuODk3QzM1Mi43NTggMTkzLjAxOSAzNjkuOTU0IDIyMi41MDIgMzY5Ljk1NCAyNTYuMDAyQzM2OS45NTQgMzA4LjkwNyAzMjcuMDY2IDM1MS43OTUgMjc0LjE2MSAzNTEuNzk1SDI3Mi4wODFDMjQ3LjI3OSAzNTEuNzk1IDIyNC42NzggMzQyLjM2OSAyMDcuNjY2IDMyNi45MDRWNDE1LjE2N0MyMDcuNjY2IDQ2OC43NzcgMTYzLjY1NyA1MTIgMTEwLjMwOSA1MTJDNTcuNTM2MSA1MTIgMTQgNDY5LjI0MyAxNCA0MTYuMjA3QzE0IDM4Mi43MDkgMzEuMTk0NSAzNTMuMjI3IDU3LjIzOTIgMzM2LjEwNUMzMS4xOTQ1IDMxOC45ODMgMTQgMjg5LjUgMTQgMjU2LjAwMkMxNCAyMjIuNTAyIDMxLjE5NiAxOTMuMDE5IDU3LjI0MjUgMTc1Ljg5N0MzMS4xOTYgMTU4Ljc3NiAxNCAxMjkuMjkyIDE0IDk1Ljc5MjRaTTE3Ni4yODggMTkxLjU4N0gxMDkuNzkzQzc0LjIxNzIgMTkxLjU4NyA0NS4zNzc4IDIyMC40MjcgNDUuMzc3OCAyNTYuMDAyQzQ1LjM3NzggMjkxLjQ0IDczLjk5NDggMzIwLjE5NCAxMDkuMzgxIDMyMC40MTZDMTA5LjUxOCAzMjAuNDE1IDEwOS42NTUgMzIwLjQxNSAxMDkuNzkzIDMyMC40MTVIMTc2LjI4OFYxOTEuNTg3Wk0yMDcuNjY2IDI1Ni4wMDJDMjA3LjY2NiAyOTEuNTc3IDIzNi41MDUgMzIwLjQxNyAyNzIuMDgxIDMyMC40MTdIMjc0LjE2MUMzMDkuNzM3IDMyMC40MTcgMzM4LjU3NiAyOTEuNTc3IDMzOC41NzYgMjU2LjAwMkMzMzguNTc2IDIyMC40MjcgMzA5LjczNyAxOTEuNTg3IDI3NC4xNjEgMTkxLjU4N0gyNzIuMDgxQzIzNi41MDUgMTkxLjU4NyAyMDcuNjY2IDIyMC40MjcgMjA3LjY2NiAyNTYuMDAyWk0xMDkuNzkzIDM1MS43OTVDMTA5LjY1NSAzNTEuNzk1IDEwOS41MTggMzUxLjc5NCAxMDkuMzgxIDM1MS43OTRDNzMuOTk0OCAzNTIuMDE1IDQ1LjM3NzggMzgwLjc2OSA0NS4zNzc4IDQxNi4yMDdDNDUuMzc3OCA0NTEuNjUyIDc0LjYwMjUgNDgwLjYyMiAxMTAuMzA5IDQ4MC42MjJDMTQ2LjU5MSA0ODAuNjIyIDE3Ni4yODggNDUxLjE4NiAxNzYuMjg4IDQxNS4xNjdWMzUxLjc5NUgxMDkuNzkzWk0xMDkuNzkzIDMxLjM3NzhDNzQuMjE3MiAzMS4zNzc4IDQ1LjM3NzggNjAuMjE3MyA0NS4zNzc4IDk1Ljc5MjRDNDUuMzc3OCAxMzEuMzY4IDc0LjIxNzIgMTYwLjIwNyAxMDkuNzkzIDE2MC4yMDdIMTc2LjI4OFYzMS4zNzc4SDEwOS43OTNaTTIwNy42NjYgMTYwLjIwN0gyNzQuMTYxQzMwOS43MzcgMTYwLjIwNyAzMzguNTc2IDEzMS4zNjggMzM4LjU3NiA5NS43OTI0QzMzOC41NzYgNjAuMjE3MyAzMDkuNzM3IDMxLjM3NzggMjc0LjE2MSAzMS4zNzc4SDIwNy42NjZWMTYwLjIwN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlyZWZveEJyb3dzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg5LjM3LDE1Mi44NlptLTU4Ljc0LTI5LjM3QzEzMC43OSwxMjMuNSwxMzAuNzEsMTIzLjUsMTMwLjYzLDEyMy40OVptMzUxLjQyLDQ1LjM1Yy0xMC42MS0yNS41LTMyLjA4LTUzLTQ4Ljk0LTYxLjczLDEzLjcyLDI2Ljg5LDIxLjY3LDUzLjg4LDI0LjcsNzQsMCwwLDAsLjE0LjA1LjQxLTI3LjU4LTY4Ljc1LTc0LjM1LTk2LjQ3LTExMi41NS0xNTYuODMtMS45My0zLjA1LTMuODYtNi4xMS01Ljc0LTkuMzMtMS0xLjY1LTEuODYtMy4zNC0yLjY5LTUuMDVBNDQuODgsNDQuODgsMCwwLDEsMzMzLjI0LjY5YS42My42MywwLDAsMC0uNTUtLjY2LjkuOSwwLDAsMC0uNDYsMGwtLjEyLjA3LS4xOC4xLjEtLjE0Yy01NC4yMywzMS43Ny03Ni43Miw4Ny4zOC04Mi41LDEyMi43OGExMzAsMTMwLDAsMCwwLTQ4LjMzLDEyLjMzLDYuMjUsNi4yNSwwLDAsMC0zLjA5LDcuNzUsNi4xMyw2LjEzLDAsMCwwLDcuNzksMy43OWwuNTItLjIxYTExNy44NCwxMTcuODQsMCwwLDEsNDIuMTEtMTFsMS40Mi0uMWMyLS4xMiw0LS4yLDYtLjIyQTEyMi42MSwxMjIuNjEsMCwwLDEsMjkxLDE0MGMuNjcuMiwxLjMyLjQyLDIsLjYzLDEuODkuNTcsMy43NiwxLjIsNS42MiwxLjg3LDEuMzYuNSwyLjcxLDEsNC4wNSwxLjU4LDEuMDkuNDQsMi4xOC44OCwzLjI1LDEuMzVxMi41MiwxLjEzLDUsMi4zNWMuNzUuMzcsMS41Ljc0LDIuMjUsMS4xM3EyLjQsMS4yNiw0Ljc0LDIuNjMsMS41MS44NywzLDEuOGExMjQuODksMTI0Ljg5LDAsMCwxLDQyLjY2LDQ0LjEzYy0xMy05LjE1LTM2LjM1LTE4LjE5LTU4LjgyLTE0LjI4LDg3Ljc0LDQzLjg2LDY0LjE4LDE5NC45LTU3LjM5LDE4OS4yYTEwOC40MywxMDguNDMsMCwwLDEtMzEuNzQtNi4xMmMtMi40Mi0uOTEtNC44LTEuODktNy4xNi0yLjkzLTEuMzgtLjYzLTIuNzYtMS4yNy00LjEyLTJDMTc0LjUsMzQ2LDE0OS45LDMxNi45MiwxNDYuODMsMjgxLjU5YzAsMCwxMS4yNS00MS45NSw4MC42Mi00MS45NSw3LjUsMCwyOC45My0yMC45MiwyOS4zMy0yNy0uMDktMi00Mi41NC0xOC44Ny01OS4wOS0zNS4xOC04Ljg1LTguNzEtMTMuMDUtMTIuOTEtMTYuNzctMTYuMDZhNjkuNTgsNjkuNTgsMCwwLDAtNi4zMS00Ljc3QTExMy4wNSwxMTMuMDUsMCwwLDEsMTczLjkyLDk3Yy0yNS4wNiwxMS40MS00NC41NSwyOS40NS01OC43MSw0NS4zN2gtLjEyYy05LjY3LTEyLjI1LTktNTIuNjUtOC40My02MS4wOC0uMTItLjUzLTcuMjIsMy42OC04LjE1LDQuMzFhMTc4LjU0LDE3OC41NCwwLDAsMC0yMy44NCwyMC40M0EyMTQsMjE0LDAsMCwwLDUxLjksMTMzLjM2bDAsMGEuMDguMDgsMCwwLDEsMCwwLDIwNS44NCwyMDUuODQsMCwwLDAtMzIuNzMsNzMuOWMtLjA2LjI3LTIuMzMsMTAuMjEtNCwyMi40OHEtLjQyLDIuODctLjc4LDUuNzRjLS41NywzLjY5LTEsNy43MS0xLjQ0LDE0LDAsLjI0LDAsLjQ4LS4wNS43Mi0uMTgsMi43MS0uMzQsNS40MS0uNDksOC4xMiwwLC40MSwwLC44MiwwLDEuMjQsMCwxMzQuNywxMDkuMjEsMjQzLjg5LDI0My45MiwyNDMuODksMTIwLjY0LDAsMjIwLjgyLTg3LjU4LDI0MC40My0yMDIuNjIuNDEtMy4xMi43NC02LjI2LDEuMTEtOS40MSw0Ljg1LTQxLjgzLS41NC04NS43OS0xNS44Mi0xMjIuNTVaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVmb3ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjUyLDI0MS40OGMtLjEyLTEuNTYtLjI0LTMuMTItLjI0LTQuNjh2LS4xMmwtLjM2LTQuNjh2LS4xMmEyNDUuODYsMjQ1Ljg2LDAsMCwwLTcuMzItNDEuMTVjMC0uMTIsMC0uMTItLjEyLS4yNGwtMS4wOC00Yy0uMTItLjI0LS4xMi0uNDgtLjI0LS42LS4zNi0xLjItLjcyLTIuNTItMS4wOC0zLjcyLS4xMi0uMjQtLjEyLS42LS4yNC0uODQtLjM2LTEuMi0uNzItMi40LTEuMDgtMy40OC0uMTItLjM2LS4yNC0uNi0uMzYtMS0uMzYtMS4yLS43Mi0yLjI4LTEuMi0zLjQ4bC0uMzYtMS4wOGMtLjM2LTEuMDgtLjg0LTIuMjgtMS4yLTMuMzZhOC4yNyw4LjI3LDAsMCwwLS4zNi0xYy0uNDgtMS4wOC0uODQtMi4yOC0xLjMyLTMuMzYtLjEyLS4yNC0uMjQtLjYtLjM2LS44NC0uNDgtMS4yLTEtMi4yOC0xLjQ0LTMuNDgsMC0uMTItLjEyLS4yNC0uMTItLjM2LTEuNTYtMy44NC0zLjI0LTcuNjgtNS0xMS40bC0uMzYtLjcyYy0uNDgtMS0uODQtMS44LTEuMzItMi42NC0uMjQtLjQ4LS40OC0xLjA4LS43Mi0xLjU2LS4zNi0uODQtLjg0LTEuNTYtMS4yLTIuNC0uMzYtLjYtLjYtMS4yLTEtMS44cy0uODQtMS40NC0xLjItMi4yOGMtLjM2LS42LS43Mi0xLjMyLTEuMDgtMS45MnMtLjg0LTEuNDQtMS4yLTIuMTZhMTguMDcsMTguMDcsMCwwLDAtMS4yLTJjLS4zNi0uNzItLjg0LTEuMzItMS4yLTJzLS44NC0xLjMyLTEuMi0yLS44NC0xLjMyLTEuMi0xLjkyLS44NC0xLjQ0LTEuMzItMi4xNmExNS42MywxNS42MywwLDAsMC0xLjItMS44TDQ2My4yLDExOWExNS42MywxNS42MywwLDAsMC0xLjItMS44Yy0uNDgtLjcyLTEuMDgtMS41Ni0xLjU2LTIuMjgtLjM2LS40OC0uNzItMS4wOC0xLjA4LTEuNTZsLTEuOC0yLjUyYy0uMzYtLjQ4LS42LS44NC0xLTEuMzItMS0xLjMyLTEuOC0yLjUyLTIuNzYtMy43MmEyNDguNzYsMjQ4Ljc2LDAsMCwwLTIzLjUxLTI2LjY0QTE4Ni44MiwxODYuODIsMCwwLDAsNDEyLDYyLjQ2Yy00LTMuNDgtOC4xNi02LjcyLTEyLjQ4LTkuODRhMTYyLjQ5LDE2Mi40OSwwLDAsMC0yNC42LTE1LjEyYy0yLjQtMS4zMi00LjgtMi41Mi03LjItMy43MmEyNTQsMjU0LDAsMCwwLTU1LjQzLTE5LjU2Yy0xLjkyLS4zNi0zLjg0LS44NC01LjY0LTEuMmgtLjEyYy0xLS4xMi0xLjgtLjM2LTIuNzYtLjQ4YTIzNi4zNSwyMzYuMzUsMCwwLDAtMzgtNEgyNTUuMTRhMjM0LjYyLDIzNC42MiwwLDAsMC00NS40OCw1Yy0zMy41OSw3LjA4LTYzLjIzLDIxLjI0LTgyLjkxLDM5LTEuMDgsMS0xLjkyLDEuNjgtMi40LDIuMTZsLS40OC40OEgxMjRsLS4xMi4xMi4xMi0uMTJhLjEyLjEyLDAsMCwwLC4xMi0uMTJsLS4xMi4xMmEuNDIuNDIsMCwwLDEsLjI0LS4xMmMxNC42NC04Ljc2LDM0LjkyLTE2LDQ5LjQ0LTE5LjU2bDUuODgtMS40NGMuMzYtLjEyLjg0LS4xMiwxLjItLjI0LDEuNjgtLjM2LDMuMzYtLjcyLDUuMTYtMS4wOC4yNCwwLC42LS4xMi44NC0uMTJDMjUwLjk0LDIwLjk0LDMxOS4zNCw0MC4xNCwzNjcsODUuNjFhMTcxLjQ5LDE3MS40OSwwLDAsMSwyNi44OCwzMi43NmMzMC4zNiw0OS4yLDI3LjQ4LDExMS4xMSwzLjg0LDE0Ny41OS0zNC40NCw1My0xMTEuMzUsNzEuMjctMTU5LDI0Ljg0YTg0LjE5LDg0LjE5LDAsMCwxLTI1LjU2LTU5LDc0LjA1LDc0LjA1LDAsMCwxLDYuMjQtMzFjMS42OC0zLjg0LDEzLjA4LTI1LjY3LDE4LjI0LTI0LjU5LTEzLjA4LTIuNzYtMzcuNTUsMi42NC01NC43MSwyOC4xOS0xNS4zNiwyMi45Mi0xNC41Miw1OC4yLTUsODMuMjhhMTMyLjg1LDEzMi44NSwwLDAsMS0xMi4xMi0zOS4yNGMtMTIuMjQtODIuNTUsNDMuMzEtMTUzLDk0LjMxLTE3MC41MS0yNy40OC0yNC05Ni40Ny0yMi4zMS0xNDcuNzEsMTUuMzYtMjkuODgsMjItNTEuMjMsNTMuMTYtNjIuNTEsOTAuMzYsMS42OC0yMC44OCw5LjYtNTIuMDgsMjUuOC04My44OC0xNy4xNiw4Ljg4LTM5LDM3LTQ5LjgsNjIuODgtMTUuNiwzNy40My0yMSw4Mi4xOS0xNi4wOCwxMjQuNzkuMzYsMy4yNC43Miw2LjM2LDEuMDgsOS42LDE5LjkyLDExNy4xMSwxMjIsMjA2LjM4LDI0NC43OCwyMDYuMzhDMzkyLjc3LDUwMy40Miw1MDQsMzkyLjE5LDUwNCwyNTUsNTAzLjg4LDI1MC40OCw1MDMuNzYsMjQ1LjkyLDUwMy41MiwyNDEuNDhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0T3JkZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0ODguMjFDMTE1LjM0IDQ5Ni4yMSA3Ljc5IDM4OC42NiA3Ljc5IDI1NlMxMTUuMzQgMTUuNzkgMjQ4IDE1Ljc5IDQ4OC4yMSAxMjMuMzQgNDg4LjIxIDI1NiAzODAuNjYgNDk2LjIxIDI0OCA0OTYuMjF6bTAtNDU5LjkyQzEyNi42NiAzNi4yOSAyOC4yOSAxMzQuNjYgMjguMjkgMjU2UzEyNi42NiA0NzUuNzEgMjQ4IDQ3NS43MSA0NjcuNzEgMzc3LjM0IDQ2Ny43MSAyNTYgMzY5LjM0IDM2LjI5IDI0OCAzNi4yOXptMCA0MzEuMjJjLTExNi44MSAwLTIxMS41MS05NC42OS0yMTEuNTEtMjExLjUxUzEzMS4xOSA0NC40OSAyNDggNDQuNDkgNDU5LjUxIDEzOS4xOSA0NTkuNTEgMjU2IDM2NC44MSA0NjcuNTEgMjQ4IDQ2Ny41MXptMTg2LjIzLTE2Mi45OGExOTEuNjEzIDE5MS42MTMgMCAwIDEtMjAuMTMgNDguNjlsLTc0LjEzLTM1Ljg4IDYxLjQ4IDU0LjgyYTE5My41MTUgMTkzLjUxNSAwIDAgMS0zNy4yIDM3LjI5bC01NC44LTYxLjU3IDM1Ljg4IDc0LjI3YTE5MC45NDQgMTkwLjk0NCAwIDAgMS00OC42MyAyMC4yM2wtMjcuMjktNzguNDcgNC43OSA4Mi45M2MtOC42MSAxLjE4LTE3LjQgMS44LTI2LjMzIDEuOHMtMTcuNzItLjYyLTI2LjMzLTEuOGw0Ljc2LTgyLjQ2LTI3LjE1IDc4LjAzYTE5MS4zNjUgMTkxLjM2NSAwIDAgMS00OC42NS0yMC4ybDM1LjkzLTc0LjM0LTU0Ljg3IDYxLjY0YTE5My44NSAxOTMuODUgMCAwIDEtMzcuMjItMzcuMjhsNjEuNTktNTQuOS03NC4yNiAzNS45M2ExOTEuNjM4IDE5MS42MzggMCAwIDEtMjAuMTQtNDguNjlsNzcuODQtMjcuMTEtODIuMjMgNC43NmMtMS4xNi04LjU3LTEuNzgtMTcuMzItMS43OC0yNi4yMSAwLTkgLjYzLTE3Ljg0IDEuODItMjYuNTFsODIuMzggNC43Ny03Ny45NC0yNy4xNmExOTEuNzI2IDE5MS43MjYgMCAwIDEgMjAuMjMtNDguNjdsNzQuMjIgMzUuOTItNjEuNTItNTQuODZhMTkzLjg1IDE5My44NSAwIDAgMSAzNy4yOC0zNy4yMmw1NC43NiA2MS41My0zNS44My03NC4xN2ExOTEuNDkgMTkxLjQ5IDAgMCAxIDQ4LjY1LTIwLjEzbDI2Ljg3IDc3LjI1LTQuNzEtODEuNjFjOC42MS0xLjE4IDE3LjM5LTEuOCAyNi4zMi0xLjhzMTcuNzEuNjIgMjYuMzIgMS44bC00Ljc0IDgyLjE2IDI3LjA1LTc3Ljc2YzE3LjI3IDQuNSAzMy42IDExLjM1IDQ4LjYzIDIwLjE3bC0zNS44MiA3NC4xMiA1NC43Mi02MS40N2ExOTMuMTMgMTkzLjEzIDAgMCAxIDM3LjI0IDM3LjIzbC02MS40NSA1NC43NyA3NC4xMi0zNS44NmExOTEuNTE1IDE5MS41MTUgMCAwIDEgMjAuMiA0OC42NWwtNzcuODEgMjcuMSA4Mi4yNC00Ljc1YzEuMTkgOC42NiAxLjgyIDE3LjUgMS44MiAyNi40OSAwIDguODgtLjYxIDE3LjYzLTEuNzggMjYuMTlsLTgyLjEyLTQuNzUgNzcuNzIgMjcuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0T3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOSAyMjkuMmMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjRoLS4yek0yMjQgOTYuNmMtNy4xIDAtMTQuNi42LTIxLjQgMS43bDMuNyA2Ny40LTIyLTY0Yy0xNC4zIDMuNy0yNy43IDkuNC00MCAxNi42bDI5LjQgNjEuNC00NS4xLTUwLjljLTExLjQgOC45LTIxLjcgMTkuMS0zMC42IDMwLjlsNTAuNiA0NS40LTYxLjEtMjkuN2MtNy4xIDEyLjMtMTIuOSAyNS43LTE2LjYgNDBsNjQuMyAyMi42LTY4LTRjLS45IDcuMS0xLjQgMTQuNi0xLjQgMjJzLjYgMTQuNiAxLjQgMjEuN2w2Ny43LTQtNjQgMjIuNmMzLjcgMTQuMyA5LjQgMjcuNyAxNi42IDQwLjNsNjEuMS0yOS43TDk3LjcgMzUyYzguOSAxMS43IDE5LjEgMjIuMyAzMC45IDMwLjlsNDQuOS01MC45LTI5LjUgNjEuNGMxMi4zIDcuNCAyNS43IDEzLjEgNDAgMTYuOWwyMi4zLTY0LjYtNCA2OGM3LjEgMS4xIDE0LjYgMS43IDIxLjcgMS43IDcuNCAwIDE0LjYtLjYgMjEuNy0xLjdsLTQtNjguNiAyMi42IDY1LjFjMTQuMy00IDI3LjctOS40IDQwLTE2LjlMMjc0LjkgMzMybDQ0LjkgNTAuOWMxMS43LTguOSAyMi0xOS4xIDMwLjYtMzAuOWwtNTAuNi00NS4xIDYxLjEgMjkuNGM3LjEtMTIuMyAxMi45LTI1LjcgMTYuNi00MC4zbC02NC0yMi4zIDY3LjQgNGMxLjEtNy4xIDEuNC0xNC4zIDEuNC0yMS43cy0uMy0xNC45LTEuNC0yMmwtNjcuNyA0IDY0LTIyLjNjLTMuNy0xNC4zLTkuMS0yOC0xNi42LTQwLjNsLTYwLjkgMjkuNyA1MC42LTQ1LjRjLTguOS0xMS43LTE5LjEtMjItMzAuNi0zMC45bC00NS4xIDUwLjkgMjkuNC02MS4xYy0xMi4zLTcuNC0yNS43LTEzLjEtNDAtMTYuOUwyNDEuNyAxNjZsNC02Ny43Yy03LjEtMS4yLTE0LjMtMS43LTIxLjctMS43ek00NDMuNCAxMjh2MjU2TDIyNCA1MTIgNC42IDM4NFYxMjhMMjI0IDBsMjE5LjQgMTI4em0tMTcuMSAxMC4zTDIyNCAyMC45IDIxLjcgMTM4LjN2MjM1LjFMMjI0IDQ5MS4xbDIwMi4zLTExNy43VjEzOC4zek0yMjQgMzcuMWwxODcuNyAxMDkuNHYyMTguOUwyMjQgNDc0LjkgMzYuMyAzNjUuNFYxNDYuNkwyMjQgMzcuMXptMCA1MC45Yy05Mi4zIDAtMTY2LjkgNzUuMS0xNjYuOSAxNjggMCA5Mi42IDc0LjYgMTY3LjcgMTY2LjkgMTY3LjcgOTIgMCAxNjYuOS03NS4xIDE2Ni45LTE2Ny43IDAtOTIuOS03NC45LTE2OC0xNjYuOS0xNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0ZHJhZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE5MmgtNjR2MTI4SDE5MnYxMjhIMHYtMjUuNmgxNjYuNHYtMTI4aDEyOHYtMTI4SDM4NFYxOTJ6bS0yNS42IDM4LjR2MTI4aC0xMjh2MTI4SDY0VjUxMmgxOTJWMzg0aDEyOFYyMzAuNGgtMjUuNnptMjUuNiAxOTJoLTg5LjZWNTEySDMyMHYtNjRoNjR2LTI1LjZ6TTAgMHYzODRoMTI4VjI1NmgxMjhWMTI4aDEyOFYwSDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsaWNrciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQuNSAzMTljLTM1LjEgMC02My41LTI4LjQtNjMuNS02My41czI4LjQtNjMuNSA2My41LTYzLjUgNjMuNSAyOC40IDYzLjUgNjMuNS0yOC40IDYzLjUtNjMuNSA2My41em0xNTkgMGMtMzUuMSAwLTYzLjUtMjguNC02My41LTYzLjVzMjguNC02My41IDYzLjUtNjMuNSA2My41IDI4LjQgNjMuNSA2My41LTI4LjQgNjMuNS02My41IDYzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMzU4LjQgMTc5LjJoLTg5LjZ2ODkuNmgtODkuNnY4OS42SDg5LjZWMTIxLjZoMjY4Ljh2ODkuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmx5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5Ny44IDQyNy44YzEyLjkgMTEuNyAzMy43IDMzLjMgMzMuMiA1MC43IDAgLjgtLjEgMS42LS4xIDIuNS0xLjggMTkuOC0xOC44IDMxLjEtMzkuMSAzMS0yNS0uMS0zOS45LTE2LjgtMzguNy0zNS44IDEtMTYuMiAyMC41LTM2LjcgMzIuNC00Ny42IDIuMy0yLjEgMi43LTIuNyA1LjYtMy42IDMuNCAwIDMuOS4zIDYuNyAyLjh6TTMzMS45IDY3LjNjLTE2LjMtMjUuNy0zOC42LTQwLjYtNjMuMy01Mi4xQzI0My4xIDQuNSAyMTQtLjIgMTkyIDBjLTQ0LjEgMC03MS4yIDEzLjItODEuMSAxNy4zQzU3LjMgNDUuMiAyNi41IDg3LjIgMjggMTU4LjZjNy4xIDgyLjIgOTcgMTc2IDE1NS44IDIzMy44IDEuNyAxLjYgNC41IDQuNSA2LjIgNS4xbDMuMy4xYzIuMS0uNyAxLjgtLjUgMy41LTIuMSA1Mi4zLTQ5LjIgMTQwLjctMTQ1LjggMTU1LjktMjE1LjcgNy0zOS4yIDMuMS03Mi41LTIwLjgtMTEyLjV6TTE4Ni44IDM1MS45Yy0yOC01MS4xLTY1LjItMTMwLjctNjkuMy0xODktMy40LTQ3LjUgMTEuNC0xMzEuMiA2OS4zLTEzNi43djMyNS43ek0zMjguNyAxODBjLTE2LjQgNTYuOC03Ny4zIDEyOC0xMTguOSAxNzAuM0MyMzcuNiAyOTguNCAyNzUgMjE3IDI3NyAxNTguNGMxLjYtNDUuOS05LjgtMTA1LjgtNDgtMTMxLjQgODguOCAxOC4zIDExNS41IDk4LjEgOTkuNyAxNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnRBd2Vzb21lQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEE0OCA0OCAwIDAgMCAwIDgwVjQzMmE0OCA0OCAwIDAgMCA0OCA0OEg0MDBhNDggNDggMCAwIDAgNDgtNDhWODBBNDggNDggMCAwIDAgNDAwIDMyWm0xNiA0MDBhMTYgMTYgMCAwIDEtMTYgMTZINDhhMTYgMTYgMCAwIDEtMTYtMTZWODBBMTYgMTYgMCAwIDEgNDggNjRINDAwYTE2IDE2IDAgMCAxIDE2IDE2Wk0yMDEuNiAxNTJjLTI1LjQgMC0zNy40IDEwLjQtNTcuNiAxNC40VjE2MGExNiAxNiAwIDAgMC0zMiAwVjM1MmExNiAxNiAwIDAgMCAzMiAwVjE5OC40YzIwLjItNCAzMi4yLTE0LjQgNTcuNi0xNC40IDMxLjQgMCA0My4yIDE2IDc0LjYgMTYgMTAuMiAwIDE3LjgtMS40IDI3LjgtNC42djk2Yy0xMCAzLjItMTcuNiA0LjYtMjcuOCA0LjYtMzEuNCAwLTQzLjQtMTYtNzQuNi0xNmE4NS45IDg1LjkgMCAwIDAtMjUuNiA0djMyYTgwIDgwIDAgMCAxIDI1LjYtNGMzMS40IDAgNDMuMiAxNiA3NC42IDE2IDE4LjYgMCAyOC4yLTQuOCA1OS44LTE2VjE1MmMtMzEuNiAxMS4yLTQxLjIgMTYtNTkuOCAxNkMyNDQuOCAxNjggMjMyLjggMTUyIDIwMS42IDE1MlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9udEF3ZXNvbWVGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0OFYzODRjLTYzIDIzLTgyIDMyLTExOSAzMi02MyAwLTg3LTMyLTE1MC0zMi0yMCAwLTM2IDQtNTEgOFYzMjhjMTUtNCAzMS04IDUxLTggNjMgMCA4NyAzMiAxNTAgMzIgMjAgMCAzNS0zIDU1LTlWMTM1Yy0yMCA2LTM1IDktNTUgOS02MyAwLTg3LTMyLTE1MC0zMi01MSAwLTc1IDIxLTExNSAyOVY0NDhhMzEuNiAzMS42IDAgMCAxLTMyIDMyQTMxLjYgMzEuNiAwIDAgMSAwIDQ0OFY2NEEzMS42IDMxLjYgMCAwIDEgMzIgMzIgMzEuNiAzMS42IDAgMCAxIDY0IDY0Vjc3YzQwLTggNjQtMjkgMTE1LTI5IDYzIDAgODcgMzIgMTUwIDMyQzM2NiA4MCAzODUgNzEgNDQ4IDQ4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250QXdlc29tZUxvZ29GdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzOTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjA5LjcgMTU2LjVjLTU3LjggMC0xMDIgNDMuOS0xMDIgOTkuMSAwIDU2IDQ0LjYgOTkuMSAxMDIgOTkuMSA1Ny40IDAgMTAyLTQzLjEgMTAyLTk5LjFDMTMxMS43IDIwMC40IDEyNjcuNSAxNTYuNSAxMjA5LjcgMTU2LjVabTAgMTUyLjdjLTM1LjEgMC01MS44LTI3LjQtNTEuOC01My4yIDAtMjUuOCAxNi43LTUzLjIgNTEuOC01My4yIDM1LjEgMCA1MS44IDI3LjggNTEuOCA1My4yQzEyNjEuMSAyODEuOCAxMjQ0LjggMzA5LjIgMTIwOS43IDMwOS4yWm05NjIuMS0xMzYuMWMtNC40LTEwLjktMTIuMy0xNi41LTIzLjUtMTYuNXMtMTkuMSA1LjYtMjMuNSAxNi41bC01OS40IDE0NS44Yy03LjIgMTcuNyAyLjggMjcuNCA0LjQgMjlhMjQuNiAyNC42IDAgMCAwIDE3LjUgNi44YzEwLjggMCAxOC43LTYgMjMuMS0xOC4xbDQtMTAuMWg2Ny43bDQgMTAuMWM0LjggMTIuMSAxMi4zIDE4LjEgMjMuMSAxOC4xYTI0LjYgMjQuNiAwIDAgMCAxNy41LTYuOGMxMC0xMC4xIDYuOC0yMi42IDQuNC0yOVptLTQzIDExMy42IDE5LjEtNTYgMTkuMSA1NlptLTU3NC41LTEzMC4xYy0xNC4zIDAtMjQuNyAxMC45LTI0LjcgMjUuNHY3Ni41bC02OC41LTg1LjhjLTQuNC01LjYtMTEuNi0xNi4xLTI1LjUtMTYuMS0xOS4xIDAtMjQuMyAxNy43LTI0LjMgMjUuNFYzMjkuN2MwIDE0LjEgMTAuNCAyNS40IDI0LjcgMjUuNCAxNC4zIDAgMjQuNy0xMC45IDI0LjctMjUuNFYyNTIuOGw2OC45IDg2LjJjNC44IDUuNiAxMS42IDE2LjEgMjUuNSAxNi4xIDE5LjEgMCAyMy45LTE3LjMgMjMuOS0yNS40VjE4MS45QzE1NzkgMTY3LjQgMTU2OC42IDE1Ni41IDE1NTQuMyAxNTYuNVptLTU1NC4xIDEuNkg5MTYuNWMtMTkuOSAwLTI1LjEgMTcuMy0yNS4xIDI1LjRWMzI4LjFjMCAxOS43IDE2LjcgMjUuNCAyNC43IDI1LjQgOCAwIDI0LjctNS4yIDI0LjctMjUuNFYyODVoNDQuNmMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS41LTIyLjEtMjIuNy0yMi4xSDk0MC44VjIwMy42aDU5LjRjMTIuOCAwIDIyLjctOS4zIDIyLjctMjIuNkMxMDIyLjkgMTYzIDEwMDcuMyAxNTguMSAxMDAwLjIgMTU4LjFabTgxNS4xIDBIMTY5MS43Yy03LjIgMC0yMi43IDQuNC0yMi43IDIyLjIgMCAxMy4zIDEwIDIyLjYgMjIuNyAyMi42aDM3VjMyNy43YzAgMTQuMSAxMC40IDI1LjQgMjQuNyAyNS40IDE0LjMgMCAyNC43LTEwLjkgMjQuNy0yNS40VjIwMi44aDM3YzEyLjcgMCAyMi43LTkuMyAyMi43LTIyLjZDMTgzNy45IDE2MyAxODIyLjQgMTU4LjEgMTgxNS4yIDE1OC4xWm0xNzg5LjUtMS42Yy05LjYgMC0xNy41IDYtMjUuMSAxOC4xbC00Ni42IDc2LjFMMzQ4Ni40IDE3NC42cS0xMC44LTE4LjEtMjUuMS0xOC4xYy0xOS41IDAtMjQuNyAxOC4xLTI0LjcgMjUuOFYzMjkuN2MwIDE0LjEgMTAuNCAyNS40IDI0LjcgMjUuNHMyNC43LTEwLjkgMjQuNy0yNS40VjI2Mi44TDM1MTAuNyAzMDIuN2M2LjQgMTAuMSAxMy45IDE1LjMgMjIuMyAxNS4zIDguOCAwIDE1LjktNS4yIDIyLjMtMTUuM2wyNC43LTM5Ljl2NjYuOWMwIDE0LjEgMTAuMyAyNS40IDI0LjcgMjUuNCAxNC4zIDAgMjQuNy0xMC45IDI0LjctMjUuNFYxODIuM0MzNjI5LjQgMTc0LjIgMzYyNC42IDE1Ni41IDM2MDQuNyAxNTYuNVptMjQ4LjYgMTQ5LjhoLTY1LjdWMjcyLjloMzkuNGMxMS45IDAgMjEuMS04LjkgMjEuMS0yMC45IDAtMTIuMS05LjItMjAuOS0yMS4xLTIwLjloLTM5LjRWMjA0LjhoNjIuMWMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS42LTIyLjItMjIuNy0yMi4yaC04Ni40Yy0xOS45IDAtMjUuMSAxNy4zLTI1LjEgMjUuNFYzMjYuNWMwIDguMSA1LjIgMjUuNCAyNS4xIDI1LjRoOTBjMTIuOCAwIDIyLjctOS4zIDIyLjctMjIuNkMzODc2IDMxMS4yIDM4NjAuNSAzMDYuMyAzODUzLjMgMzA2LjNaTTMyMzUgMTU2LjVjLTU3LjggMC0xMDIgNDMuOS0xMDIgOTkuMSAwIDU2IDQ0LjYgOTkuMSAxMDIgOTkuMSA1Ny40IDAgMTAyLTQzLjEgMTAyLTk5LjFDMzMzNyAyMDAuNCAzMjkyLjggMTU2LjUgMzIzNSAxNTYuNVptMCAxNTIuN2MtMzUuMSAwLTUxLjgtMjcuNC01MS44LTUzLjIgMC0yNS44IDE2LjctNTMuMiA1MS44LTUzLjIgMzUuMSAwIDUxLjggMjcuOCA1MS44IDUzLjJDMzI4Ni44IDI4MS44IDMyNzAuMSAzMDkuMiAzMjM1IDMwOS4yWk0yNTUwLjIgMTU2LjVjLTExLjIgMC0xOS4xIDUuNi0yMy4xIDE2LjVsLTM0LjMgOTQuNy0zMS41LTkyLjJjLTQuNC0xMi41LTEyLjMtMTguOS0yNC4zLTE4LjktMTEuOSAwLTE5LjkgNi40LTI0LjMgMTguOWwtMzEuNSA5Mi4yLTM0LjMtOTUuNXEtNS40LTE1LjctMjIuNy0xNS43Yy02LjggMC0xMi4zIDIuNC0xNy41IDcuMy01LjIgNS4yLTEwLjggMTQuNS00LjggMjguNmw1NS44IDE0NS44YzQgMTEuMyAxMS42IDE2LjkgMjMuMSAxNi45cTE2LjcgMCAyMi43LTE2LjlsMzMuNS05MS44IDMzLjUgOTEuOHE2IDE2LjkgMjIuNyAxNi45YzExLjIgMCAxOS4xLTUuNiAyMy4xLTE2LjlsNTUuOC0xNDUuOGMzLjYtOS4zIDQuNC0xOS4zLTQuOC0yOC42QTIzIDIzIDAgMCAwIDI1NTAuMiAxNTYuNVptNDQ0LjIgODEtMjEuOS05LjNjLTExLjktNC44LTE2LjMtOC41LTE2LjMtMTUuN3EwLTEyLjEgMTYuNy0xMi4xYzEyLjcgMCAxOS41IDcuNyAyNC4zIDEwLjkgNy4yIDUuMiAxOC4zIDYuOCAyNy45LTIgMTAuOC0xMC41IDYuOC0yMy44IDEuMi0zMC42LTEyLjMtMTQuOS0zMC4zLTIyLjItNTMuOC0yMi4yLTE5LjEgMC0zNS4xIDUuMi00Ny40IDE1LjctMTIuMyAxMC41LTE4LjcgMjQuMi0xOC43IDQxLjEgMCAyNC4yIDE1LjkgNDMuNSA0Ny44IDU3LjZsMTkuNSA4LjljMTUuOSA2LjggMTkuMSA5LjcgMTkuMSAxNy43IDAgOS4zLTYuNCAxNC4xLTE5LjUgMTQuMS0xOS4xIDAtMzQuNy0xNC45LTM2LjMtMTYuMS0xMC44LTcuMy0yMS41LTItMjYuMyAyLjgtNi44IDYuNC0xMi43IDIwLjkgMy4yIDM2LjIgNi44IDYuNCAxNS41IDExLjcgMjYuNyAxNS4zYTk0LjYgOTQuNiAwIDAgMCAzMi43IDUuNmMxOS45IDAgMzYuNy01LjIgNDkuOC0xNi4xIDEzLjEtMTAuOSAxOS41LTI1LjQgMTkuNS00My41cTAtMjAuNS0xMi0zMy44QzMwMjIuNyAyNTMuMiAzMDEwLjcgMjQ0LjMgMjk5NC40IDIzNy41Wm0tMjA2LjQgNjguOWgtNjUuN1YyNzIuOWgzOS40YzEyIDAgMjEuMS04LjkgMjEuMS0yMC45IDAtMTIuMS05LjItMjAuOS0yMS4xLTIwLjloLTM5LjRWMjA0LjhoNjIuMWMxMi44IDAgMjIuNy05LjMgMjIuNy0yMi42IDAtMTcuNy0xNS41LTIyLjItMjIuNy0yMi4yaC04Ni40Yy0xOS45IDAtMjUuMSAxNy4zLTI1LjEgMjUuNFYzMjYuNWMwIDguMSA1LjIgMjUuNCAyNS4xIDI1LjRoOTBjMTIuNyAwIDIyLjctOS4zIDIyLjctMjIuNkMyODEwLjggMzExLjIgMjc5NS4yIDMwNi4zIDI3ODggMzA2LjNaTTE3OC4zIDQ5LjFjLTUwLjUgMC03NC40IDIwLjctMTE0LjYgMjguN1Y2NUEzMS44IDMxLjggMCAxIDAgMCA2NVY0NDdhMzEuOCAzMS44IDAgMCAwIDYzLjcgMFYxNDEuNGM0MC4yLTggNjQuMS0yOC43IDExNC42LTI4LjcgNjIuNSAwIDg2IDMxLjggMTQ4LjQgMzEuOCAyMC4zIDAgMzUuNC0yLjggNTUuMy05LjJ2MTkxYy0xOS45IDYuNC0zNSA5LjItNTUuMyA5LjItNjIuNSAwLTg2LjQtMzEuOC0xNDguNC0zMS44LTIwLjMgMC0zNi4yIDMuNi01MC45IDhWMzc1LjRhMTU5LjEgMTU5LjEgMCAwIDEgNTAuOS04YzYyLjUgMCA4NiAzMS44IDE0OC40IDMxLjggMzcgMCA1Ni4xLTkuNiAxMTktMzEuOFY0OS4xQzM4Mi44IDcxLjQgMzYzLjcgODAuOSAzMjYuNyA4MC45IDI2NC4yIDgwLjkgMjQwLjQgNDkuMSAxNzguMyA0OS4xWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250QXdlc29tZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhBNDggNDggMCAwIDAgMCA4MFY0MzJhNDggNDggMCAwIDAgNDggNDhINDAwYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjgwQTQ4IDQ4IDAgMCAwIDQwMCAzMlpNMzM2IDMxMmMtMzEuNiAxMS4yLTQxLjIgMTYtNTkuOCAxNi0zMS40IDAtNDMuMi0xNi03NC42LTE2YTgwIDgwIDAgMCAwLTI1LjYgNFYyODRhODUuOSA4NS45IDAgMCAxIDI1LjYtNGMzMS4yIDAgNDMuMiAxNiA3NC42IDE2IDEwLjIgMCAxNy44LTEuNCAyNy44LTQuNnYtOTZjLTEwIDMuMi0xNy42IDQuNi0yNy44IDQuNi0zMS40IDAtNDMuMi0xNi03NC42LTE2LTI1LjQgMC0zNy40IDEwLjQtNTcuNiAxNC40VjM1MmExNiAxNiAwIDAgMS0zMiAwVjE2MGExNiAxNiAwIDAgMSAzMiAwdjYuNGMyMC4yLTQgMzIuMi0xNC40IDU3LjYtMTQuNCAzMS4yIDAgNDMuMiAxNiA3NC42IDE2IDE4LjYgMCAyOC4yLTQuOCA1OS44LTE2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250aWNvbnNGaSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQuNCAyMjRoOTIuNGwtMTUuMiA1MS4yaC03Ni40VjQzM2MwIDgtMi44IDkuMiA0LjQgMTBsNTkuNiA1LjZWNDgzSDB2LTM1LjJsMjkuMi0yLjhjNy4yLS44IDkuMi0zLjIgOS4yLTEwLjhWMjc4LjRjMC0zLjItNC0zLjItOC0zLjJIMFYyMjRoMzguNHYtMjguOGMwLTY4IDM2LjQtOTYgMTA2LTk2IDQ2LjggMCA4OC44IDExLjIgODguOCA3Mi40bC02OS42IDguNGMuNC0yNS42LTYtMzEuNi0yMi40LTMxLjYtMjUuMiAwLTI2IDEzLjYtMjYgMzcuNnYzMmMwIDMuMi00LjggNi0uOCA2ek0zODQgNDgzSDI0My4ydi0zNC40bDI4LTMuNmM3LjItLjggMTAuNC0yLjQgMTAuNC0xMFYyODdjMC01LjYtNC05LjItOS4yLTEwLjhsLTMzLjItOC44IDkuMi00MC40aDExMHYyMDhjMCA4LTMuNiA4LjggNCAxMGwyMS42IDMuNlY0ODN6bS0zMC0zNDcuMmwxMi40IDQ1LjYtMTAgMTAtNDIuOC0yMi44LTQyLjggMjIuOC0xMC0xMCAxMi40LTQ1LjYtMzAtMzYuNCA0LjgtMTBoMzhMMzA3LjIgNTFIMzIwbDIxLjIgMzguNGgzOGw0LjggMTMuMi0zMCAzMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb250aWNvbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMyem0xODcgMTQwLjljLTE4LjQgMC0xOSA5LjktMTkgMjcuNHYyMy4zYzAgMi40LTMuNSA0LjQtLjYgNC40aDY3LjRsLTExLjEgMzcuM0gxNjh2MTEyLjljMCA1LjgtMiA2LjcgMy4yIDcuM2w0My41IDQuMXYyNS4xSDg0VjM4OWwyMS4zLTJjNS4yLS42IDYuNy0yLjMgNi43LTcuOVYyNjcuN2MwLTIuMy0yLjktMi4zLTUuOC0yLjNIODRWMjI4aDI4di0yMWMwLTQ5LjYgMjYuNS03MCA3Ny4zLTcwIDM0LjEgMCA2NC43IDguMiA2NC43IDUyLjhsLTUwLjcgNi4xYy4zLTE4LjctNC40LTIzLTE2LjMtMjN6bTc0LjMgMjQxLjh2LTI1LjFsMjAuNC0yLjZjNS4yLS42IDcuNi0xLjcgNy42LTcuM1YyNzEuOGMwLTQuMS0yLjktNi43LTYuNy03LjlsLTI0LjItNi40IDYuNy0yOS41aDgwLjJ2MTUxLjdjMCA1LjgtMi42IDYuNCAyLjkgNy4zbDE1LjcgMi42djI1LjF6bTgwLjgtMjU1LjVsOSAzMy4yLTcuMyA3LjMtMzEuMi0xNi42LTMxLjIgMTYuNi03LjMtNy4zIDktMzMuMi0yMS44LTI0LjIgMy41LTkuNmgyNy43bDE1LjUtMjhoOS4zbDE1LjUgMjhoMjcuN2wzLjUgOS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J0QXdlc29tZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMjM3LjRoLTIyLjJjLTIuMSAwLTMuNyAxLjYtMy43IDMuN3Y1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN0gyMDhjMi4xIDAgMy43LTEuNiAzLjctMy43di01MS43YzAtMi4xLTEuNi0zLjctMy43LTMuN3ptMTE4LjIgMEgzMDRjLTIuMSAwLTMuNyAxLjYtMy43IDMuN3Y1MS43YzAgMi4xIDEuNiAzLjcgMy43IDMuN2gyMi4yYzIuMSAwIDMuNy0xLjYgMy43LTMuN3YtNTEuN2MtLjEtMi4xLTEuNy0zLjctMy43LTMuN3ptMTMyLTEyNS4xYy0yLjMtMy4yLTQuNi02LjQtNy4xLTkuNS05LjgtMTIuNS0yMC44LTI0LTMyLjgtMzQuNC00LjUtMy45LTkuMS03LjYtMTMuOS0xMS4yLTEuNi0xLjItMy4yLTIuMy00LjgtMy41QzM3MiAzNC4xIDM0MC4zIDIwIDMwNiAxM2MtMTYuMi0zLjMtMzIuOS01LTUwLTVzLTMzLjkgMS43LTUwIDVjLTM0LjMgNy4xLTY2IDIxLjItOTMuMyA0MC44LTEuNiAxLjEtMy4yIDIuMy00LjggMy41LTQuOCAzLjYtOS40IDcuMy0xMy45IDExLjItMyAyLjYtNS45IDUuMy04LjggOHMtNS43IDUuNS04LjQgOC40Yy01LjUgNS43LTEwLjcgMTEuOC0xNS42IDE4LTIuNCAzLjEtNC44IDYuMy03LjEgOS41QzI1LjIgMTUzIDguMyAyMDIuNSA4LjMgMjU2YzAgMiAuMSA0IC4xIDYgLjEuNy4xIDEuMy4xIDIgLjEgMS4zLjEgMi43LjIgNCAwIC44LjEgMS41LjEgMi4zIDAgMS4zLjEgMi41LjIgMy43LjEuOC4xIDEuNi4yIDIuNC4xIDEuMS4yIDIuMy4zIDMuNSAwIC44LjEgMS42LjIgMi40LjEgMS4yLjMgMi40LjQgMy42LjEuOC4yIDEuNS4zIDIuMy4xIDEuMy4zIDIuNi41IDMuOS4xLjYuMiAxLjMuMyAxLjlsLjkgNS43Yy4xLjYuMiAxLjEuMyAxLjcuMyAxLjMuNSAyLjcuOCA0IC4yLjguMyAxLjYuNSAyLjQuMiAxIC41IDIuMS43IDMuMi4yLjkuNCAxLjcuNiAyLjYuMiAxIC40IDIgLjcgMyAuMi45LjUgMS44LjcgMi43LjMgMSAuNSAxLjkuOCAyLjkuMy45LjUgMS44LjggMi43LjIuOS41IDEuOS44IDIuOHMuNSAxLjguOCAyLjdjLjMgMSAuNiAxLjkuOSAyLjguNiAxLjYgMS4xIDMuMyAxLjcgNC45LjQgMSAuNyAxLjkgMSAyLjguMyAxIC43IDIgMS4xIDMgLjMuOC42IDEuNS45IDIuM2wxLjIgM2MuMy43LjYgMS41LjkgMi4yLjQgMSAuOSAyIDEuMyAzbC45IDIuMWMuNSAxIC45IDIgMS40IDMgLjMuNy42IDEuMy45IDIgLjUgMSAxIDIuMSAxLjUgMy4xLjIuNi41IDEuMS44IDEuNy42IDEuMSAxLjEgMi4yIDEuNyAzLjMuMS4yLjIuMy4zLjUgMi4yIDQuMSA0LjQgOC4yIDYuOCAxMi4yLjIuNC41LjguNyAxLjIuNyAxLjEgMS4zIDIuMiAyIDMuMy4zLjUuNi45LjkgMS40LjYgMS4xIDEuMyAyLjEgMiAzLjIuMy41LjYuOS45IDEuNC43IDEuMSAxLjQgMi4xIDIuMSAzLjIuMi40LjUuOC44IDEuMi43IDEuMSAxLjUgMi4yIDIuMyAzLjMuMi4yLjMuNS41LjcgMzcuNSA1MS43IDk0LjQgODguNSAxNjAgOTkuNC45LjEgMS43LjMgMi42LjQgMSAuMiAyLjEuNCAzLjEuNXMxLjkuMyAyLjguNGMxIC4yIDIgLjMgMyAuNC45LjEgMS45LjIgMi45LjNzMS45LjIgMi45LjMgMi4xLjIgMy4xLjNjLjkuMSAxLjguMSAyLjcuMiAxLjEuMSAyLjMuMSAzLjQuMi44IDAgMS43LjEgMi41LjEgMS4zIDAgMi42LjEgMy45LjEuNy4xIDEuNC4xIDIuMS4xIDIgLjEgNCAuMSA2IC4xczQtLjEgNi0uMWMuNyAwIDEuNC0uMSAyLjEtLjEgMS4zIDAgMi42IDAgMy45LS4xLjggMCAxLjctLjEgMi41LS4xIDEuMS0uMSAyLjMtLjEgMy40LS4yLjkgMCAxLjgtLjEgMi43LS4yIDEtLjEgMi4xLS4yIDMuMS0uM3MxLjktLjIgMi45LS4zYy45LS4xIDEuOS0uMiAyLjktLjNzMi0uMyAzLS40IDEuOS0uMyAyLjgtLjRjMS0uMiAyLjEtLjMgMy4xLS41LjktLjEgMS43LS4zIDIuNi0uNCA2NS42LTExIDEyMi41LTQ3LjcgMTYwLjEtMTAyLjQuMi0uMi4zLS41LjUtLjcuOC0xLjEgMS41LTIuMiAyLjMtMy4zLjItLjQuNS0uOC44LTEuMi43LTEuMSAxLjQtMi4xIDIuMS0zLjIuMy0uNS42LS45LjktMS40LjYtMS4xIDEuMy0yLjEgMi0zLjIuMy0uNS42LS45LjktMS40LjctMS4xIDEuMy0yLjIgMi0zLjMuMi0uNC41LS44LjctMS4yIDIuNC00IDQuNi04LjEgNi44LTEyLjIuMS0uMi4yLS4zLjMtLjUuNi0xLjEgMS4xLTIuMiAxLjctMy4zLjItLjYuNS0xLjEuOC0xLjcuNS0xIDEtMi4xIDEuNS0zLjEuMy0uNy42LTEuMy45LTIgLjUtMSAxLTIgMS40LTNsLjktMi4xYy41LTEgLjktMiAxLjMtMyAuMy0uNy42LTEuNS45LTIuMmwxLjItM2MuMy0uOC42LTEuNS45LTIuMy40LTEgLjctMiAxLjEtM3MuNy0xLjkgMS0yLjhjLjYtMS42IDEuMi0zLjMgMS43LTQuOS4zLTEgLjYtMS45LjktMi44cy41LTEuOC44LTIuN2MuMi0uOS41LTEuOS44LTIuOHMuNi0xLjguOC0yLjdjLjMtMSAuNS0xLjkuOC0yLjkuMi0uOS41LTEuOC43LTIuNy4yLTEgLjUtMiAuNy0zIC4yLS45LjQtMS43LjYtMi42LjItMSAuNS0yLjEuNy0zLjIuMi0uOC4zLTEuNi41LTIuNC4zLTEuMy42LTIuNy44LTQgLjEtLjYuMi0xLjEuMy0xLjdsLjktNS43Yy4xLS42LjItMS4zLjMtMS45LjEtMS4zLjMtMi42LjUtMy45LjEtLjguMi0xLjUuMy0yLjMuMS0xLjIuMy0yLjQuNC0zLjYgMC0uOC4xLTEuNi4yLTIuNC4xLTEuMS4yLTIuMy4zLTMuNS4xLS44LjEtMS42LjItMi40LjEgMS43LjEuNS4yLS43IDAtLjguMS0xLjUuMS0yLjMuMS0xLjMuMi0yLjcuMi00IC4xLS43LjEtMS4zLjEtMiAuMS0yIC4xLTQgLjEtNiAwLTUzLjUtMTYuOS0xMDMtNDUuOC0xNDMuN3pNNDQ4IDM3MS41Yy05LjQgMTUuNS0yMC42IDI5LjktMzMuNiA0Mi45LTIwLjYgMjAuNi00NC41IDM2LjctNzEuMiA0OC0xMy45IDUuOC0yOC4yIDEwLjMtNDIuOSAxMy4ydi03NS44YzAtNTguNi04OC42LTU4LjYtODguNiAwdjc1LjhjLTE0LjctMi45LTI5LTcuMy00Mi45LTEzLjItMjYuNy0xMS4zLTUwLjYtMjcuNC03MS4yLTQ4LTEzLTEzLTI0LjItMjcuNC0zMy42LTQyLjl2LTcxLjNjMC0yLjEgMS42LTMuNyAzLjctMy43aDIyLjFjMi4xIDAgMy43IDEuNiAzLjcgMy43VjMyNmgyOS42VjE4MmMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMWMyLjEgMCAzLjcgMS42IDMuNyAzLjd2MjUuOWgyOS41VjE4MmMwLTIuMSAxLjYtMy43IDMuNy0zLjdIMjA4YzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtNC44IDYuNS0zLjcgOS41LTMuN1Y4OC4xYy00LjQtMi03LjQtNi43LTcuNC0xMS41IDAtMTYuOCAyNS40LTE2LjggMjUuNCAwIDAgNC44LTMgOS40LTcuNCAxMS41VjkyYzYuMy0xLjQgMTIuNy0yLjMgMTkuMi0yLjMgOS40IDAgMTguNCAzLjUgMjYuMyAzLjUgNy4yIDAgMTUuMi0zLjUgMTkuNC0zLjUgMi4xIDAgMy43IDEuNiAzLjcgMy43djQ4LjRjMCA1LjYtMTguNyA2LjUtMjIuNCA2LjUtOC42IDAtMTYuNi0zLjUtMjUuNC0zLjUtNyAwLTE0LjEgMS4yLTIwLjggMi44djMwLjdjMyAwIDkuNS0xLjEgOS41IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4yYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YyNS45aDI5LjVWMTgyYzAtMi4xIDEuNi0zLjcgMy43LTMuN2gyMi4xYzIuMSAwIDMuNyAxLjYgMy43IDMuN3YxNDRoMjkuNXYtMjUuOGMwLTIuMSAxLjYtMy43IDMuNy0zLjdoMjIuMmMyLjEgMCAzLjcgMS42IDMuNyAzLjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnRBd2Vzb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OS4yIDI4Ny45aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMyaC0zNi42VjE0Ni4yYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZ2LTMyYzAtMi42LTItNC42LTQuNi00LjZoLTI3LjRjLTIuNiAwLTQuNiAyLTQuNiA0LjZ2MzJoLTM2LjZ2LTMyYzAtNi04LTQuNi0xMS43LTQuNnYtMzhjOC4zLTIgMTcuMS0zLjQgMjUuNy0zLjQgMTAuOSAwIDIwLjkgNC4zIDMxLjQgNC4zIDQuNiAwIDI3LjctMS4xIDI3LjctOHYtNjBjMC0yLjYtMi00LjYtNC42LTQuNi01LjEgMC0xNS4xIDQuMy0yNCA0LjMtOS43IDAtMjAuOS00LjMtMzIuNi00LjMtOCAwLTE2IDEuMS0yMy43IDIuOXYtNC45YzUuNC0yLjYgOS4xLTguMyA5LjEtMTQuMyAwLTIwLjctMzEuNC0yMC44LTMxLjQgMCAwIDYgMy43IDExLjcgOS4xIDE0LjN2MTExLjdjLTMuNyAwLTExLjctMS40LTExLjcgNC42djMyaC0zNi42di0zMmMwLTIuNi0yLTQuNi00LjYtNC42aC0yNy40Yy0yLjYgMC00LjYgMi00LjYgNC42djMySDEyOHYtMzJjMC0yLjYtMi00LjYtNC42LTQuNkg5NmMtMi42IDAtNC42IDItNC42IDQuNnYxNzguM0g1NC44di0zMmMwLTIuNi0yLTQuNi00LjYtNC42SDIyLjhjLTIuNiAwLTQuNiAyLTQuNiA0LjZWNTEyaDE4Mi45di05NmMwLTcyLjYgMTA5LjctNzIuNiAxMDkuNyAwdjk2aDE4Mi45VjI5Mi41Yy4xLTIuNi0xLjktNC42LTQuNS00LjZ6bS0yODguMS00LjVjMCAyLjYtMiA0LjYtNC42IDQuNmgtMjcuNGMtMi42IDAtNC42LTItNC42LTQuNnYtNjRjMC0yLjYgMi00LjYgNC42LTQuNmgyNy40YzIuNiAwIDQuNiAyIDQuNiA0LjZ2NjR6bTE0Ni40IDBjMCAyLjYtMiA0LjYtNC42IDQuNmgtMjcuNGMtMi42IDAtNC42LTItNC42LTQuNnYtNjRjMC0yLjYgMi00LjYgNC42LTQuNmgyNy40YzIuNiAwIDQuNiAyIDQuNiA0LjZ2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvcnVtYmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUuOCAzMDkuN0MyIDI5Mi43IDAgMjc1LjUgMCAyNTguMyAwIDEzNSA5OS44IDM1IDIyMy4xIDM1YzE2LjYgMCAzMy4zIDIgNDkuMyA1LjVDMTQ5IDg3LjUgNTEuOSAxODYgNS44IDMwOS43em0zOTIuOS0xODkuMkMzODUgMTAzIDM2OSA4Ny44IDM1MC45IDc1LjJjLTE0OS42IDQ0LjMtMjY2LjMgMTYyLjEtMzA5LjcgMzEyIDEyLjUgMTguMSAyOCAzNS42IDQ1LjIgNDkgNDMuMS0xNTEuMyAxNjEuMi0yNzEuNyAzMTIuMy0zMTUuN3ptMTUuOCAyNTIuN2MxNS4yLTI1LjEgMjUuNC01My43IDI5LjUtODIuOC03OS40IDQyLjktMTQ1IDExMC42LTE4Ny42IDE5MC4zIDMwLTQuNCA1OC45LTE1LjMgODQuNi0zMS4zIDM1IDEzLjEgNzAuOSAyNC4zIDEwNyAzMy42LTkuMy0zNi41LTIwLjQtNzQuNS0zMy41LTEwOS44em0yOS43LTE0NS41Yy0yLjYtMTkuNS03LjktMzguNy0xNS44LTU2LjhDMjkwLjUgMjE2LjcgMTgyIDMyNy41IDEzNy4xIDQ2NmMxOC4xIDcuNiAzNyAxMi41IDU2LjYgMTUuMkMyNDAgMzY3LjEgMzMwLjUgMjc0LjQgNDQ0LjIgMjI3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvdXJzcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM2OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzLjEgM0g0OS45QzEyLjQgMyAwIDMxLjMgMCA0OS4xdjQzMy44YzAgMjAuMyAxMi4xIDI3LjcgMTguMiAzMC4xIDYuMiAyLjUgMjIuOCA0LjYgMzIuOS03LjFDMTgwIDM1Ni41IDE4Mi4yIDM1NCAxODIuMiAzNTRjMy4xLTMuNCAzLjQtMy4xIDYuOC0zLjFoODMuNGMzNS4xIDAgNDAuNi0yNS4yIDQ0LjMtMzkuN2w0OC42LTI0M0MzNzMuOCAyNS44IDM2My4xIDMgMzIzLjEgM3ptLTE2LjMgNzMuOGwtMTEuNCA1OS43Yy0xLjIgNi41LTkuNSAxMy4yLTE2LjkgMTMuMkgxNzIuMWMtMTIgMC0yMC42IDguMy0yMC42IDIwLjN2MTNjMCAxMiA4LjYgMjAuNiAyMC42IDIwLjZoOTAuNGM4LjMgMCAxNi42IDkuMiAxNC44IDE4LjItMS44IDguOS0xMC41IDUzLjgtMTEuNCA1OC44LS45IDQuOS02LjggMTMuNS0xNi45IDEzLjVoLTczLjVjLTEzLjUgMC0xNy4yIDEuOC0yNi41IDEyLjYgMCAwLTguOSAxMS40LTg5LjUgMTA4LjMtLjkuOS0xLjguNi0xLjgtLjNWNzUuOWMwLTcuNyA2LjgtMTYuNiAxNi42LTE2LjZoMjE5YzguMiAwIDE1LjYgNy43IDEzLjUgMTcuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJlZUNvZGVDYW1wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk3LjIyLDk2LjIxYzEwLjM2LTEwLjY1LDE2LTE3LjEyLDE2LTIxLjksMC0yLjc2LTEuOTItNS41MS0zLjgzLTcuNDJBMTQuODEsMTQuODEsMCwwLDAsMTAxLDY0LjA1Yy04LjQ4LDAtMjAuOTIsOC43OS0zNS44NCwyNS42OUMyMy42OCwxMzcsMi41MSwxODIuODEsMy4zNywyNTAuMzRzMTcuNDcsMTE3LDU0LjA2LDE2MS44N0M3Ni4yMiw0MzUuODYsOTAuNjIsNDQ4LDEwMC45LDQ0OGExMy41NSwxMy41NSwwLDAsMCw4LjM3LTMuODRjMS45MS0yLjc2LDMuODEtNS42MywzLjgxLTguMzgsMC01LjYzLTMuODYtMTIuMi0xMy4yLTIwLjU1LTQ0LjQ1LTQyLjMzLTY3LjMyLTk3LTY3LjQ4LTE2NUMzMi4yNSwxODguOCw1NCwxMzcuODMsOTcuMjIsOTYuMjFaTTIzOS40Nyw0MjAuMDdjLjU4LjM3LjkxLjU1LjkxLjU1Wm05My43OS41NS4xNy0uMTNDMzMzLjI0LDQyMC42MiwzMzMuMTcsNDIwLjY3LDMzMy4yNiw0MjAuNjJabTMuMTMtMTU4LjE4Yy0xNi4yNC00LjE1LDUwLjQxLTgyLjg5LTY4LjA1LTE3Ny4xNywwLDAsMTUuNTQsNDkuMzgtNjIuODMsMTU5LjU3LTc0LjI3LDEwNC4zNSwyMy40NiwxNjguNzMsMzQsMTc1LjIzLTYuNzMtNC4zNS00Ny40LTM1LjcsOS41NS0xMjguNjQsMTEtMTguMywyNS41My0zNC44Nyw0My41LTcyLjE2LDAsMCwxNS45MSwyMi40NSw3LjYsNzEuMTNDMjg3LjcsMzY0LDM1NCwzNDIuOTEsMzU1LDM0My45NGMyMi43NSwyNi43OC0xNy43Miw3My41MS0yMS41OCw3Ni41NSw1LjQ5LTMuNjUsMTE3LjcxLTc4LDMzLTE4OC4xQzM2MC40MywyMzguNCwzNTIuNjIsMjY2LjU5LDMzNi4zOSwyNjIuNDRaTTUxMC44OCw4OS42OUM0OTYsNzIuNzksNDgzLjUyLDY0LDQ3NSw2NGExNC44MSwxNC44MSwwLDAsMC04LjM5LDIuODRjLTEuOTEsMS45MS0zLjgzLDQuNjYtMy44Myw3LjQyLDAsNC43OCw1LjYsMTEuMjYsMTYsMjEuOSw0My4yMyw0MS42MSw2NSw5Mi41OSw2NC44MiwxNTQuMDYtLjE2LDY4LTIzLDEyMi42My02Ny40OCwxNjUtOS4zNCw4LjM1LTEzLjE4LDE0LjkyLTEzLjIsMjAuNTUsMCwyLjc1LDEuOSw1LjYyLDMuODEsOC4zOEExMy42MSwxMy42MSwwLDAsMCw0NzUuMSw0NDhjMTAuMjgsMCwyNC42OC0xMi4xMyw0My40Ny0zNS43OSwzNi41OS00NC44NSw1My4xNC05NC4zOCw1NC4wNi0xNjEuODdTNTUyLjMyLDEzNyw1MTAuODgsODkuNjlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZyZWVic2QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzAzLjcgOTYuMmMxMS4xLTExLjEgMTE1LjUtNzcgMTM5LjItNTMuMiAyMy43IDIzLjctNDIuMSAxMjguMS01My4yIDEzOS4yLTExLjEgMTEuMS0zOS40LjktNjMuMS0yMi45LTIzLjgtMjMuNy0zNC4xLTUyLTIyLjktNjMuMXpNMTA5LjkgNjguMUM3My42IDQ3LjUgMjIgMjQuNiA1LjYgNDEuMWMtMTYuNiAxNi42IDcuMSA2OS40IDI3LjkgMTA1LjcgMTguNS0zMi4yIDQ0LjgtNTkuMyA3Ni40LTc4Ljd6TTQwNi43IDE3NGMzLjMgMTEuMyAyLjcgMjAuNy0yLjcgMjYuMS0yMC4zIDIwLjMtODcuNS0yNy0xMDkuMy03MC4xLTE4LTMyLjMtMTEuMS01My40IDE0LjktNDguNyA1LjctMy42IDEyLjMtNy42IDE5LjYtMTEuNi0yOS44LTE1LjUtNjMuNi0yNC4zLTk5LjUtMjQuMy0xMTkuMSAwLTIxNS42IDk2LjUtMjE1LjYgMjE1LjYgMCAxMTkgOTYuNSAyMTUuNiAyMTUuNiAyMTUuNlM0NDUuMyAzODAuMSA0NDUuMyAyNjFjMC0zOC40LTEwLjEtNzQuNS0yNy43LTEwNS44LTMuOSA3LTcuNiAxMy4zLTEwLjkgMTguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnVsY3J1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NS43NSAxNjQuMTRsLTM1LjM4IDQzLjU1TDI1IDE2NC4xNGwzNS4zOC00My41NXpNMTQ0LjIzIDBsLTIwLjU0IDE5OC4xOEw3Mi43MiAyNTZsNTEgNTcuODJMMTQ0LjIzIDUxMlYzMDAuODlMMTAzLjE1IDI1Nmw0MS4wOC00NC44OXptNzkuNjcgMTY0LjE0bDM1LjM4IDQzLjU1IDM1LjM4LTQzLjU1LTM1LjM4LTQzLjU1em0tNDguNDggNDdMMjE2LjUgMjU2bC00MS4wOCA0NC44OVY1MTJMMTk2IDMxMy44MiAyNDcgMjU2bC01MS01Ny44MkwxNzUuNDIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2FsYWN0aWNSZXB1YmxpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggNTA0QzExMS4yNSA1MDQgMCAzOTIuNzUgMCAyNTZTMTExLjI1IDggMjQ4IDhzMjQ4IDExMS4yNSAyNDggMjQ4LTExMS4yNSAyNDgtMjQ4IDI0OHptMC00NzkuNDdDMTIwLjM3IDI0LjUzIDE2LjUzIDEyOC4zNyAxNi41MyAyNTZTMTIwLjM3IDQ4Ny40NyAyNDggNDg3LjQ3IDQ3OS40NyAzODMuNjMgNDc5LjQ3IDI1NiAzNzUuNjMgMjQuNTMgMjQ4IDI0LjUzem0yNy42MiAyMS44MXYyNC42MmExODUuOTMzIDE4NS45MzMgMCAwIDEgODMuNTcgMzQuNTRsMTcuMzktMTcuMzZjLTI4Ljc1LTIyLjA2LTYzLjMtMzYuODktMTAwLjk2LTQxLjh6bS01NS4zNy4wN2MtMzcuNjQgNC45NC03Mi4xNiAxOS44LTEwMC44OCA0MS44NWwxNy4yOCAxNy4zNmguMDhjMjQuMDctMTcuODQgNTIuNTUtMzAuMDYgODMuNTItMzQuNjdWNDYuNDF6bTEyLjI1IDUwLjE3djgyLjg3Yy0xMC4wNCAyLjAzLTE5LjQyIDUuOTQtMjcuNjcgMTEuNDJsLTU4LjYyLTU4LjU5LTIxLjkzIDIxLjkzIDU4LjY3IDU4LjY3Yy01LjQ3IDguMjMtOS40NSAxNy41OS0xMS40NyAyNy42MmgtODIuOXYzMWg4Mi45YzIuMDIgMTAuMDIgNi4wMSAxOS4zMSAxMS40NyAyNy41NGwtNTguNjcgNTguNjkgMjEuOTMgMjEuOTMgNTguNjItNTguNjJhNzcuODczIDc3Ljg3MyAwIDAgMCAyNy42NyAxMS40N3Y4Mi45aDMxdi04Mi45YzEwLjA1LTIuMDMgMTkuMzctNi4wNiAyNy42Mi0xMS41NWw1OC42NyA1OC42OSAyMS45My0yMS45My01OC42Ny01OC42OWM1LjQ2LTguMjMgOS40Ny0xNy41MiAxMS41LTI3LjU0aDgyLjg3di0zMWgtODIuODdjLTIuMDItMTAuMDItNi4wMy0xOS4zOC0xMS41LTI3LjYybDU4LjY3LTU4LjY3LTIxLjkzLTIxLjkzLTU4LjY3IDU4LjY3Yy04LjI1LTUuNDktMTcuNTctOS40Ny0yNy42Mi0xMS41Vjk2LjU4aC0zMXptMTgzLjI0IDMwLjcybC0xNy4zNiAxNy4zNmExODYuMzM3IDE4Ni4zMzcgMCAwIDEgMzQuNjcgODMuNjdoMjQuNjJjLTQuOTUtMzcuNjktMTkuODMtNzIuMjktNDEuOTMtMTAxLjAzem0tMzM1LjU1LjEzYy0yMi4wNiAyOC43Mi0zNi45MSA2My4yNi00MS44NSAxMDAuOTFoMjQuNjVjNC42LTMwLjk2IDE2Ljc2LTU5LjQ1IDM0LjU5LTgzLjUybC0xNy4zOS0xNy4zOXpNMzguMzQgMjgzLjY3YzQuOTIgMzcuNjQgMTkuNzUgNzIuMTggNDEuOCAxMDAuOWwxNy4zNi0xNy4zOWMtMTcuODEtMjQuMDctMjkuOTItNTIuNTctMzQuNTEtODMuNTJIMzguMzR6bTM5NC43IDBjLTQuNjEgMzAuOTktMTYuOCA1OS41LTM0LjY3IDgzLjZsMTcuMzYgMTcuMzZjMjIuMDgtMjguNzQgMzYuOTgtNjMuMjkgNDEuOTMtMTAwLjk2aC0yNC42MnpNMTM2LjY2IDQwNi4zOGwtMTcuMzYgMTcuMzZjMjguNzMgMjIuMDkgNjMuMyAzNi45OCAxMDAuOTYgNDEuOTN2LTI0LjY0Yy0zMC45OS00LjYzLTU5LjUzLTE2Ljc5LTgzLjYtMzQuNjV6bTIyMi41My4wNWMtMjQuMDkgMTcuODQtNTIuNTggMzAuMDgtODMuNTcgMzQuNjd2MjQuNTdjMzcuNjctNC45MiA3Mi4yMS0xOS43OSAxMDAuOTYtNDEuODVsLTE3LjMxLTE3LjM5aC0uMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhbGFjdGljU2VuYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OS44NiAzMy40OHYyNi4wN0MyMzYuMjggODAuMTcgMjI2IDE2OC4xNCAyMjUuMzkgMjc0LjljMTEuNzQtMTUuNjIgMTkuMTMtMzMuMzMgMTkuMTMtNDguMjR2LTE2Ljg4Yy0uMDMtNS4zMi43NS0xMC41MyAyLjE5LTE1LjY1LjY1LTIuMTQgMS4zOS00LjA4IDIuNjItNS44MiAxLjIzLTEuNzUgMy40My0zLjc5IDYuNjgtMy43OSAzLjI0IDAgNS40NSAyLjA1IDYuNjggMy43OSAxLjIzIDEuNzUgMS45NyAzLjY4IDIuNjIgNS44MiAxLjQ0IDUuMTIgMi4yMiAxMC4zMyAyLjE5IDE1LjY1djE2Ljg4YzAgMTQuOTEgNy4zOSAzMi42MiAxOS4xMyA0OC4yNC0uNjMtMTA2Ljc2LTEwLjkxLTE5NC43My0yNC40OS0yMTUuMzVWMzMuNDhoLTEyLjI4em0tMjYuMzQgMTQ3Ljc3Yy05LjUyIDIuMTUtMTguNyA1LjE5LTI3LjQ2IDkuMDggOC45IDE2LjEyIDkuNzYgMzIuNjQgMS43MSAzNy4yOS04IDQuNjItMjEuODUtNC4yMy0zMS4zNi0xOS44Mi0xMS41OCA4Ljc5LTIxLjg4IDE5LjMyLTMwLjU2IDMxLjA5IDE0LjczIDkuNjIgMjIuODkgMjIuOTIgMTguMzIgMzAuNjYtNC41NCA3LjctMjAuMDMgNy4xNC0zNS40Ny0uOTYtNS43OCAxMy4yNS05Ljc1IDI3LjUxLTExLjY1IDQyLjQyIDkuNjguMTggMTguNjcgMi4zOCAyNi4xOCA2LjA0IDE3Ljc4LS4zIDMyLjc3LTEuOTYgNDAuNDktNC4yMiA1LjU1LTI2LjM1IDIzLjAyLTQ4LjIzIDQ2LjMyLTU5LjUxLjczLTI1LjU1IDEuODgtNDkuNjcgMy40OC03Mi4wN3ptNjQuOTYgMGMxLjU5IDIyLjQgMi43NSA0Ni41MiAzLjQ3IDcyLjA3IDIzLjI5IDExLjI4IDQwLjc3IDMzLjE2IDQ2LjMyIDU5LjUxIDcuNzIgMi4yNiAyMi43MSAzLjkyIDQwLjQ5IDQuMjIgNy41MS0zLjY2IDE2LjUtNS44NSAyNi4xOC02LjA0LTEuOS0xNC45MS01Ljg2LTI5LjE3LTExLjY1LTQyLjQyLTE1LjQ0IDguMS0zMC45MyA4LjY2LTM1LjQ3Ljk2LTQuNTctNy43NCAzLjYtMjEuMDUgMTguMzItMzAuNjYtOC42OC0xMS43Ny0xOC45OC0yMi4zLTMwLjU2LTMxLjA5LTkuNTEgMTUuNTktMjMuMzYgMjQuNDQtMzEuMzYgMTkuODItOC4wNS00LjY1LTcuMTktMjEuMTYgMS43MS0zNy4yOWExNDcuNDkgMTQ3LjQ5IDAgMCAwLTI3LjQ1LTkuMDh6bS0zMi40OCA4LjZjLTMuMjMgMC01Ljg2IDguODEtNi4wOSAxOS45M2gtLjA1djE2Ljg4YzAgNDEuNDItNDkuMDEgOTUuMDQtOTMuNDkgOTUuMDQtNTIgMC0xMjIuNzUtMS40NS0xNTYuMzcgMjkuMTd2Mi41MWM5LjQyIDE3LjEyIDIwLjU4IDMzLjE3IDMzLjE4IDQ3Ljk3QzQ1LjcgMzgwLjI2IDg0Ljc3IDM2MC40IDE0MS4yIDM2MGM0NS42OCAxLjAyIDc5LjAzIDIwLjMzIDkwLjc2IDQwLjg3LjAxLjAxLS4wMS4wNCAwIC4wNSA3LjY3IDIuMTQgMTUuODUgMy4yMyAyNC4wNCAzLjIxIDguMTkuMDIgMTYuMzctMS4wNyAyNC4wNC0zLjIxLjAxLS4wMS0uMDEtLjA0IDAtLjA1IDExLjc0LTIwLjU0IDQ1LjA4LTM5Ljg1IDkwLjc2LTQwLjg3IDU2LjQzLjM5IDk1LjQ5IDIwLjI2IDEwOC4wMiA0MS4zNSAxMi42LTE0LjggMjMuNzYtMzAuODYgMzMuMTgtNDcuOTd2LTIuNTFjLTMzLjYxLTMwLjYyLTEwNC4zNy0yOS4xNy0xNTYuMzctMjkuMTctNDQuNDggMC05My40OS01My42Mi05My40OS05NS4wNHYtMTYuODhoLS4wNWMtLjIzLTExLjEyLTIuODYtMTkuOTMtNi4wOS0xOS45M3ptMCA5Ni41OWMyMi40MiAwIDQwLjYgMTguMTggNDAuNiA0MC42cy0xOC4xOCA0MC42NS00MC42IDQwLjY1LTQwLjYtMTguMjMtNDAuNi00MC42NWMwLTIyLjQyIDE4LjE4LTQwLjYgNDAuNi00MC42em0wIDcuNjRjLTE4LjE5IDAtMzIuOTYgMTQuNzctMzIuOTYgMzIuOTZTMjM3LjgxIDM2MCAyNTYgMzYwczMyLjk2LTE0Ljc3IDMyLjk2LTMyLjk2LTE0Ljc3LTMyLjk2LTMyLjk2LTMyLjk2em0wIDYuMTRjMTQuODEgMCAyNi44MiAxMi4wMSAyNi44MiAyNi44MnMtMTIuMDEgMjYuODItMjYuODIgMjYuODItMjYuODItMTIuMDEtMjYuODItMjYuODIgMTIuMDEtMjYuODIgMjYuODItMjYuODJ6bS0xMTQuOCA2Ni42N2MtMTAuMTkuMDctMjEuNi4zNi0zMC41IDEuNjYuNDMgNC40MiAxLjUxIDE4LjYzIDcuMTEgMjkuNzYgOS4xMS0yLjU2IDE4LjM2LTMuOSAyNy42Mi0zLjkgNDEuMjguOTQgNzEuNDggMzQuMzUgNzguMjYgNzQuNDdsLjExIDQuN2MxMC40IDEuOTEgMjEuMTkgMi45NCAzMi4yMSAyLjk0IDExLjAzIDAgMjEuODEtMS4wMiAzMi4yMS0yLjk0bC4xMS00LjdjNi43OC00MC4xMiAzNi45OC03My41MyA3OC4yNi03NC40NyA5LjI2IDAgMTguNTEgMS4zNCAyNy42MiAzLjkgNS42LTExLjEzIDYuNjgtMjUuMzQgNy4xMS0yOS43Ni04LjktMS4zLTIwLjMyLTEuNTgtMzAuNS0xLjY2LTE4Ljc2LjQyLTM1LjE5IDQuMTctNDguNjEgOS42Ny0xMi41NCAxNi4wMy0yOS4xNiAzMC4wMy00OS41OCAzMy4wNy0uMDkuMDItLjE3LjA0LS4yNy4wNS0uMDUuMDEtLjExLjA0LS4xNi4wNS01LjI0IDEuMDctMTAuNjMgMS42LTE2LjE5IDEuNi01LjU1IDAtMTAuOTUtLjUzLTE2LjE5LTEuNi0uMDUtLjAxLS4xMS0uMDQtLjE2LS4wNS0uMS0uMDItLjE3LS4wNC0uMjctLjA1LTIwLjQyLTMuMDMtMzcuMDMtMTcuMDQtNDkuNTgtMzMuMDctMTMuNDItNS40OS0yOS44Ni05LjI1LTQ4LjYxLTkuNjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdldFBvY2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcuNiA2NGgtMzY3QzE4LjUgNjQgMCA4Mi41IDAgMTA0LjZ2MTM1LjJDMCAzNjQuNSA5OS43IDQ2NCAyMjQuMiA0NjRjMTI0IDAgMjIzLjgtOTkuNSAyMjMuOC0yMjQuMlYxMDQuNmMwLTIyLjQtMTcuNy00MC42LTQwLjQtNDAuNnptLTE2MiAyNjguNWMtMTIuNCAxMS44LTMxLjQgMTEuMS00Mi40IDBDODkuNSAyMjMuNiA4OC4zIDIyNy40IDg4LjMgMjA5LjNjMC0xNi45IDEzLjgtMzAuNyAzMC43LTMwLjcgMTcgMCAxNi4xIDMuOCAxMDUuMiA4OS4zIDkwLjYtODYuOSA4OC42LTg5LjMgMTA1LjUtODkuMyAxNi45IDAgMzAuNyAxMy44IDMwLjcgMzAuNyAwIDE3LjgtMi45IDE1LjctMTE0LjggMTIzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdnQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NyA4QzEyMCA4IDkgMTE5IDkgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzk0IDggMjU3IDh6bS00OS41IDM3NC44TDgxLjggMjU3LjFsMTI1LjctMTI1LjcgMzUuMiAzNS40LTI0LjIgMjQuMi0xMS4xLTExLjEtNzcuMiA3Ny4yIDc3LjIgNzcuMiAyNi42LTI2LjYtNTMuMS01Mi45IDI0LjQtMjQuNCA3Ny4yIDc3LjItNzUgNzUuMnptOTktMi4ybC0zNS4yLTM1LjIgMjQuMS0yNC40IDExLjEgMTEuMSA3Ny4yLTc3LjItNzcuMi03Ny4yLTI2LjUgMjYuNSA1My4xIDUyLjktMjQuNCAyNC40LTc3LjItNzcuMiA3NS03NUw0MzIuMiAyNTUgMzA2LjUgMzgwLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OS4yIDIzMC40bDEwMi40IDEwMi40LTEwMi40IDEwMi40TDAgMjU2IDE3OS4yIDc2LjhsNDQuOCA0NC44LTI1LjYgMjUuNi0xOS4yLTE5LjItMTI4IDEyOCAxMjggMTI4IDUxLjUtNTEuNS03Ny4xLTc2LjUgMjUuNi0yNS42ek0zMzIuOCA3Ni44TDIzMC40IDE3OS4ybDEwMi40IDEwMi40IDI1LjYtMjUuNi03Ny4xLTc2LjUgNTEuNS01MS41IDEyOCAxMjgtMTI4IDEyOC0xOS4yLTE5LjItMjUuNiAyNS42IDQ0LjggNDQuOEw1MTIgMjU2IDMzMi44IDc2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzkuNTUgMjM2LjA1TDI0NCA0MC40NWEyOC44NyAyOC44NyAwIDAgMC00MC44MSAwbC00MC42NiA0MC42MyA1MS41MiA1MS41MmMyNy4wNi05LjE0IDUyLjY4IDE2Ljc3IDQzLjM5IDQzLjY4bDQ5LjY2IDQ5LjY2YzM0LjIzLTExLjggNjEuMTggMzEgMzUuNDcgNTYuNjktMjYuNDkgMjYuNDktNzAuMjEtMi44Ny01Ni0zNy4zNEwyNDAuMjIgMTk5djEyMS44NWMyNS4zIDEyLjU0IDIyLjI2IDQxLjg1IDkuMDggNTVhMzQuMzQgMzQuMzQgMCAwIDEtNDguNTUgMGMtMTcuNTctMTcuNi0xMS4wNy00Ni45MSAxMS4yNS01NnYtMTIzYy0yMC44LTguNTEtMjQuNi0zMC43NC0xOC42NC00NUwxNDIuNTcgMTAxIDguNDUgMjM1LjE0YTI4Ljg2IDI4Ljg2IDAgMCAwIDAgNDAuODFsMTk1LjYxIDE5NS42YTI4Ljg2IDI4Ljg2IDAgMCAwIDQwLjggMGwxOTQuNjktMTk0LjY5YTI4Ljg2IDI4Ljg2IDAgMCAwIDAtNDAuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAuNTkgMzM0LjI0YzQ4LjU3IDMuMzEgNTguOTUgMi4xMSA1OC45NSAxMS45NCAwIDIwLTY1LjU1IDIwLjA2LTY1LjU1IDEuNTIuMDEtNS4wOSAzLjI5LTkuNCA2LjYtMTMuNDZ6bTI3Ljk1LTExNi42NGMtMzIuMjkgMC0zMy43NSA0NC40Ny0uNzUgNDQuNDcgMzIuNTEgMCAzMS43MS00NC40Ny43NS00NC40N3pNNDQ4IDgwdjM1MmE0OCA0OCAwIDAgMS00OCA0OEg0OGE0OCA0OCAwIDAgMS00OC00OFY4MGE0OCA0OCAwIDAgMSA0OC00OGgzNTJhNDggNDggMCAwIDEgNDggNDh6bS0yMjcgNjkuMzFjMCAxNC40OSA4LjM4IDIyLjg4IDIyLjg2IDIyLjg4IDE0Ljc0IDAgMjMuMTMtOC4zOSAyMy4xMy0yMi44OFMyNTguNjIgMTI3IDI0My44OCAxMjdjLTE0LjQ4IDAtMjIuODggNy44NC0yMi44OCAyMi4zMXpNMTk5LjE4IDE5NWgtNDkuNTVjLTI1LTYuNTUtODEuNTYtNC44NS04MS41NiA0Ni43NSAwIDE4LjggOS40IDMyIDIxLjg1IDM4LjExQzc0LjIzIDI5NC4yMyA2Ni44IDMwMSA2Ni44IDMxMC42YzAgNi44NyAyLjc5IDEzLjIyIDExLjE4IDE2Ljc2LTguOSA4LjQtMTQgMTQuNDgtMTQgMjUuOTJDNjQgMzczLjM1IDgxLjUzIDM4NSAxMjcuNTIgMzg1YzQ0LjIyIDAgNjkuODctMTYuNTEgNjkuODctNDUuNzMgMC0zNi42Ny0yOC4yMy0zNS4zMi05NC43Ny0zOS4zOGw4LjM4LTEzLjQzYzE3IDQuNzQgNzQuMTkgNi4yMyA3NC4xOS00Mi40MyAwLTExLjY5LTQuODMtMTkuODItOS40LTI1LjY3bDIzLjM4LTEuNzh6bTg0LjM0IDEwOS44NGwtMTMtMS43OGMtMy44Mi0uNTEtNC4wNy0xLTQuMDctNS4wOVYxOTIuNTJoLTUyLjZsLTIuNzkgMjAuNTdjMTUuNzUgNS41NSAxNyA0Ljg2IDE3IDEwLjE3VjI5OGMwIDUuNjItLjMxIDQuNTgtMTcgNi44N3YyMC4wNmg3Mi40MnpNMzg0IDMxNWwtNi44Ny0yMi4zN2MtNDAuOTMgMTUuMzctMzcuODUtMTIuNDEtMzcuODUtMTYuNzN2LTYwLjcyaDM3Ljg1di0yNS40MWgtMzUuODJjLTIuODcgMC0yIDIuNTItMi0zOC42M2gtMjQuMThjLTIuNzkgMjcuNy0xMS42OCAzOC44OC0zNCA0MS40MnYyMi42MmMyMC40NyAwIDE5LjgyLS44NSAxOS44MiAyLjU0djY2LjU3YzAgMjguNzIgMTEuNDMgNDAuOTEgNDEuNjcgNDAuOTEgMTQuNDUgMCAzMC40NS00LjgzIDQxLjM4LTEwLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYuMjkgMTU4LjM5SDEzN0M5NyAxNDcuOSA2LjUxIDE1MC42MyA2LjUxIDIzMy4xOGMwIDMwLjA5IDE1IDUxLjIzIDM1IDYxLTI1LjEgMjMtMzcgMzMuODUtMzcgNDkuMjEgMCAxMSA0LjQ3IDIxLjE0IDE3Ljg5IDI2LjgxQzguMTMgMzgzLjYxIDAgMzkzLjM1IDAgNDExLjY1YzAgMzIuMTEgMjguMDUgNTAuODIgMTAxLjYzIDUwLjgyIDcwLjc1IDAgMTExLjc5LTI2LjQyIDExMS43OS03My4xOCAwLTU4LjY2LTQ1LjE2LTU2LjUtMTUxLjYzLTYzbDEzLjQzLTIxLjU1YzI3LjI3IDcuNTggMTE4LjcgMTAgMTE4LjctNjcuODkgMC0xOC43LTcuNzMtMzEuNzEtMTUtNDEuMDdsMzcuNDEtMi44NHptLTYzLjQyIDI0MS45YzAgMzIuMDYtMTA0Ljg5IDMyLjEtMTA0Ljg5IDIuNDMgMC04LjE0IDUuMjctMTUgMTAuNTctMjEuNTQgNzcuNzEgNS4zIDk0LjMyIDMuMzcgOTQuMzIgMTkuMTF6bS01MC44MS0xMzQuNThjLTUyLjggMC01MC40Ni03MS4xNiAxLjItNzEuMTYgNDkuNTQgMCA1MC44MiA3MS4xNi0xLjIgNzEuMTZ6bTEzMy4zIDEwMC41MXYtMzIuMWMyNi43NS0zLjY2IDI3LjI0LTIgMjcuMjQtMTFWMjAzLjYxYzAtOC41LTIuMDUtNy4zOC0yNy4yNC0xNi4yNmw0LjQ3LTMyLjkySDMyNHYxNjguNzFjMCA2LjUxLjQgNy4zMiA2LjUxIDguMTRsMjAuNzMgMi44NHYzMi4xem01Mi40NS0yNDQuMzFjLTIzLjE3IDAtMzYuNTktMTMuNDMtMzYuNTktMzYuNjFzMTMuNDItMzUuNzcgMzYuNTktMzUuNzdjMjMuNTggMCAzNyAxMi42MiAzNyAzNS43N3MtMTMuNDIgMzYuNjEtMzcgMzYuNjF6TTUxMiAzNTAuNDZjLTE3LjQ5IDguNTMtNDMuMSAxNi4yNi02Ni4yOCAxNi4yNi00OC4zOCAwLTY2LjY3LTE5LjUtNjYuNjctNjUuNDZWMTk0Ljc1YzAtNS40MiAxLjA1LTQuMDYtMzEuNzEtNC4wNlYxNTQuNWMzNS43OC00LjA3IDUwLTIyIDU0LjQ3LTY2LjI3aDM4LjYzYzAgNjUuODMtMS4zNCA2MS44MSAzLjI2IDYxLjgxSDUwMXY0MC42NWgtNjAuNTZ2OTcuMTVjMCA2LjkyLTQuOTIgNTEuNDEgNjAuNTcgMjYuODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGh1YkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDgwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODYuMSAzMjguN2MwIDIwLjktMTAuOSA1NS4xLTM2LjcgNTUuMXMtMzYuNy0zNC4yLTM2LjctNTUuMSAxMC45LTU1LjEgMzYuNy01NS4xIDM2LjcgMzQuMiAzNi43IDU1LjF6TTQ4MCAyNzguMmMwIDMxLjktMy4yIDY1LjctMTcuNSA5NS0zNy45IDc2LjYtMTQyLjEgNzQuOC0yMTYuNyA3NC44LTc1LjggMC0xODYuMiAyLjctMjI1LjYtNzQuOC0xNC42LTI5LTIwLjItNjMuMS0yMC4yLTk1IDAtNDEuOSAxMy45LTgxLjUgNDEuNS0xMTMuNi01LjItMTUuOC03LjctMzIuNC03LjctNDguOCAwLTIxLjUgNC45LTMyLjMgMTQuNi01MS44IDQ1LjMgMCA3NC4zIDkgMTA4LjggMzYgMjktNi45IDU4LjgtMTAgODguNy0xMCAyNyAwIDU0LjIgMi45IDgwLjQgOS4yIDM0LTI2LjcgNjMtMzUuMiAxMDcuOC0zNS4yIDkuOCAxOS41IDE0LjYgMzAuMyAxNC42IDUxLjggMCAxNi40LTIuNiAzMi43LTcuNyA0OC4yIDI3LjUgMzIuNCAzOSA3Mi4zIDM5IDExNC4yem0tNjQuMyA1MC41YzAtNDMuOS0yNi43LTgyLjYtNzMuNS04Mi42LTE4LjkgMC0zNyAzLjQtNTYgNi0xNC45IDIuMy0yOS44IDMuMi00NS4xIDMuMi0xNS4yIDAtMzAuMS0uOS00NS4xLTMuMi0xOC43LTIuNi0zNy02LTU2LTYtNDYuOCAwLTczLjUgMzguNy03My41IDgyLjYgMCA4Ny44IDgwLjQgMTAxLjMgMTUwLjQgMTAxLjNoNDguMmM3MC4zIDAgMTUwLjYtMTMuNCAxNTAuNi0xMDEuM3ptLTgyLjYtNTUuMWMtMjUuOCAwLTM2LjcgMzQuMi0zNi43IDU1LjFzMTAuOSA1NS4xIDM2LjcgNTUuMSAzNi43LTM0LjIgMzYuNy01NS4xLTEwLjktNTUuMS0zNi43LTU1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpdGh1YlNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yNzcuMyA0MTUuN2MtOC40IDEuNS0xMS41LTMuNy0xMS41LTggMC01LjQuMi0zMyAuMi01NS4zIDAtMTUuNi01LjItMjUuNS0xMS4zLTMwLjcgMzctNC4xIDc2LTkuMiA3Ni03My4xIDAtMTguMi02LjUtMjcuMy0xNy4xLTM5IDEuNy00LjMgNy40LTIyLTEuNy00NS0xMy45LTQuMy00NS43IDE3LjktNDUuNyAxNy45LTEzLjItMy43LTI3LjUtNS42LTQxLjYtNS42LTE0LjEgMC0yOC40IDEuOS00MS42IDUuNiAwIDAtMzEuOC0yMi4yLTQ1LjctMTcuOS05LjEgMjIuOS0zLjUgNDAuNi0xLjcgNDUtMTAuNiAxMS43LTE1LjYgMjAuOC0xNS42IDM5IDAgNjMuNiAzNy4zIDY5IDc0LjMgNzMuMS00LjggNC4zLTkuMSAxMS43LTEwLjYgMjIuMy05LjUgNC4zLTMzLjggMTEuNy00OC4zLTEzLjktOS4xLTE1LjgtMjUuNS0xNy4xLTI1LjUtMTcuMS0xNi4yLS4yLTEuMSAxMC4yLTEuMSAxMC4yIDEwLjggNSAxOC40IDI0LjIgMTguNCAyNC4yIDkuNyAyOS43IDU2LjEgMTkuNyA1Ni4xIDE5LjcgMCAxMy45LjIgMzYuNS4yIDQwLjYgMCA0LjMtMyA5LjUtMTEuNSA4LTY2LTIyLjEtMTEyLjItODQuOS0xMTIuMi0xNTguMyAwLTkxLjggNzAuMi0xNjEuNSAxNjItMTYxLjVTMzg4IDE2NS42IDM4OCAyNTcuNGMuMSA3My40LTQ0LjcgMTM2LjMtMTEwLjcgMTU4LjN6bS05OC4xLTYxLjFjLTEuOS40LTMuNy0uNC0zLjktMS43LS4yLTEuNSAxLjEtMi44IDMtMy4yIDEuOS0uMiAzLjcuNiAzLjkgMS45LjMgMS4zLTEgMi42LTMgM3ptLTkuNS0uOWMwIDEuMy0xLjUgMi40LTMuNSAyLjQtMi4yLjItMy43LS45LTMuNy0yLjQgMC0xLjMgMS41LTIuNCAzLjUtMi40IDEuOS0uMiAzLjcuOSAzLjcgMi40em0tMTMuNy0xLjFjLS40IDEuMy0yLjQgMS45LTQuMSAxLjMtMS45LS40LTMuMi0xLjktMi44LTMuMi40LTEuMyAyLjQtMS45IDQuMS0xLjUgMiAuNiAzLjMgMi4xIDIuOCAzLjR6bS0xMi4zLTUuNGMtLjkgMS4xLTIuOC45LTQuMy0uNi0xLjUtMS4zLTEuOS0zLjItLjktNC4xLjktMS4xIDIuOC0uOSA0LjMuNiAxLjMgMS4zIDEuOCAzLjMuOSA0LjF6bS05LjEtOS4xYy0uOS42LTIuNiAwLTMuNy0xLjVzLTEuMS0zLjIgMC0zLjljMS4xLS45IDIuOC0uMiAzLjcgMS4zIDEuMSAxLjUgMS4xIDMuMyAwIDQuMXptLTYuNS05LjdjLS45LjktMi40LjQtMy41LS42LTEuMS0xLjMtMS4zLTIuOC0uNC0zLjUuOS0uOSAyLjQtLjQgMy41LjYgMS4xIDEuMyAxLjMgMi44LjQgMy41em0tNi43LTcuNGMtLjQuOS0xLjcgMS4xLTIuOC40LTEuMy0uNi0xLjktMS43LTEuNS0yLjYuNC0uNiAxLjUtLjkgMi44LS40IDEuMy43IDEuOSAxLjggMS41IDIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0aHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NS45IDM5Ny40YzAgMi0yLjMgMy42LTUuMiAzLjYtMy4zLjMtNS42LTEuMy01LjYtMy42IDAtMiAyLjMtMy42IDUuMi0zLjYgMy0uMyA1LjYgMS4zIDUuNiAzLjZ6bS0zMS4xLTQuNWMtLjcgMiAxLjMgNC4zIDQuMyA0LjkgMi42IDEgNS42IDAgNi4yLTJzLTEuMy00LjMtNC4zLTUuMmMtMi42LS43LTUuNS4zLTYuMiAyLjN6bTQ0LjItMS43Yy0yLjkuNy00LjkgMi42LTQuNiA0LjkuMyAyIDIuOSAzLjMgNS45IDIuNiAyLjktLjcgNC45LTIuNiA0LjYtNC42LS4zLTEuOS0zLTMuMi01LjktMi45ek0yNDQuOCA4QzEwNi4xIDggMCAxMTMuMyAwIDI1MmMwIDExMC45IDY5LjggMjA1LjggMTY5LjUgMjM5LjIgMTIuOCAyLjMgMTcuMy01LjYgMTcuMy0xMi4xIDAtNi4yLS4zLTQwLjQtLjMtNjEuNCAwIDAtNzAgMTUtODQuNy0yOS44IDAgMC0xMS40LTI5LjEtMjcuOC0zNi42IDAgMC0yMi45LTE1LjcgMS42LTE1LjQgMCAwIDI0LjkgMiAzOC42IDI1LjggMjEuOSAzOC42IDU4LjYgMjcuNSA3Mi45IDIwLjkgMi4zLTE2IDguOC0yNy4xIDE2LTMzLjctNTUuOS02LjItMTEyLjMtMTQuMy0xMTIuMy0xMTAuNSAwLTI3LjUgNy42LTQxLjMgMjMuNi01OC45LTIuNi02LjUtMTEuMS0zMy4zIDIuNi02Ny45IDIwLjktNi41IDY5IDI3IDY5IDI3IDIwLTUuNiA0MS41LTguNSA2Mi44LTguNXM0Mi44IDIuOSA2Mi44IDguNWMwIDAgNDguMS0zMy42IDY5LTI3IDEzLjcgMzQuNyA1LjIgNjEuNCAyLjYgNjcuOSAxNiAxNy43IDI1LjggMzEuNSAyNS44IDU4LjkgMCA5Ni41LTU4LjkgMTA0LjItMTE0LjggMTEwLjUgOS4yIDcuOSAxNyAyMi45IDE3IDQ2LjQgMCAzMy43LS4zIDc1LjQtLjMgODMuNiAwIDYuNSA0LjYgMTQuNCAxNy4zIDEyLjFDNDI4LjIgNDU3LjggNDk2IDM2Mi45IDQ5NiAyNTIgNDk2IDExMy4zIDM4My41IDggMjQ0LjggOHpNOTcuMiAzNTIuOWMtMS4zIDEtMSAzLjMuNyA1LjIgMS42IDEuNiAzLjkgMi4zIDUuMiAxIDEuMy0xIDEtMy4zLS43LTUuMi0xLjYtMS42LTMuOS0yLjMtNS4yLTF6bS0xMC44LTguMWMtLjcgMS4zLjMgMi45IDIuMyAzLjkgMS42IDEgMy42LjcgNC4zLS43LjctMS4zLS4zLTIuOS0yLjMtMy45LTItLjYtMy42LS4zLTQuMy43em0zMi40IDM1LjZjLTEuNiAxLjMtMSA0LjMgMS4zIDYuMiAyLjMgMi4zIDUuMiAyLjYgNi41IDEgMS4zLTEuMy43LTQuMy0xLjMtNi4yLTIuMi0yLjMtNS4yLTIuNi02LjUtMXptLTExLjQtMTQuN2MtMS42IDEtMS42IDMuNiAwIDUuOSAxLjYgMi4zIDQuMyAzLjMgNS42IDIuMyAxLjYtMS4zIDEuNi0zLjkgMC02LjItMS40LTIuMy00LTMuMy01LjYtMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0a3Jha2VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1OTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2NS43IDExOC4xYy0yLjMtNi4xLTkuMy05LjItMTUuMy02LjYtNS43IDIuNC04LjUgOC45LTYuMyAxNC42IDEwLjkgMjkgMTYuOSA2MC41IDE2LjkgOTMuMyAwIDEzNC42LTEwMC4zIDI0NS43LTIzMC4yIDI2Mi43VjM1OC40YzcuOS0xLjUgMTUuNS0zLjYgMjMtNi4ydjEwNGMxMDYuNy0yNS45IDE4NS45LTEyMi4xIDE4NS45LTIzNi44IDAtOTEuOC01MC44LTE3MS44LTEyNS44LTIxMy4zLTUuNy0zLjItMTMtLjktMTUuOSA1LTIuNyA1LjUtLjYgMTIuMiA0LjcgMTUuMSA2Ny45IDM3LjYgMTEzLjkgMTEwIDExMy45IDE5My4yIDAgOTMuMy01Ny45IDE3My4xLTEzOS44IDIwNS40di05Mi4yYzE0LjItNC41IDI0LjktMTcuNyAyNC45LTMzLjUgMC0xMy4xLTYuOC0yNC40LTE3LjMtMzAuNSA4LjMtNzkuNSA0NC41LTU4LjYgNDQuNS04My45VjE3MGMwLTM4LTg3LjktMTYxLjgtMTI5LTE2NC43LTIuNS0uMi01LS4yLTcuNiAwQzI1MS4xIDguMyAxNjMuMiAxMzIgMTYzLjIgMTcwdjE0LjhjMCAyNS4zIDM2LjMgNC4zIDQ0LjUgODMuOS0xMC42IDYuMS0xNy4zIDE3LjQtMTcuMyAzMC41IDAgMTUuOCAxMC42IDI5IDI0LjggMzMuNXY5Mi4yYy04MS45LTMyLjItMTM5LjgtMTEyLTEzOS44LTIwNS40IDAtODMuMSA0Ni0xNTUuNSAxMTMuOS0xOTMuMiA1LjQtMyA3LjQtOS42IDQuNy0xNS4xLTIuOS01LjktMTAuMS04LjItMTUuOS01LTc1IDQxLjUtMTI1LjggMTIxLjUtMTI1LjggMjEzLjMgMCAxMTQuNyA3OS4yIDIxMC44IDE4NS45IDIzNi44di0xMDRjNy42IDIuNSAxNS4xIDQuNiAyMyA2LjJ2MTIzLjdDMTMxLjQgNDY1LjIgMzEgMzU0LjEgMzEgMjE5LjVjMC0zMi44IDYtNjQuMyAxNi45LTkzLjMgMi4yLTUuOC0uNi0xMi4yLTYuMy0xNC42LTYtMi42LTEzIC40LTE1LjMgNi42QzE0LjUgMTQ5LjcgOCAxODMuOCA4IDIxOS41YzAgMTU1LjEgMTIyLjYgMjgxLjYgMjc2LjMgMjg3LjhWMzYxLjRjNi44LjQgMTUgLjUgMjMuNCAwdjE0NS44QzQ2MS40IDUwMS4xIDU4NCAzNzQuNiA1ODQgMjE5LjVjMC0zNS43LTYuNS02OS44LTE4LjMtMTAxLjR6TTM2NS45IDI3NS41YzEzIDAgMjMuNyAxMC41IDIzLjcgMjMuNyAwIDEzLjEtMTAuNiAyMy43LTIzLjcgMjMuNy0xMyAwLTIzLjctMTAuNS0yMy43LTIzLjcgMC0xMy4xIDEwLjYtMjMuNyAyMy43LTIzLjd6bS0xMzkuOCA0Ny4zYy0xMy4yIDAtMjMuNy0xMC43LTIzLjctMjMuN3MxMC41LTIzLjcgMjMuNy0yMy43YzEzLjEgMCAyMy43IDEwLjYgMjMuNyAyMy43IDAgMTMtMTAuNSAyMy43LTIzLjcgMjMuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2l0bGFiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwNS4yIDI0LjljLTMuMS04LjktMTUuNy04LjktMTguOSAwTDI5LjggMTk5LjdoMTMyYy0uMSAwLTU2LjYtMTc0LjgtNTYuNi0xNzQuOHpNLjkgMjg3LjdjLTIuNiA4IC4zIDE2LjkgNy4xIDIybDI0Ny45IDE4NC0yMjYuMi0yOTR6bTE2MC44LTg4bDk0LjMgMjk0IDk0LjMtMjk0em0zNDkuNCA4OGwtMjguOC04OC0yMjYuMyAyOTQgMjQ3LjktMTg0YzYuOS01LjEgOS43LTE0IDcuMi0yMnpNNDI1LjcgMjQuOWMtMy4xLTguOS0xNS43LTguOS0xOC45IDBsLTU2LjYgMTc0LjhoMTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaXR0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjYuNCAzMjIuNUgxNlYwaDUwLjR2MzIyLjV6TTE2Ni45IDc2LjFoLTUwLjRWNTEyaDUwLjRWNzYuMXptMTAwLjYgMGgtNTAuNFY1MTJoNTAuNFY3Ni4xek0zNjggNzZoLTUwLjR2MjQ3SDM2OFY3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xpZGVHIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy4xIDIxMS4yYy0zLjUtMS40LTExLjYtMy44LTE1LjQtMy44LTM3LjEgMC02Mi4yIDE2LjgtOTMuNSAzNC41bC0uOS0uOWM3LTQ3LjMgMjMuNS05MS45IDIzLjUtMTQwLjRDMzIwLjggMjkuMSAyODIuNiAwIDIxMi40IDAgOTcuMyAwIDM5IDExMy43IDM5IDE5OC40IDM5IDI4Ni4zIDkwLjMgMzM1IDE3Ny42IDMzNWMxMiAwIDExLTEgMTEgMy44LTE2LjkgMTI4LjktOTAuOCAxMzMuMS05MC44IDk0LjYgMC0zOS4yIDQ1LTU4LjYgNDUuNS02MS0uMy0xMi4yLTQ3LTI3LjYtNTguOS0yNy42LTMzLjkuMS01Mi40IDUxLjItNTIuNCA3OS4zQzMyIDQ3NiA2NC44IDUxMiAxMTcuNSA1MTJjNzcuNCAwIDEzNC03Ny44IDE1MS40LTE0NS40IDE1LjEtNjAuNSAxMS4yLTYzLjMgMTkuNy02Ny42IDMyLjItMTYuMiA1Ny41LTI3IDkzLjgtMjcgMTcuOCAwIDMwLjUgMy43IDU4LjkgOC40IDIuOSAwIDYuNy0yLjkgNi43LTUuOCAwLTgtMzMuNC02MC41LTQwLjktNjMuNHptLTE3NS4zLTg0LjRjLTkuMyA0NC43LTE4LjYgODkuNi0yNy44IDEzNC4zLTIuMyAxMC4yLTEzLjMgNy44LTIyIDcuOC0zOC4zIDAtNDktNDEuOC00OS03My4xIDAtNDcgMTgtMTA5LjMgNjEuOC0xMzMuNCA3LTQuMSAxNC44LTYuNyAyMi42LTYuNyAxOC42IDAgMjAgMTMuMyAyMCAyOC43LS4xIDE0LjMtMi43IDI4LjUtNS42IDQyLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsaWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Mi44IDE0OC42YzAgOC44LTEuNiAxNy43LTMuNCAyNi40LTUuOCAyNy44LTExLjYgNTUuOC0xNy4zIDgzLjYtMS40IDYuMy04LjMgNC45LTEzLjcgNC45LTIzLjggMC0zMC41LTI2LTMwLjUtNDUuNSAwLTI5LjMgMTEuMi02OC4xIDM4LjUtODMuMSA0LjMtMi41IDkuMi00LjIgMTQuMS00LjIgMTEuNCAwIDEyLjMgOC4zIDEyLjMgMTcuOXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNjQgMTg3YzAtNS4xLTIwLjgtMzcuNy0yNS41LTM5LjUtMi4yLS45LTcuMi0yLjMtOS42LTIuMy0yMy4xIDAtMzguNyAxMC41LTU4LjIgMjEuNWwtLjUtLjVjNC4zLTI5LjQgMTQuNi01Ny4yIDE0LjYtODcuNCAwLTQ0LjYtMjMuOC02Mi43LTY3LjUtNjIuNy03MS43IDAtMTA4IDcwLjgtMTA4IDEyMy41IDAgNTQuNyAzMiA4NSA4Ni4zIDg1IDcuNSAwIDYuOS0uNiA2LjkgMi4zLTEwLjUgODAuMy01Ni41IDgyLjktNTYuNSA1OC45IDAtMjQuNCAyOC0zNi41IDI4LjMtMzgtLjItNy42LTI5LjMtMTcuMi0zNi43LTE3LjItMjEuMSAwLTMyLjcgMzMtMzIuNyA1MC42IDAgMzIuMyAyMC40IDU0LjcgNTMuMyA1NC43IDQ4LjIgMCA4My40LTQ5LjcgOTQuMy05MS43IDkuNC0zNy43IDctMzkuNCAxMi4zLTQyLjEgMjAtMTAuMSAzNS44LTE2LjggNTguNC0xNi44IDExLjEgMCAxOSAyLjMgMzYuNyA1LjIgMS44LjEgNC4xLTEuNyA0LjEtMy41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb2ZvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI0IDMxOS44aC0xMy4ydjM0LjdjLTI0LjUgMjMuMS01Ni4zIDM1LjgtODkuOSAzNS44LTczLjIgMC0xMzIuNC02MC4yLTEzMi40LTEzNC40IDAtNzQuMSA1OS4yLTEzNC40IDEzMi40LTEzNC40IDM1LjMgMCA2OC42IDE0IDkzLjYgMzkuNGw2Mi4zLTYzLjNDMzM1IDU1LjMgMjc5LjcgMzIgMjIwLjcgMzIgOTggMzIgMCAxMzIuNiAwIDI1NmMwIDEyMi41IDk3IDIyNCAyMjAuNyAyMjQgNjMuMiAwIDEyNC41LTI2LjIgMTcxLTgyLjUtMi0yNy42LTEzLjQtNzcuNy02Ny43LTc3Ljd6bS0xMi4xLTExMi41SDIwNS42djg5SDMyNGMzMy41IDAgNjAuNSAxNS4xIDc2IDQxLjh2LTMwLjZjMC02NS4yLTQwLjQtMTAwLjItODguMS0xMDAuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZHJlYWRzRyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi42IDQwMy4zaDIuOGMxMi43IDAgMjUuNSAwIDM4LjIuMSAxLjYgMCAzLjEtLjQgMy42IDIuMSA3LjEgMzQuOSAzMCA1NC42IDYyLjkgNjMuOSAyNi45IDcuNiA1NC4xIDcuOCA4MS4zIDEuOCAzMy44LTcuNCA1Ni0yOC4zIDY4LTYwLjQgOC0yMS41IDEwLjctNDMuOCAxMS02Ni41LjEtNS44LjMtNDctLjItNTIuOGwtLjktLjNjLS44IDEuNS0xLjcgMi45LTIuNSA0LjQtMjIuMSA0My4xLTYxLjMgNjcuNC0xMDUuNCA2OS4xLTEwMyA0LTE2OS40LTU3LTE3Mi0xNzYuMi0uNS0yMy43IDEuOC00Ni45IDguMy02OS43QzU4LjMgNDcuNyAxMTIuMy42IDE5MS42IDBjNjEuMy0uNCAxMDEuNSAzOC43IDExNi4yIDcwLjMuNSAxLjEgMS4zIDIuMyAyLjQgMS45VjEwLjZoNDQuM2MwIDI4MC4zLjEgMzMyLjIuMSAzMzIuMi0uMSA3OC41LTI2LjcgMTQzLjctMTAzIDE2Mi4yLTY5LjUgMTYuOS0xNTkgNC44LTE5Ni01Ny4yLTgtMTMuNS0xMS44LTI4LjMtMTMtNDQuNXpNMTg4LjkgMzYuNWMtNTIuNS0uNS0xMDguNSA0MC43LTExNSAxMzMuOC00LjEgNTkgMTQuOCAxMjIuMiA3MS41IDE0OC42IDI3LjYgMTIuOSA3NC4zIDE1IDEwOC4zLTguNyA0Ny42LTMzLjIgNjIuNy05NyA1NC44LTE1NC05LjctNzEuMS00Ny44LTEyMC0xMTkuNi0xMTkuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZHJlYWRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OS45IDE5MS4yYzUuMSAzNy4zLTQuNyA3OS0zNS45IDEwMC43LTIyLjMgMTUuNS01Mi44IDE0LjEtNzAuOCA1LjctMzcuMS0xNy4zLTQ5LjUtNTguNi00Ni44LTk3LjIgNC4zLTYwLjkgNDAuOS04Ny45IDc1LjMtODcuNSA0Ni45LS4yIDcxLjggMzEuOCA3OC4yIDc4LjN6TTQ0OCA4OHYzMzZjMCAzMC45LTI1LjEgNTYtNTYgNTZINTZjLTMwLjkgMC01Ni0yNS4xLTU2LTU2Vjg4YzAtMzAuOSAyNS4xLTU2IDU2LTU2aDMzNmMzMC45IDAgNTYgMjUuMSA1NiA1NnpNMzMwIDMxMy4ycy0uMS0zNC0uMS0yMTcuM2gtMjl2NDAuM2MtLjguMy0xLjItLjUtMS42LTEuMi05LjYtMjAuNy0zNS45LTQ2LjMtNzYtNDYtNTEuOS40LTg3LjIgMzEuMi0xMDAuNiA3Ny44LTQuMyAxNC45LTUuOCAzMC4xLTUuNSA0NS42IDEuNyA3Ny45IDQ1LjEgMTE3LjggMTEyLjQgMTE1LjIgMjguOS0xLjEgNTQuNS0xNyA2OS00NS4yLjUtMSAxLjEtMS45IDEuNy0yLjkuMi4xLjQuMS42LjIuMyAzLjguMiAzMC43LjEgMzQuNS0uMiAxNC44LTIgMjkuNS03LjIgNDMuNS03LjggMjEtMjIuMyAzNC43LTQ0LjUgMzkuNS0xNy44IDMuOS0zNS42IDMuOC01My4yLTEuMi0yMS41LTYuMS0zNi41LTE5LTQxLjEtNDEuOC0uMy0xLjYtMS4zLTEuMy0yLjMtMS4zaC0yNi44Yy44IDEwLjYgMy4yIDIwLjMgOC41IDI5LjIgMjQuMiA0MC41IDgyLjcgNDguNSAxMjguMiAzNy40IDQ5LjktMTIuMyA2Ny4zLTU0LjkgNjcuNC0xMDYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlRHJpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM5IDMxNC45TDE3NS40IDMyaDE2MS4ybDE2My42IDI4Mi45SDMzOXptLTEzNy41IDIzLjZMMTIwLjkgNDgwaDMxMC41TDUxMiAzMzguNUgyMDEuNXpNMTU0LjEgNjcuNEwwIDMzOC41IDgwLjYgNDgwIDIzNyAyMDguOCAxNTQuMSA2Ny40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA1LjcyLDIxNXY0MS4yNWg1Ny4xYTQ5LjY2LDQ5LjY2LDAsMCwxLTIxLjE0LDMyLjZjLTkuNTQsNi41NS0yMS43MiwxMC4yOC0zNiwxMC4yOC0yNy42LDAtNTAuOTMtMTguOTEtNTkuMy00NC4yMmE2NS42MSw2NS42MSwwLDAsMSwwLTQxbDAsMGM4LjM3LTI1LjQ2LDMxLjctNDQuMzcsNTkuMy00NC4zN2E1Ni40Myw1Ni40MywwLDAsMSw0MC41MSwxNi4wOEwxNzYuNDcsMTU1YTEwMS4yNCwxMDEuMjQsMCwwLDAtNzAuNzUtMjcuODQsMTA1LjU1LDEwNS41NSwwLDAsMC05NC4zOCw1OS4xMSwxMDcuNjQsMTA3LjY0LDAsMCwwLDAsOTYuMTh2LjE1YTEwNS40MSwxMDUuNDEsMCwwLDAsOTQuMzgsNTljMjguNDcsMCw1Mi41NS05LjUzLDcwLTI1LjkxLDIwLTE4LjYxLDMxLjQxLTQ2LjE1LDMxLjQxLTc4LjkxQTEzMy43NiwxMzMuNzYsMCwwLDAsMjA1LjM4LDIxNVptMzg5LjQxLTRjLTEwLjEzLTkuMzgtMjMuOTMtMTQuMTQtNDEuMzktMTQuMTQtMjIuNDYsMC0zOS4zNCw4LjM0LTUwLjUsMjQuODZsMjAuODUsMTMuMjZxMTEuNDUtMTcsMzEuMjYtMTdhMzQuMDUsMzQuMDUsMCwwLDEsMjIuNzUsOC43OUEyOC4xNCwyOC4xNCwwLDAsMSw0ODcuNzksMjQ4djUuNTFjLTkuMS01LjA3LTIwLjU1LTcuNzUtMzQuNjQtNy43NS0xNi40NCwwLTI5LjY1LDMuODgtMzkuNDksMTEuNzdzLTE0LjgyLDE4LjMxLTE0LjgyLDMxLjU2YTM5Ljc0LDM5Ljc0LDAsMCwwLDEzLjk0LDMxLjI3YzkuMjUsOC4zNCwyMSwxMi41MSwzNC43OSwxMi41MSwxNi4yOSwwLDI5LjIxLTcuMywzOS0yMS44OWgxdjE3LjcyaDIyLjYxVjI1MEM1MTAuMjUsMjMzLjQ1LDUwNS4yNiwyMjAuMzQsNDk1LjEzLDIxMVpNNDc1LjksMzAwLjNhMzcuMzIsMzcuMzIsMCwwLDEtMjYuNTcsMTEuMTZBMjguNjEsMjguNjEsMCwwLDEsNDMxLDMwNS4yMWExOS40MSwxOS40MSwwLDAsMS03Ljc3LTE1LjYzYzAtNywzLjIyLTEyLjgxLDkuNTQtMTcuNDJzMTQuNTMtNywyNC4wNy03QzQ3MCwyNjUsNDgwLjMsMjY4LDQ4Ny42NCwyNzMuOTQsNDg3LjY0LDI4NC4wNyw0ODMuNjgsMjkyLjg1LDQ3NS45LDMwMC4zWm0tOTMuNjUtMTQyQTU1LjcxLDU1LjcxLDAsMCwwLDM0MS43NCwxNDJIMjc5LjA3VjMyOC43NEgzMDIuN1YyNTMuMWgzOWMxNiwwLDI5LjUtNS4zNiw0MC41MS0xNS45My44OC0uODksMS43Ni0xLjc5LDIuNjUtMi42OEE1NC40NSw1NC40NSwwLDAsMCwzODIuMjUsMTU4LjI2Wm0tMTYuNTgsNjIuMjNhMzAuNjUsMzAuNjUsMCwwLDEtMjMuMzQsOS42OEgzMDIuN1YxNjVoMzkuNjNhMzIsMzIsMCwwLDEsMjIuNiw5LjIzQTMzLjE4LDMzLjE4LDAsMCwxLDM2NS42NywyMjAuNDlaTTYxNC4zMSwyMDEsNTc3Ljc3LDI5Mi43aC0uNDVMNTM5LjksMjAxSDUxNC4yMUw1NjYsMzIwLjU1bC0yOS4zNSw2NC4zMkg1NjFMNjQwLDIwMVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR29vZ2xlUGxheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjUuMyAyMzQuM0wxMDQuNiAxM2wyODAuOCAxNjEuMi02MC4xIDYwLjF6TTQ3IDBDMzQgNi44IDI1LjMgMTkuMiAyNS4zIDM1LjN2NDQxLjNjMCAxNi4xIDguNyAyOC41IDIxLjcgMzUuM2wyNTYuNi0yNTZMNDcgMHptNDI1LjIgMjI1LjZsLTU4LjktMzQuMS02NS43IDY0LjUgNjUuNyA2NC41IDYwLjEtMzQuMWMxOC0xNC4zIDE4LTQ2LjUtMS4yLTYwLjh6TTEwNC42IDQ5OWwyODAuOC0xNjEuMi02MC4xLTYwLjFMMTA0LjYgNDk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbHVzRyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuMDYxIDIyOC40OTZjMS44MzQgOS42OTIgMy4xNDMgMTkuMzg0IDMuMTQzIDMxLjk1NkMzODkuMjA0IDM3MC4yMDUgMzE1LjU5OSA0NDggMjA0LjggNDQ4Yy0xMDYuMDg0IDAtMTkyLTg1LjkxNS0xOTItMTkyczg1LjkxNi0xOTIgMTkyLTE5MmM1MS44NjQgMCA5NS4wODMgMTguODU5IDEyOC42MTEgNTAuMjkybC01Mi4xMjYgNTAuMDNjLTE0LjE0NS0xMy42MjEtMzkuMDI4LTI5LjU5OS03Ni40ODUtMjkuNTk5LTY1LjQ4NCAwLTExOC45MiA1NC4yMjEtMTE4LjkyIDEyMS4yNzcgMCA2Ny4wNTYgNTMuNDM2IDEyMS4yNzcgMTE4LjkyIDEyMS4yNzcgNzUuOTYxIDAgMTA0LjUxMy01NC43NDUgMTA4Ljk2NS04Mi43NzNIMjA0Ljh2LTY2LjAwOWgxODEuMjYxem0xODUuNDA2IDYuNDM3VjE3OS4yaC01Ni4wMDF2NTUuNzMzaC01NS43MzN2NTYuMDAxaDU1LjczM3Y1NS43MzNoNTYuMDAxdi01NS43MzNINjI3LjJ2LTU2LjAwMWgtNTUuNzMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbHVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2NCAzNTZjLTU1LjMgMC0xMDAtNDQuNy0xMDAtMTAwczQ0LjctMTAwIDEwMC0xMDBjMjcgMCA0OS41IDkuOCA2NyAyNi4ybC0yNy4xIDI2LjFjLTcuNC03LjEtMjAuMy0xNS40LTM5LjgtMTUuNC0zNC4xIDAtNjEuOSAyOC4yLTYxLjkgNjMuMiAwIDM0LjkgMjcuOCA2My4yIDYxLjkgNjMuMiAzOS42IDAgNTQuNC0yOC41IDU2LjgtNDMuMUgxNjR2LTM0LjRoOTQuNGMxIDUgMS42IDEwLjEgMS42IDE2LjYgMCA1Ny4xLTM4LjMgOTcuNi05NiA5Ny42em0yMjAtODEuOGgtMjl2MjloLTI5LjJ2LTI5aC0yOVYyNDVoMjl2LTI5SDM1NXYyOWgyOXYyOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOS4xLDgsOCwxMTkuMSw4LDI1NlMxMTkuMSw1MDQsMjU2LDUwNCw1MDQsMzkyLjksNTA0LDI1NiwzOTIuOSw4LDI1Niw4Wk0xODUuMywzODBhMTI0LDEyNCwwLDAsMSwwLTI0OGMzMS4zLDAsNjAuMSwxMSw4MywzMi4zbC0zMy42LDMyLjZjLTEzLjItMTIuOS0zMS4zLTE5LjEtNDkuNC0xOS4xLTQyLjksMC03Ny4yLDM1LjUtNzcuMiw3OC4xUzE0Mi4zLDMzNCwxODUuMywzMzRjMzIuNiwwLDY0LjktMTkuMSw3MC4xLTUzLjNIMTg1LjNWMjM4LjFIMzAyLjJhMTA5LjIsMTA5LjIsMCwwLDEsMS45LDIwLjdjMCw3MC44LTQ3LjUsMTIxLjItMTE4LjgsMTIxLjJaTTQxNS41LDI3My44djM1LjVIMzgwVjI3My44SDM0NC41VjIzOC4zSDM4MFYyMDIuOGgzNS41djM1LjVoMzUuMnYzNS41WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGVXYWxsZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU2LjggMTI2LjhjMzcuNiA2MC42IDY0LjIgMTEzLjEgODQuMyAxNjIuNS04LjMgMzMuOC0xOC44IDY2LjUtMzEuMyA5OC4zLTEzLjItNTIuMy0yNi41LTEwMS4zLTU2LTE0OC41IDYuNS0zNi40IDIuMy03My42IDMtMTEyLjN6TTEwOS4zIDIwMEgxNi4xYy02LjUgMC0xMC41IDcuNS02LjUgMTIuN0M1MS44IDI2NyA4MS4zIDMzMC41IDEwMS4zIDQwMGgxMDMuNWMtMTYuMi02OS43LTM4LjctMTMzLjctODIuNS0xOTMuNS0zLTQtOC02LjUtMTMtNi41em00Ny44LTg4YzY4LjUgMTA4IDEzMCAyMzQuNSAxMzguMiAzNjhINDA5Yy0xMi0xMzgtNjguNC0yNjUtMTQzLjItMzY4SDE1Ny4xem0yNTEuOC02OC41Yy0xLjgtNi44LTguMi0xMS41LTE1LjItMTEuNWgtODguM2MtNS4zIDAtOSA1LTcuOCAxMC4zIDEzLjIgNDYuNSAyMi4zIDk1LjUgMjYuNSAxNDYgNDguMiA4Ni4yIDc5LjcgMTc4LjMgOTAuNiAyNzAuOCAxNS44LTYwLjUgMjUuMy0xMzMuNSAyNS4zLTIwMyAwLTczLjYtMTIuMS0xNDUuMS0zMS4xLTIxMi42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb29nbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDI2MS44QzQ4OCA0MDMuMyAzOTEuMSA1MDQgMjQ4IDUwNCAxMTAuOCA1MDQgMCAzOTMuMiAwIDI1NlMxMTAuOCA4IDI0OCA4YzY2LjggMCAxMjMgMjQuNSAxNjYuMyA2NC45bC02Ny41IDY0LjlDMjU4LjUgNTIuNiA5NC4zIDExNi42IDk0LjMgMjU2YzAgODYuNSA2OS4xIDE1Ni42IDE1My43IDE1Ni42IDk4LjIgMCAxMzUtNzAuNCAxNDAuOC0xMDYuOUgyNDh2LTg1LjNoMjM2LjFjMi4zIDEyLjcgMy45IDI0LjkgMy45IDQxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyYXRpcGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4xIDggMCAxMTkuMSAwIDI1NnMxMTEuMSAyNDggMjQ4IDI0OCAyNDgtMTExLjEgMjQ4LTI0OFMzODQuOSA4IDI0OCA4em0xMTQuNiAyMjYuNGwtMTEzIDE1Mi43LTExMi43LTE1Mi43Yy04LjctMTEuOS0xOS4xLTUwLjQgMTMuNi03MiAyOC4xLTE4LjEgNTQuNi00LjIgNjguNSAxMS45IDE1LjkgMTcuOSA0Ni42IDE2LjkgNjEuNyAwIDEzLjktMTYuMSA0MC40LTMwIDY4LjEtMTEuOSAzMi45IDIxLjYgMjIuNiA2MCAxMy44IDcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmF2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS4xIDIxMmM0LjQgNC40IDQuNCAxMS45IDAgMTYuM2wtOS43IDkuN2MtNC40IDQuNy0xMS45IDQuNy0xNi42IDBsLTEwLjUtMTAuNWMtNC40LTQuNy00LjQtMTEuOSAwLTE2LjZsOS43LTkuN2M0LjQtNC40IDExLjktNC40IDE2LjYgMGwxMC41IDEwLjh6bS0zMC4yLTE5LjdjMy0zIDMtNy44IDAtMTAuNS0yLjgtMy03LjUtMy0xMC41IDAtMi44IDIuOC0yLjggNy41IDAgMTAuNSAzLjEgMi44IDcuOCAyLjggMTAuNSAwem0tMjYgNS4zYy0zIDIuOC0zIDcuNSAwIDEwLjIgMi44IDMgNy41IDMgMTAuNSAwIDIuOC0yLjggMi44LTcuNSAwLTEwLjItMy0zLTcuNy0zLTEwLjUgMHptNzIuNS0xMy4zYy0xOS45LTE0LjQtMzMuOC00My4yLTExLjktNjguMSAyMS42LTI0LjkgNDAuNy0xNy4yIDU5LjguOCAxMS45IDExLjMgMjkuMyAyNC45IDE3LjIgNDguMi0xMi41IDIzLjUtNDUuMSAzMy4yLTY1LjEgMTkuMXptNDcuNy00NC41Yy04LjktMTAtMjMuMyA2LjktMTUuNSAxNi4xIDcuNCA5IDMyLjEgMi40IDE1LjUtMTYuMXpNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4em0tNjYuMiA0Mi42YzIuNS0xNi4xLTIwLjItMTYuNi0yNS4yLTI1LjctMTMuNi0yNC4xLTI3LjctMzYuOC01NC41LTMwLjQgMTEuNi04IDIzLjUtNi4xIDIzLjUtNi4xLjMtNi40IDAtMTMtOS40LTI0LjkgMy45LTEyLjUuMy0yMi40LjMtMjIuNCAxNS41LTguNiAyNi44LTI0LjQgMjkuMS00My4yIDMuNi0zMS0xOC44LTU5LjItNDkuOC02Mi44LTIyLjEtMi41LTQzLjcgNy43LTU0LjMgMjUuNy0yMy4yIDQwLjEgMS40IDcwLjkgMjIuNCA4MS40LTE0LjQtMS40LTM0LjMtMTEuOS00MC4xLTM0LjMtNi42LTI1LjcgMi44LTQ5LjggOC45LTYxLjQgMCAwLTQuNC01LjgtOC04LjkgMCAwLTEzLjggMC0yNC42IDUuMyAxMS45LTE1LjIgMjUuMi0xNC40IDI1LjItMTQuNCAwLTYuNC0uNi0xNC45LTMuNi0yMS42LTUuNC0xMS0yMy44LTEyLjktMzEuNyAyLjguMS0uMi4zLS40LjQtLjUtNSAxMS45LTEuMSA1NS45IDE2LjkgODcuMi0yLjUgMS40LTkuMSA2LjEtMTMgMTAtMjEuNiA5LjctNTYuMiA2MC4zLTU2LjIgNjAuMy0yOC4yIDEwLjgtNzcuMiA1MC45LTcwLjYgNzkuNy4zIDMgMS40IDUuNSAzIDcuNS0yLjggMi4yLTUuNSA1LTguMyA4LjMtMTEuOSAxMy44LTUuMyAzNS4yIDE3LjcgMjQuNCAxNS44LTcuMiAyOS42LTIwLjIgMzYuMy0zMC40IDAgMC01LjUtNS0xNi4zLTQuNCAyNy43LTYuNiAzNC4zLTkuNCA0Ni4yLTkuMSA4IDMuOSA4LTM0LjMgOC0zNC4zIDAtMTQuNy0yLjItMzEtMTEuMS00MS41IDEyLjUgMTIuMiAyOS4xIDMyLjcgMjggNjAuNi0uOCAxOC4zLTE1LjIgMjMtMTUuMiAyMy05LjEgMTYuNi00My4yIDY1LjktMzAuNCAxMDYgMCAwLTkuNy0xNC45LTEwLjItMjIuMS0xNy40IDE5LjQtNDYuNSA1Mi4zLTI0LjYgNjQuNSAyNi42IDE0LjcgMTA4LjgtODguNiAxMjYuMi0xNDIuMyAzNC42LTIwLjggNTUuNC00Ny4zIDYzLjktNjUgMjIgNDMuNSA5NS4zIDk0LjUgMTAxLjEgNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBmaXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMi41IDMwMS40YzAtNzMuOCAxMDUuMS0xMjIuNSAxMDUuMS0yMDMgMC00Ny4xLTM0LTg4LTM5LjEtOTAuNC40IDMuMy42IDYuNy42IDEwQzE3OS4xIDExMC4xIDMyIDE3MS45IDMyIDI4Ni42YzAgNDkuOCAzMi4yIDc5LjIgNjYuNSAxMDguMyA2NS4xIDQ2LjcgNzguMSA3MS40IDc4LjEgODYuNiAwIDEwLjEtNC44IDE3LTQuOCAyMi4zIDEzLjEtMTYuNyAxNy40LTMxLjkgMTcuNS00Ni40IDAtMjkuNi0yMS43LTU2LjMtNDQuMi04Ni41LTE2LTIyLjMtMzIuNi00Mi42LTMyLjYtNjkuNXptMjA1LjMtMzljLTEyLjEtNjYuOC03OC0xMjQuNC05NC43LTEzMC45bDQgNy4yYzIuNCA1LjEgMy40IDEwLjkgMy40IDE3LjEgMCA0NC43LTU0LjIgMTExLjItNTYuNiAxMTYuNy0yLjIgNS4xLTMuMiAxMC41LTMuMiAxNS44IDAgMjAuMSAxNS4yIDQyLjEgMTcuOSA0Mi4xIDIuNCAwIDU2LjYtNTUuNCA1OC4xLTg3LjcgNi40IDExLjcgOS4xIDIyLjYgOS4xIDMzLjQgMCA0MS4yLTQxLjggOTYuOS00MS44IDk2LjkgMCAxMS42IDMxLjkgNTMuMiAzNS41IDUzLjIgMSAwIDIuMi0xLjQgMy4yLTIuNCAzNy45LTM5LjMgNjcuMy04NSA2Ny4zLTEzNi44IDAtOC0uNy0xNi4yLTIuMi0yNC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcnVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MS4zIDE4OS4zYy0xLjEgMTAgNS4yIDE5LjEgNS4yIDE5LjEuNy03LjUgMi4yLTEyLjggNC0xNi42LjQgMTAuMyAzLjIgMjMuNSAxMi44IDM0LjEgNi45IDcuNiAzNS42IDIzLjMgNTQuOSA2LjEgMSAyLjQgMi4xIDUuMyAzIDguNSAyLjkgMTAuMy0yLjcgMjUuMy0yLjcgMjUuM3MxNS4xLTE3LjEgMTMuOS0zMi41YzEwLjgtLjUgMjEuNC04LjQgMjEuMS0xOS41IDAgMC0xOC45IDEwLjQtMzUuNS04LjgtOS43LTExLjItNDAuOS00Mi04My4xLTMxLjggNC4zIDEgOC45IDIuNCAxMy41IDQuMWgtLjFjLTQuMiAyLTYuNSA3LjEtNyAxMnptMjguMy0xLjhjMTkuNSAxMSAzNy40IDI1LjcgNDQuOSAzNy01LjcgMy4zLTIxLjcgMTAuNC0zOC0xLjctMTAuMy03LjYtOS44LTI2LjItNi45LTM1LjN6bTE0Mi4xIDQ1LjhjLTEuMiAxNS41IDEzLjkgMzIuNSAxMy45IDMyLjVzLTUuNi0xNS0yLjctMjUuM2MuOS0zLjIgMi02IDMtOC41IDE5LjMgMTcuMyA0OCAxLjUgNTQuOC02LjEgOS42LTEwLjYgMTIuMy0yMy44IDEyLjgtMzQuMSAxLjggMy44IDMuNCA5LjEgNCAxNi42IDAgMCA2LjQtOS4xIDUuMi0xOS4xLS42LTUtMi45LTEwLTctMTEuOGgtLjFjNC42LTEuOCA5LjItMy4yIDEzLjUtNC4xLTQyLjMtMTAuMi03My40IDIwLjYtODMuMSAzMS44LTE2LjcgMTkuMi0zNS41IDguOC0zNS41IDguOC0uMiAxMC45IDEwLjQgMTguOSAyMS4yIDE5LjN6bTYyLjctNDUuOGMzIDkuMSAzLjQgMjcuNy03IDM1LjQtMTYuMyAxMi4xLTMyLjIgNS0zNy45IDEuNiA3LjUtMTEuNCAyNS40LTI2IDQ0LjktMzd6TTE2MCA0MTguNWgtMjkuNGMtNS41IDAtOC4yIDEuNi05LjUgMi45LTEuOSAyLTIuMiA0LjctLjkgOC4xIDMuNSA5LjEgMTEuNCAxNi41IDEzLjcgMTguNiAzLjEgMi43IDcuNSA0LjMgMTEuOCA0LjMgNC40IDAgOC4zLTEuNyAxMS00LjYgNy41LTguMiAxMS45LTE3LjEgMTMtMTkuOC42LTEuNSAxLjMtNC41LS45LTYuOC0xLjgtMS44LTQuNy0yLjctOC44LTIuN3ptMTg5LjItMTAxLjJjLTIuNCAxNy45LTEzIDMzLjgtMjQuNiA0My43LTMuMS0yMi43LTMuNy01NS41LTMuNy02Mi40IDAtMTQuNyA5LjUtMjQuNSAxMi4yLTI2LjEgMi41LTEuNSA1LjQtMyA4LjMtNC42IDE4LTkuNiA0MC40LTIxLjYgNDAuNC00My43IDAtMTYuMi05LjMtMjMuMi0xNS40LTI3LjgtLjgtLjYtMS41LTEuMS0yLjItMS43LTIuMS0xLjctMy43LTMtNC4zLTQuNC00LjQtOS44LTMuNi0zNC4yLTEuNy0zNy42LjYtLjYgMTYuNy0yMC45IDExLjgtMzkuMi0yLTcuNC02LjktMTMuMy0xNC4xLTE3LTUuMy0yLjctMTEuOS00LjItMTkuNS00LjUtLjEtMi0uNS0zLjktLjktNS45LS42LTIuNi0xLjEtNS4zLS45LTguMS40LTQuNy44LTkgMi4yLTExLjMgOC40LTEzLjMgMjguOC0xNy42IDI5LTE3LjZsMTIuMy0yLjQtOC4xLTkuNWMtLjEtLjItMTcuMy0xNy41LTQ2LjMtMTcuNS03LjkgMC0xNiAxLjMtMjQuMSAzLjktMjQuMiA3LjgtNDIuOSAzMC41LTQ5LjQgMzkuMy0zLjEtMS02LjMtMS45LTkuNi0yLjctNC4yLTE1LjggOS0zOC41IDktMzguNXMtMTMuNi0zLTMzLjcgMTUuMmMtMi42LTYuNS04LjEtMjAuNS0xLjgtMzcuMkMxODQuNiAxMC4xIDE3Ny4yIDI2IDE3NSA0MC40Yy03LjYtNS40LTYuNy0yMy4xLTcuMi0yNy42LTcuNS45LTI5LjIgMjEuOS0yOC4yIDQ4LjMtMiAuNS0zLjkgMS4xLTUuOSAxLjctNi41LTguOC0yNS4xLTMxLjUtNDkuNC0zOS4zLTcuOS0yLjItMTYtMy41LTIzLjktMy41LTI5IDAtNDYuMSAxNy4zLTQ2LjMgMTcuNUw2IDQ2LjlsMTIuMyAyLjRjLjIgMCAyMC42IDQuMyAyOSAxNy42IDEuNCAyLjIgMS44IDYuNiAyLjIgMTEuMy4yIDIuOC0uNCA1LjUtLjkgOC4xLS40IDEuOS0uOCAzLjktLjkgNS45LTcuNy4zLTE0LjIgMS44LTE5LjUgNC41LTcuMiAzLjctMTIuMSA5LjYtMTQuMSAxNy01IDE4LjIgMTEuMiAzOC41IDExLjggMzkuMiAxLjkgMy40IDIuNyAyNy44LTEuNyAzNy42LS42IDEuNC0yLjIgMi43LTQuMyA0LjQtLjcuNS0xLjQgMS4xLTIuMiAxLjctNi4xIDQuNi0xNS40IDExLjctMTUuNCAyNy44IDAgMjIuMSAyMi40IDM0LjEgNDAuNCA0My43IDMgMS42IDUuOCAzLjEgOC4zIDQuNiAyLjcgMS42IDEyLjIgMTEuNCAxMi4yIDI2LjEgMCA2LjktLjYgMzkuNy0zLjcgNjIuNC0xMS42LTkuOS0yMi4yLTI1LjktMjQuNi00My44IDAgMC0yOS4yIDIyLjYtMjAuNiA3MC44IDUuMiAyOS41IDIzLjIgNDYuMSA0NyA1NC43IDguOCAxOS4xIDI5LjQgNDUuNyA2Ny4zIDQ5LjZDMTQzIDUwNC4zIDE2MyA1MTIgMTkyLjIgNTEyaC4yYzI5LjEgMCA0OS4xLTcuNyA2My42LTE5LjUgMzcuOS0zLjkgNTguNS0zMC41IDY3LjMtNDkuNiAyMy44LTguNyA0MS43LTI1LjIgNDctNTQuNyA4LjItNDguNC0yMS4xLTcwLjktMjEuMS03MC45ek0zMDUuNyAzNy43YzUuNi0xLjggMTEuNi0yLjcgMTcuNy0yLjcgMTEgMCAxOS45IDMgMjQuNyA1LTMuMSAxLjQtNi40IDMuMi05LjcgNS4zLTIuNC0uNC01LjYtLjgtOS4yLS44LTEwLjUgMC0yMC41IDMuMS0yOC43IDguOS0xMi4zIDguNy0xOCAxNi45LTIwLjcgMjIuNC0yLjItMS4zLTQuNS0yLjUtNy4xLTMuNy0xLjYtLjgtMy4xLTEuNS00LjctMi4yIDYuMS05LjEgMTkuOS0yNi41IDM3LjctMzIuMnptMjEgMTguMmMtLjggMS0xLjYgMi4xLTIuMyAzLjItMy4zIDUuMi0zLjkgMTEuNi00LjQgMTcuOC0uNSA2LjQtMS4xIDEyLjUtNC40IDE3LTQuMi44LTguMSAxLjctMTEuNSAyLjctMi4zLTMuMS01LjYtNy0xMC41LTExLjIgMS40LTQuOCA1LjUtMTYuMSAxMy41LTIyLjUgNS42LTQuMyAxMi4yLTYuNyAxOS42LTd6TTQ1LjYgNDUuM2MtMy4zLTIuMi02LjYtNC05LjctNS4zIDQuOC0yIDEzLjctNSAyNC43LTUgNi4xIDAgMTIgLjkgMTcuNyAyLjcgMTcuOCA1LjggMzEuNiAyMy4yIDM3LjcgMzIuMS0xLjYuNy0zLjIgMS40LTQuOCAyLjItMi41IDEuMi00LjkgMi41LTcuMSAzLjctMi42LTUuNC04LjMtMTMuNy0yMC43LTIyLjQtOC4zLTUuOC0xOC4yLTguOS0yOC44LTguOS0zLjQuMS02LjYuNS05IC45em00NC43IDQwLjFjLTQuOSA0LjItOC4zIDgtMTAuNSAxMS4yLTMuNC0uOS03LjMtMS45LTExLjUtMi43QzY1IDg5LjUgNjQuNSA4My40IDY0IDc3Yy0uNS02LjItMS4xLTEyLjYtNC40LTE3LjgtLjctMS4xLTEuNS0yLjItMi4zLTMuMiA3LjQuMyAxNCAyLjYgMTkuNSA3IDggNi4zIDEyLjEgMTcuNiAxMy41IDIyLjR6TTU4LjEgMjU5LjljLTIuNy0xLjYtNS42LTMuMS04LjQtNC42LTE0LjktOC0zMC4yLTE2LjMtMzAuMi0zMC41IDAtMTEuMSA0LjMtMTQuNiA4LjktMTguMmwuNS0uNGMuNy0uNiAxLjQtMS4yIDIuMi0xLjgtLjkgNy4yLTEuOSAxMy4zLTIuNyAxNC45IDAgMCAxMi4xLTE1IDE1LjctNDQuMyAxLjQtMTEuNS0xLjEtMzQuMy01LjEtNDMgLjIgNC45IDAgOS44LS4zIDE0LjQtLjQtLjgtLjgtMS42LTEuMy0yLjItMy4yLTQtMTEuOC0xNy41LTkuNC0yNi42LjktMy41IDMuMS02IDYuNy03LjggMy44LTEuOSA4LjgtMi45IDE1LjEtMi45IDEyLjMgMCAyNS45IDMuNyAzMi45IDYgMjUuMSA4IDU1LjQgMzAuOSA2NC4xIDM3LjcuMi4yLjQuMy40LjNsNS42IDMuOS0zLjUtNS44Yy0uMi0uMy0xOS4xLTMxLjQtNTMuMi00Ni41IDItMi45IDcuNC04LjEgMjEuNi0xNS4xIDIxLjQtMTAuNSA0Ni41LTE1LjggNzQuMy0xNS44IDI3LjkgMCA1Mi45IDUuMyA3NC4zIDE1LjggMTQuMiA2LjkgMTkuNiAxMi4yIDIxLjYgMTUuMS0zNCAxNS4xLTUyLjkgNDYuMi01My4xIDQ2LjVsLTMuNSA1LjggNS42LTMuOXMuMi0uMS40LS4zYzguNy02LjggMzktMjkuOCA2NC4xLTM3LjcgNy0yLjIgMjAuNi02IDMyLjktNiA2LjMgMCAxMS4zIDEgMTUuMSAyLjkgMy41IDEuOCA1LjcgNC40IDYuNyA3LjggMi41IDkuMS02LjEgMjIuNi05LjQgMjYuNi0uNS42LS45IDEuMy0xLjMgMi4yLS4zLTQuNi0uNS05LjUtLjMtMTQuNC00IDguOC02LjUgMzEuNS01LjEgNDMgMy42IDI5LjMgMTUuNyA0NC4zIDE1LjcgNDQuMy0uOC0xLjYtMS44LTcuNy0yLjctMTQuOS43LjYgMS41IDEuMiAyLjIgMS44bC41LjRjNC42IDMuNyA4LjkgNy4xIDguOSAxOC4yIDAgMTQuMi0xNS40IDIyLjUtMzAuMiAzMC41LTIuOSAxLjUtNS43IDMuMS04LjQgNC42LTguNyA1LTE4IDE2LjctMTkuMSAzNC4yLS45IDE0LjYuOSA0OS45IDMuNCA3NS45LTEyLjQgNC44LTI2LjcgNi40LTM5LjcgNi44LTItNC4xLTMuOS04LjUtNS41LTEzLjEtLjctMi0xOS42LTUxLjEtMjYuNC02Mi4yIDUuNSAzOSAxNy41IDczLjcgMjMuNSA4OS42LTMuNS0uNS03LjMtLjctMTEuNy0uN2gtMTE3Yy00LjQgMC04LjMuMy0xMS43LjcgNi0xNS45IDE4LjEtNTAuNiAyMy41LTg5LjYtNi44IDExLjItMjUuNyA2MC4zLTI2LjQgNjIuMi0xLjYgNC42LTMuNSA5LTUuNSAxMy4xLTEzLS40LTI3LjItMi0zOS43LTYuOCAyLjUtMjYgNC4zLTYxLjIgMy40LTc1LjktLjktMTcuNC0xMC4zLTI5LjItMTktMzQuMnpNMzQuOCA0MDQuNmMtMTIuMS0yMC04LjctNTQuMS0zLjctNTkuMSAxMC45IDM0LjQgNDcuMiA0NC4zIDc0LjQgNDUuNC0yLjcgNC4yLTUuMiA3LjYtNyAxMGwtMS40IDEuNGMtNy4yIDcuOC04LjYgMTguNS00LjEgMzEuOC0yMi43LS4xLTQ2LjMtOS44LTU4LjItMjkuNXptNDUuNyA0My41YzYgMS4xIDEyLjIgMS45IDE4LjYgMi40IDMuNSA4IDcuNCAxNS45IDEyLjMgMjMuMS0xNC40LTUuOS0yNC40LTE2LTMwLjktMjUuNXpNMTkyIDQ5OC4yYy02MC42LS4xLTc4LjMtNDUuOC04NC45LTY0LjctMy43LTEwLjUtMy40LTE4LjIuOS0yMy4xIDIuOS0zLjMgOS41LTcuMiAyNC42LTcuMmgxMTguOGMxNS4xIDAgMjEuOCAzLjkgMjQuNiA3LjIgNC4yIDQuOCA0LjUgMTIuNi45IDIzLjEtNi42IDE4LjgtMjQuMyA2NC42LTg0LjkgNjQuN3ptODAuNi0yNC42YzQuOS03LjIgOC44LTE1LjEgMTIuMy0yMy4xIDYuNC0uNSAxMi42LTEuMyAxOC42LTIuNC02LjUgOS41LTE2LjUgMTkuNi0zMC45IDI1LjV6bTc2LjYtNjljLTEyIDE5LjctMzUuNiAyOS4zLTU4LjEgMjkuNyA0LjUtMTMuMyAzLjEtMjQuMS00LjEtMzEuOC0uNC0uNS0uOS0xLTEuNC0xLjUtMS44LTIuNC00LjMtNS44LTctMTAgMjcuMi0xLjIgNjMuNS0xMSA3NC40LTQ1LjQgNSA1IDguNCAzOS4xLTMuOCA1OXpNMTkxLjkgMTg3LjdoLjJjMTIuNy0uMSAyNy4yLTE3LjggMjcuMi0xNy44LTkuOSA2LTE4LjggOC4xLTI3LjMgOC4zLTguNS0uMi0xNy40LTIuMy0yNy4zLTguMyAwIDAgMTQuNSAxNy42IDI3LjIgMTcuOHptNjEuNyAyMzAuN2gtMjkuNGMtNC4yIDAtNy4yLjktOC45IDIuNy0yLjIgMi4zLTEuNSA1LjItLjkgNi43IDEgMi42IDUuNSAxMS4zIDEzIDE5LjMgMi43IDIuOSA2LjYgNC41IDExIDQuNXM4LjctMS42IDExLjgtNC4yYzIuMy0yIDEwLjItOS4yIDEzLjctMTguMSAxLjMtMy4zIDEtNi0uOS03LjktMS4zLTEuMy00LTIuOS05LjQtM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3VpbGRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuNDI3LDY0SDQuNTcxYzAsMTAzLjI2LDIyLjE5MiwxODAuMDYsNDMuNDE4LDIyMi4zNThDMTEyLjA0Niw0MTQuMTM1LDIyNCw0NDgsMjI1LjI1Niw0NDhhMzEyLjgyNCwzMTIuODI0LDAsMCwwLDE0MC41NS0xMDMuNDc3YzI1LjkwNy0zMy45MjMsNTMuMS04Ny4xOSw2NS45MTYtMTQ1Ljc2MUgxNzEuODMzYzQuMTQsMzYuNDI5LDIyLjE3Nyw2Ny45NDYsNDUuMSw4Ni45NDRoODguNTg5Yy0xNy4wMTIsMjguMjEzLTQ4LjE4Niw1NC40LTgwLjQ1Niw2OS40ODItMzEuMjMyLTEzLjI1OS02OS4wOS00Ni41NDQtOTYuNTQ4LTk4LjM2Mi0yNi43MjYtNTMuODMzLTI3LjA5Mi0xMDUuODgzLTI3LjA5Mi0xMDUuODgzSDQzNy41NzNBNjI1LjkxLDYyNS45MSwwLDAsMCw0NDMuNDI3LDY0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHdWxwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOS44IDM5MS4xbC0xNC4xIDI0LjYtNC42IDgwLjJjMCA4LjktMjguMyAxNi4xLTYzLjEgMTYuMXMtNjMuMS03LjItNjMuMS0xNi4xbC01LjgtNzkuNC0xNC45LTI1LjRjNDEuMiAxNy4zIDEyNiAxNi43IDE2NS42IDB6bS0xOTYtMjUzLjNsMTMuNiAxMjUuNWM1LjktMjAgMjAuOC00NyA0MC01NS4yIDYuMy0yLjcgMTIuNy0yLjcgMTguNy45IDUuMiAzIDkuNiA5LjMgMTAuMSAxMS44IDEuMiA2LjUtMiA5LjEtNC41IDkuMS0zIDAtNS4zLTQuNi02LjgtNy4zLTQuMS03LjMtMTAuMy03LjYtMTYuOS0yLjgtNi45IDUtMTIuOSAxMy40LTE3LjEgMjAuNy01LjEgOC44LTkuNCAxOC41LTEyIDI4LjItMS41IDUuNi0yLjkgMTQuNi0uNiAxOS45IDEgMi4yIDIuNSAzLjYgNC45IDMuNiA1IDAgMTIuMy02LjYgMTUuOC0xMC4xIDQuNS00LjUgMTAuMy0xMS41IDEyLjUtMTZsNS4yLTE1LjVjMi42LTYuOCA5LjktNS42IDkuOSAwIDAgMTAuMi0zLjcgMTMuNi0xMCAzNC43LTUuOCAxOS41LTcuNiAyNS44LTcuNiAyNS44LS43IDIuOC0zLjQgNy41LTYuMyA3LjUtMS4yIDAtMi4xLS40LTIuNi0xLjItMS0xLjQtLjktNS4zLS44LTYuMy4yLTMuMiA2LjMtMjIuMiA3LjMtMjUuMi0yIDIuMi00LjEgNC40LTYuNCA2LjYtNS40IDUuMS0xNC4xIDExLjgtMjEuNSAxMS44LTMuNCAwLTUuNi0uOS03LjctMi40bDcuNiA3OS42YzIgNSAzOS4yIDE3LjEgODguMiAxNy4xIDQ5LjEgMCA4Ni4zLTEyLjIgODguMi0xNy4xbDEwLjktOTQuNmMtNS43IDUuMi0xMi4zIDExLjYtMTkuNiAxNC44LTUuNCAyLjMtMTcuNCAzLjgtMTcuNC01LjcgMC01LjIgOS4xLTE0LjggMTQuNC0yMS41IDEuNC0xLjcgNC43LTUuOSA0LjctOC4xIDAtMi45LTYtMi4yLTExLjcgMi41LTMuMiAyLjctNi4yIDYuMy04LjcgOS43LTQuMyA2LTYuNiAxMS4yLTguNSAxNS41LTYuMiAxNC4yLTQuMSA4LjYtOS4xIDIyLTUgMTMuMy00LjIgMTEuOC01LjIgMTQtLjkgMS45LTIuMiAzLjUtNCA0LjUtMS45IDEtNC41LjktNi4xLS4zLS45LS42LTEuMy0xLjktMS4zLTMuNyAwLS45LjEtMS44LjMtMi43IDEuNS02LjEgNy44LTE4LjEgMTUtMzQuMyAxLjYtMy43IDEtMi42LjgtMi4zLTYuMiA2LTEwLjkgOC45LTE0LjQgMTAuNS01LjggMi42LTEzIDIuNi0xNC41LTQuMS0uMS0uNC0uMS0uOC0uMi0xLjItMTEuOCA5LjItMjQuMyAxMS43LTIwLTguMS00LjYgOC4yLTEyLjYgMTQuOS0yMi40IDE0LjktNC4xIDAtNy4xLTEuNC04LjYtNS4xLTIuMy01LjUgMS4zLTE0LjkgNC42LTIzLjggMS43LTQuNSA0LTkuOSA3LjEtMTYuMiAxLjYtMy40IDQuMi01LjQgNy42LTQuNS42LjIgMS4xLjQgMS42LjcgMi42IDEuOCAxLjYgNC41LjMgNy4yLTMuOCA3LjUtNy4xIDEzLTkuMyAyMC44LS45IDMuMy0yIDkgMS41IDkgMi40IDAgNC43LS44IDYuOS0yLjQgNC42LTMuNCA4LjMtOC41IDExLjEtMTMuNSAyLTMuNiA0LjQtOC4zIDUuNi0xMi4zLjUtMS43IDEuMS0zLjMgMS44LTQuOCAxLjEtMi41IDIuNi01LjEgNS4yLTUuMSAxLjMgMCAyLjQuNSAzLjIgMS41IDEuNyAyLjIgMS4zIDQuNS40IDYuOS0yIDUuNi00LjcgMTAuNi02LjkgMTYuNy0xLjMgMy41LTIuNyA4LTIuNyAxMS43IDAgMy40IDMuNyAyLjYgNi44IDEuMiAyLjQtMS4xIDQuOC0yLjggNi44LTQuNSAxLjItNC45LjktMy44IDI2LjQtNjguMiAxLjMtMy4zIDMuNy00LjcgNi4xLTQuNyAxLjIgMCAyLjIuNCAzLjIgMS4xIDEuNyAxLjMgMS43IDQuMSAxIDYuMi0uNyAxLjktLjYgMS4zLTQuNSAxMC41LTUuMiAxMi4xLTguNiAyMC44LTEzLjIgMzEuOS0xLjkgNC42LTcuNyAxOC45LTguNyAyMi4zLS42IDIuMi0xLjMgNS44IDEgNS44IDUuNCAwIDE5LjMtMTMuMSAyMy4xLTE3IC4yLS4zLjUtLjQuOS0uNi42LTEuOSAxLjItMy43IDEuNy01LjUgMS40LTMuOCAyLjctOC4yIDUuMy0xMS4zLjgtMSAxLjctMS42IDIuNy0xLjYgMi44IDAgNC4yIDEuMiA0LjIgNCAwIDEuMS0uNyA1LjEtMS4xIDYuMiAxLjQtMS41IDIuOS0zIDQuNS00LjUgMTUtMTMuOSAyNS43LTYuOCAyNS43LjIgMCA3LjQtOC45IDE3LjctMTMuOCAyMy40LTEuNiAxLjktNC45IDUuNC01IDYuNCAwIDEuMy45IDEuOCAyLjIgMS44IDIgMCA2LjQtMy41IDgtNC43IDUtMy45IDExLjgtOS45IDE2LjYtMTQuMWwxNC44LTEzNi44Yy0zMC41IDE3LjEtMTk3LjYgMTcuMi0yMjguMy4yem0yMjkuNy04LjVjMCAyMS0yMzEuMiAyMS0yMzEuMiAwIDAtOC44IDUxLjgtMTUuOSAxMTUuNi0xNS45IDkgMCAxNy44LjEgMjYuMy40bDEyLjYtNDguN0wyMjguMS42YzEuNC0xLjQgNS44LS4yIDkuOSAzLjVzNi42IDcuOSA1LjMgOS4zbC0uMS4xTDE4NS45IDc0bC0xMCA0MC43YzM5LjkgMi42IDY3LjYgOC4xIDY3LjYgMTQuNnptLTY5LjQgNC42YzAtLjgtLjktMS41LTIuNS0yLjFsLS4yLjhjMCAxLjMtNSAyLjQtMTEuMSAyLjRzLTExLjEtMS4xLTExLjEtMi40YzAtLjEgMC0uMi4xLS4zbC4yLS43Yy0xLjguNi0zIDEuNC0zIDIuMyAwIDIuMSA2LjIgMy43IDEzLjcgMy43IDcuNy4xIDEzLjktMS42IDEzLjktMy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYWNrZXJOZXdzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIxLjIgMjI5LjJIMjFjLjEtLjEuMi0uMy4zLS40IDAgLjEgMCAuMy0uMS40em0yMTggNTMuOVYzODRoLTMxLjRWMjgxLjNMMTI4IDEyOGgzNy4zYzUyLjUgOTguMyA0OS4yIDEwMS4yIDU5LjMgMTI1LjYgMTIuMy0yNyA1LjgtMjQuNCA2MC42LTEyNS42SDMyMGwtODAuOCAxNTUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFja2VyTmV3cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDMydjQ0OGg0NDhWMzJIMHptMjEuMiAxOTcuMkgyMWMuMS0uMS4yLS4zLjMtLjQgMCAuMSAwIC4zLS4xLjR6bTIxOCA1My45VjM4NGgtMzEuNFYyODEuM0wxMjggMTI4aDM3LjNjNTIuNSA5OC4zIDQ5LjIgMTAxLjIgNTkuMyAxMjUuNiAxMi4zLTI3IDUuOC0yNC40IDYwLjYtMTI1LjZIMzIwbC04MC44IDE1NS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYWNrZXJyYW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Ny41IDEyOEM0NjMgMTAzLjA1IDI4NS4xMyAwIDI1Ni4xNiAwUzQ5LjI1IDEwMi43OSAzNC44NCAxMjhzLTE0LjQ5IDIzMC44IDAgMjU2IDE5Mi4zOCAxMjggMjIxLjMyIDEyOFM0NjMgNDA5LjA4IDQ3Ny40OSAzODRzMTQuNTEtMjMxIC4wMS0yNTZ6TTMxNi4xMyA0MTQuMjJjLTQgMC00MC45MS0zNS43Ny0zOC0zOC42OS44Ny0uODcgNi4yNi0xLjQ4IDE3LjU1LTEuODMgMC0yNi4yMy41OS02OC41OS45NC04Ni4zMiAwLTItLjQ0LTMuNDMtLjQ0LTUuODVoLTc5LjkzYzAgNy4xLS40NiAzNi4yIDEuMzcgNzIuODguMjMgNC41NC0xLjU4IDYtNS43NCA1Ljk0LTEwLjEzIDAtMjAuMjctLjExLTMwLjQxLS4wOC00LjEgMC01Ljg3LTEuNTMtNS43NC02LjExLjkyLTMzLjQ0IDMtODQtLjE1LTIxMi42N3YtMy4xN2MtOS42Ny0uMzUtMTYuMzgtMS0xNy4yNi0xLjg0LTIuOTItMi45MiAzNC41NC0zOC42OSAzOC40OS0zOC42OXM0MS4xNyAzNS43OCAzOC4yNyAzOC42OWMtLjg3Ljg3LTcuOSAxLjQ5LTE2Ljc3IDEuODR2My4xNmMtMi40MiAyNS43NS0yIDc5LjU5LTIuNjMgMTA1LjM5aDgwLjI2YzAtNC41NS4zOS0zNC43NC0xLjItODMuNjQtLjEtMy4zOS45NS01LjE3IDQuMjEtNS4yIDExLjA3LS4wOCAyMi4xNS0uMTMgMzMuMjMtLjA2IDMuNDYgMCA0LjU3IDEuNzIgNC41IDUuMzhDMzMzIDM1NC42NCAzMzYgMzQxLjI5IDMzNiAzNzMuNjljOC44Ny4zNSAxNi44MiAxIDE3LjY5IDEuODQgMi44OCAyLjkxLTMzLjYyIDM4LjY5LTM3LjU4IDM4LjY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1MS42IDE1Ny42YzAtMS45LS45LTIuOC0yLjgtMi44aC00MC45Yy0xLjYgMC0yLjcgMS40LTIuNyAyLjh2MjAxLjhjMCAxLjQgMS4xIDIuOCAyLjcgMi44aDQwLjljMS45IDAgMi44LS45IDIuOC0yLjh6TTE1Ni41IDE2OGMtMTYuMS0xMS44LTM2LjMtMTcuOS02MC4zLTE4LTE4LjEtLjEtMzQuNiAzLjctNDkuOCAxMS40VjgwLjJjMC0xLjgtLjktMi43LTIuOC0yLjdIMi43Yy0xLjggMC0yLjcuOS0yLjcgMi43djI3OS4yYzAgMS45LjkgMi44IDIuNyAyLjhoNDFjMS45IDAgMi44LS45IDIuOC0yLjhWMjIzLjNjMC0uOC0yLjgtMjcgNDUuOC0yNyA0OC41IDAgNDUuOCAyNi4xIDQ1LjggMjd2MTIyLjZjMCA5IDcuMyAxNi4zIDE2LjQgMTYuM2gyNy4zYzEuOCAwIDIuNy0uOSAyLjctMi44VjIyMy4zYzAtMjMuNC05LjMtNDEuOC0yOC01NS4zem00NzguNCAxMTAuMWMtNi44LTE1LjctMTguNC0yNy0zNC45LTM0LjFsLTU3LjYtMjUuM2MtOC42LTMuNi05LjItMTEuMi0yLjYtMTYuMSA3LjQtNS41IDQ0LjMtMTMuOSA4NCA2LjggMS43IDEgNC0uMyA0LTIuNHYtNDQuN2MwLTEuMy0uNi0yLjEtMS45LTIuNi0xNy43LTYuNi0zNi4xLTkuOS01NS4xLTkuOS0yNi41IDAtNDUuMyA1LjgtNTguNSAxNS40LS41LjQtMjguNCAyMC0yMi43IDUzLjcgMy40IDE5LjYgMTUuOCAzNC4yIDM3LjIgNDMuNmw1My42IDIzLjVjMTEuNiA1LjEgMTUuMiAxMy4zIDEyLjIgMjEuMi0zLjcgOS4xLTEzLjIgMTMuNi0zNi41IDEzLjYtMjQuMyAwLTQ0LjctOC45LTU4LjQtMTkuMS0yLjEtMS40LTQuNC4yLTQuNCAyLjN2MzQuNGMwIDEwLjQgNC45IDE3LjMgMTQuNiAyMC43IDE1LjYgNS41IDMxLjYgOC4yIDQ4LjIgOC4yIDEyLjcgMCAyNS44LTEuMiAzNi4zLTQuMy43LS4zIDM2LTguOSA0NS42LTQ1LjggMy41LTEzLjUgMi40LTI2LjUtMy4xLTM5LjF6TTM3Ni4yIDE0OS44Yy0zMS43IDAtMTA0LjIgMjAuMS0xMDQuMiAxMDMuNXYxODMuNWMwIC44LjYgMi43IDIuNyAyLjdoNDAuOWMxLjkgMCAyLjgtLjkgMi44LTIuN1YzNDhjMTYuNSAxMi43IDM1LjggMTkuMSA1Ny43IDE5LjEgNjAuNSAwIDEwOC43LTQ4LjUgMTA4LjctMTA4LjcuMS02MC4zLTQ4LjItMTA4LjYtMTA4LjYtMTA4LjZ6bTAgMTcwLjljLTE3LjIgMC0zMS45LTYuMS00NC0xOC4yLTEyLjItMTIuMi0xOC4yLTI2LjgtMTguMi00NCAwLTM0LjUgMjcuNi02Mi4yIDYyLjItNjIuMiAzNC41IDAgNjIuMiAyNy42IDYyLjIgNjIuMi4xIDM0LjMtMjcuMyA2Mi4yLTYyLjIgNjIuMnpNMjI4LjMgNzIuNWMtMTUuOSAwLTI4LjggMTIuOS0yOC45IDI4LjkgMCAxNS42IDEyLjcgMjguOSAyOC45IDI4LjlzMjguOS0xMy4xIDI4LjktMjguOWMwLTE2LjItMTMtMjguOS0yOC45LTI4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpcmVBSGVscGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My4xIDBINzEuOUM2Ny45IDM3LjMgMzcuNCA2Ny44IDAgNzEuN3YzNzEuNWMzNy40IDQuOSA2NiAzMi40IDcxLjkgNjguOGgzNzIuMmMzLTM2LjQgMzIuNS02NS44IDY3LjktNjkuOFY3MS43Yy0zNi40LTUuOS02NS0zNS4zLTY4LjktNzEuN3ptLTM3IDQwNC45Yy0zNi4zIDAtMTguOC0yLTU1LjEtMi0zNS44IDAtMjEgMi01Ni4xIDItNS45IDAtNC45LTguMiAwLTkuOCAyMi44LTcuNiAyMi45LTEwLjIgMjQuNi0xMi44IDEwLjQtMTUuNiA1LjktODMgNS45LTExMyAwLTUuMy02LjQtMTIuOC0xMy44LTEyLjhIMjAwLjRjLTcuNCAwLTEzLjggNy41LTEzLjggMTIuOCAwIDMwLTQuNSA5Ny40IDUuOSAxMTMgMS43IDIuNSAxLjggNS4yIDI0LjYgMTIuOCA0LjkgMS42IDYgOS44IDAgOS44LTM1LjEgMC0yMC4zLTItNTYuMS0yLTM2LjMgMC0xOC44IDItNTUuMSAyLTcuOSAwLTUuOC0xMC44IDAtMTAuOCAxMC4yLTMuNCAxMy41LTMuNSAyMS43LTEzLjggNy43LTEyLjkgNy45LTQ0LjQgNy45LTEyNy44VjE1MS4zYzAtMjIuMi0xMi4yLTI4LjMtMjguNi0zMi40LTguOC0yLjItNC0xMS44IDEtMTEuOCAzNi41IDAgMjAuNiAyIDU3LjEgMiAzMi43IDAgMTYuNS0yIDQ5LjItMiAzLjMgMCA4LjUgOC4zIDEgMTAuOC00LjkgMS42LTI3LjYgMy43LTI3LjYgMzkuMyAwIDQ1LjYtLjIgNTUuOCAxIDY4LjggMCAxLjMgMi4zIDEyLjggMTIuOCAxMi44aDEwOS4yYzEwLjUgMCAxMi44LTExLjUgMTIuOC0xMi44IDEuMi0xMyAxLTIzLjIgMS02OC44IDAtMzUuNi0yMi43LTM3LjctMjcuNi0zOS4zLTcuNS0yLjUtMi4zLTEwLjggMS0xMC44IDMyLjcgMCAxNi41IDIgNDkuMiAyIDM2LjUgMCAyMC42LTIgNTcuMS0yIDQuOSAwIDkuOSA5LjYgMSAxMS44LTE2LjQgNC4xLTI4LjYgMTAuMy0yOC42IDMyLjR2MTAxLjJjMCA4My40LjEgMTE0LjkgNy45IDEyNy44IDguMiAxMC4yIDExLjQgMTAuNCAyMS43IDEzLjggNS44IDAgNy44IDEwLjggMCAxMC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2MC4zNTMsMjU0Ljg3OCwxMzEuNTM4LDMzLjFhMi4yMDgsMi4yMDgsMCwwLDAtMy44MjkuMDA5TC4zLDI1NC44ODdBMi4yMzQsMi4yMzQsMCwwLDAsLjMsMjU3LjEyMkwxMjkuMTE2LDQ3OC45YTIuMjA4LDIuMjA4LDAsMCwwLDMuODMtLjAwOUwyNjAuMzU4LDI1Ny4xMTNBMi4yMzksMi4yMzksMCwwLDAsMjYwLjM1MywyNTQuODc4Wm0zOS4wNzgtMjUuNzEzYTIuMTksMi4xOSwwLDAsMCwxLjksMS4xMTFoNjYuNTA5YTIuMjI2LDIuMjI2LDAsMCwwLDEuOS0zLjM0MUwyNTkuMTE1LDMzLjExMWEyLjE4NywyLjE4NywwLDAsMC0xLjktMS4xMTFIMTkwLjcwN2EyLjIyNiwyLjIyNiwwLDAsMC0xLjksMy4zNDFaTTUxMS43LDI1NC44ODYsMzg0LjksMzMuMTEyQTIuMiwyLjIsMCwwLDAsMzgyLjk5LDMyaC02Ni42YTIuMjI2LDIuMjI2LDAsMCwwLTEuOTA2LDMuMzRMNDQwLjY1MiwyNTYsMzE0LjQ4MSw0NzYuNjZhMi4yMjYsMi4yMjYsMCwwLDAsMS45MDYsMy4zNGg2Ni42YTIuMiwyLjIsMCwwLDAsMS45MDYtMS4xMTJMNTExLjcsMjU3LjExNEEyLjI0MywyLjI0MywwLDAsMCw1MTEuNywyNTQuODg2Wk0zNjYuMDE2LDI4NC45MTdIMjk5LjUwOGEyLjE4NywyLjE4NywwLDAsMC0xLjksMS4xMTFsLTEwOC44LDE5MC42MzFhMi4yMjYsMi4yMjYsMCwwLDAsMS45LDMuMzQxaDY2LjUwOWEyLjE4NywyLjE4NywwLDAsMCwxLjktMS4xMTFsMTA4LjgtMTkwLjYzMUEyLjIyNiwyLjIyNiwwLDAsMCwzNjYuMDE2LDI4NC45MTdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvb2xpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NC41IDM1MmwzOC4zLjhjLTEzLjItNC42LTI2LTEwLjItMzguMy0xNi44em01Ny43LTUuM3Y1LjNsLTE5LjQuOGMzNi41IDEyLjUgNjkuOSAxNC4yIDk0LjcgNy4yLTE5LjkuMi00NS44LTIuNi03NS4zLTEzLjN6bTQwOC45LTExNS4yYzE1LjkgMCAyOC45LTEyLjkgMjguOS0yOC45cy0xMi45LTI0LjUtMjguOS0yNC41Yy0xNS45IDAtMjguOSA4LjYtMjguOSAyNC41czEyLjkgMjguOSAyOC45IDI4Ljl6bS0yOSAxMjAuNUg2NDBWMjQxLjVoLTU3Ljl6bS03My43IDBoNTcuOVYxNTYuN0w1MDguNCAxODR6bS0zMS0xMTkuNGMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjMtMS4xLTUwLjQgMTcuMWMtMTguMiAxOC4yLTE2LjggMzMuOS0xNi44IDUyLjZzLTEuNCAzNC4zIDE2LjggNTIuNSA1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuOC0zMy44IDE2LjgtNTIuNS0uMS0xOC44IDEuMy0zNC41LTE2LjgtNTIuNnptLTM5LjggNzEuOWMwIDMuNi0xLjggMTIuNS0xMC43IDEyLjVzLTEwLjctOC45LTEwLjctMTIuNXYtNDAuNGMwLTguNyA3LjMtMTAuOSAxMC43LTEwLjlzMTAuNyAyLjEgMTAuNyAxMC45em0tMTA2LjItNzEuOWMtMTguMi0xOC4yLTUwLjQtMTcuMS01MC40LTE3LjFzLTMyLjItMS4xLTUwLjQgMTcuMWMtMS45IDEuOS0zLjcgMy45LTUuMyA2LTM4LjItMjkuNi03Mi41LTQ2LjUtMTAyLjEtNjEuMXYtMjAuN2wtMjIuNSAxMC42Yy01NC40LTIyLjEtODktMTguMi05Ny4zLjEgMCAwLTI0LjkgMzIuOCA2MS44IDExMC44VjM1Mmg1Ny45di0yOC42Yy02LjUtNC4yLTEzLTguNy0xOS40LTEzLjYtMTQuOC0xMS4yLTI3LjQtMjEuNi0zOC40LTMxLjR2LTMxYzEzLjEgMTQuNyAzMC41IDMxLjQgNTMuNCA1MC4zbDQuNSAzLjZ2LTI5LjhjMC02LjkgMS43LTE4LjIgMTAuOC0xOC4yczEwLjYgNi45IDEwLjYgMTVWMzE3YzE4IDEyLjIgMzcuMyAyMi4xIDU3LjcgMjkuNnYtOTMuOWMwLTE4LjctMTMuNC0zNy40LTQwLjYtMzcuNC0xNS44LS4xLTMwLjUgOC4yLTM4LjUgMjEuOXYtNTQuM2M0MS45IDIwLjkgODMuOSA0Ni41IDk5LjkgNTguMy0xMC4yIDE0LjYtOS4zIDI4LjEtOS4zIDQzLjcgMCAxOC43LTEuNCAzNC4zIDE2LjggNTIuNXM1MC40IDE3LjEgNTAuNCAxNy4xIDMyLjMgMS4xIDUwLjQtMTcuMWMxOC4yLTE4LjIgMTYuNy0zMy44IDE2LjctNTIuNSAwLTE4LjUgMS41LTM0LjItMTYuNy01Mi4zek02NS4yIDE4NHY2My4zYy00OC43LTU0LjUtMzguOS03Ni0zNS4yLTc5LjEgMTMuNS0xMS40IDM3LjUtOCA2NC40IDIuMXptMjI2LjUgMTIwLjVjMCAzLjYtMS44IDEyLjUtMTAuNyAxMi41cy0xMC43LTguOS0xMC43LTEyLjV2LTQwLjRjMC04LjcgNy4zLTEwLjkgMTAuNy0xMC45czEwLjcgMi4xIDEwLjcgMTAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9ybmJpbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzYuMzggMzcwLjNhMzcuOCAzNy44IDAgMSAxLTMyLjA3LTMyLjQyYy03OC4yOC0xMTEuMzUgNTItMTkwLjUzIDUyLTE5MC41My01Ljg2IDQzLTguMjQgOTEuMTYtOC4yNCA5MS4xNi02Ny4zMSA0MS40OS45MyA2NC4wNiAzOS44MSA3Mi44N2ExNDAuMzggMTQwLjM4IDAgMCAwIDEzMS42NiA5MS45NGMxLjkyIDAgMy43Ny0uMjEgNS42Ny0uMjhsLjExIDE4Ljg2Yy05OS4yMiAxLjM5LTE1OC43LTI5LjE0LTE4OC45NC01MS42em0xMDgtMzI3LjdBMzcuNTcgMzcuNTcgMCAwIDAgMTgxIDIxLjQ1YTM3Ljk1IDM3Ljk1IDAgMSAwLTMxLjE3IDU0LjIyYy0yMi41NSAyOS45MS01My44MyA4OS41Ny01Mi40MiAxOTBsMjEuODQtLjE1YzAtLjktLjE0LTEuNzctLjE0LTIuNjhBMTQwLjQyIDE0MC40MiAwIDAgMSAyMDcgMTMyLjcxYzgtMzcuNzEgMzAuNy0xMTQuMyA3My44LTQ0LjI5IDAgMCA0OC4xNCAyLjM4IDkxLjE4IDguMjQgMCAwLTc3Ljg0LTEyOC0xODcuNTktNTQuMDZ6bTMwNC4xOSAxMzQuMTdhMzcuOTQgMzcuOTQgMCAxIDAtNTMuODQtMjguN0M0MDMgMTI2LjEzIDM0NC44OSA5OSAyNTEuMjggMTAwLjMzbC4xNCAyMi41YzIuNy0uMTUgNS4zOS0uNDEgOC4xNC0uNDFhMTQwLjM3IDE0MC4zNyAwIDAgMSAxMzAuNDkgODguNzZjMzkuMSA5IDEwNS4wNiAzMS41OCAzOC40NiA3Mi41NCAwIDAtMi4zNCA0OC4xMy04LjIxIDkxLjE2IDAgMCAxMzMuNDUtODEuMTYgNDktMTk0LjYxYTM3LjQ1IDM3LjQ1IDAgMCAwIDE5LjMxLTMuNXpNMzc0LjA2IDQzNi4yNGMyMS40My0zMi40NiA0Ni40Mi04OS42OSA0NS4xNC0xNzkuNjZsLTE5LjUyLjE0Yy4wOCAyLjA2LjMgNC4wNy4zIDYuMTVhMTQwLjM0IDE0MC4zNCAwIDAgMS05MS4zOSAxMzEuNDVjLTguODUgMzguOTUtMzEuNDQgMTA2LjY2LTcyLjc3IDM5LjQ5IDAgMC00OC4xMi0yLjM0LTkxLjE5LTguMjIgMCAwIDc5LjkyIDEzMS4zNCAxOTEuOSA1MWEzNy41IDM3LjUgMCAwIDAgMy42NCAxNCAzNy45MyAzNy45MyAwIDEgMCAzMy44OS01NC4yOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90amFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNC45IDE2MS41QzM0MC4yIDI5IDEyMS4xIDAgMTIxLjEgMFMyMjIuMiAxMTAuNCA5MyAxOTcuN0MxMS4zIDI1Mi44LTIxIDMyNC40IDE0IDQwMi42YzI2LjggNTkuOSA4My41IDg0LjMgMTQ0LjYgOTMuNC0yOS4yLTU1LjEtNi42LTEyMi40LTQuMS0xMjkuNiA1Ny4xIDg2LjQgMTY1IDAgMTEwLjgtOTMuOSA3MSAxNS40IDgxLjYgMTM4LjYgMjcuMSAyMTUuNSA4MC41LTI1LjMgMTM0LjEtODguOSAxNDguOC0xNDUuNiAxNS41LTU5LjMgMy43LTEyNy45LTI2LjMtMTgwLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXp6IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NS45IDMzMC43SDE3MS4zVjQ4MEgxN1YzMmgxMDkuNXYxMDQuNWwzMDUuMSA4NS42VjQ4MEgyNzUuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSHRtbDUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmwzNC45IDM5NS44TDE5MS41IDQ4MGwxNTcuNi01Mi4yTDM4NCAzMkgwem0zMDguMiAxMjcuOUgxMjQuNGw0LjEgNDkuNGgxNzUuNmwtMTMuNiAxNDguNC05Ny45IDI3di4zaC0xLjFsLTk4LjctMjcuMy02LTc1LjhoNDcuN0wxMzggMzIwbDUzLjUgMTQuNSA1My43LTE0LjUgNi02Mi4ySDg0LjNMNzEuNSAxMTIuMmgyNDEuMWwtNC40IDQ3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUh1YnNwb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjY3LjQgMjExLjZjLTI1LjEgMjMuNy00MC44IDU3LjMtNDAuOCA5NC42IDAgMjkuMyA5LjcgNTYuMyAyNiA3OEwyMDMuMSA0MzRjLTQuNC0xLjYtOS4xLTIuNS0xNC0yLjUtMTAuOCAwLTIwLjkgNC4yLTI4LjUgMTEuOC03LjYgNy42LTExLjggMTcuOC0xMS44IDI4LjZzNC4yIDIwLjkgMTEuOCAyOC41YzcuNiA3LjYgMTcuOCAxMS42IDI4LjUgMTEuNiAxMC44IDAgMjAuOS0zLjkgMjguNi0xMS42IDcuNi03LjYgMTEuOC0xNy44IDExLjgtMjguNSAwLTQuMi0uNi04LjItMS45LTEyLjFsNTAtNTAuMmMyMiAxNi45IDQ5LjQgMjYuOSA3OS4zIDI2LjkgNzEuOSAwIDEzMC01OC4zIDEzMC0xMzAuMiAwLTY1LjItNDcuNy0xMTkuMi0xMTAuMi0xMjguN1YxMTZjMTcuNS03LjQgMjguMi0yMy44IDI4LjItNDIuOSAwLTI2LjEtMjAuOS00Ny45LTQ3LTQ3LjlTMzExLjIgNDcgMzExLjIgNzMuMWMwIDE5LjEgMTAuNyAzNS41IDI4LjIgNDIuOXY2MS4yYy0xNS4yIDIuMS0yOS42IDYuNy00Mi43IDEzLjYtMjcuNi0yMC45LTExNy41LTg1LjctMTY4LjktMTI0LjggMS4yLTQuNCAyLTkgMi0xMy44QzEyOS44IDIzLjQgMTA2LjMgMCA3Ny40IDAgNDguNiAwIDI1LjIgMjMuNCAyNS4yIDUyLjJjMCAyOC45IDIzLjQgNTIuMyA1Mi4yIDUyLjMgOS44IDAgMTguOS0yLjkgMjYuOC03LjZsMTYzLjIgMTE0Ljd6bTg5LjUgMTYzLjZjLTM4LjEgMC02OS0zMC45LTY5LTY5czMwLjktNjkgNjktNjkgNjkgMzAuOSA2OSA2OS0zMC45IDY5LTY5IDY5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZGVhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjUuNjEsMTY1LjQ4YTQ5LjA3LDQ5LjA3LDAsMSwwLDQ5LjA2LDQ5LjA2QTQ5LjA4LDQ5LjA4LDAsMCwwLDEyNS42MSwxNjUuNDhaTTg2LjE1LDQyNS44NGg3OC45NFYyODUuMzJIODYuMTVabTE1MS40Ni0yMTEuNmMwLTIwLTEwLTIyLjUzLTE4Ljc0LTIyLjUzSDIwNC44MlYyMzcuNWgxNC4wNUMyMjguNjIsMjM3LjUsMjM3LjYxLDIzNC42OSwyMzcuNjEsMjE0LjI0Wm0yMDEuNjksNDZWMTY4LjkzaDIyLjc1VjIzNy41aDMzLjY5QzQ4Ni41LDExMy4wOCwzODguNjEsODYuMTksMjk5LjY3LDg2LjE5SDIwNC44NFYxNjloMTRjMjUuNiwwLDQxLjUsMTcuMzUsNDEuNSw0NS4yNiwwLDI4LjgxLTE1LjUyLDQ2LTQxLjUsNDZoLTE0VjQyNS44OGg5NC44M2MxNDQuNjEsMCwxOTQuOTQtNjcuMTYsMTk2LjcyLTE2NS42NFptLTEwOS43NSwwSDI3My4zVjE2OWg1NC40M3YyMi43M0gyOTZ2MTAuNThoMzBWMjI1SDI5NlYyMzcuNWgzMy41MVptNzQuNjYsMC01LjE2LTE3LjY3SDM2OS4zMWwtNS4xOCwxNy42N0gzNDAuNDdMMzY4LDE2OC45MmgzMi4zNWwyNy41Myw5MS4zNFpNMjk5LjY1LDMySDMyVjQ4MEgyOTkuNjVjMTYxLjg1LDAsMjUxLTc5LjczLDI1MS0yMjQuNTJDNTUwLjYyLDE3Miw1MTgsMzIsMjk5LjY1LDMyWm0wLDQyNi45Mkg1My4wN1Y1My4wN0gyOTkuNjVjMTQyLjEsMCwyMjkuOSw2NC42MSwyMjkuOSwyMDIuNDFDNTI5LjU1LDM4OS41Nyw0NDguNTUsNDU4LjkyLDI5OS42NSw0NTguOTJabTgzLjg2LTI2NC44NUwzNzYsMjE5Ljg4SDM5Mi40bC03LjUyLTI1LjgxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbWRiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIxLjMgMjI5LjJIMjFjLjEtLjEuMi0uMy4zLS40ek05NyAzMTkuOEg2NFYxOTJoMzN6bTExMy4yIDBoLTI4Ljd2LTg2LjRsLTExLjYgODYuNGgtMjAuNmwtMTIuMi04NC41djg0LjVoLTI5VjE5Mmg0Mi44YzMuMyAxOS44IDYgMzkuOSA4LjcgNTkuOWw3LjYtNTkuOWg0M3ptMTEuNCAwVjE5MmgyNC42YzE3LjYgMCA0NC43LTEuNiA0OSAyMC45IDEuNyA3LjYgMS40IDE2LjMgMS40IDI0LjQgMCA4OC41IDExLjEgODIuNi03NSA4Mi41em0xNjAuOS0yOS4yYzAgMTUuNy0yLjQgMzAuOS0yMi4yIDMwLjktOSAwLTE1LjItMy0yMC45LTkuOGwtMS45IDguMWgtMjkuOFYxOTJoMzEuN3Y0MS43YzYtNi41IDEyLTkuMiAyMC45LTkuMiAyMS40IDAgMjIuMiAxMi44IDIyLjIgMzAuMXpNMjY1IDIyOS45YzAtOS43IDEuNi0xNi0xMC4zLTE2djgzLjdjMTIuMi4zIDEwLjMtOC43IDEwLjMtMTguNHptODUuNSAyNi4xYzAtNS40IDEuMS0xMi43LTYuMi0xMi43LTYgMC00LjkgOC45LTQuOSAxMi43IDAgLjYtMS4xIDM5LjYgMS4xIDQ0LjcuOCAxLjYgMi4yIDIuNCAzLjggMi40IDcuOCAwIDYuMi05IDYuMi0xNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbm5vc29mdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjIuNTU5LDE1OS43MWEyNy4zNzksMjcuMzc5LDAsMCwwLTEzLjg2Ni0yMy4zMzcsMjYuNDIsMjYuNDIsMCwwLDAtMjYuMjExLjEzM0w3My45NDMsMzE0LjY0N1YxNzYuMjYxYTExLjk1NSwxMS45NTUsMCwwLDEsNi4wNDctMTAuMzRMMjE4LjA2Niw4Ni4yMDhhMTIuMTUzLDEyLjE1MywwLDAsMSwxMS45MjIuMDI1bDMyLjY1NiwxOC44NTNMMTEyLjU4MSwxOTEuNzIzdjU2TDM1OS42NDIsMTA1LjA4NiwyNDEuMTI5LDM2LjY3OWMtMTAuOTkyLTYuMTI5LTIyLjMtNi4yNTUtMzMuOC0uMjdsLTE2NC42LDk1LjAyNmMtMTAuNjM0LDYuMTItMTYuNzcxLDE2LjM5LTE3LjI5LDI5LjEyNGwwLDE5MS41Yy4xNywxMC4xMzUsNS4wOCwxOC42NzIsMTMuNDc0LDIzLjQyOGEyNy4wMzcsMjcuMDM3LDAsMCwwLDI2LjczNi0uMDQ1TDM3NC4wNTcsMTk3LjM3NlYzMzUuNjU3YTExLjk3NiwxMS45NzYsMCwwLDEtNS45MiwxMC4zNjhMMjMwLjAyNSw0MjUuNzdhMTIuMTc1LDEyLjE3NSwwLDAsMS0xMS45MzcuMDYybC0zMi43MjMtMTguOSwxNTAuMDUxLTg2LjYyN3YtNTZMODguMzY3LDQwNi45MzJsMTE4Ljc5NCw2OC41ODNhMzMuODgsMzMuODgsMCwwLDAsMzQuMjUtLjMyN2wxNjQuNTI3LTk0Ljk5NWMxMC43NDYtNi42MzEsMTYuNjQ5LTE3LjExOCwxNi42MjQtMjkuNTI4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnN0YWdyYW1TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LDIwMi42NkE1My4zNCw1My4zNCwwLDEsMCwyNzcuMzYsMjU2LDUzLjM4LDUzLjM4LDAsMCwwLDIyNCwyMDIuNjZabTEyNC43MS00MWE1NCw1NCwwLDAsMC0zMC40MS0zMC40MWMtMjEtOC4yOS03MS02LjQzLTk0LjMtNi40M3MtNzMuMjUtMS45My05NC4zMSw2LjQzYTU0LDU0LDAsMCwwLTMwLjQxLDMwLjQxYy04LjI4LDIxLTYuNDMsNzEuMDUtNi40Myw5NC4zM1M5MSwzMjkuMjYsOTkuMzIsMzUwLjMzYTU0LDU0LDAsMCwwLDMwLjQxLDMwLjQxYzIxLDguMjksNzEsNi40Myw5NC4zMSw2LjQzczczLjI0LDEuOTMsOTQuMy02LjQzYTU0LDU0LDAsMCwwLDMwLjQxLTMwLjQxYzguMzUtMjEsNi40My03MS4wNSw2LjQzLTk0LjMzUzM1Ny4xLDE4Mi43NCwzNDguNzUsMTYxLjY3Wk0yMjQsMzM4YTgyLDgyLDAsMSwxLDgyLTgyQTgxLjksODEuOSwwLDAsMSwyMjQsMzM4Wm04NS4zOC0xNDguM2ExOS4xNCwxOS4xNCwwLDEsMSwxOS4xMy0xOS4xNEExOS4xLDE5LjEsMCwwLDEsMzA5LjQyLDE4OS43NFpNNDAwLDMySDQ4QTQ4LDQ4LDAsMCwwLDAsODBWNDMyYTQ4LDQ4LDAsMCwwLDQ4LDQ4SDQwMGE0OCw0OCwwLDAsMCw0OC00OFY4MEE0OCw0OCwwLDAsMCw0MDAsMzJaTTM4Mi44OCwzMjJjLTEuMjksMjUuNjMtNy4xNCw0OC4zNC0yNS44NSw2N3MtNDEuNCwyNC42My02NywyNS44NWMtMjYuNDEsMS40OS0xMDUuNTksMS40OS0xMzIsMC0yNS42My0xLjI5LTQ4LjI2LTcuMTUtNjctMjUuODVzLTI0LjYzLTQxLjQyLTI1Ljg1LTY3Yy0xLjQ5LTI2LjQyLTEuNDktMTA1LjYxLDAtMTMyLDEuMjktMjUuNjMsNy4wNy00OC4zNCwyNS44NS02N3M0MS40Ny0yNC41Niw2Ny0yNS43OGMyNi40MS0xLjQ5LDEwNS41OS0xLjQ5LDEzMiwwLDI1LjYzLDEuMjksNDguMzMsNy4xNSw2NywyNS44NXMyNC42Myw0MS40MiwyNS44NSw2Ny4wNUMzODQuMzcsMjE2LjQ0LDM4NC4zNywyOTUuNTYsMzgyLjg4LDMyMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5zdGFncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC4xIDE0MWMtNjMuNiAwLTExNC45IDUxLjMtMTE0LjkgMTE0LjlzNTEuMyAxMTQuOSAxMTQuOSAxMTQuOVMzMzkgMzE5LjUgMzM5IDI1NS45IDI4Ny43IDE0MSAyMjQuMSAxNDF6bTAgMTg5LjZjLTQxLjEgMC03NC43LTMzLjUtNzQuNy03NC43czMzLjUtNzQuNyA3NC43LTc0LjcgNzQuNyAzMy41IDc0LjcgNzQuNy0zMy42IDc0LjctNzQuNyA3NC43em0xNDYuNC0xOTQuM2MwIDE0LjktMTIgMjYuOC0yNi44IDI2LjgtMTQuOSAwLTI2LjgtMTItMjYuOC0yNi44czEyLTI2LjggMjYuOC0yNi44IDI2LjggMTIgMjYuOCAyNi44em03Ni4xIDI3LjJjLTEuNy0zNS45LTkuOS02Ny43LTM2LjItOTMuOS0yNi4yLTI2LjItNTgtMzQuNC05My45LTM2LjItMzctMi4xLTE0Ny45LTIuMS0xODQuOSAwLTM1LjggMS43LTY3LjYgOS45LTkzLjkgMzYuMXMtMzQuNCA1OC0zNi4yIDkzLjljLTIuMSAzNy0yLjEgMTQ3LjkgMCAxODQuOSAxLjcgMzUuOSA5LjkgNjcuNyAzNi4yIDkzLjlzNTggMzQuNCA5My45IDM2LjJjMzcgMi4xIDE0Ny45IDIuMSAxODQuOSAwIDM1LjktMS43IDY3LjctOS45IDkzLjktMzYuMiAyNi4yLTI2LjIgMzQuNC01OCAzNi4yLTkzLjkgMi4xLTM3IDIuMS0xNDcuOCAwLTE4NC44ek0zOTguOCAzODhjLTcuOCAxOS42LTIyLjkgMzQuNy00Mi42IDQyLjYtMjkuNSAxMS43LTk5LjUgOS0xMzIuMSA5cy0xMDIuNyAyLjYtMTMyLjEtOWMtMTkuNi03LjgtMzQuNy0yMi45LTQyLjYtNDIuNi0xMS43LTI5LjUtOS05OS41LTktMTMyLjFzLTIuNi0xMDIuNyA5LTEzMi4xYzcuOC0xOS42IDIyLjktMzQuNyA0Mi42LTQyLjYgMjkuNS0xMS43IDk5LjUtOSAxMzIuMS05czEwMi43LTIuNiAxMzIuMSA5YzE5LjYgNy44IDM0LjcgMjIuOSA0Mi42IDQyLjYgMTEuNyAyOS41IDkgOTkuNSA5IDEzMi4xczIuNyAxMDIuNy05IDEzMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbnN0YWxvZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTMuMzg0LDQ4MEgzODcuMTEzTDUwMi41NTQsMjc1Ljc2NSwyMDQuMjI5LDMzMy4yMTFaTTUwNC43MjYsMjQwLjA3OCwzODcuMTEzLDMySDE1NS42NjlMMzYwLjIzLDI2Ny45Wk0xMjQuMzg2LDQ4LjgwOSw3LjI3NCwyNTYsMTIzLjIzNiw0NjEuMTU0LDIyNS42MjcsMTY1LjU2MVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW50ZXJjb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyIDMySDU2QzI1LjEgMzIgMCA1Ny4xIDAgODh2MzM2YzAgMzAuOSAyNS4xIDU2IDU2IDU2aDMzNmMzMC45IDAgNTYtMjUuMSA1Ni01NlY4OGMwLTMwLjktMjUuMS01Ni01Ni01NnptLTEwOC4zIDgyLjFjMC0xOS44IDI5LjktMTkuOCAyOS45IDB2MTk5LjVjMCAxOS44LTI5LjkgMTkuOC0yOS45IDBWMTE0LjF6bS03NC42LTcuNWMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYyMTYuNWMwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxMDYuNnptLTc0LjcgNy41YzAtMTkuOCAyOS45LTE5LjggMjkuOSAwdjE5OS41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjExNC4xek01OS43IDE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxMzQuM2MwIDE5LjgtMjkuOSAxOS44LTI5LjkgMFYxNDR6bTMyMy40IDIyNy44Yy03Mi44IDYzLTI0MS43IDY1LjQtMzE4LjEgMC0xNS0xMi44IDQuNC0zNS41IDE5LjQtMjIuNyA2NS45IDU1LjMgMjE2LjEgNTMuOSAyNzkuMyAwIDE0LjktMTIuOSAzNC4zIDkuOCAxOS40IDIyLjd6bTUuMi05My41YzAgMTkuOC0yOS45IDE5LjgtMjkuOSAwVjE0NGMwLTE5LjggMjkuOS0xOS44IDI5LjkgMHYxMzQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW50ZXJuZXRFeHBsb3JlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODMuMDQ5IDE1OS43MDZjMTAuODU1LTI0LjU3NSAyMS40MjQtNjAuNDM4IDIxLjQyNC04Ny44NzEgMC03Mi43MjItNzkuNjQxLTk4LjM3MS0yMDkuNjczLTM4LjU3Ny0xMDcuNjMyLTcuMTgxLTIxMS4yMjEgNzMuNjctMjM3LjA5OCAxODYuNDU3IDMwLjg1Mi0zNC44NjIgNzguMjcxLTgyLjI5OCAxMjEuOTc3LTEwMS4xNThDMTI1LjQwNCAxNjYuODUgNzkuMTI4IDIyOC4wMDIgNDMuOTkyIDI5MS43MjUgMjMuMjQ2IDMyOS42NTEgMCAzOTAuOTQgMCA0MzYuNzQ3YzAgOTguNTc1IDkyLjg1NCA4Ni41IDE4MC4yNTEgNDIuMDA2IDMxLjQyMyAxNS40MyA2Ni41NTkgMTUuNTczIDEwMS42OTUgMTUuNTczIDk3LjEyNCAwIDE4NC4yNDktNTQuMjk0IDIxNi44MTQtMTQ2LjAyMkgzNzcuOTI3Yy01Mi41MDkgODguNTkzLTE5Ni44MTkgNTIuOTk2LTE5Ni44MTktNDcuNDM2SDUwOS45YzYuNDA3LTQzLjU4MS0xLjY1NS05NS43MTUtMjYuODUxLTE0MS4xNjJ6TTY0LjU1OSAzNDYuODc3YzE3LjcxMSA1MS4xNSA1My43MDMgOTUuODcxIDEwMC4yNjYgMTIzLjMwNC04OC43NDEgNDguOTQtMTczLjI2NyAyOS4wOTYtMTAwLjI2Ni0xMjMuMzA0em0xMTUuOTc3LTEwOC44NzNjMi01NS4xNTEgNTAuMjc2LTk0Ljg3MSAxMDMuOTgtOTQuODcxIDUzLjQxOCAwIDEwMS45ODEgMzkuNzIgMTAzLjk4MSA5NC44NzFIMTgwLjUzNnptMTg0LjUzNi0xODcuNmMyMS40MjUtMTAuMjg3IDQ4LjU2My0yMi4wMDMgNzIuNTU4LTIyLjAwMyAzMS40MjIgMCA1NC4yNzQgMjEuNzE3IDU0LjI3NCA1My43MjIgMCAyMC4wMDMtNy40MjcgNDkuMDA3LTE0LjU2OSA2Ny44NjctMjYuMjgtNDIuMjkyLTY1Ljk4Ni04MS41ODQtMTEyLjI2My05OS41ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUludmlzaW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNy40IDMySDQwLjZDMTguMiAzMiAwIDUwLjIgMCA3Mi42djM2Ni44QzAgNDYxLjggMTguMiA0ODAgNDAuNiA0ODBoMzY2LjhjMjIuNCAwIDQwLjYtMTguMiA0MC42LTQwLjZWNzIuNmMwLTIyLjQtMTguMi00MC42LTQwLjYtNDAuNnpNMTc2LjEgMTQ1LjZjLjQgMjMuNC0yMi40IDI3LjMtMjYuNiAyNy40LTE0LjkgMC0yNy4xLTEyLTI3LjEtMjcgLjEtMzUuMiA1My4xLTM1LjUgNTMuNy0uNHpNMzMyLjggMzc3Yy02NS42IDAtMzQuMS03NC0yNS0xMDYuNiAxNC4xLTQ2LjQtNDUuMi01OS01OS45LjdsLTI1LjggMTAzLjNIMTc3bDguMS0zMi41Yy0zMS41IDUxLjgtOTQuNiA0NC40LTk0LjYtNC4zLjEtMTQuMy45LTE0IDIzLTEwNC4xSDgxLjdsOS43LTM1LjZoNzYuNGMtMzMuNiAxMzMuNy0zMi42IDEyNi45LTMyLjkgMTM4LjIgMCAyMC45IDQwLjkgMTMuNSA1Ny40LTIzLjJsMTkuOC03OS40aC0zMi4zbDkuNy0zNS42aDY4LjhsLTguOSA0MC41YzQwLjUtNzUuNSAxMjcuOS00Ny44IDEwMS44IDM4LTE0LjIgNTEuMS0xNC42IDUwLjctMTQuOSA1OC44IDAgMTUuNSAxNy41IDIyLjYgMzEuOC0xNi45TDM4NiAzMjVjLTEwLjUgMzYuNy0yOS40IDUyLTUzLjIgNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUlveGhvc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjE2IDE2MGgtNjcuM0M1MTEuMiA3MC43IDQyMi45IDggMzIwIDggMTgzIDggNzIgMTE5IDcyIDI1NmMwIDE2LjQgMS42IDMyLjUgNC43IDQ4SDI0Yy0xMy4zIDAtMjQgMTAuOC0yNCAyNCAwIDEzLjMgMTAuNyAyNCAyNCAyNGg2Ny4zYzM3LjUgODkuMyAxMjUuOCAxNTIgMjI4LjcgMTUyIDEzNyAwIDI0OC0xMTEgMjQ4LTI0OCAwLTE2LjQtMS42LTMyLjUtNC43LTQ4SDYxNmMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNHptLTk2IDk2YzAgMTEwLjUtODkuNSAyMDAtMjAwIDIwMC03NS43IDAtMTQxLjYtNDItMTc1LjUtMTA0SDQyNGMxMy4zIDAgMjQtMTAuOCAyNC0yNCAwLTEzLjMtMTAuNy0yNC0yNC0yNEgxMjUuOGMtMy44LTE1LjQtNS44LTMxLjQtNS44LTQ4IDAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMCA3NS43IDAgMTQxLjYgNDIgMTc1LjUgMTA0SDIxNmMtMTMuMyAwLTI0IDEwLjgtMjQgMjQgMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjk4LjJjMy44IDE1LjQgNS44IDMxLjQgNS44IDQ4em0tMzA0LTI0aDIwOGMxMy4zIDAgMjQgMTAuNyAyNCAyNCAwIDEzLjItMTAuNyAyNC0yNCAyNEgyMTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0IDAtMTMuMiAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdGNoSW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzEuOTIgMzQuNzdDNTAuMiA0Ny42NyA3LjQgOTYuODQgNyAxMDkuNzN2MjEuMzRjMCAyNy4wNiAyNS4yOSA1MC44NCA0OC4yNSA1MC44NCAyNy41NyAwIDUwLjU0LTIyLjg1IDUwLjU0LTUwIDAgMjcuMTIgMjIuMTggNTAgNDkuNzYgNTBzNDktMjIuODUgNDktNTBjMCAyNy4xMiAyMy41OSA1MCA1MS4xNiA1MGguNWMyNy41NyAwIDUxLjE2LTIyLjg1IDUxLjE2LTUwIDAgMjcuMTIgMjEuNDcgNTAgNDkgNTBzNDkuNzYtMjIuODUgNDkuNzYtNTBjMCAyNy4xMiAyMyA1MCA1MC41NCA1MCAyMyAwIDQ4LjI1LTIzLjc4IDQ4LjI1LTUwLjg0di0yMS4zNGMtLjQtMTIuOS00My4yLTYyLjA3LTY0LjkyLTc1QzM3Mi41NiAzMi40IDMyNS43NiAzMiAyNTYgMzJTOTEuMTQgMzMuMSA3MS45MiAzNC43N3ptMTMyLjMyIDEzNC4zOWMtMjIgMzguNC03Ny45IDM4LjcxLTk5Ljg1LjI1LTEzLjE3IDIzLjE0LTQzLjE3IDMyLjA3LTU2IDI3LjY2LTMuODcgNDAuMTUtMTMuNjcgMjM3LjEzIDE3LjczIDI2OS4xNSA4MCAxOC42NyAzMDIuMDggMTguMTIgMzc5Ljc2IDAgMzEuNjUtMzIuMjcgMjEuMzItMjMyIDE3Ljc1LTI2OS4xNS0xMi45MiA0LjQ0LTQyLjg4LTQuNi01Ni0yNy42Ni0yMiAzOC41Mi03Ny44NSAzOC4xLTk5Ljg1LS4yNC03LjEgMTIuNDktMjMuMDUgMjguOTQtNTEuNzYgMjguOTRhNTcuNTQgNTcuNTQgMCAwIDEtNTEuNzUtMjguOTR6bS00MS41OCA1My43N2MxNi40NyAwIDMxLjA5IDAgNDkuMjIgMTkuNzhhNDM2LjkxIDQzNi45MSAwIDAgMSA4OC4xOCAwQzMxOC4yMiAyMjMgMzMyLjg1IDIyMyAzNDkuMzEgMjIzYzUyLjMzIDAgNjUuMjIgNzcuNTMgODMuODcgMTQ0LjQ1IDE3LjI2IDYyLjE1LTUuNTIgNjMuNjctMzMuOTUgNjMuNzMtNDIuMTUtMS41Ny02NS40OS0zMi4xOC02NS40OS02Mi43OS0zOS4yNSA2LjQzLTEwMS45MyA4Ljc5LTE1NS41NSAwIDAgMzAuNjEtMjMuMzQgNjEuMjItNjUuNDkgNjIuNzktMjguNDItLjA2LTUxLjItMS41OC0zMy45NC02My43MyAxOC42Ny02NyAzMS41Ni0xNDQuNDUgODMuODgtMTQ0LjQ1ek0yNTYgMjcwLjc5cy00NC4zOCA0MC43Ny01Mi4zNSA1NS4yMWwyOS0xLjE3djI1LjMyYzAgMS41NSAyMS4zNC4xNiAyMy4zMy4xNiAxMS42NS41NCAyMy4zMSAxIDIzLjMxLS4xNnYtMjUuMjhsMjkgMS4xN2MtOC0xNC40OC01Mi4zNS01NS4yNC01Mi4zNS01NS4yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSXR1bmVzTm90ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODEuOSAzODguMmMtNi40IDI3LjQtMjcuMiA0Mi44LTU1LjEgNDgtMjQuNSA0LjUtNDQuOSA1LjYtNjQuNS0xMC4yLTIzLjktMjAuMS0yNC4yLTUzLjQtMi43LTc0LjQgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDYuNC03LjIgNC40LTQuMSA0LjQtMTYzLjIgMC0xMS4yLTUuNS0xNC4zLTE3LTEyLjMtOC4yIDEuNC0xODUuNyAzNC42LTE4NS43IDM0LjYtMTAuMiAyLjItMTMuNCA1LjItMTMuNCAxNi43IDAgMjM0LjcgMS4xIDIyMy45LTIuNSAyMzkuNS00LjIgMTguMi0xNS40IDMxLjktMzAuMiAzOS41LTE2LjggOS4zLTQ3LjIgMTMuNC02My40IDEwLjQtNDMuMi04LjEtNTguNC01OC0yOS4xLTg2LjYgMTctMTYuMiA0MC45LTE5LjUgNzYuOC0yNS44IDYtMS4xIDExLjItMi41IDE1LjYtNy40IDEwLjEtMTEuNSAxLjgtMjU2LjYgNS4yLTI3MC4yLjgtNS4yIDMtOS42IDcuMS0xMi45IDQuMi0zLjUgMTEuOC01LjUgMTMuNC01LjUgMjA0LTM4LjIgMjI4LjktNDMuMSAyMzIuNC00My4xIDExLjUtLjggMTguMSA2IDE4LjEgMTcuNi4yIDM0NC41IDEuMSAzMjYtMS44IDMzOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdHVuZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjYgODAuM0MxMjkgODAuMyA1Mi41IDE1NyA1Mi41IDI1MS41UzEyOSA0MjIuOCAyMjMuNiA0MjIuOHMxNzEuMi03Ni43IDE3MS4yLTE3MS4yYzAtOTQuNi03Ni43LTE3MS4zLTE3MS4yLTE3MS4zem03OS40IDI0MGMtMy4yIDEzLjYtMTMuNSAyMS4yLTI3LjMgMjMuOC0xMi4xIDIuMi0yMi4yIDIuOC0zMS45LTUtMTEuOC0xMC0xMi0yNi40LTEuNC0zNi44IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgMy4yLTMuNiAyLjItMiAyLjItODAuOCAwLTUuNi0yLjctNy4xLTguNC02LjEtNCAuNy05MS45IDE3LjEtOTEuOSAxNy4xLTUgMS4xLTYuNyAyLjYtNi43IDguMyAwIDExNi4xLjUgMTEwLjgtMS4yIDExOC41LTIuMSA5LTcuNiAxNS44LTE0LjkgMTkuNi04LjMgNC42LTIzLjQgNi42LTMxLjQgNS4yLTIxLjQtNC0yOC45LTI4LjctMTQuNC00Mi45IDguNC04IDIwLjMtOS42IDM4LTEyLjggMy0uNSA1LjYtMS4yIDcuNy0zLjcgNS01LjcuOS0xMjcgMi42LTEzMy43LjQtMi42IDEuNS00LjggMy41LTYuNCAyLjEtMS43IDUuOC0yLjcgNi43LTIuNyAxMDEtMTkgMTEzLjMtMjEuNCAxMTUuMS0yMS40IDUuNy0uNCA5IDMgOSA4LjctLjEgMTcwLjYuNCAxNjEuNC0xIDE2Ny42ek0zNDUuMiAzMkgxMDIuOEM0NS45IDMyIDAgNzcuOSAwIDEzNC44djI0Mi40QzAgNDM0LjEgNDUuOSA0ODAgMTAyLjggNDgwaDI0Mi40YzU3IDAgMTAyLjgtNDUuOSAxMDIuOC0xMDIuOFYxMzQuOEM0NDggNzcuOSA0MDIuMSAzMiAzNDUuMiAzMnpNMjIzLjYgNDQ0Yy0xMDYuMyAwLTE5Mi41LTg2LjItMTkyLjUtMTkyLjVTMTE3LjMgNTkgMjIzLjYgNTlzMTkyLjUgODYuMiAxOTIuNSAxOTIuNVMzMjkuOSA0NDQgMjIzLjYgNDQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKYXZhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3Ny43NCAzMTIuOWM5LjgtNi43IDIzLjQtMTIuNSAyMy40LTEyLjVzLTM4LjcgNy03Ny4yIDEwLjJjLTQ3LjEgMy45LTk3LjcgNC43LTEyMy4xIDEuMy02MC4xLTggMzMtMzAuMSAzMy0zMC4xcy0zNi4xLTIuNC04MC42IDE5Yy01Mi41IDI1LjQgMTMwIDM3IDIyNC41IDEyLjF6bS04NS40LTMyLjFjLTE5LTQyLjctODMuMS04MC4yIDAtMTQ1LjhDMjk2IDUzLjIgMjQyLjg0IDAgMjQyLjg0IDBjMjEuNSA4NC41LTc1LjYgMTEwLjEtMTEwLjcgMTYyLjYtMjMuOSAzNS45IDExLjcgNzQuNCA2MC4yIDExOC4yem0xMTQuNi0xNzYuMmMuMSAwLTE3NS4yIDQzLjgtOTEuNSAxNDAuMiAyNC43IDI4LjQtNi41IDU0LTYuNSA1NHM2Mi43LTMyLjQgMzMuOS03Mi45Yy0yNi45LTM3LjgtNDcuNS01Ni42IDY0LjEtMTIxLjN6bS02LjEgMjcwLjVhMTIuMTkgMTIuMTkgMCAwIDEtMiAyLjZjMTI4LjMtMzMuNyA4MS4xLTExOC45IDE5LjgtOTcuM2ExNy4zMyAxNy4zMyAwIDAgMC04LjIgNi4zIDcwLjQ1IDcwLjQ1IDAgMCAxIDExLTNjMzEtNi41IDc1LjUgNDEuNS0yMC42IDkxLjR6TTM0OCA0MzcuNHMxNC41IDExLjktMTUuOSAyMS4yYy01Ny45IDE3LjUtMjQwLjggMjIuOC0yOTEuNi43LTE4LjMtNy45IDE2LTE5IDI2LjgtMjEuMyAxMS4yLTIuNCAxNy43LTIgMTcuNy0yLTIwLjMtMTQuMy0xMzEuMyAyOC4xLTU2LjQgNDAuMkMyMzIuODQgNTA5LjQgNDAxIDQ2MS4zIDM0OCA0MzcuNHpNMTI0LjQ0IDM5NmMtNzguNyAyMiA0Ny45IDY3LjQgMTQ4LjEgMjQuNWExODUuODkgMTg1Ljg5IDAgMCAxLTI4LjItMTMuOGMtNDQuNyA4LjUtNjUuNCA5LjEtMTA2IDQuNS0zMy41LTMuOC0xMy45LTE1LjItMTMuOS0xNS4yem0xNzkuOCA5Ny4yYy03OC43IDE0LjgtMTc1LjggMTMuMS0yMzMuMyAzLjYgMC0uMSAxMS44IDkuNyA3Mi40IDEzLjYgOTIuMiA1LjkgMjMzLjgtMy4zIDIzNy4xLTQ2LjkgMCAwLTYuNCAxNi41LTc2LjIgMjkuN3pNMjYwLjY0IDM1M2MtNTkuMiAxMS40LTkzLjUgMTEuMS0xMzYuOCA2LjYtMzMuNS0zLjUtMTEuNi0xOS43LTExLjYtMTkuNy04Ni44IDI4LjggNDguMiA2MS40IDE2OS41IDI1LjlhNjAuMzcgNjAuMzcgMCAwIDEtMjEuMS0xMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZWRpT3JkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk4LjUgMzczLjZjOTUuOS0xMjIuMSAxNy4yLTIzMy4xIDE3LjItMjMzLjEgNDUuNCA4NS44LTQxLjQgMTcwLjUtNDEuNCAxNzAuNSAxMDUtMTcxLjUtNjAuNS0yNzEuNS02MC41LTI3MS41IDk2LjkgNzIuNy0xMC4xIDE5MC43LTEwLjEgMTkwLjcgODUuOCAxNTguNC02OC42IDIzMC4xLTY4LjYgMjMwLjFzLS40LTE2LjktMi4yLTg1LjdjNC4zIDQuNSAzNC41IDM2LjIgMzQuNSAzNi4ybC0yNC4yLTQ3LjQgNjIuNi05LjEtNjIuNi05LjEgMjAuMi01NS41LTMxLjQgNDUuOWMtMi4yLTg3LjctNy44LTMwNS4xLTcuOS0zMDYuOXYtMi40IDEtMSAyLjRjMCAxLTUuNiAyMTktNy45IDMwNi45bC0zMS40LTQ1LjkgMjAuMiA1NS41LTYyLjYgOS4xIDYyLjYgOS4xLTI0LjIgNDcuNCAzNC41LTM2LjJjLTEuOCA2OC44LTIuMiA4NS43LTIuMiA4NS43cy0xNTQuNC03MS43LTY4LjYtMjMwLjFjMCAwLTEwNy0xMTguMS0xMC4xLTE5MC43IDAgMC0xNjUuNSA5OS45LTYwLjUgMjcxLjUgMCAwLTg2LjgtODQuOC00MS40LTE3MC41IDAgMC03OC43IDExMSAxNy4yIDIzMy4xIDAgMC0yNi4yLTE2LjEtNDkuNC03Ny43IDAgMCAxNi45IDE4My4zIDIyMiAxODUuN2g0LjFjMjA1LTIuNCAyMjItMTg1LjcgMjIyLTE4NS43LTIzLjYgNjEuNS00OS45IDc3LjctNDkuOSA3Ny43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKZW5raW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Ny4xIDQyNWMtMS40LTExLjItMTktMjMuMS0yOC4yLTMxLjktNS4xLTUtMjktMjMuMS0zMC40LTI5LjktMS40LTYuNiA5LjctMjEuNSAxMy4zLTI4LjkgNS4xLTEwLjcgOC44LTIzLjcgMTEuMy0zMi42IDE4LjgtNjYuMSAyMC43LTE1Ni45LTYuMi0yMTEuMi0xMC4yLTIwLjYtMzguNi00OS01Ni40LTYyLjUtNDItMzEuNy0xMTkuNi0zNS4zLTE3MC4xLTE2LjYtMTQuMSA1LjItMjcuOCA5LjgtNDAuMSAxNy4xLTMzLjEgMTkuNC02OC4zIDMyLjUtNzguMSA3MS42LTI0LjIgMTAuOC0zMS41IDQxLjgtMzAuMyA3Ny44LjIgNyA0LjEgMTUuOCAyLjcgMjIuNC0uNyAzLjMtNS4yIDcuNi02LjEgOS44LTExLjYgMjcuNy0yLjMgNjQgMTEuMSA4My43IDguMSAxMS45IDIxLjUgMjIuNCAzOS4yIDI1LjIuNyAxMC42IDMuMyAxOS43IDguMiAzMC40IDMuMSA2LjggMTQuNyAxOSAxMC40IDI3LjctMi4yIDQuNC0yMSAxMy44LTI3LjMgMTcuNkM4OSA0MDcuMiA3My43IDQxNSA1NC4yIDQyOWMtMTIuNiA5LTMyLjMgMTAuMi0yOS4yIDMxLjEgMi4xIDE0LjEgMTAuMSAzMS42IDE0LjcgNDUuOC43IDIgMS40IDQuMSAyLjEgNmg0MjJjNC45LTE1LjMgOS43LTMwLjkgMTQuNi00Ny4yIDMuNC0xMS40IDEwLjItMjcuOCA4LjctMzkuN3pNMjA1LjkgMzMuN2MxLjgtLjUgMy40LjcgNC45IDIuNC0uMiA1LjItNS40IDUuMS04LjkgNi44LTUuNCA2LjctMTMuNCA5LjgtMjAgMTcuMi02LjggNy41LTE0LjQgMjcuNy0yMy40IDMwLTQuNSAxLjEtOS43LS44LTEzLjYtLjUtMTAuNC43LTE3LjcgNi0yOC4zIDcuNSAxMy42LTI5LjkgNTYuMS01NCA4OS4zLTYzLjR6bS0xMDQuOCA5My42YzEzLjUtMTQuOSAzMi4xLTI0LjEgNTQuOC0yNS45IDExLjcgMjkuNy04LjQgNjUtLjkgOTcuNiAyLjMgOS45IDEwLjIgMjUuNC0yLjQgMjUuNy4zLTI4LjMtMzQuOC00Ni4zLTYxLjMtMjkuNi0xLjgtMjEuNS00LjktNTEuNyA5LjgtNjcuOHptMzYuNyAyMDAuMmMtMS00LjEtMi43LTEyLjktMi4zLTE1LjEgMS42LTguNyAxNy4xLTEyLjUgMTEtMjQuNy0xMS4zLS4xLTEzLjggMTAuMi0yNC4xIDExLjMtMjYuNyAyLjYtNDUuNi0zNS40LTQ0LjQtNTguNCAxLTE5LjUgMTcuNi0zOC4yIDQwLjEtMzUuOCAxNiAxLjggMjEuNCAxOS4yIDI0LjUgMzQuNyA5LjIuNSAyMi41LS40IDI2LjktNy42LS42LTE3LjUtOC44LTMxLjYtOC4yLTQ3LjcgMS0zMC4zIDE3LjUtNTcuNiA0LjgtODcuNCAxMy42LTMwLjkgNTMuNS01NS4zIDgzLjEtNzAgMzYuNi0xOC4zIDk0LjktMy43IDEyOS4zIDE1LjggMTkuNyAxMS4xIDM0LjQgMzIuNyA0OC4zIDUwLjctMTkuNS01LjgtMzYuMSA0LjItMzMuMSAyMC4zIDE2LjMtMTQuOSA0NC4yLS4yIDUyLjUgMTYuNCA3LjkgMTUuOCA3LjggMzkuMyA5IDYyLjggMi45IDU3LTEwLjQgMTE1LjktMzkuMSAxNTcuMS03LjcgMTEtMTQuMSAyMy0yNC45IDMwLjYtMjYgMTguMi02NS40IDM0LjctOTkuMiAyMy40LTQ0LjctMTUtNjUtNDQuOC04OS41LTc4LjguNyAxOC43IDEzLjggMzQuMSAyNi44IDQ4LjQgMTEuMyAxMi41IDI1IDI2LjYgMzkuNyAzMi40LTEyLjMtMi45LTMxLjEtMy44LTM2LjIgNy4yLTI4LjYtMS45LTU1LjEtNC44LTY4LjctMjQuMi0xMC42LTE1LjQtMjEuNC00MS40LTI2LjMtNjEuNHptMjIyIDEyNC4xYzQuMS0zIDExLjEtMi45IDE3LjQtMy42LTUuNC0yLjctMTMtMy43LTE5LjMtMi4yLS4xLTQuMi0yLTYuOC0zLjItMTAuMiAxMC42LTMuOCAzNS41LTI4LjUgNDkuNi0yMC4zIDYuNyAzLjkgOS41IDI2LjIgMTAuMSAzNyAuNCA5LS44IDE4LTQuNSAyMi44LTE4LjgtLjYtMzUuOC0yLjgtNTAuNy03IC45LTYuMS0xLTEyLjEuNi0xNi41em0tMTcuMi0yMGMtMTYuOC44LTI2LTEuMi0zOC4zLTEwLjguMi0uOCAxLjQtLjUgMS41LTEuNCAxOCA4IDQwLjgtMy4zIDU5LTQuOS03LjkgNS4xLTE0LjYgMTEuNi0yMi4yIDE3LjF6bS0xMi4xIDMzLjJjLTEuNi05LjQtMy41LTEyLTIuOC0yMC4yIDI1LTE2LjYgMjkuNyAyOC42IDIuOCAyMC4yek0yMjYgNDM4LjZjLTExLjYtLjctNDguMS0xNC0zOC41LTIzLjcgOS40IDYuNSAyNy41IDQuOSA0MS4zIDcuMy44IDQuNC0yLjggMTAuMi0yLjggMTYuNHpNNTcuNyA0OTcuMWMtNC4zLTEyLjctOS4yLTI1LjEtMTQuOC0zNi45IDMwLjgtMjMuOCA2NS4zLTQ4LjkgMTAyLjItNjMuNSAyLjgtMS4xIDIzLjIgMjUuNCAyNi4yIDI3LjYgMTYuNSAxMS43IDM3IDIxIDU2LjIgMzAuMiAxLjIgOC44IDMuOSAyMC4yIDguNyAzNS41LjcgMi4zIDEuNCA0LjcgMi4yIDcuMkg1Ny43em0yNDAuNiA1LjdoLS44Yy4zLS4yLjUtLjQuOC0uNXYuNXptNy41LTUuN2MyLjEtMS40IDQuMy0yLjggNi40LTQuMyAxLjEgMS40IDIuMiAyLjggMy4yIDQuM2gtOS42em0xNS4xLTI0LjdjLTEwLjggNy4zLTIwLjYgMTguMy0zMy4zIDI1LjItNiAzLjMtMjcgMTEuNy0zMy40IDEwLjItMy42LS44LTMuOS01LjMtNS40LTkuNS0zLjEtOS0xMC4xLTIzLjQtMTAuOC0zNy0uOC0xNy4yLTIuNS00NiAxNi00Mi40IDE0LjkgMi45IDMyLjMgOS43IDQzLjkgMTYuMSA3LjEgMy45IDExLjEgOC42IDIxLjkgOS41LS4xIDEuNC0uMSAyLjgtLjIgNC4zLTUuOSAzLjktMTUuMyAzLjgtMjEuOCA3LjEgOS41LjQgMTcgMi43IDIzLjUgNS45LS4xIDMuNC0uMyA3LS40IDEwLjZ6bTUzLjQgMjQuN2gtMTRjLS4xLTMuMi0yLjgtNS44LTYuMS01LjhzLTUuOSAyLjYtNi4xIDUuOGgtMTcuNGMtMi44LTQuNC01LjctOC42LTguOS0xMi41IDIuMS0yLjIgNC00LjcgNi02LjkgOSAzLjcgMTQuOC00LjkgMjEuNy00LjIgNy45LjggMTQuMiAxMS43IDI1LjQgMTFsLS42IDEyLjZ6bTguNyAwYy4yLTQgLjQtNy44LjYtMTEuNSAxNS42LTcuMyAyOSAxLjMgMzUuNyAxMS41SDM4M3ptODMuNC0zN2MtMi4zIDExLjItNS44IDI0LTkuOSAzNy4xLS4yLS4xLS40LS4xLS42LS4xSDQyOGMuNi0xLjEgMS4yLTIuMiAxLjktMy4zLTIuNi02LjEtOS04LjctMTAuOS0xNS41IDEyLjEtMjIuNyA2LjUtOTMuNC0yNC4yLTc4LjUgNC4zLTYuMyAxNS42LTExLjUgMjAuOC0xOS4zIDEzIDEwLjQgMjAuOCAyMC4zIDMzLjIgMzEuNCA2LjggNiAyMCAxMy4zIDIxLjQgMjMuMS44IDUuNS0yLjYgMTguOS0zLjggMjUuMXpNMjIyLjIgMTMwLjVjNS40LTE0LjkgMjcuMi0zNC43IDQ1LTMyIDcuNyAxLjIgMTggOC4yIDEyLjIgMTcuNy0zMC4yLTctNDUuMiAxMi42LTU0LjQgMzMuMS04LjEtMi00LjktMTMuMS0yLjgtMTguOHptMTg0LjEgNjMuMWM4LjItMy42IDIyLjQtLjcgMjkuNi01LjMtNC4yLTExLjUtMTAuMy0yMS40LTkuMy0zNy43LjUgMCAxIDAgMS40LjEgNi44IDE0LjIgMTIuNyAyOS4yIDIxLjQgNDEuNy01LjcgMTMuNS00My42IDI1LjQtNDMuMSAxLjJ6bTIwLjQtNDN6bS0xMTcuMiA0NS43Yy02LjgtMTAuOS0xOS0zMi41LTE0LjUtNDUuMyA2LjUgMTEuOSA4LjYgMjQuNCAxNy44IDMzLjMgNC4xIDQgMTIuMiA5IDguMiAyMC4yLS45IDIuNy03LjggOC42LTExLjcgOS43LTE0LjQgNC4zLTQ3LjkuOS0zNi42LTE3LjEgMTEuOS43IDI3LjkgNy44IDM2LjgtLjh6bTI3LjMgNzBjMy44IDYuNiAxLjQgMTguNyAxMi4xIDIwLjYgMjAuMiAzLjQgNDMuNi0xMi4zIDU4LjEtMTcuOCA5LTE1LjItLjgtMjAuNy04LjktMzAuNS0xNi42LTIwLTM4LjgtNDQuOC0zOC03NC43IDYuNy00LjkgNy4zIDcuNCA4LjIgOS43IDguNyAyMC4zIDMwLjQgNDYuMiA0Ni4zIDYzLjUgMy45IDQuMyAxMC4zIDguNCAxMSAxMS4yIDIuMSA4LjItNS40IDE4LTQuNSAyMy41LTIxLjcgMTMuOS00NS44IDI5LjEtODEuNCAyNS42LTcuNC02LjctMTAuMy0yMS40LTIuOS0zMS4xem0tMjAxLjMtOS4yYy02LjgtMy45LTguNC0yMS0xNi40LTIxLjQtMTEuNC0uNy05LjMgMjIuMi05LjMgMzUuNS03LjgtNy4xLTkuMi0yOS4xLTMuNS00MC4zLTYuNi0zLjItOS41IDMuNi0xMy4xIDUuOSA0LjctMzQuMSA0OS44LTE1LjggNDIuMyAyMC4zem0yOTkuNiAyOC44Yy0xMC4xIDE5LjItMjQuNCA0MC40LTU0IDQxLS42LTYuMi0xLjEtMTUuNiAwLTE5LjQgMjIuNy0yLjIgMzYuNi0xMy43IDU0LTIxLjZ6bS0xNDEuOSAxMi40YzE4LjkgOS45IDUzLjYgMTEgNzkuMyAxMC4yIDEuNCA1LjYgMS4zIDEyLjYgMS40IDE5LjQtMzMgMS44LTcyLTYuNC04MC43LTI5LjZ6bTkyLjIgNDYuN2MtMS43IDQuMy01LjMgOS4zLTkuOCAxMS4xLTEyLjEgNC45LTQ1LjYgOC43LTYyLjQtLjMtMTAuNy01LjctMTcuNS0xOC41LTIzLjQtMjYtMi44LTMuNi0xNi45LTEyLjktLjItMTIuOSAxMy4xIDMyLjcgNTggMjkgOTUuOCAyOC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKaXJhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5MCAyNDEuN0M0MTcuMSAxNjkgMzIwLjYgNzEuOCAyNDguNSAwIDgzIDE2NC45IDYgMjQxLjcgNiAyNDEuN2MtNy45IDcuOS03LjkgMjAuNyAwIDI4LjdDMTM4LjggNDAyLjcgNjcuOCAzMzEuOSAyNDguNSA1MTJjMzc5LjQtMzc4IDE1LjctMTYuNyAyNDEuNS0yNDEuNyA4LTcuOSA4LTIwLjcgMC0yOC42em0tMjQxLjUgOTBsLTc2LTc1LjcgNzYtNzUuNyA3NiA3NS43LTc2IDc1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpvZ2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3OC4xIDQ1QzMzNy42IDE5LjkgMjkyLjYgOCAyNDguMiA4IDE2NSA4IDgzLjggNDkuOSAzNi45IDEyNS45Yy03MS45IDExNi42LTM1LjYgMjY5LjMgODEgMzQxLjJzMjY5LjMgMzUuNiAzNDEuMi04MC45YzcxLjktMTE2LjYgMzUuNi0yNjkuNC04MS0zNDEuMnptNTEuOCAzMjMuMmMtNDAuNCA2NS41LTExMC40IDEwMS41LTE4MiAxMDEuNS02LjggMC0xMy42LS40LTIwLjQtMS05LTEzLjYtMTkuOS0zMy4zLTIzLjctNDIuNC01LjctMTMuNy0yNy4yLTQ1LjYgMzEuMi02Ny4xIDUxLjctMTkuMSAxNzYuNy0xNi41IDIwOC44LTE3LjYtNCA5LTguNiAxNy45LTEzLjkgMjYuNnptLTIwMC44LTg2LjNjLTU1LjUtMS40LTgxLjctMjAuOC01OC41LTQ4LjJzNTEuMS00MC43IDY4LjktNTEuMmMxNy45LTEwLjUgMjcuMy0zMy43LTIzLjYtMjkuN0M4Ny4zIDE2MS41IDQ4LjYgMjUyLjEgMzcuNiAyOTNjLTguOC00OS43LS4xLTEwMi43IDI4LjUtMTQ5LjFDMTI4IDQzLjQgMjU5LjYgMTIuMiAzNjAuMSA3NC4xYzc0LjggNDYuMSAxMTEuMiAxMzAuOSA5OS4zIDIxMi43LTI0LjktLjUtMTc5LjMtMy42LTIzMC4zLTQuOXptMTgzLjgtNTQuOGMtMjIuNy02LTU3IDExLjMtODYuNyAyNy4yLTI5LjcgMTUuOC0zMS4xIDguMi0zMS4xIDguMnM0MC4yLTI4LjEgNTAuNy0zNC41IDMxLjktMTQgMTMuNC0yNC42Yy0zLjItMS44LTYuNy0yLjctMTAuNC0yLjctMTcuOCAwLTQxLjUgMTguNy02Ny41IDM1LjYtMzEuNSAyMC41LTY1LjMgMzEuMy02NS4zIDMxLjNsMTY5LjUtMS42IDQ2LjUtMjMuNHMzLjYtOS41LTE5LjEtMTUuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSm9vbWxhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTS42IDkyLjFDLjYgNTguOCAyNy40IDMyIDYwLjQgMzJjMzAgMCA1NC41IDIxLjkgNTkuMiA1MC4yIDMyLjYtNy42IDY3LjEuNiA5Ni41IDMwbC00NC4zIDQ0LjNjLTIwLjUtMjAuNS00Mi42LTE2LjMtNTUuNC0zLjUtMTQuMyAxNC4zLTE0LjMgMzcuOSAwIDUyLjJsOTkuNSA5OS41LTQ0IDQ0LjNjLTg3LjctODcuMi00OS43LTQ5LjctOTkuOC05OS43LTI2LjgtMjYuNS0zNS02NC44LTI0LjgtOTguOUMyMC40IDE0NC42LjYgMTIwLjcuNiA5Mi4xem0xMjkuNSAxMTYuNGw0NC4zIDQ0LjNjMTAtMTAgODkuNy04OS43IDk5LjctOTkuOCAxNC4zLTE0LjMgMzcuNi0xNC4zIDUxLjkgMCAxMi44IDEyLjggMTcgMzUtMy41IDU1LjRsNDQgNDQuM2MzMS4yLTMxLjIgMzguNS02Ny42IDI4LjktMTAxLjIgMjkuMi00LjEgNTEuOS0yOS4yIDUxLjktNTkuNSAwLTMzLjItMjYuOC02MC4xLTU5LjgtNjAuMS0zMC4zIDAtNTUuNCAyMi41LTU5LjUgNTEuNi0zMy44LTkuOS03MS43LTEuNS05OC4zIDI1LjEtMTguMyAxOS4xLTcxLjEgNzEuNS05OS42IDk5Ljl6bTI2Ni4zIDE1Mi4yYzguMi0zMi43LS45LTY4LjUtMjYuMy05My45LTExLjgtMTIuMiA1IDQuNy05OS41LTk5LjdsLTQ0LjMgNDQuMyA5OS43IDk5LjdjMTQuMyAxNC4zIDE0LjMgMzcuNiAwIDUxLjktMTIuOCAxMi44LTM1IDE3LTU1LjQtMy41bC00NCA0NC4zYzI3LjYgMzAuMiA2OCAzOC44IDEwMi43IDI4IDUuNSAyNy40IDI5LjcgNDguMSA1OC45IDQ4LjEgMzMgMCA1OS44LTI2LjggNTkuOC02MC4xIDAtMzAuMi0yMi41LTU1LTUxLjYtNTkuMXptLTg0LjMtNTMuMWwtNDQtNDQuM2MtODcgODYuNC01MC40IDUwLjQtOTkuNyA5OS44LTE0LjMgMTQuMy0zNy42IDE0LjMtNTEuOSAwLTEzLjEtMTMuNC0xNi45LTM1LjMgMy4yLTU1LjRsLTQ0LTQ0LjNjLTMwLjIgMzAuMi0zOCA2NS4yLTI5LjUgOTguMy0yNi43IDYtNDYuMiAyOS45LTQ2LjIgNTguMkMwIDQ1My4yIDI2LjggNDgwIDU5LjggNDgwYzI4LjYgMCA1Mi41LTE5LjggNTguNi00Ni43IDMyLjcgOC4yIDY4LjUtLjYgOTQuMi0yNiAzMi4xLTMyIDEyLjItMTIuNCA5OS41LTk5Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUpzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI0My44IDM4MS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41bDM0LjMtMjAuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVWMjM3LjdoNDIuMXYxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNsMzQuMy0xOS44YzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMnY0NDhoNDQ4VjMySDB6bTI0My44IDM0OS40YzAgNDMuNi0yNS42IDYzLjUtNjIuOSA2My41LTMzLjcgMC01My4yLTE3LjQtNjMuMi0zOC41bDM0LjMtMjAuN2M2LjYgMTEuNyAxMi42IDIxLjYgMjcuMSAyMS42IDEzLjggMCAyMi42LTUuNCAyMi42LTI2LjVWMjM3LjdoNDIuMXYxNDMuN3ptOTkuNiA2My41Yy0zOS4xIDAtNjQuNC0xOC42LTc2LjctNDNsMzQuMy0xOS44YzkgMTQuNyAyMC44IDI1LjYgNDEuNSAyNS42IDE3LjQgMCAyOC42LTguNyAyOC42LTIwLjggMC0xNC40LTExLjQtMTkuNS0zMC43LTI4bC0xMC41LTQuNWMtMzAuNC0xMi45LTUwLjUtMjkuMi01MC41LTYzLjUgMC0zMS42IDI0LjEtNTUuNiA2MS42LTU1LjYgMjYuOCAwIDQ2IDkuMyA1OS44IDMzLjdMMzY4IDI5MGMtNy4yLTEyLjktMTUtMTgtMjcuMS0xOC0xMi4zIDAtMjAuMSA3LjgtMjAuMSAxOCAwIDEyLjYgNy44IDE3LjcgMjUuOSAyNS42bDEwLjUgNC41YzM1LjggMTUuMyA1NS45IDMxIDU1LjkgNjYuMiAwIDM3LjgtMjkuOCA1OC42LTY5LjcgNTguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSnNmaWRkbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjYzNCAyMzcuNDYyYy00LjcyNy0yLjYyMS01LjY2NC01Ljc0OC02LjM4MS0xMC43NzYtMi4zNTItMTYuNDg4LTMuNTM5LTMzLjYxOS05LjA5Ny00OS4wOTUtMzUuODk1LTk5Ljk1Ny0xNTMuOTktMTQzLjM4Ni0yNDYuODQ5LTkxLjY0Ni0yNy4zNyAxNS4yNS00OC45NzEgMzYuMzY5LTY1LjQ5MyA2My45MDMtMy4xODQtMS41MDgtNS40NTgtMi43MS03LjgyNC0zLjY4Ni0zMC4xMDItMTIuNDIxLTU5LjA0OS0xMC4xMjEtODUuMzMxIDkuMTY3LTI1LjUzMSAxOC43MzctMzYuNDIyIDQ0LjU0OC0zMi42NzYgNzYuNDA4LjM1NSAzLjAyNS0xLjk2NyA3LjYyMS00LjUxNCA5LjU0NS0zOS43MTIgMjkuOTkyLTU2LjAzMSA3OC4wNjUtNDEuOTAyIDEyNC42MTUgMTMuODMxIDQ1LjU2OSA1Ny41MTQgNzkuNzk2IDEwNS42MDggODEuNDMzIDMwLjI5MSAxLjAzMSA2MC42MzcuNTQ2IDkwLjk1OS41MzkgODQuMDQxLS4wMjEgMTY4LjA5LjUzMSAyNTIuMTItLjQ4IDUyLjY2NC0uNjM0IDk2LjEwOC0zNi44NzMgMTA4LjIxMi04Ny4yOTMgMTEuNTQtNDguMDc0LTExLjE0NC05Ny4zLTU2LjgzMi0xMjIuNjM0em0yMS4xMDcgMTU2Ljg4Yy0xOC4yMyAyMi40MzItNDIuMzQzIDM1LjI1My03MS4yOCAzNS42NS01Ni44NzQuNzgxLTExMy43NjcuMjMtMTcwLjY1Mi4yMyAwIC43LTE2My4wMjguMTU5LTE2My43MjguMTU0LTQzLjg2MS0uMzMyLTc2LjczOS0xOS43NjYtOTUuMTc1LTU5Ljk5NS0xOC45MDItNDEuMjQ1LTQuMDA0LTkwLjg0OCAzNC4xODYtMTE2LjEwNiA5LjE4Mi02LjA3MyAxMi41MDUtMTEuNTY2IDEwLjA5Ni0yMy4xMzYtNS40OS0yNi4zNjEgNC40NTMtNDcuOTU2IDI2LjQyLTYyLjk4MSAyMi45ODctMTUuNzIzIDQ3LjQyMi0xNi4xNDYgNzIuMDM0LTMuMDgzIDEwLjI2OSA1LjQ1IDE0LjYwNyAxMS41NjQgMjIuMTk4LTIuNTI3IDE0LjIyMi0yNi4zOTkgMzQuNTU3LTQ2LjcyNyA2MC42NzEtNjEuMjk0IDk3LjQ2LTU0LjM2NiAyMjguMzcgNy41NjggMjMwLjI0IDEzMi42OTcuMTIyIDguMTUgMi40MTIgMTIuNDI4IDkuODQ4IDE1Ljg5NCA1Ny41NiAyNi44MjkgNzQuNDU2IDk2LjEyMiAzNS4xNDIgMTQ0LjQ5N3ptLTg3Ljc4OS04MC40OTljLTUuODQ4IDMxLjE1Ny0zNC42MjIgNTUuMDk2LTY2LjY2NiA1NS4wOTUtMTYuOTUzLS4wMDEtMzIuMDU4LTYuNTQ1LTQ0LjA3OS0xNy43MDUtMjcuNjk3LTI1LjcxMy03MS4xNDEtNzQuOTgtOTUuOTM3LTkzLjM4Ny0yMC4wNTYtMTQuODg4LTQxLjk5LTEyLjMzMy02MC4yNzIgMy43ODItNDkuOTk2IDQ0LjA3MSAxNS44NTkgMTIxLjc3NSA2Ny4wNjMgNzcuMTg4IDQuNTQ4LTMuOTYgNy44NC05LjU0MyAxMi43NDQtMTIuODQ0IDguMTg0LTUuNTA5IDIwLjc2Ni0uODg0IDEzLjE2OCAxMC42MjItMTcuMzU4IDI2LjI4NC00OS4zMyAzOC4xOTctNzguODYzIDI5LjMwMS0yOC44OTctOC43MDQtNDguODQtMzUuOTY4LTQ4LjYyNi03MC4xNzkgMS4yMjUtMjIuNDg1IDEyLjM2NC00My4wNiAzNS40MTQtNTUuOTY1IDIyLjU3NS0xMi42MzggNDYuMzY5LTEzLjE0NiA2Ni45OTEgMi40NzRDMjk1LjY4IDI4MC43IDMyMC40NjcgMzIzLjk3IDM1Mi4xODUgMzQzLjQ3YzI0LjU1OCAxNS4wOTkgNTQuMjU0IDcuMzYzIDY4LjgyMy0xNy41MDYgMjguODMtNDkuMjA5LTM0LjU5Mi0xMDUuMDE2LTc4Ljg2OC02My40Ni0zLjk4OSAzLjc0NC02LjkxNyA4LjkzMi0xMS40MSAxMS43Mi0xMC45NzUgNi44MTEtMTcuMzMzLTQuMTEzLTEyLjgwOS0xMC4zNTMgMjAuNzAzLTI4LjU1NCA1MC40NjQtNDAuNDQgODMuMjcxLTI4LjIxNCAzMS40MjkgMTEuNzE0IDQ5LjEwOCA0NC4zNjYgNDIuNzYgNzguMTg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLYWdnbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LjIgNTAxLjVMMTU4LjQgMzIwLjMgMjk4LjIgMTg1YzIuNi0yLjcgMS43LTEwLjUtNS4zLTEwLjVoLTY5LjJjLTMuNSAwLTcgMS44LTEwLjUgNS4zTDgwLjkgMzEzLjVWNy41cTAtNy41LTcuNS03LjVIMjEuNVExNCAwIDE0IDcuNXY0OTdxMCA3LjUgNy41IDcuNWg1MS45cTcuNSAwIDcuNS03LjV2LTEwOWwzMC44LTI5LjMgMTEwLjUgMTQwLjZjMyAzLjUgNi41IDUuMyAxMC41IDUuM2g2Ni45cTUuMjUgMCA2LTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtleWJhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg2LjE3IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHptMTExLjkyLTE0Ny42Yy05LjUtMTQuNjItMzkuMzctNTIuNDUtODcuMjYtNzMuNzFxLTkuMS00LjA2LTE4LjM4LTcuMjdhNzguNDMgNzguNDMgMCAwIDAtNDcuODgtMTA0LjEzYy0xMi40MS00LjEtMjMuMzMtNi0zMi40MS01Ljc3LS42LTItMS44OS0xMSA5LjQtMzVMMTk4LjY2IDMybC01LjQ4IDcuNTZjLTguNjkgMTIuMDYtMTYuOTIgMjMuNTUtMjQuMzQgMzQuODlhNTEgNTEgMCAwIDAtOC4yOS0xLjI1Yy00MS41My0yLjQ1LTM5LTIuMzMtNDEuMDYtMi4zMy01MC42MSAwLTUwLjc1IDUyLjEyLTUwLjc1IDQ1Ljg4bC0yLjM2IDM2LjY4Yy0xLjYxIDI3IDE5Ljc1IDUwLjIxIDQ3LjYzIDUxLjg1bDguOTMuNTRhMjE0IDIxNCAwIDAgMC00Ni4yOSAzNS41NEMxNCAzMDQuNjYgMTQgMzc0IDE0IDQyOS43N3YzMy42NGwyMy4zMi0yOS44YTE0OC42IDE0OC42IDAgMCAwIDE0LjU2IDM3LjU2YzUuNzggMTAuMTMgMTQuODcgOS40NSAxOS42NCA3LjMzIDQuMjEtMS44NyAxMC02LjkyIDMuNzUtMjAuMTFhMTc4LjI5IDE3OC4yOSAwIDAgMS0xNS43Ni01My4xM2w0Ni44Mi01OS44My0yNC42NiA3NC4xMWM1OC4yMy00Mi40IDE1Ny4zOC02MS43NiAyMzYuMjUtMzguNTkgMzQuMiAxMC4wNSA2Ny40NS42OSA4NC43NC0yMy44NC43Mi0xIDEuMi0yLjE2IDEuODUtMy4yMmExNTYuMDkgMTU2LjA5IDAgMCAxIDIuOCAyOC40M2MwIDIzLjMtMy42OSA1Mi45My0xNC44OCA4MS42NC0yLjUyIDYuNDYgMS43NiAxNC41IDguNiAxNS43NCA3LjQyIDEuNTcgMTUuMzMtMy4xIDE4LjM3LTExLjE1QzQyOSA0NDMgNDM0IDQxNCA0MzQgMzgyLjMyYzAtMzguNTgtMTMtNzcuNDYtMzUuOTEtMTEwLjkyek0xNDIuMzcgMTI4LjU4bC0xNS43LS45My0xLjM5IDIxLjc5IDEzLjEzLjc4YTkzIDkzIDAgMCAwIC4zMiAxOS41N2wtMjIuMzgtMS4zNGExMi4yOCAxMi4yOCAwIDAgMS0xMS43Ni0xMi43OUwxMDcgMTE5YzEtMTIuMTcgMTMuODctMTEuMjcgMTMuMjYtMTEuMzJsMjkuMTEgMS43M2ExNDQuMzUgMTQ0LjM1IDAgMCAwLTcgMTkuMTd6bTE0OC40MiAxNzIuMThhMTAuNTEgMTAuNTEgMCAwIDEtMTQuMzUtMS4zOWwtOS42OC0xMS40OS0zNC40MiAyN2E4LjA5IDguMDkgMCAwIDEtMTEuMTMtMS4wOGwtMTUuNzgtMTguNjRhNy4zOCA3LjM4IDAgMCAxIDEuMzQtMTAuMzRsMzQuNTctMjcuMTgtMTQuMTQtMTYuNzQtMTcuMDkgMTMuNDVhNy43NSA3Ljc1IDAgMCAxLTEwLjU5LTFzLTMuNzItNC40Mi0zLjgtNC41M2E3LjM4IDcuMzggMCAwIDEgMS4zNy0xMC4zNEwyMTQgMjI1LjE5cy0xOC41MS0yMi0xOC42LTIyLjE0YTkuNTYgOS41NiAwIDAgMSAxLjc0LTEzLjQyIDEwLjM4IDEwLjM4IDAgMCAxIDE0LjMgMS4zN2w4MS4wOSA5Ni4zMmE5LjU4IDkuNTggMCAwIDEtMS43NCAxMy40NHpNMTg3LjQ0IDQxOWExOCAxOCAwIDEgMCAxOCAxOCAxOCAxOCAwIDAgMC0xOC0xOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2V5Y2RuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzLjggNDA5LjNsNjAuNS01OWMzMi4xIDQyLjggNzEuMSA2NiAxMjYuNiA2Ny40IDMwLjUuNyA2MC4zLTcgODYuNC0yMi40IDUuMSA1LjMgMTguNSAxOS41IDIwLjkgMjItMzIuMiAyMC43LTY5LjYgMzEuMS0xMDguMSAzMC4yLTQzLjMtMS4xLTg0LjYtMTYuNy0xMTcuNy00NC40LjMtLjYtMzguMiAzNy41LTM4LjYgMzcuOSA5LjUgMjkuOC0xMy4xIDYyLjQtNDYuMyA2Mi40QzIwLjcgNTAzLjMgMCA0ODEuNyAwIDQ1NC45YzAtMzQuMyAzMy4xLTU2LjYgNjMuOC00NS42em0zNTQuOS0yNTIuNGMxOS4xIDMxLjMgMjkuNiA2Ny40IDI4LjcgMTA0LTEuMSA0NC44LTE5IDg3LjUtNDguNiAxMjEgLjMuMyAyMy44IDI1LjIgMjQuMSAyNS41IDkuNi0xLjMgMTkuMiAyIDI1LjkgOS4xIDExLjMgMTIgMTAuOSAzMC45LTEuMSA0Mi40LTEyIDExLjMtMzAuOSAxMC45LTQyLjQtMS4xLTYuNy03LTkuNC0xNi44LTcuNi0yNi4zLTI0LjktMjYuNi00NC40LTQ3LjItNDQuNC00Ny4yIDQyLjctMzQuMSA2My4zLTc5LjYgNjQuNC0xMjQuMi43LTI4LjktNy4yLTU3LjItMjEuMS04Mi4ybDIyLjEtMjF6TTEwNCA1My4xYzYuNyA3IDkuNCAxNi44IDcuNiAyNi4zbDQ1LjkgNDguMWMtNC43IDMuOC0xMy4zIDEwLjQtMjIuOCAyMS4zLTI1LjQgMjguNS0zOS42IDY0LjgtNDAuNyAxMDIuOS0uNyAyOC45IDYuMSA1Ny4yIDIwIDgyLjRsLTIyIDIxLjVDNzIuNyAzMjQgNjMuMSAyODcuOSA2NC4yIDI1MC45YzEtNDQuNiAxOC4zLTg3LjYgNDcuNS0xMjEuMWwtMjUuMy0yNi40Yy05LjYgMS4zLTE5LjItMi0yNS45LTkuMS0xMS4zLTEyLTEwLjktMzAuOSAxLjEtNDIuNEM3My41IDQwLjcgOTIuMiA0MSAxMDQgNTMuMXpNNDY0LjkgOGMyNiAwIDQ3LjEgMjIuNCA0Ny4xIDQ4LjNTNDkwLjkgMTA0IDQ2NC45IDEwNGMtNi4zLjEtMTQtMS4xLTE1LjktMS44bC02Mi45IDU5LjdjLTMyLjctNDMuNi03Ni43LTY1LjktMTI2LjktNjcuMi0zMC41LS43LTYwLjMgNi44LTg2LjIgMjIuNGwtMjEuMS0yMkMxODQuMSA3NC4zIDIyMS41IDY0IDI2MCA2NC45YzQzLjMgMS4xIDg0LjYgMTYuNyAxMTcuNyA0NC42bDQxLjEtMzguNmMtMS41LTQuNy0yLjItOS42LTIuMi0xNC41QzQxNi41IDI5LjcgNDM4LjkgOCA0NjQuOSA4ek0yNTYuNyAxMTMuNGM1LjUgMCAxMC45LjQgMTYuNCAxLjEgNzguMSA5LjggMTMzLjQgODEuMSAxMjMuOCAxNTkuMS05LjggNzguMS04MS4xIDEzMy40LTE1OS4xIDEyMy44LTc4LjEtOS44LTEzMy40LTgxLjEtMTIzLjgtMTU5LjIgOS4zLTcyLjQgNzAuMS0xMjQuNiAxNDIuNy0xMjQuOHptLTU5IDExOS40Yy42IDIyLjcgMTIuMiA0MS44IDMyLjQgNTIuMmwtMTEgNTEuN2g3My43bC0xMS01MS43YzIwLjEtMTAuOSAzMi4xLTI5IDMyLjQtNTIuMi0uNC0zMi44LTI1LjgtNTcuNS01OC4zLTU4LjMtMzIuMS44LTU3LjMgMjQuOC01OC4yIDU4LjN6TTI1NiAxNjBcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2lja3N0YXJ0ZXJLIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0Ny4zIDExNC40YzAtNTYuMi0zMi41LTgyLjQtNzMuNC04Mi40QzI2LjIgMzIgMCA2OC4yIDAgMTEzLjR2MjgzYzAgNDcuMyAyNS4zIDgzLjQgNzQuOSA4My40IDM5LjggMCA3Mi40LTI1LjYgNzIuNC04My40di03Ni41bDExMi4xIDEzOC4zYzIyLjcgMjcuMiA3Mi4xIDMwLjcgMTAzLjIgMCAyNy0yNy42IDI3LjMtNjcuNCA3LjQtOTIuMmwtOTAuOC0xMTQuOCA3NC45LTEwNy40YzE3LjQtMjQuNyAxNy41LTYzLjEtMTAuNC04OS44LTMwLjMtMjktODIuNC0zMS42LTExMy42IDEyLjhMMTQ3LjMgMTg1di03MC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaWNrc3RhcnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgNDgwSDQ4Yy0yNi40IDAtNDgtMjEuNi00OC00OFY4MGMwLTI2LjQgMjEuNi00OCA0OC00OGgzNTJjMjYuNCAwIDQ4IDIxLjYgNDggNDh2MzUyYzAgMjYuNC0yMS42IDQ4LTQ4IDQ4ek0xOTkuNiAxNzguNWMwLTMwLjctMTcuNi00NS4xLTM5LjctNDUuMS0yNS44IDAtNDAgMTkuOC00MCA0NC41djE1NC44YzAgMjUuOCAxMy43IDQ1LjYgNDAuNSA0NS42IDIxLjUgMCAzOS4yLTE0IDM5LjItNDUuNnYtNDEuOGw2MC42IDc1LjdjMTIuMyAxNC45IDM5IDE2LjggNTUuOCAwIDE0LjYtMTUuMSAxNC44LTM2LjggNC01MC40bC00OS4xLTYyLjggNDAuNS01OC43YzkuNC0xMy41IDkuNS0zNC41LTUuNi00OS4xLTE2LjQtMTUuOS00NC42LTE3LjMtNjEuNCA3bC00NC44IDY0Ljd2LTM4Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtvcnZ1ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuNSAzNGgtMzI3QzI2LjggMzQgMCA2MC44IDAgOTMuNXYzMjcuMUMwIDQ1My4yIDI2LjggNDgwIDU5LjUgNDgwaDMyNy4xYzMzIDAgNTkuNS0yNi44IDU5LjUtNTkuNXYtMzI3QzQ0NiA2MC44IDQxOS4yIDM0IDM4Ni41IDM0ek04Ny4xIDEyMC44aDk2djExNmw2MS44LTExNmgxMTAuOWwtODEuMiAxMzJIODcuMXYtMTMyem0xNjEuOCAyNzIuMWwtNjUuNy0xMTMuNnYxMTMuNmgtOTZWMjYyLjFoMTkxLjVsODguNiAxMzAuOEgyNDguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFyYXZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQuNCwxMTUuODNhNS43Miw1LjcyLDAsMCwwLS4yOC0uNjgsOC41Miw4LjUyLDAsMCwwLS41My0xLjI1LDYsNiwwLDAsMC0uNTQtLjcxLDkuMzYsOS4zNiwwLDAsMC0uNzItLjk0Yy0uMjMtLjIyLS41Mi0uNC0uNzctLjZhOC44NCw4Ljg0LDAsMCwwLS45LS42OEw0MDQuNCw1NS41NWE4LDgsMCwwLDAtOCwwTDMwMC4xMiwxMTFoMGE4LjA3LDguMDcsMCwwLDAtLjg4LjY5LDcuNjgsNy42OCwwLDAsMC0uNzguNiw4LjIzLDguMjMsMCwwLDAtLjcyLjkzYy0uMTcuMjQtLjM5LjQ1LS41NC43MWE5LjcsOS43LDAsMCwwLS41MiwxLjI1Yy0uMDguMjMtLjIxLjQ0LS4yOC42OGE4LjA4LDguMDgsMCwwLDAtLjI4LDIuMDhWMjIzLjE4bC04MC4yMiw0Ni4xOVY2My40NGE3LjgsNy44LDAsMCwwLS4yOC0yLjA5Yy0uMDYtLjI0LS4yLS40NS0uMjgtLjY4YTguMzUsOC4zNSwwLDAsMC0uNTItMS4yNGMtLjE0LS4yNi0uMzctLjQ3LS41NC0uNzJhOS4zNiw5LjM2LDAsMCwwLS43Mi0uOTQsOS40Niw5LjQ2LDAsMCwwLS43OC0uNiw5LjgsOS44LDAsMCwwLS44OC0uNjhoMEwxMTUuNjEsMS4wN2E4LDgsMCwwLDAtOCwwTDExLjM0LDU2LjQ5aDBhNi41Miw2LjUyLDAsMCwwLS44OC42OSw3LjgxLDcuODEsMCwwLDAtLjc5LjYsOC4xNSw4LjE1LDAsMCwwLS43MS45M2MtLjE4LjI1LS40LjQ2LS41NS43MmE3Ljg4LDcuODgsMCwwLDAtLjUxLDEuMjQsNi40Niw2LjQ2LDAsMCwwLS4yOS42Nyw4LjE4LDguMTgsMCwwLDAtLjI4LDIuMXYzMjkuN2E4LDgsMCwwLDAsNCw2Ljk1bDE5Mi41LDExMC44NGE4LjgzLDguODMsMCwwLDAsMS4zMy41NGMuMjEuMDguNDEuMi42My4yNmE3LjkyLDcuOTIsMCwwLDAsNC4xLDBjLjItLjA1LjM3LS4xNi41NS0uMjJhOC42LDguNiwwLDAsMCwxLjQtLjU4TDQwNC40LDQwMC4wOWE4LDgsMCwwLDAsNC02Ljk1VjI4Ny44OGw5Mi4yNC01My4xMWE4LDgsMCwwLDAsNC03VjExNy45MkE4LjYzLDguNjMsMCwwLDAsNTA0LjQsMTE1LjgzWk0xMTEuNiwxNy4yOGgwbDgwLjE5LDQ2LjE1LTgwLjIsNDYuMThMMzEuNDEsNjMuNDRabTg4LjI1LDYwVjI3OC42bC00Ni41MywyNi43OS0zMy42OSwxOS40VjEyMy41bDQ2LjUzLTI2Ljc5Wm0wLDQxMi43OEwyMy4zNywzODguNVY3Ny4zMkw1Ny4wNiw5Ni43bDQ2LjUyLDI2LjhWMzM4LjY4YTYuOTQsNi45NCwwLDAsMCwuMTIuOSw4LDgsMCwwLDAsLjE2LDEuMThoMGE1LjkyLDUuOTIsMCwwLDAsLjM4LjksNi4zOCw2LjM4LDAsMCwwLC40MiwxdjBhOC41NCw4LjU0LDAsMCwwLC42Ljc4LDcuNjIsNy42MiwwLDAsMCwuNjYuODRsMCwwYy4yMy4yMi41Mi4zOC43Ny41OGE4LjkzLDguOTMsMCwwLDAsLjg2LjY2bDAsMCwwLDAsOTIuMTksNTIuMThabTgtMTA2LjE3LTgwLjA2LTQ1LjMyLDg0LjA5LTQ4LjQxLDkyLjI2LTUzLjExLDgwLjEzLDQ2LjEzLTU4LjgsMzMuNTZabTE4NC41Miw0LjU3TDIxNS44OCw0OTAuMTFWMzk3LjhMMzQ2LjYsMzIzLjJsNDUuNzctMjYuMTVabTAtMTE5LjEzTDM1OC42OCwyNTBsLTQ2LjUzLTI2Ljc5VjEzMS43OWwzMy42OSwxOS40TDM5Mi4zNywxNzhabTgtMTA1LjI4LTgwLjItNDYuMTcsODAuMi00Ni4xNiw4MC4xOCw0Ni4xNVptOCwxMDUuMjhWMTc4TDQ1NSwxNTEuMTlsMzMuNjgtMTkuNHY5MS4zOWgwWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXN0Zm1TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTkyLjIgMzEyLjljLTYzLjQgMC04NS40LTI4LjYtOTcuMS02NC4xLTE2LjMtNTEtMjEuNS04NC4zLTYzLTg0LjMtMjIuNCAwLTQ1LjEgMTYuMS00NS4xIDYxLjIgMCAzNS4yIDE4IDU3LjIgNDMuMyA1Ny4yIDI4LjYgMCA0Ny42LTIxLjMgNDcuNi0yMS4zbDExLjcgMzEuOXMtMTkuOCAxOS40LTYxLjIgMTkuNGMtNTEuMyAwLTc5LjktMzAuMS03OS45LTg1LjggMC01Ny45IDI4LjYtOTIgODIuNS05MiA3My41IDAgODAuOCA0MS40IDEwMC44IDEwMS45IDguOCAyNi44IDI0LjIgNDYuMiA2MS4yIDQ2LjIgMjQuOSAwIDM4LjEtNS41IDM4LjEtMTkuMSAwLTE5LjktMjEuOC0yMi00OS45LTI4LjYtMzAuNC03LjMtNDIuNS0yMy4xLTQyLjUtNDggMC00MCAzMi4zLTUyLjQgNjUuMi01Mi40IDM3LjQgMCA2MC4xIDEzLjYgNjMgNDYuNmwtMzYuNyA0LjRjLTEuNS0xNS44LTExLTIyLjQtMjguNi0yMi40LTE2LjEgMC0yNiA3LjMtMjYgMTkuOCAwIDExIDQuOCAxNy42IDIwLjkgMjEuMyAzMi43IDcuMSA3MS44IDEyIDcxLjggNTcuNS4xIDM2LjctMzAuNyA1MC42LTc2LjEgNTAuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFzdGZtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS44IDM2Ny4xbC0xOC44LTUxcy0zMC41IDM0LTc2LjIgMzRjLTQwLjUgMC02OS4yLTM1LjItNjkuMi05MS41IDAtNzIuMSAzNi40LTk3LjkgNzIuMS05Ny45IDY2LjUgMCA3NC44IDUzLjMgMTAwLjkgMTM0LjkgMTguOCA1Ni45IDU0IDEwMi42IDE1NS40IDEwMi42IDcyLjcgMCAxMjItMjIuMyAxMjItODAuOSAwLTcyLjktNjIuNy04MC42LTExNS05Mi4xLTI1LjgtNS45LTMzLjQtMTYuNC0zMy40LTM0IDAtMTkuOSAxNS44LTMxLjcgNDEuNi0zMS43IDI4LjIgMCA0My40IDEwLjYgNDUuNyAzNS44bDU4LjYtN2MtNC43LTUyLjgtNDEuMS03NC41LTEwMC45LTc0LjUtNTIuOCAwLTEwNC40IDE5LjktMTA0LjQgODMuOSAwIDM5LjkgMTkuNCA2NS4xIDY4IDc2LjggNDQuOSAxMC42IDc5LjggMTMuOCA3OS44IDQ1LjcgMCAyMS43LTIxLjEgMzAuNS02MSAzMC41LTU5LjIgMC04My45LTMxLjEtOTcuOS03My45LTMyLTk2LjgtNDMuNi0xNjMtMTYxLjMtMTYzQzQ1LjcgMTEzLjggMCAxNjguMyAwIDI2MWMwIDg5LjEgNDUuNyAxMzcuMiAxMjcuOSAxMzcuMiA2Ni4yIDAgOTcuOS0zMS4xIDk3LjktMzEuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGVhbnB1YiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODYuNTM5IDExMS40ODVsMTUuMDk2IDI0OC45NTUtMTAuOTc5LS4yNzVjLTM2LjIzMi0uODI0LTcxLjY0IDguNzgzLTEwMi42NTcgMjcuOTk3LTMxLjAxNi0xOS4yMTQtNjYuNDI0LTI3Ljk5Ny0xMDIuNjU3LTI3Ljk5Ny00NS41NjQgMC04Mi4wNyAxMC43MDUtMTIzLjUxNiAyNy43MjNMOTMuMTE3IDEyOS42YzI4LjU0Ni0xMS44MDMgNjEuNDg0LTE4LjExNSA5Mi4yMjYtMTguMTE1IDQxLjE3MyAwIDczLjgzNiAxMy4xNzUgMTAyLjY1NyA0Mi41NDQgMjcuNzIzLTI4LjI3MSA1OS4wMTMtNDEuNzIxIDk4LjUzOS00Mi41NDR6TTU2OS4wNyA0NDhjLTI1LjUyNiAwLTQ3LjQ4NS01LjIxNS03MC41NDItMTUuNjQ1LTM0LjMxLTE1LjY0NS02OS45OTMtMjQuOTc4LTEwNy44NzEtMjQuOTc4LTM4Ljk3NyAwLTc0LjkzNCAxMi45MDEtMTAyLjY1NyA0MC42MjMtMjcuNzIzLTI3LjcyMy02My42OC00MC42MjMtMTAyLjY1Ny00MC42MjMtMzcuODc4IDAtNzMuNTYxIDkuMzMzLTEwNy44NzEgMjQuOTc4QzU1LjIzOSA0NDIuMjM2IDMyLjczMSA0NDggOC4zMDMgNDQ4SDYuOTNMNDkuNDc1IDk4Ljg1OUM4OC43MjYgNzYuNjI2IDEzNi40ODYgNjQgMTgxLjc3NSA2NCAyMTguODMgNjQgMjU2Ljk4NCA3MS42ODUgMjg4IDkzLjA5NSAzMTkuMDE2IDcxLjY4NSAzNTcuMTcgNjQgMzk0LjIyNSA2NGM0NS4yODkgMCA5My4wNDkgMTIuNjI2IDEzMi4zIDM0Ljg1OUw1NjkuMDcgNDQ4em0tNDMuMzY4LTQ0Ljc0MWwtMzQuMDM2LTI4MC4yNDZjLTMwLjc0Mi0xMy45OTktNjcuMjQ4LTIxLjQxLTEwMS4wMDktMjEuNDEtMzguNDI4IDAtNzQuMzg1IDEyLjA3Ny0xMDIuNjU3IDM4LjcwMi0yOC4yNzItMjYuNjI1LTY0LjIyOC0zOC43MDItMTAyLjY1Ny0zOC43MDItMzMuNzYxIDAtNzAuMjY3IDcuNDExLTEwMS4wMDkgMjEuNDFMNTAuMjk4IDQwMy4yNTljNDcuMjExLTE5LjQ4NyA4Mi44OTQtMzMuNDg2IDEzNS4wNDUtMzMuNDg2IDM3LjYwNCAwIDcwLjgxNyA5LjYwNiAxMDIuNjU3IDI5LjY0NCAzMS44NC0yMC4wMzggNjUuMDUyLTI5LjY0NCAxMDIuNjU3LTI5LjY0NCA1Mi4xNTEgMCA4Ny44MzQgMTMuOTk5IDEzNS4wNDUgMzMuNDg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxMi43IDIxOWMwLTIwLjUgMy4yLTMyLjYgMy4yLTU0LjYgMC0zNC4yLTEyLjYtNDUuMi00MC41LTQ1LjJoLTIwLjV2MjQuMmg2LjNjMTQuMiAwIDE3LjMgNC43IDE3LjMgMjIuMSAwIDE2LjMtMS42IDMyLjYtMS42IDUxLjUgMCAyNC4yIDcuOSAzMy42IDIzLjYgMzcuM3YxLjZjLTE1LjggMy43LTIzLjYgMTMuMS0yMy42IDM3LjMgMCAxOC45IDEuNiAzNC4yIDEuNiA1MS41IDAgMTcuOS0zLjcgMjIuNi0xNy4zIDIyLjZ2LjVoLTYuM1YzOTNoMjAuNWMyNy44IDAgNDAuNS0xMSA0MC41LTQ1LjIgMC0yMi42LTMuMi0zNC4yLTMuMi01NC42IDAtMTEgNi44LTIyLjYgMjcuMy0yMy42di0yNy4zYy0yMC41LS43LTI3LjMtMTIuMy0yNy4zLTIzLjN6bS0xMDUuNiAzMmMtMTUuOC02LjMtMzAuNS0xMC0zMC41LTIwLjUgMC03LjkgNi4zLTEyLjYgMTcuOS0xMi42czIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIxIDMwLjVjMTUuOCAxMy4xIDM5LjkgMjIuMSA1OS45IDIyLjEgNDIgMCA2NC42LTIyLjEgNjQuNi01MXMtMjIuNS00MS00My00Ny44em0tMzU4LjkgNTkuNGMtMy43IDAtOC40LTMuMi04LjQtMTMuMVYxMTkuMUg2NS4yYy0yOC40IDAtNDEgMTEtNDEgNDUuMiAwIDIyLjYgMy4yIDM1LjIgMy4yIDU0LjYgMCAxMS02LjggMjIuNi0yNy4zIDIzLjZ2MjcuM2MyMC41LjUgMjcuMyAxMi4xIDI3LjMgMjMuMSAwIDE5LjQtMy4yIDMxLTMuMiA1My42IDAgMzQuMiAxMi42IDQ1LjIgNDAuNSA0NS4yaDIwLjV2LTI0LjJoLTYuM2MtMTMuMSAwLTE3LjMtNS4zLTE3LjMtMjIuNnMxLjYtMzIuMSAxLjYtNTEuNWMwLTI0LjItNy45LTMzLjYtMjMuNi0zNy4zdi0xLjZjMTUuOC0zLjcgMjMuNi0xMy4xIDIzLjYtMzcuMyAwLTE4LjktMS42LTM0LjItMS42LTUxLjVzMy43LTIyLjEgMTcuMy0yMi4xSDkzdjE1MC44YzAgMzIuMSAxMSA1My4xIDQzLjEgNTMuMSAxMCAwIDE3LjktMS42IDIzLjYtMy43bC01LjMtMzQuMmMtMy4xLjgtNC42LjgtNi4yLjh6TTM3OS45IDI1MWMtMTYuMy02LjMtMzEtMTAtMzEtMjAuNSAwLTcuOSA2LjMtMTIuNiAxNy45LTEyLjYgMTEuNiAwIDIyLjEgNC43IDMzLjYgMTMuMWwyMS0yNy44Yy0xMy4xLTEwLTMxLTIwLjUtNTUuMi0yMC41LTM1LjcgMC01OS45IDIwLjUtNTkuOSA0OS40IDAgMjUuNyAyMi42IDM4LjkgNDEuNSA0Ni4yIDE2LjMgNi4zIDMyLjEgMTEuNiAzMi4xIDIyLjEgMCA3LjktNi4zIDEzLjEtMjAuNSAxMy4xLTEzLjEgMC0yNi4zLTUuMy00MC41LTE2LjNsLTIwLjUgMzAuNWMxNS44IDEzLjEgMzkuOSAyMi4xIDU5LjkgMjIuMSA0MiAwIDY0LjYtMjIuMSA2NC42LTUxIC4xLTI4LjktMjIuNS00MS00My00Ny44em0tMTU1LTY4LjhjLTM4LjQgMC03NS4xIDMyLjEtNzQuMSA4Mi41IDAgNTIgMzQuMiA4Mi41IDc5LjMgODIuNSAxOC45IDAgMzkuOS02LjggNTYuMi0xNy45bC0xNS44LTI3LjhjLTExLjYgNi44LTIyLjYgMTAtMzQuMiAxMC0yMSAwLTM3LjMtMTAtNDEuNS0zNC4ySDI5MGMuNS0zLjcgMS42LTExIDEuNi0xOS40LjYtNDIuNi0yMi42LTc1LjctNjYuNy03NS43em0tMzAgNjYuMmMzLjItMjEgMTUuOC0zMSAzMC41LTMxIDE4LjkgMCAyNi4zIDEzLjEgMjYuMyAzMWgtNTYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGluZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzIuMSAyMDQuMnY3MS4xYzAgMS44LTEuNCAzLjItMy4yIDMuMmgtMTEuNGMtMS4xIDAtMi4xLS42LTIuNi0xLjNsLTMyLjYtNDR2NDIuMmMwIDEuOC0xLjQgMy4yLTMuMiAzLjJoLTExLjRjLTEuOCAwLTMuMi0xLjQtMy4yLTMuMnYtNzEuMWMwLTEuOCAxLjQtMy4yIDMuMi0zLjJIMjE5YzEgMCAyLjEuNSAyLjYgMS40bDMyLjYgNDR2LTQyLjJjMC0xLjggMS40LTMuMiAzLjItMy4yaDExLjRjMS44LS4xIDMuMyAxLjQgMy4zIDMuMXptLTgyLTMuMmgtMTEuNGMtMS44IDAtMy4yIDEuNC0zLjIgMy4ydjcxLjFjMCAxLjggMS40IDMuMiAzLjIgMy4yaDExLjRjMS44IDAgMy4yLTEuNCAzLjItMy4ydi03MS4xYzAtMS43LTEuNC0zLjItMy4yLTMuMnptLTI3LjUgNTkuNmgtMzEuMXYtNTYuNGMwLTEuOC0xLjQtMy4yLTMuMi0zLjJoLTExLjRjLTEuOCAwLTMuMiAxLjQtMy4yIDMuMnY3MS4xYzAgLjkuMyAxLjYuOSAyLjIuNi41IDEuMy45IDIuMi45aDQ1LjdjMS44IDAgMy4yLTEuNCAzLjItMy4ydi0xMS40YzAtMS43LTEuNC0zLjItMy4xLTMuMnpNMzMyLjEgMjAxaC00NS43Yy0xLjcgMC0zLjIgMS40LTMuMiAzLjJ2NzEuMWMwIDEuNyAxLjQgMy4yIDMuMiAzLjJoNDUuN2MxLjggMCAzLjItMS40IDMuMi0zLjJ2LTExLjRjMC0xLjgtMS40LTMuMi0zLjItMy4ySDMwMXYtMTJoMzEuMWMxLjggMCAzLjItMS40IDMuMi0zLjJWMjM0YzAtMS44LTEuNC0zLjItMy4yLTMuMkgzMDF2LTEyaDMxLjFjMS44IDAgMy4yLTEuNCAzLjItMy4ydi0xMS40Yy0uMS0xLjctMS41LTMuMi0zLjItMy4yek00NDggMTEzLjdWMzk5Yy0uMSA0NC44LTM2LjggODEuMS04MS43IDgxSDgxYy00NC44LS4xLTgxLjEtMzYuOS04MS04MS43VjExM2MuMS00NC44IDM2LjktODEuMSA4MS43LTgxSDM2N2M0NC44LjEgODEuMSAzNi44IDgxIDgxLjd6bS02MS42IDEyMi42YzAtNzMtNzMuMi0xMzIuNC0xNjMuMS0xMzIuNC04OS45IDAtMTYzLjEgNTkuNC0xNjMuMSAxMzIuNCAwIDY1LjQgNTggMTIwLjIgMTM2LjQgMTMwLjYgMTkuMSA0LjEgMTYuOSAxMS4xIDEyLjYgMzYuOC0uNyA0LjEtMy4zIDE2LjEgMTQuMSA4LjggMTcuNC03LjMgOTMuOS01NS4zIDEyOC4yLTk0LjcgMjMuNi0yNiAzNC45LTUyLjMgMzQuOS04MS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5rZWRpbkluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMC4yOCA0NDhINy40VjE0OC45aDkyLjg4ek01My43OSAxMDguMUMyNC4wOSAxMDguMSAwIDgzLjUgMCA1My44YTUzLjc5IDUzLjc5IDAgMCAxIDEwNy41OCAwYzAgMjkuNy0yNC4xIDU0LjMtNTMuNzkgNTQuM3pNNDQ3LjkgNDQ4aC05Mi42OFYzMDIuNGMwLTM0LjctLjctNzkuMi00OC4yOS03OS4yLTQ4LjI5IDAtNTUuNjkgMzcuNy01NS42OSA3Ni43VjQ0OGgtOTIuNzhWMTQ4LjloODkuMDh2NDAuOGgxLjNjMTIuNC0yMy41IDQyLjY5LTQ4LjMgODcuODgtNDguMyA5NCAwIDExMS4yOCA2MS45IDExMS4yOCAxNDIuM1Y0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpbmtlZGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMkgzMS45QzE0LjMgMzIgMCA0Ni41IDAgNjQuM3YzODMuNEMwIDQ2NS41IDE0LjMgNDgwIDMxLjkgNDgwSDQxNmMxNy42IDAgMzItMTQuNSAzMi0zMi4zVjY0LjNjMC0xNy44LTE0LjQtMzIuMy0zMi0zMi4zek0xMzUuNCA0MTZINjlWMjAyLjJoNjYuNVY0MTZ6bS0zMy4yLTI0M2MtMjEuMyAwLTM4LjUtMTcuMy0zOC41LTM4LjVTODAuOSA5NiAxMDIuMiA5NmMyMS4yIDAgMzguNSAxNy4zIDM4LjUgMzguNSAwIDIxLjMtMTcuMiAzOC41LTM4LjUgMzguNXptMjgyLjEgMjQzaC02Ni40VjMxMmMwLTI0LjgtLjUtNTYuNy0zNC41LTU2LjctMzQuNiAwLTM5LjkgMjctMzkuOSA1NC45VjQxNmgtNjYuNFYyMDIuMmg2My43djI5LjJoLjljOC45LTE2LjggMzAuNi0zNC41IDYyLjktMzQuNSA2Ny4yIDAgNzkuNyA0NC4zIDc5LjcgMTAxLjlWNDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM3LjQgMjI2LjNjLS4zLS45LS45LTEuNC0xLjQtMmwtNzAtMzguNmMtLjktLjYtMi0uNi0zLjEgMGwtNTguOSAzNmMtLjkuNi0xLjQgMS43LTEuNCAyLjZsLS45IDMxLjQtMjQtMTZjLS45LS42LTIuMy0uNi0zLjEgMEwyNDAgMjYwLjlsLTEuNC0zNS4xYzAtLjktLjYtMi0xLjQtMi4zbC0zNi0yNC4zIDMzLjctMTcuNGMxLjEtLjYgMS43LTEuNyAxLjctMi45bC01LjctMTMyLjNjMC0uOS0uOS0yLTEuNy0yLjZMMTM4LjYuM2MtLjktLjMtMS43LS4zLTIuMy0uM0wxMi42IDM4LjZjLTEuNC42LTIuMyAyLTIgMy43TDM4IDE3NS40Yy45IDMuNCAzNCAyNy40IDM4LjYgMzAuOWwtMjYuOSAxMi45Yy0xLjQuOS0yIDIuMy0xLjcgMy40bDIwLjYgMTAwLjNjLjYgMi45IDIzLjcgMjMuMSAyNy4xIDI2LjNsLTE3LjQgMTAuNmMtLjkuNi0xLjcgMi0xLjQgMy4xIDEuNCA3LjEgMTUuNCA3Ny43IDE2LjkgNzkuMWw2NS4xIDY5LjFjLjYuNiAxLjQuNiAyLjMuOS42IDAgMS4xLS4zIDEuNy0uNmw4My43LTY2LjljLjktLjYgMS4xLTEuNCAxLjEtMi4zbC0yLTQ2IDI4IDIzLjdjMS4xLjkgMi45LjkgNCAwbDY2LjktNTMuNGMuOS0uNiAxLjEtMS40IDEuMS0yLjNsMi4zLTMzLjQgMjAuMyAxNGMxLjEuOSAyLjYuOSAzLjcgMGw1NC42LTQzLjdjLjYtLjMgMS4xLTEuMSAxLjEtMiAuOS02LjUgMTAuMy03MC44IDkuNy03Mi44em0tMjA0LjggNC44bDQgOTIuNi05MC42IDYxLjItMTQtOTYuNiAxMDAuNi01Ny4yem0tNy43LTE4MGw1LjQgMTI2LTEwNi42IDU1LjRMMTA0IDk3LjdsMTIwLjktNDYuNnpNNDQgMTczLjFMMTggNDhsNzkuNyA0OS40IDE5LjQgMTMyLjlMNDQgMTczLjF6bTMwLjYgMTQ3LjhMNTUuNyAyMzBsNzAgNTguMyAxMy43IDkzLjQtNjQuOC02MC44em0yNC4zIDExNy43bC0xMy43LTY3LjEgNjEuNyA2MC45IDkuNyA2Ny40LTU3LjctNjEuMnptNjQuNSA2NC41bC0xMC42LTcwLjkgODUuNy02MS40IDMuMSA3MC03OC4yIDYyLjN6bTgyLTExNS4xYzAtMy40LjktMjIuOS0yLTI1LjFsLTI0LjMtMjAgMjIuMy0xNC45YzIuMy0xLjcgMS4xLTUuNyAxLjEtOGwyOS40IDIyLjYuNiA2OC4zLTI3LjEtMjIuOXptOTQuMy0yNS40bC02MC45IDQ4LjYtLjYtNjguNiA2NS43LTQ2LjktNC4yIDY2Ljl6bTI3LjctMjUuN2wtMTkuMS0xMy40IDItMzRjLjMtLjktLjMtMi0xLjEtMi42TDMwOCAyNTkuN2wuNi0zMCA2NC42IDQwLjYtNS44IDY2LjZ6bTU0LjYtMzkuOGwtNDguMyAzOC4zIDUuNy02NS4xIDUxLjEtMzYuNi04LjUgNjMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGludXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIwLjggMTIzLjNjMSAuNSAxLjggMS43IDMgMS43IDEuMSAwIDIuOC0uNCAyLjktMS41LjItMS40LTEuOS0yLjMtMy4yLTIuOS0xLjctLjctMy45LTEtNS41LS4xLS40LjItLjguNy0uNiAxLjEuMyAxLjMgMi4zIDEuMSAzLjQgMS43em0tMjEuOSAxLjdjMS4yIDAgMi0xLjIgMy0xLjcgMS4xLS42IDMuMS0uNCAzLjUtMS42LjItLjQtLjItLjktLjYtMS4xLTEuNi0uOS0zLjgtLjYtNS41LjEtMS4zLjYtMy40IDEuNS0zLjIgMi45LjEgMSAxLjggMS41IDIuOCAxLjR6TTQyMCA0MDMuOGMtMy42LTQtNS4zLTExLjYtNy4yLTE5LjctMS44LTguMS0zLjktMTYuOC0xMC41LTIyLjQtMS4zLTEuMS0yLjYtMi4xLTQtMi45LTEuMy0uOC0yLjctMS41LTQuMS0yIDkuMi0yNy4zIDUuNi01NC41LTMuNy03OS4xLTExLjQtMzAuMS0zMS4zLTU2LjQtNDYuNS03NC40LTE3LjEtMjEuNS0zMy43LTQxLjktMzMuNC03MkMzMTEuMSA4NS40IDMxNS43LjEgMjM0LjggMCAxMzIuNC0uMiAxNTggMTAzLjQgMTU2LjkgMTM1LjJjLTEuNyAyMy40LTYuNCA0MS44LTIyLjUgNjQuNy0xOC45IDIyLjUtNDUuNSA1OC44LTU4LjEgOTYuNy02IDE3LjktOC44IDM2LjEtNi4yIDUzLjMtNi41IDUuOC0xMS40IDE0LjctMTYuNiAyMC4yLTQuMiA0LjMtMTAuMyA1LjktMTcgOC4zcy0xNCA2LTE4LjUgMTQuNWMtMi4xIDMuOS0yLjggOC4xLTIuOCAxMi40IDAgMy45LjYgNy45IDEuMiAxMS44IDEuMiA4LjEgMi41IDE1LjcuOCAyMC44LTUuMiAxNC40LTUuOSAyNC40LTIuMiAzMS43IDMuOCA3LjMgMTEuNCAxMC41IDIwLjEgMTIuMyAxNy4zIDMuNiA0MC44IDIuNyA1OS4zIDEyLjUgMTkuOCAxMC40IDM5LjkgMTQuMSA1NS45IDEwLjQgMTEuNi0yLjYgMjEuMS05LjYgMjUuOS0yMC4yIDEyLjUtLjEgMjYuMy01LjQgNDguMy02LjYgMTQuOS0xLjIgMzMuNiA1LjMgNTUuMSA0LjEuNiAyLjMgMS40IDQuNiAyLjUgNi43di4xYzguMyAxNi43IDIzLjggMjQuMyA0MC4zIDIzIDE2LjYtMS4zIDM0LjEtMTEgNDguMy0yNy45IDEzLjYtMTYuNCAzNi0yMy4yIDUwLjktMzIuMiA3LjQtNC41IDEzLjQtMTAuMSAxMy45LTE4LjMuNC04LjItNC40LTE3LjMtMTUuNS0yOS43ek0yMjMuNyA4Ny4zYzkuOC0yMi4yIDM0LjItMjEuOCA0NC0uNCA2LjUgMTQuMiAzLjYgMzAuOS00LjMgNDAuNC0xLjYtLjgtNS45LTIuNi0xMi42LTQuOSAxLjEtMS4yIDMuMS0yLjcgMy45LTQuNiA0LjgtMTEuOC0uMi0yNy05LjEtMjcuMy03LjMtLjUtMTMuOSAxMC44LTExLjggMjMtNC4xLTItOS40LTMuNS0xMy00LjQtMS02LjktLjMtMTQuNiAyLjktMjEuOHpNMTgzIDc1LjhjMTAuMSAwIDIwLjggMTQuMiAxOS4xIDMzLjUtMy41IDEtNy4xIDIuNS0xMC4yIDQuNiAxLjItOC45LTMuMy0yMC4xLTkuNi0xOS42LTguNC43LTkuOCAyMS4yLTEuOCAyOC4xIDEgLjggMS45LS4yLTUuOSA1LjUtMTUuNi0xNC42LTEwLjUtNTIuMSA4LjQtNTIuMXptLTEzLjYgNjAuN2M2LjItNC42IDEzLjYtMTAgMTQuMS0xMC41IDQuNy00LjQgMTMuNS0xNC4yIDI3LjktMTQuMiA3LjEgMCAxNS42IDIuMyAyNS45IDguOSA2LjMgNC4xIDExLjMgNC40IDIyLjYgOS4zIDguNCAzLjUgMTMuNyA5LjcgMTAuNSAxOC4yLTIuNiA3LjEtMTEgMTQuNC0yMi43IDE4LjEtMTEuMSAzLjYtMTkuOCAxNi0zOC4yIDE0LjktMy45LS4yLTctMS05LjYtMi4xLTgtMy41LTEyLjItMTAuNC0yMC0xNS04LjYtNC44LTEzLjItMTAuNC0xNC43LTE1LjMtMS40LTQuOSAwLTkgNC4yLTEyLjN6bTMuMyAzMzRjLTIuNyAzNS4xLTQzLjkgMzQuNC03NS4zIDE4LTI5LjktMTUuOC02OC42LTYuNS03Ni41LTIxLjktMi40LTQuNy0yLjQtMTIuNyAyLjYtMjYuNHYtLjJjMi40LTcuNi42LTE2LS42LTIzLjktMS4yLTcuOC0xLjgtMTUgLjktMjAgMy41LTYuNyA4LjUtOS4xIDE0LjgtMTEuMyAxMC4zLTMuNyAxMS44LTMuNCAxOS42LTkuOSA1LjUtNS43IDkuNS0xMi45IDE0LjMtMTggNS4xLTUuNSAxMC04LjEgMTcuNy02LjkgOC4xIDEuMiAxNS4xIDYuOCAyMS45IDE2bDE5LjYgMzUuNmM5LjUgMTkuOSA0My4xIDQ4LjQgNDEgNjguOXptLTEuNC0yNS45Yy00LjEtNi42LTkuNi0xMy42LTE0LjQtMTkuNiA3LjEgMCAxNC4yLTIuMiAxNi43LTguOSAyLjMtNi4yIDAtMTQuOS03LjQtMjQuOS0xMy41LTE4LjItMzguMy0zMi41LTM4LjMtMzIuNS0xMy41LTguNC0yMS4xLTE4LjctMjQuNi0yOS45cy0zLTIzLjMtLjMtMzUuMmM1LjItMjIuOSAxOC42LTQ1LjIgMjcuMi01OS4yIDIuMy0xLjcuOCAzLjItOC43IDIwLjgtOC41IDE2LjEtMjQuNCA1My4zLTIuNiA4Mi40LjYtMjAuNyA1LjUtNDEuOCAxMy44LTYxLjUgMTItMjcuNCAzNy4zLTc0LjkgMzkuMy0xMTIuNyAxLjEuOCA0LjYgMy4yIDYuMiA0LjEgNC42IDIuNyA4LjEgNi43IDEyLjYgMTAuMyAxMi40IDEwIDI4LjUgOS4yIDQyLjQgMS4yIDYuMi0zLjUgMTEuMi03LjUgMTUuOS05IDkuOS0zLjEgMTcuOC04LjYgMjIuMy0xNSA3LjcgMzAuNCAyNS43IDc0LjMgMzcuMiA5NS43IDYuMSAxMS40IDE4LjMgMzUuNSAyMy42IDY0LjYgMy4zLS4xIDcgLjQgMTAuOSAxLjQgMTMuOC0zNS43LTExLjctNzQuMi0yMy4zLTg0LjktNC43LTQuNi00LjktNi42LTIuNi02LjUgMTIuNiAxMS4yIDI5LjIgMzMuNyAzNS4yIDU5IDIuOCAxMS42IDMuMyAyMy43LjQgMzUuNyAxNi40IDYuOCAzNS45IDE3LjkgMzAuNyAzNC44LTIuMi0uMS0zLjIgMC00LjIgMCAzLjItMTAuMS0zLjktMTcuNi0yMi44LTI2LjEtMTkuNi04LjYtMzYtOC42LTM4LjMgMTIuNS0xMi4xIDQuMi0xOC4zIDE0LjctMjEuNCAyNy4zLTIuOCAxMS4yLTMuNiAyNC43LTQuNCAzOS45LS41IDcuNy0zLjYgMTgtNi44IDI5LTMyLjEgMjIuOS03Ni43IDMyLjktMTE0LjMgNy4yem0yNTcuNC0xMS41Yy0uOSAxNi44LTQxLjIgMTkuOS02My4yIDQ2LjUtMTMuMiAxNS43LTI5LjQgMjQuNC00My42IDI1LjVzLTI2LjUtNC44LTMzLjctMTkuM2MtNC43LTExLjEtMi40LTIzLjEgMS4xLTM2LjMgMy43LTE0LjIgOS4yLTI4LjggOS45LTQwLjYuOC0xNS4yIDEuNy0yOC41IDQuMi0zOC43IDIuNi0xMC4zIDYuNi0xNy4yIDEzLjctMjEuMS4zLS4yLjctLjMgMS0uNS44IDEzLjIgNy4zIDI2LjYgMTguOCAyOS41IDEyLjYgMy4zIDMwLjctNy41IDM4LjQtMTYuMyA5LS4zIDE1LjctLjkgMjIuNiA1LjEgOS45IDguNSA3LjEgMzAuMyAxNy4xIDQxLjYgMTAuNiAxMS42IDE0IDE5LjUgMTMuNyAyNC42ek0xNzMuMyAxNDguN2MyIDEuOSA0LjcgNC41IDggNy4xIDYuNiA1LjIgMTUuOCAxMC42IDI3LjMgMTAuNiAxMS42IDAgMjIuNS01LjkgMzEuOC0xMC44IDQuOS0yLjYgMTAuOS03IDE0LjgtMTAuNHM1LjktNi4zIDMuMS02LjYtMi42IDIuNi02IDUuMWMtNC40IDMuMi05LjcgNy40LTEzLjkgOS44LTcuNCA0LjItMTkuNSAxMC4yLTI5LjkgMTAuMnMtMTguNy00LjgtMjQuOS05LjdjLTMuMS0yLjUtNS43LTUtNy43LTYuOS0xLjUtMS40LTEuOS00LjYtNC4zLTQuOS0xLjQtLjEtMS44IDMuNyAxLjcgNi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMeWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgODEuMWg3Ny44djIwOC43YzAgMzMuMSAxNSA1Mi44IDI3LjIgNjEtMTIuNyAxMS4xLTUxLjIgMjAuOS04MC4yLTIuOEM3LjggMzM0IDAgMzEwLjcgMCAyODlWODEuMXptNDg1LjkgMTczLjV2LTIyaDIzLjh2LTc2LjhoLTI2LjFjLTEwLjEtNDYuMy01MS4yLTgwLjctMTAwLjMtODAuNy01Ni42IDAtMTAyLjcgNDYtMTAyLjcgMTAyLjdWMzU3YzE2IDIuMyAzNS40LS4zIDUxLjctMTQgMTcuMS0xNCAyNC44LTM3LjIgMjQuOC01OXYtNi43aDM4Ljh2LTc2LjhoLTM4Ljh2LTIzLjNjMC0zNC42IDUyLjItMzQuNiA1Mi4yIDB2NzcuMWMwIDU2LjYgNDYgMTAyLjcgMTAyLjcgMTAyLjd2LTc2LjVjLTE0LjUgMC0yNi4xLTExLjctMjYuMS0yNS45em0tMjk0LjMtOTl2MTEzYzAgMTUuNC0yMy44IDE1LjQtMjMuOCAwdi0xMTNIOTF2MTMyLjdjMCAyMy44IDggNTQgNDUgNjMuOSAzNyA5LjggNTguMi0xMC42IDU4LjItMTAuNi0yLjEgMTMuNC0xNC41IDIzLjMtMzQuOSAyNS4zLTE1LjUgMS42LTM1LjItMy42LTQ1LTcuOHY3MC4zYzI1LjEgNy41IDUxLjUgOS44IDc3LjYgNC43IDQ3LjEtOS4xIDc2LjgtNDguNCA3Ni44LTEwMC44VjE1NS4xaC03Ny4xdi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWdlbnRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0NS43IDEyNy45VjM4NGwtNjMuNCAzNi41VjE2NC43TDIyMy44IDczLjEgNjUuMiAxNjQuN2wuNCAyNTUuOUwyLjMgMzg0VjEyOC4xTDIyNC4yIDBsMjIxLjUgMTI3Ljl6TTI1NS42IDQyMC41TDIyNCA0MzguOWwtMzEuOC0xOC4ydi0yNTZsLTYzLjMgMzYuNi4xIDI1NS45IDk0LjkgNTQuOSA5NS4xLTU0Ljl2LTI1NmwtNjMuNC0zNi42djI1NS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWlsY2hpbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMwLjYxIDI0My41MmEzNi4xNSAzNi4xNSAwIDAgMSA5LjMgMGMxLjY2LTMuODMgMS45NS0xMC40My40NS0xNy42MS0yLjIzLTEwLjY3LTUuMjUtMTcuMTQtMTEuNDgtMTYuMTNzLTYuNDcgOC43NC00LjI0IDE5LjQyYzEuMjYgNiAzLjQ5IDExLjE0IDYgMTQuMzJ6TTI3Ny4wNSAyNTJjNC40NyAyIDcuMiAzLjI2IDguMjggMi4xMyAxLjg5LTEuOTQtMy40OC05LjM5LTEyLjEyLTEzLjA5YTMxLjQ0IDMxLjQ0IDAgMCAwLTMwLjYxIDMuNjhjLTMgMi4xOC01LjgxIDUuMjItNS40MSA3LjA2Ljg1IDMuNzQgMTAtMi43MSAyMi42LTMuNDggNy0uNDQgMTIuOCAxLjc1IDE3LjI2IDMuNzF6bS05IDUuMTNjLTkuMDcgMS40Mi0xNSA2LjUzLTEzLjQ3IDEwLjEuOS4zNCAxLjE3LjgxIDUuMjEtLjgxYTM3IDM3IDAgMCAxIDE4LjcyLTEuOTVjMi45Mi4zNCA0LjMxLjUyIDQuOTQtLjQ5IDEuNDYtMi4yMi01LjcxLTgtMTUuMzktNi44NXptNTQuMTcgMTcuMWMzLjM4LTYuODctMTAuOS0xMy45My0xNC4zLTdzMTAuOTIgMTMuODggMTQuMzIgNi45N3ptMTUuNjYtMjAuNDdjLTcuNjYtLjEzLTcuOTUgMTUuOC0uMjYgMTUuOTNzNy45OC0xNS44MS4yOC0xNS45NnptLTIxOC43OSA3OC45Yy0xLjMyLjMxLTYgMS40NS04LjQ3LTIuMzUtNS4yLTggMTEuMTEtMjAuMzggMy0zNS43Ny05LjEtMTcuNDctMjcuODItMTMuNTQtMzUuMDUtNS41NC04LjcxIDkuNi04LjcyIDIzLjU0LTUgMjQuMDggNC4yNy41NyA0LjA4LTYuNDcgNy4zOC0xMS42M2ExMi44MyAxMi44MyAwIDAgMSAxNy44NS0zLjcyYzExLjU5IDcuNTkgMS4zNyAxNy43NiAyLjI4IDI4LjYyIDEuMzkgMTYuNjggMTguNDIgMTYuMzcgMjEuNTggOWEyLjA4IDIuMDggMCAwIDAtLjItMi4zM2MuMDMuODkuNjgtMS4zLTMuMzUtLjM5em0yOTkuNzItMTcuMDdjLTMuMzUtMTEuNzMtMi41Ny05LjIyLTYuNzgtMjAuNTIgMi40NS0zLjY3IDE1LjI5LTI0LTMuMDctNDMuMjUtMTAuNC0xMC45Mi0zMy45LTE2LjU0LTQxLjEtMTguNTQtMS41LTExLjM5IDQuNjUtNTguNy0yMS41Mi04MyAyMC43OS0yMS41NSAzMy43Ni00NS4yOSAzMy43My02NS42NS0uMDYtMzkuMTYtNDguMTUtNTEtMTA3LjQyLTI2LjQ3bC0xMi41NSA1LjMzYy0uMDYtLjA1LTIyLjcxLTIyLjI3LTIzLjA1LTIyLjU3QzE2OS41LTE4LTQxLjc3IDIxNi44MSAyNS43OCAyNzMuODVsMTQuNzYgMTIuNTFhNzIuNDkgNzIuNDkgMCAwIDAtNC4xIDMzLjVjMy4zNiAzMy40IDM2IDYwLjQyIDY3LjUzIDYwLjM4IDU3LjczIDEzMy4wNiAyNjcuOSAxMzMuMjggMzIyLjI5IDMgMS43NC00LjQ3IDkuMTEtMjQuNjEgOS4xMS00Mi4zOHMtMTAuMDktMjUuMjctMTYuNTMtMjUuMjd6bS0zMTYgNDguMTZjLTIyLjgyLS42MS00Ny40Ni0yMS4xNS00OS45MS00NS41MS02LjE3LTYxLjMxIDc0LjI2LTc1LjI3IDg0LTEyLjMzIDQuNTQgMjkuNjQtNC42NyA1OC40OS0zNC4xMiA1Ny44MXpNODQuMyAyNDkuNTVDNjkuMTQgMjUyLjUgNTUuNzggMjYxLjA5IDQ3LjYgMjczYy00Ljg4LTQuMDctMTQtMTItMTUuNTktMTUtMTMuMDEtMjQuODUgMTQuMjQtNzMgMzMuMy0xMDAuMjFDMTEyLjQyIDkwLjU2IDE4Ni4xOSAzOS42OCAyMjAuMzYgNDguOTFjNS41NSAxLjU3IDIzLjk0IDIyLjg5IDIzLjk0IDIyLjg5cy0zNC4xNSAxOC45NC02NS44IDQ1LjM1Yy00Mi42NiAzMi44NS03NC44OSA4MC41OS05NC4yIDEzMi40ek0zMjMuMTggMzUwLjdzLTM1Ljc0IDUuMy02OS41MS03LjA3YzYuMjEtMjAuMTYgMjcgNi4xIDk2LjQtMTMuODEgMTUuMjktNC4zOCAzNS4zNy0xMyA1MS0yNS4zNWExMDIuODUgMTAyLjg1IDAgMCAxIDcuMTIgMjQuMjhjMy42Ni0uNjYgMTQuMjUtLjUyIDExLjQ0IDE4LjEtMy4yOSAxOS44Ny0xMS43MyAzNi0yNS45MyA1MC44NEExMDYuODYgMTA2Ljg2IDAgMCAxIDM2Mi41NSA0MjFhMTMyLjQ1IDEzMi40NSAwIDAgMS0yMC4zNCA4LjU4Yy01My41MSAxNy40OC0xMDguMy0xLjc0LTEyNi00M2E2Ni4zMyA2Ni4zMyAwIDAgMS0zLjU1LTkuNzRjLTcuNTMtMjcuMi0xLjE0LTU5LjgzIDE4Ljg0LTgwLjM3IDEuMjMtMS4zMSAyLjQ4LTIuODUgMi40OC00Ljc5YTguNDUgOC40NSAwIDAgMC0xLjkyLTQuNTRjLTctMTAuMTMtMzEuMTktMjcuNC0yNi4zMy02MC44MyAzLjUtMjQgMjQuNDktNDAuOTEgNDQuMDctMzkuOTFsNSAuMjljOC40OC41IDE1Ljg5IDEuNTkgMjIuODggMS44OCAxMS42OS41IDIyLjItMS4xOSAzNC42NC0xMS41NiA0LjItMy41IDcuNTctNi41NCAxMy4yNi03LjUxYTE3LjQ1IDE3LjQ1IDAgMCAxIDEzLjYgMi4yNGMxMCA2LjY0IDExLjQgMjIuNzMgMTEuOTIgMzQuNDkuMjkgNi43MiAxLjEgMjMgMS4zOCAyNy42My42MyAxMC42NyAzLjQzIDEyLjE3IDkuMTEgMTQgMy4xOSAxLjA1IDYuMTUgMS44MyAxMC41MSAzLjA2IDEzLjIxIDMuNzEgMjEgNy40OCAyNiAxMi4zMWExNi4zOCAxNi4zOCAwIDAgMSA0Ljc0IDkuMjljMS41NiAxMS4zNy04LjgyIDI1LjQtMzYuMzEgMzguMTYtNDYuNzEgMjEuNjgtOTMuNjggMTQuNDUtMTAwLjQ4IDEzLjY4LTIwLjE1LTIuNzEtMzEuNjMgMjMuMzItMTkuNTUgNDEuMTUgMjIuNjQgMzMuNDEgMTIyLjQgMjAgMTUxLjM3LTIxLjM1LjY5LTEgLjEyLTEuNTktLjczLTEtNDEuNzcgMjguNTgtOTcuMDYgMzguMjEtMTI4LjQ2IDI2LTQuNzctMS44NS0xNC43My02LjQ0LTE1Ljk0LTE2LjY3IDQzLjYgMTMuNDkgNzEgLjc0IDcxIC43NHMyLjAzLTIuNzktLjU2LTIuNTN6bS02OC40Ny01Ljd6bS04My40LTE4Ny41YzE2Ljc0LTE5LjM1IDM3LjM2LTM2LjE4IDU1LjgzLTQ1LjYzYS43My43MyAwIDAgMSAxIDFjLTEuNDYgMi42Ni00LjI5IDguMzQtNS4xOSAxMi42NWEuNzUuNzUgMCAwIDAgMS4xNi43OWMxMS40OS03LjgzIDMxLjQ4LTE2LjIyIDQ5LTE3LjNhLjc3Ljc3IDAgMCAxIC41MiAxLjM4IDQxLjg2IDQxLjg2IDAgMCAwLTcuNzEgNy43NC43NS43NSAwIDAgMCAuNTkgMS4xOWMxMi4zMS4wOSAyOS42NiA0LjQgNDEgMTAuNzQuNzYuNDMuMjIgMS45MS0uNjQgMS43Mi02OS41NS0xNS45NC0xMjMuMDggMTguNTMtMTM0LjUgMjYuODNhLjc2Ljc2IDAgMCAxLTEtMS4xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFuZGFsb3JpYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjMyLjI3IDUxMS44OWMtMS0zLjI2LTEuNjktMTUuODMtMS4zOS0yNC41OC41NS0xNS44OSAxLTI0LjcyIDEuNC0yOC43Ni42NC02LjIgMi44Ny0yMC43MiAzLjI4LTIxLjM4LjYtMSAuNC0yNy44Ny0uMjQtMzMuMTMtLjMxLTIuNTgtLjYzLTExLjktLjY5LTIwLjczLS4xMy0xNi40Ny0uNTMtMjAuMTItMi43My0yNC43Ni0xLjEtMi4zMi0xLjIzLTMuODQtMS0xMS40M2E5Mi4zOCA5Mi4zOCAwIDAgMC0uMzQtMTIuNzFjLTItMTMtMy40Ni0yNy43LTMuMjUtMzMuOXMuNDMtNy4xNSAyLjA2LTkuNjdjMy4wNS00LjcxIDYuNTEtMTQgOC42Mi0yMy4yNyAyLjI2LTkuODYgMy44OC0xNy4xOCA0LjU5LTIwLjc0YTEwOS41NCAxMDkuNTQgMCAwIDEgNC40Mi0xNS4wNWMyLjI3LTYuMjUgMi40OS0xNS4zOS4zNy0xNS4zOS0uMyAwLTEuMzggMS4yMi0yLjQxIDIuNzFzLTQuNzYgNC44LTguMjkgNy4zNmMtOC4zNyA2LjA4LTExLjcgOS4zOS0xMi42NiAxMi41OHMtMSA3LjIzLS4xNiA3Ljc2Yy4zNC4yMSAxLjI5IDIuNCAyLjExIDQuODhhMjguODMgMjguODMgMCAwIDEgLjcyIDE1LjM2Yy0uMzkgMS43Ny0xIDUuNDctMS40NiA4LjIzcy0xIDYuNDYtMS4yNSA4LjIyYTkuODUgOS44NSAwIDAgMS0xLjU1IDQuMjZjLTEgMS0xLjE0LjkxLTIuMDUtLjUzYTE0Ljg3IDE0Ljg3IDAgMCAxLTEuNDQtNC43NWMtLjI1LTEuNzQtMS42My03LjExLTMuMDgtMTEuOTMtMy4yOC0xMC45LTMuNTItMTYuMTUtMS0yMWExNC4yNCAxNC4yNCAwIDAgMCAxLjY3LTQuNjFjMC0yLjM5LTIuMi01LjMyLTcuNDEtOS44OS03LTYuMTgtOC42My03LjkyLTEwLjIzLTExLjMtMS43MS0zLjYtMy4wNi00LjA2LTQuNTQtMS41NC0xLjc4IDMtMi42IDkuMTEtMyAyMmwtLjM0IDEyLjE5IDIgMi4yNWMzLjIxIDMuNyAxMi4wNyAxNi40NSAxMy43OCAxOS44MyAzLjQxIDYuNzQgNC4zNCAxMS42OSA0LjQxIDIzLjU2cy45NSAyMi43NSAyIDI0LjcxYy4zNi42Ni41MSAxLjM1LjM0IDEuNTJzLjQxIDIuMDkgMS4yOSA0LjI3YTM4LjE0IDM4LjE0IDAgMCAxIDIuMDYgOSA5MSA5MSAwIDAgMCAxLjcxIDEwLjM3YzIuMjMgOS41NiAyLjc3IDE0LjA4IDIuMzkgMjAuMTQtLjIgMy4yNy0uNTMgMTEuMDctLjczIDE3LjMyLTEuMzEgNDEuNzYtMS44NSA1OC0yIDYxLjIxLS4xMiAyLS4zOSAxMS41MS0uNiAyMS4wNy0uMzYgMTYuMy0xLjMgMjcuMzctMi40MiAyOC42NS0uNjQuNzMtOC4wNy00LjkxLTEyLjUyLTkuNDktMy43NS0zLjg3LTQtNC43OS0yLjgzLTkuOTUuNy0zIDIuMjYtMTguMjkgMy4zMy0zMi42Mi4zNi00Ljc4LjgxLTEwLjUgMS0xMi43MS44My05LjM3IDEuNjYtMjAuMzUgMi42MS0zNC43OC41Ni04LjQ2IDEuMzMtMTYuNDQgMS43Mi0xNy43M3MuODktOS44OSAxLjEzLTE5LjExbC40My0xNi43Ny0yLjI2LTQuM2MtMS43Mi0zLjI4LTQuODctNi45NC0xMy4yMi0xNS4zNC02LTYuMDctMTEuODQtMTIuMy0xMi45MS0xMy44NWwtMS45NS0yLjgxLjc1LTEwLjljMS4wOS0xNS43MSAxLjEtNDguNTcgMC01OS4wNmwtLjg5LTguNy0zLjI4LTQuNTJjLTUuODYtOC4wOC01LjgtNy43NS02LjIyLTMzLjI3LS4xLTYuMDctLjM4LTExLjUtLjYzLTEyLjA2LS44My0xLjg3LTMuMDUtMi42Ni04LjU0LTMuMDUtOC44Ni0uNjItMTEtMS45LTIzLjg1LTE0LjU1LTYuMTUtNi0xMi4zNC0xMi0xMy43NS0xMy4xOS0yLjgxLTIuNDItMi43OS0yLS41Ni05LjYzbDEuMzUtNC42NS0xLjY5LTNhMzIuMjIgMzIuMjIgMCAwIDAtMi41OS00LjA3Yy0xLjMzLTEuNTEtNS41LTEwLjg5LTYtMTMuNDlhNC4yNCA0LjI0IDAgMCAxIC44Ny0zLjljMi4yMy0yLjg2IDMuNC01LjY4IDQuNDUtMTAuNzMgMi4zMy0xMS4xOSA3Ljc0LTI2LjA5IDEwLjYtMjkuMjIgMy4xOC0zLjQ3IDcuNy0xIDkuNDEgNSAxLjM0IDQuNzkgMS4zNyA5Ljc5LjEgMTguNTVhMTAxLjIgMTAxLjIgMCAwIDAtMSAxMS4xMWMwIDQgLjE5IDQuNjkgMi4yNSA3LjM5IDMuMzMgNC4zNyA3LjczIDcuNDEgMTUuMiAxMC41MmExOC42NyAxOC42NyAwIDAgMSA0LjcyIDIuODVjMTEuMTcgMTAuNzIgMTguNjIgMTYuMTggMjIuOTUgMTYuODUgNS4xOC44IDggNC41NCAxMCAxMy4zOSAxLjMxIDUuNjUgNCAxMS4xNCA1LjQ2IDExLjE0YTkuMzggOS4zOCAwIDAgMCAzLjMzLTEuMzljMi0xLjIyIDIuMjUtMS43MyAyLjI1LTQuMThhMTMyLjg4IDEzMi44OCAwIDAgMC0yLTE3Ljg0Yy0uMzctMS42Ni0uNzgtNC4wNi0uOTMtNS4zNXMtLjYxLTMuODUtMS01LjY5Yy0yLjU1LTExLjE2LTMuNjUtMTUuNDYtNC4xLTE2LTEuNTUtMi00LjA4LTEwLjItNC45My0xNS45Mi0xLjY0LTExLjExLTQtMTQuMjMtMTIuOTEtMTcuMzlBNDMuMTUgNDMuMTUgMCAwIDEgMTY1LjI0IDc4Yy0xLjE1LTEtNC0zLjIyLTYuMzUtNS4wNnMtNC40MS0zLjUzLTQuNi0zLjc2YTIyLjcgMjIuNyAwIDAgMC0yLjY5LTJjLTYuMjQtNC4yMi04Ljg0LTctMTEuMjYtMTJsLTIuNDQtNS0uMjItMTMtLjIyLTEzIDYuOTEtNi41NWMzLjk1LTMuNzUgOC40OC03LjM1IDEwLjU5LTguNDMgMy4zMS0xLjY5IDQuNDUtMS44OSAxMS4zNy0yIDguNTMtLjE5IDEwLjEyIDAgMTEuNjYgMS41NnMxLjM2IDYuNC0uMjkgOC41YTYuNjYgNi42NiAwIDAgMC0xLjM0IDIuMzJjMCAuNTgtMi42MSA0LjkxLTUuNDIgOWEzMC4zOSAzMC4zOSAwIDAgMC0yLjM3IDYuODJjMjAuNDQgMTMuMzkgMjEuNTUgMy43NyAxNC4wNyAyOUwxOTQgNjYuOTJjMy4xMS04LjY2IDYuNDctMTcuMjYgOC42MS0yNi4yMi4yOS03LjYzLTEyLTQuMTktMTUuNC04LjY4LTIuMzMtNS45MyAzLjEzLTE0LjE4IDYuMDYtMTkuMiAxLjYtMi4zNCA2LjYyLTQuNyA4LjgyLTQuMTUuODguMjIgNC4xNi0uMzUgNy4zNy0xLjI4YTQ1LjMgNDUuMyAwIDAgMSA3LjU1LTEuNjggMjkuNTcgMjkuNTcgMCAwIDAgNi0xLjI5YzMuNjUtMS4xMSA0LjUtMS4xNyA2LjM1LS40YTI5LjU0IDI5LjU0IDAgMCAwIDUuODIgMS4zNiAxOC4xOCAxOC4xOCAwIDAgMSA2IDEuOTEgMjIuNjcgMjIuNjcgMCAwIDAgNSAyLjE3YzIuNTEuNjggMyAuNTcgNy4wNS0xLjY3bDQuMzUtMi40TDI2OC4zMiA1YzEwLjQ0LS40IDEwLjgxLS40NyAxNS4yNi0yLjY4TDI4OC4xNiAwbDIuNDYgMS40M2MxLjc2IDEgMy4xNCAyLjczIDQuODUgNiAyLjM2IDQuNTEgMi4zOCA0LjU4IDEuMzcgNy4zNy0uODggMi40NC0uODkgMy4zLS4xIDYuMzlhMzUuNzYgMzUuNzYgMCAwIDAgMi4xIDUuOTEgMTMuNTUgMTMuNTUgMCAwIDEgMS4zMSA0Yy4zMSA0LjMzIDAgNS4zLTIuNDEgNi45Mi0yLjE3IDEuNDctNyA3LjkxLTcgOS4zNGExNC43NyAxNC43NyAwIDAgMS0xLjA3IDNjLTUgMTEuNTEtNi43NiAxMy41Ni0xNC4yNiAxNy05LjIgNC4yLTEyLjMgNS4xOS0xNi4yMSA1LjE5LTMuMSAwLTQgLjI1LTQuNTQgMS4yNmExOC4zMyAxOC4zMyAwIDAgMS00LjA5IDMuNzEgMTMuNjIgMTMuNjIgMCAwIDAtNC4zOCA0Ljc4IDUuODkgNS44OSAwIDAgMS0yLjQ5IDIuOTEgNi44OCA2Ljg4IDAgMCAwLTIuNDUgMS43MSA2Ny42MiA2Ny42MiAwIDAgMS03IDUuMzhjLTMuMzMgMi4zNC02Ljg3IDUtNy44NyA2QTcuMjcgNy4yNyAwIDAgMSAyMjQgMTAwYTUuNzYgNS43NiAwIDAgMC0yLjEzIDEuNjVjLTEuMzEgMS4zOS0xLjQ5IDIuMTEtMS4xNCA0LjZhMzYuNDUgMzYuNDUgMCAwIDAgMS40MiA1Ljg4YzEuMzIgMy44IDEuMzEgNy44NiAwIDEwLjU3cy0uODkgNi42NSAxLjM1IDkuNTljMiAyLjYzIDIuMTYgNC41Ni43MSA4Ljg0YTMzLjQ1IDMzLjQ1IDAgMCAwLTEuMDYgOC45MWMwIDQuODguMjIgNi4yOCAxLjQ2IDguMzhzMS44MiAyLjQ4IDMuMjQgMi4zMmMyLS4yMyAyLjMtMS4wNSA0LjcxLTEyLjEyIDIuMTgtMTAgMy43MS0xMS45MiAxMy43Ni0xNy4wOCAyLjk0LTEuNTEgNy40Ni00IDEwLTUuNDRzNi43OS0zLjY5IDkuMzctNC45MWE0MC4wOSA0MC4wOSAwIDAgMCAxNS4yMi0xMS42N2M3LjExLTguNzkgMTAtMTYuMjIgMTIuODUtMzMuM2ExOC4zNyAxOC4zNyAwIDAgMSAyLjg2LTcuNzMgMjAuMzkgMjAuMzkgMCAwIDAgMi44OS03LjMxYzEtNS4zIDIuODUtOS4wOCA1LjU4LTExLjUxIDQuNy00LjE4IDYtMS4wOSA0LjU5IDEwLjg3LS40NiAzLjg2LTEuMSAxMC4zMy0xLjQ0IDE0LjM4bC0uNjEgNy4zNiA0LjQ1IDQuMDkgNC40NSA0LjA5LjExIDguNDJjLjA2IDQuNjMuNDcgOS41My45MiAxMC44OWwuODIgMi40Ny02LjQzIDYuMjhjLTguNTQgOC4zMy0xMi44OCAxMy45My0xNi43NiAyMS42MS0xLjc3IDMuNDktMy43NCA3LjExLTQuMzggOC0yLjE4IDMuMTEtNi40NiAxMy04Ljc2IDIwLjI2bC0yLjI5IDcuMjItNyA2LjQ5Yy0zLjgzIDMuNTctOCA3LjI1LTkuMTcgOC4xNy0zLjA1IDIuMzItNC4yNiA1LjE1LTQuMjYgMTBhMTQuNjIgMTQuNjIgMCAwIDAgMS41OSA3LjI2IDQyIDQyIDAgMCAxIDIuMDkgNC44MyA5LjI4IDkuMjggMCAwIDAgMS41NyAyLjg5YzEuNCAxLjU5IDEuOTIgMTYuMTIuODMgMjMuMjItLjY4IDQuNDgtMy42MyAxMi00LjcgMTItMS43OSAwLTQuMDYgOS4yNy01LjA3IDIwLjc0LS4xOCAyLS42MiA1Ljk0LTEgOC43cy0xIDEwLTEuMzUgMTYuMDVjLS43NyAxMi4yMi0uMTkgMTguNzcgMiAyMy4xNSAzLjQxIDYuNjkuNTIgMTIuNjktMTEgMjIuODRsLTQgMy40OS4wNyA1LjE5YTQwLjgxIDQwLjgxIDAgMCAwIDEuMTQgOC44N2M0LjYxIDE2IDQuNzMgMTYuOTIgNC4zOCAzNy4xMy0uNDYgMjYuNC0uMjYgNDAuMjcuNjMgNDQuMTVhNjEuMzEgNjEuMzEgMCAwIDEgMS4wOCA3Yy4xNyAyIC42NiA1LjMzIDEuMDggNy4zNi40NyAyLjI2Ljc4IDExIC43OSAyMi43NHYxOS4wNmwtMS44MSAyLjYzYy0yLjcxIDMuOTEtMTUuMTEgMTMuNTQtMTUuNDkgMTIuMjl6bTI5LjUzLTQ1LjExYy0uMTgtLjMtLjMzLTYuODctLjMzLTE0LjU5IDAtMTQuMDYtLjg5LTI3LjU0LTIuMjYtMzQuNDUtLjQtMi0uODEtOS43LS45LTE3LjA2LS4xNS0xMS45My0xLjQtMjQuMzctMi42NC0yNi4zOC0uNjYtMS4wNy0zLTE3LjY2LTMtMjEuMyAwLTQuMjMgMS02IDUuMjgtOS4xM3M0Ljg2LTMuMTQgNS40OC0uNzJjLjI4IDEuMSAxLjQ1IDUuNjIgMi42IDEwIDMuOTMgMTUuMTIgNC4xNCAxNi4yNyA0LjA1IDIxLjc0LS4xIDUuNzgtLjEzIDYuMTMtMS43NCAxNy43My0xIDcuMDctMS4xNyAxMi4zOS0xIDI4LjQzLjE3IDE5LjQtLjY0IDM1LjczLTIgNDEuMjctLjcxIDIuNzgtMi44IDUuNDgtMy40MyA0LjQzem0tNzEtMzcuNThhMTAxIDEwMSAwIDAgMS0xLjczLTEwLjc5IDEwMC41IDEwMC41IDAgMCAwLTEuNzMtMTAuNzkgMzcuNTMgMzcuNTMgMCAwIDEtMS02LjQ5Yy0uMzEtMy4xOS0uOTEtNy40Ni0xLjMzLTkuNDgtMS00Ljc5LTMuMzUtMTkuMzUtMy40Mi0yMS4wNyAwLS43NC0uMzQtNC4wNS0uNy03LjM2LS42Ny02LjIxLS44NC0yNy42Ny0uMjItMjguMjkgMS0xIDYuNjMgMi43NiAxMS4zMyA3LjQzbDUuMjggNS4yNS0uNDUgNi40N2MtLjI1IDMuNTYtLjYgMTAuMjMtLjc4IDE0Ljgzcy0uNDkgOS44Ny0uNjcgMTEuNzEtLjYxIDkuMzYtLjk0IDE2LjcyYy0uNzkgMTcuNDEtMS45NCAzMS4yOS0yLjY1IDMyYS42Mi42MiAwIDAgMS0xLS4xNHptLTg3LjE4LTI2Ni41OWMyMS4wNyAxMi43OSAxNy44NCAxNC4xNSAyOC40OSAxNy42NiAxMyA0LjI5IDE4Ljg3IDcuMTMgMjMuMTUgMTYuODdDMTExLjYgMjMzLjI4IDg2LjI1IDI1NSA3OC41NSAyNjhjLTMxIDUyLTYgMTAxLjU5IDYyLjc1IDg3LjIxLTE0LjE4IDI5LjIzLTc4IDI4LjYzLTk4LjY4LTQuOS0yNC42OC0zOS45NS0yMi4wOS0xMTguMyA2MS0xODcuNjZ6bTIxMC43OSAxNzljNTYuNjYgNi44OCA4Mi4zMi0zNy43NCA0Ni41NC04OS4yMyAwIDAtMjYuODctMjkuMzQtNjQuMjgtNjggMy0xNS40NSA5LjQ5LTMyLjEyIDMwLjU3LTUzLjgyIDg5LjIgNjMuNTEgOTIgMTQxLjYxIDkyLjQ2IDE0OS4zNiA0LjMgNzAuNjQtNzguNyA5MS4xOC0xMDUuMjkgNjEuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcmtkb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5My44IDU5LjFINDYuMkMyMC43IDU5LjEgMCA3OS44IDAgMTA1LjJ2MzAxLjVjMCAyNS41IDIwLjcgNDYuMiA0Ni4yIDQ2LjJoNTQ3LjdjMjUuNSAwIDQ2LjItMjAuNyA0Ni4xLTQ2LjFWMTA1LjJjMC0yNS40LTIwLjctNDYuMS00Ni4yLTQ2LjF6TTMzOC41IDM2MC42SDI3N3YtMTIwbC02MS41IDc2LjktNjEuNS03Ni45djEyMEg5Mi4zVjE1MS40aDYxLjVsNjEuNSA3Ni45IDYxLjUtNzYuOWg2MS41djIwOS4yem0xMzUuMyAzLjFMMzgxLjUgMjU2SDQ0M1YxNTEuNGg2MS41VjI1Nkg1NjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hc3RvZG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMyAxNzkuMTFjMC05Ny4yLTYzLjcxLTEyNS43LTYzLjcxLTEyNS43LTYyLjUyLTI4LjctMjI4LjU2LTI4LjQtMjkwLjQ4IDAgMCAwLTYzLjcyIDI4LjUtNjMuNzIgMTI1LjcgMCAxMTUuNy02LjYgMjU5LjQgMTA1LjYzIDI4OS4xIDQwLjUxIDEwLjcgNzUuMzIgMTMgMTAzLjMzIDExLjQgNTAuODEtMi44IDc5LjMyLTE4LjEgNzkuMzItMTguMWwtMS43LTM2LjlzLTM2LjMxIDExLjQtNzcuMTIgMTAuMWMtNDAuNDEtMS40LTgzLTQuNC04OS42My01NGExMDIuNTQgMTAyLjU0IDAgMCAxLS45LTEzLjljODUuNjMgMjAuOSAxNTguNjUgOS4xIDE3OC43NSA2LjcgNTYuMTItNi43IDEwNS00MS4zIDExMS4yMy03Mi45IDkuOC00OS44IDktMTIxLjUgOS0xMjEuNXptLTc1LjEyIDEyNS4yaC00Ni42M3YtMTE0LjJjMC00OS43LTY0LTUxLjYtNjQgNi45djYyLjVoLTQ2LjMzVjE5N2MwLTU4LjUtNjQtNTYuNi02NC02Ljl2MTE0LjJIOTAuMTljMC0xMjIuMS01LjItMTQ3LjkgMTguNDEtMTc1IDI1LjktMjguOSA3OS44Mi0zMC44IDEwMy44MyA2LjFsMTEuNiAxOS41IDExLjYtMTkuNWMyNC4xMS0zNy4xIDc4LjEyLTM0LjggMTAzLjgzLTYuMSAyMy43MSAyNy4zIDE4LjQgNTMgMTguNCAxNzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1heGNkbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjEuMSA0NDIuN2gtOTcuNEw0MTUuNiAyMDBjMi4zLTEwLjIuOS0xOS41LTQuNC0yNS43LTUtNi4xLTEzLjctOS42LTI0LjItOS42aC00OS4zbC01OS41IDI3OGgtOTcuNGw1OS41LTI3OGgtODMuNGwtNTkuNSAyNzhIMGw1OS41LTI3OC00NC42LTk1LjRIMzg3YzM5LjQgMCA3NS4zIDE2LjMgOTguMyA0NC45IDIzLjMgMjguNiAzMS44IDY3LjQgMjMuNiAxMDUuOWwtNDcuOCAyMjIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWRiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjM3IDE2MC40MUw3IDM1Mmg0My45MWw1LjU5LTc5LjgzTDg0LjQzIDM1Mmg0NC43MWwyNS41NC03Ny40MyA0Ljc5IDc3LjQzSDIwNWwtMTIuNzktMTkxLjU5SDE0Ni43TDEwNiAyNzcuNzQgNjMuNjcgMTYwLjQxem0yODEgMGgtNDcuOVYzNTJoNDcuOXM5NSAuOCA5NC4yLTk1Ljc5Yy0uNzgtOTQuMjEtOTQuMTgtOTUuNzgtOTQuMTgtOTUuNzh6bS0xLjIgMTQ2LjQ2VjIwNC43OHM0NiA0LjI3IDQ2LjggNTAuNTctNDYuNzggNTEuNTQtNDYuNzggNTEuNTR6bTIzOC4yOS03NC4yNGE1Ni4xNiA1Ni4xNiAwIDAgMCA4LTM4LjMxYy01LjM0LTM1Ljc2LTU1LjA4LTM0LjMyLTU1LjA4LTM0LjMyaC01MS45djE5MS41OEg0ODJzODcgNC43OSA4Ny02My44NWMwLTQzLjE0LTMzLjUyLTU1LjA4LTMzLjUyLTU1LjA4em0tNTEuOS0zMS45NHMxMy41Ny0xLjU5IDE2IDkuNTljMS40MyA2LjY2LTQgMTItNCAxMmgtMTJ2LTIxLjU3em0tLjEgMTA5LjQ2bC4xLTI0LjkyVjI2N2guMDhzNDEuNTgtNC43MyA0MS4xOSAyMi40M2MtLjMzIDI1LjY1LTQxLjM1IDIwLjc0LTQxLjM1IDIwLjc0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWRhcHBzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExOC4zIDIzOC40YzMuNS0xMi41IDYuOS0zMy42IDEzLjItMzMuNiA4LjMgMS44IDkuNiAyMy40IDE4LjYgMzYuNiA0LjYtMjMuNSA1LjMtODUuMSAxNC4xLTg2LjcgOS0uNyAxOS43IDY2LjUgMjIgNzcuNSA5LjkgNC4xIDQ4LjkgNi42IDQ4LjkgNi42IDEuOSA3LjMtMjQgNy42LTQwIDcuOC00LjYgMTQuOC01LjQgMjcuNy0xMS40IDI4LTQuNy4yLTguMi0yOC44LTE3LjUtNDkuNmwtOS40IDY1LjVjLTQuNCAxMy0xNS41LTIyLjUtMjEuOS0zOS4zLTMuMy0uMS02Mi40LTEuNi00Ny42LTcuOGwzMS01ek0yMjggNDQ4YzIxLjIgMCAyMS4yLTMyIDAtMzJIOTJjLTIxLjIgMC0yMS4yIDMyIDAgMzJoMTM2em0tMjQgNjRjMjEuMiAwIDIxLjItMzIgMC0zMmgtODhjLTIxLjIgMC0yMS4yIDMyIDAgMzJoODh6bTM0LjItMTQxLjVjMy4yLTE4LjkgNS4yLTM2LjQgMTEuOS00OC44IDcuOS0xNC43IDE2LjEtMjguMSAyNC00MSAyNC42LTQwLjQgNDUuOS03NS4yIDQ1LjktMTI1LjVDMzIwIDY5LjYgMjQ4LjIgMCAxNjAgMFMwIDY5LjYgMCAxNTUuMmMwIDUwLjIgMjEuMyA4NS4xIDQ1LjkgMTI1LjUgNy45IDEyLjkgMTYgMjYuMyAyNCA0MSA2LjcgMTIuNSA4LjcgMjkuOCAxMS45IDQ4LjkgMy41IDIxIDM2LjEgMTUuNyAzMi42LTUuMS0zLjYtMjEuNy01LjYtNDAuNy0xNS4zLTU4LjZDNjYuNSAyNDYuNSAzMyAyMTEuMyAzMyAxNTUuMiAzMyA4Ny4zIDkwIDMyIDE2MCAzMnMxMjcgNTUuMyAxMjcgMTIzLjJjMCA1Ni4xLTMzLjUgOTEuMy02Ni4xIDE1MS42LTkuNyAxOC0xMS43IDM3LjQtMTUuMyA1OC42LTMuNCAyMC42IDI5IDI2LjQgMzIuNiA1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZGl1bU0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzEuNSAxNDIuM2MuNi01LjktMS43LTExLjgtNi4xLTE1LjhMMjAuMyA3Mi4xVjY0aDE0MC4ybDEwOC40IDIzNy43TDM2NC4yIDY0aDEzMy43djguMWwtMzguNiAzN2MtMy4zIDIuNS01IDYuNy00LjMgMTAuOHYyNzJjLS43IDQuMSAxIDguMyA0LjMgMTAuOGwzNy43IDM3djguMUgzMDcuM3YtOC4xbDM5LjEtMzcuOWMzLjgtMy44IDMuOC01IDMuOC0xMC44VjE3MS4yTDI0MS41IDQ0Ny4xaC0xNC43TDEwMC40IDE3MS4ydjE4NC45Yy0xLjEgNy44IDEuNSAxNS42IDcgMjEuMmw1MC44IDYxLjZ2OC4xaC0xNDR2LThMNjUgMzc3LjNjNS40LTUuNiA3LjktMTMuNSA2LjUtMjEuMlYxNDIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkaXVtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0zNzIuMiAxMDYuMWwtMjQgMjNjLTIuMSAxLjYtMy4xIDQuMi0yLjcgNi43djE2OS4zYy0uNCAyLjYuNiA1LjIgMi43IDYuN2wyMy41IDIzdjUuMWgtMTE4VjM2N2wyNC4zLTIzLjZjMi40LTIuNCAyLjQtMy4xIDIuNC02LjdWMTk5LjhsLTY3LjYgMTcxLjZoLTkuMUwxMjUgMTk5Ljh2MTE1Yy0uNyA0LjggMSA5LjcgNC40IDEzLjJsMzEuNiAzOC4zdjUuMUg3MS4ydi01LjFsMzEuNi0zOC4zYzMuNC0zLjUgNC45LTguNCA0LjEtMTMuMnYtMTMzYy40LTMuNy0xLTcuMy0zLjgtOS44TDc1IDEzOC4xVjEzM2g4Ny4zbDY3LjQgMTQ4TDI4OSAxMzMuMWg4My4ydjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZHJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMy43IDI1NmMwIDEyMS44IDgzLjkgMjIyLjggMTkzLjUgMjQxLjEtMTguNyA0LjUtMzguMiA2LjktNTguMiA2LjlDMTExLjQgNTA0IDAgMzkzIDAgMjU2UzExMS40IDggMjQ4LjkgOGMyMC4xIDAgMzkuNiAyLjQgNTguMiA2LjlDMTk3LjUgMzMuMiAxMTMuNyAxMzQuMiAxMTMuNyAyNTZtMjk3LjQgMTAwLjNjLTc3LjcgNTUuNC0xNzkuNiA0Ny41LTI0MC40LTE0LjYgNS41IDE0LjEgMTIuNyAyNy43IDIxLjcgNDAuNSA2MS42IDg4LjIgMTgyLjQgMTA5LjMgMjY5LjcgNDcgODcuMy02Mi4zIDEwOC4xLTE4NC4zIDQ2LjUtMjcyLjYtOS0xMi45LTE5LjMtMjQuMy0zMC41LTM0LjIgMzcuNCA3OC44IDEwLjcgMTc4LjUtNjcgMjMzLjltLTIxOC44LTI0NGMtMS40IDEtMi43IDIuMS00IDMuMSA2NC4zLTE3LjggMTM1LjkgNCAxNzguOSA2MC41IDM1LjcgNDcgNDIuOSAxMDYuNiAyNC40IDE1OCA1Ni43LTU2LjIgNjcuNi0xNDIuMSAyMi4zLTIwMS44LTUwLTY1LjUtMTQ5LjEtNzQuNC0yMjEuNi0xOS44TTI5NiAyMjRjLTQuNCAwLTgtMy42LTgtOHYtNDBjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djQwYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOCAzLjYgOCA4djQwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQwYzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOGgtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lZXR1cCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05OSA0MTQuM2MxLjEgNS43LTIuMyAxMS4xLTggMTIuMy01LjQgMS4xLTEwLjktMi4zLTEyLTgtMS4xLTUuNCAyLjMtMTEuMSA3LjctMTIuMyA1LjQtMS4yIDExLjEgMi4zIDEyLjMgOHptMTQzLjEgNzEuNGMtNi4zIDQuNi04IDEzLjQtMy43IDIwIDQuNiA2LjYgMTMuNCA4LjMgMjAgMy43IDYuMy00LjYgOC0xMy40IDMuNC0yMC00LjItNi41LTEzLjEtOC4zLTE5LjctMy43em0tODYtNDYyLjNjNi4zLTEuNCAxMC4zLTcuNyA4LjktMTQtMS4xLTYuNi03LjQtMTAuNi0xMy43LTkuMS02LjMgMS40LTEwLjMgNy43LTkuMSAxNCAxLjQgNi42IDcuNiAxMC42IDEzLjkgOS4xek0zNC40IDIyNi4zYy0xMC02LjktMjMuNy00LjMtMzAuNiA2LTYuOSAxMC00LjMgMjQgNS43IDMwLjkgMTAgNy4xIDIzLjcgNC42IDMwLjYtNS43IDYuOS0xMC40IDQuMy0yNC4xLTUuNy0zMS4yem0yNzItMTcwLjljMTAuNi02LjMgMTMuNy0yMCA3LjctMzAuMy02LjMtMTAuNi0xOS43LTE0LTMwLTcuN3MtMTMuNyAyMC03LjQgMzAuNmM2IDEwLjMgMTkuNCAxMy43IDI5LjcgNy40em0tMTkxLjEgNThjNy43LTUuNCA5LjQtMTYgNC4zLTIzLjdzLTE1LjctOS40LTIzLjEtNC4zYy03LjcgNS40LTkuNCAxNi00LjMgMjMuNyA1LjEgNy44IDE1LjYgOS41IDIzLjEgNC4zem0zNzIuMyAxNTZjLTcuNCAxLjctMTIuMyA5LjEtMTAuNiAxNi45IDEuNCA3LjQgOC45IDEyLjMgMTYuMyAxMC42IDcuNC0xLjQgMTIuMy04LjkgMTAuNi0xNi42LTEuNS03LjQtOC45LTEyLjMtMTYuMy0xMC45em0zOS43LTU2LjhjLTEuMS01LjctNi42LTkuMS0xMi04LTUuNyAxLjEtOS4xIDYuOS04IDEyLjYgMS4xIDUuNCA2LjYgOS4xIDEyLjMgOCA1LjQtMS41IDkuMS02LjkgNy43LTEyLjZ6TTQ0NyAxMzguOWMtOC42IDYtMTAuNiAxNy43LTQuOSAyNi4zIDUuNyA4LjYgMTcuNCAxMC42IDI2IDQuOSA4LjMtNiAxMC4zLTE3LjcgNC42LTI2LjMtNS43LTguNy0xNy40LTEwLjktMjUuNy00Ljl6bS02LjMgMTM5LjRjMjYuMyA0My4xIDE1LjEgMTAwLTI2LjMgMTI5LjEtMTcuNCAxMi4zLTM3LjEgMTcuNy01Ni45IDE3LjEtMTIgNDcuMS02OS40IDY0LjYtMTA1LjEgMzIuNi0xLjEuOS0yLjYgMS43LTMuNyAyLjktMzkuMSAyNy4xLTkyLjMgMTcuNC0xMTkuNC0yMi4zLTkuNy0xNC4zLTE0LjYtMzAuNi0xNS4xLTQ2LjktNjUuNC0xMC45LTkwLTk0LTQxLjEtMTM5LjctMjguMy00Ni45LjYtMTA3LjQgNTMuNC0xMTQuOUMxNTEuNiA3MCAyMzQuMSAzOC42IDI5MC4xIDgyYzY3LjQtMjIuMyAxMzYuMyAyOS40IDEzMC45IDEwMS4xIDQxLjEgMTIuNiA1Mi44IDY2LjkgMTkuNyA5NS4yem0tNzAgNzQuM2MtMy4xLTIwLjYtNDAuOS00LjYtNDMuMS0yNy4xLTMuMS0zMiA0My43LTEwMS4xIDQwLTEyOC0zLjQtMjQtMTkuNC0yOS4xLTMzLjQtMjkuNC0xMy40LS4zLTE2LjkgMi0yMS40IDQuNi0yLjkgMS43LTYuNiA0LjktMTEuNy0uMy02LjMtNi0xMS4xLTExLjctMTkuNC0xMi45LTEyLjMtMi0xNy43IDItMjYuNiA5LjctMy40IDIuOS0xMiAxMi45LTIwIDkuMS0zLjQtMS43LTE1LjQtNy43LTI0LTExLjQtMTYuMy03LjEtNDAgNC42LTQ4LjYgMjAtMTIuOSAyMi45LTM4IDExMy4xLTQxLjcgMTI1LjEtOC42IDI2LjYgMTAuOSA0OC42IDM2LjkgNDcuMSAxMS4xLS42IDE4LjMtNC42IDI1LjQtMTcuNCA0LTcuNCA0MS43LTEwNy43IDQ0LjYtMTEyLjYgMi0zLjQgOC45LTggMTQuNi01LjEgNS43IDMuMSA2LjkgOS40IDYgMTUuMS0xLjEgOS43LTI4IDcwLjktMjguOSA3Ny43LTMuNCAyMi45IDI2LjkgMjYuNiAzOC42IDQgMy43LTcuMSA0NS43LTkyLjYgNDkuNC05OC4zIDQuMy02LjMgNy40LTguMyAxMS43LTggMy4xIDAgOC4zLjkgNy4xIDEwLjktMS40IDkuNC0zNS4xIDcyLjMtMzguOSA4Ny43LTQuNiAyMC42IDYuNiA0MS40IDI0LjkgNTAuNiAxMS40IDUuNyA2Mi41IDE1LjcgNTguNS0xMS4xem01LjcgOTIuM2MtMTAuMyA3LjQtMTIuOSAyMi01LjcgMzIuNiA3LjEgMTAuNiAyMS40IDEzLjEgMzIgNiAxMC42LTcuNCAxMy4xLTIyIDYtMzIuNi03LjQtMTAuNi0yMS43LTEzLjUtMzIuMy02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWdhcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTQuNSAyMDkuNnY2Ni4ybDMzLjUgMzMuNSAzMy4zLTMzLjN2LTY2LjRsLTMzLjQtMzMuNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTQ1LjEgNDE0LjRMMzY3IDQ0MS42bC0yNi0xOS4ydi02NS41bC0zMy40LTMzLjQtMzMuNCAzMy40djY1LjVMMjQ4IDQ0MS42bC0yNi4xLTE5LjJ2LTY1LjVsLTMzLjQtMzMuNC0zMy41IDMzLjR2NjUuNWwtMjYuMSAxOS4yLTI2LjEtMTkuMnYtODdsNTkuNS01OS41VjE4OGw1OS41LTU5LjVWNTIuOWwyNi4xLTE5LjJMMjc0IDUyLjl2NzUuNmw1OS41IDU5LjV2ODcuNmw1OS43IDU5Ljd2ODcuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVuZGVsZXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0LjYgMzI1LjJjLTEyLjMtMTIuNC0yOS43LTE5LjItNDguNC0xNy4yLTQzLjMtMS00OS43LTM0LjktMzcuNS05OC44IDIyLjgtNTcuNS0xNC45LTEzMS41LTg3LjQtMTMwLjgtNzcuNC43LTgxLjcgODItMTMwLjkgODItNDguMSAwLTU0LTgxLjMtMTMwLjktODItNzIuOS0uOC0xMTAuMSA3My4zLTg3LjQgMTMwLjggMTIuMiA2My45IDUuOCA5Ny44LTM3LjUgOTguOC0yMS4yLTIuMy0zNyA2LjUtNTMgMjIuNS0xOS45IDE5LjctMTkuMyA5NC44IDQyLjYgMTAyLjYgNDcuMSA1LjkgODEuNi00Mi45IDYxLjItODcuOC00Ny4zLTEwMy43IDE4NS45LTEwNi4xIDE0Ni41LTguMi0uMS4xLS4yLjItLjMuNC0yNi44IDQyLjggNi44IDk3LjQgNTguOCA5NS4yIDUyLjEgMi4xIDg1LjQtNTIuNiA1OC44LTk1LjItLjEtLjItLjItLjMtLjMtLjQtMzkuNC05Ny45IDE5My44LTk1LjUgMTQ2LjUgOC4yLTQuNiAxMC02LjcgMjEuMy01LjcgMzMgNC45IDUzLjQgNjguNyA3NC4xIDEwNC45IDM1LjIgMTcuOC0xNC44IDIzLjEtNjUuNiAwLTg4LjN6bS0zMDMuOS0xOS4xaC0uNmMtNDMuNCAwLTYyLjgtMzcuNS02Mi44LTYyLjggMC0zNC43IDI4LjItNjIuOCA2Mi44LTYyLjhoLjZjMzQuNyAwIDYyLjggMjguMSA2Mi44IDYyLjggMCAyNS0xOS4yIDYyLjgtNjIuOCA2Mi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb2Jsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk5LjM2LDM2Mi4yM2MyOS40OS0zNC42OSw0Ny4xLTc4LjM0LDQ3LjEtMTI1Ljc5QzQ0Ni40NiwxMjMuNDksMzQ2Ljg2LDMyLDIyNCwzMlMxLjU0LDEyMy40OSwxLjU0LDIzNi40NCwxMDEuMTQsNDQwLjg3LDIyNCw0NDAuODdhMjM5LjI4LDIzOS4yOCwwLDAsMCw3OS40NC0xMy40NCw3LjE4LDcuMTgsMCwwLDEsOC4xMiwyLjU2YzE4LjU4LDI1LjA5LDQ3LjYxLDQyLjc0LDc5Ljg5LDQ5LjkyYTQuNDIsNC40MiwwLDAsMCw1LjIyLTMuNDMsNC4zNyw0LjM3LDAsMCwwLS44NS0zLjYyLDg3LDg3LDAsMCwxLDMuNjktMTEwLjY5Wk0zMjkuNTIsMjEyLjRsLTU3LjMsNDMuNDlMMjkzLDMyNC43NWE2LjUsNi41LDAsMCwxLTkuOTQsNy4yMkwyMjQsMjkwLjkyLDE2NC45NCwzMzJhNi41MSw2LjUxLDAsMCwxLTkuOTUtNy4yMmwyMC43OS02OC44Ni01Ny4zLTQzLjQ5YTYuNSw2LjUsMCwwLDEsMy44LTExLjY4bDcxLjg4LTEuNTEsMjMuNjYtNjcuOTJhNi41LDYuNSwwLDAsMSwxMi4yOCwwbDIzLjY2LDY3LjkyLDcxLjg4LDEuNTFhNi41LDYuNSwwLDAsMSwzLjg4LDExLjY4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3NvZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzMmgyMTQuNnYyMTQuNkgwVjMyem0yMzMuNCAwSDQ0OHYyMTQuNkgyMzMuNFYzMnpNMCAyNjUuNGgyMTQuNlY0ODBIMFYyNjUuNHptMjMzLjQgMEg0NDhWNDgwSDIzMy40VjI2NS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA2NHYzNDguOWMwIDU2LjIgODggNTguMSA4OCAwVjE3NC4zYzcuOS01Mi45IDg4LTUwLjQgODggNi41djE3NS4zYzAgNTcuOSA5NiA1OCA5NiAwVjI0MGM1LjMtNTQuNyA4OC01Mi41IDg4IDQuM3YyMy44YzAgNTkuOSA4OCA1Ni42IDg4IDBWNjRIMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWl4Y2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjQzIDIxOS43MjlDNDE2LjEyNCAxMzQuNzI3IDM0NC4xMzUgNjggMjU2LjkxOSA2OGMtNzIuMjY2IDAtMTM2LjIyNCA0Ni41MTYtMTU5LjIwNSAxMTQuMDc0LTU0LjU0NSA4LjAyOS05Ni42MyA1NC44MjItOTYuNjMgMTExLjU4MiAwIDYyLjI5OCA1MC42NjggMTEyLjk2NiAxMTMuMjQzIDExMi45NjZoMjg5LjYxNGM1Mi4zMjkgMCA5NC45NjktNDIuMzYyIDk0Ljk2OS05NC42OTMgMC00NS4xMzEtMzIuMTE4LTgzLjA2My03NC40OC05Mi4yem0tMjAuNDg5IDE0NC41M0gxMTQuMzI3Yy0zOS4wNCAwLTcwLjg4MS0zMS41NjQtNzAuODgxLTcwLjYwNHMzMS44NDEtNzAuNjA0IDcwLjg4MS03MC42MDRjMTguODI3IDAgMzYuNTQ4IDcuNDc1IDQ5LjgzOCAyMC43NjYgMTkuOTYzIDE5Ljk2MyA1MC4xMzMtMTAuMjI3IDMwLjE4LTMwLjE4LTE0LjY3NS0xNC4zOTgtMzIuNjcyLTI0LjM2NS01Mi4wNTMtMjkuMzQ5IDE5LjkzNS00NC4zIDY0Ljc5LTczLjkyNiAxMTQuNjI4LTczLjkyNiA2OS40OTYgMCAxMjUuOTc5IDU2LjQ4MyAxMjUuOTc5IDEyNS43MDIgMCAxMy41NjgtMi4yMTUgMjYuODU3LTYuMzY5IDM5LjU5NC04Ljk0MyAyNy41MTcgMzIuMTMzIDM4LjkzOSA0MC4xNDcgMTMuMjkgMi43NjktOC4zMDYgNC45ODQtMTYuODg5IDYuMzY5LTI1LjQ3MiAxOS4zODEgNy40NzYgMzMuNTAyIDI2LjMwMyAzMy41MDIgNDguNDUzIDAgMjguNzk1LTIzLjUzNSA1Mi4zMy01Mi42MDcgNTIuMzN6bTIzNS4wNjktNTIuMzNjMCA0NC4wMjQtMTIuNzM3IDg2LjM4Ni0zNy4xMDIgMTIyLjY1Ny00LjE1MyA2LjA5Mi0xMC43OTggOS40MTQtMTcuNzIgOS40MTQtMTYuMzE3IDAtMjcuMTI3LTE4LjgyNi0xNy40NDMtMzIuOTQ5IDE5LjM4MS0yOS4zNDkgMjkuOTAzLTYzLjY4MiAyOS45MDMtOTkuMTIycy0xMC41MjEtNjkuNzczLTI5LjkwMy05OC44NDVjLTE1LjY1NS0yMi44MzEgMTkuMzYxLTQ3LjI0IDM1LjE2My0yMy41MzQgMjQuMzY2IDM1Ljk5MyAzNy4xMDIgNzguMzU2IDM3LjEwMiAxMjIuMzc5em0tNzAuODggMGMwIDMxLjU2NS05LjEzNyA2Mi4wMjEtMjYuODU3IDg4LjMyNS00LjE1MyA2LjA5MS0xMC43OTggOS4xMzYtMTcuNzIgOS4xMzYtMTcuMjAxIDAtMjcuMDIyLTE4Ljk3OS0xNy40NDMtMzIuOTQ4IDEzLjAxMy0xOS4xMDQgMTkuNjU4LTQxLjI1NSAxOS42NTgtNjQuNTEzIDAtMjIuOTgxLTYuNjQ1LTQ1LjQwOC0xOS42NTgtNjQuNTEyLTE1Ljc2MS0yMi45ODYgMTkuMDA4LTQ3LjA5NSAzNS4xNjMtMjMuNTM1IDE3LjcxOSAyNi4wMjYgMjYuODU3IDU2LjQ4MyAyNi44NTcgODguMDQ3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXhlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQuNTcsNzYuMDdhNDUuNzEsNDUuNzEsMCwwLDAtNjcuNTEtNi40MWMtMTcuNTgsMTYuMTgtMTksNDMuNTItNC43NSw2Mi43N2w5MS43OCwxMjNMNDEuNzYsMzc5LjU4Yy0xNC4yMywxOS4yNS0xMy4xMSw0Ni41OSw0Ljc0LDYyLjc3QTQ1LjcxLDQ1LjcxLDAsMCwwLDExNCw0MzUuOTRMMjQyLjg5LDI2Mi43YTEyLjE0LDEyLjE0LDAsMCwwLDAtMTQuMjNaTTQ3MC4yNCwzNzkuNTgsMzc3LjkxLDI1NS40NWw5MS43OC0xMjNjMTQuMjItMTkuMjUsMTIuODMtNDYuNTktNC43NS02Mi43N2E0NS43MSw0NS43MSwwLDAsMC02Ny41MSw2LjQxbC0xMjgsMTcyLjEyYTEyLjE0LDEyLjE0LDAsMCwwLDAsMTQuMjNMMzk4LDQzNS45NGE0NS43MSw0NS43MSwwLDAsMCw2Ny41MSw2LjQxQzQ4My4zNSw0MjYuMTcsNDg0LjQ3LDM5OC44Myw0NzAuMjQsMzc5LjU4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXp1bmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkuMSAwIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4QzQ5NiAxMTkuMSAzODUgOCAyNDggOHptLTgwIDM1MS45Yy0zMS40IDEwLjYtNTguOCAyNy4zLTgwIDQ4LjJWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjIzLjl6bTEyMC05LjljLTEyLjktMi0yNi4yLTMuMS0zOS44LTMuMS0xMy44IDAtMjcuMiAxLjEtNDAuMiAzLjFWMTM2YzAtMjIuMSAxNy45LTQwIDQwLTQwczQwIDE3LjkgNDAgNDB2MjE0em0xMjAgNTcuN2MtMjEuMi0yMC44LTQ4LjYtMzcuNC04MC00OFYxMzZjMC0yMi4xIDE3LjktNDAgNDAtNDBzNDAgMTcuOSA0MCA0MHYyNzEuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9keCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTYgMjQxLjhsMzYuNyAyMy43VjQ4MGwtMTMzLTgzLjhMMzU2IDI0MS44ek00NDAgNzVIMjI2LjNsLTIzIDM3LjggMTUzLjUgOTYuNUw0NDAgNzV6bS04OSAxNDIuOEw1NS4yIDMydjIxNC41bDQ2IDI5TDM1MSAyMTcuOHpNOTcgMjk0LjJMOCA0MzdoMjEzLjdsMTI1LTIwMC41TDk3IDI5NC4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb25lcm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDM4NGgxMDguNEM0MTcgNDU1LjkgMzM4LjEgNTA0IDI0OCA1MDRTNzkgNDU1LjkgMzUuNiAzODRIMTQ0VjI1Ni4yTDI0OCAzNjFsMTA0LTEwNXYxMjh6TTg4IDMzNlYxMjhsMTU5LjQgMTU5LjRMNDA4IDEyOHYyMDhoNzQuOGM4LjUtMjUuMSAxMy4yLTUyIDEzLjItODBDNDk2IDExOSAzODUgOCAyNDggOFMwIDExOSAwIDI1NmMwIDI4IDQuNiA1NC45IDEzLjIgODBIODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5hcHN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjMgMzczLjZjLTE0LjIgMTMuNi0zMS4zIDI0LjEtNTAuNCAzMC41LTE5LTYuNC0zNi4yLTE2LjktNTAuMy0zMC41aDEwMC43em00NC0xOTkuNmMyMC0xNi45IDQzLjYtMjkuMiA2OS42LTM2LjJWMjk5YzAgMjE5LjQtMzI4IDIxNy42LTMyOCAuM1YxMzcuN2MyNS45IDYuOSA0OS42IDE5LjYgNjkuNSAzNi40IDU2LjgtNDAgMTMyLjUtMzkuOSAxODguOS0uMXptLTIwOC44LTU4LjVjNjQuNC02MCAxNjQuMy02MC4xIDIyOC45LS4yLTcuMSAzLjUtMTMuOSA3LjMtMjAuNiAxMS41LTU4LjctMzAuNS0xMjkuMi0zMC40LTE4Ny45LjEtNi4zLTQtMTMuOS04LjItMjAuNC0xMS40ek00My44IDkzLjJ2NjkuM2MtNTguNCAzNi41LTU4LjQgMTIxLjEuMSAxNTguMyAyNi40IDI0NS4xIDM4MS43IDI0MC4zIDQwNy42IDEuNWwuMy0xLjdjNTguNy0zNi4zIDU4LjktMTIxLjcuMi0xNTguMlY5My4yYy0xNy4zLjUtMzQgMy01MC4xIDcuNC04Mi05MS41LTIyNS41LTkxLjUtMzA3LjUuMS0xNi4zLTQuNC0zMy4xLTctNTAuNi03LjV6TTI1OS4yIDM1MnMzNi0uMyA2MS4zLTEuNWMxMC4yLS41IDIxLjEtNCAyNS41LTYuNSAyNi4zLTE1LjEgMjUuNC0zOS4yIDI2LjItNDcuNC03OS41LS42LTk5LjktMy45LTExMyA1NS40em0tMTM1LjUtNTUuM2MuOCA4LjItLjEgMzIuMyAyNi4yIDQ3LjQgNC40IDIuNSAxNS4yIDYgMjUuNSA2LjUgMjUuMyAxLjEgNjEuMyAxLjUgNjEuMyAxLjUtMTMuMi01OS40LTMzLjctNTYuMS0xMTMtNTUuNHptMTY5LjEgMTIzLjRjLTMuMi01LjMtNi45LTcuMy02LjktNy4zLTI0LjggNy4zLTUyLjIgNi45LTc1LjkgMCAwIDAtMi45IDEuNS02LjQgNi42LTIuOCA0LjEtMy43IDkuNi0zLjcgOS42IDI5LjEgMTcuNiA2Ny4xIDE3LjYgOTYuMiAwLS4xLS4xLS4zLTQtMy4zLTguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmVvcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTUuNDQgNTEyaC05NS4xMUwyMTIuMTIgMzU3LjQ2djkxLjFMMTI1LjY5IDUxMkgyOFYyOS44Mkw2OC40NyAwaDEwOC4wNWwxMjMuNzQgMTc2LjEzVjYzLjQ1TDM4Ni42OSAwaDk3LjY5djQ2MS41ek0zOC43NyAzNS4yN1Y0OTZsNzItNTIuODhWMTk0bDIxNS41IDMwNy42NGg4NC43OWw1Mi4zNS0zOC4xN2gtNzguMjdMNjkgMTN6bTgyLjU0IDQ2Ni42MWw4MC01OC43OHYtMTAxbC03OS43Ni0xMTQuNHYyMjAuOTRMNDkgNTAxLjg5aDcyLjM0ek04MC42MyAxMC43N2wzMTAuNiA0NDIuNTdoODIuMzdWMTAuNzdoLTc5Ljc1djMxNy41NkwxNzAuOTEgMTAuNzd6TTMxMSAxOTEuNjVsNzIgMTAyLjgxVjE1LjkzbC03MiA1M3YxMjIuNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5pbWJsciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDYuNiAyOTkuMjljMTUuNTcgMCAyNy4xNSAxMS40NiAyNy4xNSAyN3MtMTEuNjIgMjctMjcuMTUgMjdjLTE1LjcgMC0yNy4xNS0xMS41Ny0yNy4xNS0yN3MxMS41NS0yNyAyNy4xNS0yN3pNMTEzIDMyNi4yNWMwLTE1LjYxIDExLjY4LTI3IDI3LjE1LTI3czI3LjE1IDExLjQ2IDI3LjE1IDI3LTExLjQ3IDI3LTI3LjE1IDI3Yy0xNS40NCAwLTI3LjE1LTExLjMxLTI3LjE1LTI3TTE5MS43NiAxNTlDMTU3IDE1OSA4OS40NSAxNzguNzcgNTkuMjUgMjI3TDE0IDB2MzM1LjQ4QzE0IDQzMy4xMyA5My42MSA1MTIgMTkxLjc2IDUxMnMxNzcuNzYtNzguOTUgMTc3Ljc2LTE3Ni41MlMyOTAuMTMgMTU5IDE5MS43NiAxNTl6bTAgMzA4LjEyYy03My4yNyAwLTEzMi41MS01OC45LTEzMi41MS0xMzEuNTlzNTkuMjQtMTMxLjU5IDEzMi41MS0xMzEuNTkgMTMyLjUxIDU4Ljg2IDEzMi41MSAxMzEuNTRTMjY1IDQ2Ny4wNyAxOTEuNzYgNDY3LjA3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb2RlSnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDUwOGMtNi43IDAtMTMuNS0xLjgtMTkuNC01LjJsLTYxLjctMzYuNWMtOS4yLTUuMi00LjctNy0xLjctOCAxMi4zLTQuMyAxNC44LTUuMiAyNy45LTEyLjcgMS40LS44IDMuMi0uNSA0LjYuNGw0Ny40IDI4LjFjMS43IDEgNC4xIDEgNS43IDBsMTg0LjctMTA2LjZjMS43LTEgMi44LTMgMi44LTVWMTQ5LjNjMC0yLjEtMS4xLTQtMi45LTUuMUwyMjYuOCAzNy43Yy0xLjctMS00LTEtNS43IDBMMzYuNiAxNDQuM2MtMS44IDEtMi45IDMtMi45IDUuMXYyMTMuMWMwIDIgMS4xIDQgMi45IDQuOWw1MC42IDI5LjJjMjcuNSAxMy43IDQ0LjMtMi40IDQ0LjMtMTguN1YxNjcuNWMwLTMgMi40LTUuMyA1LjQtNS4zaDIzLjRjMi45IDAgNS40IDIuMyA1LjQgNS4zVjM3OGMwIDM2LjYtMjAgNTcuNi01NC43IDU3LjYtMTAuNyAwLTE5LjEgMC00Mi41LTExLjZsLTQ4LjQtMjcuOUM4LjEgMzg5LjIuNyAzNzYuMy43IDM2Mi40VjE0OS4zYzAtMTMuOCA3LjQtMjYuOCAxOS40LTMzLjdMMjA0LjYgOWMxMS43LTYuNiAyNy4yLTYuNiAzOC44IDBsMTg0LjcgMTA2LjdjMTIgNi45IDE5LjQgMTkuOCAxOS40IDMzLjd2MjEzLjFjMCAxMy44LTcuNCAyNi43LTE5LjQgMzMuN0wyNDMuNCA1MDIuOGMtNS45IDMuNC0xMi42IDUuMi0xOS40IDUuMnptMTQ5LjEtMjEwLjFjMC0zOS45LTI3LTUwLjUtODMuNy01OC01Ny40LTcuNi02My4yLTExLjUtNjMuMi0yNC45IDAtMTEuMSA0LjktMjUuOSA0Ny40LTI1LjkgMzcuOSAwIDUxLjkgOC4yIDU3LjcgMzMuOC41IDIuNCAyLjcgNC4yIDUuMiA0LjJoMjRjMS41IDAgMi45LS42IDMuOS0xLjdzMS41LTIuNiAxLjQtNC4xYy0zLjctNDQuMS0zMy02NC42LTkyLjItNjQuNi01Mi43IDAtODQuMSAyMi4yLTg0LjEgNTkuNSAwIDQwLjQgMzEuMyA1MS42IDgxLjggNTYuNiA2MC41IDUuOSA2NS4yIDE0LjggNjUuMiAyNi43IDAgMjAuNi0xNi42IDI5LjQtNTUuNSAyOS40LTQ4LjkgMC01OS42LTEyLjMtNjMuMi0zNi42LS40LTIuNi0yLjYtNC41LTUuMy00LjVoLTIzLjljLTMgMC01LjMgMi40LTUuMyA1LjMgMCAzMS4xIDE2LjkgNjguMiA5Ny44IDY4LjIgNTguNC0uMSA5Mi0yMy4yIDkyLTYzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE2LjMgNDUyYy0yLjEgMC00LjItLjYtNi4xLTEuNkwyOTEgNDM5Yy0yLjktMS42LTEuNS0yLjItLjUtMi41IDMuOC0xLjMgNC42LTEuNiA4LjctNCAuNC0uMiAxLS4xIDEuNC4xbDE0LjggOC44Yy41LjMgMS4zLjMgMS44IDBMMzc1IDQwOGMuNS0uMy45LS45LjktMS42di02Ni43YzAtLjctLjMtMS4zLS45LTEuNmwtNTcuOC0zMy4zYy0uNS0uMy0xLjItLjMtMS44IDBsLTU3LjggMzMuM2MtLjYuMy0uOSAxLS45IDEuNnY2Ni43YzAgLjYuNCAxLjIuOSAxLjVsMTUuOCA5LjFjOC42IDQuMyAxMy45LS44IDEzLjktNS44di02NS45YzAtLjkuNy0xLjcgMS43LTEuN2g3LjNjLjkgMCAxLjcuNyAxLjcgMS43djY1LjljMCAxMS41LTYuMiAxOC0xNy4xIDE4LTMuMyAwLTYgMC0xMy4zLTMuNmwtMTUuMi04LjdjLTMuNy0yLjItNi4xLTYuMi02LjEtMTAuNXYtNjYuN2MwLTQuMyAyLjMtOC40IDYuMS0xMC41bDU3LjgtMzMuNGMzLjctMi4xIDguNS0yLjEgMTIuMSAwbDU3LjggMzMuNGMzLjcgMi4yIDYuMSA2LjIgNi4xIDEwLjV2NjYuN2MwIDQuMy0yLjMgOC40LTYuMSAxMC41bC01Ny44IDMzLjRjLTEuNyAxLjEtMy44IDEuNy02IDEuN3ptNDYuNy02NS44YzAtMTIuNS04LjQtMTUuOC0yNi4yLTE4LjItMTgtMi40LTE5LjgtMy42LTE5LjgtNy44IDAtMy41IDEuNS04LjEgMTQuOC04LjEgMTEuOSAwIDE2LjMgMi42IDE4LjEgMTAuNi4yLjguOCAxLjMgMS42IDEuM2g3LjVjLjUgMCAuOS0uMiAxLjItLjUuMy0uNC41LS44LjQtMS4zLTEuMi0xMy44LTEwLjMtMjAuMi0yOC44LTIwLjItMTYuNSAwLTI2LjMgNy0yNi4zIDE4LjYgMCAxMi43IDkuOCAxNi4xIDI1LjYgMTcuNyAxOC45IDEuOSAyMC40IDQuNiAyMC40IDguMyAwIDYuNS01LjIgOS4yLTE3LjQgOS4yLTE1LjMgMC0xOC43LTMuOC0xOS44LTExLjQtLjEtLjgtLjgtMS40LTEuNy0xLjRoLTcuNWMtLjkgMC0xLjcuNy0xLjcgMS43IDAgOS43IDUuMyAyMS4zIDMwLjYgMjEuMyAxOC41IDAgMjktNy4yIDI5LTE5Ljh6bTU0LjUtNTAuMWMwIDYuMS01IDExLjEtMTEuMSAxMS4xcy0xMS4xLTUtMTEuMS0xMS4xYzAtNi4zIDUuMi0xMS4xIDExLjEtMTEuMSA2LS4xIDExLjEgNC44IDExLjEgMTEuMXptLTEuOCAwYzAtNS4yLTQuMi05LjMtOS40LTkuMy01LjEgMC05LjMgNC4xLTkuMyA5LjMgMCA1LjIgNC4yIDkuNCA5LjMgOS40IDUuMi0uMSA5LjQtNC4zIDkuNC05LjR6bS00LjUgNi4yaC0yLjZjLS4xLS42LS41LTMuOC0uNS0zLjktLjItLjctLjQtMS4xLTEuMy0xLjFoLTIuMnY1aC0yLjR2LTEyLjVoNC4zYzEuNSAwIDQuNCAwIDQuNCAzLjMgMCAyLjMtMS41IDIuOC0yLjQgMy4xIDEuNy4xIDEuOCAxLjIgMi4xIDIuOC4xIDEgLjMgMi43LjYgMy4zem0tMi44LTguOGMwLTEuNy0xLjItMS43LTEuOC0xLjdoLTJ2My41aDEuOWMxLjYgMCAxLjktMS4xIDEuOS0xLjh6TTEzNy4zIDE5MWMwLTIuNy0xLjQtNS4xLTMuNy02LjRsLTYxLjMtMzUuM2MtMS0uNi0yLjItLjktMy40LTFoLS42Yy0xLjIgMC0yLjMuNC0zLjQgMUwzLjcgMTg0LjZDMS40IDE4NS45IDAgMTg4LjQgMCAxOTFsLjEgOTVjMCAxLjMuNyAyLjUgMS44IDMuMiAxLjEuNyAyLjUuNyAzLjcgMEw0MiAyNjguM2MyLjMtMS40IDMuNy0zLjggMy43LTYuNHYtNDQuNGMwLTIuNiAxLjQtNS4xIDMuNy02LjRsMTUuNS04LjljMS4yLS43IDIuNC0xIDMuNy0xIDEuMyAwIDIuNi4zIDMuNyAxbDE1LjUgOC45YzIuMyAxLjMgMy43IDMuOCAzLjcgNi40djQ0LjRjMCAyLjYgMS40IDUuMSAzLjcgNi40bDM2LjQgMjAuOWMxLjEuNyAyLjYuNyAzLjcgMCAxLjEtLjYgMS44LTEuOSAxLjgtMy4ybC4yLTk1ek00NzIuNSA4Ny4zdjE3Ni40YzAgMi42LTEuNCA1LjEtMy43IDYuNGwtNjEuMyAzNS40Yy0yLjMgMS4zLTUuMSAxLjMtNy40IDBsLTYxLjMtMzUuNGMtMi4zLTEuMy0zLjctMy44LTMuNy02LjR2LTcwLjhjMC0yLjYgMS40LTUuMSAzLjctNi40bDYxLjMtMzUuNGMyLjMtMS4zIDUuMS0xLjMgNy40IDBsMTUuMyA4LjhjMS43IDEgMy45LS4zIDMuOS0yLjJ2LTk0YzAtMi44IDMtNC42IDUuNS0zLjJsMzYuNSAyMC40YzIuMyAxLjIgMy44IDMuNyAzLjggNi40em0tNDYgMTI4LjljMC0uNy0uNC0xLjMtLjktMS42bC0yMS0xMi4yYy0uNi0uMy0xLjMtLjMtMS45IDBsLTIxIDEyLjJjLS42LjMtLjkuOS0uOSAxLjZ2MjQuM2MwIC43LjQgMS4zLjkgMS42bDIxIDEyLjFjLjYuMyAxLjMuMyAxLjggMGwyMS0xMi4xYy42LS4zLjktLjkuOS0xLjZ2LTI0LjN6bTIwOS44LS43YzIuMy0xLjMgMy43LTMuOCAzLjctNi40VjE5MmMwLTIuNi0xLjQtNS4xLTMuNy02LjRsLTYwLjktMzUuNGMtMi4zLTEuMy01LjEtMS4zLTcuNCAwbC02MS4zIDM1LjRjLTIuMyAxLjMtMy43IDMuOC0zLjcgNi40djcwLjhjMCAyLjcgMS40IDUuMSAzLjcgNi40bDYwLjkgMzQuN2MyLjIgMS4zIDUgMS4zIDcuMyAwbDM2LjgtMjAuNWMyLjUtMS40IDIuNS01IDAtNi40TDU1MCAyNDEuNmMtMS4yLS43LTEuOS0xLjktMS45LTMuMnYtMjIuMmMwLTEuMy43LTIuNSAxLjktMy4ybDE5LjItMTEuMWMxLjEtLjcgMi42LS43IDMuNyAwbDE5LjIgMTEuMWMxLjEuNyAxLjkgMS45IDEuOSAzLjJ2MTcuNGMwIDIuOCAzLjEgNC42IDUuNiAzLjJsMzYuNy0yMS4zek01NTkgMjE5Yy0uNC4zLS43LjctLjcgMS4ydjEzLjZjMCAuNS4zIDEgLjcgMS4ybDExLjggNi44Yy40LjMgMSAuMyAxLjQgMEw1ODQgMjM1Yy40LS4zLjctLjcuNy0xLjJ2LTEzLjZjMC0uNS0uMy0xLS43LTEuMmwtMTEuOC02LjhjLS40LS4zLTEtLjMtMS40IDBMNTU5IDIxOXptLTI1NC4yIDQzLjV2LTcwLjRjMC0yLjYtMS42LTUuMS0zLjktNi40bC02MS4xLTM1LjJjLTIuMS0xLjItNS0xLjQtNy40IDBsLTYxLjEgMzUuMmMtMi4zIDEuMy0zLjkgMy43LTMuOSA2LjR2NzAuNGMwIDIuOCAxLjkgNS4yIDQgNi40bDYxLjIgMzUuMmMyLjQgMS40IDUuMiAxLjMgNy40IDBsNjEtMzUuMmMxLjgtMSAzLjEtMi43IDMuNi00LjcuMS0uNS4yLTEuMS4yLTEuN3ptLTc0LjMtMTI0LjlsLS44LjVoMS4xbC0uMy0uNXptNzYuMiAxMzAuMmwtLjQtLjd2LjlsLjQtLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5wbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjg4aC0zMnYtNjRoMzJ2NjR6bTI4OC0xMjh2MTkySDI4OHYzMkgxNjB2LTMySDBWMTYwaDU3NnptLTQxNiAzMkgzMnYxMjhoNjR2LTk2aDMydjk2aDMyVjE5MnptMTYwIDBIMTkydjE2MGg2NHYtMzJoNjRWMTkyem0yMjQgMEgzNTJ2MTI4aDY0di05NmgzMnY5NmgzMnYtOTZoMzJ2OTZoMzJWMTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOczggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA0LjMyNCwyNjkuMTcyaDI2LjA2N1YyNDIuOTk0SDEwNC4zMjRabTUyLjQ2Ni0yNi4xNzgtLjA1NS0yNi4xNzh2LS45NDFhMzkuMzI1LDM5LjMyNSwwLDAsMC03OC42NDQuOTQxdi4xNjZoMjYuNHYtLjE2NmExMi45OCwxMi45OCwwLDAsMSwyNS45NTYsMHYyNi4xNzhabTUyLjM1NiwyNS44NDZhOTEuMSw5MS4xLDAsMCwxLTkxLjEsOTEuMWgtLjYwOWE5MS4xLDkxLjEsMCwwLDEtOTEuMS05MS4xSDB2LjE2NkExMTcuMzMsMTE3LjMzLDAsMCwwLDExNy40NCwzODYuMjhoLjc3NUExMTcuMzMxLDExNy4zMzEsMCwwLDAsMjM1LjQ5LDI2OC44NFYyNDIuODI4SDIwOS4xNDZabS0xNTcuMjMzLDBhNjUuMzYyLDY1LjM2MiwwLDAsMCwxMzAuNzIzLDBIMTU2LjI5MmEzOS4wMjMsMzkuMDIzLDAsMCwxLTc4LjAzNSwwVjI0Mi44ODNINTEuOTY4di0yNi42MkE2NS40Miw2NS40MiwwLDAsMSwxODIuOCwyMTcuNDh2MjUuMjkzaDI2LjM0NFYyMTcuNDhhOTEuNzYxLDkxLjc2MSwwLDAsMC0xODMuNTIyLDB2MjUuNEg1MS45MTNabTQxOC40LTcxLjE3M2MxMy42NywwLDI0LjU3Myw2LjY0MiwzMC4wNTIsMTguMjY0bC43MTksMS41NDksMjMuMjQ1LTExLjUxMS0uNjA5LTEuNDM5Yy04LjAyNS0xOS4yNi0yOC41LTMxLjI3LTUzLjQwNy0zMS4yNy0yMy4xMzQsMC00My42MTEsMTEuNC01MC45NzIsMjguNDQ3LS4xMjMsMjYuODc2LS4xNTgsMjMuOSwwLDI0Ljg1LDQuNywxMS4wMTMsMTQuNTU1LDE5LjM3LDI4LjY2OCwyNC4yNDFhMTAyLjAzMywxMDIuMDMzLDAsMCwwLDE5LjgxMywzLjk4NGM1LjQ3OS43MiwxMC42MjYsMS4zODQsMTUuODI5LDMuMSw2LjM2NCwyLjEsMTAuNDYsNS4yNTcsMTIuODQsOS44NTF2OS44NTFjLTMuNzA4LDcuNTI3LTEzLjc4MSwxMi4zNDItMjUuNzkxLDEyLjM0Mi0xNC4zMzQsMC0yNS45NTYtNi45MTgtMzEuOTMzLTE5LjAzOWwtLjcyLTEuNDk0TDQxNS4wMjYsMjgwLjlsLjU1MywxLjQzOWM3LjkxNSwxOS40MjYsMjkuNjA5LDMyLjA0NCw1NS4yODksMzIuMDQ0LDIzLjYzMiwwLDQ0LjYwOC0xMS40LDUyLjMtMjguNDQ3bC4xNjYtMjUuOS0uMTY2LS42NjRjLTQuODctMTEuMDE0LTE1LjIxOS0xOS42NDctMjguOTQ0LTI0LjI0MS03LjY5My0yLjcxMi0xNC4zMzUtMy42LTIwLjctNC40MjdhODMuNzc3LDgzLjc3NywwLDAsMS0xNC44MzItMi44NzhjLTYuMzEtMS45MzctMTAuNC01LjA5Mi0xMi42MTktOS42M3YtOC40MTJDNDQ5LjQ1LDIwMi40MjcsNDU4Ljk2OSwxOTcuNjY3LDQ3MC4zMTUsMTk3LjY2N1pNMjg3LjU2OCwzMTEuMzQ0aDI2LjA2N3YtNjguNEgyODcuNTY4Wm0zNTIuMjY2LTUzLjNjLTIuOTMzLTYuMjU0LTguMy0xMi4wMS0xNS40NDEtMTYuNzE0QTM3Ljk5LDM3Ljk5LDAsMCwwLDYzNy40LDIyNmwuMTY2LTI1LjM0Ny0uMTY2LS42NjRDNjMwLjAzOCwxODQsNjEwLjY2NywxNzMuMjYsNTg5LjI1LDE3My4yNlM1NDguNDYxLDE4NCw1NDEuMSwxOTkuOTkybC0uMTY2LDI1LjM0Ny4xNjYuNjY0YTM5LjY0MywzOS42NDMsMCwwLDAsMTMuMDA2LDE1LjMzMWMtNy4yLDQuNy0xMi41MDgsMTAuNDYtMTUuNDQxLDE2LjcxNGwtLjE2NiwyOC44ODkuMTY2LjcyYzcuNTgyLDE1Ljk5NCwyNy44OTMsMjYuNzMxLDUwLjU4NSwyNi43MzFzNDMuMDU3LTEwLjczNyw1MC41ODQtMjYuNzMxbC4xNjYtMjguODlabS03My4yMi01MC44MDZjMy42LTYuMzEsMTIuNTYzLTEwLjUxNiwyMi41OC0xMC41MTZzMTkuMDM4LDQuMjA2LDIyLjYzNiwxMC41MTZ2MTMuNzI1Yy0zLjU0Miw2LjItMTIuNTYzLDEwLjM0OS0yMi42MzYsMTAuMzQ5cy0xOS4wOTQtNC4xNS0yMi41OC0xMC4zNDlabTQ3LjMxOSw3Mi4xNjljLTMuNzY0LDYuNjQxLTEzLjMzOCwxMC45LTI0LjY4MywxMC45LTExLjEyNSwwLTIwLjk3Ni00LjM3Mi0yNC42ODQtMTAuOVYyNjMuMjVjMy43MDgtNi4zMDksMTMuNS0xMC41MTUsMjQuNjg0LTEwLjUxNSwxMS4zNDUsMCwyMC45MTksNC4xNSwyNC42ODMsMTAuNTE1Wk0zNzYuNCwyNjUuOTYybC01OS44MjctODkuNzEzaC0yOXY0MC42MjNoMjYuNTF2LjM4N2w2Mi41MzksOTQuMDg1SDQwMi4zVjE3Ni4yNDlIMzc2LjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU51dHJpdGlvbml4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTg4IDguMVMyMjEuNC0uMSAyMDkgMTEyLjVjMCAwIDE5LjEtNzQuOSAxMDMtNDAuNiAwIDAtMTcuNyA3NC04OCA1NiAwIDAgMTQuNi01NC42IDY2LjEtNTYuNiAwIDAtMzkuOS0xMC4zLTgyLjEgNDguOCAwIDAtMTkuOC05NC41LTkzLjYtOTkuNyAwIDAgNzUuMiAxOS40IDc3LjYgMTA3LjUgMCAuMS0xMDYuNCA3LTEwNC0xMTkuOHptMzEyIDMxNS42YzAgNDguNS05LjcgOTUuMy0zMiAxMzIuMy00Mi4yIDMwLjktMTA1IDQ4LTE2OCA0OC02Mi45IDAtMTI1LjgtMTcuMS0xNjgtNDhDOS43IDQxOSAwIDM3Mi4yIDAgMzIzLjcgMCAyNzUuMyAxNy43IDIyOSA0MCAxOTJjNDIuMi0zMC45IDk3LjEtNDguNiAxNjAtNDguNiA2MyAwIDExNy44IDE3LjYgMTYwIDQ4LjYgMjIuMyAzNyA0MCA4My4zIDQwIDEzMS43ek0xMjAgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHpNMTkyIDQyOGMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6bTAtNjYuMmMwLTE1LjUtMTIuNS0yOC0yOC0yOHMtMjggMTIuNS0yOCAyOCAxMi41IDI4IDI4IDI4IDI4LTEyLjUgMjgtMjh6TTI2NCA0MjhjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4em0wLTY2LjJjMC0xNS41LTEyLjUtMjgtMjgtMjhzLTI4IDEyLjUtMjggMjggMTIuNSAyOCAyOCAyOCAyOC0xMi41IDI4LTI4ek0zMzYgNDI4YzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMC02Ni4yYzAtMTUuNS0xMi41LTI4LTI4LTI4cy0yOCAxMi41LTI4IDI4IDEyLjUgMjggMjggMjggMjgtMTIuNSAyOC0yOHptMjQtMzkuNmMtNC44LTIyLjMtNy40LTM2LjktMTYtNTYtMzguOC0xOS45LTkwLjUtMzItMTQ0LTMyUzk0LjggMTgwLjEgNTYgMjAwYy04LjggMTkuNS0xMS4yIDMzLjktMTYgNTYgNDIuMi03LjkgOTguNy0xNC44IDE2MC0xNC44czExNy44IDYuOSAxNjAgMTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2N0b3B1c0RlcGxveSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTUuNiwzNDkuMmMtNDUuODkxLTM5LjA5LTM2LjY3LTc3Ljg3Ny0xNi4wOTUtMTI4LjExQzQ3NS4xNiwxMzQuMDQsNDE1Ljk2NywzNC4xNCwzMjkuOTMsOC4zLDIzNy4wNC0xOS42LDEzNC4yNTIsMjQuMzQxLDk5LjY3NywxMTcuMTQ3YTE4MC44NjIsMTgwLjg2MiwwLDAsMC0xMC45ODgsNzMuNTQ0YzEuNzMzLDI5LjU0MywxNC43MTcsNTIuOTcsMjQuMDksODAuMywxNy4yLDUwLjE2MS0yOC4xLDkyLjc0My02Ni42NjIsMTE3LjU4Mi00Ni44MDYsMzAuMi0zNi4zMTksMzkuODU3LTguNDI4LDQxLjg1OCwyMy4zNzgsMS42OCw0NC40NzgtNC41NDgsNjUuMjY1LTE1LjA0NSw5LjItNC42NDcsNDAuNjg3LTE4LjkzMSw0NS4xMy0yOC41ODhDMTM1LjksNDEzLjM4OCwxMTEuMTIyLDQ1OS41LDEyNi42MjEsNDg4LjljMTkuMSwzNi4yMjksNjcuMTEyLTMxLjc3LDc2LjcwOS00NS44MTIsOC41OTEtMTIuNTcyLDQyLjk2My04MS4yNzksNjMuNjI3LTQ2LjkyNiwxOC44NjUsMzEuMzYxLDguNiw3Ni4zOTEsMzUuNzM4LDEwNC42MjIsMzIuODU0LDM0LjIsNTEuMTU1LTE4LjMxMiw1MS40MTItNDQuMjIxLjE2My0xNi40MTEtNi4xLTk1Ljg1MiwyOS45LTU5Ljk0NEM0MDUuNDI4LDQxOCw0MzYuOTEyLDQ2Ny44LDQ3Mi41NjgsNDYzLjY0MmMzOC43MzYtNC41MTYtMjIuMTIzLTY3Ljk2Ny0yOC4yNjItNzguNjk1LDUuMzkzLDQuMjc5LDUzLjY2NSwzNC4xMjgsNTMuODE4LDkuNTJDNDk4LjIzNCwzNzUuNjc4LDQ2OC4wMzksMzU5LjgsNDU1LjYsMzQ5LjJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9kbm9rbGFzc25pa2lTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg0LjIgMTc3LjFjMC0yMi4xIDE3LjktNDAgMzkuOC00MHMzOS44IDE3LjkgMzkuOCA0MGMwIDIyLTE3LjkgMzkuOC0zOS44IDM5LjhzLTM5LjgtMTcuOS0zOS44LTM5Ljh6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTMwNS4xIDk3LjFjMCA0NC42IDM2LjQgODAuOSA4MS4xIDgwLjlzODEuMS0zNi4yIDgxLjEtODAuOWMwLTQ0LjgtMzYuNC04MS4xLTgxLjEtODEuMXMtODEuMSAzNi4yLTgxLjEgODEuMXptMTc0LjUgOTAuN2MtNC42LTkuMS0xNy4zLTE2LjgtMzQuMS0zLjYgMCAwLTIyLjcgMTgtNTkuMyAxOHMtNTkuMy0xOC01OS4zLTE4Yy0xNi44LTEzLjItMjkuNS01LjUtMzQuMSAzLjYtNy45IDE2LjEgMS4xIDIzLjcgMjEuNCAzNyAxNy4zIDExLjEgNDEuMiAxNS4yIDU2LjYgMTYuOGwtMTIuOSAxMi45Yy0xOC4yIDE4LTM1LjUgMzUuNS00Ny43IDQ3LjctMTcuNiAxNy42IDEwLjcgNDUuOCAyOC40IDI4LjZsNDcuNy00Ny45YzE4LjIgMTguMiAzNS43IDM1LjcgNDcuNyA0Ny45IDE3LjYgMTcuMiA0Ni0xMC43IDI4LjYtMjguNmwtNDcuNy00Ny43LTEzLTEyLjljMTUuNS0xLjYgMzkuMS01LjkgNTYuMi0xNi44IDIwLjQtMTMuMyAyOS4zLTIxIDIxLjUtMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9kbm9rbGFzc25pa2kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjEgMzM0Yy0yNy40IDE3LjQtNjUuMSAyNC4zLTkwIDI2LjlsMjAuOSAyMC42IDc2LjMgNzYuM2MyNy45IDI4LjYtMTcuNSA3My4zLTQ1LjcgNDUuNy0xOS4xLTE5LjQtNDcuMS00Ny40LTc2LjMtNzYuNkw4NCA1MDMuNGMtMjguMiAyNy41LTczLjYtMTcuNi00NS40LTQ1LjcgMTkuNC0xOS40IDQ3LjEtNDcuNCA3Ni4zLTc2LjNsMjAuNi0yMC42Yy0yNC42LTIuNi02Mi45LTkuMS05MC42LTI2LjktMzIuNi0yMS00Ni45LTMzLjMtMzQuMy01OSA3LjQtMTQuNiAyNy43LTI2LjkgNTQuNi01LjcgMCAwIDM2LjMgMjguOSA5NC45IDI4LjlzOTQuOS0yOC45IDk0LjktMjguOWMyNi45LTIxLjEgNDcuMS04LjkgNTQuNiA1LjcgMTIuNCAyNS43LTEuOSAzOC0zNC41IDU5LjF6TTMwLjMgMTI5LjdDMzAuMyA1OCA4OC42IDAgMTYwIDBzMTI5LjcgNTggMTI5LjcgMTI5LjdjMCA3MS40LTU4LjMgMTI5LjQtMTI5LjcgMTI5LjRzLTEyOS43LTU4LTEyOS43LTEyOS40em02NiAwYzAgMzUuMSAyOC42IDYzLjcgNjMuNyA2My43czYzLjctMjguNiA2My43LTYzLjdjMC0zNS40LTI4LjYtNjQtNjMuNy02NHMtNjMuNyAyOC42LTYzLjcgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9sZFJlcHVibGljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzNS43NiAxMC4yM2M3LjUtLjMxIDE1LS4yOCAyMi41LS4wOSAzLjYxLjE0IDcuMi40IDEwLjc5LjczIDQuOTIuMjcgOS43OSAxLjAzIDE0LjY3IDEuNjIgMi45My40MyA1LjgzLjk4IDguNzUgMS40NiA3LjkgMS4zMyAxNS42NyAzLjI4IDIzLjM5IDUuNCAxMi4yNCAzLjQ3IDI0LjE5IDcuOTIgMzUuNzYgMTMuMjEgMjYuNTYgMTIuMjQgNTAuOTQgMjkuMjEgNzEuNjMgNDkuODggMjAuMDMgMjAuMDkgMzYuNzIgNDMuNTUgNDguODkgNjkuMTkgMS4xMyAyLjU5IDIuNDQgNS4xIDMuNDcgNy43NCAyLjgxIDYuNDMgNS4zOSAxMi45NyA3LjU4IDE5LjYzIDQuMTQgMTIuMzMgNy4zNCAyNC45OSA5LjQyIDM3LjgzLjU3IDMuMTQgMS4wNCA2LjMgMS40IDkuNDcuNTUgMy44My45NCA3LjY5IDEuMTggMTEuNTYuODMgOC4zNC44NCAxNi43My43NyAyNS4xLS4wNyA0Ljk3LS4yNiA5Ljk0LS43NSAxNC44OS0uMjQgMy4zOC0uNTEgNi43Ni0uOTggMTAuMTItLjM5IDIuNzItLjYzIDUuNDYtMS4xMSA4LjE3LS45IDUuMTUtMS43IDEwLjMxLTIuODcgMTUuNDEtNC4xIDE4LjUtMTAuMyAzNi41NS0xOC41MSA1My42My0xNS43NyAzMi44My0zOC44MyA2Mi4xNy02Ny4xMiA4NS4xMmEyNDYuNTAzIDI0Ni41MDMgMCAwIDEtNTYuOTEgMzQuODZjLTYuMjEgMi42OC0xMi40NiA1LjI1LTE4Ljg3IDcuNDEtMy41MSAxLjE2LTcuMDEgMi4zOC0xMC41NyAzLjM5LTYuNjIgMS44OC0xMy4yOSAzLjY0LTIwLjA0IDUtNC42Ni45MS05LjM0IDEuNzMtMTQuMDMgMi40OC01LjI1LjY2LTEwLjUgMS40NC0xNS43OSAxLjc0LTYuNjkuNjYtMTMuNDEuODQtMjAuMTIuODEtNi44Mi4wMy0xMy42NS0uMTItMjAuNDUtLjc5LTMuMjktLjIzLTYuNTctLjUtOS44My0uOTUtMi43Mi0uMzktNS40Ni0uNjMtOC4xNy0xLjExLTQuMTItLjcyLTguMjUtMS4zNy0xMi4zNS0yLjIyLTQuMjUtLjk0LTguNDktMS44OS0xMi42OS0zLjAyLTguNjMtMi4xNy0xNy4wOC01LjAxLTI1LjQxLTguMTMtMTAuNDktNC4xMi0yMC43OS04Ljc1LTMwLjY0LTE0LjI1LTIuMTQtMS4xNS00LjI4LTIuMjktNi4zNS0zLjU3LTExLjIyLTYuNTgtMjEuODYtMTQuMS0zMS45Mi0yMi4zNC0zNC42OC0yOC40MS02MS40MS02Ni40My03Ni4zNS0xMDguNy0zLjA5LTguNzQtNS43MS0xNy42NS03LjgtMjYuNjgtMS40OC02LjE2LTIuNTItMTIuNDItMy41OC0xOC42Ni0uNC0yLjM1LS42MS00LjczLS45NS03LjA5LS42LTMuOTYtLjc1LTcuOTYtMS4xNy0xMS45NC0uOC05LjQ3LS43MS0xOC45OS0uNTEtMjguNDkuMTQtMy41MS4zNC03LjAxLjctMTAuNTEuMzEtMy4xNy40Ni02LjM3LjkyLTkuNTIuNDEtMi44MS42NS01LjY1IDEuMTYtOC40NC43LTMuOTQgMS4zLTcuOSAyLjEyLTExLjgyIDMuNDMtMTYuNTIgOC40Ny0zMi43MyAxNS4yNi00OC4xOCAxLjE1LTIuOTIgMi41OS01LjcyIDMuODYtOC41OSA4LjA1LTE2LjcxIDE3LjktMzIuNTYgMjkuNDktNDcuMDYgMjAtMjUuMzggNDUuMS00Ni42OCA3My4yNy02Mi40NyA3LjUtNC4xNSAxNS4xNi04LjA1IDIzLjA3LTExLjM3IDE1LjgyLTYuODggMzIuNDEtMTEuOTUgNDkuMzEtMTUuMzggMy41MS0uNjcgNy4wNC0xLjI0IDEwLjU2LTEuODUgMi42Mi0uNDcgNS4yOC0uNyA3LjkxLTEuMDggMy41My0uNTMgNy4xLS42OCAxMC42NS0xLjA0IDIuNDYtLjI0IDQuOTEtLjM2IDcuMzYtLjUxbTguNjQgMjQuNDFjLTkuMjMuMS0xOC40My45OS0yNy41NyAyLjIzLTcuMyAxLjA4LTE0LjUzIDIuNi0yMS43MSA0LjMtMTMuOTEgMy41LTI3LjQ4IDguMzQtNDAuNDYgMTQuNDItMTAuNDYgNC45OS0yMC41OSAxMC43LTMwLjE4IDE3LjIyLTQuMTggMi45Mi04LjQgNS44LTEyLjM0IDkuMDMtNS4wOCAzLjk3LTkuOTggOC4xNy0xNC42OCAxMi41OS0yLjUxIDIuMjQtNC44MSA0LjctNy4yMiA3LjA2LTI4LjIyIDI4Ljc5LTQ4LjQ0IDY1LjM5LTU3LjUgMTA0LjY5LTIuMDQgOC40NC0zLjU0IDE3LjAyLTQuNDQgMjUuNjUtMS4xIDguODktMS40NCAxNy44NS0xLjQxIDI2LjguMTEgNy4xNC4zOCAxNC4yOCAxLjIyIDIxLjM3LjYyIDcuMTIgMS44NyAxNC4xNiAzLjIgMjEuMTggMS4wNyA0LjY1IDIuMDMgOS4zMiAzLjMzIDEzLjkxIDYuMjkgMjMuMzggMTYuNSA0NS43IDMwLjA3IDY1Ljc1IDguNjQgMTIuOTggMTguNzggMjQuOTMgMjkuOTggMzUuNzcgMTYuMjggMTUuODIgMzUuMDUgMjkuMDQgNTUuMzQgMzkuMjIgNy4yOCAzLjUyIDE0LjY2IDYuODcgMjIuMjcgOS42MyA1LjA0IDEuNzYgMTAuMDYgMy41NyAxNS4yMiA0Ljk4IDExLjI2IDMuMjMgMjIuNzcgNS42IDM0LjM5IDcuMDYgMi45MS4yOSA1LjgxLjYxIDguNzIuOSAxMy44MiAxLjA4IDI3Ljc0IDEgNDEuNTQtLjQzIDQuNDUtLjYgOC45Mi0uOTkgMTMuMzUtMS43OCAzLjYzLS42NyA3LjI4LTEuMjUgMTAuODctMi4xIDQuMTMtLjk4IDguMjgtMS45MSAxMi4zNi0zLjA3IDI2LjUtNy4zNCA1MS41OC0xOS43MSA3My41OC0zNi4yIDE1Ljc4LTExLjgyIDI5Ljk2LTI1Ljc2IDQyLjEyLTQxLjI4IDMuMjYtNC4wMiA2LjE3LTguMzEgOS4xMy0xMi41NSAzLjM5LTUuMDYgNi41OC0xMC4yNSA5LjYtMTUuNTQgMi40LTQuNDQgNC43NC04LjkxIDYuOTUtMTMuNDUgNS42OS0xMi4wNSAxMC4yOC0yNC42MiAxMy43NS0zNy40OSAyLjU5LTEwLjAxIDQuNzUtMjAuMTYgNS45LTMwLjQ1IDEuNzctMTMuNDcgMS45NC0yNy4xIDEuMjktNDAuNjUtLjI5LTMuODktLjY3LTcuNzctMS0xMS42Ni0yLjIzLTE5LjA4LTYuNzktMzcuOTEtMTMuODItNTUuOC01Ljk1LTE1LjEzLTEzLjUzLTI5LjYzLTIyLjYxLTQzLjEzLTEyLjY5LTE4LjgtMjguMjQtMzUuNjgtNDUuOTctNDkuODMtMjUuMDUtMjAtNTQuNDctMzQuNTUtODUuNjUtNDIuMDgtNy43OC0xLjkzLTE1LjY5LTMuMzQtMjMuNjMtNC40NS0zLjkxLS41OS03Ljg1LS44Mi0xMS43Ny0xLjI0LTcuMzktLjU3LTE0LjgxLS43Mi0yMi4yMi0uNTh6TTEzOS4yNiA4My41M2MxMy4zLTguODkgMjguMDgtMTUuMzggNDMuMy0yMC4xOC0zLjE3IDEuNzctNi40NCAzLjM4LTkuNTMgNS4yOS0xMS4yMSA2LjY4LTIxLjUyIDE0LjktMzAuMzggMjQuNDktNi44IDcuNDMtMTIuNzYgMTUuNzMtMTcuMDEgMjQuODktMy4yOSA2Ljg2LTUuNjQgMTQuMTktNi44NiAyMS43MS0uOTMgNC44NS0xLjMgOS44MS0xLjE3IDE0Ljc1LjEzIDEzLjY2IDQuNDQgMjcuMDggMTEuMjkgMzguODIgNS45MiAxMC4yMiAxMy42MyAxOS4zMyAyMi4zNiAyNy4yNiA0Ljg1IDQuMzYgMTAuMjQgOC4wOSAxNC45NSAxMi42IDIuMjYgMi4xOSA0LjQ5IDQuNDIgNi40MyA2LjkxIDIuNjIgMy4zMSA0Ljg5IDYuOTkgNS45OSAxMS4xLjkgMy4wMi42NiA2LjIuNjkgOS4zMS4wMiA0LjEtLjA0IDguMi4wMyAxMi4zLjE0IDMuNTQtLjAyIDcuMDkuMTEgMTAuNjMuMDggMi4zOC4wMiA0Ljc2LjA1IDcuMTQuMTYgNS43Ny4wNiAxMS41My4xNSAxNy4zLjExIDIuOTEuMDIgNS44Mi4xMyA4Ljc0LjAzIDEuNjMuMTMgMy4yOC0uMDMgNC45MS0uOTEuMTItMS44Mi4xOC0yLjczLjE2LTEwLjk5IDAtMjEuODgtMi42My0zMS45NS02LjkzLTYtMi43LTExLjgxLTUuODktMTcuMDktOS44My01Ljc1LTQuMTktMTEuMDktOC45Ni0xNS43OS0xNC4zMS02LjUzLTcuMjQtMTEuOTgtMTUuMzktMTYuNjItMjMuOTUtMS4wNy0yLjAzLTIuMjQtNC4wMi0zLjE4LTYuMTItMS4xNi0yLjY0LTIuNjItNS4xNC0zLjY3LTcuODItNC4wNS05LjY4LTYuNTctMTkuOTQtOC4wOC0zMC4zMS0uNDktNC40NC0xLjA5LTguODgtMS4yLTEzLjM1LS43LTE1LjczLjg0LTMxLjU1IDQuNjctNDYuODIgMi4xMi04LjE1IDQuNzctMTYuMTggOC4zMS0yMy44MyA2LjMyLTE0LjIgMTUuMzQtMjcuMTggMjYuMy0zOC4xOSA2LjI4LTYuMiAxMy4xMy0xMS44NCAyMC41My0xNi42N3ptMTc1LjM3LTIwLjEyYzIuNzQuNzQgNS40MSAxLjc0IDguMDkgMi42OCA2LjM2IDIuMzMgMTIuNjggNC44NCAxOC43MSA3Ljk2IDEzLjExIDYuNDQgMjUuMzEgMTQuODEgMzUuODIgMjQuOTcgMTAuMiA5Ljk1IDE4Ljc0IDIxLjYgMjUuMTQgMzQuMzQgMS4yOCAyLjc1IDIuNjQgNS40NiAzLjgxIDguMjYgNi4zMSAxNS4xIDEwIDMxLjI2IDExLjIzIDQ3LjU3LjQxIDQuNTQuNDQgOS4wOS40NSAxMy42NC4wNyAxMS42NC0xLjQ5IDIzLjI1LTQuMyAzNC41My0xLjk3IDcuMjctNC4zNSAxNC40OS03Ljg2IDIxLjE4LTMuMTggNi42NC02LjY4IDEzLjE2LTEwLjg0IDE5LjI0LTYuOTQgMTAuNDctMTUuNiAxOS44Ny0yNS44MiAyNy4yMi0xMC40OCA3LjY0LTIyLjY0IDEzLjAyLTM1LjQgMTUuMzgtMy41MS42OS03LjA4IDEuMDgtMTAuNjYgMS4yMS0xLjg1LjA2LTMuNzIuMTYtNS41Ni0uMS0uMjgtMi4xNSAwLTQuMzEtLjAxLTYuNDYtLjAzLTMuNzMuMTQtNy40NS4xLTExLjE3LjE5LTcuMDIuMDItMTQuMDUuMjEtMjEuMDcuMDMtMi4zOC0uMDMtNC43Ni4wMy03LjE0LjE3LTUuMDctLjA0LTEwLjE0LjE0LTE1LjIxLjEtMi45OS0uMjQtNi4wNC41MS04Ljk2LjY2LTIuNSAxLjc4LTQuODYgMy4wOS03LjA4IDQuNDYtNy4zMSAxMS4wNi0xMi45NiAxNy42OC0xOC4yNiA1LjM4LTQuMTggMTAuNDctOC43NyAxNS4wMi0xMy44NCA3LjY4LTguMzcgMTQuMTctMTcuODggMTguNzgtMjguMjcgMi41LTUuOTMgNC41Mi0xMi4xIDUuNTUtMTguNDYuODYtNC4zNyAxLjA2LTguODMgMS4wMS0xMy4yNy0uMDItNy44NS0xLjQtMTUuNjUtMy42NC0yMy4xNy0xLjc1LTUuNzMtNC4yNy0xMS4xOC03LjA5LTE2LjQ1LTMuODctNi45My04LjY1LTEzLjMxLTEzLjk2LTE5LjItOS45NC0xMC44NS0yMS43NS0xOS45NC0zNC42LTI3LjEtMS44NS0xLjAyLTMuODQtMS44Mi01LjYzLTIuOTd6bS0xMDAuOCA1OC40NWMuOTgtMS4xOCAxLjk5LTIuMzMgMy4xMi0zLjM4LS42MS45My0xLjI3IDEuODEtMS45NSAyLjY4LTMuMSAzLjg4LTUuNTQgOC4zMS03LjAzIDEzLjA2LS44NyAzLjI3LTEuNjggNi42LTEuNzMgMTAtLjA3IDIuNTItLjA4IDUuMDcuMzIgNy41NyAxLjEzIDcuNjMgNC4zMyAxNC44NSA4Ljc3IDIxLjEyIDIgMi43IDQuMjUgNS4yNyA2LjkyIDcuMzMgMS42MiAxLjI3IDMuNTMgMi4wOSA1LjM0IDMuMDUgMy4xMSAxLjY4IDYuMzIgMy4yMyA5LjA3IDUuNDggMi42NyAyLjA5IDQuNTUgNS4zMyA0LjQgOC43OS0uMDEgNzMuNjcgMCAxNDcuMzQtLjAxIDIyMS4wMiAwIDEuMzUtLjA4IDIuNy4wNCA0LjA0LjEzIDEuNDguODIgMi44MyAxLjQ3IDQuMTUuODYgMS42NiAxLjc4IDMuMzQgMy4xOCA0LjYyLjg1Ljc3IDEuOTcgMS40IDMuMTUgMS4yNCAxLjUtLjIgMi42Ni0xLjM1IDMuNDUtMi41Ny45Ni0xLjUxIDEuNjgtMy4xNiAyLjI4LTQuODUuNzYtMi4xMy40NC00LjQyLjU0LTYuNjMuMTQtNC4wMy0uMDItOC4wNi4xNC0xMi4wOS4wMy01Ljg5LjAzLTExLjc3LjA2LTE3LjY2LjE0LTMuNjIuMDMtNy4yNC4xMS0xMC44Ni4xNS00LjAzLS4wMi04LjA2LjE0LTEyLjA5LjAzLTUuOTkuMDMtMTEuOTguMDctMTcuOTcuMTQtMy42Mi4wMi03LjI0LjExLTEwLjg2LjE0LTMuOTMtLjAyLTcuODYuMTQtMTEuNzguMDMtNS45OS4wMy0xMS45OC4wNi0xNy45Ny4xNi0zLjk0LS4wMS03Ljg4LjE5LTExLjgyLjI5IDEuNDQuMTMgMi45Mi4yMiA0LjM4LjE5IDMuNjEuNDIgNy4yMy43NiAxMC44NC4zMiAzLjQ0LjQ0IDYuODkuODYgMTAuMzIuMzcgMy4xLjUxIDYuMjIuOTUgOS4zMS41NyA0LjA5Ljg3IDguMjEgMS41NCAxMi4yOSAxLjQ2IDkuMDQgMi44MyAxOC4xMSA1LjA5IDI2Ljk5IDEuMTMgNC44MiAyLjQgOS42MSA0IDE0LjMgMi41NCA3LjkgNS43MiAxNS42NyAxMC4zMSAyMi42MiAxLjczIDIuNjQgMy44NyA0Ljk4IDYuMSA3LjIxLjI3LjI1LjU1LjUxLjg4LjcxLjYuMjUgMS4zMS0uMDcgMS43LS41Ny43MS0uODggMS4xNy0xLjk0IDEuNy0yLjkzIDQuMDUtNy44IDguMTgtMTUuNTYgMTIuMzQtMjMuMzEuNy0xLjMxIDEuNDQtMi42MiAyLjU2LTMuNjEgMS43NS0xLjU3IDMuODQtMi42OSA1Ljk4LTMuNjMgMi44OC0xLjIyIDUuOS0yLjE5IDkuMDMtMi40MiA2LjU4LS42MiAxMy4xMS43NSAxOS41NiAxLjg1IDMuNjkuNTggNy40IDEuMTcgMTEuMTMgMS40MSAzLjc0LjEgNy40OC4wNSAxMS4yMS0uMjggOC41NS0uOTIgMTYuOTktMi45NiAyNC45NC02LjI1IDUuMy0yLjI0IDEwLjQ2LTQuODMgMTUuMzEtNy45MyAxMS40Ni03LjIxIDIxLjQ2LTE2LjU3IDMwLjA0LTI3LjAxIDEuMTctMS40MiAyLjI1LTIuOSAzLjQ2LTQuMjgtMS4yIDMuMjQtMi42NyA2LjM3LTQuMTYgOS40OC0xLjI1IDIuOS0yLjg0IDUuNjEtNC4yNyA4LjQyLTUuMTYgOS42My0xMS4wMiAxOC45MS0xNy43NSAyNy41Mi00LjAzIDUuMjEtOC41MyAxMC4wNS0xMy4zMyAxNC41Ny02LjY0IDYuMDUtMTQuMDcgMTEuMzctMjIuNDMgMTQuNzYtOC4yMSAzLjM3LTE3LjMxIDQuNjMtMjYuMDkgMy4yOS0zLjU2LS41OC03LjAxLTEuNjktMTAuNDEtMi44OC0yLjc5LS45Ny01LjM5LTIuMzgtOC4wMy0zLjY5LTMuNDMtMS43MS02LjY0LTMuODEtOS43MS02LjA4IDIuNzEgMy4wNiA1LjY5IDUuODYgOC43IDguNjEgNC4yNyAzLjc2IDguNzQgNy4zMSAxMy42MyAxMC4yMyAzLjk4IDIuNDUgOC4yOSA0LjQgMTIuODQgNS41MSAxLjQ2LjM3IDIuOTYuNDYgNC40NS42LTEuMjUgMS4xLTIuNjMgMi4wNC0zLjk5IDIuOTgtOS42MSA2LjU0LTIwLjAxIDExLjg2LTMwLjY5IDE2LjQzLTIwLjg2IDguNy00My4xNyAxMy45Ny02NS43NCAxNS4zNC00LjY2LjI0LTkuMzIuMzYtMTMuOTguMzYtNC45OC0uMTEtOS45Ny0uMTMtMTQuOTItLjY1LTExLjItLjc2LTIyLjI5LTIuNzMtMzMuMTctNS40My0xMC4zNS0yLjcxLTIwLjU1LTYuMTItMzAuMy0xMC41NS04LjcxLTMuODYtMTcuMTItOC40Mi0yNC45OS0xMy43OS0xLjgzLTEuMzEtMy43NC0yLjUzLTUuMzctNC4wOCA2LjYtMS4xOSAxMy4wMy0zLjM5IDE4Ljk5LTYuNDggNS43NC0yLjg2IDEwLjk5LTYuNjYgMTUuNjMtMTEuMDcgMi4yNC0yLjE5IDQuMjktNC41OSA2LjE5LTcuMDktMy40MyAyLjEzLTYuOTMgNC4xNS0xMC42MiA1Ljc4LTQuNDEgMi4xNi05LjA3IDMuNzctMTMuODEgNS4wMi01LjczIDEuNTItMTEuNzQgMS43My0xNy42MSAxLjE0LTguMTMtLjk1LTE1Ljg2LTQuMjctMjIuNTEtOC45OC00LjMyLTIuOTQtOC4yMi02LjQzLTExLjk2LTEwLjA2LTkuOTMtMTAuMTYtMTguMi0yMS44MS0yNS42Ni0zMy44Ni0zLjk0LTYuMjctNy41My0xMi43NS0xMS4xMi0xOS4yMi0xLjA1LTIuMDQtMi4xNS00LjA1LTMuMTgtNi4xIDIuODUgMi45MiA1LjU3IDUuOTcgOC40MyA4Ljg4IDguOTkgOC45NyAxOC41NiAxNy40NCAyOS4xNiAyNC40OCA3LjU1IDQuOSAxNS42NyA5LjIzIDI0LjU2IDExLjAzIDMuMTEuNzMgNi4zMi40NyA5LjQ3LjgxIDIuNzcuMjggNS41Ni4yIDguMzQuMyA1LjA1LjA2IDEwLjExLjA0IDE1LjE2LS4xNiAzLjY1LS4xNiA3LjI3LS42NiAxMC44OS0xLjA5IDIuMDctLjI1IDQuMTEtLjcxIDYuMTQtMS4yIDMuODgtLjk1IDguMTEtLjk2IDExLjgzLjYxIDQuNzYgMS44NSA4LjQ0IDUuNjQgMTEuMzggOS43MSAyLjE2IDMuMDIgNC4wNiA2LjIyIDUuNjYgOS41OCAxLjE2IDIuNDMgMi40NiA0Ljc5IDMuNTUgNy4yNiAxIDIuMjQgMi4xNSA0LjQyIDMuNDIgNi41Mi42NyAxLjAyIDEuNCAyLjE1IDIuNjIgMi41NSAxLjA2LS43NSAxLjcxLTEuOTEgMi4yOC0zLjAzIDIuMS00LjE2IDMuNDItOC42NSA0Ljg5LTEzLjA1IDIuMDItNi41OSAzLjc4LTEzLjI3IDUuMTktMjAuMDIgMi4yMS05LjI1IDMuMjUtMTguNzIgNC41NC0yOC4xMy41Ni0zLjk4LjgzLTcuOTkgMS4zMS0xMS45Ny44Ny0xMC42NCAxLjktMjEuMjcgMi4yNC0zMS45NC4wOC0xLjg2LjI0LTMuNzEuMjUtNS41Ny4wMS00LjM1LjI1LTguNjkuMjItMTMuMDMtLjAxLTIuMzgtLjAxLTQuNzYgMC03LjEzLjA1LTUuMDctLjItMTAuMTQtLjIyLTE1LjIxLS4yLTYuNjEtLjcxLTEzLjItMS4yOS0xOS43OC0uNzMtNS44OC0xLjU1LTExLjc4LTMuMTItMTcuNTEtMi4wNS03Ljc1LTUuNTktMTUuMDMtOS44LTIxLjgyLTMuMTYtNS4wNy02Ljc5LTkuODgtMTEuMDktMTQuMDMtMy44OC0zLjg2LTguNTgtNy4wOC0xMy45NC04LjQ1LTEuNS0uNDEtMy4wNi0uNDUtNC41OS0uNjQuMDctMi45OS43LTUuOTMgMS4yNi04Ljg1IDEuNTktNy43MSAzLjgtMTUuMyA2Ljc2LTIyLjYgMS41Mi00LjAzIDMuNDEtNy45IDUuMzktMTEuNzIgMy40NS02LjU2IDcuNjItMTIuNzkgMTIuNDYtMTguNDZ6bTMxLjI3IDEuN2MuMzUtLjA2LjcxLS4xMiAxLjA3LS4xOS4xOSAxLjc5LjA5IDMuNTguMSA1LjM3djM4LjEzYy0uMDEgMS43NC4xMyAzLjQ5LS4xNSA1LjIyLS4zNi0uMDMtLjcxLS4wNS0xLjA2LS4wNS0uOTUtMy43NS0xLjcyLTcuNTUtMi42Mi0xMS4zMS0uMzgtMS41My0uNTgtMy4wOS0xLjA3LTQuNTktMS43LS4yNC0zLjQzLS4xNy01LjE1LS4yLTUuMDYtLjAxLTEwLjEzIDAtMTUuMTktLjAxLTEuNjYtLjAxLTMuMzIuMDktNC45OC0uMDMtLjAzLS4zOS0uMjYtLjkxLjE2LTEuMTggMS4yOC0uNjUgMi43Mi0uODggNC4wNi0xLjM1IDMuNDMtMS4xNCA2Ljg4LTIuMTYgMTAuMzEtMy4zMSAxLjM5LS40OCAyLjktLjcyIDQuMTYtMS41NC4wNC0uNTYuMDItMS4xMy0uMDUtMS42OC0xLjIzLS41NS0yLjUzLS44Ny0zLjgxLTEuMjgtMy4xMy0xLjAzLTYuMjktMS45Ni05LjQxLTMuMDItMS43OS0uNjItMy42Ny0xLTUuNDEtMS43OS0uMDMtLjM3LS4wNy0uNzMtLjExLTEuMDkgNS4wOS0uMTkgMTAuMi4wNiAxNS4zLS4xMiAzLjM2LS4xMyA2LjczLjA4IDEwLjA5LS4wNy4xMi0uMzkuMjYtLjc3LjM3LTEuMTYgMS4wOC00Ljk0IDIuMzMtOS44MyAzLjM5LTE0Ljc1em01Ljk3LS4yYy4zNi4wNS43Mi4xMiAxLjA4LjIuOTggMy44NSAxLjczIDcuNzYgMi43MSAxMS42MS4zNiAxLjQyLjU2IDIuODggMS4wMyA0LjI3IDIuNTMuMTggNS4wNy0uMDEgNy42MS4wNSA1LjE2LjEyIDEwLjMzLjEyIDE1LjQ5LjA3Ljc2LS4wMSAxLjUyLjAzIDIuMjguMDgtLjA0LjM2LS4wNy43Mi0uMSAxLjA4LTEuODIuODMtMy43OCAxLjI1LTUuNjcgMS44OS0zLjczIDEuMjMtNy40OCAyLjM5LTExLjIyIDMuNTctLjU3LjE3LTEuMTIuNDItMS42Ny42NC0uMTUuNTUtLjE4IDEuMTItLjEyIDEuNjkuODcuNDggMS44Mi44MSAyLjc3IDEuMDkgNC44OCAxLjUyIDkuNzMgMy4xNCAxNC42MyA0LjYuMzguMTMuNzguMjcgMS4xMy40OS40LjI3LjIzLjc5LjE1IDEuMTgtMS42Ni4xMy0zLjMxLjAzLTQuOTcuMDQtNS4xNy4wMS0xMC4zMy0uMDEtMTUuNS4wMS0xLjYxLjAzLTMuMjItLjAyLTQuODIuMjEtLjUyIDEuNjctLjcyIDMuNDItMS4xNyA1LjExLS45NCAzLjU3LTEuNTIgNy4yNC0yLjU0IDEwLjc4LS4zNi4wMS0uNzEuMDItMS4wNi4wNi0uMjktMS43My0uMTUtMy40OC0uMTUtNS4yMnYtMzguMTNjLjAyLTEuNzgtLjA4LTMuNTguMTEtNS4zN3pNNjUuMDUgMTY4LjMzYzEuMTItMi4xNSAyLjA4LTQuNCAzLjM3LTYuNDYtMS44MiA3LjU2LTIuOTEgMTUuMjctMy42MiAyMy0uOCA3LjcxLS44NSAxNS40OS0uNTQgMjMuMjMgMS4wNSAxOS45NCA1LjU0IDM5LjgzIDE0LjIzIDU3Ljg4IDIuOTkgNS45OSA2LjM1IDExLjgzIDEwLjUgMTcuMTEgNi4xMiA3LjQ3IDEyLjUzIDE0Ljc2IDE5Ljg0IDIxLjA5IDQuOCA0LjEgOS45OSA3Ljc4IDE1LjU0IDEwLjggMy4yNyAxLjY1IDYuNTEgMy4zOSA5Ljk0IDQuNjggNS4wMSAyLjAzIDEwLjE5IDMuNjEgMTUuNDIgNC45NCAzLjgzLjk2IDcuNzggMS40MSAxMS41MiAyLjcxIDUgMS41NyA5LjQ3IDQuNjEgMTMuMDMgOC40MyA0LjkzIDUuMjMgOC4wOSAxMS44NyAxMC4yIDE4LjY3Ljk5IDIuOSAxLjU5IDUuOTEgMi4xNyA4LjkyLjE1Ljc1LjIyIDEuNTIuMTYgMi4yOS02LjUgMi43OC0xMy4yNiA1LjA2LTIwLjI2IDYuMTgtNC4xMS43OC04LjI5Ljk5LTEyLjQ2IDEuMDgtMTAuMjUuMjQtMjAuNDctMS43Ni0zMC4xMi01LjEyLTMuNzQtMS40Mi03LjQ5LTIuODUtMTEuMDMtNC43Mi04LjA2LTMuODQtMTUuNjQtOC43LTIyLjQ2LTE0LjQ2LTIuOTItMi41NS01LjgzLTUuMTMtOC40LTguMDMtOS4xNi05LjgzLTE2LjMtMjEuNDEtMjEuNzktMzMuNjUtMi4zOS01LjU1LTQuNjEtMTEuMTgtNi4zNy0xNi45Ni0xLjE3LTMuOTQtMi4zNi03Ljg5LTMuMjYtMTEuOTEtLjc1LTIuOTQtMS4yMi01Ljk1LTEuODctOC45Mi0uNDYtMi4xNC0uNjktNC4zMi0xLjAzLTYuNDgtLjg1LTUuNDMtMS4yOC0xMC45My0xLjMzLTE2LjQzLjExLTYuMTguMjUtMTIuMzcgMS4wNy0xOC41LjQtMi44Ni42Ny01Ljc0IDEuMTUtOC42Ljk4LTUuNyAyLjE0LTExLjM3IDMuNzEtMTYuOTMgMy4wOS0xMS42NSA3LjQ4LTIyLjk1IDEyLjY5LTMzLjg0em0zNjMuNzMtNi40NGMxLjEgMS42NiAxLjkxIDMuNDggMi43OCA1LjI2IDIuMSA0LjQ1IDQuMjQgOC45IDYuMDIgMTMuNDkgNy42MSAxOC43NiAxMi4zIDM4Ljc5IDEzLjA0IDU5LjA1LjAyIDEuNzYuMDcgMy41Mi4xMSA1LjI5LjEzIDkuNTctMS4yNyAxOS4wOS0zLjE4IDI4LjQ1LS43MyAzLjU5LTEuNTQgNy4xNy0yLjU4IDEwLjY5LTQuMDQgMTQuNzItMTAgMjktMTguNDEgNDEuNzgtOC4yMSAxMi41Ny0xOS4wMSAyMy41NS0zMS44NCAzMS40MS01LjczIDMuNTktMTEuNzkgNi42NC0xOC4wNSA5LjE5LTUuNzggMi4xOS0xMS43MSA0LjAzLTE3LjggNS4xMS02LjQgMS4wNS0xMi45MSAxLjUyLTE5LjQgMS4yMy03LjkyLS40OC0xNS43OC0yLjA3LTIzLjIxLTQuODUtMS45NC0uOC0zLjk0LTEuNDYtNS44NC0yLjMzLS4yMS0xLjUxLjI1LTIuOTkuNTMtNC40NiAxLjE2LTUuNzQgMy4wMy0xMS4zNiA1LjctMTYuNTggMi4zNy00LjUxIDUuNTItOC42NSA5LjQ2LTExLjkgMi40My0yLjA1IDUuMjQtMy42MSA4LjE2LTQuODMgMy41OC0xLjUgNy40Ny0xLjk3IDExLjI0LTIuODMgNy4yMy0xLjcxIDE0LjM3LTMuOTMgMjEuMTUtNyAxMC4zNS00LjY1IDE5LjcxLTExLjM4IDI3LjY1LTE5LjQ2IDEuNTktMS42MSAzLjIzLTMuMTggNC43NC00Ljg3IDMuMzctMy43NiA2LjcxLTcuNTcgOS44NS0xMS41MyA3LjQ4LTEwLjA3IDEyLjgyLTIxLjU5IDE2LjcxLTMzLjQ4IDEuNTgtNS4zIDMuMjEtMTAuNiA0LjIxLTE2LjA1LjYzLTIuODcgMS4wNC01Ljc4IDEuNTItOC42OC44Ny02LjA5IDEuNTktMTIuMjIgMS42OC0xOC4zOC4xMi02LjY1LjE0LTEzLjMyLS41My0xOS45NC0uNzMtNy45OS0xLjg3LTE1Ljk2LTMuNzEtMjMuNzh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU9wZW5jYXJ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyMy4zIDQ0MC43YzAgMjUuMy0yMC4zIDQ1LjYtNDUuNiA0NS42cy00NS44LTIwLjMtNDUuOC00NS42IDIwLjYtNDUuOCA0NS44LTQ1LjhjMjUuNCAwIDQ1LjYgMjAuNSA0NS42IDQ1Ljh6bS0yNTMuOS00NS44Yy0yNS4zIDAtNDUuNiAyMC42LTQ1LjYgNDUuOHMyMC4zIDQ1LjYgNDUuNiA0NS42IDQ1LjgtMjAuMyA0NS44LTQ1LjYtMjAuNS00NS44LTQ1LjgtNDUuOHptMjkxLjctMjcwQzE1OC45IDEyNC45IDgxLjkgMTEyLjEgMCAyNS43YzM0LjQgNTEuNyA1My4zIDE0OC45IDM3My4xIDE0NC4yIDMzMy4zLTUgMTMwIDg2LjEgNzAuOCAxODguOSAxODYuNy0xNjYuNyAzMTkuNC0yMzMuOSAxNy4yLTIzMy45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcGVuaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcxLjUgNDMybC02OCAzMkM4OC41IDQ1My43IDAgMzkyLjUgMCAzMTguMmMwLTcxLjUgODIuNS0xMzEgMTkxLjctMTQ0LjN2NDNjLTcxLjUgMTIuNS0xMjQgNTMtMTI0IDEwMS4zIDAgNTEgNTguNSA5My4zIDEzNS43IDEwM3YtMzQwbDY4LTMzLjJ2Mzg0ek00NDggMjkxbC0xMzEuMy0yOC41IDM2LjgtMjAuN2MtMTkuNS0xMS41LTQzLjUtMjAtNzAtMjQuOHYtNDNjNDYuMiA1LjUgODcuNyAxOS41IDEyMC4zIDM5LjNsMzUtMTkuOEw0NDggMjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcGVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuOSAzMi43Yy0xNzAuMiAwLTI1Mi42IDIyMy44LTE0Ny41IDM1NS4xIDM2LjUgNDUuNCA4OC42IDc1LjYgMTQ3LjUgNzUuNiAzNi4zIDAgNzAuMy0xMS4xIDk5LjQtMzAuNC00My44IDM5LjItMTAxLjkgNjMtMTY1LjMgNjMtMy45IDAtOCAwLTExLjktLjNDMTA0LjYgNDg5LjYgMCAzODEuMSAwIDI0OCAwIDExMSAxMTEgMCAyNDggMGguOGM2My4xLjMgMTIwLjcgMjQuMSAxNjQuNCA2My4xLTI5LTE5LjQtNjMuMS0zMC40LTk5LjMtMzAuNHptMTAxLjggMzk3LjdjLTQwLjkgMjQuNy05MC43IDIzLjYtMTMyLTUuOCA1Ni4yLTIwLjUgOTcuNy05MS42IDk3LjctMTc2LjYgMC04NC43LTQxLjItMTU1LjgtOTcuNC0xNzYuNiA0MS44LTI5LjIgOTEuMi0zMC4zIDEzMi45LTUgMTA1LjkgOTguNyAxMDUuNSAyNjUuNy0xLjIgMzY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPcHRpbk1vbnN0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcyLjYgNDIxLjRjNS42LTkuNSA0LjctMTUuMi01LjQtMTEuNi0zLTQuOS03LTkuNS0xMS4xLTEzLjggMi45LTkuNy0uNy0xNC4yLTEwLjgtOS4yLTQuNi0zLjItMTAuMy02LjUtMTUuOS05LjIgMC0xNS4xLTExLjYtMTEuNi0xNy42LTUuNy0xMC40LTEuNS0xOC43LS4zLTI2LjggNS43LjMtNi41LjMtMTMgLjMtMTkuNyAxMi42IDAgNDAuMi0xMSA0NS45LTM2LjIgMS40LTYuOCAxLjYtMTMuOC0uMy0yMS45LTMtMTMuNS0xNC4zLTIxLjMtMjUuMS0yNS43LS44LTUuOS03LjYtMTQuMy0xNC45LTE1LjlzLTEyLjQgNC45LTE0LjEgMTAuM2MtOC41IDAtMTkuMiAyLjgtMjEuMSA4LjQtNS40LS41LTExLjEtMS40LTE2LjgtMS45IDIuNy0xLjkgNS40LTMuNSA4LjQtNC42IDUuNC05LjIgMTQuNi0xMS40IDI1LjctMTEuNlYyNTZjMTkuNS0uNSA0My01LjkgNTMuOC0xOC4xIDEyLjctMTMuOCAxNC42LTM3LjMgMTIuNC01NS4xLTIuNC0xNy4zLTkuNy0zNy42LTI0LjYtNDguMS04LjQtNS45LTIxLjYtLjgtMjIuNyA5LjUtMi4yIDE5LjYgMS4yIDMwLTM4LjYgMjUuMS0xMC4zLTIzLjgtMjQuNi00NC42LTQyLjctNjBDMzQxIDQ5LjYgMjQyLjkgNTUuNSAxNjYuNCA3MS43YzE5LjcgNC42IDQxLjEgOC42IDU5LjcgMTYuNS0yNi4yIDIuNC01Mi43IDExLjMtNzYuMiAyMy4yLTMyLjggMTctNDQgMjkuOS01Ni43IDQyLjQgMTQuOS0yLjIgMjguOS01LjEgNDMuOC0zLjgtOS43IDUuNC0xOC40IDEyLjItMjYuNSAyMC0yNS44LjktMjMuOC01LjMtMjYuMi0yNS45LTEuMS0xMC41LTE0LjMtMTUuNC0yMi43LTkuNy0yOC4xIDE5LjktMzMuNSA3OS45LTEyLjIgMTAzLjUgMTAuOCAxMi4yIDM1LjEgMTcuMyA1NC45IDE3LjgtLjMgMS4xLS4zIDEuOS0uMyAyLjcgMTAuOC41IDE5LjUgMi43IDI0LjYgMTEuNiAzIDEuMSA1LjcgMi43IDguMSA0LjYtNS40LjUtMTEuMSAxLjQtMTYuNSAxLjktMy4zLTYuNi0xMy43LTguMS0yMS4xLTguMS0xLjYtNS43LTYuNS0xMi4yLTE0LjEtMTAuMy02LjggMS45LTE0LjEgMTAtMTQuOSAxNS45LTIyLjUgOS41LTMwLjEgMjYuOC0yNS4xIDQ3LjYgNS4zIDI0LjggMzMgMzYuMiA0NS45IDM2LjJ2MTkuN2MtNi42LTUtMTQuMy03LjUtMjYuOC01LjctNS41LTUuNS0xNy4zLTEwLjEtMTcuMyA1LjctNS45IDIuNy0xMS40IDUuOS0xNS45IDkuMi05LjgtNC45LTEzLjYtMS43LTExLjEgOS4yLTQuMSA0LjMtNy44IDguNi0xMS4xIDEzLjgtMTAuMi0zLjctMTEgMi4yLTUuNCAxMS42LTEuMSAzLjUtMS42IDctMS45IDEwLjgtLjUgMzEuNiA0NC42IDY0IDczLjUgNjUuMSAxNy4zLjUgMzQuNi04LjQgNDMtMjMuNSAxMTMuMiA0LjkgMjI2LjcgNC4xIDM0MC4yIDAgOC4xIDE1LjEgMjUuNCAyNC4zIDQyLjcgMjMuNSAyOS4yLTEuMSA3NC4zLTMzLjUgNzMuNS02NS4xLjItMy43LS43LTcuMi0xLjctMTAuN3ptLTczLjgtMjU0YzEuMS0zIDIuNC04LjQgMi40LTE0LjYgMC01LjkgNi44LTguMSAxNC4xLS44IDExLjEgMTEuNiAxNC45IDQwLjUgMTMuOCA1MS4xLTQuMS0xMy42LTEzLTI5LTMwLjMtMzUuN3ptLTQuNiA2LjdjMTkuNSA2LjIgMjguNiAyNy42IDI5LjcgNDguOS0xLjEgMi43LTMgNS40LTQuOSA3LjYtNS43IDUuOS0xNS40IDEwLTI2LjIgMTIuMiA0LjMtMjEuMy4zLTQ3LjMtMTIuNy02MyA0LjktLjggMTAuOS0yLjQgMTQuMS01Ljd6bS0yNC4xIDYuOGMxMy44IDExLjkgMjAgMzkuMiAxNC4xIDYzLjUtNC4xLjUtOC4xLjgtMTEuNi44LTEuOS0yMS45LTYuOC00NC0xNC4zLTY0LjYgMy43LjMgOC4xLjMgMTEuOC4zek00Ny41IDIwM2MtMS4xLTEwLjUgMi40LTM5LjUgMTMuOC01MS4xIDctNy4zIDE0LjEtNS4xIDE0LjEuOCAwIDYuMiAxLjQgMTEuNiAyLjQgMTQuNi0xNy4zIDYuOC0yNi4yIDIyLjItMzAuMyAzNS43em05LjcgMjcuNmMtMS45LTIuMi0zLjUtNC45LTQuOS03LjYgMS40LTIxLjMgMTAuMy00Mi43IDI5LjctNDguOSAzLjIgMy4yIDkuMiA0LjkgMTQuMSA1LjctMTMgMTUuNy0xNyA0MS42LTEyLjcgNjMtMTAuOC0yLjItMjAuNS02LTI2LjItMTIuMnptNDcuOSAxNC42Yy00LjEgMC04LjEtLjMtMTIuNy0uOC00LjYtMTguNi0xLjktMzguOSA1LjQtNTN2LjNsMTIuMi01LjFjNC45LTEuOSA5LjctMy44IDE0LjktNC45LTEwLjcgMTkuNy0xNy40IDQxLjMtMTkuOCA2My41em0xODQtMTYyLjdjNDEuOSAwIDc2LjIgMzQgNzYuMiA3NS45IDAgNDIuMi0zNC4zIDc2LjItNzYuMiA3Ni4ycy03Ni4yLTM0LTc2LjItNzYuMmMwLTQxLjggMzQuMy03NS45IDc2LjItNzUuOXptMTE1LjYgMTc0LjNjLS4zIDE3LjgtNyA0OC45LTIzIDU3LTEzLjIgNi42LTYuNS03LjUtMTYuNS01OC4xIDEzLjMuMyAyNi42LjMgMzkuNSAxLjF6bS01NC0xLjZjLjggNC45IDMuOCA0MC4zLTEuNiA0MS45LTExLjYgMy41LTQwIDQuMy01MS4xLTEuMS00LjEtMy00LjYtMzUuOS00LjMtNDEuMXYuM2MxOC45LS4zIDM4LjEtLjMgNTcgMHpNMjc4LjMgMzA5Yy0xMyAzLjUtNDEuNiA0LjEtNTQuNi0xLjYtNi41LTIuNy0zLjgtNDIuNC0xLjktNTEuNiAxOS4yLS41IDM4LjQtLjUgNTcuOC0uOHYuM2MxLjEgOC4zIDMuMyA1MS4yLTEuMyA1My43em0tMTA2LjUtNTEuMWMxMi4yLS44IDI0LjYtMS40IDM2LjgtMS42LTIuNCAxNS40LTMgNDMuNS00LjkgNTIuMi0xLjEgNi44LTQuMyA2LjgtOS43IDQuMy0yMS45LTkuOC0yNy42LTM1LjItMjIuMi01NC45em0tMzUuNCAzMS4zYzcuOC0xLjEgMTUuNy0xLjkgMjMuNS0yLjcgMS42IDYuMiAzLjggMTEuOSA3IDE3LjYgMTAgMTcgNDQgMzUuNyA0NS4xIDcgNi4yIDE0LjkgNDAuOCAxMi4yIDU0LjkgMTAuOCAxNS43LTEuNCAyMy44LTEuNCAyNi44LTE0LjMgMTIuNCA0LjMgMzAuOCA0LjEgNDQgMyAxMS4zLS44IDIwLjgtLjUgMjQuNi04LjkgMS4xIDUuMSAxLjkgMTEuNiA0LjYgMTYuOCAxMC44IDIxLjMgMzcuMyAxLjQgNDYuOC0zMS42IDguNi44IDE3LjYgMS45IDI2LjUgMi43LS40IDEuMy0zLjggNy4zIDcuMyAxMS42LTQ3LjYgNDctOTUuNyA4Ny44LTE2My4yIDEwNy02My4yLTIwLjgtMTEyLjEtNTkuNS0xNTUuOS0xMDYuNSA5LjYtMy40IDEwLjQtOC44IDgtMTIuNXptLTIxLjYgMTcyLjVjLTMuOCAxNy44LTIxLjkgMjkuNy0zOS43IDI4LjktMTkuMi0uOC00Ni41LTE3LTU5LjItMzYuNS0yLjctMzEuMSA0My44LTYxLjMgNjYuMi01NC42IDE0LjkgNC4zIDI3LjggMzAuOCAzMy41IDU0IDAgMy0uMyA1LjctLjggOC4yem0tOC43LTY2Yy0uNS0xMy41LS41LTI3LS4zLTQwLjVoLjNjMi43LTEuNiA1LjctMy44IDcuOC02LjUgNi41LTEuNiAxMy01LjEgMTUuMS05LjIgMy4zLTcuMS03LTcuNS01LjQtMTIuNCAyLjctMS4xIDUuNy0yLjIgNy44LTMuNSAyOS4yIDI5LjIgNTguNiA1Ni41IDk3LjMgNzctMzYuOCAxMS4zLTcyLjQgMjcuNi0xMDUuOSA0Ny0xLjItMTguNi03LjctMzUuOS0xNi43LTUxLjl6bTMzNy42IDY0LjZjLTEwMyAzLjUtMjA2LjIgNC4xLTMwOS40IDAgMCAuMyAwIC4zLS4zLjN2LS4zaC4zYzM1LjEtMjEuNiA3Mi4yLTM5LjIgMTEyLjQtNTAuOCAxMS42IDUuMSAyMyA5LjUgMzQuOSAxMy4yIDIuMi44IDIuMi44IDQuMyAwIDE0LjMtNC4xIDI4LjQtOS4yIDQyLjItMTUuNCA0MS41IDExLjcgNzguOCAzMS43IDExNS42IDUzem0xMC41LTEyLjRjLTM1LjktMTkuNS03My0zNS45LTExMS45LTQ3LjYgMzguMS0yMCA3MS45LTQ3LjMgMTAzLjUtNzYuNyAyLjIgMS40IDQuNiAyLjQgNy42IDMuMiAwIC44LjMgMS45LjUgMi40LTQuNiAyLjctNy44IDYuMi01LjkgMTAuMyAyLjIgMy44IDguNiA3LjYgMTUuMSA4LjkgMi40IDIuNyA1LjEgNS4xIDguMSA2LjggMCAxMy44LS4zIDI3LjYtLjggNDEuM2wuMy0uM2MtOS4zIDE1LjktMTUuNSAzNy0xNi41IDUxLjd6bTEwNS45IDYuMmMtMTIuNyAxOS41LTQwIDM1LjctNTkuMiAzNi41LTE5LjMuOS00MC41LTEzLjItNDAuNS0zNyA1LjctMjMuMiAxOC45LTQ5LjcgMzMuNS01NCAyMi43LTYuOSA2OS4yIDIzLjQgNjYuMiA1NC41ek0zNzIuOSA3NS4yYy0zLjgtNzIuMS0xMDAuOC03OS43LTEyNi0yMy41IDQ0LjYtMjQuMyA5MC4zLTE1LjcgMTI2IDIzLjV6TTc0LjggNDA3LjFjLTE1LjcgMS42LTQ5LjUgMjUuNC00OS41IDQzLjIgMCAxMS42IDE1LjcgMTkuNSAzMi4yIDE0LjkgMTIuMi0zLjIgMzEuMS0xNy42IDM1LjktMjcuMyA2LTExLjYtMy43LTMyLjctMTguNi0zMC44em0yMTUuOS0xNzYuMmMyOC42IDAgNTEuOS0yMS42IDUxLjktNDguNCAwLTM2LjEtNDAuNS01OC4xLTcyLjItNDQuMyA5LjUgMyAxNi41IDExLjYgMTYuNSAyMS42IDAgMjMuMy0zMy4zIDMyLTQ2LjUgMTEuMy03LjMgMzQuMSAxOS40IDU5LjggNTAuMyA1OS44ek02OCA0NzQuMWMuNSA2LjUgMTIuMiAxMi43IDIxLjYgOS41IDYuOC0yLjcgMTQuNi0xMC41IDE3LjMtMTYuMiAzLTctMS4xLTIwLTkuNy0xOC40LTguOSAxLjYtMjkuNyAxNi43LTI5LjIgMjUuMXptNDMzLjItNjdjLTE0LjktMS45LTI0LjYgMTkuMi0xOC45IDMwLjggNC45IDkuNyAyNC4xIDI0LjEgMzYuMiAyNy4zIDE2LjUgNC42IDMyLjItMy4yIDMyLjItMTQuOSAwLTE3LjgtMzMuOC00MS42LTQ5LjUtNDMuMnpNNDc4LjggNDQ5Yy04LjQtMS42LTEyLjQgMTEuMy05LjUgMTguNCAyLjQgNS43IDEwLjMgMTMuNSAxNy4zIDE2LjIgOS4yIDMuMiAyMS4xLTMgMjEuMy05LjUuOS04LjQtMjAuMi0yMy41LTI5LjEtMjUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3JjaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0Ljc1IDE4OC4xOWgtNDUuOTJWMzQyaDQ3LjQ3YzY3LjYyIDAgODMuMTItNTEuMzQgODMuMTItNzYuOTEgMC00MS42NC0yNi41NC03Ni45LTg0LjY3LTc2Ljl6TTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bS04MC43OSAzNjAuNzZoLTI5Ljg0di0yMDcuNWgyOS44NHptLTE0LjkyLTIzMS4xNGExOS41NyAxOS41NyAwIDEgMSAxOS41Ny0xOS41NyAxOS42NCAxOS42NCAwIDAgMS0xOS41NyAxOS41N3pNMzAwIDM2OWgtODFWMTYxLjI2aDgwLjZjNzYuNzMgMCAxMTAuNDQgNTQuODMgMTEwLjQ0IDEwMy44NUM0MTAgMzE4LjM5IDM2OC4zOCAzNjkgMzAwIDM2OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT3NpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjY2LjQ0QzEwLjMgMTMwLjY0IDEwNS40IDM0IDIyMS44IDE4LjM0YzEzOC44LTE4LjYgMjU1LjYgNzUuOCAyNzggMjAxLjEgMjEuMyAxMTguOC00NCAyMzAtMTUxLjYgMjc0LTkuMyAzLjgtMTQuNCAxLjctMTgtNy43cS0yNi43LTY5LjQ1LTUzLjQtMTM5Yy0zLjEtOC4xLTEtMTMuMiA3LTE2LjggMjQuMi0xMSAzOS4zLTI5LjQgNDMuMy01NS44YTcxLjQ3IDcxLjQ3IDAgMCAwLTY0LjUtODIuMmMtMzktMy40LTcxLjggMjMuNy03Ny41IDU5LjctNS4yIDMzIDExLjEgNjMuNyA0MS45IDc3LjcgOS42IDQuNCAxMS41IDguNiA3LjggMTguNHEtMjYuODUgNjkuOS01My43IDEzOS45Yy0yLjYgNi45LTguMyA5LjMtMTUuNSA2LjUtNTIuNi0yMC4zLTEwMS40LTYxLTEzMC44LTExOS0yNC45LTQ5LjItMjUuMi04Ny43LTI2LjgtMTA4Ljd6bTIwLjktMS45Yy40IDYuNi42IDE0LjMgMS4zIDIyLjEgNi4zIDcxLjkgNDkuNiAxNDMuNSAxMzEgMTgzLjEgMy4yIDEuNSA0LjQuOCA1LjYtMi4zcTIyLjM1LTU4LjY1IDQ1LTExNy4zYzEuMy0zLjMuNi00LjgtMi40LTYuNy0zMS42LTE5LjktNDcuMy00OC41LTQ1LjYtODYgMS0yMS42IDkuMy00MC41IDIzLjgtNTYuMyAzMC0zMi43IDc3LTM5LjggMTE1LjUtMTcuNmE5MS42NCA5MS42NCAwIDAgMSA0NS4yIDkwLjRjLTMuNiAzMC42LTE5LjMgNTMuOS00NS43IDY5LjgtMi43IDEuNi0zLjUgMi45LTIuMyA2cTIyLjggNTguOCA0NS4yIDExNy43YzEuMiAzLjEgMi40IDMuOCA1LjYgMi4zIDM1LjUtMTYuNiA2NS4yLTQwLjMgODguMS03MiAzNC44LTQ4LjIgNDkuMS0xMDEuOSA0Mi4zLTE2MS0xMy43LTExNy41LTExOS40LTIxNC44LTI1NS41LTE5OC0xMDYuMSAxMy0xOTUuMyAxMDIuNS0xOTcuMSAyMjUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFnZTQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDUwNEMxMTEgNTA0IDAgMzkzIDAgMjU2UzExMSA4IDI0OCA4YzIwLjkgMCA0MS4zIDIuNiA2MC43IDcuNUw0Mi4zIDM5MkgyNDh2MTEyem0wLTE0My42VjE0Ni44TDk4LjYgMzYwLjRIMjQ4em05NiAzMS42djkyLjdjNDUuNy0xOS4yIDg0LjUtNTEuNyAxMTEuNC05Mi43SDM0NHptNTcuNC0xMzguMmwtMjEuMiA4LjQgMjEuMiA4LjN2LTE2Ljd6bS0yMC4zIDU0LjVjLTYuNyAwLTggNi4zLTggMTIuOXY3LjdoMTYuMnYtMTBjMC01LjktMi4zLTEwLjYtOC4yLTEwLjZ6TTQ5NiAyNTZjMCAzNy4zLTguMiA3Mi43LTIzIDEwNC40SDM0NFYyNy4zQzQzMy4zIDY0LjggNDk2IDE1My4xIDQ5NiAyNTZ6TTM2MC40IDE0My42aDY4LjJWOTZoLTEzLjl2MzIuNmgtMTMuOVY5OWgtMTMuOXYyOS42aC0xMi43Vjk2aC0xMy45djQ3LjZ6bTY4LjEgMTg1LjNINDAydi0xMWMwLTE1LjQtNS42LTI1LjItMjAuOS0yNS4yLTE1LjQgMC0yMC43IDEwLjYtMjAuNyAyNS45djI1LjNoNjguMnYtMTV6bTAtMTAzbC02OC4yIDI5LjdWMjY4bDY4LjIgMjkuNXYtMTYuNmwtMTQuNC01Ljd2LTI2LjVsMTQuNC01Ljl2LTE2Ljl6bS00LjgtNjguNWgtMzUuNlYxODRINDAydi0xMi4yaDExYzguNiAxNS44IDEuMyAzNS4zLTE4LjYgMzUuMy0yMi41IDAtMjguMy0yNS4zLTE1LjUtMzcuN2wtMTEuNi0xMC42Yy0xNi4yIDE3LjUtMTIuMiA2My45IDI3LjEgNjMuOSAzNCAwIDQ0LjctMzUuOSAyOS4zLTY1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhZ2VsaW5lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMzEyLjdjLTU1LjEgMTM2LjctMTg3LjEgNTQtMTg3LjEgNTQtNDAuNSA4MS44LTEwNy40IDEzNC40LTE4NC42IDEzNC43LTE2LjEgMC0xNi42LTI0LjQgMC0yNC40IDY0LjQtLjMgMTIwLjUtNDIuNyAxNTcuMi0xMTAuMS00MS4xIDE1LjktMTE4LjYgMjcuOS0xNjEuNi04Mi4yIDEwOS00NC45IDE1OS4xIDExLjIgMTc4LjMgNDUuNSA5LjktMjQuNCAxNy01MC45IDIxLjYtNzkuNyAwIDAtMTM5LjcgMjEuOS0xNDkuNS05OC4xIDExOS4xLTQ3LjkgMTUyLjYgNzYuNyAxNTIuNiA3Ni43IDEuNi0xNi43IDMuMy01Mi42IDMuMy01My40IDAgMC0xMDYuMy03My43LTM4LjEtMTY1LjIgMTI0LjYgNDMgNjEuNCAxNjIuNCA2MS40IDE2Mi40LjUgMS42LjUgMjMuOCAwIDMzLjQgMCAwIDQ1LjItODkgMTM2LjQtNTcuNS00LjIgMTM0LTE0MS45IDEwNi40LTE0MS45IDEwNi40LTQuNCAyNy40LTExLjIgNTMuNC0yMCA3Ny41IDAgMCA4My05MS44IDE3Mi0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFsZmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NC45IDE5My45YzAtNDcuNC01NS4yLTQ0LjItOTUuNC0yOS44LTEuMyAzOS40LTIuNSA4MC43LTMgMTE5LjguNyAyLjggMi42IDYuMiAxNS4xIDYuMiAzNi44IDAgODMuNC00Mi44IDgzLjMtOTYuMnptLTE5NC41IDcyLjJjLjIgMCA2LjUtMi43IDExLjItMi43IDI2LjYgMCAyMC43IDQ0LjEtMTQuNCA0NC4xLTIxLjUgMC0zNy4xLTE4LjEtMzcuMS00MyAwLTQyIDQyLjktOTUuNiAxMDAuNy0xMjYuNSAxLTEyLjQgMy0yMiAxMC41LTI4LjIgMTEuMi05IDI2LjYtMy41IDI5LjUgMTEuMSA3Mi4yLTIyLjIgMTM1LjIgMSAxMzUuMiA3MiAwIDc3LjktNzkuMyAxNTIuNi0xNDAuMSAxMzguMi0uMSAzOS40LjkgNzQuNCAyLjcgMTAwdi4yYy4yIDMuNC42IDEyLjUtNS4zIDE5LjEtOS42IDEwLjYtMzMuNCAxMC0zNi40LTIyLjMtNC4xLTQ0LjQuMi0yMDYuMSAxLjQtMjQyLjUtMjEuNSAxNS01OC41IDUwLjMtNTguNSA3NS45LjIgMi41LjQgNCAuNiA0LjZ6TTggMTgxLjFzLS4xIDM3LjQgMzguNCAzNy40aDMwbDIyLjQgMjE3LjJzMCA0NC4zIDQ0LjcgNDQuM2gyODguOXM0NC43LS40IDQ0LjctNDQuM2wyMi40LTIxNy4yaDMwczM4LjQgMS4yIDM4LjQtMzcuNGMwIDAgLjEtMzcuNC0zOC40LTM3LjRoLTMwLjFjLTcuMy0yNS42LTMwLjItNzQuMy0xMTkuNC03NC4zaC0yOFY1MC4zcy0yLjctMTguNC0yMS4xLTE4LjRoLTg1LjhzLTIxLjEgMC0yMS4xIDE4LjR2MTkuMWgtMjguMXMtMTA1IDQuMi0xMjAuNSA3NC4zaC0yOVM4IDE0Mi41IDggMTgxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhdHJlb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDE5NC44YzAgMTAxLjMtODIuNCAxODMuOC0xODMuOCAxODMuOC0xMDEuNyAwLTE4NC40LTgyLjQtMTg0LjQtMTgzLjggMC0xMDEuNiA4Mi43LTE4NC4zIDE4NC40LTE4NC4zQzQyOS42IDEwLjUgNTEyIDkzLjIgNTEyIDE5NC44ek0wIDUwMS41aDkwdi00OTFIMHY0OTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBheXBhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTEuNCAyOTUuOWMtMy41IDE5LjItMTcuNCAxMDguNy0yMS41IDEzNC0uMyAxLjgtMSAyLjUtMyAyLjVIMTIuM2MtNy42IDAtMTMuMS02LjYtMTIuMS0xMy45TDU4LjggNDYuNmMxLjUtOS42IDEwLjEtMTYuOSAyMC0xNi45IDE1Mi4zIDAgMTY1LjEtMy43IDIwNCAxMS40IDYwLjEgMjMuMyA2NS42IDc5LjUgNDQgMTQwLjMtMjEuNSA2Mi42LTcyLjUgODkuNS0xNDAuMSA5MC4zLTQzLjQuNy02OS41LTctNzUuMyAyNC4yek0zNTcuMSAxNTJjLTEuOC0xLjMtMi41LTEuOC0zIDEuMy0yIDExLjQtNS4xIDIyLjUtOC44IDMzLjYtMzkuOSAxMTMuOC0xNTAuNSAxMDMuOS0yMDQuNSAxMDMuOS02LjEgMC0xMC4xIDMuMy0xMC45IDkuNC0yMi42IDE0MC40LTI3LjEgMTY5LjctMjcuMSAxNjkuNy0xIDcuMSAzLjUgMTIuOSAxMC42IDEyLjloNjMuNWM4LjYgMCAxNS43LTYuMyAxNy40LTE0LjkuNy01LjQtMS4xIDYuMSAxNC40LTkxLjMgNC42LTIyIDE0LjMtMTkuNyAyOS4zLTE5LjcgNzEgMCAxMjYuNC0yOC44IDE0Mi45LTExMi4zIDYuNS0zNC44IDQuNi03MS40LTIzLjgtOTIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVubnlBcmNhZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIxLjkxIDE2NC4yN2MtNC40OSAxOS40NS0xLjQgNi4wNi0xNS4xIDY1LjI5bDM5LjczLTEwLjYxYy0yMi4zNC00OS42MS0xNy4yOS0zOC40MS0yNC42My01NC42OHptLTIwNi4wOSA1MS4xMWMtMjAuMTkgNS40LTExLjMxIDMuMDMtMzkuNjMgMTAuNThsNC40NiA0Ni4xOWMyOC4xNy03LjU5IDIwLjYyLTUuNTcgMzQuODItOS4zNCA0Mi4zLTkuNzkgMzIuODUtNTYuNDIuMzUtNDcuNDN6bTMyNi4xNi0yNi4xOWwtNDUuNDctOTkuMmMtNS42OS0xMi4zNy0xOS40Ni0xOC44NC0zMi42Mi0xNS4zMy03MC4yNyAxOC43NS0zOC43MiAxMC4zMi0xMzUuNTkgMzYuMjNhMjcuNjE4IDI3LjYxOCAwIDAgMC0xOC44OSAxNy40MUMxNDQuMjYgMTEzLjI3IDAgMTUzLjc1IDAgMjI2LjY3YzAgMzMuNSAzMC42NyA2Ny4xMSA4MC45IDk1LjM3bDEuNzQgMTcuODhhMjcuODkxIDI3Ljg5MSAwIDAgMC0xNy43NyAyOC42N2w0LjMgNDQuNDhjMS4zOSAxNC4zMSAxMy40MyAyNS4yMSAyNy44IDI1LjIgNS4xOC0uMDEtMy4wMSAxLjc4IDEyMi41My0zMS43NiAxMi41Ny0zLjM3IDIxLjEyLTE1LjAyIDIwLjU4LTI4LjAyIDIxNi41OSA0NS41IDQwMS45OS01Ljk4IDM5OS44OS04NC44My4wMS0yOC4xNS0yMi4xOS02Ni41Ni05Ny45OS0xMDQuNDd6TTI1NS4xNCAyOTguM2wtMjEuOTEgNS44OC00OC40NCAxMi45MSAyLjQ2IDIzLjU1IDIwLjUzLTUuNTEgNC41MSA0NC41MS0xMTUuMzEgMzAuNzgtNC4zLTQ0LjUyIDIwLjAyLTUuMzUtMTEuMTEtMTE0LjY0LTIwLjEyIDUuMzktNC4zNS00NC41YzE3OC4xNS00Ny41NCAxNzAuMTgtNDYuNDIgMTg2LjIyLTQ2LjY1IDU2LjY2LTEuMTMgNjQuMTUgNzEuODQgNDIuNTUgMTA0LjQzYTg2LjcgODYuNyAwIDAgMS01MC43NSAzMy43MnptMTk5LjE4IDE2LjYybC0zLjg5LTM5LjQ5IDE0LjktMy45OC02LjYxLTE0LjY4LTU3Ljc2IDE1LjQyLTQuMSAxNy41NCAxOS4yLTUuMTIgNC4wNSAzOS41NC0xMTIuODUgMzAuMDctNC40Ni00NC40MyAyMC45OS01LjU5IDMzLjA4LTEyNi40Ny0xNy4xNSA0LjU2LTQuMi00NC40OGM5My4zNi0yNC45OSA2NS4wMS0xNy40MSAxMzUuNTktMzYuMjRsNjYuNjcgMTQ1LjQ3IDIwLjc5LTUuNTYgNC4zIDQ0LjQ4LTEwOC41NSAyOC45NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyYnl0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDUuMzE0LDI4NC41NzhIMjQ2LjZWMzgzLjNoNTguNzExcTI0LjQyMywwLDM4LjE5My0xMy43N3QxMy43Ny0zNi4xMXEwLTIxLjgyNi0xNC4wMzItMzUuMzM1VDMwNS4zMTQsMjg0LjU3OFpNMTQ5LjQzNSwxMjguN0g5MC43MjR2OTguNzIzaDU4LjcxMXEyNC40MiwwLDM4LjE5LTEzLjc3M3QxMy43Ny0zNi4xMDdxMC0yMS44MjYtMTQuMDI5LTM1LjMzOFQxNDkuNDM1LDEyOC43Wk0zNjYuNjQ3LDMySDgxLjM1M0E4MS40NDUsODEuNDQ1LDAsMCwwLDAsMTEzLjM1MlYzOTguNjQ3QTgxLjQ0NSw4MS40NDUsMCwwLDAsODEuMzUzLDQ4MEgzNjYuNjQ3QTgxLjQ0NSw4MS40NDUsMCwwLDAsNDQ4LDM5OC42NDdWMTEzLjM1MkE4MS40NDUsODEuNDQ1LDAsMCwwLDM2Ni42NDcsMzJabTYzLjYzNSwzNjYuNjQ3YTYzLjcwNiw2My43MDYsMCwwLDEtNjMuNjM1LDYzLjYzNUg4MS4zNTNhNjMuNzA2LDYzLjcwNiwwLDAsMS02My42MzUtNjMuNjM1VjExMy4zNTJBNjMuNzA2LDYzLjcwNiwwLDAsMSw4MS4zNTMsNDkuNzE4SDM2Ni42NDdhNjMuNzA2LDYzLjcwNiwwLDAsMSw2My42MzUsNjMuNjM0Wk0zMDUuMzE0LDEyOC43SDI0Ni42djk4LjcyM2g1OC43MTFxMjQuNDIzLDAsMzguMTkzLTEzLjc3M3QxMy43Ny0zNi4xMDdxMC0yMS44MjYtMTQuMDMyLTM1LjMzOFQzMDUuMzE0LDEyOC43WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJpc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcwIDYzLjZDMzMxLjQgMjIuNiAyODAuNSAwIDIyNi42IDAgMTExLjkgMCAxOC41IDk2LjIgMTguNSAyMTQuNGMwIDc1LjEgNTcuOCAxNTkuOCA4Mi43IDE5Mi43QzEzNy44IDQ1NS41IDE5Mi42IDUxMiAyMjYuNiA1MTJjNDEuNiAwIDExMi45LTk0LjIgMTIwLjktMTA1IDI0LjYtMzMuMSA4Mi0xMTguMyA4Mi0xOTIuNiAwLTU2LjUtMjEuMS0xMTAuMS01OS41LTE1MC44ek0yMjYuNiA0OTMuOWMtNDIuNSAwLTE5MC0xNjcuMy0xOTAtMjc5LjQgMC0xMDcuNCA4My45LTE5Ni4zIDE5MC0xOTYuMyAxMDAuOCAwIDE4NC43IDg5IDE4NC43IDE5Ni4zLjEgMTEyLjEtMTQ3LjQgMjc5LjQtMTg0LjcgMjc5LjR6TTMzOCAyMDYuOGMwIDU5LjEtNTEuMSAxMDkuNy0xMTAuOCAxMDkuNy0xMDAuNiAwLTE1MC43LTEwOC4yLTkyLjktMTgxLjh2LjRjMCAyNC41IDIwLjEgNDQuNCA0NC44IDQ0LjQgMjQuNyAwIDQ0LjgtMTkuOSA0NC44LTQ0LjQgMC0xOC4yLTExLjEtMzMuOC0yNi45LTQwLjcgNzYuNi0xOS4yIDE0MSAzOS4zIDE0MSAxMTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhhYnJpY2F0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIzIDI2Mi4xbC0uMS0xM3MyMS43LTE5LjggMjEuMS0yMS4ybC05LjUtMjBjLS42LTEuNC0yOS41LS41LTI5LjUtLjVsLTkuNC05LjNzLjItMjguNS0xLjItMjkuMWwtMjAuMS05LjJjLTEuNC0uNi0yMC43IDIxLTIwLjcgMjFsLTEzLjEtLjJzLTIwLjUtMjEuNC0yMS45LTIwLjhsLTIwIDguM2MtMS40LjUuMiAyOC45LjIgMjguOWwtOS4xIDkuMXMtMjkuMi0uOS0yOS43LjRsLTguMSAxOS44Yy0uNiAxLjQgMjEgMjEgMjEgMjFsLjEgMTIuOXMtMjEuNyAxOS44LTIxLjEgMjEuMmw5LjUgMjBjLjYgMS40IDI5LjUuNSAyOS41LjVsOS40IDkuM3MtLjIgMzEuOCAxLjIgMzIuM2wyMC4xIDguM2MxLjQuNiAyMC43LTIzLjUgMjAuNy0yMy41bDEzLjEuMnMyMC41IDIzLjggMjEuOCAyMy4zbDIwLTcuNWMxLjQtLjYtLjItMzIuMS0uMi0zMi4xbDkuMS05LjFzMjkuMi45IDI5LjctLjVsOC4xLTE5LjhjLjctMS4xLTIwLjktMjAuNy0yMC45LTIwLjd6bS00NC45LTguN2MuNyAxNy4xLTEyLjggMzEuNi0zMC4xIDMyLjQtMTcuMy44LTMyLjEtMTIuNS0zMi44LTI5LjYtLjctMTcuMSAxMi44LTMxLjYgMzAuMS0zMi4zIDE3LjMtLjggMzIuMSAxMi41IDMyLjggMjkuNXptMjAxLjItMzcuOWwtOTctOTctLjEuMWMtNzUuMS03My4zLTE5NS40LTcyLjgtMjY5LjggMS42LTUwLjkgNTEtMjcuOCAyNy45LTk1LjcgOTUuMy0yMi4zIDIyLjMtMjIuMyA1OC43IDAgODEgNjkuOSA2OS40IDQ2LjQgNDYgOTcuNCA5N2wuMS0uMWM3NS4xIDczLjMgMTk1LjQgNzIuOSAyNjkuOC0xLjYgNTEtNTAuOSAyNy45LTI3LjkgOTUuMy05NS4zIDIyLjMtMjIuMyAyMi4zLTU4LjcgMC04MXpNMTQwLjQgMzYzLjhjLTU5LjYtNTkuNS01OS42LTE1NiAwLTIxNS41IDU5LjUtNTkuNiAxNTYtNTkuNSAyMTUuNiAwIDU5LjUgNTkuNSA1OS42IDE1NiAwIDIxNS42LTU5LjYgNTkuNS0xNTYgNTkuNC0yMTUuNi0uMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvZW5peEZyYW1ld29yayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuOSAzNDQuM2MzLjgtLjEgMjIuOC0xLjQgMjUuNi0yLjItMi40LTIuNi00My42LTEtNjgtNDkuNi00LjMtOC42LTcuNS0xNy42LTYuNC0yNy42IDIuOS0yNS41IDMyLjktMzAgNTItMTguNSAzNiAyMS42IDYzLjMgOTEuMyAxMTMuNyA5Ny41IDM3IDQuNSA4NC42LTE3IDEwOC4yLTQ1LjQtLjYtLjEtLjgtLjItMS0uMS0uNC4xLS44LjItMS4xLjMtMzMuMyAxMi4xLTk0LjMgOS43LTEzNC43LTE0LjgtMzcuNi0yMi44LTUzLjEtNTguNy01MS44LTc0LjYgMS44LTIxLjMgMjIuOS0yMy4yIDM1LjktMTkuNiAxNC40IDMuOSAyNC40IDE3LjYgMzguOSAyNy40IDE1LjYgMTAuNCAzMi45IDEzLjcgNTEuMyAxMC4zIDE0LjktMi43IDM0LjQtMTIuMyAzNi41LTE0LjUtMS4xLS4xLTEuOC0uMS0yLjUtLjItNi4yLS42LTEyLjQtLjgtMTguNS0xLjdDMjc5LjggMTk0LjUgMjYyLjEgNDcuNCAxMzguNSAzNy45IDk0LjIgMzQuNSAzOS4xIDQ2IDIuMiA3Mi45Yy0uOC42LTEuNSAxLjItMi4yIDEuOC4xLjIuMS4zLjIuNS44IDAgMS42LS4xIDIuNC0uMiA2LjMtMSAxMi41LS44IDE4LjcuMyAyMy44IDQuMyA0Ny43IDIzLjEgNTUuOSA3Ni41IDUuMyAzNC4zLS43IDUwLjggOCA4Ni4xIDE5IDc3LjEgOTEgMTA3LjYgMTI3LjcgMTA2LjR6TTc1LjMgNjQuOWMtLjktMS0uOS0xLjItMS4zLTIgMTIuMS0yLjYgMjQuMi00LjEgMzYuNi00LjgtMS4xIDE0LjctMjIuMiAyMS4zLTM1LjMgNi44em0xOTYuOSAzNTAuNWMtNDIuOCAxLjItOTItMjYuNy0xMjMuNS02MS40LTQuNi01LTE2LjgtMjAuMi0xOC42LTIzLjRsLjQtLjRjNi42IDQuMSAyNS43IDE4LjYgNTQuOCAyNyAyNC4yIDcgNDguMSA2LjMgNzEuNi0zLjMgMjIuNy05LjMgNDEtLjUgNDMuMSAyLjktMTguNSAzLjgtMjAuMSA0LjQtMjQgNy45LTUuMSA0LjQtNC42IDExLjcgNyAxNy4yIDI2LjIgMTIuNCA2My0yLjggOTcuMiAyNS40IDIuNCAyIDguMSA3LjggMTAuMSAxMC43LS4xLjItLjMuMy0uNC41LTQuOC0xLjUtMTYuNC03LjUtNDAuMi05LjMtMjQuNy0yLTQ2LjMgNS4zLTc3LjUgNi4yem0xNzQuOC0yNTJjMTYuNC01LjIgNDEuMy0xMy40IDY2LjUtMy4zIDE2LjEgNi41IDI2LjIgMTguNyAzMi4xIDM0LjYgMy41IDkuNCA1LjEgMTkuNyA1LjEgMjguNy0uMiAwLS40IDAtLjYuMS0uMi0uNC0uNC0uOS0uNS0xLjMtNS0yMi0yOS45LTQzLjgtNjcuNi0yOS45LTUwLjIgMTguNi0xMzAuNCA5LjctMTc2LjktNDgtLjctLjktMi40LTEuNy0xLjMtMy4yLjEtLjIgMi4xLjYgMyAxLjMgMTguMSAxMy40IDM4LjMgMjEuOSA2MC4zIDI2LjIgMzAuNSA2LjEgNTQuNiAyLjkgNzkuOS01LjJ6bTEwMi43IDExNy41Yy0zMi40LjItMzMuOCA1MC4xLTEwMy42IDY0LjQtMTguMiAzLjctMzguNyA0LjYtNDQuOSA0LjJ2LS40YzIuOC0xLjUgMTQuNy0yLjYgMjkuNy0xNi42IDcuOS03LjMgMTUuMy0xNS4xIDIyLjgtMjIuOSAxOS41LTIwLjIgNDEuNC00Mi4yIDgxLjktMzkgMjMuMSAxLjggMjkuMyA4LjIgMzYuMSAxMi43LjMuMi40LjUuNy45LS41IDAtLjcuMS0uOSAwLTctMi43LTE0LjMtMy4zLTIxLjgtMy4zem0tMTIuMy0yNC4xYy0uMS4yLS4xLjQtLjIuNi0yOC45LTQuNC00OC03LjktNjguNSA0LTE3IDkuOS0zMS40IDIwLjUtNjIgMjQuNC0yNy4xIDMuNC00NS4xIDIuNC02Ni4xLTgtLjMtLjItLjYtLjQtMS0uNiAwLS4yLjEtLjMuMS0uNSAyNC45IDMuOCAzNi40IDUuMSA1NS41LTUuOCAyMi4zLTEyLjkgNDAuMS0yNi42IDcxLjMtMzEgMjkuNi00LjEgNTEuMyAyLjUgNzAuOSAxNi45ek0yNjguNiA5Ny4zYy0uNi0uNi0xLjEtMS4yLTIuMS0yLjMgNy42IDAgMjkuNy0xLjIgNTMuNCA4LjQgMTkuNyA4IDMyLjIgMjEgNTAuMiAzMi45IDExLjEgNy4zIDIzLjQgOS4zIDM2LjQgOC4xIDQuMy0uNCA4LjUtMS4yIDEyLjgtMS43LjQtLjEuOSAwIDEuNS4zLS42LjQtMS4yLjktMS44IDEuMi04LjEgNC0xNi43IDYuMy0yNS42IDcuMS0yNi4xIDIuNi01MC4zLTMuNy03My40LTE1LjQtMTkuMy05LjktMzYuNC0yMi45LTUxLjQtMzguNnpNNjQwIDMzNS43Yy0zLjUgMy4xLTIyLjcgMTEuNi00Mi43IDUuMy0xMi4zLTMuOS0xOS41LTE0LjktMzEuNi0yNC4xLTEwLTcuNi0yMC45LTcuOS0yOC4xLTguNC42LS44LjktMS4yIDEuMi0xLjQgMTQuOC05LjIgMzAuNS0xMi4yIDQ3LjMtNi41IDEyLjUgNC4yIDE5LjIgMTMuNSAzMC40IDI0LjIgMTAuOCAxMC40IDIxIDkuOSAyMy4xIDEwLjUuMS0uMS4yIDAgLjQuNHptLTIxMi41IDEzN2MyLjIgMS4yIDEuNiAxLjUgMS41IDItMTguNS0xLjQtMzMuOS03LjYtNDYuOC0yMi4yLTIxLjgtMjQuNy00MS43LTI3LjktNDguNi0yOS43LjUtLjIuOC0uNCAxLjEtLjQgMTMuMS4xIDI2LjEuNyAzOC45IDMuOSAyNS4zIDYuNCAzNSAyNS40IDQxLjYgMzUuMyAzLjIgNC44IDcuMyA4LjMgMTIuMyAxMS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9lbml4U3F1YWRyb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjMuMzhDMTQyLjQ5IDI3LjI1IDIwMS41NSA3LjMxIDI2MC41MSA4LjgxYzI5LjU4LS4zOCA1OS4xMSA1LjM3IDg2LjkxIDE1LjMzLTI0LjEzLTQuNjMtNDktNi4zNC03My4zOC0yLjQ1QzIzMS4xNyAyNyAxOTEgNDguODQgMTYyLjIxIDgwLjg3YzUuNjctMSAxMC43OC0zLjY3IDE2LTUuODYgMTguMTQtNy44NyAzNy40OS0xMy4yNiA1Ny4yMy0xNC44MyAxOS43NC0yLjEzIDM5LjY0LS40MyA1OS4yOCAxLjkyLTE0LjQyIDIuNzktMjkuMTIgNC41Ny00MyA5LjU5LTM0LjQzIDExLjA3LTY1LjI3IDMzLjE2LTg2LjMgNjIuNjMtMTMuOCAxOS43MS0yMy42MyA0Mi44Ni0yNC42NyA2Ny4xMy0uMzUgMTYuNDkgNS4yMiAzNC44MSAxOS44MyA0NGE1My4yNyA1My4yNyAwIDAgMCAzNy41MiA2Ljc0YzE1LjQ1LTIuNDYgMzAuMDctOC42NCA0My42LTE2LjMzIDExLjUyLTYuODIgMjIuNjctMTQuNTUgMzItMjQuMjUgMy43OS0zLjIyIDIuNTMtOC40NSAyLjYyLTEyLjc5LTIuMTItLjM0LTQuMzgtMS4xMS02LjMuM2EyMDMgMjAzIDAgMCAxLTM1LjgyIDE1LjM3Yy0yMCA2LjE3LTQyLjE2IDguNDYtNjIuMS43OCAxMi43OSAxLjczIDI2LjA2LjMxIDM3Ljc0LTUuNDQgMjAuMjMtOS43MiAzNi44MS0yNS4yIDU0LjQ0LTM4Ljc3YTUyNi41NyA1MjYuNTcgMCAwIDEgODguOS01NS4zMWMyNS43MS0xMiA1Mi45NC0yMi43OCA4MS41Ny0yNC4xMi0xNS42MyAxMy43Mi0zMi4xNSAyNi41Mi00Ni43OCA0MS4zOC0xNC41MSAxNC0yNy40NiAyOS41LTQwLjExIDQ1LjE4LTMuNTIgNC42LTguOTUgNi45NC0xMy41OCAxMC4xNmExNTAuNyAxNTAuNyAwIDAgMC01MS44OSA2MC4xYy05LjMzIDE5LjY4LTE0LjUgNDEuODUtMTEuNzcgNjMuNjUgMS45NCAxMy42OSA4LjcxIDI3LjU5IDIwLjkgMzQuOTEgMTIuOSA4IDI5LjA1IDguMDcgNDMuNDggNS4xIDMyLjgtNy40NSA2MS40My0yOC44OSA4MS01NS44NCAyMC40NC0yNy41MiAzMC41Mi02Mi4yIDI5LjE2LTk2LjM1LS41Mi03LjUtMS41Ny0xNS0xLjY2LTIyLjQ5IDggMTkuNDggMTQuODIgMzkuNzEgMTYuNjUgNjAuODMgMiAxNC4yOC43NSAyOC43Ni0xLjYyIDQyLjktMS45MSAxMS01LjY3IDIxLjUxLTcuNzggMzIuNDNhMTY1IDE2NSAwIDAgMCAzOS4zNC04MS4wNyAxODMuNjQgMTgzLjY0IDAgMCAwLTE0LjIxLTEwNC42NGMyMC43OCAzMiAzMi4zNCA2OS41OCAzNS43MSAxMDcuNDguNDkgMTIuNzMuNDkgMjUuNTEgMCAzOC4yM0EyNDMuMjEgMjQzLjIxIDAgMCAxIDQ4MiAzNzEuMzRjLTI2LjEyIDQ3LjM0LTY4IDg1LjYzLTExNy4xOSAxMDgtNzguMjkgMzYuMjMtMTc0LjY4IDMxLjMyLTI0OC0xNC42OEEyNDguMzQgMjQ4LjM0IDAgMCAxIDI1LjM2IDM2NiAyMzguMzQgMjM4LjM0IDAgMCAxIDAgMjczLjA4di0zMS4zNEMzLjkzIDE3MiA0MC44NyAxMDUuODIgOTYgNjMuMzhtMjIyIDgwLjMzYTc5LjEzIDc5LjEzIDAgMCAwIDE2LTQuNDhjNS0xLjc3IDkuMjQtNS45NCAxMC4zMi0xMS4yMi04Ljk2IDQuOTktMTcuOTggOS45Mi0yNi4zMiAxNS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaHAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDEwNC41YzE3MS40IDAgMzAzLjIgNzIuMiAzMDMuMiAxNTEuNVM0OTEuMyA0MDcuNSAzMjAgNDA3LjVjLTE3MS40IDAtMzAzLjItNzIuMi0zMDMuMi0xNTEuNVMxNDguNyAxMDQuNSAzMjAgMTA0LjVtMC0xNi44QzE0My4zIDg3LjcgMCAxNjMgMCAyNTZzMTQzLjMgMTY4LjMgMzIwIDE2OC4zUzY0MCAzNDkgNjQwIDI1NiA0OTYuNyA4Ny43IDMyMCA4Ny43ek0yMTguMiAyNDIuNWMtNy45IDQwLjUtMzUuOCAzNi4zLTcwLjEgMzYuM2wxMy43LTcwLjZjMzggMCA2My44LTQuMSA1Ni40IDM0LjN6TTk3LjQgMzUwLjNoMzYuN2w4LjctNDQuOGM0MS4xIDAgNjYuNiAzIDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN2gtNzAuN0w5Ny40IDM1MC4zem0xODUuNy0yMTMuNmgzNi41bC04LjcgNDQuOGMzMS41IDAgNjAuNy0yLjMgNzQuOCAxMC43IDE0LjggMTMuNiA3LjcgMzEtOC4zIDExMy4xaC0zN2MxNS40LTc5LjQgMTguMy04NiAxMi43LTkyLTUuNC01LjgtMTcuNy00LjYtNDcuNC00LjZsLTE4LjggOTYuNmgtMzYuNWwzMi43LTE2OC42ek01MDUgMjQyLjVjLTggNDEuMS0zNi43IDM2LjMtNzAuMSAzNi4zbDEzLjctNzAuNmMzOC4yIDAgNjMuOC00LjEgNTYuNCAzNC4zek0zODQuMiAzNTAuM0g0MjFsOC43LTQ0LjhjNDMuMiAwIDY3LjEgMi41IDkwLjItMTkuMSAyNi4xLTI0IDMyLjktNjYuNyAxNC4zLTg4LjEtOS43LTExLjItMjUuMy0xNi43LTQ2LjUtMTYuN0g0MTdsLTMyLjggMTY4Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQgMjQ2Yy0zLjItMi02LjMtMi45LTEwLjEtMi45LTYuNiAwLTEyLjYgMy4yLTE5LjMgMy43bDEuNyA0Ljl6bTEzNS45IDE5Ny45Yy0xOSAwLTY0LjEgOS41LTc5LjkgMTkuOGw2LjkgNDUuMWMzNS43IDYuMSA3MC4xIDMuNiAxMDYtOS44LTQuOC0xMC0yMy41LTU1LjEtMzMtNTUuMXpNMzQwLjggMTc3YzYuNiAyLjggMTEuNSA5LjIgMjIuNyAyMi4xIDItMS40IDcuNS01LjIgNy41LTguNiAwLTQuOS0xMS44LTEzLjItMTMuMi0yMyAxMS4yLTUuNyAyNS4yLTYgMzcuNi04LjkgNjguMS0xNi40IDExNi4zLTUyLjkgMTQ2LjgtMTE2LjdDNTQ4LjMgMjkuMyA1NTQgMTYuMSA1NTQuNiAybC0yIDIuNmMtMjguNCA1MC0zMyA2My4yLTgxLjMgMTAwLTMxLjkgMjQuNC02OS4yIDQwLjItMTA2LjYgNTQuNmwtNi4zLS4zdi0yMS44Yy0xOS42IDEuNi0xOS43LTE0LjYtMzEuNi0yMy0xOC43IDIwLjYtMzEuNiA0MC44LTU4LjkgNTEuMS0xMi43IDQuOC0xOS42IDEwLTI1LjkgMjEuOCAzNC45LTE2LjQgOTEuMi0xMy41IDk4LjgtMTB6TTU1NS41IDBsLS42IDEuMS0uMy45LjYtLjZ6bS01OS4yIDM4Mi4xYy0zMy45LTU2LjktNzUuMy0xMTguNC0xNTAtMTE1LjVsLS4zLTZjLTEuMS0xMy41IDMyLjggMy4yIDM1LjEtMzFsLTE0LjQgNy4yYy0xOS44LTQ1LjctOC42LTU0LjMtNjUuNS01NC4zLTE0LjcgMC0yNi43IDEuNy00MS40IDQuNiAyLjkgMTguNiAyLjIgMzYuNy0xMC45IDUwLjNsMTkuNSA1LjVjLTEuNyAzLjItMi45IDYuMy0yLjkgOS44IDAgMjEgNDIuOCAyLjkgNDIuOCAzMy42IDAgMTguNC0zNi44IDYwLjEtNTQuOSA2MC4xLTggMC01My43LTUwLTUzLjQtNjAuMWwuMy00LjYgNTIuMy0xMS41YzEzLTIuNiAxMi4zLTIyLjctMi45LTIyLjctMy43IDAtNDMuMSA5LjItNDkuNCAxMC42LTItNS4yLTcuNS0xNC4xLTEzLjgtMTQuMS0zLjIgMC02LjMgMy4yLTkuNSA0LTkuMiAyLjYtMzEgMi45LTIxLjUgMjAuMUwxNS45IDI5OC41Yy01LjUgMS4xLTguOSA2LjMtOC45IDExLjggMCA2IDUuNSAxMC45IDExLjUgMTAuOSA4IDAgMTMxLjMtMjguNCAxNDcuNC0zMi4yIDIuNiAzLjIgNC42IDYuMyA3LjggOC42IDIwLjEgMTQuNCA1OS44IDg1LjkgNzYuNCA4NS45IDI0LjEgMCA1OC0yMi40IDcxLjMtNDEuOSAzLjItNC4zIDYuOS03LjUgMTIuNC02LjkuNiAxMy44LTMxLjYgMzQuMi0zMyA0My43LTEuNCAxMC4yLTEgMzUuMi0uMyA0MS4xIDI2LjcgOC4xIDUyLTMuNiA3Ny45LTIuOSA0LjMtMjEgMTAuNi00MS45IDkuOC02My41bC0uMy05LjVjLTEuNC0zNC4yLTEwLjktMzguNS0zNC44LTU4LjYtMS4xLTEuMS0yLjYtMi42LTMuNy00IDIuMi0xLjQgMS4xLTEgNC42LTEuNyA4OC41IDAgNTYuMyAxODMuNiAxMTEuNSAyMjkuOSAzMy4xLTE1IDcyLjUtMjcuOSAxMDMuNS00Ny4yLTI5LTI1LjYtNTIuNi00NS43LTcyLjctNzkuOXptLTE5Ni4yIDQ2LjF2MjcuMmwxMS44LTMuNC0yLjktMjMuOHptLTY4LjctMTUwLjRsMjQuMSA2MS4yIDIxLTEzLjgtMzEuMy01MC45em04NC40IDE1NC45bDIgMTIuNGM5LTEuNSA1OC40LTYuNiA1OC40LTE0LjEgMC0xLjQtLjYtMy4yLS45LTQuNi0yNi44IDAtMzYuOSAzLjgtNTkuNSA2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlckhhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjQuOWMtODAuOCA1My42LTg5LjQgOTIuNS05Ni40IDEwNC40LTYuNyAxMi4yLTExLjcgNjAuMy0yMy4zIDgzLjYtMTEuNyAyMy42LTU0LjIgNDIuMi02Ni4xIDUwLTExLjcgNy44LTI4LjMgMzguMS00MS45IDY0LjItMTA4LjEtNC40LTE2Ny40IDM4LjgtMjU5LjIgOTMuNiAyOS40LTkuNyA0My4zLTE2LjcgNDMuMy0xNi43IDk0LjItMzYgMTM5LjMtNjguMyAyODEuMS00OS4yIDEuMSAwIDEuOS42IDIuOC44IDMuOSAyLjIgNS4zIDYuOSAzLjEgMTAuOGwtNTMuOSA5NS44Yy0yLjUgNC43LTcuOCA3LjItMTMuMSA2LjEtMTI2LjgtMjMuOC0yMjYuOSAxNy4zLTMxOC45IDE4LjZDMjQuMSA0ODggMCA0NTMuNCAwIDQ1MS44YzAtMS4xLjYtMS43IDEuNy0xLjcgMCAwIDM4LjMgMCAxMDMuMS0xNS4zQzE3OC40IDI5NC41IDI0NCAyNDUuNCAzMTUuNCAyNDUuNGMwIDAgNzEuNyAwIDkwLjYgNjEuOSAyMi44LTM5LjcgMjguMy00OS4yIDI4LjMtNDkuMiA1LjMtOS40IDM1LTc3LjIgODYuNC0xNDEuNCA1MS41LTY0IDkwLjQtNzkuOSAxMTkuMy05MS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWVkUGlwZXJQcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUuMyAxNzQuNmMwIDIxLjEtMTQuMiAzOC4xLTMxLjcgMzguMS03LjEgMC0xMi44LTEuMi0xNy4yLTMuN3YtNjhjNC40LTIuNyAxMC4xLTQuMiAxNy4yLTQuMiAxNy41IDAgMzEuNyAxNi45IDMxLjcgMzcuOHptNTIuNiA2N2MtNy4xIDAtMTIuOCAxLjUtMTcuMiA0LjJ2NjhjNC40IDIuNSAxMC4xIDMuNyAxNy4yIDMuNyAxNy40IDAgMzEuNy0xNi45IDMxLjctMzcuOCAwLTIxLjEtMTQuMy0zOC4xLTMxLjctMzguMXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0xODUgMjU1LjFjNDEgMCA3NC4yLTM1LjYgNzQuMi03OS42IDAtNDQtMzMuMi03OS42LTc0LjItNzkuNi0xMiAwLTI0LjEgMy4yLTM0LjYgOC44aC00NS43VjMxMWw1MS44LTEwLjF2LTUwLjZjOC42IDMuMSAxOC4xIDQuOCAyOC41IDQuOHptMTU4LjQgMjUuM2MwLTQ0LTMzLjItNzkuNi03My45LTc5LjYtMy4yIDAtNi40LjItOS42LjctMy43IDEyLjUtMTAuMSAyMy44LTE5LjIgMzMuNC0xMy44IDE1LTMyLjIgMjMuOC01MS44IDI0LjhWNDE2bDUxLjgtMTAuMXYtNTAuNmM4LjYgMy4yIDE4LjIgNC43IDI4LjcgNC43IDQwLjggMCA3NC0zNS42IDc0LTc5LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpZWRQaXBlclNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0MTlMMCA0NzkuMmwuOC0zMjhDLjggODUuMyA1NCAzMiAxMjAgMzJoMzI3LjJjLTkzIDI4LjktMTg5LjkgOTQuMi0yNTMuOSAxNjguNkMxMjIuNyAyODIgODIuNiAzMzggMzIgNDE5TTQ0OCAzMlMzMDUuMiA5OC44IDI2MS42IDE5OS4xYy0yMy4yIDUzLjYtMjguOSAxMTguMS03MSAxNTguNi0yOC45IDI3LjgtNjkuOCAzOC4yLTEwNS4zIDU2LjMtMjMuMiAxMi02Ni40IDQwLjUtODQuOSA2NmgzMjguNGM2NiAwIDExOS4zLTUzLjMgMTE5LjMtMTE5LjItLjEgMC0uMS0zMjguOC0uMS0zMjguOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGllZFBpcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NS45MywyMy4yQzQyOS4yMywzMCwzODcuNzksNTEuNjksMzQxLjM1LDkwLjY2QTIwNiwyMDYsMCwwLDAsMjQwLDY0QzEyNS4xMyw2NCwzMiwxNTcuMTIsMzIsMjcyczkzLjEzLDIwOCwyMDgsMjA4LDIwOC05My4xMywyMDgtMjA4YTIwNy4yNSwyMDcuMjUsMCwwLDAtNTguNzUtMTQ0LjgxLDE1NS4zNSwxNTUuMzUsMCwwLDAtMTcsMjcuNEExNzYuMTYsMTc2LjE2LDAsMCwxLDQxNy4xLDI3MmMwLDk3LjY2LTc5LjQ0LDE3Ny4xMS0xNzcuMDksMTc3LjExYTE3NS44MSwxNzUuODEsMCwwLDEtODcuNjMtMjMuNGM4Mi45NC0xMDcuMzMsMTUwLjc5LTM3Ljc3LDE4NC4zMS0yMjYuNjUsNS43OS0zMi42MiwyOC05NC4yNiwxMjYuMjMtMTYwLjE4QzQ3MSwzMy40NSw0NjUuMzUsMjAuOCw0NTUuOTMsMjMuMlpNMTI1LDQwNi40QTE3Ni42NiwxNzYuNjYsMCwwLDEsNjIuOSwyNzJDNjIuOSwxNzQuMzQsMTQyLjM1LDk0LjksMjQwLDk0LjlhMTc0LDE3NCwwLDAsMSw3Ni42MywxNy43NUMyNTAuNjQsMTc0Ljc2LDE4OS43NywyNjUuNTIsMTI1LDQwNi40WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaW50ZXJlc3RQIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwNCA2LjVDMTAxLjQgNi41IDAgNzQuOSAwIDE4NS42IDAgMjU2IDM5LjYgMjk2IDYzLjYgMjk2YzkuOSAwIDE1LjYtMjcuNiAxNS42LTM1LjQgMC05LjMtMjMuNy0yOS4xLTIzLjctNjcuOCAwLTgwLjQgNjEuMi0xMzcuNCAxNDAuNC0xMzcuNCA2OC4xIDAgMTE4LjUgMzguNyAxMTguNSAxMDkuOCAwIDUzLjEtMjEuMyAxNTIuNy05MC4zIDE1Mi43LTI0LjkgMC00Ni4yLTE4LTQ2LjItNDMuOCAwLTM3LjggMjYuNC03NC40IDI2LjQtMTEzLjQgMC02Ni4yLTkzLjktNTQuMi05My45IDI1LjggMCAxNi44IDIuMSAzNS40IDkuNiA1MC43LTEzLjggNTkuNC00MiAxNDcuOS00MiAyMDkuMSAwIDE4LjkgMi43IDM3LjUgNC41IDU2LjQgMy40IDMuOCAxLjcgMy40IDYuOSAxLjUgNTAuNC02OSA0OC42LTgyLjUgNzEuNC0xNzIuOCAxMi4zIDIzLjQgNDQuMSAzNiA2OS4zIDM2IDEwNi4yIDAgMTUzLjktMTAzLjUgMTUzLjktMTk2LjhDMzg0IDcxLjMgMjk4LjIgNi41IDIwNCA2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDE1NC40YzkuOC0xNi40IDIyLjQtNDAgMjcuNC01OS4zIDMtMTEuNSAxNS4zLTU4LjQgMTUuMy01OC40IDggMTUuMyAzMS40IDI4LjIgNTYuMyAyOC4yIDc0LjEgMCAxMjcuNC02OC4xIDEyNy40LTE1Mi43IDAtODEuMS02Ni4yLTE0MS44LTE1MS40LTE0MS44LTEwNiAwLTE2Mi4yIDcxLjEtMTYyLjIgMTQ4LjYgMCAzNiAxOS4yIDgwLjggNDkuOCA5NS4xIDQuNyAyLjIgNy4xIDEuMiA4LjItMy4zLjgtMy40IDUtMjAuMSA2LjgtMjcuOC42LTIuNS4zLTQuNi0xLjctNy0xMC4xLTEyLjMtMTguMy0zNC45LTE4LjMtNTYgMC01NC4yIDQxLTEwNi42IDExMC45LTEwNi42IDYwLjMgMCAxMDIuNiA0MS4xIDEwMi42IDk5LjkgMCA2Ni40LTMzLjUgMTEyLjQtNzcuMiAxMTIuNC0yNC4xIDAtNDIuMS0xOS45LTM2LjQtNDQuNCA2LjktMjkuMiAyMC4zLTYwLjcgMjAuMy04MS44IDAtNTMtNzUuNS00NS43LTc1LjUgMjUgMCAyMS43IDcuMyAzNi41IDcuMyAzNi41LTMxLjQgMTMyLjgtMzYuMSAxMzQuNS0yOS42IDE5Mi42bDIuMi44SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpbnRlcmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OC0yNS42IDAtNTAuMi0zLjktNzMuNC0xMS4xIDEwLjEtMTYuNSAyNS4yLTQzLjUgMzAuOC02NSAzLTExLjYgMTUuNC01OSAxNS40LTU5IDguMSAxNS40IDMxLjcgMjguNSA1Ni44IDI4LjUgNzQuOCAwIDEyOC43LTY4LjggMTI4LjctMTU0LjMgMC04MS45LTY2LjktMTQzLjItMTUyLjktMTQzLjItMTA3IDAtMTYzLjkgNzEuOC0xNjMuOSAxNTAuMSAwIDM2LjQgMTkuNCA4MS43IDUwLjMgOTYuMSA0LjcgMi4yIDcuMiAxLjIgOC4zLTMuMy44LTMuNCA1LTIwLjMgNi45LTI4LjEuNi0yLjUuMy00LjctMS43LTcuMS0xMC4xLTEyLjUtMTguMy0zNS4zLTE4LjMtNTYuNiAwLTU0LjcgNDEuNC0xMDcuNiAxMTItMTA3LjYgNjAuOSAwIDEwMy42IDQxLjUgMTAzLjYgMTAwLjkgMCA2Ny4xLTMzLjkgMTEzLjYtNzggMTEzLjYtMjQuMyAwLTQyLjYtMjAuMS0zNi43LTQ0LjggNy0yOS41IDIwLjUtNjEuMyAyMC41LTgyLjYgMC0xOS0xMC4yLTM0LjktMzEuNC0zNC45LTI0LjkgMC00NC45IDI1LjctNDQuOSA2MC4yIDAgMjIgNy40IDM2LjggNy40IDM2LjhzLTI0LjUgMTAzLjgtMjkgMTIzLjJjLTUgMjEuNC0zIDUxLjYtLjkgNzEuMkM2NS40IDQ1MC45IDAgMzYxLjEgMCAyNTYgMCAxMTkgMTExIDggMjQ4IDhzMjQ4IDExMSAyNDggMjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGF5c3RhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzAuOSAzNzIuM2MtMTEuMyAxNC4yLTM4LjggMjQuMy0zOC44IDI0LjNMMzI3IDQ3MC4ydi01NC4zbDE1MC45LTUzLjhjMTcuMS02LjEgMTkuOC0xNC44IDUuOC0xOS40LTEzLjktNC42LTM5LjEtMy4zLTU2LjIgMi45TDMyNyAzODEuMXYtNTYuNGMyMy4yLTcuOCA0Ny4xLTEzLjYgNzUuNy0xNi44IDQwLjktNC41IDkwLjkuNiAxMzAuMiAxNS41IDQ0LjIgMTQgNDkuMiAzNC43IDM4IDQ4Ljl6bS0yMjQuNC05Mi41di0xMzljMC0xNi4zLTMtMzEuMy0xOC4zLTM1LjYtMTEuNy0zLjgtMTkgNy4xLTE5IDIzLjR2MzQ3LjlsLTkzLjgtMjkuOFYzMmMzOS45IDcuNCA5OCAyNC45IDEyOS4yIDM1LjRDNDI0LjEgOTQuNyA0NTEgMTI4LjcgNDUxIDIwNS4yYzAgNzQuNS00NiAxMDIuOC0xMDQuNSA3NC42ek00My4yIDQxMC4yYy00NS40LTEyLjgtNTMtMzkuNS0zMi4zLTU0LjggMTkuMS0xNC4yIDUxLjctMjQuOSA1MS43LTI0LjlsMTM0LjUtNDcuOHY1NC41bC05Ni44IDM0LjZjLTE3LjEgNi4xLTE5LjcgMTQuOC01LjggMTkuNCAxMy45IDQuNiAzOS4xIDMuMyA1Ni4yLTIuOWw0Ni40LTE2Ljl2NDguOGMtNTEuNiA5LjMtMTAxLjQgNy4zLTE1My45LTEwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcm9kdWN0SHVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjYuMyAyMTguOGMwIDIwLjUtMTYuNyAzNy4yLTM3LjIgMzcuMmgtNzAuM3YtNzQuNGg3MC4zYzIwLjUgMCAzNy4yIDE2LjcgMzcuMiAzNy4yek01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS0xMjguMS0zNy4yYzAtNDcuOS0zOC45LTg2LjgtODYuOC04Ni44SDE2OS4ydjI0OGg0OS42di03NC40aDcwLjNjNDcuOSAwIDg2LjgtMzguOSA4Ni44LTg2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDMyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDcgMTExLjlsLTk4LjUtOSAxNC0zMy40YzEwLjQtMjMuNS0xMC44LTQwLjQtMjguNy0zN0wyMi41IDc2LjljLTE1LjEgMi43LTI2IDE4LjMtMjEuNCAzNi42bDEwNS4xIDM0OC4zYzYuNSAyMS4zIDM2LjcgMjQuMiA0Ny43IDdsMzUuMy04MC44IDIzNS4yLTIzMS4zYzE2LjQtMTYuOCA0LjMtNDIuOS0xNy40LTQ0Ljh6TTI5Ny42IDUzLjZjNS4xLS43IDcuNSAyLjUgNS4yIDcuNEwyODYgMTAwLjkgMTA4LjYgODQuNmwxODktMzF6TTIyLjcgMTA3LjljLTMuMS01LjEgMS0xMCA2LjEtOS4xbDI0OC43IDIyLjctOTYuOSAyMzAuN0wyMi43IDEwNy45ek0xMzYgNDU2LjRjLTIuNiA0LTcuOSAzLjEtOS40LTEuMkw0My41IDE3OS43bDEyNy43IDE5Ny42Yy03IDE1LTM1LjIgNzkuMS0zNS4yIDc5LjF6bTI3Mi44LTMxNC41TDIxMC4xIDMzNy4zbDg5LjctMjEzLjcgMTA2LjQgOS43YzQgMS4xIDUuNyA1LjMgMi42IDguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHl0aG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS44IDIwMC41Yy03LjctMzAuOS0yMi4zLTU0LjItNTMuNC01NC4yaC00MC4xdjQ3LjRjMCAzNi44LTMxLjIgNjcuOC02Ni44IDY3LjhIMTcyLjdjLTI5LjIgMC01My40IDI1LTUzLjQgNTQuM3YxMDEuOGMwIDI5IDI1LjIgNDYgNTMuNCA1NC4zIDMzLjggOS45IDY2LjMgMTEuNyAxMDYuOCAwIDI2LjktNy44IDUzLjQtMjMuNSA1My40LTU0LjN2LTQwLjdIMjI2LjJ2LTEzLjZoMTYwLjJjMzEuMSAwIDQyLjYtMjEuNyA1My40LTU0LjIgMTEuMi0zMy41IDEwLjctNjUuNyAwLTEwOC42ek0yODYuMiA0MDRjMTEuMSAwIDIwLjEgOS4xIDIwLjEgMjAuMyAwIDExLjMtOSAyMC40LTIwLjEgMjAuNC0xMSAwLTIwLjEtOS4yLTIwLjEtMjAuNC4xLTExLjMgOS4xLTIwLjMgMjAuMS0yMC4zek0xNjcuOCAyNDguMWgxMDYuOGMyOS43IDAgNTMuNC0yNC41IDUzLjQtNTQuM1Y5MS45YzAtMjktMjQuNC01MC43LTUzLjQtNTUuNi0zNS44LTUuOS03NC43LTUuNi0xMDYuOC4xLTQ1LjIgOC01My40IDI0LjctNTMuNCA1NS42djQwLjdoMTA2Ljl2MTMuNmgtMTQ3Yy0zMS4xIDAtNTguMyAxOC43LTY2LjggNTQuMi05LjggNDAuNy0xMC4yIDY2LjEgMCAxMDguNiA3LjYgMzEuNiAyNS43IDU0LjIgNTYuOCA1NC4ySDEwMXYtNDguOGMwLTM1LjMgMzAuNS02Ni40IDY2LjgtNjYuNHptLTYuNy0xNDIuNmMtMTEuMSAwLTIwLjEtOS4xLTIwLjEtMjAuMy4xLTExLjMgOS0yMC40IDIwLjEtMjAuNCAxMSAwIDIwLjEgOS4yIDIwLjEgMjAuNHMtOSAyMC4zLTIwLjEgMjAuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjc1NCA0MjAuNDQ1Yy0xMS41MjYgMS4zOTMtNDQuODYtNTIuNzQxLTQ0Ljg2LTUyLjc0MSAwIDMxLjM0NS0xNi4xMzYgNzIuMjQ3LTUxLjA1MSAxMDEuNzg2IDE2Ljg0MiA1LjE5MiA1NC44NDMgMTkuMTY3IDQ1LjgwMyAzNC40MjEtNy4zMTYgMTIuMzQzLTEyNS41MSA3Ljg4MS0xNTkuNjMyIDQuMDM3LTM0LjEyMiAzLjg0NC0xNTIuMzE2IDguMzA2LTE1OS42MzItNC4wMzctOS4wNDUtMTUuMjUgMjguOTE4LTI5LjIxNCA0NS43ODMtMzQuNDE1LTM0LjkyLTI5LjUzOS01MS4wNTktNzAuNDQ1LTUxLjA1OS0xMDEuNzkyIDAgMC0zMy4zMzQgNTQuMTM0LTQ0Ljg1OSA1Mi43NDEtNS4zNy0uNjUtMTIuNDI0LTI5LjY0NCA5LjM0Ny05OS43MDQgMTAuMjYxLTMzLjAyNCAyMS45OTUtNjAuNDc4IDQwLjE0NC0xMDUuNzc5QzYwLjY4MyA5OC4wNjMgMTA4Ljk4Mi4wMDYgMjI0IDBjMTEzLjczNy4wMDYgMTYzLjE1NiA5Ni4xMzMgMTYwLjI2NCAyMTQuOTYzIDE4LjExOCA0NS4yMjMgMjkuOTEyIDcyLjg1IDQwLjE0NCAxMDUuNzc4IDIxLjc2OCA3MC4wNiAxNC43MTYgOTkuMDUzIDkuMzQ2IDk5LjcwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVpbnNjYXBlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMxMy42IDQ3NC42aC0xYTE1OC4xIDE1OC4xIDAgMCAxIDAtMzE2LjJjOTQuOSAwIDE2OC4yIDgzLjEgMTU3IDE3Ni42IDQgNS4xIDguMiA5LjYgMTEuMiAxNS4zIDEzLjQtMzAuMyAyMC4zLTYyLjQgMjAuMy05Ny43QzUwMS4xIDExNy41IDM5MS42IDggMjU2LjUgOFMxMiAxMTcuNSAxMiAyNTIuNnMxMDkuNSAyNDQuNiAyNDQuNSAyNDQuNmEyMzcuMzYgMjM3LjM2IDAgMCAwIDcwLjQtMTAuMWMtNS4yLTMuNS04LjktOC4xLTEzLjMtMTIuNXptLS4xLS4xbC40LjF6bTc4LjQtMTY4LjlhOTkuMiA5OS4yIDAgMSAwIDk5LjIgOTkuMiA5OS4xOCA5OS4xOCAwIDAgMC05OS4yLTk5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1b3JhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC41IDM4Ni43aC0yOS4zYy0xLjUgMTMuNS0xMC41IDMwLjgtMzMgMzAuOC0yMC41IDAtMzUuMy0xNC4yLTQ5LjUtMzUuOCA0NC4yLTM0LjIgNzQuNy04Ny41IDc0LjctMTUzQzQwMy41IDExMS4yIDMwNi44IDMyIDIwNSAzMiAxMDUuMyAzMiA3LjMgMTExLjcgNy4zIDIyOC43YzAgMTM0LjEgMTMxLjMgMjIxLjYgMjQ5IDE4OUMyNzYgNDUxLjMgMzAyIDQ4MCAzNTEuNSA0ODBjODEuOCAwIDkwLjgtNzUuMyA4OS05My4zek0yOTcgMzI5LjJDMjc3LjUgMzAwIDI1My4zIDI3NyAyMDUuNSAyNzdjLTMwLjUgMC01NC4zIDEwLTY5IDIyLjhsMTIuMiAyNC4zYzYuMi0zIDEzLTQgMTkuOC00IDM1LjUgMCA1My43IDMwLjggNjkuMiA2MS4zLTEwIDMtMjAuNyA0LjItMzIuNyA0LjItNzUgMC0xMDcuNS01My0xMDcuNS0xNTYuN0M5Ny41IDEyNC41IDEzMCA3MSAyMDUgNzFjNzYuMiAwIDEwOC43IDUzLjUgMTA4LjcgMTU3LjcuMSA0MS44LTUuNCA3NS42LTE2LjcgMTAwLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJQcm9qZWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1ODEgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4MSAyMjYuNkM1ODEgMTE5LjEgNDUwLjkgMzIgMjkwLjUgMzJTMCAxMTkuMSAwIDIyNi42QzAgMzIyLjQgMTAzLjMgNDAyIDIzOS40IDQxOC4xVjQ4MGg5OS4xdi02MS41YzI0LjMtMi43IDQ3LjYtNy40IDY5LjQtMTMuOUw0NDggNDgwaDExMmwtNjcuNC0xMTMuN2M1NC41LTM1LjQgODguNC04NC45IDg4LjQtMTM5Ljd6bS00NjYuOCAxNC41YzAtNzMuNSA5OC45LTEzMyAyMjAuOC0xMzNzMjExLjkgNDAuNyAyMTEuOSAxMzNjMCA1MC4xLTI2LjUgODUtNzAuMyAxMDYuNC0yLjQtMS42LTQuNy0yLjktNi40LTMuNy0xMC4yLTUuMi0yNy44LTEwLjUtMjcuOC0xMC41czg2LjYtNi40IDg2LjYtOTIuNy05MC42LTg3LjktOTAuNi04Ny45aC0xOTlWMzYxYy03NC4xLTIxLjUtMTI1LjItNjcuMS0xMjUuMi0xMTkuOXptMjI1LjEgMzguM3YtNTUuNmM1Ny44IDAgODcuOC02LjggODcuOCAyNy4zIDAgMzYuNS0zOC4yIDI4LjMtODcuOCAyOC4zem0tLjkgNzIuNUgzNjVjMTAuOCAwIDE4LjkgMTEuNyAyNCAxOS4yLTE2LjEgMS45LTMzIDIuOC01MC42IDIuOXYtMjIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFzcGJlcnJ5UGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQwNyA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDIzMi41bC0zLjctNi41Yy4xLTQ2LjQtMjEuNC02NS4zLTQ2LjUtNzkuNyA3LjYtMiAxNS40LTMuNiAxNy42LTEzLjIgMTMuMS0zLjMgMTUuOC05LjQgMTcuMS0xNS44IDMuNC0yLjMgMTQuOC04LjcgMTMuNi0xOS43IDYuNC00LjQgMTAtMTAuMSA4LjEtMTguMSA2LjktNy41IDguNy0xMy43IDUuOC0xOS40IDguMy0xMC4zIDQuNi0xNS42IDEuMS0yMC45IDYuMi0xMS4yLjctMjMuMi0xNi42LTIxLjItNi45LTEwLjEtMjEuOS03LjgtMjQuMi03LjgtMi42LTMuMi02LTYtMTYuNS00LjctNi44LTYuMS0xNC40LTUtMjIuMy0yLjEtOS4zLTcuMy0xNS41LTEuNC0yMi42LjhDMjcxLjYuNiAyNjkgNS41IDI2My41IDcuNmMtMTIuMy0yLjYtMTYuMSAzLTIyIDguOWwtNi45LS4xYy0xOC42IDEwLjgtMjcuOCAzMi44LTMxLjEgNDQuMS0zLjMtMTEuMy0xMi41LTMzLjMtMzEuMS00NC4xbC02LjkuMWMtNS45LTUuOS05LjctMTEuNS0yMi04LjktNS42LTItOC4xLTctMTkuNC0zLjQtNC42LTEuNC04LjktNC40LTEzLjktNC4zLTIuNi4xLTUuNSAxLTguNyAzLjUtNy45LTMtMTUuNS00LTIyLjMgMi4xLTEwLjUtMS4zLTE0IDEuNC0xNi41IDQuNy0yLjMgMC0xNy4zLTIuMy0yNC4yIDcuOEMyMS4yIDE2IDE1LjggMjggMjIgMzkuMmMtMy41IDUuNC03LjIgMTAuNyAxLjEgMjAuOS0yLjkgNS43LTEuMSAxMS45IDUuOCAxOS40LTEuOCA4IDEuOCAxMy43IDguMSAxOC4xLTEuMiAxMSAxMC4yIDE3LjQgMTMuNiAxOS43IDEuMyA2LjQgNCAxMi40IDE3LjEgMTUuOCAyLjIgOS41IDEwIDExLjIgMTcuNiAxMy4yLTI1LjEgMTQuNC00Ni42IDMzLjMtNDYuNSA3OS43bC0zLjcgNi41Yy0yOC44IDE3LjItNTQuNyA3Mi43LTE0LjIgMTE3LjcgMi42IDE0LjEgNy4xIDI0LjIgMTEgMzUuNCA1LjkgNDUuMiA0NC41IDY2LjMgNTQuNiA2OC44IDE0LjkgMTEuMiAzMC44IDIxLjggNTIuMiAyOS4yQzE1OSA1MDQuMiAxODEgNTEyIDIwMyA1MTJoMWMyMi4xIDAgNDQtNy44IDY0LjItMjguNCAyMS41LTcuNCAzNy4zLTE4IDUyLjItMjkuMiAxMC4yLTIuNSA0OC43LTIzLjYgNTQuNi02OC44IDMuOS0xMS4yIDguNC0yMS4zIDExLTM1LjQgNDAuNi00NS4xIDE0LjctMTAwLjUtMTQtMTE3Ljd6bS0yMi4yLThjLTEuNSAxOC43LTk4LjktNjUuMS04Mi4xLTY3LjkgNDUuNy03LjUgODMuNiAxOS4yIDgyLjEgNjcuOXptLTQzIDkzLjFjLTI0LjUgMTUuOC01OS44IDUuNi03OC44LTIyLjhzLTE0LjYtNjQuMiA5LjktODBjMjQuNS0xNS44IDU5LjgtNS42IDc4LjggMjIuOHMxNC42IDY0LjItOS45IDgwek0yMzguOSAyOS4zYy44IDQuMiAxLjggNi44IDIuOSA3LjYgNS40LTUuOCA5LjgtMTEuNyAxNi44LTE3LjMgMCAzLjMtMS43IDYuOCAyLjUgOS40IDMuNy01IDguOC05LjUgMTUuNS0xMy4zLTMuMiA1LjYtLjYgNy4zIDEuMiA5LjYgNS4xLTQuNCAxMC04LjggMTkuNC0xMi4zLTIuNiAzLjEtNi4yIDYuMi0yLjQgOS44IDUuMy0zLjMgMTAuNi02LjYgMjMuMS04LjktMi44IDMuMS04LjcgNi4zLTUuMSA5LjQgNi42LTIuNSAxNC00LjQgMjIuMS01LjQtMy45IDMuMi03LjEgNi4zLTMuOSA4LjggNy4xLTIuMiAxNi45LTUuMSAyNi40LTIuNmwtNiA2LjFjLS43LjggMTQuMS42IDIzLjkuOC0zLjYgNS03LjIgOS43LTkuMyAxOC4yIDEgMSA1LjguNCAxMC40IDAtNC43IDkuOS0xMi44IDEyLjMtMTQuNyAxNi42IDIuOSAyLjIgNi44IDEuNiAxMS4yLjEtMy40IDYuOS0xMC40IDExLjctMTYgMTcuMyAxLjQgMSAzLjkgMS42IDkuNy45LTUuMiA1LjUtMTEuNCAxMC41LTE4LjggMTUgMS4zIDEuNSA1LjggMS41IDEwIDEuNi02LjcgNi41LTE1LjMgOS45LTIzLjQgMTQuMiA0IDIuNyA2LjkgMi4xIDEwIDIuMS01LjcgNC43LTE1LjQgNy4xLTI0LjQgMTAgMS43IDIuNyAzLjQgMy40IDcuMSA0LjEtOS41IDUuMy0yMy4yIDIuOS0yNyA1LjYuOSAyLjcgMy42IDQuNCA2LjcgNS44LTE1LjQuOS01Ny4zLS42LTY1LjQtMzIuMyAxNS43LTE3LjMgNDQuNC0zNy41IDkzLjctNjIuNi0zOC40IDEyLjgtNzMgMzAtMTAyIDUzLjUtMzQuMy0xNS45LTEwLjgtNTUuOSA1LjgtNzEuOHptLTM0LjQgMTE0LjZjMjQuMi0uMyA1NC4xIDE3LjggNTQgMzQuNy0uMSAxNS0yMSAyNy4xLTUzLjggMjYuOS0zMi4xLS40LTUzLjctMTUuMi01My42LTI5LjggMC0xMS45IDI2LjItMzIuNSA1My40LTMxLjh6bS0xMjMtMTIuOGMzLjctLjcgNS40LTEuNSA3LjEtNC4xLTktMi44LTE4LjctNS4zLTI0LjQtMTAgMy4xIDAgNiAuNyAxMC0yLjEtOC4xLTQuMy0xNi43LTcuNy0yMy40LTE0LjIgNC4yLS4xIDguNyAwIDEwLTEuNi03LjQtNC41LTEzLjYtOS41LTE4LjgtMTUgNS44LjcgOC4zLjEgOS43LS45LTUuNi01LjYtMTIuNy0xMC40LTE2LTE3LjMgNC4zIDEuNSA4LjMgMiAxMS4yLS4xLTEuOS00LjItMTAtNi43LTE0LjctMTYuNiA0LjYuNCA5LjQgMSAxMC40IDAtMi4xLTguNS01LjgtMTMuMy05LjMtMTguMiA5LjgtLjEgMjQuNiAwIDIzLjktLjhsLTYtNi4xYzkuNS0yLjUgMTkuMy40IDI2LjQgMi42IDMuMi0yLjUtLjEtNS42LTMuOS04LjggOC4xIDEuMSAxNS40IDIuOSAyMi4xIDUuNCAzLjUtMy4xLTIuMy02LjMtNS4xLTkuNCAxMi41IDIuMyAxNy44IDUuNiAyMy4xIDguOSAzLjgtMy42LjItNi43LTIuNC05LjggOS40IDMuNCAxNC4zIDcuOSAxOS40IDEyLjMgMS43LTIuMyA0LjQtNCAxLjItOS42IDYuNyAzLjggMTEuOCA4LjMgMTUuNSAxMy4zIDQuMS0yLjYgMi41LTYuMiAyLjUtOS40IDcgNS42IDExLjQgMTEuNSAxNi44IDE3LjMgMS4xLS44IDItMy40IDIuOS03LjYgMTYuNiAxNS45IDQwLjEgNTUuOSA2IDcxLjgtMjktMjMuNS02My42LTQwLjctMTAyLTUzLjUgNDkuMyAyNSA3OCA0NS4zIDkzLjcgNjIuNi04IDMxLjgtNTAgMzMuMi02NS40IDMyLjMgMy4xLTEuNCA1LjgtMy4yIDYuNy01LjgtNC0yLjgtMTcuNi0uNC0yNy4yLTUuNnptNjAuMSAyNC4xYzE2LjggMi44LTgwLjYgODYuNS04Mi4xIDY3LjktMS41LTQ4LjcgMzYuNS03NS41IDgyLjEtNjcuOXpNMzguMiAzNDJjLTIzLjctMTguOC0zMS4zLTczLjcgMTIuNi05OC4zIDI2LjUtNyA5IDEwNy44LTEyLjYgOTguM3ptOTEgOTguMmMtMTMuMyA3LjktNDUuOCA0LjctNjguOC0yNy45LTE1LjUtMjcuNC0xMy41LTU1LjItMi42LTYzLjQgMTYuMy05LjggNDEuNSAzLjQgNjAuOSAyNS42IDE2LjkgMjAgMjQuNiA1NS4zIDEwLjUgNjUuN3ptLTI2LjQtMTE5LjdjLTI0LjUtMTUuOC0yOC45LTUxLjYtOS45LTgwczU0LjMtMzguNiA3OC44LTIyLjggMjguOSA1MS42IDkuOSA4MGMtMTkuMSAyOC40LTU0LjQgMzguNi03OC44IDIyLjh6TTIwNSA0OTZjLTI5LjQgMS4yLTU4LjItMjMuNy01Ny44LTMyLjMtLjQtMTIuNyAzNS44LTIyLjYgNTkuMy0yMiAyMy43LTEgNTUuNiA3LjUgNTUuNyAxOC45LjUgMTEtMjguOCAzNS45LTU3LjIgMzUuNHptNTguOS0xMjQuOWMuMiAyOS43LTI2LjIgNTMuOC01OC44IDU0LTMyLjYuMi01OS4yLTIzLjgtNTkuNC01My40di0uNmMtLjItMjkuNyAyNi4yLTUzLjggNTguOC01NCAzMi42LS4yIDU5LjIgMjMuOCA1OS40IDUzLjR2LjZ6bTgyLjIgNDIuN2MtMjUuMyAzNC42LTU5LjYgMzUuOS03Mi4zIDI2LjMtMTMuMy0xMi40LTMuMi01MC45IDE1LjEtNzIgMjAuOS0yMy4zIDQzLjMtMzguNSA1OC45LTI2LjYgMTAuNSAxMC4zIDE2LjcgNDkuMS0xLjcgNzIuM3ptMjIuOS03My4yYy0yMS41IDkuNC0zOS0xMDUuMy0xMi42LTk4LjMgNDMuOSAyNC43IDM2LjMgNzkuNiAxMi42IDk4LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhdmVscnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk4LjI1MiwyMzQuMjIzYy0xLjIwOC0xMC4zNC0xLjctMjAuODI2LTMuNzQ2LTMxYTMxMC4zMDYsMzEwLjMwNiwwLDAsMC05LjYyMi0zNi42LDE4NC4wNjgsMTg0LjA2OCwwLDAsMC0zMC44NzQtNTcuNSwyNTEuMTU0LDI1MS4xNTQsMCwwLDAtMTguODE4LTIxLjY4OSwyMzcuMzYyLDIzNy4zNjIsMCwwLDAtNDcuMTEzLTM2LjExNkEyNDAuOCwyNDAuOCwwLDAsMCwzMzEuMzU2LDI2LjY1Yy0xMS4wMTgtMy4xLTIyLjI3Mi01LjQzMS0zMy41MTUtNy42MTUtNi43OC0xLjMxNC0xMy43NDktMS42NjctMjAuNjI3LTIuNDgyLS4zMTYtLjAzNi0uNi0uMzU4LS45LS41NTNxLTE2LjE0My4wMDktMzIuMjg4LjAwNmMtMi40MS4zODktNC44MDguOTI1LTcuMjM2LDEuMTVhMTc5LjMzMSwxNzkuMzMxLDAsMCwwLTM0LjI1Niw3LjEsMjIxLjUsMjIxLjUsMCwwLDAtMzkuNzY4LDE2LjM1NSwyODEuMzg1LDI4MS4zODUsMCwwLDAtMzguMDgsMjQuMTU4Yy02LjE2Nyw0LjYxLTEyLjI2OCw5LjM2LTE3Ljk3NCwxNC41MThDOTYuNTM5LDg4LjQ5NCw4Ni4zNCw5Ny43Miw3Ni43ODUsMTA3LjU1NWEyNDMuODc4LDI0My44NzgsMCwwLDAtMzMuNjQ4LDQzLjk1LDIwNi40ODgsMjA2LjQ4OCwwLDAsMC0yMC40OTQsNDQuNiwxOTguMiwxOTguMiwwLDAsMC03LjY5MSwzNC43NTlBMjAxLjEzLDIwMS4xMywwLDAsMCwxMy40LDI2Ni4zODVhMjk5LjcxNiwyOTkuNzE2LDAsMCwwLDQuNDI1LDQwLjI0LDIyNi44NjUsMjI2Ljg2NSwwLDAsMCwxNi43Myw1My4zLDIxMC41NDMsMjEwLjU0MywwLDAsMCwyNCwzOS41MjgsMjEzLjU4OSwyMTMuNTg5LDAsMCwwLDI2LjM1OCwyOC40MTZBMjUxLjMxMywyNTEuMzEzLDAsMCwwLDEyNi43LDQ1OC40NTVhMjg3LjgzMSwyODcuODMxLDAsMCwwLDU1LjksMjUuMjc3LDI2OS41LDI2OS41LDAsMCwwLDQwLjY0MSw5LjgzNWM2LjA3MSwxLjAxLDEyLjI3NSwxLjI1MywxOC40MTIsMS44NzNhNC4xNDksNC4xNDksMCwwLDEsMS4xOS41NmgzMi4yODljMi41MDctLjM4OSw1LS45MzcsNy41MjctMS4xNDMsMTYuMzM2LTEuMzMyLDMyLjEwNy01LjMzNSw0Ny40ODktMTAuNzE3QTIxOS45OTIsMjE5Ljk5MiwwLDAsMCwzNzkuMSw0NjAuMzIyYzkuNzQ5LTYuNDQ3LDE5LjM5NS0xMy4wNzcsMjguNzM3LTIwLjEsNS43ODUtNC4zNDgsMTAuOTg4LTkuNSwxNi4zLTE0LjQ1NywzLjk2NC0zLjcsNy43NjQtNy41NzgsMTEuNTEtMTEuNWEyMzIuMTYyLDIzMi4xNjIsMCwwLDAsMzEuNDI3LTQxLjYzOWM5LjU0Mi0xNi4wNDUsMTcuMzU1LTMyLjkwNSwyMi4zLTUwLjkyNiwyLjg1OS0xMC40MTMsNC45NDctMjEuMDQ1LDcuMDE3LTMxLjY1MiwxLjAzMi01LjI3OSwxLjI1MS0xMC43MjMsMS44Ny0xNi4wODcuMDM2LS4zMTcuMzU4LS42LjU1Mi0uOVYyMzYuMDA1QTkuNzU3LDkuNzU3LDAsMCwxLDQ5OC4yNTIsMjM0LjIyM1ptLTE2MS4xMTctMS4xNXMtMTYuNTcyLTIuOTgtMjguNDctMi45OGMtMjcuMiwwLTMzLjU3LDE0LjktMzMuNTcsMzcuMDRWMzYwLjhIMjAxLjU4MlYxNzAuMDYySDI3NS4xdjMxLjkzMWM4LjkyNC0yNi44MjIsMjYuNzcxLTM2LjE4OSw2Mi4wNC0zNi4xODlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxOC4yIDE3Ny4yYy01LjQtMS44LTEwLjgtMy41LTE2LjItNS4xLjktMy43IDEuNy03LjQgMi41LTExLjEgMTIuMy01OS42IDQuMi0xMDcuNS0yMy4xLTEyMy4zLTI2LjMtMTUuMS02OS4yLjYtMTEyLjYgMzguNC00LjMgMy43LTguNSA3LjYtMTIuNSAxMS41LTIuNy0yLjYtNS41LTUuMi04LjMtNy43LTQ1LjUtNDAuNC05MS4xLTU3LjQtMTE4LjQtNDEuNS0yNi4yIDE1LjItMzQgNjAuMy0yMyAxMTYuNyAxLjEgNS42IDIuMyAxMS4xIDMuNyAxNi43LTYuNCAxLjgtMTIuNyAzLjgtMTguNiA1LjlDMzguMyAxOTYuMiAwIDIyNS40IDAgMjU1LjZjMCAzMS4yIDQwLjggNjIuNSA5Ni4zIDgxLjUgNC41IDEuNSA5IDMgMTMuNiA0LjMtMS41IDYtMi44IDExLjktNCAxOC0xMC41IDU1LjUtMi4zIDk5LjUgMjMuOSAxMTQuNiAyNyAxNS42IDcyLjQtLjQgMTE2LjYtMzkuMSAzLjUtMy4xIDctNi4zIDEwLjUtOS43IDQuNCA0LjMgOSA4LjQgMTMuNiAxMi40IDQyLjggMzYuOCA4NS4xIDUxLjcgMTExLjIgMzYuNiAyNy0xNS42IDM1LjgtNjIuOSAyNC40LTEyMC41LS45LTQuNC0xLjktOC45LTMtMTMuNSAzLjItLjkgNi4zLTEuOSA5LjQtMi45IDU3LjctMTkuMSA5OS41LTUwIDk5LjUtODEuNyAwLTMwLjMtMzkuNC01OS43LTkzLjgtNzguNHpNMjgyLjkgOTIuM2MzNy4yLTMyLjQgNzEuOS00NS4xIDg3LjctMzYgMTYuOSA5LjcgMjMuNCA0OC45IDEyLjggMTAwLjQtLjcgMy40LTEuNCA2LjctMi4zIDEwLTIyLjItNS00NC43LTguNi02Ny4zLTEwLjYtMTMtMTguNi0yNy4yLTM2LjQtNDIuNi01My4xIDMuOS0zLjcgNy43LTcuMiAxMS43LTEwLjd6TTE2Ny4yIDMwNy41YzUuMSA4LjcgMTAuMyAxNy40IDE1LjggMjUuOS0xNS42LTEuNy0zMS4xLTQuMi00Ni40LTcuNSA0LjQtMTQuNCA5LjktMjkuMyAxNi4zLTQ0LjUgNC42IDguOCA5LjMgMTcuNSAxNC4zIDI2LjF6bS0zMC4zLTEyMC4zYzE0LjQtMy4yIDI5LjctNS44IDQ1LjYtNy44LTUuMyA4LjMtMTAuNSAxNi44LTE1LjQgMjUuNC00LjkgOC41LTkuNyAxNy4yLTE0LjIgMjYtNi4zLTE0LjktMTEuNi0yOS41LTE2LTQzLjZ6bTI3LjQgNjguOWM2LjYtMTMuOCAxMy44LTI3LjMgMjEuNC00MC42czE1LjgtMjYuMiAyNC40LTM4LjljMTUtMS4xIDMwLjMtMS43IDQ1LjktMS43czMxIC42IDQ1LjkgMS43YzguNSAxMi42IDE2LjYgMjUuNSAyNC4zIDM4LjdzMTQuOSAyNi43IDIxLjcgNDAuNGMtNi43IDEzLjgtMTMuOSAyNy40LTIxLjYgNDAuOC03LjYgMTMuMy0xNS43IDI2LjItMjQuMiAzOS0xNC45IDEuMS0zMC40IDEuNi00Ni4xIDEuNnMtMzAuOS0uNS00NS42LTEuNGMtOC43LTEyLjctMTYuOS0yNS43LTI0LjYtMzlzLTE0LjgtMjYuOC0yMS41LTQwLjZ6bTE4MC42IDUxLjJjNS4xLTguOCA5LjktMTcuNyAxNC42LTI2LjcgNi40IDE0LjUgMTIgMjkuMiAxNi45IDQ0LjMtMTUuNSAzLjUtMzEuMiA2LjItNDcgOCA1LjQtOC40IDEwLjUtMTcgMTUuNS0yNS42em0xNC40LTc2LjVjLTQuNy04LjgtOS41LTE3LjYtMTQuNS0yNi4yLTQuOS04LjUtMTAtMTYuOS0xNS4zLTI1LjIgMTYuMSAyIDMxLjUgNC43IDQ1LjkgOC00LjYgMTQuOC0xMCAyOS4yLTE2LjEgNDMuNHpNMjU2LjIgMTE4LjNjMTAuNSAxMS40IDIwLjQgMjMuNCAyOS42IDM1LjgtMTkuOC0uOS0zOS43LS45LTU5LjUgMCA5LjgtMTIuOSAxOS45LTI0LjkgMjkuOS0zNS44ek0xNDAuMiA1N2MxNi44LTkuOCA1NC4xIDQuMiA5My40IDM5IDIuNSAyLjIgNSA0LjYgNy42IDctMTUuNSAxNi43LTI5LjggMzQuNS00Mi45IDUzLjEtMjIuNiAyLTQ1IDUuNS02Ny4yIDEwLjQtMS4zLTUuMS0yLjQtMTAuMy0zLjUtMTUuNS05LjQtNDguNC0zLjItODQuOSAxMi42LTk0em0tMjQuNSAyNjMuNmMtNC4yLTEuMi04LjMtMi41LTEyLjQtMy45LTIxLjMtNi43LTQ1LjUtMTcuMy02My0zMS4yLTEwLjEtNy0xNi45LTE3LjgtMTguOC0yOS45IDAtMTguMyAzMS42LTQxLjcgNzcuMi01Ny42IDUuNy0yIDExLjUtMy44IDE3LjMtNS41IDYuOCAyMS43IDE1IDQzIDI0LjUgNjMuNi05LjYgMjAuOS0xNy45IDQyLjUtMjQuOCA2NC41em0xMTYuNiA5OGMtMTYuNSAxNS4xLTM1LjYgMjcuMS01Ni40IDM1LjMtMTEuMSA1LjMtMjMuOSA1LjgtMzUuMyAxLjMtMTUuOS05LjItMjIuNS00NC41LTEzLjUtOTIgMS4xLTUuNiAyLjMtMTEuMiAzLjctMTYuNyAyMi40IDQuOCA0NSA4LjEgNjcuOSA5LjggMTMuMiAxOC43IDI3LjcgMzYuNiA0My4yIDUzLjQtMy4yIDMuMS02LjQgNi4xLTkuNiA4Ljl6bTI0LjUtMjQuM2MtMTAuMi0xMS0yMC40LTIzLjItMzAuMy0zNi4zIDkuNi40IDE5LjUuNiAyOS41LjYgMTAuMyAwIDIwLjQtLjIgMzAuNC0uNy05LjIgMTIuNy0xOS4xIDI0LjgtMjkuNiAzNi40em0xMzAuNyAzMGMtLjkgMTIuMi02LjkgMjMuNi0xNi41IDMxLjMtMTUuOSA5LjItNDkuOC0yLjgtODYuNC0zNC4yLTQuMi0zLjYtOC40LTcuNS0xMi43LTExLjUgMTUuMy0xNi45IDI5LjQtMzQuOCA0Mi4yLTUzLjYgMjIuOS0xLjkgNDUuNy01LjQgNjguMi0xMC41IDEgNC4xIDEuOSA4LjIgMi43IDEyLjIgNC45IDIxLjYgNS43IDQ0LjEgMi41IDY2LjN6bTE4LjItMTA3LjVjLTIuOC45LTUuNiAxLjgtOC41IDIuNi03LTIxLjgtMTUuNi00My4xLTI1LjUtNjMuOCA5LjYtMjAuNCAxNy43LTQxLjQgMjQuNS02Mi45IDUuMiAxLjUgMTAuMiAzLjEgMTUgNC43IDQ2LjYgMTYgNzkuMyAzOS44IDc5LjMgNTggMCAxOS42LTM0LjkgNDQuOS04NC44IDYxLjR6bS0xNDkuNy0xNWMyNS4zIDAgNDUuOC0yMC41IDQ1LjgtNDUuOHMtMjAuNS00NS44LTQ1LjgtNDUuOGMtMjUuMyAwLTQ1LjggMjAuNS00NS44IDQ1LjhzMjAuNSA0NS44IDQ1LjggNDUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVhY3RldXJvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjUwLjYgMjExLjc0bDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xLTIuMy02LjgtMi4zIDYuOC03LjIuMSA1LjcgNC4zem02My43IDBsNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuMy03LjItLjEtMi4zLTYuOC0yLjMgNi44LTcuMi4xIDUuNyA0LjN6bS05MS4zIDUwLjVoLTMuNGMtNC44IDAtMy44IDQtMy44IDEyLjEgMCA0LjctMi4zIDYuMS01LjggNi4xcy01LjgtMS40LTUuOC02LjF2LTM2LjZjMC00LjcgMi4zLTYuMSA1LjgtNi4xczUuOCAxLjQgNS44IDYuMWMwIDcuMi0uNyAxMC41IDMuOCAxMC41aDMuNGM0LjctLjEgMy44LTMuOSAzLjgtMTIuMyAwLTkuOS02LjctMTQuMS0xNi44LTE0LjFoLS4yYy0xMC4xIDAtMTYuOCA0LjItMTYuOCAxNC4xVjI3NmMwIDEwLjQgNi43IDE0LjEgMTYuOCAxNC4xaC4yYzEwLjEgMCAxNi44LTMuOCAxNi44LTE0LjEgMC05Ljg2IDEuMS0xMy43Ni0zLjgtMTMuNzZ6bS04MC43IDE3LjRoLTE0Ljd2LTE5LjNIMTM5YzIuNSAwIDMuOC0xLjMgMy44LTMuOHYtMi4xYzAtMi41LTEuMy0zLjgtMy44LTMuOGgtMTEuNHYtMTguM0gxNDJjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yMS43Yy0yLjQtLjEtMy43IDEuMy0zLjcgMy44djU5LjFjMCAyLjUgMS4zIDMuOCAzLjggMy44aDIxLjljMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44em0tNDItMTguNWM0LjYtMiA3LjMtNiA3LjMtMTIuNHYtMTEuOWMwLTEwLjEtNi43LTE0LjEtMTYuOC0xNC4xSDc3LjRjLTIuNSAwLTMuOCAxLjMtMy44IDMuOHY1OS4xYzAgMi41IDEuMyAzLjggMy44IDMuOGgzLjRjMi41IDAgMy44LTEuMyAzLjgtMy44di0yMi45aDUuNmw3LjQgMjMuNWE0LjEgNC4xIDAgMCAwIDQuMyAzLjJoMy4zYzIuOCAwIDQtMS44IDMuMi00LjR6bS0zLjgtMTRjMCA0LjgtMi41IDYuMS02LjEgNi4xaC01Ljh2LTIwLjloNS44YzMuNiAwIDYuMSAxLjMgNi4xIDYuMXpNMTc2IDIyNmEzLjgyIDMuODIgMCAwIDAtNC4yLTMuNGgtNi45YTMuNjggMy42OCAwIDAgMC00IDMuNGwtMTEgNTkuMmMtLjUgMi43LjkgNC4xIDMuNCA0LjFoM2EzLjc0IDMuNzQgMCAwIDAgNC4xLTMuNWwxLjgtMTEuM2gxMi4ybDEuOCAxMS4zYTMuNzQgMy43NCAwIDAgMCA0LjEgMy41aDMuNWMyLjYgMCAzLjktMS40IDMuNC00LjF6bS0xMi4zIDM5LjNsNC43LTI5LjcgNC43IDI5Ljd6bTg5LjMgMjAuMnYtNTMuMmg3LjVjMi41IDAgMy44LTEuMyAzLjgtMy44di0yLjFjMC0yLjUtMS4zLTMuOC0zLjgtMy44aC0yNS44Yy0yLjUgMC0zLjggMS4zLTMuOCAzLjh2Mi4xYzAgMi41IDEuMyAzLjggMy44IDMuOGg3LjN2NTMuMmMwIDIuNSAxLjMgMy44IDMuOCAzLjhoMy40YzIuNS4wNCAzLjgtMS4zIDMuOC0zLjc2em0yNDgtLjhoLTE5LjRWMjU4aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjYyIDEuNjIgMCAwIDAtMiAxLjh2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45SDUwMWExLjgxIDEuODEgMCAwIDAgMi0xLjl2LS44YTEuODQgMS44NCAwIDAgMC0yLTEuOTZ6bS05My4xLTYyLjloLS44Yy0xMC4xIDAtMTUuMyA0LjctMTUuMyAxNC4xVjI3NmMwIDkuMyA1LjIgMTQuMSAxNS4zIDE0LjFoLjhjMTAuMSAwIDE1LjMtNC44IDE1LjMtMTQuMXYtNDAuMWMwLTkuMzYtNS4yLTE0LjA2LTE1LjMtMTQuMDZ6bTEwLjIgNTIuNGMtLjEgOC0zIDExLjEtMTAuNSAxMS4xcy0xMC41LTMuMS0xMC41LTExLjF2LTM2LjZjMC03LjkgMy0xMS4xIDEwLjUtMTEuMXMxMC41IDMuMiAxMC41IDExLjF6bS00Ni41LTE0LjVjNi4xLTEuNiA5LjItNi4xIDkuMi0xMy4zdi05LjdjMC05LjQtNS4yLTE0LjEtMTUuMy0xNC4xaC0xMy43YTEuODEgMS44MSAwIDAgMC0yIDEuOXY2M2ExLjgxIDEuODEgMCAwIDAgMiAxLjloMS4yYTEuNzQgMS43NCAwIDAgMCAxLjktMS45di0yNi45aDExLjZsMTAuNCAyNy4yYTIuMzIgMi4zMiAwIDAgMCAyLjMgMS41aDEuNWMxLjQgMCAyLTEgMS41LTIuM3ptLTYuNC0zLjlIMzU1di0yOC41aDEwLjJjNy41IDAgMTAuNSAzLjEgMTAuNSAxMS4xdjYuNGMwIDcuODQtMyAxMS4wNC0xMC41IDExLjA0em04NS45LTMzLjFoLTEzLjdhMS42MiAxLjYyIDAgMCAwLTIgMS44djYzYTEuODEgMS44MSAwIDAgMCAyIDEuOWgxLjJhMS43NCAxLjc0IDAgMCAwIDEuOS0xLjl2LTI2LjFoMTAuNmMxMC4xIDAgMTUuMy00LjggMTUuMy0xNC4xdi0xMC41YzAtOS40LTUuMi0xNC4xLTE1LjMtMTQuMXptMTAuMiAyMi44YzAgNy45LTMgMTEuMS0xMC41IDExLjFoLTEwLjJ2LTI5LjJoMTAuMmM3LjUtLjEgMTAuNSAzLjEgMTAuNSAxMXpNMjU5LjUgMzA4bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTIyNy42LTEzNi4xYTM2NC40MiAzNjQuNDIgMCAwIDAtMzUuNi0xMS4zYzE5LjYtNzggMTEuNi0xMzQuNy0yMi4zLTE1My45QzM5NC43LTEyLjY2IDM0My4zIDExIDI5MSA2MS45NHE1LjEgNC45NSAxMC4yIDEwLjJjODIuNS04MCAxMTkuNi01My41IDEyMC45LTUyLjggMjIuNCAxMi43IDM2IDU1LjggMTUuNSAxMzcuOGE1ODcuODMgNTg3LjgzIDAgMCAwLTg0LjYtMTNDMjgxLjEgNDMuNjQgMjEyLjQgMiAxNzAuOCAyIDE0MCAyIDEyNyAyMyAxMjMuMiAyOS43NGMtMTguMSAzMi0xMy4zIDg0LjIuMSAxMzMuOC03MC41IDIwLjMtMTIwLjcgNTQuMS0xMjAuMyA5NSAuNSA1OS42IDEwMy4yIDg3LjggMTIyLjEgOTIuOC0yMC41IDgxLjktMTAuMSAxMzUuNiAyMi4zIDE1My45IDI4IDE1LjggNzUuMSA2IDEzOC4yLTU1LjJxLTUuMS00Ljk1LTEwLjItMTAuMmMtODIuNSA4MC0xMTkuNyA1My41LTEyMC45IDUyLjgtMjIuMy0xMi42LTM2LTU1LjYtMTUuNS0xMzcuOSAxMi40IDIuOSA0MS44IDkuNSA4NC42IDEzIDcxLjkgMTAwLjQgMTQwLjYgMTQyIDE4Mi4xIDE0MiAzMC44IDAgNDMuOC0yMSA0Ny42LTI3LjcgMTgtMzEuOSAxMy4zLTg0LjEtLjEtMTMzLjggMTUyLjMtNDMuOCAxNTYuMi0xMzAuMiAzMy45LTE3Ni4zek0xMzUuOSAzNi44NGMyLjktNS4xIDExLjktMjAuMyAzNC45LTIwLjMgMzYuOCAwIDk4LjggMzkuNiAxNjMuMyAxMjYuMmE3MTQgNzE0IDAgMCAwLTkzLjkuOSA1NDcuNzYgNTQ3Ljc2IDAgMCAxIDQyLjItNTIuNFEyNzcuMyA4NiAyNzIuMiA4MWE1OTguMjUgNTk4LjI1IDAgMCAwLTUwLjcgNjQuMiA1NjkuNjkgNTY5LjY5IDAgMCAwLTg0LjQgMTQuNmMtLjItMS40LTI0LjMtODIuMi0xLjItMTIzem0zMDQuOCA0MzguM2MtMi45IDUuMS0xMS44IDIwLjMtMzQuOSAyMC4zLTM2LjcgMC05OC43LTM5LjQtMTYzLjMtMTI2LjJhNjk1LjM4IDY5NS4zOCAwIDAgMCA5My45LS45IDU0Ny43NiA1NDcuNzYgMCAwIDEtNDIuMiA1Mi40cTUuMSA1LjI1IDEwLjIgMTAuMmE1ODguNDcgNTg4LjQ3IDAgMCAwIDUwLjctNjQuMmM0Ny4zLTQuNyA4MC4zLTEzLjUgODQuNC0xNC42IDIyLjcgODQuNCA0LjUgMTE3IDEuMiAxMjN6bTkuMS0xMzguNmMtMy42LTExLjktNy43LTI0LjEtMTIuNC0zNi40YTEyLjY3IDEyLjY3IDAgMCAxLTEwLjctNS43bC0uMS4xYTE5LjYxIDE5LjYxIDAgMCAxLTUuNCAzLjZjNS43IDE0LjMgMTAuNiAyOC40IDE0LjcgNDIuMmE1MzUuMyA1MzUuMyAwIDAgMS03MiAxM2MzLjUtNS4zIDE3LjItMjYuMiAzMi4yLTU0LjJhMjQuNiAyNC42IDAgMCAxLTYtMy4yYy0xLjEgMS4yLTMuNiA0LjItMTAuOSA0LjItNi4yIDExLjItMTcuNCAzMC45LTMzLjkgNTUuMmE3MTEuOTEgNzExLjkxIDAgMCAxLTExMi40IDFjLTcuOS0xMS4yLTIxLjUtMzEuMS0zNi44LTU3LjhhMjEgMjEgMCAwIDEtMy0xLjVjLTEuOSAxLjYtMy45IDMuMi0xMi42IDMuMiA2LjMgMTEuMiAxNy41IDMwLjcgMzMuOCA1NC42YTU0OC44MSA1NDguODEgMCAwIDEtNzIuMi0xMS43cTUuODUtMjEgMTQuMS00Mi45Yy0zLjIgMC01LjQuMi04LjQtMWExNy41OCAxNy41OCAwIDAgMS02LjkgMWMtNC45IDEzLjQtOS4xIDI2LjUtMTIuNyAzOS40Qy0zMS43IDI5Ny0xMi4xIDIxNiAxMjYuNyAxNzUuNjRjMy42IDExLjkgNy43IDI0LjEgMTIuNCAzNi40IDEwLjQgMCAxMi45IDMuNCAxNC40IDUuM2ExMiAxMiAwIDAgMSAyLjMtMi4yYy01LjgtMTQuNy0xMC45LTI5LjItMTUuMi00My4zIDctMS44IDMyLjQtOC40IDcyLTEzLTE1LjkgMjQuMy0yNi43IDQzLjktMzIuOCA1NS4zYTE0LjIyIDE0LjIyIDAgMCAxIDYuNCA4IDIzLjQyIDIzLjQyIDAgMCAxIDEwLjItOC40YzYuNS0xMS43IDE3LjktMzEuOSAzNC44LTU2LjlhNzExLjcyIDcxMS43MiAwIDAgMSAxMTIuNC0xYzMxLjUgNDQuNiAyOC45IDQ4LjEgNDIuNSA2NC41YTIxLjQyIDIxLjQyIDAgMCAxIDEwLjQtNy40Yy02LjQtMTEuNC0xNy42LTMxLTM0LjMtNTUuNSA0MC40IDQuMSA2NSAxMCA3Mi4yIDExLjctNCAxNC40LTguOSAyOS4yLTE0LjYgNDQuMmEyMC43NCAyMC43NCAwIDAgMSA2LjggNC4zbC4xLjFhMTIuNzIgMTIuNzIgMCAwIDEgOC45LTUuNmM0LjktMTMuNCA5LjItMjYuNiAxMi44LTM5LjVhMzU5LjcxIDM1OS43MSAwIDAgMSAzNC41IDExYzEwNi4xIDM5LjkgNzQgODcuOSA3Mi42IDkwLjQtMTkuOCAzNS4xLTgwLjEgNTUuMi0xMDUuNyA2Mi41em0tMTE0LjQtMTE0aC0xLjJhMS43NCAxLjc0IDAgMCAwLTEuOSAxLjl2NDkuOGMwIDcuOS0yLjYgMTEuMS0xMC4xIDExLjFzLTEwLjEtMy4xLTEwLjEtMTEuMXYtNDkuOGExLjY5IDEuNjkgMCAwIDAtMS45LTEuOUgzMDlhMS44MSAxLjgxIDAgMCAwLTIgMS45djUxLjVjMCA5LjYgNSAxNC4xIDE1LjEgMTQuMWguNGMxMC4xIDAgMTUuMS00LjYgMTUuMS0xNC4xdi01MS41YTIgMiAwIDAgMC0yLjItMS45ek0zMjEuNyAzMDhsLTIuMy02LjgtMi4zIDYuOC03LjEuMSA1LjcgNC4zLTIuMSA2LjggNS44LTQuMSA1LjggNC4xLTIuMS02LjggNS43LTQuM3ptLTMxLjEgNy40bC0yLjMtNi44LTIuMyA2LjgtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjN6bTUuMS0zMC44aC0xOS40di0yNi43aDE2LjFhMS44OSAxLjg5IDAgMCAwIDItMnYtLjhhMS44OSAxLjg5IDAgMCAwLTItMmgtMTYuMXYtMjUuOGgxOS4xYTEuODkgMS44OSAwIDAgMCAyLTJ2LS44YTEuNzcgMS43NyAwIDAgMC0yLTEuOWgtMjIuMmExLjgxIDEuODEgMCAwIDAtMiAxLjl2NjNhMS44MSAxLjgxIDAgMCAwIDIgMS45aDIyLjVhMS43NyAxLjc3IDAgMCAwIDItMS45di0uOGExLjgzIDEuODMgMCAwIDAtMi0yLjA2em0tNy40LTk5LjRMMjg2IDE5MmwtNy4xLjEgNS43IDQuMy0yLjEgNi44IDUuOC00LjEgNS44IDQuMS0yLjEtNi44IDUuNy00LjMtNy4xLS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWFkbWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4LjMgNDYuNUgzODguNWMtNDguMSAwLTg5LjkgMzMuMy0xMDAuNCA4MC4zLTEwLjYtNDctNTIuMy04MC4zLTEwMC40LTgwLjNINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djI0NS44YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDg5LjdjMTAyLjIgMCAxMzIuNyAyNC40IDE0Ny4zIDc1IC43IDIuOCA1LjIgMi44IDYgMCAxNC43LTUwLjYgNDUuMi03NSAxNDcuMy03NUg1MjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWOTQuNmMwLTI2LjQtMjEuMy00Ny45LTQ3LjctNDguMXpNMjQyIDMxMS45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjVWMjg5YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUg3OC4yYy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNVYyNTF6bTAtNjAuOWMwIDEuOS0xLjUgMy41LTMuNSAzLjVINzguMmMtMS45IDAtMy41LTEuNS0zLjUtMy41di0yMi45YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMjU5LjMgMTIxLjdjMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjV2LTIyLjljMC0xLjkgMS41LTMuNSAzLjUtMy41aDE2MC40YzEuOSAwIDMuNSAxLjUgMy41IDMuNXYyMi45em0wLTYwLjljMCAxLjktMS41IDMuNS0zLjUgMy41SDMzNy41Yy0xLjkgMC0zLjUtMS41LTMuNS0zLjVWMjI4YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjV2MjIuOXptMC02MC45YzAgMS45LTEuNSAzLjUtMy41IDMuNUgzMzcuNWMtMS45IDAtMy41LTEuNS0zLjUtMy41di0yMi44YzAtMS45IDEuNS0zLjUgMy41LTMuNWgxNjAuNGMxLjkgMCAzLjUgMS41IDMuNSAzLjVWMTkwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWJlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuNSA1MDRDMTE3LjIgNTA0IDkgMzg3LjggMTMuMiAyNDkuOSAxNiAxNzAuNyA1Ni40IDk3LjcgMTI5LjcgNDkuNWMuMyAwIDEuOS0uNiAxLjEuOC01LjggNS41LTExMS4zIDEyOS44LTE0LjEgMjI2LjQgNDkuOCA0OS41IDkwIDIuNSA5MCAyLjUgMzguNS01MC4xLS42LTEyNS45LS42LTEyNS45LTEwLTI0LjktNDUuNy00MC4xLTQ1LjctNDAuMWwyOC44LTMxLjhjMjQuNCAxMC41IDQzLjIgMzguNyA0My4yIDM4LjcuOC0yOS42LTIxLjktNjEuNC0yMS45LTYxLjRMMjU1LjEgOGw0NC4zIDUwLjFjLTIwLjUgMjguOC0yMS45IDYyLjYtMjEuOSA2Mi42IDEzLjgtMjMgNDMuNS0zOS4zIDQzLjUtMzkuM2wyOC41IDMxLjhjLTI3LjQgOC45LTQ1LjQgMzkuOS00NS40IDM5LjktMTUuOCAyOC41LTI3LjEgODkuNC42IDEyNy4zIDMyLjQgNDQuNiA4Ny43LTIuOCA4Ny43LTIuOCAxMDIuNy05MS45LTEwLjUtMjI1LTEwLjUtMjI1LTYuMS01LjUuOC0yLjguOC0yLjggNTAuMSAzNi41IDExNC42IDg0LjQgMTE2LjIgMjA0LjhDNTAwLjkgNDAwLjIgMzk5IDUwNCAyNTYuNSA1MDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZFJpdmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1My4yIDMySDk0LjhDNDIuNCAzMiAwIDc0LjQgMCAxMjYuOHYyNTguNEMwIDQzNy42IDQyLjQgNDgwIDk0LjggNDgwaDI1OC40YzUyLjQgMCA5NC44LTQyLjQgOTQuOC05NC44VjEyNi44YzAtNTIuNC00Mi40LTk0LjgtOTQuOC05NC44ek0xNDQuOSAyMDAuOXY1Ni4zYzAgMjctMjEuOSA0OC45LTQ4LjkgNDguOVYxNTEuOWMwLTEzLjIgMTAuNy0yMy45IDIzLjktMjMuOWgxNTQuMmMwIDI3LTIxLjkgNDguOS00OC45IDQ4LjloLTU2LjNjLTEyLjMtLjYtMjQuNiAxMS42LTI0IDI0em0xNzYuMyA3MmgtNTYuM2MtMTIuMy0uNi0yNC42IDExLjYtMjQgMjR2NTYuM2MwIDI3LTIxLjkgNDguOS00OC45IDQ4LjlWMjQ3LjljMC0xMy4yIDEwLjctMjMuOSAyMy45LTIzLjloMTU0LjJjMCAyNy0yMS45IDQ4LjktNDguOSA0OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRkaXRBbGllbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDAuMyAyMDMuNWMtMTUgMC0yOC4yIDYuMi0zNy45IDE1LjktMzUuNy0yNC43LTgzLjgtNDAuNi0xMzcuMS00Mi4zTDI5MyA1Mi4zbDg4LjIgMTkuOGMwIDIxLjYgMTcuNiAzOS4yIDM5LjIgMzkuMiAyMiAwIDM5LjctMTguMSAzOS43LTM5LjdzLTE3LjYtMzkuNy0zOS43LTM5LjdjLTE1LjQgMC0yOC43IDkuMy0zNS4zIDIybC05Ny40LTIxLjZjLTQuOS0xLjMtOS43IDIuMi0xMSA3LjFMMjQ2LjMgMTc3Yy01Mi45IDIuMi0xMDAuNSAxOC4xLTEzNi4zIDQyLjgtOS43LTEwLjEtMjMuNC0xNi4zLTM4LjQtMTYuMy01NS42IDAtNzMuOCA3NC42LTIyLjkgMTAwLjEtMS44IDcuOS0yLjYgMTYuMy0yLjYgMjQuNyAwIDgzLjggOTQuNCAxNTEuNyAyMTAuMyAxNTEuNyAxMTYuNCAwIDIxMC44LTY3LjkgMjEwLjgtMTUxLjcgMC04LjQtLjktMTcuMi0zLjEtMjUuMSA0OS45LTI1LjYgMzEuNS05OS43LTIzLjgtOTkuN3pNMTI5LjQgMzA4LjljMC0yMiAxNy42LTM5LjcgMzkuNy0zOS43IDIxLjYgMCAzOS4yIDE3LjYgMzkuMiAzOS43IDAgMjEuNi0xNy42IDM5LjItMzkuMiAzOS4yLTIyIC4xLTM5LjctMTcuNi0zOS43LTM5LjJ6bTIxNC4zIDkzLjVjLTM2LjQgMzYuNC0xMzkuMSAzNi40LTE3NS41IDAtNC0zLjUtNC05LjcgMC0xMy43IDMuNS0zLjUgOS43LTMuNSAxMy4yIDAgMjcuOCAyOC41IDEyMCAyOSAxNDkgMCAzLjUtMy41IDkuNy0zLjUgMTMuMiAwIDQuMSA0IDQuMSAxMC4yLjEgMTMuN3ptLS44LTU0LjJjLTIxLjYgMC0zOS4yLTE3LjYtMzkuMi0zOS4yIDAtMjIgMTcuNi0zOS43IDM5LjItMzkuNyAyMiAwIDM5LjcgMTcuNiAzOS43IDM5LjctLjEgMjEuNS0xNy43IDM5LjItMzkuNyAzOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWRkaXRTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjgzLjIgMzQ1LjVjMi43IDIuNyAyLjcgNi44IDAgOS4yLTI0LjUgMjQuNS05My44IDI0LjYtMTE4LjQgMC0yLjctMi40LTIuNy02LjUgMC05LjIgMi40LTIuNCA2LjUtMi40IDguOSAwIDE4LjcgMTkuMiA4MSAxOS42IDEwMC41IDAgMi40LTIuMyA2LjYtMi4zIDkgMHptLTkxLjMtNTMuOGMwLTE0LjktMTEuOS0yNi44LTI2LjUtMjYuOC0xNC45IDAtMjYuOCAxMS45LTI2LjggMjYuOCAwIDE0LjYgMTEuOSAyNi41IDI2LjggMjYuNSAxNC42IDAgMjYuNS0xMS45IDI2LjUtMjYuNXptOTAuNy0yNi44Yy0xNC42IDAtMjYuNSAxMS45LTI2LjUgMjYuOCAwIDE0LjYgMTEuOSAyNi41IDI2LjUgMjYuNSAxNC45IDAgMjYuOC0xMS45IDI2LjgtMjYuNSAwLTE0LjktMTEuOS0yNi44LTI2LjgtMjYuOHpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tOTkuNyAxNDAuNmMtMTAuMSAwLTE5IDQuMi0yNS42IDEwLjctMjQuMS0xNi43LTU2LjUtMjcuNC05Mi41LTI4LjZsMTguNy04NC4yIDU5LjUgMTMuNGMwIDE0LjYgMTEuOSAyNi41IDI2LjUgMjYuNSAxNC45IDAgMjYuOC0xMi4yIDI2LjgtMjYuOCAwLTE0LjYtMTEuOS0yNi44LTI2LjgtMjYuOC0xMC40IDAtMTkuMyA2LjItMjMuOCAxNC45bC02NS43LTE0LjZjLTMuMy0uOS02LjUgMS41LTcuNCA0LjhsLTIwLjUgOTIuOGMtMzUuNyAxLjUtNjcuOCAxMi4yLTkxLjkgMjguOS02LjUtNi44LTE1LjgtMTEtMjUuOS0xMS0zNy41IDAtNDkuOCA1MC40LTE1LjUgNjcuNS0xLjIgNS40LTEuOCAxMS0xLjggMTYuNyAwIDU2LjUgNjMuNyAxMDIuMyAxNDEuOSAxMDIuMyA3OC41IDAgMTQyLjItNDUuOCAxNDIuMi0xMDIuMyAwLTUuNy0uNi0xMS42LTIuMS0xNyAzMy42LTE3LjIgMjEuMi02Ny4yLTE2LjEtNjcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMS41IDMwNS41Yy0xMy44IDAtMjQuOS0xMS4xLTI0LjktMjQuNiAwLTEzLjggMTEuMS0yNC45IDI0LjktMjQuOSAxMy42IDAgMjQuNiAxMS4xIDI0LjYgMjQuOSAwIDEzLjYtMTEuMSAyNC42LTI0LjYgMjQuNnpNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4em0tMTMyLjMtNDEuMmMtOS40IDAtMTcuNyAzLjktMjMuOCAxMC0yMi40LTE1LjUtNTIuNi0yNS41LTg2LjEtMjYuNmwxNy40LTc4LjMgNTUuNCAxMi41YzAgMTMuNiAxMS4xIDI0LjYgMjQuNiAyNC42IDEzLjggMCAyNC45LTExLjMgMjQuOS0yNC45cy0xMS4xLTI0LjktMjQuOS0yNC45Yy05LjcgMC0xOCA1LjgtMjIuMSAxMy44bC02MS4yLTEzLjZjLTMtLjgtNi4xIDEuNC02LjkgNC40bC0xOS4xIDg2LjRjLTMzLjIgMS40LTYzLjEgMTEuMy04NS41IDI2LjgtNi4xLTYuNC0xNC43LTEwLjItMjQuMS0xMC4yLTM0LjkgMC00Ni4zIDQ2LjktMTQuNCA2Mi44LTEuMSA1LTEuNyAxMC4yLTEuNyAxNS41IDAgNTIuNiA1OS4yIDk1LjIgMTMyIDk1LjIgNzMuMSAwIDEzMi4zLTQyLjYgMTMyLjMtOTUuMiAwLTUuMy0uNi0xMC44LTEuOS0xNS44IDMxLjMtMTYgMTkuOC02Mi41LTE0LjktNjIuNXpNMzAyLjggMzMxYy0xOC4yIDE4LjItNzYuMSAxNy45LTkzLjYgMC0yLjItMi4yLTYuMS0yLjItOC4zIDAtMi41IDIuNS0yLjUgNi40IDAgOC42IDIyLjggMjIuOCA4Ny4zIDIyLjggMTEwLjIgMCAyLjUtMi4yIDIuNS02LjEgMC04LjYtMi4yLTIuMi02LjEtMi4yLTguMyAwem03LjctNzVjLTEzLjYgMC0yNC42IDExLjEtMjQuNiAyNC45IDAgMTMuNiAxMS4xIDI0LjYgMjQuNiAyNC42IDEzLjggMCAyNC45LTExLjEgMjQuOS0yNC42IDAtMTMuOC0xMS0yNC45LTI0LjktMjQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0MS41MiAyODUuNTZjMzMuNjUgMCA4Mi4zNC02Ljk0IDgyLjM0LTQ3IC4yMi02Ljc0Ljg2LTEuODItMjAuODgtOTYuMjQtNC42Mi0xOS4xNS04LjY4LTI3Ljg0LTQyLjMxLTQ0LjY1LTI2LjA5LTEzLjM0LTgyLjkyLTM1LjM3LTk5LjczLTM1LjM3LTE1LjY2IDAtMjAuMiAyMC4xNy0zOC44NyAyMC4xNy0xOCAwLTMxLjMxLTE1LjA2LTQ4LjEyLTE1LjA2LTE2LjE0IDAtMjYuNjYgMTEtMzQuNzggMzMuNjItMjcuNSA3Ny41NS0yNi4yOCA3NC4yNy0yNi4xMiA3OC4yNyAwIDI0LjggOTcuNjQgMTA2LjExIDIyOC40NyAxMDYuMTFNNDI5IDI1NC44NGM0LjY1IDIyIDQuNjUgMjQuMzUgNC42NSAyNy4yNSAwIDM3LjY2LTQyLjMzIDU4LjU2LTk4IDU4LjU2LTEyNS43NC4wOC0yMzUuOTEtNzMuNjUtMjM1LjkxLTEyMi4zM2E0OS41NSA0OS41NSAwIDAgMSA0LjA2LTE5LjcyQzU4LjU2IDIwMC44NiAwIDIwOC45MyAwIDI2MC42M2MwIDg0LjY3IDIwMC42MyAxODkgMzU5LjQ5IDE4OSAxMjEuNzkgMCAxNTIuNTEtNTUuMDggMTUyLjUxLTk4LjU4IDAtMzQuMjEtMjkuNTktNzMuMDUtODIuOTMtOTYuMjRcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVucmVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNCAxNjkuMWMwIDExMC40LTYxIDIwNS40LTE0Ny42IDI0Ny40QzMwIDM3My4yIDggMzE3LjcgOCAyNTYuNiA4IDEzMy45IDk3LjEgMzIuMiAyMTQgMTIuNXYxNTYuNnpNMjU1IDUwNGMtNDIuOSAwLTgzLjMtMTEtMTE4LjUtMzAuNEMxOTMuNyA0MzcuNSAyMzkuOSAzODIuOSAyNTUgMzE5YzE1LjUgNjMuOSA2MS43IDExOC41IDExOC44IDE1NC43QzMzOC43IDQ5MyAyOTguMyA1MDQgMjU1IDUwNHptMTkwLjYtODcuNUMzNTkgMzc0LjUgMjk4IDI3OS42IDI5OCAxNjkuMVYxMi41YzExNi45IDE5LjcgMjA2IDEyMS40IDIwNiAyNDQuMSAwIDYxLjEtMjIgMTE2LjYtNTguNCAxNTkuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVwbHlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCA0ODBIMTI4QzU3LjYgNDgwIDAgNDIyLjQgMCAzNTJWMTYwQzAgODkuNiA1Ny42IDMyIDEyOCAzMmgxOTJjNzAuNCAwIDEyOCA1Ny42IDEyOCAxMjh2MTkyYzAgNzAuNC01Ny42IDEyOC0xMjggMTI4ek0xOTMuNCAyNzMuMmMtNi4xLTItMTEuNi0zLjEtMTYuNC0zLjEtNy4yIDAtMTMuNSAxLjktMTguOSA1LjYtNS40IDMuNy05LjYgOS0xMi44IDE1LjhoLTEuMWwtNC4yLTE4LjNoLTI4djEzOC45aDM2LjF2LTg5LjdjMS41LTUuNCA0LjQtOS44IDguNy0xMy4yIDQuMy0zLjQgOS44LTUuMSAxNi4yLTUuMSA0LjYgMCA5LjggMSAxNS42IDMuMWw0LjgtMzR6bTExNS4yIDEwMy40Yy0zLjIgMi40LTcuNyA0LjgtMTMuNyA3LjEtNiAyLjMtMTIuOCAzLjUtMjAuNCAzLjUtMTIuMiAwLTIxLjEtMy0yNi41LTguOS01LjUtNS45LTguNS0xNC43LTktMjYuNGg4My4zYy45LTQuOCAxLjYtOS40IDIuMS0xMy45LjUtNC40LjctOC42LjctMTIuNSAwLTEwLjctMS42LTE5LjctNC43LTI2LjktMy4yLTcuMi03LjMtMTMtMTIuNS0xNy4yLTUuMi00LjMtMTEuMS03LjMtMTcuOC05LjItNi43LTEuOC0xMy41LTIuOC0yMC42LTIuOC0yMS4xIDAtMzcuNSA2LjEtNDkuMiAxOC4zcy0xNy41IDMwLjUtMTcuNSA1NWMwIDIyLjggNS4yIDQwLjcgMTUuNiA1My43IDEwLjQgMTMuMSAyNi44IDE5LjYgNDkuMiAxOS42IDEwLjcgMCAyMC45LTEuNSAzMC40LTQuNiA5LjUtMy4xIDE3LjEtNi44IDIyLjYtMTEuMmwtMTItMjMuNnptLTIxLjgtNzAuM2MzLjggNS40IDUuMyAxMy4xIDQuNiAyMy4xaC01MS43Yy45LTkuNCAzLjctMTcgOC4yLTIyLjYgNC41LTUuNiAxMS41LTguNSAyMS04LjUgOC4yLS4xIDE0LjEgMi42IDE3LjkgOHptNzkuOSAyLjVjNC4xIDMuOSA5LjQgNS44IDE2LjEgNS44IDcgMCAxMi42LTEuOSAxNi43LTUuOHM2LjEtOS4xIDYuMS0xNS42LTItMTEuNi02LjEtMTUuNGMtNC4xLTMuOC05LjYtNS43LTE2LjctNS43LTYuNyAwLTEyIDEuOS0xNi4xIDUuNy00LjEgMy44LTYuMSA4LjktNi4xIDE1LjRzMiAxMS43IDYuMSAxNS42em0wIDEwMC41YzQuMSAzLjkgOS40IDUuOCAxNi4xIDUuOCA3IDAgMTIuNi0xLjkgMTYuNy01LjhzNi4xLTkuMSA2LjEtMTUuNi0yLTExLjYtNi4xLTE1LjRjLTQuMS0zLjgtOS42LTUuNy0xNi43LTUuNy02LjcgMC0xMiAxLjktMTYuMSA1LjctNC4xIDMuOC02LjEgOC45LTYuMSAxNS40IDAgNi42IDIgMTEuNyA2LjEgMTUuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVzZWFyY2hnYXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJ2NDQ4aDQ0OFYzMkgwem0yNjIuMiAzMzQuNGMtNi42IDMtMzMuMiA2LTUwLTE0LjItOS4yLTEwLjYtMjUuMy0zMy4zLTQyLjItNjMuNi04LjkgMC0xNC43IDAtMjEuNC0uNnY0Ni40YzAgMjMuNSA2IDIxLjIgMjUuOCAyMy45djguMWMtNi45LS4zLTIzLjEtLjgtMzUuNi0uOC0xMy4xIDAtMjYuMS42LTMzLjYuOHYtOC4xYzE1LjUtMi45IDIyLTEuMyAyMi0yMy45VjIyNWMwLTIyLjYtNi40LTIxLTIyLTIzLjlWMTkzYzI1LjggMSA1My4xLS42IDcwLjktLjYgMzEuNyAwIDU1LjkgMTQuNCA1NS45IDQ1LjYgMCAyMS4xLTE2LjcgNDIuMi0zOS4yIDQ3LjUgMTMuNiAyNC4yIDMwIDQ1LjYgNDIuMiA1OC45IDcuMiA3LjggMTcuMiAxNC43IDI3LjIgMTQuN3Y3LjN6bTIyLjktMTM1Yy0yMy4zIDAtMzIuMi0xNS43LTMyLjItMzIuMlYxNjdjMC0xMi4yIDguOC0zMC40IDM0LTMwLjRzMzAuNCAxNy45IDMwLjQgMTcuOWwtMTAuNyA3LjJzLTUuNS0xMi41LTE5LjctMTIuNWMtNy45IDAtMTkuNyA3LjMtMTkuNyAxOS43djI2LjhjMCAxMy40IDYuNiAyMy4zIDE3LjkgMjMuMyAxNC4xIDAgMjEuNS0xMC45IDIxLjUtMjYuOGgtMTcuOXYtMTAuN2gzMC40YzAgMjAuNSA0LjcgNDkuOS0zNCA0OS45em0tMTE2LjUgNDQuN2MtOS40IDAtMTMuNi0uMy0yMC0uOHYtNjkuN2M2LjQtLjYgMTUtLjYgMjIuNS0uNiAyMy4zIDAgMzcuMiAxMi4yIDM3LjIgMzQuNSAwIDIxLjktMTUgMzYuNi0zOS43IDM2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlc29sdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODEuMiAyNzguMmM0Ni0xMy4zIDQ5LjYtMjMuNSA0NC00My40TDMxNCAxOTUuNWMtNi4xLTIwLjktMTguNC0yOC4xLTcxLjEtMTIuOEw1NC43IDIzNi44bDI4LjYgOTguNiAxOTcuOS01Ny4yek0yNDguNSA4QzEzMS40IDggMzMuMiA4OC43IDcuMiAxOTcuNWwyMjEuOS02My45YzM0LjgtMTAuMiA1NC4yLTExLjcgNzkuMy04LjIgMzYuMyA2LjEgNTIuNyAyNSA2MS40IDU1LjJsMTAuNyAzNy44YzguMiAyOC4xIDEgNTAuNi0yMy41IDczLjYtMTkuNCAxNy40LTMxLjIgMjQuNS02MS40IDMzLjJMMjAzIDM1MS44bDIyMC40IDI3LjEgOS43IDM0LjItNDguMSAxMy4zLTI4Ni44LTM3LjMgMjMgODAuMmMzNi44IDIyIDgwLjMgMzQuNyAxMjYuMyAzNC43IDEzNyAwIDI0OC41LTExMS40IDI0OC41LTI0OC4zQzQ5NyAxMTkuNCAzODUuNSA4IDI0OC41IDh6TTM4LjMgMzg4LjZMMCAyNTYuOGMwIDQ4LjUgMTQuMyA5My40IDM4LjMgMTMxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJldiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODkuNjcgMjc0Ljg5YTY1LjU3IDY1LjU3IDAgMSAxLTY1LjU2LTY1LjU2IDY1LjY0IDY1LjY0IDAgMCAxIDY1LjU2IDY1LjU2em0xMzkuNTUtNS4wNWgtLjEzYTIwNC42OSAyMDQuNjkgMCAwIDAtNzQuMzItMTUzbC00NS4zOCAyNi4yYTE1Ny4wNyAxNTcuMDcgMCAwIDEgNzEuODEgMTMxLjg0QzM4MS4yIDM2MS41IDMxMC43MyA0MzIgMjI0LjExIDQzMlM2NyAzNjEuNSA2NyAyNzQuODhjMC04MS44OCA2My0xNDkuMjcgMTQzLTE1Ni40M3YzOS4xMmwxMDguNzctNjIuNzlMMjEwIDMydjM4LjMyYy0xMDYuNyA3LjI1LTE5MSA5Ni0xOTEgMjA0LjU3IDAgMTExLjU5IDg5LjEyIDIwMi4yOSAyMDAuMDYgMjA1di4xMWgyMTAuMTZWMjY5Ljg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2NrZXRjaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4NC4wNDYsMjI0LjhhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNywzNC4yMTcsMCwwLDAsMjg0LjA0NiwyMjQuOFptLTExMC40NSwwYTM0LjExNCwzNC4xMTQsMCwxLDAsMzQuMzE3LDM0LjExM0EzNC4yMTcsMzQuMjE3LDAsMCwwLDE3My42LDIyNC44Wm0yMjAuOTIzLDBhMzQuMTE0LDM0LjExNCwwLDEsMCwzNC4zMTcsMzQuMTEzQTM0LjIxNSwzNC4yMTUsMCwwLDAsMzk0LjUxOSwyMjQuOFptMTUzLjgwNy01NS4zMTljLTE1LjUzNS0yNC4xNzItMzcuMzEtNDUuNTctNjQuNjgxLTYzLjYxOC01Mi44ODYtMzQuODE3LTEyMi4zNzQtNTQtMTk1LjY2Ni01NGE0MDUuOTc1LDQwNS45NzUsMCwwLDAtNzIuMDMyLDYuMzU3LDIzOC41MjQsMjM4LjUyNCwwLDAsMC00OS41MS0zNi41ODhDOTkuNjg0LTExLjcsNDAuODU5LjcxMSwxMS4xMzUsMTEuNDIxQTE0LjI5MSwxNC4yOTEsMCwwLDAsNS41OCwzNC43ODJDMjYuNTQyLDU2LjQ1OCw2MS4yMjIsOTkuMyw1Mi43LDEzOC4yNTJjLTMzLjE0MiwzMy45LTUxLjExMiw3NC43NzYtNTEuMTEyLDExNy4zMzcsMCw0My4zNzIsMTcuOTcsODQuMjQ4LDUxLjExMiwxMTguMTQ4LDguNTI2LDM4Ljk1Ni0yNi4xNTQsODEuODE2LTQ3LjExNiwxMDMuNDkxYTE0LjI4NCwxNC4yODQsMCwwLDAsNS41NTUsMjMuMzRjMjkuNzI0LDEwLjcwOSw4OC41NDksMjMuMTQ3LDE1NS4zMjQtMTAuMmEyMzguNjc5LDIzOC42NzksMCwwLDAsNDkuNTEtMzYuNTg5QTQwNS45NzIsNDA1Ljk3MiwwLDAsMCwyODgsNDYwLjE0YzczLjMxMywwLDE0Mi44LTE5LjE1OSwxOTUuNjY3LTUzLjk3NSwyNy4zNzEtMTguMDQ5LDQ5LjE0NS0zOS40MjYsNjQuNjc5LTYzLjYxOSwxNy4zMDktMjYuOTIzLDI2LjA3LTU1LjkxNiwyNi4wNy04Ni4xMjVDNTc0LjM5NCwyMjUuNCw1NjUuNjM0LDE5Ni40Myw1NDguMzI2LDE2OS40ODVaTTI4NC45ODcsNDA5LjlhMzQ1LjY1LDM0NS42NSwwLDAsMS04OS40NDYtMTEuNWwtMjAuMTI5LDE5LjM5M2ExODQuMzY2LDE4NC4zNjYsMCwwLDEtMzcuMTM4LDI3LjU4NSwxNDUuNzY3LDE0NS43NjcsMCwwLDEtNTIuNTIyLDE0Ljg3Yy45ODMtMS43NzEsMS44ODEtMy41NjMsMi44NDItNS4zNTZxMzAuMjU4LTU1LjY4LDE2LjMyNS0xMDAuMDc4Yy0zMi45OTItMjUuOTYyLTUyLjc3OC01OS4yLTUyLjc3OC05NS40LDAtODMuMSwxMDQuMjU0LTE1MC40NjksMjMyLjg0Ni0xNTAuNDY5czIzMi44NjcsNjcuMzczLDIzMi44NjcsMTUwLjQ2OUM1MTcuODU0LDM0Mi41MjUsNDEzLjYsNDA5LjksMjg0Ljk4Nyw0MDkuOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9ja3JtcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNTcuNCA0MTkuNWgtOTBsLTExMi0xMzEuM2MtMTcuOS0yMC40LTMuOS01Ni4xIDI2LjYtNTYuMWg3NS4zbC04NC42LTk5LjMtODQuMyA5OC45aC05MEwxOTMuNSA2Ny4yYzE0LjQtMTguNCA0MS4zLTE3LjMgNTQuNSAwbDE1Ny43IDE4NS4xYzE5IDIyLjggMiA1Ny4yLTI3LjYgNTYuMS0uNiAwLTc0LjIuMi03NC4yLjJsMTAxLjUgMTE4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1c3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA4LjUyLDI0OS43NSw0ODYuNywyMzYuMjRjLS4xNy0yLS4zNC0zLjkzLS41NS01Ljg4bDE4LjcyLTE3LjVhNy4zNSw3LjM1LDAsMCwwLTIuNDQtMTIuMjVsLTI0LTljLS41NC0xLjg4LTEuMDgtMy43OC0xLjY3LTUuNjRsMTUtMjAuODNhNy4zNSw3LjM1LDAsMCwwLTQuNzktMTEuNTRsLTI1LjQyLTQuMTVjLS45LTEuNzMtMS43OS0zLjQ1LTIuNzMtNS4xNWwxMC42OC0yMy40MmE3LjM1LDcuMzUsMCwwLDAtNi45NS0xMC4zOWwtMjUuODIuOTFxLTEuNzktMi4yMi0zLjYxLTQuNEw0MzksODEuODRBNy4zNiw3LjM2LDAsMCwwLDQzMC4xNiw3M0w0MDUsNzguOTNxLTIuMTctMS44My00LjQtMy42MWwuOTEtMjUuODJhNy4zNSw3LjM1LDAsMCwwLTEwLjM5LTdMMzY3LjcsNTMuMjNjLTEuNy0uOTQtMy40My0xLjg0LTUuMTUtMi43M0wzNTguNCwyNS4wOGE3LjM1LDcuMzUsMCwwLDAtMTEuNTQtNC43OUwzMjYsMzUuMjZjLTEuODYtLjU5LTMuNzUtMS4xMy01LjY0LTEuNjdsLTktMjRhNy4zNSw3LjM1LDAsMCwwLTEyLjI1LTIuNDRsLTE3LjUsMTguNzJjLTEuOTUtLjIxLTMuOTEtLjM4LTUuODgtLjU1TDI2Mi4yNSwzLjQ4YTcuMzUsNy4zNSwwLDAsMC0xMi41LDBMMjM2LjI0LDI1LjNjLTIsLjE3LTMuOTMuMzQtNS44OC41NUwyMTIuODYsNy4xM2E3LjM1LDcuMzUsMCwwLDAtMTIuMjUsMi40NGwtOSwyNGMtMS44OS41NS0zLjc5LDEuMDgtNS42NiwxLjY4bC0yMC44Mi0xNWE3LjM1LDcuMzUsMCwwLDAtMTEuNTQsNC43OWwtNC4xNSwyNS40MWMtMS43My45LTMuNDUsMS43OS01LjE2LDIuNzNMMTIwLjg4LDQyLjU1YTcuMzUsNy4zNSwwLDAsMC0xMC4zOSw3bC45MiwyNS44MWMtMS40OSwxLjE5LTMsMi4zOS00LjQyLDMuNjFMODEuODQsNzNBNy4zNiw3LjM2LDAsMCwwLDczLDgxLjg0TDc4LjkzLDEwN2MtMS4yMywxLjQ1LTIuNDMsMi45My0zLjYyLDQuNDFsLTI1LjgxLS45MWE3LjQyLDcuNDIsMCwwLDAtNi4zNywzLjI2LDcuMzUsNy4zNSwwLDAsMC0uNTcsNy4xM2wxMC42NiwyMy40MWMtLjk0LDEuNy0xLjgzLDMuNDMtMi43Myw1LjE2TDI1LjA4LDE1My42YTcuMzUsNy4zNSwwLDAsMC00Ljc5LDExLjU0bDE1LDIwLjgyYy0uNTksMS44Ny0xLjEzLDMuNzctMS42OCw1LjY2bC0yNCw5YTcuMzUsNy4zNSwwLDAsMC0yLjQ0LDEyLjI1bDE4LjcyLDE3LjVjLS4yMSwxLjk1LS4zOCwzLjkxLS41NSw1Ljg4TDMuNDgsMjQ5Ljc1YTcuMzUsNy4zNSwwLDAsMCwwLDEyLjVMMjUuMywyNzUuNzZjLjE3LDIsLjM0LDMuOTIuNTUsNS44N0w3LjEzLDI5OS4xM2E3LjM1LDcuMzUsMCwwLDAsMi40NCwxMi4yNWwyNCw5Yy41NSwxLjg5LDEuMDgsMy43OCwxLjY4LDUuNjVsLTE1LDIwLjgzYTcuMzUsNy4zNSwwLDAsMCw0Ljc5LDExLjU0bDI1LjQyLDQuMTVjLjksMS43MiwxLjc5LDMuNDUsMi43Myw1LjE0TDQyLjU2LDM5MS4xMmE3LjM1LDcuMzUsMCwwLDAsLjU3LDcuMTMsNy4xMyw3LjEzLDAsMCwwLDYuMzcsMy4yNmwyNS44My0uOTFxMS43NywyLjIyLDMuNiw0LjRMNzMsNDMwLjE2QTcuMzYsNy4zNiwwLDAsMCw4MS44NCw0MzlMMTA3LDQzMy4wN3EyLjE4LDEuODMsNC40MSwzLjYxbC0uOTIsMjUuODJhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LDYuOTVsMjMuNDMtMTAuNjhjMS42OS45NCwzLjQyLDEuODMsNS4xNCwyLjczbDQuMTUsMjUuNDJhNy4zNCw3LjM0LDAsMCwwLDExLjU0LDQuNzhsMjAuODMtMTVjMS44Ni42LDMuNzYsMS4xMyw1LjY1LDEuNjhsOSwyNGE3LjM2LDcuMzYsMCwwLDAsMTIuMjUsMi40NGwxNy41LTE4LjcyYzEuOTUuMjEsMy45Mi4zOCw1Ljg4LjU1bDEzLjUxLDIxLjgyYTcuMzUsNy4zNSwwLDAsMCwxMi41LDBsMTMuNTEtMjEuODJjMi0uMTcsMy45My0uMzQsNS44OC0uNTZsMTcuNSwxOC43M2E3LjM2LDcuMzYsMCwwLDAsMTIuMjUtMi40NGw5LTI0YzEuODktLjU1LDMuNzgtMS4wOCw1LjY1LTEuNjhsMjAuODIsMTVhNy4zNCw3LjM0LDAsMCwwLDExLjU0LTQuNzhsNC4xNS0yNS40MmMxLjcyLS45LDMuNDUtMS43OSw1LjE1LTIuNzNsMjMuNDIsMTAuNjhhNy4zNSw3LjM1LDAsMCwwLDEwLjM5LTYuOTVsLS45MS0yNS44MnEyLjIyLTEuNzksNC40LTMuNjFMNDMwLjE2LDQzOWE3LjM2LDcuMzYsMCwwLDAsOC44NC04Ljg0TDQzMy4wNyw0MDVxMS44My0yLjE3LDMuNjEtNC40bDI1LjgyLjkxYTcuMjMsNy4yMywwLDAsMCw2LjM3LTMuMjYsNy4zNSw3LjM1LDAsMCwwLC41OC03LjEzTDQ1OC43NywzNjcuN2MuOTQtMS43LDEuODMtMy40MywyLjczLTUuMTVsMjUuNDItNC4xNWE3LjM1LDcuMzUsMCwwLDAsNC43OS0xMS41NGwtMTUtMjAuODNjLjU5LTEuODcsMS4xMy0zLjc2LDEuNjctNS42NWwyNC05YTcuMzUsNy4zNSwwLDAsMCwyLjQ0LTEyLjI1bC0xOC43Mi0xNy41Yy4yMS0xLjk1LjM4LTMuOTEuNTUtNS44N2wyMS44Mi0xMy41MWE3LjM1LDcuMzUsMCwwLDAsMC0xMi41Wm0tMTUxLDEyOS4wOEExMy45MSwxMy45MSwwLDAsMCwzNDEsMzg5LjUxbC03LjY0LDM1LjY3QTE4Ny41MSwxODcuNTEsMCwwLDEsMTc3LDQyNC40NGwtNy42NC0zNS42NmExMy44NywxMy44NywwLDAsMC0xNi40Ni0xMC42OGwtMzEuNTEsNi43NmExODcuMzgsMTg3LjM4LDAsMCwxLTE2LjI2LTE5LjIxSDI1OC4zYzEuNzIsMCwyLjg5LS4yOSwyLjg5LTEuOTFWMzA5LjU1YzAtMS41Ny0xLjE3LTEuOTEtMi44OS0xLjkxSDIxMy40N2wuMDUtMzQuMzVIMjYyYzQuNDEsMCwyMy42NiwxLjI4LDI5Ljc5LDI1Ljg3LDEuOTEsNy41NSw2LjE3LDMyLjE0LDkuMDYsNDAsMi44OSw4LjgyLDE0LjYsMjYuNDYsMjcuMSwyNi40Nkg0MDdhMTg3LjMsMTg3LjMsMCwwLDEtMTcuMzQsMjAuMDlabTI1Ljc3LDM0LjQ5QTE1LjI0LDE1LjI0LDAsMSwxLDM2OCwzOTguMDhoLjQ0QTE1LjIzLDE1LjIzLDAsMCwxLDM4My4yNCw0MTMuMzJabS0yMjUuNjItLjY4YTE1LjI0LDE1LjI0LDAsMSwxLTE1LjI1LTE1LjI1aC40NUExNS4yNSwxNS4yNSwwLDAsMSwxNTcuNjIsNDEyLjY0Wk02OS41NywyMzQuMTVsMzIuODMtMTQuNmExMy44OCwxMy44OCwwLDAsMCw3LjA2LTE4LjMzTDEwMi42OSwxODZoMjYuNTZWMzA1LjczSDc1LjY1QTE4Ny42NSwxODcuNjUsMCwwLDEsNjkuNTcsMjM0LjE1Wk01OC4zMSwxOTguMDlhMTUuMjQsMTUuMjQsMCwwLDEsMTUuMjMtMTUuMjVINzRhMTUuMjQsMTUuMjQsMCwxLDEtMTUuNjcsMTUuMjRabTE1NS4xNiwyNC40OS4wNS0zNS4zMmg2My4yNmMzLjI4LDAsMjMuMDcsMy43NywyMy4wNywxOC42MiwwLDEyLjI5LTE1LjE5LDE2LjctMjcuNjgsMTYuN1pNMzk5LDMwNi43MWMtOS44LDEuMTMtMjAuNjMtNC4xMi0yMi0xMC4wOS01Ljc4LTMyLjQ5LTE1LjM5LTM5LjQtMzAuNTctNTEuNCwxOC44Ni0xMS45NSwzOC40Ni0yOS42NCwzOC40Ni01My4yNiwwLTI1LjUyLTE3LjQ5LTQxLjU5LTI5LjQtNDkuNDgtMTYuNzYtMTEtMzUuMjgtMTMuMjMtNDAuMjctMTMuMjNIMTE2LjMyQTE4Ny40OSwxODcuNDksMCwwLDEsMjIxLjIxLDcwLjA2bDIzLjQ3LDI0LjZhMTMuODIsMTMuODIsMCwwLDAsMTkuNi40NGwyNi4yNi0yNWExODcuNTEsMTg3LjUxLDAsMCwxLDEyOC4zNyw5MS40M2wtMTgsNDAuNTdBMTQsMTQsMCwwLDAsNDA4LDIyMC40M2wzNC41OSwxNS4zM2ExODcuMTIsMTg3LjEyLDAsMCwxLC40LDMyLjU0SDQyMy43MWMtMS45MSwwLTIuNjksMS4yNy0yLjY5LDMuMTN2OC44MkM0MjEsMzAxLDQwOS4zMSwzMDUuNTgsMzk5LDMwNi43MVpNMjQwLDYwLjIxQTE1LjI0LDE1LjI0LDAsMCwxLDI1NS4yMSw0NWguNDVBMTUuMjQsMTUuMjQsMCwxLDEsMjQwLDYwLjIxWk00MzYuODQsMjE0YTE1LjI0LDE1LjI0LDAsMSwxLDAtMzAuNDhoLjQ0YTE1LjI0LDE1LjI0LDAsMCwxLS40NCwzMC40OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FmYXJpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3NC42OSwyNzQuNjlsLTM3LjM4LTM3LjM4TDE2NiwzNDZaTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhaTTQxMS44NSwxODIuNzlsMTQuNzgtNi4xM0E4LDgsMCwwLDEsNDM3LjA4LDE4MWgwYTgsOCwwLDAsMS00LjMzLDEwLjQ2TDQxOCwxOTcuNTdhOCw4LDAsMCwxLTEwLjQ1LTQuMzNoMEE4LDgsMCwwLDEsNDExLjg1LDE4Mi43OVpNMzE0LjQzLDk0bDYuMTItMTQuNzhBOCw4LDAsMCwxLDMzMSw3NC45MmgwYTgsOCwwLDAsMSw0LjMzLDEwLjQ1bC02LjEzLDE0Ljc4YTgsOCwwLDAsMS0xMC40NSw0LjMzaDBBOCw4LDAsMCwxLDMxNC40Myw5NFpNMjU2LDYwaDBhOCw4LDAsMCwxLDgsOFY4NGE4LDgsMCwwLDEtOCw4aDBhOCw4LDAsMCwxLTgtOFY2OEE4LDgsMCwwLDEsMjU2LDYwWk0xODEsNzQuOTJhOCw4LDAsMCwxLDEwLjQ2LDQuMzNMMTk3LjU3LDk0YTgsOCwwLDEsMS0xNC43OCw2LjEybC02LjEzLTE0Ljc4QTgsOCwwLDAsMSwxODEsNzQuOTJabS02My41OCw0Mi40OWgwYTgsOCwwLDAsMSwxMS4zMSwwTDE0MCwxMjguNzJBOCw4LDAsMCwxLDE0MCwxNDBoMGE4LDgsMCwwLDEtMTEuMzEsMGwtMTEuMzEtMTEuMzFBOCw4LDAsMCwxLDExNy40MSwxMTcuNDFaTTYwLDI1NmgwYTgsOCwwLDAsMSw4LThIODRhOCw4LDAsMCwxLDgsOGgwYTgsOCwwLDAsMS04LDhINjhBOCw4LDAsMCwxLDYwLDI1NlptNDAuMTUsNzMuMjEtMTQuNzgsNi4xM0E4LDgsMCwwLDEsNzQuOTIsMzMxaDBhOCw4LDAsMCwxLDQuMzMtMTAuNDZMOTQsMzE0LjQzYTgsOCwwLDAsMSwxMC40NSw0LjMzaDBBOCw4LDAsMCwxLDEwMC4xNSwzMjkuMjFabTQuMzMtMTM2aDBBOCw4LDAsMCwxLDk0LDE5Ny41N2wtMTQuNzgtNi4xMkE4LDgsMCwwLDEsNzQuOTIsMTgxaDBhOCw4LDAsMCwxLDEwLjQ1LTQuMzNsMTQuNzgsNi4xM0E4LDgsMCwwLDEsMTA0LjQ4LDE5My4yNFpNMTk3LjU3LDQxOGwtNi4xMiwxNC43OGE4LDgsMCwwLDEtMTQuNzktNi4xMmw2LjEzLTE0Ljc4QTgsOCwwLDEsMSwxOTcuNTcsNDE4Wk0yNjQsNDQ0YTgsOCwwLDAsMS04LDhoMGE4LDgsMCwwLDEtOC04VjQyOGE4LDgsMCwwLDEsOC04aDBhOCw4LDAsMCwxLDgsOFptNjctNi45MmgwYTgsOCwwLDAsMS0xMC40Ni00LjMzTDMxNC40Myw0MThhOCw4LDAsMCwxLDQuMzMtMTAuNDVoMGE4LDgsMCwwLDEsMTAuNDUsNC4zM2w2LjEzLDE0Ljc4QTgsOCwwLDAsMSwzMzEsNDM3LjA4Wm02My41OC00Mi40OWgwYTgsOCwwLDAsMS0xMS4zMSwwTDM3MiwzODMuMjhBOCw4LDAsMCwxLDM3MiwzNzJoMGE4LDgsMCwwLDEsMTEuMzEsMGwxMS4zMSwxMS4zMUE4LDgsMCwwLDEsMzk0LjU5LDM5NC41OVpNMjg2LjI1LDI4Ni4yNSwxMTAuMzQsNDAxLjY2LDIyNS43NSwyMjUuNzUsNDAxLjY2LDExMC4zNFpNNDM3LjA4LDMzMWgwYTgsOCwwLDAsMS0xMC40NSw0LjMzbC0xNC43OC02LjEzYTgsOCwwLDAsMS00LjMzLTEwLjQ1aDBBOCw4LDAsMCwxLDQxOCwzMTQuNDNsMTQuNzgsNi4xMkE4LDgsMCwwLDEsNDM3LjA4LDMzMVpNNDQ0LDI2NEg0MjhhOCw4LDAsMCwxLTgtOGgwYTgsOCwwLDAsMSw4LThoMTZhOCw4LDAsMCwxLDgsOGgwQTgsOCwwLDAsMSw0NDQsMjY0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYWxlc2ZvcmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OC44OSAyNDUuNjRoLTI2LjM1Yy42OS01LjE2IDMuMzItMTQuMTIgMTMuNjQtMTQuMTIgNi43NSAwIDExLjk3IDMuODIgMTIuNzEgMTQuMTJ6bTEzNi42Ni0xMy44OGMtLjQ3IDAtMTQuMTEtMS43Ny0xNC4xMSAyMHMxMy42MyAyMCAxNC4xMSAyMGMxMyAwIDE0LjExLTEzLjU0IDE0LjExLTIwIDAtMjEuNzYtMTMuNjYtMjAtMTQuMTEtMjB6bS0yNDMuMjIgMjMuNzZhOC42MyA4LjYzIDAgMCAwLTMuMjkgNy4yOWMwIDQuNzggMi4wOCA2LjA1IDMuMjkgNy4wNSA0LjcgMy43IDE1LjA3IDIuMTIgMjAuOTMuOTV2LTE2Ljk0Yy01LjMyLTEuMDctMTYuNzMtMS45Ni0yMC45MyAxLjY1ek02NDAgMjMyYzAgODcuNTgtODAgMTU0LjM5LTE2NS4zNiAxMzYuNDMtMTguMzcgMzMtNzAuNzMgNzAuNzUtMTMyLjIgNDEuNjMtNDEuMTYgOTYuMDUtMTc3Ljg5IDkyLjE4LTIxMy44MS01LjE3QzguOTEgNDI4Ljc4LTUwLjE5IDI2Ni41MiA1My4zNiAyMDUuNjEgMTguNjEgMTI2LjE4IDc2IDMyIDE2Ny42NyAzMmExMjQuMjQgMTI0LjI0IDAgMCAxIDk4LjU2IDQ4LjdjMjAuNy0yMS40IDQ5LjQtMzQuODEgODEuMTUtMzQuODEgNDIuMzQgMCA3OSAyMy41MiA5OC44IDU4LjU3QzUzOSA2My43OCA2NDAgMTMyLjY5IDY0MCAyMzJ6bS01MTkuNTUgMzEuOGMwLTExLjc2LTExLjY5LTE1LjE3LTE3Ljg3LTE3LjE3LTUuMjctMi4xMS0xMy40MS0zLjUxLTEzLjQxLTguOTQgMC05LjQ2IDE3LTYuNjYgMjUuMTctMi4xMiAwIDAgMS4xNy43MSAxLjY0LS40Ny4yNC0uNyAyLjM2LTYuNTggMi41OS03LjI5YTEuMTMgMS4xMyAwIDAgMC0uNy0xLjQxYy0xMi4zMy03LjYzLTQwLjctOC41MS00MC43IDEyLjcgMCAxMi40NiAxMS40OSAxNS40NCAxNy44OCAxNy4xNyA0LjcyIDEuNTggMTMuMTcgMyAxMy4xNyA4LjcgMCA0LTMuNTMgNy4wNi05LjE3IDcuMDZhMzEuNzYgMzEuNzYgMCAwIDEtMTktNi4zNWMtLjQ3LS4yMy0xLjQyLS43MS0xLjY1LjcxbC0yLjQgNy40N2MtLjQ3Ljk0LjIzIDEuMTguMjMgMS40MSAxLjc1IDEuNCAxMC4zIDYuNTkgMjIuODIgNi41OSAxMy4xNyAwIDIxLjQtNy4wNiAyMS40LTE4LjExem0zMi00Mi41OGMtMTAuMTMgMC0xOC42NiAzLjE3LTIxLjQgNS4xOGExIDEgMCAwIDAtLjI0IDEuNDFsMi41OSA3LjA2YTEgMSAwIDAgMCAxLjE4LjdjLjY1IDAgNi44LTQgMTYuOTMtNCA0IDAgNy4wNi43MSA5LjE4IDIuMzYgMy42IDIuOCAzLjA2IDguMjkgMy4wNiAxMC41OC00Ljc5LS4zLTE5LjExLTMuNDQtMjkuNDEgMy43NmExNi45MiAxNi45MiAwIDAgMC03LjM0IDE0LjU0YzAgNS45IDEuNTEgMTAuNCA2LjU5IDE0LjM1IDEyLjI0IDguMTYgMzYuMjggMiAzOC4xIDEuNDEgMS41OC0uMzIgMy41My0uNjYgMy41My0xLjg4di0zMy44OGMuMDQtNC42MS4zMi0yMS42NC0yMi43OC0yMS42NHpNMTk5IDIwMC4yNGExLjExIDEuMTEgMCAwIDAtMS4xOC0xLjE4SDE4OGExLjExIDEuMTEgMCAwIDAtMS4xNyAxLjE4djc5YTEuMTEgMS4xMSAwIDAgMCAxLjE3IDEuMThoOS44OGExLjExIDEuMTEgMCAwIDAgMS4xOC0xLjE4em01NS43NSAyOC45M2MtMi4xLTIuMzEtNi43OS03LjUzLTE3LjY1LTcuNTMtMy41MSAwLTE0LjE2LjIzLTIwLjcgOC45NC02LjM1IDcuNjMtNi41OCAxOC4xMS02LjU4IDIxLjQxIDAgMy4xMi4xNSAxNC4yNiA3LjA2IDIxLjE3IDIuNjQgMi45MSA5LjA2IDguMjMgMjIuODEgOC4yMyAxMC44MiAwIDE2LjQ3LTIuMzUgMTguNTgtMy43Ni40Ny0uMjQuNzEtLjcxLjI0LTEuODhsLTIuMzUtNi44M2ExLjI2IDEuMjYgMCAwIDAtMS40MS0uN2MtMi41OS45NC02LjM1IDIuODItMTUuMjkgMi44Mi0xNy40MiAwLTE2Ljg1LTE0Ljc0LTE2Ljk0LTE2LjdoMzcuMTdhMS4yMyAxLjIzIDAgMCAwIDEuMTctLjk0Yy0uMjkgMCAyLjA3LTE0LjctNi4wOS0yNC4yM3ptMzYuNjkgNTIuNjljMTMuMTcgMCAyMS40MS03LjA2IDIxLjQxLTE4LjExIDAtMTEuNzYtMTEuNy0xNS4xNy0xNy44OC0xNy4xNy00LjE0LTEuNjYtMTMuNDEtMy4zOC0xMy40MS04Ljk0IDAtMy43NiAzLjI5LTYuMzUgOC40Ny02LjM1YTM4LjExIDM4LjExIDAgMCAxIDE2LjcgNC4yM3MxLjE4LjcxIDEuNjUtLjQ3Yy4yMy0uNyAyLjM1LTYuNTggMi41OC03LjI5YTEuMTMgMS4xMyAwIDAgMC0uNy0xLjQxYy03LjkxLTQuOS0xNi43NC00Ljk0LTIwLjIzLTQuOTQtMTIgMC0yMC40NiA3LjI5LTIwLjQ2IDE3LjY0IDAgMTIuNDYgMTEuNDggMTUuNDQgMTcuODcgMTcuMTcgNi4xMSAyIDEzLjE3IDMuMjYgMTMuMTcgOC43IDAgNC0zLjUyIDcuMDYtOS4xNyA3LjA2YTMxLjggMzEuOCAwIDAgMS0xOS02LjM1IDEgMSAwIDAgMC0xLjY1LjcxbC0yLjM1IDcuNTJjLS40Ny45NC4yMyAxLjE4LjIzIDEuNDEgMS43MiAxLjQgMTAuMzMgNi41OSAyMi43OSA2LjU5ek0zNTcuMDkgMjI0YzAtLjcxLS4yNC0xLjE4LTEuMTgtMS4xOGgtMTEuNzZjMC0uMTQuOTQtOC45NCA0LjQ3LTEyLjQ3IDQuMTYtNC4xNSAxMS43Ni0xLjY0IDEyLTEuNjQgMS4xNy40NyAxLjQxIDAgMS42NC0uNDdsMi44My03Ljc3Yy43LS45NCAwLTEuMTctLjI0LTEuNDEtNS4wOS0yLTE3LjM1LTIuODctMjQuNDYgNC4yNC01LjQ4IDUuNDgtNyAxMy45Mi04IDE5LjUyaC04LjQ3YTEuMjggMS4yOCAwIDAgMC0xLjE3IDEuMThsLTEuNDIgNy43NmMwIC43LjI0IDEuMTcgMS4xOCAxLjE3aDguMjNjLTguNTEgNDcuOS04Ljc1IDUwLjIxLTEwLjM1IDU1LjUyLTEuMDggMy42Mi0zLjI5IDYuOS01Ljg4IDcuNzYtLjA5IDAtMy44OCAxLjY4LTkuNjQtLjI0IDAgMC0uOTQtLjQ3LTEuNDEuNzEtLjI0LjcxLTIuNTkgNi44Mi0yLjgzIDcuNTNzMCAxLjQxLjQ3IDEuNDFjNS4xMSAyIDEzIDEuNzcgMTcuODggMCA2LjI4LTIuMjggOS43Mi03Ljg5IDExLjUzLTEyLjk0IDIuNzUtNy43MSAyLjgxLTkuNzkgMTEuNzYtNTkuNzRoMTIuMjNhMS4yOSAxLjI5IDAgMCAwIDEuMTgtMS4xOHptNTMuMzkgMTZjLS41Ni0xLjY4LTUuMS0xOC4xMS0yNS4xNy0xOC4xMS0xNS4yNSAwLTIzIDEwLTI1LjE2IDE4LjExLTEgMy0zLjE4IDE0IDAgMjMuNTIuMDkuMyA0LjQxIDE4LjEyIDI1LjE2IDE4LjEyIDE0Ljk1IDAgMjIuOS05LjYxIDI1LjE3LTE4LjEyIDMuMjEtOS42MSAxLjAxLTIwLjUyIDAtMjMuNTJ6bTQ1LjQtMTYuN2MtNS0xLjY1LTE2LjYyLTEuOS0yMi4xMSA1LjQxdi00LjQ3YTEuMTEgMS4xMSAwIDAgMC0xLjE4LTEuMTdoLTkuNGExLjExIDEuMTEgMCAwIDAtMS4xOCAxLjE3djU1LjI4YTEuMTIgMS4xMiAwIDAgMCAxLjE4IDEuMThoOS42NGExLjEyIDEuMTIgMCAwIDAgMS4xOC0xLjE4di0yNy43N2MwLTIuOTEuMDUtMTEuMzcgNC40Ni0xNS4wNSA0LjktNC45IDEyLTMuMzYgMTMuNDEtMy4wNmExLjU3IDEuNTcgMCAwIDAgMS40MS0uOTQgNzQgNzQgMCAwIDAgMy4wNi04IDEuMTYgMS4xNiAwIDAgMC0uNDctMS40MXptNDYuODEgNTQuMWwtMi4xMi03LjI5Yy0uNDctMS4xOC0xLjQxLS43MS0xLjQxLS43MS00LjIzIDEuODItMTAuMTUgMS44OS0xMS4yOSAxLjg5LTQuNjQgMC0xNy4xNy0xLjEzLTE3LjE3LTE5Ljc2IDAtNi4yMyAxLjg1LTE5Ljc2IDE2LjQ3LTE5Ljc2YTM0Ljg1IDM0Ljg1IDAgMCAxIDExLjUyIDEuNjVzLjk0LjQ3IDEuMTgtLjcxYy45NC0yLjU5IDEuNjQtNC40NyAyLjU5LTcuNTMuMjMtLjk0LS40Ny0xLjE3LS43MS0xLjE3LTExLjU5LTMuODctMjIuMzQtMi41My0yNy43NiAwLTEuNTkuNzQtMTYuMjMgNi40OS0xNi4yMyAyNy41MiAwIDIuOS0uNTggMzAuMTEgMjguOTQgMzAuMTFhNDQuNDUgNDQuNDUgMCAwIDAgMTUuNTItMi44MyAxLjMgMS4zIDAgMCAwIC40Ny0xLjQyem01My44Ny0zOS41MmMtLjgtMy01LjM3LTE2LjIzLTIyLjM1LTE2LjIzLTE2IDAtMjMuNTIgMTAuMTEtMjUuNjQgMTguNTlhMzguNTggMzguNTggMCAwIDAtMS42NSAxMS43NmMwIDI1Ljg3IDE4Ljg0IDI5LjQgMjkuODggMjkuNCAxMC44MiAwIDE2LjQ2LTIuMzUgMTguNTgtMy43Ni40Ny0uMjQuNzEtLjcxLjI0LTEuODhsLTIuMzYtNi44M2ExLjI2IDEuMjYgMCAwIDAtMS40MS0uN2MtMi41OS45NC02LjM1IDIuODItMTUuMjkgMi44Mi0xNy40MiAwLTE2Ljg1LTE0Ljc0LTE2LjkzLTE2LjdoMzcuMTZhMS4yNSAxLjI1IDAgMCAwIDEuMTgtLjk0Yy0uMjQtLjAxLjk0LTcuMDctMS40MS0xNS41NHptLTIzLjI5LTYuMzVjLTEwLjMzIDAtMTMgOS0xMy42NCAxNC4xMkg1NDZjLS44OC0xMS45Mi03LjYyLTE0LjEzLTEyLjczLTE0LjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS44NCAzNzguOTJjLS4zLjYtLjYgMS4wOCAwIDB6bTI0OS4xMy04N2ExMzEuMTYgMTMxLjE2IDAgMCAwLTU4IDEzLjVjLTUuOS0xMS45LTEyLTIyLjMtMTMtMzAuMS0xLjItOS4xLTIuNS0xNC41LTEuMS0yNS4zczcuNy0yNi4xIDcuNi0yNy4yLTEuNC02LjYtMTQuMy02LjctMjQgMi41LTI1LjI5IDUuOWExMjIuODMgMTIyLjgzIDAgMCAwLTUuMyAxOS4xYy0yLjMgMTEuNy0yNS43OSA1My41LTM5LjA5IDc1LjMtNC40LTguNS04LjEtMTYtOC45LTIyLTEuMi05LjEtMi41LTE0LjUtMS4xLTI1LjNzNy43LTI2LjEgNy42LTI3LjItMS40LTYuNi0xNC4yOS02LjctMjQgMi41LTI1LjMgNS45LTIuNyAxMS40LTUuMyAxOS4xLTMzLjg5IDc3LjMtNDIuMDggOTUuNGMtNC4yIDkuMi03LjggMTYuNi0xMC40IDIxLjYtLjQuOC0uNyAxLjMtLjkgMS43LjMtLjUuNS0xIC41LS44LTIuMiA0LjMtMy41IDYuNy0zLjUgNi43di4xYy0xLjcgMy4yLTMuNiA2LjEtNC41IDYuMS0uNiAwLTEuOS04LjQuMy0xOS45IDQuNy0yNC4yIDE1LjgtNjEuOCAxNS43LTYzLjEtLjEtLjcgMi4xLTcuMi03LjMtMTAuNy05LjEtMy4zLTEyLjQgMi4yLTEzLjIgMi4ycy0xLjQgMi0xLjQgMiAxMC4xLTQyLjQtMTkuMzktNDIuNGMtMTguNCAwLTQ0IDIwLjItNTYuNTggMzguNS03LjkgNC4zLTI1IDEzLjYtNDMgMjMuNS02LjkgMy44LTE0IDcuNy0yMC43IDExLjQtLjUtLjUtLjktMS0xLjQtMS41LTM1Ljc5LTM4LjItMTAxLjg3LTY1LjItOTkuMDctMTE2LjUgMS0xOC43IDcuNS02Ny44IDEyNy4wNy0xMjcuNCA5OC00OC44IDE3Ni4zNS0zNS40IDE4OS44NC01LjYgMTkuNCA0Mi41LTQxLjg5IDEyMS42LTE0My42NiAxMzMtMzguNzkgNC4zLTU5LjE4LTEwLjctNjQuMjgtMTYuMy01LjMtNS45LTYuMS02LjItOC4xLTUuMS0zLjMgMS44LTEuMiA3IDAgMTAuMSAzIDcuOSAxNS41IDIxLjkgMzYuNzkgMjguOSAxOC43IDYuMSA2NC4xOCA5LjUgMTE5LjE3LTExLjggNjEuNzgtMjMuOCAxMDkuODctOTAuMSA5NS43Ny0xNDUuNkMzODYuNTIgMTguMzIgMjkzLS4xOCAyMDQuNTcgMzEuMjJjLTUyLjY5IDE4LjctMTA5LjY3IDQ4LjEtMTUwLjY2IDg2LjQtNDguNjkgNDUuNi01Ni40OCA4NS4zLTUzLjI4IDEwMS45IDExLjM5IDU4LjkgOTIuNTcgOTcuMyAxMjUuMDYgMTI1LjctMS42LjktMy4xIDEuNy00LjUgMi41LTE2LjI5IDguMS03OC4xOCA0MC41LTkzLjY3IDc0LjctMTcuNSAzOC44IDIuOSA2Ni42IDE2LjI5IDcwLjQgNDEuNzkgMTEuNiA4NC41OC05LjMgMTA3LjU3LTQzLjZzMjAuMi03OS4xIDkuNi05OS41Yy0uMS0uMy0uMy0uNS0uNC0uOCA0LjItMi41IDguNS01IDEyLjgtNy41IDguMjktNC45IDE2LjM5LTkuNCAyMy40OS0xMy4zLTQgMTAuOC02LjkgMjMuOC04LjQgNDIuNi0xLjggMjIgNy4zIDUwLjUgMTkuMSA2MS43IDUuMiA0LjkgMTEuNDkgNSAxNS4zOSA1IDEzLjggMCAyMC0xMS40IDI2Ljg5LTI1IDguNS0xNi42IDE2LTM1LjkgMTYtMzUuOXMtOS40IDUyLjIgMTYuMyA1Mi4yYzkuMzkgMCAxOC43OS0xMi4xIDIzLTE4LjN2LjFzLjItLjQuNy0xLjJjMS0xLjUgMS41LTIuNCAxLjUtMi40di0uM2MzLjgtNi41IDEyLjEtMjEuNCAyNC41OS00NiAxNi4yLTMxLjggMzEuNjktNzEuNSAzMS42OS03MS41YTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi44IDkuNSA4LjcgMTkuOSAxMy40IDMwLTMuOCA1LjItNi4xIDguMi02LjEgOC4yYS4zMS4zMSAwIDAgMCAuMS4yYy0zIDQtNi40IDguMy05LjkgMTIuNS0xMi43OSAxNS4yLTI4IDMyLjYtMzAgMzcuNi0yLjQgNS45LTEuOCAxMC4zIDIuOCAxMy43IDMuNCAyLjYgOS40IDMgMTUuNjkgMi41IDExLjUtLjggMTkuNi0zLjYgMjMuNS01LjRhODIuMiA4Mi4yIDAgMCAwIDIwLjE5LTEwLjZjMTIuNS05LjIgMjAuMS0yMi40IDE5LjQtMzkuOC0uNC05LjYtMy41LTE5LjItNy4zLTI4LjIgMS4xLTEuNiAyLjMtMy4zIDMuNC01QzQzNC44IDMwMS43MiA0NTAuMSAyNzAgNDUwLjEgMjcwYTIwMS4yNCAyMDEuMjQgMCAwIDAgNi4yIDI1LjhjMi40IDguMSA3LjA5IDE3IDExLjM5IDI1LjctMTguNTkgMTUuMS0zMC4wOSAzMi42LTM0LjA5IDQ0LjEtNy40IDIxLjMtMS42IDMwLjkgOS4zIDMzLjEgNC45IDEgMTEuOS0xLjMgMTcuMS0zLjVhNzkuNDYgNzkuNDYgMCAwIDAgMjEuNTktMTEuMWMxMi41LTkuMiAyNC41OS0yMi4xIDIzLjc5LTM5LjYtLjMtNy45LTIuNS0xNS44LTUuNC0yMy40IDE1LjctNi42IDM2LjA5LTEwLjIgNjIuMDktNy4yIDU1LjY4IDYuNSA2Ni41OCA0MS4zIDY0LjQ4IDU1LjhzLTEzLjggMjIuNi0xNy43IDI1LTUuMSAzLjMtNC44IDUuMWMuNSAyLjYgMi4zIDIuNSA1LjYgMS45IDQuNi0uOCAyOS4xOS0xMS44IDMwLjI5LTM4LjcgMS42LTM0LTMxLjA5LTcxLjQtODktNzEuMXptLTQyOS4xOCAxNDQuN2MtMTguMzkgMjAuMS00NC4xOSAyNy43LTU1LjI4IDIxLjNDNTQuNjEgNDUxIDU5LjMxIDQyMS40MiA4MiA0MDBjMTMuOC0xMyAzMS41OS0yNSA0My4zOS0zMi40IDIuNy0xLjYgNi42LTQgMTEuNC02LjkuOC0uNSAxLjItLjcgMS4yLS43LjktLjYgMS45LTEuMSAyLjktMS43IDguMjkgMzAuNC4zIDU3LjItMTkuMSA3OC4zem0xMzQuMzYtOTEuNGMtNi40IDE1LjctMTkuODkgNTUuNy0yOC4wOSA1My42LTctMS44LTExLjMtMzIuMy0xLjQtNjIuMyA1LTE1LjEgMTUuNi0zMy4xIDIxLjktNDAuMSAxMC4wOS0xMS4zIDIxLjE5LTE0LjkgMjMuNzktMTAuNCAzLjUgNS45LTEyLjIgNDkuNC0xNi4yIDU5LjJ6bTExMSA1M2MtMi43IDEuNC01LjIgMi4zLTYuNCAxLjYtLjktLjUgMS4xLTIuNCAxLjEtMi40czEzLjktMTQuOSAxOS40LTIxLjdjMy4yLTQgNi45LTguNyAxMC44OS0xMy45IDAgLjUuMSAxIC4xIDEuNi0uMTMgMTcuOS0xNy4zMiAzMC0yNS4xMiAzNC44em04NS41OC0xOS41Yy0yLTEuNC0xLjctNi4xIDUtMjAuNyAyLjYtNS43IDguNTktMTUuMyAxOS0yNC41YTM2LjE4IDM2LjE4IDAgMCAxIDEuOSAxMC44Yy0uMSAyMi41LTE2LjIgMzAuOS0yNS44OSAzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY2hsaXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUwLjUgMTU3LjdsLTU0LjItNDYuMSA3My40LTM5IDc4LjMgNDQuMi05Ny41IDQwLjl6TTE5MiAxMjIuMWw0NS43LTI4LjIgMzQuNyAzNC42LTU1LjQgMjktMjUtMzUuNHptLTY1LjEgNi42bDMxLjktMjIuMUwxNzYgMTM1bC0zNi43IDIyLjUtMTIuNC0yOC44em0tMjMuMyA4OC4ybC04LjgtMzQuOCAyOS42LTE4LjMgMTMuMSAzNS4zLTMzLjkgMTcuOHptLTIxLjItODMuN2wyMy45LTE4LjEgOC45IDI0LTI2LjcgMTguMy02LjEtMjQuMnpNNTkgMjA2LjVsLTMuNi0yOC40IDIyLjMtMTUuNSA2LjEgMjguN0w1OSAyMDYuNXptLTMwLjYgMTYuNmwyMC44LTEyLjggMy4zIDMzLjQtMjIuOSAxMi0xLjItMzIuNnpNMS40IDI2OGwxOS4yLTEwLjIuNCAzOC4yLTIxIDguOEwxLjQgMjY4em01OS4xIDU5LjNsLTI4LjMgOC4zLTEuNi00Ni44IDI1LjEtMTAuNyA0LjggNDkuMnpNOTkgMjYzLjJsLTMxLjEgMTMtNS4yLTQwLjhMOTAuMSAyMjFsOC45IDQyLjJ6TTEyMy4yIDM3N2wtNDEuNiA1LjktOC4xLTYzLjUgMzUuMi0xMC44IDE0LjUgNjguNHptMjguNS0xMzkuOWwyMS4yIDU3LjEtNDYuMiAxMy42LTEzLjctNTQuMSAzOC43LTE2LjZ6bTg1LjcgMjMwLjVsLTcwLjktMy4zLTI0LjMtOTUuOCA1NS4yLTguNiA0MCAxMDcuN3ptLTg0LjktMjc5LjdsNDIuMi0yMi40IDI4IDQ1LjktNTAuOCAyMS4zLTE5LjQtNDQuOHptNDEgOTQuOWw2MS4zLTE4LjcgNTIuOCA4Ni42LTc5LjggMTEuMy0zNC4zLTc5LjJ6bTUxLjQtODUuNmw2Ny4zLTI4LjggNjUuNSA2NS40LTg4LjYgMjYuMi00NC4yLTYyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNjcmliZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi4zIDI1Mi43Yy0xNi4xLTE5LTI0LjctNDUuOS0yNC44LTc5LjkgMC0xMDAuNCA3NS4yLTE1My4xIDE2Ny4yLTE1My4xIDk4LjYtMS42IDE1Ni44IDQ5IDE4NC4zIDcwLjZsLTUwLjUgNzIuMS0zNy4zLTI0LjYgMjYuOS0zOC42Yy0zNi41LTI0LTc5LjQtMzYuNS0xMjMtMzUuOC01MC43LS44LTExMS43IDI3LjItMTExLjcgNzYuMiAwIDE4LjcgMTEuMiAyMC43IDI4LjYgMTUuNiAyMy4zLTUuMyA0MS45LjYgNTUuOCAxNCAyNi40IDI0LjMgMjMuMiA2Ny42LS43IDkxLjktMjkuMiAyOS41LTg1LjIgMjcuMy0xMTQuOC04LjR6bTMxNy43IDUuOWMtMTUuNS0xOC44LTM4LjktMjkuNC02My4yLTI4LjYtMzguMS0yLTcxLjEgMjgtNzAuNSA2Ny4yLS43IDE2LjggNiAzMyAxOC40IDQ0LjMgMTQuMSAxMy45IDMzIDE5LjcgNTYuMyAxNC40IDE3LjQtNS4xIDI4LjYtMy4xIDI4LjYgMTUuNiAwIDQuMy0uNSA4LjUtMS40IDEyLjctMTYuNyA0MC45LTU5LjUgNjQuNC0xMjEuNCA2NC40LTUxLjkuMi0xMDIuNC0xNi40LTE0NC4xLTQ3LjNsMzMuNy0zOS40LTM1LjYtMjcuNEwwIDQwNi4zbDE1LjQgMTMuOGM1Mi41IDQ2LjggMTIwLjQgNzIuNSAxOTAuNyA3Mi4yIDUxLjQgMCA5NC40LTEwLjUgMTMzLjYtNDQuMSA1Ny4xLTUxLjQgNTQuMi0xNDkuMiAyMC4zLTE4OS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hlbmdpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDYwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjAuNiAxMzAuM2wtNjcuMiAyOC4yVjQzLjJMOTguNyAyMzMuNWw1NC43LTI0LjJ2MTMwLjNsNjcuMi0yMDkuM3ptLTgzLjItOTYuN2wtMS4zIDQuNy0xNS4yIDUyLjlDODAuNiAxMDYuNyA1MiAxNDUuOCA1MiAxOTEuNWMwIDUyLjMgMzQuMyA5NS45IDgzLjQgMTA1LjV2NTMuNkM1Ny41IDM0MC4xIDAgMjcyLjQgMCAxOTEuNmMwLTgwLjUgNTkuOC0xNDcuMiAxMzcuNC0xNTh6bTMxMS40IDQ0Ny4yYy0xMS4yIDExLjItMjMuMSAxMi4zLTI4LjYgMTAuNS01LjQtMS44LTI3LjEtMTkuOS02MC40LTQ0LjQtMzMuMy0yNC42LTMzLjYtMzUuNy00My01Ni43LTkuNC0yMC45LTMwLjQtNDIuNi01Ny41LTUyLjRsLTkuNy0xNC43Yy0yNC43IDE2LjktNTMgMjYuOS04MS4zIDI4LjdsMi4xLTYuNiAxNS45LTQ5LjVjNDYuNS0xMS45IDgwLjktNTQgODAuOS0xMDQuMiAwLTU0LjUtMzguNC0xMDIuMS05Ni0xMDcuMVYzMi4zQzI1NC40IDM3LjQgMzIwIDEwNi44IDMyMCAxOTEuNmMwIDMzLjYtMTEuMiA2NC43LTI5IDkwLjRsMTQuNiA5LjZjOS44IDI3LjEgMzEuNSA0OCA1Mi40IDU3LjRzMzIuMiA5LjcgNTYuOCA0M2MyNC42IDMzLjIgNDIuNyA1NC45IDQ0LjUgNjAuM3MuNyAxNy4zLTEwLjUgMjguNXptLTkuOS0xNy45YzAtNC40LTMuNi04LTgtOHMtOCAzLjYtOCA4IDMuNiA4IDggOCA4LTMuNiA4LTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlbGxjYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1My40IDMySDk0LjdDNDIuNiAzMiAwIDc0LjYgMCAxMjYuNnYyNTguN0MwIDQzNy40IDQyLjYgNDgwIDk0LjcgNDgwaDI1OC43YzUyLjEgMCA5NC43LTQyLjYgOTQuNy05NC42VjEyNi42YzAtNTItNDIuNi05NC42LTk0LjctOTQuNnptLTUwIDMxNi40Yy0yNy45IDQ4LjItODkuOSA2NC45LTEzOC4yIDM3LjItMjIuOSAzOS44LTU0LjkgOC42LTQyLjMtMTMuMmwxNS43LTI3LjJjNS45LTEwLjMgMTkuMi0xMy45IDI5LjUtNy45IDE4LjYgMTAuOC0uMS0uMSAxOC41IDEwLjcgMjcuNiAxNS45IDYzLjQgNi4zIDc5LjQtMjEuMyAxNS45LTI3LjYgNi4zLTYzLjQtMjEuMy03OS40LTE3LjgtMTAuMi0uNi0uNC0xOC42LTEwLjYtMjQuNi0xNC4yLTMuNC01MS45IDIxLjYtMzcuNSAxOC42IDEwLjgtLjEtLjEgMTguNSAxMC43IDQ4LjQgMjggNjUuMSA5MC4zIDM3LjIgMTM4LjV6bTIxLjgtMjA4LjhjLTE3IDI5LjUtMTYuMyAyOC44LTE5IDMxLjUtNi41IDYuNS0xNi4zIDguNy0yNi41IDMuNi0xOC42LTEwLjguMS4xLTE4LjUtMTAuNy0yNy42LTE1LjktNjMuNC02LjMtNzkuNCAyMS4zcy02LjMgNjMuNCAyMS4zIDc5LjRjMCAwIDE4LjUgMTAuNiAxOC42IDEwLjYgMjQuNiAxNC4yIDMuNCA1MS45LTIxLjYgMzcuNS0xOC42LTEwLjguMS4xLTE4LjUtMTAuNy00OC4yLTI3LjgtNjQuOS05MC4xLTM3LjEtMTM4LjQgMjcuOS00OC4yIDg5LjktNjQuOSAxMzguMi0zNy4ybDQuOC04LjRjMTQuMy0yNC45IDUyLTMuMyAzNy43IDIxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlbGxzeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzkuNzEgMjM3LjMwOGMzLjA2NC0xMi4yNTcgNC4yOS0yNC44MjEgNC4yOS0zNy4zODRDNTQ0IDEwNy4zODIgNDY4LjYxOCAzMiAzNzYuMDc2IDMyYy03Ny4yMiAwLTE0NC42MzQgNTMuMDEyLTE2My4wMiAxMjcuNzgxLTE1LjMyMi0xMy4xNzYtMzQuOTM0LTIwLjUzLTU1LjE1Ny0yMC41My00Ni4yNzEgMC04My45NjIgMzcuNjktODMuOTYyIDgzLjk2MSAwIDcuMzU0LjkyIDE1LjAxNSAzLjA2NSAyMi4zNjktNDIuOSAyMC4yMjUtNzAuNzg1IDYzLjczOC03MC43ODUgMTExLjIzNEM2LjIxNiA0MjQuODQzIDYxLjY4IDQ4MCAxMjkuNDAxIDQ4MGgzODEuMTk4YzY3LjcyIDAgMTIzLjE4NC01NS4xNTcgMTIzLjE4NC0xMjMuMTg0LjAwMS01Ni4zODQtMzguOTE2LTEwNi4wMjUtOTQuMDczLTExOS41MDh6TTE5OS44OCA0MDEuNTU0YzAgOC4yNzQtNy4wNDggMTUuMzIxLTE1LjMyMSAxNS4zMjFIMTUzLjYxYy04LjI3NCAwLTE1LjMyMS03LjA0OC0xNS4zMjEtMTUuMzIxVjI5MC42MjZjMC04LjI3MyA3LjA0OC0xNS4zMjEgMTUuMzIxLTE1LjMyMWgzMC45NDljOC4yNzQgMCAxNS4zMjEgNy4wNDggMTUuMzIxIDE1LjMyMXYxMTAuOTI4em04OS40NzcgMGMwIDguMjc0LTcuMDQ4IDE1LjMyMS0xNS4zMjIgMTUuMzIxaC0zMC45NDljLTguMjc0IDAtMTUuMzIxLTcuMDQ4LTE1LjMyMS0xNS4zMjFWMjcwLjA5NmMwLTguMjc0IDcuMDQ4LTE1LjMyMSAxNS4zMjEtMTUuMzIxaDMwLjk0OWM4LjI3NCAwIDE1LjMyMiA3LjA0OCAxNS4zMjIgMTUuMzIxdjEzMS40NTh6bTg5LjQ3NyAwYzAgOC4yNzQtNy4wNDcgMTUuMzIxLTE1LjMyMSAxNS4zMjFoLTMwLjk0OWMtOC4yNzQgMC0xNS4zMjItNy4wNDgtMTUuMzIyLTE1LjMyMVYyMzguODRjMC04LjI3NCA3LjA0OC0xNS4zMjEgMTUuMzIyLTE1LjMyMWgzMC45NDljOC4yNzQgMCAxNS4zMjEgNy4wNDggMTUuMzIxIDE1LjMyMXYxNjIuNzE0em04Ny4wMjcgMGMwIDguMjc0LTcuMDQ4IDE1LjMyMS0xNS4zMjIgMTUuMzIxaC0yOC40OTdjLTguMjc0IDAtMTUuMzIxLTcuMDQ4LTE1LjMyMS0xNS4zMjFWMTc2Ljk0MWMwLTguNTc5IDcuMDQ3LTE1LjYyOCAxNS4zMjEtMTUuNjI4aDI4LjQ5N2M4LjI3NCAwIDE1LjMyMiA3LjA0OCAxNS4zMjIgMTUuNjI4djIyNC42MTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlcnZpY2VzdGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04OCAyMTZjODEuNyAxMC4yIDI3My43IDEwMi4zIDMwNCAyMzJIMGM5OS41LTguMSAxODQuNS0xMzcgODgtMjMyem0zMi0xNTJjMzIuMyAzNS42IDQ3LjcgODMuOSA0Ni40IDEzMy42QzI0OS4zIDIzMS4zIDM3My43IDMyMS4zIDQwMCA0NDhoOTZDNDU1LjMgMjMxLjkgMjIyLjggNzkuNSAxMjAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXJ0c2luYnVsayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDAgNDEwLjNsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40em0zOS40IDE3LjVsMzAuNiAxMy40IDQuNC05LjktMzAuNi0xMy40em0xNzIuMS0xNGw0LjQgOS45IDMwLjYtMTMuNC00LjQtOS45ek0xNzkuMSA0NDVsMzAuMyAxMy43IDQuNC05LjktMzAuMy0xMy40ek02MC40IDM5Mi44TDkxIDQwNi4ybDQuNC05LjYtMzAuNi0xMy43em0yMTEuNCAzOC41bDQuNCA5LjkgMzAuNi0xMy40LTQuNC05Ljl6bS0zOS4zIDE3LjVsNC40IDkuOSAzMC42LTEzLjctNC40LTkuNnptMTE4LjQtNTIuMmw0LjQgOS42IDMwLjYtMTMuNC00LjQtOS45ek0xNzAgNDYuNmgtMzMuNXYxMC41SDE3MHptLTQ3LjIgMEg4OS4ydjEwLjVoMzMuNXptLTQ3LjMgMEg0Mi4zdjEwLjVoMzMuM3ptMTQxLjUgMGgtMzMuMnYxMC41SDIxN3ptOTQuNSAwSDI3OHYxMC41aDMzLjV6bTQ3LjMgMGgtMzMuNXYxMC41aDMzLjV6bS05NC42IDBIMjMxdjEwLjVoMzMuMnptMTQxLjUgMGgtMzMuM3YxMC41aDMzLjN6TTUyLjggMzUxLjFINDJ2MzMuNWgxMC44em03MC0yMTUuOUg4OS4ydjEwLjVoMzMuNXptLTcwIDEwLjZoMjIuOHYtMTAuNUg0MnYzMy41aDEwLjh6bTE2OC45IDIyOC42YzUwLjUgMCA5MS4zLTQwLjggOTEuMy05MS4zIDAtNTAuMi00MC44LTkxLjMtOTEuMy05MS4zLTUwLjIgMC05MS4zIDQxLjEtOTEuMyA5MS4zIDAgNTAuNSA0MS4xIDkxLjMgOTEuMyA5MS4zem0tNDguMi0xMTEuMWMwLTI1LjQgMjkuNS0zMS44IDQ5LjYtMzEuOCAxNi45IDAgMjkuMiA1LjggNDQuMyAxMmwtOC44IDE2LjloLS45Yy02LjQtOS45LTI0LjgtMTMuMS0zNS42LTEzLjEtOSAwLTI5LjggMS44LTI5LjggMTQuOSAwIDIxLjYgNzguNS0xMC4yIDc4LjUgMzcuOSAwIDI1LjQtMzEuNSAzMS4yLTUxIDMxLjItMTguMSAwLTMyLjQtMi45LTQ3LjItMTIuMmw5LTE4LjRoLjljNi4xIDEyLjIgMjMuNiAxNC45IDM1LjkgMTQuOSA4LjcgMCAzMi43LTEuMiAzMi43LTE0LjMgMC0yNi4xLTc3LjYgNi4zLTc3LjYtMzh6TTUyLjggMTc4LjRINDJWMjEyaDEwLjh6bTM0Mi40IDIwNi4ySDQwNnYtMzMuNWgtMTAuOHpNNTIuOCAzMDcuOUg0MnYzMy41aDEwLjh6TTAgMy43djQwNmwyMjEuNyA5OC42TDQ0OCA0MDkuN1YzLjd6bTQxOC44IDM4Ny4xTDIyMiA0NzYuNSAyOS4yIDM5MC44VjEyMC43aDM4OS43djI3MC4xem0wLTI5OS4zSDI5LjJWMzIuOWgzODkuN3Y1OC42em0tMzY2IDEzMC4xSDQydjMzLjVoMTAuOHptMCA0My4ySDQydjMzLjVoMTAuOHpNMTcwIDEzNS4yaC0zMy41djEwLjVIMTcwem0yMjUuMiAxNjMuMUg0MDZ2LTMzLjVoLTEwLjh6bTAtNDMuMkg0MDZ2LTMzLjVoLTEwLjh6TTIxNyAxMzUuMmgtMzMuMnYxMC41SDIxN3pNMzk1LjIgMjEySDQwNnYtMzMuNWgtMTAuOHptMCAxMjkuNUg0MDZWMzA4aC0xMC44em0tMTMxLTIwNi4zSDIzMXYxMC41aDMzLjJ6bTQ3LjMgMEgyNzh2MTAuNWgzMy41em04My43IDMzLjZINDA2di0zMy41aC0zMy41djEwLjVoMjIuOHptLTM2LjQtMzMuNmgtMzMuNXYxMC41aDMzLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BpZnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg4LjMyLDEwNC4xYTQuNjYsNC42NiwwLDAsMC00LjQtNGMtMiwwLTM3LjIzLS44LTM3LjIzLS44cy0yMS42MS0yMC44Mi0yOS42Mi0yOC44M1Y1MDMuMkw0NDIuNzYsNDcyUzM4OC43MiwxMDYuNSwzODguMzIsMTA0LjFaTTI4OC42NSw3MC40N2ExMTYuNjcsMTE2LjY3LDAsMCwwLTcuMjEtMTcuNjFDMjcxLDMyLjg1LDI1NS40MiwyMiwyMzcsMjJhMTUsMTUsMCwwLDAtNCwuNGMtLjQtLjgtMS4yLTEuMi0xLjYtMkMyMjMuNCwxMS42MywyMTMsNy42MywyMDAuNTgsOGMtMjQsLjgtNDgsMTgtNjcuMjUsNDguODMtMTMuNjEsMjEuNjItMjQsNDguODQtMjYuODIsNzAuMDYtMjcuNjIsOC40LTQ2LjgzLDE0LjQxLTQ3LjIzLDE0LjgxLTE0LDQuNC0xNC40MSw0LjgtMTYsMTgtMS4yLDEwLTM4LDI5MS44Mi0zOCwyOTEuODJMMzA3Ljg2LDUwNFY2NS42N2E0MS42Niw0MS42NiwwLDAsMC00LjQuNFMyOTcuODYsNjcuNjcsMjg4LjY1LDcwLjQ3Wk0yMzMuNDEsODcuNjljLTE2LDQuOC0zMy42MywxMC40LTUwLjg0LDE1LjYxLDQuOC0xOC44MiwxNC40MS0zNy42MywyNS42Mi01MCw0LjQtNC40LDEwLjQxLTkuNjEsMTcuMjEtMTIuODFDMjMyLjIxLDU0Ljg2LDIzMy44MSw3NC40OCwyMzMuNDEsODcuNjlaTTIwMC41OCwyNC40NEEyNy40OSwyNy40OSwwLDAsMSwyMTUsMjhjLTYuNCwzLjItMTIuODEsOC40MS0xOC44MSwxNC40MS0xNS4yMSwxNi40Mi0yNi44Miw0Mi0zMS42Miw2Ni40NS0xNC40Miw0LjQxLTI4LjgzLDguODEtNDIsMTIuODFDMTMxLjMzLDgzLjI4LDE2My43NSwyNS4yNCwyMDAuNTgsMjQuNDRaTTE1NC4xNSwyNDQuNjFjMS42LDI1LjYxLDY5LjI1LDMxLjIyLDczLjI1LDkxLjY2LDIuOCw0Ny42NC0yNS4yMiw4MC4wNi02NS42NSw4Mi40Ny00OC44MywzLjItNzUuNjUtMjUuNjItNzUuNjUtMjUuNjJsMTAuNC00NHMyNi44MiwyMC40Miw0OC40NCwxOC44MmMxNC0uOCwxOS4yMi0xMi40MSwxOC44MS0yMC40Mi0yLTMzLjYyLTU3LjI0LTMxLjYyLTYwLjg0LTg2Ljg2LTMuMi00Ni40NCwyNy4yMi05My4yNyw5NC40Ny05Ny42OCwyNi0xLjYsMzkuMjMsNC44MSwzOS4yMyw0LjgxTDIyMS40LDIyNS4zOXMtMTcuMjEtOC0zNy42My02LjRDMTU0LjE1LDIyMSwxNTMuNzUsMjM5LjgsMTU0LjE1LDI0NC42MVpNMjQ5LjQyLDgyLjg4YzAtMTItMS42LTI5LjIyLTcuMjEtNDMuNjMsMTguNDIsMy42LDI3LjIyLDI0LDMxLjIzLDM2LjQzUTI2Mi42Myw3OC42OCwyNDkuNDIsODIuODhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3B3YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMy41IDQ1NS40MUEyNDYuMTcgMjQ2LjE3IDAgMCAxIDI1NiA1MDRDMTE4LjgxIDUwNCA4IDM5MyA4IDI1NiA4IDExOC44MSAxMTkgOCAyNTYgOGEyNDcuMzkgMjQ3LjM5IDAgMCAxIDE2NS43IDYzLjUgMy41NyAzLjU3IDAgMCAxLTIuODYgNi4xOEE0MTguNjIgNDE4LjYyIDAgMCAwIDM2Mi4xMyA3NGMtMTI5LjM2IDAtMjIyLjQgNTMuNDctMjIyLjQgMTU1LjM1IDAgMTA5IDkyLjEzIDE0NS44OCAxNzYuODMgMTc4LjczIDMzLjY0IDEzIDY1LjQgMjUuMzYgODcgNDEuNTlhMy41OCAzLjU4IDAgMCAxIDAgNS43MnpNNTAzIDIzMy4wOWEzLjY0IDMuNjQgMCAwIDAtMS4yNy0yLjQ0Yy01MS43Ni00My05My42Mi02MC40OC0xNDQuNDgtNjAuNDgtODQuMTMgMC04MC4yNSA1Mi4xNy04MC4yNSA1My42MyAwIDQyLjYgNTIuMDYgNjIgMTEyLjM0IDg0LjQ5IDMxLjA3IDExLjU5IDYzLjE5IDIzLjU3IDkyLjY4IDM5LjkzYTMuNTcgMy41NyAwIDAgMCA1LTEuODJBMjQ5IDI0OSAwIDAgMCA1MDMgMjMzLjA5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW1wbHlidWlsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuMiA2NGgtMTA2Yy0xNC41IDAtMjYuNiAxMS44LTI2LjYgMjYuM3YzOS42SDE2My4zVjkwLjNjMC0xNC41LTEyLTI2LjMtMjYuNi0yNi4zaC0xMDZDMTYuMSA2NCA0LjMgNzUuOCA0LjMgOTAuM3YzMzEuNGMwIDE0LjUgMTEuOCAyNi4zIDI2LjYgMjYuM2g0NTAuNGMxNC44IDAgMjYuNi0xMS44IDI2LjYtMjYuM1Y5MC4zYy0uMi0xNC41LTEyLTI2LjMtMjYuNy0yNi4zek0xNDkuOCAzNTUuOGMtMzYuNiAwLTY2LjQtMjkuNy02Ni40LTY2LjQgMC0zNi45IDI5LjctNjYuNiA2Ni40LTY2LjYgMzYuOSAwIDY2LjYgMjkuNyA2Ni42IDY2LjYgMCAzNi43LTI5LjcgNjYuNC02Ni42IDY2LjR6bTIxMi40IDBjLTM2LjkgMC02Ni42LTI5LjctNjYuNi02Ni42IDAtMzYuNiAyOS43LTY2LjQgNjYuNi02Ni40IDM2LjYgMCA2Ni40IDI5LjcgNjYuNCA2Ni40IDAgMzYuOS0yOS44IDY2LjYtNjYuNCA2Ni42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXN0cml4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0NDlMMzAxLjIgMzAwLjJjMjAtMjcuOSAzMS45LTYyLjIgMzEuOS05OS4yIDAtOTMuMS03NC43LTE2OC45LTE2Ni41LTE2OC45Qzc0LjcgMzIgMCAxMDcuOCAwIDIwMC45czc0LjcgMTY4LjkgMTY2LjUgMTY4LjljMzkuOCAwIDc2LjMtMTQuMiAxMDUtMzcuOWwxNDYgMTQ4LjEgMzAuNS0zMXpNMTY2LjUgMzMwLjhjLTcwLjYgMC0xMjguMS01OC4zLTEyOC4xLTEyOS45Uzk1LjkgNzEgMTY2LjUgNzFzMTI4LjEgNTguMyAxMjguMSAxMjkuOS01Ny40IDEyOS45LTEyOC4xIDEyOS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMzJsNjkuNzEgMTE4Ljc1LTU4Ljg2LTExLjUyIDY5Ljg0IDkxLjAzYTE0Ni43NDEgMTQ2Ljc0MSAwIDAgMCAwIDUxLjQ1bC02OS44NCA5MS4wMyA1OC44Ni0xMS41MkwwIDQ4MGwxMTguNzUtNjkuNzEtMTEuNTIgNTguODYgOTEuMDMtNjkuODRjMTcuMDIgMy4wNCAzNC40NyAzLjA0IDUxLjQ4IDBsOTEuMDMgNjkuODQtMTEuNTItNTguODZMNDQ4IDQ4MGwtNjkuNzEtMTE4Ljc4IDU4Ljg2IDExLjUyLTY5Ljg0LTkxLjAzYzMuMDMtMTcuMDEgMy4wNC0zNC40NCAwLTUxLjQ1bDY5Ljg0LTkxLjAzLTU4Ljg2IDExLjUyTDQ0OCAzMmwtMTE4Ljc1IDY5LjcxIDExLjUyLTU4LjktOTEuMDYgNjkuODdjLTguNS0xLjUyLTE3LjEtMi4yOS0yNS43MS0yLjI5cy0xNy4yMS43OC0yNS43MSAyLjI5bC05MS4wNi02OS44NyAxMS41MiA1OC45TDAgMzJ6bTIyNCA5OS43OGMzMS44IDAgNjMuNiAxMi4xMiA4Ny44NSAzNi4zNyA0OC41IDQ4LjUgNDguNDkgMTI3LjIxIDAgMTc1LjdzLTEyNy4yIDQ4LjQ2LTE3NS43LS4wM2MtNDguNS00OC41LTQ4LjQ5LTEyNy4yMSAwLTE3NS43IDI0LjI0LTI0LjI1IDU2LjA1LTM2LjM0IDg3Ljg1LTM2LjM0em0wIDM2LjY2Yy0yMi40MiAwLTQ0LjgzIDguNTItNjEuOTIgMjUuNjEtMzQuMTggMzQuMTgtMzQuMTkgODkuNjggMCAxMjMuODdzODkuNjUgMzQuMTggMTIzLjg0IDBjMzQuMTgtMzQuMTggMzQuMTktODkuNjggMC0xMjMuODctMTcuMDktMTcuMDktMzkuNS0yNS42MS02MS45Mi0yNS42MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2tldGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3LjUgMTYyLjJMOSAxODcuMWg5MC41bDYuOS0xMzAuNy03OC45IDEwNS44ek0zOTYuMyA0NS43TDI2Ny43IDMybDEzNS43IDE0Ny4yLTcuMS0xMzMuNXpNMTEyLjIgMjE4LjNsLTExLjItMjJIOS45TDIzNC44IDQ1OHptMi0zMS4yaDI4NGwtODEuNS04OC41TDI1Ni4zIDMzem0yOTcuMyA5LjFMMjc3LjYgNDU4bDIyNC44LTI2MS43aC05MC45ek00MTUuNCA2OUw0MDYgNTYuNGwuOSAxNy4zIDYuMSAxMTMuNGg5MC4zek0xMTMuNSA5My41bC00LjYgODUuNkwyNDQuNyAzMiAxMTYuMSA0NS43em0yODcuNyAxMDIuN2gtMjkwbDQyLjQgODIuOUwyNTYuMyA0ODBsMTQ0LjktMjgzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNreWF0bGFzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAzMjkuM2MwIDY1LjktNTIuNSAxMTQuNC0xMTcuNSAxMTQuNC0xNjUuOSAwLTE5Ni42LTI0OS43LTM1OS43LTI0OS43LTE0Ni45IDAtMTQ3LjEgMjEyLjIgNS42IDIxMi4yIDQyLjUgMCA5MC45LTE3LjggMTI1LjMtNDIuNSA1LjYtNC4xIDE2LjktMTYuMyAyMi44LTE2LjNzMTAuOSA1IDEwLjkgMTAuOWMwIDcuOC0xMy4xIDE5LjEtMTguNyAyNC4xLTQwLjkgMzUuNi0xMDAuMyA2MS4yLTE1NC43IDYxLjItODMuNC4xLTE1NC01OS0xNTQtMTQ0LjlzNjcuNS0xNDkuMSAxNTIuOC0xNDkuMWMxODUuMyAwIDIyMi41IDI0NS45IDM2MS45IDI0NS45IDk5LjkgMCA5NC44LTEzOS43IDMuNC0xMzkuNy0xNy41IDAtMzUgMTEuNi00Ni45IDExLjYtOC40IDAtMTUuOS03LjItMTUuOS0xNS42IDAtMTEuNiA1LjMtMjMuNyA1LjMtMzYuMyAwLTY2LjYtNTAuOS0xMTQuNy0xMTYuOS0xMTQuNy01My4xIDAtODAgMzYuOS04OC44IDM2LjktNi4yIDAtMTEuMi01LTExLjItMTEuMiAwLTUuNiA0LjEtMTAuMyA3LjgtMTQuNCAyNS4zLTI4LjggNjQuNy00My43IDEwMi44LTQzLjcgNzkuNCAwIDEzOS4xIDU4LjQgMTM5LjEgMTM3LjggMCA2LjktLjMgMTMuNy0xLjIgMjAuNiAxMS45LTMuMSAyNC4xLTQuNyAzNS45LTQuNyA2MC43IDAgMTExLjkgNDUuMyAxMTEuOSAxMDcuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t5cGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjcgMjk5LjhjMi45LTE0IDQuNy0yOC45IDQuNy00My44IDAtMTEzLjUtOTEuOS0yMDUuMy0yMDUuMy0yMDUuMy0xNC45IDAtMjkuNyAxLjctNDMuOCA0LjdDMTYxLjMgNDAuNyAxMzcuNyAzMiAxMTIgMzIgNTAuMiAzMiAwIDgyLjIgMCAxNDRjMCAyNS43IDguNyA0OS4zIDIzLjMgNjguMi0yLjkgMTQtNC43IDI4LjktNC43IDQzLjggMCAxMTMuNSA5MS45IDIwNS4zIDIwNS4zIDIwNS4zIDE0LjkgMCAyOS43LTEuNyA0My44LTQuNyAxOSAxNC42IDQyLjYgMjMuMyA2OC4yIDIzLjMgNjEuOCAwIDExMi01MC4yIDExMi0xMTIgLjEtMjUuNi04LjYtNDkuMi0yMy4yLTY4LjF6bS0xOTQuNiA5MS41Yy02NS42IDAtMTIwLjUtMjkuMi0xMjAuNS02NSAwLTE2IDktMzAuNiAyOS41LTMwLjYgMzEuMiAwIDM0LjEgNDQuOSA4OC4xIDQ0LjkgMjUuNyAwIDQyLjMtMTEuNCA0Mi4zLTI2LjMgMC0xOC43LTE2LTIxLjYtNDItMjgtNjIuNS0xNS40LTExNy44LTIyLTExNy44LTg3LjIgMC01OS4yIDU4LjYtODEuMSAxMDkuMS04MS4xIDU1LjEgMCAxMTAuOCAyMS45IDExMC44IDU1LjQgMCAxNi45LTExLjQgMzEuOC0zMC4zIDMxLjgtMjguMyAwLTI5LjItMzMuNS03NS0zMy41LTI1LjcgMC00MiA3LTQyIDIyLjUgMCAxOS44IDIwLjggMjEuOCA2OS4xIDMzIDQxLjQgOS4zIDkwLjcgMjYuOCA5MC43IDc3LjYgMCA1OS4xLTU3LjEgODYuNS0xMTIgODYuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xhY2tIYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni4yIDI3MC40Yy02LjItMTktMjYuOS0yOS4xLTQ2LTIyLjlsLTQ1LjQgMTUuMS0zMC4zLTkwIDQ1LjQtMTUuMWMxOS4xLTYuMiAyOS4xLTI2LjggMjMtNDUuOS02LjItMTktMjYuOS0yOS4xLTQ2LTIyLjlsLTQ1LjQgMTUuMS0xNS43LTQ3Yy02LjItMTktMjYuOS0yOS4xLTQ2LTIyLjktMTkuMSA2LjItMjkuMSAyNi44LTIzIDQ1LjlsMTUuNyA0Ny05My40IDMxLjItMTUuNy00N2MtNi4yLTE5LTI2LjktMjkuMS00Ni0yMi45LTE5LjEgNi4yLTI5LjEgMjYuOC0yMyA0NS45bDE1LjcgNDctNDUuMyAxNWMtMTkuMSA2LjItMjkuMSAyNi44LTIzIDQ1LjkgNSAxNC41IDE5LjEgMjQgMzMuNiAyNC42IDYuOCAxIDEyLTEuNiA1Ny43LTE2LjhsMzAuMyA5MEw3OCAzNTQuOGMtMTkgNi4yLTI5LjEgMjYuOS0yMyA0NS45IDUgMTQuNSAxOS4xIDI0IDMzLjYgMjQuNiA2LjggMSAxMi0xLjYgNTcuNy0xNi44bDE1LjcgNDdjNS45IDE2LjkgMjQuNyAyOSA0NiAyMi45IDE5LjEtNi4yIDI5LjEtMjYuOCAyMy00NS45bC0xNS43LTQ3IDkzLjYtMzEuMyAxNS43IDQ3YzUuOSAxNi45IDI0LjcgMjkgNDYgMjIuOSAxOS4xLTYuMiAyOS4xLTI2LjggMjMtNDUuOWwtMTUuNy00NyA0NS40LTE1LjFjMTktNiAyOS4xLTI2LjcgMjIuOS00NS43em0tMjU0LjEgNDcuMmwtMzAuMy05MC4yIDkzLjUtMzEuMyAzMC4zIDkwLjItOTMuNSAzMS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NC4xMiAzMTUuMWMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZTMCAzNDEgMCAzMTUuMWMwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZoNDcuMDZ2NDcuMDZ6bTIzLjcyIDBjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2czQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2djExNy44NGMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZzLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2VjMxNS4xem00Ny4wNi0xODguOThjLTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNlMxMzkgMzIgMTY0LjkgMzJzNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZ2NDcuMDZIMTY0Ljl6bTAgMjMuNzJjMjUuOSAwIDQ3LjA2IDIxLjE2IDQ3LjA2IDQ3LjA2cy0yMS4xNiA0Ny4wNi00Ny4wNiA0Ny4wNkg0Ny4wNkMyMS4xNiAyNDMuOTYgMCAyMjIuOCAwIDE5Ni45czIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2SDE2NC45em0xODguOTggNDcuMDZjMC0yNS45IDIxLjE2LTQ3LjA2IDQ3LjA2LTQ3LjA2IDI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNnMtMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZoLTQ3LjA2VjE5Ni45em0tMjMuNzIgMGMwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDYtMjUuOSAwLTQ3LjA2LTIxLjE2LTQ3LjA2LTQ3LjA2Vjc5LjA2YzAtMjUuOSAyMS4xNi00Ny4wNiA0Ny4wNi00Ny4wNiAyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDZWMTk2Ljl6TTI4My4xIDM4NS44OGMyNS45IDAgNDcuMDYgMjEuMTYgNDcuMDYgNDcuMDYgMCAyNS45LTIxLjE2IDQ3LjA2LTQ3LjA2IDQ3LjA2LTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNnYtNDcuMDZoNDcuMDZ6bTAtMjMuNzJjLTI1LjkgMC00Ny4wNi0yMS4xNi00Ny4wNi00Ny4wNiAwLTI1LjkgMjEuMTYtNDcuMDYgNDcuMDYtNDcuMDZoMTE3Ljg0YzI1LjkgMCA0Ny4wNiAyMS4xNiA0Ny4wNiA0Ny4wNiAwIDI1LjktMjEuMTYgNDcuMDYtNDcuMDYgNDcuMDZIMjgzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsaWRlc2hhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg3LjcgMTUzLjdjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuN3M2MS43LTI2IDYxLjctNTcuN2MwLTMyLTI3LjctNTcuNy02MS43LTU3Ljd6bTE0My40IDBjLTM0IDAtNjEuNyAyNS43LTYxLjcgNTcuNyAwIDMxLjcgMjcuNyA1Ny43IDYxLjcgNTcuNyAzNC4zIDAgNjEuNy0yNiA2MS43LTU3LjcuMS0zMi0yNy40LTU3LjctNjEuNy01Ny43em0xNTYuNiA5MGwtNiA0LjNWNDkuN2MwLTI3LjQtMjAuNi00OS43LTQ2LTQ5LjdINzYuNmMtMjUuNCAwLTQ2IDIyLjMtNDYgNDkuN1YyNDhjLTItMS40LTQuMy0yLjktNi4zLTQuMy0xNS4xLTEwLjYtMjUuMSA0LTE2IDE3LjcgMTguMyAyMi42IDUzLjEgNTAuMyAxMDYuMyA3MkM1OC4zIDUyNS4xIDI1MiA1NTUuNyAyNDguOSA0NTcuNWMwLS43LjMtNTYuNi4zLTk2LjYgNS4xIDEuMSA5LjQgMi4zIDEzLjcgMy4xIDAgMzkuNy4zIDkyLjguMyA5My41LTMuMSA5OC4zIDE5MC42IDY3LjcgMTM0LjMtMTI0IDUzLjEtMjEuNyA4OC00OS40IDEwNi4zLTcyIDkuMS0xMy44LS45LTI4LjMtMTYuMS0xNy44em0tMzAuNSAxOS4yYy02OC45IDM3LjQtMTI4LjMgMzEuMS0xNjAuNiAyOS43LTIzLjctLjktMzIuNiA5LjEtMzMuNyAyNC45LTEwLjMtNy43LTE4LjYtMTUuNS0yMC4zLTE3LjEtNS4xLTUuNC0xMy43LTgtMjcuMS03LjctMzEuNyAxLjEtODkuNyA3LjQtMTU3LjQtMjhWNzIuM2MwLTM0LjkgOC45LTQ1LjcgNDAuNi00NS43aDMxNy43YzMwLjMgMCA0MC45IDEyLjkgNDAuOSA0NS43djE5MC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbmFwY2hhdEdob3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC44NDYgMzkyLjY3M2MtNS4yMTEgMTIuMTU3LTI3LjIzOSAyMS4wODktNjcuMzYgMjcuMzE4LTIuMDY0IDIuNzg2LTMuNzc1IDE0LjY4Ni02LjUwNyAyMy45NTYtMS42MjUgNS41NjYtNS42MjMgOC44NjktMTIuMTI4IDguODY5bC0uMjk3LS4wMDVjLTkuMzk1IDAtMTkuMjAzLTQuMzIzLTM4Ljg1Mi00LjMyMy0yNi41MjEgMC0zNS42NjIgNi4wNDMtNTYuMjU0IDIwLjU4OC0yMS44MzIgMTUuNDM4LTQyLjc3MSAyOC43NjQtNzQuMDI3IDI3LjM5OS0zMS42NDYgMi4zMzQtNTguMDI1LTE2LjkwOC03Mi44NzEtMjcuNDA0LTIwLjcxNC0xNC42NDMtMjkuODI4LTIwLjU4Mi01Ni4yNDEtMjAuNTgyLTE4Ljg2NCAwLTMwLjczNiA0LjcyLTM4Ljg1MiA0LjcyLTguMDczIDAtMTEuMjEzLTQuOTIyLTEyLjQyMi05LjA0LTIuNzAzLTkuMTg5LTQuNDA0LTIxLjI2My02LjUyMy0yNC4xMy0yMC42NzktMy4yMDktNjcuMzEtMTEuMzQ0LTY4LjQ5OC0zMi4xNWExMC42MjcgMTAuNjI3IDAgMCAxIDguODc3LTExLjA2OWM2OS41ODMtMTEuNDU1IDEwMC45MjQtODIuOTAxIDEwMi4yMjctODUuOTM0LjA3NC0uMTc2LjE1NS0uMzQ0LjIzNy0uNTE1IDMuNzEzLTcuNTM3IDQuNTQ0LTEzLjg0OSAyLjQ2My0xOC43NTMtNS4wNS0xMS44OTYtMjYuODcyLTE2LjE2NC0zNi4wNTMtMTkuNzk2LTIzLjcxNS05LjM2Ni0yNy4wMTUtMjAuMTI4LTI1LjYxMi0yNy41MDQgMi40MzctMTIuODM2IDIxLjcyNS0yMC43MzUgMzMuMDAyLTE1LjQ1MyA4LjkxOSA0LjE4MSAxNi44NDMgNi4yOTcgMjMuNTQ3IDYuMjk3IDUuMDIyIDAgOC4yMTItMS4yMDQgOS45Ni0yLjE3MS0yLjA0My0zNS45MzYtNy4xMDEtODcuMjkgNS42ODctMTE1Ljk2OUMxNTguMTIyIDIxLjMwNCAyMjkuNzA1IDE1LjQyIDI1MC44MjYgMTUuNDJjLjk0NCAwIDkuMTQxLS4wODkgMTAuMTEtLjA4OSA1Mi4xNDggMCAxMDIuMjU0IDI2Ljc4IDEyNi43MjMgODEuNjQzIDEyLjc3NyAyOC42NSA3Ljc0OSA3OS43OTIgNS42OTUgMTE2LjAwOSAxLjU4Mi44NzIgNC4zNTcgMS45NDIgOC41OTkgMi4xMzkgNi4zOTctLjI4NiAxMy44MTUtMi4zODkgMjIuMDY5LTYuMjU3IDYuMDg1LTIuODQ2IDE0LjQwNi0yLjQ2MSAyMC40OC4wNThsLjAyOS4wMWM5LjQ3NiAzLjM4NSAxNS40MzkgMTAuMjE1IDE1LjU4OSAxNy44Ny4xODQgOS43NDctOC41MjIgMTguMTY1LTI1Ljg3OCAyNS4wMTgtMi4xMTguODM1LTQuNjk0IDEuNjU1LTcuNDM0IDIuNTI1LTkuNzk3IDMuMTA2LTI0LjYgNy44MDUtMjguNjE2IDE3LjI3MS0yLjA3OSA0LjkwNC0xLjI1NiAxMS4yMTEgMi40NiAxOC43NDguMDg3LjE2OC4xNjYuMzQyLjIzOS41MTUgMS4zMDEgMy4wMyAzMi42MTUgNzQuNDYgMTAyLjIzIDg1LjkzNCA2LjQyNyAxLjA1OCAxMS4xNjMgNy44NzcgNy43MjUgMTUuODU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbmFwY2hhdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNi41IDMxNC45Yy0zLjUgOC4xLTE4LjEgMTQtNDQuOCAxOC4yLTEuNCAxLjktMi41IDkuOC00LjMgMTUuOS0xLjEgMy43LTMuNyA1LjktOC4xIDUuOWgtLjJjLTYuMiAwLTEyLjgtMi45LTI1LjgtMi45LTE3LjYgMC0yMy43IDQtMzcuNCAxMy43LTE0LjUgMTAuMy0yOC40IDE5LjEtNDkuMiAxOC4yLTIxIDEuNi0zOC42LTExLjItNDguNS0xOC4yLTEzLjgtOS43LTE5LjgtMTMuNy0zNy40LTEzLjctMTIuNSAwLTIwLjQgMy4xLTI1LjggMy4xLTUuNCAwLTcuNS0zLjMtOC4zLTYtMS44LTYuMS0yLjktMTQuMS00LjMtMTYtMTMuOC0yLjEtNDQuOC03LjUtNDUuNS0yMS40LS4yLTMuNiAyLjMtNi44IDUuOS03LjQgNDYuMy03LjYgNjcuMS01NS4xIDY4LTU3LjEgMC0uMS4xLS4yLjItLjMgMi41LTUgMy05LjIgMS42LTEyLjUtMy40LTcuOS0xNy45LTEwLjctMjQtMTMuMi0xNS44LTYuMi0xOC0xMy40LTE3LTE4LjMgMS42LTguNSAxNC40LTEzLjggMjEuOS0xMC4zIDUuOSAyLjggMTEuMiA0LjIgMTUuNyA0LjIgMy4zIDAgNS41LS44IDYuNi0xLjQtMS40LTIzLjktNC43LTU4IDMuOC03Ny4xQzE1OS4xIDEwMCAyMDYuNyA5NiAyMjAuNyA5NmMuNiAwIDYuMS0uMSA2LjctLjEgMzQuNyAwIDY4IDE3LjggODQuMyA1NC4zIDguNSAxOS4xIDUuMiA1My4xIDMuOCA3Ny4xIDEuMS42IDIuOSAxLjMgNS43IDEuNCA0LjMtLjIgOS4yLTEuNiAxNC43LTQuMiA0LTEuOSA5LjYtMS42IDEzLjYgMCA2LjMgMi4zIDEwLjMgNi44IDEwLjQgMTEuOS4xIDYuNS01LjcgMTIuMS0xNy4yIDE2LjYtMS40LjYtMy4xIDEuMS00LjkgMS43LTYuNSAyLjEtMTYuNCA1LjItMTkgMTEuNS0xLjQgMy4zLS44IDcuNSAxLjYgMTIuNS4xLjEuMS4yLjIuMy45IDIgMjEuNyA0OS41IDY4IDU3LjEgNCAxIDcuMSA1LjUgNC45IDEwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNuYXBjaGF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE2OS41IDMzOC45Yy0zLjUgOC4xLTE4LjEgMTQtNDQuOCAxOC4yLTEuNCAxLjktMi41IDkuOC00LjMgMTUuOS0xLjEgMy43LTMuNyA1LjktOC4xIDUuOWgtLjJjLTYuMiAwLTEyLjgtMi45LTI1LjgtMi45LTE3LjYgMC0yMy43IDQtMzcuNCAxMy43LTE0LjUgMTAuMy0yOC40IDE5LjEtNDkuMiAxOC4yLTIxIDEuNi0zOC42LTExLjItNDguNS0xOC4yLTEzLjgtOS43LTE5LjgtMTMuNy0zNy40LTEzLjctMTIuNSAwLTIwLjQgMy4xLTI1LjggMy4xLTUuNCAwLTcuNS0zLjMtOC4zLTYtMS44LTYuMS0yLjktMTQuMS00LjMtMTYtMTMuOC0yLjEtNDQuOC03LjUtNDUuNS0yMS40LS4yLTMuNiAyLjMtNi44IDUuOS03LjQgNDYuMy03LjYgNjcuMS01NS4xIDY4LTU3LjEgMC0uMS4xLS4yLjItLjMgMi41LTUgMy05LjIgMS42LTEyLjUtMy40LTcuOS0xNy45LTEwLjctMjQtMTMuMi0xNS44LTYuMi0xOC0xMy40LTE3LTE4LjMgMS42LTguNSAxNC40LTEzLjggMjEuOS0xMC4zIDUuOSAyLjggMTEuMiA0LjIgMTUuNyA0LjIgMy4zIDAgNS41LS44IDYuNi0xLjQtMS40LTIzLjktNC43LTU4IDMuOC03Ny4xQzE4My4xIDEwMCAyMzAuNyA5NiAyNDQuNyA5NmMuNiAwIDYuMS0uMSA2LjctLjEgMzQuNyAwIDY4IDE3LjggODQuMyA1NC4zIDguNSAxOS4xIDUuMiA1My4xIDMuOCA3Ny4xIDEuMS42IDIuOSAxLjMgNS43IDEuNCA0LjMtLjIgOS4yLTEuNiAxNC43LTQuMiA0LTEuOSA5LjYtMS42IDEzLjYgMCA2LjMgMi4zIDEwLjMgNi44IDEwLjQgMTEuOS4xIDYuNS01LjcgMTIuMS0xNy4yIDE2LjYtMS40LjYtMy4xIDEuMS00LjkgMS43LTYuNSAyLjEtMTYuNCA1LjItMTkgMTEuNS0xLjQgMy4zLS44IDcuNSAxLjYgMTIuNS4xLjEuMS4yLjIuMy45IDIgMjEuNyA0OS41IDY4IDU3LjEgNCAxIDcuMSA1LjUgNC45IDEwLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvdW5kY2xvdWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTExLjQgMjU2LjNsNS44IDY1LTUuOCA2OC4zYy0uMyAyLjUtMi4yIDQuNC00LjQgNC40cy00LjItMS45LTQuMi00LjRsLTUuNi02OC4zIDUuNi02NWMwLTIuMiAxLjktNC4yIDQuMi00LjIgMi4yIDAgNC4xIDIgNC40IDQuMnptMjEuNC00NS42Yy0yLjggMC00LjcgMi4yLTUgNWwtNSAxMDUuNiA1IDY4LjNjLjMgMi44IDIuMiA1IDUgNSAyLjUgMCA0LjctMi4yIDQuNy01bDUuOC02OC4zLTUuOC0xMDUuNmMwLTIuOC0yLjItNS00LjctNXptMjUuNS0yNC4xYy0zLjEgMC01LjMgMi4yLTUuNiA1LjNsLTQuNCAxMzAgNC40IDY3LjhjLjMgMy4xIDIuNSA1LjMgNS42IDUuMyAyLjggMCA1LjMtMi4yIDUuMy01LjNsNS4zLTY3LjgtNS4zLTEzMGMwLTMuMS0yLjUtNS4zLTUuMy01LjN6TTcuMiAyODMuMmMtMS40IDAtMi4yIDEuMS0yLjUgMi41TDAgMzIxLjNsNC43IDM1Yy4zIDEuNCAxLjEgMi41IDIuNSAyLjVzMi4yLTEuMSAyLjUtMi41bDUuNi0zNS01LjYtMzUuNmMtLjMtMS40LTEuMS0yLjUtMi41LTIuNXptMjMuNi0yMS45Yy0xLjQgMC0yLjUgMS4xLTIuNSAyLjVsLTYuNCA1Ny41IDYuNCA1Ni4xYzAgMS43IDEuMSAyLjggMi41IDIuOHMyLjUtMS4xIDIuOC0yLjVsNy4yLTU2LjQtNy4yLTU3LjVjLS4zLTEuNC0xLjQtMi41LTIuOC0yLjV6bTI1LjMtMTEuNGMtMS43IDAtMy4xIDEuNC0zLjMgMy4zTDQ3IDMyMS4zbDUuOCA2NS44Yy4zIDEuNyAxLjcgMy4xIDMuMyAzLjEgMS43IDAgMy4xLTEuNCAzLjEtMy4xbDYuOS02NS44LTYuOS02OC4xYzAtMS45LTEuNC0zLjMtMy4xLTMuM3ptMjUuMy0yLjJjLTEuOSAwLTMuNiAxLjQtMy42IDMuNmwtNS44IDcwIDUuOCA2Ny44YzAgMi4yIDEuNyAzLjYgMy42IDMuNnMzLjYtMS40IDMuOS0zLjZsNi40LTY3LjgtNi40LTcwYy0uMy0yLjItMi0zLjYtMy45LTMuNnptMjQxLjQtMTEwLjljLTEuMS0uOC0yLjgtMS40LTQuMi0xLjQtMi4yIDAtNC4yLjgtNS42IDEuOS0xLjkgMS43LTMuMSA0LjItMy4zIDYuN3YuOGwtMy4zIDE3Ni43IDEuNyAzMi41IDEuNyAzMS43Yy4zIDQuNyA0LjIgOC42IDguOSA4LjZzOC42LTMuOSA4LjYtOC42bDMuOS02NC4yLTMuOS0xNzcuNWMtLjQtMy0yLTUuOC00LjUtNy4yem0tMjYuNyAxNS4zYy0xLjQtLjgtMi44LTEuNC00LjQtMS40cy0zLjEuNi00LjQgMS40Yy0yLjIgMS40LTMuNiAzLjktMy42IDYuN2wtLjMgMS43LTIuOCAxNjAuOHMwIC4zIDMuMSA2NS42di4zYzAgMS43LjYgMy4zIDEuNyA0LjcgMS43IDEuOSAzLjkgMy4xIDYuNCAzLjEgMi4yIDAgNC4yLTEuMSA1LjYtMi41IDEuNy0xLjQgMi41LTMuMyAyLjUtNS42bC4zLTYuNyAzLjEtNTguNi0zLjMtMTYyLjhjLS4zLTIuOC0xLjctNS4zLTMuOS02Ljd6bS0xMTEuNCAyMi41Yy0zLjEgMC01LjggMi44LTUuOCA2LjFsLTQuNCAxNDAuNiA0LjQgNjcuMmMuMyAzLjMgMi44IDUuOCA1LjggNS44IDMuMyAwIDUuOC0yLjUgNi4xLTUuOGw1LTY3LjItNS0xNDAuNmMtLjItMy4zLTIuNy02LjEtNi4xLTYuMXptMzc2LjcgNjIuOGMtMTAuOCAwLTIxLjEgMi4yLTMwLjYgNi4xLTYuNC03MC44LTY1LjgtMTI2LjQtMTM4LjMtMTI2LjQtMTcuOCAwLTM1IDMuMy01MC4zIDkuNC02LjEgMi4yLTcuOCA0LjQtNy44IDkuMnYyNDkuN2MwIDUgMy45IDguNiA4LjYgOS4yaDIxOC4zYzQzLjMgMCA3OC42LTM1IDc4LjYtNzguMy4xLTQzLjYtMzUuMi03OC45LTc4LjUtNzguOXptLTI5Ni43LTYwLjNjLTQuMiAwLTcuNSAzLjMtNy44IDcuOGwtMy4zIDEzNi43IDMuMyA2NS42Yy4zIDQuMiAzLjYgNy41IDcuOCA3LjUgNC4yIDAgNy41LTMuMyA3LjUtNy41bDMuOS02NS42LTMuOS0xMzYuN2MtLjMtNC41LTMuMy03LjgtNy41LTcuOHptLTUzLjYtNy44Yy0zLjMgMC02LjQgMy4xLTYuNCA2LjdsLTMuOSAxNDUuMyAzLjkgNjYuOWMuMyAzLjYgMy4xIDYuNCA2LjQgNi40IDMuNiAwIDYuNC0yLjggNi43LTYuNGw0LjQtNjYuOS00LjQtMTQ1LjNjLS4zLTMuNi0zLjEtNi43LTYuNy02Ljd6bTI2LjcgMy40Yy0zLjkgMC02LjkgMy4xLTYuOSA2LjlMMjI3IDMyMS4zbDMuOSA2Ni40Yy4zIDMuOSAzLjEgNi45IDYuOSA2LjlzNi45LTMuMSA2LjktNi45bDQuMi02Ni40LTQuMi0xNDEuN2MwLTMuOS0zLTYuOS02LjktNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3VyY2V0cmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyNy4yIDIwM2MwLTExMi4xLTkwLjktMjAzLTIwMy0yMDNDMTEyLjEtLjIgMjEuMiA5MC42IDIxIDIwMi42QTIwMi44NiAyMDIuODYgMCAwIDAgMTYxLjUgMzk2djEwMS43YTE0LjMgMTQuMyAwIDAgMCAxNC4zIDE0LjNoOTYuNGExNC4zIDE0LjMgMCAwIDAgMTQuMy0xNC4zVjM5Ni4xQTIwMy4xOCAyMDMuMTggMCAwIDAgNDI3LjIgMjAzem0tMjcxLjYgMGMwLTkwLjggMTM3LjMtOTAuOCAxMzcuMyAwLS4xIDg5LjktMTM3LjMgOTEtMTM3LjMgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BlYWthcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCAzOTEuNzhDLTE1LjQxIDMwMy41OS04IDE2Ny40MiA4MC42NCA4Ny42NHMyMjQuOC03MyAzMDQuMjEgMTUuMjQgNzIgMjI0LjM2LTE2LjY0IDMwNC4xNGMtMTguNzQgMTYuODcgNjQgNDMuMDkgNDIgNTIuMjYtODIuMDYgMzQuMjEtMjUzLjkxIDM1LTM0Ni4yMy02Ny41em0yMTMuMzEtMjExLjZsMzguNS00MC44NmMtOS42MS04Ljg5LTMyLTI2LjgzLTc2LjE3LTI3LjYtNTIuMzMtLjkxLTk1Ljg2IDI4LjMtOTYuNzcgODAtLjIgMTEuMzMuMjkgMzYuNzIgMjkuNDIgNTQuODMgMzQuNDYgMjEuNDIgODYuNTIgMjEuNTEgODYgNTIuMjYtLjM3IDIxLjI4LTI2LjQyIDI1LjgxLTM4LjU5IDI1LjYtMy0uMDUtMzAuMjMtLjQ2LTQ3LjYxLTI0LjYybC00MCA0Mi42MWMyOC4xNiAyNyA1OSAzMi42MiA4My40OSAzMy4wNSAxMC4yMy4xOCA5Ni40Mi4zMyA5Ny44NC04MSAuMjgtMTUuODEtMi4wNy0zOS43Mi0yOC44Ni01Ni41OS0zNC4zNi0yMS42NC04NS0xOS40NS04NC40My00OS43NS40MS0yMy4yNSAzMS0yNS4zNyAzNy41My0yNS4yNi40MyAwIDI2LjYyLjI2IDM5LjYyIDE3LjM3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGVha2VyRGVjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTMuODYgMjk2SDEwMGExMDAgMTAwIDAgMCAxIDAtMjAwaDEzMi44NGE0MCA0MCAwIDAgMSAwIDgwSDk4Yy0yNi40NyAwLTI2LjQ1IDQwIDAgNDBoMTEzLjgyYTEwMCAxMDAgMCAwIDEgMCAyMDBINDBhNDAgNDAgMCAwIDEgMC04MGgxNzMuODZjMjYuNDggMCAyNi40Ni00MCAwLTQwek0yOTggNDE2YTEyMC4yMSAxMjAuMjEgMCAwIDAgNTEuMTEtODBoNjQuNTVhMTkuODMgMTkuODMgMCAwIDAgMTkuNjYtMjBWMTk2YTE5LjgzIDE5LjgzIDAgMCAwLTE5LjY2LTIwSDI5Ni40MmE2MC43NyA2MC43NyAwIDAgMCAwLTgwaDEzNi45M2M0My40NCAwIDc4LjY1IDM1LjgyIDc4LjY1IDgwdjE2MGMwIDQ0LjE4LTM1LjIxIDgwLTc4LjY1IDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcG90aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4xIDggMCAxMTkuMSAwIDI1NnMxMTEuMSAyNDggMjQ4IDI0OCAyNDgtMTExLjEgMjQ4LTI0OFMzODQuOSA4IDI0OCA4em0xMDAuNyAzNjQuOWMtNC4yIDAtNi44LTEuMy0xMC43LTMuNi02Mi40LTM3LjYtMTM1LTM5LjItMjA2LjctMjQuNS0zLjkgMS05IDIuNi0xMS45IDIuNi05LjcgMC0xNS44LTcuNy0xNS44LTE1LjggMC0xMC4zIDYuMS0xNS4yIDEzLjYtMTYuOCA4MS45LTE4LjEgMTY1LjYtMTYuNSAyMzcgMjYuMiA2LjEgMy45IDkuNyA3LjQgOS43IDE2LjVzLTcuMSAxNS40LTE1LjIgMTUuNHptMjYuOS02NS42Yy01LjIgMC04LjctMi4zLTEyLjMtNC4yLTYyLjUtMzctMTU1LjctNTEuOS0yMzguNi0yOS40LTQuOCAxLjMtNy40IDIuNi0xMS45IDIuNi0xMC43IDAtMTkuNC04LjctMTkuNC0xOS40czUuMi0xNy44IDE1LjUtMjAuN2MyNy44LTcuOCA1Ni4yLTEzLjYgOTcuOC0xMy42IDY0LjkgMCAxMjcuNiAxNi4xIDE3NyA0NS41IDguMSA0LjggMTEuMyAxMSAxMS4zIDE5LjctLjEgMTAuOC04LjUgMTkuNS0xOS40IDE5LjV6bTMxLTc2LjJjLTUuMiAwLTguNC0xLjMtMTIuOS0zLjktNzEuMi00Mi41LTE5OC41LTUyLjctMjgwLjktMjkuNy0zLjYgMS04LjEgMi42LTEyLjkgMi42LTEzLjIgMC0yMy4zLTEwLjMtMjMuMy0yMy42IDAtMTMuNiA4LjQtMjEuMyAxNy40LTIzLjkgMzUuMi0xMC4zIDc0LjYtMTUuMiAxMTcuNS0xNS4yIDczIDAgMTQ5LjUgMTUuMiAyMDUuNCA0Ny44IDcuOCA0LjUgMTIuOSAxMC43IDEyLjkgMjIuNiAwIDEzLjYtMTEgMjMuMy0yMy4yIDIzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZXNwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xMiAzNDMuMzRjLTkuNjUgOS42NS05LjY1IDI1LjI5IDAgMzQuOTQgOS42NSA5LjY1IDI1LjI5IDkuNjUgMzQuOTQgMEwzNzguMjQgMjIxLjFjMTkuMjktMTkuMjkgNTAuNTctMTkuMjkgNjkuODYgMHMxOS4yOSA1MC41NyAwIDY5Ljg2TDI5My45NSA0NDUuMWMxOS4yNyAxOS4yOSA1MC41MyAxOS4zMSA2OS44Mi4wNGwuMDQtLjA0IDExOS4yNS0xMTkuMjRjMzguNTktMzguNTkgMzguNTktMTAxLjE0IDAtMTM5LjcyLTM4LjU5LTM4LjU5LTEwMS4xNS0zOC41OS0xMzkuNzIgMGwtMTU3LjIyIDE1Ny4yem0yNDQuNTMtMTA0LjhjLTkuNjUtOS42NS0yNS4yOS05LjY1LTM0LjkzIDBsLTE1Ny4yIDE1Ny4xOGMtMTkuMjcgMTkuMjktNTAuNTMgMTkuMzEtNjkuODIuMDVsLS4wNS0uMDVjLTkuNjQtOS42NC0yNS4yNy05LjY1LTM0LjkyLS4wMWwtLjAxLjAxYy05LjY1IDkuNjQtOS42NiAyNS4yOC0uMDIgMzQuOTNsLjAyLjAyYzM4LjU4IDM4LjU3IDEwMS4xNCAzOC41NyAxMzkuNzIgMGwxNTcuMi0xNTcuMmM5LjY1LTkuNjUgOS42NS0yNS4yOS4wMS0zNC45M3ptLTI2MS45OSA4Ny4zM2wxNTcuMTgtMTU3LjE4YzkuNjQtOS42NSA5LjY0LTI1LjI5IDAtMzQuOTQtOS42NC05LjY0LTI1LjI3LTkuNjQtMzQuOTEgMEwxMzMuNzIgMjkwLjkzYy0xOS4yOCAxOS4yOS01MC41NiAxOS4zLTY5Ljg1LjAxbC0uMDEtLjAxYy0xOS4yOS0xOS4yOC0xOS4zMS01MC41NC0uMDMtNjkuODRsLjAzLS4wM0wyMTguMDMgNjYuODljLTE5LjI4LTE5LjI5LTUwLjU1LTE5LjMtNjkuODUtLjAybC0uMDIuMDJMMjguOTMgMTg2LjE0Yy0zOC41OCAzOC41OS0zOC41OCAxMDEuMTQgMCAxMzkuNzIgMzguNiAzOC41OSAxMDEuMTMgMzguNTkgMTM5LjczLjAxem0tODcuMzMtNTIuNGM5LjY0IDkuNjQgMjUuMjcgOS42NCAzNC45MSAwbDE1Ny4yMS0xNTcuMTljMTkuMjgtMTkuMjkgNTAuNTUtMTkuMyA2OS44NC0uMDJsLjAyLjAyYzkuNjUgOS42NSAyNS4yOSA5LjY1IDM0LjkzIDAgOS42NS05LjY1IDkuNjUtMjUuMjkgMC0zNC45My0zOC41OS0zOC41OS0xMDEuMTMtMzguNTktMTM5LjcyIDBMODEuMzMgMjM4LjU0Yy05LjY1IDkuNjQtOS42NSAyNS4yOC0uMDEgMzQuOTNoLjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFja0V4Y2hhbmdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3LjcgMzMyLjNoNDEyLjd2MjJjMCAzNy43LTI5LjMgNjgtNjUuMyA2OGgtMTlMMjU5LjMgNTEydi04OS43SDgzYy0zNiAwLTY1LjMtMzAuMy02NS4zLTY4di0yMnptMC0yMy42aDQxMi43di04NUgxNy43djg1em0wLTEwOS40aDQxMi43di04NUgxNy43djg1ek0zNjUgMEg4M0M0NyAwIDE3LjcgMzAuMyAxNy43IDY3LjdWOTBoNDEyLjdWNjcuN0M0MzAuMyAzMC4zIDQwMSAwIDM2NSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFja092ZXJmbG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC43IDMxMUw5NSAyNjkuNyA4Ni44IDMwOWwxOTUuNyA0MXptNTEtODdMMTg4LjIgOTUuN2wtMjUuNSAzMC44IDE1My41IDEyOC4zem0tMzEuMiAzOS43TDEyOS4yIDE3OWwtMTYuNyAzNi41TDI5My43IDMwMHpNMjYyIDMybC0zMiAyNCAxMTkuMyAxNjAuMyAzMi0yNHptMjAuNSAzMjhoLTIwMHYzOS43aDIwMHptMzkuNyA4MEg0Mi43VjMyMGgtNDB2MTYwaDM1OS41VjMyMGgtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YWNrcGF0aCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDQuNiAyMzIuNGMwIDguNS00LjI2IDIwLjQ5LTIxLjM0IDIwLjQ5aC0xOS42MXYtNDEuNDdoMTkuNjFjMTcuMTMgMCAyMS4zNCAxMi4zNiAyMS4zNCAyMC45OHpNNDQ4IDMydjQ0OEgwVjMyek0xNTEuMyAyODcuODRjMC0yMS4yNC0xMi4xMi0zNC41NC00Ni43Mi00NC44NS0yMC41Ny03LjQxLTI2LTEwLjkxLTI2LTE4LjYzczctMTQuNjEgMjAuNDEtMTQuNjFjMTQuMDkgMCAyMC43OSA4LjQ1IDIwLjc5IDE4LjM1aDMwLjdsLjE5LS41N2MuNS0xOS41Ny0xNS4wNi00MS42NS01MS4xMi00MS42NS0yMy4zNyAwLTUyLjU1IDEwLjc1LTUyLjU1IDM4LjI5IDAgMTkuNCA5LjI1IDMxLjI5IDUwLjc0IDQ0LjM3IDE3LjI2IDYuMTUgMjEuOTEgMTAuNCAyMS45MSAxOS40OCAwIDE1LjItMTkuMTMgMTQuMjMtMTkuNDcgMTQuMjMtMjAuNCAwLTI1LjY1LTkuMS0yNS42NS0yMS45aC0zMC44bC0uMTguNTZjLS42OCAzMS4zMiAyOC4zOCA0NS4yMiA1Ni42MyA0NS4yMiAyOS45OCAwIDUxLjEyLTEzLjU1IDUxLjEyLTM4LjI5em0xMjUuMzgtNTUuNjNjMC0yNS4zLTE4LjQzLTQ1LjQ2LTUzLjQyLTQ1LjQ2aC01MS43OHYxMzguMThoMzIuMTd2LTQ3LjM2aDE5LjYxYzMwLjI1IDAgNTMuNDItMTUuOTUgNTMuNDItNDUuMzZ6TTI5Ny45NCAzMjVMMzQ3IDE4Ni43OGgtMzEuMDlMMjY4IDMyNXptMTA2LjUyLTEzOC4yMmgtMzEuMDlMMzI1LjQ2IDMyNWgyOS45NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RheWxpbmtlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODIuNyAyOTIuNWwyLjcgMi43LTE3MC0xNjcuM2MtMy41LTMuNS05LjctMy43LTEzLjgtLjVMMTQ0LjMgMTcxYy00LjIgMy4yLTQuNiA4LjctMS4xIDEyLjJsNjguMSA2NC4zYzMuNiAzLjUgOS45IDMuNyAxNCAuNWwuMS0uMWM0LjEtMy4yIDEwLjQtMyAxNCAuNWw4NCA4MS4zYzMuNiAzLjUgMy4yIDktLjkgMTIuMmwtOTMuMiA3NGMtNC4yIDMuMy0xMC41IDMuMS0xNC4yLS40TDYzLjIgMjY4Yy0zLjUtMy41LTkuNy0zLjctMTMuOS0uNUwzLjUgMzAyLjRjLTQuMiAzLjItNC43IDguNy0xLjIgMTIuMkwyMTEgNTEwLjdzNy40IDYuOCAxNy4zLS44bDE5OC0xNjMuOWM0LTMuMiA0LjQtOC43LjctMTIuMnptNTQuNS04My40TDIyNi43IDIuNWMtMS41LTEuMi04LTUuNS0xNi4zIDEuMUwzLjYgMTY1LjdjLTQuMiAzLjItNC44IDguNy0xLjIgMTIuMmw0Mi4zIDQxLjcgMTcxLjcgMTY1LjFjMy43IDMuNSAxMC4xIDMuNyAxNC4zLjRsNTAuMi0zOC44LS4zLS4zIDcuNy02YzQuMi0zLjIgNC42LTguNy45LTEyLjJsLTU3LjEtNTQuNGMtMy42LTMuNS0xMC0zLjctMTQuMi0uNWwtLjEuMWMtNC4yIDMuMi0xMC41IDMuMS0xNC4yLS40TDEwOSAxODAuOGMtMy42LTMuNS0zLjEtOC45IDEuMS0xMi4ybDkyLjItNzEuNWM0LjEtMy4yIDEwLjMtMyAxMy45LjVsMTYwLjQgMTU5YzMuNyAzLjUgMTAgMy43IDE0LjEuNWw0NS44LTM1LjhjNC4xLTMuMiA0LjQtOC43LjctMTIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlYW1TcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg1LjIgMzU2LjVjNy43LTE4LjUtMS0zOS43LTE5LjYtNDcuNGwtMjkuNS0xMi4yYzExLjQtNC4zIDI0LjMtNC41IDM2LjQuNSAxMi4yIDUuMSAyMS42IDE0LjYgMjYuNyAyNi43IDUgMTIuMiA1IDI1LjYtLjEgMzcuNy0xMC41IDI1LjEtMzkuNCAzNy02NC42IDI2LjUtMTEuNi00LjgtMjAuNC0xMy42LTI1LjQtMjQuMmwyOC41IDExLjhjMTguNiA3LjggMzkuOS0uOSA0Ny42LTE5LjR6TTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjE2MC43bDExNi42IDQ4LjFjMTItOC4yIDI2LjItMTIuMSA0MC43LTExLjNsNTUuNC04MC4ydi0xLjFjMC00OC4yIDM5LjMtODcuNSA4Ny42LTg3LjVzODcuNiAzOS4zIDg3LjYgODcuNWMwIDQ5LjItNDAuOSA4OC43LTg5LjYgODcuNWwtNzkgNTYuM2MxLjYgMzguNS0yOS4xIDY4LjgtNjUuNyA2OC44LTMxLjggMC01OC41LTIyLjctNjQuNS01Mi43TDAgMzE5LjJWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTk5LjcgMjIyLjVjLTMyLjIgMC01OC40LTI2LjEtNTguNC01OC4zczI2LjItNTguMyA1OC40LTU4LjMgNTguNCAyNi4yIDU4LjQgNTguMy0yNi4yIDU4LjMtNTguNCA1OC4zem0uMS0xNC42YzI0LjIgMCA0My45LTE5LjYgNDMuOS00My44IDAtMjQuMi0xOS42LTQzLjgtNDMuOS00My44LTI0LjIgMC00My45IDE5LjYtNDMuOSA0My44IDAgMjQuMiAxOS43IDQzLjggNDMuOSA0My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGVhbVN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTUuNSAxNzcuNWMwIDMzLjgtMjcuNSA2MS02MSA2MS0zMy44IDAtNjEtMjcuMy02MS02MXMyNy4zLTYxIDYxLTYxYzMzLjUgMCA2MSAyNy4yIDYxIDYxem01Mi41LjJjMCA2My01MSAxMTMuOC0xMTMuNyAxMTMuOEwyMjUgMzcxLjNjLTQgNDMtNDAuNSA3Ni44LTg0LjUgNzYuOC00MC41IDAtNzQuNy0yOC44LTgzLTY3TDAgMzU4VjI1MC43TDk3LjIgMjkwYzE1LjEtOS4yIDMyLjItMTMuMyA1Mi0xMS41bDcxLTEwMS43Yy41LTYyLjMgNTEuNS0xMTIuOCAxMTQtMTEyLjhDMzk3IDY0IDQ0OCAxMTUgNDQ4IDE3Ny43ek0yMDMgMzYzYzAtMzQuNy0yNy44LTYyLjUtNjIuNS02Mi41LTQuNSAwLTkgLjUtMTMuNSAxLjVsMjYgMTAuNWMyNS41IDEwLjIgMzggMzkgMjcuNyA2NC41LTEwLjIgMjUuNS0zOS4yIDM4LTY0LjcgMjcuNS0xMC4yLTQtMjAuNS04LjMtMzAuNy0xMi4yIDEwLjUgMTkuNyAzMS4yIDMzLjIgNTUuMiAzMy4yIDM0LjcgMCA2Mi41LTI3LjggNjIuNS02Mi41em0yMDcuNS0xODUuM2MwLTQyLTM0LjMtNzYuMi03Ni4yLTc2LjItNDIuMyAwLTc2LjUgMzQuMi03Ni41IDc2LjIgMCA0Mi4yIDM0LjMgNzYuMiA3Ni41IDc2LjIgNDEuOS4xIDc2LjItMzMuOSA3Ni4yLTc2LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0ZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAyNTZjMCAxMzctMTExLjIgMjQ4LTI0OC40IDI0OC0xMTMuOCAwLTIwOS42LTc2LjMtMjM5LTE4MC40bDk1LjIgMzkuM2M2LjQgMzIuMSAzNC45IDU2LjQgNjguOSA1Ni40IDM5LjIgMCA3MS45LTMyLjQgNzAuMi03My41bDg0LjUtNjAuMmM1Mi4xIDEuMyA5NS44LTQwLjkgOTUuOC05My41IDAtNTEuNi00Mi05My41LTkzLjctOTMuNXMtOTMuNyA0Mi05My43IDkzLjV2MS4yTDE3Ni42IDI3OWMtMTUuNS0uOS0zMC43IDMuNC00My41IDEyLjFMMCAyMzYuMUMxMC4yIDEwOC40IDExNy4xIDggMjQ3LjYgOCAzODQuOCA4IDQ5NiAxMTkgNDk2IDI1NnpNMTU1LjcgMzg0LjNsLTMwLjUtMTIuNmE1Mi43OSA1Mi43OSAwIDAgMCAyNy4yIDI1LjhjMjYuOSAxMS4yIDU3LjgtMS42IDY5LTI4LjQgNS40LTEzIDUuNS0yNy4zLjEtNDAuMy01LjQtMTMtMTUuNS0yMy4yLTI4LjUtMjguNi0xMi45LTUuNC0yNi43LTUuMi0zOC45LS42bDMxLjUgMTNjMTkuOCA4LjIgMjkuMiAzMC45IDIwLjkgNTAuNy04LjMgMTkuOS0zMSAyOS4yLTUwLjggMjF6bTE3My44LTEyOS45Yy0zNC40IDAtNjIuNC0yOC02Mi40LTYyLjNzMjgtNjIuMyA2Mi40LTYyLjMgNjIuNCAyOCA2Mi40IDYyLjMtMjcuOSA2Mi4zLTYyLjQgNjIuM3ptLjEtMTUuNmMyNS45IDAgNDYuOS0yMSA0Ni45LTQ2LjggMC0yNS45LTIxLTQ2LjgtNDYuOS00Ni44cy00Ni45IDIxLTQ2LjkgNDYuOGMuMSAyNS44IDIxLjEgNDYuOCA0Ni45IDQ2Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0aWNrZXJNdWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MS43IDE5OS42Yy0xLjMuMy4zIDAgMCAwem0tNi4yLTc3LjRjLTcuNy0yMi4zLTUuMS03LjItMTMuNC0zNi45LTEuNi02LjUtMy42LTE0LjUtNi4yLTIwLTQuNC04LjctNC42LTcuNS00LjYtOS41IDAtNS4zIDMwLjctNDUuMyAxOS00Ni45LTUuNy0uNi0xMi4yIDExLjYtMjAuNiAxNy04LjYgNC4yLTggNS0xMC4zIDUtMi42IDAtNS43LTMtNi4yLTUtMi01LjcgMS45LTI1LjktMy42LTI1LjktMy42IDAtMTIuMyAyNC44LTE3IDI1LjgtNS4yIDEuMy0yNy45LTExLjQtNzUuMSAxOC0yNS4zIDEzLjItODYuOSA2NS4yLTg3IDY1LjMtNi43IDQuNy0yMCA0LjctMzUuNSAxNi00NC40IDMwLjEtMTA5LjYgOS40LTExMC43IDktMTEwLjYtMjYuOC0xMjgtMTUuMi0xNTkgMTEuNS0yMC44IDE3LjktMjMuNyAzNi41LTI0LjIgMzguOS00LjIgMjAuNCA1LjIgNDguMyA2LjcgNjQuMyAxLjggMTkuMy0yLjcgMTcuNyA3LjcgOTguMy41IDEgNC4xIDAgNS4xIDEuNSAwIDguNC0zLjggMTIuMS00LjEgMTMtMS41IDQuNS0xLjUgMTAuNSAwIDE2IDIuMyA4LjIgOC4yIDM3LjIgOC4yIDQ2LjkgMCA0MS44LjQgNDQgMi42IDQ5LjQgMy45IDEwIDEyLjUgOS4xIDE3IDEyIDMuMSAzLjUtLjUgOC41IDEgMTIuNS41IDIgMy42IDQgNi4yIDUgOS4yIDMuNiAyNyAuMyAyOS45LTIuNSAxLjYtMS41LjUtNC41IDMuMS01IDUuMSAwIDEwLjgtLjUgMTQuNC0yLjUgNS4xLTIuNSA0LjEtNiAxLjUtMTAuNS0uNC0uOC03LTEzLjMtOS44LTE2LTIuMS0yLTUuMS0zLTcuMi00LjUtNS44LTQuOS0xMC4zLTE5LjQtMTAuMy0xOS41LTQuNi0xOS40LTEwLjMtNDYuMy00LjEtNjYuOCA0LjYtMTcuMiAzOS41LTg3LjcgMzkuNi04Ny44IDQuMS02LjUgMTctMTEuNSAyNy4zLTcgNiAxLjkgMTkuMyAyMiA2NS40IDMwLjkgNDcuOSA4LjcgOTcuNC0yIDExMi4yLTIgMi44IDItMS45IDEzLS41IDM4LjkgMCAyNi40LS40IDEzLjctNC4xIDI5LjktMi4yIDkuNyAzLjQgMjMuMi0xLjUgNDYuOS0xLjQgOS44LTkuOSAzMi43LTguMiA0My40LjUgMSAxIDIgMS41IDMuNS41IDQuNSAxLjUgOC41IDQuNiAxMCA3LjMgMy42IDEyLTMuNSA5LjggMTEuNS0uNyAzLjEtMi42IDEyIDEuNSAxNSA0LjQgMy43IDMwLjYgMy40IDM2LjUuNSAyLjYtMS41IDEuNi00LjUgNi40LTcuNCAxLjktLjkgMTEuMy0uNCAxMS4zLTYuNS4zLTEuOC05LjItMTkuOS05LjMtMjAtMi42LTMuNS05LjItNC41LTExLjMtOC02LjktMTAuMS0xLjctNTIuNi41LTU5LjQgMy0xMSA1LjYtMjIuNCA4LjctMzIuNCAxMS00Mi41IDEwLjMtNTAuNiAxNi41LTY4LjMuOC0xLjggNi40LTIzLjEgMTAuMy0yOS45IDkuMy0xNyAyMS43LTMyLjQgMzMuNS00Ny40IDE4LTIyLjkgMzQtNDYuOSA1Mi02OS44IDYuMS03IDguMi0xMy43IDE4LTggMTAuOCA1LjcgMjEuNiA3IDMxLjkgMTcgMTQuNiAxMi44IDEwLjIgMTguMiAxMS44IDIyLjkgMS41IDUgNy43IDEwLjUgMTQuOSA5LjUgMTAuNC0yIDEzLTIuNSAxMy40LTIuNSAyLjYtLjUgNS43LTUgNy4yLTggMy4xLTUuNSA3LjItOSA3LjItMTYuNSAwLTcuNy0uNC0yLjgtMjAuNi01Mi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJhdmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU4LjQgMEw3IDI5Mmg4OS4ybDYyLjItMTE2LjFMMjIwLjEgMjkyaDg4LjV6bTE1MC4yIDI5MmwtNDMuOSA4OC4yLTQ0LjYtODguMmgtNjcuNmwxMTIuMiAyMjAgMTExLjUtMjIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJpcGVTIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1NS4zIDE1NC42YzAtMjIuMyAxOC42LTMwLjkgNDguNC0zMC45IDQzLjQgMCA5OC41IDEzLjMgMTQxLjkgMzYuN1YyNi4xQzI5OC4zIDcuMiAyNTEuMSAwIDIwMy44IDAgODguMSAwIDExIDYwLjQgMTEgMTYxLjRjMCAxNTcuOSAyMTYuOCAxMzIuMyAyMTYuOCAyMDAuNCAwIDI2LjQtMjIuOSAzNC45LTU0LjcgMzQuOS00Ny4yIDAtMTA4LjItMTkuNS0xNTYuMS00NS41djEyOC41YTM5Ni4wOSAzOTYuMDkgMCAwIDAgMTU2IDMyLjRjMTE4LjYgMCAyMDAuMy01MSAyMDAuMy0xNTMuNiAwLTE3MC4yLTIxOC0xMzkuNy0yMTgtMjAzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0cmlwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjUgMTQ0LjdsLTQzLjMgOS4yLS4yIDE0Mi40YzAgMjYuMyAxOS44IDQzLjMgNDYuMSA0My4zIDE0LjYgMCAyNS4zLTIuNyAzMS4yLTUuOXYtMzMuOGMtNS43IDIuMy0zMy43IDEwLjUtMzMuNy0xNS43VjIyMWgzMy43di0zNy44aC0zMy43em04OS4xIDUxLjZsLTIuNy0xMy4xSDIxM3YxNTMuMmg0NC4zVjIzMy4zYzEwLjUtMTMuOCAyOC4yLTExLjEgMzMuOS05LjN2LTQwLjhjLTYtMi4xLTI2LjctNi0zNy4xIDEzLjF6bTkyLjMtNzIuM2wtNDQuNiA5LjV2MzYuMmw0NC42LTkuNXpNNDQuOSAyMjguM2MwLTYuOSA1LjgtOS42IDE1LjEtOS43IDEzLjUgMCAzMC43IDQuMSA0NC4yIDExLjR2LTQxLjhjLTE0LjctNS44LTI5LjQtOC4xLTQ0LjEtOC4xLTM2IDAtNjAgMTguOC02MCA1MC4yIDAgNDkuMiA2Ny41IDQxLjIgNjcuNSA2Mi40IDAgOC4yLTcuMSAxMC45LTE3IDEwLjktMTQuNyAwLTMzLjctNi4xLTQ4LjYtMTQuMnY0MGMxNi41IDcuMSAzMy4yIDEwLjEgNDguNSAxMC4xIDM2LjkgMCA2Mi4zLTE1LjggNjIuMy00Ny44IDAtNTIuOS02Ny45LTQzLjQtNjcuOS02My40ek02NDAgMjYxLjZjMC00NS41LTIyLTgxLjQtNjQuMi04MS40cy02Ny45IDM1LjktNjcuOSA4MS4xYzAgNTMuNSAzMC4zIDc4LjIgNzMuNSA3OC4yIDIxLjIgMCAzNy4xLTQuOCA0OS4yLTExLjV2LTMzLjRjLTEyLjEgNi4xLTI2IDkuOC00My42IDkuOC0xNy4zIDAtMzIuNS02LjEtMzQuNS0yNi45aDg2LjljLjItMi4zLjYtMTEuNi42LTE1Ljl6bS04Ny45LTE2LjhjMC0yMCAxMi4zLTI4LjQgMjMuNC0yOC40IDEwLjkgMCAyMi41IDguNCAyMi41IDI4LjR6bS0xMTIuOS02NC42Yy0xNy40IDAtMjguNiA4LjItMzQuOCAxMy45bC0yLjMtMTFIMzYzdjIwNC44bDQ0LjQtOS40LjEtNTAuMmM2LjQgNC43IDE1LjkgMTEuMiAzMS40IDExLjIgMzEuOCAwIDYwLjgtMjMuMiA2MC44LTc5LjYuMS01MS42LTI5LjMtNzkuNy02MC41LTc5Ljd6bS0xMC42IDEyMi41Yy0xMC40IDAtMTYuNi0zLjgtMjAuOS04LjRsLS4zLTY2YzQuNi01LjEgMTEtOC44IDIxLjItOC44IDE2LjIgMCAyNy40IDE4LjIgMjcuNCA0MS40LjEgMjMuOS0xMC45IDQxLjgtMjcuNCA0MS44em0tMTI2LjcgMzMuN2g0NC42VjE4My4yaC00NC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHVkaW92aW5hcmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwLjMgMTg3LjdsNC4yIDI4djI4bC0yNS4xIDQ0LjEtMzkuOCA3OC40LTU2LjEgNjcuNS03OS4xIDM3LjgtMTcuNyAyNC41LTcuNyAxMi05LjYgNHMxNy4zLTYzLjYgMTkuNC02My42YzIuMSAwIDIwLjMuNyAyMC4zLjdsNjYuNy0zOC42LTkyLjUgMjYuMS01NS45IDM2LjgtMjIuOCAyOC02LjYgMS40IDIwLjgtNzMuNiA2LjktNS41IDIwLjcgMTIuOSA4OC4zLTQ1LjIgNTYuOC01MS41IDE0LjgtNjguNC0xMjUuNCAyMy4zIDE1LjItMTguMi0xNzMuNC01My4zIDgxLjktMTAuNS0xNjYtMTIyLjlMMTMzLjUgMTA4IDMyLjIgMGwyNTIuOSAxMjYuNi0zMS41LTM4TDM3OCAxNjMgMjM0LjcgNjRsMTguNyAzOC40LTQ5LjYtMTguMUwxNTguMyAwbDE5NC42IDEyMkwzMTAgNjYuMmwxMDggOTYuNCAxMi04LjktMjEtMTYuNCA0LjItMzcuOEw0NTEgODkuMWwyOS4yIDI0LjcgMTEuNSA0LjItNyA2LjIgOC41IDEyLTEzLjEgNy40LTEwLjMgMjAuMiAxMC41IDIzLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0dW1ibGV1cG9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgMTc3LjVjLTkuOCAwLTE3LjggOC0xNy44IDE3Ljh2MTA2LjljMCA0MC45LTMzLjkgNzMuOS03NC45IDczLjktNDEuNCAwLTc0LjktMzMuNS03NC45LTc0Ljl2LTQ2LjVoNTcuM3Y0NS44YzAgMTAgOCAxNy44IDE3LjggMTcuOHMxNy44LTcuOSAxNy44LTE3LjhWMjAwLjFjMC00MCAzNC4yLTcyLjEgNzQuNy03Mi4xIDQwLjcgMCA3NC43IDMyLjMgNzQuNyA3Mi42djIzLjdsLTM0LjEgMTAuMS0yMi45LTEwLjd2LTIwLjZjLjEtOS42LTcuOS0xNy42LTE3LjctMTcuNnptMTY3LjYgMTIzLjZjMCA0MS40LTMzLjUgNzQuOS03NC45IDc0LjktNDEuMiAwLTc0LjktMzMuMi03NC45LTc0LjJWMjYzbDIyLjkgMTAuNyAzNC4xLTEwLjF2NDcuMWMwIDkuOCA4IDE3LjYgMTcuOCAxNy42czE3LjgtNy45IDE3LjgtMTcuNnYtNDhoNTcuM2MtLjEgNDUuOS0uMSA0Ni40LS4xIDQ2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0dW1ibGV1cG9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi45IDI2NnY2OS43YzAgNjIuMS01MC4zIDExMi40LTExMi40IDExMi40LTYxLjggMC0xMTIuNC00OS44LTExMi40LTExMS4zdi03MC4ybDM0LjMgMTYgNTEuMS0xNS4yVjMzOGMwIDE0LjcgMTIgMjYuNSAyNi43IDI2LjVTNDE3IDM1Mi43IDQxNyAzMzh2LTcyaDg1Ljl6bS0yMjQuNy01OC4ybDM0LjMgMTYgNTEuMS0xNS4yVjE3M2MwLTYwLjUtNTEuMS0xMDktMTEyLjEtMTA5LTYwLjggMC0xMTIuMSA0OC4yLTExMi4xIDEwOC4ydjE2Mi40YzAgMTQuOS0xMiAyNi43LTI2LjcgMjYuN1M4NiAzNDkuNSA4NiAzMzQuNlYyNjZIMHY2OS43QzAgMzk3LjcgNTAuMyA0NDggMTEyLjQgNDQ4YzYxLjYgMCAxMTIuNC00OS41IDExMi40LTExMC44VjE3Ni45YzAtMTQuNyAxMi0yNi43IDI2LjctMjYuN3MyNi43IDEyIDI2LjcgMjYuN3YzMC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdXBlcnBvd2VycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzJjLTgzLjMgMTEtMTY2LjggMjItMjUwIDMzLTkyIDEyLjUtMTYzLjMgODYuNy0xNjkgMTgwLTMuMyA1NS41IDE4IDEwOS41IDU3LjggMTQ4LjJMMCA0ODBjODMuMy0xMSAxNjYuNS0yMiAyNDkuOC0zMyA5MS44LTEyLjUgMTYzLjMtODYuOCAxNjguNy0xNzkuOCAzLjUtNTUuNS0xOC0xMDkuNS01Ny43LTE0OC4yTDQ0OCAzMnptLTc5LjcgMjMyLjNjLTQuMiA3OS41LTc0IDEzOS4yLTE1Mi44IDEzNC41LTc5LjUtNC43LTE0MC43LTcxLTEzNi4zLTE1MSA0LjUtNzkuMiA3NC4zLTEzOS4zIDE1My0xMzQuNSA3OS4zIDQuNyAxNDAuNSA3MSAxMzYuMSAxNTF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cHBsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMjYyLjVjMCA2NC4xLTEwOSAxMTYuMS0yNDMuNSAxMTYuMS0yNC44IDAtNDguNi0xLjgtNzEuMS01IDcuNy40IDE1LjUuNiAyMy40LjYgMTM0LjUgMCAyNDMuNS01Ni45IDI0My41LTEyNy4xIDAtMjkuNC0xOS4xLTU2LjQtNTEuMi03OCA2MCAyMS4xIDk4LjkgNTUuMSA5OC45IDkzLjR6TTQ3LjcgMjI3LjljLS4xLTcwLjIgMTA4LjgtMTI3LjMgMjQzLjMtMTI3LjYgNy45IDAgMTUuNi4yIDIzLjMuNS0yMi41LTMuMi00Ni4zLTQuOS03MS00LjlDMTA4LjggOTYuMy0uMSAxNDguNSAwIDIxMi42Yy4xIDM4LjMgMzkuMSA3Mi4zIDk5LjMgOTMuMy0zMi4zLTIxLjUtNTEuNS00OC42LTUxLjYtNzh6bTYwLjIgMzkuOXMxMC41IDEzLjIgMjkuMyAxMy4yYzE3LjkgMCAyOC40LTExLjUgMjguNC0yNS4xIDAtMjgtNDAuMi0yNS4xLTQwLjItMzkuNyAwLTUuNCA1LjMtOS4xIDEyLjUtOS4xIDUuNyAwIDExLjMgMi42IDExLjMgNi42djMuOWgxNC4ydi03LjljMC0xMi4xLTE1LjQtMTYuOC0yNS40LTE2LjgtMTYuNSAwLTI4LjUgMTAuMi0yOC41IDI0LjEgMCAyNi42IDQwLjIgMjUuNCA0MC4yIDM5LjkgMCA2LjYtNS44IDEwLjEtMTIuMyAxMC4xLTExLjkgMC0yMC43LTEwLjEtMjAuNy0xMC4xbC04LjggMTAuOXptMTIwLjgtNzMuNnY1NC40YzAgMTEuMy03LjEgMTcuOC0xNy44IDE3LjgtMTAuNyAwLTE3LjgtNi41LTE3LjgtMTcuN3YtNTQuNWgtMTUuOHY1NWMwIDE4LjkgMTMuNCAzMS45IDMzLjcgMzEuOSAyMC4xIDAgMzMuNC0xMyAzMy40LTMxLjl2LTU1aC0xNS43em0zNC40IDg1LjRoMTUuOHYtMjkuNWgxNS41YzE2IDAgMjcuMi0xMS41IDI3LjItMjguMXMtMTEuMi0yNy44LTI3LjItMjcuOGgtMzkuMXYxMy40aDcuOHY3MnptMTUuOC00M3YtMjkuMWgxMi45YzguNyAwIDEzLjcgNS43IDEzLjcgMTQuNCAwIDguOS01LjEgMTQuNy0xNCAxNC43aC0xMi42em01NyA0M2gxNS44di0yOS41aDE1LjVjMTYgMCAyNy4yLTExLjUgMjcuMi0yOC4xcy0xMS4yLTI3LjgtMjcuMi0yNy44aC0zOS4xdjEzLjRoNy44djcyem0xNS43LTQzdi0yOS4xaDEyLjljOC43IDAgMTMuNyA1LjcgMTMuNyAxNC40IDAgOC45LTUgMTQuNy0xNCAxNC43aC0xMi42em01Ny4xIDM0LjhjMCA1LjggMi40IDguMiA4LjIgOC4yaDM3LjZjNS44IDAgOC4yLTIuNCA4LjItOC4ydi0xM2gtMTQuM3Y1LjJjMCAxLjctMSAyLjYtMi42IDIuNmgtMTguNmMtMS43IDAtMi42LTEtMi42LTIuNnYtNjEuMmMwLTUuNy0yLjQtOC4yLTguMi04LjJINDAxdjEzLjRoNS4yYzEuNyAwIDIuNiAxIDIuNiAyLjZ2NjEuMnptNjMuNCAwYzAgNS44IDIuNCA4LjIgOC4yIDguMkg1MTljNS43IDAgOC4yLTIuNCA4LjItOC4ydi0xM2gtMTQuM3Y1LjJjMCAxLjctMSAyLjYtMi42IDIuNmgtMTkuN2MtMS43IDAtMi42LTEtMi42LTIuNnYtMjAuM2gyNy43di0xMy40SDQ4OHYtMjIuNGgxOS4yYzEuNyAwIDIuNiAxIDIuNiAyLjZ2NS4ySDUyNHYtMTNjMC01LjctMi41LTguMi04LjItOC4yaC01MS42djEzLjRoNy44djYzLjl6bTU4LjktNzZ2NS45aDEuNnYtNS45aDIuN3YtMS4yaC03djEuMmgyLjd6bTUuNy0xLjJ2Ny4xaDEuNXYtNS43bDIuMyA1LjdoMS4zbDIuMy01Ljd2NS43aDEuNXYtNy4xaC0yLjNsLTIuMSA1LjEtMi4xLTUuMWgtMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS4wOCAxMDIuNjZzLS4zIDE4LjMtLjMgMjAuM2MtOS4xLTMtNzQuNC0yNC4xLTEzNS43LTI2LjMtNTEuOS0xLjgtMTIyLjgtNC4zLTIyMyA1Ny4zLTE5LjQgMTIuNC03My45IDQ2LjEtOTkuNiAxMDkuN0M3IDI3Ny0uMTIgMzA3IDcgMzM1LjA2YTExMSAxMTEgMCAwIDAgMTYuNSAzNS43YzE3LjQgMjUgNDYuNiA0MS42IDc4LjEgNDQuNCA0NC40IDMuOSA3OC4xLTE2IDkwLTUzLjMgOC4yLTI1LjggMC02My42LTMxLjUtODIuOS0yNS42LTE1LjctNTMuMy0xMi4xLTY5LjItMS42LTEzLjkgOS4yLTIxLjggMjMuNS0yMS42IDM5LjIuMyAyNy44IDI0LjMgNDIuNiA0MS41IDQyLjZhNDkgNDkgMCAwIDAgMTUuOC0yLjdjNi41LTEuOCAxMy4zLTYuNSAxMy4zLTE0LjkgMC0xMi4xLTExLjYtMTQuOC0xNi44LTEzLjktMi45LjUtNC41IDItMTEuOCAyLjQtMi0uMi0xMi0zLjEtMTItMTRWMzE2Yy4yLTEyLjMgMTMuMi0xOCAyNS41LTE2LjkgMzIuMyAyLjggNDcuNyA0MC43IDI4LjUgNjUuNy0xOC4zIDIzLjctNzYuNiAyMy4yLTk5LjctMjAuNC0yNi00OS4yIDEyLjctMTExLjIgODctOTguNCAzMy4yIDUuNyA4My42IDM1LjUgMTAyLjQgMTA0LjNoNDUuOWMtNS43LTE3LjYtOC45LTY4LjMgNDIuNy02OC4zIDU2LjcgMCA2My45IDM5LjkgNzkuOCA2OC4zSDQ2MGMtMTIuOC0xOC4zLTIxLjctMzguNy0xOC45LTU1LjggNS42LTMzLjggMzkuNy0xOC40IDgyLjQtMTcuNCA2Ni41LjQgMTAyLjEtMjcgMTAzLjEtMjggMy43LTMuMSA2LjUtMTUuOCA3LTE3LjcgMS4zLTUuMS0zLjItMi40LTMuMi0yLjQtOC43IDUuMi0zMC41IDE1LjItNTAuOSAxNS42LTI1LjMuNS03Ni4yLTI1LjQtODEuNi0yOC4yLS4zLS40LjEgMS4yLTExLTI1LjUgODguNCA1OC4zIDExOC4zIDQwLjUgMTQ1LjIgMjEuNy44LS42IDQuMy0yLjkgMy42LTUuNy0xMy44LTQ4LjEtMjIuNC02Mi43LTM0LjUtNjkuNi0zNy0yMS42LTEyNS0zNC43LTEyOS4yLTM1LjMuMS0uMS0uOS0uMy0uOS43em02MC40IDcyLjhhMzcuNTQgMzcuNTQgMCAwIDEgMzguOS0zNi4zYzMzLjQgMS4yIDQ4LjggNDIuMyAyNC40IDY1LjItMjQuMiAyMi43LTY0LjQgNC42LTYzLjMtMjguOXptMzguNi0yNS4zYTI2LjI3IDI2LjI3IDAgMSAwIDI1LjQgMjcuMiAyNi4xOSAyNi4xOSAwIDAgMC0yNS40LTI3LjJ6bTQuMyAyOC44Yy0xNS40IDAtMTUuNC0xNS42IDAtMTUuNnMxNS40IDE1LjY0IDAgMTUuNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN3aWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAxNTYuMDljMC00LjUxLS4wOC05LS4yLTEzLjUyYTE5Ni4zMSAxOTYuMzEgMCAwIDAtMi41OC0yOS40MiA5OS42MiA5OS42MiAwIDAgMC05LjIyLTI4QTk0LjA4IDk0LjA4IDAgMCAwIDM5NC44NCA0NGE5OS4xNyA5OS4xNyAwIDAgMC0yOC05LjIyIDE5NSAxOTUgMCAwIDAtMjkuNDMtMi41OWMtNC41MS0uMTItOS0uMTctMTMuNTItLjJIMTI0LjE0Yy00LjUxIDAtOSAuMDgtMTMuNTIuMi0yLjQ1LjA3LTQuOTEuMTUtNy4zNy4yN2ExNzEuNjggMTcxLjY4IDAgMCAwLTIyLjA2IDIuMzIgMTAzLjA2IDEwMy4wNiAwIDAgMC0yMS4yMSA2LjFxLTMuNDYgMS40NS02LjgxIDMuMTJhOTQuNjYgOTQuNjYgMCAwIDAtMTguMzkgMTIuMzJjLTEuODggMS42MS0zLjY5IDMuMjgtNS40MyA1QTkzLjg2IDkzLjg2IDAgMCAwIDEyIDg1LjE3YTk5LjQ1IDk5LjQ1IDAgMCAwLTkuMjIgMjggMTk2LjMxIDE5Ni4zMSAwIDAgMC0yLjU0IDI5LjRjLS4xMyA0LjUxLS4xOCA5LS4yMSAxMy41MnYxOTkuODNjMCA0LjUxLjA4IDkgLjIxIDEzLjUxYTE5Ni4wOCAxOTYuMDggMCAwIDAgMi41OCAyOS40MiA5OS4zIDk5LjMgMCAwIDAgOS4yMiAyOEE5NC4zMSA5NC4zMSAwIDAgMCA1My4xNyA0NjhhOTkuNDcgOTkuNDcgMCAwIDAgMjggOS4yMSAxOTUgMTk1IDAgMCAwIDI5LjQzIDIuNTljNC41LjEyIDkgLjE3IDEzLjUyLjJIMzIzLjkxYzQuNTEgMCA5LS4wOCAxMy41Mi0uMmExOTYuNTkgMTk2LjU5IDAgMCAwIDI5LjQ0LTIuNTkgOTkuNTcgOTkuNTcgMCAwIDAgMjgtOS4yMUE5NC4yMiA5NC4yMiAwIDAgMCA0MzYgNDI2Ljg0YTk5LjMgOTkuMyAwIDAgMCA5LjIyLTI4IDE5NC43OSAxOTQuNzkgMCAwIDAgMi41OS0yOS40MmMuMTItNC41LjE3LTkgLjItMTMuNTFWMTcyLjE0Yy0uMDEtNS4zNS0uMDEtMTAuNy0uMDEtMTYuMDV6bS02OS44OCAyNDFjLTIwLTM4LjkzLTU3LjIzLTI5LjI3LTc2LjMxLTE5LjQ3LTEuNzIgMS0zLjQ4IDItNS4yNSAzbC0uNDIuMjVjLTM5LjUgMjEtOTIuNTMgMjIuNTQtMTQ1Ljg1LS4zOEEyMzQuNjQgMjM0LjY0IDAgMCAxIDQ1IDI5MC4xMmEyMzAuNjMgMjMwLjYzIDAgMCAwIDM5LjE3IDIzLjM3YzU2LjM2IDI2LjQgMTEzIDI0LjQ5IDE1MyAwLTU3LTQzLjg1LTEwNC42LTEwMS0xNDEuMDktMTQ3LjIyYTE5Ny4wOSAxOTcuMDkgMCAwIDEtMTguNzgtMjUuOWM0My43IDQwIDExMi43IDkwLjIyIDEzNy40OCAxMDQuMTItNTIuNTctNTUuNDktOTguODktMTIzLjk0LTk2LjcyLTEyMS43NCA4Mi43OSA4My40MiAxNTkuMTggMTMwLjU5IDE1OS4xOCAxMzAuNTkgMi44OCAxLjU4IDUgMi44NSA2LjczIDRhMTI3LjQ0IDEyNy40NCAwIDAgMCA0LjE2LTEyLjQ3YzEzLjIyLTQ4LjMzLTEuNjYtMTAzLjU4LTM1LjMxLTE0OS4yQzMyOS42MSAxNDEuNzUgMzc1IDIyOS4zNCAzNTYuNCAzMDMuNDJjLS40NCAxLjczLS45NSAzLjQtMS40NCA1LjA5IDM4LjUyIDQ3LjQgMjguMDQgOTguMTcgMjMuMTMgODguNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5bWZvbnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTMzLjc0IDE0My41NGMtMTEuNDcuNDEtMTkuNC02LjQ1LTE5Ljc3LTE2Ljg3LS4yNy05LjE4IDYuNjgtMTMuNDQgNi41My0xOC44NS0uMjMtNi41NS0xMC4xNi02LjgyLTEyLjg3LTYuNjctMzkuNzggMS4yOS00OC41OSA1Ny01OC44OSAxMTMuODUgMjEuNDMgMy4xNSAzNi42NS0uNzIgNDUuMTQtNi4yMiAxMi03Ljc1LTMuMzQtMTUuNzItMS40Mi0yNC41NiA0LTE4LjE2IDMyLjU1LTE5IDMyIDUuMy0uMzYgMTcuODYtMjUuOTIgNDEuODEtNzcuNiAzNS43LTEwLjc2IDU5LjUyLTE4LjM1IDExNS01OC4yIDE2MS43Mi0yOSAzNC40Ni01OC40IDM5LjgyLTcxLjU4IDQwLjI2LTI0LjY1Ljg1LTQxLTEyLjMxLTQxLjU4LTI5Ljg0LS41Ni0xNyAxNC40NS0yNi4yNiAyNC4zMS0yNi41OSAyMS44OS0uNzUgMzAuMTIgMjUuNjcgMTQuODggMzQtMTIuMDkgOS43MS4xMSAxMi42MSAyLjA1IDEyLjU1IDEwLjQyLS4zNiAxNy4zNC01LjUxIDIyLjE4LTkgMjQtMjAgMzMuMjQtNTQuODYgNDUuMzUtMTE4LjM1IDguMTktNDkuNjYgMTctNzggMTguMjMtODItMTYuOTMtMTIuNzUtMjcuMDgtMjguNTUtNDkuODUtMzQuNzItMTUuNjEtNC4yMy0yNS4xMi0uNjMtMzEuODEgNy44My03LjkyIDEwLTUuMjkgMjMgMi4zNyAzMC43bDEyLjYzIDE0YzE1LjUxIDE3LjkzIDI0IDMxLjg3IDIwLjggNTAuNjItNS4wNiAyOS45My00MC43MiA1Mi45LTgyLjg4IDM5Ljk0LTM2LTExLjExLTQyLjctMzYuNTYtMzguMzgtNTAuNjIgNy41MS0yNC4xNSA0Mi4zNi0xMS43MiAzNC42MiAxMy42LTIuNzkgOC42LTQuOTIgOC42OC02LjI4IDEzLjA3LTQuNTYgMTQuNzcgNDEuODUgMjguNCA1MS0xLjM5IDQuNDctMTQuNTItNS4zLTIxLjcxLTIyLjI1LTM5Ljg1LTI4LjQ3LTMxLjc1LTE2LTY1LjQ5IDIuOTUtNzkuNjdDMjA0LjIzIDE0MC4xMyAyNTEuOTQgMTk3IDI2MiAyMDUuMjljMzcuMTctMTA5IDEwMC41My0xMDUuNDYgMTAyLjQzLTEwNS41MyAyNS4xNi0uODEgNDQuMTkgMTAuNTkgNDQuODMgMjguNjUuMjUgNy42OS00LjE3IDIyLjU5LTE5LjUyIDIzLjEzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWFtc3BlYWsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ0LjIgMzQ2Ljc5YzIuNC0xMi4zLTEyLTMwLTMyLjQtNDguNy0yMC45LTE5LjItNDguMi0zOS4xLTYzLjQtNDYuNi0yMS43LTEyLTQxLjctMS44LTQ2LjMgMjIuNy01IDI2LjIgMCA1MS40IDE0LjUgNzMuOSAxMC4yIDE1LjUgMjUuNCAyMi43IDQzLjQgMjQgMTEuNi42IDUyLjUgMi4yIDYxLjctMSAxMS45LTQuMyAyMC4xLTExLjggMjIuNS0yNC4zem0yMDUgMjAuOGE1LjIyIDUuMjIgMCAwIDAtOC4zIDIuNGMtOCAyNS40LTQ0LjcgMTEyLjUtMTcyLjEgMTIxLjUtMTQ5LjcgMTAuNSA4MC4zIDQzLjYgMTQ1LjQtNi40IDIyLjctMTcuNCA0Ny42LTM1IDQ2LjYtODUuNC0uNC0xMC4xLTQuOS0yNi42OS0xMS42LTMyLjF6bTYyLTEyMi40Yy0uMy0xOC45LTguNi0zMy40LTI2LTQyLjItMi45LTEuMy01LTIuNy01LjktNi40QTIyMi42NCAyMjIuNjQgMCAwIDAgNDM4LjkgMTAzYy0xLjEtMS41LTMuNS0zLjItMi4yLTUgOC41LTExLjUtLjMtMTgtNy0yNC40UTMyMS40LTMxLjExIDE3Ny40IDEzLjA5Yy00MC4xIDEyLjMtNzMuOSAzNS42LTEwMiA2Ny40LTQgNC4zLTYuNyA5LjEtMyAxNC41IDMgNCAxLjMgNi4yLTEgOS4zQzUxLjYgMTMyIDM4LjIgMTYyLjU5IDMyLjEgMTk2Yy0uNyA0LjMtMi45IDYtNi40IDcuOC0xNC4yIDctMjIuNSAxOC41LTI0LjkgMzRMMCAyNjQuMjl2MjAuOWMwIDMwLjggMjEgNTAuNCA1MS44IDQ5IDcuNy0uMyAxMS43LTQuMyAxMi0xMS41IDItNzcuNS0yLjQtOTUuNCAzLjctMTI1LjhDOTIuMSA3Mi4zOSAyMzQuMyA1IDM0NS4zIDY1LjM5IDQxMS40IDEwMiA0NDUuNyAxNTkgNDQ3LjYgMjM0Ljc5Yy44IDI4LjIgMCA1Ni41IDAgODQuNiAwIDcgMi4yIDEyLjUgOS40IDE0LjIgMjQuMSA1IDQ5LjItMTIgNTMuMi0zNi43IDIuOS0xNy4xIDEtMzQuNSAxLTUxLjd6bS0xNTkuNiAxMzEuNWMzNi41IDIuOCA1OS4zLTI4LjUgNTguNC02MC41LTIuMS00NS4yLTY2LjItMTYuNS04Ny44LTgtNzMuMiAyOC4xLTQ1IDU0LjktMjIuMiA2MC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZWxlZ3JhbVBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni43IDk4LjZsLTY3LjYgMzE4LjhjLTUuMSAyMi41LTE4LjQgMjguMS0zNy4zIDE3LjVsLTEwMy03NS45LTQ5LjcgNDcuOGMtNS41IDUuNS0xMC4xIDEwLjEtMjAuNyAxMC4xbDcuNC0xMDQuOSAxOTAuOS0xNzIuNWM4LjMtNy40LTEuOC0xMS41LTEyLjktNC4xTDExNy44IDI4NCAxNi4yIDI1Mi4yYy0yMi4xLTYuOS0yMi41LTIyLjEgNC42LTMyLjdMNDE4LjIgNjYuNGMxOC40LTYuOSAzNC41IDQuMSAyOC41IDMyLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbGVncmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTEyMS44IDE2OS45bC00MC43IDE5MS44Yy0zIDEzLjYtMTEuMSAxNi45LTIyLjQgMTAuNWwtNjItNDUuNy0yOS45IDI4LjhjLTMuMyAzLjMtNi4xIDYuMS0xMi41IDYuMWw0LjQtNjMuMSAxMTQuOS0xMDMuOGM1LTQuNC0xLjEtNi45LTcuNy0yLjVsLTE0MiA4OS40LTYxLjItMTkuMWMtMTMuMy00LjItMTMuNi0xMy4zIDIuOC0xOS43bDIzOS4xLTkyLjJjMTEuMS00IDIwLjggMi43IDE3LjIgMTkuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVuY2VudFdlaWJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcyLjMgNDk1LjhjMS40IDE5LjktMjcuNiAyMi4yLTI5LjcgMi45QzMxIDM2OC44IDczLjcgMjU5LjIgMTQ0IDE4NS41Yy0xNS42LTM0IDkuMi03Ny4xIDUwLjYtNzcuMSAzMC4zIDAgNTUuMSAyNC42IDU1LjEgNTUuMSAwIDQ0LTQ5LjUgNzAuOC04Ni45IDQ1LjEtNjUuNyA3MS4zLTEwMS40IDE2OS44LTkwLjUgMjg3LjJ6TTE5MiAuMUM2Ni4xLjEtMTIuMyAxMzQuMyA0My43IDI0Mi40IDUyLjQgMjU5LjggNzkgMjQ2LjkgNzAgMjI5IDIzLjcgMTM2LjQgOTEgMjkuOCAxOTIgMjkuOGM3NS40IDAgMTM2LjkgNjEuNCAxMzYuOSAxMzYuOSAwIDkwLjgtODYuOSAxNTMuOS0xNjcuNyAxMzMuMS0xOS4xLTQuMS0yNS42IDI0LjQtNi42IDI5LjEgMTEwLjcgMjMuMiAyMDQtNjAgMjA0LTE2Mi4zQzM1OC42IDc0LjcgMjg0IC4xIDE5MiAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlUmVkWWV0aSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguMjMgMjQxLjdsMjAuNyA3LjFjLTkuNi0yMy45LTIzLjktMzctMzEuNy00NC44bDcuMS0xOC4yYy4yIDAgMTIuMy0yNy44LTIuNS0zMC43LS42LTExLjMtNi42LTI3LTE4LjQtMjctNy42LTEwLjYtMTcuNy0xMi4zLTMwLjctNS45YTEyMi4yIDEyMi4yIDAgMCAwLTI1LjMgMTYuNWMtNS4zLTYuNC0zIC40LTMtMjkuOC0zNy4xLTI0LjMtNDUuNC0xMS43LTc0LjggM2wuNS41YTIzOS4zNiAyMzkuMzYgMCAwIDAtNjguNC0xMy4zYy01LjUtOC43LTE4LjYtMTkuMS0yNS4xLTI1LjFsMjQuOCA3LjFjLTUuNS01LjUtMjYuOC0xMi45LTM0LjItMTUuMiAxOC4yLTQuMSAyOS44LTIwLjggNDIuNS0zMy0zNC45LTEwLjEtNjcuOS01LjktOTcuOSAxMS44bDEyLTQ0LjJMMTgyIDBjLTMxLjYgMjQuMi0zMyA0MS45LTMzLjcgNDUuNS0uOS0yLjQtNi4zLTE5LjYtMTUuMi0yN2EzNS4xMiAzNS4xMiAwIDAgMC0uNSAyNS4zYzMgOC40IDUuOSAxNC44IDguNCAxOC45LTE2LTMuMy0yOC4zLTQuOS00OS4yIDBoLTMuN2wzMyAxNC4zYTE5NC4yNiAxOTQuMjYgMCAwIDAtNDYuNyA2Ny40bC0xLjcgOC40IDEuNyAxLjcgNy42LTQuN2MtMy4zIDExLjYtNS4zIDE5LjQtNi42IDI1LjhhMjAwLjE4IDIwMC4xOCAwIDAgMC0yNy44IDQwLjNjLTE1IDEtMzEuOCAxMC44LTQwLjMgMTQuM2wzIDMuNCAyOC44IDFjLS41IDEtLjcgMi4yLTEuMiAzLjItNy4zIDYuNC0zOS44IDM3LjctMzMgODAuN2wyMC4yLTIyLjRjLjUgMS43LjcgMy40IDEuMiA1LjIgMCAyNS41LjQgODkuNiA2NC45IDE1MC41IDQzLjYgNDAgOTYgNjAuMiAxNTcuNSA2MC4yIDEyMS43IDAgMjIzLTg3LjMgMjIzLTIxMS41IDYuOC05LjctMS4yIDMgMTYuNy0yNS4xbDEzIDE0LjMgMi41LS41QTE4MS44NCAxODEuODQgMCAwIDAgNDk1IDI1NWE0NC43NCA0NC43NCAwIDAgMC02LjgtMTMuM3pNMzk4IDExMS4ybC0uNSAyMS45YzUuNSAxOC4xIDE2LjkgMTcuMiAyMi40IDE3LjJsLTMuNC00LjcgMjIuNC01LjRhMjQyLjQ0IDI0Mi40NCAwIDAgMS0yNyAwYzEyLjgtMi4xIDMzLjMtMjkgNDMtMTEuMyAzLjQgNy42IDYuNCAxNy4yIDkuMyAyNy44bDEuNy01LjlhNTYuMzggNTYuMzggMCAwIDEtMS43LTE1LjJjNS40LjUgOC44IDMuNCA5LjMgMTAuMS41IDYuNCAxLjcgMTQuOCAzLjQgMjUuM2w0LjctMTEuM2M0LjYgMCA0LjUtMy42LTIuNSAyMC43LTIwLjktOC43LTM1LjEtOC40LTQ2LjUtOC40bDE4LjItMTZjLTI1LjMgOC4yLTMzIDEwLjgtNTQuOCAyMC45LTEuMS01LjQtNS0xMy41LTE2LTE5LjktMy4yIDMuOC0yLjguOS0uNyAxNC44aC0yLjVhNjIuMzIgNjIuMzIgMCAwIDAtOC40LTIzLjFsNC4yLTMuNGM4LjQtNy4xIDExLjgtMTQuMyAxMC42LTIxLjktLjUtNi40LTUuNC0xMy41LTEzLjUtMjAuNyA1LjYtMy40IDE1LjItLjQgMjguMyA4LjV6bS0zOS42LTEwLjFjMi43IDEuOSAxMS40IDUuNCAxOC45IDE3LjIgNC4yIDguNCA0IDkuOCAzLjQgMTEuMS0uNSAyLjQtLjUgNC4zLTMgNy4xLTEuNyAyLjUtNS40IDQuNy0xMS44IDcuNi03LjYtMTMtMTYuNS0yMy42LTI3LjgtMzEuMnpNOTEgMTQzLjFsMS4yLTEuN2MxLjItMi45IDQuMi03LjYgOS4zLTE1LjJsMi41LTMuNC0xMyAxMi4zIDUuNC00LjctMTAuMSA5LjMtNC4yIDEuMmMxMi4zLTI0LjEgMjMuMS00MS4zIDMyLjUtNTAuMiA5LjMtOS4zIDE2LTE2IDIwLjItMTkuNGwtNi40IDEuMmMtMTEuMy00LjItMTkuNC03LjEtMjQuOC04LjQgMi41LS41IDMuNy0uNSAzLjItLjUgMTAuMyAwIDE3LjUuNSAyMC45IDEuMmE1Mi4zNSA1Mi4zNSAwIDAgMCAxNiAyLjVsLjUtMS43LTguNC0zNS44IDEzLjUgMjlhNDIuODkgNDIuODkgMCAwIDAgNS45LTE0LjNjMS43LTYuNCA1LjQtMTMgMTAuMS0xOS40czcuNi0xMC42IDkuMy0xMS4zYTIzNC42OCAyMzQuNjggMCAwIDAtNi40IDI1LjNsLTEuNyA3LjEtLjUgNC43IDIuNSAyLjVDMTkwLjQgMzkuOSAyMTQgMzQgMjM5LjggMzQuNWwyMS4xLjVjLTExLjggMTMuNS0yNy44IDIxLjktNDguNSAyNC44YTIwMS4yNiAyMDEuMjYgMCAwIDEtMjMuNCAyLjlsLS4yLS41LTIuNS0xLjJhMjAuNzUgMjAuNzUgMCAwIDAtMTQgMmMtMi41LS4yLTQuOS0uNS03LjEtLjdsLTIuNSAxLjcuNSAxLjJjMiAuMiAzLjkuNSA2LjIuN2wtMiAzLjQgMy40LS41LTEwLjYgMTEuM2MtNC4yIDMtNS40IDYuNC00LjIgOS4zbDUuNC0zLjRoMS4yYTM5LjQgMzkuNCAwIDAgMSAyNS4zLTE1LjJ2LTNjNi40LjUgMTMgMSAxOS40IDEuMiA2LjQgMCA4LjQuNSA1LjQgMS4yYTE4OS42IDE4OS42IDAgMCAxIDIwLjcgMTMuNWMxMy41IDEwLjEgMjMuNiAyMS45IDMwIDM1LjQgOC44IDE4LjIgMTMuNSAzNy4xIDEzLjUgNTYuNmExNDEuMTMgMTQxLjEzIDAgMCAxLTMgMjguMyAyMDkuOTEgMjA5LjkxIDAgMCAxLTE2IDQ2bDIuNS41YzE4LjItMTkuNyA0MS45LTE2IDQ5LjItMTZsLTYuNCA1LjkgMjIuNCAxNy43LTEuNyAzMC43Yy01LjQtMTIuMy0xNi41LTIxLjEtMzMtMjcuOCAxNi41IDE0LjggMjMuNiAyMS4xIDIxLjkgMjAuMi00LjgtMi44LTMuNS0xLjktMTAuOC0zLjcgNC4xIDQuMSAxNy41IDE4LjggMTguMiAyMC43bC4yLjItLjIuMmMwIDEuOCAxLjYtMS4yLTE0IDIyLjktNzUuMi0xNS4zLTEwNi4yNy00Mi43LTE0MS4yLTYzLjJsMTEuOCAxLjJjLTExLjgtMTguNS0xNS42LTE3LjctMzguNC0yNi4xTDE0OSAyMjVjLTguOC0zLTE4LjItMy0yOC4zLjVsNy42LTEwLjYtMS4yLTEuN2MtMTQuOSA0LjMtMTkuOCA5LjItMjIuNiAxMS4zLTEuMS01LjUtMi44LTEyLjQtMTIuMy0yOC44bC0xLjIgMjctMTMuMi01YzEuNS0yNS4yIDUuNC01MC41IDEzLjItNzQuNnptMjc2LjUgMzMwYy00OS45IDI1LTU2LjEgMjIuNC01OSAyMy45LTI5LjgtMTEuOC01MC45LTMxLjctNjMuNS01OC44bDMwIDE2LjVjLTkuOC05LjMtMTguMy0xNi41LTM4LjQtNDQuM2wxMS44IDIzLjEtMTcuNy03LjZjMTQuMiAyMS4xIDIzLjUgNTEuNyA2Ni42IDczLjUtMTIwLjggMjQuMi0xOTktNzIuMS0yMDAuOS03NC4zYTI2Mi41NyAyNjIuNTcgMCAwIDAgMzUuNCAyNC44YzMuNCAxLjcgNy4xIDIuNSAxMC4xIDEuMmwtMTYtMjAuN2M5LjIgNC4yIDkuNSA0LjUgNjkuMSAyOS00Mi41LTIwLjctNzMuOC00MC44LTkzLjItNjAuMi0uNSA2LjQtMS4yIDEwLjEtMS4yIDEwLjFhODAuMjUgODAuMjUgMCAwIDEgMjAuNyAyNi42Yy0zOS0xOC45LTU3LjYtNDcuNi03MS4zLTgyLjYgNDkuOSA1NS4xIDExOC45IDM3LjUgMTIwLjUgMzcuMSAzNC44IDE2LjQgNjkuOSAyMy42IDExMy45IDEwLjYgMy4zIDAgMjAuMyAxNyAyNS4zIDM5LjFsNC4yLTMtMi41LTIzLjZjOSA5IDI0LjkgMjIuNiAzNC40IDEzLTE1LjYtNS4zLTIzLjUtOS41LTI5LjUtMzEuNyA0LjYgNC4yIDcuNiA5IDI3LjggMTVsMS4yLTEuMi0xMC41LTE0LjJjMTEuNy00LjgtMy41IDEgMzItMTAuOCA0LjMgMzQuMyA5IDQ5LjIuNyA4OS41em0xMTUuMy0yMTQuNGwtMi41LjUgMyA5LjNjLTMuNSA1LjktMjMuNyA0NC4zLTcxLjYgNzkuNy0zOS41IDI5LjgtNzYuNiAzOS4xLTgwLjkgNDAuM2wtNy42LTcuMS0xLjIgMyAxNC4zIDE2LTcuMS00LjcgMy40IDQuMmgtMS4ybC0yMS45LTEzLjUgOS4zIDI2LjYtMTktMjcuOS0xLjIgMi41IDcuNiAyOWMtNi4xLTguMi0yMS0zMi42LTU2LjgtMzkuNmwzMi41IDIxLjJhMjE0LjgyIDIxNC44MiAwIDAgMS05My4yLTYuNGMtNC4yLTEuMi04LjktMi41LTEzLjUtNC4ybDEuMi0zLTQ0LjgtMjIuNCAyNi4xIDIyLjRjLTU3LjcgOS4xLTExMy0yNS40LTEyNi40LTgzLjRsLTIuNS0xNi40LTIyLjI3IDIyLjNjMTkuNS01Ny41IDI1LjYtNTcuOSA1MS40LTcwLjEtOS4xLTUuMy0xLjYtMy4zLTM4LjQtOS4zIDE1LjgtNS44IDMzLTE1LjQgNzMgNS4yYTE4LjUgMTguNSAwIDAgMSAzLjctMS43Yy42LTMuMi40LS44IDEtMTEuOCAzLjkgMTAgMy42IDguNyAzIDkuM2wxLjcuNWMxMi43LTYuNSA4LjktNC41IDE3LTguOWwtNS40IDEzLjUgMjIuMy01LjgtOC40IDguNCAyLjUgMi41YzQuNS0xLjggMzAuMyAzLjQgNDAuOCAxNmwtMjMuNi0yLjVjMzkuNCAyMyA1MS41IDU0IDU1LjggNjkuNmwxLjctMS4yYy0yLjgtMjIuMy0xMi40LTMzLjktMTYtNDAuMSA0LjIgNSAzOS4yIDM0LjYgMTEwLjQgNDYtMTEuMy0uNS0yMy4xIDUuNC0zNC45IDE4LjlsNDYuNy0yMC4yLTkuMyAyMS45YzcuNi0xMC4xIDE0LjgtMjMuNiAyMS4yLTM5LjZ2LS41bDEuMi0zLTEuMiAxNmMxMy41LTQxLjggMjUuMy03OC41IDM1LjQtMTA5LjdsMTMuNS0yNy44di0ybC01LjQtNC4yaDEwLjFsNS45IDQuMiAyLjUtMS4yLTMuNC0xNiAxMi4zIDE4LjkgNDEuOC0yMC4yLTE0LjggMTMgLjUgMi45IDE3LjctLjVhMTg0IDE4NCAwIDAgMSAzMyA0LjJsLTIzLjYgMi41LTEuMiAzIDI2LjYgMjMuMWEyNTQuMjEgMjU0LjIxIDAgMCAxIDI3IDMyYy0xMS4yLTMuMy0xMC4zLTMuNC0yMS4yLTMuNGwxMi4zIDMyLjV6bS02LjEtNzEuM2wtMy45IDEzLTE0LjMtMTEuOHptLTI1NC44IDcuMWMxLjcgMTAuNiA0LjcgMTcuNyA4LjggMjEuOS05LjMgNi42LTI3LjUgMTMuOS00Ni41IDE2bC41IDEuMmE1MC4yMiA1MC4yMiAwIDAgMCAyNC44LTIuNWwtNy4xIDEzYzQuMi0xLjcgMTAuMS03LjEgMTcuNy0xNC44IDExLjktNS41IDEyLjctNS4xIDIwLjItMTYtMTIuNy02LjQtMTUuNy0xMy43LTE4LjQtMTguOHptMy43LTEwMi4zYy02LjQtMy40LTEwLjYgMy0xMi4zIDE4LjlzMi41IDI5LjUgMTEuOCAzOS42IDE4LjIgMTAuNiAyNi4xIDMgMy40LTIzLjYtMTEuMy00Ny43YTM5LjU3IDM5LjU3IDAgMCAwLTE0LjI3LTEzLjh6bS00LjcgNDYuM2M1LjQgMi4yIDEwLjUgMS45IDEyLjMtMTAuNnYtNC43bC0xLjIuNWMtNC4zLTMuMS0yLjUtNC41LTEuNy02LjJsLjUtLjVjLS45LTEuMi01LTguMS0xMi41IDQuNy0uNS0xMy41LjUtMjEuOSAzLTI0LjggMS4yLTIuNSA0LjctMS4yIDExLjMgNC4yIDYuNCA1LjQgMTEuMyAxNiAxNS4yIDMyLjUgNi41IDI4LTE5LjggMjYuMi0yNi45IDQuOXptLTQ1LTUuNWMxLjYuMyA5LjMtMS4xIDkuMy0xNC44aC0uNWMtNS40LTEuMS0yLjItNS41LS43LTUuOS0xLjctMy0zLjQtNC4yLTUuNC00LjctOC4xIDAtMTEuNiAxMi43LTguMSAyMS4yYTcuNTEgNy41MSAwIDAgMCA1LjQzIDQuMnpNMjE2IDgyLjlsLTIuNS41LjUgM2E0OC45NCA0OC45NCAwIDAgMSAyNi4xIDUuOWMtMi41LTUuNS0xMC0xNC4zLTI4LjMtMTQuM2wuNSAyLjV6bS03MS44IDQ5LjRjMjEuNyAxNi44IDE2LjUgMjEuNCA0Ni41IDIzLjZsLTIuOS00LjdhNDIuNjcgNDIuNjcgMCAwIDAgMTQuOC0yOC4zYzEuNy0xNi0xLjItMjkuNS04LjgtNDEuM2wxMy03LjZhMi4yNiAyLjI2IDAgMCAwLS41LTEuNyAxNC4yMSAxNC4yMSAwIDAgMC0xMy41IDEuN2MtMTIuNyA2LjctMjggMjAuOS0yOSAyMi40LTEuNyAxLjctMy40IDUuOS01LjQgMTMuNWE5OS42MSA5OS42MSAwIDAgMC0yLjkgMjMuNmMtNC43LTgtMTAuNS02LjQtMTkuOS01LjlsNy4xIDcuNmMtMTYuNSAwLTIzLjMgMTUuNC0yMy42IDE2IDYuOCAwIDQuNi03LjYgMzAtMTIuMy00LjMtNi4zLTMuMy01LTQuOS02LjZ6bTE4LjctMTguN2MxLjItNy42IDMuNC0xMyA2LjQtMTcuMiA1LjQtNi40IDEwLjYtMTAuMSAxNi0xMS44IDQuMi0xLjcgNy4xIDEuMiAxMC4xIDkuM2E3Mi4xNCA3Mi4xNCAwIDAgMSAzIDI1LjNjLS41IDkuMy0zLjQgMTcuMi04LjQgMjMuMS0yLjkgMy40LTUuNCA1LjktNi40IDcuNmEzOS4yMSAzOS4yMSAwIDAgMS0xMS4zLS41bC03LjEtMy40LTUuNC02LjRjLjgtMTAgMS4zLTE4LjggMy4xLTI2em00MiA1Ni4xYy0zNC44IDE0LjQtMzQuNyAxNC0zNi4xIDE0LjMtMjAuOCA0LjctMTktMjQuNC0xOC45LTI0LjhsNS45LTEuMi0uNS0yLjVjLTIwLjItMi42LTMxIDQuMi0zMi41IDQuOS41LjUgMyAzLjQgNS45IDkuMyA0LjItNi40IDguOC0xMC4xIDE1LjItMTAuNmE4My40NyA4My40NyAwIDAgMCAxLjcgMzMuN2MuMS41IDIuNiAxNy40IDI3LjUgMjQuMSAxMS4zIDMgMjcgMS4yIDQ4LjktNS40bC05LjIuNWMtNC4yLTE0LjgtNi40LTI0LjgtNS45LTI5LjUgMTEuMy04LjggMjEuOS0xMS4zIDMwLjctNy42aDIuNWwtMTEuOC03LjYtNy4xLjVjLTUuOSAxLjItMTIuMyA0LjItMTkuNCA4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZW1lY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAyLjkgOC40M2M5LjktNS43MyAyNi01LjgyIDM1Ljk1LS4yMUw0MzAgMTE1Ljg1YzEwIDUuNiAxOCAxOS40NCAxOCAzMC44NlYzNjRjMCAxMS40NC04LjA2IDI1LjI5LTE4IDMxTDIzOC44MSA1MDMuNzRjLTkuOTMgNS42Ni0yNiA1LjU3LTM1Ljg1LS4yMUwxNy44NiAzOTUuMTJDOCAzODkuMzQgMCAzNzUuMzggMCAzNjRWMTQ2LjcxYzAtMTEuNDQgOC0yNS4zNiAxNy45MS0zMS4wOHptLTc3LjQgMTk5LjgzYy0xNS45NCAwLTMxLjg5LjE0LTQ3LjgzLjE0djEwMS40NUg5Ni44VjI4MGgyOC43YzQ5LjcxIDAgNDkuNTYtNzEuNzQgMC03MS43NHptMTQwLjE0IDEwMC4yOWwtMzAuNzMtMzQuNjRjMzctNy41MSAzNC44LTY1LjIzLTEwLjg3LTY1LjUxLTE2LjA5IDAtMzIuMTctLjE0LTQ4LjI2LS4xNHYxMDEuNTloMTkuMTN2LTMzLjkxaDE4LjQxbDI5LjU2IDMzLjkxaDIyLjc2em0tNDEuNTktODIuMzJjMjMuMzQgMCAyMy4yNiAzMi40NiAwIDMyLjQ2aC0yOS4xM3YtMzIuNDZ6bS05NS41Ni0xLjZjMjEuMTggMCAyMS4xMSAzOC44NSAwIDM4Ljg1SDk2LjE4di0zOC44NHptMTkyLjY1LTE4LjI1Yy02OC40NiAwLTcxIDEwNS44IDAgMTA1LjggNjkuNDgtLjAxIDY5LjQxLTEwNS44IDAtMTA1Ljh6bTAgMTcuMzljNDQuMTIgMCA0NC44IDcwLjg2IDAgNzAuODZzLTQ0LjQzLTcwLjg2IDAtNzAuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZW1laXNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggODguMjg2YzAtMTAgNi4yODYtMjEuNzE0IDE3LjcxNS0yMS43MTQgMTEuMTQyIDAgMTcuNzE0IDExLjcxNCAxNy43MTQgMjEuNzE0IDAgMTAuMjg1LTYuNTcyIDIxLjcxNC0xNy43MTQgMjEuNzE0QzIxNC4yODYgMTEwIDIwOCA5OC41NzEgMjA4IDg4LjI4NnptMzA0IDE2MGMwIDM2LjAwMS0xMS40MjkgMTAyLjI4Ni0zNi4yODYgMTI5LjcxNC0yMi44NTggMjQuODU4LTg3LjQyOCA2MS4xNDMtMTIwLjg1NyA3MC41NzJsLTEuMTQzLjI4NnYzMi41NzFjMCAxNi4yODYtMTIuNTcyIDMwLjU3MS0yOS4xNDMgMzAuNTcxLTEwIDAtMTkuNDI5LTUuNzE0LTI0LjU3Mi0xNC4yODYtNS40MjcgOC41NzItMTQuODU2IDE0LjI4Ni0yNC44NTYgMTQuMjg2LTEwIDAtMTkuNDI5LTUuNzE0LTI0Ljg1OC0xNC4yODYtNS4xNDIgOC41NzItMTQuNTcxIDE0LjI4Ni0yNC41NyAxNC4yODYtMTAuMjg2IDAtMTkuNDI5LTUuNzE0LTI0Ljg1OC0xNC4yODYtNS4xNDMgOC41NzItMTQuNTcxIDE0LjI4Ni0yNC41NzEgMTQuMjg2LTE4Ljg1NyAwLTI5LjQyOS0xNS43MTQtMjkuNDI5LTMyLjg1Ny0xNi4yODYgMTIuMjg1LTM1LjcxNSAxOS40MjgtNTYuNTcxIDE5LjQyOC0yMiAwLTQzLjQyOS04LjI4NS02MC4yODYtMjIuODU3IDEwLjI4NS0uMjg2IDIwLjU3MS0yLjI4NiAzMC4yODUtNS43MTQtMjAuODU3LTUuNzE0LTM5LjQyOC0xOC44NTctNTItMzYuMjg2IDIxLjM3IDQuNjQ1IDQ2LjIwOSAxLjY3MyA2Ny4xNDMtMTEuMTQzLTIyLTIyLTU2LjU3MS01OC44NTctNjguNTcyLTg3LjQyOEMxLjE0MyAzMjEuNzE0IDAgMzAzLjcxNCAwIDI4OS40MjljMC00OS43MTQgMjAuMjg2LTE2MCA4Ni4yODYtMTYwIDEwLjU3MSAwIDE4Ljg1NyA0Ljg1OCAyMy4xNDMgMTQuODU3YTE1OC43OTIgMTU4Ljc5MiAwIDAgMSAxMi0xNS40MjhjMi0yLjU3MiA1LjcxNC01LjQyOSA3LjE0My04LjI4NiA3Ljk5OS0xMi41NzEgMTEuNzE0LTIxLjE0MiAyMS43MTQtMzRDMTgyLjU3MSA0NS40MjggMjMyIDE3LjE0MyAyODUuMTQzIDE3LjE0M2M2IDAgMTIgLjI4NSAxNy43MTQgMS4xNDNDMzEzLjcxNCA2LjU3MSAzMjguODU3IDAgMzQ0LjU3MiAwYzE0LjU3MSAwIDI5LjcxNCA2IDQwIDE2LjI4Ni44NTcuODU4IDEuNDI4IDIuMjg2IDEuNDI4IDMuNDI4IDAgMy43MTQtMTAuMjg1IDEzLjQyOS0xMi44NTcgMTYuMjg2IDQuMjg2IDEuNDI5IDE1LjcxNCA2Ljg1OCAxNS43MTQgMTIgMCAyLjg1Ny0yLjg1NyA1LjE0My00LjU3MSA3LjE0MyAzMS40MjkgMjcuNzE0IDQ5LjQyOSA2Ny4xNDMgNTYuMjg2IDEwOCA0LjI4Ni01LjE0MyAxMC4yODUtOC41NzIgMTcuMTQzLTguNTcyIDEwLjU3MSAwIDIwLjg1NyA3LjE0NCAyOC41NzEgMTQuMDAxQzUwNy4xNDMgMTg3LjE0MyA1MTIgMjIxLjcxNCA1MTIgMjQ4LjI4NnpNMTg4IDg5LjQyOGMwIDE4LjI4NiAxMi41NzEgMzcuMTQzIDMyLjI4NiAzNy4xNDMgMTkuNzE0IDAgMzIuMjg1LTE4Ljg1NyAzMi4yODUtMzcuMTQzIDAtMTgtMTIuNTcxLTM2Ljg1Ny0zMi4yODUtMzYuODU3LTE5LjcxNSAwLTMyLjI4NiAxOC44NTgtMzIuMjg2IDM2Ljg1N3pNMjM3LjcxNCAxOTRjMC0xOS43MTQgMy43MTQtMzkuMTQzIDguNTcxLTU4LjI4Ni01Mi4wMzkgNzkuNTM0LTEzLjUzMSAxODQuNTcxIDY4Ljg1OCAxODQuNTcxIDIxLjQyOCAwIDQyLjU3MS03LjcxNCA2MC0yMCAyLTcuNDI5IDMuNzE0LTE0Ljg1NyAzLjcxNC0yMi41NzIgMC0xNC4yODYtNi4yODYtMjEuNDI4LTIwLjU3Mi0yMS40MjgtNC41NzEgMC05LjE0My44NTctMTMuNDI5IDEuNzE0LTYzLjM0MyAxMi42NjgtMTA3LjE0MiAzLjY2OS0xMDcuMTQyLTYzLjk5OXptLTQxLjE0MiAyNTQuODU4YzAtMTEuMTQzLTguODU4LTIwLjg1Ny0yMC4yODYtMjAuODU3LTExLjQyOSAwLTIwIDkuNzE1LTIwIDIwLjg1N3YzMi41NzFjMCAxMS4xNDMgOC41NzEgMjEuMTQyIDIwIDIxLjE0MiAxMS40MjggMCAyMC4yODYtOS43MTUgMjAuMjg2LTIxLjE0MnYtMzIuNTcxem00OS4xNDMgMGMwLTExLjE0My04LjU3Mi0yMC44NTctMjAtMjAuODU3LTExLjQyOSAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1NyAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjggMCAyMC0xMCAyMC0yMS4xNDJ2LTMyLjU3MXptNDkuNzEzIDBjMC0xMS4xNDMtOC44NTctMjAuODU3LTIwLjI4NS0yMC44NTctMTEuNDI5IDAtMjAuMjg2IDkuNzE1LTIwLjI4NiAyMC44NTd2MzIuNTcxYzAgMTEuMTQzIDguODU3IDIxLjE0MiAyMC4yODYgMjEuMTQyIDExLjQyOCAwIDIwLjI4NS05LjcxNSAyMC4yODUtMjEuMTQydi0zMi41NzF6bTQ5LjcxNSAwYzAtMTEuMTQzLTguODU3LTIwLjg1Ny0yMC4yODYtMjAuODU3LTExLjQyOCAwLTIwLjI4NiA5LjcxNS0yMC4yODYgMjAuODU3djMyLjU3MWMwIDExLjE0MyA4Ljg1OCAyMS4xNDIgMjAuMjg2IDIxLjE0MiAxMS40MjkgMCAyMC4yODYtMTAgMjAuMjg2LTIxLjE0MnYtMzIuNTcxek00MjEuNzE0IDI4NmMtMzAuODU3IDU5LjE0Mi05MC4yODUgMTAyLjU3Mi0xNTguNTcxIDEwMi41NzItOTYuNTcxIDAtMTYwLjU3MS04NC41NzItMTYwLjU3MS0xNzYuNTcyIDAtMTYuODU3IDItMzMuNDI5IDYtNDkuNzE0LTIwIDMzLjcxNS0yOS43MTQgNzIuNTcyLTI5LjcxNCAxMTEuNDI5IDAgNjAuMjg2IDI0Ljg1NyAxMjEuNzE1IDcxLjQyOSAxNjAuODU3IDUuMTQzLTkuNzE0IDE0Ljg1Ny0xNi4yODYgMjYtMTYuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0LjU3MSAxNC4yODYgNS40MjktOC41NzEgMTQuNTcxLTE0LjI4NiAyNC44NTgtMTQuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0LjU3MSAxNC4yODYgNS40MjktOC41NzEgMTQuODU3LTE0LjI4NiAyNC44NTgtMTQuMjg2IDEwIDAgMTkuNDI4IDUuNzE0IDI0Ljg1NyAxNC4yODYgNS4xNDMtOC41NzEgMTQuNTcxLTE0LjI4NiAyNC41NzItMTQuMjg2IDEwLjg1NyAwIDIwLjg1NyA2LjU3MiAyNS43MTQgMTYgNDMuNDI3LTM2LjI4NiA2OC41NjktOTIgNzEuNDI2LTE0OC4yODZ6bTEwLjU3Mi05OS43MTRjMC01My43MTQtMzQuNTcxLTEwNS43MTQtOTIuNTcyLTEwNS43MTQtMzAuMjg1IDAtNTguNTcxIDE1LjE0My03OC44NTcgMzYuODU3QzI0MC44NjIgMTgzLjgxMiAyMzMuNDEgMjU0IDMwMi4yODYgMjU0YzI4LjgwNSAwIDk3LjM1Ny0yOC41MzggODQuMjg2IDM2Ljg1NyAyOC44NTctMjYgNDUuNzE0LTY1LjcxNCA0NS43MTQtMTA0LjU3MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhpbmtQZWFrcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjUuNCA0MDkuNGw4Ny4xLTE1MC4yLTMyLS4zLTU1LjEgOTVMMjU5LjIgMCAyMyA0MDcuNGwzMiAuM0wyNTkuMiA1NS42em0tMzU1LjMtNDQuMWgzMi4xbDExNy40LTIwMi41TDQ2MyA1MTEuOWwzMi41LjEtMjM1LjgtNDA0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpa3RvayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDgsMjA5LjkxYTIxMC4wNiwyMTAuMDYsMCwwLDEtMTIyLjc3LTM5LjI1VjM0OS4zOEExNjIuNTUsMTYyLjU1LDAsMSwxLDE4NSwxODguMzFWMjc4LjJhNzQuNjIsNzQuNjIsMCwxLDAsNTIuMjMsNzEuMThWMGw4OCwwYTEyMS4xOCwxMjEuMTgsMCwwLDAsMS44NiwyMi4xN2gwQTEyMi4xOCwxMjIuMTgsMCwwLDAsMzgxLDEwMi4zOWExMjEuNDMsMTIxLjQzLDAsMCwwLDY3LDIwLjE0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFkZUZlZGVyYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDguOGMtMTM3IDAtMjQ4IDExMS0yNDggMjQ4czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDgtMTExLTI0OC0yNDgtMjQ4em0wIDQ4Mi44Yy0xMjkuNyAwLTIzNC44LTEwNS4xLTIzNC44LTIzNC44UzExOC4zIDIyIDI0OCAyMnMyMzQuOCAxMDUuMSAyMzQuOCAyMzQuOFMzNzcuNyA0OTEuNiAyNDggNDkxLjZ6bTE1NS4xLTMyOC41di00Ni44SDIwOS4zVjE5OEg1NC4ybDM2LjcgNDZoMTE3Ljd2MTk2LjhoNDguOFYyNDVoODMuM3YtNDdoLTgzLjN2LTM0LjhoMTQ1Ljd6bS03My4zIDQ1LjF2MjMuOWgtODIuOXYxOTcuNGgtMjYuOFYyMzIuMUg5Ni4zbC0yMC4xLTIzLjloMTQzLjl2LTgwLjZoMTcxLjhWMTUyaC0xNDV2NTYuMnptLTE2MS4zLTY5bC0xMi40LTIwLjcgMi4xIDIzLjgtMjMuNSA1LjQgMjMuMyA1LjQtMi4xIDI0IDEyLjMtMjAuNSAyMi4yIDkuNS0xNS43LTE4LjEgMTUuOC0xOC4xem0tMjkuNi0xOS43bDkuMy0xMS41LTEyLjcgNS45LTgtMTIuNCAxLjcgMTMuOS0xNC4zIDMuOCAxMy43IDIuNy0uOCAxNC43IDYuOC0xMi4yIDEzLjggNS4zem0xNjUuNCAxNDUuMmwtMTMuMSA1LjYtNy4zLTEyLjIgMS4zIDE0LjItMTMuOSAzLjIgMTMuOSAzLjItMS4yIDE0LjIgNy4zLTEyLjIgMTMuMSA1LjUtOS40LTEwLjd6bTEwNi45LTc3LjJsLTIwLjkgOS4xLTEyLTE5LjYgMi4yIDIyLjctMjIuMyA1LjQgMjIuMiA0LjktMS44IDIyLjkgMTEuNS0xOS42IDIxLjIgOC44LTE1LjEtMTd6TTI0OCAyOS45Yy0xMjUuMyAwLTIyNi45IDEwMS42LTIyNi45IDIyNi45UzEyMi43IDQ4My43IDI0OCA0ODMuN3MyMjYuOS0xMDEuNiAyMjYuOS0yMjYuOVMzNzMuMyAyOS45IDI0OCAyOS45ek0zNDIuNiAxOTZ2NTFoLTgzLjN2MTk1LjdoLTUyLjdWMjQ1LjlIODkuOWwtNDAtNDkuOWgxNTcuNHYtODEuNmgxOTcuOHY1MC43SDI1OS40VjE5NnpNMjQ4IDQzLjJjNjAuMyAwIDExNC44IDI1IDE1My42IDY1LjJIMjAyLjVWMTkwSDQ1LjFDNzMuMSAxMDQuOCAxNTMuNCA0My4yIDI0OCA0My4yem0wIDQyNy4xYy0xMTcuOSAwLTIxMy42LTk1LjYtMjEzLjYtMjEzLjUgMC0yMS4yIDMuMS00MS44IDguOS02MS4xTDg3LjEgMjUyaDExNC43djE5Ni44aDY0LjZWMjUzaDgzLjN2LTYyLjdoLTgzLjJ2LTE5LjJoMTQ1LjZ2LTUwLjhjMzAuOCAzNyA0OS4zIDg0LjYgNDkuMyAxMzYuNS4xIDExNy45LTk1LjUgMjEzLjUtMjEzLjQgMjEzLjV6TTE3OC44IDI3NWwtMTEtMjEuNCAxLjcgMjQuNS0yMy43IDMuOSAyMy44IDUuOS0zLjcgMjMuOCAxMy0yMC45IDIxLjUgMTAuOC0xNS44LTE4LjggMTYuOS0xNy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmVsbG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkyLjMgMzJINTYuMUMyNS4xIDMyIDAgNTcuMSAwIDg4Yy0uMSAwIDAtNCAwIDMzNiAwIDMwLjkgMjUuMSA1NiA1NiA1NmgzMzYuMmMzMC44LS4yIDU1LjctMjUuMiA1NS43LTU2Vjg4Yy4xLTMwLjgtMjQuOC01NS44LTU1LjYtNTZ6TTE5NyAzNzEuM2MtLjIgMTQuNy0xMi4xIDI2LjYtMjYuOSAyNi42SDg3LjRjLTE0LjguMS0yNi45LTExLjgtMjctMjYuNlYxMTcuMWMwLTE0LjggMTItMjYuOSAyNi45LTI2LjloODIuOWMxNC44IDAgMjYuOSAxMiAyNi45IDI2Ljl2MjU0LjJ6bTE5My4xLTExMmMwIDE0LjgtMTIgMjYuOS0yNi45IDI2LjloLTgxYy0xNC44IDAtMjYuOS0xMi0yNi45LTI2LjlWMTE3LjJjMC0xNC44IDEyLTI2LjkgMjYuOC0yNi45aDgxLjFjMTQuOCAwIDI2LjkgMTIgMjYuOSAyNi45djE0Mi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmlwYWR2aXNvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjguOTEsMTc4LjgyLDU3NiwxMjcuNThINDcxLjY2YTMyNi4xMSwzMjYuMTEsMCwwLDAtMzY3LDBIMGw0Ny4wOSw1MS4yNEExNDMuOTExLDE0My45MTEsMCwwLDAsMjQxLjg2LDM5MC43M0wyODgsNDQwLjkzbDQ2LjExLTUwLjE3QTE0My45NCwxNDMuOTQsMCwwLDAsNTc1Ljg4LDI4NS4xOGgtLjAzQTE0My41NiwxNDMuNTYsMCwwLDAsNTI4LjkxLDE3OC44MlpNMTQ0LjA2LDM4Mi41N2E5Ny4zOSw5Ny4zOSwwLDEsMSw5Ny4zOS05Ny4zOUE5Ny4zOSw5Ny4zOSwwLDAsMSwxNDQuMDYsMzgyLjU3Wk0yODgsMjgyLjM3YzAtNjQuMDktNDYuNjItMTE5LjA4LTEwOC4wOS0xNDIuNTlhMjgxLDI4MSwwLDAsMSwyMTYuMTcsMEMzMzQuNjEsMTYzLjMsMjg4LDIxOC4yOSwyODgsMjgyLjM3Wm0xNDMuODgsMTAwLjJoLS4wMWE5Ny40MDUsOTcuNDA1LDAsMSwxLC4wMSwwWk0xNDQuMDYsMjM0LjEyaC0uMDFhNTEuMDYsNTEuMDYsMCwxLDAsNTEuMDYsNTEuMDZ2LS4xMUE1MSw1MSwwLDAsMCwxNDQuMDYsMjM0LjEyWm0yODcuODIsMGE1MS4wNiw1MS4wNiwwLDEsMCw1MS4wNiw1MS4wNkE1MS4wNiw1MS4wNiwwLDAsMCw0MzEuODgsMjM0LjEyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUdW1ibHJTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTgyLjMgMzY0LjJjLTguNSA5LjEtMzEuMiAxOS44LTYwLjkgMTkuOC03NS41IDAtOTEuOS01NS41LTkxLjktODcuOXYtOTBoLTI5LjdjLTMuNCAwLTYuMi0yLjgtNi4yLTYuMnYtNDIuNWMwLTQuNSAyLjgtOC41IDcuMS0xMCAzOC44LTEzLjcgNTAuOS00Ny41IDUyLjctNzMuMi41LTYuOSA0LjEtMTAuMiAxMC0xMC4yaDQ0LjNjMy40IDAgNi4yIDIuOCA2LjIgNi4ydjcyaDUxLjljMy40IDAgNi4yIDIuOCA2LjIgNi4ydjUxLjFjMCAzLjQtMi44IDYuMi02LjIgNi4yaC01Mi4xVjMyMWMwIDIxLjQgMTQuOCAzMy41IDQyLjUgMjIuNCAzLTEuMiA1LjYtMiA4LTEuNCAyLjIuNSAzLjYgMi4xIDQuNiA0LjlsMTMuOCA0MC4yYzEgMy4yIDIgNi43LS4zIDkuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHVtYmxyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOS44IDQ4MC4zYy0xMy42IDE0LjUtNTAgMzEuNy05Ny40IDMxLjctMTIwLjggMC0xNDctODguOC0xNDctMTQwLjZ2LTE0NEgxNy45Yy01LjUgMC0xMC00LjUtMTAtMTB2LTY4YzAtNy4yIDQuNS0xMy42IDExLjMtMTYgNjItMjEuOCA4MS41LTc2IDg0LjMtMTE3LjEuOC0xMSA2LjUtMTYuMyAxNi4xLTE2LjNoNzAuOWM1LjUgMCAxMCA0LjUgMTAgMTB2MTE1LjJoODNjNS41IDAgMTAgNC40IDEwIDkuOXY4MS43YzAgNS41LTQuNSAxMC0xMCAxMGgtODMuNFYzNjBjMCAzNC4yIDIzLjcgNTMuNiA2OCAzNS44IDQuOC0xLjkgOS0zLjIgMTIuNy0yLjIgMy41LjkgNS44IDMuNCA3LjQgNy45bDIyIDY0LjNjMS44IDUgMy4zIDEwLjYtLjQgMTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHdpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5MS4xNywxMDMuNDdIMzUyLjU0djEwOS43aDM4LjYzWk0yODUsMTAzSDI0Ni4zN1YyMTIuNzVIMjg1Wk0xMjAuODMsMCwyNC4zMSw5MS40MlY0MjAuNThIMTQwLjE0VjUxMmw5Ni41My05MS40Mmg3Ny4yNUw0ODcuNjksMjU2VjBaTTQ0OS4wNywyMzcuNzVsLTc3LjIyLDczLjEySDI5NC42MWwtNjcuNiw2NHYtNjRIMTQwLjE0VjM2LjU4SDQ0OS4wN1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHdpdHRlclNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNDguOSAxNTguOGMuMiAyLjguMiA1LjcuMiA4LjUgMCA4Ni43LTY2IDE4Ni42LTE4Ni42IDE4Ni42LTM3LjIgMC03MS43LTEwLjgtMTAwLjctMjkuNCA1LjMuNiAxMC40LjggMTUuOC44IDMwLjcgMCA1OC45LTEwLjQgODEuNC0yOC0yOC44LS42LTUzLTE5LjUtNjEuMy00NS41IDEwLjEgMS41IDE5LjIgMS41IDI5LjYtMS4yLTMwLTYuMS01Mi41LTMyLjUtNTIuNS02NC40di0uOGM4LjcgNC45IDE4LjkgNy45IDI5LjYgOC4zYTY1LjQ0NyA2NS40NDcgMCAwIDEtMjkuMi01NC42YzAtMTIuMiAzLjItMjMuNCA4LjktMzMuMSAzMi4zIDM5LjggODAuOCA2NS44IDEzNS4yIDY4LjYtOS4zLTQ0LjUgMjQtODAuNiA2NC04MC42IDE4LjkgMCAzNS45IDcuOSA0Ny45IDIwLjcgMTQuOC0yLjggMjktOC4zIDQxLjYtMTUuOC00LjkgMTUuMi0xNS4yIDI4LTI4LjggMzYuMSAxMy4yLTEuNCAyNi01LjEgMzcuOC0xMC4yLTguOSAxMy4xLTIwLjEgMjQuNy0zMi45IDM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUd2l0dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1OS4zNyAxNTEuNzE2Yy4zMjUgNC41NDguMzI1IDkuMDk3LjMyNSAxMy42NDUgMCAxMzguNzItMTA1LjU4MyAyOTguNTU4LTI5OC41NTggMjk4LjU1OC01OS40NTIgMC0xMTQuNjgtMTcuMjE5LTE2MS4xMzctNDcuMTA2IDguNDQ3Ljk3NCAxNi41NjggMS4yOTkgMjUuMzQgMS4yOTkgNDkuMDU1IDAgOTQuMjEzLTE2LjU2OCAxMzAuMjc0LTQ0LjgzMi00Ni4xMzItLjk3NS04NC43OTItMzEuMTg4LTk4LjExMi03Mi43NzIgNi40OTguOTc0IDEyLjk5NSAxLjYyNCAxOS44MTggMS42MjQgOS40MjEgMCAxOC44NDMtMS4zIDI3LjYxNC0zLjU3My00OC4wODEtOS43NDctODQuMTQzLTUxLjk4LTg0LjE0My0xMDIuOTg1di0xLjI5OWMxMy45NjkgNy43OTcgMzAuMjE0IDEyLjY3IDQ3LjQzMSAxMy4zMTktMjguMjY0LTE4Ljg0My00Ni43ODEtNTEuMDA1LTQ2Ljc4MS04Ny4zOTEgMC0xOS40OTIgNS4xOTctMzcuMzYgMTQuMjk0LTUyLjk1NCA1MS42NTUgNjMuNjc1IDEyOS4zIDEwNS4yNTggMjE2LjM2NSAxMDkuODA3LTEuNjI0LTcuNzk3LTIuNTk5LTE1LjkxOC0yLjU5OS0yNC4wNCAwLTU3LjgyOCA0Ni43ODItMTA0LjkzNCAxMDQuOTM0LTEwNC45MzQgMzAuMjEzIDAgNTcuNTAyIDEyLjY3IDc2LjY3IDMzLjEzNyAyMy43MTUtNC41NDggNDYuNDU2LTEzLjMyIDY2LjU5OS0yNS4zNC03Ljc5OCAyNC4zNjYtMjQuMzY2IDQ0LjgzMy00Ni4xMzIgNTcuODI3IDIxLjExNy0yLjI3MyA0MS41ODQtOC4xMjIgNjAuNDI2LTE2LjI0My0xNC4yOTIgMjAuNzkxLTMyLjE2MSAzOS4zMDgtNTIuNjI4IDU0LjI1M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHlwbzMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc4LjcgNzguNGMwLTI0LjcgNS40LTMyLjQgMTMuOS0zOS40LTY5LjUgOC41LTE0OS4zIDM0LTE3Ni4zIDY2LjQtNS40IDcuNy05LjMgMjAuOC05LjMgMzcuMUM3IDI0NiAxMTMuOCA0ODAgMTkxLjEgNDgwYzM2LjMgMCA5Ny4zLTU5LjUgMTQ2LjctMTM5LTcgMi4zLTExLjYgMi4zLTE4LjUgMi4zLTU3LjIgMC0xNDAuNi0xOTguNS0xNDAuNi0yNjQuOXpNMzAxLjUgMzJjLTMwLjEgMC00MS43IDUuNC00MS43IDM2LjMgMCA2Ni40IDUzLjggMTk4LjUgMTAxLjcgMTk4LjUgMjYuMyAwIDc4LjgtOTkuNyA3OC44LTE4Mi4zIDAtNDAuOS02Ny01Mi41LTEzOC44LTUyLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVViZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE0LjEgMzJIMzMuOUMxNS4yIDMyIDAgNDcuMiAwIDY1LjlWNDQ2YzAgMTguOCAxNS4yIDM0IDMzLjkgMzRINDE0YzE4LjcgMCAzMy45LTE1LjIgMzMuOS0zMy45VjY1LjlDNDQ4IDQ3LjIgNDMyLjggMzIgNDE0LjEgMzJ6TTIzNy42IDM5MS4xQzE2MyAzOTguNiA5Ni40IDM0NC4yIDg4LjkgMjY5LjZoOTQuNFYyOTBjMCAzLjcgMyA2LjggNi44IDYuOEgyNThjMy43IDAgNi44LTMgNi44LTYuOHYtNjcuOWMwLTMuNy0zLTYuOC02LjgtNi44aC02Ny45Yy0zLjcgMC02LjggMy02LjggNi44djIwLjRIODguOWM3LTY5LjQgNjUuNC0xMjIuMiAxMzUuMS0xMjIuMiA2OS43IDAgMTI4LjEgNTIuOCAxMzUuMSAxMjIuMiA3LjUgNzQuNS00Ni45IDE0MS4xLTEyMS41IDE0OC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVYnVudHUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNTIuNyA5M2M4LjgtMTUuMiAyOC4zLTIwLjUgNDMuNS0xMS43IDE1LjMgOC44IDIwLjUgMjguMyAxMS43IDQzLjYtOC44IDE1LjItMjguMyAyMC41LTQzLjUgMTEuNy0xNS4zLTguOS0yMC41LTI4LjQtMTEuNy00My42ek04Ny40IDI4Ny45Yy0xNy42IDAtMzEuOS0xNC4zLTMxLjktMzEuOSAwLTE3LjYgMTQuMy0zMS45IDMxLjktMzEuOSAxNy42IDAgMzEuOSAxNC4zIDMxLjkgMzEuOSAwIDE3LjYtMTQuMyAzMS45LTMxLjkgMzEuOXptMjguMSAzLjFjMjIuMy0xNy45IDIyLjQtNTEuOSAwLTY5LjkgOC42LTMyLjggMjkuMS02MC43IDU2LjUtNzkuMWwyMy43IDM5LjZjLTUxLjUgMzYuMy01MS41IDExMi41IDAgMTQ4LjhMMTcyIDM3MGMtMjcuNC0xOC4zLTQ3LjgtNDYuMy01Ni41LTc5em0yMjguNyAxMzEuN2MtMTUuMyA4LjgtMzQuNyAzLjYtNDMuNS0xMS43LTguOC0xNS4zLTMuNi0zNC44IDExLjctNDMuNiAxNS4yLTguOCAzNC43LTMuNiA0My41IDExLjcgOC44IDE1LjMgMy42IDM0LjgtMTEuNyA0My42em0uMy02OS41Yy0yNi43LTEwLjMtNTYuMSA2LjYtNjAuNSAzNS01LjIgMS40LTQ4LjkgMTQuMy05Ni43LTkuNGwyMi41LTQwLjNjNTcgMjYuNSAxMjMuNC0xMS43IDEyOC45LTc0LjRsNDYuMS43Yy0yLjMgMzQuNS0xNy4zIDY1LjUtNDAuMyA4OC40em0tNS45LTEwNS4zYy01LjQtNjItNzEuMy0xMDEuMi0xMjguOS03NC40bC0yMi41LTQwLjNjNDcuOS0yMy43IDkxLjUtMTAuOCA5Ni43LTkuNCA0LjQgMjguMyAzMy44IDQ1LjMgNjAuNSAzNSAyMy4xIDIyLjkgMzggNTMuOSA0MC4yIDg4LjVsLTQ2IC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVaWtpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDMuOSAxMjh2MjU2TDIxOCA1MTIgMCAzODRWMTY5LjdsODcuNiA0NS4xdjExN2wxMzMuNSA3NS41IDEzNS44LTc1LjV2LTE1MWwtMTAxLjEtNTcuNiA4Ny42LTUzLjFMNDQzLjkgMTI4ek0zMDguNiA0OS4xTDIyMy44IDBsLTg4LjYgNTQuOCA4NiA0Ny4zIDg3LjQtNTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJhY28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU1LjM1IDhDMTE4LjM2IDcuODMgNy4xNCAxMTguNzIgNyAyNTUuNjhjLS4wNyAxMzcgMTExIDI0OC4yIDI0OCAyNDguMjcgMTM2Ljg1IDAgMjQ3LjgyLTExMC43IDI0OC0yNDcuNjdTMzkyLjM0IDguMTcgMjU1LjM1IDh6bTE0NSAyNjZxLTEuMTQgNDAuNjgtMTQgNjV0LTQzLjUxIDM1cS0zMC42MSAxMC43LTg1LjQ1IDEwLjQ3aC00LjZxLTU0Ljc4LjIyLTg1LjQ0LTEwLjQ3dC00My41Mi0zNXEtMTIuODUtMjQuMzYtMTQtNjVhMjI0LjgxIDIyNC44MSAwIDAgMSAwLTMwLjcxIDQxOC4zNyA0MTguMzcgMCAwIDEgMy42LTQzLjg4YzEuODgtMTMuMzkgMy41Ny0yMi41OCA1LjQtMzIgMS00Ljg4IDEuMjgtNi40MiAxLjgyLTguNDVhNS4wOSA1LjA5IDAgMCAxIDQuOS0zLjg5aC42OWwzMiA1YTUuMDcgNS4wNyAwIDAgMSA0LjE2IDUgNSA1IDAgMCAxIDAgLjc3bC0xLjcgOC43OHEtMi40MSAxMy4yNS00Ljg0IDMzLjY4YTM4MC42MiAzODAuNjIgMCAwIDAtMi42NCA0Mi4xNXEtLjI4IDQwLjQzIDguMTMgNTkuODNhNDMuODcgNDMuODcgMCAwIDAgMzEuMzEgMjUuMThBMjQzIDI0MyAwIDAgMCAyNTAgMzQwLjZoMTAuMjVhMjQyLjY0IDI0Mi42NCAwIDAgMCA1Ny4yNy01LjE2IDQzLjg2IDQzLjg2IDAgMCAwIDMxLjE1LTI1LjIzcTguNTMtMTkuNDIgOC4xMy01OS43OGEzODggMzg4IDAgMCAwLTIuNi00Mi4xNXEtMi40OC0yMC4zOC00Ljg5LTMzLjY4bC0xLjY5LTguNzhhNSA1IDAgMCAxIDAtLjc3IDUgNSAwIDAgMSA0LjItNWwzMi01aC44MmE1IDUgMCAwIDEgNC45IDMuODljLjU1IDIuMDUuODEgMy41NyAxLjgzIDguNDUgMS44MiA5LjYyIDMuNTIgMTguNzggNS4zOSAzMmE0MTUuNzEgNDE1LjcxIDAgMCAxIDMuNjEgNDMuODggMjI4LjA2IDIyOC4wNiAwIDAgMS0uMDQgMzAuNzN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuY2hhcnRlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzEuNzMsMjMyLjgxM0E1LjM4MSw1LjM4MSwwLDAsMCwxNzYuNywyMjkuNSw0OC4wODEsNDguMDgxLDAsMCwxLDE5MS42LDIwNC4yNDRjMS4yNDMtLjgyOCwxLjY1Ny0yLjQ4NCwxLjY1Ny00LjE0MWE0LjIyLDQuMjIsMCwwLDAtMi4wNzEtMy4zMTJMNzQuNDI5LDEyOC40NzMsMTQ4Ljk1OCw4NWE5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MSw5LjEwOCw5LjEwOCwwLDAsMC00Ljk2OC04LjI4MUwxMjYuNiw1NS42YTkuNzQ4LDkuNzQ4LDAsMCwwLTkuNTIzLDBsLTEwMC4yLDU3Ljk2NmE5Ljk0Myw5Ljk0MywwLDAsMC00Ljk2OSw4LjI4MVYyMzYuOTU0YTkuMTA5LDkuMTA5LDAsMCwwLDQuOTY5LDguMjgxTDM5LjIzNSwyNTguMDdhOC44MjksOC44MjksMCwwLDAsNC45NjgsMS4yNDIsOS40LDkuNCwwLDAsMCw2LjYyNS0yLjQ4NCwxMC44LDEwLjgsMCwwLDAsMi45LTcuMDM5VjE2NC41TDE2OS42NiwyMzIuNEE0LjUsNC41LDAsMCwwLDE3MS43MywyMzIuODEzWk0zMjMuMjcyLDM3Ny43M2ExMi40NzgsMTIuNDc4LDAsMCwwLTQuOTY5LDEuMjQybC03NC41MjgsNDMuMDYyVjI4Ny44ODJjMC0yLjktMi45LTUuOC02LjIxMS00LjU1NWE1My4wMzYsNTMuMDM2LDAsMCwxLTI4Ljk4NC40MTQsNC44Niw0Ljg2LDAsMCwwLTYuMjEsNC41NTVWNDIxLjYxOWwtNzQuNTI5LTQzLjA2MWE4LjgzLDguODMsMCwwLDAtNC45NjktMS4yNDIsOS42MzEsOS42MzEsMCwwLDAtOS41MjMsOS41MjN2MjYuMDg1YTkuMTA3LDkuMTA3LDAsMCwwLDQuOTY5LDguMjgxbDEwMC4yLDU3LjU1M0E4LjgyOSw4LjgyOSwwLDAsMCwyMjMuNDg2LDQ4MGExMS4wMjcsMTEuMDI3LDAsMCwwLDQuOTY5LTEuMjQybDEwMC4yLTU3LjU1M2E5Ljk0MSw5Ljk0MSwwLDAsMCw0Ljk2OC04LjI4MVYzODYuODM5QzMzMi44LDM4Mi4yODUsMzI4LjI0LDM3Ny43MywzMjMuMjcyLDM3Ny43M1pNMjg2LjAwNyw3OGEyMywyMywwLDEsMC0yMy0yM0EyMywyMywwLDAsMCwyODYuMDA3LDc4Wm02My42MjctMTAuMDg2YTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsNjcuOTE0Wk00MTIuODE2LDE1MS42YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMTUxLjZabS02My4xODItOS4yYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDM0OS42MzQsMTQyLjRabS02My42MjcsODMuMjQ0YTIzLDIzLDAsMSwwLTIzLTIzQTIzLDIzLDAsMCwwLDI4Ni4wMDcsMjI1LjY0OFptLTYyLjA3NCwzNi4zNThhMjMsMjMsMCwxLDAtMjMtMjNBMjMsMjMsMCwwLDAsMjIzLjkzMywyNjIuMDA2Wm0xODguODgzLTgyLjM1OGEyMywyMywwLDEsMCwyMywyM0EyMywyMywwLDAsMCw0MTIuODE2LDE3OS42NDhabTAsNzIuMjcyYTIzLDIzLDAsMSwwLDIzLDIzQTIzLDIzLDAsMCwwLDQxMi44MTYsMjUxLjkyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmlyZWdpc3RyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgNDgwYzM5LjUgMCA3Ni4yLTExLjggMTA2LjgtMzIuMkg4NS4zQzExNS44IDQ2OC4yIDE1Mi41IDQ4MCAxOTIgNDgwem0tODkuMS0xOTMuMXYtMTIuNEgwdjEyLjRjMCAyLjUgMCA1IC4xIDcuNGgxMDMuMWMtLjItMi40LS4zLTQuOS0uMy03LjR6bTIwLjUgNTdIOC41YzIuNiA4LjUgNS44IDE2LjggOS42IDI0LjhoMTM4LjNjLTEyLjktNS43LTI0LjEtMTQuMi0zMy0yNC44em0tMTcuNy0zNC43SDEuM2MuOSA3LjYgMi4yIDE1IDMuOSAyMi4zaDEwOS43Yy00LTYuOS03LjItMTQuNC05LjItMjIuM3ptLTIuOC02OS4zSDB2MTcuM2gxMDIuOXptMC0xNzMuMkgwdjQuOWgxMDIuOXptMC0zNC43SDB2Mi41aDEwMi45em0wIDY5LjNIMHY3LjRoMTAyLjl6bTAgMTA0SDB2MTQuOGgxMDIuOXptMC02OS4zSDB2OS45aDEwMi45em0wIDM0LjZIMFYxODNoMTAyLjl6bTE2Ni4yIDE2MC45aDEwOS43YzEuOC03LjMgMy4xLTE0LjcgMy45LTIyLjNIMjc4LjNjLTIuMSA3LjktNS4yIDE1LjQtOS4yIDIyLjN6bTEyLTE4NS43SDM4NFYxMzZIMjgxLjF6bTAgMzcuMkgzODR2LTEyLjRIMjgxLjF6bTAtNzQuM0gzODR2LTcuNEgyODEuMXptMC03Ni43djIuNUgzODRWMzJ6bS0yMDMgNDEwLjloMjI3LjdjMTEuOC04LjcgMjIuNy0xOC42IDMyLjItMjkuN0g0NC45YzkuNiAxMSAyMS40IDIxIDMzLjIgMjkuN3ptMjAzLTM3MS4zSDM4NHYtNC45SDI4MS4xem0wIDE0OC41SDM4NHYtMTQuOEgyODEuMXpNMzguOCA0MDUuN2gzMDUuM2M2LjctOC41IDEyLjYtMTcuNiAxNy44LTI3LjJIMjNjNS4yIDkuNiA5LjIgMTguNyAxNS44IDI3LjJ6bTE4OC44LTM3LjFIMzY3YzMuNy04IDUuOC0xNi4yIDguNS0yNC44aC0xMTVjLTguOCAxMC43LTIwLjEgMTkuMi0zMi45IDI0Ljh6bTUzLjUtODEuN2MwIDIuNS0uMSA1LS40IDcuNGgxMDMuMWMuMS0yLjUuMi00LjkuMi03LjR2LTEyLjRIMjgxLjF6bTAtMjkuN0gzODR2LTE3LjNIMjgxLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVuaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OC4xMSwyMDYuNCw0NDUuMzEsMTQuNzIsMjQ4LjIsNjYuMDgsMjE5LDExNi4xNGwtNTkuMi0uNDNMMTUuNTQsMjU2LDE1OS44MiwzOTYuMzJsNTkuMTctLjQzLDI5LjI0LDUwLDE5Ny4wOCw1MS4zNiw1Mi44LTE5MS42Mi0zMC00OS42M1pNMjIzLjc3LDEyNC4yLDM3NC41NSw4Ni41MSwyODgsMjMyLjMzSDExNC44N1ptMCwyNjMuNjNMMTE0Ljg3LDI3OS43MUgyODhsODYuNTUsMTQ1LjgxWm0xOTMsMTRMMzMwLjE3LDI1Nmw4Ni41OC0xNDUuODRMNDU4LjU2LDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5zcGxhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4LDIzMC4xN1Y0ODBIMFYyMzAuMTdIMTQxLjEzVjM1NS4wOUgzMDYuODdWMjMwLjE3Wk0zMDYuODcsMzJIMTQxLjEzVjE1Ni45MUgzMDYuODdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVudGFwcGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAxLjMgNDkuOWMtNzkuOCAxNjAuMS04NC42IDE1Mi41LTg3LjkgMTczLjJsLTUuMiAzMi44Yy0xLjkgMTItNi42IDIzLjUtMTMuNyAzMy40TDE0NS42IDQ5Ny4xYy03LjYgMTAuNi0yMC40IDE2LjItMzMuNCAxNC42LTQwLjMtNS03Ny44LTMyLjItOTUuMy02OC41LTUuNy0xMS44LTQuNS0yNS44IDMuMS0zNi40bDE0OC45LTIwNy45YzcuMS05LjkgMTYuNC0xOCAyNy4yLTIzLjdsMjkuMy0xNS41YzE4LjUtOS44IDkuNy0xMS45IDEzNS42LTEzOC45IDEtNC44IDEtNy4zIDMuNi04IDMtLjcgNi42LTEgNi4zLTQuNmwtLjQtNC42Yy0uMi0xLjkgMS4zLTMuNiAzLjItMy42IDQuNS0uMSAxMy4yIDEuMiAyNS42IDEwIDEyLjMgOC45IDE2LjQgMTYuOCAxNy43IDIxLjEuNiAxLjgtLjYgMy43LTIuNCA0LjJsLTQuNSAxLjFjLTMuNC45LTIuNSA0LjQtMi4zIDcuNC4xIDIuOC0yLjMgMy42LTYuNSA2LjF6TTIzMC4xIDM2LjRjMy40LjkgMi41IDQuNCAyLjMgNy40LS4yIDIuNyAyLjEgMy41IDYuNCA2IDcuOSAxNS45IDE1LjMgMzAuNSAyMi4yIDQ0IC43IDEuMyAyLjMgMS41IDMuMy41IDExLjItMTIgMjQuNi0yNi4yIDQwLjUtNDIuNiAxLjMtMS40IDEuNC0zLjUuMS00LjktOC04LjItMTYuNS0xNi45LTI1LjYtMjYuMS0xLTQuNy0xLTcuMy0zLjYtOC0zLS44LTYuNi0xLTYuMy00LjYuMy0zLjMgMS40LTguMS0yLjgtOC4yLTQuNS0uMS0xMy4yIDEuMS0yNS42IDEwLTEyLjMgOC45LTE2LjQgMTYuOC0xNy43IDIxLjEtMS40IDQuMiAzLjYgNC42IDYuOCA1LjR6TTYyMCA0MDYuN0w0NzEuMiAxOTguOGMtMTMuMi0xOC41LTI2LjYtMjMuNC01Ni40LTM5LjEtMTEuMi01LjktMTQuMi0xMC45LTMwLjUtMjguOS0xLTEuMS0yLjktLjktMy42LjUtNDYuMyA4OC44LTQ3LjEgODIuOC00OSA5NC44LTEuNyAxMC43LTEuMyAyMCAuMyAyOS44IDEuOSAxMiA2LjYgMjMuNSAxMy43IDMzLjRsMTQ4LjkgMjA3LjljNy42IDEwLjYgMjAuMiAxNi4yIDMzLjEgMTQuNyA0MC4zLTQuOSA3OC0zMiA5NS43LTY4LjYgNS40LTExLjkgNC4zLTI1LjktMy40LTM2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVwcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDMuMiAzMDNjLTUuMiAzLjYtMzIuNiAxMy4xLTMyLjYtMTlWMTgwSDM3Ljl2MTAyLjZjMCA3NC45IDgwLjIgNTEuMSA5Ny45IDM5VjE4MGgtMzIuNnpNNCA3NC44MnYyMjAuOWMwIDEwMy43IDc0LjkgMTM1LjIgMTg3LjcgMTg0LjEgMTEyLjQtNDguOSAxODcuNy04MC4yIDE4Ny43LTE4NC4xVjc0LjgyYy0xMTYuMy02MS42LTI4MS44LTQ5LjYtMzc1LjQgMHptMzU4LjEgMjIwLjljMCA4Ni42LTUzLjIgMTEzLjYtMTcwLjQgMTY1LjMtMTE3LjUtNTEuOC0xNzAuNS03OC43LTE3MC41LTE2NS4zdi0xMjYuNGMxMDIuMy05My44IDIzMS42LTEwMCAzNDAuOS04OS44em0tMjA5LjYtMTA3LjR2MjEyLjhoMzIuN3YtNjguN2MyNC40IDcuMyA3MS43LTIuNiA3MS43LTc4LjUgMC05Ny40LTgwLjctODAuOTItMTA0LjQtNjUuNnptMzIuNyAxMTcuM3YtMTAwLjNjOC40LTQuMiAzOC40LTEyLjcgMzguNCA0OS4zIDAgNjcuOS0zNi40IDUxLjgtMzguNCA1MXptNzkuMS04Ni40Yy4xIDQ3LjMgNTEuNiA0Mi41IDUyLjIgNzAuNC42IDIzLjUtMzAuNCAyMy01MC44IDQuOXYzMC4xYzM2LjIgMjEuNSA4MS45IDguMSA4My4yLTMzLjUgMS43LTUxLjUtNTQuMS00Ni42LTUzLjQtNzMuMi42LTIwLjMgMzAuNi0yMC41IDQ4LjUtMi4ydi0yOC40Yy0yOC41LTIyLTc5LjktOS4yLTc5LjcgMzEuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MS41IDI1NmMwIDMuMS0xLjcgNi4xLTQuNSA3LjVMNTQ3LjkgMzE3Yy0xLjQuOC0yLjggMS40LTQuNSAxLjQtMS40IDAtMy4xLS4zLTQuNS0xLjEtMi44LTEuNy00LjUtNC41LTQuNS03Ljh2LTM1LjZIMjk1LjdjMjUuMyAzOS42IDQwLjUgMTA2LjkgNjkuNiAxMDYuOUgzOTJWMzU0YzAtNSAzLjktOC45IDguOS04LjlINDkwYzUgMCA4LjkgMy45IDguOSA4Ljl2ODkuMWMwIDUtMy45IDguOS04LjkgOC45aC04OS4xYy01IDAtOC45LTMuOS04LjktOC45di0yNi43aC0yNi43Yy03NS40IDAtODEuMS0xNDIuNS0xMjQuNy0xNDIuNUgxNDAuM2MtOC4xIDMwLjYtMzUuOSA1My41LTY5IDUzLjVDMzIgMzI3LjMgMCAyOTUuMyAwIDI1NnMzMi03MS4zIDcxLjMtNzEuM2MzMy4xIDAgNjEgMjIuOCA2OSA1My41IDM5LjEgMCA0My45IDkuNSA3NC42LTYwLjRDMjU1IDg4LjcgMjczIDk1LjcgMzIzLjggOTUuN2M3LjUtMjAuOSAyNy0zNS42IDUwLjQtMzUuNiAyOS41IDAgNTMuNSAyMy45IDUzLjUgNTMuNXMtMjMuOSA1My41LTUzLjUgNTMuNWMtMjMuNCAwLTQyLjktMTQuOC01MC40LTM1LjZIMjk0Yy0yOS4xIDAtNDQuMyA2Ny40LTY5LjYgMTA2LjloMzEwLjF2LTM1LjZjMC0zLjMgMS43LTYuMSA0LjUtNy44IDIuOC0xLjcgNi40LTEuNCA4LjkuM2w4OS4xIDUzLjVjMi44IDEuMSA0LjUgNC4xIDQuNSA3LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzcHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYwLjMgMjQxLjdjMjUuOC00MS4zIDE1LjItNDguOC0xMS43LTQ4LjhoLTI3Yy0uMSAwLTEuNS0xLjQtMTAuOSA4LTExLjIgNS42LTM3LjkgNi4zLTM3LjkgOC43IDAgNC41IDcwLjMtMy4xIDg4LjEgMCA5LjUgMS41LTEuNSAyMC40LTQuNCAzMi0uNSA0LjUgMi40IDIuMyAzLjguMXptLTExMi4xIDIyLjZjNjQtMjEuMyA5Ny4zLTIzLjkgMTAyLTI2LjIgNC40LTIuOS00LjQtNi42LTI2LjItNS44LTUxLjcgMi4yLTEzNy42IDM3LjEtMTcyLjYgNTMuOWwtMzAuNy05My4zaDE5Ni42Yy0yLjctMjguMi0xNTIuOS0yMi42LTMzNy45LTIyLjZMMjcgNDE1LjhjMTk2LjQtOTcuMyAyNTguOS0xMzAuMyAzMjEuMi0xNTEuNXpNOTQuNyA5NmMyNTMuMyA1My43IDMzMCA2NS43IDMzMi4xIDg1LjIgMzYuNCAwIDQ1LjkgMCA1Mi40IDYuNiAyMS4xIDE5LjctMTQuNiA2Ny43LTE0LjYgNjcuNy00LjQgMi45LTQwNi40IDE2MC4yLTQwNi40IDE2MC4yaDQyMy4xTDU0OSA5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNzdW5uYWggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU2LjggMjg1LjFsNS43IDE0LjRoLTguMmMtMS4zLTMuMi0zLjEtNy43LTMuOC05LjUtMi41LTYuMy0xLjEtOC40IDAtMTAgMS45LTIuNyAzLjItNC40IDMuNi01LjIgMCAyLjIuOCA1LjcgMi43IDEwLjN6bTI5Ny4zIDE4LjhjLTIuMSAxMy44LTUuNyAyNy4xLTEwLjUgMzkuN2w0MyAyMy40LTQ0LjgtMTguOGMtNS4zIDEzLjItMTIgMjUuNi0xOS45IDM3LjJsMzQuMiAzMC4yLTM2LjgtMjYuNGMtOC40IDExLjgtMTggMjIuNi0yOC43IDMyLjNsMjQuOSAzNC43LTI4LjEtMzEuOGMtMTEgOS42LTIzLjEgMTgtMzYuMSAyNS4xbDE1LjcgMzcuMi0xOS4zLTM1LjNjLTEzLjEgNi44LTI3IDEyLjEtNDEuNiAxNS45bDYuNyAzOC40LTEwLjUtMzcuNGMtMTQuMyAzLjQtMjkuMiA1LjMtNDQuNSA1LjRMMjU2IDUxMmwtMS45LTM4LjRjLTE1LjMtLjEtMzAuMi0yLTQ0LjUtNS4zTDE5OSA1MDUuNmw2LjctMzguMmMtMTQuNi0zLjctMjguNi05LjEtNDEuNy0xNS44bC0xOS4yIDM1LjEgMTUuNi0zN2MtMTMtNy0yNS4yLTE1LjQtMzYuMi0yNS4xbC0yNy45IDMxLjYgMjQuNy0zNC40Yy0xMC43LTkuNy0yMC40LTIwLjUtMjguOC0zMi4zbC0zNi41IDI2LjIgMzMuOS0yOS45Yy03LjktMTEuNi0xNC42LTI0LjEtMjAtMzcuM2wtNDQuNCAxOC43TDY3LjggMzQ0Yy00LjgtMTIuNy04LjQtMjYuMS0xMC41LTM5LjlsLTUxIDkgNTAuMy0xNC4yYy0xLjEtOC41LTEuNy0xNy4xLTEuNy0yNS45IDAtNC43LjItOS40LjUtMTQuMUwwIDI1Nmw1Ni0yLjhjMS4zLTEzLjEgMy44LTI1LjggNy41LTM4LjFMNi40IDE5OWw1OC45IDEwLjRjNC0xMiA5LjEtMjMuNSAxNS4yLTM0LjRsLTU1LjEtMzAgNTguMyAyNC42QzkwIDE1OSA5Ny4yIDE0OS4yIDEwNS4zIDE0MEw1NS44IDk2LjRsNTMuOSAzOC43YzguMS04LjYgMTctMTYuNSAyNi42LTIzLjZsLTQwLTU1LjYgNDUuNiA1MS42YzkuNS02LjYgMTkuNy0xMi4zIDMwLjMtMTcuMmwtMjcuMy02NC45IDMzLjggNjIuMWMxMC41LTQuNCAyMS40LTcuOSAzMi43LTEwLjRMMTk5IDYuNGwxOS41IDY5LjJjMTEtMi4xIDIyLjMtMy4yIDMzLjgtMy40TDI1NiAwbDMuNiA3Mi4yYzExLjUuMiAyMi44IDEuNCAzMy44IDMuNUwzMTMgNi40bC0xMi40IDcwLjdjMTEuMyAyLjYgMjIuMiA2LjEgMzIuNiAxMC41bDMzLjktNjIuMi0yNy40IDY1LjFjMTAuNiA0LjkgMjAuNyAxMC43IDMwLjIgMTcuMmw0NS44LTUxLjgtNDAuMSA1NS45YzkuNSA3LjEgMTguNCAxNSAyNi41IDIzLjZsNTQuMi0zOC45LTQ5LjcgNDMuOWM4IDkuMSAxNS4yIDE4LjkgMjEuNSAyOS40bDU4LjctMjQuNy01NS41IDMwLjJjNi4xIDEwLjkgMTEuMSAyMi4zIDE1LjEgMzQuM2w1OS4zLTEwLjQtNTcuNSAxNi4yYzMuNyAxMi4yIDYuMiAyNC45IDcuNSAzNy45TDUxMiAyNTZsLTU2IDIuOGMuMyA0LjYuNSA5LjMuNSAxNC4xIDAgOC43LS42IDE3LjMtMS42IDI1LjhsNTAuNyAxNC4zLTUxLjUtOS4xem0tMjEuOC0zMWMwLTk3LjUtNzktMTc2LjUtMTc2LjUtMTc2LjVzLTE3Ni41IDc5LTE3Ni41IDE3Ni41IDc5IDE3Ni41IDE3Ni41IDE3Ni41IDE3Ni41LTc5IDE3Ni41LTE3Ni41em0tMjQgMGMwIDg0LjMtNjguMyAxNTIuNi0xNTIuNiAxNTIuNnMtMTUyLjYtNjguMy0xNTIuNi0xNTIuNiA2OC4zLTE1Mi42IDE1Mi42LTE1Mi42IDE1Mi42IDY4LjMgMTUyLjYgMTUyLjZ6TTE5NSAyNDFjMCAyLjEgMS4zIDMuOCAzLjYgNS4xIDMuMyAxLjkgNi4yIDQuNiA4LjIgOC4yIDIuOC01LjcgNC4zLTkuNSA0LjMtMTEuMiAwLTIuMi0xLjEtNC40LTMuMi03LTIuMS0yLjUtMy4yLTUuMi0zLjMtNy43LTYuNSA2LjgtOS42IDEwLjktOS42IDEyLjZ6bS00MC43LTE5YzAgMi4xIDEuMyAzLjggMy42IDUuMSAzLjUgMS45IDYuMiA0LjYgOC4yIDguMiAyLjgtNS43IDQuMy05LjUgNC4zLTExLjIgMC0yLjItMS4xLTQuNC0zLjItNy0yLjEtMi41LTMuMi01LjItMy4zLTcuNy02LjUgNi44LTkuNiAxMC45LTkuNiAxMi42em0tMTkgMGMwIDIuMSAxLjMgMy44IDMuNiA1LjEgMy4zIDEuOSA2LjIgNC42IDguMiA4LjIgMi44LTUuNyA0LjMtOS41IDQuMy0xMS4yIDAtMi4yLTEuMS00LjQtMy4yLTctMi4xLTIuNS0zLjItNS4yLTMuMy03LjctNi40IDYuOC05LjYgMTAuOS05LjYgMTIuNnptMjA0LjkgODcuOWMtOC40LTMtOC43LTYuOC04LjctMTUuNlYxODJjLTguMiAxMi41LTE0LjIgMTguNi0xOCAxOC42IDYuMyAxNC40IDkuNSAyMy45IDkuNSAyOC4zdjY0LjNjMCAyLjItMi4yIDYuNS00LjcgNi41aC0xOGMtMi44LTcuNS0xMC4yLTI2LjktMTUuMy00MC4zLTIgMi41LTcuMiA5LjItMTAuNyAxMy43IDIuNCAxLjYgNC4xIDMuNiA1LjIgNi4zIDIuNiA2LjcgNi40IDE2LjUgNy45IDIwLjJoLTkuMmMtMy45LTEwLjQtOS42LTI1LjQtMTEuOC0zMS4xLTIgMi41LTcuMiA5LjItMTAuNyAxMy43IDIuNCAxLjYgNC4xIDMuNiA1LjIgNi4zLjggMiAyLjggNy4zIDQuMyAxMC45SDI1NmMtMS41LTQuMS01LjYtMTQuNi04LjQtMjItMiAyLjUtNy4yIDkuMi0xMC43IDEzLjcgMi41IDEuNiA0LjMgMy42IDUuMiA2LjMuMi42LjUgMS40LjYgMS43SDIyNWMtNC42LTEzLjktMTEuNC0yNy43LTExLjQtMzQuMSAwLTIuMi4zLTUuMSAxLjEtOC4yLTguOCAxMC44LTE0IDE1LjktMTQgMjUgMCA3LjUgMTAuNCAyOC4zIDEwLjQgMzMuMyAwIDEuNy0uNSAzLjMtMS40IDQuOS05LjYtMTIuNy0xNS41LTIwLjctMTguOC0yMC43aC0xMmwtMTEuMi0yOGMtMy44LTkuNi01LjctMTYtNS43LTE4LjggMC0zLjguNS03LjcgMS43LTEyLjItMSAxLjMtMy43IDQuNy01LjUgNy4xLS44LTIuMS0zLjEtNy43LTQuNi0xMS41LTIuMSAyLjUtNy41IDkuMS0xMS4yIDEzLjYuOSAyLjMgMy4zIDguMSA0LjkgMTIuMi0yLjUgMy4zLTkuMSAxMS44LTEzLjYgMTcuNy00IDUuMy01LjggMTMuMy0yLjcgMjEuOCAyLjUgNi43IDIgNy45LTEuNyAxNC4xSDE5MWM1LjUgMCAxNC4zIDE0IDE1LjUgMjIgMTMuMi0xNiAxNS40LTE5LjYgMTYuOC0yMS42aDEwN2MzLjkgMCA3LjItMS45IDkuOS01Ljh6bTIwLjEtMjYuNlYxODEuN2MtOSAxMi41LTE1LjkgMTguNi0yMC43IDE4LjYgNy4xIDE0LjQgMTAuNyAyMy45IDEwLjcgMjguM3Y2Ni4zYzAgMTcuNSA4LjYgMjAuNCAyNCAyMC40IDguMSAwIDEyLjUtLjggMTMuNy0yLjctNC4zLTEuNi03LjYtMi41LTkuOS0zLjMtOC4xLTMuMi0xNy44LTcuNC0xNy44LTI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWYWFkaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjUgMTQwLjdjMS41LTE3LjYgNC45LTUyLjcgNDkuOC01Mi43aDk4LjZjMjAuNyAwIDMyLjEtNy44IDMyLjEtMjEuNlY1NC4xYzAtMTIuMiA5LjMtMjIuMSAyMS41LTIyLjFTNDQ4IDQxLjkgNDQ4IDU0LjF2MzYuNWMwIDQyLjktMjEuNSA2Mi02Ni44IDYySDI4MC43Yy0zMC4xIDAtMzMgMTQuNy0zMyAyNy4xIDAgMS4zLS4xIDIuNS0uMiAzLjctLjcgMTIuMy0xMC45IDIyLjItMjMuNCAyMi4ycy0yMi43LTkuOC0yMy40LTIyLjJjLS4xLTEuMi0uMi0yLjQtLjItMy43IDAtMTIuMy0zLTI3LjEtMzMtMjcuMUg2Ni44Yy00NS4zIDAtNjYuOC0xOS4xLTY2LjgtNjJWNTQuMUMwIDQxLjkgOS40IDMyIDIxLjYgMzJzMjEuNSA5LjkgMjEuNSAyMi4xdjEyLjNDNDMuMSA4MC4yIDU0LjUgODggNzUuMiA4OGg5OC42YzQ0LjggMCA0OC4zIDM1LjEgNDkuOCA1Mi43aC45ek0yMjQgNDU2YzExLjUgMCAyMS40LTcgMjUuNy0xNi4zIDEuMS0xLjggOTcuMS0xNjkuNiA5OC4yLTE3MS40IDExLjktMTkuNi0zLjItNDQuMy0yNy4yLTQ0LjMtMTMuOSAwLTIzLjMgNi40LTI5LjggMjAuM0wyMjQgMzYybC02Ni45LTExNy43Yy02LjQtMTMuOS0xNS45LTIwLjMtMjkuOC0yMC4zLTI0IDAtMzkuMSAyNC42LTI3LjIgNDQuMyAxLjEgMS45IDk3LjEgMTY5LjYgOTguMiAxNzEuNCA0LjMgOS4zIDE0LjIgMTYuMyAyNS43IDE2LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpYWNvaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyaC02NGwtODAuNyAxOTJoLTk0LjVMNjQgMzJIMGw0OCAxMTJIMHY0OGg2OC41bDEzLjggMzJIMHY0OGgxMDIuOEwxOTIgNDgwbDg5LjItMjA4SDM4NHYtNDhoLTgyLjNsMTMuOC0zMkgzODR2LTQ4aC00OGw0OC0xMTJ6TTE5MiAzMzZsLTI3LTY0aDU0bC0yNyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhZGVvU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI4MC43IDM4MS4yYy00Mi40IDQ2LjItMTIwIDQ2LjYtMTYyLjQgMC02OC03My42LTE5LjgtMTk2LjEgODEuMi0xOTYuMSAxMy4zIDAgMjYuNiAyLjEgMzkuMSA2LjctNC4zIDguNC03LjMgMTcuNi04LjQgMjcuMS05LjctNC4xLTIwLjItNi0zMC43LTYtNDguOCAwLTg0LjYgNDEuNy04NC42IDg4LjkgMCA0MyAyOC41IDc4LjcgNjkuNSA4NS45IDYxLjUtMjQgNzIuOS0xMTcuNiA3Mi45LTE3NSAwLTcuMyAwLTE0LjgtLjYtMjIuMS0xMS4yLTMyLjktMjYuNi02NC42LTQ0LjItOTQuNSAyNy4xIDE4LjMgNDEuOSA2Mi41IDQ0LjIgOTQuMXYuNGM3LjcgMjIuNSAxMS44IDQ2LjIgMTEuOCA3MCAwIDU0LjEtMjEuOSA5OS02OC4zIDEyOC4ybC0yLjQuMmM1MCAxIDg2LjItMzguNiA4Ni4yLTg3LjIgMC0xMi4yLTIuMS0yNC4zLTYuOS0zNS43IDkuNS0xLjkgMTguNS01LjYgMjYuNC0xMC41IDE1LjMgMzYuNiAxMi42IDg3LjMtMjIuOCAxMjUuNnpNMzA5IDIzMy43Yy0xMy4zIDAtMjUuMS03LjEtMzQuNC0xNi4xIDIxLjktMTIgNDkuNi0zMC43IDYyLjMtNTMgMS41LTMgNC4xLTguNiA0LjUtMTItMTIuNSAyNy45LTQ0LjIgNDkuOC03My45IDU2LjctNC43LTcuMy03LjUtMTUuNS03LjUtMjQuMyAwLTEwLjMgNS4yLTI0LjEgMTIuOS0zMS42IDIxLjYtMjAuNSA1My04LjUgNzIuNC01MCAzMi41IDQ2LjIgMTMuMSAxMzAuMy0zNi4zIDEzMC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc2LjIgMTUwLjV2LjdDMjU4LjMgOTguNiAyMzMuNiA0Ny44IDIwNS40IDBjNDMuMyAyOS4yIDY3IDEwMCA3MC44IDE1MC41em0zMi43IDEyMS43YzcuNiAxOC4yIDExIDM3LjUgMTEgNTcgMCA3Ny43LTU3LjggMTQxLTEzNy44IDEzOS40bDMuOC0uM2M3NC4yLTQ2LjcgMTA5LjMtMTE4LjYgMTA5LjMtMjA1LjEgMC0zOC4xLTYuNS03NS45LTE4LjktMTEyIDEgMTEuNyAxIDIzLjcgMSAzNS40IDAgOTEuOC0xOC4xIDI0MS42LTExNi42IDI4MEM5NSA0NTUuMiA0OS40IDM5OCA0OS40IDMyOS4yYzAtNzUuNiA1Ny40LTE0Mi4zIDEzNS40LTE0Mi4zIDE2LjggMCAzMy43IDMuMSA0OS4xIDkuNiAxLjctMTUuMSA2LjUtMjkuOSAxMy40LTQzLjMtMTkuOS03LjItNDEuMi0xMC43LTYyLjUtMTAuNy0xNjEuNSAwLTIzOC43IDE5NS45LTEyOS45IDMxMy43IDY3LjkgNzQuNiAxOTIgNzMuOSAyNTkuOCAwIDU2LjYtNjEuMyA2MC45LTE0Mi40IDM2LjQtMjAxLTEyLjcgOC0yNy4xIDEzLjktNDIuMiAxN3pNNDE4LjEgMTEuN2MtMzEgNjYuNS04MS4zIDQ3LjItMTE1LjggODAuMS0xMi40IDEyLTIwLjYgMzQtMjAuNiA1MC41IDAgMTQuMSA0LjUgMjcuMSAxMiAzOC44IDQ3LjQtMTEgOTguMy00NiAxMTguMi05MC43LS43IDUuNS00LjggMTQuNC03LjIgMTkuMi0yMC4zIDM1LjctNjQuNiA2NS42LTk5LjcgODQuOSAxNC44IDE0LjQgMzMuNyAyNS44IDU1IDI1LjggNzkgMCAxMTAuMS0xMzQuNiA1OC4xLTIwOC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWJlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDQgNDkuOUM0MzEuMyAzOC4yIDM3OS45LjkgMjY1LjMuNGMwIDAtMTM1LjEtOC4xLTIwMC45IDUyLjNDMjcuOCA4OS4zIDE0LjkgMTQzIDEzLjUgMjA5LjVjLTEuNCA2Ni41LTMuMSAxOTEuMSAxMTcgMjI0LjloLjFsLS4xIDUxLjZzLS44IDIwLjkgMTMgMjUuMWMxNi42IDUuMiAyNi40LTEwLjcgNDIuMy0yNy44IDguNy05LjQgMjAuNy0yMy4yIDI5LjgtMzMuNyA4Mi4yIDYuOSAxNDUuMy04LjkgMTUyLjUtMTEuMiAxNi42LTUuNCAxMTAuNS0xNy40IDEyNS43LTE0MiAxNS44LTEyOC42LTcuNi0yMDkuOC00OS44LTI0Ni41ek00NTcuOSAyODdjLTEyLjkgMTA0LTg5IDExMC42LTEwMyAxMTUuMS02IDEuOS02MS41IDE1LjctMTMxLjIgMTEuMiAwIDAtNTIgNjIuNy02OC4yIDc5LTUuMyA1LjMtMTEuMSA0LjgtMTEtNS43IDAtNi45LjQtODUuNy40LTg1LjctLjEgMC0uMSAwIDAgMC0xMDEuOC0yOC4yLTk1LjgtMTM0LjMtOTQuNy0xODkuOCAxLjEtNTUuNSAxMS42LTEwMSA0Mi42LTEzMS42IDU1LjctNTAuNSAxNzAuNC00MyAxNzAuNC00MyA5Ni45LjQgMTQzLjMgMjkuNiAxNTQuMSAzOS40IDM1LjcgMzAuNiA1My45IDEwMy44IDQwLjYgMjExLjF6bS0xMzktODAuOGMuNCA4LjYtMTIuNSA5LjItMTIuOS42LTEuMS0yMi0xMS40LTMyLjctMzIuNi0zMy45LTguNi0uNS03LjgtMTMuNC43LTEyLjkgMjcuOSAxLjUgNDMuNCAxNy41IDQ0LjggNDYuMnptMjAuMyAxMS4zYzEtNDIuNC0yNS41LTc1LjYtNzUuOC03OS4zLTguNS0uNi03LjYtMTMuNS45LTEyLjkgNTggNC4yIDg4LjkgNDQuMSA4Ny44IDkyLjUtLjEgOC42LTEzLjEgOC4yLTEyLjktLjN6bTQ3IDEzLjRjLjEgOC42LTEyLjkgOC43LTEyLjkuMS0uNi04MS41LTU0LjktMTI1LjktMTIwLjgtMTI2LjQtOC41LS4xLTguNS0xMi45IDAtMTIuOSA3My43LjUgMTMzIDUxLjQgMTMzLjcgMTM5LjJ6TTM3NC45IDMyOXYuMmMtMTAuOCAxOS0zMSA0MC01MS44IDMzLjNsLS4yLS4zYy0yMS4xLTUuOS03MC44LTMxLjUtMTAyLjItNTYuNS0xNi4yLTEyLjgtMzEtMjcuOS00Mi40LTQyLjQtMTAuMy0xMi45LTIwLjctMjguMi0zMC44LTQ2LjYtMjEuMy0zOC41LTI2LTU1LjctMjYtNTUuNy02LjctMjAuOCAxNC4yLTQxIDMzLjMtNTEuOGguMmM5LjItNC44IDE4LTMuMiAyMy45IDMuOSAwIDAgMTIuNCAxNC44IDE3LjcgMjIuMSA1IDYuOCAxMS43IDE3LjcgMTUuMiAyMy44IDYuMSAxMC45IDIuMyAyMi0zLjcgMjYuNmwtMTIgOS42Yy02LjEgNC45LTUuMyAxNC01LjMgMTRzMTcuOCA2Ny4zIDg0LjMgODQuM2MwIDAgOS4xLjggMTQtNS4zbDkuNi0xMmM0LjYtNiAxNS43LTkuOCAyNi42LTMuNyAxNC43IDguMyAzMy40IDIxLjIgNDUuOCAzMi45IDcgNS43IDguNiAxNC40IDMuOCAyMy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaW1lb1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTYuMiAxNDkuNmMtMS40IDMxLjEtMjMuMiA3My44LTY1LjMgMTI3LjktNDMuNSA1Ni41LTgwLjMgODQuOC0xMTAuNCA4NC44LTE4LjcgMC0zNC40LTE3LjItNDcuMy01MS42LTI1LjItOTIuMy0zNS45LTE0Ni40LTU2LjctMTQ2LjQtMi40IDAtMTAuOCA1LTI1LjEgMTUuMUw2NCAxOTJjMzYuOS0zMi40IDcyLjEtNjguNCA5NC4xLTcwLjQgMjQuOS0yLjQgNDAuMiAxNC42IDQ2IDUxLjEgMjAuNSAxMjkuNiAyOS42IDE0OS4yIDY2LjggOTAuNSAxMy40LTIxLjIgMjAuNi0zNy4yIDIxLjUtNDguMyAzLjQtMzIuOC0yNS42LTMwLjYtNDUuMi0yMi4yIDE1LjctNTEuNSA0NS44LTc2LjUgOTAuMS03NS4xIDMyLjkgMSA0OC40IDIyLjQgNDYuNSA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmltZW9WIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ny44IDE1My42Yy0yIDQzLjYtMzIuNCAxMDMuMy05MS40IDE3OS4xLTYwLjkgNzkuMi0xMTIuNCAxMTguOC0xNTQuNiAxMTguOC0yNi4xIDAtNDguMi0yNC4xLTY2LjMtNzIuM0MxMDAuMyAyNTAgODUuMyAxNzQuMyA1Ni4yIDE3NC4zYy0zLjQgMC0xNS4xIDcuMS0zNS4yIDIxLjFMMCAxNjguMmM1MS42LTQ1LjMgMTAwLjktOTUuNyAxMzEuOC05OC41IDM0LjktMy40IDU2LjMgMjAuNSA2NC40IDcxLjUgMjguNyAxODEuNSA0MS40IDIwOC45IDkzLjYgMTI2LjcgMTguNy0yOS42IDI4LjgtNTIuMSAzMC4yLTY3LjYgNC44LTQ1LjktMzUuOC00Mi44LTYzLjMtMzEgMjItNzIuMSA2NC4xLTEwNy4xIDEyNi4yLTEwNS4xIDQ1LjggMS4yIDY3LjUgMzEuMSA2NC45IDg5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbWVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMy4yIDMySDQ0LjhDMjAuMSAzMiAwIDUyLjEgMCA3Ni44djM1OC40QzAgNDU5LjkgMjAuMSA0ODAgNDQuOCA0ODBoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0LjhWNzYuOGMwLTI0LjctMjAuMS00NC44LTQ0LjgtNDQuOHpNMzc3IDE4MC44Yy0xLjQgMzEuNS0yMy40IDc0LjctNjYgMTI5LjQtNDQgNTcuMi04MS4zIDg1LjgtMTExLjcgODUuOC0xOC45IDAtMzQuOC0xNy40LTQ3LjktNTIuMy0yNS41LTkzLjMtMzYuNC0xNDgtNTcuNC0xNDgtMi40IDAtMTAuOSA1LjEtMjUuNCAxNS4ybC0xNS4yLTE5LjZjMzcuMy0zMi44IDcyLjktNjkuMiA5NS4yLTcxLjIgMjUuMi0yLjQgNDAuNyAxNC44IDQ2LjUgNTEuNyAyMC43IDEzMS4yIDI5LjkgMTUxIDY3LjYgOTEuNiAxMy41LTIxLjQgMjAuOC0zNy43IDIxLjgtNDguOSAzLjUtMzMuMi0yNS45LTMwLjktNDUuOC0yMi40IDE1LjktNTIuMSA0Ni4zLTc3LjQgOTEuMi03NiAzMy4zLjkgNDkgMjIuNSA0Ny4xIDY0Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDI1NC43djUyLjFjLTE4LjQgNC4yLTM2LjkgNi4xLTUyLjEgNi4xLTM2LjkgNzcuNC0xMDMgMTQzLjgtMTI1LjEgMTU2LjItMTQgNy45LTI3LjEgOC40LTQyLjctLjhDMTM3IDQ1MiAzNC4yIDM2Ny43IDAgMTAyLjdoNzQuNUM5My4yIDI2MS44IDEzOSAzNDMuNCAxODkuMyA0MDQuNWMyNy45LTI3LjkgNTQuOC02NS4xIDc1LjYtMTA2LjktNDkuOC0yNS4zLTgwLjEtODAuOS04MC4xLTE0NS42IDAtNjUuNiAzNy43LTExNS4xIDEwMi4yLTExNS4xIDExNC45IDAgMTA2LjIgMTI3LjkgODEuNiAxODEuNSAwIDAtNDYuNCA5LjItNjMuNS0yMC41IDMuNC0xMS4zIDguMi0zMC44IDguMi00OC41IDAtMzEuMy0xMS4zLTQ2LjYtMjguNC00Ni42LTE4LjIgMC0zMC44IDE3LjEtMzAuOCA1MCAuMSA3OS4yIDU5LjQgMTE4LjcgMTI5LjkgMTAxLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NSAxMTcuN2MzLjctMTIuNSAwLTIxLjctMTcuOC0yMS43aC01OC45Yy0xNSAwLTIxLjkgNy45LTI1LjYgMTYuNyAwIDAtMzAgNzMuMS03Mi40IDEyMC41LTEzLjcgMTMuNy0yMCAxOC4xLTI3LjUgMTguMS0zLjcgMC05LjQtNC40LTkuNC0xNi45VjExNy43YzAtMTUtNC4yLTIxLjctMTYuNi0yMS43aC05Mi42Yy05LjQgMC0xNSA3LTE1IDEzLjUgMCAxNC4yIDIxLjIgMTcuNSAyMy40IDU3LjV2ODYuOGMwIDE5LTMuNCAyMi41LTEwLjkgMjIuNS0yMCAwLTY4LjYtNzMuNC05Ny40LTE1Ny40LTUuOC0xNi4zLTExLjUtMjIuOS0yNi42LTIyLjlIMzguOGMtMTYuOCAwLTIwLjIgNy45LTIwLjIgMTYuNyAwIDE1LjYgMjAgOTMuMSA5My4xIDE5NS41QzE2MC40IDM3OC4xIDIyOSA0MTYgMjkxLjQgNDE2YzM3LjUgMCA0Mi4xLTguNCA0Mi4xLTIyLjkgMC02Ni44LTMuNC03My4xIDE1LjQtNzMuMSA4LjcgMCAyMy43IDQuNCA1OC43IDM4LjEgNDAgNDAgNDYuNiA1Ny45IDY5IDU3LjloNTguOWMxNi44IDAgMjUuMy04LjQgMjAuNC0yNS0xMS4yLTM0LjktODYuOS0xMDYuNy05MC4zLTExMS41LTguNy0xMS4yLTYuMi0xNi4yIDAtMjYuMi4xLS4xIDcyLTEwMS4zIDc5LjQtMTM1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZudiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQuOSAzNTJjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40TDIuNiAyMTAuMVMtNy44IDE5MiAxMyAxOTJoMzIuOGMxMC40IDAgMTMuMiA4LjcgMTguOCAxOC4xbDM2LjcgNzQuNXM1LjIgMTMuMSAyMS4xIDEzLjEgMjEuMS0xMy4xIDIxLjEtMTMuMWwzNi43LTc0LjVjNS42LTkuNSA4LjQtMTguMSAxOC44LTE4LjFoMzIuOGMyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMWwtNTUuOCAxMTEuNVMxNzQuMiAzNTIgMTQwIDM1MmgtMzUuMXptMzk1IDBjLTM0LjEgMC00Ni40LTMwLjQtNDYuNC0zMC40bC01NS45LTExMS41UzM4Ny4yIDE5MiA0MDggMTkyaDMyLjhjMTAuNCAwIDEzLjIgOC43IDE4LjggMTguMWwzNi43IDc0LjVzNS4yIDEzLjEgMjEuMSAxMy4xIDIxLjEtMTMuMSAyMS4xLTEzLjFsMzYuOC03NC41YzUuNi05LjUgOC40LTE4LjEgMTguOC0xOC4xSDYyN2MyMC44IDAgMTAuNCAxOC4xIDEwLjQgMTguMWwtNTUuOSAxMTEuNVM1NjkuMyAzNTIgNTM1LjEgMzUyaC0zNS4yek0zMzcuNiAxOTJjMzQuMSAwIDQ2LjQgMzAuNCA0Ni40IDMwLjRsNTUuOSAxMTEuNXMxMC40IDE4LjEtMTAuNCAxOC4xaC0zMi44Yy0xMC40IDAtMTMuMi04LjctMTguOC0xOC4xbC0zNi43LTc0LjVzLTUuMi0xMy4xLTIxLjEtMTMuMWMtMTUuOSAwLTIxLjEgMTMuMS0yMS4xIDEzLjFsLTM2LjcgNzQuNWMtNS42IDkuNC04LjQgMTguMS0xOC44IDE4LjFoLTMyLjljLTIwLjggMC0xMC40LTE4LjEtMTAuNC0xOC4xbDU1LjktMTExLjVzMTIuMi0zMC40IDQ2LjQtMzAuNGgzNS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWdWVqcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTYuOSA2NC4zSDI4MGwtNTYgODguNi00OC04OC42SDBMMjI0IDQ0OCA0NDggNjQuM2gtOTEuMXptLTMwMS4yIDMyaDUzLjhMMjI0IDI5NC41IDMzOC40IDk2LjNoNTMuOEwyMjQgMzg0LjUgNTUuNyA5Ni4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXRjaG1hbk1vbml0b3JpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2LDE2QzEyMy40NTIsMTYsMTYsMTIzLjQ1MiwxNiwyNTZTMTIzLjQ1Miw0OTYsMjU2LDQ5Niw0OTYsMzg4LjU0OCw0OTYsMjU2LDM4OC41NDgsMTYsMjU2LDE2Wk0xMjEuNjksNDI5LjEyMkM3MC4wNTYsMzg4Ljk3MiwzNi43NDEsMzI2LjMyMiwzNi43NDEsMjU2YTIxOC41MTksMjE4LjUxOSwwLDAsMSw5LjU4Ny02NC4xMjJsMTAyLjktMTcuODk1LS4xMjEsMTAuOTY3LTEzLjk0MywyLjAxM3MtLjE0NCwxMi41LS4xNDQsMTkuNTQ5YTEyLjc3OCwxMi43NzgsMCwwLDAsNC44ODcsMTAuMzQ5bDkuNDY4LDcuNFptMTA1LjY5Mi0yODMuMjcsOC40OC03LjYxOHM2LjkzNC01LjM4LS4xNDMtOS4zNDRjLTcuMTg4LTQuMDI0LTM5LjUzLTM0LjUtMzkuNTMtMzQuNS01LjM0OC01LjQ3Ny04LjI1Ny03LjM0Ny0xNS40NiwwLDAsMC0zMi4zNDIsMzAuNDc0LTM5LjUyOSwzNC41LTcuMDc4LDMuOTY0LS4xNDQsOS4zNDQtLjE0NCw5LjM0NGw4LjQ4MSw3LjYxOC0uMDQ4LDQuMzY5TDc1Ljk4MiwxMzEuMDQ1YzM5LjY0NC01Ni45MzgsMTA1LjUzMi05NC4zLDE4MC4wMTgtOTQuM0EyMTguNzU0LDIxOC43NTQsMCwwLDEsNDIwLjkzNCwxMTEuNzdsLTE5My41MTIsMzcuN1ptMzQuMDYzLDMyOS4yNjktMzMuOS0yNTAuODU3LDkuNDY3LTcuNGExMi43NzgsMTIuNzc4LDAsMCwwLDQuODg4LTEwLjM0OWMwLTcuMDQ0LS4xNDQtMTkuNTQ5LS4xNDQtMTkuNTQ5bC0xMy45NDMtMi4wMTMtLjExNi0xMC40NzQsMjQxLjcxMSwzMS4zOTFBMjE4Ljg3MiwyMTguODcyLDAsMCwxLDQ3NS4yNTksMjU2QzQ3NS4yNTksMzc1LjA3NCwzNzkuODMxLDQ3Mi4yMTIsMjYxLjQ0NSw0NzUuMTIxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXYXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMi4xNyAyMDEuNjdDNTE2LjY5IDI4Ny41MyA0NzEuMjMgMzY5LjU5IDM4OSA0MDkuOGMxMyAzNC4xLTEyLjQgNzAuMi00OC4zMiA3MC4yYTUxLjY4IDUxLjY4IDAgMCAxLTUxLjU3LTQ5Yy02LjQ0LjE5LTY0LjIgMC03Ni4zMy0uNjRBNTEuNjkgNTEuNjkgMCAwIDEgMTU5IDQ3OS45MmMtMzMuODYtMS4zNi01Ny45NS0zNC44NC00Ny02Ny45Mi0zNy4yMS0xMy4xMS03Mi41NC0zNC44Ny05OS42Mi03MC44LTEzLTE3LjI4LS40OC00MS44IDIwLjg0LTQxLjggNDYuMzEgMCAzMi4yMi01NC4xNyA0My4xNS0xMTAuMjZDOTQuOCA5NS4yIDE5My4xMiAzMiAyODguMDkgMzJjMTAyLjQ4IDAgMTk3LjE1IDcwLjY3IDIxNC4wOCAxNjkuNjd6TTM3My41MSAzODguMjhjNDItMTkuMTggODEuMzMtNTYuNzEgOTYuMjktMTAyLjE0IDQwLjQ4LTEyMy4wOS02NC4xNS0yMjgtMTgxLjcxLTIyOC04My40NSAwLTE3MC4zMiA1NS40Mi0xODYuMDcgMTM2LTkuNTMgNDguOTEgNSAxMzEuMzUtNjguNzUgMTMxLjM1QzU4LjIxIDM1OC42IDkxLjYgMzc4LjExIDEyNyAzODkuNTRjMjQuNjYtMjEuOCA2My44Ny0xNS40NyA3OS44MyAxNC4zNCAxNC4yMiAxIDc5LjE5IDEuMTggODcuOS44MmE1MS42OSA1MS42OSAwIDAgMSA3OC43OC0xNi40MnpNMjA1LjEyIDE4Ny4xM2MwLTM0Ljc0IDUwLjg0LTM0Ljc1IDUwLjg0IDBzLTUwLjg0IDM0Ljc0LTUwLjg0IDB6bTExNi41NyAwYzAtMzQuNzQgNTAuODYtMzQuNzUgNTAuODYgMHMtNTAuODYgMzQuNzUtNTAuODYgMHptLTEyMi42MSA3MC42OWMtMy40NC0xNi45NCAyMi4xOC0yMi4xOCAyNS42Mi01LjIxbC4wNi4yOGM0LjE0IDIxLjQyIDI5Ljg1IDQ0IDY0LjEyIDQzLjA3IDM1LjY4LS45NCA1OS4yNS0yMi4yMSA2NC4xMS00Mi43NyA0LjQ2LTE2LjA1IDI4LjYtMTAuMzYgMjUuNDcgNi01LjIzIDIyLjE4LTMxLjIxIDYyLTkxLjQ2IDYyLjktNDIuNTUgMC04MC44OC0yNy44NC04Ny45LTY0LjI1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXZWVibHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI1LjA5IDY1LjgzYy0zOS44OCAwLTczLjI4IDI1LjczLTgzLjY2IDY0LjMzLTE4LjE2LTU4LjA2LTY1LjUtNjQuMzMtODQuOTUtNjQuMzMtMTkuNzggMC02Ni44IDYuMjgtODUuMjggNjQuMzMtMTAuMzgtMzguNi00My40NS02NC4zMy04My42Ni02NC4zM0MzOC41OSA2NS44MyAwIDk5LjcyIDAgMTQzLjAzYzAgMjguOTYgNC4xOCAzMy4yNyA3Ny4xNyAyMzMuNDggMjIuMzcgNjAuNTcgNjcuNzcgNjkuMzUgOTIuNzQgNjkuMzUgMzkuMjMgMCA3MC4wNC0xOS40NiA4NS45My01My45OCAxNS44OSAzNC44MyA0Ni42OSA1NC4yOSA4NS45MyA1NC4yOSAyNC45NyAwIDcwLjM2LTkuMSA5Mi43NC02OS42NyA3Ni41NS0yMDguNjUgNzcuNS0yMDUuNTggNzcuNS0yMjcuMi42My00OC4zMi0zNi4wMS04My40Ny04Ni45Mi04My40N3ptMjYuMzQgMTE0LjgxbC02NS41NyAxNzYuNDRjLTcuOTIgMjEuNDktMjEuMjIgMzcuMjItNDYuMjQgMzcuMjItMjMuNDQgMC0zNy4zOC0xMi40MS00NC4wMy0zMy45bC0zOS4yOC0xMTcuNDJoLS45NUwyMTYuMDggMzYwLjRjLTYuOTYgMjEuNS0yMC45IDMzLjYtNDQuMDIgMzMuNi0yNS4wMiAwLTM4LjMzLTE1Ljc0LTQ2LjI0LTM3LjIyTDYwLjg4IDE4MS41NWMtNS4zOC0xNC44My03LjkyLTIzLjkxLTcuOTItMzQuNSAwLTE2LjM0IDE1Ljg0LTI5LjM2IDM4LjMzLTI5LjM2IDE4LjY5IDAgMzEuOTkgMTEuOCAzNi4xMSAyOS4wNWw0NC4wMyAxMzkuODJoLjk1bDQ0LjY2LTEzNi43OWM2LjAyLTE5LjY3IDE2LjQ3LTMyLjA4IDM4Ljk2LTMyLjA4czMyLjk0IDEyLjExIDM4Ljk2IDMyLjA4bDQ0LjY2IDEzNi43OWguOTVsNDQuMDMtMTM5LjgyYzQuMTItMTcuMjUgMTcuNDItMjkuMDUgMzYuMTEtMjkuMDUgMjIuMTcgMCAzOC4zMyAxMy4zMiAzOC4zMyAzNS43MS0uMzIgNy44Ny00LjEyIDE2LjA0LTcuNjEgMjcuMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWJvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNyAxNzcuNmM3LjYtMjQtMTMuNC00Ni44LTM3LjQtNDEuNy0yMiA0LjgtMjguOC0yOC4xLTcuMS0zMi44IDUwLjEtMTAuOSA5Mi4zIDM3LjEgNzYuNSA4NC44LTYuOCAyMS4yLTM4LjggMTAuOC0zMi0xMC4zek0yMTQuOCA0NDYuN0MxMDguNSA0NDYuNyAwIDM5NS4zIDAgMzEwLjRjMC00NC4zIDI4LTk1LjQgNzYuMy0xNDMuN0MxNzYgNjcgMjc5LjUgNjUuOCAyNDkuOSAxNjFjLTQgMTMuMSAxMi4zIDUuNyAxMi4zIDYgNzkuNS0zMy42IDE0MC41LTE2LjggMTE0IDUxLjQtMy43IDkuNCAxLjEgMTAuOSA4LjMgMTMuMSAxMzUuNyA0Mi4zIDM0LjggMjE1LjItMTY5LjcgMjE1LjJ6bTE0My43LTE0Ni4zYy01LjQtNTUuNy03OC41LTk0LTE2My40LTg1LjctODQuOCA4LjYtMTQ4LjggNjAuMy0xNDMuNCAxMTZzNzguNSA5NCAxNjMuNCA4NS43Yzg0LjgtOC42IDE0OC44LTYwLjMgMTQzLjQtMTE2ek0zNDcuOSAzNS4xYy0yNS45IDUuNi0xNi44IDQzLjcgOC4zIDM4LjMgNzIuMy0xNS4yIDEzNC44IDUyLjggMTExLjcgMTI0LTcuNCAyNC4yIDI5LjEgMzcgMzcuNCAxMiAzMS45LTk5LjgtNTUuMS0xOTUuOS0xNTcuNC0xNzQuM3ptLTc4LjUgMzExYy0xNy4xIDM4LjgtNjYuOCA2MC0xMDkuMSA0Ni4zLTQwLjgtMTMuMS01OC01My40LTQwLjMtODkuNyAxNy43LTM1LjQgNjMuMS01NS40IDEwMy40LTQ1LjEgNDIgMTAuOCA2My4xIDUwLjIgNDYgODguNXptLTg2LjMtMzBjLTEyLjktNS40LTMwIC4zLTM4IDEyLjktOC4zIDEyLjktNC4zIDI4IDguNiAzNCAxMy4xIDYgMzAuOC4zIDM5LjEtMTIuOSA4LTEzLjEgMy43LTI4LjMtOS43LTM0em0zMi42LTEzLjRjLTUuMS0xLjctMTEuNC42LTE0LjMgNS40LTIuOSA1LjEtMS40IDEwLjYgMy43IDEyLjkgNS4xIDIgMTEuNy0uMyAxNC42LTUuNCAyLjgtNS4yIDEuMS0xMC45LTQtMTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2VpeGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NS4yIDE2Ny42YzYuNCAwIDEyLjYuMyAxOC44IDEuMUMzODcuNCA5MC4zIDMwMy4zIDMyIDIwNy43IDMyIDEwMC41IDMyIDEzIDEwNC44IDEzIDE5Ny40YzAgNTMuNCAyOS4zIDk3LjUgNzcuOSAxMzEuNmwtMTkuMyA1OC42IDY4LTM0LjFjMjQuNCA0LjggNDMuOCA5LjcgNjguMiA5LjcgNi4yIDAgMTIuMS0uMyAxOC4zLS44LTQtMTIuOS02LjItMjYuNi02LjItNDAuOC0uMS04NC45IDcyLjktMTU0IDE2NS4zLTE1NHptLTEwNC41LTUyLjljMTQuNSAwIDI0LjIgOS43IDI0LjIgMjQuNCAwIDE0LjUtOS43IDI0LjItMjQuMiAyNC4yLTE0LjggMC0yOS4zLTkuNy0yOS4zLTI0LjIuMS0xNC43IDE0LjYtMjQuNCAyOS4zLTI0LjR6bS0xMzYuNCA0OC42Yy0xNC41IDAtMjkuMy05LjctMjkuMy0yNC4yIDAtMTQuOCAxNC44LTI0LjQgMjkuMy0yNC40IDE0LjggMCAyNC40IDkuNyAyNC40IDI0LjQgMCAxNC42LTkuNiAyNC4yLTI0LjQgMjQuMnpNNTYzIDMxOS40YzAtNzcuOS03Ny45LTE0MS4zLTE2NS40LTE0MS4zLTkyLjcgMC0xNjUuNCA2My40LTE2NS40IDE0MS4zUzMwNSA0NjAuNyAzOTcuNiA0NjAuN2MxOS4zIDAgMzguOS01LjEgNTguNi05LjlsNTMuNCAyOS4zLTE0LjgtNDguNkM1MzQgNDAyLjEgNTYzIDM2My4yIDU2MyAzMTkuNHptLTIxOS4xLTI0LjVjLTkuNyAwLTE5LjMtOS43LTE5LjMtMTkuNiAwLTkuNyA5LjctMTkuMyAxOS4zLTE5LjMgMTQuOCAwIDI0LjQgOS43IDI0LjQgMTkuMyAwIDEwLTkuNyAxOS42LTI0LjQgMTkuNnptMTA3LjEgMGMtOS43IDAtMTkuMy05LjctMTkuMy0xOS42IDAtOS43IDkuNy0xOS4zIDE5LjMtMTkuMyAxNC41IDAgMjQuNCA5LjcgMjQuNCAxOS4zLjEgMTAtOS45IDE5LjYtMjQuNCAxOS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGF0c2FwcFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTIyLjhjLTcyLjcgMC0xMzEuOCA1OS4xLTEzMS45IDEzMS44IDAgMjQuOSA3IDQ5LjIgMjAuMiA3MC4xbDMuMSA1LTEzLjMgNDguNiA0OS45LTEzLjEgNC44IDIuOWMyMC4yIDEyIDQzLjQgMTguNCA2Ny4xIDE4LjRoLjFjNzIuNiAwIDEzMy4zLTU5LjEgMTMzLjMtMTMxLjggMC0zNS4yLTE1LjItNjguMy00MC4xLTkzLjItMjUtMjUtNTgtMzguNy05My4yLTM4Ljd6bTc3LjUgMTg4LjRjLTMuMyA5LjMtMTkuMSAxNy43LTI2LjcgMTguOC0xMi42IDEuOS0yMi40LjktNDcuNS05LjktMzkuNy0xNy4yLTY1LjctNTcuMi02Ny43LTU5LjgtMi0yLjYtMTYuMi0yMS41LTE2LjItNDFzMTAuMi0yOS4xIDEzLjktMzMuMWMzLjYtNCA3LjktNSAxMC42LTUgMi42IDAgNS4zIDAgNy42LjEgMi40LjEgNS43LS45IDguOSA2LjggMy4zIDcuOSAxMS4yIDI3LjQgMTIuMiAyOS40czEuNyA0LjMuMyA2LjljLTcuNiAxNS4yLTE1LjcgMTQuNi0xMS42IDIxLjYgMTUuMyAyNi4zIDMwLjYgMzUuNCA1My45IDQ3LjEgNCAyIDYuMyAxLjcgOC42LTEgMi4zLTIuNiA5LjktMTEuNiAxMi41LTE1LjUgMi42LTQgNS4zLTMuMyA4LjktMiAzLjYgMS4zIDIzLjEgMTAuOSAyNy4xIDEyLjlzNi42IDMgNy42IDQuNmMuOSAxLjkuOSA5LjktMi40IDE5LjF6TTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIyMy45IDQxMy4yYy0yNi42IDAtNTIuNy02LjctNzUuOC0xOS4zTDY0IDQxNmwyMi41LTgyLjJjLTEzLjktMjQtMjEuMi01MS4zLTIxLjItNzkuM0M2NS40IDE2Ny4xIDEzNi41IDk2IDIyMy45IDk2YzQyLjQgMCA4Mi4yIDE2LjUgMTEyLjIgNDYuNSAyOS45IDMwIDQ3LjkgNjkuOCA0Ny45IDExMi4yIDAgODcuNC03Mi43IDE1OC41LTE2MC4xIDE1OC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaGF0c2FwcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODAuOSA5Ny4xQzMzOSA1NS4xIDI4My4yIDMyIDIyMy45IDMyYy0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MGwxMTcuNy0zMC45YzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3aC4xYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zTDcyIDM1OS4ybC00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMSAzNC44IDM0LjkgNTYuMiA4MS4yIDU2LjEgMTMwLjUgMCAxMDEuOC04NC45IDE4NC42LTE4Ni42IDE4NC42em0xMDEuMi0xMzguMmMtNS41LTIuOC0zMi44LTE2LjItMzcuOS0xOC01LjEtMS45LTguOC0yLjgtMTIuNSAyLjgtMy43IDUuNi0xNC4zIDE4LTE3LjYgMjEuOC0zLjIgMy43LTYuNSA0LjItMTIgMS40LTMyLjYtMTYuMy01NC0yOS4xLTc1LjUtNjYtNS43LTkuOCA1LjctOS4xIDE2LjMtMzAuMyAxLjgtMy43LjktNi45LS41LTkuNy0xLjQtMi44LTEyLjUtMzAuMS0xNy4xLTQxLjItNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjItMy43IDAtOS43IDEuNC0xNC44IDYuOS01LjEgNS42LTE5LjQgMTktMTkuNCA0Ni4zIDAgMjcuMyAxOS45IDUzLjcgMjIuNiA1Ny40IDIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNCA0LjYtMTMgNC42LTI0LjEgMy4yLTI2LjQtMS4zLTIuNS01LTMuOS0xMC41LTYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2htY3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDE2MXYtMjEuM2wtMjguNS04LjgtMi4yLTEwLjQgMjAuMS0yMC43TDQyNyA4MC40bC0yOSA3LjUtNy4yLTcuNSA3LjUtMjguMi0xOS4xLTExLjYtMjEuMyAyMS0xMC43LTMuMi03LTI2LjRoLTIyLjZsLTYuMiAyNi40LTEyLjEgMy4yLTE5LjctMjEtMTkuNCAxMSA4LjEgMjcuNy04LjEgOC40LTI4LjUtNy41LTExIDE5LjEgMjAuNyAyMS0yLjkgMTAuNC0yOC41IDcuOC0uMyAyMS43IDI4LjggNy41IDIuNCAxMi4xLTIwLjEgMTkuOSAxMC40IDE4LjUgMjkuNi03LjUgNy4yIDguNi04LjEgMjYuOSAxOS45IDExLjYgMTkuNC0yMC40IDExLjYgMi45IDYuNyAyOC41IDIyLjYuMyA2LjctMjguOCAxMS42LTMuNSAyMC43IDIxLjYgMjAuNC0xMi4xLTguOC0yOCA3LjgtOC4xIDI4LjggOC44IDEwLjMtMjAuMS0yMC45LTE4LjggMi4yLTEyLjEgMjkuMS03em0tMTE5LjIgNDUuMmMtMzEuMyAwLTU2LjgtMjUuNC01Ni44LTU2LjhzMjUuNC01Ni44IDU2LjgtNTYuOCA1Ni44IDI1LjQgNTYuOCA1Ni44YzAgMzEuNS0yNS40IDU2LjgtNTYuOCA1Ni44em03Mi4zIDE2LjRsNDYuOSAxNC41VjI3N2wtNTUuMSAxMy40LTQuMSAyMi43IDM4LjkgMzUuMy0xOS4yIDM3LjktNTQtMTYuNy0xNC42IDE1LjIgMTYuNyA1Mi41LTM4LjMgMjIuNy0zOC45LTQwLjUtMjEuNyA2LjYtMTIuNiA1NC00Mi40LS41LTEyLjYtNTMuNi0yMS43LTUuNi0zNi40IDM4LjQtMzcuNC0yMS43IDE1LjItNTAuNS0xMy43LTE2LjEtNTUuNSAxNC4xLTE5LjctMzQuOCAzNy45LTM3LjQtNC44LTIyLjgtNTQtMTQuMS41LTQwLjlMNTQgMjE5LjlsNS43LTE5LjctMzguOS0zOS40TDQxLjUgMTI1bDUzLjYgMTQuMSAxNS4yLTE1LjctMTUuMi01MiAzNi40LTIwLjcgMzYuOCAzOS40TDE5MSA4NGwxMS42LTUySDI0NWwxMS42IDQ1LjlMMjM0IDcybC02LjMtMS43LTMuMyA1LjctMTEgMTkuMS0zLjMgNS42IDQuNiA0LjYgMTcuMiAxNy40LS4zIDEtMjMuOCA2LjUtNi4yIDEuNy0uMSA2LjQtLjIgMTIuOUMxNTMuOCAxNjEuNiAxMTggMjA0IDExOCAyNTQuN2MwIDU4LjMgNDcuMyAxMDUuNyAxMDUuNyAxMDUuNyA1MC41IDAgOTIuNy0zNS40IDEwMy4yLTgyLjhsMTMuMi4yIDYuOS4xIDEuNi02LjcgNS42LTI0IDEuOS0uNiAxNy4xIDE3LjggNC43IDQuOSA1LjgtMy40IDIwLjQtMTIuMSA1LjgtMy41LTItNi41LTYuOC0yMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaWtpcGVkaWFXIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCA1MS4ybC0uMyAxMi4yYy0yOC4xLjgtNDUgMTUuOC01NS44IDQwLjMtMjUgNTcuOC0xMDMuMyAyNDAtMTU1LjMgMzU4LjZINDE1bC04MS45LTE5My4xYy0zMi41IDYzLjYtNjguMyAxMzAtOTkuMiAxOTMuMS0uMy4zLTE1IDAtMTUtLjNDMTcyIDM1Mi4zIDEyMi44IDI0My40IDc1LjggMTMzLjQgNjQuNCAxMDYuNyAyNi40IDYzLjQuMiA2My43YzAtMy4xLS4zLTEwLS4zLTE0LjJoMTYxLjl2MTMuOWMtMTkuMiAxLjEtNTIuOCAxMy4zLTQzLjMgMzQuMiAyMS45IDQ5LjcgMTAzLjYgMjQwLjMgMTI1LjYgMjg4LjYgMTUtMjkuNyA1Ny44LTEwOS4yIDc1LjMtMTQyLjgtMTMuOS0yOC4zLTU4LjYtMTMzLjktNzIuOC0xNjAtOS43LTE3LjgtMzYuMS0xOS40LTU1LjgtMTkuN1Y0OS44bDE0Mi41LjN2MTMuMWMtMTkuNC42LTM4LjEgNy44LTI5LjQgMjYuMSAxOC45IDQwIDMwLjYgNjguMSA0OC4xIDEwNC43IDUuNi0xMC44IDM0LjctNjkuNCA0OC4xLTEwMC44IDguOS0yMC42LTMuOS0yOC42LTM4LjYtMjkuNC4zLTMuNiAwLTEwLjMuMy0xMy42IDQ0LjQtLjMgMTExLjEtLjMgMTIzLjEtLjZ2MTMuNmMtMjIuNS44LTQ1LjggMTIuOC01OC4xIDMxLjdsLTU5LjIgMTIyLjhjNi40IDE2LjEgNjMuMyAxNDIuOCA2OS4yIDE1Ni43TDU1OS4yIDkxLjhjLTguNi0yMy4xLTM2LjQtMjguMS00Ny4yLTI4LjNWNDkuNmwxMjcuOCAxLjEuMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgOTMuN2wxODMuNi0yNS4zdjE3Ny40SDBWOTMuN3ptMCAzMjQuNmwxODMuNiAyNS4zVjI2OC40SDB2MTQ5Ljl6bTIwMy44IDI4TDQ0OCA0ODBWMjY4LjRIMjAzLjh2MTc3Ljl6bTAtMzgwLjZ2MTgwLjFINDQ4VjMyTDIwMy44IDY1Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpeCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTMuMzggMTMxLjY5YzAgMTMuMDMgMi4wOCAzMi42OS0yOC42OCA0My44My05LjUyIDMuNDUtMTUuOTUgOS42Ni0xNS45NSA5LjY2IDAtMzEgNC43Mi00Mi4yMiAxNy40LTQ4Ljg2IDkuNzUtNS4xMSAyNy4yMy00LjYzIDI3LjIzLTQuNjN6bS0xMTUuOCAzNS41NGwtMzQuMjQgMTMyLjY2LTI4LjQ4LTEwOC41N2MtNy42OS0zMS45OS0yMC44MS00OC41My00OC40My00OC41My0yNy4zNyAwLTQwLjY2IDE2LjE4LTQ4LjQzIDQ4LjUzTDg5LjUyIDI5OS44OSA1NS4yOCAxNjcuMjNDNDkuNzMgMTQwLjUxIDIzLjg2IDEyOC45NiAwIDEzMS45Nmw2NS41NyAyNDcuOTNzMjEuNjMgMS41NiAzMi40Ni0zLjk2YzE0LjIyLTcuMjUgMjAuOTgtMTIuODQgMjkuNTktNDYuNTcgNy42Ny0zMC4wNyAyOS4xMS0xMTguNDEgMzEuMTItMTI0LjcgNC43Ni0xNC45NCAxMS4wOS0xMy44MSAxNS40IDAgMS45NyA2LjMgMjMuNDUgOTQuNjMgMzEuMTIgMTI0LjcgOC42IDMzLjczIDE1LjM3IDM5LjMyIDI5LjU5IDQ2LjU3IDEwLjgyIDUuNTIgMzIuNDYgMy45NiAzMi40NiAzLjk2bDY1LjU3LTI0Ny45M2MtMjQuNDItMy4wNy00OS44MiA4LjkzLTU1LjMgMzUuMjd6bTExNS43OCA1LjIxcy00LjEgNi4zNC0xMy40NiAxMS41N2MtNi4wMSAzLjM2LTExLjc4IDUuNjQtMTcuOTcgOC42MS0xNS4xNCA3LjI2LTEzLjE4IDEzLjk1LTEzLjE4IDM1LjJ2MTUyLjA3czE2LjU1IDIuMDkgMjcuMzctMy40M2MxMy45My03LjEgMTcuMTMtMTMuOTUgMTcuMjYtNDQuNzhWMTgxLjQxbC0uMDIuMDF2LTguOTh6bTE2My40NCA4NC4wOEw2NDAgMTMyLjc4cy0zNS4xMS01Ljk4LTUyLjUgOS44NWMtMTMuMyAxMi4xLTI0LjQxIDI5LjU1LTU0LjE4IDcyLjQ3LS40Ny43My02LjI1IDEwLjU0LTEzLjA3IDAtMjkuMjktNDIuMjMtNDAuOC02MC4yOS01NC4xOC03Mi40Ny0xNy4zOS0xNS44My01Mi41LTkuODUtNTIuNS05Ljg1bDgzLjIgMTIzLjc0LTgyLjk3IDEyMy4zNnMzNi41NyA0LjYyIDUzLjk1LTExLjIxYzExLjQ5LTEwLjQ2IDE3LjU4LTIwLjM3IDUyLjUxLTcwLjcyIDYuODEtMTAuNTIgMTIuNTctLjc3IDEzLjA3IDAgMjkuNCA0Mi4zOCAzOS4yMyA1OC4wNiA1My4xNCA3MC43MiAxNy4zOSAxNS44MyA1My4zMiAxMS4yMSA1My4zMiAxMS4yMUw1NTYuOCAyNTYuNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpemFyZHNPZlRoZUNvYXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxOS4xOSAzNDUuNjljLTEuOSAxLjM4LTExLjA3IDguNDQtLjI2IDIzLjU3IDQuNjQgNi40MiAxNC4xMSAxMi43OSAyMS43MyA2LjU1IDYuNS00Ljg4IDcuMzUtMTIuOTIuMjYtMjMuMDQtNS40Ny03Ljc2LTE0LjI4LTEyLjg4LTIxLjczLTcuMDh6bTMzNi43NSA3NS45NGMtLjM0IDEuNy0uNTUgMS42Ny43OSAwIDIuMDktNC4xOSA0LjE5LTEwLjIxIDQuOTgtMTkuOSAzLjE0LTM4LjQ5LTQwLjMzLTcxLjQ5LTEwMS4zNC03OC4wMy01NC43My02LjAyLTEyNC4zOCA5LjE3LTE4OC44IDYwLjQ5bC0uMjYgMS41N2MyLjYyIDQuOTggNC45OCAxMC43NCAzLjQgMjEuMjFsLjc5LjI2YzYzLjg5LTU4LjQgMTMxLjE5LTc3LjI1IDE4NC4zNS03My44NSA1OC40IDMuNjcgMTAwLjAzIDM0LjA0IDEwMC4wMyA2OC4wOC0uMDEgOS45Ni0yLjYzIDE1LjcyLTMuOTQgMjAuMTd6TTM5Mi4yOCAyNDAuNDJjLjc5IDcuMDcgNC4xOSAxMC4yMSA5LjE3IDEwLjQ3IDUuNS4yNiA5LjQzLTIuNjIgMTAuNDctNi41NS43OS0zLjQgMi4wOS0yOS44NSAyLjA5LTI5Ljg1cy0xMS4yNiA2LjU1LTE0LjkzIDEwLjQ3Yy0zLjY2IDMuNjgtNy4zMyA4LjM5LTYuOCAxNS40NnptLTUwLjAyLTE1MS4xQzEzNy43NSA4OS4zMiAxMy4xIDIyNi44Ljc5IDI0MS4yYy0xLjA1LjUyLTEuMzEuNzkuNzkgMS4zMSA2MC40OSAxNi41IDE1NS44MSA4MS4xOCAxOTYuMTMgMjAyLjE2bDEuMDUuMjZjNTUuMjUtNjkuOTIgMTQwLjg4LTEyOC4wNSAyMzYuOTktMTI4LjA1IDgwLjkyIDAgMTMwLjE1IDQyLjE2IDEzMC4xNSA4MC4zOSAwIDE4LjMzLTYuNTUgMzMuNTItMjIuMjYgNDYuMzUgMCAuOTYtLjIuNzkuNzkuNzkgMTQuNjYtMTAuNzQgMjcuNS0yOC44IDI3LjUtNDguMTggMC0yMi43OC0xMi4wNS0zOC4yMy0xMi4wNS0zOC4yMyA3LjA3IDcuMDcgMTAuNzQgMTYuMjQgMTAuNzQgMTYuMjQgNS43Ni00MC44NSAyNi45Ny02Mi4zMiAyNi45Ny02Mi4zMi0yLjM2LTkuNjktNi44MS0xNy44MS02LjgxLTE3LjgxIDcuNTkgOC4xMiAxNC40IDI3LjUgMTQuNCA0MS4zNyAwIDEwLjQ3LTMuNCAyMi43OC0xMi41NyAzMS45NWwuMjYuNTJjOC4xMi00Ljk4IDE2LjUtMTYuNzYgMTYuNS0zNy45NyAwLTE1LjcxLTQuNzEtMjUuOTItNC43MS0yNS45MiA1Ljc2LTUuMjQgMTEuMjYtOS4xNyAxNS45Ny0xMS43OC43OSAzLjQgMi4wOSA5LjY5IDIuMzYgMTQuOTMgMCAxLjA1Ljc5IDEuODMgMS4wNSAwIC43OS01Ljc2LS4yNi0xNi4yNC0uMjYtMTYuNSA2LjAyLTMuMTQgOS42OS00LjQ1IDkuNjktNC40NUM2MTcuNzQgMTc2IDQ4OS40MyA4OS4zMiAzNDIuMjYgODkuMzJ6bS05OS4yNCAyODkuNjJjLTExLjA2IDguOTktMjQuMiA0LjA4LTMwLjY0LTQuMTktNy40NS05LjU4LTYuNzYtMjQuMDkgNC4xOS0zMi40NyAxNC44NS0xMS4zNSAyNy4wOC0uNDkgMzEuMTYgNS41LjI4LjM5IDEyLjEzIDE2LjU3LTQuNzEgMzEuMTZ6bTIuMDktMTM2LjQzbDkuNDMtMTcuODEgMTEuNzggNzAuOTYtMTIuNTcgNi4wMi0yNC42Mi0yOC44IDE0LjE0LTI2LjcxIDMuNjcgNC40NS0xLjgzLTguMTF6bTE4LjU5IDExNy41OGwtLjI2LS4yNmMyLjA1LTQuMS0yLjUtNi42MS0xNy41NC0zMS42OS0xLjMxLTIuMzYtMy4xNC0yLjg4LTQuNDUtMi42MmwtLjI2LS41MmM3Ljg2LTUuNzYgMTUuNDUtMTAuMjEgMjUuNC0xNS43MWwuNTIuMjZjMS4zMSAxLjgzIDIuMDkgMi44OCAzLjQgNC43MWwtLjI2LjUyYy0xLjA1LS4yNi0yLjM2LS43OS01LjI0LjI2LTIuMDkuNzktNy44NiAzLjY3LTEyLjMxIDcuNTl2MS4zMWMxLjU3IDIuMzYgMy45MyA2LjU1IDUuNzYgOS42OWguMjZjMTAuMDUtNi4yOCA3LjU2LTQuNTUgMTEuNTItNy44NmguMjZjLjUyIDEuODMuNTIgMS44MyAxLjgzIDUuNWwtLjI2LjI2Yy0zLjA2LjYxLTQuNjUuMzQtMTEuNTIgNS41di4yNmM5LjQ2IDE3LjAyIDExLjAxIDE2Ljc1IDEyLjU3IDE1Ljk3bC4yNi4yNmMtMi4zNCAxLjU5LTYuMjcgNC4yMS05LjY4IDYuNTd6bTU1LjI2LTMyLjQ3Yy0zLjE0IDEuNTctNi4wMiAyLjg4LTkuOTUgNC45OGwtLjI2LS4yNmMxLjI5LTIuNTkgMS4xNi0yLjcxLTExLjc4LTMyLjQ3bC0uMjYtLjI2Yy0uMTUgMC04LjkgMy42NS05Ljk1IDcuMzNoLS41MmwtMS4wNS01Ljc2LjI2LS41MmM3LjI5LTQuNTYgMjUuNTMtMTEuNjQgMjcuNzYtMTIuNTdsLjUyLjI2IDMuMTQgNC45OC0uMjYuNTJjLTMuNTMtMS43Ni03LjM1Ljc2LTEyLjMxIDIuNjJ2LjI2YzEyLjMxIDMyLjAxIDEyLjY3IDMwLjY0IDE0LjY2IDMwLjY0di4yNXptNDQuNzctMTYuNWMtNC4xOSAxLjA1LTUuMjQgMS4zMS05LjY5IDIuODhsLS4yNi0uMjYuNTItNC40NWMtMS4wNS0zLjQtMy4xNC0xMS41Mi0zLjY3LTEzLjYybC0uMjYtLjI2Yy0zLjQuNzktOC45IDIuNjItMTIuODMgMy45M2wtLjI2LjI2Yy43OSAyLjYyIDMuMTQgOS45NSA0LjE5IDEzLjg4Ljc5IDIuMzYgMS44MyAyLjg4IDIuODggMy4xNHYuNTJjLTMuNjcgMS4wNS03LjA3IDIuNjItMTAuMjEgMy45M2wtLjI2LS4yNmMxLjA1LTEuMzEgMS4wNS0yLjg4LjI2LTQuOTgtMS4wNS0zLjE0LTguMTItMjMuODMtOS4xNy0yNy4yMy0uNTItMS44My0xLjU3LTMuMTQtMi42Mi0zLjE0di0uNTJjMy4xNC0xLjA1IDYuMDItMi4wOSAxMC43NC0zLjRsLjI2LjI2LS4yNiA0LjcxYzEuMzEgMy45MyAyLjM2IDcuNTkgMy4xNCA5LjY5aC4yNmMzLjkzLTEuMzEgOS40My0yLjg4IDEyLjgzLTMuOTNsLjI2LS4yNi0yLjYyLTkuNDNjLS41Mi0xLjgzLTEuMDUtMy40LTIuNjItMy45M3YtLjI2YzQuNDUtMS4wNSA3LjMzLTEuODMgMTAuNzQtMi4zNmwuMjYuMjZjLTEuMDUgMS4zMS0xLjA1IDIuODgtLjUyIDQuNDUgMS41NyA2LjI4IDQuNzEgMjAuNDMgNi4yOCAyNi40NS41NCAyLjYyIDEuODUgMy40MSAyLjYzIDMuOTN6bTMyLjIxLTYuODFsLS4yNi4yNmMtNC43MS41Mi0xNC4xNCAyLjM2LTIyLjUyIDQuMTlsLS4yNi0uMjYuNzktNC4xOWMtMS41Ny03Ljg2LTMuNC0xOC41OS00Ljk4LTI2LjE5LS4yNi0xLjgzLS43OS0yLjg4LTIuNjItMy42N2wuNzktLjUyYzkuMTctMS41NyAyMC4xNi0yLjM2IDI0Ljg4LTIuNjJsLjI2LjI2Yy41MiAyLjM2Ljc5IDMuMTQgMS41NyA1LjVsLS4yNi4yNmMtMS4xNC0xLjE0LTMuMzQtMy4yLTE2LjI0LS43OWwtLjI2LjI2Yy4yNiAxLjU3IDEuMDUgNi41NSAxLjU3IDkuOTVsLjI2LjI2YzkuNTItMS42OCA0Ljc2LS4wNiAxMC43NC0yLjM2aC4yNmMwIDEuNTctLjI2IDEuODMtLjI2IDUuMjRoLS4yNmMtNC44MS0xLjAzLTIuMTUtLjktMTAuMjEgMGwtLjI2LjI2Yy4yNiAyLjA5IDEuNTcgOS40MyAyLjA5IDEyLjU3bC4yNi4yNmMxLjE1LjM4IDE0LjIxLS42NSAxNi4yNC00LjcxaC4yNmMtLjUzIDIuMzgtMS4wNSA0LjIxLTEuNTggNi4wNHptMTAuNzQtNDQuNTFjLTQuNDUgMi4zNi04LjEyIDIuODgtMTEgMi44OC0uMjUuMDItMTEuNDEgMS4wOS0xNy41NC05Ljk1LTYuNzQtMTAuNzktLjk4LTI1LjIgNS41LTMxLjY5IDguOC04LjEyIDIzLjM1LTEwLjEgMjguNTQtMTcuMDIgOC4wMy0xMC4zMy0xMy4wNC0yMi4zMS0yOS41OS01Ljc2bC0yLjYyLTIuODggNS4yNC0xNi4yNGMyNS41OS0xLjU3IDQ1LjItMy4wNCA1MC4wMiAxNi4yNC43OSAzLjE0IDAgOS40My0uMjYgMTIuMDUgMCAyLjYyLTEuODMgMTguODUtMi4wOSAyMy4wNC0uNTIgNC4xOS0uNzkgMTguMzMtLjc5IDIwLjY5LjI2IDIuMzYuNTIgNC4xOSAxLjU3IDUuNSAxLjU3IDEuODMgNS43NiAxLjgzIDUuNzYgMS44M2wtLjc5IDQuNzFjLTExLjgyLTEuMDctMTAuMjgtLjU5LTIwLjQzLTEuMDUtMy4yMi01LjE1LTIuMjMtMy4yOC00LjE5LTcuODYgMCAuMDEtNC4xOSAzLjk0LTcuMzMgNS41MXptMzcuMTggMjEuMjFjLTYuMzUtMTAuNTgtMTkuODItNy4xNi0yMS43MyA1LjUtMi42MyAxNy4wOCAxNC4zIDE5Ljc5IDIwLjY5IDEwLjIxbC4yNi4yNmMtLjUyIDEuODMtMS44MyA2LjAyLTEuODMgNi4yOGwtLjUyLjUyYy0xMC4zIDYuODctMjguNS0yLjUtMjUuNjYtMTguNTkgMS45NC0xMC44NyAxNC40NC0xOC45MyAyOC44LTkuOTVsLjI2LjUyYzAgMS4wNi0uMjcgMy40MS0uMjcgNS4yNXptNS43Ny04Ny43M3YtNi41NWMuNjkgMCAxOS42NSAzLjI4IDI3Ljc2IDcuMzNsLTEuNTcgMTcuNTRzMTAuMjEtOS40MyAxNS40NS0xMC43NGM1LjI0LTEuNTcgMTQuOTMgNy4zMyAxNC45MyA3LjMzbC0xMS4yNiAxMS4yNmMtMTIuMDctNi4zNS0xOS41OS0uMDgtMjAuNjkuNzktNS4yOSAzOC43Mi04LjYgNDIuMTcgNC40NSA0Ni4wOWwtLjUyIDQuNzFjLTE3LjU1LTQuMjktMTguNTMtNC41LTM2LjkyLTcuMzNsLjc5LTQuNzFjNy4yNSAwIDcuNDgtNS4zMiA3LjU5LTYuODEgMCAwIDQuOTgtNTMuMTYgNC45OC01NS4yNS0uMDItMi44Ny00Ljk5LTMuNjYtNC45OS0zLjY2em0xMC45OSAxMTQuNDRjLTguMTItMi4wOS0xNC4xNC0xMS0xMC43NC0yMC42OSAzLjE0LTkuNDMgMTIuMzEtMTIuMzEgMTguODUtMTAuMjEgOS4xNyAyLjYyIDEyLjgzIDExLjc4IDEwLjc0IDE5LjM4LTIuNjEgOC45LTkuNDIgMTMuODctMTguODUgMTEuNTJ6bTQyLjE2IDkuNjljLTIuMzYtLjUyLTcuMDctMi4zNi04LjY0LTIuODh2LS4yNmwxLjU3LTEuODNjLjU5LTguMjQuNTktNy4yNy4yNi03LjU5LTQuODItMS44MS02LjY2LTIuMzYtNy4wNy0yLjM2LTEuMzEgMS44My0yLjg4IDQuNDUtMy42NyA1LjVsLS43OSAzLjR2LjI2Yy0xLjMxLS4yNi0zLjkzLTEuMzEtNi4wMi0xLjU3di0uMjZsMi42Mi0xLjgzYzMuNC00LjcxIDkuOTUtMTQuMTQgMTMuODgtMjAuMTZ2LTIuMDlsLjUyLS4yNmMyLjA5Ljc5IDUuNSAyLjA5IDcuNTkgMi44OC40OC40OC4xOC0xLjg3LTEuMDUgMjUuMTQtLjI0IDEuODEuMDIgMi42LjggMy45MXptLTQuNzEtODkuODJjMTEuMjUtMTguMjcgMzAuNzYtMTYuMTkgMzQuMDQtMy40TDUzOS43IDE5OGMyLjM0LTYuMjUtMi44Mi05LjktNC40NS0xMS4yNmwxLjgzLTMuNjdjMTIuMjIgMTAuMzcgMTYuMzggMTMuOTcgMjIuNTIgMjAuNDMtMjUuOTEgNzMuMDctMzAuNzYgODAuODEtMjQuNjIgODQuMzJsLTEuODMgNC40NWMtNi4zNy0zLjM1LTguOS00LjQyLTE3LjgxLTguNjRsMi4wOS02LjgxYy0uMjYtLjI2LTMuOTMgMy45My05LjY5IDMuNjctMTkuMDYtMS4zLTIyLjg5LTMxLjc1LTkuNjctNTIuOXptMjkuMzMgNzkuMzRjMC01LjcxLTYuMzQtNy44OS03Ljg2LTUuMjQtMS4zMSAyLjA5IDEuMDUgNC45OCAyLjg4IDguMzggMS41NyAyLjYyIDIuNjIgNi4yOCAxLjA1IDkuNDMtMi42NCA2LjM0LTEyLjQgNS4zMS0xNS40NS0uNzkgMC0uNy0uMjcuMDkgMS44My00LjcxbC43OS0uMjZjLS41NyA1LjY2IDYuMDYgOS42MSA4LjM4IDQuOTggMS4wNS0yLjA5LS41Mi01LjUtMi4wOS04LjM4LTEuNTctMi42Mi0zLjY3LTYuMjgtMS44My05LjY5IDIuNzItNS4wNiAxMS4yNS00LjQ3IDE0LjY2IDIuMzZ2LjUybC0yLjM2IDMuNHptMjEuMjEgMTMuMzZjLTEuOTYtMy4yNy0uOTEtMi4xNC00LjQ1LTQuNzFoLS4yNmMtMi4zNiA0LjE5LTUuNzYgMTAuNDctOC42NCAxNi4yNC0xLjMxIDIuMzYtMS4wNSAzLjQtLjc5IDMuOTNsLS4yNi4yNi01Ljc2LTQuNDUuMjYtLjI2IDIuMDktMS4zMWMzLjE0LTUuNzYgNi41NS0xMi4wNSA5LjE3LTE3LjAydi0uMjZjLTIuNjQtMS45OC0xLjIyLTEuNTEtNi4wMi0xLjgzdi0uMjZsMy4xNC0zLjRoLjI2YzMuNjcgMi4zNiA5Ljk1IDYuODEgMTIuMzEgOC45bC4yNi4yNi0xLjMxIDMuOTF6bTI3LjIzLTQ0LjI2bC0yLjg4LTIuODhjLjc5LTIuMzYgMS44My00Ljk4IDIuMDktNy41OS43NS05Ljc0LTExLjUyLTExLjg0LTExLjUyLTQuOTggMCA0Ljk4IDcuODYgMTkuMzggNy44NiAyNy43NiAwIDEwLjIxLTUuNzYgMTUuNzEtMTMuODggMTYuNS04LjM4Ljc5LTIwLjE2LTEwLjQ3LTIwLjE2LTEwLjQ3bDQuOTgtMTQuNCAyLjg4IDIuMDljLTIuOTcgMTcuOCAxNy42OCAyMC4zNyAxMy4zNSA1LjI0LTEuMDYtNC4wMi0xOC43NS0zNC4yIDIuMDktMzguMjMgMTMuNjItMi4zNiAyMy4wNCAxNi41IDIzLjA0IDE2LjVsLTcuODUgMTAuNDZ6bTM1LjYyLTEwLjIxYy0xMS0zMC4zOC02MC40OS0xMjcuNTMtMTkxLjk1LTEyOS42Mi01My40Mi0xLjA1LTk0LjI3IDE1LjQ1LTEzMi43NiAzNy45N2w4NS42My05LjE3LTkxLjM5IDIwLjY5IDI1LjE0IDE5LjY0LTMuOTMtMTYuNWM3LjUtMS43MSAzOS4xNS04LjQ1IDY2Ljc3LTguOWwtMjIuMjYgODAuMzljMTMuNjEtLjcgMTguOTctOC45OCAxOS42NC0yMi43OGw0Ljk4LTEuMDUuMjYgMjYuNzFjLTIyLjQ2IDMuMjEtMzcuMyA2LjY5LTQ5LjQ5IDkuOTVsMTMuMDktNDMuMjEtNjEuNTQtMzYuNjYgMi4zNiA4LjEyIDEwLjIxIDQuOThjNi4yOCAxOC41OSAxOS4zOCA1Ni41NiAyMC40MyA1OC42NiAxLjk1IDQuMjggMy4xNiA1Ljc4IDEyLjA1IDQuNDVsMS4wNSA0Ljk4Yy0xNi4wOCA0Ljg2LTIzLjY2IDcuNjEtMzkuMDIgMTQuNGwtMi4zNi00LjcxYzQuNC0yLjk0IDguNzMtMy45NCA1LjUtMTIuODMtMjMuNy02Mi41LTIxLjQ4LTU4LjE0LTIyLjc4LTU5LjQ0bDIuMzYtNC40NSAzMy41MiA2Ny4zYy0zLjg0LTExLjg3IDEuNjggMS42OS0zMi45OS03OC44MmwtNDEuOSA4OC41MSA0LjcxLTEzLjg4LTM1Ljg4LTQyLjE2IDI3Ljc2IDkzLjQ4LTExLjc4IDguMzhDOTUgMjI4LjU4IDEwMS4wNSAyMzEuODcgOTMuMjMgMjMxLjUyYy01LjUtLjI2LTEzLjYyIDUuNS0xMy42MiA1LjVMNzQuNjMgMjMxYzMwLjU2LTIzLjUzIDMxLjYyLTI0LjMzIDU4LjQtNDIuNjhsNC4xOSA3LjA3cy01Ljc2IDQuMTktNy44NiA3LjA3Yy01LjkgOS4yOCAxLjY3IDEzLjI4IDYxLjggNzUuNjhsLTE4Ljg1LTU4LjkyIDM5LjgtMTAuMjEgMjUuNjYgMzAuNjQgNC40NS0xMi4zMS00Ljk4LTI0LjYyIDEzLjA5LTMuNC41MiAzLjE0IDMuNjctMTAuNDctOTQuMjcgMjkuMzMgMTEuMjYtNC45OC0xMy42Mi00Mi40MiAxNy4yOC05LjE3IDMwLjExIDM2LjE0IDI4LjU0LTEzLjA5Yy0xLjQxLTcuNDctMi40Ny0xNC41LTQuNzEtMTkuNjRsMTcuMjggMTMuODggNC43MS0yLjA5LTU5LjE4LTQyLjY4IDIzLjA4IDExLjVjMTguOTgtNi4wNyAyNS4yMy03LjQ3IDMyLjIxLTkuNjlsMi42MiAxMWMtMTIuNTUgMTIuNTUgMS40MyAxNi44MiA2LjU1IDE5LjM4bC0xMy42Mi02MS4wMSAxMi4wNSAyOC4yOGM0LjE5LTEuMzEgNy4zMy0yLjA5IDcuMzMtMi4wOWwyLjYyIDguNjRzLTMuMTQgMS4wNS02LjI4IDIuMDlsOC45IDIwLjk1IDMzLjc4LTY1LjczLTIwLjY5IDYxLjAxYzQyLjQyLTI0LjA5IDgxLjQ0LTM2LjY2IDEzMS45OC0zNS44OCA2Ny4wNCAxLjA1IDE2Ny4zMyA0MC44NSAxOTkuOCAxMzkuODMuNzggMi4xLS4wMSAyLjYzLS43OS4yN3pNMjAzLjQ4IDE1Mi40M3MxLjgzLS41MiA0LjE5LTEuMzFsOS40MyA3LjU5Yy0uNCAwLTMuNDQtLjI1LTExLjI2IDIuMzZsLTIuMzYtOC42NHptMTQzLjc2IDM4LjVjLTEuNTctLjYtMjYuNDYtNC44MS0zMy4yNiAyMC42OWwyMS43MyAxNy4wMiAxMS41My0zNy43MXpNMzE4LjQzIDY3LjA3Yy01OC40IDAtMTA2LjA1IDEyLjA1LTExNC45NiAxNC40di43OWM4LjM4IDIuMDkgMTQuNCA0LjE5IDIxLjIxIDExLjc4bDEuNTcuMjZjNi41NS0xLjgzIDQ4Ljk3LTEzLjg4IDExMC4yNC0xMy44OCAxODAuMTYgMCAzMDEuNjcgMTE2Ljc5IDMwMS42NyAyMjMuMzd2OS45NWMwIDEuMzEuNzkgMi42MiAxLjA1LjUyLjUyLTIuMDkuNzktOC42NC43OS0xOS42NC4yNi04My43OS05Ni42My0yMjcuNTUtMzIxLjU3LTIyNy41NXptMjExLjA2IDE2OS42OGMxLjMxLTUuNzYgMC0xMi4zMS03LjMzLTEzLjA5LTkuNjItMS4xMy0xNi4xNCAyMy43OS0xNy4wMiAzMy41Mi0uNzkgNS41LTEuMzEgMTQuOTMgNi4wMiAxNC45MyA0LjY4LS4wMSA5LjcyLS45MSAxOC4zMy0zNS4zNnptLTYxLjUzIDQyLjk1Yy0yLjYyLS43OS05LjQzLS43OS0xMi41NyAxMC40Ny0xLjgzIDYuODEuNTIgMTMuMzUgNi4wMiAxNC42NiAzLjY3IDEuMDUgOC45LjUyIDExLjc4LTEwLjc0IDIuNjItOS45NC0xLjgzLTEzLjYxLTUuMjMtMTQuMzl6TTQ5MSAzMDAuNjVjMS44My41MiAzLjE0IDEuMDUgNS43NiAxLjgzIDAtMS44My41Mi04LjM4Ljc5LTEyLjA1LTEuMDUgMS4zMS01LjUgOC4xMi02LjU1IDkuOTV2LjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb2R1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3OC40MTQgMzM5LjcwNkgxNDEuMUwxMTIuMTY2IDIyMy40NzVoLS40NzhMODMuMjI4IDMzOS43MDZINDUuMkwwIDE2OC45NDZIMzcuNTQ4TDY0LjU3NCAyODUuMTc3aC40NzhMOTQuNzA3IDE2OC45NDZoMzUuMTU3bDI5LjE3OCAxMTcuNjY3aC40NzlMMTg3LjUgMTY4Ljk0NmgzNi44MzF6TTI3MS40IDIxMi43MTNjMzguOTg0IDAgNjQuMSAyNS44MjggNjQuMSA2NS4yOTEgMCAzOS4yMjItMjUuMTExIDY1LjA1LTY0LjEgNjUuMDUtMzguNzQzIDAtNjMuODU1LTI1LjgyOC02My44NTUtNjUuMDVDMjA3LjU0NyAyMzguNTQxIDIzMi42NTkgMjEyLjcxMyAyNzEuNCAyMTIuNzEzem0wIDEwNC43NTNjMjMuMiAwIDMwLjEzMy0xOS44NTIgMzAuMTMzLTM5LjQ2MiAwLTE5Ljg1Mi02LjkzNC0zOS43LTMwLjEzMy0zOS43LTI3LjcgMC0yOS44OTQgMTkuODUtMjkuODk0IDM5LjdDMjQxLjUwOCAyOTcuNjE0IDI0OC40NDMgMzE3LjQ2NiAyNzEuNCAzMTcuNDY2ek00MzUuMDg0IDMyMy45MjJoLS40NzhjLTcuODkzIDEzLjM5Mi0yMS43NjUgMTkuMTMyLTM3LjU0OCAxOS4xMzItMzcuMzEgMC01NS40ODUtMzIuMDQ1LTU1LjQ4NS02Ni4yNDYgMC0zMy4yNDMgMTguNDE1LTY0LjA5NSA1NC43NjctNjQuMDk1IDE0LjU4OSAwIDI4LjkzOCA2LjIxOCAzNi44MzEgMTguNDE2aC4yNFYxNjguOTQ2aDMzLjk2djE3MC43Nkg0MzUuMDg0ek00MDUuNDI4IDIzOC4zYy0yMi4yNCAwLTI5Ljg5NCAxOS4xMzQtMjkuODk0IDM5LjQ2MyAwIDE5LjM3MSA4Ljg0OCAzOS43IDI5Ljg5NCAzOS43IDIyLjQ4MiAwIDI5LjE3OC0xOS42MTMgMjkuMTc4LTM5Ljk0QzQzNC42MDYgMjU3LjQzNiA0MjcuNDMyIDIzOC4zIDQwNS40MjggMjM4LjN6TTU5Mi45NiAzMzkuNzA2SDU2MC42NzNWMzIyLjQ4N2gtLjcxOGMtOC42MDkgMTMuODctMjMuNDM2IDIwLjU2Ny0zNy43ODYgMjAuNTY3LTM2LjExMyAwLTQ1LjItMjAuMzI4LTQ1LjItNTAuOTQxVjIxNi4wNjFoMzMuOTU5VjI4NS45YzAgMjAuMzI5IDUuOTc5IDMwLjM3MiAyMS43NjUgMzAuMzcyIDE4LjQxNSAwIDI2LjMwNi0xMC4yODMgMjYuMzA2LTM1LjM5M1YyMTYuMDYxSDU5Mi45NnpNNjAyLjQ1MyAzMDIuODc2SDY0MHYzNi44M0g2MDIuNDUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb2xmUGFja0JhdHRhbGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNzMgNDcxLjUzbDEwLjU2IDE1Ljg0IDUuMjgtMTIuMzIgNS4yOCA3VjUxMmMyMS4wNi03LjkyIDIxLjExLTY2Ljg2IDI1LjUxLTk3LjIxIDQuNjItMzEuODktLjg4LTkyLjgxIDgxLjM3LTE0OS4xMS04Ljg4LTIzLjYxLTEyLTQ5LjQzLTIuNjQtODAuMDVDNDIxIDE4OSA0NDcgMTk2LjIxIDQ1Ni40MyAyMzkuNzNsLTMwLjM1IDguMzZjMTEuMTUgMjMgMTcgNDYuNzYgMTMuMiA3Mi4xNEw0MTIgMzEzLjE4bC02LjE2IDMzLjQzLTE4LjQ3LTctOC44IDMzLjM5LTE5LjM1LTcgMjYuMzkgMjEuMTEgOC44LTI4LjE1TDQxOSAzNjQuMmw3LTM1LjYzIDI2LjM5IDE0LjUyYy4yNS0yMCA3LTU4LjA2LTguOC04NC40NWwyNi4zOSA1LjI4YzQtMjIuMDctMi4zOC0zOS4yMS03LjkyLTU2Ljc0bDIyLjQzIDkuNjhjLS40NC0yNS4wNy0yOS45NC01Ni43OS02MS41OC01OC41LTIwLjIyLTEuMDktNTYuNzQtMjUuMTctNTQuMS01MS45IDItMTkuODcgMTcuNDUtNDIuNjIgNDMuMTEtNDkuNy00NCAzNi41MS05LjY4IDY3LjMgNS4yOCA3My40NiA0LjQtMTEuNDQgMTcuNTQtNjkuMDggMC0xMzAuMi00MC4zOSAyMi44Ny04OS42NSA2NS4xLTkzLjIgMTQ3Ljc5bC01OCAzOC43MS0zLjUyIDkzLjI1TDM2OS43OCAyMjBsNyA3LTE3LjU5IDMuNTItNDQgMzguNzEtMTUuODQtNS4yOC0yOC4xIDQ5LjI1LTMuNTIgMTE5LjY0IDIxLjExIDE1Ljg0LTMyLjU1IDE1Ljg0LTMyLjU1LTE1Ljg0IDIxLjExLTE1Ljg0LTMuNTItMTE5LjY0LTI4LjE1LTQ5LjI2LTE1Ljg0IDUuMjgtNDQtMzguNzEtMTcuNTgtMy41MSA3LTcgMTA3LjMzIDU5LjgyLTMuNTItOTMuMjUtNTguMDYtMzguNzFDMTg1IDY1LjEgMTM1Ljc3IDIyLjg3IDk1LjMgMGMtMTcuNTQgNjEuMTItNC40IDExOC43NiAwIDEzMC4yIDE1LTYuMTYgNDkuMjYtMzYuOTUgNS4yOC03My40NiAyNS42NiA3LjA4IDQxLjE1IDI5LjgzIDQzLjExIDQ5LjcgMi42MyAyNi43NC0zMy44OCA1MC44MS01NC4xIDUxLjktMzEuNjUgMS43Mi02MS4xNSAzMy40NC02MS41OSA1OC41MWwyMi40My05LjY4Yy01LjU0IDE3LjUzLTExLjkxIDM0LjY3LTcuOTIgNTYuNzRsMjYuMzktNS4yOGMtMTUuNzYgMjYuMzktOS4wNSA2NC40My04LjggODQuNDVsMjYuMzktMTQuNTIgNyAzNS42MyAyNC42My01LjI4IDguOCAyOC4xNUwxNTMuMzUgMzY2IDEzNCAzNzNsLTguOC0zMy40My0xOC40NyA3LTYuMTYtMzMuNDMtMjcuMjcgN2MtMy44Mi0yNS4zOCAyLTQ5LjEgMTMuMi03Mi4xNGwtMzAuMzUtOC4zNmM5LjQtNDMuNTIgMzUuNDctNTAuNzcgNjMuMzQtNTQuMSA5LjM2IDMwLjYyIDYuMjQgNTYuNDUtMi42NCA4MC4wNSA4Mi4yNSA1Ni4zIDc2Ljc1IDExNy4yMyA4MS4zNyAxNDkuMTEgNC40IDMwLjM1IDQuNDUgODkuMjkgMjUuNTEgOTcuMjF2LTI5LjgzbDUuMjgtNyA1LjI4IDEyLjMyIDEwLjU2LTE1Ljg0IDExLjQ0IDIxLjExIDExLjQzLTIxLjF6bTc5LjE3LTk1TDMzMS4wNiAzNjZjNy40Ny00LjM2IDEzLjc2LTguNDIgMTkuMzUtMTIuMzItLjYgNy4yMi0uMjcgMTMuODQtMy41MSAyMi44NHptMjguMTUtNDkuMjZjLS40IDEwLjk0LS45IDIxLjY2LTEuNzYgMzEuNjctNy44NS0xLjg2LTE1LjU3LTMuOC0yMS4xMS03IDguMjQtNy45NCAxNS41NS0xNi4zMiAyMi44Ny0yNC42OHptMjQuNjMgNS4yOGMwLTEzLjQzLTIuMDUtMjQuMjEtNS4yOC0zMy40M2EyMzUgMjM1IDAgMCAxLTE4LjQ3IDI3LjI3em0zLjUyLTgwLjk0YzE5LjQ0IDEyLjgxIDI3LjggMzMuNjYgMjkuOTEgNTYuMy0xMi4zMi00LjUzLTI0LjYzLTkuMzEtMzYuOTUtMTAuNTYgNS4wNi0xMiA2LjY1LTI4LjE0IDctNDUuNzR6bS0xLjc2LTQ1Ljc0Yy44MSAxNC4zIDEuODQgMjguODIgMS43NiA0Mi4yMyAxOS4yMi04LjExIDI5Ljc4LTkuNzIgNDQtMTQuMDgtMTAuNjEtMTguOTYtMjcuMi0yNS41My00NS43Ni0yOC4xNnpNMTY1LjY4IDM3Ni41MkwxODEuNTIgMzY2Yy03LjQ3LTQuMzYtMTMuNzYtOC40Mi0xOS4zNS0xMi4zMi42IDcuMjYuMjcgMTMuODggMy41MSAyMi44OHptLTI4LjE1LTQ5LjI2Yy40IDEwLjk0LjkgMjEuNjYgMS43NiAzMS42NyA3Ljg1LTEuODYgMTUuNTctMy44IDIxLjExLTctOC4yNC03LjkzLTE1LjU1LTE2LjMxLTIyLjg3LTI0LjY3em0tMjQuNjQgNS4yOGMwLTEzLjQzIDItMjQuMjEgNS4yOC0zMy40M2EyMzUgMjM1IDAgMCAwIDE4LjQ3IDI3LjI3em0tMy41Mi04MC45NGMtMTkuNDQgMTIuODEtMjcuOCAzMy42Ni0yOS45MSA1Ni4zIDEyLjMyLTQuNTMgMjQuNjMtOS4zMSAzNy0xMC41Ni01LTEyLTYuNjUtMjguMTQtNy00NS43NHptMS43Ni00NS43NGMtLjgxIDE0LjMtMS44NCAyOC44Mi0xLjc2IDQyLjIzLTE5LjIyLTguMTEtMjkuNzgtOS43Mi00NC0xNC4wOCAxMC42My0xOC45NSAyNy4yMy0yNS41MiA0NS43Ni0yOC4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV29yZHByZXNzU2ltcGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4zIDggOCAxMTkuMiA4IDI1NmMwIDEzNi43IDExMS4zIDI0OCAyNDggMjQ4czI0OC0xMTEuMyAyNDgtMjQ4QzUwNCAxMTkuMiAzOTIuNyA4IDI1NiA4ek0zMyAyNTZjMC0zMi4zIDYuOS02MyAxOS4zLTkwLjdsMTA2LjQgMjkxLjRDODQuMyA0MjAuNSAzMyAzNDQuMiAzMyAyNTZ6bTIyMyAyMjNjLTIxLjkgMC00My0zLjItNjMtOS4xbDY2LjktMTk0LjQgNjguNSAxODcuOGMuNSAxLjEgMSAyLjEgMS42IDMuMS0yMy4xIDguMS00OCAxMi42LTc0IDEyLjZ6bTMwLjctMzI3LjVjMTMuNC0uNyAyNS41LTIuMSAyNS41LTIuMSAxMi0xLjQgMTAuNi0xOS4xLTEuNC0xOC40IDAgMC0zNi4xIDIuOC01OS40IDIuOC0yMS45IDAtNTguNy0yLjgtNTguNy0yLjgtMTItLjctMTMuNCAxNy43LTEuNCAxOC40IDAgMCAxMS40IDEuNCAyMy40IDIuMWwzNC43IDk1LjJMMjAwLjYgMzkzbC04MS4yLTI0MS41YzEzLjQtLjcgMjUuNS0yLjEgMjUuNS0yLjEgMTItMS40IDEwLjYtMTkuMS0xLjQtMTguNCAwIDAtMzYuMSAyLjgtNTkuNCAyLjgtNC4yIDAtOS4xLS4xLTE0LjQtLjNDMTA5LjYgNzMgMTc4LjEgMzMgMjU2IDMzYzU4IDAgMTEwLjkgMjIuMiAxNTAuNiA1OC41LTEtLjEtMS45LS4yLTIuOS0uMi0yMS45IDAtMzcuNCAxOS4xLTM3LjQgMzkuNiAwIDE4LjQgMTAuNiAzMy45IDIxLjkgNTIuMyA4LjUgMTQuOCAxOC40IDMzLjkgMTguNCA2MS41IDAgMTkuMS03LjMgNDEuMi0xNyA3Mi4xbC0yMi4yIDc0LjMtODAuNy0yMzkuNnptODEuNCAyOTcuMmw2OC4xLTE5Ni45YzEyLjctMzEuOCAxNy01Ny4yIDE3LTc5LjkgMC04LjItLjUtMTUuOC0xLjUtMjIuOSAxNy40IDMxLjggMjcuMyA2OC4yIDI3LjMgMTA3IDAgODIuMy00NC42IDE1NC4xLTExMC45IDE5Mi43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXb3JkcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEuNyAxNjkuNGwxMDEuNSAyNzhDOTIuMiA0MTMgNDMuMyAzNDAuMiA0My4zIDI1NmMwLTMwLjkgNi42LTYwLjEgMTguNC04Ni42em0zMzcuOSA3NS45YzAtMjYuMy05LjQtNDQuNS0xNy41LTU4LjctMTAuOC0xNy41LTIwLjktMzIuNC0yMC45LTQ5LjkgMC0xOS42IDE0LjgtMzcuOCAzNS43LTM3LjguOSAwIDEuOC4xIDIuOC4yLTM3LjktMzQuNy04OC4zLTU1LjktMTQzLjctNTUuOS03NC4zIDAtMTM5LjcgMzguMS0xNzcuOCA5NS45IDUgLjIgOS43LjMgMTMuNy4zIDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc3LjUgMjMwLjRMMjQ5LjggMjQ3bC0zMy4xLTkwLjhjLTExLjUtLjctMjIuMy0yLTIyLjMtMi0xMS41LS43LTEwLjEtMTguMiAxLjMtMTcuNSAwIDAgMzUuMSAyLjcgNTYgMi43IDIyLjIgMCA1Ni43LTIuNyA1Ni43LTIuNyAxMS41LS43IDEyLjggMTYuMiAxLjQgMTcuNSAwIDAtMTEuNSAxLjMtMjQuMyAybDc2LjkgMjI4LjcgMjEuMi03MC45YzktMjkuNCAxNi01MC41IDE2LTY4Ljd6bS0xMzkuOSAyOS4zbC02My44IDE4NS41YzE5LjEgNS42IDM5LjIgOC43IDYwLjEgOC43IDI0LjggMCA0OC41LTQuMyA3MC42LTEyLjEtLjYtLjktMS4xLTEuOS0xLjUtMi45bC02NS40LTE3OS4yem0xODMtMTIwLjdjLjkgNi44IDEuNCAxNCAxLjQgMjEuOSAwIDIxLjYtNCA0NS44LTE2LjIgNzYuMmwtNjUgMTg3LjlDNDI2LjIgNDAzIDQ2OC43IDMzNC41IDQ2OC43IDI1NmMwLTM3LTkuNC03MS44LTI2LTEwMi4xek01MDQgMjU2YzAgMTM2LjgtMTExLjMgMjQ4LTI0OCAyNDhDMTE5LjIgNTA0IDggMzkyLjcgOCAyNTYgOCAxMTkuMiAxMTkuMiA4IDI1NiA4YzEzNi43IDAgMjQ4IDExMS4yIDI0OCAyNDh6bS0xMS40IDBjMC0xMzAuNS0xMDYuMi0yMzYuNi0yMzYuNi0yMzYuNkMxMjUuNSAxOS40IDE5LjQgMTI1LjUgMTkuNCAyNTZTMTI1LjYgNDkyLjYgMjU2IDQ5Mi42YzEzMC41IDAgMjM2LjYtMTA2LjEgMjM2LjYtMjM2LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwYmVnaW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYyLjc5OSAzMjIuMzc0QzUxOS4wMSAzODYuNjgyIDQ2Ni45NjEgNDgwIDM3MC45NDQgNDgwYy0zOS42MDIgMC03OC44MjQtMTcuNjg3LTEwMC4xNDItNTAuMDQtNi44ODcuMzU2LTIyLjcwMi4zNTYtMjkuNTkgMEMyMTkuODQ4IDQ2Mi4zODEgMTgwLjU4OCA0ODAgMTQxLjA2OSA0ODBjLTk1LjQ5IDAtMTQ4LjM0OC05Mi45OTYtOTEuODU1LTE1Ny42MjZDLTI5LjkyNSAxOTAuNTIzIDgwLjQ3OSAzMiAyNTYuMDA2IDMyYzE3NS42MzIgMCAyODUuODcgMTU4LjYyNiAyMDYuNzkzIDI5MC4zNzR6bS0zMzkuNjQ3LTgyLjk3Mmg0MS41Mjl2LTU4LjA3NWgtNDEuNTI5djU4LjA3NXptMjE3LjE4IDg2LjA3MnYtMjMuODM5Yy02MC41MDYgMjAuOTE1LTEzMi4zNTUgOS4xOTgtMTg3LjU4OS0zMy45NzFsLjI0NiAyNC44OTdjNTEuMTAxIDQ2LjM2NyAxMzEuNzQ2IDU3Ljg3NSAxODcuMzQzIDMyLjkxM3ptLTE1MC43NTMtODYuMDcyaDE2Ni4wNTh2LTU4LjA3NUgxODkuNTc5djU4LjA3NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3BleHBsb3JlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMjU2YzAgMTQxLjItMTE0LjcgMjU2LTI1NiAyNTZDMTE0LjggNTEyIDAgMzk3LjMgMCAyNTZTMTE0LjcgMCAyNTYgMHMyNTYgMTE0LjcgMjU2IDI1NnptLTMyIDBjMC0xMjMuMi0xMDAuMy0yMjQtMjI0LTIyNEMxMzIuNSAzMiAzMiAxMzIuNSAzMiAyNTZzMTAwLjUgMjI0IDIyNCAyMjQgMjI0LTEwMC41IDIyNC0yMjR6TTE2MC45IDEyNC42bDg2LjkgMzcuMS0zNy4xIDg2LjktODYuOS0zNy4xIDM3LjEtODYuOXptMTEwIDE2OS4xbDQ2LjYgOTRoLTE0LjZsLTUwLTEwMC00OC45IDEwMGgtMTRsNTEuMS0xMDYuOS0yMi4zLTkuNCA2LTE0IDY4LjYgMjkuMS02IDE0LjMtMTYuNS03LjF6bS0xMS44LTExNi4zbDY4LjYgMjkuNC0yOS40IDY4LjNMMjMwIDI0NmwyOS4xLTY4LjZ6bTgwLjMgNDIuOWw1NC42IDIzLjEtMjMuNCA1NC4zLTU0LjMtMjMuMSAyMy4xLTU0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdwZm9ybXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDc1LjJ2MzYxLjdjMCAyNC4zLTE5IDQzLjItNDMuMiA0My4ySDQzLjJDMTkuMyA0ODAgMCA0NjEuNCAwIDQzNi44Vjc1LjJDMCA1MS4xIDE4LjggMzIgNDMuMiAzMmgzNjEuN2MyNCAwIDQzLjEgMTguOCA0My4xIDQzLjJ6bS0zNy4zIDM2MS42Vjc1LjJjMC0zLTIuNi01LjgtNS44LTUuOGgtOS4zTDI4NS4zIDE0NCAyMjQgOTQuMSAxNjIuOCAxNDQgNTIuNSA2OS4zaC05LjNjLTMuMiAwLTUuOCAyLjgtNS44IDUuOHYzNjEuN2MwIDMgMi42IDUuOCA1LjggNS44aDM2MS43YzMuMi4xIDUuOC0yLjcgNS44LTUuOHpNMTUwLjIgMTg2djM3SDc2Ljd2LTM3aDczLjV6bTAgNzQuNHYzNy4zSDc2Ljd2LTM3LjNoNzMuNXptMTEuMS0xNDcuM2w1NC00My43SDk2LjhsNjQuNSA0My43em0yMTAgNzIuOXYzN2gtMTk2di0zN2gxOTZ6bTAgNzQuNHYzNy4zaC0xOTZ2LTM3LjNoMTk2em0tODQuNi0xNDcuM2w2NC41LTQzLjdIMjMyLjhsNTMuOSA0My43ek0zNzEuMyAzMzV2MzcuM2gtOTkuNFYzMzVoOTkuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV3ByZXNzciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0xNzEuMzMgMTU4LjZjLTE1LjE4IDM0LjUxLTMwLjM3IDY5LjAyLTQ1LjYzIDEwMy41LTIuNDQgNS41MS02Ljg5IDguMjQtMTIuOTcgOC4yNC0yMy4wMi0uMDEtNDYuMDMuMDYtNjkuMDUtLjA1LTUuMTItLjAzLTguMjUgMS44OS0xMC4zNCA2LjcyLTEwLjE5IDIzLjU2LTIwLjYzIDQ3LTMwLjk1IDcwLjUtMS41NCAzLjUxLTQuMDYgNS4yOS03LjkyIDUuMjktNDUuOTQtLjAxLTkxLjg3LS4wMi0xMzcuODEgMC0zLjEzIDAtNS42My0xLjE1LTcuNzItMy40NS0xMS4yMS0xMi4zMy0yMi40Ni0yNC42My0zMy42OC0zNi45NC0yLjY5LTIuOTUtMi43OS02LjE4LTEuMjEtOS43MyA4LjY2LTE5LjU0IDE3LjI3LTM5LjEgMjUuODktNTguNjYgMTIuOTMtMjkuMzUgMjUuODktNTguNjkgMzguNzUtODguMDggMS43LTMuODggNC4yOC01LjY4IDguNTQtNS42NSAxNC4yNC4xIDI4LjQ4LjAyIDQyLjcyLjA1IDYuMjQuMDEgOS4yIDQuODQgNi42NiAxMC41OS0xMy42IDMwLjc3LTI3LjE3IDYxLjU1LTQwLjc0IDkyLjMzLTUuNzIgMTIuOTktMTEuNDIgMjUuOTktMTcuMDkgMzktMy45MSA4Ljk1IDcuMDggMTEuOTcgMTAuOTUgNS42LjIzLS4zNy0xLjQyIDQuMTggMzAuMDEtNjcuNjkgMS4zNi0zLjEgMy40MS00LjQgNi43Ny00LjM5IDE1LjIxLjA4IDMwLjQzLjAyIDQ1LjY0LjA0IDUuNTYuMDEgNy45MSAzLjY0IDUuNjYgOC43NS04LjMzIDE4Ljk2LTE2LjcxIDM3LjktMjQuOTggNTYuODktNC45OCAxMS40MyA4LjA4IDEyLjQ5IDExLjI4IDUuMzMuMDQtLjA4IDI3Ljg5LTYzLjMzIDMyLjE5LTczLjE2IDIuMDItNC42MSA1LjQ0LTYuNTEgMTAuMzUtNi41IDI2LjQzLjA1IDUyLjg2IDAgNzkuMjkuMDUgMTIuNDQuMDIgMTMuOTMtMTMuNjUgMy45LTEzLjY0LTI1LjI2LjAzLTUwLjUyLjAyLTc1Ljc4LjAyLTYuMjcgMC03Ljg0LTIuNDctNS4yNy04LjI3IDUuNzgtMTMuMDYgMTEuNTktMjYuMTEgMTcuMy0zOS4yMSAxLjczLTMuOTYgNC41Mi01Ljc5IDguODQtNS43OCAyMy4wOS4wNiAyNS45OC4wMiAxMzAuNzguMDMgNi4wOC0uMDEgOC4wMyAyLjc5IDUuNjIgOC4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWGJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjkuOSAzMTguMmM0NC4zIDU0LjMgNjQuNyA5OC44IDU0LjQgMTE4LjctNy45IDE1LjEtNTYuNyA0NC42LTkyLjYgNTUuOS0yOS42IDkuMy02OC40IDEzLjMtMTAwLjQgMTAuMi0zOC4yLTMuNy03Ni45LTE3LjQtMTEwLjEtMzlDOTMuMyA0NDUuOCA4NyA0MzguMyA4NyA0MjMuNGMwLTI5LjkgMzIuOS04Mi4zIDg5LjItMTQyLjEgMzItMzMuOSA3Ni41LTczLjcgODEuNC03Mi42IDkuNCAyLjEgODQuMyA3NS4xIDExMi4zIDEwOS41ek0xODguNiAxNDMuOGMtMjkuNy0yNi45LTU4LjEtNTMuOS04Ni40LTYzLjQtMTUuMi01LjEtMTYuMy00LjgtMjguNyA4LjEtMjkuMiAzMC40LTUzLjUgNzkuNy02MC4zIDEyMi40LTUuNCAzNC4yLTYuMSA0My44LTQuMiA2MC41IDUuNiA1MC41IDE3LjMgODUuNCA0MC41IDEyMC45IDkuNSAxNC42IDEyLjEgMTcuMyA5LjMgOS45LTQuMi0xMS0uMy0zNy41IDkuNS02NCAxNC4zLTM5IDUzLjktMTEyLjkgMTIwLjMtMTk0LjR6bTMxMS42IDYzLjVDNDgzLjMgMTI3LjMgNDMyLjcgNzcgNDI1LjYgNzdjLTcuMyAwLTI0LjIgNi41LTM2IDEzLjktMjMuMyAxNC41LTQxIDMxLjQtNjQuMyA1Mi44QzM2Ny43IDE5NyA0MjcuNSAyODMuMSA0NDguMiAzNDZjNi44IDIwLjcgOS43IDQxLjEgNy40IDUyLjMtMS43IDguNS0xLjcgOC41IDEuNCA0LjYgNi4xLTcuNyAxOS45LTMxLjMgMjUuNC00My41IDcuNC0xNi4yIDE1LTQwLjIgMTguNi01OC43IDQuMy0yMi41IDMuOS03MC44LS44LTkzLjR6TTE0MS4zIDQzQzE4OSA0MC41IDI1MSA3Ny41IDI1NS42IDc4LjRjLjcuMSAxMC40LTQuMiAyMS42LTkuNyA2My45LTMxLjEgOTQtMjUuOCAxMDcuNC0yNS4yLTYzLjktMzkuMy0xNTIuNy01MC0yMzMuOS0xMS43LTIzLjQgMTEuMS0yNCAxMS45LTkuNCAxMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYaW5nU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE0MC40IDMyMC4ySDkzLjhjLTUuNSAwLTguNy01LjMtNi0xMC4zbDQ5LjMtODYuN2MuMSAwIC4xLS4xIDAtLjJsLTMxLjQtNTRjLTMtNS42LjItMTAuMSA2LTEwLjFoNDYuNmM1LjIgMCA5LjUgMi45IDEyLjkgOC43bDMxLjkgNTUuM2MtMS4zIDIuMy0xOCAzMS43LTUwLjEgODguMi0zLjUgNi4yLTcuNyA5LjEtMTIuNiA5LjF6bTIxOS43LTIxNC4xTDI1Ny4zIDI4Ni44di4ybDY1LjUgMTE5YzIuOCA1LjEuMSAxMC4xLTYgMTAuMWgtNDYuNmMtNS41IDAtOS43LTIuOS0xMi45LTguN2wtNjYtMTIwLjNjMi4zLTQuMSAzNi44LTY0LjkgMTAzLjQtMTgyLjMgMy4zLTUuOCA3LjQtOC43IDEyLjUtOC43aDQ2LjljNS43LS4xIDguOCA0LjcgNiAxMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjIuNyAyMTBjLTEuOCAzLjMtMjUuMiA0NC40LTcwLjEgMTIzLjUtNC45IDguMy0xMC44IDEyLjUtMTcuNyAxMi41SDkuOGMtNy43IDAtMTIuMS03LjUtOC41LTE0LjRsNjktMTIxLjNjLjIgMCAuMi0uMSAwLS4zbC00My45LTc1LjZjLTQuMy03LjguMy0xNC4xIDguNS0xNC4xSDEwMGM3LjMgMCAxMy4zIDQuMSAxOCAxMi4ybDQ0LjcgNzcuNXpNMzgyLjYgNDYuMWwtMTQ0IDI1M3YuM0wzMzAuMiA0NjZjMy45IDcuMS4yIDE0LjEtOC41IDE0LjFoLTY1LjJjLTcuNiAwLTEzLjYtNC0xOC0xMi4ybC05Mi40LTE2OC41YzMuMy01LjggNTEuNS05MC44IDE0NC44LTI1NS4yIDQuNi04LjEgMTAuNC0xMi4yIDE3LjUtMTIuMmg2NS43YzggMCAxMi4zIDYuNyA4LjUgMTQuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWUNvbWJpbmF0b3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDMydjQ0OEgwVjMyaDQ0OHpNMjM2IDI4Ny41TDMxMy41IDE0MmgtMzIuN0wyMzUgMjMzYy00LjcgOS4zLTkgMTguMy0xMi44IDI2LjhMMjEwIDIzM2wtNDUuMi05MWgtMzVsNzYuNyAxNDMuOHY5NC41SDIzNnYtOTIuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWFob28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjY5LDE0MS4wNiwxNjcsMjg0LjIzLDExMSwxNDEuMDZIMTQuOTNMMTIwLjc2LDM5MC4xOSw4Mi4xOSw0ODBoOTQuMTdMMzE3LjI3LDE0MS4wNlptMTA1LjQsMTM1Ljc5YTU4LjIyLDU4LjIyLDAsMSwwLDU4LjIyLDU4LjIyQTU4LjIyLDU4LjIyLDAsMCwwLDMyOS4wOSwyNzYuODVaTTM5NC42NSwzMmwtOTMsMjIzLjQ3SDQwNi40NEw0OTkuMDcsMzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhbW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjEuNzggMTUyLjE3QTIzLjA2IDIzLjA2IDAgMCAwIDQwMC45IDExMmMtLjgzLjQzLTEuNzEuOS0yLjYzIDEuNC0xNS4yNSA4LjQtMTE4LjMzIDgwLjYyLTEwNi42OSA4OC43N3M4Mi4wNC0yMy42MSAxMzAuMi01MHptMCAyMTcuMTdjLTQ4LjE2LTI2LjM4LTExOC42NC01OC4xLTEzMC4yLTUwczkxLjQyIDgwLjM1IDEwNi42OSA4OC43NGMuOTIuNTEgMS44IDEgMi42MyAxLjQxYTIzLjA3IDIzLjA3IDAgMCAwIDIwLjg4LTQwLjE1ek00NjQuMjEgMjM3Yy0uOTUgMC0xLjk1LS4wNi0zLS4wNi0xNy40IDAtMTQyLjUyIDEzLjc2LTEzNi4yNCAyNi41MXM4My4zIDE4Ljc0IDEzOC4yMSAxOC43NmEyMyAyMyAwIDAgMCAxLTQ1LjIxek0zMSA5Ni42NWEyNC44OCAyNC44OCAwIDAgMSA0Ni4xNC0xOC40bDgxIDIwNS4wNmgxLjIxbDc3LTIwMy41M2EyMy41MiAyMy41MiAwIDAgMSA0NC40NSAxNS4yN0wxNzEuMiAzNjguNDRDMTUyLjY1IDQxNS42NiAxMzQuMDggNDQ4IDc3LjkxIDQ0OGExMzkuNjcgMTM5LjY3IDAgMCAxLTIzLjgxLTEuOTUgMjEuMzEgMjEuMzEgMCAwIDEgNi45LTQxLjc3Yy42Ni4wNiAxMC45MS42NiAxMy44Ni42NiAzMC40NyAwIDQzLjc0LTE4Ljk0IDU4LjA3LTU5LjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYW5kZXhJbnRlcm5hdGlvbmFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOS41IDUxMlYzNDUuOUwxOC41IDQ4aDU1LjhsODEuOCAyMjkuN0wyNTAuMiAwaDUxLjNMMTgwLjggMzQ3LjhWNTEyaC01MS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZYW5kZXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUzLjEgMzE1LjhMNjUuNyA1MTJIMmw5Ni0yMDkuOGMtNDUuMS0yMi45LTc1LjItNjQuNC03NS4yLTE0MS4xQzIyLjcgNTMuNyA5MC44IDAgMTcxLjcgMEgyNTR2NTEyaC01NS4xVjMxNS44aC00NS44em00NS44LTI2OS4zaC0yOS40Yy00NC40IDAtODcuNCAyOS40LTg3LjQgMTE0LjYgMCA4Mi4zIDM5LjQgMTA4LjggODcuNCAxMDguOGgyOS40VjQ2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVlhcm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzkzLjkgMzQ1LjJjLTM5IDkuMy00OC40IDMyLjEtMTA0IDQ3LjQgMCAwLTIuNyA0LTEwLjQgNS44LTEzLjQgMy4zLTYzLjkgNi02OC41IDYuMS0xMi40LjEtMTkuOS0zLjItMjItOC4yLTYuNC0xNS4zIDkuMi0yMiA5LjItMjItOC4xLTUtOS05LjktOS44LTguMS0yLjQgNS44LTMuNiAyMC4xLTEwLjEgMjYuNS04LjggOC45LTI1LjUgNS45LTM1LjMuOC0xMC44LTUuNy44LTE5LjIuOC0xOS4ycy01LjggMy40LTEwLjUtMy42Yy02LTkuMy0xNy4xLTM3LjMgMTEuNS02Mi0xLjMtMTAuMS00LjYtNTMuNyA0MC42LTg1LjYgMCAwLTIwLjYtMjIuOC0xMi45LTQzLjMgNS0xMy40IDctMTMuMyA4LjYtMTMuOSA1LjctMi4yIDExLjMtNC42IDE1LjQtOS4xIDIwLjYtMjIuMiA0Ni44LTE4IDQ2LjgtMThzMTIuNC0zNy44IDIzLjktMzAuNGMzLjUgMi4zIDE2LjMgMzAuNiAxNi4zIDMwLjZzMTMuNi03LjkgMTUuMS01YzguMiAxNiA5LjIgNDYuNSA1LjYgNjUuMS02LjEgMzAuNi0yMS40IDQ3LjEtMjcuNiA1Ny41LTEuNCAyLjQgMTYuNSAxMCAyNy44IDQxLjMgMTAuNCAyOC42IDEuMSA1Mi43IDIuOCA1NS4zLjggMS40IDEzLjcuOCAzNi40LTEzLjIgMTIuOC03LjkgMjguMS0xNi45IDQ1LjQtMTcgMTYuNy0uNSAxNy42IDE5LjIgNC45IDIyLjJ6TTQ5NiAyNTZjMCAxMzYuOS0xMTEuMSAyNDgtMjQ4IDI0OFMwIDM5Mi45IDAgMjU2IDExMS4xIDggMjQ4IDhzMjQ4IDExMS4xIDI0OCAyNDh6bS03OS4zIDc1LjJjLTEuNy0xMy42LTEzLjItMjMtMjgtMjIuOC0yMiAuMy00MC41IDExLjctNTIuOCAxOS4yLTQuOCAzLTguOSA1LjItMTIuNCA2LjggMy4xLTQ0LjUtMjIuNS03My4xLTI4LjctNzkuNCA3LjgtMTEuMyAxOC40LTI3LjggMjMuNC01My4yIDQuMy0yMS43IDMtNTUuNS02LjktNzQuNS0xLjYtMy4xLTcuNC0xMS4yLTIxLTcuNC05LjctMjAtMTMtMjIuMS0xNS42LTIzLjgtMS4xLS43LTIzLjYtMTYuNC00MS40IDI4LTEyLjIuOS0zMS4zIDUuMy00Ny41IDIyLjgtMiAyLjItNS45IDMuOC0xMC4xIDUuNGguMWMtOC40IDMtMTIuMyA5LjktMTYuOSAyMi4zLTYuNSAxNy40LjIgMzQuNiA2LjggNDUuNy0xNy44IDE1LjktMzcgMzkuOC0zNS43IDgyLjUtMzQgMzYtMTEuOCA3My01LjYgNzkuNi0xLjYgMTEuMSAzLjcgMTkuNCAxMiAyMy44IDEyLjYgNi43IDMwLjMgOS42IDQzLjkgMi44IDQuOSA1LjIgMTMuOCAxMC4xIDMwIDEwLjEgNi44IDAgNTgtMi45IDcyLjYtNi41IDYuOC0xLjYgMTEuNS00LjUgMTQuNi03LjEgOS44LTMuMSAzNi44LTEyLjMgNjIuMi0yOC43IDE4LTExLjcgMjQuMi0xNC4yIDM3LjYtMTcuNCAxMi45LTMuMiAyMS0xNS4xIDE5LjQtMjguMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWVscCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00Mi45IDI0MC4zMmw5OS42MiA0OC42MWMxOS4yIDkuNCAxNi4yIDM3LjUxLTQuNSA0Mi43MUwzMC41IDM1OC40NWEyMi43OSAyMi43OSAwIDAgMS0yOC4yMS0xOS42IDE5Ny4xNiAxOTcuMTYgMCAwIDEgOS04NS4zMiAyMi44IDIyLjggMCAwIDEgMzEuNjEtMTMuMjF6bTQ0IDIzOS4yNWExOTkuNDUgMTk5LjQ1IDAgMCAwIDc5LjQyIDMyLjExQTIyLjc4IDIyLjc4IDAgMCAwIDE5Mi45NCA0OTBsMy45LTExMC44MmMuNy0yMS4zLTI1LjUtMzEuOTEtMzkuODEtMTYuMWwtNzQuMjEgODIuNGEyMi44MiAyMi44MiAwIDAgMCA0LjA5IDM0LjA5em0xNDUuMzQtMTA5LjkybDU4LjgxIDk0YTIyLjkzIDIyLjkzIDAgMCAwIDM0IDUuNSAxOTguMzYgMTk4LjM2IDAgMCAwIDUyLjcxLTY3LjYxQTIzIDIzIDAgMCAwIDM2NC4xNyAzNzBsLTEwNS40Mi0zNC4yNmMtMjAuMzEtNi41LTM3LjgxIDE1LjgtMjYuNTEgMzMuOTF6bTE0OC4zMy0xMzIuMjNhMTk3LjQ0IDE5Ny40NCAwIDAgMC01MC40MS02OS4zMSAyMi44NSAyMi44NSAwIDAgMC0zNCA0LjRsLTYyIDkxLjkyYy0xMS45IDE3LjcgNC43IDQwLjYxIDI1LjIgMzQuNzFMMzY2IDI2OC42M2EyMyAyMyAwIDAgMCAxNC42MS0zMS4yMXpNNjIuMTEgMzAuMThhMjIuODYgMjIuODYgMCAwIDAtOS45IDMybDEwNC4xMiAxODAuNDRjMTEuNyAyMC4yIDQyLjYxIDExLjkgNDIuNjEtMTEuNFYyMi44OGEyMi42NyAyMi42NyAwIDAgMC0yNC41LTIyLjggMzIwLjM3IDMyMC4zNyAwIDAgMC0xMTIuMzMgMzAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWW9hc3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTEuMyA3NmgxODZsLTcgMTguOWgtMTc5Yy0zOS43IDAtNzEuOSAzMS42LTcxLjkgNzAuM3YyMDUuNGMwIDM1LjQgMjQuOSA3MC4zIDg0IDcwLjNWNDYwSDkxLjNDNDEuMiA0NjAgMCA0MTkuOCAwIDM3MC41VjE2NS4yQzAgMTE1LjkgNDAuNyA3NiA5MS4zIDc2em0yMjkuMS01Nmg2Ni41QzI0My4xIDM5OC4xIDI0MS4yIDQxOC45IDIwMi4yIDQ1OS4zYy0yMC44IDIxLjYtNDkuMyAzMS43LTc4LjMgMzIuN3YtNTEuMWM0OS4yLTcuNyA2NC42LTQ5LjkgNjQuNi03NS4zIDAtMjAuMS42LTEyLjYtODIuMS0yMjMuMmg2MS40TDIxOC4yIDI5OSAzMjAuNCAyMHpNNDQ4IDE2MS41VjQ2MEgyMzRjNi42LTkuNiAxMC43LTE2LjMgMTIuMS0xOS40aDE4Mi41VjE2MS41YzAtMzIuNS0xNy4xLTUxLjktNDguMi02Mi45bDYuNy0xNy42YzQxLjcgMTMuNiA2MC45IDQzLjEgNjAuOSA4MC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFZb3V0dWJlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni44IDIwMi4xbDk1LjIgNTQuMS05NS4yIDU0LjFWMjAyLjF6TTQ0OCA4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHptLTQyIDE3Ni4zczAtNTkuNi03LjYtODguMmMtNC4yLTE1LjgtMTYuNS0yOC4yLTMyLjItMzIuNEMzMzcuOSAxMjggMjI0IDEyOCAyMjQgMTI4cy0xMTMuOSAwLTE0Mi4yIDcuN2MtMTUuNyA0LjItMjggMTYuNi0zMi4yIDMyLjQtNy42IDI4LjUtNy42IDg4LjItNy42IDg4LjJzMCA1OS42IDcuNiA4OC4yYzQuMiAxNS44IDE2LjUgMjcuNyAzMi4yIDMxLjlDMTEwLjEgMzg0IDIyNCAzODQgMjI0IDM4NHMxMTMuOSAwIDE0Mi4yLTcuN2MxNS43LTQuMiAyOC0xNi4xIDMyLjItMzEuOSA3LjYtMjguNSA3LjYtODguMSA3LjYtODguMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWW91dHViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDkuNjU1IDEyNC4wODNjLTYuMjgxLTIzLjY1LTI0Ljc4Ny00Mi4yNzYtNDguMjg0LTQ4LjU5N0M0NTguNzgxIDY0IDI4OCA2NCAyODggNjRTMTE3LjIyIDY0IDc0LjYyOSA3NS40ODZjLTIzLjQ5NyA2LjMyMi00Mi4wMDMgMjQuOTQ3LTQ4LjI4NCA0OC41OTctMTEuNDEyIDQyLjg2Ny0xMS40MTIgMTMyLjMwNS0xMS40MTIgMTMyLjMwNXMwIDg5LjQzOCAxMS40MTIgMTMyLjMwNWM2LjI4MSAyMy42NSAyNC43ODcgNDEuNSA0OC4yODQgNDcuODIxQzExNy4yMiA0NDggMjg4IDQ0OCAyODggNDQ4czE3MC43OCAwIDIxMy4zNzEtMTEuNDg2YzIzLjQ5Ny02LjMyMSA0Mi4wMDMtMjQuMTcxIDQ4LjI4NC00Ny44MjEgMTEuNDEyLTQyLjg2NyAxMS40MTItMTMyLjMwNSAxMS40MTItMTMyLjMwNXMwLTg5LjQzOC0xMS40MTItMTMyLjMwNXptLTMxNy41MSAyMTMuNTA4VjE3NS4xODVsMTQyLjczOSA4MS4yMDUtMTQyLjczOSA4MS4yMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVpoaWh1IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3MC41NCAxNDguMTN2MjE3LjU0bDIzLjQzLjAxIDcuNzEgMjYuMzcgNDIuMDEtMjYuMzdoNDkuNTNWMTQ4LjEzSDE3MC41NHptOTcuNzUgMTkzLjkzaC0yNy45NGwtMjcuOSAxNy41MS01LjA4LTE3LjQ3LTExLjktLjA0VjE3MS43NWg3Mi44MnYxNzAuMzF6bS0xMTguNDYtOTQuMzlIOTcuNWMxLjc0LTI3LjEgMi4yLTUxLjU5IDIuMi03My40Nmg1MS4xNnMxLjk3LTIyLjU2LTguNTgtMjIuMzFoLTg4LjVjMy40OS0xMy4xMiA3Ljg3LTI2LjY2IDEzLjEyLTQwLjY3IDAgMC0yNC4wNyAwLTMyLjI3IDIxLjU3LTMuMzkgOC45LTEzLjIxIDQzLjE0LTMwLjcgNzguMTIgNS44OS0uNjQgMjUuMzctMS4xOCAzNi44NC0yMi4yMSAyLjExLTUuODkgMi41MS02LjY2IDUuMTQtMTQuNTNoMjguODdjMCAxMC41LTEuMiA2Ni44OC0xLjY4IDczLjQ0SDIwLjgzYy0xMS43NCAwLTE1LjU2IDIzLjYyLTE1LjU2IDIzLjYyaDY1LjU4QzY2LjQ1IDMyMS4xIDQyLjgzIDM2My4xMiAwIDM5Ni4zNGMyMC40OSA1Ljg1IDQwLjkxLS45MyA1MS05LjkgMCAwIDIyLjk4LTIwLjkgMzUuNTktNjkuMjVsNTMuOTYgNjQuOTRzNy45MS0yNi44OS0xLjI0LTM5Ljk5Yy03LjU4LTguOTItMjguMDYtMzMuMDYtMzYuNzktNDEuODFMODcuOSAzMTEuOTVjNC4zNi0xMy45OCA2Ljk5LTI3LjU1IDcuODctNDAuNjdoNjEuNjVzLS4wOS0yMy42Mi03LjU5LTIzLjYydi4wMXptNDEyLjAyLTEuNmMyMC44My0yNS42NCA0NC45OC01OC41NyA0NC45OC01OC41N3MtMTguNjUtMTQuOC0yNy4zOC00LjA2Yy02IDguMTUtMzYuODMgNDguMi0zNi44MyA0OC4ybDE5LjIzIDE0LjQzem0tMTUwLjA5LTU5LjA5Yy05LjAxLTguMjUtMjUuOTEgMi4xMy0yNS45MSAyLjEzczM5LjUyIDU1LjA0IDQxLjEyIDU3LjQ1bDE5LjQ2LTEzLjczcy0yNS42Ny0zNy42MS0zNC42Ni00NS44NmgtLjAxek02NDAgMjU4LjM1Yy0xOS43OCAwLTEzMC45MS45My0xMzEuMDYuOTN2LTEwMWM0LjgxIDAgMTIuNDItLjQgMjIuODUtMS4yIDQwLjg4LTIuNDEgNzAuMTMtNCA4Ny43Ny00LjgxIDAgMCAxMi4yMi0yNy4xOS0uNTktMzMuNDQtMy4wNy0xLjE4LTIzLjE3IDQuNTgtMjMuMTcgNC41OHMtMTY1LjIyIDE2LjQ5LTIzMi4zNiAxOC4wNWMxLjYgOC44MiA3LjYyIDE3LjA4IDE1Ljc4IDE5LjU1IDEzLjMxIDMuNDggMjIuNjkgMS43IDQ5LjE1Ljg5IDI0LjgzLTEuNiA0My42OC0yLjQzIDU2LjUxLTIuNDN2OTkuODFIMzUxLjQxczIuODIgMjIuMzEgMjUuNTEgMjIuODVoMTA3Ljk0djcwLjkyYzAgMTMuOTctMTEuMTkgMjEuOTktMjQuNDggMjEuMTItMTQuMDguMTEtMjYuMDgtMS4xNS00MS42OS0xLjgxIDEuOTkgMy45NyA2LjMzIDE0LjM5IDE5LjMxIDIxLjg0IDkuODggNC44MSAxNi4xNyA2LjU3IDI2LjAyIDYuNTcgMjkuNTYgMCA0NS42Ny0xNy4yOCA0NC44OS00NS4zMXYtNzMuMzJoMTIyLjM2YzkuNjggMCA4LjctMjMuNzggOC43LTIzLjc4bC4wMy0uMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ny41MiAyNzJoMzYuOTZMMTc2IDIxOC43OCAxNTcuNTIgMjcyek0zNTIgMjU2Yy0xMy4yMyAwLTI0IDEwLjc3LTI0IDI0czEwLjc3IDI0IDI0IDI0IDI0LTEwLjc3IDI0LTI0LTEwLjc3LTI0LTI0LTI0ek00NjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI1MC41OCAzNTJoLTE2Ljk0Yy02LjgxIDAtMTIuODgtNC4zMi0xNS4xMi0xMC43NUwyMTEuMTUgMzIwaC03MC4yOWwtNy4zOCAyMS4yNUExNiAxNiAwIDAgMSAxMTguMzYgMzUyaC0xNi45NGMtMTEuMDEgMC0xOC43My0xMC44NS0xNS4xMi0yMS4yNUwxNDAgMTc2LjEyQTIzLjk5NSAyMy45OTUgMCAwIDEgMTYyLjY3IDE2MGgyNi42NkEyMy45OSAyMy45OSAwIDAgMSAyMTIgMTc2LjEzbDUzLjY5IDE1NC42MmMzLjYxIDEwLjQtNC4xMSAyMS4yNS0xNS4xMSAyMS4yNXpNNDI0IDMzNmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMTZjLTQuODUgMC05LjA0LTIuMjctMTEuOTgtNS42OC04LjYyIDMuNjYtMTguMDkgNS42OC0yOC4wMiA1LjY4LTM5LjcgMC03Mi0zMi4zLTcyLTcyczMyLjMtNzIgNzItNzJjOC40NiAwIDE2LjQ2IDEuNzMgMjQgNC40MlYxNzZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMTZjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGRyZXNzQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyMGMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDhoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwdi02NGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwem0tMjI4LTMyYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkgxMTguNEMxMDYgMzg0IDk2IDM3NS40IDk2IDM2NC44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBZGRyZXNzQ2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMzUyIDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkg4Ni40Qzc0IDM4NCA2NCAzNzUuNCA2NCAzNjQuOHYtMTkuMmMwLTMxLjggMzAuMS01Ny42IDY3LjItNTcuNmg1YzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDVjMzcuMSAwIDY3LjIgMjUuOCA2Ny4yIDU3LjZ2MTkuMnpNNTEyIDMxMmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2em0wLTY0YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtNjRjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWRqdXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2YzAgMTM2Ljk2NiAxMTEuMDMzIDI0OCAyNDggMjQ4czI0OC0xMTEuMDM0IDI0OC0yNDhTMzkyLjk2NiA4IDI1NiA4IDggMTE5LjAzMyA4IDI1NnptMjQ4IDE4NFY3MmMxMDEuNzA1IDAgMTg0IDgyLjMxMSAxODQgMTg0IDAgMTAxLjcwNS04Mi4zMTEgMTg0LTE4NCAxODR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFpckZyZXNoZW5lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTYwSDk2QzQzIDE2MCAwIDIwMyAwIDI1NlY0ODBDMCA0OTcuNjI1IDE0LjM3NSA1MTIgMzIgNTEySDI4OEMzMDUuNjI1IDUxMiAzMjAgNDk3LjYyNSAzMjAgNDgwVjI1NkMzMjAgMjAzIDI3NyAxNjAgMjI0IDE2MFpNMTYwIDQxNkMxMTUuODc1IDQxNiA4MCAzODAuMTI1IDgwIDMzNlMxMTUuODc1IDI1NiAxNjAgMjU2UzI0MCAyOTEuODc1IDI0MCAzMzZTMjA0LjEyNSA0MTYgMTYwIDQxNlpNMjI0IDMyQzIyNCAxNC4zNzUgMjA5LjYyNSAwIDE5MiAwSDEyOEMxMTAuMzc1IDAgOTYgMTQuMzc1IDk2IDMyVjEyOEgyMjRWMzJaTTM4MS43ODEgNTEuNTc4QzM4MyA1MC45NjkgMzg0IDQ5LjM1OSAzODQgNDhDMzg0IDQ2LjYyNSAzODMgNDUuMDMxIDM4MS43ODEgNDQuNDIyTDM1MiAzMkwzMzkuNTYyIDIuMjE5QzMzOC45NjkgMSAzMzcuMzc1IDAgMzM2IDBTMzMzLjAzMSAxIDMzMi40MDYgMi4yMTlMMzIwIDMyTDI5MC4yMTkgNDQuNDIyQzI4OSA0NS4wMzEgMjg4IDQ2LjYyNSAyODggNDhDMjg4IDQ5LjM1OSAyODkgNTAuOTY5IDI5MC4yMTkgNTEuNTc4TDMyMCA2NEwzMzIuNDA2IDkzLjc4MUMzMzMuMDMxIDk1IDMzNC42MjUgOTYgMzM2IDk2UzMzOC45NjkgOTUgMzM5LjU2MiA5My43ODFMMzUyIDY0TDM4MS43ODEgNTEuNTc4Wk00NDggNjRMNDYwLjQwNiA5My43ODFDNDYxLjAzMSA5NSA0NjIuNjI1IDk2IDQ2NCA5NlM0NjYuOTY5IDk1IDQ2Ny41NjIgOTMuNzgxTDQ4MCA2NEw1MDkuNzgxIDUxLjU3OEM1MTEgNTAuOTY5IDUxMiA0OS4zNTkgNTEyIDQ4QzUxMiA0Ni42MjUgNTExIDQ1LjAzMSA1MDkuNzgxIDQ0LjQyMkw0ODAgMzJMNDY3LjU2MiAyLjIxOUM0NjYuOTY5IDEgNDY1LjM3NSAwIDQ2NCAwUzQ2MS4wMzEgMSA0NjAuNDA2IDIuMjE5TDQ0OCAzMkw0MTguMjE5IDQ0LjQyMkM0MTcgNDUuMDMxIDQxNiA0Ni42MjUgNDE2IDQ4QzQxNiA0OS4zNTkgNDE3IDUwLjk2OSA0MTguMjE5IDUxLjU3OEw0NDggNjRaTTQ4MCAyMjRMNDY3LjU2MiAxOTQuMjE5QzQ2Ni45NjkgMTkzIDQ2NS4zNzUgMTkyIDQ2NCAxOTJTNDYxLjAzMSAxOTMgNDYwLjQwNiAxOTQuMjE5TDQ0OCAyMjRMNDE4LjIxOSAyMzYuNDIyQzQxNyAyMzcuMDMxIDQxNiAyMzguNjI1IDQxNiAyNDBDNDE2IDI0MS4zNTkgNDE3IDI0Mi45NjkgNDE4LjIxOSAyNDMuNTc4TDQ0OCAyNTZMNDYwLjQwNiAyODUuNzgxQzQ2MS4wMzEgMjg3IDQ2Mi42MjUgMjg4IDQ2NCAyODhTNDY2Ljk2OSAyODcgNDY3LjU2MiAyODUuNzgxTDQ4MCAyNTZMNTA5Ljc4MSAyNDMuNTc4QzUxMSAyNDIuOTY5IDUxMiAyNDEuMzU5IDUxMiAyNDBDNTEyIDIzOC42MjUgNTExIDIzNy4wMzEgNTA5Ljc4MSAyMzYuNDIyTDQ4MCAyMjRaTTQ0NS43ODEgMTQ3LjU3OEM0NDcgMTQ2Ljk2OSA0NDggMTQ1LjM1OSA0NDggMTQ0QzQ0OCAxNDIuNjI1IDQ0NyAxNDEuMDMxIDQ0NS43ODEgMTQwLjQyMkw0MTYgMTI4TDQwMy41NjIgOTguMjE5QzQwMi45NjkgOTcgNDAxLjM3NSA5NiA0MDAgOTZTMzk3LjAzMSA5NyAzOTYuNDA2IDk4LjIxOUwzODQgMTI4TDM1NC4yMTkgMTQwLjQyMkMzNTMgMTQxLjAzMSAzNTIgMTQyLjYyNSAzNTIgMTQ0QzM1MiAxNDUuMzU5IDM1MyAxNDYuOTY5IDM1NC4yMTkgMTQ3LjU3OEwzODQgMTYwTDM5Ni40MDYgMTg5Ljc4MUMzOTcuMDMxIDE5MSAzOTguNjI1IDE5MiA0MDAgMTkyUzQwMi45NjkgMTkxIDQwMy41NjIgMTg5Ljc4MUw0MTYgMTYwTDQ0NS43ODEgMTQ3LjU3OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25DZW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDE2MEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDI1NkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xMDguMSA5NmgyMzEuODFBMTIuMDkgMTIuMDkgMCAwIDAgMzUyIDgzLjlWNDQuMDlBMTIuMDkgMTIuMDkgMCAwIDAgMzM5LjkxIDMySDEwOC4xQTEyLjA5IDEyLjA5IDAgMCAwIDk2IDQ0LjA5VjgzLjlBMTIuMSAxMi4xIDAgMCAwIDEwOC4xIDk2em0yMzEuODEgMjU2QTEyLjA5IDEyLjA5IDAgMCAwIDM1MiAzMzkuOXYtMzkuODFBMTIuMDkgMTIuMDkgMCAwIDAgMzM5LjkxIDI4OEgxMDguMUExMi4wOSAxMi4wOSAwIDAgMCA5NiAzMDAuMDl2MzkuODFhMTIuMSAxMi4xIDAgMCAwIDEyLjEgMTIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQWxpZ25KdXN0aWZ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xMjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xMjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xMjhIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsaWduTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMi44MyAzNTJoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDI4OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDI3NS4xNyAyODhIMTIuODNBMTIuODIgMTIuODIgMCAwIDAgMCAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMTIuODMgMzUyem0wLTI1NmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgMjg4IDgzLjE3VjQ0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDI3NS4xNyAzMkgxMi44M0ExMi44MiAxMi44MiAwIDAgMCAwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDEyLjgzIDk2ek00MzIgMTYwSDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMjU2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsaWduUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMjI0aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTQxNiAxOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0zODRIMTcyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE2MCA0NC44M3YzOC4zNEExMi44MiAxMi44MiAwIDAgMCAxNzIuODMgOTZoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCA4My4xN1Y0NC44M0ExMi44MiAxMi44MiAwIDAgMCA0MzUuMTcgMzJ6bTAgMjU2SDE3Mi44M0ExMi44MiAxMi44MiAwIDAgMCAxNjAgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDE3Mi44MyAzNTJoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFsbGVyZ2llcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTEyYy0xNy42IDAtMzIgMTQuNC0zMiAzMnY3MmMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWNjRjMC0xNy42LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ2MTUyYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOFYzMmMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxODRjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04VjY0YzAtMTcuNi0xNC40LTMyLTMyLTMyUzk2IDQ2LjQgOTYgNjR2MjQxbC0yMy42LTMyLjVjLTEzLTE3LjktMzgtMjEuOC01NS45LTguOHMtMjEuOCAzOC04LjggNTUuOWwxMjUuNiAxNzIuN2M5IDEyLjQgMjMuNSAxOS44IDM4LjggMTkuOGgxOTcuNmMyMi4zIDAgNDEuNi0xNS4zIDQ2LjctMzdsMjYuNS0xMTIuN2MzLjItMTMuNyA0LjktMjguMyA1LjEtNDIuM1YxNDRjMC0xNy42LTE0LjQtMzItMzItMzJ6TTE3NiA0MTZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC05NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em02NCAxMjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC05NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em02NCAzMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0zMiA2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0zMi0xMjhjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW1idWxhbmNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNTJoLTE2VjI0My45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMNDk0IDExMC4xYy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUg0MTZWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djMyMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxNmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek0xNjAgNDY0Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMTQ0LTI0OGMwIDQuNC0zLjYgOC04IDhoLTU2djU2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNTZoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDh6bTE3NiAyNDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em04MC0yMDhINDE2VjE0NGg0NC4xbDk5LjkgOTkuOVYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFtZXJpY2FuU2lnbkxhbmd1YWdlSW50ZXJwcmV0aW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC41NDcgMTg5LjAzOWMtMjAuMjk1LTEwLjE0OS00NC4xNDctMTEuMTk5LTY0LjczOS0zLjg5IDQyLjYwNiAwIDcxLjIwOCAyMC40NzUgODUuNTc4IDUwLjU3NiA4LjU3NiAxNy44OTktNS4xNDggMzguMDcxLTIzLjYxNyAzOC4wNzEgMTguNDI5IDAgMzIuMjExIDIwLjEzNiAyMy42MTcgMzguMDcxLTE0LjcyNSAzMC44NDYtNDYuMTIzIDUwLjg1NC04MC4yOTggNTAuODU0LS41NTcgMC05NC40NzEtOC42MTUtOTQuNDcxLTguNjE1bC02Ni40MDYgMzMuMzQ3Yy05LjM4NCA0LjY5My0xOS44MTUuMzc5LTIzLjg5NS03Ljc4MUwxLjg2IDI5MC43NDdjLTQuMTY3LTguNjE1LTEuMTExLTE4Ljg5NyA2Ljk0Ni0yMy42MjFsNTguMDcyLTMzLjA2OUwxMDggMTU5Ljg2MWM2LjM5LTU3LjI0NSAzNC43MzEtMTA5Ljc2NyA3OS43NDMtMTQ2LjcyNiAxMS4zOTEtOS40NDggMjguMzQxLTcuNzgxIDM3LjUxIDMuNjEzIDkuNDQ2IDExLjM5NCA3Ljc4IDI4LjA2Ny0zLjYxMiAzNy41MTYtMTIuNTAzIDEwLjU1OS0yMy42MTggMjIuNTA5LTMyLjUwOSAzNS41NyAyMS42NzItMTQuNzI5IDQ2LjY3OS0yNC43MzIgNzQuMTg2LTI4LjA2NyAxNC43MjUtMS45NDUgMjguMDYzIDguMzM2IDI5LjczIDIzLjA2NSAxLjk0NSAxNC43MjgtOC4zMzYgMjguMDY3LTIzLjA2MiAyOS43MzQtMTYuMTE2IDEuOTQ1LTMxLjEyIDcuNTAzLTQ0LjE3OCAxNS4yODQgMjYuMTE0LTUuNzEzIDU4LjcxMi0zLjEzOCA4OC4wNzkgMTEuMTE1IDEzLjMzNiA2LjY2OSAxOC44OTMgMjIuNTA5IDEyLjIyNCAzNS44NDgtNi4zODkgMTMuMDYtMjIuNTA0IDE4LjYxNy0zNS41NjQgMTIuMjI2em0tMjcuMjI5IDY5LjQ3MmMtNi4xMTItMTIuNTA1LTE4LjMzOC0yMC4yODYtMzIuMjMxLTIwLjI4NmEzNS40NiAzNS40NiAwIDAgMC0zNS41NjUgMzUuNTdjMCAyMS40MjggMTcuODA4IDM1LjU3IDM1LjU2NSAzNS41NyAxMy44OTMgMCAyNi4xMTktNy43ODEgMzIuMjMxLTIwLjI4NiA0LjQ0Ni05LjQ0OSAxMy42MTQtMTUuMDA2IDIzLjMzOS0xNS4yODQtOS43MjUtLjI3Ny0xOC44OTMtNS44MzUtMjMuMzM5LTE1LjI4NHptMzc0LjgyMS0zNy4yMzdjNC4xNjggOC42MTUgMS4xMTEgMTguODk3LTYuOTQ2IDIzLjYyMWwtNTguMDcxIDMzLjA2OUw1MzIgMzUyLjE2Yy02LjM5IDU3LjI0NS0zNC43MzEgMTA5Ljc2Ny03OS43NDMgMTQ2LjcyNi0xMC45MzIgOS4xMTItMjcuNzk5IDguMTQ0LTM3LjUxLTMuNjEzLTkuNDQ2LTExLjM5NC03Ljc4LTI4LjA2NyAzLjYxMy0zNy41MTYgMTIuNTAzLTEwLjU1OSAyMy42MTctMjIuNTA5IDMyLjUwOC0zNS41Ny0yMS42NzIgMTQuNzI5LTQ2LjY3OSAyNC43MzItNzQuMTg2IDI4LjA2Ny0xMC4wMjEgMi41MDYtMjcuNTUyLTUuNjQzLTI5LjczLTIzLjA2NS0xLjk0NS0xNC43MjggOC4zMzYtMjguMDY3IDIzLjA2Mi0yOS43MzQgMTYuMTE2LTEuOTQ2IDMxLjEyLTcuNTAzIDQ0LjE3OC0xNS4yODQtMjYuMTE0IDUuNzEzLTU4LjcxMiAzLjEzOC04OC4wNzktMTEuMTE1LTEzLjMzNi02LjY2OS0xOC44OTMtMjIuNTA5LTEyLjIyNC0zNS44NDggNi4zODktMTMuMDYxIDIyLjUwNS0xOC42MTkgMzUuNTY1LTEyLjIyNyAyMC4yOTUgMTAuMTQ5IDQ0LjE0NyAxMS4xOTkgNjQuNzM5IDMuODktNDIuNjA2IDAtNzEuMjA4LTIwLjQ3NS04NS41NzgtNTAuNTc2LTguNTc2LTE3Ljg5OSA1LjE0OC0zOC4wNzEgMjMuNjE3LTM4LjA3MS0xOC40MjkgMC0zMi4yMTEtMjAuMTM2LTIzLjYxNy0zOC4wNzEgMTQuMDMzLTI5LjM5NiA0NC4wMzktNTAuODg3IDgxLjk2Ni01MC44NTRsOTIuODAzIDguNjE1IDY2LjQwNi0zMy4zNDdjOS40MDgtNC43MDQgMTkuODI4LS4zNTQgMjMuODk0IDcuNzgxbDQ0LjQ1NSA4OC45MjZ6bS0yMjkuMjI3LTE4LjYxOGMtMTMuODkzIDAtMjYuMTE5IDcuNzgxLTMyLjIzMSAyMC4yODYtNC40NDYgOS40NDktMTMuNjE0IDE1LjAwNi0yMy4zMzkgMTUuMjg0IDkuNzI1LjI3OCAxOC44OTMgNS44MzYgMjMuMzM5IDE1LjI4NCA2LjExMiAxMi41MDUgMTguMzM4IDIwLjI4NiAzMi4yMzEgMjAuMjg2YTM1LjQ2IDM1LjQ2IDAgMCAwIDM1LjU2NS0zNS41N2MwLTIxLjQyOS0xNy44MDgtMzUuNTctMzUuNTY1LTM1LjU3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmNob3IgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIuOTcxIDM1MmgzMi4zOTRDNjcuMTcyIDQ1NC43MzUgMTgxLjk0NCA1MTIgMjg4IDUxMmMxMDYuMjI5IDAgMjIwLjg1My01Ny4zOCAyNDIuNjM1LTE2MGgzMi4zOTRjMTAuNjkxIDAgMTYuMDQ1LTEyLjkyNiA4LjQ4NS0yMC40ODVsLTY3LjAyOS02Ny4wMjljLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMGwtNjcuMDI5IDY3LjAyOWMtNy41NiA3LjU2LTIuMjA2IDIwLjQ4NSA4LjQ4NSAyMC40ODVoMzUuMTQ2Yy0yMC4yOSA1NC4zMTctODQuOTYzIDg2LjU4OC0xNDQuMTE3IDk0LjAxNVYyNTZoNTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNTJ2LTUuNDdjMzcuMjgxLTEzLjE3OCA2My45OTUtNDguNzI1IDY0LTkwLjUxOEMzODQuMDA1IDQzLjc3MiAzNDEuNjA1LjczOCAyODkuMzcuMDEgMjM1LjcyMy0uNzM5IDE5MiA0Mi41MjUgMTkyIDk2YzAgNDEuNzk4IDI2LjcxNiA3Ny4zNSA2NCA5MC41M1YxOTJoLTUyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTJ2MTkwLjAxNWMtNTguOTM2LTcuMzk5LTEyMy44Mi0zOS42NzktMTQ0LjExNy05NC4wMTVoMzUuMTQ2YzEwLjY5MSAwIDE2LjA0NS0xMi45MjYgOC40ODUtMjAuNDg1bC02Ny4wMjktNjcuMDI5Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMNC40ODUgMzMxLjUxNUMtMy4wNzQgMzM5LjA3NCAyLjI4IDM1MiAxMi45NzEgMzUyek0yODggNjRjMTcuNjQ1IDAgMzIgMTQuMzU1IDMyIDMycy0xNC4zNTUgMzItMzIgMzItMzItMTQuMzU1LTMyLTMyIDE0LjM1NS0zMiAzMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVEb3VibGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0MyAyNTYuM0w3IDEyMC4zYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwyMi42LTIyLjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsOTYuNCA5Ni40IDk2LjQtOTYuNGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzMTMgODYuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS40IDkuNS0yNC42IDkuNS0zNCAuMXptMzQgMTkybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTIyLjYtMjIuNmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTYwIDM1Mi4xbC05Ni40LTk2LjRjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMjc4LjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDEzNiAxMzZjOS40IDkuNSAyNC42IDkuNSAzNCAuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVEb3VibGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyMy43IDIzOWwxMzYtMTM2YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwzMTkuOSAyNTZsOTYuNCA5Ni40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDM5My43IDQwOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTEzNi0xMzZjLTkuNS05LjQtOS41LTI0LjYtLjEtMzR6bS0xOTIgMzRsMTM2IDEzNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyMi42LTIyLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMTI3LjkgMjU2bDk2LjQtOTYuNGM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMDEuNyAxMDNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xMzYgMTM2Yy05LjUgOS40LTkuNSAyNC42LS4xIDM0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvdWJsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNC4zIDI3M2wtMTM2IDEzNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTIyLjYtMjIuNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsOTYuNC05Ni40LTk2LjQtOTYuNGMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMNTQuMyAxMDNjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTM2IDEzNmM5LjUgOS40IDkuNSAyNC42LjEgMzR6bTE5Mi0zNGwtMTM2LTEzNmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTIyLjYgMjIuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsOTYuNCA5Ni40LTk2LjQgOTYuNGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMjIuNiAyMi42YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDEzNi0xMzZjOS40LTkuMiA5LjQtMjQuNCAwLTMzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlRG91YmxlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc3IDI1NS43bDEzNiAxMzZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTIyLjYgMjIuNmMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTYwIDM1MS45bC05Ni40IDk2LjRjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDcgNDI1LjdjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDEzNi0xMzZjOS40LTkuNSAyNC42LTkuNSAzNC0uMXptLTM0LTE5Mkw3IDE5OS43Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsOTYuNC05Ni40IDk2LjQgOTYuNGM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyMi42LTIyLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTEzNi0xMzZjLTkuMi05LjQtMjQuNC05LjQtMzMuOCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQzIDM1Mi4zTDcgMjE2LjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS4yIDkuNC0yNC40IDkuNC0zMy44IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlTGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMS43IDIzOWwxMzYtMTM2YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwxMjcuOSAyNTZsOTYuNCA5Ni40YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDIwMS43IDQwOWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTEzNi0xMzZjLTkuNS05LjQtOS41LTI0LjYtLjEtMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFuZ2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0LjMgMjczbC0xMzYgMTM2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuNi0yMi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw5Ni40LTk2LjQtOTYuNC05Ni40Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw1NC4zIDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMzYgMTM2YzkuNSA5LjQgOS41IDI0LjYuMSAzNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQW5nbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzcgMTU5LjdsMTM2IDEzNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMjIuNiAyMi42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNjAgMjU1LjlsLTk2LjQgOTYuNGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNyAzMjkuN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMTM2LTEzNmM5LjQtOS41IDI0LjYtOS41IDM0LS4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmdyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xMzYgMjQwYzAtOS4zIDQuMS0xNy41IDEwLjUtMjMuNGwtMzEtOS4zYy04LjUtMi41LTEzLjMtMTEuNS0xMC43LTE5LjkgMi41LTguNSAxMS40LTEzLjIgMTkuOS0xMC43bDgwIDI0YzguNSAyLjUgMTMuMyAxMS41IDEwLjcgMTkuOS0yLjEgNi45LTguNCAxMS40LTE1LjMgMTEuNC0uNSAwLTEuMS0uMi0xLjctLjIuNyAyLjcgMS43IDUuMyAxLjcgOC4yIDAgMTcuNy0xNC4zIDMyLTMyIDMyUzEzNiAyNTcuNyAxMzYgMjQwem0xNjggMTU0LjJjLTI3LjgtMzMuNC04NC4yLTMzLjQtMTEyLjEgMC0xMy41IDE2LjMtMzguMi00LjItMjQuNi0yMC41IDIwLTI0IDQ5LjQtMzcuOCA4MC42LTM3LjhzNjAuNiAxMy44IDgwLjYgMzcuOGMxMy44IDE2LjUtMTEuMSAzNi42LTI0LjUgMjAuNXptNzYuNi0xODYuOWwtMzEgOS4zYzYuMyA1LjggMTAuNSAxNC4xIDEwLjUgMjMuNCAwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMmMwLTIuOS45LTUuNiAxLjctOC4yLS42LjEtMS4xLjItMS43LjItNi45IDAtMTMuMi00LjUtMTUuMy0xMS40LTIuNS04LjUgMi4zLTE3LjQgMTAuNy0xOS45bDgwLTI0YzguNC0yLjUgMTcuNCAyLjMgMTkuOSAxMC43IDIuNSA4LjUtMi4zIDE3LjQtMTAuOCAxOS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBbmtoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5NiAyNTZoLTQ0LjYyQzI3Mi40NiAyMjIuMDEgMjg4IDE4MS42NSAyODggMTQ0IDI4OCA1NS42MyAyMzAuNjkgMCAxNjAgMFMzMiA1NS42MyAzMiAxNDRjMCAzNy42NSAxNS41NCA3OC4wMSAzNi42MiAxMTJIMjRjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2MzJjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg5NnYxNTJjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGgzMmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0VjMzNmg5NmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di0zMmMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0ek0xNjAgODBjMjkuNjEgMCA0OCAyNC41MiA0OCA2NCAwIDM0LjY2LTI3LjE0IDc4LjE0LTQ4IDEwMC44Ny0yMC44Ni0yMi43Mi00OC02Ni4yMS00OC0xMDAuODcgMC0zOS40OCAxOC4zOS02NCA0OC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXBwbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUwLjg1IDEyOWMyNS45NyA0LjY3IDQ3LjI3IDE4LjY3IDYzLjkyIDQyIDE0LjY1IDIwLjY3IDI0LjY0IDQ2LjY3IDI5Ljk2IDc4IDQuNjcgMjguNjcgNC4zMiA1Ny4zMy0xIDg2LTcuOTkgNDcuMzMtMjMuOTcgODctNDcuOTQgMTE5LTI4LjY0IDM4LjY3LTY0LjU5IDU4LTEwNy44NyA1OC0xMC42NiAwLTIyLjMtMy4zMy0zNC45Ni0xMC04LjY2LTUuMzMtMTguMzEtOC0yOC45Ny04cy0yMC4zIDIuNjctMjguOTcgOGMtMTIuNjYgNi42Ny0yNC4zIDEwLTM0Ljk2IDEwLTQzLjI4IDAtNzkuMjMtMTkuMzMtMTA3Ljg3LTU4LTIzLjk3LTMyLTM5Ljk1LTcxLjY3LTQ3Ljk0LTExOS01LjMyLTI4LjY3LTUuNjctNTcuMzMtMS04NiA1LjMyLTMxLjMzIDE1LjMxLTU3LjMzIDI5Ljk2LTc4IDE2LjY1LTIzLjMzIDM3Ljk1LTM3LjMzIDYzLjkyLTQyIDE1Ljk4LTIuNjcgMzcuOTUtLjMzIDY1LjkyIDcgMjMuOTcgNi42NyA0NC4yOCAxNC42NyA2MC45MyAyNCAxNi42NS05LjMzIDM2Ljk2LTE3LjMzIDYwLjkzLTI0IDI3Ljk4LTcuMzMgNDkuOTYtOS42NyA2NS45NC03em0tNTQuOTQtNDFjLTkuMzIgOC42Ny0yMS42NSAxNS0zNi45NiAxOS0xMC42NiAzLjMzLTIyLjMgNS0zNC45NiA1bC0xNC45OC0xYy0xLjMzLTkuMzMtMS4zMy0yMCAwLTMyIDIuNjctMjQgMTAuMzItNDIuMzMgMjIuOTctNTUgOS4zMi04LjY3IDIxLjY1LTE1IDM2Ljk2LTE5IDEwLjY2LTMuMzMgMjIuMy01IDM0Ljk2LTVsMTQuOTggMSAxIDE1YzAgMTIuNjctMS42NyAyNC4zMy00Ljk5IDM1LTMuOTkgMTUuMzMtMTAuMzEgMjcuNjctMTguOTggMzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBIMzJ2Mjg4em0xNjAtMjEyYzAtNi42IDUuNC0xMiAxMi0xMmgxMDRjNi42IDAgMTIgNS40IDEyIDEydjhjMCA2LjYtNS40IDEyLTEyIDEySDIwNGMtNi42IDAtMTItNS40LTEyLTEydi04ek00ODAgMzJIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJjaHdheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgNDQ4aC0xNlY5NkgzMnYzNTJIMTYuMDJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2SDE3NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzMjBjMC01My4wMiA0Mi45OC05NiA5Ni05NnM5NiA0Mi45OCA5NiA5NmwuMDIgMTYwdjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2SDU2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTAtNDQ4SDE2QzcuMTYgMCAwIDcuMTYgMCAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg1NDRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6TTIxMiAxNDB2MTE2aC03MC45Yy0xMC43IDAtMTYuMSAxMy04LjUgMjAuNWwxMTQuOSAxMTQuM2M0LjcgNC43IDEyLjIgNC43IDE2LjkgMGwxMTQuOS0xMTQuM2M3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDMwMFYxNDBjMC02LjYtNS40LTEyLTEyLTEyaC02NGMtNi42IDAtMTIgNS40LTEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0FsdENpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDh6bTExNi0yOTJIMjU2di03MC45YzAtMTAuNy0xMy0xNi4xLTIwLjUtOC41TDEyMS4yIDI0Ny41Yy00LjcgNC43LTQuNyAxMi4yIDAgMTYuOWwxMTQuMyAxMTQuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41VjMwMGgxMTZjNi42IDAgMTItNS40IDEyLTEydi02NGMwLTYuNi01LjQtMTItMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhjMTM3IDAgMjQ4IDExMSAyNDggMjQ4UzM5MyA1MDQgMjU2IDUwNCA4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHpNMTQwIDMwMGgxMTZ2NzAuOWMwIDEwLjcgMTMgMTYuMSAyMC41IDguNWwxMTQuMy0xMTQuOWM0LjctNC43IDQuNy0xMi4yIDAtMTYuOWwtMTE0LjMtMTE1Yy03LjYtNy42LTIwLjUtMi4yLTIwLjUgOC41VjIxMkgxNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY2NGMwIDYuNiA1LjQgMTIgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93QWx0Q2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOCAyNTZDOCAxMTkgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NnptMjkyIDExNlYyNTZoNzAuOWMxMC43IDAgMTYuMS0xMyA4LjUtMjAuNUwyNjQuNSAxMjEuMmMtNC43LTQuNy0xMi4yLTQuNy0xNi45IDBsLTExNSAxMTQuM2MtNy42IDcuNi0yLjIgMjAuNSA4LjUgMjAuNUgyMTJ2MTE2YzAgNi42IDUuNCAxMiAxMiAxMmg2NGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93Q2lyY2xlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6bS0xNDMuNi0yOC45TDI4OCAzMDIuNlYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTE2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxODIuNmwtNzIuNC03NS41Yy05LjMtOS43LTI0LjgtOS45LTM0LjMtLjRsLTEwLjkgMTFjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45TDIzOSA0MDQuM2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxMzIuNy0xMzIuN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTAuOS0xMWMtOS41LTkuNS0yNS05LjMtMzQuMy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd0NpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDh6bTI4LjktMTQzLjZMMjA5LjQgMjg4SDM5MmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjA5LjRsNzUuNS03Mi40YzkuNy05LjMgOS45LTI0LjguNC0zNC4zbC0xMS0xMC45Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxMDcuNyAyMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDEzMi43IDEzMi43YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDExLTEwLjljOS41LTkuNSA5LjMtMjUtLjQtMzQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOGMxMzcgMCAyNDggMTExIDI0OCAyNDhTMzkzIDUwNCAyNTYgNTA0IDggMzkzIDggMjU2IDExOSA4IDI1NiA4em0tMjguOSAxNDMuNmw3NS41IDcyLjRIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxODIuNmwtNzUuNSA3Mi40Yy05LjcgOS4zLTkuOSAyNC44LS40IDM0LjNsMTEgMTAuOWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMEw0MDQuMyAyNzNjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjcxLjYgMTA2LjNjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xMSAxMC45Yy05LjUgOS42LTkuMyAyNS4xLjQgMzQuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dDaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI1NkM4IDExOSAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2em0xNDMuNiAyOC45bDcyLjQtNzUuNVYzOTJjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjA5LjRsNzIuNCA3NS41YzkuMyA5LjcgMjQuOCA5LjkgMzQuMy40bDEwLjktMTFjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjczIDEwNy43Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxMDYuMyAyNDAuNGMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTAuOSAxMWM5LjYgOS41IDI1LjEgOS4zIDM0LjQtLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTMuMSAyMjIuNWwyMi4yIDIyLjJjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMjQxIDQ3M2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMTIuNyAyNzguNmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMjIuMi0yMi4yYzkuNS05LjUgMjUtOS4zIDM0LjMuNEwxODQgMzQzLjRWNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMzJjMTMuMyAwIDI0IDEwLjcgMjQgMjR2Mjg3LjRsMTE0LjgtMTIwLjVjOS4zLTkuOCAyNC44LTEwIDM0LjMtLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTcuNSA0NDUuMWwtMjIuMiAyMi4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjAxLjQgNDQuN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyMi4yIDIyLjJjOS41IDkuNSA5LjMgMjUtLjQgMzQuM0wxMzYuNiAyMTZINDI0YzEzLjMgMCAyNCAxMC43IDI0IDI0djMyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDEzNi42bDEyMC41IDExNC44YzkuOCA5LjMgMTAgMjQuOC40IDM0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkwLjUgNjYuOWwyMi4yLTIyLjJjOS40LTkuNCAyNC42LTkuNCAzMy45IDBMNDQxIDIzOWM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDYuNiA0NjcuM2MtOS40IDkuNC0yNC42IDkuNC0zMy45IDBsLTIyLjItMjIuMmMtOS41LTkuNS05LjMtMjUgLjQtMzQuM0wzMTEuNCAyOTZIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0di0zMmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgyODcuNEwxOTAuOSAxMDEuMmMtOS44LTkuMy0xMC0yNC44LS40LTM0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFycm93VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQuOSAyODkuNWwtMjIuMi0yMi4yYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUwyMDcgMzljOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTk0LjMgMTk0LjNjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMNDEzIDI4OS40Yy05LjUgOS41LTI1IDkuMy0zNC4zLS40TDI2NCAxNjguNlY0NTZjMCAxMy4zLTEwLjcgMjQtMjQgMjRoLTMyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYxNjguNkw2OS4yIDI4OS4xYy05LjMgOS44LTI0LjggMTAtMzQuMy40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NBbHRIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3Ny45NDEgMTY5Ljk0MVYyMTZIMTM0LjA1OXYtNDYuMDU5YzAtMjEuMzgyLTI1Ljg1MS0zMi4wOS00MC45NzEtMTYuOTcxTDcuMDI5IDIzOS4wMjljLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OCAwIDMzLjk0MWw4Ni4wNTkgODYuMDU5YzE1LjExOSAxNS4xMTkgNDAuOTcxIDQuNDExIDQwLjk3MS0xNi45NzFWMjk2aDI0My44ODJ2NDYuMDU5YzAgMjEuMzgyIDI1Ljg1MSAzMi4wOSA0MC45NzEgMTYuOTcxbDg2LjA1OS04Ni4wNTljOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY4IDAtMzMuOTQxbC04Ni4wNTktODYuMDU5Yy0xNS4xMTktMTUuMTItNDAuOTcxLTQuNDEyLTQwLjk3MSAxNi45N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXJyb3dzQWx0ViAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTQuMDU5IDM3Ny45NDFIMTY4VjEzNC4wNTloNDYuMDU5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxTDE0NC45NzEgNy4wMjljLTkuMzczLTkuMzczLTI0LjU2OC05LjM3My0zMy45NDEgMEwyNC45NzEgOTMuMDg4Yy0xNS4xMTkgMTUuMTE5LTQuNDExIDQwLjk3MSAxNi45NzEgNDAuOTcxSDg4djI0My44ODJINDEuOTQxYy0yMS4zODIgMC0zMi4wOSAyNS44NTEtMTYuOTcxIDQwLjk3MWw4Ni4wNTkgODYuMDU5YzkuMzczIDkuMzczIDI0LjU2OCA5LjM3MyAzMy45NDEgMGw4Ni4wNTktODYuMDU5YzE1LjEyLTE1LjExOSA0LjQxMi00MC45NzEtMTYuOTctNDAuOTcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBcnJvd3NBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyLjIwMSA0MjUuNzc1bC03OS4xOTYgNzkuMTk2Yy05LjM3MyA5LjM3My0yNC41NjggOS4zNzMtMzMuOTQxIDBsLTc5LjE5Ni03OS4xOTZjLTE1LjExOS0xNS4xMTktNC40MTEtNDAuOTcxIDE2Ljk3MS00MC45N2g1MS4xNjJMMjI4IDI4NEgxMjcuMTk2djUxLjE2MmMwIDIxLjM4Mi0yNS44NTEgMzIuMDktNDAuOTcxIDE2Ljk3MUw3LjAyOSAyNzIuOTM3Yy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFMODYuMjI1IDE1OS44YzE1LjExOS0xNS4xMTkgNDAuOTcxLTQuNDExIDQwLjk3MSAxNi45NzFWMjI4SDIyOFYxMjcuMTk2aC01MS4yM2MtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNzkuMTk2LTc5LjE5NmM5LjM3My05LjM3MyAyNC41NjgtOS4zNzMgMzMuOTQxIDBsNzkuMTk2IDc5LjE5NmMxNS4xMTkgMTUuMTE5IDQuNDExIDQwLjk3MS0xNi45NzEgNDAuOTcxaC01MS4xNjJWMjI4aDEwMC44MDR2LTUxLjE2MmMwLTIxLjM4MiAyNS44NTEtMzIuMDkgNDAuOTctMTYuOTcxbDc5LjE5NiA3OS4xOTZjOS4zNzMgOS4zNzMgOS4zNzMgMjQuNTY5IDAgMzMuOTQxTDQyNS43NzMgMzUyLjJjLTE1LjExOSAxNS4xMTktNDAuOTcxIDQuNDExLTQwLjk3LTE2Ljk3MVYyODRIMjg0djEwMC44MDRoNTEuMjNjMjEuMzgyIDAgMzIuMDkgMjUuODUxIDE2Ljk3MSA0MC45NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUFzc2lzdGl2ZUxpc3RlbmluZ1N5c3RlbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDI2MGMwIDE1LjQ2NC0xMi41MzYgMjgtMjggMjhzLTI4LTEyLjUzNi0yOC0yOGMwLTQ0LjExMiAzNS44ODgtODAgODAtODBzODAgMzUuODg4IDgwIDgwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtMTMuMjM0LTEwLjc2Ny0yNC0yNC0yNHMtMjQgMTAuNzY2LTI0IDI0em0yNC0xNzZjLTk3LjA0NyAwLTE3NiA3OC45NTMtMTc2IDE3NiAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjgtMTIuNTM2IDI4LTI4YzAtNjYuMTY4IDUzLjgzMi0xMjAgMTIwLTEyMHMxMjAgNTMuODMyIDEyMCAxMjBjMCA3NS4xNjQtNzEuMDA5IDcwLjMxMS03MS45OTcgMTQzLjYyMkwyODggNDA0YzAgMjguNjczLTIzLjMyNyA1Mi01MiA1Mi0xNS40NjQgMC0yOCAxMi41MzYtMjggMjhzMTIuNTM2IDI4IDI4IDI4YzU5LjQ3NSAwIDEwNy44NzYtNDguMzI4IDEwOC0xMDcuNzc0LjU5NS0zNC40MjggNzItNDguMjQgNzItMTQ0LjIyNiAwLTk3LjA0Ny03OC45NTMtMTc2LTE3Ni0xNzZ6bS04MCAyMzZjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnpNMzIgNDQ4Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTQ4MC0xODcuOTkzYzAtMS41MTgtLjAxMi0zLjAyNS0uMDQ1LTQuNTMxQzUxMC4wNzYgMTQwLjUyNSA0MzYuMTU3IDM4LjQ3IDMyNy45OTQgMS41MTFjLTE0LjYzMy00Ljk5OC0zMC41NDkgMi44MDktMzUuNTUgMTcuNDQyLTUgMTQuNjMzIDIuODEgMzAuNTQ5IDE3LjQ0MiAzNS41NSA4NS45MDYgMjkuMzU0IDE0NC42MSAxMTAuNTEzIDE0Ni4wNzcgMjAxLjk1M2wuMDAzLjE4OGMuMDI2IDEuMTE4LjAzMyAyLjIzNi4wMzMgMy4zNjMgMCAxNS40NjQgMTIuNTM2IDI4IDI4IDI4czI4LjAwMS0xMi41MzYgMjguMDAxLTI4ek0xNTIuOTcxIDQzOS4wMjlsLTgwLTgwTDM5LjAzIDM5Mi45N2w4MCA4MCAzMy45NDEtMzMuOTQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBc3RlcmlzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzguMjEgMzM0LjA5M0wzMzYgMjU2bDE0Mi4yMS03OC4wOTNjMTEuNzk1LTYuNDc3IDE1Ljk2MS0yMS4zODQgOS4yMzItMzMuMDM3bC0xOS40OC0zMy43NDFjLTYuNzI4LTExLjY1My0yMS43Mi0xNS40OTktMzMuMjI3LTguNTIzTDI5NiAxODYuNzE4bDMuNDc1LTE2Mi4yMDRDMjk5Ljc2MyAxMS4wNjEgMjg4LjkzNyAwIDI3NS40OCAwaC0zOC45NmMtMTMuNDU2IDAtMjQuMjgzIDExLjA2MS0yMy45OTQgMjQuNTE0TDIxNiAxODYuNzE4IDc3LjI2NSAxMDIuNjA3Yy0xMS41MDYtNi45NzYtMjYuNDk5LTMuMTMtMzMuMjI3IDguNTIzbC0xOS40OCAzMy43NDFjLTYuNzI4IDExLjY1My0yLjU2MiAyNi41NiA5LjIzMyAzMy4wMzdMMTc2IDI1NiAzMy43OSAzMzQuMDkzYy0xMS43OTUgNi40NzctMTUuOTYxIDIxLjM4NC05LjIzMiAzMy4wMzdsMTkuNDggMzMuNzQxYzYuNzI4IDExLjY1MyAyMS43MjEgMTUuNDk5IDMzLjIyNyA4LjUyM0wyMTYgMzI1LjI4MmwtMy40NzUgMTYyLjIwNEMyMTIuMjM3IDUwMC45MzkgMjIzLjA2NCA1MTIgMjM2LjUyIDUxMmgzOC45NjFjMTMuNDU2IDAgMjQuMjgzLTExLjA2MSAyMy45OTUtMjQuNTE0TDI5NiAzMjUuMjgybDEzOC43MzUgODQuMTExYzExLjUwNiA2Ljk3NiAyNi40OTkgMy4xMyAzMy4yMjctOC41MjNsMTkuNDgtMzMuNzQxYzYuNzI4LTExLjY1MyAyLjU2My0yNi41NTktOS4yMzItMzMuMDM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTguOTQxIDggOCAxMTguOTE5IDggMjU2YzAgMTM3LjA1OSAxMTAuOTE5IDI0OCAyNDggMjQ4IDQ4LjE1NCAwIDk1LjM0Mi0xNC4xNCAxMzUuNDA4LTQwLjIyMyAxMi4wMDUtNy44MTUgMTQuNjI1LTI0LjI4OCA1LjU1Mi0zNS4zNzJsLTEwLjE3Ny0xMi40MzNjLTcuNjcxLTkuMzcxLTIxLjE3OS0xMS42NjctMzEuMzczLTUuMTI5QzMyNS45MiA0MjkuNzU3IDI5MS4zMTQgNDQwIDI1NiA0NDBjLTEwMS40NTggMC0xODQtODIuNTQyLTE4NC0xODRTMTU0LjU0MiA3MiAyNTYgNzJjMTAwLjEzOSAwIDE4NCA1Ny42MTkgMTg0IDE2MCAwIDM4Ljc4Ni0yMS4wOTMgNzkuNzQyLTU4LjE3IDgzLjY5My0xNy4zNDktLjQ1NC0xNi45MS0xMi44NTctMTMuNDc2LTMwLjAyNGwyMy40MzMtMTIxLjExQzM5NC42NTMgMTQ5Ljc1IDM4My4zMDggMTM2IDM2OC4yMjUgMTM2aC00NC45ODFhMTMuNTE4IDEzLjUxOCAwIDAgMC0xMy40MzIgMTEuOTkzbC0uMDEuMDkyYy0xNC42OTctMTcuOTAxLTQwLjQ0OC0yMS43NzUtNTkuOTcxLTIxLjc3NS03NC41OCAwLTEzNy44MzEgNjIuMjM0LTEzNy44MzEgMTUxLjQ2IDAgNjUuMzAzIDM2Ljc4NSAxMDUuODcgOTYgMTA1Ljg3IDI2Ljk4NCAwIDU3LjM2OS0xNS42MzcgNzQuOTkxLTM4LjMzMyA5LjUyMiAzNC4xMDQgNDAuNjEzIDM0LjEwMyA3MC43MSAzNC4xMDNDNDYyLjYwOSAzNzkuNDEgNTA0IDMwNy43OTggNTA0IDIzMiA1MDQgOTUuNjUzIDM5NC4wMjMgOCAyNTYgOHptLTIxLjY4IDMwNC40M2MtMjIuMjQ5IDAtMzYuMDctMTUuNjIzLTM2LjA3LTQwLjc3MSAwLTQ0Ljk5MyAzMC43NzktNzIuNzI5IDU4LjYzLTcyLjcyOSAyMi4yOTIgMCAzNS42MDEgMTUuMjQxIDM1LjYwMSA0MC43NyAwIDQ1LjA2MS0zMy44NzUgNzIuNzMtNTguMTYxIDcyLjczelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdGxhcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTguMzggMjA4aC0zOS4wOWMtMS40OSAyNy4wMy02LjU0IDUxLjM1LTE0LjIxIDcwLjQxIDI3LjcxLTEzLjI0IDQ4LjAyLTM5LjE5IDUzLjMtNzAuNDF6bTAtMzJjLTUuMjktMzEuMjItMjUuNTktNTcuMTctNTMuMy03MC40MSA3LjY4IDE5LjA2IDEyLjcyIDQzLjM4IDE0LjIxIDcwLjQxaDM5LjA5ek0yMjQgOTcuMzFjLTcuNjkgNy40NS0yMC43NyAzNC40Mi0yMy40MyA3OC42OWg0Ni44N2MtMi42Ny00NC4yNi0xNS43NS03MS4yNC0yMy40NC03OC42OXptLTQxLjA4IDguMjhjLTI3LjcxIDEzLjI0LTQ4LjAyIDM5LjE5LTUzLjMgNzAuNDFoMzkuMDljMS40OS0yNy4wMyA2LjUzLTUxLjM1IDE0LjIxLTcwLjQxem0wIDE3Mi44MmMtNy42OC0xOS4wNi0xMi43Mi00My4zOC0xNC4yMS03MC40MWgtMzkuMDljNS4yOCAzMS4yMiAyNS41OSA1Ny4xNyA1My4zIDcwLjQxek0yNDcuNDMgMjA4aC00Ni44N2MyLjY2IDQ0LjI2IDE1Ljc0IDcxLjI0IDIzLjQzIDc4LjY5IDcuNy03LjQ1IDIwLjc4LTM0LjQzIDIzLjQ0LTc4LjY5ek00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0yMjQgNjRjNzAuNjkgMCAxMjggNTcuMzEgMTI4IDEyOHMtNTcuMzEgMTI4LTEyOCAxMjhTOTYgMjYyLjY5IDk2IDE5MiAxNTMuMzEgNjQgMjI0IDY0em0xNjAgMzg0SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODh2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUF0b20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjk5OTA4LDIyNGEzMiwzMiwwLDEsMCwzMi4wMDc4MiwzMkEzMi4wNjQzMSwzMi4wNjQzMSwwLDAsMCwyMjMuOTk5MDgsMjI0Wm0yMTQuMTcyLTk2Yy0xMC44NzctMTkuNS00MC41MDk3OS01MC43NS0xMTYuMjc1NDQtNDEuODc1QzMwMC4zOTE2OCwzNC44NzUsMjY3LjYzMzg2LDAsMjIzLjk5OTA4LDBzLTc2LjM5MDY2LDM0Ljg3NS05Ny44OTY1Myw4Ni4xMjVDNTAuMzM2OSw3Ny4zNzUsMjAuNzA2LDEwOC41LDkuODI5MDcsMTI4LTYuNTQ5ODQsMTU3LjM3NS01LjE3NDg0LDIwMS4xMjUsMzQuOTU4LDI1Ni01LjE3NDg0LDMxMC44NzUtNi41NDk4NCwzNTQuNjI1LDkuODI5MDcsMzg0YzI5LjEzMDg3LDUyLjM3NSwxMDEuNjQ2NTIsNDMuNjI1LDExNi4yNzM0OCw0MS44NzVDMTQ3LjYwODQyLDQ3Ny4xMjUsMTgwLjM2NDI5LDUxMiwyMjMuOTk5MDgsNTEyczc2LjM5MjYtMzQuODc1LDk3Ljg5NjUyLTg2LjEyNWMxNC42Mjg5MSwxLjc1LDg3LjE0NDU2LDEwLjUsMTE2LjI3NTQ0LTQxLjg3NUM0NTQuNTUsMzU0LjYyNSw0NTMuMTc1LDMxMC44NzUsNDEzLjA0MDE3LDI1Niw0NTMuMTc1LDIwMS4xMjUsNDU0LjU1LDE1Ny4zNzUsNDM4LjE3MSwxMjhaTTYzLjMzODg2LDM1MmMtNC03LjI1LS4xMjUtMjQuNzUsMTUuMDAzOTEtNDguMjUsNi44NzY5NSw2LjUsMTQuMTI4OTEsMTIuODc1LDIxLjg4MDg3LDE5LjEyNSwxLjYyNSwxMy43NSw0LDI3LjEyNSw2Ljc1LDQwLjEyNUM4Mi4zNDQ3MiwzNjMuODc1LDY3LjA5MDgxLDM1OC42MjUsNjMuMzM4ODYsMzUyWm0zNi44ODQ3OC0xNjIuODc1Yy03Ljc1Miw2LjI1LTE1LjAwMzkyLDEyLjYyNS0yMS44ODA4NywxOS4xMjUtMTUuMTI4OTEtMjMuNS0xOS4wMDM5Mi00MS0xNS4wMDM5MS00OC4yNSwzLjM3Ny02LjEyNSwxNi4zNzg5MS0xMS41LDM3Ljg4NDc4LTExLjUsMS43NSwwLDMuODc1LjM3NSw1Ljc1LjM3NUMxMDQuMDk4NjQsMTYyLjI1LDEwMS44NDg2NCwxNzUuNjI1LDEwMC4yMjM2NCwxODkuMTI1Wk0yMjMuOTk5MDgsNjRjOS41MDE5NSwwLDIyLjI1NTg2LDEzLjUsMzMuODgyODIsMzcuMjUtMTEuMjUyLDMuNzUtMjIuNTAzOTEsOC0zMy44ODI4MiwxMi44NzUtMTEuMzc3LTQuODc1LTIyLjYyODkyLTkuMTI1LTMzLjg4MjgzLTEyLjg3NUMyMDEuNzQ1MTYsNzcuNSwyMTQuNDk3MTIsNjQsMjIzLjk5OTA4LDY0Wm0wLDM4NGMtOS41MDIsMC0yMi4yNTM5Mi0xMy41LTMzLjg4MjgzLTM3LjI1LDExLjI1MzkxLTMuNzUsMjIuNTA1ODctOCwzMy44ODI4My0xMi44NzVDMjM1LjM3OCw0MDIuNzUsMjQ2LjYyOTk0LDQwNywyNTcuODgxOSw0MTAuNzUsMjQ2LjI1NDk0LDQzNC41LDIzMy41MDEsNDQ4LDIyMy45OTkwOCw0NDhabTAtMTEyYTgwLDgwLDAsMSwxLDgwLTgwQTgwLjAwMDIzLDgwLjAwMDIzLDAsMCwxLDIyMy45OTkwOCwzMzZaTTM4NC42NTkzLDM1MmMtMy42MjUsNi42MjUtMTkuMDAzOTIsMTEuODc1LTQzLjYzNDc5LDExLDIuNzUyLTEzLDUuMTI3LTI2LjM3NSw2Ljc1Mi00MC4xMjUsNy43NTE5NS02LjI1LDE1LjAwMzkxLTEyLjYyNSwyMS44Nzg5MS0xOS4xMjVDMzg0Ljc4NDMsMzI3LjI1LDM4OC42NTkzLDM0NC43NSwzODQuNjU5MywzNTJaTTM2OS42NTUzOCwyMDguMjVjLTYuODc1LTYuNS0xNC4xMjctMTIuODc1LTIxLjg3ODkxLTE5LjEyNS0xLjYyNS0xMy41LTMuODc1LTI2Ljg3NS02Ljc1Mi00MC4yNSwxLjg3NSwwLDQuMDAyLS4zNzUsNS43NTItLjM3NSwyMS41MDM5MSwwLDM0LjUwNzgyLDUuMzc1LDM3Ljg4MjgzLDExLjVDMzg4LjY1OTMsMTY3LjI1LDM4NC43ODQzLDE4NC43NSwzNjkuNjU1MzgsMjA4LjI1WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFBdWRpb0Rlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2Mi45MjUgMjM4LjcwOWw4LjgyMiAzMC42NTVoLTI1LjYwNmw5LjA0MS0zMC42NTJjMS4yNzctNC40MjEgMi42NTEtOS45OTQgMy44NzItMTUuMjQ1IDEuMjIgNS4yNTEgMi41OTQgMTAuODIzIDMuODcxIDE1LjI0MnptMTY2LjQ3NC0zMi4wOTloLTE0LjUyM3Y5OC43ODFoMTQuNTIzYzI5Ljc3NiAwIDQ2LjE3NS0xNy42NzggNDYuMTc1LTQ5Ljc3NiAwLTMyLjIzOS0xNy40OS00OS4wMDUtNDYuMTc1LTQ5LjAwNXpNNTEyIDExMnYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHpNMjQ1LjQ1OSAzMzYuMTM5bC01Ny4wOTctMTY4QTEyLjAwMSAxMi4wMDEgMCAwIDAgMTc3IDE2MGgtMzUuODk0YTEyLjAwMSAxMi4wMDEgMCAwIDAtMTEuMzYyIDguMTM5bC01Ny4wOTcgMTY4QzcwLjAwMyAzNDMuOTIyIDc1Ljc4OSAzNTIgODQuMDA5IDM1MmgyOS4xMzNhMTIgMTIgMCAwIDAgMTEuNTM1LTguNjkzbDguNTc0LTI5LjkwNmg1MS4zNjdsOC43OTMgMjkuOTc3QTEyIDEyIDAgMCAwIDIwNC45MjYgMzUyaDI5LjE3MmM4LjIyIDAgMTQuMDA2LTguMDc4IDExLjM2MS0xNS44NjF6bTE4NC43MDEtODAuNTI1YzAtNTguOTc3LTM3LjkxOS05NS42MTQtOTguOTYtOTUuNjE0aC01Ny4zNjZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTY4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJIMzMxLjJjNjEuMDQxIDAgOTguOTYtMzYuOTMzIDk4Ljk2LTk2LjM4NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQXdhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMTIgMzYyLjYzYy04LjY5LTguNjktNC4xNi02LjI0LTI1LjEyLTExLjg1LTkuNTEtMi41NS0xNy44Ny03LjQ1LTI1LjQzLTEzLjMyTDEuMiA0NDguN2MtNC4zOSAxMC43NyAzLjgxIDIyLjQ3IDE1LjQzIDIyLjAzbDUyLjY5LTIuMDFMMTA1LjU2IDUwN2M4IDguNDQgMjIuMDQgNS44MSAyNi40My00Ljk2bDUyLjA1LTEyNy42MmMtMTAuODQgNi4wNC0yMi44NyA5LjU4LTM1LjMxIDkuNTgtMTkuNSAwLTM3LjgyLTcuNTktNTEuNjEtMjEuMzd6TTM4Mi44IDQ0OC43bC00NS4zNy0xMTEuMjRjLTcuNTYgNS44OC0xNS45MiAxMC43Ny0yNS40MyAxMy4zMi0yMS4wNyA1LjY0LTE2LjQ1IDMuMTgtMjUuMTIgMTEuODUtMTMuNzkgMTMuNzgtMzIuMTIgMjEuMzctNTEuNjIgMjEuMzctMTIuNDQgMC0yNC40Ny0zLjU1LTM1LjMxLTkuNThMMjUyIDUwMi4wNGM0LjM5IDEwLjc3IDE4LjQ0IDEzLjQgMjYuNDMgNC45NmwzNi4yNS0zOC4yOCA1Mi42OSAyLjAxYzExLjYyLjQ0IDE5LjgyLTExLjI3IDE1LjQzLTIyLjAzek0yNjMgMzQwYzE1LjI4LTE1LjU1IDE3LjAzLTE0LjIxIDM4Ljc5LTIwLjE0IDEzLjg5LTMuNzkgMjQuNzUtMTQuODQgMjguNDctMjguOTggNy40OC0yOC40IDUuNTQtMjQuOTcgMjUuOTUtNDUuNzUgMTAuMTctMTAuMzUgMTQuMTQtMjUuNDQgMTAuNDItMzkuNTgtNy40Ny0yOC4zOC03LjQ4LTI0LjQyIDAtNTIuODMgMy43Mi0xNC4xNC0uMjUtMjkuMjMtMTAuNDItMzkuNTgtMjAuNDEtMjAuNzgtMTguNDctMTcuMzYtMjUuOTUtNDUuNzUtMy43Mi0xNC4xNC0xNC41OC0yNS4xOS0yOC40Ny0yOC45OC0yNy44OC03LjYxLTI0LjUyLTUuNjItNDQuOTUtMjYuNDEtMTAuMTctMTAuMzUtMjUtMTQuNC0zOC44OS0xMC42MS0yNy44NyA3LjYtMjMuOTggNy42MS01MS45IDAtMTMuODktMy43OS0yOC43Mi4yNS0zOC44OSAxMC42MS0yMC40MSAyMC43OC0xNy4wNSAxOC44LTQ0Ljk0IDI2LjQxLTEzLjg5IDMuNzktMjQuNzUgMTQuODQtMjguNDcgMjguOTgtNy40NyAyOC4zOS01LjU0IDI0Ljk3LTI1Ljk1IDQ1Ljc1LTEwLjE3IDEwLjM1LTE0LjE1IDI1LjQ0LTEwLjQyIDM5LjU4IDcuNDcgMjguMzYgNy40OCAyNC40IDAgNTIuODItMy43MiAxNC4xNC4yNSAyOS4yMyAxMC40MiAzOS41OSAyMC40MSAyMC43OCAxOC40NyAxNy4zNSAyNS45NSA0NS43NSAzLjcyIDE0LjE0IDE0LjU4IDI1LjE5IDI4LjQ3IDI4Ljk4QzEwNC42IDMyNS45NiAxMDYuMjcgMzI1IDEyMSAzNDBjMTMuMjMgMTMuNDcgMzMuODQgMTUuODggNDkuNzQgNS44MmEzOS42NzYgMzkuNjc2IDAgMCAxIDQyLjUzIDBjMTUuODkgMTAuMDYgMzYuNSA3LjY1IDQ5LjczLTUuODJ6TTk3LjY2IDE3NS45NmMwLTUzLjAzIDQyLjI0LTk2LjAyIDk0LjM0LTk2LjAyczk0LjM0IDQyLjk5IDk0LjM0IDk2LjAyLTQyLjI0IDk2LjAyLTk0LjM0IDk2LjAyLTk0LjM0LTQyLjk5LTk0LjM0LTk2LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWJ5Q2FycmlhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0LjggMTdjLTExLjMtMTcuOC0zNy4yLTIyLjgtNTQtOS40QzM1LjMgNTEuOSAwIDExOCAwIDE5MmgyNTZMMTQ0LjggMTd6TTQ5NiA5NmgtNDhjLTM1LjMgMC02NCAyOC43LTY0IDY0djY0SDBjMCA1MC42IDIzIDk2LjQgNjAuMyAxMzAuN0MyNS43IDM2My42IDAgMzk0LjcgMCA0MzJjMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTguOS0xLjgtMTcuMi00LjQtMjUuMiAyMS42IDUuOSA0NC42IDkuMiA2OC40IDkuMnM0Ni45LTMuMyA2OC40LTkuMmMtMi43IDgtNC40IDE2LjMtNC40IDI1LjIgMCA0NC4yIDM1LjggODAgODAgODBzODAtMzUuOCA4MC04MGMwLTM3LjMtMjUuNy02OC40LTYwLjMtNzcuM0M0MjUgMzIwLjQgNDQ4IDI3NC42IDQ0OCAyMjR2LTY0aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek04MCA0NjRjLTE3LjYgMC0zMi0xNC40LTMyLTMyczE0LjQtMzIgMzItMzIgMzIgMTQuNCAzMiAzMi0xNC40IDMyLTMyIDMyem0zMjAtMzJjMCAxNy42LTE0LjQgMzItMzIgMzJzLTMyLTE0LjQtMzItMzIgMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAxNjBjNDQuMiAwIDgwLTM1LjggODAtODBTMjM2LjIgMCAxOTIgMHMtODAgMzUuOC04MCA4MCAzNS44IDgwIDgwIDgwem0tNTMuNCAyNDguOGwyNS42LTMyLTYxLjUtNTEuMkw1Ni44IDM4M2MtMTEuNCAxNC4yLTExLjcgMzQuNC0uOCA0OWw0OCA2NGM3LjkgMTAuNSAxOS45IDE2IDMyIDE2IDguMyAwIDE2LjgtMi42IDI0LTggMTcuNy0xMy4yIDIxLjItMzguMyA4LTU2bC0yOS40LTM5LjJ6bTE0Mi43LTgzLjJsLTYxLjUgNTEuMiAyNS42IDMyTDIxNiA0NDhjLTEzLjIgMTcuNy05LjcgNDIuOCA4IDU2IDcuMiA1LjQgMTUuNiA4IDI0IDggMTIuMiAwIDI0LjItNS41IDMyLTE2bDQ4LTY0YzEwLjktMTQuNiAxMC42LTM0LjgtLjgtNDlsLTQ1LjktNTcuNHpNMzc2LjcgMTQ1Yy0xMi43LTE4LjEtMzcuNi0yMi40LTU1LjctOS44bC00MC42IDI4LjVjLTUyLjcgMzctMTI0LjIgMzctMTc2LjggMEw2MyAxMzUuM0M0NC45IDEyMi42IDIwIDEyNyA3LjMgMTQ1LTUuNCAxNjMuMS0xIDE4OCAxNyAyMDAuN2w0MC42IDI4LjVjMTcgMTEuOSAzNS40IDIwLjkgNTQuNCAyNy45VjI4OGgxNjB2LTMwLjhjMTktNyAzNy40LTE2IDU0LjQtMjcuOWw0MC42LTI4LjVjMTguMS0xMi44IDIyLjQtMzcuNyA5LjctNTUuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFja3NwYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiA2NEgyMDUuMjZBNjMuOTcgNjMuOTcgMCAwIDAgMTYwIDgyLjc1TDkuMzcgMjMzLjM3Yy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1TDE2MCA0MjkuMjVjMTIgMTIgMjguMjggMTguNzUgNDUuMjUgMTguNzVINTc2YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWMTI4YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS04NC42OSAyNTQuMDZjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMjIuNjIgMjIuNjJjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMzg0IDMwMS4yNWwtNjIuMDYgNjIuMDZjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBsLTIyLjYyLTIyLjYyYy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzTDMzOC43NSAyNTZsLTYyLjA2LTYyLjA2Yy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzbDIyLjYyLTIyLjYyYzYuMjUtNi4yNSAxNi4zOC02LjI1IDIyLjYzIDBMMzg0IDIxMC43NWw2Mi4wNi02Mi4wNmM2LjI1LTYuMjUgMTYuMzgtNi4yNSAyMi42MyAwbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNMNDI5LjI1IDI1Nmw2Mi4wNiA2Mi4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFja3dhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTEuNSAyODAuNmwxOTIgMTYwYzIwLjYgMTcuMiA1Mi41IDIuOCA1Mi41LTI0LjZWOTZjMC0yNy40LTMxLjktNDEuOC01Mi41LTI0LjZsLTE5MiAxNjBjLTE1LjMgMTIuOC0xNS4zIDM2LjQgMCA0OS4yem0yNTYgMGwxOTIgMTYwYzIwLjYgMTcuMiA1Mi41IDIuOCA1Mi41LTI0LjZWOTZjMC0yNy40LTMxLjktNDEuOC01Mi41LTI0LjZsLTE5MiAxNjBjLTE1LjMgMTIuOC0xNS4zIDM2LjQgMCA0OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWNvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTguOTIgMzM2LjM5YzM0Ljg5LTM0Ljg5IDQ0LjItNTkuNyA1NC4wNS04NiAxMC42MS0yOC4yOSAyMS41OS01Ny41NCA2MS4zNy05Ny4zNHM2OS4wNS01MC43NyA5Ny4zNS02MS4zOGMyMy44OC05IDQ2LjY0LTE3LjY4IDc2Ljc5LTQ1LjM3TDQ3MC44MSA4LjkxYTMxIDMxIDAgMCAwLTQwLjE4LTIuODNjLTEzLjY0IDEwLjEtMjUuMTUgMTQuMzktNDEgMjAuM0MyNDcgNzkuNTIgMjA5LjI2IDE5MS4yOSAyMDAuNjUgMjE0LjFjLTI5Ljc1IDc4LjgzLTg5LjU1IDk0LjY4LTk4LjcyIDk4LjA5LTI0Ljg2IDkuMjYtNTQuNzMgMjAuMzgtOTEuMDcgNTAuMzZDLTMgMzc0LTMuNjMgMzk1IDkuMDcgNDA3LjYxbDM1Ljc2IDM1LjUxQzgwIDQxMC41MiAxMDcgNDAwLjE1IDEzMyAzOTAuMzljMjYuMjctOS44NCA1MS4wNi0xOS4xMiA4NS45Mi01NHptMzQ4LTIzMmwtMzUuNzUtMzUuNTFjLTM1LjE5IDMyLjYzLTYyLjE4IDQzLTg4LjI1IDUyLjc5LTI2LjI2IDkuODUtNTEuMDYgMTkuMTYtODUuOTUgNTRzLTQ0LjE5IDU5LjY5LTU0IDg2QzI5Mi4zMyAyOTAgMjgxLjM0IDMxOS4yMiAyNDEuNTUgMzU5cy02OSA1MC43My05Ny4zIDYxLjMyYy0yMy44NiA5LTQ2LjYxIDE3LjY2LTc2LjcyIDQ1LjMzbDM3LjY4IDM3LjQzYTMxIDMxIDAgMCAwIDQwLjE4IDIuODJjMTMuNi0xMC4wNiAyNS4wOS0xNC4zNCA0MC45NC0yMC4yNCAxNDIuMi01MyAxODAtMTY0LjEgMTg4Ljk0LTE4Ny42OUM0MDUgMjE5LjE4IDQ2NC44IDIwMy4zIDQ3NCAxOTkuODZjMjQuODctOS4yNyA1NC43NC0yMC40IDkxLjExLTUwLjQxIDEzLjg5LTExLjQgMTQuNTItMzIuNDUgMS44Mi00NS4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFjdGVyaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyLjM1LDIyNi40QTE3LjcxLDE3LjcxLDAsMCwwLDI4MS40NiwyMDNsLTQtOS4wOGExMjEuMjksMTIxLjI5LDAsMCwxLDEyLjM2LTMuMDhBODMuMzQsODMuMzQsMCwwLDAsMzIzLjU3LDE3N2wxMCw5YTE3Ljc2LDE3Ljc2LDAsMSwwLDIzLjkyLTI2LjI3bC05LjcyLTguNzZhODMuMTIsODMuMTIsMCwwLDAsMTEuNjUtNDguMThsMTEuODUtMy41MWExNy43MywxNy43MywwLDEsMC0xMC4xNS0zNGwtMTEuMzQsMy4zNmE4NCw4NCwwLDAsMC0zNi4zOC0zNS41N2wyLjg0LTEwLjg1YTE3LjgsMTcuOCwwLDAsMC0zNC40Ny04LjkzbC0yLjgyLDEwLjc4YTgzLjI1LDgzLjI1LDAsMCwwLTE2Ljc0LDEuMUMyNTAuODMsMjcsMjQwLDMwLjIyLDIyOS4xLDMzLjM5bC0zLjM4LTkuNDZhMTcuOCwxNy44LDAsMCwwLTMzLjU2LDExLjg5bDMuNDksOS44YTI4Ni43NCwyODYuNzQsMCwwLDAtNDMuOTQsMjMuNTdsLTYuMzItOC40M2ExNy45LDE3LjksMCwwLDAtMjQuOTQtMy42QTE3LjY5LDE3LjY5LDAsMCwwLDExNi44NCw4Mmw2LjQ1LDguNjFhMjg2LjU5LDI4Ni41OSwwLDAsMC0zNC45NSwzNS4zM2wtOC44Mi02LjQyYTE3Ljg0LDE3Ljg0LDAsMCwwLTI0Ljg5LDMuODYsMTcuNjYsMTcuNjYsMCwwLDAsMy44OCwyNC43N2w4Ljg4LDYuNDdhMjg2LjYsMjg2LjYsMCwwLDAtMjMsNDMuOTFsLTEwLjQ4LTMuNTlhMTcuNzMsMTcuNzMsMCwxLDAtMTEuNTksMzMuNTJMMzIuNjcsMjMyYy0yLjc5LDEwLTUuNzksMTkuODQtNy41MiwzMC4yMmE4My4xNiw4My4xNiwwLDAsMC0uODIsMTlsLTExLjU4LDMuNDNhMTcuNzMsMTcuNzMsMCwxLDAsMTAuMTMsMzRsMTEuMjctMy4zM2E4My41MSw4My41MSwwLDAsMCwzNi4zOSwzNS40M2wtMi44OCwxMS4wNmExNy44MSwxNy44MSwwLDAsMCwzNC40OCw4LjkybDIuODctMTFjMSwwLDIuMDcuMjYsMy4xLjI2YTgzLjM5LDgzLjM5LDAsMCwwLDQ1LjY1LTEzLjg4bDguNTksOC44YTE3Ljc3LDE3Ljc3LDAsMCwwLDI1LjU2LTI0LjdsLTkuMTQtOS4zN2E4My40MSw4My40MSwwLDAsMCwxMi4wOC0zMS4wNSwxMTkuMDgsMTE5LjA4LDAsMCwxLDMuODctMTUuNTNsOSw0LjIyYTE3Ljc0LDE3Ljc0LDAsMSwwLDE1LjE1LTMyLjA5bC04LjgtNC4xMWMuNjctMSwxLjItMi4wOCwxLjktMy4wNWExMTkuODksMTE5Ljg5LDAsMCwxLDcuODctOS40MSwxMjEuNzMsMTIxLjczLDAsMCwxLDExLjY1LTExLjQsMTE5LjQ5LDExOS40OSwwLDAsMSw5Ljk0LTcuODJjMS4xMi0uNzcsMi4zMi0xLjQyLDMuNDctMi4xNWwzLjkyLDguODVhMTcuODYsMTcuODYsMCwwLDAsMTYuMzIsMTAuNThBMTguMTQsMTguMTQsMCwwLDAsMjcyLjM1LDIyNi40Wk0xMjgsMjU2YTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDEyOCwyNTZabTgwLTk2YTE2LDE2LDAsMSwxLDE2LTE2QTE2LDE2LDAsMCwxLDIwOCwxNjBabTQzMS4yNiw0NS4zYTE3Ljc5LDE3Ljc5LDAsMCwwLTE3LjA2LTEyLjY5LDE3LjU1LDE3LjU1LDAsMCwwLTUuMDguNzRsLTExLjI3LDMuMzNhODMuNjEsODMuNjEsMCwwLDAtMzYuMzktMzUuNDNsMi44OC0xMS4wNmExNy44MSwxNy44MSwwLDAsMC0zNC40OC04LjkxbC0yLjg3LDExYy0xLDAtMi4wNy0uMjYtMy4xLS4yNmE4My4zMiw4My4zMiwwLDAsMC00NS42NSwxMy44OWwtOC41OS04LjgxYTE3Ljc3LDE3Ljc3LDAsMCwwLTI1LjU2LDI0LjdsOS4xNCw5LjM3YTgzLjI4LDgzLjI4LDAsMCwwLTEyLjA4LDMxLjA2LDExOS4zNCwxMTkuMzQsMCwwLDEtMy44NywxNS41MmwtOS00LjIyYTE3Ljc0LDE3Ljc0LDAsMSwwLTE1LjE1LDMyLjA5bDguOCw0LjExYy0uNjcsMS0xLjIsMi4wOC0xLjg5LDMuMDVhMTE3LjcxLDExNy43MSwwLDAsMS03Ljk0LDkuNDcsMTE5LDExOSwwLDAsMS0xMS41NywxMS4zMywxMjEuNTksMTIxLjU5LDAsMCwxLTEwLDcuODNjLTEuMTIuNzctMi4zMiwxLjQyLTMuNDcsMi4xNWwtMy45Mi04Ljg1YTE3Ljg2LDE3Ljg2LDAsMCwwLTE2LjMyLTEwLjU4LDE4LjE0LDE4LjE0LDAsMCwwLTcuMTgsMS41QTE3LjcxLDE3LjcxLDAsMCwwLDM1OC41NCwzMDlsNCw5LjA4YTExOC43MSwxMTguNzEsMCwwLDEtMTIuMzYsMy4wOCw4My4zNCw4My4zNCwwLDAsMC0zMy43NywxMy45bC0xMC05YTE3Ljc3LDE3Ljc3LDAsMSwwLTIzLjkyLDI2LjI4bDkuNzIsOC43NWE4My4xMiw4My4xMiwwLDAsMC0xMS42NSw0OC4xOGwtMTEuODYsMy41MWExNy43MywxNy43MywwLDEsMCwxMC4xNiwzNGwxMS4zNC0zLjM2QTg0LDg0LDAsMCwwLDMyNi42MSw0NzlsLTIuODQsMTAuODVhMTcuOCwxNy44LDAsMCwwLDM0LjQ3LDguOTNMMzYxLjA2LDQ4OGE4My4zLDgzLjMsMCwwLDAsMTYuNzQtMS4xYzExLjM3LTEuODksMjIuMjQtNS4wNywzMy4xLTguMjRsMy4zOCw5LjQ2YTE3LjgsMTcuOCwwLDAsMCwzMy41Ni0xMS44OWwtMy40OS05Ljc5YTI4Ny42NiwyODcuNjYsMCwwLDAsNDMuOTQtMjMuNThsNi4zMiw4LjQzYTE3Ljg4LDE3Ljg4LDAsMCwwLDI0LjkzLDMuNkExNy42NywxNy42NywwLDAsMCw1MjMuMTYsNDMwbC02LjQ1LTguNjFhMjg3LjM3LDI4Ny4zNywwLDAsMCwzNC45NS0zNS4zNGw4LjgyLDYuNDJhMTcuNzYsMTcuNzYsMCwxLDAsMjEtMjguNjNsLTguODgtNi40NmEyODcuMTcsMjg3LjE3LDAsMCwwLDIzLTQzLjkybDEwLjQ4LDMuNTlhMTcuNzMsMTcuNzMsMCwxLDAsMTEuNTktMzMuNTJMNjA3LjMzLDI4MGMyLjc5LTEwLDUuNzktMTkuODQsNy41Mi0zMC4yMWE4My4yNyw4My4yNywwLDAsMCwuODItMTkuMDVsMTEuNTgtMy40M0ExNy43LDE3LjcsMCwwLDAsNjM5LjI2LDIwNS4zWk00MTYsNDE2YTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDQxNiw0MTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhY3Rlcml1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEsMTAyLjkzQTIzLjc2LDIzLjc2LDAsMCwwLDQ4MS40Nyw4N2wtMTUuMTIsNC40OGExMTEuODUsMTExLjg1LDAsMCwwLTQ4LjUtNDcuNDJsMy43OS0xNC40N2EyMy43NCwyMy43NCwwLDAsMC00Ni0xMS45MWwtMy43NiwxNC4zN2ExMTEuOTQsMTExLjk0LDAsMCwwLTIyLjMzLDEuNDcsMzg2Ljc0LDM4Ni43NCwwLDAsMC00NC4zMywxMC40MWwtNC4zLTEyYTIzLjc0LDIzLjc0LDAsMCwwLTQ0Ljc1LDE1Ljg1bDQuMywxMi4wNWEzODMuNCwzODMuNCwwLDAsMC01OC42OSwzMS44M2wtOC0xMC42M2EyMy44NSwyMy44NSwwLDAsMC0zMy4yNC00LjgsMjMuNTcsMjMuNTcsMCwwLDAtNC44MywzMy4wOWw4LDEwLjYzYTM4Ni4xNCwzODYuMTQsMCwwLDAtNDYuNyw0Ny40NGwtMTEtOGEyMy42OCwyMy42OCwwLDEsMC0yOCwzOC4xN2wxMS4wOSw4LjA2YTM4My40NSwzODMuNDUsMCwwLDAtMzAuOTIsNTguNzVsLTEyLjkzLTQuNDNhMjMuNjUsMjMuNjUsMCwxLDAtMTUuNDcsNDQuNjlsMTMsNC40OGEzODUuODEsMzg1LjgxLDAsMCwwLTkuMyw0MC41M0ExMTEuNTgsMTExLjU4LDAsMCwwLDMyLjQ0LDM3NUwxNywzNzkuNTZhMjMuNjQsMjMuNjQsMCwwLDAsMTMuNTEsNDUuMzFsMTUtNC40NGExMTEuNDksMTExLjQ5LDAsMCwwLDQ4LjUzLDQ3LjI0bC0zLjg1LDE0Ljc1YTIzLjY2LDIzLjY2LDAsMCwwLDE3LDI4LjgzLDI0LjcsMjQuNywwLDAsMCw2LC43NSwyMy43MywyMy43MywwLDAsMCwyMy0xNy43TDE0MCw0NzkuNjdjMS4zNy4wNSwyLjc3LjM1LDQuMTMuMzVBMTExLjIyLDExMS4yMiwwLDAsMCwyMDUsNDYxLjVsMTEuNDUsMTEuNzRhMjMuNywyMy43LDAsMCwwLDM0LjA4LTMyLjkzbC0xMi4xOS0xMi41YTExMSwxMTEsMCwwLDAsMTYuMTEtNDEuNCwxNTguNjksMTU4LjY5LDAsMCwxLDUuMTYtMjAuNzFsMTIsNS42NGEyMy42NiwyMy42NiwwLDEsMCwyMC4xOS00Mi43OWwtMTEuNzItNS40OWMuODktMS4zMiwxLjU5LTIuNzcsMi41Mi00LjA2YTE1Ny44NiwxNTcuODYsMCwwLDEsMTAuNDYtMTIuNDksMTU5LjUsMTU5LjUsMCwwLDEsMTUuNTktMTUuMjgsMTYyLjE4LDE2Mi4xOCwwLDAsMSwxMy4yMy0xMC40YzEuNS0xLDMuMS0xLjg5LDQuNjMtMi44N2w1LjIzLDExLjhhMjMuNzQsMjMuNzQsMCwwLDAsNDMuNDgtMTkuMDhsLTUuMzYtMTIuMTFhMTU4Ljg3LDE1OC44NywwLDAsMSwxNi40OS00LjEsMTExLDExMSwwLDAsMCw0NS0xOC41NGwxMy4zMywxMmEyMy42OSwyMy42OSwwLDEsMCwzMS44OC0zNWwtMTIuOTQtMTEuNjdBMTEwLjgzLDExMC44MywwLDAsMCw0NzkuMjEsMTM3TDQ5NSwxMzIuMzJBMjMuNjEsMjMuNjEsMCwwLDAsNTExLDEwMi45M1pNMTYwLDM2OGE0OCw0OCwwLDEsMSw0OC00OEE0OCw0OCwwLDAsMSwxNjAsMzY4Wm04MC0xMzZhMjQsMjQsMCwxLDEsMjQtMjRBMjQsMjQsMCwwLDEsMjQwLDIzMlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmFoYWkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjI1IDIwMi41MmwtMTEwLTE1LjQ0IDQxLjgyLTEwNC4zNGM2LjY3LTE2LjY0LTExLjYtMzIuMTgtMjYuNTktMjIuNjNMMzA3LjQ0IDEyMCAyNzMuMzUgMTIuODJDMjcwLjY0IDQuMjcgMjYzLjMyIDAgMjU2IDBjLTcuMzIgMC0xNC42NCA0LjI3LTE3LjM1IDEyLjgybC0zNC4wOSAxMDcuMTktOTQuMDQtNTkuODljLTE0Ljk5LTkuNTUtMzMuMjUgNS45OS0yNi41OSAyMi42M2w0MS44MiAxMDQuMzQtMTEwIDE1LjQzYy0xNy41NCAyLjQ2LTIxLjY4IDI2LjI3LTYuMDMgMzQuNjdsOTguMTYgNTIuNjYtNzQuNDggODMuNTRjLTEwLjkyIDEyLjI1LTEuNzIgMzAuOTMgMTMuMjkgMzAuOTMgMS4zMSAwIDIuNjctLjE0IDQuMDctLjQ1bDEwOC41Ny0yMy42NS00LjExIDExMi41NWMtLjQzIDExLjY1IDguODcgMTkuMjIgMTguNDEgMTkuMjIgNS4xNSAwIDEwLjM5LTIuMjEgMTQuMi03LjE4bDY4LjE4LTg4LjkgNjguMTggODguOWMzLjgxIDQuOTcgOS4wNCA3LjE4IDE0LjIgNy4xOCA5LjU0IDAgMTguODQtNy41NyAxOC40MS0xOS4yMmwtNC4xMS0xMTIuNTUgMTA4LjU3IDIzLjY1YzE3LjM2IDMuNzYgMjkuMjEtMTcuMiAxNy4zNS0zMC40OWwtNzQuNDgtODMuNTQgOTguMTYtNTIuNjZjMTUuNjQtOC4zOSAxMS41LTMyLjItNi4wNC0zNC42NnpNMzM4LjUxIDMxMS42OGwtNTEuODktMTEuMyAxLjk3IDUzLjc5TDI1NiAzMTEuNjhsLTMyLjU5IDQyLjQ5IDEuOTYtNTMuNzktNTEuODkgMTEuMyAzNS42LTM5LjkzLTQ2LjkyLTI1LjE3IDUyLjU3LTcuMzgtMTkuOTktNDkuODcgNDQuOTUgMjguNjJMMjU2IDE2Ni43MmwxNi4yOSA1MS4yMyA0NC45NS0yOC42Mi0xOS45OSA0OS44NyA1Mi41NyA3LjM4LTQ2LjkyIDI1LjE3IDM1LjYxIDM5LjkzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWxhbmNlU2NhbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA0NDhIMzUyVjE1My4yNWMyMC40Mi04Ljk0IDM2LjEtMjYuMjIgNDMuMzgtNDcuNDdsMTMyLTQ0LjI2YzguMzgtMi44MSAxMi44OS0xMS44OCAxMC4wOC0yMC4yNmwtMTAuMTctMzAuMzRDNTI0LjQ4IDIuNTQgNTE1LjQxLTEuOTcgNTA3LjAzLjg0TDM4OS4xMSA0MC4zN0MzNzUuMyAxNi4zNiAzNDkuNjkgMCAzMjAgMGMtNDQuMTggMC04MCAzNS44Mi04MCA4MCAwIDMuNDMuNTkgNi43MSAxLjAxIDEwLjAzbC0xMjguMzkgNDMuMDVjLTguMzggMi44MS0xMi44OSAxMS44OC0xMC4wOCAyMC4yNmwxMC4xNyAzMC4zNGMyLjgxIDguMzggMTEuODggMTIuODkgMjAuMjYgMTAuMDhsMTQyLjA1LTQ3LjYzYzQuMDcgMi43NyA4LjQzIDUuMTIgMTIuOTkgNy4xMlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMtLjAxLTguODQtNy4xNy0xNi0xNi4wMS0xNnptMTExLjk4LTE0NGMwLTE2LjE4IDEuMzQtOC43My04NS4wNS0xODEuNTEtMTcuNjUtMzUuMjktNjguMTktMzUuMzYtODUuODcgMC04Ny4xMiAxNzQuMjYtODUuMDQgMTY1Ljg0LTg1LjA0IDE4MS41MUgzODRjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyek00NDAgMjg4bDcyLTE0NCA3MiAxNDRINDQwem0tMjY5LjA3LTM3LjUxYy0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwQy0yLjA2IDQyNC43NS4wMiA0MTYuMzMuMDIgNDMySDBjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MXpNNTYgNDE2bDcyLTE0NCA3MiAxNDRINTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbGFuY2VTY2FsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQ2NHYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgyMjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTUzLjI1YzQuNTYtMiA4LjkyLTQuMzUgMTIuOTktNy4xMmwxNDIuMDUgNDcuNjNjOC4zOCAyLjgxIDE3LjQ1LTEuNzEgMjAuMjYtMTAuMDhsMTAuMTctMzAuMzRjMi44MS04LjM4LTEuNzEtMTcuNDUtMTAuMDgtMjAuMjZsLTEyOC40LTQzLjA1Yy40Mi0zLjMyIDEuMDEtNi42IDEuMDEtMTAuMDMgMC00NC4xOC0zNS44Mi04MC04MC04MC0yOS42OSAwLTU1LjMgMTYuMzYtNjkuMTEgNDAuMzdMMTMyLjk2LjgzYy04LjM4LTIuODEtMTcuNDUgMS43MS0yMC4yNiAxMC4wOGwtMTAuMTcgMzAuMzRjLTIuODEgOC4zOCAxLjcxIDE3LjQ1IDEwLjA4IDIwLjI2bDEzMiA0NC4yNmM3LjI4IDIxLjI1IDIyLjk2IDM4LjU0IDQzLjM4IDQ3LjQ3VjQ0OEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2ek0wIDMwNGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNS42NyAyLjA4LTcuMjUtODUuMDUtMTgxLjUxLTE3LjY4LTM1LjM2LTY4LjIyLTM1LjI5LTg1Ljg3IDBDLTEuMzIgMjk1LjI3LjAyIDI4Ny44Mi4wMiAzMDRIMHptNTYtMTZsNzItMTQ0IDcyIDE0NEg1NnptMzI4LjAyIDE0NEgzODRjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyYzAtMTUuNjcgMi4wOC03LjI1LTg1LjA1LTE4MS41MS0xNy42OC0zNS4zNi02OC4yMi0zNS4yOS04NS44NyAwLTg2LjM4IDE3Mi43OC04NS4wNCAxNjUuMzMtODUuMDQgMTgxLjUxek00NDAgNDE2bDcyLTE0NCA3MiAxNDRINDQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYWxhbmNlU2NhbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMzNmgtLjAyYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwQy0yLjA2IDMyOC43NS4wMiAzMjAuMzMuMDIgMzM2SDBjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MHpNMTI4IDE3Nmw3MiAxNDRINTZsNzItMTQ0em01MTEuOTggMTYwYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwLTg3LjEyIDE3NC4yNi04NS4wNCAxNjUuODQtODUuMDQgMTgxLjUxSDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJ6TTQ0MCAzMjBsNzItMTQ0IDcyIDE0NEg0NDB6bTg4IDEyOEgzNTJWMTUzLjI1YzIzLjUxLTEwLjI5IDQxLjE2LTMxLjQ4IDQ2LjM5LTU3LjI1SDUyOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY0OGMwLTguODQtNy4xNi0xNi0xNi0xNkgzODMuNjRDMzY5LjA0IDEyLjY4IDM0Ni4wOSAwIDMyMCAwcy00OS4wNCAxMi42OC02My42NCAzMkgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDEyOS42MWM1LjIzIDI1Ljc2IDIyLjg3IDQ2Ljk2IDQ2LjM5IDU3LjI1VjQ0OEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDM0IDggOCAxMTkuMDMzIDggMjU2czExMS4wMzQgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzQgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTEzMC4xMDggMTE3Ljg5MmM2NS40NDggNjUuNDQ4IDcwIDE2NS40ODEgMjAuNjc3IDIzNS42MzdMMTUwLjQ3IDEwNS4yMTZjNzAuMjA0LTQ5LjM1NiAxNzAuMjI2LTQ0LjczNSAyMzUuNjM4IDIwLjY3NnpNMTI1Ljg5MiAzODYuMTA4Yy02NS40NDgtNjUuNDQ4LTcwLTE2NS40ODEtMjAuNjc3LTIzNS42MzdMMzYxLjUzIDQwNi43ODRjLTcwLjIwMyA0OS4zNTYtMTcwLjIyNiA0NC43MzYtMjM1LjYzOC0yMC42NzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhbmRBaWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNjB2MTkyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2Vjk2SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHptNTc2LTY0aC05NnYzMjBoOTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xOTIgNDE2aDI1NlY5NkgxOTJ2MzIwem0xNzYtMjMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMCA5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bS05Ni05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bTAgOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDQ4VjY0aDE4djM4NEgwem0yNi44NTctLjI3M1Y2NEgzNnYzODMuNzI3aC05LjE0M3ptMjcuMTQzIDBWNjRoOC44NTd2MzgzLjcyN0g1NHptNDQuODU3IDBWNjRoOC44NTd2MzgzLjcyN2gtOC44NTd6bTM2IDBWNjRoMTcuNzE0djM4My43MjdoLTE3LjcxNHptNDQuODU3IDBWNjRoOC44NTd2MzgzLjcyN2gtOC44NTd6bTE4IDBWNjRoOC44NTd2MzgzLjcyN2gtOC44NTd6bTE4IDBWNjRoOC44NTd2MzgzLjcyN2gtOC44NTd6bTM1LjcxNSAwVjY0aDE4djM4My43MjdoLTE4em00NC44NTcgMFY2NGgxOHYzODMuNzI3aC0xOHptMzUuOTk5IDBWNjRoMTguMDAxdjM4My43MjdoLTE4LjAwMXptMzYuMDAxIDBWNjRoMTguMDAxdjM4My43MjdoLTE4LjAwMXptMjYuODU3IDBWNjRoMTh2MzgzLjcyN2gtMTh6bTQ1LjE0MyAwVjY0aDI2Ljg1N3YzODMuNzI3aC0yNi44NTd6bTM1LjcxNCAwVjY0aDkuMTQzdjM4My43MjdINDc2em0xOCAuMjczVjY0aDE4djM4NGgtMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYgMTMyaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2Vjc2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZIMTZDNy4xNjMgNjAgMCA2Ny4xNjMgMCA3NnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2em0wIDE2MGg0MTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXNlYmFsbEJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4LjUgMzYzLjlsMjguOC0xMy45YzExLjEgMjIuOSAyNiA0My4yIDQ0LjEgNjAuOSAzNC00Mi41IDU0LjUtOTYuMyA1NC41LTE1NC45IDAtNTguNS0yMC40LTExMi4yLTU0LjItMTU0LjYtMTcuOCAxNy4zLTMyLjYgMzcuMS00My42IDU5LjVsLTI4LjctMTQuMWMxMi44LTI2IDMwLTQ5IDUwLjgtNjlDMzc1LjYgMzQuNyAzMTUgOCAyNDggOCAxODEuMSA4IDEyMC41IDM0LjYgNzUuOSA3Ny43YzIwLjcgMTkuOSAzNy45IDQyLjkgNTAuNyA2OC44bC0yOC43IDE0LjFjLTExLTIyLjMtMjUuNy00Mi4xLTQzLjUtNTkuNEMyMC40IDE0My43IDAgMTk3LjQgMCAyNTZjMCA1OC42IDIwLjQgMTEyLjMgNTQuNCAxNTQuNyAxOC4yLTE3LjcgMzMuMi0zOCA0NC4zLTYxbDI4LjggMTMuOWMtMTIuOSAyNi43LTMwLjMgNTAuMy01MS41IDcwLjcgNDQuNSA0My4xIDEwNS4xIDY5LjcgMTcyIDY5LjcgNjYuOCAwIDEyNy4zLTI2LjUgMTcxLjktNjkuNS0yMS4xLTIwLjQtMzguNS00My45LTUxLjQtNzAuNnptLTIyOC4zLTMybC0zMC41LTkuOGMxNC45LTQ2LjQgMTIuNy05My44LS42LTEzNGwzMC40LTEwYzE1IDQ1LjYgMTggOTkuOS43IDE1My44em0yMTYuMy0xNTMuNGwzMC40IDEwYy0xMy4yIDQwLjEtMTUuNSA4Ny41LS42IDEzNGwtMzAuNSA5LjhjLTE3LjMtNTQtMTQuMy0xMDguMy43LTE1My44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXNrZXRiYWxsQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTIuMyAxMC4zYy00My44IDYuMy04Ni4yIDI0LjEtMTIyLjIgNTMuOGw3Ny40IDc3LjRjMjcuOC0zNS44IDQzLjMtODEuMiA0NC44LTEzMS4yek0yNDggMjIyTDQwNS45IDY0LjFjLTQyLjQtMzUtOTMuNi01My41LTE0NS41LTU2LjEtMS4yIDYzLjktMjEuNSAxMjIuMy01OC43IDE2Ny43TDI0OCAyMjJ6TTU2LjEgOTguMWMtMjkuNyAzNi00Ny41IDc4LjQtNTMuOCAxMjIuMiA1MC0xLjUgOTUuNS0xNyAxMzEuMi00NC44TDU2LjEgOTguMXptMjcyLjIgMjA0LjJjNDUuMy0zNy4xIDEwMy43LTU3LjQgMTY3LjctNTguNy0yLjYtNTEuOS0yMS4xLTEwMy4xLTU2LjEtMTQ1LjVMMjgyIDI1Nmw0Ni4zIDQ2LjN6TTI0OCAyOTBMOTAuMSA0NDcuOWM0Mi40IDM0LjkgOTMuNiA1My41IDE0NS41IDU2LjEgMS4zLTY0IDIxLjYtMTIyLjQgNTguNy0xNjcuN0wyNDggMjkwem0xOTEuOSAxMjMuOWMyOS43LTM2IDQ3LjUtNzguNCA1My44LTEyMi4yLTUwLjEgMS42LTk1LjUgMTcuMS0xMzEuMiA0NC44bDc3LjQgNzcuNHpNMTY3LjcgMjA5LjdDMTIyLjMgMjQ2LjkgNjMuOSAyNjcuMyAwIDI2OC40YzIuNiA1MS45IDIxLjEgMTAzLjEgNTYuMSAxNDUuNUwyMTQgMjU2bC00Ni4zLTQ2LjN6bTExNiAyOTJjNDMuOC02LjMgODYuMi0yNC4xIDEyMi4yLTUzLjhsLTc3LjQtNzcuNGMtMjcuNyAzNS43LTQzLjIgODEuMi00NC44IDEzMS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLDM4NGE5NS40LDk1LjQsMCwwLDAsMzIsNzEuMDlWNDk2YTE2LDE2LDAsMCwwLDE2LDE2aDMyYTE2LDE2LDAsMCwwLDE2LTE2VjQ4MEgzODR2MTZhMTYsMTYsMCwwLDAsMTYsMTZoMzJhMTYsMTYsMCwwLDAsMTYtMTZWNDU1LjA5QTk1LjQsOTUuNCwwLDAsMCw0ODAsMzg0VjMzNkgzMlpNNDk2LDI1Nkg4MFY2OS4yNWEyMS4yNiwyMS4yNiwwLDAsMSwzNi4yOC0xNWwxOS4yNywxOS4yNmMtMTMuMTMsMjkuODgtNy42MSw1OS4xMSw4LjYyLDc5LjczbC0uMTcuMTdBMTYsMTYsMCwwLDAsMTQ0LDE3NmwxMS4zMSwxMS4zMWExNiwxNiwwLDAsMCwyMi42MywwTDI4My4zMSw4MS45NGExNiwxNiwwLDAsMCwwLTIyLjYzTDI3Miw0OGExNiwxNiwwLDAsMC0yMi42MiwwbC0uMTcuMTdjLTIwLjYyLTE2LjIzLTQ5LjgzLTIxLjc1LTc5LjczLTguNjJMMTUwLjIyLDIwLjI4QTY5LjI1LDY5LjI1LDAsMCwwLDMyLDY5LjI1VjI1NkgxNkExNiwxNiwwLDAsMCwwLDI3MnYxNmExNiwxNiwwLDAsMCwxNiwxNkg0OTZhMTYsMTYsMCwwLDAsMTYtMTZWMjcyQTE2LDE2LDAsMCwwLDQ5NiwyNTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlFbXB0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCYXR0ZXJ5RnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tNDggOTZIOTZ2MTI4aDQxNlYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlIYWxmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0yNDAgOTZIOTZ2MTI4aDIyNFYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlRdWFydGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0zMzYgOTZIOTZ2MTI4aDEyOFYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJhdHRlcnlUaHJlZVF1YXJ0ZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0xNDQgOTZIOTZ2MTI4aDMyMFYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMjU2YzQ0LjExIDAgODAtMzUuODkgODAtODBzLTM1Ljg5LTgwLTgwLTgwLTgwIDM1Ljg5LTgwIDgwIDM1Ljg5IDgwIDgwIDgwem0zNTItMTI4SDMwNGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0SDY0VjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgNjQgMCA3MS4xNiAwIDgwdjM1MmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhoNTEydjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjI0MGMwLTYxLjg2LTUwLjE0LTExMi0xMTItMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCZWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA5NmgtNDhWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djQwMGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMjcyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtNDIuMTFsODAuNjA2LTM1Ljk3N0M0MjkuMzk2IDM2NS4wNjMgNDQ4IDMzNi4zODggNDQ4IDMwNC44NlYxNzZjMC00NC4xMTItMzUuODg4LTgwLTgwLTgwem0xNiAyMDguODZhMTYuMDE4IDE2LjAxOCAwIDAgMS05LjQ3OSAxNC42MTFMMzIwIDM0My44MDVWMTYwaDQ4YzguODIyIDAgMTYgNy4xNzggMTYgMTZ2MTI4Ljg2ek0yMDggMzg0Yy04LjgzNiAwLTE2LTcuMTY0LTE2LTE2VjE0NGMwLTguODM2IDcuMTY0LTE2IDE2LTE2czE2IDcuMTY0IDE2IDE2djIyNGMwIDguODM2LTcuMTY0IDE2LTE2IDE2em0tOTYgMGMtOC44MzYgMC0xNi03LjE2NC0xNi0xNlYxNDRjMC04LjgzNiA3LjE2NC0xNiAxNi0xNnMxNiA3LjE2NCAxNiAxNnYyMjRjMCA4LjgzNi03LjE2NCAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmVsbFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44MiA0NTguMWwtOTAuNjItNzAuMDVjLjE5LTEuMzguOC0yLjY2LjgtNC4wNi4wNS03LjU1LTIuNjEtMTUuMjctOC42MS0yMS43MS0xOS4zMi0yMC43Ni01NS40Ny01MS45OS01NS40Ny0xNTQuMjkgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRjLTQwLjMzIDguMzgtNzQuNjYgMzEuMDctOTcuNTkgNjIuNTdMNDUuNDcgMy4zN0MzOC40OS0yLjA1IDI4LjQzLS44IDIzLjAxIDYuMThMMy4zNyAzMS40NUMtMi4wNSAzOC40Mi0uOCA0OC40NyA2LjE4IDUzLjlsNTg4LjM1IDQ1NC43M2M2Ljk4IDUuNDMgMTcuMDMgNC4xNyAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YzUuNDItNi45NyA0LjE3LTE3LjAyLTIuODEtMjIuNDV6TTE1Ny4yMyAyNTEuNTRjLTguNjEgNjcuOTYtMzYuNDEgOTMuMzMtNTIuNjIgMTEwLjc1LTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDI0MS45MkwxNTcuMjMgMjUxLjU0ek0zMjAgNTEyYzM1LjMyIDAgNjMuOTctMjguNjUgNjMuOTctNjRIMjU2LjAzYzAgMzUuMzUgMjguNjUgNjQgNjMuOTcgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDUxMmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDE2MC4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0em0yMTUuMzktMTQ5LjcxYy0xOS4zMi0yMC43Ni01NS40Ny01MS45OS01NS40Ny0xNTQuMjkgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRDMTE4LjU2IDY4LjEgNjQuMDggMTMwLjMgNjQuMDggMjA4YzAgMTAyLjMtMzYuMTUgMTMzLjUzLTU1LjQ3IDE1NC4yOS02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgzODMuOGMxOS4xMiAwIDMyLTE1LjYgMzIuMS0zMiAuMDUtNy41NS0yLjYxLTE1LjI3LTguNjEtMjEuNzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJlemllckN1cnZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCAzMmgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTIwOCA4OGgtODQuNzVDMTEzLjc1IDY0LjU2IDkwLjg0IDQ4IDY0IDQ4IDI4LjY2IDQ4IDAgNzYuNjUgMCAxMTJzMjguNjYgNjQgNjQgNjRjMjYuODQgMCA0OS43NS0xNi41NiA1OS4yNS00MGg3OS43M2MtNTUuMzcgMzIuNTItOTUuODYgODcuMzItMTA5LjU0IDE1Mmg0OS40YzExLjMtNDEuNjEgMzYuNzctNzcuMjEgNzEuMDQtMTAxLjU2LTMuNy04LjA4LTUuODgtMTYuOTktNS44OC0yNi40NFY4OHptLTQ4IDIzMkg2NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTU3NiA0OGMtMjYuODQgMC00OS43NSAxNi41Ni01OS4yNSA0MEg0MzJ2NzJjMCA5LjQ1LTIuMTkgMTguMzYtNS44OCAyNi40NCAzNC4yNyAyNC4zNSA1OS43NCA1OS45NSA3MS4wNCAxMDEuNTZoNDkuNGMtMTMuNjgtNjQuNjgtNTQuMTctMTE5LjQ4LTEwOS41NC0xNTJoNzkuNzNjOS41IDIzLjQ0IDMyLjQxIDQwIDU5LjI1IDQwIDM1LjM0IDAgNjQtMjguNjUgNjQtNjRzLTI4LjY2LTY0LTY0LTY0em0wIDI3MmgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaWJsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0xNDQgMTQ0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDQ4VjgwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djQ4aDQ4YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2aC00OHYxMTJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNlYxOTJoLTQ4Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJ6bTIzNi44IDMwNEg5NmMtMTkuMiAwLTMyLTEyLjgtMzItMzJzMTYtMzIgMzItMzJoMjg0Ljh2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpY3ljbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyLjUwOSAxOTIuMDAxYy0xNi4zNzMtLjA2NC0zMi4wMyAyLjk1NS00Ni40MzYgOC40OTVsLTc3LjY4LTEyNS4xNTNBMjQgMjQgMCAwIDAgMzY4LjAwMSA2NGgtNjRjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2MTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg1MC42NDlsMTQuODk2IDI0SDI1Ni4wMDJ2LTE2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTg3LjQ1OWMtMTMuNDQxIDAtMjQuNzc3IDEwLjk5OS0yNC41MzYgMjQuNDM3LjIzMiAxMy4wNDQgMTAuODc2IDIzLjU2MyAyMy45OTUgMjMuNTYzaDQ4LjcyNmwtMjkuNDE3IDQ3LjUyYy0xMy40MzMtNC44My0yNy45MDQtNy40ODMtNDIuOTkyLTcuNTJDNTguMDk0IDE5MS44My40MTIgMjQ5LjAxMi4wMDIgMzE5LjIzNi0uNDEzIDM5MC4yNzkgNTcuMDU1IDQ0OCAxMjguMDAyIDQ0OGM1OS42NDIgMCAxMDkuNzU4LTQwLjc5MyAxMjMuOTY3LTk2aDUyLjAzM2EyNCAyNCAwIDAgMCAyMC40MDYtMTEuMzY3TDQxMC4zNyAyMDEuNzdsMTQuOTM4IDI0LjA2N2MtMjUuNDU1IDIzLjQ0OC00MS4zODUgNTcuMDgxLTQxLjMwNyA5NC40MzcuMTQ1IDY4LjgzMyA1Ny44OTkgMTI3LjA1MSAxMjYuNzI5IDEyNy43MTkgNzAuNjA2LjY4NSAxMjguMTgxLTU1LjgwMyAxMjkuMjU1LTEyNS45OTYgMS4wODYtNzAuOTQxLTU2LjUyNi0xMjkuNzItMTI3LjQ3Ni0xMjkuOTk2ek0xODYuNzUgMjY1Ljc3MmM5LjcyNyAxMC41MjkgMTYuNjczIDIzLjY2MSAxOS42NDIgMzguMjI4aC00My4zMDZsMjMuNjY0LTM4LjIyOHpNMTI4LjAwMiA0MDBjLTQ0LjExMiAwLTgwLTM1Ljg4OC04MC04MHMzNS44ODgtODAgODAtODBjNS44NjkgMCAxMS41ODYuNjUzIDE3LjA5OSAxLjg1OWwtNDUuNTA1IDczLjUwOUM4OS43MTUgMzMxLjMyNyAxMDEuMjEzIDM1MiAxMjAuMDAyIDM1Mmg4MS4zYy0xMi4zNyAyOC4yMjUtNDAuNTYyIDQ4LTczLjMgNDh6bTE2Mi42My05NmgtMzUuNjI0Yy0zLjk2LTMxLjc1Ni0xOS41NTYtNTkuODk0LTQyLjM4My04MC4wMjZMMjM3LjM3MSAxODRoMTI3LjU0N2wtNzQuMjg2IDEyMHptMjE3LjA1NyA5NS44ODZjLTQxLjAzNi0yLjE2NS03NC4wNDktMzUuNjkyLTc1LjYyNy03Ni43NTUtLjgxMi0yMS4xMjEgNi42MzMtNDAuNTE4IDE5LjMzNS01NS4yNjNsNDQuNDMzIDcxLjU4NmM0LjY2IDcuNTA4IDE0LjUyNCA5LjgxNiAyMi4wMzIgNS4xNTZsMTMuNTk0LTguNDM3YzcuNTA4LTQuNjYgOS44MTctMTQuNTI0IDUuMTU2LTIyLjAzMmwtNDQuNDY4LTcxLjY0M2E3OS45MDEgNzkuOTAxIDAgMCAxIDE5Ljg1OC0yLjQ5N2M0NC4xMTIgMCA4MCAzNS44ODggODAgODAtLjAwMSA0NS41NC0zOC4yNTIgODIuMzE2LTg0LjMxMyA3OS44ODV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgOTZhNDggNDggMCAxIDAtNDgtNDggNDggNDggMCAwIDAgNDggNDh6bS00IDEyMWEzMS45IDMxLjkgMCAwIDAgMjAgN2g2NGEzMiAzMiAwIDAgMCAwLTY0aC01Mi43OEwzNTYgMTAzYTMxLjk0IDMxLjk0IDAgMCAwLTQwLjgxLjY4bC0xMTIgOTZhMzIgMzIgMCAwIDAgMy4wOCA1MC45MkwyODggMzA1LjEyVjQxNmEzMiAzMiAwIDAgMCA2NCAwVjI4OGEzMiAzMiAwIDAgMC0xNC4yNS0yNi42MmwtNDEuMzYtMjcuNTcgNTguMjUtNDkuOTJ6bTExNiAzOWExMjggMTI4IDAgMSAwIDEyOCAxMjggMTI4IDEyOCAwIDAgMC0xMjgtMTI4em0wIDE5MmE2NCA2NCAwIDEgMSA2NC02NCA2NCA2NCAwIDAgMS02NCA2NHpNMTI4IDI1NmExMjggMTI4IDAgMSAwIDEyOCAxMjggMTI4IDEyOCAwIDAgMC0xMjgtMTI4em0wIDE5MmE2NCA2NCAwIDEgMSA2NC02NCA2NCA2NCAwIDAgMS02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmlub2N1bGFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTY0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGg5NlY0OHpNNjMuOTEgMTU5Ljk5QzYxLjQgMjUzLjg0IDMuNDYgMjc0LjIyIDAgNDA0djQ0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYyODhoMzJWMTI4SDk1Ljg0Yy0xNy42MyAwLTMxLjQ1IDE0LjM3LTMxLjkzIDMxLjk5em0zODQuMTggMGMtLjQ4LTE3LjYyLTE0LjMtMzEuOTktMzEuOTMtMzEuOTlIMzIwdjE2MGgzMnYxNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi00NGMtMy40Ni0xMjkuNzgtNjEuNC0xNTAuMTYtNjMuOTEtMjQ0LjAxek0xNzYgMzJoLTY0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGg5NlY0OGMwLTguODQtNy4xNi0xNi0xNi0xNnptNDggMjU2aDY0VjEyOGgtNjR2MTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCaW9oYXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg3LjkgMTEyYzE4LjYgMCAzNi4yIDMuOCA1Mi44IDkuNiAxMy4zLTEwLjMgMjMuNi0yNC4zIDI5LjUtNDAuNy0yNS4yLTEwLjktNTMtMTctODIuMi0xNy0yOS4xIDAtNTYuOSA2LTgyLjEgMTYuOSA1LjkgMTYuNCAxNi4yIDMwLjQgMjkuNSA0MC43IDE2LjUtNS43IDM0LTkuNSA1Mi41LTkuNXpNMTYzLjYgNDM4LjdjMTItMTEuOCAyMC40LTI2LjQgMjQuNS00Mi40LTMyLjktMjYuNC01NC44LTY1LjMtNTguOS0xMDkuNi04LjUtMi44LTE3LjItNC42LTI2LjQtNC42LTcuNiAwLTE1LjIgMS0yMi41IDMuMSA0LjEgNjIuOCAzNS44IDExOCA4My4zIDE1My41em0yMjQuMi00Mi42YzQuMSAxNiAxMi41IDMwLjcgMjQuNSA0Mi41IDQ3LjQtMzUuNSA3OS4xLTkwLjcgODMtMTUzLjUtNy4yLTItMTQuNy0zLTIyLjItMy05LjIgMC0xOCAxLjktMjYuNiA0LjctNC4xIDQ0LjItMjYgODIuOS01OC43IDEwOS4zem0xMTMuNS0yMDVjLTE3LjYtMTAuNC0zNi4zLTE2LjYtNTUuMy0xOS45IDYtMTcuNyAxMC0zNi40IDEwLTU2LjIgMC00MS0xNC41LTgwLjgtNDEtMTEyLjItMi41LTMtNi42LTMuNy0xMC0xLjgtMy4zIDEuOS00LjggNi0zLjYgOS43IDQuNSAxMy44IDYuNiAyNi4zIDYuNiAzOC41IDAgNjcuOC01My44IDEyMi45LTEyMCAxMjIuOVMxNjggMTE3IDE2OCA0OS4yYzAtMTIuMSAyLjItMjQuNyA2LjYtMzguNSAxLjItMy43LS4zLTcuOC0zLjYtOS43LTMuNC0xLjktNy41LTEuMi0xMCAxLjhDMTM0LjYgMzQuMiAxMjAgNzQgMTIwIDExNWMwIDE5LjggMy45IDM4LjUgMTAgNTYuMi0xOC45IDMuMy0zNy43IDkuNS01NS4zIDE5LjktMzQuNiAyMC41LTYxIDUzLjMtNzQuMyA5Mi40LTEuMyAzLjcuMiA3LjcgMy41IDkuOCAzLjMgMiA3LjUgMS4zIDEwLTEuNiA5LjQtMTAuOCAxOS0xOS4xIDI5LjItMjUuMSA1Ny4zLTMzLjkgMTMwLjgtMTMuNyAxNjMuOSA0NSAzMy4xIDU4LjcgMTMuNCAxMzQtNDMuOSAxNjcuOS0xMC4yIDYuMS0yMiAxMC40LTM1LjggMTMuNC0zLjcuOC02LjQgNC4yLTYuNCA4LjEuMSA0IDIuNyA3LjMgNi41IDggMzkuNyA3LjggODAuNi44IDExNS4yLTE5LjcgMTgtMTAuNiAzMi45LTI0LjUgNDUuMy00MC4xIDEyLjQgMTUuNiAyNy4zIDI5LjUgNDUuMyA0MC4xIDM0LjYgMjAuNSA3NS41IDI3LjUgMTE1LjIgMTkuNyAzLjgtLjcgNi40LTQgNi41LTggMC0zLjktMi42LTcuMy02LjQtOC4xLTEzLjktMi45LTI1LjYtNy4zLTM1LjgtMTMuNC01Ny4zLTMzLjktNzctMTA5LjItNDMuOS0xNjcuOXMxMDYuNi03OC45IDE2My45LTQ1YzEwLjIgNi4xIDE5LjggMTQuMyAyOS4yIDI1LjEgMi41IDIuOSA2LjcgMy42IDEwIDEuNnM0LjgtNi4xIDMuNS05LjhjLTEzLjEtMzkuMS0zOS41LTcyLTc0LjEtOTIuNHptLTIxMy40IDEyOWMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJpcnRoZGF5Q2FrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzg0Yy0yOC4wMiAwLTMxLjI2LTMyLTc0LjUtMzItNDMuNDMgMC00Ni44MjUgMzItNzQuNzUgMzItMjcuNjk1IDAtMzEuNDU0LTMyLTc0Ljc1LTMyLTQyLjg0MiAwLTQ3LjIxOCAzMi03NC41IDMyLTI4LjE0OCAwLTMxLjIwMi0zMi03NC43NS0zMi00My41NDcgMC00Ni42NTMgMzItNzQuNzUgMzJ2LTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDE2VjExMmg2NHYxNDRoNjRWMTEyaDY0djE0NGg2NFYxMTJoNjR2MTQ0aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djgwem0wIDEyOEgwdi05NmM0My4zNTYgMCA0Ni43NjctMzIgNzQuNzUtMzIgMjcuOTUxIDAgMzEuMjUzIDMyIDc0Ljc1IDMyIDQyLjg0MyAwIDQ3LjIxNy0zMiA3NC41LTMyIDI4LjE0OCAwIDMxLjIwMSAzMiA3NC43NSAzMiA0My4zNTcgMCA0Ni43NjctMzIgNzQuNzUtMzIgMjcuNDg4IDAgMzEuMjUyIDMyIDc0LjUgMzJ2OTZ6TTk2IDk2Yy0xNy43NSAwLTMyLTE0LjI1LTMyLTMyIDAtMzEgMzItMjMgMzItNjQgMTIgMCAzMiAyOS41IDMyIDU2cy0xNC4yNSA0MC0zMiA0MHptMTI4IDBjLTE3Ljc1IDAtMzItMTQuMjUtMzItMzIgMC0zMSAzMi0yMyAzMi02NCAxMiAwIDMyIDI5LjUgMzIgNTZzLTE0LjI1IDQwLTMyIDQwem0xMjggMGMtMTcuNzUgMC0zMi0xNC4yNS0zMi0zMiAwLTMxIDMyLTIzIDMyLTY0IDEyIDAgMzIgMjkuNSAzMiA1NnMtMTQuMjUgNDAtMzIgNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsZW5kZXJQaG9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zOTIgNjRoMTY2LjU0TDU3NiAwSDE5MnYzNTJoMjg4bDE3LjQ2LTY0SDM5MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExNC4xOGwxNy40Ni02NEgzOTJjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxNDAuMzZsMTcuNDYtNjRIMzkyYy00LjQyIDAtOC0zLjU4LTgtOFY3MmMwLTQuNDIgMy41OC04IDgtOHpNMTU4LjggMzM1LjAxbC0yNS43OC02My4yNmMtMi43OC02LjgxLTkuOC0xMC45OS0xNy4yNC0xMC4yNmwtNDUuMDMgNC40MmMtMTcuMjgtNDYuOTQtMTcuNjUtOTkuNzggMC0xNDcuNzJsNDUuMDMgNC40MmM3LjQzLjczIDE0LjQ2LTMuNDYgMTcuMjQtMTAuMjZsMjUuNzgtNjMuMjZjMy4wMi03LjM5LjItMTUuODUtNi42OC0yMC4wN2wtMzkuMjgtMjQuMUM5OC41MS0zLjg3IDgwLjA5LS41IDY4Ljk1IDExLjk3Yy05Mi41NyAxMDMuNi05MiAyNTkuNTUgMi4xIDM2Mi40OSA5Ljg3IDEwLjggMjkuMTIgMTIuNDggNDEuNjUgNC44bDM5LjQxLTI0LjE4YzYuODktNC4yMiA5LjctMTIuNjcgNi42OS0yMC4wN3pNNDgwIDM4NEgxOTJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzNTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0zNS4zNS0yOC42NS02NC02NC02NHptLTE0NCA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQmxlbmRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzg0SDE2MGMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0em0tMTI4IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem00MC00MTZoMTY2LjU0TDUxMiAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djE2MGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDEwMy4yN2w4LjczIDk2aDI1NmwxNy40Ni02NEgzMjhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxMTQuMThsMTcuNDYtNjRIMzI4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTQwLjM2bDE3LjQ2LTY0SDMyOGMtNC40MiAwLTgtMy41OC04LThWNzJjMC00LjQyIDMuNTgtOCA4LTh6TTY0IDE5MlY2NGg2OS44MmwxMS42NCAxMjhINjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4MC4xNSA1MTAuODM3YTggOCAwIDAgMS0xMC45ODktMi42ODdsLTEyNS4zMy0yMDYuNDI3YTMxLjkyMyAzMS45MjMgMCAwIDAgMTIuOTU4LTkuNDg1bDEyNi4wNDggMjA3LjYwOGE4IDggMCAwIDEtMi42ODcgMTAuOTkxek0xNDIuODAzIDMxNC4zMzhsLTMyLjU0IDg5LjQ4NSAzNi4xMiA4OC4yODVjNi42OTMgMTYuMzYgMjUuMzc3IDI0LjE5MiA0MS43MzMgMTcuNTAxIDE2LjM1Ny02LjY5MiAyNC4xOTMtMjUuMzc2IDE3LjUwMS00MS43MzRsLTYyLjgxNC0xNTMuNTM3ek05NiA4OGMyNC4zMDEgMCA0NC0xOS42OTkgNDQtNDRTMTIwLjMwMSAwIDk2IDAgNTIgMTkuNjk5IDUyIDQ0czE5LjY5OSA0NCA0NCA0NHptMTU0LjgzNyAxNjkuMTI4bC0xMjAtMTUyYy00LjczMy01Ljk5NS0xMS43NS05LjEwOC0xOC44MzctOS4xMTJWOTZIODB2LjAyNmMtNy4xNDYuMDAzLTE0LjIxNyAzLjE2MS0xOC45NDQgOS4yNEwwIDE4My43NjZ2OTUuNjk0YzAgMTMuNDU1IDExLjAxMSAyNC43OTEgMjQuNDY0IDI0LjUzNkMzNy41MDUgMzAzLjc0OCA0OCAyOTMuMSA0OCAyODB2LTc5Ljc2NmwxNi0yMC41NzF2MTQwLjY5OEw5LjkyNyA0NjkuMDU1Yy02LjA0IDE2LjYwOSAyLjUyOCAzNC45NjkgMTkuMTM4IDQxLjAwOSAxNi42MDIgNi4wMzkgMzQuOTY4LTIuNTI0IDQxLjAwOS0xOS4xMzhMMTM2IDMwOS42MzhWMjAyLjQ0MWwtMzEuNDA2LTM5LjgxNmE0IDQgMCAxIDEgNi4yNjktNC45NzFsMTAyLjMgMTI5LjIxN2M5LjE0NSAxMS41ODQgMjQuMzY4IDExLjMzOSAzMy43MDggMy45NjUgMTAuNDEtOC4yMTYgMTIuMTU5LTIzLjMzNCAzLjk2Ni0zMy43MDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJsb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcyLjIgMjI2LjhjLTE0LjYtMi45LTI4LjIgOC45LTI4LjIgMjMuOFYzMDFjMCAxMC4yIDcuMSAxOC40IDE2LjcgMjIgMTguMiA2LjggMzEuMyAyNC40IDMxLjMgNDUgMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDhWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNDhjMCA4OS41IDgyLjEgMTYwLjIgMTc1IDE0MC43IDU0LjQtMTEuNCA5OC4zLTU1LjQgMTA5LjctMTA5LjcgMTcuNC04Mi45LTM3LTE1Ny4yLTExMi41LTE3Mi4yek0yMDkgMGMtOS4yLS41LTE3IDYuOC0xNyAxNnYzMS42YzAgOC41IDYuNiAxNS41IDE1IDE1LjkgMTI5LjQgNyAyMzMuNCAxMTIgMjQwLjkgMjQxLjUuNSA4LjQgNy41IDE1IDE1LjkgMTVoMzIuMWM5LjIgMCAxNi41LTcuOCAxNi0xN0M1MDMuNCAxMzkuOCAzNzIuMiA4LjYgMjA5IDB6bS4zIDk2Yy05LjMtLjctMTcuMyA2LjctMTcuMyAxNi4xdjMyLjFjMCA4LjQgNi41IDE1LjMgMTQuOCAxNS45IDc2LjggNi4zIDEzOCA2OC4yIDE0NC45IDE0NS4yLjggOC4zIDcuNiAxNC43IDE1LjkgMTQuN2gzMi4yYzkuMyAwIDE2LjgtOCAxNi4xLTE3LjMtOC40LTExMC4xLTk2LjUtMTk4LjItMjA2LjYtMjA2Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMzLjQ5IDIzOGExMjIgMTIyIDAgMCAwIDI3LTY1LjIxQzM2Ny44NyA5Ni40OSAzMDggMzIgMjMzLjQyIDMySDM0YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDMxLjg3djI4OEgzNGExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmgyMDkuMzJjNzAuOCAwIDEzNC4xNC01MS43NSAxNDEtMTIyLjQgNC43NC00OC40NS0xNi4zOS05Mi4wNi01MC44My0xMTkuNnpNMTQ1LjY2IDExMmg4Ny43NmE0OCA0OCAwIDAgMSAwIDk2aC04Ny43NnptODcuNzYgMjg4aC04Ny43NlYyODhoODcuNzZhNTYgNTYgMCAwIDEgMCAxMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDE2MEgxODAuNmw0Mi42LTEyOS44QzIyNy4yIDE1IDIxNS43IDAgMjAwIDBINTZDNDQgMCAzMy44IDguOSAzMi4yIDIwLjhsLTMyIDI0MEMtMS43IDI3NS4yIDkuNSAyODggMjQgMjg4aDExOC43TDk2LjYgNDgyLjVjLTMuNiAxNS4yIDggMjkuNSAyMy4zIDI5LjUgOC40IDAgMTYuNC00LjQgMjAuOC0xMmwxNzYtMzA0YzkuMy0xNS45LTIuMi0zNi0yMC43LTM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb21iIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC41IDg4LjVsLTUyIDUyTDQxNSAxNjdjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlsLTE3LjQgMTcuNGMxMS44IDI2LjEgMTguNCA1NS4xIDE4LjQgODUuNiAwIDExNC45LTkzLjEgMjA4LTIwOCAyMDhTMCA0MTguOSAwIDMwNCA5My4xIDk2IDIwOCA5NmMzMC41IDAgNTkuNSA2LjYgODUuNiAxOC40TDMxMSA5N2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyNi41IDI2LjUgNTItNTIgMTcuMSAxN3pNNTAwIDYwaC0yNGMtNi42IDAtMTIgNS40LTEyIDEyczUuNCAxMiAxMiAxMmgyNGM2LjYgMCAxMi01LjQgMTItMTJzLTUuNC0xMi0xMi0xMnpNNDQwIDBjLTYuNiAwLTEyIDUuNC0xMiAxMnYyNGMwIDYuNiA1LjQgMTIgMTIgMTJzMTItNS40IDEyLTEyVjEyYzAtNi42LTUuNC0xMi0xMi0xMnptMzMuOSA1NWwxNy0xN2M0LjctNC43IDQuNy0xMi4zIDAtMTctNC43LTQuNy0xMi4zLTQuNy0xNyAwbC0xNyAxN2MtNC43IDQuNy00LjcgMTIuMyAwIDE3IDQuOCA0LjcgMTIuNCA0LjcgMTcgMHptLTY3LjggMGM0LjcgNC43IDEyLjMgNC43IDE3IDAgNC43LTQuNyA0LjctMTIuMyAwLTE3bC0xNy0xN2MtNC43LTQuNy0xMi4zLTQuNy0xNyAwLTQuNyA0LjctNC43IDEyLjMgMCAxN2wxNyAxN3ptNjcuOCAzNGMtNC43LTQuNy0xMi4zLTQuNy0xNyAwLTQuNyA0LjctNC43IDEyLjMgMCAxN2wxNyAxN2M0LjcgNC43IDEyLjMgNC43IDE3IDAgNC43LTQuNyA0LjctMTIuMyAwLTE3bC0xNy0xN3pNMTEyIDI3MmMwLTM1LjMgMjguNy02NCA2NC02NCA4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmMtNTIuOSAwLTk2IDQzLjEtOTYgOTYgMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9uZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTguODggMjQ0LjU2YzI1LjItMTIuNiA0MS4xMi0zOC4zNiA0MS4xMi02Ni41M3YtNy42NEM2NDAgMTI5LjMgNjA2LjcgOTYgNTY1LjYxIDk2Yy0zMi4wMiAwLTYwLjQ0IDIwLjQ5LTcwLjU3IDUwLjg2LTcuNjggMjMuMDMtMTEuNiA0NS4xNC0zOC4xMSA0NS4xNEgxODMuMDZjLTI3LjM4IDAtMzEuNTgtMjUuNTQtMzguMTEtNDUuMTRDMTM0LjgzIDExNi40OSAxMDYuNCA5NiA3NC4zOSA5NiAzMy4zIDk2IDAgMTI5LjMgMCAxNzAuMzl2Ny42NGMwIDI4LjE3IDE1LjkyIDUzLjkzIDQxLjEyIDY2LjUzIDkuNDMgNC43MSA5LjQzIDE4LjE3IDAgMjIuODhDMTUuOTIgMjgwLjA0IDAgMzA1LjggMCAzMzMuOTd2Ny42NEMwIDM4Mi43IDMzLjMgNDE2IDc0LjM4IDQxNmMzMi4wMiAwIDYwLjQ0LTIwLjQ5IDcwLjU3LTUwLjg2IDcuNjgtMjMuMDMgMTEuNi00NS4xNCAzOC4xMS00NS4xNGgyNzMuODdjMjcuMzggMCAzMS41OCAyNS41NCAzOC4xMSA0NS4xNEM1MDUuMTcgMzk1LjUxIDUzMy42IDQxNiA1NjUuNjEgNDE2YzQxLjA4IDAgNzQuMzgtMzMuMyA3NC4zOC03NC4zOXYtNy42NGMwLTI4LjE4LTE1LjkyLTUzLjkzLTQxLjEyLTY2LjUzLTkuNDItNC43MS05LjQyLTE4LjE3LjAxLTIyLjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb25nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMi41IDUxMmMyMy4xOCAwIDQ0LjQzLTEyLjU4IDU2LTMyLjY2QzM3NC42OSA0NTEuMjYgMzg0IDQxOC43NSAzODQgMzg0YzAtMzYuMTItMTAuMDgtNjkuODEtMjcuNDQtOTguNjJMNDAwIDI0MS45NGw5LjM4IDkuMzhjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwxMS4zLTExLjMyYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNsLTUyLjY5LTUyLjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0xMS4zMSAxMS4zMWMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2w5LjM4IDkuMzgtMzkuNDEgMzkuNDFjLTExLjU2LTExLjM3LTI0LjUzLTIxLjMzLTM4LjY1LTI5LjUxVjYzLjc0bDE1Ljk3LS4wMmM4LjgyLS4wMSAxNS45Ny03LjE2IDE1Ljk4LTE1Ljk4bC4wNC0zMS43MkMzMjAgNy4xNyAzMTIuODItLjAxIDMwMy45NyAwTDgwLjAzLjI2Yy04LjgyLjAxLTE1Ljk3IDcuMTYtMTUuOTggMTUuOThsLS4wNCAzMS43M2MtLjAxIDguODUgNy4xNyAxNi4wMiAxNi4wMiAxNi4wMUw5NiA2My45NnYxNTMuOTNDMzguNjcgMjUxLjEgMCAzMTIuOTcgMCAzODRjMCAzNC43NSA5LjMxIDY3LjI3IDI1LjUgOTUuMzRDMzcuMDggNDk5LjQyIDU4LjMzIDUxMiA4MS41IDUxMmgyMjF6TTEyMC4wNiAyNTkuNDNMMTQ0IDI0NS41NlY2My45MWw5Ni0uMTF2MTgxLjc2bDIzLjk0IDEzLjg3YzI0LjgxIDE0LjM3IDQ0LjEyIDM1LjczIDU2LjU2IDYwLjU3aC0yNTdjMTIuNDUtMjQuODQgMzEuNzUtNDYuMiA1Ni41Ni02MC41N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va0RlYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDEzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2em0xNzYgMjIyLjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0yNDAgNTZjNDQuMiAwIDgwIDI4LjcgODAgNjQgMCAyMC45LTEyLjcgMzkuMi0zMiA1MC45VjE4NGMwIDguOC03LjIgMTYtMTYgMTZoLTY0Yy04LjggMC0xNi03LjItMTYtMTZ2LTEzLjFjLTE5LjMtMTEuNy0zMi0zMC0zMi01MC45IDAtMzUuMyAzNS44LTY0IDgwLTY0ek0xMjQuOCAyMjMuM2w2LjMtMTQuN2MxLjctNC4xIDYuNC01LjkgMTAuNS00LjJsOTguMyA0Mi4xIDk4LjQtNDIuMWM0LjEtMS43IDguOC4xIDEwLjUgNC4ybDYuMyAxNC43YzEuNyA0LjEtLjEgOC44LTQuMiAxMC41TDI4MC42IDI2NGw3MC4zIDMwLjFjNC4xIDEuNyA1LjkgNi40IDQuMiAxMC41bC02LjMgMTQuN2MtMS43IDQuMS02LjQgNS45LTEwLjUgNC4yTDI0MCAyODEuNGwtOTguMyA0Mi4yYy00LjEgMS43LTguOC0uMS0xMC41LTQuMmwtNi4zLTE0LjdjLTEuNy00LjEuMS04LjggNC4yLTEwLjVsNzAuNC0zMC4xLTcwLjUtMzAuM2MtNC4xLTEuNy01LjktNi40LTQuMi0xMC41em0yNTYgMjI0LjdIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4NC44ek0yMDggMTM2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvb2tNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZxMC05LjYtOS42LTE5LjJjLTMuMi0xNi0zLjItNjAuOCAwLTczLjZxOS42LTQuOCA5LjYtMTkuMnpNMTQ0IDE2OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHY0OGE4IDggMCAwIDEtOCA4aC01NnY1NmE4IDggMCAwIDEtOCA4aC00OGE4IDggMCAwIDEtOC04di01NmgtNTZhOCA4IDAgMCAxLTgtOHptMjM2LjggMjgwSDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va09wZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQyLjIyIDMyLjA1Yy01NC44IDMuMTEtMTYzLjcyIDE0LjQzLTIzMC45NiA1NS41OS00LjY0IDIuODQtNy4yNyA3Ljg5LTcuMjcgMTMuMTd2MzYzLjg3YzAgMTEuNTUgMTIuNjMgMTguODUgMjMuMjggMTMuNDkgNjkuMTgtMzQuODIgMTY5LjIzLTQ0LjMyIDIxOC43LTQ2LjkyIDE2Ljg5LS44OSAzMC4wMi0xNC40MyAzMC4wMi0zMC42NlY2Mi43NWMuMDEtMTcuNzEtMTUuMzUtMzEuNzQtMzMuNzctMzAuN3pNMjY0LjczIDg3LjY0QzE5Ny41IDQ2LjQ4IDg4LjU4IDM1LjE3IDMzLjc4IDMyLjA1IDE1LjM2IDMxLjAxIDAgNDUuMDQgMCA2Mi43NVY0MDAuNmMwIDE2LjI0IDEzLjEzIDI5Ljc4IDMwLjAyIDMwLjY2IDQ5LjQ5IDIuNiAxNDkuNTkgMTIuMTEgMjE4Ljc3IDQ2Ljk1IDEwLjYyIDUuMzUgMjMuMjEtMS45NCAyMy4yMS0xMy40NlYxMDAuNjNjMC01LjI5LTIuNjItMTAuMTQtNy4yNy0xMi45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9va1JlYWRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTYgNDIuOTggOTYgOTYgOTYgOTYtNDIuOTggOTYtOTZ6TTIzMy41OSAyNDEuMWMtNTkuMzMtMzYuMzItMTU1LjQzLTQ2LjMtMjAzLjc5LTQ5LjA1QzEzLjU1IDE5MS4xMyAwIDIwMy41MSAwIDIxOS4xNHYyMjIuOGMwIDE0LjMzIDExLjU5IDI2LjI4IDI2LjQ5IDI3LjA1IDQzLjY2IDIuMjkgMTMxLjk5IDEwLjY4IDE5My4wNCA0MS40MyA5LjM3IDQuNzIgMjAuNDgtMS43MSAyMC40OC0xMS44N1YyNTIuNTZjLS4wMS00LjY3LTIuMzItOC45NS02LjQyLTExLjQ2em0yNDguNjEtNDkuMDVjLTQ4LjM1IDIuNzQtMTQ0LjQ2IDEyLjczLTIwMy43OCA0OS4wNS00LjEgMi41MS02LjQxIDYuOTYtNi40MSAxMS42M3YyNDUuNzljMCAxMC4xOSAxMS4xNCAxNi42MyAyMC41NCAxMS45IDYxLjA0LTMwLjcyIDE0OS4zMi0zOS4xMSAxOTIuOTctNDEuNCAxNC45LS43OCAyNi40OS0xMi43MyAyNi40OS0yNy4wNlYyMTkuMTRjLS4wMS0xNS42My0xMy41Ni0yOC4wMS0yOS44MS0yNy4wOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMzYwVjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDk2QzQzIDAgMCA0MyAwIDk2djMyMGMwIDUzIDQzIDk2IDk2IDk2aDMyOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZjMC03LjUtMy41LTE0LjMtOC45LTE4LjctNC4yLTE1LjQtNC4yLTU5LjMgMC03NC43IDUuNC00LjMgOC45LTExLjEgOC45LTE4LjZ6TTEyOCAxMzRjMC0zLjMgMi43LTYgNi02aDIxMmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDEzNGMtMy4zIDAtNi0yLjctNi02di0yMHptMCA2NGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0yNTMuNCAyNTBIOTZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyIDAtMTcuNiAxNC40LTMyIDMyLTMyaDI4NS40Yy0xLjkgMTcuMS0xLjkgNDYuOSAwIDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb29rbWFyayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDUxMlY0OEMwIDIxLjQ5IDIxLjQ5IDAgNDggMGgyODhjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHY0NjRMMTkyIDQwMCAwIDUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm9yZGVyQWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAzMkgzMkEzMiAzMiAwIDAgMCAwIDY0djM4NGEzMiAzMiAwIDAgMCAzMiAzMmgzODRhMzIgMzIgMCAwIDAgMzItMzJWNjRhMzIgMzIgMCAwIDAtMzItMzJ6bS0zMiA2NHYxMjhIMjU2Vjk2em0tMTkyIDB2MTI4SDY0Vjk2ek02NCA0MTZWMjg4aDEyOHYxMjh6bTE5MiAwVjI4OGgxMjh2MTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JkZXJOb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCAyMjRoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0yODggMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAxOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMjQwIDMyMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tOTYgMjg4aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2LTM4NGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpNNDggMjI0SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCAxOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3JkZXJTdHlsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAgNDE2aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTE5MiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2LTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDk2aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0yODhoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC05NkgzMkEzMiAzMiAwIDAgMCAwIDY0djQwMGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY5NmgzNjhhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJvd2xpbmdCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEyMCAxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem02NC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptNDggMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94T3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjUuNyAyNTZjLTE2LjkgMC0zMi44LTktNDEuNC0yMy40TDMyMCAxMjZsLTY0LjIgMTA2LjZjLTguNyAxNC41LTI0LjYgMjMuNS00MS41IDIzLjUtNC41IDAtOS0uNi0xMy4zLTEuOUw2NCAyMTV2MTc4YzAgMTQuNyAxMCAyNy41IDI0LjIgMzFsMjE2LjIgNTQuMWMxMC4yIDIuNSAyMC45IDIuNSAzMSAwTDU1MS44IDQyNGMxNC4yLTMuNiAyNC4yLTE2LjQgMjQuMi0zMVYyMTVsLTEzNyAzOS4xYy00LjMgMS4zLTguOCAxLjktMTMuMyAxLjl6bTIxMi42LTExMi4yTDU4Ni44IDQxYy0zLjEtNi4yLTkuOC05LjgtMTYuNy04LjlMMzIwIDY0bDkxLjcgMTUyLjFjMy44IDYuMyAxMS40IDkuMyAxOC41IDcuM2wxOTcuOS01Ni41YzkuOS0yLjkgMTQuNy0xMy45IDEwLjItMjMuMXpNNTMuMiA0MUwxLjcgMTQzLjhjLTQuNiA5LjIuMyAyMC4yIDEwLjEgMjNsMTk3LjkgNTYuNWM3LjEgMiAxNC43LTEgMTguNS03LjNMMzIwIDY0IDY5LjggMzIuMWMtNi45LS44LTEzLjUgMi43LTE2LjYgOC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hUaXNzdWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzgzLjg4LDI4Ny44Mmw2NC0xOTJIMzM4LjQ3YTcwLjIsNzAuMiwwLDAsMS02Ni41OS00OCw3MC4yMSw3MC4yMSwwLDAsMC02Ni42LTQ4SDYzLjg4bDY0LDI4OFptLTM4NCwxOTJhMzIsMzIsMCwwLDAsMzIsMzJoNDQ4YTMyLDMyLDAsMCwwLDMyLTMydi02NEgtLjEyWm00ODAtMjU2SDQzOC45NGwtMjEuMzMsNjRoMTQuMjdhMTYsMTYsMCwwLDEsMCwzMmgtMzUyYTE2LDE2LDAsMSwxLDAtMzJIOTUuMDlsLTE0LjIyLTY0aC00OWEzMiwzMiwwLDAsMC0zMiwzMnYxMjhoNTEydi0xMjhBMzIsMzIsMCwwLDAsNDc5Ljg4LDIyMy44MlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwOS41IDE4NC42TDQ1OC45IDMyLjhDNDUyLjQgMTMuMiA0MzQuMSAwIDQxMy40IDBIMjcydjE5MmgyMzguN2MtLjQtMi41LS40LTUtMS4yLTcuNHpNMjQwIDBIOTguNmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44TDIuNSAxODQuNmMtLjggMi40LS44IDQuOS0xLjIgNy40SDI0MFYwek0wIDIyNHYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjIyNEgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCb3hlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjAgMjg4aC04MHY5NmwtMzItMjEuMy0zMiAyMS4zdi05NmgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnptLTM4NC02NGgyMjRjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtODB2OTZsLTMyLTIxLjNMMjU2IDk2VjBoLTgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTkyYzAgOC44IDcuMiAxNiAxNiAxNnptNjQgNjRoLTgwdjk2bC0zMi0yMS4zTDk2IDM4NHYtOTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJhaWxsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMjU2YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NFMwIDI5MS4zNDYgMCAyNTZzMjguNjU0LTY0IDY0LTY0IDY0IDI4LjY1NCA2NCA2NHpNNjQgMzg0Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAtMzUyQzI4LjY1NCAzMiAwIDYwLjY1NCAwIDk2czI4LjY1NCA2NCA2NCA2NCA2NC0yOC42NTQgNjQtNjQtMjguNjU0LTY0LTY0LTY0em0xNjAgMTkyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAgMTYwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAtMzUyYy0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjRzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6bTIyNCAxOTJjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMCAxNjBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zNTJjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHMyOC42NTQgNjQgNjQgNjQgNjQtMjguNjU0IDY0LTY0LTI4LjY1NC02NC02NC02NHptMTYwIDE5MmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wIDE2MGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wLTMyMGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDggMGMtMjkuOSAwLTU0LjcgMjAuNS02MS44IDQ4LjItLjggMC0xLjQtLjItMi4yLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgNC44LjYgOS41IDEuNyAxNEM1Mi41IDEzOCAzMiAxNjYuNiAzMiAyMDBjMCAxMi42IDMuMiAyNC4zIDguMyAzNC45QzE2LjMgMjQ4LjcgMCAyNzQuMyAwIDMwNGMwIDMzLjMgMjAuNCA2MS45IDQ5LjQgNzMuOS0uOSA0LjYtMS40IDkuMy0xLjQgMTQuMSAwIDM5LjggMzIuMiA3MiA3MiA3MiA0LjEgMCA4LjEtLjUgMTItMS4yIDkuNiAyOC41IDM2LjIgNDkuMiA2OCA0OS4yIDM5LjggMCA3Mi0zMi4yIDcyLTcyVjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em0zNjggMzA0YzAtMjkuNy0xNi4zLTU1LjMtNDAuMy02OS4xIDUuMi0xMC42IDguMy0yMi4zIDguMy0zNC45IDAtMzMuNC0yMC41LTYyLTQ5LjctNzQgMS00LjUgMS43LTkuMiAxLjctMTQgMC0zNS4zLTI4LjctNjQtNjQtNjQtLjggMC0xLjUuMi0yLjIuMkM0MjIuNyAyMC41IDM5Ny45IDAgMzY4IDBjLTM1LjMgMC02NCAyOC42LTY0IDY0djM3NmMwIDM5LjggMzIuMiA3MiA3MiA3MiAzMS44IDAgNTguNC0yMC43IDY4LTQ5LjIgMy45LjcgNy45IDEuMiAxMiAxLjIgMzkuOCAwIDcyLTMyLjIgNzItNzIgMC00LjgtLjUtOS41LTEuNC0xNC4xIDI5LTEyIDQ5LjQtNDAuNiA0OS40LTczLjl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyZWFkU2xpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBDMTA4IDAgMCA5My40IDAgMTY5LjE0IDAgMTk5LjQ0IDI0LjI0IDIyNCA2NCAyMjR2MjU2YzAgMTcuNjcgMTYuMTIgMzIgMzYgMzJoMzc2YzE5Ljg4IDAgMzYtMTQuMzMgMzYtMzJWMjI0YzM5Ljc2IDAgNjQtMjQuNTYgNjQtNTQuODZDNTc2IDkzLjQgNDY4IDAgMjg4IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyaWVmY2FzZU1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDEyOGgtODBWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE5MiA5NmgxMjh2MzJIMTkyVjk2em0xNjAgMjQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJpZWZjYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAzMzZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNDhIMHYxNDRjMCAyNS42IDIyLjQgNDggNDggNDhoNDE2YzI1LjYgMCA0OC0yMi40IDQ4LTQ4VjI4OEgzMjB2NDh6bTE0NC0yMDhoLTgwVjgwYzAtMjUuNi0yMi40LTQ4LTQ4LTQ4SDE3NmMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2NDhINDhjLTI1LjYgMC00OCAyMi40LTQ4IDQ4djgwaDUxMnYtODBjMC0yNS42LTIyLjQtNDgtNDgtNDh6bS0xNDQgMEgxOTJWOTZoMTI4djMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCcm9hZGNhc3RUb3dlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNTAuOTQgMTkyaDMzLjczYzExLjAxIDAgMTguNjEtMTAuODMgMTQuODYtMjEuMTgtNC45My0xMy41OC03LjU1LTI3Ljk4LTcuNTUtNDIuODJzMi42Mi0yOS4yNCA3LjU1LTQyLjgyQzIwMy4yOSA3NC44MyAxOTUuNjggNjQgMTg0LjY3IDY0aC0zMy43M2MtNy4wMSAwLTEzLjQ2IDQuNDktMTUuNDEgMTEuMjNDMTMwLjY0IDkyLjIxIDEyOCAxMDkuODggMTI4IDEyOGMwIDE4LjEyIDIuNjQgMzUuNzkgNy41NCA1Mi43NiAxLjk0IDYuNzQgOC4zOSAxMS4yNCAxNS40IDExLjI0ek04OS45MiAyMy4zNEM5NS41NiAxMi43MiA4Ny45NyAwIDc1Ljk2IDBINDAuNjNjLTYuMjcgMC0xMi4xNCAzLjU5LTE0Ljc0IDkuMzFDOS40IDQ1LjU0IDAgODUuNjUgMCAxMjhjMCAyNC43NSAzLjEyIDY4LjMzIDI2LjY5IDExOC44NiAyLjYyIDUuNjMgOC40MiA5LjE0IDE0LjYxIDkuMTRoMzQuODRjMTIuMDIgMCAxOS42MS0xMi43NCAxMy45NS0yMy4zNy00OS43OC05My4zMi0xNi43MS0xNzguMTUtLjE3LTIwOS4yOXpNNjE0LjA2IDkuMjlDNjExLjQ2IDMuNTggNjA1LjYgMCA1OTkuMzMgMGgtMzUuNDJjLTExLjk4IDAtMTkuNjYgMTIuNjYtMTQuMDIgMjMuMjUgMTguMjcgMzQuMjkgNDguNDIgMTE5LjQyLjI4IDIwOS4yMy01LjcyIDEwLjY4IDEuOCAyMy41MiAxMy45MSAyMy41MmgzNS4yM2M2LjI3IDAgMTIuMTMtMy41OCAxNC43My05LjI5QzYzMC41NyAyMTAuNDggNjQwIDE3MC4zNiA2NDAgMTI4cy05LjQyLTgyLjQ4LTI1Ljk0LTExOC43MXpNNDg5LjA2IDY0aC0zMy43M2MtMTEuMDEgMC0xOC42MSAxMC44My0xNC44NiAyMS4xOCA0LjkzIDEzLjU4IDcuNTUgMjcuOTggNy41NSA0Mi44MnMtMi42MiAyOS4yNC03LjU1IDQyLjgyYy0zLjc2IDEwLjM1IDMuODUgMjEuMTggMTQuODYgMjEuMThoMzMuNzNjNy4wMiAwIDEzLjQ2LTQuNDkgMTUuNDEtMTEuMjQgNC45LTE2Ljk3IDcuNTMtMzQuNjQgNy41My01Mi43NiAwLTE4LjEyLTIuNjQtMzUuNzktNy41NC01Mi43Ni0xLjk0LTYuNzUtOC4zOS0xMS4yNC0xNS40LTExLjI0em0tMTE2LjMgMTAwLjEyYzcuMDUtMTAuMjkgMTEuMi0yMi43MSAxMS4yLTM2LjEyIDAtMzUuMzUtMjguNjMtNjQtNjMuOTYtNjQtMzUuMzIgMC02My45NiAyOC42NS02My45NiA2NCAwIDEzLjQxIDQuMTUgMjUuODMgMTEuMiAzNi4xMmwtMTMwLjUgMzEzLjQxYy0zLjQgOC4xNS40NiAxNy41MiA4LjYxIDIwLjkybDI5LjUxIDEyLjMxYzguMTUgMy40IDE3LjUyLS40NiAyMC45MS04LjYxTDI0NC45NiAzODRoMTUwLjA3bDQ5LjIgMTE4LjE1YzMuNCA4LjE2IDEyLjc2IDEyLjAxIDIwLjkxIDguNjFsMjkuNTEtMTIuMzFjOC4xNS0zLjQgMTItMTIuNzcgOC42MS0yMC45MmwtMTMwLjUtMzEzLjQxek0yNzEuNjIgMzIwTDMyMCAyMDMuODEgMzY4LjM4IDMyMGgtOTYuNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJyb29tIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni40NyAyMTYuNzdsODYuNzMgMTA5LjE4cy0xNi42IDEwMi4zNi03Ni41NyAxNTAuMTJDMjA2LjY2IDUyMy44NSAwIDUxMC4xOSAwIDUxMC4xOXMzLjgtMjMuMTQgMTEtNTUuNDNsOTQuNjItMTEyLjE3YzMuOTctNC43LS44Ny0xMS42Mi02LjY1LTkuNWwtNjAuNCAyMi4wOWMxNC40NC00MS42NiAzMi43Mi04MC4wNCA1NC42LTk3LjQ3IDU5Ljk3LTQ3Ljc2IDE2My4zLTQwLjk0IDE2My4zLTQwLjk0ek02MzYuNTMgMzEuMDNsLTE5Ljg2LTI1Yy01LjQ5LTYuOS0xNS41Mi04LjA1LTIyLjQxLTIuNTZsLTIzMi40OCAxNzcuOC0zNC4xNC00Mi45N2MtNS4wOS02LjQxLTE1LjE0LTUuMjEtMTguNTkgMi4yMWwtMjUuMzMgNTQuNTUgODYuNzMgMTA5LjE4IDU4LjgtMTIuNDVjOC0xLjY5IDExLjQyLTExLjIgNi4zNC0xNy42bC0zNC4wOS00Mi45MiAyMzIuNDgtMTc3LjhjNi44OS01LjQ4IDguMDQtMTUuNTMgMi41NS0yMi40NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnJ1c2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDBIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2MjI0aDM4NFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0wIDMyMGMwIDM1LjM1IDI4LjY2IDY0IDY0IDY0aDY0djY0YzAgMzUuMzUgMjguNjYgNjQgNjQgNjRzNjQtMjguNjUgNjQtNjR2LTY0aDY0YzM1LjM0IDAgNjQtMjguNjUgNjQtNjR2LTMySDB2MzJ6bTE5MiAxMDRjMTMuMjUgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0cy0yNC0xMC43NS0yNC0yNGMwLTEzLjI2IDEwLjc1LTI0IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTExLjk4OCAyODguOWMtLjQ3OCAxNy40My0xNS4yMTcgMzEuMS0zMi42NTMgMzEuMUg0MjR2MTZjMCAyMS44NjQtNC44ODIgNDIuNTg0LTEzLjYgNjEuMTQ1bDYwLjIyOCA2MC4yMjhjMTIuNDk2IDEyLjQ5NyAxMi40OTYgMzIuNzU4IDAgNDUuMjU1LTEyLjQ5OCAxMi40OTctMzIuNzU5IDEyLjQ5Ni00NS4yNTYgMGwtNTQuNzM2LTU0LjczNkMzNDUuODg2IDQ2Ny45NjUgMzE0LjM1MSA0ODAgMjgwIDQ4MFYyMzZjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjQ0Yy0zNC4zNTEgMC02NS44ODYtMTIuMDM1LTkwLjYzNi0zMi4xMDhsLTU0LjczNiA1NC43MzZjLTEyLjQ5OCAxMi40OTctMzIuNzU5IDEyLjQ5Ni00NS4yNTYgMC0xMi40OTYtMTIuNDk3LTEyLjQ5Ni0zMi43NTggMC00NS4yNTVsNjAuMjI4LTYwLjIyOEM5Mi44ODIgMzc4LjU4NCA4OCAzNTcuODY0IDg4IDMzNnYtMTZIMzIuNjY2QzE1LjIzIDMyMCAuNDkxIDMwNi4zMy4wMTMgMjg4LjktLjQ4NCAyNzAuODE2IDE0LjAyOCAyNTYgMzIgMjU2aDU2di01OC43NDVsLTQ2LjYyOC00Ni42MjhjLTEyLjQ5Ni0xMi40OTctMTIuNDk2LTMyLjc1OCAwLTQ1LjI1NSAxMi40OTgtMTIuNDk3IDMyLjc1OC0xMi40OTcgNDUuMjU2IDBMMTQxLjI1NSAxNjBoMjI5LjQ4OWw1NC42MjctNTQuNjI3YzEyLjQ5OC0xMi40OTcgMzIuNzU4LTEyLjQ5NyA0NS4yNTYgMCAxMi40OTYgMTIuNDk3IDEyLjQ5NiAzMi43NTggMCA0NS4yNTVMNDI0IDE5Ny4yNTVWMjU2aDU2YzE3Ljk3MiAwIDMyLjQ4NCAxNC44MTYgMzEuOTg4IDMyLjl6TTI1NyAwYy02MS44NTYgMC0xMTIgNTAuMTQ0LTExMiAxMTJoMjI0QzM2OSA1MC4xNDQgMzE4Ljg1NiAwIDI1NyAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgNDgwaC0yMFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINTZDNDIuNzQ1IDAgMzIgMTAuNzQ1IDMyIDI0djQ1NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyMGg0NDh2LTIwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6TTEyOCA3NmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJWNzZ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MHptNTIgMTQ4aC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTc2IDE2MGgtNjR2LTg0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4NHptNjQtMTcyYzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDB6bTAtOTZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MHptMC05NmMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMlY3NmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1bGxob3JuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NiAyNDBjMC0yMy42My0xMi45NS00NC4wNC0zMi01NS4xMlYzMi4wMUM1NDQgMjMuMjYgNTM3LjAyIDAgNTEyIDBjLTcuMTIgMC0xNC4xOSAyLjM4LTE5Ljk4IDcuMDJsLTg1LjAzIDY4LjAzQzM2NC4yOCAxMDkuMTkgMzEwLjY2IDEyOCAyNTYgMTI4SDY0Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djk2YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzMuN2MtMS4zOSAxMC40OC0yLjE4IDIxLjE0LTIuMTggMzIgMCAzOS43NyA5LjI2IDc3LjM1IDI1LjU2IDExMC45NCA1LjE5IDEwLjY5IDE2LjUyIDE3LjA2IDI4LjQgMTcuMDZoNzQuMjhjMjYuMDUgMCA0MS42OS0yOS44NCAyNS45LTUwLjU2LTE2LjQtMjEuNTItMjYuMTUtNDguMzYtMjYuMTUtNzcuNDQgMC0xMS4xMSAxLjYyLTIxLjc5IDQuNDEtMzJIMjU2YzU0LjY2IDAgMTA4LjI4IDE4LjgxIDE1MC45OCA1Mi45NWw4NS4wMyA2OC4wM2EzMi4wMjMgMzIuMDIzIDAgMCAwIDE5Ljk4IDcuMDJjMjQuOTIgMCAzMi0yMi43OCAzMi0zMlYyOTUuMTNDNTYzLjA1IDI4NC4wNCA1NzYgMjYzLjYzIDU3NiAyNDB6bS05NiAxNDEuNDJsLTMzLjA1LTI2LjQ0QzM5Mi45NSAzMTEuNzggMzI1LjEyIDI4OCAyNTYgMjg4di05NmM2OS4xMiAwIDEzNi45NS0yMy43OCAxOTAuOTUtNjYuOThMNDgwIDk4LjU4djI4Mi44NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVsbHNleWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMCA0MzJjLTEwMS42OSAwLTE4NC04Mi4yOS0xODQtMTg0IDAtMTAxLjY5IDgyLjI5LTE4NCAxODQtMTg0IDEwMS42OSAwIDE4NCA4Mi4yOSAxODQgMTg0IDAgMTAxLjY5LTgyLjI5IDE4NC0xODQgMTg0em0wLTMxMmMtNzAuNjkgMC0xMjggNTcuMzEtMTI4IDEyOHM1Ny4zMSAxMjggMTI4IDEyOCAxMjgtNTcuMzEgMTI4LTEyOC01Ny4zMS0xMjgtMTI4LTEyOHptMCAxOTJjLTM1LjI5IDAtNjQtMjguNzEtNjQtNjRzMjguNzEtNjQgNjQtNjQgNjQgMjguNzEgNjQgNjQtMjguNzEgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1cm4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBDNzkuNyAxMDEuMyAwIDIyMC45IDAgMzAwLjUgMCA0MjUgNzkgNTEyIDE5MiA1MTJzMTkyLTg3IDE5Mi0yMTEuNWMwLTc5LjktODAuMi0xOTkuNi0xOTItMzAwLjV6bTAgNDQ4Yy01Ni41IDAtOTYtMzktOTYtOTQuOCAwLTEzLjUgNC42LTYxLjUgOTYtMTYxLjIgOTEuNCA5OS43IDk2IDE0Ny43IDk2IDE2MS4yIDAgNTUuOC0zOS41IDk0LjgtOTYgOTQuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQnVzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAxMjhoLThWODBjMC00NC44LTk5LjItODAtMjI0LTgwUzMyIDM1LjIgMzIgODB2NDhoLThjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2ODBjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg4djE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMTkydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoNi40YzE2IDAgMjUuNi0xMi44IDI1LjYtMjUuNlYyNTZoOGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di04MGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0ek0xNjAgNzJjMC00LjQyIDMuNTgtOCA4LThoMTc2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDE2OGMtNC40MiAwLTgtMy41OC04LThWNzJ6bS00OCAzMjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTEyOC0xMTJIMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMydi05NmMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyaDExMnYxNjB6bTMyIDBWMTI4aDExMmMxNy42NyAwIDMyIDE0LjMzIDMyIDMydjk2YzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMjcyem0xMjggMTEyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFCdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDEyOGgtOFY4MGMwLTQ0LjgtOTkuMi04MC0yMjQtODBTMzIgMzUuMiAzMiA4MHY0OGgtOGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDh2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgxOTJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmg2LjRjMTYgMCAyNS42LTEyLjggMjUuNi0yNS42VjI1Nmg4YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTgwYzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTExMiA0MDBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTE2LTExMmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxMjhjMC0xNy42NyAxNC4zMy0zMiAzMi0zMmgyNTZjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnYxMjhjMCAxNy42Ny0xNC4zMyAzMi0zMiAzMkgxMjh6bTI3MiAxMTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUJ1c2luZXNzVGltZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjI0Yy03OS41OSAwLTE0NCA2NC40MS0xNDQgMTQ0czY0LjQxIDE0NCAxNDQgMTQ0IDE0NC02NC40MSAxNDQtMTQ0LTY0LjQxLTE0NC0xNDQtMTQ0em02NCAxNTAuMjljMCA1LjM0LTQuMzcgOS43MS05LjcxIDkuNzFoLTYwLjU3Yy01LjM0IDAtOS43MS00LjM3LTkuNzEtOS43MXYtNzYuNTdjMC01LjM0IDQuMzctOS43MSA5LjcxLTkuNzFoMTIuNTdjNS4zNCAwIDkuNzEgNC4zNyA5LjcxIDkuNzFWMzUyaDM4LjI5YzUuMzQgMCA5LjcxIDQuMzcgOS43MSA5LjcxdjEyLjU4ek00OTYgMTkyYzUuNCAwIDEwLjcyLjMzIDE2IC44MVYxNDRjMC0yNS42LTIyLjQtNDgtNDgtNDhoLTgwVjQ4YzAtMjUuNi0yMi40LTQ4LTQ4LTQ4SDE3NmMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2NDhINDhjLTI1LjYgMC00OCAyMi40LTQ4IDQ4djgwaDM5NS4xMmMyOC42LTIwLjA5IDYzLjM1LTMyIDEwMC44OC0zMnpNMzIwIDk2SDE5MlY2NGgxMjh2MzJ6bTYuODIgMjI0SDIwOGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTQ4SDB2MTQ0YzAgMjUuNiAyMi40IDQ4IDQ4IDQ4aDI5MS40M0MzMjcuMSA0MjMuOTYgMzIwIDM5Ni44MiAzMjAgMzY4YzAtMTYuNjYgMi40OC0zMi43MiA2LjgyLTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxjdWxhdG9yIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAwSDQ4QzIyLjQgMCAwIDIyLjQgMCA0OHY0MTZjMCAyNS42IDIyLjQgNDggNDggNDhoMzUyYzI1LjYgMCA0OC0yMi40IDQ4LTQ4VjQ4YzAtMjUuNi0yMi40LTQ4LTQ4LTQ4ek0xMjggNDM1LjJjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44SDc2LjhjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMC0xMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44SDc2LjhjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMTI4IDEyOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMC0xMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTEyOCAxMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjhWMjY4LjhjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djE2Ni40em0wLTI1NmMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhINzYuOGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44Vjc2LjhDNjQgNzAuNCA3MC40IDY0IDc2LjggNjRoMjk0LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djEwMi40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkySDB2Mjcyem0zMjAtMTk2YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek0xOTIgMjY4YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek02NCAyNjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6bTAgMTI4YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwek00MDAgNjRoLTQ4VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNjBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4aDQ0OHYtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE2MEgxMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMzZjMC0yNi41MSAyMS40OS00OCA0OC00OGg0OFYxMmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NTJoMTI4VjEyYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY1Mmg0OGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djM2YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNjBjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYyMDRjMC02LjYyNyA1LjM3My0xMiAxMi0xMnptMzMzLjI5NiA5NS45NDdsLTI4LjE2OS0yOC4zOThjLTQuNjY3LTQuNzA1LTEyLjI2NS00LjczNi0xNi45Ny0uMDY4TDE5NC4xMiAzNjQuNjY1bC00NS45OC00Ni4zNTJjLTQuNjY3LTQuNzA1LTEyLjI2Ni00LjczNi0xNi45NzEtLjA2OGwtMjguMzk3IDI4LjE3Yy00LjcwNSA0LjY2Ny00LjczNiAxMi4yNjUtLjA2OCAxNi45N2w4Mi42MDEgODMuMjY5YzQuNjY3IDQuNzA1IDEyLjI2NSA0LjczNiAxNi45Ny4wNjhsMTQyLjk1My0xNDEuODA1YzQuNzA1LTQuNjY3IDQuNzM2LTEyLjI2NS4wNjgtMTYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbGVuZGFyRGF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJIMHYyNzJ6bTY0LTE5MmMwLTguOCA3LjItMTYgMTYtMTZoOTZjOC44IDAgMTYgNy4yIDE2IDE2djk2YzAgOC44LTcuMiAxNi0xNiAxNkg4MGMtOC44IDAtMTYtNy4yLTE2LTE2di05NnpNNDAwIDY0aC00OFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMTYwVjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnY0OGg0NDh2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNiAxNjBIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHYzNmMwIDYuNi01LjQgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptMzA0IDE5MmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkgxMzJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYWxlbmRhclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE2MEgxMmMtNi42IDAtMTItNS40LTEyLTEydi0zNmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM2YzAgNi42LTUuNCAxMi0xMiAxMnpNMTIgMTkyaDQyNGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyMDRjMC02LjYgNS40LTEyIDEyLTEyem0zMTYgMTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNjB2LTYwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY2MGgtNjBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNjB2NjBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNjBoNjBjNi42IDAgMTItNS40IDEyLTEydi00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJUaW1lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwSDEyYy02LjYgMC0xMi01LjQtMTItMTJ2LTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MzZjMCA2LjYtNS40IDEyLTEyIDEyek0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTI1Ny4zIDE2MGw0OC4xLTQ4LjFjNC43LTQuNyA0LjctMTIuMyAwLTE3bC0yOC4zLTI4LjNjLTQuNy00LjctMTIuMy00LjctMTcgMEwyMjQgMzA2LjdsLTQ4LjEtNDguMWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwbC0yOC4zIDI4LjNjLTQuNyA0LjctNC43IDEyLjMgMCAxN2w0OC4xIDQ4LjEtNDguMSA0OC4xYy00LjcgNC43LTQuNyAxMi4zIDAgMTdsMjguMyAyOC4zYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGw0OC4xLTQ4LjEgNDguMSA0OC4xYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwyOC4zLTI4LjNjNC43LTQuNyA0LjctMTIuMyAwLTE3TDI2OS4zIDM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXJXZWVrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJIMHYyNzJ6bTY0LTE5MmMwLTguOCA3LjItMTYgMTYtMTZoMjg4YzguOCAwIDE2IDcuMiAxNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnYtNjR6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FsZW5kYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIgMTkyaDQyNGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjYwYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYyMDRjMC02LjYgNS40LTEyIDEyLTEyem00MzYtNDR2LTM2YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC00OFYxMmMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJIMTYwVjEyYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY1Mkg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDI0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FtZXJhUmV0cm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMzJDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4em0wIDMyaDEwNmMzLjMgMCA2IDIuNyA2IDZ2MjBjMCAzLjMtMi43IDYtNiA2SDM4Yy0zLjMgMC02LTIuNy02LTZWODBjMC04LjggNy4yLTE2IDE2LTE2em00MjYgOTZIMzhjLTMuMyAwLTYtMi43LTYtNnYtMzZjMC0zLjMgMi43LTYgNi02aDEzOGwzMC4yLTQ1LjNjMS4xLTEuNyAzLTIuNyA1LTIuN0g0NjRjOC44IDAgMTYgNy4yIDE2IDE2djc0YzAgMy4zLTIuNyA2LTYgNnpNMjU2IDQyNGMtNjYuMiAwLTEyMC01My44LTEyMC0xMjBzNTMuOC0xMjAgMTIwLTEyMCAxMjAgNTMuOCAxMjAgMTIwLTUzLjggMTIwLTEyMCAxMjB6bTAtMjA4Yy00OC41IDAtODggMzkuNS04OCA4OHMzOS41IDg4IDg4IDg4IDg4LTM5LjUgODgtODgtMzkuNS04OC04OC04OHptLTQ4IDEwNGMtOC44IDAtMTYtNy4yLTE2LTE2IDAtMzUuMyAyOC43LTY0IDY0LTY0IDguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2Yy0xNy42IDAtMzIgMTQuNC0zMiAzMiAwIDguOC03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhbWVyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTQ0djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDg4bDEyLjMtMzIuOWM3LTE4LjcgMjQuOS0zMS4xIDQ0LjktMzEuMWgxMjUuNWMyMCAwIDM3LjkgMTIuNCA0NC45IDMxLjFMMzc2IDk2aDg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNzYgMjg4YzAtNjYuMi01My44LTEyMC0xMjAtMTIwcy0xMjAgNTMuOC0xMjAgMTIwIDUzLjggMTIwIDEyMCAxMjAgMTIwLTUzLjggMTIwLTEyMHptLTMyIDBjMCA0OC41LTM5LjUgODgtODggODhzLTg4LTM5LjUtODgtODggMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYW1wZ3JvdW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0NDhoLTI0LjY4TDM1OS41NCAxMTcuNzVsNTMuNDEtNzMuNTVjNS4xOS03LjE1IDMuNjEtMTcuMTYtMy41NC0yMi4zNWwtMjUuOS0xOC43OWMtNy4xNS01LjE5LTE3LjE1LTMuNjEtMjIuMzUgMy41NUwzMjAgNjMuMyAyNzguODMgNi42Yy01LjE5LTcuMTUtMTUuMi04Ljc0LTIyLjM1LTMuNTVsLTI1Ljg4IDE4LjhjLTcuMTUgNS4xOS04Ljc0IDE1LjItMy41NCAyMi4zNWw1My40MSA3My41NUw0MC42OCA0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDYwOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTMyMCAyODhsMTE2LjM2IDE2MEgyMDMuNjRMMzIwIDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FuZHlDYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ny41IDkyQzQ2OS42IDMzLjEgNDExLjggMCAzNTIuNCAwYy0yNy45IDAtNTYuMiA3LjMtODEuOCAyMi42TDI0My4xIDM5Yy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOWwzMi44IDU0LjljNiAxMCAxNi42IDE1LjYgMjcuNSAxNS42IDUuNiAwIDExLjItMS41IDE2LjQtNC41bDI3LjUtMTYuNGM1LjEtMy4xIDEwLjgtNC41IDE2LjQtNC41IDEwLjkgMCAyMS41IDUuNiAyNy41IDE1LjYgOS4xIDE1LjEgNC4xIDM0LjgtMTEgNDMuOUwxNS42IDM5Ny42Yy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOWwzMi44IDU0LjljNiAxMCAxNi42IDE1LjYgMjcuNSAxNS42IDUuNiAwIDExLjItMS41IDE2LjQtNC41TDQyOC42IDMwMWM3MS43LTQyLjkgMTA0LjYtMTMzLjUgNjguOS0yMDl6bS0xNzcuNyAxM2wtMi41IDEuNUwyOTYuOCA0NWM5LjctNC43IDE5LjgtOC4xIDMwLjMtMTAuMmwyMC42IDYxLjhjLTkuOC44LTE5LjQgMy4zLTI3LjkgOC40ek0xNDUuOSA0MzEuOGwtNjAuNS0zOC41IDMwLjgtMTguMyA2MC41IDM4LjUtMzAuOCAxOC4zem0xMDcuNS02My45bC02MC41LTM4LjUgMzAuOC0xOC4zIDYwLjUgMzguNS0zMC44IDE4LjN6TTM2NC4zIDMwMmwtNjAuNS0zOC41IDMwLjgtMTguMyA2MC41IDM4LjUtMzAuOCAxOC4zem0yMC40LTE5Ny4zbDQ2LTQ2YzguNCA2LjUgMTYgMTQuMSAyMi42IDIyLjZMNDA3LjYgMTI3Yy01LjctOS4zLTEzLjctMTYuOS0yMi45LTIyLjN6bTgyLjEgMTA3LjhsLTU5LjUtMTkuOGMzLjItNS4zIDUuOC0xMC45IDcuNC0xNy4xIDEuMS00LjUgMS43LTkuMSAxLjgtMTMuNmw2MC40IDIwLjFjLTIuMSAxMC40LTUuNSAyMC42LTEwLjEgMzAuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FubmFiaXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAzLjQ3IDM2MC4yNWMtMS41Ni0uODItMzIuMzktMTYuODktNzYuNzgtMjUuODEgNjQuMjUtNzUuMTIgODQuMDUtMTYxLjY3IDg0LjkzLTE2NS42NCAxLjE4LTUuMzMtLjQ0LTEwLjktNC4zLTE0Ljc3LTMuMDMtMy4wNC03LjEyLTQuNy0xMS4zMi00LjctMS4xNCAwLTIuMjkuMTItMy40NC4zOC0zLjg4Ljg1LTg2LjU0IDE5LjU5LTE2MC41OCA3OS43Ni4wMS0xLjQ2LjAxLTIuOTMuMDEtNC40IDAtMTE4Ljc5LTU5Ljk4LTIxMy43Mi02Mi41My0yMTcuN0ExNS45NzMgMTUuOTczIDAgMCAwIDI1NiAwYy01LjQ1IDAtMTAuNTMgMi43OC0xMy40NyA3LjM3LTIuNTUgMy45OC02Mi41MyA5OC45MS02Mi41MyAyMTcuNyAwIDEuNDcuMDEgMi45NC4wMSA0LjQtNzQuMDMtNjAuMTYtMTU2LjY5LTc4LjktMTYwLjU4LTc5Ljc2LTEuMTQtLjI1LTIuMjktLjM4LTMuNDQtLjM4LTQuMiAwLTguMjkgMS42Ni0xMS4zMiA0LjdBMTUuOTg2IDE1Ljk4NiAwIDAgMCAuMzggMTY4LjhjLjg4IDMuOTcgMjAuNjggOTAuNTIgODQuOTMgMTY1LjY0LTQ0LjM5IDguOTItNzUuMjEgMjQuOTktNzYuNzggMjUuODFhMTYuMDAzIDE2LjAwMyAwIDAgMC0uMDIgMjguMjljMi40NSAxLjI5IDYwLjc2IDMxLjcyIDEzMy40OSAzMS43MiA2LjE0IDAgMTEuOTYtLjEgMTcuNS0uMzEtMTEuMzcgMjIuMjMtMTYuNTIgMzguMzEtMTYuODEgMzkuMjItMS44IDUuNjgtLjI5IDExLjg5IDMuOTEgMTYuMTFhMTYuMDE5IDE2LjAxOSAwIDAgMCAxNi4xIDMuOTljMS44My0uNTcgMzcuNzItMTEuOTkgNzcuMy0zOS4yOVY1MDRjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LTh2LTY0LjAxYzM5LjU4IDI3LjMgNzUuNDcgMzguNzEgNzcuMyAzOS4yOWExNi4wMTkgMTYuMDE5IDAgMCAwIDE2LjEtMy45OWM0LjItNC4yMiA1LjcxLTEwLjQzIDMuOTEtMTYuMTEtLjI5LS45MS01LjQ1LTE2Ljk5LTE2LjgxLTM5LjIyIDUuNTQuMjEgMTEuMzcuMzEgMTcuNS4zMSA3Mi43MiAwIDEzMS4wNC0zMC40MyAxMzMuNDktMzEuNzIgNS4yNC0yLjc4IDguNTItOC4yMiA4LjUxLTE0LjE1LS4wMS01Ljk0LTMuMjktMTEuMzktOC41My0xNC4xNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2Fwc3VsZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTU1LjMgMzAwLjFMNDI0LjIgMTEyLjhDNDAxLjkgODEgMzY2LjQgNjQgMzMwLjQgNjRjLTIyLjYgMC00NS41IDYuNy02NS41IDIwLjctMTkuNyAxMy44LTMzLjcgMzIuOC00MS41IDUzLjhDMjIwLjUgNzkuMiAxNzIgMzIgMTEyIDMyIDUwLjEgMzIgMCA4Mi4xIDAgMTQ0djIyNGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnMxMTItNTAuMSAxMTItMTEyVjIxOC45YzMuMyA4LjYgNy4zIDE3LjEgMTIuOCAyNUwzNjggNDMxLjJjMjIuMiAzMS44IDU3LjcgNDguOCA5My44IDQ4LjggMjIuNyAwIDQ1LjUtNi43IDY1LjUtMjAuNyA1MS43LTM2LjIgNjQuMi0xMDcuNSAyOC0xNTkuMnpNMTYwIDI1Nkg2NFYxNDRjMC0yNi41IDIxLjUtNDggNDgtNDhzNDggMjEuNSA0OCA0OHYxMTJ6bTE5NC44IDQ0LjlsLTY1LjYtOTMuN2MtNy43LTExLTEwLjctMjQuNC04LjMtMzcuNiAyLjMtMTMuMiA5LjctMjQuOCAyMC43LTMyLjUgOC41LTYgMTguNS05LjEgMjguOC05LjEgMTYuNSAwIDMxLjkgOCA0MS4zIDIxLjVsNjUuNiA5My43LTgyLjUgNTcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOC42NiAyMTIuMzNsLTExLjI0LTI4LjEtMTkuOTMtNDkuODNDMzkwLjM4IDkxLjYzIDM0OS41NyA2NCAzMDMuNSA2NGgtMTI3Yy00Ni4wNiAwLTg2Ljg4IDI3LjYzLTEwMy45OSA3MC40bC0xOS45MyA0OS44My0xMS4yNCAyOC4xQzE3LjIyIDIyMS41IDAgMjQ0LjY2IDAgMjcydjQ4YzAgMTYuMTIgNi4xNiAzMC42NyAxNiA0MS45M1Y0MTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgyNTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi01NC4wN2M5Ljg0LTExLjI1IDE2LTI1LjggMTYtNDEuOTN2LTQ4YzAtMjcuMzQtMTcuMjItNTAuNS00MS4zNC01OS42N3ptLTMwNi43My01NC4xNmM3LjI5LTE4LjIyIDI0Ljk0LTMwLjE3IDQ0LjU3LTMwLjE3aDEyN2MxOS42MyAwIDM3LjI4IDExLjk1IDQ0LjU3IDMwLjE3TDM2OCAyMDhIMTEybDE5LjkzLTQ5Ljgzek04MCAzMTkuOGMtMTkuMiAwLTMyLTEyLjc2LTMyLTMxLjlTNjAuOCAyNTYgODAgMjU2czQ4IDI4LjcxIDQ4IDQ3Ljg1LTI4LjggMTUuOTUtNDggMTUuOTV6bTMyMCAwYy0xOS4yIDAtNDggMy4xOS00OC0xNS45NVMzODAuOCAyNTYgNDAwIDI1NnMzMiAxMi43NiAzMiAzMS45LTEyLjggMzEuOS0zMiAzMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJCYXR0ZXJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAxMjhoLTMyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2aC05NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhIMTkyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyNTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTkyIDI2NGMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNnptMjU2IDBjMCA0LjQyLTMuNTggOC04IDhoLTQwdjQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTQwaC00MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDQwdi00MGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHY0MGg0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyQ3Jhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQzLjI1IDIyMC44MWwtMTIuNDIgNDYuMzdjLTMuMDEgMTEuMjUtMy42MyAyMi44OS0yLjQxIDM0LjM5bC0zNS4yIDI4Ljk4Yy02LjU3IDUuNDEtMTYuMzEtLjQzLTE0LjYyLTguNzdsMTUuNDQtNzYuNjhjMS4wNi01LjI2LTIuNjYtMTAuMjgtOC0xMC43OWwtNzcuODYtNy41NWMtOC40Ny0uODItMTEuMjMtMTEuODMtNC4xNC0xNi41NGw2NS4xNS00My4zYzQuNDYtMi45NyA1LjM4LTkuMTUgMS45OC0xMy4yOUwyMS40NiA5My4yMmMtNS40MS02LjU3LjQzLTE2LjMgOC43OC0xNC42Mmw3Ni42OCAxNS40NGM1LjI2IDEuMDYgMTAuMjgtMi42NiAxMC44LThsNy41NS03Ny44NmMuODItOC40OCAxMS44My0xMS4yMyAxNi41NS00LjE0bDQzLjMgNjUuMTRjMi45NyA0LjQ2IDkuMTUgNS4zOCAxMy4yOSAxLjk4bDYwLjQtNDkuNzFjNi41Ny01LjQxIDE2LjMuNDMgMTQuNjIgOC43N0wyNjIuMSA4Ni4zOGMtMi43MSAzLjA1LTUuNDMgNi4wOS03LjkxIDkuNGwtMzIuMTUgNDIuOTctMTAuNzEgMTQuMzJjLTMyLjczIDguNzYtNTkuMTggMzQuNTMtNjguMDggNjcuNzR6bTQ5NC41NyAxMzIuNTFsLTEyLjQyIDQ2LjM2Yy0zLjEzIDExLjY4LTkuMzggMjEuNjEtMTcuNTUgMjkuMzZhNjYuODc2IDY2Ljg3NiAwIDAgMS04Ljc2IDdsLTEzLjk5IDUyLjIzYy0xLjE0IDQuMjctMy4xIDguMS01LjY1IDExLjM4LTcuNjcgOS44NC0yMC43NCAxNC42OC0zMy41NCAxMS4yNUw1MTUgNTAyLjYyYy0xNy4wNy00LjU3LTI3LjItMjIuMTItMjIuNjMtMzkuMTlsOC4yOC0zMC45MS0yNDcuMjgtNjYuMjYtOC4yOCAzMC45MWMtNC41NyAxNy4wNy0yMi4xMiAyNy4yLTM5LjE5IDIyLjYzbC0zMC45MS04LjI4Yy0xMi44LTMuNDMtMjEuNy0xNC4xNi0yMy40Mi0yNi41MS0uNTctNC4xMi0uMzUtOC40Mi43OS0xMi42OGwxMy45OS01Mi4yM2E2Ni42MiA2Ni42MiAwIDAgMS00LjA5LTEwLjQ1Yy0zLjItMTAuNzktMy42NS0yMi41Mi0uNTItMzQuMmwxMi40Mi00Ni4zN2M1LjMxLTE5LjggMTkuMzYtMzQuODMgMzYuODktNDIuMjFhNjQuMzM2IDY0LjMzNiAwIDAgMSAxOC40OS00LjcybDE4LjEzLTI0LjIzIDMyLjE1LTQyLjk3YzMuNDUtNC42MSA3LjE5LTguOSAxMS4yLTEyLjg0IDgtNy44OSAxNy4wMy0xNC40NCAyNi43NC0xOS41MSA0Ljg2LTIuNTQgOS44OS00LjcxIDE1LjA1LTYuNDkgMTAuMzMtMy41OCAyMS4xOS01LjYzIDMyLjI0LTYuMDQgMTEuMDUtLjQxIDIyLjMxLjgyIDMzLjQzIDMuOGwxMjIuNjggMzIuODdjMTEuMTIgMi45OCAyMS40OCA3LjU0IDMwLjg1IDEzLjQzYTExMS4xMSAxMTEuMTEgMCAwIDEgMzQuNjkgMzQuNWM4LjgyIDEzLjg4IDE0LjY0IDI5Ljg0IDE2LjY4IDQ2Ljk5bDYuMzYgNTMuMjkgMy41OSAzMC4wNWE2NC40OSA2NC40OSAwIDAgMSAyMi43NCAyOS45M2M0LjM5IDExLjg4IDUuMjkgMjUuMTkgMS43NSAzOC4zOXpNMjU1LjU4IDIzNC4zNGMtMTguNTUtNC45Ny0zNC4yMSA0LjA0LTM5LjE3IDIyLjUzLTQuOTYgMTguNDkgNC4xMSAzNC4xMiAyMi42NSAzOS4wOSAxOC41NSA0Ljk3IDQ1LjU0IDE1LjUxIDUwLjQ5LTIuOTggNC45Ni0xOC40OS0xNS40My01My42Ny0zMy45Ny01OC42NHptMjkwLjYxIDI4LjE3bC02LjM2LTUzLjI5Yy0uNTgtNC44Ny0xLjg5LTkuNTMtMy44Mi0xMy44Ni01LjgtMTIuOTktMTcuMi0yMy4wMS0zMS40Mi0yNi44MmwtMTIyLjY4LTMyLjg3YTQ4LjAwOCA0OC4wMDggMCAwIDAtNTAuODYgMTcuNjFsLTMyLjE1IDQyLjk3IDE3MiA0Ni4wOCA3NS4yOSAyMC4xOHptMTguNDkgNTQuNjVjLTE4LjU1LTQuOTctNTMuOCAxNS4zMS01OC43NSAzMy43OS00Ljk1IDE4LjQ5IDIzLjY5IDIyLjg2IDQyLjI0IDI3LjgzIDE4LjU1IDQuOTcgMzQuMjEtNC4wNCAzOS4xNy0yMi41MyA0Ljk1LTE4LjQ4LTQuMTEtMzQuMTItMjIuNjYtMzkuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhclNpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDE5MmgtMTZMNDE5LjIyIDU2LjAyQTY0LjAyNSA2NC4wMjUgMCAwIDAgMzY5LjI0IDMySDE1NS4zM2MtMjYuMTcgMC00OS43IDE1LjkzLTU5LjQyIDQwLjIzTDQ4IDE5NC4yNkMyMC40NCAyMDEuNCAwIDIyNi4yMSAwIDI1NnYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmgxMjhjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05Nmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtODBjMC01My4wMi00Mi45OC05Ni05Ni05NnpNMTYwIDQzMmMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHptNzItMjQwSDExNi45M2wzOC40LTk2SDIzMnY5NnptNDggMFY5Nmg4OS4yNGw3Ni44IDk2SDI4MHptMjAwIDI0MGMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5OS45OSAxNzZoLTU5Ljg3bC0xNi42NC00MS42QzQwNi4zOCA5MS42MyAzNjUuNTcgNjQgMzE5LjUgNjRoLTEyN2MtNDYuMDYgMC04Ni44OCAyNy42My0xMDMuOTkgNzAuNEw3MS44NyAxNzZIMTIuMDFDNC4yIDE3Ni0xLjUzIDE4My4zNC4zNyAxOTAuOTFsNiAyNEM3LjcgMjIwLjI1IDEyLjUgMjI0IDE4LjAxIDIyNGgyMC4wN0MyNC42NSAyMzUuNzMgMTYgMjUyLjc4IDE2IDI3MnY0OGMwIDE2LjEyIDYuMTYgMzAuNjcgMTYgNDEuOTNWNDE2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNTQuMDdjOS44NC0xMS4yNSAxNi0yNS44IDE2LTQxLjkzdi00OGMwLTE5LjIyLTguNjUtMzYuMjctMjIuMDctNDhINDk0YzUuNTEgMCAxMC4zMS0zLjc1IDExLjY0LTkuMDlsNi0yNGMxLjg5LTcuNTctMy44NC0xNC45MS0xMS42NS0xNC45MXptLTM1Mi4wNi0xNy44M2M3LjI5LTE4LjIyIDI0Ljk0LTMwLjE3IDQ0LjU3LTMwLjE3aDEyN2MxOS42MyAwIDM3LjI4IDExLjk1IDQ0LjU3IDMwLjE3TDM4NCAyMDhIMTI4bDE5LjkzLTQ5Ljgzek05NiAzMTkuOGMtMTkuMiAwLTMyLTEyLjc2LTMyLTMxLjlTNzYuOCAyNTYgOTYgMjU2czQ4IDI4LjcxIDQ4IDQ3Ljg1LTI4LjggMTUuOTUtNDggMTUuOTV6bTMyMCAwYy0xOS4yIDAtNDggMy4xOS00OC0xNS45NVMzOTYuOCAyNTYgNDE2IDI1NnMzMiAxMi43NiAzMiAzMS45LTEyLjggMzEuOS0zMiAzMS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJhdmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiwyMDhhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsNDE2LDIwOFpNNjI0LDMyMEg1NzZWMTYwQTE2MCwxNjAsMCwwLDAsNDE2LDBINjRBNjQsNjQsMCwwLDAsMCw2NFYzMjBhNjQsNjQsMCwwLDAsNjQsNjRIOTZhOTYsOTYsMCwwLDAsMTkyLDBINjI0YTE2LDE2LDAsMCwwLDE2LTE2VjMzNkExNiwxNiwwLDAsMCw2MjQsMzIwWk0xOTIsNDMyYTQ4LDQ4LDAsMSwxLDQ4LTQ4QTQ4LjA1LDQ4LjA1LDAsMCwxLDE5Miw0MzJabTY0LTI0MGEzMiwzMiwwLDAsMS0zMiwzMkg5NmEzMiwzMiwwLDAsMS0zMi0zMlYxMjhBMzIsMzIsMCwwLDEsOTYsOTZIMjI0YTMyLDMyLDAsMCwxLDMyLDMyWk00NDgsMzIwSDMyMFYxMjhhMzIsMzIsMCwwLDEsMzItMzJoNjRhMzIsMzIsMCwwLDEsMzIsMzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMS4zIDE5MmgyNTcuM2MxNy44IDAgMjYuNyAyMS41IDE0LjEgMzQuMUwxNzQuMSAzNTQuOGMtNy44IDcuOC0yMC41IDcuOC0yOC4zIDBMMTcuMiAyMjYuMUM0LjYgMjEzLjUgMTMuNSAxOTIgMzEuMyAxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0TGVmdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTI3LjMzOHYyNTcuMzI0YzAgMTcuODE4LTIxLjU0MyAyNi43NDEtMzQuMTQyIDE0LjE0MkwyOS4xOTYgMjcwLjE0MmMtNy44MS03LjgxLTcuODEtMjAuNDc0IDAtMjguMjg0bDEyOC42NjItMTI4LjY2MmMxMi41OTktMTIuNiAzNC4xNDItMy42NzYgMzQuMTQyIDE0LjE0MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDM4NC42NjJWMTI3LjMzOGMwLTE3LjgxOCAyMS41NDMtMjYuNzQxIDM0LjE0Mi0xNC4xNDJsMTI4LjY2MiAxMjguNjYyYzcuODEgNy44MSA3LjgxIDIwLjQ3NCAwIDI4LjI4NEwzNC4xNDIgMzk4LjgwNEMyMS41NDMgNDExLjQwNCAwIDQwMi40OCAwIDM4NC42NjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0U3F1YXJlRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTkyLjUgMjIwLjVsMTIzIDEyM2M0LjcgNC43IDEyLjMgNC43IDE3IDBsMTIzLTEyM2M3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDEwMWMtMTAuNyAwLTE2LjEgMTIuOS04LjUgMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FyZXRTcXVhcmVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMjU5LjUxNSAxMjQuNDg1bC0xMjMuMDMgMTIzLjAzYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMTIzLjAyOSAxMjMuMDI5YzcuNTYgNy41NiAyMC40ODUgMi4yMDYgMjAuNDg1LTguNDg1VjEzMi45NzFjLjAwMS0xMC42OTEtMTIuOTI1LTE2LjA0NS0yMC40ODQtOC40ODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhcmV0U3F1YXJlUmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMzJoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OHptMTQwLjQ4NSAzNTUuNTE1bDEyMy4wMjktMTIzLjAyOWM0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45NzFsLTEyMy4wMjktMTIzLjAzYy03LjU2LTcuNTYtMjAuNDg1LTIuMjA2LTIwLjQ4NSA4LjQ4NXYyNDYuMDU5YzAgMTAuNjkxIDEyLjkyNiAxNi4wNDUgMjAuNDg1IDguNDg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFNxdWFyZVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDMyVjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh6bTM1NS41MTUtMTQwLjQ4NWwtMTIzLjAzLTEyMy4wM2MtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDkyLjQ4NSAyOTEuNTE1Yy03LjU2IDcuNTYtMi4yMDYgMjAuNDg1IDguNDg1IDIwLjQ4NWgyNDYuMDU5YzEwLjY5MSAwIDE2LjA0NS0xMi45MjYgOC40ODYtMjAuNDg1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJldFVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OC42NjIgMzUySDMxLjMzOGMtMTcuODE4IDAtMjYuNzQxLTIxLjU0My0xNC4xNDItMzQuMTQybDEyOC42NjItMTI4LjY2MmM3LjgxLTcuODEgMjAuNDc0LTcuODEgMjguMjg0IDBsMTI4LjY2MiAxMjguNjYyYzEyLjYgMTIuNTk5IDMuNjc2IDM0LjE0Mi0xNC4xNDIgMzQuMTQyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJyb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk4LjIgMTU2LjZjLTUyLjctMjUuNy0xMTQuNS0xMC41LTE1MC4yIDMyLjhsNTUuMiA1NS4yYzYuMyA2LjMgNi4zIDE2LjQgMCAyMi42LTMuMSAzLjEtNy4yIDQuNy0xMS4zIDQuN3MtOC4yLTEuNi0xMS4zLTQuN0wxMzAuNCAyMTcgMi4zIDQ3OS43Yy0yLjkgNi0zLjEgMTMuMyAwIDE5LjcgNS40IDExLjEgMTguOSAxNS43IDMwIDEwLjNsMTMzLjYtNjUuMi00OS4yLTQ5LjJjLTYuMy02LjItNi4zLTE2LjQgMC0yMi42IDYuMy02LjIgMTYuNC02LjIgMjIuNiAwbDU3IDU3IDEwMi00OS44YzI0LTExLjcgNDQuNS0zMS4zIDU3LjEtNTcuMSAzMC4xLTYxLjcgNC41LTEzNi4xLTU3LjItMTY2LjJ6bTkyLjEtMzQuOUM0MDkuOCA4MSAzOTkuNyAzMi45IDM2MCAwYy01MC4zIDQxLjctNTIuNSAxMDcuNS03LjkgMTUxLjlsOCA4YzQ0LjQgNDQuNiAxMTAuMyA0Mi40IDE1MS45LTcuOS0zMi45LTM5LjctODEtNDkuOC0xMjEuNy0zMC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDYXJ0QXJyb3dEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC43MTcgMzIwSDIxMS41NzJsNi41NDUgMzJoMjY4LjQxOGMxNS40MDEgMCAyNi44MTYgMTQuMzAxIDIzLjQwMyAyOS4zMTlsLTUuNTE3IDI0LjI3NkM1MjMuMTEyIDQxNC42NjggNTM2IDQzMy44MjggNTM2IDQ1NmMwIDMxLjIwMi0yNS41MTkgNTYuNDQ0LTU2LjgyNCA1NS45OTQtMjkuODIzLS40MjktNTQuMzUtMjQuNjMxLTU1LjE1NS01NC40NDctLjQ0LTE2LjI4NyA2LjA4NS0zMS4wNDkgMTYuODAzLTQxLjU0OEgyMzEuMTc2QzI0MS41NTMgNDI2LjE2NSAyNDggNDQwLjMyNiAyNDggNDU2YzAgMzEuODEzLTI2LjUyOCA1Ny40MzEtNTguNjcgNTUuOTM4LTI4LjU0LTEuMzI1LTUxLjc1MS0yNC4zODUtNTMuMjUxLTUyLjkxNy0xLjE1OC0yMi4wMzQgMTAuNDM2LTQxLjQ1NSAyOC4wNTEtNTEuNTg2TDkzLjg4MyA2NEgyNEMxMC43NDUgNjQgMCA1My4yNTUgMCA0MFYyNEMwIDEwLjc0NSAxMC43NDUgMCAyNCAwaDEwMi41MjljMTEuNDAxIDAgMjEuMjI4IDguMDIxIDIzLjUxMyAxOS4xOUwxNTkuMjA4IDY0SDU1MS45OWMxNS40MDEgMCAyNi44MTYgMTQuMzAxIDIzLjQwMyAyOS4zMTlsLTQ3LjI3MyAyMDhDNTI1LjYzNyAzMTIuMjQ2IDUxNS45MjMgMzIwIDUwNC43MTcgMzIwek00MDMuMDI5IDE5MkgzNjB2LTYwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjYwaC00My4wMjljLTEwLjY5MSAwLTE2LjA0NSAxMi45MjYtOC40ODUgMjAuNDg1bDY3LjAyOSA2Ny4wMjljNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDY3LjAyOS02Ny4wMjljNy41NTktNy41NTkgMi4yMDUtMjAuNDg1LTguNDg2LTIwLjQ4NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2FydFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0LjcxNyAzMjBIMjExLjU3Mmw2LjU0NSAzMmgyNjguNDE4YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNS41MTcgMjQuMjc2QzUyMy4xMTIgNDE0LjY2OCA1MzYgNDMzLjgyOCA1MzYgNDU2YzAgMzEuMjAyLTI1LjUxOSA1Ni40NDQtNTYuODI0IDU1Ljk5NC0yOS44MjMtLjQyOS01NC4zNS0yNC42MzEtNTUuMTU1LTU0LjQ0Ny0uNDQtMTYuMjg3IDYuMDg1LTMxLjA0OSAxNi44MDMtNDEuNTQ4SDIzMS4xNzZDMjQxLjU1MyA0MjYuMTY1IDI0OCA0NDAuMzI2IDI0OCA0NTZjMCAzMS44MTMtMjYuNTI4IDU3LjQzMS01OC42NyA1NS45MzgtMjguNTQtMS4zMjUtNTEuNzUxLTI0LjM4NS01My4yNTEtNTIuOTE3LTEuMTU4LTIyLjAzNCAxMC40MzYtNDEuNDU1IDI4LjA1MS01MS41ODZMOTMuODgzIDY0SDI0QzEwLjc0NSA2NCAwIDUzLjI1NSAwIDQwVjI0QzAgMTAuNzQ1IDEwLjc0NSAwIDI0IDBoMTAyLjUyOWMxMS40MDEgMCAyMS4yMjggOC4wMjEgMjMuNTEzIDE5LjE5TDE1OS4yMDggNjRINTUxLjk5YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNDcuMjczIDIwOEM1MjUuNjM3IDMxMi4yNDYgNTE1LjkyMyAzMjAgNTA0LjcxNyAzMjB6TTQwOCAxNjhoLTQ4di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2aC0xNmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY0MGgtNDhjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2MTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg0OHY0MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDE2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTQwaDQ4YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTE2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhc2hSZWdpc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuMSAzNzguOGwtMjYuNy0xNjBjLTIuNi0xNS40LTE1LjktMjYuNy0zMS42LTI2LjdIMjA4di02NGg5NmM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDk2djY0SDU5LjFjLTE1LjYgMC0yOSAxMS4zLTMxLjYgMjYuN0wuOCAzNzguN2MtLjYgMy41LS45IDctLjkgMTAuNVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMydi05MC43Yy4xLTMuNS0uMi03LS44LTEwLjV6TTI4MCAyNDhjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2em0tMzIgNjRoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tMzItODBjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2ek04MCA4MFY0OGgxOTJ2MzJIODB6bTQwIDIwMGgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZ6bTE2IDY0di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnptMjE2IDExMmMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNzZjNC40IDAgOCAzLjYgOCA4djE2em0yNC0xMTJjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2em00OC04MGMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTAuNTkgMTkyYy0yMC4xOCAwLTEwNi44MiAxLjk4LTE2Mi41OSA4NS45NVYxOTJjMC01Mi45NC00My4wNi05Ni05Ni05Ni0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyYzE3LjY0IDAgMzIgMTQuMzYgMzIgMzJ2MjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE3NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJsMTI4LTk2djE0NGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODkuODZjLTEwLjI5IDIuNjctMjAuODkgNC41NC0zMiA0LjU0LTYxLjgxIDAtMTEzLjUyLTQ0LjA1LTEyNS40MS0xMDIuNHpNNDQ4IDk2aC02NGwtNjQtNjR2MTM0LjRjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NlYzMmwtNjQgNjR6bS03MiA4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTgwIDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDZXJ0aWZpY2F0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTguNjIyIDI1NS45Mmw0NS45ODUtNDUuMDA1YzEzLjcwOC0xMi45NzcgNy4zMTYtMzYuMDM5LTEwLjY2NC00MC4zMzlsLTYyLjY1LTE1Ljk5IDE3LjY2MS02Mi4wMTVjNC45OTEtMTcuODM4LTExLjgyOS0zNC42NjMtMjkuNjYxLTI5LjY3MWwtNjEuOTk0IDE3LjY2Ny0xNS45ODQtNjIuNjcxQzMzNy4wODUuMTk3IDMxMy43NjUtNi4yNzYgMzAwLjk5IDcuMjI4TDI1NiA1My41NyAyMTEuMDExIDcuMjI5Yy0xMi42My0xMy4zNTEtMzYuMDQ3LTcuMjM0LTQwLjMyNSAxMC42NjhsLTE1Ljk4NCA2Mi42NzEtNjEuOTk1LTE3LjY2N0M3NC44NyA1Ny45MDcgNTguMDU2IDc0LjczOCA2My4wNDYgOTIuNTcybDE3LjY2MSA2Mi4wMTUtNjIuNjUgMTUuOTlDLjA2OSAxNzQuODc4LTYuMzEgMTk3Ljk0NCA3LjM5MiAyMTAuOTE1bDQ1Ljk4NSA0NS4wMDUtNDUuOTg1IDQ1LjAwNGMtMTMuNzA4IDEyLjk3Ny03LjMxNiAzNi4wMzkgMTAuNjY0IDQwLjMzOWw2Mi42NSAxNS45OS0xNy42NjEgNjIuMDE1Yy00Ljk5MSAxNy44MzggMTEuODI5IDM0LjY2MyAyOS42NjEgMjkuNjcxbDYxLjk5NC0xNy42NjcgMTUuOTg0IDYyLjY3MWM0LjQzOSAxOC41NzUgMjcuNjk2IDI0LjAxOCA0MC4zMjUgMTAuNjY4TDI1NiA0NTguNjFsNDQuOTg5IDQ2LjAwMWMxMi41IDEzLjQ4OCAzNS45ODcgNy40ODYgNDAuMzI1LTEwLjY2OGwxNS45ODQtNjIuNjcxIDYxLjk5NCAxNy42NjdjMTcuODM2IDQuOTk0IDM0LjY1MS0xMS44MzcgMjkuNjYxLTI5LjY3MWwtMTcuNjYxLTYyLjAxNSA2Mi42NS0xNS45OWMxNy45ODctNC4zMDIgMjQuMzY2LTI3LjM2NyAxMC42NjQtNDAuMzM5bC00NS45ODQtNDUuMDA0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFpciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMTI4YzAtMjkuNSAxNi4yLTU1IDQwLTY4LjlWMjU2aDQ4VjQ4aDQ4djIwOGg0OFY1OS4xYzIzLjggMTMuOSA0MCAzOS40IDQwIDY4Ljl2MTI4aDQ4VjEyOEMzODQgNTcuMyAzMjYuNyAwIDI1NiAwaC02NEMxMjEuMyAwIDY0IDU3LjMgNjQgMTI4djEyOGg0OHptMzM0LjMgMjEzLjlsLTEwLjctMzJjLTQuNC0xMy4xLTE2LjYtMjEuOS0zMC40LTIxLjlINDIuN2MtMTMuOCAwLTI2IDguOC0zMC40IDIxLjlsLTEwLjcgMzJDLTUuMiAzNjIuNiAxMC4yIDM4NCAzMiAzODR2MTEyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzg0aDI1NnYxMTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzODRjMjEuOCAwIDM3LjItMjEuNCAzMC4zLTQyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWxrYm9hcmRUZWFjaGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOCAzNTJjLTIuMzkgMC00Ljc4LjM1LTcuMDYgMS4wOUMxODcuOTggMzU3LjMgMTc0LjM1IDM2MCAxNjAgMzYwYy0xNC4zNSAwLTI3Ljk4LTIuNy00MC45NS02LjkxLTIuMjgtLjc0LTQuNjYtMS4wOS03LjA1LTEuMDlDNDkuOTQgMzUyLS4zMyA0MDIuNDggMCA0NjQuNjIuMTQgNDkwLjg4IDIxLjczIDUxMiA0OCA1MTJoMjI0YzI2LjI3IDAgNDcuODYtMjEuMTIgNDgtNDcuMzguMzMtNjIuMTQtNDkuOTQtMTEyLjYyLTExMi0xMTIuNjJ6bS00OC0zMmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2cy00Mi45OC05Ni05Ni05Ni05NiA0Mi45OC05NiA5NiA0Mi45OCA5NiA5NiA5NnpNNTkyIDBIMjA4Yy0yNi40NyAwLTQ4IDIyLjI1LTQ4IDQ5LjU5Vjk2YzIzLjQyIDAgNDUuMSA2Ljc4IDY0IDE3LjhWNjRoMzUydjI4OGgtNjR2LTY0SDM4NHY2NGgtNzYuMjRjMTkuMSAxNi42OSAzMy4xMiAzOC43MyAzOS42OSA2NEg1OTJjMjYuNDcgMCA0OC0yMi4yNSA0OC00OS41OVY0OS41OUM2NDAgMjIuMjUgNjE4LjQ3IDAgNTkyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYWxrYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgNjRoNDQ4djM1Mmg2NFY0MGMwLTIyLjA2LTE3Ljk0LTQwLTQwLTQwSDcyQzQ5Ljk0IDAgMzIgMTcuOTQgMzIgNDB2Mzc2aDY0VjY0em01MjggMzg0SDQ4MHYtNjRIMjg4djY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFyZ2luZ1N0YXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzIwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptMjA4LTMyMFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNnMtMTYgNy4xNi0xNiAxNnY0OGgtMzJWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZzLTE2IDcuMTYtMTYgMTZ2NDhoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDM1Ljc2IDIzLjYyIDY1LjY5IDU2IDc1LjkzdjExOC40OWMwIDEzLjk1LTkuNSAyNi45Mi0yMy4yNiAyOS4xOUM0MzEuMjIgNDAyLjUgNDE2IDM4OC45OSA0MTYgMzcydi0yOGMwLTQ4LjYtMzkuNC04OC04OC04OGgtOFY2NGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0SDk2QzYwLjY1IDAgMzIgMjguNjUgMzIgNjR2MzUyaDI4OFYzMDRoOGMyMi4wOSAwIDQwIDE3LjkxIDQwIDQwdjI0LjYxYzAgMzkuNjcgMjguOTIgNzUuMTYgNjguNDEgNzkuMDFDNDgxLjcxIDQ1Mi4wNSA1MjAgNDE2LjQxIDUyMCAzNzJWMjUxLjkzYzMyLjM4LTEwLjI0IDU2LTQwLjE3IDU2LTc1Ljkzdi0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZ6bS0yODMuOTEgNDcuNzZsLTkzLjcgMTM5Yy0yLjIgMy4zMy02LjIxIDUuMjQtMTAuMzkgNS4yNC03LjY3IDAtMTMuNDctNi4yOC0xMS42Ny0xMi45MkwxNjcuMzUgMjI0SDEwOGMtNy4yNSAwLTEyLjg1LTUuNTktMTEuODktMTEuODlsMTYtMTA3QzExMi45IDk5LjkgMTE3Ljk4IDk2IDEyNCA5Nmg2OGM3Ljg4IDAgMTMuNjIgNi41NCAxMS42IDEzLjIxTDE5MiAxNjBoNTcuN2M5LjI0IDAgMTUuMDEgOC43OCAxMC4zOSAxNS43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRBcmVhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMCAzODRjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkgxMmMtNi42IDAtMTItNS40LTEyLTEyVjc2YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MzA4aDQzNnpNMzcyLjcgMTU5LjVMMjg4IDIxNmwtODUuMy0xMTMuN2MtNS4xLTYuOC0xNS41LTYuMy0xOS45IDFMOTYgMjQ4djEwNGgzODRsLTg5LjktMTg3LjhjLTMuMi02LjUtMTEuNC04LjctMTcuNC00Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoYXJ0QmFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzMi44IDMyMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYxNzIuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxMzQuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6bTk2IDBoMzguNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWNzYuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYyMzAuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6bS0yODggMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOHYtNzAuNGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHY3MC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptOTYgMGgzOC40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYxMDguOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTM4LjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxOTguNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6TTQ5NiAzODRINjRWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzM2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDY0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hhcnRMaW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAzODRINjRWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzM2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDY0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNDY0IDk2SDM0NS45NGMtMjEuMzggMC0zMi4wOSAyNS44NS0xNi45NyA0MC45N2wzMi40IDMyLjRMMjg4IDI0Mi43NWwtNzMuMzctNzMuMzdjLTEyLjUtMTIuNS0zMi43Ni0xMi41LTQ1LjI1IDBsLTY4LjY5IDY4LjY5Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBMMTkyIDIzNy4yNWw3My4zNyA3My4zN2MxMi41IDEyLjUgMzIuNzYgMTIuNSA0NS4yNSAwbDk2LTk2IDMyLjQgMzIuNGMxNS4xMiAxNS4xMiA0MC45NyA0LjQxIDQwLjk3LTE2Ljk3VjExMmMuMDEtOC44NC03LjE1LTE2LTE1Ljk5LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGFydFBpZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTQ0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjcuNzkgMjg4SDI5MC41bDE1OC4wMyAxNTguMDNjNi4wNCA2LjA0IDE1Ljk4IDYuNTMgMjIuMTkuNjggMzguNy0zNi40NiA2NS4zMi04NS42MSA3My4xMy0xNDAuODYgMS4zNC05LjQ2LTYuNTEtMTcuODUtMTYuMDYtMTcuODV6bS0xNS44My02NC44QzUwMy43MiAxMDMuNzQgNDA4LjI2IDguMjggMjg4LjguMDQgMjc5LjY4LS41OSAyNzIgNy4xIDI3MiAxNi4yNFYyNDBoMjIzLjc3YzkuMTQgMCAxNi44Mi03LjY4IDE2LjE5LTE2Ljh6TTIyNCAyODhWNTAuNzFjMC05LjU1LTguMzktMTcuNC0xNy44NC0xNi4wNkM4Ni45OSA1MS40OS00LjEgMTU1LjYuMTQgMjgwLjM3IDQuNSA0MDguNTEgMTE0LjgzIDUxMy41OSAyNDMuMDMgNTExLjk4YzUwLjQtLjYzIDk2Ljk3LTE2Ljg3IDEzNS4yNi00NC4wMyA3LjktNS42IDguNDItMTcuMjMgMS41Ny0yNC4wOEwyMjQgMjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHpNMjI3LjMxNCAzODcuMzE0bDE4NC0xODRjNi4yNDgtNi4yNDggNi4yNDgtMTYuMzc5IDAtMjIuNjI3bC0yMi42MjctMjIuNjI3Yy02LjI0OC02LjI0OS0xNi4zNzktNi4yNDktMjIuNjI4IDBMMjE2IDMwOC4xMThsLTcwLjA1OS03MC4wNTljLTYuMjQ4LTYuMjQ4LTE2LjM3OS02LjI0OC0yMi42MjggMGwtMjIuNjI3IDIyLjYyN2MtNi4yNDggNi4yNDgtNi4yNDggMTYuMzc5IDAgMjIuNjI3bDEwNCAxMDRjNi4yNDkgNi4yNDkgMTYuMzc5IDYuMjQ5IDIyLjYyOC4wMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNSAxNzQuOGwtMzkuNi0zOS42Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxOTIgMzc0LjcgODAuNiAyNjMuMmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMNyAzMDIuOWMtOS40IDkuNC05LjQgMjQuNiAwIDM0TDE3NSA1MDVjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjk2LTI5Ni4yYzkuNC05LjUgOS40LTI0LjcuMS0zNHptLTMyNC4zIDEwNmM2LjIgNi4zIDE2LjQgNi4zIDIyLjYgMGwyMDgtMjA4LjJjNi4yLTYuMyA2LjItMTYuNCAwLTIyLjZMMzY2LjEgNC43Yy02LjItNi4zLTE2LjQtNi4zLTIyLjYgMEwxOTIgMTU2LjJsLTU1LjQtNTUuNWMtNi4yLTYuMy0xNi40LTYuMy0yMi42IDBMNjguNyAxNDZjLTYuMiA2LjMtNi4yIDE2LjQgMCAyMi42bDExMiAxMTIuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlY2tTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQ4MEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4em0tMjA0LjY4Ni05OC4wNTlsMTg0LTE4NGM2LjI0OC02LjI0OCA2LjI0OC0xNi4zNzkgMC0yMi42MjdsLTIyLjYyNy0yMi42MjdjLTYuMjQ4LTYuMjQ4LTE2LjM3OS02LjI0OS0yMi42MjggMEwxODQgMzAyLjc0NWwtNzAuMDU5LTcwLjA1OWMtNi4yNDgtNi4yNDgtMTYuMzc5LTYuMjQ4LTIyLjYyOCAwbC0yMi42MjcgMjIuNjI3Yy02LjI0OCA2LjI0OC02LjI0OCAxNi4zNzkgMCAyMi42MjdsMTA0IDEwNGM2LjI0OSA2LjI1IDE2LjM3OSA2LjI1IDIyLjYyOC4wMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVlc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyODh2MTYwYTMyIDMyIDAgMCAwIDMyIDMyaDQ0OGEzMiAzMiAwIDAgMCAzMi0zMlYyODh6TTI5OS44MyAzMmEzMiAzMiAwIDAgMC0yMS4xMyA3TDAgMjU2aDUxMmMwLTExOS44OS05NC0yMTcuOC0yMTIuMTctMjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0Jpc2hvcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI4Ny44OGMwIDUxLjY0IDIyLjE0IDczLjgzIDU2IDg0LjZWNDE2aDE5MnYtNDMuNTJjMzMuODYtMTAuNzcgNTYtMzMgNTYtODQuNiAwLTMwLjYxLTEwLjczLTY3LjEtMjYuNjktMTAyLjU2TDE4NSAyODUuNjVhOCA4IDAgMCAxLTExLjMxIDBsLTExLjMxLTExLjMxYTggOCAwIDAgMSAwLTExLjMxTDI3MC4yNyAxNTUuMWMtMjAuOC0zNy45MS00Ni40Ny03Mi4xLTcwLjg3LTkyLjU5QzIxMy40IDU5LjA5IDIyNCA0Ny4wNSAyMjQgMzJhMzIgMzIgMCAwIDAtMzItMzJoLTY0YTMyIDMyIDAgMCAwLTMyIDMyYzAgMTUgMTAuNiAyNy4wOSAyNC42IDMwLjUxQzY3LjgxIDEwNi44IDggMjE0LjUgOCAyODcuODh6TTMwNCA0NDhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3NCb2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTUuOS4yaC02NHY2NGg2NHpNMCA2NC4xN3Y2NGg2NHYtNjR6TTEyOCAuMkg2NHY2NGg2NHptNjQgMjU1Ljl2NjRoNjR2LTY0ek0wIDE5Mi4xMnY2NGg2NHYtNjR6TTM4My44NS4yaC02NHY2NGg2NHptMTI4IDBoLTY0djY0aDY0ek0xMjggMjU2LjFINjR2NjRoNjR6TTUxMS44IDQ0OHYtNjRoLTY0djY0em0wLTEyOHYtNjRoLTY0djY0ek0zODMuODUgNTEyaDY0di02NGgtNjR6bTEyOC0zMTkuODh2LTY0aC02NHY2NHpNMTI4IDUxMmg2NHYtNjRoLTY0ek0wIDUxMmg2NHYtNjRIMHptMjU1LjkgMGg2NHYtNjRoLTY0ek0wIDMyMC4wN3Y2NGg2NHYtNjR6bTMxOS44OC0xOTEuOTJ2LTY0aC02NHY2NHptLTY0IDEyOGg2NHYtNjRoLTY0em0tNjQgMTI4djY0aDY0di02NHptMTI4LTY0aDY0di02NGgtNjR6bTAtMTI3Ljk1aDY0di02NGgtNjR6bTAgMTkxLjkzdjY0aDY0di02NHpNNjQgMzg0LjA1djY0aDY0di02NHptMTI4LTI1NS45di02NGgtNjR2NjR6bTE5MS45MiAyNTUuOWg2NHYtNjRoLTY0em0tMTI4LTE5MS45M3YtNjRoLTY0djY0em0xMjgtMTI3Ljk1djY0aDY0di02NHptLTEyOCAyNTUuOXY2NGg2NHYtNjR6bS02NC0xMjcuOTVIMTI4djY0aDY0em0xOTEuOTIgNjRoNjR2LTY0aC02NHpNMTI4IDEyOC4xNUg2NHY2NGg2NHptMCAxOTEuOTJ2NjRoNjR2LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc0tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDQ0OEg0OGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0xNi0yODhIMjU2di00OGg0MGE4IDggMCAwIDAgOC04VjU2YTggOCAwIDAgMC04LThoLTQwVjhhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHY0MGgtNDBhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDQwdjQ4SDMyYTMyIDMyIDAgMCAwLTMwLjUyIDQxLjU0TDc0LjU2IDQxNmgyOTguODhsNzMuMDgtMjE0LjQ2QTMyIDMyIDAgMCAwIDQxNiAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzS25pZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5IDI3Mi40N2w0MC42MyAxOC4wNmEzMiAzMiAwIDAgMCAyNC44OC40N2wxMi43OC01LjEyYTMyIDMyIDAgMCAwIDE4Ljc2LTIwLjVsOS4yMi0zMC42NWEyNCAyNCAwIDAgMSAxMi41NS0xNS42NUwxNTkuOTQgMjA4djUwLjMzYTQ4IDQ4IDAgMCAxLTI2LjUzIDQyLjk0bC01Ny4yMiAyOC42NUE4MCA4MCAwIDAgMCAzMiA0MDEuNDhWNDE2aDMxOS44NlYyMjRjMC0xMDYtODUuOTItMTkyLTE5MS45Mi0xOTJIMTJBMTIgMTIgMCAwIDAgMCA0NGExNi45IDE2LjkgMCAwIDAgMS43OSA3LjU4TDE2IDgwbC05IDlhMjQgMjQgMCAwIDAtNyAxN3YxMzcuMjFhMzIgMzIgMCAwIDAgMTkgMjkuMjZ6TTUyIDEyOGEyMCAyMCAwIDEgMS0yMCAyMCAyMCAyMCAwIDAgMSAyMC0yMHptMzE2IDMyMEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaGVzc1Bhd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA1LjEgMjI0SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDE2djUuNDljMCA0NC00LjE0IDg2LjYtMjQgMTIyLjUxaDE3NmMtMTkuODktMzUuOTEtMjQtNzguNTEtMjQtMTIyLjUxVjI4OGgxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTI1LjFjMjkuMzktMTguMzggNDkuMS01MC43OCA0OS4xLTg4YTEwNCAxMDQgMCAwIDAtMjA4IDBjMCAzNy4yMiAxOS43MSA2OS42MiA0OS4xIDg4ek0zMDQgNDQ4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUXVlZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDExMmE1NiA1NiAwIDEgMC01Ni01NiA1NiA1NiAwIDAgMCA1NiA1NnptMTc2IDMzNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em03Mi44Ny0yNjMuODRsLTI4LjUxLTE1LjkyYy03LjQ0LTUtMTYuOTEtMi40Ni0yMi4yOSA0LjY4YTQ3LjU5IDQ3LjU5IDAgMCAxLTQ3LjIzIDE4LjIzQzM4My43IDE4Ni44NiAzNjggMTY0LjkzIDM2OCAxNDEuNGExMy40IDEzLjQgMCAwIDAtMTMuNC0xMy40aC0zOC43N2MtNiAwLTExLjYxIDQtMTIuODYgOS45MWE0OCA0OCAwIDAgMS05My45NCAwYy0xLjI1LTUuOTItNi44Mi05LjkxLTEyLjg2LTkuOTFIMTU3LjRhMTMuNCAxMy40IDAgMCAwLTEzLjQgMTMuNGMwIDI1LjY5LTE5IDQ4Ljc1LTQ0LjY3IDUwLjQ5YTQ3LjUgNDcuNSAwIDAgMS00MS41NC0xOS4xNWMtNS4yOC03LjA5LTE0LjczLTkuNDUtMjIuMDktNC41NGwtMjguNTcgMTZhMTYgMTYgMCAwIDAtNS40NCAyMC40N0wxMDQuMjQgNDE2aDMwMy41MmwxMDIuNTUtMjExLjM3YTE2IDE2IDAgMCAwLTUuNDQtMjAuNDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXNzUm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggMzJoLTU2YTE2IDE2IDAgMCAwLTE2IDE2djQ4aC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNmgtODBhMTYgMTYgMCAwIDAtMTYgMTZ2NDhIODguMVY0OGExNiAxNiAwIDAgMC0xNi0xNkgxNkExNiAxNiAwIDAgMCAwIDQ4djE3Nmw2NCAzMmMwIDQ4LjMzLTEuNTQgOTUtMTMuMjEgMTYwaDI4Mi40MkMzMjEuNTQgMzUxIDMyMCAzMDMuNzIgMzIwIDI1Nmw2NC0zMlY0OGExNiAxNiAwIDAgMC0xNi0xNnpNMjI0IDMyMGgtNjR2LTY0YTMyIDMyIDAgMCAxIDY0IDB6bTE0NCAxMjhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzUyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzQgMjA4SDY0YTE2IDE2IDAgMCAwLTE2IDE2djE2YTE2IDE2IDAgMCAwIDE2IDE2aDE1Ljk0QTUzNS43OCA1MzUuNzggMCAwIDEgNjQgMzg0aDEyOGE1MzUuNzggNTM1Ljc4IDAgMCAxLTE1Ljk0LTEyOEgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTE2YTE2IDE2IDAgMCAwLTE2LTE2aC0xMGwzMy44OS05MC4zOGExNiAxNiAwIDAgMC0xNS0yMS42MkgxNDRWNjRoMjRhOCA4IDAgMCAwIDgtOFY0MGE4IDggMCAwIDAtOC04aC0yNFY4YTggOCAwIDAgMC04LThoLTE2YTggOCAwIDAgMC04IDh2MjRIODhhOCA4IDAgMCAwLTggOHYxNmE4IDggMCAwIDAgOCA4aDI0djMySDU1LjA5YTE2IDE2IDAgMCAwLTE1IDIxLjYyem0xNzMuMTYgMjUxLjU4TDIyNCA0NDh2LTE2YTE2IDE2IDAgMCAwLTE2LTE2SDQ4YTE2IDE2IDAgMCAwLTE2IDE2djE2TDguODUgNDU5LjU4QTE2IDE2IDAgMCAwIDAgNDczLjg5VjQ5NmExNiAxNiAwIDAgMCAxNiAxNmgyMjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTIyLjExYTE2IDE2IDAgMCAwLTguODQtMTQuMzF6bTkyLjc3LTE1Ny43OGwtMy4yOSA4Mi4yaDEyNi43MmwtMy4yOS04Mi4yMSAyNC42LTIwLjc5QTMyIDMyIDAgMCAwIDQ5NiAyNTYuNTRWMTk4YTYgNiAwIDAgMC02LTZoLTI2LjM4YTYgNiAwIDAgMC02IDZ2MjZoLTI0Ljcxdi0yNmE2IDYgMCAwIDAtNi02SDM3My4xYTYgNiAwIDAgMC02IDZ2MjZoLTI0Ljcxdi0yNmE2IDYgMCAwIDAtNi02SDMxMGE2IDYgMCAwIDAtNiA2djU4LjZhMzIgMzIgMCAwIDAgMTEuMzYgMjQuNHpNMzg0IDMwNGExNiAxNiAwIDAgMSAzMiAwdjMyaC0zMnptMTE5LjE2IDE1NS41OEw0ODAgNDQ4di0xNmExNiAxNiAwIDAgMC0xNi0xNkgzMzZhMTYgMTYgMCAwIDAtMTYgMTZ2MTZsLTIzLjE1IDExLjU4YTE2IDE2IDAgMCAwLTguODUgMTQuMzFWNDk2YTE2IDE2IDAgMCAwIDE2IDE2aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMjIuMTFhMTYgMTYgMCAwIDAtOC44NC0xNC4zMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4ek0yNzMgMzY5LjlsMTM1LjUtMTM1LjVjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTE3LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwyNTYgMjg1LjEgMTU0LjQgMTgzLjVjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwbC0xNyAxN2MtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlMMjM5IDM2OS45YzkuNCA5LjQgMjQuNiA5LjQgMzQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDh6TTE0Mi4xIDI3M2wxMzUuNSAxMzUuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxNy0xN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMjYuOSAyNTZsMTAxLjYtMTAxLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTE3LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxNDIuMSAyMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkNpcmNsZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4YzEzNyAwIDI0OCAxMTEgMjQ4IDI0OFMzOTMgNTA0IDI1NiA1MDQgOCAzOTMgOCAyNTYgMTE5IDggMjU2IDh6bTExMy45IDIzMUwyMzQuNCAxMDMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyODUuMSAyNTYgMTgzLjUgMzU3LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDE3IDE3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDM2OS45IDI3M2M5LjQtOS40IDkuNC0yNC42IDAtMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25DaXJjbGVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04IDI1NkM4IDExOSAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2em0yMzEtMTEzLjlMMTAzLjUgMjc3LjZjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDE3IDE3YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwTDI1NiAyMjYuOWwxMDEuNiAxMDEuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxNy0xN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyNzMgMTQyLjFjLTkuNC05LjQtMjQuNi05LjQtMzQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkRvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA3LjAyOSAzODEuNDc2TDEyLjY4NiAxODcuMTMyYy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFsMjIuNjY3LTIyLjY2N2M5LjM1Ny05LjM1NyAyNC41MjItOS4zNzUgMzMuOTAxLS4wNEwyMjQgMjg0LjUwNWwxNTQuNzQ1LTE1NC4wMjFjOS4zNzktOS4zMzUgMjQuNTQ0LTkuMzE3IDMzLjkwMS4wNGwyMi42NjcgMjIuNjY3YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MUwyNDAuOTcxIDM4MS40NzZjLTkuMzczIDkuMzcyLTI0LjU2OSA5LjM3Mi0zMy45NDIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2hldnJvbkxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQuNTIgMjM5LjAzTDIyOC44NyA0NC42OWM5LjM3LTkuMzcgMjQuNTctOS4zNyAzMy45NCAwbDIyLjY3IDIyLjY3YzkuMzYgOS4zNiA5LjM3IDI0LjUyLjA0IDMzLjlMMTMxLjQ5IDI1NmwxNTQuMDIgMTU0Ljc1YzkuMzQgOS4zOCA5LjMyIDI0LjU0LS4wNCAzMy45bC0yMi42NyAyMi42N2MtOS4zNyA5LjM3LTI0LjU3IDkuMzctMzMuOTQgMEwzNC41MiAyNzIuOTdjLTkuMzctOS4zNy05LjM3LTI0LjU3IDAtMzMuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25SaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODUuNDc2IDI3Mi45NzFMOTEuMTMyIDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMGwtMjIuNjY3LTIyLjY2N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTg4LjUwNSAyNTYgMzQuNDg0IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjg1LjQ3NSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4LjAwMSAzMy45NDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoZXZyb25VcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAuOTcxIDEzMC41MjRsMTk0LjM0MyAxOTQuMzQzYzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MWwtMjIuNjY3IDIyLjY2N2MtOS4zNTcgOS4zNTctMjQuNTIyIDkuMzc1LTMzLjkwMS4wNEwyMjQgMjI3LjQ5NSA2OS4yNTUgMzgxLjUxNmMtOS4zNzkgOS4zMzUtMjQuNTQ0IDkuMzE3LTMzLjkwMS0uMDRsLTIyLjY2Ny0yMi42NjdjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MUwyMDcuMDMgMTMwLjUyNWM5LjM3Mi05LjM3MyAyNC41NjgtOS4zNzMgMzMuOTQxLS4wMDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNoaWxkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyMCA3MmMwLTM5Ljc2NSAzMi4yMzUtNzIgNzItNzJzNzIgMzIuMjM1IDcyIDcyYzAgMzkuNzY0LTMyLjIzNSA3Mi03MiA3MnMtNzItMzIuMjM2LTcyLTcyem0yNTQuNjI3IDEuMzczYy0xMi40OTYtMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU0IDBMMjQyLjc0NSAxNjBIMTQxLjI1NEw1NC42MjcgNzMuMzczYy0xMi40OTYtMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU0IDAtMTIuNDk3IDEyLjQ5Ny0xMi40OTcgMzIuNzU4IDAgNDUuMjU1TDEwNCAyMTMuMjU0VjQ4MGMwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoMTZjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMyVjM2OGgxNnYxMTJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyaDE2YzE3LjY3MyAwIDMyLTE0LjMyNyAzMi0zMlYyMTMuMjU0bDk0LjYyNy05NC42MjdjMTIuNDk3LTEyLjQ5NyAxMi40OTctMzIuNzU3IDAtNDUuMjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaHVyY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0LjQ2IDI0Ni42OEwzNTIgMTc5LjJWMTI4aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjgwYzAtOC44NC03LjE2LTE2LTE2LTE2aC00OFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2NTEuMmwtMTEyLjQ2IDY3LjQ4QTMxLjk5NyAzMS45OTcgMCAwIDAgMTYwIDI3NC4xMlY1MTJoOTZ2LTk2YzAtMzUuMzUgMjguNjUtNjQgNjQtNjRzNjQgMjguNjUgNjQgNjR2OTZoOTZWMjc0LjEyYzAtMTEuMjQtNS45LTIxLjY2LTE1LjU0LTI3LjQ0ek0wIDM5NS45NlY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTEyVjMyMEwxOS4zOSAzNjYuNTRBMzIuMDI0IDMyLjAyNCAwIDAgMCAwIDM5NS45NnptNjIwLjYxLTI5LjQyTDUxMiAzMjB2MTkyaDExMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzOTUuOTZjMC0xMi44LTcuNjMtMjQuMzctMTkuMzktMjkuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZU5vdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAzOS4wNTZ2MTYuNjU5YzAgMTAuODA0IDcuMjgxIDIwLjE1OSAxNy42ODYgMjMuMDY2QzM4My4yMDQgMTAwLjQzNCA0NDAgMTcxLjUxOCA0NDAgMjU2YzAgMTAxLjY4OS04Mi4yOTUgMTg0LTE4NCAxODQtMTAxLjY4OSAwLTE4NC04Mi4yOTUtMTg0LTE4NCAwLTg0LjQ3IDU2Ljc4Ni0xNTUuNTY0IDEzNC4zMTItMTc3LjIxOUMyMTYuNzE5IDc1Ljg3NCAyMjQgNjYuNTE3IDIyNCA1NS43MTJWMzkuMDY0YzAtMTUuNzA5LTE0LjgzNC0yNy4xNTMtMzAuMDQ2LTIzLjIzNEM4Ni42MDMgNDMuNDgyIDcuMzk0IDE0MS4yMDYgOC4wMDMgMjU3LjMzMmMuNzIgMTM3LjA1MiAxMTEuNDc3IDI0Ni45NTYgMjQ4LjUzMSAyNDYuNjY3QzM5My4yNTUgNTAzLjcxMSA1MDQgMzkyLjc4OCA1MDQgMjU2YzAtMTE1LjYzMy03OS4xNC0yMTIuNzc5LTE4Ni4yMTEtMjQwLjIzNkMzMDIuNjc4IDExLjg4OSAyODggMjMuNDU2IDI4OCAzOS4wNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDaXR5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxNiAxOTJINDgwVjI0YzAtMTMuMjYtMTAuNzQtMjQtMjQtMjRIMzEyYy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djcyaC02NFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djgwaC02NFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkg4MGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2ODBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MzYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjE2YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTEyOCA0MDRjMCA2LjYzLTUuMzcgMTItMTIgMTJINzZjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMkg3NmMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEySDc2Yy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTEyOCAxOTJjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTE2MCA5NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEyVjc2YzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0xNjAgMjg4YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbGluaWNNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxMTVMNjkuNDcgMzA3LjcxYy0xLjYyIDEuNDYtMy42OSAyLjE0LTUuNDcgMy4zNVY0OTZhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjMxMS4xYy0xLjctMS4xNi0zLjcyLTEuODItNS4yNi0zLjJ6bTk2IDI2MWE4IDggMCAwIDEtOCA4aC01NnY1NmE4IDggMCAwIDEtOCA4aC00OGE4IDggMCAwIDEtOC04di01NmgtNTZhOCA4IDAgMCAxLTgtOHYtNDhhOCA4IDAgMCAxIDgtOGg1NnYtNTZhOCA4IDAgMCAxIDgtOGg0OGE4IDggMCAwIDEgOCA4djU2aDU2YTggOCAwIDAgMSA4IDh6bTE4Ni42OS0xMzkuNzJsLTI1NS45NC0yMjZhMzkuODUgMzkuODUgMCAwIDAtNTMuNDUgMGwtMjU2IDIyNmExNiAxNiAwIDAgMC0xLjIxIDIyLjZMMjUuNSAyODIuN2ExNiAxNiAwIDAgMCAyMi42IDEuMjFMMjc3LjQyIDgxLjYzYTE2IDE2IDAgMCAxIDIxLjE3IDBMNTI3LjkxIDI4My45YTE2IDE2IDAgMCAwIDIyLjYtMS4yMWwyMS40LTIzLjgyYTE2IDE2IDAgMCAwLTEuMjItMjIuNTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiA2NGgtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRzLTY0IDI4LjctNjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE5MiA0MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bTEyMS4yIDIzMS44bC0xNDMgMTQxLjhjLTQuNyA0LjctMTIuMyA0LjYtMTctLjFsLTgyLjYtODMuM2MtNC43LTQuNy00LjYtMTIuMy4xLTE3TDk5LjEgMjg1YzQuNy00LjcgMTIuMy00LjYgMTcgLjFsNDYgNDYuNCAxMDYtMTA1LjJjNC43LTQuNyAxMi4zLTQuNiAxNyAuMWwyOC4yIDI4LjRjNC43IDQuOCA0LjYgMTIuMy0uMSAxN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xpcGJvYXJkTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNjRoLTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0cy02NCAyOC43LTY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek05NiA0MjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em0wLTk2Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMC05NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTk2LTE5MmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bTEyOCAzNjhjMCA0LjQtMy42IDgtOCA4SDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnptMC05NmMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2em0wLTk2YzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsaXBib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zODQgMTEydjM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDgwYzAtMzUuMjkgMjguNzEtNjQgNjQtNjRzNjQgMjguNzEgNjQgNjRoODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHpNMTkyIDQwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjRtOTYgMTE0di0yMGE2IDYgMCAwIDAtNi02SDEwMmE2IDYgMCAwIDAtNiA2djIwYTYgNiAwIDAgMCA2IDZoMTgwYTYgNiAwIDAgMCA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Niw4QzExOSw4LDgsMTE5LDgsMjU2UzExOSw1MDQsMjU2LDUwNCw1MDQsMzkzLDUwNCwyNTYsMzkzLDgsMjU2LDhabTkyLjQ5LDMxM2gwbC0yMCwyNWExNiwxNiwwLDAsMS0yMi40OSwyLjVoMGwtNjctNDkuNzJhNDAsNDAsMCwwLDEtMTUtMzEuMjNWMTEyYTE2LDE2LDAsMCwxLDE2LTE2aDMyYTE2LDE2LDAsMCwxLDE2LDE2VjI1Nmw1OCw0Mi41QTE2LDE2LDAsMCwxLDM0OC40OSwzMjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAwYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhIMTc2Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjQ4YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMjg4TTE3NiA0MTZjLTQ0LjExMiAwLTgwLTM1Ljg4OC04MC04MFYxMjhINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjg4YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTQ4SDE3NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvc2VkQ2FwdGlvbmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTIxOC4xIDI4Ny43YzIuOC0yLjUgNy4xLTIuMSA5LjIuOWwxOS41IDI3LjdjMS43IDIuNCAxLjUgNS42LS41IDcuNy01My42IDU2LjgtMTcyLjggMzIuMS0xNzIuOC02Ny45IDAtOTcuMyAxMjEuNy0xMTkuNSAxNzIuNS03MC4xIDIuMSAyIDIuNSAzLjIgMSA1LjdsLTE3LjUgMzAuNWMtMS45IDMuMS02LjIgNC05LjEgMS43LTQwLjgtMzItOTQuNi0xNC45LTk0LjYgMzEuMi4xIDQ4IDUxLjEgNzAuNSA5Mi4zIDMyLjZ6bTE5MC40IDBjMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjUgMjcuN2MxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjUgNTYuOS0xNzIuNyAzMi4xLTE3Mi43LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN0w0MjAgMjIyLjJjLTEuOSAzLjEtNi4yIDQtOS4xIDEuNy00MC44LTMyLTk0LjYtMTQuOS05NC42IDMxLjIgMCA0OCA1MSA3MC41IDkyLjIgMzIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWREb3dubG9hZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6bS0xMzIuOSA4OC43TDI5OS4zIDQyMC43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMEwxNzEuMyAzMTUuM2MtMTAuMS0xMC4xLTIuOS0yNy4zIDExLjMtMjcuM0gyNDhWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTEyaDY1LjRjMTQuMiAwIDIxLjQgMTcuMiAxMS4zIDI3LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkTWVhdGJhbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMzUyYy0yNi41IDAtNDggMjEuNS00OCA0OHMyMS41IDQ4IDQ4IDQ4IDQ4LTIxLjUgNDgtNDgtMjEuNS00OC00OC00OHptNDE2IDBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDggNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4em0tMTE5IDExLjFjNC42LTE0LjUgMS42LTMwLjgtOS44LTQyLjMtMTEuNS0xMS41LTI3LjgtMTQuNC00Mi4zLTkuOS03LTEzLjUtMjAuNy0yMy0zNi45LTIzcy0yOS45IDkuNS0zNi45IDIzYy0xNC41LTQuNi0zMC44LTEuNi00Mi4zIDkuOS0xMS41IDExLjUtMTQuNCAyNy44LTkuOSA0Mi4zLTEzLjUgNy0yMyAyMC43LTIzIDM2LjlzOS41IDI5LjkgMjMgMzYuOWMtNC42IDE0LjUtMS42IDMwLjggOS45IDQyLjMgOC4yIDguMiAxOC45IDEyLjMgMjkuNyAxMi4zIDQuMyAwIDguNS0xLjEgMTIuNi0yLjUgNyAxMy41IDIwLjcgMjMgMzYuOSAyM3MyOS45LTkuNSAzNi45LTIzYzQuMSAxLjMgOC4zIDIuNSAxMi42IDIuNSAxMC44IDAgMjEuNS00LjEgMjkuNy0xMi4zIDExLjUtMTEuNSAxNC40LTI3LjggOS44LTQyLjMgMTMuNS03IDIzLTIwLjcgMjMtMzYuOXMtOS41LTI5LjktMjMtMzYuOXpNNTEyIDIyNGMwLTUzLTQzLTk2LTk2LTk2LS42IDAtMS4xLjItMS42LjIgMS4xLTUuMiAxLjYtMTAuNiAxLjYtMTYuMiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC42IDAtNDYuMyAxMS4zLTYxIDI4LjhDMjU2LjQgMjQuOCAyMTkuMyAwIDE3NiAwIDExNC4xIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjMuOCAxNC4zIDIuMSAyMS4yQzI3LjggMTQ1LjggMCAxODEuNSAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2aDQzLjRjMy42LTggOC40LTE1LjQgMTQuOC0yMS44IDEzLjUtMTMuNSAzMS41LTIxLjEgNTAuOC0yMS4zIDEzLjUtMTMuMiAzMS43LTIwLjkgNTEtMjAuOXMzNy41IDcuNyA1MSAyMC45YzE5LjMuMiAzNy4zIDcuOCA1MC44IDIxLjMgNi40IDYuNCAxMS4zIDEzLjggMTQuOCAyMS44SDQxNmM1MyAwIDk2LTQzIDk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZE1vb25SYWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MC41IDIyNS41Yy02LjktMzcuMi0zOS4zLTY1LjUtNzguNS02NS41LTEyLjMgMC0yMy45IDMtMzQuMyA4LTE3LjQtMjQuMS00NS42LTQwLTc3LjctNDAtNTMgMC05NiA0My05NiA5NiAwIC41LjIgMS4xLjIgMS42QzI3LjYgMjMyLjkgMCAyNjUuMiAwIDMwNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGgyNTZjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS4yLTI4LjItNzEuNy02NS41LTc4LjV6bTIxNy40LTEuN2MtNzAuNCAxMy4zLTEzNS00MC4zLTEzNS0xMTAuOCAwLTQwLjYgMjEuOS03OCA1Ny41LTk4LjEgNS41LTMuMSA0LjEtMTEuNC0yLjEtMTIuNUM0NzkuNi44IDQ3MC43IDAgNDYxLjggMGMtNzcuOSAwLTE0MS4xIDYxLjItMTQ0LjQgMTM3LjkgMjYuNyAxMS45IDQ4LjIgMzMuOCA1OC45IDYxLjcgMzcuMSAxNC4zIDY0IDQ3LjQgNzAuMiA4Ni44IDUuMS41IDEwIDEuNSAxNS4yIDEuNSA0NC43IDAgODUuNi0yMC4yIDExMi42LTUzLjMgNC4yLTQuOC0uMi0xMi02LjQtMTAuOHpNMzY0LjUgNDE4LjFjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZE1vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQyLjggMzUyLjdjNS43LTkuNiA5LjItMjAuNyA5LjItMzIuNyAwLTM1LjMtMjguNy02NC02NC02NC0xNy4yIDAtMzIuOCA2LjktNDQuMyAxNy45LTE2LjMtMjkuNi00Ny41LTQ5LjktODMuNy00OS45LTUzIDAtOTYgNDMtOTYgOTYgMCAyIC41IDMuOC42IDUuN0MyNy4xIDMzOC44IDAgMzc0LjEgMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmgyNDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC00MS45LTMyLjMtNzUuOC03My4yLTc5LjN6bTIyMi41LTU0LjNjLTkzLjEgMTcuNy0xNzguNS01My43LTE3OC41LTE0Ny43IDAtNTQuMiAyOS0xMDQgNzYuMS0xMzAuOCA3LjMtNC4xIDUuNC0xNS4xLTIuOC0xNi43QzQ0OC40IDEuMSA0MzYuNyAwIDQyNSAwIDMxOS4xIDAgMjMzLjEgODUuOSAyMzMuMSAxOTJjMCA4LjUuNyAxNi44IDEuOCAyNSA1LjkgNC4zIDExLjYgOC45IDE2LjcgMTQuMiAxMS40LTQuNyAyMy43LTcuMiAzNi40LTcuMiA1Mi45IDAgOTYgNDMuMSA5NiA5NiAwIDMuNi0uMiA3LjItLjYgMTAuNyAyMy42IDEwLjggNDIuNCAyOS41IDUzLjUgNTIuNiA1NC40LTMuNCAxMDMuNy0yOS4zIDEzNy4xLTcwLjQgNS4zLTYuNS0uNS0xNi4xLTguNy0xNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFJhaW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDEyOGMtLjYgMC0xLjEuMi0xLjYuMiAxLjEtNS4yIDEuNi0xMC42IDEuNi0xNi4yIDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjYgMC00Ni4zIDExLjMtNjEgMjguOEMyNTYuNCAyNC44IDIxOS4zIDAgMTc2IDAgMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMy44IDE0LjMgMi4xIDIxLjJDMjcuOCAxNDUuOCAwIDE4MS41IDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoMzIwYzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2ek04OCAzNzQuMmMtMTIuOCA0NC40LTQwIDU2LjQtNDAgODcuNyAwIDI3LjcgMjEuNSA1MC4xIDQ4IDUwLjFzNDgtMjIuNCA0OC01MC4xYzAtMzEuNC0yNy4yLTQzLjEtNDAtODcuNy0yLjItOC4xLTEzLjUtOC41LTE2IDB6bTE2MCAwYy0xMi44IDQ0LjQtNDAgNTYuNC00MCA4Ny43IDAgMjcuNyAyMS41IDUwLjEgNDggNTAuMXM0OC0yMi40IDQ4LTUwLjFjMC0zMS40LTI3LjItNDMuMS00MC04Ny43LTIuMi04LjEtMTMuNS04LjUtMTYgMHptMTYwIDBjLTEyLjggNDQuNC00MCA1Ni40LTQwIDg3LjcgMCAyNy43IDIxLjUgNTAuMSA0OCA1MC4xczQ4LTIyLjQgNDgtNTAuMWMwLTMxLjQtMjcuMi00My4xLTQwLTg3LjctMi4yLTguMS0xMy41LTguNS0xNiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZFNob3dlcnNIZWF2eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODMuOSAzNzAuMWMtNy42LTQuNC0xNy40LTEuOC0yMS44IDZsLTY0IDExMmMtNC40IDcuNy0xLjcgMTcuNSA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsNjQtMTEyYzQuNC03LjYgMS43LTE3LjQtNi0yMS44em05NiAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bS0xOTIgMGMtNy42LTQuNC0xNy40LTEuOC0yMS44IDZsLTY0IDExMmMtNC40IDcuNy0xLjcgMTcuNSA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsNjQtMTEyYzQuNC03LjYgMS43LTE3LjQtNi0yMS44em0zODQgMGMtNy42LTQuNC0xNy40LTEuOC0yMS44IDZsLTY0IDExMmMtNC40IDcuNy0xLjcgMTcuNSA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsNjQtMTEyYzQuNC03LjYgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuNC0xNy40LTEuOC0yMS44IDZsLTY0IDExMmMtNC40IDcuNy0xLjcgMTcuNSA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsNjQtMTEyYzQuNC03LjYgMS43LTE3LjQtNi0yMS44ek00MTYgMTI4Yy0uNiAwLTEuMS4yLTEuNi4yIDEuMS01LjIgMS42LTEwLjYgMS42LTE2LjIgMC00NC4yLTM1LjgtODAtODAtODAtMjQuNiAwLTQ2LjMgMTEuMy02MSAyOC44QzI1Ni40IDI0LjggMjE5LjMgMCAxNzYgMCAxMTQuMiAwIDY0IDUwLjEgNjQgMTEyYzAgNy4zLjggMTQuMyAyLjEgMjEuMkMyNy44IDE0NS44IDAgMTgxLjUgMCAyMjRjMCA1MyA0MyA5NiA5NiA5NmgzMjBjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU3VuUmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTAuNSAyMjUuNWMtNi45LTM3LjItMzkuMy02NS41LTc4LjUtNjUuNS0xMi4zIDAtMjMuOSAzLTM0LjMgOC0xNy40LTI0LjEtNDUuNi00MC03Ny43LTQwLTUzIDAtOTYgNDMtOTYgOTYgMCAuNS4yIDEuMS4yIDEuNkMxODcuNiAyMzMgMTYwIDI2NS4yIDE2MCAzMDRjMCA0NC4yIDM1LjggODAgODAgODBoMjU2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzkuMi0yOC4yLTcxLjctNjUuNS03OC41em0tMzg2LjQgMzQuNGMtMzcuNC0zNy40LTM3LjQtOTguMyAwLTEzNS44IDM0LjYtMzQuNiA4OS4xLTM2LjggMTI2LjctNy40IDIwLTEyLjkgNDMuNi0yMC43IDY5LjItMjAuNy43IDAgMS4zLjIgMiAuMmw4LjktMjYuN2MzLjQtMTAuMi02LjMtMTkuOC0xNi41LTE2LjRsLTc1LjMgMjUuMS0zNS41LTcxYy00LjgtOS42LTE4LjUtOS42LTIzLjMgMGwtMzUuNSA3MS03NS4zLTI1LjFjLTEwLjItMy40LTE5LjggNi4zLTE2LjQgMTYuNWwyNS4xIDc1LjMtNzEgMzUuNWMtOS42IDQuOC05LjYgMTguNSAwIDIzLjNsNzEgMzUuNS0yNS4xIDc1LjNjLTMuNCAxMC4yIDYuMyAxOS44IDE2LjUgMTYuNWw1OS4yLTE5LjdjLS4yLTIuNC0uNy00LjctLjctNy4yIDAtMTIuNSAyLjMtMjQuNSA2LjItMzUuOS0zLjYtMi43LTcuMS01LjItMTAuMi04LjN6bTY5LjgtNThjNC4zLTI0LjUgMTUuOC00Ni40IDMxLjktNjQtOS44LTYuMi0yMS40LTkuOS0zMy44LTkuOS0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE4LjcgOC4yIDM1LjQgMjEuMSA0Ny4xIDExLjMtMTUuOSAyNi42LTI4LjkgNDQuOC0zNy4yem0zMzAuNiAyMTYuMmMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNsb3VkU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NS4yIDMyNS43Yy4yLTEuOS44LTMuNy44LTUuNiAwLTM1LjMtMjguNy02NC02NC02NC0xMi42IDAtMjQuMiAzLjgtMzQuMSAxMC0xNy42LTM4LjgtNTYuNS02Ni0xMDEuOS02Ni02MS44IDAtMTEyIDUwLjEtMTEyIDExMiAwIDMgLjcgNS44LjkgOC43LTQ5LjYgMy43LTg4LjkgNDQuNy04OC45IDk1LjMgMCA1MyA0MyA5NiA5NiA5NmgyNzJjNTMgMCA5Ni00MyA5Ni05NiAwLTQyLjEtMjcuMi03Ny40LTY0LjgtOTAuNHptLTQzMC40LTIyLjZjLTQzLjctNDMuNy00My43LTExNC43IDAtMTU4LjMgNDMuNy00My43IDExNC43LTQzLjcgMTU4LjQgMCA5LjcgOS43IDE2LjkgMjAuOSAyMi4zIDMyLjcgOS44LTMuNyAyMC4xLTYgMzAuNy03LjVMMzg2IDgxLjFjNC0xMS45LTcuMy0yMy4xLTE5LjItMTkuMkwyNzkgOTEuMiAyMzcuNSA4LjRDMjMyLTIuOCAyMTYtMi44IDIxMC40IDguNEwxNjkgOTEuMiA4MS4xIDYxLjlDNjkuMyA1OCA1OCA2OS4zIDYxLjkgODEuMWwyOS4zIDg3LjgtODIuOCA0MS41Yy0xMS4yIDUuNi0xMS4yIDIxLjUgMCAyNy4xbDgyLjggNDEuNC0yOS4zIDg3LjhjLTQgMTEuOSA3LjMgMjMuMSAxOS4yIDE5LjJsNzYuMS0yNS4zYzYuMS0xMi40IDE0LTIzLjcgMjMuNi0zMy41LTEzLjEtNS40LTI1LjQtMTMuNC0zNi0yNHptLTQuOC03OS4yYzAgNDAuOCAyOS4zIDc0LjggNjcuOSA4Mi4zIDgtNC43IDE2LjMtOC44IDI1LjItMTEuNyA1LjQtNDQuMyAzMS04Mi41IDY3LjQtMTA1QzI4Ny4zIDE2MC40IDI1OCAxNDAgMjI0IDE0MGMtNDYuMyAwLTg0IDM3LjYtODQgODMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ2xvdWRVcGxvYWRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM3LjYgMjI2LjZjNC4xLTEwLjcgNi40LTIyLjQgNi40LTM0LjYgMC01My00My05Ni05Ni05Ni0xOS43IDAtMzguMSA2LTUzLjMgMTYuMkMzNjcgNjQuMiAzMTUuMyAzMiAyNTYgMzJjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwIDAgMi43LjEgNS40LjIgOC4xQzQwLjIgMjE5LjggMCAyNzMuMiAwIDMzNmMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NGgzNjhjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjggMC02MS45LTQ0LTExMy42LTEwMi40LTEyNS40ek0zOTMuNCAyODhIMzI4djExMmMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMjg4aC02NS40Yy0xNC4zIDAtMjEuNC0xNy4yLTExLjMtMjcuM2wxMDUuNC0xMDUuNGM2LjItNi4yIDE2LjQtNi4yIDIyLjYgMGwxMDUuNCAxMDUuNGMxMC4xIDEwLjEgMi45IDI3LjMtMTEuMyAyNy4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDbG91ZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvY2t0YWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5NiA0NjRoLTU2VjMzOC43OGwxNjguNzQtMTY4LjczYzE1LjUyLTE1LjUyIDQuNTMtNDIuMDUtMTcuNDItNDIuMDVIMjQuNjhjLTIxLjk1IDAtMzIuOTQgMjYuNTMtMTcuNDIgNDIuMDVMMTc2IDMzOC43OFY0NjRoLTU2Yy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwIDAgNC40MiAzLjU4IDggOCA4aDI0MGM0LjQyIDAgOC0zLjU4IDgtOCAwLTIyLjA5LTE3LjkxLTQwLTQwLTQwek00MzIgMGMtNjIuNjEgMC0xMTUuMzUgNDAuMi0xMzUuMTggOTZoNTIuNTRjMTYuNjUtMjguNTUgNDcuMjctNDggODIuNjQtNDggNTIuOTMgMCA5NiA0My4wNiA5NiA5NnMtNDMuMDcgOTYtOTYgOTZjLTE0LjA0IDAtMjcuMjktMy4yLTM5LjMyLTguNjRsLTM1LjI2IDM1LjI2QzM3OS4yMyAyNzkuOTIgNDA0LjU5IDI4OCA0MzIgMjg4Yzc5LjUzIDAgMTQ0LTY0LjQ3IDE0NC0xNDRTNTExLjUzIDAgNDMyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvZGVCcmFuY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDE0NGMwLTQ0LjItMzUuOC04MC04MC04MHMtODAgMzUuOC04MCA4MGMwIDM2LjQgMjQuMyA2Ny4xIDU3LjUgNzYuOC0uNiAxNi4xLTQuMiAyOC41LTExIDM2LjktMTUuNCAxOS4yLTQ5LjMgMjIuNC04NS4yIDI1LjctMjguMiAyLjYtNTcuNCA1LjQtODEuMyAxNi45di0xNDRjMzIuNS0xMC4yIDU2LTQwLjUgNTYtNzYuMyAwLTQ0LjItMzUuOC04MC04MC04MFMwIDM1LjggMCA4MGMwIDM1LjggMjMuNSA2Ni4xIDU2IDc2LjN2MTk5LjNDMjMuNSAzNjUuOSAwIDM5Ni4yIDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zNC0yMS4yLTYzLjEtNTEuMi03NC42IDMuMS01LjIgNy44LTkuOCAxNC45LTEzLjQgMTYuMi04LjIgNDAuNC0xMC40IDY2LjEtMTIuOCA0Mi4yLTMuOSA5MC04LjQgMTE4LjItNDMuNCAxNC0xNy40IDIxLjEtMzkuOCAyMS42LTY3LjkgMzEuNi0xMC44IDU0LjQtNDAuNyA1NC40LTc1Ljl6TTgwIDY0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2LTE2LTcuMi0xNi0xNiA3LjItMTYgMTYtMTZ6bTAgMzg0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTIyNC0zMjBjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTYtMTYtNy4yLTE2LTE2IDcuMi0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29kZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzguOSA1MTEuNWwtNjEtMTcuN2MtNi40LTEuOC0xMC04LjUtOC4yLTE0LjlMMzQ2LjIgOC43YzEuOC02LjQgOC41LTEwIDE0LjktOC4ybDYxIDE3LjdjNi40IDEuOCAxMCA4LjUgOC4yIDE0LjlMMjkzLjggNTAzLjNjLTEuOSA2LjQtOC41IDEwLjEtMTQuOSA4LjJ6bS0xMTQtMTEyLjJsNDMuNS00Ni40YzQuNi00LjkgNC4zLTEyLjctLjgtMTcuMkwxMTcgMjU2bDkwLjYtNzkuN2M1LjEtNC41IDUuNS0xMi4zLjgtMTcuMmwtNDMuNS00Ni40Yy00LjUtNC44LTEyLjEtNS4xLTE3LS41TDMuOCAyNDcuMmMtNS4xIDQuNy01LjEgMTIuOCAwIDE3LjVsMTQ0LjEgMTM1LjFjNC45IDQuNiAxMi41IDQuNCAxNy0uNXptMzI3LjIuNmwxNDQuMS0xMzUuMWM1LjEtNC43IDUuMS0xMi44IDAtMTcuNUw0OTIuMSAxMTIuMWMtNC44LTQuNS0xMi40LTQuMy0xNyAuNUw0MzEuNiAxNTljLTQuNiA0LjktNC4zIDEyLjcuOCAxNy4yTDUyMyAyNTZsLTkwLjYgNzkuN2MtNS4xIDQuNS01LjUgMTIuMy0uOCAxNy4ybDQzLjUgNDYuNGM0LjUgNC45IDEyLjEgNS4xIDE3IC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2ZmZWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGgxOTJjNTMgMCA5Ni00MyA5Ni05NmgzMmM3MC42IDAgMTI4LTU3LjQgMTI4LTEyOFM1ODIuNiAzMiA1MTIgMzJIMTIwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyMzJjMCA1MyA0MyA5NiA5NiA5NnpNNTEyIDk2YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0aC0zMlY5NmgzMnptNDcuNyAzODRINDguM2MtNDcuNiAwLTYxLTY0LTM2LTY0aDU4My4zYzI1IDAgMTEuOCA2NC0zNS45IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29ncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIuMSAxOTFsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBMNTUyIDYuM2MzLTUuMyA5LjQtNy41IDE1LjEtNS40IDExLjggNC40IDIyLjYgMTAuNyAzMi4xIDE4LjYgNC42IDMuOCA1LjggMTAuNSAyLjggMTUuN2wtOC4yIDE0LjNjNi45IDggMTIuMyAxNy4zIDE1LjkgMjcuNGgxNi41YzYgMCAxMS4yIDQuMyAxMi4yIDEwLjMgMiAxMiAyLjEgMjQuNiAwIDM3LjEtMSA2LTYuMiAxMC40LTEyLjIgMTAuNGgtMTYuNWMtMy42IDEwLjEtOSAxOS40LTE1LjkgMjcuNGw4LjIgMTQuM2MzIDUuMiAxLjkgMTEuOS0yLjggMTUuNy05LjUgNy45LTIwLjQgMTQuMi0zMi4xIDE4LjYtNS43IDIuMS0xMi4xLS4xLTE1LjEtNS40bC04LjItMTQuM2MtMTAuNCAxLjktMjEuMiAxLjktMzEuNyAwem0tMTAuNS01OC44YzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNy04Mi40IDE0LjMtNTIuOCA1Mi44ek0zODYuMyAyODYuMWwzMy43IDE2LjhjMTAuMSA1LjggMTQuNSAxOC4xIDEwLjUgMjkuMS04LjkgMjQuMi0yNi40IDQ2LjQtNDIuNiA2NS44LTcuNCA4LjktMjAuMiAxMS4xLTMwLjMgNS4zbC0yOS4xLTE2LjhjLTE2IDEzLjctMzQuNiAyNC42LTU0LjkgMzEuN3YzMy42YzAgMTEuNi04LjMgMjEuNi0xOS43IDIzLjYtMjQuNiA0LjItNTAuNCA0LjQtNzUuOSAwLTExLjUtMi0yMC0xMS45LTIwLTIzLjZWNDE4Yy0yMC4zLTcuMi0zOC45LTE4LTU0LjktMzEuN0w3NCA0MDNjLTEwIDUuOC0yMi45IDMuNi0zMC4zLTUuMy0xNi4yLTE5LjQtMzMuMy00MS42LTQyLjItNjUuNy00LTEwLjkuNC0yMy4yIDEwLjUtMjkuMWwzMy4zLTE2LjhjLTMuOS0yMC45LTMuOS00Mi40IDAtNjMuNEwxMiAyMDUuOGMtMTAuMS01LjgtMTQuNi0xOC4xLTEwLjUtMjkgOC45LTI0LjIgMjYtNDYuNCA0Mi4yLTY1LjggNy40LTguOSAyMC4yLTExLjEgMzAuMy01LjNsMjkuMSAxNi44YzE2LTEzLjcgMzQuNi0yNC42IDU0LjktMzEuN1Y1Ny4xYzAtMTEuNSA4LjItMjEuNSAxOS42LTIzLjUgMjQuNi00LjIgNTAuNS00LjQgNzYtLjEgMTEuNSAyIDIwIDExLjkgMjAgMjMuNnYzMy42YzIwLjMgNy4yIDM4LjkgMTggNTQuOSAzMS43bDI5LjEtMTYuOGMxMC01LjggMjIuOS0zLjYgMzAuMyA1LjMgMTYuMiAxOS40IDMzLjIgNDEuNiA0Mi4xIDY1LjggNCAxMC45LjEgMjMuMi0xMCAyOS4xbC0zMy43IDE2LjhjMy45IDIxIDMuOSA0Mi41IDAgNjMuNXptLTExNy42IDIxLjFjNTkuMi03Ny0yOC43LTE2NC45LTEwNS43LTEwNS43LTU5LjIgNzcgMjguNyAxNjQuOSAxMDUuNyAxMDUuN3ptMjQzLjQgMTgyLjdsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBsOC4yLTE0LjNjMy01LjMgOS40LTcuNSAxNS4xLTUuNCAxMS44IDQuNCAyMi42IDEwLjcgMzIuMSAxOC42IDQuNiAzLjggNS44IDEwLjUgMi44IDE1LjdsLTguMiAxNC4zYzYuOSA4IDEyLjMgMTcuMyAxNS45IDI3LjRoMTYuNWM2IDAgMTEuMiA0LjMgMTIuMiAxMC4zIDIgMTIgMi4xIDI0LjYgMCAzNy4xLTEgNi02LjIgMTAuNC0xMi4yIDEwLjRoLTE2LjVjLTMuNiAxMC4xLTkgMTkuNC0xNS45IDI3LjRsOC4yIDE0LjNjMyA1LjIgMS45IDExLjktMi44IDE1LjctOS41IDcuOS0yMC40IDE0LjItMzIuMSAxOC42LTUuNyAyLjEtMTIuMS0uMS0xNS4xLTUuNGwtOC4yLTE0LjNjLTEwLjQgMS45LTIxLjIgMS45LTMxLjcgMHpNNTAxLjYgNDMxYzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNi04Mi40IDE0LjMtNTIuOCA1Mi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2lucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDQwNS4zVjQ0OGMwIDM1LjMgODYgNjQgMTkyIDY0czE5Mi0yOC43IDE5Mi02NHYtNDIuN0MzNDIuNyA0MzQuNCAyNjcuMiA0NDggMTkyIDQ0OFM0MS4zIDQzNC40IDAgNDA1LjN6TTMyMCAxMjhjMTA2IDAgMTkyLTI4LjcgMTkyLTY0UzQyNiAwIDMyMCAwIDEyOCAyOC43IDEyOCA2NHM4NiA2NCAxOTIgNjR6TTAgMzAwLjRWMzUyYzAgMzUuMyA4NiA2NCAxOTIgNjRzMTkyLTI4LjcgMTkyLTY0di01MS42Yy00MS4zIDM0LTExNi45IDUxLjYtMTkyIDUxLjZTNDEuMyAzMzQuNCAwIDMwMC40em00MTYgMTFjNTcuMy0xMS4xIDk2LTMxLjcgOTYtNTUuNHYtNDIuN2MtMjMuMiAxNi40LTU3LjMgMjcuNi05NiAzNC41djYzLjZ6TTE5MiAxNjBDODYgMTYwIDAgMTk1LjggMCAyNDBzODYgODAgMTkyIDgwIDE5Mi0zNS44IDE5Mi04MC04Ni04MC0xOTItODB6bTIxOS4zIDU2LjNjNjAtMTAuOCAxMDAuNy0zMiAxMDAuNy01Ni4zdi00Mi43Yy0zNS41IDI1LjEtOTYuNSAzOC42LTE2MC43IDQxLjggMjkuNSAxNC4zIDUxLjIgMzMuNSA2MCA1Ny4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb2x1bW5zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMjI0IDQxNkg2NFYxNjBoMTYwdjI1NnptMjI0IDBIMjg4VjE2MGgxNjB2MjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAwSDY0QzI4LjcgMCAwIDI4LjcgMCA2NHYyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZ2ODRjMCA5LjggMTEuMiAxNS41IDE5LjEgOS43TDMwNCA0MTZoMTQ0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50RG9sbGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNjIgMzIgMCAxMjUuMTIgMCAyNDBjMCA0OS41NiAyMS40MSA5NS4wMSA1Ny4wMiAxMzAuNzRDNDQuNDYgNDIxLjA1IDIuNyA0NjUuOTcgMi4yIDQ2Ni41QTcuOTk1IDcuOTk1IDAgMCAwIDggNDgwYzY2LjI2IDAgMTE1Ljk5LTMxLjc1IDE0MC42LTUxLjM4QzE4MS4yOSA0NDAuOTMgMjE3LjU5IDQ0OCAyNTYgNDQ4YzE0MS4zOCAwIDI1Ni05My4xMiAyNTYtMjA4UzM5Ny4zOCAzMiAyNTYgMzJ6bTI0IDMwMi40NFYzNTJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTE2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMTcuNzNjLTExLjQyLTEuMzUtMjIuMjgtNS4xOS0zMS43OC0xMS40Ni02LjIyLTQuMTEtNi44Mi0xMy4xMS0xLjU1LTE4LjM4bDE3LjUyLTE3LjUyYzMuNzQtMy43NCA5LjMxLTQuMjQgMTQuMTEtMi4wMyAzLjE4IDEuNDYgNi42NiAyLjIyIDEwLjI2IDIuMjJoMzIuNzhjNC42NiAwIDguNDQtMy43OCA4LjQ0LTguNDIgMC0zLjc1LTIuNTItNy4wOC02LjEyLTguMTFsLTUwLjA3LTE0LjNjLTIyLjI1LTYuMzUtNDAuMDEtMjQuNzEtNDIuOTEtNDcuNjctNC4wNS0zMi4wNyAxOS4wMy01OS40MyA0OS4zMi02My4wNVYxMjhjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMTZjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTcuNzNjMTEuNDIgMS4zNSAyMi4yOCA1LjE5IDMxLjc4IDExLjQ2IDYuMjIgNC4xMSA2LjgyIDEzLjExIDEuNTUgMTguMzhsLTE3LjUyIDE3LjUyYy0zLjc0IDMuNzQtOS4zMSA0LjI0LTE0LjExIDIuMDNhMjQuNTE2IDI0LjUxNiAwIDAgMC0xMC4yNi0yLjIyaC0zMi43OGMtNC42NiAwLTguNDQgMy43OC04LjQ0IDguNDIgMCAzLjc1IDIuNTIgNy4wOCA2LjEyIDguMTFsNTAuMDcgMTQuM2MyMi4yNSA2LjM2IDQwLjAxIDI0LjcxIDQyLjkxIDQ3LjY3IDQuMDUgMzIuMDYtMTkuMDMgNTkuNDItNDkuMzIgNjMuMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnREb3RzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNiAzMiAwIDEyNS4xIDAgMjQwYzAgNDkuNiAyMS40IDk1IDU3IDEzMC43QzQ0LjUgNDIxLjEgMi43IDQ2NiAyLjIgNDY2LjVjLTIuMiAyLjMtMi44IDUuNy0xLjUgOC43UzQuOCA0ODAgOCA0ODBjNjYuMyAwIDExNi0zMS44IDE0MC42LTUxLjQgMzIuNyAxMi4zIDY5IDE5LjQgMTA3LjQgMTkuNCAxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyek0xMjggMjcyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTI4IDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbW1lbnRNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAzMkMxMTQuNjIgMzIgMCAxMjUuMTIgMCAyNDBjMCA0OS41NiAyMS40MSA5NSA1NyAxMzAuNzRDNDQuNDYgNDIxLjA1IDIuNyA0NjYgMi4yIDQ2Ni41QTggOCAwIDAgMCA4IDQ4MGM2Ni4yNiAwIDExNi0zMS43NSAxNDAuNi01MS4zOEEzMDQuNjYgMzA0LjY2IDAgMCAwIDI1NiA0NDhjMTQxLjM5IDAgMjU2LTkzLjEyIDI1Ni0yMDhTMzk3LjM5IDMyIDI1NiAzMnptOTYgMjMyYTggOCAwIDAgMS04IDhoLTU2djU2YTggOCAwIDAgMS04IDhoLTQ4YTggOCAwIDAgMS04LTh2LTU2aC01NmE4IDggMCAwIDEtOC04di00OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuNy0xMi42IDUwLjMtNTQuMyA5NS4yLTU0LjggOTUuOC0yLjIgMi4zLTIuOCA1LjctMS41IDguNyAxLjMgMi45IDQuMSA0LjggNy4zIDQuOCA2Ni4zIDAgMTE2LTMxLjggMTQwLjYtNTEuNCAzMi43IDEyLjMgNjkgMTkuNCAxMDcuNCAxOS40IDI3LjQgMCA1My43LTMuNiA3OC40LTEwTDcyLjkgMTg2LjRjLTUuNiAxNy4xLTguOSAzNS04LjkgNTMuNnptNTY5LjggMjE4LjFsLTExNC40LTg4LjRDNTU0LjYgMzM0LjEgNTc2IDI4OS4yIDU3NiAyNDBjMC0xMTQuOS0xMTQuNi0yMDgtMjU2LTIwOC02NS4xIDAtMTI0LjIgMjAuMS0xNjkuNCA1Mi43TDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguN1M0LjggNDgwIDggNDgwYzY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tbWVudHNEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDE5MmMwLTg4LjM3LTkzLjEyLTE2MC0yMDgtMTYwUzAgMTAzLjYzIDAgMTkyYzAgMzQuMjcgMTQuMTMgNjUuOTUgMzcuOTcgOTEuOThDMjQuNjEgMzE0LjIyIDIuNTIgMzM4LjE2IDIuMiAzMzguNUE3Ljk5NSA3Ljk5NSAwIDAgMCA4IDM1MmMzNi41OCAwIDY2LjkzLTEyLjI1IDg4LjczLTI0Ljk4QzEyOC45MyAzNDIuNzYgMTY3LjAyIDM1MiAyMDggMzUyYzExNC44OCAwIDIwOC03MS42MyAyMDgtMTYwem0tMjI0IDk2di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWOTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN1YyODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptMzQ2LjAxIDEyMy45OUM1NjEuODcgMzg1Ljk2IDU3NiAzNTQuMjcgNTc2IDMyMGMwLTY2Ljk0LTUzLjQ5LTEyNC4yLTEyOS4zMy0xNDguMDcuODYgNi42IDEuMzMgMTMuMjkgMS4zMyAyMC4wNyAwIDEwNS44Ny0xMDcuNjYgMTkyLTI0MCAxOTItMTAuNzggMC0yMS4zMi0uNzctMzEuNzMtMS44OEMyMDcuOCA0MzkuNjMgMjgxLjc3IDQ4MCAzNjggNDgwYzQwLjk4IDAgNzkuMDctOS4yNCAxMTEuMjctMjQuOThDNTAxLjA3IDQ2Ny43NSA1MzEuNDIgNDgwIDU2OCA0ODBjMy4yIDAgNi4wOS0xLjkxIDcuMzQtNC44NCAxLjI3LTIuOTQuNjYtNi4zNC0xLjU1LTguNjctLjMxLS4zMy0yMi40Mi0yNC4yNC0zNS43OC01NC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21tZW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMTkyYzAtODguNC05My4xLTE2MC0yMDgtMTYwUzAgMTAzLjYgMCAxOTJjMCAzNC4zIDE0LjEgNjUuOSAzOCA5Mi0xMy40IDMwLjItMzUuNSA1NC4yLTM1LjggNTQuNS0yLjIgMi4zLTIuOCA1LjctMS41IDguN1M0LjggMzUyIDggMzUyYzM2LjYgMCA2Ni45LTEyLjMgODguNy0yNSAzMi4yIDE1LjcgNzAuMyAyNSAxMTEuMyAyNSAxMTQuOSAwIDIwOC03MS42IDIwOC0xNjB6bTEyMiAyMjBjMjMuOS0yNiAzOC01Ny43IDM4LTkyIDAtNjYuOS01My41LTEyNC4yLTEyOS4zLTE0OC4xLjkgNi42IDEuMyAxMy4zIDEuMyAyMC4xIDAgMTA1LjktMTA3LjcgMTkyLTI0MCAxOTItMTAuOCAwLTIxLjMtLjgtMzEuNy0xLjlDMjA3LjggNDM5LjYgMjgxLjggNDgwIDM2OCA0ODBjNDEgMCA3OS4xLTkuMiAxMTEuMy0yNSAyMS44IDEyLjcgNTIuMSAyNSA4OC43IDI1IDMuMiAwIDYuMS0xLjkgNy4zLTQuOCAxLjMtMi45LjctNi4zLTEuNS04LjctLjMtLjMtMjIuNC0yNC4yLTM1LjgtNTQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcGFjdERpc2MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNODggMjU2SDU2YzAtMTA1LjkgODYuMS0xOTIgMTkyLTE5MnYzMmMtODguMiAwLTE2MCA3MS44LTE2MCAxNjB6bTE2MCA5NmMtNTMgMC05Ni00My05Ni05NnM0My05NiA5Ni05NiA5NiA0MyA5NiA5Ni00MyA5Ni05NiA5NnptMC0xMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNS4zOCAyMzMuMzdjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjUgMTIuNDkgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDAgMTIuNS0xMi41IDEyLjUtMzIuNzYgMC00NS4yNS0xMi41LTEyLjQ5LTMyLjc2LTEyLjQ5LTQ1LjI1IDB6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTEyNi4xNCAxNDguMDVMMzA4LjE3IDMwMC40YTMxLjkzOCAzMS45MzggMCAwIDEtMTUuNzcgMTUuNzdsLTE0NC4zNCA2NS45N2MtMTYuNjUgNy42MS0zMy44MS05LjU1LTI2LjItMjYuMmw2NS45OC0xNDQuMzVhMzEuOTM4IDMxLjkzOCAwIDAgMSAxNS43Ny0xNS43N2wxNDQuMzQtNjUuOTdjMTYuNjUtNy42IDMzLjggOS41NSAyNi4xOSAyNi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb21wcmVzc0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00LjY4NiA0MjcuMzE0TDEwNCAzMjhsLTMyLjkyMi0zMS4wMjlDNTUuOTU4IDI4MS44NTEgNjYuNjY2IDI1NiA4OC4wNDggMjU2aDExMkMyMTMuMzAzIDI1NiAyMjQgMjY2Ljc0NSAyMjQgMjgwdjExMmMwIDIxLjM4Mi0yNS44MDMgMzIuMDktNDAuOTIyIDE2Ljk3MUwxNTIgMzc2bC05OS4zMTQgOTkuMzE0Yy02LjI0OCA2LjI0OC0xNi4zNzkgNi4yNDgtMjIuNjI3IDBMNC42ODYgNDQ5Ljk0MWMtNi4yNDgtNi4yNDgtNi4yNDgtMTYuMzc5IDAtMjIuNjI3ek00NDMuMzE0IDg0LjY4NkwzNDQgMTg0bDMyLjkyMiAzMS4wMjljMTUuMTIgMTUuMTIgNC40MTIgNDAuOTcxLTE2Ljk3IDQwLjk3MWgtMTEyQzIzNC42OTcgMjU2IDIyNCAyNDUuMjU1IDIyNCAyMzJWMTIwYzAtMjEuMzgyIDI1LjgwMy0zMi4wOSA0MC45MjItMTYuOTcxTDI5NiAxMzZsOTkuMzE0LTk5LjMxNGM2LjI0OC02LjI0OCAxNi4zNzktNi4yNDggMjIuNjI3IDBsMjUuMzczIDI1LjM3M2M2LjI0OCA2LjI0OCA2LjI0OCAxNi4zNzkgMCAyMi42Mjd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbXByZXNzQXJyb3dzQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwMCAyODhIODhjLTIxLjQgMC0zMi4xIDI1LjgtMTcgNDFsMzIuOSAzMS05OS4yIDk5LjNjLTYuMiA2LjItNi4yIDE2LjQgMCAyMi42bDI1LjQgMjUuNGM2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMEwxNTIgNDA4bDMxLjEgMzNjMTUuMSAxNS4xIDQwLjkgNC40IDQwLjktMTdWMzEyYzAtMTMuMy0xMC43LTI0LTI0LTI0em0xMTItNjRoMTEyYzIxLjQgMCAzMi4xLTI1LjkgMTctNDFsLTMzLTMxIDk5LjMtOTkuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw0ODEuOSA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDM2MCAxMDRsLTMxLjEtMzNDMzEzLjggNTUuOSAyODggNjYuNiAyODggODh2MTEyYzAgMTMuMyAxMC43IDI0IDI0IDI0em05NiAxMzZsMzMtMzEuMWMxNS4xLTE1LjEgNC40LTQwLjktMTctNDAuOUgzMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djExMmMwIDIxLjQgMjUuOSAzMi4xIDQxIDE3bDMxLTMyLjkgOTkuMyA5OS4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDI1LjQtMjUuNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNkw0MDggMzYwek0xODMgNzEuMUwxNTIgMTA0IDUyLjcgNC43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEw0LjcgMzAuMWMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZMMTA0IDE1MmwtMzMgMzEuMUM1NS45IDE5OC4yIDY2LjYgMjI0IDg4IDIyNGgxMTJjMTMuMyAwIDI0LTEwLjcgMjQtMjRWODhjMC0yMS4zLTI1LjktMzItNDEtMTYuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29tcHJlc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM2IDE5MkgzMTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjQ0YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2ODRoODRjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMnptLTI3Ni0yNFY0NGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2ODRIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTI0YzEzLjMgMCAyNC0xMC43IDI0LTI0em0wIDMwMFYzNDRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoODR2ODRjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptMTkyIDB2LTg0aDg0YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEySDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTI0YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNvbmNpZXJnZUJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDEzMC41NFYxMTJoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNnYxOC41NEMxMTUuNDkgMTQ2LjExIDMyIDIzOS4xOCAzMiAzNTJoNDQ4YzAtMTEyLjgyLTgzLjQ5LTIwNS44OS0xOTItMjIxLjQ2ek00OTYgMzg0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb29raWVCaXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC41MiAyNTUuODJjLTY5Ljk3LS44NS0xMjYuNDctNTcuNjktMTI2LjQ3LTEyNy44Ni03MC4xNyAwLTEyNy01Ni40OS0xMjcuODYtMTI2LjQ1LTI3LjI2LTQuMTQtNTUuMTMuMy03OS43MiAxMi44MmwtNjkuMTMgMzUuMjJhMTMyLjIyMSAxMzIuMjIxIDAgMCAwLTU3Ljc5IDU3LjgxbC0zNS4xIDY4Ljg4YTEzMi42NDUgMTMyLjY0NSAwIDAgMC0xMi44MiA4MC45NWwxMi4wOCA3Ni4yN2ExMzIuNTIxIDEzMi41MjEgMCAwIDAgMzcuMTYgNzIuOTZsNTQuNzcgNTQuNzZhMTMyLjAzNiAxMzIuMDM2IDAgMCAwIDcyLjcxIDM3LjA2bDc2LjcxIDEyLjE1YzI3LjUxIDQuMzYgNTUuNy0uMTEgODAuNTMtMTIuNzZsNjkuMTMtMzUuMjFhMTMyLjI3MyAxMzIuMjczIDAgMCAwIDU3Ljc5LTU3LjgxbDM1LjEtNjguODhjMTIuNTYtMjQuNjQgMTcuMDEtNTIuNTggMTIuOTEtNzkuOTF6TTE3NiAzNjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTMyLTE2MGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTYwIDEyOGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29va2llIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC4zNyAyNTQuNzlsLTEyLjA4LTc2LjI2YTEzMi40OTMgMTMyLjQ5MyAwIDAgMC0zNy4xNi03Mi45NWwtNTQuNzYtNTQuNzVjLTE5LjczLTE5LjcyLTQ1LjE4LTMyLjctNzIuNzEtMzcuMDVsLTc2LjctMTIuMTVjLTI3LjUxLTQuMzYtNTUuNjkuMTEtODAuNTIgMTIuNzZMMTA3LjMyIDQ5LjZhMTMyLjI1IDEzMi4yNSAwIDAgMC01Ny43OSA1Ny44bC0zNS4xIDY4Ljg4YTEzMi42MDIgMTMyLjYwMiAwIDAgMC0xMi44MiA4MC45NGwxMi4wOCA3Ni4yN2ExMzIuNDkzIDEzMi40OTMgMCAwIDAgMzcuMTYgNzIuOTVsNTQuNzYgNTQuNzVhMTMyLjA4NyAxMzIuMDg3IDAgMCAwIDcyLjcxIDM3LjA1bDc2LjcgMTIuMTRjMjcuNTEgNC4zNiA1NS42OS0uMTEgODAuNTItMTIuNzVsNjkuMTItMzUuMjFhMTMyLjMwMiAxMzIuMzAyIDAgMCAwIDU3Ljc5LTU3LjhsMzUuMS02OC44N2MxMi43MS0yNC45NiAxNy4yLTUzLjMgMTIuODItODAuOTZ6TTE3NiAzNjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTMyLTE2MGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTYwIDEyOGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ29weSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDQ4djQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjEyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoNzJ2Mjk2YzAgMzAuODc5IDI1LjEyMSA1NiA1NiA1NmgxNjh6bTAtMzQ0VjBIMTUyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MzY4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjEyOEgzNDRjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0xMjAuOTcxLTMxLjAyOUwzNzUuMDI5IDcuMDI5QTI0IDI0IDAgMCAwIDM1OC4wNTkgMEgzNTJ2OTZoOTZ2LTYuMDU5YTI0IDI0IDAgMCAwLTcuMDI5LTE2Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0xMTcuMTM0IDM0Ni43NTNjLTEuNTkyIDEuODY3LTM5Ljc3NiA0NS43MzEtMTA5Ljg1MSA0NS43MzEtODQuNjkyIDAtMTQ0LjQ4NC02My4yNi0xNDQuNDg0LTE0NS41NjcgMC04MS4zMDMgNjIuMDA0LTE0My40MDEgMTQzLjc2Mi0xNDMuNDAxIDY2Ljk1NyAwIDEwMS45NjUgMzcuMzE1IDEwMy40MjIgMzguOTA0YTEyIDEyIDAgMCAxIDEuMjM4IDE0LjYyM2wtMjIuMzggMzQuNjU1Yy00LjA0OSA2LjI2Ny0xMi43NzQgNy4zNTEtMTguMjM0IDIuMjk1LS4yMzMtLjIxNC0yNi41MjktMjMuODgtNjEuODgtMjMuODgtNDYuMTE2IDAtNzMuOTE2IDMzLjU3NS03My45MTYgNzYuMDgyIDAgMzkuNjAyIDI1LjUxNCA3OS42OTIgNzQuMjc3IDc5LjY5MiAzOC42OTcgMCA2NS4yOC0yOC4zMzggNjUuNTQ0LTI4LjYyNSA1LjEzMi01LjU2NSAxNC4wNTktNS4wMzMgMTguNTA4IDEuMDUzbDI0LjU0NyAzMy41NzJhMTIuMDAxIDEyLjAwMSAwIDAgMS0uNTUzIDE0Ljg2NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ291Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDIyNHY2NGgzMjB2LTY0YzAtMzUuMyAyOC43LTY0IDY0LTY0aDMyYzAtNTMtNDMtOTYtOTYtOTZIMTYwYy01MyAwLTk2IDQzLTk2IDk2aDMyYzM1LjMgMCA2NCAyOC43IDY0IDY0em00MTYtMzJoLTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NkgxMjh2LTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMySDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDIzLjYgMTMgNDQgMzIgNTUuMVY0MzJjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtMTZoMzg0djE2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZWMzExLjFjMTktMTEuMSAzMi0zMS41IDMyLTU1LjEgMC0zNS4zLTI4LjctNjQtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUNyZWRpdENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI1NkgwdjE3NnptMTkyLTY4YzAtNi42IDUuNC0xMiAxMi0xMmgxMzZjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkgyMDRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6bS0xMjggMGMwLTYuNiA1LjQtMTIgMTItMTJoNzJjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkg3NmMtNi42IDAtMTItNS40LTEyLTEydi00MHpNNTc2IDgwdjQ4SDBWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoNDgwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9wQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAzNTJoLTQwVjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJIMTkydjk2aDE2MHYzMjhjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg0OGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00MGg0MGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0ek0xNjAgMjRjMC0xMy4yNi0xMC43NS0yNC0yNC0yNEg4OEM3NC43NSAwIDY0IDEwLjc0IDY0IDI0djQwSDI0QzEwLjc1IDY0IDAgNzQuNzQgMCA4OHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwdjI1NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDIyNHYtOTZIMTYwVjI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OCAzNTJoLTQwVjEwOS4yNWw1OS4zMS01OS4zMWM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDQ4NC42OSA0LjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwTDQwMi43NSA2NEgxOTJ2OTZoMTE0Ljc1TDE2MCAzMDYuNzVWMjRjMC0xMy4yNi0xMC43NS0yNC0yNC0yNEg4OEM3NC43NSAwIDY0IDEwLjc0IDY0IDI0djQwSDI0QzEwLjc1IDY0IDAgNzQuNzQgMCA4OHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwdjI2NGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDIzMnYtOTZIMjA1LjI1TDM1MiAyMDUuMjVWNDg4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDhjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDBoNDBjMTMuMjUgMCAyNC0xMC43NSAyNC0yNHYtNDhjMC0xMy4yNi0xMC43NS0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3Jvc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzUyIDEyOGgtOTZWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NnYyMjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI1Nmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcm9zc2hhaXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMCAyMjRoLTMwLjM2NEM0NTUuNzI0IDEzMC4zMjUgMzgxLjY3NSA1Ni4yNzYgMjg4IDQyLjM2NFYxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYzMC4zNjRDMTMwLjMyNSA1Ni4yNzYgNTYuMjc2IDEzMC4zMjUgNDIuMzY0IDIyNEgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDMwLjM2NEM1Ni4yNzYgMzgxLjY3NSAxMzAuMzI1IDQ1NS43MjQgMjI0IDQ2OS42MzZWNTAwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMzAuMzY0QzM4MS42NzUgNDU1LjcyNCA0NTUuNzI0IDM4MS42NzUgNDY5LjYzNiAyODhINTAwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6TTI4OCA0MDQuNjM0VjM2NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MC42MzRDMTY1LjgyNiAzOTIuMjMyIDExOS43ODMgMzQ2LjI0MyAxMDcuMzY2IDI4OEgxNDhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDAuNjM0QzExOS43NjggMTY1LjgyNiAxNjUuNzU3IDExOS43ODMgMjI0IDEwNy4zNjZWMTQ4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDAuNjM0QzM0Ni4xNzQgMTE5Ljc2OCAzOTIuMjE3IDE2NS43NTcgNDA0LjYzNCAyMjRIMzY0Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDAuNjM0QzM5Mi4yMzIgMzQ2LjE3NCAzNDYuMjQzIDM5Mi4yMTcgMjg4IDQwNC42MzR6TTI4OCAyNTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMycy0zMi0xNC4zMjctMzItMzJjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3JvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMzJoLTE2LjM2QzUxMy4wNCAxMi42OCA0OTAuMDkgMCA0NjQgMGMtNDQuMTggMC04MCAzNS44Mi04MCA4MHYyMC45OEwxMi4wOSAzOTMuNTdBMzAuMjE2IDMwLjIxNiAwIDAgMCAwIDQxNy43NGMwIDIyLjQ2IDIzLjY0IDM3LjA3IDQzLjczIDI3LjAzTDE2NS4yNyAzODRoOTYuNDlsNDQuNDEgMTIwLjFjMi4yNyA2LjIzIDkuMTUgOS40NCAxNS4zOCA3LjE3bDIyLjU1LTguMjFjNi4yMy0yLjI3IDkuNDQtOS4xNSA3LjE3LTE1LjM4TDMxMi45NCAzODRIMzUyYzEuOTEgMCAzLjc2LS4yMyA1LjY2LS4yOWw0NC41MSAxMjAuMzhjMi4yNyA2LjIzIDkuMTUgOS40NCAxNS4zOCA3LjE3bDIyLjU1LTguMjFjNi4yMy0yLjI3IDkuNDQtOS4xNSA3LjE3LTE1LjM4bC00MS4yNC0xMTEuNTNDNDg1Ljc0IDM1Mi44IDU0NCAyNzkuMjYgNTQ0IDE5MnYtODBsOTYtMTZjMC0zNS4zNS00Mi45OC02NC05Ni02NHptLTgwIDcyYy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3Jvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDQ0OEgxMTJjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNDE2YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2em02NC0zMjBjLTI2LjUgMC00OCAyMS41LTQ4IDQ4IDAgNy4xIDEuNiAxMy43IDQuNCAxOS44TDQ3NiAyMzkuMmMtMTUuNCA5LjItMzUuMyA0LTQ0LjItMTEuNkwzNTAuMyA4NUMzNjEgNzYuMiAzNjggNjMgMzY4IDQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4cy00OCAyMS41LTQ4IDQ4YzAgMTUgNyAyOC4yIDE3LjcgMzdsLTgxLjUgMTQyLjZjLTguOSAxNS42LTI4LjkgMjAuOC00NC4yIDExLjZsLTcyLjMtNDMuNGMyLjctNiA0LjQtMTIuNyA0LjQtMTkuOCAwLTI2LjUtMjEuNS00OC00OC00OFMwIDE0OS41IDAgMTc2czIxLjUgNDggNDggNDhjMi42IDAgNS4yLS40IDcuNy0uOEwxMjggNDE2aDM4NGw3Mi4zLTE5Mi44YzIuNS40IDUuMS44IDcuNy44IDI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDcnV0Y2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA3LjMxIDE4NS43MWwtMTgxLTE4MWExNiAxNiAwIDAgMC0yMi42MiAwTDI4MSAyNy4zMWExNiAxNiAwIDAgMCAwIDIyLjYzbDE4MSAxODFhMTYgMTYgMCAwIDAgMjIuNjMgMGwyMi42Mi0yMi42M2ExNiAxNiAwIDAgMCAuMDYtMjIuNnptLTE3OS41NCA2Ni40MWwtNjcuODktNjcuODkgNTUuMS01NS4xLTQ1LjI1LTQ1LjI1LTEwOS42NyAxMDkuNjdhOTYuMDggOTYuMDggMCAwIDAtMjUuNjcgNDYuMjlMMTA2LjY1IDM2MC4xbC0xMDIgMTAyYTE2IDE2IDAgMCAwIDAgMjIuNjNsMjIuNjIgMjIuNjJhMTYgMTYgMCAwIDAgMjIuNjMgMGwxMDItMTAyIDEyMC4yNS0yNy43NWE5NS44OCA5NS44OCAwIDAgMCA0Ni4yOS0yNS42NWwxMDkuNjgtMTA5LjY4TDM4Mi44NyAxOTd6bS01NC41NyA1NC41N2EzMiAzMiAwIDAgMS0xNS40NSA4LjU0bC03OS4zIDE4LjMyIDE4LjMtNzkuM2EzMi4yMiAzMi4yMiAwIDAgMSA4LjU2LTE1LjQ1bDkuMzEtOS4zMSA2Ny44OSA2Ny44OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3ViZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuMSA2LjNsLTIwOCA3OGMtMTguNyA3LTMxLjEgMjUtMzEuMSA0NXYyMjUuMWMwIDE4LjIgMTAuMyAzNC44IDI2LjUgNDIuOWwyMDggMTA0YzEzLjUgNi44IDI5LjQgNi44IDQyLjkgMGwyMDgtMTA0YzE2LjMtOC4xIDI2LjUtMjQuOCAyNi41LTQyLjlWMTI5LjNjMC0yMC0xMi40LTM3LjktMzEuMS00NC45bC0yMDgtNzhDMjYyIDIuMiAyNTAgMi4yIDIzOS4xIDYuM3pNMjU2IDY4LjRsMTkyIDcydjEuMWwtMTkyIDc4LTE5Mi03OHYtMS4xbDE5Mi03MnptMzIgMzU2VjI3NS41bDE2MC02NXYxMzMuOWwtMTYwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFDdWJlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODguNiAyNTAuMkwzOTIgMjE0VjEwNS41YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43bC0xMDAtMzcuNWMtOC4xLTMuMS0xNy4xLTMuMS0yNS4zIDBsLTEwMCAzNy41Yy0xNC4xIDUuMy0yMy40IDE4LjctMjMuNCAzMy43VjIxNGwtOTYuNiAzNi4yQzkuMyAyNTUuNSAwIDI2OC45IDAgMjgzLjlWMzk0YzAgMTMuNiA3LjcgMjYuMSAxOS45IDMyLjJsMTAwIDUwYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDMuOS01MiAxMDMuOSA1MmMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAwLTUwYzEyLjItNi4xIDE5LjktMTguNiAxOS45LTMyLjJWMjgzLjljMC0xNS05LjMtMjguNC0yMy40LTMzLjd6TTM1OCAyMTQuOGwtODUgMzEuOXYtNjguMmw4NS0zN3Y3My4zek0xNTQgMTA0LjFsMTAyLTM4LjIgMTAyIDM4LjJ2LjZsLTEwMiA0MS40LTEwMi00MS40di0uNnptODQgMjkxLjFsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42em0yNDAgMTEybC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhQ3V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3OC4wNiAyNTZMNDQ0LjQ4IDg5LjU3YzQuNjktNC42OSA0LjY5LTEyLjI5IDAtMTYuOTctMzIuOC0zMi44LTg1Ljk5LTMyLjgtMTE4Ljc5IDBMMjEwLjE4IDE4OC4xMmwtMjQuODYtMjQuODZjNC4zMS0xMC45MiA2LjY4LTIyLjgxIDYuNjgtMzUuMjYgMC01My4wMi00Mi45OC05Ni05Ni05NlMwIDc0Ljk4IDAgMTI4czQyLjk4IDk2IDk2IDk2YzQuNTQgMCA4Ljk5LS4zMiAxMy4zNi0uOTNMMTQyLjI5IDI1NmwtMzIuOTMgMzIuOTNjLTQuMzctLjYxLTguODMtLjkzLTEzLjM2LS45My01My4wMiAwLTk2IDQyLjk4LTk2IDk2czQyLjk4IDk2IDk2IDk2IDk2LTQyLjk4IDk2LTk2YzAtMTIuNDUtMi4zNy0yNC4zNC02LjY4LTM1LjI2bDI0Ljg2LTI0Ljg2TDMyNS42OSA0MzkuNGMzMi44IDMyLjggODUuOTkgMzIuOCAxMTguNzkgMCA0LjY5LTQuNjggNC42OS0xMi4yOCAwLTE2Ljk3TDI3OC4wNiAyNTZ6TTk2IDE2MGMtMTcuNjQgMC0zMi0xNC4zNi0zMi0zMnMxNC4zNi0zMiAzMi0zMiAzMiAxNC4zNiAzMiAzMi0xNC4zNiAzMi0zMiAzMnptMCAyNTZjLTE3LjY0IDAtMzItMTQuMzYtMzItMzJzMTQuMzYtMzIgMzItMzIgMzIgMTQuMzYgMzIgMzItMTQuMzYgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURhdGFiYXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA3My4xNDN2NDUuNzE0QzQ0OCAxNTkuMTQzIDM0Ny42NjcgMTkyIDIyNCAxOTJTMCAxNTkuMTQzIDAgMTE4Ljg1N1Y3My4xNDNDMCAzMi44NTcgMTAwLjMzMyAwIDIyNCAwczIyNCAzMi44NTcgMjI0IDczLjE0M3pNNDQ4IDE3NnYxMDIuODU3QzQ0OCAzMTkuMTQzIDM0Ny42NjcgMzUyIDIyNCAzNTJTMCAzMTkuMTQzIDAgMjc4Ljg1N1YxNzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMjA5LjE0MyA0NDggMTc2em0wIDE2MHYxMDIuODU3QzQ0OCA0NzkuMTQzIDM0Ny42NjcgNTEyIDIyNCA1MTJTMCA0NzkuMTQzIDAgNDM4Ljg1N1YzMzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMzY5LjE0MyA0NDggMzM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZWFmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNiAyNjBjMCAxNS40NjQtMTIuNTM2IDI4LTI4IDI4cy0yOC0xMi41MzYtMjgtMjhjMC00NC4xMTIgMzUuODg4LTgwIDgwLTgwczgwIDM1Ljg4OCA4MCA4MGMwIDE1LjQ2NC0xMi41MzYgMjgtMjggMjhzLTI4LTEyLjUzNi0yOC0yOGMwLTEzLjIzNC0xMC43NjctMjQtMjQtMjRzLTI0IDEwLjc2Ni0yNCAyNHptMjQtMTc2Yy05Ny4wNDcgMC0xNzYgNzguOTUzLTE3NiAxNzYgMCAxNS40NjQgMTIuNTM2IDI4IDI4IDI4czI4LTEyLjUzNiAyOC0yOGMwLTY2LjE2OCA1My44MzItMTIwIDEyMC0xMjBzMTIwIDUzLjgzMiAxMjAgMTIwYzAgNzUuMTY0LTcxLjAwOSA3MC4zMTEtNzEuOTk3IDE0My42MjJMMjg4IDQwNGMwIDI4LjY3My0yMy4zMjcgNTItNTIgNTItMTUuNDY0IDAtMjggMTIuNTM2LTI4IDI4czEyLjUzNiAyOCAyOCAyOGM1OS40NzUgMCAxMDcuODc2LTQ4LjMyOCAxMDgtMTA3Ljc3NC41OTUtMzQuNDI4IDcyLTQ4LjI0IDcyLTE0NC4yMjYgMC05Ny4wNDctNzguOTUzLTE3Ni0xNzYtMTc2em0yNjguNDg1LTUyLjIwMUw0ODAuMiAzLjUxNWMtNC42ODctNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDM3Ni4yIDkwLjU0NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDI4LjI4NSAyOC4yODVjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3IDBsODcuMDMtODcuMDI5YzQuNjg3LTQuNjg4IDQuNjg3LTEyLjI4NiAwLTE2Ljk3MnpNMTY4Ljk3IDMxNC43NDVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NyAwTDMuNTE1IDQ2My4yM2MtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxTDMxLjggNTA4LjQ4NWM0LjY4NyA0LjY4NiAxMi4yODQgNC42ODYgMTYuOTcxIDBMMTk3LjI1NiAzNjBjNC42ODYtNC42ODYgNC42ODYtMTIuMjg0IDAtMTYuOTcxbC0yOC4yODYtMjguMjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZW1vY3JhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzcuMyAyNTYuOWwtMTkuNi0yOS40Yy0yOC4yLTQyLjMtNzUuMy02Ny41LTEyNi4xLTY3LjVIMjU2bC04MS4yLTgxLjJjMjAuMS0yMC4xIDIyLjYtNTEuMSA3LjUtNzMuOS0zLjQtNS4yLTEwLjgtNS45LTE1LjItMS41bC00MS44IDQxLjhMODIuNCAyLjRjLTMuNi0zLjYtOS42LTMtMTIuNCAxLjItMTIuMyAxOC42LTEwLjMgNDQgNi4xIDYwLjQgMy4zIDMuMyA3LjMgNS4zIDExLjMgNy41LTIuMiAxLjctNC43IDMuMS02LjQgNS40TDYuNCAxNzYuMmMtNy4zIDkuNy04LjQgMjIuNy0zIDMzLjVsMTQuMyAyOC42YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdoMzFjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRMMTM4IDIxMmw1NCAxMDhoMzUydi03Ny44YzE2LjIgMTIuMiAxOC4zIDE3LjYgNDAuMSA1MC4zIDQuOSA3LjQgMTQuOCA5LjMgMjIuMiA0LjRsMjYuNi0xNy43YzcuMy01IDkuMy0xNC45IDQuNC0yMi4zem0tMzQxLjEtMTMuNmwtMTYuNSAxNi4xIDMuOSAyMi43Yy43IDQuMS0zLjYgNy4yLTcuMiA1LjNMMjU2IDI3Ni43bC0yMC40IDEwLjdjLTMuNiAxLjktNy45LTEuMi03LjItNS4zbDMuOS0yMi43LTE2LjUtMTYuMWMtMy0yLjktMS4zLTcuOSAyLjgtOC41bDIyLjgtMy4zIDEwLjItMjAuN2MxLjgtMy43IDcuMS0zLjcgOSAwbDEwLjIgMjAuNyAyMi44IDMuM2M0IC42IDUuNiA1LjYgMi42IDguNXptMTEyIDBsLTE2LjUgMTYuMSAzLjkgMjIuN2MuNyA0LjEtMy42IDcuMi03LjIgNS4zTDM2OCAyNzYuN2wtMjAuNCAxMC43Yy0zLjYgMS45LTcuOS0xLjItNy4yLTUuM2wzLjktMjIuNy0xNi41LTE2LjFjLTMtMi45LTEuMy03LjkgMi44LTguNWwyMi44LTMuMyAxMC4yLTIwLjdjMS44LTMuNyA3LjEtMy43IDkgMGwxMC4yIDIwLjcgMjIuOCAzLjNjNCAuNiA1LjYgNS42IDIuNiA4LjV6bTExMiAwbC0xNi41IDE2LjEgMy45IDIyLjdjLjcgNC4xLTMuNiA3LjItNy4yIDUuM0w0ODAgMjc2LjdsLTIwLjQgMTAuN2MtMy42IDEuOS03LjktMS4yLTcuMi01LjNsMy45LTIyLjctMTYuNS0xNi4xYy0zLTIuOS0xLjMtNy45IDIuOC04LjVsMjIuOC0zLjMgMTAuMi0yMC43YzEuOC0zLjcgNy4xLTMuNyA5IDBsMTAuMiAyMC43IDIyLjggMy4zYzQgLjYgNS42IDUuNiAyLjYgOC41ek0xOTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZ2LTgwaDE2MHY4MGMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2VjM1MkgxOTJ2MTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEZXNrdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHYzMjBjMCAyNi41IDIxLjUgNDggNDggNDhoMTkybC0xNiA0OGgtNzJjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjRoMjcyYzEzLjMgMCAyNC0xMC43IDI0LTI0cy0xMC43LTI0LTI0LTI0aC03MmwtMTYtNDhoMTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTYgMzUySDY0VjY0aDQ0OHYyODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURoYXJtYWNoYWtyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTUgMjI1LjA2bC0xNy4yMiAxLjA4Yy01LjI3LTM5LjQ5LTIwLjc5LTc1LjY0LTQzLjg2LTEwNS44NGwxMi45NS0xMS40M2M2LjkyLTYuMTEgNy4yNS0xNi43OS43My0yMy4zMUw0MjYuNDQgNjQuNGMtNi41My02LjUzLTE3LjIxLTYuMTktMjMuMzEuNzNMMzkxLjcgNzguMDdjLTMwLjItMjMuMDYtNjYuMzUtMzguNTgtMTA1LjgzLTQzLjg2TDI4Ni45NCAxN2MuNTgtOS4yMS02Ljc0LTE3LTE1Ljk3LTE3aC0yOS45NGMtOS4yMyAwLTE2LjU0IDcuNzktMTUuOTcgMTdsMS4wOCAxNy4yMmMtMzkuNDkgNS4yNy03NS42NCAyMC43OS0xMDUuODMgNDMuODZsLTExLjQzLTEyLjk1Yy02LjExLTYuOTItMTYuNzktNy4yNS0yMy4zMS0uNzNMNjQuNCA4NS41NmMtNi41MyA2LjUzLTYuMTkgMTcuMjEuNzMgMjMuMzFsMTIuOTUgMTEuNDNjLTIzLjA2IDMwLjItMzguNTggNjYuMzUtNDMuODYgMTA1Ljg0TDE3IDIyNS4wNmMtOS4yMS0uNTgtMTcgNi43NC0xNyAxNS45N3YyOS45NGMwIDkuMjMgNy43OSAxNi41NCAxNyAxNS45N2wxNy4yMi0xLjA4YzUuMjcgMzkuNDkgMjAuNzkgNzUuNjQgNDMuODYgMTA1LjgzbC0xMi45NSAxMS40M2MtNi45MiA2LjExLTcuMjUgMTYuNzktLjczIDIzLjMxbDIxLjE3IDIxLjE3YzYuNTMgNi41MyAxNy4yMSA2LjE5IDIzLjMxLS43M2wxMS40My0xMi45NWMzMC4yIDIzLjA2IDY2LjM1IDM4LjU4IDEwNS44NCA0My44NkwyMjUuMDYgNDk1Yy0uNTggOS4yMSA2Ljc0IDE3IDE1Ljk3IDE3aDI5Ljk0YzkuMjMgMCAxNi41NC03Ljc5IDE1Ljk3LTE3bC0xLjA4LTE3LjIyYzM5LjQ5LTUuMjcgNzUuNjQtMjAuNzkgMTA1Ljg0LTQzLjg2bDExLjQzIDEyLjk1YzYuMTEgNi45MiAxNi43OSA3LjI1IDIzLjMxLjczbDIxLjE3LTIxLjE3YzYuNTMtNi41MyA2LjE5LTE3LjIxLS43My0yMy4zMWwtMTIuOTUtMTEuNDNjMjMuMDYtMzAuMiAzOC41OC02Ni4zNSA0My44Ni0xMDUuODNsMTcuMjIgMS4wOGM5LjIxLjU4IDE3LTYuNzQgMTctMTUuOTd2LTI5Ljk0Yy0uMDEtOS4yMy03LjgtMTYuNTQtMTcuMDEtMTUuOTd6TTI4MS44NCA5OC42MWMyNC44MSA0LjA3IDQ3LjYzIDEzLjY2IDY3LjIzIDI3Ljc4bC00Mi42MiA0OC4yOWMtOC43My01LjQ0LTE4LjMyLTkuNTQtMjguNjItMTEuOTVsNC4wMS02NC4xMnptLTUxLjY4IDBsNC4wMSA2NC4xMmMtMTAuMjkgMi40MS0xOS44OSA2LjUyLTI4LjYyIDExLjk1bC00Mi42Mi00OC4yOWMxOS42LTE0LjEyIDQyLjQyLTIzLjcxIDY3LjIzLTI3Ljc4em0tMTAzLjc3IDY0LjMzbDQ4LjMgNDIuNjFjLTUuNDQgOC43My05LjU0IDE4LjMzLTExLjk2IDI4LjYybC02NC4xMi00LjAxYzQuMDctMjQuODEgMTMuNjYtNDcuNjIgMjcuNzgtNjcuMjJ6bS0yNy43OCAxMTguOWw2NC4xMi00LjAxYzIuNDEgMTAuMjkgNi41MiAxOS44OSAxMS45NSAyOC42MmwtNDguMjkgNDIuNjJjLTE0LjEyLTE5LjYtMjMuNzEtNDIuNDItMjcuNzgtNjcuMjN6bTEzMS41NSAxMzEuNTVjLTI0LjgxLTQuMDctNDcuNjMtMTMuNjYtNjcuMjMtMjcuNzhsNDIuNjEtNDguM2M4LjczIDUuNDQgMTguMzMgOS41NCAyOC42MiAxMS45NmwtNCA2NC4xMnpNMjU2IDI4OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjUuODQgMTI1LjM5bC00LjAxLTY0LjEyYzEwLjI5LTIuNDEgMTkuODktNi41MiAyOC42Mi0xMS45Nmw0Mi42MSA0OC4zYy0xOS42IDE0LjEyLTQyLjQxIDIzLjcxLTY3LjIyIDI3Ljc4em0xMDMuNzctNjQuMzNsLTQ4LjI5LTQyLjYyYzUuNDQtOC43MyA5LjU0LTE4LjMyIDExLjk1LTI4LjYybDY0LjEyIDQuMDFjLTQuMDcgMjQuODItMTMuNjYgNDcuNjQtMjcuNzggNjcuMjN6bS0zNi4zNC0xMTQuODljLTIuNDEtMTAuMjktNi41Mi0xOS44OS0xMS45Ni0yOC42Mmw0OC4zLTQyLjYxYzE0LjEyIDE5LjYgMjMuNzEgNDIuNDIgMjcuNzggNjcuMjNsLTY0LjEyIDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpYWdub3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjU2YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6bS0xNzYtODBjNDguNSAwIDg4LTM5LjUgODgtODhTMzY4LjUgMCAzMjAgMHMtODggMzkuNS04OCA4OCAzOS41IDg4IDg4IDg4ek01OS44IDM2NGMxMC4yIDE1LjMgMjkuMyAxNy44IDQyLjkgOS44IDE2LjItOS42IDU2LjItMzEuNyAxMDUuMy00OC42VjQxNmgyMjR2LTkwLjdjNDkuMSAxNi44IDg5LjEgMzkgMTA1LjMgNDguNiAxMy42IDggMzIuNyA1LjMgNDIuOS05LjhsMTcuOC0yNi43YzguOC0xMy4yIDcuNi0zNC42LTEwLTQ1LjEtMTEuOS03LjEtMjkuNy0xNy01MS4xLTI3LjQtMjguMSA0Ni4xLTk5LjQgMTcuOC04Ny43LTM1LjFDNDA5LjMgMjE3LjIgMzY1LjEgMjA4IDMyMCAyMDhjLTU3IDAtMTEyLjkgMTQuNS0xNjAgMzIuMi0uMiA0MC4yLTQ3LjYgNjMuMy03OS4yIDM2LTExLjIgNi0yMS4zIDExLjYtMjguNyAxNi0xNy42IDEwLjUtMTguOCAzMS44LTEwIDQ1LjFMNTkuOCAzNjR6TTM2OCAzNDRjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0tOTYtOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0tMTYwIDhjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnptNTEyIDE5MkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg2MDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VEMjAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA2Ljc1IDIxNS4wNkwxLjIgMzcwLjk1Yy0zLjA4IDUgLjEgMTEuNSA1LjkzIDEyLjE0bDIwOC4yNiAyMi4wNy0xMDguNjQtMTkwLjF6TTcuNDEgMzE1LjQzTDgyLjcgMTkzLjA4IDYuMDYgMTQ3LjFjLTIuNjctMS42LTYuMDYuMzItNi4wNiAzLjQzdjE2Mi44MWMwIDQuMDMgNS4yOSA1LjUzIDcuNDEgMi4wOXpNMTguMjUgNDIzLjZsMTk0LjQgODcuNjZjNS4zIDIuNDUgMTEuMzUtMS40MyAxMS4zNS03LjI2di02NS42N2wtMjAzLjU1LTIyLjNjLTQuNDUtLjUtNi4yMyA1LjU5LTIuMiA3LjU3em04MS4yMi0yNTcuNzhMMTc5LjQgMjIuODhjNC4zNC03LjA2LTMuNTktMTUuMjUtMTAuNzgtMTEuMTRMMTcuODEgMTEwLjM1Yy0yLjQ3IDEuNjItMi4zOSA1LjI2LjEzIDYuNzhsODEuNTMgNDguNjl6TTI0MCAxNzZoMTA5LjIxTDI1My42MyA3LjYyQzI1MC41IDIuNTQgMjQ1LjI1IDAgMjQwIDBzLTEwLjUgMi41NC0xMy42MyA3LjYyTDEzMC43OSAxNzZIMjQwem0yMzMuOTQtMjguOWwtNzYuNjQgNDUuOTkgNzUuMjkgMTIyLjM1YzIuMTEgMy40NCA3LjQxIDEuOTQgNy40MS0yLjFWMTUwLjUzYzAtMy4xMS0zLjM5LTUuMDMtNi4wNi0zLjQzem0tOTMuNDEgMTguNzJsODEuNTMtNDguN2MyLjUzLTEuNTIgMi42LTUuMTYuMTMtNi43OGwtMTUwLjgxLTk4LjZjLTcuMTktNC4xMS0xNS4xMiA0LjA4LTEwLjc4IDExLjE0bDc5LjkzIDE0Mi45NHptNzkuMDIgMjUwLjIxTDI1NiA0MzguMzJ2NjUuNjdjMCA1Ljg0IDYuMDUgOS43MSAxMS4zNSA3LjI2bDE5NC40LTg3LjY2YzQuMDMtMS45NyAyLjI1LTguMDYtMi4yLTcuNTZ6bS04Ni4zLTIwMC45N2wtMTA4LjYzIDE5MC4xIDIwOC4yNi0yMi4wN2M1LjgzLS42NSA5LjAxLTcuMTQgNS45My0xMi4xNEwzNzMuMjUgMjE1LjA2ek0yNDAgMjA4SDEzOS41N0wyNDAgMzgzLjc1IDM0MC40MyAyMDhIMjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlRDYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDIyLjE5IDEwOS45NUwyNTYuMjEgOS4wN2MtMTkuOTEtMTIuMS00NC41Mi0xMi4xLTY0LjQzIDBMMjUuODEgMTA5Ljk1Yy01LjMyIDMuMjMtNS4yOSAxMS4yNy4wNiAxNC40NkwyMjQgMjQyLjU1bDE5OC4xNC0xMTguMTRjNS4zNS0zLjE5IDUuMzgtMTEuMjIuMDUtMTQuNDZ6bTEzLjg0IDQ0LjYzTDI0MCAyNzEuNDZ2MjIzLjgyYzAgMTIuODggMTMuMzkgMjAuOTEgMjQuMDUgMTQuNDNsMTUyLjE2LTkyLjQ4YzE5LjY4LTExLjk2IDMxLjc5LTMzLjk0IDMxLjc5LTU3Ljd2LTE5Ny43YzAtNi40MS02LjY0LTEwLjQzLTExLjk3LTcuMjV6TTAgMTYxLjgzdjE5Ny43YzAgMjMuNzcgMTIuMTEgNDUuNzQgMzEuNzkgNTcuN2wxNTIuMTYgOTIuNDdjMTAuNjcgNi40OCAyNC4wNS0xLjU0IDI0LjA1LTE0LjQzVjI3MS40NkwxMS45NyAxNTQuNThDNi42NCAxNTEuNCAwIDE1NS40MiAwIDE2MS44M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUZpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZUZvdXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTkyIDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURpY2VPbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0yMjQgMjg4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlU2l4IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC05NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC05NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTkyIDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC05NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC05NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZVRocmVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWNlVHdvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTkyIDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGljZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTIgMTkySDQ3My4yNmMxMi42OSAyOS41OSA3LjEyIDY1LjItMTcgODkuMzJMMzIwIDQxNy41OFY0NjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjRjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyNDBjMC0yNi41MS0yMS40OS00OC00OC00OHpNNDgwIDM3NmMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bS00Ni4zNy0xODYuN0wyNTguNyAxNC4zN2MtMTkuMTYtMTkuMTYtNTAuMjMtMTkuMTYtNjkuMzkgMEwxNC4zNyAxODkuM2MtMTkuMTYgMTkuMTYtMTkuMTYgNTAuMjMgMCA2OS4zOUwxODkuMyA0MzMuNjNjMTkuMTYgMTkuMTYgNTAuMjMgMTkuMTYgNjkuMzkgMEw0MzMuNjMgMjU4LjdjMTkuMTYtMTkuMTcgMTkuMTYtNTAuMjQgMC02OS40ek05NiAyNDhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0xMjggMTI4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptMC0xMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0wLTEyOGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTEyOCAxMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEaWdpdGFsVGFjaG9ncmFwaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggOTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MjU2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTI4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTMwNCAzNTJjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di04YzAtNC40MiAzLjU4LTggOC04aDIyNGM0LjQyIDAgOCAzLjU4IDggOHY4ek03MiAyODh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDgwYy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNDAtNjRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di00OGMwLTguODQgNy4xNi0xNiAxNi0xNmgyMDhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NDh6bTI3MiAxMjhjMCA0LjQyLTMuNTggOC04IDhIMzQ0Yy00LjQyIDAtOC0zLjU4LTgtOHYtOGMwLTQuNDIgMy41OC04IDgtOGgyMjRjNC40MiAwIDggMy41OCA4IDh2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlyZWN0aW9ucyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjEgMjMzLjMyTDI3OC42OCA5LjM5Yy0xMi41Mi0xMi41Mi0zMi44My0xMi41Mi00NS4zNiAwTDkuMzkgMjMzLjMyYy0xMi41MiAxMi41My0xMi41MiAzMi44MyAwIDQ1LjM2bDIyMy45MyAyMjMuOTNjMTIuNTIgMTIuNTMgMzIuODMgMTIuNTMgNDUuMzYgMGwyMjMuOTMtMjIzLjkzYzEyLjUyLTEyLjUzIDEyLjUyLTMyLjgzIDAtNDUuMzZ6bS0xMDAuOTggMTIuNTZsLTg0LjIxIDc3LjczYy01LjEyIDQuNzMtMTMuNDMgMS4xLTEzLjQzLTUuODhWMjY0aC05NnY2NGMwIDQuNDItMy41OCA4LTggOGgtMzJjLTQuNDIgMC04LTMuNTgtOC04di04MGMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyaDExMnYtNTMuNzNjMC02Ljk3IDguMy0xMC42MSAxMy40My01Ljg4bDg0LjIxIDc3LjczYzMuNDMgMy4xNyAzLjQzIDguNTkgMCAxMS43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGlzZWFzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzIuMjkgMTk1LjlsLTY3LjA2LTIzYy0xOS4yOC02LjYtMzMuNTQtMjAuOTItMzguMTQtMzguMzFsLTE2LTYwLjQ1Yy0xMS41OC00My43Ny03Ni41Ny01Ny4xMy0xMTAtMjIuNjJMMTk1IDk5LjI0Yy0xMy4yNiAxMy43MS0zMy41NCAyMC45My01NC4yIDE5LjMxbC03MS45LTUuNjJjLTUyLTQuMDctODYuOTMgNDQuODktNTkgODIuODRsMzguNTQgNTIuNDJjMTEuMDggMTUuMDcgMTIuODIgMzMuODYgNC42NCA1MC4yNGwtMjguNDMgNTdDNCAzOTYuNjcgNDcuNDYgNDQwLjI5IDk4LjExIDQyOS4yM2w3MC0xNS4yOGMyMC4xMS00LjM5IDQxLjQ1IDAgNTcuMDcgMTEuNzNsNTQuMzIgNDAuODNjMzkuMzIgMjkuNTYgMTAxIDcuNTcgMTA0LjQ1LTM3LjIybDQuNy02MS44NmMxLjM1LTE3LjggMTIuOC0zMy44NyAzMC42My00M2w2Mi0zMS43NGM0NC44NC0yMi45NiAzOS41NS04MC4xNy04Ljk5LTk2Ljc5ek0xNjAgMjU2YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyem0xMjggOTZhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTE2LTEyOGExNiAxNiAwIDEgMSAxNi0xNiAxNiAxNiAwIDAgMS0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGl2aWRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAzNTJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjQgNjQtMjguNjUgNjQtNjQtMjguNjUtNjQtNjQtNjR6bTAtMTkyYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRzLTI4LjY1LTY0LTY0LTY0LTY0IDI4LjY1LTY0IDY0IDI4LjY1IDY0IDY0IDY0em0xOTIgNDhIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRGl6enkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptLTk2IDIwNi42bC0yOC43IDI4LjdjLTE0LjggMTQuOC0zNy44LTcuNS0yMi42LTIyLjZsMjguNy0yOC43LTI4LjctMjguN2MtMTUtMTUgNy43LTM3LjYgMjIuNi0yMi42bDI4LjcgMjguNyAyOC43LTI4LjdjMTUtMTUgMzcuNiA3LjcgMjIuNiAyMi42TDE3NC42IDE5MmwyOC43IDI4LjdjMTUuMiAxNS4yLTcuOSAzNy40LTIyLjYgMjIuNkwxNTIgMjE0LjZ6TTI0OCA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em0xNDcuMy0xOTUuM2MxNS4yIDE1LjItNy45IDM3LjQtMjIuNiAyMi42TDM0NCAyMTQuNmwtMjguNyAyOC43Yy0xNC44IDE0LjgtMzcuOC03LjUtMjIuNi0yMi42bDI4LjctMjguNy0yOC43LTI4LjdjLTE1LTE1IDcuNy0zNy42IDIyLjYtMjIuNmwyOC43IDI4LjcgMjguNy0yOC43YzE1LTE1IDM3LjYgNy43IDIyLjYgMjIuNkwzNjYuNiAxOTJsMjguNyAyOC43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEbmEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNLjEgNDk0LjFjLTEuMSA5LjUgNi4zIDE3LjggMTUuOSAxNy44bDMyLjMuMWM4LjEgMCAxNC45LTUuOSAxNi0xMy45LjctNC45IDEuOC0xMS4xIDMuNC0xOC4xSDM4MGMxLjYgNi45IDIuOSAxMy4yIDMuNSAxOC4xIDEuMSA4IDcuOSAxNCAxNiAxMy45bDMyLjMtLjFjOS42IDAgMTcuMS04LjMgMTUuOS0xNy44LTQuNi0zNy45LTI1LjYtMTI5LTExOC45LTIwNy43LTE3LjYgMTIuNC0zNy4xIDI0LjItNTguNSAzNS40IDYuMiA0LjYgMTEuNCA5LjQgMTcgMTQuMkgxNTkuN2MyMS4zLTE4LjEgNDctMzUuNiA3OC43LTUxLjRDNDEwLjUgMTk5LjEgNDQyLjEgNjUuOCA0NDcuOSAxNy45IDQ0OSA4LjQgNDQxLjYuMSA0MzIgLjFMMzk5LjYgMGMtOC4xIDAtMTQuOSA1LjktMTYgMTMuOS0uNyA0LjktMS44IDExLjEtMy40IDE4LjFINjcuOGMtMS42LTctMi43LTEzLjEtMy40LTE4LjEtMS4xLTgtNy45LTE0LTE2LTEzLjlMMTYuMS4xQzYuNS4xLTEgOC40LjEgMTcuOSA1LjMgNjAuOCAzMS40IDE3MS44IDE2MCAyNTYgMzEuNSAzNDAuMiA1LjMgNDUxLjIuMSA0OTQuMXpNMjI0IDIxOS42Yy0yNS4xLTEzLjctNDYuNC0yOC40LTY0LjMtNDMuNmgxMjguNWMtMTcuOCAxNS4yLTM5LjEgMzAtNjQuMiA0My42ek0zNTUuMSA5NmMtNS44IDEwLjQtMTIuOCAyMS4xLTIxIDMySDExNGMtOC4zLTEwLjktMTUuMy0yMS42LTIxLTMyaDI2Mi4xek05Mi45IDQxNmM1LjgtMTAuNCAxMi44LTIxLjEgMjEtMzJoMjE5LjRjOC4zIDEwLjkgMTUuNCAyMS42IDIxLjIgMzJIOTIuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5OC4wNiwyMjQsNDQ4LDI3Ny41NVY0OTZhMTYsMTYsMCwwLDEtMTYsMTZIMzY4YTE2LDE2LDAsMCwxLTE2LTE2VjM4NEgxOTJWNDk2YTE2LDE2LDAsMCwxLTE2LDE2SDExMmExNiwxNiwwLDAsMS0xNi0xNlYyODIuMDlDNTguODQsMjY4Ljg0LDMyLDIzMy42NiwzMiwxOTJhMzIsMzIsMCwwLDEsNjQsMCwzMi4wNiwzMi4wNiwwLDAsMCwzMiwzMlpNNTQ0LDExMnYzMmE2NCw2NCwwLDAsMS02NCw2NEg0NDh2MzUuNThMMzIwLDE5Ny44N1Y0OGMwLTE0LjI1LDE3LjIyLTIxLjM5LDI3LjMxLTExLjMxTDM3NC41OSw2NGg1My42M2MxMC45MSwwLDIzLjc1LDcuOTIsMjguNjIsMTcuNjlMNDY0LDk2aDY0QTE2LDE2LDAsMCwxLDU0NCwxMTJabS0xMTIsMGExNiwxNiwwLDEsMC0xNiwxNkExNiwxNiwwLDAsMCw0MzIsMTEyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2xsYXJTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIwOS4yIDIzMy40bC0xMDgtMzEuNkM4OC43IDE5OC4yIDgwIDE4Ni41IDgwIDE3My41YzAtMTYuMyAxMy4yLTI5LjUgMjkuNS0yOS41aDY2LjNjMTIuMiAwIDI0LjIgMy43IDM0LjIgMTAuNSA2LjEgNC4xIDE0LjMgMy4xIDE5LjUtMmwzNC44LTM0YzcuMS02LjkgNi4xLTE4LjQtMS44LTI0LjVDMjM4IDc0LjggMjA3LjQgNjQuMSAxNzYgNjRWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4aC0yLjVDNDUuOCA2NC01LjQgMTE4LjcuNSAxODMuNmM0LjIgNDYuMSAzOS40IDgzLjYgODMuOCA5Ni42bDEwMi41IDMwYzEyLjUgMy43IDIxLjIgMTUuMyAyMS4yIDI4LjMgMCAxNi4zLTEzLjIgMjkuNS0yOS41IDI5LjVoLTY2LjNDMTAwIDM2OCA4OCAzNjQuMyA3OCAzNTcuNWMtNi4xLTQuMS0xNC4zLTMuMS0xOS41IDJsLTM0LjggMzRjLTcuMSA2LjktNi4xIDE4LjQgMS44IDI0LjUgMjQuNSAxOS4yIDU1LjEgMjkuOSA4Ni41IDMwdjQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQ4LjJjNDYuNi0uOSA5MC4zLTI4LjYgMTA1LjctNzIuNyAyMS41LTYxLjYtMTQuNi0xMjQuOC03Mi41LTE0MS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb2xseUZsYXRiZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDMyMGgzODRjOC44IDAgMTYtNy4yIDE2LTE2VjQ4YzAtOC44LTcuMi0xNi0xNi0xNkg0NDh2MTI4bC00OC0zMi00OCAzMlYzMkgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnYyNTZjMCA4LjggNy4yIDE2IDE2IDE2em00MTYgNjRIMTI4VjE2YzAtOC44LTcuMi0xNi0xNi0xNkgxNkM3LjIgMCAwIDcuMiAwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHYzNjhjMCA4LjggNy4yIDE2IDE2IDE2aDgyLjljLTEuOCA1LTIuOSAxMC40LTIuOSAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEuMi0xMS0yLjktMTZINDUxYy0xLjggNS0yLjkgMTAuNC0yLjkgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLjItMTEtMi45LTE2SDYyNGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG9sbHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk0LjIgMjc3LjdjMTggNSAzNC43IDEzLjQgNDkuNSAyNC43bDE2MS41LTUzLjhjOC40LTIuOCAxMi45LTExLjkgMTAuMS0yMC4yTDQ1NC45IDQ3LjJjLTIuOC04LjQtMTEuOS0xMi45LTIwLjItMTAuMWwtNjEuMSAyMC40IDMzLjEgOTkuNEwzNDYgMTc3bC0zMy4xLTk5LjQtNjEuNiAyMC41Yy04LjQgMi44LTEyLjkgMTEuOS0xMC4xIDIwLjJsNTMgMTU5LjR6bTI4MSA0OC43TDU2NSAyOTZjLTIuOC04LjQtMTEuOS0xMi45LTIwLjItMTAuMWwtMjEzLjUgNzEuMmMtMTcuMi0yMi00My42LTM2LjQtNzMuNS0zN0wxNTguNCAyMS45QzE1NCA4LjggMTQxLjggMCAxMjggMEgxNkM3LjIgMCAwIDcuMiAwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg4OC45bDkyLjIgMjc2LjdjLTI2LjEgMjAuNC00MS43IDUzLjYtMzYgOTAuNSA2LjEgMzkuNCAzNy45IDcyLjMgNzcuMyA3OS4yIDYwLjIgMTAuNyAxMTIuMy0zNC44IDExMy40LTkyLjZsMjEzLjMtNzEuMmM4LjMtMi44IDEyLjktMTEuOCAxMC4xLTIwLjJ6TTI1NiA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb25hdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQxNmMxMTQuOSAwIDIwOC05My4xIDIwOC0yMDhTMzcwLjkgMCAyNTYgMCA0OCA5My4xIDQ4IDIwOHM5My4xIDIwOCAyMDggMjA4ek0yMzMuOCA5Ny40VjgwLjZjMC05LjIgNy40LTE2LjYgMTYuNi0xNi42aDExLjFjOS4yIDAgMTYuNiA3LjQgMTYuNiAxNi42djE3YzE1LjUuOCAzMC41IDYuMSA0MyAxNS40IDUuNiA0LjEgNi4yIDEyLjMgMS4yIDE3LjFMMzA2IDE0NS42Yy0zLjggMy43LTkuNSAzLjgtMTQgMS01LjQtMy40LTExLjQtNS4xLTE3LjgtNS4xaC0zOC45Yy05IDAtMTYuMyA4LjItMTYuMyAxOC4zIDAgOC4yIDUgMTUuNSAxMi4xIDE3LjZsNjIuMyAxOC43YzI1LjcgNy43IDQzLjcgMzIuNCA0My43IDYwLjEgMCAzNC0yNi40IDYxLjUtNTkuMSA2Mi40djE2LjhjMCA5LjItNy40IDE2LjYtMTYuNiAxNi42aC0xMS4xYy05LjIgMC0xNi42LTcuNC0xNi42LTE2LjZ2LTE3Yy0xNS41LS44LTMwLjUtNi4xLTQzLTE1LjQtNS42LTQuMS02LjItMTIuMy0xLjItMTcuMWwxNi4zLTE1LjVjMy44LTMuNyA5LjUtMy44IDE0LTEgNS40IDMuNCAxMS40IDUuMSAxNy44IDUuMWgzOC45YzkgMCAxNi4zLTguMiAxNi4zLTE4LjMgMC04LjItNS0xNS41LTEyLjEtMTcuNmwtNjIuMy0xOC43Yy0yNS43LTcuNy00My43LTMyLjQtNDMuNy02MC4xLjEtMzQgMjYuNC02MS41IDU5LjEtNjIuNHpNNDgwIDM1MmgtMzIuNWMtMTkuNiAyNi00NC42IDQ3LjctNzMgNjRoNjMuOGM1LjMgMCA5LjYgMy42IDkuNiA4djE2YzAgNC40LTQuMyA4LTkuNiA4SDczLjZjLTUuMyAwLTkuNi0zLjYtOS42LTh2LTE2YzAtNC40IDQuMy04IDkuNi04aDYzLjhjLTI4LjQtMTYuMy01My4zLTM4LTczLTY0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg0NDhjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb29yQ2xvc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0NDhINTEyVjUwLjhDNTEyIDIyLjc4IDQ5MC40NyAwIDQ2NCAwSDE3NS45OWMtMjYuNDcgMC00OCAyMi43OC00OCA1MC44VjQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNDE1Ljk5IDI4OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMmMuMDEgMTcuNjctMTQuMzIgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvb3JPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0NDhoLTgwVjExMy40NUM1NDQgODYuMTkgNTIyLjQ3IDY0IDQ5NiA2NEgzODR2NjRoOTZ2Mzg0aDE0NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTMxMi4yNCAxLjAxbC0xOTIgNDkuNzRDMTA1Ljk5IDU0LjQ0IDk2IDY3LjcgOTYgODIuOTJWNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMzZWMzMuMThjMC0yMS41OC0xOS41Ni0zNy40MS0zOS43Ni0zMi4xN3pNMjY0IDI4OGMtMTMuMjUgMC0yNC0xNC4zMy0yNC0zMnMxMC43NS0zMiAyNC0zMiAyNCAxNC4zMyAyNCAzMi0xMC43NSAzMi0yNCAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRG90Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptODAgMjQ4YzAgNDQuMTEyLTM1Ljg4OCA4MC04MCA4MHMtODAtMzUuODg4LTgwLTgwIDM1Ljg4OC04MCA4MC04MCA4MCAzNS44ODggODAgODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURvdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE2Ny4ydi0yOC4xYy0yOC4yLTM2LjMtNDcuMS03OS4zLTU0LjEtMTI1LjItMi4xLTEzLjUtMTktMTguOC0yNy44LTguMy0yMS4xIDI0LjktMzcuNyA1NC4xLTQ4LjkgODYuNSAzNC4yIDM4LjMgODAgNjQuNiAxMzAuOCA3NS4xek00MDAgNjRjLTQ0LjIgMC04MCAzNS45LTgwIDgwLjF2NTkuNEMyMTUuNiAxOTcuMyAxMjcgMTMzIDg3IDQxLjhjLTUuNS0xMi41LTIzLjItMTMuMi0yOS0uOUM0MS40IDc2IDMyIDExNS4yIDMyIDE1Ni42YzAgNzAuOCAzNC4xIDEzNi45IDg1LjEgMTg1LjkgMTMuMiAxMi43IDI2LjEgMjMuMiAzOC45IDMyLjhsLTE0My45IDM2QzEuNCA0MTQtMy40IDQyNi40IDIuNiA0MzUuNyAyMCA0NjIuNiA2MyA1MDguMiAxNTUuOCA1MTJjOCAuMyAxNi0yLjYgMjIuMS03LjlsNjUuMi01Ni4xSDMyMGM4OC40IDAgMTYwLTcxLjUgMTYwLTE1OS45VjEyOGwzMi02NEg0MDB6bTAgOTYuMWMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMGg4MGMxMy4zIDAgMjQgMTAuNyAyNCAyNHYxNjhoODcuN2MxNy44IDAgMjYuNyAyMS41IDE0LjEgMzQuMUwyNjkuNyAzNzguM2MtNy41IDcuNS0xOS44IDcuNS0yNy4zIDBMOTAuMSAyMjYuMWMtMTIuNi0xMi42LTMuNy0zNC4xIDE0LjEtMzQuMUgxOTJWMjRjMC0xMy4zIDEwLjctMjQgMjQtMjR6bTI5NiAzNzZ2MTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTQ2LjdsNDkgNDljMjAuMSAyMC4xIDUyLjUgMjAuMSA3Mi42IDBsNDktNDlINDg4YzEzLjMgMCAyNCAxMC43IDI0IDI0em0tMTI0IDg4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6bTY0IDBjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhZnRpbmdDb21wYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1Ny4wMSAzNDQuNDJjLTI1LjA1IDIwLjMzLTUyLjYzIDM3LjE4LTgyLjU0IDQ5LjA1bDU0LjM4IDk0LjE5IDUzLjk1IDIzLjA0YzkuODEgNC4xOSAyMC44OS0yLjIxIDIyLjE3LTEyLjhsNy4wMi01OC4yNS01NC45OC05NS4yM3ptNDIuNDktOTQuNTZjNC44Ni03LjY3IDEuODktMTcuOTktNi4wNS0yMi4zOWwtMjguMDctMTUuNTdjLTcuNDgtNC4xNS0xNi42MS0xLjQ2LTIxLjI2IDUuNzJDNDAzLjAxIDI4MS4xNSAzMzIuMjUgMzIwIDI1NiAzMjBjLTIzLjkzIDAtNDcuMjMtNC4yNS02OS40MS0xMS41M2w2Ny4zNi0xMTYuNjhjLjcuMDIgMS4zNC4yMSAyLjA0LjIxczEuMzUtLjE5IDIuMDQtLjIxbDUxLjA5IDg4LjVjMzEuMjMtOC45NiA1OS41Ni0yNS43NSA4Mi42MS00OC45MmwtNTEuNzktODkuNzFDMzQ3LjM5IDEyOC4wMyAzNTIgMTEyLjYzIDM1MiA5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NmMwIDE2LjYzIDQuNjEgMzIuMDMgMTIuMDUgNDUuNjZsLTY4LjMgMTE4LjMxYy0xMi41NS0xMS42MS0yMy45Ni0yNC41OS0zMy42OC0zOS00Ljc5LTcuMS0xMy45Ny05LjYyLTIxLjM4LTUuMzNsLTI3Ljc1IDE2LjA3Yy03Ljg1IDQuNTQtMTAuNjMgMTQuOS01LjY0IDIyLjQ3IDE1LjU3IDIzLjY0IDM0LjY5IDQ0LjIxIDU1Ljk4IDYyLjAyTDAgNDM5LjY2bDcuMDIgNTguMjVjMS4yOCAxMC41OSAxMi4zNiAxNi45OSAyMi4xNyAxMi44bDUzLjk1LTIzLjA0IDcwLjgtMTIyLjYzQzE4Ni4xMyAzNzcuMjggMjIwLjYyIDM4NCAyNTYgMzg0Yzk5LjA1IDAgMTkwLjg4LTUxLjAxIDI0My41LTEzNC4xNHpNMjU2IDY0YzE3LjY3IDAgMzIgMTQuMzMgMzIgMzJzLTE0LjMzIDMyLTMyIDMyLTMyLTE0LjMzLTMyLTMyIDE0LjMzLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcmFnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTguMzIgMjU1Ljc4TDE5MiAyMjMuOTZsLTkxLjI4IDY4LjY5Yy0xMC4wOCAxMC4wOC0yLjk0IDI3LjMxIDExLjMxIDI3LjMxaDIyMi43Yy05LjQ0LTI2LjQtMTQuNzMtNTQuNDctMTQuNzMtODMuMzh2LTQyLjI3bC0xMTkuNzMtODcuNmMtMjMuODItMTUuODgtNTUuMjktMTQuMDEtNzcuMDYgNC41OUw1LjgxIDIyNy42NGMtMTIuMzggMTAuMzMtMy40NSAzMC40MiAxMi41MSAyOC4xNHptNTU2Ljg3IDM0LjFsLTEwMC42Ni01MC4zMUE0Ny45OTIgNDcuOTkyIDAgMCAxIDQ0OCAxOTYuNjV2LTM2LjY5aDY0bDI4LjA5IDIyLjYzYzYgNiAxNC4xNCA5LjM3IDIyLjYzIDkuMzdoMzAuOTdhMzIgMzIgMCAwIDAgMjguNjItMTcuNjlsMTQuMzEtMjguNjJhMzIuMDA1IDMyLjAwNSAwIDAgMC0zLjAyLTMzLjUxbC03NC41My05OS4zOEM1NTMuMDIgNC43IDU0My41NCAwIDUzMy40NyAwSDI5Ni4wMmMtNy4xMyAwLTEwLjcgOC41Ny01LjY2IDEzLjYxTDM1MiA2My45NiAyOTIuNDIgODguOGMtNS45IDIuOTUtNS45IDExLjM2IDAgMTQuMzFMMzUyIDEyNy45NnYxMDguNjJjMCA3Mi4wOCAzNi4wMyAxMzkuMzkgOTYgMTc5LjM4LTE5NS41OSA2LjgxLTM0NC41NiA0MS4wMS00MzQuMSA2MC45MUM1Ljc4IDQ3OC42NyAwIDQ4NS44OCAwIDQ5NC4yIDAgNTA0IDcuOTUgNTEyIDE3Ljc2IDUxMmg0OTkuMDhjNjMuMjkuMDEgMTE5LjYxLTQ3LjU2IDEyMi45OS0xMTAuNzYgMi41Mi00Ny4yOC0yMi43My05MC40LTY0LjY0LTExMS4zNnpNNDg5LjE4IDY2LjI1bDQ1LjY1IDExLjQxYy0yLjc1IDEwLjkxLTEyLjQ3IDE4Ljg5LTI0LjEzIDE4LjI2LTEyLjk2LS43MS0yNS44NS0xMi41My0yMS41Mi0yOS42N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJhd1BvbHlnb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDM1MmMtLjM1IDAtLjY3LjEtMS4wMi4xbC0zOS4yLTY1LjMyYzUuMDctOS4xNyA4LjIyLTE5LjU2IDguMjItMzAuNzhzLTMuMTQtMjEuNjEtOC4yMi0zMC43OGwzOS4yLTY1LjMyYy4zNS4wMS42Ny4xIDEuMDIuMSAzNS4zNSAwIDY0LTI4LjY1IDY0LTY0cy0yOC42NS02NC02NC02NGMtMjMuNjMgMC00NC4wNCAxMi45NS01NS4xMiAzMkgxMTkuMTJDMTA4LjA0IDQ0Ljk1IDg3LjYzIDMyIDY0IDMyIDI4LjY1IDMyIDAgNjAuNjUgMCA5NmMwIDIzLjYzIDEyLjk1IDQ0LjA0IDMyIDU1LjEydjIwOS43NUMxMi45NSAzNzEuOTYgMCAzOTIuMzcgMCA0MTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NCAyMy42MyAwIDQ0LjA0LTEyLjk1IDU1LjEyLTMyaDIwOS43NWMxMS4wOSAxOS4wNSAzMS40OSAzMiA1NS4xMiAzMiAzNS4zNSAwIDY0LTI4LjY1IDY0LTY0IC4wMS0zNS4zNS0yOC42NC02NC02My45OS02NHptLTI4OCA4Ljg4VjE1MS4xMkE2My44MjUgNjMuODI1IDAgMCAwIDExOS4xMiAxMjhoMjA4LjM2bC0zOC40NiA2NC4xYy0uMzUtLjAxLS42Ny0uMS0xLjAyLS4xLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjRjLjM1IDAgLjY3LS4xIDEuMDItLjFsMzguNDYgNjQuMUgxMTkuMTJBNjMuNzQ4IDYzLjc0OCAwIDAgMCA5NiAzNjAuODh6TTI3MiAyNTZjMC04LjgyIDcuMTgtMTYgMTYtMTZzMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTZ6TTQwMCA5NmMwIDguODItNy4xOCAxNi0xNiAxNnMtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2IDE2IDcuMTggMTYgMTZ6TTY0IDgwYzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnpNNDggNDE2YzAtOC44MiA3LjE4LTE2IDE2LTE2czE2IDcuMTggMTYgMTYtNy4xOCAxNi0xNiAxNi0xNi03LjE4LTE2LTE2em0zMzYgMTZjLTguODIgMC0xNi03LjE4LTE2LTE2czcuMTgtMTYgMTYtMTYgMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEcnVtU3RlZWxwYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDMyQzEyOC45NCAzMiAwIDg5LjMxIDAgMTYwdjE5MmMwIDcwLjY5IDEyOC45NCAxMjggMjg4IDEyOHMyODgtNTcuMzEgMjg4LTEyOFYxNjBjMC03MC42OS0xMjguOTQtMTI4LTI4OC0xMjh6bS04Mi45OSAxNTguMzZjLTQuNDUgMTYuNjEtMTQuNTQgMzAuNTctMjguMzEgNDAuNDhDMTAwLjIzIDIxNy40NiA0OCAxOTAuNzggNDggMTYwYzAtMzAuMTYgNTAuMTEtNTYuMzkgMTI0LjA0LTcwLjAzbDI1LjYgNDQuMzRjOS44NiAxNy4wOSAxMi40OCAzNi45OSA3LjM3IDU2LjA1ek0yODggMjQwYy0yMS4wOCAwLTQxLjQxLTEtNjAuODktMi43IDguMDYtMjYuMTMgMzIuMTUtNDUuMyA2MC44OS00NS4zczUyLjgzIDE5LjE3IDYwLjg5IDQ1LjNDMzI5LjQxIDIzOSAzMDkuMDggMjQwIDI4OCAyNDB6bTY0LTE0NGMwIDM1LjI5LTI4LjcxIDY0LTY0IDY0cy02NC0yOC43MS02NC02NFY4Mi45NmMyMC40LTEuODggNDEuOC0yLjk2IDY0LTIuOTZzNDMuNiAxLjA4IDY0IDIuOTZWOTZ6bTQ2LjkzIDEzNC45Yy0xMy44MS05LjkxLTIzLjk0LTIzLjktMjguNC00MC41NC01LjExLTE5LjA2LTIuNDktMzguOTYgNy4zOC01Ni4wNGwyNS42NS00NC40MkM0NzcuNzIgMTAzLjUgNTI4IDEyOS43OSA1MjggMTYwYzAgMzAuODMtNTIuNCA1Ny41NC0xMjkuMDcgNzAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHJ1bSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzEuMzQgMTIyLjA1bDczLjUzLTQ3LjQyYTE2IDE2IDAgMCAwIDQuNDQtMjIuMTlsLTguODctMTMuMzFhMTYgMTYgMCAwIDAtMjIuMTktNC40NGwtMTEwLjA2IDcxQzMxOC40MyA5Ni45MSAyNzEuMjIgOTYgMjU2IDk2IDIxOS41NSA5NiAwIDEwMC41NSAwIDIwOC4xNXYxNjAuMjNjMCAzMC4yNyAyNy41IDU3LjY4IDcyIDc3Ljg2di0xMDEuOWEyNCAyNCAwIDEgMSA0OCAwdjExOC45M2MzMy4wNSA5LjExIDcxLjA3IDE1LjA2IDExMiAxNi43M1YzNzYuMzlhMjQgMjQgMCAxIDEgNDggMFY0ODBjNDAuOTMtMS42NyA3OC45NS03LjYyIDExMi0xNi43M1YzNDQuMzRhMjQgMjQgMCAxIDEgNDggMHYxMDEuOWM0NC41LTIwLjE4IDcyLTQ3LjU5IDcyLTc3Ljg2VjIwOC4xNWMwLTQzLjMyLTM1Ljc2LTY5Ljc2LTgwLjY2LTg2LjF6TTI1NiAyNzIuMjRjLTExNC44OCAwLTIwOC0yOC42OS0yMDgtNjQuMDlzOTMuMTItNjQuMDggMjA4LTY0LjA4YzE3LjE1IDAgMzMuNzMuNzEgNDkuNjggMS45MWwtNzIuODEgNDdhMTYgMTYgMCAwIDAtNC40MyAyMi4xOWw4Ljg3IDEzLjMxYTE2IDE2IDAgMCAwIDIyLjE5IDQuNDRsMTE4LjY0LTc2LjUyQzQzMC4wOSAxNjggNDY0IDE4Ni44NCA0NjQgMjA4LjE1YzAgMzUuNC05My4xMyA2NC4wOS0yMDggNjQuMDl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYURydW1zdGlja0JpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYyLjggNDkuNTdhMTY5LjQ0IDE2OS40NCAwIDAgMC0yMzkuNSAwQzE4Ny44MiA4NSAxNjAuMTMgMTI4IDE2MC4xMyAxOTJ2ODUuODNsLTQwLjYyIDQwLjU5Yy05LjcgOS42OS0yNCAxMS4wNy0zNi43OCA2YTYwLjMzIDYwLjMzIDAgMCAwLTY1IDk4LjcyQzMzIDQzOC4zOSA1NC4yNCA0NDIuNyA3My44NSA0MzguMjFjLTQuNSAxOS42LS4xOCA0MC44MyAxNS4xIDU2LjFhNjAuMzUgNjAuMzUgMCAwIDAgOTguOC02NWMtNS4wOS0xMi43My0zLjcyLTI3IDYtMzYuNzVMMjM0LjM2IDM1Mmg4NS44OWExODcuODcgMTg3Ljg3IDAgMCAwIDYxLjg5LTEwYy0zOS42NC00My44OS0zOS44My0xMTAuMjMgMS4wNS0xNTEuMDcgMzQuMzgtMzQuMzYgODYuNzYtMzkuNDYgMTI4Ljc0LTE2LjggMS4zLTQ0Ljk2LTE0LjgxLTkwLjI4LTQ5LjEzLTEyNC41NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRHVtYmJlbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA0IDk2SDU2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxMDRIOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgyNHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0em01MjggMTI4aC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjg4aDI0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek00NTYgMzJoLTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYxNjhIMjU2VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0aC00OGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDAwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjI4OGgxMjh2MTY4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDQ4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFEdW1wc3RlckZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE4LjcgMTA0LjFsLjItLjItMTQuNC03MkgzMDR2MTI4aDYwLjhjMTYuMi0xOS4zIDM0LjItMzguMiA1My45LTU1Ljh6TTI3MiAzMkgxNzEuNWwtMjUuNiAxMjhIMjcyVjMyem0xODkuMyA3Mi4xYzE4LjIgMTYuMyAzNS41IDMzLjcgNTEuMSA1MS41IDUuNy01LjYgMTEuNC0xMS4xIDE3LjMtMTYuM2wyMS4zLTE5IDIxLjMgMTljMS4xLjkgMi4xIDIuMSAzLjEgMy4xLS4xLS44LjItMS41IDAtMi4zbC0yNC05NkM1NDkuNyAzNyA1NDMuMyAzMiA1MzYgMzJoLTk4LjlsMTIuMyA2MS41IDExLjkgMTAuNnpNMTYgMTYwaDk3LjNsMjUuNi0xMjhINDBjLTcuMyAwLTEzLjcgNS0xNS41IDEyLjFsLTI0IDk2Qy0yIDE1MC4yIDUuNiAxNjAgMTYgMTYwem0zMjQuNiAzMkgzMmw0IDMySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDI4bDIwIDE2MHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgyMDguOGMtMzAuMi0zMy43LTQ4LjgtNzcuOS00OC44LTEyNi40IDAtMzUuOSAxOS45LTgyLjkgNTIuNi0xMjkuNnptMjEwLjUtMjguOGMtMTQuOSAxMy4zLTI4LjMgMjcuMi00MC4yIDQxLjItMTkuNS0yNS44LTQzLjYtNTItNzEtNzYuNC03MC4yIDYyLjctMTIwIDE0NC4zLTEyMCAxOTMuNiAwIDg3LjUgNzEuNiAxNTguNCAxNjAgMTU4LjRzMTYwLTcwLjkgMTYwLTE1OC40Yy4xLTM2LjYtMzctMTEyLjItODguOC0xNTguNHptLTE4LjYgMjI5LjRjLTE0LjcgMTAuNy0zMi45IDE3LTUyLjUgMTctNDkgMC04OC45LTMzLjUtODguOS04OCAwLTI3LjEgMTYuNS01MSA0OS40LTkxLjkgNC43IDUuNiA2Ny4xIDg4LjEgNjcuMSA4OC4xbDM5LjgtNDdjMi44IDQuOCA1LjQgOS41IDcuNyAxNCAxOC42IDM2LjcgMTAuOCA4My42LTIyLjYgMTA3Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR1bXBzdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MCAxNjBjMTAuNCAwIDE4LTkuOCAxNS41LTE5LjlsLTI0LTk2QzU0OS43IDM3IDU0My4zIDMyIDUzNiAzMmgtOTguOWwyNS42IDEyOEg1NjB6TTI3MiAzMkgxNzEuNWwtMjUuNiAxMjhIMjcyVjMyem0xMzIuNSAwSDMwNHYxMjhoMTI2LjFMNDA0LjUgMzJ6TTE2IDE2MGg5Ny4zbDI1LjYtMTI4SDQwYy03LjMgMC0xMy43IDUtMTUuNSAxMi4xbC0yNCA5NkMtMiAxNTAuMiA1LjYgMTYwIDE2IDE2MHptNTQ0IDY0aC0yMGw0LTMySDMybDQgMzJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMjhsMjAgMTYwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDMyMHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmwyMC0xNjBoMjhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUR1bmdlb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LjczIDE5NS4zMmwtODIuODEtNTEuNzZjLTguMDQtNS4wMi0xOC45OS0yLjE3LTIyLjkzIDYuNDVBMjU0LjE5IDI1NC4xOSAwIDAgMCAuNTQgMjM5LjI4Qy0uMDUgMjQ4LjM3IDcuNTkgMjU2IDE2LjY5IDI1Nmg5Ny4xM2M3Ljk2IDAgMTQuMDgtNi4yNSAxNS4wMS0xNC4xNiAxLjA5LTkuMzMgMy4yNC0xOC4zMyA2LjI0LTI2Ljk0IDIuNTYtNy4zNC4yNS0xNS40Ni02LjM0LTE5LjU4ek0zMTkuMDMgOEMyOTguODYgMi44MiAyNzcuNzcgMCAyNTYgMHMtNDIuODYgMi44Mi02My4wMyA4Yy05LjE3IDIuMzUtMTMuOTEgMTIuNi0xMC4zOSAyMS4zOWwzNy40NyAxMDQuMDNBMTYuMDAzIDE2LjAwMyAwIDAgMCAyMzUuMSAxNDRoNDEuOGM2Ljc1IDAgMTIuNzctNC4yMyAxNS4wNS0xMC41OGwzNy40Ny0xMDQuMDNjMy41Mi04Ljc5LTEuMjItMTkuMDMtMTAuMzktMjEuMzl6TTExMiAyODhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptMCAxMjhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptNzcuMzEtMjgzLjY3bC0zNi4zMi05MC44Yy0zLjUzLTguODMtMTQuMTMtMTIuOTktMjIuNDItOC4zMWEyNTcuMzA4IDI1Ny4zMDggMCAwIDAtNzEuNjEgNTkuODljLTYuMDYgNy4zMi0zLjg1IDE4LjQ4IDQuMjIgMjMuNTJsODIuOTMgNTEuODNjNi41MSA0LjA3IDE0LjY2IDIuNjIgMjAuMTEtMi43OSA1LjE4LTUuMTUgMTAuNzktOS44NSAxNi43OS0xNC4wNSA2LjI4LTQuNDEgOS4xNS0xMi4xNyA2LjMtMTkuMjl6TTM5OC4xOCAyNTZoOTcuMTNjOS4xIDAgMTYuNzQtNy42MyAxNi4xNS0xNi43MmEyNTQuMTM1IDI1NC4xMzUgMCAwIDAtMjIuNDUtODkuMjdjLTMuOTQtOC42Mi0xNC44OS0xMS40Ny0yMi45My02LjQ1bC04Mi44MSA1MS43NmMtNi41OSA0LjEyLTguOSAxMi4yNC02LjM0IDE5LjU4IDMuMDEgOC42MSA1LjE1IDE3LjYyIDYuMjQgMjYuOTQuOTMgNy45MSA3LjA1IDE0LjE2IDE1LjAxIDE0LjE2em01NC44NS0xNjIuODlhMjU3LjMwOCAyNTcuMzA4IDAgMCAwLTcxLjYxLTU5Ljg5Yy04LjI4LTQuNjgtMTguODgtLjUyLTIyLjQyIDguMzFsLTM2LjMyIDkwLjhjLTIuODUgNy4xMi4wMiAxNC44OCA2LjMgMTkuMjggNiA0LjIgMTEuNjEgOC45IDE2Ljc5IDE0LjA1IDUuNDQgNS40MSAxMy42IDYuODYgMjAuMTEgMi43OWw4Mi45My01MS44M2M4LjA3LTUuMDMgMTAuMjktMTYuMTkgNC4yMi0yMy41MXpNNDk2IDI4OGgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptMCAxMjhoLTk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg5NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNjRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTI0MCAxNzcuNjJWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjE3Ny42MmMtNS4yMy0uODktMTAuNTItMS42Mi0xNi0xLjYycy0xMC43Ny43My0xNiAxLjYyem0tNjQgNDEuNTFWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjE4OS4zNmMtMTIuNzggNy40NS0yMy44NCAxNy40Ny0zMiAyOS43N3ptMTI4LTI5Ljc3VjQ3MmMwIDQuNDIgMy41OCA4IDggOGgxNmM0LjQyIDAgOC0zLjU4IDgtOFYyMTkuMTNjLTguMTYtMTIuMy0xOS4yMi0yMi4zMi0zMi0yOS43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWRpdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDIuNiA4My4ybDkwLjIgOTAuMmMzLjggMy44IDMuOCAxMCAwIDEzLjhMMjc0LjQgNDA1LjZsLTkyLjggMTAuM2MtMTIuNCAxLjQtMjIuOS05LjEtMjEuNS0yMS41bDEwLjMtOTIuOEwzODguOCA4My4yYzMuOC0zLjggMTAtMy44IDEzLjggMHptMTYyLTIyLjlsLTQ4LjgtNDguOGMtMTUuMi0xNS4yLTM5LjktMTUuMi01NS4yIDBsLTM1LjQgMzUuNGMtMy44IDMuOC0zLjggMTAgMCAxMy44bDkwLjIgOTAuMmMzLjggMy44IDEwIDMuOCAxMy44IDBsMzUuNC0zNS40YzE1LjItMTUuMyAxNS4yLTQwIDAtNTUuMnpNMzg0IDM0Ni4yVjQ0OEg2NFYxMjhoMjI5LjhjMy4yIDAgNi4yLTEuMyA4LjUtMy41bDQwLTQwYzcuNi03LjYgMi4yLTIwLjUtOC41LTIwLjVINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDYuMmMwLTEwLjctMTIuOS0xNi0yMC41LTguNWwtNDAgNDBjLTIuMiAyLjMtMy41IDUuMy0zLjUgOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFZ2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDBDODYgMCAwIDIxNCAwIDMyMHM4NiAxOTIgMTkyIDE5MiAxOTItODYgMTkyLTE5MlMyOTggMCAxOTIgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWplY3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM4NHY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDM4NGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ6TTQ4LjA1MyAzMjBoMzUxLjg4NmM0MS42NTEgMCA2My41ODEtNDkuNjc0IDM1LjM4My04MC40MzVMMjU5LjM4MyA0Ny41NThjLTE5LjAxNC0yMC43NDMtNTEuNzUxLTIwLjc0NC03MC43NjcgMEwxMi42NyAyMzkuNTY1Qy0xNS40NzUgMjcwLjI2OCA2LjMyNCAzMjAgNDguMDUzIDMyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRWxsaXBzaXNIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyOCAyNTZjMCAzOS44LTMyLjIgNzItNzIgNzJzLTcyLTMyLjItNzItNzIgMzIuMi03MiA3Mi03MiA3MiAzMi4yIDcyIDcyem0xMDQtNzJjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyem0tMzUyIDBjLTM5LjggMC03MiAzMi4yLTcyIDcyczMyLjIgNzIgNzIgNzIgNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbGxpcHNpc1YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDE5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMTg0YzM5LjggMCA3MiAzMi4yIDcyIDcycy0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzIgMzIuMi03MiA3Mi03MnpNMjQgODBjMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03MlMxMzUuOCA4IDk2IDggMjQgNDAuMiAyNCA4MHptMCAzNTJjMCAzOS44IDMyLjIgNzIgNzIgNzJzNzItMzIuMiA3Mi03Mi0zMi4yLTcyLTcyLTcyLTcyIDMyLjItNzIgNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVudmVsb3BlT3BlblRleHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDIxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE3NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6bS0xNiA4MGMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE3NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZ6bTk2IDEyMS4xM2MtMTYuNDIgMC0zMi44NC01LjA2LTQ2Ljg2LTE1LjE5TDAgMjUwLjg2VjQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjI1MC44NkwzMDIuODYgNDAxLjk0Yy0xNC4wMiAxMC4xMi0zMC40NCAxNS4xOS00Ni44NiAxNS4xOXptMjM3LjYxLTI1NC4xOGMtOC44NS02Ljk0LTE3LjI0LTEzLjQ3LTI5LjYxLTIyLjgxVjk2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTc3LjU1Yy0zLjA0LTIuMi01Ljg3LTQuMjYtOS4wNC02LjU2QzMxMi42IDI5LjE3IDI3OS4yLS4zNSAyNTYgMGMtMjMuMi0uMzUtNTYuNTkgMjkuMTctNzMuNDEgNDEuNDQtMy4xNyAyLjMtNiA0LjM2LTkuMDQgNi41Nkg5NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0NC4xNGMtMTIuMzcgOS4zMy0yMC43NiAxNS44Ny0yOS42MSAyMi44MUE0Ny45OTUgNDcuOTk1IDAgMCAwIDAgMjAwLjcydjEwLjY1bDk2IDY5LjM1Vjk2aDMyMHYxODQuNzJsOTYtNjkuMzV2LTEwLjY1YzAtMTQuNzQtNi43OC0yOC42Ny0xOC4zOS0zNy43N3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA0NjRjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYyMDAuNzI0YTQ4IDQ4IDAgMCAxIDE4LjM4Ny0zNy43NzZjMjQuOTEzLTE5LjUyOSA0NS41MDEtMzUuMzY1IDE2NC4yLTEyMS41MTFDMTk5LjQxMiAyOS4xNyAyMzIuNzk3LS4zNDcgMjU2IC4wMDNjMjMuMTk4LS4zNTQgNTYuNTk2IDI5LjE3MiA3My40MTMgNDEuNDMzIDExOC42ODcgODYuMTM3IDEzOS4zMDMgMTAxLjk5NSAxNjQuMiAxMjEuNTEyQTQ4IDQ4IDAgMCAxIDUxMiAyMDAuNzI0VjQ2NHptLTY1LjY2Ni0xOTYuNjA1Yy0yLjU2My0zLjcyOC03LjctNC41OTUtMTEuMzM5LTEuOTA3LTIyLjg0NSAxNi44NzMtNTUuNDYyIDQwLjcwNS0xMDUuNTgyIDc3LjA3OS0xNi44MjUgMTIuMjY2LTUwLjIxIDQxLjc4MS03My40MTMgNDEuNDMtMjMuMjExLjM0NC01Ni41NTktMjkuMTQzLTczLjQxMy00MS40My01MC4xMTQtMzYuMzctODIuNzM0LTYwLjIwNC0xMDUuNTgyLTc3LjA3OS0zLjYzOS0yLjY4OC04Ljc3Ni0xLjgyMS0xMS4zMzkgMS45MDdsLTkuMDcyIDEzLjE5NmE3Ljk5OCA3Ljk5OCAwIDAgMCAxLjgzOSAxMC45NjdjMjIuODg3IDE2Ljg5OSA1NS40NTQgNDAuNjkgMTA1LjMwMyA3Ni44NjggMjAuMjc0IDE0Ljc4MSA1Ni41MjQgNDcuODEzIDkyLjI2NCA0Ny41NzMgMzUuNzI0LjI0MiA3MS45NjEtMzIuNzcxIDkyLjI2My00Ny41NzMgNDkuODUtMzYuMTc5IDgyLjQxOC01OS45NyAxMDUuMzAzLTc2Ljg2OGE3Ljk5OCA3Ljk5OCAwIDAgMCAxLjgzOS0xMC45NjdsLTkuMDcxLTEzLjE5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRW52ZWxvcGVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0xNzguMTE3IDI2Mi4xMDRDODcuNDI5IDE5Ni4yODcgODguMzUzIDE5Ni4xMjEgNjQgMTc3LjE2N1YxNTJjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDI3MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MjUuMTY3Yy0yNC4zNzEgMTguOTY5LTIzLjQzNCAxOS4xMjQtMTE0LjExNyA4NC45MzgtMTAuNSA3LjY1NS0zMS4zOTIgMjYuMTItNDUuODgzIDI1Ljg5NC0xNC41MDMuMjE4LTM1LjM2Ny0xOC4yMjctNDUuODgzLTI1Ljg5NXpNMzg0IDIxNy43NzVWMzYwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEg4OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjIxNy43NzVjMTMuOTU4IDEwLjc5NCAzMy4zMjkgMjUuMjM2IDk1LjMwMyA3MC4yMTQgMTQuMTYyIDEwLjM0MSAzNy45NzUgMzIuMTQ1IDY0LjY5NCAzMi4wMSAyNi44ODcuMTM0IDUxLjAzNy0yMi4wNDEgNjQuNzItMzIuMDI1IDYxLjk1OC00NC45NjUgODEuMzI1LTU5LjQwNiA5NS4yODMtNzAuMTk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFbnZlbG9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMyAxOTAuOGMzLjktMy4xIDkuNy0uMiA5LjcgNC43VjQwMGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTk1LjZjMC01IDUuNy03LjggOS43LTQuNyAyMi40IDE3LjQgNTIuMSAzOS41IDE1NC4xIDExMy42IDIxLjEgMTUuNCA1Ni43IDQ3LjggOTIuMiA0Ny42IDM1LjcuMyA3Mi0zMi44IDkyLjMtNDcuNiAxMDItNzQuMSAxMzEuNi05Ni4zIDE1NC0xMTMuN3pNMjU2IDMyMGMyMy4yLjQgNTYuNi0yOS4yIDczLjQtNDEuNCAxMzIuNy05Ni4zIDE0Mi44LTEwNC43IDE3My40LTEyOC43IDUuOC00LjUgOS4yLTExLjUgOS4yLTE4Ljl2LTE5YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjE5YzAgNy40IDMuNCAxNC4zIDkuMiAxOC45IDMwLjYgMjMuOSA0MC43IDMyLjQgMTczLjQgMTI4LjcgMTYuOCAxMi4yIDUwLjIgNDEuOCA3My40IDQxLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVxdWFscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgMzA0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAtMTkySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUVyYXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOTQxIDI3My45NDFjMTguNzQ1LTE4Ljc0NSAxOC43NDUtNDkuMTM3IDAtNjcuODgybC0xNjAtMTYwYy0xOC43NDUtMTguNzQ1LTQ5LjEzNi0xOC43NDYtNjcuODgzIDBsLTI1NiAyNTZjLTE4Ljc0NSAxOC43NDUtMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4Mmw5NiA5NkE0OC4wMDQgNDguMDA0IDAgMCAwIDE0NCA0ODBoMzU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMzU1Ljg4M2wxNDIuMDU4LTE0Mi4wNTl6bS0zMDIuNjI3LTYyLjYyN2wxMzcuMzczIDEzNy4zNzNMMjY1LjM3MyA0MTZIMTUwLjYyOGwtODAtODAgMTI0LjY4Ni0xMjQuNjg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFdGhlcm5ldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMTkyaC00OHYtNDhjMC04LjgtNy4yLTE2LTE2LTE2aC00OFY4MGMwLTguOC03LjItMTYtMTYtMTZIMTQ0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhIODBjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djIyNGMwIDguOCA3LjIgMTYgMTYgMTZoODBWMzIwaDMydjEyOGg2NFYzMjBoMzJ2MTI4aDY0VjMyMGgzMnYxMjhoNjRWMzIwaDMydjEyOGg4MGM4LjggMCAxNi03LjIgMTYtMTZWMjA4YzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXVyb1NpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEwLjcwNiA0MTMuNzY1Yy0xLjMxNC02LjYzLTcuODM1LTEwLjg3Mi0xNC40MjQtOS4zNjktMTAuNjkyIDIuNDM5LTI3LjQyMiA1LjQxMy00NS40MjYgNS40MTMtNTYuNzYzIDAtMTAxLjkyOS0zNC43OS0xMjEuNDYxLTg1LjQ0OWgxMTMuNjg5YTEyIDEyIDAgMCAwIDExLjcwOC05LjM2OWw2LjM3My0yOC4zNmMxLjY4Ni03LjUwMi00LjAxOS0xNC42MzEtMTEuNzA4LTE0LjYzMUgxMTUuMjJjLTEuMjEtMTQuMzI4LTEuNDE0LTI4LjI4Ny4xMzctNDIuMjQ1SDI2MS45NWExMiAxMiAwIDAgMCAxMS43MjMtOS40MzRsNi41MTItMjkuNzU1YzEuNjM4LTcuNDg0LTQuMDYxLTE0LjU2Ni0xMS43MjMtMTQuNTY2SDEzMC4xODRjMjAuNjMzLTQ0Ljk5MSA2Mi42OS03NS4wMyAxMTcuNjE5LTc1LjAzIDE0LjQ4NiAwIDI4LjU2NCAyLjI1IDM3Ljg1MSA0LjE0NSA2LjIxNiAxLjI2OCAxMi4zNDctMi40OTggMTQuMDAyLTguNjIzbDExLjk5MS00NC4zNjhjMS44MjItNi43NDEtMi40NjUtMTMuNjE2LTkuMzI2LTE0LjkxN0MyOTAuMjE3IDM0LjkxMiAyNzAuNzEgMzIgMjQ5LjYzNSAzMiAxNTIuNDUxIDMyIDc0LjAzIDkyLjI1MiA0NS4wNzUgMTc2SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI5Ljc1NWMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIxLjU2OWMtMS4wMDkgMTMuNjA3LTEuMTgxIDI5LjI4Ny0uMTgxIDQyLjI0NUgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOC4zNmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDMwLjExNEM2Ny4xMzkgNDE0LjY5MiAxNDUuMjY0IDQ4MCAyNDkuNjM1IDQ4MGMyNi4zMDEgMCA0OC41NjItNC41NDQgNjEuMTAxLTcuNzg4IDYuMTY3LTEuNTk1IDEwLjAyNy03LjcwOCA4Ljc4OC0xMy45NTdsLTguODE4LTQ0LjQ5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNoYW5nZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDE2OHYtMTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDM2MFY4MGMwLTIxLjM2NyAyNS44OTktMzIuMDQyIDQwLjk3MS0xNi45NzFsODAgODBjOS4zNzIgOS4zNzMgOS4zNzIgMjQuNTY5IDAgMzMuOTQxbC04MCA4MEM0MDkuOTU2IDI3MS45ODIgMzg0IDI2MS40NTYgMzg0IDI0MHYtNDhIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHptNDg4IDE1MkgxMjh2LTQ4YzAtMjEuMzE0LTI1Ljg2Mi0zMi4wOC00MC45NzEtMTYuOTcxbC04MCA4MGMtOS4zNzIgOS4zNzMtOS4zNzIgMjQuNTY5IDAgMzMuOTQxbDgwIDgwQzEwMi4wNTcgNDYzLjk5NyAxMjggNDUzLjQzNyAxMjggNDMydi00OGgzNjBjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4Y2xhbWF0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHptLTI0OCA1MGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNsYW1hdGlvblRyaWFuZ2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeGNsYW1hdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMTkyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgNDMyYzAgNDQuMTEyLTM1Ljg4OCA4MC04MCA4MHMtODAtMzUuODg4LTgwLTgwIDM1Ljg4OC04MCA4MC04MCA4MCAzNS44ODggODAgODB6TTI1LjI2IDI1LjE5OWwxMy42IDI3MkMzOS40OTkgMzA5Ljk3MiA1MC4wNDEgMzIwIDYyLjgzIDMyMGg2Ni4zNGMxMi43ODkgMCAyMy4zMzEtMTAuMDI4IDIzLjk3LTIyLjgwMWwxMy42LTI3MkMxNjcuNDI1IDExLjQ5IDE1Ni40OTYgMCAxNDIuNzcgMEg0OS4yM0MzNS41MDQgMCAyNC41NzUgMTEuNDkgMjUuMjYgMjUuMTk5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBhbmRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjEyLjY4NiAzMTUuMzE0TDEyMCA0MDhsMzIuOTIyIDMxLjAyOWMxNS4xMiAxNS4xMiA0LjQxMiA0MC45NzEtMTYuOTcgNDAuOTcxaC0xMTJDMTAuNjk3IDQ4MCAwIDQ2OS4yNTUgMCA0NTZWMzQ0YzAtMjEuMzgyIDI1LjgwMy0zMi4wOSA0MC45MjItMTYuOTcxTDcyIDM2MGw5Mi42ODYtOTIuNjg2YzYuMjQ4LTYuMjQ4IDE2LjM3OS02LjI0OCAyMi42MjcgMGwyNS4zNzMgMjUuMzczYzYuMjQ5IDYuMjQ4IDYuMjQ5IDE2LjM3OCAwIDIyLjYyN3ptMjIuNjI4LTExOC42MjhMMzI4IDEwNGwtMzIuOTIyLTMxLjAyOUMyNzkuOTU4IDU3Ljg1MSAyOTAuNjY2IDMyIDMxMi4wNDggMzJoMTEyQzQzNy4zMDMgMzIgNDQ4IDQyLjc0NSA0NDggNTZ2MTEyYzAgMjEuMzgyLTI1LjgwMyAzMi4wOS00MC45MjIgMTYuOTcxTDM3NiAxNTJsLTkyLjY4NiA5Mi42ODZjLTYuMjQ4IDYuMjQ4LTE2LjM3OSA2LjI0OC0yMi42MjcgMGwtMjUuMzczLTI1LjM3M2MtNi4yNDktNi4yNDgtNi4yNDktMTYuMzc4IDAtMjIuNjI3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBhbmRBcnJvd3NBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM0NHYxMTJhMjMuOTQgMjMuOTQgMCAwIDEtMjQgMjRIMzEyYy0yMS4zOSAwLTMyLjA5LTI1LjktMTctNDFsMzYuMi0zNi4yTDIyNCAyOTUuNiAxMTYuNzcgNDAyLjkgMTUzIDQzOWMxNS4wOSAxNS4xIDQuMzkgNDEtMTcgNDFIMjRhMjMuOTQgMjMuOTQgMCAwIDEtMjQtMjRWMzQ0YzAtMjEuNCAyNS44OS0zMi4xIDQxLTE3bDM2LjE5IDM2LjJMMTg0LjQ2IDI1NiA3Ny4xOCAxNDguNyA0MSAxODVjLTE1LjEgMTUuMS00MSA0LjQtNDEtMTdWNTZhMjMuOTQgMjMuOTQgMCAwIDEgMjQtMjRoMTEyYzIxLjM5IDAgMzIuMDkgMjUuOSAxNyA0MWwtMzYuMiAzNi4yTDIyNCAyMTYuNGwxMDcuMjMtMTA3LjNMMjk1IDczYy0xNS4wOS0xNS4xLTQuMzktNDEgMTctNDFoMTEyYTIzLjk0IDIzLjk0IDAgMCAxIDI0IDI0djExMmMwIDIxLjQtMjUuODkgMzIuMS00MSAxN2wtMzYuMTktMzYuMkwyNjMuNTQgMjU2bDEwNy4yOCAxMDcuM0w0MDcgMzI3LjFjMTUuMS0xNS4yIDQxLTQuNSA0MSAxNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeHBhbmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxODBWNTZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTI0YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINjR2ODRjMCA2LjYtNS40IDEyLTEyIDEySDEyYy02LjYgMC0xMi01LjQtMTItMTJ6TTI4OCA0NHY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoODR2ODRjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgzMDBjLTYuNiAwLTEyIDUuNC0xMiAxMnptMTQ4IDI3NmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY4NGgtODRjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTI0YzEzLjMgMCAyNC0xMC43IDI0LTI0VjMzMmMwLTYuNi01LjQtMTItMTItMTJ6TTE2MCA0Njh2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkg2NHYtODRjMC02LjYtNS40LTEyLTEyLTEySDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2MTI0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEyNGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUV4dGVybmFsTGlua0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIsMzIwSDQwMGExNiwxNiwwLDAsMC0xNiwxNlY0NDhINjRWMTI4SDIwOGExNiwxNiwwLDAsMCwxNi0xNlY4MGExNiwxNiwwLDAsMC0xNi0xNkg0OEE0OCw0OCwwLDAsMCwwLDExMlY0NjRhNDgsNDgsMCwwLDAsNDgsNDhINDAwYTQ4LDQ4LDAsMCwwLDQ4LTQ4VjMzNkExNiwxNiwwLDAsMCw0MzIsMzIwWk00ODgsMGgtMTI4Yy0yMS4zNywwLTMyLjA1LDI1LjkxLTE3LDQxbDM1LjczLDM1LjczTDEzNSwzMjAuMzdhMjQsMjQsMCwwLDAsMCwzNEwxNTcuNjcsMzc3YTI0LDI0LDAsMCwwLDM0LDBMNDM1LjI4LDEzMy4zMiw0NzEsMTY5YzE1LDE1LDQxLDQuNSw0MS0xN1YyNEEyNCwyNCwwLDAsMCw0ODgsMFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA4MHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4em0tODggMTZIMjQ4LjAyOWMtMjEuMzEzIDAtMzIuMDggMjUuODYxLTE2Ljk3MSA0MC45NzFsMzEuOTg0IDMxLjk4N0w2Ny41MTUgMzY0LjQ4NWMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDMxLjAyOSAzMS4wMjljNC42ODcgNC42ODYgMTIuMjg1IDQuNjg2IDE2Ljk3MSAwbDE5NS41MjYtMTk1LjUyNiAzMS45ODggMzEuOTkxQzM1OC4wNTggMjYzLjk3NyAzODQgMjUzLjQyNSAzODQgMjMxLjk3OVYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWVEcm9wcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwLjc1IDMzMy4yNWMtMTIgMTItMTguNzUgMjguMjgtMTguNzUgNDUuMjZWNDI0TDAgNDgwbDMyIDMyIDU2LTMyaDQ1LjQ5YzE2Ljk3IDAgMzMuMjUtNi43NCA0NS4yNS0xOC43NGwxMjYuNjQtMTI2LjYyLTEyOC0xMjhMNTAuNzUgMzMzLjI1ek00ODMuODggMjguMTJjLTM3LjQ3LTM3LjUtOTguMjgtMzcuNS0xMzUuNzUgMGwtNzcuMDkgNzcuMDktMTMuMS0xMy4xYy05LjQ0LTkuNDQtMjQuNjUtOS4zMS0zMy45NCAwbC00MC45NyA0MC45N2MtOS4zNyA5LjM3LTkuMzcgMjQuNTcgMCAzMy45NGwxNjEuOTQgMTYxLjk0YzkuNDQgOS40NCAyNC42NSA5LjMxIDMzLjk0IDBMNDE5Ljg4IDI4OGM5LjM3LTkuMzcgOS4zNy0yNC41NyAwLTMzLjk0bC0xMy4xLTEzLjEgNzcuMDktNzcuMDljMzcuNTEtMzcuNDggMzcuNTEtOTguMjYuMDEtMTM1Ljc1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWVTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgNDAwYy03NS44NSAwLTEzNy4yNS01OC43MS0xNDIuOS0xMzMuMTFMNzIuMiAxODUuODJjLTEzLjc5IDE3LjMtMjYuNDggMzUuNTktMzYuNzIgNTUuNTlhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM4OS43MSAzNzYuNDEgMTk3LjA3IDQ0OCAzMjAgNDQ4YzI2LjkxIDAgNTIuODctNCA3Ny44OS0xMC40NkwzNDYgMzk3LjM5YTE0NC4xMyAxNDQuMTMgMCAwIDEtMjYgMi42MXptMzEzLjgyIDU4LjFsLTExMC41NS04NS40NGEzMzEuMjUgMzMxLjI1IDAgMCAwIDgxLjI1LTEwMi4wNyAzMi4zNSAzMi4zNSAwIDAgMCAwLTI5LjE5QzU1MC4yOSAxMzUuNTkgNDQyLjkzIDY0IDMyMCA2NGEzMDguMTUgMzA4LjE1IDAgMCAwLTE0Ny4zMiAzNy43TDQ1LjQ2IDMuMzdBMTYgMTYgMCAwIDAgMjMgNi4xOEwzLjM3IDMxLjQ1QTE2IDE2IDAgMCAwIDYuMTggNTMuOWw1ODguMzYgNDU0LjczYTE2IDE2IDAgMCAwIDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdhMTYgMTYgMCAwIDAtMi44Mi0yMi40NXptLTE4My43Mi0xNDJsLTM5LjMtMzAuMzhBOTQuNzUgOTQuNzUgMCAwIDAgNDE2IDI1NmE5NC43NiA5NC43NiAwIDAgMC0xMjEuMzEtOTIuMjFBNDcuNjUgNDcuNjUgMCAwIDEgMzA0IDE5MmE0Ni42NCA0Ni42NCAwIDAgMS0xLjU0IDEwbC03My42MS01Ni44OUExNDIuMzEgMTQyLjMxIDAgMCAxIDMyMCAxMTJhMTQzLjkyIDE0My45MiAwIDAgMSAxNDQgMTQ0YzAgMjEuNjMtNS4yOSA0MS43OS0xMy45IDYwLjExelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFFeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcyLjUyIDI0MS40QzUxOC4yOSAxMzUuNTkgNDEwLjkzIDY0IDI4OCA2NFM1Ny42OCAxMzUuNjQgMy40OCAyNDEuNDFhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM1Ny43MSAzNzYuNDEgMTY1LjA3IDQ0OCAyODggNDQ4czIzMC4zMi03MS42NCAyODQuNTItMTc3LjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTl6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAxNDQtMTQ0IDE0My45MyAxNDMuOTMgMCAwIDEtMTQ0IDE0NHptMC0yNDBhOTUuMzEgOTUuMzEgMCAwIDAtMjUuMzEgMy43OSA0Ny44NSA0Ny44NSAwIDAgMS02Ni45IDY2LjlBOTUuNzggOTUuNzggMCAxIDAgMjg4IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1Mi41NyAxMjhjLTI4LjA5IDAtNTQuMDkgNC41Mi03Ny4wNiAxMi44NmwxMi40MS0xMjMuMTFDMjg5IDcuMzEgMjc5LjgxLTEuMTggMjY5LjMzLjEzIDE4OS42MyAxMC4xMyAxMjggNzcuNjQgMTI4IDE1OS40M2MwIDI4LjA5IDQuNTIgNTQuMDkgMTIuODYgNzcuMDZMMTcuNzUgMjI0LjA4QzcuMzEgMjIzLTEuMTggMjMyLjE5LjEzIDI0Mi42N2MxMCA3OS43IDc3LjUxIDE0MS4zMyAxNTkuMyAxNDEuMzMgMjguMDkgMCA1NC4wOS00LjUyIDc3LjA2LTEyLjg2bC0xMi40MSAxMjMuMTFjLTEuMDUgMTAuNDMgOC4xMSAxOC45MyAxOC41OSAxNy42MiA3OS43LTEwIDE0MS4zMy03Ny41MSAxNDEuMzMtMTU5LjMgMC0yOC4wOS00LjUyLTU0LjA5LTEyLjg2LTc3LjA2bDEyMy4xMSAxMi40MWMxMC40NCAxLjA1IDE4LjkzLTguMTEgMTcuNjItMTguNTktMTAtNzkuNy03Ny41MS0xNDEuMzMtMTU5LjMtMTQxLjMzek0yNTYgMjg4YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXN0QmFja3dhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0MzZWNzZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnYxNTEuOUwyMzUuNSA3MS40QzI1Ni4xIDU0LjMgMjg4IDY4LjYgMjg4IDk2djEzMS45TDQ1OS41IDcxLjRDNDgwLjEgNTQuMyA1MTIgNjguNiA1MTIgOTZ2MzIwYzAgMjcuNC0zMS45IDQxLjctNTIuNSAyNC42TDI4OCAyODUuM1Y0MTZjMCAyNy40LTMxLjkgNDEuNy01Mi41IDI0LjZMNjQgMjg1LjNWNDM2YzAgNi42LTUuNCAxMi0xMiAxMkgxMmMtNi42IDAtMTItNS40LTEyLTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXN0Rm9yd2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgNzZ2MzYwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMlYyODQuMUwyNzYuNSA0NDAuNmMtMjAuNiAxNy4yLTUyLjUgMi44LTUyLjUtMjQuNlYyODQuMUw1Mi41IDQ0MC42QzMxLjkgNDU3LjggMCA0NDMuNCAwIDQxNlY5NmMwLTI3LjQgMzEuOS00MS43IDUyLjUtMjQuNkwyMjQgMjI2LjhWOTZjMC0yNy40IDMxLjktNDEuNyA1Mi41LTI0LjZMNDQ4IDIyNi44Vjc2YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZhdWNldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIsMjU2SDMxMy4zOWMtMTUuNzEtMTMuNDQtMzUuNDYtMjMuMDctNTcuMzktMjhWMTgwLjQ0bC0zMi0zLjM4LTMyLDMuMzhWMjI4Yy0yMS45Myw1LTQxLjY4LDE0LjYtNTcuMzksMjhIMTZBMTYsMTYsMCwwLDAsMCwyNzJ2OTZhMTYsMTYsMCwwLDAsMTYsMTZoOTIuNzlDMTI5LjM4LDQyMS43MywxNzMsNDQ4LDIyNCw0NDhzOTQuNjItMjYuMjcsMTE1LjIxLTY0SDM1MmEzMiwzMiwwLDAsMSwzMiwzMiwzMiwzMiwwLDAsMCwzMiwzMmg2NGEzMiwzMiwwLDAsMCwzMi0zMkExNjAsMTYwLDAsMCwwLDM1MiwyNTZaTTgxLjU5LDE1OS45MWwxNDIuNDEtMTUsMTQyLjQxLDE1YzkuNDIsMSwxNy41OS02LjgxLDE3LjU5LTE2LjhWMTEyLjg5YzAtMTAtOC4xNy0xNy44LTE3LjU5LTE2LjgxTDI1NiwxMDcuNzRWODBhMTYsMTYsMCwwLDAtMTYtMTZIMjA4YTE2LDE2LDAsMCwwLTE2LDE2djI3Ljc0TDgxLjU5LDk2LjA4QzcyLjE3LDk1LjA5LDY0LDEwMi45LDY0LDExMi44OXYzMC4yMkM2NCwxNTMuMSw3Mi4xNywxNjAuOTEsODEuNTksMTU5LjkxWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGYXggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDE2MFY3Ny4yNWEzMiAzMiAwIDAgMC05LjM4LTIyLjYzTDQyNS4zNyA5LjM3QTMyIDMyIDAgMCAwIDQwMi43NSAwSDE2MGEzMiAzMiAwIDAgMC0zMiAzMnY0NDhhMzIgMzIgMCAwIDAgMzIgMzJoMzIwYTMyIDMyIDAgMCAwIDMyLTMyVjE5MmEzMiAzMiAwIDAgMC0zMi0zMnpNMjg4IDQzMmExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDMyYTE2IDE2IDAgMCAxIDE2IDE2em0wLTEyOGExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDMyYTE2IDE2IDAgMCAxIDE2IDE2em0xMjggMTI4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTAtMTI4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTAtMTEySDE5MlY2NGgxNjB2NDhhMTYgMTYgMCAwIDAgMTYgMTZoNDh6TTY0IDEyOEgzMmEzMiAzMiAwIDAgMC0zMiAzMnYzMjBhMzIgMzIgMCAwIDAgMzIgMzJoMzJhMzIgMzIgMCAwIDAgMzItMzJWMTYwYTMyIDMyIDAgMCAwLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGZWF0aGVyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAwQzQ2MC4yMiAzLjU2IDk2LjQ0IDM4LjIgNzEuMDEgMjg3LjYxYy0zLjA5IDI2LjY2LTQuODQgNTMuNDQtNS45OSA4MC4yNGwxNzguODctMTc4LjY5YzYuMjUtNi4yNSAxNi40LTYuMjUgMjIuNjUgMHM2LjI1IDE2LjM4IDAgMjIuNjNMNy4wNCA0NzEuMDNjLTkuMzggOS4zNy05LjM4IDI0LjU3IDAgMzMuOTQgOS4zOCA5LjM3IDI0LjU5IDkuMzcgMzMuOTggMGw1Ny4xMy01Ny4wN2M0Mi4wOS0uMTQgODQuMTUtMi41MyAxMjUuOTYtNy4zNiA1My40OC01LjQ0IDk3LjAyLTI2LjQ3IDEzMi41OC01Ni41NEgyNTUuNzRsMTQ2Ljc5LTQ4Ljg4YzExLjI1LTE0Ljg5IDIxLjM3LTMwLjcxIDMwLjQ1LTQ3LjEyaC04MS4xNGwxMDYuNTQtNTMuMjFDNTAwLjI5IDEzMi44NiA1MTAuMTkgMjYuMjYgNTEyIDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlYXRoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY3LjE0IDQ0Ljg0Yy02Mi41NS02Mi40OC0xNjEuNjctNjQuNzgtMjUyLjI4IDI1LjczLTc4LjYxIDc4LjUyLTYwLjk4IDYwLjkyLTg1Ljc1IDg1LjY2LTYwLjQ2IDYwLjM5LTcwLjM5IDE1MC44My02My42NCAyMTEuMTdsMTc4LjQ0LTE3OC4yNWM2LjI2LTYuMjUgMTYuNC02LjI1IDIyLjY1IDBzNi4yNSAxNi4zOCAwIDIyLjYzTDcuMDQgNDcxLjAzYy05LjM4IDkuMzctOS4zOCAyNC41NyAwIDMzLjk0IDkuMzggOS4zNyAyNC42IDkuMzcgMzMuOTggMGw2Ni4xLTY2LjAzQzE1OS40MiA0NTQuNjUgMjc5IDQ1Ny4xMSAzNTMuOTUgMzg0aC05OC4xOWwxNDcuNTctNDkuMTRjNDkuOTktNDkuOTMgMzYuMzgtMzYuMTggNDYuMzEtNDYuODZoLTk3Ljc4bDEzMS41NC00My44YzQ1LjQ0LTc0LjQ2IDM0LjMxLTE0OC44NC0xNi4yNi0xOTkuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZlbWFsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMGMzNS4zNDYgMCA2NCAyOC42NTQgNjQgNjRzLTI4LjY1NCA2NC02NCA2NGMtMzUuMzQ2IDAtNjQtMjguNjU0LTY0LTY0UzkyLjY1NCAwIDEyOCAwbTExOS4yODMgMzU0LjE3OWwtNDgtMTkyQTI0IDI0IDAgMCAwIDE3NiAxNDRoLTExLjM2Yy0yMi43MTEgMTAuNDQzLTQ5LjU5IDEwLjg5NC03My4yOCAwSDgwYTI0IDI0IDAgMCAwLTIzLjI4MyAxOC4xNzlsLTQ4IDE5MkM0LjkzNSAzNjkuMzA1IDE2LjM4MyAzODQgMzIgMzg0aDU2djEwNGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjM4NGg1NmMxNS41OTEgMCAyNy4wNzEtMTQuNjcxIDIzLjI4My0yOS44MjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpZ2h0ZXJKZXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDIyNGwtMTI4LTE2LTQ4LTE2aC0yNEwyMjcuMTU4IDQ0aDM5LjUwOUMyNzguMzMzIDQ0IDI4OCA0MS4zNzUgMjg4IDM4cy05LjY2Ny02LTIxLjMzMy02SDE1MnYxMmgxNnYxNjRoLTQ4bC02Ni42NjctODBIMTguNjY3TDggMTM4LjY2N1YyMDhoOHYxNmg0OHYyLjY2NmwtNjQgOHY0Mi42NjdsNjQgOFYyODhIMTZ2MTZIOHY2OS4zMzNMMTguNjY3IDM4NGgzNC42NjdMMTIwIDMwNGg0OHYxNjRoLTE2djEyaDExNC42NjdjMTEuNjY3IDAgMjEuMzMzLTIuNjI1IDIxLjMzMy02cy05LjY2Ny02LTIxLjMzMy02aC0zOS41MDlMMzQ0IDMyMGgyNGw0OC0xNiAxMjgtMTZjOTYtMjEuMzMzIDk2LTI2LjU4MyA5Ni0zMiAwLTUuNDE3IDAtMTAuNjY3LTk2LTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjQgMjM2YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnY4em0wLTY0YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnY4em0wLTcydjhjMCA2LjYtNS40IDEyLTEyIDEySDEwOGMtNi42IDAtMTItNS40LTEyLTEydi04YzAtNi42IDUuNC0xMiAxMi0xMmgxNjhjNi42IDAgMTIgNS40IDEyIDEyem05Ni0xMTQuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVBcmNoaXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpNMTI4LjQgMzM2Yy0xNy45IDAtMzIuNCAxMi4xLTMyLjQgMjcgMCAxNSAxNC42IDI3IDMyLjUgMjdzMzIuNC0xMi4xIDMyLjQtMjctMTQuNi0yNy0zMi41LTI3ek0yMjQgMTM2VjBoLTYzLjZ2MzJoLTMyVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6TTk1LjkgMzJoMzJ2MzJoLTMyem0zMi4zIDM4NGMtMzMuMiAwLTU4LTMwLjQtNTEuNC02Mi45TDk2LjQgMjU2di0zMmgzMnYtMzJoLTMydi0zMmgzMnYtMzJoLTMyVjk2aDMyVjY0aDMydjMyaC0zMnYzMmgzMnYzMmgtMzJ2MzJoMzJ2MzJoLTMydjMyaDIyLjFjNS43IDAgMTAuNyA0LjEgMTEuOCA5LjdsMTcuMyA4Ny43YzYuNCAzMi40LTE4LjQgNjIuNi01MS40IDYyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVBdWRpbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bS02NCAyNjhjMCAxMC43LTEyLjkgMTYtMjAuNSA4LjVMMTA0IDM3Nkg3NmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoMjhsMzUuNS0zNi41YzcuNi03LjYgMjAuNS0yLjIgMjAuNSA4LjV2MTM2em0zMy4yLTQ3LjZjOS4xLTkuMyA5LjEtMjQuMSAwLTMzLjQtMjIuMS0yMi44IDEyLjItNTYuMiAzNC40LTMzLjUgMjcuMiAyNy45IDI3LjIgNzIuNCAwIDEwMC40LTIxLjggMjIuMy01Ni45LTEwLjQtMzQuNC0zMy41em04Ni0xMTcuMWM1NC40IDU1LjkgNTQuNCAxNDQuOCAwIDIwMC44LTIxLjggMjIuNC01Ny0xMC4zLTM0LjQtMzMuNSAzNi4yLTM3LjIgMzYuMy05Ni41IDAtMTMzLjgtMjIuMS0yMi44IDEyLjMtNTYuMyAzNC40LTMzLjV6TTM4NCAxMjEuOXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOTQxVjEyOEgyNTZWMGg2LjA1OWM2LjM2NSAwIDEyLjQ3IDIuNTI5IDE2Ljk3MSA3LjAyOWw5Ny45NDEgOTcuOTQxQTI0LjAwNSAyNC4wMDUgMCAwIDEgMzg0IDEyMS45NDF6TTI0OCAxNjBjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OHpNMTIzLjIwNiA0MDAuNTA1YTUuNCA1LjQgMCAwIDEtNy42MzMuMjQ2bC02NC44NjYtNjAuODEyYTUuNCA1LjQgMCAwIDEgMC03Ljg3OWw2NC44NjYtNjAuODEyYTUuNCA1LjQgMCAwIDEgNy42MzMuMjQ2bDE5LjU3OSAyMC44ODVhNS40IDUuNCAwIDAgMS0uMzcyIDcuNzQ3TDEwMS42NSAzMzZsNDAuNzYzIDM1Ljg3NGE1LjQgNS40IDAgMCAxIC4zNzIgNy43NDdsLTE5LjU3OSAyMC44ODR6bTUxLjI5NSA1MC40NzlsLTI3LjQ1My03Ljk3YTUuNDAyIDUuNDAyIDAgMCAxLTMuNjgxLTYuNjkybDYxLjQ0LTIxMS42MjZhNS40MDIgNS40MDIgMCAwIDEgNi42OTItMy42ODFsMjcuNDUyIDcuOTdhNS40IDUuNCAwIDAgMSAzLjY4IDYuNjkybC02MS40NCAyMTEuNjI2YTUuMzk3IDUuMzk3IDAgMCAxLTYuNjkgMy42ODF6bTE2MC43OTItMTExLjA0NWwtNjQuODY2IDYwLjgxMmE1LjQgNS40IDAgMCAxLTcuNjMzLS4yNDZsLTE5LjU4LTIwLjg4NWE1LjQgNS40IDAgMCAxIC4zNzItNy43NDdMMjg0LjM1IDMzNmwtNDAuNzYzLTM1Ljg3NGE1LjQgNS40IDAgMCAxLS4zNzItNy43NDdsMTkuNTgtMjAuODg1YTUuNCA1LjQgMCAwIDEgNy42MzMtLjI0Nmw2NC44NjYgNjAuODEyYTUuNCA1LjQgMCAwIDEtLjAwMSA3Ljg3OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUNvbnRyYWN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDY0YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTE5Mi44MSAyNDhIMzA0YzguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2aC00Ny4xOWMtMTYuNDUgMC0zMS4yNy05LjE0LTM4LjY0LTIzLjg2LTIuOTUtNS45Mi04LjA5LTYuNTItMTAuMTctNi41MnMtNy4yMi41OS0xMC4wMiA2LjE5bC03LjY3IDE1LjM0YTE1Ljk4NiAxNS45ODYgMCAwIDEtMTQuMzEgOC44NGMtLjM4IDAtLjc1LS4wMi0xLjE0LS4wNS02LjQ1LS40NS0xMi00Ljc1LTE0LjAzLTEwLjg5TDE0NCAzNTQuNTlsLTEwLjYxIDMxLjg4Yy01Ljg5IDE3LjY2LTIyLjM4IDI5LjUzLTQxIDI5LjUzSDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2aDEyLjM5YzQuODMgMCA5LjExLTMuMDggMTAuNjQtNy42NmwxOC4xOS01NC42NGMzLjMtOS44MSAxMi40NC0xNi40MSAyMi43OC0xNi40MXMxOS40OCA2LjU5IDIyLjc3IDE2LjQxbDEzLjg4IDQxLjY0YzE5Ljc3LTE2LjE5IDU0LjA1LTkuNyA2NiAxNC4xNiAyLjAyIDQuMDYgNS45NiA2LjUgMTAuMTYgNi41ek0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVDc3YgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0tOTYgMTQ0YzAgNC40Mi0zLjU4IDgtOCA4aC04Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg4YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4aC04Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4di0zMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDhjNC40MiAwIDggMy41OCA4IDh2MTZ6bTQ0LjI3IDEwNEgxNjBjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxMi4yN2M1Ljk1IDAgMTAuNDEtMy41IDEwLjQxLTYuNjIgMC0xLjMtLjc1LTIuNjYtMi4xMi0zLjg0bC0yMS44OS0xOC43N2MtOC40Ny03LjIyLTEzLjMzLTE3LjQ4LTEzLjMzLTI4LjE0IDAtMjEuMyAxOS4wMi0zOC42MiA0Mi40MS0zOC42MkgyMDBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTEyLjI3Yy01Ljk1IDAtMTAuNDEgMy41LTEwLjQxIDYuNjIgMCAxLjMuNzUgMi42NiAyLjEyIDMuODRsMjEuODkgMTguNzdjOC40NyA3LjIyIDEzLjMzIDE3LjQ4IDEzLjMzIDI4LjE0LjAxIDIxLjI5LTE5IDM4LjYyLTQyLjM5IDM4LjYyek0yNTYgMjY0djIwLjhjMCAyMC4yNyA1LjcgNDAuMTcgMTYgNTYuODggMTAuMy0xNi43IDE2LTM2LjYxIDE2LTU2Ljg4VjI2NGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYyMC44YzAgMzUuNDgtMTIuODggNjguODktMzYuMjggOTQuMDktMy4wMiAzLjI1LTcuMjcgNS4xMS0xMS43MiA1LjExcy04LjctMS44Ni0xMS43Mi01LjExYy0yMy40LTI1LjItMzYuMjgtNTguNjEtMzYuMjgtOTQuMDlWMjY0YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4em0xMjEtMTU5TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVEb3dubG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTc2LjQ1IDIxMS4zNmwtOTYuNDIgOTUuN2MtNi42NSA2LjYxLTE3LjM5IDYuNjEtMjQuMDQgMGwtOTYuNDItOTUuN0M3My40MiAzMzcuMjkgODAuNTQgMzIwIDk0LjgyIDMyMEgxNjB2LTgwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djgwaDY1LjE4YzE0LjI4IDAgMjEuNCAxNy4yOSAxMS4yNyAyNy4zNnpNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlRXhjZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02MC4xIDEwNi41TDIyNCAzMzZsNjAuMSA5My41YzUuMSA4LS42IDE4LjUtMTAuMSAxOC41aC0zNC45Yy00LjQgMC04LjUtMi40LTEwLjYtNi4zQzIwOC45IDQwNS41IDE5MiAzNzMgMTkyIDM3M2MtNi40IDE0LjgtMTAgMjAtMzYuNiA2OC44LTIuMSAzLjktNi4xIDYuMy0xMC41IDYuM0gxMTBjLTkuNSAwLTE1LjItMTAuNS0xMC4xLTE4LjVsNjAuMy05My41LTYwLjMtOTMuNWMtNS4yLTggLjYtMTguNSAxMC4xLTE4LjVoMzQuOGM0LjQgMCA4LjUgMi40IDEwLjYgNi4zIDI2LjEgNDguOCAyMCAzMy42IDM2LjYgNjguNSAwIDAgNi4xLTExLjcgMzYuNi02OC41IDIuMS0zLjkgNi4yLTYuMyAxMC42LTYuM0gyNzRjOS41LS4xIDE1LjIgMTAuNCAxMC4xIDE4LjR6TTM4NCAxMjEuOXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVFeHBvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDEyMS45YzAtNi4zLTIuNS0xMi40LTctMTYuOUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4ek01NzEgMzA4bC05NS43LTk2LjRjLTEwLjEtMTAuMS0yNy40LTMtMjcuNCAxMS4zVjI4OGgtNjR2NjRoNjR2NjUuMmMwIDE0LjMgMTcuMyAyMS40IDI3LjQgMTEuM0w1NzEgMzMyYzYuNi02LjYgNi42LTE3LjQgMC0yNHptLTM3OSAyOHYtMzJjMC04LjggNy4yLTE2IDE2LTE2aDE3NlYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNFYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjM1MkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUltYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxMjEuOTQxVjEyOEgyNTZWMGg2LjA1OWEyNCAyNCAwIDAgMSAxNi45NyA3LjAyOWw5Ny45NDEgOTcuOTQxYTI0LjAwMiAyNC4wMDIgMCAwIDEgNy4wMyAxNi45NzF6TTI0OCAxNjBjLTEzLjIgMC0yNC0xMC44LTI0LTI0VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OHptLTEzNS40NTUgMTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHMtMjEuNDkgNDgtNDggNDgtNDgtMjEuNDktNDgtNDggMjEuNDkxLTQ4IDQ4LTQ4em0yMDggMjQwaC0yNTZsLjQ4NS00OC40ODVMMTA0LjU0NSAzMjhjNC42ODYtNC42ODYgMTEuNzk5LTQuMjAxIDE2LjQ4NS40ODVMMTYwLjU0NSAzNjggMjY0LjA2IDI2NC40ODVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDMyMC41NDUgMzA0djExMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUltcG9ydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMTEydi02NHptNDg5LTE4M0w0MDcuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDM4NHYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMTUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNjRoMTI4di02NS4yYzAtMTQuMyAxNy4zLTIxLjQgMjcuNC0xMS4zTDM3OSAzMDhjNi42IDYuNyA2LjYgMTcuNCAwIDI0bC05NS43IDk2LjRjLTEwLjEgMTAuMS0yNy40IDMtMjcuNC0xMS4zVjM1MkgxMjh2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMzc2Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZUludm9pY2VEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6TTY0IDcyYzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOFY3MnptMCA4MHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04em0xNDQgMjYzLjg4VjQ0MGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di0yNC4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWMjMyYzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djI0LjI5YzExLjI5LjU4IDIyLjI3IDQuNTEgMzEuMzcgMTEuMzUgMy45IDIuOTMgNC4xIDguNzcuNTcgMTIuMTRsLTExLjc1IDExLjIxYy0yLjc3IDIuNjQtNi44OSAyLjc2LTEwLjEzLjczLTMuODctMi40My04LjI2LTMuNzItMTIuODItMy43MmgtMjguMTFjLTYuNSAwLTExLjggNS45Mi0xMS44IDEzLjE5IDAgNS45NSAzLjYxIDExLjE5IDguNzcgMTIuNzNsNDUgMTMuNWMxOC41OSA1LjU4IDMxLjU4IDIzLjQyIDMxLjU4IDQzLjM5IDAgMjQuNTMtMTkuMDUgNDQuNDQtNDIuNjcgNDUuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVJbnZvaWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAyNTZIOTZ2NjRoMTkydi02NHptODktMTUxTDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDY0YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTI1NiAzMDRjMCA0LjQyLTMuNTggOC04IDhoLTgwYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZ6bTAtMjAwdjk2YzAgOC44NC03LjE2IDE2LTE2IDE2SDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtOTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMjI0YzguODQgMCAxNiA3LjE2IDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlTWVkaWNhbEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTM2VjBIODhDNzQuNyAwIDY0IDEwLjcgNjQgMjR2MjMySDhjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMTQwLjljMyAwIDUuOCAxLjcgNy4yIDQuNGwxOS45IDM5LjggNTYuOC0xMTMuN2MyLjktNS45IDExLjQtNS45IDE0LjMgMGwzNC43IDY5LjVIMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2aC04OS45TDI0MCAyNzUuOGwtNTYuOCAxMTMuN2MtMi45IDUuOS0xMS40IDUuOS0xNC4zIDBMMTM0LjEgMzIwSDY0djE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDMxMmMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTE1My0zMUwzNDMuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDMyMHYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlTWVkaWNhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjQgMTYwdjQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVBkZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODEuOSAyNTYuMWMtNS0xNi00LjktNDYuOS0yLTQ2LjkgOC40IDAgNy42IDM2LjkgMiA0Ni45em0tMS43IDQ3LjJjLTcuNyAyMC4yLTE3LjMgNDMuMy0yOC40IDYyLjcgMTguMy03IDM5LTE3LjIgNjIuOS0yMS45LTEyLjctOS42LTI0LjktMjMuNC0zNC41LTQwLjh6TTg2LjEgNDI4LjFjMCAuOCAxMy4yLTUuNCAzNC45LTQwLjItNi43IDYuMy0yOS4xIDI0LjUtMzQuOSA0MC4yek0yNDggMTYwaDEzNnYzMjhjMCAxMy4zLTEwLjcgMjQtMjQgMjRIMjRjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjI0QzAgMTAuNyAxMC43IDAgMjQgMGgyMDB2MTM2YzAgMTMuMiAxMC44IDI0IDI0IDI0em0tOCAxNzEuOGMtMjAtMTIuMi0zMy4zLTI5LTQyLjctNTMuOCA0LjUtMTguNSAxMS42LTQ2LjYgNi4yLTY0LjItNC43LTI5LjQtNDIuNC0yNi41LTQ3LjgtNi44LTUgMTguMy0uNCA0NC4xIDguMSA3Ny0xMS42IDI3LjYtMjguNyA2NC42LTQwLjggODUuOC0uMSAwLS4xLjEtLjIuMS0yNy4xIDEzLjktNzMuNiA0NC41LTU0LjUgNjggNS42IDYuOSAxNiAxMCAyMS41IDEwIDE3LjkgMCAzNS43LTE4IDYxLjEtNjEuOCAyNS44LTguNSA1NC4xLTE5LjEgNzktMjMuMiAyMS43IDExLjggNDcuMSAxOS41IDY0IDE5LjUgMjkuMiAwIDMxLjItMzIgMTkuNy00My40LTEzLjktMTMuNi01NC4zLTkuNy03My42LTcuMnpNMzc3IDEwNUwyNzkgN2MtNC41LTQuNS0xMC42LTctMTctN2gtNnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tNzQuMSAyNTUuM2M0LjEtMi43LTIuNS0xMS45LTQyLjgtOSAzNy4xIDE1LjggNDIuOCA5IDQyLjggOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVBvd2VycG9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkzLjcgMjcxLjJjOC44IDAgMTUuNSAyLjcgMjAuMyA4LjEgOS42IDEwLjkgOS44IDMyLjctLjIgNDQuMS00LjkgNS42LTExLjkgOC41LTIxLjEgOC41aC0yNi45di02MC43aDI3Ljl6TTM3NyAxMDVMMjc5IDdjLTQuNS00LjUtMTAuNi03LTE3LTdoLTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTE1MyAzMVYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em01MyAxNjUuMmMwIDkwLjMtODguOCA3Ny42LTExMS4xIDc3LjZWNDM2YzAgNi42LTUuNCAxMi0xMiAxMmgtMzAuOGMtNi42IDAtMTItNS40LTEyLTEyVjIzNi4yYzAtNi42IDUuNC0xMiAxMi0xMmg4MWM0NC41IDAgNzIuOSAzMi44IDcyLjkgNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVQcmVzY3JpcHRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02OC41MyAxNzkuNDhsMTEuMzEgMTEuMzFjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMjkuOSAyOS45TDMwNCA0MDkuMzhjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMjQwIDQxMy4yNWwtMzAuMDYgMzAuMDZjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMTc2IDQzMmMtNi4yNS02LjI1LTYuMjUtMTYuMzggMC0yMi42M2wzMC4wNi0zMC4wNkwxNDYuNzQgMzIwSDEyOHY0OGMwIDguODQtNy4xNiAxNi0xNiAxNkg5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMjA4YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzM1LjM1IDAgNjQgMjguNjUgNjQgNjQgMCAyNC4yMi0xMy42MiA0NS4wNS0zMy40NiA1NS45MkwyNDAgMzQ1LjM4bDI5LjktMjkuOWM2LjI1LTYuMjUgMTYuMzgtNi4yNSAyMi42MyAwek0xNzYgMjcyaC00OHYtMzJoNDhjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTZ6bTIwOC0xNTAuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVTaWduYXR1cmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE4LjE3IDQyNC4xNGMtMi45NS01LjkyLTguMDktNi41Mi0xMC4xNy02LjUycy03LjIyLjU5LTEwLjAyIDYuMTlsLTcuNjcgMTUuMzRjLTYuMzcgMTIuNzgtMjUuMDMgMTEuMzctMjkuNDgtMi4wOUwxNDQgMzg2LjU5bC0xMC42MSAzMS44OGMtNS44OSAxNy42Ni0yMi4zOCAyOS41My00MSAyOS41M0g4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNmgxMi4zOWM0LjgzIDAgOS4xMS0zLjA4IDEwLjY0LTcuNjZsMTguMTktNTQuNjRjMy4zLTkuODEgMTIuNDQtMTYuNDEgMjIuNzgtMTYuNDFzMTkuNDggNi41OSAyMi43NyAxNi40MWwxMy44OCA0MS42NGMxOS43NS0xNi4xOSA1NC4wNi05LjcgNjYgMTQuMTYgMS44OSAzLjc4IDUuNDkgNS45NSA5LjM2IDYuMjZ2LTgyLjEybDEyOC0xMjcuMDlWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtNDBsLTEyOC0uMTFjLTE2LjEyLS4zMS0zMC41OC05LjI4LTM3LjgzLTIzLjc1ek0zODQgMTIxLjljMC02LjMtMi41LTEyLjQtNy0xNi45TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMXptLTk2IDIyNS4wNlY0MTZoNjguOTlsMTYxLjY4LTE2Mi43OC02Ny44OC02Ny44OEwyODggMzQ2Ljk2em0yODAuNTQtMTc5LjYzbC0zMS44Ny0zMS44N2MtOS45NC05Ljk0LTI2LjA3LTkuOTQtMzYuMDEgMGwtMjcuMjUgMjcuMjUgNjcuODggNjcuODggMjcuMjUtMjcuMjVjOS45NS05Ljk0IDkuOTUtMjYuMDcgMC0zNi4wMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsZVVwbG9hZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTY1LjE4IDIxNi4wMUgyMjR2ODBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtODBIOTQuODJjLTE0LjI4IDAtMjEuNDEtMTcuMjktMTEuMjctMjcuMzZsOTYuNDItOTUuN2M2LjY1LTYuNjEgMTcuMzktNi42MSAyNC4wNCAwbDk2LjQyIDk1LjdjMTAuMTUgMTAuMDcgMy4wMyAyNy4zNi0xMS4yNSAyNy4zNnpNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlVmlkZW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDEyMS45NDFWMTI4SDI1NlYwaDYuMDU5YzYuMzY1IDAgMTIuNDcgMi41MjkgMTYuOTcxIDcuMDI5bDk3Ljk0MSA5Ny45NDFBMjQuMDA1IDI0LjAwNSAwIDAgMSAzODQgMTIxLjk0MXpNMjI0IDEzNlYwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2NDY0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em05NiAxNDQuMDE2djExMS45NjNjMCAyMS40NDUtMjUuOTQzIDMxLjk5OC00MC45NzEgMTYuOTcxTDIyNCAzNTMuOTQxVjM5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIODhjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyODBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDExMmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MzguMDU5bDU1LjAyOS01NS4wMTNjMTUuMDExLTE1LjAxIDQwLjk3MS00LjQ5MSA0MC45NzEgMTYuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbGVXb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNTcuMSAxMjBIMzA1YzcuNyAwIDEzLjQgNy4xIDExLjcgMTQuN2wtMzggMTY4Yy0xLjIgNS41LTYuMSA5LjMtMTEuNyA5LjNoLTM4Yy01LjUgMC0xMC4zLTMuOC0xMS42LTkuMS0yNS44LTEwMy41LTIwLjgtODEuMi0yNS42LTExMC41aC0uNWMtMS4xIDE0LjMtMi40IDE3LjQtMjUuNiAxMTAuNS0xLjMgNS4zLTYuMSA5LjEtMTEuNiA5LjFIMTE3Yy01LjYgMC0xMC41LTMuOS0xMS43LTkuNGwtMzcuOC0xNjhjLTEuNy03LjUgNC0xNC42IDExLjctMTQuNmgyNC41YzUuNyAwIDEwLjcgNCAxMS44IDkuNyAxNS42IDc4IDIwLjEgMTA5LjUgMjEgMTIyLjIgMS42LTEwLjIgNy4zLTMyLjcgMjkuNC0xMjIuNyAxLjMtNS40IDYuMS05LjEgMTEuNy05LjFoMjkuMWM1LjYgMCAxMC40IDMuOCAxMS43IDkuMiAyNCAxMDAuNCAyOC44IDEyNCAyOS42IDEyOS40LS4yLTExLjItMi42LTE3LjggMjEuNi0xMjkuMiAxLTUuNiA1LjktOS41IDExLjUtOS41ek0zODQgMTIxLjl2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptMTYwLTE0LjF2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaWxsRHJpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMzIwcy02NCA5Mi42NS02NCAxMjhjMCAzNS4zNSAyOC42NiA2NCA2NCA2NHM2NC0yOC42NSA2NC02NC02NC0xMjgtNjQtMTI4em0tOS4zNy0xMDIuOTRMMjk0Ljk0IDkuMzdDMjg4LjY5IDMuMTIgMjgwLjUgMCAyNzIuMzEgMHMtMTYuMzggMy4xMi0yMi42MiA5LjM3bC04MS41OCA4MS41OEw4MS45MyA0Ljc2Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MiAwTDM2LjY5IDI3LjM4Yy02LjI0IDYuMjUtNi4yNCAxNi4zOCAwIDIyLjYybDg2LjE5IDg2LjE4LTk0Ljc2IDk0Ljc2Yy0zNy40OSAzNy40OC0zNy40OSA5OC4yNiAwIDEzNS43NWwxMTcuMTkgMTE3LjE5YzE4Ljc0IDE4Ljc0IDQzLjMxIDI4LjEyIDY3Ljg3IDI4LjEyIDI0LjU3IDAgNDkuMTMtOS4zNyA2Ny44Ny0yOC4xMmwyMjEuNTctMjIxLjU3YzEyLjUtMTIuNSAxMi41LTMyLjc1LjAxLTQ1LjI1em0tMTE2LjIyIDcwLjk3SDY1LjkzYzEuMzYtMy44NCAzLjU3LTcuOTggNy40My0xMS44M2wxMy4xNS0xMy4xNSA4MS42MS04MS42MSA1OC42IDU4LjZjMTIuNDkgMTIuNDkgMzIuNzUgMTIuNDkgNDUuMjQgMHMxMi40OS0zMi43NSAwLTQ1LjI0bC01OC42LTU4LjYgNTguOTUtNTguOTUgMTYyLjQ0IDE2Mi40NC00OC4zNCA0OC4zNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjMgMjE3LjA2TDI5NC45NCA5LjM3QzI4OC42OSAzLjEyIDI4MC41IDAgMjcyLjMxIDBzLTE2LjM4IDMuMTItMjIuNjIgOS4zN2wtODEuNTggODEuNThMODEuOTMgNC43N2MtNi4yNC02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwzNi42OSAyNy4zOGMtNi4yNCA2LjI1LTYuMjQgMTYuMzggMCAyMi42M2w4Ni4xOSA4Ni4xOC05NC43NiA5NC43NmMtMzcuNDkgMzcuNDktMzcuNDkgOTguMjYgMCAxMzUuNzVsMTE3LjE5IDExNy4xOWMxOC43NSAxOC43NCA0My4zMSAyOC4xMiA2Ny44NyAyOC4xMiAyNC41NyAwIDQ5LjEzLTkuMzcgNjcuODgtMjguMTJsMjIxLjU3LTIyMS41N2MxMi40OS0xMi41IDEyLjQ5LTMyLjc2IDAtNDUuMjZ6bS0xMTYuMjIgNzAuOTdINjUuOTNjMS4zNi0zLjg0IDMuNTctNy45OCA3LjQzLTExLjgzbDEzLjE1LTEzLjE1IDgxLjYxLTgxLjYxIDU4LjYxIDU4LjZjMTIuNDkgMTIuNDkgMzIuNzUgMTIuNDkgNDUuMjQgMCAxMi40OS0xMi40OSAxMi40OS0zMi43NSAwLTQ1LjI0bC01OC42MS01OC42IDU4Ljk1LTU4Ljk1IDE2Mi40NSAxNjIuNDQtNDguMzUgNDguMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpbG0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDg4IDY0aC04djIwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMlY2NEg5NnYyMGMwIDYuNi01LjQgMTItMTIgMTJINDRjLTYuNiAwLTEyLTUuNC0xMi0xMlY2NGgtOEMxMC43IDY0IDAgNzQuNyAwIDg4djMzNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4di0yMGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjIwaDMyMHYtMjBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnYyMGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0Vjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0ek05NiAzNzJjMCA2LjYtNS40IDEyLTEyIDEySDQ0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtOTZjMCA2LjYtNS40IDEyLTEyIDEySDQ0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtOTZjMCA2LjYtNS40IDEyLTEyIDEySDQ0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTI3MiAyMDhjMCA2LjYtNS40IDEyLTEyIDEySDE1NmMtNi42IDAtMTItNS40LTEyLTEydi05NmMwLTYuNiA1LjQtMTIgMTItMTJoMjAwYzYuNiAwIDEyIDUuNCAxMiAxMnY5NnptMC0xNjhjMCA2LjYtNS40IDEyLTEyIDEySDE1NmMtNi42IDAtMTItNS40LTEyLTEydi05NmMwLTYuNiA1LjQtMTIgMTItMTJoMjAwYzYuNiAwIDEyIDUuNCAxMiAxMnY5NnptMTEyIDE1MmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtOTZjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTk2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmlsdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4Ny45NzYgMEgyNC4wMjhDMi43MSAwLTguMDQ3IDI1Ljg2NiA3LjA1OCA0MC45NzFMMTkyIDIyNS45NDFWNDMyYzAgNy44MzEgMy44MjEgMTUuMTcgMTAuMjM3IDE5LjY2Mmw4MCA1NS45OEMyOTguMDIgNTE4LjY5IDMyMCA1MDcuNDkzIDMyMCA0ODcuOThWMjI1Ljk0MWwxODQuOTQ3LTE4NC45N0M1MjAuMDIxIDI1Ljg5NiA1MDkuMzM4IDAgNDg3Ljk3NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaW5nZXJwcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuMTIgMjQ1Ljk2Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0IDEuMTQgNzIuMjUtOC4xNCAxNDEuOS0yNy43IDIxMS41NS0yLjczIDkuNzIgMi4xNSAzMC40OSAyMy4xMiAzMC40OSAxMC40OCAwIDIwLjExLTYuOTIgMjMuMDktMTcuNTIgMTMuNTMtNDcuOTEgMzEuMDQtMTI1LjQxIDI5LjQ4LTIyNC41Mi4wMS0xMy4yNS0xMC43My0yNC0yMy45OS0yNHptLS44Ni04MS43M0MxOTQgMTY0LjE2IDE1MS4yNSAyMTEuMyAxNTIuMSAyNjUuMzJjLjc1IDQ3Ljk0LTMuNzUgOTUuOTEtMTMuMzcgMTQyLjU1LTIuNjkgMTIuOTggNS42NyAyNS42OSAxOC42NCAyOC4zNiAxMy4wNSAyLjY3IDI1LjY3LTUuNjYgMjguMzYtMTguNjQgMTAuMzQtNTAuMDkgMTUuMTctMTAxLjU4IDE0LjM3LTE1My4wMi0uNDEtMjUuOTUgMTkuOTItNTIuNDkgNTQuNDUtNTIuMzQgMzEuMzEuNDcgNTcuMTUgMjUuMzQgNTcuNjIgNTUuNDcuNzcgNDguMDUtMi44MSA5Ni4zMy0xMC42MSAxNDMuNTUtMi4xNyAxMy4wNiA2LjY5IDI1LjQyIDE5Ljc2IDI3LjU4IDE5Ljk3IDMuMzMgMjYuODEtMTUuMSAyNy41OC0xOS43NyA4LjI4LTUwLjAzIDEyLjA2LTEwMS4yMSAxMS4yNy0xNTIuMTEtLjg4LTU1LjgtNDcuOTQtMTAxLjg4LTEwNC45MS0xMDIuNzJ6bS0xMTAuNjktMTkuNzhjLTEwLjMtOC4zNC0yNS4zNy02LjgtMzMuNzYgMy40OC0yNS42MiAzMS41LTM5LjM5IDcxLjI4LTM4Ljc1IDExMiAuNTkgMzcuNTgtMi40NyA3NS4yNy05LjExIDExMi4wNS0yLjM0IDEzLjA1IDYuMzEgMjUuNTMgMTkuMzYgMjcuODkgMjAuMTEgMy41IDI3LjA3LTE0LjgxIDI3Ljg5LTE5LjM2IDcuMTktMzkuODQgMTAuNS04MC42NiA5Ljg2LTEyMS4zMy0uNDctMjkuODggOS4yLTU3Ljg4IDI4LTgwLjk3IDguMzUtMTAuMjggNi43OS0yNS4zOS0zLjQ5LTMzLjc2em0xMDkuNDctNjIuMzNjLTE1LjQxLS40MS0zMC44NyAxLjQ0LTQ1Ljc4IDQuOTctMTIuODkgMy4wNi0yMC44NyAxNS45OC0xNy44MyAyOC44OSAzLjA2IDEyLjg5IDE2IDIwLjgzIDI4Ljg5IDE3LjgzIDExLjA1LTIuNjEgMjIuNDctMy43NyAzNC0zLjY5IDc1LjQzIDEuMTMgMTM3LjczIDYxLjUgMTM4Ljg4IDEzNC41OC41OSAzNy44OC0xLjI4IDc2LjExLTUuNTggMTEzLjYzLTEuNSAxMy4xNyA3Ljk1IDI1LjA4IDIxLjExIDI2LjU4IDE2LjcyIDEuOTUgMjUuNTEtMTEuODggMjYuNTgtMjEuMTFhOTI5LjA2IDkyOS4wNiAwIDAgMCA1Ljg5LTExOS44NWMtMS41Ni05OC43NS04NS4wNy0xODAuMzMtMTg2LjE2LTE4MS44M3ptMjUyLjA3IDEyMS40NWMtMi44Ni0xMi45Mi0xNS41MS0yMS4yLTI4LjYxLTE4LjI3LTEyLjk0IDIuODYtMjEuMTIgMTUuNjYtMTguMjYgMjguNjEgNC43MSAyMS40MSA0LjkxIDM3LjQxIDQuNyA2MS42LS4xMSAxMy4yNyAxMC41NSAyNC4wOSAyMy44IDI0LjJoLjJjMTMuMTcgMCAyMy44OS0xMC42MSAyNC0yMy44LjE4LTIyLjE4LjQtNDQuMTEtNS44My03Mi4zNHptLTQwLjEyLTkwLjcyQzQxNy4yOSA0My40NiAzMzcuNiAxLjI5IDI1Mi44MS4wMiAxODMuMDItLjgyIDExOC40NyAyNC45MSA3MC40NiA3Mi45NCAyNC4wOSAxMTkuMzctLjkgMTgxLjA0LjE0IDI0Ni42NWwtLjEyIDIxLjQ3Yy0uMzkgMTMuMjUgMTAuMDMgMjQuMzEgMjMuMjggMjQuNjkuMjMuMDIuNDguMDIuNzIuMDIgMTIuOTIgMCAyMy41OS0xMC4zIDIzLjk3LTIzLjNsLjE2LTIzLjY0Yy0uODMtNTIuNSAxOS4xNi0xMDEuODYgNTYuMjgtMTM5IDM4Ljc2LTM4LjggOTEuMzQtNTkuNjcgMTQ3LjY4LTU4Ljg2IDY5LjQ1IDEuMDMgMTM0LjczIDM1LjU2IDE3NC42MiA5Mi4zOSA3LjYxIDEwLjg2IDIyLjU2IDEzLjQ1IDMzLjQyIDUuODYgMTAuODQtNy42MiAxMy40Ni0yMi41OSA1Ljg0LTMzLjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXJlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMy41NiA1MS4yYy0yMC44IDE5LjMtMzkuNTggMzkuNTktNTYuMjIgNTkuOTdDMjQwLjA4IDczLjYyIDIwNi4yOCAzNS41MyAxNjggMCA2OS43NCA5MS4xNyAwIDIwOS45NiAwIDI4MS42IDAgNDA4Ljg1IDEwMC4yOSA1MTIgMjI0IDUxMnMyMjQtMTAzLjE1IDIyNC0yMzAuNGMwLTUzLjI3LTUxLjk4LTE2My4xNC0xMjQuNDQtMjMwLjR6bS0xOS40NyAzNDAuNjVDMjgyLjQzIDQwNy4wMSAyNTUuNzIgNDE2IDIyNi44NiA0MTYgMTU0LjcxIDQxNiA5NiAzNjguMjYgOTYgMjkwLjc1YzAtMzguNjEgMjQuMzEtNzIuNjMgNzIuNzktMTMwLjc1IDYuOTMgNy45OCA5OC44MyAxMjUuMzQgOTguODMgMTI1LjM0bDU4LjYzLTY2Ljg4YzQuMTQgNi44NSA3LjkxIDEzLjU1IDExLjI3IDE5Ljk3IDI3LjM1IDUyLjE5IDE1LjgxIDExOC45Ny0zMy40MyAxNTMuNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmVFeHRpbmd1aXNoZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM0LjAyNyAyNi4zMjlsLTE2OCAyOEMyNTQuNjkzIDU2LjIxOCAyNTYgNjcuOCAyNTYgNzJoLTU4LjMzMkMyMDguMzUzIDM2LjEwOCAxODEuNDQ2IDAgMTQ0IDBjLTM5LjQzNSAwLTY2LjM2OCAzOS42NzYtNTIuMjI4IDc2LjIwMy01Mi4wMzkgMTMuMDUxLTc1LjM4MSA1NC4yMTMtOTAuMDQ5IDkwLjg4NC00LjkyMyAxMi4zMDcgMS4wNjMgMjYuMjc0IDEzLjM3IDMxLjE5NyAxMi4zMTcgNC45MjYgMjYuMjc5LTEuMDc1IDMxLjE5Ni0xMy4zN0M3NS4wNTggMTEyLjk5IDEwNi45NjQgMTIwIDE2OCAxMjB2MjcuMDc2Yy00MS41NDMgMTAuODYyLTcyIDQ5LjIzNS03MiA5NC4xMjlWNDg4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0MGMwLTQ0LjczMS0zMC41OTYtODIuMzEyLTcyLTkyLjk3VjEyMGg0MGMwIDIuOTc0LTEuNzAzIDE1LjcxNiAxMC4wMjcgMTcuNjcxbDE2OCAyOEM0NDEuMzQyIDE2Ni44OSA0NDggMTYxLjI1IDQ0OCAxNTMuODM0VjM4LjE2NmMwLTcuNDE2LTYuNjU4LTEzLjA1Ni0xMy45NzMtMTEuODM3ek0xNDQgNzJjLTguODIyIDAtMTYtNy4xNzgtMTYtMTZzNy4xNzgtMTYgMTYtMTYgMTYgNy4xNzggMTYgMTYtNy4xNzggMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDIzLjg2YzAtMjMuOC0zMC42NS0zMi43Ny00NC4xNS0xMy4wNEM0OCAxOTEuODUgMjI0IDIwMCAyMjQgMjg4YzAgMzUuNjMtMjkuMTEgNjQuNDYtNjQuODUgNjMuOTktMzUuMTctLjQ1LTYzLjE1LTI5Ljc3LTYzLjE1LTY0Ljk0di04NS41MWMwLTIxLjctMjYuNDctMzIuMjMtNDEuNDMtMTYuNUMyNy44IDIxMy4xNiAwIDI2MS4zMyAwIDMyMGMwIDEwNS44NyA4Ni4xMyAxOTIgMTkyIDE5MnMxOTItODYuMTMgMTkyLTE5MmMwLTE3MC4yOS0xNjgtMTkzLTE2OC0yOTYuMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZpcnN0QWlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4VjMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB6bTEyOCA0MDBoMzIwVjMySDEyOHY0NDh6bTY0LTI0OGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDh6TTUyOCAzMmgtNDh2NDQ4aDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNy4xIDk2Yy04OS45NyAwLTE2OC41NCA1NC43Ny0yMTIuMjcgMTAxLjYzTDI3LjUgMTMxLjU4Yy0xMi4xMy05LjE4LTMwLjI0LjYtMjcuMTQgMTQuNjZMMjQuNTQgMjU2IC4zNSAzNjUuNzdjLTMuMSAxNC4wNiAxNS4wMSAyMy44MyAyNy4xNCAxNC42Nmw4Ny4zMy02Ni4wNUMxNTguNTUgMzYxLjIzIDIzNy4xMyA0MTYgMzI3LjEgNDE2IDQ2NC41NiA0MTYgNTc2IDI4OCA1NzYgMjU2UzQ2NC41NiA5NiAzMjcuMSA5NnptODcuNDMgMTg0Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjQgMTMuMjYgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGaXN0UmFpc2VkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS45OCAxNjBWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDYuOTNjNS4wMi0xLjc4IDEwLjM0LTIuOTMgMTUuOTctMi45M2g0OC4wM3ptMTI4IDk1Ljk5Yy0uMDEtMzUuMzQtMjguNjYtNjMuOTktNjMuOTktNjMuOTlIMjA3Ljg1Yy04Ljc4IDAtMTUuOSA3LjA3LTE1LjkgMTUuODV2LjU2YzAgMjYuMjcgMjEuMyA0Ny41OSA0Ny41NyA0Ny41OWgzNS4yNmM5LjY4IDAgMTMuMiAzLjU4IDEzLjIgOHYxNi4yYzAgNC4yOS0zLjU5IDcuNzgtNy44OCA4LTQ0LjUyIDIuMjgtNjQuMTYgMjQuNzEtOTYuMDUgNzIuNTVsLTYuMzEgOS40N2E3Ljk5NCA3Ljk5NCAwIDAgMS0xMS4wOSAyLjIybC0xMy4zMS04Ljg4YTcuOTk0IDcuOTk0IDAgMCAxLTIuMjItMTEuMDlsNi4zMS05LjQ3YzE1LjczLTIzLjYgMzAuMi00My4yNiA0Ny4zMS01OC4wOC0xNy4yNy01LjUxLTMxLjQtMTguMTItMzguODctMzQuNDUtNi41OSAzLjQxLTEzLjk2IDUuNTItMjEuODcgNS41MmgtMzJjLTEyLjM0IDAtMjMuNDktNC44MS0zMi0xMi40OEM3MS40OCAyNTEuMTkgNjAuMzMgMjU2IDQ4IDI1NkgxNmMtNS42NCAwLTEwLjk3LTEuMTUtMTYtMi45NXY3Ny45M2MwIDMzLjk1IDEzLjQ4IDY2LjUgMzcuNDkgOTAuNTFMNjMuOTkgNDQ4djY0aDI1NS45OHYtNjMuOTZsMzUuOTEtMzUuOTJBOTYuMDM1IDk2LjAzNSAwIDAgMCAzODQgMzQ0LjIxbC0uMDItODguMjJ6bS0zMi4wMS05MC4wOVY0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmgzMmMxMS4yOCAwIDIxLjk0IDIuMzEgMzIgNS45ek0xNiAyMjRoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MTI4YzAgOC44NCA3LjE2IDE2IDE2IDE2em05NS45OSAwaDMyYzguODQgMCAxNi03LjE2IDE2LTE2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTYwYzAgOC44NCA3LjE2IDE2IDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnQ2hlY2tlcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0My4yIDE4OS45VjI1OGMyNi4xIDUuOSA0OS4zIDE1LjYgNzMuNiAyMi4zdi02OC4yYy0yNi01LjgtNDkuNC0xNS41LTczLjYtMjIuMnptMjIzLjMtMTIzYy0zNC4zIDE1LjktNzYuNSAzMS45LTExNyAzMS45QzI5NiA5OC44IDI1MS43IDY0IDE4NC4zIDY0Yy0yNSAwLTQ3LjMgNC40LTY4IDEyIDIuOC03LjMgNC4xLTE1LjIgMy42LTIzLjZDMTE4LjEgMjQgOTQuOCAxLjIgNjYuMyAwIDM0LjMtMS4zIDggMjQuMyA4IDU2YzAgMTkgOS41IDM1LjggMjQgNDUuOVY0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTk0LjRjMjguMy0xMi4xIDYzLjYtMjIuMSAxMTQuNC0yMi4xIDUzLjYgMCA5Ny44IDM0LjggMTY1LjIgMzQuOCA0OC4yIDAgODYuNy0xNi4zIDEyMi41LTQwLjkgOC43LTYgMTMuOC0xNS44IDEzLjgtMjYuNFY5NS45Yy4xLTIzLjMtMjQuMi0zOC44LTQ1LjQtMjl6TTE2OS42IDMyNS41Yy0yNS44IDIuNy01MCA4LjItNzMuNiAxNi42di03MC41YzI2LjItOS4zIDQ3LjUtMTUgNzMuNi0xNy40ek00NjQgMTkxYy0yMy42IDkuOC00Ni4zIDE5LjUtNzMuNiAyMy45VjI4NmMyNC44LTMuNCA1MS40LTExLjggNzMuNi0yNnY3MC41Yy0yNS4xIDE2LjEtNDguNSAyNC43LTczLjYgMjcuMVYyODZjLTI3IDMuNy00Ny45IDEuNS03My42LTUuNnY2Ny40Yy0yMy45LTcuNC00Ny4zLTE2LjctNzMuNi0yMS4zVjI1OGMtMTkuNy00LjQtNDAuOC02LjgtNzMuNi0zLjh2LTcwYy0yMi40IDMuMS00NC42IDEwLjItNzMuNiAyMC45di03MC41YzMzLjItMTIuMiA1MC4xLTE5LjggNzMuNi0yMnY3MS42YzI3LTMuNyA0OC40LTEuMyA3My42IDUuN3YtNjcuNGMyMy43IDcuNCA0Ny4yIDE2LjcgNzMuNiAyMS4zdjY4LjRjMjMuNyA1LjMgNDcuNiA2LjkgNzMuNiAyLjdWMTQzYzI3LTQuOCA1Mi4zLTEzLjYgNzMuNi0yMi41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnVXNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDBDMTQuMyAwIDAgMTQuMyAwIDMydjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyQzY0IDE0LjMgNDkuNyAwIDMyIDB6bTI2Ny45IDMwMy42Yy01Ny4yLTE1LjEtMTExLjctMjguOC0yMDMuOSAxMS4xVjM4NGMxODUuNy05Mi4yIDIyMS43IDUzLjMgMzk3LjUtMjMuMSAxMS40LTUgMTguNS0xNi41IDE4LjUtMjguOHYtMzZjLTQzLjYgMTcuMy04MC4yIDI0LjEtMTEyLjEgMjQuMS0zNy40LS4xLTY4LjktOC40LTEwMC0xNi42em0wLTk2Yy01Ny4yLTE1LjEtMTExLjctMjguOC0yMDMuOSAxMS4xdjYxLjVjOTQuOC0zNy42IDE1NC42LTIyLjcgMjEyLjEtNy42IDU3LjIgMTUuMSAxMTEuNyAyOC44IDIwMy45LTExLjFWMjAwYy00My42IDE3LjMtODAuMiAyNC4xLTExMi4xIDI0LjEtMzcuNCAwLTY4LjktOC4zLTEwMC0xNi41em05LjUtMTI1LjljNTEuOCAxNS42IDk3LjQgMjkgMjAyLjYtMjAuMVYzMC44YzAtMjUuMS0yNi44LTM4LjEtNDkuNC0yNi42QzI5MS4zIDkxLjUgMzA1LjQtNjIuMiA5NiAzMi40djE1MS45Yzk0LjgtMzcuNSAxNTQuNi0yMi43IDIxMi4xLTcuNiA1Ny4yIDE1IDExMS43IDI4LjcgMjAzLjktMTEuMVY5Ni43Yy01My42IDIzLjUtOTMuMyAzMS40LTEyNi4xIDMxLjRzLTU5LTcuOC04NS43LTE1LjljLTQtMS4yLTguMS0yLjQtMTIuMS0zLjVWNzUuNWM3LjIgMiAxNC4zIDQuMSAyMS4zIDYuMnpNMTYwIDEyOC4xYy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNi03LjIgMTYtMTYgMTZ6bTAtNTUuOGMtOC44IDAtMTYtNy4xLTE2LTE2IDAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjEgMTYgMTZjMCA4LjgtNy4yIDE2LTE2IDE2em02NCA0Ny45Yy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNmMwIDguOC03LjIgMTYtMTYgMTZ6bTAtNTUuOWMtOC44IDAtMTYtNy4xLTE2LTE2IDAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjEgMTYgMTZjMCA4LjgtNy4yIDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGbGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0OS41NjUgOTguNzgzQzI5NS45NzggOTguNzgzIDI1MS43MjEgNjQgMTg0LjM0OCA2NGMtMjQuOTU1IDAtNDcuMzA5IDQuMzg0LTY4LjA0NSAxMi4wMTNhNTUuOTQ3IDU1Ljk0NyAwIDAgMCAzLjU4Ni0yMy41NjJDMTE4LjExNyAyNC4wMTUgOTQuODA2IDEuMjA2IDY2LjMzOC4wNDggMzQuMzQ1LTEuMjU0IDggMjQuMjk2IDggNTZjMCAxOS4wMjYgOS40OTcgMzUuODI1IDI0IDQ1Ljk0NVY0ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtOTQuNGMyOC4zMTEtMTIuMDY0IDYzLjU4Mi0yMi4xMjIgMTE0LjQzNS0yMi4xMjIgNTMuNTg4IDAgOTcuODQ0IDM0Ljc4MyAxNjUuMjE3IDM0Ljc4MyA0OC4xNjkgMCA4Ni42NjctMTYuMjk0IDEyMi41MDUtNDAuODU4QzUwNi44NCAzNTkuNDUyIDUxMiAzNDkuNTcxIDUxMiAzMzkuMDQ1di0yNDMuMWMwLTIzLjM5My0yNC4yNjktMzguODctNDUuNDg1LTI5LjAxNi0zNC4zMzggMTUuOTQ4LTc2LjQ1NCAzMS44NTQtMTE2Ljk1IDMxLjg1NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRmxhc2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM3LjIgNDAzLjVMMzIwIDIxNVY2NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOHYxNTFMMTAuOCA0MDMuNUMtMTguNSA0NTAuNiAxNS4zIDUxMiA3MC45IDUxMmgzMDYuMmM1NS43IDAgODkuNC02MS41IDYwLjEtMTA4LjV6TTEzNy45IDMyMGw0OC4yLTc3LjZjMy43LTUuMiA1LjgtMTEuNiA1LjgtMTguNFY2NGg2NHYxNjBjMCA2LjkgMi4yIDEzLjIgNS44IDE4LjRsNDguMiA3Ny42aC0xNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZsdXNoZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzQ0IDIwMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bS0xOTIgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTgwIDIyNGMwLTM5LjggMzIuMi03MiA3Mi03MnM3MiAzMi4yIDcyIDcyLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MnptMjMyIDE3NkgxODRjLTIxLjIgMC0yMS4yLTMyIDAtMzJoMTI4YzIxLjIgMCAyMS4yIDMyIDAgMzJ6bTMyLTEwNGMtMzkuOCAwLTcyLTMyLjItNzItNzJzMzIuMi03MiA3Mi03MiA3MiAzMi4yIDcyIDcyLTMyLjIgNzItNzIgNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbGRlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAxMjhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE3NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tOTYgMTY4YzAgOC44NC03LjE2IDE2LTE2IDE2SDE2MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDE5MmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzIuNjk0IDI5Mi4wOTNMNTAwLjI3IDQxNi4yNDhBNjMuOTk3IDYzLjk5NyAwIDAgMSA0NDQuOTg5IDQ0OEg0NS4wMjVjLTE4LjUyMyAwLTMwLjA2NC0yMC4wOTMtMjAuNzMxLTM2LjA5M2w3Mi40MjQtMTI0LjE1NUE2NCA2NCAwIDAgMSAxNTIgMjU2aDM5OS45NjRjMTguNTIzIDAgMzAuMDY0IDIwLjA5MyAyMC43MyAzNi4wOTN6TTE1MiAyMjRoMzI4di00OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDI3MmwtNjQtNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyNzguMDQ2bDY5LjA3Ny0xMTguNDE4Qzg2LjIxNCAyNDIuMjUgMTE3Ljk4OSAyMjQgMTUyIDIyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRm9sZGVyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQsMTI4SDI3MkwyMDgsNjRINDhBNDgsNDgsMCwwLDAsMCwxMTJWNDAwYTQ4LDQ4LDAsMCwwLDQ4LDQ4SDQ2NGE0OCw0OCwwLDAsMCw0OC00OFYxNzZBNDgsNDgsMCwwLDAsNDY0LDEyOFpNMzU5LjUsMjk2YTE2LDE2LDAsMCwxLTE2LDE2aC02NHY2NGExNiwxNiwwLDAsMS0xNiwxNmgtMTZhMTYsMTYsMCwwLDEtMTYtMTZWMzEyaC02NGExNiwxNiwwLDAsMS0xNi0xNlYyODBhMTYsMTYsMCwwLDEsMTYtMTZoNjRWMjAwYTE2LDE2LDAsMCwxLDE2LTE2aDE2YTE2LDE2LDAsMCwxLDE2LDE2djY0aDY0YTE2LDE2LDAsMCwxLDE2LDE2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb2xkZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDEyOEgyNzJsLTY0LTY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTc2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDQxNmgtMjMuNDFMMjc3Ljg4IDUzLjY5QTMyIDMyIDAgMCAwIDI0Ny41OCAzMmgtNDcuMTZhMzIgMzIgMCAwIDAtMzAuMyAyMS42OUwzOS40MSA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMTkuNThsMjMuMy02NGgxNTIuNTZsMjMuMyA2NEgzMDRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMTc2Ljg1IDI3MkwyMjQgMTQyLjUxIDI3MS4xNSAyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZvb3RiYWxsQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODEuNSA2MC4zYy00LjgtMTguMi0xOS4xLTMyLjUtMzcuMy0zNy40QzQyMC4zIDE2LjUgMzgzIDguOSAzMzkuNCA4TDQ5NiAxNjQuOGMtLjgtNDMuNS04LjItODAuNi0xNC41LTEwNC41em0tNDY3IDM5MS40YzQuOCAxOC4yIDE5LjEgMzIuNSAzNy4zIDM3LjQgMjMuOSA2LjQgNjEuMiAxNCAxMDQuOCAxNC45TDAgMzQ3LjJjLjggNDMuNSA4LjIgODAuNiAxNC41IDEwNC41ek00LjIgMjgzLjRMMjIwLjQgNTAwYzEzMi41LTE5LjQgMjQ4LjgtMTE4LjcgMjcxLjUtMjcxLjRMMjc1LjYgMTJDMTQzLjEgMzEuNCAyNi44IDEzMC43IDQuMiAyODMuNHptMzE3LjMtMTIzLjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwxMS4zIDExLjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMjguMyAyOC4zIDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTI4LjMtMjguMy0yMi42IDIyLjcgMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwyNDggMjc4LjZsLTIyLjYgMjIuNiAyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC0yOC4zLTI4LjMtMjguMyAyOC4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC0xMS4zLTExLjNjLTMuMS0zLjEtMy4xLTguMiAwLTExLjNsMjguMy0yOC4zLTI4LjMtMjguMmMtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjIuNi0yMi42LTI4LjMtMjguM2MtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjIuNi0yMi42LTI4LjMtMjguM2MtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjguMy0yOC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGb3J3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMC41IDIzMS40bC0xOTItMTYwQzI4Ny45IDU0LjMgMjU2IDY4LjYgMjU2IDk2djMyMGMwIDI3LjQgMzEuOSA0MS44IDUyLjUgMjQuNmwxOTItMTYwYzE1LjMtMTIuOCAxNS4zLTM2LjQgMC00OS4yem0tMjU2IDBsLTE5Mi0xNjBDMzEuOSA1NC4zIDAgNjguNiAwIDk2djMyMGMwIDI3LjQgMzEuOSA0MS44IDUyLjUgMjQuNmwxOTItMTYwYzE1LjMtMTIuOCAxNS4zLTM2LjQgMC00OS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGcm9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0Ni41MyA5Ny40M0M0MzkuNjcgNjAuMjMgNDA3LjE5IDMyIDM2OCAzMmMtMzkuMjMgMC03MS43MiAyOC4yOS03OC41NCA2NS41NEMxMjYuNzUgMTEyLjk2LS41IDI1MC4xMiAwIDQxNi45OC4xMSA0NTEuOSAyOS4wOCA0ODAgNjQgNDgwaDMwNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNiAwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC03OS40OWwzNS44LTQ4LjMzYzI0LjE0LTM2LjIzIDEwLjM1LTg4LjI4LTMzLjcxLTEwNi42LTIzLjg5LTkuOTMtNTEuNTUtNC42NS03Mi4yNCAxMC44OGwtMzIuNzYgMjQuNTljLTcuMDYgNS4zMS0xNy4wOSAzLjkxLTIyLjQxLTMuMTktNS4zLTcuMDgtMy44OC0xNy4xMSAzLjE5LTIyLjQxbDM0Ljc4LTI2LjA5YzM2Ljg0LTI3LjY2IDg4LjI4LTI3LjYyIDEyNS4xMyAwIDEwLjg3IDguMTUgNDUuODcgMzkuMDYgNDAuOCA5My4yMUw0NjkuNjIgNDgwSDU2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNiAwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC01My42M2wtOTguNTItMTA0LjY4IDE1NC40NC04Ni42NUE1OC4xNiA1OC4xNiAwIDAgMCA1NzYgMTg5Ljk0YzAtMjEuNC0xMS43Mi00MC45NS0zMC40OC01MS4yMy00MC41Ni0yMi4yMi05OC45OS00MS4yOC05OC45OS00MS4yOHpNMzY4IDEzNmMtMTMuMjYgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc0LTI0IDI0LTI0IDEzLjI1IDAgMjQgMTAuNzQgMjQgMjQgMCAxMy4yNS0xMC43NSAyNC0yNCAyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJvd25PcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyMDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTE4Ny4zIDE4My4zYy0zMS4yLTkuNi01OS40LTE1LjMtNzUuMy0xNS4zcy00NC4xIDUuNy03NS4zIDE1LjNjLTExLjUgMy41LTIyLjUtNi4zLTIwLjUtMTguMSA3LTQwIDYwLjEtNjEuMiA5NS44LTYxLjJzODguOCAyMS4zIDk1LjggNjEuMmMyIDExLjktOS4xIDIxLjYtMjAuNSAxOC4xek0zMjggMjQwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhRnJvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTY4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptLTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMTcwLjIgMjE4LjJDMzE1LjggMzY3LjQgMjgyLjkgMzUyIDI0OCAzNTJzLTY3LjggMTUuNC05MC4yIDQyLjJjLTEzLjUgMTYuMy0zOC4xLTQuMi0yNC42LTIwLjVDMTYxLjcgMzM5LjYgMjAzLjYgMzIwIDI0OCAzMjBzODYuMyAxOS42IDExNC43IDUzLjhjMTMuNiAxNi4yLTExIDM2LjctMjQuNSAyMC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFGdW5uZWxEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjQ2IDE2NS45NGwxMDEuMi0xMTEuODdDNTU0LjYxIDM0LjEyIDU0MC40OCAwIDUxMi4yNiAwSDMxLjc0QzMuNTIgMC0xMC42MSAzNC4xMiA5LjM0IDU0LjA3TDE5MiAyNTZ2MTU1LjkyYzAgMTIuNTkgNS45MyAyNC40NCAxNiAzMmw3OS45OSA2MGMyMC44NiAxNS42NCA0OC40NyA2Ljk3IDU5LjIyLTEzLjU3QzMxMC44IDQ1NS4zOCAyODggNDA2LjM1IDI4OCAzNTJjMC04OS43OSA2Mi4wNS0xNjUuMTcgMTQ1LjQ2LTE4Ni4wNnpNNDgwIDE5MmMtODguMzcgMC0xNjAgNzEuNjMtMTYwIDE2MHM3MS42MyAxNjAgMTYwIDE2MCAxNjAtNzEuNjMgMTYwLTE2MC03MS42My0xNjAtMTYwLTE2MHptMTYgMjM5Ljg4VjQ0OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWMjU2YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2LjI5YzExLjI5LjU4IDIyLjI3IDQuNTEgMzEuMzcgMTEuMzUgMy45IDIuOTMgNC4xIDguNzcuNTcgMTIuMTRsLTExLjc1IDExLjIxYy0yLjc3IDIuNjQtNi44OSAyLjc2LTEwLjEzLjczLTMuODctMi40My04LjI2LTMuNzItMTIuODItMy43MmgtMjguMTFjLTYuNSAwLTExLjggNS45Mi0xMS44IDEzLjE5IDAgNS45NSAzLjYxIDExLjE5IDguNzcgMTIuNzNsNDUgMTMuNWMxOC41OSA1LjU4IDMxLjU4IDIzLjQyIDMxLjU4IDQzLjM5IDAgMjQuNTMtMTkuMDQgNDQuNDQtNDIuNjcgNDUuMDd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUZ1dGJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHptLTQ4IDBsLS4wMDMtLjI4Mi0yNi4wNjQgMjIuNzQxLTYyLjY3OS01OC41IDE2LjQ1NC04NC4zNTUgMzQuMzAzIDMuMDcyYy0yNC44ODktMzQuMjE2LTYwLjAwNC02MC4wODktMTAwLjcwOS03My4xNDFsMTMuNjUxIDMxLjkzOUwyNTYgMTM5bC03NC45NTMtNDEuNTI1IDEzLjY1MS0zMS45MzljLTQwLjYzMSAxMy4wMjgtNzUuNzggMzguODctMTAwLjcwOSA3My4xNDFsMzQuNTY1LTMuMDczIDE2LjE5MiA4NC4zNTUtNjIuNjc4IDU4LjUtMjYuMDY0LTIyLjc0MS0uMDAzLjI4MmMwIDQzLjAxNSAxMy40OTcgODMuOTUyIDM4LjQ3MiAxMTcuOTkxbDcuNzA0LTMzLjg5NyA4NS4xMzggMTAuNDQ3IDM2LjMwMSA3Ny44MjYtMjkuOTAyIDE3Ljc4NmM0MC4yMDIgMTMuMTIyIDg0LjI5IDEzLjE0OCAxMjQuNTcyIDBsLTI5LjkwMi0xNy43ODYgMzYuMzAxLTc3LjgyNiA4NS4xMzgtMTAuNDQ3IDcuNzA0IDMzLjg5N0M0NDIuNTAzIDMzOS45NTIgNDU2IDI5OS4wMTUgNDU2IDI1NnptLTI0OC4xMDIgNjkuNTcxbC0yOS44OTQtOTEuMzEyTDI1NiAxNzcuNzMybDc3Ljk5NiA1Ni41MjctMjkuNjIyIDkxLjMxMmgtOTYuNDc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHYW1lcGFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MC4wNyA5NkgxNjBhMTYwIDE2MCAwIDEgMCAxMTQuMjQgMjcyaDkxLjUyQTE2MCAxNjAgMCAxIDAgNDgwLjA3IDk2ek0yNDggMjY4YTEyIDEyIDAgMCAxLTEyIDEyaC01MnY1MmExMiAxMiAwIDAgMS0xMiAxMmgtMjRhMTIgMTIgMCAwIDEtMTItMTJ2LTUySDg0YTEyIDEyIDAgMCAxLTEyLTEydi0yNGExMiAxMiAwIDAgMSAxMi0xMmg1MnYtNTJhMTIgMTIgMCAwIDEgMTItMTJoMjRhMTIgMTIgMCAwIDEgMTIgMTJ2NTJoNTJhMTIgMTIgMCAwIDEgMTIgMTJ6bTIxNiA3NmE0MCA0MCAwIDEgMSA0MC00MCA0MCA0MCAwIDAgMS00MCA0MHptNjQtOTZhNDAgNDAgMCAxIDEgNDAtNDAgNDAgNDAgMCAwIDEtNDAgNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhc1B1bXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDQ0OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMjBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTE1Ny4yLTM0MC43bC04MS04MWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTExLjMgMTEuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZMNDE2IDk3LjlWMTYwYzAgMjguMSAyMC45IDUxLjMgNDggNTUuMlYzNzZjMCAxMy4yLTEwLjggMjQtMjQgMjRzLTI0LTEwLjgtMjQtMjR2LTMyYzAtNDguNi0zOS40LTg4LTg4LTg4aC04VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2QzYwLjcgMCAzMiAyOC43IDMyIDY0djM1MmgyODhWMzA0aDhjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MjcuOGMwIDM3LjcgMjcgNzIgNjQuNSA3NS45IDQzIDQuMyA3OS41LTI5LjUgNzkuNS03MS43VjE1Mi42YzAtMTctNi44LTMzLjMtMTguOC00NS4zek0yNTYgMTkySDk2VjY0aDE2MHYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdhdmVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNC45NzEgMTk5LjM2MmwtMjIuNjI3LTIyLjYyN2MtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwbC01LjY1NyA1LjY1N0wzMjkuNjA4IDY5LjI1NWw1LjY1Ny01LjY1N2M5LjM3My05LjM3MyA5LjM3My0yNC41NjkgMC0zMy45NDFMMzEyLjYzOCA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDE1NC4yNDYgMTMxLjQ4Yy05LjM3MyA5LjM3My05LjM3MyAyNC41NjkgMCAzMy45NDFsMjIuNjI3IDIyLjYyN2M5LjM3MyA5LjM3MyAyNC41NjkgOS4zNzMgMzMuOTQxIDBsNS42NTctNS42NTcgMzkuNTk4IDM5LjU5OC04MS4wNCA4MS4wNC01LjY1Ny01LjY1N2MtMTIuNDk3LTEyLjQ5Ny0zMi43NTgtMTIuNDk3LTQ1LjI1NSAwTDkuMzczIDQxMi4xMThjLTEyLjQ5NyAxMi40OTctMTIuNDk3IDMyLjc1OCAwIDQ1LjI1NWw0NS4yNTUgNDUuMjU1YzEyLjQ5NyAxMi40OTcgMzIuNzU4IDEyLjQ5NyA0NS4yNTUgMGwxMTQuNzQ1LTExNC43NDVjMTIuNDk3LTEyLjQ5NyAxMi40OTctMzIuNzU4IDAtNDUuMjU1bC01LjY1Ny01LjY1NyA4MS4wNC04MS4wNCAzOS41OTggMzkuNTk4LTUuNjU3IDUuNjU3Yy05LjM3MyA5LjM3My05LjM3MyAyNC41NjkgMCAzMy45NDFsMjIuNjI3IDIyLjYyN2M5LjM3MyA5LjM3MyAyNC41NjkgOS4zNzMgMzMuOTQxIDBsMTI0LjQ1MS0xMjQuNDUxYzkuMzcyLTkuMzcyIDkuMzcyLTI0LjU2OCAwLTMzLjk0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4NS41IDBMNTc2IDE2MEg0NzQuOUw0MDUuNyAwaDc5Ljh6bS0xMjggMGw2OS4yIDE2MEgxNDkuM0wyMTguNSAwaDEzOXptLTI2NyAwaDc5LjhsLTY5LjIgMTYwSDBMOTAuNSAwek0wIDE5MmgxMDAuN2wxMjMgMjUxLjdjMS41IDMuMS0yLjcgNS45LTUgMy4zTDAgMTkyem0xNDguMiAwaDI3OS42bC0xMzcgMzE4LjJjLTEgMi40LTQuNSAyLjQtNS41IDBMMTQ4LjIgMTkyem0yMDQuMSAyNTEuN2wxMjMtMjUxLjdINTc2TDM1Ny4zIDQ0Ni45Yy0yLjMgMi43LTYuNS0uMS01LTMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2VuZGVybGVzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMTc2YzQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODAgMzUuOS04MCA4MC04MG0wLTY0QzY0LjUgMTEyIDAgMTc2LjUgMCAyNTZzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0LTY0LjUtMTQ0LTE0NC0xNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdob3N0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4Ni4xLjA5QzgxLjAxIDMuMjQgMCA5NC45MiAwIDIwMC4wNXYyNjMuOTJjMCAxNC4yNiAxNy4yMyAyMS4zOSAyNy4zMSAxMS4zMWwyNC45Mi0xOC41M2M2LjY2LTQuOTUgMTYtMy45OSAyMS41MSAyLjIxbDQyLjk1IDQ4LjM1YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsNDAuNzItNDUuODVjNi4zNy03LjE3IDE3LjU2LTcuMTcgMjMuOTIgMGw0MC43MiA0NS44NWM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDQyLjk1LTQ4LjM1YzUuNTEtNi4yIDE0Ljg1LTcuMTcgMjEuNTEtMi4yMWwyNC45MiAxOC41M2MxMC4wOCAxMC4wOCAyNy4zMSAyLjk0IDI3LjMxLTExLjMxVjE5MkMzODQgODQgMjk0LjgzLTMuMTcgMTg2LjEuMDl6TTEyOCAyMjRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTEyOCAwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHaWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjBWMzIwSDMydjEyOHptMjU2IDMyaDE2MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBIMjg4djE2MHptMTkyLTMyMGgtNDIuMWM2LjItMTIuMSAxMC4xLTI1LjUgMTAuMS00MCAwLTQ4LjUtMzkuNS04OC04OC04OC00MS42IDAtNjguNSAyMS4zLTEwMyA2OC4zLTM0LjUtNDctNjEuNC02OC4zLTEwMy02OC4zLTQ4LjUgMC04OCAzOS41LTg4IDg4IDAgMTQuNSAzLjggMjcuOSAxMC4xIDQwSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MGMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNnYtODBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMjYuMSAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwYzE5LjkgMCAzNC42IDMuMyA4Ni4xIDgwaC04Ni4xem0yMDYuMSAwaC04Ni4xYzUxLjQtNzYuNSA2NS43LTgwIDg2LjEtODAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdpZnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MC42IDE5NC4xYzEuOS0zMC44IDE3LjMtNjEuMiA0NC03OS44QzI3OS40IDEwMy41IDI2OC43IDk2IDI1NiA5NmgtMjkuNGwzMC43LTIyYzcuMi01LjEgOC45LTE1LjEgMy43LTIyLjNsLTkuMy0xM2MtNS4xLTcuMi0xNS4xLTguOS0yMi4zLTMuN2wtMzIgMjIuOSAxMS41LTMwLjZjMy4xLTguMy0xLjEtMTcuNS05LjQtMjAuNmwtMTUtNS42Yy04LjMtMy4xLTE3LjUgMS4xLTIwLjYgOS40bC0xOS45IDUzLTE5LjktNTMuMUMxMjEgMi4xIDExMS44LTIuMSAxMDMuNSAxbC0xNSA1LjZDODAuMiA5LjcgNzYgMTkgNzkuMiAyNy4ybDExLjUgMzAuNkw1OC42IDM1Yy03LjItNS4xLTE3LjItMy41LTIyLjMgMy43bC05LjMgMTNjLTUuMSA3LjItMy41IDE3LjIgMy43IDIyLjNsMzAuNyAyMkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzUyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2OC45Yy01LjUtOS41LTguOS0yMC4zLTguOS0zMlYyNTZjMC0yOS45IDIwLjgtNTUgNDguNi02MS45ek0yMjQgNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE2MFYzODRIMjI0djk2em0yMjQgMzJoMTYwYzE3LjcgMCAzMi0xNC4zIDMyLTMydi05Nkg0NDh2MTI4em0xNjAtMjg4aC0yMC40YzIuNi03LjYgNC40LTE1LjUgNC40LTIzLjggMC0zNS41LTI3LTcyLjItNzIuMS03Mi4yLTQ4LjEgMC03NS45IDQ3LjctODcuOSA3NS4zLTEyLjEtMjcuNi0zOS45LTc1LjMtODcuOS03NS4zLTQ1LjEgMC03Mi4xIDM2LjctNzIuMSA3Mi4yIDAgOC4zIDEuNyAxNi4yIDQuNCAyMy44SDI1NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZoMTkyVjIyNGgxNS4zbC43LS4yLjcuMkg0NDh2MTI4aDE5MnYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yNzIgMGMtMi43LTEuNC01LjEtMy03LjItNC44LTcuMy02LjQtOC44LTEzLjgtOC44LTE5IDAtOS43IDYuNC0yNC4yIDI0LjEtMjQuMiAxOC43IDAgMzUuNiAyNy40IDQ0LjUgNDhIMzM2em0xOTkuMi00LjhjLTIuMSAxLjgtNC41IDMuNC03LjIgNC44aC01Mi42YzguOC0yMC4zIDI1LjgtNDggNDQuNS00OCAxNy43IDAgMjQuMSAxNC41IDI0LjEgMjQuMiAwIDUuMi0xLjUgMTIuNi04LjggMTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzQ2hlZXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzOS40IDQzMy42Yy04LjQtMjAuNC0zMS44LTMwLjEtNTIuMi0yMS42bC0yMi4xIDkuMi0zOC43LTEwMS45YzQ3LjktMzUgNjQuOC0xMDAuMyAzNC41LTE1Mi44TDQ3NC4zIDE2Yy04LTEzLjktMjUuMS0xOS43LTQwLTEzLjZMMzIwIDQ5LjggMjA1LjcgMi40Yy0xNC45LTYuMi0zMi0uMy00MCAxMy42TDc5LjEgMTY2LjVDNDguOSAyMTkgNjUuNyAyODQuMyAxMTMuNiAzMTkuMkw3NC45IDQyMS4xbC0yMi4xLTkuMmMtMjAuNC04LjUtNDMuNyAxLjItNTIuMiAyMS42LTEuNyA0LjEuMiA4LjggNC4zIDEwLjVsMTYyLjMgNjcuNGM0LjEgMS43IDguNy0uMiAxMC40LTQuMyA4LjQtMjAuNC0xLjItNDMuOC0yMS42LTUyLjNsLTIyLjEtOS4yTDE3My4zIDM0MmM0LjQuNSA4LjggMS4zIDEzLjEgMS4zIDUxLjcgMCA5OS40LTMzLjEgMTEzLjQtODUuM2wyMC4yLTc1LjQgMjAuMiA3NS40YzE0IDUyLjIgNjEuNyA4NS4zIDExMy40IDg1LjMgNC4zIDAgOC43LS44IDEzLjEtMS4zTDUwNiA0NDUuNmwtMjIuMSA5LjJjLTIwLjQgOC41LTMwLjEgMzEuOS0yMS42IDUyLjMgMS43IDQuMSA2LjQgNiAxMC40IDQuM0w2MzUuMSA0NDRjNC0xLjcgNi02LjMgNC4zLTEwLjR6TTI3NS45IDE2Mi4xbC0xMTIuMS00Ni41IDM2LjUtNjMuNCA5NC41IDM5LjItMTguOSA3MC43em04OC4yIDBsLTE4LjktNzAuNyA5NC41LTM5LjIgMzYuNSA2My40LTExMi4xIDQ2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsYXNzTWFydGluaUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42ek00NDMuNzcgNDhsLTQ4IDQ4SDExNi4yNGwtNDgtNDhoMzc1LjUzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHbGFzc01hcnRpbmkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjA1IDU3LjZDNTIzLjMgMzYuMzQgNTA4LjI1IDAgNDc4LjIgMEgzMy44QzMuNzUgMC0xMS4zIDM2LjM0IDkuOTUgNTcuNkwyMjQgMjcxLjY0VjQ2NGgtNTZjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjQwYzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDBoLTU2VjI3MS42NEw1MDIuMDUgNTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NXaGlza2V5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAzMkgzMkMxMi41IDMyLTIuNCA0OS4yLjMgNjguNWw1NiAzNTYuNWM0LjUgMzEuNSAzMS41IDU0LjkgNjMuNCA1NC45aDI3M2MzMS44IDAgNTguOS0yMy40IDYzLjQtNTQuOWw1NS42LTM1Ni41QzUxNC40IDQ5LjIgNDk5LjUgMzIgNDgwIDMyem0tMzcuNCA2NGwtMzAgMTkyaC0zMTNMNjkuNCA5NmgzNzMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xhc3NlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzQuMSAyODAuMzdMNTI4Ljc1IDk4LjY2Yy01LjkxLTIzLjctMjEuNTktNDQuMDUtNDMtNTUuODEtMjEuNDQtMTEuNzMtNDYuOTctMTQuMTEtNzAuMTktNi4zM2wtMTUuMjUgNS4wOGMtOC4zOSAyLjc5LTEyLjkyIDExLjg2LTEwLjEyIDIwLjI0bDUuMDYgMTUuMThjMi43OSA4LjM4IDExLjg1IDEyLjkxIDIwLjIzIDEwLjEybDEzLjE4LTQuMzljMTAuODctMy42MiAyMy0zLjU3IDMzLjE2IDEuNzMgMTAuMjkgNS4zNyAxNy41NyAxNC41NiAyMC4zNyAyNS44MmwzOC40NiAxNTMuODJjLTIyLjE5LTYuODEtNDkuNzktMTIuNDYtODEuMi0xMi40Ni0zNC43NyAwLTczLjk4IDcuMDItMTE0Ljg1IDI2Ljc0aC03My4xOGMtNDAuODctMTkuNzQtODAuMDgtMjYuNzUtMTE0Ljg2LTI2Ljc1LTMxLjQyIDAtNTkuMDIgNS42NS04MS4yMSAxMi40NmwzOC40Ni0xNTMuODNjMi43OS0xMS4yNSAxMC4wOS0yMC40NSAyMC4zOC0yNS44MSAxMC4xNi01LjMgMjIuMjgtNS4zNSAzMy4xNS0xLjczbDEzLjE3IDQuMzljOC4zOCAyLjc5IDE3LjQ0LTEuNzQgMjAuMjMtMTAuMTJsNS4wNi0xNS4xOGMyLjgtOC4zOC0xLjczLTE3LjQ1LTEwLjEyLTIwLjI0bC0xNS4yNS01LjA4Yy0yMy4yMi03Ljc4LTQ4Ljc1LTUuNDEtNzAuMTkgNi4zMy0yMS40MSAxMS43Ny0zNy4wOSAzMi4xMS00MyA1NS44TDEuOSAyODAuMzdBNjQuMjE4IDY0LjIxOCAwIDAgMCAwIDI5NS44NnY3MC4yNUMwIDQyOS4wMSA1MS41OCA0ODAgMTE1LjIgNDgwaDM3LjEyYzYwLjI4IDAgMTEwLjM3LTQ1Ljk0IDExNC44OC0xMDUuMzdsMi45My0zOC42M2gzNS43NWwyLjkzIDM4LjYzQzMxMy4zMSA0MzQuMDYgMzYzLjQgNDgwIDQyMy42OCA0ODBoMzcuMTJjNjMuNjIgMCAxMTUuMi01MC45OSAxMTUuMi0xMTMuODh2LTcwLjI1YzAtNS4yMy0uNjQtMTAuNDMtMS45LTE1LjV6bS0zNzAuNzIgODkuNDJjLTEuOTcgMjUuOTEtMjQuNCA0Ni4yMS01MS4wNiA0Ni4yMUgxMTUuMkM4Ni45NyA0MTYgNjQgMzkzLjYyIDY0IDM2Ni4xMXYtMzcuNTRjMTguMTItNi40OSA0My40Mi0xMi45MiA3Mi41OC0xMi45MiAyMy44NiAwIDQ3LjI2IDQuMzMgNjkuOTMgMTIuOTJsLTMuMTMgNDEuMjJ6TTUxMiAzNjYuMTJjMCAyNy41MS0yMi45NyA0OS44OC01MS4yIDQ5Ljg4aC0zNy4xMmMtMjYuNjcgMC00OS4xLTIwLjMtNTEuMDYtNDYuMjFsLTMuMTMtNDEuMjJjMjIuNjctOC41OSA0Ni4wOC0xMi45MiA2OS45NS0xMi45MiAyOS4xMiAwIDU0LjQzIDYuNDQgNzIuNTUgMTIuOTN2MzcuNTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsb2JlQWZyaWNhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE2MCAyMTUuNXY2LjkzYzAgNS44Ny0zLjMyIDExLjI0LTguNTcgMTMuODZsLTE1LjM5IDcuN2ExNS40ODUgMTUuNDg1IDAgMCAxLTE1LjUzLS45N2wtMTguMjEtMTIuMTRhMTUuNTIgMTUuNTIgMCAwIDAtMTMuNS0xLjgxbC0yLjY1Ljg4Yy05LjcgMy4yMy0xMy42NiAxNC43OS03Ljk5IDIzLjNsMTMuMjQgMTkuODZjMi44NyA0LjMxIDcuNzEgNi45IDEyLjg5IDYuOWg4LjIxYzguNTYgMCAxNS41IDYuOTQgMTUuNSAxNS41djExLjM0YzAgMy4zNS0xLjA5IDYuNjItMy4xIDkuM2wtMTguNzQgMjQuOThjLTEuNDIgMS45LTIuMzkgNC4xLTIuODMgNi40M2wtNC4zIDIyLjgzYy0uNjIgMy4yOS0yLjI5IDYuMjktNC43NiA4LjU2YTE1OS42MDggMTU5LjYwOCAwIDAgMC0yNSAyOS4xNmwtMTMuMDMgMTkuNTVhMjcuNzU2IDI3Ljc1NiAwIDAgMS0yMy4wOSAxMi4zNmMtMTAuNTEgMC0yMC4xMi01Ljk0LTI0LjgyLTE1LjM0YTc4LjkwMiA3OC45MDIgMCAwIDEtOC4zMy0zNS4yOVYzNjcuNWMwLTguNTYtNi45NC0xNS41LTE1LjUtMTUuNWgtMjUuODhjLTE0LjQ5IDAtMjguMzgtNS43Ni0zOC42My0xNmE1NC42NTkgNTQuNjU5IDAgMCAxLTE2LTM4LjYzdi0xNC4wNmMwLTE3LjE5IDguMS0zMy4zOCAyMS44NS00My43bDI3LjU4LTIwLjY5YTU0LjY2MyA1NC42NjMgMCAwIDEgMzIuNzgtMTAuOTNoLjg5YzguNDggMCAxNi44NSAxLjk3IDI0LjQzIDUuNzdsMTQuNzIgNy4zNmMzLjY4IDEuODQgNy45MyAyLjE0IDExLjgzLjg0bDQ3LjMxLTE1Ljc3YzYuMzMtMi4xMSAxMC42LTguMDMgMTAuNi0xNC43IDAtOC41Ni02Ljk0LTE1LjUtMTUuNS0xNS41aC0xMC4wOWMtNC4xMSAwLTguMDUtMS42My0xMC45Ni00LjU0bC02LjkyLTYuOTJhMTUuNDkzIDE1LjQ5MyAwIDAgMC0xMC45Ni00LjU0SDE5OS41Yy04LjU2IDAtMTUuNS02Ljk0LTE1LjUtMTUuNXYtNC40YzAtNy4xMSA0Ljg0LTEzLjMxIDExLjc0LTE1LjA0bDE0LjQ1LTMuNjFjMy43NC0uOTQgNy0zLjIzIDkuMTQtNi40NGw4LjA4LTEyLjExYzIuODctNC4zMSA3LjcxLTYuOSAxMi44OS02LjloMjQuMjFjOC41NiAwIDE1LjUtNi45NCAxNS41LTE1LjV2LTIxLjdDMzU5LjIzIDcxLjYzIDQyMi44NiAxMzEuMDIgNDQxLjkzIDIwOEg0MjMuNWMtOC41NiAwLTE1LjUgNi45NC0xNS41IDE1LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsb2JlQW1lcmljYXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptODIuMjkgMzU3LjZjLTMuOSAzLjg4LTcuOTkgNy45NS0xMS4zMSAxMS4yOC0yLjk5IDMtNS4xIDYuNy02LjE3IDEwLjcxLTEuNTEgNS42Ni0yLjczIDExLjM4LTQuNzcgMTYuODdsLTE3LjM5IDQ2Ljg1Yy0xMy43NiAzLTI4IDQuNjktNDIuNjUgNC42OXYtMjcuMzhjMS42OS0xMi42Mi03LjY0LTM2LjI2LTIyLjYzLTUxLjI1LTYtNi05LjM3LTE0LjE0LTkuMzctMjIuNjN2LTMyLjAxYzAtMTEuNjQtNi4yNy0yMi4zNC0xNi40Ni0yNy45Ny0xNC4zNy03Ljk1LTM0LjgxLTE5LjA2LTQ4LjgxLTI2LjExLTExLjQ4LTUuNzgtMjIuMS0xMy4xNC0zMS42NS0yMS43NWwtLjgtLjcyYTExNC43OTIgMTE0Ljc5MiAwIDAgMS0xOC4wNi0yMC43NGMtOS4zOC0xMy43Ny0yNC42Ni0zNi40Mi0zNC41OS01MS4xNCAyMC40Ny00NS41IDU3LjM2LTgyLjA0IDEwMy4yLTEwMS44OWwyNC4wMSAxMi4wMUMyMDMuNDggODkuNzQgMjE2IDgyLjAxIDIxNiA3MC4xMXYtMTEuM2M3Ljk5LTEuMjkgMTYuMTItMi4xMSAyNC4zOS0yLjQybDI4LjMgMjguM2M2LjI1IDYuMjUgNi4yNSAxNi4zOCAwIDIyLjYzTDI2NCAxMTJsLTEwLjM0IDEwLjM0Yy0zLjEyIDMuMTItMy4xMiA4LjE5IDAgMTEuMzFsNC42OSA0LjY5YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtOCA4YTguMDA4IDguMDA4IDAgMCAxLTUuNjYgMi4zNGgtOC45OWMtMi4wOCAwLTQuMDguODEtNS41OCAyLjI3bC05LjkyIDkuNjVhOC4wMDggOC4wMDggMCAwIDAtMS41OCA5LjMxbDE1LjU5IDMxLjE5YzIuNjYgNS4zMi0xLjIxIDExLjU4LTcuMTUgMTEuNThoLTUuNjRjLTEuOTMgMC0zLjc5LS43LTUuMjQtMS45NmwtOS4yOC04LjA2YTE2LjAxNyAxNi4wMTcgMCAwIDAtMTUuNTUtMy4xbC0zMS4xNyAxMC4zOWExMS45NSAxMS45NSAwIDAgMC04LjE3IDExLjM0YzAgNC41MyAyLjU2IDguNjYgNi42MSAxMC42OWwxMS4wOCA1LjU0YzkuNDEgNC43MSAxOS43OSA3LjE2IDMwLjMxIDcuMTZzMjIuNTkgMjcuMjkgMzIgMzJoNjYuNzVjOC40OSAwIDE2LjYyIDMuMzcgMjIuNjMgOS4zN2wxMy42OSAxMy42OWEzMC41MDMgMzAuNTAzIDAgMCAxIDguOTMgMjEuNTcgNDYuNTM2IDQ2LjUzNiAwIDAgMS0xMy43MiAzMi45OHpNNDE3IDI3NC4yNWMtNS43OS0xLjQ1LTEwLjg0LTUtMTQuMTUtOS45N2wtMTcuOTgtMjYuOTdhMjMuOTcgMjMuOTcgMCAwIDEgMC0yNi42MmwxOS41OS0yOS4zOGMyLjMyLTMuNDcgNS41LTYuMjkgOS4yNC04LjE1bDEyLjk4LTYuNDlDNDQwLjIgMTkzLjU5IDQ0OCAyMjMuODcgNDQ4IDI1NmMwIDguNjctLjc0IDE3LjE2LTEuODIgMjUuNTRMNDE3IDI3NC4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVBc2lhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bS0xMS4zNCAyNDAuMjNjLTIuODkgNC44Mi04LjEgNy43Ny0xMy43MiA3Ljc3aC0uMzFjLTQuMjQgMC04LjMxIDEuNjktMTEuMzEgNC42OWwtNS42NiA1LjY2Yy0zLjEyIDMuMTItMy4xMiA4LjE5IDAgMTEuMzFsNS42NiA1LjY2YzMgMyA0LjY5IDcuMDcgNC42OSAxMS4zMVYzMDRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTYuMTFjLTYuMDYgMC0xMS42LTMuNDItMTQuMzEtOC44NWwtMjIuNjItNDUuMjNjLTIuNDQtNC44OC04Ljk1LTUuOTQtMTIuODEtMi4wOGwtMTkuNDcgMTkuNDZjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OUg1MC44MUM0OS4xMiAyNzcuNTUgNDggMjY2LjkyIDQ4IDI1NmMwLTExMC4yOCA4OS43Mi0yMDAgMjAwLTIwMCAyMS41MSAwIDQyLjIgMy41MSA2MS42MyA5LjgybC01MC4xNiAzOC41M2MtNS4xMSAzLjQxLTQuNjMgMTEuMDYuODYgMTMuODFsMTAuODMgNS40MWM1LjQyIDIuNzEgOC44NCA4LjI1IDguODQgMTQuMzFWMjE2YzAgNC40Mi0zLjU4IDgtOCA4aC0zLjA2Yy0zLjAzIDAtNS44LTEuNzEtNy4xNS00LjQyLTEuNTYtMy4xMi01Ljk2LTMuMjktNy43Ni0uM2wtMTcuMzcgMjguOTV6TTQwOCAzNTguNDNjMCA0LjI0LTEuNjkgOC4zMS00LjY5IDExLjMxbC05LjU3IDkuNTdjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OWgtMTUuMTZjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTMuMDEtMTMuMDFhMjYuNzY3IDI2Ljc2NyAwIDAgMC0yNS40Mi03LjA0bC0yMS4yNyA1LjMyYy0xLjI3LjMyLTIuNTcuNDgtMy44OC40OGgtMTAuMzRjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTEuOTEtMTEuOTFhOC4wMDggOC4wMDggMCAwIDEtMi4zNC01LjY2di0xMC4yYzAtMy4yNyAxLjk5LTYuMjEgNS4wMy03LjQzbDM5LjM0LTE1Ljc0YzEuOTgtLjc5IDMuODYtMS44MiA1LjU5LTMuMDVsMjMuNzEtMTYuODlhNy45NzggNy45NzggMCAwIDEgNC42NC0xLjQ4aDEyLjA5YzMuMjMgMCA2LjE1IDEuOTQgNy4zOSA0LjkzbDUuMzUgMTIuODVhNCA0IDAgMCAwIDMuNjkgMi40NmgzLjhjMS43OCAwIDMuMzUtMS4xOCAzLjg0LTIuODhsNC4yLTE0LjQ3Yy41LTEuNzEgMi4wNi0yLjg4IDMuODQtMi44OGg2LjA2YzIuMjEgMCA0IDEuNzkgNCA0djEyLjkzYzAgMi4xMi44NCA0LjE2IDIuMzQgNS42NmwxMS45MSAxMS45MWMzIDMgNC42OSA3LjA3IDQuNjkgMTEuMzF2MjQuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR2xvYmVFdXJvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMjAwIDI0OGMwIDIyLjUtMy45IDQ0LjItMTAuOCA2NC40aC0yMC4zYy00LjMgMC04LjQtMS43LTExLjQtNC44bC0zMi0zMi42Yy00LjUtNC42LTQuNS0xMi4xLjEtMTYuN2wxMi41LTEyLjV2LTguN2MwLTMtMS4yLTUuOS0zLjMtOGwtOS40LTkuNGMtMi4xLTIuMS01LTMuMy04LTMuM2gtMTZjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuMyAwLTMgMS4yLTUuOSAzLjMtOGw5LjQtOS40YzIuMS0yLjEgNS0zLjMgOC0zLjNoMzJjNi4yIDAgMTEuMy01LjEgMTEuMy0xMS4zdi05LjRjMC02LjItNS4xLTExLjMtMTEuMy0xMS4zaC0zNi43Yy04LjggMC0xNiA3LjItMTYgMTZ2NC41YzAgNi45LTQuNCAxMy0xMC45IDE1LjJsLTMxLjYgMTAuNWMtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZ2Mi4yYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOHMtMy42LTgtOC04SDI0N2MtMyAwLTUuOCAxLjctNy4yIDQuNGwtOS40IDE4LjdjLTIuNyA1LjQtOC4yIDguOC0xNC4zIDguOEgxOTRjLTguOCAwLTE2LTcuMi0xNi0xNlYxOTljMC00LjIgMS43LTguMyA0LjctMTEuM2wyMC4xLTIwLjFjNC42LTQuNiA3LjItMTAuOSA3LjItMTcuNSAwLTMuNCAyLjItNi41IDUuNS03LjZsNDAtMTMuM2MxLjctLjYgMy4yLTEuNSA0LjQtMi43bDI2LjgtMjYuOGMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM0gyNThsLTE2IDE2djhjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04di0yMGMwLTIuNSAxLjItNC45IDMuMi02LjRsMjguOS0yMS43YzEuOS0uMSAzLjgtLjMgNS43LS4zQzM1OC4zIDU2IDQ0OCAxNDUuNyA0NDggMjU2ek0xMzAuMSAxNDkuMWMwLTMgMS4yLTUuOSAzLjMtOGwyNS40LTI1LjRjMi4xLTIuMSA1LTMuMyA4LTMuMyA2LjIgMCAxMS4zIDUuMSAxMS4zIDExLjN2MTZjMCAzLTEuMiA1LjktMy4zIDhsLTkuNCA5LjRjLTIuMSAyLjEtNSAzLjMtOCAzLjNoLTE2Yy02LjIgMC0xMS4zLTUuMS0xMS4zLTExLjN6bTEyOCAzMDYuNHYtNy4xYzAtOC44LTcuMi0xNi0xNi0xNmgtMjAuMmMtMTAuOCAwLTI2LjctNS4zLTM1LjQtMTEuOGwtMjIuMi0xNi43Yy0xMS41LTguNi0xOC4yLTIyLjEtMTguMi0zNi40di0yMy45YzAtMTYgOC40LTMwLjggMjIuMS0zOWw0Mi45LTI1LjdjNy4xLTQuMiAxNS4yLTYuNSAyMy40LTYuNWgzMS4yYzEwLjkgMCAyMS40IDMuOSAyOS42IDEwLjlsNDMuMiAzNy4xaDE4LjNjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTcuMyAxNy4zYzMuNCAzLjQgOC4xIDUuMyAxMi45IDUuM0g0MjNjLTMyLjQgNTguOS05My44IDk5LjUtMTY0LjkgMTAzLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdsb2JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNi41IDE2MEMzMjIgNzAuNyAyODcuOCA4IDI0OCA4cy03NCA2Mi43LTg4LjUgMTUyaDE3N3pNMTUyIDI1NmMwIDIyLjIgMS4yIDQzLjUgMy4zIDY0aDE4NS4zYzIuMS0yMC41IDMuMy00MS44IDMuMy02NHMtMS4yLTQzLjUtMy4zLTY0SDE1NS4zYy0yLjEgMjAuNS0zLjMgNDEuOC0zLjMgNjR6bTMyNC43LTk2Yy0yOC42LTY3LjktODYuNS0xMjAuNC0xNTgtMTQxLjYgMjQuNCAzMy44IDQxLjIgODQuNyA1MCAxNDEuNmgxMDh6TTE3Ny4yIDE4LjRDMTA1LjggMzkuNiA0Ny44IDkyLjEgMTkuMyAxNjBoMTA4YzguNy01Ni45IDI1LjUtMTA3LjggNDkuOS0xNDEuNnpNNDg3LjQgMTkySDM3Mi43YzIuMSAyMSAzLjMgNDIuNSAzLjMgNjRzLTEuMiA0My0zLjMgNjRoMTE0LjZjNS41LTIwLjUgOC42LTQxLjggOC42LTY0cy0zLjEtNDMuNS04LjUtNjR6TTEyMCAyNTZjMC0yMS41IDEuMi00MyAzLjMtNjRIOC42QzMuMiAyMTIuNSAwIDIzMy44IDAgMjU2czMuMiA0My41IDguNiA2NGgxMTQuNmMtMi0yMS0zLjItNDIuNS0zLjItNjR6bTM5LjUgOTZjMTQuNSA4OS4zIDQ4LjcgMTUyIDg4LjUgMTUyczc0LTYyLjcgODguNS0xNTJoLTE3N3ptMTU5LjMgMTQxLjZjNzEuNC0yMS4yIDEyOS40LTczLjcgMTU4LTE0MS42aC0xMDhjLTguOCA1Ni45LTI1LjYgMTA3LjgtNTAgMTQxLjZ6TTE5LjMgMzUyYzI4LjYgNjcuOSA4Ni41IDEyMC40IDE1OCAxNDEuNi0yNC40LTMzLjgtNDEuMi04NC43LTUwLTE0MS42aC0xMDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdvbGZCYWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0MTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQxNmgyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJoLTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyMC0yMDhjMCA3NC4yLTM5IDEzOS4yLTk3LjUgMTc2aC0yMjFDMzkgMzQ3LjIgMCAyODIuMiAwIDIwOCAwIDkzLjEgOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDh6bS0xODAuMSA0My45YzE4LjMgMCAzMy4xLTE0LjggMzMuMS0zMy4xIDAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xem00OS4xIDQ2LjljMC0xNC40LTkuMy0yNi4zLTIyLjEtMzAuOSA5LjYgMjYuOC0xNS42IDUxLjMtNDEuOSA0MS45IDQuNiAxMi44IDE2LjUgMjIuMSAzMC45IDIyLjEgMTguMyAwIDMzLjEtMTQuOSAzMy4xLTMzLjF6bTY0LTY0YzAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xIDE4LjMgMCAzMy4xLTE0LjkgMzMuMS0zMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHb3B1cmFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAzNTJoLTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZoLTE2di04MGMwLTguOC03LjItMTYtMTYtMTZoLTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djE2aC02NFYxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYxNmgtNjRWMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTZoLTY0VjE2YzAtOC44LTcuMi0xNi0xNi0xNlM5NiA3LjIgOTYgMTZ2MTEySDgwYy04LjggMC0xNiA3LjItMTYgMTZ2ODBINDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxMTJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxMjhjMCA4LjggNy4yIDE2IDE2IDE2aDgwVjM1MmgzMlYyMjRoMzJ2LTk2aDMydjk2aC0zMnYxMjhoLTMydjE2MGg4MHYtODBjMC04LjggNy4yLTE2IDE2LTE2aDY0YzguOCAwIDE2IDcuMiAxNiAxNnY4MGg4MFYzNTJoLTMyVjIyNGgtMzJ2LTk2aDMydjk2aDMydjEyOGgzMnYxNjBoODBjOC44IDAgMTYtNy4yIDE2LTE2VjM2OGMwLTguOC03LjItMTYtMTYtMTZ6TTIzMiAxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnY0OGgtNDh6bTU2IDE3NmgtNjR2LTY0YzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyYWR1YXRpb25DYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIyLjM0IDE1My4yTDM0My40IDY3LjVjLTE1LjItNC42Ny0zMS42LTQuNjctNDYuNzkgMEwxNy42NiAxNTMuMmMtMjMuNTQgNy4yMy0yMy41NCAzOC4zNiAwIDQ1LjU5bDQ4LjYzIDE0Ljk0Yy0xMC42NyAxMy4xOS0xNy4yMyAyOS4yOC0xNy44OCA0Ni45QzM4Ljc4IDI2Ni4xNSAzMiAyNzYuMTEgMzIgMjg4YzAgMTAuNzggNS42OCAxOS44NSAxMy44NiAyNS42NUwyMC4zMyA0MjguNTNDMTguMTEgNDM4LjUyIDI1LjcxIDQ0OCAzNS45NCA0NDhoNTYuMTFjMTAuMjQgMCAxNy44NC05LjQ4IDE1LjYyLTE5LjQ3TDgyLjE0IDMxMy42NUM5MC4zMiAzMDcuODUgOTYgMjk4Ljc4IDk2IDI4OGMwLTExLjU3LTYuNDctMjEuMjUtMTUuNjYtMjYuODcuNzYtMTUuMDIgOC40NC0yOC4zIDIwLjY5LTM2LjcyTDI5Ni42IDI4NC41YzkuMDYgMi43OCAyNi40NCA2LjI1IDQ2Ljc5IDBsMjc4Ljk1LTg1LjdjMjMuNTUtNy4yNCAyMy41NS0zOC4zNiAwLTQ1LjZ6TTM1Mi43OSAzMTUuMDljLTI4LjUzIDguNzYtNTIuODQgMy45Mi02NS41OSAwbC0xNDUuMDItNDQuNTVMMTI4IDM4NGMwIDM1LjM1IDg1Ljk2IDY0IDE5MiA2NHMxOTItMjguNjUgMTkyLTY0bC0xNC4xOC0xMTMuNDctMTQ1LjAzIDQ0LjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmVhdGVyVGhhbkVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1LjIyIDEwNy42OWwxNzUuNTYgNjguMDktMTc1LjQ0IDY4LjA1Yy0xOC4zOSA2LjAzLTI3Ljg4IDI0LjM5LTIxLjIgNDFsMTIuMDkgMzAuMDhjNi42OCAxNi42MSAyNi45OSAyNS4xOSA0NS4zOCAxOS4xNUwzOTMuMDIgMjE0LjJjMTMuNzctNC41MiAyMi45OC0xNi42MSAyMi45OC0zMC4xN3YtMTUuOTZjMC0xMy41Ni05LjIxLTI1LjY1LTIyLjk4LTMwLjE3TDkxLjMgMTcuOTJjLTE4LjI5LTYtMzguNTEgMi41My00NS4xNSAxOS4wNkwzNC4xMiA2Ni45Yy02LjY0IDE2LjUzIDIuODEgMzQuNzkgMjEuMSA0MC43OXpNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmVhdGVyVGhhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjUuNTIgMjA5Ljg1TDU5LjIyIDY3LjAxYy0xNi4wNi03LjQ5LTM1LjE1LS41NC00Mi42NCAxNS41MkwzLjAxIDExMS42MWMtNy40OSAxNi4wNi0uNTQgMzUuMTUgMTUuNTIgNDIuNjRMMjM2Ljk2IDI1Ni4xIDE4LjQ5IDM1Ny45OUMyLjQ3IDM2NS40Ni00LjQ2IDM4NC41IDMuMDEgNDAwLjUybDEzLjUyIDI5QzI0IDQ0NS41NCA0My4wNCA0NTIuNDcgNTkuMDYgNDQ1bDMwNi40Ny0xNDIuOTFhMzIuMDAzIDMyLjAwMyAwIDAgMCAxOC40OC0yOXYtMzQuMjNjLS4wMS0xMi40NS03LjIxLTIzLjc2LTE4LjQ5LTI5LjAxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmltYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTE0NCA0MDBoLThjLTE3LjcgMC0zMi0xNC4zLTMyLTMydi04aDQwdjQwem0wLTU2aC00MHYtOGMwLTE3LjcgMTQuMy0zMiAzMi0zMmg4djQwem0tOC0xMzZjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTcyIDE5MmgtNDh2LTQwaDQ4djQwem0wLTU2aC00OHYtNDBoNDh2NDB6bTY0IDU2aC00OHYtNDBoNDh2NDB6bTAtNTZoLTQ4di00MGg0OHY0MHptNjQgNTZoLTQ4di00MGg0OHY0MHptMC01NmgtNDh2LTQwaDQ4djQwem0tOC0xMDRjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem02NCAxMjhjMCAxNy43LTE0LjMgMzItMzIgMzJoLTh2LTQwaDQwdjh6bTAtMjRoLTQwdi00MGg4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjMuNyAxMjguN2M3LjYtMTEuNCAyNC43LTExLjcgMzIuNyAwIDEyLjQgMTguNCAxNS4xIDM2LjkgMTUuNyA1NS4zLS41IDE4LjQtMy4zIDM2LjktMTUuNyA1NS4zLTcuNiAxMS40LTI0LjcgMTEuNy0zMi43IDAtMTIuNC0xOC40LTE1LjEtMzYuOS0xNS43LTU1LjMuNS0xOC40IDMuMy0zNi45IDE1LjctNTUuM3ptLTE2MCAwYzcuNi0xMS40IDI0LjctMTEuNyAzMi43IDAgMTIuNCAxOC40IDE1LjEgMzYuOSAxNS43IDU1LjMtLjUgMTguNC0zLjMgMzYuOS0xNS43IDU1LjMtNy42IDExLjQtMjQuNyAxMS43LTMyLjcgMC0xMi40LTE4LjQtMTUuMS0zNi45LTE1LjctNTUuMy41LTE4LjQgMy4zLTM2LjkgMTUuNy01NS4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbkJlYW1Td2VhdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTA0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NTYgMTI4YzI2LjUgMCA0OC0yMSA0OC00NyAwLTIwLTI4LjUtNjAuNC00MS42LTc3LjgtMy4yLTQuMy05LjYtNC4zLTEyLjggMEM0MzYuNSAyMC42IDQwOCA2MSA0MDggODFjMCAyNiAyMS41IDQ3IDQ4IDQ3em0wIDMyYy00NC4xIDAtODAtMzUuNC04MC03OSAwLTQuNC4zLTE0LjIgOC4xLTMyLjJDMzQ1IDIzLjEgMjk4LjMgOCAyNDggOCAxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4YzAtMzUuMS03LjQtNjguNC0yMC41LTk4LjYtNi4zIDEuNS0xMi43IDIuNi0xOS41IDIuNnptLTEyOC04YzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjEgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptLTE2MCAwYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptODAgMjgwYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNS0zLjcgMjIuNiA2LjIgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbkJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTQ0YzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjMtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em0tMTYwIDBjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bTgwIDI4MGMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjkgOS40LTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5IZWFydHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNOTAuNCAxODMuNmM2LjctMTcuNiAyNi43LTI2LjcgNDQuOS0yMS45bDcuMSAxLjkgMi03LjFjNS0xOC4xIDIyLjgtMzAuOSA0MS41LTI3LjkgMjEuNCAzLjQgMzQuNCAyNC4yIDI4LjggNDQuNUwxOTUuMyAyNDNjLTEuMiA0LjUtNS45IDcuMi0xMC41IDZsLTcwLjItMTguMmMtMjAuNC01LjQtMzEuOS0yNy0yNC4yLTQ3LjJ6TTI0OCA0MzJjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMi0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNiAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zem0xMzMuNC0yMDEuM2wtNzAuMiAxOC4yYy00LjUgMS4yLTkuMi0xLjUtMTAuNS02TDI4MS4zIDE3M2MtNS42LTIwLjMgNy40LTQxLjEgMjguOC00NC41IDE4LjYtMyAzNi40IDkuOCA0MS41IDI3LjlsMiA3LjEgNy4xLTEuOWMxOC4yLTQuNyAzOC4yIDQuMyA0NC45IDIxLjkgNy43IDIwLjMtMy44IDQxLjktMjQuMiA0Ny4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluU3F1aW50VGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA5LjYgMTExLjljMjIuNi0zLjIgNzMuNS0xMiA4OC4zLTI2LjggMTkuMi0xOS4yIDE4LjktNTAuNi0uNy03MC4yUzQ0Ni01IDQyNi45IDE0LjJjLTE0LjggMTQuOC0yMy41IDY1LjctMjYuOCA4OC4zLS44IDUuNSAzLjkgMTAuMiA5LjUgOS40ek0xMDIuNCA0MDAuMWMtMjIuNiAzLjItNzMuNSAxMi04OC4zIDI2LjgtMTkuMSAxOS4xLTE4LjggNTAuNi44IDcwLjJzNTEgMTkuOSA3MC4yLjdjMTQuOC0xNC44IDIzLjUtNjUuNyAyNi44LTg4LjMuOC01LjUtMy45LTEwLjItOS41LTkuNHptMzExLjctMjU2LjVjLTMzIDMuOS00OC42LTI1LjEtNDUuNy00NS43IDMuNC0yNCA3LjQtNDIuMSAxMS41LTU2LjVDMjg1LjEtMTMuNCAxNjEuOC0uNSA4MC42IDgwLjYtLjUgMTYxLjctMTMuNCAyODUgNDEuNCAzNzkuOWMxNC40LTQuMSAzMi40LTggNTYuNS0xMS41IDMzLjItMy45IDQ4LjYgMjUuMiA0NS43IDQ1LjctMy40IDI0LTcuNCA0Mi4xLTExLjUgNTYuNSA5NC44IDU0LjggMjE4LjEgNDEuOSAyOTkuMy0zOS4yczk0LTIwNC40IDM5LjItMjk5LjNjLTE0LjQgNC4xLTMyLjUgOC01Ni41IDExLjV6TTI1NS43IDEwNmMzLjMtMTMuMiAyMi40LTExLjUgMjMuNiAxLjhsNC44IDUyLjMgNTIuMyA0LjhjMTMuNCAxLjIgMTQuOSAyMC4zIDEuOCAyMy42bC05MC41IDIyLjZjLTguOSAyLjItMTYuNy01LjktMTQuNS0xNC41bDIyLjUtOTAuNnptLTkwLjkgMjMwLjNMMTYwIDI4NGwtNTIuMy00LjhjLTEzLjQtMS4yLTE0LjktMjAuMy0xLjgtMjMuNmw5MC41LTIyLjZjOC44LTIuMiAxNi43IDUuOCAxNC41IDE0LjVMMTg4LjMgMzM4Yy0zLjEgMTMuMi0yMi4yIDExLjctMjMuNS0xLjd6bTIxNS43IDQ0LjJjLTI5LjMgMjkuMy03NS43IDUwLjQtMTE2LjcgNTAuNC0xOC45IDAtMzYuNi00LjUtNTEtMTQuNy05LjgtNi45LTguNy0yMS44IDItMjcuMiAyOC4zLTE0LjYgNjMuOS00Mi40IDk3LjgtNzYuM3M2MS43LTY5LjYgNzYuMy05Ny44YzUuNC0xMC41IDIwLjItMTEuOSAyNy4zLTIgMzIuMyA0NS4zIDcuMSAxMjQuNy0zNS43IDE2Ny42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTMzLjggMTg5LjdsODAtNDhjMTEuNi02LjkgMjQgNy43IDE1LjQgMThMMzQzLjYgMjA4bDMzLjYgNDAuM2M4LjcgMTAuNC0zLjkgMjQuOC0xNS40IDE4bC04MC00OGMtNy43LTQuNy03LjctMTUuOSAwLTIwLjZ6bS0xNjMtMzBjLTguNi0xMC4zIDMuOC0yNC45IDE1LjQtMThsODAgNDhjNy44IDQuNyA3LjggMTUuOSAwIDIwLjZsLTgwIDQ4Yy0xMS41IDYuOC0yNC03LjYtMTUuNC0xOGwzMy42LTQwLjMtMzMuNi00MC4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOSA5LjQtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNS0zLjcgMjIuNiA2LjIgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpblN0YXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTk0LjYgMTY4LjlsMzQuOS01IDE1LjUtMzEuNmMyLjktNS44IDExLTUuOCAxMy45IDBsMTUuNSAzMS42IDM0LjkgNWM2LjIgMSA4LjkgOC42IDQuMyAxMy4ybC0yNS40IDI0LjYgNiAzNC45YzEgNi4yLTUuMyAxMS0xMSA3LjlMMTUyIDIzMy4zbC0zMS4zIDE2LjNjLTUuNyAzLjEtMTItMS43LTExLTcuOWw2LTM0LjktMjUuNC0yNC42Yy00LjYtNC43LTEuOS0xMi4zIDQuMy0xMy4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNSAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNS0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3ptMTU3LjctMjQ5LjlsLTI1LjQgMjQuNiA2IDM0LjljMSA2LjItNS4zIDExLTExIDcuOUwzNDQgMjMzLjNsLTMxLjMgMTYuM2MtNS43IDMuMS0xMi0xLjctMTEtNy45bDYtMzQuOS0yNS40LTI0LjZjLTQuNS00LjYtMS45LTEyLjIgNC4zLTEzLjJsMzQuOS01IDE1LjUtMzEuNmMyLjktNS44IDExLTUuOCAxMy45IDBsMTUuNSAzMS42IDM0LjkgNWM2LjMuOSA5IDguNSA0LjQgMTMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpblRlYXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwMi40IDI1Ni4xYy0yMi42IDMuMi03My41IDEyLTg4LjMgMjYuOC0xOS4xIDE5LjEtMTguOCA1MC42LjggNzAuMnM1MSAxOS45IDcwLjIuN2MxNC44LTE0LjggMjMuNS02NS43IDI2LjgtODguMy44LTUuNS0zLjktMTAuMi05LjUtOS40em01MjMuNCAyNi44Yy0xNC44LTE0LjgtNjUuNy0yMy41LTg4LjMtMjYuOC01LjUtLjgtMTAuMyAzLjktOS41IDkuNSAzLjIgMjIuNiAxMiA3My41IDI2LjggODguMyAxOS4yIDE5LjIgNTAuNiAxOC45IDcwLjItLjdzMjAtNTEuMi44LTcwLjN6bS0xMjkuNC0xMi44Yy0zLjgtMjYuNiAxOS4xLTQ5LjUgNDUuNy00NS43IDguOSAxLjMgMTYuOCAyLjcgMjQuMyA0LjFDNTUyLjcgMTA0LjUgNDQ3LjcgOCAzMjAgOFM4Ny4zIDEwNC41IDczLjYgMjI4LjVjNy41LTEuNCAxNS40LTIuOCAyNC4zLTQuMSAzMy4yLTMuOSA0OC42IDI1LjMgNDUuNyA0NS43LTExLjggODIuMy0yOS45IDEwMC40LTM1LjggMTA2LjQtLjkuOS0yIDEuNi0zIDIuNSA0Mi43IDc0LjYgMTIzIDEyNSAyMTUuMiAxMjVzMTcyLjUtNTAuNCAyMTUuMi0xMjUuMWMtMS0uOS0yLjEtMS41LTMtMi41LTUuOS01LjktMjQtMjQtMzUuOC0xMDYuM3pNNDAwIDE1MmMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMi0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bS0xNjAgMGMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMi0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bTgwIDI4MGMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjcgOS4yLTIxLjYgMjAuNy0xNy45QzIyNy4xIDMzMC41IDI3MiAzMzYgMzIwIDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaW5Ub25ndWVTcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjkzLjEgMzc0LjZjLTE0LjQtNi41LTMxLjEgMi4yLTM0LjYgMTcuNmwtMS44IDcuOGMtMi4xIDkuMi0xNS4yIDkuMi0xNy4zIDBsLTEuOC03LjhjLTMuNS0xNS40LTIwLjItMjQuMS0zNC42LTE3LjYtLjkuNC4zLS4yLTE4LjkgOS40djYzYzAgMzUuMiAyOCA2NC41IDYzLjEgNjQuOSAzNS43LjUgNjQuOS0yOC40IDY0LjktNjR2LTY0Yy0xOS41LTkuNi0xOC4yLTguOS0xOS05LjN6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2YzAgMTA2LjMgNjcgMTk2LjcgMTYxIDIzMi01LjYtMTIuMi05LTI1LjctOS00MHYtNDUuNWMtMjQuNy0xNi4yLTQzLjUtMzguMS00Ny44LTYzLjgtMi0xMS44IDkuMi0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNyAyMi42IDYuMSAyMC43IDE3LjktNC4zIDI1LjctMjMuMSA0Ny42LTQ3LjggNjMuOFY0NDhjMCAxNC4zLTMuNCAyNy44LTkgNDAgOTQtMzUuMyAxNjEtMTI1LjcgMTYxLTIzMkM0OTYgMTE5IDM4NSA4IDI0OCA4em0tMzMuOCAyMTAuM2wtODAgNDhjLTExLjUgNi44LTI0LTcuNi0xNS40LTE4bDMzLjYtNDAuMy0zMy42LTQwLjNjLTguNi0xMC4zIDMuOC0yNC45IDE1LjQtMThsODAgNDhjNy43IDQuNyA3LjcgMTUuOSAwIDIwLjZ6bTE2MyAzMGM4LjcgMTAuNC0zLjkgMjQuOC0xNS40IDE4bC04MC00OGMtNy44LTQuNy03LjgtMTUuOSAwLTIwLjZsODAtNDhjMTEuNy02LjkgMjMuOSA3LjcgMTUuNCAxOEwzNDMuNiAyMDhsMzMuNiA0MC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVG9uZ3VlV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS01NiAyMjVsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwxMTIgMjMzYy04LjUgNy40LTIxLjYuMy0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMjA4IDE5NyAyMTIgMjIyLjJjMS42IDExLjEtMTEuNiAxOC4yLTIwIDEwLjh6bTE1MiAzOWMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bS01MC45IDEwMi42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmluVG9uZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2YzAgMTA2LjMgNjcgMTk2LjcgMTYxIDIzMi01LjYtMTIuMi05LTI1LjctOS00MHYtNDUuNWMtMjQuNy0xNi4yLTQzLjUtMzguMS00Ny44LTYzLjgtMi0xMS44IDkuMy0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNiAyMi42IDYuMSAyMC43IDE3LjktNC4zIDI1LjctMjMuMSA0Ny42LTQ3LjggNjMuOFY0NDhjMCAxNC4zLTMuNCAyNy44LTkgNDAgOTQtMzUuMyAxNjEtMTI1LjcgMTYxLTIzMkM0OTYgMTE5IDM4NSA4IDI0OCA4em0tODAgMjMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0tMzQuOSAxMzQuNmMtMTQuNC02LjUtMzEuMSAyLjItMzQuNiAxNy42bC0xLjggNy44Yy0yLjEgOS4yLTE1LjIgOS4yLTE3LjMgMGwtMS44LTcuOGMtMy41LTE1LjQtMjAuMi0yNC4xLTM0LjYtMTcuNi0uOS40LjMtLjItMTguOSA5LjR2NjNjMCAzNS4yIDI4IDY0LjUgNjMuMSA2NC45IDM1LjcuNSA2NC45LTI4LjQgNjQuOS02NHYtNjRjLTE5LjUtOS42LTE4LjItOC45LTE5LTkuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbldpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOCAwIDExOSAwIDI1NnptMjAwLTQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMnptMTY4IDI1bC05LjUtOC41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMjg4IDIzM2MtOC4zIDcuNC0yMS42LjQtMTkuOC0xMC44IDQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xUzM4NCAxOTcgMzg4IDIyMi4yYzEuNiAxMS0xMS41IDE4LjItMjAgMTAuOHptLTI0My4xIDg3LjhDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuMy0zLjcgMjIuNiA2IDIwLjcgMTcuOS05LjIgNTUtODMuMiA5My4zLTE0My44IDkzLjNzLTEzNC41LTM4LjMtMTQzLjgtOTMuM2MtMi0xMS45IDkuMy0yMS42IDIwLjctMTcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem04MCAyNTZjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS4zLTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwSG9yaXpvbnRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAyODhIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0xNjAgMGgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0xNjAgMGgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek05NiA5NkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUdyaXBMaW5lc1ZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQ5NlYxNmMwLTguOC03LjItMTYtMTYtMTZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnY0ODBjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnptMTI4IDBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4MGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFHcmlwTGluZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDI4OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTI4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhR3JpcFZlcnRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0wIDE2MEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTI4OCAzMmgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUd1aXRhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjMgMzlMNDczIDkuMzdhMzIgMzIgMCAwIDAtNDUuMjYgMEwzODEuNDYgNTUuN2EzNS4xNCAzNS4xNCAwIDAgMC04LjUzIDEzLjc5TDM2MC43NyAxMDZsLTc2LjI2IDc2LjI2Yy0xMi4xNi04Ljc2LTI1LjUtMTUuNzQtNDAuMS0xOS4xNC0zMy40NS03Ljc4LTY3LS44OC04OS44OCAyMmE4Mi40NSA4Mi40NSAwIDAgMC0yMC4yNCAzMy40N2MtNiAxOC41Ni0yMy4yMSAzMi42OS00Mi4xNSAzNC40Ni0yMy43IDIuMjctNDUuNzMgMTEuNDUtNjIuNjEgMjguNDRDLTE2LjExIDMyNy03LjkgNDA5IDQ3LjU4IDQ2NC40NVMxODUgNTI4IDIzMC41NiA0ODIuNTJjMTctMTYuODggMjYuMTYtMzguOSAyOC40NS02Mi43MSAxLjc2LTE4Ljg1IDE1Ljg5LTM2LjEzIDM0LjQzLTQyLjE0YTgyLjYgODIuNiAwIDAgMCAzMy40OC0yMC4yNWMyMi44Ny0yMi44OCAyOS43NC01Ni4zNiAyMi04OS43NS0zLjM5LTE0LjY0LTEwLjM3LTI4LTE5LjE2LTQwLjJMNDA2IDE1MS4yM2wzNi40OC0xMi4xNmEzNS4xNCAzNS4xNCAwIDAgMCAxMy43OS04LjUzbDQ2LjMzLTQ2LjMyYTMyIDMyIDAgMCAwIC4wMy00NS4yMnpNMjA4IDM1MmE0OCA0OCAwIDEgMSA0OC00OCA0OCA0OCAwIDAgMS00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTExMiA0OGgtMzJjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2ODBIMTYwdi04MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2aC0zMmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnYyMjRjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgzMmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di04MGgxMjh2ODBjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgzMmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2VjE0NGMwLTguODM3LTcuMTYzLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW1idXJnZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDI1Nkg0OGE0OCA0OCAwIDAgMCAwIDk2aDQxNmE0OCA0OCAwIDAgMCAwLTk2em0xNiAxMjhIMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MTZhNjQgNjQgMCAwIDAgNjQgNjRoMzUyYTY0IDY0IDAgMCAwIDY0LTY0di0xNmExNiAxNiAwIDAgMC0xNi0xNnpNNTguNjQgMjI0aDM5NC43MmMzNC41NyAwIDU0LjYyLTQzLjkgMzQuODItNzUuODhDNDQ4IDgzLjIgMzU5LjU1IDMyLjEgMjU2IDMyYy0xMDMuNTQuMS0xOTIgNTEuMi0yMzIuMTggMTE2LjExQzQgMTgwLjA5IDI0LjA3IDIyNCA1OC42NCAyMjR6TTM4NCAxMTJhMTYgMTYgMCAxIDEtMTYgMTYgMTYgMTYgMCAwIDEgMTYtMTZ6TTI1NiA4MGExNiAxNiAwIDEgMS0xNiAxNiAxNiAxNiAwIDAgMSAxNi0xNnptLTEyOCAzMmExNiAxNiAwIDEgMS0xNiAxNiAxNiAxNiAwIDAgMSAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFtbWVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3MS4zMSAxOTMuOTRsLTIyLjYzLTIyLjYzYy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0xMS4zMSAxMS4zMS0yOC45LTI4LjljNS42My0yMS4zMS4zNi00NC45LTE2LjM1LTYxLjYxbC00NS4yNS00NS4yNWMtNjIuNDgtNjIuNDgtMTYzLjc5LTYyLjQ4LTIyNi4yOCAwbDkwLjUxIDQ1LjI1djE4Ljc1YzAgMTYuOTcgNi43NCAzMy4yNSAxOC43NSA0NS4yNWw0OS4xNCA0OS4xNGMxNi43MSAxNi43MSA0MC4zIDIxLjk4IDYxLjYxIDE2LjM1bDI4LjkgMjguOS0xMS4zMSAxMS4zMWMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDkwLjUxLTkwLjUxYzYuMjMtNi4yNCA2LjIzLTE2LjM3LS4wMi0yMi42MnptLTI4Ni43Mi0xNS4yYy0zLjctMy43LTYuODQtNy43OS05Ljg1LTExLjk1TDE5LjY0IDQwNC45NmMtMjUuNTcgMjMuODgtMjYuMjYgNjQuMTktMS41MyA4OC45M3M2NS4wNSAyNC4wNSA4OC45My0xLjUzbDIzOC4xMy0yNTUuMDdjLTMuOTYtMi45MS03LjktNS44Ny0xMS40NC05LjQxbC00OS4xNC00OS4xNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFtc2EgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA5LjM0IDMwNy4yNUM1MDQuMjggMjk1LjU2IDQ5Mi43NSAyODggNDgwIDI4OGgtNjRWODBjMC0yMi0xOC00MC00MC00MHMtNDAgMTgtNDAgNDB2MTM0YzAgNS41Mi00LjQ4IDEwLTEwIDEwaC0yMGMtNS41MiAwLTEwLTQuNDgtMTAtMTBWNDBjMC0yMi0xOC00MC00MC00MHMtNDAgMTgtNDAgNDB2MTc0YzAgNS41Mi00LjQ4IDEwLTEwIDEwaC0yMGMtNS41MiAwLTEwLTQuNDgtMTAtMTBWODBjMC0yMi0xOC00MC00MC00MFM5NiA1OCA5NiA4MHYyMDhIMzJjLTEyLjc1IDAtMjQuMjggNy41Ni0yOS4zNCAxOS4yNWEzMS45NjYgMzEuOTY2IDAgMCAwIDUuOTQgMzQuNThsMTAyLjY5IDExMC4wM0MxNDYuOTcgNDkwLjA4IDE5OS42OSA1MTIgMjU2IDUxMnMxMDkuMDMtMjEuOTIgMTQ0LjcyLTYwLjE0TDUwMy40IDM0MS44M2EzMS45NjYgMzEuOTY2IDAgMCAwIDUuOTQtMzQuNTh6TTI1NiA0MTZjLTUzLjAyIDAtOTYtNjQtOTYtNjRzNDIuOTgtNjQgOTYtNjQgOTYgNjQgOTYgNjQtNDIuOTggNjQtOTYgNjR6bTAtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRIb2xkaW5nSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc1LjMgMjUwLjVjNyA3LjQgMTguNCA3LjQgMjUuNSAwbDEwOC45LTExNC4yYzMxLjYtMzMuMiAyOS44LTg4LjItNS42LTExOC44LTMwLjgtMjYuNy03Ni43LTIxLjktMTA0LjkgNy43TDI4OCAzNi45bC0xMS4xLTExLjZDMjQ4LjctNC40IDIwMi44LTkuMiAxNzIgMTcuNWMtMzUuMyAzMC42LTM3LjIgODUuNi01LjYgMTE4LjhsMTA4LjkgMTE0LjJ6bTI5MCA3Ny42Yy0xMS44LTEwLjctMzAuMi0xMC00Mi42IDBMNDMwLjMgNDAyYy0xMS4zIDkuMS0yNS40IDE0LTQwIDE0SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg3OC4zYzE1LjkgMCAzMC43LTEwLjkgMzMuMy0yNi42IDMuMy0yMC0xMi4xLTM3LjQtMzEuNi0zNy40SDE5MmMtMjcgMC01My4xIDkuMy03NC4xIDI2LjNMNzEuNCAzODRIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzU2LjhjMTQuNSAwIDI4LjYtNC45IDQwLTE0TDU2NCAzNzdjMTUuMi0xMi4xIDE2LjQtMzUuMyAxLjMtNDguOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1OS44OCwxNzUuODJoNjR2NjRhMTYsMTYsMCwwLDAsMTYsMTZoNjRhMTYsMTYsMCwwLDAsMTYtMTZ2LTY0aDY0YTE2LDE2LDAsMCwwLDE2LTE2di02NGExNiwxNiwwLDAsMC0xNi0xNmgtNjR2LTY0YTE2LDE2LDAsMCwwLTE2LTE2aC02NGExNiwxNiwwLDAsMC0xNiwxNnY2NGgtNjRhMTYsMTYsMCwwLDAtMTYsMTZ2NjRBMTYsMTYsMCwwLDAsMTU5Ljg4LDE3NS44MlpNNTY4LjA3LDMzNi4xM2EzOS45MSwzOS45MSwwLDAsMC01NS45My04LjQ3TDM5Mi40Nyw0MTUuODRIMjcxLjg2YTE2LDE2LDAsMCwxLDAtMzJIMzUwLjFjMTYsMCwzMC43NS0xMC44NywzMy4zNy0yNi42MWEzMi4wNiwzMi4wNiwwLDAsMC0zMS42Mi0zNy4zOGgtMTYwYTExNy43LDExNy43LDAsMCwwLTc0LjEyLDI2LjI1bC00Ni41LDM3Ljc0SDE1Ljg3YTE2LjExLDE2LjExLDAsMCwwLTE2LDE2djk2YTE2LjExLDE2LjExLDAsMCwwLDE2LDE2aDM0N2ExMDQuOCwxMDQuOCwwLDAsMCw2MS43LTIwLjI3TDU1OS42LDM5MkE0MCw0MCwwLDAsMCw1NjguMDcsMzM2LjEzWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZ1VzZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzEuMDYsMTQ0LjNsNTQuMjcsMTQuM2E4LjU5LDguNTksMCwwLDEsNi42Myw4LjFjMCw0LjYtNC4wOSw4LjQtOS4xMiw4LjRoLTM1LjZhMzAsMzAsMCwwLDEtMTEuMTktMi4yYy01LjI0LTIuMi0xMS4yOC0xLjctMTUuMywybC0xOSwxNy41YTExLjY4LDExLjY4LDAsMCwwLTIuMjUsMi42NiwxMS40MiwxMS40MiwwLDAsMCwzLjg4LDE1Ljc0LDgzLjc3LDgzLjc3LDAsMCwwLDM0LjUxLDExLjVWMjQwYzAsOC44LDcuODMsMTYsMTcuMzcsMTZoMTcuMzdjOS41NSwwLDE3LjM4LTcuMiwxNy4zOC0xNlYyMjIuNGMzMi45My0zLjYsNTcuODQtMzEsNTMuNS02My0zLjE1LTIzLTIyLjQ2LTQxLjMtNDYuNTYtNDcuN0wyODIuNjgsOTcuNGE4LjU5LDguNTksMCwwLDEtNi42My04LjFjMC00LjYsNC4wOS04LjQsOS4xMi04LjRoMzUuNkEzMCwzMCwwLDAsMSwzMzIsODMuMWM1LjIzLDIuMiwxMS4yOCwxLjcsMTUuMy0ybDE5LTE3LjVBMTEuMzEsMTEuMzEsMCwwLDAsMzY4LjQ3LDYxYTExLjQzLDExLjQzLDAsMCwwLTMuODQtMTUuNzgsODMuODIsODMuODIsMCwwLDAtMzQuNTItMTEuNVYxNmMwLTguOC03LjgyLTE2LTE3LjM3LTE2SDI5NS4zN0MyODUuODIsMCwyNzgsNy4yLDI3OCwxNlYzMy42Yy0zMi44OSwzLjYtNTcuODUsMzEtNTMuNTEsNjNDMjI3LjYzLDExOS42LDI0NywxMzcuOSwyNzEuMDYsMTQ0LjNaTTU2NS4yNywzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiwwTDQzMC4yNyw0MDJhNjMuNjQsNjMuNjQsMCwwLDEtNDAsMTRIMjcyYTE2LDE2LDAsMCwxLDAtMzJoNzguMjljMTUuOSwwLDMwLjcxLTEwLjksMzMuMjUtMjYuNmEzMS4yLDMxLjIsMCwwLDAsLjQ2LTUuNDZBMzIsMzIsMCwwLDAsMzUyLDMyMEgxOTJhMTE3LjY2LDExNy42NiwwLDAsMC03NC4xLDI2LjI5TDcxLjQsMzg0SDE2QTE2LDE2LDAsMCwwLDAsNDAwdjk2YTE2LDE2LDAsMCwwLDE2LDE2SDM3Mi43N2E2NCw2NCwwLDAsMCw0MC0xNEw1NjQsMzc3YTMyLDMyLDAsMCwwLDEuMjgtNDguOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZEhvbGRpbmdXYXRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjU2YzUzIDAgOTYtNDIuMSA5Ni05NCAwLTQwLTU3LjEtMTIwLjctODMuMi0xNTUuNi02LjQtOC41LTE5LjItOC41LTI1LjYgMEMyNDkuMSA0MS4zIDE5MiAxMjIgMTkyIDE2MmMwIDUxLjkgNDMgOTQgOTYgOTR6bTI3Ny4zIDcyLjFjLTExLjgtMTAuNy0zMC4yLTEwLTQyLjYgMEw0MzAuMyA0MDJjLTExLjMgOS4xLTI1LjQgMTQtNDAgMTRIMjcyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDc4LjNjMTUuOSAwIDMwLjctMTAuOSAzMy4zLTI2LjYgMy4zLTIwLTEyLjEtMzcuNC0zMS42LTM3LjRIMTkyYy0yNyAwLTUzLjEgOS4zLTc0LjEgMjYuM0w3MS40IDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNmgzNTYuOGMxNC41IDAgMjguNi00LjkgNDAtMTRMNTY0IDM3N2MxNS4yLTEyLjEgMTYuNC0zNS4zIDEuMy00OC45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kSG9sZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjUuMyAzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiAwTDQzMC4zIDQwMmMtMTEuMyA5LjEtMjUuNCAxNC00MCAxNEgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNzguM2MxNS45IDAgMzAuNy0xMC45IDMzLjMtMjYuNiAzLjMtMjAtMTIuMS0zNy40LTMxLjYtMzcuNEgxOTJjLTI3IDAtNTMuMSA5LjMtNzQuMSAyNi4zTDcxLjQgMzg0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDM1Ni44YzE0LjUgMCAyOC42LTQuOSA0MC0xNEw1NjQgMzc3YzE1LjItMTIuMSAxNi40LTM1LjMgMS4zLTQ4Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ4MGgxOTJWMzYzLjc3OGE5NS45OTggOTUuOTk4IDAgMCAwLTE0LjgzMy01MS4yNjNMMzk4LjEyNyA1NC4zNjhBNDggNDggMCAwIDAgMzU3LjU0NCAzMkgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnYxNmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoMjI5Ljk4MWMxMi44NDQgMCAyMS41NTYgMTMuMDY3IDE2LjYxNSAyNC45MjNsLTIxLjQxIDUxLjM4NUEzMiAzMiAwIDAgMSAyNTEuNjQ4IDIyNEgxMjhjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHY4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNDcuNDA2YTQ3Ljk5NSA0Ny45OTUgMCAwIDEgMjUuNjkyIDcuNDU1bDExMS43NDggNzAuODExQTI0LjAwMSAyNC4wMDEgMCAwIDEgMzg0IDQxOC41MzlWNDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kTWlkZGxlRmluZ2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3OS45MyAzMTcuMTJhMzcuMzMgMzcuMzMgMCAwIDAtMjguMjgtMzYuMTlMNDE2IDI3MnYtNDkuNTljMC0xMS40NC05LjY5LTIxLjI5LTIzLjE1LTIzLjU0bC0zOC40LTYuNEMzMzYuNjMgMTg5LjUgMzIwIDIwMC44NiAzMjAgMjE2djMyYTggOCAwIDAgMS0xNiAwVjUwYzAtMjYuMjgtMjAuMjUtNDkuMi00Ni41Mi01MEE0OCA0OCAwIDAgMCAyMDggNDh2MjAwYTggOCAwIDAgMS0xNiAwdi0zMmMwLTE1LjE1LTE2LjYzLTI2LjUxLTM0LjQ1LTIzLjU0bC0zMC42OCA1LjEyYy0xOCAzLTMwLjg3IDE2LjEyLTMwLjg3IDMxLjM4VjM3NmE4IDggMCAwIDEtMTYgMHYtNzZsLTI3LjM2IDE1QTM3LjM0IDM3LjM0IDAgMCAwIDMyIDM0OC40djczLjQ3YTM3LjMxIDM3LjMxIDAgMCAwIDEwLjkzIDI2LjM5bDMwLjkzIDMwLjkzQTExMiAxMTIgMCAwIDAgMTUzLjA1IDUxMmgyMTVBMTEyIDExMiAwIDAgMCA0ODAgNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kUGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDA4Ljc4MSAxMjguMDA3QzM4Ni4zNTYgMTI3LjU3OCAzNjggMTQ2LjM2IDM2OCAxNjguNzlWMjU2aC04Vjc5Ljc5YzAtMjIuNDMtMTguMzU2LTQxLjIxMi00MC43ODEtNDAuNzgzQzI5Ny40ODggMzkuNDIzIDI4MCA1Ny4xNjkgMjgwIDc5djE3N2gtOFY0MC43OUMyNzIgMTguMzYgMjUzLjY0NC0uNDIyIDIzMS4yMTkuMDA3IDIwOS40ODguNDIzIDE5MiAxOC4xNjkgMTkyIDQwdjIxNmgtOFY4MC43OWMwLTIyLjQzLTE4LjM1Ni00MS4yMTItNDAuNzgxLTQwLjc4M0MxMjEuNDg4IDQwLjQyMyAxMDQgNTguMTY5IDEwNCA4MHYyMzUuOTkybC0zMS42NDgtNDMuNTE5Yy0xMi45OTMtMTcuODY2LTM4LjAwOS0yMS44MTctNTUuODc3LTguODIzLTE3Ljg2NSAxMi45OTQtMjEuODE1IDM4LjAxLTguODIyIDU1Ljg3N2wxMjUuNjAxIDE3Mi43MDVBNDggNDggMCAwIDAgMTcyLjA3MyA1MTJoMTk3LjU5YzIyLjI3NCAwIDQxLjYyMi0xNS4zMjQgNDYuNzI0LTM3LjAwNmwyNi41MDgtMTEyLjY2YTE5Mi4wMTEgMTkyLjAxMSAwIDAgMCA1LjEwNC00My45NzVWMTY4Yy4wMDEtMjEuODMxLTE3LjQ4Ny0zOS41NzctMzkuMjE4LTM5Ljk5M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBlYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwOCAyMTZjLTIyLjA5MiAwLTQwIDE3LjkwOS00MCA0MGgtOHYtMzJjMC0yMi4wOTEtMTcuOTA4LTQwLTQwLTQwcy00MCAxNy45MDktNDAgNDB2MzJoLThWNDhjMC0yNi41MS0yMS40OS00OC00OC00OHMtNDggMjEuNDktNDggNDh2MjA4aC0xMy41NzJMOTIuNjg4IDc4LjQ0OUM4Mi45OTQgNTMuNzc0IDU1LjEzNCA0MS42MyAzMC40NjEgNTEuMzI0IDUuNzg3IDYxLjAxNy02LjM1NiA4OC44NzcgMy4zMzcgMTEzLjU1MWw3NC43NjUgMTkwLjM0Mi0zMS4wOSAyNC44NzJjLTE1LjM4MSAxMi4zMDYtMTkuNTE1IDMzLjk3OC05Ljc0MSA1MS4wODFsNjQgMTEyQTM5Ljk5OCAzOS45OTggMCAwIDAgMTM2IDUxMmgyNDBjMTguNTYyIDAgMzQuNjg2LTEyLjc3IDM4LjkzNy0zMC44MzhsMzItMTM2QTM5Ljk3IDM5Ljk3IDAgMCAwIDQ0OCAzMzZ2LTgwYzAtMjIuMDkxLTE3LjkwOC00MC00MC00MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS44MjYgNDY3LjJWMzE3Ljk2NmMtOC4yNDggNS44NDEtMTYuNTU4IDEwLjU3LTI0LjkxOCAxNC4xNTNDMzUuMDk4IDM0NS43NTItLjAxNCAzMjIuMjIyIDAgMjg4Yy4wMDgtMTguNjE2IDEwLjg5Ny0zMi4yMDMgMjkuMDkyLTQwIDI4LjI4Ni0xMi4xMjIgNjQuMzI5LTc4LjY0OCA3Ny4zMjMtMTA3LjUzNCA3Ljk1Ni0xNy44NTcgMjUuNDc5LTI4LjQ1MyA0My44NDUtMjguNDY0bC4wMDEtLjAwMmgxNzEuNTI2YzExLjgxMiAwIDIxLjg5NyA4LjU5NiAyMy43MDMgMjAuMjY5IDcuMjUgNDYuODM3IDM4LjQ4MyA2MS43NiAzOC4zMTUgMTIzLjczMS0uMDA3IDIuNzI0LjE5NSAxMy4yNTQuMTk1IDE2IDAgNTAuNjU0LTIyLjEyMiA4MS41NzQtNzEuMjYzIDcyLjYtOS4yOTcgMTguNTk3LTM5LjQ4NiAzMC43MzgtNjIuMzE1IDE2LjQ1LTIxLjE3NyAyNC42NDUtNTMuODk2IDIyLjYzOS03MC45NDQgNi4yOTlWNDY3LjJjMCAyNC4xNS0yMC4yMDEgNDQuOC00My44MjYgNDQuOC0yMy4yODMgMC00My44MjYtMjEuMzUtNDMuODI2LTQ0Ljh6TTExMiA3MlYyNGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTkyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY0OGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTM2Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR6bTIxMi0yNGMwLTExLjA0Ni04Ljk1NC0yMC0yMC0yMHMtMjAgOC45NTQtMjAgMjAgOC45NTQgMjAgMjAgMjAgMjAtOC45NTQgMjAtMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQb2ludExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQuOCAxNTUuODI2aDE0OS4yMzRjLTUuODQxLTguMjQ4LTEwLjU3LTE2LjU1OC0xNC4xNTMtMjQuOTE4QzE2Ni4yNDggOTkuMDk4IDE4OS43NzggNjMuOTg2IDIyNCA2NGMxOC42MTYuMDA4IDMyLjIwMyAxMC44OTcgNDAgMjkuMDkyIDEyLjEyMiAyOC4yODYgNzguNjQ4IDY0LjMyOSAxMDcuNTM0IDc3LjMyMyAxNy44NTcgNy45NTYgMjguNDUzIDI1LjQ3OSAyOC40NjQgNDMuODQ1bC4wMDIuMDAxdjE3MS41MjZjMCAxMS44MTItOC41OTYgMjEuODk3LTIwLjI2OSAyMy43MDMtNDYuODM3IDcuMjUtNjEuNzYgMzguNDgzLTEyMy43MzEgMzguMzE1LTIuNzI0LS4wMDctMTMuMjU0LjE5NS0xNiAuMTk1LTUwLjY1NCAwLTgxLjU3NC0yMi4xMjItNzIuNi03MS4yNjMtMTguNTk3LTkuMjk3LTMwLjczOC0zOS40ODYtMTYuNDUtNjIuMzE1LTI0LjY0NS0yMS4xNzctMjIuNjM5LTUzLjg5Ni02LjI5OS03MC45NDRINDQuOGMtMjQuMTUgMC00NC44LTIwLjIwMS00NC44LTQzLjgyNiAwLTIzLjI4MyAyMS4zNS00My44MjYgNDQuOC00My44MjZ6TTQ0MCAxNzZoNDhjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRoLTQ4Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMjAwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHptMjQgMjEyYzExLjA0NiAwIDIwLTguOTU0IDIwLTIwcy04Ljk1NC0yMC0yMC0yMC0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50UmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDE5OS42NTJjMCAyMy42MjUtMjAuNjUgNDMuODI2LTQ0LjggNDMuODI2aC05OS44NTFjMTYuMzQgMTcuMDQ4IDE4LjM0NiA0OS43NjYtNi4yOTkgNzAuOTQ0IDE0LjI4OCAyMi44MjkgMi4xNDcgNTMuMDE3LTE2LjQ1IDYyLjMxNUMzNTMuNTc0IDQyNS44NzggMzIyLjY1NCA0NDggMjcyIDQ0OGMtMi43NDYgMC0xMy4yNzYtLjIwMy0xNi0uMTk1LTYxLjk3MS4xNjgtNzYuODk0LTMxLjA2NS0xMjMuNzMxLTM4LjMxNUMxMjAuNTk2IDQwNy42ODMgMTEyIDM5Ny41OTkgMTEyIDM4NS43ODZWMjE0LjI2MWwuMDAyLS4wMDFjLjAxMS0xOC4zNjYgMTAuNjA3LTM1Ljg4OSAyOC40NjQtNDMuODQ1IDI4Ljg4Ni0xMi45OTQgOTUuNDEzLTQ5LjAzOCAxMDcuNTM0LTc3LjMyMyA3Ljc5Ny0xOC4xOTQgMjEuMzg0LTI5LjA4NCA0MC0yOS4wOTIgMzQuMjIyLS4wMTQgNTcuNzUyIDM1LjA5OCA0NC4xMTkgNjYuOTA4LTMuNTgzIDguMzU5LTguMzEyIDE2LjY3LTE0LjE1MyAyNC45MThINDY3LjJjMjMuNDUgMCA0NC44IDIwLjU0MyA0NC44IDQzLjgyNnpNOTYgMjAwdjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDQ4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHpNNjggMzY4YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFBvaW50VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM1LjY1MiAwYzIzLjYyNSAwIDQzLjgyNiAyMC42NSA0My44MjYgNDQuOHY5OS44NTFjMTcuMDQ4LTE2LjM0IDQ5Ljc2Ni0xOC4zNDYgNzAuOTQ0IDYuMjk5IDIyLjgyOS0xNC4yODggNTMuMDE3LTIuMTQ3IDYyLjMxNSAxNi40NUMzNjEuODc4IDE1OC40MjYgMzg0IDE4OS4zNDYgMzg0IDI0MGMwIDIuNzQ2LS4yMDMgMTMuMjc2LS4xOTUgMTYgLjE2OCA2MS45NzEtMzEuMDY1IDc2Ljg5NC0zOC4zMTUgMTIzLjczMUMzNDMuNjgzIDM5MS40MDQgMzMzLjU5OSA0MDAgMzIxLjc4NiA0MDBIMTUwLjI2MWwtLjAwMS0uMDAyYy0xOC4zNjYtLjAxMS0zNS44ODktMTAuNjA3LTQzLjg0NS0yOC40NjRDOTMuNDIxIDM0Mi42NDggNTcuMzc3IDI3Ni4xMjIgMjkuMDkyIDI2NCAxMC44OTcgMjU2LjIwMy4wMDggMjQyLjYxNiAwIDIyNGMtLjAxNC0zNC4yMjIgMzUuMDk4LTU3Ljc1MiA2Ni45MDgtNDQuMTE5IDguMzU5IDMuNTgzIDE2LjY3IDguMzEyIDI0LjkxOCAxNC4xNTNWNDQuOGMwLTIzLjQ1IDIwLjU0My00NC44IDQzLjgyNi00NC44ek0xMzYgNDE2aDE5MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NDhjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDEzNmMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di00OGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjR6bTE2OCAyOGMtMTEuMDQ2IDAtMjAgOC45NTQtMjAgMjBzOC45NTQgMjAgMjAgMjAgMjAtOC45NTQgMjAtMjAtOC45NTQtMjAtMjAtMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRQb2ludGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAyNDB2OTZjMCAzLjA4NC0uMzU2IDYuMTU5LTEuMDYzIDkuMTYybC0zMiAxMzZDNDEwLjY4NiA0OTkuMjMgMzk0LjU2MiA1MTIgMzc2IDUxMkgxNjhhNDAuMDA0IDQwLjAwNCAwIDAgMS0zMi4zNS0xNi40NzNsLTEyNy45OTctMTc2Yy0xMi45OTMtMTcuODY2LTkuMDQzLTQyLjg4MyA4LjgyMi01NS44NzYgMTcuODY3LTEyLjk5NCA0Mi44ODQtOS4wNDMgNTUuODc3IDguODIzTDEwNCAzMTUuOTkyVjQwYzAtMjIuMDkxIDE3LjkwOC00MCA0MC00MHM0MCAxNy45MDkgNDAgNDB2MjAwaDh2LTQwYzAtMjIuMDkxIDE3LjkwOC00MCA0MC00MHM0MCAxNy45MDkgNDAgNDB2NDBoOHYtMjRjMC0yMi4wOTEgMTcuOTA4LTQwIDQwLTQwczQwIDE3LjkwOSA0MCA0MHYyNGg4YzAtMjIuMDkxIDE3LjkwOC00MCA0MC00MHM0MCAxNy45MDkgNDAgNDB6bS0yNTYgODBoLTh2OTZoOHYtOTZ6bTg4IDBoLTh2OTZoOHYtOTZ6bTg4IDBoLTh2OTZoOHYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRSb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NC44IDgwYy0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4aC04Vjk2LjhjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjgtMjYuOS0uNC00OC44IDIxLjItNDguOCA0OHYzMmgtOFY4MC44YzAtMjYuMy0yMC45LTQ4LjMtNDcuMi00OC44LTI2LjktLjQtNDguOCAyMS4yLTQ4LjggNDh2NDhoLThWOTYuOGMwLTI2LjMtMjAuOS00OC4zLTQ3LjItNDguOC0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4djEzNmwtOC03LjF2LTQ4LjFjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjhDMjEuOSAxMjcuNiAwIDE0OS4yIDAgMTc2djY2LjRjMCAyNy40IDExLjcgNTMuNSAzMi4yIDcxLjhsMTExLjcgOTkuM2MxMC4yIDkuMSAxNi4xIDIyLjIgMTYuMSAzNS45djYuN2MwIDEzLjMgMTAuNyAyNCAyNCAyNGgyNDBjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTIuOWMwLTEyLjggMi42LTI1LjUgNy41LTM3LjNsNDktMTE2LjNjNS0xMS44IDcuNS0yNC41IDcuNS0zNy4zVjEyOC44YzAtMjYuMy0yMC45LTQ4LjQtNDcuMi00OC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kU2Npc3NvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDQ0MGMwLTIyLjA5MiAxNy45MDktNDAgNDAtNDB2LThoLTMyYy0yMi4wOTEgMC00MC0xNy45MDgtNDAtNDBzMTcuOTA5LTQwIDQwLTQwaDMydi04SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4aDIwOHYtMTMuNTcybC0xNzcuNTUxLTY5Ljc0Yy0yNC42NzQtOS42OTQtMzYuODE4LTM3LjU1NS0yNy4xMjUtNjIuMjI4IDkuNjkzLTI0LjY3NCAzNy41NTQtMzYuODE3IDYyLjIyOC0yNy4xMjRsMTkwLjM0MiA3NC43NjUgMjQuODcyLTMxLjA5YzEyLjMwNi0xNS4zODEgMzMuOTc4LTE5LjUxNSA1MS4wODEtOS43NDFsMTEyIDY0QTQwLjAwMiA0MC4wMDIgMCAwIDEgNTEyIDE2OHYyNDBjMCAxOC41NjItMTIuNzcgMzQuNjg2LTMwLjgzOCAzOC45MzdsLTEzNiAzMkEzOS45ODIgMzkuOTgyIDAgMCAxIDMzNiA0ODBoLTgwYy0yMi4wOTEgMC00MC0xNy45MDgtNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRTcGFya2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDYuNjYsMTcwLjY0bC4wOSwwLDQ5LjU1LTIwLjY1YTcuMzIsNy4zMiwwLDAsMCwzLjY4LTZoMGE3LjI5LDcuMjksMCwwLDAtMy42OC02bC00OS41Ny0yMC42Ny0uMDcsMEw4Niw2Ny42OGE2LjY2LDYuNjYsMCwwLDAtMTEuOTIsMGwtMjAuNyw0OS42My0uMDUsMEwzLjcsMTM4QTcuMjksNy4yOSwwLDAsMCwwLDE0NEgwYTcuMzIsNy4zMiwwLDAsMCwzLjY4LDZMNTMuMjcsMTcwLjZsLjA3LDBMNzQsMjIwLjI2YTYuNjUsNi42NSwwLDAsMCwxMS45MiwwbDIwLjY5LTQ5LjYyWk00NzEuMzgsNDY3LjQxbC0xLS40Mi0xLS41YTM4LjY3LDM4LjY3LDAsMCwxLDAtNjkuMTRsMS0uNDksMS0uNDMsMzcuNDktMTUuNjMsMTUuNjMtMzcuNDguNDEtMSwuNDctLjk1YzMuODUtNy43NCwxMC41OC0xMy42MywxOC4zNS0xNy4zNCwwLTEuMzMuMjUtMi42OS4yNy00VjE0NGEzMiwzMiwwLDAsMC02NCwwdjcyYTgsOCwwLDAsMS04LDhINDU2YTgsOCwwLDAsMS04LThWNjRhMzIsMzIsMCwwLDAtNjQsMFYyMTZhOCw4LDAsMCwxLTgsOEgzNjBhOCw4LDAsMCwxLTgtOFYzMmEzMiwzMiwwLDAsMC02NCwwVjIxNmE4LDgsMCwwLDEtOCw4SDI2NGE4LDgsMCwwLDEtOC04VjY0YTMyLDMyLDAsMCwwLTY0LDB2MjQxbC0yMy41OS0zMi40OWE0MCw0MCwwLDAsMC02NC43MSw0Ny4wOUwyMjkuMyw0OTIuMjFBNDguMDcsNDguMDcsMCwwLDAsMjY4LjA5LDUxMkg0NjUuN2MxOS4yNCwwLDM1LjY1LTExLjczLDQzLjI0LTI4Ljc5bC0uMDctLjE3Wk0zNDkuNzksMzM5LjUyLDMyMCwzNTEuOTNsLTEyLjQyLDI5Ljc4YTQsNCwwLDAsMS03LjE1LDBMMjg4LDM1MS45M2wtMjkuNzktMTIuNDFhNCw0LDAsMCwxLDAtNy4xNkwyODgsMzE5Ljk0bDEyLjQyLTI5Ljc4YTQsNCwwLDAsMSw3LjE1LDBMMzIwLDMxOS45NGwyOS43OSwxMi40MmE0LDQsMCwwLDEsMCw3LjE2Wk02NDAsNDMxLjkxYTcuMjgsNy4yOCwwLDAsMC0zLjY4LTZsLTQ5LjU3LTIwLjY3LS4wNywwTDU2NiwzNTUuNjNhNi42Niw2LjY2LDAsMCwwLTExLjkyLDBsLTIwLjcsNDkuNjMtLjA1LDBMNDgzLjcsNDI2YTcuMjgsNy4yOCwwLDAsMC0zLjY4LDZoMGE3LjI5LDcuMjksMCwwLDAsMy42OCw1Ljk1bDQ5LjU3LDIwLjY3LjA3LDBMNTU0LDUwOC4yMWE2LjY1LDYuNjUsMCwwLDAsMTEuOTIsMGwyMC42OS00OS42MmgwbC4wOSwwLDQ5LjU1LTIwLjY2YTcuMjksNy4yOSwwLDAsMCwzLjY4LTUuOTVoMFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZFNwb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC45MDA1LDE0NS4yNzAyNyw0NDIuNjA0LDQzMi4wOTM5MUExMDMuOTk1MDcsMTAzLjk5NTA3LDAsMCwxLDM0MS40Mzc0NSw1MTJIMjE0LjA3NGExMzUuOTY5NjgsMTM1Ljk2OTY4LDAsMCwxLTkzLjE4NDg5LTM2Ljk1MjkxTDEyLjU5MDcyLDM3My4xMjcyM2EzOS45OTIsMzkuOTkyLDAsMCwxLDU0LjgxMjItNTguMjQ5ODhsNjAuNTkzNDIsNTcuMDI1Mjh2MGEyODMuMjQ4NDksMjgzLjI0ODQ5LDAsMCwwLTExLjY3MDMtODAuNDY3MzRMNzMuNjM3MjYsMTQ3LjM2MDExYTQwLjAwNTc1LDQwLjAwNTc1LDAsMSwxLDc2LjcxODMzLTIyLjcxODdsMzcuMTU0NTgsMTI1LjM5NDc3YTguMzMxMTMsOC4zMzExMywwLDAsMCwxNi4wNTY1Ni00LjQ0MTRMMTUzLjI2MTgzLDQ5Ljk1NDA2QTM5Ljk5NjM4LDM5Ljk5NjM4LDAsMSwxLDIzMC43MzAxNSwzMC4wMTY2bDU2LjA5NDkxLDIxOC4xNTgyNWExMC40MjA0NywxMC40MjA0NywwLDAsMCwyMC4zMDAxOC0uNTAxTDM0NC44MDc2Niw2My45Njk2NmE0MC4wNTIsNDAuMDUyLDAsMCwxLDUxLjMwMjQ1LTMwLjA4OTNjMTkuODYwNzMsNi4yOTk4LDMwLjg2MjYyLDI3LjY3Mzc4LDI2LjY3NTY0LDQ4LjA4NDg3bC0zMy44Mzg2OSwxNjQuOTY2YTcuNTUxNzIsNy41NTE3MiwwLDAsMCwxNC43NDQwNiwzLjI2NjZsMjkuMzk3My0xMjMuNDU4NzRhMzkuOTk0MTQsMzkuOTk0MTQsMCwxLDEsNzcuODEyMDgsMTguNTMxMjFaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzSGVscGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODggMTkySDMzNnY1NmMwIDM5LjctMzIuMyA3Mi03MiA3MnMtNzItMzIuMy03Mi03MlYxMjYuNGwtNjQuOSAzOUMxMDcuOCAxNzYuOSA5NiAxOTcuOCA5NiAyMjAuMnY0Ny4zbC04MCA0Ni4yQy43IDMyMi41LTQuNiAzNDIuMSA0LjMgMzU3LjRsODAgMTM4LjZjOC44IDE1LjMgMjguNCAyMC41IDQzLjcgMTEuN0wyMzEuNCA0NDhIMzY4YzM1LjMgMCA2NC0yOC43IDY0LTY0aDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi02NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0di00OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHptMTQ3LjctMzcuNEw1NTUuNyAxNkM1NDYuOS43IDUyNy4zLTQuNSA1MTIgNC4zTDQwOC42IDY0SDMwNi40Yy0xMiAwLTIzLjcgMy40LTMzLjkgOS43TDIzOSA5NC42Yy05LjQgNS44LTE1IDE2LjEtMTUgMjcuMVYyNDhjMCAyMi4xIDE3LjkgNDAgNDAgNDBzNDAtMTcuOSA0MC00MHYtODhoMTg0YzMwLjkgMCA1NiAyNS4xIDU2IDU2djI4LjVsODAtNDYuMmMxNS4zLTguOSAyMC41LTI4LjQgMTEuNy00My43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc1dhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LDIyNGE0OCw0OCwwLDEsMC00OC00OEE0OCw0OCwwLDAsMCw0OTYsMjI0Wk0zMTEuNDcsMTc4LjQ1QTU2Ljc3LDU2Ljc3LDAsMCwxLDMyOCwxNzZhNTYsNTYsMCwwLDEsMTksMy40OWwxNS4zNS00OC42MUEyNCwyNCwwLDAsMCwzNDIsOTkuNzRjLTExLjUzLTEuMzUtMjIuMjEsNi40NC0yNS43MSwxNy41MWwtMjAuOSw2Ni4xN1pNOTMuNjUsMzg2LjMzYy44LS4xOSwxLjU0LS41NCwyLjM1LS43MVYzNTkuOTNhMTU2LDE1NiwwLDAsMSwxMDcuMDYtMTQ4bDczLjctMjIuNzZMMzEwLjkyLDgxLjA1YTI0LDI0LDAsMCwwLTIwLjMzLTMxLjExYy0xMS41My0xLjM0LTIyLjIyLDYuNDUtMjUuNzIsMTcuNTJMMjMxLjQyLDE3My44OGE4LDgsMCwwLDEtMTUuMjYtNC44M0wyNTkuNTMsMzEuMjZBMjQsMjQsMCwwLDAsMjM5LjIuMTVDMjI3LjY3LTEuMTksMjE3LDYuNiwyMTMuNDksMTcuNjZMMTY1LjU2LDE2OS4zN2E4LDgsMCwxLDEtMTUuMjYtNC44MmwzOC41Ni0xMjJhMjQsMjQsMCwwLDAtMjAuMzMtMzEuMTFDMTU3LDEwLDE0Ni4zMiwxNy44MywxNDIuODIsMjguOWwtNjAsMTg5Ljg1TDgwLjc2LDE2OC43QTI0LDI0LDAsMCwwLDU2LjksMTQ0LjU1Yy0xMy4yMy0uMDUtMjQuNzIsMTAuNTQtMjQuOSwyMy44NlYyODEuMTRBMTIzLjY5LDEyMy42OSwwLDAsMCw5My42NSwzODYuMzNaTTUxOS4xLDMzNkgzNjBhOCw4LDAsMCwxLDAtMTZINDg4YTI0LDI0LDAsMCwwLDIzLjU0LTI4Ljc2QzUwOS4zNSwyNzkuODQsNDk4LjcxLDI3Miw0ODcuMSwyNzJIMjg4bDQ3LjA5LTE3LjA2YTI0LDI0LDAsMCwwLTE0LjE4LTQ1Ljg4TDIxMy4xOSwyNDIuMzFBMTIzLjg4LDEyMy44OCwwLDAsMCwxMjgsMzYwdjI1LjY1YTc5Ljc4LDc5Ljc4LDAsMCwxLDU4LDEwOC42M0ExMTguOSwxMTguOSwwLDAsMCwyNDgsNTEySDQ1NmEyNCwyNCwwLDAsMCwyMy41NC0yOC43NkM0NzcuMzUsNDcxLjg0LDQ2Ni43MSw0NjQsNDU1LjEsNDY0SDM2MGE4LDgsMCwwLDEsMC0xNkg0ODhhMjQsMjQsMCwwLDAsMjMuNTQtMjguNzZDNTA5LjM1LDQwNy44NCw0OTguNzEsNDAwLDQ4Ny4xLDQwMEgzNjBhOCw4LDAsMCwxLDAtMTZINTIwYTI0LDI0LDAsMCwwLDIzLjU0LTI4Ljc2QzU0MS4zNSwzNDMuODQsNTMwLjcxLDMzNiw1MTkuMSwzMzZaTTQxNiw2NGEzMiwzMiwwLDEsMC0zMi0zMkEzMiwzMiwwLDAsMCw0MTYsNjRaTTExMiw0MTZhNDgsNDgsMCwxLDAsNDgsNDhBNDgsNDgsMCwwLDAsMTEyLDQxNlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGFuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA0LjggMjMwLjRjLTEwLjYtMTQuMS0zMC43LTE3LTQ0LjgtNi40LTE0LjEgMTAuNi0xNyAzMC43LTYuNCA0NC44bDM4LjEgNTAuOGM0LjggNi40IDQuMSAxNS4zLTEuNSAyMC45bC0xMi44IDEyLjhjLTYuNyA2LjctMTcuNiA2LjItMjMuNi0xLjFMNjQgMjQ0LjRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJTMCA3OC4zIDAgOTZ2MjE4LjRjMCAxMC45IDMuNyAyMS41IDEwLjUgMzBsMTA0LjEgMTM0LjNjNSA2LjUgOC40IDEzLjkgMTAuNCAyMS43IDEuOCA2LjkgOC4xIDExLjYgMTUuMyAxMS42SDI3MmM4LjggMCAxNi03LjIgMTYtMTZWMzg0YzAtMjcuNy05LTU0LjYtMjUuNi03Ni44bC01Ny42LTc2Ljh6TTYwOCA2NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTQ4LjRsLTg5LjggMTA3LjhjLTYgNy4yLTE3IDcuNy0yMy42IDEuMWwtMTIuOC0xMi44Yy01LjYtNS42LTYuMy0xNC41LTEuNS0yMC45bDM4LjEtNTAuOGMxMC42LTE0LjEgNy43LTM0LjItNi40LTQ0LjgtMTQuMS0xMC42LTM0LjItNy43LTQ0LjggNi40bC01Ny42IDc2LjhDMzYxIDMyOS40IDM1MiAzNTYuMyAzNTIgMzg0djExMmMwIDguOCA3LjIgMTYgMTYgMTZoMTMxLjdjNy4xIDAgMTMuNS00LjcgMTUuMy0xMS42IDItNy44IDUuNC0xNS4yIDEwLjQtMjEuN2wxMDQuMS0xMzQuM2M2LjgtOC41IDEwLjUtMTkuMSAxMC41LTMwVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2VBbHRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTguNTksMTk1LjYsNTA0LjIsMzEzLjhhNjMuNCw2My40LDAsMCwxLDIyLjIxLDM3LjkxSDYyNGExNi4wNSwxNi4wNSwwLDAsMCwxNi0xNlYxNDMuOTFBMTYsMTYsMCwwLDAsNjI0LDEyOEg1MTJMNDU3LjQxLDczLjQxQTMyLDMyLDAsMCwwLDQzNC44LDY0SDM0OC45MWEzMiwzMiwwLDAsMC0yMS42MSw4LjQxbC04OC4xMiw4MC42OC0yNS42OS0xOS44NUwyODkuMDksNjRIMjA1LjNhMzIsMzIsMCwwLDAtMjIuNiw5LjQxbC0yMC4zNCwyMC4zTDQ1LjQ3LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM4LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTksNTMuOTFMNTk0LjU0LDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgybDE5LjY0LTI1LjI3YTE2LDE2LDAsMCwwLTIuODEtMjIuNDVMMzAzLjQsMjAyLjcybDMyLjY5LTI5LjkyLDI3LTI0LjdhMTYsMTYsMCwwLDEsMjEuNjEsMjMuNjFaTTE2LDEyOEExNi4wNSwxNi4wNSwwLDAsMCwwLDE0NFYzMzUuOTFhMTYsMTYsMCwwLDAsMTYsMTZIMTQ2LjNsOTAuNSw4MS44OWE2NCw2NCwwLDAsMCw5MC05LjNsLjItLjIsMTcuOTEsMTUuNWEzNy4xNiwzNy4xNiwwLDAsMCw1Mi4yOS01LjM5bDguOC0xMC44MkwyMy41NiwxMjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbmRzaGFrZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAsMTI4LjIxVjM4NEg2NGEzMiwzMiwwLDAsMCwzMi0zMlYxODRMMjMuODMsMTI4LjIxWk00OCwzMjAuMWExNiwxNiwwLDEsMS0xNiwxNkExNiwxNiwwLDAsMSw0OCwzMjAuMVptODAsMzEuODFoMTguM2w5MC41LDgxLjg5YTY0LDY0LDAsMCwwLDkwLTkuM2wuMi0uMiwxNy45MSwxNS41YTM3LjE2LDM3LjE2LDAsMCwwLDUyLjI5LTUuMzlsOC44LTEwLjgyTDEyOCwyMDguNzJabTQxNi0yMjMuN1YzNTIuMWEzMiwzMiwwLDAsMCwzMiwzMmg2NFYxMjguMjFaTTU5MiwzNTIuMWExNiwxNiwwLDEsMSwxNi0xNkExNiwxNiwwLDAsMSw1OTIsMzUyLjFaTTMwMy4zMywyMDIuNjdsNTkuNTgtNTQuNTdhMTYsMTYsMCwwLDEsMjEuNTksMjMuNjFMMzU4LjQxLDE5NS42LDUwNCwzMTMuOGE3My4wOCw3My4wOCwwLDAsMSw3LjkxLDcuN1YxMjhMNDU3LjMsNzMuNDFBMzEuNzYsMzEuNzYsMCwwLDAsNDM0LjcsNjRIMzQ4LjhhMzEuOTMsMzEuOTMsMCwwLDAtMjEuNiw4LjQxbC04OC4wNyw4MC42NC0yNS42NC0xOS44MUwyODkuMDksNjRIMjA1LjNhMzIsMzIsMCwwLDAtMjIuNiw5LjQxTDE2Mi4zNiw5My43Miw0NS40NywzLjM4QTE2LDE2LDAsMCwwLDIzLDYuMTlMMy4zOCwzMS40NkExNiwxNiwwLDAsMCw2LjE5LDUzLjkxTDU5NC41Myw1MDguNjNBMTYsMTYsMCwwLDAsNjE3LDUwNS44MmwxOS42NS0yNS4yN2ExNiwxNiwwLDAsMC0yLjgyLTIyLjQ1WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYW5kc2hha2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDM0LjcgNjRoLTg1LjljLTggMC0xNS43IDMtMjEuNiA4LjRsLTk4LjMgOTBjLS4xLjEtLjIuMy0uMy40LTE2LjYgMTUuNi0xNi4zIDQwLjUtMi4xIDU2IDEyLjcgMTMuOSAzOS40IDE3LjYgNTYuMSAyLjcuMS0uMS4zLS4xLjQtLjJsNzkuOS03My4yYzYuNS01LjkgMTYuNy01LjUgMjIuNiAxIDYgNi41IDUuNSAxNi42LTEgMjIuNmwtMjYuMSAyMy45TDUwNCAzMTMuOGMyLjkgMi40IDUuNSA1IDcuOSA3LjdWMTI4bC01NC42LTU0LjZjLTUuOS02LTE0LjEtOS40LTIyLjYtOS40ek01NDQgMTI4LjJ2MjIzLjljMCAxNy43IDE0LjMgMzIgMzIgMzJoNjRWMTI4LjJoLTk2em00OCAyMjMuOWMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2ek0wIDM4NGg2NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxMjguMkgwVjM4NHptNDgtNjMuOWM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNi0xNi03LjItMTYtMTZjMC04LjkgNy4yLTE2IDE2LTE2em00MzUuOSAxOC42TDMzNC42IDIxNy41bC0zMCAyNy41Yy0yOS43IDI3LjEtNzUuMiAyNC41LTEwMS43LTQuNC0yNi45LTI5LjQtMjQuOC03NC45IDQuNC0xMDEuN0wyODkuMSA2NGgtODMuOGMtOC41IDAtMTYuNiAzLjQtMjIuNiA5LjRMMTI4IDEyOHYyMjMuOWgxOC4zbDkwLjUgODEuOWMyNy40IDIyLjMgNjcuNyAxOC4xIDkwLTkuM2wuMi0uMiAxNy45IDE1LjVjMTUuOSAxMyAzOS40IDEwLjUgNTIuMy01LjRsMzEuNC0zOC42IDUuNCA0LjRjMTMuNyAxMS4xIDMzLjkgOS4xIDQ1LTQuN2w5LjUtMTEuN2MxMS4yLTEzLjggOS4xLTMzLjktNC42LTQ1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhbnVraWFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAxNjBjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em0tNjQgMGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTIyNCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptNjQgMGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTg4IDhjMC00LjQyLTMuNTgtOC04LThoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4em0tNDQwLThjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em01MjAgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDM1MlYxMjhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxOTJIOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJWMTc2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxMTJjMCA1My4wMiA0Mi45OCA5NiA5NiA5NmgxOTJ2NjRIMTEyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2SDM1MnYtNjRoMTkyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWMTc2YzAtOC44NC03LjE2LTE2LTE2LTE2em0tMTYtMzJjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M2MDggNDggNjA4IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M1OTQuNzUgMTI4IDYwOCAxMjh6bS01NzYgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzMyIDQ4IDMyIDQ4IDggODYuNjEgOCAxMDEuMzMgMTguNzUgMTI4IDMyIDEyOHptMjg4LTQ4YzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMzIwIDAgMzIwIDBzLTI0IDM4LjYxLTI0IDUzLjMzUzMwNi43NSA4MCAzMjAgODB6bS0yMDggNDhjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1MxMTIgNDggMTEyIDQ4cy0yNCAzOC42MS0yNCA1My4zM1M5OC43NSAxMjggMTEyIDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzE3NiA0OCAxNzYgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzE2Mi43NSAxMjggMTc2IDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzI0MCA0OCAyNDAgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzIyNi43NSAxMjggMjQwIDEyOHptMTYwIDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M0MDAgNDggNDAwIDQ4cy0yNCAzOC42MS0yNCA1My4zM1MzODYuNzUgMTI4IDQwMCAxMjh6bTY0IDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M0NjQgNDggNDY0IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M0NTAuNzUgMTI4IDQ2NCAxMjh6bTY0IDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M1MjggNDggNTI4IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M1MTQuNzUgMTI4IDUyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhcmRIYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDI4OGMwLTgwLjI1LTQ5LjI4LTE0OC45Mi0xMTkuMTktMTc3LjYyTDMyMCAxOTJWODBhMTYgMTYgMCAwIDAtMTYtMTZoLTk2YTE2IDE2IDAgMCAwLTE2IDE2djExMmwtNDAuODEtODEuNjJDODEuMjggMTM5LjA4IDMyIDIwNy43NSAzMiAyODh2NjRoNDQ4em0xNiA5NkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0ODBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXNodGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC42NjcgMTgyLjEwOWw3LjE0My00MGMxLjMxMy03LjM1NS00LjM0Mi0xNC4xMDktMTEuODEzLTE0LjEwOWgtNzQuODFsMTQuNjIzLTgxLjg5MUMzNzcuMTIzIDM4Ljc1NCAzNzEuNDY4IDMyIDM2My45OTcgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMjk2LjE3NSAxMjhIMTk3LjU0bDE0LjYyMy04MS44OTFDMjEzLjQ3NyAzOC43NTQgMjA3LjgyMiAzMiAyMDAuMzUgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMTMyLjUyOCAxMjhINTMuNDMyYTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDMzMuMTYzIDE4NS4yNDYgMzguODE4IDE5MiA0Ni4yODkgMTkyaDc0LjgxTDk4LjI0MiAzMjBIMTkuMTQ2YTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDLTEuMTIzIDM3Ny4yNDYgNC41MzIgMzg0IDEyLjAwMyAzODRoNzQuODFMNzIuMTkgNDY1Ljg5MUM3MC44NzcgNDczLjI0NiA3Ni41MzIgNDgwIDg0LjAwMyA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwxNTEuODI2IDM4NGg5OC42MzRsLTE0LjYyMyA4MS44OTFDMjM0LjUyMyA0NzMuMjQ2IDI0MC4xNzggNDgwIDI0Ny42NSA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwzMTUuNDcyIDM4NGg3OS4wOTZhMTIgMTIgMCAwIDAgMTEuODEzLTkuODkxbDcuMTQzLTQwYzEuMzEzLTcuMzU1LTQuMzQyLTE0LjEwOS0xMS44MTMtMTQuMTA5aC03NC44MWwyMi44NTctMTI4aDc5LjA5NmExMiAxMiAwIDAgMCAxMS44MTMtOS44OTF6TTI2MS44ODkgMzIwaC05OC42MzRsMjIuODU3LTEyOGg5OC42MzRsLTIyLjg1NyAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdENvd2JveVNpZGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjggMjkxLjA2Yy0yOC42My0yMi45NC02Mi0zNS4wNi05Ni40LTM1LjA2Qzg3IDI1NiAyMS40NyAzMTguNzIgMS40MyA0MTIuMDZjLTMuNTUgMTYuNi0uNDMgMzMuODMgOC41NyA0Ny4zQzE4Ljc1IDQ3Mi40NyAzMS44MyA0ODAgNDUuODggNDgwSDU5MmMtMTAzLjIxIDAtMTU1LTM3LjA3LTIzMy4xOS0xMDQuNDZ6bTIzNC42NS0xOC4yOUw0NjguNCAxMTYuMkE2NCA2NCAwIDAgMCAzOTIgNjQuNDFMMjAwLjg1IDEwNWE2NCA2NCAwIDAgMC01MC4zNSA1NS43OUwxNDMuNjEgMjI2YzYuOS0uODMgMTMuNy0yIDIwLjc5LTIgNDEuNzkgMCA4MiAxNC41NSAxMTcuMjkgNDIuODJsOTggODQuNDhDNDUwLjc2IDQxMi41NCA0OTQuOSA0NDggNTkyIDQ0OGE0OCA0OCAwIDAgMCA0OC00OGMwLTI1LjM5LTI5LjYtMTE5LjMzLTE0NC41NS0xMjcuMjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhhdENvd2JveSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTAgMjk2LjlDNDgwLjUxIDIzOS41MSA0NTAuNTEgNjQgMzkyLjMgNjRjLTE0IDAtMjYuNDkgNS45My0zNyAxNGE1OC4yMSA1OC4yMSAwIDAgMS03MC41OCAwYy0xMC41MS04LTIzLTE0LTM3LTE0LTU4LjIgMC04OC4yIDE3NS40Ny05Ny43MSAyMzIuODhDMTg4LjgxIDMwOS40NyAyNDMuNzMgMzIwIDMyMCAzMjBzMTMxLjIzLTEwLjUxIDE3MC0yMy4xem0xNDIuOS0zNy4xOGExNiAxNiAwIDAgMC0xOS43NSAxLjVjLTEgLjktMTAxLjI3IDkwLjc4LTI5My4xNiA5MC43OC0xOTAuODIgMC0yOTIuMjItODkuOTQtMjkzLjI0LTkwLjg0QTE2IDE2IDAgMCAwIDEgMjc4LjUzQzEuNzMgMjgwLjU1IDc4LjMyIDQ4MCAzMjAgNDgwczMxOC4yNy0xOTkuNDUgMzE5LTIwMS40N2ExNiAxNiAwIDAgMC02LjA5LTE4LjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIYXRXaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDgwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTMwNC02NGwtNjQtMzIgNjQtMzIgMzItNjQgMzIgNjQgNjQgMzItNjQgMzItMTYgMzJoMjA4bC04Ni40MS0yMDEuNjNhNjMuOTU1IDYzLjk1NSAwIDAgMS0xLjg5LTQ1LjQ1TDQxNiAwIDIyOC40MiAxMDcuMTlhMTI3Ljk4OSAxMjcuOTg5IDAgMCAwLTUzLjQ2IDU5LjE1TDY0IDQxNmgxNDRsLTE2LTMyem02NC0yMjRsMTYtMzIgMTYgMzIgMzIgMTYtMzIgMTYtMTYgMzItMTYtMzItMzItMTYgMzItMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhkZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMzA0djk2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTk2YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDgwYzI2LjUxIDAgNDggMjEuNDkgNDggNDh6bS00OC04MGE3OS41NTcgNzkuNTU3IDAgMCAxIDMwLjc3NyA2LjE2NUw0NjIuMjUgODUuMzc0QTQ4LjAwMyA0OC4wMDMgMCAwIDAgNDIyLjMxMSA2NEgxNTMuNjg5YTQ4IDQ4IDAgMCAwLTM5LjkzOCAyMS4zNzRMMTcuMjIzIDIzMC4xNjVBNzkuNTU3IDc5LjU1NyAwIDAgMSA0OCAyMjRoNDgwem0tNDggOTZjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptLTk2IDBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZFNpZGVDb3VnaFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NC4xMSwzMTkuMjFjMTkuNTYtMy44MSwzMS42Mi0yNSwyMy4xMS00NC4yMS0yMS00Ny4xMi00OC41LTE1MS43NS03My4xMi0xODYuNzVBMjA4LjEzLDIwOC4xMywwLDAsMCwyMzQuMSwwSDE5MkExOTAuNjQsMTkwLjY0LDAsMCwwLDg0LjE4LDMzLjNMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDZBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTMsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODJsMTkuNjQtMjUuMjdhMTYsMTYsMCwwLDAtMi44MS0yMi40NVpNMzEzLjM5LDIxMC40NSwyNjMuNjEsMTcyYzUuODgtNy4xNCwxNC40My0xMiwyNC4zNi0xMmEzMi4wNiwzMi4wNiwwLDAsMSwzMiwzMkMzMjAsMTk5LDMxNy4yNCwyMDUuMTcsMzEzLjM5LDIxMC40NVpNNjE2LDMwNGEyNCwyNCwwLDEsMC0yNC0yNEEyNCwyNCwwLDAsMCw2MTYsMzA0Wm0tNjQsNjRhMjQsMjQsMCwxLDAtMjQtMjRBMjQsMjQsMCwwLDAsNTUyLDM2OFpNMjg4LDM4NGEzMiwzMiwwLDAsMSwzMi0zMmgxOS41NEwyMC43MywxMDUuNTlBMTkwLjg2LDE5MC44NiwwLDAsMCwwLDE5MmMwLDU2Ljc1LDI0Ljc1LDEwNy42Miw2NCwxNDIuODhWNTEySDI4OFY0ODBoNjRhNjQsNjQsMCwwLDAsNjQtNjRIMzIwQTMyLDMyLDAsMCwxLDI4OCwzODRabTMyOC0yNGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw2MTYsMzYwWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkU2lkZUNvdWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxNiwzMDRhMjQsMjQsMCwxLDAtMjQtMjRBMjQsMjQsMCwwLDAsNjE2LDMwNFpNNTUyLDQxNmEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw1NTIsNDE2Wm0tNjQtNTZhMjQsMjQsMCwxLDAsMjQsMjRBMjQsMjQsMCwwLDAsNDg4LDM2MFpNNjE2LDQ2NGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw2MTYsNDY0Wm0wLTEwNGEyNCwyNCwwLDEsMCwyNCwyNEEyNCwyNCwwLDAsMCw2MTYsMzYwWm0tNjQtNDBhMjQsMjQsMCwxLDAsMjQsMjRBMjQsMjQsMCwwLDAsNTUyLDMyMFptLTc0Ljc4LTQ1Yy0yMS00Ny4xMi00OC41LTE1MS43NS03My4xMi0xODYuNzVBMjA4LjEzLDIwOC4xMywwLDAsMCwyMzQuMSwwSDE5MkM4NiwwLDAsODYsMCwxOTJjMCw1Ni43NSwyNC43NSwxMDcuNjIsNjQsMTQyLjg4VjUxMkgyODhWNDgwaDY0YTY0LDY0LDAsMCwwLDY0LTY0SDMyMGEzMiwzMiwwLDAsMSwwLTY0aDk2VjMyMGgzMkEzMiwzMiwwLDAsMCw0NzcuMjIsMjc1Wk0yODgsMjI0YTMyLDMyLDAsMSwxLDMyLTMyQTMyLjA3LDMyLjA3LDAsMCwxLDI4OCwyMjRaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlTWFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0uMTUsMTg0LjQyQy0yLjE3LDI0NC4yMSwyMywyOTguMDYsNjQsMzM0Ljg4VjUxMkgyMjRWMzE2LjUxTDMuNjcsMTU2LjI1QTE4Mi4yOCwxODIuMjgsMCwwLDAsLjE1LDE4NC40MlpNNTA5LjIyLDI3NWMtMjEtNDcuMTItNDguNS0xNTEuNzUtNzMuMTItMTg2Ljc1QTIwOC4xMSwyMDguMTEsMCwwLDAsMjY2LjExLDBIMjAwQzExNywwLDQyLjQ4LDUwLjU3LDEzLjI1LDEyMy42NUwyMzkuMjEsMjg4SDUxMS43NkEzMS4zNSwzMS4zNSwwLDAsMCw1MDkuMjIsMjc1Wk0zMjAsMjI0YTMyLDMyLDAsMSwxLDMyLTMyQTMyLjA3LDMyLjA3LDAsMCwxLDMyMCwyMjRabTE2LDE0NEg0OTZsMTYtNDhIMjU2VjUxMkg0MDEuODhhNjQsNjQsMCwwLDAsNjAuNzEtNDMuNzZMNDY0LDQ2NEgzMzZhMTYsMTYsMCwwLDEsMC0zMkg0NzQuNjdsMTAuNjctMzJIMzM2YTE2LDE2LDAsMCwxLDAtMzJaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRTaWRlVmlydXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyLDI0MGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwyNzIsMjQwWm0tNjQtNjRhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMjA4LDE3NlptMzAxLjIsOTljLTIwLjkzLTQ3LjEyLTQ4LjQzLTE1MS43My03My4wNy0xODYuNzVBMjA3LjksMjA3LjksMCwwLDAsMjY2LjA5LDBIMTkyQzg2LDAsMCw4NiwwLDE5MkExOTEuMjMsMTkxLjIzLDAsMCwwLDY0LDMzNC44MVY1MTJIMzIwVjQ0OGg2NGE2NCw2NCwwLDAsMCw2NC02NFYzMjBINDgwQTMyLDMyLDAsMCwwLDUwOS4yLDI3NVpNMzY4LDI0MEgzNTUuODhjLTI4LjUxLDAtNDIuNzksMzQuNDctMjIuNjMsNTQuNjNsOC41OCw4LjU3YTE2LDE2LDAsMSwxLTIyLjYzLDIyLjYzbC04LjU3LTguNThDMjkwLjQ3LDI5Ny4wOSwyNTYsMzExLjM3LDI1NiwzMzkuODhWMzUyYTE2LDE2LDAsMCwxLTMyLDBWMzM5Ljg4YzAtMjguNTEtMzQuNDctNDIuNzktNTQuNjMtMjIuNjNsLTguNTcsOC41OGExNiwxNiwwLDAsMS0yMi42My0yMi42M2w4LjU4LTguNTdjMjAuMTYtMjAuMTYsNS44OC01NC42My0yMi42My01NC42M0gxMTJhMTYsMTYsMCwwLDEsMC0zMmgxMi4xMmMyOC41MSwwLDQyLjc5LTM0LjQ3LDIyLjYzLTU0LjYzbC04LjU4LTguNTdhMTYsMTYsMCwwLDEsMjIuNjMtMjIuNjNsOC41Nyw4LjU4YzIwLjE2LDIwLjE2LDU0LjYzLDUuODgsNTQuNjMtMjIuNjNWOTZhMTYsMTYsMCwwLDEsMzIsMHYxMi4xMmMwLDI4LjUxLDM0LjQ3LDQyLjc5LDU0LjYzLDIyLjYzbDguNTctOC41OGExNiwxNiwwLDAsMSwyMi42MywyMi42M2wtOC41OCw4LjU3QzMxMy4wOSwxNzMuNTMsMzI3LjM3LDIwOCwzNTUuODgsMjA4SDM2OGExNiwxNiwwLDAsMSwwLDMyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA5NnYzMjBoMzJhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZIMzIwYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMlYyODhIMTYwdjEyOGgzMmExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNkgzMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJWOTZIMzJhMTYgMTYgMCAwIDEtMTYtMTZWNDhhMTYgMTYgMCAwIDEgMTYtMTZoMTYwYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMnYxMjhoMTkyVjk2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlY0OGExNiAxNiAwIDAgMSAxNi0xNmgxNjBhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhlYWRwaG9uZXNBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDI4OGgtMTZjLTM1LjM1IDAtNjQgMjguNy02NCA2NC4xMnY2My43NmMwIDM1LjQxIDI4LjY1IDY0LjEyIDY0IDY0LjEyaDE2YzE3LjY3IDAgMzItMTQuMzYgMzItMzIuMDZWMzIwLjA2YzAtMTcuNzEtMTQuMzMtMzIuMDYtMzItMzIuMDZ6bTIwOCAwaC0xNmMtMTcuNjcgMC0zMiAxNC4zNS0zMiAzMi4wNnYxMjcuODhjMCAxNy43IDE0LjMzIDMyLjA2IDMyIDMyLjA2aDE2YzM1LjM1IDAgNjQtMjguNzEgNjQtNjQuMTJ2LTYzLjc2YzAtMzUuNDEtMjguNjUtNjQuMTItNjQtNjQuMTJ6TTI1NiAzMkMxMTIuOTEgMzIgNC41NyAxNTEuMTMgMCAyODh2MTEyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2VjI4OGMwLTExNC42NyA5My4zMy0yMDcuOCAyMDgtMjA3LjgyIDExNC42Ny4wMiAyMDggOTMuMTUgMjA4IDIwNy44MnYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4QzUwNy40MyAxNTEuMTMgMzk5LjA5IDMyIDI1NiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhZHBob25lcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMzJDMTE0LjUyIDMyIDAgMTQ2LjQ5NiAwIDI4OHY0OGEzMiAzMiAwIDAgMCAxNy42ODkgMjguNjIybDE0LjM4MyA3LjE5MUMzNC4wODMgNDMxLjkwMyA4My40MjEgNDgwIDE0NCA0ODBoMjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI4MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTI0Yy0zMS4zNDIgMC01OS42NzEgMTIuODc5LTgwIDMzLjYyN1YyODhjMC0xMDUuODY5IDg2LjEzMS0xOTIgMTkyLTE5MnMxOTIgODYuMTMxIDE5MiAxOTJ2MS42MjdDNDI3LjY3MSAyNjguODc5IDM5OS4zNDIgMjU2IDM2OCAyNTZoLTI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTc2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNGM2MC41NzkgMCAxMDkuOTE3LTQ4LjA5OCAxMTEuOTI4LTEwOC4xODdsMTQuMzgyLTcuMTkxQTMyIDMyIDAgMCAwIDUxMiAzMzZ2LTQ4YzAtMTQxLjQ3OS0xMTQuNDk2LTI1Ni0yNTYtMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWFkc2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE5MiAyMDhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMTZjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2NDhjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgxNmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjIwOHptMTc2IDE0NGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0di00OGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0aC0xNmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMTJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxNnpNMjU2IDBDMTEzLjE4IDAgNC41OCAxMTguODMgMCAyNTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtMTE0LjY5IDkzLjMxLTIwOCAyMDgtMjA4czIwOCA5My4zMSAyMDggMjA4aC0uMTJjLjA4IDIuNDMuMTIgMTY1LjcyLjEyIDE2NS43MiAwIDIzLjM1LTE4LjkzIDQyLjI4LTQyLjI4IDQyLjI4SDMyMGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC0zMmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OGgxODEuNzJjNDkuODYgMCA5MC4yOC00MC40MiA5MC4yOC05MC4yOFYyNTZDNTA3LjQyIDExOC44MyAzOTguODIgMCAyNTYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRCcm9rZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDczLjcgNzMuOGwtMi40LTIuNWMtNDYtNDctMTE4LTUxLjctMTY5LjYtMTQuOEwzMzYgMTU5LjlsLTk2IDY0IDQ4IDEyOC0xNDQtMTQ0IDk2LTY0LTI4LjYtODYuNUMxNTkuNyAxOS42IDg3IDI0IDQwLjcgNzEuNGwtMi40IDIuNEMtMTAuNCAxMjMuNi0xMi41IDIwMi45IDMxIDI1NmwyMTIuMSAyMTguNmM3LjEgNy4zIDE4LjYgNy4zIDI1LjcgMEw0ODEgMjU1LjljNDMuNS01MyA0MS40LTEzMi4zLTcuMy0xODIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDYyLjMgNjIuNkM0MDcuNSAxNS45IDMyNiAyNC4zIDI3NS43IDc2LjJMMjU2IDk2LjVsLTE5LjctMjAuM0MxODYuMSAyNC4zIDEwNC41IDE1LjkgNDkuNyA2Mi42Yy02Mi44IDUzLjYtNjYuMSAxNDkuOC05LjkgMjA3LjlsMTkzLjUgMTk5LjhjMTIuNSAxMi45IDMyLjggMTIuOSA0NS4zIDBsMTkzLjUtMTk5LjhjNTYuMy01OC4xIDUzLTE1NC4zLTkuOC0yMDcuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGVhcnRiZWF0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC4yIDI0My44bC00OS43IDk5LjRjLTYgMTIuMS0yMy40IDExLjctMjguOS0uNmwtNTYuOS0xMjYuMy0zMCA3MS43SDYwLjZsMTgyLjUgMTg2LjVjNy4xIDcuMyAxOC42IDcuMyAyNS43IDBMNDUxLjQgMjg4SDM0Mi4zbC0yMi4xLTQ0LjJ6TTQ3My43IDczLjlsLTIuNC0yLjVjLTUxLjUtNTIuNi0xMzUuOC01Mi42LTE4Ny40IDBMMjU2IDEwMGwtMjcuOS0yOC41Yy01MS41LTUyLjctMTM1LjktNTIuNy0xODcuNCAwbC0yLjQgMi40Qy0xMC40IDEyMy43LTEyLjUgMjAzIDMxIDI1NmgxMDIuNGwzNS45LTg2LjJjNS40LTEyLjkgMjMuNi0xMy4yIDI5LjQtLjRsNTguMiAxMjkuMyA0OS05Ny45YzUuOS0xMS44IDIyLjctMTEuOCAyOC42IDBsMjcuNiA1NS4ySDQ4MWM0My41LTUzIDQxLjQtMTMyLjMtNy4zLTE4Mi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIZWxpY29wdGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAzODRoMjcyYzE3LjY3IDAgMzItMTQuMzMgMzItMzIgMC0xMjMuNzEtMTAwLjI5LTIyNC0yMjQtMjI0VjY0aDE3NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNDRjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE3NnY2NEgxMTJMNjguOCA3MC40QzY1Ljc4IDY2LjM3IDYxLjAzIDY0IDU2IDY0SDE2LjAxQzUuNiA2NC0yLjA0IDczLjc4LjQ5IDgzLjg4TDMyIDE5MmwxNjAgNjQgODYuNCAxMTUuMkEzMS45OTIgMzEuOTkyIDAgMCAwIDMwNCAzODR6bTExMi0xODguNDlDNDc4LjU1IDIwOC4zIDUyOC4wMyAyNTcuNDQgNTQwLjc5IDMyMEg0MTZWMTk1LjUxem0yMTkuMzcgMjYzLjNsLTIyLjE1LTIyLjJjLTYuMjUtNi4yNi0xNi4yNC02LjEtMjIuNjQuMDEtNy4wOSA2Ljc3LTEzLjg0IDExLjI1LTI0LjY0IDExLjI1SDI0MGMtOC44NCAwLTE2IDcuMTgtMTYgMTYuMDN2MzIuMDZjMCA4Ljg1IDcuMTYgMTYuMDMgMTYgMTYuMDNoMzI1Ljk0YzE0Ljg4IDAgMzUuMy0uNDcgNjguNDUtMjkuNTIgNy4wMi02LjE0IDcuNTctMTcuMDUuOTgtMjMuNjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpZ2hsaWdodGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NDQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDc5Ljk4TDk5LjkyIDUxMmwzNS40NS0zNS40NS02Ny4wNC02Ny4wNEwwIDQ3OS45OHptMTI0LjYxLTI0MC4wMWEzNi41OTIgMzYuNTkyIDAgMCAwLTEwLjc5IDM4LjFsMTMuMDUgNDIuODMtNTAuOTMgNTAuOTQgOTYuMjMgOTYuMjMgNTAuODYtNTAuODYgNDIuNzQgMTMuMDhjMTMuNzMgNC4yIDI4LjY1LS4wMSAzOC4xNS0xMC43OGwzNS41NS00MS42NC0xNzMuMzQtMTczLjM0LTQxLjUyIDM1LjQ0em00MDMuMzEtMTYwLjdsLTYzLjItNjMuMmMtMjAuNDktMjAuNDktNTMuMzgtMjEuNTItNzUuMTItMi4zNUwxOTAuNTUgMTgzLjY4bDE2OS43NyAxNjkuNzhMNTMwLjI3IDE1NC40YzE5LjE4LTIxLjc0IDE4LjE1LTU0LjYzLTIuMzUtNzUuMTN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpa2luZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04MC45NSA0NzIuMjNjLTQuMjggMTcuMTYgNi4xNCAzNC41MyAyMy4yOCAzOC44MSAyLjYxLjY2IDUuMjIuOTUgNy44Ljk1IDE0LjMzIDAgMjcuMzctOS43IDMxLjAyLTI0LjIzbDI1LjI0LTEwMC45Ny01Mi43OC01Mi43OC0zNC41NiAxMzguMjJ6bTE0Ljg5LTE5Ni4xMkwxMzcgMTE3YzIuMTktOC40Mi0zLjE0LTE2Ljk1LTExLjkyLTE5LjA2LTQzLjg4LTEwLjUyLTg4LjM1IDE1LjA3LTk5LjMyIDU3LjE3TC40OSAyNTMuMjRjLTIuMTkgOC40MiAzLjE0IDE2Ljk1IDExLjkyIDE5LjA2bDYzLjU2IDE1LjI1YzguNzkgMi4xIDE3LjY4LTMuMDIgMTkuODctMTEuNDR6TTM2OCAxNjBoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmgtMzQuNzVsLTQ2Ljc4LTQ2Ljc4QzI0My4zOCAxMzQuMTEgMjI4LjYxIDEyOCAyMTIuOTEgMTI4Yy0yNy4wMiAwLTUwLjQ3IDE4LjMtNTcuMDMgNDQuNTJsLTI2LjkyIDEwNy43MmEzMi4wMTIgMzIuMDEyIDAgMCAwIDguNDIgMzAuMzlMMjI0IDM5Ny4yNVY0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnMzMi0xNC4zMyAzMi0zMnYtODIuNzVjMC0xNy4wOS02LjY2LTMzLjE2LTE4Ljc1LTQ1LjI1bC00Ni44Mi00Ni44MmMuMTUtLjUuNDktLjg5LjYyLTEuNDFsMTkuODktNzkuNTcgMjIuNDMgMjIuNDNjNiA2IDE0LjE0IDkuMzggMjIuNjIgOS4zOGg0OHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTc2Yy4wMS04Ljg0LTcuMTUtMTYtMTUuOTktMTZ6TTI0MCA5NmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4UzI2Ni41MSAwIDI0MCAwcy00OCAyMS40OS00OCA0OCAyMS40OSA0OCA0OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSGlwcG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTgxLjEyIDk2LjJjLTI3LjY3LS4xNS01Mi41IDE3LjU4LTc2LjYgMjYuNjJDNDg5Ljk4IDg4LjI3IDQ1NS44MyA2NCA0MTYgNjRjLTExLjI4IDAtMjEuOTUgMi4zLTMyIDUuODhWNTZjMC0xMy4yNi0xMC43NS0yNC0yNC0yNGgtMTZjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2NDguOThDMjg2LjAxIDc5LjU4IDI0MS4yNCA2NCAxOTIgNjQgODUuOTYgNjQgMCAxMzUuNjQgMCAyMjR2MjQwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDY0YzguODQgMCAxNi03LjE2IDE2LTE2di03MC43OUMxMjguMzUgNDA3LjU3IDE2Ni43MiA0MTYgMjA4IDQxNnM3OS42NS04LjQzIDExMi0yMi43OVY0NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4aDEyOHYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTIuMDJjMC0zNC4wOS0yNC43OS02Ny41OS01OC44OC02Ny43OHpNNDQ4IDE3NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhpc3RvcnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0IDI1NS41MzFjLjI1MyAxMzYuNjQtMTExLjE4IDI0OC4zNzItMjQ3LjgyIDI0OC40NjgtNTkuMDE1LjA0Mi0xMTMuMjIzLTIwLjUzLTE1NS44MjItNTQuOTExLTExLjA3Ny04Ljk0LTExLjkwNS0yNS41NDEtMS44MzktMzUuNjA3bDExLjI2Ny0xMS4yNjdjOC42MDktOC42MDkgMjIuMzUzLTkuNTUxIDMxLjg5MS0xLjk4NEMxNzMuMDYyIDQyNS4xMzUgMjEyLjc4MSA0NDAgMjU2IDQ0MGMxMDEuNzA1IDAgMTg0LTgyLjMxMSAxODQtMTg0IDAtMTAxLjcwNS04Mi4zMTEtMTg0LTE4NC0xODQtNDguODE0IDAtOTMuMTQ5IDE4Ljk2OS0xMjYuMDY4IDQ5LjkzMmw1MC43NTQgNTAuNzU0YzEwLjA4IDEwLjA4IDIuOTQxIDI3LjMxNC0xMS4zMTMgMjcuMzE0SDI0Yy04LjgzNyAwLTE2LTcuMTYzLTE2LTE2VjM4LjYyN2MwLTE0LjI1NCAxNy4yMzQtMjEuMzkzIDI3LjMxNC0xMS4zMTRsNDkuMzcyIDQ5LjM3MkMxMjkuMjA5IDM0LjEzNiAxODkuNTUyIDggMjU2IDhjMTM2LjgxIDAgMjQ3Ljc0NyAxMTAuNzggMjQ4IDI0Ny41MzF6bS0xODAuOTEyIDc4Ljc4NGw5LjgyMy0xMi42M2M4LjEzOC0xMC40NjMgNi4yNTMtMjUuNTQyLTQuMjEtMzMuNjc5TDI4OCAyNTYuMzQ5VjE1MmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTE2Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTM1LjY1MWw2NS40MDkgNTAuODc0YzEwLjQ2MyA4LjEzNyAyNS41NDEgNi4yNTMgMzMuNjc5LTQuMjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvY2tleVB1Y2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAxNjBjMC01MyAxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZTMCAyMTMgMCAxNjB6bTAgODIuMlYzNTJjMCA1MyAxMTQuNiA5NiAyNTYgOTZzMjU2LTQzIDI1Ni05NlYyNDIuMmMtMTEzLjQgODIuMy0zOTguNSA4Mi40LTUxMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb2xseUJlcnJ5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxOTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0xMTItNDhjMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4LTQ4IDIxLjUtNDggNDh6bS0zMi00OGMyNi41IDAgNDgtMjEuNSA0OC00OFMyNTAuNSAwIDIyNCAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bS0xNi4yIDEzOS4xYy4xLTEyLjQtMTMuMS0yMC4xLTIzLjgtMTMuNy0zNC4zIDIwLjMtNzEuNCAzMi43LTEwOC43IDM2LjItOS43LjktMTUuNiAxMS4zLTExLjYgMjAuMiA2LjIgMTMuOSAxMS4xIDI4LjYgMTQuNyA0My44IDMuNiAxNS4yLTUuMyAzMC42LTIwLjIgMzUuMS0xNC45IDQuNS0zMC4xIDcuNi00NS4zIDkuMS05LjcgMS0xNS43IDExLjMtMTEuNyAyMC4yIDE1IDMyLjggMjIuOSA2OS41IDIzIDEwNy43LjEgMTQuNCAxNS4yIDIzLjEgMjcuNiAxNiAzMy4yLTE5IDY4LjktMzAuNSAxMDQuOC0zMy45IDkuNy0uOSAxNS42LTExLjMgMTEuNi0yMC4yLTYuMi0xMy45LTExLjEtMjguNi0xNC43LTQzLjgtMy42LTE1LjIgNS4zLTMwLjYgMjAuMi0zNS4xIDE0LjktNC41IDMwLjEtNy42IDQ1LjMtOS4xIDkuNy0xIDE1LjctMTEuMyAxMS43LTIwLjItMTUuNS0zNC4yLTIzLjMtNzIuNS0yMi45LTExMi4zek00MzUgMzY1LjZjLTE1LjItMS42LTMwLjMtNC43LTQ1LjMtOS4xLTE0LjktNC41LTIzLjgtMTkuOS0yMC4yLTM1LjEgMy42LTE1LjIgOC41LTI5LjggMTQuNy00My44IDQtOC45LTEuOS0xOS4zLTExLjYtMjAuMi0zNy4zLTMuNS03NC40LTE1LjktMTA4LjctMzYuMi0xMC43LTYuMy0yMy45IDEuNC0yMy44IDEzLjcgMCAxLjYtLjIgMy4yLS4yIDQuOS4yIDMzLjMgNyA2NS43IDE5LjkgOTQgNS43IDEyLjQgNS4yIDI2LjYtLjYgMzguOSA0LjkgMS4yIDkuOSAyLjIgMTQuOCAzLjcgMTQuOSA0LjUgMjMuOCAxOS45IDIwLjIgMzUuMS0zLjYgMTUuMi04LjUgMjkuOC0xNC43IDQzLjgtNCA4LjkgMS45IDE5LjMgMTEuNiAyMC4yIDM1LjkgMy40IDcxLjYgMTQuOSAxMDQuOCAzMy45IDEyLjUgNy4xIDI3LjYtMS42IDI3LjYtMTYgLjItMzguMiA4LTc1IDIzLTEwNy43IDQuMy04LjctMS44LTE5LjEtMTEuNS0yMC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb21lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4MC4zNyAxNDguMjZMOTYgMzAwLjExVjQ2NGExNiAxNiAwIDAgMCAxNiAxNmwxMTIuMDYtLjI5YTE2IDE2IDAgMCAwIDE1LjkyLTE2VjM2OGExNiAxNiAwIDAgMSAxNi0xNmg2NGExNiAxNiAwIDAgMSAxNiAxNnY5NS42NGExNiAxNiAwIDAgMCAxNiAxNi4wNUw0NjQgNDgwYTE2IDE2IDAgMCAwIDE2LTE2VjMwMEwyOTUuNjcgMTQ4LjI2YTEyLjE5IDEyLjE5IDAgMCAwLTE1LjMgMHpNNTcxLjYgMjUxLjQ3TDQ4OCAxODIuNTZWNDQuMDVhMTIgMTIgMCAwIDAtMTItMTJoLTU2YTEyIDEyIDAgMCAwLTEyIDEydjcyLjYxTDMxOC40NyA0M2E0OCA0OCAwIDAgMC02MSAwTDQuMzQgMjUxLjQ3YTEyIDEyIDAgMCAwLTEuNiAxNi45bDI1LjUgMzFBMTIgMTIgMCAwIDAgNDUuMTUgMzAxbDIzNS4yMi0xOTMuNzRhMTIuMTkgMTIuMTkgMCAwIDEgMTUuMyAwTDUzMC45IDMwMWExMiAxMiAwIDAgMCAxNi45LTEuNmwyNS41LTMxYTEyIDEyIDAgMCAwLTEuNy0xNi45M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9yc2VIZWFkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwOS44IDMzMi41bC02OS45LTE2NC4zYy0xNC45LTQxLjItNTAuNC03MS05My03OS4yIDE4LTEwLjYgNDYuMy0zNS45IDM0LjItODIuMy0xLjMtNS03LjEtNy45LTEyLTYuMUwxNjYuOSA3Ni4zQzM1LjkgMTIzLjQgMCAyMzguOSAwIDM5OC44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMzYuMmMyMy44IDAgMzkuMy0yNSAyOC42LTQ2LjNMMjU2IDM4NHYtLjdjLTQ1LjYtMy41LTg0LjYtMzAuNy0xMDQuMy02OS42LTEuNi0zLjEtLjktNi45IDEuNi05LjNsMTIuMS0xMi4xYzMuOS0zLjkgMTAuNi0yLjcgMTIuOSAyLjQgMTQuOCAzMy43IDQ4LjIgNTcuNCA4Ny40IDU3LjQgMTcuMiAwIDMzLTUuMSA0Ni44LTEzLjJsNDYgNjMuOWM2IDguNCAxNS43IDEzLjMgMjYgMTMuM2g1MC4zYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDQ1LjMtMzkuOGM4LjktOS4xIDExLjctMjIuNiA3LjEtMzQuNHpNMzI4IDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvcnNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NS45MiA3Ni42Yy0uMDEtOC4xMy0zLjAyLTE1Ljg3LTguNTgtMjEuOC0zLjc4LTQuMDMtOC41OC05LjEyLTEzLjY5LTE0LjUgMTEuMDYtNi44NCAxOS41LTE3LjQ5IDIyLjE4LTMwLjY2QzU3Ni44NSA0LjY4IDU3Mi45NiAwIDU2Ny45IDBINDQ3LjkyYy03MC42OSAwLTEyOCA1Ny4zMS0xMjggMTI4SDE2MGMtMjguODQgMC01NC40IDEyLjk4LTcyIDMzLjExVjE2MGMtNDguNTMgMC04OCAzOS40Ny04OCA4OHY1NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNTZjMC0xMy4yMiA2Ljg3LTI0LjM5IDE2Ljc4LTMxLjY4LS4yMSAyLjU4LS43OCA1LjA1LS43OCA3LjY4IDAgMjcuNjQgMTEuODQgNTIuMzYgMzAuNTQgNjkuODhsLTI1LjcyIDY4LjZhNjMuOTQ1IDYzLjk0NSAwIDAgMC0yLjE2IDM3Ljk5bDI0Ljg1IDk5LjQxQTE1Ljk4MiAxNS45ODIgMCAwIDAgMTA3LjAyIDUxMmg2NS45NmMxMC40MSAwIDE4LjA1LTkuNzggMTUuNTItMTkuODhsLTI2LjMxLTEwNS4yNiAyMy44NC02My41OUwzMjAgMzQ1LjZWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDY0YzguODQgMCAxNi03LjE2IDE2LTE2VjMxOC4yMmMxOS43NC0yMC4xOSAzMi00Ny43NSAzMi03OC4yMiAwLS4yMi0uMDctLjQyLS4wOC0uNjRWMTM2Ljg5bDE2IDcuMTEgMTguOSAzNy43YzcuNDUgMTQuODcgMjUuMDUgMjEuNTUgNDAuNDkgMTUuMzdsMzIuNTUtMTMuMDJhMzEuOTk3IDMxLjk5NyAwIDAgMCAyMC4xMi0yOS43NGwtLjA2LTc3Ljcxem0tNjQgMTkuNGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvc3BpdGFsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCA5Nkg0MTZWMzJjMC0xNy43LTE0LjMtMzItMzItMzJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzY4YzAgOC44IDcuMiAxNiAxNiAxNmg1NDRjOC44IDAgMTYtNy4yIDE2LTE2VjEyOGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMTYwIDQzNmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtMTI4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMTYwIDEyOGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6bTAtMTI4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMTYtMTcwYzAgMy4zLTIuNyA2LTYgNmgtMjZ2MjZjMCAzLjMtMi43IDYtNiA2aC0yMGMtMy4zIDAtNi0yLjctNi02di0yNmgtMjZjLTMuMyAwLTYtMi43LTYtNnYtMjBjMC0zLjMgMi43LTYgNi02aDI2Vjg2YzAtMy4zIDIuNy02IDYtNmgyMGMzLjMgMCA2IDIuNyA2IDZ2MjZoMjZjMy4zIDAgNiAyLjcgNiA2djIwem0xNDQgMjk4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC0xMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbFN5bWJvbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMEMxMTQuNiAwIDAgMTE0LjYgMCAyNTZzMTE0LjYgMjU2IDI1NiAyNTYgMjU2LTExNC42IDI1Ni0yNTZTMzk3LjQgMCAyNTYgMHptMTEyIDM3NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTg4aC05NnY4OGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMTM2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2ODhoOTZ2LTg4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjQwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3NwaXRhbFVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDMyMGE5NiA5NiAwIDEgMC05Ni05NiA5NiA5NiAwIDAgMCA5NiA5NnptNDggMzJhMjIuODggMjIuODggMCAwIDAtNy4wNiAxLjA5IDEyNC43NiAxMjQuNzYgMCAwIDEtODEuODkgMEEyMi44MiAyMi44MiAwIDAgMCA0MzIgMzUyYTExMiAxMTIgMCAwIDAtMTEyIDExMi42MmMuMTQgMjYuMjYgMjEuNzMgNDcuMzggNDggNDcuMzhoMjI0YzI2LjI3IDAgNDcuODYtMjEuMTIgNDgtNDcuMzhBMTEyIDExMiAwIDAgMCA1MjggMzUyem0tMTk4LjA5IDEwLjQ1QTE0NS4xOSAxNDUuMTkgMCAwIDEgMzUyIDM0NC42MlYxMjhhMzIgMzIgMCAwIDAtMzItMzJoLTMyVjMyYTMyIDMyIDAgMCAwLTMyLTMySDk2YTMyIDMyIDAgMCAwLTMyIDMydjY0SDMyYTMyIDMyIDAgMCAwLTMyIDMydjM2OGExNiAxNiAwIDAgMCAxNiAxNmgyODguMzFBNzguNjIgNzguNjIgMCAwIDEgMjg4IDQ2NC43OWExNDMuMDYgMTQzLjA2IDAgMCAxIDQxLjkxLTEwMi4zNHpNMTQ0IDQwNGExMiAxMiAwIDAgMS0xMiAxMkg5MmExMiAxMiAwIDAgMS0xMi0xMnYtNDBhMTIgMTIgMCAwIDEgMTItMTJoNDBhMTIgMTIgMCAwIDEgMTIgMTJ6bTAtMTI4YTEyIDEyIDAgMCAxLTEyIDEySDkyYTEyIDEyIDAgMCAxLTEyLTEydi00MGExMiAxMiAwIDAgMSAxMi0xMmg0MGExMiAxMiAwIDAgMSAxMiAxMnptNDgtMTIyYTYgNiAwIDAgMS02IDZoLTIwYTYgNiAwIDAgMS02LTZ2LTI2aC0yNmE2IDYgMCAwIDEtNi02di0yMGE2IDYgMCAwIDEgNi02aDI2VjcwYTYgNiAwIDAgMSA2LTZoMjBhNiA2IDAgMCAxIDYgNnYyNmgyNmE2IDYgMCAwIDEgNiA2djIwYTYgNiAwIDAgMS02IDZoLTI2em04MCAyNTBhMTIgMTIgMCAwIDEtMTIgMTJoLTQwYTEyIDEyIDAgMCAxLTEyLTEydi00MGExMiAxMiAwIDAgMSAxMi0xMmg0MGExMiAxMiAwIDAgMSAxMiAxMnptMC0xMjhhMTIgMTIgMCAwIDEtMTIgMTJoLTQwYTEyIDEyIDAgMCAxLTEyLTEydi00MGExMiAxMiAwIDAgMSAxMi0xMmg0MGExMiAxMiAwIDAgMSAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG9zcGl0YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDQ5MnYyMEgwdi0yMGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwVjEyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoODhWMjRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDExMmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NzJoODhjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djM2MGgyMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyek0zMDggMTkyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6bS0xNjggNjRoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptMTA0IDEyOGgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2ODRoNjR2LTg0YzAtNi42MjctNS4zNzMtMTItMTItMTJ6bTY0LTk2aC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6bS0xMTYgMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MHpNMTgyIDk2aDI2djI2YTYgNiAwIDAgMCA2IDZoMjBhNiA2IDAgMCAwIDYtNlY5NmgyNmE2IDYgMCAwIDAgNi02VjcwYTYgNiAwIDAgMC02LTZoLTI2VjM4YTYgNiAwIDAgMC02LTZoLTIwYTYgNiAwIDAgMC02IDZ2MjZoLTI2YTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90VHViIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNC4yMSAxNzcuNjVjMS4wMiA4LjIxIDcuNzUgMTQuMzUgMTUuNzUgMTQuMzVoMTYuMTJjOS41MSAwIDE3LjA4LTguNTcgMTYtMTguMzUtNC4zNC0zOS4xMS0yMi40LTc0LjUzLTUwLjEzLTk3LjE2LTE3LjM3LTE0LjE3LTI4LjgyLTM2Ljc1LTMxLjk4LTYyLjE1QzM3OC45NiA2LjE0IDM3Mi4yMiAwIDM2NC4yMyAwaC0xNi4xMmMtOS41MSAwLTE3LjA5IDguNTctMTYgMTguMzUgNC4zNCAzOS4xMSAyMi40IDc0LjUzIDUwLjEzIDk3LjE2IDE3LjM2IDE0LjE3IDI4LjgyIDM2Ljc1IDMxLjk3IDYyLjE0em0tMTA4IDBjMS4wMiA4LjIxIDcuNzUgMTQuMzUgMTUuNzUgMTQuMzVoMTYuMTJjOS41MSAwIDE3LjA4LTguNTcgMTYtMTguMzUtNC4zNC0zOS4xMS0yMi40LTc0LjUzLTUwLjEzLTk3LjE2LTE3LjM3LTE0LjE3LTI4LjgyLTM2Ljc1LTMxLjk4LTYyLjE1QzI3MC45NiA2LjE0IDI2NC4yMiAwIDI1Ni4yMyAwaC0xNi4xMmMtOS41MSAwLTE3LjA5IDguNTctMTYgMTguMzUgNC4zNCAzOS4xMSAyMi40IDc0LjUzIDUwLjEzIDk3LjE2IDE3LjM2IDE0LjE3IDI4LjgyIDM2Ljc1IDMxLjk3IDYyLjE0ek00ODAgMjU2SDI1NmwtMTEwLjkzLTgzLjJhNjMuOTkgNjMuOTkgMCAwIDAtMzguNC0xMi44SDY0Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djIyNGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM4NGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0VjI4OGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xMjggNDQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnptOTYgMGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04VjMyOGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxMTJ6bTk2IDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyem05NiAwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnpNNjQgMTI4YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRTOTkuMzUgMCA2NCAwIDAgMjguNjUgMCA2NHMyOC42NSA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG90ZG9nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4OC41NiAyMy40NGE4MCA4MCAwIDAgMC0xMTMuMTIgMGwtMzUyIDM1MmE4MCA4MCAwIDEgMCAxMTMuMTIgMTEzLjEybDM1Mi0zNTJhODAgODAgMCAwIDAgMC0xMTMuMTJ6bS00OS45MyA5NS4xOWMtMTkuNiAxOS41OS0zNy41MiAyMi42Ny01MS45MyAyNS4xNEMzNzMuNzYgMTQ2IDM2NC40IDE0Ny42IDM1MiAxNjBzLTE0IDIxLjc2LTE2LjIzIDM0LjcxYy0yLjQ4IDE0LjQtNS41NSAzMi4zMy0yNS4xNSA1MS45MnMtMzcuNTIgMjIuNjctNTEuOTIgMjUuMTVDMjQ1Ljc1IDI3NCAyMzYuNCAyNzUuNiAyMjQgMjg4cy0xNCAyMS43NS0xNi4yMyAzNC43Yy0yLjQ3IDE0LjQtNS41NCAzMi4zMy0yNS4xNCA1MS45MnMtMzcuNTMgMjIuNjgtNTEuOTMgMjUuMTVDMTE3Ljc2IDQwMiAxMDguNCA0MDMuNiA5NiA0MTZhMTYgMTYgMCAwIDEtMjIuNjMtMjIuNjNjMTkuNi0xOS41OSAzNy41Mi0yMi42NyA1MS45Mi0yNS4xNCAxMy0yLjIyIDIyLjMtMy44MiAzNC43MS0xNi4yM3MxNC0yMS43NSAxNi4yMi0zNC43YzIuNDgtMTQuNCA1LjU1LTMyLjMzIDI1LjE1LTUxLjkyczM3LjUyLTIyLjY3IDUxLjkyLTI1LjE0YzEzLTIuMjIgMjIuMy0zLjgzIDM0LjctMTYuMjNzMTQtMjEuNzYgMTYuMjQtMzQuNzFjMi40Ny0xNC40IDUuNTQtMzIuMzMgMjUuMTQtNTEuOTJzMzcuNTItMjIuNjggNTEuOTItMjUuMTVDMzk0LjI0IDExMCA0MDMuNTkgMTA4LjQxIDQxNiA5NmExNiAxNiAwIDAgMSAyMi42MyAyMi42M3pNMzEuNDQgMzIyLjE4TDMyMi4xOCAzMS40NGwtMTEuNTQtMTEuNTVjLTI1LTI1LTYzLjg1LTI2LjY2LTg2Ljc5LTMuNzJMMTYuMTcgMjIzLjg1Yy0yMi45NCAyMi45NC0yMS4yNyA2MS43OSAzLjcyIDg2Ljc4em00NDkuMTItMTMyLjM2TDE4OS44MiA0ODAuNTZsMTEuNTQgMTEuNTVjMjUgMjUgNjMuODUgMjYuNjYgODYuNzkgMy43MmwyMDcuNjgtMjA3LjY4YzIyLjk0LTIyLjk0IDIxLjI3LTYxLjc5LTMuNzItODYuNzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdGVsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MCA2NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDAgMCA3LjE2IDAgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTUuOTh2Mzg0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgyNDB2LTgwYzAtOC44IDcuMi0xNiAxNi0xNmgzMmM4LjggMCAxNiA3LjIgMTYgMTZ2ODBoMjQwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZWNjRoMTZ6bS0zMDQgNDQuOGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNHptMCA5NmMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNHptLTEyOC05NmMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNHpNMTc5LjIgMjU2aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44ek0xOTIgMzg0YzAtNTMuMDIgNDIuOTgtOTYgOTYtOTZzOTYgNDIuOTggOTYgOTZIMTkyem0yNTYtMTQwLjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTAtOTZjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXJnbGFzc0VuZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NHpNMTkyIDIwOGMtNTcuNzg3IDAtMTA0LTY2LjUxOC0xMDQtMTQ0aDIwOGMwIDc3Ljk0NS00Ni41MSAxNDQtMTA0IDE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzSGFsZiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0em0tNzUuMDc4IDM4NEg5OS4wOGMxNy4wNTktNDYuNzk3IDUyLjA5Ni04MCA5Mi45Mi04MCA0MC44MjEgMCA3NS44NjIgMzMuMTk2IDkyLjkyMiA4MHptLjAxOS0yNTZIOTkuMDc4QzkxLjk4OCAxMDguNTQ4IDg4IDg2Ljc0OCA4OCA2NGgyMDhjMCAyMi44MDUtMy45ODcgNDQuNTg3LTExLjA1OSA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSG91cmdsYXNzU3RhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYwIDBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHptLTY0IDQ0OEg4OGMwLTc3LjQ1OCA0Ni4yMDQtMTQ0IDEwNC0xNDQgNTcuNzg2IDAgMTA0IDY2LjUxNyAxMDQgMTQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VyZ2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhvdXNlRGFtYWdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxMTQuOTZMNjkuNDcgMzA3LjcxYy0xLjYyIDEuNDYtMy42OSAyLjE0LTUuNDcgMy4zNVY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTQ5LjIzTDE5MiA0MzkuMTlsMTA0LjExLTY0LTYwLjE2LTExOS4yMkwzODQgMzkyLjc1bC0xMDQuMTEgNjRMMzE5LjgxIDUxMkg0OTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzExLjFjLTEuNy0xLjE2LTMuNzItMS44Mi01LjI2LTMuMkwyODggMTE0Ljk2em0yODIuNjkgMTIxLjMyTDUxMiAxODQuNDVWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTY0Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY1MS42OUwzMTQuNzUgMTAuMzFDMzA3LjEyIDMuNDUgMjk3LjU2LjAxIDI4OCAwcy0xOS4xIDMuNDEtMjYuNyAxMC4yN0w1LjMxIDIzNi4yOGMtNi41NyA1LjkxLTcuMTIgMTYuMDItMS4yMSAyMi42bDIxLjQgMjMuODJjNS45IDYuNTcgMTYuMDIgNy4xMiAyMi42IDEuMjFMMjc3LjQyIDgxLjYzYzYuMDUtNS4zMyAxNS4xMi01LjMzIDIxLjE3IDBMNTI3LjkxIDI4My45YzYuNTcgNS45IDE2LjY5IDUuMzYgMjIuNi0xLjIxbDIxLjQtMjMuODJjNS45LTYuNTcgNS4zNi0xNi42OS0xLjIyLTIyLjU5elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFIb3VzZVVzZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTcwLjY5LDIzNi4yNyw1MTIsMTg0LjQ0VjQ4YTE2LDE2LDAsMCwwLTE2LTE2SDQzMmExNiwxNiwwLDAsMC0xNiwxNlY5OS42N0wzMTQuNzgsMTAuM0MzMDguNSw0LjYxLDI5Ni41MywwLDI4OCwwcy0yMC40Niw0LjYxLTI2Ljc0LDEwLjNsLTI1NiwyMjZBMTguMjcsMTguMjcsMCwwLDAsMCwyNDguMmExOC42NCwxOC42NCwwLDAsMCw0LjA5LDEwLjcxTDI1LjUsMjgyLjdhMjEuMTQsMjEuMTQsMCwwLDAsMTIsNS4zLDIxLjY3LDIxLjY3LDAsMCwwLDEwLjY5LTQuMTFsMTUuOS0xNFY0ODBhMzIsMzIsMCwwLDAsMzIsMzJINDgwYTMyLDMyLDAsMCwwLDMyLTMyVjI2OS44OGwxNS45MSwxNEEyMS45NCwyMS45NCwwLDAsMCw1MzguNjMsMjg4YTIwLjg5LDIwLjg5LDAsMCwwLDExLjg3LTUuMzFsMjEuNDEtMjMuODFBMjEuNjQsMjEuNjQsMCwwLDAsNTc2LDI0OC4xOSwyMSwyMSwwLDAsMCw1NzAuNjksMjM2LjI3Wk0yODgsMTc2YTY0LDY0LDAsMSwxLTY0LDY0QTY0LDY0LDAsMCwxLDI4OCwxNzZaTTQwMCw0NDhIMTc2YTE2LDE2LDAsMCwxLTE2LTE2LDk2LDk2LDAsMCwxLDk2LTk2aDY0YTk2LDk2LDAsMCwxLDk2LDk2QTE2LDE2LDAsMCwxLDQwMCw0NDhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUhyeXZuaWEgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDI0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQxLjg2YzEzLjQxLTI4LjYzIDEzLjc0LTYzLjMzLTQuMTMtOTQuMDVDMzAzLjM0IDQ5Ljg0IDI2Ny4xIDMyIDIyOS45NiAzMmgtNzguODJjLTI0LjMyIDAtNDcuODYgOC41My02Ni41NCAyNC4wOUw3Mi44MyA2NS45Yy0xMC4xOCA4LjQ5LTExLjU2IDIzLjYyLTMuMDcgMzMuOGwyMC40OSAyNC41OWM4LjQ5IDEwLjE5IDIzLjYyIDExLjU2IDMzLjgxIDMuMDdsMTEuNzMtOS43OGM0LjMyLTMuNiA5Ljc3LTUuNTcgMTUuMzktNS41N2g4My42MmMxMS42OSAwIDIxLjIgOS41MiAyMS4yIDIxLjIgMCA1LjkxLTIuNDggMTEuNTgtNi44MSAxNS41OEwyMTkuNyAxNzZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDEzNC4zN2wtMzQuNjcgMzJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxLjg2Yy0xMy40MSAyOC42My0xMy43NCA2My4zMyA0LjEzIDk0LjA1QzgwLjY2IDQ2Mi4xNSAxMTYuOSA0ODAgMTU0LjA0IDQ4MGg3OC44MmMyNC4zMiAwIDQ3Ljg2LTguNTMgNjYuNTQtMjQuMDlsMTEuNzctOS44MWMxMC4xOC04LjQ5IDExLjU2LTIzLjYyIDMuMDctMzMuOGwtMjAuNDktMjQuNTljLTguNDktMTAuMTktMjMuNjItMTEuNTYtMzMuODEtMy4wN2wtMTEuNzUgOS44YTIzLjk5MiAyMy45OTIgMCAwIDEtMTUuMzYgNS41NkgxNDkuMmMtMTEuNjkgMC0yMS4yLTkuNTItMjEuMi0yMS4yIDAtNS45MSAyLjQ4LTExLjU4IDYuODEtMTUuNThMMTY0LjMgMzM2SDM2OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjMzLjYzbDM0LjY3LTMySDM2OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSUN1cnNvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgNTIuMDQ4VjEyLjA2NUMyNTYgNS40OTYgMjUwLjcyNi4xNDggMjQ0LjE1OC4wNjYgMjExLjYyMS0uMzQ0IDE2Ni40NjkuMDExIDEyOCAzNy45NTkgOTAuMjY2LjczNiA0Ni45NzktLjExNCAxMS45MTMuMTE0IDUuMzE4LjE1NyAwIDUuNTE5IDAgMTIuMTE0djM5LjY0NWMwIDYuNjg3IDUuNDU4IDEyLjA3OCAxMi4xNDUgMTEuOTk4QzM4LjExMSA2My40NDcgOTYgNjcuMjQzIDk2IDExMi4xODJWMjI0SDYwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMzZ2MTEyYzAgNDQuOTMyLTU2LjA3NSA0OC4wMzEtODMuOTUgNDcuOTU5QzUuNDA0IDQ0Ny45NDIgMCA0NTMuMzA2IDAgNDU5Ljk1MnYzOS45ODNjMCA2LjU2OSA1LjI3NCAxMS45MTcgMTEuODQyIDExLjk5OSAzMi41MzcuNDA5IDc3LjY4OS4wNTQgMTE2LjE1OC0zNy44OTQgMzcuNzM0IDM3LjIyMyA4MS4wMjEgMzguMDczIDExNi4wODcgMzcuODQ1IDYuNTk1LS4wNDMgMTEuOTEzLTUuNDA1IDExLjkxMy0xMlY0NjAuMjRjMC02LjY4Ny01LjQ1OC0xMi4wNzgtMTIuMTQ1LTExLjk5OEMyMTcuODg5IDQ0OC41NTMgMTYwIDQ0NC45MzkgMTYwIDQwMFYyODhoMzZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMzZWMTEyLjE4MmMwLTQ0LjkzMiA1Ni4wNzUtNDguMjEzIDgzLjk1LTQ4LjE0MiA2LjY0Ni4wMTggMTIuMDUtNS4zNDYgMTIuMDUtMTEuOTkyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJY2VDcmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggMTYwaC0uOTRhMTQ0IDE0NCAwIDEgMC0yODYuMTIgMEg4MGE0OCA0OCAwIDAgMCAwIDk2aDI4OGE0OCA0OCAwIDAgMCAwLTk2ek0xOTUuMzggNDkzLjY5YTMxLjUyIDMxLjUyIDAgMCAwIDU3LjI0IDBMMzUyIDI4OEg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWNpY2xlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuNCAzNy45QzUxNS4xIDE4LjIgNTAwIDAgNDgwIDBIMzJDMTAuNiAwLTQuOCAyMC43IDEuNCA0MS4ybDg3LjEgMjczLjRjMi41IDcuMiAxMi43IDcuMiAxNS4xIDBMMTQwIDE5MC41bDQ0LjIgMTg3LjNjMS45IDguMyAxMy43IDguMyAxNS42IDBsNDYuNS0xOTYuOSAzNC4xIDEzMy40YzIuMyA3LjYgMTMgNy42IDE1LjMgMGw0NS44LTE3Mi41IDY2LjcgMzYzLjhjMS43IDguNiAxNCA4LjYgMTUuNyAwbDg3LjUtNDY3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUljb25zIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExNi42NSAyMTkuMzVhMTUuNjggMTUuNjggMCAwIDAgMjIuNjUgMGw5Ni43NS05OS44M2MyOC4xNS0yOSAyNi41LTc3LjEtNC45MS0xMDMuODhDMjAzLjc1LTcuNyAxNjMtMy41IDEzNy44NiAyMi40NEwxMjggMzIuNThsLTkuODUtMTAuMTRDOTMuMDUtMy41IDUyLjI1LTcuNyAyNC44NiAxNS42NGMtMzEuNDEgMjYuNzgtMzMgNzQuODUtNSAxMDMuODh6bTE0My45MiAxMDAuNDloLTQ4bC03LjA4LTE0LjI0YTI3LjM5IDI3LjM5IDAgMCAwLTI1LjY2LTE3Ljc4aC03MS43MWEyNy4zOSAyNy4zOSAwIDAgMC0yNS42NiAxNy43OGwtNyAxNC4yNGgtNDhBMjcuNDUgMjcuNDUgMCAwIDAgMCAzNDcuM3YxMzcuMjVBMjcuNDQgMjcuNDQgMCAwIDAgMjcuNDMgNTEyaDIzMy4xNEEyNy40NSAyNy40NSAwIDAgMCAyODggNDg0LjU1VjM0Ny4zYTI3LjQ1IDI3LjQ1IDAgMCAwLTI3LjQzLTI3LjQ2ek0xNDQgNDY4YTUyIDUyIDAgMSAxIDUyLTUyIDUyIDUyIDAgMCAxLTUyIDUyem0zNTUuNC0xMTUuOWgtNjAuNThsMjIuMzYtNTAuNzVjMi4xLTYuNjUtMy45My0xMy4yMS0xMi4xOC0xMy4yMWgtNzUuNTljLTYuMyAwLTExLjY2IDMuOS0xMi41IDkuMWwtMTYuOCAxMDYuOTNjLTEgNi4zIDQuODggMTEuODkgMTIuNSAxMS44OWg2Mi4zMWwtMjQuMiA4M2MtMS44OSA2LjY1IDQuMiAxMi45IDEyLjIzIDEyLjlhMTMuMjYgMTMuMjYgMCAwIDAgMTAuOTItNS4yNWw5Mi40LTEzOC45MWM0Ljg4LTYuOTEtMS4xNi0xNS43LTEwLjg3LTE1Ljd6TTQ3OC4wOC4zM0wzMjkuNTEgMjMuMTdDMzE0Ljg3IDI1LjQyIDMwNCAzOC45MiAzMDQgNTQuODNWMTYxLjZhODMuMjUgODMuMjUgMCAwIDAtMTYtMS43Yy0zNS4zNSAwLTY0IDIxLjQ4LTY0IDQ4czI4LjY1IDQ4IDY0IDQ4YzM1LjIgMCA2My43My0yMS4zMiA2NC00Ny42NlY5OS42NmwxMTItMTcuMjJ2NDcuMThhODMuMjUgODMuMjUgMCAwIDAtMTYtMS43Yy0zNS4zNSAwLTY0IDIxLjQ4LTY0IDQ4czI4LjY1IDQ4IDY0IDQ4YzM1LjIgMCA2My43My0yMS4zMiA2NC00Ny42NlYzMmMwLTE5LjQ4LTE2LTM0LjQyLTMzLjkyLTMxLjY3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZEJhZGdlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNDQgMzJoOTZjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZoLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2em00OCAxMjhjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDEwMi40QzkwIDQxNiA4MCA0MDcuNCA4MCAzOTYuOHYtMTkuMmMwLTMxLjggMzAuMS01Ny42IDY3LjItNTcuNmg1YzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDVjMzcuMSAwIDY3LjIgMjUuOCA2Ny4yIDU3LjZ2MTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRDYXJkQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA2NEgzODR2OTZIMTkyVjY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yODggMjI0YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptOTMuMyAyMjRIMTk0LjdjLTEwLjQgMC0xOC44LTEwLTE1LjYtMTkuOCA4LjMtMjUuNiAzMi40LTQ0LjIgNjAuOS00NC4yaDguMmMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg4LjJjMjguNCAwIDUyLjUgMTguNSA2MC45IDQ0LjIgMy4yIDkuOC01LjIgMTkuOC0xNS42IDE5Ljh6TTM1MiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMmgtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDEyOFYzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSWRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjE2aDU3NlY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMCA0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoNDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEyOEgwdjMwNHptMzUyLTIzMmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2em0wIDY0YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZ6bTAgNjRjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNnpNMTc2IDE5MmMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6TTY3LjEgMzk2LjJDNzUuNSAzNzAuNSA5OS42IDM1MiAxMjggMzUyaDguMmMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg4LjJjMjguNCAwIDUyLjUgMTguNSA2MC45IDQ0LjIgMy4yIDkuOS01LjIgMTkuOC0xNS42IDE5LjhIODIuN2MtMTAuNCAwLTE4LjgtMTAtMTUuNi0xOS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJZ2xvbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAgMzMuOWMtMTAuNS0xLjItMjEuMi0xLjktMzItMS45LTk5LjggMC0xODcuOCA1MC44LTIzOS40IDEyOEgzMjBWMzMuOXpNOTYgMTkySDMwLjNDMTEuMSAyMzAuNiAwIDI3NCAwIDMyMGg5NlYxOTJ6TTM1MiAzOS40VjE2MGgxNzUuNEM0ODcuMiA5OS45IDQyNC44IDU1LjkgMzUyIDM5LjR6TTQ4MCAzMjBoOTZjMC00Ni0xMS4xLTg5LjQtMzAuMy0xMjhINDgwdjEyOHptLTY0IDY0djk2aDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZINDExLjVjMi42IDEwLjMgNC41IDIwLjkgNC41IDMyem0zMi0xOTJIMTI4djEyOGg0OS44YzIyLjItMzguMSA2My02NCAxMTAuMi02NHM4OCAyNS45IDExMC4yIDY0SDQ0OFYxOTJ6TTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDEyOHYtOTZjMC0xMS4xIDEuOS0yMS43IDQuNS0zMkgwdjk2em0yODgtMTYwYy01MyAwLTk2IDQzLTk2IDk2djk2aDE5MnYtOTZjMC01My00My05Ni05Ni05NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTEyIDEyMGMtMzAuOTI4IDAtNTYgMjUuMDcyLTU2IDU2czI1LjA3MiA1NiA1NiA1NiA1Ni0yNS4wNzIgNTYtNTYtMjUuMDcyLTU2LTU2LTU2ek02NCAzODRoMzg0VjI3MmwtODcuNTE1LTg3LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDIwOCAzMjBsLTU1LjUxNS01NS41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw2NCAzMzZ2NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUltYWdlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAgNDE2djE2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTc2YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMTZ2MjA4YzAgNDQuMTEyIDM1Ljg4OCA4MCA4MCA4MGgzMzZ6bTk2LTgwVjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMTQ0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djI1NmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM4NGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4ek0yNTYgMTI4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4IDIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4em0tOTYgMTQ0bDU1LjUxNS01NS41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDI3MiAyNTZsMTM1LjUxNS0xMzUuNTE1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMEw1MTIgMjA4djExMkgxNjB2LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjcuOTM4IDI0My45MDhMNDYyLjI1IDg1LjM3NEE0OC4wMDMgNDguMDAzIDAgMCAwIDQyMi4zMTEgNjRIMTUzLjY4OWE0OCA0OCAwIDAgMC0zOS45MzggMjEuMzc0TDguMDYyIDI0My45MDhBNDcuOTk0IDQ3Ljk5NCAwIDAgMCAwIDI3MC41MzNWNDAwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDgwYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjcwLjUzM2E0Ny45OTQgNDcuOTk0IDAgMCAwLTguMDYyLTI2LjYyNXpNMTYyLjI1MiAxMjhoMjUxLjQ5N2w4NS4zMzMgMTI4SDM3NmwtMzIgNjRIMjMybC0zMi02NEg3Ni45MThsODUuMzM0LTEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhSW5kZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3LjMxIDM2My4zbDk2LTk2YTE2IDE2IDAgMCAwIDAtMjIuNjJsLTk2LTk2QzE3LjI3IDEzOC42NiAwIDE0NS43OCAwIDE2MHYxOTJjMCAxNC4zMSAxNy4zMyAyMS4zIDI3LjMxIDExLjN6TTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDM1MmgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHptMC0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAxNzIuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDIyNGgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDIxMS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDE2MHpNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmR1c3RyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzUuMTE1IDE2My43ODFMMzM2IDI1Mi4zMDl2LTY4LjI4YzAtMTguOTE2LTIwLjkzMS0zMC4zOTktMzYuODg1LTIwLjI0OEwxNjAgMjUyLjMwOVY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2NDAwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg0NjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NC4wMjljMC0xOC45MTctMjAuOTMxLTMwLjM5OS0zNi44ODUtMjAuMjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmZpbml0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzEuMSA5NkM0MDUgOTYgMzUzLjMgMTM3LjMgMzIwIDE3NC42IDI4Ni43IDEzNy4zIDIzNSA5NiAxNjguOSA5NiA3NS44IDk2IDAgMTY3LjggMCAyNTZzNzUuOCAxNjAgMTY4LjkgMTYwYzY2LjEgMCAxMTcuOC00MS4zIDE1MS4xLTc4LjYgMzMuMyAzNy4zIDg1IDc4LjYgMTUxLjEgNzguNiA5My4xIDAgMTY4LjktNzEuOCAxNjguOS0xNjBTNTY0LjIgOTYgNDcxLjEgOTZ6TTE2OC45IDMyMGMtNDAuMiAwLTcyLjktMjguNy03Mi45LTY0czMyLjctNjQgNzIuOS02NGMzOC4yIDAgNzMuNCAzNi4xIDk0IDY0LTIwLjQgMjcuNi01NS45IDY0LTk0IDY0em0zMDIuMiAwYy0zOC4yIDAtNzMuNC0zNi4xLTk0LTY0IDIwLjQtMjcuNiA1NS45LTY0IDk0LTY0IDQwLjIgMCA3Mi45IDI4LjcgNzIuOSA2NHMtMzIuNyA2NC03Mi45IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJbmZvQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUluZm8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDE5MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAgNDI0LjIyOWgyMFYyNzkuNzcxSDIwYy0xMS4wNDYgMC0yMC04Ljk1NC0yMC0yMFYyMTJjMC0xMS4wNDYgOC45NTQtMjAgMjAtMjBoMTEyYzExLjA0NiAwIDIwIDguOTU0IDIwIDIwdjIxMi4yMjloMjBjMTEuMDQ2IDAgMjAgOC45NTQgMjAgMjBWNDkyYzAgMTEuMDQ2LTguOTU0IDIwLTIwIDIwSDIwYy0xMS4wNDYgMC0yMC04Ljk1NC0yMC0yMHYtNDcuNzcxYzAtMTEuMDQ2IDguOTU0LTIwIDIwLTIwek05NiAwQzU2LjIzNSAwIDI0IDMyLjIzNSAyNCA3MnMzMi4yMzUgNzIgNzIgNzIgNzItMzIuMjM1IDcyLTcyUzEzNS43NjQgMCA5NiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFJdGFsaWMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIwIDQ4djMyYTE2IDE2IDAgMCAxLTE2IDE2aC02Mi43NmwtODAgMzIwSDIwOGExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNkgxNmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoNjIuNzZsODAtMzIwSDExMmExNiAxNiAwIDAgMS0xNi0xNlY0OGExNiAxNiAwIDAgMSAxNi0xNmgxOTJhMTYgMTYgMCAwIDEgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUplZGkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTM1Ljk1MzA4LDM1MmMtNDIuNjQwNjksOTQuMTcxODgtMTM3LjY0MDg2LDE2MC0yNDcuOTg0OCwxNjBxLTYuMzk4NDQsMC0xMi44NDM3Ny0uMjk2ODhDMTcxLjE1NTU4LDUwNi45Mzc1LDgxLjI2NDgxLDQ0Mi4yMzQzOCw0MC4wMTQ3NCwzNTJINzkuOTM2NjhMMjEuMzI3MiwyOTMuNDA2MjVhMjY0LjgyNTIyLDI2NC44MjUyMiwwLDAsMS01LjEwOTM4LTM5LjQyMTg3LDI3My42NjUzLDI3My42NjUzLDAsMCwxLC41LTI5Ljk4NDM4SDYzLjkzNjY1TDIyLjU0NiwxODIuNjI1QTI2OS43OTc4MiwyNjkuNzk3ODIsMCwwLDEsMTMwLjUxNDg5LDIwLjU0Njg4YTE2LjA2MzkzLDE2LjA2MzkzLDAsMCwxLDkuMjgxMjctMywxNi4zNjMzMiwxNi4zNjMzMiwwLDAsMSwxMy41LDcuMjUsMTYuMDI3MzksMTYuMDI3MzksMCwwLDEsMS42MjUsMTUuMDkzNzQsMTM4LjM4NywxMzguMzg3LDAsMCwwLTkuODQzNzYsNTEuMjY1NjNjMCw0NS4xMDkzNywyMS4wNDY5MSw4Ni41NzgxMyw1Ny43MTg4NCwxMTMuNzM0MzdhMTYuMjk5ODksMTYuMjk5ODksMCwwLDEsMS4yMDMxMywyNS4zOTA2M2MtMjYuNTQ2OTIsMjMuOTg0MzctNDEuMTcxOTQsNTYuNS00MS4xNzE5NCw5MS41NzgxMywwLDYwLjAzMTI0LDQyLjk1MzE5LDExMC4yODEyNCw5OS44OTA3OSwxMjEuOTIxODdsMi41LTY1LjI2NTYzTDIzOC4wNjIsMzk3YTguMzM5MTEsOC4zMzkxMSwwLDAsMS0xMC0uNzUsOC4wMjUsOC4wMjUsMCwwLDEtMS4zOTA2My05LjkzNzVsMjAuMTI1LTMzLjc2NTYyLTQyLjA2MjU3LTguNzM0MzhhNy45ODk4LDcuOTg5OCwwLDAsMSwwLTE1LjY1NjI1bDQyLjA2MjU3LTguNzE4NzUtMjAuMTA5NDEtMzMuNzM0MzhhNy45OTEyMiw3Ljk5MTIyLDAsMCwxLDExLjM1OTM5LTEwLjcxODc0TDI2OC40MzcsMjk1LjY0MDYyLDI3OS45NTI2NSw3LjY3MTg4YTcuOTcxMzgsNy45NzEzOCwwLDAsMSw4LTcuNjcxODhoLjA0Njg3YTguMDIwNjQsOC4wMjA2NCwwLDAsMSw3Ljk1MzE0LDcuNzAzMTJMMzA3LjQ4Mzk0LDI5NS42MjVsMzAuMzkwNjgtMjAuNjcxODhhOC4wODMyNyw4LjA4MzI3LDAsMCwxLDEwLC44MTI1LDcuOTk4NjYsNy45OTg2NiwwLDAsMSwxLjM5MDYyLDkuOTA2MjZMMzI5LjEyNDYxLDMxOS40Mzc1bDQyLjA3ODE5LDguNzM0MzhhNy45OTM3Myw3Ljk5MzczLDAsMCwxLDAsMTUuNjU2MjRsLTQyLjA3ODE5LDguNzE4NzYsMjAuMTA5NCwzMy43MzQzN2E3Ljk3NzkxLDcuOTc3OTEsMCwwLDEtMS4zMjgxMiw5LjkyMTg3QTguMjU3MzksOC4yNTczOSwwLDAsMSwzMzcuODc0NjIsMzk3TDMxMC43MDI3LDM3OC41MzEyNWwyLjUsNjUuMzQzNzVjNDguNDg0NDYtOS40MDYyNSw4Ny41NzgyOC00OC4xNTYyNSw5Ny4zMTI2Ny05Ni41QTEyMy41MjY1MiwxMjMuNTI2NTIsMCwwLDAsMzcxLjk1MjgsMjMwLjI5Njg4YTE2LjMwNjM0LDE2LjMwNjM0LDAsMCwxLDEuMjAzMTMtMjUuNDIxODhjMzYuNjU2MzEtMjcuMTcxODgsNTcuNjg3Ni02OC42MDkzOCw1Ny42ODc2LTExMy43MzQzOGExMzguMDE2ODksMTM4LjAxNjg5LDAsMCwwLTkuODU5MzktNTEuMzEyNSwxNS45ODEzMiwxNS45ODEzMiwwLDAsMSwxLjYwOTM3LTE1LjA5Mzc0LDE2LjM2OTE0LDE2LjM2OTE0LDAsMCwxLDEzLjUtNy4yMzQzOCwxNi4wMjQ1MywxNi4wMjQ1MywwLDAsMSw5LjI1LDIuOTg0MzhBMjcxLjI2OTQ3LDI3MS4yNjk0NywwLDAsMSw1NTMuMjUsMTgyLjc2NTYyTDUxMS45OTk5MiwyMjRoNDYuOTUzMkM1NTkuMzEyNSwyMjkuNzY1NjIsNTYwLDIzNS40NTMxMiw1NjAsMjQxLjI2NTYyYTI3MC4wOTIsMjcwLjA5MiwwLDAsMS01LjEyNSw1MS44NTkzOEw0OTUuOTg0MjcsMzUyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKb2ludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDQuMzQgMTgxLjFjMjIuMzggMTUuNjggMzUuNjYgNDEuMTYgMzUuNjYgNjguNTlWMjgwYzAgNC40MiAzLjU4IDggOCA4aDQ4YzQuNDIgMCA4LTMuNTggOC04di0zMC4zMWMwLTQzLjI0LTIxLjAxLTgzLjQxLTU2LjM0LTEwOC4wNkM0NjMuODUgMTI1LjAyIDQ0OCA5OS4zNCA0NDggNzAuMzFWOGMwLTQuNDItMy41OC04LTgtOGgtNDhjLTQuNDIgMC04IDMuNTgtOCA4djY2LjRjMCA0My42OSAyNC41NiA4MS42MyA2MC4zNCAxMDYuN3pNMTk0Ljk3IDM1OC45OEMxMjYuMDMgMzcwLjA3IDU5LjY5IDM5NC42OSAwIDQzMmM4My42NSA1Mi4yOCAxODAuMyA4MCAyNzguOTQgODBoODguNTdMMjU0Ljc5IDM4MC40OWMtMTQuNzQtMTcuMi0zNy40NS0yNS4xMS01OS44Mi0yMS41MXpNNTUzLjI4IDg3LjA5Yy01LjY3LTMuOC05LjI4LTkuOTYtOS4yOC0xNi43OFY4YzAtNC40Mi0zLjU4LTgtOC04aC00OGMtNC40MiAwLTggMy41OC04IDh2NjIuMzFjMCAyMi4wMiAxMC4xNyA0My40MSAyOC42NCA1NS4zOUM1NTAuNzkgMTUzLjA0IDU3NiAxOTkuNTQgNTc2IDI0OS42OVYyODBjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTMwLjMxYzAtNjUuNDQtMzIuNDEtMTI2LjE5LTg2LjcyLTE2Mi42ek0zNjAuODkgMzUyLjA1Yy0zNC40LjA2LTg2LjgxLjE1LTg4LjIxLjE3bDExNy44IDEzNy40M0E2My45ODcgNjMuOTg3IDAgMCAwIDQzOS4wNyA1MTJoODguNDVMNDA5LjU3IDM3NC40YTYzLjk1NSA2My45NTUgMCAwIDAtNDguNjgtMjIuMzV6TTYxNiAzNTJINDMybDExNy45OSAxMzcuNjVBNjMuOTg3IDYzLjk4NyAwIDAgMCA1OTguNTggNTEySDYxNmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0VjM3NmMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFKb3VybmFsV2hpbGxzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOC40MDYyNSwzNzcuNTkzNzVjLTMuMjAzMTMsMTIuODEyNS0zLjIwMzEzLDU3LjYwOTM3LDAsNzMuNjA5MzdRNDQ3Ljk5MjIsNDYwLjc4OTA3LDQ0OCw0NzAuNDA2MjV2MTZjMCwxNi0xMi43OTY4OCwyNS41OTM3NS0yNS41OTM3NSwyNS41OTM3NUg5NmMtNTQuNDA2MjUsMC05Ni00MS41OTM3NS05Ni05NlY5NkMwLDQxLjU5Mzc1LDQxLjU5Mzc1LDAsOTYsMEg0MjIuNDA2MjVDNDM4LjQwNjI1LDAsNDQ4LDkuNTkzNzUsNDQ4LDI1LjU5Mzc1djMzMi44MTI1UTQ0OCwzNzIuNzk2ODgsNDM4LjQwNjI1LDM3Ny41OTM3NVpNMzgwLjc5Njg4LDM4NEg5NmMtMTYsMC0zMiwxMi43OTY4OC0zMiwzMnMxMi43OTY4OCwzMiwzMiwzMkgzODAuNzk2ODhaTTEyOC4wMTU2MiwxNzYuMDE1NjJjMCwuNTE1NjMuMTQwNjMuOTg0MzguMTQwNjMsMS41bDM3LjEwOTM3LDMyLjQ2ODc2QTcuOTk5NTQsNy45OTk1NCwwLDAsMSwxNjAsMjI0aC0uMDE1NjJhOS4xNzY3OCw5LjE3Njc4LDAsMCwxLTUuMjUtMS45ODQzOEwxMzEuMTQwNjIsMjAxLjM3NUMxNDIuNjg3NSwyNTAuOTUzMTIsMTg2LjkwNjI1LDI4OCwyNDAsMjg4czk3LjMxMjUtMzcuMDQ2ODgsMTA4Ljg3NS04Ni42MjVsLTIzLjU5Mzc1LDIwLjY0MDYyYTguMDI1MTYsOC4wMjUxNiwwLDAsMS01LjI2NTYzLDEuOTY4NzZIMzIwYTkuMTQ2NDEsOS4xNDY0MSwwLDAsMS02LjAxNTYyLTIuNzE4NzZBOS4yNjUwOCw5LjI2NTA4LDAsMCwxLDMxMiwyMTZhOS4wOTcsOS4wOTcsMCwwLDEsMi43MzQzOC02LjAxNTYybDM3LjEwOTM3LTMyLjQ2ODc2Yy4wMTU2My0uNTMxMjQuMTU2MjUtMSwuMTU2MjUtMS41MTU2MiwwLTExLjA0Njg4LTIuMDkzNzUtMjEuNTE1NjItNS4wNjI1MS0zMS41OTM3NWwtMjEuMjY1NjIsMjEuMjVhOC4wMDQ2Nyw4LjAwNDY3LDAsMCwxLTExLjMyODEyLTExLjMxMjVsMjYuNDIxODctMjYuNDA2MjVhMTExLjgxNTE3LDExMS44MTUxNywwLDAsMC00Ni4zNTkzNy00OS4yNjU2Miw2My4wMjMzNiw2My4wMjMzNiwwLDAsMS0xNC4wNjI1LDgyLjY0MDYyQTU1LjgzODQ2LDU1LjgzODQ2LDAsMCwxLDI1MS42MjUsMjU0LjczNDM4bC0xLjQyMTg4LTM0LjI4MTI2LDEyLjY3MTg4LDguNjI1YTMuOTY3LDMuOTY3LDAsMCwwLDIuMjUuNjg3NSwzLjk4MDU5LDMuOTgwNTksMCwwLDAsMy40Mzc0OS02LjAzMTI0bC04LjUzMTI0LTE0LjMxMjUsMTcuOTA2MjUtMy43MTg3NmE0LjAwNjQ3LDQuMDA2NDcsMCwwLDAsMC03Ljg0Mzc0bC0xNy45MDYyNS0zLjcxODc2LDguNTMxMjQtMTQuMzEyNWEzLjk4MDU5LDMuOTgwNTksMCwwLDAtMy40Mzc0OS02LjAzMTI0LDQuNzI2LDQuNzI2LDAsMCwwLTIuMjUuNjcxODdMMjQ4LjY4NzUsMTg0LjEyNSwyNDQsNzEuODI4MTJhNC4wMDM4Niw0LjAwMzg2LDAsMCwwLTgsMGwtNC42MjUsMTEwLjgxMjUtMTItOC4xNTYyNGE0LjAwMyw0LjAwMywwLDAsMC01LjY4NzUxLDUuMzU5MzdsOC41MzEyNiwxNC4zMTI1TDIwNC4zMTI1LDE5Ny44NzVhMy45OTY4NiwzLjk5Njg2LDAsMCwwLDAsNy44MjgxMmwxNy45MDYyNSwzLjczNDM4LTguNTMxMjYsMTQuMjk2ODhhNC43MjQ2OSw0LjcyNDY5LDAsMCwwLS41NjI0OSwyLjA0Njg3LDQuNTk1NDcsNC41OTU0NywwLDAsMCwxLjI1LDIuOTA2MjUsNC4wMTA1OSw0LjAxMDU5LDAsMCwwLDIuNzUsMS4wOTM3NSw0LjA5MDE2LDQuMDkwMTYsMCwwLDAsMi4yNS0uNjg3NWwxMC4zNTkzNy03LjA0Njg3TDIyOC4zNzUsMjU0Ljc2NTYyYTU1Ljg2NDE0LDU1Ljg2NDE0LDAsMCwxLTI4LjcxODc1LTkzLjQ1MzEyLDYzLjAxMTE5LDYzLjAxMTE5LDAsMCwxLTE0LjA0Njg4LTgyLjY1NjI1LDExMS45MzE1OCwxMTEuOTMxNTgsMCwwLDAtNDYuMzc1LDQ5LjI2NTYzbDI2LjQyMTg3LDI2LjQyMTg3YTcuOTk5MTcsNy45OTkxNywwLDAsMS0xMS4zMTI1LDExLjMxMjVsLTIxLjI2NTYzLTIxLjI2NTYzQzEzMC4wOTM3NSwxNTQuNDg0MzgsMTI4LDE2NC45NTMxMiwxMjguMDE1NjIsMTc2LjAxNTYyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLYWFiYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NTQuMTIgODMuNTFMMzE4LjM2IDQuOTNhOTUuOTYyIDk1Ljk2MiAwIDAgMC02MC43MSAwTDIxLjg4IDgzLjUxQTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTMuODd2NDkuMDFsMjY1LjAyLTc5LjUxYzE1LjAzLTQuNSAzMC45Mi00LjUgNDUuOTggMGwyNjUgNzkuNTF2LTQ5LjAxYzAtMTMuNzctOC44MS0yNi0yMS44OC0zMC4zNnptLTI3OS45IDMwLjUyTDAgMTk2LjN2MjI4LjM4YzAgMTUgMTAuNDIgMjcuOTggMjUuMDYgMzEuMjRsMjQyLjEyIDUzLjhhOTUuOTM3IDk1LjkzNyAwIDAgMCA0MS42NSAwbDI0Mi4xMi01My44YzE0LjY0LTMuMjUgMjUuMDYtMTYuMjQgMjUuMDYtMzEuMjRWMTk2LjI5bC0yNzQuMi04Mi4yNmMtOS4wNC0yLjcyLTE4LjU5LTIuNzItMjcuNTkgMHpNMTI4IDIzMC4xMWMwIDMuNjEtMi40MSA2Ljc3LTUuODkgNy43MmwtODAgMjEuODJDMzcuMDIgMjYxLjAzIDMyIDI1Ny4yIDMyIDI1MS45M3YtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsODAtMjEuODJjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTQ0LTM5LjI4YzAgMy42MS0yLjQxIDYuNzctNS44OSA3LjcybC05NiAyNi4xOGMtNS4wOSAxLjM5LTEwLjExLTIuNDQtMTAuMTEtNy43MnYtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsOTYtMjYuMThjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTc2IDIyLjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDgwIDIxLjgyYzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTgwLTIxLjgyYTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6bS0xNDQtMzkuMjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDk2IDI2LjE4YzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTk2LTI2LjE4YTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtleSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTIgMTc2LjAwMUM1MTIgMjczLjIwMyA0MzMuMjAyIDM1MiAzMzYgMzUyYy0xMS4yMiAwLTIyLjE5LTEuMDYyLTMyLjgyNy0zLjA2OWwtMjQuMDEyIDI3LjAxNEEyMy45OTkgMjMuOTk5IDAgMCAxIDI2MS4yMjMgMzg0SDIyNHY0MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRoLTQwdjQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di03OC4wNTljMC02LjM2NSAyLjUyOS0xMi40NyA3LjAyOS0xNi45NzFsMTYxLjgwMi0xNjEuODAyQzE2My4xMDggMjEzLjgxNCAxNjAgMTk1LjI3MSAxNjAgMTc2IDE2MCA3OC43OTggMjM4Ljc5Ny4wMDEgMzM1Ljk5OSAwIDQzMy40ODgtLjAwMSA1MTIgNzguNTExIDUxMiAxNzYuMDAxek0zMzYgMTI4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDgtNDggMjEuNDktNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtleWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA0NDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDgwYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6TTEyOCAxODB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJINzZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0zMzYgOTZ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA5NnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTI4OCAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDE3MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIzMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUtoYW5kYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTUuODEgNjZjLTYuMzctMy41LTE0LjM3LTIuMzMtMTkuMzYgMy4wMmExNS45NzQgMTUuOTc0IDAgMCAwLTEuOTEgMTkuNTJjMTYuNDkgMjYuMTYgMjUuMiA1Ni4zOSAyNS4yIDg3LjQxLS4xOSA1My4yNS0yNi43NyAxMDIuNjktNzEuMjcgMTMyLjQxbC03Ni42MyA1My4zNXYtMjAuMWw0NC4wNS0zNi4wOWMzLjkyLTQuMiA1LTEwLjA5IDIuODEtMTUuMjhMMzEwLjg1IDI3M2MzMy44NC0xOS4yNiA1Ni45NC01NS4yNSA1Ni45NC05Ni45OSAwLTQwLjc5LTIyLjAyLTc2LjEzLTU0LjU5LTk1LjcxbDUuMjItMTEuNDRjMi4zNC01LjUzLjkzLTExLjgzLTMuNTctMTYuMDRMMjU1Ljg2IDBsLTU4Ljk5IDUyLjgxYy00LjUgNC4yMS01LjkgMTAuNTEtMy41NyAxNi4wNGw1LjIyIDExLjQ0Yy0zMi41NyAxOS41OC01NC41OSA1NC45My01NC41OSA5NS43MiAwIDQxLjc1IDIzLjA5IDc3LjczIDU2Ljk0IDk2Ljk5bC03Ljg1IDE3LjI0Yy0yLjE5IDUuMTgtMS4xIDExLjA3IDIuODEgMTUuMjhsNDQuMDUgMzYuMDl2MTkuOWwtNzYuNTktNTMuMzNDMTE5LjAyIDI3OC42MiA5Mi40NCAyMjkuMTkgOTIuMjYgMTc2YzAtMzEuMDggOC43MS02MS4zMSAyNS4yLTg3LjQ3IDMuODctNi4xNiAyLjQtMTMuNzctMi41OS0xOS4wOC01LTUuMzQtMTMuNjgtNi4yLTIwLjAyLTIuN0MxNi4zMiAxMDkuNi0yMi4zIDIwNS4zIDEzLjM2IDI5NS45OWM3LjA3IDE3Ljk5IDE3Ljg5IDM0LjM4IDMwLjQ2IDQ5LjA2bDU1Ljk3IDY1LjM2YzQuODcgNS42OSAxMy4wNCA3LjI0IDE5LjY1IDMuNzJsNzkuMzUtNDIuMjNMMjI4IDM5Mi4yM2wtNDcuMDggMzIuNzhjLTEuNjctLjM3LTMuMjMtMS4wMS01LjAxLTEuMDEtMTMuMjUgMC0yMy45OSAxMC43NC0yMy45OSAyNCAwIDEzLjI1IDEwLjc0IDI0IDIzLjk5IDI0IDEyLjEgMCAyMS42OS05LjExIDIzLjMzLTIwLjc2bDQwLjYzLTI4LjI4djI5Ljk1Yy05LjM5IDUuNTctMTUuOTkgMTUuMzgtMTUuOTkgMjcuMSAwIDE3LjY3IDE0LjMyIDMyIDMxLjk4IDMyczMxLjk4LTE0LjMzIDMxLjk4LTMyYzAtMTEuNzEtNi42MS0yMS41Mi0xNS45OS0yNy4xdi0zMC4xNWw0MC45MSAyOC40OEMzMTQuNDEgNDYyLjg5IDMyNCA0NzIgMzM2LjA5IDQ3MmMxMy4yNSAwIDIzLjk5LTEwLjc1IDIzLjk5LTI0IDAtMTMuMjYtMTAuNzQtMjQtMjMuOTktMjQtMS43OCAwLTMuMzQuNjQtNS4wMSAxLjAxTDI4NCAzOTIuMjNsMjkuMjEtMjAuMzQgNzkuMzUgNDIuMjNjNi42MSAzLjUyIDE0Ljc4IDEuOTcgMTkuNjUtMy43MWw1Mi41MS02MS4zMWMxOC44Ny0yMi4wMiAzNC00Ny41IDQxLjI1LTc1LjU5IDIxLjYyLTgzLjY2LTE2LjQ1LTE2Ny4yNy05MC4xNi0yMDcuNTF6bS05NS45OSAxMTBjMCAyMi4zLTExLjQ5IDQxLjkyLTI4LjgzIDUzLjM4bC01LjY1LTEyLjQxYy04Ljc1LTI0LjUyLTguNzUtNTEuMDQgMC03NS41Nmw3LjgzLTE3LjE4YzE2LjA3IDExLjY1IDI2LjY1IDMwLjQ1IDI2LjY1IDUxLjc3em0tMTI3LjkzIDBjMC0yMS4zMiAxMC41OC00MC4xMiAyNi42Ni01MS43Nmw3LjgzIDE3LjE4YzguNzUgMjQuNTIgOC43NSA1MS4wMyAwIDc1LjU2bC01LjY1IDEyLjQxYy0xNy4zNC0xMS40Ni0yOC44NC0zMS4wOS0yOC44NC01My4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2lzc0JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptLTM5IDIxOS45bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjMtNDIuMSAzMi4yLTcxLjQgNTYtNzEuNHM1Mi43IDI5LjMgNTYgNzEuNGMuNSA4LjUtMTAuOSAxMi0xNS4xIDQuNXpNMzA0IDM5NmMwIDE5LjItMjguNyA0MS41LTcxLjUgNDQtOC41LjgtMTIuMS0xMS44LTMuNi0xNS40bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy02LTIuNS02LjEtMTIuMiAwLTE0LjhsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTguNi0zLjYtNC44LTE2LjUgMy42LTE1LjQgNDIuOCAyLjUgNzEuNSAyNC44IDcxLjUgNDQgMCAxMy0xMy40IDI3LjMtMzUuMiAzNkMyOTAuNiAzNjguNyAzMDQgMzgzIDMwNCAzOTZ6bTY1LTE2OC4xbC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjEgNy4zLTE1LjYgNC0xNC45LTQuNSAzLjMtNDIuMSAzMi4yLTcxLjQgNTYtNzEuNHM1Mi43IDI5LjMgNTYgNzEuNGMuNSA4LjUtMTAuOSAxMi0xNS4xIDQuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2lzc1dpbmtIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTA0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDEuMSA0MDIuNWMtOC0yMC44LTMxLjUtMzEuNS01My4xLTI1LjlsLTguNCAyLjItMi4zLTguNGMtNS45LTIxLjQtMjctMzYuNS00OS0zMy0yNS4yIDQtNDAuNiAyOC42LTM0IDUyLjZsMjIuOSA4Mi42YzEuNSA1LjMgNyA4LjUgMTIuNCA3LjFsODMtMjEuNWMyNC4xLTYuMyAzNy43LTMxLjggMjguNS01NS43em0tMTc3LjYtNGMtNS42LTIwLjMtMi4zLTQyIDktNTkuNyAyOS43LTQ2LjMgOTguNy00NS41IDEyNy44IDQuMyA2LjQuMSAxMi42IDEuNCAxOC42IDIuOSAxMC45LTI3LjkgMTcuMS01OC4yIDE3LjEtOTBDNDk2IDExOSAzODUgOCAyNDggOFMwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDhjMzUuNCAwIDY4LjktNy41IDk5LjQtMjAuOS0uMy0uNy0yMy45LTg0LjYtMjMuOS04NC42ek0xNjggMjQwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTIwIDE1NmMwIDE5LjItMjguNyA0MS41LTcxLjUgNDQtOC41LjgtMTIuMS0xMS44LTMuNi0xNS40bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy02LTIuNS01LjctMTIuMyAwLTE0LjhsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTguOC0zLjctNC42LTE2LjYgMy42LTE1LjQgNDIuOCAyLjUgNzEuNSAyNC44IDcxLjUgNDQgMCAxMy0xMy40IDI3LjMtMzUuMiAzNkMyNzQuNiAzNjguNyAyODggMzgzIDI4OCAzOTZ6bTE2LTE3OWMtOC4zIDcuNC0yMS42LjQtMTkuOC0xMC44IDQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xUzQwMCAxODEgNDA0IDIwNi4yYzEuNyAxMS4xLTExLjMgMTguMy0xOS44IDEwLjhsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwzMDQgMjE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFLaXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAyMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMzYgMTU2YzAgMTkuMi0yOC43IDQxLjUtNzEuNSA0NC04LjUuOC0xMi4xLTExLjgtMy42LTE1LjRsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTYtMi41LTYuMS0xMi4yIDAtMTQuOGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtOC42LTMuNi00LjgtMTYuNSAzLjYtMTUuNCA0Mi44IDIuNSA3MS41IDI0LjggNzEuNSA0NCAwIDEzLTEzLjQgMjcuMy0zNS4yIDM2QzI5MC42IDM2OC43IDMwNCAzODMgMzA0IDM5NnptMjQtMTU2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhS2l3aUJpcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTc1LjgxIDIxNy45OEM1NzIuNjQgMTU3LjQxIDUxOC4yOCAxMTIgNDU3LjYzIDExMmgtOS4zN2MtNTIuODIgMC0xMDQuMjUtMTYuMjUtMTQ3Ljc0LTQ2LjI0LTQxLjk5LTI4Ljk2LTk2LjA0LTQxLjYyLTE1My4yMS0yOC43QzEyOS4zIDQxLjEyLS4wOCA3OC4yNCAwIDIyNGMuMDQgNzAuOTUgMzguNjggMTMyLjggOTUuOTkgMTY2LjAxVjQ2NGMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNTQuMjZjMTUuMzYgMy45NiAzMS40IDYuMjYgNDggNi4yNiA1LjQ0IDAgMTAuNjgtLjczIDE2LTEuMThWNDY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01OS40M2MxNC4yNC01LjA2IDI3Ljg4LTExLjM5IDQwLjM0LTE5LjUxQzM0Mi4wNyAzNTUuMjUgMzkzLjg2IDMzNiA0NDguNDYgMzM2YzI1LjQ4IDAgMTYuMDEtLjMxIDIzLjA1LS43OGw3NC40MSAxMzYuNDRjMi44NiA1LjIzIDguMyA4LjM0IDE0LjA1IDguMzQgMS4zMSAwIDIuNjQtLjE2IDMuOTUtLjUgNy4wOS0xLjggMTIuMDUtOC4xOSAxMi4wNS0xNS41IDAgMCAuMTQtMjQwLjI0LS4xNi0yNDYuMDJ6TTQ2My45NyAyNDhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em04MCAxNTMuMjVsLTM5Ljg2LTczLjA4YzE1LjEyLTUuODMgMjguNzMtMTQuNiAzOS44Ni0yNS45OHY5OS4wNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZG1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjYyIDkyLjExTDI2Ny4yNCAyLjA0YTMxLjk1OCAzMS45NTggMCAwIDAtMjIuNDcgMEwxMC4zOCA5Mi4xMUExNi4wMDEgMTYuMDAxIDAgMCAwIDAgMTA3LjA5VjE0NGMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTM2LjkxYzAtNi42Ny00LjE0LTEyLjY0LTEwLjM4LTE0Ljk4ek02NCAxOTJ2MTYwSDQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGg0NDh2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNlYxOTJoLTY0djE2MGgtOTZWMTkyaC02NHYxNjBoLTk2VjE5Mkg2NHptNDMyIDI1NkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDgwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGFuZ3VhZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTUyLjEgMjM2LjJjLTMuNS0xMi4xLTcuOC0zMy4yLTcuOC0zMy4yaC0uNXMtNC4zIDIxLjEtNy44IDMzLjJsLTExLjEgMzcuNUgxNjN6TTYxNiA5NkgzMzZ2MzIwaDI4MGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bS0yNCAxMjBjMCA2LjYtNS40IDEyLTEyIDEyaC0xMS40Yy02LjkgMjMuNi0yMS43IDQ3LjQtNDIuNyA2OS45IDguNCA2LjQgMTcuMSAxMi41IDI2LjEgMTggNS41IDMuNCA3LjMgMTAuNSA0LjEgMTYuMmwtNy45IDEzLjljLTMuNCA1LjktMTAuOSA3LjgtMTYuNyA0LjMtMTIuNi03LjgtMjQuNS0xNi4xLTM1LjQtMjQuOS0xMC45IDguNy0yMi43IDE3LjEtMzUuNCAyNC45LTUuOCAzLjUtMTMuMyAxLjYtMTYuNy00LjNsLTcuOS0xMy45Yy0zLjItNS42LTEuNC0xMi44IDQuMi0xNi4yIDkuMy01LjcgMTgtMTEuNyAyNi4xLTE4LTcuOS04LjQtMTQuOS0xNy0yMS0yNS43LTQtNS43LTIuMi0xMy42IDMuNy0xNy4xbDYuNS0zLjkgNy4zLTQuM2M1LjQtMy4yIDEyLjQtMS43IDE2IDMuNCA1IDcgMTAuOCAxNCAxNy40IDIwLjkgMTMuNS0xNC4yIDIzLjgtMjguOSAzMC00My4ySDQxMmMtNi42IDAtMTItNS40LTEyLTEydi0xNmMwLTYuNiA1LjQtMTIgMTItMTJoNjR2LTE2YzAtNi42IDUuNC0xMiAxMi0xMmgxNmM2LjYgMCAxMiA1LjQgMTIgMTJ2MTZoNjRjNi42IDAgMTIgNS40IDEyIDEyek0wIDEyMHYyNzJjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjgwVjk2SDI0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHptNTguOSAyMTYuMUwxMTYuNCAxNjdjMS43LTQuOSA2LjItOC4xIDExLjQtOC4xaDMyLjVjNS4xIDAgOS43IDMuMyAxMS40IDguMWw1Ny41IDE2OS4xYzIuNiA3LjgtMy4xIDE1LjktMTEuNCAxNS45aC0yMi45YTEyIDEyIDAgMCAxLTExLjUtOC42bC05LjQtMzEuOWgtNjAuMmwtOS4xIDMxLjhjLTEuNSA1LjEtNi4yIDguNy0xMS41IDguN0g3MC4zYy04LjIgMC0xNC04LjEtMTEuNC0xNS45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3BDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS4wMyAyNjEuNjVjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwxMS4zMS0xMS4zMWM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDI1My4yNSAxOTJsMzUuNzEtMzUuNzJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMTEuMzEtMTEuMzFjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTU4LjM0IDU4LjM0Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDU4LjM1IDU4LjM0em05Ni4wMS0xMS4zbDExLjMxIDExLjMxYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsNTguMzQtNTguMzRjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtNTguMzQtNTguMzRjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzTDM4Ni43NSAxOTJsLTM1LjcxIDM1LjcyYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzek02MjQgNDE2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy4wMi0xNy40Ny0zMi43Ny0zMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDUxMmMzNS4yIDAgNjQtMjguOCA2NC02NHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek01NzYgNDhjMC0yNi40LTIxLjYtNDgtNDgtNDhIMTEyQzg1LjYgMCA2NCAyMS42IDY0IDQ4djMzNmg1MTJWNDh6bS02NCAyNzJIMTI4VjY0aDM4NHYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhcHRvcEhvdXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiwyODhIMjA4YTE2LDE2LDAsMCwxLTE2LTE2VjIwOGExNiwxNiwwLDAsMSwxNi0xNmg2NGExNiwxNiwwLDAsMSwxNiwxNnYzNy4xMkMyOTkuMTEsMjMyLjI0LDMxNSwyMjQsMzMyLjgsMjI0SDQ2OS43NGw2LjY1LTcuNTNBMTYuNTEsMTYuNTEsMCwwLDAsNDgwLDIwN2ExNi4zMSwxNi4zMSwwLDAsMC00Ljc1LTEwLjYxTDQxNiwxNDRWNDhhMTYsMTYsMCwwLDAtMTYtMTZIMzY4YTE2LDE2LDAsMCwwLTE2LDE2Vjg3LjNMMjYzLjUsOC45MkMyNTgsNCwyNDcuNDUsMCwyNDAuMDUsMHMtMTcuOTMsNC0yMy40Nyw4LjkyTDQuNzgsMTk2LjQyQTE2LjE1LDE2LjE1LDAsMCwwLDAsMjA3YTE2LjQsMTYuNCwwLDAsMCwzLjU1LDkuMzlMMjIuMzQsMjM3LjdBMTYuMjIsMTYuMjIsMCwwLDAsMzMsMjQyLjQ4LDE2LjUxLDE2LjUxLDAsMCwwLDQyLjM0LDIzOUw2NCwyMTkuODhWMzg0YTMyLDMyLDAsMCwwLDMyLDMySDI3MlpNNjI5LjMzLDQ0OEg1OTJWMjg4YzAtMTcuNjctMTIuODktMzItMjguOC0zMkgzMzIuOGMtMTUuOTEsMC0yOC44LDE0LjMzLTI4LjgsMzJWNDQ4SDI2Ni42N0ExMC42NywxMC42NywwLDAsMCwyNTYsNDU4LjY3djEwLjY2QTQyLjgyLDQyLjgyLDAsMCwwLDI5OC42LDUxMkg1OTcuNEE0Mi44Miw0Mi44MiwwLDAsMCw2NDAsNDY5LjMzVjQ1OC42N0ExMC42NywxMC42NywwLDAsMCw2MjkuMzMsNDQ4Wk01NDQsNDQ4SDM1MlYzMDRINTQ0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3BNZWRpY2FsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIzMiAyMjRoNTZ2NTZhOCA4IDAgMCAwIDggOGg0OGE4IDggMCAwIDAgOC04di01Nmg1NmE4IDggMCAwIDAgOC04di00OGE4IDggMCAwIDAtOC04aC01NnYtNTZhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHY1NmgtNTZhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4ek01NzYgNDhhNDguMTQgNDguMTQgMCAwIDAtNDgtNDhIMTEyYTQ4LjE0IDQ4LjE0IDAgMCAwLTQ4IDQ4djMzNmg1MTJ6bS02NCAyNzJIMTI4VjY0aDM4NHptMTEyIDk2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy0xNy40Ny0zMi43Ny0zMkgxNmExNiAxNiAwIDAgMC0xNiAxNnYxNmE2NC4xOSA2NC4xOSAwIDAgMCA2NCA2NGg1MTJhNjQuMTkgNjQuMTkgMCAwIDAgNjQtNjR2LTE2YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXB0b3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQxNkgzODEuNTRjLS43NCAxOS44MS0xNC43MSAzMi0zMi43NCAzMkgyODhjLTE4LjY5IDAtMzMuMDItMTcuNDctMzIuNzctMzJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDM1LjIgMjguOCA2NCA2NCA2NGg1MTJjMzUuMiAwIDY0LTI4LjggNjQtNjR2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNNTc2IDQ4YzAtMjYuNC0yMS42LTQ4LTQ4LTQ4SDExMkM4NS42IDAgNjQgMjEuNiA2NCA0OHYzMzZoNTEyVjQ4em0tNjQgMjcySDEyOFY2NGgzODR2MjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXVnaEJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMjQgMTk5LjRjMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS44IDQuMS0xNS4xLTQuNXptLTE2MCAwYzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMyA3LjQtMTUuOCA0LTE1LjEtNC41ek0zOTguOSAzMDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhdWdoU3F1aW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTMzLjggMTYxLjdsODAtNDhjMTEuNi02LjkgMjQgNy43IDE1LjQgMThMMzQzLjYgMTgwbDMzLjYgNDAuM2M4LjcgMTAuNC0zLjkgMjQuOC0xNS40IDE4bC04MC00OGMtNy43LTQuNy03LjctMTUuOSAwLTIwLjZ6bS0xNjMtMzBjLTguNi0xMC4zIDMuOC0yNC45IDE1LjQtMThsODAgNDhjNy44IDQuNyA3LjggMTUuOSAwIDIwLjZsLTgwIDQ4Yy0xMS41IDYuOC0yNC03LjYtMTUuNC0xOGwzMy42LTQwLjMtMzMuNi00MC4zek0zOTguOSAzMDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxhdWdoV2luayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0yMC4xIDE5OC4xYzQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xczU1LjkgMTYuOSA1OS45IDQyLjFjMS43IDExLjEtMTEuNCAxOC4zLTE5LjggMTAuOGwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDI4OCAyMTdjLTguNCA3LjQtMjEuNi4zLTE5LjktMTAuOXpNMTY4IDE2MGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTIzMC45IDE0NkMzOTAgMzc3IDMyOS40IDQzMiAyNTYgNDMyaC0xNmMtNzMuNCAwLTEzNC01NS0xNDIuOS0xMjYtMS4yLTkuNSA2LjMtMTggMTUuOS0xOGgyNzBjOS42IDAgMTcuMSA4LjQgMTUuOSAxOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGF1Z2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTUyYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptLTE2MCAwYzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptODggMjcyaC0xNmMtNzMuNCAwLTEzNC01NS0xNDIuOS0xMjYtMS4yLTkuNSA2LjMtMTggMTUuOS0xOGgyNzBjOS42IDAgMTcuMSA4LjQgMTUuOSAxOC04LjkgNzEtNjkuNSAxMjYtMTQyLjkgMTI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMYXllckdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyLjQxIDE0OC4wMmwyMzIuOTQgMTA1LjY3YzYuOCAzLjA5IDE0LjQ5IDMuMDkgMjEuMjkgMGwyMzIuOTQtMTA1LjY3YzE2LjU1LTcuNTEgMTYuNTUtMzIuNTIgMC00MC4wM0wyNjYuNjUgMi4zMWEyNS42MDcgMjUuNjA3IDAgMCAwLTIxLjI5IDBMMTIuNDEgMTA3Ljk4Yy0xNi41NSA3LjUxLTE2LjU1IDMyLjUzIDAgNDAuMDR6bTQ4Ny4xOCA4OC4yOGwtNTguMDktMjYuMzMtMTYxLjY0IDczLjI3Yy03LjU2IDMuNDMtMTUuNTkgNS4xNy0yMy44NiA1LjE3cy0xNi4yOS0xLjc0LTIzLjg2LTUuMTdMNzAuNTEgMjA5Ljk3bC01OC4xIDI2LjMzYy0xNi41NSA3LjUtMTYuNTUgMzIuNSAwIDQwbDIzMi45NCAxMDUuNTljNi44IDMuMDggMTQuNDkgMy4wOCAyMS4yOSAwTDQ5OS41OSAyNzYuM2MxNi41NS03LjUgMTYuNTUtMzIuNSAwLTQwem0wIDEyNy44bC01Ny44Ny0yNi4yMy0xNjEuODYgNzMuMzdjLTcuNTYgMy40My0xNS41OSA1LjE3LTIzLjg2IDUuMTdzLTE2LjI5LTEuNzQtMjMuODYtNS4xN0w3MC4yOSAzMzcuODcgMTIuNDEgMzY0LjFjLTE2LjU1IDcuNS0xNi41NSAzMi41IDAgNDBsMjMyLjk0IDEwNS41OWM2LjggMy4wOCAxNC40OSAzLjA4IDIxLjI5IDBMNDk5LjU5IDQwNC4xYzE2LjU1LTcuNSAxNi41NS0zMi41IDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxlYWYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ2LjIgOS43Yy01LjYtMTIuNS0yMS42LTEzLTI4LjMtMS4yQzQ4Ni45IDYyLjQgNDMxLjQgOTYgMzY4IDk2aC04MEMxODIgOTYgOTYgMTgyIDk2IDI4OGMwIDcgLjggMTMuNyAxLjUgMjAuNUMxNjEuMyAyNjIuOCAyNTMuNCAyMjQgMzg0IDIyNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNkMxMzIuNiAyNTYgMjYgNDEwLjEgMi40IDQ2OGMtNi42IDE2LjMgMS4yIDM0LjkgMTcuNSA0MS42IDE2LjQgNi44IDM1LTEuMSA0MS44LTE3LjMgMS41LTMuNiAyMC45LTQ3LjkgNzEuOS05MC42IDMyLjQgNDMuOSA5NCA4NS44IDE3NC45IDc3LjJDNDY1LjUgNDY3LjUgNTc2IDMyNi43IDU3NiAxNTQuM2MwLTUwLjItMTAuOC0xMDIuMi0yOS44LTE0NC42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZW1vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODkuMDM4IDIyLjk2M0M0NjUuOTQ0LS4xMyA0MzQuNjQ4LTUuOTMgNDEzLjk0NyA2LjEyOWMtNTguOTA2IDM0LjMxMi0xODEuMjUtNTMuMDc3LTMyMS4wNzMgODYuNzQ2UzQwLjQ0MSAzNTUuMDQxIDYuMTI5IDQxMy45NDVjLTEyLjA1OSAyMC43MDItNi4yNiA1MS45OTkgMTYuODMzIDc1LjA5MyAyMy4wOTUgMjMuMDk1IDU0LjM5MiAyOC44OTEgNzUuMDk1IDE2LjgzMiA1OC45MDEtMzQuMzEgMTgxLjI0NiA1My4wNzkgMzIxLjA2OC04Ni43NDNTNDcxLjU2IDE1Ni45NiA1MDUuODcxIDk4LjA1NmMxMi4wNTktMjAuNzAyIDYuMjYxLTUxLjk5OS0xNi44MzMtNzUuMDkzek0yNDMuODgxIDk1LjUyMmMtNTguMTg5IDE0LjU0Ny0xMzMuODA4IDkwLjE1NS0xNDguMzU4IDE0OC4zNTgtMS44MTcgNy4yNy04LjM0MiAxMi4xMjQtMTUuNTExIDEyLjEyNC0xLjI4NCAwLTIuNTktLjE1Ni0zLjg5My0uNDgxLTguNTcyLTIuMTQ0LTEzLjc4NC0xMC44My0xMS42NDItMTkuNDAzQzgxLjkwMSAxNjYuNDI3IDE2Ni4zMTYgODEuOTMgMjM2LjExOSA2NC40NzhjOC41NzUtMi4xNDMgMTcuMjYxIDMuMDY5IDE5LjQwMyAxMS42NDJzLTMuMDY5IDE3LjI1OS0xMS42NDEgMTkuNDAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzVGhhbkVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0Ljk4IDIxNC4ybDMwMS40MSAxMTkuODdjMTguMzkgNi4wMyAzOC43MS0yLjU0IDQ1LjM4LTE5LjE1bDEyLjA5LTMwLjA4YzYuNjgtMTYuNjEtMi44Mi0zNC45Ny0yMS4yMS00MWwtMTc1LjQ0LTY4LjA1IDE3NS41Ni02OC4wOWMxOC4yOS02IDI3Ljc0LTI0LjI3IDIxLjEtNDAuNzlsLTEyLjAzLTI5LjkyYy02LjY0LTE2LjUzLTI2Ljg2LTI1LjA2LTQ1LjE1LTE5LjA2TDU0Ljk4IDEzNy44OUM0MS4yMSAxNDIuNDEgMzIgMTU0LjUgMzIgMTY4LjA3djE1Ljk2YzAgMTMuNTYgOS4yMSAyNS42NSAyMi45OCAzMC4xN3pNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMZXNzVGhhbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjUuNDYgMzU3Ljc0TDE0Ny4wNCAyNTUuODlsMjE4LjQ3LTEwMS44OGMxNi4wMi03LjQ3IDIyLjk1LTI2LjUxIDE1LjQ4LTQyLjUzbC0xMy41Mi0yOUMzNjAgNjYuNDYgMzQwLjk2IDU5LjUzIDMyNC45NCA2N0wxOC40OCAyMDkuOTFhMzIuMDE0IDMyLjAxNCAwIDAgMC0xOC40OCAyOXYzNC4yNGMwIDEyLjQ0IDcuMjEgMjMuNzUgMTguNDggMjlsMzA2LjMxIDE0Mi44M2MxNi4wNiA3LjQ5IDM1LjE1LjU0IDQyLjY0LTE1LjUybDEzLjU2LTI5LjA4YzcuNDktMTYuMDYuNTQtMzUuMTUtMTUuNTMtNDIuNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxldmVsRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNTUzIDM5Mi4zMzFMMjA5LjU4NyA1MDQuMzM0Yy05LjQ4NSAxMC4yMTQtMjUuNjc2IDEwLjIyOS0zNS4xNzQgMEw3MC40MzggMzkyLjMzMUM1Ni4yMzIgMzc3LjAzMSA2Ny4wNjIgMzUyIDg4LjAyNSAzNTJIMTUyVjgwSDY4LjAyNGExMS45OTYgMTEuOTk2IDAgMCAxLTguNDg1LTMuNTE1bC01Ni01NkMtNC4wMjEgMTIuOTI2IDEuMzMzIDAgMTIuMDI0IDBIMjA4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYzMjhoNjMuOTY2YzIwLjg3OCAwIDMxLjg1MSAyNC45NjkgMTcuNTg3IDQwLjMzMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGV2ZWxVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNTUzIDExOS42NjlMMjA5LjU4NyA3LjY2NmMtOS40ODUtMTAuMjE0LTI1LjY3Ni0xMC4yMjktMzUuMTc0IDBMNzAuNDM4IDExOS42NjlDNTYuMjMyIDEzNC45NjkgNjcuMDYyIDE2MCA4OC4wMjUgMTYwSDE1MnYyNzJINjguMDI0YTExLjk5NiAxMS45OTYgMCAwIDAtOC40ODUgMy41MTVsLTU2IDU2Qy00LjAyMSA0OTkuMDc0IDEuMzMzIDUxMiAxMi4wMjQgNTEySDIwOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwaDYzLjk2NmMyMC44NzggMCAzMS44NTEtMjQuOTY5IDE3LjU4Ny00MC4zMzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpZmVSaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMTczLjY5NiAxMTkuNTU5bC02My4zOTkgNjMuMzk5Yy0xMC45ODctMTguNTU5LTI2LjY3LTM0LjI1Mi00NS4yNTUtNDUuMjU1bDYzLjM5OS02My4zOTlhMjE4LjM5NiAyMTguMzk2IDAgMCAxIDQ1LjI1NSA0NS4yNTV6TTI1NiAzNTJjLTUzLjAxOSAwLTk2LTQyLjk4MS05Ni05NnM0Mi45ODEtOTYgOTYtOTYgOTYgNDIuOTgxIDk2IDk2LTQyLjk4MSA5Ni05NiA5NnpNMTI3LjU1OSA4Mi4zMDRsNjMuMzk5IDYzLjM5OWMtMTguNTU5IDEwLjk4Ny0zNC4yNTIgMjYuNjctNDUuMjU1IDQ1LjI1NWwtNjMuMzk5LTYzLjM5OWEyMTguMzcyIDIxOC4zNzIgMCAwIDEgNDUuMjU1LTQ1LjI1NXpNODIuMzA0IDM4NC40NDFsNjMuMzk5LTYzLjM5OWMxMC45ODcgMTguNTU5IDI2LjY3IDM0LjI1MiA0NS4yNTUgNDUuMjU1bC02My4zOTkgNjMuMzk5YTIxOC4zOTYgMjE4LjM5NiAwIDAgMS00NS4yNTUtNDUuMjU1em0zMDIuMTM3IDQ1LjI1NWwtNjMuMzk5LTYzLjM5OWMxOC41NTktMTAuOTg3IDM0LjI1Mi0yNi42NyA0NS4yNTUtNDUuMjU1bDYzLjM5OSA2My4zOTlhMjE4LjQwMyAyMTguNDAzIDAgMCAxLTQ1LjI1NSA0NS4yNTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpZ2h0YnVsYiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzUyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05Ni4wNiA0NTQuMzVjLjAxIDYuMjkgMS44NyAxMi40NSA1LjM2IDE3LjY5bDE3LjA5IDI1LjY5YTMxLjk5IDMxLjk5IDAgMCAwIDI2LjY0IDE0LjI4aDYxLjcxYTMxLjk5IDMxLjk5IDAgMCAwIDI2LjY0LTE0LjI4bDE3LjA5LTI1LjY5YTMxLjk4OSAzMS45ODkgMCAwIDAgNS4zNi0xNy42OWwuMDQtMzguMzVIOTYuMDFsLjA1IDM4LjM1ek0wIDE3NmMwIDQ0LjM3IDE2LjQ1IDg0Ljg1IDQzLjU2IDExNS43OCAxNi41MiAxOC44NSA0Mi4zNiA1OC4yMyA1Mi4yMSA5MS40NS4wNC4yNi4wNy41Mi4xMS43OGgxNjAuMjRjLjA0LS4yNi4wNy0uNTEuMTEtLjc4IDkuODUtMzMuMjIgMzUuNjktNzIuNiA1Mi4yMS05MS40NUMzMzUuNTUgMjYwLjg1IDM1MiAyMjAuMzcgMzUyIDE3NiAzNTIgNzguNjEgMjcyLjkxLS4zIDE3NS40NSAwIDczLjQ0LjMxIDAgODIuOTcgMCAxNzZ6bTE3Ni04MGMtNDQuMTEgMC04MCAzNS44OS04MCA4MCAwIDguODQtNy4xNiAxNi0xNiAxNnMtMTYtNy4xNi0xNi0xNmMwLTYxLjc2IDUwLjI0LTExMiAxMTItMTEyIDguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyNi42MTIgMTg1LjM5MWM1OS43NDcgNTkuODA5IDU4LjkyNyAxNTUuNjk4LjM2IDIxNC41OS0uMTEuMTItLjI0LjI1LS4zNi4zN2wtNjcuMiA2Ny4yYy01OS4yNyA1OS4yNy0xNTUuNjk5IDU5LjI2Mi0yMTQuOTYgMC01OS4yNy01OS4yNi01OS4yNy0xNTUuNyAwLTIxNC45NmwzNy4xMDYtMzcuMTA2YzkuODQtOS44NCAyNi43ODYtMy4zIDI3LjI5NCAxMC42MDYuNjQ4IDE3LjcyMiAzLjgyNiAzNS41MjcgOS42OSA1Mi43MjEgMS45ODYgNS44MjIuNTY3IDEyLjI2Mi0zLjc4MyAxNi42MTJsLTEzLjA4NyAxMy4wODdjLTI4LjAyNiAyOC4wMjYtMjguOTA1IDczLjY2LTEuMTU1IDEwMS45NiAyOC4wMjQgMjguNTc5IDc0LjA4NiAyOC43NDkgMTAyLjMyNS41MWw2Ny4yLTY3LjE5YzI4LjE5MS0yOC4xOTEgMjguMDczLTczLjc1NyAwLTEwMS44My0zLjcwMS0zLjY5NC03LjQyOS02LjU2NC0xMC4zNDEtOC41NjlhMTYuMDM3IDE2LjAzNyAwIDAgMS02Ljk0Ny0xMi42MDZjLS4zOTYtMTAuNTY3IDMuMzQ4LTIxLjQ1NiAxMS42OTgtMjkuODA2bDIxLjA1NC0yMS4wNTVjNS41MjEtNS41MjEgMTQuMTgyLTYuMTk5IDIwLjU4NC0xLjczMWExNTIuNDgyIDE1Mi40ODIgMCAwIDEgMjAuNTIyIDE3LjE5N3pNNDY3LjU0NyA0NC40NDljLTU5LjI2MS01OS4yNjItMTU1LjY5LTU5LjI3LTIxNC45NiAwbC02Ny4yIDY3LjJjLS4xMi4xMi0uMjUuMjUtLjM2LjM3LTU4LjU2NiA1OC44OTItNTkuMzg3IDE1NC43ODEuMzYgMjE0LjU5YTE1Mi40NTQgMTUyLjQ1NCAwIDAgMCAyMC41MjEgMTcuMTk2YzYuNDAyIDQuNDY4IDE1LjA2NCAzLjc4OSAyMC41ODQtMS43MzFsMjEuMDU0LTIxLjA1NWM4LjM1LTguMzUgMTIuMDk0LTE5LjIzOSAxMS42OTgtMjkuODA2YTE2LjAzNyAxNi4wMzcgMCAwIDAtNi45NDctMTIuNjA2Yy0yLjkxMi0yLjAwNS02LjY0LTQuODc1LTEwLjM0MS04LjU2OS0yOC4wNzMtMjguMDczLTI4LjE5MS03My42MzkgMC0xMDEuODNsNjcuMi02Ny4xOWMyOC4yMzktMjguMjM5IDc0LjMtMjguMDY5IDEwMi4zMjUuNTEgMjcuNzUgMjguMyAyNi44NzIgNzMuOTM0LTEuMTU1IDEwMS45NmwtMTMuMDg3IDEzLjA4N2MtNC4zNSA0LjM1LTUuNzY5IDEwLjc5LTMuNzgzIDE2LjYxMiA1Ljg2NCAxNy4xOTQgOS4wNDIgMzQuOTk5IDkuNjkgNTIuNzIxLjUwOSAxMy45MDYgMTcuNDU0IDIwLjQ0NiAyNy4yOTQgMTAuNjA2bDM3LjEwNi0zNy4xMDZjNTkuMjcxLTU5LjI1OSA1OS4yNzEtMTU1LjY5OS4wMDEtMjE0Ljk1OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlyYVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcxLjk5NCAyNTZoLTQ4LjAxOUMzMTcuNjQgMjU2IDMxMiAyNjAuOTEyIDMxMiAyNjcuMjQ2IDMxMiAzNjggMjMwLjE3OSA0MTYgMTQ0IDQxNlYyNTYuNzgxbDEzNC42MDMtMjkuOTEyQTEyIDEyIDAgMCAwIDI4OCAyMTUuMTU1di00MC45NzZjMC03LjY3Ny03LjEwOS0xMy4zOC0xNC42MDMtMTEuNzE0TDE0NCAxOTEuMjE5VjE2MC43OGwxMzQuNjAzLTI5LjkxMkExMiAxMiAwIDAgMCAyODggMTE5LjE1NFY3OC4xNzljMC03LjY3Ny03LjEwOS0xMy4zOC0xNC42MDMtMTEuNzE0TDE0NCA5NS4yMTlWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY2OC45OTdMOS4zOTcgMTI1LjEzMUExMiAxMiAwIDAgMCAwIDEzNi44NDV2NDAuOTc2YzAgNy42NzcgNy4xMDkgMTMuMzggMTQuNjAzIDExLjcxNEw2NCAxNzguNTU4djMwLjQzOUw5LjM5NyAyMjEuMTMxQTEyIDEyIDAgMCAwIDAgMjMyLjg0NXY0MC45NzZjMCA3LjY3NyA3LjEwOSAxMy4zOCAxNC42MDMgMTEuNzE0TDY0IDI3NC41NThWNDY4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzkuNTgzYzEzNC4wOTEgMCAyMjMuMjU1LTc3LjgzNCAyMjguNDA4LTIxMS41OTIuMjYxLTYuNzgyLTUuMjExLTEyLjQwOC0xMS45OTctMTIuNDA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTI4IDEyMGMtMjIuMDkxIDAtNDAgMTcuOTA5LTQwIDQwczE3LjkwOSA0MCA0MCA0MCA0MC0xNy45MDkgNDAtNDAtMTcuOTA5LTQwLTQwLTQwem0wIDk2Yy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6bTAgOTZjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHptMjg4LTEzNnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTGlzdE9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYxLjc3IDQwMWwxNy41LTIwLjE1YTE5LjkyIDE5LjkyIDAgMCAwIDUuMDctMTQuMTl2LTMuMzFDODQuMzQgMzU2IDgwLjUgMzUyIDczIDM1MkgxNmE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDhoMjIuODNhMTU3LjQxIDE1Ny40MSAwIDAgMC0xMSAxMi4zMWwtNS42MSA3Yy00IDUuMDctNS4yNSAxMC4xMy0yLjggMTQuODhsMS4wNSAxLjkzYzMgNS43NiA2LjI5IDcuODggMTIuMjUgNy44OGg0LjczYzEwLjMzIDAgMTUuOTQgMi40NCAxNS45NCA5LjA5IDAgNC43Mi00LjIgOC4yMi0xNC4zNiA4LjIyYTQxLjU0IDQxLjU0IDAgMCAxLTE1LjQ3LTMuMTJjLTYuNDktMy44OC0xMS43NC0zLjUtMTUuNiAzLjEybC01LjU5IDkuMzFjLTMuNzIgNi4xMy0zLjE5IDExLjcyIDIuNjMgMTUuOTQgNy43MSA0LjY5IDIwLjM4IDkuNDQgMzcgOS40NCAzNC4xNiAwIDQ4LjUtMjIuNzUgNDguNS00NC4xMi0uMDMtMTQuMzgtOS4xMi0yOS43Ni0yOC43My0zNC44OHpNNDk2IDIyNEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAzMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTE2IDE2MGg2NGE4IDggMCAwIDAgOC04di0xNmE4IDggMCAwIDAtOC04SDY0VjQwYTggOCAwIDAgMC04LThIMzJhOCA4IDAgMCAwLTcuMTQgNC40MmwtOCAxNkE4IDggMCAwIDAgMjQgNjRoOHY2NEgxNmE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDh6bS0zLjkxIDE2MEg4MGE4IDggMCAwIDAgOC04di0xNmE4IDggMCAwIDAtOC04SDQxLjMyYzMuMjktMTAuMjkgNDguMzQtMTguNjggNDguMzQtNTYuNDQgMC0yOS4wNi0yNS0zOS41Ni00NC40Ny0zOS41Ni0yMS4zNiAwLTMzLjggMTAtNDAuNDYgMTguNzUtNC4zNyA1LjU5LTMgMTAuODQgMi44IDE1LjM3bDguNTggNi44OGM1LjYxIDQuNTYgMTEgMi40NyAxNi4xMi0yLjQ0YTEzLjQ0IDEzLjQ0IDAgMCAxIDkuNDYtMy44NGMzLjMzIDAgOS4yOCAxLjU2IDkuMjggOC43NUM1MSAyNDguMTkgMCAyNTcuMzEgMCAzMDQuNTl2NEMwIDMxNiA1LjA4IDMyMCAxMi4wOSAzMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxpc3RVbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OCA0OGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptMCAxNjBhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTAgMTYwYTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em00NDggMTZIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMaXN0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTgwIDM2OEgxNmExNiAxNiAwIDAgMC0xNiAxNnY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDE2QTE2IDE2IDAgMCAwIDAgNjR2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZWNjRhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDE2YTE2IDE2IDAgMCAwLTE2IDE2djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2di02NGExNiAxNiAwIDAgMC0xNi0xNnptNDE2IDE3NkgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvY2F0aW9uQXJyb3cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ0LjUyIDMuNTJMMjguNzQgMTk1LjQyYy00Ny45NyAyMi4zOS0zMS45OCA5Mi43NSAxOS4xOSA5Mi43NWgxNzUuOTF2MTc1LjkxYzAgNTEuMTcgNzAuMzYgNjcuMTcgOTIuNzUgMTkuMTlsMTkxLjktNDE1Ljc4YzE1Ljk5LTM4LjM5LTI1LjU5LTc5Ljk3LTYzLjk3LTYzLjk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb2NrT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MjMuNSAwQzMzOS41LjMgMjcyIDY5LjUgMjcyIDE1My41VjIyNEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTkyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYyNzJjMC0yNi41LTIxLjUtNDgtNDgtNDhoLTQ4di03MS4xYzAtMzkuNiAzMS43LTcyLjUgNzEuMy03Mi45IDQwLS40IDcyLjcgMzIuMSA3Mi43IDcydjgwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0di04MEM1NzYgNjggNTA3LjUtLjMgNDIzLjUgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMjI0aC0yNHYtNzJDMzc2IDY4LjIgMzA3LjggMCAyMjQgMFM3MiA2OC4yIDcyIDE1MnY3Mkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTkyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYyNzJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xMDQgMEgxNTJ2LTcyYzAtMzkuNyAzMi4zLTcyIDcyLTcyczcyIDMyLjMgNzIgNzJ2NzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvbmdBcnJvd0FsdERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDM0NS45NDFWNDRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNTZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzAxLjk0MUg0MS45NDFjLTIxLjM4MiAwLTMyLjA5IDI1Ljg1MS0xNi45NzEgNDAuOTcxbDg2LjA1OSA4Ni4wNTljOS4zNzMgOS4zNzMgMjQuNTY5IDkuMzczIDMzLjk0MSAwbDg2LjA1OS04Ni4wNTljMTUuMTE5LTE1LjExOSA0LjQxMS00MC45NzEtMTYuOTcxLTQwLjk3MUgxNjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvbmdBcnJvd0FsdExlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTM0LjA1OSAyOTZINDM2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTU2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTM0LjA1OXYtNDYuMDU5YzAtMjEuMzgyLTI1Ljg1MS0zMi4wOS00MC45NzEtMTYuOTcxTDcuMDI5IDIzOS4wMjljLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWw4Ni4wNTkgODYuMDU5YzE1LjExOSAxNS4xMTkgNDAuOTcxIDQuNDExIDQwLjk3MS0xNi45NzFWMjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMb25nQXJyb3dBbHRSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuOTQxIDIxNkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDMwMS45NDF2NDYuMDU5YzAgMjEuMzgyIDI1Ljg1MSAzMi4wOSA0MC45NzEgMTYuOTcxbDg2LjA1OS04Ni4wNTljOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxbC04Ni4wNTktODYuMDU5Yy0xNS4xMTktMTUuMTE5LTQwLjk3MS00LjQxMS00MC45NzEgMTYuOTcxVjIxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTG9uZ0Fycm93QWx0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNODggMTY2LjA1OVY0NjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjE2Ni4wNTloNDYuMDU5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxbC04Ni4wNTktODYuMDU5Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBsLTg2LjA1OSA4Ni4wNTljLTE1LjExOSAxNS4xMTktNC40MTEgNDAuOTcxIDE2Ljk3MSA0MC45NzFIODh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYUxvd1Zpc2lvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjkuMzQ0IDIzMS42MzFDNTEyLjk2IDEzNS45NDkgNDA3LjgxIDcyIDI4OCA3MmMtMjguNDY4IDAtNTYuMTAyIDMuNjE5LTgyLjQ1MSAxMC40MDlMMTUyLjc3OCAxMC4yNGMtNy42MDEtMTAuODU4LTIyLjU2NC0xMy41LTMzLjQyMy01LjlsLTEzLjExNCA5LjE3OGMtMTAuODYgNy42MDEtMTMuNTAyIDIyLjU2Ni01LjkgMzMuNDI2bDQzLjEzMSA1OC4zOTVDODkuNDQ5IDEzMS43MyA0MC4yMjggMTc0LjY4MyA2LjY4MiAyMzEuNTgxYy0uMDEuMDE3LS4wMjMuMDMzLS4wMzQuMDUtOC43NjUgMTQuODc1LTguOTY0IDMzLjUyOCAwIDQ4LjczOSAzOC41IDY1LjMzMiA5OS43NDIgMTE1Ljg2MiAxNzIuODU5IDE0MS4zNDlMNTUuMzE2IDI0NC4zMDJBMjcyLjE5NCAyNzIuMTk0IDAgMCAxIDgzLjYxIDIwOC4zOWwxMTkuNCAxNzAuNThoLjAxbDQwLjYzIDU4LjA0YTMzMC4wNTUgMzMwLjA1NSAwIDAgMCA3OC45NCAxLjE3bC0xODkuOTgtMjcxLjRhMjc3LjYyOCAyNzcuNjI4IDAgMCAxIDM4Ljc3Ny0yMS41NjNsMjUxLjgzNiAzNTYuNTQ0YzcuNjAxIDEwLjg1OCAyMi41NjQgMTMuNDk5IDMzLjQyMyA1LjlsMTMuMTE0LTkuMTc4YzEwLjg2LTcuNjAxIDEzLjUwMi0yMi41NjcgNS45LTMzLjQyNmwtNDMuMTItNTguMzc3LS4wMDctLjAwOWM1Ny4xNjEtMjcuOTc4IDEwNC44MzUtNzIuMDQgMTM2LjgxLTEyNi4zMDFhNDcuOTM4IDQ3LjkzOCAwIDAgMCAuMDAxLTQ4LjczOXpNMzkwLjAyNiAzNDUuOTRsLTE5LjA2Ni0yNy4yM2MyNC42ODItMzIuNTY3IDI3LjcxMS03Ni4zNTMgOC44LTExMS42OHYuMDNjMCAyMy42NS0xOS4xNyA0Mi44Mi00Mi44MiA0Mi44Mi0yMy44MjggMC00Mi44Mi0xOS4zNDktNDIuODItNDIuODIgMC0yMy42NSAxOS4xNy00Mi44MiA0Mi44Mi00Mi44MmguMDNjLTI0Ljc1LTEzLjI0OS01My41MjItMTUuNjQzLTc5LjUxLTcuNjhsLTE5LjA2OC0yNy4yMzdDMjUzLjc1OCAxMjMuMzA2IDI3MC40ODggMTIwIDI4OCAxMjBjNzUuMTYyIDAgMTM2IDYwLjgyNiAxMzYgMTM2IDAgMzQuNTA0LTEyLjgzMyA2NS45NzUtMzMuOTc0IDg5Ljk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFMdWdnYWdlQ2FydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMzIwaDMyVjk2aC0zMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxNjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnptMzUyLTMyVjEyOGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0zMnYyMjRoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnptNDggOTZIMTI4VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgMCAwIDcuMTYgMCAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHYzNjhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoODIuOTRjLTEuNzkgNS4wMy0yLjk0IDEwLjM2LTIuOTQgMTYgMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OGMwLTUuNjQtMS4xNS0xMC45Ny0yLjk0LTE2aDE5Ny44OGMtMS43OSA1LjAzLTIuOTQgMTAuMzYtMi45NCAxNiAwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4czQ4LTIxLjQ5IDQ4LTQ4YzAtNS42NC0xLjE1LTEwLjk3LTIuOTQtMTZINjI0YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNDgwIDk2VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djI3MmgxOTJWOTZ6bS00OCAwaC05NlY0OGg5NnY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHVuZ3NWaXJ1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDQsMTUwLjY4VjE2QTE2LDE2LDAsMCwwLDMyOCwwSDMxMmExNiwxNiwwLDAsMC0xNiwxNlYxNTAuNjhhNDYuNDUsNDYuNDUsMCwwLDEsNDgsMFpNMTk1LjU0LDQ0NC40NmE0OC4wNiw0OC4wNiwwLDAsMSwwLTY3Ljg4bDguNTgtOC41OEgxOTJhNDgsNDgsMCwwLDEsMC05NmgxMi4xMmwtOC41OC04LjU3YTQ4LDQ4LDAsMCwxLDYwLjQ2LTc0VjE2MS43NUMyNTYsMTI1LjM4LDIyNC42Miw5NiwxODYsOTZjLTQ0LDAtNTgsMjguNS04MC4xMiw2My4xM2E4MTkuNTIsODE5LjUyLDAsMCwwLTEwMiwyMzFBMTEzLjE2LDExMy4xNiwwLDAsMCwwLDQxOS43NUMwLDQ4MSw2Mi41LDUyNS4yNiwxMjUuMjUsNTA4LjM4bDU5LjUtMTUuODdhOTguNTEsOTguNTEsMCwwLDAsNTIuNS0zNC43NSw0Ni40OSw0Ni40OSwwLDAsMS00MS43MS0xMy4zWm0yMjYuMjktMjIuNjNhMTYsMTYsMCwwLDAsMC0yMi42MmwtOC41OC04LjU4QzM5My4wOSwzNzAuNDcsNDA3LjM3LDMzNiw0MzUuODgsMzM2SDQ0OGExNiwxNiwwLDAsMCwwLTMySDQzNS44OGMtMjguNTEsMC00Mi43OS0zNC40Ny0yMi42My01NC42Mmw4LjU4LTguNThhMTYsMTYsMCwwLDAtMjIuNjMtMjIuNjNsLTguNTcsOC41OEMzNzAuNDcsMjQ2LjkxLDMzNiwyMzIuNjMsMzM2LDIwNC4xMlYxOTJhMTYsMTYsMCwwLDAtMzIsMHYxMi4xMmMwLDI4LjUxLTM0LjQ3LDQyLjc5LTU0LjYzLDIyLjYzbC04LjU3LTguNThhMTYsMTYsMCwwLDAtMjIuNjMsMjIuNjNsOC41OCw4LjU4YzIwLjE2LDIwLjE1LDUuODgsNTQuNjItMjIuNjMsNTQuNjJIMTkyYTE2LDE2LDAsMCwwLDAsMzJoMTIuMTJjMjguNTEsMCw0Mi43OSwzNC40NywyMi42Myw1NC42M2wtOC41OCw4LjU4YTE2LDE2LDAsMSwwLDIyLjYzLDIyLjYybDguNTctOC41N0MyNjkuNTMsMzkzLjEsMzA0LDQwNy4zOCwzMDQsNDM1Ljg4VjQ0OGExNiwxNiwwLDAsMCwzMiwwVjQzNS44OGMwLTI4LjUsMzQuNDctNDIuNzgsNTQuNjMtMjIuNjJsOC41Nyw4LjU3YTE2LDE2LDAsMCwwLDIyLjYzLDBaTTI4OCwzMDRhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMjg4LDMwNFptNjQsNjRhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMzUyLDM2OFptMjg0LjEyLDIyLjEzYTgxOS41Miw4MTkuNTIsMCwwLDAtMTAyLTIzMUM1MTIsMTI0LjUsNDk4LDk2LDQ1NCw5NmMtMzguNjIsMC03MCwyOS4zOC03MCw2NS43NXYyNy43MmE0OCw0OCwwLDAsMSw2MC40Niw3NEw0MzUuODgsMjcySDQ0OGE0OCw0OCwwLDAsMSwwLDk2SDQzNS44OGw4LjU4LDguNThhNDcuNyw0Ny43LDAsMCwxLTQxLjcxLDgxLjE4LDk4LjUxLDk4LjUxLDAsMCwwLDUyLjUsMzQuNzVsNTkuNSwxNS44N0M1NzcuNSw1MjUuMjYsNjQwLDQ4MSw2NDAsNDE5Ljc1QTExMy4xNiwxMTMuMTYsMCwwLDAsNjM2LjEyLDM5MC4xM1pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTHVuZ3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM2LjExIDM5MC4xNUM2MTQuNDQgMzA4Ljg1IDU4MC4wNyAyMzEgNTM0LjEgMTU5LjEzIDUxMS45OCAxMjQuNTYgNDk4LjAzIDk2IDQ1NC4wNSA5NiA0MTUuMzYgOTYgMzg0IDEyNS40MiAzODQgMTYxLjcxdjYwLjExbC0zMi44OC0yMS45MmExNS45OTYgMTUuOTk2IDAgMCAxLTcuMTItMTMuMzFWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNzAuNTljMCA1LjM1LTIuNjcgMTAuMzQtNy4xMiAxMy4zMUwyNTYgMjIxLjgydi02MC4xMUMyNTYgMTI1LjQyIDIyNC42NCA5NiAxODUuOTUgOTZjLTQzLjk4IDAtNTcuOTMgMjguNTYtODAuMDUgNjMuMTNDNTkuOTMgMjMxIDI1LjU2IDMwOC44NSAzLjg5IDM5MC4xNSAxLjMgMzk5Ljg0IDAgNDA5Ljc5IDAgNDE5Ljc4YzAgNjEuMjMgNjIuNDggMTA1LjQ0IDEyNS4yNCA4OC42Mmw1OS41LTE1Ljk1YzQyLjE4LTExLjMgNzEuMjYtNDcuNDcgNzEuMjYtODguNjJ2LTg3LjQ5bC04NS44NCA1Ny4yM2E3Ljk5MiA3Ljk5MiAwIDAgMS0xMS4wOS0yLjIybC04Ljg4LTEzLjMxYTcuOTkyIDcuOTkyIDAgMCAxIDIuMjItMTEuMDlMMzIwIDIzNS4yM2wxNjcuNTkgMTExLjcyYTcuOTk0IDcuOTk0IDAgMCAxIDIuMjIgMTEuMDlsLTguODggMTMuMzFhNy45OTQgNy45OTQgMCAwIDEtMTEuMDkgMi4yMkwzODQgMzE2LjM0djg3LjQ5YzAgNDEuMTUgMjkuMDggNzcuMzEgNzEuMjYgODguNjJsNTkuNSAxNS45NUM1NzcuNTIgNTI1LjIyIDY0MCA0ODEuMDEgNjQwIDQxOS43OGMwLTkuOTktMS4zLTE5Ljk0LTMuODktMjkuNjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hZ2ljIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCA5NmwxNi0zMiAzMi0xNi0zMi0xNi0xNi0zMi0xNiAzMi0zMiAxNiAzMiAxNiAxNiAzMnpNODAgMTYwbDI2LjY2LTUzLjMzTDE2MCA4MGwtNTMuMzQtMjYuNjdMODAgMCA1My4zNCA1My4zMyAwIDgwbDUzLjM0IDI2LjY3TDgwIDE2MHptMzUyIDEyOGwtMjYuNjYgNTMuMzNMMzUyIDM2OGw1My4zNCAyNi42N0w0MzIgNDQ4bDI2LjY2LTUzLjMzTDUxMiAzNjhsLTUzLjM0LTI2LjY3TDQzMiAyODh6bTcwLjYyLTE5My43N0w0MTcuNzcgOS4zOEM0MTEuNTMgMy4xMiA0MDMuMzQgMCAzOTUuMTUgMGMtOC4xOSAwLTE2LjM4IDMuMTItMjIuNjMgOS4zOEw5LjM4IDM3Mi41MmMtMTIuNSAxMi41LTEyLjUgMzIuNzYgMCA0NS4yNWw4NC44NSA4NC44NWM2LjI1IDYuMjUgMTQuNDQgOS4zNyAyMi42MiA5LjM3IDguMTkgMCAxNi4zOC0zLjEyIDIyLjYzLTkuMzdsMzYzLjE0LTM2My4xNWMxMi41LTEyLjQ4IDEyLjUtMzIuNzUgMC00NS4yNHpNMzU5LjQ1IDIwMy40NmwtNTAuOTEtNTAuOTEgODYuNi04Ni42IDUwLjkxIDUwLjkxLTg2LjYgODYuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFnbmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2NC4wNyAxNDguMUgxMmExMiAxMiAwIDAgMS0xMi0xMnYtODBhMzYgMzYgMCAwIDEgMzYtMzZoMTA0YTM2IDM2IDAgMCAxIDM2IDM2djgwYTExLjg5IDExLjg5IDAgMCAxLTExLjkzIDEyem0zNDcuOTMtMTJWNTZhMzYgMzYgMCAwIDAtMzYtMzZIMzcyYTM2IDM2IDAgMCAwLTM2IDM2djgwYTEyIDEyIDAgMCAwIDEyIDEyaDE1MmExMS44OSAxMS44OSAwIDAgMCAxMi0xMS45em0tMTY0IDQ0YTEyIDEyIDAgMCAwLTEyIDEydjUyYzAgMTI4LjEtMTYwIDEyNy45LTE2MCAwdi01MmExMiAxMiAwIDAgMC0xMi0xMkgxMi4xYTEyIDEyIDAgMCAwLTEyIDEyLjFjLjEgMjEuNC42IDQwLjMgMCA1My4zIDAgMTUwLjYgMTM2LjE3IDI0Ni42IDI1Ni43NSAyNDYuNnMyNTUtOTYgMjU1LTI0Ni43Yy0uNi0xMi44LS4yLTMzIDAtNTMuMmExMiAxMiAwIDAgMC0xMi0xMi4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWlsQnVsayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgNDQ4Yy0yNS42IDAtNTEuMi0yMi40LTY0LTMyLTY0LTQ0LjgtODMuMi02MC44LTk2LTcwLjRWNDgwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjU2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzQ1LjZjLTEyLjggOS42LTMyIDI1LjYtOTYgNzAuNC0xMi44IDkuNi0zOC40IDMyLTY0IDMyem0xMjgtMTkySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjE2YzI1LjYgMTkuMiAyMi40IDE5LjIgMTE1LjIgODYuNCA5LjYgNi40IDI4LjggMjUuNiA0NC44IDI1LjZzMzUuMi0xOS4yIDQ0LjgtMjIuNGM5Mi44LTY3LjIgODkuNi02Ny4yIDExNS4yLTg2LjRWMjg4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTI1Ni05NkgyMjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJoOTZjMzMuMjEgMCA2MC41OSAyNS40MiA2My43MSA1Ny44MmwuMjktLjIyVjQxNmgxOTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxOTJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTMyIDEyOGgtNjR2LTY0aDY0djY0em0tMzUyLTk2YzAtMzUuMjkgMjguNzEtNjQgNjQtNjRoMjI0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYxOTJoOTZ2LTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAxOTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDBjMzUuMzQ2IDAgNjQgMjguNjU0IDY0IDY0cy0yOC42NTQgNjQtNjQgNjQtNjQtMjguNjU0LTY0LTY0UzYwLjY1NCAwIDk2IDBtNDggMTQ0aC0xMS4zNmMtMjIuNzExIDEwLjQ0My00OS41OSAxMC44OTQtNzMuMjggMEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYxMzZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2djEzNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjM1MmgxNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTkyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcE1hcmtlZEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMGMtNjkuNTkgMC0xMjYgNTYuNDEtMTI2IDEyNiAwIDU2LjI2IDgyLjM1IDE1OC44IDExMy45IDE5Ni4wMiA2LjM5IDcuNTQgMTcuODIgNy41NCAyNC4yIDBDMzMxLjY1IDI4NC44IDQxNCAxODIuMjYgNDE0IDEyNiA0MTQgNTYuNDEgMzU3LjU5IDAgMjg4IDB6bTAgMTY4Yy0yMy4yIDAtNDItMTguOC00Mi00MnMxOC44LTQyIDQyLTQyIDQyIDE4LjggNDIgNDItMTguOCA0Mi00MiA0MnpNMjAuMTIgMjE1Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAyNDUuNjZ2MjUwLjMyYzAgMTEuMzIgMTEuNDMgMTkuMDYgMjEuOTQgMTQuODZMMTYwIDQ0OFYyMTQuOTJjLTguODQtMTUuOTgtMTYuMDctMzEuNTQtMjEuMjUtNDYuNDJMMjAuMTIgMjE1Ljk1ek0yODggMzU5LjY3Yy0xNC4wNyAwLTI3LjM4LTYuMTgtMzYuNTEtMTYuOTYtMTkuNjYtMjMuMi00MC41Ny00OS42Mi01OS40OS03Ni43MnYxODJsMTkyIDY0VjI2NmMtMTguOTIgMjcuMDktMzkuODIgNTMuNTItNTkuNDkgNzYuNzItOS4xMyAxMC43Ny0yMi40NCAxNi45NS0zNi41MSAxNi45NXptMjY2LjA2LTE5OC41MUw0MTYgMjI0djI4OGwxMzkuODgtNTUuOTVBMzEuOTk2IDMxLjk5NiAwIDAgMCA1NzYgNDI2LjM0VjE3Ni4wMmMwLTExLjMyLTExLjQzLTE5LjA2LTIxLjk0LTE0Ljg2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXBNYXJrZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjLTY5LjU5IDAtMTI2IDU2LjQxLTEyNiAxMjYgMCA1Ni4yNiA4Mi4zNSAxNTguOCAxMTMuOSAxOTYuMDIgNi4zOSA3LjU0IDE3LjgyIDcuNTQgMjQuMiAwQzMzMS42NSAyODQuOCA0MTQgMTgyLjI2IDQxNCAxMjYgNDE0IDU2LjQxIDM1Ny41OSAwIDI4OCAwek0yMC4xMiAyMTUuOTVBMzIuMDA2IDMyLjAwNiAwIDAgMCAwIDI0NS42NnYyNTAuMzJjMCAxMS4zMiAxMS40MyAxOS4wNiAyMS45NCAxNC44NkwxNjAgNDQ4VjIxNC45MmMtOC44NC0xNS45OC0xNi4wNy0zMS41NC0yMS4yNS00Ni40MkwyMC4xMiAyMTUuOTV6TTI4OCAzNTkuNjdjLTE0LjA3IDAtMjcuMzgtNi4xOC0zNi41MS0xNi45Ni0xOS42Ni0yMy4yLTQwLjU3LTQ5LjYyLTU5LjQ5LTc2LjcydjE4MmwxOTIgNjRWMjY2Yy0xOC45MiAyNy4wOS0zOS44MiA1My41Mi01OS40OSA3Ni43Mi05LjEzIDEwLjc3LTIyLjQ0IDE2Ljk1LTM2LjUxIDE2Ljk1em0yNjYuMDYtMTk4LjUxTDQxNiAyMjR2Mjg4bDEzOS44OC01NS45NUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiA0MjYuMzRWMTc2LjAyYzAtMTEuMzItMTEuNDMtMTkuMDYtMjEuOTQtMTQuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcE1hcmtlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzIuMjY4IDUwMS42N0MyNi45NyAyOTEuMDMxIDAgMjY5LjQxMyAwIDE5MiAwIDg1Ljk2MSA4NS45NjEgMCAxOTIgMHMxOTIgODUuOTYxIDE5MiAxOTJjMCA3Ny40MTMtMjYuOTcgOTkuMDMxLTE3Mi4yNjggMzA5LjY3LTkuNTM1IDEzLjc3NC0yOS45MyAxMy43NzMtMzkuNDY0IDB6TTE5MiAyNzJjNDQuMTgzIDAgODAtMzUuODE3IDgwLTgwcy0zNS44MTctODAtODAtODAtODAgMzUuODE3LTgwIDgwIDM1LjgxNyA4MCA4MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwTWFya2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3Mi4yNjggNTAxLjY3QzI2Ljk3IDI5MS4wMzEgMCAyNjkuNDEzIDAgMTkyIDAgODUuOTYxIDg1Ljk2MSAwIDE5MiAwczE5MiA4NS45NjEgMTkyIDE5MmMwIDc3LjQxMy0yNi45NyA5OS4wMzEtMTcyLjI2OCAzMDkuNjctOS41MzUgMTMuNzc0LTI5LjkzIDEzLjc3My0zOS40NjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwUGluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAzMTYuOTR2MTU2LjY5bDIyLjAyIDMzLjAyYzQuNzUgNy4xMiAxNS4yMiA3LjEyIDE5Ljk3IDBMMTc2IDQ3My42M1YzMTYuOTRjLTEwLjM5IDEuOTItMjEuMDYgMy4wNi0zMiAzLjA2cy0yMS42MS0xLjE0LTMyLTMuMDZ6TTE0NCAwQzY0LjQ3IDAgMCA2NC40NyAwIDE0NHM2NC40NyAxNDQgMTQ0IDE0NCAxNDQtNjQuNDcgMTQ0LTE0NFMyMjMuNTMgMCAxNDQgMHptMCA3NmMtMzcuNSAwLTY4IDMwLjUtNjggNjggMCA2LjYyLTUuMzggMTItMTIgMTJzLTEyLTUuMzgtMTItMTJjMC01MC43MyA0MS4yOC05MiA5Mi05MiA2LjYyIDAgMTIgNS4zOCAxMiAxMnMtNS4zOCAxMi0xMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFwU2lnbnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA3LjMxIDg0LjY5TDQ2NCA0MS4zN2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0gyODhWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNkg1NmMtMTMuMjUgMC0yNCAxMC43NS0yNCAyNHY4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDM4NS4zN2M4LjQ5IDAgMTYuNjItMy4zNyAyMi42My05LjM3bDQzLjMxLTQzLjMxYzYuMjUtNi4yNiA2LjI1LTE2LjM4IDAtMjIuNjN6TTIyNCA0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzg0aC02NHYxMTJ6bTIzMi0yNzJIMjg4di0zMmgtNjR2MzJINzAuNjNjLTguNDkgMC0xNi42MiAzLjM3LTIyLjYzIDkuMzdMNC42OSAyNzYuNjljLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMNDggMzQyLjYzYzYgNiAxNC4xNCA5LjM3IDIyLjYzIDkuMzdINDU2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTgwYzAtMTMuMjUtMTAuNzUtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0wIDExNy42NnYzNDYuMzJjMCAxMS4zMiAxMS40MyAxOS4wNiAyMS45NCAxNC44NkwxNjAgNDE2VjMyTDIwLjEyIDg3Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTcuNjZ6TTE5MiA0MTZsMTkyIDY0Vjk2TDE5MiAzMnYzODR6TTU1NC4wNiAzMy4xNkw0MTYgOTZ2Mzg0bDEzOS44OC01NS45NUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiAzOTQuMzRWNDguMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFya2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTkzLjk1IDI5MC4wM0EzMjcuMDM4IDMyNy4wMzggMCAwIDAgLjE3IDQ4NS4xMWwtLjAzLjIzYy0xLjcgMTUuMjggMTEuMjEgMjguMiAyNi40OSAyNi41MWEzMjcuMDIgMzI3LjAyIDAgMCAwIDE5NS4zNC05My44bDc1LjQtNzUuNC0xMjguMDItMTI4LjAyLTc1LjQgNzUuNHpNNDg1LjQ5IDI2LjUxYy0zNS4zNS0zNS4zNS05Mi42Ny0zNS4zNS0xMjguMDIgMGwtMjEuNzYgMjEuNzYtMzYuNTYtMzYuNTVjLTE1LjYyLTE1LjYyLTQwLjk1LTE1LjYyLTU2LjU2IDBMMTM4LjQ3IDExNS44NGMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MiAyMi42MmM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDg3LjE1LTg3LjE1IDE5LjU5IDE5LjU5TDE5MS45OCAxOTIgMzIwIDMyMC4wMmwxNjUuNDktMTY1LjQ5YzM1LjM1LTM1LjM1IDM1LjM1LTkyLjY2IDAtMTI4LjAyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM0MCAwaC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTQ4LjcgNDguN0MxOTguNSA3Mi4xIDE3Mi4yIDY0IDE0NCA2NCA2NC41IDY0IDAgMTI4LjUgMCAyMDhzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0YzAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsNDguNy00OC43IDE2LjkgMTYuOWMyLjQgMi40IDUuNSAzLjUgOC40IDMuNSA2LjIgMCAxMi4xLTQuOCAxMi4xLTEyVjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTQ0IDI4OGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6bTM1Ni0xMjguMWgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS00OC43IDQ4LjdjLTE4LjItMTEuNC0zOS0xOC45LTYxLjUtMjEuMy0yLjEgMjEuOC04LjIgNDMuMy0xOC40IDYzLjMgMS4xIDAgMi4yLS4xIDMuMi0uMSA0NC4xIDAgODAgMzUuOSA4MCA4MHMtMzUuOSA4MC04MCA4MC04MC0zNS45LTgwLTgwYzAtMS4xIDAtMi4yLjEtMy4yLTIwIDEwLjItNDEuNSAxNi40LTYzLjMgMTguNEMxNjguNCA0NTUuNiAyMjkuNiA1MTIgMzA0IDUxMmM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjQgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMnYtNzljMC02LjctNS40LTEyLjEtMTItMTIuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZUggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc2LjIgMjQ3LjVsLTU1LjktNTUuOWMtNy42LTcuNi0yMC41LTIuMi0yMC41IDguNVYyMjRIMzc2di0yMGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2MjBoLTI3LjZjLTUuOC0yNS42LTE4LjctNDkuOS0zOC42LTY5LjhDMTg5LjYgOTggOTguNCA5OCA0Mi4yIDE1NC4yYy01Ni4yIDU2LjItNTYuMiAxNDcuNCAwIDIwMy42IDU2LjIgNTYuMiAxNDcuNCA1Ni4yIDIwMy42IDAgMTkuOS0xOS45IDMyLjgtNDQuMiAzOC42LTY5LjhIMzEydjIwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTIwaDIzLjl2MjMuOWMwIDEwLjcgMTIuOSAxNiAyMC41IDguNWw1NS45LTU1LjljNC42LTQuNyA0LjYtMTIuMy0uMS0xN3ptLTI3NS42IDY1LjFjLTMxLjIgMzEuMi04MS45IDMxLjItMTEzLjEgMC0zMS4yLTMxLjItMzEuMi04MS45IDAtMTEzLjEgMzEuMi0zMS4yIDgxLjktMzEuMiAxMTMuMSAwIDMxLjIgMzEuMSAzMS4yIDgxLjkgMCAxMTMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFyc1N0cm9rZVYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ1LjggMjM0LjJjLTE5LjktMTkuOS00NC4yLTMyLjgtNjkuOC0zOC42di0yNS40aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMFY4MS40aDIzLjljMTAuNyAwIDE2LTEyLjkgOC41LTIwLjVMMTUyLjUgNS4xYy00LjctNC43LTEyLjMtNC43LTE3IDBMNzkuNiA2MWMtNy42IDcuNi0yLjIgMjAuNSA4LjUgMjAuNUgxMTJ2MjQuN0g5MmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgyMHYyNS40Yy0yNS42IDUuOC00OS45IDE4LjctNjkuOCAzOC42LTU2LjIgNTYuMi01Ni4yIDE0Ny40IDAgMjAzLjYgNTYuMiA1Ni4yIDE0Ny40IDU2LjIgMjAzLjYgMCA1Ni4zLTU2LjIgNTYuMy0xNDcuNCAwLTIwMy42em0tNDUuMiAxNTguNGMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwLTMxLjItMzEuMi0zMS4yLTgxLjkgMC0xMTMuMSAzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDAgMzEuMiAzMS4xIDMxLjIgODEuOSAwIDExMy4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNYXJzU3Ryb2tlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MiA2NGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS0xNy41IDE3LjUtMTQuMS0xNC4xYy00LjctNC43LTEyLjMtNC43LTE3IDBMMjI0LjUgMTMzYy00LjcgNC43LTQuNyAxMi4zIDAgMTdsMTQuMSAxNC4xLTE4IDE4Yy0yMi4yLTE0LTQ4LjUtMjIuMS03Ni43LTIyLjFDNjQuNSAxNjAgMCAyMjQuNSAwIDMwNHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDRjMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2wxOC0xOCAxNC4xIDE0LjFjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDI4LjMtMjguM2M0LjctNC43IDQuNy0xMi4zIDAtMTdMMzI5LjIgMTY0bDE3LjUtMTcuNSAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVY3NmMtLjEtNi42LTUuNS0xMi0xMi4xLTEyek0xNDQgMzg0Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzIgNjRoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktODAuNyA4MC43Yy0yMi4yLTE0LTQ4LjUtMjIuMS03Ni43LTIyLjFDNjQuNSAxNjAgMCAyMjQuNSAwIDMwNHM2NC41IDE0NCAxNDQgMTQ0IDE0NC02NC41IDE0NC0xNDRjMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w4MC43LTgwLjcgMTYuOSAxNi45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWNzZjMC02LjYtNS40LTEyLTEyLTEyek0xNDQgMzg0Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWFzayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAuNjcgNjRjLTQ0Mi42IDAtMzU3LjU3IDM4NC0xNTguNDYgMzg0IDM5LjkgMCA3Ny40Ny0yMC42OSAxMDEuNDItNTUuODZsMjUuNzMtMzcuNzljMTUuNjYtMjIuOTkgNDYuOTctMjIuOTkgNjIuNjMgMGwyNS43MyAzNy43OUM0MDEuNjYgNDI3LjMxIDQzOS4yMyA0NDggNDc5LjEzIDQ0OGMxODkuODYgMCAyOTAuNjMtMzg0LTE1OC40Ni0zODR6TTE4NCAzMDguMzZjLTQxLjA2IDAtNjcuNzYtMjUuNjYtODAuMDgtNDEuMDUtNS4yMy02LjUzLTUuMjMtMTYuMDkgMC0yMi42MyAxMi4zMi0xNS40IDM5LjAxLTQxLjA1IDgwLjA4LTQxLjA1czY3Ljc2IDI1LjY2IDgwLjA4IDQxLjA1YzUuMjMgNi41MyA1LjIzIDE2LjA5IDAgMjIuNjMtMTIuMzIgMTUuNC0zOS4wMiA0MS4wNS04MC4wOCA0MS4wNXptMjcyIDBjLTQxLjA2IDAtNjcuNzYtMjUuNjYtODAuMDgtNDEuMDUtNS4yMy02LjUzLTUuMjMtMTYuMDkgMC0yMi42MyAxMi4zMi0xNS40IDM5LjAxLTQxLjA1IDgwLjA4LTQxLjA1czY3Ljc2IDI1LjY2IDgwLjA4IDQxLjA1YzUuMjMgNi41MyA1LjIzIDE2LjA5IDAgMjIuNjMtMTIuMzIgMTUuNC0zOS4wMiA0MS4wNS04MC4wOCA0MS4wNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVkYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjIzLjc1IDEzMC43NUwxNTQuNjIgMTUuNTRBMzEuOTk3IDMxLjk5NyAwIDAgMCAxMjcuMTggMEgxNi4wM0MzLjA4IDAtNC41IDE0LjU3IDIuOTIgMjUuMThsMTExLjI3IDE1OC45NmMyOS43Mi0yNy43NyA2Ny41Mi00Ni44MyAxMDkuNTYtNTMuMzl6TTQ5NS45NyAwSDM4NC44MmMtMTEuMjQgMC0yMS42NiA1LjktMjcuNDQgMTUuNTRsLTY5LjEzIDExNS4yMWM0Mi4wNCA2LjU2IDc5Ljg0IDI1LjYyIDEwOS41NiA1My4zOEw1MDkuMDggMjUuMThDNTE2LjUgMTQuNTcgNTA4LjkyIDAgNDk1Ljk3IDB6TTI1NiAxNjBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em05Mi41MiAxNTcuMjZsLTM3LjkzIDM2Ljk2IDguOTcgNTIuMjJjMS42IDkuMzYtOC4yNiAxNi41MS0xNi42NSAxMi4wOUwyNTYgMzkzLjg4bC00Ni45IDI0LjY1Yy04LjQgNC40NS0xOC4yNS0yLjc0LTE2LjY1LTEyLjA5bDguOTctNTIuMjItMzcuOTMtMzYuOTZjLTYuODItNi42NC0zLjA1LTE4LjIzIDYuMzUtMTkuNTlsNTIuNDMtNy42NCAyMy40My00Ny41MmMyLjExLTQuMjggNi4xOS02LjM5IDEwLjI4LTYuMzkgNC4xMSAwIDguMjIgMi4xNCAxMC4zMyA2LjM5bDIzLjQzIDQ3LjUyIDUyLjQzIDcuNjRjOS40IDEuMzYgMTMuMTcgMTIuOTUgNi4zNSAxOS41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVka2l0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTk2IDQ4MGgzMjBWMTI4aC0zMlY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg5NnYzNTJ6bTk2LTM4NGgxMjh2MzJIMTkyVjk2em0zMjAgODB2MjU2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhoLTE2VjEyOGgxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek02NCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTc2YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMTZ2MzUyem0yODgtMjA4djMyYzAgOC44MzctNy4xNjMgMTYtMTYgMTZoLTQ4djQ4YzAgOC44MzctNy4xNjMgMTYtMTYgMTZoLTMyYy04LjgzNyAwLTE2LTcuMTYzLTE2LTE2di00OGgtNDhjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZ2LTMyYzAtOC44MzcgNy4xNjMtMTYgMTYtMTZoNDh2LTQ4YzAtOC44MzcgNy4xNjMtMTYgMTYtMTZoMzJjOC44MzcgMCAxNiA3LjE2MyAxNiAxNnY0OGg0OGM4LjgzNyAwIDE2IDcuMTYzIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWhCbGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tODAgMjMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZWhSb2xsaW5nRXllcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek04OCAyMjRjMC0yNC4zIDEzLjctNDUuMiAzMy42LTU2LS43IDIuNi0xLjYgNS4yLTEuNiA4IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0yLjgtLjktNS40LTEuNi04IDE5LjkgMTAuOCAzMy42IDMxLjcgMzMuNiA1NiAwIDM1LjMtMjguNyA2NC02NCA2NHMtNjQtMjguNy02NC02NHptMjI0IDE3NkgxODRjLTIxLjIgMC0yMS4yLTMyIDAtMzJoMTI4YzIxLjIgMCAyMS4yIDMyIDAgMzJ6bTMyLTExMmMtMzUuMyAwLTY0LTI4LjctNjQtNjQgMC0yNC4zIDEzLjctNDUuMiAzMy42LTU2LS43IDIuNi0xLjYgNS4yLTEuNiA4IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC0yLjgtLjktNS40LTEuNi04IDE5LjkgMTAuOCAzMy42IDMxLjcgMzMuNiA1NiAwIDM1LjMtMjguNyA2NC02NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xNzYgMTkySDE1MmMtMjEuMiAwLTIxLjItMzIgMC0zMmgxOTJjMjEuMiAwIDIxLjIgMzIgMCAzMnptLTE2LTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1lbW9yeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NDAgMTMwLjk0Vjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djM0Ljk0YzE4LjYgNi42MSAzMiAyNC4xOSAzMiA0NS4wNnMtMTMuNCAzOC40NS0zMiA0NS4wNlYzMjBoNjQwdi05OC45NGMtMTguNi02LjYxLTMyLTI0LjE5LTMyLTQ1LjA2czEzLjQtMzguNDUgMzItNDUuMDZ6TTIyNCAyNTZoLTY0VjEyOGg2NHYxMjh6bTEyOCAwaC02NFYxMjhoNjR2MTI4em0xMjggMGgtNjRWMTI4aDY0djEyOHpNMCA0NDhoNjR2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDEyOHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoMTI4di0yNi42N2MwLTguODQgNy4xNi0xNiAxNi0xNnMxNiA3LjE2IDE2IDE2VjQ0OGgxMjh2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDY0di05Nkgwdjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNZW5vcmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAxMjhoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRoNjRWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2em05NiAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptMTkyIDBoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDRoNjRWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2em05NiAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptODAtMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlM2MDggMCA2MDggMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTNTEyIDAgNTEyIDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzQxNiAwIDQxNiAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMzMjAgMCAzMjAgMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTMjI0IDAgMjI0IDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzEyOCAwIDEyOCAwIDk2IDQ2LjMzIDk2IDY0czE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzMyIDAgMzIgMCAwIDQ2LjMzIDAgNjRzMTQuMzMgMzIgMzIgMzJ6bTU0NCAxOTJjMCAxNy42Ny0xNC4zMyAzMi0zMiAzMkgzNTJWMTQ0YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTc2SDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyVjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0YzAgNTMuMDIgNDIuOTggOTYgOTYgOTZoMTkydjY0SDExMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNkgzNTJ2LTY0aDE5MmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWVyY3VyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjA4YzAtNDQuMi0xOS45LTgzLjctNTEuMi0xMTAuMSAyLjUtMS44IDQuOS0zLjggNy4yLTUuOCAyNC43LTIxLjIgMzkuOC00OC44IDQzLjItNzguOC45LTcuMS00LjctMTMuMy0xMS45LTEzLjNoLTQwLjVDMjI5IDAgMjI0LjEgNC4xIDIyMyA5LjhjLTIuNCAxMi41LTkuNiAyNC4zLTIwLjcgMzMuOEMxODcgNTYuOCAxNjYuMyA2NCAxNDQgNjRzLTQzLTcuMi01OC40LTIwLjRDNzQuNSAzNC4xIDY3LjQgMjIuMyA2NC45IDkuOCA2My44IDQuMSA1OC45IDAgNTMuMiAwSDEyLjdDNS41IDAtLjEgNi4yLjggMTMuMyA0LjIgNDMuNCAxOS4yIDcxIDQ0IDkyLjJjMi4zIDIgNC43IDMuOSA3LjIgNS44QzE5LjkgMTI0LjMgMCAxNjMuOCAwIDIwOGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDAwSDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMjI0IDBjMC00NC4xIDM1LjktODAgODAtODBzODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1ldGVvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTEuMzI4LDIwLjgwMjdjLTExLjYwNzU5LDM4LjcwMjY0LTM0LjMwNzI0LDExMS43MDE3My02MS4zMDMxMSwxODcuNzAwNzcsNi45OTg5MywyLjA5MzcyLDEzLjQwNDIsNCwxOC42MDY1Myw1LjU5MzY4YTE2LjA2MTU4LDE2LjA2MTU4LDAsMCwxLDkuNDk4NTQsMjIuOTA2Yy0yMi4xMDYsNDIuMjk2MzUtODIuNjkwNDcsMTUyLjc5NS0xNDIuNDc4MTksMjE0LjQwMzU2LS45OTk4NCwxLjA5MzczLTEuOTk5NjksMi41LTIuOTk5NTQsMy40OTk5NUExOTQuODMwNDYsMTk0LjgzMDQ2LDAsMSwxLDU3LjA4NSwxNzkuNDEwMDljLjk5OTg1LTEsMi40MDU4OC0yLDMuNDk5NDctMyw2MS41OTk5NC01OS45MDU0OSwxNzEuOTczNjctMTIwLjQwNDczLDIxNC4zNzM0My0xNDIuNDk4MmExNi4wNTgsMTYuMDU4LDAsMCwxLDIyLjkwMjc0LDkuNDk5ODhjMS41OTM1MSw1LjA5MzY4LDMuNDk5NDcsMTEuNTkzNiw1LjU5MjksMTguNTkzNTFDMzc5LjM0ODE4LDM1LjAwNTY1LDQ1Mi40MzA3NCwxMi4zMDI4MSw0OTEuMTI3OTQuNzA5MjFBMTYuMTgzMjUsMTYuMTgzMjUsMCwwLDEsNTExLjMyOCwyMC44MDI3Wk0zMTkuOTUxLDMyMC4wMDIwN0ExMjcuOTgwNDEsMTI3Ljk4MDQxLDAsMSwwLDE5MS45NzA2MSw0NDguMDAwNDYsMTI3Ljk3NTczLDEyNy45NzU3MywwLDAsMCwzMTkuOTUxLDMyMC4wMDIwN1ptLTEyNy45ODA0MS0zMS45OTk2YTMxLjk5NTEsMzEuOTk1MSwwLDEsMS0zMS45OTUxLTMxLjk5OTZBMzEuOTU5LDMxLjk1OSwwLDAsMSwxOTEuOTcwNjEsMjg4LjAwMjQ3Wm0zMS45OTUxLDc5Ljk5OWExNS45OTc1NSwxNS45OTc1NSwwLDEsMS0xNS45OTc1NS0xNS45OTk4QTE2LjA0OTc1LDE2LjA0OTc1LDAsMCwxLDIyMy45NjU3MSwzNjguMDAxNDdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvY2hpcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYgNDh2NDE2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhIMTQ0Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjQ4YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMjI0YzI2LjUxIDAgNDggMjEuNDkgNDggNDh6bTk2IDU4djEyYTYgNiAwIDAgMS02IDZoLTE4djZhNiA2IDAgMCAxLTYgNmgtNDJWODhoNDJhNiA2IDAgMCAxIDYgNnY2aDE4YTYgNiAwIDAgMSA2IDZ6bTAgOTZ2MTJhNiA2IDAgMCAxLTYgNmgtMTh2NmE2IDYgMCAwIDEtNiA2aC00MnYtNDhoNDJhNiA2IDAgMCAxIDYgNnY2aDE4YTYgNiAwIDAgMSA2IDZ6bTAgOTZ2MTJhNiA2IDAgMCAxLTYgNmgtMTh2NmE2IDYgMCAwIDEtNiA2aC00MnYtNDhoNDJhNiA2IDAgMCAxIDYgNnY2aDE4YTYgNiAwIDAgMSA2IDZ6bTAgOTZ2MTJhNiA2IDAgMCAxLTYgNmgtMTh2NmE2IDYgMCAwIDEtNiA2aC00MnYtNDhoNDJhNiA2IDAgMCAxIDYgNnY2aDE4YTYgNiAwIDAgMSA2IDZ6TTMwIDM3Nmg0MnY0OEgzMGE2IDYgMCAwIDEtNi02di02SDZhNiA2IDAgMCAxLTYtNnYtMTJhNiA2IDAgMCAxIDYtNmgxOHYtNmE2IDYgMCAwIDEgNi02em0wLTk2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6bTAtOTZoNDJ2NDhIMzBhNiA2IDAgMCAxLTYtNnYtNkg2YTYgNiAwIDAgMS02LTZ2LTEyYTYgNiAwIDAgMSA2LTZoMTh2LTZhNiA2IDAgMCAxIDYtNnptMC05Nmg0MnY0OEgzMGE2IDYgMCAwIDEtNi02di02SDZhNiA2IDAgMCAxLTYtNnYtMTJhNiA2IDAgMCAxIDYtNmgxOHYtNmE2IDYgMCAwIDEgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lQWx0U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjgyIDQ1OC4xTDQ3Ni4yNiAzMzYuMzNDNDg4Ljc0IDMxMi4yMSA0OTYgMjg0Ljk4IDQ5NiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCAxNy45Mi0zLjk2IDM0LjgtMTAuNzIgNTAuMmwtMjYuNTUtMjAuNTJjMy4xLTkuNCA1LjI4LTE5LjIyIDUuMjgtMjkuNjdoLTQzLjY3bC00MS40LTMySDQxNnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThINDE2di0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEg0MTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZ2NDUuMzZMNDUuNDcgMy4zN0MzOC40OS0yLjA1IDI4LjQzLS44IDIzLjAxIDYuMThMMy4zNyAzMS40NUMtMi4wNSAzOC40Mi0uOCA0OC40NyA2LjE4IDUzLjlsNTg4LjM2IDQ1NC43M2M2Ljk4IDUuNDMgMTcuMDMgNC4xNyAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YzUuNDEtNi45NyA0LjE2LTE3LjAyLTIuODItMjIuNDV6TTQwMCA0NjRoLTU2di0zMy43OGMxMS43MS0xLjYyIDIzLjEtNC4yOCAzMy45Ni04LjA4bC01MC40LTM4Ljk2Yy02LjcxLjQtMTMuNDEuODctMjAuMzUuMi01NS44NS01LjQ1LTk4Ljc0LTQ4LjYzLTExMS4xOC0xMDEuODVMMTQ0IDI0MS4zMXY2Ljg1YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0aC01NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWljcm9waG9uZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzUyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMTkyaC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCA3NC44LTY0LjQ5IDEzNC44Mi0xNDAuNzkgMTI3LjM4Qzk2LjcxIDM3Ni44OSA0OCAzMTcuMTEgNDggMjUwLjNWMjA4YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0MC4xNmMwIDg5LjY0IDYzLjk3IDE2OS41NSAxNTIgMTgxLjY5VjQ2NEg5NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNTZ2LTMzLjc3QzI4NS43MSA0MTguNDcgMzUyIDM0NC45IDM1MiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2ek0xNzYgMzUyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThIMjcydi0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEgyNzJ2LTMyaC04NS4zM2MtNS44OSAwLTEwLjY3LTMuNTgtMTAuNjctOHYtMTZjMC00LjQyIDQuNzgtOCAxMC42Ny04SDI3MmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2UzgwIDQyLjk4IDgwIDk2djE2MGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaWNyb3Bob25lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjgyIDQ1OC4xbC0xNTcuOC0xMjEuOTZDNDg4LjYxIDMxMi4xMyA0OTYgMjg1LjAxIDQ5NiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCAxNy45Mi0zLjk2IDM0LjgtMTAuNzIgNTAuMmwtMjYuNTUtMjAuNTJjMy4xLTkuNCA1LjI4LTE5LjIyIDUuMjgtMjkuNjdWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZ2NDUuMzZMNDUuNDcgMy4zN0MzOC40OS0yLjA1IDI4LjQzLS44IDIzLjAxIDYuMThMMy4zNyAzMS40NUMtMi4wNSAzOC40Mi0uOCA0OC40NyA2LjE4IDUzLjlsNTg4LjM2IDQ1NC43M2M2Ljk4IDUuNDMgMTcuMDMgNC4xNyAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YzUuNDEtNi45NyA0LjE2LTE3LjAyLTIuODItMjIuNDV6TTQwMCA0NjRoLTU2di0zMy43N2MxMS42Ni0xLjYgMjIuODUtNC41NCAzMy42Ny04LjMxbC01MC4xMS0zOC43M2MtNi43MS40LTEzLjQxLjg3LTIwLjM1LjItNTUuODUtNS40NS05OC43NC00OC42My0xMTEuMTgtMTAxLjg1TDE0NCAyNDEuMzF2Ni44NWMwIDg5LjY0IDYzLjk3IDE2OS41NSAxNTIgMTgxLjY5VjQ2NGgtNTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3JvcGhvbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTc2IDM1MmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZTODAgNDIuOTggODAgOTZ2MTYwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZ6bTE2MC0xNjBoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDc0LjgtNjQuNDkgMTM0LjgyLTE0MC43OSAxMjcuMzhDOTYuNzEgMzc2Ljg5IDQ4IDMxNy4xMSA0OCAyNTAuM1YyMDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQwLjE2YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0SDk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC01NnYtMzMuNzdDMjg1LjcxIDQxOC40NyAzNTIgMzQ0LjkgMzUyIDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pY3Jvc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDMyMGgxMnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZoMTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyVjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC02NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MjI0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ6bTMwNCAxMjhoLTEuMjlDNDkzLjI0IDQxMy45OSA1MTIgMzY5LjIgNTEyIDMyMGMwLTEwNS44OC04Ni4xMi0xOTItMTkyLTE5MnY2NGM3MC41OCAwIDEyOCA1Ny40MiAxMjggMTI4cy01Ny40MiAxMjgtMTI4IDEyOEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OCAwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTYgMC0yNi41MS0yMS40OS00OC00OC00OHptLTM2MC0zMmgyMDhjNC40MiAwIDgtMy41OCA4LTh2LTE2YzAtNC40Mi0zLjU4LTgtOC04SDEwNGMtNC40MiAwLTggMy41OC04IDh2MTZjMCA0LjQyIDMuNTggOCA4IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1pbnVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6TTEyNCAyOTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDI2NGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZjMCA2LjYtNS40IDEyLTEyIDEySDEyNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludXNTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNOTIgMjk2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyNjRjNi42IDAgMTIgNS40IDEyIDEydjU2YzAgNi42LTUuNCAxMi0xMiAxMkg5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTWludXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDIwOEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNaXR0ZW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY4IDQxNkg0OGMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMjBjOC44IDAgMTYtNy4yIDE2LTE2di02NGMwLTguOC03LjItMTYtMTYtMTZ6bTU3LTIwOS4xYy0yNy4yLTIyLjYtNjcuNS0xOS05MC4xIDguMmwtMjAuOSAyNS0yOS42LTEyOC40Yy0xOC03Ny41LTk1LjQtMTI1LjktMTcyLjgtMTA4QzM0LjIgMjEuNi0xNC4yIDk4LjkgMy43IDE3Ni40TDUxLjYgMzg0aDMwOWw3Mi41LTg3YzIyLjctMjcuMiAxOS02Ny41LTguMS05MC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb2JpbGVBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyMjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMTItMTA4YzAgNi42LTUuNCAxMi0xMiAxMkg2MGMtNi42IDAtMTItNS40LTEyLTEyVjYwYzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjMxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9iaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjI0YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xNjAgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAyODhoLTE2di04OGMwLTQuNDItMy41OC04LTgtOGgtMTMuNThjLTQuNzQgMC05LjM3IDEuNC0xMy4zMSA0LjAzbC0xNS4zMyAxMC4yMmE3Ljk5NCA3Ljk5NCAwIDAgMC0yLjIyIDExLjA5bDguODggMTMuMzFhNy45OTQgNy45OTQgMCAwIDAgMTEuMDkgMi4yMmwuNDctLjMxVjI4OGgtMTZjLTQuNDIgMC04IDMuNTgtOCA4djE2YzAgNC40MiAzLjU4IDggOCA4aDY0YzQuNDIgMCA4LTMuNTggOC04di0xNmMwLTQuNDItMy41OC04LTgtOHpNNjA4IDY0SDMyQzE0LjMzIDY0IDAgNzguMzMgMCA5NnYzMjBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek00OCA0MDB2LTY0YzM1LjM1IDAgNjQgMjguNjUgNjQgNjRINDh6bTAtMjI0di02NGg2NGMwIDM1LjM1LTI4LjY1IDY0LTY0IDY0em0yNzIgMTkyYy01My4wMiAwLTk2LTUwLjE1LTk2LTExMiAwLTYxLjg2IDQyLjk4LTExMiA5Ni0xMTJzOTYgNTAuMTQgOTYgMTEyYzAgNjEuODctNDMgMTEyLTk2IDExMnptMjcyIDMyaC02NGMwLTM1LjM1IDI4LjY1LTY0IDY0LTY0djY0em0wLTIyNGMtMzUuMzUgMC02NC0yOC42NS02NC02NGg2NHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsV2F2ZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMTYgNTQuNDZDNTgyLjM3IDM4LjE5IDU0My41NSAzMiA1MDQuNzUgMzJjLTEyMy4xNy0uMDEtMjQ2LjMzIDYyLjM0LTM2OS41IDYyLjM0LTMwLjg5IDAtNjEuNzYtMy45Mi05Mi42NS0xMy43Mi0zLjQ3LTEuMS02Ljk1LTEuNjItMTAuMzUtMS42MkMxNS4wNCA3OSAwIDkyLjMyIDAgMTEwLjgxdjMxNy4yNmMwIDEyLjYzIDcuMjMgMjQuNiAxOC44NCAyOS40NkM1Ny42MyA0NzMuODEgOTYuNDUgNDgwIDEzNS4yNSA0ODBjMTIzLjE3IDAgMjQ2LjM0LTYyLjM1IDM2OS41MS02Mi4zNSAzMC44OSAwIDYxLjc2IDMuOTIgOTIuNjUgMTMuNzIgMy40NyAxLjEgNi45NSAxLjYyIDEwLjM1IDEuNjIgMTcuMjEgMCAzMi4yNS0xMy4zMiAzMi4yNS0zMS44MVY4My45M2MtLjAxLTEyLjY0LTcuMjQtMjQuNi0xOC44NS0yOS40N3pNMzIwIDM1MmMtNDQuMTkgMC04MC00Mi45OS04MC05NiAwLTUzLjAyIDM1LjgyLTk2IDgwLTk2czgwIDQyLjk4IDgwIDk2YzAgNTMuMDMtMzUuODMgOTYtODAgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5QmlsbFdhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIxLjE2IDU0LjQ2QzU4Mi4zNyAzOC4xOSA1NDMuNTUgMzIgNTA0Ljc1IDMyYy0xMjMuMTctLjAxLTI0Ni4zMyA2Mi4zNC0zNjkuNSA2Mi4zNC0zMC44OSAwLTYxLjc2LTMuOTItOTIuNjUtMTMuNzItMy40Ny0xLjEtNi45NS0xLjYyLTEwLjM1LTEuNjJDMTUuMDQgNzkgMCA5Mi4zMiAwIDExMC44MXYzMTcuMjZjMCAxMi42MyA3LjIzIDI0LjYgMTguODQgMjkuNDZDNTcuNjMgNDczLjgxIDk2LjQ1IDQ4MCAxMzUuMjUgNDgwYzEyMy4xNyAwIDI0Ni4zNC02Mi4zNSAzNjkuNTEtNjIuMzUgMzAuODkgMCA2MS43NiAzLjkyIDkyLjY1IDEzLjcyIDMuNDcgMS4xIDYuOTUgMS42MiAxMC4zNSAxLjYyIDE3LjIxIDAgMzIuMjUtMTMuMzIgMzIuMjUtMzEuODFWODMuOTNjLS4wMS0xMi42NC03LjI0LTI0LjYtMTguODUtMjkuNDd6TTQ4IDEzMi4yMmMyMC4xMiA1LjA0IDQxLjEyIDcuNTcgNjIuNzIgOC45M0MxMDQuODQgMTcwLjU0IDc5IDE5Mi42OSA0OCAxOTIuNjl2LTYwLjQ3em0wIDI4NXYtNDcuNzhjMzQuMzcgMCA2Mi4xOCAyNy4yNyA2My43MSA2MS40LTIyLjUzLTEuODEtNDMuNTktNi4zMS02My43MS0xMy42MnpNMzIwIDM1MmMtNDQuMTkgMC04MC00Mi45OS04MC05NiAwLTUzLjAyIDM1LjgyLTk2IDgwLTk2czgwIDQyLjk4IDgwIDk2YzAgNTMuMDMtMzUuODMgOTYtODAgOTZ6bTI3MiAyNy43OGMtMTcuNTItNC4zOS0zNS43MS02Ljg1LTU0LjMyLTguNDQgNS44Ny0yNi4wOCAyNy41LTQ1Ljg4IDU0LjMyLTQ5LjI4djU3Ljcyem0wLTIzNi4xMWMtMzAuODktMy45MS01NC44Ni0yOS43LTU1LjgxLTYxLjU1IDE5LjU0IDIuMTcgMzguMDkgNi4yMyA1NS44MSAxMi42NnY0OC44OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9uZXlCaWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNDggNDAwdi02NGMzNS4zNSAwIDY0IDI4LjY1IDY0IDY0SDQ4em0wLTIyNHYtNjRoNjRjMCAzNS4zNS0yOC42NSA2NC02NCA2NHptMjcyIDE3NmMtNDQuMTkgMC04MC00Mi45OS04MC05NiAwLTUzLjAyIDM1LjgyLTk2IDgwLTk2czgwIDQyLjk4IDgwIDk2YzAgNTMuMDMtMzUuODMgOTYtODAgOTZ6bTI3MiA0OGgtNjRjMC0zNS4zNSAyOC42NS02NCA2NC02NHY2NHptMC0yMjRjLTM1LjM1IDAtNjQtMjguNjUtNjQtNjRoNjR2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5Q2hlY2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjA4IDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHYzODRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xNzYgMzI3Ljg4VjM0NGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWMTUyYzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2LjI5YzExLjI5LjU4IDIyLjI3IDQuNTEgMzEuMzcgMTEuMzUgMy45IDIuOTMgNC4xIDguNzcuNTcgMTIuMTRsLTExLjc1IDExLjIxYy0yLjc3IDIuNjQtNi44OSAyLjc2LTEwLjEzLjczLTMuODctMi40My04LjI2LTMuNzItMTIuODItMy43MmgtMjguMTFjLTYuNSAwLTExLjggNS45Mi0xMS44IDEzLjE5IDAgNS45NSAzLjYxIDExLjE5IDguNzcgMTIuNzNsNDUgMTMuNWMxOC41OSA1LjU4IDMxLjU4IDIzLjQyIDMxLjU4IDQzLjM5IDAgMjQuNTMtMTkuMDUgNDQuNDQtNDIuNjcgNDUuMDd6TTQxNiAzMTJjMCA0LjQyLTMuNTggOC04IDhIMjk2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTEyYzQuNDIgMCA4IDMuNTggOCA4djE2em0xNjAgMGMwIDQuNDItMy41OCA4LTggOGgtODBjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC05NmMwIDQuNDItMy41OCA4LTggOEgyOTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgyNzJjNC40MiAwIDggMy41OCA4IDh2MTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vbmV5Q2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCA0NDhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxMjhIMHYzMjB6bTQ0OC0yMDhjMC04Ljg0IDcuMTYtMTYgMTYtMTZoOTZjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MzJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJ6bTAgMTIwYzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg0NTZjLTQuNDIgMC04LTMuNTgtOC04di0xNnpNNjQgMjY0YzAtNC40MiAzLjU4LTggOC04aDMwNGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2em0wIDk2YzAtNC40MiAzLjU4LTggOC04aDE3NmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2ek02MjQgMzJIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2NDhoNjQwVjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb251bWVudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjggNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzNTJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tNzguODYtMzQ3LjI2YTMxLjk3IDMxLjk3IDAgMCAwLTkuMjEtMTkuNDRMMjAzLjMxIDQuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTc2LjYgNzYuNjFhMzEuOTcgMzEuOTcgMCAwIDAtOS4yMSAxOS40NEw2NCA0MTZoMjU2bC0zMC44Ni0zMTUuMjZ6TTI0MCAzMDcuMmMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTcwLjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoNzAuNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODMuMjExIDUxMmM3OC45NjIgMCAxNTEuMDc5LTM1LjkyNSAxOTguODU3LTk0Ljc5MiA3LjA2OC04LjcwOC0uNjM5LTIxLjQzLTExLjU2Mi0xOS4zNS0xMjQuMjAzIDIzLjY1NC0yMzguMjYyLTcxLjU3Ni0yMzguMjYyLTE5Ni45NTQgMC03Mi4yMjIgMzguNjYyLTEzOC42MzUgMTAxLjQ5OC0xNzQuMzk0IDkuNjg2LTUuNTEyIDcuMjUtMjAuMTk3LTMuNzU2LTIyLjIzQTI1OC4xNTYgMjU4LjE1NiAwIDAgMCAyODMuMjExIDBjLTE0MS4zMDkgMC0yNTYgMTE0LjUxMS0yNTYgMjU2IDAgMTQxLjMwOSAxMTQuNTExIDI1NiAyNTYgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3J0YXJQZXN0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjU0IDYwLjkxYzE3LjIyLTE3LjIyIDEyLjUxLTQ2LjI1LTkuMjctNTcuMTRhMzUuNjk2IDM1LjY5NiAwIDAgMC0zNy4zNyAzLjM3TDI1MS4wOSAxNjBoMTUxLjM3bDk5LjA4LTk5LjA5ek00OTYgMTkySDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmMwIDgwLjk4IDUwLjIgMTUwLjExIDEyMS4xMyAxNzguMzItMTIuNzYgMTYuODctMjEuNzIgMzYuOC0yNC45NSA1OC42OS0xLjQ2IDkuOTIgNi4wNCAxOC45OCAxNi4wNyAxOC45OGgyMjMuNWMxMC4wMyAwIDE3LjUzLTkuMDYgMTYuMDctMTguOTgtMy4yMi0yMS44OS0xMi4xOC00MS44Mi0yNC45NS01OC42OUM0MjkuOCA0MDYuMTEgNDgwIDMzNi45OCA0ODAgMjU2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW9zcXVlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNDgwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNjRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBIMHYzMjB6bTU3OS4xNi0xOTJjMTcuODYtMTcuMzkgMjguODQtMzcuMzQgMjguODQtNTguOTEgMC01Mi44Ni00MS43OS05My43OS04Ny45Mi0xMjIuOS00MS45NC0yNi40Ny04MC42My01Ny43Ny0xMTEuOTYtOTYuMjJMNDAwIDBsLTguMTIgOS45N2MtMzEuMzMgMzguNDUtNzAuMDEgNjkuNzYtMTExLjk2IDk2LjIyQzIzMy43OSAxMzUuMyAxOTIgMTc2LjIzIDE5MiAyMjkuMDljMCAyMS41NyAxMC45OCA0MS41MiAyOC44NCA1OC45MWgzNTguMzJ6TTYwOCAzMjBIMTkyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMydi02NGMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyczMyIDE0LjMzIDMyIDMydjY0aDY0di03MmMwLTQ4IDQ4LTcyIDQ4LTcyczQ4IDI0IDQ4IDcydjcyaDY0di02NGMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyczMyIDE0LjMzIDMyIDMydjY0aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTY0IDBTMCAzMiAwIDk2djMyaDEyOFY5NmMwLTY0LTY0LTk2LTY0LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNb3RvcmN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMi45IDE5MmMtMTQuOS0uMS0yOS4xIDIuMy00Mi40IDYuOUw0MzcuNiAxNDRINTIwYzEzLjMgMCAyNC0xMC43IDI0LTI0Vjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0aC00NS4zYy02LjggMC0xMy4zIDIuOS0xNy44IDcuOWwtMzcuNSA0MS43LTIyLjgtMzhDMzkyLjIgNjguNCAzODQuNCA2NCAzNzYgNjRoLTgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDY2LjRsMTkuMiAzMkgyMjcuOWMtMTcuNy0yMy4xLTQ0LjktNDAtOTkuOS00MEg3Mi41QzU5IDEwNCA0Ny43IDExNSA0OCAxMjguNWMuMiAxMyAxMC45IDIzLjUgMjQgMjMuNWg1NmMyNC41IDAgMzguNyAxMC45IDQ3LjggMjQuOGwtMTEuMyAyMC41Yy0xMy0zLjktMjYuOS01LjctNDEuMy01LjJDNTUuOSAxOTQuNSAxLjYgMjQ5LjYgMCAzMTdjLTEuNiA3Mi4xIDU2LjMgMTMxIDEyOCAxMzEgNTkuNiAwIDEwOS43LTQwLjggMTI0LTk2aDg0LjJjMTMuNyAwIDI0LjYtMTEuNCAyNC0yNS4xLTIuMS00Ny4xIDE3LjUtOTMuNyA1Ni4yLTEyNWwxMi41IDIwLjhjLTI3LjYgMjMuNy00NS4xIDU4LjktNDQuOCA5OC4yLjUgNjkuNiA1Ny4yIDEyNi41IDEyNi44IDEyNy4xIDcxLjYuNyAxMjkuOC01Ny41IDEyOS4yLTEyOS4xLS43LTY5LjYtNTcuNi0xMjYuNC0xMjcuMi0xMjYuOXpNMTI4IDQwMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MGM0LjIgMCA4LjQuMyAxMi41IDFMOTkgMzE2LjRjLTguOCAxNiAyLjggMzUuNiAyMSAzNS42aDgxLjNjLTEyLjQgMjguMi00MC42IDQ4LTczLjMgNDh6bTQ2My45LTc1LjZjLTIuMiA0MC42LTM1IDczLjQtNzUuNSA3NS41LTQ2LjEgMi41LTg0LjQtMzQuMy04NC40LTc5LjkgMC0yMS40IDguNC00MC44IDIyLjEtNTUuMWw0OS40IDgyLjRjNC41IDcuNiAxNC40IDEwIDIyIDUuNWwxMy43LTguMmM3LjYtNC41IDEwLTE0LjQgNS41LTIybC00OC42LTgwLjljNS4yLTEuMSAxMC41LTEuNiAxNS45LTEuNiA0NS42LS4xIDgyLjMgMzguMiA3OS45IDg0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vdW50YWluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzNC45MiA0NjIuN2wtMjg4LTQ0OEMzNDEuMDMgNS41NCAzMzAuODkgMCAzMjAgMHMtMjEuMDMgNS41NC0yNi45MiAxNC43bC0yODggNDQ4YTMyLjAwMSAzMi4wMDEgMCAwIDAtMS4xNyAzMi42NEEzMi4wMDQgMzIuMDA0IDAgMCAwIDMyIDUxMmg1NzZjMTEuNzEgMCAyMi40OC02LjM5IDI4LjA5LTE2LjY3YTMxLjk4MyAzMS45ODMgMCAwIDAtMS4xNy0zMi42M3pNMzIwIDkxLjE4TDQwNS4zOSAyMjRIMzIwbC02NCA2NC0zOC4wNi0zOC4wNkwzMjAgOTEuMTh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU1vdXNlUG9pbnRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDIuMTg5IDMyOS4xMjZIMTk2LjEwNWw1NS44MzEgMTM1Ljk5M2MzLjg4OSA5LjQyOC0uNTU1IDE5Ljk5OS05LjQ0NCAyMy45OTlsLTQ5LjE2NSAyMS40MjdjLTkuMTY1IDQtMTkuNDQzLS41NzEtMjMuMzMyLTkuNzE0bC01My4wNTMtMTI5LjEzNi04Ni42NjQgODkuMTM4QzE4LjcyOSA0NzIuNzEgMCA0NjMuNTU0IDAgNDQ3Ljk3N1YxOC4yOTlDMCAxLjg5OSAxOS45MjEtNi4wOTYgMzAuMjc3IDUuNDQzbDI4NC40MTIgMjkyLjU0MmMxMS40NzIgMTEuMTc5IDMuMDA3IDMxLjE0MS0xMi41IDMxLjE0MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTW91c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAzNTJhMTYwIDE2MCAwIDAgMCAxNjAgMTYwaDY0YTE2MCAxNjAgMCAwIDAgMTYwLTE2MFYyMjRIMHpNMTc2IDBoLTE2QTE2MCAxNjAgMCAwIDAgMCAxNjB2MzJoMTc2em00OCAwaC0xNnYxOTJoMTc2di0zMkExNjAgMTYwIDAgMCAwIDIyNCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNdWdIb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI3LjEgMTQ2LjVjMS4zIDcuNyA4IDEzLjUgMTYgMTMuNWgxNi41YzkuOCAwIDE3LjYtOC41IDE2LjMtMTgtMy44LTI4LjItMTYuNC01NC4yLTM2LjYtNzQuNy0xNC40LTE0LjctMjMuNi0zMy4zLTI2LjQtNTMuNUMxMTEuOCA1LjkgMTA1IDAgOTYuOCAwSDgwLjRDNzAuNiAwIDYzIDguNSA2NC4xIDE4YzMuOSAzMS45IDE4IDYxLjMgNDAuNiA4NC40IDEyIDEyLjIgMTkuNyAyNy41IDIyLjQgNDQuMXptMTEyIDBjMS4zIDcuNyA4IDEzLjUgMTYgMTMuNWgxNi41YzkuOCAwIDE3LjYtOC41IDE2LjMtMTgtMy44LTI4LjItMTYuNC01NC4yLTM2LjYtNzQuNy0xNC40LTE0LjctMjMuNi0zMy4zLTI2LjQtNTMuNUMyMjMuOCA1LjkgMjE3IDAgMjA4LjggMGgtMTYuNGMtOS44IDAtMTcuNSA4LjUtMTYuMyAxOCAzLjkgMzEuOSAxOCA2MS4zIDQwLjYgODQuNCAxMiAxMi4yIDE5LjcgMjcuNSAyMi40IDQ0LjF6TTQwMCAxOTJIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE5MmMwIDUzIDQzIDk2IDk2IDk2aDE5MmM1MyAwIDk2LTQzIDk2LTk2aDE2YzYxLjggMCAxMTItNTAuMiAxMTItMTEycy01MC4yLTExMi0xMTItMTEyem0wIDE2MGgtMTZ2LTk2aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFNdXNpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzAuMzggMS41MUwxNTAuNDEgOTZBMzIgMzIgMCAwIDAgMTI4IDEyNi41MXYyNjEuNDFBMTM5IDEzOSAwIDAgMCA5NiAzODRjLTUzIDAtOTYgMjguNjYtOTYgNjRzNDMgNjQgOTYgNjQgOTYtMjguNjYgOTYtNjRWMjE0LjMybDI1Ni03NXYxODQuNjFhMTM4LjQgMTM4LjQgMCAwIDAtMzItMy45M2MtNTMgMC05NiAyOC42Ni05NiA2NHM0MyA2NCA5NiA2NCA5Ni0yOC42NSA5Ni02NFYzMmEzMiAzMiAwIDAgMC00MS42Mi0zMC40OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV0d29ya1dpcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0MCAyNjR2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDM0NHYtNDBoNzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDIyNGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg3MnY0MEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTA0djQwSDY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC01NnYtNDBoMzA0djQwaC01NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgxNjBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNTJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNTZ2LTQwaDEwNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnpNMjU2IDEyOFY2NGgxMjh2NjRIMjU2em0tNjQgMzIwSDk2di02NGg5NnY2NHptMzUyIDBoLTk2di02NGg5NnY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV1dGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyODggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCA5Ni41IDAgMTc2YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFY0NjhjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMlYzMTYuNGM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMTQ0IDgwYy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MiA2NEg4OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djhIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyNzJjMCAzMC45MjggMjUuMDcyIDU2IDU2IDU2aDQ3MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4Vjg4YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNNTYgNDAwYTggOCAwIDAgMS04LThWMTQ0aDE2djI0OGE4IDggMCAwIDEtOCA4em0yMzYtMTZIMTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi04YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTUyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyem0yMDggMEgzNDhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bS0yMDgtOTZIMTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi04YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTUyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2OGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyem0yMDggMEgzNDhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTAtOTZIMTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDM2MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU5vdEVxdWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMjMuODhsNTEuODctNjYuODFjNS4zNy03LjAyIDQuMDQtMTcuMDYtMi45Ny0yMi40M0w0MTUuNjEgMy4zYy03LjAyLTUuMzgtMTcuMDYtNC4wNC0yMi40NCAyLjk3TDMxMS4wOSAxMTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyMDQuNTZsLTc0LjUzIDk2SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTUuNDlsLTUxLjg3IDY2LjgxYy01LjM3IDcuMDEtNC4wNCAxNy4wNSAyLjk3IDIyLjQzTDY0IDUwOC43YzcuMDIgNS4zOCAxNy4wNiA0LjA0IDIyLjQzLTIuOTdMMTY4LjUyIDQwMEg0MTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgyNDMuMDVsNzQuNTMtOTZINDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFOb3Rlc01lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDQwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptOTYgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHptMC0xOTJjMCA0LjQtMy42IDgtOCA4SDEwNGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTc2YzQuNCAwIDggMy42IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2JqZWN0R3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDEyOFY5NmgyMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjIwSDY0VjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJDNS4zNzMgMzIgMCAzNy4zNzMgMCA0NHY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIwdjMyMEgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTIwaDM4NHYyMGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTIwVjEyOHpNOTYgMjc2VjE0MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE2OGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjEzNmMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDEwOGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMzIwIDk2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjM2Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi01Mmg3MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTcyaDg0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPYmplY3RVbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDMyMHYyNmE2IDYgMCAwIDEtNiA2SDZhNiA2IDAgMCAxLTYtNnYtNTJhNiA2IDAgMCAxIDYtNmgyNlY5Nkg2YTYgNiAwIDAgMS02LTZWMzhhNiA2IDAgMCAxIDYtNmg1MmE2IDYgMCAwIDEgNiA2djI2aDI4OFYzOGE2IDYgMCAwIDEgNi02aDUyYTYgNiAwIDAgMSA2IDZ2NTJhNiA2IDAgMCAxLTYgNmgtMjZ2MTkyaDI2YTYgNiAwIDAgMSA2IDZ2NTJhNiA2IDAgMCAxLTYgNmgtNTJhNiA2IDAgMCAxLTYtNnYtMjZINjR6bTQ4MC02NHYtMzJoMjZhNiA2IDAgMCAwIDYtNnYtNTJhNiA2IDAgMCAwLTYtNmgtNTJhNiA2IDAgMCAwLTYgNnYyNkg0MDh2NzJoOGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NjRjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0aC02NGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di04SDE5MnY3MmgtMjZhNiA2IDAgMCAwLTYgNnY1MmE2IDYgMCAwIDAgNiA2aDUyYTYgNiAwIDAgMCA2LTZ2LTI2aDI4OHYyNmE2IDYgMCAwIDAgNiA2aDUyYTYgNiAwIDAgMCA2LTZ2LTUyYTYgNiAwIDAgMC02LTZoLTI2VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT2lsQ2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyOS44IDE2MC4zMUw0MTYgMjI0bC01MC40OS0yNS4yNGE2NC4wNyA2NC4wNyAwIDAgMC0yOC42Mi02Ljc2SDI4MHYtNDhoNTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE3NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNTZ2NDhoLTU2TDM3LjcyIDE2Ni44NmEzMS45IDMxLjkgMCAwIDAtNS43OS0uNTNDMTQuNjcgMTY2LjMzIDAgMTgwLjM2IDAgMTk4LjM0djk0Ljk1YzAgMTUuNDYgMTEuMDYgMjguNzIgMjYuMjggMzEuNDhMOTYgMzM3LjQ2VjM4NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDI3NC42M2M4LjU1IDAgMTYuNzUtMy40MiAyMi43Ni05LjUxbDIxMi4yNi0yMTQuNzVjMS41LTEuNSAyLjM0LTMuNTQgMi4zNC01LjY2VjE2OGMuMDEtNS4zMS01LjA4LTkuMTUtMTAuMTktNy42OXpNOTYgMjg4LjY3bC00OC04Ljczdi02Mi40M2w0OCA4LjczdjYyLjQzem00NTMuMzMgODQuNjZjMCAyMy41NiAxOS4xIDQyLjY3IDQyLjY3IDQyLjY3czQyLjY3LTE5LjEgNDIuNjctNDIuNjdTNTkyIDI4OCA1OTIgMjg4cy00Mi42NyA2MS43Ny00Mi42NyA4NS4zM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhT20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzYwLjYgNjAuOTRhMTAuNDMgMTAuNDMgMCAwIDAgMTQuNzYgMGwyMS41Ny0yMS41NmExMC40MyAxMC40MyAwIDAgMCAwLTE0Ljc2TDM3NS4zNSAzLjA2Yy00LjA4LTQuMDctMTAuNjgtNC4wNy0xNC43NiAwbC0yMS41NyAyMS41NmExMC40MyAxMC40MyAwIDAgMCAwIDE0Ljc2bDIxLjU4IDIxLjU2ek00MTIuMTEgMTkyYy0yNi42OSAwLTUxLjc3IDEwLjM5LTcwLjY0IDI5LjI1bC0yNC4yNSAyNC4yNWMtNi43OCA2Ljc3LTE1Ljc4IDEwLjUtMjUuMzggMTAuNUgyNDVjMTAuNTQtMjIuMSAxNC4xNy00OC4xMSA3LjczLTc1LjIzLTEwLjEtNDIuNTUtNDYuMzYtNzYuMTEtODkuNTItODMuMTktMzYuMTUtNS45My03MC45IDUuMDQtOTYuMDEgMjguNzgtNy4zNiA2Ljk2LTYuOTcgMTguODUgMS4xMiAyNC45M2wyNi4xNSAxOS42M2M1LjcyIDQuMyAxMy42NiA0LjMyIDE5LjItLjIxIDguNDUtNi45IDE5LjAyLTEwLjcxIDMwLjI3LTEwLjcxIDI2LjQ3IDAgNDguMDEgMjEuNTMgNDguMDEgNDhzLTIxLjU0IDQ4LTQ4LjAxIDQ4aC0zMS45Yy0xMS45NiAwLTE5Ljc0IDEyLjU4LTE0LjM5IDIzLjI4bDE2LjA5IDMyLjE3YzIuNTMgNS4wNiA3LjYgOC4xIDEzLjE3IDguNTVoMzMuMDNjMzUuMyAwIDY0LjAxIDI4LjcgNjQuMDEgNjRzLTI4LjcxIDY0LTY0LjAxIDY0Yy05Ni4wMiAwLTEyMi4zNS01NC4wMi0xNDUuMTUtOTIuMDMtNC41My03LjU1LTE0Ljc3LTMuNTgtMTQuNzkgNS4yMkMtLjA5IDQxNiA0MS4xMyA1MTIgMTU5Ljk0IDUxMmM3MC41OSAwIDEyOC4wMi01Ny40MiAxMjguMDItMTI4IDAtMjMuNDItNi43OC00NS4xLTE3LjgxLTY0aDIxLjY5YzI2LjY5IDAgNTEuNzctMTAuMzkgNzAuNjQtMjkuMjVsMjQuMjUtMjQuMjVjNi43OC02Ljc3IDE1Ljc4LTEwLjUgMjUuMzgtMTAuNSAxOS43OCAwIDM1Ljg4IDE2LjA5IDM1Ljg4IDM1Ljg4VjM5MmMwIDEzLjIzLTE4Ljc3IDI0LTMyLjAxIDI0LTM5LjQgMC02Ni42Ny0yNC4yNC04MS44Mi00Mi44OS00Ljc3LTUuODctMTQuMi0yLjU0LTE0LjIgNS4wMlY0MTZzMCA2NCA5Ni4wMiA2NGM0OC41NCAwIDk2LjAyLTM5LjQ3IDk2LjAyLTg4VjI5MS44OGMwLTU1LjA4LTQ0LjgtOTkuODgtOTkuODktOTkuODh6bTQyLjE4LTEyNC43M2MtODUuNTUgNjUuMTItMTY5LjA1IDIuNzUtMTcyLjU4LjA1LTYuMDItNC42Mi0xNC40NC00LjM4LTIwLjE0LjU1LTUuNzQgNC45Mi03LjI3IDEzLjE3LTMuNjYgMTkuOCAxLjYxIDIuOTUgNDAuMzcgNzIuMzQgMTE4LjggNzIuMzQgNzkuOTIgMCA5OC43OC0zMS4zNiAxMDEuNzUtMzcuNjYgMS4wMi0yLjEyIDEuNTMtNC40NyAxLjUzLTYuODNWODBjMC0xMy4yMi0xNS4xNC0yMC42OS0yNS43LTEyLjczelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFPdHRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMzJoLTMybC0xMy4yNS0xMy4yNUE2My45NyA2My45NyAwIDAgMCA1MTcuNDkgMEg0OTdjLTExLjE0IDAtMjIuMDggMi45MS0zMS43NSA4LjQzTDMxMiA5NmgtNTZDMTQ5Ljk2IDk2IDY0IDE4MS45NiA2NCAyODh2MS42MWMwIDMyLjc1LTE2IDYyLjE0LTM5LjU2IDg0Ljg5LTE4LjE5IDE3LjU4LTI4LjEgNDMuNjgtMjMuMTkgNzEuOCA2Ljc2IDM4LjggNDIuOSA2NS43IDgyLjI4IDY1LjdIMTkyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJzLTE0LjMzLTMyLTMyLTMySDgwYy04LjgzIDAtMTYtNy4xNy0xNi0xNnM3LjE3LTE2IDE2LTE2aDIyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNjRsMTQ5LjQ5LTgwLjVMNDQ4IDQxNmg4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMjguMjJsLTU1LjExLTExMC4yMUw1MjEuMTQgMTkySDU0NGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2VjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bS05NiAxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnMtNy4xNiAxNi0xNiAxNi0xNi03LjE2LTE2LTE2IDcuMTYtMTYgMTYtMTZ6bTMyIDk2aC0zNC45Nkw0MDcuMiAxOTguODRsLTEzLjc3LTI3LjU1TDUxMiAxMTJoNzcuMDVjLTYuNjIgMTguNTgtMjQuMjIgMzItNDUuMDUgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYU91dGRlbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTAwLjY5IDM2My4yOWMxMCAxMCAyNy4zMSAyLjkzIDI3LjMxLTExLjMxVjE2MGMwLTE0LjMyLTE3LjMzLTIxLjMxLTI3LjMxLTExLjMxbC05NiA5NmExNiAxNiAwIDAgMCAwIDIyLjYyek00MzIgNDE2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTMuMTctMTI4SDIwNC44M0ExMi44MiAxMi44MiAwIDAgMCAxOTIgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDIwNC44MyAzNTJoMjMwLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAyODh6bTAtMTI4SDIwNC44M0ExMi44MiAxMi44MiAwIDAgMCAxOTIgMTcyLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDIwNC44MyAyMjRoMjMwLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAyMTEuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAxNjB6TTQzMiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFnZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDY0SDY0YTY0IDY0IDAgMCAwLTY0IDY0djI1NmE2NCA2NCAwIDAgMCA2NCA2NGgzODRhNjQgNjQgMCAwIDAgNjQtNjRWMTI4YTY0IDY0IDAgMCAwLTY0LTY0ek0xNjAgMzY4SDgwYTE2IDE2IDAgMCAxLTE2LTE2di0xNmExNiAxNiAwIDAgMSAxNi0xNmg4MHptMTI4LTE2YTE2IDE2IDAgMCAxLTE2IDE2aC04MHYtNDhoODBhMTYgMTYgMCAwIDEgMTYgMTZ6bTE2MC0xMjhhMzIgMzIgMCAwIDEtMzIgMzJIOTZhMzIgMzIgMCAwIDEtMzItMzJ2LTY0YTMyIDMyIDAgMCAxIDMyLTMyaDMyMGEzMiAzMiAwIDAgMSAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFpbnRCcnVzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjcuMDIgMzA5LjM0Yy00MC4xMiAyLjU4LTc2LjUzIDE3Ljg2LTk3LjE5IDcyLjMtMi4zNSA2LjIxLTggOS45OC0xNC41OSA5Ljk4LTExLjExIDAtNDUuNDYtMjcuNjctNTUuMjUtMzQuMzVDMCA0MzkuNjIgMzcuOTMgNTEyIDEyOCA1MTJjNzUuODYgMCAxMjgtNDMuNzcgMTI4LTEyMC4xOSAwLTMuMTEtLjY1LTYuMDgtLjk3LTkuMTNsLTg4LjAxLTczLjM0ek00NTcuODkgMGMtMTUuMTYgMC0yOS4zNyA2LjcxLTQwLjIxIDE2LjQ1QzIxMy4yNyAxOTkuMDUgMTkyIDIwMy4zNCAxOTIgMjU3LjA5YzAgMTMuNyAzLjI1IDI2Ljc2IDguNzMgMzguN2w2My44MiA1My4xOGM3LjIxIDEuOCAxNC42NCAzLjAzIDIyLjM5IDMuMDMgNjIuMTEgMCA5OC4xMS00NS40NyAyMTEuMTYtMjU2LjQ2IDcuMzgtMTQuMzUgMTMuOS0yOS44NSAxMy45LTQ1Ljk5QzUxMiAyMC42NCA0ODYgMCA0NTcuODkgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFpbnRSb2xsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDEyOFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzUyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ6bTMyLTY0djEyOGMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDI1NmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMydi0zMmgxNjBjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NnYtNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFsZXR0ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDQuMyA1QzEwNC45IDI0LjQgMjQuOCAxMDQuMyA1LjIgMjAzLjRjLTM3IDE4NyAxMzEuNyAzMjYuNCAyNTguOCAzMDYuNyA0MS4yLTYuNCA2MS40LTU0LjYgNDIuNS05MS43LTIzLjEtNDUuNCA5LjktOTguNCA2MC45LTk4LjRoNzkuN2MzNS44IDAgNjQuOC0yOS42IDY0LjktNjUuM0M1MTEuNSA5Ny4xIDM2OC4xLTI2LjkgMjA0LjMgNXpNOTYgMzIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMzItMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTI4LTY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTI4IDY0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFsbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0NCAyNTZoMzUyYzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZIMzg0djEyOGwtNjQtMzItNjQgMzJWMEgxNDRjLTguOCAwLTE2IDcuMi0xNiAxNnYyMjRjMCA4LjggNy4yIDE2IDE2IDE2em00ODAgMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djY0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNmgtNDh2LTY0aDQ4em0tMzM2IDY0SDEyOHYtNjRoMTYwdjY0em0yMjQgMEgzNTJ2LTY0aDE2MHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFwZXJQbGFuZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYgMy4yTDEyLjUgMjcwLjZjLTE4LjEgMTAuNC0xNS44IDM1LjYgMi4yIDQzLjJMMTIxIDM1OC40bDI4Ny4zLTI1My4yYzUuNS00LjkgMTMuMyAyLjYgOC42IDguM0wxNzYgNDA3djgwLjVjMCAyMy42IDI4LjUgMzIuOSA0Mi41IDE1LjhMMjgyIDQyNmwxMjQuNiA1Mi4yYzE0LjIgNiAzMC40LTIuOSAzMy0xOC4ybDcyLTQzMkM1MTUgNy44IDQ5My4zLTYuOCA0NzYgMy4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXBlcmNsaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMuMjQ2IDQ2Ni4xNDJjLTU4LjQzLTYwLjI4OS01Ny4zNDEtMTU3LjUxMSAxLjM4Ni0yMTcuNTgxTDI1NC4zOTIgMzRjNDQuMzE2LTQ1LjMzMiAxMTYuMzUxLTQ1LjMzNiAxNjAuNjcxIDAgNDMuODkgNDQuODk0IDQzLjk0MyAxMTcuMzI5IDAgMTYyLjI3NkwyMzIuMjE0IDM4My4xMjhjLTI5Ljg1NSAzMC41MzctNzguNjMzIDMwLjExMS0xMDcuOTgyLS45OTgtMjguMjc1LTI5Ljk3LTI3LjM2OC03Ny40NzMgMS40NTItMTA2Ljk1M2wxNDMuNzQzLTE0Ni44MzVjNi4xODItNi4zMTQgMTYuMzEyLTYuNDIyIDIyLjYyNi0uMjQxbDIyLjg2MSAyMi4zNzljNi4zMTUgNi4xODIgNi40MjIgMTYuMzEyLjI0MSAyMi42MjZMMTcxLjQyNyAzMTkuOTI3Yy00LjkzMiA1LjA0NS01LjIzNiAxMy40MjgtLjY0OCAxOC4yOTIgNC4zNzIgNC42MzQgMTEuMjQ1IDQuNzExIDE1LjY4OC4xNjVsMTgyLjg0OS0xODYuODUxYzE5LjYxMy0yMC4wNjIgMTkuNjEzLTUyLjcyNS0uMDExLTcyLjc5OC0xOS4xODktMTkuNjI3LTQ5Ljk1Ny0xOS42MzctNjkuMTU0IDBMOTAuMzkgMjkzLjI5NWMtMzQuNzYzIDM1LjU2LTM1LjI5OSA5My4xMi0xLjE5MSAxMjguMzEzIDM0LjAxIDM1LjA5MyA4OC45ODUgMzUuMTM3IDEyMy4wNTguMjg2bDE3Mi4wNi0xNzUuOTk5YzYuMTc3LTYuMzE5IDE2LjMwNy02LjQzMyAyMi42MjYtLjI1NmwyMi44NzcgMjIuMzY0YzYuMzE5IDYuMTc3IDYuNDM0IDE2LjMwNy4yNTYgMjIuNjI2bC0xNzIuMDYgMTc1Ljk5OGMtNTkuNTc2IDYwLjkzOC0xNTUuOTQzIDYwLjIxNi0yMTQuNzctLjQ4NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFyYWNodXRlQm94IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMS45IDE3NWMtOS4xLTc1LjYtNzguNC0xMzIuNC0xNTguMy0xNTguN0MzOTAgNTUuNyA0MTYgMTE2LjkgNDE2IDE5MmgyOC4xTDMyNy41IDMyMS41Yy0yLjUtLjYtNC44LTEuNS03LjUtMS41aC00OFYxOTJoMTEyQzM4NCA3Ni44IDMxNS4xIDAgMjU2IDBTMTI4IDc2LjggMTI4IDE5MmgxMTJ2MTI4aC00OGMtMi43IDAtNSAuOS03LjUgMS41TDY3LjkgMTkySDk2YzAtNzUuMSAyNi0xMzYuMyA2Mi40LTE3NS43Qzc4LjUgNDIuNyA5LjIgOTkuNS4xIDE3NWMtMS4xIDkuMSA2LjggMTcgMTYgMTdoOC43bDEzNi43IDE1MS45Yy0uNyAyLjYtMS42IDUuMi0xLjYgOC4xdjEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxMjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzUyYzAtMi45LS45LTUuNC0xLjYtOC4xTDQ4Ny4xIDE5Mmg4LjdjOS4zIDAgMTcuMi03LjggMTYuMS0xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFyYWdyYXBoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0OHYzMmExNiAxNiAwIDAgMS0xNiAxNmgtNDh2MzY4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlY5NmgtMzJ2MzY4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlYzNTJoLTMyYTE2MCAxNjAgMCAwIDEgMC0zMjBoMjQwYTE2IDE2IDAgMCAxIDE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXJraW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTI0MCAzMjBoLTQ4djQ4YzAgOC44LTcuMiAxNi0xNiAxNmgtMzJjLTguOCAwLTE2LTcuMi0xNi0xNlYxNDRjMC04LjggNy4yLTE2IDE2LTE2aDk2YzUyLjkgMCA5NiA0My4xIDk2IDk2cy00My4xIDk2LTk2IDk2em0wLTEyOGgtNDh2NjRoNDhjMTcuNiAwIDMyLTE0LjQgMzItMzJzLTE0LjQtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhc3Nwb3J0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOS42MiAxNzZoMzkuMDljMS40OS0yNy4wMyA2LjU0LTUxLjM1IDE0LjIxLTcwLjQxLTI3LjcxIDEzLjI0LTQ4LjAyIDM5LjE5LTUzLjMgNzAuNDF6bTAgMzJjNS4yOSAzMS4yMiAyNS41OSA1Ny4xNyA1My4zIDcwLjQxLTcuNjgtMTkuMDYtMTIuNzItNDMuMzgtMTQuMjEtNzAuNDFoLTM5LjA5ek0yMjQgMjg2LjY5YzcuNjktNy40NSAyMC43Ny0zNC40MiAyMy40My03OC42OWgtNDYuODdjMi42NyA0NC4yNiAxNS43NSA3MS4yNCAyMy40NCA3OC42OXpNMjAwLjU3IDE3Nmg0Ni44N2MtMi42Ni00NC4yNi0xNS43NC03MS4yNC0yMy40My03OC42OS03LjcgNy40NS0yMC43OCAzNC40My0yMy40NCA3OC42OXptNjQuNTEgMTAyLjQxYzI3LjcxLTEzLjI0IDQ4LjAyLTM5LjE5IDUzLjMtNzAuNDFoLTM5LjA5Yy0xLjQ5IDI3LjAzLTYuNTMgNTEuMzUtMTQuMjEgNzAuNDF6TTQxNiAwSDY0QzI4LjY1IDAgMCAyOC42NSAwIDY0djM4NGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM1MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bS04MCA0MTZIMTEyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2aDIyNGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNnptLTExMi05NmMtNzAuNjkgMC0xMjgtNTcuMzEtMTI4LTEyOFMxNTMuMzEgNjQgMjI0IDY0czEyOCA1Ny4zMSAxMjggMTI4LTU3LjMxIDEyOC0xMjggMTI4em00MS4wOC0yMTQuNDFjNy42OCAxOS4wNiAxMi43MiA0My4zOCAxNC4yMSA3MC40MWgzOS4wOWMtNS4yOC0zMS4yMi0yNS41OS01Ny4xNy01My4zLTcwLjQxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQYXN0YWZhcmlhbmlzbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQuNTQgMzQ3LjY3Yy0zMi43LTEyLjUyLTU3LjM2IDQuMjUtNzUuMzcgMTYuNDUtMTcuMDYgMTEuNTMtMjMuMjUgMTQuNDItMzEuNDEgMTEuMzYtOC4xMi0zLjA5LTEwLjgzLTkuMzgtMTUuODktMjkuMzgtMy4zMy0xMy4xNS03LjQ0LTI5LjMyLTE3Ljk1LTQyLjY1IDIuMjQtMi45MSA0LjQzLTUuNzkgNi4zOC04LjU3QzUwMC40NyAzMDQuNDUgNTEzLjcxIDMxMiA1MzIgMzEyYzMzLjk1IDAgNTAuODctMjUuNzggNjIuMDYtNDIuODMgMTAuNTktMTYuMTQgMTUtMjEuMTcgMjEuOTQtMjEuMTcgMTMuMjUgMCAyNC0xMC43NSAyNC0yNHMtMTAuNzUtMjQtMjQtMjRjLTMzLjk1IDAtNTAuODcgMjUuNzgtNjIuMDYgNDIuODMtMTAuNiAxNi4xNC0xNSAyMS4xNy0yMS45NCAyMS4xNy0xNy4zMSAwLTM3LjQ4LTYxLjQzLTk3LjI2LTEwMS45MWwxNy4yNS0zNC41QzQ4NS40MyAxMjUuNSA1MTIgOTcuOTggNTEyIDY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRzLTY0IDI4LjY1LTY0IDY0YzAgMTMuMDIgMy45NCAyNS4xIDEwLjYyIDM1LjIxbC0xOC4xNSAzNi4zYy0xNi45OC00LjYtMzUuNi03LjUxLTU2LjQ2LTcuNTFzLTM5LjQ5IDIuOTEtNTYuNDYgNy41MWwtMTguMTUtMzYuM0MyNTIuMDYgODkuMSAyNTYgNzcuMDIgMjU2IDY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRzLTY0IDI4LjY1LTY0IDY0YzAgMzMuOTggMjYuNTYgNjEuNSA2MC4wMiA2My42bDE3LjI1IDM0LjVDMTQ1LjY4IDIwMi40NCAxMjUuMTUgMjY0IDEwOCAyNjRjLTYuOTQgMC0xMS4zNC01LjAzLTIxLjk0LTIxLjE3Qzc0Ljg4IDIyNS43OCA1Ny45NiAyMDAgMjQgMjAwYy0xMy4yNSAwLTI0IDEwLjc1LTI0IDI0czEwLjc1IDI0IDI0IDI0YzYuOTQgMCAxMS4zNCA1LjAzIDIxLjk0IDIxLjE3QzU3LjEzIDI4Ni4yMiA3NC4wNSAzMTIgMTA4IDMxMmMxOC4yOSAwIDMxLjUzLTcuNTUgNDEuNy0xNy4xMSAxLjk1IDIuNzkgNC4xNCA1LjY2IDYuMzggOC41Ny0xMC41MSAxMy4zMy0xNC42MiAyOS41LTE3Ljk1IDQyLjY1LTUuMDYgMjAtNy43NyAyNi4yOC0xNS44OSAyOS4zOC04LjExIDMuMDYtMTQuMzMuMTctMzEuNDEtMTEuMzYtMTguMDMtMTIuMi00Mi43Mi0yOC45Mi03NS4zNy0xNi40NS0xMi4zOSA0LjcyLTE4LjU5IDE4LjU4LTEzLjg3IDMwLjk3IDQuNzIgMTIuNDEgMTguNjEgMTguNjEgMzAuOTcgMTMuODggOC4xNi0zLjA5IDE0LjM0LS4xOSAzMS4zOSAxMS4zNiAxMy41NSA5LjE2IDMwLjgzIDIwLjg2IDUyLjQyIDIwLjg0IDcuMTcgMCAxNC44My0xLjI4IDIyLjk3LTQuMzkgMzIuNjYtMTIuNDQgMzkuOTgtNDEuMzMgNDUuMzMtNjIuNDQgMi4yMS04LjcyIDMuOTktMTQuNDkgNS45NS0xOC44NyAxNi42MiAxMy42MSAzNi45NSAyNS44OCA2MS42NCAzNC4xNy05Ljk2IDM3LTMyLjE4IDkwLjgtNjAuMjYgOTAuOC0xMy4yNSAwLTI0IDEwLjc1LTI0IDI0czEwLjc1IDI0IDI0IDI0YzY2Ljc0IDAgOTcuMDUtODguNjMgMTA3LjQyLTEyOS4xNCA2LjY5LjYgMTMuNDIgMS4xNCAyMC41OCAxLjE0czEzLjg5LS41NCAyMC41OC0xLjE0QzM1MC45NSA0MjMuMzcgMzgxLjI2IDUxMiA0NDggNTEyYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRzLTEwLjc1LTI0LTI0LTI0Yy0yNy45NCAwLTUwLjIxLTUzLjgxLTYwLjIyLTkwLjgxIDI0LjY5LTguMjkgNDUtMjAuNTYgNjEuNjItMzQuMTYgMS45NiA0LjM4IDMuNzQgMTAuMTUgNS45NSAxOC44NyA1LjM0IDIxLjExIDEyLjY3IDUwIDQ1LjMzIDYyLjQ0IDguMTQgMy4xMSAxNS44IDQuMzkgMjIuOTcgNC4zOSAyMS41OSAwIDM4Ljg3LTExLjY5IDUyLjQyLTIwLjg0IDE3LjA1LTExLjU1IDIzLjI4LTE0LjQ1IDMxLjM5LTExLjM2IDEyLjM5IDQuNzUgMjYuMjctMS40NyAzMC45Ny0xMy44OCA0LjcxLTEyLjQtMS40OS0yNi4yNi0xMy44OS0zMC45OHpNNDQ4IDQ4YzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnptLTI1NiAwYzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGFzdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDE4NGMwLTMwLjg3OSAyNS4xMjItNTYgNTYtNTZoMTM2VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNGgtODAuNjFDMjA0LjMwNiAxMi44OSAxODMuNjM3IDAgMTYwIDBzLTQ0LjMwNiAxMi44OS01NS4zOSAzMkgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnYzMzZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNFYxODR6bTMyLTE0NGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjRzLTEwLjc0NSAyNC0yNCAyNC0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0em0xODQgMjQ4aDEwNHYyMDBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDE4NGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjE4NGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTM2djEwNGMwIDEzLjIgMTAuOCAyNCAyNCAyNHptMTA0LTM4LjA1OVYyNTZoLTk2di05Nmg2LjA1OWEyNCAyNCAwIDAgMSAxNi45NyA3LjAyOWw2NS45NDEgNjUuOTQxYTI0LjAwMiAyNC4wMDIgMCAwIDEgNy4wMyAxNi45NzF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhdXNlQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bS0xNiAzMjhjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djE2MHptMTEyIDBjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2djE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGF1c2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTQ0IDQ3OUg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWNzljMC0yNi41IDIxLjUtNDggNDgtNDhoOTZjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4em0zMDQtNDhWNzljMC0yNi41LTIxLjUtNDgtNDgtNDhoLTk2Yy0yNi41IDAtNDggMjEuNS00OCA0OHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBhdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMjI0Yy03OS40MSAwLTE5MiAxMjIuNzYtMTkyIDIwMC4yNSAwIDM0LjkgMjYuODEgNTUuNzUgNzEuNzQgNTUuNzUgNDguODQgMCA4MS4wOS0yNS4wOCAxMjAuMjYtMjUuMDggMzkuNTEgMCA3MS44NSAyNS4wOCAxMjAuMjYgMjUuMDggNDQuOTMgMCA3MS43NC0yMC44NSA3MS43NC01NS43NUM0NDggMzQ2Ljc2IDMzNS40MSAyMjQgMjU2IDIyNHptLTE0Ny4yOC0xMi42MWMtMTAuNC0zNC42NS00Mi40NC01Ny4wOS03MS41Ni01MC4xMy0yOS4xMiA2Ljk2LTQ0LjI5IDQwLjY5LTMzLjg5IDc1LjM0IDEwLjQgMzQuNjUgNDIuNDQgNTcuMDkgNzEuNTYgNTAuMTMgMjkuMTItNi45NiA0NC4yOS00MC42OSAzMy44OS03NS4zNHptODQuNzItMjAuNzhjMzAuOTQtOC4xNCA0Ni40Mi00OS45NCAzNC41OC05My4zNnMtNDYuNTItNzIuMDEtNzcuNDYtNjMuODctNDYuNDIgNDkuOTQtMzQuNTggOTMuMzZjMTEuODQgNDMuNDIgNDYuNTMgNzIuMDIgNzcuNDYgNjMuODd6bTI4MS4zOS0yOS4zNGMtMjkuMTItNi45Ni02MS4xNSAxNS40OC03MS41NiA1MC4xMy0xMC40IDM0LjY1IDQuNzcgNjguMzggMzMuODkgNzUuMzQgMjkuMTIgNi45NiA2MS4xNS0xNS40OCA3MS41Ni01MC4xMyAxMC40LTM0LjY1LTQuNzctNjguMzgtMzMuODktNzUuMzR6bS0xNTYuMjcgMjkuMzRjMzAuOTQgOC4xNCA2NS42Mi0yMC40NSA3Ny40Ni02My44NyAxMS44NC00My40Mi0zLjY0LTg1LjIxLTM0LjU4LTkzLjM2cy02NS42MiAyMC40NS03Ny40NiA2My44N2MtMTEuODQgNDMuNDIgMy42NCA4NS4yMiAzNC41OCA5My4zNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVhY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTg0IDI0OGMwIDMxLjkzLTguMiA2MS45Ny0yMi41NyA4OC4xN0wyODAgMjQwLjYzVjc0Ljk3Yzg2LjIzIDE1LjIxIDE1MiA5MC41IDE1MiAxODEuMDN6TTIxNiA0MzcuMDNjLTMzLjg2LTUuOTctNjQuNDktMjEuMi04OS4yOS00My4wMkwyMTYgMzIyLjU3djExNC40NnptNjQtMTE0LjQ2TDM2OS4yOSAzOTRjLTI0LjggMjEuODItNTUuNDMgMzcuMDUtODkuMjkgNDMuMDJWMzIyLjU3em0tNjQtMjQ3LjZ2MTY1LjY2TDg2LjU3IDM0NC4xN0M3Mi4yIDMxNy45NyA2NCAyODcuOTMgNjQgMjU2YzAtOTAuNTMgNjUuNzctMTY1LjgyIDE1Mi0xODEuMDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOTQgNzQuMTdsLTYwLjExLTYwLjExYy0xOC43NS0xOC43NS00OS4xNi0xOC43NS02Ny45MSAwbC01Ni41NSA1Ni41NSAxMjguMDIgMTI4LjAyIDU2LjU1LTU2LjU1YzE4Ljc1LTE4Ljc1IDE4Ljc1LTQ5LjE1IDAtNjcuOTF6bS0yNDYuOC0yMC41M2MtMTUuNjItMTUuNjItNDAuOTQtMTUuNjItNTYuNTYgMEw3NS44IDE3Mi40M2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42MmwyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDEwMS44Mi0xMDEuODIgMjIuNjMgMjIuNjJMOTMuOTUgMjkwLjAzQTMyNy4wMzggMzI3LjAzOCAwIDAgMCAuMTcgNDg1LjExbC0uMDMuMjNjLTEuNyAxNS4yOCAxMS4yMSAyOC4yIDI2LjQ5IDI2LjUxYTMyNy4wMiAzMjcuMDIgMCAwIDAgMTk1LjM0LTkzLjhsMTk2Ljc5LTE5Ni43OS04Mi43Ny04Mi43Ny04NC44NS04NC44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuRmFuY3kgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzkuMTggMjgyLjk0YTMyLjAwNSAzMi4wMDUgMCAwIDAtMjAuMjQgMjAuMjRMMCA0ODBsNC42OSA0LjY5IDkyLjg5LTkyLjg5Yy0uNjYtMi41Ni0xLjU3LTUuMDMtMS41Ny03LjggMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMmMtMi43NyAwLTUuMjQtLjkxLTcuOC0xLjU3bC05Mi44OSA5Mi44OUwzMiA1MTJsMTc2LjgyLTU4Ljk0YTMxLjk4MyAzMS45ODMgMCAwIDAgMjAuMjQtMjAuMjRsMzMuMDctODQuMDctOTguODgtOTguODgtODQuMDcgMzMuMDd6TTM2OS4yNSAyOC4zMkwxODYuMTQgMjI3LjgxbDk3Ljg1IDk3Ljg1IDE5OS40OS0xODMuMTFDNTY4LjQgNjcuNDggNDQzLjczLTU1Ljk0IDM2OS4yNSAyOC4zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuTmliIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzNi42IDEzOC43OWE2NC4wMDMgNjQuMDAzIDAgMCAwLTQzLjMxIDQxLjM1TDAgNDYwbDE0LjY5IDE0LjY5TDE2NC44IDMyNC41OGMtMi45OS02LjI2LTQuOC0xMy4xOC00LjgtMjAuNTggMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OGMtNy40IDAtMTQuMzItMS44MS0yMC41OC00LjhMMzcuMzEgNDk3LjMxIDUyIDUxMmwyNzkuODYtOTMuMjlhNjQuMDAzIDY0LjAwMyAwIDAgMCA0MS4zNS00My4zMUw0MTYgMjI0IDI4OCA5NmwtMTUxLjQgNDIuNzl6bTM2MS4zNC02NC42MmwtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzUgMTguNzUtNDkuMTUgMC02Ny45MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA0ODBINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDM1MmMyNi41IDAgNDggMjEuNSA0OCA0OHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDh6TTIzOC4xIDE3Ny45TDEwMi40IDMxMy42bC02LjMgNTcuMWMtLjggNy42IDUuNiAxNC4xIDEzLjMgMTMuM2w1Ny4xLTYuM0wzMDIuMiAyNDJjMi4zLTIuMyAyLjMtNi4xIDAtOC41TDI0Ni43IDE3OGMtMi41LTIuNC02LjMtMi40LTguNi0uMXpNMzQ1IDE2NS4xTDMxNC45IDEzNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTIzLjEgMjMuMWMtMi4zIDIuMy0yLjMgNi4xIDAgOC41bDU1LjUgNTUuNWMyLjMgMi4zIDYuMSAyLjMgOC41IDBMMzQ1IDE5OWM5LjMtOS4zIDkuMy0yNC41IDAtMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI5MC43NCA5My4yNGwxMjguMDIgMTI4LjAyLTI3Ny45OSAyNzcuOTktMTE0LjE0IDEyLjZDMTEuMzUgNTEzLjU0LTEuNTYgNTAwLjYyLjE0IDQ4NS4zNGwxMi43LTExNC4yMiAyNzcuOS0yNzcuODh6bTIwNy4yLTE5LjA2bC02MC4xMS02MC4xMWMtMTguNzUtMTguNzUtNDkuMTYtMTguNzUtNjcuOTEgMGwtNTYuNTUgNTYuNTUgMTI4LjAyIDEyOC4wMiA1Ni41NS01Ni41NWMxOC43NS0xOC43NiAxOC43NS00OS4xNiAwLTY3LjkxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZW5jaWxBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk3LjkgMTQyLjFsLTQ2LjEgNDYuMWMtNC43IDQuNy0xMi4zIDQuNy0xNyAwbC0xMTEtMTExYy00LjctNC43LTQuNy0xMi4zIDAtMTdsNDYuMS00Ni4xYzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwbDYwLjEgNjAuMWMxOC44IDE4LjcgMTguOCA0OS4xIDAgNjcuOXpNMjg0LjIgOTkuOEwyMS42IDM2Mi40LjQgNDgzLjljLTIuOSAxNi40IDExLjQgMzAuNiAyNy44IDI3LjhsMTIxLjUtMjEuMyAyNjIuNi0yNjIuNmM0LjctNC43IDQuNy0xMi4zIDAtMTdsLTExMS0xMTFjLTQuOC00LjctMTIuNC00LjctMTcuMSAwek0xMjQuMSAzMzkuOWMtNS41LTUuNS01LjUtMTQuMyAwLTE5LjhsMTU0LTE1NGM1LjUtNS41IDE0LjMtNS41IDE5LjggMHM1LjUgMTQuMyAwIDE5LjhsLTE1NCAxNTRjLTUuNSA1LjUtMTQuMyA1LjUtMTkuOCAwek04OCA0MjRoNDh2MzYuM2wtNjQuNSAxMS4zLTMxLjEtMzEuMUw1MS43IDM3Nkg4OHY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVuY2lsUnVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA5LjQ2IDI0NC4wNGwxMzQuNTgtMTM0LjU2LTQ0LjEyLTQ0LjEyLTYxLjY4IDYxLjY4YTcuOTE5IDcuOTE5IDAgMCAxLTExLjIxIDBsLTExLjIxLTExLjIxYy0zLjEtMy4xLTMuMS04LjEyIDAtMTEuMjFsNjEuNjgtNjEuNjgtMzMuNjQtMzMuNjVDMTMxLjQ3LTMuMSAxMTEuMzktMy4xIDk5IDkuMjlMOS4yOSA5OWMtMTIuMzggMTIuMzktMTIuMzkgMzIuNDcgMCA0NC44NmwxMDAuMTcgMTAwLjE4em0zODguNDctMTE2LjhjMTguNzYtMTguNzYgMTguNzUtNDkuMTcgMC02Ny45M2wtNDUuMjUtNDUuMjVjLTE4Ljc2LTE4Ljc2LTQ5LjE4LTE4Ljc2LTY3Ljk1IDBsLTQ2LjAyIDQ2LjAxIDExMy4yIDExMy4yIDQ2LjAyLTQ2LjAzek0zMTYuMDggODIuNzFsLTI5NyAyOTYuOTZMLjMyIDQ4Ny4xMWMtMi41MyAxNC40OSAxMC4wOSAyNy4xMSAyNC41OSAyNC41NmwxMDcuNDUtMTguODRMNDI5LjI4IDE5NS45IDMxNi4wOCA4Mi43MXptMTg2LjYzIDI4NS40M2wtMzMuNjQtMzMuNjQtNjEuNjggNjEuNjhjLTMuMSAzLjEtOC4xMiAzLjEtMTEuMjEgMGwtMTEuMjEtMTEuMjFjLTMuMDktMy4xLTMuMDktOC4xMiAwLTExLjIxbDYxLjY4LTYxLjY4LTQ0LjE0LTQ0LjE0TDI2Ny45MyA0MDIuNWwxMDAuMjEgMTAwLjJjMTIuMzkgMTIuMzkgMzIuNDcgMTIuMzkgNDQuODYgMGw4OS43MS04OS43YzEyLjM5LTEyLjM5IDEyLjM5LTMyLjQ3IDAtNDQuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBlb3BsZUFycm93cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiwxMjhBNjQsNjQsMCwxLDAsMzIsNjQsNjQsNjQsMCwwLDAsOTYsMTI4Wm0wLDE3Ni4wOGE0NC4xMSw0NC4xMSwwLDAsMSwxMy42NC0zMkwxODEuNzcsMjA0YzEuNjUtMS41NSwzLjc3LTIuMzEsNS42MS0zLjU3QTYzLjkxLDYzLjkxLDAsMCwwLDEyOCwxNjBINjRBNjQsNjQsMCwwLDAsMCwyMjR2OTZhMzIsMzIsMCwwLDAsMzIsMzJWNDgwYTMyLDMyLDAsMCwwLDMyLDMyaDY0YTMyLDMyLDAsMCwwLDMyLTMyVjM4My42MWwtNTAuMzYtNDcuNTNBNDQuMDgsNDQuMDgsMCwwLDEsOTYsMzA0LjA4Wk00ODAsMTI4YTY0LDY0LDAsMSwwLTY0LTY0QTY0LDY0LDAsMCwwLDQ4MCwxMjhabTMyLDMySDQ0OGE2My45MSw2My45MSwwLDAsMC01OS4zOCw0MC40MmMxLjg0LDEuMjcsNCwyLDUuNjIsMy41OWw3Mi4xMiw2OC4wNmE0NC4zNyw0NC4zNywwLDAsMSwwLDY0TDQxNiwzODMuNjJWNDgwYTMyLDMyLDAsMCwwLDMyLDMyaDY0YTMyLDMyLDAsMCwwLDMyLTMyVjM1MmEzMiwzMiwwLDAsMCwzMi0zMlYyMjRBNjQsNjQsMCwwLDAsNTEyLDE2MFpNNDQ0LjQsMjk1LjM0bC03Mi4xMi02OC4wNkExMiwxMiwwLDAsMCwzNTIsMjM2djM2SDIyNFYyMzZhMTIsMTIsMCwwLDAtMjAuMjgtOC43M0wxMzEuNiwyOTUuMzRhMTIuNCwxMi40LDAsMCwwLDAsMTcuNDdsNzIuMTIsNjguMDdBMTIsMTIsMCwwLDAsMjI0LDM3Mi4xNFYzMzZIMzUydjM2LjE0YTEyLDEyLDAsMCwwLDIwLjI4LDguNzRsNzIuMTItNjguMDdBMTIuNCwxMi40LDAsMCwwLDQ0NC40LDI5NS4zNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVvcGxlQ2FycnkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzE1NC41IDAgMTI4IDAgODAgMjEuNSA4MCA0OHMyMS41IDQ4IDQ4IDQ4em0zODQgMGMyNi41IDAgNDgtMjEuNSA0OC00OFM1MzguNSAwIDUxMiAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTEyNS43IDM3Mi4xbC00NC0xMTAtNDEuMSA0Ni40LTIgMTguMiAyNy43IDY5LjJjNSAxMi41IDE3IDIwLjEgMjkuNyAyMC4xIDQgMCA4LS43IDExLjktMi4zIDE2LjQtNi42IDI0LjQtMjUuMiAxNy44LTQxLjZ6bS0zNC4yLTIwOS44TDU4NSAxNzguMWMtNC42LTIwLTE4LjYtMzYuOC0zNy41LTQ0LjktMTguNS04LTM5LTYuNy01Ni4xIDMuMy0yMi43IDEzLjQtMzkuNyAzNC41LTQ4LjEgNTkuNEw0MzIgMjI5LjggNDE2IDI0MHYtOTZjMC04LjgtNy4yLTE2LTE2LTE2SDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2djk2bC0xNi4xLTEwLjItMTEuMy0zMy45Yy04LjMtMjUtMjUuNC00Ni00OC4xLTU5LjQtMTcuMi0xMC0zNy42LTExLjMtNTYuMS0zLjMtMTguOSA4LjEtMzIuOSAyNC45LTM3LjUgNDQuOWwtMTguNCA4MC4yYy00LjYgMjAgLjcgNDEuMiAxNC40IDU2LjdsNjcuMiA3NS45IDEwLjEgOTIuNkMxMzAgNDk5LjggMTQzLjggNTEyIDE2MCA1MTJjMS4yIDAgMi4zLS4xIDMuNS0uMiAxNy42LTEuOSAzMC4yLTE3LjcgMjguMy0zNS4zbC0xMC4xLTkyLjhjLTEuNS0xMy02LjktMjUuMS0xNS42LTM1bC00My4zLTQ5IDE3LjYtNzAuMyA2LjggMjAuNGM0LjEgMTIuNSAxMS45IDIzLjQgMjQuNSAzMi42bDUxLjEgMzIuNWM0LjYgMi45IDEyLjEgNC42IDE3LjIgNWgxNjBjNS4xLS40IDEyLjYtMi4xIDE3LjItNWw1MS4xLTMyLjVjMTIuNi05LjIgMjAuNC0yMCAyNC41LTMyLjZsNi44LTIwLjQgMTcuNiA3MC4zLTQzLjMgNDljLTguNyA5LjktMTQuMSAyMi0xNS42IDM1bC0xMC4xIDkyLjhjLTEuOSAxNy42IDEwLjggMzMuNCAyOC4zIDM1LjMgMS4yLjEgMi4zLjIgMy41LjIgMTYuMSAwIDMwLTEyLjEgMzEuOC0yOC41bDEwLjEtOTIuNiA2Ny4yLTc1LjljMTMuNi0xNS41IDE5LTM2LjcgMTQuNC01Ni43ek00Ni4zIDM1OC4xbC00NCAxMTBjLTYuNiAxNi40IDEuNCAzNSAxNy44IDQxLjYgMTYuOCA2LjYgMzUuMS0xLjcgNDEuNi0xNy44bDI3LjctNjkuMi0yLTE4LjItNDEuMS00Ni40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXBwZXJIb3QgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMwLjY3IDI2My4xMlYxNzMuNGwtNTIuNzUtMjQuMjJDMjE5LjQ0IDIxOC43NiAxOTcuNTggNDAwIDU2IDQwMGE1NiA1NiAwIDAgMCAwIDExMmMyMTIuNjQgMCAzNzAuNjUtMTIyLjg3IDQxOS4xOC0yMTAuMzRsLTM3LjA1LTM4LjU0em0xMzEuMDktMTI4LjM3QzQ5My45MiA3NC45MSA0NzcuMTggMjYuNDggNDU4LjYyIDNhOCA4IDAgMCAwLTExLjkzLS41OWwtMjIuOSAyM2E4LjA2IDguMDYgMCAwIDAtLjg5IDEwLjIzYzYuODYgMTAuMzYgMTcuMDUgMzUuMS0xLjQgNzIuMzJBMTQyLjg1IDE0Mi44NSAwIDAgMCAzNjQuMzQgOTZjLTI4IDAtNTQgOC41NC03Ni4zNCAyMi41OWw3NC42NyAzNC4yOXY3OC4yNGg4OS4wOUw1MDYuNDQgMjg4YzMuMjYtMTIuNjIgNS41Ni0yNS42MyA1LjU2LTM5LjMxYTE1NCAxNTQgMCAwIDAtNTAuMjQtMTEzLjk0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQZXJjZW50IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTExMiAyMjRjNjEuOSAwIDExMi01MC4xIDExMi0xMTJTMTczLjkgMCAxMTIgMCAwIDUwLjEgMCAxMTJzNTAuMSAxMTIgMTEyIDExMnptMC0xNjBjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDgtNDgtMjEuNS00OC00OCAyMS41LTQ4IDQ4LTQ4em0yMjQgMjI0Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMnM1MC4xIDExMiAxMTIgMTEyIDExMi01MC4xIDExMi0xMTItNTAuMS0xMTItMTEyLTExMnptMCAxNjBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4ek0zOTIuMy4ybDMxLjYtLjFjMTkuNC0uMSAzMC45IDIxLjggMTkuNyAzNy44TDc3LjQgNTAxLjZhMjMuOTUgMjMuOTUgMCAwIDEtMTkuNiAxMC4ybC0zMy40LjFjLTE5LjUgMC0zMC45LTIxLjktMTkuNy0zNy44bDM2OC00NjMuN0MzNzcuMiA0IDM4NC41LjIgMzkyLjMuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyY2VudGFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDkuMjUgMTczLjI1YzI0Ljk5LTI0Ljk5IDI0Ljk5LTY1LjUyIDAtOTAuNTEtMjQuOTktMjQuOTktNjUuNTItMjQuOTktOTAuNTEgMC0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxIDI1IDI1IDY1LjUyIDI1IDkwLjUxIDB6bTI1NiAxNjUuNDljLTI0Ljk5LTI0Ljk5LTY1LjUyLTI0Ljk5LTkwLjUxIDAtMjQuOTkgMjQuOTktMjQuOTkgNjUuNTIgMCA5MC41MSAyNC45OSAyNC45OSA2NS41MiAyNC45OSA5MC41MSAwIDI1LTI0Ljk5IDI1LTY1LjUxIDAtOTAuNTF6bS0xLjk0LTIzMS40M2wtMjIuNjItMjIuNjJjLTEyLjUtMTIuNS0zMi43Ni0xMi41LTQ1LjI1IDBMMjAuNjkgMzU5LjQ0Yy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1bDIyLjYyIDIyLjYyYzEyLjUgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDBsMjc0Ljc1LTI3NC43NWMxMi41LTEyLjQ5IDEyLjUtMzIuNzUgMC00NS4yNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGVyc29uQm9vdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMGgtNjR2MTc2em0zMi0yNzJoLTUwLjlsLTQ1LjItNDUuM0MxMTUuOCAxNjYuNiA5OS43IDE2MCA4Mi43IDE2MEg2NGMtMTcuMSAwLTMzLjIgNi43LTQ1LjMgMTguOEM2LjcgMTkwLjkgMCAyMDcgMCAyMjQuMUwuMiAzMjAgMCA0ODBjMCAxNy43IDE0LjMgMzIgMzEuOSAzMiAxNy42IDAgMzItMTQuMyAzMi0zMmwuMS0xMDAuN2MuOS41IDEuNiAxLjMgMi41IDEuN2wyOS4xIDQzdjU2YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ2LTU2LjVjMC05LjktMi4zLTE5LjgtNi43LTI4LjZsLTQxLjItNjEuM1YyNTNsMjAuOSAyMC45YzkuMSA5LjEgMjEuMSAxNC4xIDMzLjkgMTQuMUgyMjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzJ6TTY0IDEyOGMyNi41IDAgNDgtMjEuNSA0OC00OFM5MC41IDMyIDY0IDMyIDE2IDUzLjUgMTYgODBzMjEuNSA0OCA0OCA0OHptMjI0LTk2bDMxLjUgMjIzLjEtMzAuOSAxNTQuNmMtNC4zIDIxLjYgMTMgMzguMyAzMS40IDM4LjMgMTUuMiAwIDI4LTkuMSAzMi4zLTMwLjQuOSAxNi45IDE0LjYgMzAuNCAzMS43IDMwLjQgMTcuNyAwIDMyLTE0LjMgMzItMzIgMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMlYwSDI4OHYzMnptLTk2IDB2MTYwaDY0VjBoLTMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnpNNTQ0IDBoLTMydjQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuMzkgMzYxLjhsLTExMi00OGEyNCAyNCAwIDAgMC0yOCA2LjlsLTQ5LjYgNjAuNkEzNzAuNjYgMzcwLjY2IDAgMCAxIDEzMC42IDIwNC4xMWw2MC42LTQ5LjZhMjMuOTQgMjMuOTQgMCAwIDAgNi45LTI4bC00OC0xMTJBMjQuMTYgMjQuMTYgMCAwIDAgMTIyLjYuNjFsLTEwNCAyNEEyNCAyNCAwIDAgMCAwIDQ4YzAgMjU2LjUgMjA3LjkgNDY0IDQ2NCA0NjRhMjQgMjQgMCAwIDAgMjMuNC0xOC42bDI0LTEwNGEyNC4yOSAyNC4yOSAwIDAgMC0xNC4wMS0yNy42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OC4yIDM4MS40bC00OS42LTYwLjZjLTYuOC04LjMtMTguMi0xMS4xLTI4LTYuOWwtMTEyIDQ4Yy0xMC43IDQuNi0xNi41IDE2LjEtMTMuOSAyNy41bDI0IDEwNGMyLjUgMTAuOCAxMi4xIDE4LjYgMjMuNCAxOC42IDEwMC43IDAgMTkzLjctMzIuNCAyNjkuNy04Ni45bC04MC02MS44Yy0xMC45IDYuNS0yMi4xIDEyLjctMzMuNiAxOC4xem0zNjUuNiA3Ni43TDQ3NS4xIDMzNS41QzUzNy45IDI1Ni40IDU3NiAxNTYuOSA1NzYgNDhjMC0xMS4yLTcuNy0yMC45LTE4LjYtMjMuNGwtMTA0LTI0Yy0xMS4zLTIuNi0yMi45IDMuMy0yNy41IDEzLjlsLTQ4IDExMmMtNC4yIDkuOC0xLjQgMjEuMyA2LjkgMjhsNjAuNiA0OS42Yy0xMi4yIDI2LjEtMjcuOSA1MC4zLTQ2IDcyLjhMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaG9uZVNxdWFyZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhBNDggNDggMCAwIDAgMCA4MHYzNTJhNDggNDggMCAwIDAgNDggNDhoMzUyYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjgwYTQ4IDQ4IDAgMCAwLTQ4LTQ4em0tMTYuMzkgMzA3LjM3bC0xNSA2NUExNSAxNSAwIDAgMSAzNTQgNDE2QzE5NCA0MTYgNjQgMjg2LjI5IDY0IDEyNmExNS43IDE1LjcgMCAwIDEgMTEuNjMtMTQuNjFsNjUtMTVBMTguMjMgMTguMjMgMCAwIDEgMTQ0IDk2YTE2LjI3IDE2LjI3IDAgMCAxIDEzLjc5IDkuMDlsMzAgNzBBMTcuOSAxNy45IDAgMCAxIDE4OSAxODFhMTcgMTcgMCAwIDEtNS41IDExLjYxbC0zNy44OSAzMWEyMzEuOTEgMjMxLjkxIDAgMCAwIDExMC43OCAxMTAuNzhsMzEtMzcuODlBMTcgMTcgMCAwIDEgMjk5IDI5MWExNy44NSAxNy44NSAwIDAgMSA1LjkxIDEuMjFsNzAgMzBBMTYuMjUgMTYuMjUgMCAwIDEgMzg0IDMzNmExNy40MSAxNy40MSAwIDAgMS0uMzkgMy4zN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek05NCA0MTZjLTcuMDMzIDAtMTMuMDU3LTQuODczLTE0LjYxNi0xMS42MjdsLTE0Ljk5OC02NWExNSAxNSAwIDAgMSA4LjcwNy0xNy4xNmw2OS45OTgtMjkuOTk5YTE1IDE1IDAgMCAxIDE3LjUxOCA0LjI4OWwzMC45OTcgMzcuODg1YzQ4Ljk0NC0yMi45NjMgODguMjk3LTYyLjg1OCAxMTAuNzgxLTExMC43OGwtMzcuODg2LTMwLjk5N2ExNS4wMDEgMTUuMDAxIDAgMCAxLTQuMjg5LTE3LjUxOGwzMC02OS45OThhMTUgMTUgMCAwIDEgMTcuMTYtOC43MDdsNjUgMTQuOTk4QTE0Ljk5NyAxNC45OTcgMCAwIDEgMzg0IDEyNmMwIDE2MC4yOTItMTI5Ljk0NSAyOTAtMjkwIDI5MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvbmVWb2x1bWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTcuMzMzIDUwNi45NjZjLTEyOS44NzQtMTI5Ljg3NC0xMjkuNjgxLTM0MC4yNTIgMC00NjkuOTMzIDUuNjk4LTUuNjk4IDE0LjUyNy02LjYzMiAyMS4yNjMtMi40MjJsNjQuODE3IDQwLjUxM2ExNy4xODcgMTcuMTg3IDAgMCAxIDYuODQ5IDIwLjk1OGwtMzIuNDA4IDgxLjAyMWExNy4xODggMTcuMTg4IDAgMCAxLTE3LjY2OSAxMC43MTlsLTU1LjgxLTUuNThjLTIxLjA1MSA1OC4yNjEtMjAuNjEyIDEyMi40NzEgMCAxNzkuNTE1bDU1LjgxMS01LjU4MWExNy4xODggMTcuMTg4IDAgMCAxIDE3LjY2OSAxMC43MTlsMzIuNDA4IDgxLjAyMmExNy4xODggMTcuMTg4IDAgMCAxLTYuODQ5IDIwLjk1OGwtNjQuODE3IDQwLjUxM2ExNy4xOSAxNy4xOSAwIDAgMS0yMS4yNjQtMi40MjJ6TTI0Ny4xMjYgOTUuNDczYzExLjgzMiAyMC4wNDcgMTEuODMyIDQ1LjAwOCAwIDY1LjA1NS0zLjk1IDYuNjkzLTEzLjEwOCA3Ljk1OS0xOC43MTggMi41ODFsLTUuOTc1LTUuNzI2Yy0zLjkxMS0zLjc0OC00Ljc5My05LjYyMi0yLjI2MS0xNC40MWEzMi4wNjMgMzIuMDYzIDAgMCAwIDAtMjkuOTQ1Yy0yLjUzMy00Ljc4OC0xLjY1LTEwLjY2MiAyLjI2MS0xNC40MWw1Ljk3NS01LjcyNmM1LjYxLTUuMzc4IDE0Ljc2OC00LjExMiAxOC43MTggMi41ODF6bTkxLjc4Ny05MS4xODdjNjAuMTQgNzEuNjA0IDYwLjA5MiAxNzUuODgyIDAgMjQ3LjQyOC00LjQ3NCA1LjMyNy0xMi41MyA1Ljc0Ni0xNy41NTIuOTMzbC01Ljc5OC01LjU1N2MtNC41Ni00LjM3MS00Ljk3Ny0xMS41MjktLjkzLTE2LjM3OSA0OS42ODctNTkuNTM4IDQ5LjY0Ni0xNDUuOTMzIDAtMjA1LjQyMi00LjA0Ny00Ljg1LTMuNjMxLTEyLjAwOC45My0xNi4zNzlsNS43OTgtNS41NTdjNS4wMjItNC44MTMgMTMuMDc4LTQuMzk0IDE3LjU1Mi45MzN6bS00NS45NzIgNDQuOTQxYzM2LjA1IDQ2LjMyMiAzNi4xMDggMTExLjE0OSAwIDE1Ny41NDYtNC4zOSA1LjY0MS0xMi42OTcgNi4yNTEtMTcuODU2IDEuMzA0bC01LjgxOC01LjU3OWMtNC40LTQuMjE5LTQuOTk4LTExLjA5NS0xLjI4NS0xNS45MzEgMjYuNTM2LTM0LjU2NCAyNi41MzQtODIuNTcyIDAtMTE3LjEzNC0zLjcxMy00LjgzNi0zLjExNS0xMS43MTEgMS4yODUtMTUuOTMxbDUuODE4LTUuNTc5YzUuMTU5LTQuOTQ3IDEzLjQ2Ni00LjMzNyAxNy44NTYgMS4zMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBob25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5My40IDI0LjZsLTEwNC0yNGMtMTEuMy0yLjYtMjIuOSAzLjMtMjcuNSAxMy45bC00OCAxMTJjLTQuMiA5LjgtMS40IDIxLjMgNi45IDI4bDYwLjYgNDkuNmMtMzYgNzYuNy05OC45IDE0MC41LTE3Ny4yIDE3Ny4ybC00OS42LTYwLjZjLTYuOC04LjMtMTguMi0xMS4xLTI4LTYuOWwtMTEyIDQ4QzMuOSAzNjYuNS0yIDM3OC4xLjYgMzg5LjRsMjQgMTA0QzI3LjEgNTA0LjIgMzYuNyA1MTIgNDggNTEyYzI1Ni4xIDAgNDY0LTIwNy41IDQ2NC00NjQgMC0xMS4yLTcuNy0yMC45LTE4LjYtMjMuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGhvdG9WaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMEgxNjBhMzIgMzIgMCAwIDAtMzIgMzJ2OTZoMTYwVjY0aDE5MnYzMjBoMTI4YTMyIDMyIDAgMCAwIDMyLTMyVjMyYTMyIDMyIDAgMCAwLTMyLTMyek0yMzIgMTAzYTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTlWNzNhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0zNTIgMjA4YTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTl2LTMwYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptMC0xMDRhOSA5IDAgMCAxLTkgOWgtMzBhOSA5IDAgMCAxLTktOXYtMzBhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0wLTEwNGE5IDkgMCAwIDEtOSA5aC0zMGE5IDkgMCAwIDEtOS05VjczYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptLTE2OCA1N0gzMmEzMiAzMiAwIDAgMC0zMiAzMnYyODhhMzIgMzIgMCAwIDAgMzIgMzJoMzg0YTMyIDMyIDAgMCAwIDMyLTMyVjE5MmEzMiAzMiAwIDAgMC0zMi0zMnpNOTYgMjI0YTMyIDMyIDAgMSAxLTMyIDMyIDMyIDMyIDAgMCAxIDMyLTMyem0yODggMjI0SDY0di0zMmw2NC02NCAzMiAzMiAxMjgtMTI4IDk2IDk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWdneUJhbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYwIDIyNGgtMjkuNWMtOC44LTIwLTIxLjYtMzcuNy0zNy40LTUyLjVMNTEyIDk2aC0zMmMtMjkuNCAwLTU1LjQgMTMuNS03MyAzNC4zLTcuNi0xLjEtMTUuMS0yLjMtMjMtMi4zSDI1NmMtNzcuNCAwLTE0MS45IDU1LTE1Ni44IDEyOEg1NmMtMTQuOCAwLTI2LjUtMTMuNS0yMy41LTI4LjhDMzQuNyAyMTUuOCA0NS40IDIwOCA1NyAyMDhoMWMzLjMgMCA2LTIuNyA2LTZ2LTIwYzAtMy4zLTIuNy02LTYtNi0yOC41IDAtNTMuOSAyMC40LTU3LjUgNDguNkMtMy45IDI1OC44IDIyLjcgMjg4IDU2IDI4OGg0MGMwIDUyLjIgMjUuNCA5OC4xIDY0IDEyNy4zVjQ5NmMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di00OGgxMjh2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtODAuN2MxMS44LTguOSAyMi4zLTE5LjQgMzEuMy0zMS4zSDU2MGM4LjggMCAxNi03LjIgMTYtMTZWMjQwYzAtOC44LTcuMi0xNi0xNi0xNnptLTEyOCA2NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2ek0yNTYgOTZoMTI4YzUuNCAwIDEwLjcuNCAxNS45LjggMC0uMy4xLS41LjEtLjggMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyLjEuNSA0LjEuNiA2LjIgMTUuMi0zLjkgMzEtNi4yIDQ3LjQtNi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQaWxscyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTIgMzJDNTAuMSAzMiAwIDgyLjEgMCAxNDR2MjI0YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJWMTQ0YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem00OCAyMjRINjRWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTEyem0xMzkuNy0yOS43Yy0zLjUtMy41LTkuNC0zLjEtMTIuMy44LTQ1LjMgNjIuNS00MC40IDE1MC4xIDE1LjkgMjA2LjQgNTYuMyA1Ni4zIDE0My45IDYxLjIgMjA2LjQgMTUuOSA0LTIuOSA0LjMtOC44LjgtMTIuM0wyOTkuNyAyMjYuM3ptMjI5LjgtMTljLTU2LjMtNTYuMy0xNDMuOS02MS4yLTIwNi40LTE1LjktNCAyLjktNC4zIDguOC0uOCAxMi4zbDIxMC44IDIxMC44YzMuNSAzLjUgOS40IDMuMSAxMi4zLS44IDQ1LjMtNjIuNiA0MC41LTE1MC4xLTE1LjktMjA2LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBpenphU2xpY2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTU4Ljg3LjE1Yy0xNi4xNi0xLjUyLTMxLjIgOC40Mi0zNS4zMyAyNC4xMmwtMTQuODEgNTYuMjdjMTg3LjYyIDUuNDkgMzE0LjU0IDEzMC42MSAzMjIuNDggMzE3bDU2Ljk0LTE1Ljc4YzE1LjcyLTQuMzYgMjUuNDktMTkuNjggMjMuNjItMzUuOUM0OTAuODkgMTY1LjA4IDM0MC43OCAxNy4zMiAxNTguODcuMTV6bS01OC40NyAxMTJMLjU1IDQ5MS42NGExNi4yMSAxNi4yMSAwIDAgMCAyMCAxOS43NWwzNzktMTA1LjFjLTQuMjctMTc0Ljg5LTEyMy4wOC0yOTIuMTQtMjk5LjE1LTI5NC4xek0xMjggNDE2YTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyem00OC0xNTJhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTEwNCAxMDRhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYWNlT2ZXb3JzaGlwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMC42MSAzNjYuNTVMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmEzMiAzMiAwIDAgMC0xOS4zOS0yOS40MXpNMCAzOTUuOTZWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDExMlYzMjBMMTkuMzkgMzY2LjU1QTMyIDMyIDAgMCAwIDAgMzk1Ljk2em00NjQuNDYtMTQ5LjI4TDQxNiAyMTcuNlYxMDIuNjNjMC04LjQ5LTMuMzctMTYuNjItOS4zOC0yMi42M0wzMzEuMzEgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwyMzMuMzggODBjLTYgNi05LjM4IDE0LjE0LTkuMzggMjIuNjNWMjE3LjZsLTQ4LjQ2IDI5LjA4QTMxLjk5NyAzMS45OTcgMCAwIDAgMTYwIDI3NC4xMlY1MTJoOTZ2LTk2YzAtMzUuMzUgMjguNjYtNjQgNjQtNjRzNjQgMjguNjUgNjQgNjR2OTZoOTZWMjc0LjEyYzAtMTEuMjQtNS45LTIxLjY2LTE1LjU0LTI3LjQ0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGFuZUFycml2YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNDQuODEgMjA1LjY2bDg4Ljc0IDgwYTYyLjYwNyA2Mi42MDcgMCAwIDAgMjUuNDcgMTMuOTNsMjg3LjYgNzguMzVjMjYuNDggNy4yMSA1NC41NiA4LjcyIDgxIDEuMzYgMjkuNjctOC4yNyA0My40NC0yMS4yMSA0Ny4yNS0zNS43MSAzLjgzLTE0LjUtMS43My0zMi43MS0yMy4zNy01NC45Ni0xOS4yOC0xOS44Mi00NC4zNS0zMi43OS03MC44My00MGwtOTcuNTEtMjYuNTZMMjgyLjggMzAuMjJjLTEuNTEtNS44MS01Ljk1LTEwLjM1LTExLjY2LTExLjkxTDIwNi4wNS41OGMtMTAuNTYtMi44OC0yMC45IDUuMzItMjAuNzEgMTYuNDRsNDcuOTIgMTY0LjIxLTEwMi4yLTI3Ljg0LTI3LjU5LTY3Ljg4Yy0xLjkzLTQuODktNi4wMS04LjU3LTExLjAyLTkuOTNMNTIuNzIgNjQuNzVjLTEwLjM0LTIuODItMjAuNTMgNS0yMC43MiAxNS44OGwuMjMgMTAxLjc4Yy4xOSA4LjkxIDYuMDMgMTcuMzQgMTIuNTggMjMuMjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lRGVwYXJ0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDYwOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTgwLjU1IDM0MS4yN2M2LjI4IDYuODQgMTUuMSAxMC43MiAyNC4zMyAxMC43MWwxMzAuNTQtLjE4YTY1LjYyIDY1LjYyIDAgMCAwIDI5LjY0LTcuMTJsMjkwLjk2LTE0Ny42NWMyNi43NC0xMy41NyA1MC43MS0zMi45NCA2Ny4wMi01OC4zMSAxOC4zMS0yOC40OCAyMC4zLTQ5LjA5IDEzLjA3LTYzLjY1LTcuMjEtMTQuNTctMjQuNzQtMjUuMjctNTguMjUtMjcuNDUtMjkuODUtMS45NC01OS41NCA1LjkyLTg2LjI4IDE5LjQ4bC05OC41MSA0OS45OS0yMTguNy04Mi4wNmExNy43OTkgMTcuNzk5IDAgMCAwLTE4LTEuMTFMOTAuNjIgNjcuMjljLTEwLjY3IDUuNDEtMTMuMjUgMTkuNjUtNS4xNyAyOC41M2wxNTYuMjIgOTguMS0xMDMuMjEgNTIuMzgtNzIuMzUtMzYuNDdhMTcuODA0IDE3LjgwNCAwIDAgMC0xNi4wNy4wMkw5LjkxIDIzMC4yMmMtMTAuNDQgNS4zLTEzLjE5IDE5LjEyLTUuNTcgMjguMDhsNzYuMjEgODIuOTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYW5lU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIuNDgsMTQ3Ljg4LDY0LDI1NiwzMi40OCwzNjQuMTNBMTYsMTYsMCwwLDAsNDgsMzg0SDg4YTE2LDE2LDAsMCwwLDEyLjgtNi40MUwxNDQsMzIwSDI0Ni44NWwtNDksMTcxLjU5QTE2LDE2LDAsMCwwLDIxMy4yLDUxMmg2NS41YTE2LDE2LDAsMCwwLDEzLjg5LTguMDZsNjYuNi0xMTYuNTRMMzQuMzUsMTM2LjM0QTE1LjQ3LDE1LjQ3LDAsMCwwLDMyLjQ4LDE0Ny44OFpNNjMzLjgyLDQ1OC4wOSw0NTUuMTQsMzIwSDUxMmMzNS4zNCwwLDk2LTI4LjY2LDk2LTY0cy02MC42Ni02NC05Ni02NEgzOTcuN0wyOTIuNjEsOC4wNkMyOTAuMDYsMy42MSwyODMuODQsMCwyNzguNzEsMEgyMTMuMmExNiwxNiwwLDAsMC0xNS4zOCwyMC4zOWwzNi45NCwxMjkuMjlMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDVBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZBMTYsMTYsMCwwLDAsNjMzLjgyLDQ1OC4wOVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGxhbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDgwIDE5MkgzNjUuNzFMMjYwLjYxIDguMDZBMTYuMDE0IDE2LjAxNCAwIDAgMCAyNDYuNzEgMGgtNjUuNWMtMTAuNjMgMC0xOC4zIDEwLjE3LTE1LjM4IDIwLjM5TDIxNC44NiAxOTJIMTEybC00My4yLTU3LjZjLTMuMDItNC4wMy03Ljc3LTYuNC0xMi44LTYuNEgxNi4wMUM1LjYgMTI4LTIuMDQgMTM3Ljc4LjQ5IDE0Ny44OEwzMiAyNTYgLjQ5IDM2NC4xMkMtMi4wNCAzNzQuMjIgNS42IDM4NCAxNi4wMSAzODRINTZjNS4wNCAwIDkuNzgtMi4zNyAxMi44LTYuNEwxMTIgMzIwaDEwMi44NmwtNDkuMDMgMTcxLjZjLTIuOTIgMTAuMjIgNC43NSAyMC40IDE1LjM4IDIwLjRoNjUuNWM1Ljc0IDAgMTEuMDQtMy4wOCAxMy44OS04LjA2TDM2NS43MSAzMjBINDgwYzM1LjM1IDAgOTYtMjguNjUgOTYtNjRzLTYwLjY1LTY0LTk2LTY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbGF5Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTExNS43IDI3MmwtMTc2IDEwMWMtMTUuOCA4LjgtMzUuNy0yLjUtMzUuNy0yMVYxNTJjMC0xOC40IDE5LjgtMjkuOCAzNS43LTIxbDE3NiAxMDdjMTYuNCA5LjIgMTYuNCAzMi45IDAgNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBsYXkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDI0LjQgMjE0LjdMNzIuNCA2LjZDNDMuOC0xMC4zIDAgNi4xIDAgNDcuOVY0NjRjMCAzNy41IDQwLjcgNjAuMSA3Mi40IDQxLjNsMzUyLTIwOGMzMS40LTE4LjUgMzEuNS02NC4xIDAtODIuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1ZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjAsMzJhMzIsMzIsMCwwLDAtNjQsMHY5Nmg2NFptNDgsMTI4SDE2QTE2LDE2LDAsMCwwLDAsMTc2djMyYTE2LDE2LDAsMCwwLDE2LDE2SDMydjMyQTE2MC4wNywxNjAuMDcsMCwwLDAsMTYwLDQxMi44VjUxMmg2NFY0MTIuOEExNjAuMDcsMTYwLjA3LDAsMCwwLDM1MiwyNTZWMjI0aDE2YTE2LDE2LDAsMCwwLDE2LTE2VjE3NkExNiwxNiwwLDAsMCwzNjgsMTYwWk0xMjgsMzJhMzIsMzIsMCwwLDAtNjQsMHY5Nmg2NFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1c0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xNDQgMjc2YzAgNi42LTUuNCAxMi0xMiAxMmgtOTJ2OTJjMCA2LjYtNS40IDEyLTEyIDEyaC01NmMtNi42IDAtMTItNS40LTEyLTEydi05MmgtOTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDkydi05MmMwLTYuNiA1LjQtMTIgMTItMTJoNTZjNi42IDAgMTIgNS40IDEyIDEydjkyaDkyYzYuNiAwIDEyIDUuNCAxMiAxMnY1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUGx1c1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMzIgMjUyYzAgNi42LTUuNCAxMi0xMiAxMmgtOTJ2OTJjMCA2LjYtNS40IDEyLTEyIDEyaC01NmMtNi42IDAtMTItNS40LTEyLTEydi05Mkg5MmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoOTJ2LTkyYzAtNi42IDUuNC0xMiAxMi0xMmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ2OTJoOTJjNi42IDAgMTIgNS40IDEyIDEydjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQbHVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAyMDhIMjcyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjE0NEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE0NHYxNDRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMwNGgxNDRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUG9kY2FzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjcuNDI5IDQ4OC41NjNDMjYyLjI4NiA1MDcuNTczIDI0Mi44NTggNTEyIDIyNCA1MTJjLTE4Ljg1NyAwLTM4LjI4Ni00LjQyNy00My40MjgtMjMuNDM3QzE3Mi45MjcgNDYwLjEzNCAxNjAgMzg4Ljg5OCAxNjAgMzU1Ljc1YzAtMzUuMTU2IDMxLjE0Mi00My43NSA2NC00My43NXM2NCA4LjU5NCA2NCA0My43NWMwIDMyLjk0OS0xMi44NzEgMTA0LjE3OS0yMC41NzEgMTMyLjgxM3pNMTU2Ljg2NyAyODguNTU0Yy0xOC42OTMtMTguMzA4LTI5Ljk1OC00NC4xNzMtMjguNzg0LTcyLjU5OSAyLjA1NC00OS43MjQgNDIuMzk1LTg5Ljk1NiA5Mi4xMjQtOTEuODgxQzI3NC44NjIgMTIxLjk1OCAzMjAgMTY1LjgwNyAzMjAgMjIwYzAgMjYuODI3LTExLjA2NCA1MS4xMTYtMjguODY2IDY4LjU1Mi0yLjY3NSAyLjYyLTIuNDAxIDYuOTg2LjYyOCA5LjE4NyA5LjMxMiA2Ljc2NSAxNi40NiAxNS4zNDMgMjEuMjM0IDI1LjM2MyAxLjc0MSAzLjY1NCA2LjQ5NyA0LjY2IDkuNDQ5IDEuODkxIDI4LjgyNi0yNy4wNDMgNDYuNTUzLTY1Ljc4MyA0NS41MTEtMTA4LjU2NS0xLjg1NS03Ni4yMDYtNjMuNTk1LTEzOC4yMDgtMTM5Ljc5My0xNDAuMzY5QzE0Ni44NjkgNzMuNzUzIDgwIDEzOS4yMTUgODAgMjIwYzAgNDEuMzYxIDE3LjUzMiA3OC43IDQ1LjU1IDEwNC45ODkgMi45NTMgMi43NzEgNy43MTEgMS43NyA5LjQ1My0xLjg4NyA0Ljc3NC0xMC4wMjEgMTEuOTIzLTE4LjU5OCAyMS4yMzUtMjUuMzYzIDMuMDI5LTIuMiAzLjMwNC02LjU2Ni42MjktOS4xODV6TTIyNCAwQzEwMC4yMDQgMCAwIDEwMC4xODUgMCAyMjRjMCA4OS45OTIgNTIuNjAyIDE2NS42NDcgMTI1LjczOSAyMDEuNDA4IDQuMzMzIDIuMTE4IDkuMjY3LTEuNTQ0IDguNTM1LTYuMzEtMi4zODItMTUuNTEyLTQuMzQyLTMwLjk0Ni01LjQwNi00NC4zMzktLjE0Ni0xLjgzNi0xLjE0OS0zLjQ4Ni0yLjY3OC00LjUxMi00Ny40LTMxLjgwNi03OC41NjQtODYuMDE2LTc4LjE4Ny0xNDcuMzQ3LjU5Mi05Ni4yMzcgNzkuMjktMTc0LjY0OCAxNzUuNTI5LTE3NC44OTlDMzIwLjc5MyA0Ny43NDcgNDAwIDEyNi43OTcgNDAwIDIyNGMwIDYxLjkzMi0zMi4xNTggMTE2LjQ5LTgwLjY1IDE0Ny44NjctLjk5OSAxNC4wMzctMy4wNjkgMzAuNTg4LTUuNjI0IDQ3LjIzLS43MzIgNC43NjcgNC4yMDMgOC40MjkgOC41MzUgNi4zMUMzOTUuMjI3IDM4OS43MjcgNDQ4IDMxNC4xODcgNDQ4IDIyNCA0NDggMTAwLjIwNSAzNDcuODE1IDAgMjI0IDB6bTAgMTYwYy0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjRzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvbGxIIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCA0MzJWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4ek0xMTIgMTkyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMTI4YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2SDExMnptMCA5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDIyNGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNkgxMTJ6bTAgOTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMmMwIDguODQtNy4xNiAxNi0xNiAxNmgtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTYwIDM2OGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2VjI0MGMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxMjh6bTk2IDBjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNlYxNDRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MjI0em05NiAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTY0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb29TdG9ybSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDggMzM2aC01Ny43bDE3LjMtNjQuOWMyLTcuNi0zLjctMTUuMS0xMS42LTE1LjFoLTY4Yy02IDAtMTEuMSA0LjUtMTEuOSAxMC40bC0xNiAxMjBjLTEgNy4yIDQuNiAxMy42IDExLjkgMTMuNmg1OS4zbC0yMyA5Ny4yYy0xLjggNy42IDQgMTQuOCAxMS43IDE0LjggNC4yIDAgOC4yLTIuMiAxMC40LTZsODgtMTUyYzQuNi04LTEuMi0xOC0xMC40LTE4em02Ni40LTExMS4zYzUuOS05LjYgOS42LTIwLjYgOS42LTMyLjcgMC0zNS4zLTI4LjctNjQtNjQtNjRoLTUuOWMzLjYtMTAuMSA1LjktMjAuNyA1LjktMzIgMC01My00My05Ni05Ni05Ni01LjIgMC0xMC4yLjctMTUuMSAxLjVDMjE4LjMgMTQuNiAyMjQgMzAuNiAyMjQgNDhjMCA0NC4yLTM1LjggODAtODAgODBoLTE2Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDEyLjEgMy43IDIzLjEgOS42IDMyLjdDMzIuNiAyMjggMCAyNjIuMiAwIDMwNGMwIDQ0IDM2IDgwIDgwIDgwaDQ4LjNjLjEtLjYgMC0xLjIgMC0xLjhsMTYtMTIwYzMtMjEuOCAyMS43LTM4LjIgNDMuNy0zOC4yaDY4YzEzLjggMCAyNi41IDYuMyAzNC45IDE3LjJzMTEuMiAyNC44IDcuNiAzOC4xbC02LjYgMjQuN2gxNmMxNS43IDAgMzAuMyA4LjQgMzguMSAyMiA3LjggMTMuNiA3LjggMzAuNSAwIDQ0bC04LjEgMTRoMzBjNDQgMCA4MC0zNiA4MC04MCAuMS00MS44LTMyLjUtNzYtNzMuNS03OS4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQb28gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUxLjQgMzY5LjFDNDY4LjcgMzU2IDQ4MCAzMzUuNCA0ODAgMzEyYzAtMzkuOC0zMi4yLTcyLTcyLTcyaC0xNC4xYzEzLjQtMTEuNyAyMi4xLTI4LjggMjIuMS00OCAwLTM1LjMtMjguNy02NC02NC02NGgtNS45YzMuNi0xMC4xIDUuOS0yMC43IDUuOS0zMiAwLTUzLTQzLTk2LTk2LTk2LTUuMiAwLTEwLjIuNy0xNS4xIDEuNUMyNTAuMyAxNC42IDI1NiAzMC42IDI1NiA0OGMwIDQ0LjItMzUuOCA4MC04MCA4MGgtMTZjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMTkuMiA4LjcgMzYuMyAyMi4xIDQ4SDEwNGMtMzkuOCAwLTcyIDMyLjItNzIgNzIgMCAyMy40IDExLjMgNDQgMjguNiA1Ny4xQzI2LjMgMzc0LjYgMCA0MDQuMSAwIDQ0MGMwIDM5LjggMzIuMiA3MiA3MiA3MmgzNjhjMzkuOCAwIDcyLTMyLjIgNzItNzIgMC0zNS45LTI2LjMtNjUuNC02MC42LTcwLjl6TTE5MiAyNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xNTkuNSAxMzlDMzQxIDQyMi45IDI5MyA0NDggMjU2IDQ0OHMtODUtMjUuMS05NS41LTUzYy0yLTUuMyAyLTExIDcuOC0xMWgxNzUuNGM1LjggMCA5LjggNS43IDcuOCAxMXpNMzIwIDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvb3AgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDUxLjM2IDM2OS4xNEM0NjguNjYgMzU1Ljk5IDQ4MCAzMzUuNDEgNDgwIDMxMmMwLTM5Ljc3LTMyLjI0LTcyLTcyLTcyaC0xNC4wN2MxMy40Mi0xMS43MyAyMi4wNy0yOC43OCAyMi4wNy00OCAwLTM1LjM1LTI4LjY1LTY0LTY0LTY0aC01Ljg4YzMuNTctMTAuMDUgNS44OC0yMC43MiA1Ljg4LTMyIDAtNTMuMDItNDIuOTgtOTYtOTYtOTYtNS4xNyAwLTEwLjE1Ljc0LTE1LjExIDEuNTJDMjUwLjMxIDE0LjY0IDI1NiAzMC42MiAyNTYgNDhjMCA0NC4xOC0zNS44MiA4MC04MCA4MGgtMTZjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjQgMCAxOS4yMiA4LjY1IDM2LjI3IDIyLjA3IDQ4SDEwNGMtMzkuNzYgMC03MiAzMi4yMy03MiA3MiAwIDIzLjQxIDExLjM0IDQzLjk5IDI4LjY0IDU3LjE0QzI2LjMxIDM3NC42MiAwIDQwNC4xMiAwIDQ0MGMwIDM5Ljc2IDMyLjI0IDcyIDcyIDcyaDM2OGMzOS43NiAwIDcyLTMyLjI0IDcyLTcyIDAtMzUuODgtMjYuMzEtNjUuMzgtNjAuNjQtNzAuODZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvcnRyYWl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0xOTIgMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkgxMDIuNEM5MCAzODQgODAgMzc1LjQgODAgMzY0Ljh2LTE5LjJjMC0zMS44IDMwLjEtNTcuNiA2Ny4yLTU3LjZoNWMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg1YzM3LjEgMCA2Ny4yIDI1LjggNjcuMiA1Ny42djE5LjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvdW5kU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzIwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDggMzUyaC00NS40OTVjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTAuODQ4SDEyOFYyODhoODRjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtODR2LTYzLjU1NmMwLTMyLjI2NiAyNC41NjItNTcuMDg2IDYxLjc5Mi01Ny4wODYgMjMuNjU4IDAgNDUuODc4IDExLjUwNSA1Ny42NTIgMTguODQ5IDUuMTUxIDMuMjEzIDExLjg4OCAyLjA1MSAxNS42ODgtMi42ODVsMjguNDkzLTM1LjUxM2M0LjIzMy01LjI3NiAzLjI3OS0xMy4wMDUtMi4xMTktMTcuMDgxQzI3My4xMjQgNTQuNTYgMjM2LjU3NiAzMiAxODcuOTMxIDMyIDEwNi4wMjYgMzIgNDggODQuNzQyIDQ4IDE1Ny45NjFWMjI0SDIwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjh2MTI4SDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjk2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWMzY0YzAtNi42MjctNS4zNzMtMTItMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVBvd2VyT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA1NC4xYzYzIDQ1IDEwNCAxMTguNiAxMDQgMjAxLjkgMCAxMzYuOC0xMTAuOCAyNDcuNy0yNDcuNSAyNDhDMTIwIDUwNC4zIDguMiAzOTMgOCAyNTYuNCA3LjkgMTczLjEgNDguOSA5OS4zIDExMS44IDU0LjJjMTEuNy04LjMgMjgtNC44IDM1IDcuN0wxNjIuNiA5MGM1LjkgMTAuNSAzLjEgMjMuOC02LjYgMzEtNDEuNSAzMC44LTY4IDc5LjYtNjggMTM0LjktLjEgOTIuMyA3NC41IDE2OC4xIDE2OCAxNjguMSA5MS42IDAgMTY4LjYtNzQuMiAxNjgtMTY5LjEtLjMtNTEuOC0yNC43LTEwMS44LTY4LjEtMTM0LTkuNy03LjItMTIuNC0yMC41LTYuNS0zMC45bDE1LjgtMjguMWM3LTEyLjQgMjMuMi0xNi4xIDM0LjgtNy44ek0yOTYgMjY0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0aC0zMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MjQwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDMyYzEzLjMgMCAyNC0xMC43IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFMyOTEuMzUgMCAyNTYgMHMtNjQgMjguNjUtNjQgNjQgMjguNjUgNjQgNjQgNjR6bS0zMC42MyAxNjkuNzVjMTQuMDYgMTYuNzIgMzkgMTkuMDkgNTUuOTcgNS4yMmw4OC03Mi4wMmMxNy4wOS0xMy45OCAxOS41OS0zOS4xOSA1LjYyLTU2LjI4LTEzLjk3LTE3LjExLTM5LjE5LTE5LjU5LTU2LjMxLTUuNjJsLTU3LjQ0IDQ3LTM4LjkxLTQ2LjMxYy0xNS40NC0xOC4zOS0zOS4yMi0yNy45Mi02NC0yNS4zMy0yNC4xOSAyLjQ4LTQ1LjI1IDE2LjI3LTU2LjM3IDM2LjkybC00OS4zNyA5Mi4wM2MtMjMuNCA0My42NC04LjY5IDk2LjM3IDM0LjE5IDEyMy43NUwxMzEuNTYgNDMySDQwYy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwczE3LjkxIDQwIDQwIDQwaDIwOGMzNC4wOCAwIDUzLjc3LTQyLjc5IDI4LjI4LTY4LjI4TDE2Ni40MiAzMzMuODZsMzQuOC02NC44NyAyNC4xNSAyOC43NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJheWluZ0hhbmRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAxOTEuOTFjLTE3LjYgMC0zMiAxNC40LTMyIDMydjgwYzAgOC44NC03LjE2IDE2LTE2IDE2cy0xNi03LjE2LTE2LTE2di03Ni41NWMwLTE3LjM5IDQuNzItMzQuNDcgMTMuNjktNDkuMzlsNzcuNzUtMTI5LjU5YzkuMDktMTUuMTYgNC4xOS0zNC44MS0xMC45Ny00My45MS0xNC40NS04LjY3LTMyLjcyLTQuMy00Mi4zIDkuMjEtLjIuMjMtLjYyLjIxLS43OS40OGwtMTE3LjI2IDE3NS45QzExNy41NiAyMDUuOSAxMTIgMjI0LjMxIDExMiAyNDMuMjl2ODAuMjNsLTkwLjEyIDMwLjA0QTMxLjk3NCAzMS45NzQgMCAwIDAgMCAzODMuOTF2OTZjMCAxMC44MiA4LjUyIDMyIDMyIDMyIDIuNjkgMCA1LjQxLS4zNCA4LjA2LTEuMDNsMTc5LjE5LTQ2LjYyQzI2OS4xNiA0NDkuOTkgMzA0IDQwMy44IDMwNCAzNTEuOTF2LTEyOGMwLTE3LjYtMTQuNC0zMi0zMi0zMnptMzQ2LjEyIDE2MS43M0w1MjggMzIzLjZ2LTgwLjIzYzAtMTguOTgtNS41Ni0zNy4zOS0xNi4xMi01My4yM0wzOTQuNjIgMTQuMjVjLS4xOC0uMjctLjU5LS4yNC0uNzktLjQ4LTkuNTgtMTMuNTEtMjcuODUtMTcuODgtNDIuMy05LjIxLTE1LjE2IDkuMDktMjAuMDYgMjguNzUtMTAuOTcgNDMuOTFsNzcuNzUgMTI5LjU5YzguOTcgMTQuOTIgMTMuNjkgMzIgMTMuNjkgNDkuMzlWMzA0YzAgOC44NC03LjE2IDE2LTE2IDE2cy0xNi03LjE2LTE2LTE2di04MGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxMjhjMCA1MS44OSAzNC44NCA5OC4wOCA4NC43NSAxMTIuMzRsMTc5LjE5IDQ2LjYyYzIuNjYuNjkgNS4zOCAxLjAzIDguMDYgMS4wMyAyMy40OCAwIDMyLTIxLjE4IDMyLTMydi05NmMwLTEzLjc3LTguODEtMjUuOTktMjEuODgtMzAuMzV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByZXNjcmlwdGlvbkJvdHRsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjAgMEgyNEMxMC44IDAgMCAxMC44IDAgMjR2NDhjMCAxMy4yIDEwLjggMjQgMjQgMjRoMzM2YzEzLjIgMCAyNC0xMC44IDI0LTI0VjI0YzAtMTMuMi0xMC44LTI0LTI0LTI0ek0zMiA0ODBjMCAxNy42IDE0LjQgMzIgMzIgMzJoMjU2YzE3LjYgMCAzMi0xNC40IDMyLTMyVjEyOEgzMnYzNTJ6bTY0LTE4NGMwLTQuNCAzLjYtOCA4LThoNTZ2LTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NTZoNTZjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByZXNjcmlwdGlvbkJvdHRsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiAxOTJoMTIwYzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzJ2NjRoMTIwYzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzJ2NjRoMTIwYzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzJ2NjRjMCAxNy42IDE0LjQgMzIgMzIgMzJoMjU2YzE3LjYgMCAzMi0xNC40IDMyLTMyVjEyOEgzMnY2NHpNMzYwIDBIMjRDMTAuOCAwIDAgMTAuOCAwIDI0djQ4YzAgMTMuMiAxMC44IDI0IDI0IDI0aDMzNmMxMy4yIDAgMjQtMTAuOCAyNC0yNFYyNGMwLTEzLjItMTAuOC0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJlc2NyaXB0aW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwMS4yNiAzNTJsNzguMDYtNzguMDZjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMMjU2IDMwNi43NGwtODMuOTYtODMuOTZDMjE5LjMxIDIxNi44IDI1NiAxNzYuODkgMjU2IDEyOGMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2SDE2QzcuMTYgMzIgMCAzOS4xNiAwIDQ4djI1NmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtODBoMTguNzVsMTI4IDEyOC03OC4wNiA3OC4wNmMtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwTDI1NiAzOTcuMjVsNzguMDYgNzguMDZjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwyMi42My0yMi42M2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDMwMS4yNiAzNTJ6TTY0IDk2aDk2YzE3LjY0IDAgMzIgMTQuMzYgMzIgMzJzLTE0LjM2IDMyLTMyIDMySDY0Vjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQcmludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMTkyVjc3LjI1YzAtOC40OS0zLjM3LTE2LjYyLTkuMzctMjIuNjNMMzkzLjM3IDkuMzdjLTYtNi0xNC4xNC05LjM3LTIyLjYzLTkuMzdIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYxNjBjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MTEyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzIwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjI1NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0em0tNjQgMjU2SDEyOHYtOTZoMjU2djk2em0wLTIyNEgxMjhWNjRoMTkydjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djk2em00OCA3MmMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVByb2NlZHVyZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDIyNEgyNzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNDRINjRWMTQ0YzAtOC44LTcuMi0xNi0xNi0xNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djM1MmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di00OGg1MTJ2NDhjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMzZjMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6TTEzNiA5NmgxMjYuMWwyNy42IDU1LjJjNS45IDExLjggMjIuNyAxMS44IDI4LjYgMEwzNjggNTEuOCAzOTAuMSA5Nkg1MTJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTZINDA5LjlMMzgyLjMgOC44QzM3Ni40LTMgMzU5LjYtMyAzNTMuNyA4LjhMMzA0IDEwOC4ybC0xOS45LTM5LjhjLTEuNC0yLjctNC4xLTQuNC03LjItNC40SDEzNmMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMjQgMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHJvamVjdERpYWdyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDMyMEgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTI4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTE5MiAzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk1LjcybDczLjE2IDEyOC4wNEMyMTEuOTggMzAwLjk4IDIzMi40IDI4OCAyNTYgMjg4aC4yOEwxOTIgMTc1LjUxVjEyOGgyMjRWNjRIMTkyVjMyek02MDggMEg0ODBjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTI4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUHVtcE1lZGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjM1LjUxLDE1OS44Mkg4NC4yNEE2NCw2NCwwLDAsMCwyMC41MSwyMThMLjE0LDQ0MmE2NCw2NCwwLDAsMCw2My43NCw2OS44aDE5MkE2NCw2NCwwLDAsMCwzMTkuNjEsNDQyTDI5OS4yNCwyMThBNjQsNjQsMCwwLDAsMjM1LjUxLDE1OS44MlptNC4zNywxNzMuMzNhMTMuMzUsMTMuMzUsMCwwLDEtMTMuMzQsMTMuMzRoLTQwdjQwYTEzLjMzLDEzLjMzLDAsMCwxLTEzLjMzLDEzLjMzSDE0Ni41NGExMy4zMywxMy4zMywwLDAsMS0xMy4zMy0xMy4zM3YtNDBoLTQwYTEzLjM0LDEzLjM0LDAsMCwxLTEzLjMzLTEzLjM0VjMwNi40OWExMy4zMywxMy4zMywwLDAsMSwxMy4zMy0xMy4zNGg0MHYtNDBhMTMuMzMsMTMuMzMsMCwwLDEsMTMuMzMtMTMuMzNoMjYuNjdhMTMuMzMsMTMuMzMsMCwwLDEsMTMuMzMsMTMuMzN2NDBoNDBhMTMuMzQsMTMuMzQsMCwwLDEsMTMuMzQsMTMuMzRaTTM3OS4xOSw5My44OCwzMzUuODcsNTAuNTZhNjQsNjQsMCwwLDAtNDUuMjQtMTguNzRIMjIzLjg4YTMyLDMyLDAsMCwwLTMyLTMyaC02NGEzMiwzMiwwLDAsMC0zMiwzMnY5NmgxMjh2LTMyaDY2Ljc1bDQzLjMxLDQzLjMxYTE2LDE2LDAsMCwwLDIyLjYzLDBsMjIuNjItMjIuNjJBMTYsMTYsMCwwLDAsMzc5LjE5LDkzLjg4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFQdW1wU29hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzUuNjMsMTYwSDg0LjM3YTY0LDY0LDAsMCwwLTYzLjc0LDU4LjIxTC4yNyw0NDIuMjFBNjQsNjQsMCwwLDAsNjQsNTEySDI1NmE2NCw2NCwwLDAsMCw2My43NC02OS43OWwtMjAuMzYtMjI0QTY0LDY0LDAsMCwwLDIzNS42MywxNjBaTTE2MCw0MTZjLTMzLjEyLDAtNjAtMjYuMzMtNjAtNTguNzUsMC0yNSwzNS43LTc1LjQ3LDUyLTk3LjI3QTEwLDEwLDAsMCwxLDE2OCwyNjBjMTYuMzMsMjEuOCw1Miw3Mi4yNyw1Miw5Ny4yN0MyMjAsMzg5LjY3LDE5My4xMiw0MTYsMTYwLDQxNlpNMzc5LjMxLDk0LjA2LDMzNiw1MC43NEE2NCw2NCwwLDAsMCwyOTAuNzUsMzJIMjI0QTMyLDMyLDAsMCwwLDE5MiwwSDEyOEEzMiwzMiwwLDAsMCw5NiwzMnY5NkgyMjRWOTZoNjYuNzVsNDMuMzEsNDMuMzFhMTYsMTYsMCwwLDAsMjIuNjMsMGwyMi42Mi0yMi42MkExNiwxNiwwLDAsMCwzNzkuMzEsOTQuMDZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVB1enpsZVBpZWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxOS40NDIgMjg4LjY1MWMtNDEuNTE5IDAtNTkuNSAzMS41OTMtODIuMDU4IDMxLjU5M0MzNzcuNDA5IDMyMC4yNDQgNDMyIDE0NCA0MzIgMTQ0cy0xOTYuMjg4IDgwLTE5Ni4yODgtMy4yOTdjMC0zNS44MjcgMzYuMjg4LTQ2LjI1IDM2LjI4OC04NS45ODVDMjcyIDE5LjIxNiAyNDMuODg1IDAgMjEwLjUzOSAwYy0zNC42NTQgMC02Ni4zNjYgMTguODkxLTY2LjM2NiA1Ni4zNDYgMCA0MS4zNjQgMzEuNzExIDU5LjI3NyAzMS43MTEgODEuNzVDMTc1Ljg4NSAyMDcuNzE5IDAgMTY2Ljc1OCAwIDE2Ni43NTh2MzMzLjIzN3MxNzguNjM1IDQxLjA0NyAxNzguNjM1LTI4LjY2MmMwLTIyLjQ3My00MC00MC4xMDctNDAtODEuNDcxIDAtMzcuNDU2IDI5LjI1LTU2LjM0NiA2My41NzctNTYuMzQ2IDMzLjY3MyAwIDYxLjc4OCAxOS4yMTYgNjEuNzg4IDU0LjcxNyAwIDM5LjczNS0zNi4yODggNTAuMTU4LTM2LjI4OCA4NS45ODUgMCA2MC44MDMgMTI5LjY3NSAyNS43MyAxODEuMjMgMjUuNzMgMCAwLTM0LjcyNS0xMjAuMTAxIDI1LjgyNy0xMjAuMTAxIDM1Ljk2MiAwIDQ2LjQyMyAzNi4xNTIgODYuMzA4IDM2LjE1MkM1NTYuNzEyIDQxNiA1NzYgMzg3Ljk5IDU3NiAzNTQuNDQzYzAtMzQuMTk5LTE4Ljk2Mi02NS43OTItNTYuNTU4LTY1Ljc5MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXJjb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0aDE5MlYzMkgwdjE5MnpNNjQgOTZoNjR2NjRINjRWOTZ6bTE5Mi02NHYxOTJoMTkyVjMySDI1NnptMTI4IDEyOGgtNjRWOTZoNjR2NjR6TTAgNDgwaDE5MlYyODhIMHYxOTJ6bTY0LTEyOGg2NHY2NEg2NHYtNjR6bTM1Mi02NGgzMnYxMjhoLTk2di0zMmgtMzJ2OTZoLTY0VjI4OGg5NnYzMmg2NHYtMzJ6bTAgMTYwaDMydjMyaC0zMnYtMzJ6bS02NCAwaDMydjMyaC0zMnYtMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVF1ZXN0aW9uQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHpNMjYyLjY1NSA5MGMtNTQuNDk3IDAtODkuMjU1IDIyLjk1Ny0xMTYuNTQ5IDYzLjc1OC0zLjUzNiA1LjI4Ni0yLjM1MyAxMi40MTUgMi43MTUgMTYuMjU4bDM0LjY5OSAyNi4zMWM1LjIwNSAzLjk0NyAxMi42MjEgMy4wMDggMTYuNjY1LTIuMTIyIDE3Ljg2NC0yMi42NTggMzAuMTEzLTM1Ljc5NyA1Ny4zMDMtMzUuNzk3IDIwLjQyOSAwIDQ1LjY5OCAxMy4xNDggNDUuNjk4IDMyLjk1OCAwIDE0Ljk3Ni0xMi4zNjMgMjIuNjY3LTMyLjUzNCAzMy45NzZDMjQ3LjEyOCAyMzguNTI4IDIxNiAyNTQuOTQxIDIxNiAyOTZ2NGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEuMzMzYzAtMjguNDYyIDgzLjE4Ni0yOS42NDcgODMuMTg2LTEwNi42NjcgMC01OC4wMDItNjAuMTY1LTEwMi0xMTYuNTMxLTEwMnpNMjU2IDMzOGMtMjUuMzY1IDAtNDYgMjAuNjM1LTQ2IDQ2IDAgMjUuMzY0IDIwLjYzNSA0NiA0NiA0NnM0Ni0yMC42MzYgNDYtNDZjMC0yNS4zNjUtMjAuNjM1LTQ2LTQ2LTQ2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFRdWVzdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDIuMDIxIDBDMTIyLjIwMiAwIDcwLjUwMyAzMi43MDMgMjkuOTE0IDkxLjAyNmMtNy4zNjMgMTAuNTgtNS4wOTMgMjUuMDg2IDUuMTc4IDMyLjg3NGw0My4xMzggMzIuNzA5YzEwLjM3MyA3Ljg2NSAyNS4xMzIgNi4wMjYgMzMuMjUzLTQuMTQ4IDI1LjA0OS0zMS4zODEgNDMuNjMtNDkuNDQ5IDgyLjc1Ny00OS40NDkgMzAuNzY0IDAgNjguODE2IDE5Ljc5OSA2OC44MTYgNDkuNjMxIDAgMjIuNTUyLTE4LjYxNyAzNC4xMzQtNDguOTkzIDUxLjE2NC0zNS40MjMgMTkuODYtODIuMjk5IDQ0LjU3Ni04Mi4yOTkgMTA2LjQwNVYzMjBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDcyLjQ3MWMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTUuNzczYzAtNDIuODYgMTI1LjI2OC00NC42NDUgMTI1LjI2OC0xNjAuNjI3QzM3Ny41MDQgNjYuMjU2IDI4Ni45MDIgMCAyMDIuMDIxIDB6TTE5MiAzNzMuNDU5Yy0zOC4xOTYgMC02OS4yNzEgMzEuMDc1LTY5LjI3MSA2OS4yNzEgMCAzOC4xOTUgMzEuMDc1IDY5LjI3IDY5LjI3MSA2OS4yN3M2OS4yNzEtMzEuMDc1IDY5LjI3MS02OS4yNzEtMzEuMDc1LTY5LjI3LTY5LjI3MS02OS4yN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVpZGRpdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1Ni41IDIxNi44TDM0My4yIDMyNnMtMTYuNiAxMDIuNC03Ni42IDE1MC4xQzIwNi43IDUyMy44IDAgNTEwLjIgMCA1MTAuMnMzLjgtMjMuMSAxMS01NS40bDk0LjYtMTEyLjJjNC00LjctLjktMTEuNi02LjYtOS41bC02MC40IDIyLjFjMTQuNC00MS43IDMyLjctODAgNTQuNi05Ny41IDU5LjktNDcuOCAxNjMuMy00MC45IDE2My4zLTQwLjl6bTIzOCAxMzVjLTQ0IDAtNzkuOCAzNS44LTc5LjggNzkuOSAwIDQ0LjEgMzUuNyA3OS45IDc5LjggNzkuOSA0NC4xIDAgNzkuOC0zNS44IDc5LjgtNzkuOSAwLTQ0LjItMzUuOC03OS45LTc5LjgtNzkuOXpNNjM2LjUgMzFMNjE2LjcgNmMtNS41LTYuOS0xNS41LTgtMjIuNC0yLjZMMzYxLjggMTgxLjNsLTM0LjEtNDNjLTUuMS02LjQtMTUuMS01LjItMTguNiAyLjJsLTI1LjMgNTQuNiA4Ni43IDEwOS4yIDU4LjgtMTIuNGM4LTEuNyAxMS40LTExLjIgNi4zLTE3LjZsLTM0LjEtNDIuOUw2MzQgNTMuNWM2LjktNS41IDgtMTUuNiAyLjUtMjIuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvdGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAyNTZoLTgwdi02NGMwLTM1LjMgMjguNy02NCA2NC02NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0aC04Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNGMwLTI2LjUtMjEuNS00OC00OC00OHptLTI4OCAwSDk2di02NGMwLTM1LjMgMjguNy02NCA2NC02NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0aC04QzcxLjYgMzIgMCAxMDMuNiAwIDE5MnYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVvdGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJIMzM2Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxMjhjMCAyNi41IDIxLjUgNDggNDggNDhoODB2NjRjMCAzNS4zLTI4LjcgNjQtNjQgNjRoLThjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQ4YzAgMTMuMyAxMC43IDI0IDI0IDI0aDhjODguNCAwIDE2MC03MS42IDE2MC0xNjBWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0yODggMEg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUXVyYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDM1OC40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNmMwLTYuNC0zLjItMTIuOC05LjYtMTkuMi0zLjItMTYtMy4yLTYwLjggMC03My42IDYuNC0zLjIgOS42LTkuNiA5LjYtMTkuMnpNMzAxLjA4IDE0NS44MmMuNi0xLjIxIDEuNzYtMS44MiAyLjkyLTEuODJzMi4zMi42MSAyLjkyIDEuODJsMTEuMTggMjIuNjUgMjUgMy42M2MyLjY3LjM5IDMuNzQgMy42NyAxLjgxIDUuNTZsLTE4LjA5IDE3LjYzIDQuMjcgMjQuODljLjM2IDIuMTEtMS4zMSAzLjgyLTMuMjEgMy44Mi0uNSAwLTEuMDItLjEyLTEuNTItLjM4TDMwNCAyMTEuODdsLTIyLjM2IDExLjc1Yy0uNS4yNi0xLjAyLjM4LTEuNTIuMzgtMS45IDAtMy41Ny0xLjcxLTMuMjEtMy44Mmw0LjI3LTI0Ljg5LTE4LjA5LTE3LjYzYy0xLjk0LTEuODktLjg3LTUuMTcgMS44MS01LjU2bDI0Ljk5LTMuNjMgMTEuMTktMjIuNjV6bS01Ny44OS02OS4wMWMxMy42NyAwIDI3LjI2IDIuNDkgNDAuMzggNy40MWE2Ljc3NSA2Ljc3NSAwIDEgMS0yLjM4IDEzLjEyYy0uNjcgMC0zLjA5LS4yMS00LjEzLS4yMS01Mi4zMSAwLTk0Ljg2IDQyLjU1LTk0Ljg2IDk0Ljg2IDAgNTIuMyA0Mi41NSA5NC44NiA5NC44NiA5NC44NiAxLjAzIDAgMy40OC0uMjEgNC4xMy0uMjEgMy45MyAwIDYuOCAzLjE0IDYuOCA2Ljc4IDAgMi45OC0xLjk0IDUuNTEtNC42MiA2LjQyLTEzLjA3IDQuODctMjYuNTkgNy4zNC00MC4xOSA3LjM0QzE3OS42NyAzMDcuMTkgMTI4IDI1NS41MSAxMjggMTkyYzAtNjMuNTIgNTEuNjctMTE1LjE5IDExNS4xOS0xMTUuMTl6TTM4MC44IDQ0OEg5NmMtMTkuMiAwLTMyLTEyLjgtMzItMzJzMTYtMzIgMzItMzJoMjg0Ljh2NjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhZGlhdGlvbkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTIgMjU2aDc5LjFjOS4yIDAgMTYuOS03LjcgMTYtMTYuOC00LjYtNDMuNi0yNy04MS44LTU5LjUtMTA3LjgtNy42LTYuMS0xOC44LTQuNS0yNCAzLjhMMjgxLjkgMjAyYzE4IDExLjIgMzAuMSAzMS4yIDMwLjEgNTR6bS05Ny44IDU0LjFMMTcyLjQgMzc3Yy00LjkgNy44LTIuNCAxOC40IDUuOCAyMi41IDIxLjEgMTAuNCA0NC43IDE2LjUgNjkuOCAxNi41czQ4LjctNi4xIDY5LjktMTYuNWM4LjItNC4xIDEwLjYtMTQuNyA1LjgtMjIuNWwtNDEuOC02Ni45Yy05LjggNi4yLTIxLjQgOS45LTMzLjggOS45cy0yNC4xLTMuNy0zMy45LTkuOXpNMTA0LjkgMjU2SDE4NGMwLTIyLjggMTIuMS00Mi44IDMwLjItNTQuMWwtNDEuNy02Ni44Yy01LjItOC4zLTE2LjQtOS45LTI0LTMuOC0zMi42IDI2LTU0LjkgNjQuMi01OS41IDEwNy44LTEuMSA5LjIgNi43IDE2LjkgMTUuOSAxNi45ek0yNDggNTA0YzEzNyAwIDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDh6bTAtNDMyYzEwMS41IDAgMTg0IDgyLjUgMTg0IDE4NHMtODIuNSAxODQtMTg0IDE4NFM2NCAzNTcuNSA2NCAyNTYgMTQ2LjUgNzIgMjQ4IDcyem0wIDIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJhZGlhdGlvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjguMiAyNTUuOGgxNTEuNmM5LjEgMCAxNi44LTcuNyAxNi4yLTE2LjgtNS4xLTc1LjgtNDQuNC0xNDIuMi0xMDIuNS0xODQuMi03LjQtNS4zLTE3LjktMi45LTIyLjcgNC44TDI5MC40IDE4OGMyMi42IDE0LjMgMzcuOCAzOS4yIDM3LjggNjcuOHptLTM3LjggNjcuN2MtMTIuMyA3LjctMjYuOCAxMi40LTQyLjQgMTIuNC0xNS42IDAtMzAtNC43LTQyLjQtMTIuNEwxMjUuMiA0NTJjLTQuOCA3LjctMi40IDE4LjEgNS42IDIyLjRDMTY1LjcgNDkzLjIgMjA1LjYgNTA0IDI0OCA1MDRzODIuMy0xMC44IDExNy4yLTI5LjZjOC00LjMgMTAuNC0xNC44IDUuNi0yMi40bC04MC40LTEyOC41ek0yNDggMzAzLjhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhzLTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0tMjMxLjgtNDhoMTUxLjZjMC0yOC42IDE1LjItNTMuNSAzNy44LTY3LjdMMTI1LjIgNTkuN2MtNC44LTcuNy0xNS4zLTEwLjItMjIuNy00LjhDNDQuNCA5Ni45IDUuMSAxNjMuMyAwIDIzOS4xYy0uNiA5IDcuMSAxNi43IDE2LjIgMTYuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmFpbmJvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNjguMyAzMi43QzExNS40IDQyLjkgMCAxNzYuOSAwIDMzMC4yVjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMEM2NCAxODYuOCAxODAuOSA4MC4zIDMxNy41IDk3LjkgNDMwLjQgMTEyLjQgNTEyIDIxNCA1MTIgMzI3LjhWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtMTY1LjMtMTQwLTI5OC42LTMwNy43LTI4Ny4zem0tNS42IDk2LjlDMTY2IDE0MiA5NiAyMjkuMSA5NiAzMjYuN1Y0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC03NC44IDY0LjUtMTM0LjggMTQwLjgtMTI3LjQgNjYuNSA2LjUgMTE1LjIgNjYuMiAxMTUuMiAxMzMuMVY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xMTQuMi0xMDAuMi0yMDUuNC0yMTcuMy0xOTAuNHptNi4yIDk2LjNjLTQ1LjYgOC45LTc2LjkgNTEuNS03Ni45IDk3LjlWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtMTcuNiAxNC4zLTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2MTQ0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtNTkuMi01My44LTEwNi0xMTUuMS05NC4xelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSYW5kb20gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA0Ljk3MSAzNTkuMDI5YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MWwtODAgNzkuOTg0Yy0xNS4wMSAxNS4wMS00MC45NzEgNC40OS00MC45NzEtMTYuOTcxVjQxNmgtNTguNzg1YTEyLjAwNCAxMi4wMDQgMCAwIDEtOC43NzMtMy44MTJsLTcwLjU1Ni03NS41OTYgNTMuMzMzLTU3LjE0M0wzNTIgMzM2aDMydi0zOS45ODFjMC0yMS40MzggMjUuOTQzLTMxLjk5OCA0MC45NzEtMTYuOTcxbDgwIDc5Ljk4MXpNMTIgMTc2aDg0bDUyLjc4MSA1Ni41NTEgNTMuMzMzLTU3LjE0My03MC41NTYtNzUuNTk2QTExLjk5OSAxMS45OTkgMCAwIDAgMTIyLjc4NSA5NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyem0zNzIgMHYzOS45ODRjMCAyMS40NiAyNS45NjEgMzEuOTggNDAuOTcxIDE2Ljk3MWw4MC03OS45ODRjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxbC04MC03OS45ODFDNDA5Ljk0MyAyNC4wMjEgMzg0IDM0LjU4MiAzODQgNTYuMDE5Vjk2aC01OC43ODVhMTIuMDA0IDEyLjAwNCAwIDAgMC04Ljc3MyAzLjgxMkw5NiAzMzZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTAuNzg1YzMuMzI2IDAgNi41MDMtMS4zODEgOC43NzMtMy44MTJMMzUyIDE3NmgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVjZWlwdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTguNCAzLjJMMzIwIDQ4IDI2NS42IDMuMmExNS45IDE1LjkgMCAwIDAtMTkuMiAwTDE5MiA0OCAxMzcuNiAzLjJhMTUuOSAxNS45IDAgMCAwLTE5LjIgMEw2NCA0OCAyNS42IDMuMkMxNS00LjcgMCAyLjggMCAxNnY0ODBjMCAxMy4yIDE1IDIwLjcgMjUuNiAxMi44TDY0IDQ2NGw1NC40IDQ0LjhhMTUuOSAxNS45IDAgMCAwIDE5LjIgMEwxOTIgNDY0bDU0LjQgNDQuOGExNS45IDE1LjkgMCAwIDAgMTkuMiAwTDMyMCA0NjRsMzguNCA0NC44YzEwLjUgNy45IDI1LjYuNCAyNS42LTEyLjhWMTZjMC0xMy4yLTE1LTIwLjctMjUuNi0xMi44ek0zMjAgMzYwYzAgNC40LTMuNiA4LTggOEg3MmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMjQwYzQuNCAwIDggMy42IDggOHYxNnptMC05NmMwIDQuNC0zLjYgOC04IDhINzJjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDI0MGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDcyYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgyNDBjNC40IDAgOCAzLjYgOCA4djE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWNvcmRWaW55bCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgMTUyYTEwNCAxMDQgMCAxIDAgMTA0IDEwNCAxMDQgMTA0IDAgMCAwLTEwNC0xMDR6bTAgMTI4YTI0IDI0IDAgMSAxIDI0LTI0IDI0IDI0IDAgMCAxLTI0IDI0em0wLTI3MkMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDM3NmExMjggMTI4IDAgMSAxIDEyOC0xMjggMTI4IDEyOCAwIDAgMS0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWN5Y2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE4NC41NjEgMjYxLjkwM2MzLjIzMiAxMy45OTctMTIuMTIzIDI0LjYzNS0yNC4wNjggMTcuMTY4bC00MC43MzYtMjUuNDU1LTUwLjg2NyA4MS40MDJDNTUuNjA2IDM1Ni4yNzMgNzAuOTYgMzg0IDk2LjAxMiAzODRIMTQ4YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg5Ni4xMTVjLTc1LjMzNCAwLTEyMS4zMDItODMuMDQ4LTgxLjQwOC0xNDYuODhsNTAuODIyLTgxLjM4OC00MC43MjUtMjUuNDQ4Yy0xMi4wODEtNy41NDctOC45NjYtMjUuOTYxIDQuODc5LTI5LjE1OGwxMTAuMjM3LTI1LjQ1YzguNjExLTEuOTg4IDE3LjIwMSAzLjM4MSAxOS4xODkgMTEuOTlsMjUuNDUyIDExMC4yMzd6bTk4LjU2MS0xODIuOTE1bDQxLjI4OSA2Ni4wNzYtNDAuNzQgMjUuNDU3Yy0xMi4wNTEgNy41MjgtOSAyNS45NTMgNC44NzkgMjkuMTU4bDExMC4yMzcgMjUuNDVjOC42NzIgMS45OTkgMTcuMjE1LTMuNDM4IDE5LjE4OS0xMS45OWwyNS40NS0xMTAuMjM3YzMuMTk3LTEzLjg0NC0xMS45OS0yNC43MTktMjQuMDY4LTE3LjE2OGwtNDAuNjg3IDI1LjQyNC00MS4yNjMtNjYuMDgyYy0zNy41MjEtNjAuMDMzLTEyNS4yMDktNjAuMTcxLTE2Mi44MTYgMGwtMTcuOTYzIDI4Ljc2NmMtMy41MSA1LjYyLTEuOCAxMy4wMjEgMy44MiAxNi41MzNsMzMuOTE5IDIxLjE5NWM1LjYyIDMuNTEyIDEzLjAyNCAxLjgwMyAxNi41MzYtMy44MTdsMTcuOTYxLTI4Ljc0M2MxMi43MTItMjAuMzQxIDQxLjk3My0xOS42NzYgNTQuMjU3LS4wMjJ6TTQ5Ny4yODggMzAxLjEybC0yNy41MTUtNDQuMDY1Yy0zLjUxMS01LjYyMy0xMC45MTYtNy4zMzQtMTYuNTM4LTMuODIxbC0zMy44NjEgMjEuMTU5Yy01LjYyIDMuNTEyLTcuMzMgMTAuOTE1LTMuODE4IDE2LjUzNmwyNy41NjQgNDQuMTEyYzEzLjI1NyAyMS4yMTEtMi4wNTcgNDguOTYtMjcuMTM2IDQ4Ljk2SDMyMFYzMzYuMDJjMC0xNC4yMTMtMTcuMjQyLTIxLjM4My0yNy4zMTMtMTEuMzEzbC04MCA3OS45ODFjLTYuMjQ5IDYuMjQ4LTYuMjQ5IDE2LjM3OSAwIDIyLjYyN2w4MCA3OS45ODlDMzAyLjY4OSA1MTcuMzA4IDMyMCA1MTAuMyAzMjAgNDk1Ljk4OVY0NDhoOTUuODhjNzUuMjc0IDAgMTIxLjMzNS04Mi45OTcgODEuNDA4LTE0Ni44OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVkb0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYuNDU1IDhjNjYuMjY5LjExOSAxMjYuNDM3IDI2LjIzMyAxNzAuODU5IDY4LjY4NWwzNS43MTUtMzUuNzE1QzQ3OC4xNDkgMjUuODUxIDUwNCAzNi41NTkgNTA0IDU3Ljk0MVYxOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDM0NS45NDFjLTIxLjM4MiAwLTMyLjA5LTI1Ljg1MS0xNi45NzEtNDAuOTcxbDQxLjc1LTQxLjc1Yy0zMC44NjQtMjguODk5LTcwLjgwMS00NC45MDctMTEzLjIzLTQ1LjI3My05Mi4zOTgtLjc5OC0xNzAuMjgzIDczLjk3Ny0xNjkuNDg0IDE2OS40NDJDODguNzY0IDM0OC4wMDkgMTYyLjE4NCA0MjQgMjU2IDQyNGM0MS4xMjcgMCA3OS45OTctMTQuNjc4IDExMC42MjktNDEuNTU2IDQuNzQzLTQuMTYxIDExLjkwNi0zLjkwOCAxNi4zNjguNTUzbDM5LjY2MiAzOS42NjJjNC44NzIgNC44NzIgNC42MzEgMTIuODE1LS40ODIgMTcuNDMzQzM3OC4yMDIgNDc5LjgxMyAzMTkuOTI2IDUwNCAyNTYgNTA0IDExOS4wMzQgNTA0IDguMDAxIDM5Mi45NjcgOCAyNTYuMDAyIDcuOTk5IDExOS4xOTMgMTE5LjY0NiA3Ljc1NSAyNTYuNDU1IDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZG8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwLjMzIDBoLTQ3LjQxYTEyIDEyIDAgMCAwLTEyIDEyLjU3bDQgODIuNzZBMjQ3LjQyIDI0Ny40MiAwIDAgMCAyNTYgOEMxMTkuMzQgOCA3LjkgMTE5LjUzIDggMjU2LjE5IDguMSAzOTMuMDcgMTE5LjEgNTA0IDI1NiA1MDRhMjQ3LjEgMjQ3LjEgMCAwIDAgMTY2LjE4LTYzLjkxIDEyIDEyIDAgMCAwIC40OC0xNy40M2wtMzQtMzRhMTIgMTIgMCAwIDAtMTYuMzgtLjU1QTE3NiAxNzYgMCAxIDEgNDAyLjEgMTU3LjhsLTEwMS41My00Ljg3YTEyIDEyIDAgMCAwLTEyLjU3IDEydjQ3LjQxYTEyIDEyIDAgMCAwIDEyIDEyaDIwMC4zM2ExMiAxMiAwIDAgMCAxMi0xMlYxMmExMiAxMiAwIDAgMC0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnaXN0ZXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODUuMzYzIDIwNy40NzVjMCAxOC42LTkuODMxIDI4LjQzMS0yOC40MzEgMjguNDMxaC0yOS44NzZ2LTU2LjE0aDIzLjM3OGMyOC42NjggMCAzNC45MjkgOC43NzMgMzQuOTI5IDI3LjcwOXpNNTA0IDI1NmMwIDEzNi45NjctMTExLjAzMyAyNDgtMjQ4IDI0OFM4IDM5Mi45NjcgOCAyNTYgMTE5LjAzMyA4IDI1NiA4czI0OCAxMTEuMDMzIDI0OCAyNDh6TTM2My40MTEgMzYwLjQxNGMtNDYuNzI5LTg0LjgyNS00My4yOTktNzguNjM2LTQ0LjcwMi04MC45OCAyMy40MzItMTUuMTcyIDM3Ljk0NS00Mi45NzkgMzcuOTQ1LTc0LjQ4NiAwLTU0LjI0NC0zMS41LTg5LjI1Mi0xMDUuNDk4LTg5LjI1MmgtNzAuNjY3Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRWMzcyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyMi41NjdjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di03MS42NjNoMjUuNTU2bDQ0LjEyOSA4Mi45MzdhMjQuMDAxIDI0LjAwMSAwIDAgMCAyMS4xODggMTIuNzI3aDI0LjQ2NGMxOC4yNjEtLjAwMSAyOS44MjktMTkuNTkxIDIxLjAxOC0zNS41ODd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlbW92ZUZvcm1hdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgNDE2aC0xMS4xN2w5LjI2LTI3Ljc3TDI2NyAzMzYuNCAyNDAuNDkgNDE2SDIwOGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0yOTcuODIgNDIuMUwzNzcgMjU5LjU5IDQyNi4xNyAxMTJINTQ0djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDE3NmExNiAxNiAwIDAgMC0xNiAxNnY0My45TDQ1LjQ2IDMuMzhBMTYgMTYgMCAwIDAgMjMgNi4xOUwzLjM3IDMxLjQ2YTE2IDE2IDAgMCAwIDIuODEgMjIuNDVsNTg4LjM2IDQ1NC43MmExNiAxNiAwIDAgMCAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YTE2IDE2IDAgMCAwLTIuODItMjIuNDV6TTMwOS45MSAyMDcuNzZMMjI0IDE0MS4zNlYxMTJoMTE3LjgzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseUFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMzYuMzA5IDE4OS44MzZMMzEyLjMxMyAzNy44NTFDMzI3LjcyIDI0LjU0NiAzNTIgMzUuMzQ4IDM1MiA1Ni4wMTV2ODIuNzYzYzEyOS4xODIgMTAuMjMxIDIyNCA1Mi4yMTIgMjI0IDE4My41NDggMCA2MS40NDEtMzkuNTgyIDEyMi4zMDktODMuMzMzIDE1NC4xMzItMTMuNjUzIDkuOTMxLTMzLjExMS0yLjUzMy0yOC4wNzctMTguNjMxIDM4LjUxMi0xMjMuMTYyLTMuOTIyLTE2OS40ODItMTEyLjU5LTE4Mi4wMTV2ODQuMTc1YzAgMjAuNzAxLTI0LjMgMzEuNDUzLTM5LjY4NyAxOC4xNjRMMTM2LjMwOSAyMjYuMTY0Yy0xMS4wNzEtOS41NjEtMTEuMDg2LTI2Ljc1MyAwLTM2LjMyOHptLTEyOCAzNi4zMjhMMTg0LjMxMyAzNzguMTVDMTk5LjcgMzkxLjQzOSAyMjQgMzgwLjY4NyAyMjQgMzU5Ljk4NnYtMTUuODE4bC0xMDguNjA2LTkzLjc4NUE1NS45NiA1NS45NiAwIDAgMSA5NiAyMDcuOTk4YTU1Ljk1MyA1NS45NTMgMCAwIDEgMTkuMzkzLTQyLjM4TDIyNCA3MS44MzJWNTYuMDE1YzAtMjAuNjY3LTI0LjI4LTMxLjQ2OS0zOS42ODctMTguMTY0TDguMzA5IDE4OS44MzZjLTExLjA4NiA5LjU3NS0xMS4wNzEgMjYuNzY3IDAgMzYuMzI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXBseSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk04LjMwOSAxODkuODM2TDE4NC4zMTMgMzcuODUxQzE5OS43MTkgMjQuNTQ2IDIyNCAzNS4zNDcgMjI0IDU2LjAxNXY4MC4wNTNjMTYwLjYyOSAxLjgzOSAyODggMzQuMDMyIDI4OCAxODYuMjU4IDAgNjEuNDQxLTM5LjU4MSAxMjIuMzA5LTgzLjMzMyAxNTQuMTMyLTEzLjY1MyA5LjkzMS0zMy4xMTEtMi41MzMtMjguMDc3LTE4LjYzMSA0NS4zNDQtMTQ1LjAxMi0yMS41MDctMTgzLjUxLTE3Ni41OS0xODUuNzQyVjM2MGMwIDIwLjctMjQuMyAzMS40NTMtMzkuNjg3IDE4LjE2NGwtMTc2LjAwNC0xNTJjLTExLjA3MS05LjU2Mi0xMS4wODYtMjYuNzUzIDAtMzYuMzI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXB1YmxpY2FuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU0NCAxOTJjMC04OC40LTcxLjYtMTYwLTE2MC0xNjBIMTYwQzcxLjYgMzIgMCAxMDMuNiAwIDE5MnY2NGg1NDR2LTY0em0tMzY3LjctMjEuNmwtMTkuOCAxOS4zIDQuNyAyNy4zYy44IDQuOS00LjMgOC42LTguNyA2LjNMMTI4IDIxMC40bC0yNC41IDEyLjljLTQuMyAyLjMtOS41LTEuNC04LjctNi4zbDQuNy0yNy4zLTE5LjgtMTkuM2MtMy42LTMuNS0xLjYtOS41IDMuMy0xMC4ybDI3LjQtNCAxMi4yLTI0LjhjMi4yLTQuNSA4LjYtNC40IDEwLjcgMGwxMi4yIDI0LjggMjcuNCA0YzUgLjcgNi45IDYuNyAzLjQgMTAuMnptMTQ0IDBsLTE5LjggMTkuMyA0LjcgMjcuM2MuOCA0LjktNC4zIDguNi04LjcgNi4zTDI3MiAyMTAuNGwtMjQuNSAxMi45Yy00LjMgMi4zLTkuNS0xLjQtOC43LTYuM2w0LjctMjcuMy0xOS44LTE5LjNjLTMuNi0zLjUtMS42LTkuNSAzLjMtMTAuMmwyNy40LTQgMTIuMi0yNC44YzIuMi00LjUgOC42LTQuNCAxMC43IDBsMTIuMiAyNC44IDI3LjQgNGM1IC43IDYuOSA2LjcgMy40IDEwLjJ6bTE0NCAwbC0xOS44IDE5LjMgNC43IDI3LjNjLjggNC45LTQuMyA4LjYtOC43IDYuM0w0MTYgMjEwLjRsLTI0LjUgMTIuOWMtNC4zIDIuMy05LjUtMS40LTguNy02LjNsNC43LTI3LjMtMTkuOC0xOS4zYy0zLjYtMy41LTEuNi05LjUgMy4zLTEwLjJsMjcuNC00IDEyLjItMjQuOGMyLjItNC41IDguNi00LjQgMTAuNyAwbDEyLjIgMjQuOCAyNy40IDRjNSAuNyA2LjkgNi43IDMuNCAxMC4yek02MjQgMzIwaC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djY0YzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjI4OEgwdjE3NmMwIDguOCA3LjIgMTYgMTYgMTZoOTZjOC44IDAgMTYtNy4yIDE2LTE2di04MGgxOTJ2ODBjMCA4LjggNy4yIDE2IDE2IDE2aDk2YzguOCAwIDE2LTcuMiAxNi0xNlYzNTJoMzJ2NDMuM2MwIDQxLjggMzAgODAuMSA3MS42IDg0LjMgNDcuOCA0LjkgODguNC0zMi43IDg4LjQtNzkuNnYtNjRjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZXN0cm9vbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0UzE2My4zIDAgMTI4IDAgNjQgMjguNyA2NCA2NHMyOC43IDY0IDY0IDY0em0zODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NFM1NDcuMyAwIDUxMiAwcy02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTEyNy4zIDIyNi41bC00NS42LTE4NS44Yy0zLjMtMTMuNS0xNS41LTIzLTI5LjgtMjQuMi0xNSA5LjctMzIuOCAxNS41LTUyIDE1LjUtMTkuMiAwLTM3LTUuOC01Mi0xNS41LTE0LjMgMS4yLTI2LjUgMTAuNy0yOS44IDI0LjJsLTQ1LjYgMTg1LjhDMzgxIDM2OS42IDM5MyAzODQgNDA5LjIgMzg0SDQ2NHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzg0aDU0LjhjMTYuMiAwIDI4LjItMTQuNCAyNC41LTI5LjV6TTMzNiAwaC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4MGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMTgwLjEgMTQ0LjRjLTE1IDkuOC0zMi45IDE1LjYtNTIuMSAxNS42LTE5LjIgMC0zNy4xLTUuOC01Mi4xLTE1LjZDNTEuMyAxNDYuNSAzMiAxNjYuOSAzMiAxOTJ2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDh2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjM1Mmg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE5MmMwLTI1LjEtMTkuMy00NS41LTQzLjktNDcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmV0d2VldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjkuNjU3IDM0My41OThMNTI4Ljk3MSA0NDQuMjg0Yy05LjM3MyA5LjM3Mi0yNC41NjggOS4zNzItMzMuOTQxIDBMMzk0LjM0MyAzNDMuNTk4Yy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFsMTAuODIzLTEwLjgyM2M5LjU2Mi05LjU2MiAyNS4xMzMtOS4zNCAzNC40MTkuNDkyTDQ4MCAzNDIuMTE4VjE2MEgyOTIuNDUxYTI0LjAwNSAyNC4wMDUgMCAwIDEtMTYuOTcxLTcuMDI5bC0xNi0xNkMyNDQuMzYxIDEyMS44NTEgMjU1LjA2OSA5NiAyNzYuNDUxIDk2SDUyMGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MjIyLjExOGw0MC40MTYtNDIuNzkyYzkuMjg1LTkuODMxIDI0Ljg1Ni0xMC4wNTQgMzQuNDE5LS40OTJsMTAuODIzIDEwLjgyM2M5LjM3MiA5LjM3MiA5LjM3MiAyNC41NjktLjAwMSAzMy45NDF6bS0yNjUuMTM4IDE1LjQzMUEyMy45OTkgMjMuOTk5IDAgMCAwIDM0Ny41NDggMzUySDE2MFYxNjkuODgxbDQwLjQxNiA0Mi43OTJjOS4yODYgOS44MzEgMjQuODU2IDEwLjA1NCAzNC40MTkuNDkxbDEwLjgyMi0xMC44MjJjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDE0NC45NzEgNjcuNzE2Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBMMTAuMzQzIDE2OC40MDJjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWwxMC44MjIgMTAuODIyYzkuNTYyIDkuNTYyIDI1LjEzMyA5LjM0IDM0LjQxOS0uNDkxTDk2IDE2OS44ODFWMzkyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNDMuNTQ5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxbC0xNi4wMDEtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpYmJvbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02LjEgNDQ0LjNjLTkuNiAxMC44LTcuNSAyNy42IDQuNSAzNS43bDY4LjggMjcuOWM5LjkgNi43IDIzLjMgNSAzMS4zLTMuOGw5MS44LTEwMS45LTc5LjItODcuOS0xMTcuMiAxMzB6bTQzNS44IDBzLTI5Mi0zMjQuNi0yOTUuNC0zMzAuMWMxNS40LTguNCA0MC4yLTE3LjkgNzcuNS0xNy45czYyLjEgOS41IDc3LjUgMTcuOWMtMy4zIDUuNi01NiA2NC42LTU2IDY0LjZsNzkuMSA4Ny43IDM0LjItMzhjMjguNy0zMS45IDMzLjMtNzguNiAxMS40LTExNS41bC00My43LTczLjVjLTQuMy03LjItOS45LTEzLjMtMTYuOC0xOC00MC43LTI3LjYtMTI3LjQtMjkuNy0xNzEuNCAwLTYuOSA0LjctMTIuNSAxMC44LTE2LjggMThsLTQzLjYgNzMuMmMtMS41IDIuNS0zNy4xIDYyLjIgMTEuNSAxMTZMMzM3LjUgNTA0YzggOC45IDIxLjQgMTAuNSAzMS4zIDMuOGw2OC44LTI3LjljMTEuOS04IDE0LTI0LjggNC4zLTM1LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDY0QzExMC4wNiA2NCAwIDEyNS45MSAwIDIwOHY5OC4xM0MwIDM4NC40OCAxMTQuNjIgNDQ4IDI1NiA0NDhzMjU2LTYzLjUyIDI1Ni0xNDEuODdWMjA4YzAtODIuMDktMTEwLjA2LTE0NC0yNTYtMTQ0em0wIDY0YzEwNi4wNCAwIDE5MiAzNS44MiAxOTIgODAgMCA5LjI2LTMuOTcgMTguMTItMTAuOTEgMjYuMzlDMzkyLjE1IDIwOC4yMSAzMjguMjMgMTkyIDI1NiAxOTJzLTEzNi4xNSAxNi4yMS0xODEuMDkgNDIuMzlDNjcuOTcgMjI2LjEyIDY0IDIxNy4yNiA2NCAyMDhjMC00NC4xOCA4NS45Ni04MCAxOTItODB6TTEyMC40MyAyNjQuNjRDMTU1LjA0IDI0OS45MyAyMDEuNjQgMjQwIDI1NiAyNDBzMTAwLjk2IDkuOTMgMTM1LjU3IDI0LjY0QzM1Ni44NCAyNzkuMDcgMzA4LjkzIDI4OCAyNTYgMjg4cy0xMDAuODQtOC45My0xMzUuNTctMjMuMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTczLjE5IDQwMi42N2wtMTM5Ljc5LTMyMEM0MjguNDMgNzEuMjkgNDE3LjYgNjQgNDA1LjY4IDY0aC05Ny41OWwyLjQ1IDIzLjE2Yy41IDQuNzItMy4yMSA4Ljg0LTcuOTYgOC44NGgtMjkuMTZjLTQuNzUgMC04LjQ2LTQuMTItNy45Ni04Ljg0TDI2Ny45MSA2NGgtOTcuNTljLTExLjkzIDAtMjIuNzYgNy4yOS0yNy43MyAxOC42N0wyLjggNDAyLjY3Qy02LjQ1IDQyMy44NiA4LjMxIDQ0OCAzMC41NCA0NDhoMTk2Ljg0bDEwLjMxLTk3LjY4Yy44Ni04LjE0IDcuNzItMTQuMzIgMTUuOTEtMTQuMzJoNjguOGM4LjE5IDAgMTUuMDUgNi4xOCAxNS45MSAxNC4zMkwzNDguNjIgNDQ4aDE5Ni44NGMyMi4yMyAwIDM2Ljk5LTI0LjE0IDI3LjczLTQ1LjMzek0yNjAuNCAxMzUuMTZhOCA4IDAgMCAxIDcuOTYtNy4xNmgzOS4yOWM0LjA5IDAgNy41MyAzLjA5IDcuOTYgNy4xNmw0LjYgNDMuNThjLjc1IDcuMDktNC44MSAxMy4yNi0xMS45MyAxMy4yNmgtNDAuNTRjLTcuMTMgMC0xMi42OC02LjE3LTExLjkzLTEzLjI2bDQuNTktNDMuNTh6TTMxNS42NCAzMDRoLTU1LjI5Yy05LjUgMC0xNi45MS04LjIzLTE1LjkxLTE3LjY4bDUuMDctNDhjLjg2LTguMTQgNy43Mi0xNC4zMiAxNS45MS0xNC4zMmg0NS4xNWM4LjE5IDAgMTUuMDUgNi4xOCAxNS45MSAxNC4zMmw1LjA3IDQ4YzEgOS40NS02LjQxIDE3LjY4LTE1LjkxIDE3LjY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSb2JvdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiwyMjRINjRWNDE2SDMyQTMxLjk2MTY2LDMxLjk2MTY2LDAsMCwxLDAsMzg0VjI1NkEzMS45NjE2NiwzMS45NjE2NiwwLDAsMSwzMiwyMjRabTUxMi00OFY0NDhhNjQuMDYzMjgsNjQuMDYzMjgsMCwwLDEtNjQsNjRIMTYwYTY0LjA2MzI4LDY0LjA2MzI4LDAsMCwxLTY0LTY0VjE3NmE3OS45NzQsNzkuOTc0LDAsMCwxLDgwLTgwSDI4OFYzMmEzMiwzMiwwLDAsMSw2NCwwVjk2SDQ2NEE3OS45NzQsNzkuOTc0LDAsMCwxLDU0NCwxNzZaTTI2NCwyNTZhNDAsNDAsMCwxLDAtNDAsNDBBMzkuOTk3LDM5Ljk5NywwLDAsMCwyNjQsMjU2Wm0tOCwxMjhIMTkydjMyaDY0Wm05NiwwSDI4OHYzMmg2NFpNNDU2LDI1NmE0MCw0MCwwLDEsMC00MCw0MEEzOS45OTcsMzkuOTk3LDAsMCwwLDQ1NiwyNTZabS04LDEyOEgzODR2MzJoNjRaTTY0MCwyNTZWMzg0YTMxLjk2MTY2LDMxLjk2MTY2LDAsMCwxLTMyLDMySDU3NlYyMjRoMzJBMzEuOTYxNjYsMzEuOTYxNjYsMCwwLDEsNjQwLDI1NlpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm9ja2V0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwNS4xMjAxOSwxOS4wOTM3NWMtMS4xODk0NS01LjUzMTI1LTYuNjU4MTktMTEtMTIuMjA3LTEyLjE4NzVDNDYwLjcxNiwwLDQzNS41MDcsMCw0MTAuNDA3NDcsMCwzMDcuMTc1MjMsMCwyNDUuMjY5MDksNTUuMjAzMTIsMTk5LjA1MjM4LDEyOEg5NC44Mzc3MmMtMTYuMzQ3NjMuMDE1NjItMzUuNTU2NTgsMTEuODc1LTQyLjg4NjY0LDI2LjQ4NDM4TDIuNTE1NjIsMjUzLjI5Njg4QTI4LjQsMjguNCwwLDAsMCwwLDI2NGEyNC4wMDg2NywyNC4wMDg2NywwLDAsMCwyNC4wMDU4MiwyNEgxMjcuODE2MThsLTIyLjQ3NDU3LDIyLjQ2ODc1Yy0xMS4zNjUyMSwxMS4zNjEzMy0xMi45OTYwNywzMi4yNTc4MSwwLDQ1LjI1TDE1Ni4yNDU4Miw0MDYuNjI1YzExLjE1NjIzLDExLjE4NzUsMzIuMTU2MTksMTMuMTU2MjUsNDUuMjc3MjYsMGwyMi40NzQ1Ny0yMi40Njg3NVY0ODhhMjQuMDA4NjcsMjQuMDA4NjcsMCwwLDAsMjQuMDA1ODEsMjQsMjguNTU5MzQsMjguNTU5MzQsMCwwLDAsMTAuNzA3LTIuNTE1NjJsOTguNzI4MzQtNDkuMzkwNjNjMTQuNjI4ODgtNy4yOTY4NywyNi41MDc3Ni0yNi41LDI2LjUwNzc2LTQyLjg1OTM3VjMxMi43OTY4OGM3Mi41OTc1My00Ni4zMTI1LDEyOC4wMzQ5My0xMDguNDA2MjYsMTI4LjAzNDkzLTIxMS4wOTM3NkM1MTIuMDc1MjYsNzYuNSw1MTIuMDc1MjYsNTEuMjk2ODgsNTA1LjEyMDE5LDE5LjA5Mzc1Wk0zODQuMDQwMzMsMTY4QTQwLDQwLDAsMSwxLDQyNC4wNSwxMjgsNDAuMDIzMjIsNDAuMDIzMjIsMCwwLDEsMzg0LjA0MDMzLDE2OFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUm91dGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDE2IDMyMGgtOTZjLTE3LjYgMC0zMi0xNC40LTMyLTMyczE0LjQtMzIgMzItMzJoOTZzOTYtMTA3IDk2LTE2MC00My05Ni05Ni05Ni05NiA0My05NiA5NmMwIDI1LjUgMjIuMiA2My40IDQ1LjMgOTZIMzIwYy01Mi45IDAtOTYgNDMuMS05NiA5NnM0My4xIDk2IDk2IDk2aDk2YzE3LjYgMCAzMiAxNC40IDMyIDMycy0xNC40IDMyLTMyIDMySDE4NS41Yy0xNiAyNC44LTMzLjggNDcuNy00Ny4zIDY0SDQxNmM1Mi45IDAgOTYtNDMuMSA5Ni05NnMtNDMuMS05Ni05Ni05NnptMC0yNTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyek05NiAyNTZjLTUzIDAtOTYgNDMtOTYgOTZzOTYgMTYwIDk2IDE2MCA5Ni0xMDcgOTYtMTYwLTQzLTk2LTk2LTk2em0wIDEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJzc1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6TTExMiA0MTZjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTE1Ny41MzMgMGgtMzQuMzM1Yy02LjAxMSAwLTExLjA1MS00LjYzNi0xMS40NDItMTAuNjM0LTUuMjE0LTgwLjA1LTY5LjI0My0xNDMuOTItMTQ5LjEyMy0xNDkuMTIzLTUuOTk3LS4zOS0xMC42MzMtNS40MzEtMTAuNjMzLTExLjQ0MXYtMzQuMzM1YzAtNi41MzUgNS40NjgtMTEuNzc3IDExLjk5NC0xMS40MjUgMTEwLjU0NiA1Ljk3NCAxOTguOTk3IDk0LjUzNiAyMDQuOTY0IDIwNC45NjQuMzUyIDYuNTI2LTQuODkgMTEuOTk0LTExLjQyNSAxMS45OTR6bTEwMy4wMjcgMGgtMzQuMzM0Yy02LjE2MSAwLTExLjE3NS00Ljg4Mi0xMS40MjctMTEuMDM4LTUuNTk4LTEzNi41MzUtMTE1LjIwNC0yNDYuMTYxLTI1MS43Ni0yNTEuNzZDNjguODgyIDE1Mi45NDkgNjQgMTQ3LjkzNSA2NCAxNDEuNzc0VjEwNy40NGMwLTYuNDU0IDUuMzM4LTExLjY2NCAxMS43ODctMTEuNDMyIDE2Ny44MyA2LjAyNSAzMDIuMjEgMTQxLjE5MSAzMDguMjA1IDMwOC4yMDUuMjMyIDYuNDQ5LTQuOTc4IDExLjc4Ny0xMS40MzIgMTEuNzg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LjA4MSA0MTUuOTU5YzAgMzUuMzY5LTI4LjY3MiA2NC4wNDEtNjQuMDQxIDY0LjA0MVMwIDQ1MS4zMjggMCA0MTUuOTU5czI4LjY3Mi02NC4wNDEgNjQuMDQxLTY0LjA0MSA2NC4wNCAyOC42NzMgNjQuMDQgNjQuMDQxem0xNzUuNjYgNDcuMjVjLTguMzU0LTE1NC42LTEzMi4xODUtMjc4LjU4Ny0yODYuOTUtMjg2Ljk1QzcuNjU2IDE3NS43NjUgMCAxODMuMTA1IDAgMTkyLjI1M3Y0OC4wNjljMCA4LjQxNSA2LjQ5IDE1LjQ3MiAxNC44ODcgMTYuMDE4IDExMS44MzIgNy4yODQgMjAxLjQ3MyA5Ni43MDIgMjA4Ljc3MiAyMDguNzcyLjU0NyA4LjM5NyA3LjYwNCAxNC44ODcgMTYuMDE4IDE0Ljg4N2g0OC4wNjljOS4xNDkuMDAxIDE2LjQ4OS03LjY1NSAxNS45OTUtMTYuNzl6bTE0NC4yNDkuMjg4QzQzOS41OTYgMjI5LjY3NyAyNTEuNDY1IDQwLjQ0NSAxNi41MDMgMzIuMDEgNy40NzMgMzEuNjg2IDAgMzguOTgxIDAgNDguMDE2djQ4LjA2OGMwIDguNjI1IDYuODM1IDE1LjY0NSAxNS40NTMgMTUuOTk5IDE5MS4xNzkgNy44MzkgMzQ0LjYyNyAxNjEuMzE2IDM1Mi40NjUgMzUyLjQ2NS4zNTMgOC42MTggNy4zNzMgMTUuNDUzIDE1Ljk5OSAxNS40NTNoNDguMDY4YzkuMDM0LS4wMDEgMTYuMzI5LTcuNDc0IDE2LjAwNS0xNi41MDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1YmxlU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzkuMzYgMzIwQzMyNC40OCAzMjAgMzg0IDI2MC41NDIgMzg0IDE3NS4wNzFTMzI0LjQ4IDMyIDIzOS4zNiAzMkg3NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyMDYuNjMySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEyVjMwOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDUydjMySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTJ2NTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1OC41NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi01MkgzMDhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxNDYuNTZ2LTMyaDkyLjh6bS05Mi44LTIxOS4yNTJoNzguNzJjNDYuNzIgMCA3NC44OCAyOS4xMSA3NC44OCA3NC4zMjMgMCA0NS44MzItMjguMTYgNzUuNTYxLTc2LjE2IDc1LjU2MWgtNzcuNDRWMTAwLjc0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXJDb21iaW5lZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjAgMjg4aC01NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDU2di02NGgtNTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg1NlY5NmgtNTZjLTQuNDIgMC04LTMuNTgtOC04VjcyYzAtNC40MiAzLjU4LTggOC04aDU2VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMi43Ny45MSA1LjI0IDEuNTcgNy44TDE2MCAzMjkuMzhWMjg4em0zMjAgNjRoLTMydjU2YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTU2aC02NHY1NmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di01NmgtNjR2NTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtNTZoLTQxLjM3TDI0LjIgNTEwLjQzYzIuNTYuNjYgNS4wNCAxLjU3IDcuOCAxLjU3aDQ0OGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSdWxlckhvcml6b250YWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDEyOGgtNDh2ODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhoLTY0djg4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTg4aC02NHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhoLTY0djg4YzAgNC40Mi0zLjU4IDgtOCA4SDg4Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTkyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTEyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTYwYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bGVyVmVydGljYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDQxNmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4di02NGgtODhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4OHYtNjRoLTg4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODh2LTY0aC04OGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTkyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0aC04OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVsZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjM1LjcgMTY3LjJMNTU2LjEgMzEuN2MtOC44LTE1LTI4LjMtMjAuMS00My41LTExLjVsLTY5IDM5LjFMNTAzLjMgMTYxYzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45TDQxNiA3NWwtNTUuMiAzMS4zIDI3LjkgNDcuNGMyLjIgMy44LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOUwzMzMuMiAxMjIgMjc4IDE1My4zIDMzNy44IDI1NWMyLjIgMy43LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOWwtNTkuNy0xMDEuNy01NS4yIDMxLjMgMjcuOSA0Ny40YzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45bC0yNy45LTQ3LjUtNTUuMiAzMS4zIDU5LjcgMTAxLjdjMi4yIDMuNy45IDguNS0yLjkgMTAuN2wtMTMuOCA3LjhjLTMuOCAyLjItOC43LjktMTAuOS0yLjlMODQuOSAyNjIuOWwtNjkgMzkuMUMuNyAzMTAuNy00LjYgMzI5LjggNC4yIDM0NC44bDc5LjYgMTM1LjZjOC44IDE1IDI4LjMgMjAuMSA0My41IDExLjVMNjI0LjEgMjEwYzE1LjItOC42IDIwLjQtMjcuOCAxMS42LTQyLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJ1bm5pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhTMjk4LjUxIDAgMjcyIDBzLTQ4IDIxLjQ5LTQ4IDQ4IDIxLjQ5IDQ4IDQ4IDQ4ek0xMTMuNjkgMzE3LjQ3bC0xNC44IDM0LjUySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyaDc3LjQ1YzE5LjI1IDAgMzYuNTgtMTEuNDQgNDQuMTEtMjkuMDlsOC43OS0yMC41Mi0xMC42Ny02LjNjLTE3LjMyLTEwLjIzLTMwLjA2LTI1LjM3LTM3Ljk5LTQyLjYxek0zODQgMjIzLjk5aC00NC4wM2wtMjYuMDYtNTMuMjVjLTEyLjUtMjUuNTUtMzUuNDUtNDQuMjMtNjEuNzgtNTAuOTRsLTcxLjA4LTIxLjE0Yy0yOC4zLTYuOC01Ny43Ny0uNTUtODAuODQgMTcuMTRsLTM5LjY3IDMwLjQxYy0xNC4wMyAxMC43NS0xNi42OSAzMC44My01LjkyIDQ0Ljg2czMwLjg0IDE2LjY2IDQ0Ljg2IDUuOTJsMzkuNjktMzAuNDFjNy42Ny01Ljg5IDE3LjQ0LTggMjUuMjctNi4xNGwxNC43IDQuMzctMzcuNDYgODcuMzljLTEyLjYyIDI5LjQ4LTEuMzEgNjQuMDEgMjYuMyA4MC4zMWw4NC45OCA1MC4xNy0yNy40NyA4Ny43M2MtNS4yOCAxNi44NiA0LjExIDM0LjgxIDIwLjk3IDQwLjA5IDMuMTkgMSA2LjQxIDEuNDggOS41OCAxLjQ4IDEzLjYxIDAgMjYuMjMtOC43NyAzMC41Mi0yMi40NWwzMS42NC0xMDEuMDZjNS45MS0yMC43Ny0yLjg5LTQzLjA4LTIxLjY0LTU0LjM5bC02MS4yNC0zNi4xNCAzMS4zMS03OC4yOCAyMC4yNyA0MS40M2M4IDE2LjM0IDI0LjkyIDI2Ljg5IDQzLjExIDI2Ljg5SDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMycy0xNC4zMy0zMS45OS0zMi0zMS45OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUnVwZWVTaWduIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwOCA5NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJDNS4zNzMgMzIgMCAzNy4zNzMgMCA0NHY0NC43NDhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg4NS4yOGMyNy4zMDggMCA0OC4yNjEgOS45NTggNjAuOTcgMjcuMjUySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTU4Ljc1N2MtNi4yMTcgMzYuMDg2LTMyLjk2MSA1OC42MzItNzQuNzU3IDU4LjYzMkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1My4wMTJjMCAzLjM0OSAxLjQgNi41NDYgMy44NjEgOC44MThsMTY1LjA1MiAxNTIuMzU2YTEyLjAwMSAxMi4wMDEgMCAwIDAgOC4xMzkgMy4xODJoODIuNTYyYzEwLjkyNCAwIDE2LjE2Ni0xMy40MDggOC4xMzktMjAuODE4TDExNi44NzEgMzE5LjkwNmM3Ni40OTktMi4zNCAxMzEuMTQ0LTUzLjM5NSAxMzguMzE4LTEyNy45MDZIMzA4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTU4LjY5Yy0zLjQ4Ni0xMS41NDEtOC4yOC0yMi4yNDYtMTQuMjUyLTMySDMwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FkQ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2YzAgOTAuMSA0OC4yIDE2OC43IDEyMCAyMTIuMVYyODhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYxOTYuN2MyOS41IDEyLjQgNjIgMTkuMyA5NiAxOS4zczY2LjUtNi45IDk2LTE5LjNWMjg4YzAtOC44IDcuMi0xNiAxNi0xNnMxNiA3LjIgMTYgMTZ2MTgwLjFDNDQ3LjggNDI0LjcgNDk2IDM0NiA0OTYgMjU2IDQ5NiAxMTkgMzg1IDggMjQ4IDh6bS02NS41IDIxNi41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMTEyIDIzM2MtMy44IDMuMy05LjMgNC0xMy43IDEuNi00LjQtMi40LTYuOS03LjQtNi4xLTEyLjQgNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMjA4IDE5NyAyMTIgMjIyLjJjLjggNS0xLjcgMTAtNi4xIDEyLjQtNS44IDMuMS0xMS4yLjctMTMuNy0xLjZsLTkuNy04LjV6TTI0OCA0MTZjLTI2LjUgMC00OC0yOC43LTQ4LTY0czIxLjUtNjQgNDgtNjQgNDggMjguNyA0OCA2NC0yMS41IDY0LTQ4IDY0em0xNDkuOC0xODEuNWMtNS44IDMuMS0xMS4yLjctMTMuNy0xLjZsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwzMDQgMjMzYy0zLjggMy4zLTkuMyA0LTEzLjcgMS42LTQuNC0yLjQtNi45LTcuNC02LjEtMTIuNCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVM0MDAgMTk3IDQwNCAyMjIuMmMuNiA0LjktMS44IDkuOS02LjIgMTIuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2FkVGVhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyek0xNTIgNDE2Yy0yNi41IDAtNDgtMjEtNDgtNDcgMC0yMCAyOC41LTYwLjQgNDEuNi03Ny44IDMuMi00LjMgOS42LTQuMyAxMi44IDBDMTcxLjUgMzA4LjYgMjAwIDM0OSAyMDAgMzY5YzAgMjYtMjEuNSA0Ny00OCA0N3ptMTYtMTc2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTcwLjIgMTU0LjJDMzE1LjggMzY3LjQgMjgyLjkgMzUyIDI0OCAzNTJjLTIxLjIgMC0yMS4yLTMyIDAtMzIgNDQuNCAwIDg2LjMgMTkuNiAxMTQuNyA1My44IDEzLjggMTYuNC0xMS4yIDM2LjUtMjQuNSAyMC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXRlbGxpdGVEaXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNS40NDk1NCw0NjIuNTljNy4zOTE1Nyw3LjI5NzkyLDYuMTg4MjksMjAuMDk2NjEtMy4wMDAzOCwyNS4wMDM1Ni03Ny43MTMsNDEuODAyODEtMTc2LjcyNTU5LDI5LjkxMDUtMjQyLjM0MzMxLTM1LjcwODJDLTUuNDk2MjQsMzg2LjI4MjI3LTE3LjQwNCwyODcuMzYyLDI0LjQxMzgxLDIwOS41NTRjNC44OTEyNS05LjA5NSwxNy42ODk3NS0xMC4yOTgzNCwyNS4wMDMxOC0zLjAwMDQzTDE2Ni4yMjg3MiwzMjMuMzY3MDhsMjcuMzk0MTEtMjcuMzk0NTJjLS42ODc1OS0yLjYwOTc0LTEuNTk0LTUuMDAwNzEtMS41OTQtNy44MTM2MWEzMi4wMDQwNywzMi4wMDQwNywwLDEsMSwzMi4wMDQwNywzMi4wMDQ1NWMtMi43OTcyMywwLTUuMjAzNzgtLjg5MDc1LTcuNzk3ODYtMS41OTRsLTI3LjQwOTc0LDI3LjQxMDE1Wk01MTEuOTc1OCwzMDMuMDY3MzJhMTYuMTAzMzYsMTYuMTAzMzYsMCwwLDEtMTYuMDAyLDE3LjAwMjQySDQ2My44NjAzMWExNS45Njk1NiwxNS45Njk1NiwwLDAsMS0xNS44OTI2NS0xNS4wMDIxM0M0NDAuNDY2NzEsMTc1LjU0OTIsMzM2LjQ1MzQ4LDcwLjUzNDI3LDIwNy4wMzA3OCw2My41MzMyOGExNS44NDQ4NiwxNS44NDQ4NiwwLDAsMS0xNS4wMDE5MS0xNS45MDg1MlYxNi4wMjY1MkExNi4wOTM4OSwxNi4wOTM4OSwwLDAsMSwyMDkuMDMxLjAyNDI1QzM3Mi4yNTQ5MSw4LjYxOTIyLDUwMy40NzQ3MiwxMzkuODQxLDUxMS45NzU4LDMwMy4wNjczMlptLTk2LjAxMjIxLS4yOTY5MmExNi4yMTA5MywxNi4yMTA5MywwLDAsMS0xNi4xMTE0MiwxNy4yOTkzNEgzNjcuNjQ1YTE2LjA2ODYyLDE2LjA2ODYyLDAsMCwxLTE1Ljg5MjY1LTE0LjcwNTIyYy02LjkwNzEyLTc3LjAxMDk0LTY4LjExOC0xMzguOTEwMzctMTQ0LjkyNDY3LTE0NS4yMjM3NmExNS45NCwxNS45NCwwLDAsMS0xNC43OTg3Ni0xNS44OTI4OVYxMTIuMTMzOTNhMTYuMTM0LDE2LjEzNCwwLDAsMSwxNy4yOTkwOC0xNi4wOTZDMzE5LjQ1MTMyLDEwNC41MzkxLDQwNy41NTYyNywxOTIuNjQ1MzgsNDE1Ljk2MzU5LDMwMi43NzA0WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTYXRlbGxpdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAyLjYwOTY5LDMxMC4wNDIwNmwtOTYuNzAzOTMsOTYuNzE2MjVhMzEuODgxNTEsMzEuODgxNTEsMCwwLDEtNDUuMDA3NjUsMEwyODAuNTcyLDMyNi4zNDExNWwtOS44OTIzMSw5LjkwNzU5YTE5MC41NjM0MywxOTAuNTYzNDMsMCwwLDEtNS40MDcxNiwxNjguNTIyODdjLTQuNTAwNzcsOC41MDExNS0xNi4zOTM0Miw5LjU5NTA1LTIzLjIwNzA3LDIuNzk3MjVMMTM0LjU0NzE1LDQwMC4wNTQyOGwtMTcuNzk5OSwxNy43OTkyOWMuNzAzMjQsMi42MDk3MiwxLjYwOTY1LDUuMDAwNjcsMS42MDk2NSw3Ljc5NzkzYTMyLjAwNTQ0LDMyLjAwNTQ0LDAsMSwxLTMyLjAwNTQ0LTMyLjAwNDM0YzIuNzk3MzUsMCw1LjE4ODM4LjkwNjM3LDcuNzk4MiwxLjYwOTU5bDE3Ljc5OTktMTcuNzk5MjlMNC40MzEyOSwyNjkuOTQyODdjLTYuNzk4LTYuODEzNDItNS43MDQwOS0xOC42MTE5LDIuNzk3MzUtMjMuMjA2MjdhMTkwLjU4MTYxLDE5MC41ODE2MSwwLDAsMSwxNjguNTI4NjQtNS40MDdsOS43OTg1NC05Ljc5ODIxLTgwLjMxMDUzLTgwLjQxNzE2YTMyLjAwMiwzMi4wMDIsMCwwLDEsMC00NS4wOTk4N0wyMDEuOTY0NzQsOS4yOTgxNEEzMS42MjYzOSwzMS42MjYzOSwwLDAsMSwyMjQuNDY4NjgsMGEzMS45OTk1MSwzMS45OTk1MSwwLDAsMSwyMi41OTc1OSw5LjI5ODE0bDgwLjMyNjE1LDgwLjMwNzc3LDQ3LjgwNS00Ny44OTcxM2EzMy42MDc1LDMzLjYwNzUsMCwwLDEsNDcuNTA4MDgsMGw0Ny41MDgwNyw0Ny41MDY0NWEzMy42MzMwOCwzMy42MzMwOCwwLDAsMSwwLDQ3LjUwNjQ0bC00Ny44MDUsNDcuODk3MTNMNTAyLjcxOTA4LDI2NS4wMzZBMzEuNzg5MzgsMzEuNzg5MzgsMCwwLDEsNTAyLjYwOTY5LDMxMC4wNDIwNlpNMjE5LjU2MTU5LDE5Ny40MzNsNzMuODI1MDUtNzMuODIyNTItNjguOTE4LTY4LjktNzMuODA5NDIsNzMuODA2ODlabTIzNy43NDM1Miw5MC4xMDYtNjguOTAyMzMtNjguOTE1Ni03My44MjUsNzMuODIyNTIsNjguOTE4LDY4LjlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNhdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMzLjk0MSAxMjkuOTQxbC04My44ODItODMuODgyQTQ4IDQ4IDAgMCAwIDMxNi4xMTggMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE2My44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMjI0IDQxNmMtMzUuMzQ2IDAtNjQtMjguNjU0LTY0LTY0IDAtMzUuMzQ2IDI4LjY1NC02NCA2NC02NHM2NCAyOC42NTQgNjQgNjRjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0em05Ni0zMDQuNTJWMjEyYzAgNi42MjctNS4zNzMgMTItMTIgMTJINzZjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJWMTA4YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjI4LjUyYzMuMTgzIDAgNi4yMzUgMS4yNjQgOC40ODUgMy41MTVsMy40OCAzLjQ4QTExLjk5NiAxMS45OTYgMCAwIDEgMzIwIDExMS40OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2Nob29sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjI0djI3MmMwIDguODQgNy4xNiAxNiAxNiAxNmg4MFYxOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ6bTM2MC00OGgtMjR2LTQwYzAtNC40Mi0zLjU4LTgtOC04aC0xNmMtNC40MiAwLTggMy41OC04IDh2NjRjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTE2YzAtNC40Mi0zLjU4LTgtOC04em0xMzcuNzUtNjMuOTZsLTE2MC0xMDYuNjdhMzIuMDIgMzIuMDIgMCAwIDAtMzUuNSAwbC0xNjAgMTA2LjY3QTMyLjAwMiAzMi4wMDIgMCAwIDAgMTI4IDEzOC42NlY1MTJoMTI4VjM2OGMwLTguODQgNy4xNi0xNiAxNi0xNmg5NmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNDRoMTI4VjEzOC42N2MwLTEwLjctNS4zNS0yMC43LTE0LjI1LTI2LjYzek0zMjAgMjU2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwem0yODgtNjRoLTY0djMyMGg4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyMjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2NyZXdkcml2ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ4IDBMMzIwIDk2djYyLjA2bC04My4wMyA4My4wM2M2Ljc5IDQuMjUgMTMuMjcgOS4wNiAxOS4wNyAxNC44NyA1LjggNS44IDEwLjYyIDEyLjI4IDE0Ljg3IDE5LjA3TDM1My45NCAxOTJINDE2bDk2LTEyOC02NC02NHpNMTI4IDI3OC41OUwxMC45MiAzOTUuNjdjLTE0LjU1IDE0LjU1LTE0LjU1IDM4LjE1IDAgNTIuNzFsNTIuNyA1Mi43YzE0LjU2IDE0LjU2IDM4LjE1IDE0LjU2IDUyLjcxIDBMMjMzLjQxIDM4NGMyOS4xMS0yOS4xMSAyOS4xMS03Ni4zIDAtMTA1LjQxcy03Ni4zLTI5LjExLTEwNS40MSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTY3JvbGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDggMEMyMS41MyAwIDAgMjEuNTMgMCA0OHY2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg4MFY0OEM5NiAyMS41MyA3NC40NyAwIDQ4IDB6bTIwOCA0MTIuNTdWMzUyaDI4OFY5NmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2SDExMS41OUMxMjEuNzQgMTMuNDEgMTI4IDI5LjkyIDEyOCA0OHYzNjhjMCAzOC44NyAzNC42NSA2OS42NSA3NC43NSA2My4xMkMyMzQuMjIgNDc0IDI1NiA0NDQuNDYgMjU2IDQxMi41N3pNMjg4IDM4NHYzMmMwIDUyLjkzLTQzLjA2IDk2LTk2IDk2aDMzNmM2MS44NiAwIDExMi01MC4xNCAxMTItMTEyIDAtOC44NC03LjE2LTE2LTE2LTE2SDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2RDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAwSDEyOEwwIDEyOHYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xNjAgMTYwaC00OFY2NGg0OHY5NnptODAgMGgtNDhWNjRoNDh2OTZ6bTgwIDBoLTQ4VjY0aDQ4djk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hEb2xsYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1LjA0IDQ0Mi42NmwtOTkuNzEtOTkuNjljLTQuNS00LjUtMTAuNi03LTE3LTdoLTE2LjNjMjcuNi0zNS4zIDQ0LTc5LjY5IDQ0LTEyNy45OUM0MTYuMDMgOTMuMDkgMzIyLjkyIDAgMjA4LjAyIDBTMCA5My4wOSAwIDIwNy45OHM5My4xMSAyMDcuOTggMjA4LjAyIDIwNy45OGM0OC4zIDAgOTIuNzEtMTYuNCAxMjguMDEtNDR2MTYuM2MwIDYuNCAyLjUgMTIuNSA3IDE3bDk5LjcxIDk5LjY5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDI4LjMtMjguM2M5LjQtOS40IDkuNC0yNC41OS4xLTMzLjk5em0tMjk3LjAyLTkwLjdjLTc5LjU0IDAtMTQ0LTY0LjM0LTE0NC0xNDMuOTggMC03OS41MyA2NC4zNS0xNDMuOTggMTQ0LTE0My45OCA3OS41NCAwIDE0NCA2NC4zNCAxNDQgMTQzLjk4IDAgNzkuNTMtNjQuMzUgMTQzLjk4LTE0NCAxNDMuOTh6bTI3LjExLTE1Mi41NGwtNDUuMDEtMTMuNWMtNS4xNi0xLjU1LTguNzctNi43OC04Ljc3LTEyLjczIDAtNy4yNyA1LjMtMTMuMTkgMTEuOC0xMy4xOWgyOC4xMWM0LjU2IDAgOC45NiAxLjI5IDEyLjgyIDMuNzIgMy4yNCAyLjAzIDcuMzYgMS45MSAxMC4xMy0uNzNsMTEuNzUtMTEuMjFjMy41My0zLjM3IDMuMzMtOS4yMS0uNTctMTIuMTQtOS4xLTYuODMtMjAuMDgtMTAuNzctMzEuMzctMTEuMzVWMTEyYzAtNC40Mi0zLjU4LTgtOC04aC0xNmMtNC40MiAwLTggMy41OC04IDh2MTYuMTJjLTIzLjYzLjYzLTQyLjY4IDIwLjU1LTQyLjY4IDQ1LjA3IDAgMTkuOTcgMTIuOTkgMzcuODEgMzEuNTggNDMuMzlsNDUuMDEgMTMuNWM1LjE2IDEuNTUgOC43NyA2Ljc4IDguNzcgMTIuNzMgMCA3LjI3LTUuMyAxMy4xOS0xMS44IDEzLjE5aC0yOC4xYy00LjU2IDAtOC45Ni0xLjI5LTEyLjgyLTMuNzItMy4yNC0yLjAzLTcuMzYtMS45MS0xMC4xMy43M2wtMTEuNzUgMTEuMjFjLTMuNTMgMy4zNy0zLjMzIDkuMjEuNTcgMTIuMTQgOS4xIDYuODMgMjAuMDggMTAuNzcgMzEuMzcgMTEuMzVWMzA0YzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04di0xNi4xMmMyMy42My0uNjMgNDIuNjgtMjAuNTQgNDIuNjgtNDUuMDcgMC0xOS45Ny0xMi45OS0zNy44MS0zMS41OS00My4zOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VhcmNoTG9jYXRpb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA1LjA0IDQ0Mi42NmwtOTkuNzEtOTkuNjljLTQuNS00LjUtMTAuNi03LTE3LTdoLTE2LjNjMjcuNi0zNS4zIDQ0LTc5LjY5IDQ0LTEyNy45OUM0MTYuMDMgOTMuMDkgMzIyLjkyIDAgMjA4LjAyIDBTMCA5My4wOSAwIDIwNy45OHM5My4xMSAyMDcuOTggMjA4LjAyIDIwNy45OGM0OC4zIDAgOTIuNzEtMTYuNCAxMjguMDEtNDR2MTYuM2MwIDYuNCAyLjUgMTIuNSA3IDE3bDk5LjcxIDk5LjY5YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDI4LjMtMjguM2M5LjQtOS40IDkuNC0yNC41OS4xLTMzLjk5em0tMjk3LjAyLTkwLjdjLTc5LjU0IDAtMTQ0LTY0LjM0LTE0NC0xNDMuOTggMC03OS41MyA2NC4zNS0xNDMuOTggMTQ0LTE0My45OCA3OS41NCAwIDE0NCA2NC4zNCAxNDQgMTQzLjk4IDAgNzkuNTMtNjQuMzUgMTQzLjk4LTE0NCAxNDMuOTh6bS4wMi0yMzkuOTZjLTQwLjc4IDAtNzMuODQgMzMuMDUtNzMuODQgNzMuODMgMCAzMi45NiA0OC4yNiA5My4wNSA2Ni43NSAxMTQuODZhOS4yNCA5LjI0IDAgMCAwIDE0LjE4IDBjMTguNDktMjEuODEgNjYuNzUtODEuODkgNjYuNzUtMTE0Ljg2IDAtNDAuNzgtMzMuMDYtNzMuODMtNzMuODQtNzMuODN6bTAgOTZjLTEzLjI2IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWFyY2hNaW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgMTkydjMyYzAgNi42LTUuNCAxMi0xMiAxMkgxMjRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzJjMC02LjYgNS40LTEyIDEyLTEyaDE2OGM2LjYgMCAxMiA1LjQgMTIgMTJ6bTIwMSAyODQuN0w0NzYuNyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDM0MyA0MDUuM2MtNC41LTQuNS03LTEwLjYtNy0xN1YzNzJjLTM1LjMgMjcuNi03OS43IDQ0LTEyOCA0NEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMHMyMDggOTMuMSAyMDggMjA4YzAgNDguMy0xNi40IDkyLjctNDQgMTI4aDE2LjNjNi40IDAgMTIuNSAyLjUgMTcgN2w5OS43IDk5LjdjOS4zIDkuNCA5LjMgMjQuNiAwIDM0ek0zNDQgMjA4YzAtNzUuMi02MC44LTEzNi0xMzYtMTM2UzcyIDEzMi44IDcyIDIwOHM2MC44IDEzNiAxMzYgMTM2IDEzNi02MC44IDEzNi0xMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaFBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDE5MnYzMmMwIDYuNi01LjQgMTItMTIgMTJoLTU2djU2YzAgNi42LTUuNCAxMi0xMiAxMmgtMzJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNTZoLTU2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTMyYzAtNi42IDUuNC0xMiAxMi0xMmg1NnYtNTZjMC02LjYgNS40LTEyIDEyLTEyaDMyYzYuNiAwIDEyIDUuNCAxMiAxMnY1Nmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ6bTIwMSAyODQuN0w0NzYuNyA1MDVjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDM0MyA0MDUuM2MtNC41LTQuNS03LTEwLjYtNy0xN1YzNzJjLTM1LjMgMjcuNi03OS43IDQ0LTEyOCA0NEM5My4xIDQxNiAwIDMyMi45IDAgMjA4UzkzLjEgMCAyMDggMHMyMDggOTMuMSAyMDggMjA4YzAgNDguMy0xNi40IDkyLjctNDQgMTI4aDE2LjNjNi40IDAgMTIuNSAyLjUgMTcgN2w5OS43IDk5LjdjOS4zIDkuNCA5LjMgMjQuNiAwIDM0ek0zNDQgMjA4YzAtNzUuMi02MC44LTEzNi0xMzYtMTM2UzcyIDEzMi44IDcyIDIwOHM2MC44IDEzNiAxMzYgMTM2IDEzNi02MC44IDEzNi0xMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNlYXJjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDUgNDQyLjdMNDA1LjMgMzQzYy00LjUtNC41LTEwLjYtNy0xNy03SDM3MmMyNy42LTM1LjMgNDQtNzkuNyA0NC0xMjhDNDE2IDkzLjEgMzIyLjkgMCAyMDggMFMwIDkzLjEgMCAyMDhzOTMuMSAyMDggMjA4IDIwOGM0OC4zIDAgOTIuNy0xNi40IDEyOC00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNyA5OS43YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDI4LjMtMjguM2M5LjQtOS40IDkuNC0yNC42LjEtMzR6TTIwOCAzMzZjLTcwLjcgMC0xMjgtNTcuMi0xMjgtMTI4IDAtNzAuNyA1Ny4yLTEyOCAxMjgtMTI4IDcwLjcgMCAxMjggNTcuMiAxMjggMTI4IDAgNzAuNy01Ny4yIDEyOC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTZWVkbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02NCA5NkgwYzAgMTIzLjcgMTAwLjMgMjI0IDIyNCAyMjR2MTQ0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwQzI4OCAxOTYuMyAxODcuNyA5NiA2NCA5NnptMzg0LTY0Yy04NC4yIDAtMTU3LjQgNDYuNS0xOTUuNyAxMTUuMiAyNy43IDMwLjIgNDguMiA2Ni45IDU5IDEwNy42QzQyNCAyNDMuMSA1MTIgMTQ3LjkgNTEyIDMyaC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2VydmVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCAxNjBIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMlY2NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoNDQ4YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJ6bS00OC04OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0tNjQgMGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0xMTIgMjQ4SDMyYy0xNy42NzMgMC0zMi0xNC4zMjctMzItMzJ2LTY0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMmg0NDhjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnptLTQ4LTg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bS02NCAwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bTExMiAyNDhIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDQ0OGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ2NjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyem0tNDgtODhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptLTY0IDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hhcGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCwyNTZBMTI4LDEyOCwwLDEsMCwyNTYsMzg0LDEyOCwxMjgsMCwwLDAsMTI4LDI1NlptMzc5LTU0Ljg2TDQwMC4wNywxOC4yOWEzNy4yNiwzNy4yNiwwLDAsMC02NC4xNCwwTDIyOSwyMDEuMTRDMjE0Ljc2LDIyNS41MiwyMzIuNTgsMjU2LDI2MS4wOSwyNTZINDc0LjkxQzUwMy40MiwyNTYsNTIxLjI0LDIyNS41Miw1MDcsMjAxLjE0Wk00ODAsMjg4SDMyMGEzMiwzMiwwLDAsMC0zMiwzMlY0ODBhMzIsMzIsMCwwLDAsMzIsMzJINDgwYTMyLDMyLDAsMCwwLDMyLTMyVjMyMEEzMiwzMiwwLDAsMCw0ODAsMjg4WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZUFsdFNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggODB2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHpNMzA0IDI5NmMtMTQuNTYyIDAtMjcuODIzIDUuNTYxLTM3Ljc4MyAxNC42NzFsLTY3Ljk1OC00MC43NzVhNTYuMzM5IDU2LjMzOSAwIDAgMCAwLTI3Ljc5M2w2Ny45NTgtNDAuNzc1QzI3Ni4xNzcgMjEwLjQzOSAyODkuNDM4IDIxNiAzMDQgMjE2YzMwLjkyOCAwIDU2LTI1LjA3MiA1Ni01NnMtMjUuMDcyLTU2LTU2LTU2LTU2IDI1LjA3Mi01NiA1NmMwIDQuNzk3LjYwNSA5LjQ1MyAxLjc0IDEzLjg5N2wtNjcuOTU4IDQwLjc3NUMxNzEuODIzIDIwNS41NjEgMTU4LjU2MiAyMDAgMTQ0IDIwMGMtMzAuOTI4IDAtNTYgMjUuMDcyLTU2IDU2czI1LjA3MiA1NiA1NiA1NmMxNC41NjIgMCAyNy44MjMtNS41NjEgMzcuNzgzLTE0LjY3MWw2Ny45NTggNDAuNzc1YTU2LjA4OCA1Ni4wODggMCAwIDAtMS43NCAxMy44OTdjMCAzMC45MjggMjUuMDcyIDU2IDU2IDU2czU2LTI1LjA3MiA1Ni01NkMzNjAgMzIxLjA3MiAzMzQuOTI4IDI5NiAzMDQgMjk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTIgMzIwYy0yMi42MDggMC00My4zODcgNy44MTktNTkuNzkgMjAuODk1bC0xMDIuNDg2LTY0LjA1NGE5Ni41NTEgOTYuNTUxIDAgMCAwIDAtNDEuNjgzbDEwMi40ODYtNjQuMDU0QzMwOC42MTMgMTg0LjE4MSAzMjkuMzkyIDE5MiAzNTIgMTkyYzUzLjAxOSAwIDk2LTQyLjk4MSA5Ni05NlM0MDUuMDE5IDAgMzUyIDBzLTk2IDQyLjk4MS05NiA5NmMwIDcuMTU4Ljc5IDE0LjEzIDIuMjc2IDIwLjg0MUwxNTUuNzkgMTgwLjg5NUMxMzkuMzg3IDE2Ny44MTkgMTE4LjYwOCAxNjAgOTYgMTYwYy01My4wMTkgMC05NiA0Mi45ODEtOTYgOTZzNDIuOTgxIDk2IDk2IDk2YzIyLjYwOCAwIDQzLjM4Ny03LjgxOSA1OS43OS0yMC44OTVsMTAyLjQ4NiA2NC4wNTRBOTYuMzAxIDk2LjMwMSAwIDAgMCAyNTYgNDE2YzAgNTMuMDE5IDQyLjk4MSA5NiA5NiA5NnM5Ni00Mi45ODEgOTYtOTYtNDIuOTgxLTk2LTk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGFyZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NjguNDgyIDE3Ny40NDhMNDI0LjQ3OSAzMTMuNDMzQzQwOS4zIDMyNy43NjggMzg0IDMxNy4xNCAzODQgMjk1Ljk4NXYtNzEuOTYzYy0xNDQuNTc1Ljk3LTIwNS41NjYgMzUuMTEzLTE2NC43NzUgMTcxLjM1MyA0LjQ4MyAxNC45NzMtMTIuODQ2IDI2LjU2Ny0yNS4wMDYgMTcuMzNDMTU1LjI1MiAzODMuMTA1IDEyMCAzMjYuNDg4IDEyMCAyNjkuMzM5YzAtMTQzLjkzNyAxMTcuNTk5LTE3Mi41IDI2NC0xNzMuMzEyVjI0LjAxMmMwLTIxLjE3NCAyNS4zMTctMzEuNzY4IDQwLjQ3OS0xNy40NDhsMTQ0LjAwMyAxMzUuOTg4YzEwLjAyIDkuNDYzIDEwLjAyOCAyNS40MjUgMCAzNC44OTZ6TTM4NCAzNzkuMTI4VjQ0OEg2NFYxMjhoNTAuOTE2YTExLjk5IDExLjk5IDAgMCAwIDguNjQ4LTMuNjkzYzE0Ljk1My0xNS41NjggMzIuMjM3LTI3Ljg5IDUxLjAxNC0zNy42NzZDMTg1LjcwOCA4MC44MyAxODEuNTg0IDY0IDE2OS4wMzMgNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtODguODA2YzAtOC4yODgtOC4xOTctMTQuMDY2LTE2LjAxMS0xMS4zMDJhNzEuODMgNzEuODMgMCAwIDEtMzQuMTg5IDMuMzc3Yy03LjI3LTEuMDQ2LTEzLjggNC41MTQtMTMuOCAxMS44NTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoYXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMy42OTEgMTg5LjgzNkwzMjcuNjg3IDM3Ljg1MUMzMTIuMjgxIDI0LjU0NiAyODggMzUuMzQ3IDI4OCA1Ni4wMTV2ODAuMDUzQzEyNy4zNzEgMTM3LjkwNyAwIDE3MC4xIDAgMzIyLjMyNmMwIDYxLjQ0MSAzOS41ODEgMTIyLjMwOSA4My4zMzMgMTU0LjEzMiAxMy42NTMgOS45MzEgMzMuMTExLTIuNTMzIDI4LjA3Ny0xOC42MzFDNjYuMDY2IDMxMi44MTQgMTMyLjkxNyAyNzQuMzE2IDI4OCAyNzIuMDg1VjM2MGMwIDIwLjcgMjQuMyAzMS40NTMgMzkuNjg3IDE4LjE2NGwxNzYuMDA0LTE1MmMxMS4wNzEtOS41NjIgMTEuMDg2LTI2Ljc1MyAwLTM2LjMyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hla2VsU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggMTY4djE2OGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNjhjMC03NS4xMS02MC44OS0xMzYtMTM2LTEzNkgyNEMxMC43NSAzMiAwIDQyLjc0IDAgNTZ2NDA4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjExMmgxMTJjMzAuOTMgMCA1NiAyNS4wNyA1NiA1NnpNNDMyIDMyaC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2Mjk2YzAgMzAuOTMtMjUuMDcgNTYtNTYgNTZIMjAwVjE3NmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djI4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDE2OGM3NS4xMSAwIDEzNi02MC44OSAxMzYtMTM2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaGllbGRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY2LjUgODMuN2wtMTkyLTgwYTQ4LjE1IDQ4LjE1IDAgMCAwLTM2LjkgMGwtMTkyIDgwQzI3LjcgOTEuMSAxNiAxMDguNiAxNiAxMjhjMCAxOTguNSAxMTQuNSAzMzUuNyAyMjEuNSAzODAuMyAxMS44IDQuOSAyNS4xIDQuOSAzNi45IDBDMzYwLjEgNDcyLjYgNDk2IDM0OS4zIDQ5NiAxMjhjMC0xOS40LTExLjctMzYuOS0yOS41LTQ0LjN6TTI1Ni4xIDQ0Ni4zbC0uMS0zODEgMTc1LjkgNzMuM2MtMy4zIDE1MS40LTgyLjEgMjYxLjEtMTc1LjggMzA3Ljd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaWVsZFZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCwxOTJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMjI0LDE5MlpNNDY2LjUsODMuNjhsLTE5Mi04MEE1Ny40LDU3LjQsMCwwLDAsMjU2LjA1LDBhNTcuNCw1Ny40LDAsMCwwLTE4LjQ2LDMuNjdsLTE5Miw4MEE0Ny45Myw0Ny45MywwLDAsMCwxNiwxMjhDMTYsMzI2LjUsMTMwLjUsNDYzLjcyLDIzNy41LDUwOC4zMmE0OC4wOSw0OC4wOSwwLDAsMCwzNi45MSwwQzM2MC4wOSw0NzIuNjEsNDk2LDM0OS4zLDQ5NiwxMjhBNDgsNDgsMCwwLDAsNDY2LjUsODMuNjhaTTM4NCwyNTZIMzcxLjg4Yy0yOC41MSwwLTQyLjc5LDM0LjQ3LTIyLjYzLDU0LjYzbDguNTgsOC41N2ExNiwxNiwwLDEsMS0yMi42MywyMi42M2wtOC41Ny04LjU4QzMwNi40NywzMTMuMDksMjcyLDMyNy4zNywyNzIsMzU1Ljg4VjM2OGExNiwxNiwwLDAsMS0zMiwwVjM1NS44OGMwLTI4LjUxLTM0LjQ3LTQyLjc5LTU0LjYzLTIyLjYzbC04LjU3LDguNThhMTYsMTYsMCwwLDEtMjIuNjMtMjIuNjNsOC41OC04LjU3YzIwLjE2LTIwLjE2LDUuODgtNTQuNjMtMjIuNjMtNTQuNjNIMTI4YTE2LDE2LDAsMCwxLDAtMzJoMTIuMTJjMjguNTEsMCw0Mi43OS0zNC40NywyMi42My01NC42M2wtOC41OC04LjU3YTE2LDE2LDAsMCwxLDIyLjYzLTIyLjYzbDguNTcsOC41OGMyMC4xNiwyMC4xNiw1NC42Myw1Ljg4LDU0LjYzLTIyLjYzVjExMmExNiwxNiwwLDAsMSwzMiwwdjEyLjEyYzAsMjguNTEsMzQuNDcsNDIuNzksNTQuNjMsMjIuNjNsOC41Ny04LjU4YTE2LDE2LDAsMCwxLDIyLjYzLDIyLjYzbC04LjU4LDguNTdDMzI5LjA5LDE4OS41MywzNDMuMzcsMjI0LDM3MS44OCwyMjRIMzg0YTE2LDE2LDAsMCwxLDAsMzJabS05NiwwYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDI4OCwyNTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjYxNiAzNzIuNjM5bDcwLjAxMi03MC4wMTJjMTYuODk5LTE2LjkgOS45NDItNDUuNzcxLTEyLjgzNi01My4wOTJMNTEyIDIzNi4xMDJWOTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMyaC02NFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2NDBoLTY0Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJ2MTQwLjEwMmwtNDEuNzkyIDEzLjQzM2MtMjIuNzUzIDcuMzEzLTI5Ljc1NCAzNi4xNzMtMTIuODM2IDUzLjA5Mmw3MC4wMTIgNzAuMDEyQzEyNS44MjggNDE2LjI4NyA4NS41ODcgNDQ4IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCA2MS4wMjMgMCAxMDcuNDk5LTIwLjYxIDE0My4yNTgtNTkuMzk2QzE4MS42NzcgNDg3LjQzMiAyMTYuMDIxIDUxMiAyNTYgNTEyaDEyOGMzOS45NzkgMCA3NC4zMjMtMjQuNTY4IDg4Ljc0Mi01OS4zOTZDNTA4LjQ5NSA0OTEuMzg0IDU1NC45NjggNTEyIDYxNiA1MTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQtNjAuODE3IDAtMTAxLjU0Mi0zMS4wMDEtMTE5LjM4NC03NS4zNjF6TTE5MiAxMjhoMjU2djg3LjUzMWwtMTE4LjIwOC0zNy45OTVhMzEuOTk1IDMxLjk5NSAwIDAgMC0xOS41ODQgMEwxOTIgMjE1LjUzMVYxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNoaXBwaW5nRmFzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMzUyaC0xNlYyNDMuOWMwLTEyLjctNS4xLTI0LjktMTQuMS0zMy45TDQ5NCAxMTAuMWMtOS05LTIxLjItMTQuMS0zMy45LTE0LjFINDE2VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDExMkM4NS41IDAgNjQgMjEuNSA2NCA0OHY0OEg4Yy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4aDI3MmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDQwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4aDIwOGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDhjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMjA4YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhINjR2MTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0zMjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTgwLTIwOEg0MTZWMTQ0aDQ0LjFsOTkuOSA5OS45VjI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2hvZVByaW50cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMTYwaDMyVjMyaC0zMmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NHpNMCA0MTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMlYzNTJINjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR6bTMzNy40Ni0xMjhjLTM0LjkxIDAtNzYuMTYgMTMuMTItMTA0LjczIDMyLTI0Ljc5IDE2LjM4LTQ0LjUyIDMyLTEwNC43MyAzMnYxMjhsNTcuNTMgMTUuOTdjMjYuMjEgNy4yOCA1My4wMSAxMy4xMiA4MC4zMSAxNS4wNSAzMi42OSAyLjMxIDY1LjYuNjcgOTcuNTgtNi4yQzQ3Mi45IDQ4MS4zIDUxMiA0MjkuMjIgNTEyIDM4NGMwLTY0LTg0LjE4LTk2LTE3NC41NC05NnpNNDkxLjQyIDcuMTlDNDU5LjQ0LjMyIDQyNi41My0xLjMzIDM5My44NC45OWMtMjcuMyAxLjkzLTU0LjEgNy43Ny04MC4zMSAxNS4wNEwyNTYgMzJ2MTI4YzYwLjIgMCA3OS45NCAxNS42MiAxMDQuNzMgMzIgMjguNTcgMTguODggNjkuODIgMzIgMTA0LjczIDMyQzU1NS44MiAyMjQgNjQwIDE5MiA2NDAgMTI4YzAtNDUuMjItMzkuMS05Ny4zLTE0OC41OC0xMjAuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNob3BwaW5nQmFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAxNjB2LTMyQzM1MiA1Ny40MiAyOTQuNTc5IDAgMjI0IDAgMTUzLjQyIDAgOTYgNTcuNDIgOTYgMTI4djMySDB2MjcyYzAgNDQuMTgzIDM1LjgxNyA4MCA4MCA4MGgyODhjNDQuMTgzIDAgODAtMzUuODE3IDgwLTgwVjE2MGgtOTZ6bS0xOTItMzJjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NHYzMkgxNjB2LTMyem0xNjAgMTIwYy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRzMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjR6bS0xOTIgMGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9wcGluZ0Jhc2tldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzYgMjE2djE2YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtOGwtMjYuMTEzIDE4Mi43ODhDNTE0LjUwOSA0NjIuNDM1IDQ5NC4yNTcgNDgwIDQ3MC4zNyA0ODBIMTA1LjYzYy0yMy44ODcgMC00NC4xMzktMTcuNTY1LTQ3LjUxOC00MS4yMTJMMzIgMjU2aC04Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTE2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGg2Ny4zNDFsMTA2Ljc4LTE0Ni44MjFjMTAuMzk1LTE0LjI5MiAzMC40MDctMTcuNDUzIDQ0LjcwMS03LjA1OCAxNC4yOTMgMTAuMzk1IDE3LjQ1MyAzMC40MDggNy4wNTggNDQuNzAxTDE3MC40NzcgMTkyaDIzNS4wNDZMMzI2LjEyIDgyLjgyMWMtMTAuMzk1LTE0LjI5Mi03LjIzNC0zNC4zMDYgNy4wNTktNDQuNzAxIDE0LjI5MS0xMC4zOTUgMzQuMzA2LTcuMjM1IDQ0LjcwMSA3LjA1OEw0ODQuNjU5IDE5Mkg1NTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0ek0zMTIgMzkyVjI4MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRzLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0czI0LTEwLjc0NSAyNC0yNHptMTEyIDBWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0em0tMjI0IDBWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG9wcGluZ0NhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4LjEyIDMwMS4zMTlsNDcuMjczLTIwOEM1NzguODA2IDc4LjMwMSA1NjcuMzkxIDY0IDU1MS45OSA2NEgxNTkuMjA4bC05LjE2Ni00NC44MUMxNDcuNzU4IDguMDIxIDEzNy45MyAwIDEyNi41MjkgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg2OS44ODNsNzAuMjQ4IDM0My40MzVDMTQ3LjMyNSA0MTcuMSAxMzYgNDM1LjIyMiAxMzYgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0xNS42NzQtNi40NDctMjkuODM1LTE2LjgyNC00MGgyMDkuNjQ3QzQzMC40NDcgNDI2LjE2NSA0MjQgNDQwLjMyNiA0MjQgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0yMi4xNzItMTIuODg4LTQxLjMzMi0zMS41NzktNTAuNDA1bDUuNTE3LTI0LjI3NmMzLjQxMy0xNS4wMTgtOC4wMDItMjkuMzE5LTIzLjQwMy0yOS4zMTlIMjE4LjExN2wtNi41NDUtMzJoMjkzLjE0NWMxMS4yMDYgMCAyMC45Mi03Ljc1NCAyMy40MDMtMTguNjgxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaG93ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0LDMyMGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMDQsMzIwWm0zMi05NmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMzYsMjI0Wm0zMiw2NGExNiwxNiwwLDEsMC0xNi0xNkExNiwxNiwwLDAsMCwzNjgsMjg4Wm0tMzIsMzJhMTYsMTYsMCwxLDAtMTYtMTZBMTYsMTYsMCwwLDAsMzM2LDMyMFptLTMyLTY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMwNCwyNTZabTEyOC0zMmExNiwxNiwwLDEsMC0xNi0xNkExNiwxNiwwLDAsMCw0MzIsMjI0Wm0tNDgsMTZhMTYsMTYsMCwxLDAsMTYtMTZBMTYsMTYsMCwwLDAsMzg0LDI0MFptLTE2LTQ4YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDM2OCwxOTJabTk2LDMyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDQ2NCwyMjRabTMyLTMyYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDQ5NiwxOTJabS02NCw2NGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCw0MzIsMjU2Wm0tMzIsMzJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsNDAwLDI4OFptLTY0LDY0YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDMzNiwzNTJabS0zMiwzMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzMDQsMzg0Wm02NC02NGExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwzNjgsMzIwWm0yMS42NS0yMTguMzUtMTEuMy0xMS4zMWExNiwxNiwwLDAsMC0yMi42MywwTDM1MC4wNSw5NkExMTEuMTksMTExLjE5LDAsMCwwLDI3Miw2NGMtMTkuMjQsMC0zNy4wOCw1LjMtNTIuOSwxMy44NWwtMTAtMTBBMTIxLjcyLDEyMS43MiwwLDAsMCwxMjMuNDQsMzJDNTUuNDksMzEuNSwwLDkyLjkxLDAsMTYwLjg1VjQ2NGExNiwxNiwwLDAsMCwxNiwxNkg0OGExNiwxNiwwLDAsMCwxNi0xNlYxNTguNGMwLTMwLjE1LDIxLTU4LjIsNTEtNjEuOTNhNTguMzgsNTguMzgsMCwwLDEsNDguOTMsMTYuNjdsMTAsMTBDMTY1LjMsMTM4LjkyLDE2MCwxNTYuNzYsMTYwLDE3NmExMTEuMjMsMTExLjIzLDAsMCwwLDMyLDc4LjA1bC01LjY2LDUuNjdhMTYsMTYsMCwwLDAsMCwyMi42MmwxMS4zLDExLjMxYTE2LDE2LDAsMCwwLDIyLjYzLDBMMzg5LjY1LDEyNC4yOEExNiwxNiwwLDAsMCwzODkuNjUsMTAxLjY1WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaHV0dGxlVmFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyOC44OCAyMTAuNjVMNDk0LjM5IDQ5LjI3QTQ4LjAxIDQ4LjAxIDAgMCAwIDQ1Ny41MiAzMkgzMkMxNC4zMyAzMiAwIDQ2LjMzIDAgNjR2Mjg4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmgxMjhjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI0MS4zOGMwLTExLjIzLTMuOTQtMjIuMS0xMS4xMi0zMC43M3pNNjQgMTkyVjk2aDk2djk2SDY0em05NiAyNDBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTE2MC0yNDBoLTk2Vjk2aDk2djk2em0xNjAgMjQwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4em0tOTYtMjQwVjk2aDY2LjAybDgwIDk2SDM4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbkluQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiA0NDhoLTg0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJoLTg0Yy02LjYgMC0xMi01LjQtMTItMTJWNzZjMC02LjYgNS40LTEyIDEyLTEyaDg0YzUzIDAgOTYgNDMgOTYgOTZ2MTkyYzAgNTMtNDMgOTYtOTYgOTZ6bS00Ny0yMDFMMjAxIDc5Yy0xNS0xNS00MS00LjUtNDEgMTd2OTZIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0djk2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEzNnY5NmMwIDIxLjUgMjYgMzIgNDEgMTdsMTY4LTE2OGM5LjMtOS40IDkuMy0yNC42IDAtMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25MYW5ndWFnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05MS40MzQgNDgzLjk4N2MtLjMwNy0xNi4wMTggMTMuMTA5LTI5LjEyOSAyOS4xMy0yOS4xMjloNjIuMjkzdi01LjcxNEg1Ni45OTNjLTE2LjAyMSAwLTI5LjQzNy0xMy4xMTEtMjkuMTMtMjkuMTI5QzI4LjE2IDQwNC40OTEgNDAuODM1IDM5MiA1Ni40MjggMzkyaDEyNi40Mjl2LTUuNzE0SDI5LjEzNmMtMTYuMDIxIDAtMjkuNDM3LTEzLjExMS0yOS4xMy0yOS4xMjkuMjk3LTE1LjUyMiAxMi45NzMtMjguMDEzIDI4LjU2Ni0yOC4wMTNoMTU0LjI4NnYtNS43MTRINTcuNzA3Yy0xNi4wMjEgMC0yOS40MzctMTMuMTExLTI5LjEzLTI5LjEyOS4yOTctMTUuNTIyIDEyLjk3My0yOC4wMTMgMjguNTY2LTI4LjAxM2gxNjguNTY2bC0zMS4wODUtMjIuNjA2Yy0xMi43NjItOS4yODEtMTUuNTgzLTI3LjE0OS02LjMwMi0zOS45MTIgOS4yODEtMTIuNzYxIDI3LjE1LTE1LjU4MiAzOS45MTItNi4zMDJsMTIzLjM2MSA4OS43MTVhMzQuMjg3IDM0LjI4NyAwIDAgMSAxNC4xMiAyNy43Mjh2MTQxLjEzNmMwIDE1LjkxLTEwLjk0NiAyOS43My0yNi40MzMgMzMuMzc0bC04MC40NzEgMTguOTM0YTEzNy4xNiAxMzcuMTYgMCAwIDEtMzEuNDExIDMuNjQ2SDEyMGMtMTUuNTkzLS4wMDEtMjguMjY5LTEyLjQ5Mi0yOC41NjYtMjguMDE0em03My4yNDktMjI1LjcwMWgzNi40MjNsLTExLjE4Ny04LjEzNmMtMTguNTc5LTEzLjUxMS0yMC4zMTMtNDAuODg3LTMuMTctNTYuNTM2bC0xMy4wMDQtMTYuN2MtOS44NDMtMTIuNjQxLTI4LjQzLTE1LjE3MS00MC44OC01LjA4OC0xMi4wNjUgOS43NzEtMTQuMTMzIDI3LjQ0Ny00LjU1MyAzOS43NWwzNi4zNzEgNDYuNzF6bTI4My4yOTgtMi4xMDNsLTUuMDAzLTE1Mi40NTJjLS41MTgtMTUuNzcxLTEzLjcyMi0yOC4xMzYtMjkuNDkzLTI3LjYxOS0xNS43NzMuNTE4LTI4LjEzNyAxMy43MjItMjcuNjE5IDI5LjQ5M2wxLjI2MiAzOC40MTVMMjgzLjU2NSAxMS4wMTljLTkuNTgtMTIuMzAzLTI3LjIyMy0xNC42My0zOS42NTMtNS4zMjgtMTIuODI3IDkuNTk5LTE0LjkyOSAyOC4yNC01LjA4NiA0MC44ODFsNzYuODg5IDk4Ljc0NS00LjUwOSAzLjUxMS05NC43OS0xMjEuNzM0Yy05LjU4LTEyLjMwMy0yNy4yMjMtMTQuNjMtMzkuNjUzLTUuMzI4LTEyLjgyNyA5LjU5OS0xNC45MjkgMjguMjQtNS4wODYgNDAuODgxbDk0LjQ0MyAxMjEuMjg4LTQuNTA5IDMuNTExLTc3LjY3NS05OS43NTRjLTkuNTgtMTIuMzAzLTI3LjIyMy0xNC42My0zOS42NTMtNS4zMjgtMTIuODI3IDkuNTk5LTE0LjkyOSAyOC4yNC01LjA4NiA0MC44ODFsNTIuMDUzIDY2Ljg0OWMxMi40OTctOC4yNTcgMjkuMDU1LTguMjg1IDQxLjY5LjkwNGwxMjMuMzYgODkuNzE0YzEwLjkwNCA3LjkzIDE3LjQxNSAyMC43MTUgMTcuNDE1IDM0LjE5OHYxNi45OTlsNjEuMDY0LTQ3LjU0OWEzNC4yODUgMzQuMjg1IDAgMCAwIDEzLjIwMi0yOC4xNzd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25PdXRBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk3IDI3M0wzMjkgNDQxYy0xNSAxNS00MSA0LjUtNDEtMTd2LTk2SDE1MmMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTk2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDEzNlY4OGMwLTIxLjQgMjUuOS0zMiA0MS0xN2wxNjggMTY4YzkuMyA5LjQgOS4zIDI0LjYgMCAzNHpNMTkyIDQzNnYtNDBjMC02LjYtNS40LTEyLTEyLTEySDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlYxNjBjMC0xNy43IDE0LjMtMzIgMzItMzJoODRjNi42IDAgMTItNS40IDEyLTEyVjc2YzAtNi42LTUuNC0xMi0xMi0xMkg5NmMtNTMgMC05NiA0My05NiA5NnYxOTJjMCA1MyA0MyA5NiA5NiA5Nmg4NGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDY0SDEyOFYxNmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNkM3LjIgNjQgMCA3MS4yIDAgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djM2OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjEyOGgzNjhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDM4NGgzMjBWMTYwSDE2MHYyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpZ25hbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgMjg4aC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTkyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjMwNGMwLTguODQtNy4xNi0xNi0xNi0xNnpNODggMzg0SDQwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY5NmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtOTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTI1Ni0xOTJoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYyODhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjA4YzAtOC44NC03LjE2LTE2LTE2LTE2em0xMjgtOTZoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzODRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTEyYzAtOC44NC03LjE2LTE2LTE2LTE2ek02MDAgMGgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4MGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2lnbmF0dXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyMy4yIDE5MmMtNTEuOCAzLjUtMTI1LjcgNTQuNy0xNjMuMSA3MS41LTI5LjEgMTMuMS01NC4yIDI0LjQtNzYuMSAyNC40LTIyLjYgMC0yNi0xNi4yLTIxLjMtNTEuOSAxLjEtOCAxMS43LTc5LjItNDIuNy03Ni4xLTI1LjEgMS41LTY0LjMgMjQuOC0xNjkuNSAxMjZMMTkyIDE4Mi4yYzMwLjQtNzUuOS01My4yLTE1MS41LTEyOS43LTEwMi44TDcuNCAxMTYuM0MwIDEyMS0yLjIgMTMwLjkgMi41IDEzOC40bDE3LjIgMjdjNC43IDcuNSAxNC42IDkuNyAyMi4xIDQuOWw1OC0zOC45YzE4LjQtMTEuNyA0MC43IDcuMiAzMi43IDI3LjFMMzQuMyA0MDQuMUMyNy41IDQyMSAzNyA0NDggNjQgNDQ4YzguMyAwIDE2LjUtMy4yIDIyLjYtOS40IDQyLjItNDIuMiAxNTQuNy0xNTAuNyAyMTEuMi0xOTUuOC0yLjIgMjguNS0yLjEgNTguOSAyMC42IDgzLjggMTUuMyAxNi44IDM3LjMgMjUuMyA2NS41IDI1LjMgMzUuNiAwIDY4LTE0LjYgMTAyLjMtMzAgMzMtMTQuOCA5OS02Mi42IDEzOC40LTY1LjggOC41LS43IDE1LjItNy4zIDE1LjItMTUuOHYtMzIuMWMuMi05LjEtNy41LTE2LjgtMTYuNi0xNi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW1DYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNjR2Mzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0aDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhMMjU2IDBINjRDMjguNyAwIDAgMjguNyAwIDY0em0yMjQgMTkyaC02NHYtNjRoNjR2NjR6bTk2IDBoLTY0di02NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMnptLTY0IDEyOGg2NHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmgtMzJ2LTY0em0tOTYgMGg2NHY2NGgtNjR2LTY0em0tOTYgMGg2NHY2NEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTMyem0wLTk2aDI1NnY2NEg2NHYtNjR6bTAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJ2NjRINjR2LTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyLDQxNmE5Niw5NiwwLDAsMCw5Niw5NkgzODRhOTYsOTYsMCwwLDAsOTYtOTZWMzg0SDMyWk00OTYsMjg4SDQwMFYyNTZoNjRhMTYsMTYsMCwwLDAsMTYtMTZWMjI0YTE2LDE2LDAsMCwwLTE2LTE2SDM4NGEzMiwzMiwwLDAsMC0zMiwzMnY0OEgyODhWOTZhMzIsMzIsMCwwLDEsNjQsMHYxNmExNiwxNiwwLDAsMCwxNiwxNmgzMmExNiwxNiwwLDAsMCwxNi0xNlY5NkE5Ni4xNiw5Ni4xNiwwLDAsMCwzMDAuODcsMS44NkMyNTUuMjksMTAuNzEsMjI0LDUzLjM2LDIyNCw5OS43OVYyODhIMTYwVjI0MGEzMiwzMiwwLDAsMC0zMi0zMkg0OGExNiwxNiwwLDAsMC0xNiwxNnYxNmExNiwxNiwwLDAsMCwxNiwxNmg2NHYzMkgxNkExNiwxNiwwLDAsMCwwLDMwNHYzMmExNiwxNiwwLDAsMCwxNiwxNkg0OTZhMTYsMTYsMCwwLDAsMTYtMTZWMzA0QTE2LDE2LDAsMCwwLDQ5NiwyODhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNpdGVtYXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDM1MkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bS0yNC04MGgxOTJ2NDhoNDh2LTQ4aDE5MnY0OGg0OHYtNTcuNTljMC0yMS4xNy0xNy4yMy0zOC40MS0zOC40MS0zOC40MUgzNDR2LTY0aDQwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0MHY2NEg5NC40MUM3My4yMyAyMjQgNTYgMjQxLjIzIDU2IDI2Mi40MVYzMjBoNDh2LTQ4em0yNjQgODBoLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMjQwIDBoLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2thdGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6bTAgNDQ4Yy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmgtOTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em0tMjgyLjIgOC42Yy02LjIgNi4yLTE2LjQgNi4zLTIyLjYgMGwtNjcuOS02Ny45Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDY3LjkgNjcuOWM5LjQgOS40IDIxLjcgMTQgMzQgMTRzMjQuNi00LjcgMzMuOS0xNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjMtMjIuNyAwem01Ni4xLTE3OS44bC05My43IDkzLjdjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4yIDYuMiA2LjIgMTQuNCA5LjQgMjIuNiA5LjRzMTYuNC0zLjEgMjIuNi05LjRsOTEuOS05MS45LTMwLjItMzAuMmMtNS01LTkuNC0xMC43LTEzLjItMTYuOHpNMTI4IDE2MGgxMDUuNWwtMjAuMSAxNy4yYy0xMy41IDExLjUtMjEuNiAyOC40LTIyLjMgNDYuMS0uNyAxNy44IDYuMSAzNS4yIDE4LjcgNDcuN2w3OC4yIDc4LjJWNDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ2LTg5LjRjMC0xMi42LTUuMS0yNS0xNC4xLTMzLjlsLTYxLTYxYy41LS40IDEuMi0uNiAxLjctMS4xbDgyLjMtODIuM2MxMS41LTExLjUgMTQuOS0yOC42IDguNy00My42LTYuMi0xNS0yMC43LTI0LjctMzctMjQuN0gxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNraWluZ05vcmRpYyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTMzYyLjUgMCAzMzYgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em0yMTYgMzIwYy0xMy4yIDAtMjQgMTAuNy0yNCAyNCAwIDEzLjItMTAuOCAyNC0yNCAyNGgtNjkuNUw0NjAgMjg1LjZjMTEuNy00LjcgMjAuMS0xNi4yIDIwLjEtMjkuNiAwLTE3LjctMTQuMy0zMi0zMi0zMmgtNDRMMzc4IDE3MC44Yy0xMi41LTI1LjUtMzUuNS00NC4yLTYxLjgtNTAuOUwyNDUgOTguN2MtMjguMy02LjgtNTcuOC0uNS04MC44IDE3LjFsLTM5LjcgMzAuNGMtMTQgMTAuNy0xNi43IDMwLjgtNS45IDQ0LjkuNy45IDEuNyAxLjMgMi40IDIuMUw2Ni45IDQ2NEgyNGMtMTMuMiAwLTI0IDEwLjctMjQgMjRzMTAuOCAyNCAyNCAyNGg0ODBjMzkuNyAwIDcyLTMyLjMgNzItNzIgMC0xMy4yLTEwLjgtMjQtMjQtMjR6bS0yNjAuNSA0OGgtOTYuOWw0My4xLTkxLTIyLTEzYy0xMi4xLTcuMi0yMS45LTE2LjktMjkuNS0yNy44TDEyMy43IDQ2NEg5OS41bDUyLjMtMjYxLjRjNC4xLTEgOC4xLTIuOSAxMS43LTUuNmwzOS43LTMwLjRjNy43LTUuOSAxNy40LTggMjUuMy02LjFsMTQuNyA0LjQtMzcuNSA4Ny40Yy0xMi42IDI5LjUtMS4zIDY0IDI2LjMgODAuM2w4NSA1MC4yLTI1LjUgODEuMnptMTEwLjYgMGgtNDMuNmwyMy42LTc1LjVjNS45LTIwLjgtMi45LTQzLjEtMjEuNi01NC40TDI5OS4zIDI5OGwzMS4zLTc4LjMgMjAuMyA0MS40YzggMTYuMyAyNC45IDI2LjkgNDMuMSAyNi45aDMzLjNsLTI1LjIgMTc2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTa2lpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzQ1OC41IDAgNDMyIDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptNzMgMzU2LjFjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwLTEyLjEgMTIuMS0zMC41IDE1LjQtNDUuMSA4LjdsLTEzNS44LTcwLjIgNDkuMi03My44YzEyLjctMTkgMTAuMi00NC41LTYtNjAuNkwyOTMgMjE1LjdsLTEwNy01My4xYy0yLjkgMTkuOSAzLjQgNDAgMTcuNyA1NC40bDc1LjEgNzUuMi00NS45IDY4LjhMMzUgMjU4LjdjLTExLjctNi0yNi4yLTEuNS0zMi4zIDEwLjMtNi4xIDExLjgtMS41IDI2LjMgMTAuMyAzMi4zbDM5MS45IDIwMi41YzExLjkgNS41IDI0LjUgOC4xIDM3LjEgOC4xIDIzLjIgMCA0Ni05IDYzLTI2IDkuMy05LjMgOS4zLTI0LjUgMC0zMy44ek0xMjAgOTEuNmwtMTEuNSAyMi41YzE0LjQgNy4zIDMxLjIgNC45IDQyLjgtNC44bDQ3LjIgMjMuNGMtLjEuMS0uMS4yLS4yLjNsMTE0LjUgNTYuOCAzMi40LTEzIDYuNCAxOS4xYzQgMTIuMSAxMi42IDIyIDI0IDI3LjdsNTguMSAyOWMxNS45IDcuOSAzNSAxLjUgNDIuOS0xNC4zIDcuOS0xNS44IDEuNS0zNS0xNC4zLTQyLjlsLTUyLjEtMjYuMS0xNy4xLTUxLjJjLTguMS0yNC4yLTQwLjktNTYuNi04NC41LTM5LjJsLTgxLjIgMzIuNS02Mi41LTMxYy4zLTE0LjUtNy4yLTI4LjYtMjAuOS0zNS42bC0xMS4xIDIxLjdoLS4ybC0zNC40LTdjLTEuOC0uNC0zLjcuMi01IDEuNy0xLjkgMi4yLTEuNyA1LjUuNSA3LjRsMjYuMiAyM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2t1bGxDcm9zc2JvbmVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzOS4xNSA0NTMuMDZMMjk3LjE3IDM4NGwxNDEuOTktNjkuMDZjNy45LTMuOTUgMTEuMTEtMTMuNTYgNy4xNS0yMS40Nkw0MzIgMjY0Ljg1Yy0zLjk1LTcuOS0xMy41Ni0xMS4xMS0yMS40Ny03LjE2TDIyNCAzNDguNDEgMzcuNDcgMjU3LjY5Yy03LjktMy45NS0xNy41MS0uNzUtMjEuNDcgNy4xNkwxLjY5IDI5My40OGMtMy45NSA3LjktLjc1IDE3LjUxIDcuMTUgMjEuNDZMMTUwLjgzIDM4NCA4Ljg1IDQ1My4wNmMtNy45IDMuOTUtMTEuMTEgMTMuNTYtNy4xNSAyMS40N2wxNC4zMSAyOC42M2MzLjk1IDcuOSAxMy41NiAxMS4xMSAyMS40NyA3LjE1TDIyNCA0MTkuNTlsMTg2LjUzIDkwLjcyYzcuOSAzLjk1IDE3LjUxLjc1IDIxLjQ3LTcuMTVsMTQuMzEtMjguNjNjMy45NS03LjkxLjc0LTE3LjUyLTcuMTYtMjEuNDd6TTE1MCAyMzcuMjhsLTUuNDggMjUuODdjLTIuNjcgMTIuNjIgNS40MiAyNC44NSAxNi40NSAyNC44NWgxMjYuMDhjMTEuMDMgMCAxOS4xMi0xMi4yMyAxNi40NS0yNC44NWwtNS41LTI1Ljg3YzQxLjc4LTIyLjQxIDcwLTYyLjc1IDcwLTEwOS4yOEMzNjggNTcuMzEgMzAzLjUzIDAgMjI0IDBTODAgNTcuMzEgODAgMTI4YzAgNDYuNTMgMjguMjIgODYuODcgNzAgMTA5LjI4ek0yODAgMTEyYzE3LjY1IDAgMzIgMTQuMzUgMzIgMzJzLTE0LjM1IDMyLTMyIDMyLTMyLTE0LjM1LTMyLTMyIDE0LjM1LTMyIDMyLTMyem0tMTEyIDBjMTcuNjUgMCAzMiAxNC4zNSAzMiAzMnMtMTQuMzUgMzItMzIgMzItMzItMTQuMzUtMzItMzIgMTQuMzUtMzIgMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNrdWxsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAwQzExNC42IDAgMCAxMDAuMyAwIDIyNGMwIDcwLjEgMzYuOSAxMzIuNiA5NC41IDE3My43IDkuNiA2LjkgMTUuMiAxOC4xIDEzLjUgMjkuOWwtOS40IDY2LjJjLTEuNCA5LjYgNiAxOC4yIDE1LjcgMTguMkgxOTJ2LTU2YzAtNC40IDMuNi04IDgtOGgxNmM0LjQgMCA4IDMuNiA4IDh2NTZoNjR2LTU2YzAtNC40IDMuNi04IDgtOGgxNmM0LjQgMCA4IDMuNiA4IDh2NTZoNzcuN2M5LjcgMCAxNy4xLTguNiAxNS43LTE4LjJsLTkuNC02Ni4yYy0xLjctMTEuNyAzLjgtMjMgMTMuNS0yOS45QzQ3NS4xIDM1Ni42IDUxMiAyOTQuMSA1MTIgMjI0IDUxMiAxMDAuMyAzOTcuNCAwIDI1NiAwem0tOTYgMzIwYy0zNS4zIDAtNjQtMjguNy02NC02NHMyOC43LTY0IDY0LTY0IDY0IDI4LjcgNjQgNjQtMjguNyA2NC02NCA2NHptMTkyIDBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01OTQuNTMgNTA4LjYzTDYuMTggNTMuOWMtNi45Ny01LjQyLTguMjMtMTUuNDctMi44MS0yMi40NUwyMy4wMSA2LjE4QzI4LjQzLS44IDM4LjQ5LTIuMDYgNDUuNDcgMy4zN0w2MzMuODIgNDU4LjFjNi45NyA1LjQyIDguMjMgMTUuNDcgMi44MSAyMi40NWwtMTkuNjQgMjUuMjdjLTUuNDIgNi45OC0xNS40OCA4LjIzLTIyLjQ2IDIuODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNsZWlnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTIuNyAzNTAuN2wtOS4zLTcuNGMtNi45LTUuNS0xNy00LjQtMjIuNSAyLjVsLTEwIDEyLjVjLTUuNSA2LjktNC40IDE3IDIuNSAyMi41bDkuMyA3LjRjNS45IDQuNyA5LjIgMTEuNyA5LjIgMTkuMiAwIDEzLjYtMTEgMjQuNi0yNC42IDI0LjZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNTE2YzM5IDAgNzMuNy0yOS4zIDc1LjktNjguMyAxLjQtMjMuOC04LjctNDYuMy0yNy4yLTYxek0zMiAyMjRjMCA1OS42IDQwLjkgMTA5LjIgOTYgMTIzLjVWNDAwaDY0di00OGgxOTJ2NDhoNjR2LTQ4YzUzIDAgOTYtNDMgOTYtOTZ2LTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC05NnY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtMjAuN2MtNjUuOCAwLTEyNS45LTM3LjItMTU1LjMtOTYtMjkuNC01OC44LTg5LjYtOTYtMTU1LjMtOTZIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHMxNC4zIDMyIDMyIDMydjEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU2xpZGVyc0ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDM4NEgxNjB2LTE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg4MHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgzMzZjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTYwaC04MHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMzNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmg4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMC0xNjBIMjg4VjQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNkM3LjIgNjQgMCA3MS4yIDAgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDIwOHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgyMDhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21pbGVCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTExMiAyMjMuNGMzLjMtNDIuMSAzMi4yLTcxLjQgNTYtNzEuNHM1Mi43IDI5LjMgNTYgNzEuNGMuNyA4LjYtMTAuOCAxMS45LTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjMgNy40LTE1LjggNC0xNS4xLTQuNXptMjUwLjggMTIyLjhDMzM0LjMgMzgwLjQgMjkyLjUgNDAwIDI0OCA0MDBzLTg2LjMtMTkuNi0xMTQuOC01My44Yy0xMy41LTE2LjMgMTEtMzYuNyAyNC42LTIwLjUgMjIuNCAyNi45IDU1LjIgNDIuMiA5MC4yIDQyLjJzNjcuOC0xNS40IDkwLjItNDIuMmMxMy42LTE2LjIgMzguMSA0LjMgMjQuNiAyMC41em02LjItMTE4LjNsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjMtMTUuNiA0LTE0LjktNC41IDMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy42IDguNi0xMSAxMS45LTE1LjEgNC41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbWlsZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOCAwIDExOSAwIDI1NnptMjAwLTQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMnptMTU4LjUgMTYuNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDI4OCAyMzNjLTguMyA3LjQtMjEuNi40LTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMzODQgMTk3IDM4OCAyMjIuMmMxLjcgMTEuMS0xMS40IDE4LjMtMTkuOCAxMC44bC05LjctOC41ek0xNTcuOCAzMjUuOEMxODAuMiAzNTIuNyAyMTMgMzY4IDI0OCAzNjhzNjcuOC0xNS40IDkwLjItNDIuMmMxMy42LTE2LjIgMzguMSA0LjIgMjQuNiAyMC41QzMzNC4zIDM4MC40IDI5Mi41IDQwMCAyNDggNDAwcy04Ni4zLTE5LjYtMTE0LjgtNTMuOGMtMTMuNS0xNi4zIDExLjItMzYuNyAyNC42LTIwLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bS0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTE5NC44IDE3MC4yQzMzNC4zIDM4MC40IDI5Mi41IDQwMCAyNDggNDAwcy04Ni4zLTE5LjYtMTE0LjgtNTMuOGMtMTMuNi0xNi4zIDExLTM2LjcgMjQuNi0yMC41IDIyLjQgMjYuOSA1NS4yIDQyLjIgOTAuMiA0Mi4yczY3LjgtMTUuNCA5MC4yLTQyLjJjMTMuNC0xNi4yIDM4LjEgNC4yIDI0LjYgMjAuNXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU21vZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMzY4SDgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDU0NGM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnptLTQ4MCA5NkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNmgxMjhjOC44IDAgMTYtNy4yIDE2LTE2di0xNmMwLTguOC03LjItMTYtMTYtMTZ6bTQxNiAwSDIyNGMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMzZjOC44IDAgMTYtNy4yIDE2LTE2di0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTE0NCAyODhoMTU2LjFjMjIuNSAxOS43IDUxLjYgMzIgODMuOSAzMnM2MS4zLTEyLjMgODMuOS0zMkg1MjhjNjEuOSAwIDExMi01MC4xIDExMi0xMTJTNTg5LjkgNjQgNTI4IDY0Yy0xOCAwLTM0LjcgNC42LTQ5LjcgMTIuMUM0NTQgMzEgNDA2LjggMCAzNTIgMGMtNDEgMC03Ny44IDE3LjMtMTA0IDQ0LjhDMjIxLjggMTcuMyAxODUgMCAxNDQgMCA2NC41IDAgMCA2NC41IDAgMTQ0czY0LjUgMTQ0IDE0NCAxNDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtb2tpbmdCYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNOTYgMzA0YzAgOC44IDcuMiAxNiAxNiAxNmgxMTcuNWwtOTYtOTZIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2NjR6TTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NnMxMTQuNiAyNTYgMjU2IDI1NiAyNTYtMTE0LjYgMjU2LTI1NlMzOTcuNCAwIDI1NiAwem0wIDQ0OGMtMTA1LjkgMC0xOTItODYuMS0xOTItMTkyIDAtNDEuNCAxMy4zLTc5LjcgMzUuNy0xMTEuMWwyNjcuNCAyNjcuNEMzMzUuNyA0MzQuNyAyOTcuNCA0NDggMjU2IDQ0OHptNDUuMi0xOTJIMzg0djMyaC01MC44bC0zMi0zMnptMTExLjEgMTExLjFMMzY1LjIgMzIwSDQwMGM4LjggMCAxNi03LjIgMTYtMTZ2LTY0YzAtOC44LTcuMi0xNi0xNi0xNkgyNjkuMkwxNDQuOSA5OS43QzE3Ni4zIDc3LjMgMjE0LjYgNjQgMjU2IDY0YzEwNS45IDAgMTkyIDg2LjEgMTkyIDE5MiAwIDQxLjQtMTMuMyA3OS43LTM1LjcgMTExLjF6TTMyMC42IDEyOGMtMTUuNiAwLTI4LjYtMTEuMi0zMS40LTI1LjktLjctMy42LTQtNi4xLTcuNy02LjFoLTE2LjJjLTUgMC04LjcgNC41LTggOS40IDQuNiAzMC45IDMxLjIgNTQuNiA2My4zIDU0LjYgMTUuNiAwIDI4LjYgMTEuMiAzMS40IDI1LjkuNyAzLjYgNCA2LjEgNy43IDYuMWgxNi4yYzUgMCA4LjctNC41IDgtOS40LTQuNi0zMC45LTMxLjItNTQuNi02My4zLTU0LjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNtb2tpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMyIDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04ek01NTMuMyA4Ny4xYy01LjctMy44LTkuMy0xMC05LjMtMTYuOFY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY2Mi4zYzAgMjIgMTAuMiA0My40IDI4LjYgNTUuNCA0Mi4yIDI3LjMgNjcuNCA3My44IDY3LjQgMTI0VjI4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0zMC4zYzAtNjUuNS0zMi40LTEyNi4yLTg2LjctMTYyLjZ6TTQzMiAzNTJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM4NGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNnptLTMyIDExMkgyMjR2LTY0aDE3NnY2NHptODcuNy0zMjIuNEM0NjMuOCAxMjUgNDQ4IDk5LjMgNDQ4IDcwLjNWOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NjYuNGMwIDQzLjcgMjQuNiA4MS42IDYwLjMgMTA2LjcgMjIuNCAxNS43IDM1LjcgNDEuMiAzNS43IDY4LjZWMjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTMwLjNjMC00My4zLTIxLTgzLjQtNTYuMy0xMDguMXpNNTM2IDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0OS42IDIxLjQgOTUgNTcgMTMwLjdDNDQuNSA0MjEuMSAyLjcgNDY2IDIuMiA0NjYuNWMtMi4yIDIuMy0yLjggNS43LTEuNSA4LjcgMS4zIDMgNC4xIDQuOCA3LjMgNC44IDY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnpNMTI4LjIgMzA0SDExNmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTIuM2M2IDAgMTAuNC0zLjUgMTAuNC02LjYgMC0xLjMtLjgtMi43LTIuMS0zLjhsLTIxLjktMTguOGMtOC41LTcuMi0xMy4zLTE3LjUtMTMuMy0yOC4xIDAtMjEuMyAxOS0zOC42IDQyLjQtMzguNkgxNTZjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOGgtMTIuM2MtNiAwLTEwLjQgMy41LTEwLjQgNi42IDAgMS4zLjggMi43IDIuMSAzLjhsMjEuOSAxOC44YzguNSA3LjIgMTMuMyAxNy41IDEzLjMgMjguMS4xIDIxLjMtMTkgMzguNi00Mi40IDM4LjZ6bTE5MS44LThjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04di02OC4ybC0yNC44IDU1LjhjLTIuOSA1LjktMTEuNCA1LjktMTQuMyAwTDIyNCAyMjcuOFYyOTZjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04VjE5MmMwLTguOCA3LjItMTYgMTYtMTZoMTZjNi4xIDAgMTEuNiAzLjQgMTQuMyA4LjhsMTcuNyAzNS40IDE3LjctMzUuNGMyLjctNS40IDguMy04LjggMTQuMy04LjhoMTZjOC44IDAgMTYgNy4yIDE2IDE2djEwNHptNDguMyA4SDM1NmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTIuM2M2IDAgMTAuNC0zLjUgMTAuNC02LjYgMC0xLjMtLjgtMi43LTIuMS0zLjhsLTIxLjktMTguOGMtOC41LTcuMi0xMy4zLTE3LjUtMTMuMy0yOC4xIDAtMjEuMyAxOS0zOC42IDQyLjQtMzguNkgzOTZjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOGgtMTIuM2MtNiAwLTEwLjQgMy41LTEwLjQgNi42IDAgMS4zLjggMi43IDIuMSAzLjhsMjEuOSAxOC44YzguNSA3LjIgMTMuMyAxNy41IDEzLjMgMjguMS4xIDIxLjMtMTguOSAzOC42LTQyLjMgMzguNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd2JvYXJkaW5nIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMiA5NmMyNi41IDAgNDgtMjEuNSA0OC00OFM0NTguNSAwIDQzMiAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTI4LjggMTUzLjZjNS44IDQuMyAxMi41IDYuNCAxOS4yIDYuNCA5LjcgMCAxOS4zLTQuNCAyNS42LTEyLjggMTAuNi0xNC4xIDcuOC0zNC4yLTYuNC00NC44bC0xMTEuNC04My41Yy0xMy44LTEwLjMtMjkuMS0xOC40LTQ1LjQtMjMuOGwtNjMuNy0yMS4yLTI2LjEtNTIuMUMyNDQuNyAyIDIyNS41LTQuNCAyMDkuNyAzLjVjLTE1LjggNy45LTIyLjIgMjcuMS0xNC4zIDQyLjlsMjkuMSA1OC4xYzUuNyAxMS40IDE1LjYgMTkuOSAyNy43IDI0bDE2LjQgNS41LTQxLjIgMjAuNmMtMjEuOCAxMC45LTM1LjQgMzIuOC0zNS40IDU3LjJ2NTMuMWwtNzQuMSAyNC43Yy0xNi44IDUuNi0yNS44IDIzLjctMjAuMiA0MC41IDEuNyA1LjIgNC45IDkuNCA4LjcgMTIuOWwtMzguNy0xNC4xYy05LjctMy41LTE3LjQtMTAuNi0yMS44LTIwLTUuNi0xMi0xOS45LTE3LjItMzEuOS0xMS42cy0xNy4yIDE5LjktMTEuNiAzMS45YzkuOCAyMSAyNy4xIDM2LjkgNDguOSA0NC44bDM2NC44IDEzMi43YzkuNyAzLjUgMTkuNyA1LjMgMjkuNyA1LjMgMTIuNSAwIDI0LjktMi43IDM2LjUtOC4yIDEyLTUuNiAxNy4yLTE5LjkgMTEuNi0zMS45UzQ3NCA0NTQuNyA0NjIgNDYwLjNjLTkuMyA0LjQtMTkuOCA0LjgtMjkuNSAxLjNsLTkwLjgtMzMuMWM4LjctNC4xIDE1LjYtMTEuOCAxNy44LTIxLjlsMjEuOS0xMDJjMy45LTE4LjItMy4yLTM3LjItMTguMS00OC40bC01Mi0zOSA2Ni0zMC41IDgzLjUgNjIuOXptLTE0NC40IDUxLjdsLTE5LjcgOTJjLTEuNSA3LjEtLjEgMTMuOSAyLjggMjBsLTE2OS40LTYxLjZjMi43LS4yIDUuNC0uNCA4LTEuM2w4NS0yOC40YzE5LjYtNi41IDMyLjgtMjQuOCAzMi44LTQ1LjVWMjU2bDYwLjUgNDUuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU25vd2ZsYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC4zIDM0NS4ybC0zMy44LTE5LjUgMjYtN2M4LjItMi4yIDEzLjEtMTAuNyAxMC45LTE4LjlsLTQtMTQuOWMtMi4yLTguMi0xMC43LTEzLjEtMTguOS0xMC45bC03MC44IDE5LTYzLjktMzcgNjMuOC0zNi45IDcwLjggMTljOC4yIDIuMiAxNi43LTIuNyAxOC45LTEwLjlsNC0xNC45YzIuMi04LjItMi43LTE2LjctMTAuOS0xOC45bC0yNi03IDMzLjgtMTkuNWM3LjQtNC4zIDkuOS0xMy43IDUuNy0yMS4xTDQzMC40IDExOWMtNC4zLTcuNC0xMy43LTkuOS0yMS4xLTUuN2wtMzMuOCAxOS41IDctMjZjMi4yLTguMi0yLjctMTYuNy0xMC45LTE4LjlsLTE0LjktNGMtOC4yLTIuMi0xNi43IDIuNy0xOC45IDEwLjlsLTE5IDcwLjgtNjIuOCAzNi4ydi03Ny41bDUzLjctNTMuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMTEuMy0xMS4zYy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwyNTYgNTYuNFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDAuNGwtMTkuNy0xOS43Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMEwxMzguMyA0OGMtNi4zIDYuMi02LjMgMTYuNCAwIDIyLjZsNTMuNyA1My43djc3LjVsLTYyLjgtMzYuMi0xOS03MC44Yy0yLjItOC4yLTEwLjctMTMuMS0xOC45LTEwLjlsLTE0LjkgNGMtOC4yIDIuMi0xMy4xIDEwLjctMTAuOSAxOC45bDcgMjYtMzMuOC0xOS41Yy03LjQtNC4zLTE2LjgtMS43LTIxLjEgNS43TDIuMSAxNDUuN2MtNC4zIDcuNC0xLjcgMTYuOCA1LjcgMjEuMWwzMy44IDE5LjUtMjYgN2MtOC4zIDIuMi0xMy4yIDEwLjctMTEgMTlsNCAxNC45YzIuMiA4LjIgMTAuNyAxMy4xIDE4LjkgMTAuOWw3MC44LTE5IDYzLjggMzYuOS02My44IDM2LjktNzAuOC0xOWMtOC4yLTIuMi0xNi43IDIuNy0xOC45IDEwLjlsLTQgMTQuOWMtMi4yIDguMiAyLjcgMTYuNyAxMC45IDE4LjlsMjYgNy0zMy44IDE5LjZjLTcuNCA0LjMtOS45IDEzLjctNS43IDIxLjFsMTUuNSAyNi44YzQuMyA3LjQgMTMuNyA5LjkgMjEuMSA1LjdsMzMuOC0xOS41LTcgMjZjLTIuMiA4LjIgMi43IDE2LjcgMTAuOSAxOC45bDE0LjkgNGM4LjIgMi4yIDE2LjctMi43IDE4LjktMTAuOWwxOS03MC44IDYyLjgtMzYuMnY3Ny41bC01My43IDUzLjdjLTYuMyA2LjItNi4zIDE2LjQgMCAyMi42bDExLjMgMTEuM2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwxOS43LTE5LjdWNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTQwLjRsMTkuNyAxOS43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDExLjMtMTEuM2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNkwyNTYgMzg3Ljd2LTc3LjVsNjIuOCAzNi4yIDE5IDcwLjhjMi4yIDguMiAxMC43IDEzLjEgMTguOSAxMC45bDE0LjktNGM4LjItMi4yIDEzLjEtMTAuNyAxMC45LTE4LjlsLTctMjYgMzMuOCAxOS41YzcuNCA0LjMgMTYuOCAxLjcgMjEuMS01LjdsMTUuNS0yNi44YzQuMy03LjMgMS44LTE2LjgtNS42LTIxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbm93bWFuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMC45IDE1Mi4zbC01LjktMTQuNWMtMy4zLTgtMTIuNi0xMS45LTIwLjgtOC43TDQ1NiAxNDAuNnYtMjljMC04LjYtNy4yLTE1LjYtMTYtMTUuNmgtMTZjLTguOCAwLTE2IDctMTYgMTUuNnY0Ni45YzAgLjUuMyAxIC4zIDEuNWwtNTYuNCAyM2MtNS45LTEwLTEzLjMtMTguOS0yMi0yNi42IDEzLjYtMTYuNiAyMi0zNy40IDIyLTYwLjUgMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMy4xIDguNSA0My45IDIyIDYwLjUtOC43IDcuNy0xNiAxNi42LTIyIDI2LjZsLTU2LjQtMjNjLjEtLjUuMy0xIC4zLTEuNXYtNDYuOUMxMDQgMTAzIDk2LjggOTYgODggOTZINzJjLTguOCAwLTE2IDctMTYgMTUuNnYyOWwtMjguMS0xMS41Yy04LjItMy4yLTE3LjUuNy0yMC44IDguN2wtNS45IDE0LjVjLTMuMyA4IC43IDE3LjEgOC45IDIwLjNsMTM1LjIgNTUuMmMtLjQgNC0xLjIgOC0xLjIgMTIuMiAwIDEwLjEgMS43IDE5LjYgNC4yIDI4LjlDMTIwLjkgMjk2LjQgMTA0IDMzNC4yIDEwNCAzNzZjMCA1NCAyOC40IDEwMC45IDcwLjggMTI3LjggOS4zIDUuOSAyMC4zIDguMiAzMS4zIDguMmg5OS4yYzEzLjMgMCAyNi4zLTQuMSAzNy4yLTExLjcgNDYuNS0zMi4zIDc0LjQtODkuNCA2Mi45LTE1Mi42LTUuNS0zMC4yLTIwLjUtNTcuNi00MS42LTc5IDIuNS05LjIgNC4yLTE4LjcgNC4yLTI4LjcgMC00LjItLjgtOC4xLTEuMi0xMi4yTDUwMiAxNzIuNmM4LjEtMy4xIDEyLjEtMTIuMiA4LjktMjAuM3pNMjI0IDk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyIDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTAtNjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC04OHMtMTYtMjMuMi0xNi0zMiA3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTE2IDMyLTE2IDMyem0zMi01NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTbm93cGxvdyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjAgMzc2Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptMjM4LjYgNDkuNGMtMTQuNS0xNC41LTIyLjYtMzQuMS0yMi42LTU0LjZWMjY5LjJjMC0yMC41IDguMS00MC4xIDIyLjYtNTQuNmwzNi43LTM2LjdjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTIyLjYtMjIuNmMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTM2LjcgMzYuN2MtMjYuNSAyNi41LTQxLjQgNjIuNC00MS40IDk5LjlWMjg4aC02NHYtNTAuOWMwLTguNy0xLjgtMTcuMi01LjItMjUuMkwzNjQuNSAyOS4xQzM1Ni45IDExLjQgMzM5LjYgMCAzMjAuMyAwSDE3NmMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTEyaC0xNmMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2OTEuMkMyNi4zIDMxNy4yIDAgMzU1LjQgMCA0MDBjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJoMjU2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyIDAtMTcuMy00LjItMzMuNC0xMS4yLTQ4SDUxMnYxOC43YzAgMzcuNSAxNC45IDczLjQgNDEuNCA5OS45bDM2LjcgMzYuN2M2LjIgNi4yIDE2LjQgNi4yIDIyLjYgMGwyMi42LTIyLjZjNi4yLTYuMiA2LjItMTYuNCAwLTIyLjZsLTM2LjctMzYuN3pNMTkyIDY0aDExNy44bDY4LjYgMTYwSDI1NmwtNjQtNjRWNjR6bTE3NiAzODRIMTEyYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4aDI1NmMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29hcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MTYsMTkyYTk1LjQyLDk1LjQyLDAsMCwxLTMwLjk0LDcwLjIxQTk1LjgsOTUuOCwwLDAsMSwzNTIsNDQ4SDE2MGE5Niw5NiwwLDAsMSwwLTE5Mmg4OC45MUE5NS4zLDk1LjMsMCwwLDEsMjI0LDE5Mkg5NkE5Niw5NiwwLDAsMCwwLDI4OFY0MTZhOTYsOTYsMCwwLDAsOTYsOTZINDE2YTk2LDk2LDAsMCwwLDk2LTk2VjI4OEE5Niw5NiwwLDAsMCw0MTYsMTkyWm0tOTYsNjRhNjQsNjQsMCwxLDAtNjQtNjRBNjQsNjQsMCwwLDAsMzIwLDI1NlpNMjA4LDk2YTQ4LDQ4LDAsMSwwLTQ4LTQ4QTQ4LDQ4LDAsMCwwLDIwOCw5NlpNMzg0LDY0YTMyLDMyLDAsMSwwLTMyLTMyQTMyLDMyLDAsMCwwLDM4NCw2NFpNMTYwLDI4OGE2NCw2NCwwLDAsMCwwLDEyOEgzNTJhNjQsNjQsMCwwLDAsMC0xMjhaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvY2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNC42NiAzMTEuMDFMMjg4IDI1NlY5NkgxMjh2MTc2bC04Ni42NSA2NC42MWMtMzkuNCAyOS41Ni01My44NiA4NC40Mi0yOS4yMSAxMjcuMDZDMzAuMzkgNDk1LjI1IDYzLjI3IDUxMiA5Ni4wOCA1MTJjMjAuMDMgMCA0MC4yNS02LjI1IDU3LjUyLTE5LjJsMjEuODYtMTYuMzljLTI5Ljg1LTU1LjM4LTEzLjU0LTEyNS44NCAzOS4yLTE2NS40ek0yODggMzJjMC0xMS4wNSAzLjA3LTIxLjMgOC4wMi0zMC4zOEMyOTMuNC45MiAyOTAuODUgMCAyODggMEgxNjBjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJoMTYwVjMyek00ODAgMEgzNTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJoMTkyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTMyMCAyNzJsLTg2LjEzIDY0LjYxYy0zOS40IDI5LjU2LTUzLjg2IDg0LjQyLTI5LjIxIDEyNy4wNiAxOC4yNSAzMS41OCA1MC42MSA0OC4zMyA4My40MiA0OC4zMyAyMC4wMyAwIDQwLjI1LTYuMjUgNTcuNTItMTkuMmwxMTUuMi04Ni40QTEyNy45OTcgMTI3Ljk5NyAwIDAgMCA1MTIgMzA0Vjk2SDMyMHYxNzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvbGFyUGFuZWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMxLjk4IDQ0OC4wMWwtNDcuOTcuMDVWNDE2aC0xMjh2MzIuMjFsLTQ3Ljk4LjA1Yy04LjgyLjAxLTE1Ljk3IDcuMTYtMTUuOTggMTUuOTlsLS4wNSAzMS43M2MtLjAxIDguODUgNy4xNyAxNi4wMyAxNi4wMiAxNi4wMmwyMjMuOTYtLjI2YzguODItLjAxIDE1Ljk3LTcuMTYgMTUuOTgtMTUuOThsLjA0LTMxLjczYy4wMS04Ljg1LTcuMTctMTYuMDMtMTYuMDItMTYuMDJ6TTU4NS4yIDI2Ljc0QzU4Mi41OCAxMS4zMSA1NjguOTkgMCA1NTMuMDYgMEg4Ni45M0M3MSAwIDU3LjQxIDExLjMxIDU0Ljc5IDI2Ljc0LTMuMzIgMzY5LjE2LjA0IDM0OC4wOC4wMyAzNTJjLS4wMyAxNy4zMiAxNC4yOSAzMiAzMi42IDMyaDU3NC43NGMxOC4yMyAwIDMyLjUxLTE0LjU2IDMyLjU5LTMxLjc5LjAyLTQuMDggMy4zNSAxNi45NS01NC43Ni0zMjUuNDd6TTI1OS44MyA2NGgxMjAuMzNsOS43NyA5NkgyNTAuMDZsOS43Ny05NnptLTc1LjE3IDI1Nkg3MS4wOUw5MC4xIDIwOGgxMDUuOTdsLTExLjQxIDExMnptMTYuMjktMTYwSDk4LjI0bDE2LjI5LTk2aDk2LjE5bC05Ljc3IDk2em0zMi44MiAxNjBsMTEuNC0xMTJoMTQ5LjY1bDExLjQgMTEySDIzMy43N3ptMTk1LjUtMjU2aDk2LjE5bDE2LjI5IDk2SDQzOS4wNGwtOS43Ny05NnptMjYuMDYgMjU2bC0xMS40LTExMkg1NDkuOWwxOS4wMSAxMTJINDU1LjMzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QWxwaGFEb3duQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAzNTJoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0xMTItMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiA2NS42M1Y0OGExNiAxNiAwIDAgMC0xNi0xNkgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiAxOTAuMzdWMjA4YTE2IDE2IDAgMCAwIDE2IDE2em0xNTkuMDYgMjM0LjYybC01OS4yNy0xNjBBMTYgMTYgMCAwIDAgMzcyLjcyIDI4OGgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgNDgwaDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgNDgwSDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDQwMEwzNTIgMzUybDE2LjM5IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QWxwaGFEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAzNTJoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0yNDAtNjRIMjg4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDU2bC02MS4yNiA3MC40NUEzMiAzMiAwIDAgMCAyNzIgNDQ2LjM3VjQ2NGExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC01Nmw2MS4yNi03MC40NUEzMiAzMiAwIDAgMCA0MzIgMzIxLjYzVjMwNGExNiAxNiAwIDAgMC0xNi0xNnptMzEuMDYtODUuMzhsLTU5LjI3LTE2MEExNiAxNiAwIDAgMCAzNzIuNzIgMzJoLTQxLjQ0YTE2IDE2IDAgMCAwLTE1LjA3IDEwLjYybC01OS4yNyAxNjBBMTYgMTYgMCAwIDAgMjcyIDIyNGgyNC44M2ExNiAxNiAwIDAgMCAxNS4yMy0xMS4wOGw0LjQyLTEyLjkyaDcxbDQuNDEgMTIuOTJBMTYgMTYgMCAwIDAgNDA3LjE2IDIyNEg0MzJhMTYgMTYgMCAwIDAgMTUuMDYtMjEuMzh6TTMzNS42MSAxNDRMMzUyIDk2bDE2LjM5IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QWxwaGFVcEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxbC04MC05NmExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43OCAxNjAgMTYgMTYwem0yNzIgNjRoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtNTZsNjEuMjYtNzAuNDVBMzIgMzIgMCAwIDAgNDMyIDY1LjYzVjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDI4OGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg1NmwtNjEuMjYgNzAuNDVBMzIgMzIgMCAwIDAgMjcyIDE5MC4zN1YyMDhhMTYgMTYgMCAwIDAgMTYgMTZ6bTE1OS4wNiAyMzQuNjJsLTU5LjI3LTE2MEExNiAxNiAwIDAgMCAzNzIuNzIgMjg4aC00MS40NGExNiAxNiAwIDAgMC0xNS4wNyAxMC42MmwtNTkuMjcgMTYwQTE2IDE2IDAgMCAwIDI3MiA0ODBoMjQuODNhMTYgMTYgMCAwIDAgMTUuMjMtMTEuMDhsNC40Mi0xMi45Mmg3MWw0LjQxIDEyLjkyQTE2IDE2IDAgMCAwIDQwNy4xNiA0ODBINDMyYTE2IDE2IDAgMCAwIDE1LjA2LTIxLjM4ek0zMzUuNjEgNDAwTDM1MiAzNTJsMTYuMzkgNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnRBbHBoYVVwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDE2MGg0OHYzMDRhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTYwaDQ4YzE0LjIxIDAgMjEuMzgtMTcuMjQgMTEuMzEtMjcuMzFsLTgwLTk2YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjB6bTQwMCAxMjhIMjg4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDU2bC02MS4yNiA3MC40NUEzMiAzMiAwIDAgMCAyNzIgNDQ2LjM3VjQ2NGExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC01Nmw2MS4yNi03MC40NUEzMiAzMiAwIDAgMCA0MzIgMzIxLjYzVjMwNGExNiAxNiAwIDAgMC0xNi0xNnptMzEuMDYtODUuMzhsLTU5LjI3LTE2MEExNiAxNiAwIDAgMCAzNzIuNzIgMzJoLTQxLjQ0YTE2IDE2IDAgMCAwLTE1LjA3IDEwLjYybC01OS4yNyAxNjBBMTYgMTYgMCAwIDAgMjcyIDIyNGgyNC44M2ExNiAxNiAwIDAgMCAxNS4yMy0xMS4wOGw0LjQyLTEyLjkyaDcxbDQuNDEgMTIuOTJBMTYgMTYgMCAwIDAgNDA3LjE2IDIyNEg0MzJhMTYgMTYgMCAwIDAgMTUuMDYtMjEuMzh6TTMzNS42MSAxNDRMMzUyIDk2bDE2LjM5IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QW1vdW50RG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDAgOTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTY0YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0wIDEyOGgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptMjU2IDE5MkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjU2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTI1Ni02NGgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptLTY0IDBoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNyAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QW1vdW50RG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgNDE2aC02NGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0xMjgtNjRoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNyAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0yNTYtMTkySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tNjQgMTI4SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek00OTYgMzJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI1NmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU29ydEFtb3VudFVwQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCA5Nmg2NGExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTAgMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0yNTYgMTkySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMjU2LTY0aDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2ek0xNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM5LTE3LjI0IDExLjMxLTI3LjMxbC04MC05NmExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43OCAxNjAgMTYgMTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0QW1vdW50VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDQxNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxbC04MC05NmExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43NyAxNjAgMTYgMTYwem00MTYgMEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTY0IDEyOEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNNDk2IDMySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnREb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzMjAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxIDI4OGgyMzhjMjEuNCAwIDMyLjEgMjUuOSAxNyA0MUwxNzcgNDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwyNCAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljRG93bkFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNzYgMzUyaC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzYgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnptMjI0IDY0aC0xNlYzMDRhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCAzNTJoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzMwLjE3IDM0LjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNyA1MS4wNSAyMS4xOSA5Ny43NyA2OC44MyAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NyA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMTEyYy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAxMzJhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljRG93biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgOTZoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCA5NnptMjYuMTUgMTYyLjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNSA1MS4wNSAyMS4yMSA5Ny43NyA2OC44NSAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NiA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMzM2Yy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAzNTZhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6bS0xNzYtNGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljVXBBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTA3LjMxIDM2LjY5YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxek00MDAgNDE2aC0xNlYzMDRhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCAzNTJoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzMwLjE3IDM0LjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNyA1MS4wNSAyMS4xOSA5Ny43NyA2OC44MyAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NyA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMTEyYy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAxMzJhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnROdW1lcmljVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzMwLjE3IDI1OC45MWE3OSA3OSAwIDAgMC01NSA1NC4xN2MtMTQuMjcgNTEuMDUgMjEuMTkgOTcuNzcgNjguODMgMTAyLjUzYTg0LjA3IDg0LjA3IDAgMCAxLTIwLjg1IDEyLjkxYy03LjU3IDMuNC0xMC44IDEyLjQ3LTguMTggMjAuMzRsOS45IDIwYzIuODcgOC42MyAxMi41MyAxMy40OSAyMC45IDkuOTEgNTgtMjQuNzYgODYuMjUtNjEuNjEgODYuMjUtMTMyVjMzNmMtLjAyLTUxLjIxLTQ4LjQtOTEuMzQtMTAxLjg1LTc3LjA5ek0zNTIgMzU2YTIwIDIwIDAgMSAxIDIwLTIwIDIwIDIwIDAgMCAxLTIwIDIwek0zMDQgOTZoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCA5NnpNMTA3LjMxIDM2LjY5YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTb3J0VXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc5IDIyNEg0MWMtMjEuNCAwLTMyLjEtMjUuOS0xNy00MUwxNDMgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTE5IDExOWMxNS4yIDE1LjEgNC41IDQxLTE2LjkgNDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNvcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDEgMjg4aDIzOGMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDE3NyA0NDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDI0IDMyOWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MXptMjU1LTEwNUwxNzcgNjRjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDI0IDE4M2MtMTUuMSAxNS4xLTQuNCA0MSAxNyA0MWgyMzhjMjEuNCAwIDMyLjEtMjUuOSAxNy00MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2OC4yNSAxOTJjLTI5LjA0LjEzLTEzNS4wMSA2LjE2LTIxMy44NCA4My0zMy4xMiAyOS42My01My4zNiA2My4zLTY2LjQxIDk0Ljg2LTEzLjA1LTMxLjU2LTMzLjI5LTY1LjIzLTY2LjQxLTk0Ljg2LTc4LjgzLTc2Ljg0LTE4NC44LTgyLjg3LTIxMy44NC04My00LjQxLS4wMi03Ljc5IDMuNC03Ljc1IDcuODIuMjMgMjcuOTIgNy4xNCAxMjYuMTQgODguNzcgMTk5LjNDMTcyLjc5IDQ4MC45NCAyNTYgNDgwIDI4OCA0ODBzMTE1LjE5Ljk1IDE5OS4yMy04MC44OGM4MS42NC03My4xNyA4OC41NC0xNzEuMzggODguNzctMTk5LjMuMDQtNC40Mi0zLjM0LTcuODQtNy43NS03Ljgyek0yODcuOTggMzAyLjZjMTIuODItMTguODUgMjcuNi0zNS43OCA0NC4wOS01MC41MiAxOS4wOS0xOC42MSAzOS41OC0zMy4zIDYwLjI2LTQ1LjE4LTE2LjQ0LTcwLjUtNTEuNzItMTMzLjA1LTk2LjczLTE3Mi4yMi00LjExLTMuNTgtMTEuMDItMy41OC0xNS4xNCAwLTQ0Ljk5IDM5LjE0LTgwLjI3IDEwMS42My05Ni43NCAxNzIuMDcgMjAuMzcgMTEuNyA0MC41IDI2LjE0IDU5LjIyIDQ0LjM5YTI4Mi43NjggMjgyLjc2OCAwIDAgMSA0NS4wNCA1MS40NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BhY2VTaHV0dGxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5Mi42MDQgMjA4LjI0NEM1NTkuNzM1IDE5Mi44MzYgNTE1Ljc3NyAxODQgNDcyIDE4NEgxODYuMzI3Yy00Ljk1Mi02LjU1NS0xMC41ODUtMTEuOTc4LTE2LjcyLTE2SDM3NkMyMjkuMTU3IDEzNy43NDcgMjE5LjQwMyAzMiA5Ni4wMDMgMzJIOTZ2MTI4SDgwVjMyYy0yNi41MSAwLTQ4IDI4LjY1NC00OCA2NHY2NGMtMjMuMTk3IDAtMzIgMTAuMDMyLTMyIDI0djQwYzAgMTMuOTgzIDguODE5IDI0IDMyIDI0djE2Yy0yMy4xOTcgMC0zMiAxMC4wMzItMzIgMjR2NDBjMCAxMy45ODMgOC44MTkgMjQgMzIgMjR2NjRjMCAzNS4zNDYgMjEuNDkgNjQgNDggNjRWMzUyaDE2djEyOGguMDAzYzEyMy40IDAgMTMzLjE1NC0xMDUuNzQ3IDI3OS45OTctMTM2SDE2OS42MDZjNi4xMzUtNC4wMjIgMTEuNzY4LTkuNDQ1IDE2LjcyLTE2SDQ3MmM0My43NzcgMCA4Ny43MzUtOC44MzYgMTIwLjYwNC0yNC4yNDRDNjIyLjI4MiAyODkuODQ1IDY0MCAyNzEuOTkyIDY0MCAyNTZzLTE3LjcxOC0zMy44NDUtNDcuMzk2LTQ3Ljc1NnpNNDg4IDI5NmE4IDggMCAwIDEtOC04di02NGE4IDggMCAwIDEgOC04YzMxLjkwOSAwIDMxLjk0MiA4MCAwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGVsbENoZWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI3MiAyNTZoOTEuMzZjNDMuMiAwIDgyLTMyLjIgODQuNTEtNzUuMzRhNzkuODIgNzkuODIgMCAwIDAtMjUuMjYtNjMuMDcgNzkuODEgNzkuODEgMCAwIDAgOS4wNi00NC45MUM0MjcuOSAzMC41NyAzODkuMyAwIDM0NyAwaC03NWExNiAxNiAwIDAgMC0xNiAxNnYyMjRhMTYgMTYgMCAwIDAgMTYgMTZ6bTQwLTIwMGg0MGEyNCAyNCAwIDAgMSAwIDQ4aC00MHptMCA5Nmg1NmEyNCAyNCAwIDAgMSAwIDQ4aC01NnpNMTU1LjEyIDIyLjI1QTMyIDMyIDAgMCAwIDEyNC42NCAwSDk5LjM2YTMyIDMyIDAgMCAwLTMwLjQ4IDIyLjI1TC41OSAyMzUuNzNBMTYgMTYgMCAwIDAgMTYgMjU2aDI0LjkzYTE2IDE2IDAgMCAwIDE1LjQyLTExLjczTDY4LjI5IDIwOGg4Ny40MmwxMS45NCAzNi4yN0ExNiAxNiAwIDAgMCAxODMuMDcgMjU2SDIwOGExNiAxNiAwIDAgMCAxNS40Mi0yMC4yN3pNODkuMzcgMTQ0TDExMiA3NS4zbDIyLjYzIDY4Ljd6bTQ4MiAxMzIuNDhsLTQ1LjIxLTQ1LjNhMTUuODggMTUuODggMCAwIDAtMjIuNTkgMGwtMTUxLjUgMTUxLjUtNTUuNDEtNTUuNWExNS44OCAxNS44OCAwIDAgMC0yMi41OSAwbC00NS4zIDQ1LjNhMTYgMTYgMCAwIDAgMCAyMi41OWwxMTIgMTEyLjIxYTE1Ljg5IDE1Ljg5IDAgMCAwIDIyLjYgMGwyMDgtMjA4LjIxYTE2IDE2IDAgMCAwLS4wMi0yMi41OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3BpZGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MS4xNyAxNjcuMzVMMTc3LjEgMTc2aDQuNjdsNS4yMi0yNi4xMmMuNzItMy41OCAxLjgtNy41OCAzLjIxLTExLjc5bC0yMC4yOS00MC41OCAyMy44LTcxLjM5YzIuNzktOC4zOC0xLjczLTE3LjQ0LTEwLjEyLTIwLjI0TDE2OC40Mi44MmMtOC4zOC0yLjgtMTcuNDUgMS43My0yMC4yNCAxMC4xMmwtMjUuODkgNzcuNjhhMzIuMDQgMzIuMDQgMCAwIDAgMS43MyAyNC40M2wyNy4xNSA1NC4zem00MjIuMTQgMTgyLjAzbC01Mi43NS03OS4xMmEzMi4wMDIgMzIuMDAyIDAgMCAwLTI2LjYyLTE0LjI1SDQxNmw2OC45OS0yNC4zNmEzMi4wMyAzMi4wMyAwIDAgMCAxNi41MS0xMi42MWw1My42LTgwLjQxYzQuOS03LjM1IDIuOTEtMTcuMjktNC40NC0yMi4xOWwtMTMuMzEtOC44OGMtNy4zNS00LjktMTcuMjktMi45MS0yMi4xOSA0LjQ0bC01MC41NiA3NS44M0w0MDQuMSAyMDhIMzY4bC0xMC4zNy01MS44NUMzNTUuNDQgMTQ1LjE4IDM0MC4yNiA5NiAyODggOTZjLTUyLjI2IDAtNjcuNDQgNDkuMTgtNjkuNjMgNjAuMTVMMjA4IDIwOGgtMzYuMWwtNjAuNDktMjAuMTdMNjAuODQgMTEyYy00LjktNy4zNS0xNC44My05LjM0LTIyLjE5LTQuNDRsLTEzLjMxIDguODhjLTcuMzUgNC45LTkuMzQgMTQuODMtNC40NCAyMi4xOWw1My42IDgwLjQxYTMyLjAzIDMyLjAzIDAgMCAwIDE2LjUxIDEyLjYxTDE2MCAyNTZIODIuMDZhMzIuMDIgMzIuMDIgMCAwIDAtMjYuNjMgMTQuMjVMMi42OSAzNDkuMzhjLTQuOSA3LjM1LTIuOTIgMTcuMjkgNC40NCAyMi4xOWwxMy4zMSA4Ljg4YzcuMzUgNC45IDE3LjI5IDIuOTEgMjIuMTktNC40NGw0OC03Mmg0Ny4wNmwtNjAuODMgOTcuMzNBMzEuOTg4IDMxLjk4OCAwIDAgMCA3MiA0MTguM1Y0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTczLjExbDc0LjA4LTExOC41M2MtMS4wMSAxNC4wNS0yLjA4IDI4LjExLTIuMDggNDIuMjFDMTkyIDM5OS42NCAyMzIuNzYgNDQ4IDI4OCA0NDhzOTYtNDguMzYgOTYtMTAxLjQzYzAtMTQuMS0xLjA4LTI4LjE2LTIuMDgtNDIuMjFMNDU2IDQyMi44OVY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTc3LjcxYzAtNi0xLjY5LTExLjg4LTQuODYtMTYuOTZMNDM4LjMxIDMwNGg0Ny4wNmw0OCA3MmM0LjkgNy4zNSAxNC44NCA5LjM0IDIyLjE5IDQuNDRsMTMuMzEtOC44OGM3LjM2LTQuOSA5LjM0LTE0LjgzIDQuNDQtMjIuMTh6TTQwNi4wOSA5Ny41MWwtMjAuMjkgNDAuNThjMS40MSA0LjIxIDIuNDkgOC4yMSAzLjIxIDExLjc5bDUuMjIgMjYuMTJoNC42N2wyNS45My04LjY1IDI3LjE1LTU0LjNhMzEuOTk1IDMxLjk5NSAwIDAgMCAxLjczLTI0LjQzbC0yNS44OS03Ny42OEM0MjUuMDMgMi41NiA0MTUuOTYtMS45OCA0MDcuNTguODJsLTE1LjE3IDUuMDZjLTguMzggMi44LTEyLjkxIDExLjg2LTEwLjEyIDIwLjI0bDIzLjggNzEuMzl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNwaW5uZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzA0IDQ4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4IDIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4em0tNDggMzY4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4LTIxLjQ5LTQ4LTQ4LTQ4em0yMDgtMjA4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4LTIxLjQ5LTQ4LTQ4LTQ4ek05NiAyNTZjMC0yNi41MS0yMS40OS00OC00OC00OFMwIDIyOS40OSAwIDI1NnMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OHptMTIuOTIyIDk5LjA3OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OGMwLTI2LjUwOS0yMS40OTEtNDgtNDgtNDh6bTI5NC4xNTYgMGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OGMwLTI2LjUwOS0yMS40OS00OC00OC00OHpNMTA4LjkyMiA2MC45MjJjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDkxLTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcGxvdGNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Mi4yOSAxOTUuODlsLTY3LjA2LTIyLjk1Yy0xOS4yOC02LjYtMzMuNTQtMjAuOTItMzguMTQtMzguM0wzNTEuMSA3NC4xOWMtMTEuNTgtNDMuNzctNzYuNTctNTcuMTMtMTA5Ljk4LTIyLjYybC00Ni4xNCA0Ny42N2MtMTMuMjYgMTMuNzEtMzMuNTQgMjAuOTMtNTQuMiAxOS4zMWwtNzEuODgtNS42MmMtNTIuMDUtNC4wNy04Ni45MyA0NC44OC01OS4wMyA4Mi44M2wzOC41NCA1Mi40MmMxMS4wOCAxNS4wNyAxMi44MiAzMy44NiA0LjY0IDUwLjI0TDI0LjYyIDM1NS40Yy0yMC41OSA0MS4yNSAyMi44NCA4NC44NyA3My40OSA3My44MWw2OS45Ni0xNS4yOGMyMC4xMS00LjM5IDQxLjQ1IDAgNTcuMDcgMTEuNzNsNTQuMzIgNDAuODNjMzkuMzIgMjkuNTYgMTAxLjA0IDcuNTcgMTA0LjQ1LTM3LjIybDQuNy02MS44NmMxLjM1LTE3Ljc5IDEyLjgtMzMuODYgMzAuNjMtNDIuOTlsNjItMzEuNzRjNDQuODgtMjIuOTYgMzkuNTktODAuMTctOC45NS05Ni43OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3ByYXlDYW4gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2aDEyOFYzMnptMjU2IDk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem0tMjU2IDMySDk2Yy01My4wMiAwLTk2IDQyLjk4LTk2IDk2djIyNGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDI1NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI1NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2em0tNjQgMjU2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwek00ODAgOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnMtMTQuMzMtMzItMzItMzItMzIgMTQuMzMtMzIgMzIgMTQuMzMgMzIgMzIgMzJ6bS05NiAzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnptLTk2LTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAwYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAxOTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVNxdWFyZUZ1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEyIDUxMkgwVjBoNTEydjUxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3F1YXJlUm9vdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NzEuMzEgMjUxLjMxbC0yMi42Mi0yMi42MmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMEw0ODAgMjc0Ljc1bC00Ni4wNi00Ni4wNmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMjIuNjIgMjIuNjJjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMNDM0Ljc1IDMyMGwtNDYuMDYgNDYuMDZjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMEw0ODAgMzY1LjI1bDQ2LjA2IDQ2LjA2YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjItMjIuNjJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M0w1MjUuMjUgMzIwbDQ2LjA2LTQ2LjA2YzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjN6TTU1MiAwSDMwNy42NWMtMTQuNTQgMC0yNy4yNiA5LjgtMzAuOTUgMjMuODdsLTg0Ljc5IDMyMi44LTU4LjQxLTEwNi4xQTMyLjAwOCAzMi4wMDggMCAwIDAgMTA1LjQ3IDIyNEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQzLjYybDg4Ljg4IDE2My43M0MxNjguOTkgNTAzLjUgMTg2LjMgNTEyIDIwNC45NCA1MTJjMTcuMjcgMCA0NC40NC05IDU0LjI4LTQxLjQ4TDM1Ny4wMyA5Nkg1NTJjMTMuMjUgMCAyNC0xMC43NSAyNC0yNFYyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhbXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNTEyaDQ0OHYtNjRIMzJ2NjR6bTM4NC0yNTZoLTY2LjU2Yy0xNi4yNiAwLTI5LjQ0LTEzLjE4LTI5LjQ0LTI5LjQ0di05LjQ2YzAtMjcuMzcgOC44OC01My40MSAyMS40Ni03Ny43MiA5LjExLTE3LjYxIDEyLjktMzguMzkgOS4wNS02MC40Mi02Ljc3LTM4Ljc4LTM4LjQ3LTcwLjctNzcuMjYtNzcuNDVDMjEyLjYyLTkuMDQgMTYwIDM3LjMzIDE2MCA5NmMwIDE0LjE2IDMuMTIgMjcuNTQgOC42OSAzOS41OEMxODIuMDIgMTY0LjQzIDE5MiAxOTQuNyAxOTIgMjI2LjQ5di4wN2MwIDE2LjI2LTEzLjE4IDI5LjQ0LTI5LjQ0IDI5LjQ0SDk2Yy01My4wMiAwLTk2IDQyLjk4LTk2IDk2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDQ4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJBbmRDcmVzY2VudCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDAuNDcgNDY2LjM2Yy0xLjQ1IDAtNi44OS40Ni05LjE4LjQ2LTExNi4yNSAwLTIxMC44Mi05NC41Ny0yMTAuODItMjEwLjgyUzIxNS4wNCA0NS4xOCAzMzEuMjkgNDUuMThjMi4zMiAwIDcuNy40NiA5LjE4LjQ2IDcuMTMgMCAxMy4zMy01LjAzIDE0Ljc1LTEyLjA3IDEuNDYtNy4yNS0yLjU1LTE0LjQ5LTkuNDctMTcuMDlDMzE2LjU4IDUuNTQgMjg2LjM5IDAgMjU2IDAgMTE0Ljg0IDAgMCAxMTQuODQgMCAyNTZzMTE0Ljg0IDI1NiAyNTYgMjU2YzMwLjIzIDAgNjAuMjgtNS40OSA4OS4zMi0xNi4zMiA1Ljk2LTIuMDIgMTAuMjgtNy42NCAxMC4yOC0xNC4yNiAwLTguMDktNi4zOS0xNS4wNi0xNS4xMy0xNS4wNnptMTYyLjk5LTI1Mi41bC03Ni4zOC0xMS4xLTM0LjE2LTY5LjIxYy0xLjgzLTMuNy01LjM4LTUuNTUtOC45My01LjU1cy03LjEgMS44NS04LjkzIDUuNTVsLTM0LjE2IDY5LjIxLTc2LjM4IDExLjFjLTguMTcgMS4xOC0xMS40MyAxMS4yMi01LjUyIDE2Ljk5bDU1LjI3IDUzLjg3LTEzLjA1IDc2LjA3Yy0xLjExIDYuNDQgNC4wMSAxMS42NiA5LjgxIDExLjY2IDEuNTMgMCAzLjExLS4zNiA0LjY0LTEuMTdMMzg0IDMzNS4zN2w2OC4zMSAzNS45MWMxLjUzLjggMy4xMSAxLjE3IDQuNjQgMS4xNyA1LjggMCAxMC45Mi01LjIzIDkuODEtMTEuNjZsLTEzLjA1LTc2LjA3IDU1LjI3LTUzLjg3YzUuOTEtNS43NyAyLjY1LTE1LjgxLTUuNTItMTYuOTl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJIYWxmQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwOC41NSAxNzEuNTFMMzYyLjE4IDE1MC4yIDI5Ni43NyAxNy44MUMyOTAuODkgNS45OCAyNzkuNDIgMCAyNjcuOTUgMGMtMTEuNCAwLTIyLjc5IDUuOS0yOC42OSAxNy44MWwtNjUuNDMgMTMyLjM4LTE0Ni4zOCAyMS4yOWMtMjYuMjUgMy44LTM2Ljc3IDM2LjA5LTE3Ljc0IDU0LjU5bDEwNS44OSAxMDMtMjUuMDYgMTQ1LjQ4Qzg2Ljk4IDQ5NS4zMyAxMDMuNTcgNTEyIDEyMi4xNSA1MTJjNC45MyAwIDEwLTEuMTcgMTQuODctMy43NWwxMzAuOTUtNjguNjggMTMwLjk0IDY4LjdjNC44NiAyLjU1IDkuOTIgMy43MSAxNC44MyAzLjcxIDE4LjYgMCAzNS4yMi0xNi42MSAzMS42Ni0zNy40bC0yNS4wMy0xNDUuNDkgMTA1LjkxLTEwMi45OGMxOS4wNC0xOC41IDguNTItNTAuOC0xNy43My01NC42em0tMTIxLjc0IDEyMy4ybC0xOC4xMiAxNy42MiA0LjI4IDI0Ljg4IDE5LjUyIDExMy40NS0xMDIuMTMtNTMuNTktMjIuMzgtMTEuNzQuMDMtMzE3LjE5IDUxLjAzIDEwMy4yOSAxMS4xOCAyMi42MyAyNS4wMSAzLjY0IDExNC4yMyAxNi42My04Mi42NSA4MC4zOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDBjLTExLjQgMC0yMi44IDUuOS0yOC43IDE3LjhMMTk0IDE1MC4yIDQ3LjkgMTcxLjRjLTI2LjIgMy44LTM2LjcgMzYuMS0xNy43IDU0LjZsMTA1LjcgMTAzLTI1IDE0NS41Yy00LjUgMjYuMSAyMyA0NiA0Ni40IDMzLjdMMjg4IDQzOS42VjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0YXJPZkRhdmlkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NjQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwNS42OCAyNTZsNTMuMjEtODkuMzlDNDczLjMgMTQyLjQgNDU1LjQ4IDExMiA0MjYuODggMTEySDMxOS45NmwtNTUuOTUtOTMuOThDMjU2Ljg2IDYuMDEgMjQ0LjQzIDAgMjMyIDBzLTI0Ljg2IDYuMDEtMzIuMDEgMTguMDJMMTQ0LjA0IDExMkgzNy4xMWMtMjguNiAwLTQ2LjQyIDMwLjQtMzIuMDEgNTQuNjFMNTguMzIgMjU2IDUuMSAzNDUuMzlDLTkuMzEgMzY5LjYgOC41MSA0MDAgMzcuMTEgNDAwaDEwNi45M2w1NS45NSA5My45OEMyMDcuMTQgNTA1Ljk5IDIxOS41NyA1MTIgMjMyIDUxMnMyNC44Ni02LjAxIDMyLjAxLTE4LjAyTDMxOS45NiA0MDBoMTA2LjkzYzI4LjYgMCA0Ni40Mi0zMC40IDMyLjAxLTU0LjYxTDQwNS42OCAyNTZ6bS0xMi43OC04OGwtMTkuOCAzMy4yNkwzNTMuMyAxNjhoMzkuNnptLTUyLjM5IDg4bC01Mi4zOSA4OEgxNzUuODhsLTUyLjM5LTg4IDUyLjM4LTg4aDExMi4yNWw1Mi4zOSA4OHpNMjMyIDczLjcyTDI1NC43OSAxMTJoLTQ1LjU3TDIzMiA3My43MnpNNzEuMSAxNjhoMzkuNmwtMTkuOCAzMy4yNkw3MS4xIDE2OHptMCAxNzZsMTkuOC0zMy4yNkwxMTAuNyAzNDRINzEuMXpNMjMyIDQzOC4yOEwyMDkuMjEgNDAwaDQ1LjU3TDIzMiA0MzguMjh6TTM1My4yOSAzNDRsMTkuOC0zMy4yNkwzOTIuOSAzNDRoLTM5LjYxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdGFyT2ZMaWZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3MS45OSAzMzQuNDNMMzM2LjA2IDI1NmwxMzUuOTMtNzguNDNjNy42Ni00LjQyIDEwLjI4LTE0LjIgNS44Ni0yMS44NmwtMzIuMDItNTUuNDNjLTQuNDItNy42NS0xNC4yMS0xMC4yOC0yMS44Ny01Ljg2bC0xMzUuOTMgNzguNDNWMTZjMC04Ljg0LTcuMTctMTYtMTYuMDEtMTZoLTY0LjA0Yy04Ljg0IDAtMTYuMDEgNy4xNi0xNi4wMSAxNnYxNTYuODZMNTYuMDQgOTQuNDNjLTcuNjYtNC40Mi0xNy40NS0xLjc5LTIxLjg3IDUuODZMMi4xNSAxNTUuNzFjLTQuNDIgNy42NS0xLjggMTcuNDQgNS44NiAyMS44NkwxNDMuOTQgMjU2IDguMDEgMzM0LjQzYy03LjY2IDQuNDItMTAuMjggMTQuMjEtNS44NiAyMS44NmwzMi4wMiA1NS40M2M0LjQyIDcuNjUgMTQuMjEgMTAuMjcgMjEuODcgNS44NmwxMzUuOTMtNzguNDNWNDk2YzAgOC44NCA3LjE3IDE2IDE2LjAxIDE2aDY0LjA0YzguODQgMCAxNi4wMS03LjE2IDE2LjAxLTE2VjMzOS4xNGwxMzUuOTMgNzguNDNjNy42NiA0LjQyIDE3LjQ1IDEuOCAyMS44Ny01Ljg2bDMyLjAyLTU1LjQzYzQuNDItNy42NSAxLjgtMTcuNDMtNS44Ni0yMS44NXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RhciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTkuMyAxNy44TDE5NCAxNTAuMiA0Ny45IDE3MS41Yy0yNi4yIDMuOC0zNi43IDM2LjEtMTcuNyA1NC42bDEwNS43IDEwMy0yNSAxNDUuNWMtNC41IDI2LjMgMjMuMiA0NiA0Ni40IDMzLjdMMjg4IDQzOS42bDEzMC43IDY4LjdjMjMuMiAxMi4yIDUwLjktNy40IDQ2LjQtMzMuN2wtMjUtMTQ1LjUgMTA1LjctMTAzYzE5LTE4LjUgOC41LTUwLjgtMTcuNy01NC42TDM4MiAxNTAuMiAzMTYuNyAxNy44Yy0xMS43LTIzLjYtNDUuNi0yMy45LTU3LjQgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlcEJhY2t3YXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0IDQ2OFY0NGMwLTYuNiA1LjQtMTIgMTItMTJoNDhjNi42IDAgMTIgNS40IDEyIDEydjE3Ni40bDE5NS41LTE4MUMzNTIuMSAyMi4zIDM4NCAzNi42IDM4NCA2NHYzODRjMCAyNy40LTMxLjkgNDEuNy01Mi41IDI0LjZMMTM2IDI5Mi43VjQ2OGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RlcEZvcndhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDQ0djQyNGMwIDYuNi01LjQgMTItMTIgMTJoLTQ4Yy02LjYgMC0xMi01LjQtMTItMTJWMjkxLjZsLTE5NS41IDE4MUM5NS45IDQ4OS43IDY0IDQ3NS40IDY0IDQ0OFY2NGMwLTI3LjQgMzEuOS00MS43IDUyLjUtMjQuNkwzMTIgMjE5LjNWNDRjMC02LjYgNS40LTEyIDEyLTEyaDQ4YzYuNiAwIDEyIDUuNCAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RldGhvc2NvcGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQ3LjEgMTEyYy0zNC4yLjUtNjIuMyAyOC40LTYzIDYyLjYtLjUgMjQuMyAxMi41IDQ1LjYgMzIgNTYuOFYzNDRjMCA1Ny4zLTUwLjIgMTA0LTExMiAxMDQtNjAgMC0xMDkuMi00NC4xLTExMS45LTk5LjJDMjY1IDMzMy44IDMyMCAyNjkuMiAzMjAgMTkyVjM2LjZjMC0xMS40LTguMS0yMS4zLTE5LjMtMjMuNUwyMzcuOC41Yy0xMy0yLjYtMjUuNiA1LjgtMjguMiAxOC44TDIwNi40IDM1Yy0yLjYgMTMgNS44IDI1LjYgMTguOCAyOC4ybDMwLjcgNi4xdjEyMS40YzAgNTIuOS00Mi4yIDk2LjctOTUuMSA5Ny4yLTUzLjQuNS05Ni45LTQyLjctOTYuOS05NlY2OS40bDMwLjctNi4xYzEzLTIuNiAyMS40LTE1LjIgMTguOC0yOC4ybC0zLjEtMTUuN0MxMDcuNyA2LjQgOTUuMS0yIDgyLjEuNkwxOS4zIDEzQzguMSAxNS4zIDAgMjUuMSAwIDM2LjZWMTkyYzAgNzcuMyA1NS4xIDE0MiAxMjguMSAxNTYuOEMxMzAuNyA0MzkuMiAyMDguNiA1MTIgMzA0IDUxMmM5NyAwIDE3Ni03NS40IDE3Ni0xNjhWMjMxLjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNCAwLTM1LjctMjkuMi02NC41LTY0LjktNjR6bS45IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0aWNreU5vdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzEyIDMyMGgxMzZWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjRDMTAuNyAzMiAwIDQyLjcgMCA1NnY0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjY0VjM0NGMwLTEzLjIgMTAuOC0yNCAyNC0yNHptMTI5IDU1bC05OCA5OGMtNC41IDQuNS0xMC42IDctMTcgN2gtNlYzNTJoMTI4djYuMWMwIDYuMy0yLjUgMTIuNC03IDE2Ljl6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3BDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9wIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3B3YXRjaDIwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM5OC41LDE5MC45MWwuNTktLjYxLDI2LjU5LTI2LjU4YTE2LDE2LDAsMCwwLDAtMjIuNjNMNDAzLDExOC40MWExNiwxNiwwLDAsMC0yMi42MywwbC0yNC42OCwyNC42OEEyMDYuNjgsMjA2LjY4LDAsMCwwLDI1Niw5OC41VjY0aDMyYTE2LDE2LDAsMCwwLDE2LTE2VjE2QTE2LDE2LDAsMCwwLDI4OCwwSDE2MGExNi4wNSwxNi4wNSwwLDAsMC0xNiwxNlY0OGExNi4wNSwxNi4wNSwwLDAsMCwxNiwxNmgzMlY5OC41QTIwNy45MiwyMDcuOTIsMCwwLDAsMTYuMDksMjk3LjU3QzEyLjY0LDQxMS41LDEwNi43Niw1MTAuMjIsMjIwLjcyLDUxMiwzMzcuMTMsNTEzLjc3LDQzMiw0MjAsNDMyLDMwNEEyMDYsMjA2LDAsMCwwLDM5OC41LDE5MC45MVpNMjA0LjM3LDM3Ny41NWE4LjIsOC4yLDAsMCwxLDguMzIsOC4wN3YyMi4zMWE4LjIsOC4yLDAsMCwxLTguMzIsOC4wN0gxMjEuNTJhMTYuNDYsMTYuNDYsMCwwLDEtMTYuNjEtMTcuNjJjMi43OC0zNS4yMiwxNC42Ny01Ny40MSwzOC40NS05MS4zNywyMC40Mi0yOS4xOSwyNy4xLTM3LjMyLDI3LjEtNjIuMzQsMC0xNi45Mi0xLjc5LTI0LjI3LTEyLjIxLTI0LjI3LTkuMzksMC0xMi42OSw3LjQtMTIuNjksMjIuNjh2NS4yM2E4LjIsOC4yLDAsMCwxLTguMzMsOC4wN2gtMjQuOWE4LjIsOC4yLDAsMCwxLTguMzMtOC4wN3YtNC4wN2MwLTI3LjMsOC40OC02MC4yNCw1Ni40My02MC4yNCw0MywwLDU1LjU3LDI1Ljg1LDU1LjU3LDYxLDAsMzUuNTgtMTIuNDQsNTEuMjEtMzQuMzUsODEuMzEtMTEuNTYsMTUtMjQuNjEsMzUuNTctMjYuNDEsNTEuMlpNMzQ0LDM1Mi4zMmMwLDM1LjE2LTEyLjMsNjMuNjgtNTcuMjMsNjMuNjhDMjQzLjE5LDQxNiwyMzIsMzg2LjQ4LDIzMiwzNTIuNTVWMjQ3LjIyYzAtNDAuNzMsMTkuNTgtNjMuMjIsNTYuMi02My4yMkMzMjUsMTg0LDM0NCwyMDYuNjQsMzQ0LDI0NS4zWk0yODcuODcsMjIxLjczYy05LjQxLDAtMTMuMjMsNy41LTEzLjIzLDIwVjM1Ny42OGMwLDEzLjExLDMuNTksMjAuNTksMTMuMjMsMjAuNTlzMTMtOCwxMy0yMS4yN1YyNDEuMDZDMzAwLjg5LDIyOS43OSwyOTcuODgsMjIxLjczLDI4Ny44NywyMjEuNzNaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3B3YXRjaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzIgMzA0YzAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMxNiA0MTguOSAxNiAzMDRjMC0xMDQgNzYuMy0xOTAuMiAxNzYtMjA1LjVWNjRoLTI4Yy02LjYgMC0xMi01LjQtMTItMTJWMTJjMC02LjYgNS40LTEyIDEyLTEyaDEyMGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC0yOHYzNC41YzM3LjUgNS44IDcxLjcgMjEuNiA5OS43IDQ0LjZsMjcuNS0yNy41YzQuNy00LjcgMTIuMy00LjcgMTcgMGwyOC4zIDI4LjNjNC43IDQuNyA0LjcgMTIuMyAwIDE3bC0yOS40IDI5LjQtLjYuNkM0MTkuNyAyMjMuMyA0MzIgMjYyLjIgNDMyIDMwNHptLTE3NiAzNlYxODguNWMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJWMzQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlQWx0U2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTcuODksMTIzLjYyLDUuNTEsMTQyLjJjLTE0LjIsMjEuMywxLDQ5LjgsMjYuNTksNDkuOGg3NC4yNlpNNTc2LDQxMy40MlYyMjRINTEyVjM2NEwzODQsMjY1VjIyNEgzMzAuOTJsLTQxLjQtMzJINjA4YzI1LjUsMCw0MC43LTI4LjUsMjYuNTktNDkuOGwtODUuMjktMTI4QTMyLjE4LDMyLjE4LDAsMCwwLDUyMi42LDBIMTE3LjQyQTMxLjg3LDMxLjg3LDAsMCwwLDkwLjgxLDE0LjJsLTEwLjY2LDE2TDQ1LjQ2LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM3LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTgsNTMuOTFMNTk0LjUzLDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgxbDE5LjY0LTI1LjI2YTE2LDE2LDAsMCwwLTIuODEtMjIuNDVaTTMyMCwzODRIMTI4VjIyNEg2NFY0ODBhMzIsMzIsMCwwLDAsMzIsMzJIMzUyYTMyLDMyLDAsMCwwLDMyLTMyVjQwNi41OWwtNjQtNDkuNDdaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAzODRIMTI4VjIyNEg2NHYyNTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGgtNjR2MTYwem0zMTQuNi0yNDEuOGwtODUuMy0xMjhjLTYtOC45LTE2LTE0LjItMjYuNy0xNC4ySDExNy40Yy0xMC43IDAtMjAuNyA1LjMtMjYuNiAxNC4ybC04NS4zIDEyOGMtMTQuMiAyMS4zIDEgNDkuOCAyNi42IDQ5LjhINjA4YzI1LjUgMCA0MC43LTI4LjUgMjYuNi00OS44ek01MTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMjI0aC02NHYyNzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN0b3JlU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTIxLjUxLDM4NFYyODQuMmExMTkuNDMsMTE5LjQzLDAsMCwxLTI4LDMuOCwxMjMuNDYsMTIzLjQ2LDAsMCwxLTE3LjEtMS4yLDExNC44OCwxMTQuODgsMCwwLDEtMTUuNTgtMy42VjQ4MGMwLDE3LjcsMTMuNTksMzIsMzAuNCwzMkg1MDUuNzVMMzQ4LjQyLDM4NFptLTI4LTEyOC4wOWMyNS4xLDAsNDcuMjktMTAuNzIsNjQtMjcuMjRMMjQsMTIwLjA1Yy0zMC41Miw1My4zOS0yLjQ1LDEyNi41Myw1Ni40OSwxMzVBOTUuNjgsOTUuNjgsMCwwLDAsOTMuNDgsMjU1LjkxWk02MDIuMTMsNDU4LjA5LDU0Ny4yLDQxMy40MVYyODMuMmE5My41LDkzLjUsMCwwLDEtMTUuNTcsMy42LDEyNy4zMSwxMjcuMzEsMCwwLDEtMTcuMjksMS4yLDExNC44OSwxMTQuODksMCwwLDEtMjgtMy44djc5LjY4TDM0OC41MiwyNTEuNzdhODguMDYsODguMDYsMCwwLDAsMjUuNDEsNC4xNGMyOC4xMSwwLDUzLTEzLDcwLjExLTMzLjExLDE3LjE5LDIwLjExLDQyLjA4LDMzLjExLDcwLjExLDMzLjExYTk0LjMxLDk0LjMxLDAsMCwwLDEzLS45MWM1OS42Ni04LjQxLDg4LTgyLjgsNTYuMDYtMTM2LjRMNTIxLjU1LDE1QTMwLjEsMzAuMSwwLDAsMCw0OTUuODEsMEgxMTJBMzAuMTEsMzAuMTEsMCwwLDAsODYuMjcsMTVMNzYuODgsMzAuNzgsNDMuMTksMy4zOEExNC42OCwxNC42OCwwLDAsMCwyMS44Niw2LjE5TDMuMiwzMS40NUExNi41OCwxNi41OCwwLDAsMCw1Ljg3LDUzLjkxTDU2NC44MSw1MDguNjNhMTQuNjksMTQuNjksMCwwLDAsMjEuMzMtMi44MmwxOC42Ni0yNS4yNkExNi41OCwxNi41OCwwLDAsMCw2MDIuMTMsNDU4LjA5WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdG9yZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjE2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDIgMTE4LjZMNTM3LjEgMTVDNTMxLjMgNS43IDUyMSAwIDUxMCAwSDEwNkM5NSAwIDg0LjcgNS43IDc4LjkgMTVMMTQgMTE4LjZjLTMzLjUgNTMuNS0zLjggMTI3LjkgNTguOCAxMzYuNCA0LjUuNiA5LjEuOSAxMy43LjkgMjkuNiAwIDU1LjgtMTMgNzMuOC0zMy4xIDE4IDIwLjEgNDQuMyAzMy4xIDczLjggMzMuMSAyOS42IDAgNTUuOC0xMyA3My44LTMzLjEgMTggMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDI5LjYgMCA1NS44LTEzIDczLjgtMzMuMSAxOC4xIDIwLjEgNDQuMyAzMy4xIDczLjggMzMuMSA0LjcgMCA5LjItLjMgMTMuNy0uOSA2Mi44LTguNCA5Mi42LTgyLjggNTktMTM2LjR6TTUyOS41IDI4OGMtMTAgMC0xOS45LTEuNS0yOS41LTMuOFYzODRIMTE2di05OS44Yy05LjYgMi4yLTE5LjUgMy44LTI5LjUgMy44LTYgMC0xMi4xLS40LTE4LTEuMi01LjYtLjgtMTEuMS0yLjEtMTYuNC0zLjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyODMuMmMtNS40IDEuNi0xMC44IDIuOS0xNi40IDMuNi02LjEuOC0xMi4xIDEuMi0xOC4yIDEuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE2IDEyOGg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6bTQ4MCA4MEg4MGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptLTY0IDE3NkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyZWV0VmlldyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjcuOSAzMjkuNzZjLTQuNjIgNS4zLTkuNzggMTAuMS0xNS45IDEzLjY1djIyLjk0YzY2LjUyIDkuMzQgMTEyIDI4LjA1IDExMiA0OS42NSAwIDMwLjkzLTkzLjEyIDU2LTIwOCA1NlM0OCA0NDYuOTMgNDggNDE2YzAtMjEuNiA0NS40OC00MC4zIDExMi00OS42NXYtMjIuOTRjLTYuMTItMy41NS0xMS4yOC04LjM1LTE1LjktMTMuNjVDNTguODcgMzQ1LjM0IDAgMzc4LjA1IDAgNDE2YzAgNTMuMDIgMTE0LjYyIDk2IDI1NiA5NnMyNTYtNDIuOTggMjU2LTk2YzAtMzcuOTUtNTguODctNzAuNjYtMTQ0LjEtODYuMjR6TTI1NiAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFMyOTEuMzUgMCAyNTYgMHMtNjQgMjguNjUtNjQgNjQgMjguNjUgNjQgNjQgNjR6bS02NCAxOTJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC0xMS44Yy0xMS4wNyA1LjAzLTIzLjI2IDgtMzYuMiA4cy0yNS4xMy0yLjk3LTM2LjItOEgyMDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3RyaWtldGhyb3VnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjI0SDI5My45bC04Ny4xNy0yNi44M0E0My41NSA0My41NSAwIDAgMSAyMTkuNTUgMTEyaDY2Ljc5QTQ5Ljg5IDQ5Ljg5IDAgMCAxIDMzMSAxMzkuNThhMTYgMTYgMCAwIDAgMjEuNDYgNy4xNWw0Mi45NC0yMS40N2ExNiAxNiAwIDAgMCA3LjE2LTIxLjQ2bC0uNTMtMUExMjggMTI4IDAgMCAwIDI4Ny41MSAzMmgtNjhhMTIzLjY4IDEyMy42OCAwIDAgMC0xMjMgMTM1LjY0YzIgMjAuODkgMTAuMSAzOS44MyAyMS43OCA1Ni4zNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0ODBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMTgwLjI0IDk2QTQzIDQzIDAgMCAxIDMzNiAzNTYuNDUgNDMuNTkgNDMuNTkgMCAwIDEgMjkyLjQ1IDQwMGgtNjYuNzlBNDkuODkgNDkuODkgMCAwIDEgMTgxIDM3Mi40MmExNiAxNiAwIDAgMC0yMS40Ni03LjE1bC00Mi45NCAyMS40N2ExNiAxNiAwIDAgMC03LjE2IDIxLjQ2bC41MyAxQTEyOCAxMjggMCAwIDAgMjI0LjQ5IDQ4MGg2OGExMjMuNjggMTIzLjY4IDAgMCAwIDEyMy0xMzUuNjQgMTE0LjI1IDExNC4yNSAwIDAgMC01LjM0LTI0LjM2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTdHJvb3B3YWZlbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODguMTIgMjEwLjc0TDE0Mi44NiAyNTZsNDUuMjUgNDUuMjVMMjMzLjM3IDI1NmwtNDUuMjUtNDUuMjZ6bTExMy4xMy0yMi42MkwyNTYgMTQyLjg2bC00NS4yNSA0NS4yNUwyNTYgMjMzLjM3bDQ1LjI1LTQ1LjI1em0tOTAuNSAxMzUuNzZMMjU2IDM2OS4xNGw0NS4yNi00NS4yNkwyNTYgMjc4LjYzbC00NS4yNSA0NS4yNXpNMjU2IDBDMTE0LjYyIDAgMCAxMTQuNjIgMCAyNTZzMTE0LjYyIDI1NiAyNTYgMjU2IDI1Ni0xMTQuNjIgMjU2LTI1NlMzOTcuMzggMCAyNTYgMHptMTg2LjY4IDI5NS42bC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0yOC4yOS0yOC4yOS00NS4yNSA0NS4yNSAzMy45NCAzMy45NCAxNi45Ny0xNi45N2MzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xNi45NyAxNi45NyAxNi45NyAxNi45N2MzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTE2Ljk3LTE2Ljk3LTE2Ljk3IDE2Ljk3Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTExLjMxLTExLjMxYy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTYuOTctMTYuOTctMzMuOTQtMzMuOTQtNDUuMjYgNDUuMjYgMjguMjkgMjguMjljMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwTDI1NiA0MTQuMzlsLTI4LjI5IDI4LjI5Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTExLjMxLTExLjMxYy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMjguMjktMjguMjktNDUuMjUtNDUuMjYtMzMuOTQgMzMuOTQgMTYuOTcgMTYuOTdjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xNi45Ny0xNi45Ny0xNi45NyAxNi45N2MtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xMS4zMS0xMS4zMWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDE2Ljk3LTE2Ljk3LTE2Ljk3LTE2Ljk3Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTEuMzEtMTEuMzFjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDE2Ljk3IDE2Ljk3IDMzLjk0LTMzLjk0LTQ1LjI1LTQ1LjI1LTI4LjI5IDI4LjI5Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBMNjkuMzIgMjk1LjZjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMUw5Ny42MSAyNTZsLTI4LjI5LTI4LjI5Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTEuMzEtMTEuMzFjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDI4LjI5IDI4LjI5IDQ1LjI1LTQ1LjI2LTMzLjk0LTMzLjk0LTE2Ljk3IDE2Ljk3Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTExLjMxLTExLjMxYy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTYuOTctMTYuOTctMTYuOTctMTYuOTdjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTYuOTcgMTYuOTcgMTYuOTctMTYuOTdjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTYuOTcgMTYuOTcgMzMuOTQgMzMuOTQgNDUuMjYtNDUuMjUtMjguMjktMjguMjljLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBMMjU2IDk3LjYxbDI4LjI5LTI4LjI5YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTI4LjI5IDI4LjI5IDQ1LjI2IDQ1LjI1IDMzLjk0LTMzLjk0LTE2Ljk3LTE2Ljk3Yy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTEuMzEtMTEuMzFjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDE2Ljk3IDE2Ljk3IDE2Ljk3LTE2Ljk3YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTE2Ljk3IDE2Ljk3IDE2Ljk3IDE2Ljk3YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTYuOTctMTYuOTctMzMuOTQgMzMuOTQgNDUuMjUgNDUuMjYgMjguMjktMjguMjljMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMUw0MTQuMzkgMjU2bDI4LjI5IDI4LjI4YTguMDE1IDguMDE1IDAgMCAxIDAgMTEuMzJ6TTI3OC42MyAyNTZsNDUuMjYgNDUuMjVMMzY5LjE0IDI1NmwtNDUuMjUtNDUuMjZMMjc4LjYzIDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3Vic2NyaXB0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiA0NDhoLTE2VjMwNGExNiAxNiAwIDAgMC0xNi0xNmgtNDhhMTYgMTYgMCAwIDAtMTQuMjkgOC44M2wtMTYgMzJBMTYgMTYgMCAwIDAgNDAwIDM1MmgxNnY5NmgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0zMzYgNjRoLTY3YTE2IDE2IDAgMCAwLTEzLjE0IDYuODdsLTc5LjkgMTE1LTc5LjktMTE1QTE2IDE2IDAgMCAwIDgzIDY0SDE2QTE2IDE2IDAgMCAwIDAgODB2NDhhMTYgMTYgMCAwIDAgMTYgMTZoMzMuNDhsNzcuODEgMTEyLTc3LjgxIDExMkgxNmExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmg2N2ExNiAxNiAwIDAgMCAxMy4xNC02Ljg3bDc5LjktMTE1IDc5LjkgMTE1QTE2IDE2IDAgMCAwIDI2OSA0NDhoNjdhMTYgMTYgMCAwIDAgMTYtMTZ2LTQ4YTE2IDE2IDAgMCAwLTE2LTE2aC0zMy40OGwtNzcuODEtMTEyIDc3LjgxLTExMkgzMzZhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1YndheSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZ2MjU2YzAgNTEuODE1LTYxLjYyNCA5Ni0xMzAuMDIyIDk2bDYyLjk4IDQ5LjcyMUMzODYuOTA1IDUwMi40MTcgMzgzLjU2MiA1MTIgMzc2IDUxMkg3MmMtNy41NzggMC0xMC44OTItOS41OTQtNC45NTctMTQuMjc5TDEzMC4wMjIgNDQ4QzYxLjgyIDQ0OCAwIDQwMy45NTQgMCAzNTJWOTZDMCA0Mi45ODEgNjQgMCAxMjggMGgxOTJjNjUgMCAxMjggNDIuOTgxIDEyOCA5NnpNMjAwIDIzMlYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0yMDAgMFYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI3MmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTA0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHptLTQ4IDU2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4LTIxLjQ5LTQ4LTQ4LTQ4em0tMjU2IDBjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1aXRjYXNlUm9sbGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMTYwSDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmgxMjh2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2aDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjA4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0xNiAyMTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgyNDBjNC40MiAwIDggMy41OCA4IDh2MTZ6bTAtOTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgyNDBjNC40MiAwIDggMy41OCA4IDh2MTZ6TTE0NCA0OGg5NnY4MGg0OFY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC05NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY4MGg0OFY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VpdGNhc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4IDQ4MGgyNTZWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0MDB6bTY0LTM4NGgxMjh2MzJIMTkyVjk2em0zMjAgODB2MjU2YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4aC00OFYxMjhoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTk2IDQ4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4djM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiAxNjBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTYgOTYtNDMuMSA5Ni05Ni00My4xLTk2LTk2LTk2em0yNDYuNCA4MC41bC05NC43LTQ3LjMgMzMuNS0xMDAuNGM0LjUtMTMuNi04LjQtMjYuNS0yMS45LTIxLjlsLTEwMC40IDMzLjUtNDcuNC05NC44Yy02LjQtMTIuOC0yNC42LTEyLjgtMzEgMGwtNDcuMyA5NC43TDkyLjcgNzAuOGMtMTMuNi00LjUtMjYuNSA4LjQtMjEuOSAyMS45bDMzLjUgMTAwLjQtOTQuNyA0Ny40Yy0xMi44IDYuNC0xMi44IDI0LjYgMCAzMWw5NC43IDQ3LjMtMzMuNSAxMDAuNWMtNC41IDEzLjYgOC40IDI2LjUgMjEuOSAyMS45bDEwMC40LTMzLjUgNDcuMyA5NC43YzYuNCAxMi44IDI0LjYgMTIuOCAzMSAwbDQ3LjMtOTQuNyAxMDAuNCAzMy41YzEzLjYgNC41IDI2LjUtOC40IDIxLjktMjEuOWwtMzMuNS0xMDAuNCA5NC43LTQ3LjNjMTMtNi41IDEzLTI0LjcuMi0zMS4xem0tMTU1LjkgMTA2Yy00OS45IDQ5LjktMTMxLjEgNDkuOS0xODEgMC00OS45LTQ5LjktNDkuOS0xMzEuMSAwLTE4MSA0OS45LTQ5LjkgMTMxLjEtNDkuOSAxODEgMCA0OS45IDQ5LjkgNDkuOSAxMzEuMSAwIDE4MXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3VwZXJzY3JpcHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2IDE2MGgtMTZWMTZhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDQwMCA2NGgxNnY5NmgtMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoOTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0zMzYgNjRoLTY3YTE2IDE2IDAgMCAwLTEzLjE0IDYuODdsLTc5LjkgMTE1LTc5LjktMTE1QTE2IDE2IDAgMCAwIDgzIDY0SDE2QTE2IDE2IDAgMCAwIDAgODB2NDhhMTYgMTYgMCAwIDAgMTYgMTZoMzMuNDhsNzcuODEgMTEyLTc3LjgxIDExMkgxNmExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmg2N2ExNiAxNiAwIDAgMCAxMy4xNC02Ljg3bDc5LjktMTE1IDc5LjkgMTE1QTE2IDE2IDAgMCAwIDI2OSA0NDhoNjdhMTYgMTYgMCAwIDAgMTYtMTZ2LTQ4YTE2IDE2IDAgMCAwLTE2LTE2aC0zMy40OGwtNzcuODEtMTEyIDc3LjgxLTExMkgzMzZhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN1cnByaXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyMDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTExMiAyMDhjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em04MC0xNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTd2F0Y2hib29rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNC42NiwxNjcuNzFoMEwzNDQuNSw3Ny4zNmEzMS44MywzMS44MywwLDAsMC00NS0uMDdoMGwtLjA3LjA3TDIyNCwxNTIuODhWNDI0TDQzNC42NiwyMTIuOUEzMiwzMiwwLDAsMCw0MzQuNjYsMTY3LjcxWk00ODAsMzIwSDM3My4wOUwxODYuNjgsNTA2LjUxYy0yLjA2LDIuMDctNC41LDMuNTgtNi42OCw1LjQ5SDQ4MGEzMiwzMiwwLDAsMCwzMi0zMlYzNTJBMzIsMzIsMCwwLDAsNDgwLDMyMFpNMTkyLDMyQTMyLDMyLDAsMCwwLDE2MCwwSDMyQTMyLDMyLDAsMCwwLDAsMzJWNDE2YTk2LDk2LDAsMCwwLDE5MiwwWk05Niw0NDBhMjQsMjQsMCwxLDEsMjQtMjRBMjQsMjQsMCwwLDEsOTYsNDQwWm0zMi0xODRINjRWMTkyaDY0Wm0wLTEyOEg2NFY2NGg2NFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dpbW1lciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xODkuNjEgMzEwLjU4YzMuNTQgMy4yNiAxNS4yNyA5LjQyIDM0LjM5IDkuNDJzMzAuODYtNi4xNiAzNC4zOS05LjQyYzE2LjAyLTE0Ljc3IDM0LjUtMjIuNTggNTMuNDYtMjIuNThoMTYuM2MxOC45NiAwIDM3LjQ1IDcuODEgNTMuNDYgMjIuNTggMy41NCAzLjI2IDE1LjI3IDkuNDIgMzQuMzkgOS40MnMzMC44Ni02LjE2IDM0LjM5LTkuNDJjMTQuODYtMTMuNzEgMzEuODgtMjEuMTIgNDkuMzktMjIuMTZsLTExMi44NC04MC42IDE4LTEyLjg2YzMuNjQtMi41OCA4LjI4LTMuNTIgMTIuNjItMi42MWwxMDAuMzUgMjEuNTNjMjUuOTEgNS41MyA1MS40NC0xMC45NyA1Ny0zNi44OCA1LjU1LTI1LjkyLTEwLjk1LTUxLjQ0LTM2Ljg4LTU3TDQzNy42OCA5OC40N2MtMzAuNzMtNi41OC02My4wMi4xMi04OC41NiAxOC4zOGwtODAuMDIgNTcuMTdjLTEwLjM4IDcuMzktMTkuMzYgMTYuNDQtMjYuNzIgMjYuOTRMMTczLjc1IDI5OWM1LjQ3IDMuMjMgMTAuODIgNi45MyAxNS44NiAxMS41OHpNNjI0IDM1MmgtMTZjLTI2LjA0IDAtNDUuOC04LjQyLTU2LjA5LTE3LjktOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUM0NjEuOCAzNDMuNTggNDQyLjA0IDM1MiA0MTYgMzUycy00NS44LTguNDItNTYuMDktMTcuOWMtOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUMyNjkuOCAzNDMuNTggMjUwLjA0IDM1MiAyMjQgMzUycy00NS44LTguNDItNTYuMDktMTcuOWMtOC45LTguMjEtMTkuNjYtMTQuMS0zMS43Ny0xNC4xaC0xNi4zYy0xMi4xMSAwLTIyLjg3IDUuODktMzEuNzcgMTQuMUM3Ny44IDM0My41OCA1OC4wNCAzNTIgMzIgMzUySDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmMzOC42MiAwIDcyLjcyLTEyLjE5IDk2LTMxLjg0IDIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0czcyLjcyLTEyLjE5IDk2LTMxLjg0YzIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0czcyLjcyLTEyLjE5IDk2LTMxLjg0YzIzLjI4IDE5LjY2IDU3LjM4IDMxLjg0IDk2IDMxLjg0aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTUxMi05NmM0NC4xOCAwIDgwLTM1LjgyIDgwLTgwcy0zNS44Mi04MC04MC04MC04MCAzNS44Mi04MCA4MCAzNS44MiA4MCA4MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3dpbW1pbmdQb29sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCA0MTZoLTE2Yy0yNi4wNCAwLTQ1LjgtOC40Mi01Ni4wOS0xNy45LTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNDYxLjggNDA3LjU4IDQ0Mi4wNCA0MTYgNDE2IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDMjY5LjggNDA3LjU4IDI1MC4wNCA0MTYgMjI0IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNzcuOCA0MDcuNTggNTguMDQgNDE2IDMyIDQxNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjMzguNjIgMCA3Mi43Mi0xMi4xOSA5Ni0zMS44NCAyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NGgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS00MDAtMzJ2LTk2aDE5MnY5NmMxOS4xMiAwIDMwLjg2LTYuMTYgMzQuMzktOS40MiA5LjE3LTguNDYgMTkuMi0xNC4zNCAyOS42MS0xOC4wN1YxMjhjMC0xNy42NCAxNC4zNi0zMiAzMi0zMnMzMiAxNC4zNiAzMiAzMnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC01Mi45NC00My4wNi05Ni05Ni05NnMtOTYgNDMuMDYtOTYgOTZ2OTZIMjI0di05NmMwLTE3LjY0IDE0LjM2LTMyIDMyLTMyczMyIDE0LjM2IDMyIDMydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2cy05NiA0My4wNi05NiA5NnYyMjguNWMxMC40MSAzLjczIDIwLjQ0IDkuNjIgMjkuNjEgMTguMDcgMy41MyAzLjI3IDE1LjI3IDkuNDMgMzQuMzkgOS40M3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3luYWdvZ3VlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTcwIDE5Ni41MUw2LjY3IDI2OC4yOUEyNi42NDMgMjYuNjQzIDAgMCAwIDAgMjg1LjkzVjUxMmgxMjhWMjM5LjU4bC0zOC00My4wN2MtNS4zMS02LjAxLTE0LjY5LTYuMDEtMjAgMHptNTYzLjMzIDcxLjc4TDU3MCAxOTYuNTFjLTUuMzEtNi4wMi0xNC42OS02LjAyLTIwIDBsLTM4IDQzLjA3VjUxMmgxMjhWMjg1LjkzYzAtNi41LTIuMzctMTIuNzctNi42Ny0xNy42NHpNMzM5Ljk5IDcuMDFjLTExLjY5LTkuMzUtMjguMjktOS4zNS0zOS45OCAwbC0xMjggMTAyLjRBMzIuMDA1IDMyLjAwNSAwIDAgMCAxNjAgMTM0LjRWNTEyaDk2di05Mi41N2MwLTMxLjg4IDIxLjc4LTYxLjQzIDUzLjI1LTY2LjU1QzM0OS4zNCAzNDYuMzUgMzg0IDM3Ny4xMyAzODQgNDE2djk2aDk2VjEzNC40YzAtOS43Mi00LjQyLTE4LjkyLTEyLjAxLTI0Ljk5bC0xMjgtMTAyLjR6bTUyLjA3IDIxNS41NWMxLjk4IDMuMTUtLjI5IDcuMjQtNCA3LjI0aC0zOC45NEwzMjQgMjY5Ljc5Yy0xLjg1IDIuOTUtNi4xNSAyLjk1LTggMGwtMjUuMTItMzkuOThoLTM4Ljk0Yy0zLjcyIDAtNS45OC00LjA5LTQtNy4yNGwxOS4yLTMwLjU2LTE5LjItMzAuNTZjLTEuOTgtMy4xNS4yOS03LjI0IDQtNy4yNGgzOC45NGwyNS4xMi00MGMxLjg1LTIuOTUgNi4xNS0yLjk1IDggMGwyNS4xMiAzOS45OGgzOC45NWMzLjcxIDAgNS45OCA0LjA5IDQgNy4yNEwzNzIuODcgMTkybDE5LjE5IDMwLjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFTeW5jQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM3MC43MiAxMzMuMjhDMzM5LjQ1OCAxMDQuMDA4IDI5OC44ODggODcuOTYyIDI1NS44NDggODhjLTc3LjQ1OC4wNjgtMTQ0LjMyOCA1My4xNzgtMTYyLjc5MSAxMjYuODUtMS4zNDQgNS4zNjMtNi4xMjIgOS4xNS0xMS42NTEgOS4xNUgyNC4xMDNjLTcuNDk4IDAtMTMuMTk0LTYuODA3LTExLjgwNy0xNC4xNzZDMzMuOTMzIDk0LjkyNCAxMzQuODEzIDggMjU2IDhjNjYuNDQ4IDAgMTI2Ljc5MSAyNi4xMzYgMTcxLjMxNSA2OC42ODVMNDYzLjAzIDQwLjk3QzQ3OC4xNDkgMjUuODUxIDUwNCAzNi41NTkgNTA0IDU3Ljk0MVYxOTJjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDM0NS45NDFjLTIxLjM4MiAwLTMyLjA5LTI1Ljg1MS0xNi45NzEtNDAuOTcxbDQxLjc1LTQxLjc0OXpNMzIgMjk2aDEzNC4wNTljMjEuMzgyIDAgMzIuMDkgMjUuODUxIDE2Ljk3MSA0MC45NzFsLTQxLjc1IDQxLjc1YzMxLjI2MiAyOS4yNzMgNzEuODM1IDQ1LjMxOSAxMTQuODc2IDQ1LjI4IDc3LjQxOC0uMDcgMTQ0LjMxNS01My4xNDQgMTYyLjc4Ny0xMjYuODQ5IDEuMzQ0LTUuMzYzIDYuMTIyLTkuMTUgMTEuNjUxLTkuMTVoNTcuMzA0YzcuNDk4IDAgMTMuMTk0IDYuODA3IDExLjgwNyAxNC4xNzZDNDc4LjA2NyA0MTcuMDc2IDM3Ny4xODcgNTA0IDI1NiA1MDRjLTY2LjQ0OCAwLTEyNi43OTEtMjYuMTM2LTE3MS4zMTUtNjguNjg1TDQ4Ljk3IDQ3MS4wM0MzMy44NTEgNDg2LjE0OSA4IDQ3NS40NDEgOCA0NTQuMDU5VjMyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVN5bmMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwLjY1IDEyLjU3bDQgODIuNzdBMjQ3LjE2IDI0Ny4xNiAwIDAgMCAyNTUuODMgOEMxMzQuNzMgOCAzMy45MSA5NC45MiAxMi4yOSAyMDkuODJBMTIgMTIgMCAwIDAgMjQuMDkgMjI0aDQ5LjA1YTEyIDEyIDAgMCAwIDExLjY3LTkuMjYgMTc1LjkxIDE3NS45MSAwIDAgMSAzMTctNTYuOTRsLTEwMS40Ni00Ljg2YTEyIDEyIDAgMCAwLTEyLjU3IDEydjQ3LjQxYTEyIDEyIDAgMCAwIDEyIDEySDUwMGExMiAxMiAwIDAgMCAxMi0xMlYxMmExMiAxMiAwIDAgMC0xMi0xMmgtNDcuMzdhMTIgMTIgMCAwIDAtMTEuOTggMTIuNTd6TTI1NS44MyA0MzJhMTc1LjYxIDE3NS42MSAwIDAgMS0xNDYtNzcuOGwxMDEuOCA0Ljg3YTEyIDEyIDAgMCAwIDEyLjU3LTEydi00Ny40YTEyIDEyIDAgMCAwLTEyLTEySDEyYTEyIDEyIDAgMCAwLTEyIDEyVjUwMGExMiAxMiAwIDAgMCAxMiAxMmg0Ny4zNWExMiAxMiAwIDAgMCAxMi0xMi42bC00LjE1LTgyLjU3QTI0Ny4xNyAyNDcuMTcgMCAwIDAgMjU1LjgzIDUwNGMxMjEuMTEgMCAyMjEuOTMtODYuOTIgMjQzLjU1LTIwMS44MmExMiAxMiAwIDAgMC0xMS44LTE0LjE4aC00OS4wNWExMiAxMiAwIDAgMC0xMS42NyA5LjI2QTE3NS44NiAxNzUuODYgMCAwIDEgMjU1LjgzIDQzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhU3lyaW5nZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDEuNSAxNzQuOGw1NS43IDU1LjhjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC01NS43LTU1LjgtNDUuMyA0NS4zIDU1LjggNTUuOGMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBMMTExIDI2NS4ybC0yNi40IDI2LjRjLTE3LjMgMTcuMy0yNS42IDQxLjEtMjMgNjUuNGw3LjEgNjMuNkwyLjMgNDg3Yy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDExLjMgMTEuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDY2LjMtNjYuMyA2My42IDcuMWMyMy45IDIuNiA0Ny45LTUuNCA2NS40LTIzbDE4MS45LTE4MS45LTEzNS43LTEzNS43LTY0LjkgNjV6bTMwOC4yLTkzLjNMNDMwLjUgMi4zYy0zLjEtMy4xLTguMi0zLjEtMTEuMyAwbC0xMS4zIDExLjNjLTMuMSAzLjEtMy4xIDguMiAwIDExLjNsMjguMyAyOC4zLTQ1LjMgNDUuMy01Ni42LTU2LjYtMTctMTdjLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBsLTMzLjkgMzMuOWMtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wxNyAxN0w0MjQuOCAyMjNsMTcgMTdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzMy45LTM0YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTczLjUtNzMuNSA0NS4zLTQ1LjMgMjguMyAyOC4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTEuMy0xMS4zYzMuMS0zLjIgMy4xLTguMiAwLTExLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlVGVubmlzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5Ni4yIDI5Ni41QzUyNy43IDIxOC43IDUxMiAxMjYuMiA0NDkgNjMuMSAzNjUuMS0yMSAyMjktMjEgMTQ1LjEgNjMuMWwtNTYgNTYuMSAyMTEuNSAyMTEuNWM0Ni4xLTYyLjEgMTMxLjUtNzcuNCAxOTUuNi0zNC4yem0tMjE3LjkgNzkuN0w1Ny45IDE1NS45Yy0yNy4zIDQ1LjMtMjEuNyAxMDUgMTcuMyAxNDQuMWwzNC41IDM0LjZMNi43IDQyNGMtOC42IDcuNS05LjEgMjAuNy0xIDI4LjhsNTMuNCA1My41YzggOC4xIDIxLjIgNy42IDI4LjctMUwxNzcuMSA0MDJsMzUuNyAzNS43YzE5LjcgMTkuNyA0NC42IDMwLjUgNzAuMyAzMy4zLTcuMS0xNy0xMS0zNS42LTExLTU1LjEtLjEtMTMuOCAyLjUtMjcgNi4yLTM5Ljd6TTQxNiAzMjBjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTYgOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMjI0IDQxNkg2NHYtOTZoMTYwdjk2em0wLTE2MEg2NHYtOTZoMTYwdjk2em0yMjQgMTYwSDI4OHYtOTZoMTYwdjk2em0wLTE2MEgyODh2LTk2aDE2MHY5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFibGV0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTc2LTEwOGMwIDYuNi01LjQgMTItMTIgMTJINjBjLTYuNiAwLTEyLTUuNC0xMi0xMlY2MGMwLTYuNiA1LjQtMTIgMTItMTJoMzI4YzYuNiAwIDEyIDUuNCAxMiAxMnYzMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjI0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhYmxldHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTYwIDE5MkM3OC45IDE5MiAxMi41IDI1MC41LjEgMzI2LjdjLS44IDQuOCAzLjMgOS4zIDguMyA5LjNoMzAzLjNjNSAwIDkuMS00LjUgOC4zLTkuM0MzMDcuNSAyNTAuNSAyNDEuMSAxOTIgMTYwIDE5MnptMTUxLjYgMTc2SDguNGMtNSAwLTkuMSA0LjUtOC4zIDkuM0MxMi41IDQ1My41IDc4LjkgNTEyIDE2MCA1MTJzMTQ3LjUtNTguNSAxNTkuOS0xMzQuN2MuOC00LjgtMy4zLTkuMy04LjMtOS4zek01OTMuNCA0Ni42Yy01Ni41LTU2LjUtMTQ0LjItNjEuNC0yMDYuOS0xNi00IDIuOS00LjMgOC45LS44IDEyLjNMNTk3IDI1NC4zYzMuNSAzLjUgOS41IDMuMiAxMi4zLS44IDQ1LjUtNjIuNyA0MC42LTE1MC40LTE1LjktMjA2Ljl6TTM2MyA2NS43Yy0zLjUtMy41LTkuNS0zLjItMTIuMy44LTQ1LjQgNjIuNy00MC41IDE1MC40IDE1LjkgMjA2LjkgNTYuNSA1Ni41IDE0NC4yIDYxLjQgMjA2LjkgMTUuOSA0LTIuOSA0LjMtOC45LjgtMTIuM0wzNjMgNjUuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFjaG9tZXRlckFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMzJDMTI4Ljk0IDMyIDAgMTYwLjk0IDAgMzIwYzAgNTIuOCAxNC4yNSAxMDIuMjYgMzkuMDYgMTQ0LjggNS42MSA5LjYyIDE2LjMgMTUuMiAyNy40NCAxNS4yaDQ0M2MxMS4xNCAwIDIxLjgzLTUuNTggMjcuNDQtMTUuMkM1NjEuNzUgNDIyLjI2IDU3NiAzNzIuOCA1NzYgMzIwYzAtMTU5LjA2LTEyOC45NC0yODgtMjg4LTI4OHptMCA2NGMxNC43MSAwIDI2LjU4IDEwLjEzIDMwLjMyIDIzLjY1LTEuMTEgMi4yNi0yLjY0IDQuMjMtMy40NSA2LjY3bC05LjIyIDI3LjY3Yy01LjEzIDMuNDktMTAuOTcgNi4wMS0xNy42NCA2LjAxLTE3LjY3IDAtMzItMTQuMzMtMzItMzJTMjcwLjMzIDk2IDI4OCA5NnpNOTYgMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem00OC0xNjBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTI0Ni43Ny03Mi40MWwtNjEuMzMgMTg0QzM0My4xMyAzNDcuMzMgMzUyIDM2NC41NCAzNTIgMzg0YzAgMTEuNzItMy4zOCAyMi41NS04Ljg4IDMySDIzMi44OGMtNS41LTkuNDUtOC44OC0yMC4yOC04Ljg4LTMyIDAtMzMuOTQgMjYuNS02MS40MyA1OS45LTYzLjU5bDYxLjM0LTE4NC4wMWM0LjE3LTEyLjU2IDE3LjczLTE5LjQ1IDMwLjM2LTE1LjE3IDEyLjU3IDQuMTkgMTkuMzUgMTcuNzkgMTUuMTcgMzAuMzZ6bTE0LjY2IDU3LjJsMTUuNTItNDYuNTVjMy40Ny0xLjI5IDcuMTMtMi4yMyAxMS4wNS0yLjIzIDE3LjY3IDAgMzIgMTQuMzMgMzIgMzJzLTE0LjMzIDMyLTMyIDMyYy0xMS4zOC0uMDEtMjAuODktNi4yOC0yNi41Ny0xNS4yMnpNNDgwIDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFnIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjUyLjExOFY0OEMwIDIxLjQ5IDIxLjQ5IDAgNDggMGgyMDQuMTE4YTQ4IDQ4IDAgMCAxIDMzLjk0MSAxNC4wNTlsMjExLjg4MiAyMTEuODgyYzE4Ljc0NSAxOC43NDUgMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4MkwyOTMuODIzIDQ5Ny45NDFjLTE4Ljc0NSAxOC43NDUtNDkuMTM3IDE4Ljc0NS02Ny44ODIgMEwxNC4wNTkgMjg2LjA1OUE0OCA0OCAwIDAgMSAwIDI1Mi4xMTh6TTExMiA2NGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFncyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTcuOTQxIDIyNS45NDFMMjg2LjA1OSAxNC4wNTlBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djIwNC4xMThhNDggNDggMCAwIDAgMTQuMDU5IDMzLjk0MWwyMTEuODgyIDIxMS44ODJjMTguNzQ0IDE4Ljc0NSA0OS4xMzYgMTguNzQ2IDY3Ljg4MiAwbDIwNC4xMTgtMjA0LjExOGMxOC43NDUtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMC02Ny44ODJ6TTExMiAxNjBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTUxMy45NDEgMTMzLjgyM0w0MjEuODIzIDQ5Ny45NDFjLTE4Ljc0NSAxOC43NDUtNDkuMTM3IDE4Ljc0NS02Ny44ODIgMGwtLjM2LS4zNkw1MjcuNjQgMzIzLjUyMmMxNi45OTktMTYuOTk5IDI2LjM2LTM5LjYgMjYuMzYtNjMuNjRzLTkuMzYyLTQ2LjY0MS0yNi4zNi02My42NEwzMzEuMzk3IDBoNDguNzIxYTQ4IDQ4IDAgMCAxIDMzLjk0MSAxNC4wNTlsMjExLjg4MiAyMTEuODgyYzE4Ljc0NSAxOC43NDUgMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGFwZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjQtMjguNy02NC02NC02NHptNDAwIDIyNEgzODAuNmM0MS41LTQwLjcgNjcuNC05Ny4zIDY3LjQtMTYwIDAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRTMCAxMzIuMyAwIDI1NnMxMDAuMyAyMjQgMjI0IDIyNGg0MDBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00MDAtNjRjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTYgOTYgNDMgOTYgOTYtNDMgOTYtOTYgOTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRhc2tzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEzOS42MSAzNS41YTEyIDEyIDAgMCAwLTE3IDBMNTguOTMgOTguODFsLTIyLjctMjIuMTJhMTIgMTIgMCAwIDAtMTcgMEwzLjUzIDkyLjQxYTEyIDEyIDAgMCAwIDAgMTdsNDcuNTkgNDcuNGExMi43OCAxMi43OCAwIDAgMCAxNy42MSAwbDE1LjU5LTE1LjYyTDE1Ni41MiA2OWExMi4wOSAxMi4wOSAwIDAgMCAuMDktMTd6bTAgMTU5LjE5YTEyIDEyIDAgMCAwLTE3IDBsLTYzLjY4IDYzLjcyLTIyLjctMjIuMWExMiAxMiAwIDAgMC0xNyAwTDMuNTMgMjUyYTEyIDEyIDAgMCAwIDAgMTdMNTEgMzE2LjVhMTIuNzcgMTIuNzcgMCAwIDAgMTcuNiAwbDE1LjctMTUuNjkgNzIuMi03Mi4yMmExMiAxMiAwIDAgMCAuMDktMTYuOXpNNjQgMzY4Yy0yNi40OSAwLTQ4LjU5IDIxLjUtNDguNTkgNDhTMzcuNTMgNDY0IDY0IDQ2NGE0OCA0OCAwIDAgMCAwLTk2em00MzIgMTZIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMzIwSDIwOGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyODhhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMTYwSDIwOGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyODhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUYXhpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2MiAyNDEuNjRsLTIyLTg0Ljg0Yy05LjYtMzUuMi00MS42LTYwLjgtNzYuOC02MC44SDM1MlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgtMTEuMmMtMzUuMiAwLTY3LjIgMjUuNi03Ni44IDYwLjhsLTIyIDg0Ljg0QzIxLjQxIDI0OC4wNCAwIDI3My40NyAwIDMwNHY0OGMwIDIzLjYzIDEyLjk1IDQ0LjA0IDMyIDU1LjEyVjQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDI1NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTQwLjg4YzE5LjA1LTExLjA5IDMyLTMxLjUgMzItNTUuMTJ2LTQ4YzAtMzAuNTMtMjEuNDEtNTUuOTYtNTAtNjIuMzZ6TTk2IDM1MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjAuNTUtMTEybDE3LjItNjYuMzZjMi4yMy04LjE2IDkuNTktMTMuNjQgMTUuMDYtMTMuNjRoMjE0LjRjNS40NyAwIDEyLjgzIDUuNDggMTQuODUgMTIuODZMMzk1LjQ1IDI0MGgtMjc4Ljl6TTQxNiAzNTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlZXRoT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01NDQgMEg5NkM0Mi45OCAwIDAgNDIuOTggMCA5NnY2NGMwIDM1LjM1IDI4LjY2IDY0IDY0IDY0aDUxMmMzNS4zNCAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6TTE2MCAxNzZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djMyem0xNDQgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di01NmMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djU2em0xNDQgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di01NmMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djU2em0xMjggMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtNjRjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djMyem0wIDE0NEg2NGMtMzUuMzQgMC02NCAyOC42NS02NCA2NHYzMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDQ0OGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2di0zMmMwLTM1LjM1LTI4LjY2LTY0LTY0LTY0em0tNDE2IDgwYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMnptMTQ0LThjMCAzMC45My0yNS4wNyA1Ni01NiA1NnMtNTYtMjUuMDctNTYtNTZ2LTI0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzguODQgMCAxNiA3LjE2IDE2IDE2djI0em0xNDQgMGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtMjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MjR6bTEyOCA4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVldGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTQ0IDBIOTZDNDIuOTggMCAwIDQyLjk4IDAgOTZ2MzIwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZoNDQ4YzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnpNMTYwIDM2OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4cy00OC0yMS40OS00OC00OHYtNjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoNjRjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NjR6bTAtMTI4YzAgOC44NC03LjE2IDE2LTE2IDE2SDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OHY2NHptMTQ0IDEyMGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtNTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NTZ6bTAtMTIwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTg4YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2ODh6bTE0NCAxMjBjMCAzMC45My0yNS4wNyA1Ni01NiA1NnMtNTYtMjUuMDctNTYtNTZ2LTU2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzguODQgMCAxNiA3LjE2IDE2IDE2djU2em0wLTEyMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di04OGMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djg4em0xMjggMTI4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di02NGMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY2NHptMC0xMjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTY0Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OHY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVtcGVyYXR1cmVIaWdoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwYy01Mi45IDAtOTYgNDMuMS05NiA5NnM0My4xIDk2IDk2IDk2IDk2LTQzLjEgOTYtOTYtNDMuMS05Ni05Ni05NnptMCAxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0tMTYwLTE2QzI1NiA1MC4xIDIwNS45IDAgMTQ0IDBTMzIgNTAuMSAzMiAxMTJ2MTY2LjVDMTIuMyAzMDMuMiAwIDMzNCAwIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzQtMTIuMy02NC45LTMyLTg5LjVWMTEyek0xNDQgNDQ4Yy00NC4xIDAtODAtMzUuOS04MC04MCAwLTI1LjUgMTIuMi00OC45IDMyLTYzLjhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTkyLjJjMTkuOCAxNC44IDMyIDM4LjMgMzIgNjMuOCAwIDQ0LjEtMzUuOSA4MC04MCA4MHptMTYtMTI1LjFWMTEyYzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djIxMC45Yy0xOC42IDYuNi0zMiAyNC4yLTMyIDQ1LjEgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTIwLjktMTMuNC0zOC41LTMyLTQ1LjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRlbXBlcmF0dXJlTG93IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQxNiAwYy01Mi45IDAtOTYgNDMuMS05NiA5NnM0My4xIDk2IDk2IDk2IDk2LTQzLjEgOTYtOTYtNDMuMS05Ni05Ni05NnptMCAxMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0tMTYwLTE2QzI1NiA1MC4xIDIwNS45IDAgMTQ0IDBTMzIgNTAuMSAzMiAxMTJ2MTY2LjVDMTIuMyAzMDMuMiAwIDMzNCAwIDM2OGMwIDc5LjUgNjQuNSAxNDQgMTQ0IDE0NHMxNDQtNjQuNSAxNDQtMTQ0YzAtMzQtMTIuMy02NC45LTMyLTg5LjVWMTEyek0xNDQgNDQ4Yy00NC4xIDAtODAtMzUuOS04MC04MCAwLTI1LjUgMTIuMi00OC45IDMyLTYzLjhWMTEyYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTkyLjJjMTkuOCAxNC44IDMyIDM4LjMgMzIgNjMuOCAwIDQ0LjEtMzUuOSA4MC04MCA4MHptMTYtMTI1LjFWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djE4LjljLTE4LjYgNi42LTMyIDI0LjItMzIgNDUuMSAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtMjAuOS0xMy40LTM4LjUtMzItNDUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVuZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDE2MEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjU2YzAgNi42IDUuNCAxMiAxMiAxMmgxNDB2MjI4YzAgNi42IDUuNCAxMiAxMiAxMmg1NmM2LjYgMCAxMi01LjQgMTItMTJWMjQwaDE0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTU2YzAtNi42LTUuNC0xMi0xMi0xMnptMC0xMjhIMTJDNS40IDMyIDAgMzcuNCAwIDQ0djU2YzAgNi42IDUuNCAxMiAxMiAxMmgzNjBjNi42IDAgMTItNS40IDEyLTEyVjQ0YzAtNi42LTUuNC0xMi0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGVybWluYWwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU3Ljk4MSAyNzIuOTcxTDYzLjYzOCA0NjcuMzE0Yy05LjM3MyA5LjM3My0yNC41NjkgOS4zNzMtMzMuOTQxIDBMNy4wMjkgNDQ0LjY0N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTYxLjAxMSAyNTYgNi45OSAxMDEuMjU1Yy05LjMzNS05LjM3OS05LjMxNy0yNC41NDQuMDQtMzMuOTAxbDIyLjY2Ny0yMi42NjdjOS4zNzMtOS4zNzMgMjQuNTY5LTkuMzczIDMzLjk0MSAwTDI1Ny45ODEgMjM5LjAzYzkuMzczIDkuMzcyIDkuMzczIDI0LjU2OCAwIDMzLjk0MXpNNjQwIDQ1NnYtMzJjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDMxMmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djMyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZXh0SGVpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNCAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djk2YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmg1NnYzMDRIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTYwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtNDBWMTEyaDU2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2em0yNTYgMzM2aC00OFYxNDRoNDhjMTQuMzEgMCAyMS4zMy0xNy4zMSAxMS4zMS0yNy4zMWwtODAtODBhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgODBDMzc5LjM2IDEyNiAzODQuMzYgMTQ0IDQwMCAxNDRoNDh2MjI0aC00OGMtMTQuMzEgMC0yMS4zMiAxNy4zMS0xMS4zMSAyNy4zMWw4MCA4MGExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTgwQzU4MC42NCAzODYgNTc1LjY0IDM2OCA1NjAgMzY4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUZXh0V2lkdGggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2ODBhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTE2aDEyMHYxMTJoLTI0YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTI0VjExMmgxMjB2MTZhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bS02OC42OSAyNjAuNjlDMzU0IDI4My4zNiAzMzYgMjg4LjM2IDMzNiAzMDR2NDhIMTEydi00OGMwLTE0LjMxLTE3LjMxLTIxLjMyLTI3LjMxLTExLjMxbC04MCA4MGExNiAxNiAwIDAgMCAwIDIyLjYybDgwIDgwQzk0IDQ4NC42NCAxMTIgNDc5LjY0IDExMiA0NjR2LTQ4aDIyNHY0OGMwIDE0LjMxIDE3LjMxIDIxLjMzIDI3LjMxIDExLjMxbDgwLTgwYTE2IDE2IDAgMCAwIDAtMjIuNjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoTGFyZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDMyaDE5MmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MTYwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyOTZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFY1NmMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjR6bS04MCAwSDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTAgMjk2djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyOTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTI5NiAxODRoMTkyYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyOTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI5NmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoTGlzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDkuMzMzIDIxNnY4MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHYtODBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDEwMS4zMzNjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0ek0wIDM3NnY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0ek0xMjUuMzMzIDMySDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6bTgwIDQ0OEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHptLTI0LTQyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0em0yNCAyNjRINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OS4zMzMgNTZ2ODBjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWNTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDEwMS4zMzNjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0em0xODEuMzM0IDI0MHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTYgMCAyNC4wMDEtMTAuNzQ1IDI0LjAwMS0yNHptMzItMjQwdjgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgzODYuNjY3Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bS0zMiA4MFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NiAwIDI0LjAwMS0xMC43NDUgMjQuMDAxLTI0em0tMjA1LjMzNCA1NkgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek0wIDM3NnY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0em0zODYuNjY3LTU2SDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgzODYuNjY3Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0em0wIDE2MEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzg2LjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHpNMTgxLjMzMyAzNzZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVhdGVyTWFza3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA2Ljg2IDI0NS4xNWMtMzUuODggMTAuNDUtNTkuOTUgNDEuMi01Ny41MyA3NC4xIDExLjQtMTIuNzIgMjguODEtMjMuNyA0OS45LTMwLjkybDcuNjMtNDMuMTh6TTk1LjgxIDI5NUw2NC4wOCAxMTUuNDljLS4yOS0xLjYyLjI4LTIuNjIuMjQtMi42NSA1Ny43Ni0zMi4wNiAxMjMuMTItNDkuMDEgMTg5LjAxLTQ5LjAxIDEuNjEgMCAzLjIzLjE3IDQuODUuMTkgMTMuOTUtMTMuNDcgMzEuNzMtMjIuODMgNTEuNTktMjYgMTguODktMy4wMiAzOC4wNS00LjU1IDU3LjE4LTUuMzItOS45OS0xMy45NS0yNC40OC0yNC4yMy00MS43Ny0yN0MzMDEuMjcgMS44OSAyNzcuMjQgMCAyNTMuMzIgMCAxNzYuNjYgMCAxMDEuMDIgMTkuNDIgMzMuMiA1Ny4wNiA5LjAzIDcwLjQ4LTMuOTIgOTguNDggMS4wNSAxMjYuNThsMzEuNzMgMTc5LjUxYzE0LjIzIDgwLjUyIDEzNi4zMyAxNDIuMDggMjA0LjQ1IDE0Mi4wOCAzLjU5IDAgNi43NS0uNDYgMTAuMDEtLjgtMTMuNTItMTcuMDgtMjguOTQtNDAuNDgtMzkuNS02Ny41OC00Ny42MS0xMi45OC0xMDYuMDYtNTEuNjItMTExLjkzLTg0Ljc5em05Ny41NS0xMzcuNDZjLS43My00LjEyLTIuMjMtNy44Ny00LjA3LTExLjQtOC4yNSA4LjkxLTIwLjY3IDE1Ljc1LTM1LjMyIDE4LjMyLTE0LjY1IDIuNTgtMjguNjcuNC0zOS40OC01LjE3LS41MiAzLjk0LS42NCA3Ljk4LjA5IDEyLjEgMy44NCAyMS43IDI0LjU4IDM2LjE5IDQ2LjM0IDMyLjM3IDIxLjc1LTMuODIgMzYuMjgtMjQuNTIgMzIuNDQtNDYuMjJ6TTYwNi44IDEyMC45Yy04OC45OC00OS4zOC0xOTEuNDMtNjcuNDEtMjkxLjk4LTUxLjM1LTI3LjMxIDQuMzYtNDkuMDggMjYuMjYtNTQuMDQgNTQuMzZsLTMxLjczIDE3OS41MWMtMTUuMzkgODcuMDUgOTUuMjggMTk2LjI3IDE1OC4zMSAyMDcuMzUgNjMuMDMgMTEuMDkgMjA0LjQ3LTUzLjc5IDIxOS44Ni0xNDAuODRsMzEuNzMtMTc5LjUxYzQuOTctMjguMTEtNy45OC01Ni4xMS0zMi4xNS02OS41MnptLTI3My4yNCA5Ni44YzMuODQtMjEuNyAyNC41OC0zNi4xOSA0Ni4zNC0zMi4zNiAyMS43NiAzLjgzIDM2LjI4IDI0LjUyIDMyLjQ1IDQ2LjIyLS43MyA0LjEyLTIuMjMgNy44Ny00LjA3IDExLjQtOC4yNS04LjkxLTIwLjY3LTE1Ljc1LTM1LjMyLTE4LjMyLTE0LjY1LTIuNTgtMjguNjctLjQtMzkuNDggNS4xNy0uNTMtMy45NS0uNjUtNy45OS4wOC0xMi4xMXptNzAuNDcgMTk4Ljc2Yy01NS42OC05Ljc5LTkzLjUyLTU5LjI3LTg5LjA0LTExMi45IDIwLjYgMjUuNTQgNTYuMjEgNDYuMTcgOTkuNDkgNTMuNzggNDMuMjggNy42MSA4My44Mi4zNyAxMTEuOTMtMTYuNi0xNC4xOCA1MS45NC02Ni43MSA4NS41MS0xMjIuMzggNzUuNzJ6bTEzMC4zLTE1MS4zNGMtOC4yNS04LjkxLTIwLjY4LTE1Ljc1LTM1LjMzLTE4LjMyLTE0LjY1LTIuNTgtMjguNjctLjQtMzkuNDggNS4xNy0uNTItMy45NC0uNjQtNy45OC4wOS0xMi4xIDMuODQtMjEuNyAyNC41OC0zNi4xOSA0Ni4zNC0zMi4zNyAyMS43NSAzLjgzIDM2LjI4IDI0LjUyIDMyLjQ1IDQ2LjIyLS43MyA0LjEzLTIuMjMgNy44OC00LjA3IDExLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyRW1wdHkgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTM1LjM0NiAyOC42NTQtNjQgNjQtNjRzNjQgMjguNjU0IDY0IDY0em0zMi04NC42NTNjMTkuOTEyIDIyLjU2MyAzMiA1Mi4xOTQgMzIgODQuNjUzIDAgNzAuNjk2LTU3LjMwMyAxMjgtMTI4IDEyOC0uMjk5IDAtLjYwOS0uMDAxLS45MDktLjAwM0M1Ni43ODkgNTExLjUwOS0uMzU3IDQ1My42MzYuMDAyIDM4My4zMzMuMTY2IDM1MS4xMzUgMTIuMjI1IDMyMS43NTUgMzIgMjk5LjM0N1Y5NmMwLTUzLjAxOSA0Mi45ODEtOTYgOTYtOTZzOTYgNDIuOTgxIDk2IDk2djIwMy4zNDd6TTIwOCAzODRjMC0zNC4zMzktMTkuMzctNTIuMTktMzItNjYuNTAyVjk2YzAtMjYuNDY3LTIxLjUzMy00OC00OC00OFM4MCA2OS41MzMgODAgOTZ2MjIxLjQ5OGMtMTIuNzMyIDE0LjQyOC0zMS44MjUgMzIuMS0zMS45OTkgNjYuMDgtLjIyNCA0My44NzYgMzUuNTYzIDgwLjExNiA3OS40MjMgODAuNDJMMTI4IDQ2NGM0NC4xMTIgMCA4MC0zNS44ODggODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyRnVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgOTZjMC01My4wMTktNDIuOTgxLTk2LTk2LTk2UzMyIDQyLjk4MSAzMiA5NnYyMDMuMzQ3QzEyLjIyNSAzMjEuNzU2LjE2NiAzNTEuMTM2LjAwMiAzODMuMzMzYy0uMzU5IDcwLjMwMyA1Ni43ODcgMTI4LjE3NiAxMjcuMDg5IDEyOC42NjQuMjk5LjAwMi42MS4wMDMuOTA5LjAwMyA3MC42OTggMCAxMjgtNTcuMzA0IDEyOC0xMjggMC0zMi40NTktMTIuMDg4LTYyLjA5LTMyLTg0LjY1M1Y5NnptLTk2IDM2OGwtLjU3Ni0uMDAyYy00My44Ni0uMzA0LTc5LjY0Ny0zNi41NDQtNzkuNDIzLTgwLjQyLjE3My0zMy45OCAxOS4yNjYtNTEuNjUyIDMxLjk5OS02Ni4wOFY5NmMwLTI2LjQ2NyAyMS41MzMtNDggNDgtNDhzNDggMjEuNTMzIDQ4IDQ4djIyMS40OThjMTIuNjMgMTQuMzEyIDMyIDMyLjE2NCAzMiA2Ni41MDIgMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwem02NC04MGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1Y5NmMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjIzMi41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1YyMjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnYxMDQuNTgzYzE5LjEyNCAxMS4wNjggMzIgMzEuNzMyIDMyIDU1LjQxN3ptMzItODQuNjUzYzE5LjkxMiAyMi41NjMgMzIgNTIuMTk0IDMyIDg0LjY1MyAwIDcwLjY5Ni01Ny4zMDMgMTI4LTEyOCAxMjgtLjI5OSAwLS42MDktLjAwMS0uOTA5LS4wMDNDNTYuNzg5IDUxMS41MDktLjM1NyA0NTMuNjM2LjAwMiAzODMuMzMzLjE2NiAzNTEuMTM1IDEyLjIyNSAzMjEuNzU1IDMyIDI5OS4zNDdWOTZjMC01My4wMTkgNDIuOTgxLTk2IDk2LTk2czk2IDQyLjk4MSA5NiA5NnYyMDMuMzQ3ek0yMDggMzg0YzAtMzQuMzM5LTE5LjM3LTUyLjE5LTMyLTY2LjUwMlY5NmMwLTI2LjQ2Ny0yMS41MzMtNDgtNDgtNDhTODAgNjkuNTMzIDgwIDk2djIyMS40OThjLTEyLjczMiAxNC40MjgtMzEuODI1IDMyLjEtMzEuOTk5IDY2LjA4LS4yMjQgNDMuODc2IDM1LjU2MyA4MC4xMTYgNzkuNDIzIDgwLjQyTDEyOCA0NjRjNDQuMTEyIDAgODAtMzUuODg4IDgwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaGVybW9tZXRlclF1YXJ0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI1NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1YyODhjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnY0MC41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3em0zMi04NC42NTNjMTkuOTEyIDIyLjU2MyAzMiA1Mi4xOTQgMzIgODQuNjUzIDAgNzAuNjk2LTU3LjMwMyAxMjgtMTI4IDEyOC0uMjk5IDAtLjYwOS0uMDAxLS45MDktLjAwM0M1Ni43ODkgNTExLjUwOS0uMzU3IDQ1My42MzYuMDAyIDM4My4zMzMuMTY2IDM1MS4xMzUgMTIuMjI1IDMyMS43NTUgMzIgMjk5LjM0N1Y5NmMwLTUzLjAxOSA0Mi45ODEtOTYgOTYtOTZzOTYgNDIuOTgxIDk2IDk2djIwMy4zNDd6TTIwOCAzODRjMC0zNC4zMzktMTkuMzctNTIuMTktMzItNjYuNTAyVjk2YzAtMjYuNDY3LTIxLjUzMy00OC00OC00OFM4MCA2OS41MzMgODAgOTZ2MjIxLjQ5OGMtMTIuNzMyIDE0LjQyOC0zMS44MjUgMzIuMS0zMS45OTkgNjYuMDgtLjIyNCA0My44NzYgMzUuNTYzIDgwLjExNiA3OS40MjMgODAuNDJMMTI4IDQ2NGM0NC4xMTIgMCA4MC0zNS44ODggODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRoZXJtb21ldGVyVGhyZWVRdWFydGVycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjU2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NC0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjQgMC0yMy42ODUgMTIuODc2LTQ0LjM0OSAzMi01NS40MTdWMTYwYzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJ2MTY4LjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGhlcm1vbWV0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDc2LjggMjAuNGMtMzcuNS0zMC43LTk1LjUtMjYuMy0xMzEuOSAxMC4ybC00NS43IDQ2IDUwLjUgNTAuNWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTUwLjQtNTAuNS00NS4xIDQ1LjQgNTAuMyA1MC40YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwyMDkgMTY3LjRsLTQ1LjEgNDUuNEwyMTQgMjYzYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtNTAuMS01MC4yTDk2IDI4MS4xVjM4Mkw3IDQ3MWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjkgOS40IDkuNCAyNC42IDkuNCAzMy45IDBsODktODloOTkuOUw0ODQgMTYyLjZjMzQuOS0zNC45IDQyLjItMTAxLjUtNy4yLTE0Mi4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaHVtYnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgNTZ2MjQwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg4MGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2em00MCAyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0czI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0em0yNzIgMjU2Yy0yMC4xODMgMC0yOS40ODUtMzkuMjkzLTMzLjkzMS01Ny43OTUtNS4yMDYtMjEuNjY2LTEwLjU4OS00NC4wNy0yNS4zOTMtNTguOTAyLTMyLjQ2OS0zMi41MjQtNDkuNTAzLTczLjk2Ny04OS4xMTctMTEzLjExMWExMS45OCAxMS45OCAwIDAgMS0zLjU1OC04LjUyMVY1OS45MDFjMC02LjU0MSA1LjI0My0xMS44NzggMTEuNzgzLTExLjk5OCAxNS44MzEtLjI5IDM2LjY5NC05LjA3OSA1Mi42NTEtMTYuMTc4QzI1Ni4xODkgMTcuNTk4IDI5NS43MDkuMDE3IDM0My45OTUgMGgyLjg0NGM0Mi43NzcgMCA5My4zNjMuNDEzIDExMy43NzQgMjkuNzM3IDguMzkyIDEyLjA1NyAxMC40NDYgMjcuMDM0IDYuMTQ4IDQ0LjYzMiAxNi4zMTIgMTcuMDUzIDI1LjA2MyA0OC44NjMgMTYuMzgyIDc0Ljc1NyAxNy41NDQgMjMuNDMyIDE5LjE0MyA1Ni4xMzIgOS4zMDggNzkuNDY5bC4xMS4xMWMxMS44OTMgMTEuOTQ5IDE5LjUyMyAzMS4yNTkgMTkuNDM5IDQ5LjE5Ny0uMTU2IDMwLjM1Mi0yNi4xNTcgNTguMDk4LTU5LjU1MyA1OC4wOThIMzUwLjcyM0MzNTguMDMgMzY0LjM0IDM4NCAzODguMTMyIDM4NCA0MzAuNTQ4IDM4NCA1MDQgMzM2IDUxMiAzMTIgNTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUaHVtYnNVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDQgMjI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MjQwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg4MGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjQ4YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNNjQgNDcyYy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRzMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjR6TTM4NCA4MS40NTJjMCA0Mi40MTYtMjUuOTcgNjYuMjA4LTMzLjI3NyA5NC41NDhoMTAxLjcyM2MzMy4zOTcgMCA1OS4zOTcgMjcuNzQ2IDU5LjU1MyA1OC4wOTguMDg0IDE3LjkzOC03LjU0NiAzNy4yNDktMTkuNDM5IDQ5LjE5N2wtLjExLjExYzkuODM2IDIzLjMzNyA4LjIzNyA1Ni4wMzctOS4zMDggNzkuNDY5IDguNjgxIDI1Ljg5NS0uMDY5IDU3LjcwNC0xNi4zODIgNzQuNzU3IDQuMjk4IDE3LjU5OCAyLjI0NCAzMi41NzUtNi4xNDggNDQuNjMyQzQ0MC4yMDIgNTExLjU4NyAzODkuNjE2IDUxMiAzNDYuODM5IDUxMmwtMi44NDUtLjAwMWMtNDguMjg3LS4wMTctODcuODA2LTE3LjU5OC0xMTkuNTYtMzEuNzI1LTE1Ljk1Ny03LjA5OS0zNi44MjEtMTUuODg3LTUyLjY1MS0xNi4xNzgtNi41NC0uMTItMTEuNzgzLTUuNDU3LTExLjc4My0xMS45OTh2LTIxMy43N2MwLTMuMiAxLjI4Mi02LjI3MSAzLjU1OC04LjUyMSAzOS42MTQtMzkuMTQ0IDU2LjY0OC04MC41ODcgODkuMTE3LTExMy4xMTEgMTQuODA0LTE0LjgzMiAyMC4xODgtMzcuMjM2IDI1LjM5My01OC45MDJDMjgyLjUxNSAzOS4yOTMgMjkxLjgxNyAwIDMxMiAwYzI0IDAgNzIgOCA3MiA4MS40NTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRodW1idGFjayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yOTguMDI4IDIxNC4yNjdMMjg1Ljc5MyA5NkgzMjhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEg1NkM0Mi43NDUgMCAzMiAxMC43NDUgMzIgMjR2NDhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDQyLjIwN0w4NS45NzIgMjE0LjI2N0MzNy40NjUgMjM2LjgyIDAgMjc3LjI2MSAwIDMyOGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTM2djEwNC4wMDdjMCAxLjI0Mi4yODkgMi40NjcuODQ1IDMuNTc4bDI0IDQ4YzIuOTQxIDUuODgyIDExLjM2NCA1Ljg5MyAxNC4zMTEgMGwyNC00OGE4LjAwOCA4LjAwOCAwIDAgMCAuODQ1LTMuNTc4VjM1MmgxMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0LS4wMDEtNTEuMTgzLTM3Ljk4My05MS40Mi04NS45NzMtMTEzLjczM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlja2V0QWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAxNjBoMzIwdjE5MkgxMjhWMTYwem00MDAgOTZjMCAyNi41MSAyMS40OSA0OCA0OCA0OHY5NmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4di05NmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4cy0yMS40OS00OC00OC00OHYtOTZjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHY5NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHptLTQ4LTEwNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMTIwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MjA4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGltZXNDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTIxLjYgMzEzLjFjNC43IDQuNyA0LjcgMTIuMyAwIDE3TDMzOCAzNzcuNmMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDI1NiAzMTJsLTY1LjEgNjUuNmMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDEzNC40IDMzOGMtNC43LTQuNy00LjctMTIuMyAwLTE3bDY1LjYtNjUtNjUuNi02NS4xYy00LjctNC43LTQuNy0xMi4zIDAtMTdsMzkuNi0zOS42YzQuNy00LjcgMTIuMy00LjcgMTcgMGw2NSA2NS43IDY1LjEtNjUuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsMzkuNiAzOS42YzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMTIgMjU2bDY1LjYgNjUuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM1MiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQyLjcyIDI1NmwxMDAuMDctMTAwLjA3YzEyLjI4LTEyLjI4IDEyLjI4LTMyLjE5IDAtNDQuNDhsLTIyLjI0LTIyLjI0Yy0xMi4yOC0xMi4yOC0zMi4xOS0xMi4yOC00NC40OCAwTDE3NiAxODkuMjggNzUuOTMgODkuMjFjLTEyLjI4LTEyLjI4LTMyLjE5LTEyLjI4LTQ0LjQ4IDBMOS4yMSAxMTEuNDVjLTEyLjI4IDEyLjI4LTEyLjI4IDMyLjE5IDAgNDQuNDhMMTA5LjI4IDI1NiA5LjIxIDM1Ni4wN2MtMTIuMjggMTIuMjgtMTIuMjggMzIuMTkgMCA0NC40OGwyMi4yNCAyMi4yNGMxMi4yOCAxMi4yOCAzMi4yIDEyLjI4IDQ0LjQ4IDBMMTc2IDMyMi43MmwxMDAuMDcgMTAwLjA3YzEyLjI4IDEyLjI4IDMyLjIgMTIuMjggNDQuNDggMGwyMi4yNC0yMi4yNGMxMi4yOC0xMi4yOCAxMi4yOC0zMi4xOSAwLTQ0LjQ4TDI0Mi43MiAyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRpbnRTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuODIgNDU4LjFMNDk0Ljk3IDM1MC43OGMuNTItNS41NyAxLjAzLTExLjE2IDEuMDMtMTYuODcgMC0xMTEuNzYtOTkuNzktMTUzLjM0LTE0Ni43OC0zMTEuODItNy45NC0yOC43OC00OS40NC0zMC4xMi01OC40NCAwLTE1LjUyIDUyLjM0LTM2Ljg3IDkxLjk2LTU4LjQ5IDEyNS42OEw0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzYgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40MS02Ljk3IDQuMTYtMTcuMDItMi44Mi0yMi40NXpNMTQ0IDMzMy45MUMxNDQgNDMyLjM1IDIyMi43MiA1MTIgMzIwIDUxMmM0NC43MSAwIDg1LjM3LTE2Ljk2IDExNi40LTQ0LjdMMTYyLjcyIDI1NS43OGMtMTEuNDEgMjMuNS0xOC43MiA0OC4zNS0xOC43MiA3OC4xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzUyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMDUuMjIgMjIuMDljLTcuOTQtMjguNzgtNDkuNDQtMzAuMTItNTguNDQgMEMxMDAuMDEgMTc5Ljg1IDAgMjIyLjcyIDAgMzMzLjkxIDAgNDMyLjM1IDc4LjcyIDUxMiAxNzYgNTEyczE3Ni03OS42NSAxNzYtMTc4LjA5YzAtMTExLjc1LTk5Ljc5LTE1My4zNC0xNDYuNzgtMzExLjgyek0xNzYgNDQ4Yy02MS43NSAwLTExMi01MC4yNS0xMTItMTEyIDAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZjMCA0NC4xMSAzNS44OSA4MCA4MCA4MCA4Ljg0IDAgMTYgNy4xNiAxNiAxNnMtNy4xNiAxNi0xNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVGlyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMzMuOCAxODkuN2w4MC00OGMxMS42LTYuOSAyNCA3LjcgMTUuNCAxOEwzNDMuNiAyMDhsMzMuNiA0MC4zYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjctNC43LTcuNy0xNS45IDAtMjAuNnptLTE2My0zMGMtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjggNC43IDcuOCAxNS45IDAgMjAuNmwtODAgNDhjLTExLjUgNi44LTI0LTcuNi0xNS40LTE4bDMzLjYtNDAuMy0zMy42LTQwLjN6TTI0OCAyODhjNTEuOSAwIDExNS4zIDQzLjggMTIzLjIgMTA2LjcgMS43IDEzLjYtOCAyNC42LTE3LjcgMjAuNC0yNS45LTExLjEtNjQuNC0xNy40LTEwNS41LTE3LjRzLTc5LjYgNi4zLTEwNS41IDE3LjRjLTkuOCA0LjItMTkuNC03LTE3LjctMjAuNEMxMzIuNyAzMzEuOCAxOTYuMSAyODggMjQ4IDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9nZ2xlT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCA2NEgxOTJDODUuOTYxIDY0IDAgMTQ5Ljk2MSAwIDI1NnM4NS45NjEgMTkyIDE5MiAxOTJoMTkyYzEwNi4wMzkgMCAxOTItODUuOTYxIDE5Mi0xOTJTNDkwLjAzOSA2NCAzODQgNjR6TTY0IDI1NmMwLTcwLjc0MSA1Ny4yNDktMTI4IDEyOC0xMjggNzAuNzQxIDAgMTI4IDU3LjI0OSAxMjggMTI4IDAgNzAuNzQxLTU3LjI0OSAxMjgtMTI4IDEyOC03MC43NDEgMC0xMjgtNTcuMjQ5LTEyOC0xMjh6bTMyMCAxMjhoLTQ4LjkwNWM2NS4yMTctNzIuODU4IDY1LjIzNi0xODMuMTIgMC0yNTZIMzg0YzcwLjc0MSAwIDEyOCA1Ny4yNDkgMTI4IDEyOCAwIDcwLjc0LTU3LjI0OSAxMjgtMTI4IDEyOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9nZ2xlT24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzg0IDY0SDE5MkM4NiA2NCAwIDE1MCAwIDI1NnM4NiAxOTIgMTkyIDE5MmgxOTJjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NHptMCAzMjBjLTcwLjggMC0xMjgtNTcuMy0xMjgtMTI4IDAtNzAuOCA1Ny4zLTEyOCAxMjgtMTI4IDcwLjggMCAxMjggNTcuMyAxMjggMTI4IDAgNzAuOC01Ny4zIDEyOC0xMjggMTI4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb2lsZXRQYXBlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTY0LDE5MlYzNjQuMTNjMCw0MS4xMi05Ljc1LDYyLjc1LTMxLjEyLDEyNi44N0ExNiwxNiwwLDAsMCw0OCw1MTJIMzI4Ljg2YTMxLjg3LDMxLjg3LDAsMCwwLDMwLjM4LTIxLjg3YzkuMzEtMjcuODMsMTgtNTMuMzUsMjIuMTgtODUuNTVsLTMxNi0yNDQuMjVDNjQuNTMsMTcwLjY2LDY0LDE4MS4xOSw2NCwxOTJaTTYzMy44Miw0NTguMDlsLTEwMi03OC44MUM1NzUuMjgsMzYwLjkxLDYwOCwyODQuMzIsNjA4LDE5Miw2MDgsODYsNTY1LDAsNTEyLDBzLTk2LDg2LTk2LDE5MmMwLDQyLDcsODAuNCwxOC40MywxMTJMMzg0LDI2NVYxOTJjMC04My42MiwyMy42My0xNTMuNSw2MC41LTE5MkgxNjBjLTIzLjMzLDAtNDQuNjMsMTYuODMtNjEuMjYsNDQuNTNMNDUuNDYsMy4zOEExNiwxNiwwLDAsMCwyMyw2LjE5TDMuMzcsMzEuNDVBMTYsMTYsMCwwLDAsNi4xOCw1My45MUw1OTQuNTQsNTA4LjYzQTE2LDE2LDAsMCwwLDYxNyw1MDUuODFsMTkuNjQtMjUuMjZBMTYsMTYsMCwwLDAsNjMzLjgyLDQ1OC4wOVpNNTEyLDI1NmMtMTcuNjMsMC0zMi0yOC42Mi0zMi02NHMxNC4zNy02NCwzMi02NCwzMiwyOC42MywzMiw2NFM1MjkuNjIsMjU2LDUxMiwyNTZaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvaWxldFBhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyOCAwQzc0Ljk4IDAgMzIgODUuOTYgMzIgMTkydjE3Mi4wN2MwIDQxLjEyLTkuOCA2Mi43Ny0zMS4xNyAxMjYuODdDLTIuNjIgNTAxLjMgNS4wOSA1MTIgMTYuMDEgNTEyaDI4MC45MmMxMy43NyAwIDI2LTguODEgMzAuMzYtMjEuODggMTIuODMtMzguNDggMjQuNzEtNzIuNCAyNC43MS0xMjYuMDVWMTkyYzAtODMuNiAyMy42Ny0xNTMuNTIgNjAuNDQtMTkySDEyOHpNOTYgMjI0Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnptNjQgMGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTY0IDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2em02NCAwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnpNNDgwIDBjLTUzLjAyIDAtOTYgODUuOTYtOTYgMTkyczQyLjk4IDE5MiA5NiAxOTIgOTYtODUuOTYgOTYtMTkyUzUzMy4wMiAwIDQ4MCAwem0wIDI1NmMtMTcuNjcgMC0zMi0yOC42NS0zMi02NHMxNC4zMy02NCAzMi02NCAzMiAyOC42NSAzMiA2NC0xNC4zMyA2NC0zMiA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9pbGV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA0OGM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDE2QzcuMiAwIDAgNy4yIDAgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDE2djE1Ni43QzExLjggMjE0LjggMCAyMjYuOSAwIDI0MGMwIDY3LjIgMzQuNiAxMjYuMiA4Ni44IDE2MC41bC0yMS40IDcwLjJDNTkuMSA0OTEuMiA3NC41IDUxMiA5NiA1MTJoMTkyYzIxLjUgMCAzNi45LTIwLjggMzAuNi00MS4zbC0yMS40LTcwLjJDMzQ5LjQgMzY2LjIgMzg0IDMwNy4yIDM4NCAyNDBjMC0xMy4xLTExLjgtMjUuMi0zMi0zNS4zVjQ4aDE2ek04MCA3MmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEg4OGMtNC40IDAtOC0zLjYtOC04Vjcyem0xMTIgMjAwYy03Ny4xIDAtMTM5LjYtMTQuMy0xMzkuNi0zMnM2Mi41LTMyIDEzOS42LTMyIDEzOS42IDE0LjMgMTM5LjYgMzItNjIuNSAzMi0xMzkuNiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9vbGJveCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDIuNjMgMjE0LjYzbC00NS4yNS00NS4yNWMtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0gzODRWODBjMC0yNi41MS0yMS40OS00OC00OC00OEgxNzZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2ODBINzcuMjVjLTguNDkgMC0xNi42MiAzLjM3LTIyLjYzIDkuMzdMOS4zNyAyMTQuNjNjLTYgNi05LjM3IDE0LjE0LTkuMzcgMjIuNjNWMzIwaDEyOHYtMTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTZoMTI4di0xNmMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNmgxMjh2LTgyLjc1YzAtOC40OC0zLjM3LTE2LjYyLTkuMzctMjIuNjJ6TTMyMCAxNjBIMTkyVjk2aDEyOHY2NHptNjQgMjA4YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2SDE5MnYxNmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2di0xNkgwdjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDQ4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2SDM4NHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVG9vbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAxLjEgMzk1LjdMMzg0IDI3OC42Yy0yMy4xLTIzLjEtNTcuNi0yNy42LTg1LjQtMTMuOUwxOTIgMTU4LjFWOTZMNjQgMCAwIDY0bDk2IDEyOGg2Mi4xbDEwNi42IDEwNi42Yy0xMy42IDI3LjgtOS4yIDYyLjMgMTMuOSA4NS40bDExNy4xIDExNy4xYzE0LjYgMTQuNiAzOC4yIDE0LjYgNTIuNyAwbDUyLjctNTIuN2MxNC41LTE0LjYgMTQuNS0zOC4yIDAtNTIuN3pNMzMxLjcgMjI1YzI4LjMgMCA1NC45IDExIDc0LjkgMzFsMTkuNCAxOS40YzE1LjgtNi45IDMwLjgtMTYuNSA0My44LTI5LjUgMzcuMS0zNy4xIDQ5LjctODkuMyAzNy45LTEzNi43LTIuMi05LTEzLjUtMTIuMS0yMC4xLTUuNWwtNzQuNCA3NC40LTY3LjktMTEuM0wzMzQgOTguOWw3NC40LTc0LjRjNi42LTYuNiAzLjQtMTcuOS01LjctMjAuMi00Ny40LTExLjctOTkuNi45LTEzNi42IDM3LjktMjguNSAyOC41LTQxLjkgNjYuMS00MS4yIDEwMy42bDgyLjEgODIuMWM4LjEtMS45IDE2LjUtMi45IDI0LjctMi45em0tMTAzLjkgODJsLTU2LjctNTYuN0wxOC43IDQwMi44Yy0yNSAyNS0yNSA2NS41IDAgOTAuNXM2NS41IDI1IDkwLjUgMGwxMjMuNi0xMjMuNmMtNy42LTE5LjktOS45LTQxLjYtNS02Mi43ek02NCA0NzJjLTEzLjIgMC0yNC0xMC44LTI0LTI0IDAtMTMuMyAxMC43LTI0IDI0LTI0czI0IDEwLjcgMjQgMjRjMCAxMy4yLTEwLjcgMjQtMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvb3RoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0My45OCA5Ni4yNWMtMTEuMDEtNDUuMjItNDcuMTEtODIuMDYtOTIuMDEtOTMuNzItMzIuMTktOC4zNi02MyA1LjEtODkuMTQgMjQuMzMtMy4yNSAyLjM5LTYuOTYgMy43My0xMC41IDUuNDhsMjguMzIgMTguMjFjNy40MiA0Ljc3IDkuNTggMTQuNjcgNC44IDIyLjExLTQuNDYgNi45NS0xNC4yNyA5Ljg2LTIyLjExIDQuOEwxNjIuODMgMTIuODRjLTIwLjctMTAuODUtNDMuMzgtMTYuNC02Ni44MS0xMC4zMS00NC45IDExLjY3LTgxIDQ4LjUtOTIuMDEgOTMuNzItMTAuMTMgNDEuNjItLjQyIDgwLjgxIDIxLjUgMTEwLjQzIDIzLjM2IDMxLjU3IDMyLjY4IDY4LjY2IDM2LjI5IDEwNy4zNSA0LjQgNDcuMTYgMTAuMzMgOTQuMTYgMjAuOTQgMTQwLjMybDcuOCAzMy45NWMzLjE5IDEzLjg3IDE1LjQ5IDIzLjcgMjkuNjcgMjMuNyAxMy45NyAwIDI2LjE1LTkuNTUgMjkuNTQtMjMuMTZsMzQuNDctMTM4LjQyYzQuNTYtMTguMzIgMjAuOTYtMzEuMTYgMzkuNzYtMzEuMTZzMzUuMiAxMi44NSAzOS43NiAzMS4xNmwzNC40NyAxMzguNDJjMy4zOSAxMy42MSAxNS41NyAyMy4xNiAyOS41NCAyMy4xNiAxNC4xOCAwIDI2LjQ4LTkuODMgMjkuNjctMjMuN2w3LjgtMzMuOTVjMTAuNjEtNDYuMTUgMTYuNTMtOTMuMTYgMjAuOTQtMTQwLjMyIDMuNjEtMzguNyAxMi45My03NS43OCAzNi4yOS0xMDcuMzUgMjEuOTUtMjkuNjEgMzEuNjYtNjguOCAyMS41My0xMTAuNDN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRvcmFoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMC4wNSAzNjYuNDhsMTcuNzItMjkuNjRoLTM1LjQ2em05OS4yMS0xNjZIMzgyLjRsMTguNDYgMzAuODJ6TTQ4IDBDMjEuNDkgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMTcuNjcgMjEuNDkgMzIgNDggMzJzNDgtMTQuMzMgNDgtMzJWMzJDOTYgMTQuMzMgNzQuNTEgMCA0OCAwem0xNzIuNzQgMzExLjVoMzYuODVsLTE4LjQ2LTMwLjgyem0xNjEuNzEgMGgzNi44NmwtMTguNDUtMzAuOHpNMTI4IDQ2NGgzODRWNDhIMTI4em02Ni43Ny0yNzguMTNhMjEuMjIgMjEuMjIgMCAwIDEgMTguNDgtMTAuNzFoNTkuNDVsMjkuMTMtNDguNzFhMjEuMTMgMjEuMTMgMCAwIDEgMTguMjItMTAuMzdBMjAuNzYgMjAuNzYgMCAwIDEgMzM4IDEyNi4yOWwyOS4yNSA0OC44Nmg1OS41MmEyMS4xMiAyMS4xMiAwIDAgMSAxOC4xIDMyTDQxNS42MyAyNTYgNDQ1IDMwNWEyMC42OSAyMC42OSAwIDAgMSAuMjQgMjEuMTIgMjEuMjUgMjEuMjUgMCAwIDEtMTguNDggMTAuNzJoLTU5LjQ3bC0yOS4xMyA0OC43YTIxLjEzIDIxLjEzIDAgMCAxLTE4LjE2IDEwLjQgMjAuNzkgMjAuNzkgMCAwIDEtMTgtMTAuMjJsLTI5LjI1LTQ4Ljg4aC01OS41YTIxLjExIDIxLjExIDAgMCAxLTE4LjEtMzJMMjI0LjM2IDI1NiAxOTUgMjA3YTIwLjcgMjAuNyAwIDAgMS0uMjMtMjEuMTN6TTU5MiAwYy0yNi41MSAwLTQ4IDE0LjMzLTQ4IDMydjQ0OGMwIDE3LjY3IDIxLjQ5IDMyIDQ4IDMyczQ4LTE0LjMzIDQ4LTMyVjMyYzAtMTcuNjctMjEuNDktMzItNDgtMzJ6TTMyMCAxNDUuNTNsLTE3Ljc4IDI5LjYyaDM1LjQ2em0tNjIuNDUgNTVoLTM2LjgxbDE4LjQ0IDMwLjh6bTI5LjU4IDExMWg2NS43OUwzODYuMDkgMjU2bC0zMy4yMy01NS41MmgtNjUuNzlMMjUzLjkgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUb3JpaUdhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzc2LjQ1IDMyaC0yNDAuOUEzMDMuMTcgMzAzLjE3IDAgMCAxIDAgMHY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMydjY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2aDI1NnYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNDh2LTY0aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMGEzMDMuMTcgMzAzLjE3IDAgMCAxLTEzNS41NSAzMnpNMTI4IDEyOGg5NnY2NGgtOTZ2LTY0em0yNTYgNjRoLTk2di02NGg5NnY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhY3RvciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MjggMzM2Yy00OC42IDAtODggMzkuNC04OCA4OHMzOS40IDg4IDg4IDg4IDg4LTM5LjQgODgtODgtMzkuNC04OC04OC04OHptMCAxMTJjLTEzLjIzIDAtMjQtMTAuNzctMjQtMjRzMTAuNzctMjQgMjQtMjQgMjQgMTAuNzcgMjQgMjQtMTAuNzcgMjQtMjQgMjR6bTgwLTI4OGgtNjR2LTQwLjJjMC0xNC4xMiA0LjctMjcuNzYgMTMuMTUtMzguODQgNC40Mi01LjggMy41NS0xNC4wNi0xLjMyLTE5LjQ5TDUzNC4yIDM3LjNjLTYuNjYtNy40NS0xOC4zMi02LjkyLTI0LjcuNzhDNDkwLjU4IDYwLjkgNDgwIDg5LjgxIDQ4MCAxMTkuOFYxNjBIMzc3LjY3TDMyMS41OCAyOS4xNEE0Ny45MTQgNDcuOTE0IDAgMCAwIDI3Ny40NSAwSDE0NGMtMjYuNDcgMC00OCAyMS41My00OCA0OHYxNDYuNTJjLTguNjMtNi43My0yMC45Ni02LjQ2LTI4Ljg5IDEuNDdMMzYgMjI3LjFjLTguNTkgOC41OS04LjU5IDIyLjUyIDAgMzEuMTFsNS4wNiA1LjA2Yy00Ljk5IDkuMjYtOC45NiAxOC44Mi0xMS45MSAyOC43MkgyMmMtMTIuMTUgMC0yMiA5Ljg1LTIyIDIydjQ0YzAgMTIuMTUgOS44NSAyMiAyMiAyMmg3LjE0YzIuOTYgOS45MSA2LjkyIDE5LjQ2IDExLjkxIDI4LjczbC01LjA2IDUuMDZjLTguNTkgOC41OS04LjU5IDIyLjUyIDAgMzEuMTFMNjcuMSA0NzZjOC41OSA4LjU5IDIyLjUyIDguNTkgMzEuMTEgMGw1LjA2LTUuMDZjOS4yNiA0Ljk5IDE4LjgyIDguOTYgMjguNzIgMTEuOTFWNDkwYzAgMTIuMTUgOS44NSAyMiAyMiAyMmg0NGMxMi4xNSAwIDIyLTkuODUgMjItMjJ2LTcuMTRjOS45LTIuOTUgMTkuNDYtNi45MiAyOC43Mi0xMS45MWw1LjA2IDUuMDZjOC41OSA4LjU5IDIyLjUyIDguNTkgMzEuMTEgMGwzMS4xMS0zMS4xMWM4LjU5LTguNTkgOC41OS0yMi41MiAwLTMxLjExbC01LjA2LTUuMDZjNC45OS05LjI2IDguOTYtMTguODIgMTEuOTEtMjguNzJIMzMwYzEyLjE1IDAgMjItOS44NSAyMi0yMnYtNmg4MC41NGMyMS45MS0yOC45OSA1Ni4zMi00OCA5NS40Ni00OCAxOC42NCAwIDM2LjA3IDQuNjEgNTEuOCAxMi4ybDUwLjgyLTUwLjgyYzYtNiA5LjM3LTE0LjE0IDkuMzctMjIuNjNWMTkyYy4wMS0xNy42Ny0xNC4zMi0zMi0zMS45OS0zMnpNMTc2IDQxNmMtNDQuMTggMC04MC0zNS44Mi04MC04MHMzNS44Mi04MCA4MC04MCA4MCAzNS44MiA4MCA4MC0zNS44MiA4MC04MCA4MHptMjItMjU2aC0zOFY2NGgxMDYuODlsNDEuMTUgOTZIMTk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFkZW1hcmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjYwLjYgOTZIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0My4xYzAgNi42IDUuNCAxMiAxMiAxMmg4NS4xVjQwNGMwIDYuNiA1LjQgMTIgMTIgMTJoNTQuM2M2LjYgMCAxMi01LjQgMTItMTJWMTYzLjFoODUuMWM2LjYgMCAxMi01LjQgMTItMTJWMTA4Yy4xLTYuNi01LjMtMTItMTEuOS0xMnpNNjQwIDQwM2wtMjQtMjk2Yy0uNS02LjItNS43LTExLTEyLTExaC02NS40Yy01LjEgMC05LjcgMy4zLTExLjMgOC4xbC00My44IDEyNy4xYy03LjIgMjAuNi0xNi4xIDUyLjgtMTYuMSA1Mi44aC0uOXMtOC45LTMyLjItMTYuMS01Mi44bC00My44LTEyNy4xYy0xLjctNC44LTYuMi04LjEtMTEuMy04LjFoLTY1LjRjLTYuMiAwLTExLjQgNC44LTEyIDExbC0yNC40IDI5NmMtLjYgNyA0LjkgMTMgMTIgMTNIMzYwYzYuMyAwIDExLjUtNC45IDEyLTExLjJsOS4xLTEzMi45YzEuOC0yNC4yIDAtNTMuNyAwLTUzLjdoLjlzMTAuNyAzMy42IDE3LjkgNTMuN2wzMC43IDg0LjdjMS43IDQuNyA2LjIgNy45IDExLjMgNy45aDUwLjNjNS4xIDAgOS42LTMuMiAxMS4zLTcuOWwzMC43LTg0LjdjNy4yLTIwLjEgMTcuOS01My43IDE3LjktNTMuN2guOXMtMS44IDI5LjUgMCA1My43bDkuMSAxMzIuOWMuNCA2LjMgNS43IDExLjIgMTIgMTEuMkg2MjhjNyAwIDEyLjUtNiAxMi0xM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhZmZpY0xpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4NCAxOTJoLTY0di0zNy44OGMzNy4yLTEzLjIyIDY0LTQ4LjM4IDY0LTkwLjEyaC02NFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDk2Qzc4LjMzIDAgNjQgMTQuMzMgNjQgMzJ2MzJIMGMwIDQxLjc0IDI2LjggNzYuOSA2NCA5MC4xMlYxOTJIMGMwIDQxLjc0IDI2LjggNzYuOSA2NCA5MC4xMlYzMjBIMGMwIDQyLjg0IDI4LjI1IDc4LjY5IDY2Ljk5IDkxLjA1Qzc5LjQyIDQ2OC43MiAxMzAuNiA1MTIgMTkyIDUxMnMxMTIuNTgtNDMuMjggMTI1LjAxLTEwMC45NUMzNTUuNzUgMzk4LjY5IDM4NCAzNjIuODQgMzg0IDMyMGgtNjR2LTM3Ljg4YzM3LjItMTMuMjIgNjQtNDguMzggNjQtOTAuMTJ6TTE5MiA0MTZjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTAtMTI4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4em0wLTEyOGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhaWxlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQsMzIwSDU0NFY4MGExNiwxNiwwLDAsMC0xNi0xNkgxNkExNiwxNiwwLDAsMCwwLDgwVjM2OGExNiwxNiwwLDAsMCwxNiwxNkg2NS42MWM3LjgzLTU0LjIxLDU0LTk2LDExMC4zOS05NnMxMDIuNTYsNDEuNzksMTEwLjM5LDk2SDYyNGExNiwxNiwwLDAsMCwxNi0xNlYzMzZBMTYsMTYsMCwwLDAsNjI0LDMyMFpNOTYsMjQzLjY4YTE3Ni4yOSwxNzYuMjksMCwwLDAtMzIsMjAuNzFWMTM2YTgsOCwwLDAsMSw4LThIODhhOCw4LDAsMCwxLDgsOFptOTYtMTguNTRjLTUuMzEtLjQ5LTEwLjU3LTEuMTQtMTYtMS4xNHMtMTAuNjkuNjUtMTYsMS4xNFYxMzZhOCw4LDAsMCwxLDgtOGgxNmE4LDgsMCwwLDEsOCw4Wm05NiwzOS4yNWExNzYuMjksMTc2LjI5LDAsMCwwLTMyLTIwLjcxVjEzNmE4LDgsMCwwLDEsOC04aDE2YTgsOCwwLDAsMSw4LDhaTTM4NCwzMjBIMzUyVjEzNmE4LDgsMCwwLDEsOC04aDE2YTgsOCwwLDAsMSw4LDhabTk2LDBINDQ4VjEzNmE4LDgsMCwwLDEsOC04aDE2YTgsOCwwLDAsMSw4LDhabS0zMDQsMGE4MCw4MCwwLDEsMCw4MCw4MEE4MCw4MCwwLDAsMCwxNzYsMzIwWm0wLDExMmEzMiwzMiwwLDEsMSwzMi0zMkEzMiwzMiwwLDAsMSwxNzYsNDMyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFpbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggOTZ2MjU2YzAgNTEuODE1LTYxLjYyNCA5Ni0xMzAuMDIyIDk2bDYyLjk4IDQ5LjcyMUMzODYuOTA1IDUwMi40MTcgMzgzLjU2MiA1MTIgMzc2IDUxMkg3MmMtNy41NzggMC0xMC44OTItOS41OTQtNC45NTctMTQuMjc5TDEzMC4wMjIgNDQ4QzYxLjgyIDQ0OCAwIDQwMy45NTQgMCAzNTJWOTZDMCA0Mi45ODEgNjQgMCAxMjggMGgxOTJjNjUgMCAxMjggNDIuOTgxIDEyOCA5NnptLTQ4IDEzNlYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0tMTc2IDY0Yy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMwNS43IDAgMjg4IDBzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMjIzLjUtMTIuMWMtMi4zLTguNi0xMS0xMy42LTE5LjYtMTEuM2wtNDgwIDEyOGMtOC41IDIuMy0xMy42IDExLTExLjMgMTkuNkMyLjUgMTk1LjMgOC45IDIwMCAxNiAyMDBjMS40IDAgMi44LS4yIDQuMS0uNUwyNDAgMTQwLjhWMjI0SDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNzJ2LTkxLjdsMjI4LjEtNjAuOGM4LjYtMi4zIDEzLjYtMTEuMSAxMS40LTE5LjZ6TTE3NiAzODRIODB2LTk2aDk2djk2em0xNjAtOTZoOTZ2OTZoLTk2di05NnptLTMyIDB2OTZoLTk2di05Nmg5NnpNMTkyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbnNnZW5kZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ4MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY4IDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktODAuNyA4MC43QzI5NC41IDEwNC4xIDI2OC4yIDk2IDI0MCA5NmMtMjguMiAwLTU0LjUgOC4xLTc2LjcgMjIuMWwtMTYuNS0xNi41IDE5LjgtMTkuOGM0LjctNC43IDQuNy0xMi4zIDAtMTdsLTI4LjMtMjguM2MtNC43LTQuNy0xMi4zLTQuNy0xNyAwbC0xOS44IDE5LjgtMTktMTkgMTYuOS0xNi45QzEwNy4xIDEyLjkgMTAxLjcgMCA5MSAwSDEyQzUuNCAwIDAgNS40IDAgMTJ2NzljMCAxMC43IDEyLjkgMTYgMjAuNSA4LjVsMTYuOS0xNi45IDE5IDE5LTE5LjggMTkuOGMtNC43IDQuNy00LjcgMTIuMyAwIDE3bDI4LjMgMjguM2M0LjcgNC43IDEyLjMgNC43IDE3IDBsMTkuOC0xOS44IDE2LjUgMTYuNUMxMDQuMSAxODUuNSA5NiAyMTEuOCA5NiAyNDBjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwOGgtMzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MjhjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMjhoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di0yNy42YzY0LjEtMTQuNiAxMTItNzEuOSAxMTItMTQwLjQgMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w4MC43LTgwLjcgMTYuOSAxNi45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWMTJjMC02LjYtNS40LTEyLTEyLTEyek0yNDAgMzIwYy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhbnNnZW5kZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyIDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktODAuNyA4MC43QzE5OC41IDEwNC4xIDE3Mi4yIDk2IDE0NCA5NiA2NC41IDk2IDAgMTYwLjUgMCAyNDBjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwOEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYyOGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0yOGgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTI3LjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDgwLjctODAuNyAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAzMjBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0NjRhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOEgzMnptMjcyLTI1NmExNiAxNiAwIDAgMSAzMiAwdjIyNGExNiAxNiAwIDAgMS0zMiAwem0tOTYgMGExNiAxNiAwIDAgMSAzMiAwdjIyNGExNiAxNiAwIDAgMS0zMiAwem0tOTYgMGExNiAxNiAwIDAgMSAzMiAwdjIyNGExNiAxNiAwIDAgMS0zMiAwek00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRyYXNoUmVzdG9yZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMiA0NjRhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOEgzMnptOTEuMzEtMTcyLjhsODkuMzgtOTQuMjZhMTUuNDEgMTUuNDEgMCAwIDEgMjIuNjIgMGw4OS4zOCA5NC4yNmMxMC4wOCAxMC42MiAyLjk0IDI4LjgtMTEuMzIgMjguOEgyNTZ2MTEyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNlYzMjBoLTU3LjM3Yy0xNC4yNiAwLTIxLjQtMTguMTgtMTEuMzItMjguOHpNNDMyIDMySDMxMmwtOS40LTE4LjdBMjQgMjQgMCAwIDAgMjgxLjEgMEgxNjYuOGEyMy43MiAyMy43MiAwIDAgMC0yMS40IDEzLjNMMTM2IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcmFzaFJlc3RvcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTMuMiA0NjdhNDggNDggMCAwIDAgNDcuOSA0NWgyNDUuOGE0OCA0OCAwIDAgMCA0Ny45LTQ1TDQxNiAxMjhIMzJ6bTcwLjExLTE3NS44bDg5LjM4LTk0LjI2YTE1LjQxIDE1LjQxIDAgMCAxIDIyLjYyIDBsODkuMzggOTQuMjZjMTAuMDggMTAuNjIgMi45NCAyOC44LTExLjMyIDI4LjhIMjU2djExMmExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWMzIwaC01Ny4zN2MtMTQuMjYgMC0yMS40LTE4LjE4LTExLjMyLTI4Ljh6TTQzMiAzMkgzMTJsLTkuNC0xOC43QTI0IDI0IDAgMCAwIDI4MS4xIDBIMTY2LjhhMjMuNzIgMjMuNzIgMCAwIDAtMjEuNCAxMy4zTDEzNiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDMyIDMySDMxMmwtOS40LTE4LjdBMjQgMjQgMCAwIDAgMjgxLjEgMEgxNjYuOGEyMy43MiAyMy43MiAwIDAgMC0yMS40IDEzLjNMMTM2IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2ek01My4yIDQ2N2E0OCA0OCAwIDAgMCA0Ny45IDQ1aDI0NS44YTQ4IDQ4IDAgMCAwIDQ3LjktNDVMNDE2IDEyOEgzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJlZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzguMzEgMzc4LjQ5TDI5OC40MiAyODhoMzAuNjNjOS4wMSAwIDE2Ljk4LTUgMjAuNzgtMTMuMDYgMy44LTguMDQgMi41NS0xNy4yNi0zLjI4LTI0LjA1TDI2OC40MiAxNjBoMjguODljOS4xIDAgMTcuMy01LjM1IDIwLjg2LTEzLjYxIDMuNTItOC4xMyAxLjg2LTE3LjU5LTQuMjQtMjQuMDhMMjAzLjY2IDQuODNjLTYuMDMtNi40NS0xNy4yOC02LjQ1LTIzLjMyIDBMNzAuMDYgMTIyLjMxYy02LjEgNi40OS03Ljc1IDE1Ljk1LTQuMjQgMjQuMDhDNjkuMzggMTU0LjY1IDc3LjU5IDE2MCA4Ni42OSAxNjBoMjguODlsLTc4LjE0IDkwLjkxYy01LjgxIDYuNzgtNy4wNiAxNS45OS0zLjI3IDI0LjA0QzM3Ljk3IDI4MyA0NS45MyAyODggNTQuOTUgMjg4aDMwLjYzTDUuNjkgMzc4LjQ5Yy02IDYuNzktNy4zNiAxNi4wOS0zLjU2IDI0LjI2IDMuNzUgOC4wNSAxMiAxMy4yNSAyMS4wMSAxMy4yNUgxNjB2MjQuNDVsLTMwLjI5IDQ4LjRjLTUuMzIgMTAuNjQgMi40MiAyMy4xNiAxNC4zMSAyMy4xNmg5NS45NmMxMS44OSAwIDE5LjYzLTEyLjUyIDE0LjMxLTIzLjE2TDIyNCA0NDAuNDVWNDE2aDEzNi44NmM5LjAxIDAgMTcuMjYtNS4yIDIxLjAxLTEzLjI1IDMuOC04LjE3IDIuNDQtMTcuNDctMy41Ni0yNC4yNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVHJvcGh5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MiA2NEg0NDhWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIMTUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0MEgyNEMxMC43IDY0IDAgNzQuNyAwIDg4djU2YzAgMzUuNyAyMi41IDcyLjQgNjEuOSAxMDAuNyAzMS41IDIyLjcgNjkuOCAzNy4xIDExMCA0MS43QzIwMy4zIDMzOC41IDI0MCAzNjAgMjQwIDM2MHY3MmgtNDhjLTM1LjMgMC02NCAyMC43LTY0IDU2djEyYzAgNi42IDUuNCAxMiAxMiAxMmgyOTZjNi42IDAgMTItNS40IDEyLTEydi0xMmMwLTM1LjMtMjguNy01Ni02NC01NmgtNDh2LTcyczM2LjctMjEuNSA2OC4xLTczLjZjNDAuMy00LjYgNzguNi0xOSAxMTAtNDEuNyAzOS4zLTI4LjMgNjEuOS02NSA2MS45LTEwMC43Vjg4YzAtMTMuMy0xMC43LTI0LTI0LTI0ek05OS4zIDE5Mi44Qzc0LjkgMTc1LjIgNjQgMTU1LjYgNjQgMTQ0di0xNmg2NC4yYzEgMzIuNiA1LjggNjEuMiAxMi44IDg2LjItMTUuMS01LjItMjkuMi0xMi40LTQxLjctMjEuNHpNNTEyIDE0NGMwIDE2LjEtMTcuNyAzNi4xLTM1LjMgNDguOC0xMi41IDktMjYuNyAxNi4yLTQxLjggMjEuNCA3LTI1IDExLjgtNTMuNiAxMi44LTg2LjJINTEydjE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja0xvYWRpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAuMiAzNzUuNmMyLjMgOC41IDExLjEgMTMuNiAxOS42IDExLjNsMjE2LjQtNThjOC41LTIuMyAxMy42LTExLjEgMTEuMy0xOS42bC00OS43LTE4NS41Yy0yLjMtOC41LTExLjEtMTMuNi0xOS42LTExLjNMMTUxIDEzMy4zbDI0LjggOTIuNy02MS44IDE2LjUtMjQuOC05Mi43LTc3LjMgMjAuN0MzLjQgMTcyLjgtMS43IDE4MS42LjYgMTkwLjFsNDkuNiAxODUuNXpNMzg0IDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyMy42TDUuOSA0NTBjLTQuMyAxLjItNi44IDUuNi01LjYgOS44bDEyLjYgNDYuM2MxLjIgNC4zIDUuNiA2LjggOS44IDUuNmwzOTMuNy0xMDcuNEM0MTguOCA0NjQuMSA0NjcuNiA1MTIgNTI4IDUxMmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlYwSDM4NHptMTQ0IDQ0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrTW9uc3RlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQgMjI0aC0xNnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNzMuNkw0MTkuMjIgMjQuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMEgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djgwSDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNi43MmMyOS4yMS0zOC42NSA3NS4xLTY0IDEyNy4yOC02NHM5OC4wNyAyNS4zNSAxMjcuMjggNjRoNjUuNDVjMjkuMjEtMzguNjUgNzUuMS02NCAxMjcuMjgtNjRzOTguMDcgMjUuMzUgMTI3LjI4IDY0SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS0zMzYtOTZWNjRoODEuMjRsNTEuMiA2NEgyODh6bTMwNCAyMjRoLTUuMmMtMi4yLTcuMzMtNS4wNy0xNC4yOC04LjY1LTIwLjg5bDMuNjctMy42N2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMy42NyAzLjY3QTExMC44NSAxMTAuODUgMCAwIDAgNTEyIDI3Ny4yVjI3MmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djUuMmMtNy4zMyAyLjItMTQuMjggNS4wNy0yMC44OSA4LjY1bC0zLjY3LTMuNjdjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTIyLjYzIDIyLjYzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDMuNjcgMy42N0ExMTAuODUgMTEwLjg1IDAgMCAwIDM3My4yIDM1MkgzNjhjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDUuMmMyLjIgNy4zMyA1LjA3IDE0LjI4IDguNjUgMjAuODlsLTMuNjcgMy42N2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDMuNjctMy42N2M2LjYxIDMuNTcgMTMuNTcgNi40NSAyMC45IDguNjV2NS4yYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di01LjJjNy4zMy0yLjIgMTQuMjgtNS4wNyAyMC45LTguNjVsMy42NyAzLjY3YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjMtMjIuNjNjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMy42Ny0zLjY3YTExMC44NSAxMTAuODUgMCAwIDAgOC42NS0yMC44OWg1LjJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYy0uMDItOC44NC03LjE4LTE2LTE2LjAyLTE2em0tMTEyIDgwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4em0tMjA4LTgwaC01LjJjLTIuMi03LjMzLTUuMDctMTQuMjgtOC42NS0yMC44OWwzLjY3LTMuNjdjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTMuNjcgMy42N0ExMTAuODUgMTEwLjg1IDAgMCAwIDE5MiAyNzcuMlYyNzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY1LjJjLTcuMzMgMi4yLTE0LjI4IDUuMDctMjAuODkgOC42NWwtMy42Ny0zLjY3Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwTDU4LjE4IDMwNC44Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDMuNjcgMy42N2ExMTAuODUgMTEwLjg1IDAgMCAwLTguNjUgMjAuODlINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDUuMmMyLjIgNy4zMyA1LjA3IDE0LjI4IDguNjUgMjAuODlsLTMuNjcgMy42N2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDMuNjctMy42N2M2LjYxIDMuNTcgMTMuNTcgNi40NSAyMC45IDguNjV2NS4yYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di01LjJjNy4zMy0yLjIgMTQuMjgtNS4wNyAyMC45LTguNjVsMy42NyAzLjY3YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjMtMjIuNjNjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMy42Ny0zLjY3YTExMC44NSAxMTAuODUgMCAwIDAgOC42NS0yMC44OWg1LjJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyQzI4OCAzNTkuMTYgMjgwLjg0IDM1MiAyNzIgMzUyem0tMTEyIDgwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFUcnVja01vdmluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjEuMyAyMzcuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQ4MFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MCAyNi4zIDAgNDkuNC0xMi45IDY0LTMyLjQgMTQuNiAxOS42IDM3LjcgMzIuNCA2NCAzMi40IDQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtNS41LS42LTEwLjgtMS42LTE2aDE2My4yYy0xLjEgNS4yLTEuNiAxMC41LTEuNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDYyNGM4LjggMCAxNi03LjIgMTYtMTZ2LTg1LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTgwIDQzMmMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6bTEyOCAwYy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnptMjcyLTIyNGgzNy41YzQuMyAwIDguMyAxLjcgMTEuMyA0LjdsNDMuMyA0My4zSDQ4MHYtNDh6bTQ4IDIyNGMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrUGlja3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAyODhoLTE2di02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC00OEw0MTkuMjIgNTYuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMzJIMjU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOEg2NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDkuNjFjLS43NiA1LjI3LTEuNjEgMTAuNTItMS42MSAxNiAwIDYxLjg2IDUwLjE0IDExMiAxMTIgMTEyczExMi01MC4xNCAxMTItMTEyYzAtNS40OC0uODUtMTAuNzMtMS42MS0xNmg2Ny4yM2MtLjc2IDUuMjctMS42MSAxMC41Mi0xLjYxIDE2IDAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTJzMTEyLTUwLjE0IDExMi0xMTJjMC01LjQ4LS44NS0xMC43My0xLjYxLTE2SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTI4OCA5Nmg4MS4yNGw3Ni44IDk2SDI4OFY5NnpNMTc2IDQxNmMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHptMjg4IDBjLTI2LjQ3IDAtNDgtMjEuNTMtNDgtNDhzMjEuNTMtNDggNDgtNDggNDggMjEuNTMgNDggNDgtMjEuNTMgNDgtNDggNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRydWNrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAzNTJoLTE2VjI0My45YzAtMTIuNy01LjEtMjQuOS0xNC4xLTMzLjlMNDk0IDExMC4xYy05LTktMjEuMi0xNC4xLTMzLjktMTQuMUg0MTZWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDhINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djMyMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxNmMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek0xNjAgNDY0Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMzIwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em04MC0yMDhINDE2VjE0NGg0NC4xbDk5LjkgOTkuOVYyNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVRzaGlydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzEuMiA5Ni41TDQzNi41IDBDNDE2LjQgMjcuOCAzNzEuOSA0Ny4yIDMyMCA0Ny4yUzIyMy42IDI3LjggMjAzLjUgMEw4LjggOTYuNWMtNy45IDQtMTEuMSAxMy42LTcuMiAyMS41bDU3LjIgMTE0LjVjNCA3LjkgMTMuNiAxMS4xIDIxLjUgNy4ybDU2LjYtMjcuN2MxMC42LTUuMiAyMyAyLjUgMjMgMTQuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNi4zYzAtMTEuOCAxMi40LTE5LjYgMjMtMTQuNGw1Ni42IDI3LjdjNy45IDQgMTcuNS44IDIxLjUtNy4yTDYzOC4zIDExOGM0LTcuOS44LTE3LjYtNy4xLTIxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01LjM3IDEwMy44MjJjMTM4LjUzMi0xMzguNTMyIDM2Mi45MzYtMTM4LjMyNiA1MDEuMjYyIDAgNi4wNzggNi4wNzggNy4wNzQgMTUuNDk2IDIuNTgzIDIyLjY4MWwtNDMuMjE0IDY5LjEzOGExOC4zMzIgMTguMzMyIDAgMCAxLTIyLjM1NiA3LjMwNWwtODYuNDIyLTM0LjU2OWExOC4zMzUgMTguMzM1IDAgMCAxLTExLjQzNC0xOC44NDZMMzUxLjc0MSA5MGMtNjIuMTQ1LTIyLjQ1NC0xMzAuNjM2LTIxLjk4Ni0xOTEuNDgzIDBsNS45NTMgNTkuNTMyYTE4LjMzMSAxOC4zMzEgMCAwIDEtMTEuNDM0IDE4Ljg0NmwtODYuNDIzIDM0LjU2OGExOC4zMzQgMTguMzM0IDAgMCAxLTIyLjM1Ni03LjMwNUwyLjc4NyAxMjYuNTAyYTE4LjMzMyAxOC4zMzMgMCAwIDEgMi41ODMtMjIuNjh6TTk2IDMwOHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg0NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA5NnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg5MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6TTk2IDUwMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg0NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTI4OCAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDE0MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIzMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVR2IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU5MiAwSDQ4QTQ4IDQ4IDAgMCAwIDAgNDh2MzIwYTQ4IDQ4IDAgMCAwIDQ4IDQ4aDI0MHYzMkgxMTJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgzNTJ2LTMyaDI0MGE0OCA0OCAwIDAgMCA0OC00OFY0OGE0OCA0OCAwIDAgMC00OC00OHptLTE2IDM1Mkg2NFY2NGg1MTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJlbGxhQmVhY2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE1LjM4IDEzNi45bDEwMi4xMSAzNy4xOGMzNS4xOS04MS41NCA4Ni4yMS0xNDQuMjkgMTM5LTE3My43LTk1Ljg4LTQuODktMTg4Ljc4IDM2Ljk2LTI0OC41MyAxMTEuOC02LjY5IDguNC0yLjY2IDIxLjA1IDcuNDIgMjQuNzJ6bTEzMi4yNSA0OC4xNmwyMzguNDggODYuODNjMzUuNzYtMTIxLjM4IDE4LjctMjMxLjY2LTQyLjYzLTI1My45OC03LjQtMi43LTE1LjEzLTQtMjMuMDktNC01OC4wMi4wMS0xMjguMjcgNjkuMTctMTcyLjc2IDE3MS4xNXpNNTIxLjQ4IDYwLjVjNi4yMiAxNi4zIDEwLjgzIDM0LjYgMTMuMiA1NS4xOSA1Ljc0IDQ5Ljg5LTEuNDIgMTA4LjIzLTE4Ljk1IDE2Ni45OGwxMDIuNjIgMzcuMzZjMTAuMDkgMy42NyAyMS4zMS0zLjQzIDIxLjU3LTE0LjE3IDIuMzItOTUuNjktNDEuOTEtMTg3LjQ0LTExOC40NC0yNDUuMzZ6TTU2MCA0NDcuOThIMzIxLjA2TDM4NiAyNjkuNWwtNjAuMTQtMjEuOS03Mi45IDIwMC4zN0gxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTYuMDF2MzIuMDFDMCA1MDQuODMgNy4xNiA1MTIgMTYgNTEyaDU0NGM4Ljg0IDAgMTYtNy4xNyAxNi0xNi4wMXYtMzIuMDFjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVtYnJlbGxhIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU3NS43IDI4MC44QzU0Ny4xIDE0NC41IDQzNy4zIDYyLjYgMzIwIDQ5LjlWMzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzJ2MTcuOUMxMzguMyA2Mi42IDI5LjUgMTQ0LjUuMyAyODAuOGMtMi4yIDEwLjEgOC41IDIxLjMgMTguNyAxMS40IDUyLTU1IDEwNy43LTUyLjQgMTU4LjYgMzcgNS4zIDkuNSAxNC45IDguNiAxOS43IDAgMjAuMi0zNS40IDQ0LjktNzMuMiA5MC43LTczLjIgNTguNSAwIDg4LjIgNjguOCA5MC43IDczLjIgNC44IDguNiAxNC40IDkuNSAxOS43IDAgNTEtODkuNSAxMDcuMS05MS40IDE1OC42LTM3IDEwLjMgMTAgMjAuOS0xLjMgMTguNy0xMS40ek0yNTYgMzAxLjdWNDMyYzAgOC44LTcuMiAxNi0xNiAxNi03LjggMC0xMy4yLTUuMy0xNS4xLTEwLjctNS45LTE2LjctMjQuMS0yNS40LTQwLjgtMTkuNS0xNi43IDUuOS0yNS40IDI0LjItMTkuNSA0MC44IDExLjIgMzEuOSA0MS42IDUzLjMgNzUuNCA1My4zIDQ0LjEgMCA4MC0zNS45IDgwLTgwVjMwMS42Yy05LjEtNy45LTE5LjgtMTMuNi0zMi0xMy42LTEyLjMuMS0yMi40IDQuOC0zMiAxMy43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmRlcmxpbmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzIgNjRoMzJ2MTYwYzAgODguMjIgNzEuNzggMTYwIDE2MCAxNjBzMTYwLTcxLjc4IDE2MC0xNjBWNjRoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTZhMTYgMTYgMCAwIDAtMTYtMTZIMjcyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMydjE2MGE4MCA4MCAwIDAgMS0xNjAgMFY2NGgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNmExNiAxNiAwIDAgMC0xNi0xNkgzMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptNDAwIDM4NEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmRvQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NS41NDUgOGMtNjYuMjY5LjExOS0xMjYuNDM4IDI2LjIzMy0xNzAuODYgNjguNjg1TDQ4Ljk3MSA0MC45NzFDMzMuODUxIDI1Ljg1MSA4IDM2LjU1OSA4IDU3Ljk0MVYxOTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEzNC4wNTljMjEuMzgyIDAgMzIuMDktMjUuODUxIDE2Ljk3MS00MC45NzFsLTQxLjc1LTQxLjc1YzMwLjg2NC0yOC44OTkgNzAuODAxLTQ0LjkwNyAxMTMuMjMtNDUuMjczIDkyLjM5OC0uNzk4IDE3MC4yODMgNzMuOTc3IDE2OS40ODQgMTY5LjQ0MkM0MjMuMjM2IDM0OC4wMDkgMzQ5LjgxNiA0MjQgMjU2IDQyNGMtNDEuMTI3IDAtNzkuOTk3LTE0LjY3OC0xMTAuNjMtNDEuNTU2LTQuNzQzLTQuMTYxLTExLjkwNi0zLjkwOC0xNi4zNjguNTUzTDg5LjM0IDQyMi42NTljLTQuODcyIDQuODcyLTQuNjMxIDEyLjgxNS40ODIgMTcuNDMzQzEzMy43OTggNDc5LjgxMyAxOTIuMDc0IDUwNCAyNTYgNTA0YzEzNi45NjYgMCAyNDcuOTk5LTExMS4wMzMgMjQ4LTI0Ny45OThDNTA0LjAwMSAxMTkuMTkzIDM5Mi4zNTQgNy43NTUgMjU1LjU0NSA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmRvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxMi4zMzMgMjI0LjMzM0gxMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYxMkMwIDUuMzczIDUuMzczIDAgMTIgMGg0OGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjc4LjExMkMxMTcuNzczIDM5LjI3OSAxODQuMjYgNy40NyAyNTguMTc1IDguMDA3YzEzNi45MDYuOTk0IDI0Ni40NDggMTExLjYyMyAyNDYuMTU3IDI0OC41MzJDNTA0LjA0MSAzOTMuMjU4IDM5My4xMiA1MDQgMjU2LjMzMyA1MDRjLTY0LjA4OSAwLTEyMi40OTYtMjQuMzEzLTE2Ni41MS02NC4yMTUtNS4wOTktNC42MjItNS4zMzQtMTIuNTU0LS40NjctMTcuNDJsMzMuOTY3LTMzLjk2N2M0LjQ3NC00LjQ3NCAxMS42NjItNC43MTcgMTYuNDAxLS41MjVDMTcwLjc2IDQxNS4zMzYgMjExLjU4IDQzMiAyNTYuMzMzIDQzMmM5Ny4yNjggMCAxNzYtNzguNzE2IDE3Ni0xNzYgMC05Ny4yNjctNzguNzE2LTE3Ni0xNzYtMTc2LTU4LjQ5NiAwLTExMC4yOCAyOC40NzYtMTQyLjI3NCA3Mi4zMzNoOTguMjc0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdmVyc2FsQWNjZXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA0OGMxMTQuOTUzIDAgMjA4IDkzLjAyOSAyMDggMjA4IDAgMTE0Ljk1My05My4wMjkgMjA4LTIwOCAyMDgtMTE0Ljk1MyAwLTIwOC05My4wMjktMjA4LTIwOCAwLTExNC45NTMgOTMuMDI5LTIwOCAyMDgtMjA4bTAtNDBDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0wIDU2QzE0OS45NjEgNjQgNjQgMTQ5Ljk2MSA2NCAyNTZzODUuOTYxIDE5MiAxOTIgMTkyIDE5Mi04NS45NjEgMTkyLTE5MlMzNjIuMDM5IDY0IDI1NiA2NHptMCA0NGMxOS44ODIgMCAzNiAxNi4xMTggMzYgMzZzLTE2LjExOCAzNi0zNiAzNi0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2em0xMTcuNzQxIDk4LjAyM2MtMjguNzEyIDYuNzc5LTU1LjUxMSAxMi43NDgtODIuMTQgMTUuODA3Ljg1MSAxMDEuMDIzIDEyLjMwNiAxMjMuMDUyIDI1LjAzNyAxNTUuNjIxIDMuNjE3IDkuMjYtLjk1NyAxOS42OTgtMTAuMjE3IDIzLjMxNS05LjI2MSAzLjYxNy0xOS42OTktLjk1Ny0yMy4zMTYtMTAuMjE3LTguNzA1LTIyLjMwOC0xNy4wODYtNDAuNjM2LTIyLjI2MS03OC41NDloLTkuNjg2Yy01LjE2NyAzNy44NTEtMTMuNTM0IDU2LjIwOC0yMi4yNjIgNzguNTQ5LTMuNjE1IDkuMjU1LTE0LjA1IDEzLjgzNi0yMy4zMTUgMTAuMjE3LTkuMjYtMy42MTctMTMuODM0LTE0LjA1Ni0xMC4yMTctMjMuMzE1IDEyLjcxMy0zMi41NDEgMjQuMTg1LTU0LjU0MSAyNS4wMzctMTU1LjYyMS0yNi42MjktMy4wNTgtNTMuNDI4LTkuMDI3LTgyLjE0MS0xNS44MDctOC42LTIuMDMxLTEzLjkyNi0xMC42NDgtMTEuODk1LTE5LjI0OXMxMC42NDctMTMuOTI2IDE5LjI0OS0xMS44OTVjOTYuNjg2IDIyLjgyOSAxMjQuMjgzIDIyLjc4MyAyMjAuNzc1IDAgOC41OTktMi4wMyAxNy4yMTggMy4yOTQgMTkuMjQ5IDExLjg5NSAyLjAyOSA4LjYwMS0zLjI5NyAxNy4yMTktMTEuODk3IDE5LjI0OXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5pdmVyc2l0eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMTI4djE2YTggOCAwIDAgMS04IDhoLTI0djEyYzAgNi42MjctNS4zNzMgMTItMTIgMTJINjBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTEySDI0YTggOCAwIDAgMS04LTh2LTE2YTggOCAwIDAgMSA0Ljk0MS03LjM5MmwyMzItODhhNy45OTYgNy45OTYgMCAwIDEgNi4xMTggMGwyMzIgODhBOCA4IDAgMCAxIDQ5NiAxMjh6bS0yNCAzMDRINDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmE4IDggMCAwIDAgOCA4aDQ2NGE4IDggMCAwIDAgOC04di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTk2IDE5MnYxOTJINjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjBoNDE2di0yMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0zNlYxOTJoLTY0djE5MmgtNjRWMTkyaC02NHYxOTJoLTY0VjE5Mkg5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVW5saW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMwNC4wODMgNDA1LjkwN2M0LjY4NiA0LjY4NiA0LjY4NiAxMi4yODQgMCAxNi45NzFsLTQ0LjY3NCA0NC42NzRjLTU5LjI2MyA1OS4yNjItMTU1LjY5MyA1OS4yNjYtMjE0Ljk2MSAwLTU5LjI2NC01OS4yNjUtNTkuMjY0LTE1NS42OTYgMC0yMTQuOTZsNDQuNjc1LTQ0LjY3NWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBsMzkuNTk4IDM5LjU5OGM0LjY4NiA0LjY4NiA0LjY4NiAxMi4yODQgMCAxNi45NzFsLTQ0LjY3NSA0NC42NzRjLTI4LjA3MiAyOC4wNzMtMjguMDcyIDczLjc1IDAgMTAxLjgyMyAyOC4wNzIgMjguMDcyIDczLjc1IDI4LjA3MyAxMDEuODI0IDBsNDQuNjc0LTQ0LjY3NGM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBsMzkuNTk3IDM5LjU5OHptLTU2LjU2OC0yNjAuMjE2YzQuNjg2IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMGw0NC42NzQtNDQuNjc0YzI4LjA3Mi0yOC4wNzUgNzMuNzUtMjguMDczIDEwMS44MjQgMCAyOC4wNzIgMjguMDczIDI4LjA3MiA3My43NSAwIDEwMS44MjNsLTQ0LjY3NSA0NC42NzRjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwzOS41OTggMzkuNTk4YzQuNjg2IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMGw0NC42NzUtNDQuNjc1YzU5LjI2NS01OS4yNjUgNTkuMjY1LTE1NS42OTUgMC0yMTQuOTYtNTkuMjY2LTU5LjI2NC0xNTUuNjk1LTU5LjI2NC0yMTQuOTYxIDBsLTQ0LjY3NCA0NC42NzRjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwzOS41OTcgMzkuNTk4em0yMzQuODI4IDM1OS4yOGwyMi42MjctMjIuNjI3YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MUw2My41OTggNy4wMjljLTkuMzczLTkuMzczLTI0LjU2OS05LjM3My0zMy45NDEgMEw3LjAyOSAyOS42NTdjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWw0NDEuMzczIDQ0MS4zNzNjOS4zNzMgOS4zNzIgMjQuNTY5IDkuMzcyIDMzLjk0MSAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxvY2tBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDI1NkgxNTJWMTUyLjljMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2QzM3NiA2OCAzMDcuNS0uMyAyMjMuNSAwIDEzOS41LjMgNzIgNjkuNSA3MiAxNTMuNVYyNTZINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yNjQgNDA4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwdi00OGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVbmxvY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDI1NkgxNTJWMTUyLjljMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2QzM3NiA2OCAzMDcuNS0uMyAyMjMuNSAwIDEzOS41LjMgNzIgNjkuNSA3MiAxNTMuNVYyNTZINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVcGxvYWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjk2IDM4NGgtODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE5MmgtODcuN2MtMTcuOCAwLTI2LjctMjEuNS0xNC4xLTM0LjFMMjQyLjMgNS43YzcuNS03LjUgMTkuOC03LjUgMjcuMyAwbDE1Mi4yIDE1Mi4yYzEyLjYgMTIuNiAzLjcgMzQuMS0xNC4xIDM0LjFIMzIwdjE2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHptMjE2LTh2MTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTM2djhjMCAzMC45IDI1LjEgNTYgNTYgNTZoODBjMzAuOSAwIDU2LTI1LjEgNTYtNTZ2LThoMTM2YzEzLjMgMCAyNCAxMC43IDI0IDI0em0tMTI0IDg4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6bTY0IDBjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckFsdFNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44IDQ1OC4xTDM4OS42IDI2OS4zQzQzMy44IDI0NC43IDQ2NCAxOTguMSA0NjQgMTQ0IDQ2NCA2NC41IDM5OS41IDAgMzIwIDBjLTY3LjEgMC0xMjMgNDYuMS0xMzkgMTA4LjJMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRsNTg4LjQgNDU0LjdjNyA1LjQgMTcgNC4yIDIyLjUtMi44bDE5LjYtMjUuM2M1LjQtNi44IDQuMS0xNi45LTIuOS0yMi4zek0xOTguNCAzMjBDMTI0LjIgMzIwIDY0IDM4MC4yIDY0IDQ1NC40djkuNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzODIuMkwyNDUuOCAzMjBoLTQ3LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJBbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDI4OGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NFMzMzUuNSAwIDI1NiAwIDExMiA2NC41IDExMiAxNDRzNjQuNSAxNDQgMTQ0IDE0NHptMTI4IDMyaC01NS4xYy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2SDEyOEM1Ny4zIDMyMCAwIDM3Ny4zIDAgNDQ4djE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMTZjMC03MC43LTU3LjMtMTI4LTEyOC0xMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJBc3Ryb25hdXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjQgMjI0aDEzLjVjMjQuNyA1Ni41IDgwLjkgOTYgMTQ2LjUgOTZzMTIxLjgtMzkuNSAxNDYuNS05NkgzODRjOC44IDAgMTYtNy4yIDE2LTE2di05NmMwLTguOC03LjItMTYtMTYtMTZoLTEzLjVDMzQ1LjggMzkuNSAyODkuNiAwIDIyNCAwUzEwMi4yIDM5LjUgNzcuNSA5Nkg2NGMtOC44IDAtMTYgNy4yLTE2IDE2djk2YzAgOC44IDcuMiAxNiAxNiAxNnptNDAtODhjMC0yMi4xIDIxLjUtNDAgNDgtNDBoMTQ0YzI2LjUgMCA0OCAxNy45IDQ4IDQwdjI0YzAgNTMtNDMgOTYtOTYgOTZoLTQ4Yy01MyAwLTk2LTQzLTk2LTk2di0yNHptNzIgNzJsMTItMzYgMzYtMTItMzYtMTItMTItMzYtMTIgMzYtMzYgMTIgMzYgMTIgMTIgMzZ6bTE1MS42IDExMy40QzI5Ny43IDM0MC43IDI2Mi4yIDM1MiAyMjQgMzUycy03My43LTExLjMtMTAzLjYtMzAuNkM1Mi45IDMyOC41IDAgMzg1IDAgNDU0LjR2OS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDgwdi02NGMwLTE3LjcgMTQuMy0zMiAzMi0zMmgxMjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJ2NjRoODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTkuNmMwLTY5LjQtNTIuOS0xMjUuOS0xMjAuNC0xMzN6TTI3MiA0NDhjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptLTk2IDBjLTguOCAwLTE2IDcuMi0xNiAxNnY0OGgzMnYtNDhjMC04LjgtNy4yLTE2LTE2LTE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6bTMyMy0xMjguNGwtMjcuOC0yOC4xYy00LjYtNC43LTEyLjEtNC43LTE2LjgtLjFsLTEwNC44IDEwNC00NS41LTQ1LjhjLTQuNi00LjctMTIuMS00LjctMTYuOC0uMWwtMjguMSAyNy45Yy00LjcgNC42LTQuNyAxMi4xLS4xIDE2LjhsODEuNyA4Mi4zYzQuNiA0LjcgMTIuMSA0LjcgMTYuOC4xbDE0MS4zLTE0MC4yYzQuNi00LjcgNC43LTEyLjIuMS0xNi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgOTZjNDguNiAwIDg4IDM5LjQgODggODhzLTM5LjQgODgtODggODgtODgtMzkuNC04OC04OCAzOS40LTg4IDg4LTg4em0wIDM0NGMtNTguNyAwLTExMS4zLTI2LjYtMTQ2LjUtNjguMiAxOC44LTM1LjQgNTUuNi01OS44IDk4LjUtNTkuOCAyLjQgMCA0LjguNCA3LjEgMS4xIDEzIDQuMiAyNi42IDYuOSA0MC45IDYuOSAxNC4zIDAgMjgtMi43IDQwLjktNi45IDIuMy0uNyA0LjctMS4xIDcuMS0xLjEgNDIuOSAwIDc5LjcgMjQuNCA5OC41IDU5LjhDMzU5LjMgNDIxLjQgMzA2LjcgNDQ4IDI0OCA0NDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDbG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTYgMjI0Yy03OS42IDAtMTQ0IDY0LjQtMTQ0IDE0NHM2NC40IDE0NCAxNDQgMTQ0IDE0NC02NC40IDE0NC0xNDQtNjQuNC0xNDQtMTQ0LTE0NHptNjQgMTUwLjNjMCA1LjMtNC40IDkuNy05LjcgOS43aC02MC42Yy01LjMgMC05LjctNC40LTkuNy05Ljd2LTc2LjZjMC01LjMgNC40LTkuNyA5LjctOS43aDEyLjZjNS4zIDAgOS43IDQuNCA5LjcgOS43VjM1MmgzOC4zYzUuMyAwIDkuNyA0LjQgOS43IDkuN3YxMi42ek0zMjAgMzY4YzAtMjcuOCA2LjctNTQuMSAxOC4yLTc3LjUtOC0xLjUtMTYuMi0yLjUtMjQuNi0yLjVoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNDcuMWMtNDUuMy0zMS45LTc1LjEtODQuNS03NS4xLTE0NHptLTk2LTExMmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJDb2cgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjEwLjUgMzczLjNjMi42LTE0LjEgMi42LTI4LjUgMC00Mi42bDI1LjgtMTQuOWMzLTEuNyA0LjMtNS4yIDMuMy04LjUtNi43LTIxLjYtMTguMi00MS4yLTMzLjItNTcuNC0yLjMtMi41LTYtMy4xLTktMS40bC0yNS44IDE0LjljLTEwLjktOS4zLTIzLjQtMTYuNS0zNi45LTIxLjN2LTI5LjhjMC0zLjQtMi40LTYuNC01LjctNy4xLTIyLjMtNS00NS00LjgtNjYuMiAwLTMuMy43LTUuNyAzLjctNS43IDcuMXYyOS44Yy0xMy41IDQuOC0yNiAxMi0zNi45IDIxLjNsLTI1LjgtMTQuOWMtMi45LTEuNy02LjctMS4xLTkgMS40LTE1IDE2LjItMjYuNSAzNS44LTMzLjIgNTcuNC0xIDMuMy40IDYuOCAzLjMgOC41bDI1LjggMTQuOWMtMi42IDE0LjEtMi42IDI4LjUgMCA0Mi42bC0yNS44IDE0LjljLTMgMS43LTQuMyA1LjItMy4zIDguNSA2LjcgMjEuNiAxOC4yIDQxLjEgMzMuMiA1Ny40IDIuMyAyLjUgNiAzLjEgOSAxLjRsMjUuOC0xNC45YzEwLjkgOS4zIDIzLjQgMTYuNSAzNi45IDIxLjN2MjkuOGMwIDMuNCAyLjQgNi40IDUuNyA3LjEgMjIuMyA1IDQ1IDQuOCA2Ni4yIDAgMy4zLS43IDUuNy0zLjcgNS43LTcuMXYtMjkuOGMxMy41LTQuOCAyNi0xMiAzNi45LTIxLjNsMjUuOCAxNC45YzIuOSAxLjcgNi43IDEuMSA5LTEuNCAxNS0xNi4yIDI2LjUtMzUuOCAzMy4yLTU3LjQgMS0zLjMtLjQtNi44LTMuMy04LjVsLTI1LjgtMTQuOXpNNDk2IDQwMC41Yy0yNi44IDAtNDguNS0yMS44LTQ4LjUtNDguNXMyMS44LTQ4LjUgNDguNS00OC41IDQ4LjUgMjEuOCA0OC41IDQ4LjUtMjEuNyA0OC41LTQ4LjUgNDguNXpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTIwMS4yIDIyNi41Yy0yLjMtMS4yLTQuNi0yLjYtNi44LTMuOWwtNy45IDQuNmMtNiAzLjQtMTIuOCA1LjMtMTkuNiA1LjMtMTAuOSAwLTIxLjQtNC42LTI4LjktMTIuNi0xOC4zLTE5LjgtMzIuMy00My45LTQwLjItNjkuNi01LjUtMTcuNyAxLjktMzYuNCAxNy45LTQ1LjdsNy45LTQuNmMtLjEtMi42LS4xLTUuMiAwLTcuOGwtNy45LTQuNmMtMTYtOS4yLTIzLjQtMjgtMTcuOS00NS43LjktMi45IDIuMi01LjggMy4yLTguNy0zLjgtLjMtNy41LTEuMi0xMS40LTEuMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMxMC4xIDAgMTkuNS0zLjIgMjcuMi04LjUtMS4yLTMuOC0yLTcuNy0yLTExLjh2LTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckVkaXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyNzQuOWMtMi40LTYuOC0zLjQtMTQtMi42LTIxLjNsNi44LTYwLjkgMS4yLTExLjEgNy45LTcuOSA3Ny4zLTc3LjNjLTI0LjUtMjcuNy02MC00NS41LTk5LjktNDUuNXptNDUuMyAxNDUuM2wtNi44IDYxYy0xLjEgMTAuMiA3LjUgMTguOCAxNy42IDE3LjZsNjAuOS02LjggMTM3LjktMTM3LjktNzEuNy03MS43LTEzNy45IDEzNy44ek02MzMgMjY4LjlMNTk1LjEgMjMxYy05LjMtOS4zLTI0LjUtOS4zLTMzLjggMGwtMzcuOCAzNy44LTQuMSA0LjEgNzEuOCA3MS43IDQxLjgtNDEuOGM5LjMtOS40IDkuMy0yNC41IDAtMzMuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlckZyaWVuZHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTkyIDI1NmM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlMyNTMuOSAzMiAxOTIgMzIgODAgODIuMSA4MCAxNDRzNTAuMSAxMTIgMTEyIDExMnptNzYuOCAzMmgtOC4zYy0yMC44IDEwLTQzLjkgMTYtNjguNSAxNnMtNDcuNi02LTY4LjUtMTZoLTguM0M1MS42IDI4OCAwIDMzOS42IDAgNDAzLjJWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OHYtMjguOGMwLTYzLjYtNTEuNi0xMTUuMi0xMTUuMi0xMTUuMnpNNDgwIDI1NmM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05Ni05NiA0My05NiA5NiA0MyA5NiA5NiA5NnptNDggMzJoLTMuOGMtMTMuOSA0LjgtMjguNiA4LTQ0LjIgOHMtMzAuMy0zLjItNDQuMi04SDQzMmMtMjAuNCAwLTM5LjIgNS45LTU1LjcgMTUuNCAyNC40IDI2LjMgMzkuNyA2MS4yIDM5LjcgOTkuOHYzOC40YzAgMi4yLS41IDQuMy0uNiA2LjRINTkyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4IDAtNjEuOS01MC4xLTExMi0xMTItMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyR3JhZHVhdGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE5LjQgMzIwLjZMMjI0IDQxNmwtOTUuNC05NS40QzU3LjEgMzIzLjcgMCAzODIuMiAwIDQ1NC40djkuNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTkuNmMwLTcyLjItNTcuMS0xMzAuNy0xMjguNi0xMzMuOHpNMTMuNiA3OS44bDYuNCAxLjV2NTguNGMtNyA0LjItMTIgMTEuNS0xMiAyMC4zIDAgOC40IDQuNiAxNS40IDExLjEgMTkuN0wzLjUgMjQyYy0xLjcgNi45IDIuMSAxNCA3LjYgMTRoNDEuOGM1LjUgMCA5LjMtNy4xIDcuNi0xNGwtMTUuNi02Mi4zQzUxLjQgMTc1LjQgNTYgMTY4LjQgNTYgMTYwYzAtOC44LTUtMTYuMS0xMi0yMC4zVjg3LjFsNjYgMTUuOWMtOC42IDE3LjItMTQgMzYuNC0xNCA1NyAwIDcwLjcgNTcuMyAxMjggMTI4IDEyOHMxMjgtNTcuMyAxMjgtMTI4YzAtMjAuNi01LjMtMzkuOC0xNC01N2w5Ni4zLTIzLjJjMTguMi00LjQgMTguMi0yNy4xIDAtMzEuNWwtMTkwLjQtNDZjLTEzLTMuMS0yNi43LTMuMS0zOS43IDBMMTMuNiA0OC4yYy0xOC4xIDQuNC0xOC4xIDI3LjIgMCAzMS42elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VySW5qdXJlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNzcuMzcgMTEuOThDMjYxLjA4IDQuNDcgMjQzLjExIDAgMjI0IDBjLTUzLjY5IDAtOTkuNSAzMy4xMy0xMTguNTEgODBoODEuMTlsOTAuNjktNjguMDJ6TTM0Mi41MSA4MGMtNy45LTE5LjQ3LTIwLjY3LTM2LjItMzYuNDktNDkuNTJMMjM5Ljk5IDgwaDEwMi41MnpNMjI0IDI1NmM3MC42OSAwIDEyOC01Ny4zMSAxMjgtMTI4IDAtNS40OC0uOTUtMTAuNy0xLjYxLTE2SDk3LjYxYy0uNjcgNS4zLTEuNjEgMTAuNTItMS42MSAxNiAwIDcwLjY5IDU3LjMxIDEyOCAxMjggMTI4ek04MCAyOTkuN1Y1MTJoMTI4LjI2bC05OC40NS0yMjEuNTJBMTMyLjgzNSAxMzIuODM1IDAgMCAwIDgwIDI5OS43ek0wIDQ2NGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4VjMyMC4yNEMxOC44OCAzNDQuODkgMCAzODEuMjYgMCA0MjIuNFY0NjR6bTI1Ni00OGgtNTUuMzhsNDIuNjcgOTZIMjU2YzI2LjQ3IDAgNDgtMjEuNTMgNDgtNDhzLTIxLjUzLTQ4LTQ4LTQ4em01Ny42LTEyOGgtMTYuNzFjLTIyLjI0IDEwLjE4LTQ2Ljg4IDE2LTcyLjg5IDE2cy01MC42NS01LjgyLTcyLjg5LTE2aC03LjM3bDQyLjY3IDk2SDI1NmM0NC4xMSAwIDgwIDM1Ljg5IDgwIDgwIDAgMTguMDgtNi4yNiAzNC41OS0xNi40MSA0OEg0MDBjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDEuNmMwLTc0LjIzLTYwLjE3LTEzNC40LTEzNC40LTEzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTG9jayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMjQgMjU2QTEyOCAxMjggMCAxIDAgOTYgMTI4YTEyOCAxMjggMCAwIDAgMTI4IDEyOHptOTYgNjRhNjMuMDggNjMuMDggMCAwIDEgOC4xLTMwLjVjLTQuOC0uNS05LjUtMS41LTE0LjUtMS41aC0xNi43YTE3NC4wOCAxNzQuMDggMCAwIDEtMTQ1LjggMGgtMTYuN0ExMzQuNDMgMTM0LjQzIDAgMCAwIDAgNDIyLjRWNDY0YTQ4IDQ4IDAgMCAwIDQ4IDQ4aDI4MC45YTYzLjU0IDYzLjU0IDAgMCAxLTguOS0zMnptMjg4LTMyaC0zMnYtODBhODAgODAgMCAwIDAtMTYwIDB2ODBoLTMyYTMyIDMyIDAgMCAwLTMyIDMydjE2MGEzMiAzMiAwIDAgMCAzMiAzMmgyMjRhMzIgMzIgMCAwIDAgMzItMzJWMzIwYTMyIDMyIDAgMCAwLTMyLTMyek00OTYgNDMyYTMyIDMyIDAgMSAxIDMyLTMyIDMyIDMyIDAgMCAxLTMyIDMyem0zMi0xNDRoLTY0di04MGEzMiAzMiAwIDAgMSA2NCAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6TTEwNCA0MjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0LTI0IDEwLjctMjQgMjR6bTIxNi0xMzUuNHY0OWMzNi41IDcuNCA2NCAzOS44IDY0IDc4LjR2NDEuN2MwIDcuNi01LjQgMTQuMi0xMi45IDE1LjdsLTMyLjIgNi40Yy00LjMuOS04LjUtMS45LTkuNC02LjNsLTMuMS0xNS43Yy0uOS00LjMgMS45LTguNiA2LjMtOS40bDE5LjMtMy45VjQxNmMwLTYyLjgtOTYtNjUuMS05NiAxLjl2MjYuN2wxOS4zIDMuOWM0LjMuOSA3LjEgNS4xIDYuMyA5LjRsLTMuMSAxNS43Yy0uOSA0LjMtNS4xIDcuMS05LjQgNi4zbC0zMS4yLTQuMmMtNy45LTEuMS0xMy44LTcuOC0xMy44LTE1LjlWNDE2YzAtMzguNiAyNy41LTcwLjkgNjQtNzguNHYtNDUuMmMtMi4yLjctNC40IDEuMS02LjYgMS45LTE4IDYuMy0zNy4zIDkuOC01Ny40IDkuOHMtMzkuNC0zLjUtNTcuNC05LjhjLTcuNC0yLjYtMTQuOS00LjItMjIuNi01LjJ2ODEuNmMyMy4xIDYuOSA0MCAyOC4xIDQwIDUzLjQgMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTZjMC0yNS4zIDE2LjktNDYuNSA0MC01My40di04MC40QzQ4LjUgMzAxIDAgMzU1LjggMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC03Mi01Ni44LTEzMC4zLTEyOC0xMzMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYyNCAyMDhINDMyYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDE5MmM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptLTQwMCA0OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJOaW5qYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjUuNCAyODkuMkwyMjQgMzkwLjYgMTIyLjYgMjg5LjJDNTQgMjk1LjMgMCAzNTIuMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03MC4yLTU0LTEyNy4xLTEyMi42LTEzMy4yek0zMiAxOTJjMjcuMyAwIDUxLjgtMTEuNSA2OS4yLTI5LjcgMTUuMSA1My45IDY0IDkzLjcgMTIyLjggOTMuNyA3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwYy01MC40IDAtOTMuNiAyOS40LTExNC41IDcxLjhDOTIuMSA0Ny44IDY0IDMyIDMyIDMyYzAgMzMuNCAxNy4xIDYyLjggNDMuMSA4MC0yNiAxNy4yLTQzLjEgNDYuNi00My4xIDgwem0xNDQtOTZoOTZjMTcuNyAwIDMyIDE0LjMgMzIgMzJIMTQ0YzAtMTcuNyAxNC4zLTMyIDMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyTnVyc2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzE5LjQxLDMyMCwyMjQsNDE1LjM5LDEyOC41OSwzMjBDNTcuMSwzMjMuMSwwLDM4MS42LDAsNDUzLjc5QTU4LjIxLDU4LjIxLDAsMCwwLDU4LjIxLDUxMkgzODkuNzlBNTguMjEsNTguMjEsMCwwLDAsNDQ4LDQ1My43OUM0NDgsMzgxLjYsMzkwLjksMzIzLjEsMzE5LjQxLDMyMFpNMjI0LDMwNEExMjgsMTI4LDAsMCwwLDM1MiwxNzZWNjUuODJhMzIsMzIsMCwwLDAtMjAuNzYtMzBMMjQ2LjQ3LDQuMDdhNjQsNjQsMCwwLDAtNDQuOTQsMEwxMTYuNzYsMzUuODZBMzIsMzIsMCwwLDAsOTYsNjUuODJWMTc2QTEyOCwxMjgsMCwwLDAsMjI0LDMwNFpNMTg0LDcxLjY3YTUsNSwwLDAsMSw1LTVoMjEuNjdWNDVhNSw1LDAsMCwxLDUtNWgxNi42NmE1LDUsMCwwLDEsNSw1VjY2LjY3SDI1OWE1LDUsMCwwLDEsNSw1Vjg4LjMzYTUsNSwwLDAsMS01LDVIMjM3LjMzVjExNWE1LDUsMCwwLDEtNSw1SDIxNS42N2E1LDUsMCwwLDEtNS01VjkzLjMzSDE4OWE1LDUsMCwwLDEtNS01Wk0xNDQsMTYwSDMwNHYxNmE4MCw4MCwwLDAsMS0xNjAsMFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclBsdXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjI0IDIwOGgtNjR2LTY0YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGgtNjRjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjR2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNjRoNjRjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00MDAgNDhjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyU2VjcmV0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM4My45IDMwOC4zbDIzLjktNjIuNmM0LTEwLjUtMy43LTIxLjctMTUtMjEuN2gtNTguNWMxMS0xOC45IDE3LjgtNDAuNiAxNy44LTY0di0uM2MzOS4yLTcuOCA2NC0xOS4xIDY0LTMxLjcgMC0xMy4zLTI3LjMtMjUuMS03MC4xLTMzLTkuMi0zMi44LTI3LTY1LjgtNDAuNi04Mi44LTkuNS0xMS45LTI1LjktMTUuNi0zOS41LTguOGwtMjcuNiAxMy44Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTgyLjEgMy40Yy0xMy42LTYuOC0zMC0zLjEtMzkuNSA4LjgtMTMuNSAxNy0zMS40IDUwLTQwLjYgODIuOC00Mi43IDcuOS03MCAxOS43LTcwIDMzIDAgMTIuNiAyNC44IDIzLjkgNjQgMzEuN3YuM2MwIDIzLjQgNi44IDQ1LjEgMTcuOCA2NEg1Ni4zYy0xMS41IDAtMTkuMiAxMS43LTE0LjcgMjIuM2wyNS44IDYwLjJDMjcuMyAzMjkuOCAwIDM3Mi43IDAgNDIyLjR2NDQuOEMwIDQ5MS45IDIwLjEgNTEyIDQ0LjggNTEyaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44di00NC44YzAtNDguNC0yNS44LTkwLjQtNjQuMS0xMTQuMXpNMTc2IDQ4MGwtNDEuNi0xOTIgNDkuNiAzMiAyNCA0MC0zMiAxMjB6bTk2IDBsLTMyLTEyMCAyNC00MCA0OS42LTMyTDI3MiA0ODB6bTQxLjctMjk4LjVjLTMuOSAxMS45LTcgMjQuNi0xNi41IDMzLjQtMTAuMSA5LjMtNDggMjIuNC02NC0yNS0yLjgtOC40LTE1LjQtOC40LTE4LjMgMC0xNyA1MC4yLTU2IDMyLjQtNjQgMjUtOS41LTguOC0xMi43LTIxLjUtMTYuNS0zMy40LS44LTIuNS02LjMtNS43LTYuMy01Ljh2LTEwLjhjMjguMyAzLjYgNjEgNS44IDk2IDUuOHM2Ny43LTIuMSA5Ni01Ljh2MTAuOGMtLjEuMS01LjYgMy4yLTYuNCA1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJTaGllbGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjIyLjMgMjcxLjFsLTExNS4yLTQ1Yy00LjEtMS42LTEyLjYtMy43LTIyLjIgMGwtMTE1LjIgNDVjLTEwLjcgNC4yLTE3LjcgMTQtMTcuNyAyNC45IDAgMTExLjYgNjguNyAxODguOCAxMzIuOSAyMTMuOSA5LjYgMy43IDE4IDEuNiAyMi4yIDBDNTU4LjQgNDg5LjkgNjQwIDQyMC41IDY0MCAyOTZjMC0xMC45LTctMjAuNy0xNy43LTI0Ljl6TTQ5NiA0NjIuNFYyNzMuM2w5NS41IDM3LjNjLTUuNiA4Ny4xLTYwLjkgMTM1LjQtOTUuNSAxNTEuOHpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTk2IDQwYzAtMi41LjgtNC44IDEuMS03LjItMi41LS4xLTQuOS0uOC03LjUtLjhoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjNi44IDAgMTMuMy0xLjUgMTkuMi00LTU0LTQyLjktOTkuMi0xMTYuNy05OS4yLTIxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzMy44IDQ1OC4xTDM2Mi4zIDI0OC4zQzQxMi4xIDIzMC43IDQ0OCAxODMuOCA0NDggMTI4IDQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBjLTY3LjEgMC0xMjEuNSA1MS44LTEyNi45IDExNy40TDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pNOTYgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MC4yTDIwNy40IDI5MC4zQzE0NC4yIDMwMS4zIDk2IDM1NiA5NiA0MjIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclRhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzAuNiAzNjQuOWwtOTAuMy05MC4yYy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43aC03OS4zYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3OS4yYzAgMTcgNi43IDMzLjIgMTguNyA0NS4ybDkwLjMgOTAuMmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGw5Mi41LTkyLjVjMTIuNi0xMi41IDEyLjYtMzIuNy4xLTQ1LjJ6bS0xODIuOC0yMWMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0YzAgMTMuMi0xMC43IDI0LTI0IDI0em0tMjIzLjgtODhjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhDMzUyIDU3LjMgMjk0LjcgMCAyMjQgMFM5NiA1Ny4zIDk2IDEyOGMwIDcwLjYgNTcuMyAxMjcuOSAxMjggMTI3Ljl6bTEyNy44IDExMS4yVjI5NGMtMTIuMi0zLjYtMjQuOS02LjItMzguMi02LjJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODcuOSAwIDM0OC4xIDAgNDIyLjN2NDEuNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMTUuNSAwIDI5LjEtNy41IDM3LjktMTguOWwtNTgtNThjLTE4LjEtMTguMS0yOC4xLTQyLjItMjguMS02Ny45elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyVGllIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em05NS44IDMyLjZMMjcyIDQ4MGwtMzItMTM2IDMyLTU2aC05NmwzMiA1Ni0zMiAxMzYtNDcuOC0xOTEuNEM1Ni45IDI5MiAwIDM1MC4zIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTcyLjEtNTYuOS0xMzAuNC0xMjguMi0xMzMuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXNlclRpbWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU4OS42IDI0MGw0NS42LTQ1LjZjNi4zLTYuMyA2LjMtMTYuNSAwLTIyLjhsLTIyLjgtMjIuOGMtNi4zLTYuMy0xNi41LTYuMy0yMi44IDBMNTQ0IDE5NC40bC00NS42LTQ1LjZjLTYuMy02LjMtMTYuNS02LjMtMjIuOCAwbC0yMi44IDIyLjhjLTYuMyA2LjMtNi4zIDE2LjUgMCAyMi44bDQ1LjYgNDUuNi00NS42IDQ1LjZjLTYuMyA2LjMtNi4zIDE2LjUgMCAyMi44bDIyLjggMjIuOGM2LjMgNi4zIDE2LjUgNi4zIDIyLjggMGw0NS42LTQ1LjYgNDUuNiA0NS42YzYuMyA2LjMgMTYuNSA2LjMgMjIuOCAwbDIyLjgtMjIuOGM2LjMtNi4zIDYuMy0xNi41IDAtMjIuOEw1ODkuNiAyNDB6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2Vyc0NvZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MTAuNSAzNDEuM2MyLjYtMTQuMSAyLjYtMjguNSAwLTQyLjZsMjUuOC0xNC45YzMtMS43IDQuMy01LjIgMy4zLTguNS02LjctMjEuNi0xOC4yLTQxLjItMzMuMi01Ny40LTIuMy0yLjUtNi0zLjEtOS0xLjRsLTI1LjggMTQuOWMtMTAuOS05LjMtMjMuNC0xNi41LTM2LjktMjEuM3YtMjkuOGMwLTMuNC0yLjQtNi40LTUuNy03LjEtMjIuMy01LTQ1LTQuOC02Ni4yIDAtMy4zLjctNS43IDMuNy01LjcgNy4xdjI5LjhjLTEzLjUgNC44LTI2IDEyLTM2LjkgMjEuM2wtMjUuOC0xNC45Yy0yLjktMS43LTYuNy0xLjEtOSAxLjQtMTUgMTYuMi0yNi41IDM1LjgtMzMuMiA1Ny40LTEgMy4zLjQgNi44IDMuMyA4LjVsMjUuOCAxNC45Yy0yLjYgMTQuMS0yLjYgMjguNSAwIDQyLjZsLTI1LjggMTQuOWMtMyAxLjctNC4zIDUuMi0zLjMgOC41IDYuNyAyMS42IDE4LjIgNDEuMSAzMy4yIDU3LjQgMi4zIDIuNSA2IDMuMSA5IDEuNGwyNS44LTE0LjljMTAuOSA5LjMgMjMuNCAxNi41IDM2LjkgMjEuM3YyOS44YzAgMy40IDIuNCA2LjQgNS43IDcuMSAyMi4zIDUgNDUgNC44IDY2LjIgMCAzLjMtLjcgNS43LTMuNyA1LjctNy4xdi0yOS44YzEzLjUtNC44IDI2LTEyIDM2LjktMjEuM2wyNS44IDE0LjljMi45IDEuNyA2LjcgMS4xIDktMS40IDE1LTE2LjIgMjYuNS0zNS44IDMzLjItNTcuNCAxLTMuMy0uNC02LjgtMy4zLTguNWwtMjUuOC0xNC45ek00OTYgMzY4LjVjLTI2LjggMC00OC41LTIxLjgtNDguNS00OC41czIxLjgtNDguNSA0OC41LTQ4LjUgNDguNSAyMS44IDQ4LjUgNDguNS0yMS43IDQ4LjUtNDguNSA0OC41ek05NiAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em0yMjQgMzJjMS45IDAgMy43LS41IDUuNi0uNiA4LjMtMjEuNyAyMC41LTQyLjEgMzYuMy01OS4yIDcuNC04IDE3LjktMTIuNiAyOC45LTEyLjYgNi45IDAgMTMuNyAxLjggMTkuNiA1LjNsNy45IDQuNmMuOC0uNSAxLjYtLjkgMi40LTEuNCA3LTE0LjYgMTEuMi0zMC44IDExLjItNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMjA4IDgyLjEgMjA4IDE0NGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnptMTA1LjIgMTk0LjVjLTIuMy0xLjItNC42LTIuNi02LjgtMy45LTguMiA0LjgtMTUuMyA5LjgtMjcuNSA5LjgtMTAuOSAwLTIxLjQtNC42LTI4LjktMTIuNi0xOC4zLTE5LjgtMzIuMy00My45LTQwLjItNjkuNi0xMC43LTM0LjUgMjQuOS00OS43IDI1LjgtNTAuMy0uMS0yLjYtLjEtNS4yIDAtNy44bC03LjktNC42Yy0zLjgtMi4yLTctNS05LjgtOC4xLTMuMy4yLTYuNS42LTkuOC42LTI0LjYgMC00Ny42LTYtNjguNS0xNmgtOC4zQzE3OS42IDI4OCAxMjggMzM5LjYgMTI4IDQwMy4yVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyNTUuNGMtMy43LTYtNi4yLTEyLjgtNi4yLTIwLjN2LTkuMnpNMTczLjEgMjc0LjZDMTYxLjUgMjYzLjEgMTQ1LjYgMjU2IDEyOCAyNTZINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1LjljNi4zLTQ3LjQgMzQuOS04Ny4zIDc1LjItMTA5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVVzZXJzU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTMyLjY1LDIxMi4zMiwzNi4yMSwxMzcuNzhBNjMuNCw2My40LDAsMCwwLDMyLDE2MGE2My44NCw2My44NCwwLDAsMCwxMDAuNjUsNTIuMzJabTQwLjQ0LDYyLjI4QTYzLjc5LDYzLjc5LDAsMCwwLDEyOCwyNTZINjRBNjQuMDYsNjQuMDYsMCwwLDAsMCwzMjB2MzJhMzIsMzIsMCwwLDAsMzIsMzJIOTcuOTFBMTQ2LjYyLDE0Ni42MiwwLDAsMSwxNzMuMDksMjc0LjZaTTU0NCwyMjRhNjQsNjQsMCwxLDAtNjQtNjRBNjQuMDYsNjQuMDYsMCwwLDAsNTQ0LDIyNFpNNTAwLjU2LDM1NS4xMWExMTQuMjQsMTE0LjI0LDAsMCwwLTg0LjQ3LTY1LjI4TDM2MSwyNDcuMjNjNDEuNDYtMTYuMyw3MS01NS45Miw3MS0xMDMuMjNBMTExLjkzLDExMS45MywwLDAsMCwzMjAsMzJjLTU3LjE0LDAtMTAzLjY5LDQyLjgzLTExMC42LDk4LjA4TDQ1LjQ2LDMuMzhBMTYsMTYsMCwwLDAsMjMsNi4xOUwzLjM3LDMxLjQ2QTE2LDE2LDAsMCwwLDYuMTgsNTMuOTFMNTk0LjUzLDUwOC42M0ExNiwxNiwwLDAsMCw2MTcsNTA1LjgybDE5LjY0LTI1LjI3YTE2LDE2LDAsMCwwLTIuODEtMjIuNDVaTTEyOCw0MDMuMjFWNDMyYTQ4LDQ4LDAsMCwwLDQ4LDQ4SDQ2NGE0Ny40NSw0Ny40NSwwLDAsMCwxMi41Ny0xLjg3TDIzMiwyODkuMTNDMTczLjc0LDI5NC44MywxMjgsMzQzLjQyLDEyOCw0MDMuMjFaTTU3NiwyNTZINTEyYTYzLjc5LDYzLjc5LDAsMCwwLTQ1LjA5LDE4LjZBMTQ2LjI5LDE0Ni4yOSwwLDAsMSw1NDIsMzg0aDY2YTMyLDMyLDAsMCwwLDMyLTMyVjMyMEE2NC4wNiw2NC4wNiwwLDAsMCw1NzYsMjU2WlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFVc2VycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk05NiAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em00NDggMGMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTMyIDMyaC02NGMtMTcuNiAwLTMzLjUgNy4xLTQ1LjEgMTguNiA0MC4zIDIyLjEgNjguOSA2MiA3NS4xIDEwOS40aDY2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0zMmMwLTM1LjMtMjguNy02NC02NC02NHptLTI1NiAwYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzM4MS45IDMyIDMyMCAzMiAyMDggODIuMSAyMDggMTQ0czUwLjEgMTEyIDExMiAxMTJ6bTc2LjggMzJoLTguM2MtMjAuOCAxMC00My45IDE2LTY4LjUgMTZzLTQ3LjYtNi02OC41LTE2aC04LjNDMTc5LjYgMjg4IDEyOCAzMzkuNiAxMjggNDAzLjJWNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OHYtMjguOGMwLTYzLjYtNTEuNi0xMTUuMi0xMTUuMi0xMTUuMnptLTIyMy43LTEzLjRDMTYxLjUgMjYzLjEgMTQ1LjYgMjU2IDEyOCAyNTZINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1LjljNi4zLTQ3LjQgMzQuOS04Ny4zIDc1LjItMTA5LjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVV0ZW5zaWxTcG9vbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00ODAuMSAzMS45Yy01NS01NS4xLTE2NC45LTM0LjUtMjI3LjggMjguNS00OS4zIDQ5LjMtNTUuMSAxMTAtMjguOCAxNjAuNEw5IDQxMy4yYy0xMS42IDEwLjUtMTIuMSAyOC41LTEgMzkuNUw1OS4zIDUwNGMxMSAxMSAyOS4xIDEwLjUgMzkuNS0xLjFsMTkyLjQtMjE0LjRjNTAuNCAyNi4zIDExMS4xIDIwLjUgMTYwLjQtMjguOCA2My02Mi45IDgzLjYtMTcyLjggMjguNS0yMjcuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVXRlbnNpbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQxNiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA3LjkgMTUuMmMuOCA0LjcgMTYuMSA5NC41IDE2LjEgMTI4LjggMCA1Mi4zLTI3LjggODkuNi02OC45IDEwNC42TDE2OCA0ODYuN2MuNyAxMy43LTEwLjIgMjUuMy0yNCAyNS4zSDgwYy0xMy43IDAtMjQuNy0xMS41LTI0LTI1LjNsMTIuOS0yMzguMUMyNy43IDIzMy42IDAgMTk2LjIgMCAxNDQgMCAxMDkuNiAxNS4zIDE5LjkgMTYuMSAxNS4yIDE5LjMtNS4xIDYxLjQtNS40IDY0IDE2LjN2MTQxLjJjMS4zIDMuNCAxNS4xIDMuMiAxNiAwIDEuNC0yNS4zIDcuOS0xMzkuMiA4LTE0MS44IDMuMy0yMC44IDQ0LjctMjAuOCA0Ny45IDAgLjIgMi43IDYuNiAxMTYuNSA4IDE0MS44LjkgMy4yIDE0LjggMy40IDE2IDBWMTYuM2MyLjYtMjEuNiA0NC44LTIxLjQgNDgtMS4xem0xMTkuMiAyODUuN2wtMTUgMTg1LjFjLTEuMiAxNCA5LjkgMjYgMjMuOSAyNmg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyNGMwLTEzLjItMTAuNy0yNC0yNC0yNC04Mi41IDAtMjIxLjQgMTc4LjUtNjQuOSAzMDAuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVjdG9yU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiAxMjhWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJIMTYwYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMnYxOTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyaDE5MmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJWMTYwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ6bS05Ni02NGgzMnYzMmgtMzJWNjR6TTY0IDY0aDMydjMySDY0VjY0em0zMiAzODRINjR2LTMyaDMydjMyem0zNTIgMGgtMzJ2LTMyaDMydjMyem0tMzItOTZoLTMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMySDE2MHYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkg5NlYxNjBoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmgxOTJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMnYxOTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlbnVzRG91YmxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI4OCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCA5Ni41IDAgMTc2YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFYzNjhINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHptMzM2IDE0MC40VjM2OGgzNmM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC0zNnYzNmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTM2aC0zNmMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoMzZ2LTUxLjZjLTIxLjItNC44LTQwLjYtMTQuMy01Ny4yLTI3LjMgMTQtMTYuNyAyNS0zNiAzMi4xLTU3LjEgMTQuNSAxNC44IDM0LjcgMjQgNTcuMSAyNCA0NC4xIDAgODAtMzUuOSA4MC04MHMtMzUuOS04MC04MC04MGMtMjIuMyAwLTQyLjYgOS4yLTU3LjEgMjQtNy4xLTIxLjEtMTgtNDAuNC0zMi4xLTU3LjFDMzAzLjQgNDMuNiAzMzQuMyAzMiAzNjggMzJjNzkuNSAwIDE0NCA2NC41IDE0NCAxNDQgMCA2OC41LTQ3LjkgMTI1LjktMTEyIDE0MC40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51c01hcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY0IDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43QzQyMi41IDcyLjEgMzk2LjIgNjQgMzY4IDY0Yy0zMy43IDAtNjQuNiAxMS42LTg5LjIgMzAuOSAxNCAxNi43IDI1IDM2IDMyLjEgNTcuMSAxNC41LTE0LjggMzQuNy0yNCA1Ny4xLTI0IDQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwYy0yMi4zIDAtNDIuNi05LjItNTcuMS0yNC03LjEgMjEuMS0xOCA0MC40LTMyLjEgNTcuMSAyNC41IDE5LjQgNTUuNSAzMC45IDg5LjIgMzAuOSA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjQgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCA2NEM2NC41IDY0IDAgMTI4LjUgMCAyMDhjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwMEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0zNmgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTUxLjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHptMCAyMjRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWZW51cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMTc2YzAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgOTYuNSAwIDE3NmMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWMzY4SDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMjI0IDBjMC00NC4xIDM1LjktODAgODAtODBzODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZlc3RQYXRjaGVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzNy4yNTIsMjM5Ljg3NywzODQsMTYwVjMyQTMyLDMyLDAsMCwwLDM1MiwwSDMyMGEyMy45ODIsMjMuOTgyLDAsMCwwLTEzLjMxMiw0LjAzMWwtMjUsMTYuNjcyYTEwMy43OTQsMTAzLjc5NCwwLDAsMS0xMTUuMzc2LDBsLTI1LTE2LjY3MkEyMy45ODIsMjMuOTgyLDAsMCwwLDEyOCwwSDk2QTMyLDMyLDAsMCwwLDY0LDMyVjE2MEwxMC43NDgsMjM5Ljg3N0E2NCw2NCwwLDAsMCwwLDI3NS4zNzdWNDgwYTMyLDMyLDAsMCwwLDMyLDMySDE5MlYyODhhMzEuOTg3LDMxLjk4NywwLDAsMSwxLjY0My0xMC4xMTlMMjA3LjEzNSwyMzcuNCwxNTAuMTg4LDY2LjU2MUExNTEuNTc5LDE1MS41NzksMCwwLDAsMjI0LDg2LjIzNGExNTEuNTY1LDE1MS41NjUsMCwwLDAsNzMuODExLTE5LjY2OEwyMjQsMjg4VjUxMkg0MTZhMzIsMzIsMCwwLDAsMzItMzJWMjc1LjM3N0E2NCw2NCwwLDAsMCw0MzcuMjUyLDIzOS44NzdaTTYzLjUsMjcyLjQ4NGExMi4wMSwxMi4wMSwwLDAsMSwxNy0xNi45NjhsMTUuNSwxNS41LDE1LjUtMTUuNWExMi4wMSwxMi4wMSwwLDAsMSwxNywxNi45NjhMMTEyLjk4NCwyODgsMTI4LjUsMzAzLjUxNmExMi4wMSwxMi4wMSwwLDAsMS0xNywxNi45NjhMOTYsMzA0Ljk4NGwtMTUuNSwxNS41YTEyLjAxLDEyLjAxLDAsMCwxLTE3LTE2Ljk2OEw3OS4wMTYsMjg4Wk05Niw0NTZhNDAsNDAsMCwxLDEsNDAtNDBBNDAsNDAsMCwwLDEsOTYsNDU2Wk0zNTkuMjI3LDMzNS43ODUsMzEwLjcsMzM2YTYuNjcxLDYuNjcxLDAsMCwxLTYuNy02LjdsLjIxNS00OC41NzRBMjQuOTg3LDI0Ljk4NywwLDAsMSwzMzEuNDMsMjU2LjFjMTIuNzg5LDEuMTYyLDIyLjEyOSwxMi42MTksMjIuMDU2LDI1LjQxOWwtLjAzNyw1LjA1Nyw1LjA1MS0uMDM3YzEyLjgyNi0uMDM1LDI0LjIzNiw5LjI3NSwyNS40LDIyLjA3NkEyNC45NDgsMjQuOTQ4LDAsMCwxLDM1OS4yMjcsMzM1Ljc4NVpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmVzdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzcuMjUyLDIzOS44NzcsMzg0LDE2MFYzMkEzMiwzMiwwLDAsMCwzNTIsMEgzMjBhMjQuMDIxLDI0LjAyMSwwLDAsMC0xMy4zMTIsNC4wMzFsLTI1LDE2LjY3MmExMDMuNzk0LDEwMy43OTQsMCwwLDEtMTE1LjM3NiwwbC0yNS0xNi42NzJBMjQuMDIxLDI0LjAyMSwwLDAsMCwxMjgsMEg5NkEzMiwzMiwwLDAsMCw2NCwzMlYxNjBMMTAuNzQ4LDIzOS44NzdBNjQsNjQsMCwwLDAsMCwyNzUuMzc3VjQ4MGEzMiwzMiwwLDAsMCwzMiwzMkgxOTJWMjg4YTMxLjk4NywzMS45ODcsMCwwLDEsMS42NDMtMTAuMTE5TDIwNy4xMzUsMjM3LjQsMTUwLjE4OCw2Ni41NjRBMTUxLjUxOCwxNTEuNTE4LDAsMCwwLDIyNCw4Ni4yMzRhMTUxLjU1LDE1MS41NSwwLDAsMCw3My44MTItMTkuNjcyTDIyNCwyODhWNTEySDQxNmEzMiwzMiwwLDAsMCwzMi0zMlYyNzUuMzc3QTY0LDY0LDAsMCwwLDQzNy4yNTIsMjM5Ljg3N1pNMTMxLjMxMiwzNzEuMzEybC00OCw0OGExNiwxNiwwLDAsMS0yMi42MjQtMjIuNjI0bDQ4LTQ4YTE2LDE2LDAsMCwxLDIyLjYyNCwyMi42MjRabTI1Niw0OGExNS45OTIsMTUuOTkyLDAsMCwxLTIyLjYyNCwwbC00OC00OGExNiwxNiwwLDAsMSwyMi42MjQtMjIuNjI0bDQ4LDQ4QTE1Ljk5MywxNS45OTMsMCwwLDEsMzg3LjMxMiw0MTkuMzEyWlwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWFsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0ODAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ3Ny43IDE4Ni4xTDMwOS41IDE4LjNjLTMuMS0zLjEtOC4yLTMuMS0xMS4zIDBsLTM0IDMzLjljLTMuMSAzLjEtMy4xIDguMiAwIDExLjNsMTEuMiAxMS4xTDMzIDMxNi41Yy0zOC44IDM4LjctNDUuMSAxMDItOS40IDE0My41IDIwLjYgMjQgNDkuNSAzNiA3OC40IDM1LjkgMjYuNCAwIDUyLjgtMTAgNzIuOS0zMC4xbDI0Ni4zLTI0NS43IDExLjIgMTEuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDM0LTMzLjljMy4xLTMgMy4xLTguMSAwLTExLjJ6TTMxOCAyNTZIMTYxbDE0OC0xNDcuNyA3OC41IDc4LjNMMzE4IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlhbHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNzIgNjRoMjR2MjQwYzAgNDQuMSAzNS45IDgwIDgwIDgwczgwLTM1LjkgODAtODBWNjRoMjRjNC40IDAgOC0zLjYgOC04VjhjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em03MiAwaDY0djk2aC02NFY2NHptNDgwIDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg2MDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTM2MCA2NGgyNHYyNDBjMCA0NC4xIDM1LjkgODAgODAgODBzODAtMzUuOSA4MC04MFY2NGgyNGM0LjQgMCA4LTMuNiA4LThWOGMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em03MiAwaDY0djk2aC02NFY2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlkZW9TbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzMuOCA0NTguMWwtNTUtNDIuNWMxNS40LTEuNCAyOS4yLTEzLjcgMjkuMi0zMS4xdi0yNTdjMC0yNS41LTI5LjEtNDAuNC01MC40LTI1LjhMNDQ4IDE3Ny4zdjEzNy4ybC0zMi0yNC43di0xNzhjMC0yNi40LTIxLjQtNDcuOC00Ny44LTQ3LjhIMTIzLjlMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRMNDIuNyA4MiA0MTYgMzcwLjZsMTc4LjUgMTM4YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS41LTYuOSA0LjItMTctMi44LTIyLjR6TTMyIDQwMC4yYzAgMjYuNCAyMS40IDQ3LjggNDcuOCA0Ny44aDI4OC40YzExLjIgMCAyMS40LTQgMjkuNi0xMC41TDMyIDE1NC43djI0NS41elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWaWRlbyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYuMiA2NEg0Ny44QzIxLjQgNjQgMCA4NS40IDAgMTExLjh2Mjg4LjRDMCA0MjYuNiAyMS40IDQ0OCA0Ny44IDQ0OGgyODguNGMyNi40IDAgNDcuOC0yMS40IDQ3LjgtNDcuOFYxMTEuOGMwLTI2LjQtMjEuNC00Ny44LTQ3LjgtNDcuOHptMTg5LjQgMzcuN0w0MTYgMTc3LjN2MTU3LjRsMTA5LjYgNzUuNWMyMS4yIDE0LjYgNTAuNC0uMyA1MC40LTI1LjhWMTI3LjVjMC0yNS40LTI5LjEtNDAuNC01MC40LTI1Ljh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpaGFyYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MzIuODggNDAwLjcxTDU0NCAzNTJ2LTY0bDU1LjE2LTE3LjY5YzExLjc5LTUuOSAxMS43OS0yMi43MiAwLTI4LjYyTDQ4MCAxOTJ2LTY0bDI3LjMxLTE2LjNjNy43Mi03LjcyIDUuNjEtMjAuNzQtNC4xNi0yNS42MkwzMjAgMCAxMzYuODUgODYuMDdjLTkuNzcgNC44OC0xMS44OCAxNy45LTQuMTYgMjUuNjJMMTYwIDEyOHY2NEw0MC44NCAyNDEuNjljLTExLjc5IDUuOS0xMS43OSAyMi43MiAwIDI4LjYyTDk2IDI4OHY2NEw3LjEyIDQwMC43MWMtNS40MiAzLjYyLTcuNyA5LjYzLTcgMTUuMjkuNjIgNS4wMSAzLjU3IDkuNzUgOC43MiAxMi4zM0w2NCA0NDh2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTQ4aDE2MHY0OGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhoMTYwdjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di00OGw1NS4xNS0xOS42N2M1LjE2LTIuNTggOC4xLTcuMzIgOC43Mi0xMi4zMy43MS01LjY3LTEuNTctMTEuNjgtNi45OS0xNS4yOXpNMjI0IDEyOGgxOTJ2NjRIMjI0di02NHptLTY0IDIyNHYtNjRoMzIwdjY0SDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXNTbGFzaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTQsMjI3LjZIOTIuNEM3Ni43LDIyNy42LDY0LDI0MC4zLDY0LDI1NnMxMi43LDI4LjQsMjguNCwyOC40SDExNGM1MC43LDAsNzYuMSw2MS4zLDQwLjIsOTcuMUwxMzksMzk2LjggYy0xMS41LDEwLjctMTIuMiwyOC43LTEuNiw0MC4yczI4LjcsMTIuMiw0MC4yLDEuNmMwLjUtMC41LDEuMS0xLDEuNi0xLjZsMTUuMi0xNS4yYzM1LjgtMzUuOCw5Ny4xLTEwLjUsOTcuMSw0MC4ydjIxLjUgYzAsMTUuNywxMi44LDI4LjQsMjguNSwyOC40YzE1LjcsMCwyOC40LTEyLjcsMjguNC0yOC40VjQ2MmMwLTI2LjYsMTctNDUuOSwzOC4yLTUzLjRsLTI0NC41LTE4OSBDMTMzLjcsMjI0LjcsMTIzLjksMjI3LjUsMTE0LDIyNy42eiBNNjE3LDUwNS44bDE5LjYtMjUuM2M1LjQtNyw0LjItMTctMi44LTIyLjVMNDcwLjYsMzMyYzQuMi0yNS40LDI0LjktNDcuNSw1NS40LTQ3LjVoMjEuNSBjMTUuNywwLDI4LjQtMTIuNywyOC40LTI4LjRzLTEyLjctMjguNC0yOC40LTI4LjRINTI2Yy01MC43LDAtNzYuMS02MS4zLTQwLjItOTcuMWwxNS4yLTE1LjNjMTAuNy0xMS41LDEwLTI5LjUtMS42LTQwLjIgYy0xMC45LTEwLjEtMjcuNy0xMC4xLTM4LjYsMGwtMTUuMiwxNS4yYy0zNS44LDM1LjgtOTcuMSwxMC41LTk3LjEtNDAuMlYyOC41QzM0OC40LDEyLjcsMzM1LjcsMCwzMjAsMCBjLTE1LjcsMC0yOC40LDEyLjctMjguNCwyOC40VjUwYzAsNTAuNy02MS4zLDc2LjEtOTcuMSw0MC4yTDE3OS4yLDc1Yy0xMS4xLTExLjEtMjkuNC0xMC42LTQwLjUsMC41TDQ1LjUsMy40IGMtNy01LjQtMTctNC4yLTIyLjUsMi44TDMuNCwzMS41Yy01LjQsNy00LjIsMTcsMi44LDIyLjVsNTg4LjQsNDU0LjdDNjAxLjUsNTE0LjEsNjExLjYsNTEyLjgsNjE3LDUwNS44eiBNMzM1LjQsMjI3LjVsLTYyLjktNDguNiBjNC45LTEuOCwxMC4yLTIuOCwxNS40LTIuOWMyNi41LDAsNDgsMjEuNSw0OCw0OEMzMzYsMjI1LjIsMzM1LjUsMjI2LjMsMzM1LjQsMjI3LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZpcnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4My41NSwyMjcuNTVINDYyYy01MC42OCwwLTc2LjA3LTYxLjI3LTQwLjIzLTk3LjExTDQzNywxMTUuMTlBMjguNDQsMjguNDQsMCwwLDAsMzk2LjgsNzVMMzgxLjU2LDkwLjIyYy0zNS44NCwzNS44My05Ny4xMSwxMC40NS05Ny4xMS00MC4yM1YyOC40NGEyOC40NSwyOC40NSwwLDAsMC01Ni45LDBWNTBjMCw1MC42OC02MS4yNyw3Ni4wNi05Ny4xMSw0MC4yM0wxMTUuMiw3NUEyOC40NCwyOC40NCwwLDAsMCw3NSwxMTUuMTlsMTUuMjUsMTUuMjVjMzUuODQsMzUuODQsMTAuNDUsOTcuMTEtNDAuMjMsOTcuMTFIMjguNDVhMjguNDUsMjguNDUsMCwxLDAsMCw1Ni44OUg1MGM1MC42OCwwLDc2LjA3LDYxLjI4LDQwLjIzLDk3LjEyTDc1LDM5Ni44QTI4LjQ1LDI4LjQ1LDAsMCwwLDExNS4yLDQzN2wxNS4yNC0xNS4yNWMzNS44NC0zNS44NCw5Ny4xMS0xMC40NSw5Ny4xMSw0MC4yM3YyMS41NGEyOC40NSwyOC40NSwwLDAsMCw1Ni45LDBWNDYyYzAtNTAuNjgsNjEuMjctNzYuMDcsOTcuMTEtNDAuMjNMMzk2LjgsNDM3QTI4LjQ1LDI4LjQ1LDAsMCwwLDQzNywzOTYuOGwtMTUuMjUtMTUuMjRjLTM1Ljg0LTM1Ljg0LTEwLjQ1LTk3LjEyLDQwLjIzLTk3LjEyaDIxLjU0YTI4LjQ1LDI4LjQ1LDAsMSwwLDAtNTYuODlaTTIyNCwyNzJhNDgsNDgsMCwxLDEsNDgtNDhBNDgsNDgsMCwwLDEsMjI0LDI3MlptODAsNTZhMjQsMjQsMCwxLDEsMjQtMjRBMjQsMjQsMCwwLDEsMzA0LDMyOFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVmlydXNlcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MjQsMzUySDYxMS44OGMtMjguNTEsMC00Mi43OS0zNC40Ny0yMi42My01NC42M2w4LjU4LTguNTdhMTYsMTYsMCwxLDAtMjIuNjMtMjIuNjNsLTguNTcsOC41OEM1NDYuNDcsMjk0LjkxLDUxMiwyODAuNjMsNTEyLDI1Mi4xMlYyNDBhMTYsMTYsMCwwLDAtMzIsMHYxMi4xMmMwLDI4LjUxLTM0LjQ3LDQyLjc5LTU0LjYzLDIyLjYzbC04LjU3LTguNThhMTYsMTYsMCwwLDAtMjIuNjMsMjIuNjNsOC41OCw4LjU3YzIwLjE2LDIwLjE2LDUuODgsNTQuNjMtMjIuNjMsNTQuNjNIMzY4YTE2LDE2LDAsMCwwLDAsMzJoMTIuMTJjMjguNTEsMCw0Mi43OSwzNC40NywyMi42Myw1NC42M2wtOC41OCw4LjU3YTE2LDE2LDAsMSwwLDIyLjYzLDIyLjYzbDguNTctOC41OGMyMC4xNi0yMC4xNiw1NC42My01Ljg4LDU0LjYzLDIyLjYzVjQ5NmExNiwxNiwwLDAsMCwzMiwwVjQ4My44OGMwLTI4LjUxLDM0LjQ3LTQyLjc5LDU0LjYzLTIyLjYzbDguNTcsOC41OGExNiwxNiwwLDEsMCwyMi42My0yMi42M2wtOC41OC04LjU3QzU2OS4wOSw0MTguNDcsNTgzLjM3LDM4NCw2MTEuODgsMzg0SDYyNGExNiwxNiwwLDAsMCwwLTMyWk00ODAsMzg0YTMyLDMyLDAsMSwxLDMyLTMyQTMyLDMyLDAsMCwxLDQ4MCwzODRaTTM0Ni41MSwyMTMuMzNoMTYuMTZhMjEuMzMsMjEuMzMsMCwwLDAsMC00Mi42NkgzNDYuNTFjLTM4LDAtNTcuMDUtNDYtMzAuMTctNzIuODRsMTEuNDMtMTEuNDRBMjEuMzMsMjEuMzMsMCwwLDAsMjk3LjYsNTYuMjNMMjg2LjE3LDY3LjY2Yy0yNi44OCwyNi44OC03Mi44NCw3Ljg1LTcyLjg0LTMwLjE3VjIxLjMzYTIxLjMzLDIxLjMzLDAsMCwwLTQyLjY2LDBWMzcuNDljMCwzOC00Niw1Ny4wNS03Mi44NCwzMC4xN0w4Ni40LDU2LjIzQTIxLjMzLDIxLjMzLDAsMCwwLDU2LjIzLDg2LjM5TDY3LjY2LDk3LjgzYzI2Ljg4LDI2Ljg4LDcuODUsNzIuODQtMzAuMTcsNzIuODRIMjEuMzNhMjEuMzMsMjEuMzMsMCwwLDAsMCw0Mi42NkgzNy40OWMzOCwwLDU3LjA1LDQ2LDMwLjE3LDcyLjg0TDU2LjIzLDI5Ny42QTIxLjMzLDIxLjMzLDAsMSwwLDg2LjQsMzI3Ljc3bDExLjQzLTExLjQzYzI2Ljg4LTI2Ljg4LDcyLjg0LTcuODUsNzIuODQsMzAuMTd2MTYuMTZhMjEuMzMsMjEuMzMsMCwwLDAsNDIuNjYsMFYzNDYuNTFjMC0zOCw0Ni01Ny4wNSw3Mi44NC0zMC4xN2wxMS40MywxMS40M2EyMS4zMywyMS4zMywwLDAsMCwzMC4xNy0zMC4xN2wtMTEuNDMtMTEuNDNDMjg5LjQ2LDI1OS4yOSwzMDguNDksMjEzLjMzLDM0Ni41MSwyMTMuMzNaTTE2MCwxOTJhMzIsMzIsMCwxLDEsMzItMzJBMzIsMzIsMCwwLDEsMTYwLDE5MlptODAsMzJhMTYsMTYsMCwxLDEsMTYtMTZBMTYsMTYsMCwwLDEsMjQwLDIyNFpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9pY2VtYWlsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NiAxMjhhMTQ0IDE0NCAwIDAgMC0xMTkuNzQgMjI0SDI2My43NEExNDQgMTQ0IDAgMSAwIDE0NCA0MTZoMzUyYTE0NCAxNDQgMCAwIDAgMC0yODh6TTY0IDI3MmE4MCA4MCAwIDEgMSA4MCA4MCA4MCA4MCAwIDAgMS04MC04MHptNDMyIDgwYTgwIDgwIDAgMSAxIDgwLTgwIDgwIDgwIDAgMCAxLTgwIDgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2xsZXliYWxsQmFsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMzEuMzkgMjQzLjQ4YTI4NS41NiAyODUuNTYgMCAwIDAtMjIuNy0xMDUuN2MtOTAuOCA0Mi40LTE1Ny41IDEyMi40LTE4MC4zIDIxNi44YTI0OSAyNDkgMCAwIDAgNTYuOSA4MS4xIDMzMy44NyAzMzMuODcgMCAwIDEgMTQ2LjEtMTkyLjJ6bS0zNi45LTEzNC40YTI4NC4yMyAyODQuMjMgMCAwIDAtNTcuNC03MC43Yy05MSA0OS44LTE0NC44IDE1Mi45LTEyNSAyNjIuMiAzMy40LTgzLjEgOTguNC0xNTIgMTgyLjQtMTkxLjV6bTE4Ny42IDE2NS4xYzguNi05OS44LTI3LjMtMTk3LjUtOTcuNS0yNjQuNC0xNC43LTEuNy01MS42LTUuNS05OC45IDguNUEzMzMuODcgMzMzLjg3IDAgMCAxIDI3OS4xOSAyNDFhMjg1IDI4NSAwIDAgMCAxMDIuOSAzMy4xOHptLTEyNC43IDkuNWEyODYuMzMgMjg2LjMzIDAgMCAwLTgwLjIgNzIuNmM4MiA1Ny4zIDE4NC41IDc1LjEgMjc3LjUgNDcuOGEyNDcuMTUgMjQ3LjE1IDAgMCAwIDQyLjItODkuOSAzMzYuMSAzMzYuMSAwIDAgMS04MC45IDEwLjRjLTU0LjYtLjEtMTA4LjktMTQuMS0xNTguNi00MC45em0tOTguMyA5OS43Yy0xNS4yIDI2LTI1LjcgNTQuNC0zMi4xIDg0LjJhMjQ3LjA3IDI0Ny4wNyAwIDAgMCAyODktMjIuMWMtMTEyLjkgMTYuMS0yMDMuMy0yNC44LTI1Ni45LTYyLjF6bTE4MC4zLTM2MC42YzU1LjMgNzAuNCA4Mi41IDE2MS4yIDc0LjYgMjUzLjZhMjg2LjU5IDI4Ni41OSAwIDAgMCA4OS43LTE0LjJjMC0yIC4zLTQgLjMtNiAwLTEwNy44LTY4LjctMTk5LjEtMTY0LjYtMjMzLjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVZvbHVtZURvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1LjAzIDcyLjA0TDEyNi4wNiAxNjFIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODkuMDJjMC0yMS40Ny0yNS45Ni0zMS45OC00MC45Ny0xNi45OHptMTIzLjIgMTA4LjA4Yy0xMS41OC02LjMzLTI2LjE5LTIuMTYtMzIuNjEgOS40NS02LjM5IDExLjYxLTIuMTYgMjYuMiA5LjQ1IDMyLjYxQzMyNy45OCAyMjkuMjggMzM2IDI0Mi42MiAzMzYgMjU3YzAgMTQuMzgtOC4wMiAyNy43Mi0yMC45MiAzNC44MS0xMS42MSA2LjQxLTE1Ljg0IDIxLTkuNDUgMzIuNjEgNi40MyAxMS42NiAyMS4wNSAxNS44IDMyLjYxIDkuNDUgMjguMjMtMTUuNTUgNDUuNzctNDUgNDUuNzctNzYuODhzLTE3LjU0LTYxLjMyLTQ1Ljc4LTc2Ljg3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWb2x1bWVNdXRlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNS4wMyA3MS4wNUwxMjYuMDYgMTYwSDI0Yy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djE0NGMwIDEzLjI1IDEwLjc0IDI0IDI0IDI0aDEwMi4wNmw4OC45NyA4OC45NWMxNS4wMyAxNS4wMyA0MC45NyA0LjQ3IDQwLjk3LTE2Ljk3Vjg4LjAyYzAtMjEuNDYtMjUuOTYtMzEuOTgtNDAuOTctMTYuOTd6TTQ2MS42NCAyNTZsNDUuNjQtNDUuNjRjNi4zLTYuMyA2LjMtMTYuNTIgMC0yMi44MmwtMjIuODItMjIuODJjLTYuMy02LjMtMTYuNTItNi4zLTIyLjgyIDBMNDE2IDIxMC4zNmwtNDUuNjQtNDUuNjRjLTYuMy02LjMtMTYuNTItNi4zLTIyLjgyIDBsLTIyLjgyIDIyLjgyYy02LjMgNi4zLTYuMyAxNi41MiAwIDIyLjgyTDM3MC4zNiAyNTZsLTQ1LjYzIDQ1LjYzYy02LjMgNi4zLTYuMyAxNi41MiAwIDIyLjgybDIyLjgyIDIyLjgyYzYuMyA2LjMgMTYuNTIgNi4zIDIyLjgyIDBMNDE2IDMwMS42NGw0NS42NCA0NS42NGM2LjMgNi4zIDE2LjUyIDYuMyAyMi44MiAwbDIyLjgyLTIyLjgyYzYuMy02LjMgNi4zLTE2LjUyIDAtMjIuODJMNDYxLjY0IDI1NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sdW1lT2ZmIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAyNTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTIxNSA3MWwtODkgODlIMjRhMjQgMjQgMCAwIDAtMjQgMjR2MTQ0YTI0IDI0IDAgMCAwIDI0IDI0aDEwMi4wNkwyMTUgNDQxYzE1IDE1IDQxIDQuNDcgNDEtMTdWODhjMC0yMS40Ny0yNi0zMi00MS0xN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm9sdW1lVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE1LjAzIDcxLjA1TDEyNi4wNiAxNjBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODguMDJjMC0yMS40Ni0yNS45Ni0zMS45OC00MC45Ny0xNi45N3ptMjMzLjMyLTUxLjA4Yy0xMS4xNy03LjMzLTI2LjE4LTQuMjQtMzMuNTEgNi45NS03LjM0IDExLjE3LTQuMjIgMjYuMTggNi45NSAzMy41MSA2Ni4yNyA0My40OSAxMDUuODIgMTE2LjYgMTA1LjgyIDE5NS41OCAwIDc4Ljk4LTM5LjU1IDE1Mi4wOS0xMDUuODIgMTk1LjU4LTExLjE3IDcuMzItMTQuMjkgMjIuMzQtNi45NSAzMy41IDcuMDQgMTAuNzEgMjEuOTMgMTQuNTYgMzMuNTEgNi45NUM1MjguMjcgNDM5LjU4IDU3NiAzNTEuMzMgNTc2IDI1NlM1MjguMjcgNzIuNDMgNDQ4LjM1IDE5Ljk3ek00ODAgMjU2YzAtNjMuNTMtMzIuMDYtMTIxLjk0LTg1Ljc3LTE1Ni4yNC0xMS4xOS03LjE0LTI2LjAzLTMuODItMzMuMTIgNy40NnMtMy43OCAyNi4yMSA3LjQxIDMzLjM2QzQwOC4yNyAxNjUuOTcgNDMyIDIwOS4xMSA0MzIgMjU2cy0yMy43MyA5MC4wMy02My40OCAxMTUuNDJjLTExLjE5IDcuMTQtMTQuNSAyMi4wNy03LjQxIDMzLjM2IDYuNTEgMTAuMzYgMjEuMTIgMTUuMTQgMzMuMTIgNy40NkM0NDcuOTQgMzc3Ljk0IDQ4MCAzMTkuNTQgNDgwIDI1NnptLTE0MS43Ny03Ni44N2MtMTEuNTgtNi4zMy0yNi4xOS0yLjE2LTMyLjYxIDkuNDUtNi4zOSAxMS42MS0yLjE2IDI2LjIgOS40NSAzMi42MUMzMjcuOTggMjI4LjI4IDMzNiAyNDEuNjMgMzM2IDI1NmMwIDE0LjM4LTguMDIgMjcuNzItMjAuOTIgMzQuODEtMTEuNjEgNi40MS0xNS44NCAyMS05LjQ1IDMyLjYxIDYuNDMgMTEuNjYgMjEuMDUgMTUuOCAzMi42MSA5LjQ1IDI4LjIzLTE1LjU1IDQ1Ljc3LTQ1IDQ1Ljc3LTc2Ljg4cy0xNy41NC02MS4zMi00NS43OC03Ni44NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhVm90ZVllYSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggMzIwaC02NHY2NGgyMi40YzUuMyAwIDkuNiAzLjYgOS42IDh2MTZjMCA0LjQtNC4zIDgtOS42IDhINzMuNmMtNS4zIDAtOS42LTMuNi05LjYtOHYtMTZjMC00LjQgNC4zLTggOS42LThIOTZ2LTY0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tOTYgNjRWNjQuM2MwLTE3LjktMTQuNS0zMi4zLTMyLjMtMzIuM0gxNjAuNEMxNDIuNSAzMiAxMjggNDYuNSAxMjggNjQuM1YzODRoMzg0ek0yMTEuMiAyMDJsMjUuNS0yNS4zYzQuMi00LjIgMTEtNC4yIDE1LjIuMWw0MS4zIDQxLjYgOTUuMi05NC40YzQuMi00LjIgMTEtNC4yIDE1LjIuMWwyNS4zIDI1LjVjNC4yIDQuMiA0LjIgMTEtLjEgMTUuMkwzMDAuNSAyOTJjLTQuMiA0LjItMTEgNC4yLTE1LjItLjFsLTc0LjEtNzQuN2MtNC4zLTQuMi00LjItMTEgMC0xNS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFWckNhcmRib2FyZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk02MDggNjRIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djMyMGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2MC4yMmMyNS4xOSAwIDQ4LjAzLTE0Ljc3IDU4LjM2LTM3Ljc0bDI3Ljc0LTYxLjY0QzI4Ni4yMSAzMzEuMDggMzAyLjM1IDMyMCAzMjAgMzIwczMzLjc5IDExLjA4IDQxLjY4IDI4LjYybDI3Ljc0IDYxLjY0QzM5OS43NSA0MzMuMjMgNDIyLjYgNDQ4IDQ0Ny43OCA0NDhINjA4YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTYwIDMwNGMtMzUuMzUgMC02NC0yOC42NS02NC02NHMyOC42NS02NCA2NC02NCA2NCAyOC42NSA2NCA2NC0yOC42NSA2NC02NCA2NHptMzIwIDBjLTM1LjM1IDAtNjQtMjguNjUtNjQtNjRzMjguNjUtNjQgNjQtNjQgNjQgMjguNjUgNjQgNjQtMjguNjUgNjQtNjQgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbGtpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDMyMCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjA4IDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzIzNC41IDAgMjA4IDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptOTQuNSAxNDkuMWwtMjMuMy0xMS44LTkuNy0yOS40Yy0xNC43LTQ0LjYtNTUuNy03NS44LTEwMi4yLTc1LjktMzYtLjEtNTUuOSAxMC4xLTkzLjMgMjUuMi0yMS42IDguNy0zOS4zIDI1LjItNDkuNyA0Ni4yTDE3LjYgMjEzYy03LjggMTUuOC0xLjUgMzUgMTQuMiA0Mi45IDE1LjYgNy45IDM0LjYgMS41IDQyLjUtMTQuM0w4MSAyMjhjMy41LTcgOS4zLTEyLjUgMTYuNS0xNS40bDI2LjgtMTAuOC0xNS4yIDYwLjdjLTUuMiAyMC44LjQgNDIuOSAxNC45IDU4LjhsNTkuOSA2NS40YzcuMiA3LjkgMTIuMyAxNy40IDE0LjkgMjcuN2wxOC4zIDczLjNjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuMyAxNy4xLTQuMyAyNy42LTIxLjcgMjMuMy0zOC44bC0yMi4yLTg5Yy0yLjYtMTAuMy03LjctMTkuOS0xNC45LTI3LjdsLTQ1LjUtNDkuNyAxNy4yLTY4LjcgNS41IDE2LjVjNS4zIDE2LjEgMTYuNyAyOS40IDMxLjcgMzdsMjMuMyAxMS44YzE1LjYgNy45IDM0LjYgMS41IDQyLjUtMTQuMyA3LjctMTUuNyAxLjQtMzUuMS0xNC4zLTQzek03My42IDM4NS44Yy0zLjIgOC4xLTggMTUuNC0xNC4yIDIxLjVsLTUwIDUwLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjcgMTIuNSA0NS4yIDBsNTkuNC01OS40YzYuMS02LjEgMTAuOS0xMy40IDE0LjItMjEuNWwxMy41LTMzLjhjLTU1LjMtNjAuMy0zOC43LTQxLjgtNDcuNC01My43bC0yMC43IDUxLjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhbGxldCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjEuMiAxMjhIODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTZoMzg0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMjYuNTEtMjEuNDktNDgtNDgtNDhINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM5Ny4yYzI4LjAyIDAgNTAuOC0yMS41MyA1MC44LTQ4VjE3NmMwLTI2LjQ3LTIyLjc4LTQ4LTUwLjgtNDh6TTQxNiAzMzZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdhcmVob3VzZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMzUySDEzNi40Yy00LjQgMC04IDMuNi04IDhsLS4xIDQ4YzAgNC40IDMuNiA4IDggOEg1MDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTAgOTZIMTM2LjFjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMC0xOTJIMTM2LjZjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4SDUwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTA2LjUtMTM5TDMzOC40IDMuN2E0OC4xNSA0OC4xNSAwIDAgMC0zNi45IDBMMjkuNSAxMTdDMTEuNyAxMjQuNSAwIDE0MS45IDAgMTYxLjNWNTA0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LThWMjU2YzAtMTcuNiAxNC42LTMyIDMyLjYtMzJoMzgyLjhjMTggMCAzMi42IDE0LjQgMzIuNiAzMnYyNDhjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOFYxNjEuM2MwLTE5LjQtMTEuNy0zNi44LTI5LjUtNDQuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F0ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTYyLjEgMzgzLjljLTIxLjUtMi40LTQyLjEtMTAuNS01Ny45LTIyLjktMTQuMS0xMS4xLTM0LjItMTEuMy00OC4yIDAtMzcuOSAzMC40LTEwNy4yIDMwLjQtMTQ1LjctMS41LTEzLjUtMTEuMi0zMy05LjEtNDYuNyAxLjgtMzggMzAuMS0xMDYuOSAzMC0xNDUuMi0xLjctMTMuNS0xMS4yLTMzLjMtOC45LTQ3LjEgMi0xNS41IDEyLjItMzYgMjAuMS01Ny43IDIyLjQtNy45LjgtMTMuNiA3LjgtMTMuNiAxNS43djMyLjJjMCA5LjEgNy42IDE2LjggMTYuNyAxNiAyOC44LTIuNSA1Ni4xLTExLjQgNzkuNC0yNS45IDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgMjMuMyAxNC4yIDUwLjkgMjMuMyA3OS4xIDI1LjggOS4xLjggMTYuNy02LjkgMTYuNy0xNnYtMzEuNmMuMS04LTUuNy0xNS40LTEzLjgtMTYuM3ptMC0xNDRjLTIxLjUtMi40LTQyLjEtMTAuNS01Ny45LTIyLjktMTQuMS0xMS4xLTM0LjItMTEuMy00OC4yIDAtMzcuOSAzMC40LTEwNy4yIDMwLjQtMTQ1LjctMS41LTEzLjUtMTEuMi0zMy05LjEtNDYuNyAxLjgtMzggMzAuMS0xMDYuOSAzMC0xNDUuMi0xLjctMTMuNS0xMS4yLTMzLjMtOC45LTQ3LjEgMi0xNS41IDEyLjItMzYgMjAuMS01Ny43IDIyLjQtNy45LjgtMTMuNiA3LjgtMTMuNiAxNS43djMyLjJjMCA5LjEgNy42IDE2LjggMTYuNyAxNiAyOC44LTIuNSA1Ni4xLTExLjQgNzkuNC0yNS45IDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgMjMuMyAxNC4yIDUwLjkgMjMuMyA3OS4xIDI1LjggOS4xLjggMTYuNy02LjkgMTYuNy0xNnYtMzEuNmMuMS04LTUuNy0xNS40LTEzLjgtMTYuM3ptMC0xNDRDNTQwLjYgOTMuNCA1MjAgODUuNCA1MDQuMiA3MyA0OTAuMSA2MS45IDQ3MCA2MS43IDQ1NiA3M2MtMzcuOSAzMC40LTEwNy4yIDMwLjQtMTQ1LjctMS41LTEzLjUtMTEuMi0zMy05LjEtNDYuNyAxLjgtMzggMzAuMS0xMDYuOSAzMC0xNDUuMi0xLjctMTMuNS0xMS4yLTMzLjMtOC45LTQ3LjEgMi0xNS41IDEyLjItMzYgMjAuMS01Ny43IDIyLjQtNy45LjgtMTMuNiA3LjgtMTMuNiAxNS43djMyLjJjMCA5LjEgNy42IDE2LjggMTYuNyAxNiAyOC44LTIuNSA1Ni4xLTExLjQgNzkuNC0yNS45IDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCA1Ni41IDM0LjYgMTM3IDM0LjEgMTkyIDAgMjMuMyAxNC4yIDUwLjkgMjMuMyA3OS4xIDI1LjggOS4xLjggMTYuNy02LjkgMTYuNy0xNnYtMzEuNmMuMS04LTUuNy0xNS40LTEzLjgtMTYuM3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhV2F2ZVNxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NzYgNDgwSDMyNGEzNiAzNiAwIDAgMS0zNi0zNlY5NmgtOTZ2MTU2YTM2IDM2IDAgMCAxLTM2IDM2SDE2YTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgxMTJWNjhhMzYgMzYgMCAwIDEgMzYtMzZoMTUyYTM2IDM2IDAgMCAxIDM2IDM2djM0OGg5NlYyNjBhMzYgMzYgMCAwIDEgMzYtMzZoMTQwYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDUxMnYxNTZhMzYgMzYgMCAwIDEtMzYgMzZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWdodEhhbmdpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTEwLjI4IDQ0NS44NmwtNzMuMDMtMjkyLjEzYy0zLjgtMTUuMTktMTYuNDQtMjUuNzItMzAuODctMjUuNzJoLTYwLjI1YzMuNTctMTAuMDUgNS44OC0yMC43MiA1Ljg4LTMyIDAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2YzAgMTEuMjggMi4zIDIxLjk1IDUuODggMzJoLTYwLjI1Yy0xNC40MyAwLTI3LjA4IDEwLjU0LTMwLjg3IDI1LjcyTDEuNzIgNDQ1Ljg2Qy02LjYxIDQ3OS4xNyAxNi4zOCA1MTIgNDguMDMgNTEyaDQxNS45NWMzMS42NCAwIDU0LjYzLTMyLjgzIDQ2LjMtNjYuMTR6TTI1NiAxMjhjLTE3LjY0IDAtMzItMTQuMzYtMzItMzJzMTQuMzYtMzIgMzItMzIgMzIgMTQuMzYgMzIgMzItMTQuMzYgMzItMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdlaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggNjRoLTI1Ljk4QzQzOC40NCA5Mi4yOCA0NDggMTI1LjAxIDQ0OCAxNjBjMCAxMDUuODctODYuMTMgMTkyLTE5MiAxOTJTNjQgMjY1Ljg3IDY0IDE2MGMwLTM0Ljk5IDkuNTYtNjcuNzIgMjUuOTgtOTZINjRDMjguNzEgNjQgMCA5Mi43MSAwIDEyOHYzMjBjMCAzNS4yOSAyOC43MSA2NCA2NCA2NGgzODRjMzUuMjkgMCA2NC0yOC43MSA2NC02NFYxMjhjMC0zNS4yOS0yOC43MS02NC02NC02NHpNMjU2IDMyMGM4OC4zNyAwIDE2MC03MS42MyAxNjAtMTYwUzM0NC4zNyAwIDI1NiAwIDk2IDcxLjYzIDk2IDE2MHM3MS42MyAxNjAgMTYwIDE2MHptLS4zLTE1MS45NGwzMy41OC03OC4zNmMzLjUtOC4xNyAxMi45NC0xMS45MiAyMS4wMy04LjQxIDguMTIgMy40OCAxMS44OCAxMi44OSA4LjQxIDIxbC0zMy42NyA3OC41NUMyOTEuNzMgMTg4IDI5NiAxOTcuNDUgMjk2IDIwOGMwIDIyLjA5LTE3LjkxIDQwLTQwIDQwcy00MC0xNy45MS00MC00MGMwLTIxLjk4IDE3Ljc2LTM5Ljc3IDM5LjctMzkuOTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdoZWVsY2hhaXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDk2LjEwMSAzODUuNjY5bDE0LjIyNyAyOC42NjNjMy45MjkgNy45MTUuNjk3IDE3LjUxNi03LjIxOCAyMS40NDVsLTY1LjQ2NSAzMi44ODZjLTE2LjA0OSA3Ljk2Ny0zNS41NTYgMS4xOTQtNDMuMTg5LTE1LjA1NUwzMzEuNjc5IDMyMEgxOTJjLTE1LjkyNSAwLTI5LjQyNi0xMS43MS0zMS42NzktMjcuNDc1QzEyNi40MzMgNTUuMzA4IDEyOC4zOCA3MC4wNDQgMTI4IDY0YzAtMzYuMzU4IDMwLjMxOC02NS42MzUgNjcuMDUyLTYzLjkyOSAzMy4yNzEgMS41NDUgNjAuMDQ4IDI4LjkwNSA2MC45MjUgNjIuMjAxLjg2OCAzMi45MzMtMjMuMTUyIDYwLjQyMy01NC42MDggNjUuMDM5bDQuNjcgMzIuNjlIMzM2YzguODM3IDAgMTYgNy4xNjMgMTYgMTZ2MzJjMCA4LjgzNy03LjE2MyAxNi0xNiAxNkgyMTUuMTgybDQuNTcyIDMySDM1MmEzMiAzMiAwIDAgMSAyOC45NjIgMTguMzkyTDQzOC40NzcgMzk2LjhsMzYuMTc4LTE4LjM0OWM3LjkxNS0zLjkyOSAxNy41MTctLjY5NyAyMS40NDYgNy4yMTh6TTMxMS4zNTggMzUyaC0yNC41MDZjLTcuNzg4IDU0LjIwNC01NC41MjggOTYtMTEwLjg1MiA5Ni02MS43NTcgMC0xMTItNTAuMjQzLTExMi0xMTIgMC00MS41MDUgMjIuNjk0LTc3LjgwOSA1Ni4zMjQtOTcuMTU2LTMuNzEyLTI1Ljk2NS02Ljg0NC00Ny44Ni05LjQ4OC02Ni4zMzNDNDUuOTU2IDE5OC40NjQgMCAyNjEuOTYzIDAgMzM2YzAgOTcuMDQ3IDc4Ljk1MyAxNzYgMTc2IDE3NiA3MS44NyAwIDEzMy44MDYtNDMuMzA4IDE2MS4xMS0xMDUuMTkyTDMxMS4zNTggMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaWZpIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzNC45MSAxNTQuODhDNDU3Ljc0LTguOTkgMTgyLjE5LTguOTMgNS4wOSAxNTQuODhjLTYuNjYgNi4xNi02Ljc5IDE2LjU5LS4zNSAyMi45OGwzNC4yNCAzMy45N2M2LjE0IDYuMSAxNi4wMiA2LjIzIDIyLjQuMzggMTQ1LjkyLTEzMy42OCAzNzEuMy0xMzMuNzEgNTE3LjI1IDAgNi4zOCA1Ljg1IDE2LjI2IDUuNzEgMjIuNC0uMzhsMzQuMjQtMzMuOTdjNi40My02LjM5IDYuMy0xNi44Mi0uMzYtMjIuOTh6TTMyMCAzNTJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjRzMjguNjUgNjQgNjQgNjQgNjQtMjguNjUgNjQtNjQtMjguNjUtNjQtNjQtNjR6bTIwMi42Ny04My41OWMtMTE1LjI2LTEwMS45My0yOTAuMjEtMTAxLjgyLTQwNS4zNCAwLTYuOSA2LjEtNy4xMiAxNi42OS0uNTcgMjMuMTVsMzQuNDQgMzMuOTljNiA1LjkyIDE1LjY2IDYuMzIgMjIuMDUuOCA4My45NS03Mi41NyAyMDkuNzQtNzIuNDEgMjkzLjQ5IDAgNi4zOSA1LjUyIDE2LjA1IDUuMTMgMjIuMDUtLjhsMzQuNDQtMzMuOTljNi41Ni02LjQ2IDYuMzMtMTcuMDYtLjU2LTIzLjE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1Ni43IDI1NkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgxNDIuMmMxNS45IDAgMzAuOCAxMC45IDMzLjQgMjYuNiAzLjMgMjAtMTIuMSAzNy40LTMxLjYgMzcuNC0xNC4xIDAtMjYuMS05LjItMzAuNC0yMS45LTIuMS02LjMtOC42LTEwLjEtMTUuMi0xMC4xSDgxLjZjLTkuOCAwLTE3LjcgOC44LTE1LjkgMTguNCA4LjYgNDQuMSA0Ny42IDc3LjYgOTQuMiA3Ny42IDU3LjEgMCAxMDIuNy01MC4xIDk1LjItMTA4LjZDMjQ5IDI5MSAyMDUuNCAyNTYgMTU2LjcgMjU2ek0xNiAyMjRoMzM2YzU5LjcgMCAxMDYuOC01NC44IDkzLjgtMTE2LjctNy42LTM2LjItMzYuOS02NS41LTczLjEtNzMuMS01NS40LTExLjYtMTA1LjEgMjQuOS0xMTQuOSA3NS41LTEuOSA5LjYgNi4xIDE4LjMgMTUuOCAxOC4zaDMyLjhjNi43IDAgMTMuMS0zLjggMTUuMi0xMC4xQzMyNS45IDEwNS4yIDMzNy45IDk2IDM1MiA5NmMxOS40IDAgMzQuOSAxNy40IDMxLjYgMzcuNC0yLjYgMTUuNy0xNy40IDI2LjYtMzMuNCAyNi42SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2em0zODQgMzJIMjQzLjdjMTkuMyAxNi42IDMzLjIgMzguOCAzOS44IDY0SDQwMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGMtMTcuOSAwLTMzLjMtOS45LTQxLjYtMjQuNC0yLjktNS04LjctNy42LTE0LjUtNy42aC0zMy44Yy0xMC45IDAtMTkgMTAuOC0xNS4zIDIxLjEgMTcuOCA1MC42IDcwLjUgODQuOCAxMjkuNCA3Mi4zIDQxLjItOC43IDc1LjEtNDEuNiA4NC43LTgyLjdDNTI2IDMyMS41IDQ3MC41IDI1NiA0MDAgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dDbG9zZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tODMuNiAyOTAuNWM0LjggNC44IDQuOCAxMi42IDAgMTcuNGwtNDAuNSA0MC41Yy00LjggNC44LTEyLjYgNC44LTE3LjQgMEwyNTYgMzEzLjNsLTY2LjUgNjcuMWMtNC44IDQuOC0xMi42IDQuOC0xNy40IDBsLTQwLjUtNDAuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNjcuMS02Ni41LTY3LjEtNjYuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNDAuNS00MC41YzQuOC00LjggMTIuNi00LjggMTcuNCAwbDY2LjUgNjcuMSA2Ni41LTY3LjFjNC44LTQuOCAxMi42LTQuOCAxNy40IDBsNDAuNSA0MC41YzQuOCA0LjggNC44IDEyLjYgMCAxNy40TDMxMy4zIDI1Nmw2Ny4xIDY2LjV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmRvd01heGltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNiAxNjBINjR2LTg0YzAtNi42IDUuNC0xMiAxMi0xMmgzNjBjNi42IDAgMTIgNS40IDEyIDEydjg0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dNaW5pbWl6ZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzUySDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5kb3dSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUxMiA0OHYyODhjMCAyNi41LTIxLjUgNDgtNDggNDhoLTQ4VjE3NmMwLTQ0LjEtMzUuOS04MC04MC04MEgxMjhWNDhjMC0yNi41IDIxLjUtNDggNDgtNDhoMjg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zODQgMTc2djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTc2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDI4OGMyNi41IDAgNDggMjEuNSA0OCA0OHptLTY4IDI4YzAtNi42LTUuNC0xMi0xMi0xMkg3NmMtNi42IDAtMTIgNS40LTEyIDEydjUyaDI1MnYtNTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmVCb3R0bGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTA3LjMxIDcyLjU3TDQzOS40MyA0LjY5Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwbC0yMi42MyAyMi42M2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wtNzYuNjcgNzYuNjdjLTQ2LjU4LTE5LjctMTAyLjQtMTAuNzMtMTQwLjM3IDI3LjIzTDE4Ljc1IDMxMi4yM2MtMjQuOTkgMjQuOTktMjQuOTkgNjUuNTIgMCA5MC41MWw5MC41MSA5MC41MWMyNC45OSAyNC45OSA2NS41MiAyNC45OSA5MC41MSAwbDE1OC4zOS0xNTguMzljMzcuOTYtMzcuOTYgNDYuOTMtOTMuNzkgMjcuMjMtMTQwLjM3bDc2LjY3LTc2LjY3YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjMtMjIuNjNjNi4yNC02LjI0IDYuMjQtMTYuMzctLjAxLTIyLjYyek0xNzkuMjIgNDIzLjI5bC05MC41MS05MC41MSAxMjIuMDQtMTIyLjA0IDkwLjUxIDkwLjUxLTEyMi4wNCAxMjIuMDR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdpbmVHbGFzc0FsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMjg4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yMTYgNDY0aC00MFYzNDYuODFjNjguNDctMTUuODkgMTE4LjA1LTc5LjkxIDExMS40LTE1NC4xNmwtMTUuOTUtMTc4LjFDMjcwLjcxIDYuMzEgMjYzLjkgMCAyNTUuNzQgMEgzMi4yNmMtOC4xNSAwLTE0Ljk3IDYuMzEtMTUuNyAxNC41NUwuNiAxOTIuNjZDLTYuMDUgMjY2LjkxIDQzLjUzIDMzMC45MyAxMTIgMzQ2LjgyVjQ2NEg3MmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyMDhjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MHpNNjEuNzUgNDhoMTY0LjVsNy4xNyA4MEg1NC41OGw3LjE3LTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFXaW5lR2xhc3MgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDI4OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjE2IDQ2NGgtNDBWMzQ2LjgxYzY4LjQ3LTE1Ljg5IDExOC4wNS03OS45MSAxMTEuNC0xNTQuMTZsLTE1Ljk1LTE3OC4xQzI3MC43MSA2LjMxIDI2My45IDAgMjU1Ljc0IDBIMzIuMjZjLTguMTUgMC0xNC45NyA2LjMxLTE1LjcgMTQuNTVMLjYgMTkyLjY2Qy02LjA1IDI2Ni45MSA0My41MyAzMzAuOTMgMTEyIDM0Ni44MlY0NjRINzJjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjA4YzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdvblNpZ24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY0IDE5MmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDhsMTguNi04MC42YzEuNy03LjUtNC0xNC43LTExLjctMTQuN2gtNDYuMWMtNS43IDAtMTAuNiA0LTExLjcgOS41TDQ1MC43IDEyOEgzNDAuOGwtMTkuNy04NmMtMS4zLTUuNS02LjEtOS4zLTExLjctOS4zaC00NGMtNS42IDAtMTAuNCAzLjgtMTEuNyA5LjNsLTIwIDg2SDEyNWwtMTcuNS04NS43Yy0xLjEtNS42LTYuMS05LjYtMTEuOC05LjZINTMuNmMtNy43IDAtMTMuNCA3LjEtMTEuNyAxNC42TDYwIDEyOEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg2Mi4zbDcuMiAzMkgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg4My45bDQwLjkgMTgyLjZjMS4yIDUuNSA2LjEgOS40IDExLjcgOS40aDU2LjhjNS42IDAgMTAuNC0zLjkgMTEuNy05LjNMMjU5LjMgMjg4aDU1LjFsNDIuNCAxODIuN2MxLjMgNS40IDYuMSA5LjMgMTEuNyA5LjNoNTYuOGM1LjYgMCAxMC40LTMuOSAxMS43LTkuM0w0NzkuMSAyODhINTY0YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC03MC4xbDcuNC0zMnpNMTgzLjggMzQyYy02LjIgMjUuOC02LjggNDcuMi03LjMgNDcuMmgtMS4xcy0xLjctMjItNi44LTQ3LjJsLTExLTU0aDM4Ljh6bTI3LjUtMTE4aC02Ni44bC02LjUtMzJoODAuOHptNjIuOSAwbDItOC42YzEuOS04IDMuNS0xNiA0LjgtMjMuNGgxMS44YzEuMyA3LjQgMi45IDE1LjQgNC44IDIzLjRsMiA4LjZ6bTEzMC45IDExOGMtNS4xIDI1LjItNi44IDQ3LjItNi44IDQ3LjJoLTEuMWMtLjYgMC0xLjEtMjEuNC03LjMtNDcuMmwtMTIuNC01NGgzOS4xem0yNS4yLTExOGgtNjcuNGwtNy4zLTMyaDgxLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVdyZW5jaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDcuNzMgMTA5LjFjLTIuMjQtOS4wMy0xMy41NC0xMi4wOS0yMC4xMi01LjUxbC03NC4zNiA3NC4zNi02Ny44OC0xMS4zMS0xMS4zMS02Ny44OCA3NC4zNi03NC4zNmM2LjYyLTYuNjIgMy40My0xNy45LTUuNjYtMjAuMTYtNDcuMzgtMTEuNzQtOTkuNTUuOTEtMTM2LjU4IDM3LjkzLTM5LjY0IDM5LjY0LTUwLjU1IDk3LjEtMzQuMDUgMTQ3LjJMMTguNzQgNDAyLjc2Yy0yNC45OSAyNC45OS0yNC45OSA2NS41MSAwIDkwLjUgMjQuOTkgMjQuOTkgNjUuNTEgMjQuOTkgOTAuNSAwbDIxMy4yMS0yMTMuMjFjNTAuMTIgMTYuNzEgMTA3LjQ3IDUuNjggMTQ3LjM3LTM0LjIyIDM3LjA3LTM3LjA3IDQ5LjctODkuMzIgMzcuOTEtMTM2Ljczek02NCA0NzJjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFYUmF5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0MCAzODRjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnptMTYwIDMyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6TTYyNCAwSDE2QzcuMiAwIDAgNy4yIDAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2em0wIDQ0OGgtNDhWOTZINjR2MzUySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDYwOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNNDgwIDI0OGMwIDQuNC0zLjYgOC04IDhIMzM2djMyaDEwNGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMzNnYzMmg2NGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OC00OC0yMS41LTQ4LTQ4di0xNmgtNjR2MTZjMCAyNi41LTIxLjUgNDgtNDggNDhzLTQ4LTIxLjUtNDgtNDggMjEuNS00OCA0OC00OGg2NHYtMzJIMjAwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMDR2LTMySDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTM2di0zMkgyMDBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDEwNHYtMjRjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHYyNGgxMDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzMzZ2MzJoMTM2YzQuNCAwIDggMy42IDggOHYxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWVuU2lnbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNTEuMiAzMmgtNjUuM2MtNC42IDAtOC44IDIuNi0xMC44IDYuN2wtNTUuNCAxMTMuMmMtMTQuNSAzNC43LTI3LjEgNzEuOS0yNy4xIDcxLjloLTEuM3MtMTIuNi0zNy4yLTI3LjEtNzEuOUwxMDguOCAzOC43Yy0yLTQuMS02LjItNi43LTEwLjgtNi43SDMyLjhjLTkuMSAwLTE0LjggOS43LTEwLjYgMTcuNkwxMDIuMyAyMDBINDRjLTYuNiAwLTEyIDUuNC0xMiAxMnYzMmMwIDYuNiA1LjQgMTIgMTIgMTJoODguMmwxOS44IDM3LjJWMzIwSDQ0Yy02LjYgMC0xMiA1LjQtMTIgMTJ2MzJjMCA2LjYgNS40IDEyIDEyIDEyaDEwOHY5MmMwIDYuNiA1LjQgMTIgMTIgMTJoNTZjNi42IDAgMTItNS40IDEyLTEydi05MmgxMDhjNi42IDAgMTItNS40IDEyLTEydi0zMmMwLTYuNi01LjQtMTItMTItMTJIMjMydi0yNi44bDE5LjgtMzcuMkgzNDBjNi42IDAgMTItNS40IDEyLTEydi0zMmMwLTYuNi01LjQtMTItMTItMTJoLTU4LjNsODAuMS0xNTAuNGM0LjMtNy45LTEuNS0xNy42LTEwLjYtMTcuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhWWluWWFuZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDM3NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xMjhjLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZzNDIuOTggOTYgOTYgOTZjLTEwNi4wNCAwLTE5Mi04NS45Ni0xOTItMTkyUzE0MS45NiA2NCAyNDggNjRjNTMuMDIgMCA5NiA0Mi45OCA5NiA5NnMtNDIuOTggOTYtOTYgOTZ6bTAtMTI4Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBZGRyZXNzQm9vayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzYgMTYwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMFY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDMyMGMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDhoMjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwdi02NGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwem0tNjggMzA0SDQ4VjQ4aDMyMHY0MTZ6TTIwOCAyNTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em0tODkuNiAxMjhoMTc5LjJjMTIuNCAwIDIyLjQtOC42IDIyLjQtMTkuMnYtMTkuMmMwLTMxLjgtMzAuMS01Ny42LTY3LjItNTcuNi0xMC44IDAtMTguNyA4LTQ0LjggOC0yNi45IDAtMzMuNC04LTQ0LjgtOC0zNy4xIDAtNjcuMiAyNS44LTY3LjIgNTcuNnYxOS4yYzAgMTAuNiAxMCAxOS4yIDIyLjQgMTkuMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQWRkcmVzc0NhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptMCA0MDBINDhWODBoNDgwdjM1MnpNMjA4IDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bS04OS42IDEyOGgxNzkuMmMxMi40IDAgMjIuNC04LjYgMjIuNC0xOS4ydi0xOS4yYzAtMzEuOC0zMC4xLTU3LjYtNjcuMi01Ny42LTEwLjggMC0xOC43IDgtNDQuOCA4LTI2LjkgMC0zMy40LTgtNDQuOC04LTM3LjEgMC02Ny4yIDI1LjgtNjcuMiA1Ny42djE5LjJjMCAxMC42IDEwIDE5LjIgMjIuNCAxOS4yek0zNjAgMzIwaDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bTAtNjRoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMC02NGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdBbmdyeSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTAtMTQ0Yy0zMy42IDAtNjUuMiAxNC44LTg2LjggNDAuNi04LjUgMTAuMi03LjEgMjUuMyAzLjEgMzMuOHMyNS4zIDcuMiAzMy44LTNjMjQuOC0yOS43IDc1LTI5LjcgOTkuOCAwIDguMSA5LjcgMjMuMiAxMS45IDMzLjggMyAxMC4yLTguNSAxMS41LTIzLjYgMy4xLTMzLjgtMjEuNi0yNS44LTUzLjItNDAuNi04Ni44LTQwLjZ6bS00OC03MmMxMC4zIDAgMTkuOS02LjcgMjMtMTcuMSAzLjgtMTIuNy0zLjQtMjYuMS0xNi4xLTI5LjlsLTgwLTI0Yy0xMi44LTMuOS0yNi4xIDMuNC0yOS45IDE2LjEtMy44IDEyLjcgMy40IDI2LjEgMTYuMSAyOS45bDI4LjIgOC41Yy0zLjEgNC45LTUuMyAxMC40LTUuMyAxNi42IDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjQgMzItMzIuMXptMTk5LTU0LjljLTMuOC0xMi43LTE3LjEtMTkuOS0yOS45LTE2LjFsLTgwIDI0Yy0xMi43IDMuOC0xOS45IDE3LjItMTYuMSAyOS45IDMuMSAxMC40IDEyLjcgMTcuMSAyMyAxNy4xIDAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJjMC02LjItMi4yLTExLjctNS4zLTE2LjZsMjguMi04LjVjMTIuNy0zLjcgMTkuOS0xNy4xIDE2LjEtMjkuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQXJyb3dBbHRDaXJjbGVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptLTMyLTMxNnYxMTZoLTY3Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWw5OSA5OWM0LjcgNC43IDEyLjMgNC43IDE3IDBsOTktOTljNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNWgtNjdWMTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQXJyb3dBbHRDaXJjbGVMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTggMjU2YzAgMTM3IDExMSAyNDggMjQ4IDI0OHMyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDggOCAxMTkgOCAyNTZ6bTQ0OCAwYzAgMTEwLjUtODkuNSAyMDAtMjAwIDIwMFM1NiAzNjYuNSA1NiAyNTYgMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDB6bS03Mi0yMHY0MGMwIDYuNi01LjQgMTItMTIgMTJIMjU2djY3YzAgMTAuNy0xMi45IDE2LTIwLjUgOC41bC05OS05OWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDk5LTk5YzcuNi03LjYgMjAuNS0yLjIgMjAuNSA4LjV2NjdoMTE2YzYuNiAwIDEyIDUuNCAxMiAxMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQXJyb3dBbHRDaXJjbGVSaWdodCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OHptLTQ0OCAwYzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2em03MiAyMHYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDExNnYtNjdjMC0xMC43IDEyLjktMTYgMjAuNS04LjVsOTkgOTljNC43IDQuNyA0LjcgMTIuMyAwIDE3bC05OSA5OWMtNy42IDcuNi0yMC41IDIuMi0yMC41LTguNXYtNjdIMTQwYy02LjYgMC0xMi01LjQtMTItMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Fycm93QWx0Q2lyY2xlVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNGMxMzcgMCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4em0wLTQ0OGMxMTAuNSAwIDIwMCA4OS41IDIwMCAyMDBzLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2IDE0NS41IDU2IDI1NiA1NnptMjAgMzI4aC00MGMtNi42IDAtMTItNS40LTEyLTEyVjI1NmgtNjdjLTEwLjcgMC0xNi0xMi45LTguNS0yMC41bDk5LTk5YzQuNy00LjcgMTIuMy00LjcgMTcgMGw5OSA5OWM3LjYgNy42IDIuMiAyMC41LTguNSAyMC41aC02N3YxMTZjMCA2LjYtNS40IDEyLTEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdCZWxsU2xhc2ggKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDY0MCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNjMzLjk5IDQ3MS4wMkwzNiAzLjUxQzI5LjEtMi4wMSAxOS4wMy0uOSAxMy41MSA2bC0xMCAxMi40OUMtMi4wMiAyNS4zOS0uOSAzNS40NiA2IDQwLjk4bDU5OCA0NjcuNTFjNi45IDUuNTIgMTYuOTYgNC40IDIyLjQ5LTIuNDlsMTAtMTIuNDljNS41Mi02LjkgNC40MS0xNi45Ny0yLjUtMjIuNDl6TTE2My41MyAzNjhjMTYuNzEtMjIuMDMgMzQuNDgtNTUuOCA0MS40LTExMC41OGwtNDUuNDctMzUuNTVjLTMuMjcgOTAuNzMtMzYuNDcgMTIwLjY4LTU0Ljg0IDE0MC40Mi02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgyNzkuNjZsLTYxLjQtNDhIMTYzLjUzek0zMjAgOTZjNjEuODYgMCAxMTIgNTAuMTQgMTEyIDExMiAwIC4yLS4wNi4zOC0uMDYuNTguMDIgMTYuODQgMS4xNiAzMS43NyAyLjc5IDQ1LjczbDU5LjUzIDQ2LjU0Yy04LjMxLTIyLjEzLTE0LjM0LTUxLjQ5LTE0LjM0LTkyLjg1IDAtNzcuNy01NC40OC0xMzkuOS0xMjcuOTQtMTU1LjE2VjMyYzAtMTcuNjctMTQuMzItMzItMzEuOTgtMzJzLTMxLjk4IDE0LjMzLTMxLjk4IDMydjIwLjg0Yy0yNi4wMiA1LjQxLTQ5LjQ1IDE2Ljk0LTY5LjEzIDMyLjcybDM4LjE3IDI5Ljg0QzI3NSAxMDMuMTggMjk2LjY1IDk2IDMyMCA5NnptMCA0MTZjMzUuMzIgMCA2My45Ny0yOC42NSA2My45Ny02NEgyNTYuMDNjMCAzNS4zNSAyOC42NSA2NCA2My45NyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQmVsbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MzkuMzkgMzYyLjI5Yy0xOS4zMi0yMC43Ni01NS40Ny01MS45OS01NS40Ny0xNTQuMjkgMC03Ny43LTU0LjQ4LTEzOS45LTEyNy45NC0xNTUuMTZWMzJjMC0xNy42Ny0xNC4zMi0zMi0zMS45OC0zMnMtMzEuOTggMTQuMzMtMzEuOTggMzJ2MjAuODRDMTE4LjU2IDY4LjEgNjQuMDggMTMwLjMgNjQuMDggMjA4YzAgMTAyLjMtMzYuMTUgMTMzLjUzLTU1LjQ3IDE1NC4yOS02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgzODMuOGMxOS4xMiAwIDMyLTE1LjYgMzIuMS0zMiAuMDUtNy41NS0yLjYxLTE1LjI3LTguNjEtMjEuNzF6TTY3LjUzIDM2OGMyMS4yMi0yNy45NyA0NC40Mi03NC4zMyA0NC41My0xNTkuNDIgMC0uMi0uMDYtLjM4LS4wNi0uNTggMC02MS44NiA1MC4xNC0xMTIgMTEyLTExMnMxMTIgNTAuMTQgMTEyIDExMmMwIC4yLS4wNi4zOC0uMDYuNTguMTEgODUuMSAyMy4zMSAxMzEuNDYgNDQuNTMgMTU5LjQySDY3LjUzek0yMjQgNTEyYzM1LjMyIDAgNjMuOTctMjguNjUgNjMuOTctNjRIMTYwLjAzYzAgMzUuMzUgMjguNjUgNjQgNjMuOTcgNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Jvb2ttYXJrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMzNiAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djQ2NGwxOTItMTEyIDE5MiAxMTJWNDhjMC0yNi41MS0yMS40OS00OC00OC00OHptMCA0MjguNDNsLTE0NC04NC0xNDQgODRWNTRhNiA2IDAgMCAxIDYtNmgyNzZjMy4zMTQgMCA2IDIuNjgzIDYgNS45OTZWNDI4LjQzelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdCdWlsZGluZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMTQ4di00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnptMTQwIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMnptLTEyOCA5Nmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJ6bTEyOCAwaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMnptLTc2IDg0di00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptNzYgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyem0xODAgMTI0djM2SDB2LTM2YzAtNi42IDUuNC0xMiAxMi0xMmgxOS41VjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0aDMzN2MxMy4zIDAgMjQgMTAuNyAyNCAyNHY0NDBINDM2YzYuNiAwIDEyIDUuNCAxMiAxMnpNNzkuNSA0NjNIMTkydi02N2MwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjY3aDExMi41VjQ5TDgwIDQ4bC0uNSA0MTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OCAyODhoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyem0xMDgtMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem05NiAwdi00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptLTk2IDk2di00MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnptLTk2IDB2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyem0xOTIgMHYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bTk2LTI2MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2VjE2MEg0OHYyOThjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyQ2hlY2sgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDY0aC00OFYxMmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1MkgxNjBWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTJINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptLTYgNDAwSDU0YTYgNiAwIDAgMS02LTZWMTYwaDM1MnYyOThhNiA2IDAgMCAxLTYgNnptLTUyLjg0OS0yMDAuNjVMMTk4Ljg0MiA0MDQuNTE5Yy00LjcwNSA0LjY2Ny0xMi4zMDMgNC42MzctMTYuOTcxLS4wNjhsLTc1LjA5MS03NS42OTljLTQuNjY3LTQuNzA1LTQuNjM3LTEyLjMwMy4wNjgtMTYuOTcxbDIyLjcxOS0yMi41MzZjNC43MDUtNC42NjcgMTIuMzAzLTQuNjM3IDE2Ljk3LjA2OWw0NC4xMDQgNDQuNDYxIDExMS4wNzItMTEwLjE4MWM0LjcwNS00LjY2NyAxMi4zMDMtNC42MzcgMTYuOTcxLjA2OGwyMi41MzYgMjIuNzE4YzQuNjY3IDQuNzA1IDQuNjM2IDEyLjMwMy0uMDY5IDE2Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYWxlbmRhck1pbnVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNCAzMjhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMjRjMC02LjYgNS40LTEyIDEyLTEyaDIwMGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjRjMCA2LjYtNS40IDEyLTEyIDEySDEyNHptMzI0LTIxNnYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2VjE2MEg0OHYyOThjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyUGx1cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMjkydjI0YzAgNi42LTUuNCAxMi0xMiAxMmgtNzZ2NzZjMCA2LjYtNS40IDEyLTEyIDEyaC0yNGMtNi42IDAtMTItNS40LTEyLTEydi03NmgtNzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMjRjMC02LjYgNS40LTEyIDEyLTEyaDc2di03NmMwLTYuNiA1LjQtMTIgMTItMTJoMjRjNi42IDAgMTIgNS40IDEyIDEydjc2aDc2YzYuNiAwIDEyIDUuNCAxMiAxMnptMTEyLTE4MHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2VjE2MEg0OHYyOThjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyVGltZXMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzExLjcgMzc0LjdsLTE3IDE3Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjI0IDMzNy45bC01My43IDUzLjdjLTQuNyA0LjctMTIuMyA0LjctMTcgMGwtMTctMTdjLTQuNy00LjctNC43LTEyLjMgMC0xN2w1My43LTUzLjctNTMuNy01My43Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsMTctMTdjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDUzLjcgNTMuNyA1My43LTUzLjdjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDE3IDE3YzQuNyA0LjcgNC43IDEyLjMgMCAxN0wyNTcuOSAzMDRsNTMuNyA1My43YzQuOCA0LjcgNC44IDEyLjMuMSAxN3pNNDQ4IDExMnYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGg0OFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDEyOFYxMmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjUyaDQ4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2VjE2MEg0OHYyOThjMCAzLjMgMi43IDYgNiA2aDM0MGMzLjMgMCA2LTIuNyA2LTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NhbGVuZGFyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMCA2NGgtNDhWMTJjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjUySDE2MFYxMmMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxMTJjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS02IDQwMEg1NGMtMy4zIDAtNi0yLjctNi02VjE2MGgzNTJ2Mjk4YzAgMy4zLTIuNyA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FyZXRTcXVhcmVEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEyNS4xIDIwOGgxOTcuOGMxMC43IDAgMTYuMSAxMyA4LjUgMjAuNWwtOTguOSA5OC4zYy00LjcgNC43LTEyLjIgNC43LTE2LjkgMGwtOTguOS05OC4zYy03LjctNy41LTIuMy0yMC41IDguNC0yMC41ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYXJldFNxdWFyZUxlZnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjcyIDE1Ny4xdjE5Ny44YzAgMTAuNy0xMyAxNi4xLTIwLjUgOC41bC05OC4zLTk4LjljLTQuNy00LjctNC43LTEyLjIgMC0xNi45bDk4LjMtOTguOWM3LjUtNy43IDIwLjUtMi4zIDIwLjUgOC40ek00NDggODB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDYXJldFNxdWFyZVJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiAzNTQuOVYxNTcuMWMwLTEwLjcgMTMtMTYuMSAyMC41LTguNWw5OC4zIDk4LjljNC43IDQuNyA0LjcgMTIuMiAwIDE2LjlsLTk4LjMgOTguOWMtNy41IDcuNy0yMC41IDIuMy0yMC41LTguNHpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2Vjg2YzAtMy4zLTIuNy02LTYtNkg1NGMtMy4zIDAtNiAyLjctNiA2djM0MGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2FyZXRTcXVhcmVVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMjIuOSAzMDRIMTI1LjFjLTEwLjcgMC0xNi4xLTEzLTguNS0yMC41bDk4LjktOTguM2M0LjctNC43IDEyLjItNC43IDE2LjkgMGw5OC45IDk4LjNjNy43IDcuNSAyLjMgMjAuNS04LjQgMjAuNXpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2Vjg2YzAtMy4zLTIuNy02LTYtNkg1NGMtMy4zIDAtNiAyLjctNiA2djM0MGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ2hhcnRCYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzk2LjggMzUyaDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjEwOC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djIzMC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptLTE5MiAwaDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44VjE0MC44YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djE5OC40YzAgNi40IDYuNCAxMi44IDEyLjggMTIuOHptOTYgMGgyMi40YzYuNCAwIDEyLjgtNi40IDEyLjgtMTIuOFYyMDQuOGMwLTYuNC02LjQtMTIuOC0xMi44LTEyLjhoLTIyLjRjLTYuNCAwLTEyLjggNi40LTEyLjggMTIuOHYxMzQuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6TTQ5NiA0MDBINDhWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiA2NCAwIDcxLjE2IDAgODB2MzM2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNDY0YzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTM4Ny4yLTQ4aDIyLjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44di03MC40YzAtNi40LTYuNC0xMi44LTEyLjgtMTIuOGgtMjIuNGMtNi40IDAtMTIuOCA2LjQtMTIuOCAxMi44djcwLjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVja0NpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTAgNDhjMTEwLjUzMiAwIDIwMCA4OS40NTEgMjAwIDIwMCAwIDExMC41MzItODkuNDUxIDIwMC0yMDAgMjAwLTExMC41MzIgMC0yMDAtODkuNDUxLTIwMC0yMDAgMC0xMTAuNTMyIDg5LjQ1MS0yMDAgMjAwLTIwMG0xNDAuMjA0IDEzMC4yNjdsLTIyLjUzNi0yMi43MThjLTQuNjY3LTQuNzA1LTEyLjI2NS00LjczNi0xNi45Ny0uMDY4TDIxNS4zNDYgMzAzLjY5N2wtNTkuNzkyLTYwLjI3N2MtNC42NjctNC43MDUtMTIuMjY1LTQuNzM2LTE2Ljk3LS4wNjlsLTIyLjcxOSAyMi41MzZjLTQuNzA1IDQuNjY3LTQuNzM2IDEyLjI2NS0uMDY4IDE2Ljk3MWw5MC43ODEgOTEuNTE2YzQuNjY3IDQuNzA1IDEyLjI2NSA0LjczNiAxNi45Ny4wNjhsMTcyLjU4OS0xNzEuMjA0YzQuNzA0LTQuNjY4IDQuNzM0LTEyLjI2Ni4wNjctMTYuOTcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaGVja1NxdWFyZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00MDAgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bTAgNDAwSDQ4VjgwaDM1MnYzNTJ6bS0zNS44NjQtMjQxLjcyNEwxOTEuNTQ3IDM2MS40OGMtNC43MDUgNC42NjctMTIuMzAzIDQuNjM3LTE2Ljk3LS4wNjhsLTkwLjc4MS05MS41MTZjLTQuNjY3LTQuNzA1LTQuNjM3LTEyLjMwMy4wNjktMTYuOTcxbDIyLjcxOS0yMi41MzZjNC43MDUtNC42NjcgMTIuMzAzLTQuNjM3IDE2Ljk3LjA2OWw1OS43OTIgNjAuMjc3IDE0MS4zNTItMTQwLjIxNmM0LjcwNS00LjY2NyAxMi4zMDMtNC42MzcgMTYuOTcuMDY4bDIyLjUzNiAyMi43MThjNC42NjcgNC43MDYgNC42MzcgMTIuMzA0LS4wNjggMTYuOTcxelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCA0NDhjLTExMC41IDAtMjAwLTg5LjUtMjAwLTIwMFMxNDUuNSA1NiAyNTYgNTZzMjAwIDg5LjUgMjAwIDIwMC04OS41IDIwMC0yMDAgMjAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDbGlwYm9hcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDQwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMTQ0IDQxOGMwIDMuMy0yLjcgNi02IDZINTRjLTMuMyAwLTYtMi43LTYtNlYxMThjMC0zLjMgMi43LTYgNi02aDQydjM2YzAgNi42IDUuNCAxMiAxMiAxMmgxNjhjNi42IDAgMTItNS40IDEyLTEydi0zNmg0MmMzLjMgMCA2IDIuNyA2IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptNjEuOC0xMDQuNGwtODQuOS02MS43Yy0zLjEtMi4zLTQuOS01LjktNC45LTkuN1YxMTZjMC02LjYgNS40LTEyIDEyLTEyaDMyYzYuNiAwIDEyIDUuNCAxMiAxMnYxNDEuN2w2Ni44IDQ4LjZjNS40IDMuOSA2LjUgMTEuNCAyLjYgMTYuOEwzMzQuNiAzNDljLTMuOSA1LjMtMTEuNCA2LjUtMTYuOCAyLjZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb25lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAwSDE0NGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY0OEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYzMjBjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzMjBjMjYuNTEgMCA0OC0yMS40OSA0OC00OHYtNDhoNDhjMjYuNTEgMCA0OC0yMS40OSA0OC00OFY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4ek0zNjIgNDY0SDU0YTYgNiAwIDAgMS02LTZWMTUwYTYgNiAwIDAgMSA2LTZoNDJ2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjI0djQyYTYgNiAwIDAgMS02IDZ6bTk2LTk2SDE1MGE2IDYgMCAwIDEtNi02VjU0YTYgNiAwIDAgMSA2LTZoMzA4YTYgNiAwIDAgMSA2IDZ2MzA4YTYgNiAwIDAgMS02IDZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Nsb3NlZENhcHRpb25pbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjI4OGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tNiAzMzZINTRjLTMuMyAwLTYtMi43LTYtNlYxMThjMC0zLjMgMi43LTYgNi02aDQwNGMzLjMgMCA2IDIuNyA2IDZ2Mjc2YzAgMy4zLTIuNyA2LTYgNnptLTIxMS4xLTg1LjdjMS43IDIuNCAxLjUgNS42LS41IDcuNy01My42IDU2LjgtMTcyLjggMzIuMS0xNzIuOC02Ny45IDAtOTcuMyAxMjEuNy0xMTkuNSAxNzIuNS03MC4xIDIuMSAyIDIuNSAzLjIgMSA1LjdsLTE3LjUgMzAuNWMtMS45IDMuMS02LjIgNC05LjEgMS43LTQwLjgtMzItOTQuNi0xNC45LTk0LjYgMzEuMiAwIDQ4IDUxIDcwLjUgOTIuMiAzMi42IDIuOC0yLjUgNy4xLTIuMSA5LjIuOWwxOS42IDI3Ljd6bTE5MC40IDBjMS43IDIuNCAxLjUgNS42LS41IDcuNy01My42IDU2LjktMTcyLjggMzIuMS0xNzIuOC02Ny45IDAtOTcuMyAxMjEuNy0xMTkuNSAxNzIuNS03MC4xIDIuMSAyIDIuNSAzLjIgMSA1LjdMNDIwIDIyMC4yYy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yIDAgNDggNTEgNzAuNSA5Mi4yIDMyLjYgMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjYgMjcuN3pcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NDggMEg2NEMyOC43IDAgMCAyOC43IDAgNjR2Mjg4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2djg0YzAgNy4xIDUuOCAxMiAxMiAxMiAyLjQgMCA0LjktLjcgNy4xLTIuNEwzMDQgNDE2aDE0NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2NGMwLTM1LjMtMjguNy02NC02NC02NHptMTYgMzUyYzAgOC44LTcuMiAxNi0xNiAxNkgyODhsLTEyLjggOS42TDIwOCA0Mjh2LTYwSDY0Yy04LjggMC0xNi03LjItMTYtMTZWNjRjMC04LjggNy4yLTE2IDE2LTE2aDM4NGM4LjggMCAxNiA3LjIgMTYgMTZ2Mjg4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb21tZW50RG90cyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNDQgMjA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptMTEyIDBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xMTIgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6TTI1NiAzMkMxMTQuNiAzMiAwIDEyNS4xIDAgMjQwYzAgNDcuNiAxOS45IDkxLjIgNTIuOSAxMjYuM0MzOCA0MDUuNyA3IDQzOS4xIDYuNSA0MzkuNWMtNi42IDctOC40IDE3LjItNC42IDI2UzE0LjQgNDgwIDI0IDQ4MGM2MS41IDAgMTEwLTI1LjcgMTM5LjEtNDYuM0MxOTIgNDQyLjggMjIzLjIgNDQ4IDI1NiA0NDhjMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnptMCAzNjhjLTI2LjcgMC01My4xLTQuMS03OC40LTEyLjFsLTIyLjctNy4yLTE5LjUgMTMuOGMtMTQuMyAxMC4xLTMzLjkgMjEuNC01Ny41IDI5IDcuMy0xMi4xIDE0LjQtMjUuNyAxOS45LTQwLjJsMTAuNi0yOC4xLTIwLjYtMjEuOEM2OS43IDMxNC4xIDQ4IDI4Mi4yIDQ4IDI0MGMwLTg4LjIgOTMuMy0xNjAgMjA4LTE2MHMyMDggNzEuOCAyMDggMTYwLTkzLjMgMTYwLTIwOCAxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0NvbW1lbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0Ny42IDE5LjkgOTEuMiA1Mi45IDEyNi4zQzM4IDQwNS43IDcgNDM5LjEgNi41IDQzOS41Yy02LjYgNy04LjQgMTcuMi00LjYgMjZTMTQuNCA0ODAgMjQgNDgwYzYxLjUgMCAxMTAtMjUuNyAxMzkuMS00Ni4zQzE5MiA0NDIuOCAyMjMuMiA0NDggMjU2IDQ0OGMxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyem0wIDM2OGMtMjYuNyAwLTUzLjEtNC4xLTc4LjQtMTIuMWwtMjIuNy03LjItMTkuNSAxMy44Yy0xNC4zIDEwLjEtMzMuOSAyMS40LTU3LjUgMjkgNy4zLTEyLjEgMTQuNC0yNS43IDE5LjktNDAuMmwxMC42LTI4LjEtMjAuNi0yMS44QzY5LjcgMzE0LjEgNDggMjgyLjIgNDggMjQwYzAtODguMiA5My4zLTE2MCAyMDgtMTYwczIwOCA3MS44IDIwOCAxNjAtOTMuMyAxNjAtMjA4IDE2MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tbWVudHMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTMyIDM4Ni4yYzI3LjUtMjcuMSA0NC02MS4xIDQ0LTk4LjIgMC04MC03Ni41LTE0Ni4xLTE3Ni4yLTE1Ny45QzM2OC4zIDcyLjUgMjk0LjMgMzIgMjA4IDMyIDkzLjEgMzIgMCAxMDMuNiAwIDE5MmMwIDM3IDE2LjUgNzEgNDQgOTguMi0xNS4zIDMwLjctMzcuMyA1NC41LTM3LjcgNTQuOS02LjMgNi43LTguMSAxNi41LTQuNCAyNSAzLjYgOC41IDEyIDE0IDIxLjIgMTQgNTMuNSAwIDk2LjctMjAuMiAxMjUuMi0zOC44IDkuMiAyLjEgMTguNyAzLjcgMjguNCA0LjlDMjA4LjEgNDA3LjYgMjgxLjggNDQ4IDM2OCA0NDhjMjAuOCAwIDQwLjgtMi40IDU5LjgtNi44QzQ1Ni4zIDQ1OS43IDQ5OS40IDQ4MCA1NTMgNDgwYzkuMiAwIDE3LjUtNS41IDIxLjItMTQgMy42LTguNSAxLjktMTguMy00LjQtMjUtLjQtLjMtMjIuNS0yNC4xLTM3LjgtNTQuOHptLTM5Mi44LTkyLjNMMTIyLjEgMzA1Yy0xNC4xIDkuMS0yOC41IDE2LjMtNDMuMSAyMS40IDIuNy00LjcgNS40LTkuNyA4LTE0LjhsMTUuNS0zMS4xTDc3LjcgMjU2QzY0LjIgMjQyLjYgNDggMjIwLjcgNDggMTkyYzAtNjAuNyA3My4zLTExMiAxNjAtMTEyczE2MCA1MS4zIDE2MCAxMTItNzMuMyAxMTItMTYwIDExMmMtMTYuNSAwLTMzLTEuOS00OS01LjZsLTE5LjgtNC41ek00OTguMyAzNTJsLTI0LjcgMjQuNCAxNS41IDMxLjFjMi42IDUuMSA1LjMgMTAuMSA4IDE0LjgtMTQuNi01LjEtMjktMTIuMy00My4xLTIxLjRsLTE3LjEtMTEuMS0xOS45IDQuNmMtMTYgMy43LTMyLjUgNS42LTQ5IDUuNi01NCAwLTEwMi4yLTIwLjEtMTMxLjMtNDkuN0MzMzggMzM5LjUgNDE2IDI3Mi45IDQxNiAxOTJjMC0zLjQtLjQtNi43LS43LTEwQzQ3OS43IDE5Ni41IDUyOCAyMzguOCA1MjggMjg4YzAgMjguNy0xNi4yIDUwLjYtMjkuNyA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnQ29tcGFzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNDcuOTQgMTI5Ljg2TDIwMy42IDE5NS44M2EzMS45MzggMzEuOTM4IDAgMCAwLTE1Ljc3IDE1Ljc3bC02NS45NyAxNDQuMzRjLTcuNjEgMTYuNjUgOS41NCAzMy44MSAyNi4yIDI2LjJsMTQ0LjM0LTY1Ljk3YTMxLjkzOCAzMS45MzggMCAwIDAgMTUuNzctMTUuNzdsNjUuOTctMTQ0LjM0YzcuNjEtMTYuNjYtOS41NC0zMy44MS0yNi4yLTI2LjJ6bS03Ny4zNiAxNDguNzJjLTEyLjQ3IDEyLjQ3LTMyLjY5IDEyLjQ3LTQ1LjE2IDAtMTIuNDctMTIuNDctMTIuNDctMzIuNjkgMC00NS4xNiAxMi40Ny0xMi40NyAzMi42OS0xMi40NyA0NS4xNiAwIDEyLjQ3IDEyLjQ3IDEyLjQ3IDMyLjY5IDAgNDUuMTZ6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMjggMC0yMDAtODkuNzItMjAwLTIwMFMxMzcuNzIgNTYgMjQ4IDU2czIwMCA4OS43MiAyMDAgMjAwLTg5LjcyIDIwMC0yMDAgMjAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb3B5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMy45NDEgNjUuOTQxbC01MS44ODItNTEuODgyQTQ4IDQ4IDAgMCAwIDM0OC4xMTggMEgxNzZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2NDhINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MzIwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjI0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTQ4aDgwYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWOTkuODgyYTQ4IDQ4IDAgMCAwLTE0LjA1OS0zMy45NDF6TTI2NiA0NjRINTRhNiA2IDAgMCAxLTYtNlYxNTBhNiA2IDAgMCAxIDYtNmg3NHYyMjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg5NnY0MmE2IDYgMCAwIDEtNiA2em0xMjgtOTZIMTgyYTYgNiAwIDAgMS02LTZWNTRhNiA2IDAgMCAxIDYtNmgxMDZ2ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDg4djIwMmE2IDYgMCAwIDEtNiA2em02LTI1NmgtNjRWNDhoOS42MzJjMS41OTEgMCAzLjExNy42MzIgNC4yNDMgMS43NTdsNDguMzY4IDQ4LjM2OGE2IDYgMCAwIDEgMS43NTcgNC4yNDNWMTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDb3B5cmlnaHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUzMiAwLTIwMC04OS40NTEtMjAwLTIwMCAwLTExMC41MzEgODkuNDUxLTIwMCAyMDAtMjAwIDExMC41MzIgMCAyMDAgODkuNDUxIDIwMCAyMDAgMCAxMTAuNTMyLTg5LjQ1MSAyMDAtMjAwIDIwMHptMTA3LjM1MS0xMDEuMDY0Yy05LjYxNCA5LjcxMi00NS41MyA0MS4zOTYtMTA0LjA2NSA0MS4zOTYtODIuNDMgMC0xNDAuNDg0LTYxLjQyNS0xNDAuNDg0LTE0MS41NjcgMC03OS4xNTIgNjAuMjc1LTEzOS40MDEgMTM5Ljc2Mi0xMzkuNDAxIDU1LjUzMSAwIDg4LjczOCAyNi42MiA5Ny41OTMgMzQuNzc5YTExLjk2NSAxMS45NjUgMCAwIDEgMS45MzYgMTUuMzIybC0xOC4xNTUgMjguMTEzYy0zLjg0MSA1Ljk1LTExLjk2NiA3LjI4Mi0xNy40OTkgMi45MjEtOC41OTUtNi43NzYtMzEuODE0LTIyLjUzOC02MS43MDgtMjIuNTM4LTQ4LjMwMyAwLTc3LjkxNiAzNS4zMy03Ny45MTYgODAuMDgyIDAgNDEuNTg5IDI2Ljg4OCA4My42OTIgNzguMjc3IDgzLjY5MiAzMi42NTcgMCA1Ni44NDMtMTkuMDM5IDY1LjcyNi0yNy4yMjUgNS4yNy00Ljg1NyAxMy41OTYtNC4wMzkgMTcuODIgMS43MzhsMTkuODY1IDI3LjE3YTExLjk0NyAxMS45NDcgMCAwIDEtMS4xNTIgMTUuNTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdDcmVkaXRDYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNy45IDMySDQ4LjFDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDguMSA0OGg0NzkuOGMyNi42IDAgNDguMS0yMS41IDQ4LjEtNDhWODBjMC0yNi41LTIxLjUtNDgtNDguMS00OHpNNTQuMSA4MGg0NjcuOGMzLjMgMCA2IDIuNyA2IDZ2NDJINDguMVY4NmMwLTMuMyAyLjctNiA2LTZ6bTQ2Ny44IDM1Mkg1NC4xYy0zLjMgMC02LTIuNy02LTZWMjU2aDQ3OS44djE3MGMwIDMuMy0yLjcgNi02IDZ6TTE5MiAzMzJ2NDBjMCA2LjYtNS40IDEyLTEyIDEyaC03MmMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNzJjNi42IDAgMTIgNS40IDEyIDEyem0xOTIgMHY0MGMwIDYuNi01LjQgMTItMTIgMTJIMjM2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmgxMzZjNi42IDAgMTIgNS40IDEyIDEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdEaXp6eSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS0zMy44LTIxNy45YzcuOC03LjggNy44LTIwLjUgMC0yOC4zTDE5Ni4zIDE5MmwxNy45LTE3LjljNy44LTcuOCA3LjgtMjAuNSAwLTI4LjMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDBMMTY4IDE2My43bC0xNy44LTE3LjhjLTcuOC03LjgtMjAuNS03LjgtMjguMyAwLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zbDE3LjkgMTcuOS0xNy45IDE3LjljLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zIDcuOCA3LjggMjAuNSA3LjggMjguMyAwbDE3LjgtMTcuOCAxNy44IDE3LjhjNy45IDcuNyAyMC41IDcuNyAyOC40LS4yem0xNjAtOTIuMmMtNy44LTcuOC0yMC41LTcuOC0yOC4zIDBMMzI4IDE2My43bC0xNy44LTE3LjhjLTcuOC03LjgtMjAuNS03LjgtMjguMyAwLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zbDE3LjkgMTcuOS0xNy45IDE3LjljLTcuOCA3LjgtNy44IDIwLjUgMCAyOC4zIDcuOCA3LjggMjAuNSA3LjggMjguMyAwbDE3LjgtMTcuOCAxNy44IDE3LjhjNy44IDcuOCAyMC41IDcuOCAyOC4zIDAgNy44LTcuOCA3LjgtMjAuNSAwLTI4LjNsLTE3LjgtMTggMTcuOS0xNy45YzcuNy03LjggNy43LTIwLjQgMC0yOC4yek0yNDggMjcyYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjQtMjguNy02NC02NC02NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRG90Q2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA1NmMxMTAuNTMyIDAgMjAwIDg5LjQ1MSAyMDAgMjAwIDAgMTEwLjUzMi04OS40NTEgMjAwLTIwMCAyMDAtMTEwLjUzMiAwLTIwMC04OS40NTEtMjAwLTIwMCAwLTExMC41MzIgODkuNDUxLTIwMCAyMDAtMjAwbTAtNDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0wIDE2OGMtNDQuMTgzIDAtODAgMzUuODE3LTgwIDgwczM1LjgxNyA4MCA4MCA4MCA4MC0zNS44MTcgODAtODAtMzUuODE3LTgwLTgwLTgwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFZGl0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwMi4zIDM0NC45bDMyLTMyYzUtNSAxMy43LTEuNSAxMy43IDUuN1Y0NjRjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OGgyNzMuNWM3LjEgMCAxMC43IDguNiA1LjcgMTMuN2wtMzIgMzJjLTEuNSAxLjUtMy41IDIuMy01LjcgMi4zSDQ4djM1MmgzNTJWMzUwLjVjMC0yLjEuOC00LjEgMi4zLTUuNnptMTU2LjYtMjAxLjhMMjk2LjMgNDA1LjdsLTkwLjQgMTBjLTI2LjIgMi45LTQ4LjUtMTkuMi00NS42LTQ1LjZsMTAtOTAuNEw0MzIuOSAxNy4xYzIyLjktMjIuOSA1OS45LTIyLjkgODIuNyAwbDQzLjIgNDMuMmMyMi45IDIyLjkgMjIuOSA2MCAuMSA4Mi44ek00NjAuMSAxNzRMNDAyIDExNS45IDIxNi4yIDMwMS44bC03LjMgNjUuMyA2NS4zLTcuM0w0NjAuMSAxNzR6bTY0LjgtNzkuN2wtNDMuMi00My4yYy00LjEtNC4xLTEwLjgtNC4xLTE0LjggMEw0MzYgODJsNTguMSA1OC4xIDMwLjktMzAuOWM0LTQuMiA0LTEwLjgtLjEtMTQuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRW52ZWxvcGVPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ5NC41ODYgMTY0LjUxNmMtNC42OTctMy44ODMtMTExLjcyMy04OS45NS0xMzUuMjUxLTEwOC42NTdDMzM3LjIzMSAzOC4xOTEgMjk5LjQzNyAwIDI1NiAwYy00My4yMDUgMC04MC42MzYgMzcuNzE3LTEwMy4zMzUgNTUuODU5LTI0LjQ2MyAxOS40NS0xMzEuMDcgMTA1LjE5NS0xMzUuMTUgMTA4LjU0OUE0OC4wMDQgNDguMDA0IDAgMCAwIDAgMjAxLjQ4NVY0NjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyMDEuNTA5YTQ4IDQ4IDAgMCAwLTE3LjQxNC0zNi45OTN6TTQ2NCA0NThhNiA2IDAgMCAxLTYgNkg1NGE2IDYgMCAwIDEtNi02VjIwNC4zNDdjMC0xLjgxMy44MTYtMy41MjYgMi4yMjYtNC42NjUgMTUuODctMTIuODE0IDEwOC43OTMtODcuNTU0IDEzMi4zNjQtMTA2LjI5M0MyMDAuNzU1IDc4Ljg4IDIzMi4zOTggNDggMjU2IDQ4YzIzLjY5MyAwIDU1Ljg1NyAzMS4zNjkgNzMuNDEgNDUuMzg5IDIzLjU3MyAxOC43NDEgMTE2LjUwMyA5My40OTMgMTMyLjM2NiAxMDYuMzE2YTUuOTkgNS45OSAwIDAgMSAyLjIyNCA0LjY2M1Y0NTh6bS0zMS45OTEtMTg3LjcwNGM0LjI0OSA1LjE1OSAzLjQ2NSAxMi43OTUtMS43NDUgMTYuOTgxLTI4Ljk3NSAyMy4yODMtNTkuMjc0IDQ3LjU5Ny03MC45MjkgNTYuODYzQzMzNi42MzYgMzYyLjI4MyAyOTkuMjA1IDQwMCAyNTYgNDAwYy00My40NTIgMC04MS4yODctMzguMjM3LTEwMy4zMzUtNTUuODYtMTEuMjc5LTguOTY3LTQxLjc0NC0zMy40MTMtNzAuOTI3LTU2Ljg2NS01LjIxLTQuMTg3LTUuOTkzLTExLjgyMi0xLjc0NS0xNi45ODFsMTUuMjU4LTE4LjUyOGM0LjE3OC01LjA3MyAxMS42NTctNS44NDMgMTYuNzc5LTEuNzI2IDI4LjYxOCAyMy4wMDEgNTguNTY2IDQ3LjAzNSA3MC41NiA1Ni41NzFDMjAwLjE0MyAzMjAuNjMxIDIzMi4zMDcgMzUyIDI1NiAzNTJjMjMuNjAyIDAgNTUuMjQ2LTMwLjg4IDczLjQxLTQ1LjM4OSAxMS45OTQtOS41MzUgNDEuOTQ0LTMzLjU3IDcwLjU2My01Ni41NjggNS4xMjItNC4xMTYgMTIuNjAxLTMuMzQ2IDE2Ljc3OCAxLjcyN2wxNS4yNTggMTguNTI2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFbnZlbG9wZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgNjRINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMTJjMC0yNi41MS0yMS40OS00OC00OC00OHptMCA0OHY0MC44MDVjLTIyLjQyMiAxOC4yNTktNTguMTY4IDQ2LjY1MS0xMzQuNTg3IDEwNi40OS0xNi44NDEgMTMuMjQ3LTUwLjIwMSA0NS4wNzItNzMuNDEzIDQ0LjcwMS0yMy4yMDguMzc1LTU2LjU3OS0zMS40NTktNzMuNDEzLTQ0LjcwMUMxMDYuMTggMTk5LjQ2NSA3MC40MjUgMTcxLjA2NyA0OCAxNTIuODA1VjExMmg0MTZ6TTQ4IDQwMFYyMTQuMzk4YzIyLjkxNCAxOC4yNTEgNTUuNDA5IDQzLjg2MiAxMDQuOTM4IDgyLjY0NiAyMS44NTcgMTcuMjA1IDYwLjEzNCA1NS4xODYgMTAzLjA2MiA1NC45NTUgNDIuNzE3LjIzMSA4MC41MDktMzcuMTk5IDEwMy4wNTMtNTQuOTQ3IDQ5LjUyOC0zOC43ODMgODIuMDMyLTY0LjQwMSAxMDQuOTQ3LTgyLjY1M1Y0MDBINDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0V5ZVNsYXNoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTYzNCA0NzFMMzYgMy41MUExNiAxNiAwIDAgMCAxMy41MSA2bC0xMCAxMi40OUExNiAxNiAwIDAgMCA2IDQxbDU5OCA0NjcuNDlhMTYgMTYgMCAwIDAgMjIuNDktMi40OWwxMC0xMi40OUExNiAxNiAwIDAgMCA2MzQgNDcxek0yOTYuNzkgMTQ2LjQ3bDEzNC43OSAxMDUuMzhDNDI5LjM2IDE5MS45MSAzODAuNDggMTQ0IDMyMCAxNDRhMTEyLjI2IDExMi4yNiAwIDAgMC0yMy4yMSAyLjQ3em00Ni40MiAyMTkuMDdMMjA4LjQyIDI2MC4xNkMyMTAuNjUgMzIwLjA5IDI1OS41MyAzNjggMzIwIDM2OGExMTMgMTEzIDAgMCAwIDIzLjIxLTIuNDZ6TTMyMCAxMTJjOTguNjUgMCAxODkuMDkgNTUgMjM3LjkzIDE0NGEyODUuNTMgMjg1LjUzIDAgMCAxLTQ0IDYwLjJsMzcuNzQgMjkuNWEzMzMuNyAzMzMuNyAwIDAgMCA1Mi45LTc1LjExIDMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTlDNTUwLjI5IDEzNS41OSA0NDIuOTMgNjQgMzIwIDY0Yy0zNi43IDAtNzEuNzEgNy0xMDQuNjMgMTguODFsNDYuNDEgMzYuMjljMTguOTQtNC4zIDM4LjM0LTcuMSA1OC4yMi03LjF6bTAgMjg4Yy05OC42NSAwLTE4OS4wOC01NS0yMzcuOTMtMTQ0YTI4NS40NyAyODUuNDcgMCAwIDEgNDQuMDUtNjAuMTlsLTM3Ljc0LTI5LjVhMzMzLjYgMzMzLjYgMCAwIDAtNTIuODkgNzUuMSAzMi4zNSAzMi4zNSAwIDAgMCAwIDI5LjE5Qzg5LjcyIDM3Ni40MSAxOTcuMDggNDQ4IDMyMCA0NDhjMzYuNyAwIDcxLjcxLTcuMDUgMTA0LjYzLTE4LjgxbC00Ni40MS0zNi4yOEMzNTkuMjggMzk3LjIgMzM5Ljg5IDQwMCAzMjAgNDAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdFeWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDE0NGExMTAuOTQgMTEwLjk0IDAgMCAwLTMxLjI0IDUgNTUuNCA1NS40IDAgMCAxIDcuMjQgMjcgNTYgNTYgMCAwIDEtNTYgNTYgNTUuNCA1NS40IDAgMCAxLTI3LTcuMjRBMTExLjcxIDExMS43MSAwIDEgMCAyODggMTQ0em0yODQuNTIgOTcuNEM1MTguMjkgMTM1LjU5IDQxMC45MyA2NCAyODggNjRTNTcuNjggMTM1LjY0IDMuNDggMjQxLjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAgMjkuMTlDNTcuNzEgMzc2LjQxIDE2NS4wNyA0NDggMjg4IDQ0OHMyMzAuMzItNzEuNjQgMjg0LjUyLTE3Ny40MWEzMi4zNSAzMi4zNSAwIDAgMCAwLTI5LjE5ek0yODggNDAwYy05OC42NSAwLTE4OS4wOS01NS0yMzcuOTMtMTQ0Qzk4LjkxIDE2NyAxODkuMzQgMTEyIDI4OCAxMTJzMTg5LjA5IDU1IDIzNy45MyAxNDRDNDc3LjEgMzQ1IDM4Ni42NiA0MDAgMjg4IDQwMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yODggMjQ4djI4YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMjhjMC02LjYgNS40LTEyIDEyLTEyaDE2OGM2LjYgMCAxMiA1LjQgMTIgMTJ6bS0xMiA3MkgxMDhjLTYuNiAwLTEyIDUuNC0xMiAxMnYyOGMwIDYuNiA1LjQgMTIgMTIgMTJoMTY4YzYuNiAwIDEyLTUuNCAxMi0xMnYtMjhjMC02LjYtNS40LTEyLTEyLTEyem0xMDgtMTg4LjFWNDY0YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY0OEMwIDIxLjUgMjEuNSAwIDQ4IDBoMjA0LjFDMjY0LjggMCAyNzcgNS4xIDI4NiAxNC4xTDM2OS45IDk4YzkgOC45IDE0LjEgMjEuMiAxNC4xIDMzLjl6bS0xMjgtODBWMTI4aDc2LjFMMjU2IDUxLjl6TTMzNiA0NjRWMTc2SDIzMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWNDhINDh2NDE2aDI4OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUFyY2hpdmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTI4LjMgMTYwdjMyaDMydi0zMnptNjQtOTZoLTMydjMyaDMyem0tNjQgMzJ2MzJoMzJWOTZ6bTY0IDMyaC0zMnYzMmgzMnptMTc3LjYtMzAuMUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0yNTYgNTEuOWw3Ni4xIDc2LjFIMjU2ek0zMzYgNDY0SDQ4VjQ4aDc5Ljd2MTZoMzJWNDhIMjA4djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR6TTE5NC4yIDI2NS43Yy0xLjEtNS42LTYtOS43LTExLjgtOS43aC0yMi4xdi0zMmgtMzJ2MzJsLTE5LjcgOTcuMUMxMDIgMzg1LjYgMTI2LjggNDE2IDE2MCA0MTZjMzMuMSAwIDU3LjktMzAuMiA1MS41LTYyLjZ6bS0zMy45IDEyNC40Yy0xNy45IDAtMzIuNC0xMi4xLTMyLjQtMjdzMTQuNS0yNyAzMi40LTI3IDMyLjQgMTIuMSAzMi40IDI3LTE0LjUgMjctMzIuNCAyN3ptMzItMTk4LjFoLTMydjMyaDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlQXVkaW8gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5Ljk0MSA5Ny45NDFsLTgzLjg4Mi04My44ODJBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djQxNmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDI4OGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjEzMS44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMzMyLjExOCAxMjhIMjU2VjUxLjg4MkwzMzIuMTE4IDEyOHpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNHYyODhINDh6bTE0NC03Ni4wMjRjMCAxMC42OTEtMTIuOTI2IDE2LjA0NS0yMC40ODUgOC40ODVMMTM2IDM2MC40ODZoLTI4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi01NmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDI4bDM1LjUxNS0zNi45NDdjNy41Ni03LjU2IDIwLjQ4NS0yLjIwNiAyMC40ODUgOC40ODV2MTM1Ljk1MnptNDEuMjAxLTQ3LjEzYzkuMDUxLTkuMjk3IDkuMDYtMjQuMTMzLjAwMS0zMy40MzktMjIuMTQ5LTIyLjc1MiAxMi4yMzUtNTYuMjQ2IDM0LjM5NS0zMy40ODEgMjcuMTk4IDI3Ljk0IDI3LjIxMiA3Mi40NDQuMDAxIDEwMC40MDEtMjEuNzkzIDIyLjM4Ni01Ni45NDctMTAuMzE1LTM0LjM5Ny0zMy40ODF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVDb2RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE0OS45IDM0OS4xbC0uMi0uMi0zMi44LTI4LjkgMzIuOC0yOC45YzMuNi0zLjIgNC04LjguOC0xMi40bC0uMi0uMi0xNy40LTE4LjZjLTMuNC0zLjYtOS0zLjctMTIuNC0uNGwtNTcuNyA1NC4xYy0zLjcgMy41LTMuNyA5LjQgMCAxMi44bDU3LjcgNTQuMWMxLjYgMS41IDMuOCAyLjQgNiAyLjQgMi40IDAgNC44LTEgNi40LTIuOGwxNy40LTE4LjZjMy4zLTMuNSAzLjEtOS4xLS40LTEyLjR6bTIyMC0yNTEuMkwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0yNTYgNTEuOWw3Ni4xIDc2LjFIMjU2ek0zMzYgNDY0SDQ4VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0ek0yMDkuNiAyMTRjLTQuNy0xLjQtOS41IDEuMy0xMC45IDZMMTQ0IDQwOC4xYy0xLjQgNC43IDEuMyA5LjYgNiAxMC45bDI0LjQgNy4xYzQuNyAxLjQgOS42LTEuNCAxMC45LTZMMjQwIDIzMS45YzEuNC00LjctMS4zLTkuNi02LTEwLjl6bTI0LjUgNzYuOWwuMi4yIDMyLjggMjguOS0zMi44IDI4LjljLTMuNiAzLjItNCA4LjgtLjggMTIuNGwuMi4yIDE3LjQgMTguNmMzLjMgMy41IDguOSAzLjcgMTIuNC40bDU3LjctNTQuMWMzLjctMy41IDMuNy05LjQgMC0xMi44bC01Ny43LTU0LjFjLTMuNS0zLjMtOS4xLTMuMi0xMi40LjRsLTE3LjQgMTguNmMtMy4zIDMuNS0zLjEgOS4xLjQgMTIuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZUV4Y2VsIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHptMjEyLTI0MGgtMjguOGMtNC40IDAtOC40IDIuNC0xMC41IDYuMy0xOCAzMy4xLTIyLjIgNDIuNC0yOC42IDU3LjctMTMuOS0yOS4xLTYuOS0xNy4zLTI4LjYtNTcuNy0yLjEtMy45LTYuMi02LjMtMTAuNi02LjNIMTI0Yy05LjMgMC0xNSAxMC0xMC40IDE4bDQ2LjMgNzgtNDYuMyA3OGMtNC43IDggMS4xIDE4IDEwLjQgMThoMjguOWM0LjQgMCA4LjQtMi40IDEwLjUtNi4zIDIxLjctNDAgMjMtNDUgMjguNi01Ny43IDE0LjkgMzAuMiA1LjkgMTUuOSAyOC42IDU3LjcgMi4xIDMuOSA2LjIgNi4zIDEwLjYgNi4zSDI2MGM5LjMgMCAxNS0xMCAxMC40LTE4TDIyNCAzMjBjLjctMS4xIDMwLjMtNTAuNSA0Ni4zLTc4IDQuNy04LTEuMS0xOC0xMC4zLTE4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em0zMi00OGgyMjRWMjg4bC0yMy41LTIzLjVjLTQuNy00LjctMTIuMy00LjctMTcgMEwxNzYgMzUybC0zOS41LTM5LjVjLTQuNy00LjctMTIuMy00LjctMTcgMEw4MCAzNTJ2NjR6bTQ4LTI0MGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVQZGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em0yNTAuMi0xNDMuN2MtMTIuMi0xMi00Ny04LjctNjQuNC02LjUtMTcuMi0xMC41LTI4LjctMjUtMzYuOC00Ni4zIDMuOS0xNi4xIDEwLjEtNDAuNiA1LjQtNTYtNC4yLTI2LjItMzcuOC0yMy42LTQyLjYtNS45LTQuNCAxNi4xLS40IDM4LjUgNyA2Ny4xLTEwIDIzLjktMjQuOSA1Ni0zNS40IDc0LjQtMjAgMTAuMy00NyAyNi4yLTUxIDQ2LjItMy4zIDE1LjggMjYgNTUuMiA3Ni4xLTMxLjIgMjIuNC03LjQgNDYuOC0xNi41IDY4LjQtMjAuMSAxOC45IDEwLjIgNDEgMTcgNTUuOCAxNyAyNS41IDAgMjgtMjguMiAxNy41LTM4Ljd6bS0xOTguMSA3Ny44YzUuMS0xMy43IDI0LjUtMjkuNSAzMC40LTM1LTE5IDMwLjMtMzAuNCAzNS43LTMwLjQgMzV6bTgxLjYtMTkwLjZjNy40IDAgNi43IDMyLjEgMS44IDQwLjgtNC40LTEzLjktNC4zLTQwLjgtMS44LTQwLjh6bS0yNC40IDEzNi42YzkuNy0xNi45IDE4LTM3IDI0LjctNTQuNyA4LjMgMTUuMSAxOC45IDI3LjIgMzAuMSAzNS41LTIwLjggNC4zLTM4LjkgMTMuMS01NC44IDE5LjJ6bTEzMS42LTVzLTUgNi0zNy4zLTcuOGMzNS4xLTIuNiA0MC45IDUuNCAzNy4zIDcuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVBvd2VycG9pbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM4NCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzY5LjkgOTcuOUwyODYgMTRDMjc3IDUgMjY0LjgtLjEgMjUyLjEtLjFINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTMxLjljMC0xMi43LTUuMS0yNS0xNC4xLTM0ek0zMzIuMSAxMjhIMjU2VjUxLjlsNzYuMSA3Ni4xek00OCA0NjRWNDhoMTYwdjEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgxMDR2Mjg4SDQ4em03Mi02MFYyMzZjMC02LjYgNS40LTEyIDEyLTEyaDY5LjJjMzYuNyAwIDYyLjggMjcgNjIuOCA2Ni4zIDAgNzQuMy02OC43IDY2LjUtOTUuNSA2Ni41VjQwNGMwIDYuNi01LjQgMTItMTIgMTJIMTMyYy02LjYgMC0xMi01LjQtMTItMTJ6bTQ4LjUtODcuNGgyM2M3LjkgMCAxMy45LTIuNCAxOC4xLTcuMiA4LjUtOS44IDguNC0yOC41LjEtMzcuOC00LjEtNC42LTkuOS03LTE3LjQtN2gtMjMuOXY1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmlsZVZpZGVvIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45NDEgOTcuOTQxbC04My44ODItODMuODgyQTQ4IDQ4IDAgMCAwIDI1Mi4xMTggMEg0OEMyMS40OSAwIDAgMjEuNDkgMCA0OHY0MTZjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyODhjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxMzEuODgyYTQ4IDQ4IDAgMCAwLTE0LjA1OS0zMy45NDF6TTMzMi4xMTggMTI4SDI1NlY1MS44ODJMMzMyLjExOCAxMjh6TTQ4IDQ2NFY0OGgxNjB2MTA0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDR2Mjg4SDQ4em0yMjguNjg3LTIxMS4zMDNMMjI0IDMwNS4zNzRWMjY4YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwSDEwMGMtMTEuMDQ2IDAtMjAgOC45NTQtMjAgMjB2MTA0YzAgMTEuMDQ2IDguOTU0IDIwIDIwIDIwaDEwNGMxMS4wNDYgMCAyMC04Ljk1NCAyMC0yMHYtMzcuMzc0bDUyLjY4NyA1Mi42NzRDMjg2LjcwNCAzOTcuMzE4IDMwNCAzOTAuMjggMzA0IDM3NS45ODZWMjY0LjAxMWMwLTE0LjMxMS0xNy4zMDktMjEuMzE5LTI3LjMxMy0xMS4zMTR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZpbGVXb3JkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHptMjIwLjEtMjA4Yy01LjcgMC0xMC42IDQtMTEuNyA5LjUtMjAuNiA5Ny43LTIwLjQgOTUuNC0yMSAxMDMuNS0uMi0xLjItLjQtMi42LS43LTQuMy0uOC01LjEuMy4yLTIzLjYtOTkuNS0xLjMtNS40LTYuMS05LjItMTEuNy05LjJoLTEzLjNjLTUuNSAwLTEwLjMgMy44LTExLjcgOS4xLTI0LjQgOTktMjQgOTYuMi0yNC44IDEwMy43LS4xLTEuMS0uMi0yLjUtLjUtNC4yLS43LTUuMi0xNC4xLTczLjMtMTkuMS05OS0xLjEtNS42LTYtOS43LTExLjgtOS43aC0xNi44Yy03LjggMC0xMy41IDcuMy0xMS43IDE0LjggOCAzMi42IDI2LjcgMTA5LjUgMzMuMiAxMzYgMS4zIDUuNCA2LjEgOS4xIDExLjcgOS4xaDI1LjJjNS41IDAgMTAuMy0zLjcgMTEuNi05LjFsMTcuOS03MS40YzEuNS02LjIgMi41LTEyIDMtMTcuM2wyLjkgMTcuM2MuMS40IDEyLjYgNTAuNSAxNy45IDcxLjQgMS4zIDUuMyA2LjEgOS4xIDExLjYgOS4xaDI0LjdjNS41IDAgMTAuMy0zLjcgMTEuNi05LjEgMjAuOC04MS45IDMwLjItMTE5IDM0LjUtMTM2IDEuOS03LjYtMy44LTE0LjktMTEuNi0xNC45aC0xNS44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OS45IDk3LjlMMjg2IDE0QzI3NyA1IDI2NC44LS4xIDI1Mi4xLS4xSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjEzMS45YzAtMTIuNy01LjEtMjUtMTQuMS0zNHpNMzMyLjEgMTI4SDI1NlY1MS45bDc2LjEgNzYuMXpNNDggNDY0VjQ4aDE2MHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTA0djI4OEg0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmxhZyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYuMTc0IDgwYy00OS4xMzIgMC05My4zMDUtMzItMTYxLjkxMy0zMi0zMS4zMDEgMC01OC4zMDMgNi40ODItODAuNzIxIDE1LjE2OGE0OC4wNCA0OC4wNCAwIDAgMCAyLjE0Mi0yMC43MjdDOTMuMDY3IDE5LjU3NSA3NC4xNjcgMS41OTQgNTEuMjAxLjEwNCAyMy4yNDItMS43MSAwIDIwLjQzMSAwIDQ4YzAgMTcuNzY0IDkuNjU3IDMzLjI2MiAyNCA0MS41NjJWNDk2YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoMTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtODMuNDQzQzEwOS44NjkgMzk1LjI4IDE0My4yNTkgMzg0IDE5OS44MjYgMzg0YzQ5LjEzMiAwIDkzLjMwNSAzMiAxNjEuOTEzIDMyIDU4LjQ3OSAwIDEwMS45NzItMjIuNjE3IDEyOC41NDgtMzkuOTgxQzUwMy44NDYgMzY3LjE2MSA1MTIgMzUyLjA1MSA1MTIgMzM1Ljg1NVY5NS45MzdjMC0zNC40NTktMzUuMjY0LTU3Ljc2OC02Ni45MDQtNDQuMTE3QzQwOS4xOTMgNjcuMzA5IDM3MS42NDEgODAgMzM2LjE3NCA4MHpNNDY0IDMzNmMtMjEuNzgzIDE1LjQxMi02MC44MjQgMzItMTAyLjI2MSAzMi01OS45NDUgMC0xMDIuMDAyLTMyLTE2MS45MTMtMzItNDMuMzYxIDAtOTYuMzc5IDkuNDAzLTEyNy44MjYgMjRWMTI4YzIxLjc4NC0xNS40MTIgNjAuODI0LTMyIDEwMi4yNjEtMzIgNTkuOTQ1IDAgMTAyLjAwMiAzMiAxNjEuOTEzIDMyIDQzLjI3MSAwIDk2LjMyLTE3LjM2NiAxMjcuODI2LTMydjI0MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRmx1c2hlZCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTk2LTMxMmMtNDQuMiAwLTgwIDM1LjgtODAgODBzMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwLTM1LjgtODAtODAtODB6bTAgMTI4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMC03MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bS0xMTIgMjRjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODAgMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwem0tODAgNDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0wLTcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptMTYwIDE0NEgxODRjLTEzLjIgMC0yNCAxMC44LTI0IDI0czEwLjggMjQgMjQgMjRoMTI4YzEzLjIgMCAyNC0xMC44IDI0LTI0cy0xMC44LTI0LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdGb2xkZXJPcGVuIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyNy45IDIyNEg0ODB2LTQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDI3MmwtNjQtNjRINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQwMGMxNi41IDAgMzEuOS04LjUgNDAuNy0yMi42bDc5LjktMTI4YzIwLTMxLjktMy03My40LTQwLjctNzMuNHpNNDggMTE4YzAtMy4zIDIuNy02IDYtNmgxMzQuMWw2NCA2NEg0MjZjMy4zIDAgNiAyLjcgNiA2djQySDE1MmMtMTYuOCAwLTMyLjQgOC44LTQxLjEgMjMuMkw0OCAzNTEuNHptNDAwIDI4Mkg3Mmw3Ny4yLTEyOEg1Mjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbGRlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMTI4SDI3MmwtNTQuNjMtNTQuNjNjLTYtNi0xNC4xNC05LjM3LTIyLjYzLTkuMzdINDhDMjEuNDkgNjQgMCA4NS40OSAwIDExMnYyODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxNzZjMC0yNi41MS0yMS40OS00OC00OC00OHptMCAyNzJINDhWMTEyaDE0MC4xMmw1NC42MyA1NC42M2M2IDYgMTQuMTQgOS4zNyAyMi42MyA5LjM3SDQ2NHYyMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0ZvbnRBd2Vzb21lTG9nb0Z1bGwgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDM5OTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ1NC42IDBINTcuNEMyNS45IDAgMCAyNS45IDAgNTcuNHYzOTcuM0MwIDQ4Ni4xIDI1LjkgNTEyIDU3LjQgNTEyaDM5Ny4zYzMxLjQgMCA1Ny40LTI1LjkgNTcuNC01Ny40VjU3LjRDNTEyIDI1LjkgNDg2LjEgMCA0NTQuNiAwem0tNTguOSAzMjQuOWMwIDQuOC00LjEgNi45LTguOSA4LjktMTkuMiA4LjEtMzkuNyAxNS43LTYxLjUgMTUuNy00MC41IDAtNjguNy00NC44LTE2My4yIDIuNXY1MS44YzAgMzAuMy00NS43IDMwLjItNDUuNyAwdi0yNTBjLTktNy0xNS0xNy45LTE1LTMwLjMgMC0yMSAxNy4xLTM4LjIgMzguMi0zOC4yIDIxIDAgMzguMiAxNy4xIDM4LjIgMzguMiAwIDEyLjItNS44IDIzLjItMTQuOSAzMC4ydjIxYzM3LjEtMTIgNjUuNS0zNC40IDE0Ni4xLTMuNCAyNi42IDExLjQgNjguNy0xNS43IDc2LjUtMTUuNyA1LjUgMCAxMC4zIDQuMSAxMC4zIDguOXYxNjAuNHptNDMyLjktMTc0LjJoLTEzN3Y3MC4xSDgyNWMzOS44IDAgNDAuNCA2Mi4yIDAgNjIuMkg2OTEuNnYxMDUuNmMwIDQ1LjUtNzAuNyA0Ni40LTcwLjcgMFYxMjguM2MwLTIyIDE4LTM5LjggMzkuOC0zOS44aDE2Ny44YzM5LjYgMCA0MC41IDYyLjIuMSA2Mi4yem0xOTEuMSAyMy40Yy0xNjkuMyAwLTE2OS4xIDI1Mi40IDAgMjUyLjQgMTY5LjkgMCAxNjkuOS0yNTIuNCAwLTI1Mi40em0wIDE5Ni4xYy04MS42IDAtODIuMS0xMzkuOCAwLTEzOS44IDgyLjUgMCA4Mi40IDEzOS44IDAgMTM5Ljh6bTM3Mi40IDUzLjRjLTE3LjUgMC0zMS40LTEzLjktMzEuNC0zMS40di0xMTdjMC02Mi40LTcyLjYtNTIuNS05OS4xLTE2LjR2MTMzLjRjMCA0MS41LTYzLjMgNDEuOC02My4zIDBWMjA4YzAtNDAgNjMuMS00MS42IDYzLjEgMHYzLjRjNDMuMy01MS42IDE2Mi40LTYwLjQgMTYyLjQgMzkuM3YxNDEuNWMuMyAzMC40LTMxLjUgMzEuNC0zMS43IDMxLjR6bTE3OS43IDIuOWMtNDQuMyAwLTY4LjMtMjIuOS02OC4zLTY1LjhWMjM1LjJIMTQ4OGMtMzUuNiAwLTM2LjctNTUuMyAwLTU1LjNoMTUuNXYtMzcuM2MwLTQxLjMgNjMuOC00Mi4xIDYzLjggMHYzNy41aDI0LjljMzUuNCAwIDM1LjcgNTUuMyAwIDU1LjNoLTI0Ljl2MTA4LjVjMCAyOS42IDI2LjEgMjYuMyAyNy40IDI2LjMgMzEuNCAwIDUyLjYgNTYuMy0yMi45IDU2LjN6TTE5OTIgMTIzYy0xOS41LTUwLjItOTUuNS01MC0xMTQuNSAwLTEwNy4zIDI3NS43LTk5LjUgMjUyLjctOTkuNSAyNjIuOCAwIDQyLjggNTguMyA1MS4yIDcyLjEgMTQuNGwxMy41LTM1LjlIMjAwNmwxMyAzNS45YzE0LjIgMzcuNyA3Mi4xIDI3LjIgNzIuMS0xNC40IDAtMTAuMSA1LjMgNi44LTk5LjEtMjYyLjh6bS0xMDguOSAxNzkuMWw1MS43LTE0Mi45IDUxLjggMTQyLjloLTEwMy41em01OTEuMy04NS42bC01My43IDE3Ni4zYy0xMi40IDQxLjItNzIgNDEtODQgMGwtNDIuMy0xMzUuOS00Mi4zIDEzNS45Yy0xMi40IDQwLjktNzIgNDEuMi04NC41IDBsLTU0LjItMTc2LjNjLTEyLjUtMzkuNCA0OS44LTU2LjEgNjAuMi0xNi45TDIyMTMgMzQybDQ1LjMtMTM5LjVjMTAuOS0zMi43IDU5LjYtMzQuNyA3MS4yIDBsNDUuMyAxMzkuNSAzOS4zLTE0Mi40YzEwLjMtMzguMyA3Mi42LTIzLjggNjAuMyAxNi45em0yNzUuNCA3NS4xYzAtNDIuNC0zMy45LTExNy41LTExOS41LTExNy41LTczLjIgMC0xMjQuNCA1Ni4zLTEyNC40IDEyNiAwIDc3LjIgNTUuMyAxMjYuNCAxMjguNSAxMjYuNCAzMS43IDAgOTMtMTEuNSA5My0zOS44IDAtMTguMy0yMS4xLTMxLjUtMzkuMy0yMi40LTQ5LjQgMjYuMi0xMDkgOC40LTExNS45LTQzLjhoMTQ4LjNjMTYuMyAwIDI5LjMtMTMuNCAyOS4zLTI4Ljl6TTI1NzEgMjc3LjdjOS41LTczLjQgMTEzLjktNjguNiAxMTguNiAwSDI1NzF6bTMxNi43IDE0OC44Yy0zMS40IDAtODEuNi0xMC41LTk2LjYtMzEuOS0xMi40LTE3IDIuNS0zOS44IDIxLjgtMzkuOCAxNi4zIDAgMzYuOCAyMi45IDc3LjcgMjIuOSAyNy40IDAgNDAuNC0xMSA0MC40LTI1LjggMC0zOS44LTE0Mi45LTcuNC0xNDIuOS0xMDIgMC00MC40IDM1LjMtNzUuNyA5OC42LTc1LjcgMzEuNCAwIDc0LjEgOS45IDg3LjYgMjkuNCAxMC44IDE0LjgtMS40IDM2LjItMjAuOSAzNi4yLTE1LjEgMC0yNi43LTE3LjMtNjYuMi0xNy4zLTIyLjkgMC0zNy44IDEwLjUtMzcuOCAyMy44IDAgMzUuOSAxNDIuNCA2IDE0Mi40IDEwMy4xLS4xIDQzLjctMzcuNCA3Ny4xLTEwNC4xIDc3LjF6bTI2Ni44LTI1Mi40Yy0xNjkuMyAwLTE2OS4xIDI1Mi40IDAgMjUyLjQgMTcwLjEgMCAxNjkuNi0yNTIuNCAwLTI1Mi40em0wIDE5Ni4xYy04MS44IDAtODItMTM5LjggMC0xMzkuOCA4Mi41IDAgODIuNCAxMzkuOCAwIDEzOS44em00NzYuOSAyMlYyNjguN2MwLTUzLjgtNjEuNC00NS44LTg1LjctMTAuNXYxMzRjMCA0MS4zLTYzLjggNDIuMS02My44IDBWMjY4LjdjMC01Mi4xLTU5LjUtNDcuNC04NS43LTEwLjF2MTMzLjZjMCA0MS41LTYzLjMgNDEuOC02My4zIDBWMjA4YzAtNDAgNjMuMS00MS42IDYzLjEgMHYzLjRjOS45LTE0LjQgNDEuOC0zNy4zIDc4LjYtMzcuMyAzNS4zIDAgNTcuNyAxNi40IDY2LjcgNDMuOCAxMy45LTIxLjggNDUuOC00My44IDgyLjYtNDMuOCA0NC4zIDAgNzAuNyAyMy40IDcwLjcgNzIuN3YxNDUuM2MuNSAxNy4zLTEzLjUgMzEuNC0zMS45IDMxLjQgMy41LjEtMzEuMyAxLjEtMzEuMy0zMS4zek0zOTkyIDI5MS42YzAtNDIuNC0zMi40LTExNy41LTExNy45LTExNy41LTczLjIgMC0xMjcuNSA1Ni4zLTEyNy41IDEyNiAwIDc3LjIgNTguMyAxMjYuNCAxMzEuNiAxMjYuNCAzMS43IDAgOTEuNS0xMS41IDkxLjUtMzkuOCAwLTE4LjMtMjEuMS0zMS41LTM5LjMtMjIuNC00OS40IDI2LjItMTEwLjUgOC40LTExNy41LTQzLjhoMTQ5LjhjMTYuMyAwIDI5LjEtMTMuNCAyOS4zLTI4Ljl6bS0xODAuNS0xMy45YzkuNy03NC40IDExNS45LTY4LjMgMTIwLjEgMGgtMTIwLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Zyb3duT3BlbiAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS00OC0yNDhjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyem0xMjgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0tODAgMTEyYy0zNS42IDAtODguOCAyMS4zLTk1LjggNjEuMi0yIDExLjggOSAyMS41IDIwLjUgMTguMSAzMS4yLTkuNiA1OS40LTE1LjMgNzUuMy0xNS4zczQ0LjEgNS43IDc1LjMgMTUuM2MxMS40IDMuNSAyMi41LTYuMyAyMC41LTE4LjEtNy0zOS45LTYwLjItNjEuMi05NS44LTYxLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0Zyb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bS04MCAxMjhjLTQwLjIgMC03OCAxNy43LTEwMy44IDQ4LjYtOC41IDEwLjItNy4xIDI1LjMgMy4xIDMzLjggMTAuMiA4LjQgMjUuMyA3LjEgMzMuOC0zLjEgMTYuNi0xOS45IDQxLTMxLjQgNjYuOS0zMS40czUwLjMgMTEuNCA2Ni45IDMxLjRjOC4xIDkuNyAyMy4xIDExLjkgMzMuOCAzLjEgMTAuMi04LjUgMTEuNS0yMy42IDMuMS0zMy44QzMyNiAzMjEuNyAyODguMiAzMDQgMjQ4IDMwNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnRnV0Ym9sIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4My44IDE3OS40QzQ0OS44IDc0LjYgMzUyLjYgOCAyNDguMSA4Yy0yNS40IDAtNTEuMiAzLjktNzYuNyAxMi4yQzQxLjIgNjIuNS0zMC4xIDIwMi40IDEyLjIgMzMyLjYgNDYuMiA0MzcuNCAxNDMuNCA1MDQgMjQ3LjkgNTA0YzI1LjQgMCA1MS4yLTMuOSA3Ni43LTEyLjIgMTMwLjItNDIuMyAyMDEuNS0xODIuMiAxNTkuMi0zMTIuNHptLTc0LjUgMTkzLjdsLTUyLjIgNi40LTQzLjctNjAuOSAyNC40LTc1LjIgNzEuMS0yMi4xIDM4LjkgMzYuNGMtLjIgMzAuNy03LjQgNjEuMS0yMS43IDg5LjItNC43IDkuMy0xMC43IDE3LjgtMTYuOCAyNi4yem0wLTIzNS40bC0xMC40IDUzLjEtNzAuNyAyMi02NC4yLTQ2LjVWOTIuNWw0Ny40LTI2LjJjMzkuMiAxMyA3My40IDM4IDk3LjkgNzEuNHpNMTg0LjkgNjYuNEwyMzIgOTIuNXY3My44bC02NC4yIDQ2LjUtNzAuNi0yMi0xMC4xLTUyLjVjMjQuMy0zMy40IDU3LjktNTguNiA5Ny44LTcxLjl6TTEzOSAzNzkuNUw4NS45IDM3M2MtMTQuNC0yMC4xLTM3LjMtNTkuNi0zNy44LTExNS4zbDM5LTM2LjQgNzEuMSAyMi4yIDI0LjMgNzQuMy00My41IDYxLjd6bTQ4LjIgNjdsLTIyLjQtNDguMSA0My42LTYxLjdIMjg3bDQ0LjMgNjEuNy0yMi40IDQ4LjFjLTYuMiAxLjgtNTcuNiAyMC40LTEyMS43IDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dlbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTc2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMEgxMTJjLTQgMC03LjggMi0xMCA1LjRMMiAxNTIuNmMtMi45IDQuNC0yLjYgMTAuMi43IDE0LjJsMjc2IDM0MC44YzQuOCA1LjkgMTMuOCA1LjkgMTguNiAwbDI3Ni0zNDAuOGMzLjMtNC4xIDMuNi05LjguNy0xNC4yTDQ3NC4xIDUuNEM0NzEuOCAyIDQ2OC4xIDAgNDY0IDB6bS0xOS4zIDQ4bDYzLjMgOTZoLTY4LjRsLTUxLjctOTZoNTYuOHptLTIwMi4xIDBoOTAuN2w1MS43IDk2SDE5MWw1MS42LTk2em0tMTExLjMgMGg1Ni44bC01MS43IDk2SDY4bDYzLjMtOTZ6bS00MyAxNDRoNTEuNEwyMDggMzUyIDg4LjMgMTkyem0xMDIuOSAwaDE5My42TDI4OCA0MzUuMyAxOTEuMiAxOTJ6TTM2OCAzNTJsNjguMi0xNjBoNTEuNEwzNjggMzUyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmltYWNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTYgMTZIMTUyYy0yNi41IDAtNDggMjEuNS00OCA0OHYzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgxOTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMTY4IDk2aC0yNGMtOC44IDAtMTYtNy4yLTE2LTE2di04aDQwdjI0em0wLTQwaC00MHYtOGMwLTguOCA3LjItMTYgMTYtMTZoMjR2MjR6bTY0IDQwaC00OHYtMjRoNDh2MjR6bTAtNDBoLTQ4di0yNGg0OHYyNHptNjQgNDBoLTQ4di0yNGg0OHYyNHptMC00MGgtNDh2LTI0aDQ4djI0em01NiAyNGMwIDguOC03LjIgMTYtMTYgMTZoLTI0di0yNGg0MHY4em0wLTI0aC00MHYtMjRoMjRjOC44IDAgMTYgNy4yIDE2IDE2djh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5BbHQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjAwLjMgMjQ4YzEyLjQtMTguNyAxNS4xLTM3LjMgMTUuNy01Ni0uNS0xOC43LTMuMy0zNy4zLTE1LjctNTYtOC0xMi0yNS4xLTExLjQtMzIuNyAwLTEyLjQgMTguNy0xNS4xIDM3LjMtMTUuNyA1NiAuNSAxOC43IDMuMyAzNy4zIDE1LjcgNTYgOC4xIDEyIDI1LjIgMTEuNCAzMi43IDB6bTEyOCAwYzEyLjQtMTguNyAxNS4xLTM3LjMgMTUuNy01Ni0uNS0xOC43LTMuMy0zNy4zLTE1LjctNTYtOC0xMi0yNS4xLTExLjQtMzIuNyAwLTEyLjQgMTguNy0xNS4xIDM3LjMtMTUuNyA1NiAuNSAxOC43IDMuMyAzNy4zIDE1LjcgNTYgOC4xIDEyIDI1LjIgMTEuNCAzMi43IDB6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTA1LjYtMTUxLjRjLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjktMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyA3LjkgNDcuMiA3MS4zIDgwIDEyMy4zIDgwczExNS4zLTMyLjkgMTIzLjMtODBjMS42LTkuOC03LjctMTguNC0xNy43LTE1LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5CZWFtU3dlYXQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDQwIDE2MGMyOS41IDAgNTMuMy0yNi4zIDUzLjMtNTguNyAwLTI1LTMxLjctNzUuNS00Ni4yLTk3LjMtMy42LTUuMy0xMC43LTUuMy0xNC4yIDAtMTQuNSAyMS44LTQ2LjIgNzIuMy00Ni4yIDk3LjMgMCAzMi40IDIzLjggNTguNyA1My4zIDU4Ljd6TTI0OCA0MDBjNTEuOSAwIDExNS4zLTMyLjkgMTIzLjMtODAgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDggNDcuMSA3MS40IDgwIDEyMy4zIDgwem0xMzAuMy0xNjguM2MzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy42IDYuMiA0LjYgOS4zIDMuN3ptMTA1LjMtNTIuOWMtMjQuNiAxNS43LTQ2IDEyLjktNDYuNCAxMi45IDYuOSAyMC4yIDEwLjggNDEuOCAxMC44IDY0LjMgMCAxMTAuMy04OS43IDIwMC0yMDAgMjAwUzQ4IDM2Ni4zIDQ4IDI1NiAxMzcuNyA1NiAyNDggNTZjMzkuOCAwIDc2LjggMTEuOCAxMDggMzEuOSAxLjctOS41IDYuMy0yNC4xIDE3LjItNDUuN0MzMzYuNCAyMC42IDI5My43IDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OGMwLTI3LTQuNC01Mi45LTEyLjQtNzcuMnpNMTY4IDE4OS40YzEyLjMgMCAyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjggMTkuMi0yMS42IDMxLjUtMjEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbkJlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMDUuNi0xNTEuNGMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDcuOSA0Ny4xIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3ptLTIzNS45LTcyLjljMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjN6bTE2MCAwYzMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluSGVhcnRzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1My42IDMwNC42Yy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS44LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgNy45IDQ3LjIgNzEuMyA4MCAxMjMuMyA4MHMxMTUuMy0zMi45IDEyMy4zLTgwYzEuNi05LjgtNy43LTE4LjQtMTcuNy0xNS4zem0tMTUyLjgtNDguOWM0LjUgMS4yIDkuMi0xLjUgMTAuNS02bDE5LjQtNjkuOWM1LjYtMjAuMy03LjQtNDEuMS0yOC44LTQ0LjUtMTguNi0zLTM2LjQgOS44LTQxLjUgMjcuOWwtMiA3LjEtNy4xLTEuOWMtMTguMi00LjctMzguMiA0LjMtNDQuOSAyMi03LjcgMjAuMiAzLjggNDEuOSAyNC4yIDQ3LjJsNzAuMiAxOC4xem0xODguOC02NS4zYy02LjctMTcuNi0yNi43LTI2LjctNDQuOS0yMmwtNy4xIDEuOS0yLTcuMWMtNS0xOC4xLTIyLjgtMzAuOS00MS41LTI3LjktMjEuNCAzLjQtMzQuNCAyNC4yLTI4LjggNDQuNWwxOS40IDY5LjljMS4yIDQuNSA1LjkgNy4yIDEwLjUgNmw3MC4yLTE4LjJjMjAuNC01LjMgMzEuOS0yNi45IDI0LjItNDcuMXpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluU3F1aW50VGVhcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTE3LjEgMzg0LjFjLTI1LjggMy43LTg0IDEzLjctMTAwLjkgMzAuNi0yMS45IDIxLjktMjEuNSA1Ny45LjkgODAuM3M1OC4zIDIyLjggODAuMy45QzExNC4zIDQ3OSAxMjQuMyA0MjAuOCAxMjggMzk1Yy44LTYuNC00LjYtMTEuOC0xMC45LTEwLjl6bS00MS4yLTQxLjdDNDAuMyAyNjggNTMgMTc2LjEgMTE0LjYgMTE0LjYgMTUyLjQgNzYuOCAyMDIuNiA1NiAyNTYgNTZjMzYuMiAwIDcwLjggOS44IDEwMS4yIDI3LjcgMy44LTIwLjMgOC0zNi4xIDEyLTQ4LjNDMzMzLjggMTcuMiAyOTQuOSA4IDI1NiA4IDE5Mi41IDggMTI5LjEgMzIuMiA4MC42IDgwLjZjLTc0LjEgNzQuMS05MS4zIDE4My40LTUyIDI3NCAxMi4yLTQuMSAyNy43LTguMyA0Ny4zLTEyLjJ6bTM1Mi4zLTE4Ny42YzQ1IDc2LjYgMzQuOSAxNzYuOS0zMC44IDI0Mi42LTM3LjggMzcuOC04OCA1OC42LTE0MS40IDU4LjYtMzAuNSAwLTU5LjgtNy04Ni40LTE5LjgtMy45IDE5LjUtOCAzNS0xMi4yIDQ3LjIgMzEuNCAxMy42IDY1IDIwLjYgOTguNyAyMC42IDYzLjUgMCAxMjYuOS0yNC4yIDE3NS40LTcyLjYgNzguMS03OC4xIDkzLjEtMTk1LjQgNDUuMi0yODguNi0xMi4zIDQtMjguMiA4LjEtNDguNSAxMnptLTMzLjMtMjYuOWMyNS44LTMuNyA4NC0xMy43IDEwMC45LTMwLjYgMjEuOS0yMS45IDIxLjUtNTcuOS0uOS04MC4zcy01OC4zLTIyLjgtODAuMy0uOUMzOTcuNyAzMyAzODcuNyA5MS4yIDM4NCAxMTdjLS44IDYuNCA0LjYgMTEuOCAxMC45IDEwLjl6bS0xODcgMTA4LjNjLTMtMy03LjItNC4yLTExLjQtMy4yTDEwNiAyNTUuN2MtNS43IDEuNC05LjUgNi43LTkuMSAxMi42LjUgNS44IDUuMSAxMC41IDEwLjkgMTFsNTIuMyA0LjggNC44IDUyLjNjLjUgNS44IDUuMiAxMC40IDExIDEwLjloLjljNS41IDAgMTAuMy0zLjcgMTEuNy05LjFsMjIuNi05MC41YzEtNC4yLS4yLTguNS0zLjItMTEuNXptMzkuNy0yNS4xbDkwLjUtMjIuNmM1LjctMS40IDkuNS02LjcgOS4xLTEyLjYtLjUtNS44LTUuMS0xMC41LTEwLjktMTFsLTUyLjMtNC44LTQuOC01Mi4zYy0uNS01LjgtNS4yLTEwLjQtMTEtMTAuOS01LjYtLjEtMTEuMiAzLjQtMTIuNiA5LjFMMjMzIDE5Ni41Yy0xIDQuMS4yIDguNCAzLjIgMTEuNCA1IDUgMTEuMyAzLjIgMTEuNCAzLjJ6bTUyIDg4LjVjLTI5LjEgMjkuMS01OS43IDUyLjktODMuOSA2NS40LTkuMiA0LjgtMTAgMTcuNS0xLjcgMjMuNCAzOC45IDI3LjcgMTA3IDYuMiAxNDMuNy0zMC42UzQxNiAyNTMgMzg4LjMgMjE0LjFjLTUuOC04LjItMTguNS03LjYtMjMuNCAxLjctMTIuMyAyNC4yLTM2LjIgNTQuNy02NS4zIDgzLjh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5TcXVpbnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMDUuNi0xNTEuNGMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjQtMTcuNyAxNS4zIDcuOSA0Ny4xIDcxLjMgODAgMTIzLjMgODBzMTE1LjMtMzIuOSAxMjMuMy04MGMxLjYtOS44LTcuNy0xOC40LTE3LjctMTUuM3ptLTIzNC43LTQwLjhjMy42IDQuMiA5LjkgNS43IDE1LjMgMi41bDgwLTQ4YzMuNi0yLjIgNS44LTYuMSA1LjgtMTAuM3MtMi4yLTguMS01LjgtMTAuM2wtODAtNDhjLTUuMS0zLTExLjQtMS45LTE1LjMgMi41LTMuOCA0LjUtMy44IDExLS4xIDE1LjVsMzMuNiA0MC4zLTMzLjYgNDAuM2MtMy44IDQuNS0zLjcgMTEuMS4xIDE1LjV6bTI0Mi45IDIuNWM1LjQgMy4yIDExLjcgMS43IDE1LjMtMi41IDMuOC00LjUgMy44LTExIC4xLTE1LjVMMzQzLjYgMjA4bDMzLjYtNDAuM2MzLjgtNC41IDMuNy0xMS0uMS0xNS41LTMuOC00LjQtMTAuMi01LjQtMTUuMy0yLjVsLTgwIDQ4Yy0zLjYgMi4yLTUuOCA2LjEtNS44IDEwLjNzMi4yIDguMSA1LjggMTAuM2w4MCA0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblN0YXJzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTA1LjYtMTUxLjRjLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjgtMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyA3LjkgNDcuMiA3MS4zIDgwIDEyMy4zIDgwczExNS4zLTMyLjkgMTIzLjMtODBjMS42LTkuOC03LjctMTguNC0xNy43LTE1LjN6bS0yMjcuOS01Ny41Yy0xIDYuMiA1LjQgMTEgMTEgNy45bDMxLjMtMTYuMyAzMS4zIDE2LjNjNS42IDMuMSAxMi0xLjcgMTEtNy45bC02LTM0LjkgMjUuNC0yNC42YzQuNS00LjUgMS45LTEyLjItNC4zLTEzLjJsLTM0LjktNS0xNS41LTMxLjZjLTIuOS01LjgtMTEtNS44LTEzLjkgMGwtMTUuNSAzMS42LTM0LjkgNWMtNi4yLjktOC45IDguNi00LjMgMTMuMmwyNS40IDI0LjYtNi4xIDM0Ljl6bTI1OS43LTcyLjdsLTM0LjktNS0xNS41LTMxLjZjLTIuOS01LjgtMTEtNS44LTEzLjkgMGwtMTUuNSAzMS42LTM0LjkgNWMtNi4yLjktOC45IDguNi00LjMgMTMuMmwyNS40IDI0LjYtNiAzNC45Yy0xIDYuMiA1LjQgMTEgMTEgNy45bDMxLjMtMTYuMyAzMS4zIDE2LjNjNS42IDMuMSAxMi0xLjcgMTEtNy45bC02LTM0LjkgMjUuNC0yNC42YzQuNS00LjYgMS44LTEyLjItNC40LTEzLjJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5UZWFycyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMTcuMSAyNTYuMWMtMjUuOCAzLjctODQgMTMuNy0xMDAuOSAzMC42LTIxLjkgMjEuOS0yMS41IDU3LjkuOSA4MC4zczU4LjMgMjIuOCA4MC4zLjlDMTE0LjMgMzUxIDEyNC4zIDI5Mi44IDEyOCAyNjdjLjgtNi40LTQuNi0xMS44LTEwLjktMTAuOXptNTA2LjcgMzAuNmMtMTYuOS0xNi45LTc1LjEtMjYuOS0xMDAuOS0zMC42LTYuMy0uOS0xMS43IDQuNS0xMC44IDEwLjggMy43IDI1LjggMTMuNyA4NCAzMC42IDEwMC45IDIxLjkgMjEuOSA1Ny45IDIxLjUgODAuMy0uOSAyMi4zLTIyLjMgMjIuNy01OC4zLjgtODAuMnptLTEyNi42IDYxLjdDNDYzLjggNDEyLjMgMzk2LjkgNDU2IDMyMCA0NTZjLTc2LjkgMC0xNDMuOC00My43LTE3Ny4yLTEwNy42LTEyLjUgMzcuNC0yNS4yIDQzLjktMjguMyA0Ni41QzE1OS4xIDQ2MC43IDIzNC41IDUwNCAzMjAgNTA0czE2MC45LTQzLjMgMjA1LjUtMTA5LjFjLTMuMi0yLjctMTUuOS05LjItMjguMy00Ni41ek0xMjIuNyAyMjQuNUMxMzcuOSAxMjkuMiAyMjAuNSA1NiAzMjAgNTZjOTkuNSAwIDE4Mi4xIDczLjIgMTk3LjMgMTY4LjUgMi4xLS4yIDUuMi0yLjQgNDkuNSA3QzU1NC40IDEwNiA0NDguNyA4IDMyMCA4Uzg1LjYgMTA2IDczLjIgMjMxLjRjNDQuNS05LjQgNDcuMS03LjIgNDkuNS02Ljl6TTMyMCA0MDBjNTEuOSAwIDExNS4zLTMyLjkgMTIzLjMtODAgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOC0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDggNDcuMSA3MS40IDgwIDEyMy4zIDgwem0xMzAuMy0xNjguM2MzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNSAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy42IDYuMiA0LjYgOS4zIDMuN3pNMjQwIDE4OS40YzEyLjMgMCAyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzIuMSAzLjcgNi4yIDQuNyA5LjMgMy43IDMuNi0xLjEgNi00LjUgNS43LTguMy0zLjMtNDIuMS0zMi4yLTcxLjQtNTYtNzEuNHMtNTIuNyAyOS4zLTU2IDcxLjRjLS4zIDMuNyAyLjEgNy4yIDUuNyA4LjMgMy41IDEuMSA3LjQtLjUgOS4zLTMuN2w5LjUtMTdjNy43LTEzLjggMTkuMi0yMS42IDMxLjUtMjEuNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpblRvbmd1ZVNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em02NCA0MDBjMCAzNS42LTI5LjEgNjQuNS02NC45IDY0LTM1LjEtLjUtNjMuMS0yOS44LTYzLjEtNjV2LTQyLjhsMTcuNy04LjhjMTUtNy41IDMxLjUgMS43IDM0LjkgMTYuNWwyLjggMTIuMWMyLjEgOS4yIDE1LjIgOS4yIDE3LjMgMGwyLjgtMTIuMWMzLjQtMTQuOCAxOS44LTI0LjEgMzQuOS0xNi41bDE3LjcgOC44VjQwOHptMjguMiAyNS4zYzIuMi04LjEgMy44LTE2LjUgMy44LTI1LjN2LTQzLjVjMTQuMi0xMi40IDI0LjQtMjcuNSAyNy4zLTQ0LjUgMS43LTkuOS03LjctMTguNS0xNy43LTE1LjMtMjUuOSA4LjMtNjQuNCAxMy4xLTEwNS42IDEzLjFzLTc5LjYtNC44LTEwNS42LTEzLjFjLTkuOS0zLjEtMTkuNCA1LjMtMTcuNyAxNS4zIDIuOSAxNyAxMy4xIDMyLjEgMjcuMyA0NC41VjQwOGMwIDguOCAxLjYgMTcuMiAzLjggMjUuM0M5MS44IDM5OS45IDQ4IDMzMyA0OCAyNTZjMC0xMTAuMyA4OS43LTIwMCAyMDAtMjAwczIwMCA4OS43IDIwMCAyMDBjMCA3Ny00My44IDE0My45LTEwNy44IDE3Ny4zem0zNi45LTI4MS4xYy0zLjgtNC40LTEwLjMtNS41LTE1LjMtMi41bC04MCA0OGMtMy42IDIuMi01LjggNi4xLTUuOCAxMC4zczIuMiA4LjEgNS44IDEwLjNsODAgNDhjNS40IDMuMiAxMS43IDEuNyAxNS4zLTIuNSAzLjgtNC41IDMuOC0xMSAuMS0xNS41TDM0My42IDIwOGwzMy42LTQwLjNjMy44LTQuNSAzLjctMTEuMS0uMS0xNS41em0tMTYyLjkgNDUuNWwtODAtNDhjLTUtMy0xMS40LTItMTUuMyAyLjUtMy44IDQuNS0zLjggMTEtLjEgMTUuNWwzMy42IDQwLjMtMzMuNiA0MC4zYy0zLjggNC41LTMuNyAxMSAuMSAxNS41IDMuNiA0LjIgOS45IDUuNyAxNS4zIDIuNWw4MC00OGMzLjYtMi4yIDUuOC02LjEgNS44LTEwLjNzLTIuMi04LjEtNS44LTEwLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5Ub25ndWVXaW5rIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE1MiAxODBjLTI1LjcgMC01NS45IDE2LjktNTkuOCA0Mi4xLS44IDUgMS43IDEwIDYuMSAxMi40IDQuNCAyLjQgOS45IDEuOCAxMy43LTEuNmw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzIuNSAyLjIgOCA0LjcgMTMuNyAxLjYgNC40LTIuNCA2LjktNy40IDYuMS0xMi40LTMuOS0yNS4yLTM0LjEtNDIuMS01OS44LTQyLjF6bTE3Ni01MmMtNDQuMiAwLTgwIDM1LjgtODAgODBzMzUuOCA4MCA4MCA4MCA4MC0zNS44IDgwLTgwLTM1LjgtODAtODAtODB6bTAgMTI4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMC03MmMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTY0IDQwMGMwIDM1LjYtMjkuMSA2NC41LTY0LjkgNjQtMzUuMS0uNS02My4xLTI5LjgtNjMuMS02NXYtNDIuOGwxNy43LTguOGMxNS03LjUgMzEuNSAxLjcgMzQuOSAxNi41bDIuOCAxMi4xYzIuMSA5LjIgMTUuMiA5LjIgMTcuMyAwbDIuOC0xMi4xYzMuNC0xNC44IDE5LjgtMjQuMSAzNC45LTE2LjVsMTcuNyA4LjhWNDA4em0yOC4yIDI1LjNjMi4yLTguMSAzLjgtMTYuNSAzLjgtMjUuM3YtNDMuNWMxNC4yLTEyLjQgMjQuNC0yNy41IDI3LjMtNDQuNSAxLjctOS45LTcuNy0xOC41LTE3LjctMTUuMy0yNS45IDguMy02NC40IDEzLjEtMTA1LjYgMTMuMXMtNzkuNi00LjgtMTA1LjYtMTMuMWMtOS45LTMuMS0xOS40IDUuMy0xNy43IDE1LjMgMi45IDE3IDEzLjEgMzIuMSAyNy4zIDQ0LjVWNDA4YzAgOC44IDEuNiAxNy4yIDMuOCAyNS4zQzkxLjggMzk5LjkgNDggMzMzIDQ4IDI1NmMwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDc3LTQzLjggMTQzLjktMTA3LjggMTc3LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0dyaW5Ub25ndWUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjQgNDAwYzAgMzUuNi0yOS4xIDY0LjUtNjQuOSA2NC0zNS4xLS41LTYzLjEtMjkuOC02My4xLTY1di00Mi44bDE3LjctOC44YzE1LTcuNSAzMS41IDEuNyAzNC45IDE2LjVsMi44IDEyLjFjMi4xIDkuMiAxNS4yIDkuMiAxNy4zIDBsMi44LTEyLjFjMy40LTE0LjggMTkuOC0yNC4xIDM0LjktMTYuNWwxNy43IDguOFY0MDh6bTI4LjIgMjUuM2MyLjItOC4xIDMuOC0xNi41IDMuOC0yNS4zdi00My41YzE0LjItMTIuNCAyNC40LTI3LjUgMjcuMy00NC41IDEuNy05LjktNy43LTE4LjUtMTcuNy0xNS4zLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjktMy4xLTE5LjQgNS4zLTE3LjcgMTUuMyAyLjkgMTcgMTMuMSAzMi4xIDI3LjMgNDQuNVY0MDhjMCA4LjggMS42IDE3LjIgMy44IDI1LjNDOTEuOCAzOTkuOSA0OCAzMzMgNDggMjU2YzAtMTEwLjMgODkuNy0yMDAgMjAwLTIwMHMyMDAgODkuNyAyMDAgMjAwYzAgNzctNDMuOCAxNDMuOS0xMDcuOCAxNzcuM3pNMTY4IDE3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTE2MCAwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnR3JpbldpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzI4IDE4MGMtMjUuNjkgMC01NS44OCAxNi45Mi01OS44NiA0Mi4xMi0xLjc1IDExLjIyIDExLjUgMTguMjQgMTkuODMgMTAuODRsOS41NS04LjQ4YzE0LjgxLTEzLjE5IDQ2LjE2LTEzLjE5IDYwLjk3IDBsOS41NSA4LjQ4YzguNDggNy40MyAyMS41Ni4yNSAxOS44My0xMC44NEMzODMuODggMTk2LjkyIDM1My42OSAxODAgMzI4IDE4MHptLTE2MCA2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMycy0xNC4zMy0zMi0zMi0zMi0zMiAxNC4zMy0zMiAzMiAxNC4zMyAzMiAzMiAzMnptMTg1LjU1IDY0LjY0Yy0yNS45MyA4LjMtNjQuNCAxMy4wNi0xMDUuNTUgMTMuMDZzLTc5LjYyLTQuNzUtMTA1LjU1LTEzLjA2Yy05Ljk0LTMuMTMtMTkuNCA1LjM3LTE3LjcxIDE1LjM0QzEzMi42NyAzNjcuMTMgMTk2LjA2IDQwMCAyNDggNDAwczExNS4zMy0zMi44NyAxMjMuMjYtODAuMDJjMS42OC05Ljg5LTcuNjctMTguNDgtMTcuNzEtMTUuMzR6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMjggMC0yMDAtODkuNzItMjAwLTIwMFMxMzcuNzIgNTYgMjQ4IDU2czIwMCA4OS43MiAyMDAgMjAwLTg5LjcyIDIwMC0yMDAgMjAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdHcmluIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTA1LjYtMTUxLjRjLTI1LjkgOC4zLTY0LjQgMTMuMS0xMDUuNiAxMy4xcy03OS42LTQuOC0xMDUuNi0xMy4xYy05LjktMy4xLTE5LjQgNS40LTE3LjcgMTUuMyA3LjkgNDcuMSA3MS4zIDgwIDEyMy4zIDgwczExNS4zLTMyLjkgMTIzLjMtODBjMS42LTkuOC03LjctMTguNC0xNy43LTE1LjN6TTE2OCAyNDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNjAgMGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRMaXphcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTU2LjY4NiAyOTAuNTQyTDQxMC4zMjggNjQuODI5QzM5Ny4wMDEgNDQuMjcyIDM3NC40MTcgMzIgMzQ5LjkxNyAzMkg1NkMyNS4xMjEgMzIgMCA1Ny4xMjIgMCA4OHY4YzAgNDQuMTEyIDM1Ljg4OCA4MCA4MCA4MGgxOTYuMDQybC0xOC4zMzMgNDhIMTQ0Yy00OC41MjMgMC04OCAzOS40NzctODggODggMCAzMC44NzkgMjUuMTIxIDU2IDU2IDU2aDEzMS41NTJjMi45ODcgMCA1LjkxNC41NDkgOC42OTcgMS42MzFMMzUyIDQwOC40MThWNDgwaDIyNFYzNTUuODI5YzAtMjMuMjI1LTYuNjc5LTQ1LjgwMS0xOS4zMTQtNjUuMjg3ek01MjggNDMySDQwMHYtMjMuNTgyYzAtMTkuOTQ4LTEyLjAxNC0zNy41MDgtMzAuNjA0LTQ0LjczNmwtOTkuNzUxLTM4Ljc4OEE3MS43MzMgNzEuNzMzIDAgMCAwIDI0My41NTIgMzIwSDExMmMtNC40MTEgMC04LTMuNTg5LTgtOCAwLTIyLjA1NiAxNy45NDQtNDAgNDAtNDBoMTEzLjcwOWMxOS43NjcgMCAzNy43ODYtMTIuNDA3IDQ0Ljg0LTMwLjg3M2wyNC41NTItNjQuMjgxYzguOTk2LTIzLjU1My04LjQyOC00OC44NDYtMzMuNjMtNDguODQ2SDgwYy0xNy42NDUgMC0zMi0xNC4zNTUtMzItMzJ2LThjMC00LjQxMSAzLjU4OS04IDgtOGgyOTMuOTE3YzguMTY2IDAgMTUuNjkzIDQuMDkgMjAuMTM3IDEwLjk0MmwxNDYuMzU4IDIyNS43MTVBNzEuODQgNzEuODQgMCAwIDEgNTI4IDM1NS44MjlWNDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUGFwZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzcyLjU3IDExMi42NDF2LTEwLjgyNWMwLTQzLjYxMi00MC41Mi03Ni42OTEtODMuMDM5LTY1LjU0Ni0yNS42MjktNDkuNS05NC4wOS00Ny40NS0xMTcuOTgyLjc0N0MxMzAuMjY5IDI2LjQ1NiA4OS4xNDQgNTcuOTQ1IDg5LjE0NCAxMDJ2MTI2LjEzYy0xOS45NTMtNy40MjctNDMuMzA4LTUuMDY4LTYyLjA4MyA4Ljg3MS0yOS4zNTUgMjEuNzk2LTM1Ljc5NCA2My4zMzMtMTQuNTUgOTMuMTUzTDEzMi40OCA0OTguNTY5YTMyIDMyIDAgMCAwIDI2LjA2MiAxMy40MzJoMjIyLjg5N2MxNC45MDQgMCAyNy44MzUtMTAuMjg5IDMxLjE4Mi0yNC44MTNsMzAuMTg0LTEzMC45NThBMjAzLjYzNyAyMDMuNjM3IDAgMCAwIDQ0OCAzMTAuNTY0VjE3OWMwLTQwLjYyLTM1LjUyMy03MS45OTItNzUuNDMtNjYuMzU5em0yNy40MjcgMTk3LjkyMmMwIDExLjczMS0xLjMzNCAyMy40NjktMy45NjUgMzQuODg2TDM2OC43MDcgNDY0aC0yMDEuOTJMNTEuNTkxIDMwMi4zMDNjLTE0LjQzOS0yMC4yNyAxNS4wMjMtNDIuNzc2IDI5LjM5NC0yMi42MDVsMjcuMTI4IDM4LjA3OWM4Ljk5NSAxMi42MjYgMjkuMDMxIDYuMjg3IDI5LjAzMS05LjI4M1YxMDJjMC0yNS42NDUgMzYuNTcxLTI0LjgxIDM2LjU3MS42OTFWMjU2YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNi44NTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNlY2N2MwLTI1LjY2MyAzNi41NzEtMjQuODEgMzYuNTcxLjY5MVYyNTZjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmg2Ljg1NmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2VjEwMS4xMjVjMC0yNS42NzIgMzYuNTctMjQuODEgMzYuNTcuNjkxVjI1NmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDYuODU3YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTc2LjMwOWMwLTI2LjI0MiAzNi41Ny0yNS42NCAzNi41Ny0uNjkxdjEzMS41NjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQZWFjZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNjIuMTQ2IDE5MS45NzZjLTEzLjcxLTIxLjY0OS0zOC43NjEtMzQuMDE2LTY1LjAwNi0zMC4zNDFWNzRjMC00MC44MDQtMzIuODExLTc0LTczLjE0MS03NC00MC4zMyAwLTczLjE0IDMzLjE5Ni03My4xNCA3NEwxNjAgMTY4bC0xOC42NzktNzguODVDMTI2LjU3OCA1MC44NDMgODMuODUgMzIuMTEgNDYuMjA5IDQ3LjIwOCA4LjczNSA2Mi4yMzgtOS41NzEgMTA0Ljk2MyA1LjAwOCAxNDIuODVsNTUuNzU3IDE0NC45MjdjLTMwLjU1NyAyNC45NTYtNDMuOTk0IDU3LjgwOS0yNC43MzMgOTIuMjE4bDU0Ljg1MyA5Ny45OTlDMTAyLjYyNSA0OTguOTcgMTI0LjczIDUxMiAxNDguNTc1IDUxMmgyMDUuNzAyYzMwLjc0NCAwIDU3LjU1OC0yMS40NCA2NC41NTUtNTEuNzk3bDI3LjQyNy0xMTguOTk5YTY3LjgwMSA2Ny44MDEgMCAwIDAgMS43MjktMTUuMjAzTDQ0OCAyNTZjMC00NC45NTYtNDMuMjYzLTc3LjM0My04NS44NTQtNjQuMDI0ek0zOTkuOTg3IDMyNmMwIDEuNDg4LS4xNjkgMi45NzctLjUwMiA0LjQyM2wtMjcuNDI3IDExOS4wMDFjLTEuOTc4IDguNTgyLTkuMjkgMTQuNTc2LTE3Ljc4MiAxNC41NzZIMTQ4LjU3NWMtNi40ODYgMC0xMi41NDItMy42MjEtMTUuODA1LTkuNDQ5bC01NC44NTQtOThjLTQuNTU3LTguMTQxLTIuNjE5LTE4LjY2OCA0LjUwOC0yNC40ODhsMjYuNjQ3LTIxLjc2NGExNiAxNiAwIDAgMCA0LjgxMi0xOC4xMzlsLTY0LjA5LTE2Ni41NDlDMzcuMjI2IDkyLjk1NiA4NC4zNyA3NC44MzcgOTYuNTEgMTA2LjM4OWw1OS43ODQgMTU1LjM1N0ExNiAxNiAwIDAgMCAxNzEuMjI3IDI3MmgxMS42MzJjOC44MzcgMCAxNi03LjE2MyAxNi0xNlY3NGMwLTM0LjM3NSA1MC4yODEtMzQuNDMgNTAuMjgxIDB2MTgyYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNi44NTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMjhjMC0yNS4xMjIgMzYuNTY3LTI1LjE1OSAzNi41NjcgMHYyOGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDYuODU2YzguODM3IDAgMTYtNy4xNjMgMTYtMTYgMC0yNS4xMiAzNi41NjctMjUuMTYgMzYuNTY3IDB2NzB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludERvd24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTg4LjggNTEyYzQ1LjYxNiAwIDgzLjItMzcuNzY1IDgzLjItODMuMnYtMzUuNjQ3YTkzLjE0OCA5My4xNDggMCAwIDAgMjIuMDY0LTcuOTI5YzIyLjAwNiAyLjUwNyA0NC45NzgtMy41MDMgNjIuNzkxLTE1Ljk4NUM0MDkuMzQyIDM2OC4xIDQ0OCAzMzEuODQxIDQ0OCAyNjkuMjk5VjI0OGMwLTYwLjA2My00MC05OC41MTItNDAtMTI3LjJ2LTIuNjc5YzQuOTUyLTUuNzQ3IDgtMTMuNTM2IDgtMjIuMTJWMzJjMC0xNy42NzMtMTIuODk0LTMyLTI4LjgtMzJIMTU2LjhDMTQwLjg5NCAwIDEyOCAxNC4zMjcgMTI4IDMydjY0YzAgOC41ODQgMy4wNDggMTYuMzczIDggMjIuMTJ2Mi42NzljMCA2Ljk2NC02LjE5MyAxNC44NjItMjMuNjY4IDMwLjE4M2wtLjE0OC4xMjktLjE0Ni4xMzFjLTkuOTM3IDguODU2LTIwLjg0MSAxOC4xMTYtMzMuMjUzIDI1Ljg1MUM0OC41MzcgMTk1Ljc5OCAwIDIwNy40ODYgMCAyNTIuOGMwIDU2LjkyOCAzNS4yODYgOTIgODMuMiA5MiA4LjAyNiAwIDE1LjQ4OS0uODE0IDIyLjQtMi4xNzZWNDI4LjhjMCA0NS4wOTkgMzguMTAxIDgzLjIgODMuMiA4My4yem0wLTQ4Yy0xOC43IDAtMzUuMi0xNi43NzUtMzUuMi0zNS4yVjI3MC40Yy0xNy4zMjUgMC0zNS4yIDI2LjQtNzAuNCAyNi40LTI2LjQgMC0zNS4yLTIwLjYyNS0zNS4yLTQ0IDAtOC43OTQgMzIuNzEyLTIwLjQ0NSA1Ni4xLTM0LjkyNiAxNC41NzUtOS4wNzQgMjcuMjI1LTE5LjUyNCAzOS44NzUtMzAuNzk5IDE4LjM3NC0xNi4xMDkgMzYuNjMzLTMzLjgzNiAzOS41OTYtNTkuMDc1aDE3Ni43NTJDMzY0LjA4NyAxNzAuNzkgNDAwIDIwMi41MDkgNDAwIDI0OHYyMS4yOTljMCA0MC41MjQtMjIuMTk3IDU3LjEyNC02MS4zMjUgNTAuNjAxLTguMDAxIDE0LjYxMi0zMy45NzkgMjQuMTUxLTUzLjYyNSAxMi45MjUtMTguMjI1IDE5LjM2NS00Ni4zODEgMTcuNzg3LTYxLjA1IDQuOTVWNDI4LjhjMCAxOC45NzUtMTYuMjI1IDM1LjItMzUuMiAzNS4yek0zMjggNjRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0czI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRMZWZ0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTAgMjIwLjhDMCAyNjYuNDE2IDM3Ljc2NSAzMDQgODMuMiAzMDRoMzUuNjQ3YTkzLjE0OCA5My4xNDggMCAwIDAgNy45MjkgMjIuMDY0Yy0yLjUwNyAyMi4wMDYgMy41MDMgNDQuOTc4IDE1Ljk4NSA2Mi43OTFDMTQzLjkgNDQxLjM0MiAxODAuMTU5IDQ4MCAyNDIuNzAxIDQ4MEgyNjRjNjAuMDYzIDAgOTguNTEyLTQwIDEyNy4yLTQwaDIuNjc5YzUuNzQ3IDQuOTUyIDEzLjUzNiA4IDIyLjEyIDhoNjRjMTcuNjczIDAgMzItMTIuODk0IDMyLTI4LjhWMTg4LjhjMC0xNS45MDYtMTQuMzI3LTI4LjgtMzItMjguOGgtNjRjLTguNTg0IDAtMTYuMzczIDMuMDQ4LTIyLjEyIDhIMzkxLjJjLTYuOTY0IDAtMTQuODYyLTYuMTkzLTMwLjE4My0yMy42NjhsLS4xMjktLjE0OC0uMTMxLS4xNDZjLTguODU2LTkuOTM3LTE4LjExNi0yMC44NDEtMjUuODUxLTMzLjI1M0MzMTYuMjAyIDgwLjUzNyAzMDQuNTE0IDMyIDI1OS4yIDMyYy01Ni45MjggMC05MiAzNS4yODYtOTIgODMuMiAwIDguMDI2LjgxNCAxNS40ODkgMi4xNzYgMjIuNEg4My4yQzM4LjEwMSAxMzcuNiAwIDE3NS43MDEgMCAyMjAuOHptNDggMGMwLTE4LjcgMTYuNzc1LTM1LjIgMzUuMi0zNS4yaDE1OC40YzAtMTcuMzI1LTI2LjQtMzUuMi0yNi40LTcwLjQgMC0yNi40IDIwLjYyNS0zNS4yIDQ0LTM1LjIgOC43OTQgMCAyMC40NDUgMzIuNzEyIDM0LjkyNiA1Ni4xIDkuMDc0IDE0LjU3NSAxOS41MjQgMjcuMjI1IDMwLjc5OSAzOS44NzUgMTYuMTA5IDE4LjM3NCAzMy44MzYgMzYuNjMzIDU5LjA3NSAzOS41OTZ2MTc2Ljc1MkMzNDEuMjEgMzk2LjA4NyAzMDkuNDkxIDQzMiAyNjQgNDMyaC0yMS4yOTljLTQwLjUyNCAwLTU3LjEyNC0yMi4xOTctNTAuNjAxLTYxLjMyNS0xNC42MTItOC4wMDEtMjQuMTUxLTMzLjk3OS0xMi45MjUtNTMuNjI1LTE5LjM2NS0xOC4yMjUtMTcuNzg3LTQ2LjM4MS00Ljk1LTYxLjA1SDgzLjJDNjQuMjI1IDI1NiA0OCAyMzkuNzc1IDQ4IDIyMC44ek00NDggMzYwYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHMtMTAuNzQ1IDI0LTI0IDI0LTI0LTEwLjc0NS0yNC0yNCAxMC43NDUtMjQgMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRQb2ludFJpZ2h0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQyOC44IDEzNy42aC04Ni4xNzdhMTE1LjUyIDExNS41MiAwIDAgMCAyLjE3Ni0yMi40YzAtNDcuOTE0LTM1LjA3Mi04My4yLTkyLTgzLjItNDUuMzE0IDAtNTcuMDAyIDQ4LjUzNy03NS43MDcgNzguNzg0LTcuNzM1IDEyLjQxMy0xNi45OTQgMjMuMzE3LTI1Ljg1MSAzMy4yNTNsLS4xMzEuMTQ2LS4xMjkuMTQ4QzEzNS42NjIgMTYxLjgwNyAxMjcuNzY0IDE2OCAxMjAuOCAxNjhoLTIuNjc5Yy01Ljc0Ny00Ljk1Mi0xMy41MzYtOC0yMi4xMi04SDMyYy0xNy42NzMgMC0zMiAxMi44OTQtMzIgMjguOHYyMzAuNEMwIDQzNS4xMDYgMTQuMzI3IDQ0OCAzMiA0NDhoNjRjOC41ODQgMCAxNi4zNzMtMy4wNDggMjIuMTItOGgyLjY3OWMyOC42ODggMCA2Ny4xMzcgNDAgMTI3LjIgNDBoMjEuMjk5YzYyLjU0MiAwIDk4LjgtMzguNjU4IDk5Ljk0LTkxLjE0NSAxMi40ODItMTcuODEzIDE4LjQ5MS00MC43ODUgMTUuOTg1LTYyLjc5MUE5My4xNDggOTMuMTQ4IDAgMCAwIDM5My4xNTIgMzA0SDQyOC44YzQ1LjQzNSAwIDgzLjItMzcuNTg0IDgzLjItODMuMiAwLTQ1LjA5OS0zOC4xMDEtODMuMi04My4yLTgzLjJ6bTAgMTE4LjRoLTkxLjAyNmMxMi44MzcgMTQuNjY5IDE0LjQxNSA0Mi44MjUtNC45NSA2MS4wNSAxMS4yMjcgMTkuNjQ2IDEuNjg3IDQ1LjYyNC0xMi45MjUgNTMuNjI1IDYuNTI0IDM5LjEyOC0xMC4wNzYgNjEuMzI1LTUwLjYgNjEuMzI1SDI0OGMtNDUuNDkxIDAtNzcuMjEtMzUuOTEzLTEyMC0zOS42NzZWMjE1LjU3MWMyNS4yMzktMi45NjQgNDIuOTY2LTIxLjIyMiA1OS4wNzUtMzkuNTk2IDExLjI3NS0xMi42NSAyMS43MjUtMjUuMyAzMC43OTktMzkuODc1QzIzMi4zNTUgMTEyLjcxMiAyNDQuMDA2IDgwIDI1Mi44IDgwYzIzLjM3NSAwIDQ0IDguOCA0NCAzNS4yIDAgMzUuMi0yNi40IDUzLjA3NS0yNi40IDcwLjRoMTU4LjRjMTguNDI1IDAgMzUuMiAxNi41IDM1LjIgMzUuMiAwIDE4Ljk3NS0xNi4yMjUgMzUuMi0zNS4yIDM1LjJ6TTg4IDM4NGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRzLTI0LTEwLjc0NS0yNC0yNCAxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kUG9pbnRVcCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMDUuNiA4My4ydjg2LjE3N2ExMTUuNTIgMTE1LjUyIDAgMCAwLTIyLjQtMi4xNzZjLTQ3LjkxNCAwLTgzLjIgMzUuMDcyLTgzLjIgOTIgMCA0NS4zMTQgNDguNTM3IDU3LjAwMiA3OC43ODQgNzUuNzA3IDEyLjQxMyA3LjczNSAyMy4zMTcgMTYuOTk0IDMzLjI1MyAyNS44NTFsLjE0Ni4xMzEuMTQ4LjEyOUMxMjkuODA3IDM3Ni4zMzggMTM2IDM4NC4yMzYgMTM2IDM5MS4ydjIuNjc5Yy00Ljk1MiA1Ljc0Ny04IDEzLjUzNi04IDIyLjEydjY0YzAgMTcuNjczIDEyLjg5NCAzMiAyOC44IDMyaDIzMC40YzE1LjkwNiAwIDI4LjgtMTQuMzI3IDI4LjgtMzJ2LTY0YzAtOC41ODQtMy4wNDgtMTYuMzczLTgtMjIuMTJWMzkxLjJjMC0yOC42ODggNDAtNjcuMTM3IDQwLTEyNy4ydi0yMS4yOTljMC02Mi41NDItMzguNjU4LTk4LjgtOTEuMTQ1LTk5Ljk0LTE3LjgxMy0xMi40ODItNDAuNzg1LTE4LjQ5MS02Mi43OTEtMTUuOTg1QTkzLjE0OCA5My4xNDggMCAwIDAgMjcyIDExOC44NDdWODMuMkMyNzIgMzcuNzY1IDIzNC40MTYgMCAxODguOCAwYy00NS4wOTkgMC04My4yIDM4LjEwMS04My4yIDgzLjJ6bTExOC40IDB2OTEuMDI2YzE0LjY2OS0xMi44MzcgNDIuODI1LTE0LjQxNSA2MS4wNSA0Ljk1IDE5LjY0Ni0xMS4yMjcgNDUuNjI0LTEuNjg3IDUzLjYyNSAxMi45MjUgMzkuMTI4LTYuNTI0IDYxLjMyNSAxMC4wNzYgNjEuMzI1IDUwLjZWMjY0YzAgNDUuNDkxLTM1LjkxMyA3Ny4yMS0zOS42NzYgMTIwSDE4My41NzFjLTIuOTY0LTI1LjIzOS0yMS4yMjItNDIuOTY2LTM5LjU5Ni01OS4wNzUtMTIuNjUtMTEuMjc1LTI1LjMtMjEuNzI1LTM5Ljg3NS0zMC43OTlDODAuNzEyIDI3OS42NDUgNDggMjY3Ljk5NCA0OCAyNTkuMmMwLTIzLjM3NSA4LjgtNDQgMzUuMi00NCAzNS4yIDAgNTMuMDc1IDI2LjQgNzAuNCAyNi40VjgzLjJjMC0xOC40MjUgMTYuNS0zNS4yIDM1LjItMzUuMiAxOC45NzUgMCAzNS4yIDE2LjIyNSAzNS4yIDM1LjJ6TTM1MiA0MjRjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0cy0xMC43NDUgMjQtMjQgMjQtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFBvaW50ZXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMzU4LjE4MiAxNzkuMzYxYy0xOS40OTMtMjQuNzY4LTUyLjY3OS0zMS45NDUtNzkuODcyLTE5LjA5OC0xNS4xMjctMTUuNjg3LTM2LjE4Mi0yMi40ODctNTYuNTk1LTE5LjYyOVY2N2MwLTM2Ljk0NC0yOS43MzYtNjctNjYuMjg2LTY3Uzg5LjE0MyAzMC4wNTYgODkuMTQzIDY3djE2MS4xMjljLTE5LjkwOS03LjQxLTQzLjI3Mi01LjA5NC02Mi4wODMgOC44NzItMjkuMzU1IDIxLjc5NS0zNS43OTMgNjMuMzMzLTE0LjU1IDkzLjE1MmwxMDkuNjk5IDE1NC4wMDFDMTM0LjYzMiA1MDEuNTkgMTU0Ljc0MSA1MTIgMTc2IDUxMmgxNzguMjg2YzMwLjgwMiAwIDU3LjU3NC0yMS41IDY0LjU1Ny01MS43OTdsMjcuNDI5LTExOC45OTlBNjcuODczIDY3Ljg3MyAwIDAgMCA0NDggMzI2di04NGMwLTQ2Ljg0NC00Ni42MjUtNzkuMjczLTg5LjgxOC02Mi42Mzl6TTgwLjk4NSAyNzkuNjk3bDI3LjEyNiAzOC4wNzljOC45OTUgMTIuNjI2IDI5LjAzMSA2LjI4NyAyOS4wMzEtOS4yODNWNjdjMC0yNS4xMiAzNi41NzEtMjUuMTYgMzYuNTcxIDB2MTc1YzAgOC44MzYgNy4xNjMgMTYgMTYgMTZoNi44NTdjOC44MzcgMCAxNi03LjE2NCAxNi0xNnYtMzVjMC0yNS4xMiAzNi41NzEtMjUuMTYgMzYuNTcxIDB2MzVjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNkgyNzJjOC44MzcgMCAxNi03LjE2NCAxNi0xNnYtMjFjMC0yNS4xMiAzNi41NzEtMjUuMTYgMzYuNTcxIDB2MjFjMCA4LjgzNiA3LjE2MyAxNiAxNiAxNmg2Ljg1N2M4LjgzNyAwIDE2LTcuMTY0IDE2LTE2IDAtMjUuMTIxIDM2LjU3MS0yNS4xNiAzNi41NzEgMHY4NGMwIDEuNDg4LS4xNjkgMi45NzctLjUwMiA0LjQyM2wtMjcuNDMgMTE5LjAwMWMtMS45NzggOC41ODItOS4yOSAxNC41NzYtMTcuNzgyIDE0LjU3NkgxNzZjLTUuNzY5IDAtMTEuMjYzLTIuODc4LTE0LjY5Ny03LjY5N2wtMTA5LjcxMi0xNTRjLTE0LjQwNi0yMC4yMjMgMTQuOTk0LTQyLjgxOCAyOS4zOTQtMjIuNjA2ek0xNzYuMTQzIDQwMHYtOTZjMC04LjgzNyA2LjI2OC0xNiAxNC0xNmg2YzcuNzMyIDAgMTQgNy4xNjMgMTQgMTZ2OTZjMCA4LjgzNy02LjI2OCAxNi0xNCAxNmgtNmMtNy43MzMgMC0xNC03LjE2My0xNC0xNnptNzUuNDI4IDB2LTk2YzAtOC44MzcgNi4yNjgtMTYgMTQtMTZoNmM3LjczMiAwIDE0IDcuMTYzIDE0IDE2djk2YzAgOC44MzctNi4yNjggMTYtMTQgMTZoLTZjLTcuNzMyIDAtMTQtNy4xNjMtMTQtMTZ6TTMyNyA0MDB2LTk2YzAtOC44MzcgNi4yNjgtMTYgMTQtMTZoNmM3LjczMiAwIDE0IDcuMTYzIDE0IDE2djk2YzAgOC44MzctNi4yNjggMTYtMTQgMTZoLTZjLTcuNzMyIDAtMTQtNy4xNjMtMTQtMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRSb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQwOC44NjQgNzkuMDUyYy0yMi40MDEtMzMuODk4LTY2LjEwOC00Mi4yNzMtOTguODEzLTIzLjU4OC0yOS40NzQtMzEuNDY5LTc5LjE0NS0zMS4wOTMtMTA4LjMzNC0uMDIyLTQ3LjE2LTI3LjAyLTEwOC43MSA1LjA1NS0xMTAuNjcxIDYwLjgwNkM0NC44NDYgMTA1LjQwNyAwIDE0MC4wMDEgMCAxODcuNDI5djU2Ljk1M2MwIDMyLjc0MSAxNC4yOCA2My45NTQgMzkuMTggODUuNjM0bDk3LjcxIDg1LjA4MWM0LjI1MiAzLjcwMiAzLjExIDUuNTczIDMuMTEgMzIuOTAzIDAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmgyNTJjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMyIDAtMjMuNTEzLTEuMDE1LTMwLjc0NSAzLjk4Mi00Mi4zN2w0Mi44MzUtOTkuNjU2YzYuMDk0LTE0LjE3NyA5LjE4My0yOS4xNzIgOS4xODMtNDQuNTY4VjE0Ni45NjNjMC01Mi44MzktNTQuMzE0LTg4LjY2Mi0xMDMuMTM2LTY3LjkxMXpNNDY0IDI2MS40MDZhNjQuNTA1IDY0LjUwNSAwIDAgMS01LjI4MiAyNS42MTNsLTQyLjgzNSA5OS42NTVjLTUuMjMgMTIuMTcxLTcuODgzIDI1LjA0LTcuODgzIDM4LjI1VjQzMkgxODh2LTEwLjI4NmMwLTE2LjM3LTcuMTQtMzEuOTc3LTE5LjU5LTQyLjgxN2wtOTcuNzEtODUuMDhDNTYuMjc0IDI4MS4yNTUgNDggMjYzLjIzNiA0OCAyNDQuMzgxdi01Ni45NTNjMC0zMy4yMDggNTItMzMuNTM3IDUyIC42Nzd2NDEuMjI4YTE2IDE2IDAgMCAwIDUuNDkzIDEyLjA2N2w3IDYuMDk1QTE2IDE2IDAgMCAwIDEzOSAyMzUuNDI5VjExOC44NTdjMC0zMy4wOTcgNTItMzMuNzI1IDUyIC42Nzd2MjYuNzUxYzAgOC44MzYgNy4xNjQgMTYgMTYgMTZoN2M4LjgzNiAwIDE2LTcuMTY0IDE2LTE2di00MS4xNDNjMC0zMy4xMzQgNTItMzMuNjc1IDUyIC42Nzd2NDAuNDY2YzAgOC44MzYgNy4xNjMgMTYgMTYgMTZoN2M4LjgzNyAwIDE2LTcuMTY0IDE2LTE2di0yNy40MjljMC0zMy4wMyA1Mi0zMy43OCA1MiAuNjc3djI2Ljc1MWMwIDguODM2IDcuMTYzIDE2IDE2IDE2aDdjOC44MzcgMCAxNi03LjE2NCAxNi0xNiAwLTMzLjE0NiA1Mi0zMy42MTMgNTIgLjY3N3YxMTQuNDQ1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIYW5kU2Npc3NvcnMgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDQ4MGw3MC0uMDEzYzUuMTE0IDAgMTAuMjMxLS41ODMgMTUuMjAzLTEuNzI5bDExOC45OTktMjcuNDI3QzQ5MC41NiA0NDMuODM1IDUxMiA0MTcuMDIgNTEyIDM4Ni4yNzdWMTgwLjU3NWMwLTIzLjg0NS0xMy4wMy00NS45NTEtMzQuMDA1LTU3LjY5bC05Ny45OTktNTQuODUzYy0zNC40MDktMTkuMjYxLTY3LjI2My01LjgyNC05Mi4yMTggMjQuNzMzTDE0Mi44NSAzNy4wMDhjLTM3Ljg4Ny0xNC41NzktODAuNjEyIDMuNzI3LTk1LjY0MiA0MS4yMDEtMTUuMDk4IDM3LjY0MiAzLjYzNSA4MC4zNyA0MS45NDIgOTUuMTEyTDE2OCAxOTJsLTk0LTkuMTQxYy00MC44MDQgMC03NCAzMi44MTEtNzQgNzMuMTQgMCA0MC4zMyAzMy4xOTYgNzMuMTQxIDc0IDczLjE0MWg4Ny42MzVjLTMuNjc1IDI2LjI0NSA4LjY5MiA1MS4yOTcgMzAuMzQxIDY1LjAwNkMxNzguNjU3IDQzNi43MzcgMjExLjA0NCA0ODAgMjU2IDQ4MHptMC00OC4wMTNjLTI1LjE2IDAtMjUuMTItMzYuNTY3IDAtMzYuNTY3IDguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTYuODU2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTI4Yy0yNS4xNTkgMC0yNS4xMjItMzYuNTY3IDAtMzYuNTY3aDI4YzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTYuODU2YzAtOC44MzctNy4xNjMtMTYtMTYtMTZINzRjLTM0LjQzIDAtMzQuMzc1LTUwLjI4MSAwLTUwLjI4MWgxODJjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMTEuNjMyYTE2IDE2IDAgMCAwLTEwLjI1NC0xNC45MzNMMTA2LjM4OSAxMjguNTFjLTMxLjU1Mi0xMi4xNC0xMy40MzItNTkuMjgzIDE5LjIyMi00Ni43MTdsMTY2LjU0OSA2NC4wOTFhMTYuMDAxIDE2LjAwMSAwIDAgMCAxOC4xMzktNC44MTJsMjEuNzY0LTI2LjY0N2M1LjgyLTcuMTI3IDE2LjM0OC05LjA2NCAyNC40ODgtNC41MDhsOTggNTQuODU0YzUuODI4IDMuMjYzIDkuNDQ5IDkuMzE4IDkuNDQ5IDE1LjgwNXYyMDUuNzAxYzAgOC40OTEtNS45OTQgMTUuODA0LTE0LjU3NiAxNy43ODJsLTExOS4wMDEgMjcuNDI3YTE5Ljc0MyAxOS43NDMgMCAwIDEtNC40MjMuNTAyaC03MHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGFuZFNwb2NrIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUwMS4wMzA1MywxMTYuMTc2MDVjLTE5LjM5MDU5LTMxLjUwNzc5LTUxLjI0NDA2LTM1LjcyODQ5LTY2LjMxMDQ0LTM1LjAxNzU2LTE0LjExMzI1LTUwLjgxMDUxLTYyLjAwMzgtNTQuMDgtNzAuNzM4MTYtNTQuMDhhNzQuMDMwOTEsNzQuMDMwOTEsMCwwLDAtNzIuMjM4MTYsNTguOTE2bC00LjY0NjQ4LDIyLjY2MDE0LTEzLjY4MzU3LTUzLjIwN2MtOS4wOTU2OS0zNS4zNzEwNy00Ni40MTItNjQuMDUwNzQtODkuNjYtNTMuMDcyMjNhNzMuODk3NDksNzMuODk3NDksMCwwLDAtNTUuMTIxLDc4Ljk0NzIyLDczLjY4MjczLDczLjY4MjczLDAsMCwwLTY0Ljg0OTUsOTQuNDIxODFsMjQuMzU5MzMsODIuMTk3MjFjLTM4LjI0MDE3LTcuNTQ0OTItNjIuNzk2NzcsMTYuMTgzNTgtNjguMTE1MTIsMjEuODQ3NjRhNzMuNjc5MSw3My42NzkxLDAsMCwwLDMuMTk5MjEsMTA0LjE5MzI5bDkxLjM2NTA5LDg1Ljk3NjVBMTU0LjE2NCwxNTQuMTY0LDAsMCwwLDIyMC42MjI3OSw1MTJoMTA3LjQ1NDlBMTI3LjMwMDc5LDEyNy4zMDA3OSwwLDAsMCw0NTIuMzM5Miw0MTMuODYxMzlsNTcuNjIzLTI0MS45NjI3MkE3My4yMDI3NCw3My4yMDI3NCwwLDAsMCw1MDEuMDMwNTMsMTE2LjE3NjA1Wm0tMzcuNzU5Nyw0NC42MDU0NEw0MDUuNjQ3ODgsNDAyLjc0ODEyYTc5LjQ2NjE2LDc5LjQ2NjE2LDAsMCwxLTc3LjU3MDE5LDYxLjI1OTcySDIyMC42MjI3OWExMDYuMzQwNTIsMTA2LjM0MDUyLDAsMCwxLTczLjEzNjYtMjguOTk4bC05MS4zNjktODUuOTgwNDFDMzEuMzQzODEsMzI1LjcyNjY5LDY2LjYxMTMzLDI4OC4xMzEsOTEuMzk2NDQsMzExLjUzOTJsNTEuMTIzLDQ4LjEwNzM5YzUuNDI1NzcsNS4xMDkzNywxMy40ODIzOS43MTY3OSwxMy40ODIzOS01LjgyNjE3YTI0Ni43OTkxNCwyNDYuNzk5MTQsMCwwLDAtMTAuMTc3NzEtNzAuMTUyM2wtMzYuMDEzNjItMTIxLjUzOWMtOS43MzI0LTMyLjg4Mjc5LDM5LjY5OTE2LTQ3LjI3MTQ1LDQ5LjM4NjY0LTE0LjYyNWwzMS4zNDM3LDEwNS43NzkyM2M1LjU5Mzc0LDE4LjkwNDI4LDMzLjc4MTE5LDEwLjcxMjg4LDI4Ljk2NDgtOC4wMDc4MUwxNzcuMDY0MjcsODAuMjM2NjJjLTguNTAzODktMzMuMTAzNSw0MS40MzE1Ny00NS42NDY0Niw0OS44NjUxNS0xMi44MzU5M2w0Ny4zMjYwOSwxODQuMDM1YzQuNDI3NzMsMTcuMjQyMTgsMjkuMTYyMDcsMTYuNTAzOSwzMi43MTA4OS0uODA0NjhsMzEuNzkxLTE1NC45NzA2YzYuODEwNTQtMzMuMTA3NCw1Ny41MTc0OC0yNC4xMDc0MSw1MC4xMTkwNiwxMS45NjI4OEwzNjAuMzI3NjQsMjQ2Ljc4OTI0Yy0zLjcyMjY1LDE4LjEwOTM2LDIzLjY2NzkzLDI0LjYzMDg0LDI4LjA1NjU5LDYuMjE2NzlMNDEzLjE4NSwxNDguODU5NjJDNDIxLjE0OTgsMTE1LjUxMiw0NzEuMTQsMTI3Ljc5NzEzLDQ2My4yNzA4MywxNjAuNzgxNDlaXCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0hhbmRzaGFrZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNjQwIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MTkuMiAxMjcuOWwtNDcuNi00Ny42QTU2LjI1MiA1Ni4yNTIgMCAwIDAgNDMyIDY0SDIwNS4yYy0xNC44IDAtMjkuMSA1LjktMzkuNiAxNi4zTDExOCAxMjcuOUgwdjI1NS43aDY0YzE3LjYgMCAzMS44LTE0LjIgMzEuOS0zMS43aDkuMWw4NC42IDc2LjRjMzAuOSAyNS4xIDczLjggMjUuNyAxMDUuNiAzLjggMTIuNSAxMC44IDI2IDE1LjkgNDEuMSAxNS45IDE4LjIgMCAzNS4zLTcuNCA0OC44LTI0IDIyLjEgOC43IDQ4LjIgMi42IDY0LTE2LjhsMjYuMi0zMi4zYzUuNi02LjkgOS4xLTE0LjggMTAuOS0yM2g1Ny45Yy4xIDE3LjUgMTQuNCAzMS43IDMxLjkgMzEuN2g2NFYxMjcuOUg1MTkuMnpNNDggMzUxLjZjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2YzAgOC45LTcuMiAxNi0xNiAxNnptMzkwLTYuOWwtMjYuMSAzMi4yYy0yLjggMy40LTcuOCA0LTExLjMgMS4ybC0yMy45LTE5LjQtMzAgMzYuNWMtNiA3LjMtMTUgNC44LTE4IDIuNGwtMzYuOC0zMS41LTE1LjYgMTkuMmMtMTMuOSAxNy4xLTM5LjIgMTkuNy01NS4zIDYuNmwtOTcuMy04OEg5NlYxNzUuOGg0MS45bDYxLjctNjEuNmMyLS44IDMuNy0xLjUgNS43LTIuM0gyNjJsLTM4LjcgMzUuNWMtMjkuNCAyNi45LTMxLjEgNzIuMy00LjQgMTAxLjMgMTQuOCAxNi4yIDYxLjIgNDEuMiAxMDEuNSA0LjRsOC4yLTcuNSAxMDguMiA4Ny44YzMuNCAyLjggMy45IDcuOSAxLjIgMTEuM3ptMTA2LTQwLjhoLTY5LjJjLTIuMy0yLjgtNC45LTUuNC03LjctNy43bC0xMDIuNy04My40IDEyLjUtMTEuNGM2LjUtNiA3LTE2LjEgMS0yMi42TDM2NyAxNjcuMWMtNi02LjUtMTYuMS02LjktMjIuNi0xbC01NS4yIDUwLjZjLTkuNSA4LjctMjUuNyA5LjQtMzQuNiAwLTkuMy05LjktOC41LTI1LjEgMS4yLTMzLjlsNjUuNi02MC4xYzcuNC02LjggMTctMTAuNSAyNy0xMC41bDgzLjctLjJjMi4xIDAgNC4xLjggNS41IDIuM2w2MS43IDYxLjZINTQ0djEyOHptNDggNDcuN2MtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTZjMCA4LjktNy4yIDE2LTE2IDE2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIZGQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTY3LjQwMyAyMzUuNjQyTDQ2Mi4zMjMgODQuNTg5QTQ4IDQ4IDAgMCAwIDQyMi45MTkgNjRIMTUzLjA4MWE0OCA0OCAwIDAgMC0zOS40MDQgMjAuNTg5TDguNTk3IDIzNS42NDJBNDguMDAxIDQ4LjAwMSAwIDAgMCAwIDI2My4wNTRWNDAwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDgwYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMjYzLjA1NGMwLTkuODAxLTMtMTkuMzY2LTguNTk3LTI3LjQxMnpNMTUzLjA4MSAxMTJoMjY5LjgzOGw3Ny45MTMgMTEySDc1LjE2OGw3Ny45MTMtMTEyek01MjggNDAwSDQ4VjI3Mmg0ODB2MTI4em0tMzItNjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMycy0zMi0xNC4zMjctMzItMzIgMTQuMzI3LTMyIDMyLTMyIDMyIDE0LjMyNyAzMiAzMnptLTk2IDBjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMycy0zMi0xNC4zMjctMzItMzIgMTQuMzI3LTMyIDMyLTMyIDMyIDE0LjMyNyAzMiAzMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSGVhcnQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDU4LjQgNjQuM0M0MDAuNiAxNS43IDMxMS4zIDIzIDI1NiA3OS4zIDIwMC43IDIzIDExMS40IDE1LjYgNTMuNiA2NC4zLTIxLjYgMTI3LjYtMTAuNiAyMzAuOCA0MyAyODUuNWwxNzUuNCAxNzguN2MxMCAxMC4yIDIzLjQgMTUuOSAzNy42IDE1LjkgMTQuMyAwIDI3LjYtNS42IDM3LjYtMTUuOEw0NjkgMjg1LjZjNTMuNS01NC43IDY0LjctMTU3LjktMTAuNi0yMjEuM3ptLTIzLjYgMTg3LjVMMjU5LjQgNDMwLjVjLTIuNCAyLjQtNC40IDIuNC02LjggMEw3Ny4yIDI1MS44Yy0zNi41LTM3LjItNDMuOS0xMDcuNiA3LjMtMTUwLjcgMzguOS0zMi43IDk4LjktMjcuOCAxMzYuNSAxMC41bDM1IDM1LjcgMzUtMzUuN2MzNy44LTM4LjUgOTcuOC00My4yIDEzNi41LTEwLjYgNTEuMSA0My4xIDQzLjUgMTEzLjkgNy4zIDE1MC44elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdIb3NwaXRhbCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xMjggMjQ0di00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTE0MCAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyem0tNzYgODR2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptNzYgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptMTgwIDEyNHYzNkgwdi0zNmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE5LjVWODUuMDM1QzMxLjUgNzMuNDE4IDQyLjI0NSA2NCA1NS41IDY0SDE0NFYyNGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTEyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY0MGg4OC41YzEzLjI1NSAwIDI0IDkuNDE4IDI0IDIxLjAzNVY0NjRINDM2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ6TTc5LjUgNDYzSDE5MnYtNjdjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjY3aDExMi41VjExMkgzMDR2MjRjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0SDE2OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di0yNEg3OS41djM1MXpNMjY2IDY0aC0yNlYzOGE2IDYgMCAwIDAtNi02aC0yMGE2IDYgMCAwIDAtNiA2djI2aC0yNmE2IDYgMCAwIDAtNiA2djIwYTYgNiAwIDAgMCA2IDZoMjZ2MjZhNiA2IDAgMCAwIDYgNmgyMGE2IDYgMCAwIDAgNi02Vjk2aDI2YTYgNiAwIDAgMCA2LTZWNzBhNiA2IDAgMCAwLTYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSG91cmdsYXNzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzODQgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM2OCA0OGg0YzYuNjI3IDAgMTItNS4zNzMgMTItMTJWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMkM1LjM3MyAwIDAgNS4zNzMgMCAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDRjMCA4MC41NjQgMzIuMTg4IDE2NS44MDcgOTcuMTggMjA4QzQ3Ljg5OSAyOTguMzgxIDE2IDM4My45IDE2IDQ2NGgtNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDM2MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi0yNGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00YzAtODAuNTY0LTMyLjE4OC0xNjUuODA3LTk3LjE4LTIwOEMzMzYuMTAyIDIxMy42MTkgMzY4IDEyOC4xIDM2OCA0OHpNNjQgNDhoMjU2YzAgMTAxLjYyLTU3LjMwNyAxODQtMTI4IDE4NFM2NCAxNDkuNjIxIDY0IDQ4em0yNTYgNDE2SDY0YzAtMTAxLjYyIDU3LjMwOC0xODQgMTI4LTE4NHMxMjggODIuMzggMTI4IDE4NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSWRCYWRnZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgMzg0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMzYgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHptMCA0NjRINDhWNDhoMjg4djQxNnpNMTQ0IDExMmg5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNmgtOTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZ6bTQ4IDE3NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bS04OS42IDEyOGgxNzkuMmMxMi40IDAgMjIuNC04LjYgMjIuNC0xOS4ydi0xOS4yYzAtMzEuOC0zMC4xLTU3LjYtNjcuMi01Ny42LTEwLjggMC0xOC43IDgtNDQuOCA4LTI2LjkgMC0zMy40LTgtNDQuOC04LTM3LjEgMC02Ny4yIDI1LjgtNjcuMiA1Ny42djE5LjJjMCAxMC42IDEwIDE5LjIgMjIuNCAxOS4yelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdJZENhcmQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptMCA0MDBIMzAzLjJjLjktNC41LjggMy42LjgtMjIuNCAwLTMxLjgtMzAuMS01Ny42LTY3LjItNTcuNi0xMC44IDAtMTguNyA4LTQ0LjggOC0yNi45IDAtMzMuNC04LTQ0LjgtOC0zNy4xIDAtNjcuMiAyNS44LTY3LjIgNTcuNiAwIDI2LS4yIDE3LjkuOCAyMi40SDQ4VjE0NGg0ODB2Mjg4em0tMTY4LTgwaDExMmM0LjQgMCA4LTMuNiA4LTh2LTE2YzAtNC40LTMuNi04LTgtOEgzNjBjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bTAtNjRoMTEyYzQuNCAwIDgtMy42IDgtOHYtMTZjMC00LjQtMy42LTgtOC04SDM2MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOHptMC02NGgxMTJjNC40IDAgOC0zLjYgOC04di0xNmMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4em0tMTY4IDk2YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSW1hZ2UgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTEyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS02IDMzNkg1NGE2IDYgMCAwIDEtNi02VjExOGE2IDYgMCAwIDEgNi02aDQwNGE2IDYgMCAwIDEgNiA2djI3NmE2IDYgMCAwIDEtNiA2ek0xMjggMTUyYy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6TTk2IDM1MmgzMjB2LTgwbC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMTkyIDMwNGwtMzkuNTE1LTM5LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDk2IDMwNHY0OHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnSW1hZ2VzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA0MTZ2MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnY0OEg1NGE2IDYgMCAwIDAtNiA2djI0NGE2IDYgMCAwIDAgNiA2aDM3MmE2IDYgMCAwIDAgNi02di0xMGg0OHptNDItMzM2SDE1MGE2IDYgMCAwIDAtNiA2djI0NGE2IDYgMCAwIDAgNiA2aDM3MmE2IDYgMCAwIDAgNi02Vjg2YTYgNiAwIDAgMC02LTZ6bTYtNDhjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyNTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEgxNDRjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzODR6TTI2NCAxNDRjMCAyMi4wOTEtMTcuOTA5IDQwLTQwIDQwcy00MC0xNy45MDktNDAtNDAgMTcuOTA5LTQwIDQwLTQwIDQwIDE3LjkwOSA0MCA0MHptLTcyIDk2bDM5LjUxNS0zOS41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDI4OCAyNDBsMTAzLjUxNS0xMDMuNTE1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMEw0ODAgMjA4djgwSDE5MnYtNDh6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0tleWJvYXJkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTUyOCA2NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQ4MGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjExMmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em04IDMzNmMwIDQuNDExLTMuNTg5IDgtOCA4SDQ4Yy00LjQxMSAwLTgtMy41ODktOC04VjExMmMwLTQuNDExIDMuNTg5LTggOC04aDQ4MGM0LjQxMSAwIDggMy41ODkgOCA4djI4OHpNMTcwIDI3MHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDgydi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDgyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMzg0IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpNMTIyIDE4OHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMkg4MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtMjhjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjhjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi0yOGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yOGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDI4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTI4YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTI4Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTk4IDE1OHYtMTZjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxODBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnS2lzc0JlYW0gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMTY4IDE1MmMtMjMuOCAwLTUyLjcgMjkuMy01NiA3MS40LS4zIDMuNyAyIDcuMiA1LjYgOC4zIDMuNSAxIDcuNS0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA1LjktNC41IDUuNi04LjMtMy4xLTQyLjEtMzItNzEuNC01NS44LTcxLjR6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptNTYtMTQ4YzAtMTkuMi0yOC44LTQxLjUtNzEuNS00NC0zLjgtLjQtNy40IDIuNC04LjIgNi4yLS45IDMuOCAxLjEgNy43IDQuNyA5LjJsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtNS43IDIuNC02IDEyLjIgMCAxNC44bDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTMuNiAxLjUtNS42IDUuNC00LjcgOS4yLjggMy42IDQuMSA2LjIgNy44IDYuMmguNWM0Mi44LTIuNSA3MS41LTI0LjggNzEuNS00NCAwLTEzLTEzLjQtMjcuMy0zNS4yLTM2QzI5MC42IDMzNS4zIDMwNCAzMjEgMzA0IDMwOHptMjQtMTU2Yy0yMy44IDAtNTIuNyAyOS4zLTU2IDcxLjQtLjMgMy43IDIgNy4yIDUuNiA4LjMgMy41IDEgNy41LS41IDkuMy0zLjdsOS41LTE3YzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDUuOS00LjUgNS42LTguMy0zLjEtNDIuMS0zMi03MS40LTU1LjgtNzEuNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnS2lzc1dpbmtIZWFydCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTA0IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMDQgMzA4LjVjMC0xOS4yLTI4LjgtNDEuNS03MS41LTQ0LTMuOC0uNC03LjQgMi40LTguMiA2LjItLjkgMy44IDEuMSA3LjcgNC43IDkuMmwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy01LjcgMi40LTYgMTIuMiAwIDE0LjhsMTYuOSA3LjJjMTMgNS41IDIwLjggMTMuNSAyMC44IDIxLjVzLTcuOCAxNi0yMC43IDIxLjVsLTE3IDcuMmMtMy42IDEuNS01LjYgNS40LTQuNyA5LjIuOCAzLjYgNC4xIDYuMiA3LjggNi4yaC41YzQyLjgtMi41IDcxLjUtMjQuOCA3MS41LTQ0IDAtMTMtMTMuNC0yNy4zLTM1LjItMzYgMjEuNy05LjEgMzUuMS0yMy40IDM1LjEtMzYuNHptNzAuNS04My41bDkuNSA4LjVjMy44IDMuMyA5LjMgNCAxMy43IDEuNiA0LjQtMi40IDYuOS03LjQgNi4xLTEyLjQtNC0yNS4yLTM0LjItNDIuMS01OS44LTQyLjFzLTU1LjkgMTYuOS01OS44IDQyLjFjLS44IDUgMS43IDEwIDYuMSAxMi40IDUuOCAzLjEgMTEuMi43IDEzLjctMS42bDkuNS04LjVjMTQuOC0xMy4yIDQ2LjItMTMuMiA2MSAwek0xMzYgMjA4LjVjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzJ6bTM2NS4xIDE5NGMtOC0yMC44LTMxLjUtMzEuNS01My4xLTI1LjlsLTguNCAyLjItMi4zLTguNGMtNS45LTIxLjQtMjctMzYuNS00OS0zMy0yNS4yIDQtNDAuNiAyOC42LTM0IDUyLjZsMjIuOSA4Mi42YzEuNSA1LjMgNyA4LjUgMTIuNCA3LjFsODMtMjEuNWMyNC4xLTYuMyAzNy43LTMxLjggMjguNS01NS43ek0zMzQgNDM2LjNjLTI2LjEgMTIuNS01NS4yIDE5LjctODYgMTkuNy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDBjMCAyMi4xLTMuNyA0My4zLTEwLjQgNjMuMiA5IDYuNCAxNyAxNC4yIDIyLjYgMjMuOSA2LjQuMSAxMi42IDEuNCAxOC42IDIuOSAxMC45LTI3LjkgMTcuMS01OC4yIDE3LjEtOTBDNDk2IDExOSAzODUgOCAyNDggOFMwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDhjMzUuNCAwIDY4LjktNy41IDk5LjQtMjAuOS0yLjUtNy4zIDQuMyAxNy4yLTEzLjQtNDYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnS2lzcyAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0xNjggMTc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptMTM2IDEzMmMwLTE5LjItMjguOC00MS41LTcxLjUtNDQtMy44LS40LTcuNCAyLjQtOC4yIDYuMi0uOSAzLjggMS4xIDcuNyA0LjcgOS4ybDE2LjkgNy4yYzEzIDUuNSAyMC44IDEzLjUgMjAuOCAyMS41cy03LjggMTYtMjAuNyAyMS41bC0xNyA3LjJjLTUuNyAyLjQtNiAxMi4yIDAgMTQuOGwxNi45IDcuMmMxMyA1LjUgMjAuOCAxMy41IDIwLjggMjEuNXMtNy44IDE2LTIwLjcgMjEuNWwtMTcgNy4yYy0zLjYgMS41LTUuNiA1LjQtNC43IDkuMi44IDMuNiA0LjEgNi4yIDcuOCA2LjJoLjVjNDIuOC0yLjUgNzEuNS0yNC44IDcxLjUtNDQgMC0xMy0xMy40LTI3LjMtMzUuMi0zNkMyOTAuNiAzMzUuMyAzMDQgMzIxIDMwNCAzMDh6TTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptODAtMjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGF1Z2hCZWFtIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0MS40IDM4OS40Yy0zNy44IDM3LjgtODggNTguNi0xNDEuNCA1OC42cy0xMDMuNi0yMC44LTE0MS40LTU4LjZTNDggMzA5LjQgNDggMjU2czIwLjgtMTAzLjYgNTguNi0xNDEuNFMxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42UzQ0OCAyMDIuNiA0NDggMjU2cy0yMC44IDEwMy42LTU4LjYgMTQxLjR6TTMyOCAxNTJjLTIzLjggMC01Mi43IDI5LjMtNTYgNzEuNC0uNyA4LjYgMTAuOCAxMS45IDE0LjkgNC41bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjNC4xIDcuNCAxNS42IDQgMTQuOS00LjUtMy4xLTQyLjEtMzItNzEuNC01NS44LTcxLjR6bS0yMDEgNzUuOWw5LjUtMTdjNy43LTEzLjcgMTkuMi0yMS42IDMxLjUtMjEuNnMyMy44IDcuOSAzMS41IDIxLjZsOS41IDE3YzQuMSA3LjQgMTUuNiA0IDE0LjktNC41LTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40cy01Mi43IDI5LjMtNTYgNzEuNGMtLjYgOC41IDEwLjkgMTEuOSAxNS4xIDQuNXpNMzYyLjQgMjg4SDEzMy42Yy04LjIgMC0xNC41IDctMTMuNSAxNSA3LjUgNTkuMiA1OC45IDEwNSAxMjEuMSAxMDVoMTMuNmM2Mi4yIDAgMTEzLjYtNDUuOCAxMjEuMS0xMDUgMS04LTUuMy0xNS0xMy41LTE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMYXVnaFNxdWludCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDEuNCAzODkuNGMtMzcuOCAzNy44LTg4IDU4LjYtMTQxLjQgNTguNnMtMTAzLjYtMjAuOC0xNDEuNC01OC42UzQ4IDMwOS40IDQ4IDI1NnMyMC44LTEwMy42IDU4LjYtMTQxLjRTMTk0LjYgNTYgMjQ4IDU2czEwMy42IDIwLjggMTQxLjQgNTguNlM0NDggMjAyLjYgNDQ4IDI1NnMtMjAuOCAxMDMuNi01OC42IDE0MS40ek0zNDMuNiAxOTZsMzMuNi00MC4zYzguNi0xMC4zLTMuOC0yNC44LTE1LjQtMThsLTgwIDQ4Yy03LjggNC43LTcuOCAxNS45IDAgMjAuNmw4MCA0OGMxMS41IDYuOCAyNC03LjYgMTUuNC0xOEwzNDMuNiAxOTZ6bS0yMDkuNCA1OC4zbDgwLTQ4YzcuOC00LjcgNy44LTE1LjkgMC0yMC42bC04MC00OGMtMTEuNi02LjktMjQgNy43LTE1LjQgMThsMzMuNiA0MC4zLTMzLjYgNDAuM2MtOC43IDEwLjQgMy44IDI0LjggMTUuNCAxOHpNMzYyLjQgMjg4SDEzMy42Yy04LjIgMC0xNC41IDctMTMuNSAxNSA3LjUgNTkuMiA1OC45IDEwNSAxMjEuMSAxMDVoMTMuNmM2Mi4yIDAgMTEzLjYtNDUuOCAxMjEuMS0xMDUgMS04LTUuMy0xNS0xMy41LTE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMYXVnaFdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMTQxLjQgMzg5LjRjLTM3LjggMzcuOC04OCA1OC42LTE0MS40IDU4LjZzLTEwMy42LTIwLjgtMTQxLjQtNTguNkM2OC44IDM1OS42IDQ4IDMwOS40IDQ4IDI1NnMyMC44LTEwMy42IDU4LjYtMTQxLjRDMTQ0LjQgNzYuOCAxOTQuNiA1NiAyNDggNTZzMTAzLjYgMjAuOCAxNDEuNCA1OC42YzM3LjggMzcuOCA1OC42IDg4IDU4LjYgMTQxLjRzLTIwLjggMTAzLjYtNTguNiAxNDEuNHpNMzI4IDE2NGMtMjUuNyAwLTU1LjkgMTYuOS01OS45IDQyLjEtMS43IDExLjIgMTEuNSAxOC4yIDE5LjggMTAuOGw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzguNSA3LjQgMjEuNi4zIDE5LjgtMTAuOC0zLjgtMjUuMi0zNC00Mi4xLTU5LjctNDIuMXptLTE2MCA2MGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE5NC40IDY0SDEzMy42Yy04LjIgMC0xNC41IDctMTMuNSAxNSA3LjUgNTkuMiA1OC45IDEwNSAxMjEuMSAxMDVoMTMuNmM2Mi4yIDAgMTEzLjYtNDUuOCAxMjEuMS0xMDUgMS04LTUuMy0xNS0xMy41LTE1elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdMYXVnaCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0xNDEuNCAzODkuNGMtMzcuOCAzNy44LTg4IDU4LjYtMTQxLjQgNTguNnMtMTAzLjYtMjAuOC0xNDEuNC01OC42UzQ4IDMwOS40IDQ4IDI1NnMyMC44LTEwMy42IDU4LjYtMTQxLjRTMTk0LjYgNTYgMjQ4IDU2czEwMy42IDIwLjggMTQxLjQgNTguNlM0NDggMjAyLjYgNDQ4IDI1NnMtMjAuOCAxMDMuNi01OC42IDE0MS40ek0zMjggMjI0YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptLTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMTk0LjQgNjRIMTMzLjZjLTguMiAwLTE0LjUgNy0xMy41IDE1IDcuNSA1OS4yIDU4LjkgMTA1IDEyMS4xIDEwNWgxMy42YzYyLjIgMCAxMTMuNi00NS44IDEyMS4xLTEwNSAxLTgtNS4zLTE1LTEzLjUtMTV6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ0xlbW9uIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4NC4xMTIgMjcuODg5QzQ1NS45ODktLjIzMyA0MTYuMTA4LTguMDU3IDM4Ny4wNTkgOC44NjUgMzQ3LjYwNCAzMS44NDggMjIzLjUwNC00MS4xMTEgOTEuMTk2IDkxLjE5Ny00MS4yNzcgMjIzLjY3MiAzMS45MjMgMzQ3LjQ3MiA4Ljg2NiAzODcuMDU4Yy0xNi45MjIgMjkuMDUxLTkuMSA2OC45MzIgMTkuMDIyIDk3LjA1NCAyOC4xMzUgMjguMTM1IDY4LjAxMSAzNS45MzggOTcuMDU3IDE5LjAyMSAzOS40MjMtMjIuOTcgMTYzLjU1NyA0OS45NjkgMjk1Ljg1OC04Mi4zMjkgMTMyLjQ3NC0xMzIuNDc3IDU5LjI3My0yNTYuMjc3IDgyLjMzMS0yOTUuODYxIDE2LjkyMi0yOS4wNSA5LjEtNjguOTMxLTE5LjAyMi05Ny4wNTR6bS0yMi40MDUgNzIuODk0Yy0zOC44IDY2LjYwOSA0NS42IDE2NS42MzUtNzQuODQ1IDI4Ni4wOC0xMjAuNDQgMTIwLjQ0My0yMTkuNDc1IDM2LjA0OC0yODYuMDc2IDc0Ljg0My0yMi42NzkgMTMuMjA3LTY0LjAzNS0yNy4yNDEtNTAuNDkzLTUwLjQ4OCAzOC44LTY2LjYwOS00NS42LTE2NS42MzUgNzQuODQ1LTI4Ni4wOEMyNDUuNTczIDQuNzAyIDM0NC42MTYgODkuMDg2IDQxMS4yMTkgNTAuMjkyYzIyLjczLTEzLjI0IDY0LjAwNSAyNy4yODggNTAuNDg4IDUwLjQ5MXptLTE2OS44NjEgOC43MzZjMS4zNyAxMC45Ni02LjQwNCAyMC45NTctMTcuMzY1IDIyLjMyNy01NC44NDYgNi44NTUtMTM1Ljc3OSA4Ny43ODctMTQyLjYzNSAxNDIuNjM1LTEuMzczIDEwLjk4OS0xMS4zOTkgMTguNzM0LTIyLjMyNiAxNy4zNjUtMTAuOTYxLTEuMzctMTguNzM1LTExLjM2Ni0xNy4zNjUtMjIuMzI2IDkuMTYyLTczLjI4NiAxMDQuMTY3LTE2OC4yMTUgMTc3LjM2NS0xNzcuMzY1IDEwLjk1My0xLjM2OCAyMC45NTYgNi40MDMgMjIuMzI2IDE3LjM2NHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlmZVJpbmcgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDUwNGMxMzYuOTY3IDAgMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDh6bS0xMDMuMzk4LTc2LjcybDUzLjQxMS01My40MTFjMzEuODA2IDEzLjUwNiA2OC4xMjggMTMuNTIyIDk5Ljk3NCAwbDUzLjQxMSA1My40MTFjLTYzLjIxNyAzOC4zMTktMTQzLjU3OSAzOC4zMTktMjA2Ljc5NiAwek0zMzYgMjU2YzAgNDQuMTEyLTM1Ljg4OCA4MC04MCA4MHMtODAtMzUuODg4LTgwLTgwIDM1Ljg4OC04MCA4MC04MCA4MCAzNS44ODggODAgODB6bTkxLjI4IDEwMy4zOThsLTUzLjQxMS01My40MTFjMTMuNTA1LTMxLjgwNiAxMy41MjItNjguMTI4IDAtOTkuOTc0bDUzLjQxMS01My40MTFjMzguMzE5IDYzLjIxNyAzOC4zMTkgMTQzLjU3OSAwIDIwNi43OTZ6TTM1OS4zOTcgODQuNzJsLTUzLjQxMSA1My40MTFjLTMxLjgwNi0xMy41MDUtNjguMTI4LTEzLjUyMi05OS45NzMgMEwxNTIuNjAyIDg0LjcyYzYzLjIxNy0zOC4zMTkgMTQzLjU3OS0zOC4zMTkgMjA2Ljc5NSAwek04NC43MiAxNTIuNjAybDUzLjQxMSA1My40MTFjLTEzLjUwNiAzMS44MDYtMTMuNTIyIDY4LjEyOCAwIDk5Ljk3NEw4NC43MiAzNTkuMzk4Yy0zOC4zMTktNjMuMjE3LTM4LjMxOS0xNDMuNTc5IDAtMjA2Ljc5NnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlnaHRidWxiIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCAzNTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTE3NiA4MGMtNTIuOTQgMC05NiA0My4wNi05NiA5NiAwIDguODQgNy4xNiAxNiAxNiAxNnMxNi03LjE2IDE2LTE2YzAtMzUuMyAyOC43Mi02NCA2NC02NCA4Ljg0IDAgMTYtNy4xNiAxNi0xNnMtNy4xNi0xNi0xNi0xNnpNOTYuMDYgNDU5LjE3YzAgMy4xNS45MyA2LjIyIDIuNjggOC44NGwyNC41MSAzNi44NGMyLjk3IDQuNDYgNy45NyA3LjE0IDEzLjMyIDcuMTRoNzguODVjNS4zNiAwIDEwLjM2LTIuNjggMTMuMzItNy4xNGwyNC41MS0zNi44NGMxLjc0LTIuNjIgMi42Ny01LjcgMi42OC04Ljg0bC4wNS00My4xOEg5Ni4wMmwuMDQgNDMuMTh6TTE3NiAwQzczLjcyIDAgMCA4Mi45NyAwIDE3NmMwIDQ0LjM3IDE2LjQ1IDg0Ljg1IDQzLjU2IDExNS43OCAxNi42NCAxOC45OSA0Mi43NCA1OC44IDUyLjQyIDkyLjE2di4wNmg0OHYtLjEyYy0uMDEtNC43Ny0uNzItOS41MS0yLjE1LTE0LjA3LTUuNTktMTcuODEtMjIuODItNjQuNzctNjIuMTctMTA5LjY3LTIwLjU0LTIzLjQzLTMxLjUyLTUzLjE1LTMxLjYxLTg0LjE0LS4yLTczLjY0IDU5LjY3LTEyOCAxMjcuOTUtMTI4IDcwLjU4IDAgMTI4IDU3LjQyIDEyOCAxMjggMCAzMC45Ny0xMS4yNCA2MC44NS0zMS42NSA4NC4xNC0zOS4xMSA0NC42MS01Ni40MiA5MS40Ny02Mi4xIDEwOS40NmE0Ny41MDcgNDcuNTA3IDAgMCAwLTIuMjIgMTQuM3YuMWg0OHYtLjA1YzkuNjgtMzMuMzcgMzUuNzgtNzMuMTggNTIuNDItOTIuMTZDMzM1LjU1IDI2MC44NSAzNTIgMjIwLjM3IDM1MiAxNzYgMzUyIDc4LjggMjczLjIgMCAxNzYgMHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTGlzdEFsdCAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS02IDQwMEg1NGE2IDYgMCAwIDEtNi02Vjg2YTYgNiAwIDAgMSA2LTZoNDA0YTYgNiAwIDAgMSA2IDZ2MzQwYTYgNiAwIDAgMS02IDZ6bS00Mi05MnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDIwNGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnptMC05NnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDIwNGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnptMC05NnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDIwNGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgyMDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnptLTI1MiAxMmMwIDE5Ljg4Mi0xNi4xMTggMzYtMzYgMzZzLTM2LTE2LjExOC0zNi0zNiAxNi4xMTgtMzYgMzYtMzYgMzYgMTYuMTE4IDM2IDM2em0wIDk2YzAgMTkuODgyLTE2LjExOCAzNi0zNiAzNnMtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNiAzNiAxNi4xMTggMzYgMzZ6bTAgOTZjMCAxOS44ODItMTYuMTE4IDM2LTM2IDM2cy0zNi0xNi4xMTgtMzYtMzYgMTYuMTE4LTM2IDM2LTM2IDM2IDE2LjExOCAzNiAzNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWFwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MC4wMiAzMmMtMS45NiAwLTMuOTguMzctNS45NiAxLjE2TDM4NC4wMSA5NkgzODRMMjEyIDM1LjI4QTY0LjI1MiA2NC4yNTIgMCAwIDAgMTkxLjc2IDMyYy02LjY5IDAtMTMuMzcgMS4wNS0xOS44MSAzLjE0TDIwLjEyIDg3Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTcuNjZ2MzQ2LjMyQzAgNDczLjE3IDcuNTMgNDgwIDE1Ljk5IDQ4MGMxLjk2IDAgMy45Ny0uMzcgNS45Ni0xLjE2TDE5MiA0MTZsMTcyIDYwLjcxYTYzLjk4IDYzLjk4IDAgMCAwIDQwLjA1LjE1bDE1MS44My01Mi44MUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiAzOTQuMzRWNDguMDJjMC05LjE5LTcuNTMtMTYuMDItMTUuOTgtMTYuMDJ6TTIyNCA5MC40MmwxMjggNDUuMTl2Mjg1Ljk3bC0xMjgtNDUuMTlWOTAuNDJ6TTQ4IDQxOC4wNVYxMjkuMDdsMTI4LTQ0LjUzdjI4Ni4ybC0uNjQuMjNMNDggNDE4LjA1em00ODAtMzUuMTNsLTEyOCA0NC41M1YxNDEuMjZsLjY0LS4yNEw1MjggOTMuOTV2Mjg4Ljk3elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdNZWhCbGFuayAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bS04MC0yODBjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0xNjAgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01laFJvbGxpbmdFeWVzIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptODgtMzA0Yy0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MnptMCAxMTJjLTIyLjEgMC00MC0xNy45LTQwLTQwIDAtMTMuNiA3LjMtMjUuMSAxNy43LTMyLjMtMSAyLjYtMS43IDUuMy0xLjcgOC4zIDAgMTMuMyAxMC43IDI0IDI0IDI0czI0LTEwLjcgMjQtMjRjMC0yLjktLjctNS43LTEuNy04LjMgMTAuNCA3LjIgMTcuNyAxOC43IDE3LjcgMzIuMyAwIDIyLjEtMTcuOSA0MC00MCA0MHptLTEwNC00MGMwLTM5LjgtMzIuMi03Mi03Mi03MnMtNzIgMzIuMi03MiA3MiAzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzJ6bS0xMTIgMGMwLTEzLjYgNy4zLTI1LjEgMTcuNy0zMi4zLTEgMi42LTEuNyA1LjMtMS43IDguMyAwIDEzLjMgMTAuNyAyNCAyNCAyNHMyNC0xMC43IDI0LTI0YzAtMi45LS43LTUuNy0xLjctOC4zIDEwLjQgNy4yIDE3LjcgMTguNyAxNy43IDMyLjMgMCAyMi4xLTE3LjkgNDAtNDAgNDBzLTQwLTE3LjktNDAtNDB6bTE5MiAxMjhIMTg0Yy0xMy4yIDAtMjQgMTAuOC0yNCAyNHMxMC44IDI0IDI0IDI0aDEyOGMxMy4yIDAgMjQtMTAuOCAyNC0yNHMtMTAuOC0yNC0yNC0yNHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTWVoIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MC02NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6bTggMTQ0SDE2MGMtMTMuMiAwLTI0IDEwLjgtMjQgMjRzMTAuOCAyNCAyNCAyNGgxNzZjMTMuMiAwIDI0LTEwLjggMjQtMjRzLTEwLjgtMjQtMjQtMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01pbnVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTEwOCAyODRjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzJjMC02LjYgNS40LTEyIDEyLTEyaDIzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2MzJjMCA2LjYtNS40IDEyLTEyIDEySDEwOHpNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNDggMzQ2Vjg2YzAtMy4zLTIuNy02LTYtNkg1NGMtMy4zIDAtNiAyLjctNiA2djM0MGMwIDMuMyAyLjcgNiA2IDZoMzQwYzMuMyAwIDYtMi43IDYtNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTW9uZXlCaWxsQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA2NDAgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTMyMCAxNDRjLTUzLjAyIDAtOTYgNTAuMTQtOTYgMTEyIDAgNjEuODUgNDIuOTggMTEyIDk2IDExMiA1MyAwIDk2LTUwLjEzIDk2LTExMiAwLTYxLjg2LTQyLjk4LTExMi05Ni0xMTJ6bTQwIDE2OGMwIDQuNDItMy41OCA4LTggOGgtNjRjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxNnYtNTUuNDRsLS40Ny4zMWE3Ljk5MiA3Ljk5MiAwIDAgMS0xMS4wOS0yLjIybC04Ljg4LTEzLjMxYTcuOTkyIDcuOTkyIDAgMCAxIDIuMjItMTEuMDlsMTUuMzMtMTAuMjJhMjMuOTkgMjMuOTkgMCAwIDEgMTMuMzEtNC4wM0gzMjhjNC40MiAwIDggMy41OCA4IDh2ODhoMTZjNC40MiAwIDggMy41OCA4IDh2MTZ6TTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTE2IDI3MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NEgxMTJjMC0zNS4zNS0yOC42NS02NC02NC02NFYxNzZjMzUuMzUgMCA2NC0yOC42NSA2NC02NGg0MTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NHYxNjB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ01vb24gKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjc5LjEzNSA1MTJjNzguNzU2IDAgMTUwLjk4Mi0zNS44MDQgMTk4Ljg0NC05NC43NzUgMjguMjctMzQuODMxLTIuNTU4LTg1LjcyMi00Ni4yNDktNzcuNDAxLTgyLjM0OCAxNS42ODMtMTU4LjI3Mi00Ny4yNjgtMTU4LjI3Mi0xMzAuNzkyIDAtNDguNDI0IDI2LjA2LTkyLjI5MiA2Ny40MzQtMTE1LjgzNiAzOC43NDUtMjIuMDUgMjguOTk5LTgwLjc4OC0xNS4wMjItODguOTE5QTI1Ny45MzYgMjU3LjkzNiAwIDAgMCAyNzkuMTM1IDBjLTE0MS4zNiAwLTI1NiAxMTQuNTc1LTI1NiAyNTYgMCAxNDEuMzYgMTE0LjU3NiAyNTYgMjU2IDI1NnptMC00NjRjMTIuOTg1IDAgMjUuNjg5IDEuMjAxIDM4LjAxNiAzLjQ3OC01NC43NiAzMS4xNjMtOTEuNjkzIDkwLjA0Mi05MS42OTMgMTU3LjU1NCAwIDExMy44NDggMTAzLjY0MSAxOTkuMiAyMTUuMjUyIDE3Ny45NDRDNDAyLjU3NCA0MzMuOTY0IDM0NC4zNjYgNDY0IDI3OS4xMzUgNDY0Yy0xMTQuODc1IDAtMjA4LTkzLjEyNS0yMDgtMjA4czkzLjEyNS0yMDggMjA4LTIwOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnTmV3c3BhcGVyIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU1MiA2NEgxMTJjLTIwLjg1OCAwLTM4LjY0MyAxMy4zNzctNDUuMjQ4IDMySDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MjcyYzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1Nmg0OTZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0Vjg4YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNNDggMzkyVjE0NGgxNnYyNDhjMCA0LjQxMS0zLjU4OSA4LTggOHMtOC0zLjU4OS04LTh6bTQ4MCA4SDExMS40MjJjLjM3NC0yLjYxNC41NzgtNS4yODMuNTc4LThWMTEyaDQxNnYyODh6TTE3MiAyODBoMTM2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjk2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ6bTI4LTgwaDgwdjQwaC04MHYtNDB6bS00MCAxNDB2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTM2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgxNzJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTE5MiAwdi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEwNGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzY0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wLTE0NHYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMDRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDM2NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMCA3MnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMDRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDM2NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnT2JqZWN0R3JvdXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTAwIDEyOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjEySDk2VjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJDNS4zNzMgMzIgMCAzNy4zNzMgMCA0NHY3MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDEydjI1NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY3MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEyaDMyMHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTcyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTEyVjEyOGgxMnptLTUyLTY0aDMydjMyaC0zMlY2NHpNMzIgNjRoMzJ2MzJIMzJWNjR6bTMyIDM4NEgzMnYtMzJoMzJ2MzJ6bTQxNiAwaC0zMnYtMzJoMzJ2MzJ6bS00MC02NGgtMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJIOTZ2LTEyYzAtNi42MjctNS4zNzMtMTItMTItMTJINzJWMTI4aDEyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEyaDMyMHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDEydjI1NnptLTM2LTE5MmgtODR2LTUyYzAtNi42MjgtNS4zNzMtMTItMTItMTJIMTA4Yy02LjYyNyAwLTEyIDUuMzcyLTEyIDEydjE2OGMwIDYuNjI4IDUuMzczIDEyIDEyIDEyaDg0djUyYzAgNi42MjggNS4zNzMgMTIgMTIgMTJoMjAwYzYuNjI3IDAgMTItNS4zNzIgMTItMTJWMjA0YzAtNi42MjgtNS4zNzMtMTItMTItMTJ6bS0yNjgtMjRoMTQ0djExMkgxMzZWMTY4em0yNDAgMTc2SDIzMnYtMjRoNzZjNi42MjcgMCAxMi01LjM3MiAxMi0xMnYtNzZoNTZ2MTEyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdPYmplY3RVbmdyb3VwIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2NCAyMjRjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNzJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNzJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MTJoLTg4di0yNGgxMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjEySDk2VjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJDNS4zNzMgMzIgMCAzNy4zNzMgMCA0NHY3MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDEydjE2MEgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY3MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEyaDg4djI0aC0xMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY3MmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEyaDIyNHYxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDcyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTcyYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTEyVjIyNGgxMnpNMzUyIDY0aDMydjMyaC0zMlY2NHptMCAyNTZoMzJ2MzJoLTMydi0zMnpNNjQgMzUySDMydi0zMmgzMnYzMnptMC0yNTZIMzJWNjRoMzJ2MzJ6bTMyIDIxNnYtMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3MlYxMjhoMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtMTJoMjI0djEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MTYwaC0xMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxMkg5NnptMTI4IDEzNmgtMzJ2LTMyaDMydjMyem0yODAtNjRoLTEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjEySDI1NnYtMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMTJ2LTI0aDg4djEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNzJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNzJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMTJ2LTg4aDg4djEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTJ2MTYwem00MCA2NGgtMzJ2LTMyaDMydjMyem0wLTI1NmgtMzJ2LTMyaDMydjMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQYXBlclBsYW5lIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MCA2LjVMMjQgMjQ2LjRjLTM0LjQgMTkuOS0zMS4xIDcwLjggNS43IDg1LjlMMTQ0IDM3OS42VjQ2NGMwIDQ2LjQgNTkuMiA2NS41IDg2LjYgMjguNmw0My44LTU5LjEgMTExLjkgNDYuMmM1LjkgMi40IDEyLjEgMy42IDE4LjMgMy42IDguMiAwIDE2LjMtMi4xIDIzLjYtNi4yIDEyLjgtNy4yIDIxLjYtMjAgMjMuOS0zNC41bDU5LjQtMzg3LjJjNi4xLTQwLjEtMzYuOS02OC44LTcxLjUtNDguOXpNMTkyIDQ2NHYtNjQuNmwzNi42IDE1LjFMMTkyIDQ2NHptMjEyLjYtMjguN2wtMTUzLjgtNjMuNUwzOTEgMTY5LjVjMTAuNy0xNS41LTkuNS0zMy41LTIzLjctMjEuMkwxNTUuOCAzMzIuNiA0OCAyODggNDY0IDQ4bC01OS40IDM4Ny4zelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQYXVzZUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUgMC0yMDAtODkuNS0yMDAtMjAwUzE0NS41IDU2IDI1NiA1NnMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDB6bTk2LTI4MHYxNjBjMCA4LjgtNy4yIDE2LTE2IDE2aC00OGMtOC44IDAtMTYtNy4yLTE2LTE2VjE3NmMwLTguOCA3LjItMTYgMTYtMTZoNDhjOC44IDAgMTYgNy4yIDE2IDE2em0tMTEyIDB2MTYwYzAgOC44LTcuMiAxNi0xNiAxNmgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDQ4YzguOCAwIDE2IDcuMiAxNiAxNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnUGxheUNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zNzEuNyAyMzhsLTE3Ni0xMDdjLTE1LjgtOC44LTM1LjcgMi41LTM1LjcgMjF2MjA4YzAgMTguNCAxOS44IDI5LjggMzUuNyAyMWwxNzYtMTAxYzE2LjQtOS4xIDE2LjQtMzIuOCAwLTQyek01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OHptLTQ0OCAwYzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdQbHVzU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTM1MiAyNDB2MzJjMCA2LjYtNS40IDEyLTEyIDEyaC04OHY4OGMwIDYuNi01LjQgMTItMTIgMTJoLTMyYy02LjYgMC0xMi01LjQtMTItMTJ2LTg4aC04OGMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoODh2LTg4YzAtNi42IDUuNC0xMiAxMi0xMmgzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2ODhoODhjNi42IDAgMTIgNS40IDEyIDEyem05Ni0xNjB2MzUyYzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY4MGMwLTI2LjUgMjEuNS00OCA0OC00OGgzNTJjMjYuNSAwIDQ4IDIxLjUgNDggNDh6bS00OCAzNDZWODZjMC0zLjMtMi43LTYtNi02SDU0Yy0zLjMgMC02IDIuNy02IDZ2MzQwYzAgMy4zIDIuNyA2IDYgNmgzNDBjMy4zIDAgNi0yLjcgNi02elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdRdWVzdGlvbkNpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNTYgOEMxMTkuMDQzIDggOCAxMTkuMDgzIDggMjU2YzAgMTM2Ljk5NyAxMTEuMDQzIDI0OCAyNDggMjQ4czI0OC0xMTEuMDAzIDI0OC0yNDhDNTA0IDExOS4wODMgMzkyLjk1NyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUzMiAwLTIwMC04OS40MzEtMjAwLTIwMCAwLTExMC40OTUgODkuNDcyLTIwMCAyMDAtMjAwIDExMC40OTEgMCAyMDAgODkuNDcxIDIwMCAyMDAgMCAxMTAuNTMtODkuNDMxIDIwMC0yMDAgMjAwem0xMDcuMjQ0LTI1NS4yYzAgNjcuMDUyLTcyLjQyMSA2OC4wODQtNzIuNDIxIDkyLjg2M1YzMDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDUuNjQ3Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi04LjY1OWMwLTM1Ljc0NSAyNy4xLTUwLjAzNCA0Ny41NzktNjEuNTE2IDE3LjU2MS05Ljg0NSAyOC4zMjQtMTYuNTQxIDI4LjMyNC0yOS41NzkgMC0xNy4yNDYtMjEuOTk5LTI4LjY5My0zOS43ODQtMjguNjkzLTIzLjE4OSAwLTMzLjg5NCAxMC45NzctNDguOTQyIDI5Ljk2OS00LjA1NyA1LjEyLTExLjQ2IDYuMDcxLTE2LjY2NiAyLjEyNGwtMjcuODI0LTIxLjA5OGMtNS4xMDctMy44NzItNi4yNTEtMTEuMDY2LTIuNjQ0LTE2LjM2M0MxODQuODQ2IDEzMS40OTEgMjE0Ljk0IDExMiAyNjEuNzk0IDExMmM0OS4wNzEgMCAxMDEuNDUgMzguMzA0IDEwMS40NSA4OC44ek0yOTggMzY4YzAgMjMuMTU5LTE4Ljg0MSA0Mi00MiA0MnMtNDItMTguODQxLTQyLTQyIDE4Ljg0MS00MiA0Mi00MiA0MiAxOC44NDEgNDIgNDJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1JlZ2lzdGVyZWQgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0wIDQ0OGMtMTEwLjUzMiAwLTIwMC04OS40NTEtMjAwLTIwMCAwLTExMC41MzEgODkuNDUxLTIwMCAyMDAtMjAwIDExMC41MzIgMCAyMDAgODkuNDUxIDIwMCAyMDAgMCAxMTAuNTMyLTg5LjQ1MSAyMDAtMjAwIDIwMHptMTEwLjQ0Mi04MS43OTFjLTUzLjA0Ni05Ni4yODQtNTAuMjUtOTEuNDY4LTUzLjI3MS05Ni4wODUgMjQuMjY3LTEzLjg3OSAzOS40ODItNDEuNTYzIDM5LjQ4Mi03My4xNzYgMC01Mi41MDMtMzAuMjQ3LTg1LjI1Mi0xMDEuNDk4LTg1LjI1MmgtNzguNjY3Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyVjM4MGMwIDYuNjE3IDUuMzgzIDEyIDEyIDEyaDM4LjU2OGM2LjYxNyAwIDEyLTUuMzgzIDEyLTEydi04My42NjNoMzEuOTU4bDQ3LjUxNSA4OS4zMDNhMTEuOTggMTEuOTggMCAwIDAgMTAuNTkzIDYuMzZoNDIuODFjOS4xNCAwIDE0LjkxNC05Ljc5OSAxMC41MS0xNy43OTF6TTI1Ni45MzMgMjM5LjkwNmgtMzMuODc1di02NC4xNGgyNy4zNzdjMzIuNDE3IDAgMzguOTI5IDEyLjEzMyAzOC45MjkgMzEuNzA5LS4wMDEgMjAuOTEzLTExLjUxOCAzMi40MzEtMzIuNDMxIDMyLjQzMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU2FkQ3J5IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTE0NCAzODYuNFYyODBjMC0xMy4yLTEwLjgtMjQtMjQtMjRzLTI0IDEwLjgtMjQgMjR2MTUxLjRDMzE1LjUgNDQ3IDI4Mi44IDQ1NiAyNDggNDU2cy02Ny41LTktOTYtMjQuNlYyODBjMC0xMy4yLTEwLjgtMjQtMjQtMjRzLTI0IDEwLjgtMjQgMjR2MTE0LjRjLTM0LjYtMzYtNTYtODQuNy01Ni0xMzguNCAwLTExMC4zIDg5LjctMjAwIDIwMC0yMDBzMjAwIDg5LjcgMjAwIDIwMGMwIDUzLjctMjEuNCAxMDIuNS01NiAxMzguNHpNMjA1LjggMjM0LjVjNC40LTIuNCA2LjktNy40IDYuMS0xMi40LTQtMjUuMi0zNC4yLTQyLjEtNTkuOC00Mi4xcy01NS45IDE2LjktNTkuOCA0Mi4xYy0uOCA1IDEuNyAxMCA2LjEgMTIuNCA0LjQgMi40IDkuOSAxLjggMTMuNy0xLjZsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDBsOS41IDguNWMyLjUgMi4zIDcuOSA0LjggMTMuNyAxLjZ6TTM0NCAxODBjLTI1LjcgMC01NS45IDE2LjktNTkuOCA0Mi4xLS44IDUgMS43IDEwIDYuMSAxMi40IDQuNSAyLjQgOS45IDEuOCAxMy43LTEuNmw5LjUtOC41YzE0LjgtMTMuMiA0Ni4yLTEzLjIgNjEgMGw5LjUgOC41YzIuNSAyLjIgOCA0LjcgMTMuNyAxLjYgNC40LTIuNCA2LjktNy40IDYuMS0xMi40LTMuOS0yNS4yLTM0LjEtNDIuMS01OS44LTQyLjF6bS05NiA5MmMtMzAuOSAwLTU2IDI4LjctNTYgNjRzMjUuMSA2NCA1NiA2NCA1Ni0yOC43IDU2LTY0LTI1LjEtNjQtNTYtNjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NhZFRlYXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem04LTE1MmMtMTMuMiAwLTI0IDEwLjgtMjQgMjRzMTAuOCAyNCAyNCAyNGMyMy44IDAgNDYuMyAxMC41IDYxLjYgMjguOCA4LjEgOS44IDIzLjIgMTEuOSAzMy44IDMuMSAxMC4yLTguNSAxMS42LTIzLjYgMy4xLTMzLjhDMzMwIDMyMC44IDI5NC4xIDMwNCAyNTYgMzA0em0tODgtNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNjAtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyem0tMTY1LjYgOTguOEMxNTEgMjkwLjEgMTI2IDMyNS40IDEyNiAzNDIuOWMwIDIyLjcgMTguOCA0MS4xIDQyIDQxLjFzNDItMTguNCA0Mi00MS4xYzAtMTcuNS0yNS01Mi44LTM2LjQtNjguMS0yLjgtMy43LTguNC0zLjctMTEuMiAwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTYXZlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQzMy45NDEgMTI5Ljk0MWwtODMuODgyLTgzLjg4MkE0OCA0OCAwIDAgMCAzMTYuMTE4IDMySDQ4QzIxLjQ5IDMyIDAgNTMuNDkgMCA4MHYzNTJjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgzNTJjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYxNjMuODgyYTQ4IDQ4IDAgMCAwLTE0LjA1OS0zMy45NDF6TTI3MiA4MHY4MEgxNDRWODBoMTI4em0xMjIgMzUySDU0YTYgNiAwIDAgMS02LTZWODZhNiA2IDAgMCAxIDYtNmg0MnYxMDRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE3NmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWODMuODgybDc4LjI0MyA3OC4yNDNhNiA2IDAgMCAxIDEuNzU3IDQuMjQzVjQyNmE2IDYgMCAwIDEtNiA2ek0yMjQgMjMyYy00OC41MjMgMC04OCAzOS40NzctODggODhzMzkuNDc3IDg4IDg4IDg4IDg4LTM5LjQ3NyA4OC04OC0zOS40NzctODgtODgtODh6bTAgMTI4Yy0yMi4wNTYgMC00MC0xNy45NDQtNDAtNDBzMTcuOTQ0LTQwIDQwLTQwIDQwIDE3Ljk0NCA0MCA0MC0xNy45NDQgNDAtNDAgNDB6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NoYXJlU3F1YXJlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1NzYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTU2MS45MzggMTU4LjA2TDQxNy45NCAxNC4wOTJDMzg3LjkyNi0xNS45MjIgMzM2IDUuMDk3IDMzNiA0OC4wMzJ2NTcuMTk4Yy00Mi40NSAxLjg4LTg0LjAzIDYuNTUtMTIwLjc2IDE3Ljk5LTM1LjE3IDEwLjk1LTYzLjA3IDI3LjU4LTgyLjkxIDQ5LjQyQzEwOC4yMiAxOTkuMiA5NiAyMzIuNiA5NiAyNzEuOTRjMCA2MS42OTcgMzMuMTc4IDExMi40NTUgODQuODcgMTQ0Ljc2IDM3LjU0NiAyMy41MDggODUuMjQ4LTEyLjY1MSA3MS4wMi01NS43NC0xNS41MTUtNDcuMTE5LTE3LjE1Ni03MC45MjMgODQuMTEtNzguNzZWMzM2YzAgNDIuOTkzIDUxLjk2OCA2My45MTMgODEuOTQgMzMuOTRsMTQzLjk5OC0xNDRjMTguNzUtMTguNzQgMTguNzUtNDkuMTQgMC02Ny44OHpNMzg0IDMzNlYyMzIuMTZDMjU1LjMwOSAyMzQuMDgyIDE2Ni40OTIgMjU1LjM1IDIwNi4zMSAzNzYgMTc2Ljc5IDM1Ny41NSAxNDQgMzI0LjA4IDE0NCAyNzEuOTRjMC0xMDkuMzM0IDEyOS4xNC0xMTguOTQ3IDI0MC0xMTkuODVWNDhsMTQ0IDE0NC0xNDQgMTQ0em0yNC43NCA4NC40OTNhODIuNjU4IDgyLjY1OCAwIDAgMCAyMC45NzQtOS4zMDNjNy45NzYtNC45NTIgMTguMjg2LjgyNiAxOC4yODYgMTAuMjE0VjQ2NGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDEzMmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQuNDg2YzAgNC45MTctMi45ODcgOS4zNjktNy41NjkgMTEuMTUyLTEzLjcwMiA1LjMzMS0yNi4zOTYgMTEuNTM3LTM4LjA1IDE4LjU4NWExMi4xMzggMTIuMTM4IDAgMCAxLTYuMjggMS43NzdINTRhNiA2IDAgMCAwLTYgNnYzNDBhNiA2IDAgMCAwIDYgNmgzNDBhNiA2IDAgMCAwIDYtNnYtMjUuOTY2YzAtNS4zNyAzLjU3OS0xMC4wNTkgOC43NC0xMS41NDF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NtaWxlQmVhbSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDk2IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtMTEwLjMgMC0yMDAtODkuNy0yMDAtMjAwUzEzNy43IDU2IDI0OCA1NnMyMDAgODkuNyAyMDAgMjAwLTg5LjcgMjAwLTIwMCAyMDB6bTg0LTE0My40Yy0yMC44IDI1LTUxLjUgMzkuNC04NCAzOS40cy02My4yLTE0LjMtODQtMzkuNGMtOC41LTEwLjItMjMuNi0xMS41LTMzLjgtMy4xLTEwLjIgOC41LTExLjUgMjMuNi0zLjEgMzMuOCAzMCAzNiA3NC4xIDU2LjYgMTIwLjkgNTYuNnM5MC45LTIwLjYgMTIwLjktNTYuNmM4LjUtMTAuMiA3LjEtMjUuMy0zLjEtMzMuOC0xMC4yLTguNC0yNS4zLTcuMS0zMy44IDMuMXpNMTM2LjUgMjExYzcuNy0xMy43IDE5LjItMjEuNiAzMS41LTIxLjZzMjMuOCA3LjkgMzEuNSAyMS42bDkuNSAxN2MyLjEgMy43IDYuMiA0LjcgOS4zIDMuNyAzLjYtMS4xIDYtNC41IDUuNy04LjMtMy4zLTQyLjEtMzIuMi03MS40LTU2LTcxLjRzLTUyLjcgMjkuMy01NiA3MS40Yy0uMyAzLjcgMi4xIDcuMiA1LjcgOC4zIDMuNCAxLjEgNy40LS41IDkuMy0zLjdsOS41LTE3ek0zMjggMTUyYy0yMy44IDAtNTIuNyAyOS4zLTU2IDcxLjQtLjMgMy43IDIuMSA3LjIgNS43IDguMyAzLjUgMS4xIDcuNC0uNSA5LjMtMy43bDkuNS0xN2M3LjctMTMuNyAxOS4yLTIxLjYgMzEuNS0yMS42czIzLjggNy45IDMxLjUgMjEuNmw5LjUgMTdjMi4xIDMuNyA2LjIgNC43IDkuMyAzLjcgMy42LTEuMSA2LTQuNSA1LjctOC4zLTMuMy00Mi4xLTMyLjItNzEuNC01Ni03MS40elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTbWlsZVdpbmsgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMCA0NDhjLTExMC4zIDAtMjAwLTg5LjctMjAwLTIwMFMxMzcuNyA1NiAyNDggNTZzMjAwIDg5LjcgMjAwIDIwMC04OS43IDIwMC0yMDAgMjAwem0xMTcuOC0xNDYuNGMtMTAuMi04LjUtMjUuMy03LjEtMzMuOCAzLjEtMjAuOCAyNS01MS41IDM5LjQtODQgMzkuNHMtNjMuMi0xNC4zLTg0LTM5LjRjLTguNS0xMC4yLTIzLjctMTEuNS0zMy44LTMuMS0xMC4yIDguNS0xMS41IDIzLjYtMy4xIDMzLjggMzAgMzYgNzQuMSA1Ni42IDEyMC45IDU2LjZzOTAuOS0yMC42IDEyMC45LTU2LjZjOC41LTEwLjIgNy4xLTI1LjMtMy4xLTMzLjh6TTE2OCAyNDBjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyem0xNjAtNjBjLTI1LjcgMC01NS45IDE2LjktNTkuOSA0Mi4xLTEuNyAxMS4yIDExLjUgMTguMiAxOS44IDEwLjhsOS41LTguNWMxNC44LTEzLjIgNDYuMi0xMy4yIDYxIDBsOS41IDguNWM4LjUgNy40IDIxLjYuMyAxOS44LTEwLjgtMy44LTI1LjItMzQtNDIuMS01OS43LTQyLjF6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1NtaWxlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptLTgwLTIxNmMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyIDE0LjMgMzIgMzIgMzJ6bTE2MCAwYzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptNCA3Mi42Yy0yMC44IDI1LTUxLjUgMzkuNC04NCAzOS40cy02My4yLTE0LjMtODQtMzkuNGMtOC41LTEwLjItMjMuNy0xMS41LTMzLjgtMy4xLTEwLjIgOC41LTExLjUgMjMuNi0zLjEgMzMuOCAzMCAzNiA3NC4xIDU2LjYgMTIwLjkgNTYuNnM5MC45LTIwLjYgMTIwLjktNTYuNmM4LjUtMTAuMiA3LjEtMjUuMy0zLjEtMzMuOC0xMC4xLTguNC0yNS4zLTcuMS0zMy44IDMuMXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU25vd2ZsYWtlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0MC4xIDM1NS4ybC0zOS4yLTIzIDM0LjEtOS4zYzguNC0yLjMgMTMuNC0xMS4xIDExLjEtMTkuNmwtNC4xLTE1LjVjLTIuMi04LjUtMTAuOS0xMy42LTE5LjMtMTEuM0wzNDMgMjk4LjIgMjcxLjIgMjU2bDcxLjktNDIuMiA3OS43IDIxLjdjOC40IDIuMyAxNy0yLjggMTkuMy0xMS4zbDQuMS0xNS41YzIuMi04LjUtMi43LTE3LjMtMTEuMS0xOS42bC0zNC4xLTkuMyAzOS4yLTIzYzcuNS00LjQgMTAuMS0xNC4yIDUuOC0yMS45bC03LjktMTMuOWMtNC4zLTcuNy0xNC0xMC4zLTIxLjUtNS45bC0zOS4yIDIzIDkuMS0zNC43YzIuMi04LjUtMi43LTE3LjMtMTEuMS0xOS42bC0xNS4yLTQuMWMtOC40LTIuMy0xNyAyLjgtMTkuMyAxMS4zbC0yMS4zIDgxLTcxLjkgNDIuMnYtODQuNUwzMDYgNzAuNGM2LjEtNi4yIDYuMS0xNi40IDAtMjIuNmwtMTEuMS0xMS4zYy02LjEtNi4yLTE2LjEtNi4yLTIyLjIgMGwtMjQuOSAyNS40VjE2YzAtOC44LTctMTYtMTUuNy0xNmgtMTUuN2MtOC43IDAtMTUuNyA3LjItMTUuNyAxNnY0Ni4xbC0yNC45LTI1LjRjLTYuMS02LjItMTYuMS02LjItMjIuMiAwTDE0Mi4xIDQ4Yy02LjEgNi4yLTYuMSAxNi40IDAgMjIuNmw1OC4zIDU5LjN2ODQuNWwtNzEuOS00Mi4yLTIxLjMtODFjLTIuMi04LjUtMTAuOS0xMy42LTE5LjMtMTEuM0w3Mi43IDg0Yy04LjQgMi4zLTEzLjQgMTEuMS0xMS4xIDE5LjZsOS4xIDM0LjctMzkuMi0yM2MtNy41LTQuNC0xNy4xLTEuOC0yMS41IDUuOWwtNy45IDEzLjljLTQuMyA3LjctMS44IDE3LjQgNS44IDIxLjlsMzkuMiAyMy0zNC4xIDkuMWMtOC40IDIuMy0xMy40IDExLjEtMTEuMSAxOS42TDYgMjI0LjJjMi4yIDguNSAxMC45IDEzLjYgMTkuMyAxMS4zbDc5LjctMjEuNyA3MS45IDQyLjItNzEuOSA0Mi4yLTc5LjctMjEuN2MtOC40LTIuMy0xNyAyLjgtMTkuMyAxMS4zbC00LjEgMTUuNWMtMi4yIDguNSAyLjcgMTcuMyAxMS4xIDE5LjZsMzQuMSA5LjMtMzkuMiAyM2MtNy41IDQuNC0xMC4xIDE0LjItNS44IDIxLjlMMTAgMzkxYzQuMyA3LjcgMTQgMTAuMyAyMS41IDUuOWwzOS4yLTIzLTkuMSAzNC43Yy0yLjIgOC41IDIuNyAxNy4zIDExLjEgMTkuNmwxNS4yIDQuMWM4LjQgMi4zIDE3LTIuOCAxOS4zLTExLjNsMjEuMy04MSA3MS45LTQyLjJ2ODQuNWwtNTguMyA1OS4zYy02LjEgNi4yLTYuMSAxNi40IDAgMjIuNmwxMS4xIDExLjNjNi4xIDYuMiAxNi4xIDYuMiAyMi4yIDBsMjQuOS0yNS40VjQ5NmMwIDguOCA3IDE2IDE1LjcgMTZoMTUuN2M4LjcgMCAxNS43LTcuMiAxNS43LTE2di00Ni4xbDI0LjkgMjUuNGM2LjEgNi4yIDE2LjEgNi4yIDIyLjIgMGwxMS4xLTExLjNjNi4xLTYuMiA2LjEtMTYuNCAwLTIyLjZsLTU4LjMtNTkuM3YtODQuNWw3MS45IDQyLjIgMjEuMyA4MWMyLjIgOC41IDEwLjkgMTMuNiAxOS4zIDExLjNMMzc1IDQyOGM4LjQtMi4zIDEzLjQtMTEuMSAxMS4xLTE5LjZsLTkuMS0zNC43IDM5LjIgMjNjNy41IDQuNCAxNy4xIDEuOCAyMS41LTUuOWw3LjktMTMuOWM0LjYtNy41IDIuMS0xNy4zLTUuNS0yMS43elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTcXVhcmUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ0OCA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTYgNDAwSDU0Yy0zLjMgMC02LTIuNy02LTZWODZjMC0zLjMgMi43LTYgNi02aDM0MGMzLjMgMCA2IDIuNyA2IDZ2MzQwYzAgMy4zLTIuNyA2LTYgNnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RhckhhbGYgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjg4IDM4NS4zbC0xMjQuMyA2NS40IDIzLjctMTM4LjQtMTAwLjYtOTggMTM5LTIwLjIgNjIuMi0xMjZWMGMtMTEuNCAwLTIyLjggNS45LTI4LjcgMTcuOEwxOTQgMTUwLjIgNDcuOSAxNzEuNGMtMjYuMiAzLjgtMzYuNyAzNi4xLTE3LjcgNTQuNmwxMDUuNyAxMDMtMjUgMTQ1LjVjLTQuNSAyNi4xIDIzIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZ2LTU0LjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N0YXIgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDU3NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNTI4LjEgMTcxLjVMMzgyIDE1MC4yIDMxNi43IDE3LjhjLTExLjctMjMuNi00NS42LTIzLjktNTcuNCAwTDE5NCAxNTAuMiA0Ny45IDE3MS41Yy0yNi4yIDMuOC0zNi43IDM2LjEtMTcuNyA1NC42bDEwNS43IDEwMy0yNSAxNDUuNWMtNC41IDI2LjMgMjMuMiA0NiA0Ni40IDMzLjdMMjg4IDQzOS42bDEzMC43IDY4LjdjMjMuMiAxMi4yIDUwLjktNy40IDQ2LjQtMzMuN2wtMjUtMTQ1LjUgMTA1LjctMTAzYzE5LTE4LjUgOC41LTUwLjgtMTcuNy01NC42ek0zODguNiAzMTIuM2wyMy43IDEzOC40TDI4OCAzODUuNGwtMTI0LjMgNjUuMyAyMy43LTEzOC40LTEwMC42LTk4IDEzOS0yMC4yIDYyLjItMTI2IDYyLjIgMTI2IDEzOSAyMC4yLTEwMC42IDk4elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdTdGlja3lOb3RlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ0OCAzNDguMTA2VjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MS45ODhjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyNjguMTE4YTQ4IDQ4IDAgMCAwIDMzLjk0MS0xNC4wNTlsODMuODgyLTgzLjg4MkE0OCA0OCAwIDAgMCA0NDggMzQ4LjEwNnptLTEyOCA4MHYtNzYuMTE4aDc2LjExOEwzMjAgNDI4LjEwNnpNNDAwIDgwdjIyMy45ODhIMjk2Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTA0SDQ4VjgwaDM1MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnU3RvcENpcmNsZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk01MDQgMjU2QzUwNCAxMTkgMzkzIDggMjU2IDhTOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OHptLTQ0OCAwYzAtMTEwLjUgODkuNS0yMDAgMjAwLTIwMHMyMDAgODkuNSAyMDAgMjAwLTg5LjUgMjAwLTIwMCAyMDBTNTYgMzY2LjUgNTYgMjU2em0yOTYtODB2MTYwYzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N1biAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00OTQuMiAyMjEuOWwtNTkuOC00MC41IDEzLjctNzFjMi42LTEzLjItMS42LTI2LjgtMTEuMS0zNi40LTkuNi05LjUtMjMuMi0xMy43LTM2LjItMTEuMWwtNzAuOSAxMy43LTQwLjQtNTkuOWMtMTUuMS0yMi4zLTUxLjktMjIuMy02NyAwbC00MC40IDU5LjktNzAuOC0xMy43Qzk4IDYwLjQgODQuNSA2NC41IDc1IDc0LjFjLTkuNSA5LjYtMTMuNyAyMy4xLTExLjEgMzYuM2wxMy43IDcxLTU5LjggNDAuNUM2LjYgMjI5LjUgMCAyNDIgMCAyNTUuNXM2LjcgMjYgMTcuOCAzMy41bDU5LjggNDAuNS0xMy43IDcxYy0yLjYgMTMuMiAxLjYgMjYuOCAxMS4xIDM2LjMgOS41IDkuNSAyMi45IDEzLjcgMzYuMyAxMS4xbDcwLjgtMTMuNyA0MC40IDU5LjlDMjMwIDUwNS4zIDI0Mi42IDUxMiAyNTYgNTEyczI2LTYuNyAzMy41LTE3LjhsNDAuNC01OS45IDcwLjkgMTMuN2MxMy40IDIuNyAyNi44LTEuNiAzNi4zLTExLjEgOS41LTkuNSAxMy42LTIzLjEgMTEuMS0zNi4zbC0xMy43LTcxIDU5LjgtNDAuNWMxMS4xLTcuNSAxNy44LTIwLjEgMTcuOC0zMy41LS4xLTEzLjYtNi43LTI2LjEtMTcuOS0zMy43em0tMTEyLjkgODUuNmwxNy42IDkxLjItOTEtMTcuNkwyNTYgNDU4bC01MS45LTc3LTkwLjkgMTcuNiAxNy42LTkxLjItNzYuOC01MiA3Ni44LTUyLTE3LjYtOTEuMiA5MSAxNy42TDI1NiA1M2w1MS45IDc2LjkgOTEtMTcuNi0xNy42IDkxLjEgNzYuOCA1Mi03Ni44IDUyLjF6TTI1NiAxNTJjLTU3LjMgMC0xMDQgNDYuNy0xMDQgMTA0czQ2LjcgMTA0IDEwNCAxMDQgMTA0LTQ2LjcgMTA0LTEwNC00Ni43LTEwNC0xMDQtMTA0em0wIDE2MGMtMzAuOSAwLTU2LTI1LjEtNTYtNTZzMjUuMS01NiA1Ni01NiA1NiAyNS4xIDU2IDU2LTI1LjEgNTYtNTYgNTZ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1N1cnByaXNlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMC0xNzZjLTM1LjMgMC02NCAyOC43LTY0IDY0czI4LjcgNjQgNjQgNjQgNjQtMjguNyA2NC02NC0yOC43LTY0LTY0LTY0em0tNDgtNzJjMC0xNy43LTE0LjMtMzItMzItMzJzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyem0xMjgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzIgMzItMTQuMyAzMi0zMi0xNC4zLTMyLTMyLTMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdUaHVtYnNEb3duIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2Ni4yNyAyMjUuMzFjNC42NzQtMjIuNjQ3Ljg2NC00NC41MzgtOC45OS02Mi45OSAyLjk1OC0yMy44NjgtNC4wMjEtNDguNTY1LTE3LjM0LTY2Ljk5QzQzOC45ODYgMzkuNDIzIDQwNC4xMTcgMCAzMjcgMGMtNyAwLTE1IC4wMS0yMi4yMi4wMUMyMDEuMTk1LjAxIDE2OC45OTcgNDAgMTI4IDQwaC0xMC44NDVjLTUuNjQtNC45NzUtMTMuMDQyLTgtMjEuMTU1LThIMzJDMTQuMzI3IDMyIDAgNDYuMzI3IDAgNjR2MjQwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmg2NGMxMS44NDIgMCAyMi4xNzUtNi40MzggMjcuNzA4LTE2aDcuMDUyYzE5LjE0NiAxNi45NTMgNDYuMDEzIDYwLjY1MyA2OC43NiA4My40IDEzLjY2NyAxMy42NjcgMTAuMTUzIDEwOC42IDcxLjc2IDEwOC42IDU3LjU4IDAgOTUuMjctMzEuOTM2IDk1LjI3LTEwNC43MyAwLTE4LjQxLTMuOTMtMzMuNzMtOC44NS00Ni41NGgzNi40OGM0OC42MDIgMCA4NS44Mi00MS41NjUgODUuODItODUuNTggMC0xOS4xNS00Ljk2LTM0Ljk5LTEzLjczLTQ5Ljg0ek02NCAyOTZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHMxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0LTEwLjc0NSAyNC0yNCAyNHptMzMwLjE4IDE2LjczSDI5MC4xOWMwIDM3LjgyIDI4LjM2IDU1LjM3IDI4LjM2IDk0LjU0IDAgMjMuNzUgMCA1Ni43My00Ny4yNyA1Ni43My0xOC45MS0xOC45MS05LjQ2LTY2LjE4LTM3LjgyLTk0LjU0QzIwNi45IDM0Mi44OSAxNjcuMjggMjcyIDEzOC45MiAyNzJIMTI4Vjg1LjgzYzUzLjYxMSAwIDEwMC4wMDEtMzcuODIgMTcxLjY0LTM3LjgyaDM3LjgyYzM1LjUxMiAwIDYwLjgyIDE3LjEyIDUzLjEyIDY1LjkgMTUuMiA4LjE2IDI2LjUgMzYuNDQgMTMuOTQgNTcuNTcgMjEuNTgxIDIwLjM4NCAxOC42OTkgNTEuMDY1IDUuMjEgNjUuNjIgOS40NSAwIDIyLjM2IDE4LjkxIDIyLjI3IDM3LjgxLS4wOSAxOC45MS0xNi43MSAzNy44Mi0zNy44MiAzNy44MnpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVGh1bWJzVXAgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY2LjI3IDI4Ni42OUM0NzUuMDQgMjcxLjg0IDQ4MCAyNTYgNDgwIDIzNi44NWMwLTQ0LjAxNS0zNy4yMTgtODUuNTgtODUuODItODUuNThIMzU3LjdjNC45Mi0xMi44MSA4Ljg1LTI4LjEzIDguODUtNDYuNTRDMzY2LjU1IDMxLjkzNiAzMjguODYgMCAyNzEuMjggMGMtNjEuNjA3IDAtNTguMDkzIDk0LjkzMy03MS43NiAxMDguNi0yMi43NDcgMjIuNzQ3LTQ5LjYxNSA2Ni40NDctNjguNzYgODMuNEgzMmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjI0MGMwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoNjRjMTQuODkzIDAgMjcuNDA4LTEwLjE3NCAzMC45NzgtMjMuOTUgNDQuNTA5IDEuMDAxIDc1LjA2IDM5Ljk0IDE3Ny44MDIgMzkuOTQgNy4yMiAwIDE1LjIyLjAxIDIyLjIyLjAxIDc3LjExNyAwIDExMS45ODYtMzkuNDIzIDExMi45NC05NS4zMyAxMy4zMTktMTguNDI1IDIwLjI5OS00My4xMjIgMTcuMzQtNjYuOTkgOS44NTQtMTguNDUyIDEzLjY2NC00MC4zNDMgOC45OS02Mi45OXptLTYxLjc1IDUzLjgzYzEyLjU2IDIxLjEzIDEuMjYgNDkuNDEtMTMuOTQgNTcuNTcgNy43IDQ4Ljc4LTE3LjYwOCA2NS45LTUzLjEyIDY1LjloLTM3LjgyYy03MS42MzkgMC0xMTguMDI5LTM3LjgyLTE3MS42NC0zNy44MlYyNDBoMTAuOTJjMjguMzYgMCA2Ny45OC03MC44OSA5NC41NC05Ny40NiAyOC4zNi0yOC4zNiAxOC45MS03NS42MyAzNy44Mi05NC41NCA0Ny4yNyAwIDQ3LjI3IDMyLjk4IDQ3LjI3IDU2LjczIDAgMzkuMTctMjguMzYgNTYuNzItMjguMzYgOTQuNTRoMTAzLjk5YzIxLjExIDAgMzcuNzMgMTguOTEgMzcuODIgMzcuODIuMDkgMTguOS0xMi44MiAzNy44MS0yMi4yNyAzNy44MSAxMy40ODkgMTQuNTU1IDE2LjM3MSA0NS4yMzYtNS4yMSA2NS42MnpNODggNDMyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNHMtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RpbWVzQ2lyY2xlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTAgNDQ4Yy0xMTAuNSAwLTIwMC04OS41LTIwMC0yMDBTMTQ1LjUgNTYgMjU2IDU2czIwMCA4OS41IDIwMCAyMDAtODkuNSAyMDAtMjAwIDIwMHptMTAxLjgtMjYyLjJMMjk1LjYgMjU2bDYyLjIgNjIuMmM0LjcgNC43IDQuNyAxMi4zIDAgMTdsLTIyLjYgMjIuNmMtNC43IDQuNy0xMi4zIDQuNy0xNyAwTDI1NiAyOTUuNmwtNjIuMiA2Mi4yYy00LjcgNC43LTEyLjMgNC43LTE3IDBsLTIyLjYtMjIuNmMtNC43LTQuNy00LjctMTIuMyAwLTE3bDYyLjItNjIuMi02Mi4yLTYyLjJjLTQuNy00LjctNC43LTEyLjMgMC0xN2wyMi42LTIyLjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDYyLjIgNjIuMiA2Mi4yLTYyLjJjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDIyLjYgMjIuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTd6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RpcmVkIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0OTYgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTAgNDQ4Yy0xMTAuMyAwLTIwMC04OS43LTIwMC0yMDBTMTM3LjcgNTYgMjQ4IDU2czIwMCA4OS43IDIwMCAyMDAtODkuNyAyMDAtMjAwIDIwMHptMTI5LjEtMzAzLjhjLTMuOC00LjQtMTAuMy01LjQtMTUuMy0yLjVsLTgwIDQ4Yy0zLjYgMi4yLTUuOCA2LjEtNS44IDEwLjNzMi4yIDguMSA1LjggMTAuM2w4MCA0OGM1LjQgMy4yIDExLjggMS42IDE1LjMtMi41IDMuOC00LjUgMy45LTExIC4xLTE1LjVMMzQzLjYgMjA4bDMzLjYtNDAuM2MzLjgtNC41IDMuNy0xMS4xLS4xLTE1LjV6TTIyMCAyMDhjMC00LjItMi4yLTguMS01LjgtMTAuM2wtODAtNDhjLTUtMy0xMS41LTEuOS0xNS4zIDIuNS0zLjggNC41LTMuOSAxMS0uMSAxNS41bDMzLjYgNDAuMy0zMy42IDQwLjNjLTMuOCA0LjUtMy43IDExIC4xIDE1LjUgMy41IDQuMSA5LjkgNS43IDE1LjMgMi41bDgwLTQ4YzMuNi0yLjIgNS44LTYuMSA1LjgtMTAuM3ptMjggNjRjLTQ1LjQgMC0xMDAuOSAzOC4zLTEwNy44IDkzLjMtMS41IDExLjggNi45IDIxLjYgMTUuNSAxNy45QzE3OC40IDM3My41IDIxMiAzNjggMjQ4IDM2OHM2OS42IDUuNSA5Mi4zIDE1LjJjOC41IDMuNyAxNy02IDE1LjUtMTcuOS02LjktNTUtNjIuNC05My4zLTEwNy44LTkzLjN6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1RyYXNoQWx0IChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA0NDggNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1VzZXJDaXJjbGUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDQ5NiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNMjQ4IDEwNGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NiA5Ni00MyA5Ni05Ni00My05Ni05Ni05NnptMCAxNDRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0wLTI0MEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDQ0OGMtNDkuNyAwLTk1LjEtMTguMy0xMzAuMS00OC40IDE0LjktMjMgNDAuNC0zOC42IDY5LjYtMzkuNSAyMC44IDYuNCA0MC42IDkuNiA2MC41IDkuNnMzOS43LTMuMSA2MC41LTkuNmMyOS4yIDEgNTQuNyAxNi41IDY5LjYgMzkuNS0zNSAzMC4xLTgwLjQgNDguNC0xMzAuMSA0OC40em0xNjIuNy04NC4xYy0yNC40LTMxLjQtNjIuMS01MS45LTEwNS4xLTUxLjktMTAuMiAwLTI2IDkuNi01Ny42IDkuNi0zMS41IDAtNDcuNC05LjYtNTcuNi05LjYtNDIuOSAwLTgwLjYgMjAuNS0xMDUuMSA1MS45QzYxLjkgMzM5LjIgNDggMjk5LjIgNDggMjU2YzAtMTEwLjMgODkuNy0yMDAgMjAwLTIwMHMyMDAgODkuNyAyMDAgMjAwYzAgNDMuMi0xMy45IDgzLjItMzcuMyAxMTUuOXpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnVXNlciAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNDQ4IDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk0zMTMuNiAzMDRjLTI4LjcgMC00Mi41IDE2LTg5LjYgMTYtNDcuMSAwLTYwLjgtMTYtODkuNi0xNkM2MC4yIDMwNCAwIDM2NC4yIDAgNDM4LjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtMjUuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHpNNDAwIDQ2NEg0OHYtMjUuNmMwLTQ3LjYgMzguOC04Ni40IDg2LjQtODYuNCAxNC42IDAgMzguMyAxNiA4OS42IDE2IDUxLjcgMCA3NC45LTE2IDg5LjYtMTYgNDcuNiAwIDg2LjQgMzguOCA4Ni40IDg2LjRWNDY0ek0yMjQgMjg4Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzMwMy41IDAgMjI0IDAgODAgNjQuNSA4MCAxNDRzNjQuNSAxNDQgMTQ0IDE0NHptMC0yNDBjNTIuOSAwIDk2IDQzLjEgOTYgOTZzLTQzLjEgOTYtOTYgOTYtOTYtNDMuMS05Ni05NiA0My4xLTk2IDk2LTk2elwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dDbG9zZSAocHJvcHMpIHtcbiAgcmV0dXJuIEdlbkljb24oe1widGFnXCI6XCJzdmdcIixcImF0dHJcIjp7XCJ2aWV3Qm94XCI6XCIwIDAgNTEyIDUxMlwifSxcImNoaWxkXCI6W3tcInRhZ1wiOlwicGF0aFwiLFwiYXR0clwiOntcImRcIjpcIk00NjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0wIDM5NGMwIDMuMy0yLjcgNi02IDZINTRjLTMuMyAwLTYtMi43LTYtNlY4NmMwLTMuMyAyLjctNiA2LTZoNDA0YzMuMyAwIDYgMi43IDYgNnYzNDB6TTM1Ni41IDE5NC42TDI5NS4xIDI1Nmw2MS40IDYxLjRjNC42IDQuNiA0LjYgMTIuMSAwIDE2LjhsLTIyLjMgMjIuM2MtNC42IDQuNi0xMi4xIDQuNi0xNi44IDBMMjU2IDI5NS4xbC02MS40IDYxLjRjLTQuNiA0LjYtMTIuMSA0LjYtMTYuOCAwbC0yMi4zLTIyLjNjLTQuNi00LjYtNC42LTEyLjEgMC0xNi44bDYxLjQtNjEuNC02MS40LTYxLjRjLTQuNi00LjYtNC42LTEyLjEgMC0xNi44bDIyLjMtMjIuM2M0LjYtNC42IDEyLjEtNC42IDE2LjggMGw2MS40IDYxLjQgNjEuNC02MS40YzQuNi00LjYgMTIuMS00LjYgMTYuOCAwbDIyLjMgMjIuM2M0LjcgNC42IDQuNyAxMi4xIDAgMTYuOHpcIn0sXCJjaGlsZFwiOltdfV19KShwcm9wcyk7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIEZhUmVnV2luZG93TWF4aW1pemUgKHByb3BzKSB7XG4gIHJldHVybiBHZW5JY29uKHtcInRhZ1wiOlwic3ZnXCIsXCJhdHRyXCI6e1widmlld0JveFwiOlwiMCAwIDUxMiA1MTJcIn0sXCJjaGlsZFwiOlt7XCJ0YWdcIjpcInBhdGhcIixcImF0dHJcIjp7XCJkXCI6XCJNNDY0IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptMCAzOTRjMCAzLjMtMi43IDYtNiA2SDU0Yy0zLjMgMC02LTIuNy02LTZWMTkyaDQxNnYyMzR6XCJ9LFwiY2hpbGRcIjpbXX1dfSkocHJvcHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBGYVJlZ1dpbmRvd01pbmltaXplIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ4MCA0ODBIMzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzJoNDQ4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gRmFSZWdXaW5kb3dSZXN0b3JlIChwcm9wcykge1xuICByZXR1cm4gR2VuSWNvbih7XCJ0YWdcIjpcInN2Z1wiLFwiYXR0clwiOntcInZpZXdCb3hcIjpcIjAgMCA1MTIgNTEyXCJ9LFwiY2hpbGRcIjpbe1widGFnXCI6XCJwYXRoXCIsXCJhdHRyXCI6e1wiZFwiOlwiTTQ2NCAwSDE0NGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2NDhINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djMyMGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzMjBjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQ4aDQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tOTYgNDY0SDQ4VjI1NmgzMjB2MjA4em05Ni05NmgtNDhWMTQ0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDE0NFY0OGgzMjB2MzIwelwifSxcImNoaWxkXCI6W119XX0pKHByb3BzKTtcbn07XG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBGYUJhcnMgfSBmcm9tICdyZWFjdC1pY29ucy9mYSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VOYXZiYXJDb250ZXh0IH0gZnJvbSAnLi9OYXZiYXJDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IE5hdmJhclRvZ2dsZSA9ICh7XG4gIGJhckljb246IEJhckljb24gPSBGYUJhcnMsXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaXNPcGVuLCBzZXRJc09wZW4gfSA9IHVzZU5hdmJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLnRvZ2dsZSwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICBzZXRJc09wZW4oIWlzT3Blbik7XG4gIH07XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICBcImJ1dHRvblwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1uYXZiYXItdG9nZ2xlXCIsXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJzci1vbmx5XCIsIGNoaWxkcmVuOiBcIk9wZW4gbWFpbiBtZW51XCIgfSksXG4gICAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goQmFySWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbiB9KVxuICAgICAgXVxuICAgIH1cbiAgKTtcbn07XG5cbmV4cG9ydCB7IE5hdmJhclRvZ2dsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TmF2YmFyVG9nZ2xlLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgTmF2YmFyQnJhbmQgfSBmcm9tICcuL05hdmJhckJyYW5kLm1qcyc7XG5pbXBvcnQgeyBOYXZiYXJDb2xsYXBzZSB9IGZyb20gJy4vTmF2YmFyQ29sbGFwc2UubWpzJztcbmltcG9ydCB7IE5hdmJhckNvbnRleHQgfSBmcm9tICcuL05hdmJhckNvbnRleHQubWpzJztcbmltcG9ydCB7IE5hdmJhckxpbmsgfSBmcm9tICcuL05hdmJhckxpbmsubWpzJztcbmltcG9ydCB7IE5hdmJhclRvZ2dsZSB9IGZyb20gJy4vTmF2YmFyVG9nZ2xlLm1qcyc7XG5cbmNvbnN0IE5hdmJhckNvbXBvbmVudCA9ICh7XG4gIGJvcmRlcixcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZmx1aWQgPSBmYWxzZSxcbiAgbWVudU9wZW4sXG4gIHJvdW5kZWQsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUobWVudU9wZW4pO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLm5hdmJhciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChOYXZiYXJDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBpc09wZW4sIHNldElzT3BlbiB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcIm5hdlwiLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgdGhlbWUucm9vdC5iYXNlLFxuICAgICAgICB0aGVtZS5yb290LmJvcmRlcmVkW2JvcmRlciA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICB0aGVtZS5yb290LnJvdW5kZWRbcm91bmRlZCA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuaW5uZXIuYmFzZSwgdGhlbWUucm9vdC5pbm5lci5mbHVpZFtmbHVpZCA/IFwib25cIiA6IFwib2ZmXCJdKSwgY2hpbGRyZW4gfSlcbiAgICB9XG4gICkgfSk7XG59O1xuTmF2YmFyQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJOYXZiYXJcIjtcbk5hdmJhckJyYW5kLmRpc3BsYXlOYW1lID0gXCJOYXZiYXIuQnJhbmRcIjtcbk5hdmJhckNvbGxhcHNlLmRpc3BsYXlOYW1lID0gXCJOYXZiYXIuQ29sbGFwc2VcIjtcbk5hdmJhckxpbmsuZGlzcGxheU5hbWUgPSBcIk5hdmJhci5MaW5rXCI7XG5OYXZiYXJUb2dnbGUuZGlzcGxheU5hbWUgPSBcIk5hdmJhci5Ub2dnbGVcIjtcbmNvbnN0IE5hdmJhciA9IE9iamVjdC5hc3NpZ24oTmF2YmFyQ29tcG9uZW50LCB7XG4gIEJyYW5kOiBOYXZiYXJCcmFuZCxcbiAgQ29sbGFwc2U6IE5hdmJhckNvbGxhcHNlLFxuICBMaW5rOiBOYXZiYXJMaW5rLFxuICBUb2dnbGU6IE5hdmJhclRvZ2dsZVxufSk7XG5cbmV4cG9ydCB7IE5hdmJhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TmF2YmFyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VJZCwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gJy4uL0Ryb3Bkb3duL0Ryb3Bkb3duLm1qcyc7XG5pbXBvcnQgJy4uL0Ryb3Bkb3duL0Ryb3Bkb3duQ29udGV4dC5tanMnO1xuaW1wb3J0ICcuLi9Ecm9wZG93bi9Ecm9wZG93bkl0ZW0ubWpzJztcblxuY29uc3QgTWVnYU1lbnVEcm9wZG93biA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB0b2dnbGUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtsYWJlbGxlZEJ5LCBzZXRMYWJlbGxlZEJ5XSA9IHVzZVN0YXRlKHZvaWQgMCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkubWVnYU1lbnUuZHJvcGRvd24sIGN1c3RvbVRoZW1lKTtcbiAgaWYgKHRvZ2dsZSkge1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgRHJvcGRvd24sXG4gICAgICB7XG4gICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAgICAgbGFiZWw6IHRvZ2dsZSxcbiAgICAgICAgcGxhY2VtZW50OiBcImJvdHRvbVwiLFxuICAgICAgICB0aGVtZTogdGhlbWUudG9nZ2xlLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSxcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgIH1cbiAgICApO1xuICB9XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGZpbmRUb2dnbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IG1lZ2FNZW51ID0gcmVmLmN1cnJlbnQ/LmNsb3Nlc3QoXCJuYXZcIik7XG4gICAgICByZXR1cm4gbWVnYU1lbnU/LnF1ZXJ5U2VsZWN0b3IoJ1thcmlhLWhhc3BvcHVwPVwibWVudVwiXScpO1xuICAgIH07XG4gICAgc2V0TGFiZWxsZWRCeShmaW5kVG9nZ2xlKCk/LmlkKTtcbiAgfSwgW10pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGxhYmVsbGVkQnksXG4gICAgICBpZCxcbiAgICAgIHJlZixcbiAgICAgIHJvbGU6IFwibWVudVwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcbk1lZ2FNZW51RHJvcGRvd24uZGlzcGxheU5hbWUgPSBcIk1lZ2FNZW51LkRyb3Bkb3duXCI7XG5cbmV4cG9ydCB7IE1lZ2FNZW51RHJvcGRvd24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1lZ2FNZW51RHJvcGRvd24ubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdXNlSWQsIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgTWVnYU1lbnVEcm9wZG93blRvZ2dsZSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgW2NvbnRyb2xzLCBzZXRDb250cm9sc10gPSB1c2VTdGF0ZSh2b2lkIDApO1xuICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUodm9pZCAwKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoZ2V0VGhlbWUoKS5tZWdhTWVudS5kcm9wZG93blRvZ2dsZSwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBmaW5kRHJvcGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBtZWdhTWVudSA9IHJlZi5jdXJyZW50Py5jbG9zZXN0KFwibmF2XCIpO1xuICAgIHJldHVybiBtZWdhTWVudT8ucXVlcnlTZWxlY3RvcignW3JvbGU9XCJtZW51XCJdJyk7XG4gIH07XG4gIGNvbnN0IG9uQ2xpY2sgPSBmdW5jdGlvbigpIHtcbiAgICBmaW5kRHJvcGRvd24oKT8uY2xhc3NMaXN0LnRvZ2dsZShcImhpZGRlblwiKTtcbiAgICBzZXRFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gIH07XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZHJvcGRvd24gPSBmaW5kRHJvcGRvd24oKTtcbiAgICBjb25zdCBpc0Ryb3Bkb3duSGlkZGVuID0gZHJvcGRvd24/LmNsYXNzTGlzdC5jb250YWlucyhcImhpZGRlblwiKTtcbiAgICBzZXRDb250cm9scyhkcm9wZG93bj8uaWQpO1xuICAgIHNldEV4cGFuZGVkKCFpc0Ryb3Bkb3duSGlkZGVuKTtcbiAgfSwgW10pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImJ1dHRvblwiLFxuICAgIHtcbiAgICAgIFwiYXJpYS1jb250cm9sc1wiOiBjb250cm9scyxcbiAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBpc0V4cGFuZGVkLFxuICAgICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwibWVudVwiLFxuICAgICAgaWQsXG4gICAgICBvbkNsaWNrLFxuICAgICAgcmVmLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcbk1lZ2FNZW51RHJvcGRvd25Ub2dnbGUuZGlzcGxheU5hbWUgPSBcIk1lZ2FNZW51LkRyb3Bkb3duVG9nZ2xlXCI7XG5cbmV4cG9ydCB7IE1lZ2FNZW51RHJvcGRvd25Ub2dnbGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1lZ2FNZW51RHJvcGRvd25Ub2dnbGUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBOYXZiYXIgfSBmcm9tICcuLi9OYXZiYXIvTmF2YmFyLm1qcyc7XG5pbXBvcnQgJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCAnLi4vTmF2YmFyL05hdmJhckNvbnRleHQubWpzJztcbmltcG9ydCAncmVhY3QtaWNvbnMvZmEnO1xuaW1wb3J0IHsgTWVnYU1lbnVEcm9wZG93biB9IGZyb20gJy4vTWVnYU1lbnVEcm9wZG93bi5tanMnO1xuaW1wb3J0IHsgTWVnYU1lbnVEcm9wZG93blRvZ2dsZSB9IGZyb20gJy4vTWVnYU1lbnVEcm9wZG93blRvZ2dsZS5tanMnO1xuXG5jb25zdCBNZWdhTWVudUNvbXBvbmVudCA9ICh7IGNoaWxkcmVuLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLm1lZ2FNZW51LCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KE5hdmJhciwgeyBmbHVpZDogdHJ1ZSwgdGhlbWUsIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbn07XG5jb25zdCBNZWdhTWVudSA9IE9iamVjdC5hc3NpZ24oTWVnYU1lbnVDb21wb25lbnQsIHtcbiAgRHJvcGRvd246IE1lZ2FNZW51RHJvcGRvd24sXG4gIERyb3Bkb3duVG9nZ2xlOiBNZWdhTWVudURyb3Bkb3duVG9nZ2xlXG59KTtcbk1lZ2FNZW51Q29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJNZWdhTWVudVwiO1xuXG5leHBvcnQgeyBNZWdhTWVudSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TWVnYU1lbnUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgTW9kYWxDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlTW9kYWxDb250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNb2RhbENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VNb2RhbENvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBNb2RhbENvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBNb2RhbENvbnRleHQsIHVzZU1vZGFsQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TW9kYWxDb250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZU1vZGFsQ29udGV4dCB9IGZyb20gJy4vTW9kYWxDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IE1vZGFsQm9keSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgcG9wdXAgfSA9IHVzZU1vZGFsQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuYm9keSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBwb3B1cCAmJiBbdGhlbWUucG9wdXBdLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBNb2RhbEJvZHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vZGFsQm9keS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VNb2RhbENvbnRleHQgfSBmcm9tICcuL01vZGFsQ29udGV4dC5tanMnO1xuXG5jb25zdCBNb2RhbEZvb3RlciA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgcG9wdXAgfSA9IHVzZU1vZGFsQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuZm9vdGVyLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsICFwb3B1cCAmJiB0aGVtZS5wb3B1cCwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgTW9kYWxGb290ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vZGFsRm9vdGVyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUlkLCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBIaU91dGxpbmVYIH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlTW9kYWxDb250ZXh0IH0gZnJvbSAnLi9Nb2RhbENvbnRleHQubWpzJztcblxuY29uc3QgTW9kYWxIZWFkZXIgPSAoe1xuICBhczogQ29tcG9uZW50ID0gXCJoM1wiLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgaWQsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IGlubmVySGVhZGVySWQgPSB1c2VJZCgpO1xuICBjb25zdCBoZWFkZXJJZCA9IGlkIHx8IGlubmVySGVhZGVySWQ7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgcG9wdXAsIG9uQ2xvc2UsIHNldEhlYWRlcklkIH0gPSB1c2VNb2RhbENvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmhlYWRlciwgY3VzdG9tVGhlbWUpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIHNldEhlYWRlcklkKGhlYWRlcklkKTtcbiAgICByZXR1cm4gKCkgPT4gc2V0SGVhZGVySWQodm9pZCAwKTtcbiAgfSwgW2hlYWRlcklkLCBzZXRIZWFkZXJJZF0pO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgcG9wdXAgJiYgdGhlbWUucG9wdXAsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogW1xuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcG9uZW50LCB7IGlkOiBoZWFkZXJJZCwgY2xhc3NOYW1lOiB0aGVtZS50aXRsZSwgY2hpbGRyZW4gfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcImJ1dHRvblwiLCB7IFwiYXJpYS1sYWJlbFwiOiBcIkNsb3NlXCIsIGNsYXNzTmFtZTogdGhlbWUuY2xvc2UuYmFzZSwgdHlwZTogXCJidXR0b25cIiwgb25DbGljazogb25DbG9zZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSGlPdXRsaW5lWCwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuY2xvc2UuaWNvbiB9KSB9KVxuICBdIH0pO1xufTtcblxuZXhwb3J0IHsgTW9kYWxIZWFkZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU1vZGFsSGVhZGVyLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nLCB1c2VNZXJnZVJlZnMsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VSb2xlLCB1c2VJbnRlcmFjdGlvbnMsIEZsb2F0aW5nUG9ydGFsLCBGbG9hdGluZ092ZXJsYXksIEZsb2F0aW5nRm9jdXNNYW5hZ2VyIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgTW9kYWxCb2R5IH0gZnJvbSAnLi9Nb2RhbEJvZHkubWpzJztcbmltcG9ydCB7IE1vZGFsQ29udGV4dCB9IGZyb20gJy4vTW9kYWxDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBNb2RhbEZvb3RlciB9IGZyb20gJy4vTW9kYWxGb290ZXIubWpzJztcbmltcG9ydCB7IE1vZGFsSGVhZGVyIH0gZnJvbSAnLi9Nb2RhbEhlYWRlci5tanMnO1xuXG5jb25zdCBNb2RhbENvbXBvbmVudCA9IGZvcndhcmRSZWYoXG4gICh7XG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGRpc21pc3NpYmxlID0gZmFsc2UsXG4gICAgb25DbG9zZSxcbiAgICBwb3B1cCxcbiAgICBwb3NpdGlvbiA9IFwiY2VudGVyXCIsXG4gICAgcm9vdCxcbiAgICBzaG93LFxuICAgIHNpemUgPSBcIjJ4bFwiLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIGluaXRpYWxGb2N1cyxcbiAgICAuLi5wcm9wc1xuICB9LCB0aGVpclJlZikgPT4ge1xuICAgIGNvbnN0IFtoZWFkZXJJZCwgc2V0SGVhZGVySWRdID0gdXNlU3RhdGUodm9pZCAwKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLm1vZGFsLCBjdXN0b21UaGVtZSk7XG4gICAgY29uc3QgeyBjb250ZXh0IH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICBvcGVuOiBzaG93LFxuICAgICAgb25PcGVuQ2hhbmdlOiAoKSA9PiBvbkNsb3NlICYmIG9uQ2xvc2UoKVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZiA9IHVzZU1lcmdlUmVmcyhbY29udGV4dC5yZWZzLnNldEZsb2F0aW5nLCB0aGVpclJlZl0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBvdXRzaWRlUHJlc3NFdmVudDogXCJtb3VzZWRvd25cIiwgZW5hYmxlZDogZGlzbWlzc2libGUgfSk7XG4gICAgY29uc3Qgcm9sZSA9IHVzZVJvbGUoY29udGV4dCk7XG4gICAgY29uc3QgeyBnZXRGbG9hdGluZ1Byb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW2NsaWNrLCBkaXNtaXNzLCByb2xlXSk7XG4gICAgaWYgKCFzaG93KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTW9kYWxDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lLCBwb3B1cCwgb25DbG9zZSwgc2V0SGVhZGVySWQgfSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxvYXRpbmdQb3J0YWwsIHsgcm9vdCwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBGbG9hdGluZ092ZXJsYXksXG4gICAgICB7XG4gICAgICAgIGxvY2tTY3JvbGw6IHRydWUsXG4gICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJtb2RhbC1vdmVybGF5XCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShcbiAgICAgICAgICB0aGVtZS5yb290LmJhc2UsXG4gICAgICAgICAgdGhlbWUucm9vdC5wb3NpdGlvbnNbcG9zaXRpb25dLFxuICAgICAgICAgIHNob3cgPyB0aGVtZS5yb290LnNob3cub24gOiB0aGVtZS5yb290LnNob3cub2ZmLFxuICAgICAgICAgIGNsYXNzTmFtZVxuICAgICAgICApLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dCwgaW5pdGlhbEZvY3VzLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIC4uLmdldEZsb2F0aW5nUHJvcHMocHJvcHMpLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogaGVhZGVySWQsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuY29udGVudC5iYXNlLCB0aGVtZS5yb290LnNpemVzW3NpemVdKSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5jb250ZW50LmlubmVyLCBjaGlsZHJlbiB9KVxuICAgICAgICAgIH1cbiAgICAgICAgKSB9KVxuICAgICAgfVxuICAgICkgfSkgfSk7XG4gIH1cbik7XG5Nb2RhbENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiTW9kYWxcIjtcbk1vZGFsSGVhZGVyLmRpc3BsYXlOYW1lID0gXCJNb2RhbC5IZWFkZXJcIjtcbk1vZGFsQm9keS5kaXNwbGF5TmFtZSA9IFwiTW9kYWwuQm9keVwiO1xuTW9kYWxGb290ZXIuZGlzcGxheU5hbWUgPSBcIk1vZGFsLkZvb3RlclwiO1xuY29uc3QgTW9kYWwgPSBPYmplY3QuYXNzaWduKE1vZGFsQ29tcG9uZW50LCB7XG4gIEhlYWRlcjogTW9kYWxIZWFkZXIsXG4gIEJvZHk6IE1vZGFsQm9keSxcbiAgRm9vdGVyOiBNb2RhbEZvb3RlclxufSk7XG5cbmV4cG9ydCB7IE1vZGFsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Nb2RhbC5tanMubWFwXG4iLCJjb25zdCByYW5nZSA9IChzdGFydCwgZW5kKSA9PiB7XG4gIGlmIChzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsuLi5BcnJheShlbmQgLSBzdGFydCArIDEpLmtleXMoKV0ubWFwKChrZXkpID0+IGtleSArIHN0YXJ0KTtcbn07XG5cbmV4cG9ydCB7IHJhbmdlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgUGFnaW5hdGlvbkJ1dHRvbiA9ICh7XG4gIGFjdGl2ZSxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucGFnaW5hdGlvbiwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImJ1dHRvblwiLFxuICAgIHtcbiAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoYWN0aXZlICYmIHRoZW1lLnBhZ2VzLnNlbGVjdG9yLmFjdGl2ZSwgY2xhc3NOYW1lKSxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApO1xufTtcblBhZ2luYXRpb25CdXR0b24uZGlzcGxheU5hbWUgPSBcIlBhZ2luYXRpb24uQnV0dG9uXCI7XG5jb25zdCBQYWdpbmF0aW9uTmF2aWdhdGlvbiA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnBhZ2luYXRpb24sIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJidXR0b25cIixcbiAgICB7XG4gICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKGRpc2FibGVkICYmIHRoZW1lLnBhZ2VzLnNlbGVjdG9yLmRpc2FibGVkLCBjbGFzc05hbWUpLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBvbkNsaWNrLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKTtcbn07XG5QYWdpbmF0aW9uTmF2aWdhdGlvbi5kaXNwbGF5TmFtZSA9IFwiUGFnaW5hdGlvbi5OYXZpZ2F0aW9uXCI7XG5cbmV4cG9ydCB7IFBhZ2luYXRpb25CdXR0b24sIFBhZ2luYXRpb25OYXZpZ2F0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYWdpbmF0aW9uQnV0dG9uLm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IEhpQ2hldnJvbkxlZnQsIEhpQ2hldnJvblJpZ2h0IH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgcmFuZ2UgfSBmcm9tICcuL2hlbHBlcnMubWpzJztcbmltcG9ydCB7IFBhZ2luYXRpb25CdXR0b24sIFBhZ2luYXRpb25OYXZpZ2F0aW9uIH0gZnJvbSAnLi9QYWdpbmF0aW9uQnV0dG9uLm1qcyc7XG5cbmNvbnN0IFBhZ2luYXRpb25Db21wb25lbnQgPSAoe1xuICBjbGFzc05hbWUsXG4gIGN1cnJlbnRQYWdlLFxuICBsYXlvdXQgPSBcInBhZ2luYXRpb25cIixcbiAgbmV4dExhYmVsID0gXCJOZXh0XCIsXG4gIG9uUGFnZUNoYW5nZSxcbiAgcHJldmlvdXNMYWJlbCA9IFwiUHJldmlvdXNcIixcbiAgcmVuZGVyUGFnaW5hdGlvbkJ1dHRvbiA9IChwcm9wczIpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goUGFnaW5hdGlvbkJ1dHRvbiwgeyAuLi5wcm9wczIgfSksXG4gIHNob3dJY29uczogc2hvd0ljb24gPSBmYWxzZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIHRvdGFsUGFnZXMsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucGFnaW5hdGlvbiwgY3VzdG9tVGhlbWUpO1xuICBjb25zdCBsYXN0UGFnZSA9IE1hdGgubWluKE1hdGgubWF4KGxheW91dCA9PT0gXCJwYWdpbmF0aW9uXCIgPyBjdXJyZW50UGFnZSArIDIgOiBjdXJyZW50UGFnZSArIDQsIDUpLCB0b3RhbFBhZ2VzKTtcbiAgY29uc3QgZmlyc3RQYWdlID0gTWF0aC5tYXgoMSwgbGFzdFBhZ2UgLSA0KTtcbiAgY29uc3QgZ29Ub05leHRQYWdlID0gKCkgPT4ge1xuICAgIG9uUGFnZUNoYW5nZShNYXRoLm1pbihjdXJyZW50UGFnZSArIDEsIHRvdGFsUGFnZXMpKTtcbiAgfTtcbiAgY29uc3QgZ29Ub1ByZXZpb3VzUGFnZSA9ICgpID0+IHtcbiAgICBvblBhZ2VDaGFuZ2UoTWF0aC5tYXgoY3VycmVudFBhZ2UgLSAxLCAxKSk7XG4gIH07XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcIm5hdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICBsYXlvdXQgPT09IFwidGFibGVcIiAmJiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGF5b3V0LnRhYmxlLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICBcIlNob3dpbmcgXCIsXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGF5b3V0LnRhYmxlLnNwYW4sIGNoaWxkcmVuOiBmaXJzdFBhZ2UgfSksXG4gICAgICBcIiB0b1xceEEwXCIsXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGF5b3V0LnRhYmxlLnNwYW4sIGNoaWxkcmVuOiBsYXN0UGFnZSB9KSxcbiAgICAgIFwiIG9mXFx4QTBcIixcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5sYXlvdXQudGFibGUuc3BhbiwgY2hpbGRyZW46IHRvdGFsUGFnZXMgfSksXG4gICAgICBcIiBFbnRyaWVzXCJcbiAgICBdIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwidWxcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnBhZ2VzLmJhc2UsIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICAgIFBhZ2luYXRpb25OYXZpZ2F0aW9uLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnBhZ2VzLnByZXZpb3VzLmJhc2UsIHNob3dJY29uICYmIHRoZW1lLnBhZ2VzLnNob3dJY29uKSxcbiAgICAgICAgICBvbkNsaWNrOiBnb1RvUHJldmlvdXNQYWdlLFxuICAgICAgICAgIGRpc2FibGVkOiBjdXJyZW50UGFnZSA9PT0gMSxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgc2hvd0ljb24gJiYgLyogQF9fUFVSRV9fICovIGpzeChIaUNoZXZyb25MZWZ0LCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0aGVtZS5wYWdlcy5wcmV2aW91cy5pY29uIH0pLFxuICAgICAgICAgICAgcHJldmlvdXNMYWJlbFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSB9KSxcbiAgICAgIGxheW91dCA9PT0gXCJwYWdpbmF0aW9uXCIgJiYgcmFuZ2UoZmlyc3RQYWdlLCBsYXN0UGFnZSkubWFwKChwYWdlKSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBcImFyaWEtY3VycmVudFwiOiBwYWdlID09PSBjdXJyZW50UGFnZSA/IFwicGFnZVwiIDogdm9pZCAwLCBjaGlsZHJlbjogcmVuZGVyUGFnaW5hdGlvbkJ1dHRvbih7XG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5wYWdlcy5zZWxlY3Rvci5iYXNlLCBjdXJyZW50UGFnZSA9PT0gcGFnZSAmJiB0aGVtZS5wYWdlcy5zZWxlY3Rvci5hY3RpdmUpLFxuICAgICAgICBhY3RpdmU6IHBhZ2UgPT09IGN1cnJlbnRQYWdlLFxuICAgICAgICBvbkNsaWNrOiAoKSA9PiBvblBhZ2VDaGFuZ2UocGFnZSksXG4gICAgICAgIGNoaWxkcmVuOiBwYWdlXG4gICAgICB9KSB9LCBwYWdlKSksXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwibGlcIiwgeyBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICAgIFBhZ2luYXRpb25OYXZpZ2F0aW9uLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnBhZ2VzLm5leHQuYmFzZSwgc2hvd0ljb24gJiYgdGhlbWUucGFnZXMuc2hvd0ljb24pLFxuICAgICAgICAgIG9uQ2xpY2s6IGdvVG9OZXh0UGFnZSxcbiAgICAgICAgICBkaXNhYmxlZDogY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXMsXG4gICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIG5leHRMYWJlbCxcbiAgICAgICAgICAgIHNob3dJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goSGlDaGV2cm9uUmlnaHQsIHsgXCJhcmlhLWhpZGRlblwiOiB0cnVlLCBjbGFzc05hbWU6IHRoZW1lLnBhZ2VzLm5leHQuaWNvbiB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSB9KVxuICAgIF0gfSlcbiAgXSB9KTtcbn07XG5QYWdpbmF0aW9uQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJQYWdpbmF0aW9uXCI7XG5jb25zdCBQYWdpbmF0aW9uID0gT2JqZWN0LmFzc2lnbihQYWdpbmF0aW9uQ29tcG9uZW50LCB7XG4gIEJ1dHRvbjogUGFnaW5hdGlvbkJ1dHRvblxufSk7XG5cbmV4cG9ydCB7IFBhZ2luYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhZ2luYXRpb24ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgUmFkaW8gPSBmb3J3YXJkUmVmKFxuICAoeyBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnJhZGlvLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJpbnB1dFwiLCB7IHJlZiwgdHlwZTogXCJyYWRpb1wiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcyB9KTtcbiAgfVxuKTtcblJhZGlvLmRpc3BsYXlOYW1lID0gXCJSYWRpb1wiO1xuXG5leHBvcnQgeyBSYWRpbyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmFkaW8ubWpzLm1hcFxuIiwiaW1wb3J0IHsganN4LCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IFJhbmdlU2xpZGVyID0gZm9yd2FyZFJlZihcbiAgKHsgY2xhc3NOYW1lLCBzaXppbmcgPSBcIm1kXCIsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnJhbmdlU2xpZGVyLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtcmFuZ2Utc2xpZGVyXCIsIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5iYXNlLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFwiaW5wdXRcIixcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICB0eXBlOiBcInJhbmdlXCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5maWVsZC5pbnB1dC5iYXNlLCB0aGVtZS5maWVsZC5pbnB1dC5zaXplc1tzaXppbmddKSxcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH1cbiAgICApIH0pIH0pIH0pO1xuICB9XG4pO1xuUmFuZ2VTbGlkZXIuZGlzcGxheU5hbWUgPSBcIlJhbmdlU2xpZGVyXCI7XG5cbmV4cG9ydCB7IFJhbmdlU2xpZGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SYW5nZVNsaWRlci5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBnZXRUaGVtZSB9IGZyb20gJy4uLy4uL3RoZW1lLXN0b3JlL2luZGV4Lm1qcyc7XG5cbmNvbnN0IFJhdGluZ0FkdmFuY2VkID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgcGVyY2VudEZpbGxlZCA9IDAsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnJhdGluZ0FkdmFuY2VkLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW46IFtcbiAgICAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUubGFiZWwsIGNoaWxkcmVuIH0pLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLnByb2dyZXNzLmJhc2UsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgXCJkaXZcIixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiB0aGVtZS5wcm9ncmVzcy5maWxsLFxuICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtcmF0aW5nLWZpbGxcIixcbiAgICAgICAgc3R5bGU6IHsgd2lkdGg6IGAke3BlcmNlbnRGaWxsZWR9JWAgfVxuICAgICAgfVxuICAgICkgfSksXG4gICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLnByb2dyZXNzLmxhYmVsLCBjaGlsZHJlbjogYCR7cGVyY2VudEZpbGxlZH0lYCB9KVxuICBdIH0pO1xufTtcblxuZXhwb3J0IHsgUmF0aW5nQWR2YW5jZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhdGluZ0FkdmFuY2VkLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFJhdGluZ0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VSYXRpbmdDb250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChSYXRpbmdDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlUmF0aW5nQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFJhdGluZ0NvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBSYXRpbmdDb250ZXh0LCB1c2VSYXRpbmdDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1SYXRpbmdDb250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IEhpU3RhciB9IGZyb20gJ3JlYWN0LWljb25zL2hpJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVJhdGluZ0NvbnRleHQgfSBmcm9tICcuL1JhdGluZ0NvbnRleHQubWpzJztcblxuY29uc3QgUmF0aW5nU3RhciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgZmlsbGVkID0gdHJ1ZSxcbiAgc3Rhckljb246IEljb24gPSBIaVN0YXIsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIHNpemUgPSBcInNtXCIgfSA9IHVzZVJhdGluZ0NvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLnN0YXIsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgSWNvbixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtcmF0aW5nLXN0YXJcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5zaXplc1tzaXplXSwgdGhlbWVbZmlsbGVkID8gXCJmaWxsZWRcIiA6IFwiZW1wdHlcIl0sIGNsYXNzTmFtZSksXG4gICAgICAuLi5wcm9wc1xuICAgIH1cbiAgKTtcbn07XG5cbmV4cG9ydCB7IFJhdGluZ1N0YXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhdGluZ1N0YXIubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgUmF0aW5nQWR2YW5jZWQgfSBmcm9tICcuL1JhdGluZ0FkdmFuY2VkLm1qcyc7XG5pbXBvcnQgeyBSYXRpbmdDb250ZXh0IH0gZnJvbSAnLi9SYXRpbmdDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBSYXRpbmdTdGFyIH0gZnJvbSAnLi9SYXRpbmdTdGFyLm1qcyc7XG5cbmNvbnN0IFJhdGluZ0NvbXBvbmVudCA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHNpemUgPSBcInNtXCIsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkucmF0aW5nLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFJhdGluZ0NvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgdGhlbWUsIHNpemUgfSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSkgfSk7XG59O1xuUmF0aW5nQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJSYXRpbmdcIjtcblJhdGluZ1N0YXIuZGlzcGxheU5hbWUgPSBcIlJhdGluZy5TdGFyXCI7XG5SYXRpbmdBZHZhbmNlZC5kaXNwbGF5TmFtZSA9IFwiUmF0aW5nLkFkdmFuY2VkXCI7XG5jb25zdCBSYXRpbmcgPSBPYmplY3QuYXNzaWduKFJhdGluZ0NvbXBvbmVudCwge1xuICBTdGFyOiBSYXRpbmdTdGFyLFxuICBBZHZhbmNlZDogUmF0aW5nQWR2YW5jZWRcbn0pO1xuXG5leHBvcnQgeyBSYXRpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhdGluZy5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgSGVscGVyVGV4dCB9IGZyb20gJy4uL0hlbHBlclRleHQvSGVscGVyVGV4dC5tanMnO1xuXG5jb25zdCBTZWxlY3QgPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGFkZG9uLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBjb2xvciA9IFwiZ3JheVwiLFxuICAgIGhlbHBlclRleHQsXG4gICAgaWNvbjogSWNvbixcbiAgICBzaGFkb3csXG4gICAgc2l6aW5nID0gXCJtZFwiLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIC4uLnByb3BzXG4gIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuc2VsZWN0LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbXG4gICAgICBhZGRvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogdGhlbWUuYWRkb24sIGNoaWxkcmVuOiBhZGRvbiB9KSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5maWVsZC5iYXNlLCBjaGlsZHJlbjogW1xuICAgICAgICBJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmljb24uYmFzZSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goSWNvbiwgeyBjbGFzc05hbWU6IHRoZW1lLmZpZWxkLmljb24uc3ZnIH0pIH0pLFxuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgIFwic2VsZWN0XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgICB0aGVtZS5maWVsZC5zZWxlY3QuYmFzZSxcbiAgICAgICAgICAgICAgdGhlbWUuZmllbGQuc2VsZWN0LmNvbG9yc1tjb2xvcl0sXG4gICAgICAgICAgICAgIHRoZW1lLmZpZWxkLnNlbGVjdC5zaXplc1tzaXppbmddLFxuICAgICAgICAgICAgICB0aGVtZS5maWVsZC5zZWxlY3Qud2l0aEljb25bSWNvbiA/IFwib25cIiA6IFwib2ZmXCJdLFxuICAgICAgICAgICAgICB0aGVtZS5maWVsZC5zZWxlY3Qud2l0aEFkZG9uW2FkZG9uID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgIHRoZW1lLmZpZWxkLnNlbGVjdC53aXRoU2hhZG93W3NoYWRvdyA/IFwib25cIiA6IFwib2ZmXCJdXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgaGVscGVyVGV4dCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEhlbHBlclRleHQsIHsgY29sb3IsIGNoaWxkcmVuOiBoZWxwZXJUZXh0IH0pXG4gICAgICBdIH0pXG4gICAgXSB9KTtcbiAgfVxuKTtcblNlbGVjdC5kaXNwbGF5TmFtZSA9IFwiU2VsZWN0XCI7XG5cbmV4cG9ydCB7IFNlbGVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VsZWN0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFNpZGViYXJDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlU2lkZWJhckNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNpZGViYXJDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlU2lkZWJhckNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBTaWRlYmFyQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFNpZGViYXJDb250ZXh0LCB1c2VTaWRlYmFyQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgU2lkZWJhckl0ZW1Db250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlU2lkZWJhckl0ZW1Db250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChTaWRlYmFySXRlbUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VTaWRlYmFySXRlbUNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBTaWRlYmFySXRlbUNvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBTaWRlYmFySXRlbUNvbnRleHQsIHVzZVNpZGViYXJJdGVtQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckl0ZW1Db250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VJZCwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhpQ2hldnJvbkRvd24gfSBmcm9tICdyZWFjdC1pY29ucy9oaSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnLi4vVG9vbHRpcC9Ub29sdGlwLm1qcyc7XG5pbXBvcnQgeyB1c2VTaWRlYmFyQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckNvbnRleHQubWpzJztcbmltcG9ydCB7IFNpZGViYXJJdGVtQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckl0ZW1Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IFNpZGViYXJDb2xsYXBzZSA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGljb246IEljb24sXG4gIGxhYmVsLFxuICBjaGV2cm9uSWNvbjogQ2hldnJvbkljb24gPSBIaUNoZXZyb25Eb3duLFxuICByZW5kZXJDaGV2cm9uSWNvbixcbiAgb3BlbiA9IGZhbHNlLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICBjb25zdCBbaXNPcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKG9wZW4pO1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGlzQ29sbGFwc2VkIH0gPSB1c2VTaWRlYmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuY29sbGFwc2UsIGN1c3RvbVRoZW1lKTtcbiAgdXNlRWZmZWN0KCgpID0+IHNldE9wZW4ob3BlbiksIFtvcGVuXSk7XG4gIGNvbnN0IFdyYXBwZXIgPSAoeyBjaGlsZHJlbjogY2hpbGRyZW4yIH0pID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJsaVwiLCB7IGNoaWxkcmVuOiBpc0NvbGxhcHNlZCAmJiAhaXNPcGVuID8gLyogQF9fUFVSRV9fICovIGpzeChUb29sdGlwLCB7IGNvbnRlbnQ6IGxhYmVsLCBwbGFjZW1lbnQ6IFwicmlnaHRcIiwgY2hpbGRyZW46IGNoaWxkcmVuMiB9KSA6IGNoaWxkcmVuMiB9KTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFdyYXBwZXIsIHsgY2hpbGRyZW46IFtcbiAgICAvKiBAX19QVVJFX18gKi8ganN4cyhcbiAgICAgIFwiYnV0dG9uXCIsXG4gICAgICB7XG4gICAgICAgIGlkOiBgZmxvd2JpdGUtc2lkZWJhci1jb2xsYXBzZS0ke2lkfWAsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHNldE9wZW4oIWlzT3BlbiksXG4gICAgICAgIHRpdGxlOiBsYWJlbCxcbiAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJ1dHRvbiwgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgSWNvbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtc2lkZWJhci1jb2xsYXBzZS1pY29uXCIsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5pY29uLmJhc2UsIHRoZW1lLmljb24ub3Blbltpc09wZW4gPyBcIm9uXCIgOiBcIm9mZlwiXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGlzQ29sbGFwc2VkID8gLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IFwic3Itb25seVwiLCBjaGlsZHJlbjogbGFiZWwgfSkgOiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtc2lkZWJhci1jb2xsYXBzZS1sYWJlbFwiLCBjbGFzc05hbWU6IHRoZW1lLmxhYmVsLmJhc2UsIGNoaWxkcmVuOiBsYWJlbCB9KSxcbiAgICAgICAgICAgIHJlbmRlckNoZXZyb25JY29uID8gcmVuZGVyQ2hldnJvbkljb24odGhlbWUsIGlzT3BlbikgOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgICBDaGV2cm9uSWNvbixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUubGFiZWwuaWNvbi5iYXNlLCB0aGVtZS5sYWJlbC5pY29uLm9wZW5baXNPcGVuID8gXCJvblwiIDogXCJvZmZcIl0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICBdIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApLFxuICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ1bFwiLCB7IFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGBmbG93Yml0ZS1zaWRlYmFyLWNvbGxhcHNlLSR7aWR9YCwgaGlkZGVuOiAhaXNPcGVuLCBjbGFzc05hbWU6IHRoZW1lLmxpc3QsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFNpZGViYXJJdGVtQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBpc0luc2lkZUNvbGxhcHNlOiB0cnVlIH0sIGNoaWxkcmVuIH0pIH0pXG4gIF0gfSk7XG59O1xuU2lkZWJhckNvbGxhcHNlLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkNvbGxhcHNlXCI7XG5cbmV4cG9ydCB7IFNpZGViYXJDb2xsYXBzZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckNvbGxhcHNlLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBTaWRlYmFyQ1RBID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNvbG9yID0gXCJpbmZvXCIsXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaXNDb2xsYXBzZWQgfSA9IHVzZVNpZGViYXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5jdGEsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwic2lkZWJhci1jdGFcIixcbiAgICAgIGhpZGRlbjogaXNDb2xsYXBzZWQsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgdGhlbWUuY29sb3JbY29sb3JdLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKTtcbn07XG5TaWRlYmFyQ1RBLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkNUQVwiO1xuXG5leHBvcnQgeyBTaWRlYmFyQ1RBIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaWRlYmFyQ1RBLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCwganN4cyB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUlkIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgQmFkZ2UgfSBmcm9tICcuLi9CYWRnZS9CYWRnZS5tanMnO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gJy4uL1Rvb2x0aXAvVG9vbHRpcC5tanMnO1xuaW1wb3J0IHsgdXNlU2lkZWJhckNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyB1c2VTaWRlYmFySXRlbUNvbnRleHQgfSBmcm9tICcuL1NpZGViYXJJdGVtQ29udGV4dC5tanMnO1xuXG5jb25zdCBMaXN0SXRlbSA9ICh7IGlkLCB0aGVtZSwgaXNDb2xsYXBzZWQsIHRvb2x0aXBDaGlsZHJlbiwgY2hpbGRyZW46IHdyYXBwZXJDaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4gLyogQF9fUFVSRV9fICovIGpzeChcImxpXCIsIHsgLi4ucHJvcHMsIGNoaWxkcmVuOiBpc0NvbGxhcHNlZCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gIFRvb2x0aXAsXG4gIHtcbiAgICBjb250ZW50OiAvKiBAX19QVVJFX18gKi8ganN4KENoaWxkcmVuLCB7IGlkLCB0aGVtZSwgY2hpbGRyZW46IHRvb2x0aXBDaGlsZHJlbiB9KSxcbiAgICBwbGFjZW1lbnQ6IFwicmlnaHRcIixcbiAgICBjaGlsZHJlbjogd3JhcHBlckNoaWxkcmVuXG4gIH1cbikgOiB3cmFwcGVyQ2hpbGRyZW4gfSk7XG5jb25zdCBDaGlsZHJlbiA9ICh7IGlkLCB0aGVtZSwgY2hpbGRyZW4gfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcInNwYW5cIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtc2lkZWJhci1pdGVtLWNvbnRlbnRcIixcbiAgICAgIGlkOiBgZmxvd2JpdGUtc2lkZWJhci1pdGVtLSR7aWR9YCxcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5jb250ZW50LmJhc2UpLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICk7XG59O1xuY29uc3QgU2lkZWJhckl0ZW0gPSBmb3J3YXJkUmVmKFxuICAoe1xuICAgIGFjdGl2ZTogaXNBY3RpdmUsXG4gICAgYXM6IENvbXBvbmVudCA9IFwiYVwiLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBpY29uOiBJY29uLFxuICAgIGxhYmVsLFxuICAgIGxhYmVsQ29sb3IgPSBcImluZm9cIixcbiAgICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgICAuLi5wcm9wc1xuICB9LCByZWYpID0+IHtcbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBpc0NvbGxhcHNlZCB9ID0gdXNlU2lkZWJhckNvbnRleHQoKTtcbiAgICBjb25zdCB7IGlzSW5zaWRlQ29sbGFwc2UgfSA9IHVzZVNpZGViYXJJdGVtQ29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5pdGVtLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goTGlzdEl0ZW0sIHsgdGhlbWUsIGNsYXNzTmFtZTogdGhlbWUubGlzdEl0ZW0sIGlkLCBpc0NvbGxhcHNlZCwgdG9vbHRpcENoaWxkcmVuOiBjaGlsZHJlbiwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBgZmxvd2JpdGUtc2lkZWJhci1pdGVtLSR7aWR9YCxcbiAgICAgICAgcmVmLFxuICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgdGhlbWUuYmFzZSxcbiAgICAgICAgICBpc0FjdGl2ZSAmJiB0aGVtZS5hY3RpdmUsXG4gICAgICAgICAgIWlzQ29sbGFwc2VkICYmIGlzSW5zaWRlQ29sbGFwc2UgJiYgdGhlbWUuY29sbGFwc2VkPy5pbnNpZGVDb2xsYXBzZSxcbiAgICAgICAgICBjbGFzc05hbWVcbiAgICAgICAgKSxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgSWNvbiAmJiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICAgICAgSWNvbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiB0cnVlLFxuICAgICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtc2lkZWJhci1pdGVtLWljb25cIixcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmljb24/LmJhc2UsIGlzQWN0aXZlICYmIHRoZW1lLmljb24/LmFjdGl2ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGlzQ29sbGFwc2VkICYmICFJY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0aGVtZS5jb2xsYXBzZWQ/Lm5vSWNvbiwgY2hpbGRyZW46IGNoaWxkcmVuLmNoYXJBdCgwKS50b0xvY2FsZVVwcGVyQ2FzZSgpID8/IFwiP1wiIH0pLFxuICAgICAgICAgICFpc0NvbGxhcHNlZCAmJiAvKiBAX19QVVJFX18gKi8ganN4KENoaWxkcmVuLCB7IGlkLCB0aGVtZSwgY2hpbGRyZW4gfSksXG4gICAgICAgICAgIWlzQ29sbGFwc2VkICYmIGxhYmVsICYmIC8qIEBfX1BVUkVfXyAqLyBqc3goQmFkZ2UsIHsgY29sb3I6IGxhYmVsQ29sb3IsIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWxhYmVsXCIsIGhpZGRlbjogaXNDb2xsYXBzZWQsIGNsYXNzTmFtZTogdGhlbWUubGFiZWwsIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgICBdXG4gICAgICB9XG4gICAgKSB9KTtcbiAgfVxuKTtcblNpZGViYXJJdGVtLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkl0ZW1cIjtcblxuZXhwb3J0IHsgU2lkZWJhckl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGViYXJJdGVtLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckl0ZW1Db250ZXh0IH0gZnJvbSAnLi9TaWRlYmFySXRlbUNvbnRleHQubWpzJztcblxuY29uc3QgU2lkZWJhckl0ZW1Hcm91cCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZVNpZGViYXJDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5pdGVtR3JvdXAsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ1bFwiLCB7IFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS1zaWRlYmFyLWl0ZW0tZ3JvdXBcIiwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIC4uLnByb3BzLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChTaWRlYmFySXRlbUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgaXNJbnNpZGVDb2xsYXBzZTogZmFsc2UgfSwgY2hpbGRyZW4gfSkgfSk7XG59O1xuU2lkZWJhckl0ZW1Hcm91cC5kaXNwbGF5TmFtZSA9IFwiU2lkZWJhci5JdGVtR3JvdXBcIjtcblxuZXhwb3J0IHsgU2lkZWJhckl0ZW1Hcm91cCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhckl0ZW1Hcm91cC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VTaWRlYmFyQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckNvbnRleHQubWpzJztcblxuY29uc3QgU2lkZWJhckl0ZW1zID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lIH0gPSB1c2VTaWRlYmFyQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuaXRlbXMsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXNpZGViYXItaXRlbXNcIiwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblNpZGViYXJJdGVtcy5kaXNwbGF5TmFtZSA9IFwiU2lkZWJhci5JdGVtc1wiO1xuXG5leHBvcnQgeyBTaWRlYmFySXRlbXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGViYXJJdGVtcy5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3hzLCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVNpZGViYXJDb250ZXh0IH0gZnJvbSAnLi9TaWRlYmFyQ29udGV4dC5tanMnO1xuXG5jb25zdCBTaWRlYmFyTG9nbyA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGhyZWYsXG4gIGltZyxcbiAgaW1nQWx0ID0gXCJcIixcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBpc0NvbGxhcHNlZCB9ID0gdXNlU2lkZWJhckNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAocm9vdFRoZW1lLmxvZ28sIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgIFwiYVwiLFxuICAgIHtcbiAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGBmbG93Yml0ZS1zaWRlYmFyLWxvZ28tJHtpZH1gLFxuICAgICAgaHJlZixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiaW1nXCIsIHsgYWx0OiBpbWdBbHQsIHNyYzogaW1nLCBjbGFzc05hbWU6IHRoZW1lLmltZyB9KSxcbiAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IHRoZW1lLmNvbGxhcHNlZFtpc0NvbGxhcHNlZCA/IFwib25cIiA6IFwib2ZmXCJdLCBpZDogYGZsb3diaXRlLXNpZGViYXItbG9nby0ke2lkfWAsIGNoaWxkcmVuIH0pXG4gICAgICBdXG4gICAgfVxuICApO1xufTtcblNpZGViYXJMb2dvLmRpc3BsYXlOYW1lID0gXCJTaWRlYmFyLkxvZ29cIjtcblxuZXhwb3J0IHsgU2lkZWJhckxvZ28gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNpZGViYXJMb2dvLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFNpZGViYXJDb2xsYXBzZSB9IGZyb20gJy4vU2lkZWJhckNvbGxhcHNlLm1qcyc7XG5pbXBvcnQgeyBTaWRlYmFyQ29udGV4dCB9IGZyb20gJy4vU2lkZWJhckNvbnRleHQubWpzJztcbmltcG9ydCB7IFNpZGViYXJDVEEgfSBmcm9tICcuL1NpZGViYXJDVEEubWpzJztcbmltcG9ydCB7IFNpZGViYXJJdGVtIH0gZnJvbSAnLi9TaWRlYmFySXRlbS5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckl0ZW1Hcm91cCB9IGZyb20gJy4vU2lkZWJhckl0ZW1Hcm91cC5tanMnO1xuaW1wb3J0IHsgU2lkZWJhckl0ZW1zIH0gZnJvbSAnLi9TaWRlYmFySXRlbXMubWpzJztcbmltcG9ydCB7IFNpZGViYXJMb2dvIH0gZnJvbSAnLi9TaWRlYmFyTG9nby5tanMnO1xuXG5jb25zdCBTaWRlYmFyQ29tcG9uZW50ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGFzOiBDb21wb25lbnQgPSBcIm5hdlwiLFxuICBjb2xsYXBzZUJlaGF2aW9yID0gXCJjb2xsYXBzZVwiLFxuICBjb2xsYXBzZWQ6IGlzQ29sbGFwc2VkID0gZmFsc2UsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkuc2lkZWJhciwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTaWRlYmFyQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgaXNDb2xsYXBzZWQgfSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgQ29tcG9uZW50LFxuICAgIHtcbiAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIlNpZGViYXJcIixcbiAgICAgIGhpZGRlbjogaXNDb2xsYXBzZWQgJiYgY29sbGFwc2VCZWhhdmlvciA9PT0gXCJoaWRlXCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCB0aGVtZS5yb290LmNvbGxhcHNlZFtpc0NvbGxhcHNlZCA/IFwib25cIiA6IFwib2ZmXCJdLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogdGhlbWUucm9vdC5pbm5lciwgY2hpbGRyZW4gfSlcbiAgICB9XG4gICkgfSk7XG59O1xuU2lkZWJhckNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiU2lkZWJhclwiO1xuY29uc3QgU2lkZWJhciA9IE9iamVjdC5hc3NpZ24oU2lkZWJhckNvbXBvbmVudCwge1xuICBDb2xsYXBzZTogU2lkZWJhckNvbGxhcHNlLFxuICBDVEE6IFNpZGViYXJDVEEsXG4gIEl0ZW06IFNpZGViYXJJdGVtLFxuICBJdGVtczogU2lkZWJhckl0ZW1zLFxuICBJdGVtR3JvdXA6IFNpZGViYXJJdGVtR3JvdXAsXG4gIExvZ286IFNpZGViYXJMb2dvXG59KTtcblxuZXhwb3J0IHsgU2lkZWJhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2lkZWJhci5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUYWJsZUJvZHlDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlVGFibGVCb2R5Q29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoVGFibGVCb2R5Q29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRhYmxlQm9keUNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBUYWJsZUJvZHlDb250ZXh0IHByb3ZpZGVyIVwiKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgVGFibGVCb2R5Q29udGV4dCwgdXNlVGFibGVCb2R5Q29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVCb2R5Q29udGV4dC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUYWJsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VUYWJsZUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRhYmxlQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRhYmxlQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFRhYmxlQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRhYmxlQ29udGV4dCwgdXNlVGFibGVDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZUNvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IFRhYmxlQm9keUNvbnRleHQgfSBmcm9tICcuL1RhYmxlQm9keUNvbnRleHQubWpzJztcbmltcG9ydCB7IHVzZVRhYmxlQ29udGV4dCB9IGZyb20gJy4vVGFibGVDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRhYmxlQm9keSA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5ib2R5LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGFibGVCb2R5Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInRib2R5XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIHJlZiwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pIH0pO1xuICB9XG4pO1xuVGFibGVCb2R5LmRpc3BsYXlOYW1lID0gXCJUYWJsZS5Cb2R5XCI7XG5cbmV4cG9ydCB7IFRhYmxlQm9keSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVCb2R5Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUYWJsZUJvZHlDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUJvZHlDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRhYmxlQ2VsbCA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB7IHRoZW1lOiBib2R5VGhlbWUgfSA9IHVzZVRhYmxlQm9keUNvbnRleHQoKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChib2R5VGhlbWUuY2VsbCwgY3VzdG9tVGhlbWUpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFwidGRcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgcmVmLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG4gIH1cbik7XG5UYWJsZUNlbGwuZGlzcGxheU5hbWUgPSBcIlRhYmxlLkNlbGxcIjtcblxuZXhwb3J0IHsgVGFibGVDZWxsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJsZUNlbGwubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgVGFibGVIZWFkQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVRhYmxlSGVhZENvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRhYmxlSGVhZENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VUYWJsZUhlYWRDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgVGFibGVIZWFkQ29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRhYmxlSGVhZENvbnRleHQsIHVzZVRhYmxlSGVhZENvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlSGVhZENvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRhYmxlQ29udGV4dCB9IGZyb20gJy4vVGFibGVDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBUYWJsZUhlYWRDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUhlYWRDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRhYmxlSGVhZCA9IGZvcndhcmRSZWYoXG4gICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUgfSA9IHVzZVRhYmxlQ29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS5oZWFkLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGFibGVIZWFkQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcInRoZWFkXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIHJlZiwgLi4ucHJvcHMsIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFwidHJcIiwgeyBjaGlsZHJlbiB9KSB9KSB9KTtcbiAgfVxuKTtcblRhYmxlSGVhZC5kaXNwbGF5TmFtZSA9IFwiVGFibGUuSGVhZFwiO1xuXG5leHBvcnQgeyBUYWJsZUhlYWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlSGVhZC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGFibGVIZWFkQ29udGV4dCB9IGZyb20gJy4vVGFibGVIZWFkQ29udGV4dC5tanMnO1xuXG5jb25zdCBUYWJsZUhlYWRDZWxsID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWU6IGhlYWRUaGVtZSB9ID0gdXNlVGFibGVIZWFkQ29udGV4dCgpO1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGhlYWRUaGVtZS5jZWxsLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJ0aFwiLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCByZWYsIC4uLnByb3BzLCBjaGlsZHJlbiB9KTtcbiAgfVxuKTtcblRhYmxlSGVhZENlbGwuZGlzcGxheU5hbWUgPSBcIlRhYmxlLkhlYWRDZWxsXCI7XG5cbmV4cG9ydCB7IFRhYmxlSGVhZENlbGwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlSGVhZENlbGwubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRhYmxlQ29udGV4dCB9IGZyb20gJy4vVGFibGVDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRhYmxlUm93ID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgdGhlbWU6IHJvb3RUaGVtZSwgaG92ZXJhYmxlLCBzdHJpcGVkIH0gPSB1c2VUYWJsZUNvbnRleHQoKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUucm93LCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICBcInRyXCIsXG4gICAgICB7XG4gICAgICAgIHJlZixcbiAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRhYmxlLXJvdy1lbGVtZW50XCIsXG4gICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBzdHJpcGVkICYmIHRoZW1lLnN0cmlwZWQsIGhvdmVyYWJsZSAmJiB0aGVtZS5ob3ZlcmVkLCBjbGFzc05hbWUpLFxuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuVGFibGVSb3cuZGlzcGxheU5hbWUgPSBcIlRhYmxlLlJvd1wiO1xuXG5leHBvcnQgeyBUYWJsZVJvdyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVSb3cubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4LCBqc3hzIH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFRhYmxlQm9keSB9IGZyb20gJy4vVGFibGVCb2R5Lm1qcyc7XG5pbXBvcnQgeyBUYWJsZUNlbGwgfSBmcm9tICcuL1RhYmxlQ2VsbC5tanMnO1xuaW1wb3J0IHsgVGFibGVDb250ZXh0IH0gZnJvbSAnLi9UYWJsZUNvbnRleHQubWpzJztcbmltcG9ydCB7IFRhYmxlSGVhZCB9IGZyb20gJy4vVGFibGVIZWFkLm1qcyc7XG5pbXBvcnQgeyBUYWJsZUhlYWRDZWxsIH0gZnJvbSAnLi9UYWJsZUhlYWRDZWxsLm1qcyc7XG5pbXBvcnQgeyBUYWJsZVJvdyB9IGZyb20gJy4vVGFibGVSb3cubWpzJztcblxuY29uc3QgVGFibGVDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzdHJpcGVkLCBob3ZlcmFibGUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnRhYmxlLCBjdXN0b21UaGVtZSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBcImRhdGEtdGVzdGlkXCI6IFwidGFibGUtZWxlbWVudFwiLCBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC53cmFwcGVyKSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFRhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgc3RyaXBlZCwgaG92ZXJhYmxlIH0sIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3Quc2hhZG93LCBjbGFzc05hbWUpIH0pLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcInRhYmxlXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIHJlZiwgY2hpbGRyZW4gfSlcbiAgICBdIH0pIH0pO1xuICB9XG4pO1xuVGFibGVDb21wb25lbnQuZGlzcGxheU5hbWUgPSBcIlRhYmxlXCI7XG5jb25zdCBUYWJsZSA9IE9iamVjdC5hc3NpZ24oVGFibGVDb21wb25lbnQsIHtcbiAgSGVhZDogVGFibGVIZWFkLFxuICBCb2R5OiBUYWJsZUJvZHksXG4gIFJvdzogVGFibGVSb3csXG4gIENlbGw6IFRhYmxlQ2VsbCxcbiAgSGVhZENlbGw6IFRhYmxlSGVhZENlbGxcbn0pO1xuXG5leHBvcnQgeyBUYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuXG5jb25zdCBUYWJJdGVtID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSB9KSA9PiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lLCBjaGlsZHJlbiB9KTtcblRhYkl0ZW0uZGlzcGxheU5hbWUgPSBcIlRhYnMuSXRlbVwiO1xuXG5leHBvcnQgeyBUYWJJdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UYWJJdGVtLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUlkLCB1c2VNZW1vLCBDaGlsZHJlbiwgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VJbXBlcmF0aXZlSGFuZGxlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgZ2V0VGhlbWUgfSBmcm9tICcuLi8uLi90aGVtZS1zdG9yZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgVGFiSXRlbSB9IGZyb20gJy4vVGFiSXRlbS5tanMnO1xuXG5jb25zdCBUYWJzQ29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgb25BY3RpdmVUYWJDaGFuZ2UsIHZhcmlhbnQgPSBcImRlZmF1bHRcIiwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudGFicywgY3VzdG9tVGhlbWUpO1xuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0YWJzID0gdXNlTWVtbyhcbiAgICAgICgpID0+IENoaWxkcmVuLm1hcChcbiAgICAgICAgQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbiksXG4gICAgICAgICh7IHByb3BzOiBwcm9wczIgfSkgPT4gcHJvcHMyXG4gICAgICApLFxuICAgICAgW2NoaWxkcmVuXVxuICAgICk7XG4gICAgY29uc3QgdGFiUmVmcyA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlKFxuICAgICAgTWF0aC5tYXgoXG4gICAgICAgIDAsXG4gICAgICAgIHRhYnMuZmluZEluZGV4KCh0YWIpID0+IHRhYi5hY3RpdmUpXG4gICAgICApXG4gICAgKTtcbiAgICBjb25zdCBbZm9jdXNlZFRhYiwgc2V0Rm9jdXNlZFRhYl0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3Qgc2V0QWN0aXZlVGFiV2l0aENhbGxiYWNrID0gKGFjdGl2ZVRhYjIpID0+IHtcbiAgICAgIHNldEFjdGl2ZVRhYihhY3RpdmVUYWIyKTtcbiAgICAgIGlmIChvbkFjdGl2ZVRhYkNoYW5nZSkgb25BY3RpdmVUYWJDaGFuZ2UoYWN0aXZlVGFiMik7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVDbGljayA9ICh7IHRhcmdldCB9KSA9PiB7XG4gICAgICBzZXRBY3RpdmVUYWJXaXRoQ2FsbGJhY2sodGFyZ2V0KTtcbiAgICAgIHNldEZvY3VzZWRUYWIodGFyZ2V0KTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUtleWJvYXJkID0gKHsgZXZlbnQsIHRhcmdldCB9KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93TGVmdFwiKSB7XG4gICAgICAgIHNldEZvY3VzZWRUYWIoTWF0aC5tYXgoMCwgZm9jdXNlZFRhYiAtIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dSaWdodFwiKSB7XG4gICAgICAgIHNldEZvY3VzZWRUYWIoTWF0aC5taW4odGFicy5sZW5ndGggLSAxLCBmb2N1c2VkVGFiICsgMSkpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSB7XG4gICAgICAgIHNldEFjdGl2ZVRhYldpdGhDYWxsYmFjayh0YXJnZXQpO1xuICAgICAgICBzZXRGb2N1c2VkVGFiKHRhcmdldCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB0YWJJdGVtU3R5bGUgPSB0aGVtZS50YWJsaXN0LnRhYml0ZW0udmFyaWFudFt2YXJpYW50XTtcbiAgICBjb25zdCB0YWJJdGVtQ29udGFpbmVyU3R5bGUgPSB0aGVtZS50YWJpdGVtY29udGFpbmVyLnZhcmlhbnRbdmFyaWFudF07XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHRhYlJlZnMuY3VycmVudFtmb2N1c2VkVGFiXT8uZm9jdXMoKTtcbiAgICB9LCBbZm9jdXNlZFRhYl0pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgc2V0QWN0aXZlVGFiOiBzZXRBY3RpdmVUYWJXaXRoQ2FsbGJhY2tcbiAgICB9KSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmJhc2UsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbXG4gICAgICAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiVGFic1wiLFxuICAgICAgICAgIHJvbGU6IFwidGFibGlzdFwiLFxuICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS50YWJsaXN0LmJhc2UsIHRoZW1lLnRhYmxpc3QudmFyaWFudFt2YXJpYW50XSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbjogdGFicy5tYXAoKHRhYiwgaW5kZXgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3hzKFxuICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IGAke2lkfS10YWJwYW5lbC0ke2luZGV4fWAsXG4gICAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBpbmRleCA9PT0gYWN0aXZlVGFiLFxuICAgICAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UoXG4gICAgICAgICAgICAgICAgdGhlbWUudGFibGlzdC50YWJpdGVtLmJhc2UsXG4gICAgICAgICAgICAgICAgdGFiSXRlbVN0eWxlLmJhc2UsXG4gICAgICAgICAgICAgICAgaW5kZXggPT09IGFjdGl2ZVRhYiAmJiB0YWJJdGVtU3R5bGUuYWN0aXZlLm9uLFxuICAgICAgICAgICAgICAgIGluZGV4ICE9PSBhY3RpdmVUYWIgJiYgIXRhYi5kaXNhYmxlZCAmJiB0YWJJdGVtU3R5bGUuYWN0aXZlLm9mZlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogdGFiLmRpc2FibGVkLFxuICAgICAgICAgICAgICBpZDogYCR7aWR9LXRhYi0ke2luZGV4fWAsXG4gICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGhhbmRsZUNsaWNrKHsgdGFyZ2V0OiBpbmRleCB9KSxcbiAgICAgICAgICAgICAgb25LZXlEb3duOiAoZXZlbnQpID0+IGhhbmRsZUtleWJvYXJkKHsgZXZlbnQsIHRhcmdldDogaW5kZXggfSksXG4gICAgICAgICAgICAgIHJlZjogKGVsZW1lbnQpID0+IHRhYlJlZnMuY3VycmVudFtpbmRleF0gPSBlbGVtZW50LFxuICAgICAgICAgICAgICByb2xlOiBcInRhYlwiLFxuICAgICAgICAgICAgICB0YWJJbmRleDogaW5kZXggPT09IGZvY3VzZWRUYWIgPyAwIDogLTEsXG4gICAgICAgICAgICAgIHN0eWxlOiB7IHpJbmRleDogaW5kZXggPT09IGZvY3VzZWRUYWIgPyAyIDogMSB9LFxuICAgICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIHRhYi5pY29uICYmIC8qIEBfX1BVUkVfXyAqLyBqc3godGFiLmljb24sIHsgY2xhc3NOYW1lOiB0aGVtZS50YWJsaXN0LnRhYml0ZW0uaWNvbiB9KSxcbiAgICAgICAgICAgICAgICB0YWIudGl0bGVcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgKSlcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUudGFiaXRlbWNvbnRhaW5lci5iYXNlLCB0YWJJdGVtQ29udGFpbmVyU3R5bGUpLCBjaGlsZHJlbjogdGFicy5tYXAoKHRhYiwgaW5kZXgpID0+IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyaWEtbGFiZWxsZWRieVwiOiBgJHtpZH0tdGFiLSR7aW5kZXh9YCxcbiAgICAgICAgICBjbGFzc05hbWU6IHRoZW1lLnRhYnBhbmVsLFxuICAgICAgICAgIGhpZGRlbjogaW5kZXggIT09IGFjdGl2ZVRhYixcbiAgICAgICAgICBpZDogYCR7aWR9LXRhYnBhbmVsLSR7aW5kZXh9YCxcbiAgICAgICAgICByb2xlOiBcInRhYnBhbmVsXCIsXG4gICAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgICAgY2hpbGRyZW46IHRhYi5jaGlsZHJlblxuICAgICAgICB9LFxuICAgICAgICBpbmRleFxuICAgICAgKSkgfSlcbiAgICBdIH0pO1xuICB9XG4pO1xuVGFic0NvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiVGFic1wiO1xuY29uc3QgVGFicyA9IE9iamVjdC5hc3NpZ24oVGFic0NvbXBvbmVudCwge1xuICBJdGVtOiBUYWJJdGVtXG59KTtcblxuZXhwb3J0IHsgVGFicyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFicy5tanMubWFwXG4iLCJpbXBvcnQgeyBqc3hzLCBGcmFnbWVudCwganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IEhlbHBlclRleHQgfSBmcm9tICcuLi9IZWxwZXJUZXh0L0hlbHBlclRleHQubWpzJztcblxuY29uc3QgVGV4dGFyZWEgPSBmb3J3YXJkUmVmKFxuICAoeyBjbGFzc05hbWUsIGNvbG9yID0gXCJncmF5XCIsIGhlbHBlclRleHQsIHNoYWRvdywgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudGV4dGFyZWEsIGN1c3RvbVRoZW1lKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtcbiAgICAgIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgIFwidGV4dGFyZWFcIixcbiAgICAgICAge1xuICAgICAgICAgIHJlZixcbiAgICAgICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgdGhlbWUuY29sb3JzW2NvbG9yXSwgdGhlbWUud2l0aFNoYWRvd1tzaGFkb3cgPyBcIm9uXCIgOiBcIm9mZlwiXSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgaGVscGVyVGV4dCAmJiAvKiBAX19QVVJFX18gKi8ganN4KEhlbHBlclRleHQsIHsgY29sb3IsIGNoaWxkcmVuOiBoZWxwZXJUZXh0IH0pXG4gICAgXSB9KTtcbiAgfVxuKTtcblRleHRhcmVhLmRpc3BsYXlOYW1lID0gXCJUZXh0YXJlYVwiO1xuXG5leHBvcnQgeyBUZXh0YXJlYSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGV4dGFyZWEubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgVGltZWxpbmVDb250ZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbmZ1bmN0aW9uIHVzZVRpbWVsaW5lQ29udGVudENvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRpbWVsaW5lQ29udGVudENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0IHNob3VsZCBiZSB1c2VkIHdpdGhpbiB0aGUgVGltZWxpbmVDb250ZW50Q29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRpbWVsaW5lQ29udGVudENvbnRleHQsIHVzZVRpbWVsaW5lQ29udGVudENvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lQ29udGVudENvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZW50Q29udGV4dC5tanMnO1xuXG5jb25zdCBUaW1lbGluZUJvZHkgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiBjb250ZW50VGhlbWUgfSA9IHVzZVRpbWVsaW5lQ29udGVudENvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoY29udGVudFRoZW1lLmJvZHksIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgVGltZWxpbmVCb2R5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZUJvZHkubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgVGltZWxpbmVDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh2b2lkIDApO1xuZnVuY3Rpb24gdXNlVGltZWxpbmVDb250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChUaW1lbGluZUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1c2VUaW1lbGluZUNvbnRleHQgc2hvdWxkIGJlIHVzZWQgd2l0aGluIHRoZSBUaW1lbGluZUNvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBUaW1lbGluZUNvbnRleHQsIHVzZVRpbWVsaW5lQ29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZWxpbmVDb250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IFRpbWVsaW5lSXRlbUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VUaW1lbGluZUl0ZW1Db250ZXh0KCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChUaW1lbGluZUl0ZW1Db250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlVGltZWxpbmVJdGVtQ29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFRpbWVsaW5lSXRlbUNvbnRleHQgcHJvdmlkZXIhXCIpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBUaW1lbGluZUl0ZW1Db250ZXh0LCB1c2VUaW1lbGluZUl0ZW1Db250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZUl0ZW1Db250ZXh0Lm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lQ29udGVudENvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lQ29udGVudENvbnRleHQubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lQ29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUl0ZW1Db250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUl0ZW1Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lQ29udGVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB7IGhvcml6b250YWwgfSA9IHVzZVRpbWVsaW5lQ29udGV4dCgpO1xuICBjb25zdCB7IHRoZW1lOiBpdGVtVGhlbWUgfSA9IHVzZVRpbWVsaW5lSXRlbUNvbnRleHQoKTtcbiAgY29uc3QgdGhlbWUgPSBtZXJnZURlZXAoaXRlbVRoZW1lLmNvbnRlbnQsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGltZWxpbmVDb250ZW50Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0aW1lbGluZS1jb250ZW50XCIsXG4gICAgICBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUucm9vdC5iYXNlLCBob3Jpem9udGFsID8gdGhlbWUucm9vdC5ob3Jpem9udGFsIDogdGhlbWUucm9vdC52ZXJ0aWNhbCwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICB9XG4gICkgfSk7XG59O1xuXG5leHBvcnQgeyBUaW1lbGluZUNvbnRlbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRpbWVsaW5lQ29udGVudC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUNvbnRleHQgfSBmcm9tICcuL1RpbWVsaW5lQ29udGV4dC5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVJdGVtQ29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVJdGVtQ29udGV4dC5tanMnO1xuXG5jb25zdCBUaW1lbGluZUl0ZW0gPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCB7IHRoZW1lOiByb290VGhlbWUsIGhvcml6b250YWwgfSA9IHVzZVRpbWVsaW5lQ29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChyb290VGhlbWUuaXRlbSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChUaW1lbGluZUl0ZW1Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHRoZW1lIH0sIGNoaWxkcmVuOiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwibGlcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwidGltZWxpbmUtaXRlbVwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKGhvcml6b250YWwgJiYgdGhlbWUucm9vdC5ob3Jpem9udGFsLCAhaG9yaXpvbnRhbCAmJiB0aGVtZS5yb290LnZlcnRpY2FsLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKSB9KTtcbn07XG5cbmV4cG9ydCB7IFRpbWVsaW5lSXRlbSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZWxpbmVJdGVtLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeHMsIGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IHVzZVRpbWVsaW5lQ29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUl0ZW1Db250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUl0ZW1Db250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lUG9pbnQgPSAoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBpY29uOiBJY29uLFxuICB0aGVtZTogY3VzdG9tVGhlbWUgPSB7fSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBob3Jpem9udGFsIH0gPSB1c2VUaW1lbGluZUNvbnRleHQoKTtcbiAgY29uc3QgeyB0aGVtZTogaXRlbVRoZW1lIH0gPSB1c2VUaW1lbGluZUl0ZW1Db250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGl0ZW1UaGVtZS5wb2ludCwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwidGltZWxpbmUtcG9pbnRcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShob3Jpem9udGFsICYmIHRoZW1lLmhvcml6b250YWwsICFob3Jpem9udGFsICYmIHRoZW1lLnZlcnRpY2FsLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgSWNvbiA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLm1hcmtlci5pY29uLndyYXBwZXIpLCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChJY29uLCB7IFwiYXJpYS1oaWRkZW5cIjogdHJ1ZSwgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLm1hcmtlci5pY29uLmJhc2UpIH0pIH0pIDogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogdHdNZXJnZShob3Jpem9udGFsICYmIHRoZW1lLm1hcmtlci5iYXNlLmhvcml6b250YWwsICFob3Jpem9udGFsICYmIHRoZW1lLm1hcmtlci5iYXNlLnZlcnRpY2FsKVxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgaG9yaXpvbnRhbCAmJiAvKiBAX19QVVJFX18gKi8ganN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLmxpbmUpIH0pXG4gICAgICBdXG4gICAgfVxuICApO1xufTtcblxuZXhwb3J0IHsgVGltZWxpbmVQb2ludCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGltZWxpbmVQb2ludC5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSAndGFpbHdpbmQtbWVyZ2UnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9tZXJnZS1kZWVwLm1qcyc7XG5pbXBvcnQgeyB1c2VUaW1lbGluZUNvbnRlbnRDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRlbnRDb250ZXh0Lm1qcyc7XG5cbmNvbnN0IFRpbWVsaW5lVGltZSA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IGNvbnRlbnRUaGVtZSB9ID0gdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChjb250ZW50VGhlbWUudGltZSwgY3VzdG9tVGhlbWUpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcInRpbWVcIiwgeyBjbGFzc05hbWU6IHR3TWVyZ2UodGhlbWUuYmFzZSwgY2xhc3NOYW1lKSwgLi4ucHJvcHMsIGNoaWxkcmVuIH0pO1xufTtcblxuZXhwb3J0IHsgVGltZWxpbmVUaW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZVRpbWUubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCB9IGZyb20gJy4vVGltZWxpbmVDb250ZW50Q29udGV4dC5tanMnO1xuXG5jb25zdCBUaW1lbGluZVRpdGxlID0gKHtcbiAgYXM6IFRhZyA9IFwiaDNcIixcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgdGhlbWU6IGNvbnRlbnRUaGVtZSB9ID0gdXNlVGltZWxpbmVDb250ZW50Q29udGV4dCgpO1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChjb250ZW50VGhlbWUudGl0bGUsIGN1c3RvbVRoZW1lKTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goVGFnLCB7IGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLCAuLi5wcm9wcywgY2hpbGRyZW4gfSk7XG59O1xuXG5leHBvcnQgeyBUaW1lbGluZVRpdGxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZVRpdGxlLm1qcy5tYXBcbiIsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lQm9keSB9IGZyb20gJy4vVGltZWxpbmVCb2R5Lm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZUNvbnRlbnQgfSBmcm9tICcuL1RpbWVsaW5lQ29udGVudC5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVDb250ZXh0IH0gZnJvbSAnLi9UaW1lbGluZUNvbnRleHQubWpzJztcbmltcG9ydCB7IFRpbWVsaW5lSXRlbSB9IGZyb20gJy4vVGltZWxpbmVJdGVtLm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZVBvaW50IH0gZnJvbSAnLi9UaW1lbGluZVBvaW50Lm1qcyc7XG5pbXBvcnQgeyBUaW1lbGluZVRpbWUgfSBmcm9tICcuL1RpbWVsaW5lVGltZS5tanMnO1xuaW1wb3J0IHsgVGltZWxpbmVUaXRsZSB9IGZyb20gJy4vVGltZWxpbmVUaXRsZS5tanMnO1xuXG5jb25zdCBUaW1lbGluZUNvbXBvbmVudCA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGhvcml6b250YWwsXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAuLi5wcm9wc1xufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnRpbWVsaW5lLCBjdXN0b21UaGVtZSk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFRpbWVsaW5lQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgaG9yaXpvbnRhbCB9LCBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChcbiAgICBcIm9sXCIsXG4gICAge1xuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRpbWVsaW5lLWNvbXBvbmVudFwiLFxuICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICBob3Jpem9udGFsICYmIHRoZW1lLnJvb3QuZGlyZWN0aW9uLmhvcml6b250YWwsXG4gICAgICAgICFob3Jpem9udGFsICYmIHRoZW1lLnJvb3QuZGlyZWN0aW9uLnZlcnRpY2FsLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNoaWxkcmVuXG4gICAgfVxuICApIH0pO1xufTtcblRpbWVsaW5lQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gXCJUaW1lbGluZVwiO1xuVGltZWxpbmVJdGVtLmRpc3BsYXlOYW1lID0gXCJUaW1lbGluZS5JdGVtXCI7XG5UaW1lbGluZVBvaW50LmRpc3BsYXlOYW1lID0gXCJUaW1lbGluZS5Qb2ludFwiO1xuVGltZWxpbmVDb250ZW50LmRpc3BsYXlOYW1lID0gXCJUaW1lbGluZS5Db250ZW50XCI7XG5UaW1lbGluZVRpbWUuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLlRpbWVcIjtcblRpbWVsaW5lVGl0bGUuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLlRpdGxlXCI7XG5UaW1lbGluZUJvZHkuZGlzcGxheU5hbWUgPSBcIlRpbWVsaW5lLkJvZHlcIjtcbmNvbnN0IFRpbWVsaW5lID0gT2JqZWN0LmFzc2lnbihUaW1lbGluZUNvbXBvbmVudCwge1xuICBJdGVtOiBUaW1lbGluZUl0ZW0sXG4gIFBvaW50OiBUaW1lbGluZVBvaW50LFxuICBDb250ZW50OiBUaW1lbGluZUNvbnRlbnQsXG4gIFRpbWU6IFRpbWVsaW5lVGltZSxcbiAgVGl0bGU6IFRpbWVsaW5lVGl0bGUsXG4gIEJvZHk6IFRpbWVsaW5lQm9keVxufSk7XG5cbmV4cG9ydCB7IFRpbWVsaW5lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UaW1lbGluZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuXG5jb25zdCBUb2FzdENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZvaWQgMCk7XG5mdW5jdGlvbiB1c2VUb2FzdENvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFRvYXN0Q29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVzZVRvYXN0Q29udGV4dCBzaG91bGQgYmUgdXNlZCB3aXRoaW4gdGhlIFRvYXN0Q29udGV4dCBwcm92aWRlciFcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmV4cG9ydCB7IFRvYXN0Q29udGV4dCwgdXNlVG9hc3RDb250ZXh0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ub2FzdENvbnRleHQubWpzLm1hcFxuIiwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAncmVhY3QvanN4LXJ1bnRpbWUnO1xuaW1wb3J0IHsgSGlYIH0gZnJvbSAncmVhY3QtaWNvbnMvaGknO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJztcbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbWVyZ2UtZGVlcC5tanMnO1xuaW1wb3J0IHsgdXNlVG9hc3RDb250ZXh0IH0gZnJvbSAnLi9Ub2FzdENvbnRleHQubWpzJztcblxuY29uc3QgVG9hc3RUb2dnbGUgPSAoe1xuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICB4SWNvbjogWEljb24gPSBIaVgsXG4gIG9uRGlzbWlzcyxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyB0aGVtZTogcm9vdFRoZW1lLCBkdXJhdGlvbiwgaXNDbG9zZWQsIGlzUmVtb3ZlZCwgc2V0SXNDbG9zZWQsIHNldElzUmVtb3ZlZCB9ID0gdXNlVG9hc3RDb250ZXh0KCk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKHJvb3RUaGVtZS50b2dnbGUsIGN1c3RvbVRoZW1lKTtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZSkgPT4ge1xuICAgIGlmIChvbkNsaWNrKSBvbkNsaWNrKGUpO1xuICAgIGlmIChvbkRpc21pc3MpIHtcbiAgICAgIG9uRGlzbWlzcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRJc0Nsb3NlZCghaXNDbG9zZWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gc2V0SXNSZW1vdmVkKCFpc1JlbW92ZWQpLCBkdXJhdGlvbik7XG4gIH07XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFwiYnV0dG9uXCIsXG4gICAge1xuICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiQ2xvc2VcIixcbiAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5iYXNlLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlbjogLyogQF9fUFVSRV9fICovIGpzeChYSWNvbiwgeyBcImFyaWEtaGlkZGVuXCI6IHRydWUsIGNsYXNzTmFtZTogdGhlbWUuaWNvbiB9KVxuICAgIH1cbiAgKTtcbn07XG5cbmV4cG9ydCB7IFRvYXN0VG9nZ2xlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ub2FzdFRvZ2dsZS5tanMubWFwXG4iLCIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcbmltcG9ydCB7IFRvYXN0Q29udGV4dCB9IGZyb20gJy4vVG9hc3RDb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBUb2FzdFRvZ2dsZSB9IGZyb20gJy4vVG9hc3RUb2dnbGUubWpzJztcblxuY29uc3QgZHVyYXRpb25DbGFzc2VzID0ge1xuICA3NTogXCJkdXJhdGlvbi03NVwiLFxuICAxMDA6IFwiZHVyYXRpb24tMTAwXCIsXG4gIDE1MDogXCJkdXJhdGlvbi0xNTBcIixcbiAgMjAwOiBcImR1cmF0aW9uLTIwMFwiLFxuICAzMDA6IFwiZHVyYXRpb24tMzAwXCIsXG4gIDUwMDogXCJkdXJhdGlvbi01MDBcIixcbiAgNzAwOiBcImR1cmF0aW9uLTcwMFwiLFxuICAxZTM6IFwiZHVyYXRpb24tMTAwMFwiXG59O1xuY29uc3QgVG9hc3RDb21wb25lbnQgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBkdXJhdGlvbiA9IDMwMCwgdGhlbWU6IGN1c3RvbVRoZW1lID0ge30sIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgW2lzQ2xvc2VkLCBzZXRJc0Nsb3NlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc1JlbW92ZWQsIHNldElzUmVtb3ZlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHRoZW1lID0gbWVyZ2VEZWVwKGdldFRoZW1lKCkudG9hc3QsIGN1c3RvbVRoZW1lKTtcbiAgaWYgKGlzUmVtb3ZlZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFRvYXN0Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyB0aGVtZSwgZHVyYXRpb24sIGlzQ2xvc2VkLCBpc1JlbW92ZWQsIHNldElzQ2xvc2VkLCBzZXRJc1JlbW92ZWQgfSwgY2hpbGRyZW46IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBcImRhdGEtdGVzdGlkXCI6IFwiZmxvd2JpdGUtdG9hc3RcIixcbiAgICAgIHJvbGU6IFwiYWxlcnRcIixcbiAgICAgIGNsYXNzTmFtZTogdHdNZXJnZSh0aGVtZS5yb290LmJhc2UsIGR1cmF0aW9uQ2xhc3Nlc1tkdXJhdGlvbl0sIGlzQ2xvc2VkICYmIHRoZW1lLnJvb3QuY2xvc2VkLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBjaGlsZHJlblxuICAgIH1cbiAgKSB9KTtcbn07XG5Ub2FzdENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IFwiVG9hc3RcIjtcblRvYXN0VG9nZ2xlLmRpc3BsYXlOYW1lID0gXCJUb2FzdC5Ub2dnbGVcIjtcbmNvbnN0IFRvYXN0ID0gT2JqZWN0LmFzc2lnbihUb2FzdENvbXBvbmVudCwge1xuICBUb2dnbGU6IFRvYXN0VG9nZ2xlXG59KTtcblxuZXhwb3J0IHsgVG9hc3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRvYXN0Lm1qcy5tYXBcbiIsImltcG9ydCB7IGpzeHMsIEZyYWdtZW50LCBqc3ggfSBmcm9tICdyZWFjdC9qc3gtcnVudGltZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHR3TWVyZ2UgfSBmcm9tICd0YWlsd2luZC1tZXJnZSc7XG5pbXBvcnQgeyBtZXJnZURlZXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL21lcmdlLWRlZXAubWpzJztcbmltcG9ydCB7IGdldFRoZW1lIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3RvcmUvaW5kZXgubWpzJztcblxuY29uc3QgVG9nZ2xlU3dpdGNoID0gZm9yd2FyZFJlZihcbiAgKHtcbiAgICBjaGVja2VkLFxuICAgIGNsYXNzTmFtZSxcbiAgICBjb2xvciA9IFwiYmx1ZVwiLFxuICAgIHNpemluZyA9IFwibWRcIixcbiAgICBkaXNhYmxlZCxcbiAgICBsYWJlbCxcbiAgICBuYW1lLFxuICAgIG9uQ2hhbmdlLFxuICAgIHRoZW1lOiBjdXN0b21UaGVtZSA9IHt9LFxuICAgIC4uLnByb3BzXG4gIH0sIHJlZikgPT4ge1xuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0aGVtZSA9IG1lcmdlRGVlcChnZXRUaGVtZSgpLnRvZ2dsZVN3aXRjaCwgY3VzdG9tVGhlbWUpO1xuICAgIGNvbnN0IHRvZ2dsZSA9ICgpID0+IG9uQ2hhbmdlKCFjaGVja2VkKTtcbiAgICBjb25zdCBoYW5kbGVDbGljayA9ICgpID0+IHtcbiAgICAgIHRvZ2dsZSgpO1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlT25LZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuY29kZSA9PSBcIkVudGVyXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4cyhGcmFnbWVudCwgeyBjaGlsZHJlbjogW1xuICAgICAgbmFtZSAmJiBjaGVja2VkID8gLyogQF9fUFVSRV9fICovIGpzeChcImlucHV0XCIsIHsgcmVmLCBjaGVja2VkLCBoaWRkZW46IHRydWUsIG5hbWUsIHJlYWRPbmx5OiB0cnVlLCB0eXBlOiBcImNoZWNrYm94XCIsIGNsYXNzTmFtZTogXCJzci1vbmx5XCIgfSkgOiBudWxsLFxuICAgICAgLyogQF9fUFVSRV9fICovIGpzeHMoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyaWEtY2hlY2tlZFwiOiBjaGVja2VkLFxuICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IGAke2lkfS1mbG93Yml0ZS10b2dnbGVzd2l0Y2gtbGFiZWxgLFxuICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgIGlkOiBgJHtpZH0tZmxvd2JpdGUtdG9nZ2xlc3dpdGNoYCxcbiAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAgICAgICBvbktleURvd246IGhhbmRsZU9uS2V5RG93bixcbiAgICAgICAgICByb2xlOiBcInN3aXRjaFwiLFxuICAgICAgICAgIHRhYkluZGV4OiAwLFxuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKHRoZW1lLnJvb3QuYmFzZSwgdGhlbWUucm9vdC5hY3RpdmVbZGlzYWJsZWQgPyBcIm9mZlwiIDogXCJvblwiXSwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJmbG93Yml0ZS10b2dnbGVzd2l0Y2gtdG9nZ2xlXCIsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0d01lcmdlKFxuICAgICAgICAgICAgICAgICAgdGhlbWUudG9nZ2xlLmJhc2UsXG4gICAgICAgICAgICAgICAgICB0aGVtZS50b2dnbGUuY2hlY2tlZFtjaGVja2VkID8gXCJvblwiIDogXCJvZmZcIl0sXG4gICAgICAgICAgICAgICAgICBjaGVja2VkICYmIHRoZW1lLnRvZ2dsZS5jaGVja2VkLmNvbG9yW2NvbG9yXSxcbiAgICAgICAgICAgICAgICAgIHRoZW1lLnRvZ2dsZS5zaXplc1tzaXppbmddXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGFiZWw/Lmxlbmd0aCA/IC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcImZsb3diaXRlLXRvZ2dsZXN3aXRjaC1sYWJlbFwiLFxuICAgICAgICAgICAgICAgIGlkOiBgJHtpZH0tZmxvd2JpdGUtdG9nZ2xlc3dpdGNoLWxhYmVsYCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRoZW1lLnJvb3QubGFiZWwsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGxhYmVsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApXG4gICAgXSB9KTtcbiAgfVxuKTtcblRvZ2dsZVN3aXRjaC5kaXNwbGF5TmFtZSA9IFwiVG9nZ2xlU3dpdGNoXCI7XG5cbmV4cG9ydCB7IFRvZ2dsZVN3aXRjaCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VG9nZ2xlU3dpdGNoLm1qcy5tYXBcbiIsImltcG9ydCB7IFJpRGVsZXRlQmluMkxpbmUsIFJpU2F2ZUZpbGwgfSBmcm9tIFwiQHByZWFjdC1pY29ucy9yaVwiXG5pbXBvcnQgeyBCc1hDaXJjbGUsIEJzUGx1cywgQnNQZW5jaWwgfSBmcm9tIFwiQHByZWFjdC1pY29ucy9ic1wiXG5pbXBvcnQgeyBCdXR0b24gYXMgQmFzZUJ1dHRvbiB9IGZyb20gXCJmbG93Yml0ZS1yZWFjdFwiXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IEJ1dHRvbiA9ICh7IHR5cGUgLCB2YXJpYW50ICwgb25DbGljayB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VCdXR0b24gY29sb3I9e3ZhcmlhbnR9IHBpbGwgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICB7IHR5cGUgPT0gMSAmJiA8QnNQbHVzLz4gfVxuICAgICAgICAgICAgeyB0eXBlID09IDIgJiYgPEJzUGVuY2lsLz4gfVxuICAgICAgICAgICAgeyB0eXBlID09IDMgJiYgPFJpU2F2ZUZpbGwvPiB9XG4gICAgICAgICAgICB7IHR5cGUgPT0gNCAmJiA8QnNYQ2lyY2xlLz4gfVxuICAgICAgICAgICAgeyB0eXBlID09IDUgJiYgPFJpRGVsZXRlQmluMkxpbmUvPiB9XG4gICAgICAgIDwvQmFzZUJ1dHRvbj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uO1xuIiwiLyoqIERldGVybWluZXMgd2hldGhlciBhIGB0aGluZ2AgaXMgYW4gb2JqZWN0IGZvciB0aGUgcHVycG9zZXMgb2YgUkpTRi4gSW4gdGhpcyBjYXNlLCBgdGhpbmdgIGlzIGFuIG9iamVjdCBpZiBpdCBoYXNcbiAqIHRoZSB0eXBlIGBvYmplY3RgIGJ1dCBpcyBOT1QgbnVsbCwgYW4gYXJyYXkgb3IgYSBGaWxlLlxuICpcbiAqIEBwYXJhbSB0aGluZyAtIFRoZSB0aGluZyB0byBjaGVjayB0byBzZWUgd2hldGhlciBpdCBpcyBhbiBvYmplY3RcbiAqIEByZXR1cm5zIC0gVHJ1ZSBpZiBpdCBpcyBhIG5vbi1udWxsLCBub24tYXJyYXksIG5vbi1GaWxlIG9iamVjdFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc09iamVjdCh0aGluZykge1xuICAgIGlmICh0eXBlb2YgdGhpbmcgIT09ICdvYmplY3QnIHx8IHRoaW5nID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gbGFzdE1vZGlmaWVkIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBudW1iZXIgb24gYSBGaWxlIGluc3RhbmNlXG4gICAgLy8gYXMgcGVyIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNkZm4tbGFzdE1vZGlmaWVkXG4gICAgaWYgKHR5cGVvZiB0aGluZy5sYXN0TW9kaWZpZWQgPT09ICdudW1iZXInICYmIHR5cGVvZiBGaWxlICE9PSAndW5kZWZpbmVkJyAmJiB0aGluZyBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBnZXRNb250aCBpcyBndWFyYW50ZWVkIHRvIGJlIGEgbWV0aG9kIG9uIGEgRGF0ZSBpbnN0YW5jZVxuICAgIC8vIGFzIHBlciBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvbnVtYmVycy1hbmQtZGF0ZXMuaHRtbCNzZWMtZGF0ZS5wcm90b3R5cGUuZ2V0bW9udGhcbiAgICBpZiAodHlwZW9mIHRoaW5nLmdldE1vbnRoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBEYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGluZyBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkodGhpbmcpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNPYmplY3QuanMubWFwIiwiaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QnO1xuLyoqIENoZWNrcyB0aGUgc2NoZW1hIHRvIHNlZSBpZiBpdCBpcyBhbGxvd2luZyBhZGRpdGlvbmFsIGl0ZW1zLCBieSB2ZXJpZnlpbmcgdGhhdCBgc2NoZW1hLmFkZGl0aW9uYWxJdGVtc2AgaXMgYW5cbiAqIG9iamVjdC4gVGhlIHVzZXIgaXMgd2FybmVkIGluIHRoZSBjb25zb2xlIGlmIGBzY2hlbWEuYWRkaXRpb25hbEl0ZW1zYCBoYXMgdGhlIHZhbHVlIGB0cnVlYC5cbiAqXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIHNjaGVtYSBvYmplY3QgdG8gY2hlY2tcbiAqIEByZXR1cm5zIC0gVHJ1ZSBpZiBhZGRpdGlvbmFsIGl0ZW1zIGlzIGFsbG93ZWQsIG90aGVyd2lzZSBmYWxzZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhbGxvd0FkZGl0aW9uYWxJdGVtcyhzY2hlbWEpIHtcbiAgICBpZiAoc2NoZW1hLmFkZGl0aW9uYWxJdGVtcyA9PT0gdHJ1ZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2FkZGl0aW9uYWxJdGVtcz10cnVlIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBpc09iamVjdChzY2hlbWEuYWRkaXRpb25hbEl0ZW1zKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsbG93QWRkaXRpb25hbEl0ZW1zLmpzLm1hcCIsIi8qKiBBdHRlbXB0cyB0byBjb252ZXJ0IHRoZSBzdHJpbmcgaW50byBhIG51bWJlci4gSWYgYW4gZW1wdHkgc3RyaW5nIGlzIHByb3ZpZGVkLCB0aGVuIGB1bmRlZmluZWRgIGlzIHJldHVybmVkLiBJZiBhXG4gKiBgbnVsbGAgaXMgcHJvdmlkZWQsIGl0IGlzIHJldHVybmVkLiBJZiB0aGUgc3RyaW5nIGVuZHMgaW4gYSBgLmAgdGhlbiB0aGUgc3RyaW5nIGlzIHJldHVybmVkIGJlY2F1c2UgdGhlIHVzZXIgbWF5IGJlXG4gKiBpbiB0aGUgbWlkZGxlIG9mIHR5cGluZyBhIGZsb2F0IG51bWJlci4gSWYgYSBudW1iZXIgZW5kcyBpbiBhIHBhdHRlcm4gbGlrZSBgLjBgLCBgLjIwYCwgYC4wMzBgLCBzdHJpbmcgaXMgcmV0dXJuZWRcbiAqIGJlY2F1c2UgdGhlIHVzZXIgbWF5IGJlIHR5cGluZyBudW1iZXIgdGhhdCB3aWxsIGVuZCBpbiBhIG5vbi16ZXJvIGRpZ2l0LiBPdGhlcndpc2UsIHRoZSBzdHJpbmcgaXMgd3JhcHBlZCBieVxuICogYE51bWJlcigpYCBhbmQgaWYgdGhhdCByZXN1bHQgaXMgbm90IGBOYU5gLCB0aGF0IG51bWJlciB3aWxsIGJlIHJldHVybmVkLCBvdGhlcndpc2UgdGhlIHN0cmluZyBgdmFsdWVgIHdpbGwgYmUuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyBvciBudWxsIHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBudW1iZXJcbiAqIEByZXR1cm5zIC0gVGhlIGB2YWx1ZWAgY29udmVydGVkIHRvIGEgbnVtYmVyIHdoZW4gYXBwcm9wcmlhdGUsIG90aGVyd2lzZSB0aGUgYHZhbHVlYFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhc051bWJlcih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoL1xcLiQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIC8vICczLicgY2FuJ3QgcmVhbGx5IGJlIGNvbnNpZGVyZWQgYSBudW1iZXIgZXZlbiBpZiBpdCBwYXJzZXMgaW4ganMuIFRoZVxuICAgICAgICAvLyB1c2VyIGlzIG1vc3QgbGlrZWx5IGVudGVyaW5nIGEgZmxvYXQuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9cXC4wJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgLy8gd2UgbmVlZCB0byByZXR1cm4gdGhpcyBhcyBhIHN0cmluZyBoZXJlLCB0byBhbGxvdyBmb3IgaW5wdXQgbGlrZSAzLjA3XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKC9cXC5cXGQqMCQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIC8vIEl0J3MgYSBudW1iZXIsIHRoYXQncyBjb29sIC0gYnV0IHdlIG5lZWQgaXQgYXMgYSBzdHJpbmcgc28gaXQgZG9lc24ndCBzY3Jld1xuICAgICAgICAvLyB3aXRoIHRoZSB1c2VyIHdoZW4gZW50ZXJpbmcgZG9sbGFyIGFtb3VudHMgb3Igb3RoZXIgdmFsdWVzIChzdWNoIGFzIHRob3NlIHdpdGhcbiAgICAgICAgLy8gc3BlY2lmaWMgcHJlY2lzaW9uIG9yIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMpXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgbiA9IE51bWJlcih2YWx1ZSk7XG4gICAgY29uc3QgdmFsaWQgPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTihuKTtcbiAgICByZXR1cm4gdmFsaWQgPyBuIDogdmFsdWU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hc051bWJlci5qcy5tYXAiLCIvKiogQmVsb3cgYXJlIHRoZSBsaXN0IG9mIGFsbCB0aGUga2V5cyBpbnRvIHZhcmlvdXMgZWxlbWVudHMgb2YgYSBSSlNGU2NoZW1hIG9yIFVpU2NoZW1hIHRoYXQgYXJlIHVzZWQgYnkgdGhlIHZhcmlvdXNcbiAqIHV0aWxpdHkgZnVuY3Rpb25zLiBJbiBhZGRpdGlvbiB0byB0aG9zZSBrZXlzLCB0aGVyZSBhcmUgdGhlIHNwZWNpYWwgYEFERElUSU9OQUxfUFJPUEVSVFlfRkxBR2AgYW5kXG4gKiBgUkpTRl9BRERJVElPTkFMX1BST1BFUlRJRVNfRkxBR2AgZmxhZ3MgdGhhdCBpcyBhZGRlZCB0byBhIHNjaGVtYSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgYnkgdGhlIGByZXRyaWV2ZVNjaGVtYSgpYFxuICogdXRpbGl0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFERElUSU9OQUxfUFJPUEVSVFlfRkxBRyA9ICdfX2FkZGl0aW9uYWxfcHJvcGVydHknO1xuZXhwb3J0IGNvbnN0IEFERElUSU9OQUxfUFJPUEVSVElFU19LRVkgPSAnYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuZXhwb3J0IGNvbnN0IEFMTF9PRl9LRVkgPSAnYWxsT2YnO1xuZXhwb3J0IGNvbnN0IEFOWV9PRl9LRVkgPSAnYW55T2YnO1xuZXhwb3J0IGNvbnN0IENPTlNUX0tFWSA9ICdjb25zdCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVkgPSAnZGVmYXVsdCc7XG5leHBvcnQgY29uc3QgREVGSU5JVElPTlNfS0VZID0gJ2RlZmluaXRpb25zJztcbmV4cG9ydCBjb25zdCBERVBFTkRFTkNJRVNfS0VZID0gJ2RlcGVuZGVuY2llcyc7XG5leHBvcnQgY29uc3QgRU5VTV9LRVkgPSAnZW51bSc7XG5leHBvcnQgY29uc3QgRVJST1JTX0tFWSA9ICdfX2Vycm9ycyc7XG5leHBvcnQgY29uc3QgSURfS0VZID0gJyRpZCc7XG5leHBvcnQgY29uc3QgSUZfS0VZID0gJ2lmJztcbmV4cG9ydCBjb25zdCBJVEVNU19LRVkgPSAnaXRlbXMnO1xuZXhwb3J0IGNvbnN0IEpVTktfT1BUSU9OX0lEID0gJ18kanVua19vcHRpb25fc2NoZW1hX2lkJF8nO1xuZXhwb3J0IGNvbnN0IE5BTUVfS0VZID0gJyRuYW1lJztcbmV4cG9ydCBjb25zdCBPTkVfT0ZfS0VZID0gJ29uZU9mJztcbmV4cG9ydCBjb25zdCBQUk9QRVJUSUVTX0tFWSA9ICdwcm9wZXJ0aWVzJztcbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9LRVkgPSAncmVxdWlyZWQnO1xuZXhwb3J0IGNvbnN0IFNVQk1JVF9CVE5fT1BUSU9OU19LRVkgPSAnc3VibWl0QnV0dG9uT3B0aW9ucyc7XG5leHBvcnQgY29uc3QgUkVGX0tFWSA9ICckcmVmJztcbi8qKlxuICogQGRlcHJlY2F0ZWQgUmVwbGFjZSB3aXRoIGNvcnJlY3RseSBzcGVsbGVkIGNvbnN0YW50IGBSSlNGX0FERElUSU9OQUxfUFJPUEVSVElFU19GTEFHYFxuICovXG5leHBvcnQgY29uc3QgUkpTRl9BRERJVE9OQUxfUFJPUEVSVElFU19GTEFHID0gJ19fcmpzZl9hZGRpdGlvbmFsUHJvcGVydGllcyc7XG5leHBvcnQgY29uc3QgUkpTRl9BRERJVElPTkFMX1BST1BFUlRJRVNfRkxBRyA9ICdfX3Jqc2ZfYWRkaXRpb25hbFByb3BlcnRpZXMnO1xuZXhwb3J0IGNvbnN0IFJPT1RfU0NIRU1BX1BSRUZJWCA9ICdfX3Jqc2Zfcm9vdFNjaGVtYSc7XG5leHBvcnQgY29uc3QgVUlfRklFTERfS0VZID0gJ3VpOmZpZWxkJztcbmV4cG9ydCBjb25zdCBVSV9XSURHRVRfS0VZID0gJ3VpOndpZGdldCc7XG5leHBvcnQgY29uc3QgVUlfT1BUSU9OU19LRVkgPSAndWk6b3B0aW9ucyc7XG5leHBvcnQgY29uc3QgVUlfR0xPQkFMX09QVElPTlNfS0VZID0gJ3VpOmdsb2JhbE9wdGlvbnMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCIsImltcG9ydCB7IFVJX09QVElPTlNfS0VZLCBVSV9XSURHRVRfS0VZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QnO1xuLyoqIEdldCBhbGwgcGFzc2VkIG9wdGlvbnMgZnJvbSB1aTpvcHRpb25zLCBhbmQgdWk6PG9wdGlvbk5hbWU+LCByZXR1cm5pbmcgdGhlbSBpbiBhbiBvYmplY3Qgd2l0aCB0aGUgYHVpOmBcbiAqIHN0cmlwcGVkIG9mZi4gQW55IGBnbG9iYWxPcHRpb25zYCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZCwgdW5sZXNzIHRoZXkgYXJlIG92ZXJyaWRkZW4gYnkgb3B0aW9ucyBpbiB0aGUgYHVpU2NoZW1hYC5cbiAqXG4gKiBAcGFyYW0gW3VpU2NoZW1hPXt9XSAtIFRoZSBVSSBTY2hlbWEgZnJvbSB3aGljaCB0byBnZXQgYW55IGB1aTp4eHhgIG9wdGlvbnNcbiAqIEBwYXJhbSBbZ2xvYmFsT3B0aW9ucz17fV0gLSBUaGUgb3B0aW9uYWwgR2xvYmFsIFVJIFNjaGVtYSBmcm9tIHdoaWNoIHRvIGdldCBhbnkgZmFsbGJhY2sgYHh4eGAgb3B0aW9uc1xuICogQHJldHVybnMgLSBBbiBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIGB1aTp4eHhgIG9wdGlvbnMgd2l0aCB0aGUgYHVpOmAgc3RyaXBwZWQgb2ZmIGFsb25nIHdpdGggYWxsIGBnbG9iYWxPcHRpb25zYFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRVaU9wdGlvbnModWlTY2hlbWEgPSB7fSwgZ2xvYmFsT3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHVpU2NoZW1hKVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+IGtleS5pbmRleE9mKCd1aTonKSA9PT0gMClcbiAgICAgICAgLnJlZHVjZSgob3B0aW9ucywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdWlTY2hlbWFba2V5XTtcbiAgICAgICAgaWYgKGtleSA9PT0gVUlfV0lER0VUX0tFWSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NldHRpbmcgb3B0aW9ucyB2aWEgdWk6d2lkZ2V0IG9iamVjdCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLCB1c2UgdWk6b3B0aW9ucyBpbnN0ZWFkJyk7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSBVSV9PUFRJT05TX0tFWSAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLm9wdGlvbnMsIC4uLnZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9ucywgW2tleS5zdWJzdHJpbmcoMyldOiB2YWx1ZSB9O1xuICAgIH0sIHsgLi4uZ2xvYmFsT3B0aW9ucyB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldFVpT3B0aW9ucy5qcy5tYXAiLCJpbXBvcnQgZ2V0VWlPcHRpb25zIGZyb20gJy4vZ2V0VWlPcHRpb25zJztcbi8qKiBDaGVja3Mgd2hldGhlciB0aGUgZmllbGQgZGVzY3JpYmVkIGJ5IGBzY2hlbWFgLCBoYXZpbmcgdGhlIGB1aVNjaGVtYWAgYW5kIGBmb3JtRGF0YWAgc3VwcG9ydHMgZXhwYW5kaW5nLiBUaGUgVUkgZm9yXG4gKiB0aGUgZmllbGQgY2FuIGV4cGFuZCBpZiBpdCBoYXMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCBpcyBub3QgZm9yY2VkIGFzIG5vbi1leHBhbmRhYmxlIGJ5IHRoZSBgdWlTY2hlbWFgIGFuZCB0aGVcbiAqIGBmb3JtRGF0YWAgb2JqZWN0IGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGBzY2hlbWEubWF4UHJvcGVydGllc2AgZWxlbWVudHMuXG4gKlxuICogQHBhcmFtIHNjaGVtYSAtIFRoZSBzY2hlbWEgZm9yIHRoZSBmaWVsZCB0aGF0IGlzIGJlaW5nIGNoZWNrZWRcbiAqIEBwYXJhbSBbdWlTY2hlbWE9e31dIC0gVGhlIHVpU2NoZW1hIGZvciB0aGUgZmllbGRcbiAqIEBwYXJhbSBbZm9ybURhdGFdIC0gVGhlIGZvcm1EYXRhIGZvciB0aGUgZmllbGRcbiAqIEByZXR1cm5zIC0gVHJ1ZSBpZiB0aGUgc2NoZW1hIGVsZW1lbnQgaGFzIGFkZGl0aW9uYWxQcm9wZXJ0aWVzLCBpcyBleHBhbmRhYmxlLCBhbmQgbm90IGF0IHRoZSBtYXhQcm9wZXJ0aWVzIGxpbWl0XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNhbkV4cGFuZChzY2hlbWEsIHVpU2NoZW1hID0ge30sIGZvcm1EYXRhKSB7XG4gICAgaWYgKCFzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IGV4cGFuZGFibGUgPSB0cnVlIH0gPSBnZXRVaU9wdGlvbnModWlTY2hlbWEpO1xuICAgIGlmIChleHBhbmRhYmxlID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZXhwYW5kYWJsZTtcbiAgICB9XG4gICAgLy8gaWYgdWk6b3B0aW9ucy5leHBhbmRhYmxlIHdhcyBub3QgZXhwbGljaXRseSBzZXQgdG8gZmFsc2UsIHdlIGNhbiBhZGRcbiAgICAvLyBhbm90aGVyIHByb3BlcnR5IGlmIHdlIGhhdmUgbm90IGV4Y2VlZGVkIG1heFByb3BlcnRpZXMgeWV0XG4gICAgaWYgKHNjaGVtYS5tYXhQcm9wZXJ0aWVzICE9PSB1bmRlZmluZWQgJiYgZm9ybURhdGEpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcm1EYXRhKS5sZW5ndGggPCBzY2hlbWEubWF4UHJvcGVydGllcztcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYW5FeHBhbmQuanMubWFwIiwiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxubW9kdWxlLmV4cG9ydHMgPSBmcmVlR2xvYmFsO1xuIiwidmFyIGZyZWVHbG9iYWwgPSByZXF1aXJlKCcuL19mcmVlR2xvYmFsJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb290O1xuIiwidmFyIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIFN5bWJvbCA9IHJvb3QuU3ltYm9sO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bWJvbDtcbiIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFJhd1RhZztcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9iamVjdFRvU3RyaW5nO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGdldFJhd1RhZyA9IHJlcXVpcmUoJy4vX2dldFJhd1RhZycpLFxuICAgIG9iamVjdFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fb2JqZWN0VG9TdHJpbmcnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldFRhZztcbiIsIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG92ZXJBcmc7XG4iLCJ2YXIgb3ZlckFyZyA9IHJlcXVpcmUoJy4vX292ZXJBcmcnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0UHJvdG90eXBlO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgZ2V0UHJvdG90eXBlID0gcmVxdWlyZSgnLi9fZ2V0UHJvdG90eXBlJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gaW5mZXIgdGhlIGBPYmplY3RgIGNvbnN0cnVjdG9yLiAqL1xudmFyIG9iamVjdEN0b3JTdHJpbmcgPSBmdW5jVG9TdHJpbmcuY2FsbChPYmplY3QpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGF0IGlzLCBhbiBvYmplY3QgY3JlYXRlZCBieSB0aGVcbiAqIGBPYmplY3RgIGNvbnN0cnVjdG9yIG9yIG9uZSB3aXRoIGEgYFtbUHJvdG90eXBlXV1gIG9mIGBudWxsYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuOC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiB9XG4gKlxuICogXy5pc1BsYWluT2JqZWN0KG5ldyBGb28pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KHsgJ3gnOiAwLCAneSc6IDAgfSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KE9iamVjdC5jcmVhdGUobnVsbCkpO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSB8fCBiYXNlR2V0VGFnKHZhbHVlKSAhPSBvYmplY3RUYWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHByb3RvID0gZ2V0UHJvdG90eXBlKHZhbHVlKTtcbiAgaWYgKHByb3RvID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFyIEN0b3IgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3RvLCAnY29uc3RydWN0b3InKSAmJiBwcm90by5jb25zdHJ1Y3RvcjtcbiAgcmV0dXJuIHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IgJiZcbiAgICBmdW5jVG9TdHJpbmcuY2FsbChDdG9yKSA9PSBvYmplY3RDdG9yU3RyaW5nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzUGxhaW5PYmplY3Q7XG4iLCJpbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICdsb2Rhc2gvaXNQbGFpbk9iamVjdCc7XG5pbXBvcnQgeyBFUlJPUlNfS0VZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqIEdpdmVuIGEgYGZvcm1EYXRhYCBvYmplY3QsIHJlY3Vyc2l2ZWx5IGNyZWF0ZXMgYSBgRm9ybVZhbGlkYXRpb25gIGVycm9yIGhhbmRsaW5nIHN0cnVjdHVyZSBhcm91bmQgaXRcbiAqXG4gKiBAcGFyYW0gZm9ybURhdGEgLSBUaGUgZm9ybSBkYXRhIGFyb3VuZCB3aGljaCB0aGUgZXJyb3IgaGFuZGxlciBpcyBjcmVhdGVkXG4gKiBAcmV0dXJucyAtIEEgYEZvcm1WYWxpZGF0aW9uYCBvYmplY3QgYmFzZWQgb24gdGhlIGBmb3JtRGF0YWAgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUVycm9ySGFuZGxlcihmb3JtRGF0YSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB7XG4gICAgICAgIC8vIFdlIHN0b3JlIHRoZSBsaXN0IG9mIGVycm9ycyBmb3IgdGhpcyBub2RlIGluIGEgcHJvcGVydHkgbmFtZWQgX19lcnJvcnNcbiAgICAgICAgLy8gdG8gYXZvaWQgbmFtZSBjb2xsaXNpb24gd2l0aCBhIHBvc3NpYmxlIHN1YiBzY2hlbWEgZmllbGQgbmFtZWRcbiAgICAgICAgLy8gJ2Vycm9ycycgKHNlZSBgdXRpbHMudG9FcnJvclNjaGVtYWApLlxuICAgICAgICBbRVJST1JTX0tFWV06IFtdLFxuICAgICAgICBhZGRFcnJvcihtZXNzYWdlKSB7XG4gICAgICAgICAgICB0aGlzW0VSUk9SU19LRVldLnB1c2gobWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgfTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtRGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhLnJlZHVjZSgoYWNjLCB2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBjcmVhdGVFcnJvckhhbmRsZXIodmFsdWUpIH07XG4gICAgICAgIH0sIGhhbmRsZXIpO1xuICAgIH1cbiAgICBpZiAoaXNQbGFpbk9iamVjdChmb3JtRGF0YSkpIHtcbiAgICAgICAgY29uc3QgZm9ybU9iamVjdCA9IGZvcm1EYXRhO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybU9iamVjdCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogY3JlYXRlRXJyb3JIYW5kbGVyKGZvcm1PYmplY3Rba2V5XSkgfTtcbiAgICAgICAgfSwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlRXJyb3JIYW5kbGVyLmpzLm1hcCIsIi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbGlzdCBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgY2xlYXJcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBbXTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXN0Q2FjaGVDbGVhcjtcbiIsIi8qKlxuICogUGVyZm9ybXMgYVxuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAqXG4gKiBfLmVxKG9iamVjdCwgb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKCdhJywgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKCdhJywgT2JqZWN0KCdhJykpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKE5hTiwgTmFOKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gZXEodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxO1xuIiwidmFyIGVxID0gcmVxdWlyZSgnLi9lcScpO1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBga2V5YCBpcyBmb3VuZCBpbiBgYXJyYXlgIG9mIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJyYXksIGtleSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzc29jSW5kZXhPZjtcbiIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlO1xuXG4vKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBsaXN0IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVtb3ZlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBlbnRyeSB3YXMgcmVtb3ZlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVEZWxldGUoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyxcbiAgICAgIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtleSk7XG5cbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxO1xuICBpZiAoaW5kZXggPT0gbGFzdEluZGV4KSB7XG4gICAgZGF0YS5wb3AoKTtcbiAgfSBlbHNlIHtcbiAgICBzcGxpY2UuY2FsbChkYXRhLCBpbmRleCwgMSk7XG4gIH1cbiAgLS10aGlzLnNpemU7XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZURlbGV0ZTtcbiIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBsaXN0IGNhY2hlIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgTGlzdENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBlbnRyeSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gbGlzdENhY2hlR2V0KGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIHJldHVybiBpbmRleCA8IDAgPyB1bmRlZmluZWQgOiBkYXRhW2luZGV4XVsxXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXN0Q2FjaGVHZXQ7XG4iLCJ2YXIgYXNzb2NJbmRleE9mID0gcmVxdWlyZSgnLi9fYXNzb2NJbmRleE9mJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbGlzdCBjYWNoZSB2YWx1ZSBmb3IgYGtleWAgZXhpc3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBMaXN0Q2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBhc3NvY0luZGV4T2YodGhpcy5fX2RhdGFfXywga2V5KSA+IC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZUhhcztcbiIsInZhciBhc3NvY0luZGV4T2YgPSByZXF1aXJlKCcuL19hc3NvY0luZGV4T2YnKTtcblxuLyoqXG4gKiBTZXRzIHRoZSBsaXN0IGNhY2hlIGBrZXlgIHRvIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIHNldFxuICogQG1lbWJlck9mIExpc3RDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBsaXN0IGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBsaXN0Q2FjaGVTZXQoa2V5LCB2YWx1ZSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuXG4gIGlmIChpbmRleCA8IDApIHtcbiAgICArK3RoaXMuc2l6ZTtcbiAgICBkYXRhLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgfSBlbHNlIHtcbiAgICBkYXRhW2luZGV4XVsxXSA9IHZhbHVlO1xuICB9XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxpc3RDYWNoZVNldDtcbiIsInZhciBsaXN0Q2FjaGVDbGVhciA9IHJlcXVpcmUoJy4vX2xpc3RDYWNoZUNsZWFyJyksXG4gICAgbGlzdENhY2hlRGVsZXRlID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlRGVsZXRlJyksXG4gICAgbGlzdENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlR2V0JyksXG4gICAgbGlzdENhY2hlSGFzID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlSGFzJyksXG4gICAgbGlzdENhY2hlU2V0ID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlU2V0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBsaXN0IGNhY2hlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTGlzdENhY2hlKGVudHJpZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBlbnRyaWVzID09IG51bGwgPyAwIDogZW50cmllcy5sZW5ndGg7XG5cbiAgdGhpcy5jbGVhcigpO1xuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgIHRoaXMuc2V0KGVudHJ5WzBdLCBlbnRyeVsxXSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYExpc3RDYWNoZWAuXG5MaXN0Q2FjaGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG5MaXN0Q2FjaGUucHJvdG90eXBlWydkZWxldGUnXSA9IGxpc3RDYWNoZURlbGV0ZTtcbkxpc3RDYWNoZS5wcm90b3R5cGUuZ2V0ID0gbGlzdENhY2hlR2V0O1xuTGlzdENhY2hlLnByb3RvdHlwZS5oYXMgPSBsaXN0Q2FjaGVIYXM7XG5MaXN0Q2FjaGUucHJvdG90eXBlLnNldCA9IGxpc3RDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBMaXN0Q2FjaGU7XG4iLCJ2YXIgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgc3RhY2suXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqL1xuZnVuY3Rpb24gc3RhY2tDbGVhcigpIHtcbiAgdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGU7XG4gIHRoaXMuc2l6ZSA9IDA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tDbGVhcjtcbiIsIi8qKlxuICogUmVtb3ZlcyBga2V5YCBhbmQgaXRzIHZhbHVlIGZyb20gdGhlIHN0YWNrLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrRGVsZXRlKGtleSkge1xuICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sXG4gICAgICByZXN1bHQgPSBkYXRhWydkZWxldGUnXShrZXkpO1xuXG4gIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFja0RlbGV0ZTtcbiIsIi8qKlxuICogR2V0cyB0aGUgc3RhY2sgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBTdGFja1xuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrR2V0KGtleSkge1xuICByZXR1cm4gdGhpcy5fX2RhdGFfXy5nZXQoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFja0dldDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGEgc3RhY2sgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBzdGFja0hhcyhrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RhY2tIYXM7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxubW9kdWxlLmV4cG9ydHMgPSBjb3JlSnNEYXRhO1xuIiwidmFyIGNvcmVKc0RhdGEgPSByZXF1aXJlKCcuL19jb3JlSnNEYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNNYXNrZWQ7XG4iLCIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzb3VyY2UgY29kZS5cbiAqL1xuZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9Tb3VyY2U7XG4iLCJ2YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpLFxuICAgIGlzTWFza2VkID0gcmVxdWlyZSgnLi9faXNNYXNrZWQnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICB0b1NvdXJjZSA9IHJlcXVpcmUoJy4vX3RvU291cmNlJyk7XG5cbi8qKlxuICogVXNlZCB0byBtYXRjaCBgUmVnRXhwYFxuICogW3N5bnRheCBjaGFyYWN0ZXJzXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1wYXR0ZXJucykuXG4gKi9cbnZhciByZVJlZ0V4cENoYXIgPSAvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2c7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBob3N0IGNvbnN0cnVjdG9ycyAoU2FmYXJpKS4gKi9cbnZhciByZUlzSG9zdEN0b3IgPSAvXlxcW29iamVjdCAuKz9Db25zdHJ1Y3RvclxcXSQvO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLFxuICAgIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZ1bmNUb1N0cmluZy5jYWxsKGhhc093blByb3BlcnR5KS5yZXBsYWNlKHJlUmVnRXhwQ2hhciwgJ1xcXFwkJicpXG4gIC5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcXFxcKCl8IGZvciAuKz8oPz1cXFxcXFxdKS9nLCAnJDEuKj8nKSArICckJ1xuKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc05hdGl2ZWAgd2l0aG91dCBiYWQgc2hpbSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24sXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNOYXRpdmUodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgaXNNYXNrZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwYXR0ZXJuID0gaXNGdW5jdGlvbih2YWx1ZSkgPyByZUlzTmF0aXZlIDogcmVJc0hvc3RDdG9yO1xuICByZXR1cm4gcGF0dGVybi50ZXN0KHRvU291cmNlKHZhbHVlKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzTmF0aXZlO1xuIiwiLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWUob2JqZWN0LCBrZXkpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0VmFsdWU7XG4iLCJ2YXIgYmFzZUlzTmF0aXZlID0gcmVxdWlyZSgnLi9fYmFzZUlzTmF0aXZlJyksXG4gICAgZ2V0VmFsdWUgPSByZXF1aXJlKCcuL19nZXRWYWx1ZScpO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hdGl2ZSBmdW5jdGlvbiBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE5hdGl2ZTtcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKSxcbiAgICByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgTWFwID0gZ2V0TmF0aXZlKHJvb3QsICdNYXAnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXA7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBuYXRpdmVDcmVhdGUgPSBnZXROYXRpdmUoT2JqZWN0LCAnY3JlYXRlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmF0aXZlQ3JlYXRlO1xuIiwidmFyIG5hdGl2ZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX25hdGl2ZUNyZWF0ZScpO1xuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGtleS12YWx1ZSBlbnRyaWVzIGZyb20gdGhlIGhhc2guXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGNsZWFyXG4gKiBAbWVtYmVyT2YgSGFzaFxuICovXG5mdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XG4gIHRoaXMuX19kYXRhX18gPSBuYXRpdmVDcmVhdGUgPyBuYXRpdmVDcmVhdGUobnVsbCkgOiB7fTtcbiAgdGhpcy5zaXplID0gMDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoQ2xlYXI7XG4iLCIvKipcbiAqIFJlbW92ZXMgYGtleWAgYW5kIGl0cyB2YWx1ZSBmcm9tIHRoZSBoYXNoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBIYXNoXG4gKiBAcGFyYW0ge09iamVjdH0gaGFzaCBUaGUgaGFzaCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJlbW92ZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZW50cnkgd2FzIHJlbW92ZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgdmFyIHJlc3VsdCA9IHRoaXMuaGFzKGtleSkgJiYgZGVsZXRlIHRoaXMuX19kYXRhX19ba2V5XTtcbiAgdGhpcy5zaXplIC09IHJlc3VsdCA/IDEgOiAwO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhhc2hEZWxldGU7XG4iLCJ2YXIgbmF0aXZlQ3JlYXRlID0gcmVxdWlyZSgnLi9fbmF0aXZlQ3JlYXRlJyk7XG5cbi8qKiBVc2VkIHRvIHN0YW5kLWluIGZvciBgdW5kZWZpbmVkYCBoYXNoIHZhbHVlcy4gKi9cbnZhciBIQVNIX1VOREVGSU5FRCA9ICdfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBHZXRzIHRoZSBoYXNoIHZhbHVlIGZvciBga2V5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgZ2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGhhc2hHZXQoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgaWYgKG5hdGl2ZUNyZWF0ZSkge1xuICAgIHZhciByZXN1bHQgPSBkYXRhW2tleV07XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gSEFTSF9VTkRFRklORUQgPyB1bmRlZmluZWQgOiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoZGF0YSwga2V5KSA/IGRhdGFba2V5XSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNoR2V0O1xuIiwidmFyIG5hdGl2ZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX25hdGl2ZUNyZWF0ZScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGhhc2ggdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgaGFzXG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBlbnRyeSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbiBlbnRyeSBmb3IgYGtleWAgZXhpc3RzLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGhhc2hIYXMoa2V5KSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgcmV0dXJuIG5hdGl2ZUNyZWF0ZSA/IChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCkgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzaEhhcztcbiIsInZhciBuYXRpdmVDcmVhdGUgPSByZXF1aXJlKCcuL19uYXRpdmVDcmVhdGUnKTtcblxuLyoqIFVzZWQgdG8gc3RhbmQtaW4gZm9yIGB1bmRlZmluZWRgIGhhc2ggdmFsdWVzLiAqL1xudmFyIEhBU0hfVU5ERUZJTkVEID0gJ19fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18nO1xuXG4vKipcbiAqIFNldHMgdGhlIGhhc2ggYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgSGFzaFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBoYXNoIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBoYXNoU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICB0aGlzLnNpemUgKz0gdGhpcy5oYXMoa2V5KSA/IDAgOiAxO1xuICBkYXRhW2tleV0gPSAobmF0aXZlQ3JlYXRlICYmIHZhbHVlID09PSB1bmRlZmluZWQpID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzaFNldDtcbiIsInZhciBoYXNoQ2xlYXIgPSByZXF1aXJlKCcuL19oYXNoQ2xlYXInKSxcbiAgICBoYXNoRGVsZXRlID0gcmVxdWlyZSgnLi9faGFzaERlbGV0ZScpLFxuICAgIGhhc2hHZXQgPSByZXF1aXJlKCcuL19oYXNoR2V0JyksXG4gICAgaGFzaEhhcyA9IHJlcXVpcmUoJy4vX2hhc2hIYXMnKSxcbiAgICBoYXNoU2V0ID0gcmVxdWlyZSgnLi9faGFzaFNldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBoYXNoIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gSGFzaChlbnRyaWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gZW50cmllcyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuXG4gIHRoaXMuY2xlYXIoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICB9XG59XG5cbi8vIEFkZCBtZXRob2RzIHRvIGBIYXNoYC5cbkhhc2gucHJvdG90eXBlLmNsZWFyID0gaGFzaENsZWFyO1xuSGFzaC5wcm90b3R5cGVbJ2RlbGV0ZSddID0gaGFzaERlbGV0ZTtcbkhhc2gucHJvdG90eXBlLmdldCA9IGhhc2hHZXQ7XG5IYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuSGFzaC5wcm90b3R5cGUuc2V0ID0gaGFzaFNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBIYXNoO1xuIiwidmFyIEhhc2ggPSByZXF1aXJlKCcuL19IYXNoJyksXG4gICAgTGlzdENhY2hlID0gcmVxdWlyZSgnLi9fTGlzdENhY2hlJyksXG4gICAgTWFwID0gcmVxdWlyZSgnLi9fTWFwJyk7XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwga2V5LXZhbHVlIGVudHJpZXMgZnJvbSB0aGUgbWFwLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBjbGVhclxuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlQ2xlYXIoKSB7XG4gIHRoaXMuc2l6ZSA9IDA7XG4gIHRoaXMuX19kYXRhX18gPSB7XG4gICAgJ2hhc2gnOiBuZXcgSGFzaCxcbiAgICAnbWFwJzogbmV3IChNYXAgfHwgTGlzdENhY2hlKSxcbiAgICAnc3RyaW5nJzogbmV3IEhhc2hcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBDYWNoZUNsZWFyO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBzdWl0YWJsZSBmb3IgdXNlIGFzIHVuaXF1ZSBvYmplY3Qga2V5LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzS2V5YWJsZSh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuICh0eXBlID09ICdzdHJpbmcnIHx8IHR5cGUgPT0gJ251bWJlcicgfHwgdHlwZSA9PSAnc3ltYm9sJyB8fCB0eXBlID09ICdib29sZWFuJylcbiAgICA/ICh2YWx1ZSAhPT0gJ19fcHJvdG9fXycpXG4gICAgOiAodmFsdWUgPT09IG51bGwpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzS2V5YWJsZTtcbiIsInZhciBpc0tleWFibGUgPSByZXF1aXJlKCcuL19pc0tleWFibGUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBkYXRhIGZvciBgbWFwYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG1hcCBUaGUgbWFwIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUgcmVmZXJlbmNlIGtleS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXAgZGF0YS5cbiAqL1xuZnVuY3Rpb24gZ2V0TWFwRGF0YShtYXAsIGtleSkge1xuICB2YXIgZGF0YSA9IG1hcC5fX2RhdGFfXztcbiAgcmV0dXJuIGlzS2V5YWJsZShrZXkpXG4gICAgPyBkYXRhW3R5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyAnc3RyaW5nJyA6ICdoYXNoJ11cbiAgICA6IGRhdGEubWFwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE1hcERhdGE7XG4iLCJ2YXIgZ2V0TWFwRGF0YSA9IHJlcXVpcmUoJy4vX2dldE1hcERhdGEnKTtcblxuLyoqXG4gKiBSZW1vdmVzIGBrZXlgIGFuZCBpdHMgdmFsdWUgZnJvbSB0aGUgbWFwLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBkZWxldGVcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZW1vdmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGVudHJ5IHdhcyByZW1vdmVkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlRGVsZXRlKGtleSkge1xuICB2YXIgcmVzdWx0ID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpWydkZWxldGUnXShrZXkpO1xuICB0aGlzLnNpemUgLT0gcmVzdWx0ID8gMSA6IDA7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVEZWxldGU7XG4iLCJ2YXIgZ2V0TWFwRGF0YSA9IHJlcXVpcmUoJy4vX2dldE1hcERhdGEnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBtYXAgdmFsdWUgZm9yIGBrZXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBnZXRcbiAqIEBtZW1iZXJPZiBNYXBDYWNoZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZW50cnkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIG1hcENhY2hlR2V0KGtleSkge1xuICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmdldChrZXkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcENhY2hlR2V0O1xuIiwidmFyIGdldE1hcERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXBEYXRhJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbWFwIHZhbHVlIGZvciBga2V5YCBleGlzdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBuYW1lIGhhc1xuICogQG1lbWJlck9mIE1hcENhY2hlXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIGVudHJ5IHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGFuIGVudHJ5IGZvciBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gbWFwQ2FjaGVIYXMoa2V5KSB7XG4gIHJldHVybiBnZXRNYXBEYXRhKHRoaXMsIGtleSkuaGFzKGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQ2FjaGVIYXM7XG4iLCJ2YXIgZ2V0TWFwRGF0YSA9IHJlcXVpcmUoJy4vX2dldE1hcERhdGEnKTtcblxuLyoqXG4gKiBTZXRzIHRoZSBtYXAgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgTWFwQ2FjaGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbWFwIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBtYXBDYWNoZVNldChrZXksIHZhbHVlKSB7XG4gIHZhciBkYXRhID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLFxuICAgICAgc2l6ZSA9IGRhdGEuc2l6ZTtcblxuICBkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgdGhpcy5zaXplICs9IGRhdGEuc2l6ZSA9PSBzaXplID8gMCA6IDE7XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcENhY2hlU2V0O1xuIiwidmFyIG1hcENhY2hlQ2xlYXIgPSByZXF1aXJlKCcuL19tYXBDYWNoZUNsZWFyJyksXG4gICAgbWFwQ2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19tYXBDYWNoZURlbGV0ZScpLFxuICAgIG1hcENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbWFwQ2FjaGVHZXQnKSxcbiAgICBtYXBDYWNoZUhhcyA9IHJlcXVpcmUoJy4vX21hcENhY2hlSGFzJyksXG4gICAgbWFwQ2FjaGVTZXQgPSByZXF1aXJlKCcuL19tYXBDYWNoZVNldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXAgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTWFwQ2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2FjaGVDbGVhcjtcbk1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbk1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbk1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBDYWNoZUhhcztcbk1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXBDYWNoZTtcbiIsInZhciBMaXN0Q2FjaGUgPSByZXF1aXJlKCcuL19MaXN0Q2FjaGUnKSxcbiAgICBNYXAgPSByZXF1aXJlKCcuL19NYXAnKSxcbiAgICBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBzaXplIHRvIGVuYWJsZSBsYXJnZSBhcnJheSBvcHRpbWl6YXRpb25zLiAqL1xudmFyIExBUkdFX0FSUkFZX1NJWkUgPSAyMDA7XG5cbi8qKlxuICogU2V0cyB0aGUgc3RhY2sgYGtleWAgdG8gYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgc2V0XG4gKiBAbWVtYmVyT2YgU3RhY2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gc2V0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgc3RhY2sgY2FjaGUgaW5zdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIHN0YWNrU2V0KGtleSwgdmFsdWUpIHtcbiAgdmFyIGRhdGEgPSB0aGlzLl9fZGF0YV9fO1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIExpc3RDYWNoZSkge1xuICAgIHZhciBwYWlycyA9IGRhdGEuX19kYXRhX187XG4gICAgaWYgKCFNYXAgfHwgKHBhaXJzLmxlbmd0aCA8IExBUkdFX0FSUkFZX1NJWkUgLSAxKSkge1xuICAgICAgcGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgdGhpcy5zaXplID0gKytkYXRhLnNpemU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZGF0YSA9IHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGUocGFpcnMpO1xuICB9XG4gIGRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICB0aGlzLnNpemUgPSBkYXRhLnNpemU7XG4gIHJldHVybiB0aGlzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0YWNrU2V0O1xuIiwidmFyIExpc3RDYWNoZSA9IHJlcXVpcmUoJy4vX0xpc3RDYWNoZScpLFxuICAgIHN0YWNrQ2xlYXIgPSByZXF1aXJlKCcuL19zdGFja0NsZWFyJyksXG4gICAgc3RhY2tEZWxldGUgPSByZXF1aXJlKCcuL19zdGFja0RlbGV0ZScpLFxuICAgIHN0YWNrR2V0ID0gcmVxdWlyZSgnLi9fc3RhY2tHZXQnKSxcbiAgICBzdGFja0hhcyA9IHJlcXVpcmUoJy4vX3N0YWNrSGFzJyksXG4gICAgc3RhY2tTZXQgPSByZXF1aXJlKCcuL19zdGFja1NldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGFjayBjYWNoZSBvYmplY3QgdG8gc3RvcmUga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBTdGFjayhlbnRyaWVzKSB7XG4gIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXyA9IG5ldyBMaXN0Q2FjaGUoZW50cmllcyk7XG4gIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZTtcbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYFN0YWNrYC5cblN0YWNrLnByb3RvdHlwZS5jbGVhciA9IHN0YWNrQ2xlYXI7XG5TdGFjay5wcm90b3R5cGVbJ2RlbGV0ZSddID0gc3RhY2tEZWxldGU7XG5TdGFjay5wcm90b3R5cGUuZ2V0ID0gc3RhY2tHZXQ7XG5TdGFjay5wcm90b3R5cGUuaGFzID0gc3RhY2tIYXM7XG5TdGFjay5wcm90b3R5cGUuc2V0ID0gc3RhY2tTZXQ7XG5cbm1vZHVsZS5leHBvcnRzID0gU3RhY2s7XG4iLCIvKiogVXNlZCB0byBzdGFuZC1pbiBmb3IgYHVuZGVmaW5lZGAgaGFzaCB2YWx1ZXMuICovXG52YXIgSEFTSF9VTkRFRklORUQgPSAnX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyc7XG5cbi8qKlxuICogQWRkcyBgdmFsdWVgIHRvIHRoZSBhcnJheSBjYWNoZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQG5hbWUgYWRkXG4gKiBAbWVtYmVyT2YgU2V0Q2FjaGVcbiAqIEBhbGlhcyBwdXNoXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjYWNoZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNhY2hlIGluc3RhbmNlLlxuICovXG5mdW5jdGlvbiBzZXRDYWNoZUFkZCh2YWx1ZSkge1xuICB0aGlzLl9fZGF0YV9fLnNldCh2YWx1ZSwgSEFTSF9VTkRFRklORUQpO1xuICByZXR1cm4gdGhpcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRDYWNoZUFkZDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gdGhlIGFycmF5IGNhY2hlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAbmFtZSBoYXNcbiAqIEBtZW1iZXJPZiBTZXRDYWNoZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gc2V0Q2FjaGVIYXModmFsdWUpIHtcbiAgcmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRDYWNoZUhhcztcbiIsInZhciBNYXBDYWNoZSA9IHJlcXVpcmUoJy4vX01hcENhY2hlJyksXG4gICAgc2V0Q2FjaGVBZGQgPSByZXF1aXJlKCcuL19zZXRDYWNoZUFkZCcpLFxuICAgIHNldENhY2hlSGFzID0gcmVxdWlyZSgnLi9fc2V0Q2FjaGVIYXMnKTtcblxuLyoqXG4gKlxuICogQ3JlYXRlcyBhbiBhcnJheSBjYWNoZSBvYmplY3QgdG8gc3RvcmUgdW5pcXVlIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbdmFsdWVzXSBUaGUgdmFsdWVzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBTZXRDYWNoZSh2YWx1ZXMpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMgPT0gbnVsbCA/IDAgOiB2YWx1ZXMubGVuZ3RoO1xuXG4gIHRoaXMuX19kYXRhX18gPSBuZXcgTWFwQ2FjaGU7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdGhpcy5hZGQodmFsdWVzW2luZGV4XSk7XG4gIH1cbn1cblxuLy8gQWRkIG1ldGhvZHMgdG8gYFNldENhY2hlYC5cblNldENhY2hlLnByb3RvdHlwZS5hZGQgPSBTZXRDYWNoZS5wcm90b3R5cGUucHVzaCA9IHNldENhY2hlQWRkO1xuU2V0Q2FjaGUucHJvdG90eXBlLmhhcyA9IHNldENhY2hlSGFzO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNldENhY2hlO1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uc29tZWAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgZWxlbWVudCBwYXNzZXMgdGhlIHByZWRpY2F0ZSBjaGVjayxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5U29tZShhcnJheSwgcHJlZGljYXRlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZiAocHJlZGljYXRlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcnJheVNvbWU7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBhIGBjYWNoZWAgdmFsdWUgZm9yIGBrZXlgIGV4aXN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGNhY2hlIFRoZSBjYWNoZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgZW50cnkgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW4gZW50cnkgZm9yIGBrZXlgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBjYWNoZUhhcyhjYWNoZSwga2V5KSB7XG4gIHJldHVybiBjYWNoZS5oYXMoa2V5KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYWNoZUhhcztcbiIsInZhciBTZXRDYWNoZSA9IHJlcXVpcmUoJy4vX1NldENhY2hlJyksXG4gICAgYXJyYXlTb21lID0gcmVxdWlyZSgnLi9fYXJyYXlTb21lJyksXG4gICAgY2FjaGVIYXMgPSByZXF1aXJlKCcuL19jYWNoZUhhcycpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgYXJyYXlgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRyxcbiAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcblxuICBpZiAoYXJyTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhKGlzUGFydGlhbCAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIENoZWNrIHRoYXQgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXG4gIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICBpZiAoYXJyU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgfVxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IHRydWUsXG4gICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcblxuICBzdGFjay5zZXQoYXJyYXksIG90aGVyKTtcbiAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG5cbiAgLy8gSWdub3JlIG5vbi1pbmRleCBwcm9wZXJ0aWVzLlxuICB3aGlsZSAoKytpbmRleCA8IGFyckxlbmd0aCkge1xuICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsXG4gICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxuICAgICAgICA6IGN1c3RvbWl6ZXIoYXJyVmFsdWUsIG90aFZhbHVlLCBpbmRleCwgYXJyYXksIG90aGVyLCBzdGFjayk7XG4gICAgfVxuICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY29tcGFyZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIGlmIChzZWVuKSB7XG4gICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XG4gICAgICAgICAgICBpZiAoIWNhY2hlSGFzKHNlZW4sIG90aEluZGV4KSAmJlxuICAgICAgICAgICAgICAgIChhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSkge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghKFxuICAgICAgICAgIGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fFxuICAgICAgICAgICAgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICkpIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHN0YWNrWydkZWxldGUnXShhcnJheSk7XG4gIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxBcnJheXM7XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgVWludDhBcnJheSA9IHJvb3QuVWludDhBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBVaW50OEFycmF5O1xuIiwiLyoqXG4gKiBDb252ZXJ0cyBgbWFwYCB0byBpdHMga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUga2V5LXZhbHVlIHBhaXJzLlxuICovXG5mdW5jdGlvbiBtYXBUb0FycmF5KG1hcCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG1hcC5zaXplKTtcblxuICBtYXAuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwga2V5KSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gW2tleSwgdmFsdWVdO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBUb0FycmF5O1xuIiwiLyoqXG4gKiBDb252ZXJ0cyBgc2V0YCB0byBhbiBhcnJheSBvZiBpdHMgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc2V0IFRoZSBzZXQgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBzZXRUb0FycmF5KHNldCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KHNldC5zaXplKTtcblxuICBzZXQuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJlc3VsdFsrK2luZGV4XSA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRUb0FycmF5O1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIFVpbnQ4QXJyYXkgPSByZXF1aXJlKCcuL19VaW50OEFycmF5JyksXG4gICAgZXEgPSByZXF1aXJlKCcuL2VxJyksXG4gICAgZXF1YWxBcnJheXMgPSByZXF1aXJlKCcuL19lcXVhbEFycmF5cycpLFxuICAgIG1hcFRvQXJyYXkgPSByZXF1aXJlKCcuL19tYXBUb0FycmF5JyksXG4gICAgc2V0VG9BcnJheSA9IHJlcXVpcmUoJy4vX3NldFRvQXJyYXknKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxuICAgIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPSAyO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XSc7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xWYWx1ZU9mID0gc3ltYm9sUHJvdG8gPyBzeW1ib2xQcm90by52YWx1ZU9mIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3IgY29tcGFyaW5nIG9iamVjdHMgb2ZcbiAqIHRoZSBzYW1lIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjb21wYXJpbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdHMgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICogQHBhcmFtIHtPYmplY3R9IHN0YWNrIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIHRhZywgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgZGF0YVZpZXdUYWc6XG4gICAgICBpZiAoKG9iamVjdC5ieXRlTGVuZ3RoICE9IG90aGVyLmJ5dGVMZW5ndGgpIHx8XG4gICAgICAgICAgKG9iamVjdC5ieXRlT2Zmc2V0ICE9IG90aGVyLmJ5dGVPZmZzZXQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IG9iamVjdC5idWZmZXI7XG4gICAgICBvdGhlciA9IG90aGVyLmJ1ZmZlcjtcblxuICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICBpZiAoKG9iamVjdC5ieXRlTGVuZ3RoICE9IG90aGVyLmJ5dGVMZW5ndGgpIHx8XG4gICAgICAgICAgIWVxdWFsRnVuYyhuZXcgVWludDhBcnJheShvYmplY3QpLCBuZXcgVWludDhBcnJheShvdGhlcikpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgIC8vIENvZXJjZSBib29sZWFucyB0byBgMWAgb3IgYDBgIGFuZCBkYXRlcyB0byBtaWxsaXNlY29uZHMuXG4gICAgICAvLyBJbnZhbGlkIGRhdGVzIGFyZSBjb2VyY2VkIHRvIGBOYU5gLlxuICAgICAgcmV0dXJuIGVxKCtvYmplY3QsICtvdGhlcik7XG5cbiAgICBjYXNlIGVycm9yVGFnOlxuICAgICAgcmV0dXJuIG9iamVjdC5uYW1lID09IG90aGVyLm5hbWUgJiYgb2JqZWN0Lm1lc3NhZ2UgPT0gb3RoZXIubWVzc2FnZTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncywgcHJpbWl0aXZlcyBhbmQgb2JqZWN0cyxcbiAgICAgIC8vIGFzIGVxdWFsLiBTZWUgaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXJlZ2V4cC5wcm90b3R5cGUudG9zdHJpbmdcbiAgICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICByZXR1cm4gb2JqZWN0ID09IChvdGhlciArICcnKTtcblxuICAgIGNhc2UgbWFwVGFnOlxuICAgICAgdmFyIGNvbnZlcnQgPSBtYXBUb0FycmF5O1xuXG4gICAgY2FzZSBzZXRUYWc6XG4gICAgICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHO1xuICAgICAgY29udmVydCB8fCAoY29udmVydCA9IHNldFRvQXJyYXkpO1xuXG4gICAgICBpZiAob2JqZWN0LnNpemUgIT0gb3RoZXIuc2l6ZSAmJiAhaXNQYXJ0aWFsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgICAgIHZhciBzdGFja2VkID0gc3RhY2suZ2V0KG9iamVjdCk7XG4gICAgICBpZiAoc3RhY2tlZCkge1xuICAgICAgICByZXR1cm4gc3RhY2tlZCA9PSBvdGhlcjtcbiAgICAgIH1cbiAgICAgIGJpdG1hc2sgfD0gQ09NUEFSRV9VTk9SREVSRURfRkxBRztcblxuICAgICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgICBzdGFjay5zZXQob2JqZWN0LCBvdGhlcik7XG4gICAgICB2YXIgcmVzdWx0ID0gZXF1YWxBcnJheXMoY29udmVydChvYmplY3QpLCBjb252ZXJ0KG90aGVyKSwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjayk7XG4gICAgICBzdGFja1snZGVsZXRlJ10ob2JqZWN0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG5cbiAgICBjYXNlIHN5bWJvbFRhZzpcbiAgICAgIGlmIChzeW1ib2xWYWx1ZU9mKSB7XG4gICAgICAgIHJldHVybiBzeW1ib2xWYWx1ZU9mLmNhbGwob2JqZWN0KSA9PSBzeW1ib2xWYWx1ZU9mLmNhbGwob3RoZXIpO1xuICAgICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbEJ5VGFnO1xuIiwiLyoqXG4gKiBBcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBgdmFsdWVzYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheX0gdmFsdWVzIFRoZSB2YWx1ZXMgdG8gYXBwZW5kLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5UHVzaChhcnJheSwgdmFsdWVzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aCxcbiAgICAgIG9mZnNldCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5UHVzaDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheSgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXk7XG4iLCJ2YXIgYXJyYXlQdXNoID0gcmVxdWlyZSgnLi9fYXJyYXlQdXNoJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRBbGxLZXlzYCBhbmQgYGdldEFsbEtleXNJbmAgd2hpY2ggdXNlc1xuICogYGtleXNGdW5jYCBhbmQgYHN5bWJvbHNGdW5jYCB0byBnZXQgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgYW5kXG4gKiBzeW1ib2xzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3ltYm9sc0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRBbGxLZXlzKG9iamVjdCwga2V5c0Z1bmMsIHN5bWJvbHNGdW5jKSB7XG4gIHZhciByZXN1bHQgPSBrZXlzRnVuYyhvYmplY3QpO1xuICByZXR1cm4gaXNBcnJheShvYmplY3QpID8gcmVzdWx0IDogYXJyYXlQdXNoKHJlc3VsdCwgc3ltYm9sc0Z1bmMob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldEFsbEtleXM7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5maWx0ZXJgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvclxuICogaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmaWx0ZXJlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlGaWx0ZXIoYXJyYXksIHByZWRpY2F0ZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzSW5kZXggPSAwLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBhcnJheVtpbmRleF07XG4gICAgaWYgKHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgsIGFycmF5KSkge1xuICAgICAgcmVzdWx0W3Jlc0luZGV4KytdID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlGaWx0ZXI7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBuZXcgZW1wdHkgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEzLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBlbXB0eSBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIGFycmF5cyA9IF8udGltZXMoMiwgXy5zdHViQXJyYXkpO1xuICpcbiAqIGNvbnNvbGUubG9nKGFycmF5cyk7XG4gKiAvLyA9PiBbW10sIFtdXVxuICpcbiAqIGNvbnNvbGUubG9nKGFycmF5c1swXSA9PT0gYXJyYXlzWzFdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIHN0dWJBcnJheSgpIHtcbiAgcmV0dXJuIFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0dWJBcnJheTtcbiIsInZhciBhcnJheUZpbHRlciA9IHJlcXVpcmUoJy4vX2FycmF5RmlsdGVyJyksXG4gICAgc3R1YkFycmF5ID0gcmVxdWlyZSgnLi9zdHViQXJyYXknKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUdldFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2Ygc3ltYm9scy5cbiAqL1xudmFyIGdldFN5bWJvbHMgPSAhbmF0aXZlR2V0U3ltYm9scyA/IHN0dWJBcnJheSA6IGZ1bmN0aW9uKG9iamVjdCkge1xuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gIHJldHVybiBhcnJheUZpbHRlcihuYXRpdmVHZXRTeW1ib2xzKG9iamVjdCksIGZ1bmN0aW9uKHN5bWJvbCkge1xuICAgIHJldHVybiBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG9iamVjdCwgc3ltYm9sKTtcbiAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFN5bWJvbHM7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRpbWVzYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHNcbiAqIG9yIG1heCBhcnJheSBsZW5ndGggY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIGludm9rZSBgaXRlcmF0ZWVgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRpbWVzKG4sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobik7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGluZGV4KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VUaW1lcztcbiIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXSc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcmd1bWVudHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqL1xuZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGFyZ3NUYWc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzQXJndW1lbnRzO1xuIiwidmFyIGJhc2VJc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vX2Jhc2VJc0FyZ3VtZW50cycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJndW1lbnRzO1xuIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjEzLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRpbWVzKDIsIF8uc3R1YkZhbHNlKTtcbiAqIC8vID0+IFtmYWxzZSwgZmFsc2VdXG4gKi9cbmZ1bmN0aW9uIHN0dWJGYWxzZSgpIHtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0dWJGYWxzZTtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpLFxuICAgIHN0dWJGYWxzZSA9IHJlcXVpcmUoJy4vc3R1YkZhbHNlJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZmZlcjtcbiIsIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuICovXG52YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGluZGV4LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuXG4gIHJldHVybiAhIWxlbmd0aCAmJlxuICAgICh0eXBlID09ICdudW1iZXInIHx8XG4gICAgICAodHlwZSAhPSAnc3ltYm9sJyAmJiByZUlzVWludC50ZXN0KHZhbHVlKSkpICYmXG4gICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0luZGV4O1xuIiwiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzTGVuZ3RoKDMpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNMZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoSW5maW5pdHkpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKCczJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTGVuZ3RoO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xudmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG50eXBlZEFycmF5VGFnc1tmbG9hdDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Zsb2F0NjRUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQ4VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50OENsYW1wZWRUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbnR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID1cbnR5cGVkQXJyYXlUYWdzW2FycmF5QnVmZmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Jvb2xUYWddID1cbnR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbnR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID1cbnR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPSB0eXBlZEFycmF5VGFnc1tudW1iZXJUYWddID1cbnR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbnR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPSB0eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID1cbnR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNUeXBlZEFycmF5YCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcbiAgICBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc1R5cGVkQXJyYXk7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVVuYXJ5O1xuIiwidmFyIGZyZWVHbG9iYWwgPSByZXF1aXJlKCcuL19mcmVlR2xvYmFsJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbm9kZVV0aWw7XG4iLCJ2YXIgYmFzZUlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vX2Jhc2VJc1R5cGVkQXJyYXknKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBub2RlVXRpbCA9IHJlcXVpcmUoJy4vX25vZGVVdGlsJyk7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVHlwZWRBcnJheTtcbiIsInZhciBiYXNlVGltZXMgPSByZXF1aXJlKCcuL19iYXNlVGltZXMnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4vaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNCdWZmZXIgPSByZXF1aXJlKCcuL2lzQnVmZmVyJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuL2lzVHlwZWRBcnJheScpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksXG4gICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgKFxuICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAvLyBOb2RlLmpzIDAuMTAgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gYnVmZmVycy5cbiAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgKGlzVHlwZSAmJiAoa2V5ID09ICdidWZmZXInIHx8IGtleSA9PSAnYnl0ZUxlbmd0aCcgfHwga2V5ID09ICdieXRlT2Zmc2V0JykpIHx8XG4gICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlMaWtlS2V5cztcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1Byb3RvdHlwZTtcbiIsInZhciBvdmVyQXJnID0gcmVxdWlyZSgnLi9fb3ZlckFyZycpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0LmtleXMsIE9iamVjdCk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmF0aXZlS2V5cztcbiIsInZhciBpc1Byb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2lzUHJvdG90eXBlJyksXG4gICAgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4vX25hdGl2ZUtleXMnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzKG9iamVjdCkge1xuICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5cyhvYmplY3QpO1xuICB9XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGtleSAhPSAnY29uc3RydWN0b3InKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VLZXlzO1xuIiwidmFyIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheUxpa2U7XG4iLCJ2YXIgYXJyYXlMaWtlS2V5cyA9IHJlcXVpcmUoJy4vX2FycmF5TGlrZUtleXMnKSxcbiAgICBiYXNlS2V5cyA9IHJlcXVpcmUoJy4vX2Jhc2VLZXlzJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAqIFtFUyBzcGVjXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy5rZXlzKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIF8ua2V5cygnaGknKTtcbiAqIC8vID0+IFsnMCcsICcxJ11cbiAqL1xuZnVuY3Rpb24ga2V5cyhvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGtleXM7XG4iLCJ2YXIgYmFzZUdldEFsbEtleXMgPSByZXF1aXJlKCcuL19iYXNlR2V0QWxsS2V5cycpLFxuICAgIGdldFN5bWJvbHMgPSByZXF1aXJlKCcuL19nZXRTeW1ib2xzJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4va2V5cycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgYW5kIHN5bWJvbHMuXG4gKi9cbmZ1bmN0aW9uIGdldEFsbEtleXMob2JqZWN0KSB7XG4gIHJldHVybiBiYXNlR2V0QWxsS2V5cyhvYmplY3QsIGtleXMsIGdldFN5bWJvbHMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEFsbEtleXM7XG4iLCJ2YXIgZ2V0QWxsS2V5cyA9IHJlcXVpcmUoJy4vX2dldEFsbEtleXMnKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUlzRXF1YWxEZWVwYCBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtPYmplY3R9IG90aGVyIFRoZSBvdGhlciBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLiBTZWUgYGJhc2VJc0VxdWFsYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXF1YWxGdW5jIFRoZSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgZXF1aXZhbGVudHMgb2YgdmFsdWVzLlxuICogQHBhcmFtIHtPYmplY3R9IHN0YWNrIFRyYWNrcyB0cmF2ZXJzZWQgYG9iamVjdGAgYW5kIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbE9iamVjdHMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaykge1xuICB2YXIgaXNQYXJ0aWFsID0gYml0bWFzayAmIENPTVBBUkVfUEFSVElBTF9GTEFHLFxuICAgICAgb2JqUHJvcHMgPSBnZXRBbGxLZXlzKG9iamVjdCksXG4gICAgICBvYmpMZW5ndGggPSBvYmpQcm9wcy5sZW5ndGgsXG4gICAgICBvdGhQcm9wcyA9IGdldEFsbEtleXMob3RoZXIpLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoUHJvcHMubGVuZ3RoO1xuXG4gIGlmIChvYmpMZW5ndGggIT0gb3RoTGVuZ3RoICYmICFpc1BhcnRpYWwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGluZGV4ID0gb2JqTGVuZ3RoO1xuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgaWYgKCEoaXNQYXJ0aWFsID8ga2V5IGluIG90aGVyIDogaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwga2V5KSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgdGhhdCBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgdmFyIG9ialN0YWNrZWQgPSBzdGFjay5nZXQob2JqZWN0KTtcbiAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICBpZiAob2JqU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgcmV0dXJuIG9ialN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBvYmplY3Q7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IHRydWU7XG4gIHN0YWNrLnNldChvYmplY3QsIG90aGVyKTtcbiAgc3RhY2suc2V0KG90aGVyLCBvYmplY3QpO1xuXG4gIHZhciBza2lwQ3RvciA9IGlzUGFydGlhbDtcbiAgd2hpbGUgKCsraW5kZXggPCBvYmpMZW5ndGgpIHtcbiAgICBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV0sXG4gICAgICAgIG90aFZhbHVlID0gb3RoZXJba2V5XTtcblxuICAgIGlmIChjdXN0b21pemVyKSB7XG4gICAgICB2YXIgY29tcGFyZWQgPSBpc1BhcnRpYWxcbiAgICAgICAgPyBjdXN0b21pemVyKG90aFZhbHVlLCBvYmpWYWx1ZSwga2V5LCBvdGhlciwgb2JqZWN0LCBzdGFjaylcbiAgICAgICAgOiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSwga2V5LCBvYmplY3QsIG90aGVyLCBzdGFjayk7XG4gICAgfVxuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbXBhcmUgb2JqZWN0cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIGlmICghKGNvbXBhcmVkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IChvYmpWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKG9ialZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKVxuICAgICAgICAgIDogY29tcGFyZWRcbiAgICAgICAgKSkge1xuICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2tpcEN0b3IgfHwgKHNraXBDdG9yID0ga2V5ID09ICdjb25zdHJ1Y3RvcicpO1xuICB9XG4gIGlmIChyZXN1bHQgJiYgIXNraXBDdG9yKSB7XG4gICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgIC8vIE5vbiBgT2JqZWN0YCBvYmplY3QgaW5zdGFuY2VzIHdpdGggZGlmZmVyZW50IGNvbnN0cnVjdG9ycyBhcmUgbm90IGVxdWFsLlxuICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICEodHlwZW9mIG9iakN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvYmpDdG9yIGluc3RhbmNlb2Ygb2JqQ3RvciAmJlxuICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgc3RhY2tbJ2RlbGV0ZSddKG9iamVjdCk7XG4gIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxPYmplY3RzO1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBEYXRhVmlldyA9IGdldE5hdGl2ZShyb290LCAnRGF0YVZpZXcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBEYXRhVmlldztcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKSxcbiAgICByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgUHJvbWlzZSA9IGdldE5hdGl2ZShyb290LCAnUHJvbWlzZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFByb21pc2U7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyksXG4gICAgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIFNldCA9IGdldE5hdGl2ZShyb290LCAnU2V0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gU2V0O1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4vX2dldE5hdGl2ZScpLFxuICAgIHJvb3QgPSByZXF1aXJlKCcuL19yb290Jyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBXZWFrTWFwID0gZ2V0TmF0aXZlKHJvb3QsICdXZWFrTWFwJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gV2Vha01hcDtcbiIsInZhciBEYXRhVmlldyA9IHJlcXVpcmUoJy4vX0RhdGFWaWV3JyksXG4gICAgTWFwID0gcmVxdWlyZSgnLi9fTWFwJyksXG4gICAgUHJvbWlzZSA9IHJlcXVpcmUoJy4vX1Byb21pc2UnKSxcbiAgICBTZXQgPSByZXF1aXJlKCcuL19TZXQnKSxcbiAgICBXZWFrTWFwID0gcmVxdWlyZSgnLi9fV2Vha01hcCcpLFxuICAgIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgdG9Tb3VyY2UgPSByZXF1aXJlKCcuL190b1NvdXJjZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcHJvbWlzZVRhZyA9ICdbb2JqZWN0IFByb21pc2VdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgbWFwcywgc2V0cywgYW5kIHdlYWttYXBzLiAqL1xudmFyIGRhdGFWaWV3Q3RvclN0cmluZyA9IHRvU291cmNlKERhdGFWaWV3KSxcbiAgICBtYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoTWFwKSxcbiAgICBwcm9taXNlQ3RvclN0cmluZyA9IHRvU291cmNlKFByb21pc2UpLFxuICAgIHNldEN0b3JTdHJpbmcgPSB0b1NvdXJjZShTZXQpLFxuICAgIHdlYWtNYXBDdG9yU3RyaW5nID0gdG9Tb3VyY2UoV2Vha01hcCk7XG5cbi8qKlxuICogR2V0cyB0aGUgYHRvU3RyaW5nVGFnYCBvZiBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbnZhciBnZXRUYWcgPSBiYXNlR2V0VGFnO1xuXG4vLyBGYWxsYmFjayBmb3IgZGF0YSB2aWV3cywgbWFwcywgc2V0cywgYW5kIHdlYWsgbWFwcyBpbiBJRSAxMSBhbmQgcHJvbWlzZXMgaW4gTm9kZS5qcyA8IDYuXG5pZiAoKERhdGFWaWV3ICYmIGdldFRhZyhuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpKSkgIT0gZGF0YVZpZXdUYWcpIHx8XG4gICAgKE1hcCAmJiBnZXRUYWcobmV3IE1hcCkgIT0gbWFwVGFnKSB8fFxuICAgIChQcm9taXNlICYmIGdldFRhZyhQcm9taXNlLnJlc29sdmUoKSkgIT0gcHJvbWlzZVRhZykgfHxcbiAgICAoU2V0ICYmIGdldFRhZyhuZXcgU2V0KSAhPSBzZXRUYWcpIHx8XG4gICAgKFdlYWtNYXAgJiYgZ2V0VGFnKG5ldyBXZWFrTWFwKSAhPSB3ZWFrTWFwVGFnKSkge1xuICBnZXRUYWcgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSBiYXNlR2V0VGFnKHZhbHVlKSxcbiAgICAgICAgQ3RvciA9IHJlc3VsdCA9PSBvYmplY3RUYWcgPyB2YWx1ZS5jb25zdHJ1Y3RvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3RvclN0cmluZyA9IEN0b3IgPyB0b1NvdXJjZShDdG9yKSA6ICcnO1xuXG4gICAgaWYgKGN0b3JTdHJpbmcpIHtcbiAgICAgIHN3aXRjaCAoY3RvclN0cmluZykge1xuICAgICAgICBjYXNlIGRhdGFWaWV3Q3RvclN0cmluZzogcmV0dXJuIGRhdGFWaWV3VGFnO1xuICAgICAgICBjYXNlIG1hcEN0b3JTdHJpbmc6IHJldHVybiBtYXBUYWc7XG4gICAgICAgIGNhc2UgcHJvbWlzZUN0b3JTdHJpbmc6IHJldHVybiBwcm9taXNlVGFnO1xuICAgICAgICBjYXNlIHNldEN0b3JTdHJpbmc6IHJldHVybiBzZXRUYWc7XG4gICAgICAgIGNhc2Ugd2Vha01hcEN0b3JTdHJpbmc6IHJldHVybiB3ZWFrTWFwVGFnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFRhZztcbiIsInZhciBTdGFjayA9IHJlcXVpcmUoJy4vX1N0YWNrJyksXG4gICAgZXF1YWxBcnJheXMgPSByZXF1aXJlKCcuL19lcXVhbEFycmF5cycpLFxuICAgIGVxdWFsQnlUYWcgPSByZXF1aXJlKCcuL19lcXVhbEJ5VGFnJyksXG4gICAgZXF1YWxPYmplY3RzID0gcmVxdWlyZSgnLi9fZXF1YWxPYmplY3RzJyksXG4gICAgZ2V0VGFnID0gcmVxdWlyZSgnLi9fZ2V0VGFnJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xudmFyIENPTVBBUkVfUEFSVElBTF9GTEFHID0gMTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbGAgZm9yIGFycmF5cyBhbmQgb2JqZWN0cyB3aGljaCBwZXJmb3Jtc1xuICogZGVlcCBjb21wYXJpc29ucyBhbmQgdHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGVuYWJsaW5nIG9iamVjdHMgd2l0aCBjaXJjdWxhclxuICogcmVmZXJlbmNlcyB0byBiZSBjb21wYXJlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIGBvYmplY3RgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzRXF1YWxEZWVwKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgdmFyIG9iaklzQXJyID0gaXNBcnJheShvYmplY3QpLFxuICAgICAgb3RoSXNBcnIgPSBpc0FycmF5KG90aGVyKSxcbiAgICAgIG9ialRhZyA9IG9iaklzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob2JqZWN0KSxcbiAgICAgIG90aFRhZyA9IG90aElzQXJyID8gYXJyYXlUYWcgOiBnZXRUYWcob3RoZXIpO1xuXG4gIG9ialRhZyA9IG9ialRhZyA9PSBhcmdzVGFnID8gb2JqZWN0VGFnIDogb2JqVGFnO1xuICBvdGhUYWcgPSBvdGhUYWcgPT0gYXJnc1RhZyA/IG9iamVjdFRhZyA6IG90aFRhZztcblxuICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgb3RoSXNPYmogPSBvdGhUYWcgPT0gb2JqZWN0VGFnLFxuICAgICAgaXNTYW1lVGFnID0gb2JqVGFnID09IG90aFRhZztcblxuICBpZiAoaXNTYW1lVGFnICYmIGlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICBpZiAoIWlzQnVmZmVyKG90aGVyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBvYmpJc0FyciA9IHRydWU7XG4gICAgb2JqSXNPYmogPSBmYWxzZTtcbiAgfVxuICBpZiAoaXNTYW1lVGFnICYmICFvYmpJc09iaikge1xuICAgIHN0YWNrIHx8IChzdGFjayA9IG5ldyBTdGFjayk7XG4gICAgcmV0dXJuIChvYmpJc0FyciB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KSlcbiAgICAgID8gZXF1YWxBcnJheXMob2JqZWN0LCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgZXF1YWxGdW5jLCBzdGFjaylcbiAgICAgIDogZXF1YWxCeVRhZyhvYmplY3QsIG90aGVyLCBvYmpUYWcsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xuICB9XG4gIGlmICghKGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRykpIHtcbiAgICB2YXIgb2JqSXNXcmFwcGVkID0gb2JqSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdfX3dyYXBwZWRfXycpLFxuICAgICAgICBvdGhJc1dyYXBwZWQgPSBvdGhJc09iaiAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG90aGVyLCAnX193cmFwcGVkX18nKTtcblxuICAgIGlmIChvYmpJc1dyYXBwZWQgfHwgb3RoSXNXcmFwcGVkKSB7XG4gICAgICB2YXIgb2JqVW53cmFwcGVkID0gb2JqSXNXcmFwcGVkID8gb2JqZWN0LnZhbHVlKCkgOiBvYmplY3QsXG4gICAgICAgICAgb3RoVW53cmFwcGVkID0gb3RoSXNXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyO1xuXG4gICAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgICAgcmV0dXJuIGVxdWFsRnVuYyhvYmpVbndyYXBwZWQsIG90aFVud3JhcHBlZCwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spO1xuICAgIH1cbiAgfVxuICBpZiAoIWlzU2FtZVRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICByZXR1cm4gZXF1YWxPYmplY3RzKG9iamVjdCwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsRGVlcDtcbiIsInZhciBiYXNlSXNFcXVhbERlZXAgPSByZXF1aXJlKCcuL19iYXNlSXNFcXVhbERlZXAnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzRXF1YWxgIHdoaWNoIHN1cHBvcnRzIHBhcnRpYWwgY29tcGFyaXNvbnNcbiAqIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtib29sZWFufSBiaXRtYXNrIFRoZSBiaXRtYXNrIGZsYWdzLlxuICogIDEgLSBVbm9yZGVyZWQgY29tcGFyaXNvblxuICogIDIgLSBQYXJ0aWFsIGNvbXBhcmlzb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIHN0YWNrKSB7XG4gIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsIHx8ICghaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNPYmplY3RMaWtlKG90aGVyKSkpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgfVxuICByZXR1cm4gYmFzZUlzRXF1YWxEZWVwKHZhbHVlLCBvdGhlciwgYml0bWFzaywgY3VzdG9taXplciwgYmFzZUlzRXF1YWwsIHN0YWNrKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNFcXVhbDtcbiIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vX2Jhc2VJc0VxdWFsJyk7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5pc0VxdWFsYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICogaXMgaW52b2tlZCB0byBjb21wYXJlIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnMgYHVuZGVmaW5lZGAsIGNvbXBhcmlzb25zXG4gKiBhcmUgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHVwIHRvXG4gKiBzaXggYXJndW1lbnRzOiAob2JqVmFsdWUsIG90aFZhbHVlIFssIGluZGV4fGtleSwgb2JqZWN0LCBvdGhlciwgc3RhY2tdKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIGlzR3JlZXRpbmcodmFsdWUpIHtcbiAqICAgcmV0dXJuIC9eaCg/Oml8ZWxsbykkLy50ZXN0KHZhbHVlKTtcbiAqIH1cbiAqXG4gKiBmdW5jdGlvbiBjdXN0b21pemVyKG9ialZhbHVlLCBvdGhWYWx1ZSkge1xuICogICBpZiAoaXNHcmVldGluZyhvYmpWYWx1ZSkgJiYgaXNHcmVldGluZyhvdGhWYWx1ZSkpIHtcbiAqICAgICByZXR1cm4gdHJ1ZTtcbiAqICAgfVxuICogfVxuICpcbiAqIHZhciBhcnJheSA9IFsnaGVsbG8nLCAnZ29vZGJ5ZSddO1xuICogdmFyIG90aGVyID0gWydoaScsICdnb29kYnllJ107XG4gKlxuICogXy5pc0VxdWFsV2l0aChhcnJheSwgb3RoZXIsIGN1c3RvbWl6ZXIpO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBpc0VxdWFsV2l0aCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIpIHtcbiAgY3VzdG9taXplciA9IHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicgPyBjdXN0b21pemVyIDogdW5kZWZpbmVkO1xuICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIodmFsdWUsIG90aGVyKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyLCB1bmRlZmluZWQsIGN1c3RvbWl6ZXIpIDogISFyZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNFcXVhbFdpdGg7XG4iLCJpbXBvcnQgaXNFcXVhbFdpdGggZnJvbSAnbG9kYXNoL2lzRXF1YWxXaXRoJztcbi8qKiBJbXBsZW1lbnRzIGEgZGVlcCBlcXVhbHMgdXNpbmcgdGhlIGBsb2Rhc2guaXNFcXVhbFdpdGhgIGZ1bmN0aW9uLCB0aGF0IHByb3ZpZGVzIGEgY3VzdG9taXplZCBjb21wYXJhdG9yIHRoYXRcbiAqIGFzc3VtZXMgYWxsIGZ1bmN0aW9ucyBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAcGFyYW0gYSAtIFRoZSBmaXJzdCBlbGVtZW50IHRvIGNvbXBhcmVcbiAqIEBwYXJhbSBiIC0gVGhlIHNlY29uZCBlbGVtZW50IHRvIGNvbXBhcmVcbiAqIEByZXR1cm5zIC0gVHJ1ZSBpZiB0aGUgYGFgIGFuZCBgYmAgYXJlIGRlZXBseSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlZXBFcXVhbHMoYSwgYikge1xuICAgIHJldHVybiBpc0VxdWFsV2l0aChhLCBiLCAob2JqLCBvdGhlcikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb3RoZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZSBhbGwgZnVuY3Rpb25zIGFyZSBlcXVpdmFsZW50XG4gICAgICAgICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Jqc2YtdGVhbS9yZWFjdC1qc29uc2NoZW1hLWZvcm0vaXNzdWVzLzI1NVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZmFsbGJhY2sgdG8gZGVmYXVsdCBpc0VxdWFscyBiZWhhdmlvclxuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVlcEVxdWFscy5qcy5tYXAiLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTeW1ib2w7XG4iLCJ2YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVJc0RlZXBQcm9wID0gL1xcLnxcXFsoPzpbXltcXF1dKnwoW1wiJ10pKD86KD8hXFwxKVteXFxcXF18XFxcXC4pKj9cXDEpXFxdLyxcbiAgICByZUlzUGxhaW5Qcm9wID0gL15cXHcqJC87XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwcm9wZXJ0eSBuYW1lIGFuZCBub3QgYSBwcm9wZXJ0eSBwYXRoLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5IGtleXMgb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNLZXkodmFsdWUsIG9iamVjdCkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ3N5bWJvbCcgfHwgdHlwZSA9PSAnYm9vbGVhbicgfHxcbiAgICAgIHZhbHVlID09IG51bGwgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIHJlSXNQbGFpblByb3AudGVzdCh2YWx1ZSkgfHwgIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKSB8fFxuICAgIChvYmplY3QgIT0gbnVsbCAmJiB2YWx1ZSBpbiBPYmplY3Qob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXk7XG4iLCJ2YXIgTWFwQ2FjaGUgPSByZXF1aXJlKCcuL19NYXBDYWNoZScpO1xuXG4vKiogRXJyb3IgbWVzc2FnZSBjb25zdGFudHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IG1lbW9pemVzIHRoZSByZXN1bHQgb2YgYGZ1bmNgLiBJZiBgcmVzb2x2ZXJgIGlzXG4gKiBwcm92aWRlZCwgaXQgZGV0ZXJtaW5lcyB0aGUgY2FjaGUga2V5IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgYmFzZWQgb24gdGhlXG4gKiBhcmd1bWVudHMgcHJvdmlkZWQgdG8gdGhlIG1lbW9pemVkIGZ1bmN0aW9uLiBCeSBkZWZhdWx0LCB0aGUgZmlyc3QgYXJndW1lbnRcbiAqIHByb3ZpZGVkIHRvIHRoZSBtZW1vaXplZCBmdW5jdGlvbiBpcyB1c2VkIGFzIHRoZSBtYXAgY2FjaGUga2V5LiBUaGUgYGZ1bmNgXG4gKiBpcyBpbnZva2VkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhlIGNhY2hlIGlzIGV4cG9zZWQgYXMgdGhlIGBjYWNoZWAgcHJvcGVydHkgb24gdGhlIG1lbW9pemVkXG4gKiBmdW5jdGlvbi4gSXRzIGNyZWF0aW9uIG1heSBiZSBjdXN0b21pemVkIGJ5IHJlcGxhY2luZyB0aGUgYF8ubWVtb2l6ZS5DYWNoZWBcbiAqIGNvbnN0cnVjdG9yIHdpdGggb25lIHdob3NlIGluc3RhbmNlcyBpbXBsZW1lbnQgdGhlXG4gKiBbYE1hcGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXByb3BlcnRpZXMtb2YtdGhlLW1hcC1wcm90b3R5cGUtb2JqZWN0KVxuICogbWV0aG9kIGludGVyZmFjZSBvZiBgY2xlYXJgLCBgZGVsZXRlYCwgYGdldGAsIGBoYXNgLCBhbmQgYHNldGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBoYXZlIGl0cyBvdXRwdXQgbWVtb2l6ZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVzb2x2ZXJdIFRoZSBmdW5jdGlvbiB0byByZXNvbHZlIHRoZSBjYWNoZSBrZXkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBtZW1vaXplZCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxLCAnYic6IDIgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2MnOiAzLCAnZCc6IDQgfTtcbiAqXG4gKiB2YXIgdmFsdWVzID0gXy5tZW1vaXplKF8udmFsdWVzKTtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogdmFsdWVzKG90aGVyKTtcbiAqIC8vID0+IFszLCA0XVxuICpcbiAqIG9iamVjdC5hID0gMjtcbiAqIHZhbHVlcyhvYmplY3QpO1xuICogLy8gPT4gWzEsIDJdXG4gKlxuICogLy8gTW9kaWZ5IHRoZSByZXN1bHQgY2FjaGUuXG4gKiB2YWx1ZXMuY2FjaGUuc2V0KG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiB2YWx1ZXMob2JqZWN0KTtcbiAqIC8vID0+IFsnYScsICdiJ11cbiAqXG4gKiAvLyBSZXBsYWNlIGBfLm1lbW9pemUuQ2FjaGVgLlxuICogXy5tZW1vaXplLkNhY2hlID0gV2Vha01hcDtcbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZShmdW5jLCByZXNvbHZlcikge1xuICBpZiAodHlwZW9mIGZ1bmMgIT0gJ2Z1bmN0aW9uJyB8fCAocmVzb2x2ZXIgIT0gbnVsbCAmJiB0eXBlb2YgcmVzb2x2ZXIgIT0gJ2Z1bmN0aW9uJykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEZVTkNfRVJST1JfVEVYVCk7XG4gIH1cbiAgdmFyIG1lbW9pemVkID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGtleSA9IHJlc29sdmVyID8gcmVzb2x2ZXIuYXBwbHkodGhpcywgYXJncykgOiBhcmdzWzBdLFxuICAgICAgICBjYWNoZSA9IG1lbW9pemVkLmNhY2hlO1xuXG4gICAgaWYgKGNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6ZS5DYWNoZSB8fCBNYXBDYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cblxuLy8gRXhwb3NlIGBNYXBDYWNoZWAuXG5tZW1vaXplLkNhY2hlID0gTWFwQ2FjaGU7XG5cbm1vZHVsZS5leHBvcnRzID0gbWVtb2l6ZTtcbiIsInZhciBtZW1vaXplID0gcmVxdWlyZSgnLi9tZW1vaXplJyk7XG5cbi8qKiBVc2VkIGFzIHRoZSBtYXhpbXVtIG1lbW9pemUgY2FjaGUgc2l6ZS4gKi9cbnZhciBNQVhfTUVNT0laRV9TSVpFID0gNTAwO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tZW1vaXplYCB3aGljaCBjbGVhcnMgdGhlIG1lbW9pemVkIGZ1bmN0aW9uJ3NcbiAqIGNhY2hlIHdoZW4gaXQgZXhjZWVkcyBgTUFYX01FTU9JWkVfU0laRWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGhhdmUgaXRzIG91dHB1dCBtZW1vaXplZC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IG1lbW9pemVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtZW1vaXplQ2FwcGVkKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IG1lbW9pemUoZnVuYywgZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKGNhY2hlLnNpemUgPT09IE1BWF9NRU1PSVpFX1NJWkUpIHtcbiAgICAgIGNhY2hlLmNsZWFyKCk7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH0pO1xuXG4gIHZhciBjYWNoZSA9IHJlc3VsdC5jYWNoZTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplQ2FwcGVkO1xuIiwidmFyIG1lbW9pemVDYXBwZWQgPSByZXF1aXJlKCcuL19tZW1vaXplQ2FwcGVkJyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZVByb3BOYW1lID0gL1teLltcXF1dK3xcXFsoPzooLT9cXGQrKD86XFwuXFxkKyk/KXwoW1wiJ10pKCg/Oig/IVxcMilbXlxcXFxdfFxcXFwuKSo/KVxcMilcXF18KD89KD86XFwufFxcW1xcXSkoPzpcXC58XFxbXFxdfCQpKS9nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBiYWNrc2xhc2hlcyBpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUVzY2FwZUNoYXIgPSAvXFxcXChcXFxcKT8vZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgc3RyaW5nYCB0byBhIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBjb252ZXJ0LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSBwYXRoIGFycmF5LlxuICovXG52YXIgc3RyaW5nVG9QYXRoID0gbWVtb2l6ZUNhcHBlZChmdW5jdGlvbihzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ2IC8qIC4gKi8pIHtcbiAgICByZXN1bHQucHVzaCgnJyk7XG4gIH1cbiAgc3RyaW5nLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN1YlN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3ViU3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpbmdUb1BhdGg7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5TWFwO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi9pc0FycmF5JyksXG4gICAgaXNTeW1ib2wgPSByZXF1aXJlKCcuL2lzU3ltYm9sJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gKiB2YWx1ZXMgdG8gZW1wdHkgc3RyaW5ncy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgY29udmVydCB2YWx1ZXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRvU3RyaW5nO1xuIiwidmFyIGJhc2VUb1N0cmluZyA9IHJlcXVpcmUoJy4vX2Jhc2VUb1N0cmluZycpO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9TdHJpbmcobnVsbCk7XG4gKiAvLyA9PiAnJ1xuICpcbiAqIF8udG9TdHJpbmcoLTApO1xuICogLy8gPT4gJy0wJ1xuICpcbiAqIF8udG9TdHJpbmcoWzEsIDIsIDNdKTtcbiAqIC8vID0+ICcxLDIsMydcbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9TdHJpbmc7XG4iLCJ2YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzS2V5ID0gcmVxdWlyZSgnLi9faXNLZXknKSxcbiAgICBzdHJpbmdUb1BhdGggPSByZXF1aXJlKCcuL19zdHJpbmdUb1BhdGgnKSxcbiAgICB0b1N0cmluZyA9IHJlcXVpcmUoJy4vdG9TdHJpbmcnKTtcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGEgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYXN0UGF0aDtcbiIsInZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4vaXNTeW1ib2wnKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMDtcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGtleSBpZiBpdCdzIG5vdCBhIHN0cmluZyBvciBzeW1ib2wuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7c3RyaW5nfHN5bWJvbH0gUmV0dXJucyB0aGUga2V5LlxuICovXG5mdW5jdGlvbiB0b0tleSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9LZXk7XG4iLCJ2YXIgY2FzdFBhdGggPSByZXF1aXJlKCcuL19jYXN0UGF0aCcpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5nZXRgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVmYXVsdCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzb2x2ZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXQob2JqZWN0LCBwYXRoKSB7XG4gIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IDAsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICBvYmplY3QgPSBvYmplY3RbdG9LZXkocGF0aFtpbmRleCsrXSldO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0O1xuIiwidmFyIGJhc2VHZXQgPSByZXF1aXJlKCcuL19iYXNlR2V0Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLiBJZiB0aGUgcmVzb2x2ZWQgdmFsdWUgaXNcbiAqIGB1bmRlZmluZWRgLCB0aGUgYGRlZmF1bHRWYWx1ZWAgaXMgcmV0dXJuZWQgaW4gaXRzIHBsYWNlLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy43LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0geyp9IFtkZWZhdWx0VmFsdWVdIFRoZSB2YWx1ZSByZXR1cm5lZCBmb3IgYHVuZGVmaW5lZGAgcmVzb2x2ZWQgdmFsdWVzLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc29sdmVkIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IFt7ICdiJzogeyAnYyc6IDMgfSB9XSB9O1xuICpcbiAqIF8uZ2V0KG9iamVjdCwgJ2FbMF0uYi5jJyk7XG4gKiAvLyA9PiAzXG4gKlxuICogXy5nZXQob2JqZWN0LCBbJ2EnLCAnMCcsICdiJywgJ2MnXSk7XG4gKiAvLyA9PiAzXG4gKlxuICogXy5nZXQob2JqZWN0LCAnYS5iLmMnLCAnZGVmYXVsdCcpO1xuICogLy8gPT4gJ2RlZmF1bHQnXG4gKi9cbmZ1bmN0aW9uIGdldChvYmplY3QsIHBhdGgsIGRlZmF1bHRWYWx1ZSkge1xuICB2YXIgcmVzdWx0ID0gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBiYXNlR2V0KG9iamVjdCwgcGF0aCk7XG4gIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXQ7XG4iLCJ2YXIgYmFzZUtleXMgPSByZXF1aXJlKCcuL19iYXNlS2V5cycpLFxuICAgIGdldFRhZyA9IHJlcXVpcmUoJy4vX2dldFRhZycpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc1Byb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2lzUHJvdG90eXBlJyksXG4gICAgaXNUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9pc1R5cGVkQXJyYXknKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGVtcHR5IG9iamVjdCwgY29sbGVjdGlvbiwgbWFwLCBvciBzZXQuXG4gKlxuICogT2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlbXB0eSBpZiB0aGV5IGhhdmUgbm8gb3duIGVudW1lcmFibGUgc3RyaW5nIGtleWVkXG4gKiBwcm9wZXJ0aWVzLlxuICpcbiAqIEFycmF5LWxpa2UgdmFsdWVzIHN1Y2ggYXMgYGFyZ3VtZW50c2Agb2JqZWN0cywgYXJyYXlzLCBidWZmZXJzLCBzdHJpbmdzLCBvclxuICogalF1ZXJ5LWxpa2UgY29sbGVjdGlvbnMgYXJlIGNvbnNpZGVyZWQgZW1wdHkgaWYgdGhleSBoYXZlIGEgYGxlbmd0aGAgb2YgYDBgLlxuICogU2ltaWxhcmx5LCBtYXBzIGFuZCBzZXRzIGFyZSBjb25zaWRlcmVkIGVtcHR5IGlmIHRoZXkgaGF2ZSBhIGBzaXplYCBvZiBgMGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0VtcHR5KG51bGwpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFbXB0eSh0cnVlKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRW1wdHkoMSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmXG4gICAgICAoaXNBcnJheSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZS5zcGxpY2UgPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICBpc0J1ZmZlcih2YWx1ZSkgfHwgaXNUeXBlZEFycmF5KHZhbHVlKSB8fCBpc0FyZ3VtZW50cyh2YWx1ZSkpKSB7XG4gICAgcmV0dXJuICF2YWx1ZS5sZW5ndGg7XG4gIH1cbiAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSk7XG4gIGlmICh0YWcgPT0gbWFwVGFnIHx8IHRhZyA9PSBzZXRUYWcpIHtcbiAgICByZXR1cm4gIXZhbHVlLnNpemU7XG4gIH1cbiAgaWYgKGlzUHJvdG90eXBlKHZhbHVlKSkge1xuICAgIHJldHVybiAhYmFzZUtleXModmFsdWUpLmxlbmd0aDtcbiAgfVxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VtcHR5O1xuIiwidmFyIGhhc0V4Y2FwZSA9IC9+L1xudmFyIGVzY2FwZU1hdGNoZXIgPSAvflswMV0vZ1xuZnVuY3Rpb24gZXNjYXBlUmVwbGFjZXIgKG0pIHtcbiAgc3dpdGNoIChtKSB7XG4gICAgY2FzZSAnfjEnOiByZXR1cm4gJy8nXG4gICAgY2FzZSAnfjAnOiByZXR1cm4gJ34nXG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRpbGRlIGVzY2FwZTogJyArIG0pXG59XG5cbmZ1bmN0aW9uIHVudGlsZGUgKHN0cikge1xuICBpZiAoIWhhc0V4Y2FwZS50ZXN0KHN0cikpIHJldHVybiBzdHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGVzY2FwZU1hdGNoZXIsIGVzY2FwZVJlcGxhY2VyKVxufVxuXG5mdW5jdGlvbiBzZXR0ZXIgKG9iaiwgcG9pbnRlciwgdmFsdWUpIHtcbiAgdmFyIHBhcnRcbiAgdmFyIGhhc05leHRQYXJ0XG5cbiAgZm9yICh2YXIgcCA9IDEsIGxlbiA9IHBvaW50ZXIubGVuZ3RoOyBwIDwgbGVuOykge1xuICAgIGlmIChwb2ludGVyW3BdID09PSAnY29uc3RydWN0b3InIHx8IHBvaW50ZXJbcF0gPT09ICdwcm90b3R5cGUnIHx8IHBvaW50ZXJbcF0gPT09ICdfX3Byb3RvX18nKSByZXR1cm4gb2JqXG5cbiAgICBwYXJ0ID0gdW50aWxkZShwb2ludGVyW3ArK10pXG4gICAgaGFzTmV4dFBhcnQgPSBsZW4gPiBwXG5cbiAgICBpZiAodHlwZW9mIG9ialtwYXJ0XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIHN1cHBvcnQgc2V0dGluZyBvZiAvLVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSAmJiBwYXJ0ID09PSAnLScpIHtcbiAgICAgICAgcGFydCA9IG9iai5sZW5ndGhcbiAgICAgIH1cblxuICAgICAgLy8gc3VwcG9ydCBuZXN0ZWQgb2JqZWN0cy9hcnJheSB3aGVuIHNldHRpbmcgdmFsdWVzXG4gICAgICBpZiAoaGFzTmV4dFBhcnQpIHtcbiAgICAgICAgaWYgKChwb2ludGVyW3BdICE9PSAnJyAmJiBwb2ludGVyW3BdIDwgSW5maW5pdHkpIHx8IHBvaW50ZXJbcF0gPT09ICctJykgb2JqW3BhcnRdID0gW11cbiAgICAgICAgZWxzZSBvYmpbcGFydF0gPSB7fVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaGFzTmV4dFBhcnQpIGJyZWFrXG4gICAgb2JqID0gb2JqW3BhcnRdXG4gIH1cblxuICB2YXIgb2xkVmFsdWUgPSBvYmpbcGFydF1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIGRlbGV0ZSBvYmpbcGFydF1cbiAgZWxzZSBvYmpbcGFydF0gPSB2YWx1ZVxuICByZXR1cm4gb2xkVmFsdWVcbn1cblxuZnVuY3Rpb24gY29tcGlsZVBvaW50ZXIgKHBvaW50ZXIpIHtcbiAgaWYgKHR5cGVvZiBwb2ludGVyID09PSAnc3RyaW5nJykge1xuICAgIHBvaW50ZXIgPSBwb2ludGVyLnNwbGl0KCcvJylcbiAgICBpZiAocG9pbnRlclswXSA9PT0gJycpIHJldHVybiBwb2ludGVyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04gcG9pbnRlci4nKVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocG9pbnRlcikpIHtcbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcG9pbnRlcikge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0ICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcGFydCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEpTT04gcG9pbnRlci4gTXVzdCBiZSBvZiB0eXBlIHN0cmluZyBvciBudW1iZXIuJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBvaW50ZXJcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBKU09OIHBvaW50ZXIuJylcbn1cblxuZnVuY3Rpb24gZ2V0IChvYmosIHBvaW50ZXIpIHtcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXQgb2JqZWN0LicpXG4gIHBvaW50ZXIgPSBjb21waWxlUG9pbnRlcihwb2ludGVyKVxuICB2YXIgbGVuID0gcG9pbnRlci5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMSkgcmV0dXJuIG9ialxuXG4gIGZvciAodmFyIHAgPSAxOyBwIDwgbGVuOykge1xuICAgIG9iaiA9IG9ialt1bnRpbGRlKHBvaW50ZXJbcCsrXSldXG4gICAgaWYgKGxlbiA9PT0gcCkgcmV0dXJuIG9ialxuICAgIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXQgKG9iaiwgcG9pbnRlciwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXQgb2JqZWN0LicpXG4gIHBvaW50ZXIgPSBjb21waWxlUG9pbnRlcihwb2ludGVyKVxuICBpZiAocG9pbnRlci5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBKU09OIHBvaW50ZXIgZm9yIHNldC4nKVxuICByZXR1cm4gc2V0dGVyKG9iaiwgcG9pbnRlciwgdmFsdWUpXG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUgKHBvaW50ZXIpIHtcbiAgdmFyIGNvbXBpbGVkID0gY29tcGlsZVBvaW50ZXIocG9pbnRlcilcbiAgcmV0dXJuIHtcbiAgICBnZXQ6IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiBnZXQob2JqZWN0LCBjb21waWxlZClcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gKG9iamVjdCwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBzZXQob2JqZWN0LCBjb21waWxlZCwgdmFsdWUpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydHMuZ2V0ID0gZ2V0XG5leHBvcnRzLnNldCA9IHNldFxuZXhwb3J0cy5jb21waWxlID0gY29tcGlsZVxuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yXG4gKiBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5RWFjaDtcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKTtcblxudmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIHZhciBmdW5jID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICByZXR1cm4gZnVuYztcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lUHJvcGVydHk7XG4iLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19kZWZpbmVQcm9wZXJ0eScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25WYWx1ZTtcbiIsInZhciBiYXNlQXNzaWduVmFsdWUgPSByZXF1aXJlKCcuL19iYXNlQXNzaWduVmFsdWUnKSxcbiAgICBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ25WYWx1ZTtcbiIsInZhciBhc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnblZhbHVlJyksXG4gICAgYmFzZUFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYmFzZUFzc2lnblZhbHVlJyk7XG5cbi8qKlxuICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgID8gY3VzdG9taXplcihvYmplY3Rba2V5XSwgc291cmNlW2tleV0sIGtleSwgb2JqZWN0LCBzb3VyY2UpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXdWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgICBpZiAoaXNOZXcpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlPYmplY3Q7XG4iLCJ2YXIgY29weU9iamVjdCA9IHJlcXVpcmUoJy4vX2NvcHlPYmplY3QnKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi9rZXlzJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uYXNzaWduYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXNcbiAqIG9yIGBjdXN0b21pemVyYCBmdW5jdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduKG9iamVjdCwgc291cmNlKSB7XG4gIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXMoc291cmNlKSwgb2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQXNzaWduO1xuIiwiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2VcbiAqIFtgT2JqZWN0LmtleXNgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmF0aXZlS2V5c0luO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzUHJvdG90eXBlID0gcmVxdWlyZSgnLi9faXNQcm90b3R5cGUnKSxcbiAgICBuYXRpdmVLZXlzSW4gPSByZXF1aXJlKCcuL19uYXRpdmVLZXlzSW4nKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICB9XG4gIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlS2V5c0luO1xuIiwidmFyIGFycmF5TGlrZUtleXMgPSByZXF1aXJlKCcuL19hcnJheUxpa2VLZXlzJyksXG4gICAgYmFzZUtleXNJbiA9IHJlcXVpcmUoJy4vX2Jhc2VLZXlzSW4nKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5c0luO1xuIiwidmFyIGNvcHlPYmplY3QgPSByZXF1aXJlKCcuL19jb3B5T2JqZWN0JyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25JbmAgd2l0aG91dCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2VzXG4gKiBvciBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnbkluKG9iamVjdCwgc291cmNlKSB7XG4gIHJldHVybiBvYmplY3QgJiYgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ25JbjtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIEJ1ZmZlciA9IG1vZHVsZUV4cG9ydHMgPyByb290LkJ1ZmZlciA6IHVuZGVmaW5lZCxcbiAgICBhbGxvY1Vuc2FmZSA9IEJ1ZmZlciA/IEJ1ZmZlci5hbGxvY1Vuc2FmZSA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgIGBidWZmZXJgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge0J1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gY2xvbmVCdWZmZXIoYnVmZmVyLCBpc0RlZXApIHtcbiAgaWYgKGlzRGVlcCkge1xuICAgIHJldHVybiBidWZmZXIuc2xpY2UoKTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IGFsbG9jVW5zYWZlID8gYWxsb2NVbnNhZmUobGVuZ3RoKSA6IG5ldyBidWZmZXIuY29uc3RydWN0b3IobGVuZ3RoKTtcblxuICBidWZmZXIuY29weShyZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lQnVmZmVyO1xuIiwiLyoqXG4gKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXk9W11dIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyB0by5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBjb3B5QXJyYXkoc291cmNlLCBhcnJheSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29weUFycmF5O1xuIiwidmFyIGNvcHlPYmplY3QgPSByZXF1aXJlKCcuL19jb3B5T2JqZWN0JyksXG4gICAgZ2V0U3ltYm9scyA9IHJlcXVpcmUoJy4vX2dldFN5bWJvbHMnKTtcblxuLyoqXG4gKiBDb3BpZXMgb3duIHN5bWJvbHMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHN5bWJvbHMgZnJvbS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyB0by5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlTeW1ib2xzKHNvdXJjZSwgb2JqZWN0KSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHNvdXJjZSwgZ2V0U3ltYm9scyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlTeW1ib2xzO1xuIiwidmFyIGFycmF5UHVzaCA9IHJlcXVpcmUoJy4vX2FycmF5UHVzaCcpLFxuICAgIGdldFByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2dldFByb3RvdHlwZScpLFxuICAgIGdldFN5bWJvbHMgPSByZXF1aXJlKCcuL19nZXRTeW1ib2xzJyksXG4gICAgc3R1YkFycmF5ID0gcmVxdWlyZSgnLi9zdHViQXJyYXknKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUdldFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBzeW1ib2xzLlxuICovXG52YXIgZ2V0U3ltYm9sc0luID0gIW5hdGl2ZUdldFN5bWJvbHMgPyBzdHViQXJyYXkgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB3aGlsZSAob2JqZWN0KSB7XG4gICAgYXJyYXlQdXNoKHJlc3VsdCwgZ2V0U3ltYm9scyhvYmplY3QpKTtcbiAgICBvYmplY3QgPSBnZXRQcm90b3R5cGUob2JqZWN0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRTeW1ib2xzSW47XG4iLCJ2YXIgY29weU9iamVjdCA9IHJlcXVpcmUoJy4vX2NvcHlPYmplY3QnKSxcbiAgICBnZXRTeW1ib2xzSW4gPSByZXF1aXJlKCcuL19nZXRTeW1ib2xzSW4nKTtcblxuLyoqXG4gKiBDb3BpZXMgb3duIGFuZCBpbmhlcml0ZWQgc3ltYm9scyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgc3ltYm9scyBmcm9tLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBzeW1ib2xzIHRvLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weVN5bWJvbHNJbihzb3VyY2UsIG9iamVjdCkge1xuICByZXR1cm4gY29weU9iamVjdChzb3VyY2UsIGdldFN5bWJvbHNJbihzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlTeW1ib2xzSW47XG4iLCJ2YXIgYmFzZUdldEFsbEtleXMgPSByZXF1aXJlKCcuL19iYXNlR2V0QWxsS2V5cycpLFxuICAgIGdldFN5bWJvbHNJbiA9IHJlcXVpcmUoJy4vX2dldFN5bWJvbHNJbicpLFxuICAgIGtleXNJbiA9IHJlcXVpcmUoJy4va2V5c0luJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIGFuZFxuICogc3ltYm9scyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBhbmQgc3ltYm9scy5cbiAqL1xuZnVuY3Rpb24gZ2V0QWxsS2V5c0luKG9iamVjdCkge1xuICByZXR1cm4gYmFzZUdldEFsbEtleXMob2JqZWN0LCBrZXlzSW4sIGdldFN5bWJvbHNJbik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QWxsS2V5c0luO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBhcnJheSBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGNsb25lLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQXJyYXkoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IG5ldyBhcnJheS5jb25zdHJ1Y3RvcihsZW5ndGgpO1xuXG4gIC8vIEFkZCBwcm9wZXJ0aWVzIGFzc2lnbmVkIGJ5IGBSZWdFeHAjZXhlY2AuXG4gIGlmIChsZW5ndGggJiYgdHlwZW9mIGFycmF5WzBdID09ICdzdHJpbmcnICYmIGhhc093blByb3BlcnR5LmNhbGwoYXJyYXksICdpbmRleCcpKSB7XG4gICAgcmVzdWx0LmluZGV4ID0gYXJyYXkuaW5kZXg7XG4gICAgcmVzdWx0LmlucHV0ID0gYXJyYXkuaW5wdXQ7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbml0Q2xvbmVBcnJheTtcbiIsInZhciBVaW50OEFycmF5ID0gcmVxdWlyZSgnLi9fVWludDhBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgYXJyYXlCdWZmZXJgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBhcnJheUJ1ZmZlciBUaGUgYXJyYXkgYnVmZmVyIHRvIGNsb25lLlxuICogQHJldHVybnMge0FycmF5QnVmZmVyfSBSZXR1cm5zIHRoZSBjbG9uZWQgYXJyYXkgYnVmZmVyLlxuICovXG5mdW5jdGlvbiBjbG9uZUFycmF5QnVmZmVyKGFycmF5QnVmZmVyKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgYXJyYXlCdWZmZXIuY29uc3RydWN0b3IoYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCk7XG4gIG5ldyBVaW50OEFycmF5KHJlc3VsdCkuc2V0KG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVBcnJheUJ1ZmZlcjtcbiIsInZhciBjbG9uZUFycmF5QnVmZmVyID0gcmVxdWlyZSgnLi9fY2xvbmVBcnJheUJ1ZmZlcicpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgZGF0YVZpZXdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YVZpZXcgVGhlIGRhdGEgdmlldyB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjbG9uZWQgZGF0YSB2aWV3LlxuICovXG5mdW5jdGlvbiBjbG9uZURhdGFWaWV3KGRhdGFWaWV3LCBpc0RlZXApIHtcbiAgdmFyIGJ1ZmZlciA9IGlzRGVlcCA/IGNsb25lQXJyYXlCdWZmZXIoZGF0YVZpZXcuYnVmZmVyKSA6IGRhdGFWaWV3LmJ1ZmZlcjtcbiAgcmV0dXJuIG5ldyBkYXRhVmlldy5jb25zdHJ1Y3RvcihidWZmZXIsIGRhdGFWaWV3LmJ5dGVPZmZzZXQsIGRhdGFWaWV3LmJ5dGVMZW5ndGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lRGF0YVZpZXc7XG4iLCIvKiogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBmbGFncyBmcm9tIHRoZWlyIGNvZXJjZWQgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUZsYWdzID0gL1xcdyokLztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHJlZ2V4cGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWdleHAgVGhlIHJlZ2V4cCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCByZWdleHAuXG4gKi9cbmZ1bmN0aW9uIGNsb25lUmVnRXhwKHJlZ2V4cCkge1xuICB2YXIgcmVzdWx0ID0gbmV3IHJlZ2V4cC5jb25zdHJ1Y3RvcihyZWdleHAuc291cmNlLCByZUZsYWdzLmV4ZWMocmVnZXhwKSk7XG4gIHJlc3VsdC5sYXN0SW5kZXggPSByZWdleHAubGFzdEluZGV4O1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb25lUmVnRXhwO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVmFsdWVPZiA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udmFsdWVPZiA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGBzeW1ib2xgIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHN5bWJvbCBUaGUgc3ltYm9sIG9iamVjdCB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGNsb25lZCBzeW1ib2wgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBjbG9uZVN5bWJvbChzeW1ib2wpIHtcbiAgcmV0dXJuIHN5bWJvbFZhbHVlT2YgPyBPYmplY3Qoc3ltYm9sVmFsdWVPZi5jYWxsKHN5bWJvbCkpIDoge307XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVTeW1ib2w7XG4iLCJ2YXIgY2xvbmVBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQXJyYXlCdWZmZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgYHR5cGVkQXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gdHlwZWRBcnJheSBUaGUgdHlwZWQgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHR5cGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBjbG9uZVR5cGVkQXJyYXkodHlwZWRBcnJheSwgaXNEZWVwKSB7XG4gIHZhciBidWZmZXIgPSBpc0RlZXAgPyBjbG9uZUFycmF5QnVmZmVyKHR5cGVkQXJyYXkuYnVmZmVyKSA6IHR5cGVkQXJyYXkuYnVmZmVyO1xuICByZXR1cm4gbmV3IHR5cGVkQXJyYXkuY29uc3RydWN0b3IoYnVmZmVyLCB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsIHR5cGVkQXJyYXkubGVuZ3RoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjbG9uZVR5cGVkQXJyYXk7XG4iLCJ2YXIgY2xvbmVBcnJheUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQXJyYXlCdWZmZXInKSxcbiAgICBjbG9uZURhdGFWaWV3ID0gcmVxdWlyZSgnLi9fY2xvbmVEYXRhVmlldycpLFxuICAgIGNsb25lUmVnRXhwID0gcmVxdWlyZSgnLi9fY2xvbmVSZWdFeHAnKSxcbiAgICBjbG9uZVN5bWJvbCA9IHJlcXVpcmUoJy4vX2Nsb25lU3ltYm9sJyksXG4gICAgY2xvbmVUeXBlZEFycmF5ID0gcmVxdWlyZSgnLi9fY2xvbmVUeXBlZEFycmF5Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBNYXBgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIGBTZXRgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVCeVRhZyhvYmplY3QsIHRhZywgaXNEZWVwKSB7XG4gIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgYXJyYXlCdWZmZXJUYWc6XG4gICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZlcihvYmplY3QpO1xuXG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcblxuICAgIGNhc2UgZGF0YVZpZXdUYWc6XG4gICAgICByZXR1cm4gY2xvbmVEYXRhVmlldyhvYmplY3QsIGlzRGVlcCk7XG5cbiAgICBjYXNlIGZsb2F0MzJUYWc6IGNhc2UgZmxvYXQ2NFRhZzpcbiAgICBjYXNlIGludDhUYWc6IGNhc2UgaW50MTZUYWc6IGNhc2UgaW50MzJUYWc6XG4gICAgY2FzZSB1aW50OFRhZzogY2FzZSB1aW50OENsYW1wZWRUYWc6IGNhc2UgdWludDE2VGFnOiBjYXNlIHVpbnQzMlRhZzpcbiAgICAgIHJldHVybiBjbG9uZVR5cGVkQXJyYXkob2JqZWN0LCBpc0RlZXApO1xuXG4gICAgY2FzZSBtYXBUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3I7XG5cbiAgICBjYXNlIG51bWJlclRhZzpcbiAgICBjYXNlIHN0cmluZ1RhZzpcbiAgICAgIHJldHVybiBuZXcgQ3RvcihvYmplY3QpO1xuXG4gICAgY2FzZSByZWdleHBUYWc6XG4gICAgICByZXR1cm4gY2xvbmVSZWdFeHAob2JqZWN0KTtcblxuICAgIGNhc2Ugc2V0VGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yO1xuXG4gICAgY2FzZSBzeW1ib2xUYWc6XG4gICAgICByZXR1cm4gY2xvbmVTeW1ib2wob2JqZWN0KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUJ5VGFnO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RDcmVhdGUgPSBPYmplY3QuY3JlYXRlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNyZWF0ZWAgd2l0aG91dCBzdXBwb3J0IGZvciBhc3NpZ25pbmdcbiAqIHByb3BlcnRpZXMgdG8gdGhlIGNyZWF0ZWQgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvdG8gVGhlIG9iamVjdCB0byBpbmhlcml0IGZyb20uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgb2JqZWN0LlxuICovXG52YXIgYmFzZUNyZWF0ZSA9IChmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gb2JqZWN0KCkge31cbiAgcmV0dXJuIGZ1bmN0aW9uKHByb3RvKSB7XG4gICAgaWYgKCFpc09iamVjdChwcm90bykpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgaWYgKG9iamVjdENyZWF0ZSkge1xuICAgICAgcmV0dXJuIG9iamVjdENyZWF0ZShwcm90byk7XG4gICAgfVxuICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90bztcbiAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcbiAgICBvYmplY3QucHJvdG90eXBlID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDcmVhdGU7XG4iLCJ2YXIgYmFzZUNyZWF0ZSA9IHJlcXVpcmUoJy4vX2Jhc2VDcmVhdGUnKSxcbiAgICBnZXRQcm90b3R5cGUgPSByZXF1aXJlKCcuL19nZXRQcm90b3R5cGUnKSxcbiAgICBpc1Byb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2lzUHJvdG90eXBlJyk7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgYW4gb2JqZWN0IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lT2JqZWN0KG9iamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBvYmplY3QuY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNQcm90b3R5cGUob2JqZWN0KSlcbiAgICA/IGJhc2VDcmVhdGUoZ2V0UHJvdG90eXBlKG9iamVjdCkpXG4gICAgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbml0Q2xvbmVPYmplY3Q7XG4iLCJ2YXIgZ2V0VGFnID0gcmVxdWlyZSgnLi9fZ2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTWFwYCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG1hcCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNNYXAodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSBtYXBUYWc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUlzTWFwO1xuIiwidmFyIGJhc2VJc01hcCA9IHJlcXVpcmUoJy4vX2Jhc2VJc01hcCcpLFxuICAgIGJhc2VVbmFyeSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmFyeScpLFxuICAgIG5vZGVVdGlsID0gcmVxdWlyZSgnLi9fbm9kZVV0aWwnKTtcblxuLyogTm9kZS5qcyBoZWxwZXIgcmVmZXJlbmNlcy4gKi9cbnZhciBub2RlSXNNYXAgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc01hcDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYE1hcGAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbWFwLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNNYXAobmV3IE1hcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc01hcChuZXcgV2Vha01hcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNNYXAgPSBub2RlSXNNYXAgPyBiYXNlVW5hcnkobm9kZUlzTWFwKSA6IGJhc2VJc01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSBpc01hcDtcbiIsInZhciBnZXRUYWcgPSByZXF1aXJlKCcuL19nZXRUYWcnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc2V0VGFnID0gJ1tvYmplY3QgU2V0XSc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNTZXRgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgc2V0LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc1NldCh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBnZXRUYWcodmFsdWUpID09IHNldFRhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXNTZXQ7XG4iLCJ2YXIgYmFzZUlzU2V0ID0gcmVxdWlyZSgnLi9fYmFzZUlzU2V0JyksXG4gICAgYmFzZVVuYXJ5ID0gcmVxdWlyZSgnLi9fYmFzZVVuYXJ5JyksXG4gICAgbm9kZVV0aWwgPSByZXF1aXJlKCcuL19ub2RlVXRpbCcpO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1NldCA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzU2V0O1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgU2V0YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzZXQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1NldChuZXcgU2V0KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU2V0KG5ldyBXZWFrU2V0KTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1NldCA9IG5vZGVJc1NldCA/IGJhc2VVbmFyeShub2RlSXNTZXQpIDogYmFzZUlzU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU2V0O1xuIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBhcnJheUVhY2ggPSByZXF1aXJlKCcuL19hcnJheUVhY2gnKSxcbiAgICBhc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnblZhbHVlJyksXG4gICAgYmFzZUFzc2lnbiA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ24nKSxcbiAgICBiYXNlQXNzaWduSW4gPSByZXF1aXJlKCcuL19iYXNlQXNzaWduSW4nKSxcbiAgICBjbG9uZUJ1ZmZlciA9IHJlcXVpcmUoJy4vX2Nsb25lQnVmZmVyJyksXG4gICAgY29weUFycmF5ID0gcmVxdWlyZSgnLi9fY29weUFycmF5JyksXG4gICAgY29weVN5bWJvbHMgPSByZXF1aXJlKCcuL19jb3B5U3ltYm9scycpLFxuICAgIGNvcHlTeW1ib2xzSW4gPSByZXF1aXJlKCcuL19jb3B5U3ltYm9sc0luJyksXG4gICAgZ2V0QWxsS2V5cyA9IHJlcXVpcmUoJy4vX2dldEFsbEtleXMnKSxcbiAgICBnZXRBbGxLZXlzSW4gPSByZXF1aXJlKCcuL19nZXRBbGxLZXlzSW4nKSxcbiAgICBnZXRUYWcgPSByZXF1aXJlKCcuL19nZXRUYWcnKSxcbiAgICBpbml0Q2xvbmVBcnJheSA9IHJlcXVpcmUoJy4vX2luaXRDbG9uZUFycmF5JyksXG4gICAgaW5pdENsb25lQnlUYWcgPSByZXF1aXJlKCcuL19pbml0Q2xvbmVCeVRhZycpLFxuICAgIGluaXRDbG9uZU9iamVjdCA9IHJlcXVpcmUoJy4vX2luaXRDbG9uZU9iamVjdCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc01hcCA9IHJlcXVpcmUoJy4vaXNNYXAnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1NldCA9IHJlcXVpcmUoJy4vaXNTZXQnKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi9rZXlzJyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgY2xvbmluZy4gKi9cbnZhciBDTE9ORV9ERUVQX0ZMQUcgPSAxLFxuICAgIENMT05FX0ZMQVRfRkxBRyA9IDIsXG4gICAgQ0xPTkVfU1lNQk9MU19GTEFHID0gNDtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHN5bWJvbFRhZyA9ICdbb2JqZWN0IFN5bWJvbF0nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBzdXBwb3J0ZWQgYnkgYF8uY2xvbmVgLiAqL1xudmFyIGNsb25lYWJsZVRhZ3MgPSB7fTtcbmNsb25lYWJsZVRhZ3NbYXJnc1RhZ10gPSBjbG9uZWFibGVUYWdzW2FycmF5VGFnXSA9XG5jbG9uZWFibGVUYWdzW2FycmF5QnVmZmVyVGFnXSA9IGNsb25lYWJsZVRhZ3NbZGF0YVZpZXdUYWddID1cbmNsb25lYWJsZVRhZ3NbYm9vbFRhZ10gPSBjbG9uZWFibGVUYWdzW2RhdGVUYWddID1cbmNsb25lYWJsZVRhZ3NbZmxvYXQzMlRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0NjRUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50OFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDE2VGFnXSA9XG5jbG9uZWFibGVUYWdzW2ludDMyVGFnXSA9IGNsb25lYWJsZVRhZ3NbbWFwVGFnXSA9XG5jbG9uZWFibGVUYWdzW251bWJlclRhZ10gPSBjbG9uZWFibGVUYWdzW29iamVjdFRhZ10gPVxuY2xvbmVhYmxlVGFnc1tyZWdleHBUYWddID0gY2xvbmVhYmxlVGFnc1tzZXRUYWddID1cbmNsb25lYWJsZVRhZ3Nbc3RyaW5nVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc3ltYm9sVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID1cbmNsb25lYWJsZVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jbG9uZWAgYW5kIGBfLmNsb25lRGVlcGAgd2hpY2ggdHJhY2tzXG4gKiB0cmF2ZXJzZWQgb2JqZWN0cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuXG4gKiAgMSAtIERlZXAgY2xvbmVcbiAqICAyIC0gRmxhdHRlbiBpbmhlcml0ZWQgcHJvcGVydGllc1xuICogIDQgLSBDbG9uZSBzeW1ib2xzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjbG9uaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIFRoZSBrZXkgb2YgYHZhbHVlYC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgcGFyZW50IG9iamVjdCBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBvYmplY3RzIGFuZCB0aGVpciBjbG9uZSBjb3VudGVycGFydHMuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgY2xvbmVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBiYXNlQ2xvbmUodmFsdWUsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGtleSwgb2JqZWN0LCBzdGFjaykge1xuICB2YXIgcmVzdWx0LFxuICAgICAgaXNEZWVwID0gYml0bWFzayAmIENMT05FX0RFRVBfRkxBRyxcbiAgICAgIGlzRmxhdCA9IGJpdG1hc2sgJiBDTE9ORV9GTEFUX0ZMQUcsXG4gICAgICBpc0Z1bGwgPSBiaXRtYXNrICYgQ0xPTkVfU1lNQk9MU19GTEFHO1xuXG4gIGlmIChjdXN0b21pemVyKSB7XG4gICAgcmVzdWx0ID0gb2JqZWN0ID8gY3VzdG9taXplcih2YWx1ZSwga2V5LCBvYmplY3QsIHN0YWNrKSA6IGN1c3RvbWl6ZXIodmFsdWUpO1xuICB9XG4gIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSk7XG4gIGlmIChpc0Fycikge1xuICAgIHJlc3VsdCA9IGluaXRDbG9uZUFycmF5KHZhbHVlKTtcbiAgICBpZiAoIWlzRGVlcCkge1xuICAgICAgcmV0dXJuIGNvcHlBcnJheSh2YWx1ZSwgcmVzdWx0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHRhZyA9IGdldFRhZyh2YWx1ZSksXG4gICAgICAgIGlzRnVuYyA9IHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWc7XG5cbiAgICBpZiAoaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY2xvbmVCdWZmZXIodmFsdWUsIGlzRGVlcCk7XG4gICAgfVxuICAgIGlmICh0YWcgPT0gb2JqZWN0VGFnIHx8IHRhZyA9PSBhcmdzVGFnIHx8IChpc0Z1bmMgJiYgIW9iamVjdCkpIHtcbiAgICAgIHJlc3VsdCA9IChpc0ZsYXQgfHwgaXNGdW5jKSA/IHt9IDogaW5pdENsb25lT2JqZWN0KHZhbHVlKTtcbiAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBpc0ZsYXRcbiAgICAgICAgICA/IGNvcHlTeW1ib2xzSW4odmFsdWUsIGJhc2VBc3NpZ25JbihyZXN1bHQsIHZhbHVlKSlcbiAgICAgICAgICA6IGNvcHlTeW1ib2xzKHZhbHVlLCBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFjbG9uZWFibGVUYWdzW3RhZ10pIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdCA/IHZhbHVlIDoge307XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBpbml0Q2xvbmVCeVRhZyh2YWx1ZSwgdGFnLCBpc0RlZXApO1xuICAgIH1cbiAgfVxuICAvLyBDaGVjayBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlcyBhbmQgcmV0dXJuIGl0cyBjb3JyZXNwb25kaW5nIGNsb25lLlxuICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICB2YXIgc3RhY2tlZCA9IHN0YWNrLmdldCh2YWx1ZSk7XG4gIGlmIChzdGFja2VkKSB7XG4gICAgcmV0dXJuIHN0YWNrZWQ7XG4gIH1cbiAgc3RhY2suc2V0KHZhbHVlLCByZXN1bHQpO1xuXG4gIGlmIChpc1NldCh2YWx1ZSkpIHtcbiAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKHN1YlZhbHVlKSB7XG4gICAgICByZXN1bHQuYWRkKGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3ViVmFsdWUsIHZhbHVlLCBzdGFjaykpO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKGlzTWFwKHZhbHVlKSkge1xuICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgICAgcmVzdWx0LnNldChrZXksIGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2spKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBrZXlzRnVuYyA9IGlzRnVsbFxuICAgID8gKGlzRmxhdCA/IGdldEFsbEtleXNJbiA6IGdldEFsbEtleXMpXG4gICAgOiAoaXNGbGF0ID8ga2V5c0luIDoga2V5cyk7XG5cbiAgdmFyIHByb3BzID0gaXNBcnIgPyB1bmRlZmluZWQgOiBrZXlzRnVuYyh2YWx1ZSk7XG4gIGFycmF5RWFjaChwcm9wcyB8fCB2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgIGlmIChwcm9wcykge1xuICAgICAga2V5ID0gc3ViVmFsdWU7XG4gICAgICBzdWJWYWx1ZSA9IHZhbHVlW2tleV07XG4gICAgfVxuICAgIC8vIFJlY3Vyc2l2ZWx5IHBvcHVsYXRlIGNsb25lIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgYXNzaWduVmFsdWUocmVzdWx0LCBrZXksIGJhc2VDbG9uZShzdWJWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwga2V5LCB2YWx1ZSwgc3RhY2spKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNsb25lO1xuIiwiLyoqXG4gKiBHZXRzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5sYXN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAzXG4gKi9cbmZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuICByZXR1cm4gbGVuZ3RoID8gYXJyYXlbbGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGFzdDtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2xpY2VgIHdpdGhvdXQgYW4gaXRlcmF0ZWUgY2FsbCBndWFyZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNsaWNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD0wXSBUaGUgc3RhcnQgcG9zaXRpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW2VuZD1hcnJheS5sZW5ndGhdIFRoZSBlbmQgcG9zaXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHNsaWNlIG9mIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VTbGljZShhcnJheSwgc3RhcnQsIGVuZCkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgfVxuICBlbmQgPSBlbmQgPiBsZW5ndGggPyBsZW5ndGggOiBlbmQ7XG4gIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kICs9IGxlbmd0aDtcbiAgfVxuICBsZW5ndGggPSBzdGFydCA+IGVuZCA/IDAgOiAoKGVuZCAtIHN0YXJ0KSA+Pj4gMCk7XG4gIHN0YXJ0ID4+Pj0gMDtcblxuICB2YXIgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gYXJyYXlbaW5kZXggKyBzdGFydF07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlU2xpY2U7XG4iLCJ2YXIgYmFzZUdldCA9IHJlcXVpcmUoJy4vX2Jhc2VHZXQnKSxcbiAgICBiYXNlU2xpY2UgPSByZXF1aXJlKCcuL19iYXNlU2xpY2UnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwYXJlbnQgdmFsdWUgYXQgYHBhdGhgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IHZhbHVlIG9mLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHBhcmVudCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gcGFyZW50KG9iamVjdCwgcGF0aCkge1xuICByZXR1cm4gcGF0aC5sZW5ndGggPCAyID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInZhciBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgbGFzdCA9IHJlcXVpcmUoJy4vbGFzdCcpLFxuICAgIHBhcmVudCA9IHJlcXVpcmUoJy4vX3BhcmVudCcpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bnNldGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcHJvcGVydHkgcGF0aCB0byB1bnNldC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvcGVydHkgaXMgZGVsZXRlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlVW5zZXQob2JqZWN0LCBwYXRoKSB7XG4gIHBhdGggPSBjYXN0UGF0aChwYXRoLCBvYmplY3QpO1xuICBvYmplY3QgPSBwYXJlbnQob2JqZWN0LCBwYXRoKTtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsIHx8IGRlbGV0ZSBvYmplY3RbdG9LZXkobGFzdChwYXRoKSldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VVbnNldDtcbiIsInZhciBpc1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi9pc1BsYWluT2JqZWN0Jyk7XG5cbi8qKlxuICogVXNlZCBieSBgXy5vbWl0YCB0byBjdXN0b21pemUgaXRzIGBfLmNsb25lRGVlcGAgdXNlIHRvIG9ubHkgY2xvbmUgcGxhaW5cbiAqIG9iamVjdHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdW5jbG9uZWQgdmFsdWUgb3IgYHVuZGVmaW5lZGAgdG8gZGVmZXIgY2xvbmluZyB0byBgXy5jbG9uZURlZXBgLlxuICovXG5mdW5jdGlvbiBjdXN0b21PbWl0Q2xvbmUodmFsdWUpIHtcbiAgcmV0dXJuIGlzUGxhaW5PYmplY3QodmFsdWUpID8gdW5kZWZpbmVkIDogdmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3VzdG9tT21pdENsb25lO1xuIiwidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ByZWFkYWJsZVN5bWJvbCA9IFN5bWJvbCA/IFN5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBmbGF0dGVuYWJsZSBgYXJndW1lbnRzYCBvYmplY3Qgb3IgYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZmxhdHRlbmFibGUsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNGbGF0dGVuYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gaXNBcnJheSh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgISEoc3ByZWFkYWJsZVN5bWJvbCAmJiB2YWx1ZSAmJiB2YWx1ZVtzcHJlYWRhYmxlU3ltYm9sXSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGbGF0dGVuYWJsZTtcbiIsInZhciBhcnJheVB1c2ggPSByZXF1aXJlKCcuL19hcnJheVB1c2gnKSxcbiAgICBpc0ZsYXR0ZW5hYmxlID0gcmVxdWlyZSgnLi9faXNGbGF0dGVuYWJsZScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZsYXR0ZW5gIHdpdGggc3VwcG9ydCBmb3IgcmVzdHJpY3RpbmcgZmxhdHRlbmluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gKiBAcGFyYW0ge251bWJlcn0gZGVwdGggVGhlIG1heGltdW0gcmVjdXJzaW9uIGRlcHRoLlxuICogQHBhcmFtIHtib29sZWFufSBbcHJlZGljYXRlPWlzRmxhdHRlbmFibGVdIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1N0cmljdF0gUmVzdHJpY3QgdG8gdmFsdWVzIHRoYXQgcGFzcyBgcHJlZGljYXRlYCBjaGVja3MuXG4gKiBAcGFyYW0ge0FycmF5fSBbcmVzdWx0PVtdXSBUaGUgaW5pdGlhbCByZXN1bHQgdmFsdWUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGJhc2VGbGF0dGVuKGFycmF5LCBkZXB0aCwgcHJlZGljYXRlLCBpc1N0cmljdCwgcmVzdWx0KSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHByZWRpY2F0ZSB8fCAocHJlZGljYXRlID0gaXNGbGF0dGVuYWJsZSk7XG4gIHJlc3VsdCB8fCAocmVzdWx0ID0gW10pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgIGlmIChkZXB0aCA+IDAgJiYgcHJlZGljYXRlKHZhbHVlKSkge1xuICAgICAgaWYgKGRlcHRoID4gMSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgICAgICBiYXNlRmxhdHRlbih2YWx1ZSwgZGVwdGggLSAxLCBwcmVkaWNhdGUsIGlzU3RyaWN0LCByZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyYXlQdXNoKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWlzU3RyaWN0KSB7XG4gICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aF0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRmxhdHRlbjtcbiIsInZhciBiYXNlRmxhdHRlbiA9IHJlcXVpcmUoJy4vX2Jhc2VGbGF0dGVuJyk7XG5cbi8qKlxuICogRmxhdHRlbnMgYGFycmF5YCBhIHNpbmdsZSBsZXZlbCBkZWVwLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGZsYXR0ZW4uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBmbGF0dGVuZWQgYXJyYXkuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZmxhdHRlbihbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICogLy8gPT4gWzEsIDIsIFszLCBbNF1dLCA1XVxuICovXG5mdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCAxKSA6IFtdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsYXR0ZW47XG4iLCIvKipcbiAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAqIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYCBhbmQgdGhlIGFyZ3VtZW50cyBvZiBgYXJnc2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYGZ1bmNgLlxuICovXG5mdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZyk7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gIH1cbiAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwbHk7XG4iLCJ2YXIgYXBwbHkgPSByZXF1aXJlKCcuL19hcHBseScpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgcmVzdCBhcnJheSB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkge1xuICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICBhcnJheSA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgfVxuICAgIG90aGVyQXJnc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG92ZXJSZXN0O1xuIiwiLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb25zdGFudCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uY29uc3RhbnQoeyAnYSc6IDEgfSkpO1xuICpcbiAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICogLy8gPT4gW3sgJ2EnOiAxIH0sIHsgJ2EnOiAxIH1dXG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29uc3RhbnQ7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IGl0IHJlY2VpdmVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICpcbiAqIGNvbnNvbGUubG9nKF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlkZW50aXR5O1xuIiwidmFyIGNvbnN0YW50ID0gcmVxdWlyZSgnLi9jb25zdGFudCcpLFxuICAgIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fZGVmaW5lUHJvcGVydHknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAnZW51bWVyYWJsZSc6IGZhbHNlLFxuICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNldFRvU3RyaW5nO1xuIiwiLyoqIFVzZWQgdG8gZGV0ZWN0IGhvdCBmdW5jdGlvbnMgYnkgbnVtYmVyIG9mIGNhbGxzIHdpdGhpbiBhIHNwYW4gb2YgbWlsbGlzZWNvbmRzLiAqL1xudmFyIEhPVF9DT1VOVCA9IDgwMCxcbiAgICBIT1RfU1BBTiA9IDE2O1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTm93ID0gRGF0ZS5ub3c7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQnbGwgc2hvcnQgb3V0IGFuZCBpbnZva2UgYGlkZW50aXR5YCBpbnN0ZWFkXG4gKiBvZiBgZnVuY2Agd2hlbiBpdCdzIGNhbGxlZCBgSE9UX0NPVU5UYCBvciBtb3JlIHRpbWVzIGluIGBIT1RfU1BBTmBcbiAqIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzaG9ydGFibGUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcbiAgdmFyIGNvdW50ID0gMCxcbiAgICAgIGxhc3RDYWxsZWQgPSAwO1xuXG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcbiAgICAgICAgcmVtYWluaW5nID0gSE9UX1NQQU4gLSAoc3RhbXAgLSBsYXN0Q2FsbGVkKTtcblxuICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3J0T3V0O1xuIiwidmFyIGJhc2VTZXRUb1N0cmluZyA9IHJlcXVpcmUoJy4vX2Jhc2VTZXRUb1N0cmluZycpLFxuICAgIHNob3J0T3V0ID0gcmVxdWlyZSgnLi9fc2hvcnRPdXQnKTtcblxuLyoqXG4gKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgZnVuY2AgdG8gcmV0dXJuIGBzdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBzZXRUb1N0cmluZztcbiIsInZhciBmbGF0dGVuID0gcmVxdWlyZSgnLi9mbGF0dGVuJyksXG4gICAgb3ZlclJlc3QgPSByZXF1aXJlKCcuL19vdmVyUmVzdCcpLFxuICAgIHNldFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fc2V0VG9TdHJpbmcnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VSZXN0YCB3aGljaCBmbGF0dGVucyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBmbGF0UmVzdChmdW5jKSB7XG4gIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCB1bmRlZmluZWQsIGZsYXR0ZW4pLCBmdW5jICsgJycpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsYXRSZXN0O1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlQ2xvbmUgPSByZXF1aXJlKCcuL19iYXNlQ2xvbmUnKSxcbiAgICBiYXNlVW5zZXQgPSByZXF1aXJlKCcuL19iYXNlVW5zZXQnKSxcbiAgICBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgY29weU9iamVjdCA9IHJlcXVpcmUoJy4vX2NvcHlPYmplY3QnKSxcbiAgICBjdXN0b21PbWl0Q2xvbmUgPSByZXF1aXJlKCcuL19jdXN0b21PbWl0Q2xvbmUnKSxcbiAgICBmbGF0UmVzdCA9IHJlcXVpcmUoJy4vX2ZsYXRSZXN0JyksXG4gICAgZ2V0QWxsS2V5c0luID0gcmVxdWlyZSgnLi9fZ2V0QWxsS2V5c0luJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIGNsb25pbmcuICovXG52YXIgQ0xPTkVfREVFUF9GTEFHID0gMSxcbiAgICBDTE9ORV9GTEFUX0ZMQUcgPSAyLFxuICAgIENMT05FX1NZTUJPTFNfRkxBRyA9IDQ7XG5cbi8qKlxuICogVGhlIG9wcG9zaXRlIG9mIGBfLnBpY2tgOyB0aGlzIG1ldGhvZCBjcmVhdGVzIGFuIG9iamVjdCBjb21wb3NlZCBvZiB0aGVcbiAqIG93biBhbmQgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydHkgcGF0aHMgb2YgYG9iamVjdGAgdGhhdCBhcmUgbm90IG9taXR0ZWQuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGNvbnNpZGVyYWJseSBzbG93ZXIgdGhhbiBgXy5waWNrYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBzb3VyY2Ugb2JqZWN0LlxuICogQHBhcmFtIHsuLi4oc3RyaW5nfHN0cmluZ1tdKX0gW3BhdGhzXSBUaGUgcHJvcGVydHkgcGF0aHMgdG8gb21pdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSwgJ2InOiAnMicsICdjJzogMyB9O1xuICpcbiAqIF8ub21pdChvYmplY3QsIFsnYScsICdjJ10pO1xuICogLy8gPT4geyAnYic6ICcyJyB9XG4gKi9cbnZhciBvbWl0ID0gZmxhdFJlc3QoZnVuY3Rpb24ob2JqZWN0LCBwYXRocykge1xuICB2YXIgcmVzdWx0ID0ge307XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgdmFyIGlzRGVlcCA9IGZhbHNlO1xuICBwYXRocyA9IGFycmF5TWFwKHBhdGhzLCBmdW5jdGlvbihwYXRoKSB7XG4gICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4gICAgaXNEZWVwIHx8IChpc0RlZXAgPSBwYXRoLmxlbmd0aCA+IDEpO1xuICAgIHJldHVybiBwYXRoO1xuICB9KTtcbiAgY29weU9iamVjdChvYmplY3QsIGdldEFsbEtleXNJbihvYmplY3QpLCByZXN1bHQpO1xuICBpZiAoaXNEZWVwKSB7XG4gICAgcmVzdWx0ID0gYmFzZUNsb25lKHJlc3VsdCwgQ0xPTkVfREVFUF9GTEFHIHwgQ0xPTkVfRkxBVF9GTEFHIHwgQ0xPTkVfU1lNQk9MU19GTEFHLCBjdXN0b21PbWl0Q2xvbmUpO1xuICB9XG4gIHZhciBsZW5ndGggPSBwYXRocy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGJhc2VVbnNldChyZXN1bHQsIHBhdGhzW2xlbmd0aF0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBvbWl0O1xuIiwiaW1wb3J0IGpzb25wb2ludGVyIGZyb20gJ2pzb25wb2ludGVyJztcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0JztcbmltcG9ydCB7IFJFRl9LRVkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKiogU3BsaXRzIG91dCB0aGUgdmFsdWUgYXQgdGhlIGBrZXlgIGluIGBvYmplY3RgIGZyb20gdGhlIGBvYmplY3RgLCByZXR1cm5pbmcgYW4gYXJyYXkgdGhhdCBjb250YWlucyBpbiB0aGUgZmlyc3RcbiAqIGxvY2F0aW9uLCB0aGUgYG9iamVjdGAgbWludXMgdGhlIGBrZXk6IHZhbHVlYCBhbmQgaW4gdGhlIHNlY29uZCBsb2NhdGlvbiB0aGUgYHZhbHVlYC5cbiAqXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBmcm9tIHRoZSBvYmplY3QgdG8gZXh0cmFjdFxuICogQHBhcmFtIG9iamVjdCAtIFRoZSBvYmplY3QgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBlbGVtZW50XG4gKiBAcmV0dXJucyAtIEFuIGFycmF5IHdpdGggdGhlIGZpcnN0IHZhbHVlIGJlaW5nIHRoZSBvYmplY3QgbWludXMgdGhlIGBrZXlgIGVsZW1lbnQgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBiZWluZyB0aGVcbiAqICAgICAgdmFsdWUgZnJvbSBgb2JqZWN0W2tleV1gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEtleUVsZW1lbnRGcm9tT2JqZWN0KGtleSwgb2JqZWN0KSB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgICBjb25zdCByZW1haW5pbmcgPSBvbWl0KG9iamVjdCwgW2tleV0pO1xuICAgIHJldHVybiBbcmVtYWluaW5nLCB2YWx1ZV07XG59XG4vKiogR2l2ZW4gdGhlIG5hbWUgb2YgYSBgJHJlZmAgZnJvbSB3aXRoaW4gYSBzY2hlbWEsIHVzaW5nIHRoZSBgcm9vdFNjaGVtYWAsIHJlY3Vyc2l2ZWx5IGxvb2sgdXAgYW5kIHJldHVybiB0aGVcbiAqIHN1Yi1zY2hlbWEgdXNpbmcgdGhlIHBhdGggcHJvdmlkZWQgYnkgdGhhdCByZWZlcmVuY2UuIElmIGAjYCBpcyBub3QgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcmVmZXJlbmNlLCB0aGUgcGF0aFxuICogZG9lcyBub3QgZXhpc3QgaW4gdGhlIHNjaGVtYSwgb3IgdGhlIHJlZmVyZW5jZSByZXNvbHZlcyBjaXJjdWxhcmx5IGJhY2sgdG8gaXRzZWxmLCB0aGVuIHRocm93IGFuIEVycm9yLlxuICogT3RoZXJ3aXNlIHJldHVybiB0aGUgc3ViLXNjaGVtYS4gQWxzbyBkZWFscyB3aXRoIG5lc3RlZCBgJHJlZmBzIGluIHRoZSBzdWItc2NoZW1hLlxuICpcbiAqIEBwYXJhbSAkcmVmIC0gVGhlIHJlZiBzdHJpbmcgZm9yIHdoaWNoIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBpcyBkZXNpcmVkXG4gKiBAcGFyYW0gW3Jvb3RTY2hlbWE9e31dIC0gVGhlIHJvb3Qgc2NoZW1hIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGRlZmluaXRpb25cbiAqIEBwYXJhbSByZWN1cnNlTGlzdCAtIExpc3Qgb2YgJHJlZnMgYWxyZWFkeSByZXNvbHZlZCB0byBwcmV2ZW50IHJlY3Vyc2lvblxuICogQHJldHVybnMgLSBUaGUgc3ViLXNjaGVtYSB3aXRoaW4gdGhlIGByb290U2NoZW1hYCB3aGljaCBtYXRjaGVzIHRoZSBgJHJlZmAgaWYgaXQgZXhpc3RzXG4gKiBAdGhyb3dzIC0gRXJyb3IgaW5kaWNhdGluZyB0aGF0IG5vIHNjaGVtYSBmb3IgdGhhdCByZWZlcmVuY2UgY291bGQgYmUgcmVzb2x2ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRTY2hlbWFEZWZpbml0aW9uUmVjdXJzaXZlKCRyZWYsIHJvb3RTY2hlbWEgPSB7fSwgcmVjdXJzZUxpc3QgPSBbXSkge1xuICAgIGNvbnN0IHJlZiA9ICRyZWYgfHwgJyc7XG4gICAgbGV0IGRlY29kZWRSZWY7XG4gICAgaWYgKHJlZi5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgICAgLy8gRGVjb2RlIFVSSSBmcmFnbWVudCByZXByZXNlbnRhdGlvbi5cbiAgICAgICAgZGVjb2RlZFJlZiA9IGRlY29kZVVSSUNvbXBvbmVudChyZWYuc3Vic3RyaW5nKDEpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgYSBkZWZpbml0aW9uIGZvciAkeyRyZWZ9LmApO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0ganNvbnBvaW50ZXIuZ2V0KHJvb3RTY2hlbWEsIGRlY29kZWRSZWYpO1xuICAgIGlmIChjdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhIGRlZmluaXRpb24gZm9yICR7JHJlZn0uYCk7XG4gICAgfVxuICAgIGNvbnN0IG5leHRSZWYgPSBjdXJyZW50W1JFRl9LRVldO1xuICAgIGlmIChuZXh0UmVmKSB7XG4gICAgICAgIC8vIENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzLlxuICAgICAgICBpZiAocmVjdXJzZUxpc3QuaW5jbHVkZXMobmV4dFJlZikpIHtcbiAgICAgICAgICAgIGlmIChyZWN1cnNlTGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERlZmluaXRpb24gZm9yICR7JHJlZn0gaXMgYSBjaXJjdWxhciByZWZlcmVuY2VgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IFtmaXJzdFJlZiwgLi4ucmVzdFJlZnNdID0gcmVjdXJzZUxpc3Q7XG4gICAgICAgICAgICBjb25zdCBjaXJjdWxhclBhdGggPSBbLi4ucmVzdFJlZnMsIHJlZiwgZmlyc3RSZWZdLmpvaW4oJyAtPiAnKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGVmaW5pdGlvbiBmb3IgJHtmaXJzdFJlZn0gY29udGFpbnMgYSBjaXJjdWxhciByZWZlcmVuY2UgdGhyb3VnaCAke2NpcmN1bGFyUGF0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbcmVtYWluaW5nLCB0aGVSZWZdID0gc3BsaXRLZXlFbGVtZW50RnJvbU9iamVjdChSRUZfS0VZLCBjdXJyZW50KTtcbiAgICAgICAgY29uc3Qgc3ViU2NoZW1hID0gZmluZFNjaGVtYURlZmluaXRpb25SZWN1cnNpdmUodGhlUmVmLCByb290U2NoZW1hLCBbLi4ucmVjdXJzZUxpc3QsIHJlZl0pO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocmVtYWluaW5nKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5yZW1haW5pbmcsIC4uLnN1YlNjaGVtYSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWJTY2hlbWE7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50O1xufVxuLyoqIEdpdmVuIHRoZSBuYW1lIG9mIGEgYCRyZWZgIGZyb20gd2l0aGluIGEgc2NoZW1hLCB1c2luZyB0aGUgYHJvb3RTY2hlbWFgLCBsb29rIHVwIGFuZCByZXR1cm4gdGhlIHN1Yi1zY2hlbWEgdXNpbmcgdGhlXG4gKiBwYXRoIHByb3ZpZGVkIGJ5IHRoYXQgcmVmZXJlbmNlLiBJZiBgI2AgaXMgbm90IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJlZmVyZW5jZSwgdGhlIHBhdGggZG9lcyBub3QgZXhpc3QgaW5cbiAqIHRoZSBzY2hlbWEsIG9yIHRoZSByZWZlcmVuY2UgcmVzb2x2ZXMgY2lyY3VsYXJseSBiYWNrIHRvIGl0c2VsZiwgdGhlbiB0aHJvdyBhbiBFcnJvci4gT3RoZXJ3aXNlIHJldHVybiB0aGVcbiAqIHN1Yi1zY2hlbWEuIEFsc28gZGVhbHMgd2l0aCBuZXN0ZWQgYCRyZWZgcyBpbiB0aGUgc3ViLXNjaGVtYS5cbiAqXG4gKiBAcGFyYW0gJHJlZiAtIFRoZSByZWYgc3RyaW5nIGZvciB3aGljaCB0aGUgc2NoZW1hIGRlZmluaXRpb24gaXMgZGVzaXJlZFxuICogQHBhcmFtIFtyb290U2NoZW1hPXt9XSAtIFRoZSByb290IHNjaGVtYSBpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyAtIFRoZSBzdWItc2NoZW1hIHdpdGhpbiB0aGUgYHJvb3RTY2hlbWFgIHdoaWNoIG1hdGNoZXMgdGhlIGAkcmVmYCBpZiBpdCBleGlzdHNcbiAqIEB0aHJvd3MgLSBFcnJvciBpbmRpY2F0aW5nIHRoYXQgbm8gc2NoZW1hIGZvciB0aGF0IHJlZmVyZW5jZSBjb3VsZCBiZSByZXNvbHZlZFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kU2NoZW1hRGVmaW5pdGlvbigkcmVmLCByb290U2NoZW1hID0ge30pIHtcbiAgICBjb25zdCByZWN1cnNlTGlzdCA9IFtdO1xuICAgIHJldHVybiBmaW5kU2NoZW1hRGVmaW5pdGlvblJlY3Vyc2l2ZSgkcmVmLCByb290U2NoZW1hLCByZWN1cnNlTGlzdCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maW5kU2NoZW1hRGVmaW5pdGlvbi5qcy5tYXAiLCIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmhhc2Agd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUhhcyhvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ICE9IG51bGwgJiYgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUhhcztcbiIsInZhciBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL19pc0luZGV4JyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyksXG4gICAgdG9LZXkgPSByZXF1aXJlKCcuL190b0tleScpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgcGF0aGAgZXhpc3RzIG9uIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGhhc0Z1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrIHByb3BlcnRpZXMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xuICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHBhdGgubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gZmFsc2U7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pO1xuICAgIGlmICghKHJlc3VsdCA9IG9iamVjdCAhPSBudWxsICYmIGhhc0Z1bmMob2JqZWN0LCBrZXkpKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIG9iamVjdCA9IG9iamVjdFtrZXldO1xuICB9XG4gIGlmIChyZXN1bHQgfHwgKytpbmRleCAhPSBsZW5ndGgpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGxlbmd0aCA9IG9iamVjdCA9PSBudWxsID8gMCA6IG9iamVjdC5sZW5ndGg7XG4gIHJldHVybiAhIWxlbmd0aCAmJiBpc0xlbmd0aChsZW5ndGgpICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpICYmXG4gICAgKGlzQXJyYXkob2JqZWN0KSB8fCBpc0FyZ3VtZW50cyhvYmplY3QpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNQYXRoO1xuIiwidmFyIGJhc2VIYXMgPSByZXF1aXJlKCcuL19iYXNlSGFzJyksXG4gICAgaGFzUGF0aCA9IHJlcXVpcmUoJy4vX2hhc1BhdGgnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHBhdGhgIGlzIGEgZGlyZWN0IHByb3BlcnR5IG9mIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBwYXRoYCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiB7ICdiJzogMiB9IH07XG4gKiB2YXIgb3RoZXIgPSBfLmNyZWF0ZSh7ICdhJzogXy5jcmVhdGUoeyAnYic6IDIgfSkgfSk7XG4gKlxuICogXy5oYXMob2JqZWN0LCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzKG9iamVjdCwgJ2EuYicpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzKG9iamVjdCwgWydhJywgJ2InXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXMob3RoZXIsICdhJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBoYXMob2JqZWN0LCBwYXRoKSB7XG4gIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhcyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgTnVtYmVyYCBwcmltaXRpdmUgb3Igb2JqZWN0LlxuICpcbiAqICoqTm90ZToqKiBUbyBleGNsdWRlIGBJbmZpbml0eWAsIGAtSW5maW5pdHlgLCBhbmQgYE5hTmAsIHdoaWNoIGFyZVxuICogY2xhc3NpZmllZCBhcyBudW1iZXJzLCB1c2UgdGhlIGBfLmlzRmluaXRlYCBtZXRob2QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBudW1iZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc051bWJlcigzKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOdW1iZXIoSW5maW5pdHkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOdW1iZXIoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgfHxcbiAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBudW1iZXJUYWcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzTnVtYmVyO1xuIiwidmFyIGJhc2VHZXRUYWcgPSByZXF1aXJlKCcuL19iYXNlR2V0VGFnJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN0cmluZ2AgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN0cmluZywgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3RyaW5nKCdhYmMnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzU3RyaW5nKDEpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fFxuICAgICghaXNBcnJheSh2YWx1ZSkgJiYgaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBzdHJpbmdUYWcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzU3RyaW5nO1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ucmVkdWNlYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAqIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpbml0QWNjdW1dIFNwZWNpZnkgdXNpbmcgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYGFycmF5YCBhc1xuICogIHRoZSBpbml0aWFsIHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGFjY3VtdWxhdGVkIHZhbHVlLlxuICovXG5mdW5jdGlvbiBhcnJheVJlZHVjZShhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0pIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcblxuICBpZiAoaW5pdEFjY3VtICYmIGxlbmd0aCkge1xuICAgIGFjY3VtdWxhdG9yID0gYXJyYXlbKytpbmRleF07XG4gIH1cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhY2N1bXVsYXRvciA9IGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCBhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gIH1cbiAgcmV0dXJuIGFjY3VtdWxhdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5UmVkdWNlO1xuIiwiLyoqXG4gKiBDcmVhdGVzIGEgYmFzZSBmdW5jdGlvbiBmb3IgbWV0aG9kcyBsaWtlIGBfLmZvckluYCBhbmQgYF8uZm9yT3duYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBiYXNlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVCYXNlRm9yKGZyb21SaWdodCkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0LCBpdGVyYXRlZSwga2V5c0Z1bmMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgaXRlcmFibGUgPSBPYmplY3Qob2JqZWN0KSxcbiAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wc1tmcm9tUmlnaHQgPyBsZW5ndGggOiArK2luZGV4XTtcbiAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQmFzZUZvcjtcbiIsInZhciBjcmVhdGVCYXNlRm9yID0gcmVxdWlyZSgnLi9fY3JlYXRlQmFzZUZvcicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBiYXNlRm9yT3duYCB3aGljaCBpdGVyYXRlcyBvdmVyIGBvYmplY3RgXG4gKiBwcm9wZXJ0aWVzIHJldHVybmVkIGJ5IGBrZXlzRnVuY2AgYW5kIGludm9rZXMgYGl0ZXJhdGVlYCBmb3IgZWFjaCBwcm9wZXJ0eS5cbiAqIEl0ZXJhdGVlIGZ1bmN0aW9ucyBtYXkgZXhpdCBpdGVyYXRpb24gZWFybHkgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xudmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvcjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9fYmFzZUZvcicpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5mb3JPd25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgcmV0dXJuIG9iamVjdCAmJiBiYXNlRm9yKG9iamVjdCwgaXRlcmF0ZWUsIGtleXMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGb3JPd247XG4iLCJ2YXIgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBiYXNlRWFjaGAgb3IgYGJhc2VFYWNoUmlnaHRgIGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUVhY2goZWFjaEZ1bmMsIGZyb21SaWdodCkge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUpIHtcbiAgICBpZiAoY29sbGVjdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICB9XG4gICAgaWYgKCFpc0FycmF5TGlrZShjb2xsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICBpbmRleCA9IGZyb21SaWdodCA/IGxlbmd0aCA6IC0xLFxuICAgICAgICBpdGVyYWJsZSA9IE9iamVjdChjb2xsZWN0aW9uKTtcblxuICAgIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgICBpZiAoaXRlcmF0ZWUoaXRlcmFibGVbaW5kZXhdLCBpbmRleCwgaXRlcmFibGUpID09PSBmYWxzZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQmFzZUVhY2g7XG4iLCJ2YXIgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vX2Jhc2VGb3JPd24nKSxcbiAgICBjcmVhdGVCYXNlRWFjaCA9IHJlcXVpcmUoJy4vX2NyZWF0ZUJhc2VFYWNoJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yRWFjaGAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyBgY29sbGVjdGlvbmAuXG4gKi9cbnZhciBiYXNlRWFjaCA9IGNyZWF0ZUJhc2VFYWNoKGJhc2VGb3JPd24pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VFYWNoO1xuIiwidmFyIFN0YWNrID0gcmVxdWlyZSgnLi9fU3RhY2snKSxcbiAgICBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vX2Jhc2VJc0VxdWFsJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHZhbHVlIGNvbXBhcmlzb25zLiAqL1xudmFyIENPTVBBUkVfUEFSVElBTF9GTEFHID0gMSxcbiAgICBDT01QQVJFX1VOT1JERVJFRF9GTEFHID0gMjtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEBwYXJhbSB7QXJyYXl9IG1hdGNoRGF0YSBUaGUgcHJvcGVydHkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpc29ucy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGluZGV4ID0gbWF0Y2hEYXRhLmxlbmd0aCxcbiAgICAgIGxlbmd0aCA9IGluZGV4LFxuICAgICAgbm9DdXN0b21pemVyID0gIWN1c3RvbWl6ZXI7XG5cbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuICFsZW5ndGg7XG4gIH1cbiAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICA6ICEoZGF0YVswXSBpbiBvYmplY3QpXG4gICAgICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBzcmNWYWx1ZSA9IGRhdGFbMV07XG5cbiAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3RhY2sgPSBuZXcgU3RhY2s7XG4gICAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKTtcbiAgICAgIH1cbiAgICAgIGlmICghKHJlc3VsdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IGJhc2VJc0VxdWFsKHNyY1ZhbHVlLCBvYmpWYWx1ZSwgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgfCBDT01QQVJFX1VOT1JERVJFRF9GTEFHLCBjdXN0b21pemVyLCBzdGFjaylcbiAgICAgICAgICAgIDogcmVzdWx0XG4gICAgICAgICAgKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc01hdGNoO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHN1aXRhYmxlIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaWYgc3VpdGFibGUgZm9yIHN0cmljdFxuICogIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IHZhbHVlICYmICFpc09iamVjdCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpY3RDb21wYXJhYmxlO1xuIiwidmFyIGlzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vX2lzU3RyaWN0Q29tcGFyYWJsZScpLFxuICAgIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lcywgdmFsdWVzLCBhbmQgY29tcGFyZSBmbGFncyBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBtYXRjaCBkYXRhIG9mIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBnZXRNYXRjaERhdGEob2JqZWN0KSB7XG4gIHZhciByZXN1bHQgPSBrZXlzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHZhciBrZXkgPSByZXN1bHRbbGVuZ3RoXSxcbiAgICAgICAgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIHJlc3VsdFtsZW5ndGhdID0gW2tleSwgdmFsdWUsIGlzU3RyaWN0Q29tcGFyYWJsZSh2YWx1ZSldO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TWF0Y2hEYXRhO1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYG1hdGNoZXNQcm9wZXJ0eWAgZm9yIHNvdXJjZSB2YWx1ZXMgc3VpdGFibGVcbiAqIGZvciBzdHJpY3QgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGkuZS4gYD09PWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZShrZXksIHNyY1ZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdFtrZXldID09PSBzcmNWYWx1ZSAmJlxuICAgICAgKHNyY1ZhbHVlICE9PSB1bmRlZmluZWQgfHwgKGtleSBpbiBPYmplY3Qob2JqZWN0KSkpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlO1xuIiwidmFyIGJhc2VJc01hdGNoID0gcmVxdWlyZSgnLi9fYmFzZUlzTWF0Y2gnKSxcbiAgICBnZXRNYXRjaERhdGEgPSByZXF1aXJlKCcuL19nZXRNYXRjaERhdGEnKSxcbiAgICBtYXRjaGVzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vX21hdGNoZXNTdHJpY3RDb21wYXJhYmxlJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc2Agd2hpY2ggZG9lc24ndCBjbG9uZSBgc291cmNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNwZWMgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VNYXRjaGVzKHNvdXJjZSkge1xuICB2YXIgbWF0Y2hEYXRhID0gZ2V0TWF0Y2hEYXRhKHNvdXJjZSk7XG4gIGlmIChtYXRjaERhdGEubGVuZ3RoID09IDEgJiYgbWF0Y2hEYXRhWzBdWzJdKSB7XG4gICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKG1hdGNoRGF0YVswXVswXSwgbWF0Y2hEYXRhWzBdWzFdKTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PT0gc291cmNlIHx8IGJhc2VJc01hdGNoKG9iamVjdCwgc291cmNlLCBtYXRjaERhdGEpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXRjaGVzO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5oYXNJbmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBrZXkgVGhlIGtleSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBga2V5YCBleGlzdHMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBrZXkgaW4gT2JqZWN0KG9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUhhc0luO1xuIiwidmFyIGJhc2VIYXNJbiA9IHJlcXVpcmUoJy4vX2Jhc2VIYXNJbicpLFxuICAgIGhhc1BhdGggPSByZXF1aXJlKCcuL19oYXNQYXRoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGBwYXRoYCBpcyBhIGRpcmVjdCBvciBpbmhlcml0ZWQgcHJvcGVydHkgb2YgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHBhdGhgIGV4aXN0cywgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0gXy5jcmVhdGUoeyAnYSc6IF8uY3JlYXRlKHsgJ2InOiAyIH0pIH0pO1xuICpcbiAqIF8uaGFzSW4ob2JqZWN0LCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzSW4ob2JqZWN0LCAnYS5iJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5oYXNJbihvYmplY3QsIFsnYScsICdiJ10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaGFzSW4ob2JqZWN0LCAnYicpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaGFzSW4ob2JqZWN0LCBwYXRoKSB7XG4gIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRoKG9iamVjdCwgcGF0aCwgYmFzZUhhc0luKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYXNJbjtcbiIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vX2Jhc2VJc0VxdWFsJyksXG4gICAgZ2V0ID0gcmVxdWlyZSgnLi9nZXQnKSxcbiAgICBoYXNJbiA9IHJlcXVpcmUoJy4vaGFzSW4nKSxcbiAgICBpc0tleSA9IHJlcXVpcmUoJy4vX2lzS2V5JyksXG4gICAgaXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9faXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAgbWF0Y2hlc1N0cmljdENvbXBhcmFibGUgPSByZXF1aXJlKCcuL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZScpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqIFVzZWQgdG8gY29tcG9zZSBiaXRtYXNrcyBmb3IgdmFsdWUgY29tcGFyaXNvbnMuICovXG52YXIgQ09NUEFSRV9QQVJUSUFMX0ZMQUcgPSAxLFxuICAgIENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcgPSAyO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hdGNoZXNQcm9wZXJ0eWAgd2hpY2ggZG9lc24ndCBjbG9uZSBgc3JjVmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gbWF0Y2guXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzcGVjIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gIGlmIChpc0tleShwYXRoKSAmJiBpc1N0cmljdENvbXBhcmFibGUoc3JjVmFsdWUpKSB7XG4gICAgcmV0dXJuIG1hdGNoZXNTdHJpY3RDb21wYXJhYmxlKHRvS2V5KHBhdGgpLCBzcmNWYWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHZhciBvYmpWYWx1ZSA9IGdldChvYmplY3QsIHBhdGgpO1xuICAgIHJldHVybiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBvYmpWYWx1ZSA9PT0gc3JjVmFsdWUpXG4gICAgICA/IGhhc0luKG9iamVjdCwgcGF0aClcbiAgICAgIDogYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9ialZhbHVlLCBDT01QQVJFX1BBUlRJQUxfRkxBRyB8IENPTVBBUkVfVU5PUkRFUkVEX0ZMQUcpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXRjaGVzUHJvcGVydHk7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnByb3BlcnR5YCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VQcm9wZXJ0eShrZXkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VQcm9wZXJ0eTtcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9fYmFzZUdldCcpO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVByb3BlcnR5YCB3aGljaCBzdXBwb3J0cyBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fHN0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYWNjZXNzb3IgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VQcm9wZXJ0eURlZXAocGF0aCkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIGJhc2VHZXQob2JqZWN0LCBwYXRoKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlUHJvcGVydHlEZWVwO1xuIiwidmFyIGJhc2VQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2Jhc2VQcm9wZXJ0eScpLFxuICAgIGJhc2VQcm9wZXJ0eURlZXAgPSByZXF1aXJlKCcuL19iYXNlUHJvcGVydHlEZWVwJyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL19pc0tleScpLFxuICAgIHRvS2V5ID0gcmVxdWlyZSgnLi9fdG9LZXknKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYSBnaXZlbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbXG4gKiAgIHsgJ2EnOiB7ICdiJzogMiB9IH0sXG4gKiAgIHsgJ2EnOiB7ICdiJzogMSB9IH1cbiAqIF07XG4gKlxuICogXy5tYXAob2JqZWN0cywgXy5wcm9wZXJ0eSgnYS5iJykpO1xuICogLy8gPT4gWzIsIDFdXG4gKlxuICogXy5tYXAoXy5zb3J0Qnkob2JqZWN0cywgXy5wcm9wZXJ0eShbJ2EnLCAnYiddKSksICdhLmInKTtcbiAqIC8vID0+IFsxLCAyXVxuICovXG5mdW5jdGlvbiBwcm9wZXJ0eShwYXRoKSB7XG4gIHJldHVybiBpc0tleShwYXRoKSA/IGJhc2VQcm9wZXJ0eSh0b0tleShwYXRoKSkgOiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHByb3BlcnR5O1xuIiwidmFyIGJhc2VNYXRjaGVzID0gcmVxdWlyZSgnLi9fYmFzZU1hdGNoZXMnKSxcbiAgICBiYXNlTWF0Y2hlc1Byb3BlcnR5ID0gcmVxdWlyZSgnLi9fYmFzZU1hdGNoZXNQcm9wZXJ0eScpLFxuICAgIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBwcm9wZXJ0eSA9IHJlcXVpcmUoJy4vcHJvcGVydHknKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pdGVyYXRlZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gW3ZhbHVlPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGFuIGl0ZXJhdGVlLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBpdGVyYXRlZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUl0ZXJhdGVlKHZhbHVlKSB7XG4gIC8vIERvbid0IHN0b3JlIHRoZSBgdHlwZW9mYCByZXN1bHQgaW4gYSB2YXJpYWJsZSB0byBhdm9pZCBhIEpJVCBidWcgaW4gU2FmYXJpIDkuXG4gIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDM0IGZvciBtb3JlIGRldGFpbHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBpZGVudGl0eTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpXG4gICAgICA/IGJhc2VNYXRjaGVzUHJvcGVydHkodmFsdWVbMF0sIHZhbHVlWzFdKVxuICAgICAgOiBiYXNlTWF0Y2hlcyh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHByb3BlcnR5KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSXRlcmF0ZWU7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlZHVjZWAgYW5kIGBfLnJlZHVjZVJpZ2h0YCwgd2l0aG91dCBzdXBwb3J0XG4gKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgd2hpY2ggaXRlcmF0ZXMgb3ZlciBgY29sbGVjdGlvbmAgdXNpbmcgYGVhY2hGdW5jYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gYWNjdW11bGF0b3IgVGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaXRBY2N1bSBTcGVjaWZ5IHVzaW5nIHRoZSBmaXJzdCBvciBsYXN0IGVsZW1lbnQgb2ZcbiAqICBgY29sbGVjdGlvbmAgYXMgdGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZVJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgZWFjaEZ1bmMpIHtcbiAgZWFjaEZ1bmMoY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgYWNjdW11bGF0b3IgPSBpbml0QWNjdW1cbiAgICAgID8gKGluaXRBY2N1bSA9IGZhbHNlLCB2YWx1ZSlcbiAgICAgIDogaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gIH0pO1xuICByZXR1cm4gYWNjdW11bGF0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVJlZHVjZTtcbiIsInZhciBhcnJheVJlZHVjZSA9IHJlcXVpcmUoJy4vX2FycmF5UmVkdWNlJyksXG4gICAgYmFzZUVhY2ggPSByZXF1aXJlKCcuL19iYXNlRWFjaCcpLFxuICAgIGJhc2VJdGVyYXRlZSA9IHJlcXVpcmUoJy4vX2Jhc2VJdGVyYXRlZScpLFxuICAgIGJhc2VSZWR1Y2UgPSByZXF1aXJlKCcuL19iYXNlUmVkdWNlJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpO1xuXG4vKipcbiAqIFJlZHVjZXMgYGNvbGxlY3Rpb25gIHRvIGEgdmFsdWUgd2hpY2ggaXMgdGhlIGFjY3VtdWxhdGVkIHJlc3VsdCBvZiBydW5uaW5nXG4gKiBlYWNoIGVsZW1lbnQgaW4gYGNvbGxlY3Rpb25gIHRocnUgYGl0ZXJhdGVlYCwgd2hlcmUgZWFjaCBzdWNjZXNzaXZlXG4gKiBpbnZvY2F0aW9uIGlzIHN1cHBsaWVkIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByZXZpb3VzLiBJZiBgYWNjdW11bGF0b3JgXG4gKiBpcyBub3QgZ2l2ZW4sIHRoZSBmaXJzdCBlbGVtZW50IG9mIGBjb2xsZWN0aW9uYCBpcyB1c2VkIGFzIHRoZSBpbml0aWFsXG4gKiB2YWx1ZS4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBmb3VyIGFyZ3VtZW50czpcbiAqIChhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gKlxuICogTWFueSBsb2Rhc2ggbWV0aG9kcyBhcmUgZ3VhcmRlZCB0byB3b3JrIGFzIGl0ZXJhdGVlcyBmb3IgbWV0aG9kcyBsaWtlXG4gKiBgXy5yZWR1Y2VgLCBgXy5yZWR1Y2VSaWdodGAsIGFuZCBgXy50cmFuc2Zvcm1gLlxuICpcbiAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICogYGFzc2lnbmAsIGBkZWZhdWx0c2AsIGBkZWZhdWx0c0RlZXBgLCBgaW5jbHVkZXNgLCBgbWVyZ2VgLCBgb3JkZXJCeWAsXG4gKiBhbmQgYHNvcnRCeWBcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gKiBAc2VlIF8ucmVkdWNlUmlnaHRcbiAqIEBleGFtcGxlXG4gKlxuICogXy5yZWR1Y2UoWzEsIDJdLCBmdW5jdGlvbihzdW0sIG4pIHtcbiAqICAgcmV0dXJuIHN1bSArIG47XG4gKiB9LCAwKTtcbiAqIC8vID0+IDNcbiAqXG4gKiBfLnJlZHVjZSh7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDEgfSwgZnVuY3Rpb24ocmVzdWx0LCB2YWx1ZSwga2V5KSB7XG4gKiAgIChyZXN1bHRbdmFsdWVdIHx8IChyZXN1bHRbdmFsdWVdID0gW10pKS5wdXNoKGtleSk7XG4gKiAgIHJldHVybiByZXN1bHQ7XG4gKiB9LCB7fSk7XG4gKiAvLyA9PiB7ICcxJzogWydhJywgJ2MnXSwgJzInOiBbJ2InXSB9IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIHJlZHVjZShjb2xsZWN0aW9uLCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgdmFyIGZ1bmMgPSBpc0FycmF5KGNvbGxlY3Rpb24pID8gYXJyYXlSZWR1Y2UgOiBiYXNlUmVkdWNlLFxuICAgICAgaW5pdEFjY3VtID0gYXJndW1lbnRzLmxlbmd0aCA8IDM7XG5cbiAgcmV0dXJuIGZ1bmMoY29sbGVjdGlvbiwgYmFzZUl0ZXJhdGVlKGl0ZXJhdGVlLCA0KSwgYWNjdW11bGF0b3IsIGluaXRBY2N1bSwgYmFzZUVhY2gpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlZHVjZTtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4vaWRlbnRpdHknKTtcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGBpZGVudGl0eWAgaWYgaXQncyBub3QgYSBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBjYXN0IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjYXN0RnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nID8gdmFsdWUgOiBpZGVudGl0eTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYXN0RnVuY3Rpb247XG4iLCIvKiogVXNlZCB0byBtYXRjaCBhIHNpbmdsZSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4gKi9cbnZhciByZVdoaXRlc3BhY2UgPSAvXFxzLztcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLnRyaW1gIGFuZCBgXy50cmltRW5kYCB0byBnZXQgdGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vbi13aGl0ZXNwYWNlXG4gKiBjaGFyYWN0ZXIgb2YgYHN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcgVGhlIHN0cmluZyB0byBpbnNwZWN0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyLlxuICovXG5mdW5jdGlvbiB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSB7XG4gIHZhciBpbmRleCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKGluZGV4LS0gJiYgcmVXaGl0ZXNwYWNlLnRlc3Qoc3RyaW5nLmNoYXJBdChpbmRleCkpKSB7fVxuICByZXR1cm4gaW5kZXg7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJpbW1lZEVuZEluZGV4O1xuIiwidmFyIHRyaW1tZWRFbmRJbmRleCA9IHJlcXVpcmUoJy4vX3RyaW1tZWRFbmRJbmRleCcpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBsZWFkaW5nIHdoaXRlc3BhY2UuICovXG52YXIgcmVUcmltU3RhcnQgPSAvXlxccysvO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRyaW1gLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHRyaW1tZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBiYXNlVHJpbShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZ1xuICAgID8gc3RyaW5nLnNsaWNlKDAsIHRyaW1tZWRFbmRJbmRleChzdHJpbmcpICsgMSkucmVwbGFjZShyZVRyaW1TdGFydCwgJycpXG4gICAgOiBzdHJpbmc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRyaW07XG4iLCJ2YXIgYmFzZVRyaW0gPSByZXF1aXJlKCcuL19iYXNlVHJpbScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpLFxuICAgIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBOQU4gPSAwIC8gMDtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGJhZCBzaWduZWQgaGV4YWRlY2ltYWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmFkSGV4ID0gL15bLStdMHhbMC05YS1mXSskL2k7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBiaW5hcnkgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzQmluYXJ5ID0gL14wYlswMV0rJC9pO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb2N0YWwgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUlzT2N0YWwgPSAvXjBvWzAtN10rJC9pO1xuXG4vKiogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgd2l0aG91dCBhIGRlcGVuZGVuY3kgb24gYHJvb3RgLiAqL1xudmFyIGZyZWVQYXJzZUludCA9IHBhcnNlSW50O1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBudW1iZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9OdW1iZXIoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9OdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvTnVtYmVyKEluZmluaXR5KTtcbiAqIC8vID0+IEluZmluaXR5XG4gKlxuICogXy50b051bWJlcignMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIE5BTjtcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgdmFyIG90aGVyID0gdHlwZW9mIHZhbHVlLnZhbHVlT2YgPT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAgIHZhbHVlID0gaXNPYmplY3Qob3RoZXIpID8gKG90aGVyICsgJycpIDogb3RoZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogK3ZhbHVlO1xuICB9XG4gIHZhbHVlID0gYmFzZVRyaW0odmFsdWUpO1xuICB2YXIgaXNCaW5hcnkgPSByZUlzQmluYXJ5LnRlc3QodmFsdWUpO1xuICByZXR1cm4gKGlzQmluYXJ5IHx8IHJlSXNPY3RhbC50ZXN0KHZhbHVlKSlcbiAgICA/IGZyZWVQYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgaXNCaW5hcnkgPyAyIDogOClcbiAgICA6IChyZUlzQmFkSGV4LnRlc3QodmFsdWUpID8gTkFOIDogK3ZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b051bWJlcjtcbiIsInZhciB0b051bWJlciA9IHJlcXVpcmUoJy4vdG9OdW1iZXInKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgSU5GSU5JVFkgPSAxIC8gMCxcbiAgICBNQVhfSU5URUdFUiA9IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4O1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBmaW5pdGUgbnVtYmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMi4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBudW1iZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9GaW5pdGUoMy4yKTtcbiAqIC8vID0+IDMuMlxuICpcbiAqIF8udG9GaW5pdGUoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiA1ZS0zMjRcbiAqXG4gKiBfLnRvRmluaXRlKEluZmluaXR5KTtcbiAqIC8vID0+IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4XG4gKlxuICogXy50b0Zpbml0ZSgnMy4yJyk7XG4gKiAvLyA9PiAzLjJcbiAqL1xuZnVuY3Rpb24gdG9GaW5pdGUodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/IHZhbHVlIDogMDtcbiAgfVxuICB2YWx1ZSA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgaWYgKHZhbHVlID09PSBJTkZJTklUWSB8fCB2YWx1ZSA9PT0gLUlORklOSVRZKSB7XG4gICAgdmFyIHNpZ24gPSAodmFsdWUgPCAwID8gLTEgOiAxKTtcbiAgICByZXR1cm4gc2lnbiAqIE1BWF9JTlRFR0VSO1xuICB9XG4gIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyB2YWx1ZSA6IDA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9GaW5pdGU7XG4iLCJ2YXIgdG9GaW5pdGUgPSByZXF1aXJlKCcuL3RvRmluaXRlJyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhbiBpbnRlZ2VyLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvSW50ZWdlcmBdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2ludGVnZXIpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgY29udmVydGVkIGludGVnZXIuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9JbnRlZ2VyKDMuMik7XG4gKiAvLyA9PiAzXG4gKlxuICogXy50b0ludGVnZXIoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiAwXG4gKlxuICogXy50b0ludGVnZXIoSW5maW5pdHkpO1xuICogLy8gPT4gMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDhcbiAqXG4gKiBfLnRvSW50ZWdlcignMy4yJyk7XG4gKiAvLyA9PiAzXG4gKi9cbmZ1bmN0aW9uIHRvSW50ZWdlcih2YWx1ZSkge1xuICB2YXIgcmVzdWx0ID0gdG9GaW5pdGUodmFsdWUpLFxuICAgICAgcmVtYWluZGVyID0gcmVzdWx0ICUgMTtcblxuICByZXR1cm4gcmVzdWx0ID09PSByZXN1bHQgPyAocmVtYWluZGVyID8gcmVzdWx0IC0gcmVtYWluZGVyIDogcmVzdWx0KSA6IDA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9JbnRlZ2VyO1xuIiwidmFyIGJhc2VUaW1lcyA9IHJlcXVpcmUoJy4vX2Jhc2VUaW1lcycpLFxuICAgIGNhc3RGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2Nhc3RGdW5jdGlvbicpLFxuICAgIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vdG9JbnRlZ2VyJyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB0aGUgbWF4aW11bSBsZW5ndGggYW5kIGluZGV4IG9mIGFuIGFycmF5LiAqL1xudmFyIE1BWF9BUlJBWV9MRU5HVEggPSA0Mjk0OTY3Mjk1O1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogSW52b2tlcyB0aGUgaXRlcmF0ZWUgYG5gIHRpbWVzLCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2ZcbiAqIGVhY2ggaW52b2NhdGlvbi4gVGhlIGl0ZXJhdGVlIGlzIGludm9rZWQgd2l0aCBvbmUgYXJndW1lbnQ7IChpbmRleCkuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcmVzdWx0cy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50aW1lcygzLCBTdHJpbmcpO1xuICogLy8gPT4gWycwJywgJzEnLCAnMiddXG4gKlxuICogIF8udGltZXMoNCwgXy5jb25zdGFudCgwKSk7XG4gKiAvLyA9PiBbMCwgMCwgMCwgMF1cbiAqL1xuZnVuY3Rpb24gdGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgbiA9IHRvSW50ZWdlcihuKTtcbiAgaWYgKG4gPCAxIHx8IG4gPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHZhciBpbmRleCA9IE1BWF9BUlJBWV9MRU5HVEgsXG4gICAgICBsZW5ndGggPSBuYXRpdmVNaW4obiwgTUFYX0FSUkFZX0xFTkdUSCk7XG5cbiAgaXRlcmF0ZWUgPSBjYXN0RnVuY3Rpb24oaXRlcmF0ZWUpO1xuICBuIC09IE1BWF9BUlJBWV9MRU5HVEg7XG5cbiAgdmFyIHJlc3VsdCA9IGJhc2VUaW1lcyhsZW5ndGgsIGl0ZXJhdGVlKTtcbiAgd2hpbGUgKCsraW5kZXggPCBuKSB7XG4gICAgaXRlcmF0ZWUoaW5kZXgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGltZXM7XG4iLCJpbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IHsgUFJPUEVSVElFU19LRVkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKiogQ29tcGFyZXMgdGhlIHZhbHVlIG9mIGBkaXNjcmltaW5hdG9yRmllbGRgIHdpdGhpbiBgZm9ybURhdGFgIGFnYWluc3QgdGhlIHZhbHVlIG9mIGBkaXNjcmltaW5hdG9yRmllbGRgIHdpdGhpbiBzY2hlbWEgZm9yIGVhY2ggYG9wdGlvbmAuXG4gKiBSZXR1cm5zIGluZGV4IG9mIGZpcnN0IGBvcHRpb25gIHdob3NlIGRpc2NyaW1pbmF0b3IgbWF0Y2hlcyBmb3JtRGF0YS4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgd29yayB3aXRoIGRpc2NyaW1pbmF0b3JzIG9mIGBcInR5cGVcIjogXCJvYmplY3RcImAgYW5kIGBcInR5cGVcIjogXCJhcnJheVwiYFxuICpcbiAqIEBwYXJhbSBmb3JtRGF0YSAtIFRoZSBjdXJyZW50IGZvcm1EYXRhLCBpZiBhbnksIHVzZWQgdG8gZmlndXJlIG91dCBhIG1hdGNoXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBsaXN0IG9mIG9wdGlvbnMgdG8gZmluZCBhIG1hdGNoaW5nIG9wdGlvbnMgZnJvbVxuICogQHBhcmFtIFtkaXNjcmltaW5hdG9yRmllbGRdIC0gVGhlIG9wdGlvbmFsIG5hbWUgb2YgdGhlIGZpZWxkIHdpdGhpbiB0aGUgb3B0aW9ucyBvYmplY3Qgd2hvc2UgdmFsdWUgaXMgdXNlZCB0b1xuICogICAgICAgICAgZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbiBpcyBzZWxlY3RlZFxuICogQHJldHVybnMgLSBUaGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgb3B0aW9uIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBubyBtYXRjaFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHRpb25NYXRjaGluZ1NpbXBsZURpc2NyaW1pbmF0b3IoZm9ybURhdGEsIG9wdGlvbnMsIGRpc2NyaW1pbmF0b3JGaWVsZCkge1xuICAgIHZhciBfYTtcbiAgICBpZiAoZm9ybURhdGEgJiYgZGlzY3JpbWluYXRvckZpZWxkKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0KGZvcm1EYXRhLCBkaXNjcmltaW5hdG9yRmllbGQpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3IgPSBnZXQob3B0aW9uLCBbUFJPUEVSVElFU19LRVksIGRpc2NyaW1pbmF0b3JGaWVsZF0sIHt9KTtcbiAgICAgICAgICAgIGlmIChkaXNjcmltaW5hdG9yLnR5cGUgPT09ICdvYmplY3QnIHx8IGRpc2NyaW1pbmF0b3IudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRpc2NyaW1pbmF0b3IuY29uc3QgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKF9hID0gZGlzY3JpbWluYXRvci5lbnVtKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0T3B0aW9uTWF0Y2hpbmdTaW1wbGVEaXNjcmltaW5hdG9yLmpzLm1hcCIsImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgaGFzIGZyb20gJ2xvZGFzaC9oYXMnO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2xvZGFzaC9pc051bWJlcic7XG5pbXBvcnQgeyBQUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgZ2V0T3B0aW9uTWF0Y2hpbmdTaW1wbGVEaXNjcmltaW5hdG9yIGZyb20gJy4uL2dldE9wdGlvbk1hdGNoaW5nU2ltcGxlRGlzY3JpbWluYXRvcic7XG4vKiogR2l2ZW4gdGhlIGBmb3JtRGF0YWAgYW5kIGxpc3Qgb2YgYG9wdGlvbnNgLCBhdHRlbXB0cyB0byBmaW5kIHRoZSBpbmRleCBvZiB0aGUgb3B0aW9uIHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBkYXRhLlxuICogRGVwcmVjYXRlZCwgdXNlIGBnZXRGaXJzdE1hdGNoaW5nT3B0aW9uKClgIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHZhbGlkYXRvciAtIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgVmFsaWRhdG9yVHlwZWAgaW50ZXJmYWNlIHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gbmVjZXNzYXJ5XG4gKiBAcGFyYW0gZm9ybURhdGEgLSBUaGUgY3VycmVudCBmb3JtRGF0YSwgaWYgYW55LCB1c2VkIHRvIGZpZ3VyZSBvdXQgYSBtYXRjaFxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgbGlzdCBvZiBvcHRpb25zIHRvIGZpbmQgYSBtYXRjaGluZyBvcHRpb25zIGZyb21cbiAqIEBwYXJhbSByb290U2NoZW1hIC0gVGhlIHJvb3Qgc2NoZW1hLCB1c2VkIHRvIHByaW1hcmlseSB0byBsb29rIHVwIGAkcmVmYHNcbiAqIEBwYXJhbSBbZGlzY3JpbWluYXRvckZpZWxkXSAtIFRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSBmaWVsZCB3aXRoaW4gdGhlIG9wdGlvbnMgb2JqZWN0IHdob3NlIHZhbHVlIGlzIHVzZWQgdG9cbiAqICAgICAgICAgIGRldGVybWluZSB3aGljaCBvcHRpb24gaXMgc2VsZWN0ZWRcbiAqIEByZXR1cm5zIC0gVGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIG9wdGlvbiBvciAwIGlmIG5vbmUgaXMgYXZhaWxhYmxlXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRNYXRjaGluZ09wdGlvbih2YWxpZGF0b3IsIGZvcm1EYXRhLCBvcHRpb25zLCByb290U2NoZW1hLCBkaXNjcmltaW5hdG9yRmllbGQpIHtcbiAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHNraXAgdmFsaWRhdGluZyBzdWJzY2hlbWFzIGlmIGZvcm1EYXRhIGlzIHVuZGVmaW5lZC4gV2UganVzdFxuICAgIC8vIHdhbnQgdG8gZ2V0IHRoZSBmaXJzdCBvcHRpb24gaW4gdGhhdCBjYXNlLlxuICAgIGlmIChmb3JtRGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBjb25zdCBzaW1wbGVEaXNjcmltaW5hdG9yTWF0Y2ggPSBnZXRPcHRpb25NYXRjaGluZ1NpbXBsZURpc2NyaW1pbmF0b3IoZm9ybURhdGEsIG9wdGlvbnMsIGRpc2NyaW1pbmF0b3JGaWVsZCk7XG4gICAgaWYgKGlzTnVtYmVyKHNpbXBsZURpc2NyaW1pbmF0b3JNYXRjaCkpIHtcbiAgICAgICAgcmV0dXJuIHNpbXBsZURpc2NyaW1pbmF0b3JNYXRjaDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnNbaV07XG4gICAgICAgIC8vIElmIHdlIGhhdmUgYSBkaXNjcmltaW5hdG9yIGZpZWxkLCB0aGVuIHdlIHdpbGwgdXNlIHRoaXMgdG8gbWFrZSB0aGUgZGV0ZXJtaW5hdGlvblxuICAgICAgICBpZiAoZGlzY3JpbWluYXRvckZpZWxkICYmIGhhcyhvcHRpb24sIFtQUk9QRVJUSUVTX0tFWSwgZGlzY3JpbWluYXRvckZpZWxkXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0KGZvcm1EYXRhLCBkaXNjcmltaW5hdG9yRmllbGQpO1xuICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvciA9IGdldChvcHRpb24sIFtQUk9QRVJUSUVTX0tFWSwgZGlzY3JpbWluYXRvckZpZWxkXSwge30pO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvci5pc1ZhbGlkKGRpc2NyaW1pbmF0b3IsIHZhbHVlLCByb290U2NoZW1hKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbltQUk9QRVJUSUVTX0tFWV0pIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBzY2hlbWEgZGVzY3JpYmVzIGFuIG9iamVjdCB0aGVuIHdlIG5lZWQgdG8gYWRkIHNsaWdodGx5IG1vcmVcbiAgICAgICAgICAgIC8vIHN0cmljdCBtYXRjaGluZyB0byB0aGUgc2NoZW1hLCBiZWNhdXNlIHVubGVzcyB0aGUgc2NoZW1hIHVzZXMgdGhlXG4gICAgICAgICAgICAvLyBcInJlcXVpcmVzXCIga2V5d29yZCwgYW4gb2JqZWN0IHdpbGwgbWF0Y2ggdGhlIHNjaGVtYSBhcyBsb25nIGFzIGl0XG4gICAgICAgICAgICAvLyBkb2Vzbid0IGhhdmUgbWF0Y2hpbmcga2V5cyB3aXRoIGEgY29uZmxpY3RpbmcgdHlwZS4gVG8gZG8gdGhpcyB3ZSB1c2UgYW5cbiAgICAgICAgICAgIC8vIFwiYW55T2ZcIiB3aXRoIGFuIGFycmF5IG9mIHJlcXVpcmVzLiBUaGlzIGF1Z21lbnRhdGlvbiBleHByZXNzZXMgdGhhdCB0aGVcbiAgICAgICAgICAgIC8vIHNjaGVtYSBzaG91bGQgbWF0Y2ggaWYgYW55IG9mIHRoZSBrZXlzIGluIHRoZSBzY2hlbWEgYXJlIHByZXNlbnQgb24gdGhlXG4gICAgICAgICAgICAvLyBvYmplY3QgYW5kIHBhc3MgdmFsaWRhdGlvbi5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBDcmVhdGUgYW4gXCJhbnlPZlwiIHNjaGVtYSB0aGF0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvZiB0aGUga2V5cyBpbiB0aGVcbiAgICAgICAgICAgIC8vIFwicHJvcGVydGllc1wiIG9iamVjdFxuICAgICAgICAgICAgY29uc3QgcmVxdWlyZXNBbnlPZiA9IHtcbiAgICAgICAgICAgICAgICBhbnlPZjogT2JqZWN0LmtleXMob3B0aW9uW1BST1BFUlRJRVNfS0VZXSkubWFwKChrZXkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBba2V5XSxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGF1Z21lbnRlZFNjaGVtYTtcbiAgICAgICAgICAgIC8vIElmIHRoZSBcImFueU9mXCIga2V5d29yZCBhbHJlYWR5IGV4aXN0cywgd3JhcCB0aGUgYXVnbWVudGF0aW9uIGluIGFuIFwiYWxsT2ZcIlxuICAgICAgICAgICAgaWYgKG9wdGlvbi5hbnlPZikge1xuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIG9wdGlvblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgLi4uc2hhbGxvd0Nsb25lIH0gPSBvcHRpb247XG4gICAgICAgICAgICAgICAgaWYgKCFzaGFsbG93Q2xvbmUuYWxsT2YpIHtcbiAgICAgICAgICAgICAgICAgICAgc2hhbGxvd0Nsb25lLmFsbE9mID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBcImFsbE9mXCIgYWxyZWFkeSBleGlzdHMsIHNoYWxsb3cgY2xvbmUgdGhlIGFycmF5XG4gICAgICAgICAgICAgICAgICAgIHNoYWxsb3dDbG9uZS5hbGxPZiA9IHNoYWxsb3dDbG9uZS5hbGxPZi5zbGljZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzaGFsbG93Q2xvbmUuYWxsT2YucHVzaChyZXF1aXJlc0FueU9mKTtcbiAgICAgICAgICAgICAgICBhdWdtZW50ZWRTY2hlbWEgPSBzaGFsbG93Q2xvbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBhdWdtZW50ZWRTY2hlbWEgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb24sIHJlcXVpcmVzQW55T2YpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBcInJlcXVpcmVkXCIgZmllbGQgYXMgaXQncyBsaWtlbHkgdGhhdCBub3QgYWxsIGZpZWxkcyBoYXZlXG4gICAgICAgICAgICAvLyBiZWVuIGZpbGxlZCBpbiB5ZXQsIHdoaWNoIHdpbGwgbWVhbiB0aGF0IHRoZSBzY2hlbWEgaXMgbm90IHZhbGlkXG4gICAgICAgICAgICBkZWxldGUgYXVnbWVudGVkU2NoZW1hLnJlcXVpcmVkO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRvci5pc1ZhbGlkKGF1Z21lbnRlZFNjaGVtYSwgZm9ybURhdGEsIHJvb3RTY2hlbWEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsaWRhdG9yLmlzVmFsaWQob3B0aW9uLCBmb3JtRGF0YSwgcm9vdFNjaGVtYSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0TWF0Y2hpbmdPcHRpb24uanMubWFwIiwiaW1wb3J0IGdldE1hdGNoaW5nT3B0aW9uIGZyb20gJy4vZ2V0TWF0Y2hpbmdPcHRpb24nO1xuLyoqIEdpdmVuIHRoZSBgZm9ybURhdGFgIGFuZCBsaXN0IG9mIGBvcHRpb25zYCwgYXR0ZW1wdHMgdG8gZmluZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9wdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGRhdGEuXG4gKiBBbHdheXMgcmV0dXJucyB0aGUgZmlyc3Qgb3B0aW9uIGlmIHRoZXJlIGlzIG5vdGhpbmcgdGhhdCBtYXRjaGVzLlxuICpcbiAqIEBwYXJhbSB2YWxpZGF0b3IgLSBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYFZhbGlkYXRvclR5cGVgIGludGVyZmFjZSB0aGF0IHdpbGwgYmUgdXNlZCB3aGVuIG5lY2Vzc2FyeVxuICogQHBhcmFtIGZvcm1EYXRhIC0gVGhlIGN1cnJlbnQgZm9ybURhdGEsIGlmIGFueSwgdXNlZCB0byBmaWd1cmUgb3V0IGEgbWF0Y2hcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGxpc3Qgb2Ygb3B0aW9ucyB0byBmaW5kIGEgbWF0Y2hpbmcgb3B0aW9ucyBmcm9tXG4gKiBAcGFyYW0gcm9vdFNjaGVtYSAtIFRoZSByb290IHNjaGVtYSwgdXNlZCB0byBwcmltYXJpbHkgdG8gbG9vayB1cCBgJHJlZmBzXG4gKiBAcGFyYW0gW2Rpc2NyaW1pbmF0b3JGaWVsZF0gLSBUaGUgb3B0aW9uYWwgbmFtZSBvZiB0aGUgZmllbGQgd2l0aGluIHRoZSBvcHRpb25zIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyB1c2VkIHRvXG4gKiAgICAgICAgICBkZXRlcm1pbmUgd2hpY2ggb3B0aW9uIGlzIHNlbGVjdGVkXG4gKiBAcmV0dXJucyAtIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgbWF0Y2hlZCBvcHRpb24gb3IgMCBpZiBub25lIGlzIGF2YWlsYWJsZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRGaXJzdE1hdGNoaW5nT3B0aW9uKHZhbGlkYXRvciwgZm9ybURhdGEsIG9wdGlvbnMsIHJvb3RTY2hlbWEsIGRpc2NyaW1pbmF0b3JGaWVsZCkge1xuICAgIHJldHVybiBnZXRNYXRjaGluZ09wdGlvbih2YWxpZGF0b3IsIGZvcm1EYXRhLCBvcHRpb25zLCByb290U2NoZW1hLCBkaXNjcmltaW5hdG9yRmllbGQpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0Rmlyc3RNYXRjaGluZ09wdGlvbi5qcy5tYXAiLCJ2YXIgYmFzZUlzRXF1YWwgPSByZXF1aXJlKCcuL19iYXNlSXNFcXVhbCcpO1xuXG4vKipcbiAqIFBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmVcbiAqIGVxdWl2YWxlbnQuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGNvbXBhcmluZyBhcnJheXMsIGFycmF5IGJ1ZmZlcnMsIGJvb2xlYW5zLFxuICogZGF0ZSBvYmplY3RzLCBlcnJvciBvYmplY3RzLCBtYXBzLCBudW1iZXJzLCBgT2JqZWN0YCBvYmplY3RzLCByZWdleGVzLFxuICogc2V0cywgc3RyaW5ncywgc3ltYm9scywgYW5kIHR5cGVkIGFycmF5cy4gYE9iamVjdGAgb2JqZWN0cyBhcmUgY29tcGFyZWRcbiAqIGJ5IHRoZWlyIG93biwgbm90IGluaGVyaXRlZCwgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLiBGdW5jdGlvbnMgYW5kIERPTVxuICogbm9kZXMgYXJlIGNvbXBhcmVkIGJ5IHN0cmljdCBlcXVhbGl0eSwgaS5lLiBgPT09YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5pc0VxdWFsKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIG9iamVjdCA9PT0gb3RoZXI7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0VxdWFsKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gYmFzZUlzRXF1YWwodmFsdWUsIG90aGVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0VxdWFsO1xuIiwidmFyIGFzc2lnblZhbHVlID0gcmVxdWlyZSgnLi9fYXNzaWduVmFsdWUnKSxcbiAgICBjYXN0UGF0aCA9IHJlcXVpcmUoJy4vX2Nhc3RQYXRoJyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vX2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICB0b0tleSA9IHJlcXVpcmUoJy4vX3RvS2V5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uc2V0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZXQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBwYXRoIGNyZWF0aW9uLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNldChvYmplY3QsIHBhdGgsIHZhbHVlLCBjdXN0b21pemVyKSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbiAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aCxcbiAgICAgIGxhc3RJbmRleCA9IGxlbmd0aCAtIDEsXG4gICAgICBuZXN0ZWQgPSBvYmplY3Q7XG5cbiAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gdG9LZXkocGF0aFtpbmRleF0pLFxuICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKGtleSA9PT0gJ19fcHJvdG9fXycgfHwga2V5ID09PSAnY29uc3RydWN0b3InIHx8IGtleSA9PT0gJ3Byb3RvdHlwZScpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xuICAgICAgdmFyIG9ialZhbHVlID0gbmVzdGVkW2tleV07XG4gICAgICBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKG9ialZhbHVlLCBrZXksIG5lc3RlZCkgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBuZXdWYWx1ZSA9IGlzT2JqZWN0KG9ialZhbHVlKVxuICAgICAgICAgID8gb2JqVmFsdWVcbiAgICAgICAgICA6IChpc0luZGV4KHBhdGhbaW5kZXggKyAxXSkgPyBbXSA6IHt9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduVmFsdWUobmVzdGVkLCBrZXksIG5ld1ZhbHVlKTtcbiAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTZXQ7XG4iLCJ2YXIgYmFzZVNldCA9IHJlcXVpcmUoJy4vX2Jhc2VTZXQnKTtcblxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIGEgcG9ydGlvbiBvZiBgcGF0aGAgZG9lc24ndCBleGlzdCxcbiAqIGl0J3MgY3JlYXRlZC4gQXJyYXlzIGFyZSBjcmVhdGVkIGZvciBtaXNzaW5nIGluZGV4IHByb3BlcnRpZXMgd2hpbGUgb2JqZWN0c1xuICogYXJlIGNyZWF0ZWQgZm9yIGFsbCBvdGhlciBtaXNzaW5nIHByb3BlcnRpZXMuIFVzZSBgXy5zZXRXaXRoYCB0byBjdXN0b21pemVcbiAqIGBwYXRoYCBjcmVhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuNy4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gKlxuICogXy5zZXQob2JqZWN0LCAnYVswXS5iLmMnLCA0KTtcbiAqIGNvbnNvbGUubG9nKG9iamVjdC5hWzBdLmIuYyk7XG4gKiAvLyA9PiA0XG4gKlxuICogXy5zZXQob2JqZWN0LCBbJ3gnLCAnMCcsICd5JywgJ3onXSwgNSk7XG4gKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICogLy8gPT4gNVxuICovXG5mdW5jdGlvbiBzZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldDtcbiIsInZhciBhcnJheUVhY2ggPSByZXF1aXJlKCcuL19hcnJheUVhY2gnKSxcbiAgICBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9fYmFzZUNyZWF0ZScpLFxuICAgIGJhc2VGb3JPd24gPSByZXF1aXJlKCcuL19iYXNlRm9yT3duJyksXG4gICAgYmFzZUl0ZXJhdGVlID0gcmVxdWlyZSgnLi9fYmFzZUl0ZXJhdGVlJyksXG4gICAgZ2V0UHJvdG90eXBlID0gcmVxdWlyZSgnLi9fZ2V0UHJvdG90eXBlJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQnVmZmVyID0gcmVxdWlyZSgnLi9pc0J1ZmZlcicpLFxuICAgIGlzRnVuY3Rpb24gPSByZXF1aXJlKCcuL2lzRnVuY3Rpb24nKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKSxcbiAgICBpc1R5cGVkQXJyYXkgPSByZXF1aXJlKCcuL2lzVHlwZWRBcnJheScpO1xuXG4vKipcbiAqIEFuIGFsdGVybmF0aXZlIHRvIGBfLnJlZHVjZWA7IHRoaXMgbWV0aG9kIHRyYW5zZm9ybXMgYG9iamVjdGAgdG8gYSBuZXdcbiAqIGBhY2N1bXVsYXRvcmAgb2JqZWN0IHdoaWNoIGlzIHRoZSByZXN1bHQgb2YgcnVubmluZyBlYWNoIG9mIGl0cyBvd25cbiAqIGVudW1lcmFibGUgc3RyaW5nIGtleWVkIHByb3BlcnRpZXMgdGhydSBgaXRlcmF0ZWVgLCB3aXRoIGVhY2ggaW52b2NhdGlvblxuICogcG90ZW50aWFsbHkgbXV0YXRpbmcgdGhlIGBhY2N1bXVsYXRvcmAgb2JqZWN0LiBJZiBgYWNjdW11bGF0b3JgIGlzIG5vdFxuICogcHJvdmlkZWQsIGEgbmV3IG9iamVjdCB3aXRoIHRoZSBzYW1lIGBbW1Byb3RvdHlwZV1dYCB3aWxsIGJlIHVzZWQuIFRoZVxuICogaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIGZvdXIgYXJndW1lbnRzOiAoYWNjdW11bGF0b3IsIHZhbHVlLCBrZXksIG9iamVjdCkuXG4gKiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5IGJ5IGV4cGxpY2l0bHkgcmV0dXJuaW5nIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAxLjMuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHsqfSBbYWNjdW11bGF0b3JdIFRoZSBjdXN0b20gYWNjdW11bGF0b3IgdmFsdWUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udHJhbnNmb3JtKFsyLCAzLCA0XSwgZnVuY3Rpb24ocmVzdWx0LCBuKSB7XG4gKiAgIHJlc3VsdC5wdXNoKG4gKj0gbik7XG4gKiAgIHJldHVybiBuICUgMiA9PSAwO1xuICogfSwgW10pO1xuICogLy8gPT4gWzQsIDldXG4gKlxuICogXy50cmFuc2Zvcm0oeyAnYSc6IDEsICdiJzogMiwgJ2MnOiAxIH0sIGZ1bmN0aW9uKHJlc3VsdCwgdmFsdWUsIGtleSkge1xuICogICAocmVzdWx0W3ZhbHVlXSB8fCAocmVzdWx0W3ZhbHVlXSA9IFtdKSkucHVzaChrZXkpO1xuICogfSwge30pO1xuICogLy8gPT4geyAnMSc6IFsnYScsICdjJ10sICcyJzogWydiJ10gfVxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm0ob2JqZWN0LCBpdGVyYXRlZSwgYWNjdW11bGF0b3IpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheShvYmplY3QpLFxuICAgICAgaXNBcnJMaWtlID0gaXNBcnIgfHwgaXNCdWZmZXIob2JqZWN0KSB8fCBpc1R5cGVkQXJyYXkob2JqZWN0KTtcblxuICBpdGVyYXRlZSA9IGJhc2VJdGVyYXRlZShpdGVyYXRlZSwgNCk7XG4gIGlmIChhY2N1bXVsYXRvciA9PSBudWxsKSB7XG4gICAgdmFyIEN0b3IgPSBvYmplY3QgJiYgb2JqZWN0LmNvbnN0cnVjdG9yO1xuICAgIGlmIChpc0Fyckxpa2UpIHtcbiAgICAgIGFjY3VtdWxhdG9yID0gaXNBcnIgPyBuZXcgQ3RvciA6IFtdO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc09iamVjdChvYmplY3QpKSB7XG4gICAgICBhY2N1bXVsYXRvciA9IGlzRnVuY3Rpb24oQ3RvcikgPyBiYXNlQ3JlYXRlKGdldFByb3RvdHlwZShvYmplY3QpKSA6IHt9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGFjY3VtdWxhdG9yID0ge307XG4gICAgfVxuICB9XG4gIChpc0Fyckxpa2UgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKShvYmplY3QsIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gICAgcmV0dXJuIGl0ZXJhdGVlKGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIG9iamVjdCk7XG4gIH0pO1xuICByZXR1cm4gYWNjdW11bGF0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdHJhbnNmb3JtO1xuIiwidmFyIGJhc2VBc3NpZ25WYWx1ZSA9IHJlcXVpcmUoJy4vX2Jhc2VBc3NpZ25WYWx1ZScpLFxuICAgIGVxID0gcmVxdWlyZSgnLi9lcScpO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgYXNzaWduVmFsdWVgIGV4Y2VwdCB0aGF0IGl0IGRvZXNuJ3QgYXNzaWduXG4gKiBgdW5kZWZpbmVkYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYXNzaWduTWVyZ2VWYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgaWYgKCh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmICFlcShvYmplY3Rba2V5XSwgdmFsdWUpKSB8fFxuICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzc2lnbk1lcmdlVmFsdWU7XG4iLCJ2YXIgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuL2lzQXJyYXlMaWtlJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmlzQXJyYXlMaWtlYCBleGNlcHQgdGhhdCBpdCBhbHNvIGNoZWNrcyBpZiBgdmFsdWVgXG4gKiBpcyBhbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXktbGlrZSBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlT2JqZWN0KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5TGlrZU9iamVjdChfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgaXNBcnJheUxpa2UodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlT2JqZWN0O1xuIiwiLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBhdCBga2V5YCwgdW5sZXNzIGBrZXlgIGlzIFwiX19wcm90b19fXCIgb3IgXCJjb25zdHJ1Y3RvclwiLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gc2FmZUdldChvYmplY3QsIGtleSkge1xuICBpZiAoa2V5ID09PSAnY29uc3RydWN0b3InICYmIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChrZXkgPT0gJ19fcHJvdG9fXycpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICByZXR1cm4gb2JqZWN0W2tleV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2FmZUdldDtcbiIsInZhciBjb3B5T2JqZWN0ID0gcmVxdWlyZSgnLi9fY29weU9iamVjdCcpLFxuICAgIGtleXNJbiA9IHJlcXVpcmUoJy4va2V5c0luJyk7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHBsYWluIG9iamVjdCBmbGF0dGVuaW5nIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZ1xuICoga2V5ZWQgcHJvcGVydGllcyBvZiBgdmFsdWVgIHRvIG93biBwcm9wZXJ0aWVzIG9mIHRoZSBwbGFpbiBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmFzc2lnbih7ICdhJzogMSB9LCBuZXcgRm9vKTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICpcbiAqIF8uYXNzaWduKHsgJ2EnOiAxIH0sIF8udG9QbGFpbk9iamVjdChuZXcgRm9vKSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyLCAnYyc6IDMgfVxuICovXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiBjb3B5T2JqZWN0KHZhbHVlLCBrZXlzSW4odmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b1BsYWluT2JqZWN0O1xuIiwidmFyIGFzc2lnbk1lcmdlVmFsdWUgPSByZXF1aXJlKCcuL19hc3NpZ25NZXJnZVZhbHVlJyksXG4gICAgY2xvbmVCdWZmZXIgPSByZXF1aXJlKCcuL19jbG9uZUJ1ZmZlcicpLFxuICAgIGNsb25lVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vX2Nsb25lVHlwZWRBcnJheScpLFxuICAgIGNvcHlBcnJheSA9IHJlcXVpcmUoJy4vX2NvcHlBcnJheScpLFxuICAgIGluaXRDbG9uZU9iamVjdCA9IHJlcXVpcmUoJy4vX2luaXRDbG9uZU9iamVjdCcpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuL2lzQXJyYXknKSxcbiAgICBpc0FycmF5TGlrZU9iamVjdCA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2VPYmplY3QnKSxcbiAgICBpc0J1ZmZlciA9IHJlcXVpcmUoJy4vaXNCdWZmZXInKSxcbiAgICBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAgaXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJy4vaXNQbGFpbk9iamVjdCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vaXNUeXBlZEFycmF5JyksXG4gICAgc2FmZUdldCA9IHJlcXVpcmUoJy4vX3NhZmVHZXQnKSxcbiAgICB0b1BsYWluT2JqZWN0ID0gcmVxdWlyZSgnLi90b1BsYWluT2JqZWN0Jyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlTWVyZ2VgIGZvciBhcnJheXMgYW5kIG9iamVjdHMgd2hpY2ggcGVyZm9ybXNcbiAqIGRlZXAgbWVyZ2VzIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIG1lcmdlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gbWVyZ2UuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gbWVyZ2VGdW5jIFRoZSBmdW5jdGlvbiB0byBtZXJnZSB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gW3N0YWNrXSBUcmFja3MgdHJhdmVyc2VkIHNvdXJjZSB2YWx1ZXMgYW5kIHRoZWlyIG1lcmdlZFxuICogIGNvdW50ZXJwYXJ0cy5cbiAqL1xuZnVuY3Rpb24gYmFzZU1lcmdlRGVlcChvYmplY3QsIHNvdXJjZSwga2V5LCBzcmNJbmRleCwgbWVyZ2VGdW5jLCBjdXN0b21pemVyLCBzdGFjaykge1xuICB2YXIgb2JqVmFsdWUgPSBzYWZlR2V0KG9iamVjdCwga2V5KSxcbiAgICAgIHNyY1ZhbHVlID0gc2FmZUdldChzb3VyY2UsIGtleSksXG4gICAgICBzdGFja2VkID0gc3RhY2suZ2V0KHNyY1ZhbHVlKTtcblxuICBpZiAoc3RhY2tlZCkge1xuICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIHN0YWNrZWQpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgPyBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHZhciBpc0NvbW1vbiA9IG5ld1ZhbHVlID09PSB1bmRlZmluZWQ7XG5cbiAgaWYgKGlzQ29tbW9uKSB7XG4gICAgdmFyIGlzQXJyID0gaXNBcnJheShzcmNWYWx1ZSksXG4gICAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiBpc0J1ZmZlcihzcmNWYWx1ZSksXG4gICAgICAgIGlzVHlwZWQgPSAhaXNBcnIgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkoc3JjVmFsdWUpO1xuXG4gICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICBpZiAoaXNBcnIgfHwgaXNCdWZmIHx8IGlzVHlwZWQpIHtcbiAgICAgIGlmIChpc0FycmF5KG9ialZhbHVlKSkge1xuICAgICAgICBuZXdWYWx1ZSA9IG9ialZhbHVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaXNBcnJheUxpa2VPYmplY3Qob2JqVmFsdWUpKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gY29weUFycmF5KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzQnVmZikge1xuICAgICAgICBpc0NvbW1vbiA9IGZhbHNlO1xuICAgICAgICBuZXdWYWx1ZSA9IGNsb25lQnVmZmVyKHNyY1ZhbHVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKGlzVHlwZWQpIHtcbiAgICAgICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICAgICAgbmV3VmFsdWUgPSBjbG9uZVR5cGVkQXJyYXkoc3JjVmFsdWUsIHRydWUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG5ld1ZhbHVlID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzUGxhaW5PYmplY3Qoc3JjVmFsdWUpIHx8IGlzQXJndW1lbnRzKHNyY1ZhbHVlKSkge1xuICAgICAgbmV3VmFsdWUgPSBvYmpWYWx1ZTtcbiAgICAgIGlmIChpc0FyZ3VtZW50cyhvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSB0b1BsYWluT2JqZWN0KG9ialZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKCFpc09iamVjdChvYmpWYWx1ZSkgfHwgaXNGdW5jdGlvbihvYmpWYWx1ZSkpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBpbml0Q2xvbmVPYmplY3Qoc3JjVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlzQ29tbW9uID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGlmIChpc0NvbW1vbikge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IG1lcmdlIG9iamVjdHMgYW5kIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIHN0YWNrLnNldChzcmNWYWx1ZSwgbmV3VmFsdWUpO1xuICAgIG1lcmdlRnVuYyhuZXdWYWx1ZSwgc3JjVmFsdWUsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjayk7XG4gICAgc3RhY2tbJ2RlbGV0ZSddKHNyY1ZhbHVlKTtcbiAgfVxuICBhc3NpZ25NZXJnZVZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1lcmdlRGVlcDtcbiIsInZhciBTdGFjayA9IHJlcXVpcmUoJy4vX1N0YWNrJyksXG4gICAgYXNzaWduTWVyZ2VWYWx1ZSA9IHJlcXVpcmUoJy4vX2Fzc2lnbk1lcmdlVmFsdWUnKSxcbiAgICBiYXNlRm9yID0gcmVxdWlyZSgnLi9fYmFzZUZvcicpLFxuICAgIGJhc2VNZXJnZURlZXAgPSByZXF1aXJlKCcuL19iYXNlTWVyZ2VEZWVwJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0JyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi9rZXlzSW4nKSxcbiAgICBzYWZlR2V0ID0gcmVxdWlyZSgnLi9fc2FmZUdldCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1lcmdlYCB3aXRob3V0IHN1cHBvcnQgZm9yIG11bHRpcGxlIHNvdXJjZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QuXG4gKiBAcGFyYW0ge251bWJlcn0gc3JjSW5kZXggVGhlIGluZGV4IG9mIGBzb3VyY2VgLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgbWVyZ2VkIHZhbHVlcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbc3RhY2tdIFRyYWNrcyB0cmF2ZXJzZWQgc291cmNlIHZhbHVlcyBhbmQgdGhlaXIgbWVyZ2VkXG4gKiAgY291bnRlcnBhcnRzLlxuICovXG5mdW5jdGlvbiBiYXNlTWVyZ2Uob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyLCBzdGFjaykge1xuICBpZiAob2JqZWN0ID09PSBzb3VyY2UpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYmFzZUZvcihzb3VyY2UsIGZ1bmN0aW9uKHNyY1ZhbHVlLCBrZXkpIHtcbiAgICBzdGFjayB8fCAoc3RhY2sgPSBuZXcgU3RhY2spO1xuICAgIGlmIChpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAgIGJhc2VNZXJnZURlZXAob2JqZWN0LCBzb3VyY2UsIGtleSwgc3JjSW5kZXgsIGJhc2VNZXJnZSwgY3VzdG9taXplciwgc3RhY2spO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgICAgPyBjdXN0b21pemVyKHNhZmVHZXQob2JqZWN0LCBrZXkpLCBzcmNWYWx1ZSwgKGtleSArICcnKSwgb2JqZWN0LCBzb3VyY2UsIHN0YWNrKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbmV3VmFsdWUgPSBzcmNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGFzc2lnbk1lcmdlVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH0sIGtleXNJbik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZU1lcmdlO1xuIiwidmFyIGlkZW50aXR5ID0gcmVxdWlyZSgnLi9pZGVudGl0eScpLFxuICAgIG92ZXJSZXN0ID0gcmVxdWlyZSgnLi9fb3ZlclJlc3QnKSxcbiAgICBzZXRUb1N0cmluZyA9IHJlcXVpcmUoJy4vX3NldFRvU3RyaW5nJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucmVzdGAgd2hpY2ggZG9lc24ndCB2YWxpZGF0ZSBvciBjb2VyY2UgYXJndW1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhcHBseSBhIHJlc3QgcGFyYW1ldGVyIHRvLlxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydD1mdW5jLmxlbmd0aC0xXSBUaGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIHJlc3QgcGFyYW1ldGVyLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VSZXN0KGZ1bmMsIHN0YXJ0KSB7XG4gIHJldHVybiBzZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCBzdGFydCwgaWRlbnRpdHkpLCBmdW5jICsgJycpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VSZXN0O1xuIiwidmFyIGVxID0gcmVxdWlyZSgnLi9lcScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL19pc0luZGV4JyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIHZhbHVlIGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBpbmRleCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIGluZGV4IG9yIGtleSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgb2JqZWN0IGFyZ3VtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcmd1bWVudHMgYXJlIGZyb20gYW4gaXRlcmF0ZWUgY2FsbCxcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgICAgPyAoaXNBcnJheUxpa2Uob2JqZWN0KSAmJiBpc0luZGV4KGluZGV4LCBvYmplY3QubGVuZ3RoKSlcbiAgICAgICAgOiAodHlwZSA9PSAnc3RyaW5nJyAmJiBpbmRleCBpbiBvYmplY3QpXG4gICAgICApIHtcbiAgICByZXR1cm4gZXEob2JqZWN0W2luZGV4XSwgdmFsdWUpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0l0ZXJhdGVlQ2FsbDtcbiIsInZhciBiYXNlUmVzdCA9IHJlcXVpcmUoJy4vX2Jhc2VSZXN0JyksXG4gICAgaXNJdGVyYXRlZUNhbGwgPSByZXF1aXJlKCcuL19pc0l0ZXJhdGVlQ2FsbCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmFzc2lnbmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbmVyIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsXG4gICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxuICAgICAgPyAobGVuZ3RoLS0sIGN1c3RvbWl6ZXIpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfVxuICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgIGFzc2lnbmVyKG9iamVjdCwgc291cmNlLCBpbmRleCwgY3VzdG9taXplcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUFzc2lnbmVyO1xuIiwidmFyIGJhc2VNZXJnZSA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZScpLFxuICAgIGNyZWF0ZUFzc2lnbmVyID0gcmVxdWlyZSgnLi9fY3JlYXRlQXNzaWduZXInKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmFzc2lnbmAgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgbWVyZ2VzIG93biBhbmRcbiAqIGluaGVyaXRlZCBlbnVtZXJhYmxlIHN0cmluZyBrZXllZCBwcm9wZXJ0aWVzIG9mIHNvdXJjZSBvYmplY3RzIGludG8gdGhlXG4gKiBkZXN0aW5hdGlvbiBvYmplY3QuIFNvdXJjZSBwcm9wZXJ0aWVzIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYCBhcmVcbiAqIHNraXBwZWQgaWYgYSBkZXN0aW5hdGlvbiB2YWx1ZSBleGlzdHMuIEFycmF5IGFuZCBwbGFpbiBvYmplY3QgcHJvcGVydGllc1xuICogYXJlIG1lcmdlZCByZWN1cnNpdmVseS4gT3RoZXIgb2JqZWN0cyBhbmQgdmFsdWUgdHlwZXMgYXJlIG92ZXJyaWRkZW4gYnlcbiAqIGFzc2lnbm1lbnQuIFNvdXJjZSBvYmplY3RzIGFyZSBhcHBsaWVkIGZyb20gbGVmdCB0byByaWdodC4gU3Vic2VxdWVudFxuICogc291cmNlcyBvdmVyd3JpdGUgcHJvcGVydHkgYXNzaWdubWVudHMgb2YgcHJldmlvdXMgc291cmNlcy5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuNS4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7XG4gKiAgICdhJzogW3sgJ2InOiAyIH0sIHsgJ2QnOiA0IH1dXG4gKiB9O1xuICpcbiAqIHZhciBvdGhlciA9IHtcbiAqICAgJ2EnOiBbeyAnYyc6IDMgfSwgeyAnZSc6IDUgfV1cbiAqIH07XG4gKlxuICogXy5tZXJnZShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IHsgJ2EnOiBbeyAnYic6IDIsICdjJzogMyB9LCB7ICdkJzogNCwgJ2UnOiA1IH1dIH1cbiAqL1xudmFyIG1lcmdlID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4KSB7XG4gIGJhc2VNZXJnZShvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgpO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2U7XG4iLCJ2YXIgYmFzZUZsYXR0ZW4gPSByZXF1aXJlKCcuL19iYXNlRmxhdHRlbicpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIGBhcnJheWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IEFycmF5XG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gZmxhdHRlbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGZsYXR0ZW5lZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5mbGF0dGVuRGVlcChbMSwgWzIsIFszLCBbNF1dLCA1XV0pO1xuICogLy8gPT4gWzEsIDIsIDMsIDQsIDVdXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5EZWVwKGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgcmV0dXJuIGxlbmd0aCA/IGJhc2VGbGF0dGVuKGFycmF5LCBJTkZJTklUWSkgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmbGF0dGVuRGVlcDtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZmluZEluZGV4YCBhbmQgYF8uZmluZExhc3RJbmRleGAgd2l0aG91dFxuICogc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlRmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCwgZnJvbVJpZ2h0KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGgsXG4gICAgICBpbmRleCA9IGZyb21JbmRleCArIChmcm9tUmlnaHQgPyAxIDogLTEpO1xuXG4gIHdoaWxlICgoZnJvbVJpZ2h0ID8gaW5kZXgtLSA6ICsraW5kZXggPCBsZW5ndGgpKSB7XG4gICAgaWYgKHByZWRpY2F0ZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGaW5kSW5kZXg7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmFOYCB3aXRob3V0IHN1cHBvcnQgZm9yIG51bWJlciBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGBOYU5gLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc05hTjtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmluZGV4T2ZgIHdoaWNoIHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eVxuICogY29tcGFyaXNvbnMgb2YgdmFsdWVzLCBpLmUuIGA9PT1gLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIHN0cmljdEluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChhcnJheVtpbmRleF0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpY3RJbmRleE9mO1xuIiwidmFyIGJhc2VGaW5kSW5kZXggPSByZXF1aXJlKCcuL19iYXNlRmluZEluZGV4JyksXG4gICAgYmFzZUlzTmFOID0gcmVxdWlyZSgnLi9fYmFzZUlzTmFOJyksXG4gICAgc3RyaWN0SW5kZXhPZiA9IHJlcXVpcmUoJy4vX3N0cmljdEluZGV4T2YnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbmRleE9mYCB3aXRob3V0IGBmcm9tSW5kZXhgIGJvdW5kcyBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXggVGhlIGluZGV4IHRvIHNlYXJjaCBmcm9tLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUluZGV4T2YoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZVxuICAgID8gc3RyaWN0SW5kZXhPZihhcnJheSwgdmFsdWUsIGZyb21JbmRleClcbiAgICA6IGJhc2VGaW5kSW5kZXgoYXJyYXksIGJhc2VJc05hTiwgZnJvbUluZGV4KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSW5kZXhPZjtcbiIsInZhciBiYXNlSW5kZXhPZiA9IHJlcXVpcmUoJy4vX2Jhc2VJbmRleE9mJyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLmluY2x1ZGVzYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3JcbiAqIHNwZWNpZnlpbmcgYW4gaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHRhcmdldCBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdGFyZ2V0YCBpcyBmb3VuZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBhcnJheUluY2x1ZGVzKGFycmF5LCB2YWx1ZSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGg7XG4gIHJldHVybiAhIWxlbmd0aCAmJiBiYXNlSW5kZXhPZihhcnJheSwgdmFsdWUsIDApID4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlJbmNsdWRlcztcbiIsIi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBsaWtlIGBhcnJheUluY2x1ZGVzYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0gdGFyZ2V0IFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyYXRvciBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB0YXJnZXRgIGlzIGZvdW5kLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGFycmF5SW5jbHVkZXNXaXRoKGFycmF5LCB2YWx1ZSwgY29tcGFyYXRvcikge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGNvbXBhcmF0b3IodmFsdWUsIGFycmF5W2luZGV4XSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlJbmNsdWRlc1dpdGg7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYHVuZGVmaW5lZGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBleGFtcGxlXG4gKlxuICogXy50aW1lcygyLCBfLm5vb3ApO1xuICogLy8gPT4gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuICovXG5mdW5jdGlvbiBub29wKCkge1xuICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5vb3A7XG4iLCJ2YXIgU2V0ID0gcmVxdWlyZSgnLi9fU2V0JyksXG4gICAgbm9vcCA9IHJlcXVpcmUoJy4vbm9vcCcpLFxuICAgIHNldFRvQXJyYXkgPSByZXF1aXJlKCcuL19zZXRUb0FycmF5Jyk7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNldCBvYmplY3Qgb2YgYHZhbHVlc2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIGFkZCB0byB0aGUgc2V0LlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IHNldC5cbiAqL1xudmFyIGNyZWF0ZVNldCA9ICEoU2V0ICYmICgxIC8gc2V0VG9BcnJheShuZXcgU2V0KFssLTBdKSlbMV0pID09IElORklOSVRZKSA/IG5vb3AgOiBmdW5jdGlvbih2YWx1ZXMpIHtcbiAgcmV0dXJuIG5ldyBTZXQodmFsdWVzKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlU2V0O1xuIiwidmFyIFNldENhY2hlID0gcmVxdWlyZSgnLi9fU2V0Q2FjaGUnKSxcbiAgICBhcnJheUluY2x1ZGVzID0gcmVxdWlyZSgnLi9fYXJyYXlJbmNsdWRlcycpLFxuICAgIGFycmF5SW5jbHVkZXNXaXRoID0gcmVxdWlyZSgnLi9fYXJyYXlJbmNsdWRlc1dpdGgnKSxcbiAgICBjYWNoZUhhcyA9IHJlcXVpcmUoJy4vX2NhY2hlSGFzJyksXG4gICAgY3JlYXRlU2V0ID0gcmVxdWlyZSgnLi9fY3JlYXRlU2V0JyksXG4gICAgc2V0VG9BcnJheSA9IHJlcXVpcmUoJy4vX3NldFRvQXJyYXknKTtcblxuLyoqIFVzZWQgYXMgdGhlIHNpemUgdG8gZW5hYmxlIGxhcmdlIGFycmF5IG9wdGltaXphdGlvbnMuICovXG52YXIgTEFSR0VfQVJSQVlfU0laRSA9IDIwMDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmlxQnlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWVdIFRoZSBpdGVyYXRlZSBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYmFzZVVuaXEoYXJyYXksIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgaW5jbHVkZXMgPSBhcnJheUluY2x1ZGVzLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgaXNDb21tb24gPSB0cnVlLFxuICAgICAgcmVzdWx0ID0gW10sXG4gICAgICBzZWVuID0gcmVzdWx0O1xuXG4gIGlmIChjb21wYXJhdG9yKSB7XG4gICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICBpbmNsdWRlcyA9IGFycmF5SW5jbHVkZXNXaXRoO1xuICB9XG4gIGVsc2UgaWYgKGxlbmd0aCA+PSBMQVJHRV9BUlJBWV9TSVpFKSB7XG4gICAgdmFyIHNldCA9IGl0ZXJhdGVlID8gbnVsbCA6IGNyZWF0ZVNldChhcnJheSk7XG4gICAgaWYgKHNldCkge1xuICAgICAgcmV0dXJuIHNldFRvQXJyYXkoc2V0KTtcbiAgICB9XG4gICAgaXNDb21tb24gPSBmYWxzZTtcbiAgICBpbmNsdWRlcyA9IGNhY2hlSGFzO1xuICAgIHNlZW4gPSBuZXcgU2V0Q2FjaGU7XG4gIH1cbiAgZWxzZSB7XG4gICAgc2VlbiA9IGl0ZXJhdGVlID8gW10gOiByZXN1bHQ7XG4gIH1cbiAgb3V0ZXI6XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICBpZiAoaXNDb21tb24gJiYgY29tcHV0ZWQgPT09IGNvbXB1dGVkKSB7XG4gICAgICB2YXIgc2VlbkluZGV4ID0gc2Vlbi5sZW5ndGg7XG4gICAgICB3aGlsZSAoc2VlbkluZGV4LS0pIHtcbiAgICAgICAgaWYgKHNlZW5bc2VlbkluZGV4XSA9PT0gY29tcHV0ZWQpIHtcbiAgICAgICAgICBjb250aW51ZSBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICB9XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKCFpbmNsdWRlcyhzZWVuLCBjb21wdXRlZCwgY29tcGFyYXRvcikpIHtcbiAgICAgIGlmIChzZWVuICE9PSByZXN1bHQpIHtcbiAgICAgICAgc2Vlbi5wdXNoKGNvbXB1dGVkKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVW5pcTtcbiIsInZhciBiYXNlVW5pcSA9IHJlcXVpcmUoJy4vX2Jhc2VVbmlxJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGR1cGxpY2F0ZS1mcmVlIHZlcnNpb24gb2YgYW4gYXJyYXksIHVzaW5nXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLCBpbiB3aGljaCBvbmx5IHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGVhY2ggZWxlbWVudFxuICogaXMga2VwdC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgb3JkZXIgdGhleSBvY2N1clxuICogaW4gdGhlIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogXy51bmlxKFsyLCAxLCAyXSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqL1xuZnVuY3Rpb24gdW5pcShhcnJheSkge1xuICByZXR1cm4gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCkgPyBiYXNlVW5pcShhcnJheSkgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1bmlxO1xuIiwidmFyIGJhc2VDbG9uZSA9IHJlcXVpcmUoJy4vX2Jhc2VDbG9uZScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciBjbG9uaW5nLiAqL1xudmFyIENMT05FX0RFRVBfRkxBRyA9IDEsXG4gICAgQ0xPTkVfU1lNQk9MU19GTEFHID0gNDtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmNsb25lYCBleGNlcHQgdGhhdCBpdCByZWN1cnNpdmVseSBjbG9uZXMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVjdXJzaXZlbHkgY2xvbmUuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZGVlcCBjbG9uZWQgdmFsdWUuXG4gKiBAc2VlIF8uY2xvbmVcbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbeyAnYSc6IDEgfSwgeyAnYic6IDIgfV07XG4gKlxuICogdmFyIGRlZXAgPSBfLmNsb25lRGVlcChvYmplY3RzKTtcbiAqIGNvbnNvbGUubG9nKGRlZXBbMF0gPT09IG9iamVjdHNbMF0pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlKSB7XG4gIHJldHVybiBiYXNlQ2xvbmUodmFsdWUsIENMT05FX0RFRVBfRkxBRyB8IENMT05FX1NZTUJPTFNfRkxBRyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVEZWVwO1xuIiwidmFyIGJhc2VFYWNoID0gcmVxdWlyZSgnLi9fYmFzZUVhY2gnKSxcbiAgICBpc0FycmF5TGlrZSA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2UnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXBgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYmFzZU1hcChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IGlzQXJyYXlMaWtlKGNvbGxlY3Rpb24pID8gQXJyYXkoY29sbGVjdGlvbi5sZW5ndGgpIDogW107XG5cbiAgYmFzZUVhY2goY29sbGVjdGlvbiwgZnVuY3Rpb24odmFsdWUsIGtleSwgY29sbGVjdGlvbikge1xuICAgIHJlc3VsdFsrK2luZGV4XSA9IGl0ZXJhdGVlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWFwO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zb3J0QnlgIHdoaWNoIHVzZXMgYGNvbXBhcmVyYCB0byBkZWZpbmUgdGhlXG4gKiBzb3J0IG9yZGVyIG9mIGBhcnJheWAgYW5kIHJlcGxhY2VzIGNyaXRlcmlhIG9iamVjdHMgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nXG4gKiB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY29tcGFyZXIgVGhlIGZ1bmN0aW9uIHRvIGRlZmluZSBzb3J0IG9yZGVyLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGBhcnJheWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VTb3J0QnkoYXJyYXksIGNvbXBhcmVyKSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgYXJyYXkuc29ydChjb21wYXJlcik7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGFycmF5W2xlbmd0aF0gPSBhcnJheVtsZW5ndGhdLnZhbHVlO1xuICB9XG4gIHJldHVybiBhcnJheTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlU29ydEJ5O1xuIiwidmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKipcbiAqIENvbXBhcmVzIHZhbHVlcyB0byBzb3J0IHRoZW0gaW4gYXNjZW5kaW5nIG9yZGVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIHNvcnQgb3JkZXIgaW5kaWNhdG9yIGZvciBgdmFsdWVgLlxuICovXG5mdW5jdGlvbiBjb21wYXJlQXNjZW5kaW5nKHZhbHVlLCBvdGhlcikge1xuICBpZiAodmFsdWUgIT09IG90aGVyKSB7XG4gICAgdmFyIHZhbElzRGVmaW5lZCA9IHZhbHVlICE9PSB1bmRlZmluZWQsXG4gICAgICAgIHZhbElzTnVsbCA9IHZhbHVlID09PSBudWxsLFxuICAgICAgICB2YWxJc1JlZmxleGl2ZSA9IHZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgdmFsSXNTeW1ib2wgPSBpc1N5bWJvbCh2YWx1ZSk7XG5cbiAgICB2YXIgb3RoSXNEZWZpbmVkID0gb3RoZXIgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgb3RoSXNOdWxsID0gb3RoZXIgPT09IG51bGwsXG4gICAgICAgIG90aElzUmVmbGV4aXZlID0gb3RoZXIgPT09IG90aGVyLFxuICAgICAgICBvdGhJc1N5bWJvbCA9IGlzU3ltYm9sKG90aGVyKTtcblxuICAgIGlmICgoIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wgJiYgIXZhbElzU3ltYm9sICYmIHZhbHVlID4gb3RoZXIpIHx8XG4gICAgICAgICh2YWxJc1N5bWJvbCAmJiBvdGhJc0RlZmluZWQgJiYgb3RoSXNSZWZsZXhpdmUgJiYgIW90aElzTnVsbCAmJiAhb3RoSXNTeW1ib2wpIHx8XG4gICAgICAgICh2YWxJc051bGwgJiYgb3RoSXNEZWZpbmVkICYmIG90aElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAoIXZhbElzRGVmaW5lZCAmJiBvdGhJc1JlZmxleGl2ZSkgfHxcbiAgICAgICAgIXZhbElzUmVmbGV4aXZlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgaWYgKCghdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCAmJiAhb3RoSXNTeW1ib2wgJiYgdmFsdWUgPCBvdGhlcikgfHxcbiAgICAgICAgKG90aElzU3ltYm9sICYmIHZhbElzRGVmaW5lZCAmJiB2YWxJc1JlZmxleGl2ZSAmJiAhdmFsSXNOdWxsICYmICF2YWxJc1N5bWJvbCkgfHxcbiAgICAgICAgKG90aElzTnVsbCAmJiB2YWxJc0RlZmluZWQgJiYgdmFsSXNSZWZsZXhpdmUpIHx8XG4gICAgICAgICghb3RoSXNEZWZpbmVkICYmIHZhbElzUmVmbGV4aXZlKSB8fFxuICAgICAgICAhb3RoSXNSZWZsZXhpdmUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcGFyZUFzY2VuZGluZztcbiIsInZhciBjb21wYXJlQXNjZW5kaW5nID0gcmVxdWlyZSgnLi9fY29tcGFyZUFzY2VuZGluZycpO1xuXG4vKipcbiAqIFVzZWQgYnkgYF8ub3JkZXJCeWAgdG8gY29tcGFyZSBtdWx0aXBsZSBwcm9wZXJ0aWVzIG9mIGEgdmFsdWUgdG8gYW5vdGhlclxuICogYW5kIHN0YWJsZSBzb3J0IHRoZW0uXG4gKlxuICogSWYgYG9yZGVyc2AgaXMgdW5zcGVjaWZpZWQsIGFsbCB2YWx1ZXMgYXJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIuIE90aGVyd2lzZSxcbiAqIHNwZWNpZnkgYW4gb3JkZXIgb2YgXCJkZXNjXCIgZm9yIGRlc2NlbmRpbmcgb3IgXCJhc2NcIiBmb3IgYXNjZW5kaW5nIHNvcnQgb3JkZXJcbiAqIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW5bXXxzdHJpbmdbXX0gb3JkZXJzIFRoZSBvcmRlciB0byBzb3J0IGJ5IGZvciBlYWNoIHByb3BlcnR5LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgc29ydCBvcmRlciBpbmRpY2F0b3IgZm9yIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb21wYXJlTXVsdGlwbGUob2JqZWN0LCBvdGhlciwgb3JkZXJzKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgb2JqQ3JpdGVyaWEgPSBvYmplY3QuY3JpdGVyaWEsXG4gICAgICBvdGhDcml0ZXJpYSA9IG90aGVyLmNyaXRlcmlhLFxuICAgICAgbGVuZ3RoID0gb2JqQ3JpdGVyaWEubGVuZ3RoLFxuICAgICAgb3JkZXJzTGVuZ3RoID0gb3JkZXJzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciByZXN1bHQgPSBjb21wYXJlQXNjZW5kaW5nKG9iakNyaXRlcmlhW2luZGV4XSwgb3RoQ3JpdGVyaWFbaW5kZXhdKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBpZiAoaW5kZXggPj0gb3JkZXJzTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICB2YXIgb3JkZXIgPSBvcmRlcnNbaW5kZXhdO1xuICAgICAgcmV0dXJuIHJlc3VsdCAqIChvcmRlciA9PSAnZGVzYycgPyAtMSA6IDEpO1xuICAgIH1cbiAgfVxuICAvLyBGaXhlcyBhbiBgQXJyYXkjc29ydGAgYnVnIGluIHRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgYXBwbGljYXRpb25zXG4gIC8vIHRoYXQgY2F1c2VzIGl0LCB1bmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIHRvIHByb3ZpZGUgdGhlIHNhbWUgdmFsdWUgZm9yXG4gIC8vIGBvYmplY3RgIGFuZCBgb3RoZXJgLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL3B1bGwvMTI0N1xuICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAvL1xuICAvLyBUaGlzIGFsc28gZW5zdXJlcyBhIHN0YWJsZSBzb3J0IGluIFY4IGFuZCBvdGhlciBlbmdpbmVzLlxuICAvLyBTZWUgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9OTAgZm9yIG1vcmUgZGV0YWlscy5cbiAgcmV0dXJuIG9iamVjdC5pbmRleCAtIG90aGVyLmluZGV4O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBhcmVNdWx0aXBsZTtcbiIsInZhciBhcnJheU1hcCA9IHJlcXVpcmUoJy4vX2FycmF5TWFwJyksXG4gICAgYmFzZUdldCA9IHJlcXVpcmUoJy4vX2Jhc2VHZXQnKSxcbiAgICBiYXNlSXRlcmF0ZWUgPSByZXF1aXJlKCcuL19iYXNlSXRlcmF0ZWUnKSxcbiAgICBiYXNlTWFwID0gcmVxdWlyZSgnLi9fYmFzZU1hcCcpLFxuICAgIGJhc2VTb3J0QnkgPSByZXF1aXJlKCcuL19iYXNlU29ydEJ5JyksXG4gICAgYmFzZVVuYXJ5ID0gcmVxdWlyZSgnLi9fYmFzZVVuYXJ5JyksXG4gICAgY29tcGFyZU11bHRpcGxlID0gcmVxdWlyZSgnLi9fY29tcGFyZU11bHRpcGxlJyksXG4gICAgaWRlbnRpdHkgPSByZXF1aXJlKCcuL2lkZW50aXR5JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm9yZGVyQnlgIHdpdGhvdXQgcGFyYW0gZ3VhcmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9uW118T2JqZWN0W118c3RyaW5nW119IGl0ZXJhdGVlcyBUaGUgaXRlcmF0ZWVzIHRvIHNvcnQgYnkuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBvcmRlcnMgVGhlIHNvcnQgb3JkZXJzIG9mIGBpdGVyYXRlZXNgLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgc29ydGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlT3JkZXJCeShjb2xsZWN0aW9uLCBpdGVyYXRlZXMsIG9yZGVycykge1xuICBpZiAoaXRlcmF0ZWVzLmxlbmd0aCkge1xuICAgIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgZnVuY3Rpb24oaXRlcmF0ZWUpIHtcbiAgICAgIGlmIChpc0FycmF5KGl0ZXJhdGVlKSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gYmFzZUdldCh2YWx1ZSwgaXRlcmF0ZWUubGVuZ3RoID09PSAxID8gaXRlcmF0ZWVbMF0gOiBpdGVyYXRlZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBpdGVyYXRlZTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBpdGVyYXRlZXMgPSBbaWRlbnRpdHldO1xuICB9XG5cbiAgdmFyIGluZGV4ID0gLTE7XG4gIGl0ZXJhdGVlcyA9IGFycmF5TWFwKGl0ZXJhdGVlcywgYmFzZVVuYXJ5KGJhc2VJdGVyYXRlZSkpO1xuXG4gIHZhciByZXN1bHQgPSBiYXNlTWFwKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICB2YXIgY3JpdGVyaWEgPSBhcnJheU1hcChpdGVyYXRlZXMsIGZ1bmN0aW9uKGl0ZXJhdGVlKSB7XG4gICAgICByZXR1cm4gaXRlcmF0ZWUodmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiB7ICdjcml0ZXJpYSc6IGNyaXRlcmlhLCAnaW5kZXgnOiArK2luZGV4LCAndmFsdWUnOiB2YWx1ZSB9O1xuICB9KTtcblxuICByZXR1cm4gYmFzZVNvcnRCeShyZXN1bHQsIGZ1bmN0aW9uKG9iamVjdCwgb3RoZXIpIHtcbiAgICByZXR1cm4gY29tcGFyZU11bHRpcGxlKG9iamVjdCwgb3RoZXIsIG9yZGVycyk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VPcmRlckJ5O1xuIiwidmFyIGJhc2VGbGF0dGVuID0gcmVxdWlyZSgnLi9fYmFzZUZsYXR0ZW4nKSxcbiAgICBiYXNlT3JkZXJCeSA9IHJlcXVpcmUoJy4vX2Jhc2VPcmRlckJ5JyksXG4gICAgYmFzZVJlc3QgPSByZXF1aXJlKCcuL19iYXNlUmVzdCcpLFxuICAgIGlzSXRlcmF0ZWVDYWxsID0gcmVxdWlyZSgnLi9faXNJdGVyYXRlZUNhbGwnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIGVsZW1lbnRzLCBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IHRoZSByZXN1bHRzIG9mXG4gKiBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBhIGNvbGxlY3Rpb24gdGhydSBlYWNoIGl0ZXJhdGVlLiBUaGlzIG1ldGhvZFxuICogcGVyZm9ybXMgYSBzdGFibGUgc29ydCwgdGhhdCBpcywgaXQgcHJlc2VydmVzIHRoZSBvcmlnaW5hbCBzb3J0IG9yZGVyIG9mXG4gKiBlcXVhbCBlbGVtZW50cy4gVGhlIGl0ZXJhdGVlcyBhcmUgaW52b2tlZCB3aXRoIG9uZSBhcmd1bWVudDogKHZhbHVlKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHsuLi4oRnVuY3Rpb258RnVuY3Rpb25bXSl9IFtpdGVyYXRlZXM9W18uaWRlbnRpdHldXVxuICogIFRoZSBpdGVyYXRlZXMgdG8gc29ydCBieS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IHNvcnRlZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHVzZXJzID0gW1xuICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiA0OCB9LFxuICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNiB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICdhZ2UnOiAzMCB9LFxuICogICB7ICd1c2VyJzogJ2Jhcm5leScsICdhZ2UnOiAzNCB9XG4gKiBdO1xuICpcbiAqIF8uc29ydEJ5KHVzZXJzLCBbZnVuY3Rpb24obykgeyByZXR1cm4gby51c2VyOyB9XSk7XG4gKiAvLyA9PiBvYmplY3RzIGZvciBbWydiYXJuZXknLCAzNl0sIFsnYmFybmV5JywgMzRdLCBbJ2ZyZWQnLCA0OF0sIFsnZnJlZCcsIDMwXV1cbiAqXG4gKiBfLnNvcnRCeSh1c2VycywgWyd1c2VyJywgJ2FnZSddKTtcbiAqIC8vID0+IG9iamVjdHMgZm9yIFtbJ2Jhcm5leScsIDM0XSwgWydiYXJuZXknLCAzNl0sIFsnZnJlZCcsIDMwXSwgWydmcmVkJywgNDhdXVxuICovXG52YXIgc29ydEJ5ID0gYmFzZVJlc3QoZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWVzKSB7XG4gIGlmIChjb2xsZWN0aW9uID09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgdmFyIGxlbmd0aCA9IGl0ZXJhdGVlcy5sZW5ndGg7XG4gIGlmIChsZW5ndGggPiAxICYmIGlzSXRlcmF0ZWVDYWxsKGNvbGxlY3Rpb24sIGl0ZXJhdGVlc1swXSwgaXRlcmF0ZWVzWzFdKSkge1xuICAgIGl0ZXJhdGVlcyA9IFtdO1xuICB9IGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNJdGVyYXRlZUNhbGwoaXRlcmF0ZWVzWzBdLCBpdGVyYXRlZXNbMV0sIGl0ZXJhdGVlc1syXSkpIHtcbiAgICBpdGVyYXRlZXMgPSBbaXRlcmF0ZWVzWzBdXTtcbiAgfVxuICByZXR1cm4gYmFzZU9yZGVyQnkoY29sbGVjdGlvbiwgYmFzZUZsYXR0ZW4oaXRlcmF0ZWVzLCAxKSwgW10pO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc29ydEJ5O1xuIiwidmFyIGJhc2VVbmlxID0gcmVxdWlyZSgnLi9fYmFzZVVuaXEnKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLnVuaXFgIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGNvbXBhcmF0b3JgIHdoaWNoXG4gKiBpcyBpbnZva2VkIHRvIGNvbXBhcmUgZWxlbWVudHMgb2YgYGFycmF5YC4gVGhlIG9yZGVyIG9mIHJlc3VsdCB2YWx1ZXMgaXNcbiAqIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIHRoZXkgb2NjdXIgaW4gdGhlIGFycmF5LlRoZSBjb21wYXJhdG9yIGlzIGludm9rZWRcbiAqIHdpdGggdHdvIGFyZ3VtZW50czogKGFyclZhbCwgb3RoVmFsKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBkdXBsaWNhdGUgZnJlZSBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbeyAneCc6IDEsICd5JzogMiB9LCB7ICd4JzogMiwgJ3knOiAxIH0sIHsgJ3gnOiAxLCAneSc6IDIgfV07XG4gKlxuICogXy51bmlxV2l0aChvYmplY3RzLCBfLmlzRXF1YWwpO1xuICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfSwgeyAneCc6IDIsICd5JzogMSB9XVxuICovXG5mdW5jdGlvbiB1bmlxV2l0aChhcnJheSwgY29tcGFyYXRvcikge1xuICBjb21wYXJhdG9yID0gdHlwZW9mIGNvbXBhcmF0b3IgPT0gJ2Z1bmN0aW9uJyA/IGNvbXBhcmF0b3IgOiB1bmRlZmluZWQ7XG4gIHJldHVybiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoKSA/IGJhc2VVbmlxKGFycmF5LCB1bmRlZmluZWQsIGNvbXBhcmF0b3IpIDogW107XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdW5pcVdpdGg7XG4iLCJ2YXIgYmFzZVJlc3QgPSByZXF1aXJlKCcuL19iYXNlUmVzdCcpLFxuICAgIGVxID0gcmVxdWlyZSgnLi9lcScpLFxuICAgIGlzSXRlcmF0ZWVDYWxsID0gcmVxdWlyZSgnLi9faXNJdGVyYXRlZUNhbGwnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuL2tleXNJbicpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmcga2V5ZWQgcHJvcGVydGllcyBvZiBzb3VyY2VcbiAqIG9iamVjdHMgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdCBmb3IgYWxsIGRlc3RpbmF0aW9uIHByb3BlcnRpZXMgdGhhdFxuICogcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC4gU291cmNlIG9iamVjdHMgYXJlIGFwcGxpZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuICogT25jZSBhIHByb3BlcnR5IGlzIHNldCwgYWRkaXRpb25hbCB2YWx1ZXMgb2YgdGhlIHNhbWUgcHJvcGVydHkgYXJlIGlnbm9yZWQuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHsuLi5PYmplY3R9IFtzb3VyY2VzXSBUaGUgc291cmNlIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICogQHNlZSBfLmRlZmF1bHRzRGVlcFxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKi9cbnZhciBkZWZhdWx0cyA9IGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcblxuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIGxlbmd0aCA9IHNvdXJjZXMubGVuZ3RoO1xuICB2YXIgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc291cmNlc1swXSwgc291cmNlc1sxXSwgZ3VhcmQpKSB7XG4gICAgbGVuZ3RoID0gMTtcbiAgfVxuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIHNvdXJjZSA9IHNvdXJjZXNbaW5kZXhdO1xuICAgIHZhciBwcm9wcyA9IGtleXNJbihzb3VyY2UpO1xuICAgIHZhciBwcm9wc0luZGV4ID0gLTE7XG4gICAgdmFyIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gICAgd2hpbGUgKCsrcHJvcHNJbmRleCA8IHByb3BzTGVuZ3RoKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcHNbcHJvcHNJbmRleF07XG4gICAgICB2YXIgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAoZXEodmFsdWUsIG9iamVjdFByb3RvW2tleV0pICYmICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgb2JqZWN0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqZWN0O1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVmYXVsdHM7XG4iLCJ2YXIgU2V0Q2FjaGUgPSByZXF1aXJlKCcuL19TZXRDYWNoZScpLFxuICAgIGFycmF5SW5jbHVkZXMgPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzJyksXG4gICAgYXJyYXlJbmNsdWRlc1dpdGggPSByZXF1aXJlKCcuL19hcnJheUluY2x1ZGVzV2l0aCcpLFxuICAgIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBjYWNoZUhhcyA9IHJlcXVpcmUoJy4vX2NhY2hlSGFzJyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGxpa2UgYF8uaW50ZXJzZWN0aW9uYCwgd2l0aG91dCBzdXBwb3J0XG4gKiBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kcywgdGhhdCBhY2NlcHRzIGFuIGFycmF5IG9mIGFycmF5cyB0byBpbnNwZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheXMgVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2l0ZXJhdGVlXSBUaGUgaXRlcmF0ZWUgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjb21wYXJhdG9yXSBUaGUgY29tcGFyYXRvciBpbnZva2VkIHBlciBlbGVtZW50LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Ygc2hhcmVkIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUludGVyc2VjdGlvbihhcnJheXMsIGl0ZXJhdGVlLCBjb21wYXJhdG9yKSB7XG4gIHZhciBpbmNsdWRlcyA9IGNvbXBhcmF0b3IgPyBhcnJheUluY2x1ZGVzV2l0aCA6IGFycmF5SW5jbHVkZXMsXG4gICAgICBsZW5ndGggPSBhcnJheXNbMF0ubGVuZ3RoLFxuICAgICAgb3RoTGVuZ3RoID0gYXJyYXlzLmxlbmd0aCxcbiAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoLFxuICAgICAgY2FjaGVzID0gQXJyYXkob3RoTGVuZ3RoKSxcbiAgICAgIG1heExlbmd0aCA9IEluZmluaXR5LFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgd2hpbGUgKG90aEluZGV4LS0pIHtcbiAgICB2YXIgYXJyYXkgPSBhcnJheXNbb3RoSW5kZXhdO1xuICAgIGlmIChvdGhJbmRleCAmJiBpdGVyYXRlZSkge1xuICAgICAgYXJyYXkgPSBhcnJheU1hcChhcnJheSwgYmFzZVVuYXJ5KGl0ZXJhdGVlKSk7XG4gICAgfVxuICAgIG1heExlbmd0aCA9IG5hdGl2ZU1pbihhcnJheS5sZW5ndGgsIG1heExlbmd0aCk7XG4gICAgY2FjaGVzW290aEluZGV4XSA9ICFjb21wYXJhdG9yICYmIChpdGVyYXRlZSB8fCAobGVuZ3RoID49IDEyMCAmJiBhcnJheS5sZW5ndGggPj0gMTIwKSlcbiAgICAgID8gbmV3IFNldENhY2hlKG90aEluZGV4ICYmIGFycmF5KVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbiAgYXJyYXkgPSBhcnJheXNbMF07XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBzZWVuID0gY2FjaGVzWzBdO1xuXG4gIG91dGVyOlxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCAmJiByZXN1bHQubGVuZ3RoIDwgbWF4TGVuZ3RoKSB7XG4gICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICBjb21wdXRlZCA9IGl0ZXJhdGVlID8gaXRlcmF0ZWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICB2YWx1ZSA9IChjb21wYXJhdG9yIHx8IHZhbHVlICE9PSAwKSA/IHZhbHVlIDogMDtcbiAgICBpZiAoIShzZWVuXG4gICAgICAgICAgPyBjYWNoZUhhcyhzZWVuLCBjb21wdXRlZClcbiAgICAgICAgICA6IGluY2x1ZGVzKHJlc3VsdCwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpXG4gICAgICAgICkpIHtcbiAgICAgIG90aEluZGV4ID0gb3RoTGVuZ3RoO1xuICAgICAgd2hpbGUgKC0tb3RoSW5kZXgpIHtcbiAgICAgICAgdmFyIGNhY2hlID0gY2FjaGVzW290aEluZGV4XTtcbiAgICAgICAgaWYgKCEoY2FjaGVcbiAgICAgICAgICAgICAgPyBjYWNoZUhhcyhjYWNoZSwgY29tcHV0ZWQpXG4gICAgICAgICAgICAgIDogaW5jbHVkZXMoYXJyYXlzW290aEluZGV4XSwgY29tcHV0ZWQsIGNvbXBhcmF0b3IpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWVuKSB7XG4gICAgICAgIHNlZW4ucHVzaChjb21wdXRlZCk7XG4gICAgICB9XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUludGVyc2VjdGlvbjtcbiIsInZhciBpc0FycmF5TGlrZU9iamVjdCA9IHJlcXVpcmUoJy4vaXNBcnJheUxpa2VPYmplY3QnKTtcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGFuIGVtcHR5IGFycmF5IGlmIGl0J3Mgbm90IGFuIGFycmF5IGxpa2Ugb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMge0FycmF5fE9iamVjdH0gUmV0dXJucyB0aGUgY2FzdCBhcnJheS1saWtlIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY2FzdEFycmF5TGlrZU9iamVjdCh2YWx1ZSkge1xuICByZXR1cm4gaXNBcnJheUxpa2VPYmplY3QodmFsdWUpID8gdmFsdWUgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYXN0QXJyYXlMaWtlT2JqZWN0O1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi9fYXJyYXlNYXAnKSxcbiAgICBiYXNlSW50ZXJzZWN0aW9uID0gcmVxdWlyZSgnLi9fYmFzZUludGVyc2VjdGlvbicpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBjYXN0QXJyYXlMaWtlT2JqZWN0ID0gcmVxdWlyZSgnLi9fY2FzdEFycmF5TGlrZU9iamVjdCcpLFxuICAgIGxhc3QgPSByZXF1aXJlKCcuL2xhc3QnKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmludGVyc2VjdGlvbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY29tcGFyYXRvcmBcbiAqIHdoaWNoIGlzIGludm9rZWQgdG8gY29tcGFyZSBlbGVtZW50cyBvZiBgYXJyYXlzYC4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzXG4gKiBvZiByZXN1bHQgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS4gVGhlIGNvbXBhcmF0b3IgaXNcbiAqIGludm9rZWQgd2l0aCB0d28gYXJndW1lbnRzOiAoYXJyVmFsLCBvdGhWYWwpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBBcnJheVxuICogQHBhcmFtIHsuLi5BcnJheX0gW2FycmF5c10gVGhlIGFycmF5cyB0byBpbnNwZWN0LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2NvbXBhcmF0b3JdIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBpbnRlcnNlY3RpbmcgdmFsdWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IFt7ICd4JzogMSwgJ3knOiAyIH0sIHsgJ3gnOiAyLCAneSc6IDEgfV07XG4gKiB2YXIgb3RoZXJzID0gW3sgJ3gnOiAxLCAneSc6IDEgfSwgeyAneCc6IDEsICd5JzogMiB9XTtcbiAqXG4gKiBfLmludGVyc2VjdGlvbldpdGgob2JqZWN0cywgb3RoZXJzLCBfLmlzRXF1YWwpO1xuICogLy8gPT4gW3sgJ3gnOiAxLCAneSc6IDIgfV1cbiAqL1xudmFyIGludGVyc2VjdGlvbldpdGggPSBiYXNlUmVzdChmdW5jdGlvbihhcnJheXMpIHtcbiAgdmFyIGNvbXBhcmF0b3IgPSBsYXN0KGFycmF5cyksXG4gICAgICBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuXG4gIGNvbXBhcmF0b3IgPSB0eXBlb2YgY29tcGFyYXRvciA9PSAnZnVuY3Rpb24nID8gY29tcGFyYXRvciA6IHVuZGVmaW5lZDtcbiAgaWYgKGNvbXBhcmF0b3IpIHtcbiAgICBtYXBwZWQucG9wKCk7XG4gIH1cbiAgcmV0dXJuIChtYXBwZWQubGVuZ3RoICYmIG1hcHBlZFswXSA9PT0gYXJyYXlzWzBdKVxuICAgID8gYmFzZUludGVyc2VjdGlvbihtYXBwZWQsIHVuZGVmaW5lZCwgY29tcGFyYXRvcilcbiAgICA6IFtdO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJzZWN0aW9uV2l0aDtcbiIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBib29sZWFuIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBib29sZWFuLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNCb29sZWFuKGZhbHNlKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQm9vbGVhbihudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYm9vbFRhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNCb29sZWFuO1xuIiwidmFyIGlzRXF1YWwgPSByZXF1aXJlKCdsb2Rhc2gvaXNFcXVhbCcpXG52YXIgc29ydEJ5ID0gcmVxdWlyZSgnbG9kYXNoL3NvcnRCeScpXG52YXIgdW5pcSA9IHJlcXVpcmUoJ2xvZGFzaC91bmlxJylcbnZhciB1bmlxV2l0aCA9IHJlcXVpcmUoJ2xvZGFzaC91bmlxV2l0aCcpXG52YXIgZGVmYXVsdHMgPSByZXF1aXJlKCdsb2Rhc2gvZGVmYXVsdHMnKVxudmFyIGludGVyc2VjdGlvbldpdGggPSByZXF1aXJlKCdsb2Rhc2gvaW50ZXJzZWN0aW9uV2l0aCcpXG52YXIgaXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJ2xvZGFzaC9pc1BsYWluT2JqZWN0JylcbnZhciBpc0Jvb2xlYW4gPSByZXF1aXJlKCdsb2Rhc2gvaXNCb29sZWFuJylcblxudmFyIG5vcm1hbGl6ZUFycmF5ID0gdmFsID0+IEFycmF5LmlzQXJyYXkodmFsKVxuICA/IHZhbCA6IFt2YWxdXG52YXIgdW5kZWYgPSB2YWwgPT4gdmFsID09PSB1bmRlZmluZWRcbnZhciBrZXlzID0gb2JqID0+IGlzUGxhaW5PYmplY3Qob2JqKSB8fCBBcnJheS5pc0FycmF5KG9iaikgPyBPYmplY3Qua2V5cyhvYmopIDogW11cbnZhciBoYXMgPSAob2JqLCBrZXkpID0+IG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpXG52YXIgc3RyaW5nQXJyYXkgPSBhcnIgPT4gc29ydEJ5KHVuaXEoYXJyKSlcbnZhciB1bmRlZkVtcHR5ID0gdmFsID0+IHVuZGVmKHZhbCkgfHwgKEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoID09PSAwKVxudmFyIGtleVZhbEVxdWFsID0gKGEsIGIsIGtleSwgY29tcGFyZSkgPT4gYiAmJiBoYXMoYiwga2V5KSAmJiBhICYmIGhhcyhhLCBrZXkpICYmIGNvbXBhcmUoYVtrZXldLCBiW2tleV0pXG52YXIgdW5kZWZBbmRaZXJvID0gKGEsIGIpID0+ICh1bmRlZihhKSAmJiBiID09PSAwKSB8fCAodW5kZWYoYikgJiYgYSA9PT0gMCkgfHwgaXNFcXVhbChhLCBiKVxudmFyIGZhbHNlVW5kZWZpbmVkID0gKGEsIGIpID0+ICh1bmRlZihhKSAmJiBiID09PSBmYWxzZSkgfHwgKHVuZGVmKGIpICYmIGEgPT09IGZhbHNlKSB8fCBpc0VxdWFsKGEsIGIpXG52YXIgZW1wdHlTY2hlbWEgPSBzY2hlbWEgPT4gdW5kZWYoc2NoZW1hKSB8fCBpc0VxdWFsKHNjaGVtYSwge30pIHx8IHNjaGVtYSA9PT0gdHJ1ZVxudmFyIGVtcHR5T2JqVW5kZWYgPSBzY2hlbWEgPT4gdW5kZWYoc2NoZW1hKSB8fCBpc0VxdWFsKHNjaGVtYSwge30pXG52YXIgaXNTY2hlbWEgPSB2YWwgPT4gdW5kZWYodmFsKSB8fCBpc1BsYWluT2JqZWN0KHZhbCkgfHwgdmFsID09PSB0cnVlIHx8IHZhbCA9PT0gZmFsc2VcblxuZnVuY3Rpb24gdW5kZWZBcnJheUVxdWFsKGEsIGIpIHtcbiAgaWYgKHVuZGVmRW1wdHkoYSkgJiYgdW5kZWZFbXB0eShiKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGlzRXF1YWwoc3RyaW5nQXJyYXkoYSksIHN0cmluZ0FycmF5KGIpKVxuICB9XG59XG5cbmZ1bmN0aW9uIHVuc29ydGVkTm9ybWFsaXplZEFycmF5KGEsIGIpIHtcbiAgYSA9IG5vcm1hbGl6ZUFycmF5KGEpXG4gIGIgPSBub3JtYWxpemVBcnJheShiKVxuICByZXR1cm4gaXNFcXVhbChzdHJpbmdBcnJheShhKSwgc3RyaW5nQXJyYXkoYikpXG59XG5cbmZ1bmN0aW9uIHNjaGVtYUdyb3VwKGEsIGIsIGtleSwgY29tcGFyZSkge1xuICB2YXIgYWxsUHJvcHMgPSB1bmlxKGtleXMoYSkuY29uY2F0KGtleXMoYikpKVxuICBpZiAoZW1wdHlPYmpVbmRlZihhKSAmJiBlbXB0eU9ialVuZGVmKGIpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfSBlbHNlIGlmIChlbXB0eU9ialVuZGVmKGEpICYmIGtleXMoYikubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH0gZWxzZSBpZiAoZW1wdHlPYmpVbmRlZihiKSAmJiBrZXlzKGEpLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGFsbFByb3BzLmV2ZXJ5KGZ1bmN0aW9uKGtleSkge1xuICAgIHZhciBhVmFsID0gYVtrZXldXG4gICAgdmFyIGJWYWwgPSBiW2tleV1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShhVmFsKSAmJiBBcnJheS5pc0FycmF5KGJWYWwpKSB7XG4gICAgICByZXR1cm4gaXNFcXVhbChzdHJpbmdBcnJheShhKSwgc3RyaW5nQXJyYXkoYikpXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFWYWwpICYmICFBcnJheS5pc0FycmF5KGJWYWwpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYlZhbCkgJiYgIUFycmF5LmlzQXJyYXkoYVZhbCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4ga2V5VmFsRXF1YWwoYSwgYiwga2V5LCBjb21wYXJlKVxuICB9KVxufVxuXG5mdW5jdGlvbiBpdGVtcyhhLCBiLCBrZXksIGNvbXBhcmUpIHtcbiAgaWYgKGlzUGxhaW5PYmplY3QoYSkgJiYgaXNQbGFpbk9iamVjdChiKSkge1xuICAgIHJldHVybiBjb21wYXJlKGEsIGIpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpKSB7XG4gICAgcmV0dXJuIHNjaGVtYUdyb3VwKGEsIGIsIGtleSwgY29tcGFyZSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaXNFcXVhbChhLCBiKVxuICB9XG59XG5cbmZ1bmN0aW9uIHVuc29ydGVkQXJyYXkoYSwgYiwga2V5LCBjb21wYXJlKSB7XG4gIHZhciB1bmlxdWVBID0gdW5pcVdpdGgoYSwgY29tcGFyZSlcbiAgdmFyIHVuaXF1ZUIgPSB1bmlxV2l0aChiLCBjb21wYXJlKVxuICB2YXIgaW50ZXIgPSBpbnRlcnNlY3Rpb25XaXRoKHVuaXF1ZUEsIHVuaXF1ZUIsIGNvbXBhcmUpXG4gIHJldHVybiBpbnRlci5sZW5ndGggPT09IE1hdGgubWF4KHVuaXF1ZUEubGVuZ3RoLCB1bmlxdWVCLmxlbmd0aClcbn1cblxudmFyIGNvbXBhcmVycyA9IHtcbiAgdGl0bGU6IGlzRXF1YWwsXG4gIHVuaXF1ZUl0ZW1zOiBmYWxzZVVuZGVmaW5lZCxcbiAgbWluTGVuZ3RoOiB1bmRlZkFuZFplcm8sXG4gIG1pbkl0ZW1zOiB1bmRlZkFuZFplcm8sXG4gIG1pblByb3BlcnRpZXM6IHVuZGVmQW5kWmVybyxcbiAgcmVxdWlyZWQ6IHVuZGVmQXJyYXlFcXVhbCxcbiAgZW51bTogdW5kZWZBcnJheUVxdWFsLFxuICB0eXBlOiB1bnNvcnRlZE5vcm1hbGl6ZWRBcnJheSxcbiAgaXRlbXM6IGl0ZW1zLFxuICBhbnlPZjogdW5zb3J0ZWRBcnJheSxcbiAgYWxsT2Y6IHVuc29ydGVkQXJyYXksXG4gIG9uZU9mOiB1bnNvcnRlZEFycmF5LFxuICBwcm9wZXJ0aWVzOiBzY2hlbWFHcm91cCxcbiAgcGF0dGVyblByb3BlcnRpZXM6IHNjaGVtYUdyb3VwLFxuICBkZXBlbmRlbmNpZXM6IHNjaGVtYUdyb3VwXG59XG5cbnZhciBhY2NlcHRzVW5kZWZpbmVkID0gW1xuICAncHJvcGVydGllcycsXG4gICdwYXR0ZXJuUHJvcGVydGllcycsXG4gICdkZXBlbmRlbmNpZXMnLFxuICAndW5pcXVlSXRlbXMnLFxuICAnbWluTGVuZ3RoJyxcbiAgJ21pbkl0ZW1zJyxcbiAgJ21pblByb3BlcnRpZXMnLFxuICAncmVxdWlyZWQnXG5dXG5cbnZhciBzY2hlbWFQcm9wcyA9IFsnYWRkaXRpb25hbFByb3BlcnRpZXMnLCAnYWRkaXRpb25hbEl0ZW1zJywgJ2NvbnRhaW5zJywgJ3Byb3BlcnR5TmFtZXMnLCAnbm90J11cblxuZnVuY3Rpb24gY29tcGFyZShhLCBiLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBkZWZhdWx0cyhvcHRpb25zLCB7XG4gICAgaWdub3JlOiBbXVxuICB9KVxuXG4gIGlmIChlbXB0eVNjaGVtYShhKSAmJiBlbXB0eVNjaGVtYShiKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoIWlzU2NoZW1hKGEpIHx8ICFpc1NjaGVtYShiKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIG9mIHRoZSB2YWx1ZXMgYXJlIG5vdCBhIEpTT04gc2NoZW1hLicpXG4gIH1cbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGlzQm9vbGVhbihhKSAmJiBpc0Jvb2xlYW4oYikpIHtcbiAgICByZXR1cm4gYSA9PT0gYlxuICB9XG5cbiAgaWYgKChhID09PSB1bmRlZmluZWQgJiYgYiA9PT0gZmFsc2UpIHx8IChiID09PSB1bmRlZmluZWQgJiYgYSA9PT0gZmFsc2UpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoKHVuZGVmKGEpICYmICF1bmRlZihiKSkgfHwgKCF1bmRlZihhKSAmJiB1bmRlZihiKSkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHZhciBhbGxLZXlzID0gdW5pcShPYmplY3Qua2V5cyhhKS5jb25jYXQoT2JqZWN0LmtleXMoYikpKVxuXG4gIGlmIChvcHRpb25zLmlnbm9yZS5sZW5ndGgpIHtcbiAgICBhbGxLZXlzID0gYWxsS2V5cy5maWx0ZXIoayA9PiBvcHRpb25zLmlnbm9yZS5pbmRleE9mKGspID09PSAtMSlcbiAgfVxuXG4gIGlmICghYWxsS2V5cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gaW5uZXJDb21wYXJlKGEsIGIpIHtcbiAgICByZXR1cm4gY29tcGFyZShhLCBiLCBvcHRpb25zKVxuICB9XG5cbiAgcmV0dXJuIGFsbEtleXMuZXZlcnkoZnVuY3Rpb24oa2V5KSB7XG4gICAgdmFyIGFWYWx1ZSA9IGFba2V5XVxuICAgIHZhciBiVmFsdWUgPSBiW2tleV1cblxuICAgIGlmIChzY2hlbWFQcm9wcy5pbmRleE9mKGtleSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gY29tcGFyZShhVmFsdWUsIGJWYWx1ZSwgb3B0aW9ucylcbiAgICB9XG5cbiAgICB2YXIgY29tcGFyZXIgPSBjb21wYXJlcnNba2V5XVxuICAgIGlmICghY29tcGFyZXIpIHtcbiAgICAgIGNvbXBhcmVyID0gaXNFcXVhbFxuICAgIH1cblxuICAgIC8vIGRvIHNpbXBsZSBsb2Rhc2ggY2hlY2sgZmlyc3RcbiAgICBpZiAoaXNFcXVhbChhVmFsdWUsIGJWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGFjY2VwdHNVbmRlZmluZWQuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgaWYgKCghaGFzKGEsIGtleSkgJiYgaGFzKGIsIGtleSkpIHx8IChoYXMoYSwga2V5KSAmJiAhaGFzKGIsIGtleSkpKSB7XG4gICAgICAgIHJldHVybiBhVmFsdWUgPT09IGJWYWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXN1bHQgPSBjb21wYXJlcihhVmFsdWUsIGJWYWx1ZSwga2V5LCBpbm5lckNvbXBhcmUpXG4gICAgaWYgKCFpc0Jvb2xlYW4ocmVzdWx0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb21wYXJlciBtdXN0IHJldHVybiB0cnVlIG9yIGZhbHNlJylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBhcmVcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4qIEZVTkNUSU9OOiBpc0FycmF5KCB2YWx1ZSApXG4qXHRWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhbiBhcnJheS5cbipcbiogQHBhcmFtIHsqfSB2YWx1ZSAtIHZhbHVlIHRvIGJlIHZhbGlkYXRlZFxuKiBAcmV0dXJucyB7Qm9vbGVhbn0gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdmFsdWUgaXMgYW4gYXJyYXlcbiovXG5mdW5jdGlvbiBpc0FycmF5KCB2YWx1ZSApIHtcblx0cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCggdmFsdWUgKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn0gLy8gZW5kIEZVTkNUSU9OIGlzQXJyYXkoKVxuXG4vLyBFWFBPUlRTIC8vXG5cbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBpc0FycmF5O1xuIiwiLyoqXG4qXG4qXHRWQUxJREFURTogbnVtYmVyXG4qXG4qXG4qXHRERVNDUklQVElPTjpcbipcdFx0LSBWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhIG51bWJlci5cbipcbipcbipcdE5PVEVTOlxuKlx0XHRbMV1cbipcbipcbipcdFRPRE86XG4qXHRcdFsxXVxuKlxuKlxuKlx0TElDRU5TRTpcbipcdFx0TUlUXG4qXG4qXHRDb3B5cmlnaHQgKGMpIDIwMTQuIEF0aGFuIFJlaW5lcy5cbipcbipcbipcdEFVVEhPUjpcbipcdFx0QXRoYW4gUmVpbmVzLiBrZ3J5dGVAZ21haWwuY29tLiAyMDE0LlxuKlxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiogRlVOQ1RJT046IGlzTnVtYmVyKCB2YWx1ZSApXG4qXHRWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhIG51bWJlci5cbipcbiogQHBhcmFtIHsqfSB2YWx1ZSAtIHZhbHVlIHRvIGJlIHZhbGlkYXRlZFxuKiBAcmV0dXJucyB7Qm9vbGVhbn0gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdmFsdWUgaXMgYSBudW1iZXJcbiovXG5mdW5jdGlvbiBpc051bWJlciggdmFsdWUgKSB7XG5cdHJldHVybiAoIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCB2YWx1ZSApID09PSAnW29iamVjdCBOdW1iZXJdJyApICYmIHZhbHVlLnZhbHVlT2YoKSA9PT0gdmFsdWUudmFsdWVPZigpO1xufSAvLyBlbmQgRlVOQ1RJT04gaXNOdW1iZXIoKVxuXG5cbi8vIEVYUE9SVFMgLy9cblxubW9kdWxlLmV4cG9ydHMgPSBpc051bWJlcjtcbiIsIi8qKlxuKlxuKlx0VkFMSURBVEU6IGludGVnZXJcbipcbipcbipcdERFU0NSSVBUSU9OOlxuKlx0XHQtIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGFuIGludGVnZXIuXG4qXG4qXG4qXHROT1RFUzpcbipcdFx0WzFdXG4qXG4qXG4qXHRUT0RPOlxuKlx0XHRbMV1cbipcbipcbipcdExJQ0VOU0U6XG4qXHRcdE1JVFxuKlxuKlx0Q29weXJpZ2h0IChjKSAyMDE0LiBBdGhhbiBSZWluZXMuXG4qXG4qXG4qXHRBVVRIT1I6XG4qXHRcdEF0aGFuIFJlaW5lcy4ga2dyeXRlQGdtYWlsLmNvbS4gMjAxNC5cbipcbiovXG5cbid1c2Ugc3RyaWN0JztcblxuLy8gTU9EVUxFUyAvL1xuXG52YXIgaXNOdW1iZXIgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tbnVtYmVyJyApO1xuXG5cbi8vIElTSU5URUdFUiAvL1xuXG4vKipcbiogRlVOQ1RJT046IGlzSW50ZWdlciggdmFsdWUgKVxuKlx0VmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgYW4gaW50ZWdlci5cbipcbiogQHBhcmFtIHtOdW1iZXJ9IHZhbHVlIC0gdmFsdWUgdG8gYmUgdmFsaWRhdGVkXG4qIEByZXR1cm5zIHtCb29sZWFufSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB2YWx1ZSBpcyBhbiBpbnRlZ2VyXG4qL1xuZnVuY3Rpb24gaXNJbnRlZ2VyKCB2YWx1ZSApIHtcblx0cmV0dXJuIGlzTnVtYmVyKCB2YWx1ZSApICYmIHZhbHVlJTEgPT09IDA7XG59IC8vIGVuZCBGVU5DVElPTiBpc0ludGVnZXIoKVxuXG5cbi8vIEVYUE9SVFMgLy9cblxubW9kdWxlLmV4cG9ydHMgPSBpc0ludGVnZXI7XG4iLCIvKipcbipcbipcdFZBTElEQVRFOiBpbnRlZ2VyLWFycmF5XG4qXG4qXG4qXHRERVNDUklQVElPTjpcbipcdFx0LSBWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIGFycmF5LlxuKlxuKlxuKlx0Tk9URVM6XG4qXHRcdFsxXVxuKlxuKlxuKlx0VE9ETzpcbipcdFx0WzFdXG4qXG4qXG4qXHRMSUNFTlNFOlxuKlx0XHRNSVRcbipcbipcdENvcHlyaWdodCAoYykgMjAxNS4gQXRoYW4gUmVpbmVzLlxuKlxuKlxuKlx0QVVUSE9SOlxuKlx0XHRBdGhhbiBSZWluZXMuIGtncnl0ZUBnbWFpbC5jb20uIDIwMTUuXG4qXG4qL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8vIE1PRFVMRVMgLy9cblxudmFyIGlzQXJyYXkgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tYXJyYXknICksXG5cdGlzSW50ZWdlciA9IHJlcXVpcmUoICd2YWxpZGF0ZS5pby1pbnRlZ2VyJyApO1xuXG5cbi8vIElTIElOVEVHRVIgQVJSQVkgLy9cblxuLyoqXG4qIEZVTkNUSU9OOiBpc0ludGVnZXJBcnJheSggdmFsdWUgKVxuKlx0VmFsaWRhdGVzIGlmIGEgdmFsdWUgaXMgYW4gaW50ZWdlciBhcnJheS5cbipcbiogQHBhcmFtIHsqfSB2YWx1ZSAtIHZhbHVlIHRvIGJlIHZhbGlkYXRlZFxuKiBAcmV0dXJucyB7Qm9vbGVhbn0gYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGEgdmFsdWUgaXMgYW4gaW50ZWdlciBhcnJheVxuKi9cbmZ1bmN0aW9uIGlzSW50ZWdlckFycmF5KCB2YWx1ZSApIHtcblx0dmFyIGxlbjtcblx0aWYgKCAhaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0bGVuID0gdmFsdWUubGVuZ3RoO1xuXHRpZiAoICFsZW4gKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdGZvciAoIHZhciBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGlmICggIWlzSW50ZWdlciggdmFsdWVbaV0gKSApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRydWU7XG59IC8vIGVuZCBGVU5DVElPTiBpc0ludGVnZXJBcnJheSgpXG5cblxuLy8gRVhQT1JUUyAvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSW50ZWdlckFycmF5O1xuIiwiLyoqXG4qXG4qXHRWQUxJREFURTogZnVuY3Rpb25cbipcbipcbipcdERFU0NSSVBUSU9OOlxuKlx0XHQtIFZhbGlkYXRlcyBpZiBhIHZhbHVlIGlzIGEgZnVuY3Rpb24uXG4qXG4qXG4qXHROT1RFUzpcbipcdFx0WzFdXG4qXG4qXG4qXHRUT0RPOlxuKlx0XHRbMV1cbipcbipcbipcdExJQ0VOU0U6XG4qXHRcdE1JVFxuKlxuKlx0Q29weXJpZ2h0IChjKSAyMDE0LiBBdGhhbiBSZWluZXMuXG4qXG4qXG4qXHRBVVRIT1I6XG4qXHRcdEF0aGFuIFJlaW5lcy4ga2dyeXRlQGdtYWlsLmNvbS4gMjAxNC5cbipcbiovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4qIEZVTkNUSU9OOiBpc0Z1bmN0aW9uKCB2YWx1ZSApXG4qXHRWYWxpZGF0ZXMgaWYgYSB2YWx1ZSBpcyBhIGZ1bmN0aW9uLlxuKlxuKiBAcGFyYW0geyp9IHZhbHVlIC0gdmFsdWUgdG8gYmUgdmFsaWRhdGVkXG4qIEByZXR1cm5zIHtCb29sZWFufSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB2YWx1ZSBpcyBhIGZ1bmN0aW9uXG4qL1xuZnVuY3Rpb24gaXNGdW5jdGlvbiggdmFsdWUgKSB7XG5cdHJldHVybiAoIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyApO1xufSAvLyBlbmQgRlVOQ1RJT04gaXNGdW5jdGlvbigpXG5cblxuLy8gRVhQT1JUUyAvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG4iLCIndXNlIHN0cmljdCc7XG5cbi8vIE1PRFVMRVMgLy9cblxudmFyIGlzQXJyYXkgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tYXJyYXknICksXG5cdGlzSW50ZWdlckFycmF5ID0gcmVxdWlyZSggJ3ZhbGlkYXRlLmlvLWludGVnZXItYXJyYXknICksXG5cdGlzRnVuY3Rpb24gPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tZnVuY3Rpb24nICk7XG5cblxuLy8gVkFSSUFCTEVTIC8vXG5cbnZhciBNQVhJTlQgPSBNYXRoLnBvdyggMiwgMzEgKSAtIDE7XG5cblxuLy8gRlVOQ1RJT05TIC8vXG5cbi8qKlxuKiBGVU5DVElPTjogZ2NkKCBhLCBiIClcbipcdENvbXB1dGVzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMgYGFgIGFuZCBgYmAsIHVzaW5nIHRoZSBiaW5hcnkgR0NEIGFsZ29yaXRobS5cbipcbiogQHBhcmFtIHtOdW1iZXJ9IGEgLSBpbnRlZ2VyXG4qIEBwYXJhbSB7TnVtYmVyfSBiIC0gaW50ZWdlclxuKiBAcmV0dXJucyB7TnVtYmVyfSBncmVhdGVzdCBjb21tb24gZGl2aXNvclxuKi9cbmZ1bmN0aW9uIGdjZCggYSwgYiApIHtcblx0dmFyIGsgPSAxLFxuXHRcdHQ7XG5cdC8vIFNpbXBsZSBjYXNlczpcblx0aWYgKCBhID09PSAwICkge1xuXHRcdHJldHVybiBiO1xuXHR9XG5cdGlmICggYiA9PT0gMCApIHtcblx0XHRyZXR1cm4gYTtcblx0fVxuXHQvLyBSZWR1Y2UgYGFgIGFuZC9vciBgYmAgdG8gb2RkIG51bWJlcnMgYW5kIGtlZXAgdHJhY2sgb2YgdGhlIGdyZWF0ZXN0IHBvd2VyIG9mIDIgZGl2aWRpbmcgYm90aCBgYWAgYW5kIGBiYC4uLlxuXHR3aGlsZSAoIGElMiA9PT0gMCAmJiBiJTIgPT09IDAgKSB7XG5cdFx0YSA9IGEgLyAyOyAvLyByaWdodCBzaGlmdFxuXHRcdGIgPSBiIC8gMjsgLy8gcmlnaHQgc2hpZnRcblx0XHRrID0gayAqIDI7IC8vIGxlZnQgc2hpZnRcblx0fVxuXHQvLyBSZWR1Y2UgYGFgIHRvIGFuIG9kZCBudW1iZXIuLi5cblx0d2hpbGUgKCBhJTIgPT09IDAgKSB7XG5cdFx0YSA9IGEgLyAyOyAvLyByaWdodCBzaGlmdFxuXHR9XG5cdC8vIEhlbmNlZm9ydGgsIGBhYCBpcyBhbHdheXMgb2RkLi4uXG5cdHdoaWxlICggYiApIHtcblx0XHQvLyBSZW1vdmUgYWxsIGZhY3RvcnMgb2YgMiBpbiBgYmAsIGFzIHRoZXkgYXJlIG5vdCBjb21tb24uLi5cblx0XHR3aGlsZSAoIGIlMiA9PT0gMCApIHtcblx0XHRcdGIgPSBiIC8gMjsgLy8gcmlnaHQgc2hpZnRcblx0XHR9XG5cdFx0Ly8gYGFgIGFuZCBgYmAgYXJlIGJvdGggb2RkLiBTd2FwIHZhbHVlcyBzdWNoIHRoYXQgYGJgIGlzIHRoZSBsYXJnZXIgb2YgdGhlIHR3byB2YWx1ZXMsIGFuZCB0aGVuIHNldCBgYmAgdG8gdGhlIGRpZmZlcmVuY2UgKHdoaWNoIGlzIGV2ZW4pLi4uXG5cdFx0aWYgKCBhID4gYiApIHtcblx0XHRcdHQgPSBiO1xuXHRcdFx0YiA9IGE7XG5cdFx0XHRhID0gdDtcblx0XHR9XG5cdFx0YiA9IGIgLSBhOyAvLyBiPTAgaWZmIGI9YVxuXHR9XG5cdC8vIFJlc3RvcmUgY29tbW9uIGZhY3RvcnMgb2YgMi4uLlxuXHRyZXR1cm4gayAqIGE7XG59IC8vIGVuZCBGVU5DVElPTiBnY2QoKVxuXG4vKipcbiogRlVOQ1RJT046IGJpdHdpc2UoIGEsIGIgKVxuKlx0Q29tcHV0ZXMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHR3byBpbnRlZ2VycyBgYWAgYW5kIGBiYCwgdXNpbmcgdGhlIGJpbmFyeSBHQ0QgYWxnb3JpdGhtIGFuZCBiaXR3aXNlIG9wZXJhdGlvbnMuXG4qXG4qIEBwYXJhbSB7TnVtYmVyfSBhIC0gc2FmZSBpbnRlZ2VyXG4qIEBwYXJhbSB7TnVtYmVyfSBiIC0gc2FmZSBpbnRlZ2VyXG4qIEByZXR1cm5zIHtOdW1iZXJ9IGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yXG4qL1xuZnVuY3Rpb24gYml0d2lzZSggYSwgYiApIHtcblx0dmFyIGsgPSAwLFxuXHRcdHQ7XG5cdC8vIFNpbXBsZSBjYXNlczpcblx0aWYgKCBhID09PSAwICkge1xuXHRcdHJldHVybiBiO1xuXHR9XG5cdGlmICggYiA9PT0gMCApIHtcblx0XHRyZXR1cm4gYTtcblx0fVxuXHQvLyBSZWR1Y2UgYGFgIGFuZC9vciBgYmAgdG8gb2RkIG51bWJlcnMgYW5kIGtlZXAgdHJhY2sgb2YgdGhlIGdyZWF0ZXN0IHBvd2VyIG9mIDIgZGl2aWRpbmcgYm90aCBgYWAgYW5kIGBiYC4uLlxuXHR3aGlsZSAoIChhICYgMSkgPT09IDAgJiYgKGIgJiAxKSA9PT0gMCApIHtcblx0XHRhID4+Pj0gMTsgLy8gcmlnaHQgc2hpZnRcblx0XHRiID4+Pj0gMTsgLy8gcmlnaHQgc2hpZnRcblx0XHRrKys7XG5cdH1cblx0Ly8gUmVkdWNlIGBhYCB0byBhbiBvZGQgbnVtYmVyLi4uXG5cdHdoaWxlICggKGEgJiAxKSA9PT0gMCApIHtcblx0XHRhID4+Pj0gMTsgLy8gcmlnaHQgc2hpZnRcblx0fVxuXHQvLyBIZW5jZWZvcnRoLCBgYWAgaXMgYWx3YXlzIG9kZC4uLlxuXHR3aGlsZSAoIGIgKSB7XG5cdFx0Ly8gUmVtb3ZlIGFsbCBmYWN0b3JzIG9mIDIgaW4gYGJgLCBhcyB0aGV5IGFyZSBub3QgY29tbW9uLi4uXG5cdFx0d2hpbGUgKCAoYiAmIDEpID09PSAwICkge1xuXHRcdFx0YiA+Pj49IDE7IC8vIHJpZ2h0IHNoaWZ0XG5cdFx0fVxuXHRcdC8vIGBhYCBhbmQgYGJgIGFyZSBib3RoIG9kZC4gU3dhcCB2YWx1ZXMgc3VjaCB0aGF0IGBiYCBpcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdmFsdWVzLCBhbmQgdGhlbiBzZXQgYGJgIHRvIHRoZSBkaWZmZXJlbmNlICh3aGljaCBpcyBldmVuKS4uLlxuXHRcdGlmICggYSA+IGIgKSB7XG5cdFx0XHR0ID0gYjtcblx0XHRcdGIgPSBhO1xuXHRcdFx0YSA9IHQ7XG5cdFx0fVxuXHRcdGIgPSBiIC0gYTsgLy8gYj0wIGlmZiBiPWFcblx0fVxuXHQvLyBSZXN0b3JlIGNvbW1vbiBmYWN0b3JzIG9mIDIuLi5cblx0cmV0dXJuIGEgPDwgaztcbn0gLy8gZW5kIEZVTkNUSU9OIGJpdHdpc2UoKVxuXG5cbi8vIEdSRUFURVNUIENPTU1PTiBESVZJU09SIC8vXG5cbi8qKlxuKiBGVU5DVElPTjogY29tcHV0ZSggYXJyWywgY2xia10gKVxuKlx0Q29tcHV0ZXMgdGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuKlxuKiBAcGFyYW0ge051bWJlcltdfE51bWJlcn0gYXJyIC0gaW5wdXQgYXJyYXkgb2YgaW50ZWdlcnNcbiogQHBhcmFtIHtGdW5jdGlvbnxOdW1iZXJ9IFtjbGJrXSAtIGFjY2Vzc29yIGZ1bmN0aW9uIGZvciBhY2Nlc3NpbmcgYXJyYXkgdmFsdWVzXG4qIEByZXR1cm5zIHtOdW1iZXJ8TnVsbH0gZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb3IgbnVsbFxuKi9cbmZ1bmN0aW9uIGNvbXB1dGUoKSB7XG5cdHZhciBuYXJncyA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0YXJncyxcblx0XHRjbGJrLFxuXHRcdGFycixcblx0XHRsZW4sXG5cdFx0YSwgYixcblx0XHRpO1xuXG5cdC8vIENvcHkgdGhlIGlucHV0IGFyZ3VtZW50cyB0byBhbiBhcnJheS4uLlxuXHRhcmdzID0gbmV3IEFycmF5KCBuYXJncyApO1xuXHRmb3IgKCBpID0gMDsgaSA8IG5hcmdzOyBpKysgKSB7XG5cdFx0YXJnc1sgaSBdID0gYXJndW1lbnRzWyBpIF07XG5cdH1cblx0Ly8gSGF2ZSB3ZSBiZWVuIHByb3ZpZGVkIHdpdGggaW50ZWdlciBhcmd1bWVudHM/XG5cdGlmICggaXNJbnRlZ2VyQXJyYXkoIGFyZ3MgKSApIHtcblx0XHRpZiAoIG5hcmdzID09PSAyICkge1xuXHRcdFx0YSA9IGFyZ3NbIDAgXTtcblx0XHRcdGIgPSBhcmdzWyAxIF07XG5cdFx0XHRpZiAoIGEgPCAwICkge1xuXHRcdFx0XHRhID0gLWE7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGIgPCAwICkge1xuXHRcdFx0XHRiID0gLWI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGEgPD0gTUFYSU5UICYmIGIgPD0gTUFYSU5UICkge1xuXHRcdFx0XHRyZXR1cm4gYml0d2lzZSggYSwgYiApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGdjZCggYSwgYiApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRhcnIgPSBhcmdzO1xuXHR9XG5cdC8vIElmIG5vdCBpbnRlZ2VycywgZW5zdXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBhcnJheS4uLlxuXHRlbHNlIGlmICggIWlzQXJyYXkoIGFyZ3NbIDAgXSApICkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoICdnY2QoKTo6aW52YWxpZCBpbnB1dCBhcmd1bWVudC4gTXVzdCBwcm92aWRlIGFuIGFycmF5IG9mIGludGVnZXJzLiBWYWx1ZTogYCcgKyBhcmdzWyAwIF0gKyAnYC4nICk7XG5cdH1cblx0Ly8gSGF2ZSB3ZSBiZWVuIHByb3ZpZGVkIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudD8gSWYgc28sIGVuc3VyZSB0aGF0IHRoZSBhY2Nlc3NvciBhcmd1bWVudCBpcyBhIGZ1bmN0aW9uLi4uXG5cdGVsc2UgaWYgKCBuYXJncyA+IDEgKSB7XG5cdFx0YXJyID0gYXJnc1sgMCBdO1xuXHRcdGNsYmsgPSBhcmdzWyAxIF07XG5cdFx0aWYgKCAhaXNGdW5jdGlvbiggY2xiayApICkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2djZCgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBBY2Nlc3NvciBtdXN0IGJlIGEgZnVuY3Rpb24uIFZhbHVlOiBgJyArIGNsYmsgKyAnYC4nICk7XG5cdFx0fVxuXHR9XG5cdC8vIFdlIGhhdmUgYmVlbiBwcm92aWRlZCBhbiBhcnJheS4uLlxuXHRlbHNlIHtcblx0XHRhcnIgPSBhcmdzWyAwIF07XG5cdH1cblx0bGVuID0gYXJyLmxlbmd0aDtcblxuXHQvLyBDaGVjayBpZiBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIHZhbHVlcyBoYXZlIGJlZW4gcHJvdmlkZWQuLi5cblx0aWYgKCBsZW4gPCAyICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cdC8vIElmIGFuIGFjY2Vzc29yIGlzIHByb3ZpZGVkLCBleHRyYWN0IHRoZSBhcnJheSB2YWx1ZXMuLi5cblx0aWYgKCBjbGJrICkge1xuXHRcdGEgPSBuZXcgQXJyYXkoIGxlbiApO1xuXHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRhWyBpIF0gPSBjbGJrKCBhcnJbIGkgXSwgaSApO1xuXHRcdH1cblx0XHRhcnIgPSBhO1xuXHR9XG5cdC8vIEdpdmVuIGFuIGlucHV0IGFycmF5LCBlbnN1cmUgYWxsIGFycmF5IHZhbHVlcyBhcmUgaW50ZWdlcnMuLi5cblx0aWYgKCBuYXJncyA8IDMgKSB7XG5cdFx0aWYgKCAhaXNJbnRlZ2VyQXJyYXkoIGFyciApICkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2djZCgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBBY2Nlc3NlZCBhcnJheSB2YWx1ZXMgbXVzdCBiZSBpbnRlZ2Vycy4gVmFsdWU6IGAnICsgYXJyICsgJ2AuJyApO1xuXHRcdH1cblx0fVxuXHQvLyBDb252ZXJ0IGFueSBuZWdhdGl2ZSBpbnRlZ2VycyB0byBwb3NpdGl2ZSBpbnRlZ2Vycy4uLlxuXHRmb3IgKCBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGEgPSBhcnJbIGkgXTtcblx0XHRpZiAoIGEgPCAwICkge1xuXHRcdFx0YXJyWyBpIF0gPSAtYTtcblx0XHR9XG5cdH1cblx0Ly8gRXhwbG9pdCB0aGUgZmFjdCB0aGF0IHRoZSBnY2QgaXMgYW4gYXNzb2NpYXRpdmUgZnVuY3Rpb24uLi5cblx0YSA9IGFyclsgMCBdO1xuXHRmb3IgKCBpID0gMTsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGIgPSBhcnJbIGkgXTtcblx0XHRpZiAoIGIgPD0gTUFYSU5UICYmIGEgPD0gTUFYSU5UICkge1xuXHRcdFx0YSA9IGJpdHdpc2UoIGEsIGIgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YSA9IGdjZCggYSwgYiApO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gYTtcbn0gLy8gZW5kIEZVTkNUSU9OIGNvbXB1dGUoKVxuXG5cbi8vIEVYUE9SVFMgLy9cblxubW9kdWxlLmV4cG9ydHMgPSBjb21wdXRlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vLyBNT0RVTEVTIC8vXG5cbnZhciBnY2QgPSByZXF1aXJlKCAnY29tcHV0ZS1nY2QnICksXG5cdGlzQXJyYXkgPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tYXJyYXknICksXG5cdGlzSW50ZWdlckFycmF5ID0gcmVxdWlyZSggJ3ZhbGlkYXRlLmlvLWludGVnZXItYXJyYXknICksXG5cdGlzRnVuY3Rpb24gPSByZXF1aXJlKCAndmFsaWRhdGUuaW8tZnVuY3Rpb24nICk7XG5cblxuLy8gTEVBU1QgQ09NTU9OIE1VTFRJUExFIC8vXG5cbi8qKlxuKiBGVU5DVElPTjogbGNtKCBhcnJbLCBjbGJrXSApXG4qXHRDb21wdXRlcyB0aGUgbGVhc3QgY29tbW9uIG11bHRpcGxlIChsY20pLlxuKlxuKiBAcGFyYW0ge051bWJlcltdfE51bWJlcn0gYXJyIC0gaW5wdXQgYXJyYXkgb2YgaW50ZWdlcnNcbiogQHBhcmFtIHtGdW5jdGlvbnxOdW1iZXJ9IFthY2Nlc3Nvcl0gLSBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgYWNjZXNzaW5nIGFycmF5IHZhbHVlc1xuKiBAcmV0dXJucyB7TnVtYmVyfE51bGx9IGxlYXN0IGNvbW1vbiBtdWx0aXBsZSBvciBudWxsXG4qL1xuZnVuY3Rpb24gbGNtKCkge1xuXHR2YXIgbmFyZ3MgPSBhcmd1bWVudHMubGVuZ3RoLFxuXHRcdGFyZ3MsXG5cdFx0Y2xiayxcblx0XHRhcnIsXG5cdFx0bGVuLFxuXHRcdGEsIGIsXG5cdFx0aTtcblxuXHQvLyBDb3B5IHRoZSBpbnB1dCBhcmd1bWVudHMgdG8gYW4gYXJyYXkuLi5cblx0YXJncyA9IG5ldyBBcnJheSggbmFyZ3MgKTtcblx0Zm9yICggaSA9IDA7IGkgPCBuYXJnczsgaSsrICkge1xuXHRcdGFyZ3NbIGkgXSA9IGFyZ3VtZW50c1sgaSBdO1xuXHR9XG5cdC8vIEhhdmUgd2UgYmVlbiBwcm92aWRlZCB3aXRoIGludGVnZXIgYXJndW1lbnRzP1xuXHRpZiAoIGlzSW50ZWdlckFycmF5KCBhcmdzICkgKSB7XG5cdFx0aWYgKCBuYXJncyA9PT0gMiApIHtcblx0XHRcdGEgPSBhcmdzWyAwIF07XG5cdFx0XHRiID0gYXJnc1sgMSBdO1xuXHRcdFx0aWYgKCBhIDwgMCApIHtcblx0XHRcdFx0YSA9IC1hO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBiIDwgMCApIHtcblx0XHRcdFx0YiA9IC1iO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBhID09PSAwIHx8IGIgPT09IDAgKSB7XG5cdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICggYS9nY2QoYSxiKSApICogYjtcblx0XHR9XG5cdFx0YXJyID0gYXJncztcblx0fVxuXHQvLyBJZiBub3QgaW50ZWdlcnMsIGVuc3VyZSB0aGF0IHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBhcnJheS4uLlxuXHRlbHNlIGlmICggIWlzQXJyYXkoIGFyZ3NbIDAgXSApICkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoICdsY20oKTo6aW52YWxpZCBpbnB1dCBhcmd1bWVudC4gTXVzdCBwcm92aWRlIGFuIGFycmF5IG9mIGludGVnZXJzLiBWYWx1ZTogYCcgKyBhcmdzWyAwIF0gKyAnYC4nICk7XG5cdH1cblx0Ly8gSGF2ZSB3ZSBiZWVuIHByb3ZpZGVkIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudD8gSWYgc28sIGVuc3VyZSB0aGF0IHRoZSBhY2Nlc3NvciBhcmd1bWVudCBpcyBhIGZ1bmN0aW9uLi4uXG5cdGVsc2UgaWYgKCBuYXJncyA+IDEgKSB7XG5cdFx0YXJyID0gYXJnc1sgMCBdO1xuXHRcdGNsYmsgPSBhcmdzWyAxIF07XG5cdFx0aWYgKCAhaXNGdW5jdGlvbiggY2xiayApICkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2xjbSgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBBY2Nlc3NvciBtdXN0IGJlIGEgZnVuY3Rpb24uIFZhbHVlOiBgJyArIGNsYmsgKyAnYC4nICk7XG5cdFx0fVxuXHR9XG5cdC8vIFdlIGhhdmUgYmVlbiBwcm92aWRlZCBhbiBhcnJheS4uLlxuXHRlbHNlIHtcblx0XHRhcnIgPSBhcmdzWyAwIF07XG5cdH1cblx0bGVuID0gYXJyLmxlbmd0aDtcblxuXHQvLyBDaGVjayBpZiBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIHZhbHVlcyBoYXZlIGJlZW4gcHJvdmlkZWQuLi5cblx0aWYgKCBsZW4gPCAyICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cdC8vIElmIGFuIGFjY2Vzc29yIGlzIHByb3ZpZGVkLCBleHRyYWN0IHRoZSBhcnJheSB2YWx1ZXMuLi5cblx0aWYgKCBjbGJrICkge1xuXHRcdGEgPSBuZXcgQXJyYXkoIGxlbiApO1xuXHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRhWyBpIF0gPSBjbGJrKCBhcnJbIGkgXSwgaSApO1xuXHRcdH1cblx0XHRhcnIgPSBhO1xuXHR9XG5cdC8vIEdpdmVuIGFuIGlucHV0IGFycmF5LCBlbnN1cmUgYWxsIGFycmF5IHZhbHVlcyBhcmUgaW50ZWdlcnMuLi5cblx0aWYgKCBuYXJncyA8IDMgKSB7XG5cdFx0aWYgKCAhaXNJbnRlZ2VyQXJyYXkoIGFyciApICkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvciggJ2xjbSgpOjppbnZhbGlkIGlucHV0IGFyZ3VtZW50LiBBY2Nlc3NlZCBhcnJheSB2YWx1ZXMgbXVzdCBiZSBpbnRlZ2Vycy4gVmFsdWU6IGAnICsgYXJyICsgJ2AuJyApO1xuXHRcdH1cblx0fVxuXHQvLyBDb252ZXJ0IGFueSBuZWdhdGl2ZSBpbnRlZ2VycyB0byBwb3NpdGl2ZSBpbnRlZ2Vycy4uLlxuXHRmb3IgKCBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGEgPSBhcnJbIGkgXTtcblx0XHRpZiAoIGEgPCAwICkge1xuXHRcdFx0YXJyWyBpIF0gPSAtYTtcblx0XHR9XG5cdH1cblx0Ly8gRXhwbG9pdCB0aGUgZmFjdCB0aGF0IHRoZSBsY20gaXMgYW4gYXNzb2NpYXRpdmUgZnVuY3Rpb24uLi5cblx0YSA9IGFyclsgMCBdO1xuXHRmb3IgKCBpID0gMTsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGIgPSBhcnJbIGkgXTtcblx0XHRpZiAoIGEgPT09IDAgfHwgYiA9PT0gMCApIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0XHRhID0gKCBhL2djZChhLGIpICkgKiBiO1xuXHR9XG5cdHJldHVybiBhO1xufSAvLyBlbmQgRlVOQ1RJT04gbGNtKClcblxuXG4vLyBFWFBPUlRTIC8vXG5cbm1vZHVsZS5leHBvcnRzID0gbGNtO1xuIiwidmFyIGJhc2VNZXJnZSA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9pc09iamVjdCcpO1xuXG4vKipcbiAqIFVzZWQgYnkgYF8uZGVmYXVsdHNEZWVwYCB0byBjdXN0b21pemUgaXRzIGBfLm1lcmdlYCB1c2UgdG8gbWVyZ2Ugc291cmNlXG4gKiBvYmplY3RzIGludG8gZGVzdGluYXRpb24gb2JqZWN0cyB0aGF0IGFyZSBwYXNzZWQgdGhydS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIG1lcmdlLlxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgcGFyZW50IG9iamVjdCBvZiBgb2JqVmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgcGFyZW50IG9iamVjdCBvZiBgc3JjVmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtzdGFja10gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2UgdmFsdWVzIGFuZCB0aGVpciBtZXJnZWRcbiAqICBjb3VudGVycGFydHMuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBjdXN0b21EZWZhdWx0c01lcmdlKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSwgc3RhY2spIHtcbiAgaWYgKGlzT2JqZWN0KG9ialZhbHVlKSAmJiBpc09iamVjdChzcmNWYWx1ZSkpIHtcbiAgICAvLyBSZWN1cnNpdmVseSBtZXJnZSBvYmplY3RzIGFuZCBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBzdGFjay5zZXQoc3JjVmFsdWUsIG9ialZhbHVlKTtcbiAgICBiYXNlTWVyZ2Uob2JqVmFsdWUsIHNyY1ZhbHVlLCB1bmRlZmluZWQsIGN1c3RvbURlZmF1bHRzTWVyZ2UsIHN0YWNrKTtcbiAgICBzdGFja1snZGVsZXRlJ10oc3JjVmFsdWUpO1xuICB9XG4gIHJldHVybiBvYmpWYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjdXN0b21EZWZhdWx0c01lcmdlO1xuIiwidmFyIGJhc2VNZXJnZSA9IHJlcXVpcmUoJy4vX2Jhc2VNZXJnZScpLFxuICAgIGNyZWF0ZUFzc2lnbmVyID0gcmVxdWlyZSgnLi9fY3JlYXRlQXNzaWduZXInKTtcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLm1lcmdlYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYCB3aGljaFxuICogaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBtZXJnZWQgdmFsdWVzIG9mIHRoZSBkZXN0aW5hdGlvbiBhbmQgc291cmNlXG4gKiBwcm9wZXJ0aWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCwgbWVyZ2luZyBpcyBoYW5kbGVkIGJ5IHRoZVxuICogbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmAgaXMgaW52b2tlZCB3aXRoIHNpeCBhcmd1bWVudHM6XG4gKiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlLCBzdGFjaykuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9taXplciBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gKiAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpKSB7XG4gKiAgICAgcmV0dXJuIG9ialZhbHVlLmNvbmNhdChzcmNWYWx1ZSk7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IFsxXSwgJ2InOiBbMl0gfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiBbM10sICdiJzogWzRdIH07XG4gKlxuICogXy5tZXJnZVdpdGgob2JqZWN0LCBvdGhlciwgY3VzdG9taXplcik7XG4gKiAvLyA9PiB7ICdhJzogWzEsIDNdLCAnYic6IFsyLCA0XSB9XG4gKi9cbnZhciBtZXJnZVdpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgYmFzZU1lcmdlKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcik7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXJnZVdpdGg7XG4iLCJ2YXIgYXBwbHkgPSByZXF1aXJlKCcuL19hcHBseScpLFxuICAgIGJhc2VSZXN0ID0gcmVxdWlyZSgnLi9fYmFzZVJlc3QnKSxcbiAgICBjdXN0b21EZWZhdWx0c01lcmdlID0gcmVxdWlyZSgnLi9fY3VzdG9tRGVmYXVsdHNNZXJnZScpLFxuICAgIG1lcmdlV2l0aCA9IHJlcXVpcmUoJy4vbWVyZ2VXaXRoJyk7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5kZWZhdWx0c2AgZXhjZXB0IHRoYXQgaXQgcmVjdXJzaXZlbHkgYXNzaWduc1xuICogZGVmYXVsdCBwcm9wZXJ0aWVzLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4xMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0gey4uLk9iamVjdH0gW3NvdXJjZXNdIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAc2VlIF8uZGVmYXVsdHNcbiAqIEBleGFtcGxlXG4gKlxuICogXy5kZWZhdWx0c0RlZXAoeyAnYSc6IHsgJ2InOiAyIH0gfSwgeyAnYSc6IHsgJ2InOiAxLCAnYyc6IDMgfSB9KTtcbiAqIC8vID0+IHsgJ2EnOiB7ICdiJzogMiwgJ2MnOiAzIH0gfVxuICovXG52YXIgZGVmYXVsdHNEZWVwID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJncykge1xuICBhcmdzLnB1c2godW5kZWZpbmVkLCBjdXN0b21EZWZhdWx0c01lcmdlKTtcbiAgcmV0dXJuIGFwcGx5KG1lcmdlV2l0aCwgdW5kZWZpbmVkLCBhcmdzKTtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmF1bHRzRGVlcDtcbiIsInZhciBhcnJheU1hcCA9IHJlcXVpcmUoJy4vX2FycmF5TWFwJyksXG4gICAgYmFzZUludGVyc2VjdGlvbiA9IHJlcXVpcmUoJy4vX2Jhc2VJbnRlcnNlY3Rpb24nKSxcbiAgICBiYXNlUmVzdCA9IHJlcXVpcmUoJy4vX2Jhc2VSZXN0JyksXG4gICAgY2FzdEFycmF5TGlrZU9iamVjdCA9IHJlcXVpcmUoJy4vX2Nhc3RBcnJheUxpa2VPYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHVuaXF1ZSB2YWx1ZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gYWxsIGdpdmVuIGFycmF5c1xuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gVGhlIG9yZGVyIGFuZCByZWZlcmVuY2VzIG9mIHJlc3VsdCB2YWx1ZXMgYXJlXG4gKiBkZXRlcm1pbmVkIGJ5IHRoZSBmaXJzdCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7Li4uQXJyYXl9IFthcnJheXNdIFRoZSBhcnJheXMgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IGFycmF5IG9mIGludGVyc2VjdGluZyB2YWx1ZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaW50ZXJzZWN0aW9uKFsyLCAxXSwgWzIsIDNdKTtcbiAqIC8vID0+IFsyXVxuICovXG52YXIgaW50ZXJzZWN0aW9uID0gYmFzZVJlc3QoZnVuY3Rpb24oYXJyYXlzKSB7XG4gIHZhciBtYXBwZWQgPSBhcnJheU1hcChhcnJheXMsIGNhc3RBcnJheUxpa2VPYmplY3QpO1xuICByZXR1cm4gKG1hcHBlZC5sZW5ndGggJiYgbWFwcGVkWzBdID09PSBhcnJheXNbMF0pXG4gICAgPyBiYXNlSW50ZXJzZWN0aW9uKG1hcHBlZClcbiAgICA6IFtdO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJzZWN0aW9uO1xuIiwiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJhc2VJbmRleE9mYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGEgY29tcGFyYXRvci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjb21wYXJhdG9yIFRoZSBjb21wYXJhdG9yIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlSW5kZXhPZldpdGgoYXJyYXksIHZhbHVlLCBmcm9tSW5kZXgsIGNvbXBhcmF0b3IpIHtcbiAgdmFyIGluZGV4ID0gZnJvbUluZGV4IC0gMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChjb21wYXJhdG9yKGFycmF5W2luZGV4XSwgdmFsdWUpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlSW5kZXhPZldpdGg7XG4iLCJ2YXIgYXJyYXlNYXAgPSByZXF1aXJlKCcuL19hcnJheU1hcCcpLFxuICAgIGJhc2VJbmRleE9mID0gcmVxdWlyZSgnLi9fYmFzZUluZGV4T2YnKSxcbiAgICBiYXNlSW5kZXhPZldpdGggPSByZXF1aXJlKCcuL19iYXNlSW5kZXhPZldpdGgnKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBjb3B5QXJyYXkgPSByZXF1aXJlKCcuL19jb3B5QXJyYXknKTtcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHNwbGljZSA9IGFycmF5UHJvdG8uc3BsaWNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnB1bGxBbGxCeWAgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7QXJyYXl9IHZhbHVlcyBUaGUgdmFsdWVzIHRvIHJlbW92ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtpdGVyYXRlZV0gVGhlIGl0ZXJhdGVlIGludm9rZWQgcGVyIGVsZW1lbnQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY29tcGFyYXRvcl0gVGhlIGNvbXBhcmF0b3IgaW52b2tlZCBwZXIgZWxlbWVudC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBiYXNlUHVsbEFsbChhcnJheSwgdmFsdWVzLCBpdGVyYXRlZSwgY29tcGFyYXRvcikge1xuICB2YXIgaW5kZXhPZiA9IGNvbXBhcmF0b3IgPyBiYXNlSW5kZXhPZldpdGggOiBiYXNlSW5kZXhPZixcbiAgICAgIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgc2VlbiA9IGFycmF5O1xuXG4gIGlmIChhcnJheSA9PT0gdmFsdWVzKSB7XG4gICAgdmFsdWVzID0gY29weUFycmF5KHZhbHVlcyk7XG4gIH1cbiAgaWYgKGl0ZXJhdGVlKSB7XG4gICAgc2VlbiA9IGFycmF5TWFwKGFycmF5LCBiYXNlVW5hcnkoaXRlcmF0ZWUpKTtcbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1x